/* Aloha Peptidez — approved tropical brand system. */

/* ───────────────────────── FONTS ───────────────────────── */
@import url('https://fonts.googleapis.com/css2?family=Great+Vibes&family=Montserrat:wght@400;500;600;700&family=Playfair+Display:wght@600;700&display=swap');

/* ───────────────────────── TOKENS ───────────────────────── */
:root{
  --tropical-teal:#009C9A;
  --lagoon-blue:  #39C5C4;
  --seafoam:      #7EDBD6;
  --hilo-honey:   #FFD24D;
  --palm-green:   #2E7D6B;
  --coral-pink:   #FF6F91;
  --sand:         #F5E9D6;
  --white:        #FFFFFF;

  /* Compatibility aliases keep the existing components on the approved palette. */
  --paper:        var(--white);
  --paper-2:      var(--sand);
  --mist:         color-mix(in srgb, var(--seafoam) 24%, var(--white));
  --line:         color-mix(in srgb, var(--tropical-teal) 24%, var(--sand));
  --ink:          #07383B;
  --ink-2:        #16494C;
  --muted:        #49686A;
  --panel:        var(--white);
  --gold:         var(--hilo-honey);
  --gold-deep:    var(--tropical-teal);
  --gold-soft:    color-mix(in srgb, var(--hilo-honey) 32%, var(--white));
  --night:        var(--tropical-teal);
  --night-2:      color-mix(in srgb, var(--tropical-teal) 82%, var(--palm-green));
  --bone:         var(--white);
  --bone-muted:   color-mix(in srgb, var(--white) 84%, transparent);
  --hairline-d:   color-mix(in srgb, var(--white) 36%, transparent);
  --research:     var(--palm-green);
  --court:        var(--palm-green);
  --court-2:      color-mix(in srgb, var(--palm-green) 82%, var(--tropical-teal));
  --wine:         var(--tropical-teal);
  --wine-2:       color-mix(in srgb, var(--tropical-teal) 82%, var(--palm-green));
  --gold-tint:    color-mix(in srgb, var(--research) 12%, var(--paper)); /* product-card hover tint */
  --ink-tint:     color-mix(in srgb, var(--ink) 6%, var(--paper));     /* subtle margin-note tint */

  --container:    1180px;
  --nav-h:        92px;
  --statusline-h: 30px;

  /* Formal spacing scale — dramatic sections get the largest values so the scroll breathes. */
  --space-xs:     1.5rem;    /* 24px */
  --space-sm:     3rem;     /* 48px */
  --space-md:     6rem;      /* 96px — standard section */
  --space-lg:     10rem;     /* 160px — accent section */
  --space-xl:     14rem;     /* 224px — hero / closing conversion */

  --ease:         cubic-bezier(0.16,1,0.3,1);
  --ease-io:      cubic-bezier(0.4,0,0.2,1);
}

