/* ========== Base utilitaria ========== */
.feature-icon{ width:4rem; height:4rem; border-radius:.75rem; }
.icon-link>.bi{ margin-top:.125rem; margin-left:.125rem; fill:currentcolor; transition:transform .25s ease-in-out; }
.icon-link:hover>.bi{ transform:translate(.25rem); }
.icon-square{ width:3rem; height:3rem; border-radius:.75rem; }

.text-shadow-1{ text-shadow:0 .125rem .25rem rgba(0,0,0,.25); }
.text-shadow-2{ text-shadow:0 .25rem .5rem rgba(0,0,0,.25); }
.text-shadow-3{ text-shadow:0 .5rem 1.5rem rgba(0,0,0,.25); }

.card-cover{ background-repeat:no-repeat; background-position:center; background-size:cover; }

/* Enlaces legacy */
.link-ico{ text-decoration:none; color:var(--primary-color); }
.link-ico:hover{ color:var(--primary-color); text-decoration:underline; }
.link-ico .txt{ padding:5px 0; }
.link-ico .ico-p{ font-size:13.2px; font-weight:500; }

.tramite-mpt{ border:0; padding:15px 5px; }
.tramite-mpt:hover{ border:2px solid; }

#noticias,.Ingresar{ font-weight:700; color:var(--bs-cc-primary); }

/* =========================================================
   Flip tiles (enlaces rápidos) — accesible y responsivo
   ========================================================= */
:root{
  --tile-primary:#ffffff;      /* frente (blanco) */
  --tile-primary-dark:#06478f; /* dorso */
  --tile-accent:#ffffff;       /* fondo del botón del dorso */
  --tile-btn-text:#06478f;     /* color del texto del botón */
  --tile-blue:#0f427f;         /* azul de íconos y textos del frente */
  --tile-radius:18px;
  --tile-shadow:0 10px 26px rgba(2,6,23,.12);
  --tile-size-desktop:260px;
  --tile-size-mobile:170px;
}

#enlaces-rapidos{
  background:#eef5ff; border-radius:16px;
  min-height:0!important; height:auto!important;
  padding-block:10px; margin-bottom:8px;
}
#enlaces-rapidos .row{ row-gap:18px; }

