/* ════════════════════════════════════════════════════════════
   WHAMPLY BLOG — front-end styling
   Brand tokens pulled from the site navbar/footer so the blog
   reads as a native part of whamply.com, not a WordPress default.
   All rules are scoped under .wb- wrappers to avoid touching the
   header/footer CSS.
   ════════════════════════════════════════════════════════════ */
:root{
  --wb-brand:#F97316;
  --wb-brand-dark:#d9620e;
  --wb-ink:#15161a;
  --wb-body:#33363d;
  --wb-muted:#8a8f99;
  --wb-line:#ececec;
  --wb-soft:#faf9f7;
  --wb-radius:14px;
}

/* ---- shared shell ------------------------------------------------ */
.wb-wrap{
  font-family:'Plus Jakarta Sans','Barlow',system-ui,sans-serif;
  color:var(--wb-body);
  background:#fff;
}
.wb-container{max-width:760px;margin:0 auto;padding:56px 22px 80px}
.wb-list-container{max-width:1180px;margin:0 auto;padding:56px 22px 80px}

/* ---- eyebrow + meta --------------------------------------------- */
.wb-eyebrow{
  display:inline-flex;align-items:center;gap:8px;
  font-size:12px;font-weight:800;letter-spacing:.14em;text-transform:uppercase;
  color:var(--wb-brand);margin-bottom:18px;
}
.wb-eyebrow::before{content:"";width:22px;height:2px;background:var(--wb-brand);display:inline-block}

.wb-meta{
  display:flex;align-items:center;gap:14px;flex-wrap:wrap;
  font-size:14px;color:var(--wb-muted);font-weight:500;margin-bottom:30px;
}
.wb-meta .dot{width:4px;height:4px;border-radius:50%;background:var(--wb-muted);opacity:.6}
.wb-meta a{color:var(--wb-muted);text-decoration:none}
.wb-meta a:hover{color:var(--wb-brand)}

/* ---- article title ---------------------------------------------- */
.wb-title{
  font-family:'Manrope','Plus Jakarta Sans',sans-serif;
  font-weight:800;color:var(--wb-ink);
  font-size:clamp(30px,5vw,46px);line-height:1.12;letter-spacing:-.02em;
  margin:0 0 18px;
}

/* ---- featured image --------------------------------------------- */
.wb-hero{
  width:100%;border-radius:var(--wb-radius);overflow:hidden;
  margin:0 0 40px;box-shadow:0 18px 50px -24px rgba(0,0,0,.4);
}
.wb-hero img{display:block;width:100%;height:auto}

/* ---- post body typography --------------------------------------- */
.wb-content{font-size:18px;line-height:1.78;color:var(--wb-body)}
.wb-content > *{margin:0 0 1.35em}
.wb-content h2{
  font-family:'Manrope','Plus Jakarta Sans',sans-serif;
  font-size:28px;font-weight:800;color:var(--wb-ink);
  line-height:1.25;letter-spacing:-.01em;margin:2em 0 .7em;
}
.wb-content h3{
  font-family:'Manrope','Plus Jakarta Sans',sans-serif;
  font-size:22px;font-weight:700;color:var(--wb-ink);margin:1.7em 0 .6em;
}
.wb-content h4{font-size:18px;font-weight:700;color:var(--wb-ink);margin:1.5em 0 .5em}
.wb-content a{color:var(--wb-brand-dark);text-decoration:underline;text-underline-offset:2px;text-decoration-thickness:1px}
.wb-content a:hover{color:var(--wb-brand)}
.wb-content strong{color:var(--wb-ink);font-weight:700}
.wb-content ul,.wb-content ol{padding-left:1.3em}
.wb-content li{margin:.5em 0;padding-left:.25em}
.wb-content ul li::marker{color:var(--wb-brand)}
.wb-content ol li::marker{color:var(--wb-brand);font-weight:700}
.wb-content img{border-radius:var(--wb-radius);height:auto}
.wb-content figure{margin:2em 0}
.wb-content figcaption{font-size:13.5px;color:var(--wb-muted);text-align:center;margin-top:10px}
.wb-content blockquote{
  margin:2em 0;padding:6px 0 6px 26px;
  border-left:4px solid var(--wb-brand);
  font-size:21px;line-height:1.6;font-style:italic;color:var(--wb-ink);
}
.wb-content blockquote p{margin:0}
.wb-content pre{
  background:var(--wb-ink);color:#f4f4f4;border-radius:12px;
  padding:20px 22px;overflow-x:auto;font-size:14.5px;line-height:1.6;
}
.wb-content code{
  font-family:ui-monospace,SFMono-Regular,Menlo,monospace;
  background:var(--wb-soft);border:1px solid var(--wb-line);
  padding:.12em .4em;border-radius:5px;font-size:.88em;color:var(--wb-brand-dark);
}
.wb-content pre code{background:none;border:none;padding:0;color:inherit}
.wb-content hr{border:none;border-top:1px solid var(--wb-line);margin:2.5em 0}
.wb-content table{width:100%;border-collapse:collapse;font-size:15.5px}
.wb-content th,.wb-content td{border:1px solid var(--wb-line);padding:10px 14px;text-align:left}
.wb-content th{background:var(--wb-soft);font-weight:700;color:var(--wb-ink)}

