/* css/mw-blocks.css — Page Studio block styles (MW custom)
 * Styles ONLY the new (non-parity) block types + the .pb-panels spacing
 * shim; parity blocks (hero-slider, feat-hero, category-tiles, panels'
 * shared parts, product-row, praise-wall, quote, values, brand-band) reuse
 * the site's existing classes and need nothing here. Every new class is
 * prefixed `.pb-`. Reuses the theme tokens defined in css/mw.css (:root) —
 * no palette, font, or reset rules of its own. Emitted only when
 * mw_pb_doc_assets() says the page's block doc needs it. */

/* ---- Hero (page-hero) --------------------------------------------------- */
.pb-hero{position:relative;background:var(--ink) center/cover no-repeat;overflow:hidden;}
.pb-hero-scrim{position:absolute;inset:0;}
.pb-hero.tone-dark .pb-hero-scrim{background:linear-gradient(180deg,rgba(23,20,14,.35),rgba(23,20,14,.72));}
.pb-hero.tone-light{background-color:var(--paper-2);}
.pb-hero.tone-light .pb-hero-scrim{background:linear-gradient(180deg,rgba(244,241,233,.55),rgba(244,241,233,.85));}
.pb-hero-inner{position:relative;z-index:1;padding:132px 28px 120px;display:flex;}
.pb-hero-copy{max-width:640px;}
.pb-hero.tone-dark .pb-hero-copy{color:var(--paper);}
.pb-hero.tone-light .pb-hero-copy{color:var(--ink);}
.pb-hero-copy h1{font-size:clamp(2.1rem,4.4vw,3.6rem);line-height:1.06;font-weight:500;margin:0 0 .5em;}
.pb-hero-copy h1 em{font-style:italic;color:var(--rubric);}
.pb-hero.tone-light .pb-hero-copy h1 em{color:var(--rubric);}
.pb-hero-sub{font-size:1.05rem;line-height:1.55;margin:0 0 1.6em;max-width:52ch;}
.pb-hero.tone-dark .pb-hero-sub{color:var(--accent-pale);}
.pb-hero.tone-light .pb-hero-sub{color:var(--muted);}
.pb-hero-ctas{display:flex;gap:14px;flex-wrap:wrap;}
.pb-hero.tone-light .pb-hero-ctas .btn-ghost{color:var(--ink);border-color:var(--line);}
.pb-hero.tone-light .pb-hero-ctas .btn-ghost:hover{background:var(--ink);color:var(--paper);border-color:var(--ink);}
.pb-hero-left .pb-hero-inner{justify-content:flex-start;text-align:left;}
.pb-hero-center .pb-hero-inner{justify-content:center;text-align:center;}
.pb-hero-center .pb-hero-copy{max-width:720px;}
.pb-hero-center .pb-hero-ctas{justify-content:center;}
@media(max-width:760px){
  .pb-hero-inner{padding:88px 20px 76px;}
  .pb-hero-copy{max-width:100%;}
}

/* ---- Products (product-spotlight) --------------------------------------- */
.pb-spotlight{padding:84px 0;}
.pb-spotlight-inner{display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:center;}
.pb-spotlight-media{background:var(--paper-2);overflow:hidden;}
.pb-spotlight-media img{width:100%;height:100%;aspect-ratio:4/5;object-fit:cover;}
.pb-spotlight-copy h2{font-size:clamp(1.6rem,2.6vw,2.3rem);font-weight:500;margin:.35em 0 .5em;}
.pb-spotlight-price{display:flex;align-items:baseline;gap:.6em;font:600 1.3rem/1 Inter;margin:0 0 .9em;}
.pb-spotlight-price .now{color:var(--ink);}
.pb-spotlight-price .was{color:var(--muted);text-decoration:line-through;font-weight:400;font-size:.85em;}
.pb-spotlight-body{color:var(--muted);line-height:1.6;margin:0 0 1.4em;}
@media(max-width:760px){
  .pb-spotlight{padding:56px 0;}
  .pb-spotlight-inner{grid-template-columns:1fr;gap:26px;}
}

/* ---- Content (rich-text, image-text, media) ------------------------------ */
.pb-rich{padding:70px 0;}
.pb-rich-inner{max-width:1280px;}
.pb-rich-narrow .pb-rich-inner{max-width:760px;}
.pb-rich-wide .pb-rich-inner{max-width:100%;}
.pb-rich-center .pb-rich-inner{margin:0 auto;text-align:center;}
.pb-rich-inner h2{font-size:clamp(1.5rem,2.6vw,2.2rem);font-weight:500;margin:.4em 0 .5em;}
.pb-rich-body{color:var(--ink-soft);line-height:1.7;}
.pb-rich-body p{margin:0 0 1em;}
.pb-rich-body a{color:var(--rubric);text-decoration:underline;text-underline-offset:.15em;}

