/* Dragon King Chocolate. Foil under the canopy.
   Tokens, base, components. One file, no external requests. */

@font-face{font-family:'Fraunces';src:url('../fonts/Fraunces_72pt_Soft-Regular.woff2') format('woff2');font-weight:400;font-style:normal;font-display:swap;}
@font-face{font-family:'Fraunces';src:url('../fonts/Fraunces_72pt_Soft-SemiBold.woff2') format('woff2');font-weight:600;font-style:normal;font-display:swap;}
@font-face{font-family:'Fraunces';src:url('../fonts/Fraunces_72pt_Soft-Italic.woff2') format('woff2');font-weight:400;font-style:italic;font-display:swap;}
@font-face{font-family:'DM Sans';src:url('../fonts/DMSans_18pt-Regular.woff2') format('woff2');font-weight:400;font-display:swap;}
@font-face{font-family:'DM Sans';src:url('../fonts/DMSans_18pt-Medium.woff2') format('woff2');font-weight:500;font-display:swap;}
@font-face{font-family:'DM Sans';src:url('../fonts/DMSans_18pt-SemiBold.woff2') format('woff2');font-weight:600;font-display:swap;}
@font-face{font-family:'Cinzel';src:url('../fonts/Cinzel-VariableFont_wght.woff2') format('woff2');font-weight:400 900;font-display:swap;}

:root{
  --forest:#172518;
  --forest-deep:#0F1A10;
  --forest-2:#1E301F;
  --moss:#233A0D;
  --parchment:#F5EBD3;
  --parchment-light:#FBF5E6;
  --parchment-deep:#EADCBB;
  --gold:#F0C65A;
  --amber:#E0AA3D;
  --champagne:#F7D793;
  --foil-hi:#D6A646;
  --foil-lo:#AA8330;
  --cream-ink:#E9E2CC;
  --cream-muted:#B8B39E;
  --figue:#6F0D02;
  --gold-ink:#8C6A1F;
  --em:var(--gold-ink);

  /* semantic, light (parchment) sections */
  --ground:var(--parchment);
  --surface:var(--parchment-light);
  --ink:var(--moss);
  --ink-muted:#4F5A44;
  --rule:rgba(35,58,13,.16);

  --display:'Fraunces',Georgia,serif;
  --body:'DM Sans',system-ui,sans-serif;
  --mark:'Cinzel','Fraunces',serif;

  --ease:cubic-bezier(.22,1,.36,1);
  --dur-fast:180ms;
  --dur:300ms;
  --dur-slow:720ms;

  --wrap:1240px;
  --gutter:clamp(1.25rem,4vw,2.5rem);
  --section:clamp(4.5rem,10vw,8.5rem);
  --header-h:84px;
  color-scheme:light;
}

/* dark pair, authored not inverted */
@media (prefers-color-scheme:dark){
  :root:not([data-theme="light"]){
    --ground:var(--forest);
    --surface:var(--forest-2);
    --ink:var(--cream-ink);
    --ink-muted:var(--cream-muted);
    --rule:rgba(233,226,204,.14);--em:var(--gold);
    --parchment-deep:#243626;
    color-scheme:dark;
  }
}

*,*::before,*::after{box-sizing:border-box;margin:0;padding:0;}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;}
body{
  font-family:var(--body);font-size:1.0625rem;line-height:1.65;font-weight:400;
  color:var(--ink);background:var(--ground);overflow-x:clip;
}
img,picture,video{display:block;max-width:100%;height:auto;}
a{color:inherit;text-decoration:none;}
a:focus-visible,button:focus-visible,summary:focus-visible{outline:3px solid var(--gold);outline-offset:3px;border-radius:2px;}
button{font:inherit;color:inherit;background:none;border:0;cursor:pointer;}
ul{list-style:none;}
h1,h2,h3,h4{font-family:var(--display);font-weight:400;line-height:1.05;letter-spacing:-.02em;text-wrap:balance;}
h1{font-size:clamp(2.9rem,7vw,5.6rem);}
h2{font-size:clamp(2.1rem,4.6vw,3.6rem);}
h3{font-size:clamp(1.35rem,2.2vw,1.75rem);letter-spacing:-.01em;}
h1 em,h2 em,h3 em{font-style:italic;color:var(--em);}
p{max-width:64ch;text-wrap:pretty;}
strong{font-weight:600;}
::selection{background:var(--gold);color:var(--forest);}

