/* =====================================================================
   Sol Wellness — Design System
   Neo-brutalist style, recolored to the Bottle Green / Firefly palette.
   Drop this file in, add the Google Fonts <link> to <head>, and use the
   class names below (.wrap .btn .card .eyebrow .phase .tile ...) to get
   the same look on any page.
   ===================================================================== */

:root{
  /* ---- Palette — bottle green, warm gold, ivory ----------------- */
  --ink:#08201F;          /* near-black dark green — text, borders, hard shadow */
  --green:#0C3D3D;        /* bottle green — signature block & button colour   */
  --green-deep:#082B2B;   /* deeper bottle green — hover states               */
  --firefly:#0A2F2F;      /* dark green — dark sections                       */
  --gold:#C79A3A;         /* gold — accents, tags, bullets                    */
  --gold-soft:#E7CE93;    /* soft gold — subtle tints on dark backgrounds     */
  --gold-deep:#A97F24;    /* deeper gold — hovers                             */
  --white:#FFFFFF;        /* white — cards                                    */
  --paper:#F7F3E9;        /* warm ivory — page bands, gives an apothecary feel */

  /* ---- Category accents — colour-code the collection ------------ */
  --cat-hormones:var(--green);   /* Hormones & Menopause — signature green   */
  --cat-intimacy:#AF5138;        /* Intimacy & Libido — warm clay            */
  --cat-energy:#A97516;          /* Energy, Focus & Performance — amber       */
  --cat-strength:#356C66;        /* Strength & Body Structure — calm teal     */
  --cat-sleep:#425A86;           /* Sleep, Mood & Calm — night slate-blue     */
  --cat-daily:#6E7A33;           /* Everyday Foundations — olive              */

  /* ---- Aliases so existing rules resolve to the trio ------------ */
  --green-tint:var(--gold);   /* tags                                        */
  --green-pale:var(--paper);  /* soft bands & tiles → warm ivory             */
  --sand:var(--white);        /* page background → white                     */
  --red:var(--gold);          /* accent → gold                               */
  --red-deep:var(--gold-deep);/* accent hover → deeper gold                  */
  --cream:var(--white);       /* ghost buttons → white                       */
  --grey:#4C5C56;         /* desaturated dark green — small print, captions  */
  --near-white:#EFF4F2;   /* near-white text used on dark green sections     */

  /* ---- Elevation / shape ---------------------------------------- */
  --shadow:4px 4px 0 var(--ink);      /* standard hard offset shadow  */
  --shadow-lg:6px 6px 0 var(--ink);   /* larger, for tiles            */
  --border:2.5px solid var(--ink);
  --radius:16px;
  --radius-lg:18px;
}

/* ---- Reset ------------------------------------------------------- */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{
  margin:0;
  font-family:'Karla',system-ui,-apple-system,'Segoe UI',sans-serif;
  font-size:17px;
  line-height:1.7;
  color:var(--ink);
  background:var(--white);
  -webkit-font-smoothing:antialiased;
}
img{max-width:100%;display:block}
a{color:var(--green);text-decoration-thickness:2px;text-underline-offset:3px}
a:hover{color:var(--red)}

/* ---- Typography -------------------------------------------------- */
h1,h2,h3,h4{
  font-family:'Fraunces',Georgia,'Times New Roman',serif;
  font-weight:800;
  line-height:1.08;
  letter-spacing:-.02em;
  margin:0 0 .5em;
}
h1{font-size:clamp(40px,6.4vw,66px)}
h2{font-size:clamp(30px,4.4vw,44px)}
h3{font-size:22px;line-height:1.2}
h4{font-size:18px}
p{margin:0 0 1.3em}
em{font-style:italic}
strong{font-weight:800}
.lead{font-size:clamp(19px,2.2vw,22px);color:var(--grey);max-width:60ch;line-height:1.55}

.eyebrow{
  font-size:12px;
  letter-spacing:.2em;
  text-transform:uppercase;
  font-weight:800;
  color:var(--green);
  display:inline-block;
  margin:0 0 .6em;
}

/* ---- Layout ------------------------------------------------------ */
.wrap{max-width:1080px;margin-inline:auto;padding-inline:24px}
section{padding:104px 0}
.band{width:100%}
.band--green{background:var(--green);color:var(--near-white)}
.band--pale{background:var(--paper)}
.band--dark{background:var(--firefly);color:var(--near-white)}
.band--green .eyebrow,.band--dark .eyebrow{color:var(--gold)}
.band--green a,.band--dark a{color:var(--gold)}
.band--green h1,.band--green h2,.band--green h3,
.band--dark h1,.band--dark h2,.band--dark h3{color:var(--white)}