.pb-imgtext{padding:70px 0;}
.pb-imgtext-inner{display:flex;gap:56px;align-items:center;}
.pb-imgtext-media,.pb-imgtext-copy{flex:1 1 0;min-width:0;}
.pb-imgtext-right .pb-imgtext-inner{flex-direction:row-reverse;}
.pb-imgtext-media img{width:100%;display:block;aspect-ratio:5/4;object-fit:cover;background:var(--paper-2);}
.pb-imgtext-copy h2{font-size:clamp(1.5rem,2.4vw,2.1rem);font-weight:500;margin:.35em 0 .5em;}
.pb-imgtext-copy p{color:var(--muted);line-height:1.65;margin:0 0 1.3em;}
@media(max-width:760px){
  .pb-imgtext{padding:48px 0;}
  /* Equal-or-higher specificity than .pb-imgtext-right .pb-imgtext-inner above,
   * so both the default and "right" side variants stack without !important. */
  .pb-imgtext-inner,.pb-imgtext-right .pb-imgtext-inner{flex-direction:column;gap:22px;}
}

.pb-media{margin:70px 0;}
.pb-media-frame{background:var(--paper-2);}
.pb-media-frame img{width:100%;display:block;}
.pb-media-frame video,.pb-media-frame iframe{width:100%;aspect-ratio:16/9;display:block;border:0;}
.pb-media figcaption{color:var(--muted);font-size:.86rem;padding:12px 0 0;}
.pb-media-full .pb-media-frame{margin:0;}
.pb-media-full figcaption{padding-left:28px;padding-right:28px;}

/* ---- Social proof (trust-badges) ------------------------------------------ */
.pb-trust{padding:44px 0;}
.pb-trust-row{display:flex;flex-wrap:wrap;justify-content:center;gap:34px 48px;}
.pb-trust-item{display:flex;align-items:flex-start;gap:14px;max-width:280px;}
.pb-trust-item i{width:1.5em;height:1.5em;flex:0 0 auto;background-color:var(--rubric);margin-top:.15em;}
.pb-trust-copy strong{display:block;font-size:.95rem;color:var(--ink);}
.pb-trust-copy span{display:block;font-size:.85rem;color:var(--muted);line-height:1.4;margin-top:2px;}
@media(max-width:600px){.pb-trust-row{gap:22px;justify-content:flex-start;}}

/* ---- Conversion (cta-banner, countdown, email-capture, faq) -------------- */
.pb-cta{padding:56px 0;}
.pb-cta-inner{display:flex;align-items:center;justify-content:space-between;gap:32px;flex-wrap:wrap;}
.pb-cta-copy h2{font-size:clamp(1.5rem,2.4vw,2.1rem);font-weight:500;margin:.3em 0 .3em;}
.pb-cta-copy p{margin:0 0 .3em;}
.pb-cta-coupon{display:inline-block;margin-top:.6em;padding:5px 14px;border:1px dashed currentColor;border-radius:3px;font:600 .82rem/1 Inter;letter-spacing:.06em;}
.pb-cta-ink{background:var(--ink);color:var(--paper);}
.pb-cta-ink .pb-cta-copy p{color:var(--accent-pale);}
.pb-cta-ink .rubric{color:var(--accent-on-dark);}
.pb-cta-rubric{background:var(--rubric);color:var(--paper);}
.pb-cta-rubric .pb-cta-copy p{color:rgba(244,241,233,.86);}
.pb-cta-rubric .rubric{color:var(--paper);}
.pb-cta-rubric .btn-solid,.pb-cta-ink .btn-solid{background:var(--paper);border-color:var(--paper);color:var(--rubric);}
.pb-cta-rubric .btn-solid:hover,.pb-cta-ink .btn-solid:hover{background:#fff;border-color:#fff;}
.pb-cta-parchment{background:var(--paper-2);color:var(--ink);}
.pb-cta-parchment .pb-cta-copy p{color:var(--muted);}
@media(max-width:600px){.pb-cta-inner{flex-direction:column;align-items:flex-start;}}

.pb-countdown{padding:56px 0;text-align:center;background:var(--paper-2);}
.pb-countdown h2{font-size:clamp(1.4rem,2.2vw,1.9rem);font-weight:500;margin:0 0 .7em;}
.pb-countdown-digits{display:flex;justify-content:center;gap:22px;margin:0 0 1.3em;}
.pb-cd-seg{display:flex;flex-direction:column;align-items:center;min-width:64px;}
.pb-cd-num{font-family:Fraunces,Georgia,serif;font-size:clamp(1.8rem,4vw,2.6rem);font-weight:600;color:var(--rubric);line-height:1;animation:pb-cd-pulse 2s ease-in-out infinite;}
.pb-cd-lbl{margin-top:.4em;font:500 .68rem/1 Inter;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);}
.pb-countdown-msg{display:none;color:var(--muted);margin:0 0 1em;}
.pb-countdown.is-expired .pb-countdown-digits{display:none;}
.pb-countdown.is-expired .pb-countdown-msg{display:block;}
.pb-countdown-ghost{padding:30px 0;background:repeating-linear-gradient(45deg,var(--paper-2),var(--paper-2) 10px,var(--paper) 10px,var(--paper) 20px);}
.pb-ghost-note{margin:0;text-align:center;color:var(--muted);font-size:.85rem;font-style:italic;}
@keyframes pb-cd-pulse{0%,100%{opacity:1;}50%{opacity:.62;}}
@media(prefers-reduced-motion:reduce){.pb-cd-num{animation:none;}}
@media(max-width:600px){.pb-countdown-digits{gap:12px;}.pb-cd-seg{min-width:52px;}}

