/* PORTAL WEB AC v1.1.1 · SESSION PRELOAD EXPERIENCE
   Pantalla visible de precàrrega per al primer render de portada.
   Manté una experiència clara mentre es preparen vídeo hero, miniatures YouTube i mapa territorial. */

body.portal-session-preloading{overflow:hidden;}

.portal-session-loader{
  position:fixed;
  inset:0;
  z-index:150000;
  display:grid;
  place-items:center;
  padding:clamp(18px,4vw,56px);
  overflow:hidden;
  color:#203755;
  background:
    radial-gradient(circle at 12% 18%,rgba(1,72,129,.18),transparent 30rem),
    radial-gradient(circle at 88% 82%,rgba(53,165,222,.12),transparent 34rem),
    linear-gradient(145deg,#f8fbfe 0%,#eef4f9 50%,#f9fbfd 100%);
  opacity:1;
  visibility:visible;
  transition:opacity .52s ease,visibility .52s ease;
}
.portal-session-loader[hidden]{display:none!important;}
.portal-session-loader.is-leaving{opacity:0;visibility:hidden;pointer-events:none;}
.portal-session-loader::before,
.portal-session-loader::after{
  content:"";
  position:absolute;
  border-radius:50%;
  pointer-events:none;
}
.portal-session-loader::before{
  width:min(68vw,840px);
  aspect-ratio:1;
  left:-28vw;
  top:-35vw;
  border:1px solid rgba(32,55,85,.08);
  box-shadow:0 0 0 78px rgba(1,72,129,.018),0 0 0 170px rgba(1,72,129,.010);
}
.portal-session-loader::after{
  width:min(52vw,650px);
  aspect-ratio:1;
  right:-18vw;
  bottom:-28vw;
  border:1px solid rgba(32,55,85,.07);
  box-shadow:0 0 0 90px rgba(53,165,222,.015);
}
.portal-session-loader__card{
  position:relative;
  width:min(820px,100%);
  padding:clamp(28px,5vw,58px);
  overflow:hidden;
  border:1px solid rgba(255,255,255,.78);
  border-radius:34px;
  background:rgba(255,255,255,.84);
  -webkit-backdrop-filter:blur(26px) saturate(142%);
  backdrop-filter:blur(26px) saturate(142%);
  box-shadow:0 38px 110px rgba(24,52,82,.18),inset 0 1px 0 rgba(255,255,255,.92);
}
.portal-session-loader__card::after{
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  background:linear-gradient(118deg,rgba(255,255,255,.48),transparent 31%,transparent 73%,rgba(1,72,129,.035));
}
.portal-session-loader__brand,
.portal-session-loader__copy,
.portal-session-loader__progress-wrap,
.portal-session-loader__stages,
.portal-session-loader__meta{position:relative;z-index:1;}
.portal-session-loader__brand{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:20px;
  margin-bottom:clamp(28px,4vw,42px);
}
.portal-session-loader__brand img{display:block;width:min(236px,54vw);height:auto;}
.portal-session-loader__badge{
  display:inline-flex;
  align-items:center;
  gap:8px;
  min-height:34px;
  padding:8px 12px;
  border:1px solid rgba(1,72,129,.15);
  border-radius:999px;
  background:rgba(244,248,252,.94);
  color:#33516f;
  font-size:11px;
  font-weight:800;
  letter-spacing:.08em;
  text-transform:uppercase;
  white-space:nowrap;
}
.portal-session-loader__badge::before{
  content:"";
  width:8px;height:8px;border-radius:50%;
  background:#014881;
  box-shadow:0 0 0 5px rgba(1,72,129,.10);
}
.portal-session-loader__eyebrow{
  margin:0 0 10px;
  color:#014881;
  font-size:12px;
  font-weight:800;
  letter-spacing:.14em;
  text-transform:uppercase;
}
.portal-session-loader__title{
  margin:0;
  max-width:15ch;
  color:#203755;
  font-size:clamp(34px,6vw,66px);
  line-height:.98;
  letter-spacing:-.045em;
  font-weight:800;
}
.portal-session-loader__status{
  min-height:50px;
  margin:20px 0 0;
  max-width:62ch;
  color:#5c6c7e;
  font-size:clamp(14px,1.8vw,17px);
  line-height:1.55;
  font-weight:500;
}
.portal-session-loader__progress-wrap{margin-top:28px;}
.portal-session-loader__progress-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:18px;
  margin-bottom:10px;
  color:#40576f;
  font-size:12px;
  font-weight:700;
}
.portal-session-loader__progress{
  position:relative;
  height:10px;
  overflow:hidden;
  border-radius:999px;
  background:#dce6f0;
  box-shadow:inset 0 1px 2px rgba(32,55,85,.09);
}
.portal-session-loader__bar{
  position:absolute;
  inset:0 auto 0 0;
  width:4%;
  border-radius:inherit;
  background:linear-gradient(90deg,#203755,#014881 58%,#35a5de);
  box-shadow:0 0 22px rgba(1,72,129,.28);
  transition:width .36s cubic-bezier(.2,.8,.2,1);
}
.portal-session-loader__bar::after{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(105deg,transparent 28%,rgba(255,255,255,.56) 50%,transparent 72%);
  transform:translateX(-115%);
  animation:portalSessionSweep 1.55s ease-in-out infinite;
}
@keyframes portalSessionSweep{to{transform:translateX(115%)}}
.portal-session-loader__stages{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:10px;
  margin-top:22px;
}
.portal-session-loader__stage{
  display:flex;
  align-items:center;
  gap:9px;
  min-width:0;
  padding:10px 12px;
  border:1px solid rgba(32,55,85,.08);
  border-radius:14px;
  background:rgba(245,248,251,.88);
  color:#657487;
  font-size:11px;
  font-weight:700;
  transition:border-color .2s ease,background .2s ease,color .2s ease;
}
.portal-session-loader__stage::before{
  content:"";
  flex:0 0 auto;
  width:8px;height:8px;border-radius:50%;
  background:#aebbc8;
  box-shadow:0 0 0 4px rgba(174,187,200,.14);
}
.portal-session-loader__stage.is-active{
  border-color:rgba(1,72,129,.22);
  background:rgba(233,242,250,.92);
  color:#203755;
}
.portal-session-loader__stage.is-active::before{background:#014881;box-shadow:0 0 0 4px rgba(1,72,129,.12);}
.portal-session-loader__stage.is-done{color:#36556f;}
.portal-session-loader__stage.is-done::before{background:#2f8f6b;box-shadow:0 0 0 4px rgba(47,143,107,.11);}
.portal-session-loader__meta{
  display:flex;
  flex-wrap:wrap;
  justify-content:space-between;
  gap:10px 18px;
  margin-top:18px;
  color:#758394;
  font-size:11px;
  line-height:1.4;
}
.portal-session-loader__meta strong{color:#385675;font-weight:800;}
.portal-session-loader.is-error .portal-session-loader__bar{background:linear-gradient(90deg,#8b4a42,#b96b59);}
@media (max-width:700px){
  .portal-session-loader__card{border-radius:26px;padding:28px 22px;}
  .portal-session-loader__brand{align-items:flex-start;flex-direction:column;}
  .portal-session-loader__stages{grid-template-columns:1fr;gap:7px;}
  .portal-session-loader__title{font-size:clamp(34px,11vw,52px);}
}
@media (prefers-reduced-motion:reduce){
  .portal-session-loader,.portal-session-loader__bar{transition:none!important;}
  .portal-session-loader__bar::after{animation:none!important;}
}


/* AC HOME RETURN V1.1.2 */
html.ac-home-return .portal-session-loader {
  display: none !important;
}