/* ───────────────────────── RESET ───────────────────────── */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{
  margin:0;
  background:var(--paper);
  color:var(--ink);
  font-family:'Montserrat',system-ui,sans-serif;
  font-weight:400;
  font-size:17px;
  line-height:1.62;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
  position:relative;
  min-height:100vh;
}
img,svg{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
button{font:inherit;cursor:pointer}
ul{margin:0;padding:0;list-style:none}
input,textarea,select{font:inherit;color:inherit}
:focus-visible{outline:3px solid var(--hilo-honey);outline-offset:3px}

body::before{content:none}
body>*{position:relative;z-index:2}

/* Shared interior-page surface contract. */
.shop-page,.gallery-page{
  background:var(--night);
  color:var(--ink);
}
.shop-page main,.gallery-page main{background:var(--paper)}

/* ───────────────────────── LAYOUT ───────────────────────── */
.container{
  max-width:var(--container);
  margin:0 auto;
  padding:0 32px;
}
@media(max-width:640px){
  .container{padding:0 20px}
}

.sec,.sec--mist,.sec--night{
  padding:88px 0;
}
@media(max-width:640px){
  .sec,.sec--mist,.sec--night{padding:56px 0}
}
/* Section size modifiers — dramatic sections get larger vertical breathing room. */
.sec--lg{padding:128px 0}
.sec--xl{padding:160px 0}
@media(max-width:640px){
  .sec--lg{padding:80px 0}
  .sec--xl{padding:96px 0}
}
/* these size modifiers sit on top of the surface modifier (e.g. .sec.sec--court.sec--lg) */
.sec--court,.sec--wine{
  padding:88px 0;
}
.sec--court.sec--lg,.sec--wine.sec--lg{padding:128px 0}
.sec--court.sec--xl,.sec--wine.sec--xl{padding:160px 0}
@media(max-width:640px){
  .sec--court,.sec--wine{padding:56px 0}
  .sec--court.sec--lg,.sec--wine.sec--lg{padding:80px 0}
}
.sec--mist{background:var(--paper-2)}
.sec--night{
  background:var(--night);
  color:var(--bone);
  border-top:2px solid var(--gold);
}
/* Friendly Lab Ledger depth sections — court-green trust band + wine-dark credential band.
   Both are dark surfaces: ALL descendants inherit --bone text via the color cascade below. */
.sec--court{
  background:var(--court);
  color:var(--bone);
  border-top:2px solid var(--gold);
}
.sec--wine{
  background:var(--wine);
  color:var(--bone);
  border-top:2px solid var(--gold);
}
/* cascade bone text to every descendant of a dark section so no dark-on-dark slips through.
   Buttons are excluded — they carry their own explicit bg+color contract (gold bg + night text). */
.sec--night,.sec--court,.sec--wine{color:var(--bone)}
.sec--night h1,.sec--night h2,.sec--night h3,.sec--night h4,.sec--night p,.sec--night li,
.sec--court h1,.sec--court h2,.sec--court h3,.sec--court h4,.sec--court p,.sec--court li,
.sec--wine h1,.sec--wine h2,.sec--wine h3,.sec--wine h4,.sec--wine p,.sec--wine li{
  color:var(--bone);
}
/* links inside dark sections inherit bone — but NOT buttons (.btn), which keep their own contract */
.sec--night a:not(.btn),.sec--court a:not(.btn),.sec--wine a:not(.btn){color:var(--bone)}
.sec--night .lede,.sec--court .lede,.sec--wine .lede,
.sec--night .body,.sec--court .body,.sec--wine .body,
.sec--night .rail__body,.sec--court .rail__body,.sec--wine .rail__body,
.sec--night .step__body,.sec--court .step__body,.sec--wine .step__body,
.sec--night .faq__a,.sec--court .faq__a,.sec--wine .faq__a{
  color:var(--bone-muted);
}
.sec--night .eyebrow,.sec--night .label,
.sec--court .eyebrow,.sec--court .label,
.sec--wine .eyebrow,.sec--wine .label{color:var(--bone-muted)}
.sec--court .eyebrow--gold,.sec--wine .eyebrow--gold{color:var(--gold)}
/* hairline rule helper */
.hairline{height:1px;background:var(--line);border:0;margin:0}
.sec--night .hairline,.sec--court .hairline,.sec--wine .hairline{background:var(--hairline-d)}

/* ───────────────────────── TOPBAR / NAV ───────────────────────── */
.topbar{
  position:sticky;top:0;z-index:50;
  height:var(--nav-h);
  display:flex;align-items:center;flex-direction:column;
  background:color-mix(in srgb, var(--paper) 92%, transparent);
  backdrop-filter:blur(8px);
  -webkit-backdrop-filter:blur(8px);
  border-bottom:1px solid var(--line);
  transition:background 220ms var(--ease-io),border-color 220ms var(--ease-io),backdrop-filter 220ms var(--ease-io);
}
.topbar.is-scrolled{
  background:color-mix(in srgb, var(--night) 92%, transparent);
  backdrop-filter:blur(10px);
  -webkit-backdrop-filter:blur(10px);
  border-bottom-color:var(--hairline-d);
}
.topbar__inner{
  max-width:var(--container);margin:0 auto;
  width:100%;height:100%;padding:0 32px;
  display:flex;align-items:center;justify-content:space-between;gap:24px;
}
@media(max-width:640px){
  .topbar__inner{padding:0 20px;gap:12px}
}
.topbar__brand{
  font-family:'Playfair Display',Georgia,serif;
  font-size:1.7rem;letter-spacing:0.02em;
  color:var(--ink);
  line-height:1;
  transition:color 220ms var(--ease-io);
}
.site-logo{
  display:block;width:auto;height:44px;max-width:180px;object-fit:contain;background:transparent;
}
.topbar.is-scrolled .topbar__brand{color:var(--bone)}
/* when topbar not scrolled (over hero), ink text variant on paper hero is bone by default since
   hero scrim is light; provide .topbar--ink for paper-only contexts */
.topbar--ink{background:var(--paper);border-bottom-color:var(--line)}
.topbar--ink .topbar__brand{color:var(--ink)}
.topbar--ink .topbar__link,.topbar--ink .topbar__cta{color:var(--ink)}
.topbar__nav{display:flex;align-items:center;gap:28px}
@media(max-width:880px){
  .topbar__nav{display:none}
}
.topbar__link{
  font-family:'Montserrat',system-ui,sans-serif;
  font-size:0.72rem;font-weight:700;
  letter-spacing:0.14em;text-transform:uppercase;
  color:var(--ink-2);
  transition:color 180ms var(--ease-io);
}
.topbar__link:hover,.topbar__link[aria-current="page"]{color:var(--gold-deep)}
.topbar.is-scrolled .topbar__link{color:var(--bone)}
.topbar.is-scrolled .topbar__link:hover,
.topbar.is-scrolled .topbar__link[aria-current="page"]{color:var(--gold)}
.topbar__cta{
  font-family:'Montserrat',system-ui,sans-serif;
  font-size:0.72rem;font-weight:700;letter-spacing:0.14em;text-transform:uppercase;
  color:var(--night);
  background:var(--gold);
  padding:9px 16px;border-radius:5px;
  white-space:nowrap;
  transition:background 180ms var(--ease-io);
}
.topbar__cta:hover{background:var(--gold-deep);color:var(--bone)}
/* mobile menu toggle */
.topbar__menu{
  display:none;
  font-family:'Montserrat',system-ui,sans-serif;font-size:0.72rem;font-weight:700;
  letter-spacing:0.14em;text-transform:uppercase;
  color:var(--ink);background:none;border:1.5px solid var(--ink);
  padding:7px 12px;border-radius:5px;
  transition:color 220ms var(--ease-io),border-color 220ms var(--ease-io);
}
.topbar.is-scrolled .topbar__menu{color:var(--bone);border-color:var(--bone)}
.topbar.is-menu-open .topbar__menu{color:var(--gold);border-color:var(--gold)}
@media(max-width:880px){
  .topbar__brand{min-width:0;flex:0 1 auto}
  .site-logo{height:38px;max-width:150px}
  .topbar__menu{display:block;flex:0 0 auto}
}

/* mobile menu drawer (hidden by default; [hidden] + .is-open) */
.topbar__drawer{
  display:none;
  background:color-mix(in srgb, var(--night) 96%, transparent);
  backdrop-filter:blur(10px);
  -webkit-backdrop-filter:blur(10px);
  border-bottom:1px solid var(--hairline-d);
  padding:16px 20px 22px;
}
.topbar.is-menu-open .topbar__drawer{display:block}
.topbar__drawer-nav{
  display:flex;flex-direction:column;gap:4px;
  max-width:var(--container);margin:0 auto;
}
.topbar__drawer-nav .topbar__link{
  display:block;
  padding:14px 4px;
  border-bottom:1px solid var(--hairline-d);
  font-size:0.78rem;
  color:var(--bone);
}
.topbar__drawer-nav .topbar__link:last-child{border-bottom:0}
.topbar__drawer-nav .topbar__link:hover,
.topbar__drawer-nav .topbar__link[aria-current="page"]{color:var(--gold)}

/* ───────────────────────── STATUSLINE ───────────────────────── */
.statusline{
  position:sticky;top:var(--nav-h);z-index:40;
  background:var(--night);
  color:var(--bone-muted);
  border-bottom:1px solid var(--hairline-d);
  height:var(--statusline-h);
  display:flex;align-items:center;
  font-family:'Montserrat',system-ui,sans-serif;
  font-size:0.68rem;font-weight:500;letter-spacing:0.12em;text-transform:uppercase;
}
.statusline__inner{
  max-width:var(--container);margin:0 auto;width:100%;
  padding:0 32px;
  display:flex;align-items:center;gap:20px;flex-wrap:wrap;
}
@media(max-width:640px){
  /* allow the statusline to wrap to two lines instead of clipping */
  .statusline{
    height:auto;min-height:var(--statusline-h);
    padding:6px 0;
  }
  .statusline__inner{
    padding:0 12px;
    gap:10px 14px;
    font-size:0.56rem;
    letter-spacing:0.1em;
  }
}
.statusline__item{display:flex;align-items:center;gap:8px}
.statusline__phone a{color:var(--gold);font-weight:700}
.statusline__dot{width:6px;height:6px;border-radius:50%;background:var(--research);display:inline-block}

/* ───────────────────────── TYPE SCALE ───────────────────────── */
.display{
  font-family:'Playfair Display',Georgia,serif;
  font-weight:400;
  font-size:clamp(3.2rem,7vw,6rem);
  line-height:0.92;
  letter-spacing:-0.035em;
  text-transform:uppercase;
  margin:0;
  color:inherit;
}
.h2{
  font-family:'Playfair Display',Georgia,serif;
  font-weight:400;
  font-size:clamp(2.2rem,4.4vw,3.6rem);
  line-height:0.96;
  letter-spacing:-0.022em;
  text-transform:uppercase;
  margin:0;
  color:inherit;
}
.h3{
  font-family:'Montserrat',system-ui,sans-serif;
  font-weight:600;
  font-size:clamp(1.15rem,1.6vw,1.45rem);
  line-height:1.2;
  letter-spacing:-0.012em;
  margin:0;
  color:inherit;
}
.lede{
  font-family:'Montserrat',system-ui,sans-serif;
  font-weight:500;
  font-size:clamp(1.15rem,1.4vw,1.3rem);
  line-height:1.5;
  margin:0;
  color:inherit;
}
.body{font-size:1.0625rem;line-height:1.62;margin:0}
/* Mono metadata labels — the "margin-note stamp" voice. Pushed to 0.12em tracking and a slightly
   smaller, heavier cut so mono chips scan as machine-stamped facts, not body weight. */
.label,.eyebrow{
  font-family:'Montserrat',system-ui,sans-serif;
  font-weight:700;
  font-size:0.72rem;
  line-height:1.25;
  letter-spacing:0.16em;
  text-transform:uppercase;
  margin:0;
  color:var(--muted);
}
.sec--night .eyebrow,.sec--night .label{color:var(--bone-muted)}
.eyebrow--gold{color:var(--gold-deep)}
.sec__head>.body:first-child,.hero__eyebrow.body,.cta-band__eyebrow.body{
  display:flex;align-items:center;gap:10px;
  font-family:'Montserrat',system-ui,sans-serif;font-size:0.9rem;font-weight:700;line-height:1.25;
  margin:0;color:var(--gold-deep);
}
.sec__head>.body:first-child::before,.hero__eyebrow.body::before,.cta-band__eyebrow.body::before{
  content:"";width:9px;height:9px;flex:0 0 9px;background:var(--gold);transform:rotate(45deg);
}

/* ───────────────────────── HERO ───────────────────────── */
.hero{
  position:relative;
  min-height:clamp(560px,82vh,760px);
  display:flex;align-items:flex-end;
  padding:44px 0;
  overflow:hidden;
  background:var(--paper);
}
@media(max-width:1024px){
  .hero{padding:56px 0}
}
@media(max-width:640px){
  .hero{padding:48px 0}
}
.hero--page{
  min-height:clamp(440px,58vh,580px);
  align-items:center;
  padding:80px 0;
}
/* Hero atmospheric field — layered: warm radial gold + ink wash + a faint molecular-dot lattice
   (the lab's peptide motif) sitting in the negative space. The lattice is a low-opacity radial-
   dot pattern so it reads as abstract science texture, not decoration. */
.hero__field{
  position:absolute;inset:0;z-index:0;
  background:
    radial-gradient(circle at 78% 22%, var(--paper-2) 0%, transparent 38%),
    radial-gradient(120% 90% at 80% 10%, color-mix(in srgb, var(--research) 18%, transparent) 0%, transparent 55%),
    radial-gradient(80% 70% at 8% 92%, color-mix(in srgb, var(--research) 14%, transparent) 0%, transparent 58%),
    radial-gradient(60% 50% at 92% 88%, color-mix(in srgb, var(--night) 8%, transparent) 0%, transparent 55%),
    var(--paper);
}
/* molecular-dot lattice — abstract peptide motif in the negative space (right side) */
.hero__field::after{
  content:"";position:absolute;inset:0;
  background-image:radial-gradient(circle, color-mix(in srgb, var(--research) 20%, transparent) 1.4px, transparent 1.6px);
  background-size:26px 26px;
  background-position:60% 40%;
  -webkit-mask-image:radial-gradient(40% 40% at 82% 30%, #000 0%, transparent 75%);
  mask-image:radial-gradient(40% 40% at 82% 30%, #000 0%, transparent 75%);
  opacity:0.5;
}
.hero--page .hero__field{
  background:
    radial-gradient(100% 80% at 85% 15%, var(--paper-2) 0%, transparent 60%),
    radial-gradient(70% 60% at 5% 95%, color-mix(in srgb, var(--research) 14%, transparent) 0%, transparent 60%),
    var(--paper);
}
.hero--page .hero__field::after{
  background-position:70% 35%;
  -webkit-mask-image:radial-gradient(30% 30% at 88% 25%, #000 0%, transparent 80%);
  mask-image:radial-gradient(30% 30% at 88% 25%, #000 0%, transparent 80%);
  opacity:0.4;
}
/* ink scrim — strengthened vignette so the hero has real depth (top + bottom ink wash + a soft
   right-edge vignette that grounds the molecular motif) */
.hero__scrim{
  position:absolute;inset:0;z-index:0;
  background:
    linear-gradient(180deg, color-mix(in srgb, var(--night) 12%, transparent) 0%, transparent 26%, transparent 68%, color-mix(in srgb, var(--night) 20%, transparent) 100%),
    radial-gradient(120% 80% at 50% 50%, transparent 55%, color-mix(in srgb, var(--night) 10%, transparent) 100%);
}
.hero__inner{
  position:relative;z-index:1;
  max-width:var(--container);margin:0 auto;width:100%;
  padding:0 32px;
  display:flex;flex-direction:column;gap:22px;
}
.hero__inner>*{max-width:680px}
.hero__inner>h1,.hero__inner>.hero__title{max-width:920px}
.hero__content{
  display:grid;
  grid-template-columns:minmax(0,1.1fr) minmax(320px,0.9fr);
  align-items:center;
  gap:48px;
  width:100%;
  max-width:none;
}
.hero__content>*{min-width:0}
@media(min-width:881px){
  .home-page .hero__content{grid-template-columns:minmax(0,1.25fr) minmax(320px,0.75fr)}
}
.hero__media{
  display:block;
  width:100%;
  aspect-ratio:4/3;
  overflow:hidden;
  border:1px solid var(--line);
  border-radius:5px;
  box-shadow:0 2px 0 var(--line);
}
.hero__media img{
  width:100%;
  height:100%;
  object-fit:cover;
}
@media(max-width:880px){
  .hero__content{grid-template-columns:minmax(0,1fr);gap:32px}
}
@media(max-width:640px){
  .hero__inner{padding:0 20px;gap:18px}
  .hero__content{gap:24px}
}
/* Hero display — pushed to award-tier scale: 90-120px on wide desktops, tightened tracking,
   tight line-height. The homepage hero is the moment; interior pages stay restrained. */
.hero:not(.hero--page) .display,
.hero:not(.hero--page) .hero__title{
  font-size:clamp(3.332rem,8.232vw,7.35rem);
  line-height:0.94;
  letter-spacing:-0.035em;
  hyphens:manual;
}
.hero--page .display{font-size:clamp(2.4rem,4.6vw,4.2rem);max-width:920px;line-height:0.98;letter-spacing:-0.025em}
@media(max-width:640px){
  .hero:not(.hero--page) .display,
  .hero__title{
    font-size:clamp(2.6rem,11vw,3.4rem);
    line-height:1.0;
    letter-spacing:-0.025em;
    margin:0 4px;
  }
  .hero--page .display{font-size:clamp(2rem,7vw,2.6rem);line-height:1.02;letter-spacing:-0.02em}
}
.hero__lede{max-width:600px}
.hero__cta{display:flex;flex-wrap:wrap;gap:16px;align-items:center}
.hero__meta{display:flex;flex-wrap:wrap;gap:12px;align-items:center;margin-top:8px}
/* hero meta chip row — chips span the full inner width so the catalog row
   stays on a single line and the hero keeps clearing the fold. */
.hero__inner>.hero__meta{max-width:none}
/* Hero eyebrow — brass mono stamp with a short gold rule, the ledger's opening margin note.
   The product-detail hero uses .crumb.hero__eyebrow (a breadcrumb) — skip the rule there. */
.hero__eyebrow:not(.crumb){
  position:relative;
  color:var(--ink);
}
.hero__eyebrow:not(.crumb)::before{
  content:"";display:inline-block;width:32px;height:2px;background:var(--gold);
  margin-right:12px;vertical-align:middle;
}

/* Hero summary — a 4-column ledger table grounding the bottom of the hero with the desk's
   core facts (PHONE / PRODUCT / PRICE / STATUS). Mirrors the trust strip's hairline-divided
   rail, scoped to the hero's paper ground + ink text. Compact so the hero still clears the fold. */
.hero-summary{
  display:grid;grid-template-columns:repeat(4,1fr);gap:0;
  max-width:760px;margin-top:4px;
  border-top:1px solid var(--line);
  background:var(--panel);
}
.hero-summary__col{
  padding:10px 14px;border-right:1px solid var(--line);
  display:flex;flex-direction:column;gap:4px;min-width:0;
}
.hero-summary__col:last-child{border-right:0}
.hero-summary__label{
  font-family:'Montserrat',system-ui,sans-serif;font-weight:700;
  font-size:0.58rem;letter-spacing:0.16em;text-transform:uppercase;
  color:var(--gold-deep);
}
.hero-summary__val{
  font-family:'Montserrat',system-ui,sans-serif;font-weight:500;
  font-size:0.82rem;line-height:1.3;color:var(--ink);word-break:break-word;
}
.hero-summary__val a{color:var(--ink)}
.hero-summary__val a:hover{color:var(--gold-deep)}
@media(max-width:640px){
  .hero-summary{grid-template-columns:1fr 1fr}
  .hero-summary__col{padding:9px 12px}
  .hero-summary__col:nth-child(2n){border-right:0}
}

/* ───────────────────────── BUTTONS ───────────────────────── */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:8px;
  font-family:'Montserrat',system-ui,sans-serif;
  font-weight:700;font-size:0.74rem;letter-spacing:0.12em;text-transform:uppercase;
  padding:15px 22px;border-radius:5px;
  border:1.5px solid transparent;
  text-align:center;line-height:1;
  transition:background 180ms var(--ease-io),color 180ms var(--ease-io),border-color 180ms var(--ease-io),transform 180ms var(--ease-io);
}
.btn--primary{
  background:var(--gold);color:var(--night);
  box-shadow:0 2px 0 var(--gold-deep);
}
.btn--primary:hover{background:var(--gold-deep);color:var(--bone);box-shadow:0 2px 0 var(--gold-deep);transform:translateY(-1px)}
.btn--ghost{background:transparent;color:var(--ink);border-color:var(--ink)}
.btn--ghost:hover{background:var(--ink);color:var(--paper)}
.btn--ghost-dark{background:transparent;color:var(--bone);border-color:var(--bone)}
.btn--ghost-dark:hover{background:var(--bone);color:var(--night)}
.btn__text{display:inline-block}
@media(max-width:640px){
  .btn{width:100%}
}

/* ───────────────────────── CHIPS / PILLS ───────────────────────── */
.chip{
  display:inline-flex;align-items:center;gap:6px;
  font-family:'Montserrat',system-ui,sans-serif;
  font-weight:700;font-size:0.66rem;letter-spacing:0.14em;text-transform:uppercase;
  padding:7px 13px;border-radius:999px;line-height:1;
  background:var(--mist);color:var(--ink);
}
.chip--gold{background:var(--research);color:var(--bone);font-weight:700}
.chip--research{background:var(--paper-2);color:var(--research)}
.chip--status{background:var(--night);color:var(--bone-muted)}

/* ───────────────────────── CARDS ───────────────────────── */
.card{
  background:var(--panel);
  border:1px solid var(--line);
  box-shadow:0 2px 0 var(--line);
  border-radius:5px;
  padding:28px;
  display:flex;flex-direction:column;gap:14px;
  position:relative;
  transition:transform 220ms var(--ease),border-color 220ms var(--ease-io),box-shadow 220ms var(--ease-io),background 220ms var(--ease-io);
}
.card:hover{
  transform:translateY(-4px);
  border-color:var(--ink);
  box-shadow:0 8px 0 var(--line);
  background:var(--gold-tint);
}
@media(max-width:640px){
  .card{padding:22px}
}
.card--product{gap:16px}
/* Serial label — the brass mono product code stamp sitting on the ledger line. */
.card__serial{
  font-family:'Montserrat',system-ui,sans-serif;
  font-weight:700;
  font-size:0.64rem;
  letter-spacing:0.16em;
  text-transform:uppercase;
  color:var(--gold-deep);
  display:inline-flex;align-items:center;gap:6px;
  padding-bottom:10px;
  border-bottom:1px solid var(--line);
  margin-bottom:2px;
}
.card__name{font-family:'Playfair Display',Georgia,serif;font-size:2rem;line-height:1;letter-spacing:-0.015em;text-transform:uppercase;color:var(--ink);font-weight:400}
.card__price{display:inline-flex;align-items:center;gap:6px}
.card__value{color:var(--muted);font-size:0.98rem;line-height:1.5}
.card__cta{
  font-family:'Montserrat',system-ui,sans-serif;font-weight:700;font-size:0.7rem;letter-spacing:0.14em;text-transform:uppercase;
  color:var(--ink);display:inline-flex;align-items:center;gap:6px;margin-top:auto;padding-top:6px;
  border-top:1px solid var(--line);
  transition:color 180ms var(--ease-io);
}
.card__cta:hover{color:var(--gold-deep)}
.card--panel,.panel{
  background:var(--panel);border:1px solid var(--line);box-shadow:0 2px 0 var(--line);
  border-radius:5px;padding:28px;
}
.sec--night .card,.sec--night .panel,
.sec--court .card,.sec--court .panel,
.sec--wine .card,.sec--wine .panel{
  background:var(--night-2);border-color:var(--hairline-d);box-shadow:none;color:var(--bone);
}
.sec--court .card,.sec--court .panel{background:var(--court-2)}
.sec--wine .card,.sec--wine .panel{background:var(--wine-2)}
.sec--night .card__name,.sec--night .card__value,
.sec--court .card__name,.sec--court .card__value,
.sec--wine .card__name,.sec--wine .card__value{color:var(--bone)}
.sec--night .card__value,.sec--court .card__value,.sec--wine .card__value{color:var(--bone-muted)}
.sec--night .card__cta,.sec--court .card__cta,.sec--wine .card__cta{color:var(--bone);border-top-color:var(--hairline-d)}
.sec--night .card__serial,.sec--court .card__serial,.sec--wine .card__serial{color:var(--gold);border-bottom-color:var(--hairline-d)}

.product-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px;align-items:stretch;width:100%}
.product-grid>*{height:100%;min-width:0}
.product-card__media{
  aspect-ratio:1 / 1;
  overflow:hidden;
  background:var(--color-surface, #f7faf9);
  margin:-1px -1px 2px;
  border-bottom:1px solid var(--line);
  border-radius:5px 5px 0 0;
}
.product-card__media img{
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center;
}
.product-bottle-image {
  display: block;
  width: 100%;
  aspect-ratio: 4 / 5;
  object-fit: contain;
  object-position: center;
  padding: 24px;
  background: var(--color-surface, #f5f8f7);
}
@media(max-width:640px){.product-bottle-image{padding:16px}}
.product-intro__media{
  overflow:hidden;
  border:1px solid var(--line);
  border-radius:5px;
  box-shadow:0 2px 0 var(--line);
}
.product-intro__media img{
  width:100%;
  aspect-ratio:4/3;
  object-fit:cover;
}
@media(max-width:640px){.product-grid{grid-template-columns:minmax(0,1fr);gap:16px}}

.product-guides__list{
  display:grid;
  gap:clamp(2rem,5vw,4rem);
}
.product-guide,.payment-info__figure{
  width:min(100%,56rem);
  margin-inline:auto;
}
.product-guide__media,.payment-info__media{display:block}
.product-guide__image,.payment-info__image{
  display:block;
  width:100%;
  max-width:100%;
  height:auto;
  object-fit:contain;
}
#product-information-klow .product-guide__media{
  width:min(100%,40rem);
  margin-inline:auto;
}
.payment-info__media{
  width:min(100%,40rem);
  margin-inline:auto;
}
.product-guide__caption{margin-top:1rem}
@media(max-width:880px){
  .product-guide,.payment-info__figure{width:100%}
}
@media(max-width:640px){
  .product-guide,.payment-info__figure{width:100%}
}

/* ───────────────────────── LEDGER RAIL ───────────────────────── */
/* Visible "ledger rails" — 1px hairline borders spanning the content width, with left-aligned
   mono labels sitting directly ON the line (the Friendly Lab Ledger signature). */
.ledger{
  display:flex;flex-direction:column;
  border-top:1px solid var(--line);
}
.ledger__row{
  display:grid;grid-template-columns:minmax(150px,210px) 1fr;gap:24px;
  padding:20px 0;border-bottom:1px solid var(--line);
  align-items:baseline;
}
@media(max-width:640px){
  .ledger__row{grid-template-columns:1fr;gap:6px}
}
.ledger__key{
  font-family:'Montserrat',system-ui,sans-serif;font-weight:700;font-size:0.7rem;letter-spacing:0.16em;text-transform:uppercase;
  color:var(--gold-deep);
}
.ledger__val{font-size:1rem;line-height:1.5;color:var(--ink)}
.sec--night .ledger,.sec--court .ledger,.sec--wine .ledger{border-top-color:var(--hairline-d)}
.sec--night .ledger__row,.sec--court .ledger__row,.sec--wine .ledger__row{border-bottom-color:var(--hairline-d)}
.sec--night .ledger__key,.sec--court .ledger__key,.sec--wine .ledger__key{color:var(--gold)}
.sec--night .ledger__val{color:var(--bone)}
.sec--court .ledger__val,.sec--wine .ledger__val{color:var(--bone)}

/* specs (2-col key/value grid) — same ledger-line treatment */
.specs{
  display:grid;grid-template-columns:1fr 1fr;gap:0;
  border-top:1px solid var(--line);
}
@media(max-width:640px){
  .specs{grid-template-columns:1fr}
}
.specs__row{
  grid-column:span 2;
  display:grid;grid-template-columns:minmax(150px,210px) 1fr;gap:24px;
  padding:18px 0;border-bottom:1px solid var(--line);align-items:baseline;
}
@media(max-width:640px){
  .specs__row{grid-column:span 1;grid-template-columns:1fr;gap:6px}
}
.specs__key{
  font-family:'Montserrat',system-ui,sans-serif;font-weight:700;font-size:0.7rem;letter-spacing:0.16em;text-transform:uppercase;
  color:var(--gold-deep);
}
.specs__val{font-size:1rem;line-height:1.5}
.sec--mist .specs,.sec--court .specs,.sec--wine .specs{border-top-color:var(--line)}

/* ───────────────────────── DIFFERENTIATOR RAIL ───────────────────────── */
.rail{
  display:grid;grid-template-columns:repeat(3,1fr);gap:24px;
  border-top:1px solid var(--line);
  padding-top:32px;
}
.blog-index .rail{grid-template-columns:repeat(2,minmax(0,1fr))}
@media(max-width:880px){
  .rail{grid-template-columns:1fr;gap:0}
  .blog-index .rail{grid-template-columns:repeat(2,minmax(0,1fr));gap:24px}
}
.rail__item{
  padding:0 20px 0 0;
  border-left:0;
}
.rail__item:not(:last-child){
  border-right:1px solid var(--line);
}
@media(max-width:880px){
  .rail__item{padding:24px 0;border-right:0;border-bottom:1px solid var(--line)}
  .rail__item:not(:last-child){border-bottom:1px solid var(--line)}
}
@media(max-width:640px){
  .blog-index .rail{grid-template-columns:minmax(0,1fr);gap:0}
}
.rail__num{
  font-family:'Montserrat',system-ui,sans-serif;font-weight:700;font-size:0.7rem;letter-spacing:0.18em;text-transform:uppercase;
  color:var(--gold-deep);display:block;margin-bottom:14px;
  padding-bottom:10px;border-bottom:1px solid var(--line);
}
.rail__title{margin-bottom:10px}
.rail__body{color:var(--muted);font-size:0.98rem;line-height:1.55}
.sec--night .rail,.sec--court .rail,.sec--wine .rail{border-top-color:var(--hairline-d)}
.sec--night .rail__item:not(:last-child),.sec--court .rail__item:not(:last-child),.sec--wine .rail__item:not(:last-child){border-right-color:var(--hairline-d)}
.sec--night .rail__num,.sec--court .rail__num,.sec--wine .rail__num{color:var(--gold);border-bottom-color:var(--hairline-d)}
.sec--night .rail__body,.sec--court .rail__body,.sec--wine .rail__body{color:var(--bone-muted)}

/* ───────────────────────── PROCESS ───────────────────────── */
.process{position:relative}
.process__rail{
  position:relative;
  display:grid;grid-template-columns:repeat(3,1fr);gap:24px;
  padding-top:32px;
}
.process__rail::before{
  content:"";position:absolute;left:0;right:0;top:0;height:1px;background:var(--line);
}
@media(max-width:880px){
  .process__rail{grid-template-columns:1fr;gap:0;padding-left:24px}
  .process__rail::before{left:8px;right:auto;top:0;bottom:0;width:1px;height:auto}
}
.step{position:relative;padding:0 20px 0 0}
.step__num{
  font-family:'Montserrat',system-ui,sans-serif;font-weight:700;font-size:0.7rem;letter-spacing:0.18em;text-transform:uppercase;
  color:var(--gold-deep);display:block;margin-bottom:14px;
  padding-bottom:10px;border-bottom:1px solid var(--line);width:fit-content;
}
.step__title{margin-bottom:10px}
.step__body{color:var(--muted);font-size:0.98rem;line-height:1.55}
@media(max-width:880px){
  .step{padding:24px 0 24px 16px;position:relative}
  .step::before{
    content:"";position:absolute;left:-16px;top:28px;width:9px;height:9px;border-radius:50%;
    background:var(--gold);border:2px solid var(--paper);
  }
}
.sec--night .process__rail::before,.sec--court .process__rail::before,.sec--wine .process__rail::before{background:var(--hairline-d)}
.sec--night .step__num,.sec--court .step__num,.sec--wine .step__num{color:var(--gold);border-bottom-color:var(--hairline-d)}
.sec--night .step__body,.sec--court .step__body,.sec--wine .step__body{color:var(--bone-muted)}

/* ───────────────────────── FAQ ───────────────────────── */
.faq{display:flex;flex-direction:column;border-top:1px solid var(--line)}
.faq__item{border-bottom:1px solid var(--line)}
.faq__q{
  font-family:'Montserrat',system-ui,sans-serif;font-weight:600;font-size:1.05rem;line-height:1.4;
  padding:20px 0;cursor:pointer;display:flex;justify-content:space-between;gap:16px;align-items:baseline;
  list-style:none;
}
.faq__q::-webkit-details-marker{display:none}
.faq__q::after{content:"+";font-family:'Montserrat',system-ui,sans-serif;font-weight:700;color:var(--gold-deep);font-size:1.1rem;flex-shrink:0}
.faq__item[open] .faq__q::after{content:"–"}
.faq__a{padding:0 0 20px 0;color:var(--muted);max-width:760px}
.sec--night .faq,.sec--court .faq,.sec--wine .faq{border-top-color:var(--hairline-d)}
.sec--night .faq__item,.sec--court .faq__item,.sec--wine .faq__item{border-bottom-color:var(--hairline-d)}
.sec--night .faq__a,.sec--court .faq__a,.sec--wine .faq__a{color:var(--bone-muted)}
.sec--night .faq__q::after,.sec--court .faq__q::after,.sec--wine .faq__q::after{color:var(--gold)}

/* ───────────────────────── QUOTE / PROOF ───────────────────────── */
.quote{
  max-width:860px;margin:0 auto;text-align:center;
  display:flex;flex-direction:column;gap:24px;align-items:center;
  position:relative;
}
.quote::before{
  content:"";
  display:block;width:48px;height:2px;background:var(--gold);
  margin-bottom:4px;
}
.sec--night .quote::before,.sec--court .quote::before,.sec--wine .quote::before{background:var(--gold)}
.quote__text{
  font-family:'Playfair Display',Georgia,serif;
  font-size:clamp(2rem,4vw,3.4rem);line-height:1.04;letter-spacing:-0.018em;text-transform:uppercase;
  color:var(--ink);
}
.sec--night .quote__text,.sec--court .quote__text,.sec--wine .quote__text{color:var(--bone)}
.quote__attr{
  font-family:'Montserrat',system-ui,sans-serif;font-weight:700;font-size:0.7rem;letter-spacing:0.16em;text-transform:uppercase;
  color:var(--gold-deep);
}
.sec--night .quote__attr,.sec--court .quote__attr,.sec--wine .quote__attr{color:var(--gold)}

/* ───────────────────────── EDITORIAL SPREAD ───────────────────────── */
.spread{
  display:grid;grid-template-columns:7fr 5fr;gap:48px;align-items:start;
}
@media(max-width:880px){
  .spread{grid-template-columns:1fr;gap:28px}
}
.spread__media{position:sticky;top:calc(var(--nav-h) + var(--statusline-h) + 32px)}
@media(max-width:880px){
  .spread__media{position:static}
}
.spread__body{display:flex;flex-direction:column;gap:20px}

/* ───────────────────────── TRUST STRIP ───────────────────────── */
.trust{
  display:grid;grid-template-columns:repeat(4,1fr);gap:0;
  border-top:1px solid var(--line);border-bottom:1px solid var(--line);
}
@media(max-width:640px){
  .trust{grid-template-columns:1fr 1fr}
}
.trust__item{padding:18px 20px;border-right:1px solid var(--line)}
.trust__item:last-child{border-right:0}
@media(max-width:640px){
  .trust__item{border-bottom:1px solid var(--line)}
  .trust__item:nth-child(2n){border-right:0}
  .trust__item:nth-last-child(-n+2){border-bottom:0}
}
.trust__label{
  font-family:'Montserrat',system-ui,sans-serif;font-weight:700;font-size:0.64rem;letter-spacing:0.16em;text-transform:uppercase;
  color:var(--gold-deep);display:block;margin-bottom:8px;padding-bottom:8px;border-bottom:1px solid var(--line);
}
.trust__val{font-size:1rem;line-height:1.4;color:var(--ink)}
.sec--night .trust,.sec--court .trust,.sec--wine .trust{border-top-color:var(--hairline-d);border-bottom-color:var(--hairline-d)}
.sec--night .trust__item,.sec--court .trust__item,.sec--wine .trust__item{border-right-color:var(--hairline-d)}
.sec--night .trust__label,.sec--court .trust__label,.sec--wine .trust__label{color:var(--gold);border-bottom-color:var(--hairline-d)}
.sec--night .trust__val{color:var(--bone)}
.sec--court .trust__val,.sec--wine .trust__val{color:var(--bone)}

/* 3-column trust variant — homepage product table without duplicated phone column */
.trust--3{grid-template-columns:repeat(3,1fr)}
@media(max-width:640px){
  .trust--3 .trust__item:nth-last-child(-n+2){border-bottom:1px solid var(--line)}
  .trust--3 .trust__item:last-child{border-bottom:0}
}

/* ───────────────────────── CONVERSION BAND ───────────────────────── */
.cta-band{padding:var(--space-xl) 0}
.sec--night > .cta-band{padding:0}
.gallery-page .cta-band{padding:96px 0}
.gallery-page .sec--night > .cta-band{padding:0}
.gallery-page .gallery-cta{padding:24px 0}
@media(max-width:640px){
  .cta-band{padding:88px 0}
  .gallery-page .cta-band{padding:64px 0}
  .sec--night > .cta-band,
  .gallery-page .sec--night > .cta-band{padding:0}
}
.cta-band__inner{
  max-width:760px;margin:0 auto;text-align:center;
  padding:0 32px;
  display:flex;flex-direction:column;gap:24px;align-items:center;
}
@media(max-width:640px){
  .cta-band__inner{padding:0 20px;gap:20px}
}
.cta-band__title{color:var(--bone);font-size:clamp(2.4rem,4.8vw,4rem);line-height:0.98;letter-spacing:-0.022em}
.cta-band__eyebrow{color:var(--gold)}
.cta-band__lede{color:var(--bone-muted);max-width:580px}
.cta-band__actions{display:flex;flex-wrap:wrap;gap:16px;justify-content:center;margin-top:12px}
@media(max-width:640px){
  .cta-band__actions .btn{width:100%}
}

/* ───────────────────────── BREADCRUMB ───────────────────────── */
.crumb{
  display:flex;flex-wrap:wrap;align-items:center;gap:8px;
  font-family:'Montserrat',system-ui,sans-serif;font-weight:700;font-size:0.68rem;letter-spacing:0.12em;text-transform:uppercase;
  color:var(--muted);
}
.crumb__item{color:var(--muted)}
.crumb__item[aria-current="page"]{color:var(--ink)}
.crumb__sep{color:var(--line)}

/* ───────────────────────── CONTACT / NAP / FORM ───────────────────────── */
.contact-block{
  display:grid;grid-template-columns:7fr 5fr;gap:48px;align-items:start;
}
.contact-block>*{min-width:0}
/* Tablet: stack the form and contact details before either column becomes too narrow. */
@media(max-width:880px) and (min-width:641px){
  .contact-block{grid-template-columns:minmax(0,1fr);gap:32px}
}
@media(max-width:640px){
  .contact-block{grid-template-columns:1fr;gap:32px}
}
.contact-form{
  display:flex;flex-direction:column;gap:20px;
  background:var(--ink-tint);
  border:1px solid var(--line);
  box-shadow:0 2px 0 var(--line);
  border-radius:5px;
  padding:28px;
}
@media(max-width:640px){
  .contact-form{padding:22px}
}
.form-field{display:flex;flex-direction:column;gap:8px}
.form-field label{
  font-family:'Montserrat',system-ui,sans-serif;font-weight:700;font-size:0.66rem;letter-spacing:0.16em;text-transform:uppercase;
  color:var(--gold-deep);
}
.form-field input,.form-field textarea,.form-field select{
  background:var(--paper);
  border:1.5px solid var(--line);
  border-radius:5px;
  padding:13px 15px;
  font-size:1rem;line-height:1.4;
  transition:border-color 180ms var(--ease-io),box-shadow 180ms var(--ease-io);
  width:100%;
}
.form-field input:focus,.form-field textarea:focus,.form-field select:focus{
  border-color:var(--ink);outline:none;box-shadow:0 0 0 3px color-mix(in srgb, var(--research) 20%, transparent);
}
.form-field textarea{min-height:130px;resize:vertical}
.form-success{
  background:color-mix(in srgb, var(--research) 12%, transparent);
  border:1px solid var(--research);
  border-radius:5px;
  padding:18px 20px;
  color:var(--ink);
  font-size:1rem;line-height:1.5;
}
.form-error{
  background:color-mix(in srgb, var(--wine) 8%, var(--paper));
  border:1px solid var(--wine);
  border-radius:5px;
  padding:14px 16px;
  color:var(--wine);
  font-size:1rem;line-height:1.5;
}

.nap{display:flex;flex-direction:column;gap:0;border-top:1px solid var(--line)}
.nap__item{display:grid;grid-template-columns:minmax(120px,160px) 1fr;gap:16px;padding:18px 0;border-bottom:1px solid var(--line);align-items:baseline}
@media(max-width:640px){
  .nap__item{grid-template-columns:1fr;gap:6px}
}
.nap__label{font-family:'Montserrat',system-ui,sans-serif;font-weight:700;font-size:0.66rem;letter-spacing:0.16em;text-transform:uppercase;color:var(--gold-deep)}
.nap__val{font-size:1rem;line-height:1.5;color:var(--ink)}
.nap__val a{color:var(--ink);border-bottom:1px solid var(--line)}
.nap__val a:hover{color:var(--gold-deep);border-bottom-color:var(--gold-deep)}
.nap__item:last-child{border-bottom:0}

/* honeypot */
.sf-hp{position:absolute;left:-9999px;top:auto;width:1px;height:1px;overflow:hidden}

/* ───────────────────────── FOOTER ───────────────────────── */
.footer{
  background:var(--night);color:var(--bone-muted);
  border-top:1px solid var(--hairline-d);
  padding:64px 0 32px;
}
@media(max-width:640px){
  .footer{padding:48px 0 28px}
}
.footer__inner{
  max-width:var(--container);margin:0 auto;padding:0 32px;
  display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:32px;
}
@media(max-width:1099px){
  .footer__inner{grid-template-columns:1fr 1fr;gap:28px}
}
@media(max-width:767px){
  .footer__inner{grid-template-columns:1fr;padding:0 20px}
}
.footer__col{display:flex;flex-direction:column;gap:10px}
.footer__link{
  font-size:0.92rem;line-height:1.5;color:var(--bone-muted);
  transition:color 180ms var(--ease-io);
}
.footer__link:hover{color:var(--gold)}
.footer__legal{
  max-width:var(--container);margin:48px auto 0;padding:20px 32px 0;
  border-top:1px solid var(--hairline-d);
  font-family:'Montserrat',system-ui,sans-serif;font-size:0.66rem;letter-spacing:0.1em;text-transform:uppercase;
  color:var(--bone-muted);
  display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;
}
@media(max-width:640px){
  .footer__legal{padding:20px 20px 0;flex-direction:column;gap:8px}
}
.footer .wordmark{
  font-family:'Playfair Display',Georgia,serif;font-size:2rem;letter-spacing:0.02em;color:var(--bone);line-height:1;margin-bottom:8px;
}
.footer-logo{
  display:block;width:auto;height:96px;max-width:260px;object-fit:contain;
  background:var(--panel);padding:10px;border-radius:4px;
}

/* ───────────────────────── WORDMARK ───────────────────────── */
.wordmark{
  font-family:'Playfair Display',Georgia,serif;letter-spacing:0.02em;line-height:1;color:inherit;
}
.wordmark--lg{font-size:2.4rem}

/* ───────────────────────── SECTION HEAD ───────────────────────── */
/* eyebrow + h2 + intro body block that sits above a section's grid/rail. The eyebrow sits on a
   short brass ledger line — the margin-note stamp on the rule. */
.sec__head{
  display:flex;flex-direction:column;gap:14px;
  margin-bottom:44px;
  position:relative;
}
.sec__head .eyebrow{
  position:relative;
  padding-bottom:12px;
  border-bottom:1px solid var(--line);
  width:fit-content;
  max-width:100%;
}
.sec--night .sec__head .eyebrow,
.sec--court .sec__head .eyebrow,
.sec--wine .sec__head .eyebrow{border-bottom-color:var(--hairline-d)}
.sec__intro{max-width:760px}
.sec__action{margin-top:24px;display:inline-flex}

/* panel laid out as a vertical stack with consistent gap */
.panel--stack{display:flex;flex-direction:column;gap:16px}

/* ───────────────────────── SKIP LINK ───────────────────────── */
.skip-link{
  position:absolute;left:-9999px;top:auto;width:1px;height:1px;overflow:hidden;
}
.skip-link:focus{
  position:fixed;top:12px;left:12px;width:auto;height:auto;
  background:var(--gold);color:var(--night);padding:10px 16px;border-radius:5px;
  font-family:'Montserrat',system-ui,sans-serif;font-weight:700;font-size:0.72rem;letter-spacing:0.14em;text-transform:uppercase;
  z-index:100;
}

/* ───────────────────────── MOTION ───────────────────────── */
/* page-load staggered reveal (hero children only) */
@keyframes ap-fade-up{
  from{opacity:0;transform:translateY(18px)}
  to{opacity:1;transform:none}
}
html.js .hero__eyebrow,
html.js .hero__title,
html.js .hero__lede,
html.js .hero__cta,
html.js .hero__meta,
html.js .hero-summary{
  opacity:0;
  animation:ap-fade-up 620ms var(--ease) forwards;
}
html.js .hero__eyebrow{animation-delay:0ms}
html.js .hero__title{animation-delay:120ms}
html.js .hero__lede{animation-delay:240ms}
html.js .hero__cta{animation-delay:360ms}
html.js .hero__meta{animation-delay:440ms}
html.js .hero-summary{animation-delay:560ms}

/* below-fold section reveal (progressive enhancement) */
html.js .reveal{opacity:0;transform:translateY(16px)}
.reveal.is-revealed{
  opacity:1;transform:none;
  transition:opacity 560ms var(--ease),transform 560ms var(--ease);
}

/* reduced motion */
@media(prefers-reduced-motion:reduce){
  html.js .hero__eyebrow,
  html.js .hero__title,
  html.js .hero__lede,
  html.js .hero__cta,
  html.js .hero__meta,
  html.js .hero-summary{
    animation:none;opacity:1;transform:none;
  }
  html.js .reveal{opacity:1;transform:none}
  .reveal.is-revealed{transition:none}
  *,*::before,*::after{
    animation-duration:0.001ms !important;
    animation-iteration-count:1 !important;
    transition-duration:0.001ms !important;
    scroll-behavior:auto !important;
  }
}

/* Gallery grid */
.gallery-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:24px;
  align-items:stretch;
  width:100%;
}
.gallery-grid>*{height:100%}
.gallery-grid .gallery__item,.gallery-grid .gallery-item{display:flex;flex-direction:column}
.gallery-grid .gallery__img{
  height:auto;
  aspect-ratio:1/1;
  object-fit:contain;
  background:var(--panel);
}
@media(max-width:960px){
  .gallery-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:640px){
  .gallery-grid{grid-template-columns:minmax(0,1fr);gap:16px}
}

.gallery{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:24px;
  align-items:start;
  width:100%;
}
.gallery__item,.gallery-item{
  margin:0;
  min-width:0;
  position:relative;
  overflow:hidden;
  border-radius:5px;
  border:1px solid var(--line);
  box-shadow:0 2px 0 var(--line);
  background:var(--panel);
  transition:transform 220ms var(--ease),border-color 220ms var(--ease-io),box-shadow 220ms var(--ease-io);
}
.gallery__item:hover,.gallery-item:hover{
  transform:translateY(-4px);
  border-color:var(--ink);
  box-shadow:0 8px 0 var(--line);
}
.gallery__item:focus-within,.gallery-item:focus-within{
  outline:2px solid var(--gold);
  outline-offset:3px;
}
.gallery__img{
  width:100%;
  height:100%;
  aspect-ratio:1/1;
  object-fit:cover;
  display:block;
}
.gallery__caption{
  padding:14px 16px;
  border-top:1px solid var(--line);
  color:var(--ink);
  font-family:'Montserrat',system-ui,sans-serif;
  font-size:0.68rem;
  font-weight:700;
  letter-spacing:0.08em;
  line-height:1.45;
  text-transform:uppercase;
}
@media(max-width:960px){
  .gallery{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:640px){
  .gallery{grid-template-columns:minmax(0,1fr);gap:16px}
}

/* ─── Shop page additions ─── */
.shop-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(18rem, 1fr));
  gap: var(--space-lg, 2rem);
}

.product-card {
  background: var(--panel);
  border: 1px solid var(--line);
  padding: var(--space-md, 1.5rem);
  display: flex;
  flex-direction: column;
  gap: 16px;
  min-width: 0;
}

.product-card:focus-within {
  outline: 2px solid var(--gold);
  outline-offset: 3px;
}

.product-card .button,
.product-card .btn,
.contact-form button[type="submit"],
.contact-form input[type="submit"],
.contact-form .button,
.contact-form .btn {
  width: 100%;
  min-height: 44px;
  margin-top: auto;
  background: var(--gold);
  color: var(--night);
  border: 1.5px solid transparent;
  border-radius: 5px;
  box-shadow: 0 2px 0 var(--gold-deep);
  font-family: 'Montserrat', system-ui, sans-serif;
  font-weight: 700;
}

.product-card .button:hover,
.product-card .btn:hover,
.contact-form button[type="submit"]:hover,
.contact-form input[type="submit"]:hover,
.contact-form .button:hover,
.contact-form .btn:hover {
  background: var(--gold-deep);
  color: var(--bone);
}

.product-card .button:focus-visible,
.product-card .btn:focus-visible,
.contact-form button[type="submit"]:focus-visible,
.contact-form input[type="submit"]:focus-visible,
.contact-form .button:focus-visible,
.contact-form .btn:focus-visible {
  outline: 3px solid var(--gold);
  outline-offset: 3px;
}

.includes-note {
  font-size: 0.95rem;
  color: var(--ink);
  margin-top: 0.75rem;
}

.shop-product-information { padding-block-start: clamp(3rem, 5vw, 4.5rem); }

.product-information-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 280px), 1fr));
  gap: clamp(1rem, 2.5vw, 2rem);
  align-items: start;
}

