/* ===========================================================
   Prime Patrimonial — Home
   Design System: Petrona (serif) + Schibsted Grotesk (sans) + IBM Plex Mono
   =========================================================== */

/* ---------- Fonts (self-hosted) ---------- */
@font-face{ font-family:"Petrona"; src:url("../fonts/Petrona-Regular.woff2") format("woff2"); font-weight:400; font-style:normal; font-display:swap; }
@font-face{ font-family:"Petrona"; src:url("../fonts/Petrona-Medium.woff2") format("woff2"); font-weight:500; font-style:normal; font-display:swap; }
@font-face{ font-family:"Petrona"; src:url("../fonts/Petrona-SemiBold.woff2") format("woff2"); font-weight:600; font-style:normal; font-display:swap; }
@font-face{ font-family:"Petrona"; src:url("../fonts/Petrona-Bold.woff2") format("woff2"); font-weight:700; font-style:normal; font-display:swap; }
@font-face{ font-family:"Schibsted Grotesk"; src:url("../fonts/SchibstedGrotesk-Regular.woff2") format("woff2"); font-weight:400; font-style:normal; font-display:swap; }
@font-face{ font-family:"Schibsted Grotesk"; src:url("../fonts/SchibstedGrotesk-Medium.woff2") format("woff2"); font-weight:500; font-style:normal; font-display:swap; }
@font-face{ font-family:"Schibsted Grotesk"; src:url("../fonts/SchibstedGrotesk-SemiBold.woff2") format("woff2"); font-weight:600; font-style:normal; font-display:swap; }
@font-face{ font-family:"Schibsted Grotesk"; src:url("../fonts/SchibstedGrotesk-Bold.woff2") format("woff2"); font-weight:700; font-style:normal; font-display:swap; }
@font-face{ font-family:"IBM Plex Mono"; src:url("../fonts/IBMPlexMono-Regular.woff2") format("woff2"); font-weight:400; font-style:normal; font-display:swap; }
@font-face{ font-family:"IBM Plex Mono"; src:url("../fonts/IBMPlexMono-Medium.woff2") format("woff2"); font-weight:500; font-style:normal; font-display:swap; }

/* ---------- Design tokens ---------- */
:root{
  --bg:#F4F6F3; --surface:#FFFFFF; --surface-2:#EAEDE8;
  --ink:#14201D; --ink-soft:#55625D; --line:#DBE0DB;
  --verde:#1E4B3E; --verde-strong:#123128; --verde-tint:rgba(30,75,62,0.10);
  --good:#2E7D5B; --warn:#B8863C;
  --band-dark-bg:#12191A; --band-dark-ink:#F1F4F0;
  --band-verde-bg:#1B4437; --band-verde-ink:#F1F4F0;
  --shadow:0 1px 2px rgba(18,25,23,0.05), 0 10px 28px -14px rgba(18,25,23,0.22);
  --max:1240px;
}
@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]){
    --bg:#0E1513; --surface:#161F1C; --surface-2:#1D2723;
    --ink:#EDEFE9; --ink-soft:#A9B3AD; --line:#2A3531;
    --verde:#5AAB8E; --verde-strong:#7BC4A8; --verde-tint:rgba(90,171,142,0.16);
    --good:#4FAE88; --warn:#D6A356;
    --shadow:0 1px 2px rgba(0,0,0,0.35), 0 10px 28px -14px rgba(0,0,0,0.55);
  }
}
:root[data-theme="dark"]{
  --bg:#0E1513; --surface:#161F1C; --surface-2:#1D2723;
  --ink:#EDEFE9; --ink-soft:#A9B3AD; --line:#2A3531;
  --verde:#5AAB8E; --verde-strong:#7BC4A8; --verde-tint:rgba(90,171,142,0.16);
  --good:#4FAE88; --warn:#D6A356;
  --shadow:0 1px 2px rgba(0,0,0,0.35), 0 10px 28px -14px rgba(0,0,0,0.55);
}

