/* ============ TOKENS ============ */
:root{
  --clay-cream:#fbf1e4;
  --clay-cream-2:#f3e4cc;
  --choc-900:#2e1b10;
  --choc-700:#5a3222;
  --choc-500:#8a5a3f;
  --clay-pink:#f0879e;
  --clay-pink-dark:#d85b78;
  --clay-pink-pale:#fbd7e0;
  --clay-gold:#f3c969;
  --ink:#2e1b10;
  --paper:#fffaf2;
  --radius-xl:34px;
  --radius-lg:24px;
  --radius-md:16px;
  --radius-sm:10px;
  --shadow-clay: 8px 8px 18px rgba(90,50,30,.22), -6px -6px 14px rgba(255,255,255,.65), inset 0 0 0 1px rgba(255,255,255,.3);
  --shadow-clay-in: inset 4px 4px 10px rgba(90,50,30,.18), inset -4px -4px 10px rgba(255,255,255,.6);
  --shadow-pop: 10px 14px 0 rgba(46,27,16,.14);
  --font-display: Georgia, "Iowan Old Style", "Palatino Linotype", serif;
  --font-body: "Segoe UI", system-ui, -apple-system, Roboto, sans-serif;
  --container: 1180px;
  --gap: clamp(1rem, 2vw, 2rem);
}
*{box-sizing:border-box}
html,body{overflow-x:clip}
html{scroll-behavior:smooth}
body{
  margin:0;
  font-family:var(--font-body);
  color:var(--ink);
  background:var(--clay-cream);
  line-height:1.55;
  -webkit-font-smoothing:antialiased;
}
img{max-width:100%;display:block}
a{color:var(--clay-pink-dark);text-decoration:none}
h1,h2,h3,h4{font-family:var(--font-display);line-height:1.1;margin:0 0 .5em;color:var(--choc-900)}
p{margin:0 0 1em}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.skip-link{position:absolute;left:-999px;top:0;background:var(--clay-pink);color:var(--choc-900);padding:.6em 1em;border-radius:0 0 var(--radius-sm) 0;z-index:200}
.skip-link:focus{left:0}
:focus-visible{outline:3px solid var(--clay-pink-dark);outline-offset:3px;border-radius:4px}
.container{max-width:var(--container);margin-inline:auto;padding-inline:clamp(1rem,4vw,2.5rem)}
@media (prefers-reduced-motion: reduce){*{animation-duration:.001ms!important;transition-duration:.001ms!important;scroll-behavior:auto!important}}

/* ============ UTILITIES ============ */
.u-grid{display:grid;gap:var(--gap)}
.u-grid-2{grid-template-columns:1fr}
.u-grid-3{grid-template-columns:1fr}
@media (min-width:720px){.u-grid-2{grid-template-columns:1fr 1fr}.u-grid-3{grid-template-columns:repeat(3,1fr)}}
.u-flex{display:flex;flex-wrap:wrap;align-items:center;gap:.75rem}
.u-mt-lg{margin-top:clamp(2rem,5vw,4rem)}
.u-mb-lg{margin-bottom:clamp(2rem,5vw,4rem)}
.section{padding-block:clamp(3rem,7vw,6rem)}
.section--alt{background:var(--paper)}
.ic{stroke:currentColor;flex-shrink:0}

