/* NUVAEH. Warm, quiet, tactile. Tokens first, then layout. */
:root{
  --cream:oklch(0.965 0.014 75);
  --paper:oklch(0.985 0.008 75);
  --sand:oklch(0.915 0.024 72);
  --line:oklch(0.86 0.03 70);
  --espresso:oklch(0.30 0.045 52);
  --ink:oklch(0.26 0.03 52);
  --muted:oklch(0.48 0.03 58);
  --rust:oklch(0.50 0.125 45);
  --rust-deep:oklch(0.42 0.11 45);

  --space-xs:.5rem; --space-sm:.75rem; --space-md:1rem; --space-lg:1.5rem;
  --space-xl:2rem; --space-2xl:3rem; --space-3xl:6rem;
  --radius:6px;
  --display:"Iowan Old Style","Palatino Linotype",Palatino,"Book Antiqua",Georgia,serif;
  --body:"Avenir Next","Segoe UI",system-ui,-apple-system,sans-serif;
  --ease:cubic-bezier(.22,1,.36,1);
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{margin:0;background:var(--cream);color:var(--ink);font:1rem/1.6 var(--body);padding-bottom:env(safe-area-inset-bottom)}
img{max-width:100%;height:auto;display:block}
a{color:inherit}
h1,h2,h3{font-family:var(--display);font-weight:500;letter-spacing:-.01em;margin:0}
h1{font-size:clamp(1.85rem,4.2vw,3rem);line-height:1.1;text-wrap:balance}
h2{font-size:clamp(1.6rem,3.2vw,2.4rem);line-height:1.15;text-wrap:balance}
h3{font-size:1.15rem;line-height:1.3}
p{margin:0}
:focus-visible{outline:3px solid var(--rust);outline-offset:3px}
.skip{position:absolute;left:-999px;top:0;background:var(--espresso);color:#fff;padding:.6rem 1rem;z-index:20}
.skip:focus{left:0}

/* Buttons: one loud action (rust), everything else quiet. */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;min-height:48px;padding:.85rem 1.6rem;border-radius:var(--radius);font:600 1rem/1 var(--body);text-decoration:none;cursor:pointer;border:1px solid transparent;transition:background-color .2s var(--ease),transform .2s var(--ease)}
.btn-buy{background:var(--rust);color:oklch(0.99 0.005 75)}
.btn-buy:hover{background:var(--rust-deep)}
.btn-buy:active{transform:translateY(1px)}
.btn-buy[aria-disabled="true"]{background:var(--sand);color:var(--muted);border-color:var(--line);cursor:not-allowed}
.btn-quiet{background:transparent;color:var(--espresso);border-color:var(--espresso);min-height:40px;padding:.55rem 1.1rem;font-size:.9rem}
.btn-quiet:hover{background:var(--espresso);color:var(--paper)}

/* Header */
.top{display:flex;align-items:center;justify-content:space-between;gap:var(--space-md);padding:.75rem clamp(1rem,4vw,3rem);background:var(--paper);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:10}
.logo{display:inline-flex;align-items:center;gap:.6rem;text-decoration:none;font:500 1.35rem/1 var(--display);letter-spacing:.2em;color:var(--espresso)}
.logo img{display:block}
.logo .lm{height:26px;width:auto}
.logo .lw{height:17px;width:auto}
.logo-foot img{margin-inline:auto;height:26px;width:auto}
.top-note{font-size:.85rem;color:var(--muted);margin-inline:auto 0}

/* Product block: the whole sale happens here */
.pdp{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);gap:clamp(1.5rem,5vw,5rem);max-width:1200px;margin:0 auto;padding:clamp(1rem,3vw,3rem) clamp(1rem,4vw,2rem) var(--space-3xl)}
.stage{background:var(--sand);border-radius:var(--radius);overflow:hidden}
.stage img{width:100%;aspect-ratio:1/1;object-fit:cover;transition:opacity .25s var(--ease)}
.thumbs{list-style:none;display:flex;gap:var(--space-xs);padding:0;margin:var(--space-sm) 0 0;overflow-x:auto}
.thumbs button{border:1px solid transparent;border-radius:var(--radius);padding:0;background:none;cursor:pointer;width:68px;height:68px;overflow:hidden;opacity:.7;transition:opacity .2s}
.thumbs button[aria-current="true"]{border-color:var(--espresso);opacity:1}
.thumbs img{width:100%;height:100%;object-fit:cover}
.buy{display:flex;flex-direction:column;gap:var(--space-lg);align-self:start;position:sticky;top:5rem}
.eyebrow{font-size:.75rem;letter-spacing:.16em;text-transform:uppercase;color:var(--rust)}
.lede{color:var(--muted);max-width:46ch}
.price-row{display:flex;align-items:baseline;gap:var(--space-sm)}
.price{font:500 2rem/1 var(--display);color:var(--espresso)}
.price-sub{font-size:.85rem;color:var(--muted)}
.colors{border:0;padding:0;margin:0}
.colors legend{padding:0;margin-bottom:var(--space-sm);font-size:.9rem;color:var(--muted)}
.colors strong{color:var(--ink);margin-left:.4rem}
.swatches{display:flex;gap:var(--space-md)}
.swatch{width:48px;height:48px;border-radius:50%;border:2px solid var(--paper);box-shadow:0 0 0 1px var(--line);cursor:pointer;padding:0;transition:box-shadow .2s var(--ease)}
.swatch[aria-checked="true"]{box-shadow:0 0 0 2px var(--paper),0 0 0 4px var(--espresso)}
.buy .btn-buy{width:100%;min-height:56px;font-size:1.1rem}
.note{min-height:1.3em;margin-top:calc(var(--space-sm) * -1);font-size:.85rem;color:var(--muted)}
.eta{background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);padding:var(--space-md) var(--space-lg)}
.eta-title{font-size:.8rem;color:var(--muted)}
.eta-dates{font:500 1.35rem/1.3 var(--display);color:var(--espresso);margin:.15rem 0 .35rem}
.eta-fine{font-size:.8rem;color:var(--muted)}
.assure{list-style:none;padding:0;margin:0;display:grid;gap:.5rem;font-size:.9rem;color:var(--muted)}
.assure li{padding-left:1.5rem;position:relative}
.assure li::before{content:"";position:absolute;left:.15rem;top:.45em;width:.7rem;height:.38rem;border-left:2px solid var(--rust);border-bottom:2px solid var(--rust);transform:rotate(-45deg)}

