/* =====================================================================
   CÚSPIDE — Sistema unificado con CarbonCheck / AdaptaClima (2026-06-13 v3)
   Tokens reales de los subdominios: verde Material (#2e7d32), acento ámbar,
   Manrope + Inter, fondo claro. Para que web + plataformas = una sola marca.
   ===================================================================== */

:root {
  --green:      #2e7d32;   /* primario (CarbonCheck) */
  --green-700:  #357937;
  --green-900:  #1b5e20;   /* verde profundo (gradientes/secciones) */
  --green-400:  #4caf50;   /* verde claro */
  --green-soft: #eaf3eb;   /* tinte */
  --amber:      #ffc107;   /* acento */
  --ink:        #16181d;
  --muted:      #6b7280;
  --bg:         #ffffff;
  --bg-soft:    #f9fafb;
  --line:       #e5e7eb;
  --line-strong:#d4dad6;

  --sans:    'Inter', system-ui, -apple-system, Segoe UI, Roboto, sans-serif;
  --display: 'Manrope', var(--sans);

  --maxw: 1200px;
  --gutter: clamp(1.25rem, 4vw, 3.5rem);
  --r: 16px;
  --r-sm: 12px;
  --r-pill: 50px;
  --shadow: 0 14px 40px -22px rgba(27,94,32,.30);
  --shadow-lg: 0 30px 60px -30px rgba(27,94,32,.38);
}

* { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }
@media (prefers-reduced-motion: reduce){ html { scroll-behavior: auto; } }
body { margin:0; background:var(--bg); color:var(--ink); font-family:var(--sans); font-size:1.0625rem; line-height:1.65; -webkit-font-smoothing:antialiased; text-rendering:optimizeLegibility; }
img { max-width:100%; display:block; }
h1,h2,h3,h4 { font-family:var(--display); font-weight:800; line-height:1.12; letter-spacing:-0.02em; margin:0; color:var(--ink); }

.wrap { max-width:var(--maxw); margin:0 auto; padding-inline:var(--gutter); }
.section { padding: clamp(3.5rem, 7vw, 6.5rem) 0; }
.center { text-align:center; }

/* Eyebrow / badge tipo pill verde (CarbonCheck) */
.badge { display:inline-flex; align-items:center; gap:.5rem; background:var(--green-soft); color:var(--green-900); font-weight:700; font-size:.8rem; letter-spacing:.02em; padding:.45rem .9rem; border-radius:var(--r-pill); }
.badge i { color:var(--green); }