.product-info-card { min-width: 0; }

.product-info-card__media {
  width: min(100%, 400px);
  height: auto;
  min-height: 0;
  aspect-ratio: auto;
  margin-inline: auto;
}

.product-info-card__image {
  display: block;
  width: 100%;
  height: auto;
  max-height: 420px;
  object-fit: contain;
}

.product-info-card h3 { overflow-wrap: break-word; }

@media(max-width:767px) {
  .product-information-grid { grid-template-columns: minmax(0, 1fr); }
  .product-info-card,
  .product-info-card__media,
  .product-info-card__image { max-width: 100%; }
}

/* ─── Blog index and article ─── */
.blog-index,.blog-article,.article-page{
  background:var(--paper);
  color:var(--ink);
  overflow-wrap:anywhere;
}
.blog-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(min(100%,320px),1fr));
  gap:24px;
}
.blog-index__grid{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(min(100%,280px),1fr));
  gap:24px;
}
.blog-card{
  min-width:0;
  display:flex;
  flex-direction:column;
  gap:16px;
  padding:28px;
  background:var(--panel);
  border:1px solid var(--line);
  box-shadow:0 2px 0 var(--line);
  border-radius:5px;
  transition:transform 220ms var(--ease),border-color 220ms var(--ease-io),box-shadow 220ms var(--ease-io);
}
.article-card{
  min-width:0;
  padding:28px;
  background:var(--panel);
  border:1px solid var(--line);
  box-shadow:0 2px 0 var(--line);
  border-radius:5px;
}
.blog-card:hover{
  transform:translateY(-4px);
  border-color:var(--ink);
  box-shadow:0 8px 0 var(--line);
}
.blog-card:focus-within{
  outline:2px solid var(--gold);
  outline-offset:3px;
}
.blog-card__meta,.blog-article__meta{
  display:flex;
  flex-wrap:wrap;
  gap:8px 18px;
  font-family:'Montserrat',system-ui,sans-serif;
  font-size:0.7rem;
  font-weight:700;
  letter-spacing:0.12em;
  line-height:1.5;
  text-transform:uppercase;
  color:var(--muted);
}
.blog-card__title,.blog-article__title{
  font-family:'Playfair Display',Georgia,serif;
  font-weight:400;
  line-height:1;
  text-transform:uppercase;
  color:var(--ink);
}
.blog-card__title{font-size:clamp(1.8rem,3vw,2.6rem)}
.blog-card__excerpt{font-size:1rem;line-height:1.65;color:var(--ink-2)}
.blog-card__link,.blog-article__prose a,.blog-article__faq a{
  color:var(--ink);
  text-decoration:underline;
  text-decoration-color:var(--gold-deep);
  text-decoration-thickness:2px;
  text-underline-offset:0.2em;
}
.blog-card__link{
  width:fit-content;
  margin-top:auto;
  font-family:'Montserrat',system-ui,sans-serif;
  font-size:0.72rem;
  font-weight:700;
  letter-spacing:0.12em;
  text-transform:uppercase;
}
.blog-card__link:hover,.blog-article__prose a:hover,.blog-article__faq a:hover{
  color:var(--gold-deep);
  text-decoration-color:var(--ink);
}
.blog-card__link:focus-visible,.blog-article__prose a:focus-visible,.blog-article__faq a:focus-visible{
  outline:2px solid var(--gold);
  outline-offset:3px;
}
.blog-article__header{
  max-width:var(--container);
  margin:0 auto;
  padding:80px 32px 48px;
  border-bottom:1px solid var(--line);
}
.blog-article__title{
  max-width:960px;
  margin:16px 0 20px;
  font-size:clamp(3rem,7vw,6rem);
  letter-spacing:-0.03em;
}
.blog-article__prose{
  max-width:70ch;
  margin:0 auto;
  padding:64px 32px;
  font-size:clamp(1rem,1.5vw,1.125rem);
  line-height:1.7;
}
.blog-article__prose h2,.blog-article__prose h3{
  font-family:'Playfair Display',Georgia,serif;
  font-weight:400;
  line-height:1.05;
  text-transform:uppercase;
  color:var(--ink);
}
.blog-article__prose h2{
  margin:2.5rem 0 1rem;
  padding-top:1rem;
  border-top:2px solid var(--gold);
  font-size:clamp(2rem,4vw,3rem);
}
.blog-article__prose h3{margin:2rem 0 0.75rem;font-size:clamp(1.5rem,3vw,2rem)}
.blog-article__prose p,.blog-article__prose ul,.blog-article__prose ol{margin:0 0 1.25rem}
.blog-article__prose ul,.blog-article__prose ol{padding-left:1.4rem}
.blog-article__prose ul{list-style:disc}
.blog-article__faq{
  margin:3rem 0 0;
  padding:24px 0;
}
.blog-article__faq-section{padding:0}
.blog-article__faq-item{padding:1.25rem 0;border-bottom:1px solid var(--line)}
.blog-article__faq-item:last-child{border-bottom:0}
.blog-article__faq-question{
  margin:0 0 0.5rem;
  font-weight:700;
  line-height:1.4;
}
.blog-article__faq-answer{margin:0;color:var(--ink-2)}
.blog-article__cta{
  max-width:70ch;
  margin:0 auto 80px;
  padding:32px;
  background:var(--paper-2);
  border:1px solid var(--line);
  border-top:3px solid var(--gold);
}
.blog-article__cta .btn{margin-top:16px}
.blog-article__cta .eyebrow--gold{color:var(--ink-2)}
.article-shell{
  width:min(100% - 40px,800px);
  margin-inline:auto;
  min-width:0;
  padding:88px 0;
}
.article-header{
  max-width:900px;
  margin:0 auto 48px;
  padding-bottom:32px;
  border-bottom:1px solid var(--line);
}
.article-meta,.article-breadcrumb{
  display:flex;
  flex-wrap:wrap;
  gap:0.75rem 1.5rem;
  color:var(--muted);
  font-family:'Montserrat',system-ui,sans-serif;
  font-size:0.72rem;
  font-weight:700;
  letter-spacing:0.08em;
  text-transform:uppercase;
}
.article-breadcrumb{
  align-items:center;
  margin-bottom:24px;
}
.article-breadcrumb::before{
  content:"";
  width:32px;
  height:2px;
  flex:0 0 32px;
  background:var(--gold);
}
.article-body{
  width:min(100%,720px);
  margin-inline:auto;
  color:var(--ink);
  font-family:'Montserrat',system-ui,sans-serif;
  font-size:1.0625rem;
  line-height:1.7;
}
.article-body p,.article-body li{
  margin-block:1.25rem;
  font-size:inherit;
  line-height:1.7;
}
.article-body h1,.article-body h2,.article-body h3,
.article-page .display-heading{
  font-family:'Playfair Display',Georgia,serif;
}
.article-body h2{
  margin-top:48px;
  padding-top:16px;
  border-top:2px solid var(--gold);
}
.article-faq{
  margin-block:3rem;
  padding:28px;
  background:var(--panel);
  border:1px solid var(--line);
  border-top:2px solid var(--gold);
  border-radius:5px;
}
.blog-index :focus-visible,.article-page :focus-visible{
  outline:2px solid var(--research);
  outline-offset:3px;
}
.article-cta{
  margin-block:3rem;
  padding:28px;
  background:var(--night);
  color:var(--bone);
  border-top:2px solid var(--gold);
  border-radius:5px;
}
.faq-list{
  margin-block:2rem;
  border-top:1px solid var(--line);
}
.faq-item,.faq-list > *{
  padding:20px 0;
  border-bottom:1px solid var(--line);
}
@media(max-width:880px){
  .blog-index__grid{grid-template-columns:minmax(0,1fr)}
}
@media(max-width:768px){
  .blog-grid,.blog-index__grid{grid-template-columns:minmax(0,1fr)}
  .blog-index .container,.article-page .container{padding-inline:20px}
  .article-card,.article-body,.article-faq,.article-breadcrumb{
    min-width:0;
    max-width:100%;
    overflow-wrap:anywhere;
  }
  .blog-index button,.blog-index input,.blog-index select,.blog-index textarea,
  .article-page button,.article-page input,.article-page select,.article-page textarea{
    max-width:100%;
  }
}
@media(max-width:767px){
  .article-shell{
    width:min(100% - 40px,100%);
    min-width:0;
    padding:56px 0;
    overflow-x:hidden;
  }
  .article-shell h1,.article-header h1{
    font-size:clamp(2rem,10vw,3rem);
  }
  .article-header,.article-body,.article-body *,.blog-card,.faq-list,.faq-item,.article-cta{
    min-width:0;
    max-width:100%;
    overflow-wrap:anywhere;
    word-break:break-word;
  }
}
@media(max-width:640px){
  .blog-card{padding:22px}
  .blog-article__header{padding:56px 20px 36px}
  .blog-article__prose{padding:48px 20px}
  .blog-article__cta{margin:0 20px 56px;padding:24px 20px}
  .blog-card__title,.blog-article__title,.blog-article__faq-question,.blog-article__faq-answer{
    overflow-wrap:anywhere;
  }
}

