/* ============================================================
   H&A Nature's Best — Shared Stylesheet
   ============================================================ */
:root{
  --olive-ink:#2A2A19;
  --olive:#32321F;
  --moss:#3C3C27;
  --moss-soft:#46462F;
  --gold:#C8A24B;
  --gold-bright:#E2C277;
  --pale-gold:#EBDFB4;
  --bone:#EFEAD8;
  --bone-soft:#E7E1CC;
  --ink-on-bone:#33331F;
  --hairline:rgba(200,162,75,.32);
  --hairline-dark:rgba(51,51,31,.22);
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  font-family:'Karla',sans-serif;
  background:var(--bone);
  color:var(--ink-on-bone);
  font-weight:400;
  font-size:16px;
  line-height:1.7;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
::selection{background:var(--gold);color:var(--olive-ink)}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
h1,h2,h3,.display{font-family:'Marcellus',serif;font-weight:400;letter-spacing:.04em}
.serif-it{font-family:'Cormorant Garamond',serif;font-style:italic}
.eyebrow{
  font-family:'Karla',sans-serif;font-size:11px;letter-spacing:.34em;
  text-transform:uppercase;color:var(--gold);font-weight:500;
}
.wrap{max-width:1280px;margin:0 auto;padding:0 6vw}

/* ---------- scroll progress bar ---------- */
.scroll-bar{
  position:fixed;top:0;left:0;height:2px;width:0;
  background:linear-gradient(90deg,var(--gold),var(--gold-bright));
  z-index:200;transition:width .12s linear;
  box-shadow:0 0 12px rgba(200,162,75,.45);
}

/* ---------- announcement ---------- */
.announce{
  background:var(--olive-ink);color:var(--pale-gold);
  font-size:11px;letter-spacing:.28em;text-transform:uppercase;
  text-align:center;padding:10px 16px;
  position:relative;overflow:hidden;
}
.announce em{font-style:normal;color:var(--gold-bright)}
.announce::before{
  content:"";position:absolute;top:0;left:-30%;width:30%;height:100%;
  background:linear-gradient(90deg,transparent,rgba(226,194,119,.18),transparent);
  animation:sheen 8s linear infinite;
}
@keyframes sheen{to{left:130%}}

/* ---------- header ---------- */
header{
  position:sticky;top:0;z-index:90;
  background:rgba(42,42,25,.94);
  backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);
  border-bottom:1px solid rgba(200,162,75,.18);
  transition:box-shadow .3s,background .3s;
}
header.scrolled{box-shadow:0 6px 30px rgba(0,0,0,.35);background:rgba(34,34,19,.96)}
.nav{
  display:flex;align-items:center;justify-content:space-between;
  padding:14px 6vw;max-width:1440px;margin:0 auto;gap:18px;
}
.brand{display:flex;align-items:center;gap:14px;transition:opacity .25s}
.brand:hover{opacity:.88}
.brand img{
  height:50px;width:auto;object-fit:contain;display:block;
  filter:drop-shadow(0 2px 6px rgba(0,0,0,.25));
}
.brand-text{display:flex;flex-direction:column;line-height:1;gap:4px}
.brand-text .name{
  font-family:'Marcellus',serif;font-size:18px;letter-spacing:.16em;
  color:var(--pale-gold);
}
.brand-text .tag{
  font-family:'Karla',sans-serif;font-size:9px;letter-spacing:.4em;
  color:var(--gold);text-transform:uppercase;font-weight:500;
}
nav.links{display:flex;gap:30px;font-size:11.5px;letter-spacing:.22em;text-transform:uppercase;font-weight:500;color:var(--pale-gold)}
nav.links a{position:relative;padding:6px 0;opacity:.82;transition:opacity .25s,color .25s}
nav.links a::after{content:"";position:absolute;left:0;bottom:0;height:1px;width:0;background:var(--gold);transition:width .35s}
nav.links a:hover,nav.links a.active{opacity:1;color:var(--gold-bright)}
nav.links a:hover::after,nav.links a.active::after{width:100%}

.nav-right{display:flex;align-items:center;gap:14px}
.nav-cart{
  position:relative;width:42px;height:42px;
  background:transparent;border:1px solid rgba(200,162,75,.35);
  color:var(--pale-gold);cursor:pointer;
  display:flex;align-items:center;justify-content:center;
  transition:all .3s;
}
.nav-cart:hover{background:var(--gold);color:var(--olive-ink);border-color:var(--gold)}
.nav-cart-count{
  position:absolute;top:-6px;right:-6px;min-width:20px;height:20px;padding:0 5px;
  background:var(--gold);color:var(--olive-ink);
  border-radius:10px;font-family:'Marcellus',serif;font-size:11px;font-weight:400;
  display:flex;align-items:center;justify-content:center;
  border:2px solid var(--olive-ink);line-height:1;
}
.nav-cart-count.hide{display:none}
.nav-cta{
  font-size:11px;letter-spacing:.26em;text-transform:uppercase;font-weight:600;
  border:1px solid var(--gold);color:var(--pale-gold);padding:11px 22px;transition:all .3s;
}
.nav-cta:hover{background:var(--gold);color:var(--olive-ink)}
.burger{display:none;background:none;border:none;cursor:pointer;flex-direction:column;gap:5px;padding:6px}
.burger span{width:24px;height:1.5px;background:var(--pale-gold);display:block;transition:.3s}
.burger.open span:nth-child(1){transform:translateY(6.5px) rotate(45deg)}
.burger.open span:nth-child(2){opacity:0}
.burger.open span:nth-child(3){transform:translateY(-6.5px) rotate(-45deg)}

