/* ===== Cachoeira do França — landing de captação =====
   Zero CDN · Inter self-hosted · CSS próprio
   Paleta: mata/água (deep forest) + ouro discreto */

@font-face{
  font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;
  src:url('../fonts/inter-latin.woff2') format('woff2');
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}
@font-face{
  font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;
  src:url('../fonts/inter-latin-ext.woff2') format('woff2');
  unicode-range:U+0100-02AF,U+0304,U+0308,U+0329,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;
}

:root{
  --ink:#0A1512; --ink2:#0F211C; --ink3:#132A23;
  --card:rgba(255,255,255,.045); --line:rgba(255,255,255,.10);
  --txt:#EAF2EE; --muted:#9DB3AA; --leaf:#6FBF73; --water:#3E8FB0; --gold:#D9B25F;
  --r:16px; --r2:22px; --max:1120px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;background:var(--ink);color:var(--txt);
  font:16px/1.6 Inter,system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;
  -webkit-font-smoothing:antialiased;overflow-x:hidden;
}
img{max-width:100%;height:auto;display:block}
a{color:inherit}
h1,h2,h3{margin:0 0 .5em;line-height:1.15;letter-spacing:-.02em}
h1{font-size:clamp(1.9rem,4.6vw,3.3rem);font-weight:800}
h2{font-size:clamp(1.5rem,2.6vw,2.1rem);font-weight:750}
h3{font-size:1.06rem;font-weight:700}
p{margin:0 0 1rem}
em{font-style:normal;color:var(--leaf)}
.wrap{max-width:var(--max);margin:0 auto;padding:0 20px}
.center{text-align:center}
.tiny{font-size:.78rem;color:var(--muted);line-height:1.5}
.sub{color:var(--muted);max-width:62ch;margin-bottom:1.6rem}

/* ---------- topbar ---------- */
.topbar{position:sticky;top:0;z-index:40;background:rgba(10,21,18,.86);backdrop-filter:blur(10px);border-bottom:1px solid var(--line)}
.topbar__in{display:flex;align-items:center;gap:18px;min-height:66px}
.brand{display:flex;align-items:center;gap:10px;text-decoration:none}
.brand__txt{display:flex;flex-direction:column;line-height:1.15}
.brand__txt strong{font-size:.95rem;font-weight:700}
.brand__txt small{font-size:.7rem;color:var(--muted)}
.topnav{display:flex;gap:20px;margin-left:auto}
.topnav a{color:var(--muted);text-decoration:none;font-size:.9rem;font-weight:500;padding:6px 0;border-bottom:1px solid transparent}
.topnav a:hover{color:var(--txt);border-color:var(--gold)}

/* ---------- buttons ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;
  padding:12px 20px;border-radius:999px;text-decoration:none;font-weight:650;font-size:.94rem;
  border:1px solid transparent;cursor:pointer;transition:.18s;white-space:nowrap}
.btn--gold{background:var(--gold);color:#20180A}
.btn--gold:hover{background:#E7C377;transform:translateY(-1px)}
.btn--ghost{border-color:var(--line);color:var(--txt);background:rgba(255,255,255,.03)}
.btn--ghost:hover{border-color:var(--gold);color:var(--gold)}
.btn--full{width:100%}

/* ---------- hero ---------- */
.hero{position:relative;padding:clamp(56px,9vw,110px) 0 clamp(40px,6vw,72px);overflow:hidden}
.hero__bg{position:absolute;inset:0;z-index:0;opacity:.9}
.hero__bg svg{width:100%;height:100%}
.hero__in{position:relative;z-index:1}
.kicker{display:inline-block;margin:0 0 14px;padding:6px 14px;border:1px solid var(--line);border-radius:999px;
  font-size:.76rem;letter-spacing:.14em;text-transform:uppercase;color:var(--gold);background:rgba(217,178,95,.07)}