/* ───────────────── APPROVED TROPICAL BRAND HANDOFF ───────────────── */
html{scroll-padding-top:calc(var(--nav-h) + var(--statusline-h))}
body{overflow-x:hidden}
body,button,input,select,textarea{font-family:'Montserrat',system-ui,sans-serif}
h1,h2,h3,h4,
.display,.h2,.h3,.card__name,.quote__text,.cta-band__title,
.blog-card__title,.blog-article__title,.blog-article__prose h2,
.blog-article__prose h3,.article-body h1,.article-body h2,
.article-body h3,.article-page .display-heading,.wordmark,
.footer .wordmark{
  font-family:'Playfair Display',Georgia,serif;
  font-weight:700;
  text-transform:none;
}
.display{
  font-size:clamp(2.8rem,6.5vw,5.75rem);
  line-height:1.02;
  letter-spacing:-0.035em;
}
.h1{font-size:clamp(2.8rem,5vw,4.8rem);line-height:1.05;letter-spacing:-.03em;margin:0}
.h2{
  font-size:clamp(2.15rem,4.4vw,3.8rem);
  line-height:1.08;
  letter-spacing:-0.025em;
}
.h3{font-size:clamp(1.3rem,2vw,1.7rem);line-height:1.2}
.accent-script{font-family:'Great Vibes',cursive;font-weight:400;text-transform:none}
.topbar__link,.topbar__cta,.topbar__menu,.statusline,
.btn,.chip,.label,.eyebrow,.trust__label,.card__serial,.card__cta,
.ledger__key,.specs__key,.rail__num,.step__num,.crumb,
.form-field label,.nap__label,.footer__legal,.skip-link:focus,
.blog-card__meta,.blog-article__meta,.blog-card__link,
.article-meta,.article-breadcrumb,.gallery__caption,
.product-card .button,.product-card .btn,
.contact-form button[type="submit"],.contact-form input[type="submit"],
.contact-form .button,.contact-form .btn{
  font-family:'Montserrat',system-ui,sans-serif;
  font-weight:600;
}

