/*
Theme Name:  Lady B's Soap Co.
Theme URI:   https://ladybsoapco.com
Description: Child theme for Lady B's Soap Co. — Direction 1a redesign. All custom CSS for the
             redesign lives in this file (build spec §0.3 / non-negotiable #4). Colors and type
             are set in Elementor Global Colors / Global Fonts; the variables below mirror them
             for the handful of rules Elementor cannot express.
Author:      Lady B's Soap Co.
Template:    hello-elementor
Version:     1.0.0
Text Domain: ladybsoapco-child
*/

/* ---------------------------------------------------------------------------
   Build spec §6 — verbatim. Do not edit values here without updating the spec.
   --------------------------------------------------------------------------- */

:root{
  --honey:#C8860A; --honey-text:#9A6A08; --forest:#2D5016; --brown:#6B3A2A;
  --cream:#FDF6E3; --cream-deep:#F7EDD5; --gold-light:#F5D88A;
  --ink:#2C2C2C; --ink-muted:#5B5346; --rule:#E8D9B5; --rule-strong:#C6B48E;
}
/* squared corners everywhere — this direction has no rounded cards */
.woocommerce ul.products li.product img,.elementor-button,input,select,textarea{border-radius:0!important}

/* eyebrow label */
.lb-eyebrow{font:700 12.5px/1 'Helvetica Neue',Helvetica,Arial,sans-serif;
  letter-spacing:.26em;text-transform:uppercase;color:var(--honey-text)}

/* hero: whole artwork visible, desktop only */
.lb-hero{aspect-ratio:1024/572;background-size:100% 100%;background-position:center;
  display:flex;align-items:flex-end;position:relative}
.lb-hero::before{content:"";position:absolute;inset:0;
  background:linear-gradient(180deg,rgba(59,36,24,0) 0%,rgba(59,36,24,.20) 42%,rgba(59,36,24,.58) 100%)}
.lb-hero>*{position:relative}
.lb-hero h1{font:400 clamp(40px,7.5vw,96px)/.94 Georgia,serif;letter-spacing:-.02em;
  color:var(--cream);text-shadow:0 2px 18px rgba(45,28,12,.35);margin:0}
@media(max-width:767px){.lb-hero{aspect-ratio:4/5;background-size:cover}}

/* marquee */
@keyframes lb-marquee{from{transform:translateX(0)}to{transform:translateX(-50%)}}
.lb-marquee{overflow:hidden;background:var(--forest);padding:15px 0}
.lb-marquee__track{display:flex;gap:44px;width:max-content;
  font:400 19px/1 Georgia,serif;letter-spacing:.06em;color:var(--gold-light);
  animation:lb-marquee 34s linear infinite}
@media(prefers-reduced-motion:reduce){.lb-marquee__track{animation:none}}

/* product cards: CTAs aligned regardless of description length */
.woocommerce ul.products li.product{display:flex;flex-direction:column;gap:14px}
.woocommerce ul.products li.product .lb-note{flex:1}
.woocommerce ul.products li.product .button{
  border:1px solid var(--forest);background:none;color:var(--forest);
  font:700 12.5px/1 'Helvetica Neue',Helvetica,Arial,sans-serif;letter-spacing:.16em;
  text-transform:uppercase;padding:13px;text-align:center;transition:background .15s ease,color .15s ease}
.woocommerce ul.products li.product .button:hover{background:var(--forest);color:var(--cream)}
.woocommerce ul.products li.product .woocommerce-loop-product__title{
  font:400 26px/1.1 Georgia,serif;color:var(--brown)}

a{color:var(--honey-text)}a:hover{color:var(--forest)}

/* ---------------------------------------------------------------------------
   Header & footer — README §2 and §11. Values are from the design spec;
   colors reference the Elementor Global Colors mirrored in :root above.
   --------------------------------------------------------------------------- */

.lb-skip{position:absolute;left:-9999px}
.lb-skip:focus{left:8px;top:8px;z-index:100;background:var(--cream);color:var(--forest);
  padding:12px 18px;border:1px solid var(--forest)}

/* announcement bar */
.lb-announce{background:var(--forest);color:var(--cream);text-align:center;padding:11px 20px;
  font:600 12.5px/1.3 'Helvetica Neue',Helvetica,Arial,sans-serif;
  letter-spacing:.2em;text-transform:uppercase}