/* Feel: asymmetric, image breaks the grid */
.feel{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);gap:clamp(1.5rem,5vw,5rem);align-items:center;max-width:1300px;margin:0 auto;padding:0 clamp(1rem,4vw,2rem) var(--space-3xl)}
.feel-main{margin:0;border-radius:var(--radius);overflow:hidden}
.feel-main img{width:100%;aspect-ratio:4/3;object-fit:cover}
.feel-text{display:grid;gap:var(--space-lg)}
.feel-text p{color:var(--muted);max-width:44ch}
.specs{margin:0;display:grid}
.specs div{display:flex;justify-content:space-between;gap:var(--space-md);padding:.75rem 0;border-top:1px solid var(--line)}
.specs div:last-child{border-bottom:1px solid var(--line)}
.specs dt{color:var(--muted)}
.specs dd{margin:0;text-align:right}
.studio img{width:100%;max-height:560px;object-fit:cover}

/* How it works */
.how{max-width:960px;margin:0 auto;padding:var(--space-3xl) clamp(1rem,4vw,2rem) 0;display:grid;gap:var(--space-xl)}
.steps{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-xl)}
.steps li{display:grid;grid-template-columns:auto 1fr;gap:var(--space-md);align-items:start}
.n{font:500 2.4rem/1 var(--display);color:var(--rust)}
.steps p{color:var(--muted);font-size:.95rem;margin-top:.25rem}
.how-fine{color:var(--muted);font-size:.9rem}

/* FAQ */
.faq{max-width:760px;margin:0 auto;padding:var(--space-3xl) clamp(1rem,4vw,2rem)}
.faq h2{margin-bottom:var(--space-lg)}
.faq details{border-top:1px solid var(--line);padding:var(--space-md) 0}
.faq details:last-of-type{border-bottom:1px solid var(--line)}
.faq summary{cursor:pointer;font-weight:600;min-height:44px;display:flex;align-items:center}
.faq p{color:var(--muted);padding-bottom:var(--space-xs);max-width:62ch}

/* Final call */
.final{background:var(--espresso);color:var(--paper);text-align:center;padding:var(--space-3xl) var(--space-lg);display:grid;gap:var(--space-xl);justify-items:center}
.final h2{max-width:20ch}

footer{background:var(--ink);color:oklch(0.88 0.02 70);text-align:center;padding:var(--space-2xl) var(--space-md) 6rem;display:grid;gap:var(--space-sm)}
footer a{color:#fff}
.logo-foot{font:500 1.3rem/1 var(--display);letter-spacing:.24em}
.tag{font-family:var(--display);font-style:italic}
.fine{font-size:.8rem;opacity:.75}

/* Mobile buy bar: appears once the main button has scrolled away */
.sticky{position:fixed;inset:auto 0 0 0;z-index:15;display:flex;align-items:center;justify-content:space-between;gap:var(--space-md);background:var(--paper);border-top:1px solid var(--line);padding:.7rem var(--space-md) calc(.7rem + env(safe-area-inset-bottom));transform:translateY(110%);transition:transform .35s var(--ease)}
.sticky.show{transform:none}
.sticky-info{display:grid;line-height:1.25;font-size:.9rem}
.sticky-info span{color:var(--muted)}
.sticky .btn{min-height:48px;padding-inline:1.4rem}

/* Page entrance: one calm reveal */
@keyframes rise{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
.buy>*{animation:rise .6s var(--ease) both}
.buy>*:nth-child(2){animation-delay:.05s}.buy>*:nth-child(3){animation-delay:.1s}.buy>*:nth-child(4){animation-delay:.15s}
.buy>*:nth-child(5){animation-delay:.2s}.buy>*:nth-child(n+6){animation-delay:.25s}

@media (min-width:821px){.sticky{display:none}}
@media (max-width:820px){
  .top-note{display:none}
  .btn-quiet{margin-left:auto}
  .pdp{grid-template-columns:1fr;gap:var(--space-lg);padding-top:var(--space-sm);padding-bottom:var(--space-2xl)}
  .buy{position:static;gap:var(--space-md)}
  /* Price, colors and the buy button must land on the first phone screen. */
  .stage img{aspect-ratio:5/4}
  .thumbs button{width:52px;height:52px}
  .buy h1{font-size:1.6rem}
  .lede{display:none}
  .eyebrow{font-size:.7rem}
  .feel{grid-template-columns:1fr;padding-bottom:var(--space-2xl)}
  .steps{grid-template-columns:1fr}
  .how{padding-top:var(--space-2xl)}
  .faq{padding-block:var(--space-2xl)}
}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .buy>*{animation:none}
  .sticky,.stage img{transition:none}
}

/* Policy pages */
.page{max-width:680px;margin:0 auto;padding:var(--space-2xl) clamp(1rem,4vw,2rem) var(--space-3xl);display:grid;gap:var(--space-md)}
.page h1{font-size:2.2rem;margin-bottom:var(--space-sm)}
.page p{color:var(--muted)}
.page h2{font-size:1.2rem;margin-top:var(--space-md);color:var(--espresso)}