img,svg,video{max-width:100%;height:auto}
p,li,a,dd,dt,address{overflow-wrap:anywhere}
a[href^="mailto:"],a[href^="tel:"]{white-space:nowrap;overflow-wrap:normal}
button,a.btn,.topbar__link,.topbar__menu,.topbar__cta,
input,select{min-height:44px}

.sec--mist{background:color-mix(in srgb,var(--seafoam) 22%,var(--white))}
.sec--night{background:var(--tropical-teal);border-top-color:var(--seafoam)}
.sec--court{background:var(--palm-green);border-top-color:var(--seafoam)}
.sec--wine{background:var(--tropical-teal);border-top-color:var(--coral-pink)}
.sec--sand{background:var(--sand)}
.sec--lagoon{background:color-mix(in srgb,var(--lagoon-blue) 22%,var(--white))}
.sec--seafoam{background:color-mix(in srgb,var(--seafoam) 28%,var(--white))}

/* Slim, factual site-wide announcement. */
.announcement-bar{
  background:var(--tropical-teal);
  color:var(--white);
  border:0;
  min-height:30px;
  display:grid;
  place-items:center;
  padding:0 20px;
  text-align:center;
  text-transform:uppercase;
  letter-spacing:.18em;
  font:600 11px/1 'Montserrat',sans-serif;
}

