@import url("https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@500;700&display=swap");

/* Public-site + portal dark/green system, aligned to /services (services.css)
   and /onboarding. Scoped to body.fin-dark; pages opt in through $body_class
   and _inc/head.php loads this file with an mtime version (10-year asset cache).

   The base stylesheet (styles.css) and hundreds of inline styles read the
   light tokens --bg/--card/--text/--muted/--line/--blue, so remapping them here
   darkens those automatically instead of chasing each element. */

body.fin-dark{
  --svc-bg:#0a0a0c;
  --svc-panel:#131316;
  --svc-panel2:#1a1b1f;
  --svc-ink:#f2f4f7;
  --svc-muted:#9aa0ab;
  --svc-line:rgba(255,255,255,.11);
  --svc-line-strong:rgba(255,255,255,.18);
  --svc-gold-light:#4ade80;
  --svc-gold:#22c55e;
  --svc-gold-deep:#16a34a;
  --svc-gold-glow:rgba(34,197,94,.35);
  --svc-mint:linear-gradient(135deg,#86efac 0%,#4ade80 48%,#22c55e 100%);
  --svc-surface:linear-gradient(145deg,rgba(27,28,32,.94),rgba(17,17,20,.96));
  --svc-num:"JetBrains Mono", ui-monospace, "SF Mono", Consolas, monospace;
  --svc-ease:cubic-bezier(.2,.7,.2,1);

  /* legacy light tokens -> dark */
  --bg:var(--svc-bg);
  --card:var(--svc-panel2);
  --text:var(--svc-ink);
  --muted:var(--svc-muted);
  --line:var(--svc-line);
  --blue:var(--svc-gold);
  --blue2:var(--svc-gold-light);
  --primary:var(--svc-gold);
  --shadow:0 24px 64px rgba(0,0,0,.38);
  --radius:20px;
  /* per-page light tokens used by agendar / atendimento-premium / #modal-lead */
  --ink:var(--svc-ink);
  --mut:var(--svc-muted);
  --p1:var(--svc-gold-light);
  --p2:var(--svc-gold);

  color-scheme:dark;
  color:var(--svc-ink);
  background:transparent;
  -webkit-font-smoothing:antialiased;
}
html:has(body.fin-dark){ background:#0a0a0c; }

/* Ambient layer: the /services + /onboarding grid with a soft green bloom. */
body.fin-dark::before{
  content:"";
  position:fixed; inset:0; z-index:-1; pointer-events:none;
  background:
    radial-gradient(ellipse 70% 50% at 12% 0%, rgba(34,197,94,.13), transparent 66%),
    radial-gradient(ellipse 45% 38% at 96% 78%, rgba(34,197,94,.06), transparent 72%),
    linear-gradient(rgba(255,255,255,.032) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,.032) 1px, transparent 1px),
    #0a0a0c;
  background-size:auto, auto, 56px 56px, 56px 56px, auto;
}
body.fin-dark main,
body.fin-dark .section{ background:transparent; }
body.fin-dark ::selection{ background:rgba(34,197,94,.35); color:#fff; }
body.fin-dark a{ -webkit-tap-highlight-color:transparent; }

/* ---------------------------------------------------------------- Hero */
body.fin-dark .hero{
  position:relative;
  background:
    radial-gradient(55% 80% at 88% 0%, rgba(34,197,94,.14), transparent 62%),
    linear-gradient(180deg, rgba(10,10,12,0), rgba(10,10,12,.55));
  border-bottom:1px solid var(--svc-line);
  color:var(--svc-ink);
  padding:clamp(52px,9vw,96px) 0 clamp(36px,6vw,60px);
  /* the sculpture frames itself against the hero box, so the hero needs the
     same generous height it has on /services or the S scales up into a wall */
  display:flex;
  align-items:center;
  min-height:min(72vh,640px);
}
body.fin-dark .hero > .container{ width:100%; position:relative; z-index:1; }
/* keeps the headline legible where the sculpture's brighter ribbons pass
   behind it — heavier on phones, where the S crosses the whole width */
body.fin-dark .hero::after{
  content:"";
  position:absolute; inset:0;
  background:linear-gradient(90deg, rgba(10,10,12,.88) 0%, rgba(10,10,12,.55) 46%, rgba(10,10,12,0) 78%);
  pointer-events:none;
}
@media (max-width:860px){
  body.fin-dark .hero::after{
    background:linear-gradient(180deg, rgba(10,10,12,.62) 0%, rgba(10,10,12,.82) 38%, rgba(10,10,12,.72) 70%, rgba(10,10,12,.35) 100%);
  }
}
body.fin-dark .hero h1{
  color:var(--svc-ink);
  font-weight:900;
  font-size:clamp(38px,7.2vw,76px) !important;
  letter-spacing:-.04em;
  line-height:.98;
  margin:0 0 16px;
  max-width:16ch;
  text-wrap:balance;
}
body.fin-dark .hero h1 span{ display:block; color:var(--svc-gold-light); opacity:1; }
body.fin-dark .hero .sub{
  color:#b3b8c1;
  opacity:1;
  font-weight:500;
  font-size:clamp(16px,1.7vw,19px);
  line-height:1.55;
  max-width:620px !important;
}
body.fin-dark .hero .sub:empty{ display:none; }
/* hero chip -> /onboarding "eyebrow": mono caps with a leading rule */
body.fin-dark .hero .badge:empty{ display:none; }
body.fin-dark .hero .badge{
  display:inline-flex; align-items:center; gap:10px;
  background:transparent !important;
  border:0 !important;
  padding:0 !important;
  margin-bottom:18px;
  color:var(--svc-gold-light) !important;
  font:700 11px/1 var(--svc-num);
  letter-spacing:.14em;
  text-transform:uppercase;
}
body.fin-dark .hero .badge::before{ content:""; width:26px; height:1px; background:var(--svc-gold); }
body.fin-dark .hero .badge i{ margin-right:0 !important; }
body.fin-dark .hero .actions{ gap:10px; margin-top:26px; }

@keyframes finRise{ from{opacity:0;transform:translateY(14px);filter:blur(4px)} to{opacity:1;transform:none;filter:none} }
body.fin-dark .hero .container > *{ animation:finRise .7s var(--svc-ease) both; }
body.fin-dark .hero .container > *:nth-child(2){ animation-delay:.06s; }
body.fin-dark .hero .container > *:nth-child(3){ animation-delay:.12s; }
body.fin-dark .hero .container > *:nth-child(n+4){ animation-delay:.18s; }
@media (prefers-reduced-motion:reduce){ body.fin-dark .hero .container > *{ animation:none; } }

/* ------------------------------------------------------------- Buttons */
body.fin-dark .btn{
  border-radius:999px;
  border:1px solid var(--svc-line-strong);
  background:rgba(255,255,255,.05);
  color:var(--svc-ink);
  font-weight:700;
  min-height:44px;
  padding:11px 18px;
  transition:background .2s ease, border-color .2s ease, transform .2s var(--svc-ease), box-shadow .2s ease;
}
body.fin-dark .btn:hover{ background:rgba(255,255,255,.1); border-color:rgba(255,255,255,.26); }
body.fin-dark .btn.primary,
body.fin-dark .btn-primary{
  background:var(--svc-mint);
  border-color:transparent;
  color:#05140b;
  box-shadow:0 10px 30px rgba(34,197,94,.28), inset 0 1px 0 rgba(255,255,255,.35);
}
body.fin-dark .btn.primary:hover,
body.fin-dark .btn-primary:hover{
  filter:none;
  transform:translateY(-2px);
  box-shadow:0 16px 38px rgba(34,197,94,.38), inset 0 1px 0 rgba(255,255,255,.35);
}
body.fin-dark .btn:focus-visible,
body.fin-dark a:focus-visible,
body.fin-dark button:focus-visible,
body.fin-dark summary:focus-visible{ outline:2px solid var(--svc-gold-light); outline-offset:2px; }

/* ------------------------------------------------------ Section headings */
body.fin-dark .h2{
  color:var(--svc-ink);
  font-weight:800;
  font-size:clamp(24px,3.4vw,36px);
  letter-spacing:-.025em;
  line-height:1.08;
}
body.fin-dark .hrline{
  background:var(--svc-gold);
  height:2px;
  width:48px;
  border-radius:999px;
  box-shadow:0 0 16px var(--svc-gold-glow);
}

/* ---------------------------------------------------------------- Panels */
body.fin-dark .panel{
  position:relative;
  background:var(--svc-surface);
  border:1px solid var(--svc-line);
  border-radius:20px;
  box-shadow:0 30px 80px rgba(0,0,0,.34);
  color:var(--svc-ink);
}
body.fin-dark .panel.pad{ padding:clamp(18px,3vw,28px); }
/* the thin green top hairline from the /onboarding card */
body.fin-dark .panel::before,
body.fin-dark .feature-card::before{
  content:"";
  position:absolute;
  top:-1px; left:24px; right:24px;
  width:auto; height:1px;
  background:linear-gradient(90deg, transparent, rgba(74,222,128,.75), transparent);
  opacity:.6;
  pointer-events:none;
}
body.fin-dark .panel .panel{ background:rgba(255,255,255,.025); box-shadow:none; border-radius:16px; }
body.fin-dark .panel .panel::before{ display:none; }
body.fin-dark .panel[style*="background:#fff"],
body.fin-dark .panel[style*="background: #fff"],
body.fin-dark .panel[style*="background:white"],
body.fin-dark .panel[style*="background:#fafafa"]{ background:var(--svc-surface) !important; }
/* the template's closing "CTA" panel, marked by an inline light grey */
body.fin-dark .panel[style*="background:#f7f7f7"],
body.fin-dark .panel[style*="background:#f8fafc"]{
  background:linear-gradient(135deg, rgba(34,197,94,.12), rgba(22,163,74,.03) 60%), var(--svc-panel) !important;
  border-color:rgba(74,222,128,.3);
}
body.fin-dark .panel p{ color:var(--svc-muted); }
body.fin-dark .panel b,
body.fin-dark .panel strong{ color:var(--svc-ink); }
body.fin-dark .panel > div[style*="font-weight:900"]{ letter-spacing:-.01em; }
body.fin-dark .bigcta{
  background:linear-gradient(135deg, rgba(34,197,94,.16), rgba(22,163,74,.05) 60%), var(--svc-panel);
  border:1px solid rgba(74,222,128,.28);
  border-radius:20px;
  color:var(--svc-ink);
}
body.fin-dark .bigcta .left{ color:var(--svc-ink); }

/* ----------------------------------------------------------- Feature card */
body.fin-dark .feature-title{ color:var(--svc-ink); font-weight:800; font-size:20px; letter-spacing:-.015em; }
body.fin-dark .feature-sub{ color:var(--svc-muted); }
body.fin-dark .feature-list li{ color:var(--svc-ink); font-weight:600; }
body.fin-dark .feature-list li::before{
  border-color:rgba(74,222,128,.4);
  background-color:rgba(34,197,94,.14);
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath fill='%234ade80' d='M7.7 14.6 3.9 10.8l1.4-1.4 2.4 2.4 6-6 1.4 1.4-7.4 7.4Z'/%3E%3C/svg%3E");
}

/* ---------------------------------------------------------- Service tiles */
body.fin-dark .cards{ gap:12px; }
body.fin-dark .cards .tile,
body.fin-dark .tile{
  /* opaque enough to stay readable where the hero sculpture passes behind */
  background:rgba(18,18,21,.74);
  backdrop-filter:blur(10px);
  -webkit-backdrop-filter:blur(10px);
  color:var(--svc-ink);
  border:1px solid var(--svc-line);
  border-radius:16px;
  box-shadow:none;
  padding:16px;
  min-height:76px;
  transition:border-color .2s ease, transform .25s var(--svc-ease), background .2s ease;
}
body.fin-dark .cards .tile:hover,
body.fin-dark .tile:hover{
  filter:none;
  border-color:rgba(74,222,128,.55);
  background:rgba(34,197,94,.05);
  transform:translateY(-2px);
}
body.fin-dark .tile .icon{
  width:44px; height:44px; border-radius:12px;
  background:rgba(34,197,94,.12) !important;
  border:1px solid rgba(74,222,128,.3);
  color:var(--svc-gold-light) !important;
}
body.fin-dark .tile .t{ color:var(--svc-ink); font-weight:800; letter-spacing:-.005em; }
body.fin-dark .tile .d{ color:var(--svc-muted); opacity:1; font-size:12.5px; }
body.fin-dark .cards .tile.highlight{
  border-color:rgba(74,222,128,.55);
  background:linear-gradient(180deg, rgba(34,197,94,.12), rgba(34,197,94,.02));
}
body.fin-dark .cards .tile.highlight .icon{ background:rgba(34,197,94,.2) !important; border-color:var(--svc-gold); }

/* ------------------------------------------------------------------ KPIs */
body.fin-dark .kpi{ background:rgba(255,255,255,.03); border:1px solid var(--svc-line); border-radius:14px; }
body.fin-dark .kpi b{ font-family:var(--svc-num); color:var(--svc-gold-light); font-size:12px; letter-spacing:.08em; text-transform:uppercase; }
body.fin-dark .kpi span{ color:var(--svc-muted); }

/* --------------------------------------------------------------- Reviews */
body.fin-dark .review{ background:var(--svc-surface); border:1px solid var(--svc-line); border-radius:18px; color:var(--svc-ink); }
body.fin-dark .review .stars{ color:var(--svc-gold-light); }
body.fin-dark .review p{ opacity:1; color:var(--svc-ink); }
body.fin-dark .review .name{ opacity:1; color:var(--svc-muted); font:700 11px var(--svc-num); letter-spacing:.1em; text-transform:uppercase; }

/* --------------------------------------------------------- Posts + blog */
body.fin-dark .posttag{
  color:var(--svc-gold-light);
  background:rgba(34,197,94,.09);
  border:1px solid rgba(74,222,128,.26);
  font:700 10.5px/1 var(--svc-num);
  letter-spacing:.1em;
  text-transform:uppercase;
  padding:7px 10px;
}
body.fin-dark .posttitle{ color:var(--svc-ink); font-weight:800; letter-spacing:-.01em; }
body.fin-dark .postdesc{ color:var(--svc-muted); }
body.fin-dark .postcard,
body.fin-dark .blog-card{
  background:var(--svc-surface);
  border:1px solid var(--svc-line);
  border-radius:18px;
  box-shadow:none;
  transition:border-color .2s ease, transform .25s var(--svc-ease);
}
body.fin-dark .postcard:hover,
body.fin-dark .blog-card:hover{ border-color:rgba(74,222,128,.45); transform:translateY(-2px); }
body.fin-dark .blog-card .img{ background:#101113 !important; border-bottom:1px solid var(--svc-line) !important; }
body.fin-dark .blog-card .t{ color:var(--svc-ink); }
body.fin-dark .blog-card .a{ color:var(--svc-gold-light); font:700 12px var(--svc-num); letter-spacing:.06em; text-transform:uppercase; }
body.fin-dark .postgrid a[style]{ border-radius:12px; }
body.fin-dark .postgrid div[style*="background:#0b1220"],
body.fin-dark .blog-grid div[style*="background:#0b1220"]{ background:#101113 !important; }
body.fin-dark .blog-hero h1{ font-weight:900; letter-spacing:-.035em; }
body.fin-dark .blog-content{ color:#d6d9df; }
body.fin-dark .blog-content h2,
body.fin-dark .blog-content h3,
body.fin-dark .blog-content h4{ color:var(--svc-ink); letter-spacing:-.015em; }
body.fin-dark .blog-content a{ color:var(--svc-gold-light); text-decoration:underline; text-underline-offset:3px; }
body.fin-dark .blog-content blockquote{ margin:1.2em 0; padding:4px 0 4px 16px; border-left:2px solid var(--svc-gold); color:var(--svc-muted); }
body.fin-dark .blog-content code{ background:rgba(255,255,255,.06); border:1px solid var(--svc-line); border-radius:6px; padding:1px 6px; }
body.fin-dark .blog-content table th,
body.fin-dark .blog-content table td{ border-bottom:1px solid var(--svc-line); }

/* ------------------------------------------------------------------ FAQ */
body.fin-dark .faq details{ border-top:1px solid var(--svc-line); padding:16px 0; }
body.fin-dark .faq details:first-of-type{ border-top:0; }
body.fin-dark .faq summary{
  color:var(--svc-ink);
  list-style:none;
  display:flex; align-items:center; justify-content:space-between; gap:16px;
  font-weight:700;
}
body.fin-dark .faq summary::-webkit-details-marker{ display:none; }
body.fin-dark .faq summary::after{
  content:"+";
  flex:0 0 auto;
  width:28px; height:28px;
  display:grid; place-items:center;
  border:1px solid var(--svc-line-strong);
  border-radius:50%;
  color:var(--svc-gold-light);
  font:500 16px/1 var(--svc-num);
  transition:transform .25s var(--svc-ease), background .2s ease;
}
body.fin-dark .faq details[open] summary::after{ transform:rotate(45deg); background:rgba(34,197,94,.12); }
body.fin-dark .faq details > div{ color:var(--svc-muted); }

/* ---------------------------------------------------------------- Forms */
body.fin-dark .input,
body.fin-dark textarea,
body.fin-dark select,
body.fin-dark input[type="text"],
body.fin-dark input[type="email"],
body.fin-dark input[type="tel"],
body.fin-dark input[type="number"],
body.fin-dark input[type="date"],
body.fin-dark input[type="time"],
body.fin-dark input[type="password"],
body.fin-dark input[type="search"],
body.fin-dark input[type="url"]{
  background:rgba(255,255,255,.045);
  border:1px solid rgba(255,255,255,.13);
  color:var(--svc-ink);
  border-radius:12px;
  transition:border-color .18s ease, background .18s ease, box-shadow .18s ease;
}
body.fin-dark .input:hover,
body.fin-dark textarea:hover,
body.fin-dark select:hover,
body.fin-dark input:hover{ background:rgba(255,255,255,.065); }
body.fin-dark .input:focus,
body.fin-dark textarea:focus,
body.fin-dark select:focus,
body.fin-dark input:focus{
  outline:0;
  border-color:rgba(74,222,128,.65);
  background:rgba(34,197,94,.045);
  box-shadow:0 0 0 4px rgba(34,197,94,.12);
}
body.fin-dark ::placeholder{ color:#6b717b; opacity:1; }
body.fin-dark select option{ background:#131316; color:var(--svc-ink); }
body.fin-dark input[type="checkbox"],
body.fin-dark input[type="radio"]{ accent-color:var(--svc-gold); }
body.fin-dark input[type="file"]{ color:var(--svc-muted); }
body.fin-dark label{ color:#d8dbe1; }
body.fin-dark .note{ color:var(--svc-muted); }

/* ---------------------------------------------------- Tables, chips, tabs */
body.fin-dark .table th,
body.fin-dark .table td{ border-bottom:1px solid var(--svc-line); }
body.fin-dark .table th{ color:var(--svc-muted); font:700 11px var(--svc-num); letter-spacing:.08em; text-transform:uppercase; }
body.fin-dark .chip{ background:rgba(255,255,255,.05); border:1px solid var(--svc-line); color:var(--svc-muted); }
body.fin-dark .status{ border-color:var(--svc-line); color:var(--svc-ink); }
body.fin-dark .status.open{ background:rgba(245,158,11,.12); border-color:rgba(245,158,11,.35); color:#fcd34d; }
body.fin-dark .status.done{ background:rgba(34,197,94,.12); border-color:rgba(74,222,128,.35); color:#86efac; }
body.fin-dark .status.wait{ background:rgba(96,165,250,.12); border-color:rgba(96,165,250,.35); color:#93c5fd; }
body.fin-dark .tabbtn{ background:rgba(255,255,255,.04); border:1px solid var(--svc-line); color:var(--svc-ink); }
body.fin-dark .tabbtn.active{ background:rgba(34,197,94,.12); border-color:rgba(74,222,128,.45); color:var(--svc-gold-light); }
body.fin-dark .fabstack .fab{ background:var(--svc-panel2); color:var(--svc-ink); border-color:var(--svc-line); }
body.fin-dark .fabstack .fab.primary{ background:var(--svc-mint); color:#05140b; }

/* =====================================================================
   "Polish" page template — the family shared by /atendimento-premium,
   /agendar, /suporte/falar-comigo, /suporte/sobre-nos and the /consulting
   service pages (hero-home + panel-soft + its own wizard modal). Kept here
   rather than per page so converting one is just the fin-dark body class.
   ===================================================================== */
body.fin-dark .hero-home,
body.fin-dark .hero-agendar{
  background:
    radial-gradient(60% 80% at 88% 0%, rgba(34,197,94,.16), transparent 62%),
    radial-gradient(50% 60% at 0% 100%, rgba(34,197,94,.06), transparent 70%);
  border-bottom:1px solid var(--svc-line);
  padding:clamp(48px,8vw,88px) 0 clamp(32px,5vw,56px);
  color:var(--svc-ink);
}
body.fin-dark .hero-home:before,
body.fin-dark .hero-agendar:before{ display:none; }
/* Same treatment .hero already got: fin-hero-3d.js tags these heroes as
   .svc-hero too, so the sculpture measures and frames itself against this
   box. Without the height it scales up into a wall, and without the scrim
   the headline sits directly on the brighter ribbons. */
body.fin-dark .hero-home,
body.fin-dark .hero-agendar{
  display:flex;
  align-items:center;
  min-height:min(64vh,560px);
}
body.fin-dark .hero-home > .container,
body.fin-dark .hero-agendar > .container{ width:100%; position:relative; z-index:1; }
body.fin-dark .hero-home::after,
body.fin-dark .hero-agendar::after{
  content:"";
  position:absolute; inset:0;
  background:linear-gradient(90deg, rgba(10,10,12,.88) 0%, rgba(10,10,12,.55) 46%, rgba(10,10,12,0) 78%);
  pointer-events:none;
}
@media (max-width:860px){
  body.fin-dark .hero-home::after,
  body.fin-dark .hero-agendar::after{
    background:linear-gradient(180deg, rgba(10,10,12,.62) 0%, rgba(10,10,12,.82) 38%, rgba(10,10,12,.72) 70%, rgba(10,10,12,.35) 100%);
  }
}
body.fin-dark .badge-soft{
  background:rgba(34,197,94,.08);
  border-color:rgba(74,222,128,.26);
  color:var(--svc-gold-light);
  font:700 10.5px/1 var(--svc-num);
  letter-spacing:.1em;
  text-transform:uppercase;
  padding:8px 11px;
}
/* some of these chips carry light inline colours in the markup */
body.fin-dark .badge-soft[style]{
  background:rgba(34,197,94,.08) !important;
  border-color:rgba(74,222,128,.26) !important;
  color:var(--svc-gold-light) !important;
}
body.fin-dark .hero-title{
  font-size:clamp(34px,6vw,62px);
  font-weight:900;
  letter-spacing:-.04em;
  line-height:1.02;
  margin:20px 0 16px;
  max-width:18ch;
  text-wrap:balance;
}
body.fin-dark .hero-sub{ color:#b3b8c1; font-size:clamp(16px,1.6vw,18px); line-height:1.6; max-width:700px; }
body.fin-dark .hero-sub b{ color:var(--svc-ink); }
body.fin-dark .hero-cta{ margin-top:26px; }
body.fin-dark .btn-hero{ min-height:48px; padding:12px 18px; border-radius:999px; font-weight:800; }
body.fin-dark .btn-hero.primary{
  background:var(--svc-mint); color:#05140b; border-color:transparent;
  box-shadow:0 10px 30px rgba(34,197,94,.28), inset 0 1px 0 rgba(255,255,255,.35);
}
body.fin-dark .btn-hero.ghost{ background:rgba(255,255,255,.05); border-color:var(--svc-line-strong); color:var(--svc-ink); box-shadow:none; }
body.fin-dark .trustbar{ color:var(--svc-muted); }
body.fin-dark .trustpill{ background:transparent; border-color:var(--svc-line); }
body.fin-dark .trustpill i{ color:var(--svc-gold-light); }
body.fin-dark .hero-home .panel,
body.fin-dark .hero-agendar .panel{ background:var(--svc-surface) !important; border-color:var(--svc-line) !important; }
body.fin-dark .hero-home .panel .panel{ background:rgba(34,197,94,.05) !important; border-color:rgba(74,222,128,.22) !important; }
body.fin-dark .hero-home .badge,
body.fin-dark .panel .badge,
body.fin-dark .panel-soft .badge{
  display:inline-flex; align-items:center;
  background:rgba(34,197,94,.08) !important;
  border:1px solid rgba(74,222,128,.24) !important;
  color:#bbf7d0 !important;
  border-radius:999px;
  padding:7px 11px;
  font-size:12.5px; font-weight:700;
}
body.fin-dark .panel .badge i,
body.fin-dark .hero-home .badge i{ color:var(--svc-gold-light); }

body.fin-dark .panel-soft{ background:var(--svc-surface); border-color:var(--svc-line); border-radius:20px; }
body.fin-dark .panel-soft i[style*="color:var(--p1)"],
body.fin-dark .panel-soft i[style*="color:var(--p2)"],
body.fin-dark .modal-title i{ color:var(--svc-gold-light) !important; }
body.fin-dark .mini-ic{ background:rgba(34,197,94,.12); border-color:rgba(74,222,128,.3); color:var(--svc-gold-light); }
body.fin-dark .marquee{ background:rgba(255,255,255,.02); border-color:var(--svc-line); }
body.fin-dark .marqitem{ background:rgba(255,255,255,.05); border-color:var(--svc-line); color:var(--svc-ink); font-weight:600; }
body.fin-dark .step{ background:rgba(255,255,255,.03); border-color:var(--svc-line); }
body.fin-dark .step .n{
  background:rgba(34,197,94,.1); border-color:rgba(74,222,128,.3); color:var(--svc-gold-light);
  font-family:var(--svc-num); border-radius:10px;
}
body.fin-dark .step .tx .h{ color:var(--svc-ink); }
body.fin-dark .step .tx .p{ color:var(--svc-muted); }
body.fin-dark .kpi .t{ color:var(--svc-ink); font-family:inherit; font-size:15px; letter-spacing:0; text-transform:none; }
body.fin-dark .kpi .t i{ color:var(--svc-gold-light) !important; }
body.fin-dark .kpi .d{ color:var(--svc-muted); }
body.fin-dark .iconli{ color:var(--svc-muted); }
body.fin-dark .iconli b{ color:var(--svc-ink); }
body.fin-dark .iconli i{ color:var(--svc-gold-light); }
body.fin-dark .mini-note{ background:rgba(34,197,94,.05); border-color:rgba(74,222,128,.2); color:var(--svc-muted); }
body.fin-dark .mini-note b{ color:var(--svc-ink); }
body.fin-dark .mini-note i{ color:var(--svc-gold-light); }
body.fin-dark .offer{ background:var(--svc-surface); border-color:var(--svc-line); }
body.fin-dark .offer .ribbon{ background:rgba(34,197,94,.14); border-color:rgba(74,222,128,.35); color:var(--svc-gold-light); }
body.fin-dark .offer .tip{ border-top-color:var(--svc-line); color:var(--svc-muted); }
body.fin-dark .btn.ghost{ background:rgba(255,255,255,.05); }
body.fin-dark #conteudo li::marker,
body.fin-dark .panel-soft li::marker{ color:var(--svc-gold); }

/* the template's own wizard modal (ids differ per page: modal-lead, modal-booking, ...) */
body.fin-dark .modal{ background:rgba(5,6,8,.72); backdrop-filter:blur(6px); }
body.fin-dark .modal-dialog{ background:var(--svc-panel2); color:var(--svc-ink); border-color:var(--svc-line); border-radius:22px; box-shadow:0 40px 100px rgba(0,0,0,.6); }
body.fin-dark .modal-head{ background:var(--svc-panel2); border-bottom-color:var(--svc-line); }
body.fin-dark .modal-close{ background:rgba(255,255,255,.06); border-color:var(--svc-line-strong); color:var(--svc-ink); border-radius:999px; }
body.fin-dark .modal-close:hover{ background:rgba(255,255,255,.12); }
body.fin-dark .prof{ background:rgba(34,197,94,.04); border-color:rgba(74,222,128,.18); }
body.fin-dark .prof .mini,
body.fin-dark .help,
body.fin-dark .muted2,
body.fin-dark .hint{ color:var(--svc-muted); }
body.fin-dark .prof .pitem{ background:rgba(255,255,255,.03); border-color:var(--svc-line); }
body.fin-dark .prof .pitem .k{ color:var(--svc-muted); font-family:var(--svc-num); letter-spacing:.1em; }
body.fin-dark .prof .pitem .v{ color:var(--svc-ink); }
body.fin-dark .wiz{ background:transparent; border-color:var(--svc-line); }
body.fin-dark .wiz .muted{ color:var(--svc-muted); }
body.fin-dark .prog{ background:rgba(255,255,255,.08); }
body.fin-dark .prog > div{ background:var(--svc-mint); }
body.fin-dark .step-pill{ background:rgba(255,255,255,.05); border-color:var(--svc-line); color:var(--svc-ink); }
body.fin-dark .tcard{
  border:1px solid var(--svc-line) !important;
  background:rgba(255,255,255,.025) !important;
  border-radius:16px; padding:14px;
}
body.fin-dark .field label{ color:#d8dbe1; }
body.fin-dark .field label i{ color:var(--svc-gold-light); margin-right:4px; }
body.fin-dark .req{ color:#fca5a5; }
body.fin-dark .in2{ background:rgba(255,255,255,.045); color:var(--svc-ink); border-color:rgba(255,255,255,.13); box-shadow:none; font-weight:600; }
body.fin-dark .in2:focus{ border-color:rgba(74,222,128,.65); box-shadow:0 0 0 4px rgba(34,197,94,.12); }
body.fin-dark .in2.is-error{ border-color:rgba(248,113,113,.6); box-shadow:0 0 0 4px rgba(239,68,68,.12); }
body.fin-dark .chips .chip,
body.fin-dark .slot{ position:relative; background:rgba(255,255,255,.04); border-color:var(--svc-line); color:var(--svc-ink); font-weight:700; }
body.fin-dark .slot{ font-family:var(--svc-num); font-variant-numeric:tabular-nums; }
body.fin-dark .chips .chip:hover,
body.fin-dark .slot:hover{ border-color:rgba(74,222,128,.45); }
body.fin-dark .chips .chip.active,
body.fin-dark .slot.sel{ background:rgba(34,197,94,.16); border-color:rgba(74,222,128,.6); color:#dcfce7; box-shadow:0 0 0 3px rgba(34,197,94,.1); }
body.fin-dark .chips .chip input[type="radio"]{ position:absolute; opacity:0; width:1px; height:1px; pointer-events:none; }
body.fin-dark .chips .chip:focus-within{ outline:2px solid var(--svc-gold-light); outline-offset:2px; }
body.fin-dark .msg{ background:rgba(255,255,255,.03); border-color:var(--svc-line); color:var(--svc-muted); }
body.fin-dark .msg.ok{ background:rgba(34,197,94,.1); border-color:rgba(74,222,128,.35); color:#bbf7d0; }
body.fin-dark .msg.bad{ background:rgba(239,68,68,.1); border-color:rgba(248,113,113,.35); color:#fecaca; }
body.fin-dark .modal a,
body.fin-dark .wiz a{ color:var(--svc-gold-light); }
body.fin-dark .btnx{ background:rgba(255,255,255,.05); border-color:var(--svc-line-strong); color:var(--svc-ink); border-radius:999px; }
body.fin-dark .btnx.primary{ background:var(--svc-mint); color:#05140b; border-color:transparent; box-shadow:0 10px 30px rgba(34,197,94,.28); }
body.fin-dark .btnx.ghost{ background:rgba(255,255,255,.04); }
body.fin-dark .wiz-actions{ border-top-color:var(--svc-line); }
@media (max-width:640px){
  body.fin-dark .hero-badges{ gap:6px; }
  body.fin-dark .btn-hero{ flex:1 1 100%; justify-content:center; }
}

/* ------------------------------------------- /services checkout + success
   checkout.css is written against the legacy tokens, which the remap above
   already darkens; only its hardcoded light-theme accents need fixing. */
body.fin-dark .svc-co-card{ background:var(--svc-surface); border-color:var(--svc-line); border-radius:20px; }
body.fin-dark .svc-co-head h1{ font-weight:900; letter-spacing:-.03em; font-size:clamp(26px,3.4vw,36px); }
body.fin-dark .svc-co-item{ background:rgba(255,255,255,.03); border-color:var(--svc-line); }
body.fin-dark .svc-co-item-remove{ background:rgba(239,68,68,.14); color:#fca5a5; }
body.fin-dark .svc-co-item-remove:hover{ background:rgba(239,68,68,.22); }
body.fin-dark .svc-co-notice{ background:rgba(245,158,11,.1); border-color:rgba(245,158,11,.32); color:#fde68a; }
body.fin-dark .svc-co-error{ background:rgba(239,68,68,.1); border-color:rgba(248,113,113,.35); color:#fecaca; }
body.fin-dark .svc-co-client{ background:rgba(255,255,255,.03); border-color:var(--svc-line); }
body.fin-dark .svc-co-client i{ color:var(--svc-gold-light); }
body.fin-dark .svc-co-field input{ background:rgba(255,255,255,.045); border-color:rgba(255,255,255,.13); }
body.fin-dark .svc-co-total-row strong{ font-family:var(--svc-num); color:var(--svc-ink); }
body.fin-dark .svc-co-empty i{ color:var(--svc-gold-light); opacity:1; }

/* ------------------------------------------------- Hero sculpture stage
   The /services "S" (assets/fin-hero-3d.js + fin-sculpture.js). Until
   WebGL is up — and permanently on devices that skip it — the glow below
   stands in for it, so the hero never waits on a download to look right. */
.fin-stage{
  position:fixed; inset:0; z-index:-1;
  pointer-events:none; overflow:hidden;
  contain:strict;
}
.fin-stage .svc-page-bg{ position:absolute; inset:0; transition:transform .4s ease-out; }
.fin-canvas{ position:absolute; inset:0; opacity:0; transition:opacity 1.1s ease; }
.fin-canvas canvas{ display:block; width:100%; height:100%; }
.fin-stage.is-live .fin-canvas{ opacity:1; }
.fin-stage::after{
  content:"";
  position:absolute;
  right:-8%; top:-12%;
  width:min(78vw,820px); height:min(78vw,820px);
  border-radius:50%;
  background:radial-gradient(circle at 50% 50%, rgba(34,197,94,.2), rgba(34,197,94,.05) 46%, transparent 70%);
  opacity:.9;
  transition:opacity 1.1s ease;
}
.fin-stage.is-loading::after{ animation:finBreathe 2.6s ease-in-out infinite; }
.fin-stage.is-live::after{ opacity:0; }
@keyframes finBreathe{
  0%,100%{ opacity:.5; transform:scale(.96); }
  50%{ opacity:1; transform:scale(1.04); }
}
@media (prefers-reduced-motion:reduce){
  .fin-stage.is-loading::after{ animation:none; }
  .fin-canvas{ transition:none; }
}
@media (max-width:640px){
  .fin-stage::after{ right:-25%; top:-6%; width:120vw; height:120vw; }
}

/* ---------------------------------------------------------- Cookie modal */
body.fin-dark .cookie-overlay{ background:rgba(5,6,8,.72); backdrop-filter:blur(6px); }
body.fin-dark .cookie-modal{
  position:relative;
  background:var(--svc-surface), #141417;
  color:var(--svc-ink);
  border:1px solid var(--svc-line);
  border-radius:22px;
  box-shadow:0 40px 100px rgba(0,0,0,.6);
}
body.fin-dark .cookie-modal::before{
  content:""; position:absolute; top:-1px; left:28px; right:28px; height:1px;
  background:linear-gradient(90deg, transparent, rgba(74,222,128,.8), transparent);
}
body.fin-dark .cookie-modal h2{ color:var(--svc-ink); letter-spacing:-.02em; }
body.fin-dark .cookie-modal p,
body.fin-dark .cookie-muted,
body.fin-dark .cookie-setting p{ color:var(--svc-muted); }
body.fin-dark .cookie-actions{ background:transparent; }
body.fin-dark .cookie-actions .btn{ flex:1 1 0; border-radius:14px; }
body.fin-dark .btn-outline{ background:rgba(255,255,255,.05); color:var(--svc-ink); border:1px solid var(--svc-line-strong); }
body.fin-dark .btn-outline:hover{ background:rgba(255,255,255,.1); }
body.fin-dark .cookie-footer a{ color:var(--svc-muted); text-decoration:underline; text-underline-offset:3px; }
body.fin-dark .cookie-setting{ background:rgba(255,255,255,.035); border:1px solid var(--svc-line); border-radius:14px; padding:12px 14px; }
body.fin-dark .cookie-setting strong{ color:var(--svc-ink); }
body.fin-dark .cookie-toggle.disabled{ color:var(--svc-gold-light); font:700 11px var(--svc-num); letter-spacing:.06em; text-transform:uppercase; opacity:1; }
body.fin-dark .cookie-choice{ background:rgba(255,255,255,.06); }
body.fin-dark .choice-btn{ color:var(--svc-ink); }
body.fin-dark .choice-btn.active-yes{ background:var(--svc-gold); color:#05140b; }
body.fin-dark .choice-btn.active-no{ background:rgba(255,255,255,.16); color:var(--svc-ink); }
body.fin-dark .cookie-setting.undecided{ outline:1px solid rgba(248,113,113,.4); background:rgba(127,29,29,.14); }
body.fin-dark .cookie-error{ color:#fca5a5; }
@media (max-width:640px){
  body.fin-dark .cookie-actions{ background:linear-gradient(180deg, rgba(20,20,23,0), #141417 30%); }
  body.fin-dark .cookie-setting{ background:rgba(255,255,255,.035); }
}

/* ------------------------------------------------------ Quote-request modal
   styles.css declares #modal-lead{--ink/--mut/--line/--bg/--p1/--p2} with
   light values as an ID selector, which beats the body.fin-dark token remap
   (ID specificity), so they are re-declared here with one extra class. */
body.fin-dark #modal-lead{
  --bg:var(--svc-panel2);
  --ink:var(--svc-ink);
  --mut:var(--svc-muted);
  --line:var(--svc-line);
  --p1:var(--svc-gold-light);
  --p2:var(--svc-gold);
}
body.fin-dark #modal-lead .modal-dialog,
body.fin-dark #modal-lead .modal__card{ color:var(--svc-ink); background:var(--svc-panel2); border-color:var(--svc-line); }
/* The same shared block also hardcodes several colours directly. */
body.fin-dark #modal-lead .modal__head{ background:var(--svc-panel2); border-bottom-color:var(--svc-line); }
body.fin-dark #modal-lead .lh-section{ background:var(--svc-panel); border-color:var(--svc-line); }
body.fin-dark #modal-lead .field label{ color:var(--svc-ink); }
body.fin-dark #modal-lead input[type="text"],
body.fin-dark #modal-lead input[type="email"],
body.fin-dark #modal-lead input[type="tel"],
body.fin-dark #modal-lead input[type="number"],
body.fin-dark #modal-lead input[type="date"],
body.fin-dark #modal-lead select,
body.fin-dark #modal-lead textarea,
body.fin-dark #modal-lead input[type="file"]{ background:var(--svc-panel); color:var(--svc-ink); border-color:var(--svc-line); }
body.fin-dark #modal-lead .lh-radio-card,
body.fin-dark #modal-lead .lh-check{ background:var(--svc-panel); border-color:var(--svc-line); }
body.fin-dark #modal-lead .lh-radio-card:has(input:checked){ background:rgba(34,197,94,.08); border-color:rgba(74,222,128,.5); }
body.fin-dark #modal-lead .lh-radio-title{ color:var(--svc-ink); }

@media (max-width:520px){
  body.fin-dark .hero h1{ max-width:none; }
  body.fin-dark .panel{ border-radius:18px; }
}
