/* Viventra · home (cabecera, cómo funciona, portal). Complementa styles.css; solo la carga index.html. */

/* ── Navegación ───────────────────────────────────────────────────── */
.navbar{background:rgba(255,255,255,.92);backdrop-filter:saturate(1.4) blur(12px)}
.nav-container{height:68px;gap:20px}
.logo-img{height:50px}
.nav-links{gap:22px}
.nav-links a{font-size:.95rem;font-weight:500;color:var(--text-main);padding:6px 0;border-bottom:2px solid transparent;transition:color .2s,border-color .2s}
.nav-links a:hover,.nav-links a[aria-current=page]{color:var(--secondary);border-color:var(--secondary)}
.nav-links a.nav-portal{display:inline-flex;align-items:center;gap:6px;color:var(--brand-dark);font-weight:600}
.nav-links a.nav-portal svg{width:15px;height:15px;stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.nav-links a.nav-acceso{color:var(--text-muted);font-size:.88rem;display:inline-flex;align-items:center;gap:5px}
.nav-links a.nav-acceso svg{width:14px;height:14px;stroke:currentColor;fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;opacity:.8}
.header-actions .btn-sm{padding:10px 16px;font-size:.9rem;white-space:nowrap}
.nav-wa{display:inline-flex;align-items:center;gap:6px}
.nav-wa svg{width:16px;height:16px;fill:currentColor}
@media (max-width:1320px){.nav-links a.nav-acceso{display:none}.nav-wa span{display:none}.nav-wa{padding:10px 12px}}
@media (max-width:1100px){.nav-links{gap:14px}.nav-links a{font-size:.88rem}}
@media (max-width:768px){
  .nav-container{height:60px}
  .nav-links{top:60px;padding:8px 20px 16px;gap:0}
  .nav-links a{border-bottom:1px solid #eee;padding:14px 0}
  .nav-links a.nav-acceso{display:inline-flex;color:var(--text-muted)}
  .nav-links a.nav-cta{display:block;text-align:center;background:var(--primary);color:#1f3441;border-radius:10px;font-weight:700;margin-top:12px;border:0;padding:14px}
}

/* ── Cabecera ─────────────────────────────────────────────────────── */
.hero-v2{padding:104px 0 56px;background:linear-gradient(180deg,#f6f8f5 0%,#fff 100%);position:relative;overflow:hidden}
.hero-v2 .container{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,6fr);gap:48px;align-items:center}
.hero-v2__eyebrow{display:inline-flex;align-items:center;gap:8px;font-size:.8rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--secondary);margin-bottom:18px}
.hero-v2__eyebrow::before{content:"";width:22px;height:2px;background:var(--secondary);border-radius:2px}
.hero-v2 h1{font-size:clamp(2.1rem,3.6vw,3.1rem);line-height:1.1;letter-spacing:-.02em;color:var(--brand-dark);margin:0 0 18px;text-wrap:balance}
.hero-v2 h1 em{font-style:normal;color:var(--secondary)}
.hero-v2__lead{font-size:1.12rem;line-height:1.6;color:#3f4f5a;max-width:52ch;margin:0 0 26px}
.hero-v2__lead a{color:inherit;text-decoration:underline;text-underline-offset:3px}
.hero-v2__cta{display:flex;flex-wrap:wrap;gap:12px;align-items:center;margin-bottom:22px}
.hero-v2__cta .btn{padding:15px 22px;font-size:1rem;border-radius:12px;display:inline-flex;align-items:center;gap:8px}
.hero-v2__cta .btn svg{width:18px;height:18px}
.hero-v2__cta .btn-primary{box-shadow:0 10px 24px -10px rgba(245,174,83,.8)}
.hero-v2__proof{display:flex;flex-wrap:wrap;gap:8px 18px;padding:0;margin:0;list-style:none;font-size:.9rem;color:#4b5b66}
.hero-v2__proof li{display:inline-flex;align-items:center;gap:7px}
.hero-v2__proof svg{width:16px;height:16px;stroke:var(--secondary);fill:none;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round}
.hero-v2__proof b{color:var(--brand-dark);font-weight:700}
.hero-v2__map{position:relative}
.hero-v2__map #mapa-cartera{height:min(560px,68vh);min-height:420px}
.hero-v2__caption{margin:12px 4px 0;font-size:.86rem;color:var(--text-muted);display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap}
.hero-v2__caption a{color:var(--secondary);font-weight:600;text-decoration:none}
.hero-v2__caption a:hover{text-decoration:underline}
@media (max-width:1024px){.hero-v2 .container{grid-template-columns:1fr;gap:32px}.hero-v2__map #mapa-cartera{height:460px;min-height:420px}}
@media (max-width:768px){.hero-v2{padding:84px 0 40px}.hero-v2 h1{font-size:2rem}.hero-v2__lead{font-size:1.02rem}.hero-v2__cta .btn{width:100%;justify-content:center}.hero-v2__map #mapa-cartera{height:380px;min-height:360px}}

/* ── Cómo funciona ────────────────────────────────────────────────── */
.how{padding:72px 0}
.how__head{max-width:720px;margin:0 auto 40px;text-align:center}
.how__head h2{margin-bottom:12px}
.how__head p{color:var(--text-muted);font-size:1.05rem}
.how__grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;counter-reset:paso}
.how__step{position:relative;background:#fff;border:1px solid var(--border-color);border-radius:16px;padding:26px 24px 24px;box-shadow:0 12px 30px -24px rgba(31,52,65,.35)}
.how__step::before{counter-increment:paso;content:counter(paso,decimal-leading-zero);font-size:.8rem;font-weight:800;letter-spacing:.1em;color:var(--secondary);display:block;margin-bottom:12px}
.how__step h3{font-size:1.15rem;margin:0 0 8px;color:var(--brand-dark)}
.how__step p{margin:0;color:#4b5b66;font-size:.96rem;line-height:1.55}
.how__step ul{margin:12px 0 0;padding-left:18px;color:#4b5b66;font-size:.92rem;line-height:1.55}
.how__foot{text-align:center;margin-top:28px;font-size:.92rem;color:var(--text-muted)}
.how__foot a{color:var(--secondary);font-weight:600}
@media (max-width:900px){.how__grid{grid-template-columns:1fr}}

/* ── Garantías (dos pilares condensados) ──────────────────────────── */
.pillars{padding:64px 0;background:var(--bg-alt)}
.pillars__grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-top:32px}
.pillar{background:#fff;border:1px solid var(--border-color);border-radius:16px;padding:24px}
.pillar .service-icon{margin-bottom:12px}
.pillar h3{font-size:1.08rem;margin:0 0 8px;color:var(--brand-dark)}
.pillar p{margin:0;font-size:.94rem;color:#4b5b66;line-height:1.55}
.pillar p a{color:var(--secondary);font-weight:600}
.pillars details{max-width:860px;margin:26px auto 0;background:#fff;border:1px solid var(--border-color);border-left:4px solid var(--primary);border-radius:12px;padding:14px 20px}
.pillars summary{cursor:pointer;font-weight:700;color:var(--brand-dark);list-style:none;display:flex;align-items:center;gap:8px}
.pillars summary::-webkit-details-marker{display:none}
.pillars summary::after{content:"+";margin-left:auto;font-size:1.2rem;color:var(--text-muted)}
.pillars details[open] summary::after{content:"–"}
.pillars details ul{margin:12px 0 4px;padding-left:18px;font-size:.92rem;line-height:1.6;color:#3f4f5a}
.pillars__note{text-align:center;max-width:720px;margin:18px auto 0;font-size:.86rem;color:var(--text-muted);font-style:italic}
@media (max-width:900px){.pillars__grid{grid-template-columns:1fr}}

/* ── Portal del propietario ───────────────────────────────────────── */
.portal{padding:80px 0;background:#0f2a24;color:#e8efe9;position:relative;overflow:hidden}
.portal::before{content:"";position:absolute;inset:-40% -20% auto;height:80%;background:radial-gradient(ellipse at 30% 20%,rgba(76,149,119,.35),transparent 60%);pointer-events:none}
.portal .container{position:relative}
.portal__head{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:24px;align-items:end;margin-bottom:36px}
.portal__eyebrow{font-size:.78rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:#9fd3bb;margin-bottom:10px}
.portal h2{color:#fff;margin:0 0 10px;font-size:clamp(1.7rem,2.8vw,2.3rem);letter-spacing:-.01em}
.portal__head p{margin:0;color:#b9cbc2;max-width:56ch;font-size:1.02rem;line-height:1.55}
.portal__cta{display:flex;flex-direction:column;gap:8px;align-items:flex-start}
.portal__cta .btn{padding:14px 22px;border-radius:12px;font-size:1rem}
.portal__cta small{color:#9fb3aa;font-size:.82rem}
.portal__grid{display:grid;grid-template-columns:repeat(2,1fr);gap:20px}
.shot{background:#152f29;border:1px solid rgba(255,255,255,.08);border-radius:16px;overflow:hidden;box-shadow:0 30px 60px -30px rgba(0,0,0,.7);transition:transform .25s}
.shot:hover{transform:translateY(-4px)}
.shot__bar{display:flex;align-items:center;gap:6px;padding:10px 14px;border-bottom:1px solid rgba(255,255,255,.08)}
.shot__bar i{width:10px;height:10px;border-radius:50%;background:rgba(255,255,255,.18)}
.shot__bar span{margin-left:8px;font-size:.78rem;color:#9fb3aa;letter-spacing:.04em}
.shot img{display:block;width:100%;height:auto;aspect-ratio:16/10;object-fit:cover;object-position:top left}
.shot__cap{padding:14px 16px 16px}
.shot__cap b{display:block;color:#fff;font-size:1rem;margin-bottom:4px}
.shot__cap p{margin:0;color:#b9cbc2;font-size:.9rem;line-height:1.5}
@media (max-width:900px){.portal__head{grid-template-columns:1fr}.portal__grid{grid-template-columns:1fr}}

/* ── Ajustes globales de síntesis ─────────────────────────────────── */
.stat-number small{font-size:.5em;font-weight:600;margin-left:2px}

/* ── Jerarquía de conversión (22-sep-2026) ───────────────────────────
   Un único CTA dominante: «Saber si mi piso encaja» → #study. La
   calculadora, el mapa y el portal siguen en la home como prueba de
   profesionalidad, pero ya no compiten con el objetivo comercial. */
.hero-v2__secundario{background:none;border:0;padding:15px 4px;color:var(--text-muted);font-weight:600;text-decoration:underline;text-underline-offset:4px}
.hero-v2__secundario:hover{color:var(--secondary)}

/* Navegación transparente sobre la cabecera, sólida al hacer scroll.
   Sin cambios de alto ni de posición: no mueve el contenido (CLS 0). */
.navbar.sobre-hero{background:transparent;backdrop-filter:none;border-bottom-color:transparent;box-shadow:none}
.navbar.sobre-hero .nav-links a{color:var(--brand-dark)}
@media (prefers-reduced-motion:reduce){.navbar{transition:none}}

/* CTA fijo en móvil */
.sticky-cta{position:fixed;left:0;right:0;bottom:0;z-index:900;display:none;gap:10px;align-items:center;padding:10px 14px calc(10px + env(safe-area-inset-bottom));background:rgba(255,255,255,.96);backdrop-filter:blur(10px);border-top:1px solid var(--border-color)}
.sticky-cta .btn{flex:1;justify-content:center;padding:14px 16px;font-size:1rem;border-radius:12px}
.sticky-cta__wa{flex:0 0 48px;height:48px;display:inline-flex;align-items:center;justify-content:center;border-radius:12px;background:#25D366;color:#fff}
.sticky-cta__wa svg{width:24px;height:24px;fill:currentColor}
@media (max-width:768px){
  .sticky-cta[hidden]{display:none}
  .sticky-cta:not([hidden]){display:flex}
  body.con-sticky-cta{padding-bottom:76px}
}

/* ── Home consolidada (23-sep-2026): piezas reutilizadas ─────────── */
.hero-v2__micro{margin:-12px 0 20px;font-size:.9rem;color:var(--text-muted)}
.pillars__grid--4{grid-template-columns:repeat(4,1fr)}
@media (max-width:1000px){.pillars__grid--4{grid-template-columns:repeat(2,1fr)}}
@media (max-width:600px){.pillars__grid--4{grid-template-columns:1fr}}

/* Tras la calculadora: un paso, hablar. */
.calc-siguiente{margin-top:32px;padding-top:28px;border-top:1px solid var(--border-color);text-align:center}
.calc-siguiente h3{font-size:1.4rem;margin:0 0 8px;text-transform:none;letter-spacing:normal}
.calc-siguiente > p{max-width:560px;margin:0 auto 18px;color:var(--text-muted);font-size:.97rem}
.calc-siguiente .btn{white-space:normal;height:auto;text-align:center}
.calc-siguiente .calc-siguiente__micro{margin:10px auto 0;font-size:.88rem}

/* Cómo empezar: CTA bajo los tres pasos. */
.how__cta{text-align:center;margin-top:28px}
.how__cta .btn{white-space:normal;height:auto;text-align:center}
.how__cta p{margin:10px 0 0;font-size:.88rem;color:var(--text-muted)}

/* Testimonios: mismo componente que /propietarios-sevilla. */
.voz-home{padding:64px 0;background:var(--bg-alt)}
.voz-home h2{text-align:center;margin:0 0 8px}
.voz-home__sub{margin:0 0 24px;text-align:center;font-size:.86rem;color:var(--text-muted)}
.voz-home__lista{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
@media (max-width:900px){.voz-home__lista{grid-template-columns:1fr;max-width:560px;margin:0 auto}}
.lp-msg{display:flex;flex-direction:column;background:#efeae2;border-radius:16px;overflow:hidden;border:1px solid #e3ddd3;margin:0}
.lp-msg__chat{flex:1;padding:14px 14px 12px}
.lp-msg__quien{margin:0 0 8px;font-size:.78rem;color:#5f6f68;font-weight:600}
.lp-msg__burbuja{position:relative;margin:0;background:#fff;border-radius:0 12px 12px 12px;padding:10px 12px 8px;box-shadow:0 1px 1px rgba(0,0,0,.08)}
.lp-msg__burbuja::before{content:"";position:absolute;left:-7px;top:0;border-width:0 8px 8px 0;border-style:solid;border-color:transparent #fff transparent transparent}
.lp-msg__burbuja p{margin:0;font-size:.97rem;line-height:1.5;color:#1f2c33}
.lp-msg__via{display:block;margin-top:6px;text-align:right;font-size:.7rem;color:#8a9892}
.lp-msg__resp{margin:0;background:#fff;padding:10px 14px 12px;border-top:2px solid var(--secondary);font-size:.86rem;line-height:1.4;color:#4b5b66}
.lp-msg__resp b{color:var(--brand-dark)}
/* El CTA «Quiero delegar la gestión de mi vivienda» es más largo: que parta línea
   en móvil en vez de ensanchar la columna del hero. */
@media (max-width:1024px){.hero-v2 .container{grid-template-columns:minmax(0,1fr)}}
.hero-v2__cta .btn{white-space:normal;text-align:center;line-height:1.3}
/* A 320 px el botón del portal no cabía junto al texto. */
@media (max-width:700px){.portal__head{grid-template-columns:minmax(0,1fr)}.portal__cta .btn{white-space:normal;text-align:center}}
/* A 320 px el logo de 90 px y el texto no cabían en una línea: que parta. */
@media (max-width:480px){.brand-name-subtitle{flex-wrap:wrap;gap:4px;text-align:center}.brand-name-subtitle img{height:64px!important;margin-right:0!important}}

/* Aviso de actualidad encima del titular (enlaza a /iva-pisos-turisticos). */
.aviso-iva{display:inline-flex;align-items:center;gap:10px;max-width:100%;margin:0 0 18px;padding:9px 16px;border-radius:999px;background:#fff8e6;border:1px solid #f5ae53;color:var(--brand-dark);font-size:.92rem;font-weight:600;line-height:1.35;text-decoration:none;box-shadow:0 2px 8px rgba(31,52,65,.06);transition:background .2s,border-color .2s}
.aviso-iva:hover,.aviso-iva:focus-visible{background:#fff1cc;border-color:#db9a48}
.aviso-iva:focus-visible{outline:2px solid var(--secondary);outline-offset:2px}
.aviso-iva__punto{flex-shrink:0;width:8px;height:8px;border-radius:50%;background:#db9a48}
@media (max-width:768px){.aviso-iva{font-size:.86rem;padding:8px 14px;border-radius:14px}}