/* ============ HEADER ============ */
.site-header{position:sticky;top:0;z-index:100;background:rgba(251,241,228,.9);backdrop-filter:blur(8px);border-bottom:1px solid rgba(90,50,30,.1)}
.site-header__row{max-width:var(--container);margin-inline:auto;padding:.7rem clamp(1rem,4vw,2.5rem);display:flex;align-items:center;justify-content:space-between;gap:1rem}
.logo{display:block}
.logo__mark{width:150px;height:31px;display:block}
.nav-toggle{display:none;background:none;border:none;color:var(--choc-700);cursor:pointer;padding:.4rem}
.nav-toggle .ic--close{display:none}
.nav-toggle[aria-expanded="true"] .ic--open{display:none}
.nav-toggle[aria-expanded="true"] .ic--close{display:block}
.site-nav{display:flex;align-items:center;gap:1.5rem}
.site-nav ul{display:flex;list-style:none;margin:0;padding:0;gap:1.3rem;flex-wrap:wrap}
.site-nav a{color:var(--choc-700);font-weight:600;padding:.3rem 0;position:relative}
.site-nav a::after{content:"";position:absolute;left:0;bottom:-2px;width:0;height:2px;background:var(--clay-pink-dark);transition:width .25s}
.site-nav a:hover::after,.site-nav a.is-active::after{width:100%}
.site-nav a.is-active{color:var(--clay-pink-dark)}
.cart-link{position:relative;display:flex;color:var(--choc-700)}
.cart-count{position:absolute;top:-8px;right:-10px;background:var(--clay-pink-dark);color:#fff;font-size:.68rem;font-weight:700;min-width:18px;height:18px;border-radius:50%;display:flex;align-items:center;justify-content:center;padding:0 4px}
.cart-count--bump{animation:cartBump .4s ease}
@keyframes cartBump{0%{transform:scale(1)}40%{transform:scale(1.5)}100%{transform:scale(1)}}
@media (max-width:860px){
  .nav-toggle{display:block}
  .site-nav{position:fixed;inset:0 0 0 auto;width:min(78vw,320px);background:var(--choc-900);flex-direction:column;align-items:flex-start;padding:5.5rem 1.5rem 2rem;transform:translateX(100%);visibility:hidden;transition:transform .35s ease;gap:2rem}
  .site-nav.is-open{transform:translateX(0);visibility:visible}
  .site-nav ul{flex-direction:column;gap:1.2rem}
  .site-nav a{color:var(--clay-cream)}
  .cart-link{color:var(--clay-cream)}
}

/* ============ BUTTONS ============ */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5em;font-weight:700;font-family:var(--font-body);border:none;cursor:pointer;border-radius:999px;padding:.85em 1.8em;position:relative;overflow:hidden;isolation:isolate;transition:transform .2s ease,box-shadow .2s ease}
.btn::before{content:"";position:absolute;inset:0;left:-100%;width:100%;background:rgba(255,255,255,.25);transition:left .35s ease;z-index:-1}
.btn:hover::before{left:0}
.btn:active{transform:translateY(2px) scale(.98)}
.btn--clay{background:var(--clay-pink);color:var(--choc-900);box-shadow:var(--shadow-pop)}
.btn--clay:hover{box-shadow:12px 16px 0 rgba(46,27,16,.14)}
.btn--choc{background:var(--choc-700);color:var(--clay-cream);box-shadow:var(--shadow-pop)}
.btn--outline{background:transparent;color:var(--choc-900);border:2px solid var(--choc-900)}
.btn--ghost-dark{background:transparent;color:var(--clay-cream);border:2px solid var(--clay-cream)}
.btn--small{padding:.6em 1.3em;font-size:.9rem}
.btn[disabled]{opacity:.5;cursor:not-allowed}

/* ============ HERO / TICKER ============ */
.hero{position:relative;padding-block:clamp(3rem,8vw,6rem);overflow:hidden}
.hero__grid{display:grid;grid-template-columns:minmax(0,1fr);gap:2.5rem;align-items:center}
.hero__grid>*{min-width:0}
@media (min-width:860px){.hero__grid{grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr)}}
.hero__headline{font-size:clamp(2.6rem,6vw,4.6rem);margin-bottom:.4em}
.hero__lead{font-size:clamp(1.05rem,1.6vw,1.25rem);max-width:34ch}
.hero__art{position:relative;aspect-ratio:1/1;max-width:420px;margin-inline:auto}
.hero__art svg{max-width:100%}
.ticker{overflow:hidden;white-space:nowrap;border-top:2px solid rgba(90,50,30,.15);border-bottom:2px solid rgba(90,50,30,.15);padding:.9rem 0;margin-top:2.5rem}
.ticker__track{display:inline-flex;gap:3rem;animation:tickerScroll 22s linear infinite}
.ticker__track span{font-family:var(--font-display);font-size:1.3rem;color:var(--choc-500)}
@keyframes tickerScroll{from{transform:translateX(0)}to{transform:translateX(-50%)}}
@media (prefers-reduced-motion:reduce){.ticker__track{animation:none}}