.lead{font-size:1.08rem;color:#C6D8D1;max-width:62ch}
.hero__cta{display:flex;flex-wrap:wrap;gap:12px;margin:26px 0 38px}
.kpis{list-style:none;display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin:0;padding:0}
.kpis li{background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:16px 16px 14px}
.kpis b{display:block;font-size:clamp(1.05rem,2.1vw,1.45rem);font-weight:800;color:var(--txt);letter-spacing:-.02em}
.kpis span{font-size:.8rem;color:var(--muted)}

/* ---------- sections ---------- */
.sec{padding:clamp(52px,7vw,88px) 0}
.sec--alt{background:linear-gradient(180deg,var(--ink2),var(--ink))}
.two{display:grid;grid-template-columns:1.15fr .85fr;gap:34px;align-items:start}
.two--narrow{grid-template-columns:1fr 1fr;gap:44px}
.grid{display:grid;gap:16px}
.grid--4{grid-template-columns:repeat(4,1fr)}
.card{background:var(--card);border:1px solid var(--line);border-radius:var(--r2);padding:22px}
.card h3{margin-bottom:.35em}
.card p{margin:0;color:var(--muted);font-size:.93rem}
.ico{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:12px;
  background:rgba(111,191,115,.12);border:1px solid rgba(111,191,115,.25);font-size:1.1rem;margin-bottom:12px}

.note{display:flex;gap:16px;margin-top:22px;padding:20px;border-radius:var(--r2);
  background:rgba(217,178,95,.07);border:1px solid rgba(217,178,95,.28)}
.note .ico{background:rgba(217,178,95,.14);border-color:rgba(217,178,95,.3);margin:0}
.note h3{margin:0 0 .3em;color:var(--gold)}
.note p{margin:0;color:#D6CFBB;font-size:.92rem}

.steps{list-style:none;counter-reset:s;margin:0;padding:0;display:grid;gap:12px}
.steps li{counter-increment:s;position:relative;padding:16px 18px 16px 62px;background:var(--card);
  border:1px solid var(--line);border-radius:var(--r)}
.steps li::before{content:counter(s);position:absolute;left:16px;top:50%;transform:translateY(-50%);
  width:30px;height:30px;display:grid;place-items:center;border-radius:50%;
  background:rgba(111,191,115,.14);border:1px solid rgba(111,191,115,.3);color:var(--leaf);font-size:.85rem;font-weight:700}
.steps b{display:block}
.steps span{color:var(--muted);font-size:.88rem}

.chips{list-style:none;display:flex;flex-wrap:wrap;gap:10px;margin:0;padding:0}
.chips li{padding:9px 16px;border-radius:999px;background:var(--card);border:1px solid var(--line);font-size:.88rem;color:#C9DBD4}

.facts{list-style:none;margin:0 0 20px;padding:0;display:grid;gap:9px}
.facts li{color:var(--muted);font-size:.93rem}
.facts b{color:var(--txt)}
.facts--check li{position:relative;padding-left:26px;color:#C6D8D1}
.facts--check li::before{content:"✓";position:absolute;left:0;color:var(--leaf);font-weight:800}

.panel{background:linear-gradient(160deg,var(--ink3),var(--ink2));border:1px solid var(--line);
  border-radius:var(--r2);padding:26px}
.panel h3{margin-top:0}
.panel p{color:var(--muted);font-size:.93rem}

/* ---------- form ---------- */
.contato{background:linear-gradient(180deg,var(--ink),var(--ink2))}
.form{background:var(--card);border:1px solid var(--line);border-radius:var(--r2);padding:24px}
.field{margin-bottom:14px;display:flex;flex-direction:column;gap:6px}
.field label{font-size:.8rem;color:var(--muted);font-weight:600;letter-spacing:.02em}
.field input,.field select,.field textarea{
  width:100%;padding:12px 14px;border-radius:12px;background:rgba(0,0,0,.28);
  border:1px solid var(--line);color:var(--txt);font:inherit;font-size:.95rem;outline:none;transition:.15s}
.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--gold);background:rgba(0,0,0,.4)}
.field select{appearance:none;background-image:linear-gradient(45deg,transparent 50%,var(--muted) 50%),linear-gradient(135deg,var(--muted) 50%,transparent 50%);background-position:calc(100% - 20px) 50%,calc(100% - 15px) 50%;background-size:5px 5px,5px 5px;background-repeat:no-repeat}
.consent{display:flex;gap:10px;align-items:flex-start;font-size:.82rem;color:var(--muted);margin:4px 0 14px}
.consent input{margin-top:3px;accent-color:var(--leaf)}
.err{color:#FF9C8A;font-size:.85rem;margin:.2rem 0 .8rem}
.form .tiny{margin:.7rem 0 0;text-align:center}

/* ---------- faq ---------- */
.faq{display:grid;gap:10px;max-width:820px}
.faq details{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:4px 18px}
.faq summary{cursor:pointer;padding:14px 30px 14px 0;font-weight:650;position:relative;list-style:none}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";position:absolute;right:0;top:13px;color:var(--gold);font-size:1.3rem;font-weight:400}
.faq details[open] summary::after{content:"–"}
.faq p{color:var(--muted);font-size:.92rem;padding-bottom:8px}

/* ---------- cta band / footer ---------- */
.cta-band{background:linear-gradient(120deg,rgba(111,191,115,.14),rgba(62,143,176,.16));border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:clamp(42px,6vw,64px) 0;text-align:center}
.cta-band h2{margin-bottom:.3em}
.cta-band p{color:#C6D8D1;margin-bottom:22px}
.foot{padding:44px 0 26px;background:var(--ink2)}
.foot__in{display:grid;grid-template-columns:1.4fr .6fr;gap:26px;align-items:start}
.foot__brand{font-weight:700;margin-bottom:6px}
.foot__act{display:flex;gap:10px;justify-content:flex-end;flex-wrap:wrap}
.foot .tiny{margin:10px 0 0}

/* ---------- whatsapp float ---------- */
.wa-float{position:fixed;right:18px;bottom:18px;z-index:50;width:54px;height:54px;border-radius:50%;
  display:grid;place-items:center;background:#25D366;color:#06301A;box-shadow:0 10px 26px rgba(0,0,0,.4);transition:.18s}
.wa-float:hover{transform:scale(1.06)}

/* ---------- responsive ---------- */
@media (max-width:960px){
  .kpis{grid-template-columns:repeat(2,1fr)}
  .grid--4{grid-template-columns:repeat(2,1fr)}
  .two,.two--narrow{grid-template-columns:1fr;gap:28px}
  .foot__in{grid-template-columns:1fr}
  .foot__act{justify-content:flex-start}
}
@media (max-width:720px){
  .topnav{display:none}
  .topbar__cta{margin-left:auto}
  .brand__txt small{display:none}
}
@media (max-width:420px){
  .kpis{grid-template-columns:1fr}
  .grid--4{grid-template-columns:1fr}
}

/* ---------- mapa + satélite ---------- */
.two--map{grid-template-columns:1fr 1.05fr;gap:30px;align-items:start}
.map-wrap{position:relative}
.map{height:460px;border-radius:var(--r2);overflow:hidden;border:1px solid var(--line);background:#08110E}
.map .leaflet-container{background:#08110E;font:inherit}
.leaflet-popup-content{font:14px/1.5 Inter,system-ui,Arial,sans-serif;color:#12211C}
.map-cred{margin:.6rem 0 0}
.map-links{display:flex;flex-wrap:wrap;gap:10px;margin:22px 0 18px}

.galeria{display:grid;gap:16px;grid-template-columns:1fr 1fr}
.galeria figure:first-child{grid-column:1/-1}
.galeria figure{margin:0;background:var(--card);border:1px solid var(--line);border-radius:var(--r2);overflow:hidden}
.galeria img{width:100%;height:auto;display:block}
.galeria figcaption{padding:12px 16px 14px;font-size:.85rem;color:var(--muted)}
.galeria figcaption b{color:var(--txt)}
@media (max-width:720px){
  .map{height:360px}
  .galeria{grid-template-columns:1fr}
}

/* grid children nunca devem estourar o container (lição 360px) */
.two>*,.two--map>*,.grid>*,.kpis>*,.galeria>*,.foot__in>*{min-width:0}
.map,.map-wrap,.leaflet-container{max-width:100%}
