/* =========================================================
   VITÓRIA STRONG — Design System
   ========================================================= */

:root{
  /* Colors */
  --p-50:#EAF8EC; --p-100:#CFEFD6; --p-200:#A5DFB1; --p-300:#7ACE8B;
  --p-400:#57C56C; --p-500:#41B954; --p-600:#35A346; --p-700:#2B8439;
  --p-800:#23682F; --p-900:#1B5024;

  --s-500:#FFFFFF; --s-600:#E8E8E8; --s-700:#CFCFCF;

  --bg-primary:#0F1114; --bg-secondary:#171A1F; --bg-elevated:#1D2128; --bg-card:#222730;

  --text-primary:#FFFFFF; --text-secondary:#B6BDC8; --text-muted:#7C8795; --text-disabled:#505A66;

  --accent-electric:#41B954; --accent-glow:#67E87C; --accent-success:#3FCF5F;

  --border-subtle:#2B313A; --border-strong:#39424D;

  /* Typography */
  --font-heading:'Space Grotesk', sans-serif;
  --font-body:'Inter', sans-serif;

  --fs-xs:12px; --fs-sm:14px; --fs-md:16px; --fs-lg:18px; --fs-xl:20px;
  --fs-2xl:24px; --fs-3xl:32px; --fs-4xl:40px; --fs-5xl:52px; --fs-6xl:64px; --fs-hero:80px;

  --fw-regular:400; --fw-medium:500; --fw-semibold:600; --fw-bold:700; --fw-extrabold:800;

  --ls-tight:-0.03em; --ls-normal:0; --ls-wide:0.06em;

  /* Spacing */
  --sp-1:4px; --sp-2:8px; --sp-3:12px; --sp-4:16px; --sp-5:24px; --sp-6:32px;
  --sp-7:40px; --sp-8:48px; --sp-9:64px; --sp-10:80px; --sp-11:96px; --sp-12:128px;

  /* Radius */
  --r-sm:6px; --r-md:10px; --r-lg:14px; --r-xl:18px; --r-full:999px;

  /* Shadows */
  --sh-sm:0 2px 8px rgba(0,0,0,0.18);
  --sh-md:0 8px 24px rgba(0,0,0,0.28);
  --sh-lg:0 20px 48px rgba(0,0,0,0.40);
  --sh-glow:0 0 24px rgba(65,185,84,0.28);

  /* Motion */
  --m-fast:150ms; --m-normal:300ms; --m-slow:500ms; --m-hero:700ms;

  --container: 1240px;
}

*,*::before,*::after{ box-sizing:border-box; margin:0; padding:0; }

html{ scroll-behavior:smooth; }

body{
  background-color:var(--bg-primary);
  background-image:
    linear-gradient(rgba(15,17,20,0.72), rgba(15,17,20,0.72)),
    url('../img/bg-texture.png');
  background-repeat:repeat;
  background-size:1400px auto;
  color:var(--text-primary);
  font-family:var(--font-body);
  font-size:var(--fs-md);
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}

@media(min-width:900px){
  body{ background-attachment:fixed; }
}

img{ max-width:100%; display:block; }

a{ color:inherit; text-decoration:none; }

ul{ list-style:none; }

button{ font-family:inherit; cursor:pointer; border:none; background:none; color:inherit; }

input, textarea{ font-family:inherit; }

.container{
  max-width:var(--container);
  margin-inline:auto;
  padding-inline: var(--sp-5);
}

h1,h2,h3,h4{
  font-family:var(--font-heading);
  font-weight:var(--fw-bold);
  letter-spacing:var(--ls-tight);
  text-transform:uppercase;
  line-height:1.08;
}

section{ position:relative; }

.section-pad{ padding-block: var(--sp-10); }
@media(min-width:900px){ .section-pad{ padding-block: var(--sp-12); } }