/* ---- tags + footer of article ----------------------------------- */
.wb-tags{margin-top:46px;display:flex;flex-wrap:wrap;gap:9px}
.wb-tags a{
  font-size:13px;font-weight:600;color:var(--wb-body);text-decoration:none;
  background:var(--wb-soft);border:1px solid var(--wb-line);
  padding:6px 14px;border-radius:20px;transition:.15s;
}
.wb-tags a:hover{border-color:var(--wb-brand);color:var(--wb-brand)}

/* ---- back link -------------------------------------------------- */
.wb-back{
  display:inline-flex;align-items:center;gap:7px;
  font-size:14px;font-weight:700;color:var(--wb-brand-dark);text-decoration:none;
  margin-bottom:34px;
}
.wb-back:hover{gap:11px;color:var(--wb-brand)}

/* ════════════ LISTING / ARCHIVE ════════════ */
.wb-archive-head{margin-bottom:42px}
.wb-archive-title{
  font-family:'Manrope','Plus Jakarta Sans',sans-serif;
  font-size:clamp(28px,4vw,40px);font-weight:800;color:var(--wb-ink);
  letter-spacing:-.02em;margin:0 0 8px;
}
.wb-archive-sub{font-size:16px;color:var(--wb-muted);margin:0}

.wb-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(330px,1fr));gap:30px}
.wb-card{
  display:flex;flex-direction:column;background:#fff;
  border:1px solid var(--wb-line);border-radius:var(--wb-radius);overflow:hidden;
  transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease;
}
.wb-card:hover{transform:translateY(-4px);box-shadow:0 22px 44px -28px rgba(0,0,0,.38);border-color:#e2e2e2}
.wb-card-img{display:block;aspect-ratio:16/9;overflow:hidden;background:var(--wb-soft)}
.wb-card-img img{width:100%;height:100%;object-fit:cover;transition:transform .4s ease}
.wb-card:hover .wb-card-img img{transform:scale(1.05)}
.wb-card-body{padding:22px 22px 24px;display:flex;flex-direction:column;flex:1}
.wb-card-date{font-size:12.5px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--wb-brand);margin-bottom:10px}
.wb-card-title{font-family:'Manrope','Plus Jakarta Sans',sans-serif;font-size:20px;font-weight:800;line-height:1.3;margin:0 0 10px}
.wb-card-title a{color:var(--wb-ink);text-decoration:none}
.wb-card-title a:hover{color:var(--wb-brand-dark)}
.wb-card-excerpt{font-size:15px;line-height:1.65;color:var(--wb-body);margin:0 0 18px}
.wb-card-more{margin-top:auto;font-size:14px;font-weight:700;color:var(--wb-brand-dark);text-decoration:none;display:inline-flex;align-items:center;gap:6px}
.wb-card-more:hover{gap:10px;color:var(--wb-brand)}