/* ============ REVEAL ============ */
.reveal{opacity:1;transform:none}
.reveal{transition:opacity .6s ease, transform .6s ease, clip-path .6s ease}
body:not(.no-js) .reveal{opacity:0;transform:translateY(24px)}
body .reveal.in-view{opacity:1;transform:none}

/* ============ CLAY PANEL / CARD ============ */
.clay-panel{background:var(--clay-cream-2);border-radius:var(--radius-xl);box-shadow:var(--shadow-clay);padding:clamp(1.5rem,3vw,2.5rem)}
.clay-card{background:var(--paper);border-radius:var(--radius-lg);box-shadow:var(--shadow-clay);padding:1.6rem;transition:transform .25s ease,box-shadow .25s ease}
.clay-card:hover{transform:translateY(-6px)}

/* ============ GIFT BUILDER (signature feature) ============ */
.gift-builder{position:relative}
.gift-builder__controls{display:grid;gap:1.2rem}
.chip-group{display:flex;flex-wrap:wrap;gap:.6rem}
.chip{border:2px solid var(--choc-700);background:var(--paper);color:var(--choc-700);border-radius:999px;padding:.5em 1.1em;font-weight:700;cursor:pointer;font-size:.92rem;transition:background .2s,color .2s,transform .15s}
.chip[aria-pressed="true"]{background:var(--clay-pink);color:#fff;border-color:var(--clay-pink);transform:translateY(-2px)}
.gift-builder__crate{background:var(--clay-cream-2);border-radius:var(--radius-lg);box-shadow:var(--shadow-clay-in);padding:1.5rem;min-height:200px}
.gift-builder__items{display:grid;gap:.8rem;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));margin-top:1rem}
.gift-builder__item{background:var(--paper);border-radius:var(--radius-md);box-shadow:var(--shadow-clay);padding:.8rem;text-align:center;font-size:.9rem}
.gift-builder__item img{border-radius:var(--radius-sm);aspect-ratio:1/1;object-fit:cover;margin-bottom:.4rem}
.gift-builder__total{display:flex;justify-content:space-between;align-items:center;margin-top:1.2rem;font-family:var(--font-display);font-size:1.3rem}
.gift-builder__empty{color:var(--choc-500);font-style:italic}

/* ============ ACCORDION (home composition) ============ */
.accordion{display:grid;gap:1rem}
.accordion-item{background:var(--paper);border-radius:var(--radius-lg);box-shadow:var(--shadow-clay);overflow:hidden}
.accordion-item__head{width:100%;display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1.2rem 1.5rem;background:none;border:none;cursor:pointer;font-family:var(--font-display);font-size:1.2rem;color:var(--choc-900);text-align:left}
.accordion-item__icon{flex-shrink:0;transition:transform .3s ease;color:var(--clay-pink-dark)}
.accordion-item[aria-expanded="true"] .accordion-item__icon{transform:rotate(45deg)}
.accordion-item__body{max-height:0;overflow:hidden;transition:max-height .35s ease;padding:0 1.5rem}
.accordion-item__body-inner{padding-bottom:1.4rem;color:var(--choc-700)}

/* ============ PRODUCT GRID / STRIP ============ */
.product-grid{display:grid;gap:1.5rem;grid-template-columns:repeat(auto-fill,minmax(230px,1fr))}
.product-strip{display:flex;gap:1.2rem;overflow-x:auto;scroll-snap-type:x mandatory;padding-bottom:.5rem}
.product-strip .product-card{scroll-snap-align:start;min-width:230px}
.product-card{background:var(--paper);border-radius:var(--radius-lg);box-shadow:var(--shadow-clay);overflow:hidden;display:flex;flex-direction:column;transition:transform .25s ease}
.product-card:hover{transform:translateY(-6px)}
.product-card__media{aspect-ratio:4/3;overflow:hidden}
.product-card__media img{width:100%;height:100%;object-fit:cover;transition:transform .4s ease}
.product-card:hover .product-card__media img{transform:scale(1.07)}
.product-card__body{padding:1.1rem 1.2rem 1.4rem;display:flex;flex-direction:column;gap:.5rem;flex:1}
.product-card__price{font-family:var(--font-display);font-size:1.15rem;color:var(--clay-pink-dark)}

