/* Corvane Men's Health v2: shared styles (fictional sample practice).
   Art direction: dark, premium, cinematic. Dark is the default look; light is the alternate.
   Night #070b08 and bone #efebe3 sections alternate. Electric green #45e38e is used only for CTAs, key numbers and thin rules. */

/* ---------- tokens ---------- */
:root{
  --green:#45e38e;--green-hi:#8cf5bd;--on-green:#04120a;
  --night:#070b08;--bone:#efebe3;
  --font:"Archivo",system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;
  --narrow:"Archivo Narrow","Arial Narrow",Archivo,system-ui,sans-serif;
  --ease:cubic-bezier(.22,1,.36,1);--ease-sheet:cubic-bezier(.32,.72,0,1);
  --r:20px;
  color-scheme:dark;
}
/* dark (default) */
:root,[data-theme="dark"]{
  --page:#070b08;
  --n-bg:#070b08;--n-fg:#f2f1ec;--n-mut:#a7b0a9;--n-line:rgba(242,241,236,.14);--n-acc:#45e38e;--n-card:#0d140f;--n-focus:#45e38e;
  --b-bg:#efebe3;--b-fg:#0b130e;--b-mut:rgba(11,19,14,.72);--b-line:rgba(11,19,14,.18);--b-acc:#0f5a33;--b-card:#f8f5ef;--b-focus:#0f5a33;
}
/* light (alternate): the night blocks become paper, the bone blocks become sand; photo blocks stay dark */
[data-theme="light"]{
  color-scheme:light;
  --page:#f8f6f1;
  --n-bg:#f8f6f1;--n-fg:#0b130e;--n-mut:rgba(11,19,14,.72);--n-line:rgba(11,19,14,.16);--n-acc:#0f5a33;--n-card:#ffffff;--n-focus:#0f5a33;
  --b-bg:#e8e3d6;--b-fg:#0b130e;--b-mut:rgba(11,19,14,.74);--b-line:rgba(11,19,14,.2);--b-acc:#0f5a33;--b-card:#f4f1e9;--b-focus:#0f5a33;
}
.sec-night{--bg:var(--n-bg);--fg:var(--n-fg);--mut:var(--n-mut);--line:var(--n-line);--acc:var(--n-acc);--card:var(--n-card);--focus:var(--n-focus)}
.sec-bone{--bg:var(--b-bg);--fg:var(--b-fg);--mut:var(--b-mut);--line:var(--b-line);--acc:var(--b-acc);--card:var(--b-card);--focus:var(--b-focus)}
/* photo blocks are dark in both themes */
.photo-sec{--bg:#070b08;--fg:#f2f1ec;--mut:#cdd5cf;--line:rgba(242,241,236,.24);--acc:#45e38e;--card:#0d140f;--focus:#45e38e}
.sec-night,.sec-bone,.photo-sec{background:var(--bg);color:var(--fg)}

/* ---------- base ---------- */
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{background:var(--page);color:var(--n-fg);font:400 18px/1.6 var(--font);-webkit-font-smoothing:antialiased;min-width:320px}
img,svg{display:block;max-width:100%}
a{color:inherit}
button{font:inherit;color:inherit}
:focus-visible{outline:3px solid var(--focus,#45e38e);outline-offset:3px;border-radius:8px}
h1,h2,h3{font-weight:800;letter-spacing:-.04em;line-height:1.02;word-spacing:.1em}
p{max-width:60ch}
.wrap.wide.navin{max-width:1376px}
ul,ol{list-style:none}
[id]{scroll-margin-top:96px}
.vh{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.skip{position:absolute;left:16px;top:12px;transform:translateY(-300%);background:#f2f1ec;color:#070b08;padding:12px 18px;border-radius:999px;z-index:200;text-decoration:none;font-weight:700}
.skip:focus{transform:none}
.wrap{max-width:1200px;margin:0 auto;padding-inline:clamp(16px,3vw,32px)}
.wrap.wide{max-width:1376px}
.num{font-variant-numeric:tabular-nums}
.g{color:var(--green)}

/* ---------- buttons ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:52px;padding:0 28px;border-radius:999px;font:700 16px/1 var(--font);letter-spacing:-.01em;border:1.5px solid transparent;cursor:pointer;text-decoration:none;white-space:nowrap;transition:transform .3s var(--ease),background-color .25s,color .25s,border-color .25s;background:none;color:inherit}
.btn:hover{transform:translateY(-2px)}
.btn:active{transform:translateY(0) scale(.985)}
.btn.mint{background:var(--green);color:var(--on-green);border-color:rgba(8,70,38,.35)}
.btn.mint:hover{background:var(--green-hi)}
.btn.ghost{border-color:color-mix(in srgb,currentColor 42%,transparent);color:var(--fg,#f2f1ec)}
.btn.ghost:hover{border-color:currentColor;background:color-mix(in srgb,currentColor 8%,transparent)}
.btn.ink{background:#04120a;color:#f2f1ec}
.btn.ink:hover{background:#0d1d13}
.btn.lg{min-height:60px;padding:0 34px;font-size:17px}
.btn.sm{min-height:40px;padding:0 18px;font-size:14px}
.link{display:inline-flex;align-items:center;gap:8px;min-height:48px;color:var(--acc);font-weight:700;text-decoration:none;border-bottom:2px solid currentColor;align-self:flex-start}
.link:hover{opacity:.82}

/* ---------- top strip, header ---------- */
.strip{padding:6px 12px;background:#050806;color:rgba(255,255,255,.84);font:500 13px/1.3 var(--font);border-bottom:1px solid rgba(255,255,255,.08)}
.strip .wrap{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:0 8px;min-height:28px;padding:0;text-align:center}
.strip a{display:inline-flex;align-items:center;min-height:40px;margin-block:-6px;color:#45e38e;font-weight:700;text-decoration:underline;text-underline-offset:3px}
.strip i{font-style:normal;opacity:.7}
@media(max-width:480px){.strip{font-size:12px}.strip .wrap{gap:0 6px}}
@media(max-width:420px){.strip i:last-of-type{display:none}}
.logo{display:inline-flex;align-items:center;gap:10px;font:800 21px/1 var(--font);letter-spacing:-.05em;text-decoration:none;color:#f2f1ec;min-height:44px}
.logo .mark{width:34px;height:34px;border-radius:10px;background:var(--green);display:grid;place-items:center;flex:none}
.logo .mark svg{width:19px;height:19px;fill:var(--on-green)}
.logo small{font:600 12px/1.2 var(--narrow);letter-spacing:.12em;text-transform:uppercase;color:#a7b0a9;margin-left:2px;padding-left:10px;border-left:1px solid rgba(242,241,236,.22);max-width:62px}
header.site{position:sticky;top:0;z-index:60;background:rgba(7,11,8,.9);backdrop-filter:blur(22px) saturate(140%);-webkit-backdrop-filter:blur(22px) saturate(140%);border-bottom:1px solid rgba(242,241,236,.1);color:#f2f1ec}
header.site .navin{display:flex;align-items:center;gap:20px;min-height:72px}
header.site .links{display:flex;gap:2px;margin-inline:auto}
header.site .links a{position:relative;display:inline-flex;align-items:center;min-height:44px;padding:0 16px;text-decoration:none;color:rgba(242,241,236,.78);font-size:15px;font-weight:600;letter-spacing:-.01em;white-space:nowrap;transition:color .2s}
header.site .links a:hover{color:#fff}
header.site .links a[aria-current="page"]{color:#fff}
header.site .links a[aria-current="page"]::after{content:"";position:absolute;left:16px;right:16px;bottom:5px;height:2px;background:var(--green)}
header.site .navr{display:flex;align-items:center;gap:10px}
header.site .burger{display:none}
header.site .btn.glass{background:rgba(255,255,255,.07);border-color:rgba(255,255,255,.26);color:#f2f1ec}
header.site .btn.glass:hover{background:rgba(255,255,255,.14)}
.iconbtn{width:44px;height:44px;border-radius:50%;border:1.5px solid rgba(255,255,255,.26);background:rgba(255,255,255,.07);display:grid;place-items:center;cursor:pointer;padding:0;color:#f2f1ec;flex:none;transition:background-color .2s}
.iconbtn:hover{background:rgba(255,255,255,.14)}
.iconbtn svg{width:18px;height:18px}
.iconbtn .sun{display:none}
[data-theme="dark"] .iconbtn .sun,:root:not([data-theme]) .iconbtn .sun{display:block}
[data-theme="dark"] .iconbtn .moon,:root:not([data-theme]) .iconbtn .moon{display:none}
header.site .sheet{position:absolute;left:clamp(16px,3vw,32px);right:clamp(16px,3vw,32px);top:calc(100% + 8px);padding:12px;border-radius:24px;background:rgba(10,16,12,.97);border:1px solid rgba(242,241,236,.16);backdrop-filter:blur(28px);-webkit-backdrop-filter:blur(28px);box-shadow:0 30px 60px -20px rgba(0,0,0,.7);opacity:0;visibility:hidden;transform:translateY(-8px);transition:opacity .25s,transform .35s var(--ease-sheet),visibility 0s .35s}
header.site .sheet.open{opacity:1;visibility:visible;transform:none;transition:opacity .25s,transform .35s var(--ease-sheet)}
header.site .sheet a.l{display:flex;align-items:center;min-height:54px;padding:0 14px;border-radius:14px;text-decoration:none;font-size:20px;font-weight:700;letter-spacing:-.03em;color:#f2f1ec}
header.site .sheet a.l:hover{background:rgba(255,255,255,.07)}
header.site .sheet a.l[aria-current="page"]{background:rgba(255,255,255,.07);box-shadow:inset 3px 0 0 var(--green)}
header.site .sheet .row2{display:grid;gap:8px;margin-top:8px;padding-top:12px;border-top:1px solid rgba(242,241,236,.14)}
header.site .sheet .btn.glass{background:rgba(255,255,255,.07);border-color:rgba(255,255,255,.26);color:#f2f1ec}
@media(max-width:1200px){
  header.site .links,header.site .navr .signin{display:none}
  header.site .burger{display:grid}
  header.site .navr{margin-left:auto}
}
@media(max-width:560px){header.site .navr .start{display:none}.logo small{display:none}}

/* ---------- section scaffolding ---------- */
section.s{padding-block:clamp(72px,9.5vw,148px)}
.sh{display:grid;gap:18px 64px;margin-bottom:clamp(36px,5vw,72px);align-items:end}
@media(min-width:900px){.sh{grid-template-columns:minmax(0,1.25fr) minmax(0,.75fr)}}
.h2{font-size:clamp(40px,5vw,72px);line-height:.98;letter-spacing:-.042em;word-spacing:.14em;font-stretch:88%;max-width:16ch;text-wrap:balance}
.lead{color:var(--mut);font-size:clamp(18px,1.4vw,20px);line-height:1.5;max-width:44ch}
.fine{font-size:14px;line-height:1.55;color:var(--mut);max-width:62ch}

/* ---------- reveal motion (opacity / transform / blur only) ---------- */
.js .rv{opacity:0;transform:translateY(28px);transition:opacity .9s var(--ease),transform .9s var(--ease);transition-delay:calc(var(--d,0)*90ms)}
.js .rv.in{opacity:1;transform:none}
.js .hw{display:inline-block;opacity:0;transform:translateY(18px);filter:blur(10px);transition:opacity .7s var(--ease),transform .7s var(--ease),filter .7s var(--ease);transition-delay:calc(var(--i)*70ms)}
.js .hw.in{opacity:1;transform:none;filter:blur(0)}
html.revealed *,html.revealed *::before,html.revealed *::after{transition:none!important}
@keyframes push{from{transform:scale(1.08)}to{transform:none}}
@keyframes pushF{from{transform:scaleX(-1) scale(1.08)}to{transform:scaleX(-1)}}

/* ---------- accordion ---------- */
.faq{display:grid}
.fi{border-top:1px solid var(--line)}
.fi:last-child{border-bottom:1px solid var(--line)}
.fi h3{font-size:inherit;letter-spacing:0;font-weight:700}
.fi button{width:100%;display:flex;justify-content:space-between;align-items:center;gap:24px;text-align:left;padding:26px 0;min-height:72px;background:none;border:0;cursor:pointer;font:700 clamp(20px,2vw,26px)/1.2 var(--font);letter-spacing:-.03em;color:var(--fg)}
.fi .pl{position:relative;width:36px;height:36px;border-radius:50%;background:var(--green);color:var(--on-green);flex:none;transition:transform .4s var(--ease)}
.fi .pl::before,.fi .pl::after{content:"";position:absolute;left:50%;top:50%;width:14px;height:2.5px;margin:-1.25px 0 0 -7px;background:currentColor;border-radius:2px}
.fi .pl::after{transform:rotate(90deg)}
.fi.open .pl{transform:rotate(45deg)}
.fa{display:none}
.fi.open .fa{display:block;animation:faIn .4s var(--ease)}
@keyframes faIn{from{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:none}}
.fa p{padding:0 60px 28px 0;color:var(--mut);font-size:clamp(17px,1.4vw,19px);max-width:62ch}

/* ---------- footer ---------- */
footer.site{border-top:1px solid var(--line);padding-block:72px 44px}
footer.site .fgrid{display:grid;grid-template-columns:minmax(0,1.5fr) repeat(3,minmax(0,1fr));gap:40px 32px}
footer.site .logo{color:var(--fg)}
footer.site .logo .mark{background:var(--green)}
footer.site .ft{font:600 13px var(--narrow);letter-spacing:.14em;text-transform:uppercase;color:var(--mut);margin-bottom:10px}
footer.site ul{display:grid}
footer.site ul a{display:flex;align-items:center;min-height:42px;text-decoration:none;color:var(--fg);font-size:16px;opacity:.86}
footer.site ul a:hover{opacity:1;text-decoration:underline}
footer.site .fgrid p{color:var(--mut);font-size:16px;margin-top:14px;max-width:34ch}
footer.site .legal{margin-top:48px;padding-top:22px;border-top:1px solid var(--line);font-size:14px;color:var(--mut);display:flex;flex-wrap:wrap;justify-content:space-between;gap:8px 24px}
@media(max-width:760px){footer.site .fgrid{grid-template-columns:repeat(2,minmax(0,1fr))}footer.site .fgrid>div:first-child{grid-column:1/-1}}

/* ---------- reduced motion ---------- */
@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation:none!important;transition-duration:.01ms!important;transition-delay:0s!important}
  .js .rv,.js .hw{opacity:1!important;transform:none!important;filter:none!important}
}