/* ---- pagination ------------------------------------------------- */
.wb-pagination{margin-top:50px;display:flex;justify-content:center}
.wb-pagination .nav-links{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.wb-pagination .page-numbers{
  display:inline-flex;align-items:center;justify-content:center;
  min-width:42px;height:42px;padding:0 12px;border-radius:9px;
  border:1px solid var(--wb-line);background:#fff;
  font-size:15px;font-weight:700;color:var(--wb-body);text-decoration:none;transition:.15s;
}
.wb-pagination .page-numbers:hover{border-color:var(--wb-brand);color:var(--wb-brand)}
.wb-pagination .page-numbers.current{background:var(--wb-brand);border-color:var(--wb-brand);color:#fff}

/* ════════════ COMMENTS ════════════ */
.wb-comments{margin-top:64px;padding-top:40px;border-top:1px solid var(--wb-line)}
.wb-comments .comments-title,
.wb-comments h2,
.wb-comments h3{font-family:'Manrope',sans-serif;font-size:22px;font-weight:800;color:var(--wb-ink);margin:0 0 22px}
.wb-comments ol,.wb-comments ul{list-style:none;margin:0;padding:0}
.wb-comments .comment-body{
  background:var(--wb-soft);border:1px solid var(--wb-line);
  border-radius:12px;padding:18px 20px;margin-bottom:16px;
}
.wb-comments .comment-author{font-weight:700;color:var(--wb-ink);font-size:15px}
.wb-comments .comment-author .says{display:none}
.wb-comments .comment-metadata{font-size:12.5px;color:var(--wb-muted);margin:2px 0 10px}
.wb-comments .comment-metadata a{color:var(--wb-muted);text-decoration:none}
.wb-comments .comment-content{font-size:15.5px;line-height:1.7;color:var(--wb-body)}
.wb-comments .comment-content p{margin:0 0 .8em}
.wb-comments .reply a,
.wb-comments .comment-reply-link{
  display:inline-block;margin-top:6px;font-size:13px;font-weight:700;
  color:var(--wb-brand-dark);text-decoration:none;
}
.wb-comments .reply a:hover{color:var(--wb-brand)}
.wb-comments .avatar{border-radius:50%;margin-right:10px;vertical-align:middle}
.wb-comments .children{margin-left:26px;margin-top:8px}

/* ---- comment form ----------------------------------------------- */
.wb-comments #respond{margin-top:34px}
.wb-comments .comment-reply-title{font-family:'Manrope',sans-serif;font-size:20px;font-weight:800;color:var(--wb-ink);margin-bottom:8px}
.wb-comments .comment-notes,
.wb-comments .logged-in-as{font-size:13.5px;color:var(--wb-muted);margin-bottom:16px}
.wb-comments .comment-form label{display:block;font-size:13.5px;font-weight:700;color:var(--wb-ink);margin-bottom:6px}
.wb-comments .comment-form input[type=text],
.wb-comments .comment-form input[type=email],
.wb-comments .comment-form input[type=url],
.wb-comments .comment-form textarea{
  width:100%;border:1px solid var(--wb-line);border-radius:10px;
  padding:12px 14px;font-size:15px;font-family:inherit;color:var(--wb-ink);
  background:#fff;transition:border-color .15s,box-shadow .15s;margin-bottom:16px;
}
.wb-comments .comment-form input:focus,
.wb-comments .comment-form textarea:focus{
  outline:none;border-color:var(--wb-brand);box-shadow:0 0 0 3px rgba(249,115,22,.14);
}
.wb-comments .comment-form textarea{min-height:130px;resize:vertical}
.wb-comments .form-submit input,
.wb-comments .submit{
  background:var(--wb-brand);color:#fff;border:none;border-radius:10px;
  padding:13px 30px;font-size:15px;font-weight:700;font-family:inherit;
  cursor:pointer;transition:background .18s;
}
.wb-comments .form-submit input:hover,
.wb-comments .submit:hover{background:var(--wb-brand-dark)}

/* ---- responsive ------------------------------------------------- */
@media(max-width:600px){
  .wb-container{padding:38px 18px 60px}
  .wb-list-container{padding:38px 18px 60px}
  .wb-content{font-size:17px}
  .wb-content h2{font-size:24px}
  .wb-comments .children{margin-left:14px}
}

/* ════════════════════════════════════════════════════════════
   POST LAYOUT:  TOC (left) | article (center) | form (right)
   ════════════════════════════════════════════════════════════ */
.wb-post-layout{
  max-width:1320px;margin:0 auto;padding:48px 24px 80px;
  display:grid;grid-template-columns:212px minmax(0,1fr) 340px;
  gap:36px;align-items:start;
}
.wb-main{min-width:0}

/* Sticky rails clear the fixed site header (~104px desktop). No internal
   scrollbar: the rails flow with the page if they exceed the viewport. */
.wb-sticky{position:sticky;top:120px;align-self:start}

/* The site navbar sets overflow-x:hidden on <body>, which turns <body> into
   a scroll container and breaks position:sticky. Switching to overflow:clip
   prevents horizontal scroll WITHOUT creating a scroll container, so sticky
   works again. Scoped to blog pages only (this file loads on blog pages). */
@supports (overflow-x:clip){
  html, body{overflow-x:clip !important}
}
html{scroll-behavior:smooth}
#contact-form{scroll-margin-top:120px}

/* ---- Table of contents ---- */
.wb-toc-title{font-size:12px;font-weight:800;letter-spacing:.13em;text-transform:uppercase;color:var(--wb-muted);margin:0 0 14px}
.wb-toc-list{list-style:none;margin:0;padding:0;border-left:2px solid var(--wb-line)}
.wb-toc-list li{margin:0}
.wb-toc-list a{
  display:block;padding:7px 0 7px 16px;margin-left:-2px;
  border-left:2px solid transparent;font-size:14px;line-height:1.45;
  color:var(--wb-body);text-decoration:none;transition:color .15s,border-color .15s;
}
.wb-toc-list a:hover{color:var(--wb-brand-dark)}
.wb-toc-list a.is-active{color:var(--wb-brand-dark);border-left-color:var(--wb-brand);font-weight:700}
.wb-toc-list a.lvl-3{padding-left:30px;font-size:13px;color:var(--wb-muted)}
.wb-toc-list a.lvl-3:hover,.wb-toc-list a.lvl-3.is-active{color:var(--wb-brand-dark)}

/* heading anchors land below the fixed nav */
.wb-content h2,.wb-content h3{scroll-margin-top:120px}

/* ---- Form column ---- */
.wb-form-col .form-card{margin:0;width:100%}
.wb-form-col #form-wrap{width:100%}

/* ---- Mobile collapsible TOC ---- */
.wb-toc-mobile{display:none;border:1px solid var(--wb-line);border-radius:12px;background:var(--wb-soft);margin-bottom:26px;overflow:hidden}
.wb-toc-mobile summary{cursor:pointer;list-style:none;padding:14px 18px;font-size:13px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--wb-ink);display:flex;align-items:center;justify-content:space-between}
.wb-toc-mobile summary::-webkit-details-marker{display:none}
.wb-toc-mobile summary::after{content:"+";font-size:18px;color:var(--wb-brand)}
.wb-toc-mobile[open] summary::after{content:"–"}
.wb-toc-mobile .wb-toc-list{border-left:none;padding:0 18px 16px}
.wb-toc-mobile .wb-toc-list a{padding:8px 0 8px 14px}

/* ---- Mobile "Get in touch" jump button (hidden on desktop) ---- */
.wb-getintouch{display:none}

/* ---- Responsive ---- */
@media(max-width:1080px){
  .wb-post-layout{grid-template-columns:minmax(0,1fr) 320px;gap:30px}
  .wb-toc{display:none}
  .wb-toc-mobile{display:block}
}
@media(max-width:820px){
  .wb-post-layout{grid-template-columns:1fr;padding:34px 18px 60px;gap:0}
  .wb-form-col{position:static;margin-top:40px}
  .wb-getintouch{
    display:flex;align-items:center;justify-content:center;gap:8px;
    background:var(--wb-brand);color:#fff;font-weight:700;font-size:15.5px;
    text-decoration:none;padding:15px 22px;border-radius:12px;margin:6px 0 24px;
    box-shadow:0 12px 26px -12px rgba(249,115,22,.75);
  }
  .wb-getintouch:active{background:var(--wb-brand-dark)}
}
