
:root{
  /* Paleta oficial 2026 */
  --naranja:        #fe6100;
  --naranja-claro:  #fe9863;
  --rosa:           #ce6795;
  --gris:           #4b4b4f;

  /* Derivados para accesibilidad (contraste AA sobre blanco) */
  --naranja-texto:  #b84600;   /* texto naranja sobre fondo claro */
  --rosa-texto:     #a3446f;   /* texto rosa sobre fondo claro */
  --rosa-hover:     #e08ab0;   /* hover de botones rosas */
  --tinte-rosa:     #fcf0f5;   /* fondo rosado de secciones alternas */
  --tinta:          #232226;   /* texto sobre botones naranja */
  --gris-suave:     #6b6b70;
  --linea:          #efe4dc;
  --tinte:          #fff5ee;   /* fondo de secciones alternas */
  --blanco:         #ffffff;

  --f-display: 'Bitter', Georgia, 'Times New Roman', serif;
  --f-texto:   'Plus Jakarta Sans', system-ui, -apple-system, 'Segoe UI', sans-serif;

  --radio-s: .6rem;
  --radio-m: 1rem;
  --radio-l: 1.5rem;

  --nav-h: 64px;
  --sombra: 0 14px 34px -22px rgba(75,75,79,.35);
}

/* ---------- Base ---------- */
*,*::before,*::after{box-sizing:border-box}
html{
  scroll-behavior:smooth;
  scroll-padding-top:calc(var(--nav-h) + 12px);
  -webkit-text-size-adjust:100%;
}
body{
  margin:0;
  font-family:var(--f-texto);
  font-size:1rem;
  line-height:1.6;
  color:var(--gris);
  background:var(--blanco);
  -webkit-font-smoothing:antialiased;
}
img{max-width:100%; display:block}
a{color:var(--naranja-texto)}
a:hover{color:var(--gris)}
p{margin:0 0 1rem}
h1,h2,h3,h4{margin:0; font-family:var(--f-display); color:var(--gris); line-height:1.15}
button,input,select{font:inherit}

:focus-visible{outline:3px solid var(--naranja); outline-offset:3px; border-radius:4px}