.skip-link{position:absolute;left:1rem;top:-4rem;background:var(--gold);color:var(--forest);padding:.75rem 1rem;z-index:200;font-weight:600;}
.skip-link:focus{top:1rem;}

.wrap{width:100%;max-width:var(--wrap);margin-inline:auto;padding-inline:var(--gutter);}
.section{padding-block:var(--section);position:relative;}
.section-tight{padding-block:clamp(3rem,6vw,5rem);}

.eyebrow{
  display:inline-flex;align-items:center;gap:.85rem;font-size:.72rem;font-weight:600;
  letter-spacing:.22em;text-transform:uppercase;color:var(--foil-lo);margin-bottom:1.25rem;
}
.eyebrow::before{content:"";width:2.25rem;height:1px;background:currentColor;}
.dark .eyebrow{color:var(--gold);}
.lede{font-size:clamp(1.15rem,1.6vw,1.35rem);line-height:1.5;color:var(--ink-muted);max-width:52ch;}
.dark .lede{color:var(--cream-muted);}

/* ===== dark bands ===== */
.dark{
  --ground:var(--forest);--surface:var(--forest-2);--ink:var(--cream-ink);--ink-muted:var(--cream-muted);
  --rule:rgba(233,226,204,.14);--em:var(--gold);
  background:var(--ground);color:var(--ink);
}
.deep{background:var(--forest-deep);}
.maroon{--em:var(--champagne);background:var(--figue);color:var(--parchment);--ink:var(--parchment);--ink-muted:#E6C9BE;--rule:rgba(245,235,211,.2);}
.gold-band{background:var(--gold);color:var(--forest);--ink:var(--forest);--ink-muted:#3B4A2A;}

/* ===== buttons ===== */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:.6rem;min-height:3rem;
  padding:.9rem 1.75rem;font-size:.8rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase;
  border:1px solid transparent;position:relative;overflow:hidden;isolation:isolate;
  transition:color var(--dur) var(--ease),border-color var(--dur) var(--ease),transform var(--dur) var(--ease);
}
.btn-gold{background:var(--gold);color:var(--forest);border-color:var(--gold);}
.btn-gold::after{content:"";position:absolute;inset:0;background:var(--champagne);transform:translateY(101%);transition:transform var(--dur) var(--ease);z-index:-1;}
.btn-ghost{border-color:currentColor;color:inherit;}
.btn-ghost::after{content:"";position:absolute;inset:0;background:currentColor;opacity:.1;transform:scaleX(0);transform-origin:left;transition:transform var(--dur) var(--ease);z-index:-1;}
.btn-line{background:#06C755;color:#fff;border-color:#06C755;}
.btn-line::after{content:"";position:absolute;inset:0;background:#05a648;transform:translateY(101%);transition:transform var(--dur) var(--ease);z-index:-1;}
.btn svg{width:1.15em;height:1.15em;flex:none;}
@media (hover:hover) and (pointer:fine){
  .btn-gold:hover::after,.btn-line:hover::after{transform:translateY(0);}
  .btn-ghost:hover::after{transform:scaleX(1);}
}

/* ===== header ===== */
.site-header{
  position:sticky;top:0;z-index:60;color:var(--cream-ink);
  background:var(--header-bg,linear-gradient(180deg,rgba(15,26,16,.82),rgba(15,26,16,0)));
  transition:background-color var(--dur) ease,box-shadow var(--dur) ease;
}
.site-header[data-scrolled="true"]{background:var(--forest);box-shadow:0 1px 0 rgba(214,166,70,.25),0 12px 30px rgba(0,0,0,.25);}
.site-header-inner{
  display:flex;align-items:center;justify-content:space-between;gap:1.5rem;min-height:var(--header-h);
  transform:scale(1);transform-origin:left center;transition:transform var(--dur) var(--ease);
}
.site-header[data-scrolled="true"] .site-header-inner{transform:scale(.92);}
.site-header-sentinel{position:absolute;top:0;height:1px;width:1px;pointer-events:none;}
.brand{display:inline-flex;align-items:center;gap:.8rem;}
.brand img{width:52px;height:52px;border-radius:50%;box-shadow:0 0 0 1px var(--foil-lo);}
.brand-name{white-space:nowrap;font-family:var(--mark);font-weight:600;font-size:.92rem;letter-spacing:.14em;text-transform:uppercase;line-height:1.1;color:var(--champagne);}
.brand-name small{display:block;font-size:.6rem;letter-spacing:.3em;color:var(--cream-muted);}
.nav-links{display:flex;gap:clamp(1.25rem,2.4vw,2.25rem);align-items:center;}
.nav-links a{font-size:.78rem;font-weight:500;letter-spacing:.14em;text-transform:uppercase;padding:.6rem 0;position:relative;color:var(--cream-ink);min-height:44px;display:inline-flex;align-items:center;}
.nav-links a::after{content:"";position:absolute;left:0;bottom:.35rem;height:1px;width:100%;background:var(--gold);transform:scaleX(0);transform-origin:left;transition:transform var(--dur) var(--ease);}
.nav-links a[aria-current="page"]::after{transform:scaleX(1);}
@media (hover:hover){.nav-links a:hover::after{transform:scaleX(1);}}
.nav-cta{display:flex;align-items:center;gap:.75rem;}
.nav-cta .btn{min-height:2.75rem;padding:.65rem 1.2rem;font-size:.72rem;}
.nav-toggle{display:none;width:48px;height:48px;align-items:center;justify-content:center;flex-direction:column;gap:6px;}
.nav-toggle span{display:block;width:26px;height:2px;background:var(--champagne);transition:transform var(--dur) var(--ease),opacity var(--dur);}
.nav-toggle[aria-expanded="true"] span:nth-child(1){transform:translateY(8px) rotate(45deg);}
.nav-toggle[aria-expanded="true"] span:nth-child(2){opacity:0;}
.nav-toggle[aria-expanded="true"] span:nth-child(3){transform:translateY(-8px) rotate(-45deg);}

@media (max-width:900px){
  .brand-name{font-size:.78rem;}
  /* no transform on the wrapper at mobile: a transformed ancestor would turn the fixed nav panel into an absolute box */
  .site-header-inner,.site-header[data-scrolled="true"] .site-header-inner{transform:none;}
  .nav-toggle{display:flex;}
  .nav-cta .btn-ghost{display:none;}
  .site-nav{
    position:fixed;top:var(--header-h);left:0;right:0;bottom:0;max-height:calc(100dvh - var(--header-h));overflow-y:auto;
    background:var(--forest);padding:1.5rem var(--gutter) 3rem;
    transform:translateX(100%);transition:transform var(--dur) var(--ease);visibility:hidden;
  }
  .site-nav[data-open="true"]{transform:none;visibility:visible;}
  .nav-links{flex-direction:column;align-items:stretch;gap:0;}
  .nav-links a{font-size:1.15rem;letter-spacing:.06em;text-transform:none;font-family:var(--display);padding:1rem 0;border-bottom:1px solid rgba(233,226,204,.14);}
  .nav-links a::after{display:none;}
  .nav-links a[aria-current="page"]{color:var(--gold);}
}

/* ===== hero ===== */
.hero{
  position:relative;min-height:88vh;min-height:88dvh;display:flex;align-items:flex-end;
  color:var(--cream-ink);isolation:isolate;margin-top:calc(-1 * var(--header-h));
}
.hero-media{position:absolute;inset:0;z-index:-1;overflow:hidden;background:var(--forest);}
.hero-media picture{position:absolute;inset:0;}
.hero-media img,.hero-media video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:var(--hero-pos,50% 45%);}
.js .hero-media img{animation:heroDrift 22s var(--ease) both;}
@keyframes heroDrift{from{transform:scale(1.08) translate3d(1.5%,0,0);}to{transform:scale(1) translate3d(0,0,0);}}
.hero-media::after{
  content:"";position:absolute;inset:0;
  background:
    linear-gradient(200deg,rgba(23,37,24,.08) 20%,rgba(23,37,24,.66) 62%,rgba(15,26,16,.96) 100%),
    linear-gradient(90deg,rgba(23,37,24,.55) 0%,rgba(23,37,24,0) 60%);
}
.hero-content{width:100%;padding-block:clamp(3rem,8vh,6rem) clamp(3rem,7vh,5rem);display:grid;grid-template-columns:minmax(0,1.45fr) minmax(0,1fr);gap:2.5rem;align-items:end;}
.hero h1{color:var(--champagne);max-width:15ch;margin-bottom:1.5rem;text-shadow:0 2px 24px rgba(15,26,16,.5);}
.hero .eyebrow{text-shadow:0 1px 12px rgba(15,26,16,.8);}
.hero h1 em,.band h2 em{color:var(--gold);}
.hero .lede{color:var(--cream-ink);max-width:44ch;margin-bottom:2.25rem;}
.hero-ctas{display:flex;gap:1rem;flex-wrap:wrap;}
.hero-side{justify-self:end;text-align:right;display:grid;gap:.6rem;font-size:.78rem;letter-spacing:.16em;text-transform:uppercase;color:var(--cream-muted);}
.hero-side b{display:block;font-family:var(--display);font-weight:400;font-size:clamp(2rem,3.4vw,2.9rem);letter-spacing:-.02em;color:var(--champagne);text-transform:none;line-height:1;}
.hero-inner-page{min-height:62vh;min-height:62dvh;}
.hero-inner-page h1{font-size:clamp(2.5rem,5.6vw,4.4rem);}
@media (max-width:900px){
  .hero-content{grid-template-columns:1fr;}
  .hero-side{justify-self:start;text-align:left;grid-auto-flow:column;gap:2rem;}
}

/* ===== trust bar ===== */
.trust-bar{
  width:100%;display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:clamp(1.25rem,4vw,3.5rem);
  padding:1.1rem var(--gutter);background:var(--gold);color:var(--forest);
}
.trust-bar-item{display:flex;align-items:center;gap:.5rem;font-size:.9rem;font-weight:500;white-space:nowrap;letter-spacing:.02em;}
.trust-bar-item strong{font-family:var(--display);font-weight:600;font-size:1.35rem;letter-spacing:-.01em;font-variant-numeric:tabular-nums;}
.js .trust-bar-item{opacity:0;transform:translateY(8px);transition:opacity .5s ease,transform .5s var(--ease);transition-delay:calc(var(--trust-bar-index,0) * 60ms);}
.js .trust-bar-item.is-visible{opacity:1;transform:none;}

/* ===== reveal ===== */
.js [data-reveal]{opacity:0;transform:translate3d(0,18px,0);transition:opacity var(--dur-slow) var(--ease),transform var(--dur-slow) var(--ease);}
.js [data-reveal].is-revealed{opacity:1;transform:none;}

/* ===== layouts ===== */
.split{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(2rem,6vw,5.5rem);align-items:center;}
.split.split-rev > .split-media{order:2;}
.split-media{position:relative;}
.split-media img{width:100%;height:auto;aspect-ratio:var(--ar,4/5);object-fit:cover;object-position:var(--pos,50% 50%);}
.split-media .plate{
  position:absolute;left:-1rem;bottom:-1rem;background:var(--gold);color:var(--forest);padding:1rem 1.25rem;
  font-size:.72rem;letter-spacing:.18em;text-transform:uppercase;font-weight:600;max-width:70%;
}
.split-media .plate b{display:block;font-family:var(--display);font-weight:400;font-size:1.6rem;letter-spacing:-.01em;text-transform:none;line-height:1.1;}
.split-copy h2{margin-bottom:1.25rem;}
.split-copy p + p{margin-top:1rem;}
.split-copy .btn{margin-top:1.75rem;}
@media (max-width:820px){.split{grid-template-columns:1fr;} .split.split-rev > .split-media{order:0;} .split-media .plate{left:0;bottom:-.75rem;}}

.head{max-width:680px;margin-bottom:clamp(2.5rem,5vw,4rem);}
.head h2{margin-bottom:1rem;}
.head-row{display:flex;justify-content:space-between;align-items:end;gap:2rem 3rem;flex-wrap:wrap;margin-bottom:clamp(2.5rem,5vw,4rem);}
.head-row .head{margin-bottom:0;flex:1 1 30rem;}
.head-row .lede{flex:1 1 22rem;max-width:40ch;}

/* entry cards */
.entries{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1.25rem;}
.entry{
  position:relative;display:grid;align-content:end;min-height:26rem;color:var(--cream-ink);isolation:isolate;overflow:hidden;
  transition:transform var(--dur) var(--ease);
}
.entry img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:var(--pos,50% 50%);z-index:-2;transition:transform 1.2s var(--ease);}
.entry::after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,rgba(23,37,24,0) 30%,rgba(23,37,24,.92) 100%);}
.entry-body{padding:1.75rem;}
.entry-body .eyebrow{color:var(--gold);margin-bottom:.6rem;}
.entry h3{color:var(--champagne);font-size:clamp(1.5rem,2.4vw,2rem);margin-bottom:.5rem;}
.entry p{font-size:.95rem;color:var(--cream-ink);max-width:34ch;}
.entry-arrow{position:absolute;top:1.25rem;right:1.25rem;width:44px;height:44px;border:1px solid var(--foil-hi);display:grid;place-items:center;color:var(--gold);}
@media (hover:hover) and (pointer:fine){.entry:hover img{transform:scale(1.05);} .entry:hover{transform:translateY(-4px);}}
@media (max-width:900px){.entries{grid-template-columns:1fr;} .entry{min-height:20rem;}}

