:root {
  --azul: #0b1f3a;
  --azul2: #123a5e;
  --dorado: #f2c14e;
  --gris: #64748b;
  --bg: #f7f9fc;
}
* { margin:0; padding:0; box-sizing:border-box; }
body { font-family: 'Segoe UI', Arial, sans-serif; color:#1f2937; background:var(--bg); line-height:1.55; }
a { color:inherit; }
img { max-width:100%; display:block; }
.container { max-width:1100px; margin:0 auto; padding:0 20px; }
.btn { display:inline-block; background:var(--dorado); color:var(--azul); font-weight:700; padding:13px 28px; border-radius:30px; text-decoration:none; border:none; cursor:pointer; font-size:0.95rem; transition:transform .15s; }
.btn:hover { transform:translateY(-2px); }
.btn-outline { background:transparent; border:2px solid #fff; color:#fff; }
.btn-dark { background:var(--azul); color:#fff; }
.seccion { padding:70px 0; }
.seccion-alt { background:#fff; }
h2.titulo-seccion { font-size:2rem; color:var(--azul); text-align:center; margin-bottom:10px; }
p.subtitulo-seccion { text-align:center; color:var(--gris); max-width:600px; margin:0 auto 40px; }

/* HEADER */
header.top { background:var(--azul); position:sticky; top:0; z-index:50; }
.nav { display:flex; align-items:center; justify-content:space-between; padding:14px 20px; }
.nav .marca { display:flex; align-items:center; gap:10px; color:#fff; font-weight:700; font-size:1.15rem; text-decoration:none; }
.nav .marca img { height:38px; width:auto; border-radius:6px; }
.nav ul { list-style:none; display:flex; gap:26px; align-items:center; }
.nav ul a { color:#dbe7f5; text-decoration:none; font-size:0.92rem; font-weight:500; }
.nav ul a:hover, .nav ul a.activo { color:var(--dorado); }
.nav .wa-btn { background:#25D366; color:#fff; padding:9px 18px; border-radius:24px; font-weight:600; font-size:0.88rem; text-decoration:none; }
.menu-toggle { display:none; background:none; border:none; color:#fff; font-size:1.6rem; cursor:pointer; }

/* HERO */
.hero { position:relative; background:linear-gradient(135deg, var(--azul) 0%, var(--azul2) 60%, #0b1f3a 100%); color:#fff; padding:90px 0 100px; text-align:center; overflow:hidden; }
.hero h1 { font-size:2.5rem; max-width:800px; margin:0 auto 18px; }
.hero p { color:#cfe0f0; font-size:1.15rem; max-width:620px; margin:0 auto 32px; }
.hero .ctas { display:flex; gap:16px; justify-content:center; flex-wrap:wrap; }

/* SLIDER DE FONDO EN EL HERO */
.hero-con-slider { background:var(--azul); }
.hero-slider { position:absolute; inset:0; z-index:0; }
.hero-slide { position:absolute; inset:0; background-size:cover; background-position:center; opacity:0; transition:opacity 1.4s ease; }
.hero-slide.activo { opacity:1; }
.hero-overlay { position:absolute; inset:0; z-index:1; background:linear-gradient(135deg, rgba(11,31,58,0.88) 0%, rgba(18,58,94,0.8) 60%, rgba(11,31,58,0.9) 100%); }
.hero-contenido { position:relative; z-index:2; }

/* QUIENES SOMOS - resumen en Inicio */
.home-qs { display:grid; grid-template-columns:1fr 1.1fr; gap:44px; align-items:center; }
.home-qs.sin-imagen { grid-template-columns:1fr; text-align:center; }
.home-qs.sin-imagen .titulo-seccion, .home-qs.sin-imagen .subtitulo-seccion { text-align:center !important; }
.home-qs.sin-imagen .subtitulo-seccion { margin-left:auto; margin-right:auto; max-width:700px; }
.home-qs-img { border-radius:16px; overflow:hidden; aspect-ratio:4/3; box-shadow:0 10px 28px rgba(15,23,42,0.1); }
.home-qs-img img { width:100%; height:100%; object-fit:cover; }
@media (max-width:900px) {
  .home-qs { grid-template-columns:1fr; text-align:center; }
  .home-qs .titulo-seccion, .home-qs .subtitulo-seccion { text-align:center !important; }
  .home-qs-img { max-width:500px; margin:0 auto; }
}

/* GALERIA DE IMAGENES */
.galeria-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:16px; }
.galeria-item { border-radius:12px; overflow:hidden; aspect-ratio:1/1; box-shadow:0 2px 8px rgba(15,23,42,0.08); position:relative; }
.galeria-item img { width:100%; height:100%; object-fit:cover; transition:transform .3s; }
.galeria-item:hover img { transform:scale(1.06); }
.galeria-item .titulo-foto { position:absolute; left:0; right:0; bottom:0; background:linear-gradient(transparent, rgba(11,31,58,0.85)); color:#fff; font-size:0.78rem; padding:16px 10px 8px; opacity:0; transition:opacity .2s; }
.galeria-item:hover .titulo-foto { opacity:1; }
@media (max-width:900px) { .galeria-grid { grid-template-columns:repeat(2,1fr); } }

/* QUIENES SOMOS */
.qs-imagen { border-radius:16px; overflow:hidden; max-width:900px; margin:0 auto 40px; aspect-ratio:21/9; box-shadow:0 10px 28px rgba(15,23,42,0.1); }
.qs-imagen img { width:100%; height:100%; object-fit:cover; }
.qs-grid { display:grid; grid-template-columns:1.2fr 1fr; gap:40px; align-items:start; }
.qs-grid p { color:#374151; margin-bottom:16px; }
.mv-cards { display:grid; gap:18px; }
.mv-card { background:var(--bg); border-left:4px solid var(--dorado); border-radius:8px; padding:20px; }
.mv-card h3 { color:var(--azul); margin-bottom:8px; font-size:1.05rem; }
.mv-card p { color:#4b5563; font-size:0.92rem; }

/* ENFOQUE */
.enfoque-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:20px; }
.enfoque-item { text-align:center; padding:24px 16px; background:var(--bg); border-radius:12px; }
.enfoque-item h3 { color:var(--azul); font-size:1rem; margin-bottom:8px; }
.enfoque-item p { font-size:0.85rem; color:var(--gris); }

/* SERVICIOS */
.servicios-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:20px; }
.servicio-card { display:block; background:#fff; border:1px solid #e5e7eb; border-radius:14px; padding:0 20px 26px; text-align:center; transition:box-shadow .2s, transform .2s; text-decoration:none; color:inherit; overflow:hidden; }
.servicio-card:hover { box-shadow:0 10px 25px rgba(11,31,58,0.1); transform:translateY(-4px); }
.servicio-card-img { position:relative; z-index:1; margin:0 -20px 0; aspect-ratio:16/10; overflow:hidden; }
.servicio-card-img img { width:100%; height:100%; object-fit:cover; }
.servicio-card .ico {
  position:relative; z-index:2;
  width:56px; height:56px; margin:0 auto 16px; border-radius:50%; background:var(--bg); border:1.5px solid #e5e7eb;
  display:flex; align-items:center; justify-content:center; color:var(--azul); transition:background .2s, color .2s, border-color .2s;
}
.servicio-card-img + .ico { margin-top:-28px; background:#fff; box-shadow:0 3px 10px rgba(15,23,42,0.15); }
.servicio-card:not(:has(.servicio-card-img)) .ico { margin-top:26px; }
.servicio-card .ico svg { width:26px; height:26px; }
.servicio-card:hover .ico { background:var(--azul); color:var(--dorado); border-color:var(--azul); }
.servicio-card h3 { margin-top:0; }
.servicio-card h3 { color:var(--azul); font-size:1.02rem; margin-bottom:8px; }
.servicio-card p { color:var(--gris); font-size:0.87rem; }

/* METODOLOGIA */
.metodo-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:20px; counter-reset:paso; }
.metodo-item { position:relative; background:var(--azul); color:#fff; border-radius:12px; padding:30px 20px 22px; }
.metodo-item .num { position:absolute; top:-16px; left:20px; background:var(--dorado); color:var(--azul); font-weight:800; width:36px; height:36px; border-radius:50%; display:flex; align-items:center; justify-content:center; }
.metodo-item h3 { font-size:1rem; margin-bottom:8px; margin-top:8px; }
.metodo-item p { font-size:0.85rem; color:#cfe0f0; }

/* CALCULADORA */
.calc-box { background:#fff; border-radius:16px; padding:36px; max-width:700px; margin:0 auto; box-shadow:0 4px 20px rgba(0,0,0,0.06); }
.calc-box label { display:block; font-weight:600; margin-bottom:6px; color:var(--azul); font-size:0.9rem; }
.calc-row { margin-bottom:22px; }
.calc-row input[type=range] { width:100%; }
.calc-values { display:flex; justify-content:space-between; font-size:0.85rem; color:var(--gris); }
.calc-resultado { text-align:center; margin-top:20px; padding:22px; background:var(--bg); border-radius:12px; }
.calc-resultado .plan-sugerido { font-size:1.6rem; font-weight:800; color:var(--azul); }
.calc-resultado .precio-sugerido { color:var(--dorado); font-weight:700; font-size:1.2rem; }

/* PLANES */
.planes-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:24px; align-items:stretch; }
.plan-card { background:#fff; border-radius:16px; padding:30px 26px; border:2px solid #e5e7eb; display:flex; flex-direction:column; position:relative; }
.plan-card.destacado { border-color:var(--dorado); box-shadow:0 10px 30px rgba(242,193,78,0.25); transform:scale(1.03); }
.plan-card .badge { position:absolute; top:-14px; left:50%; transform:translateX(-50%); background:var(--dorado); color:var(--azul); font-weight:700; font-size:0.75rem; padding:5px 16px; border-radius:20px; }
.plan-card h3 { color:var(--azul); font-size:1.2rem; text-align:center; }
.plan-card .precio { text-align:center; margin:14px 0; }
.plan-card .precio .monto { font-size:2rem; font-weight:800; color:var(--azul); }
.plan-card .precio .periodo { color:var(--gris); font-size:0.9rem; }
.plan-card .desc { text-align:center; color:var(--gris); font-size:0.87rem; margin-bottom:18px; min-height:40px; }
.plan-card ul { list-style:none; flex:1; margin-bottom:20px; }
.plan-card ul li { padding:7px 0; font-size:0.88rem; border-bottom:1px solid #f1f1f1; }
.plan-card ul li.no { color:#bbb; text-decoration:line-through; }
.plan-card ul li .chk { margin-right:8px; }
.plan-card .reportes { text-align:center; font-size:0.8rem; color:var(--gris); margin-bottom:14px; font-style:italic; }
.plan-card .btn { display:block; text-align:center; }
.planes-nota { text-align:center; color:var(--gris); margin-top:30px; font-size:0.9rem; }

/* TESTIMONIOS */
.testi-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:20px; }
.testi-card { background:#fff; border-radius:14px; padding:26px; border-top:4px solid var(--dorado); }
.testi-card p.txt { font-style:italic; color:#374151; margin-bottom:14px; }
.testi-card .autor { font-weight:700; color:var(--azul); font-size:0.9rem; }
.testi-card .cargo { color:var(--gris); font-size:0.8rem; }

/* BANNER DIAGNOSTICO */
.banner-diag { background:linear-gradient(135deg, var(--dorado), #e8ac2a); text-align:center; padding:50px 20px; }
.banner-diag p { color:var(--azul); font-size:1.25rem; font-weight:700; max-width:700px; margin:0 auto 22px; }

/* BLOG */
.blog-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:22px; }
.blog-card { background:#fff; border-radius:14px; overflow:hidden; border:1px solid #eee; }
.blog-card .img { height:150px; background:linear-gradient(135deg,var(--azul),var(--azul2)); display:flex; align-items:center; justify-content:center; color:#fff; font-size:2rem; }
.blog-card .img img { width:100%; height:100%; object-fit:cover; }
.blog-card .body { padding:20px; }
.blog-card h3 { color:var(--azul); font-size:1.02rem; margin-bottom:8px; }
.blog-card p { color:var(--gris); font-size:0.87rem; margin-bottom:12px; }
.blog-card .fecha { font-size:0.75rem; color:#9ca3af; }

/* FAQ */
.faq-item { background:#fff; border:1px solid #e5e7eb; border-radius:10px; margin-bottom:12px; overflow:hidden; }
.faq-q { padding:18px 22px; cursor:pointer; display:flex; justify-content:space-between; align-items:center; font-weight:600; color:var(--azul); }
.faq-q:after { content:'+'; color:var(--dorado); font-size:1.3rem; }
.faq-item.open .faq-q:after { content:'−'; }
.faq-a { max-height:0; overflow:hidden; transition:max-height .25s ease; padding:0 22px; color:var(--gris); font-size:0.9rem; }
.faq-item.open .faq-a { max-height:300px; padding:0 22px 18px; }

/* CONTACTO */
.contacto-grid { display:grid; grid-template-columns:1fr 1fr; gap:40px; }
.contacto-info div { margin-bottom:20px; }
.contacto-info h4 { color:var(--azul); font-size:0.85rem; text-transform:uppercase; letter-spacing:.5px; margin-bottom:4px; }
.contacto-form input, .contacto-form select, .contacto-form textarea {
  width:100%; padding:12px; margin-bottom:14px; border:1px solid #d1d5db; border-radius:8px; font-family:inherit; font-size:0.92rem;
}
.contacto-form textarea { min-height:100px; resize:vertical; }

/* FOOTER */
footer.site-footer { background:#081426; color:#cfe0f0; padding:60px 0 0; border-top:3px solid var(--dorado); }
.footer-grid { display:grid; grid-template-columns:1.6fr 1fr 1fr 1.1fr; gap:36px; padding-bottom:40px; }
.footer-grid h4 { color:#fff; margin-bottom:14px; font-size:0.82rem; text-transform:uppercase; letter-spacing:1px; }
.footer-grid p, .footer-grid a { font-size:0.87rem; color:#8fa3ba; text-decoration:none; display:block; margin-bottom:10px; line-height:1.6; }
.footer-grid a:hover { color:var(--dorado); }
.footer-marca p { margin-bottom:18px; }
.footer-logo { display:flex; align-items:center; gap:10px; margin-bottom:14px; }
.footer-logo img { height:34px; width:auto; border-radius:6px; }
.footer-logo h4 { margin:0; color:#fff; font-size:1.05rem; text-transform:none; letter-spacing:0; }
.footer-redes { display:flex; gap:10px; }
.footer-redes a { width:38px; height:38px; border-radius:50%; background:rgba(255,255,255,0.06); border:1px solid rgba(255,255,255,0.12); display:flex; align-items:center; justify-content:center; margin-bottom:0; transition:background .2s, border-color .2s; }
.footer-redes a:hover { background:var(--dorado); border-color:var(--dorado); }
.footer-redes a svg { width:17px; height:17px; color:#cfe0f0; }
.footer-redes a:hover svg { color:var(--azul); }
.footer-wa-btn { display:inline-flex; align-items:center; gap:8px; background:#1ea952; color:#fff !important; padding:9px 16px; border-radius:24px; font-weight:600; font-size:0.85rem; margin-top:4px; }
.footer-wa-btn svg { width:16px; height:16px; }
.footer-wa-btn:hover { background:#188a44; color:#fff !important; }
.footer-bottom { border-top:1px solid rgba(255,255,255,0.08); padding:18px 0; display:flex; justify-content:space-between; flex-wrap:wrap; gap:10px; font-size:0.78rem; color:#7d94ad; }
.footer-legal-links a { display:inline; margin:0; color:#7d94ad; }
.footer-legal-links a:hover { color:var(--dorado); }

/* ARTICULO DE BLOG */
.post-hero { background:linear-gradient(135deg, var(--azul) 0%, var(--azul2) 100%); color:#fff; padding:44px 0 50px; }
.post-hero a.volver { display:inline-flex; align-items:center; gap:8px; color:var(--dorado); text-decoration:none; font-weight:600; font-size:0.88rem; margin-bottom:22px; }
.post-hero a.volver svg { width:16px; height:16px; }
.post-hero a.volver:hover { color:#fff; }
.post-hero .post-meta { color:#9fb3c8; font-size:0.85rem; margin-bottom:14px; }
.post-hero .post-meta .dot { margin:0 8px; }
.post-hero h1 { font-size:2.1rem; max-width:800px; margin-bottom:16px; }
.post-hero .post-resumen { color:#cfe0f0; font-size:1.08rem; max-width:700px; margin-bottom:24px; }
.servicio-hero-icono { width:56px; height:56px; border-radius:14px; background:rgba(242,193,78,0.15); color:var(--dorado); display:flex; align-items:center; justify-content:center; margin-bottom:16px; }
.servicio-hero-icono svg { width:28px; height:28px; }

.post-wrap { max-width:750px; margin:0 auto; padding:46px 20px 60px; }
.post-img { border-radius:14px; overflow:hidden; margin-bottom:34px; box-shadow:0 8px 24px rgba(15,23,42,0.12); aspect-ratio:16/9; background:var(--bg); }
.post-img img { width:100%; height:100%; object-fit:cover; }
.post-wrap .contenido { color:#374151; font-size:1.05rem; white-space:pre-line; line-height:1.85; }

.post-cta { background:var(--bg); border-left:4px solid var(--dorado); border-radius:12px; padding:28px 30px; margin-top:44px; }
.post-cta h3 { color:var(--azul); font-size:1.15rem; margin-bottom:8px; }
.post-cta p { color:var(--gris); margin-bottom:6px; font-size:0.93rem; }

.servicio-beneficios { background:#fff; border:1.5px solid var(--dorado); border-radius:14px; padding:30px 32px; margin-top:36px; text-align:center; }
.servicio-beneficios h3 { color:var(--azul); font-size:1.2rem; margin-bottom:20px; }
.servicio-beneficios ul { list-style:none; text-align:left; max-width:480px; margin:0 auto 24px; }
.servicio-beneficios li { display:flex; align-items:center; gap:12px; padding:9px 0; font-size:0.95rem; color:#374151; }
.chk-circulo { width:24px; height:24px; border-radius:50%; background:#e7f7ec; color:#1d7a45; display:flex; align-items:center; justify-content:center; flex-shrink:0; }
.chk-circulo svg { width:13px; height:13px; }

.servicio-confianza { margin-top:44px; }
.servicio-confianza h3 { color:var(--azul); font-size:1.15rem; margin-bottom:18px; text-align:center; }
.servicio-confianza-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:16px; }
.servicio-confianza-item { background:var(--bg); border-radius:10px; padding:16px 18px; }
.servicio-confianza-item strong { color:var(--azul); font-size:0.9rem; display:block; margin-bottom:4px; }
.servicio-confianza-item p { color:var(--gris); font-size:0.83rem; }
@media (max-width:600px) { .servicio-confianza-grid { grid-template-columns:1fr; } }

@media (max-width:600px) {
  .post-hero h1 { font-size:1.5rem; }
}

/* WHATSAPP FLOTANTE */
.wa-float { position:fixed; bottom:22px; right:22px; background:#25D366; color:#fff; width:56px; height:56px; border-radius:50%; display:flex; align-items:center; justify-content:center; text-decoration:none; box-shadow:0 4px 14px rgba(0,0,0,0.25); z-index:60; }
.wa-float svg { width:26px; height:26px; color:#fff; }

/* BOTON VOLVER ARRIBA */
.back-top { position:fixed; bottom:88px; right:22px; width:44px; height:44px; border-radius:50%; background:var(--azul); color:var(--dorado); border:none; display:none; align-items:center; justify-content:center; cursor:pointer; box-shadow:0 4px 14px rgba(0,0,0,0.25); z-index:60; }
.back-top svg { width:20px; height:20px; }
.back-top.mostrar { display:flex; }

/* COOKIE BANNER */
.cookie-banner { position:fixed; left:0; right:0; bottom:0; background:#081426; color:#dbe7f5; padding:16px 24px; display:none; align-items:center; justify-content:space-between; gap:20px; flex-wrap:wrap; z-index:70; box-shadow:0 -4px 16px rgba(0,0,0,0.2); }
.cookie-banner.mostrar { display:flex; }
.cookie-banner p { margin:0; font-size:0.87rem; max-width:700px; }
.cookie-actions { display:flex; gap:10px; }
.btn-cookie-rechazar { background:transparent; border:1px solid rgba(255,255,255,0.3); color:#dbe7f5; padding:11px 22px; border-radius:24px; cursor:pointer; font-size:0.88rem; }
.btn-cookie-rechazar:hover { border-color:#fff; color:#fff; }

@media (max-width: 900px) {
  .enfoque-grid, .servicios-grid, .metodo-grid, .planes-grid, .testi-grid, .blog-grid { grid-template-columns:repeat(2,1fr); }
  .qs-grid, .contacto-grid { grid-template-columns:1fr; }
  .footer-grid { grid-template-columns:1fr 1fr; }
  .plan-card.destacado { transform:none; }
}
@media (max-width: 600px) {
  .footer-grid { grid-template-columns:1fr; }
  .footer-bottom { flex-direction:column; text-align:center; }
  .cookie-banner { flex-direction:column; align-items:flex-start; }
}
@media (max-width: 600px) {
  .enfoque-grid, .servicios-grid, .metodo-grid, .planes-grid, .testi-grid, .blog-grid { grid-template-columns:1fr; }
  .nav ul { position:absolute; top:64px; left:0; right:0; background:var(--azul); flex-direction:column; padding:16px 20px; display:none; }
  .nav ul.abierto { display:flex; }
  .menu-toggle { display:block; }
  .hero h1 { font-size:1.7rem; }
}