/* ---------- buttons ---------- */
.btn{
  display:inline-block;font-size:11px;letter-spacing:.28em;text-transform:uppercase;
  font-weight:600;padding:16px 34px;border:1px solid var(--gold);transition:all .35s;cursor:pointer;
  position:relative;overflow:hidden;
}
.btn.solid{background:var(--gold);color:var(--olive-ink)}
.btn.solid:hover{background:var(--gold-bright);border-color:var(--gold-bright)}
.btn.ghost{color:var(--pale-gold);background:transparent}
.btn.ghost:hover{background:rgba(200,162,75,.12)}
.btn.dark{background:var(--olive-ink);border-color:var(--olive-ink);color:var(--pale-gold)}
.btn.dark:hover{background:transparent;color:var(--olive-ink)}

/* ---------- hero ---------- */
.hero{
  background:
    radial-gradient(120% 90% at 78% 10%,rgba(200,162,75,.18),transparent 55%),
    radial-gradient(90% 80% at 12% 95%,rgba(200,162,75,.10),transparent 50%),
    linear-gradient(165deg,#34341F 0%,#2C2C1A 55%,#262616 100%);
  color:var(--bone);position:relative;overflow:hidden;
}
.hero::before{
  content:"";position:absolute;inset:0;
  background-image:
    radial-gradient(circle 1px at 12% 24%,rgba(226,194,119,.5) 100%,transparent),
    radial-gradient(circle 1px at 78% 62%,rgba(226,194,119,.4) 100%,transparent),
    radial-gradient(circle 1px at 32% 78%,rgba(226,194,119,.3) 100%,transparent),
    radial-gradient(circle 1px at 88% 18%,rgba(226,194,119,.45) 100%,transparent),
    radial-gradient(circle 1px at 22% 52%,rgba(226,194,119,.25) 100%,transparent),
    radial-gradient(circle 1px at 62% 32%,rgba(226,194,119,.35) 100%,transparent);
  background-size:200% 200%;
  animation:drift 22s ease-in-out infinite alternate;
  pointer-events:none;
}
@keyframes drift{to{background-position:30% 70%}}
.hero-grid{
  display:grid;grid-template-columns:1fr 1fr;align-items:center;
  gap:4vw;max-width:1440px;margin:0 auto;padding:6vh 6vw 9vh;min-height:88vh;
  position:relative;z-index:2;
}
.hero-copy .eyebrow{margin-bottom:26px;display:flex;align-items:center;gap:16px}
.hero-copy .eyebrow::before{content:"";width:44px;height:1px;background:var(--gold)}
.hero h1{
  font-size:clamp(38px,4.6vw,64px);line-height:1.14;color:var(--pale-gold);
  margin-bottom:28px;
}
.hero h1 .serif-it{color:var(--gold-bright);letter-spacing:0;display:inline-block}
.hero p.lede{
  font-size:17px;line-height:1.85;color:rgba(239,234,216,.82);
  max-width:48ch;margin-bottom:42px;font-weight:300;
}
.hero-actions{display:flex;gap:18px;flex-wrap:wrap}

.hero-art{position:relative;display:flex;justify-content:center;align-items:center}
.hero-logo{
  position:relative;width:min(560px,46vw);aspect-ratio:1;
  display:flex;align-items:center;justify-content:center;
  animation:float 7s ease-in-out infinite;
}
.hero-logo img{width:100%;height:100%;object-fit:contain;position:relative;z-index:2;filter:drop-shadow(0 30px 60px rgba(0,0,0,.4))}
@keyframes float{0%,100%{transform:translateY(0)}50%{transform:translateY(-14px)}}
.hero-logo .orbit{
  position:absolute;inset:6%;border:1px dashed rgba(200,162,75,.28);border-radius:50%;
  animation:spin 80s linear infinite;pointer-events:none;
}
.hero-logo .orbit i{
  position:absolute;top:-4px;left:50%;width:8px;height:8px;border-radius:50%;
  background:var(--gold);box-shadow:0 0 14px rgba(226,194,119,.9);
}
.hero-logo .orbit-2{
  position:absolute;inset:-2%;border:1px dotted rgba(200,162,75,.18);border-radius:50%;
  animation:spin-reverse 120s linear infinite;pointer-events:none;
}
.hero-logo .glow{
  position:absolute;inset:8%;border-radius:50%;
  background:radial-gradient(circle,rgba(200,162,75,.18),transparent 65%);
  filter:blur(20px);animation:pulse 6s ease-in-out infinite;
}
@keyframes spin{to{transform:rotate(360deg)}}
@keyframes spin-reverse{to{transform:rotate(-360deg)}}
@keyframes pulse{0%,100%{opacity:.7;transform:scale(1)}50%{opacity:1;transform:scale(1.05)}}

.hero-meta{
  position:absolute;bottom:0;left:0;right:0;
  border-top:1px solid rgba(200,162,75,.22);
  display:flex;justify-content:space-between;gap:24px;
  padding:18px 6vw;font-size:10.5px;letter-spacing:.3em;text-transform:uppercase;
  color:rgba(235,223,180,.62);z-index:3;
}
.hero-meta b{color:var(--gold);font-weight:500}

/* ---------- small hero (sub-pages) ---------- */
.small-hero{
  background:linear-gradient(165deg,#34341F 0%,#2C2C1A 55%,#262616 100%);
  color:var(--bone);position:relative;overflow:hidden;
  padding:18vh 6vw 14vh;text-align:center;
}
.small-hero::after{
  content:"";position:absolute;left:50%;bottom:0;width:1px;height:60px;
  background:linear-gradient(to bottom,transparent,var(--gold));
  animation:line-grow 3s ease-out;
}
@keyframes line-grow{from{height:0}to{height:60px}}
.small-hero .eyebrow{margin-bottom:22px;justify-content:center;display:inline-flex;align-items:center;gap:14px}
.small-hero .eyebrow::before,.small-hero .eyebrow::after{content:"";width:30px;height:1px;background:var(--gold)}
.small-hero h1{
  font-size:clamp(36px,4.4vw,60px);line-height:1.18;color:var(--pale-gold);
  margin-bottom:20px;max-width:18ch;margin-left:auto;margin-right:auto;
}
.small-hero p{
  color:rgba(239,234,216,.78);font-size:17px;font-weight:300;
  max-width:54ch;margin:0 auto;line-height:1.85;
}
.small-hero .crumbs{
  margin-top:30px;font-size:10.5px;letter-spacing:.3em;text-transform:uppercase;
  color:rgba(235,223,180,.55);
}
.small-hero .crumbs a{color:var(--gold);transition:color .25s}
.small-hero .crumbs a:hover{color:var(--gold-bright)}
.small-hero .crumbs span{margin:0 12px;color:rgba(235,223,180,.3)}

/* ---------- marquee ---------- */
.marquee{
  background:var(--gold);color:var(--olive-ink);overflow:hidden;
  padding:13px 0;border-top:1px solid var(--olive-ink);border-bottom:1px solid var(--olive-ink);
}
.marquee-track{
  display:flex;gap:0;white-space:nowrap;width:max-content;
  animation:marquee 38s linear infinite;
  font-size:11.5px;letter-spacing:.32em;text-transform:uppercase;font-weight:600;
}
.marquee-track span{padding:0 34px;display:inline-flex;align-items:center;gap:34px}
.marquee-track span::after{content:"✦";font-size:9px}
@keyframes marquee{to{transform:translateX(-50%)}}

/* ---------- philosophy ---------- */
.philosophy{padding:13vh 0 11vh;text-align:center;position:relative}
.philosophy .eyebrow{margin-bottom:30px}
.philosophy h2{font-size:clamp(28px,3.2vw,44px);line-height:1.35;max-width:24ch;margin:0 auto 30px}
.philosophy h2 .serif-it{color:var(--gold);font-size:1.12em}
.philosophy p{max-width:62ch;margin:0 auto;color:rgba(51,51,31,.78);font-size:16.5px}
.phil-pillars{
  display:grid;grid-template-columns:repeat(3,1fr);gap:1px;
  background:var(--hairline-dark);border:1px solid var(--hairline-dark);
  max-width:1040px;margin:9vh auto 0;
}
.pillar{background:var(--bone);padding:46px 36px;text-align:left;transition:background .35s,transform .4s}
.pillar:hover{background:var(--bone-soft);transform:translateY(-4px)}
.pillar svg{width:44px;height:44px;margin-bottom:22px;color:var(--gold)}
.pillar h3{font-size:18px;letter-spacing:.1em;margin-bottom:12px}
.pillar p{font-size:14.5px;color:rgba(51,51,31,.72);margin:0;max-width:none}

/* ---------- collections head ---------- */
.collections-head{padding:12vh 0 6vh;text-align:center}
.collections-head h2{font-size:clamp(30px,3.4vw,48px);margin:22px 0 18px}
.collections-head p{max-width:58ch;margin:0 auto;color:rgba(51,51,31,.75)}
.cat-jump{
  display:flex;justify-content:center;flex-wrap:wrap;gap:12px;margin-top:38px;
}
.cat-jump a{
  font-size:11px;letter-spacing:.24em;text-transform:uppercase;font-weight:600;
  border:1px solid var(--hairline-dark);padding:11px 20px;transition:all .3s;
}
.cat-jump a:hover{background:var(--olive-ink);color:var(--pale-gold);border-color:var(--olive-ink)}

/* ---------- collection grid (home) ---------- */
.coll-grid{
  display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:1px;
  background:var(--hairline-dark);border:1px solid var(--hairline-dark);
  max-width:1280px;margin:0 auto;
}
.coll-card{
  background:var(--bone);padding:44px 32px;display:flex;flex-direction:column;
  text-align:left;transition:background .4s;position:relative;overflow:hidden;
}
.coll-card:hover{background:var(--bone-soft)}
.coll-card svg.head{width:80px;height:80px;color:var(--gold);margin-bottom:24px;transition:transform .5s cubic-bezier(.2,.8,.2,1)}
.coll-card:hover svg.head{transform:translateX(4px) scale(1.05)}
.coll-card .num{
  font-family:'Marcellus',serif;font-size:11px;letter-spacing:.32em;
  color:var(--gold);margin-bottom:10px;text-transform:uppercase;
}
.coll-card h3{font-size:24px;line-height:1.25;margin-bottom:12px}
.coll-card p{font-size:14.5px;color:rgba(51,51,31,.72);margin-bottom:24px;flex:1}
.coll-card .go{
  font-size:11px;letter-spacing:.28em;text-transform:uppercase;font-weight:600;
  color:var(--olive-ink);display:inline-flex;align-items:center;gap:10px;
  border-bottom:1px solid var(--ink-on-bone);padding-bottom:6px;align-self:flex-start;
  transition:gap .3s;
}
.coll-card:hover .go{gap:16px}
.coll-card .go::after{content:"→"}

/* ---------- category sections ---------- */
.category{padding:9vh 0 4vh}
.category.dark{background:linear-gradient(170deg,#33331F,#2A2A19);color:var(--bone)}
.cat-intro{display:grid;grid-template-columns:1fr 1fr;gap:6vw;align-items:end;margin-bottom:7vh}
.cat-intro .left .eyebrow{display:flex;align-items:center;gap:14px;margin-bottom:20px}
.cat-intro .left .eyebrow::before{content:"";width:36px;height:1px;background:var(--gold)}
.cat-intro h2{font-size:clamp(30px,3.4vw,46px);line-height:1.18}
.cat-intro .right p{font-size:16px;color:rgba(51,51,31,.78);max-width:52ch}
.category.dark .cat-intro .right p{color:rgba(239,234,216,.74)}
.cat-art{margin:0 0 6vh;display:flex;justify-content:center}
.cat-art svg{width:min(520px,80vw);height:auto;overflow:visible}
.draw path,.draw circle,.draw line,.draw ellipse{
  stroke:var(--gold);fill:none;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round;
}
.reveal-draw path,.reveal-draw line,.reveal-draw ellipse,.reveal-draw circle{
  opacity:0;transition:opacity 1.4s ease;
}
.reveal-draw.in path,.reveal-draw.in line,.reveal-draw.in ellipse,.reveal-draw.in circle{
  opacity:1;
}

/* ---------- product grid ---------- */
.grid{
  display:grid;grid-template-columns:repeat(auto-fill,minmax(265px,1fr));
  gap:1px;background:var(--hairline-dark);border:1px solid var(--hairline-dark);
}
.category.dark .grid{background:var(--hairline);border-color:var(--hairline)}
.card{
  background:var(--bone);padding:0;cursor:pointer;position:relative;
  transition:background .35s,transform .5s cubic-bezier(.2,.8,.2,1);
  display:flex;flex-direction:column;
}
.card:hover{background:var(--bone-soft);transform:translateY(-2px)}
.category.dark .card{background:#33331F}
.category.dark .card:hover{background:#3B3B25}
.card-art{
  aspect-ratio:1/.92;display:flex;align-items:center;justify-content:center;
  background:
    radial-gradient(90% 90% at 50% 30%,rgba(200,162,75,.14),transparent 60%),
    linear-gradient(160deg,#3A3A25,#2C2C1A);
  position:relative;overflow:hidden;
}
.card-art svg{width:54%;height:54%;transition:transform .6s cubic-bezier(.2,.8,.2,1)}
.card:hover .card-art svg{transform:scale(1.08) translateY(-3px) rotate(-2deg)}
.card-art .mono{
  position:absolute;bottom:12px;right:16px;font-family:'Marcellus',serif;
  font-size:11px;letter-spacing:.3em;color:rgba(235,223,180,.5);
}
.card-art::after{
  content:"";position:absolute;inset:10px;border:1px solid rgba(200,162,75,.25);
  pointer-events:none;transition:inset .45s;
}
.card:hover .card-art::after{inset:6px;border-color:rgba(200,162,75,.45)}
.card-body{padding:24px 24px 26px;flex:1;display:flex;flex-direction:column}
.card-body .kind{font-size:9.5px;letter-spacing:.3em;text-transform:uppercase;color:var(--gold);font-weight:600;margin-bottom:10px}
.card-body h3{font-size:18.5px;line-height:1.35;margin-bottom:8px}
.category.dark .card-body h3{color:var(--pale-gold)}
.card-body .note{font-size:13.5px;color:rgba(51,51,31,.66);line-height:1.6;flex:1}
.category.dark .card-body .note{color:rgba(239,234,216,.6)}
.card-foot{
  display:flex;justify-content:space-between;align-items:center;margin-top:18px;
  padding-top:16px;border-top:1px solid var(--hairline-dark);
}
.category.dark .card-foot{border-color:var(--hairline)}
.price{font-family:'Marcellus',serif;font-size:15px;letter-spacing:.04em}
.category.dark .price{color:var(--gold-bright)}
.view{
  font-size:10px;letter-spacing:.26em;text-transform:uppercase;font-weight:600;
  color:var(--gold);display:inline-flex;align-items:center;gap:8px;
}
.view::after{content:"→";transition:transform .3s}
.card:hover .view::after{transform:translateX(5px)}
.card-add{
  position:absolute;top:14px;right:14px;z-index:3;
  width:36px;height:36px;border-radius:50%;border:1px solid rgba(200,162,75,.4);
  background:rgba(42,42,25,.7);backdrop-filter:blur(6px);
  color:var(--gold-bright);cursor:pointer;font-size:18px;font-weight:300;
  display:flex;align-items:center;justify-content:center;
  opacity:0;transform:scale(.85);transition:all .35s cubic-bezier(.2,.8,.2,1);
}
.card:hover .card-add,.card:focus-within .card-add{opacity:1;transform:scale(1)}
.card-add:hover{background:var(--gold);color:var(--olive-ink);border-color:var(--gold)}
@media (hover:none){.card-add{opacity:1;transform:scale(1)}}

/* ---------- heritage ---------- */
.heritage{background:linear-gradient(170deg,#2E2E1C,#262615);color:var(--bone);overflow:hidden}
.heritage-grid{display:grid;grid-template-columns:.95fr 1.05fr;align-items:center;max-width:1440px;margin:0 auto;min-height:78vh}
.heritage-img{position:relative;height:100%;min-height:480px;display:flex;align-items:center;justify-content:center;padding:6vh 4vw}
.heritage-img img{max-width:100%;max-height:560px;width:auto;height:auto;object-fit:contain;filter:drop-shadow(0 30px 60px rgba(0,0,0,.5))}
.heritage-copy{padding:10vh 8vw 10vh 4vw}
.heritage-copy .eyebrow{margin-bottom:24px}
.heritage-copy h2{font-size:clamp(28px,3.2vw,44px);color:var(--pale-gold);line-height:1.25;margin-bottom:26px}
.heritage-copy p{color:rgba(239,234,216,.78);font-size:16px;margin-bottom:18px;max-width:54ch;font-weight:300}
.heritage-stats{display:flex;gap:48px;margin-top:42px;flex-wrap:wrap}
.hstat .num{font-family:'Marcellus',serif;font-size:38px;color:var(--gold-bright);line-height:1}
.hstat .lab{font-size:10px;letter-spacing:.28em;text-transform:uppercase;color:rgba(235,223,180,.6);margin-top:8px}

/* ---------- timeline (story page) ---------- */
.timeline{max-width:780px;margin:0 auto;padding:8vh 6vw;position:relative}
.timeline::before{
  content:"";position:absolute;left:50%;top:8vh;bottom:8vh;width:1px;
  background:linear-gradient(to bottom,transparent,var(--gold),transparent);
  transform:translateX(-.5px);
}
.tl-item{
  display:grid;grid-template-columns:1fr auto 1fr;gap:30px;align-items:center;
  margin-bottom:7vh;position:relative;
}
.tl-item:last-child{margin-bottom:0}
.tl-year{
  width:90px;height:90px;border-radius:50%;
  background:var(--olive-ink);color:var(--gold-bright);
  display:flex;align-items:center;justify-content:center;
  font-family:'Marcellus',serif;font-size:18px;letter-spacing:.06em;
  border:1px solid var(--gold);position:relative;z-index:2;
}
.tl-item:nth-child(odd) .tl-text{text-align:right}
.tl-item:nth-child(even) .tl-text{grid-column:3}
.tl-item:nth-child(even) .tl-spacer{grid-column:1}
.tl-text h3{font-size:20px;margin-bottom:8px;color:var(--ink-on-bone)}
.tl-text p{color:rgba(51,51,31,.72);font-size:14.5px}

/* ---------- promise ---------- */
.promise{padding:11vh 0;text-align:center}
.promise blockquote{
  font-family:'Cormorant Garamond',serif;font-style:italic;font-weight:500;
  font-size:clamp(24px,3vw,38px);line-height:1.5;max-width:34ch;margin:0 auto;
  color:var(--ink-on-bone);position:relative;
}
.promise blockquote::before,.promise blockquote::after{
  content:"";display:block;width:50px;height:1px;background:var(--gold);
  margin:24px auto;
}
.promise blockquote b{color:var(--gold);font-weight:500;font-style:normal}
.promise .sig{margin-top:26px;font-size:11px;letter-spacing:.32em;text-transform:uppercase;color:rgba(51,51,31,.6)}

/* ---------- contact ---------- */
.contact{
  background:var(--olive-ink);color:var(--bone);padding:12vh 0;
  background-image:radial-gradient(80% 100% at 50% 120%,rgba(200,162,75,.16),transparent 60%);
}
.contact-inner{text-align:center;max-width:680px;margin:0 auto;padding:0 6vw}
.contact img{width:120px;height:120px;margin:0 auto 30px;object-fit:contain;filter:drop-shadow(0 10px 30px rgba(0,0,0,.4))}
.contact h2{font-size:clamp(28px,3.2vw,42px);color:var(--pale-gold);margin-bottom:20px}
.contact p{color:rgba(239,234,216,.75);margin-bottom:38px;font-weight:300}
.contact .btn-row{display:flex;gap:16px;justify-content:center;flex-wrap:wrap}

/* ---------- contact page grid ---------- */
.contact-grid{
  display:grid;grid-template-columns:1fr 1fr;gap:6vw;
  max-width:1200px;margin:0 auto;padding:10vh 6vw;
}
.contact-channels{display:flex;flex-direction:column;gap:24px}
.channel{
  display:grid;grid-template-columns:54px 1fr auto;gap:20px;align-items:center;
  padding:24px;background:var(--bone-soft);border:1px solid var(--hairline-dark);
  transition:all .35s;text-decoration:none;
}
.channel:hover{transform:translateY(-3px);border-color:var(--gold);box-shadow:0 12px 28px rgba(0,0,0,.08)}
.channel-icon{
  width:54px;height:54px;border-radius:50%;background:var(--olive-ink);
  display:flex;align-items:center;justify-content:center;color:var(--gold-bright);
}
.channel-info .label{font-size:10px;letter-spacing:.3em;text-transform:uppercase;color:var(--gold);font-weight:600;margin-bottom:4px}
.channel-info .value{font-family:'Marcellus',serif;font-size:17px;color:var(--ink-on-bone);letter-spacing:.04em}
.channel-arrow{color:var(--gold);font-size:18px;opacity:.6;transition:opacity .3s,transform .3s}
.channel:hover .channel-arrow{opacity:1;transform:translateX(4px)}
.contact-side h2{font-size:clamp(26px,3vw,38px);margin-bottom:22px}
.contact-side p{color:rgba(51,51,31,.72);margin-bottom:18px;font-size:15.5px}
.contact-hours{
  margin-top:32px;padding:24px;background:rgba(200,162,75,.08);border-left:2px solid var(--gold);
}
.contact-hours h4{font-size:11px;letter-spacing:.28em;text-transform:uppercase;color:var(--gold);font-weight:600;margin-bottom:12px;font-family:'Karla',sans-serif}
.contact-hours p{font-size:14px;color:rgba(51,51,31,.78);margin-bottom:6px}

/* ---------- featured products on home ---------- */
.featured{padding:11vh 0 4vh}
.featured-head{text-align:center;margin-bottom:6vh}
.featured-head .eyebrow{display:inline-block;margin-bottom:18px}
.featured-head h2{font-size:clamp(28px,3.2vw,44px)}
.featured-head h2 .serif-it{color:var(--gold)}
.featured-head p{max-width:54ch;margin:18px auto 0;color:rgba(51,51,31,.72)}

/* ---------- footer ---------- */
footer{background:#222213;color:rgba(235,223,180,.65);font-size:13px}
.foot-grid{
  display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:5vw;
  padding:9vh 6vw 6vh;max-width:1440px;margin:0 auto;
}
.foot-brand img{height:90px;width:auto;margin-bottom:20px;object-fit:contain}
.foot-brand p{max-width:38ch;line-height:1.8;font-weight:300;margin-bottom:20px}
.foot-social{display:flex;gap:12px}
.foot-social a{
  width:36px;height:36px;border-radius:50%;border:1px solid rgba(200,162,75,.3);
  display:flex;align-items:center;justify-content:center;color:var(--gold);
  transition:all .3s;
}
.foot-social a:hover{background:var(--gold);color:var(--olive-ink);border-color:var(--gold);transform:translateY(-2px)}
footer h4{font-size:11px;letter-spacing:.3em;text-transform:uppercase;color:var(--gold);margin-bottom:20px;font-weight:600;font-family:'Karla',sans-serif}
footer ul{list-style:none}
footer li{margin-bottom:12px}
footer li a{transition:color .25s}
footer li a:hover{color:var(--gold-bright)}
.foot-bottom{
  border-top:1px solid rgba(200,162,75,.18);padding:24px 6vw;
  display:flex;justify-content:center;gap:18px;flex-wrap:wrap;
  font-size:11px;letter-spacing:.16em;text-transform:uppercase;
  max-width:1440px;margin:0 auto;color:rgba(235,223,180,.5);
}

/* ---------- modal ---------- */
.modal-veil{
  position:fixed;inset:0;background:rgba(34,34,19,.72);backdrop-filter:blur(6px);
  z-index:200;display:none;align-items:center;justify-content:center;padding:5vh 4vw;
}
.modal-veil.open{display:flex;animation:fadeIn .3s ease}
@keyframes fadeIn{from{opacity:0}to{opacity:1}}
.modal{
  background:var(--bone);max-width:880px;width:100%;max-height:88vh;overflow:auto;
  display:grid;grid-template-columns:.85fr 1.15fr;position:relative;
  box-shadow:0 50px 120px rgba(0,0,0,.5);animation:rise .4s cubic-bezier(.2,.8,.2,1);
}
@keyframes rise{from{transform:translateY(26px);opacity:0}to{transform:none;opacity:1}}
.modal-art{
  background:radial-gradient(90% 90% at 50% 30%,rgba(200,162,75,.16),transparent 60%),linear-gradient(160deg,#3A3A25,#2A2A19);
  display:flex;align-items:center;justify-content:center;min-height:340px;position:relative;
}
.modal-art svg{width:58%;height:58%}
.modal-art::after{content:"";position:absolute;inset:14px;border:1px solid rgba(200,162,75,.3);pointer-events:none}
.modal-body{padding:46px 44px 44px}
.modal-body .kind{font-size:10px;letter-spacing:.32em;text-transform:uppercase;color:var(--gold);font-weight:600;margin-bottom:12px}
.modal-body h3{font-size:27px;margin-bottom:6px}
.modal-body .mprice{font-family:'Marcellus',serif;font-size:16px;color:rgba(51,51,31,.8);margin-bottom:24px}
.modal-sec h4{
  font-size:10.5px;letter-spacing:.3em;text-transform:uppercase;color:var(--gold);
  font-weight:600;font-family:'Karla',sans-serif;margin:22px 0 10px;
  display:flex;align-items:center;gap:12px;
}
.modal-sec h4::after{content:"";flex:1;height:1px;background:var(--hairline-dark)}
.modal-sec ul{list-style:none}
.modal-sec li{
  font-size:14.5px;color:rgba(51,51,31,.8);padding-left:20px;position:relative;margin-bottom:8px;line-height:1.65;
}
.modal-sec li::before{content:"✦";position:absolute;left:0;top:1px;color:var(--gold);font-size:9px}
.modal-close{
  position:absolute;top:14px;right:14px;width:38px;height:38px;border:1px solid var(--hairline-dark);
  background:var(--bone);cursor:pointer;font-size:16px;color:var(--ink-on-bone);
  display:flex;align-items:center;justify-content:center;transition:all .3s;z-index:2;
}
.modal-close:hover{background:var(--olive-ink);color:var(--pale-gold)}
.modal-qty{margin-top:24px;padding-top:20px;border-top:1px solid var(--hairline-dark);display:flex;justify-content:space-between;align-items:center}
.qty-label{font-size:10.5px;letter-spacing:.3em;text-transform:uppercase;color:var(--gold);font-weight:600}
.qty-control{display:inline-flex;align-items:center;border:1px solid var(--hairline-dark)}
.qty-btn{width:34px;height:34px;background:transparent;border:none;cursor:pointer;font-size:16px;color:var(--ink-on-bone);transition:background .25s}
.qty-btn:hover{background:var(--bone-soft)}
.qty-value{font-family:'Marcellus',serif;font-size:15px;min-width:38px;text-align:center}
.modal-cta{margin-top:28px}
.modal-cta .btn{border-color:var(--olive-ink);color:var(--olive-ink);background:transparent;width:100%}
.modal-cta .btn:hover{background:var(--olive-ink);color:var(--pale-gold)}

/* ---------- cart drawer ---------- */
.cart-fab{
  position:fixed;bottom:28px;right:28px;z-index:80;
  width:60px;height:60px;border-radius:50%;border:1px solid var(--gold);
  background:var(--olive-ink);color:var(--gold-bright);cursor:pointer;
  display:flex;align-items:center;justify-content:center;
  box-shadow:0 12px 36px rgba(0,0,0,.35);
  transition:transform .3s cubic-bezier(.2,.8,.2,1),box-shadow .3s;
}
.cart-fab:hover{transform:translateY(-3px) scale(1.04);box-shadow:0 18px 44px rgba(0,0,0,.45)}
.cart-fab.bump,.nav-cart.bump{animation:bump .55s cubic-bezier(.34,1.56,.64,1)}
@keyframes bump{0%{transform:scale(1)}40%{transform:scale(1.22)}100%{transform:scale(1)}}
.cart-fab-count{
  position:absolute;top:-4px;right:-4px;min-width:22px;height:22px;padding:0 6px;
  background:var(--gold);color:var(--olive-ink);
  border-radius:11px;font-family:'Marcellus',serif;font-size:12px;
  display:flex;align-items:center;justify-content:center;
  border:2px solid var(--olive-ink);
}
.cart-fab-count.hide{display:none}
.cart-veil{position:fixed;inset:0;background:rgba(34,34,19,.6);backdrop-filter:blur(4px);z-index:150;opacity:0;pointer-events:none;transition:opacity .35s}
.cart-veil.open{opacity:1;pointer-events:auto}
.cart-drawer{
  position:fixed;top:0;right:0;height:100vh;width:min(440px,92vw);
  background:var(--bone);z-index:160;display:flex;flex-direction:column;
  transform:translateX(100%);transition:transform .45s cubic-bezier(.2,.8,.2,1);
  box-shadow:-30px 0 80px rgba(0,0,0,.3);
}
.cart-drawer.open{transform:translateX(0)}
.cart-head{padding:28px 28px 22px;border-bottom:1px solid var(--hairline-dark);display:flex;justify-content:space-between;align-items:flex-start}
.cart-close{width:36px;height:36px;border:1px solid var(--hairline-dark);background:transparent;cursor:pointer;font-size:14px;color:var(--ink-on-bone);transition:all .3s;display:flex;align-items:center;justify-content:center}
.cart-close:hover{background:var(--olive-ink);color:var(--pale-gold);border-color:var(--olive-ink)}
.cart-items{flex:1;overflow-y:auto;padding:8px 0}
.cart-empty{flex:1;display:none;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:40px;gap:14px;color:rgba(51,51,31,.55)}
.cart-empty p{font-family:'Cormorant Garamond',serif;font-style:italic;font-size:20px;color:var(--ink-on-bone);margin-top:8px}
.cart-empty span{font-size:11px;letter-spacing:.28em;text-transform:uppercase;color:var(--gold)}
.cart-drawer.empty .cart-items,.cart-drawer.empty .cart-foot{display:none}
.cart-drawer.empty .cart-empty{display:flex}
.cart-item{display:grid;grid-template-columns:64px 1fr auto;gap:14px;padding:18px 28px;border-bottom:1px solid var(--hairline-dark);align-items:center}
.cart-item-art{width:64px;height:64px;display:flex;align-items:center;justify-content:center;background:linear-gradient(160deg,#3A3A25,#2A2A19);border:1px solid rgba(200,162,75,.2)}
.cart-item-art svg{width:62%;height:62%}
.cart-item-info{min-width:0}
.cart-item-info .ci-kind{font-size:9px;letter-spacing:.28em;text-transform:uppercase;color:var(--gold);font-weight:600;margin-bottom:3px}
.cart-item-info .ci-name{font-family:'Marcellus',serif;font-size:14.5px;line-height:1.3;margin-bottom:4px;color:var(--ink-on-bone)}
.cart-item-info .ci-price{font-size:12.5px;color:rgba(51,51,31,.7)}
.cart-item-actions{display:flex;flex-direction:column;align-items:flex-end;gap:8px}
.cart-qty{display:inline-flex;align-items:center;border:1px solid var(--hairline-dark)}
.cart-qty button{width:26px;height:26px;background:transparent;border:none;cursor:pointer;color:var(--ink-on-bone);font-size:14px;transition:background .25s}
.cart-qty button:hover{background:var(--bone-soft)}
.cart-qty span{font-family:'Marcellus',serif;font-size:13px;min-width:24px;text-align:center}
.cart-remove{font-size:9.5px;letter-spacing:.22em;text-transform:uppercase;color:rgba(51,51,31,.5);background:none;border:none;cursor:pointer;padding:0;transition:color .25s}
.cart-remove:hover{color:#8B3A2E}
.cart-foot{padding:22px 28px 24px;border-top:1px solid var(--hairline-dark);background:var(--bone-soft)}
.cart-note{font-size:12px;color:rgba(51,51,31,.72);line-height:1.55;margin-bottom:18px;padding:12px 14px;background:rgba(200,162,75,.1);border-left:2px solid var(--gold)}
.cart-note strong{color:var(--gold);font-weight:600;letter-spacing:.06em}
.cart-total{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:16px;padding-bottom:16px;border-bottom:1px solid var(--hairline-dark)}
.cart-total span:first-child{font-size:10.5px;letter-spacing:.3em;text-transform:uppercase;color:rgba(51,51,31,.65);font-weight:600}
.cart-total-val{font-family:'Marcellus',serif;font-size:22px;color:var(--ink-on-bone)}
.cart-checkout{width:100%;border-color:var(--olive-ink);background:var(--olive-ink);color:var(--pale-gold);font-family:'Karla',sans-serif}
.cart-checkout:hover{background:var(--gold);color:var(--olive-ink);border-color:var(--gold)}
.cart-clear{display:block;margin:14px auto 0;background:none;border:none;cursor:pointer;font-size:10px;letter-spacing:.26em;text-transform:uppercase;color:rgba(51,51,31,.45);font-weight:500;transition:color .25s}
.cart-clear:hover{color:#8B3A2E}

/* ---------- toast ---------- */
.toast{
  position:fixed;bottom:108px;right:28px;z-index:75;
  background:var(--olive-ink);color:var(--pale-gold);
  padding:14px 22px;font-size:12px;letter-spacing:.16em;text-transform:uppercase;
  border:1px solid var(--gold);box-shadow:0 12px 30px rgba(0,0,0,.3);
  opacity:0;transform:translateY(20px);pointer-events:none;
  transition:opacity .35s,transform .45s cubic-bezier(.2,.8,.2,1);
  max-width:300px;
}
.toast.show{opacity:1;transform:translateY(0)}
.toast b{color:var(--gold-bright);font-weight:500}

/* ---------- reveal on scroll ---------- */
.fade-up{opacity:0;transform:translateY(28px);transition:opacity .9s ease,transform .9s cubic-bezier(.2,.8,.2,1)}
.fade-up.in{opacity:1;transform:none}
.fade-left{opacity:0;transform:translateX(-28px);transition:opacity .9s ease,transform .9s cubic-bezier(.2,.8,.2,1)}
.fade-left.in{opacity:1;transform:none}
.fade-right{opacity:0;transform:translateX(28px);transition:opacity .9s ease,transform .9s cubic-bezier(.2,.8,.2,1)}
.fade-right.in{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){
  .fade-up,.fade-left,.fade-right{opacity:1;transform:none;transition:none}
  .marquee-track,.hero-logo,.hero-logo .orbit,.hero-logo .orbit-2,.hero-logo .glow,.hero::before,.announce::before{animation:none}
  html{scroll-behavior:auto}
  .reveal-draw path,.reveal-draw line,.reveal-draw ellipse,.reveal-draw circle{stroke-dasharray:none;stroke-dashoffset:0}
}

/* ---------- responsive ---------- */
@media (max-width:1020px){
  .hero-grid{grid-template-columns:1fr;text-align:center;padding-bottom:14vh}
  .hero-copy .eyebrow{justify-content:center}
  .hero p.lede{margin-left:auto;margin-right:auto}
  .hero-actions{justify-content:center}
  .hero-logo{width:min(440px,80vw)}
  .cat-intro{grid-template-columns:1fr;gap:22px;align-items:start}
  .heritage-grid{grid-template-columns:1fr}
  .heritage-img{min-height:380px}
  .heritage-copy{padding:8vh 6vw}
  .phil-pillars{grid-template-columns:1fr}
  .foot-grid{grid-template-columns:1fr 1fr}
  .modal{grid-template-columns:1fr;max-height:90vh}
  .modal-art{min-height:240px}
  .contact-grid{grid-template-columns:1fr;gap:8vh}
  .tl-item{grid-template-columns:1fr;gap:20px;text-align:center}
  .tl-item .tl-text{grid-column:1!important;text-align:center!important}
  .tl-item .tl-spacer{display:none}
  .tl-year{margin:0 auto}
  .timeline::before{left:50%}
}
@media (max-width:760px){
  nav.links,.nav-cta{display:none}
  .burger{display:flex}
  nav.links.open{
    display:flex;position:absolute;top:100%;left:0;right:0;flex-direction:column;
    background:var(--olive-ink);padding:28px 6vw 34px;gap:22px;border-bottom:1px solid var(--hairline);
  }
  .brand img{height:42px}
  .brand-text .name{font-size:15px}
  .brand-text .tag{font-size:8px;letter-spacing:.32em}
  .foot-grid{grid-template-columns:1fr}
  .hero-meta{flex-direction:column;gap:6px;align-items:center;text-align:center}
  .cart-fab{display:none}
  .small-hero{padding:14vh 6vw 10vh}
  .toast{right:14px;left:14px;bottom:24px;max-width:none;text-align:center}
}
@media (max-width:480px){
  .brand-text{display:none}
  .nav{gap:10px}
}