.pb-email{padding:60px 0;background:var(--ink);color:var(--paper);}
.pb-email-inner{display:flex;align-items:center;justify-content:space-between;gap:40px;flex-wrap:wrap;}
.pb-email-copy{max-width:440px;}
.pb-email-copy h2{font-size:clamp(1.5rem,2.4vw,2rem);font-weight:500;margin:.3em 0 .3em;}
.pb-email-copy p{margin:0;color:var(--accent-pale);}
.pb-email .rubric{color:var(--accent-on-dark);}
.pb-email-formwrap{flex:0 0 auto;width:420px;max-width:100%;}
.pb-email-form{display:flex;width:100%;position:relative;}
.pb-email-form input[type=email]{flex:1;min-width:0;background:var(--paper);border:1px solid var(--paper);color:var(--ink);padding:13px 16px;font:400 .9rem Inter;}
.pb-email-form input[type=email]:focus{outline:2px solid var(--paper);outline-offset:-2px;}
.pb-email-form .btn{padding:13px 22px;white-space:nowrap;border-left:1px solid rgba(23,20,14,.16);background:var(--paper);border-color:var(--paper);color:var(--rubric);}
.pb-email-form .btn:hover{background:#fff;border-color:#fff;}
.pb-email-result{margin:10px 0 0;font-size:.85rem;min-height:1em;color:#A39A86;}
.pb-email-result.ok{color:#8fc99a;}
.pb-email-result.err{color:#e6a39c;}
.pb-email-success{margin:10px 0 0;font-size:.95rem;color:var(--paper);}
@media(max-width:760px){.pb-email-formwrap{width:100%;}}

.pb-faq{padding:70px 0;}
.pb-faq-heading{font-size:clamp(1.5rem,2.4vw,2.1rem);font-weight:500;margin:0 0 .8em;}
.pb-faq-list{max-width:840px;border-top:1px solid var(--line);}
.pb-faq-item{border-bottom:1px solid var(--line);padding:18px 0;}
.pb-faq-item summary{cursor:pointer;font:500 1.02rem/1.4 Inter;color:var(--ink);list-style:none;display:flex;align-items:center;justify-content:space-between;gap:16px;}
.pb-faq-item summary::-webkit-details-marker{display:none;}
.pb-faq-item summary::after{content:"+";font-size:1.3rem;line-height:1;color:var(--rubric);flex:0 0 auto;transition:transform .15s;}
.pb-faq-item[open] summary::after{transform:rotate(45deg);}
.pb-faq-a{color:var(--muted);line-height:1.65;padding-top:12px;}
.pb-faq-a p{margin:0 0 1em;}

/* ---- Layout (spacer, custom-html) ---------------------------------------- */
.pb-spacer{width:100%;}
.pb-spacer-s{height:32px;}
.pb-spacer-m{height:64px;}
.pb-spacer-l{height:112px;}
.pb-spacer-rule{display:flex;align-items:center;justify-content:center;}
.pb-spacer-hr{width:100%;max-width:1280px;margin:0 28px;border-top:1px solid var(--line);}
.pb-spacer-rule .pb-spacer-hr{margin-left:auto;margin-right:auto;}

.pb-custom{padding:0;}

/* ---- Layout (panels spacing shim) ----------------------------------------
 * Old markup nested .panels-head + .panels straight inside the SAME
 * .catfeature section as the .bento tiles above them — .panels-head's
 * margin-top:34px (css/mw.css) was measured from the bottom of that .bento
 * grid, not from the section edge. The `panels` block is now its own
 * standalone `<section class="section catfeature pb-panels">`, so it already
 * gets .catfeature's padding-top:60px for the section-level gap; stacking
 * panels-head's 34px on top of that would double the whitespace above the
 * eyebrow compared to the original page. Zero the head's own top margin so
 * the section's padding alone sets that gap, matching the original rhythm. */
.pb-panels .panels-head{margin-top:0;}