.section-title{ color:var(--bs-cc-primary,#0a4a8a); font-weight:800; }
.hr-slim{ border:0; border-top:1px solid #d8e5ff; margin:.25rem 0 1rem; opacity:1; }

/* Tarjeta base */
.flip-tile{
  display:block; position:relative;
  color:inherit; text-decoration:none;
  perspective:1000px; border-radius:var(--tile-radius);
  height:var(--tile-size-desktop); min-height:var(--tile-size-desktop);
}
.flip-inner{
  position:relative; width:100%; height:100%;
  border-radius:var(--tile-radius); overflow:hidden;
  box-shadow:var(--tile-shadow);
  will-change:transform;
}

/* Caras */
.flip-face{
  position:absolute; inset:0; border-radius:var(--tile-radius);
  display:flex; flex-direction:column; align-items:center; justify-content:center; gap:.6rem;
  padding:1.2rem;
  backface-visibility:hidden; -webkit-backface-visibility:hidden;
  transform-style:preserve-3d; -webkit-transform-style:preserve-3d;
  transition:transform .6s cubic-bezier(.2,.7,.2,1), opacity .28s ease, visibility .28s ease;
}

/* Frente: BLANCO, contenidos AZUL */
.flip-front{
  background:var(--tile-primary);
  outline:1px solid #e9eef6;
  transform:rotateY(0deg); opacity:1; visibility:visible; z-index:2;
}
/* elimina cualquier decorador anterior */
.flip-front::before{ display:none !important; }
/* textos/títulos del frente en azul */
.flip-front *{ color:var(--tile-blue) !important; }

/* Icono (marco + trazo) del frente en azul */
.flip-icon{
  display:inline-flex; align-items:center; justify-content:center;
  width:96px; height:96px; border-radius:20px;
  border:2px solid var(--tile-blue);
  color:var(--tile-blue); /* para SVG con stroke="currentColor" */
  box-shadow:none;
}
.flip-logo{
  max-width:86%; max-height:72px; object-fit:contain; display:block;
}

/* Dorso */
.flip-back{
  background:var(--tile-primary-dark);
  text-align:center; color:#dbeafe;
  transform:rotateY(180deg); opacity:0; visibility:hidden; z-index:1;
}
.flip-back p{ color:#dbeafe; font-size:.95rem; margin:0 .5rem .6rem; }
.flip-btn{
  display:inline-block;
  background:var(--tile-accent);
  color:var(--tile-btn-text);
  font-weight:700; border-radius:10px; padding:.48rem .9rem;
  box-shadow:0 2px 10px rgba(0,0,0,.16);
}
.flip-btn:hover,
.flip-btn:focus-visible{ filter:brightness(1.06); }

/* Interacciones (hover / teclado) */
.flip-tile:hover .flip-front,
.flip-tile:focus-visible .flip-front{ transform:rotateY(-180deg); opacity:0; visibility:hidden; }
.flip-tile:hover .flip-back,
.flip-tile:focus-visible .flip-back{ transform:rotateY(0deg); opacity:1; visibility:visible; }

/* Alternativa por estado (útil con JS en móviles) */
.flip-tile.is-flipped .flip-front{ transform:rotateY(-180deg); opacity:0; visibility:hidden; }
.flip-tile.is-flipped .flip-back{ transform:rotateY(0deg); opacity:1; visibility:visible; }

.flip-tile:focus-visible{ outline:3px solid #88c0ff; outline-offset:4px; }

/* Responsivo */
@media (max-width:575.98px){
  .flip-tile{ height:var(--tile-size-mobile); min-height:var(--tile-size-mobile); }
  .flip-icon{ width:84px; height:84px; border-radius:18px; }
  .flip-logo{ max-height:62px; }
}

/* Móviles sin hover: muestra solo frente a menos que lleve .is-flipped */
@media (hover:none){
  .flip-tile:not(.is-flipped) .flip-front{ transform:none; opacity:1; visibility:visible; }
  .flip-tile:not(.is-flipped) .flip-back{ display:none; }
  .flip-tile.is-flipped .flip-back{ display:flex; } /* asegura visibilidad */
}

/* Accesibilidad: reduce motion */
@media (prefers-reduced-motion:reduce){
  .flip-inner,.flip-face{ transition:none!important; }
}

/* ===== SOLO para el tile de PreMUNI: logo a todo el recuadro (frente blanco) ===== */
.flip-tile--full .flip-front{
  position:absolute; inset:0; padding:0 !important;
  border-radius:var(--tile-radius);
  background:#fff url("/portal/assets/img/logos/premuni-beca18.png") center / contain no-repeat;
  outline:1px solid #e9eef6;
}
.flip-tile--full .flip-front::before{ display:none !important; }
.flip-tile--full .flip-front > *,
.flip-tile--full .flip-icon,
.flip-tile--full .flip-title{ display:none !important; }


.flip-tile--sgd .flip-front{
  position:absolute; inset:0; padding:0 !important;
  border-radius:var(--tile-radius);
  background:#fff url("/portal/assets/img/logos/sgd.png") center / contain no-repeat;
  outline:1px solid #e9eef6;
}
.flip-tile--sgd .flip-front::before{ display:none !important; }
.flip-tile--sgd .flip-front > *,
.flip-tile--sgd .flip-icon,
.flip-tile--sgd .flip-title{ display:none !important; }


.flip-tile--mpd .flip-front{
  position:absolute; inset:0; padding:0 !important;
  border-radius:var(--tile-radius);
  background:#fff url("/portal/assets/img/logos/mpd.png") center / contain no-repeat;
  outline:1px solid #e9eef6;
}
.flip-tile--mpd .flip-front::before{ display:none !important; }
.flip-tile--mpd .flip-front > *,
.flip-tile--mpd .flip-icon,
.flip-tile--mpd .flip-title{ display:none !important; }



.flip-tile--licemun .flip-front{
  position:absolute; inset:0; padding:0 !important;
  border-radius:var(--tile-radius);
  background:#fff url("/portal/assets/img/logos/licemun-logo.png") center / contain no-repeat;
  outline:1px solid #e9eef6;
}
.flip-tile--licemun .flip-front::before{ display:none !important; }
.flip-tile--licemun .flip-front > *,
.flip-tile--licemun .flip-icon,
.flip-tile--licemun .flip-title{ display:none !important; }



.flip-tile--normas .flip-front{
  position:absolute; inset:0; padding:0 !important;
  border-radius:var(--tile-radius);
  background:#fff url("/portal/assets/img/logos/normas.png") center / contain no-repeat;
  outline:1px solid #e9eef6;
}
.flip-tile--normas .flip-front::before{ display:none !important; }
.flip-tile--normas .flip-front > *,
.flip-tile--normas .flip-icon,
.flip-tile--normas .flip-title{ display:none !important; }


.flip-tile--consulta .flip-front{
  position:absolute; inset:0; padding:0 !important;
  border-radius:var(--tile-radius);
  background:#fff url("/portal/assets/img/logos/consulta.png") center / contain no-repeat;
  outline:1px solid #e9eef6;
}
.flip-tile--consulta .flip-front::before{ display:none !important; }
.flip-tile--consulta .flip-front > *,
.flip-tile--consulta .flip-icon,
.flip-tile--consulta .flip-title{ display:none !important; }

.flip-tile--validez .flip-front{
  position:absolute; inset:0; padding:0 !important;
  border-radius:var(--tile-radius);
  background:#fff url("/portal/assets/img/logos/validez.png") center / contain no-repeat;
  outline:1px solid #e9eef6;
}
.flip-tile--validez .flip-front::before{ display:none !important; }
.flip-tile--validez .flip-front > *,
.flip-tile--validez .flip-icon,
.flip-tile--validez .flip-title{ display:none !important; }



.flip-tile--pei .flip-front{
  position:absolute; inset:0; padding:0 !important;
  border-radius:var(--tile-radius);
  background:#fff url("/portal/assets/img/logos/pei.png") center / contain no-repeat;
  outline:1px solid #e9eef6;
}
.flip-tile--pei .flip-front::before{ display:none !important; }
.flip-tile--pei .flip-front > *,
.flip-tile--pei .flip-icon,
.flip-tile--pei .flip-title{ display:none !important; }




.flip-tile--poi .flip-front{
  position:absolute; inset:0; padding:0 !important;
  border-radius:var(--tile-radius);
  background:#fff url("/portal/assets/img/logos/poi.png") center / contain no-repeat;
  outline:1px solid #e9eef6;
}
.flip-tile--poi .flip-front::before{ display:none !important; }
.flip-tile--poi .flip-front > *,
.flip-tile--poi .flip-icon,
.flip-tile--poi .flip-title{ display:none !important; }



.flip-tile--sitran .flip-front{
  position:absolute; inset:0; padding:0 !important;
  border-radius:var(--tile-radius);
  background:#fff url("/portal/assets/img/logos/sitran-logo.png") center / contain no-repeat;
  outline:1px solid #e9eef6;
}
.flip-tile--sitran .flip-front::before{ display:none !important; }
.flip-tile--sitran .flip-front > *,
.flip-tile--sitran .flip-icon,
.flip-tile--sitran .flip-title{ display:none !important; }

/* ======= Sección Alcalde (ajustada) ======= */
:root{ --mpt-azul:#155db9; }

.alcalde{
  background:#eef5ff; border-radius:16px;
  padding:clamp(1rem,2.2vw,1.75rem) 1rem;
  margin-bottom:var(--section-gap,24px);
}
.alcalde-card{
  display:grid; gap:clamp(1rem,2.2vw,1.75rem);
  grid-template-columns:1fr; align-items:center;
}
.alcalde-foto{
  margin:0; text-align:center;
  display:flex; flex-direction:column; align-items:center;
}
.alcalde-foto img{
  width:clamp(220px,22vw,320px); max-height:460px; height:auto;
  object-fit:contain; filter:drop-shadow(0 12px 20px rgba(2,6,23,.12));
}
.alcalde-foto figcaption{
  max-width:320px; margin-top:.5rem; color:#64748b;
  font-weight:600; line-height:1.25;
}
.alcalde-foto figcaption span{ display:block; font-weight:500; }

.alcalde-texto{ color:#0f172a; font-size:1.05rem; line-height:1.7; }
.alcalde-title{ color:#0a4a8a; font-weight:800; font-size:clamp(1.6rem,2.4vw,2.1rem); margin:0; }
.alcalde-rule{
  width:56px; height:4px; border:0; border-radius:4px;
  background:var(--mpt-azul); margin:.7rem 0 1rem;
}
.alcalde-texto p{ margin-bottom:1rem; }

@media (min-width:992px){
  .alcalde-card{ grid-template-columns:minmax(260px,.8fr) 1px 1.2fr; }
  .alcalde-divider{
    display:block; width:1px; height:100%;
    background:linear-gradient(180deg,transparent,#e5e7eb 12%,#e5e7eb 88%,transparent);
    border-radius:1px;
  }
}

/* Recorte elegante opcional (añade .alcalde-foto--crop al <figure>) */
.alcalde-foto--crop img{
  width:clamp(220px,22vw,320px);
  height:clamp(300px,28vw,420px);
  object-fit:cover; object-position:center bottom;
}

@media (prefers-reduced-motion:reduce){
  *{ transition:none!important; animation:none!important; }
}
