/* ==========================================================================
   NOXX PILATES — shared stylesheet for landing / blog pages.
   Tokens, typography and shell components mirror index.html so every page
   reads as the same brand. The homepage keeps its own inline CSS untouched.
   ========================================================================== */

*{box-sizing:border-box;}
:root{
  --accent:#22c132;
  --accent2:#2bd62e;
  --accent-deep:#15833f;
  --secondary:#22c132; --secondary-dim:#15833f; --secondary-soft:rgba(34,193,50,0.13);
  --glow:rgba(34,193,50,0.20);
  --bg:#0a0c0a; --bg2:#0d100d; --card:#111511;
  --fg:#e9efe7;
  --muted:#a8b2a6;
  --dim:#71796f;
  --line:rgba(233,239,231,0.12);
}
html{scroll-behavior:smooth; -webkit-text-size-adjust:100%; overflow-x:hidden; width:100%;}
body{margin:0; background:radial-gradient(1200px 700px at 80% -10%, rgba(34,193,50,0.11), transparent 62%), radial-gradient(900px 540px at 0% 38%, rgba(233,239,231,0.045), transparent 58%), var(--bg); color:var(--fg); font-family:'Archivo',system-ui,sans-serif; -webkit-font-smoothing:antialiased; text-rendering:optimizeLegibility; overflow-x:hidden; width:100%; max-width:100%; position:relative;}
a{color:inherit; text-decoration:none;}
img{max-width:100%; display:block;}
h1,h2,h3,h4{margin:0;}
p{margin:0;}
ul,ol{margin:0; padding:0; list-style:none;}
button{font:inherit;}
section[id]{scroll-margin-top:96px;}
::selection{background:var(--accent); color:var(--bg);}
:focus-visible{outline:2px solid var(--accent); outline-offset:3px; border-radius:3px;}
.mono{font-family:'JetBrains Mono',ui-monospace,monospace;}
.serif{font-family:'Instrument Serif',Georgia,serif;}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0;}
body::before{content:''; position:fixed; inset:0; z-index:-1; pointer-events:none; opacity:.38; background:linear-gradient(rgba(233,239,231,0.025) 1px, transparent 1px), linear-gradient(90deg, rgba(233,239,231,0.025) 1px, transparent 1px); background-size:72px 72px; mask-image:linear-gradient(180deg, transparent 0%, #000 12%, #000 78%, transparent 100%);}

::-webkit-scrollbar{width:10px;height:10px;}
::-webkit-scrollbar-track{background:var(--bg);}
::-webkit-scrollbar-thumb{background:#2a2a2c;border-radius:10px;border:2px solid var(--bg);}
::-webkit-scrollbar-thumb:hover{background:var(--accent);}

#progress{position:fixed; top:0; left:0; height:2px; width:0; z-index:120; background:linear-gradient(90deg, var(--secondary-dim), var(--secondary)); box-shadow:0 0 12px var(--secondary); transition:width .12s linear; pointer-events:none;}
#grain{position:fixed; inset:0; z-index:90; pointer-events:none; opacity:0.07; mix-blend-mode:overlay;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");}

@keyframes slideDown{from{opacity:0;transform:translateY(-12px);}to{opacity:1;transform:none;}}
[data-reveal]{opacity:0; transform:translateY(26px); transition:opacity .9s cubic-bezier(.16,.84,.44,1), transform .9s cubic-bezier(.16,.84,.44,1);}
[data-reveal].in{opacity:1; transform:none;}

/* ---------------------------------------------------------------- NAV --- */
nav#nav{position:fixed; top:0; left:0; right:0; z-index:110; display:flex; align-items:center; justify-content:space-between; padding:18px clamp(20px,5vw,72px); border-bottom:1px solid transparent; transition:background .4s ease, border-color .4s ease, backdrop-filter .4s ease, padding .4s ease, box-shadow .4s ease;}
nav#nav.scrolled{background:rgba(10,10,11,0.72); backdrop-filter:blur(20px) saturate(1.12); -webkit-backdrop-filter:blur(20px) saturate(1.12); border-bottom-color:rgba(233,239,231,0.1); padding:12px clamp(20px,5vw,72px); box-shadow:0 18px 60px rgba(0,0,0,0.28);}
.brand{display:inline-flex; align-items:center; gap:11px; font-family:'Archivo',sans-serif; font-weight:900; font-size:21px; letter-spacing:0.16em; color:var(--fg); z-index:111;}
.brand img{height:28px; width:auto; display:block; transition:transform .4s cubic-bezier(.16,.84,.44,1);}
.brand:hover img{transform:rotate(-6deg) scale(1.06);}
.brand span{color:var(--accent);}
#nav-links{display:flex; align-items:center; gap:clamp(14px,2.1vw,34px); font-size:12px; letter-spacing:0.18em; text-transform:uppercase;}
#nav-links a{color:var(--muted); transition:color .3s;}
#nav-links a:hover,#nav-links a[aria-current]{color:var(--fg);}
@media (max-width:900px) and (min-width:641px){ #nav-links a[data-opt]{display:none;} }
#nav-links a.cta{display:inline-flex; align-items:center; gap:8px; padding:11px 20px; border:1px solid rgba(233,239,231,0.28); border-radius:100px; color:var(--fg); background:rgba(233,239,231,0.035); box-shadow:inset 0 1px 0 rgba(255,255,255,0.08); transition:background .3s, color .3s, border-color .3s, transform .3s ease;}
#nav-links a.cta:hover{background:var(--fg); color:var(--bg); border-color:var(--fg); transform:translateY(-2px);}

#burger{display:none; flex-direction:column; justify-content:center; gap:6px; width:44px; height:44px; background:none; border:0; cursor:pointer; padding:10px; z-index:111;}
#burger span{display:block; height:2px; width:100%; background:var(--fg); border-radius:2px; transition:transform .4s cubic-bezier(.16,.84,.44,1), opacity .3s ease;}
body.menu-open #burger span:nth-child(1){transform:translateY(8px) rotate(45deg);}
body.menu-open #burger span:nth-child(2){opacity:0;}
body.menu-open #burger span:nth-child(3){transform:translateY(-8px) rotate(-45deg);}

#mobile-menu{position:fixed; inset:0; z-index:105; background:rgba(10,10,11,0.97); backdrop-filter:blur(20px); -webkit-backdrop-filter:blur(20px); display:flex; flex-direction:column; gap:6px; padding:96px 28px max(28px,env(safe-area-inset-bottom)); opacity:0; visibility:hidden; overflow-y:auto; -webkit-overflow-scrolling:touch; transition:opacity .45s ease, visibility .45s ease;}
#mobile-menu > a{flex:0 0 auto;}
#mobile-menu > a:first-of-type{margin-top:auto;}
#mobile-menu .mm-foot{margin-bottom:auto;}
body.menu-open #mobile-menu{opacity:1; visibility:visible;}
body.menu-open{overflow:hidden;}
#mobile-menu a{font-family:'Archivo',sans-serif; font-weight:800; text-transform:uppercase; font-size:clamp(26px,6.6vw,42px); line-height:1.2; letter-spacing:-0.02em; color:var(--fg); padding:6px 0; border-bottom:1px solid rgba(233,239,231,0.08); transition:color .3s, padding-left .35s ease;}
#mobile-menu a:hover,#mobile-menu a:active{color:var(--accent); padding-left:14px;}
body.menu-open #mobile-menu a{animation:slideDown .5s cubic-bezier(.16,.84,.44,1) both;}
body.menu-open #mobile-menu a:nth-child(1){animation-delay:.05s;}
body.menu-open #mobile-menu a:nth-child(2){animation-delay:.09s;}
body.menu-open #mobile-menu a:nth-child(3){animation-delay:.13s;}
body.menu-open #mobile-menu a:nth-child(4){animation-delay:.17s;}
body.menu-open #mobile-menu a:nth-child(5){animation-delay:.21s;}
body.menu-open #mobile-menu a:nth-child(6){animation-delay:.25s;}
body.menu-open #mobile-menu a:nth-child(7){animation-delay:.29s;}
.mm-foot{margin-top:30px; padding-top:24px; border-top:1px solid rgba(233,239,231,0.12); display:flex; flex-direction:column; gap:14px;}
.mm-dir-label,.mm-contact-label{font-family:'JetBrains Mono',monospace; font-size:10px; letter-spacing:0.24em; text-transform:uppercase; color:var(--dim); margin-bottom:2px;}
.mm-dirs{display:flex; gap:12px;}
#mobile-menu .mm-dir{flex:1 1 0; min-width:0; display:flex; align-items:center; gap:12px; padding:16px 18px; border:1px solid rgba(233,239,231,0.16); border-radius:14px; background:rgba(233,239,231,0.03); transition:background .3s ease, border-color .3s ease, transform .3s ease; animation:none; font-family:'Archivo',sans-serif;}
#mobile-menu .mm-dir:hover,#mobile-menu .mm-dir:active{background:rgba(34,193,50,0.12); border-color:var(--accent); transform:translateY(-2px); padding-left:18px; color:var(--fg);}
.mm-dir .pin{flex:0 0 auto; width:34px; height:34px; border-radius:50%; background:rgba(34,193,50,0.16); display:flex; align-items:center; justify-content:center;}
.mm-dir .pin svg{width:17px; height:17px; stroke:var(--accent); fill:none; stroke-width:2; stroke-linecap:round; stroke-linejoin:round;}
.mm-dir .txt{display:flex; flex-direction:column; gap:2px; min-width:0;}
.mm-dir .txt b{font-family:'Archivo',sans-serif; font-weight:800; font-size:15px; letter-spacing:-0.01em; line-height:1; text-transform:none;}
.mm-dir .txt span{font-family:'JetBrains Mono',monospace; font-size:9px; letter-spacing:0.14em; text-transform:uppercase; color:var(--accent); white-space:nowrap;}
.mm-contacts{display:flex; gap:10px; margin-top:6px;}
#mobile-menu .mm-contacts a{flex:1 1 0; display:flex; align-items:center; justify-content:center; height:50px; border:1px solid rgba(233,239,231,0.16); border-radius:14px; color:var(--fg); transition:background .3s ease, border-color .3s ease, color .3s ease; animation:none; padding:0;}
#mobile-menu .mm-contacts a:hover,#mobile-menu .mm-contacts a:active{background:var(--accent); border-color:var(--accent); color:var(--bg); padding-left:0;}
.mm-contacts a svg{width:21px; height:21px;}

/* -------------------------------------------------------- STICKY WA --- */
#sticky-wa{position:fixed; right:clamp(16px,3vw,28px); bottom:clamp(16px,3vw,28px); z-index:95; display:inline-flex; align-items:center; gap:11px; padding:14px 22px 14px 16px; background:linear-gradient(135deg,var(--accent),var(--accent2)); color:#07120a; border-radius:100px; font-family:'JetBrains Mono',monospace; font-size:12px; font-weight:600; letter-spacing:0.08em; text-transform:uppercase; box-shadow:0 16px 44px rgba(34,193,50,0.36), inset 0 1px 0 rgba(255,255,255,0.3); transform:translateY(180%); transition:transform .55s cubic-bezier(.16,.84,.44,1), box-shadow .35s ease, filter .3s ease;}
#sticky-wa.show{transform:translateY(0);}
#sticky-wa:hover{filter:brightness(1.05); box-shadow:0 22px 56px rgba(34,193,50,0.5);}
#sticky-wa .wa-ic{display:inline-flex; align-items:center; justify-content:center; width:28px; height:28px;}
#sticky-wa .wa-ic svg{width:26px; height:26px; fill:#07120a;}
#sticky-wa::after{content:''; position:absolute; inset:0; border-radius:100px; animation:waPulse 2.8s ease-out infinite; pointer-events:none;}
@keyframes waPulse{0%{box-shadow:0 0 0 0 rgba(34,193,50,0.45);}70%{box-shadow:0 0 0 16px rgba(34,193,50,0);}100%{box-shadow:0 0 0 0 rgba(34,193,50,0);}}
@media (max-width:480px){ #sticky-wa{padding:10px;} #sticky-wa .wa-txt{display:none;} }
@media (prefers-reduced-motion:reduce){ #sticky-wa::after{animation:none;} }

/* ------------------------------------------------------ TYPOGRAPHY --- */
.section{position:relative; padding:clamp(56px,9vh,116px) clamp(20px,5vw,72px);}
.section.tight{padding-top:0;}
.section.alt{background:var(--bg2); border-top:1px solid var(--line); border-bottom:1px solid var(--line);}
.wrap{max-width:1180px; margin:0 auto;}
.wrap-narrow{max-width:860px; margin:0 auto;}
.eyebrow{font-family:'JetBrains Mono',monospace; font-size:12px; letter-spacing:0.3em; text-transform:uppercase; color:var(--accent);}
.head-h2{font-family:'Archivo',sans-serif; font-weight:900; text-transform:uppercase; font-size:clamp(29px,4.2vw,60px); line-height:0.98; letter-spacing:-0.02em; text-wrap:balance;}
.head-h2 .serif{font-weight:400; font-style:italic; text-transform:none; color:var(--accent);}
.head-block{display:flex; flex-direction:column; gap:18px; margin-bottom:clamp(30px,4.6vh,54px); max-width:780px;}
.head-block.center{align-items:center; text-align:center; margin-left:auto; margin-right:auto;}
.lead{font-size:clamp(15px,1.15vw,18px); line-height:1.75; color:var(--muted); max-width:640px;}

/* ------------------------------------------------------ BREADCRUMB --- */
.crumbs{display:flex; flex-wrap:wrap; align-items:center; gap:8px; font-family:'JetBrains Mono',monospace; font-size:11px; letter-spacing:0.14em; text-transform:uppercase; color:var(--dim);}
.crumbs li{display:inline-flex; align-items:center; gap:8px;}
.crumbs li+li::before{content:'/'; color:rgba(233,239,231,0.24);}
.crumbs a{color:var(--dim); transition:color .3s ease;}
.crumbs a:hover{color:var(--accent);}
.crumbs [aria-current]{color:var(--muted);}

/* ------------------------------------------------------- PAGE HERO --- */
.phero{position:relative; overflow:hidden; display:flex; align-items:flex-end; min-height:min(76vh,700px); padding-top:118px;}
.phero-bg{position:absolute; inset:0; background-size:cover; background-position:center; filter:brightness(0.48) saturate(0.92) contrast(1.04);}
.phero-grad{position:absolute; inset:0; background:linear-gradient(180deg, rgba(10,12,10,0.8) 0%, rgba(10,12,10,0.42) 34%, rgba(10,12,10,0.82) 74%, rgba(10,12,10,0.985) 100%);}
.phero-grad2{position:absolute; inset:0; background:linear-gradient(67deg, rgba(10,12,10,0.9) 0%, rgba(10,12,10,0.5) 44%, rgba(10,12,10,0.1) 74%, transparent 100%);}
.phero-inner{position:relative; z-index:3; width:100%; max-width:1080px; padding:0 clamp(20px,5vw,72px) clamp(48px,7.5vh,88px); display:flex; flex-direction:column; gap:clamp(16px,2.2vh,26px);}
@keyframes heroRise{from{opacity:0; transform:translateY(26px); filter:blur(4px);} to{opacity:1; transform:none; filter:blur(0);}}
.phero-inner > *{opacity:0; animation:heroRise .9s cubic-bezier(.16,.84,.44,1) forwards;}
.phero-inner > *:nth-child(1){animation-delay:.10s;}
.phero-inner > *:nth-child(2){animation-delay:.22s;}
.phero-inner > *:nth-child(3){animation-delay:.34s;}
.phero-inner > *:nth-child(4){animation-delay:.46s;}
.phero-inner > *:nth-child(5){animation-delay:.56s;}
.phero-eyebrow{font-family:'JetBrains Mono',monospace; font-size:clamp(11px,1vw,13px); letter-spacing:0.32em; text-transform:uppercase; color:var(--accent); display:flex; align-items:center; gap:14px; text-shadow:0 1px 12px rgba(0,0,0,0.6);}
.phero-eyebrow .line{flex:0 0 auto; width:34px; height:1px; background:var(--accent); display:inline-block;}
.phero h1{font-family:'Archivo',sans-serif; font-weight:900; text-transform:uppercase; font-size:clamp(36px,6.2vw,84px); line-height:0.94; letter-spacing:-0.03em; color:#fff; text-wrap:balance; text-shadow:0 2px 40px rgba(0,0,0,0.55), 0 1px 4px rgba(0,0,0,0.4);}
.phero h1 .serif{font-weight:400; font-style:italic; text-transform:none; letter-spacing:0; color:var(--accent); text-shadow:0 0 44px rgba(34,193,50,0.4), 0 2px 30px rgba(0,0,0,0.5);}
.phero-slogan{font-family:'Instrument Serif',Georgia,serif; font-style:italic; font-size:clamp(18px,2vw,27px); line-height:1.3; color:#d9d3c7; text-shadow:0 1px 14px rgba(0,0,0,0.7);}
.phero-lead{max-width:520px; font-size:clamp(15px,1.15vw,18px); line-height:1.65; color:#e2ddd2; text-shadow:0 1px 14px rgba(0,0,0,0.7);}
.phero-actions{display:flex; flex-wrap:wrap; align-items:center; gap:14px;}
@media (max-width:640px){
  .phero{min-height:auto; padding-top:100px;}
  .phero-bg{filter:brightness(0.4) saturate(0.9);}
  .phero-grad2{background:linear-gradient(180deg, transparent 28%, rgba(10,12,10,0.5) 68%, rgba(10,12,10,0.86) 100%);}
  .phero-actions{flex-direction:column; align-items:stretch; width:100%;}
  .phero-actions a{justify-content:center;}
}

/* ---------------------------------------------------------- BUTTONS --- */
.btn-solid{display:inline-flex; align-items:center; justify-content:center; gap:10px; padding:16px 30px; background:linear-gradient(135deg,var(--accent),var(--accent2)); color:#0a0c0a; border-radius:100px; font-family:'JetBrains Mono',monospace; font-size:13px; font-weight:500; letter-spacing:0.12em; text-transform:uppercase; box-shadow:0 12px 36px rgba(34,193,50,0.30), inset 0 1px 0 rgba(255,255,255,0.30); transition:transform .35s cubic-bezier(.16,.84,.44,1), box-shadow .35s ease, filter .3s ease;}
.btn-solid:hover{transform:translateY(-3px); box-shadow:0 18px 48px rgba(34,193,50,0.42); filter:brightness(1.05);}
.btn-ghost{display:inline-flex; align-items:center; justify-content:center; gap:10px; padding:16px 30px; border:1px solid rgba(233,239,231,0.30); border-radius:100px; color:var(--fg); background:rgba(233,239,231,0.03); font-family:'JetBrains Mono',monospace; font-size:13px; letter-spacing:0.12em; text-transform:uppercase; transition:background .3s ease, color .3s ease, border-color .3s ease, transform .35s ease;}
.btn-ghost:hover{background:var(--fg); color:var(--bg); border-color:var(--fg); transform:translateY(-3px);}
.btn-text{display:inline-flex; align-items:center; gap:9px; font-family:'JetBrains Mono',monospace; font-size:12px; letter-spacing:0.14em; text-transform:uppercase; color:var(--accent); transition:gap .3s ease, opacity .3s ease;}
.btn-text:hover{gap:15px; opacity:.82;}

/* ------------------------------------------------------- PROSE BODY --- */
.prose{max-width:720px; display:flex; flex-direction:column; gap:22px;}
.prose.wide{max-width:100%;}
.prose p,.prose li{font-size:clamp(15px,1.08vw,17px); line-height:1.8; color:var(--muted);}
.prose h2{font-family:'Archivo',sans-serif; font-weight:900; text-transform:uppercase; font-size:clamp(23px,2.8vw,36px); line-height:1.06; letter-spacing:-0.02em; color:var(--fg); margin-top:16px;}
.prose h2 .serif{font-weight:400; font-style:italic; text-transform:none; color:var(--accent);}
.prose h3{font-family:'Archivo',sans-serif; font-weight:800; font-size:clamp(18px,1.8vw,23px); letter-spacing:-0.01em; color:var(--fg); margin-top:8px;}
.prose strong{color:var(--fg); font-weight:700;}
.prose a{color:var(--accent); text-decoration:underline; text-decoration-color:rgba(34,193,50,0.4); text-underline-offset:3px; transition:text-decoration-color .3s ease, color .3s ease;}
.prose a:hover{color:var(--accent2); text-decoration-color:var(--accent2);}
.prose ul{display:flex; flex-direction:column; gap:11px;}
.prose ul li{display:flex; gap:12px;}
.prose ul li::before{content:''; flex:0 0 auto; width:6px; height:6px; margin-top:11px; border-radius:50%; background:var(--accent); box-shadow:0 0 10px rgba(34,193,50,0.5);}
.prose ol{display:flex; flex-direction:column; gap:11px; counter-reset:s;}
.prose ol li{display:flex; gap:14px; counter-increment:s;}
.prose ol li::before{content:counter(s,decimal-leading-zero); flex:0 0 auto; font-family:'JetBrains Mono',monospace; font-size:12px; color:var(--accent); padding-top:4px;}

/* ------------------------------------------------------- SPLIT GRID --- */
.split{display:grid; grid-template-columns:1.05fr 0.95fr; gap:clamp(28px,4vw,68px); align-items:center;}
.split.reverse .split-media{order:-1;}
.split-media{border-radius:16px; overflow:hidden; position:relative; box-shadow:0 28px 80px rgba(0,0,0,0.34);}
.split-media::before{content:''; position:absolute; inset:0; z-index:1; border:1px solid rgba(233,239,231,0.12); border-radius:inherit; pointer-events:none;}
.split-media img{width:100%; height:auto;}
@media (max-width:860px){ .split{grid-template-columns:1fr; gap:32px;} .split.reverse .split-media{order:0;} }

/* ---------------------------------------------------------- FEATURES --- */
.feats{display:grid; grid-template-columns:repeat(auto-fit,minmax(248px,1fr)); gap:clamp(14px,1.6vw,20px);}
.feat{display:flex; flex-direction:column; gap:11px; padding:clamp(22px,2.2vw,30px); border:1px solid var(--line); border-radius:16px; background:linear-gradient(180deg, rgba(233,239,231,0.04), rgba(233,239,231,0.015)); transition:transform .42s cubic-bezier(.16,.84,.44,1), border-color .4s ease, background .4s ease;}
.feat:hover{transform:translateY(-5px); border-color:rgba(34,193,50,0.34); background:linear-gradient(180deg, rgba(34,193,50,0.07), rgba(233,239,231,0.02));}
.feat .n{font-family:'JetBrains Mono',monospace; font-size:11px; letter-spacing:0.2em; color:var(--accent);}
.feat h3{font-family:'Archivo',sans-serif; font-weight:800; font-size:18px; letter-spacing:-0.01em; color:var(--fg);}
.feat p{font-size:14px; line-height:1.65; color:var(--muted);}

/* --------------------------------------------------------- FACT ROW --- */
.facts{display:flex; flex-wrap:wrap; gap:clamp(24px,3.4vw,52px);}
.facts .fact{display:flex; flex-direction:column; gap:6px;}
.facts .fact b{font-family:'Archivo',sans-serif; font-weight:800; font-size:16px; letter-spacing:0.02em;}
.facts .fact span{font-family:'JetBrains Mono',monospace; font-size:11px; letter-spacing:0.14em; text-transform:uppercase; color:var(--dim);}

/* -------------------------------------------------------- LOCATION --- */
.loc{display:grid; grid-template-columns:1fr 1fr; gap:clamp(20px,2.6vw,34px); align-items:start;}
.loc-card{position:relative; overflow:hidden; display:flex; flex-direction:column; gap:2px; padding:clamp(24px,2.6vw,38px); border:1px solid rgba(34,193,50,0.3); border-radius:20px; background:radial-gradient(460px 300px at 100% 0%, rgba(34,193,50,0.14), transparent 60%), linear-gradient(180deg, rgba(17,21,17,0.88), rgba(9,11,9,0.94)); box-shadow:0 30px 90px rgba(0,0,0,0.4), inset 0 1px 0 rgba(255,255,255,0.05);}
.loc-card::before{content:''; position:absolute; left:0; top:18px; bottom:18px; width:3px; border-radius:3px; background:linear-gradient(180deg,var(--accent),var(--accent2)); box-shadow:0 0 18px rgba(34,193,50,0.55);}
.loc-head{display:flex; align-items:center; gap:10px; font-family:'JetBrains Mono',monospace; font-size:11px; letter-spacing:0.22em; text-transform:uppercase; color:var(--accent); padding-bottom:8px;}
.loc-head::before{content:''; flex:0 0 auto; width:7px; height:7px; border-radius:50%; background:var(--accent); box-shadow:0 0 14px var(--accent);}
.loc-row{position:relative; padding:16px 0; border-bottom:1px solid rgba(233,239,231,0.1); display:block; transition:padding-left .35s ease;}
.loc-row:last-of-type{border-bottom:0;}
a.loc-row:hover{padding-left:10px;}
.loc-label{font-family:'JetBrains Mono',monospace; font-size:11px; letter-spacing:0.16em; text-transform:uppercase; color:var(--accent); margin-bottom:8px; display:flex; justify-content:space-between; align-items:center; gap:12px;}
.loc-label.dim{color:var(--dim);}
.loc-label .open{display:inline-flex; align-items:center; gap:4px; flex:0 0 auto; color:var(--accent); font-size:10px; letter-spacing:0.1em; padding:4px 10px; border:1px solid rgba(34,193,50,0.34); border-radius:100px; background:rgba(34,193,50,0.06); transition:background .3s ease, color .3s ease, border-color .3s ease;}
a.loc-row:hover .open{background:var(--accent); color:#0a0c0a; border-color:var(--accent);}
.loc-val{font-size:clamp(15px,1.05vw,17px); font-weight:600; color:var(--fg); line-height:1.6;}
.loc-val a{color:var(--fg); transition:color .3s ease;}
.loc-val a:hover{color:var(--accent);}
.loc-val .sub{display:block; margin-top:5px; font-family:'JetBrains Mono',monospace; font-size:11px; font-weight:400; letter-spacing:0.1em; text-transform:uppercase; color:var(--dim);}
.loc-actions{display:flex; flex-wrap:wrap; gap:12px; padding-top:22px;}
.loc-actions .btn-solid,.loc-actions .btn-ghost{padding:14px 24px; font-size:12px;}
@media (max-width:860px){ .loc{grid-template-columns:1fr;} }

/* --------------------------------------------------- MEDIA / GALLERY --- */
.shots{display:grid; grid-template-columns:repeat(auto-fit,minmax(210px,1fr)); gap:clamp(12px,1.4vw,18px);}
.shot{overflow:hidden; border-radius:12px; position:relative; background:var(--card); box-shadow:0 24px 70px rgba(0,0,0,0.22); aspect-ratio:3/4;}
.shot::before{content:''; position:absolute; inset:0; z-index:1; border:1px solid rgba(233,239,231,0.12); border-radius:inherit; pointer-events:none; transition:border-color .4s ease;}
.shot:hover::before{border-color:rgba(34,193,50,0.38);}
.shot img{width:100%; height:100%; object-fit:cover; transition:transform .8s cubic-bezier(.16,.84,.44,1);}
.shot:hover img{transform:scale(1.05);}
.shot.wide{aspect-ratio:4/3;}
@media (hover:none){ .shot:hover img{transform:none;} }

/* ------------------------------------------------------ LINK CARDS --- */
.linkcards{display:grid; grid-template-columns:repeat(auto-fit,minmax(238px,1fr)); gap:clamp(14px,1.6vw,20px);}
.linkcard{position:relative; overflow:hidden; display:flex; flex-direction:column; justify-content:flex-end; gap:8px; min-height:250px; padding:24px; border-radius:14px; background:var(--card); box-shadow:0 24px 80px rgba(0,0,0,0.24); transition:transform .45s cubic-bezier(.16,.84,.44,1), box-shadow .45s ease;}
.linkcard::after{content:''; position:absolute; inset:0; border:1px solid rgba(233,239,231,0.12); border-radius:inherit; pointer-events:none; transition:border-color .4s ease;}
.linkcard img{position:absolute; inset:0; width:100%; height:100%; object-fit:cover; filter:brightness(0.78); transition:transform .8s cubic-bezier(.16,.84,.44,1);}
.linkcard .grad{position:absolute; inset:0; background:linear-gradient(180deg, rgba(10,12,10,0.1) 0%, transparent 32%, rgba(10,12,10,0.96) 100%);}
.linkcard:hover{transform:translateY(-7px); box-shadow:0 34px 90px rgba(0,0,0,0.34);}
.linkcard:hover img{transform:scale(1.06);}
.linkcard:hover::after{border-color:rgba(34,193,50,0.42);}
.linkcard h3,.linkcard p,.linkcard .n{position:relative; z-index:2;}
.linkcard .n{font-family:'JetBrains Mono',monospace; font-size:11px; letter-spacing:0.14em; color:var(--accent);}
.linkcard h3{font-family:'Archivo',sans-serif; font-weight:800; font-size:20px; text-transform:uppercase; letter-spacing:-0.01em;}
.linkcard p{font-size:13.5px; line-height:1.5; color:#c2bcb0;}
@media (hover:none){ .linkcard:hover img{transform:none;} }

/* -------------------------------------------------------- INSTRUCTORS --- */
.team{display:grid; grid-template-columns:repeat(auto-fit,minmax(248px,1fr)); gap:clamp(14px,1.6vw,22px);}
.member{position:relative; display:flex; flex-direction:column; gap:16px; padding:12px; border:1px solid rgba(233,239,231,0.1); border-radius:18px; background:rgba(233,239,231,0.025); transition:transform .45s cubic-bezier(.16,.84,.44,1), border-color .4s ease, background .4s ease;}
.member:hover{transform:translateY(-6px); border-color:rgba(34,193,50,0.32); background:rgba(34,193,50,0.045);}
.member .photo{overflow:hidden; border-radius:12px; aspect-ratio:4/5;}
.member .photo img{width:100%; height:100%; object-fit:cover; transition:transform .8s ease; filter:grayscale(0.15);}
.member:hover .photo img{transform:scale(1.05);}
.member-body{display:flex; flex-direction:column; gap:7px; padding:0 6px 8px;}
.member h3{font-family:'Archivo',sans-serif; font-weight:800; font-size:20px; text-transform:uppercase; letter-spacing:-0.01em;}
.member .role{font-family:'JetBrains Mono',monospace; font-size:11px; letter-spacing:0.16em; text-transform:uppercase; color:var(--accent);}
.member p{font-size:14px; line-height:1.6; color:var(--muted);}
.creds{display:flex; flex-direction:column; gap:8px; margin:4px 0 0; padding-top:12px; border-top:1px solid rgba(233,239,231,0.1);}
.creds > div{display:flex; gap:10px;}
.creds dt{flex:0 0 78px; font-family:'JetBrains Mono',monospace; font-size:10px; letter-spacing:0.14em; text-transform:uppercase; color:var(--dim); padding-top:2px;}
.creds dd{margin:0; font-size:13px; line-height:1.55; color:var(--muted);}
@media (hover:none){ .member:hover .photo img{transform:none;} }

/* --------------------------------------------------------------- FAQ --- */
.faq-grid{display:grid; grid-template-columns:repeat(12,1fr); gap:clamp(26px,4vw,60px); align-items:start;}
.faq-aside{grid-column:span 5; display:flex; flex-direction:column; gap:20px; position:sticky; top:118px;}
.faq-list{grid-column:span 7;}
.faq-item{border-bottom:1px solid rgba(233,239,231,0.12);}
.faq-q{display:flex; align-items:center; justify-content:space-between; gap:20px; width:100%; text-align:left; background:none; border:0; cursor:pointer; padding:24px 4px; color:var(--fg); font-family:'Archivo',sans-serif; font-weight:600; font-size:clamp(16px,1.5vw,21px); letter-spacing:-0.01em; transition:color .3s;}
.faq-q:hover{color:var(--accent);}
.faq-icon{flex:0 0 auto; width:22px; height:22px; position:relative; transition:transform .4s cubic-bezier(.16,.84,.44,1);}
.faq-icon::before,.faq-icon::after{content:''; position:absolute; background:var(--secondary);}
.faq-icon::before{top:50%; left:0; right:0; height:2px; transform:translateY(-50%);}
.faq-icon::after{left:50%; top:0; bottom:0; width:2px; transform:translateX(-50%);}
.faq-item.open .faq-icon{transform:rotate(135deg);}
.faq-a{max-height:0; overflow:hidden; transition:max-height .5s cubic-bezier(.16,.84,.44,1), opacity .4s ease, padding .4s ease; opacity:0;}
.faq-item.open .faq-a{max-height:560px; opacity:1; padding-bottom:24px;}
.faq-a p{max-width:600px; font-size:15px; line-height:1.75; color:var(--muted);}
.faq-a p+p{margin-top:10px;}
.faq-a a{color:var(--accent); font-weight:600; text-decoration:underline; text-decoration-color:rgba(34,193,50,0.4); text-underline-offset:3px; transition:text-decoration-color .3s ease, color .3s ease;}
.faq-a a:hover{color:var(--accent2); text-decoration-color:var(--accent2);}
@media (max-width:900px){
  .faq-grid{grid-template-columns:1fr;}
  .faq-aside{position:static; grid-column:1 / -1;}
  .faq-list{grid-column:1 / -1;}
}

/* ------------------------------------------------------------ NOTE --- */
.note-box{display:flex; gap:14px; padding:20px 22px; border:1px solid rgba(233,239,231,0.14); border-left:3px solid var(--accent); border-radius:12px; background:rgba(233,239,231,0.03);}
.note-box svg{flex:0 0 auto; width:20px; height:20px; stroke:var(--accent); fill:none; stroke-width:2; stroke-linecap:round; stroke-linejoin:round; margin-top:2px;}
.note-box p{font-size:14px; line-height:1.7; color:var(--muted);}
.note-box a{color:var(--accent); text-decoration:underline; text-underline-offset:3px;}

/* -------------------------------------------------------- CTA BAND --- */
.cta-band{position:relative; overflow:hidden; border-top:1px solid var(--line);}
.cta-band-bg{position:absolute; inset:0; background-size:cover; background-position:center;}
.cta-band-grad{position:absolute; inset:0; background:linear-gradient(180deg, rgba(10,12,10,0.86) 0%, rgba(10,12,10,0.93) 100%);}
.cta-band-inner{position:relative; z-index:2; display:flex; flex-direction:column; align-items:center; text-align:center; gap:22px; padding:clamp(64px,11vh,132px) clamp(20px,5vw,72px);}
.cta-band h2{font-family:'Archivo',sans-serif; font-weight:900; text-transform:uppercase; font-size:clamp(30px,5vw,72px); line-height:0.94; letter-spacing:-0.03em; text-wrap:balance;}
.cta-band h2 .serif{font-weight:400; font-style:italic; text-transform:none; color:var(--accent);}
.cta-band p{max-width:480px; font-size:clamp(15px,1.1vw,17px); line-height:1.7; color:#cfc9bd;}
.cta-band .free{display:inline-flex; align-items:center; gap:8px; padding:7px 14px; border-radius:100px; background:rgba(34,193,50,0.16); border:1px solid rgba(34,193,50,0.4); font-family:'JetBrains Mono',monospace; font-size:10px; letter-spacing:0.18em; text-transform:uppercase; color:var(--accent);}
.cta-actions{display:flex; flex-wrap:wrap; justify-content:center; gap:14px;}
@media (max-width:640px){ .cta-actions{flex-direction:column; align-items:stretch; width:100%; max-width:360px;} }

/* ------------------------------------------------------------ BLOG --- */
.post-grid{display:grid; grid-template-columns:repeat(auto-fit,minmax(288px,1fr)); gap:clamp(16px,1.8vw,24px);}
.post-card{display:flex; flex-direction:column; border:1px solid var(--line); border-radius:18px; overflow:hidden; background:var(--card); transition:border-color .35s ease, transform .4s cubic-bezier(.16,.84,.44,1);}
.post-card:hover{border-color:rgba(34,193,50,0.4); transform:translateY(-5px);}
.post-thumb{aspect-ratio:16/10; overflow:hidden; background:var(--bg2);}
.post-thumb img{width:100%; height:100%; object-fit:cover; transition:transform .8s cubic-bezier(.16,.84,.44,1);}
.post-card:hover .post-thumb img{transform:scale(1.05);}
.post-body{display:flex; flex-direction:column; gap:11px; padding:clamp(20px,2.2vw,28px); flex:1;}
.post-tag{font-family:'JetBrains Mono',monospace; font-size:10px; letter-spacing:0.24em; text-transform:uppercase; color:var(--accent);}
.post-body h2,.post-body h3{font-family:'Archivo',sans-serif; font-weight:800; font-size:clamp(18px,1.8vw,23px); line-height:1.14; letter-spacing:-0.01em; color:var(--fg); text-wrap:balance;}
.post-body p{font-size:14px; line-height:1.65; color:var(--muted);}
.post-meta{margin-top:auto; padding-top:14px; font-family:'JetBrains Mono',monospace; font-size:10px; letter-spacing:0.16em; text-transform:uppercase; color:var(--dim);}
@media (hover:none){ .post-card:hover .post-thumb img{transform:none;} }

/* --------------------------------------------------------- ARTICLE --- */
.article-head{max-width:860px; margin:0 auto; display:flex; flex-direction:column; gap:20px; padding:clamp(116px,15vh,172px) clamp(20px,5vw,72px) clamp(26px,4vh,42px);}
.article-head h1{font-family:'Archivo',sans-serif; font-weight:900; font-size:clamp(29px,4.4vw,55px); line-height:1.04; letter-spacing:-0.025em; text-wrap:balance;}
.article-head h1 .serif{font-weight:400; font-style:italic; color:var(--accent);}
.article-meta{display:flex; flex-wrap:wrap; gap:8px 18px; font-family:'JetBrains Mono',monospace; font-size:11px; letter-spacing:0.16em; text-transform:uppercase; color:var(--dim);}
.article-cover{max-width:1180px; margin:0 auto; padding:0 clamp(20px,5vw,72px);}
.article-cover figure{margin:0; border-radius:18px; overflow:hidden; position:relative; box-shadow:0 30px 90px rgba(0,0,0,0.36);}
.article-cover img{width:100%; height:auto; aspect-ratio:16/9; object-fit:cover;}
.article-body{max-width:860px; margin:0 auto; padding:clamp(38px,5.5vh,68px) clamp(20px,5vw,72px);}
.toc{display:flex; flex-direction:column; gap:12px; padding:22px 24px; border:1px solid var(--line); border-radius:16px; background:rgba(233,239,231,0.03);}
.toc .lbl{font-family:'JetBrains Mono',monospace; font-size:10px; letter-spacing:0.24em; text-transform:uppercase; color:var(--dim);}
.toc ol{display:flex; flex-direction:column; gap:9px; counter-reset:t;}
.toc li{counter-increment:t; display:flex; gap:12px; font-size:14.5px; line-height:1.5;}
.toc li::before{content:counter(t,decimal-leading-zero); font-family:'JetBrains Mono',monospace; font-size:11px; color:var(--accent); padding-top:3px;}
.toc a{color:var(--muted); transition:color .3s ease;}
.toc a:hover{color:var(--accent);}

/* ------------------------------------------------------- REL LINKS --- */
.rel{display:grid; grid-template-columns:repeat(auto-fit,minmax(228px,1fr)); gap:12px;}
.rel a{display:flex; flex-direction:column; gap:6px; padding:20px 22px; border:1px solid var(--line); border-radius:14px; background:rgba(233,239,231,0.028); transition:border-color .35s ease, background .35s ease, transform .35s ease;}
.rel a:hover{border-color:rgba(34,193,50,0.4); background:rgba(34,193,50,0.06); transform:translateY(-3px);}
.rel .k{font-family:'JetBrains Mono',monospace; font-size:10px; letter-spacing:0.2em; text-transform:uppercase; color:var(--accent);}
.rel .t{font-family:'Archivo',sans-serif; font-weight:700; font-size:16px; letter-spacing:-0.01em; color:var(--fg);}
.rel .d{font-size:13px; line-height:1.55; color:var(--muted);}

/* ---------------------------------------------------------- DIVIDER --- */
.brand-divider{position:relative; overflow:hidden; padding:clamp(22px,4vh,52px) 0; text-align:center; user-select:none;}
.brand-divider::before,.brand-divider::after{content:''; position:absolute; top:50%; width:min(24vw,260px); height:1px; background:linear-gradient(90deg, transparent, rgba(34,193,50,0.45), transparent);}
.brand-divider::before{left:0;} .brand-divider::after{right:0;}
.brand-divider span{display:inline-block; font-family:'Archivo',sans-serif; font-weight:900; font-size:clamp(28px,6vw,78px); line-height:0.9; letter-spacing:-0.02em; color:transparent; -webkit-text-stroke:1px rgba(233,239,231,0.14); text-transform:uppercase; white-space:nowrap;}
.brand-divider.alt span{font-style:italic; font-family:'Instrument Serif',serif; -webkit-text-stroke:1px rgba(34,193,50,0.34); text-transform:none; font-size:clamp(26px,5vw,64px);}

/* ----------------------------------------------------------- FOOTER --- */
footer{padding:clamp(56px,8vh,90px) clamp(20px,5vw,72px) 36px; background:var(--bg); border-top:1px solid rgba(233,239,231,0.12);}
.foot-top{display:flex; flex-wrap:wrap; justify-content:space-between; gap:40px; margin-bottom:clamp(36px,5vh,64px);}
.foot-brand{display:flex; flex-direction:column; gap:16px; max-width:300px;}
.foot-brand .logo{display:inline-flex; align-items:center; gap:12px; font-family:'Archivo',sans-serif; font-weight:900; font-size:24px; letter-spacing:0.14em;}
.foot-brand .logo img{height:40px; width:auto; display:block;}
.foot-brand .logo span{color:var(--accent);}
.foot-brand p{font-size:14px; line-height:1.7; color:var(--dim);}
.foot-cols{display:flex; gap:clamp(30px,4.4vw,68px); flex-wrap:wrap;}
.foot-col{display:flex; flex-direction:column; gap:13px;}
.foot-col .lbl{font-family:'JetBrains Mono',monospace; font-size:11px; letter-spacing:0.18em; text-transform:uppercase; color:#5c5b56;}
.foot-col a{font-size:14px; color:var(--muted); transition:color .3s;}
.foot-col a:hover{color:var(--fg);}
.foot-big{font-family:'Archivo',sans-serif; font-weight:900; font-size:clamp(48px,16vw,230px); line-height:0.8; letter-spacing:-0.02em; color:transparent; -webkit-text-stroke:1px rgba(233,239,231,0.13); text-transform:uppercase; user-select:none; margin-bottom:24px;}
.foot-bottom{display:flex; flex-wrap:wrap; justify-content:space-between; gap:14px; padding-top:24px; border-top:1px solid rgba(233,239,231,0.1); font-family:'JetBrains Mono',monospace; font-size:11px; letter-spacing:0.1em; color:#5c5b56;}
@media (max-width:640px){ .foot-top{flex-direction:column; gap:34px;} }

/* -------------------------------------------------------------- 404 --- */
.err{min-height:100svh; display:flex; flex-direction:column; align-items:center; justify-content:center; text-align:center; gap:22px; padding:130px clamp(20px,5vw,72px) 90px;}
.err .code{font-family:'Archivo',sans-serif; font-weight:900; font-size:clamp(78px,19vw,230px); line-height:0.8; letter-spacing:-0.04em; color:transparent; -webkit-text-stroke:1px rgba(34,193,50,0.4);}
.err h1{font-family:'Archivo',sans-serif; font-weight:900; text-transform:uppercase; font-size:clamp(27px,4.2vw,52px); line-height:1; letter-spacing:-0.02em;}
.err h1 .serif{font-weight:400; font-style:italic; text-transform:none; color:var(--accent);}
.err p{max-width:440px; font-size:15px; line-height:1.7; color:var(--muted);}

/* ------------------------------------------------------- RESPONSIVE --- */
@media (max-width:640px){
  #nav-links{display:none;}
  #burger{display:flex;}
}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.001ms !important; animation-iteration-count:1 !important; transition-duration:.001ms !important; scroll-behavior:auto !important;}
  [data-reveal]{opacity:1 !important; transform:none !important;}
  .phero-inner > *{opacity:1 !important; transform:none !important; filter:none !important;}
}