*{ box-sizing:border-box; }
html{ scroll-behavior:smooth; }
@media (prefers-reduced-motion: reduce){
  html{ scroll-behavior:auto; }
  *{ animation-duration:0.001ms !important; transition-duration:0.001ms !important; scroll-behavior:auto !important; }
}
body{ margin:0; background:var(--bg); color:var(--ink); font-family:"Schibsted Grotesk","Helvetica Neue",Arial,sans-serif; font-size:16px; line-height:1.6; -webkit-font-smoothing:antialiased; overflow-x:hidden; }
h1,h2,h3,h4{ font-family:"Schibsted Grotesk",sans-serif; font-weight:700; letter-spacing:-0.01em; color:var(--ink); margin:0; }
.serif{ font-family:"Petrona",Georgia,serif; }
.mono{ font-family:"IBM Plex Mono",ui-monospace,monospace; font-variant-numeric:tabular-nums; }
p{ margin:0 0 1rem; }
a{ color:inherit; text-decoration:none; }
img{ max-width:100%; display:block; }
button{ font:inherit; }

.container{ max-width:var(--max); margin:0 auto; padding:0 64px; }
@media (max-width:1100px){ .container{ padding:0 32px; } }
@media (max-width:700px){ .container{ padding:0 20px; } }

/* ---------- Skip link ---------- */
.skip-link{ position:absolute; left:-999px; top:auto; background:var(--verde); color:#fff; padding:0.8rem 1.2rem; z-index:200; border-radius:0 0 6px 0; }
.skip-link:focus{ left:0; top:0; }

/* ---------- Buttons ---------- */
.btn{ font-family:"Schibsted Grotesk",sans-serif; font-weight:700; font-size:0.87rem; border-radius:4px; padding:0.85rem 1.5rem;
  border:1.5px solid transparent; cursor:pointer; display:inline-flex; align-items:center; gap:0.5rem;
  transition:transform .12s ease,background .15s ease,border-color .15s ease,opacity .15s ease; }
.btn-primary{ background:var(--verde); color:var(--bg); }
.btn-primary:hover{ background:var(--verde-strong); }
.btn-primary:active{ transform:scale(0.97); }
.btn-secondary{ background:transparent; color:var(--verde); border-color:var(--verde); }
.btn-secondary:hover{ background:var(--verde-tint); }
.btn-on-verde{ background:#F1F4F0; color:#123128; }
.btn-on-verde:hover{ background:#FFFFFF; }
.btn-outline-on-verde{ background:transparent; color:var(--band-verde-ink); border-color:rgba(241,244,240,0.5); }
.btn-outline-on-verde:hover{ border-color:#fff; }
.btn:focus-visible{ outline:2px solid var(--verde); outline-offset:2px; }
.cta-row{ display:flex; gap:0.9rem; flex-wrap:wrap; align-items:center; }

/* ---------- Header ---------- */
.hd{ position:sticky; top:0; z-index:100; background:var(--surface); border-bottom:1px solid var(--line); transition:box-shadow .2s ease; }
.hd.is-scrolled{ box-shadow:0 4px 14px -10px rgba(18,25,23,0.25); }
.hd-row{ display:flex; align-items:center; justify-content:space-between; padding:1.1rem 0; gap:1.5rem; }
.hd-logo{ font-family:"Petrona",serif; font-weight:600; font-size:1.25rem; }
.hd-nav{ display:flex; align-items:center; }
.hd-nav .hd-cta{ display:none; }
.hd-links{ display:flex; gap:1.7rem; flex-wrap:wrap; font-size:0.83rem; font-weight:600; color:var(--ink-soft); list-style:none; margin:0; padding:0; }
.hd-links a{ transition:color .15s ease; }
.hd-links a:hover, .hd-links a:focus-visible{ color:var(--verde); }
.hd-actions{ display:flex; align-items:center; gap:1rem; position:relative; z-index:96; }
.hd-cta{ background:var(--verde); color:var(--bg); font-weight:700; font-size:0.82rem; padding:0.65rem 1.15rem; border-radius:4px; transition:background .15s ease; }
.hd-cta:hover{ background:var(--verde-strong); }
.hd-burger{ display:none; flex-direction:column; gap:4px; background:none; border:none; padding:6px; cursor:pointer; }
.hd-burger span{ width:22px; height:2px; background:var(--ink); display:block; transition:transform .2s ease, opacity .2s ease; }
.hd-burger[aria-expanded="true"] span:nth-child(1){ transform:translateY(6px) rotate(45deg); }
.hd-burger[aria-expanded="true"] span:nth-child(2){ opacity:0; }
.hd-burger[aria-expanded="true"] span:nth-child(3){ transform:translateY(-6px) rotate(-45deg); }

@media (max-width:860px){
  .hd-nav{ position:fixed; inset:0 0 0 auto; width:min(320px,86vw); height:100vh; background:var(--surface); border-left:1px solid var(--line);
    display:flex; flex-direction:column; justify-content:flex-start; align-items:stretch; padding:5.5rem 2rem 2rem; gap:2rem;
    transform:translateX(100%); transition:transform .28s ease; z-index:90; }
  .hd-nav.is-open{ transform:translateX(0); }
  .hd-links{ flex-direction:column; gap:1.4rem; font-size:1.05rem; }
  .hd-nav .hd-cta{ display:inline-flex; align-self:flex-start; }
  .hd-burger{ display:flex; }
  .hd-actions .hd-cta{ display:none; }
}
.nav-scrim{ position:fixed; inset:0; background:rgba(18,25,23,0.35); opacity:0; pointer-events:none; transition:opacity .25s ease; z-index:80; }
.nav-scrim.is-visible{ opacity:1; pointer-events:auto; }

/* ---------- Hero ---------- */
.hero{ background:var(--bg); padding:4.2rem 0 3.6rem; }
.hero-grid{ display:grid; grid-template-columns:1.05fr 0.95fr; gap:3rem; align-items:center; }
@media (max-width:900px){ .hero-grid{ grid-template-columns:1fr; gap:2.2rem; } }
.eyebrow{ font-family:"IBM Plex Mono",monospace; font-size:0.72rem; letter-spacing:0.13em; text-transform:uppercase; color:var(--verde); font-weight:600; margin-bottom:0.9rem; }
.hero h1{ font-size:clamp(2rem,4.2vw,3rem); line-height:1.08; max-width:15ch; }
.hero .sub{ margin-top:1.1rem; max-width:48ch; font-size:1.08rem; color:var(--ink-soft); }
.hero .cta-row{ margin-top:1.7rem; }
.authority-line{ margin-top:1.3rem; font-family:"IBM Plex Mono",monospace; font-size:0.74rem; color:var(--ink-soft); letter-spacing:0.02em; }
.hero-visual{ position:relative; }
.frame{ border-radius:12px; overflow:hidden; box-shadow:var(--shadow); aspect-ratio:4/5;
  background:repeating-linear-gradient(135deg,var(--surface-2),var(--surface-2) 10px,var(--bg) 10px,var(--bg) 20px);
  display:flex; align-items:center; justify-content:center; color:var(--ink-soft); font-family:"IBM Plex Mono",monospace;
  font-size:0.78rem; text-align:center; padding:1.5rem; border:1px solid var(--line); }
.frame.wide{ aspect-ratio:16/9; }
.float-card{ position:absolute; left:-1.4rem; bottom:1.6rem; background:var(--surface); border:1px solid var(--line); border-radius:10px;
  box-shadow:var(--shadow); padding:0.9rem 1.1rem; width:170px; }
@media (max-width:520px){ .float-card{ position:static; margin-top:-1.4rem; margin-left:1.4rem; width:auto; } }
.float-card .fc-label{ font-family:"IBM Plex Mono",monospace; font-size:0.6rem; letter-spacing:0.06em; text-transform:uppercase; color:var(--ink-soft); }
.float-card .fc-num{ font-family:"IBM Plex Mono",monospace; font-weight:600; font-size:1.5rem; color:var(--verde); margin-top:0.2rem; }
.float-card .fc-bar{ height:5px; border-radius:99px; background:var(--line); margin-top:0.5rem; overflow:hidden; }
.float-card .fc-bar div{ height:100%; width:72%; background:var(--good); }

/* ---------- Section heading helper ---------- */
.sec-h{ max-width:56ch; margin-bottom:2.2rem; }
.sec-h h2{ font-size:clamp(1.5rem,3vw,2rem); margin-top:0.5rem; }
.sec-h p{ color:var(--ink-soft); margin-top:0.8rem; }

/* ---------- Insight ---------- */
.insight{ background:var(--surface); padding:4.5rem 0; }
.insight-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:1.2rem 1.6rem; }
@media (max-width:900px){ .insight-grid{ grid-template-columns:1fr 1fr; } }
@media (max-width:560px){ .insight-grid{ grid-template-columns:1fr; } }
.insight-card{ padding-top:1rem; border-top:2px solid var(--line); }
.insight-card svg{ color:var(--verde); margin-bottom:0.8rem; }
.insight-card .q{ font-weight:700; font-size:0.98rem; margin-bottom:0.4rem; }
.insight-card .a{ font-size:0.86rem; color:var(--ink-soft); margin:0; }

/* ---------- Diagnostico / Indice Prime ---------- */
.diag{ background:var(--band-verde-bg); color:var(--band-verde-ink); padding:4.5rem 0; }
.diag-grid{ display:grid; grid-template-columns:0.95fr 1.05fr; gap:3rem; align-items:center; }
@media (max-width:960px){ .diag-grid{ grid-template-columns:1fr; gap:2.2rem; } }
.diag h2{ font-size:clamp(1.6rem,3.2vw,2.3rem); color:var(--band-verde-ink); margin-top:0.6rem; }
.diag p{ opacity:0.88; }
.diag-features{ display:flex; flex-wrap:wrap; gap:0.6rem 1.4rem; margin:1.1rem 0 1.6rem; list-style:none; padding:0; }
.diag-features span{ font-family:"IBM Plex Mono",monospace; font-size:0.74rem; opacity:0.85; }
.diag-features span::before{ content:"— "; }
.diag-card{ background:rgba(244,246,243,0.06); border:1px solid rgba(241,244,240,0.2); border-radius:14px; padding:1.8rem; }
.diag-note{ font-family:"IBM Plex Mono",monospace; font-size:0.66rem; opacity:0.6; margin-top:1.2rem; margin-bottom:0; }
.diag-top2{ display:flex; gap:1.6rem; align-items:center; margin-bottom:1.4rem; flex-wrap:wrap; }
.gauge-wrap{ position:relative; width:132px; height:132px; flex-shrink:0; }
.gauge-wrap svg circle.gauge-fill{ stroke-dasharray:552.9; stroke-dashoffset:552.9; transition:stroke-dashoffset .7s ease-out; }
.gauge-wrap.is-revealed svg circle.gauge-fill{ stroke-dashoffset:154.8; }
.gauge-center{ position:absolute; inset:0; display:flex; flex-direction:column; align-items:center; justify-content:center; }
.gauge-num{ font-family:"IBM Plex Mono",monospace; font-weight:600; font-size:1.9rem; line-height:1; }
.gauge-max{ font-family:"IBM Plex Mono",monospace; font-size:0.6rem; opacity:0.7; }
.gauge-label{ font-size:0.6rem; letter-spacing:0.08em; text-transform:uppercase; opacity:0.7; margin-top:0.25rem; font-family:"IBM Plex Mono",monospace; }
.dim-list{ display:flex; flex-direction:column; gap:0.7rem; flex:1; min-width:180px; }
.dim-row{ display:flex; justify-content:space-between; align-items:center; gap:0.6rem; margin-bottom:0.3rem; }
.dim-row .dname{ font-size:0.74rem; opacity:0.85; }
.dim-track{ height:6px; border-radius:99px; background:rgba(241,244,240,0.18); overflow:hidden; }
.dim-fill{ height:100%; border-radius:99px; width:0; transition:width .7s ease-out; }
.diag-card.is-revealed .dim-fill{ width:var(--target); }
.dim-row .dval{ font-family:"IBM Plex Mono",monospace; font-size:0.78rem; text-align:right; }

/* ---------- Cards grid (Soluções / Conteúdo) ---------- */
.card-grid{ display:grid; grid-template-columns:repeat(auto-fit,minmax(220px,1fr)); gap:1.1rem; }
.pcard{ background:var(--surface); border:1px solid var(--line); border-radius:9px; padding:1.5rem 1.4rem; box-shadow:var(--shadow);
  transition:transform .18s ease-out, box-shadow .18s ease-out; }
.pcard:hover{ transform:translateY(-3px); box-shadow:0 4px 8px rgba(18,25,23,0.06), 0 20px 34px -16px rgba(18,25,23,0.28); }
.pcard .rule{ width:26px; height:2px; background:var(--verde); margin-bottom:0.9rem; }
.pcard h3{ font-size:1rem; margin-bottom:0.5rem; }
.pcard p{ font-size:0.86rem; color:var(--ink-soft); margin-bottom:0.7rem; }
.pcard .tag2{ display:inline-block; font-family:"IBM Plex Mono",monospace; font-size:0.66rem; color:var(--verde); background:var(--verde-tint); border-radius:5px; padding:0.15rem 0.5rem; margin-bottom:0.7rem; }
.pcard .cta2{ font-size:0.8rem; font-weight:700; color:var(--verde); background:none; border:none; padding:0; cursor:pointer; display:inline-flex; align-items:center; gap:0.3rem; text-align:left; }
.pcard .cta2:hover{ text-decoration:underline; }

.solucoes{ background:var(--bg); padding:4.5rem 0; }

/* ---------- Para quem ---------- */
.paraquem{ background:var(--surface); padding:4.5rem 0; }
.aud-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:1.2rem; }
@media (max-width:760px){ .aud-grid{ grid-template-columns:1fr; } }
.aud-card{ border:1px solid var(--line); border-radius:10px; overflow:hidden; background:var(--bg); transition:transform .18s ease-out, box-shadow .18s ease-out; }
.aud-card:hover{ transform:translateY(-3px); box-shadow:0 4px 8px rgba(18,25,23,0.06), 0 20px 34px -16px rgba(18,25,23,0.28); }
.aud-card .af{ aspect-ratio:16/10; background:repeating-linear-gradient(135deg,var(--surface-2),var(--surface-2) 10px,var(--bg) 10px,var(--bg) 20px);
  display:flex; align-items:center; justify-content:center; color:var(--ink-soft); font-family:"IBM Plex Mono",monospace; font-size:0.72rem; text-align:center; padding:1rem; }
.aud-card .ac-body{ padding:1.2rem 1.3rem 1.4rem; }
.aud-card h3{ font-size:1.02rem; margin-bottom:0.4rem; }
.aud-card p{ font-size:0.85rem; color:var(--ink-soft); margin-bottom:0.7rem; }
.aud-card .cta2{ font-size:0.8rem; font-weight:700; color:var(--verde); }

/* ---------- Autoridade ---------- */
.autoridade{ background:var(--bg); padding:4.6rem 0; }
.auth-grid{ display:grid; grid-template-columns:0.8fr 1.2fr; gap:3rem; align-items:start; }
@media (max-width:900px){ .auth-grid{ grid-template-columns:1fr; gap:2rem; } }
.auth-facts{ display:flex; flex-direction:column; gap:1rem; margin-top:1.3rem; }
.auth-fact{ border-left:2px solid var(--verde); padding-left:0.9rem; }
.auth-fact .fk{ font-family:"IBM Plex Mono",monospace; font-size:0.66rem; letter-spacing:0.06em; text-transform:uppercase; color:var(--verde); margin-bottom:0.2rem; }
.auth-fact .fv{ font-size:0.9rem; color:var(--ink-soft); }
.placeholder-text{ color:var(--ink-soft); font-style:italic; }

/* ---------- Como funciona ---------- */
.comofunciona{ background:var(--surface); padding:4.5rem 0; }
.steps-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:1.4rem; margin-top:2rem; }
@media (max-width:760px){ .steps-grid{ grid-template-columns:1fr; } }
.step .snum{ font-family:"IBM Plex Mono",monospace; font-weight:600; font-size:1.7rem; color:var(--verde); margin-bottom:0.6rem; }
.step h3{ font-size:1.02rem; margin-bottom:0.4rem; }
.step p{ font-size:0.87rem; color:var(--ink-soft); margin:0; }

/* ---------- Apolice ---------- */
.apolice{ background:var(--band-dark-bg); color:var(--band-dark-ink); padding:3.8rem 0; }
.apolice-grid{ display:flex; justify-content:space-between; align-items:center; gap:2rem; flex-wrap:wrap; }
.apolice h2{ color:var(--band-dark-ink); font-size:clamp(1.3rem,2.6vw,1.7rem); max-width:22ch; }
.apolice p{ opacity:0.8; max-width:44ch; margin-top:0.6rem; margin-bottom:0; }

/* ---------- Conteudo ---------- */
.conteudo{ background:var(--bg); padding:4.5rem 0; }
.cont-head{ display:flex; justify-content:space-between; align-items:flex-end; gap:1.5rem; flex-wrap:wrap; margin-bottom:2rem; }
.article-card{ background:var(--surface); border:1px solid var(--line); border-radius:9px; overflow:hidden; box-shadow:var(--shadow); }
.article-card .thumb{ aspect-ratio:16/10; background:linear-gradient(135deg,var(--surface-2),var(--verde-tint)); display:flex; align-items:center; justify-content:center; }
.article-card .thumb span{ font-family:"IBM Plex Mono",monospace; font-size:0.68rem; color:var(--ink-soft); text-transform:uppercase; letter-spacing:0.06em; }
.article-card .ac-body{ padding:1.1rem 1.2rem 1.3rem; }
.article-card .kind{ font-family:"IBM Plex Mono",monospace; font-size:0.64rem; text-transform:uppercase; letter-spacing:0.06em; color:var(--verde); margin-bottom:0.4rem; }
.article-card h3{ font-size:0.94rem; margin-bottom:0; font-weight:600; }

/* ---------- CTA final ---------- */
.ctafinal{ background:var(--verde); color:var(--bg); padding:4.6rem 0; text-align:center; }
.ctafinal h2{ color:var(--bg); font-size:clamp(1.6rem,3.4vw,2.4rem); max-width:22ch; margin:0 auto; }
.ctafinal p{ opacity:0.85; max-width:44ch; margin:0.9rem auto 1.7rem; }
.ctafinal .cta-row{ justify-content:center; }

/* ---------- Footer ---------- */
.footmock{ background:var(--band-dark-bg); color:var(--band-dark-ink); padding:3.4rem 0 1.8rem; }
.footmock-grid{ display:grid; grid-template-columns:1.4fr repeat(4,1fr); gap:1.6rem; margin-bottom:2rem; }
@media (max-width:900px){ .footmock-grid{ grid-template-columns:repeat(3,1fr); } }
@media (max-width:600px){ .footmock-grid{ grid-template-columns:repeat(2,1fr); } }
.footmock .fcol h4{ font-family:"IBM Plex Mono",monospace; font-size:0.66rem; letter-spacing:0.08em; text-transform:uppercase; color:var(--band-dark-ink); opacity:0.6; margin-bottom:0.7rem; font-weight:600; }
.footmock .fcol a{ display:block; font-size:0.84rem; opacity:0.85; margin-bottom:0.5rem; }
.footmock .fcol a:hover{ opacity:1; text-decoration:underline; }
.footmock .fwordmark{ font-family:"Petrona",serif; font-size:1.35rem; margin-bottom:0.6rem; }
.footmock .fnote{ font-size:0.82rem; opacity:0.7; max-width:32ch; }
.footmock-legal{ border-top:1px solid rgba(241,244,240,0.15); padding-top:1.1rem; display:flex; justify-content:space-between; flex-wrap:wrap; gap:0.7rem; font-size:0.74rem; opacity:0.6; }
.footmock-legal .links{ display:flex; gap:1rem; flex-wrap:wrap; }

/* ---------- Sticky contextual CTA (mobile) ---------- */
.sticky-cta{ position:fixed; left:0; right:0; bottom:0; z-index:95; background:var(--surface); border-top:1px solid var(--line);
  padding:0.7rem 1rem; box-shadow:0 -8px 20px -14px rgba(18,25,23,0.3);
  transform:translateY(110%); transition:transform .25s ease-out; display:none; }
.sticky-cta.is-visible{ transform:translateY(0); }
.sticky-cta .btn{ width:100%; justify-content:center; }
@media (max-width:860px){ .sticky-cta{ display:block; } }

/* ---------- Scroll reveal ---------- */
.reveal{ opacity:0; transform:translateY(14px); transition:opacity .5s ease-out, transform .5s ease-out; }
.reveal.is-visible{ opacity:1; transform:none; }

@media (prefers-reduced-motion: reduce){
  .reveal{ opacity:1; transform:none; }
  .gauge-wrap svg circle.gauge-fill{ transition:none; stroke-dashoffset:154.8; }
  .dim-fill{ transition:none; width:var(--target); }
}

/* ---------- Lead modal ---------- */
.lead-modal{ position:fixed; inset:0; z-index:150; display:flex; align-items:center; justify-content:center; padding:1.2rem;
  visibility:hidden; opacity:0; transition:opacity .2s ease, visibility 0s linear .2s; }
.lead-modal.is-open{ visibility:visible; opacity:1; transition:opacity .2s ease; }
.lead-modal-scrim{ position:absolute; inset:0; background:rgba(18,25,23,0.45); }
:root[data-theme="dark"] .lead-modal-scrim{ background:rgba(0,0,0,0.6); }
@media (prefers-color-scheme:dark){ :root:not([data-theme="light"]) .lead-modal-scrim{ background:rgba(0,0,0,0.6); } }
.lead-modal-panel{ position:relative; background:var(--surface); border-radius:14px; box-shadow:0 20px 60px -20px rgba(0,0,0,0.4);
  width:100%; max-width:460px; max-height:90vh; overflow-y:auto; padding:2.1rem 2rem 2rem;
  transform:translateY(14px) scale(0.98); transition:transform .22s ease-out; }
.lead-modal.is-open .lead-modal-panel{ transform:translateY(0) scale(1); }
.lead-modal-close{ position:absolute; top:0.9rem; right:1rem; background:none; border:none; cursor:pointer;
  font-size:1.6rem; line-height:1; color:var(--ink-soft); padding:0.3rem 0.5rem; border-radius:6px; }
.lead-modal-close:hover{ color:var(--ink); background:var(--surface-2); }
.lead-modal-close:focus-visible{ outline:2px solid var(--verde); outline-offset:2px; }
.lead-modal h3{ font-family:"Petrona",serif; font-weight:600; font-size:1.35rem; margin:0 0 0.5rem; padding-right:1.5rem; }
.lead-modal-sub{ color:var(--ink-soft); font-size:0.92rem; margin:0 0 1.5rem; }
.lead-modal .field{ margin-bottom:1.05rem; display:flex; flex-direction:column; gap:0.4rem; }
.lead-modal label{ font-size:0.82rem; font-weight:600; color:var(--ink); }
.lead-modal input[type="text"], .lead-modal input[type="email"], .lead-modal input[type="tel"], .lead-modal select{
  font:inherit; font-size:0.94rem; padding:0.72rem 0.85rem; border:1.5px solid var(--line); border-radius:7px;
  background:var(--bg); color:var(--ink); width:100%; transition:border-color .15s ease, box-shadow .15s ease; }
.lead-modal input:focus-visible, .lead-modal select:focus-visible{ outline:none; border-color:var(--verde); box-shadow:0 0 0 3px var(--verde-tint); }
.lead-modal input[aria-invalid="true"], .lead-modal select[aria-invalid="true"]{ border-color:var(--bad); }
.field-error{ font-size:0.78rem; color:var(--bad); min-height:1em; display:block; }
.lead-modal .hp-field{ position:absolute; left:-9999px; top:-9999px; }
.lead-modal .consent{ display:flex; gap:0.6rem; align-items:flex-start; font-size:0.8rem; color:var(--ink-soft); margin:0.4rem 0 1.3rem; cursor:pointer; }
.lead-modal .consent input{ margin-top:0.2rem; flex-shrink:0; width:16px; height:16px; accent-color:var(--verde); }
.lead-modal .consent a{ text-decoration:underline; }
.lead-submit{ width:100%; justify-content:center; position:relative; }
.lead-submit[disabled]{ opacity:0.75; cursor:default; }
.lead-submit-spinner{ display:none; width:15px; height:15px; border-radius:50%; border:2px solid rgba(244,246,243,0.4); border-top-color:#fff; }
.lead-submit.is-loading .lead-submit-label{ opacity:0.6; }
.lead-submit.is-loading .lead-submit-spinner{ display:inline-block; animation:lead-spin .7s linear infinite; }
@keyframes lead-spin{ to{ transform:rotate(360deg); } }
.lead-form-error{ color:var(--bad); font-size:0.85rem; margin-top:0.9rem; text-align:center; }
.lead-success-icon{ width:44px; height:44px; border-radius:50%; background:var(--good); color:#fff; display:flex; align-items:center; justify-content:center; margin-bottom:1.1rem; }
.lead-success-actions{ display:flex; flex-direction:column; gap:0.7rem; margin-top:1.4rem; }
.lead-success-actions .btn{ width:100%; justify-content:center; }

@media (prefers-reduced-motion: reduce){
  .lead-modal, .lead-modal-panel{ transition:none; }
  .lead-submit.is-loading .lead-submit-spinner{ animation:none; }
}
