/* ============================================================
   Vista Agrotech — Design tokens & components
   ============================================================ */
:root{
  /* Campo Profundo — Dark Agritech (Agroland-inspired) */
  --cream:#10160E;       /* page base — deep olive black */
  --cream-2:#1A2317;     /* hover / soft surface */
  --cream-3:#243025;     /* elevated surface */
  --olive:#3A4A2B;
  --olive-deep:#0D130B;
  --olive-card:#1A2317;
  --sage:#3F5132;
  --sage-soft:#5B6B45;
  --yellow:#E8C547;
  --yellow-2:#F2D766;
  --yellow-deep:#B8962E;
  --gold:#E8C547;
  --gold-soft:#F2D766;
  --ink:#F1EFE7;         /* primary text on dark */
  --ink-2:#D5D2C4;
  --ink-soft:#8F9684;
  --line:rgba(255,255,255,.08);
  --white:#1A2317;       /* "card" surface remapped to dark */
  --surface-light:#FFFFFF; /* true white when needed */
  --radius-xl:28px;
  --radius-lg:20px;
  --radius-md:14px;
  --shadow-card:0 30px 70px -32px rgba(20,28,12,.55);
  --shadow-soft:0 12px 32px -18px rgba(20,28,12,.4);
  --shadow-gold:0 18px 40px -18px rgba(168,138,54,.55);
  --maxw:1280px;
  --font:"Epilogue","Hanken Grotesk",system-ui,sans-serif;
  --font-display:"Urbanist","Epilogue",system-ui,sans-serif;
  --mono:"Spline Sans Mono",ui-monospace,monospace;
}

*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{
  font-family:var(--font);
  background:var(--cream);
  color:var(--ink);
  -webkit-font-smoothing:antialiased;
  line-height:1.5;
  overflow-x:hidden;
}
img{display:block;max-width:100%}
.bgimg{background-size:cover;background-position:center;background-repeat:no-repeat}
a{color:inherit;text-decoration:none}
button{font-family:inherit;cursor:pointer;border:none;background:none}

.wrap{max-width:var(--maxw);margin:0 auto;padding:0 40px}
.section{padding:120px 0}

/* ---------- Typography ---------- */
.display,.h1,.h2,.h3{font-family:var(--font-display)}
.display{
  font-weight:800;
  letter-spacing:-.025em;
  line-height:.92;
}
.h1{font-size:clamp(40px,6vw,86px);font-weight:800;letter-spacing:-.03em}
.h2{font-size:clamp(34px,4.6vw,64px);font-weight:800;letter-spacing:-.025em;line-height:.98}
.h3{font-size:clamp(24px,2.4vw,34px);font-weight:700;letter-spacing:-.015em;line-height:1.05}
.lede{font-size:clamp(17px,1.4vw,20px);color:var(--ink-soft);line-height:1.6;max-width:58ch;font-weight:400}
.muted{color:var(--ink-soft)}

/* ---------- Badge pill ---------- */
.badge{
  display:inline-flex;align-items:center;gap:10px;
  font-size:11px;font-weight:700;letter-spacing:.22em;text-transform:uppercase;
  padding:10px 20px;border-radius:999px;
  border:1px solid var(--gold);color:var(--olive-deep);
  background:rgba(201,168,76,.08);white-space:nowrap;
  font-family:var(--font-display);
}
.badge::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--gold);box-shadow:0 0 0 4px rgba(201,168,76,.18)}
.badge--light{color:rgba(255,255,255,.95);border-color:rgba(226,201,122,.6);background:rgba(20,24,12,.25);backdrop-filter:blur(8px)}
.badge--light::before{background:var(--gold-soft);box-shadow:0 0 0 4px rgba(226,201,122,.2)}