/* header */
.lb-header{background:var(--cream);border-bottom:1px solid var(--rule);padding:24px 44px 28px;
  position:sticky;top:0;z-index:40;transition:padding .15s ease}
.lb-header__inner{display:flex;align-items:center;gap:32px}
.lb-header__logo{flex:0 0 auto;line-height:0}
.lb-logo{height:116px;width:auto;display:block;transition:height .15s ease}
.lb-logo--text{font:400 34px/1 Georgia,serif;color:var(--brown);height:auto}
.lb-header.is-stuck{padding:12px 44px}
.lb-header.is-stuck .lb-logo{height:64px}

/* nav */
.lb-nav{flex:1 1 auto;display:flex;justify-content:center}
.lb-nav__list{display:flex;align-items:center;gap:26px;list-style:none;margin:0;padding:0}
.lb-nav__list a{font:400 13.5px/1 'Helvetica Neue',Helvetica,Arial,sans-serif;letter-spacing:.1em;
  text-transform:uppercase;color:var(--ink);text-decoration:none;transition:color .15s ease}
.lb-nav__list a:hover,.lb-nav__list a:focus-visible{color:var(--forest)}
.lb-nav__list .current-menu-item>a{box-shadow:inset 0 -1px 0 0 var(--honey)}

/* header actions */
.lb-header__actions{flex:0 0 auto;display:flex;align-items:center;gap:16px}
.lb-search,.lb-bag{font:700 12.5px/1 'Helvetica Neue',Helvetica,Arial,sans-serif;letter-spacing:.14em;
  text-transform:uppercase;text-decoration:none;cursor:pointer;transition:background .15s ease,color .15s ease}
.lb-search{background:none;border:0;color:var(--ink);padding:7px 4px}
.lb-search:hover{color:var(--forest)}
.lb-bag{border:1px solid var(--forest);color:var(--forest);padding:7px 13px}
.lb-bag:hover,.lb-bag:focus-visible{background:var(--forest);color:var(--cream)}
.lb-searchbox{padding:18px 44px 0}
.lb-searchbox input[type=search]{border:0;border-bottom:1px solid var(--rule-strong);background:none;
  padding:10px 0;width:100%;max-width:420px;font:400 16px/1.4 'Helvetica Neue',Helvetica,Arial,sans-serif}

/* mobile toggle — hidden on desktop */
.lb-nav-toggle{display:none;background:none;border:0;cursor:pointer;padding:10px;
  min-width:44px;min-height:44px}
.lb-nav-toggle__bars,.lb-nav-toggle__bars::before,.lb-nav-toggle__bars::after{
  display:block;width:22px;height:1.5px;background:var(--ink);content:""}
.lb-nav-toggle__bars::before{transform:translateY(-7px)}
.lb-nav-toggle__bars::after{transform:translateY(5.5px)}

/* footer */
.lb-footer{background:var(--cream);padding:72px 64px 40px}
.lb-footer__cols{display:grid;grid-template-columns:1.2fr 1fr 1fr;gap:44px}
.lb-footer__logo{height:64px;width:auto;display:block}
.lb-footer__tagline{font:400 26px/1.3 Parisienne,Georgia,serif;color:var(--forest);margin:16px 0 0}
.lb-footer__heading{font:400 21px/1.2 Georgia,serif;color:var(--brown);margin:0 0 16px}
.lb-footer__note{font:400 15px/1.6 'Helvetica Neue',Helvetica,Arial,sans-serif;color:var(--ink-muted);margin:0 0 16px}
.lb-footer__list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}
.lb-footer__list a{font:400 15px/1.4 'Helvetica Neue',Helvetica,Arial,sans-serif;
  color:var(--ink);text-decoration:none}
.lb-footer__list a:hover{color:var(--forest)}
.lb-footer__legal{border-top:1px solid var(--rule);margin-top:48px;padding-top:24px;
  display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap;
  font:400 13px/1.5 'Helvetica Neue',Helvetica,Arial,sans-serif;color:var(--ink-muted)}

/* visible focus — README accessibility pass */
a:focus-visible,button:focus-visible,input:focus-visible{outline:2px solid var(--forest);outline-offset:2px}