.topbar,.topbar--ink,.topbar.is-scrolled{
  min-height:92px;
  height:auto;
  background:color-mix(in srgb,var(--white) 96%,transparent);
  color:var(--ink);
  border-bottom:1px solid var(--line);
  box-shadow:0 8px 24px color-mix(in srgb,var(--tropical-teal) 10%,transparent);
}
.topbar__inner,.site-header__inner{
  min-height:92px;
  height:auto;
  gap:clamp(18px,3vw,42px);
}
.topbar__brand{display:flex;align-items:center;min-height:44px}
.site-logo{display:block;width:88px;height:auto;max-width:none;object-fit:contain}
.topbar.is-scrolled .topbar__brand,
.topbar.is-scrolled .topbar__link{color:var(--ink)}
.topbar__nav{gap:clamp(18px,2.4vw,32px)}
.topbar__link{
  display:inline-flex;
  align-items:center;
  color:var(--ink);
  font-size:.82rem;
  letter-spacing:.025em;
  text-transform:none;
}
.topbar__link:hover,.topbar__link[aria-current="page"],
.topbar.is-scrolled .topbar__link:hover,
.topbar.is-scrolled .topbar__link[aria-current="page"]{color:var(--tropical-teal)}
.topbar__cta{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:44px;
  padding:11px 20px;
  border-radius:999px;
  background:var(--tropical-teal);
  color:var(--white);
  font-size:.8rem;
  letter-spacing:.025em;
  text-transform:none;
}
.topbar__cta:hover{background:var(--palm-green);color:var(--white)}
.topbar__menu{
  min-width:44px;
  min-height:44px;
  padding:9px 12px;
  border:2px solid var(--tropical-teal);
  border-radius:999px;
  color:var(--tropical-teal);
  font-size:.75rem;
  letter-spacing:.02em;
  text-transform:none;
}
.topbar.is-scrolled .topbar__menu{color:var(--tropical-teal);border-color:var(--tropical-teal)}
.topbar.is-menu-open .topbar__menu{color:var(--palm-green);border-color:var(--palm-green)}
.topbar.is-menu-open .topbar__brand{pointer-events:none}
.topbar__drawer{
  position:absolute;
  z-index:49;
  inset:100% 0 auto;
  max-height:calc(100dvh - var(--nav-h));
  overflow-y:auto;
  background:var(--tropical-teal);
  border-bottom:4px solid var(--seafoam);
  padding:16px 20px 24px;
}
.topbar__drawer[hidden]{display:none}
.topbar__drawer-nav .topbar__link{
  min-height:48px;
  color:var(--white);
  border-bottom-color:color-mix(in srgb,var(--white) 38%,transparent);
  font-size:.92rem;
}
.topbar__drawer-nav .topbar__link:hover,
.topbar__drawer-nav .topbar__link[aria-current="page"]{color:var(--hilo-honey)}