/* ledger 800 : 50 */
.ledger{display:grid;grid-template-columns:1fr auto 1fr;gap:clamp(1.5rem,4vw,3rem);align-items:center;}
.ledger-num{font-family:var(--display);font-weight:400;font-size:clamp(4.5rem,13vw,11rem);line-height:.9;letter-spacing:-.04em;color:var(--champagne);font-variant-numeric:tabular-nums;}
.ledger-num small{display:block;font-family:var(--body);font-size:.75rem;letter-spacing:.2em;text-transform:uppercase;color:var(--cream-muted);margin-top:1rem;font-weight:500;}
.ledger-colon{font-family:var(--display);font-size:clamp(3rem,8vw,6rem);color:var(--foil-lo);line-height:1;}
.ledger-right{text-align:right;}
.ledger-right .ledger-num{color:var(--cream-ink);}
.ledger-note{margin-top:clamp(2rem,4vw,3.5rem);display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:2rem;align-items:start;border-top:1px solid var(--rule);padding-top:2rem;}
.ledger-note p{color:var(--cream-ink);}
@media (max-width:700px){.ledger{grid-template-columns:1fr;} .ledger-colon{display:none;} .ledger-right{text-align:left;} .ledger-note{grid-template-columns:1fr;}}

/* process strip */
.steps{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:1px;background:var(--rule);border:1px solid var(--rule);}
.step{background:var(--forest);padding:1.5rem 1.1rem 1.4rem;min-height:11rem;display:grid;align-content:start;gap:.5rem;transition:background var(--dur) ease;}
.step-no{font-family:var(--display);font-style:italic;font-size:2.2rem;line-height:1;color:var(--gold);}
.step h3{font-size:1.05rem;letter-spacing:0;}
.step p{font-size:.84rem;color:var(--cream-muted);}
@media (hover:hover){.step:hover{background:var(--forest-2);}}
@media (max-width:1100px){.steps{grid-template-columns:repeat(4,1fr);}}
@media (max-width:700px){.steps{grid-template-columns:repeat(2,1fr);}}