/* --- responsive: README "Responsive behavior" --- */
@media(max-width:1023px){
  .lb-header{padding:16px 20px}
  .lb-header.is-stuck{padding:10px 20px}
  .lb-logo,.lb-header.is-stuck .lb-logo{height:72px}
  .lb-nav-toggle{display:block;order:-1}
  .lb-header__inner{gap:12px}
  .lb-header__logo{flex:1 1 auto;display:flex;justify-content:center}
  .lb-nav{display:none;flex:0 0 100%;order:3}
  .lb-nav.is-open{display:block}
  .lb-nav__list{flex-direction:column;align-items:flex-start;gap:0;padding-top:12px}
  .lb-nav__list a{display:block;padding:14px 0;min-height:44px}
  .lb-searchbox{padding:16px 20px 0}
  .lb-footer{padding:48px 20px 32px}
  .lb-footer__cols{grid-template-columns:1fr;gap:36px}
}
@media(max-width:600px){
  .lb-logo,.lb-header.is-stuck .lb-logo{height:56px}
  .lb-announce{letter-spacing:.14em;font-size:11.5px}
}
@media(prefers-reduced-motion:reduce){
  .lb-header,.lb-logo,.lb-bag,.lb-search,.lb-nav__list a{transition:none}
}

/* ---------------------------------------------------------------------------
   Home sections — README §1 items 3–10.
   The hero and marquee base rules live in the §6 block above; this extends them.
   --------------------------------------------------------------------------- */