.eyebrow{
  font-family:var(--font-body);
  font-size:var(--fs-xs);
  letter-spacing:var(--ls-wide);
  text-transform:uppercase;
  color:var(--p-500);
  font-weight:var(--fw-semibold);
  display:inline-flex;
  align-items:center;
  gap:var(--sp-2);
  margin-bottom:var(--sp-3);
}
.eyebrow::before{
  content:"";
  width:24px; height:2px;
  background:var(--p-500);
  display:inline-block;
}

.section-head{
  display:flex;
  flex-wrap:wrap;
  justify-content:space-between;
  align-items:flex-end;
  gap:var(--sp-4);
  margin-bottom:var(--sp-8);
}
.section-head h2{ font-size:clamp(var(--fs-3xl), 4vw, var(--fs-5xl)); max-width:640px; }

.view-all{
  display:inline-flex;
  align-items:center;
  gap:var(--sp-2);
  font-weight:var(--fw-semibold);
  font-size:var(--fs-sm);
  color:var(--text-primary);
  border-bottom:1px solid var(--border-strong);
  padding-bottom:4px;
  white-space:nowrap;
  transition:color var(--m-normal), border-color var(--m-normal);
}
.view-all:hover{ color:var(--p-500); border-color:var(--p-500); }
.view-all svg{ transition:transform var(--m-normal); }
.view-all:hover svg{ transform:translateX(4px); }

/* ---------- Buttons ---------- */
.btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:var(--sp-2);
  padding: var(--sp-4) var(--sp-6);
  border-radius:var(--r-md);
  font-weight:var(--fw-semibold);
  font-size:var(--fs-sm);
  letter-spacing:var(--ls-normal);
  transition: box-shadow var(--m-normal) ease, transform var(--m-normal) ease, background var(--m-normal) ease, color var(--m-normal) ease, border-color var(--m-normal) ease;
  white-space:nowrap;
}
.btn-primary{
  background:var(--p-500);
  color:#0F1114;
  box-shadow: 0 0 0 rgba(65,185,84,0);
}
.btn-primary:hover{
  background:var(--p-400);
  box-shadow:var(--sh-glow);
  transform:translateY(-2px);
}
.btn-ghost{
  background:transparent;
  color:var(--text-primary);
  border:1px solid var(--border-strong);
}
.btn-ghost:hover{
  border-color:var(--p-500);
  color:var(--p-500);
  box-shadow:0 0 16px rgba(65,185,84,.18);
}
.btn-lg{ padding: var(--sp-4) var(--sp-7); font-size:var(--fs-md); }
.btn-block{ width:100%; }

/* ---------- Header ---------- */
.site-header{
  position:fixed;
  top:0; left:0; right:0;
  z-index:100;
  background:rgba(15,17,20,0.75);
  backdrop-filter: blur(12px);
  border-bottom:1px solid transparent;
  transition: border-color var(--m-normal), background var(--m-normal);
}
.site-header.scrolled{
  border-bottom-color: var(--border-subtle);
  background:rgba(15,17,20,0.92);
}
.header-inner{
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding-block: var(--sp-4);
}
.logo{
  display:flex;
  align-items:center;
  gap:var(--sp-2);
  font-family:var(--font-heading);
  font-weight:var(--fw-bold);
  font-size:var(--fs-lg);
  letter-spacing:var(--ls-wide);
  text-transform:uppercase;
}
.logo img{
  height:28px;
  width:auto;
}
@media(min-width:960px){
  .logo img{ height:34px; }
}
.logo .dot{
  width:10px; height:10px;
  background:var(--p-500);
  border-radius:var(--r-full);
  box-shadow:0 0 12px var(--accent-glow);
}
.main-nav{
  display:none;
  align-items:center;
  gap:var(--sp-6);
}
.main-nav a{
  font-size:var(--fs-sm);
  font-weight:var(--fw-medium);
  color:var(--text-secondary);
  position:relative;
  transition:color var(--m-normal);
}
.main-nav a:hover{ color:var(--text-primary); }
.main-nav a::after{
  content:"";
  position:absolute; left:0; bottom:-6px;
  width:0; height:2px; background:var(--p-500);
  transition:width var(--m-normal);
}
.main-nav a:hover::after{ width:100%; }