/* full-bleed photo band */
.band{position:relative;min-height:58vh;display:flex;align-items:end;color:var(--cream-ink);isolation:isolate;}
.band img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:var(--pos,50% 50%);z-index:-2;}
.band::after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,rgba(23,37,24,.1) 0%,rgba(23,37,24,.85) 100%);}
.band .wrap{padding-block:clamp(2.5rem,6vw,4.5rem);}
.band h2{color:var(--champagne);max-width:20ch;}
.band p{margin-top:1rem;max-width:56ch;}

/* quote band */
.quote{position:relative;overflow:hidden;}
.quote blockquote{font-family:var(--display);font-size:clamp(1.7rem,3.6vw,3rem);line-height:1.2;letter-spacing:-.015em;max-width:26ch;}
.quote blockquote em{color:var(--champagne);}
.quote cite{display:block;margin-top:1.5rem;font-family:var(--body);font-style:normal;font-size:.75rem;letter-spacing:.2em;text-transform:uppercase;color:var(--ink-muted);}
.quote p{margin-top:1.5rem;color:var(--ink-muted);}
.dragon-mark{position:absolute;right:-6%;top:50%;translate:0 -50%;width:clamp(16rem,36vw,30rem);opacity:.18;pointer-events:none;mix-blend-mode:luminosity;}
.dragon-mark img{width:100%;height:auto;border-radius:50%;}

