/* ============================================================
   THE GIFT FOUNDRY — Design System v2
   Palette: paper white · ink black · silky gold
   Style:   editorial luxury + liquid glass surfaces
   ============================================================ */

:root{
  /* paper */
  --paper:#FFFFFF;
  --paper-2:#FAF7F2;
  --paper-3:#F2EDE4;

  /* ink */
  --ink:#0D0D0F;
  --ink-2:#17171B;
  --ink-3:#232329;
  --muted:#4C4C56;
  --faint:#71717C;

  /* silky gold */
  --gold:#B98B32;
  --gold-deep:#8A6420;      /* AA-safe for small text on white */
  --gold-light:#E9CD8E;
  --gold-pale:#F7EDD8;
  --gold-sheen:linear-gradient(102deg,#8A6420 0%,#C79A3E 18%,#F3E3BC 34%,#D9B45F 50%,#A87C2A 68%,#EBD5A2 86%,#8A6420 100%);
  --gold-metal:linear-gradient(140deg,#F6E9C8 0%,#DCBA6E 28%,#B98B32 58%,#8A6420 78%,#E4CB92 100%);

  --line:rgba(13,13,15,.11);
  --line-2:rgba(13,13,15,.06);
  --line-gold:rgba(185,139,50,.30);

  /* glass */
  --glass-bg:linear-gradient(146deg,rgba(255,255,255,.86),rgba(255,255,255,.60) 46%,rgba(255,255,255,.78));
  --glass-blur:20px;

  /* metrics */
  --nav-h:74px;
  --r-sm:10px; --r-md:16px; --r-lg:22px; --r-xl:30px; --r-pill:999px;
  --pad:clamp(20px,5vw,64px);
  --maxw:1290px;

  /* type */
  --font-display:'Playfair Display',Georgia,'Times New Roman',serif;
  --font-ui:'Inter',system-ui,-apple-system,'Segoe UI',Helvetica,sans-serif;

  --ease:cubic-bezier(.22,.61,.36,1);
  --ease-out:cubic-bezier(.16,1,.3,1);

  --shadow-sm:0 2px 8px -4px rgba(13,13,15,.14);
  --shadow-md:0 18px 40px -26px rgba(13,13,15,.34);
  --shadow-lg:0 34px 70px -40px rgba(13,13,15,.46);
}

*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{
  margin:0;
  background:var(--paper);
  color:var(--ink);
  font-family:var(--font-ui);
  font-size:17px;line-height:1.68;letter-spacing:-.003em;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
img,svg,video{display:block;max-width:100%}
a{color:inherit;text-decoration:none}
button{font:inherit;color:inherit;background:none;border:0;cursor:pointer}
input,select,textarea{font:inherit;color:inherit}
::selection{background:var(--gold-light);color:#241A06}
:focus-visible{outline:2px solid var(--gold-deep);outline-offset:3px;border-radius:4px}

/* ---------- ambient paper texture ---------- */
.aurora{position:fixed;inset:0;z-index:-2;pointer-events:none;overflow:hidden;background:var(--paper)}
.aurora span{position:absolute;border-radius:50%;filter:blur(90px);opacity:.5;animation:drift 30s var(--ease) infinite alternate}
.aurora span:nth-child(1){width:48vw;height:48vw;left:-12vw;top:-14vw;background:radial-gradient(circle,#F6EAD2,transparent 68%)}
.aurora span:nth-child(2){width:44vw;height:44vw;right:-12vw;top:22vh;background:radial-gradient(circle,#F1F0EC,transparent 68%);animation-delay:-10s}
.aurora span:nth-child(3){width:40vw;height:40vw;left:24vw;bottom:-16vw;background:radial-gradient(circle,#FBF2E0,transparent 70%);animation-delay:-18s}
@keyframes drift{from{transform:translate3d(0,0,0) scale(1)}to{transform:translate3d(4vw,-4vh,0) scale(1.14)}}
.grain{
  position:fixed;inset:-50%;z-index:-1;pointer-events:none;opacity:.028;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='200' height='200'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3'/%3E%3C/filter%3E%3Crect width='200' height='200' filter='url(%23n)'/%3E%3C/svg%3E");
  animation:grain 8s steps(6) infinite;
}
@keyframes grain{0%,100%{transform:translate(0,0)}20%{transform:translate(-4%,3%)}40%{transform:translate(3%,-4%)}60%{transform:translate(-3%,-3%)}80%{transform:translate(4%,2%)}}

/* ============================================================
   LIQUID GLASS (light)
   ============================================================ */
.glass{
  position:relative;
  background:var(--glass-bg);
  backdrop-filter:blur(var(--glass-blur)) saturate(180%);
  -webkit-backdrop-filter:blur(var(--glass-blur)) saturate(180%);
  border-radius:var(--r-lg);
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.95),
    inset 0 -1px 1px rgba(255,255,255,.5),
    0 1px 2px rgba(13,13,15,.05),
    0 24px 54px -34px rgba(13,13,15,.42);
  isolation:isolate;overflow:hidden;
}
.glass::before{
  content:"";position:absolute;inset:0;border-radius:inherit;padding:1px;
  background:linear-gradient(140deg,rgba(255,255,255,1),rgba(185,139,50,.28) 34%,rgba(13,13,15,.10) 62%,rgba(255,255,255,.9));
  -webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);
  -webkit-mask-composite:xor;mask-composite:exclude;pointer-events:none;z-index:2;
}
.glass-sheen{position:absolute;inset:0;z-index:1;pointer-events:none;overflow:hidden;border-radius:inherit}
.glass-sheen::before{
  content:"";position:absolute;top:-60%;left:-40%;width:36%;height:220%;
  background:linear-gradient(100deg,transparent,rgba(255,255,255,.9),transparent);
  transform:rotate(14deg) translateX(-60%);animation:sheen 8s var(--ease) infinite;
}
@keyframes sheen{0%,74%{transform:rotate(14deg) translateX(-180%)}100%{transform:rotate(14deg) translateX(460%)}}

/* dark glass — used on ink sections */
.glass-dark{
  background:linear-gradient(146deg,rgba(255,255,255,.13),rgba(255,255,255,.05) 46%,rgba(255,255,255,.10));
  backdrop-filter:blur(18px) saturate(160%);-webkit-backdrop-filter:blur(18px) saturate(160%);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.28),0 24px 54px -34px rgba(0,0,0,.9);
}
.glass-dark::before{
  background:linear-gradient(140deg,rgba(255,255,255,.5),rgba(233,205,142,.32) 38%,rgba(255,255,255,.06) 70%,rgba(255,255,255,.3));
}

/* ============================================================
   TYPOGRAPHY
   ============================================================ */
.display,h1,h2,h3,h4{
  font-family:var(--font-display);
  font-weight:600;
  letter-spacing:-.015em;line-height:1.1;margin:0;color:var(--ink);
}
h1{font-size:clamp(2.45rem,6.1vw,5.1rem);letter-spacing:-.02em}
h2{font-size:clamp(2rem,4.2vw,3.5rem);letter-spacing:-.018em}
h3{font-size:clamp(1.14rem,1.85vw,1.42rem);line-height:1.32;letter-spacing:-.008em;font-weight:600}
p{margin:0}
.eyebrow{
  display:inline-flex;align-items:center;gap:.6em;
  font-size:.73rem;letter-spacing:.22em;text-transform:uppercase;
  color:var(--gold-deep);font-weight:600;font-family:var(--font-ui);
}
.eyebrow::before{content:"";width:26px;height:1px;background:linear-gradient(90deg,transparent,var(--gold))}
.lede{color:var(--muted);font-size:clamp(1rem,1.25vw,1.09rem);line-height:1.68;max-width:60ch}
.serif-italic{font-family:var(--font-display);font-style:italic;font-weight:500}
.gold-text{
  background:var(--gold-sheen);-webkit-background-clip:text;background-clip:text;color:transparent;
  background-size:220% auto;animation:shimmer 11s linear infinite;
}
@keyframes shimmer{to{background-position:220% center}}
.hairline{height:1px;background:linear-gradient(90deg,transparent,var(--line),transparent)}

/* ============================================================
   LAYOUT
   ============================================================ */
.wrap{width:min(100% - (var(--pad)*2),var(--maxw));margin-inline:auto}
section{position:relative;padding-block:clamp(58px,9vw,124px)}
.band{background:var(--paper-2);border-block:1px solid var(--line-2)}
.band-ink{background:var(--ink);color:#F6F4F0}
.band-ink h1,.band-ink h2,.band-ink h3{color:#FBF9F5}
.band-ink .lede{color:rgba(246,244,240,.68)}
.band-ink .eyebrow{color:var(--gold-light)}
.sec-head{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:22px;margin-bottom:clamp(30px,4.6vw,54px)}
.sec-head .left{max-width:64ch}
.sec-head h2{margin-top:14px}
.sec-head .lede{margin-top:16px}

/* ============================================================
   BUTTONS
   ============================================================ */
.btn{
  --bh:50px;font-family:var(--font-ui);
  display:inline-flex;align-items:center;justify-content:center;gap:.6em;
  height:var(--bh);padding:0 26px;border-radius:var(--r-pill);
  font-size:.88rem;font-weight:600;letter-spacing:.005em;white-space:nowrap;
  position:relative;overflow:hidden;
  transition:transform .4s var(--ease-out),box-shadow .4s var(--ease),background .4s var(--ease),color .3s,border-color .3s;
}
.btn:hover{transform:translateY(-2px)}
.btn:active{transform:translateY(0) scale(.985)}
.btn-lg{--bh:56px;padding:0 32px;font-size:.93rem}
.btn .arw{transition:transform .4s var(--ease-out)}
.btn:hover .arw{transform:translateX(4px)}

.btn-gold{
  background:var(--gold-metal);background-size:180% auto;color:#241A06;
  box-shadow:0 10px 26px -14px rgba(185,139,50,.9),inset 0 1px 0 rgba(255,255,255,.75);
}
.btn-gold:hover{background-position:right center;box-shadow:0 18px 38px -16px rgba(185,139,50,1),inset 0 1px 0 rgba(255,255,255,.9)}
.btn-ink{background:var(--ink);color:#FBF9F5;box-shadow:0 12px 26px -16px rgba(13,13,15,.9)}
.btn-ink:hover{background:var(--ink-3);box-shadow:0 18px 34px -16px rgba(13,13,15,.95)}
.btn-ghost{border:1px solid var(--line);color:var(--ink);background:rgba(255,255,255,.6)}
.btn-ghost:hover{border-color:var(--line-gold);background:var(--gold-pale)}
.band-ink .btn-ghost,.foot-cta .btn-ghost,.footer .btn-ghost{border-color:rgba(255,255,255,.26);color:#FBF9F5;background:rgba(255,255,255,.07)}
.band-ink .btn-ghost:hover,.foot-cta .btn-ghost:hover,.footer .btn-ghost:hover{background:rgba(255,255,255,.14);border-color:var(--gold-light)}

/* ============================================================
   NAV
   ============================================================ */
.navbar{
  position:fixed;top:16px;left:0;right:0;z-index:80;
  display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:14px;
  width:min(100% - 30px,1420px);margin-inline:auto;transition:top .45s var(--ease);
}
.navbar.tucked{top:8px}
.brand{display:inline-flex;align-items:center;gap:11px;padding:7px 18px 7px 7px;border-radius:var(--r-pill);justify-self:start}
.brand .mark{
  width:42px;height:42px;border-radius:13px;flex:0 0 auto;display:grid;place-items:center;
  background:var(--gold-metal);color:#241A06;
  font-family:var(--font-display);font-size:1.08rem;font-weight:700;letter-spacing:-.04em;
  box-shadow:0 6px 16px -8px rgba(185,139,50,.9),inset 0 1px 0 rgba(255,255,255,.8);
}
.brand .name{display:flex;flex-direction:column;gap:3px;line-height:1.15}
.brand .name b{font-family:var(--font-display);font-weight:500;font-size:1rem;line-height:1;letter-spacing:-.01em}
.brand .name small{font-size:.55rem;line-height:1;letter-spacing:.24em;text-transform:uppercase;color:var(--faint)}

.navpill{justify-self:center;display:flex;align-items:center;gap:3px;padding:6px;border-radius:var(--r-pill)}
.navpill a{
  position:relative;z-index:3;padding:10px 20px;border-radius:var(--r-pill);
  font-size:.85rem;font-weight:700;color:var(--muted);transition:color .35s var(--ease);white-space:nowrap;
}
.navpill a:hover{color:var(--ink)}
.navpill a.active{color:#241A06}
.navpill .thumb{
  position:absolute;z-index:2;height:calc(100% - 12px);top:6px;border-radius:var(--r-pill);
  background:var(--gold-metal);box-shadow:0 6px 14px -8px rgba(185,139,50,.9),inset 0 1px 0 rgba(255,255,255,.7);
  transition:left .5s var(--ease-out),width .5s var(--ease-out),opacity .3s;opacity:0;
}
.nav-right{justify-self:end;display:flex;align-items:center;gap:9px}
.cart-btn{width:46px;height:46px;border-radius:var(--r-pill);display:grid;place-items:center;position:relative;color:var(--ink)}
.cart-btn .count{
  position:absolute;top:-2px;right:-2px;min-width:20px;height:20px;border-radius:var(--r-pill);
  background:var(--ink);color:#fff;font-size:.66rem;font-weight:800;
  display:grid;place-items:center;padding:0 5px;z-index:4;transform:scale(0);transition:transform .4s var(--ease-out);
}
.cart-btn .count.on{transform:scale(1)}
.nav-cta{
  height:46px;padding:0 22px;display:inline-flex;align-items:center;gap:.55em;border-radius:var(--r-pill);
  font-size:.84rem;font-weight:700;background:var(--ink);color:#FBF9F5;
  box-shadow:0 10px 22px -14px rgba(13,13,15,.9);transition:.4s var(--ease);
}
.nav-cta:hover{background:var(--ink-3);transform:translateY(-2px)}
.nav-cta .dot{width:7px;height:7px;border-radius:50%;background:var(--gold-light);box-shadow:0 0 0 0 rgba(233,205,142,.8);animation:ping 2.6s infinite}
@keyframes ping{70%{box-shadow:0 0 0 9px rgba(233,205,142,0)}100%{box-shadow:0 0 0 0 rgba(233,205,142,0)}}
.burger{display:none;width:46px;height:46px;border-radius:var(--r-pill);place-items:center}
.burger i{display:block;width:17px;height:1.6px;background:var(--ink);border-radius:2px;position:relative;transition:.3s var(--ease)}
.burger i::before,.burger i::after{content:"";position:absolute;left:0;width:17px;height:1.6px;background:var(--ink);border-radius:2px;transition:.3s var(--ease)}
.burger i::before{top:-6px}.burger i::after{top:6px}
.burger.on i{background:transparent}
.burger.on i::before{transform:translateY(6px) rotate(45deg)}
.burger.on i::after{transform:translateY(-6px) rotate(-45deg)}

/* ============================================================
   HERO SLIDER
   ============================================================ */
.hero{padding-top:calc(var(--nav-h) + 34px);padding-bottom:clamp(30px,5vw,64px)}
.slider{position:relative;border-radius:var(--r-xl);overflow:hidden;min-height:min(78vh,660px);display:grid;background:var(--ink)}
.slide{grid-area:1/1;position:relative;display:grid;align-items:center;padding:clamp(20px,3.4vw,46px);
  opacity:0;visibility:hidden;transition:opacity .3s var(--ease),visibility .3s}
.slide.on{opacity:1;visibility:visible;transition:opacity .8s var(--ease) .22s,visibility 0s}
.slide-bg{position:absolute;inset:0;z-index:0;overflow:hidden}
.slide-bg img{width:100%;height:100%;object-fit:cover;transform:scale(1.06)}
.slide.on .slide-bg img{animation:kenburns 12s var(--ease) forwards}
@keyframes kenburns{from{transform:scale(1.06)}to{transform:scale(1.18)}}
.slide-bg::after{content:"";position:absolute;inset:0;background:linear-gradient(96deg,rgba(13,13,15,.62) 0%,rgba(13,13,15,.28) 46%,rgba(13,13,15,.5) 100%)}

.slide-panel{
  position:relative;z-index:2;max-width:min(600px,88%);
  padding:clamp(24px,3vw,40px);border-radius:var(--r-lg);
  background:linear-gradient(150deg,rgba(255,255,255,.97),rgba(255,255,255,.90));
  backdrop-filter:blur(18px) saturate(180%);-webkit-backdrop-filter:blur(18px) saturate(180%);
  box-shadow:0 30px 70px -40px rgba(0,0,0,.7),inset 0 1px 0 rgba(255,255,255,1);
}
.slide-panel h1{margin:16px 0 0;font-size:clamp(2.1rem,4.4vw,3.9rem)}
.slide-panel .lede{margin-top:16px;color:var(--muted)}
.slide-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:26px;align-items:center}
.slide-note{font-size:.83rem;color:var(--faint);margin-top:16px;display:flex;align-items:center;gap:8px}
.slide-note::before{content:"";width:5px;height:5px;border-radius:50%;background:var(--gold);flex:0 0 auto}
.slide-tag{display:inline-flex;align-items:center;gap:10px;font-size:.7rem;letter-spacing:.24em;text-transform:uppercase;color:var(--gold-deep);font-weight:800}
.slide-tag em{font-style:normal;padding:5px 11px;border-radius:var(--r-pill);background:var(--ink);color:var(--gold-light);letter-spacing:.12em}

.slider-ui{position:absolute;left:0;right:0;bottom:0;z-index:6;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:clamp(16px,2.6vw,30px)}
.dots{display:flex;gap:7px;align-items:center}
.dots button{height:4px;width:26px;border-radius:var(--r-pill);background:rgba(255,255,255,.35);transition:width .5s var(--ease-out),background .4s;overflow:hidden;position:relative}
.dots button.on{width:70px;background:rgba(255,255,255,.28)}
.dots button.on::after{content:"";position:absolute;inset:0;transform-origin:left;background:var(--gold-light);animation:fill 6.4s linear forwards}
@keyframes fill{from{transform:scaleX(0)}to{transform:scaleX(1)}}
.arrows{display:flex;gap:8px}
.arrows button{
  width:46px;height:46px;border-radius:var(--r-pill);display:grid;place-items:center;color:#fff;
  background:rgba(13,13,15,.5);backdrop-filter:blur(12px);border:1px solid rgba(255,255,255,.2);
  transition:transform .35s var(--ease-out),background .3s;font-size:1.1rem;
}
.arrows button:hover{transform:scale(1.07);background:rgba(13,13,15,.75)}

/* marquee strip */
.strip{border-block:1px solid var(--line-2);padding:15px 0;overflow:hidden;background:var(--paper-2)}
.strip-track{display:flex;gap:52px;width:max-content;animation:slide-x 36s linear infinite}
.strip span{display:inline-flex;align-items:center;gap:13px;font-size:.72rem;letter-spacing:.2em;text-transform:uppercase;color:var(--faint);white-space:nowrap;font-weight:600}
.strip span::after{content:"◆";color:var(--gold);font-size:.55rem}
@keyframes slide-x{to{transform:translateX(-50%)}}

/* ============================================================
   ABOUT
   ============================================================ */
.about-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(26px,4.6vw,68px);align-items:center}
.about-copy p+p{margin-top:16px}
.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:36px}
.stat{padding:20px 18px;border-radius:var(--r-md);border:1px solid var(--line);background:var(--paper);box-shadow:var(--shadow-sm)}
.stat b{display:block;font-family:var(--font-display);font-size:clamp(1.5rem,2.8vw,2.15rem);line-height:1;letter-spacing:-.03em;color:var(--ink)}
.stat span{font-size:.7rem;letter-spacing:.13em;text-transform:uppercase;color:var(--faint);margin-top:7px;display:block;font-weight:600}
.band-ink .stat{background:rgba(255,255,255,.05);border-color:rgba(255,255,255,.14)}
.band-ink .stat b{color:var(--gold-light)}
.band-ink .stat span{color:rgba(246,244,240,.55)}
.figure{position:relative;border-radius:var(--r-xl);overflow:hidden;aspect-ratio:4/5;box-shadow:var(--shadow-lg)}
.figure img{width:100%;height:100%;object-fit:cover;transition:transform 1.2s var(--ease-out)}
.figure:hover img{transform:scale(1.04)}
.figure .cap{
  position:absolute;left:14px;right:14px;bottom:14px;padding:14px 18px;border-radius:var(--r-md);
  font-size:.8rem;color:var(--muted);z-index:3;
  background:rgba(255,255,255,.86);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);
  box-shadow:0 10px 30px -20px rgba(0,0,0,.6);
}
.figure .cap b{color:var(--ink);font-family:var(--font-display);font-weight:500;display:block;margin-bottom:2px}

/* ============================================================
   CARDS
   ============================================================ */
.card{
  position:relative;display:flex;flex-direction:column;background:var(--paper);
  border-radius:var(--r-lg);overflow:hidden;border:1px solid var(--line);
  box-shadow:var(--shadow-sm);
  transition:transform .55s var(--ease-out),border-color .45s,box-shadow .55s var(--ease);
}
.card:hover{transform:translateY(-7px);border-color:var(--line-gold);box-shadow:var(--shadow-lg)}
.card-media{position:relative;aspect-ratio:4/3;overflow:hidden;background:var(--paper-3)}
.card-media img{width:100%;height:100%;object-fit:cover;transition:transform 1.1s var(--ease-out)}
.card:hover .card-media img{transform:scale(1.06)}
.card-media::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(13,13,15,.16),transparent 42%);pointer-events:none}
.pill{
  position:absolute;top:12px;left:12px;z-index:3;padding:6px 12px;border-radius:var(--r-pill);
  font-size:.63rem;font-weight:800;letter-spacing:.15em;text-transform:uppercase;
  background:rgba(255,255,255,.92);backdrop-filter:blur(10px);color:var(--gold-deep);
  box-shadow:0 4px 12px -6px rgba(0,0,0,.4);
}
.card-body{padding:18px 20px 20px;display:flex;flex-direction:column;gap:7px;flex:1}
.card-body h3{font-size:1.1rem}
.card-body .desc{font-size:.89rem;color:var(--muted);line-height:1.58}
.card-meta{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:auto;padding-top:14px}
.price{font-family:var(--font-display);font-weight:600;font-size:1.2rem;color:var(--ink);letter-spacing:-.01em;font-variant-numeric:tabular-nums}
.card-link{position:absolute;inset:0;z-index:5}
.mini-btn{
  height:40px;padding:0 16px;border-radius:var(--r-pill);position:relative;z-index:6;
  border:1px solid var(--line);font-size:.77rem;font-weight:700;background:var(--paper);
  transition:.35s var(--ease);display:inline-flex;align-items:center;gap:.45em;
}
.mini-btn:hover{background:var(--ink);color:#fff;border-color:transparent}
.mini-btn.added{background:var(--gold-metal);color:#241A06;border-color:transparent}

.size-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}
.size-card .card-body{gap:11px}
.size-specs{display:flex;flex-direction:column;gap:7px;margin-top:2px}
.size-specs div{display:flex;justify-content:space-between;gap:10px;font-size:.77rem;color:var(--muted);padding-bottom:7px;border-bottom:1px dashed var(--line)}
.size-specs div b{color:var(--ink);font-weight:700}
.size-card .go,.value .go{display:inline-flex;align-items:center;gap:.5em;font-size:.79rem;font-weight:800;color:var(--gold-deep);margin-top:4px}
.size-card .go .arw,.value .go .arw{transition:transform .4s var(--ease-out)}
.size-card:hover .go .arw,.value:hover .go .arw{transform:translateX(5px)}

/* ============================================================
   CUSTOM BOX BUILDER
   ============================================================ */
.builder{border-radius:var(--r-xl);padding:clamp(18px,3.2vw,40px);position:relative;background:var(--paper);border:1px solid var(--line);box-shadow:var(--shadow-md)}
.builder-top{display:flex;flex-wrap:wrap;gap:20px;align-items:flex-start;justify-content:space-between;position:relative;z-index:4}
.size-toggle{display:inline-flex;gap:5px;padding:5px;border-radius:var(--r-pill);border:1px solid var(--line);background:var(--paper-2);position:relative}
.size-toggle button{padding:11px 24px;border-radius:var(--r-pill);font-size:.84rem;font-weight:700;color:var(--muted);transition:color .35s var(--ease);position:relative;z-index:3;min-height:44px}
.size-toggle button.on{color:#241A06}
.size-toggle .tglide{position:absolute;top:5px;bottom:5px;border-radius:var(--r-pill);z-index:2;background:var(--gold-metal);box-shadow:0 6px 14px -8px rgba(185,139,50,.9);transition:left .5s var(--ease-out),width .5s var(--ease-out)}
.size-hint{font-size:.83rem;color:var(--faint);margin-top:11px}

.subtotal-card{min-width:240px;padding:18px 20px;border-radius:var(--r-md);border:1px solid var(--line-gold);background:linear-gradient(160deg,var(--gold-pale),rgba(247,237,216,.35))}
.subtotal-card .row{display:flex;justify-content:space-between;gap:14px;font-size:.82rem;color:var(--muted);padding:4px 0;font-variant-numeric:tabular-nums}
.subtotal-card .row.total{margin-top:9px;padding-top:12px;border-top:1px solid var(--line-gold);color:var(--ink);font-size:.88rem;align-items:baseline;font-weight:700}
.subtotal-card .row.total b{font-family:var(--font-display);font-size:1.6rem;color:var(--ink);letter-spacing:-.03em}
.subtotal-card .filled{font-size:.66rem;letter-spacing:.17em;text-transform:uppercase;color:var(--gold-deep);font-weight:800}

.slot-shell{margin-top:26px;padding:clamp(14px,2.4vw,26px);border-radius:var(--r-lg);border:1px solid var(--line);background:var(--paper-2);position:relative;z-index:3}
.slot-shell-head{display:flex;flex-wrap:wrap;justify-content:space-between;gap:10px;align-items:center;margin-bottom:16px}
.slot-shell-head span{font-size:.68rem;letter-spacing:.2em;text-transform:uppercase;color:var(--faint);font-weight:700}
.slots{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}
.slot{
  position:relative;aspect-ratio:3/4;border-radius:var(--r-md);border:1.5px dashed rgba(13,13,15,.2);
  background:var(--paper);display:grid;grid-auto-rows:max-content;align-content:center;justify-items:center;
  padding:14px;text-align:center;gap:9px;
  cursor:pointer;transition:.45s var(--ease);overflow:hidden;
}
.slot:hover{border-color:var(--gold);background:var(--gold-pale);transform:translateY(-4px)}
.slot .plus{width:42px;height:42px;border-radius:50%;border:1px solid var(--line);display:grid;place-items:center;font-size:1.3rem;color:var(--gold-deep);transition:.45s var(--ease)}
.slot:hover .plus{background:var(--gold-metal);color:#241A06;transform:rotate(90deg);border-color:transparent}
.slot .lbl{font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;color:var(--faint);font-weight:700}
.slot .idx{position:absolute;top:9px;left:11px;font-family:var(--font-display);font-size:.82rem;color:rgba(13,13,15,.22)}
.slot.filled{border-style:solid;border-color:var(--line-gold);padding:0;background:var(--paper);align-items:stretch}
.slot.filled .fill-inner{position:relative;width:100%;height:100%;display:flex;flex-direction:column}
.slot.filled img{width:100%;height:60%;object-fit:cover}
.slot .meta{padding:10px 11px;text-align:left;flex:1;display:flex;flex-direction:column;justify-content:center;gap:2px}
.slot .meta b{font-size:.78rem;font-weight:700;line-height:1.25}
.slot .meta i{font-style:normal;font-family:var(--font-display);color:var(--gold-deep);font-size:.9rem}
.slot .rm{
  position:absolute;top:7px;right:7px;width:30px;height:30px;border-radius:50%;z-index:4;
  background:rgba(255,255,255,.94);backdrop-filter:blur(8px);border:1px solid var(--line);
  display:grid;place-items:center;font-size:.82rem;color:var(--ink);transition:.3s;
}
.slot .rm:hover{background:var(--ink);color:#fff;border-color:transparent}
.slot.pop{animation:pop .5s var(--ease-out)}
@keyframes pop{0%{transform:scale(.92)}60%{transform:scale(1.03)}100%{transform:scale(1)}}
.builder-actions{display:flex;flex-wrap:wrap;gap:12px;align-items:center;margin-top:22px;position:relative;z-index:3}
.builder-actions .hint{font-size:.82rem;color:var(--faint)}

/* ---------- modals ---------- */
.modal{position:fixed;inset:0;z-index:200;display:grid;place-items:center;padding:16px;opacity:0;visibility:hidden;transition:opacity .4s var(--ease),visibility .4s}
.modal.on{opacity:1;visibility:visible}
.modal-scrim{position:absolute;inset:0;background:rgba(13,13,15,.55);backdrop-filter:blur(8px)}
.modal-card{
  position:relative;width:min(100%,860px);max-height:min(88vh,880px);display:flex;flex-direction:column;
  border-radius:var(--r-xl);background:var(--paper);box-shadow:0 50px 100px -50px rgba(0,0,0,.7);
  transform:translateY(24px) scale(.975);transition:transform .55s var(--ease-out);
}
.modal.on .modal-card{transform:none}
.modal-head{padding:24px 26px 16px;border-bottom:1px solid var(--line);position:relative;z-index:4}
.modal-head h3{margin-bottom:5px}
.modal-head p{font-size:.84rem;color:var(--muted)}
.modal-close{position:absolute;top:18px;right:18px;width:40px;height:40px;border-radius:50%;border:1px solid var(--line);display:grid;place-items:center;transition:.3s;z-index:5;background:var(--paper)}
.modal-close:hover{background:var(--ink);color:#fff;border-color:transparent;transform:rotate(90deg)}
.modal-body{overflow-y:auto;padding:12px 14px 18px;position:relative;z-index:4;-webkit-overflow-scrolling:touch}
.modal-body::-webkit-scrollbar{width:8px}
.modal-body::-webkit-scrollbar-thumb{background:rgba(13,13,15,.16);border-radius:8px}

.pick{display:grid;grid-template-columns:64px 1fr auto;gap:14px;align-items:center;padding:11px;border-radius:var(--r-md);border:1px solid transparent;transition:.3s var(--ease);cursor:pointer;text-align:left;width:100%}
.pick:hover{background:var(--paper-2);border-color:var(--line)}
.pick .thumbart{width:64px;height:64px;border-radius:11px;overflow:hidden;flex:0 0 auto;background:var(--paper-3)}
.pick .thumbart img{width:100%;height:100%;object-fit:cover}
.pick .info b{display:block;font-size:.93rem;font-weight:700}
.pick .info small{display:block;font-size:.79rem;color:var(--faint);margin-top:2px}
.pick .avail{display:inline-flex;align-items:center;gap:6px;margin-top:5px;font-size:.72rem;color:#9A5B2A;font-weight:600}
.pick .avail::before{content:"";width:5px;height:5px;border-radius:50%;background:#C97B3C;flex:0 0 auto}
.pick .pr{font-family:var(--font-display);font-size:1.02rem;color:var(--ink);white-space:nowrap}
.pick.locked{opacity:.62;cursor:not-allowed;background:rgba(201,123,60,.045)}
.pick.locked .pr{color:var(--faint)}
.pick.chosen{opacity:.45;cursor:not-allowed}
.pick-group-title{font-size:.66rem;letter-spacing:.2em;text-transform:uppercase;color:var(--faint);padding:16px 11px 7px;display:flex;align-items:center;gap:12px;font-weight:800}
.pick-group-title::after{content:"";flex:1;height:1px;background:var(--line-2)}

/* ============================================================
   RAIL
   ============================================================ */
.rail{
  display:grid;grid-auto-flow:column;grid-auto-columns:minmax(258px,1fr);gap:18px;
  overflow-x:auto;scroll-snap-type:x mandatory;padding:6px 2px 20px;scrollbar-width:none;
  -webkit-mask-image:linear-gradient(90deg,#000 84%,transparent);mask-image:linear-gradient(90deg,#000 84%,transparent);
}
.rail::-webkit-scrollbar{display:none}
.rail>*{scroll-snap-align:start}
.rail-nav{display:flex;gap:8px}
.rail-nav button{width:46px;height:46px;border-radius:50%;border:1px solid var(--line);display:grid;place-items:center;transition:.35s var(--ease);background:var(--paper);font-size:1.05rem}
.rail-nav button:hover{background:var(--ink);color:#fff;border-color:transparent}

/* ============================================================
   WHY US — bento
   ============================================================ */
.bento{
  display:grid;gap:14px;
  grid-template-columns:repeat(4,1fr);
  grid-template-rows:repeat(3,minmax(212px,auto));
  grid-template-areas:
    "a a b c"
    "a a d e"
    "f f g e";
}
.bt-a{grid-area:a}.bt-b{grid-area:b}.bt-c{grid-area:c}
.bt-d{grid-area:d}.bt-e{grid-area:e}.bt-f{grid-area:f}.bt-g{grid-area:g}

.bt{
  position:relative;display:flex;flex-direction:column;justify-content:flex-end;
  border-radius:var(--r-lg);overflow:hidden;padding:26px;
  border:1px solid var(--line);background:var(--paper);box-shadow:var(--shadow-sm);
  transition:transform .5s var(--ease-out),box-shadow .5s var(--ease),border-color .4s;
}
.bt:hover{transform:translateY(-5px);box-shadow:var(--shadow-md);border-color:var(--line-gold)}
.bt-body{position:relative;z-index:3;display:flex;flex-direction:column;gap:9px}
.bt-label{
  font-size:.67rem;letter-spacing:.22em;text-transform:uppercase;font-weight:600;
  color:var(--gold-deep);display:inline-flex;align-items:center;gap:8px;
}
.bt-label::before{content:"";width:16px;height:1px;background:currentColor;opacity:.55}
.bt h3{font-size:clamp(1.15rem,1.5vw,1.38rem);line-height:1.25}
.bt p{font-size:.9rem;color:var(--muted);line-height:1.6;max-width:44ch}

/* photo tiles */
.bt-photo{padding:0;border-color:transparent;min-height:230px}
.bt-photo img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform 1.3s var(--ease-out)}
.bt-photo:hover img{transform:scale(1.05)}
.bt-photo::after{
  content:"";position:absolute;inset:0;z-index:2;
  background:linear-gradient(180deg,rgba(13,13,15,.06) 18%,rgba(13,13,15,.62) 58%,rgba(13,13,15,.9));
}
.bt-photo .bt-body{padding:26px;margin-top:auto}
.bt-photo h3{color:#FBF9F5}
.bt-photo p{color:rgba(251,249,245,.78)}
.bt-photo .bt-label{color:var(--gold-light)}
.bt-a{min-height:452px}
.bt-a h3{font-size:clamp(1.5rem,2.3vw,2.05rem)}
.bt-a p{max-width:38ch;font-size:.95rem}

/* stat tile */
.bt-stat{background:var(--gold-metal);background-size:180% auto;border-color:transparent;transition:background-position .8s var(--ease),transform .5s var(--ease-out),box-shadow .5s}
.bt-stat:hover{background-position:right center}
.bt-stat .bt-label{color:rgba(36,26,6,.62)}
.bt-stat h3,.bt-stat p{color:#241A06}
.bt-stat p{opacity:.72;font-size:.85rem}
.bt-figure{display:flex;align-items:baseline;gap:8px;margin:2px 0 -2px}
.bt-figure b{font-family:var(--font-display);font-weight:600;font-size:clamp(2.6rem,4vw,3.6rem);line-height:.9;letter-spacing:-.03em;color:#241A06}
.bt-figure i{font-style:normal;font-size:.95rem;font-weight:600;color:rgba(36,26,6,.7)}

/* ink tile */
.bt-ink{background:var(--ink);border-color:transparent}
.bt-ink::before{
  content:"";position:absolute;inset:0;
  background:radial-gradient(70% 130% at 88% 0%,rgba(233,205,142,.16),transparent 62%);
}
.bt-ink h3{color:#FBF9F5}
.bt-ink p{color:rgba(246,244,240,.66)}
.bt-ink .bt-label{color:var(--gold-light)}
.bt-chips{display:flex;flex-wrap:wrap;gap:7px;margin-top:6px}
.bt-chips span{
  padding:7px 13px;border-radius:var(--r-pill);font-size:.74rem;font-weight:500;
  color:rgba(246,244,240,.8);border:1px solid rgba(255,255,255,.16);background:rgba(255,255,255,.05);
}

/* text tiles */
.bt-text::after{
  content:"";position:absolute;left:26px;right:26px;bottom:0;height:2px;width:0;
  background:var(--gold-metal);transition:width .6s var(--ease-out);
}
.bt-text:hover::after{width:calc(100% - 52px)}

/* cta tile */
.bt-cta{
  background:var(--paper-2);border-style:dashed;border-color:var(--line-gold);
  justify-content:flex-end;
}
.bt-cta h3{color:var(--ink)}
.bt-cta .bt-body{padding-right:66px}
.bt-cta .bt-arrow{
  position:absolute;right:22px;bottom:22px;z-index:3;
  width:48px;height:48px;border-radius:50%;display:grid;place-items:center;
  background:var(--paper);border:1px solid var(--line-gold);color:var(--gold-deep);font-size:1.05rem;
  transition:.45s var(--ease);
}
.bt-cta:hover{background:var(--ink);border-color:transparent;border-style:solid}
.bt-cta:hover h3{color:#FBF9F5}
.bt-cta:hover .bt-label{color:var(--gold-light)}
.bt-cta:hover .bt-arrow{background:var(--gold-metal);border-color:transparent;color:#241A06;transform:rotate(-45deg)}

@media (max-width:1100px){
  .bento{
    grid-template-columns:repeat(2,1fr);
    grid-template-rows:auto;
    grid-template-areas:
      "a a"
      "b c"
      "d e"
      "f f"
      "g g";
  }
  .bt-a{min-height:380px}
  .bt-g{min-height:170px}
}
@media (max-width:640px){
  .bento{
    gap:10px;
    grid-template-columns:1fr;
    grid-template-areas:"a" "b" "c" "d" "e" "f" "g";
  }
  .bt{padding:22px;min-height:0}
  .bt-photo .bt-body{padding:22px}
  .bt-a{min-height:340px}
  .bt-photo{min-height:270px}
  .bt-g{min-height:150px}
  .bt p{font-size:.88rem}
}

/* ============================================================
   PROCESS
   ============================================================ */
.proc-line{position:absolute;left:50%;top:0;bottom:0;width:1px;background:linear-gradient(180deg,transparent,var(--line) 6%,var(--line) 94%,transparent)}
.proc-line i{position:absolute;left:-2px;top:0;width:5px;border-radius:4px;background:var(--gold-metal);box-shadow:0 0 20px rgba(185,139,50,.5);height:0;transition:height .2s linear}
.steps{display:flex;flex-direction:column;gap:clamp(26px,4.4vw,58px);position:relative}
.step{display:grid;grid-template-columns:1fr 116px 1fr;align-items:center;gap:18px}
.step .art-side{grid-column:1;grid-row:1;border-radius:var(--r-lg);overflow:hidden;aspect-ratio:16/10;box-shadow:var(--shadow-md)}
.step .node{grid-column:2;grid-row:1}
.step .txt{grid-column:3;grid-row:1;padding:6px 8px}
.step:nth-child(even) .art-side{grid-column:3}
.step:nth-child(even) .txt{grid-column:1;text-align:right}
.step:nth-child(even) .txt p{margin-left:auto}
.step .art-side img{width:100%;height:100%;object-fit:cover;transition:transform 1.2s var(--ease-out)}
.step:hover .art-side img{transform:scale(1.05)}
.step .txt h3{margin-bottom:9px;font-size:clamp(1.35rem,2.2vw,1.85rem)}
.step .txt p{color:var(--muted);font-size:.94rem;max-width:42ch}
.step .txt .st-tag{font-size:.65rem;letter-spacing:.22em;text-transform:uppercase;color:var(--faint);margin-bottom:10px;display:block;font-weight:800}
.step .node{
  justify-self:center;width:74px;height:74px;border-radius:50%;display:grid;place-items:center;
  font-family:var(--font-display);font-size:1.05rem;position:relative;z-index:3;
  background:var(--paper);border:1px solid var(--line);color:var(--muted);
  transition:transform .6s var(--ease-out),color .5s,background .5s,border-color .5s;
}
.step .node::before{content:"";position:absolute;inset:-9px;border-radius:50%;border:1px solid var(--line-gold);transform:scale(.7);opacity:0;transition:.7s var(--ease-out)}
.step.lit .node{transform:scale(1.06);color:#241A06;background:var(--gold-metal);border-color:transparent;box-shadow:0 10px 24px -12px rgba(185,139,50,.9)}
.step.lit .node::before{transform:scale(1);opacity:1}

/* ============================================================
   GRIDS
   ============================================================ */
.grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.grid-4{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}

/* ============================================================
   REVIEWS
   ============================================================ */
.marquee{position:relative;overflow:hidden;-webkit-mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent);mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent)}
.marquee-track{display:flex;gap:18px;width:max-content;animation:slide-x 48s linear infinite}
.marquee:hover .marquee-track{animation-play-state:paused}
.marquee+.marquee{margin-top:18px}
.marquee.rev .marquee-track{animation-direction:reverse;animation-duration:56s}
.review{
  width:min(80vw,390px);padding:24px 26px;border-radius:var(--r-lg);
  background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.14);
  display:flex;flex-direction:column;gap:13px;
}
.review .stars{color:var(--gold-light);letter-spacing:.22em;font-size:.76rem}
.review p{font-size:.92rem;line-height:1.6;color:rgba(251,249,245,.9);font-family:var(--font-display);font-style:italic}
.review .who{display:flex;align-items:center;gap:11px;margin-top:auto;padding-top:4px}
.review .av{width:38px;height:38px;border-radius:50%;flex:0 0 auto;display:grid;place-items:center;font-size:.82rem;font-weight:800;color:#241A06;background:var(--gold-metal);font-family:var(--font-ui);font-weight:600}
.review .who b{display:block;font-size:.86rem;color:#FBF9F5}
.review .who small{display:block;font-size:.73rem;color:rgba(251,249,245,.55)}

/* ============================================================
   GALLERY
   ============================================================ */
.gallery{columns:4;column-gap:14px}
.gal{background:var(--paper-3);break-inside:avoid;margin-bottom:14px;border-radius:var(--r-md);overflow:hidden;position:relative;box-shadow:var(--shadow-sm);transition:transform .6s var(--ease-out),box-shadow .6s var(--ease)}
.gal img{width:100%;height:100%;object-fit:cover;transition:transform 1.2s var(--ease-out)}
.gal:hover{transform:translateY(-6px) rotate(var(--tilt,0deg));box-shadow:var(--shadow-lg);z-index:3}
.gal:hover img{transform:scale(1.07)}
.gal figcaption{
  position:absolute;inset:auto 0 0 0;padding:14px;z-index:3;
  font-size:.73rem;letter-spacing:.1em;text-transform:uppercase;color:#fff;font-weight:600;
  background:linear-gradient(0deg,rgba(13,13,15,.86),transparent);
  opacity:0;transform:translateY(8px);transition:.5s var(--ease-out);
}
.gal:hover figcaption{opacity:1;transform:none}

/* ============================================================
   FORMS
   ============================================================ */
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:13px;padding:22px 26px 6px}
.field{display:flex;flex-direction:column;gap:6px}
.field.full{grid-column:1/-1}
.field label{font-size:.69rem;letter-spacing:.16em;text-transform:uppercase;color:var(--faint);font-weight:700}
.field input,.field textarea,.field select{
  height:48px;padding:0 15px;border-radius:var(--r-sm);background:var(--paper-2);
  border:1px solid var(--line);transition:.3s var(--ease);width:100%;font-size:16px;
}
.field textarea{height:94px;padding:12px 15px;resize:vertical;font-family:inherit}
.field input:focus,.field textarea:focus,.field select:focus{outline:none;border-color:var(--gold);background:var(--paper);box-shadow:0 0 0 3px rgba(185,139,50,.14)}
.field select{
  -webkit-appearance:none;appearance:none;cursor:pointer;padding-right:42px;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8' fill='none' stroke='%238A6420' stroke-width='1.6'%3E%3Cpath d='M1 1.5 6 6.5l5-5'/%3E%3C/svg%3E");
  background-repeat:no-repeat;background-position:right 16px center;
}
.form-error{
  grid-column:1/-1;margin-bottom:4px;padding:14px 16px;border-radius:var(--r-sm);
  background:#FBEAE6;border:1px solid rgba(158,56,38,.28);color:#8E3323;
  font-size:.86rem;line-height:1.55;
}
.form-error b{display:block;margin-bottom:2px}
.form-error a{color:#8E3323;text-decoration:underline}
.modal-foot{display:flex;flex-wrap:wrap;gap:13px;align-items:center;justify-content:space-between;padding:14px 26px 24px}
.modal-foot small{font-size:.75rem;color:var(--faint);max-width:34ch}
.quote-summary{margin:0 26px;padding:14px 16px;border-radius:var(--r-md);background:var(--gold-pale);border:1px solid var(--line-gold);font-size:.83rem;color:var(--muted)}
.quote-summary b{color:var(--gold-deep)}
.success{padding:44px 28px;text-align:center;display:grid;gap:13px;place-items:center}
.success .tick{width:72px;height:72px;border-radius:50%;display:grid;place-items:center;font-size:1.8rem;background:var(--gold-metal);color:#241A06;animation:pop .6s var(--ease-out)}

/* ============================================================
   TOAST
   ============================================================ */
.toast-wrap{position:fixed;bottom:22px;left:50%;transform:translateX(-50%);z-index:300;display:flex;flex-direction:column;gap:9px;align-items:center;pointer-events:none;width:max-content;max-width:92vw}
.toast{
  padding:12px 20px;border-radius:var(--r-pill);font-size:.84rem;font-weight:600;
  display:flex;align-items:center;gap:9px;background:var(--ink);color:#FBF9F5;
  box-shadow:0 20px 40px -22px rgba(0,0,0,.8);animation:toast-in .5s var(--ease-out);text-align:center;
}
.toast b{color:var(--gold-light)}
@keyframes toast-in{from{opacity:0;transform:translateY(16px) scale(.95)}to{opacity:1;transform:none}}
.toast.out{animation:toast-out .4s var(--ease) forwards}
@keyframes toast-out{to{opacity:0;transform:translateY(-10px) scale(.96)}}

/* ============================================================
   FOOTER
   ============================================================ */
.foot-cta{
  border-radius:var(--r-xl);padding:clamp(28px,4.6vw,60px);text-align:center;
  display:grid;gap:16px;place-items:center;
  background:var(--ink);color:#FBF9F5;position:relative;overflow:hidden;
}
.foot-cta::before{
  content:"";position:absolute;inset:0;
  background:radial-gradient(80% 120% at 50% -10%,rgba(233,205,142,.18),transparent 62%);
}
.foot-cta>*{position:relative;z-index:2}
.foot-cta h2{color:#FBF9F5;max-width:20ch}
.foot-cta .lede{color:rgba(251,249,245,.66)}
.foot-cta .eyebrow{color:var(--gold-light)}

.footer{position:relative;background:var(--ink);color:#F6F4F0;margin-top:clamp(50px,8vw,100px);padding-top:clamp(46px,7vw,86px)}
.footer .foot-cta{margin-top:calc(-1 * clamp(46px,7vw,86px) - clamp(50px,8vw,100px));margin-bottom:clamp(40px,6vw,72px);box-shadow:var(--shadow-lg)}
.foot-grid{display:grid;grid-template-columns:1.7fr 1fr 1fr 1.3fr;gap:38px;padding-bottom:40px}
.foot-col h4{font-size:.7rem;letter-spacing:.22em;text-transform:uppercase;color:rgba(246,244,240,.5);font-family:var(--font-ui);font-weight:800;margin:0 0 16px}
.foot-col ul{list-style:none;margin:0;padding:0;display:grid;gap:10px}
.foot-col a{font-size:.89rem;color:rgba(246,244,240,.68);transition:.3s var(--ease);display:inline-flex;align-items:center;gap:8px}
.foot-col a:hover{color:var(--gold-light);transform:translateX(3px)}
.footer .brand .name b{color:#FBF9F5}
.footer .brand .name small{color:rgba(246,244,240,.45)}
.foot-about p{font-size:.89rem;color:rgba(246,244,240,.62);margin-top:16px;max-width:36ch}
.socials{display:flex;gap:9px;margin-top:20px;flex-wrap:wrap}
.socials a{width:44px;height:44px;border-radius:50%;display:grid;place-items:center;border:1px solid rgba(255,255,255,.16);color:#F6F4F0;transition:.4s var(--ease)}
.socials a:hover{background:var(--gold-metal);color:#241A06;border-color:transparent;transform:translateY(-3px)}
.socials svg{width:17px;height:17px}
.newsletter{display:flex;gap:8px;margin-top:14px}
.newsletter input{flex:1;min-width:0;height:46px;padding:0 16px;border-radius:var(--r-pill);background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.16);color:#FBF9F5;font-size:16px}
.newsletter input::placeholder{color:rgba(246,244,240,.4)}
.newsletter input:focus{outline:none;border-color:var(--gold-light)}
.newsletter button{height:46px;padding:0 20px;border-radius:var(--r-pill);background:var(--gold-metal);color:#241A06;font-weight:800;font-size:.8rem;transition:.35s;flex:0 0 auto}
.foot-bottom{display:flex;flex-wrap:wrap;gap:14px;align-items:center;justify-content:space-between;padding:20px 0 34px;border-top:1px solid rgba(255,255,255,.1);font-size:.78rem;color:rgba(246,244,240,.45)}
.foot-bottom nav{display:flex;flex-wrap:wrap;gap:20px}
.foot-bottom a:hover{color:var(--gold-light)}
.wordmark{
  font-family:var(--font-display);text-align:center;line-height:.86;letter-spacing:-.04em;
  font-size:clamp(2.6rem,14vw,12rem);
  background:linear-gradient(180deg,rgba(246,244,240,.13),rgba(246,244,240,0));
  -webkit-background-clip:text;background-clip:text;color:transparent;padding-bottom:8px;user-select:none;
}
.foot-acc-toggle{display:none}

/* ============================================================
   SUB PAGES
   ============================================================ */
.page-head{padding-top:calc(var(--nav-h) + 60px);padding-bottom:clamp(26px,4vw,48px)}
.crumbs{display:flex;gap:9px;align-items:center;font-size:.75rem;color:var(--faint);margin-bottom:18px;flex-wrap:wrap}
.crumbs a:hover{color:var(--gold-deep)}
.filters{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:30px}
.chip{padding:11px 20px;border-radius:var(--r-pill);border:1px solid var(--line);font-size:.81rem;font-weight:700;color:var(--muted);transition:.35s var(--ease);background:var(--paper);min-height:44px}
.chip:hover{border-color:var(--line-gold);color:var(--ink)}
.chip.on{background:var(--ink);color:#fff;border-color:transparent}
.empty{padding:64px 20px;text-align:center;color:var(--faint)}
.timeline-about{display:grid;gap:0}
.tl-row{display:grid;grid-template-columns:140px 1fr;gap:26px;padding:26px 0;border-top:1px solid var(--line-2)}
.tl-row b{font-family:var(--font-display);color:var(--gold-deep);font-size:1.25rem}
.tl-row p{color:var(--muted);font-size:.9rem;max-width:60ch}
.team-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}
.team .card-media{aspect-ratio:3/4}
.value-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:18px}
.value{
  padding:28px;border-radius:var(--r-lg);border:1px solid var(--line);background:var(--paper);
  display:flex;flex-direction:column;box-shadow:var(--shadow-sm);
  transition:border-color .45s var(--ease),transform .5s var(--ease-out),box-shadow .5s;
}
a.value:hover{border-color:var(--line-gold);transform:translateY(-5px);box-shadow:var(--shadow-md)}
.value h3{margin-bottom:9px}
.value p{color:var(--muted);font-size:.91rem}
.value .go{margin-top:auto;padding-top:14px}

/* ============================================================
   PRODUCT DETAIL PAGE
   ============================================================ */
.pdp-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(26px,4vw,64px);align-items:start;padding-bottom:clamp(40px,6vw,80px)}

.pdp-media{position:sticky;top:calc(var(--nav-h) + 22px)}
.pdp-stage{
  position:relative;margin:0;border-radius:var(--r-xl);overflow:hidden;
  aspect-ratio:4/5;background:var(--paper-3);box-shadow:var(--shadow-lg);
}
.pdp-stage img{width:100%;height:100%;object-fit:cover;transition:opacity .3s var(--ease),transform 1.4s var(--ease-out)}
.pdp-stage:hover img{transform:scale(1.04)}
.stage-cap{
  position:absolute;left:14px;bottom:14px;z-index:3;padding:8px 14px;border-radius:var(--r-pill);
  font-size:.66rem;letter-spacing:.18em;text-transform:uppercase;font-weight:600;color:var(--ink);
  background:rgba(255,255,255,.9);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);
}
.pdp-thumbs{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-top:12px}
.thumb{
  border-radius:var(--r-md);overflow:hidden;aspect-ratio:1;border:1px solid var(--line);
  background:var(--paper-3);padding:0;transition:.35s var(--ease);opacity:.62;
}
.thumb img{width:100%;height:100%;object-fit:cover}
.thumb:hover{opacity:1}
.thumb.on{opacity:1;border-color:var(--gold);box-shadow:0 0 0 3px rgba(185,139,50,.16)}

.pdp-info h1{margin:14px 0 12px;font-size:clamp(2rem,3.6vw,3.1rem)}
.pdp-info .lede{margin-bottom:22px}
.pdp-pricerow{display:flex;align-items:baseline;gap:16px;flex-wrap:wrap;padding-bottom:22px;border-bottom:1px solid var(--line)}
.pdp-price{font-family:var(--font-display);font-weight:600;font-size:clamp(1.7rem,2.6vw,2.2rem);letter-spacing:-.02em;font-variant-numeric:tabular-nums}
.pdp-rating{font-size:.82rem;color:var(--muted);display:inline-flex;align-items:center;gap:6px}
.pdp-rating b{color:var(--ink);font-weight:600}
.pdp-rating span{color:var(--faint)}

.pdp-block{padding:22px 0;border-bottom:1px solid var(--line-2)}
.pdp-block-head{display:flex;align-items:baseline;justify-content:space-between;gap:14px;margin-bottom:14px}
.pdp-label{font-size:.68rem;letter-spacing:.24em;text-transform:uppercase;color:var(--faint);font-weight:600}
.pdp-chosen{font-size:.85rem;color:var(--ink);font-weight:500}
.pdp-note{font-size:.83rem;color:var(--faint);margin-top:11px;line-height:1.6}

.swatches{display:flex;gap:10px;flex-wrap:wrap}
.swatch{
  width:44px;height:44px;border-radius:50%;padding:4px;border:1px solid var(--line);
  transition:.35s var(--ease);display:grid;place-items:center;
}
.swatch span{width:100%;height:100%;border-radius:50%;box-shadow:inset 0 0 0 1px rgba(13,13,15,.12)}
.swatch:hover{transform:translateY(-2px);border-color:var(--line-gold)}
.swatch.on{border-color:var(--gold);box-shadow:0 0 0 3px rgba(185,139,50,.16)}

.pdp-input{
  width:100%;height:52px;padding:0 16px;border-radius:var(--r-sm);
  background:var(--paper-2);border:1px solid var(--line);font-size:16px;transition:.3s var(--ease);
}
.pdp-input:focus{outline:none;border-color:var(--gold);background:var(--paper);box-shadow:0 0 0 3px rgba(185,139,50,.14)}

.pdp-buy{display:flex;gap:12px;align-items:stretch;margin-top:24px}
.pdp-buy .btn{flex:1}
.qty{display:inline-flex;align-items:center;border:1px solid var(--line);border-radius:var(--r-pill);background:var(--paper);overflow:hidden}
.qty button{width:48px;height:56px;font-size:1.1rem;color:var(--ink);transition:background .3s}
.qty button:hover{background:var(--paper-3)}
.qty span{min-width:34px;text-align:center;font-weight:600;font-variant-numeric:tabular-nums}
.pdp-secondary{width:100%;margin-top:10px}

.pdp-trust{list-style:none;margin:26px 0 0;padding:0;display:grid;gap:9px}
.pdp-trust li{font-size:.86rem;color:var(--muted);display:flex;align-items:flex-start;gap:10px}
.pdp-trust li::before{
  content:"";width:16px;height:16px;flex:0 0 auto;margin-top:4px;border-radius:50%;
  background:var(--gold-pale);box-shadow:inset 0 0 0 1px var(--line-gold);
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 16 16' fill='none' stroke='%238A6420' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 8.4 6.6 11 12 5.4'/%3E%3C/svg%3E");
  background-repeat:no-repeat;background-position:center;
}

.acc{margin-top:30px;border-top:1px solid var(--line)}
.acc-item{border-bottom:1px solid var(--line)}
.acc-head{
  width:100%;display:flex;align-items:center;justify-content:space-between;gap:16px;
  padding:18px 0;font-family:var(--font-display);font-size:1.08rem;font-weight:600;text-align:left;
}
.acc-head i{position:relative;width:13px;height:13px;flex:0 0 auto}
.acc-head i::before,.acc-head i::after{
  content:"";position:absolute;background:var(--gold-deep);border-radius:2px;transition:transform .4s var(--ease)
}
.acc-head i::before{left:0;top:6px;width:13px;height:1.5px}
.acc-head i::after{left:6px;top:0;width:1.5px;height:13px}
.acc-item.open .acc-head i::after{transform:rotate(90deg)}
.acc-body{display:grid;grid-template-rows:0fr;transition:grid-template-rows .45s var(--ease)}
.acc-item.open .acc-body{grid-template-rows:1fr}
.acc-inner{overflow:hidden}
.acc-inner p{font-size:.93rem;color:var(--muted);padding-bottom:20px;line-height:1.7}
.acc-inner p+p{padding-top:0;margin-top:-8px}

/* spec table */
.spec-wrap{display:grid;grid-template-columns:1.35fr .65fr;gap:clamp(20px,3vw,44px);align-items:start}
.spec-table{width:100%;border-collapse:collapse;border-top:1px solid var(--line)}
.spec-table tr{border-bottom:1px solid var(--line-2)}
.spec-table th{
  text-align:left;padding:16px 20px 16px 0;font-size:.7rem;letter-spacing:.2em;text-transform:uppercase;
  color:var(--faint);font-weight:600;width:34%;vertical-align:top;
}
.spec-table td{padding:16px 0;font-size:.92rem;color:var(--ink)}
.spec-aside{padding:26px;border-radius:var(--r-lg);border:1px solid var(--line);background:var(--paper-2)}
.spec-aside h3{font-size:1.08rem}
.fitrow{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}
.fitchip{
  padding:8px 14px;border-radius:var(--r-pill);font-size:.76rem;font-weight:500;
  border:1px solid var(--line);background:var(--paper);
}
.fitchip.yes{border-color:var(--line-gold);background:var(--gold-pale);color:var(--gold-deep)}
.fitchip.no{color:var(--faint);text-decoration:line-through;text-decoration-color:var(--line)}
.value .k{font-family:var(--font-display);font-size:.9rem;color:var(--gold-deep);letter-spacing:.08em}

/* sticky mobile buy bar */
.pdp-bar{
  position:fixed;left:0;right:0;bottom:0;z-index:70;display:none;
  align-items:center;justify-content:space-between;gap:14px;
  padding:12px 16px calc(12px + env(safe-area-inset-bottom));
  background:rgba(255,255,255,.94);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);
  border-top:1px solid var(--line);box-shadow:0 -14px 34px -26px rgba(13,13,15,.6);
  transform:translateY(110%);transition:transform .45s var(--ease-out);
}
.pdp-bar.on{transform:none}
.pdp-bar-info{display:flex;flex-direction:column;min-width:0}
.pdp-bar-info b{font-size:.86rem;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pdp-bar-info span{font-family:var(--font-display);font-weight:600;font-size:1.05rem}
.pdp-bar .btn{flex:0 0 auto}

@media (max-width:900px){
  .pdp-grid{grid-template-columns:1fr;gap:26px}
  .pdp-media{position:static}
  .pdp-stage{aspect-ratio:1}
  .spec-wrap{grid-template-columns:1fr}
  .pdp-bar{display:flex}
}
@media (max-width:640px){
  .pdp-thumbs{grid-template-columns:repeat(4,1fr);gap:8px}
  .pdp-buy{flex-wrap:wrap}
  .pdp-buy .qty{flex:1 0 100%;justify-content:space-between}
  .pdp-buy .btn{flex:1 0 100%}
  .spec-table th{width:42%;font-size:.64rem;padding-right:12px}
  .spec-table td{font-size:.86rem}
  #related{grid-template-columns:repeat(2,1fr);gap:10px}
}

/* ============================================================
   REVEAL
   ============================================================ */
.rv{opacity:0;transform:translateY(24px);transition:opacity .85s var(--ease-out),transform .85s var(--ease-out)}
.rv.in{opacity:1;transform:none}
.rv-d1{transition-delay:.07s}.rv-d2{transition-delay:.14s}.rv-d3{transition-delay:.21s}
.rv-d4{transition-delay:.28s}.rv-d5{transition-delay:.35s}.rv-d6{transition-delay:.42s}

/* ============================================================
   RESPONSIVE
   ============================================================ */
@media (max-width:1100px){
  .size-grid,.grid-4,.team-grid{grid-template-columns:repeat(2,1fr)}
  .gallery{columns:3}
  .foot-grid{grid-template-columns:1fr 1fr;gap:30px}
  .about-grid{grid-template-columns:1fr}
  .figure{aspect-ratio:16/10;order:-1}
}
@media (max-width:900px){
  .navpill{display:none}
  .burger{display:grid}
  .slider{min-height:auto}
  .slide-panel{max-width:100%}
  .step{grid-template-columns:1fr;gap:14px}
  .step .art-side,.step:nth-child(even) .art-side{grid-column:1;grid-row:1}
  .step .node{grid-column:1;grid-row:2;justify-self:start;width:56px;height:56px;font-size:.95rem}
  .step .txt,.step:nth-child(even) .txt{grid-column:1;grid-row:3;text-align:left;padding:0}
  .step .txt p{margin-left:0 !important;max-width:none}
  .proc-line{display:none}
  .grid-3{grid-template-columns:repeat(2,1fr)}
  .slots{grid-template-columns:repeat(2,1fr)}
  .form-grid{grid-template-columns:1fr}
}
@media (max-width:640px){
  :root{--pad:18px}
  body{font-size:15.5px}
  section{padding-block:clamp(44px,11vw,64px)}
  .size-grid,.grid-4,.grid-3,.team-grid,.value-grid{grid-template-columns:1fr}
  .gallery{columns:2;column-gap:10px}
  .gal{margin-bottom:10px}
  .stats{grid-template-columns:repeat(3,1fr);gap:8px}
  .stat{padding:14px 10px}
  .stat b{font-size:1.35rem}
  .stat span{font-size:.6rem;letter-spacing:.08em}
  .navbar{top:9px;width:calc(100% - 18px);gap:8px}
  .brand{padding:6px 12px 6px 6px}
  .brand .name small{display:none}
  .brand .name b{font-size:.92rem}
  .nav-cta span{display:none}
  .nav-cta{padding:0 15px}
  .hero{padding-top:calc(var(--nav-h) + 14px)}
  .slide{padding:14px}
  .slide-panel{padding:20px 18px 22px}
  .slide-panel h1{font-size:clamp(1.9rem,8.4vw,2.5rem)}
  .slide-panel .lede{font-size:.92rem}
  .slide-actions{margin-top:20px;gap:9px}
  .slide-actions .btn{width:100%}
  .slider-ui{padding:12px 14px}
  .dots button{width:20px}
  .dots button.on{width:44px}
  .arrows button{width:42px;height:42px}
  .tl-row{grid-template-columns:1fr;gap:6px;padding:20px 0}
  .review{width:80vw;padding:20px}
  .size-toggle{width:100%;justify-content:space-between}
  .size-toggle button{flex:1;padding:11px 6px;font-size:.8rem}
  .subtotal-card{width:100%;min-width:0}
  .builder-top{gap:14px}
  .builder-actions .btn{width:100%}
  .builder-actions .hint{width:100%;text-align:center}
  .mini-btn{height:44px;padding:0 14px}
  .rail{grid-auto-columns:minmax(70vw,1fr);mask-image:none;-webkit-mask-image:none}
  .pick{grid-template-columns:54px 1fr;grid-template-areas:"t i" "t p";gap:10px;row-gap:4px}
  .pick .thumbart{grid-area:t;width:54px;height:54px}
  .pick .info{grid-area:i}
  .pick .pr{grid-area:p;justify-self:start;font-size:.95rem}
  .modal{padding:0;place-items:end center}
  .modal-card{width:100%;max-height:92vh;border-radius:var(--r-xl) var(--r-xl) 0 0;transform:translateY(40px)}
  .modal-head{padding:20px 18px 14px}
  .modal-body{padding:8px 10px 16px}
  .form-grid{padding:18px 18px 4px}
  .modal-foot{padding:12px 18px 22px}
  .modal-foot .btn{width:100%}
  .quote-summary{margin:0 18px}
}

/* ---------- mobile product grids: two-up, compact cards ---------- */
@media (max-width:640px){
  #featGrid,#colGrid,#catGrid,#related,.team-grid{grid-template-columns:repeat(2,1fr);gap:10px}
  #featGrid .card-body,#colGrid .card-body,#catGrid .card-body,#related .card-body,.team .card-body{padding:12px 12px 14px;gap:5px}
  #featGrid h3,#colGrid h3,#catGrid h3,#related h3,.team h3{font-size:.95rem;line-height:1.28}
  #catGrid .desc,#colGrid .desc{display:none}
  #featGrid .card-meta,#colGrid .card-meta,#catGrid .card-meta,#related .card-meta{flex-direction:column;align-items:stretch;gap:9px;padding-top:11px}
  #featGrid .mini-btn,#colGrid .mini-btn,#catGrid .mini-btn,#related .mini-btn{width:100%;justify-content:center}
  #featGrid .price,#colGrid .price,#catGrid .price,#related .price{font-size:1rem}
  #featGrid .pill,#colGrid .pill,#catGrid .pill,#related .pill,.team .pill{font-size:.54rem;padding:4px 8px;top:8px;left:8px;letter-spacing:.1em}
  .slot{aspect-ratio:1/1}
  .slot.filled img{height:56%}
  .slots{gap:10px}
}

/* ---------- compact mobile footer ---------- */
@media (max-width:640px){
  .footer{margin-top:clamp(40px,10vw,60px);padding-top:40px}
  .footer .foot-cta{margin-bottom:34px;padding:26px 20px;gap:12px}
  .foot-cta h2{font-size:1.7rem}
  .foot-cta .lede{font-size:.88rem}
  .foot-cta .btn{width:100%}
  .foot-grid{grid-template-columns:1fr;gap:0;padding-bottom:22px}
  .foot-about p{display:none}
  .foot-about{padding-bottom:18px}
  .socials{margin-top:16px;gap:7px}
  .socials a{width:40px;height:40px}
  .foot-col.acc{border-top:1px solid rgba(255,255,255,.1)}
  .foot-col.acc h4{
    display:flex;align-items:center;justify-content:space-between;
    margin:0;padding:16px 0;cursor:pointer;font-size:.72rem;color:rgba(246,244,240,.8);min-height:52px;
  }
  .foot-col.acc h4::after{content:"+";font-size:1.1rem;font-weight:400;color:var(--gold-light);transition:transform .35s var(--ease)}
  .foot-col.acc.open h4::after{transform:rotate(45deg)}
  .foot-col.acc ul{max-height:0;overflow:hidden;transition:max-height .45s var(--ease),padding .45s var(--ease);gap:0}
  .foot-col.acc.open ul{max-height:420px;padding-bottom:16px}
  .foot-col.acc ul li{padding:7px 0}
  .foot-col.studio h4{margin-top:18px}
  .newsletter{margin-top:12px}
  .wordmark{font-size:2.4rem;padding:6px 0 0;opacity:.7}
  .foot-bottom{padding:16px 0 26px;font-size:.72rem;gap:10px;flex-direction:column;align-items:flex-start}
  .foot-bottom nav{gap:14px;row-gap:8px}
  .toast{font-size:.8rem;padding:11px 16px}
}

/* mobile drawer */
.drawer{
  position:fixed;inset:0;z-index:90;padding:calc(var(--nav-h) + 26px) var(--pad) var(--pad);
  background:rgba(255,255,255,.96);backdrop-filter:blur(20px);
  display:flex;flex-direction:column;gap:4px;opacity:0;visibility:hidden;transition:.45s var(--ease);
}
.drawer.on{opacity:1;visibility:visible}
.drawer a{
  font-family:var(--font-display);font-size:1.9rem;padding:15px 0;border-bottom:1px solid var(--line-2);
  opacity:0;transform:translateY(16px);transition:.6s var(--ease-out);display:flex;align-items:center;justify-content:space-between;
}
.drawer a::after{content:"→";font-family:var(--font-ui);font-size:1rem;color:var(--gold-deep)}
.drawer.on a{opacity:1;transform:none}
.drawer.on a:nth-child(1){transition-delay:.06s}
.drawer.on a:nth-child(2){transition-delay:.12s}
.drawer.on a:nth-child(3){transition-delay:.18s}
.drawer.on a:nth-child(4){transition-delay:.24s}

@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.001ms !important;animation-iteration-count:1 !important;transition-duration:.001ms !important;scroll-behavior:auto !important}
  .rv{opacity:1;transform:none}
}