.header-cta{ display:none; }

.nav-toggle{
  width:44px; height:44px;
  display:flex; align-items:center; justify-content:center;
  border:1px solid var(--border-subtle);
  border-radius:var(--r-md);
}
.nav-toggle span, .nav-toggle span::before, .nav-toggle span::after{
  content:""; display:block; width:18px; height:2px; background:var(--text-primary);
  position:relative; transition:transform var(--m-normal), opacity var(--m-normal);
}
.nav-toggle span::before{ position:absolute; top:-6px; }
.nav-toggle span::after{ position:absolute; top:6px; }

@media(min-width:960px){
  .main-nav{ display:flex; }
  .header-cta{ display:inline-flex; }
  .nav-toggle{ display:none; }
}

.mobile-menu{
  position:fixed; inset:0; top:0;
  background:var(--bg-primary);
  z-index:99;
  padding: calc(var(--sp-9)) var(--sp-5) var(--sp-8);
  display:flex; flex-direction:column; gap:var(--sp-6);
  transform:translateY(-100%);
  transition: transform var(--m-slow) cubic-bezier(.22,.61,.36,1);
}
.mobile-menu.open{ transform:translateY(0); }
.mobile-menu .mobile-link{
  font-family:var(--font-heading);
  font-size:var(--fs-3xl);
  text-transform:uppercase;
  font-weight:var(--fw-bold);
}
.mobile-menu .btn{ margin-top:var(--sp-4); }

/* ---------- Hero ---------- */
.hero{
  padding-top: calc(var(--sp-11) + var(--sp-8));
  padding-bottom: var(--sp-9);
  background:
    radial-gradient(60% 50% at 85% 15%, rgba(65,185,84,0.14), transparent 70%),
    var(--bg-primary);
  overflow:hidden;
}
.hero-grid{
  display:grid;
  gap:var(--sp-8);
  align-items:center;
}
@media(min-width:1000px){
  .hero-grid{ grid-template-columns: 1.1fr 0.9fr; gap:var(--sp-9); }
}
.hyrox-badge{
  display:inline-flex;
  align-items:center;
  gap:var(--sp-2);
  background:rgba(65,185,84,.12);
  border:1px solid var(--p-700);
  color:var(--p-400);
  font-size:var(--fs-xs);
  font-weight:var(--fw-semibold);
  letter-spacing:var(--ls-wide);
  text-transform:uppercase;
  padding: var(--sp-2) var(--sp-4);
  border-radius:var(--r-full);
  margin-bottom:var(--sp-4);
}
.hero-content h1{
  font-size:clamp(var(--fs-4xl), 7vw, var(--fs-hero));
  margin-bottom:var(--sp-5);
}
.hero-content h1 .accent{ color:var(--p-500); }
.hero-content p{
  color:var(--text-secondary);
  font-size:var(--fs-lg);
  max-width:480px;
  margin-bottom:var(--sp-6);
}
.hero-actions{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:var(--sp-5);
  margin-bottom:var(--sp-8);
}
.hero-media{
  position:relative;
  border-radius:var(--r-xl);
  overflow:hidden;
  aspect-ratio: 4/5;
}
.hero-media img,
.hero-media .hero-video{
  width:100%; height:100%; object-fit:cover;
}
.hero-media .hero-video{
  position:absolute;
  inset:0;
  z-index:-1;
  background:var(--bg-elevated);
}
.hero-media::after{
  content:"";
  position:absolute; inset:0;
  background:linear-gradient(180deg, rgba(15,17,20,0) 50%, rgba(15,17,20,.55) 100%);
}
.hero-stats{
  position:absolute;
  right:var(--sp-4); top:var(--sp-5);
  display:flex; flex-direction:column; gap:var(--sp-3);
  z-index:2;
}
.stat-chip{
  background:rgba(15,17,20,0.7);
  backdrop-filter: blur(8px);
  border:1px solid var(--border-subtle);
  border-radius:var(--r-md);
  padding: var(--sp-3) var(--sp-4);
  display:flex; align-items:center; gap:var(--sp-3);
  min-width:150px;
}
.stat-chip .icon{
  width:32px; height:32px;
  border-radius:var(--r-sm);
  background:rgba(65,185,84,.15);
  color:var(--p-500);
  display:flex; align-items:center; justify-content:center;
  flex-shrink:0;
}
.stat-chip strong{
  font-family:var(--font-heading);
  font-size:var(--fs-lg);
  display:block;
}
.stat-chip span{ font-size:var(--fs-xs); color:var(--text-muted); }