.section-head { max-width:680px; margin:0 auto clamp(2.5rem,5vw,3.5rem); }
.section-head.left { margin-inline:0; }
.section-head h2 { font-size:clamp(1.9rem,3.8vw,2.9rem); margin-top:1rem; }
.section-head p { color:var(--muted); font-size:1.1rem; margin:1rem 0 0; }
.band-dark .section-head h2 { color:#fff; }
.band-dark .section-head p { color:rgba(255,255,255,.8); }
.accent { color:var(--green); }

.skip-link { position:absolute; left:-9999px; top:0; background:var(--green); color:#fff; padding:.75rem 1.25rem; z-index:200; }
.skip-link:focus { left:0; }
a:focus-visible, button:focus-visible, input:focus-visible, textarea:focus-visible, select:focus-visible, summary:focus-visible { outline:3px solid var(--green-900); outline-offset:2px; border-radius:8px; }

/* ---------- Botones ---------- */
.btn { display:inline-flex; align-items:center; gap:.55rem; font-family:var(--display); font-weight:700; font-size:.97rem; padding:.85rem 1.6rem; border-radius:var(--r-pill); text-decoration:none; cursor:pointer; border:2px solid transparent; transition:transform .2s, background .2s, color .2s, border-color .2s, box-shadow .2s; }
.btn-primary { background:var(--green); color:#fff; box-shadow:0 12px 24px -12px rgba(46,125,50,.8); }
.btn-primary:hover { background:var(--green-900); transform:translateY(-2px); }
.btn-outline { background:#fff; color:var(--green-900); border-color:var(--line-strong); }
.btn-outline:hover { border-color:var(--green); color:var(--green); transform:translateY(-2px); }
.btn-ghost-light { background:rgba(255,255,255,.14); color:#fff; border-color:rgba(255,255,255,.4); }
.btn-ghost-light:hover { background:rgba(255,255,255,.22); }
.btn-lg { padding:1rem 1.9rem; font-size:1.02rem; }
.link-arrow { font-family:var(--display); font-weight:700; text-decoration:none; color:var(--green); display:inline-flex; align-items:center; gap:.45rem; transition:gap .2s; }
.link-arrow:hover { gap:.8rem; }

/* ---------- Header ---------- */
.site-header { position:sticky; top:0; z-index:100; background:rgba(255,255,255,.92); backdrop-filter:saturate(150%) blur(10px); -webkit-backdrop-filter:saturate(150%) blur(10px); border-bottom:1px solid var(--line); }
.site-header .wrap { display:flex; align-items:center; justify-content:space-between; height:72px; }
.brand { display:flex; align-items:center; gap:.6rem; text-decoration:none; color:var(--ink); }
.brand img { height:36px; width:auto; }
.brand .mark { font-family:var(--display); font-weight:800; font-size:1.25rem; letter-spacing:-.02em; }
.nav { display:flex; align-items:center; gap:1.9rem; }
.nav a { font-family:var(--sans); font-weight:500; font-size:.96rem; text-decoration:none; color:var(--ink); opacity:.82; transition:opacity .2s,color .2s; }
.nav a:hover { opacity:1; color:var(--green); }
.nav-toggle { display:none; background:none; border:0; font-size:1.5rem; cursor:pointer; color:var(--ink); min-width:44px; min-height:44px; line-height:1; padding:.4rem; }

/* ---------- Hero claro (estilo CarbonCheck) ---------- */
.hero { background:linear-gradient(180deg, var(--green-soft) 0%, #fff 78%); padding: clamp(2.5rem,5vw,4.5rem) 0 clamp(3rem,6vw,5rem); position:relative; overflow:hidden; }
.hero-grid { display:grid; grid-template-columns: 1.05fr .95fr; gap:clamp(2rem,5vw,4rem); align-items:center; }
.hero h1 { font-size:clamp(2.4rem,5.2vw,4rem); line-height:1.05; max-width:15ch; margin:1.3rem 0 0; }
.hero .lead { color:var(--muted); font-size:clamp(1.05rem,1.5vw,1.25rem); max-width:50ch; margin:1.3rem 0 0; }
.hero-actions { display:flex; flex-wrap:wrap; gap:.9rem; margin-top:2rem; }
.hero-badges { display:flex; flex-wrap:wrap; gap:.5rem 1.2rem; margin-top:1.8rem; }
.hero-badges span { display:inline-flex; align-items:center; gap:.45rem; font-size:.85rem; font-weight:600; color:#3d4a42; }
.hero-badges i { color:var(--green); }
.hero-figure { position:relative; }
.hero-figure img { width:100%; height:clamp(300px,38vw,460px); object-fit:cover; border-radius:var(--r); box-shadow:var(--shadow-lg); }
.hero-figure .float-stat { position:absolute; left:-12px; bottom:18px; background:#fff; border:1px solid var(--line); border-radius:var(--r-sm); box-shadow:var(--shadow); padding:.9rem 1.1rem; display:flex; align-items:center; gap:.7rem; }
.hero-figure .float-stat .ic { width:40px; height:40px; border-radius:10px; background:var(--green-soft); color:var(--green); display:flex; align-items:center; justify-content:center; }
.hero-figure .float-stat .n { font-family:var(--display); font-weight:800; font-size:1.15rem; line-height:1; }
.hero-figure .float-stat .t { font-size:.78rem; color:var(--muted); }
@media (max-width:880px){ .hero-grid { grid-template-columns:1fr; } .hero-figure { order:-1; } .hero h1 { max-width:20ch; } }

/* ---------- Tarjetas ---------- */
.cards { display:grid; grid-template-columns:repeat(auto-fit,minmax(280px,1fr)); gap:1.4rem; }
.card { background:var(--bg); border:1px solid var(--line); border-radius:var(--r); padding:1.9rem; transition:transform .25s, box-shadow .25s, border-color .25s; display:flex; flex-direction:column; }
.card:hover { transform:translateY(-6px); box-shadow:var(--shadow-lg); border-color:transparent; }
.card .ic { width:54px; height:54px; border-radius:14px; background:var(--green-soft); color:var(--green); display:flex; align-items:center; justify-content:center; font-size:1.35rem; margin-bottom:1.2rem; }
.card h3 { font-size:1.25rem; }
.card p { color:var(--muted); margin:.55rem 0 1.2rem; flex-grow:1; }
.card .link-arrow { margin-top:auto; }
.card .tag { font-size:.72rem; font-weight:700; letter-spacing:.06em; text-transform:uppercase; color:var(--green); }

.tint { background:var(--bg-soft); }
.tint-green { background:var(--green-soft); }

/* intro statement */
.intro p { font-family:var(--display); font-weight:700; font-size:clamp(1.4rem,3vw,2.1rem); line-height:1.35; max-width:30ch; margin:0 auto; text-align:center; }
.intro p span { color:var(--green); }

/* ---------- Banda verde (stats + estándares) ---------- */
.band-dark { background:linear-gradient(135deg, var(--green-900), var(--green-700)); color:#fff; position:relative; overflow:hidden; }
.band-dark::before { content:""; position:absolute; top:-120px; right:-90px; width:320px; height:320px; border-radius:50%; background:rgba(255,255,255,.06); }
.stats-row { display:grid; grid-template-columns:repeat(auto-fit,minmax(150px,1fr)); gap:2rem; position:relative; }
.stat-big { text-align:center; }
.stat-big .n { font-family:var(--display); font-weight:800; font-size:clamp(2.4rem,5vw,3.4rem); line-height:1; color:#fff; }
.stat-big .n { color:var(--amber); }
.stat-big .t { color:rgba(255,255,255,.92); margin-top:.5rem; font-size:.95rem; }
.chips { display:flex; flex-wrap:wrap; gap:.7rem; justify-content:center; margin-top:2.2rem; }
.chip { background:rgba(255,255,255,.1); border:1px solid rgba(255,255,255,.22); border-radius:var(--r-pill); padding:.6rem 1.2rem; font-weight:600; font-size:.9rem; display:inline-flex; align-items:center; gap:.5rem; }
.chip i { color:var(--amber); }

/* ---------- Clientes ---------- */
.clients-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(140px,1fr)); gap:1.1rem; }
.client-logo { height:90px; border:1px dashed var(--line-strong); border-radius:var(--r-sm); display:flex; flex-direction:column; align-items:center; justify-content:center; gap:.3rem; color:var(--line-strong); background:var(--bg); }
.client-logo i { font-size:1.3rem; }
.client-logo .ph { font-size:.74rem; font-weight:700; color:var(--muted); }
.client-logo.has-logo { border-style:solid; border-color:var(--line); }
.client-logo.has-logo img { max-width:84%; max-height:58px; object-fit:contain; filter:grayscale(1); opacity:.7; transition:.3s; }
.client-logo.has-logo:hover img { filter:none; opacity:1; }

/* ---------- Plataformas (carboncheck / adaptaclima) ---------- */
.platform { display:grid; grid-template-columns:1fr 1fr; gap:0; border:1px solid var(--line); border-radius:var(--r); overflow:hidden; background:var(--bg); box-shadow:var(--shadow); }
.platform + .platform { margin-top:1.5rem; }
.platform .pimg { background:var(--green-soft); min-height:230px; overflow:hidden; }
.platform .pimg img { width:100%; height:100%; object-fit:cover; }
.platform .pbody { padding:clamp(1.6rem,3vw,2.4rem); display:flex; flex-direction:column; justify-content:center; }
.platform .ptag { font-size:.74rem; font-weight:700; letter-spacing:.08em; text-transform:uppercase; color:var(--green); }
.platform h3 { font-size:1.6rem; margin:.5rem 0 0; }
.platform p { color:var(--muted); margin:.7rem 0 1.3rem; }
.platform .pactions { display:flex; flex-wrap:wrap; gap:.7rem; }
.platform.rev .pimg { order:2; }
@media (max-width:760px){ .platform, .platform.rev { grid-template-columns:1fr; } .platform.rev .pimg { order:0; } }

/* ---------- Equipo ---------- */
.team-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:1.6rem; max-width:1040px; margin:0 auto; }
@media (max-width:860px){ .team-grid { grid-template-columns:repeat(2,1fr); max-width:760px; } }
@media (max-width:560px){ .team-grid { grid-template-columns:1fr; max-width:400px; } }
.member { background:var(--bg); border:1px solid var(--line); border-radius:var(--r); overflow:hidden; transition:transform .25s, box-shadow .25s; }
.member:hover { transform:translateY(-6px); box-shadow:var(--shadow-lg); }
.member .photo { aspect-ratio:4/5; overflow:hidden; background:var(--green-soft); }
.member .photo img { width:100%; height:100%; object-fit:cover; transition:transform .5s; }
.member:hover .photo img { transform:scale(1.04); }
.member .info { padding:1.4rem; }
.member h3 { font-size:1.3rem; }
.member .role { font-weight:700; color:var(--green); font-size:.88rem; margin-top:.25rem; font-family:var(--display); }
.member ul { list-style:none; padding:0; margin:.9rem 0 0; }
.member li { font-size:.9rem; color:var(--muted); display:flex; gap:.5rem; margin-bottom:.4rem; }
.member li i { color:var(--green-400); margin-top:.22rem; }

/* ---------- CTA ---------- */
.cta { background:linear-gradient(135deg, var(--green-900), var(--green-700)); color:#fff; text-align:center; }
.cta h2 { color:#fff; font-size:clamp(2rem,4.5vw,3.2rem); max-width:20ch; margin:0 auto; }
.cta p { color:rgba(255,255,255,.85); max-width:50ch; margin:1.1rem auto 0; font-size:1.1rem; }
.cta .hero-actions { justify-content:center; margin-top:2rem; }

/* ---------- Footer ---------- */
.site-footer { background:var(--green-900); color:#cfe0d2; padding:clamp(3.5rem,6vw,5rem) 0 2rem; }
.footer-top { display:grid; grid-template-columns:1.5fr repeat(4, 1fr); gap:2rem; padding-bottom:2.4rem; border-bottom:1px solid rgba(255,255,255,.13); }
.site-footer .mark { font-family:var(--display); font-weight:800; font-size:1.4rem; color:#fff; }
.site-footer .about { color:rgba(207,224,210,.82); margin:.9rem 0 0; max-width:32ch; font-size:.95rem; }
.footer-col h4 { font-size:.75rem; letter-spacing:.13em; text-transform:uppercase; color:var(--amber); font-weight:700; margin-bottom:.9rem; }
.footer-col a { display:block; color:#cfe0d2; text-decoration:none; opacity:.86; padding:.28rem 0; }
.footer-col a:hover { opacity:1; color:#fff; }
.footer-bottom { display:flex; flex-wrap:wrap; justify-content:space-between; gap:1rem; padding-top:1.5rem; font-size:.85rem; color:rgba(217,228,220,.88); }
.footer-social { display:flex; gap:.6rem; }
.footer-social a { width:44px; height:44px; border:1px solid rgba(255,255,255,.2); border-radius:50%; display:flex; align-items:center; justify-content:center; color:#fff; text-decoration:none; transition:background .2s; }
.footer-social a:hover { background:rgba(255,255,255,.14); }

/* ---------- WhatsApp ---------- */
.wa-float { position:fixed; right:22px; bottom:22px; width:58px; height:58px; border-radius:50%; background:#25D366; color:#fff; display:flex; align-items:center; justify-content:center; font-size:1.9rem; box-shadow:0 10px 26px -8px rgba(0,0,0,.4); z-index:150; transition:transform .2s; text-decoration:none; }
.wa-float:hover { transform:scale(1.08); color:#fff; }

/* ---------- Reveal (gated bajo html.js) ---------- */
html.js .reveal { opacity:0; transform:translateY(20px); transition:opacity .6s ease, transform .6s ease; }
html.js .reveal.in { opacity:1; transform:none; }
@media (prefers-reduced-motion: reduce){ html.js .reveal { opacity:1; transform:none; transition:none; } }

/* ---------- Responsive ---------- */
@media (max-width:860px){
  .nav { position:fixed; inset:72px 0 auto 0; background:#fff; flex-direction:column; align-items:flex-start; gap:0; padding:1rem var(--gutter) 1.5rem; border-bottom:1px solid var(--line); transform:translateY(-140%); visibility:hidden; transition:transform .35s ease, visibility 0s linear .35s; box-shadow:var(--shadow); }
  .nav.open { transform:none; visibility:visible; transition:transform .35s ease; }
  .nav a { padding:.9rem 0; width:100%; border-bottom:1px solid var(--line); font-size:1.05rem; }
  .nav .btn { margin-top:.8rem; }
  .nav-toggle { display:block; }
  .footer-top { grid-template-columns:1fr 1fr; gap:1.8rem; }
}
@media (max-width:520px){ .footer-top { grid-template-columns:1fr; } }

/* =====================================================================
   AJUSTES DE AUDITORÍA v3 (2026-06-13) — impacto visual, conversión, a11y
   ===================================================================== */

/* --- Ámbar como protagonista (solo fondo/decorativo, nunca texto sobre claro) --- */
.hl { background:linear-gradient(transparent 58%, rgba(255,193,7,.45) 58%); padding:0 .05em; }
.section-head h2::after, .hero h1 + .lead { }
.section-head.center h2 { position:relative; }
.section-head h2 .uline, .uline { display:inline-block; }
.amber-rule { width:52px; height:4px; background:var(--amber); border-radius:4px; margin:1.1rem auto 0; }
.section-head.left .amber-rule { margin-inline:0; }

/* --- Profundidad del hero --- */
.hero::before { content:""; position:absolute; inset:0; z-index:0; pointer-events:none;
  background:
    radial-gradient(60% 50% at 88% 8%, rgba(255,193,7,.10), transparent 70%),
    radial-gradient(55% 45% at 4% 90%, rgba(46,125,50,.10), transparent 70%); }
.hero .wrap { position:relative; z-index:1; }
.hero-figure img { animation: kenburns 26s ease-in-out infinite alternate; }
@keyframes kenburns { from { transform:scale(1); } to { transform:scale(1.05); } }
.hero-figure .float-stat { background:rgba(255,255,255,.72); backdrop-filter:blur(10px); -webkit-backdrop-filter:blur(10px); border:1px solid rgba(255,255,255,.7); }
@media (prefers-reduced-motion: reduce){ .hero-figure img { animation:none; } }

/* --- Card hover premium (borde ámbar que crece + icono) --- */
.card { position:relative; }
.card::before { content:""; position:absolute; top:0; left:0; height:3px; width:0; background:var(--amber); border-radius:var(--r) var(--r) 0 0; transition:width .3s ease; }
.card:hover::before { width:100%; }
.card .ic { transition:transform .25s ease, background .25s ease, color .25s ease; }
.card:hover .ic { transform:scale(1.08); }

/* --- Reveal escalonado (lo setea el JS con --d) --- */
html.js .reveal { transition-delay: var(--d, 0ms); }

/* --- Textura sutil tipo "curvas de nivel" en bandas verdes --- */
.band-dark, .cta { position:relative; }
.band-dark::after, .cta::after { content:""; position:absolute; inset:0; z-index:0; pointer-events:none; opacity:.5;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='600' height='600' viewBox='0 0 600 600'%3E%3Cg fill='none' stroke='%23ffffff' stroke-opacity='0.05' stroke-width='1.2'%3E%3Cpath d='M-50 120 C150 60 300 180 450 120 S700 60 850 120'/%3E%3Cpath d='M-50 200 C150 140 300 260 450 200 S700 140 850 200'/%3E%3Cpath d='M-50 280 C150 220 300 340 450 280 S700 220 850 280'/%3E%3Cpath d='M-50 360 C150 300 300 420 450 360 S700 300 850 360'/%3E%3Cpath d='M-50 440 C150 380 300 500 450 440 S700 380 850 440'/%3E%3Cpath d='M-50 520 C150 460 300 580 450 520 S700 460 850 520'/%3E%3C/g%3E%3C/svg%3E"); }
.band-dark .wrap, .cta .wrap { position:relative; z-index:1; }

/* --- Donut de alcances (Scope 1/2/3) en CarbonCheck --- */
.scope-donut { display:flex; align-items:center; gap:1.4rem; flex-wrap:wrap; }
.scope-donut svg { flex-shrink:0; }
.scope-legend { list-style:none; padding:0; margin:0; font-size:.9rem; }
.scope-legend li { display:flex; align-items:center; gap:.5rem; margin-bottom:.4rem; color:var(--ink); }
.scope-legend .dot { width:12px; height:12px; border-radius:3px; display:inline-block; }

/* --- "Por qué Cúspide" --- */
.why-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(240px,1fr)); gap:1.6rem; }
.why-item { background:var(--bg); border:1px solid var(--line); border-radius:var(--r); padding:1.7rem; }
.why-item .n { font-family:var(--display); font-weight:800; color:var(--green); font-size:.95rem; letter-spacing:.04em; }
.why-item h3 { font-size:1.18rem; margin:.5rem 0 .5rem; }
.why-item p { color:var(--muted); margin:0; font-size:.96rem; }

/* --- Bloque de urgencia / ahorro fiscal --- */
.urgency { background:var(--green-soft); border:1px solid #cfe6d4; border-radius:var(--r); padding:clamp(1.6rem,3vw,2.4rem); display:flex; gap:1.3rem; align-items:flex-start; }
.urgency .ic { width:54px; height:54px; flex-shrink:0; border-radius:14px; background:#fff; color:var(--green-900); border:1px solid #cfe6d4; display:flex; align-items:center; justify-content:center; font-size:1.5rem; }
.urgency h3 { font-size:1.3rem; color:var(--ink); }
.urgency p { color:var(--muted); margin:.5rem 0 0; }
.urgency .legal { font-size:.78rem; color:var(--muted); margin-top:.6rem; }

/* --- Sectores (reemplaza placeholders de clientes) --- */
.sector-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(150px,1fr)); gap:1rem; }
.sector { background:var(--bg); border:1px solid var(--line); border-radius:var(--r-sm); padding:1.3rem 1rem; text-align:center; transition:transform .2s, border-color .2s; }
.sector:hover { transform:translateY(-4px); border-color:var(--green); }
.sector i { font-size:1.6rem; color:var(--green); }
.sector span { display:block; margin-top:.6rem; font-weight:600; font-size:.92rem; }

/* --- FAQ (details nativo = accesible) --- */
.faq { max-width:780px; margin:0 auto; }
.faq details { background:var(--bg); border:1px solid var(--line); border-radius:var(--r-sm); margin-bottom:.9rem; overflow:hidden; }
.faq summary { cursor:pointer; padding:1.2rem 1.4rem; font-family:var(--display); font-weight:700; font-size:1.05rem; list-style:none; display:flex; justify-content:space-between; align-items:center; gap:1rem; }
.faq summary::-webkit-details-marker { display:none; }
.faq summary::after { content:"\002B"; color:var(--green); font-size:1.4rem; font-weight:700; transition:transform .2s; }
.faq details[open] summary::after { transform:rotate(45deg); }
.faq details p { color:var(--muted); padding:0 1.4rem 1.3rem; margin:0; }

/* --- Autodiagnóstico "¿esto te aplica?" --- */
.selfcheck { background:var(--green-soft); border-radius:var(--r); padding:clamp(1.6rem,3vw,2.4rem); max-width:820px; margin:0 auto; }
.selfcheck-list { list-style:none; padding:0; margin:0 0 1.5rem; display:grid; gap:.7rem; }
.selfcheck-list li { background:#fff; border:1px solid var(--line); border-radius:var(--r-sm); }
.selfcheck-list label { display:flex; align-items:flex-start; gap:.8rem; padding:.9rem 1.1rem; cursor:pointer; font-size:.97rem; }
.selfcheck-list input { margin-top:.25rem; width:18px; height:18px; accent-color:var(--green); flex-shrink:0; }

/* --- Formulario (home) --- */
.lead-form { background:var(--bg); border:1px solid var(--line); border-radius:var(--r); padding:clamp(1.6rem,3vw,2.4rem); max-width:560px; margin:2rem auto 0; text-align:left; box-shadow:var(--shadow); }
.lead-form .fg { margin-bottom:1rem; }
.lead-form label { display:block; font-weight:600; font-size:.9rem; margin-bottom:.35rem; color:var(--ink); }
.lead-form input, .lead-form textarea, .lead-form select { width:100%; padding:.8rem 1rem; border:1px solid var(--line-strong); border-radius:var(--r-sm); font-family:inherit; font-size:1rem; }
.lead-form textarea { min-height:110px; resize:vertical; }
.lead-form .field-error { color:#b02a1a; font-size:.83rem; margin-top:.3rem; display:block; }
.lead-form [aria-invalid="true"] { border-color:#b02a1a; }
.form-status { margin-top:1rem; padding:.85rem 1.1rem; border-radius:var(--r-sm); font-weight:500; display:none; }
.form-status.is-success { display:block; background:#e6f4ea; color:#1e6b3a; border:1px solid #b7dfc4; }
.form-status.is-error { display:block; background:#fdecea; color:#8a2417; border:1px solid #f5c2bb; }
.btn-wa { background:#25D366; color:#fff; }
.btn-wa:hover { background:#1da851; transform:translateY(-2px); color:#fff; }

/* microcopy bajo CTA */
.cta-note { font-size:.82rem; color:var(--muted); margin-top:.7rem; }
.cta .cta-note { color:rgba(255,255,255,.75); }

/* CTA en versión clara (evita el "doble verde" contra el footer) */
.cta.cta-soft { background:var(--green-soft); color:var(--ink); }
.cta.cta-soft h2 { color:var(--ink); }
.cta.cta-soft p { color:var(--muted); }
.cta.cta-soft .cta-note { color:var(--muted); }
.cta.cta-soft::after { display:none; }

/* --- Página de contacto --- */
.contact-layout { display:grid; grid-template-columns:1fr 1.4fr; gap:2.5rem; align-items:start; }
.contact-info h2, .contact-form-card h2 { font-size:1.6rem; }
.contact-list { list-style:none; padding:0; margin:1.5rem 0 0; }
.contact-list li { display:flex; gap:1rem; align-items:flex-start; margin-bottom:1.2rem; }
.ci-ic { width:46px; height:46px; flex-shrink:0; border-radius:12px; background:var(--green-soft); color:var(--green); display:flex; align-items:center; justify-content:center; font-size:1.1rem; }
.contact-list strong { display:block; font-family:var(--display); font-size:.92rem; }
.contact-list a, .contact-list span { color:var(--muted); text-decoration:none; font-size:.95rem; }
.contact-list a:hover { color:var(--green); }
.contact-form-card { background:var(--bg); border:1px solid var(--line); border-radius:var(--r); padding:clamp(1.6rem,3vw,2.4rem); box-shadow:var(--shadow); }
.fg-grid { display:grid; grid-template-columns:1fr 1fr; gap:0 1.2rem; }
.fg { margin-bottom:1.1rem; }
.fg label { display:block; font-weight:600; font-size:.9rem; margin-bottom:.35rem; }
.fg input, .fg textarea, .fg select { width:100%; padding:.8rem 1rem; border:1px solid var(--line-strong); border-radius:var(--r-sm); font-family:inherit; font-size:1rem; background:#fff; }
.fg textarea { min-height:120px; resize:vertical; }
.fg [aria-invalid="true"] { border-color:#b02a1a; }
.fg .field-error { color:#b02a1a; font-size:.82rem; margin-top:.3rem; display:block; }
.fg-check { margin-bottom:.9rem; }
.fg-check label { display:flex; gap:.6rem; align-items:flex-start; font-size:.92rem; color:var(--muted); cursor:pointer; }
.fg-check input { margin-top:.2rem; width:18px; height:18px; accent-color:var(--green); flex-shrink:0; }
@media (max-width:820px){ .contact-layout { grid-template-columns:1fr; } .fg-grid { grid-template-columns:1fr; } }

/* aura del whatsapp flotante (una vez) */
@media (prefers-reduced-motion: no-preference){
  .wa-float::before { content:""; position:absolute; inset:0; border-radius:50%; box-shadow:0 0 0 0 rgba(37,211,102,.5); animation: wapulse 2.5s ease-out 3; }
  @keyframes wapulse { 0%{box-shadow:0 0 0 0 rgba(37,211,102,.5);} 100%{box-shadow:0 0 0 18px rgba(37,211,102,0);} }
}

/* ---------- Ajuste de anclas (header sticky no tapa el título) ---------- */
[id]{ scroll-margin-top:90px; }

/* ---------- Documentos legales ---------- */
.legal-doc h2 { font-size:1.18rem; margin:2rem 0 .6rem; }
.legal-doc p, .legal-doc li { color:var(--muted); line-height:1.7; }
.legal-doc ul { margin:.4rem 0 1rem 1.1rem; }
.legal-doc li { margin-bottom:.35rem; }
.legal-doc a { color:var(--green); }