/* ===== products ===== */
.products{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1.25rem;}
.product{
  display:grid;grid-template-rows:auto 1fr;background:var(--surface);border:1px solid var(--rule);position:relative;
  transition:transform var(--dur) var(--ease),box-shadow var(--dur) var(--ease);
}
.product-media{position:relative;overflow:hidden;background:var(--parchment-deep);}
.product-media img{width:100%;height:auto;aspect-ratio:1;object-fit:cover;transition:transform .9s var(--ease);}
.product-flag{position:absolute;top:.75rem;left:.75rem;font-size:.66rem;font-weight:600;letter-spacing:.16em;text-transform:uppercase;padding:.35rem .6rem;background:var(--forest);color:var(--champagne);}
.product-flag.seasonal{background:var(--figue);color:var(--parchment);}
.product-flag.soldout{background:var(--parchment-deep);color:var(--moss);}
.product-body{padding:1.1rem 1.15rem 1.25rem;display:grid;gap:.4rem;align-content:start;}
.product-body h3{font-size:1.25rem;}
.product-body .meta{font-size:.78rem;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-muted);}
.product-body p{font-size:.92rem;color:var(--ink-muted);}
.product-price{display:flex;justify-content:space-between;align-items:baseline;gap:1rem;margin-top:.6rem;padding-top:.75rem;border-top:1px solid var(--rule);}
.product-price b{font-family:var(--display);font-weight:600;font-size:1.35rem;letter-spacing:-.01em;}
.product-price small{font-size:.74rem;color:var(--ink-muted);letter-spacing:.04em;}
.product-price a{font-size:.74rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--foil-lo);min-height:44px;display:inline-flex;align-items:center;}
.dark .product-price a{color:var(--gold);}
@media (hover:hover) and (pointer:fine){.product:hover{transform:translateY(-4px);box-shadow:0 18px 40px rgba(23,37,24,.14);} .product:hover .product-media img{transform:scale(1.04);}}
@media (max-width:1100px){.products{grid-template-columns:repeat(3,1fr);}}
@media (max-width:760px){.products{grid-template-columns:repeat(2,1fr);gap:.75rem;} .product-body{padding:.9rem;}}
@media (max-width:340px){.products{grid-template-columns:1fr;}}