/* ---------- Marquee / feature bar ---------- */
.feature-bar{
  border-top:1px solid var(--border-subtle);
  border-bottom:1px solid var(--border-subtle);
  padding-block:var(--sp-8);
}
.feature-grid{
  display:grid;
  grid-template-columns: repeat(2,1fr);
  gap:var(--sp-6);
}
@media(min-width:760px){ .feature-grid{ grid-template-columns:repeat(4,1fr); } }
.feature-item{
  display:flex; align-items:flex-start; gap:var(--sp-4);
}
.feature-item .icon{
  width:48px; height:48px;
  border-radius:var(--r-md);
  background:var(--p-100);
  color:var(--p-800);
  display:flex; align-items:center; justify-content:center;
  flex-shrink:0;
}
.feature-item h4{
  font-family:var(--font-body);
  text-transform:none;
  font-weight:var(--fw-semibold);
  font-size:var(--fs-md);
  letter-spacing:0;
  margin-bottom:var(--sp-1);
}
.feature-item p{ font-size:var(--fs-sm); color:var(--text-muted); }

/* ---------- Programs ---------- */
.programs-grid{
  display:grid;
  grid-template-columns:1fr;
  gap:var(--sp-5);
}
@media(min-width:640px){ .programs-grid{ grid-template-columns:repeat(2,1fr); } }
@media(min-width:1080px){ .programs-grid{ grid-template-columns:repeat(4,1fr); } }

.program-card{
  background:var(--bg-card);
  border:1px solid var(--border-subtle);
  border-radius:var(--r-lg);
  overflow:hidden;
  transition: transform var(--m-normal), border-color var(--m-normal), box-shadow var(--m-normal);
}
.program-card:hover{
  transform:translateY(-6px);
  border-color:var(--border-strong);
  box-shadow:var(--sh-lg);
}
.program-media{ position:relative; aspect-ratio:4/3; overflow:hidden; }
.program-media img{ width:100%; height:100%; object-fit:cover; transition: transform var(--m-slow); }
.program-card:hover .program-media img{ transform:scale(1.06); }
.program-icon{
  position:absolute; left:var(--sp-4); bottom: calc(var(--sp-4) * -1);
  width:48px; height:48px;
  border-radius:var(--r-md);
  background:var(--p-500);
  color:#0F1114;
  display:flex; align-items:center; justify-content:center;
  box-shadow:var(--sh-glow);
}
.program-body{ padding: var(--sp-7) var(--sp-5) var(--sp-5); }
.program-body h3{
  font-size:var(--fs-lg);
  text-transform:none;
  letter-spacing:0;
  margin-bottom:var(--sp-2);
}
.program-body p{ color:var(--text-muted); font-size:var(--fs-sm); margin-bottom:var(--sp-4); }
.program-link{
  color:var(--p-500);
  font-weight:var(--fw-semibold);
  font-size:var(--fs-sm);
  display:inline-flex; align-items:center; gap:var(--sp-2);
}
.program-link svg{ transition:transform var(--m-normal); }
.program-link:hover svg{ transform:translateX(4px); }