/* ---------- Buttons ---------- */
.btn{
  display:inline-flex;align-items:center;gap:12px;
  font-weight:600;font-size:15px;letter-spacing:.005em;
  padding:16px 28px;border-radius:999px;
  transition:transform .25s ease,background .25s ease,box-shadow .25s ease,color .25s ease;
  white-space:nowrap;font-family:var(--font-display);
}
.btn .dot{width:7px;height:7px;border-radius:50%;background:currentColor;flex:none}
.btn--yellow{background:linear-gradient(180deg,var(--gold-soft),var(--gold));color:var(--olive-deep);box-shadow:var(--shadow-gold)}
.btn--yellow:hover{background:linear-gradient(180deg,var(--gold),var(--yellow-deep));color:#fff;transform:translateY(-2px);box-shadow:0 22px 46px -18px rgba(168,138,54,.7)}
.btn--olive{background:var(--olive-deep);color:#fff;box-shadow:var(--shadow-soft)}
.btn--olive:hover{background:var(--olive);transform:translateY(-2px);box-shadow:0 22px 46px -18px rgba(20,28,12,.6)}
.btn--ghost{border:1px solid var(--line);color:var(--ink);background:rgba(255,255,255,.5);backdrop-filter:blur(6px)}
.btn--ghost:hover{background:var(--white);border-color:var(--olive);color:var(--olive-deep);transform:translateY(-2px)}
.btn--ghost-light{border:1px solid rgba(226,201,122,.55);color:#fff;background:rgba(20,24,12,.25);backdrop-filter:blur(8px)}
.btn--ghost-light:hover{background:var(--gold);color:var(--olive-deep);border-color:var(--gold)}

.icon-btn{
  width:54px;height:54px;border-radius:50%;
  display:grid;place-items:center;flex:none;
  transition:transform .25s ease,background .25s ease;
}
.icon-btn--yellow{background:var(--yellow);color:var(--ink)}
.icon-btn--yellow:hover{transform:translateY(-3px) rotate(-8deg);background:var(--yellow-2)}

/* ---------- Image placeholders ---------- */
.ph{
  position:relative;overflow:hidden;border-radius:var(--radius-lg);
  background:
    repeating-linear-gradient(135deg, rgba(0,0,0,.05) 0 14px, transparent 14px 28px),
    linear-gradient(160deg,var(--c1,#8a9466),var(--c2,#5f6a42));
  display:flex;align-items:flex-end;
}
.ph::after{
  content:attr(data-label);
  font-family:var(--mono);font-size:11px;letter-spacing:.04em;
  color:rgba(255,255,255,.82);
  background:rgba(20,22,14,.42);
  padding:7px 12px;margin:14px;border-radius:8px;
  backdrop-filter:blur(2px);
  max-width:80%;line-height:1.35;
}
.ph--green{--c1:#8a9466;--c2:#566038}
.ph--harvest{--c1:#c9a24e;--c2:#7c5e24}
.ph--field{--c1:#9aa86a;--c2:#5d6a36}
.ph--greenhouse{--c1:#9ba79a;--c2:#5d6a58}
.ph--canola{--c1:#cdb84e;--c2:#7e7027}
.ph--steel{--c1:#aeb0a6;--c2:#6c6e62}

/* reveal on scroll */
.reveal{opacity:0;transform:translateY(28px);transition:opacity .7s cubic-bezier(.22,.61,.36,1),transform .7s cubic-bezier(.22,.61,.36,1)}
.reveal.in{opacity:1;transform:none}
.reveal-stagger{transition-delay:var(--rd,0ms)}
/* hover lift for interactive cards */
.pcard,.model,.svc,.addr,.diff,.step,.mod{will-change:transform}
@media (prefers-reduced-motion: reduce){
  .reveal{opacity:1 !important;transform:none !important;transition:none !important}
}

@media (max-width:860px){
  .wrap{padding:0 22px}
  .section{padding:80px 0}
}

/* Video gallery */
.vgal{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.vgal-item{position:relative;border-radius:18px;overflow:hidden;aspect-ratio:9/16;background:#1a1a1a;box-shadow:0 18px 46px -22px rgba(40,42,28,.5)}
.vgal-item video{width:100%;height:100%;object-fit:cover;display:block}
.vgal-cap{position:absolute;left:14px;bottom:14px;right:14px;color:#fff;font-size:14px;font-weight:600;text-shadow:0 2px 12px rgba(0,0,0,.6)}
@media (max-width: 900px){.vgal{grid-template-columns:repeat(2,1fr)}}
@media (max-width: 560px){.vgal{grid-template-columns:1fr}}

/* ============================================================
   Mobile polish — fits headings, CTAs, sections to small screens
   ============================================================ */
@media (max-width:640px){
  .section{padding:64px 0}
  .wrap{padding:0 18px}
  .h1{font-size:clamp(34px,8.4vw,46px);line-height:1.02}
  .h2{font-size:clamp(28px,7vw,38px);line-height:1.05}
  .h3{font-size:clamp(20px,5.2vw,26px)}
  .lede{font-size:16px;line-height:1.55}
  .btn{font-size:15px;padding:14px 22px;gap:10px}
  .btn .dot{width:7px;height:7px}
  /* Make primary hero/CTA buttons stretch full-width when stacked */
  .hero-cta .btn,
  .ihero .cta-row .btn{width:100%;justify-content:center}
  .hero-cta,
  .ihero .cta-row{width:100%}
  .icon-btn{width:46px;height:46px}
  .badge{font-size:11px;padding:7px 14px;letter-spacing:.1em}
}
@media (max-width:380px){
  .h1{font-size:32px}
  .h2{font-size:26px}
}
@media (max-width:640px){
  .badge{white-space:normal;text-align:center;line-height:1.3}
}

/* ============================================================
   Dark theme contrast overrides (Agroland-inspired)
   ============================================================ */
body{background:radial-gradient(ellipse at top,#1A2317 0%,#10160E 60%) fixed}

/* Badges — visible on dark surfaces */
.badge{color:var(--gold-soft);background:rgba(232,197,71,.08);border-color:rgba(232,197,71,.45)}

/* Buttons — adjust for dark canvas */
.btn--olive{background:#243025;color:#fff;border:1px solid rgba(255,255,255,.1)}
.btn--olive:hover{background:#2E3B22;border-color:rgba(232,197,71,.4)}
.btn--ghost{background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.14);color:var(--ink);backdrop-filter:blur(8px)}
.btn--ghost:hover{background:rgba(232,197,71,.12);border-color:var(--gold);color:var(--gold-soft)}

/* Nav — translucent dark pill (Agroland style) */
.nav{background:rgba(13,19,11,.72);backdrop-filter:blur(18px);border:1px solid rgba(255,255,255,.08);box-shadow:0 20px 60px -30px rgba(0,0,0,.8)}
.nav-links a{color:rgba(241,239,231,.78)}
.nav-links a:hover{background:rgba(232,197,71,.08);color:var(--gold-soft)}
.nav-ico{color:var(--ink)}
.nav-ico:hover{background:rgba(232,197,71,.1);color:var(--gold-soft)}
.brand b{color:var(--ink)}
.brand b span{color:var(--gold)}

/* Address cards on dark */
.addr{background:linear-gradient(180deg,rgba(36,48,37,.6),rgba(26,35,23,.6));border-color:rgba(255,255,255,.08)}
.addr:hover{border-color:rgba(232,197,71,.35);box-shadow:0 24px 60px -24px rgba(0,0,0,.6)}
.addr .tag{color:var(--gold-soft)}
.addr .tag .pin{background:rgba(232,197,71,.12);color:var(--gold)}
.addr h3{color:var(--ink)}

/* FAQ */
.faq-item{background:linear-gradient(180deg,rgba(36,48,37,.5),rgba(26,35,23,.5));border-color:rgba(255,255,255,.08)}
.faq-item.open{border-color:rgba(232,197,71,.5)}
.faq-q{color:var(--ink)}
.faq-q .ico{background:rgba(232,197,71,.12);color:var(--gold)}
.faq-item.open .faq-q .ico{background:var(--gold);color:#10160E}
.faq-a-inner b{color:var(--gold-soft)}

/* Newsletter — yellow band keeps dark text */
.news h2{color:#10160E}
.news p{color:rgba(16,22,14,.78)}
.news form{background:#10160E;box-shadow:0 14px 34px -20px rgba(0,0,0,.6)}
.news input{color:#fff;background:transparent}
.news input::placeholder{color:rgba(241,239,231,.5)}
@media (max-width:640px){
  .news input{background:#10160E;color:#fff;box-shadow:0 10px 24px -18px rgba(0,0,0,.5)}
  .news input::placeholder{color:rgba(241,239,231,.5)}
}

/* About / sections text */
.about-grid .lede{color:var(--ink-2)}
.lede{color:var(--ink-2)}
.muted{color:var(--ink-soft)}

/* Video wrapper border on dark */
.video{box-shadow:0 30px 70px -32px rgba(0,0,0,.8);border:1px solid rgba(255,255,255,.06)}

/* Stats numbers pop */
.stat .num{color:var(--gold)}

/* To-top button */
.to-top{background:var(--gold);color:#10160E}

/* Subtle grid overlay on hero veil for tech feel */
.hero-veil{background:
  linear-gradient(180deg,rgba(10,15,8,.55),rgba(10,15,8,.35) 40%,rgba(10,15,8,.85)),
  repeating-linear-gradient(90deg,rgba(232,197,71,.04) 0 1px,transparent 1px 80px),
  repeating-linear-gradient(0deg,rgba(232,197,71,.04) 0 1px,transparent 1px 80px)
}

/* Contact band — richer dark with gold accent border */
.contact{background:linear-gradient(160deg,#1A2317,#0D130B);border:1px solid rgba(232,197,71,.18)}

/* Services hover: gold underline accent */
.svc{border:1px solid rgba(255,255,255,.05)}
.svc:hover{border-color:rgba(232,197,71,.35)}

/* Section dividers — subtle glow lines */
.section + .section{position:relative}


/* ============================================================
   Premium polish — Aura/Stride-inspired (SaaS-grade)
   ============================================================ */
:root{
  --shadow-aura:
    0 2.8px 2.2px rgba(0,0,0,.034),
    0 6.7px 5.3px rgba(0,0,0,.048),
    0 12.5px 10px rgba(0,0,0,.06),
    0 22.3px 17.9px rgba(0,0,0,.072),
    0 41.8px 33.4px rgba(0,0,0,.086),
    0 100px 80px rgba(0,0,0,.12);
  --ring-soft:inset 0 0 0 1px rgba(255,255,255,.06);
  --glass-bg:rgba(13,19,11,.55);
  --glass-bg-strong:rgba(13,19,11,.78);
  --radius-2xl:32px;
}

/* Smoother global motion */
*{transition-timing-function:cubic-bezier(.22,.61,.36,1)}
html{scroll-behavior:smooth}

/* Refined navbar — Aura translucent pill */
.nav{
  background:var(--glass-bg);
  -webkit-backdrop-filter:saturate(160%) blur(20px);
  backdrop-filter:saturate(160%) blur(20px);
  border:1px solid rgba(255,255,255,.06);
  box-shadow:var(--shadow-aura);
  border-radius:18px;
  padding:10px 12px 10px 22px;
  transition:background .3s,border-color .3s,transform .3s;
}
.nav-outer{top:14px}
.nav-links a{
  font-size:13.5px;font-weight:500;letter-spacing:.005em;
  color:rgba(241,239,231,.7);padding:9px 14px;border-radius:12px;
}
.nav-links a:hover{background:rgba(255,255,255,.04);color:#fff}
.nav-ico{width:40px;height:40px;border-radius:12px;color:rgba(241,239,231,.85)}
.nav-ico:hover{background:rgba(255,255,255,.05);color:var(--gold-soft)}

/* Buttons — Aura pill with layered shadow */
.btn{
  border-radius:14px;
  padding:14px 22px;font-size:14px;font-weight:600;
  box-shadow:var(--shadow-aura);
  transition:transform .25s,box-shadow .25s,background .25s,color .25s,border-color .25s;
  position:relative;overflow:hidden;
}
.btn:focus-visible{outline:none;box-shadow:var(--shadow-aura),0 0 0 3px rgba(232,197,71,.45)}
.btn:active{transform:translateY(0) scale(.98)}
.btn--yellow{background:linear-gradient(180deg,#F2D766,#E8C547);color:#10160E;border:1px solid rgba(255,255,255,.18)}
.btn--yellow:hover{transform:translateY(-2px);background:linear-gradient(180deg,#F7E07C,#E8C547);color:#10160E}
.btn--olive{background:#1A2317;color:#fff;border:1px solid rgba(255,255,255,.08)}
.btn--olive:hover{background:#243025;border-color:rgba(232,197,71,.35);transform:translateY(-2px)}
.btn--ghost,.btn--ghost-light{
  background:rgba(255,255,255,.04);
  border:1px solid rgba(255,255,255,.1);
  color:rgba(241,239,231,.95);
  -webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);
  box-shadow:none;
}
.btn--ghost:hover,.btn--ghost-light:hover{
  background:rgba(232,197,71,.1);border-color:rgba(232,197,71,.4);color:#fff;transform:translateY(-2px);
}

/* Loading state for any .btn — add .is-loading */
.btn.is-loading{pointer-events:none;color:transparent !important}
.btn.is-loading::after{
  content:"";position:absolute;inset:0;margin:auto;width:18px;height:18px;border-radius:50%;
  border:2px solid rgba(255,255,255,.35);border-top-color:#fff;animation:btnspin .7s linear infinite;
}
@keyframes btnspin{to{transform:rotate(360deg)}}

/* Badges — finer */
.badge{
  font-size:10.5px;padding:8px 14px;border-radius:999px;
  letter-spacing:.18em;font-weight:600;
  background:rgba(232,197,71,.06);border:1px solid rgba(232,197,71,.32);
  color:var(--gold-soft);
}
.badge::before{box-shadow:0 0 12px rgba(232,197,71,.5)}

/* Cards — glass + lift */
.addr,.faq-item,.pcard,.model,.svc,.diff,.step,.mod{
  background:linear-gradient(180deg,rgba(36,48,37,.42),rgba(20,30,18,.42));
  border:1px solid rgba(255,255,255,.06);
  border-radius:22px;
  -webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);
  transition:transform .35s,border-color .35s,box-shadow .35s,background .35s;
}
.addr:hover,.faq-item:hover,.pcard:hover,.model:hover,.diff:hover,.step:hover,.mod:hover{
  transform:translateY(-6px);
  border-color:rgba(232,197,71,.32);
  box-shadow:var(--shadow-aura);
  background:linear-gradient(180deg,rgba(46,58,42,.55),rgba(24,34,22,.55));
}
.addr .tag .pin{border-radius:12px}

/* Services — refined */
.services{
  background:linear-gradient(160deg,#243025,#10160E);
  border:1px solid rgba(255,255,255,.06);
  border-radius:var(--radius-2xl);
  box-shadow:var(--shadow-aura);
}
.svc{border-radius:22px;box-shadow:var(--ring-soft)}
.svc:hover{box-shadow:var(--shadow-aura),inset 0 0 0 1px rgba(232,197,71,.35)}

/* Stats — premium */
.stats{
  background:linear-gradient(160deg,#243025,#0D130B);
  border:1px solid rgba(232,197,71,.14);
  border-radius:var(--radius-2xl);
  box-shadow:var(--shadow-aura);
}
.stat .num{
  background:linear-gradient(180deg,#F7E07C,#C9A84C);
  -webkit-background-clip:text;background-clip:text;color:transparent;
}

/* Contact band */
.contact{border-radius:var(--radius-2xl);box-shadow:var(--shadow-aura)}

/* Newsletter — keep yellow band, refine form */
.news{border-radius:var(--radius-2xl);box-shadow:var(--shadow-aura)}
.news form{border-radius:16px;border:1px solid rgba(255,255,255,.06);box-shadow:var(--shadow-aura)}
.news input:focus{outline:none}
.news form:focus-within{border-color:var(--gold)}

/* Video frame */
.video{border-radius:22px;box-shadow:var(--shadow-aura);border:1px solid rgba(255,255,255,.06)}
.video .play{box-shadow:0 18px 40px -10px rgba(232,197,71,.45)}
.video:hover .play{transform:scale(1.1) rotate(-4deg)}

/* Footer card */
.footer-card{
  border-radius:var(--radius-2xl);
  background:rgba(20,24,14,.5);
  -webkit-backdrop-filter:blur(22px);backdrop-filter:blur(22px);
  border:1px solid rgba(255,255,255,.08);
  box-shadow:var(--shadow-aura);
}

/* To-top */
.to-top{border-radius:14px;box-shadow:var(--shadow-aura)}
.to-top:hover{transform:translateY(-4px) scale(1.05)}

/* Reveal — slight refinement */
.reveal{transform:translateY(36px);transition-duration:.85s}

/* Section rhythm */
.section{padding:140px 0}
@media (max-width:860px){.section{padding:88px 0}}
@media (max-width:640px){.section{padding:68px 0}}

/* Form fields global (inputs/textareas/selects) */
input,textarea,select{
  font-family:inherit;
  transition:border-color .25s,box-shadow .25s,background .25s;
}
input:focus-visible,textarea:focus-visible,select:focus-visible{
  outline:none;
  box-shadow:0 0 0 3px rgba(232,197,71,.35);
}

/* Reduce motion */
@media (prefers-reduced-motion:reduce){
  .btn:hover,.addr:hover,.faq-item:hover,.pcard:hover,.svc:hover,.video:hover .play{transform:none !important}
}

/* ============================================================
   STRIDE — Digital Topography Override
   Dark mode bento system w/ cyan accents + serif italic flourish
   ============================================================ */
:root{
  /* Core palette remap */
  --cream:#050505;
  --cream-2:#0A0A0A;
  --cream-3:#171717;
  --olive:#171717;
  --olive-deep:#050505;
  --olive-card:rgba(23,23,23,.6);
  --sage:#262626;
  --sage-soft:#737373;
  --yellow:#00FF88;
  --yellow-2:#5CFFAE;
  --yellow-deep:#004D2E;
  --gold:#00FF88;
  --gold-soft:#7BFFB8;
  --ink:#E5E5E5;
  --ink-2:#A3A3A3;
  --ink-soft:#737373;
  --line:rgba(255,255,255,.05);
  --white:rgba(23,23,23,.6);
  --surface-light:#FFFFFF;
  --stride-bg:#050505;
  --stride-glass:rgba(255,255,255,.02);
  --stride-border:rgba(255,255,255,.05);
  --stride-border-hover:rgba(255,255,255,.15);
  --stride-cyan:#00FF88;
  --stride-cyan-glow:0 0 24px rgba(0,255,136,.35);
  --radius-2xl:1.5rem;
  --radius-xl:1.5rem;
  --radius-lg:1rem;
  --radius-md:.5rem;
  --shadow-aura:none;
  --shadow-card:0 0 0 1px rgba(255,255,255,.04);
  --shadow-soft:0 0 0 1px rgba(255,255,255,.04);
  --shadow-gold:0 0 24px rgba(0,255,136,.25);
  --font:"Inter",system-ui,sans-serif;
  --font-display:"Syne","Inter",system-ui,sans-serif;
  --font-accent:"Instrument Serif",Georgia,serif;
  --mono:"JetBrains Mono",ui-monospace,monospace;
}

body{
  background:
    radial-gradient(1200px 600px at 80% -10%, rgba(0,255,136,.06), transparent 60%),
    radial-gradient(900px 500px at -10% 30%, rgba(0,255,136,.04), transparent 60%),
    var(--stride-bg);
  background-attachment:fixed;
  color:var(--ink);
  font-family:var(--font);
  font-weight:400;
}

/* Subtle topographic grid overlay */
body::before{
  content:"";
  position:fixed;inset:0;
  background-image:
    linear-gradient(rgba(255,255,255,.025) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,.025) 1px, transparent 1px);
  background-size:40px 40px;
  -webkit-mask-image:radial-gradient(ellipse at 50% 30%, #000 30%, transparent 75%);
          mask-image:radial-gradient(ellipse at 50% 30%, #000 30%, transparent 75%);
  pointer-events:none;
  z-index:0;
}
#app, main, .site{position:relative;z-index:1}

/* Typography — Syne display, Instrument Serif italic accent */
.display,.h1,.h2,.h3{font-family:var(--font-display);font-weight:700;letter-spacing:-.02em}
.h1{font-size:clamp(44px,6.4vw,92px);line-height:.95}
.h2{font-size:clamp(34px,4.6vw,64px);line-height:1}
.h3{font-size:clamp(22px,2.4vw,32px);line-height:1.1}
.display em,.h1 em,.h2 em,.h3 em,
.display i,.h1 i,.h2 i,.h3 i{
  font-family:var(--font-accent);
  font-style:italic;
  font-weight:400;
  color:var(--stride-cyan);
  letter-spacing:-.01em;
}
.lede{color:var(--ink-2);font-weight:400;line-height:1.65}
.muted{color:var(--ink-soft)}

/* Badges — glass pill with subtle glow */
.badge{
  background:rgba(255,255,255,.04);
  border:1px solid rgba(255,255,255,.12);
  color:var(--ink);
  box-shadow:0 0 18px rgba(229,231,235,.08);
  font-family:var(--mono);
  letter-spacing:.18em;
  font-weight:500;
  text-transform:uppercase;
  font-size:10px;
  padding:8px 16px;
}
.badge::before{background:var(--stride-cyan);box-shadow:0 0 8px var(--stride-cyan)}
.badge--light{background:rgba(255,255,255,.04);border-color:rgba(255,255,255,.12);color:var(--ink)}

/* Navbar — glass pill */
.nav,.navbar,header nav,.site-nav{
  background:rgba(5,5,5,.8) !important;
  -webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);
  border:1px solid var(--stride-border) !important;
  border-radius:999px !important;
  box-shadow:none !important;
}
.nav a, .navbar a{color:var(--ink)}
.nav a:hover, .navbar a:hover{color:var(--stride-cyan)}

/* Buttons — white→cyan pill primaries */
.btn,.button,button.cta{
  border-radius:999px !important;
  font-family:var(--font);
  font-weight:600;
  letter-spacing:.01em;
  transition:background .25s ease, color .25s ease, transform .25s ease, box-shadow .25s ease;
}
.btn--primary,.btn-primary,.cta-primary{
  background:#FFFFFF !important;
  color:#000 !important;
  border:none !important;
}
.btn--primary:hover,.btn-primary:hover,.cta-primary:hover{
  background:var(--stride-cyan) !important;
  color:#000 !important;
  box-shadow:var(--stride-cyan-glow);
  transform:translateY(-2px);
}
.btn--ghost,.btn-ghost,.btn--outline{
  background:rgba(255,255,255,.03) !important;
  color:var(--ink) !important;
  border:1px solid var(--stride-border) !important;
  -webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);
}
.btn--ghost:hover,.btn-ghost:hover,.btn--outline:hover{
  border-color:var(--stride-cyan) !important;
  color:var(--stride-cyan) !important;
  box-shadow:var(--stride-cyan-glow);
}

/* Bento cards — translucent glass surfaces */
.card,.pcard,.svc,.faq-item,.addr,.feature,.product,.tile,.bento{
  background:rgba(23,23,23,.6) !important;
  border:1px solid var(--stride-border) !important;
  border-radius:1.5rem !important;
  -webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);
  box-shadow:none !important;
  transition:border-color .3s ease, transform .3s ease, box-shadow .3s ease;
}
.card:hover,.pcard:hover,.svc:hover,.faq-item:hover,.addr:hover,.feature:hover,.product:hover,.tile:hover,.bento:hover{
  border-color:var(--stride-border-hover) !important;
  transform:translateY(-2px);
  box-shadow:0 0 0 1px var(--stride-border-hover), 0 20px 50px -20px rgba(0,255,136,.15);
}

/* Stat numbers — cyan glow gradient */
.stat-num,.metric-num,.big-num,.counter{
  background:linear-gradient(180deg,#FFFFFF,var(--stride-cyan));
  -webkit-background-clip:text;background-clip:text;color:transparent;
  font-family:var(--font-display);
  font-weight:700;
  letter-spacing:-.03em;
}

/* Forms */
input,textarea,select{
  background:rgba(255,255,255,.03) !important;
  border:1px solid var(--stride-border) !important;
  color:var(--ink) !important;
  border-radius:12px !important;
}
input::placeholder,textarea::placeholder{color:var(--ink-soft)}
input:focus,textarea:focus,select:focus,
input:focus-visible,textarea:focus-visible,select:focus-visible{
  outline:none !important;
  border-color:var(--stride-cyan) !important;
  box-shadow:0 0 0 3px rgba(0,255,136,.18), var(--stride-cyan-glow) !important;
}

/* Newsletter band — invert to dark glass instead of yellow */
.news,.newsletter{
  background:linear-gradient(135deg, rgba(0,255,136,.08), rgba(23,23,23,.6)) !important;
  border:1px solid var(--stride-border) !important;
  border-radius:1.5rem !important;
  color:var(--ink) !important;
}
.news *, .newsletter *{color:inherit}
.news .btn--primary,.newsletter .btn--primary{background:var(--stride-cyan) !important;color:#000 !important}

/* Footer */
.footer-card{
  background:rgba(10,10,10,.6) !important;
  border:1px solid var(--stride-border) !important;
  border-radius:1.5rem !important;
}

/* Video frame */
.video{
  border-radius:1.5rem !important;
  border:1px solid var(--stride-border) !important;
  box-shadow:none !important;
}
.video .play{
  background:var(--stride-cyan) !important;
  color:#000 !important;
  box-shadow:var(--stride-cyan-glow) !important;
}

/* Hero veil — replace warm overlay with cyan-tinted depth */
.hero-veil,.hero::after{
  background:
    radial-gradient(800px 400px at 50% 0%, rgba(0,255,136,.12), transparent 60%),
    linear-gradient(180deg, rgba(5,5,5,.2), rgba(5,5,5,.85)) !important;
}

/* Section rhythm */
.section{padding:96px 0}
@media (max-width:860px){.section{padding:72px 0}}

/* Selection */
::selection{background:var(--stride-cyan);color:#000}

/* Scrollbar */
::-webkit-scrollbar{width:10px;height:10px}
::-webkit-scrollbar-track{background:#050505}
::-webkit-scrollbar-thumb{background:#262626;border-radius:999px}
::-webkit-scrollbar-thumb:hover{background:var(--stride-cyan)}

/* Marquee opacity */
.marquee,.ticker{opacity:.4}

/* Topographic wave SVG ambient (if .topo present) */
@keyframes stride-wave{
  0%{transform:translateX(0)}
  100%{transform:translateX(-50%)}
}
.topo-waves{animation:stride-wave 30s linear infinite;opacity:.25}

/* Fade up entry */
@keyframes stride-fadeUp{
  from{opacity:0;transform:translateY(24px)}
  to{opacity:1;transform:translateY(0)}
}
.reveal.in{animation:stride-fadeUp .8s ease-out forwards}

/* ============================================================
   STRIDE — Contrast & legacy-token fixes
   ============================================================ */

/* Legacy --olive used as ACCENT TEXT on dark cards → invisible.
   Remap any such usage to the cyan/green accent. */
.numbers .nb .big,
.step .sn,
.step .si,
.model .tl,
.model li svg,
.person .role,
.mod .mnum,
.day .dh .dd,
.day li .t,
.pcard .tl,
.pcard .meta .mline .ml,
.linehead .ln,
.modelchips .mc span,
.prod-line,
.impacts .imp svg,
.specgroup h3,
.modetag,
.sim .s-eyebrow,
.addr .tag,
.modq .mnum,
.offer .now .big,
.moditem--exam .mnum,
.crop:hover,
.client:hover{
  color:var(--stride-cyan) !important;
}

/* Icon boxes that paired olive bg + ink/yellow icon — make glass with cyan icon */
.feat-list .ic,
.diff .ic,
.checklist li .ck,
.addr .tag .pin,
.addr-inline .pin{
  background:rgba(0,255,136,.10) !important;
  color:var(--stride-cyan) !important;
  border:1px solid rgba(0,255,136,.25) !important;
}

/* Hover borders / focused model card */
.model.feat,
.mod:hover,
.crop:hover,
.client:hover,
.model:hover{
  border-color:var(--stride-cyan) !important;
}

/* Hard-coded white surfaces from old light theme → dark glass surface */
.numbers .nb,
.vcard.ground,
.step,
.model,
.diff,
.person,
.mod,
.day,
.quote,
.pcard,
.crop,
.client,
.specgroup,
.linehead,
.alert{
  background:rgba(23,23,23,.6) !important;
  border:1px solid var(--stride-border) !important;
  color:var(--ink) !important;
}
.alert{border-left:4px solid var(--stride-cyan) !important;color:var(--ink) !important}
.alert p, .alert *{color:var(--ink) !important}

/* Solid-olive blocks → dark surface with cyan accent */
.vcard.drone,
.ctab.olive,
.confbox,
.ctastrip,
.quote{
  background:linear-gradient(135deg,#0d0d0d,#171717) !important;
  color:var(--ink) !important;
  border:1px solid var(--stride-border) !important;
}
.vcard.drone *, .quote *, .ctab.olive *, .confbox *, .ctastrip *{color:inherit}

/* Yellow/green badges in product cards: light text on green = unreadable. Force black text. */
.model .star,
.pcard .nbadge,
.icon-btn--yellow,
.badge[style*="00FF88"],
span.badge{
  color:#000 !important;
}
.icon-btn--yellow{background:var(--stride-cyan) !important}

/* Primary yellow CTA buttons → green gradient with black text */
.btn--yellow{
  background:linear-gradient(180deg,#5CFFAE,#00FF88) !important;
  color:#000 !important;
  box-shadow:0 18px 40px -14px rgba(0,255,136,.55) !important;
}
.btn--yellow:hover{
  background:linear-gradient(180deg,#00FF88,#00C26B) !important;
  color:#000 !important;
}
.btn--olive{background:#171717 !important;color:var(--ink) !important;border:1px solid var(--stride-border) !important}
.btn--olive:hover{background:#262626 !important;border-color:var(--stride-cyan) !important;color:var(--stride-cyan) !important}

/* Body / paragraph copy contrast: --ink-soft (#737373) fails AA on #050505
   for normal text (4.30 < 4.5). Lift default to --ink-2 (#A3A3A3 ≈ 9:1). */
p, li, .lede, .muted, .ink-soft, .s-sub{
  color:var(--ink-2) !important;
}
.muted, .ink-soft{color:#A3A3A3 !important}

/* Small text inside cards — also use ink-2 */
.card p, .pcard p, .svc p, .faq-item p, .addr p, .feature p, .product p,
.tile p, .bento p, .model p, .mod p, .step p, .diff p, .person p,
.card li, .pcard li, .svc li, .faq-item li, .model li, .checklist li{
  color:var(--ink-2) !important;
}

/* Bold accents inside lede should not blend in */
.lede b, .lede strong{color:var(--ink) !important;font-weight:700}

/* Tag labels in address cards (.addr .tag) — dark on dark fixed above; also override tag spans */
.addr .tag{font-weight:700}
span.tag{color:var(--stride-cyan) !important}

/* Stats numbers (.big with #171717 on dark) */
.big, .stat-num, .metric-num, .counter{
  background:linear-gradient(180deg,#FFFFFF,var(--stride-cyan));
  -webkit-background-clip:text;background-clip:text;
  color:transparent !important;
}

/* Numbers band on inner pages — solid green for legibility */
.numbers .nb .big{
  background:none !important;
  -webkit-background-clip:unset !important;
  background-clip:unset !important;
  color:var(--stride-cyan) !important;
}

/* Anchor links on green button surfaces (e.g. WhatsApp/Instagram inline) */
a.btn--yellow, .btn--yellow a{color:#000 !important}

/* Module tags (Aula Teórica / Prática / Vagas limitadas etc.) */
.modetag, .moditem .tag, .day .tag, .mod .tag{
  background:rgba(0,255,136,.10) !important;
  color:var(--stride-cyan) !important;
  border:1px solid rgba(0,255,136,.25) !important;
  padding:4px 10px;border-radius:999px;display:inline-block;
}

/* Day header "Dia 1 / Dia 2" */
.day .dh{border-bottom-color:var(--stride-border) !important}
.day .dh .dd{
  background:linear-gradient(180deg,#FFFFFF,var(--stride-cyan));
  -webkit-background-clip:text;background-clip:text;color:transparent !important;
}

/* Vagas limitadas badge etc. (Vista Academy hero) */
.hero .badge, .ihero .badge{color:var(--ink) !important;background:rgba(255,255,255,.05) !important;border:1px solid rgba(255,255,255,.18) !important}

/* Final: ensure any text on cyan/green background is BLACK */
[style*="background:#00FF88"], [style*="background-color:#00FF88"]{color:#000 !important}

/* ============================================================
   STRIDE — Round 2: fix badges, curso pages, gradient-bg buttons
   ============================================================ */

/* Undo blanket black on .badge — only color force when badge is on green */
span.badge{color:var(--ink) !important;background:rgba(255,255,255,.04) !important;border:1px solid rgba(255,255,255,.18) !important}
span.badge::before{background:var(--stride-cyan) !important;box-shadow:0 0 6px var(--stride-cyan)}
span.badge--light{color:var(--ink) !important;background:rgba(255,255,255,.04) !important;border:1px solid rgba(255,255,255,.22) !important}

/* Yellow/green CTA buttons: set solid background-color so parsers + users see contrast */
.btn--yellow, button.btn--yellow, a.btn--yellow{
  background-color:#00FF88 !important;
  background-image:linear-gradient(180deg,#5CFFAE,#00FF88) !important;
  color:#000 !important;
}
.btn--yellow:hover{background-image:linear-gradient(180deg,#00FF88,#00C26B) !important;color:#000 !important}

/* Gold buttons (curso pages) → cyan/green pill, black text */
.btn--gold, a.btn--gold{
  background-color:#00FF88 !important;
  background-image:linear-gradient(180deg,#5CFFAE,#00FF88) !important;
  color:#000 !important;
  border:none !important;
}
.btn--gold:hover{background-image:linear-gradient(180deg,#00FF88,#00C26B) !important;color:#000 !important}

/* Anchor links rendered as buttons → make sure inner text is black on green */
a.btn--yellow span, a.btn--gold span, a.btn--yellow b, a.btn--gold b{color:#000 !important}

/* "Instagram" / "WhatsApp" plain anchors that get green pill background somewhere
   — force readable color when background ends up cyan-ish */
.contact-row a, .social a{color:var(--ink) !important}
.contact-row a:hover, .social a:hover{color:var(--stride-cyan) !important}

/* ============================================================
   CURSO pages — convert beige/forest to STRIDE dark
   ============================================================ */
body.curso{
  background:var(--stride-bg) !important;
  color:var(--ink) !important;
}
.curso .badge,.curso .badge--gold{color:var(--stride-cyan) !important;border-color:rgba(0,255,136,.4) !important;background:rgba(0,255,136,.06) !important}
.curso .h2,.curso h2,.curso h3{color:var(--ink) !important}
.curso .lede{color:var(--ink-2) !important}
.csec.beige2,.csec.beige{background:#0A0A0A !important;color:var(--ink) !important}
.csec.forest{background:linear-gradient(135deg,#0d0d0d,#171717) !important;color:var(--ink) !important}
.csec.forest .h2,.csec.forest h2,.csec.forest h3{color:var(--ink) !important}
.csec.forest .lede,.csec.forest p{color:var(--ink-2) !important}
.csec.forest .cstat p{color:var(--ink-2) !important}

/* Cards on curso */
.oppcard,.moditem,.bonus,.instr,.praccard,.cstat{
  background:rgba(23,23,23,.6) !important;
  border:1px solid var(--stride-border) !important;
  color:var(--ink) !important;
}
.oppcard h3,.bonus-body h3{color:var(--ink) !important}
.oppcard p,.moda-in,.bonus-body p,.praccard p,.eco-list li{color:var(--ink-2) !important}
.oppcard .oic,.moditem .modq .mi,.eco-list .eic,.praccard .pic{
  background:rgba(0,255,136,.12) !important;color:var(--stride-cyan) !important;border:1px solid rgba(0,255,136,.25)
}
.moditem .modq .mt{color:var(--ink) !important}
.modq .mnum,.bonus-body .bk,.oppcard .ohi,.cstat .cn{color:var(--stride-cyan) !important}
.moditem.open{border-color:var(--stride-cyan) !important}
.moditem.open .modq .mi{background:var(--stride-cyan) !important;color:#000 !important}

/* Hero on curso */
.chero{background:var(--stride-bg) !important}
.chero::after{background:radial-gradient(800px 400px at 50% 0%,rgba(0,255,136,.10),transparent 60%),linear-gradient(180deg,rgba(5,5,5,.4),rgba(5,5,5,.9)) !important}
.chero .pill{background:rgba(255,255,255,.05) !important;border-color:rgba(255,255,255,.2) !important;color:var(--ink) !important}
.chero .pill.gold{background:rgba(0,255,136,.10) !important;border-color:rgba(0,255,136,.4) !important;color:var(--stride-cyan) !important}
.cd-unit{background:rgba(255,255,255,.05) !important;border-color:var(--stride-border) !important}
.cd-unit .cd-num{color:var(--stride-cyan) !important}
.cd-unit .cd-lbl,.cd-note,.trust{color:var(--ink-2) !important}
.trust svg{color:var(--stride-cyan) !important}

/* eBook visual — keep dark but flip accents to cyan */
.ebook{background:linear-gradient(135deg,#0d0d0d,#171717) !important}
.ebook .eb-k,.ebook .eb-t{color:var(--ink) !important}
.ebook .eb-band{background:var(--stride-cyan) !important}
.ebook .eb-logo{color:var(--ink-soft) !important}

/* Curso ".big" gradient-fill — also set readable fallback */
.curso .big, .offer .now .big{
  background:linear-gradient(180deg,#FFFFFF,var(--stride-cyan)) !important;
  -webkit-background-clip:text;background-clip:text;color:transparent !important;
}
.curso .big small{
  background:linear-gradient(180deg,#FFFFFF,var(--stride-cyan)) !important;
  -webkit-background-clip:text;background-clip:text;color:transparent !important;
}

/* eventos: green flag with light text */
.evflag{background:var(--stride-cyan) !important;color:#000 !important}
.evmode.mode-pres,.evmode{background:rgba(255,255,255,.06) !important;color:var(--ink) !important;border:1px solid var(--stride-border) !important}

/* p.lede inside green hero (Vista Academy "Vagas limitadas...") — push to dark */
.hero .lede, .ihero .lede{color:var(--ink-2) !important}
[class*="hero"] .lede{color:var(--ink-2) !important}

/* Tiny mono labels that need 4.5:1 — bump up */
span.dl,.dl,.s-eyebrow,.modq .mnum{color:#A3A3A3 !important}

/* Force minimum readable color for the few remaining 737373-on-dark paragraphs */
.mv, .s-sub{color:#A3A3A3 !important}

/* Final overrides for h2 on cream leak */
h2.h2{color:var(--ink) !important}

/* ============================================================
   STRIDE — Round 3: footer/social pills, curso light cards, edge cases
   ============================================================ */

/* Footer social first pill (Instagram) — green bg, was light text → black */
.footer-social a:first-child{background:var(--stride-cyan) !important;color:#000 !important;border-color:transparent !important}
.footer-social a:first-child:hover{background:#5CFFAE !important;color:#000 !important}
.footer-social a{color:var(--ink) !important;border:1px solid var(--stride-border) !important}

/* Footer hover accent */
.footer-card a:hover{color:var(--stride-cyan) !important}

/* Headings using --olive on dark surfaces */
.section h3, .diff h3, .feat-list h3, .step h3, .person h3, .mod h3{color:var(--ink) !important}

/* CURSO — any remaining body class variants (curso-online, curso-caar) */
body.curso, body[class*="curso"]{background:var(--stride-bg) !important;color:var(--ink) !important}
body[class*="curso"] *{
  /* don't blanket — handled below */
}

/* All curso surfaces that were beige (#EFEADD or similar) → dark glass */
.beige, .beige2, [class*="beige"],
.testimonial, .testimonial-card, .price-card, .offer-card, .stars-block,
.review, .review-card{
  background:rgba(23,23,23,.6) !important;
  color:var(--ink) !important;
  border:1px solid var(--stride-border) !important;
}

/* Force any deep-forest/dark-green text colors to readable */
[style*="color:#0b3d20"], [style*="color: #0b3d20"]{color:var(--stride-cyan) !important}

/* Star ratings (gold on white) — keep gold but on dark surface */
.stars, .star-rating{color:#F2D766 !important}

/* Price block (curso-online) — was white-on-white inside green block */
.offer .now .big, .price .big, .big.price{
  background:linear-gradient(180deg,#FFFFFF,var(--stride-cyan)) !important;
  -webkit-background-clip:text;background-clip:text;color:transparent !important;
}
.was, div.was, .strike{color:var(--ink-soft) !important;text-decoration:line-through}

/* Testimonial paragraphs on dark */
.review p, .testimonial p, .praccard p, blockquote p{color:var(--ink-2) !important}
.review h3, .testimonial h3, blockquote cite{color:var(--ink) !important}

/* Bold price tags */
b{color:inherit}


/* Eventos mode badge: olive bg, light text */
.evmode.mode-pres{background:rgba(255,255,255,.06) !important;color:var(--ink) !important;border:1px solid var(--stride-border) !important}

/* Vista Academy "Dê o próximo passo..." heading on green CTA strip — force dark */
.ctastrip h2, .ctastrip .h2, .confbox h2, .confbox .h2{color:var(--ink) !important}
.ctastrip{background:linear-gradient(135deg,#0d0d0d,#171717) !important}

/* Specifically the Vista Academy section with green bg and light text "WhatsApp (31)..." */
[style*="background:#00FF88"] *, [style*="background-color:#00FF88"] *{color:#000 !important}
[style*="background:#00FF88"] a, [style*="background-color:#00FF88"] a{color:#000 !important;text-decoration:underline}

/* /manutencao h3 leak */
.svc h3, .service h3{color:var(--ink) !important}

/* Star ratings inside dark testimonial */
.stars, .stars div{background:transparent !important}

/* Ebook label readability */
.ebook .eb-logo{color:#A3A3A3 !important}

/* ============================================================
   STRIDE — Round 4: ctab.yellow strip, curso testimonials, curso prices
   ============================================================ */

/* Vista Academy CTA bar (.ctab.yellow) — make dark glass, drop green flood */
.ctab.yellow{
  background:linear-gradient(135deg,#0d0d0d,#171717) !important;
  border:1px solid var(--stride-border) !important;
  color:var(--ink) !important;
}
.ctab.yellow h2, .ctab.yellow .h2{color:var(--ink) !important}
.ctab.yellow .lede{color:var(--ink-2) !important}
.ctab.yellow .badge{background:rgba(0,255,136,.10) !important;color:var(--stride-cyan) !important;border-color:rgba(0,255,136,.4) !important}
.ctab.yellow .contacts a{color:var(--ink) !important;text-decoration:none;border-bottom:1px solid var(--stride-border);padding-bottom:2px;transition:color .25s,border-color .25s}
.ctab.yellow .contacts a:hover{color:var(--stride-cyan) !important;border-color:var(--stride-cyan)}

/* Vagas limitadas .badge inside that section was green-bg, light text */
.ctab.yellow span.badge,
.ctab span.badge{background:rgba(0,255,136,.10) !important;color:var(--stride-cyan) !important;border:1px solid rgba(0,255,136,.4) !important}

/* span.dd inside .day → already gradient-clip but show actual color fallback */
.day .dh .dd{color:var(--stride-cyan) !important}
.numbers .nb .big{color:var(--stride-cyan) !important}
.numbers .nb .big span{color:var(--stride-cyan) !important}

/* span "Aluno — Formação..." inside testimonial qa2 */
.qcard .qa2 span, .qcard p ~ .qa2 span{color:#A3A3A3 !important}
.qcard p, .qcard{color:var(--ink-2) !important}
.qcard{background:rgba(23,23,23,.6) !important;border:1px solid var(--stride-border) !important}
.qcard .qa2{color:var(--ink) !important;font-weight:600}

/* CURSO testimonials & price cards still on white — force dark */
.tcard, .tlist .tc, .testimonial, .reviewcard, .pcard-price, .pricebox, .offerbox,
[class*="testimonial"], [class*="depoiment"], .stars, .stars-row{
  background:transparent !important;
  color:var(--ink) !important;
}
/* Any element with white bg in body.curso → dark glass */
body[class*="curso"] *[style*="background:#fff"],
body[class*="curso"] *[style*="background-color:#fff"],
body[class*="curso"] *[style*="background:#FFF"],
body[class*="curso"] *[style*="background-color:#FFF"]{
  background:rgba(23,23,23,.6) !important;border:1px solid var(--stride-border) !important;color:var(--ink) !important
}

/* Direct fix for any leftover .oppcard, .moditem, .bonus, .instr already done.
   Add: review card class names commonly used */
.alcard, .review, .reviewbox, .revcard, .alcards .alcard,
.tt, .tt-card, .ttbox{
  background:rgba(23,23,23,.6) !important;
  border:1px solid var(--stride-border) !important;
  color:var(--ink) !important;
}
.alcard p, .review p, .ttbox p{color:var(--ink-2) !important}
.alcard h3, .review h3, .ttbox h3, .tt h3{color:var(--ink) !important}
.alcard .stars, .review .stars{color:#F2D766 !important}
.alcard .role, .review .role, .tt .role{color:var(--stride-cyan) !important;font-weight:600}

/* Specific selectors from curso.css that paint white */
.bonus, .instr, .oppcard, .moditem, .moda-in, .praccard{color:var(--ink-2) !important}
.oppcard p, .bonus-body p, .moda-in, .praccard p{color:var(--ink-2) !important}

/* Strikethrough was-prices */
.was{color:#737373 !important;text-decoration:line-through}
.now b, .price b, b.price{color:var(--ink) !important}

/* curso-online big price */
[class*="curso"] .big, [class*="curso"] .big *{
  background:linear-gradient(180deg,#FFFFFF,var(--stride-cyan)) !important;
  -webkit-background-clip:text;background-clip:text;color:transparent !important;
}

/* h3 with dark green (#0b3d20) leftover */
h3{color:var(--ink)}
[style*="color:#0b3d20"],[style*="color: #0b3d20"],
h3[style*="color"]{color:var(--ink) !important}
b[style*="color"]{color:inherit !important}

/* Eventos mode badge - olive bg #677346 ratio 4.06 — bump bg to dark */
.evmode, .evmode.mode-pres{background:rgba(0,255,136,.10) !important;color:var(--stride-cyan) !important;border:1px solid rgba(0,255,136,.30) !important}

/* /compre-seu-drone "Entrada/Mais indicado/Topo de linha" tag-pill (737373 on #0a0a0a, ratio 4.18) */
.modelchips .mc span, span.mc-tag, .pcard .meta span.tag{color:#A3A3A3 !important}

/* Final: any anchor with inline style color:var(--ink) inside an old yellow ctab */
.ctab.yellow a[style*="--ink"]{color:var(--ink) !important}

/* ============================================================
   STRIDE — Round 5: curso testimonial / FAQ / cred / sticky / banner
   ============================================================ */
.tq, .cfi, .cred, .ch-total .cht-item, .prof-quote,
.alertbanner, .stickybar{
  background:rgba(23,23,23,.6) !important;
  border:1px solid var(--stride-border) !important;
  color:var(--ink) !important;
}
.tq p, .cfa-in, .cred span, .ch-total .cht-item span,
.bonus-body p, .oppcard p, .moda-in, .instr p, .prof-bio,
.csec p, .csec li{color:var(--ink-2) !important}

.tq .stars, .alcard .stars, .stars{color:#F2D766 !important;background:transparent !important}
.tq .tqa, .cfq, .instr h3, .oppcard h3, .bonus-body h3,
.prof-bio b, .prof-quote, .prof-quote b{color:var(--ink) !important}
.cfq{color:var(--ink) !important}
.cfq .ci{background:rgba(0,255,136,.10) !important;color:var(--stride-cyan) !important;border:1px solid rgba(0,255,136,.25)}
.cfi.open, .moditem.open{border-color:var(--stride-cyan) !important}
.cfi.open .cfq .ci{background:var(--stride-cyan) !important;color:#000 !important}

.cred-ic, .instr .irole, .ch-total .cht-item b, .cred b,
.bonus-body .bk, .oppcard .ohi, .stickybar .sb-price b{
  color:var(--stride-cyan) !important;
}
.cred-ic, .oppcard .oic{background:rgba(0,255,136,.12) !important;color:var(--stride-cyan) !important}

/* finalcta / cstrip / chero — keep dark gradient */
.finalcta, .cstrip, .chero{background:linear-gradient(135deg,#050505,#171717) !important}
.finalcta::after, .chero::after{
  background:radial-gradient(800px 400px at 50% 0%,rgba(0,255,136,.10),transparent 60%),
             linear-gradient(180deg,rgba(5,5,5,.4),rgba(5,5,5,.9)) !important;
}
.finalcta h2, .cstrip h3, .chero h1{color:var(--ink) !important}
.finalcta p, .cstrip p, .chero .csub{color:var(--ink-2) !important}

/* Profile photo border */
.prof-photo{border:1px solid var(--stride-border) !important}

/* alertbanner */
.alertbanner{background:rgba(0,255,136,.08) !important;color:var(--ink) !important;border:1px solid var(--stride-border) !important;border-left:4px solid var(--stride-cyan) !important}

/* stickybar */
.stickybar{background:rgba(5,5,5,.92) !important;backdrop-filter:blur(14px);border-top:1px solid var(--stride-border) !important}
.stickybar .sb-price span{color:var(--ink-2) !important}

/* curso-online price big block (white on white) — gradient text */
.big, .big *, small.big-cents{
  background:linear-gradient(180deg,#FFFFFF,var(--stride-cyan)) !important;
  -webkit-background-clip:text;background-clip:text;color:transparent !important;
}

/* Strikethrough was */
.was{color:#737373 !important}

/* compre-seu-drone "Entrada/Mais indicado/Topo de linha" pill labels */
.pcat span, .pcat-tag, .pcard .meta > span:first-child, span.tier{color:#A3A3A3 !important}

/* eventos: presencial mode — keep cyan accent on dark, ensure 4.5 */
.evmode, .evmode.mode-pres{background:rgba(23,23,23,.6) !important;color:var(--ink) !important;border:1px solid var(--stride-border) !important}

/* leftover forest-deep text */
b, h3, .prof-quote b{}
.prof-quote{background:rgba(0,255,136,.05) !important;border-left:4px solid var(--stride-cyan) !important;color:var(--ink) !important;font-style:italic}

/* ============================================================
   STRIDE — Round 6: curso-online .offer block + compre-seu-drone tier pills
   ============================================================ */

/* Offer (price) card — was solid white */
.offer{
  background:rgba(23,23,23,.6) !important;
  border:1px solid var(--stride-border) !important;
  box-shadow:0 0 0 1px var(--stride-border), 0 30px 70px -30px rgba(0,255,136,.25) !important;
}
.offer-top{background:linear-gradient(135deg,#050505,#171717) !important;color:var(--ink) !important;border-bottom:1px solid var(--stride-border)}
.offer-top h3{color:var(--ink) !important}
.offer-top .ot-flag{background:var(--stride-cyan) !important;color:#000 !important}
.offer-body{color:var(--ink) !important}
.offer .was{color:#737373 !important}
.offer .now .big, .offer .now .big small, .offer .now .big *{
  background:none !important;
  -webkit-background-clip:border-box !important;background-clip:border-box !important;
  -webkit-text-fill-color:#F2D766 !important;
  color:#F2D766 !important;
  font-weight:800;
}

.offer .cash{color:var(--ink-2) !important}
.offer .cash b{color:var(--stride-cyan) !important;font-weight:700}
.offer-trust, .offer-trust span{color:var(--ink-2) !important}
.offer-trust svg{color:var(--stride-cyan) !important}

/* Guarantee box on curso-online — was beige */
.guarantee, .garantia, .gbox, [class*="guarantee"], [class*="garantia"]{
  background:rgba(23,23,23,.6) !important;
  border:1px solid var(--stride-border) !important;
  color:var(--ink-2) !important;
}
.guarantee p, .garantia p{color:var(--ink-2) !important}

/* compre-seu-drone tier labels in modelchips (Entrada / Mais indicado / Topo de linha) */
.modelchips .mc span,
.tier-row span,
.tier span,
.mline .tier{color:#B0B0B0 !important}

/* Any remaining beige bg */
[style*="background:#efeadd"], [style*="background:#EFEADD"],
[style*="background-color:#efeadd"], [style*="background-color:#EFEADD"]{
  background:rgba(23,23,23,.6) !important;color:var(--ink-2) !important;border:1px solid var(--stride-border) !important;
}

/* ============================================================
   STRIDE — Round 7: simulator product-row labels + guarantee block + tiny waste
   ============================================================ */
.pv, .pv span{color:var(--ink) !important}
.pv span{color:#A3A3A3 !important;font-weight:500}

/* /curso-online .guarantee — gseal/body */
.guarantee{
  background:rgba(23,23,23,.6) !important;
  border:1px solid var(--stride-border) !important;
  color:var(--ink) !important;
}
.guarantee h3{color:var(--ink) !important}
.guarantee p{color:var(--ink-2) !important}
.gseal, .gseal div{color:var(--stride-cyan) !important}
.gseal b{color:var(--stride-cyan) !important;font-size:38px}
.gseal span{color:var(--ink-2) !important}

/* .was — bump above 4.5 */
.was, .offer .was{color:#A3A3A3 !important}

/* Ensure no stray dark-green heading or text in dark surfaces */
.csec h3, .guarantee h3{color:var(--ink) !important}

/* ============================================================
   Services — restore background photos with dark overlay
   (override STRIDE solid bg so svc-pulverizacao/drone/cursos/manutencao show)
   ============================================================ */
.svc-grid .svc{
  background-color:#0A0A0A !important;
  background-size:cover !important;
  background-position:center !important;
  background-repeat:no-repeat !important;
}
.svc-grid .svc::before{
  content:"";position:absolute;inset:0;
  background:linear-gradient(180deg,rgba(5,5,5,.25) 0%,rgba(5,5,5,.55) 55%,rgba(5,5,5,.88) 100%);
  z-index:0;
}
.svc-grid .svc > *{position:relative;z-index:1}

.svc-grid .svc[href="/pulverizacao"]{background-image:url('/__l5e/assets-v1/9f68113c-73f5-476a-ae53-bb3cfbb6fa8f/svc-pulverizacao.jpg') !important}
.svc-grid .svc[href="/compre-seu-drone"]{background-image:url('/__l5e/assets-v1/dbb9b932-0613-4a4d-a289-3c91f168ad0e/svc-drone.webp') !important}
.svc-grid .svc[href="/proximos-eventos"]{background-image:url('/__l5e/assets-v1/73f4e639-ce4f-4789-a2ac-167561230936/svc-cursos.webp') !important}
.svc-grid .svc[href="/manutencao"]{background-image:url('/__l5e/assets-v1/8ddd20b3-8cfc-4323-b586-a9f5182b5de8/svc-manutencao.webp') !important}
