:root{
  --rojo: #b5121b;
  --rojo-oscuro: #7e0d13;
  --rojo-claro: #f6dcdc;
  --blanco: #ffffff;
  --gris-fondo: #faf9f9;
  --gris-borde: #e6e2e2;
  --texto: #262626;
  --texto-suave: #6b6b6b;
  --radio: 14px;
  --sombra: 0 8px 30px rgba(126,13,19,.08);
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0; font-family:"Ubuntu", "Segoe UI", Roboto, -apple-system, BlinkMacSystemFont, sans-serif;
  color:var(--texto); background:var(--blanco); line-height:1.6;
}
a{color:inherit; text-decoration:none}
img{max-width:100%; display:block}
.envoltura{max-width:1120px; margin:0 auto; padding:0 24px}

/* ---------- Header ---------- */
.pub-header{
  position:sticky; top:0; z-index:80; background:rgba(255,255,255,.96); backdrop-filter:blur(6px);
  border-bottom:1px solid var(--gris-borde);
}
.pub-header .envoltura{display:flex; align-items:center; justify-content:space-between; padding:12px 24px}
.pub-logo{display:flex; align-items:center; gap:10px}
.pub-logo img{height:42px; width:auto}
.pub-nav{display:flex; gap:26px; align-items:center}
.pub-nav a{font-size:14.5px; font-weight:600; color:var(--texto)}
.pub-nav a:hover{color:var(--rojo)}
.btn-cta{
  background:var(--rojo); color:#fff !important; padding:10px 20px; border-radius:30px; font-weight:700 !important;
  font-size:14px !important; box-shadow:0 4px 14px rgba(181,18,27,.3);
}
.btn-cta:hover{background:var(--rojo-oscuro)}
.btn-menu-pub{display:none; background:none; border:none; font-size:26px; color:var(--rojo-oscuro); cursor:pointer}