/* ---------- HYROX affiliate strip ---------- */
.hyrox-affiliate-strip{
  display:flex;
  align-items:center;
  gap:var(--sp-3);
  background:var(--bg-elevated);
  border:1px solid var(--border-subtle);
  border-radius:var(--r-md);
  padding: var(--sp-4) var(--sp-5);
  margin-bottom:var(--sp-6);
  font-size:var(--fs-sm);
  color:var(--text-secondary);
}
.hyrox-affiliate-strip strong{ color:var(--text-primary); }
.hyrox-affiliate-icon{
  width:36px; height:36px;
  border-radius:var(--r-full);
  background:rgba(65,185,84,.15);
  color:var(--p-500);
  display:flex; align-items:center; justify-content:center;
  flex-shrink:0;
}

/* ---------- Modalities (Programs) ---------- */
.modalities-grid{ grid-template-columns:1fr; }
@media(min-width:760px){ .modalities-grid{ grid-template-columns:repeat(2,1fr); } }
@media(min-width:1080px){ .modalities-grid{ grid-template-columns:repeat(2,1fr); } }

.modality-card .program-media{ aspect-ratio:16/10; }

.hyrox-tag{
  position:absolute;
  top:var(--sp-4); right:var(--sp-4);
  background:#0F1114;
  color:var(--p-500);
  border:1px solid var(--p-600);
  font-size:var(--fs-xs);
  font-weight:var(--fw-semibold);
  letter-spacing:var(--ls-wide);
  text-transform:uppercase;
  padding: 6px 12px;
  border-radius:var(--r-full);
}

.modality-card .program-body p{ margin-bottom:var(--sp-3); }

.program-toggle{
  display:inline-flex;
  align-items:center;
  gap:var(--sp-2);
  color:var(--p-500);
  font-weight:var(--fw-semibold);
  font-size:var(--fs-sm);
}
.program-toggle .chev{ transition:transform var(--m-normal); }
.program-toggle[aria-expanded="true"] .chev{ transform:rotate(180deg); }
.program-toggle:hover{ color:var(--accent-glow); }

.program-detail{
  max-height:0;
  overflow:hidden;
  transition:max-height var(--m-normal) ease;
}
.program-detail-inner{ padding-top:var(--sp-4); }
.program-detail p{ color:var(--text-muted); font-size:var(--fs-sm); margin-bottom:var(--sp-3); }
.detail-list{
  display:flex;
  flex-direction:column;
  gap:var(--sp-2);
  margin-bottom:var(--sp-3);
}
.detail-list li{
  color:var(--text-secondary);
  font-size:var(--fs-sm);
  padding-left:var(--sp-5);
  position:relative;
}
.detail-list li::before{
  content:"";
  position:absolute; left:0; top:9px;
  width:6px; height:6px;
  border-radius:var(--r-full);
  background:var(--p-500);
}
.detail-list.numbered{ counter-reset:step; }
.detail-list.numbered li{ padding-left:var(--sp-7); }
.detail-list.numbered li::before{
  counter-increment:step;
  content:counter(step);
  width:20px; height:20px;
  border-radius:var(--r-full);
  background:var(--p-500);
  color:#0F1114;
  font-size:10px;
  font-weight:var(--fw-bold);
  display:flex; align-items:center; justify-content:center;
  top:1px;
}

/* ---------- Quote / stats block ---------- */
.quote-block{
  display:grid;
  gap:var(--sp-5);
  grid-template-columns:1fr;
}
@media(min-width:900px){ .quote-block{ grid-template-columns: 1.1fr 0.9fr; } }