.hero{
  min-height:clamp(600px,82vh,820px);
  align-items:center;
  padding:clamp(48px,5vw,72px) 0;
  background:var(--sand);
}
@media(min-width:641px){
  .hero:not(.hero--page) .display,
  .hero:not(.hero--page) .hero__title{
    font-size:clamp(3.25rem,6vw,5.5rem);
    line-height:1;
  }
}
.hero__field{
  background-image:
    linear-gradient(90deg,color-mix(in srgb,var(--sand) 96%,transparent) 0%,color-mix(in srgb,var(--sand) 88%,transparent) 42%,color-mix(in srgb,var(--seafoam) 18%,transparent) 72%),
    url('/assets/brand/hero-scenery.webp');
  background-position:center;
  background-repeat:no-repeat;
  background-size:cover;
}
.hero__field::after{content:none}
.hero__scrim{
  background:linear-gradient(90deg,color-mix(in srgb,var(--white) 28%,transparent),transparent 62%);
}
.hero__content{grid-template-columns:minmax(0,1fr) minmax(320px,.9fr);gap:clamp(32px,6vw,80px)}
.hero__content>div{position:relative;z-index:2}
.hero__media,.hero__visual{
  position:relative;
  display:grid;
  place-items:center;
  min-width:0;
  isolation:isolate;
}
.hero__visual{overflow:hidden;overflow:clip}
.hero__media img,.hero__visual img{max-height:600px;object-fit:contain}
@media(min-width:768px){
  .hero__visual-layout{
    width:100%;
    box-sizing:border-box;
    display:grid;
    grid-template-columns:minmax(0,1fr);
    align-items:end;
    padding-inline:clamp(16px,2vw,32px);
  }
  .hero__product-composition{min-width:0}
}
@media(min-width:1100px){
  .hero-showcase{
    display:grid;
    grid-template-columns:minmax(300px,1fr);
    align-items:center;
    width:100%;
    min-width:0;
  }
  .hero-product-card{
    width:100%;
    max-width:360px;
    min-width:0;
    justify-self:center;
  }
  .hero-product-card img{
    display:block;
    width:100%;
    max-width:none;
    height:auto;
    object-fit:contain;
  }
}
@media(max-width:767px){
  .hero__visual-layout{
    width:100%;
    box-sizing:border-box;
    display:flex;
    flex-direction:column;
    align-items:center;
    gap:16px;
    padding-inline:16px;
  }
  .hero__product-composition{width:100%;min-width:0}
}
.brand-decoration,.tropical-decoration{pointer-events:none;user-select:none}

.btn{
  min-height:44px;
  padding:13px 22px;
  border-radius:999px;
  font-size:.8rem;
  letter-spacing:.02em;
  text-transform:none;
}
.btn--primary,
.product-card .button,.product-card .btn,
.contact-form button[type="submit"],.contact-form input[type="submit"],
.contact-form .button,.contact-form .btn{
  background:var(--tropical-teal);
  color:var(--white);
  box-shadow:0 3px 0 color-mix(in srgb,var(--palm-green) 70%,var(--ink));
}
.btn--primary:hover,
.product-card .button:hover,.product-card .btn:hover,
.contact-form button[type="submit"]:hover,
.contact-form input[type="submit"]:hover,
.contact-form .button:hover,.contact-form .btn:hover{
  background:var(--palm-green);
  color:var(--white);
}
.btn--ghost{color:var(--tropical-teal);border-color:var(--tropical-teal);background:var(--white)}
.btn--ghost:hover{background:var(--tropical-teal);color:var(--white)}

.card,.card--panel,.panel,.product-card,.blog-card,.article-card,
.contact-form,.article-faq,.blog-article__cta{
  border:1px solid var(--line);
  border-radius:18px;
  box-shadow:0 12px 30px color-mix(in srgb,var(--tropical-teal) 10%,transparent);
}
.card,.card--panel,.panel,.product-card,.blog-card,.article-card{background:var(--white)}
.card:hover,.blog-card:hover{
  border-color:var(--lagoon-blue);
  background:color-mix(in srgb,var(--sand) 38%,var(--white));
  box-shadow:0 16px 34px color-mix(in srgb,var(--tropical-teal) 14%,transparent);
}
.card__name,.blog-card__title{line-height:1.15;letter-spacing:-.02em}
.card__serial,.card__cta,.trust__label{color:var(--tropical-teal);letter-spacing:.06em}
.product-card__media,.product-bottle-image{
  background:color-mix(in srgb,var(--sand) 48%,var(--white));
  border-radius:16px 16px 0 0;
}
.product-grid,.shop-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(20px,3vw,32px)}