:root{ --on-forest:#F7ECD6; --on-forest-muted:#DCE3CE; --rule-forest:#4A6B32; }

.lb-home h1,.lb-home h2,.lb-home h3{font-family:Georgia,'Times New Roman',serif;font-weight:400;margin:0}
.lb-eyebrow--gold{color:var(--gold-light)}
.lb-empty{font:400 16px/1.6 'Helvetica Neue',Helvetica,Arial,sans-serif;color:var(--ink-muted);padding:24px 0}

/* section heading row */
.lb-sechead{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;
  border-bottom:1px solid var(--rule);padding-bottom:18px;margin-bottom:34px}
.lb-sechead h2{font-size:50px;line-height:1.05;letter-spacing:-.02em;color:var(--brown);margin-top:10px}
.lb-link{font:400 15px/1 'Helvetica Neue',Helvetica,Arial,sans-serif;color:var(--honey-text);
  text-decoration:underline;text-underline-offset:4px;white-space:nowrap}
.lb-link:hover{color:var(--forest)}

/* 3. hero */
.lb-hero__inner{padding:0 56px 56px;max-width:760px}
.lb-hero__body{font:400 19px/1.6 'Helvetica Neue',Helvetica,Arial,sans-serif;color:var(--on-forest);
  max-width:470px;margin:18px 0 26px}
.lb-hero h1 em{font-style:italic}
.lb-hero__ctas{display:flex;flex-wrap:wrap;gap:14px;margin:0}
.lb-btn{display:inline-block;text-decoration:none;font:700 13.5px/1 'Helvetica Neue',Helvetica,Arial,sans-serif;
  letter-spacing:.14em;text-transform:uppercase;transition:background .15s ease,color .15s ease}
.lb-btn--honey{background:var(--honey);color:var(--ink);padding:17px 32px}
.lb-btn--honey:hover{background:var(--brown);color:var(--cream)}
.lb-btn--ghost{border:1px solid var(--on-forest);color:var(--on-forest);padding:17px 30px}
.lb-btn--ghost:hover{background:var(--on-forest);color:var(--forest)}
.lb-hero__card{position:absolute;right:56px;bottom:56px;z-index:2;background:var(--cream);
  padding:24px 26px;max-width:270px}
.lb-hero__card h2{font-size:24px;color:var(--brown);margin:6px 0 8px}
.lb-hero__card p{font:400 14.5px/1.55 'Helvetica Neue',Helvetica,Arial,sans-serif;color:var(--ink-muted);margin:0}

/* 4. trust strip */
.lb-trust{background:var(--cream);border-bottom:1px solid var(--rule);padding:20px 64px;
  display:flex;justify-content:center;flex-wrap:wrap;gap:34px;
  font:400 13px/1.4 'Helvetica Neue',Helvetica,Arial,sans-serif;letter-spacing:.08em;
  text-transform:uppercase;color:var(--ink-muted)}

/* 5. marquee spacing */
.lb-marquee__track span{white-space:nowrap}

/* 6. shelf */
.lb-shelf{background:var(--cream);padding:88px 64px}

/* 7. story */
.lb-story{background:var(--cream-deep);display:grid;grid-template-columns:1fr 1.1fr}
.lb-story__photo{background-size:cover;background-position:center;min-height:560px}
.lb-story__text{padding:96px 72px}
.lb-story__text h2{font-size:56px;line-height:1.05;letter-spacing:-.02em;color:var(--brown);margin:10px 0 22px}
.lb-story__text h2 em{font-style:italic}
.lb-story__text p{font:400 17.5px/1.68 'Helvetica Neue',Helvetica,Arial,sans-serif;color:var(--ink);
  max-width:520px;margin:0 0 18px}
.lb-quote{font:400 38px/1.25 Parisienne,Georgia,serif;color:var(--forest);
  border-left:2px solid var(--honey);padding-left:24px;margin:30px 0 0}

/* 8. process */
.lb-process{background:var(--cream);padding:92px 64px}
.lb-process h2{font-size:50px;line-height:1.05;letter-spacing:-.02em;color:var(--brown);margin:10px 0 40px}
.lb-process__grid{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(4,1fr);gap:34px}
.lb-process__grid li{border-top:1px solid var(--rule);padding-top:20px}
.lb-process__n{display:block;font:400 44px/1 Georgia,serif;color:var(--honey)}
.lb-process__grid h3{font:700 13px/1 'Helvetica Neue',Helvetica,Arial,sans-serif;letter-spacing:.16em;
  text-transform:uppercase;color:var(--forest);margin:14px 0 10px}
.lb-process__grid p{font:400 15px/1.6 'Helvetica Neue',Helvetica,Arial,sans-serif;color:var(--ink-muted);margin:0}

/* 9. journal */
.lb-journal{background:var(--cream-deep);padding:88px 64px}
.lb-journal__grid{display:grid;grid-template-columns:1.5fr 1fr 1fr;gap:44px;align-items:start}
.lb-journal__grid img{width:100%;height:auto;aspect-ratio:16/10;object-fit:cover;display:block;margin-bottom:16px}
.lb-dateline{font:700 12px/1 'Helvetica Neue',Helvetica,Arial,sans-serif;letter-spacing:.2em;
  text-transform:uppercase;color:var(--honey-text);margin:0 0 10px}
.lb-journal__grid h3{font-size:26px;line-height:1.15;color:var(--brown);margin:0 0 10px}
.lb-journal__grid .is-lead h3,.lb-journal__grid article.is-lead h3{font-size:36px}
.lb-journal__grid h3 a{color:inherit;text-decoration:none}
.lb-journal__grid h3 a:hover{color:var(--forest)}
.lb-journal__grid article:not(.is-lead){border-top:2px solid var(--forest);padding-top:22px}
.lb-excerpt{font:400 16px/1.6 'Helvetica Neue',Helvetica,Arial,sans-serif;color:var(--ink-muted);margin:0}
.lb-journal__grid .is-lead .lb-excerpt{font-size:17px;line-height:1.65}

/* 10. find us */
.lb-find{background:var(--forest);display:grid;grid-template-columns:1.05fr 1fr}
.lb-find__text{padding:92px 64px}
.lb-find__text h2{font-size:54px;line-height:1.05;letter-spacing:-.02em;color:var(--cream);margin:10px 0 18px}
.lb-find__body{font:400 17px/1.65 'Helvetica Neue',Helvetica,Arial,sans-serif;color:var(--on-forest-muted);
  max-width:520px;margin:0 0 30px}
.lb-find__rows{margin:0}
.lb-find__rows>div{display:flex;justify-content:space-between;gap:20px;
  border-top:1px solid var(--rule-forest);padding:16px 0}
.lb-find__rows dt{font:700 13px/1.4 'Helvetica Neue',Helvetica,Arial,sans-serif;letter-spacing:.1em;
  text-transform:uppercase;color:var(--gold-light);margin:0}
.lb-find__rows dd{font:400 15.5px/1.4 'Helvetica Neue',Helvetica,Arial,sans-serif;
  color:var(--on-forest);margin:0;text-align:right}
.lb-find__photo{background-size:cover;background-position:center;min-height:520px}

/* --- responsive --- */
@media(max-width:900px){
  .lb-journal__grid{grid-template-columns:1fr 1fr}
  .lb-journal__grid .is-lead{grid-column:1/-1}
  .lb-process__grid{grid-template-columns:1fr 1fr}
}
@media(max-width:767px){
  .lb-hero__inner{padding:0 20px 40px}
  .lb-hero__card{position:static;max-width:none;margin:0 20px 20px}
  .lb-sechead{flex-direction:column;align-items:flex-start;gap:10px}
  .lb-sechead h2,.lb-process h2{font-size:clamp(30px,8vw,50px)}
  .lb-shelf,.lb-process,.lb-journal{padding:48px 20px}
  .lb-story,.lb-find{grid-template-columns:1fr}
  .lb-story__photo{min-height:320px;order:-1}
  .lb-find__photo{min-height:320px;order:-1}
  .lb-story__text{padding:48px 20px}
  .lb-story__text h2{font-size:clamp(32px,9vw,56px)}
  .lb-find__text{padding:48px 20px}
  .lb-find__text h2{font-size:clamp(32px,9vw,54px)}
  .lb-quote{font-size:30px}
  .lb-trust{padding:16px 20px;gap:16px}
}
@media(max-width:600px){
  .lb-journal__grid,.lb-process__grid{grid-template-columns:1fr}
}

/* ---------------------------------------------------------------------------
   Phone hero — README "Responsive behavior" sanctions stacking the artwork
   above the text. Chosen over the 4:5 crop because the hero artwork carries
   its own lettering; overlaying the H1 on it produced text-on-text.
   Artwork sits at its native 1024:572 up top, copy sits on solid Deep Forest
   below it, so every string is legible and nothing is cropped.
   --------------------------------------------------------------------------- */
@media(max-width:767px){
  .lb-home .lb-hero{
    aspect-ratio:auto;
    flex-direction:column;
    align-items:stretch;
    background-color:var(--forest);
    background-size:100% auto;
    background-repeat:no-repeat;
    background-position:top center;
    padding-top:55.86%;               /* 572 / 1024 — reserves the artwork */
  }
  .lb-home .lb-hero::before{display:none}
  .lb-home .lb-hero__inner{
    padding:30px 20px 26px;
    max-width:none;
    width:100%;
  }
  .lb-home .lb-hero h1{
    font-size:clamp(34px,9.5vw,58px);
    line-height:1.02;
    text-shadow:none;
    margin-bottom:4px;
  }
  .lb-home .lb-hero__body{
    font-size:16.5px;
    line-height:1.6;
    max-width:none;
    margin:14px 0 22px;
  }
  .lb-home .lb-hero__ctas{gap:10px}
  .lb-home .lb-hero__ctas .lb-btn{flex:1 1 auto;text-align:center;padding:16px 18px}
  .lb-home .lb-hero__card{
    position:static;
    max-width:none;
    width:100%;
    margin:0;
    border-top:1px solid var(--rule);
  }
}

/* ---------------------------------------------------------------------------
   Header layout revision — client direction 2026-08-24:
   logo hard left, menu hard right (supersedes README §2 "Nav center").
   Also fixes: open drawer needs flex-wrap to claim its own row, and the
   stacked hero now runs to 1023px so it matches the nav breakpoint instead
   of leaving a broken 768-1023 band.
   --------------------------------------------------------------------------- */

/* desktop: nav sits at the right, beside the actions */
.lb-header__logo{flex:0 0 auto}
.lb-nav{justify-content:flex-end}
.lb-nav__list{gap:22px}

@media(max-width:1199px){
  .lb-nav__list{gap:16px}
  .lb-nav__list a{font-size:12.5px;letter-spacing:.08em}
}

/* tablet and phone: wrap the drawer onto its own row, keep the logo left */
@media(max-width:1023px){
  .lb-header__inner{flex-wrap:wrap;align-items:center}
  .lb-header__logo{order:1;flex:0 0 auto;justify-content:flex-start}
  .lb-header__actions{order:2;margin-left:auto}
  .lb-nav-toggle{order:3;margin-left:4px}
  .lb-nav{order:4;flex:0 0 100%;width:100%}
  .lb-nav.is-open{border-top:1px solid var(--rule);margin-top:12px}
  .lb-searchbox{order:5;flex:0 0 100%}

  /* stacked hero — same treatment as phone, now covering tablet too */
  .lb-home .lb-hero{
    aspect-ratio:auto;flex-direction:column;align-items:stretch;
    background-color:var(--forest);background-size:100% auto;
    background-repeat:no-repeat;background-position:top center;
    padding-top:55.86%;
  }
  .lb-home .lb-hero::before{display:none}
  .lb-home .lb-hero__inner{padding:30px 20px 26px;max-width:none;width:100%}
  .lb-home .lb-hero h1{font-size:clamp(34px,6.5vw,58px);line-height:1.02;text-shadow:none;margin-bottom:4px}
  .lb-home .lb-hero__body{font-size:16.5px;line-height:1.6;max-width:560px;margin:14px 0 22px}
  .lb-home .lb-hero__ctas{gap:10px}
  .lb-home .lb-hero__card{position:static;max-width:none;width:100%;margin:0;border-top:1px solid var(--rule)}
}

/* ---------------------------------------------------------------------------
   Mobile / tablet menu — client direction: slide in from the RIGHT and float
   over the page, matching the previous site. Fixed positioning means the
   drawer never displaces page content.
   --------------------------------------------------------------------------- */
@media(max-width:1023px){
  .lb-header__inner{flex-wrap:nowrap}          /* drawer no longer needs a row */

  .lb-nav{
    position:fixed;top:0;right:0;bottom:0;
    width:min(360px,86vw);
    display:block;                              /* always in the DOM, slid out */
    background:var(--cream);
    border-left:1px solid var(--rule);
    box-shadow:-18px 0 40px rgba(45,28,12,.16);
    transform:translateX(100%);
    transition:transform .28s cubic-bezier(.4,0,.2,1);
    z-index:60;
    overflow-y:auto;
    -webkit-overflow-scrolling:touch;
    padding:22px 26px 40px;
    margin:0;
    flex:none;
  }
  .lb-nav.is-open{transform:translateX(0)}

  .lb-nav__list{flex-direction:column;align-items:stretch;gap:0;padding-top:8px}
  .lb-nav__list li+li{border-top:1px solid var(--rule)}
  .lb-nav__list a{display:block;padding:16px 0;min-height:44px;font-size:14px;letter-spacing:.12em}

  .lb-nav-close{
    display:block;margin-left:auto;background:none;border:0;cursor:pointer;
    font:400 30px/1 Georgia,serif;color:var(--brown);
    min-width:44px;min-height:44px;padding:0 4px
  }

  .lb-backdrop{
    position:fixed;inset:0;background:rgba(45,28,12,.42);
    z-index:55;opacity:0;transition:opacity .28s ease;
  }
  .lb-backdrop.is-open{opacity:1}

  body.lb-nav-open{overflow:hidden}
}

/* desktop: no drawer chrome */
@media(min-width:1024px){
  .lb-nav-close,.lb-backdrop{display:none}
}

@media(prefers-reduced-motion:reduce){
  .lb-nav,.lb-backdrop{transition:none}
}

/* Drawer open/closed state, pinned to the ID so no class-level rule can
   outrank it regardless of source order. */
@media(max-width:1023px){
  #lb-nav{transform:translateX(100%)}
  #lb-nav.is-open{transform:translateX(0)}
}

/* ---------------------------------------------------------------------------
   Drawer footer (logo + social) and tap-highlight fix.
   The hamburger was staying pink after close: that is Android's default
   -webkit-tap-highlight-color, made persistent because focus returns to the
   toggle when the menu closes. Suppress the highlight, keep the focus ring
   for keyboard users via :focus-visible.
   --------------------------------------------------------------------------- */

.lb-nav-toggle,.lb-nav-close,.lb-search,.lb-bag,.lb-nav__list a,.lb-social a{
  -webkit-tap-highlight-color:transparent}
.lb-nav-toggle:focus:not(:focus-visible){outline:none}

@media(max-width:1023px){
  /* column layout so the footer can sit at the bottom of the panel */
  #lb-nav{display:flex;flex-direction:column}
  .lb-nav__list{flex:0 0 auto}

  .lb-nav__foot{
    margin-top:auto;padding-top:28px;
    display:flex;flex-direction:column;align-items:center;gap:16px;text-align:center
  }
  .lb-nav__logo{height:72px;width:auto;display:block;opacity:.95}

  .lb-social{display:flex;gap:10px;list-style:none;margin:0;padding:0}
  .lb-social a{
    display:flex;align-items:center;justify-content:center;
    width:44px;height:44px;                       /* 44px tap target */
    border:1px solid var(--rule-strong);color:var(--forest);
    transition:background .15s ease,color .15s ease,border-color .15s ease
  }
  .lb-social a:hover,.lb-social a:focus-visible{
    background:var(--forest);border-color:var(--forest);color:var(--cream)}
}

/* desktop: drawer footer is drawer-only */
@media(min-width:1024px){
  .lb-nav__foot{display:none}
}

/* ---------------------------------------------------------------------------
   Toggle focus state. Something in the plugin/theme stack sets outline-color
   to #CC3366, which painted a magenta box on the hamburger and persisted
   because focus returned to it after closing. Pin the states explicitly.
   --------------------------------------------------------------------------- */
.lb-nav-toggle,
.lb-nav-toggle:focus,
.lb-nav-toggle:active,
.lb-nav-toggle:hover{background:transparent;outline:none;box-shadow:none;border:0}
.lb-nav-toggle:focus-visible{outline:2px solid var(--forest);outline-offset:2px}

/* larger logos — header banner and drawer */
.lb-logo{height:116px}
@media(max-width:1023px){
  .lb-logo,.lb-header.is-stuck .lb-logo{height:88px}
  .lb-nav__logo{height:110px}
}
@media(max-width:600px){
  .lb-logo,.lb-header.is-stuck .lb-logo{height:76px}
  .lb-nav__logo{height:96px}
}

/* ---------------------------------------------------------------------------
   Stacking fix. .lb-header is position:sticky with z-index:40, so it forms a
   stacking context and the drawer's z-index:60 is scoped inside it — leaving
   the root-level backdrop (z-index:55) painted ON TOP of the whole drawer and
   eating every tap. Lift the header above the scrim while the menu is open;
   that also keeps the hamburger itself tappable to close.
   --------------------------------------------------------------------------- */
body.lb-nav-open .lb-header{z-index:70}

/* ---------------------------------------------------------------------------
   Client revision: tighter cream header bar with a larger logo, larger drawer
   logo, and a rule separating the drawer logo from the social row.
   The logo asset is a square badge with its own internal margin, so most of
   the "empty space" was bar padding — cut it back hard rather than only
   scaling the image.
   --------------------------------------------------------------------------- */
@media(max-width:1023px){
  .lb-header{padding:6px 20px}
  .lb-header.is-stuck{padding:4px 20px}
  .lb-logo{height:104px}
  .lb-header.is-stuck .lb-logo{height:72px}

  .lb-nav__logo{height:140px}

  /* divider between the logo and the social row */
  .lb-nav__foot{gap:0}
  .lb-social{
    width:100%;justify-content:center;
    border-top:1px solid var(--rule);
    margin-top:18px;padding-top:18px
  }
}
@media(max-width:600px){
  .lb-header{padding:4px 16px}
  .lb-header.is-stuck{padding:4px 16px}
  .lb-logo{height:92px}
  .lb-header.is-stuck .lb-logo{height:64px}
  .lb-nav__logo{height:126px}
}

/* ---------------------------------------------------------------------------
   Logo asset was retrimmed (attachment now has no transparent margin), so a
   given CSS height is all badge. Bands can be shorter while the mark reads
   larger. Drawer padding cut so the whole panel fits without scrolling.
   --------------------------------------------------------------------------- */
@media(max-width:1023px){
  .lb-header{padding:4px 20px}
  .lb-header.is-stuck{padding:3px 20px}
  .lb-logo{height:96px}
  .lb-header.is-stuck .lb-logo{height:70px}

  #lb-nav{padding:14px 22px 18px}
  .lb-nav-close{font-size:26px;min-height:38px}
  .lb-nav__list{padding-top:2px}
  .lb-nav__list a{padding:11px 0;min-height:44px;font-size:13.5px}

  .lb-nav__foot{margin-top:20px;padding-top:0;gap:0}
  .lb-nav__logo{height:118px}
  .lb-social{margin-top:14px;padding-top:14px}
}
@media(max-width:600px){
  .lb-header{padding:3px 16px}
  .lb-header.is-stuck{padding:3px 16px}
  .lb-logo{height:84px}
  .lb-header.is-stuck .lb-logo{height:62px}

  #lb-nav{padding:12px 20px 16px}
  .lb-nav__logo{height:104px}
}

/* Buffer so the drawer is not sitting at exactly zero headroom — a wrapped
   menu label or taller browser chrome would otherwise force it to scroll. */
@media(max-width:1023px){
  .lb-nav__foot{margin-top:10px}
  .lb-social{margin-top:10px;padding-top:10px}
}

/* ---------------------------------------------------------------------------
   Section 6 — "Just cured" spotlight: one large card plus two secondary.
   Photography does not exist yet, so image slots render the design's striped
   placeholder marking the required shot and ratio.
   --------------------------------------------------------------------------- */
.lb-shelf__grid{display:grid;grid-template-columns:1.5fr 1fr;gap:34px;align-items:start}
.lb-shelf__side{display:flex;flex-direction:column;gap:34px}

.lb-card{display:flex;flex-direction:column;gap:14px}
.lb-card__media{position:relative;display:block;line-height:0}
.lb-card__media img{width:100%;height:auto;aspect-ratio:1/1;object-fit:cover;display:block;
  transition:transform .3s ease-out}
.lb-card__media:hover img{transform:scale(1.02)}

.lb-slot{display:block;width:100%;aspect-ratio:1/1;position:relative;
  background:repeating-linear-gradient(135deg,#F5EBD3 0 9px,#EADCB8 9px 18px)}
.lb-slot__label{position:absolute;top:10px;right:10px;
  font:400 11px/1 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
  letter-spacing:.08em;color:var(--ink-muted);background:var(--cream);padding:5px 7px}

.lb-badge{position:absolute;top:10px;left:10px;
  font:700 11.5px/1 'Helvetica Neue',Helvetica,Arial,sans-serif;letter-spacing:.12em;
  text-transform:uppercase;background:var(--forest);color:var(--cream);padding:6px 9px}
.lb-chip{position:absolute;left:10px;bottom:10px;
  font:700 11.5px/1 'Helvetica Neue',Helvetica,Arial,sans-serif;letter-spacing:.08em;
  background:var(--cream);color:var(--ink-muted);padding:6px 9px;border:1px solid var(--rule-strong)}

.lb-card__row{display:flex;align-items:baseline;justify-content:space-between;gap:14px}
.lb-card__row h3{font:400 26px/1.1 Georgia,serif;color:var(--brown);margin:0}
.lb-card.is-lead .lb-card__row h3{font-size:34px}
.lb-card__row h3 a{color:inherit;text-decoration:none}
.lb-card__row h3 a:hover{color:var(--forest)}
.lb-card__price{font:400 16px/1 'Helvetica Neue',Helvetica,Arial,sans-serif;color:var(--ink);white-space:nowrap}
.lb-card .lb-note{font:400 14.5px/1.5 'Helvetica Neue',Helvetica,Arial,sans-serif;
  color:var(--ink-muted);margin:0;flex:1}

.lb-card__cta{display:block;text-align:center;text-decoration:none;cursor:pointer;
  border:1px solid var(--forest);background:none;color:var(--forest);
  font:700 12.5px/1 'Helvetica Neue',Helvetica,Arial,sans-serif;letter-spacing:.16em;
  text-transform:uppercase;padding:13px;transition:background .15s ease,color .15s ease}
.lb-card__cta:hover{background:var(--forest);color:var(--cream)}
.lb-card__cta.is-notify{border-color:var(--rule-strong);color:var(--ink-muted)}
.lb-card__cta.is-notify:hover{background:var(--rule-strong);color:var(--ink)}

@media(max-width:900px){
  .lb-shelf__grid{grid-template-columns:1fr;gap:28px}
  .lb-shelf__side{flex-direction:row;gap:20px}
  .lb-shelf__side .lb-card{flex:1 1 0}
  .lb-card.is-lead .lb-card__row h3{font-size:28px}
}
@media(max-width:600px){
  .lb-shelf__side{flex-direction:column;gap:28px}
}
@media(prefers-reduced-motion:reduce){
  .lb-card__media img{transition:none}
  .lb-card__media:hover img{transform:none}
}