.quote-media{
  position:relative;
  border-radius:var(--r-xl);
  overflow:hidden;
  min-height:320px;
  background:var(--bg-elevated);
}
.quote-media img{ width:100%; height:100%; object-fit:cover; position:absolute; inset:0; }
.quote-media-inner{
  position:relative; z-index:2;
  padding:var(--sp-7);
  height:100%;
  display:flex; flex-direction:column; justify-content:flex-end;
  background:linear-gradient(90deg, rgba(15,17,20,.85) 20%, rgba(15,17,20,.3) 80%);
}
.quote-media .eyebrow{ color:var(--accent-glow); }
.quote-media h2{ font-size:clamp(var(--fs-3xl), 4vw, var(--fs-4xl)); max-width:360px; margin-bottom:var(--sp-4); }
.quote-media p{ color:var(--text-secondary); max-width:360px; margin-bottom:var(--sp-5); font-size:var(--fs-sm); }

.stats-panel{
  background:var(--bg-secondary);
  border:1px solid var(--border-subtle);
  border-radius:var(--r-xl);
  padding:var(--sp-6);
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:var(--sp-5);
}
.stat-block{
  padding:var(--sp-5);
  background:var(--bg-elevated);
  border-radius:var(--r-md);
}
.stat-block .icon{
  width:40px; height:40px;
  border-radius:var(--r-sm);
  background:var(--p-100);
  color:var(--p-800);
  display:flex; align-items:center; justify-content:center;
  margin-bottom:var(--sp-4);
}
.stat-block strong{
  font-family:var(--font-heading);
  font-size:var(--fs-3xl);
  display:block;
  letter-spacing:var(--ls-tight);
}
.stat-block span{ font-size:var(--fs-xs); color:var(--text-muted); text-transform:uppercase; letter-spacing:var(--ls-wide); }

/* ---------- Testimonials ---------- */
.testimonial-track{
  display:grid;
  grid-template-columns:1fr;
  gap:var(--sp-5);
}
@media(min-width:760px){ .testimonial-track{ grid-template-columns:repeat(3,1fr); } }

.testimonial-card{
  background:var(--bg-card);
  border:1px solid var(--border-subtle);
  border-radius:var(--r-lg);
  padding:var(--sp-6);
}
.stars{ display:flex; gap:4px; color:var(--p-500); margin-bottom:var(--sp-4); }
.testimonial-card blockquote{
  color:var(--text-secondary);
  font-size:var(--fs-sm);
  margin-bottom:var(--sp-6);
}
.testimonial-author{ display:flex; align-items:center; gap:var(--sp-3); }
.testimonial-author img{ width:44px; height:44px; border-radius:var(--r-full); object-fit:cover; }
.testimonial-author strong{ font-size:var(--fs-sm); display:block; }
.testimonial-author span{ font-size:var(--fs-xs); color:var(--text-muted); }

/* ---------- FAQ ---------- */
.faq-wrap{ max-width:820px; margin-inline:auto; }
.faq-item{
  border-bottom:1px solid var(--border-subtle);
}
.faq-question{
  width:100%;
  display:flex; align-items:center; justify-content:space-between;
  gap:var(--sp-4);
  padding: var(--sp-6) 0;
  text-align:left;
  font-family:var(--font-heading);
  font-weight:var(--fw-semibold);
  font-size:var(--fs-lg);
  text-transform:none;
  letter-spacing:0;
  color:var(--text-primary);
}
.faq-question .plus{
  width:32px; height:32px;
  border-radius:var(--r-full);
  border:1px solid var(--border-strong);
  flex-shrink:0;
  display:flex; align-items:center; justify-content:center;
  position:relative;
  transition:transform var(--m-normal), border-color var(--m-normal);
}
.faq-question .plus::before, .faq-question .plus::after{
  content:""; position:absolute; background:var(--text-primary);
}
.faq-question .plus::before{ width:12px; height:2px; }
.faq-question .plus::after{ width:2px; height:12px; transition:opacity var(--m-normal); }
.faq-item.open .faq-question .plus{ border-color:var(--p-500); transform:rotate(180deg); }
.faq-item.open .faq-question .plus::after{ opacity:0; }
.faq-answer{
  max-height:0;
  overflow:hidden;
  transition: max-height var(--m-normal) ease;
}
.faq-answer p{ color:var(--text-muted); font-size:var(--fs-sm); padding-bottom:var(--sp-6); max-width:640px; }

