/* ============================================================
   KME Shop — design tokens
   Locked direction: "Pulse+" (see Shop Redesign/DESIGN-DIRECTION.md)
   White ground everywhere. Colour arrives through imagery, marks
   and moments — never as a filled section background.
   ============================================================ */
@import url('https://fonts.googleapis.com/css2?family=EB+Garamond:ital,wght@0,400;0,500;1,400&family=Playfair+Display:ital,wght@0,400;0,500;1,400;1,500&family=Poppins:wght@300;400;500&display=swap');

:root{
  /* colour */
  --ink:#111111;
  --paper:#FFFFFF;
  --rule:#E8E6E3;
  --muted:#6E6A66;
  --soft:#4A4642;
  --jade:#0F7A6E;
  --jade-deep:#0B5F55;
  --coral:#E2604F;

  /* type */
  --serif:"Playfair Display",Georgia,serif;
  --text:"EB Garamond",Georgia,serif;
  --sans:"Poppins",-apple-system,BlinkMacSystemFont,sans-serif;

  /* measure */
  --maxw:1280px;
  --gut:36px;

  /* live-tunable (driven by the editorial dashboard) */
  --body-size:17.5px;
  --lh:1.58;
  --track:-.012em;
  --sec-pad:104px;
  --btn-dur:.9s;
  --btn-scale:70;
  --btn-dot:11px;
  --btn-ease:cubic-bezier(.33,0,.15,1);
}

*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{
  margin:0;background:var(--paper);color:var(--ink);
  font-family:var(--text);font-size:var(--body-size);line-height:var(--lh);
  -webkit-font-smoothing:antialiased;
}
img{max-width:100%;display:block}
h1,h2,h3,h4{font-family:var(--serif);font-weight:400;margin:0;letter-spacing:var(--track)}
p{margin:0 0 1em}
a{color:inherit}

.wrap{max-width:var(--maxw);margin:0 auto;padding:0 var(--gut)}
.narrow{max-width:780px}

/* --- labels ------------------------------------------------ */
.eyebrow{
  font-family:var(--sans);font-size:10.5px;letter-spacing:.22em;
  text-transform:uppercase;color:var(--muted);font-weight:400;
}
.eyebrow .mark{color:var(--jade);font-weight:500}

/* --- rules -------------------------------------------------- */
.hr{height:1px;background:var(--rule);border:0;margin:0}
.hr-jade{height:2px;width:44px;background:var(--jade);border:0;margin:0 0 22px}

/* --- buttons ------------------------------------------------ */
.btn{
  display:inline-block;font-family:var(--sans);font-size:11px;letter-spacing:.16em;
  text-transform:uppercase;padding:16px 32px;background:var(--ink);color:#fff;
  text-decoration:none;border:1px solid var(--ink);cursor:pointer;
  transition:background .25s,border-color .25s;
}
.btn:hover{background:var(--jade);border-color:var(--jade)}
.btn--ghost{background:transparent;color:var(--ink)}
.btn--ghost:hover{background:var(--ink);color:#fff;border-color:var(--ink)}
.btn--sm{padding:11px 18px;font-size:9.5px;letter-spacing:.13em}

/* --- chips -------------------------------------------------- */
.chip{
  display:inline-block;font-family:var(--sans);font-size:9px;letter-spacing:.14em;
  text-transform:uppercase;padding:5px 10px;border:1px solid var(--rule);color:var(--muted);
}
.chip--tool{background:var(--jade);color:#fff;border-color:var(--jade)}
.chip--free{background:var(--coral);color:#fff;border-color:var(--coral)}
.chip--save{color:var(--coral);border-color:var(--coral)}

/* --- price -------------------------------------------------- */
.price{font-family:var(--serif);font-size:23px}
.price s{color:var(--muted);font-size:.68em;margin-right:.4em}

/* --- product thumb + duotone (per-tab wayfinding) ----------- */
.thumb{position:relative;overflow:hidden;background:#F4F3F1;aspect-ratio:4/5;
  /* iOS raises the system share sheet on a long-press of an image — which
     would both fight the hold gesture and offer "Save Image" on the product. */
  -webkit-touch-callout:none;-webkit-user-select:none;user-select:none}
.thumb img{-webkit-touch-callout:none;pointer-events:none}
.thumb img{width:100%;height:100%;object-fit:cover;object-position:top center;
  transition:transform .6s ease}
a:hover .thumb img,.card:hover .thumb img{transform:scale(1.04)}

/* --- section rhythm (whitespace, not fills) ----------------- */
.sec{padding:var(--sec-pad) 0}
.sec--tight{padding:calc(var(--sec-pad) * .69) 0}
.sec-head{margin-bottom:52px}
.sec-head h2{font-size:clamp(30px,3.6vw,46px);line-height:1.06;max-width:16em}
.sec-head p{color:var(--soft);max-width:36em;margin-top:18px;font-size:19px}

/* --- nav / footer ------------------------------------------- */
.topbar{font-family:var(--sans);font-size:10px;letter-spacing:.18em;text-transform:uppercase;
  background:var(--ink);color:#fff;text-align:center;padding:11px 16px}
.topbar b{color:#fff;font-weight:500}
.nav{border-bottom:1px solid var(--rule);position:sticky;top:0;background:rgba(255,255,255,.94);
  backdrop-filter:blur(10px);z-index:70}
.nav .wrap{display:flex;align-items:center;justify-content:space-between;height:74px;gap:24px}
.logo{font-family:var(--sans);font-size:13px;letter-spacing:.3em;text-transform:uppercase;
  text-decoration:none;font-weight:400}
.navlinks{display:flex;gap:28px;font-family:var(--sans);font-size:10.5px;letter-spacing:.16em;
  text-transform:uppercase}
.navlinks a{text-decoration:none;color:var(--muted);transition:color .2s;position:relative;padding:4px 0}
.navlinks a:hover{color:var(--ink)}
.navlinks a::after{content:"";position:absolute;left:0;right:100%;bottom:0;height:1px;
  background:var(--jade);transition:right .28s ease}
.navlinks a:hover::after{right:0}
/* the page you are on: ink instead of muted, with the hover underline held
   open. Reuses the existing treatment rather than inventing a second one. */
.navlinks a[aria-current="page"]{color:var(--ink)}
.navlinks a[aria-current="page"]::after{right:0}
.binder-btn{font-family:var(--sans);font-size:10px;letter-spacing:.14em;text-transform:uppercase;
  border:1px solid var(--ink);padding:10px 15px;text-decoration:none;white-space:nowrap}
.binder-btn .n{color:var(--jade);font-weight:500}

footer{border-top:1px solid var(--rule);padding:76px 0 56px}
.foot-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:56px}
.foot-grid h4{font-size:22px;margin-bottom:12px}
.foot-grid ul{list-style:none;padding:0;margin:0;font-size:16.5px}
.foot-grid li{padding:5px 0;color:var(--soft)}
.capture input{width:100%;padding:13px 14px;border:1px solid var(--rule);font-family:var(--text);
  font-size:16px;margin-bottom:10px}
.capture input:focus{outline:none;border-color:var(--jade)}
.fineprint{font-family:var(--sans);font-size:9px;letter-spacing:.12em;text-transform:uppercase;
  color:var(--muted);margin-top:12px}

@media(max-width:900px){
  :root{--gut:22px;--sec-pad:72px}
  .foot-grid{grid-template-columns:1fr;gap:40px}
  .navlinks{display:none}
}
