/* =========================================================================
   ELBBAND — US Webshop
   Handmade near Hamburg since 2008 · Now on the California coast
   Typefaces: Old Stamper (display) + Special Elite (text)
   ========================================================================= */

/* Old Stamper isn't on Google Fonts — drop the font file into
   webshop/assets/fonts/ to activate it. Until then headings fall back to
   Special Elite (loaded from Google Fonts in each page <head>). */
@font-face{
  font-family:"Old Stamper";
  src:url("../assets/fonts/OldStamper.woff2") format("woff2"),
      url("../assets/fonts/OldStamper.woff")  format("woff"),
      url("../assets/fonts/OldStamper.ttf")   format("truetype");
  font-weight:normal; font-style:normal; font-display:swap;
}

:root{
  /* palette — maritime-elegant base + colorful-coastal accents */
  --sand:      #EFE7D7;
  --sand-2:    #E7DCC7;
  --paper:     #FBF7EE;
  --ink:       #15232B;
  --ink-soft:  #3C4A50;
  --navy:      #1B3A4B;
  --brass:     #B0823F;
  --brass-2:   #946A2E;
  --coral:     #DC6B4C;
  --turq:      #2E97A2;
  --buoy:      #E5AE3A;
  --line:      rgba(21,35,43,.16);
  --line-soft: rgba(21,35,43,.09);

  --maxw: 1280px;
  --gut: clamp(18px, 4vw, 56px);
  --font: "Special Elite", "Courier New", "Courier", ui-monospace, monospace;
  --font-display: "Old Stamper", "Special Elite", "Courier New", monospace;
  --radius: 2px;
  --ease: cubic-bezier(.22,.61,.36,1);
}