.center{text-align:center}
.center .lead{margin-inline:auto}
.stack>*+*{margin-top:1.6rem}
.split{display:grid;grid-template-columns:1fr 1fr;gap:64px;align-items:center}

.grid{display:grid;gap:36px}
.grid--auto{grid-template-columns:repeat(3,1fr)}
.grid--tiles{grid-template-columns:repeat(3,1fr);gap:28px}

/* ---- Navigation -------------------------------------------------- */
.nav{
  position:sticky;top:0;z-index:50;
  background:var(--white);
  border-bottom:2px solid var(--ink);
}
.nav__inner{
  max-width:1080px;margin-inline:auto;padding:14px 24px;
  display:flex;align-items:center;gap:20px;
}
.logo{
  font-family:'Fraunces',serif;font-weight:900;font-size:22px;
  letter-spacing:-.01em;color:var(--ink);text-decoration:none;line-height:1.05;
  display:inline-flex;align-items:center;gap:10px;
}
.logo__mark{width:36px;height:36px;flex:none}
.logo span{color:var(--green)}
.nav__links{
  margin-left:auto;display:flex;align-items:center;gap:22px;list-style:none;padding:0;
}
.nav__links a{
  font-weight:700;font-size:15px;color:var(--ink);text-decoration:none;
}
.nav__links a:hover{color:var(--red)}
.nav__toggle,.nav__check{display:none}

/* ---- Buttons ----------------------------------------------------- */
.btn{
  display:inline-block;
  background:var(--green);
  color:var(--white);
  font-family:'Karla',sans-serif;
  font-weight:800;font-size:15px;letter-spacing:.06em;text-transform:uppercase;
  text-decoration:none;
  padding:15px 30px;
  border:var(--border);
  border-radius:14px;
  box-shadow:var(--shadow);
  cursor:pointer;
  transition:transform .12s ease,box-shadow .12s ease,background .12s ease,color .12s ease;
}
.btn:hover{background:var(--white);color:var(--ink);transform:translate(3px,3px);box-shadow:1px 1px 0 var(--ink)}
.btn.ghost{background:var(--cream);color:var(--ink)}
.btn.ghost:hover{background:var(--white)}
.btn.plum{background:var(--firefly);color:var(--white)}
.btn.plum:hover{background:var(--white);color:var(--ink)}
.btn.red{background:var(--red);color:var(--ink)}
.btn.red:hover{background:var(--white);color:var(--ink)}
.btn.full{display:block;width:100%;text-align:center}
.btn.big{font-size:16px;padding:18px 34px}
.nav .btn{padding:11px 22px;text-transform:uppercase}