/* featured: first card spans two on desktop */
.products-featured > .product:first-child{grid-column:span 2;grid-row:span 2;}
.products-featured > .product:first-child .product-media img{aspect-ratio:1;}
@media (max-width:760px){.products-featured > .product:first-child{grid-column:span 2;grid-row:auto;}}
@media (max-width:340px){.products-featured > .product:first-child{grid-column:auto;}}

/* product detail (products page) */
.detail{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:clamp(2rem,5vw,4.5rem);align-items:start;padding-block:clamp(2.5rem,5vw,4rem);border-top:1px solid var(--rule);}
.detail:first-of-type{border-top:0;}
.detail-media img{width:100%;height:auto;aspect-ratio:1;object-fit:cover;background:var(--parchment-deep);}
.detail h3{font-size:clamp(1.6rem,2.8vw,2.3rem);margin-bottom:.5rem;}
.detail .meta{font-size:.78rem;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-muted);margin-bottom:1rem;display:flex;gap:1rem;flex-wrap:wrap;}
.detail p + p{margin-top:.85rem;}
.buy{margin-top:1.5rem;display:grid;gap:1rem;}
.buy-price{display:flex;align-items:baseline;gap:.75rem;flex-wrap:wrap;}
.buy-price b{font-family:var(--display);font-weight:600;font-size:2rem;letter-spacing:-.02em;}
.buy-price span{font-size:.8rem;color:var(--ink-muted);letter-spacing:.04em;}
.buy-actions{display:flex;gap:.75rem;flex-wrap:wrap;}
.buy-actions .btn{flex:1 1 10rem;}
.stock{display:inline-flex;align-items:center;gap:.5rem;font-size:.78rem;font-weight:600;letter-spacing:.12em;text-transform:uppercase;}
.stock::before{content:"";width:.6rem;height:.6rem;border-radius:50%;background:#2E7D32;}
.stock.seasonal::before{background:var(--amber);}
.stock.soldout::before{background:var(--figue);}
@media (max-width:760px){.detail{grid-template-columns:1fr;}}

/* flavour chips */
.chips{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:1rem;}
.chip{font-size:.78rem;padding:.4rem .75rem;border:1px solid var(--rule);letter-spacing:.04em;}
.chip[data-accent="figue"]{border-color:var(--figue);color:var(--figue);}
.dark .chip[data-accent="figue"]{color:#F0B8A8;border-color:#A23A2A;}

/* ===== tiers (grow your own) ===== */
.tiers{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1px;background:var(--rule);border:1px solid var(--rule);}
.tier{background:var(--surface);padding:1.75rem 1.4rem;display:grid;gap:.35rem;align-content:start;}
.tier .n{font-family:var(--display);font-size:clamp(2.4rem,4vw,3.4rem);line-height:1;letter-spacing:-.03em;}
.tier .n small{font-family:var(--body);font-size:.75rem;letter-spacing:.18em;text-transform:uppercase;color:var(--ink-muted);margin-left:.4rem;}
.tier .p{font-weight:600;font-size:1.15rem;margin-top:.5rem;}
.tier .p span{font-weight:400;font-size:.85rem;color:var(--ink-muted);}
.tier .t{font-size:.85rem;color:var(--ink-muted);}
.tier.best{background:var(--forest);color:var(--cream-ink);--ink-muted:var(--cream-muted);}
.tier.best .n{color:var(--champagne);}
@media (max-width:900px){.tiers{grid-template-columns:repeat(2,1fr);}}
@media (max-width:460px){.tiers{grid-template-columns:1fr;}}

/* timeline */
.timeline{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:2rem;position:relative;margin-top:2.5rem;}
.timeline::before{content:"";position:absolute;left:0;right:0;top:.55rem;height:1px;background:linear-gradient(90deg,var(--foil-hi),var(--foil-lo));}
.tl{position:relative;padding-top:1.75rem;}
.tl::before{content:"";position:absolute;left:0;top:0;width:1.1rem;height:1.1rem;border-radius:50%;background:var(--gold);box-shadow:0 0 0 4px var(--ground);}
.tl b{display:block;font-family:var(--display);font-size:1.5rem;letter-spacing:-.01em;margin-bottom:.35rem;}
.tl p{font-size:.92rem;color:var(--ink-muted);}
@media (max-width:820px){.timeline{grid-template-columns:1fr 1fr;} .timeline::before{display:none;}}
@media (max-width:460px){.timeline{grid-template-columns:1fr;}}

/* regions */
.regions{display:flex;flex-wrap:wrap;gap:.5rem .75rem;margin-top:1.25rem;}
.regions li{font-size:.9rem;padding:.4rem .8rem;border:1px solid var(--rule);background:var(--surface);}

/* checklist */
.checks{display:grid;gap:.85rem;margin-top:1.25rem;}
.checks li{display:grid;grid-template-columns:1.5rem 1fr;gap:.75rem;align-items:start;}
.checks li::before{content:"";width:1.1rem;height:1.1rem;margin-top:.2rem;background:var(--gold);clip-path:polygon(14% 44%,0 62%,40% 100%,100% 18%,84% 4%,40% 70%);}

/* FAQ */
.faq{max-width:820px;}
.faq details{border-top:1px solid var(--rule);}
.faq details:last-child{border-bottom:1px solid var(--rule);}
.faq summary{
  list-style:none;cursor:pointer;display:flex;justify-content:space-between;gap:1.5rem;align-items:center;
  padding:1.35rem 0;font-family:var(--display);font-size:clamp(1.15rem,1.8vw,1.45rem);line-height:1.25;min-height:44px;
}
.faq summary::-webkit-details-marker{display:none;}
.faq summary::after{content:"+";font-family:var(--display);font-style:italic;font-size:1.8rem;color:var(--foil-lo);flex:none;transition:transform var(--dur) var(--ease);}
.faq details[open] summary::after{transform:rotate(45deg);}
.faq details > div{padding:0 0 1.5rem;color:var(--ink-muted);}
.faq details > div p + p{margin-top:.75rem;}

/* ===== contact ===== */
.contact-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(2rem,5vw,4.5rem);align-items:start;}
.contact-list{display:grid;gap:1px;background:var(--rule);border:1px solid var(--rule);}
.contact-item{background:var(--surface);padding:1.5rem;display:grid;grid-template-columns:3rem 1fr;gap:1.25rem;align-items:start;}
.contact-item svg{width:2.25rem;height:2.25rem;color:var(--foil-lo);}
.contact-item h3{font-size:1.15rem;margin-bottom:.35rem;}
.contact-item p{font-size:.95rem;color:var(--ink-muted);}
.contact-item a.link{color:var(--ink);font-weight:500;text-decoration:underline;text-decoration-color:var(--foil-lo);text-underline-offset:.2em;min-height:44px;display:inline-flex;align-items:center;}
.map{aspect-ratio:4/3;background:var(--parchment-deep);border:1px solid var(--rule);}
.map iframe{width:100%;height:100%;border:0;display:block;}
.channels{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem;margin-top:2rem;}
.channel{display:grid;gap:.5rem;padding:1.5rem;border:1px solid var(--rule);background:var(--surface);min-height:44px;transition:transform var(--dur) var(--ease),border-color var(--dur);}
.channel b{font-family:var(--display);font-size:1.35rem;font-weight:400;}
.channel span{font-size:.85rem;color:var(--ink-muted);}
.channel .go{margin-top:.5rem;font-size:.74rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--foil-lo);}
.dark .channel .go{color:var(--gold);}
@media (hover:hover){.channel:hover{transform:translateY(-3px);border-color:var(--foil-hi);}}
@media (max-width:820px){.contact-grid{grid-template-columns:1fr;} .channels{grid-template-columns:1fr;}}