/* ---------- reset ---------- */
*,*::before,*::after{ box-sizing:border-box; }
html{ -webkit-text-size-adjust:100%; scroll-behavior:smooth; }
body{
  margin:0;
  font-family:var(--font);
  background:var(--sand);
  color:var(--ink);
  font-size:16px;
  line-height:1.6;
  letter-spacing:.01em;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
img{ display:block; max-width:100%; height:auto; }
a{ color:inherit; text-decoration:none; }
button{ font-family:inherit; cursor:pointer; }
h1,h2,h3,h4{ font-family:var(--font-display); font-weight:700; margin:0; line-height:1.04; letter-spacing:.01em; }
.display,.h-sec,.brand,.quote blockquote,.card__name,.pdp__title{ font-family:var(--font-display); }

/* ---------- typographic helpers ---------- */
.eyebrow{
  font-size:12px; letter-spacing:.34em; text-transform:uppercase;
  color:var(--brass-2); font-weight:700;
}
.display{
  text-transform:uppercase; letter-spacing:.02em;
  font-size:clamp(38px, 8vw, 104px); line-height:.92;
}
.h-sec{
  text-transform:uppercase; letter-spacing:.05em;
  font-size:clamp(26px, 4.4vw, 52px);
}
.lede{ font-size:clamp(16px,1.6vw,19px); color:var(--ink-soft); max-width:56ch; }
.wrap{ max-width:var(--maxw); margin-inline:auto; padding-inline:var(--gut); }
.center{ text-align:center; }
.muted{ color:var(--ink-soft); }

/* ---------- buttons ---------- */
.btn{
  display:inline-flex; align-items:center; gap:.6em;
  padding:15px 30px; border:1.5px solid var(--ink); background:var(--ink); color:var(--sand);
  text-transform:uppercase; letter-spacing:.18em; font-size:12.5px; font-weight:700;
  border-radius:var(--radius); transition:all .3s var(--ease);
}
.btn:hover{ background:transparent; color:var(--ink); }
.btn--ghost{ background:transparent; color:var(--ink); }
.btn--ghost:hover{ background:var(--ink); color:var(--sand); }
.btn--brass{ background:var(--brass); border-color:var(--brass); color:#fff; }
.btn--brass:hover{ background:transparent; color:var(--brass-2); border-color:var(--brass); }
.btn--block{ width:100%; justify-content:center; }
.link-underline{
  text-transform:uppercase; letter-spacing:.2em; font-size:12px; font-weight:700;
  border-bottom:1.5px solid var(--brass); padding-bottom:4px; transition:.25s var(--ease);
}
.link-underline:hover{ color:var(--brass-2); letter-spacing:.26em; }

/* =========================================================================
   WORK-IN-PROGRESS / SOFT-LAUNCH BANNER
   ========================================================================= */
.wip-bar{ background:var(--buoy); color:var(--ink); text-align:center; }
.wip-bar .wrap{ padding-block:7px; font-size:11.5px; letter-spacing:.05em; font-weight:700; }

/* =========================================================================
   TOP UTILITY BAR (German-site notice + Instagram)
   ========================================================================= */
.topbar{ background:var(--ink); color:var(--sand); font-size:11px; letter-spacing:.07em; }
.topbar__row{ display:flex; align-items:center; justify-content:space-between; gap:14px; min-height:32px; padding-block:6px; }
.topbar a{ color:var(--sand); border-bottom:1px solid var(--brass); padding-bottom:1px; transition:.2s var(--ease); }
.topbar a:hover{ color:var(--buoy); border-color:var(--buoy); }
.topbar__ig{ display:inline-flex; align-items:center; gap:7px; white-space:nowrap; }
.topbar__ig svg{ width:14px; height:14px; }
@media (max-width:620px){ .topbar__row{ justify-content:center; } .topbar__ig{ display:none; } }

/* =========================================================================
   ANNOUNCEMENT MARQUEE
   ========================================================================= */
.announce{ background:var(--navy); color:var(--sand); overflow:hidden; border-top:1px solid rgba(255,255,255,.08); border-bottom:1px solid rgba(255,255,255,.08); }
.marquee{ display:flex; gap:0; white-space:nowrap; animation:slide 38s linear infinite; }
.marquee span{
  padding:9px 0; font-size:11.5px; letter-spacing:.28em; text-transform:uppercase;
  display:inline-flex; align-items:center;
}
.marquee span::after{ content:"·"; padding:0 26px; opacity:.5; }
@keyframes slide{ from{transform:translateX(0)} to{transform:translateX(-50%)} }

/* =========================================================================
   HEADER
   ========================================================================= */
.header{
  position:sticky; top:0; z-index:60;
  background:var(--sand); border-bottom:1px solid var(--line);
  transition:background .3s var(--ease), color .3s var(--ease);
}
.header__row{
  display:grid; grid-template-columns:1fr auto 1fr; align-items:center;
  height:72px;
}
.nav{ display:flex; gap:30px; }
.nav a{
  font-size:12px; letter-spacing:.16em; text-transform:uppercase; font-weight:700;
  position:relative; padding:6px 0;
}
.nav a::after{
  content:""; position:absolute; left:0; bottom:0; height:1.5px; width:0; background:var(--brass);
  transition:width .3s var(--ease);
}
.nav a:hover::after, .nav a.is-active::after{ width:100%; }
.brand{
  text-align:center; text-transform:uppercase; letter-spacing:.42em;
  font-size:clamp(19px,2.4vw,24px); font-weight:700; padding-left:.42em;
}
.brand small{ display:block; letter-spacing:.3em; font-size:8.5px; color:var(--brass-2); margin-top:3px; }
.header__tools{ display:flex; gap:18px; justify-content:flex-end; align-items:center; }
.icon-btn{
  background:none; border:none; padding:6px; color:inherit; position:relative;
  display:inline-flex; align-items:center; gap:7px; font-size:12px; letter-spacing:.12em; text-transform:uppercase; font-weight:700;
}
.icon-btn svg{ width:21px; height:21px; }
.cart-count{
  position:absolute; top:-4px; right:-8px; background:var(--brass); color:#fff;
  font-size:10px; min-width:17px; height:17px; border-radius:50%; display:grid; place-items:center;
  line-height:1; padding:0 4px; font-weight:700;
}
.cart-count:empty{ display:none; }
.burger{ display:none; }

/* =========================================================================
   HERO
   ========================================================================= */
.hero{ position:relative; min-height:clamp(560px, 88vh, 880px); display:flex; align-items:flex-end; color:var(--sand); }
.hero__bg{ position:absolute; inset:0; }
.hero__bg img{ width:100%; height:100%; object-fit:cover; object-position:center 30%; }
.hero__bg::after{
  content:""; position:absolute; inset:0;
  background:linear-gradient(180deg, rgba(10,22,30,.28) 0%, rgba(10,22,30,.05) 38%, rgba(10,22,30,.62) 100%);
}
.hero__inner{ position:relative; z-index:2; width:100%; padding-bottom:clamp(44px,7vw,86px); }
.hero .eyebrow{ color:#E9DEC8; }
.hero__title{ margin:18px 0 22px; max-width:14ch; text-shadow:0 2px 30px rgba(0,0,0,.25); }
.hero__row{ display:flex; gap:18px; flex-wrap:wrap; align-items:center; }
.hero .btn{ border-color:var(--sand); }
.hero__meta{ margin-left:auto; font-size:12px; letter-spacing:.2em; text-transform:uppercase; opacity:.9; }

/* rotating heritage seal */
.seal{
  position:absolute; top:clamp(20px,4vw,52px); right:var(--gut); z-index:3;
  width:clamp(96px,12vw,140px); height:clamp(96px,12vw,140px);
  animation:spin 26s linear infinite;
}
@keyframes spin{ to{ transform:rotate(360deg); } }
.seal text{ fill:var(--sand); font-family:var(--font); font-size:10.6px; letter-spacing:.18em; text-transform:uppercase; }
.seal .seal-core{ fill:none; stroke:var(--sand); stroke-width:1; }

/* =========================================================================
   TRUST STRIP
   ========================================================================= */
.trust{ background:var(--ink); color:var(--sand); }
.trust__grid{ display:grid; grid-template-columns:repeat(4,1fr); }
.trust__cell{
  padding:24px; display:flex; align-items:flex-start; gap:14px;
  border-right:1px solid rgba(255,255,255,.1); font-size:12px; letter-spacing:.06em;
}
.trust__cell svg{ margin-top:1px; }
.trust__cell b{ margin-bottom:4px; }
.trust__cell:last-child{ border-right:none; }
.trust__cell svg{ width:26px; height:26px; flex:none; stroke:var(--buoy); }
.trust__cell b{ display:block; text-transform:uppercase; letter-spacing:.14em; font-size:12px; }
.trust__cell span{ color:#C9BCA1; font-size:11.5px; }

/* small round portrait (e.g. Nico on the Our Story page) */
.nico-portrait{
  width:clamp(104px,13vw,148px); aspect-ratio:1/1; margin:0;
  border-radius:50%; overflow:hidden; border:1px solid var(--line); box-shadow:0 10px 28px rgba(21,35,43,.14);
}
.nico-portrait img{ width:100%; height:100%; object-fit:cover; object-position:center 18%; }
/* photo left of the heading, as wide as the text below */
.intro-head{ display:flex; align-items:center; gap:clamp(20px,3vw,34px); margin-bottom:34px; }
.intro-head .nico-portrait{ flex:none; }
@media (max-width:480px){ .intro-head{ flex-direction:column; align-items:flex-start; gap:18px; } }

/* =========================================================================
   SECTION SHELL
   ========================================================================= */
.section{ padding:clamp(56px,9vw,120px) 0; }
.section--paper{ background:var(--paper); }
.sec-head{ display:flex; align-items:flex-end; justify-content:space-between; gap:24px; margin-bottom:46px; flex-wrap:wrap; }
.sec-head p{ margin:10px 0 0; }

/* wavy divider (legacy) */
.wave-divider{ display:block; width:100%; height:26px; color:var(--brass); opacity:.5; }
/* rope / cord divider — twisted-rope look */
.rope-divider{
  height:13px; width:100%; border-radius:99px;
  border-top:1.5px solid var(--brass); border-bottom:1.5px solid var(--brass);
  background:repeating-linear-gradient(58deg, var(--brass) 0 2px, transparent 2px 9px);
  opacity:.5;
}

/* =========================================================================
   PRODUCT GRID
   ========================================================================= */
.grid-products{ display:grid; grid-template-columns:repeat(4,1fr); gap:clamp(16px,2.4vw,30px); }
/* homepage featured: two columns, not three/four */
.grid-products--two{ grid-template-columns:repeat(2,1fr); gap:clamp(20px,3vw,40px); }
@media (max-width:560px){ .grid-products--two{ grid-template-columns:1fr; } }
.card{ position:relative; background:transparent; }
.card__media{
  position:relative; aspect-ratio:4/5; overflow:hidden; background:var(--sand-2);
  border:1px solid var(--line-soft);
}
.card__media img{ width:100%; height:100%; object-fit:cover; transition:transform .9s var(--ease), opacity .5s var(--ease); }
.card:hover .card__media img{ transform:scale(1.06); }
.card__tag{
  position:absolute; top:12px; left:12px; z-index:2;
  background:var(--paper); color:var(--ink); font-size:10px; letter-spacing:.16em; text-transform:uppercase;
  font-weight:700; padding:6px 10px; border-radius:99px;
}
.card__tag--coral{ background:#E7DBC4; color:var(--ink); }
.card__tag--turq{ background:var(--turq); color:#fff; }
.card__quick{
  position:absolute; left:12px; right:12px; bottom:12px; z-index:2;
  transform:translateY(12px); opacity:0; transition:.35s var(--ease);
}
.card:hover .card__quick{ transform:none; opacity:1; }
.card__body{ padding:16px 2px 4px; }
.card__cat{ font-size:10.5px; letter-spacing:.2em; text-transform:uppercase; color:var(--brass-2); }
.card__name{ font-size:16px; text-transform:uppercase; letter-spacing:.04em; margin:7px 0 6px; }
.card__name a:hover{ color:var(--brass-2); }
.card__price{ font-size:15px; font-weight:700; }
.card__swatches{ display:flex; gap:6px; margin-top:10px; }
.sw{ width:15px; height:15px; border-radius:50%; border:1px solid rgba(0,0,0,.18); }

/* =========================================================================
   SPLIT / STORY
   ========================================================================= */
.split{ display:grid; grid-template-columns:1fr 1fr; align-items:center; gap:clamp(28px,5vw,76px); }
.split--reverse .split__media{ order:2; }
.split__media{ position:relative; }
.split__media img{ width:100%; aspect-ratio:4/4.4; object-fit:cover; border:1px solid var(--line); }
.split__media .tape{
  position:absolute; bottom:-18px; left:-18px; background:#E7DBC4; color:var(--ink);
  padding:14px 20px; font-size:12px; letter-spacing:.18em; text-transform:uppercase; font-weight:700;
  transform:rotate(-3deg);
}
.split__body .h-sec{ margin:14px 0 18px; }
.split__body p{ margin:0 0 16px; }
.tick{ list-style:none; padding:0; margin:22px 0 28px; display:grid; gap:12px; }
.tick li{ display:flex; gap:12px; align-items:flex-start; font-size:14.5px; }
.tick svg{ width:18px; height:18px; flex:none; margin-top:3px; stroke:var(--brass); }

/* =========================================================================
   COASTAL ACCENT STRIP (colorful-artsy)
   ========================================================================= */
.coast{ background:var(--navy); color:var(--sand); padding:clamp(56px,8vw,104px) 0; overflow:hidden; }
.coast .sec-head{ color:var(--sand); }
.coast .eyebrow{ color:var(--buoy); }
.coast__scroll{ display:flex; gap:18px; overflow-x:auto; padding-bottom:14px; scroll-snap-type:x mandatory; }
.coast__scroll::-webkit-scrollbar{ height:6px; }
.coast__scroll::-webkit-scrollbar-thumb{ background:rgba(255,255,255,.25); border-radius:99px; }
.coast__card{ flex:0 0 clamp(220px,26vw,330px); scroll-snap-align:start; }
.coast__card img{ width:100%; aspect-ratio:1/1.12; object-fit:cover; border:1px solid rgba(255,255,255,.14); }
.coast__card h4{ text-transform:uppercase; letter-spacing:.1em; font-size:14px; margin:14px 0 5px; }
.coast__card p{ color:#C9D6DA; font-size:13px; margin:0; }
.coast__card .pin{ color:var(--buoy); font-size:11px; letter-spacing:.2em; text-transform:uppercase; }

/* care instructions list (on the navy coast band) */
.care-list{ list-style:none; margin:0; padding:0; display:grid; grid-template-columns:1fr 1fr; gap:clamp(22px,3vw,38px) clamp(36px,5vw,72px); }
.care-list li{ display:flex; gap:18px; align-items:flex-start; }
.care-list__no{ flex:none; font-size:13px; letter-spacing:.1em; color:var(--buoy); font-weight:700; padding-top:2px; min-width:22px; }
.care-list h4{ color:var(--sand); text-transform:uppercase; letter-spacing:.1em; font-size:14px; margin:0 0 8px; }
.care-list p{ color:#C9D6DA; font-size:13.5px; margin:0; line-height:1.55; }
@media (max-width:680px){ .care-list{ grid-template-columns:1fr; } }

/* =========================================================================
   FEATURE / ICONS ROW
   ========================================================================= */
.feature-row{ display:grid; grid-template-columns:repeat(4,1fr); gap:clamp(20px,3vw,40px); }
.feat{ text-align:center; }
.feat svg{ width:46px; height:46px; margin:0 auto 16px; stroke:var(--brass); fill:none; }
.feat h4{ text-transform:uppercase; letter-spacing:.1em; font-size:14px; margin-bottom:9px; }
.feat p{ font-size:13.5px; color:var(--ink-soft); margin:0; }

/* =========================================================================
   QUOTE
   ========================================================================= */
.quote{ text-align:center; padding:clamp(60px,9vw,120px) 0; }
.quote blockquote{
  margin:0 auto; max-width:24ch; font-size:clamp(24px,4vw,46px);
  text-transform:uppercase; letter-spacing:.02em; line-height:1.12;
}
.quote cite{ display:block; margin-top:26px; font-style:normal; font-size:12px; letter-spacing:.24em; text-transform:uppercase; color:var(--brass-2); }

/* =========================================================================
   UGC / VOUCHER ACTION (Snap, share & save)
   ========================================================================= */
.share{
  display:grid; grid-template-columns:1.05fr 1fr; align-items:stretch;
  background:var(--paper); border:1px solid var(--line); border-radius:4px; overflow:hidden;
}
.share__media{ position:relative; min-height:340px; }
.share__media img{ width:100%; height:100%; object-fit:cover; }
.share__chip{
  position:absolute; left:16px; bottom:16px; display:inline-flex; align-items:center; gap:8px;
  background:rgba(21,35,43,.82); color:var(--sand); padding:8px 14px; border-radius:99px;
  font-size:12px; letter-spacing:.12em; text-transform:uppercase;
}
.share__chip svg{ width:15px; height:15px; }
.share__body{ padding:clamp(28px,4vw,52px); align-self:center; }
.share__steps{ list-style:none; margin:24px 0 28px; padding:0; display:grid; gap:14px; }
.share__steps li{ display:flex; align-items:center; gap:14px; font-size:14px; }
.share__steps span{
  flex:none; width:28px; height:28px; border-radius:50%; background:var(--brass); color:#fff;
  display:grid; place-items:center; font-size:13px; font-weight:700;
}
.share__cta{ display:flex; align-items:center; gap:20px; flex-wrap:wrap; }
@media (max-width:760px){
  .share{ grid-template-columns:1fr; }
  .share__media{ min-height:260px; }
}

/* =========================================================================
   NEWSLETTER
   ========================================================================= */
.news{ background:#E7DBC4; color:var(--ink); border-top:1px solid var(--line); border-bottom:1px solid var(--line); }
.news__inner{ display:grid; grid-template-columns:1.1fr 1fr; gap:40px; align-items:center; padding-block:clamp(48px,7vw,86px); }
.news .eyebrow{ color:var(--brass-2); margin-bottom:14px; display:block; }
.news .h-sec{ color:var(--ink); font-size:clamp(24px,3.4vw,40px); margin-top:0; line-height:1.1; }
.news p{ color:var(--ink-soft); margin:12px 0 0; }
.news form{ display:flex; gap:10px; flex-wrap:wrap; }
.news input{
  flex:1; min-width:200px; padding:15px 18px; border:1.5px solid var(--line); background:var(--paper); color:var(--ink);
  font-family:var(--font); font-size:14px; letter-spacing:.05em; border-radius:var(--radius);
}
.news input::placeholder{ color:var(--ink-soft); }
.news .btn{ background:var(--ink); color:var(--sand); border-color:var(--ink); }
.news .btn:hover{ background:transparent; color:var(--ink); }
.news small{ display:block; margin-top:12px; color:var(--ink-soft); font-size:11px; letter-spacing:.06em; }

/* =========================================================================
   FOOTER
   ========================================================================= */
.footer{ background:var(--ink); color:#C9BCA1; padding:clamp(54px,7vw,88px) 0 30px; }
.footer__top{ display:grid; grid-template-columns:1.6fr 1fr 1fr 1fr; gap:36px; }
.footer__brand h3{ color:var(--sand); text-transform:uppercase; letter-spacing:.4em; font-size:22px; }
.footer__brand p{ font-size:13px; margin-top:14px; max-width:34ch; }
.footer h5{ color:var(--sand); text-transform:uppercase; letter-spacing:.16em; font-size:12px; margin:0 0 18px; }
.footer ul{ list-style:none; margin:0; padding:0; display:grid; gap:11px; }
.footer ul a{ font-size:13px; }
.footer ul a:hover{ color:var(--sand); }
.footer__bottom{
  margin-top:48px; padding-top:22px; border-top:1px solid rgba(255,255,255,.12);
  display:flex; justify-content:space-between; gap:16px; flex-wrap:wrap; font-size:11.5px; letter-spacing:.08em;
}

/* =========================================================================
   CART DRAWER
   ========================================================================= */
.overlay{
  position:fixed; inset:0; background:rgba(13,22,28,.5); opacity:0; visibility:hidden;
  transition:.35s var(--ease); z-index:90;
}
.overlay.is-open{ opacity:1; visibility:visible; }
.drawer{
  position:fixed; top:0; right:0; height:100%; width:min(420px,92vw); background:var(--paper);
  z-index:100; transform:translateX(100%); transition:transform .4s var(--ease);
  display:flex; flex-direction:column; box-shadow:-20px 0 60px rgba(0,0,0,.2);
}
.drawer.is-open{ transform:none; }
.drawer__head{ display:flex; align-items:center; justify-content:space-between; padding:22px 24px; border-bottom:1px solid var(--line); }
.drawer__head h3{ text-transform:uppercase; letter-spacing:.2em; font-size:15px; }
.drawer__close{ background:none; border:none; font-size:22px; line-height:1; padding:4px; }
.drawer__body{ flex:1; overflow-y:auto; padding:8px 24px; }
.drawer__empty{ text-align:center; color:var(--ink-soft); padding:60px 10px; font-size:14px; }
.litem{ display:grid; grid-template-columns:74px 1fr auto; gap:14px; padding:18px 0; border-bottom:1px solid var(--line-soft); }
.litem img{ width:74px; height:92px; object-fit:cover; border:1px solid var(--line-soft); }
.litem__name{ font-size:13px; text-transform:uppercase; letter-spacing:.04em; font-weight:700; }
.litem__meta{ font-size:11.5px; color:var(--ink-soft); margin:4px 0 10px; }
.qty{ display:inline-flex; align-items:center; border:1px solid var(--line); }
.qty button{ background:none; border:none; width:28px; height:28px; font-size:15px; }
.qty span{ width:30px; text-align:center; font-size:13px; }
.litem__price{ text-align:right; font-weight:700; font-size:13px; }
.litem__remove{ background:none; border:none; color:var(--ink-soft); font-size:10.5px; letter-spacing:.1em; text-transform:uppercase; text-decoration:underline; margin-top:8px; padding:0; }
.drawer__foot{ padding:22px 24px; border-top:1px solid var(--line); }
.drawer__sum{ display:flex; justify-content:space-between; font-size:13px; margin-bottom:6px; }
.drawer__total{ display:flex; justify-content:space-between; font-size:16px; font-weight:700; text-transform:uppercase; letter-spacing:.1em; margin:14px 0 4px; }
.drawer__note{ font-size:11px; color:var(--ink-soft); margin:0 0 16px; }

/* toast */
.toast{
  position:fixed; bottom:26px; left:50%; transform:translateX(-50%) translateY(20px);
  background:var(--ink); color:var(--sand); padding:14px 24px; font-size:12px; letter-spacing:.12em; text-transform:uppercase;
  border-radius:99px; z-index:120; opacity:0; visibility:hidden; transition:.3s var(--ease);
}
.toast.is-on{ opacity:1; visibility:visible; transform:translateX(-50%) translateY(0); }

/* =========================================================================
   SHOP PAGE
   ========================================================================= */
.page-head{ padding:clamp(44px,6vw,80px) 0 clamp(28px,4vw,46px); text-align:center; }
.page-head .display{ font-size:clamp(40px,7vw,86px); }
.filters{ display:flex; gap:10px; justify-content:center; flex-wrap:wrap; margin-top:30px; }
.filters button{
  background:transparent; border:1.5px solid var(--line); color:var(--ink-soft);
  padding:10px 20px; text-transform:uppercase; letter-spacing:.14em; font-size:11.5px; font-weight:700; border-radius:99px;
  transition:.25s var(--ease);
}
.filters button:hover{ border-color:var(--ink); color:var(--ink); }
.filters button.is-active{ background:var(--ink); color:var(--sand); border-color:var(--ink); }
.shop-empty{ grid-column:1 / -1; text-align:center; padding:60px 20px; font-size:15px; }

/* =========================================================================
   GIFT CARDS
   ========================================================================= */
.gc{ display:grid; grid-template-columns:1fr 1fr; gap:clamp(28px,5vw,72px); align-items:start; }
.gc__preview{ position:sticky; top:96px; }
.gc-card{
  aspect-ratio:1.6/1; border-radius:14px; padding:26px; color:var(--sand);
  background:linear-gradient(135deg, var(--navy) 0%, #16323f 60%, var(--ink) 100%);
  display:flex; flex-direction:column; justify-content:space-between; box-shadow:0 24px 60px rgba(21,35,43,.28);
  border:1px solid rgba(255,255,255,.08);
}
.gc-card__top{ display:flex; align-items:baseline; justify-content:space-between; }
.gc-card__top span{ font-family:var(--font-display); font-size:22px; letter-spacing:.34em; text-transform:uppercase; }
.gc-card__top small{ letter-spacing:.24em; text-transform:uppercase; font-size:10px; color:var(--buoy); }
.gc-card__amount{ font-family:var(--font-display); font-size:clamp(40px,6vw,64px); line-height:1; }
.gc-card__foot{ display:flex; align-items:center; justify-content:space-between; font-size:11px; letter-spacing:.14em; text-transform:uppercase; color:#C9D6DA; }
.gc-card__wheel{ color:var(--brass); font-size:18px; }
.gc-amounts{ display:flex; gap:10px; flex-wrap:wrap; margin-bottom:22px; }
.gc-field{ display:block; font-size:11px; letter-spacing:.14em; text-transform:uppercase; font-weight:700; color:var(--ink-soft); margin-bottom:18px; }
.gc-field input, .gc-field textarea{
  display:block; width:100%; margin-top:8px; padding:12px 14px; border:1.5px solid var(--line); background:var(--paper);
  font-family:var(--font); font-size:14px; color:var(--ink); border-radius:2px; letter-spacing:.02em;
}
.gc-field textarea{ resize:vertical; }
.gc-hr{ border:none; border-top:1px solid var(--line); margin:6px 0 18px; }
@media (max-width:760px){ .gc{ grid-template-columns:1fr; } .gc__preview{ position:static; } }

/* gift-card codes on the success page */
.gc-codes{ border:1px solid var(--line); border-radius:6px; padding:24px; background:var(--paper); max-width:420px; margin:0 auto; }
.gc-code{ display:flex; align-items:center; justify-content:space-between; gap:16px; padding:13px 16px; border:1px dashed var(--brass); border-radius:4px; margin-bottom:10px; }
.gc-code__amt{ font-weight:700; color:var(--brass-2); }
.gc-code__val{ font-size:17px; letter-spacing:.12em; font-weight:700; }

/* gift-card promo banner (shop page) */
.gc-banner{
  display:flex; align-items:center; justify-content:space-between; gap:28px; flex-wrap:wrap;
  padding:clamp(26px,4vw,46px) clamp(26px,4vw,52px); border-radius:8px;
  background:linear-gradient(135deg, #EFE7D7 0%, #E7DBC4 100%); border:1px solid var(--line);
  transition:box-shadow .3s var(--ease), transform .3s var(--ease);
}
.gc-banner:hover{ box-shadow:0 18px 44px rgba(21,35,43,.12); transform:translateY(-2px); }
.gc-banner .h-sec{ font-size:clamp(24px,3.4vw,40px); margin:6px 0 0; }
.gc-banner__text{ max-width:60ch; }
.gc-banner .btn{ flex:none; }

/* gift-card redemption row in the cart drawer */
.gc-redeem{ margin:4px 0 14px; }
.gc-redeem__row{ display:flex; gap:8px; }
.gc-redeem input{ flex:1; min-width:0; padding:10px 12px; border:1.5px solid var(--line); background:#fff; font-family:var(--font); font-size:12.5px; letter-spacing:.06em; text-transform:uppercase; border-radius:2px; }
.gc-redeem button{ border:1.5px solid var(--ink); background:transparent; color:var(--ink); padding:0 14px; font-size:11px; letter-spacing:.12em; text-transform:uppercase; font-weight:700; border-radius:2px; cursor:pointer; }
.gc-redeem button:hover{ background:var(--ink); color:var(--sand); }
.gc-redeem__msg{ font-size:11px; margin:7px 0 0; color:var(--ink-soft); }
.gc-applied{ display:flex; justify-content:space-between; align-items:center; font-size:12.5px; color:var(--green,#3f7d52); background:rgba(63,125,82,.1); padding:9px 12px; border-radius:2px; margin:4px 0 12px; }
.gc-applied button{ background:none; border:none; color:var(--ink-soft); text-decoration:underline; font-size:10.5px; letter-spacing:.08em; text-transform:uppercase; cursor:pointer; }

/* =========================================================================
   FAQ / SIZING
   ========================================================================= */
.faq-group{ margin-bottom:clamp(40px,6vw,68px); }
.faq-h{ font-size:clamp(22px,3vw,34px); margin-bottom:14px; }
.faq-rule{ margin:0 0 22px; max-width:70ch; font-size:14px; line-height:1.6; }
.faq{ border-top:1px solid var(--line); }
.faq-group .faq:last-of-type{ border-bottom:1px solid var(--line); }
.faq summary{
  list-style:none; cursor:pointer; padding:20px 2px; display:flex; align-items:center; justify-content:space-between; gap:18px;
  text-transform:uppercase; letter-spacing:.06em; font-size:14px; font-weight:700; color:var(--ink);
}
.faq summary::-webkit-details-marker{ display:none; }
.faq summary::after{
  content:"+"; font-size:22px; line-height:1; color:var(--brass-2); flex:none; transition:transform .25s var(--ease);
}
.faq[open] summary::after{ content:"–"; }
.faq summary:hover{ color:var(--brass-2); }
.faq__body{ padding:0 2px 22px; max-width:72ch; }
.faq__body p{ margin:0 0 12px; font-size:14.5px; color:var(--ink-soft); line-height:1.65; }
.faq__body ul, .faq__body ol{ margin:0; padding-left:20px; display:grid; gap:11px; }
.faq__body li{ font-size:14.5px; color:var(--ink-soft); line-height:1.6; padding-left:4px; }
.faq__body strong{ color:var(--ink); }

/* =========================================================================
   PRODUCT DETAIL PAGE
   ========================================================================= */
.pdp{ display:grid; grid-template-columns:1.1fr 1fr; gap:clamp(28px,5vw,72px); align-items:start; padding-top:clamp(28px,4vw,48px); }
.pdp__gallery{ display:grid; gap:14px; grid-template-columns:1fr 1fr; }
.pdp__gallery img{ width:100%; aspect-ratio:4/5; object-fit:cover; border:1px solid var(--line); }
.pdp__gallery img:first-child{ grid-column:1 / -1; aspect-ratio:4/4.2; }
.pdp__info{ position:sticky; top:96px; }
.pdp__cat{ font-size:11px; letter-spacing:.22em; text-transform:uppercase; color:var(--brass-2); }
.pdp__title{ text-transform:uppercase; letter-spacing:.02em; font-size:clamp(28px,3.6vw,44px); margin:12px 0 16px; }
.pdp__price{ font-size:22px; font-weight:700; margin-bottom:20px; }
.pdp__desc{ color:var(--ink-soft); margin-bottom:26px; }
.opt-label{ font-size:11px; letter-spacing:.18em; text-transform:uppercase; font-weight:700; margin-bottom:11px; display:flex; justify-content:space-between; }
.opt-row{ display:flex; gap:10px; flex-wrap:wrap; margin-bottom:26px; }
.chip{
  border:1.5px solid var(--line); background:transparent; padding:11px 18px; border-radius:99px;
  font-size:12px; letter-spacing:.08em; text-transform:uppercase; font-weight:700; transition:.2s var(--ease);
}
.chip:hover{ border-color:var(--ink); }
.chip.is-sel{ background:var(--ink); color:var(--sand); border-color:var(--ink); }
.swatch-row{ display:flex; gap:12px; margin-bottom:26px; }
.swatch{ width:34px; height:34px; border-radius:50%; border:2px solid transparent; box-shadow:0 0 0 1px var(--line); cursor:pointer; position:relative; }
.swatch.is-sel{ border-color:var(--paper); box-shadow:0 0 0 2px var(--ink); }
.pdp__details{ border-top:1px solid var(--line); margin-top:30px; }
.acc{ border-bottom:1px solid var(--line); }
.acc__btn{ width:100%; background:none; border:none; display:flex; justify-content:space-between; align-items:center; padding:18px 0; text-transform:uppercase; letter-spacing:.12em; font-size:12px; font-weight:700; color:var(--ink); }
.acc__panel{ max-height:0; overflow:hidden; transition:max-height .35s var(--ease); }
.acc__panel p, .acc__panel ul{ margin:0 0 16px; font-size:13.5px; color:var(--ink-soft); }
.acc__panel ul{ padding-left:18px; }

/* =========================================================================
   RESPONSIVE
   ========================================================================= */
@media (max-width:1080px){
  .grid-products{ grid-template-columns:repeat(3,1fr); }
  .footer__top{ grid-template-columns:1fr 1fr; }
}
@media (max-width:860px){
  .header__row{ grid-template-columns:auto 1fr auto; height:62px; }
  .nav{ display:none; }
  .burger{ display:inline-flex; }
  .trust__grid{ grid-template-columns:1fr 1fr; }
  .trust__cell:nth-child(2){ border-right:none; }
  .split{ grid-template-columns:1fr; }
  .split--reverse .split__media{ order:0; }
  .feature-row{ grid-template-columns:1fr 1fr; }
  .pdp{ grid-template-columns:1fr; }
  .pdp__info{ position:static; }
  .news__inner{ grid-template-columns:1fr; }
  .grid-products{ grid-template-columns:repeat(2,1fr); }
}
@media (max-width:560px){
  .trust__grid{ grid-template-columns:1fr; }
  .feature-row{ grid-template-columns:1fr; }
  .footer__top{ grid-template-columns:1fr; }
  .pdp__gallery{ grid-template-columns:1fr; }
  .hero__meta{ display:none; }
}

/* mobile nav panel */
.mobile-nav{
  position:fixed; inset:0; background:var(--sand); z-index:80; transform:translateY(-100%);
  transition:transform .4s var(--ease); padding:90px var(--gut) 40px; display:flex; flex-direction:column; gap:8px;
}
.mobile-nav.is-open{ transform:none; }
.mobile-nav a{ font-size:26px; text-transform:uppercase; letter-spacing:.06em; font-weight:700; padding:14px 0; border-bottom:1px solid var(--line); }
.mobile-nav__close{ position:absolute; top:22px; right:var(--gut); background:none; border:none; font-size:30px; }

/* reveal on scroll */
.reveal{ opacity:0; transform:translateY(26px); transition:opacity .8s var(--ease), transform .8s var(--ease); }
.reveal.in{ opacity:1; transform:none; }