/* ---- Cards / blocks --------------------------------------------- */
.card{
  background:var(--white);
  border:var(--border);
  border-radius:var(--radius);
  padding:40px 36px;
  box-shadow:var(--shadow);
  text-align:center;
}
.phase{
  background:var(--green);
  color:#fff;
  border:var(--border);
  border-radius:var(--radius);
  padding:46px 40px;
  box-shadow:var(--shadow);
  text-align:center;
}
.phase h3,.phase h4{color:#fff}
/* Keep bulleted lists readable inside centered cards: centered block, left-aligned text */
.card .ticklist,.phase .ticklist{display:inline-block;text-align:left;margin-inline:auto}
/* Product photo slot — drop an <img> inside any .tile__media to fill the frame */
.tile__media{
  position:relative;
  aspect-ratio:4/3;
  background:#fff;
  border:var(--border);
  border-radius:14px;
  overflow:hidden;
  display:flex;align-items:center;justify-content:center;
  margin-bottom:6px;
}
.tile__media::before{
  content:"Photo";
  font-family:'Fraunces',serif;font-weight:800;font-size:14px;
  letter-spacing:.18em;text-transform:uppercase;color:var(--ink);opacity:.32;
}
.tile__media:has(img)::before{display:none}
.tile__media img{width:100%;height:100%;object-fit:cover;display:block}
.tile{
  background:var(--white);
  border:var(--border);
  border-radius:var(--radius);
  padding:30px 28px;
  box-shadow:var(--shadow-lg);
  text-align:center;
}
.tile .eyebrow{display:block}
/* Clean white tiles with a coloured top rule keep the collection grid tidy */
.grid--tiles .tile{background:var(--white);display:flex;flex-direction:column;border-top:6px solid var(--cat,var(--green))}
.grid--tiles .tile h3{margin-bottom:.1em}
/* Push the Shop button to the bottom so every card in a row lines up */
.tile .tile__shop{margin-top:auto;padding-top:6px}
/* Compact internal rhythm keeps product cards tidy */
.grid--tiles .tile.stack>*+*{margin-top:12px}
.grid--tiles .tile p{margin:0}
.badge{
  display:inline-flex;align-items:center;justify-content:center;
  width:44px;height:44px;border-radius:999px;
  background:var(--green);color:#fff;border:var(--border);
  font-family:'Fraunces',serif;font-weight:800;font-size:20px;
  box-shadow:var(--shadow);
}
.tag{
  display:inline-block;background:var(--green-tint);color:var(--ink);
  border:var(--border);border-radius:999px;
  padding:6px 14px;font-weight:800;font-size:13px;letter-spacing:.04em;
}
.price{font-family:'Fraunces',serif;font-weight:800;font-size:38px;line-height:1}
.price small{font-family:'Karla',sans-serif;font-weight:700;font-size:14px;color:var(--grey);display:inline;text-transform:uppercase;letter-spacing:.08em;margin-left:10px}
.strike{color:var(--grey);text-decoration:line-through;font-weight:700}
/* ---- Collection categories -------------------------------------- */
.collection-cat{margin-top:56px}
.collection-cat:first-of-type{margin-top:8px}
.cat-head{
  font-size:20px;
  padding:0 0 14px;margin:0 0 30px;
  border-bottom:2.5px solid var(--cat,var(--ink));
  text-transform:uppercase;letter-spacing:.04em;
  display:flex;align-items:center;gap:14px;
}
.cat-head::before{
  content:"";flex:none;
  width:20px;height:20px;border-radius:6px;
  background:var(--cat,var(--green));border:2.5px solid var(--ink);
}
.cat-head .cat-count{
  margin-left:auto;font-family:'Karla',sans-serif;font-weight:800;
  font-size:12px;letter-spacing:.12em;color:var(--grey);
}
.collection-cat .tile .eyebrow{color:var(--cat,var(--green))}

/* ---- Scarcity / ticker bar -------------------------------------- */
.ticker{
  background:var(--firefly);color:var(--near-white);
  border-bottom:2px solid var(--ink);
  font-size:14px;font-weight:700;text-align:center;
  padding:9px 24px;
}
.ticker strong{color:var(--gold)}

/* ---- Lists ------------------------------------------------------- */
.ticklist{list-style:none;padding:0;margin:0}
.ticklist li{position:relative;padding-left:30px;margin-bottom:20px}
.ticklist li::before{
  content:"";position:absolute;left:0;top:9px;
  width:14px;height:14px;background:var(--red);border:2px solid var(--ink);border-radius:4px;
}
.phase .ticklist li::before{background:#fff}

/* ---- Forms ------------------------------------------------------- */
label{display:block;font-weight:700;margin-bottom:6px}
input,select,textarea{
  width:100%;
  padding:15px 18px;
  border:var(--border);
  border-radius:999px;
  font-family:'Karla',sans-serif;
  font-size:16px;
  background:#fff;
  color:var(--ink);
}
textarea{border-radius:18px;min-height:120px}
.field{margin-bottom:28px}

/* ---- Accordion / FAQ -------------------------------------------- */
details{
  border:var(--border);border-radius:var(--radius);background:#fff;
  box-shadow:var(--shadow);padding:0;margin-bottom:16px;overflow:hidden;
}
summary{
  list-style:none;cursor:pointer;
  font-family:'Fraunces',serif;font-weight:800;font-size:19px;
  padding:20px 56px 20px 22px;position:relative;
}
summary::-webkit-details-marker{display:none}
summary::after{
  content:"+";position:absolute;right:22px;top:50%;transform:translateY(-50%);
  font-family:'Fraunces',serif;font-weight:800;font-size:28px;color:var(--red);
}
details[open] summary::after{content:"–"}
details .answer{padding:0 22px 22px;color:var(--grey)}

/* ---- Quote / accent --------------------------------------------- */
.pullquote{
  border-left:6px solid var(--red);
  padding:6px 0 6px 22px;
  font-family:'Fraunces',serif;font-style:italic;font-size:clamp(22px,3vw,30px);
  line-height:1.25;
}

/* ---- Disclaimer -------------------------------------------------- */
.disclaimer{
  font-size:13px;color:var(--grey);line-height:1.55;max-width:70ch;
}

/* ---- Footer ------------------------------------------------------ */
.footer{background:var(--firefly);color:var(--near-white);border-top:2px solid var(--ink);padding:56px 0 40px}
.footer a{color:var(--gold);text-decoration:none;font-weight:700}
.footer a:hover{text-decoration:underline}
.footer .footlinks{display:flex;flex-wrap:wrap;gap:18px 26px;list-style:none;padding:0;margin:0 0 24px}
.footer small{color:#AFC0BB}

/* Ecosystem link columns */
.footgrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:34px 40px;margin:10px 0 30px}
.footgrid h4{font-family:'Karla',sans-serif;font-size:13px;letter-spacing:.16em;text-transform:uppercase;color:var(--white);margin:0 0 14px}
.footgrid ul{list-style:none;padding:0;margin:0}
.footgrid li{margin-bottom:11px;line-height:1.45}
.footgrid li span{display:block;color:#AFC0BB;font-size:13px}
.footgrid .muted{color:#AFC0BB;font-weight:700}
@media (max-width:760px){.footgrid{grid-template-columns:1fr}}

/* ---- Focus (accessibility) -------------------------------------- */
a:focus-visible,button:focus-visible,.btn:focus-visible,
input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible{
  outline:3px solid var(--red);outline-offset:2px;
}

/* ---- Quiz -------------------------------------------------------- */
.quiz{max-width:720px;margin-inline:auto}
.quiz__step{display:none}
.quiz__step.is-active{display:block;animation:pop .18s ease}
.quiz__opts{display:grid;gap:24px;margin:32px 0}
.opt{
  display:block;text-align:left;width:100%;
  background:#fff;border:var(--border);border-radius:14px;
  box-shadow:var(--shadow);padding:16px 20px;
  font-weight:700;font-size:16px;cursor:pointer;
  transition:transform .12s ease,box-shadow .12s ease,background .12s ease;
}
.opt:hover{background:var(--green-pale);transform:translate(3px,3px);box-shadow:1px 1px 0 var(--ink)}
.opt.is-chosen{background:var(--green);color:#fff}
.quiz__meter{height:16px;border:var(--border);border-radius:999px;background:#fff;overflow:hidden;margin-bottom:26px}
.quiz__meter i{display:block;height:100%;background:var(--red);width:20%;transition:width .25s ease}
.quiz__nav{display:flex;justify-content:space-between;gap:12px;margin-top:22px}

/* ---- No-JS fallback: reveal all quiz steps ---------------------- */
.no-js .quiz__step{display:block;margin-bottom:32px}
.no-js .quiz__meter,.no-js .quiz__nav{display:none}

@keyframes pop{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}

/* ===================================================================
   Responsive
   =================================================================== */
@media (max-width:900px){
  .nav__toggle{
    display:inline-flex;margin-left:auto;
    background:var(--green-pale);border:var(--border);border-radius:12px;
    box-shadow:var(--shadow);padding:9px 14px;font-weight:800;cursor:pointer;
    font-size:15px;text-transform:uppercase;letter-spacing:.06em;
  }
  .nav__links{
    display:none;flex-direction:column;align-items:flex-start;gap:14px;
    width:100%;margin:14px 0 4px;order:3;
  }
  .nav__inner{flex-wrap:wrap}
  .nav__check:checked ~ .nav__links{display:flex}
}
@media (max-width:760px){
  .split{grid-template-columns:1fr;gap:48px}
  .grid--auto,.grid--tiles{grid-template-columns:1fr 1fr}
}
@media (max-width:600px){
  section{padding:96px 0}
  .wrap{padding-inline:22px}
  .btn{display:block;width:100%;text-align:center}
  .nav .btn{display:inline-block;width:auto}
  .quiz__nav .btn{width:auto}
  .grid--auto,.grid--tiles{grid-template-columns:1fr}
}

/* ---- Reduced motion --------------------------------------------- */
@media (prefers-reduced-motion:reduce){
  *{animation:none !important;transition:none !important}
  .btn:hover,.opt:hover{transform:none}
}