/* ============ DIVIDERS / DECOR ============ */
.divider{width:100%;height:auto;display:block}
.grain-overlay{position:fixed;inset:0;width:100vw;height:100vh;pointer-events:none;opacity:.05;z-index:1;mix-blend-mode:multiply}

/* ============ PAGE HERO (inner pages) ============ */
.page-hero{background:var(--choc-900);color:var(--clay-cream);padding:clamp(2.5rem,6vw,4.5rem) 0 clamp(2rem,4vw,3rem);position:relative;overflow:hidden}
.page-hero h1{color:var(--clay-cream);font-size:clamp(2rem,4.5vw,3.2rem)}
.page-hero p{color:var(--clay-cream-2);max-width:60ch}

/* ============ BREADCRUMBS ============ */
.breadcrumbs{list-style:none;display:flex;gap:.4rem;flex-wrap:wrap;margin:0 0 1rem;padding:0;font-size:.88rem;color:var(--choc-500)}
.breadcrumbs li:not(:last-child)::after{content:"/";margin-left:.4rem}
.breadcrumbs a{color:var(--choc-500)}

/* ============ PROSE (legal text) ============ */
.prose{max-width:68ch;margin-inline:auto}
.prose h2{margin-top:1.8em;font-size:1.4rem}
.prose h3{margin-top:1.3em;font-size:1.15rem}
.prose ul,.prose ol{padding-left:1.3em}
.prose li{margin-bottom:.4em}

/* ============ LEGAL TOC ============ */
.legal-toc{background:var(--clay-cream-2);border-radius:var(--radius-lg);padding:1.2rem 1.5rem;margin-bottom:2rem;max-width:68ch;margin-inline:auto}
.legal-toc h2{font-size:1.05rem;margin-bottom:.6em}
.legal-toc ol{margin:0;padding-left:1.2em}
.legal-toc a{color:var(--choc-700);font-weight:600}