.skip-link{
  position:absolute; left:1rem; top:-100px; z-index:100;
  background:var(--gris); color:#fff; padding:.6rem 1rem; border-radius:var(--radio-s);
}
.skip-link:focus{top:1rem; color:#fff}

.wrap{width:100%; max-width:1200px; margin:0 auto; padding:0 1.25rem}
.wrap--angosto{max-width:820px}

/* ---------- Tipografía de secciones ---------- */
.seccion{padding:4rem 0}
.seccion--tinte{background:var(--tinte)}
.seccion--rosa{background:var(--tinte-rosa)}

.eyebrow{
  display:flex; align-items:center; gap:.6rem;
  margin:0 0 .75rem;
  font-size:.9rem; font-weight:700; color:var(--rosa-texto);
}
.eyebrow::before{
  content:""; width:28px; height:3px; border-radius:3px;
  background:linear-gradient(90deg, var(--rosa), var(--naranja-claro));
}
.h2{font-size:clamp(1.75rem, 6vw, 2.6rem); font-weight:800; letter-spacing:-.01em; max-width:22ch}
.h2--sm{font-size:clamp(1.5rem, 5vw, 2rem)}
.h3{font-size:1.15rem; font-weight:700; margin:1.5rem 0 .4rem}
.lead{margin-top:1rem; font-size:1.05rem; color:var(--gris-suave); max-width:62ch}

/* ---------- Botones ---------- */
.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:.5rem;
  min-height:48px; padding:.75rem 1.4rem;
  border-radius:var(--radio-s); border:2px solid transparent;
  font-weight:700; font-size:1rem; line-height:1.2; text-align:center;
  text-decoration:none; cursor:pointer;
  transition:background-color .18s ease, color .18s ease, border-color .18s ease;
}
.btn--sm{min-height:40px; padding:.5rem 1rem; font-size:.9rem}
.btn--primary{background:var(--rosa); color:var(--tinta)}
.btn--primary:hover{background:var(--rosa-hover); color:var(--tinta)}
.btn--ghost{background:var(--blanco); color:var(--gris); border-color:var(--linea)}
.btn--ghost:hover{border-color:var(--rosa); color:var(--rosa-texto)}
.btn--outline{background:transparent; color:var(--rosa-texto); border-color:var(--rosa)}
.btn--outline:hover{background:var(--rosa); color:var(--tinta)}
.btn--rosa{background:var(--rosa); color:var(--tinta)}
.btn--rosa:hover{background:#e28ab2; color:var(--tinta)}
.btn--blanco{background:var(--blanco); color:var(--gris)}
.btn--blanco:hover{background:var(--tinte-rosa); color:var(--rosa-texto)}

/* ---------- Navegación ---------- */
.nav{
  position:sticky; top:0; z-index:50;
  background:rgba(255,255,255,.9);
  backdrop-filter:saturate(160%) blur(12px);
  -webkit-backdrop-filter:saturate(160%) blur(12px);
  border-bottom:1px solid var(--linea);
  padding-top:env(safe-area-inset-top, 0px);
}
.nav__inner{display:flex; align-items:center; justify-content:space-between; gap:1rem; height:var(--nav-h)}
.nav__marcas{display:flex; align-items:center; gap:.7rem; min-width:0}
.nav__brand img{height:40px; width:auto}
.nav__cemefi{display:flex; align-items:center; padding-left:.7rem; border-left:1px solid var(--linea)}
.nav__cemefi img{height:22px; width:auto}
.nav__links{display:none}
.nav__actions{display:flex; align-items:center; gap:.5rem}
.nav__toggle{
  display:inline-grid; place-items:center; width:44px; height:44px;
  border:0; border-radius:var(--radio-s); background:transparent; color:var(--gris); cursor:pointer;
}
.nav__toggle:hover{background:var(--tinte)}
.nav__mobile{
  display:flex; flex-direction:column;
  padding:.5rem 1.25rem 1rem; background:var(--blanco); border-top:1px solid var(--linea);
}
.nav__mobile[hidden]{display:none}
.nav__mobile a{
  padding:.85rem 0; border-bottom:1px solid var(--linea);
  color:var(--gris); font-weight:600; text-decoration:none;
}
.nav__mobile a:last-child{border-bottom:0}

/* ---------- Hero ---------- */
.hero{
  position:relative; overflow:hidden;
  padding:2.5rem 0 3.5rem;
  background:
    radial-gradient(520px 320px at 100% 0%, rgba(254,152,99,.22), transparent 70%),
    radial-gradient(560px 360px at 0% 100%, rgba(206,103,149,.22), transparent 70%),
    var(--blanco);
}
.hero__simbolo{
  position:absolute; z-index:0; pointer-events:none;
  width:min(115vw, 560px); right:-45%; top:-6%;
  opacity:.14;
  animation:girar 90s linear infinite;
}
@keyframes girar{to{transform:rotate(360deg)}}

.hero__grid{position:relative; z-index:1; display:grid; gap:2.5rem}
.hero__kicker{font-weight:600; color:var(--rosa-texto); margin-bottom:.75rem}
.hero__titulo{
  font-weight:700; font-size:clamp(1.6rem, 6.5vw, 2.4rem);
  letter-spacing:-.01em; line-height:1.1;
}
.hero__anio{
  display:block; margin-top:.2rem;
  font-weight:800; font-size:clamp(3.4rem, 17vw, 6.5rem);
  letter-spacing:-.035em; line-height:.95;
}

.hero__datos{list-style:none; margin:1.75rem 0 0; padding:0; display:grid; gap:.7rem}
.hero__datos li{display:flex; align-items:center; gap:.7rem; font-size:1.05rem}
.hero__datos svg{flex:none; color:var(--naranja)}
.hero__datos strong{color:var(--gris)}
.hero__datos a{color:var(--gris); text-decoration-color:var(--rosa); text-underline-offset:3px}
.hero__datos a:hover{color:var(--naranja-texto)}

.hero__ctas{display:flex; flex-direction:column; gap:.75rem; margin-top:2rem}

/* Cuenta regresiva */
.cuenta{margin-top:2.25rem}
.cuenta__label{font-weight:600; margin-bottom:.6rem}
.cuenta__cajas{display:grid; grid-template-columns:repeat(4, 1fr); gap:.5rem; max-width:460px}
.cuenta__caja{
  display:flex; flex-direction:column; align-items:center;
  padding:.75rem .25rem .6rem;
  background:var(--blanco);
  border:1.5px solid var(--rosa);
  border-radius:var(--radio-m);
}
.cuenta__caja span{
  font-family:var(--f-display); font-weight:800;
  font-size:clamp(1.6rem, 7vw, 2.3rem); line-height:1;
  color:var(--naranja-texto); font-variant-numeric:tabular-nums;
}
.cuenta__caja small{font-size:.78rem; margin-top:.35rem}
.cuenta--fin .cuenta__cajas{display:none}

/* Carrusel (hero y fondo) */
.hero__media{position:relative; border-radius:var(--radio-l); overflow:hidden; box-shadow:var(--sombra)}
.carrusel{
  position:relative; width:100%; aspect-ratio:4/3;
  background:linear-gradient(135deg, var(--naranja-claro), var(--rosa));
  overflow:hidden;
}
.carrusel .slide{
  position:absolute; inset:0;
  background-size:cover; background-position:center;
  opacity:0; transform:scale(1.04);
  transition:opacity 1.1s ease, transform 6s ease;
}
.carrusel .slide.is-active{opacity:1; transform:scale(1)}
.carrusel__velo{
  position:absolute; inset:0; pointer-events:none;
  background:linear-gradient(to top, rgba(35,34,38,.55), transparent 45%);
}
.carrusel__pie{
  position:absolute; left:1rem; bottom:.85rem; margin:0;
  color:#fff; font-size:.85rem; font-weight:600;
}
.carrusel__dots{
  position:absolute; right:1rem; bottom:1.1rem; display:flex; gap:.35rem;
}
.carrusel__dots button{
  width:22px; height:5px; padding:0; border:0; border-radius:4px; cursor:pointer;
  background:rgba(255,255,255,.5); transition:width .2s ease, background .2s ease;
}
.carrusel__dots button[aria-current="true"]{width:34px; background:#fff}
/* área táctil más amplia sin alterar el trazo */
.carrusel__dots button{position:relative}
.carrusel__dots button::after{content:""; position:absolute; inset:-12px -3px}

/* ---------- Acerca ---------- */
.acerca{display:grid; gap:2.5rem}
.acerca__texto p{max-width:62ch}
.acerca__texto .h2{margin-bottom:1.25rem}

.mosaico{
  display:grid; gap:.6rem;
  grid-template-columns:1.25fr 1fr;
  grid-template-rows:repeat(2, 140px);
}
.mosaico img{
  width:100%; height:100%; object-fit:cover; border-radius:var(--radio-m);
  background:linear-gradient(135deg, var(--naranja-claro), var(--rosa));
}
.mosaico__a{grid-row:1 / 3}

/* ---------- Revive el evento 2025 ---------- */
.revive{display:grid; gap:1.75rem; margin-top:4rem; align-items:center}
.revive__texto p{max-width:52ch}
.revive__texto .h2{margin-bottom:.9rem}
.revive__link{font-weight:700; color:var(--rosa-texto); text-underline-offset:3px}
.revive__link::after{content:" ↗"}
.revive__link:hover{color:var(--gris)}
.video{
  position:relative; aspect-ratio:16/9; border-radius:var(--radio-l); overflow:hidden;
  background:linear-gradient(135deg, var(--naranja-claro), var(--rosa));
  box-shadow:0 18px 40px -24px rgba(206,103,149,.6);
}
.video iframe{position:absolute; inset:0; width:100%; height:100%; border:0}
.video__play{position:absolute; inset:0; width:100%; padding:0; border:0; cursor:pointer; background:none}
.video__poster{width:100%; height:100%; object-fit:cover; transition:transform .5s ease}
.video__play::before{
  content:""; position:absolute; inset:0; z-index:1;
  background:linear-gradient(to top, rgba(35,34,38,.6), rgba(35,34,38,.05) 55%);
}
.video__icono{
  position:absolute; z-index:2; left:50%; top:50%; transform:translate(-50%,-50%);
  width:72px; height:72px; border-radius:50%; display:grid; place-items:center;
  background:var(--rosa); color:var(--tinta); padding-left:4px;
  box-shadow:0 0 0 10px rgba(206,103,149,.28);
  transition:transform .2s ease, background-color .2s ease;
}
.video__etiqueta{position:absolute; z-index:2; left:1.1rem; bottom:.9rem; color:#fff; font-weight:700; font-size:.92rem}
.video__play:hover .video__poster{transform:scale(1.04)}
.video__play:hover .video__icono,
.video__play:focus-visible .video__icono{transform:translate(-50%,-50%) scale(1.08); background:var(--rosa-hover)}
@media (min-width:960px){
  .revive{grid-template-columns:5fr 7fr; gap:4rem; margin-top:5rem}
}

/* ---------- OSC ---------- */
.osc__head{display:grid; gap:1.5rem}
.osc__cifras{display:flex; gap:1rem; margin:0}
.osc__cifras div{
  flex:1; padding:1rem 1.1rem; background:var(--blanco);
  border-radius:var(--radio-m); border:1px solid var(--linea);
}
.osc__cifras dt{font-size:.85rem}
.osc__cifras dd{
  margin:0; font-family:var(--f-display); font-weight:800;
  font-size:2.4rem; line-height:1.05; color:var(--naranja-texto);
}

/* Filtros: fila 1 buscador, fila 2 temática + estado (móvil: 3 filas) */
.osc__filtros{display:grid; gap:.9rem; width:100%; margin:2rem auto 0}
.osc__selects{display:grid; gap:.9rem}
.campo{display:flex; flex-direction:column; gap:.35rem}
.campo__label{font-size:.9rem; font-weight:600}
.campo__input{position:relative; display:block}
.campo__input svg{position:absolute; left:.85rem; top:50%; transform:translateY(-50%); color:var(--gris-suave)}
.campo__input input,
.campo__input select{
  width:100%; min-height:48px; padding:.7rem .9rem;
  border:1.5px solid #ddd2ca; border-radius:var(--radio-s);
  background:var(--blanco); color:var(--gris); font-size:1rem;
}
.campo__input--icono input{padding-left:2.6rem}
.campo__input select{
  appearance:none; -webkit-appearance:none; padding-right:2.5rem;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%234b4b4f' stroke-width='2.4'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");
  background-repeat:no-repeat; background-position:right .9rem center;
}
.campo__input input:focus,
.campo__input select:focus{outline:none; border-color:var(--rosa); box-shadow:0 0 0 3px rgba(206,103,149,.25)}

.osc__barra{display:flex; flex-wrap:wrap; align-items:center; justify-content:center; gap:.25rem 1.25rem; margin:1.5rem 0 .75rem; text-align:center}
.osc__conteo{margin:0; font-size:.95rem}
.osc__limpiar{
  min-height:44px; padding:.4rem 0; border:0; background:none; cursor:pointer;
  font-weight:700; font-size:.92rem; color:var(--rosa-texto);
  text-decoration:underline; text-underline-offset:3px;
}
.osc__limpiar:hover{color:var(--gris)}
.osc__limpiar[hidden]{display:none}
.osc__lista{
  list-style:none; margin:0; padding:0;
  background:var(--blanco); border:1px solid var(--linea); border-radius:var(--radio-m);
  overflow:hidden;
}
.osc__lista li{
  display:flex; flex-direction:column; align-items:flex-start; gap:.2rem;
  padding:1rem 1.15rem; border-bottom:1px solid var(--linea);
}
.osc__lista li:last-child{border-bottom:0}
.osc__nombre{font-weight:700; color:var(--gris); line-height:1.4}
.osc__estado{font-size:.85rem; color:var(--gris-suave); margin-bottom:.5rem}
.osc__tema{
  --tema-bg:#eeeef0; --tema-txt:#4b4b4f; --tema-punto:#a9a9b0;
  display:inline-flex; align-items:center; gap:.4rem;
  margin-top:auto;                 /* se pega al final de la tarjeta */
  padding:.18rem .65rem .18rem .55rem; border-radius:999px;
  background:var(--tema-bg); color:var(--tema-txt);
  font-size:.76rem; font-weight:600; line-height:1.35;
}
.osc__tema::before{content:""; flex:none; width:7px; height:7px; border-radius:50%; background:var(--tema-punto)}

/* Paleta pastel por temática (fondo suave, texto oscuro del mismo tono) */
.osc__tema[data-tema="arte-y-cultura"]                          {--tema-bg:#f1eafb; --tema-txt:#58407f; --tema-punto:#b49ae0}
.osc__tema[data-tema="asistencia-social-y-atencion-a-desastres"]{--tema-bg:#ffede2; --tema-txt:#86411a; --tema-punto:#f5ac7f}
.osc__tema[data-tema="derechos-humanos-y-civiles"]              {--tema-bg:#fbe8f0; --tema-txt:#86345a; --tema-punto:#e49bbd}
.osc__tema[data-tema="desarrollo-social-y-economico"]           {--tema-bg:#fbf4da; --tema-txt:#6b5414; --tema-punto:#e2c66a}
.osc__tema[data-tema="educacion"]                               {--tema-bg:#e5f0fb; --tema-txt:#285580; --tema-punto:#8fb9e3}
.osc__tema[data-tema="filantropia-y-voluntariado"]              {--tema-bg:#fde7e3; --tema-txt:#8a3b2e; --tema-punto:#f0a395}
.osc__tema[data-tema="investigacion"]                           {--tema-bg:#e9ebfb; --tema-txt:#3f4785; --tema-punto:#a3abe6}
.osc__tema[data-tema="medio-ambiente-y-proteccion-animal"]      {--tema-bg:#e4f4ea; --tema-txt:#2a6143; --tema-punto:#8fcca6}
.osc__tema[data-tema="salud"]                                   {--tema-bg:#e0f3f2; --tema-txt:#22605c; --tema-punto:#84cbc6}
.osc__tema[data-tema="otra"]                                    {--tema-bg:#efeff1; --tema-txt:#4b4b4f; --tema-punto:#b4b4ba}
.osc__vacio{padding:2rem 1.1rem !important; text-align:center; color:var(--gris-suave)}
.osc__mas{display:flex; justify-content:center; margin-top:1.25rem}
.osc__mas[hidden]{display:none}

/* ---------- Agenda (un solo salón, estilo ESR) ---------- */
.agenda__head{display:flex; flex-wrap:wrap; align-items:flex-end; justify-content:space-between; gap:1.5rem}
.agenda__fecha{
  display:flex; flex-direction:column; align-items:center; justify-content:center;
  min-width:96px; padding:.7rem 1.25rem; border-radius:var(--radio-m);
  background:var(--rosa); color:var(--tinta);
}
.agenda__dia{font-family:var(--f-display); font-weight:800; font-size:2.2rem; line-height:1}
.agenda__mes{font-size:.85rem; font-weight:700}

.agenda{display:grid; gap:.9rem; margin-top:2rem}
.sesion{
  position:relative; display:grid; grid-template-columns:1fr; gap:.6rem;
  padding:1.25rem 1.25rem 1.25rem 1.4rem;
  background:var(--blanco); border:1px solid var(--linea); border-radius:var(--radio-m);
  box-shadow:0 2px 10px -4px rgba(75,75,79,.08);
}
.sesion::before{
  content:""; position:absolute; left:0; top:14px; bottom:14px; width:4px;
  background:var(--acento, var(--rosa)); border-radius:0 4px 4px 0;
}
.sesion__hora{display:flex; align-items:baseline; gap:.6rem}
.sesion__time{font-family:var(--f-display); font-weight:700; font-size:1.1rem; color:var(--gris)}
.sesion__dur{font-size:.82rem; color:var(--gris-suave)}
.sesion__titulo{font-size:1.15rem; font-weight:700; line-height:1.3}
.sesion__desc{margin:.35rem 0 0; color:var(--gris-suave); font-size:.95rem; max-width:64ch}
.sesion__bloques{margin:.6rem 0 0; padding-left:1.1rem; font-size:.9rem; color:var(--gris-suave); display:grid; gap:.2rem}
.sesion__tag{
  display:inline-flex; align-items:center; gap:.4rem; margin-top:.75rem;
  padding:.2rem .7rem .2rem .55rem; border-radius:999px;
  background:var(--tinte-rosa); font-size:.78rem; font-weight:700; color:var(--gris);
}
.sesion__tag::before{content:""; width:8px; height:8px; border-radius:50%; background:var(--acento, var(--rosa))}

/* ---------- Registro ---------- */
.registro{display:grid; gap:1rem; margin-top:2rem}
.registro__tarjeta{
  position:relative; overflow:hidden;
  display:flex; flex-direction:column;
  padding:1.75rem 1.5rem 1.5rem;
  background:var(--blanco);
  border:1px solid var(--linea); border-radius:var(--radio-l);
  box-shadow:0 14px 34px -24px rgba(206,103,149,.45);
}
.registro__tarjeta::before{          /* franja superior de color */
  content:""; position:absolute; left:0; right:0; top:0; height:5px;
  background:var(--acento-reg, var(--rosa));
}
.registro__tarjeta--presencial{--acento-reg:var(--rosa); --icono-bg:var(--tinte-rosa); --icono-txt:var(--rosa-texto)}
.registro__tarjeta--virtual{--acento-reg:var(--naranja-claro); --icono-bg:var(--tinte); --icono-txt:var(--naranja-texto)}
.registro__tarjeta--invitados{--acento-reg:var(--gris); --icono-bg:#f0f0f2; --icono-txt:var(--gris)}
.registro__top{display:flex; align-items:center; justify-content:space-between; gap:.75rem; flex-wrap:wrap}
.registro__para{
  padding:.25rem .75rem; border-radius:999px;
  background:var(--icono-bg); color:var(--icono-txt);
  font-size:.8rem; font-weight:700; line-height:1.3;
}
.registro__icono{
  width:52px; height:52px; border-radius:50%;
  display:grid; place-items:center;
  background:var(--icono-bg); color:var(--icono-txt);
}
.registro__tipo{margin:1rem 0 0; font-size:.85rem; font-weight:600; color:var(--gris-suave)}
.registro__titulo{font-size:1.75rem; font-weight:800; margin:.1rem 0 0}
.registro__lista{list-style:none; margin:1.1rem 0 1.5rem; padding:0; display:grid; align-content:start; gap:.65rem; flex:1}
.registro__lista li{display:grid; grid-template-columns:20px 1fr; gap:.6rem; align-items:start; line-height:1.45}
.registro__lista svg{margin-top:.15rem; color:var(--icono-txt)}
.registro__lista a{color:var(--rosa-texto); font-weight:600; text-underline-offset:3px}
.registro__lista a:hover{color:var(--gris)}
.registro__tarjeta .btn{align-self:stretch}

/* ---------- Sede ---------- */
.sede{display:grid; gap:2rem}
.sede__dir{font-size:1.05rem; margin-top:1rem}
.sede__lista{list-style:none; margin:1.5rem 0; padding:0; display:grid; gap:1.1rem}
.sede__lista li{display:grid; grid-template-columns:40px 1fr; gap:.9rem; align-items:start}
.sede__lista strong{color:var(--gris)}
.sede__lista p{margin:.15rem 0 0; font-size:.95rem}
.sede__lista a{white-space:nowrap}
.sede__icono{
  width:40px; height:40px; border-radius:50%;
  display:grid; place-items:center;
  background:var(--naranja); color:var(--tinta);
}
.sede__mapa{
  border-radius:var(--radio-l); overflow:hidden; border:1px solid var(--linea);
  height:340px; background:var(--tinte);
}
.sede__mapa iframe{width:100%; height:100%; border:0; display:block}

.hospedaje{margin-top:4rem}
.hospedaje__grid{display:grid; gap:.9rem; margin-top:1.5rem}
.hotel{
  display:flex; flex-direction:column; gap:.3rem;
  padding:1.2rem 1.25rem; border:1px solid var(--linea); border-radius:var(--radio-m);
  background:var(--blanco);
}
.hotel__nombre{font-size:1.05rem; font-weight:700; line-height:1.3}
.hotel__dir, .hotel__tel{margin:0; font-size:.9rem; color:var(--gris-suave)}
.hotel__dir a{color:var(--gris-suave); text-decoration-color:var(--linea); text-underline-offset:3px}
.hotel__dir a:hover, .hotel__tel a:hover{color:var(--rosa-texto)}
.hotel__tel a{color:var(--gris)}
.hotel__precio{
  margin:auto 0 0; padding-top:.75rem;
  font-family:var(--f-display); font-weight:800; font-size:1.3rem; line-height:1.15; color:var(--naranja-texto);
}
.hotel__precio small{font-family:var(--f-texto); font-weight:500; font-size:.78rem; color:var(--gris-suave)}
.hotel__web{
  align-self:flex-start; margin-top:.35rem;
  font-size:.9rem; font-weight:700; color:var(--rosa-texto); text-underline-offset:3px;
}
.hotel__web::after{content:" ↗"}

/* ---------- ¿Qué es la AIT? ---------- */
.ait{display:grid; gap:2.5rem}
.ait__texto .h2{margin-bottom:1.25rem}
.ait__texto p{max-width:62ch}
.ait__estructura{display:grid; grid-template-columns:repeat(3, 1fr); gap:.6rem; margin:1.75rem 0 0}
.ait__estructura div{
  padding:1rem .75rem; text-align:center; background:var(--blanco);
  border-radius:var(--radio-m); border-top:4px solid var(--naranja);
}
.ait__estructura div:nth-child(2){border-top-color:var(--naranja-claro)}
.ait__estructura div:nth-child(3){border-top-color:var(--rosa)}
.ait__estructura dt{font-family:var(--f-display); font-weight:800; font-size:2.2rem; line-height:1; color:var(--gris)}
.ait__estructura dd{margin:.3rem 0 0; font-size:.9rem}

/* ¿Qué evalúa la AIT? */
.evalua{margin-top:3.5rem}
.evalua .h2{max-width:none}
.evalua__grid{display:grid; gap:1rem; margin-top:1.75rem}
.criterio{
  background:var(--blanco); border:1px solid var(--linea); border-radius:var(--radio-l);
  overflow:hidden;
}
.criterio__head{padding:1.4rem 1.5rem 1.1rem; background:var(--criterio-bg); border-bottom:1px solid var(--linea)}
.criterio--institucionalidad{--criterio-bg:#ffefe5; --criterio-acento:var(--naranja); --criterio-txt:var(--naranja-texto)}
.criterio--transparencia{--criterio-bg:var(--tinte-rosa); --criterio-acento:var(--rosa); --criterio-txt:var(--rosa-texto)}
.criterio__tipo{margin:0; font-size:.82rem; font-weight:600; color:var(--criterio-txt)}
.criterio__titulo{font-size:1.6rem; font-weight:800; margin:.1rem 0 .25rem}
.criterio__conteo{margin:0; font-size:.88rem; color:var(--gris-suave)}
.criterio__ambitos{padding:.5rem 1.5rem 1.25rem}
.criterio__ambito{padding:.9rem 0; border-bottom:1px dashed var(--linea)}
.criterio__ambito:last-child{border-bottom:0; padding-bottom:0}
.criterio__ambito h4{
  font-family:var(--f-texto); font-size:.98rem; font-weight:700; color:var(--gris);
  display:flex; align-items:center; gap:.5rem;
}
.criterio__ambito h4::before{content:""; flex:none; width:8px; height:8px; border-radius:2px; background:var(--criterio-acento)}
.criterio__ambito ul{list-style:none; margin:.45rem 0 0; padding:0 0 0 1rem; display:flex; flex-wrap:wrap; gap:.4rem}
.criterio__ambito li{font-size:.84rem}
.criterio__ambito li a{
  display:inline-flex; align-items:center; gap:.35rem;
  padding:.25rem .7rem; border-radius:999px;
  background:var(--criterio-bg); color:var(--gris);
  border:1px solid transparent; text-decoration:none;
  transition:border-color .15s ease, color .15s ease, background-color .15s ease;
}
.criterio__ambito li a::after{                 /* ícono de documento */
  content:""; flex:none; width:12px; height:12px; opacity:.7;
  background:currentColor;
  -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M7 17 17 7M8 7h9v9'/%3E%3C/svg%3E") center / contain no-repeat;
          mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M7 17 17 7M8 7h9v9'/%3E%3C/svg%3E") center / contain no-repeat;
}
.criterio__ambito li a:hover,
.criterio__ambito li a:focus-visible{border-color:var(--criterio-acento); color:var(--criterio-txt); background:var(--blanco)}
.evalua__nota{
  display:flex; align-items:center; gap:.5rem; margin:1rem 0 0;
  font-size:.92rem; font-weight:600; color:var(--rosa-texto);
}
.evalua__nota svg{flex:none}
.sr-only{position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0}

.niveles{
  margin-top:1.5rem; padding:1.4rem 1.5rem;
  background:var(--blanco); border-radius:var(--radio-l);
  border-left:5px solid var(--rosa);
}
.niveles__titulo{font-size:1.2rem; font-weight:800; margin-bottom:.5rem}
.niveles p{max-width:80ch}
.niveles p:last-child{margin-bottom:0}

/* Acerca: datos de fecha, hora y lugar */
.acerca__datos{list-style:none; margin:0 0 1rem; padding:0; display:grid; gap:.4rem}
.acerca__datos li{padding-left:1rem; border-left:3px solid var(--naranja-claro)}
.acerca__datos strong{color:var(--gris)}
.hero__nota{font-size:.85em; color:var(--gris-suave)}

/* ---------- FAQ ---------- */
.faq{margin-top:2rem; border-top:1px solid var(--linea)}
.faq__item{border-bottom:1px solid var(--linea)}
.faq__item summary{
  list-style:none; cursor:pointer;
  display:flex; justify-content:space-between; align-items:center; gap:1rem;
  padding:1.15rem 0; min-height:48px;
  font-weight:700; font-size:1.05rem; color:var(--gris);
}
.faq__item summary::-webkit-details-marker{display:none}
.faq__item summary::after{
  content:""; flex:none; width:28px; height:28px; border-radius:50%;
  background:var(--tinte-rosa) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%23a3446f' stroke-width='2.6' stroke-linecap='round'%3E%3Cpath d='M12 5v14M5 12h14'/%3E%3C/svg%3E") center no-repeat;
  transition:transform .2s ease;
}
.faq__item[open] summary::after{transform:rotate(45deg)}
.faq__item summary:hover{color:var(--rosa-texto)}
.faq__cuerpo{padding:0 0 1.25rem}
.faq__cuerpo p{max-width:64ch}
.faq__bloques{margin:0; padding-left:1.25rem; display:grid; gap:.5rem}

/* ---------- CTA final ---------- */
.cta{position:relative; overflow:hidden; padding:5rem 0; text-align:center; color:#fff}
.carrusel--fondo{position:absolute; inset:0; aspect-ratio:auto; height:100%}
.cta__velo{
  position:absolute; inset:0;
  background:linear-gradient(120deg, rgba(35,34,38,.82), rgba(75,75,79,.7) 55%, rgba(206,103,149,.65));
}
.cta__contenido{position:relative}
.cta__titulo{color:#fff; font-size:clamp(1.9rem, 7vw, 3.2rem); font-weight:800; max-width:18ch; margin:0 auto}
.cta p{margin:1rem auto 2rem; max-width:48ch; color:rgba(255,255,255,.9)}

/* ---------- Footer ---------- */
.pie{
  background:var(--gris); color:#fff;
  border-top:6px solid var(--rosa);
  padding:3.5rem 0 calc(1.5rem + env(safe-area-inset-bottom, 0px));
}
.pie__grid{display:grid; gap:2rem}
.pie__marcas{display:flex; align-items:center; flex-wrap:wrap; gap:1.25rem}
.pie__logo{height:52px; width:auto}
.pie__logo--cemefi{height:32px; padding-left:1.25rem; border-left:1px solid rgba(255,255,255,.25); box-sizing:content-box}
.pie__txt{margin-top:1rem; font-size:.92rem; color:rgba(255,255,255,.82); max-width:36ch}
.pie__titulo{font-family:var(--f-texto); font-size:.95rem; font-weight:700; color:#f0a9c8}
.pie__lista{list-style:none; margin:.75rem 0 0; padding:0; display:grid; gap:.45rem; font-size:.92rem}
.pie a{color:#fff; text-decoration-color:rgba(255,255,255,.4); text-underline-offset:3px}
.pie a:hover{color:#f0a9c8}
.pie__legal{
  margin:2.5rem 0 0; padding:1.25rem 1.25rem 0;
  border-top:1px solid rgba(255,255,255,.15);
  text-align:center; font-size:.8rem; color:rgba(255,255,255,.7);
}

/* Imagen faltante: se deja ver el degradado de marca */
img.img-vacia{object-fit:cover}

@media (max-width:374px){
  .nav__brand img{height:34px}
  .nav__cemefi img{height:18px}
  .nav__actions .btn--sm{padding:.5rem .75rem}
}

/* ============================================================
   ≥ 600px · tablet vertical
   ============================================================ */
@media (min-width:600px){
  .wrap{padding:0 2rem}
  .hero__ctas{flex-direction:row; flex-wrap:wrap}
  .mosaico{grid-template-rows:repeat(2, 200px)}
  .osc__selects{grid-template-columns:1fr 1fr}
  .registro{grid-template-columns:repeat(2, 1fr)}
  .registro__tarjeta--invitados{grid-column:1 / -1}
  .hospedaje__grid{grid-template-columns:repeat(2, 1fr)}
  .pie__grid{grid-template-columns:1.4fr 1fr 1fr}
}

/* ============================================================
   ≥ 960px · desktop
   ============================================================ */
@media (min-width:960px){
  :root{--nav-h:76px}
  .seccion{padding:6rem 0}

  .nav__brand img{height:48px}
  .nav__marcas{gap:1rem}
  .nav__cemefi{padding-left:1rem}
  .nav__cemefi img{height:28px}
  .nav__links{display:flex; gap:1.75rem}
  .nav__links a{
    color:var(--gris); font-weight:600; font-size:.95rem; text-decoration:none;
    padding:.35rem 0; border-bottom:2px solid transparent;
  }
  .nav__links a:hover{color:var(--rosa-texto); border-bottom-color:var(--rosa)}
  .nav__toggle{display:none}
  .nav__mobile{display:none !important}

  .hero{padding:4.5rem 0 5.5rem}
  .hero__grid{grid-template-columns:7fr 5fr; align-items:center; gap:4rem}
  .hero__simbolo{width:760px; right:-14%; top:-22%}
  .carrusel{aspect-ratio:4/5}

  .acerca{grid-template-columns:7fr 5fr; align-items:center; gap:4rem}
  .mosaico{grid-template-rows:repeat(2, 240px)}

  .osc__head{grid-template-columns:1fr auto; align-items:end; gap:3rem}
  .osc__cifras div{min-width:170px}
  .osc__lista{display:grid; grid-template-columns:repeat(2, 1fr); gap:0; background:var(--blanco)}
  .osc__lista li{background:var(--blanco); border-bottom:0; box-shadow:inset -1px -1px 0 var(--linea); padding:1.1rem 1.25rem}
  .osc__filtros{width:60vw; max-width:100%}
  .osc__lista .osc__vacio{grid-column:1 / -1}

  .sesion{grid-template-columns:150px 1fr; gap:1.5rem; padding:1.4rem 1.6rem}
  .sesion__hora{flex-direction:column; gap:.2rem}
  .sesion__time{font-size:1.2rem}

  .registro{grid-template-columns:repeat(3, 1fr); gap:1.25rem}
  .registro__tarjeta--invitados{grid-column:auto}
  .registro__tarjeta{padding:2rem 1.75rem 1.75rem}
  .registro__titulo{font-size:2rem}
  .registro__tarjeta .btn{align-self:stretch}

  .sede{grid-template-columns:5fr 7fr; gap:3.5rem; align-items:stretch}
  .sede__mapa{height:auto; min-height:520px}
  .hospedaje__grid{grid-template-columns:repeat(3, 1fr)}

  .ait{grid-template-columns:1.7fr 1fr; align-items:center; gap:4rem}
  .ait .ait__estructura{grid-template-columns:1fr; gap:.8rem; margin:0}
  .ait .ait__estructura div{display:flex; align-items:baseline; gap:1rem; padding:1.1rem 1.5rem; text-align:left}
  .ait .ait__estructura dt{font-size:2.8rem; min-width:3.2rem}
  .ait .ait__estructura dd{font-size:1.05rem; margin:0}
  .evalua__grid{grid-template-columns:1fr 1fr; gap:1.5rem; align-items:start}

  .cta{padding:7rem 0}
}

@media (min-width:1280px){
  .osc__lista{grid-template-columns:repeat(3, 1fr)}
}

/* ---------- Movimiento reducido ---------- */
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .hero__simbolo{animation:none}
  .carrusel .slide{transition:none}
  *{transition-duration:.01ms !important}
}