/* ---------- Lead / final CTA ---------- */
.lead-section{
  background:var(--bg-secondary);
  border-radius:var(--r-xl);
  border:1px solid var(--border-subtle);
  overflow:hidden;
  display:grid;
  grid-template-columns:1fr;
}
@media(min-width:900px){ .lead-section{ grid-template-columns:1fr 1fr; } }
.lead-copy{ padding:var(--sp-8) var(--sp-6); }
@media(min-width:900px){ .lead-copy{ padding:var(--sp-10); } }
.lead-copy h2{ font-size:clamp(var(--fs-3xl), 4vw, var(--fs-4xl)); margin-bottom:var(--sp-4); }
.lead-copy p{ color:var(--text-secondary); margin-bottom:var(--sp-6); max-width:440px; }
.lead-list{ display:flex; flex-direction:column; gap:var(--sp-3); }
.lead-list li{ display:flex; align-items:center; gap:var(--sp-3); font-size:var(--fs-sm); color:var(--text-secondary); }
.lead-list .check{
  width:22px; height:22px; border-radius:var(--r-full);
  background:rgba(65,185,84,.15); color:var(--p-500);
  display:flex; align-items:center; justify-content:center; flex-shrink:0;
}

.lead-form{
  background:var(--bg-elevated);
  padding:var(--sp-8) var(--sp-6);
  display:flex; flex-direction:column; gap:var(--sp-4);
}
@media(min-width:900px){ .lead-form{ padding:var(--sp-10); } }
.form-row{ display:flex; flex-direction:column; gap:var(--sp-2); }
.form-row label{ font-size:var(--fs-xs); color:var(--text-muted); text-transform:uppercase; letter-spacing:var(--ls-wide); }
.form-row input, .form-row select{
  background:var(--bg-primary);
  border:1px solid var(--border-subtle);
  border-radius:var(--r-md);
  padding: var(--sp-4);
  color:var(--text-primary);
  font-size:var(--fs-md);
  transition:border-color var(--m-normal), box-shadow var(--m-normal);
}
.form-row input:focus, .form-row select:focus{
  outline:none;
  border-color:var(--p-500);
  box-shadow:0 0 0 3px rgba(65,185,84,.18);
}
.form-note{ font-size:var(--fs-xs); color:var(--text-muted); text-align:center; }

