/* ==========================================================
   Portal Monagas — Cambios 7
   Rendimiento, loader privado, carrusel fiel y soporte visual.
   ========================================================== */

/* Durante la carga no se filtra el contenido de la página. */
html.portal-loading,
html.portal-loading body{
  background:#f7fbfe!important;
  overflow:hidden!important;
}
/* El contenido permanece renderizado detrás del loader opaco.
   Así, incluso si un navegador móvil falla al ejecutar una transición,
   nunca dependemos de visibility:hidden para recuperar la página. */
html.portal-loading body > *:not(#portalLoader){
  visibility:visible!important;
}
html.portal-loading #portalLoader{visibility:visible!important}

/* Loader: separación explícita entre icono y texto para evitar solapamientos. */
.portal-loader{
  background:#f7fbfe!important;
  gap:0!important;
}
.portal-loader::before{
  background:radial-gradient(circle at 50% 46%,rgba(116,193,235,.22),transparent 250px)!important;
}
.portal-loader-core{margin-bottom:24px!important;flex:0 0 auto}
.portal-loader-copy{
  position:relative;
  z-index:2;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:7px;
  min-height:54px;
  text-align:center;
}
.portal-loader-copy strong{
  display:block;
  margin:0;
  font-size:1.04rem;
  line-height:1.25;
  letter-spacing:.04em;
}
.portal-loader-copy span{
  display:block;
  margin:0;
  max-width:320px;
  color:var(--texto-suave);
  font-size:.82rem;
  font-weight:650;
  line-height:1.5;
}
.portal-loader-track{margin-top:18px!important}

/* Rendimiento: evita reservar capas GPU permanentes para decenas de tarjetas. */
.card,.secretaria-card,.direction-item,.system-card,.sistema-card,.featured-news-card,.home-gallery-item,.info-item,.system-row{
  will-change:auto!important;
}
.card:hover,.secretaria-card:hover,.direction-item:hover,.system-card:hover,.sistema-card:hover,.featured-news-card:hover,.home-gallery-item:hover,.info-item:hover,.system-row:hover{
  will-change:transform,box-shadow;
}

/* Las decoraciones futuristas quedan estáticas y solo reaccionan a interacción. */
main section::after{animation:none!important;transform:none!important}
.section-head .kicker::after{animation:none!important;transform:translateX(0)!important;opacity:.65}
.section-head:hover .kicker::after{animation:futureScan 1.15s ease-out 1!important}

/* Acelera el render de secciones fuera de pantalla en navegadores compatibles. */
main > section:not(:first-child){
  content-visibility:auto;
  contain-intrinsic-size:auto 720px;
}

/* Carrusel a pantalla completa: llena el área sin deformar la imagen.
   object-fit: cover conserva la proporción y recorta únicamente el excedente. */
.home-hero-carousel,.home-hero-slide{background:#071827}
.home-hero-slide{overflow:hidden!important}
.home-hero-slide img{
  width:100%!important;
  height:100%!important;
  max-width:none!important;
  max-height:none!important;
  object-fit:cover!important;
  object-position:center center!important;
  transform:none!important;
  animation:none!important;
  filter:none!important;
  image-rendering:auto!important;
}


/* Soporte técnico: correcciones de recortes, grilla, formulario y responsive. */
.support-hero-card{
  grid-template-columns:minmax(0,1fr) minmax(220px,300px)!important;
  gap:32px!important;
  overflow:visible!important;
  align-items:center!important;
}
.support-hero-card > *{min-width:0}
.support-robot{
  width:100%;
  min-height:260px;
  display:grid;
  place-items:center;
  overflow:hidden!important;
  padding:18px;
  background:linear-gradient(145deg,#eef8fd,#dff2fb)!important;
  border:1px solid rgba(116,193,235,.34);
}
.support-robot img{
  display:block;
  width:auto!important;
  height:auto!important;
  max-width:100%!important;
  max-height:300px!important;
  object-fit:contain!important;
  object-position:center!important;
}
.service-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px!important}
.service-item{
  height:100%;
  min-width:0;
  align-items:flex-start!important;
  padding:18px!important;
  overflow:visible!important;
}
.service-item i{
  flex:0 0 44px;
  width:44px;
  height:44px;
  display:grid;
  place-items:center;
  margin:0!important;
  border-radius:14px;
  background:rgba(116,193,235,.15);
}
.service-item div{min-width:0}
.service-item strong{display:block;margin-bottom:6px;line-height:1.35}
.service-item p{margin:0;line-height:1.6;overflow-wrap:anywhere}
#formulario-soporte .form{gap:18px!important;overflow:visible!important}
#formulario-soporte .form > label{min-width:0}
#formulario-soporte input,#formulario-soporte select,#formulario-soporte textarea{min-width:0;max-width:100%}
#formulario-soporte input[type="file"]{height:auto!important;min-height:52px!important;padding:10px!important}
#formulario-soporte .privacy-consent{align-items:center!important;padding:16px 18px!important}
#formulario-soporte .privacy-consent span{line-height:1.55}
#formulario-soporte .btn.full{width:100%;justify-self:stretch!important}

@media(max-width:980px){
  .support-hero-card{grid-template-columns:1fr!important;text-align:center}
  .support-hero-card .hero-actions{justify-content:center}
  .support-robot{max-width:360px;margin-inline:auto}
  .service-list{grid-template-columns:1fr}
}
@media(max-width:680px){
  .portal-loader-core{margin-bottom:20px!important}
  .portal-loader-copy{padding-inline:22px}
  .support-hero-card{padding:26px 20px!important}
  #formulario-soporte .form{padding:18px!important}
  .service-item{padding:16px!important}
}


/* Seguimiento de soporte */
.support-tracking-grid{
  grid-template-columns:minmax(0,1.25fr) minmax(280px,.75fr)!important;
  gap:28px!important;
  align-items:start!important;
}
.support-tracking-main,.support-tracking-aside{min-width:0}
.support-tracking-form{grid-template-columns:repeat(2,minmax(0,1fr))!important}
.support-ticket-card{overflow:visible!important}
.support-ticket-card h2{overflow-wrap:anywhere;line-height:1.35}
.support-ticket-card p{margin-bottom:10px!important;overflow-wrap:anywhere}
@media(max-width:900px){
  .support-tracking-grid{grid-template-columns:1fr!important}
  .support-tracking-form{grid-template-columns:1fr!important}
}