.trust{gap:12px;border:0}
.trust__item{
  min-width:0;
  padding:20px;
  border:1px solid color-mix(in srgb,var(--tropical-teal) 18%,var(--sand));
  border-radius:14px;
  background:color-mix(in srgb,var(--white) 84%,var(--seafoam));
}
.trust__label{border:0;padding:0;margin-bottom:6px}
.trust__val{color:var(--ink);font-weight:600}

.form-field input,.form-field textarea,.form-field select{
  min-height:44px;
  border-radius:10px;
  background:var(--white);
}
.form-field input:focus,.form-field textarea:focus,.form-field select:focus{
  border-color:var(--tropical-teal);
  box-shadow:0 0 0 3px color-mix(in srgb,var(--seafoam) 55%,transparent);
}

.footer,.site-footer{
  position:relative;
  isolation:isolate;
  background:var(--tropical-teal);
  color:var(--white);
  border-top:0;
}
.site-footer::before{
  content:"";
  position:absolute;
  z-index:-1;
  inset:-20px 0 auto;
  height:24px;
  background:
    radial-gradient(42px 18px at 42px 100%,transparent 47%,var(--seafoam) 49% 55%,var(--tropical-teal) 57%) 0 0/84px 24px repeat-x;
  pointer-events:none;
}
.footer__link,.footer__legal{color:var(--white)}
.footer__link:hover{color:var(--hilo-honey)}
.footer__inner{grid-template-columns:2fr 1fr 1fr 1fr}
.footer__col{
  min-width:0;
  max-width:100%;
  overflow-wrap:anywhere;
}
.footer__col a{max-width:100%}
.footer__col a[href^="mailto:"],.footer__col a[href^="tel:"]{
  white-space:normal;
  overflow-wrap:anywhere;
}
.footer-logo{
  height:110px;
  max-width:290px;
  padding:12px;
  border-radius:14px;
  background:var(--white);
}
.footer-pepti{
  display:block;
  width:80px;
  height:80px;
  margin:0 auto 24px;
  background:url('/assets/brand/pepti-mascot.png') center/contain no-repeat;
}

/* Shared tropical interior vocabulary. Decorative layers stay behind content. */
.tropical-page-hero{
  position:relative;
  overflow:hidden;
  overflow:clip;
  isolation:isolate;
  background:
    radial-gradient(circle at 100% 0,color-mix(in srgb,var(--coral-pink) 14%,transparent) 0 14%,transparent 14.5%),
    linear-gradient(135deg,var(--sand),color-mix(in srgb,var(--seafoam) 24%,var(--white)));
}
.tropical-page-hero .eyebrow--gold,
.sec--sand .sec__head>.body:first-child{color:var(--ink)}
.tropical-page-hero::after{
  content:"";
  position:absolute;
  z-index:-1;
  inline-size:clamp(150px,22vw,300px);
  aspect-ratio:1;
  inset:auto -6% -42% auto;
  border:2px solid color-mix(in srgb,var(--palm-green) 16%,transparent);
  border-radius:50% 0 50% 50%;
  transform:rotate(-18deg);
  pointer-events:none;
}
.brand-wave{
  width:100%;
  height:22px;
  border:0;
  background:
    radial-gradient(34px 12px at 34px 100%,transparent 47%,color-mix(in srgb,var(--lagoon-blue) 18%,transparent) 49% 55%,transparent 57%) 0 0/68px 22px repeat-x;
  pointer-events:none;
}
.brand-card{
  position:relative;
  min-width:0;
  max-width:100%;
  overflow:hidden;
  border:1px solid var(--lagoon-blue);
  border-radius:18px 18px 64px 18px;
  background:var(--white);
  box-shadow:0 18px 36px rgba(0,64,67,.08);
}
.brand-card::before{
  content:"";
  position:absolute;
  z-index:0;
  inline-size:84px;
  aspect-ratio:1;
  inset:-32px -30px auto auto;
  border:12px double var(--coral-pink);
  border-radius:50%;
  opacity:.1;
  pointer-events:none;
}
.brand-card>*{position:relative;z-index:1}

@media(max-width:1023px){
  .topbar__nav,.topbar__cta{display:none}
  .topbar__inner{position:relative;justify-content:center;padding-inline:72px}
  .topbar__brand{justify-self:center}
  .topbar__menu{display:block;position:absolute;right:20px;top:50%;transform:translateY(-50%)}
  .hero__content{grid-template-columns:1fr;gap:36px}
  .hero__media,.hero__visual{order:2}
  .product-grid,.shop-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .trust,.trust--3{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:560px){
  .container,.hero__inner{padding-inline:20px}
  .topbar__inner{padding-inline:64px}
  .topbar__menu{right:12px}
  .hero{min-height:auto;padding:52px 0}
  .hero__field{
    background-image:
      linear-gradient(180deg,color-mix(in srgb,var(--sand) 96%,transparent) 0%,color-mix(in srgb,var(--sand) 90%,transparent) 50%,color-mix(in srgb,var(--seafoam) 18%,transparent) 100%),
      url('/assets/brand/hero-scenery.webp');
    background-position:center bottom;
  }
  .hero__scrim{background:none}
  .hero__cta{align-items:stretch}
  .hero__cta>a:not(.btn):last-child{display:none}
  .product-grid,.shop-grid,.trust,.trust--3{grid-template-columns:minmax(0,1fr)}
  .trust__item{border:1px solid color-mix(in srgb,var(--tropical-teal) 18%,var(--sand))}
  .footer-logo{height:96px;max-width:250px}
}

@media(min-width:641px) and (max-width:900px){
  .compact-tablet-hero{min-height:0;height:auto;padding-block:4.5rem}
}

/* Homepage composition and four-value band. */
.home-hero{
  position:relative;
  overflow:hidden;
  overflow:clip;
  isolation:isolate;
  background:linear-gradient(135deg,var(--sand),color-mix(in srgb,var(--seafoam) 24%,var(--white)));
}
.home-hero *{min-width:0}
.home-hero .hero__content{display:grid}
.hero-copy{max-width:600px}
.hero-scene{
  position:relative;
  min-width:0;
  overflow:hidden;
  overflow:clip;
}
.hero-scene img{max-width:100%;height:auto}
.hero-scene .hero-scenery{
  position:absolute;
  z-index:0;
  inset:0;
  width:100%;
  height:100%;
  background:url('/assets/brand/hero-scenery.webp') center/cover no-repeat;
}
.hero-scene .hero__visual-layout{position:relative;z-index:2}
.hero-pepti{
  position:absolute;
  z-index:3;
  width:clamp(112px,10vw,156px);
  height:auto;
  right:clamp(20px,4vw,64px);
  bottom:24px;
  object-fit:contain;
}
.trust-band{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  border-block:1px solid color-mix(in srgb,var(--tropical-teal) 28%,var(--sand));
  background:color-mix(in srgb,var(--seafoam) 24%,var(--white));
}
.trust-band__item{
  min-width:0;
  display:grid;
  grid-template-columns:44px minmax(0,1fr);
  align-items:center;
  gap:14px;
  padding:22px;
  border-inline-end:1px solid color-mix(in srgb,var(--tropical-teal) 24%,var(--sand));
}
.trust-band__item:last-child{border-inline-end:0}
.trust-band__icon{
  width:44px;
  aspect-ratio:1;
  display:grid;
  place-items:center;
  border:1px solid var(--lagoon-blue);
  border-radius:50% 50% 44% 56%;
  background:var(--white);
  color:var(--palm-green);
}

@media(min-width:1100px){
  .home-hero{min-height:700px}
  .home-hero .hero__content{
    grid-template-columns:minmax(0,.9fr) minmax(520px,1.1fr);
    gap:48px;
  }
}
@media(min-width:1100px) and (max-height:822px){
  .home-hero{min-height:calc(100vh - var(--nav-h) - var(--statusline-h) - 1px)}
}
@media(min-width:768px) and (max-width:1099px){
  .home-hero .hero__content{grid-template-columns:repeat(2,minmax(0,1fr));gap:36px}
  .hero-pepti{width:104px;right:20px;bottom:20px}
  .trust-band{grid-template-columns:repeat(2,minmax(0,1fr))}
  .trust-band__item:nth-child(2n){border-inline-end:0}
  .trust-band__item:nth-child(-n+2){border-block-end:1px solid color-mix(in srgb,var(--tropical-teal) 24%,var(--sand))}
  .footer__inner{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:767px){
  :root{--nav-h:84px;--statusline-h:28px}
  .announcement-bar{min-height:28px}
  .topbar,.topbar--ink,.topbar.is-scrolled,
  .topbar__inner,.site-header__inner{min-height:84px}
  .site-logo{width:76px;height:auto}
  .home-hero .hero__content{grid-template-columns:minmax(0,1fr);gap:28px}
  .hero-copy{order:1}
  .hero-scene{order:2}
  .hero-pepti{width:88px;right:20px;bottom:16px}
  .trust-band{grid-template-columns:minmax(0,1fr)}
  .trust-band__item,
  .trust-band__item:nth-child(2n){border-inline-end:0;border-block-end:1px solid color-mix(in srgb,var(--tropical-teal) 24%,var(--sand))}
  .trust-band__item:last-child{border-block-end:0}
  .footer__inner{grid-template-columns:minmax(0,1fr)}
}
@media(max-width:375px){
  .home-hero .hero__inner{padding-inline:20px}
  .home-hero h1,.home-hero .hero__title{font-size:clamp(40px,12vw,54px)}
}

@media (min-width: 700px) and (max-width: 1024px){
  .shop-page .shop-intro {
    height: auto;
    min-height: 0;
    block-size: auto;
    min-block-size: 0;
    grid-template-columns: minmax(0, 1fr);
    padding-block: 64px;
  }
  .shop-page .shop-intro > .container {
    height: auto;
    min-height: 0;
    grid-template-columns: minmax(0, 1fr);
  }
  .shop-page .shop-catalog { margin-block-start: 0; }
}

@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .card:hover,.blog-card:hover,.btn--primary:hover{transform:none}
}
body.menu-open{overflow:hidden}