/* ===== finale ===== */
.finale{text-align:center;}
.finale h2{margin-inline:auto;max-width:18ch;}
.finale p{margin:1.25rem auto 2.25rem;}
.finale .hero-ctas{justify-content:center;}

/* ===== footer ===== */
.site-footer{background:var(--forest-deep);color:var(--cream-muted);border-top:1px solid rgba(214,166,70,.3);}
.foot-grid{display:grid;grid-template-columns:1.6fr 1fr 1fr 1.2fr;gap:2.5rem;padding-block:clamp(3.5rem,6vw,5rem) 3rem;}
.foot-grid h4{font-family:var(--body);font-size:.7rem;font-weight:600;letter-spacing:.24em;text-transform:uppercase;color:var(--champagne);margin-bottom:1.1rem;}
.foot-grid li{margin-bottom:.55rem;}
.foot-grid a{font-size:.92rem;min-height:32px;display:inline-flex;align-items:center;transition:color var(--dur);}
@media (hover:hover){.foot-grid a:hover{color:var(--gold);}}
.foot-brand p{font-size:.92rem;max-width:32ch;margin-top:1rem;}
.foot-brand address{font-style:normal;font-size:.92rem;margin-top:1rem;line-height:1.5;}
.foot-base{border-top:1px solid rgba(233,226,204,.12);padding-block:1.5rem;display:flex;justify-content:space-between;gap:1rem;flex-wrap:wrap;font-size:.72rem;letter-spacing:.1em;text-transform:uppercase;}
@media (max-width:900px){.foot-grid{grid-template-columns:1fr 1fr;}}
@media (max-width:520px){.foot-grid{grid-template-columns:1fr;}}

/* scroll to top */
.to-top{
  position:fixed;right:1.25rem;bottom:1.25rem;width:48px;height:48px;z-index:50;display:grid;place-items:center;
  color:#fff;mix-blend-mode:difference;opacity:0;transform:translateY(10px);pointer-events:none;
  transition:opacity var(--dur) ease,transform var(--dur) var(--ease);
}
.to-top[data-show="true"]{opacity:1;transform:none;pointer-events:auto;}
.to-top svg{width:30px;height:16px;}

/* dragon divider */
.divider{display:flex;align-items:center;justify-content:center;gap:1.25rem;padding-block:1rem;color:var(--foil-lo);}
.divider::before,.divider::after{content:"";height:1px;flex:1;max-width:14rem;background:linear-gradient(90deg,transparent,currentColor);}
.divider::after{background:linear-gradient(90deg,currentColor,transparent);}
.divider img{width:44px;height:44px;border-radius:50%;}

@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto;}
  *,*::before,*::after{animation:none!important;transition-duration:.01ms!important;}
  .js [data-reveal],.js .trust-bar-item{opacity:1;transform:none;}
  .js .hero-media img{animation:none;}
}
@media (prefers-contrast:more){.btn,.product,.tier,.channel{border-width:2px;}}