/* ---------- Newsletter strip ---------- */
.newsletter{
  background:var(--p-500);
  border-radius:var(--r-xl);
  padding: var(--sp-6);
  display:flex;
  flex-direction:column;
  gap:var(--sp-5);
}
@media(min-width:800px){
  .newsletter{ flex-direction:row; align-items:center; justify-content:space-between; }
}
.newsletter-copy{ display:flex; align-items:center; gap:var(--sp-4); color:#0F1114; }
.newsletter-copy .icon{
  width:48px; height:48px; border-radius:var(--r-full);
  background:#0F1114; color:var(--p-500);
  display:flex; align-items:center; justify-content:center; flex-shrink:0;
}
.newsletter-copy h4{ font-family:var(--font-heading); text-transform:uppercase; font-size:var(--fs-lg); }
.newsletter-copy p{ font-size:var(--fs-sm); font-weight:var(--fw-medium); }
.newsletter-form{
  display:flex;
  background:#0F1114;
  border-radius:var(--r-md);
  overflow:hidden;
  flex:1;
  max-width:440px;
}
.newsletter-form input{
  flex:1; border:none; background:transparent; padding:var(--sp-4); color:var(--text-primary); font-size:var(--fs-sm);
}
.newsletter-form input:focus{ outline:none; }
.newsletter-form button{
  background:var(--p-500); color:#0F1114; font-weight:var(--fw-semibold);
  padding:0 var(--sp-6); font-size:var(--fs-sm);
  transition:background var(--m-normal);
}
.newsletter-form button:hover{ background:var(--p-400); }

/* ---------- Footer ---------- */
.site-footer{
  background:var(--bg-secondary);
  border-top:1px solid var(--border-subtle);
  padding-top:var(--sp-10);
}
.footer-grid{
  display:grid;
  gap:var(--sp-7);
  grid-template-columns:1fr;
  padding-bottom:var(--sp-8);
}
@media(min-width:700px){ .footer-grid{ grid-template-columns:1.4fr 1fr 1fr; } }
@media(min-width:980px){ .footer-grid{ grid-template-columns:1.4fr 1fr 1fr 1fr; } }
.footer-brand{ text-align:center; }
.footer-logo{ width:100%; justify-content:center; }
.footer-logo img{ height:96px; width:auto; }
.footer-brand p{ color:var(--text-muted); font-size:var(--fs-sm); margin-block:var(--sp-4); max-width:320px; margin-inline:auto; }
.footer-brand .social-row{ justify-content:center; }
.social-row{ display:flex; gap:var(--sp-3); }
.social-row a{
  width:38px; height:38px; border-radius:var(--r-full);
  border:1px solid var(--border-subtle);
  display:flex; align-items:center; justify-content:center;
  transition:border-color var(--m-normal), color var(--m-normal), box-shadow var(--m-normal);
  color:var(--text-secondary);
}
.social-row a:hover{ border-color:var(--p-500); color:var(--p-500); box-shadow:var(--sh-glow); }
.footer-col h5{
  font-family:var(--font-body);
  text-transform:uppercase;
  font-size:var(--fs-xs);
  letter-spacing:var(--ls-wide);
  color:var(--text-muted);
  margin-bottom:var(--sp-4);
  font-weight:var(--fw-semibold);
}
.footer-col ul{ display:flex; flex-direction:column; gap:var(--sp-3); }
.footer-col a{ font-size:var(--fs-sm); color:var(--text-secondary); transition:color var(--m-normal); }
.footer-col a:hover{ color:var(--p-500); }
.footer-col li.contact-item{ display:flex; align-items:flex-start; gap:var(--sp-3); color:var(--text-secondary); font-size:var(--fs-sm); }
.footer-col li.contact-item svg{ flex-shrink:0; margin-top:2px; color:var(--p-500); }
.footer-bottom{
  border-top:1px solid var(--border-subtle);
  padding-block:var(--sp-5);
  display:flex; flex-wrap:wrap; gap:var(--sp-3);
  align-items:center; justify-content:space-between;
  font-size:var(--fs-xs); color:var(--text-muted);
}
.footer-bottom a{ color:var(--text-muted); }
.footer-bottom a:hover{ color:var(--p-500); }

/* ---------- WhatsApp float ---------- */
.wa-float{
  position:fixed;
  right:var(--sp-5); bottom:var(--sp-5);
  z-index:90;
  width:56px; height:56px;
  border-radius:var(--r-full);
  background:var(--p-500);
  color:#0F1114;
  display:flex; align-items:center; justify-content:center;
  box-shadow:var(--sh-md);
  transition: box-shadow var(--m-normal), transform var(--m-normal);
}
.wa-float:hover{ box-shadow:var(--sh-glow); transform:translateY(-3px); }

/* ---------- Reveal animation base states (GSAP controlled) ---------- */
.reveal-up{ opacity:0; transform:translateY(24px); }
.reveal-side{ opacity:0; transform:translateX(32px); }

@media (prefers-reduced-motion: reduce){
  .reveal-up, .reveal-side{ opacity:1 !important; transform:none !important; }
  html{ scroll-behavior:auto; }
}

/* ---------- Utility ---------- */
.text-center{ text-align:center; }
.mx-auto{ margin-inline:auto; }
.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;
}