/* ---------- Hero ---------- */
.hero{
  background:linear-gradient(150deg, var(--rojo) 0%, var(--rojo-oscuro) 65%, #4d0a0e 100%);
  color:#fff; padding:70px 0 90px; position:relative; overflow:hidden;
}
.hero .envoltura{display:grid; grid-template-columns:1.1fr .9fr; gap:40px; align-items:center}
.hero-etiqueta{
  display:inline-block; background:rgba(255,255,255,.15); padding:6px 14px; border-radius:20px;
  font-size:12.5px; font-weight:700; letter-spacing:.04em; text-transform:uppercase; margin-bottom:18px;
}
.hero h1{font-size:40px; line-height:1.15; margin:0 0 14px}
.hero p.lead{font-size:17px; opacity:.92; max-width:520px; margin:0 0 26px}
.hero-botones{display:flex; gap:12px; flex-wrap:wrap}
.btn-hero-primario{
  background:#fff; color:var(--rojo-oscuro); padding:13px 26px; border-radius:30px; font-weight:700; font-size:15px;
}
.btn-hero-primario:hover{background:#f2f2f2}
.btn-hero-secundario{
  background:transparent; color:#fff; padding:13px 26px; border-radius:30px; font-weight:700; font-size:15px;
  border:1.5px solid rgba(255,255,255,.6);
}
.btn-hero-secundario:hover{border-color:#fff}
.hero-figura{
  background:rgba(255,255,255,.08); border:1px solid rgba(255,255,255,.2); border-radius:20px;
  aspect-ratio:4/5; display:flex; align-items:center; justify-content:center; overflow:hidden;
}
.hero-figura img{width:100%; height:100%; object-fit:cover}

/* ---------- Secciones genéricas ---------- */
.seccion{padding:70px 0}
.seccion-gris{background:var(--gris-fondo)}
.seccion-cabecera{text-align:center; max-width:640px; margin:0 auto 44px}
.seccion-etiqueta{color:var(--rojo); font-weight:700; font-size:13px; text-transform:uppercase; letter-spacing:.06em}
.seccion-cabecera h2{font-size:30px; margin:8px 0 10px; color:var(--texto)}
.seccion-cabecera p{color:var(--texto-suave); font-size:15.5px}

/* Quién soy */
.bio-grid{display:grid; grid-template-columns:.85fr 1.15fr; gap:48px; align-items:center}
.bio-foto{
  background:var(--rojo-claro); border-radius:20px; aspect-ratio:1/1; display:flex; align-items:center; justify-content:center; overflow:hidden;
}
.bio-foto img{width:100%; height:100%; object-fit:cover}
.bio-texto p{color:var(--texto-suave); font-size:15.5px; margin-bottom:14px}
.bio-datos{display:grid; grid-template-columns:1fr 1fr; gap:14px; margin-top:22px}
.bio-dato{background:var(--gris-fondo); border-radius:12px; padding:14px 16px; border:1px solid var(--gris-borde)}
.bio-dato strong{display:block; color:var(--rojo-oscuro); font-size:13px; text-transform:uppercase; letter-spacing:.03em; margin-bottom:3px}
.bio-dato span{font-size:14.5px}

/* Ejes de trabajo */
.grid-ejes{display:grid; grid-template-columns:repeat(auto-fit,minmax(240px,1fr)); gap:22px}
.tarjeta-eje{
  background:#fff; border:1px solid var(--gris-borde); border-radius:var(--radio); padding:26px; box-shadow:var(--sombra);
  transition:transform .15s ease;
}
.tarjeta-eje:hover{transform:translateY(-3px)}
.tarjeta-eje .icono-eje{
  width:46px; height:46px; border-radius:12px; background:var(--rojo-claro); color:var(--rojo-oscuro);
  display:flex; align-items:center; justify-content:center; margin-bottom:14px;
}
.tarjeta-eje h3{font-size:17px; margin:0 0 8px}
.tarjeta-eje p{font-size:14px; color:var(--texto-suave); margin:0}

/* Comunas */
.lista-comunas{display:flex; flex-wrap:wrap; gap:10px; justify-content:center}
.chip-comuna{
  background:#fff; border:1.5px solid var(--rojo-claro); color:var(--rojo-oscuro); font-weight:600; font-size:13.5px;
  padding:8px 16px; border-radius:20px;
}

/* Miembros del equipo */
.grid-equipo{display:grid; grid-template-columns:repeat(auto-fit,minmax(230px,1fr)); gap:22px}
.tarjeta-miembro{
  background:#fff; border:1px solid var(--gris-borde); border-radius:var(--radio); padding:26px; box-shadow:var(--sombra);
  text-align:center;
}
.avatar-miembro{
  width:64px; height:64px; border-radius:50%; background:var(--rojo); color:#fff; font-size:24px; font-weight:700;
  display:flex; align-items:center; justify-content:center; margin:0 auto 14px;
}
.tarjeta-miembro h3{margin:0 0 4px; font-size:17px}
.rol-miembro{color:var(--rojo); font-weight:600; font-size:13.5px}
.descripcion-miembro{color:var(--texto-suave); font-size:13.5px; margin:12px 0 0}
.contacto-miembro{margin-top:14px; display:flex; flex-direction:column; gap:4px; font-size:13px}
.contacto-miembro a{color:var(--rojo-oscuro); font-weight:600}
.contacto-miembro a:hover{text-decoration:underline}

/* Franja CTA */
.franja-cta{
  background:linear-gradient(120deg, var(--rojo-oscuro), var(--rojo)); color:#fff; border-radius:24px;
  padding:46px; text-align:center; margin:0 24px;
}
.franja-cta h2{font-size:26px; margin:0 0 10px}
.franja-cta p{opacity:.9; margin:0 0 22px; font-size:15.5px}

/* ---------- Formulario de solicitud ---------- */
.form-shell{max-width:760px; margin:0 auto}
.tarjeta-form{background:#fff; border:1px solid var(--gris-borde); border-radius:var(--radio); box-shadow:var(--sombra); padding:34px}
.tipos-solicitud{display:grid; grid-template-columns:repeat(auto-fit,minmax(150px,1fr)); gap:12px; margin-bottom:28px}
.tipo-opcion{
  border:1.5px solid var(--gris-borde); border-radius:12px; padding:16px 12px; text-align:center; cursor:pointer;
  transition:all .15s ease; background:#fff;
}
.tipo-opcion input{display:none}
.tipo-opcion .icono-tipo{margin:0 auto 8px; color:var(--rojo-oscuro)}
.tipo-opcion span{font-size:13.5px; font-weight:600; display:block}
.tipo-opcion:hover{border-color:var(--rojo)}
.tipo-opcion.marcado{border-color:var(--rojo); background:var(--rojo-claro)}
.pub-form-grid{display:grid; grid-template-columns:repeat(auto-fit,minmax(220px,1fr)); gap:16px}
.pub-form-grid label{display:flex; flex-direction:column; gap:6px; font-size:13.5px; font-weight:600; color:#444}
.pub-form-grid input, .pub-form-grid select, .pub-form-grid textarea{
  padding:11px 13px; border:1.5px solid var(--gris-borde); border-radius:10px; font-size:14.5px; font-family:inherit;
}
.pub-form-grid input:focus, .pub-form-grid select:focus, .pub-form-grid textarea:focus{outline:none; border-color:var(--rojo)}
.pub-ancho-completo{grid-column:1/-1}
.pub-form-grid label.campo-tipo{display:none}
.campo-honeypot{position:absolute; left:-9999px; opacity:0}
.pub-btn-enviar{
  background:var(--rojo); color:#fff; border:none; padding:14px 30px; border-radius:30px; font-weight:700;
  font-size:15px; cursor:pointer; margin-top:24px; width:100%;
}
.pub-btn-enviar:hover{background:var(--rojo-oscuro)}
.nota-privacidad{font-size:12.5px; color:var(--texto-suave); margin-top:14px; text-align:center}
.mensaje-error{background:#fdecea; color:#c62828; padding:12px 16px; border-radius:10px; font-size:13.5px; margin-bottom:20px}

/* Página de gracias */
.pagina-gracias{text-align:center; padding:100px 24px; max-width:560px; margin:0 auto}
.pagina-gracias .marca-check{
  width:74px; height:74px; border-radius:50%; background:var(--rojo-claro); color:var(--rojo);
  display:flex; align-items:center; justify-content:center; margin:0 auto 22px;
}
.pagina-gracias h1{font-size:26px; margin:0 0 12px}
.pagina-gracias p{color:var(--texto-suave); font-size:15.5px}

/* ---------- Footer ---------- */
.pub-footer{background:#1c1112; color:#e9dede; padding:50px 0 26px; margin-top:20px}
.pub-footer .envoltura{display:grid; grid-template-columns:1.3fr 1fr 1fr; gap:36px}
.pub-footer h4{color:#fff; font-size:15px; margin:0 0 14px}
.pub-footer p, .pub-footer a{color:#c9baba; font-size:13.8px}
.pub-footer a:hover{color:#fff}
.pub-footer .redes{display:flex; gap:10px; margin-top:14px}
.pub-footer .redes a{
  width:36px; height:36px; border-radius:50%; background:rgba(255,255,255,.08); display:flex; align-items:center; justify-content:center;
}
.pub-footer .redes a:hover{background:var(--rojo)}
.pub-footer .linea-final{border-top:1px solid rgba(255,255,255,.1); margin-top:36px; padding-top:20px; text-align:center; font-size:12.5px; color:#a99696}

/* ---------- Responsivo ---------- */
@media (max-width:900px){
  .hero .envoltura{grid-template-columns:1fr}
  .hero-figura{max-width:340px; margin:0 auto}
  .bio-grid{grid-template-columns:1fr}
  .bio-foto{max-width:340px; margin:0 auto}
  .pub-footer .envoltura{grid-template-columns:1fr; gap:26px}
}
@media (max-width:760px){
  .pub-nav{
    position:fixed; top:66px; left:0; right:0; background:#fff; flex-direction:column; align-items:flex-start;
    padding:18px 24px; gap:16px; border-bottom:1px solid var(--gris-borde); display:none; box-shadow:0 10px 20px rgba(0,0,0,.06);
  }
  .pub-nav.abierto{display:flex}
  .btn-menu-pub{display:block}
  .hero h1{font-size:30px}
  .hero{padding:46px 0 60px}
  .seccion{padding:50px 0}
  .franja-cta{padding:32px 22px}
}