/* ============ NOTICE ============ */
.notice{border-radius:var(--radius-md);padding:1rem 1.3rem;background:var(--clay-pink-pale);color:var(--choc-900);border-left:4px solid var(--clay-pink-dark);max-width:68ch;margin:0 auto 1.5rem}
.notice--info{background:#e4f0ea;border-left-color:#4b8a6b}

/* ============ FORMS ============ */
.form-grid{display:grid;gap:1.2rem;max-width:620px}
.field{display:flex;flex-direction:column;gap:.4rem}
.field label{font-weight:700;font-size:.92rem;color:var(--choc-700)}
.field input,.field textarea,.field select{font-family:var(--font-body);font-size:1rem;padding:.75em 1em;border-radius:var(--radius-sm);border:2px solid rgba(90,50,30,.25);background:var(--paper);accent-color:var(--clay-pink-dark)}
.field input:focus,.field textarea:focus,.field select:focus{border-color:var(--clay-pink-dark)}
.field-error{color:#b3283e;font-size:.85rem;min-height:1.2em}
.hp-field{position:absolute;left:-9999px;width:1px;height:1px;opacity:0}
.form-msg{font-weight:600;min-height:1.4em}
.form-msg--ok{color:#2f7a4f}
.form-msg--error{color:#b3283e}
.newsletter-form .field{flex-direction:row;gap:.5rem}
.newsletter-form input{flex:1}

/* ============ FAQ ============ */
.faq{display:grid;gap:1rem;max-width:68ch;margin-inline:auto}
.faq-item{background:var(--paper);border-radius:var(--radius-md);box-shadow:var(--shadow-clay);padding:.3rem 1.3rem}
.faq-item summary{cursor:pointer;font-weight:700;padding:1rem 0;font-family:var(--font-display);font-size:1.1rem;list-style:none;display:flex;justify-content:space-between;gap:1rem}
.faq-item summary::after{content:"+";font-size:1.4rem;color:var(--clay-pink-dark)}
.faq-item[open] summary::after{content:"–"}
.faq-item p{padding-bottom:1rem;color:var(--choc-700)}

/* ============ CONTACT LAYOUT ============ */
.contact-layout{display:grid;gap:2.5rem}
@media (min-width:860px){.contact-layout{grid-template-columns:1fr 1fr}}
.contact-info-card{background:var(--clay-cream-2);border-radius:var(--radius-lg);padding:1.8rem;box-shadow:var(--shadow-clay)}
.contact-info-card ul{list-style:none;padding:0;margin:0;display:grid;gap:1rem}
.contact-info-card li{display:flex;gap:.8rem;align-items:flex-start}

/* ============ PRODUCT DETAIL ============ */
.product-detail{display:grid;gap:2.5rem}
@media (min-width:860px){.product-detail{grid-template-columns:1fr 1fr}}
.product-detail__media{border-radius:var(--radius-xl);overflow:hidden;box-shadow:var(--shadow-clay)}
.product-detail__media img{width:100%;aspect-ratio:1/1;object-fit:cover}
.product-detail__meta{display:flex;gap:.6rem;flex-wrap:wrap;margin-bottom:1rem}
.product-detail__price{font-family:var(--font-display);font-size:2rem;color:var(--clay-pink-dark);margin:.4em 0}
.qty-stepper{display:inline-flex;align-items:center;border-radius:999px;background:var(--clay-cream-2);box-shadow:var(--shadow-clay-in)}
.qty-stepper button{background:none;border:none;font-size:1.2rem;width:40px;height:40px;cursor:pointer;color:var(--choc-700)}
.qty-stepper input{width:40px;text-align:center;border:none;background:none;font-weight:700}

/* ============ CART TABLE ============ */
.cart-table{width:100%;border-collapse:collapse}
.cart-table th,.cart-table td{text-align:left;padding:.9rem .6rem;border-bottom:1px solid rgba(90,50,30,.15)}
.cart-table img{width:64px;height:64px;object-fit:cover;border-radius:var(--radius-sm)}
.cart-summary{background:var(--clay-cream-2);border-radius:var(--radius-lg);padding:1.6rem;box-shadow:var(--shadow-clay);max-width:360px;margin-left:auto}
.cart-summary dl{display:flex;justify-content:space-between;margin:0 0 .6rem}
.cart-empty{text-align:center;padding:3rem 1rem}

/* ============ COOKIE BANNER ============ */
.cookie-banner{position:fixed;left:1rem;right:1rem;bottom:1rem;z-index:300;background:var(--choc-900);color:var(--clay-cream);border-radius:var(--radius-lg);padding:1.2rem 1.5rem;box-shadow:0 10px 30px rgba(0,0,0,.3);display:flex;flex-wrap:wrap;gap:1rem;align-items:center;justify-content:space-between;max-width:720px;margin-inline:auto}
.cookie-banner a{color:var(--clay-gold)}
.cookie-banner__actions{display:flex;gap:.6rem;flex-wrap:wrap}

/* ============ FOOTER ============ */
.site-footer{background:var(--choc-900);color:var(--clay-cream-2);padding:clamp(3rem,6vw,4.5rem) 0 1.5rem}
.site-footer__grid{max-width:var(--container);margin-inline:auto;padding-inline:clamp(1rem,4vw,2.5rem);display:grid;gap:2.5rem;grid-template-columns:1fr}
@media (min-width:720px){.site-footer__grid{grid-template-columns:1.4fr 1fr 1fr 1.2fr}}
.footer-col h3{color:var(--clay-cream);font-size:1rem;margin-bottom:.8em}
.footer-col ul{list-style:none;padding:0;margin:0;display:grid;gap:.6rem}
.footer-col a{color:var(--clay-cream-2)}
.footer-col a:hover{color:var(--clay-gold)}
.footer-mail{display:inline-flex;gap:.5rem;align-items:center;margin-top:.8rem;color:var(--clay-gold)}
.site-footer__bottom{text-align:center;margin-top:2.5rem;padding-top:1.5rem;border-top:1px solid rgba(255,255,255,.12);font-size:.85rem;color:rgba(255,255,255,.6)}

/* ============ 404 ============ */
.error-page{text-align:center;padding:clamp(4rem,10vw,7rem) 1rem}
.error-page h1{font-size:clamp(4rem,12vw,7rem)}

/* COMPONENTS:
.container - centered max-width content wrapper
.section / .section--alt - vertical page section, alt = paper background
.site-header / .site-nav / .nav-toggle / .cart-link / .cart-count - header & nav
.btn / .btn--clay / .btn--choc / .btn--outline / .btn--ghost-dark / .btn--small - buttons with fill-sweep hover
.hero / .hero__grid / .hero__headline / .hero__lead / .hero__art - home hero
.ticker / .ticker__track - scrolling product-name ticker
.reveal / .in-view - scroll-reveal animation hook
.clay-panel / .clay-card - puffy claymorphism containers
.gift-builder / .gift-builder__controls / .chip-group / .chip / .gift-builder__crate / .gift-builder__items / .gift-builder__item / .gift-builder__total / .gift-builder__empty - signature Gift Box Builder feature
.accordion / .accordion-item / .accordion-item__head / .accordion-item__icon / .accordion-item__body / .accordion-item__body-inner - home accordion panels
.product-grid / .product-strip - catalog layouts
.product-card / .product-card__media / .product-card__body / .product-card__price - product card
.divider - decorative SVG section divider
.grain-overlay - fixed SVG noise texture overlay
.page-hero - inner page hero band
.breadcrumbs - page breadcrumb trail
.prose - long-form legal/readable text block
.legal-toc - table of contents box for legal pages
.notice / .notice--info - callout box
.form-grid / .field / .field-error - form layout and inputs
.hp-field - visually hidden honeypot field
.form-msg / .form-msg--ok / .form-msg--error - form feedback message
.newsletter-form - footer newsletter signup
.faq / .faq-item - FAQ accordion (details/summary)
.contact-layout / .contact-info-card - contact page layout
.product-detail / .product-detail__media / .product-detail__meta / .product-detail__price - product detail page
.qty-stepper - quantity +/- control
.cart-table / .cart-summary / .cart-empty - cart/checkout page
.cookie-banner - cookie consent banner
.site-footer / .footer-col / .footer-mail - footer
.error-page - 404 page
*/

/* ============ FOOTER BRAND COLUMN ============ */
.footer-col--brand{display:flex;flex-direction:column;gap:1rem}

/* ============ ICON SPRITE SHEET ============ */
.icon-sprite{display:none}

/* ============ FAQ ITEM HEADING ============ */
.faq-item__head{width:100%;display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1rem 0;background:none;border:none;cursor:pointer;font-family:var(--font-display);font-size:1.1rem;color:var(--choc-900);text-align:left;font-weight:700;list-style:none}
.faq-item__head::after{content:"+";font-size:1.4rem;color:var(--clay-pink-dark);flex-shrink:0}
details[open] .faq-item__head::after{content:"–"}

/* ============ FAQ ITEM BODY ============ */
.faq-item__body{max-height:0;overflow:hidden;transition:max-height .35s ease;padding:0}
details[open] .faq-item__body{max-height:600px;padding:0 0 1.4rem}

/* ============ UTILITY GAP ============ */
.u-gap{gap:var(--gap)}

/* ============ QUANTITY INPUT ============ */
.qty-update{width:60px;padding:.5em;border:1px solid var(--choc-500);border-radius:var(--radius-sm);text-align:center;font-size:.95em;font-family:var(--font-body);background:var(--paper)}
.qty-update:focus{border-color:var(--clay-pink-dark);outline:none}

/* ============ REMOVE ITEM BUTTON ============ */
.remove-item{background:none;border:none;color:var(--clay-pink-dark);cursor:pointer;font-size:1.2em;padding:0;line-height:1}

/* wg-contrast-autofix */
div.footer-col form.newsletter-form div.field label.sr-only { color: #ffffff !important; }
