/* PORTAL WEB AC v1.1.0 · PREMIUM TECH STACK
   Capa additiva i progressiva. No altera contingut editorial ni jerarquies de CTA. */

:root{
  --ac-tech-navy:#203755;
  --ac-tech-blue:#014881;
  --ac-tech-blue-soft:#0f4d81;
  --ac-tech-ice:#f4f7fb;
  --ac-tech-surface:rgba(255,255,255,.78);
  --ac-tech-surface-strong:rgba(255,255,255,.92);
  --ac-tech-line:rgba(32,55,85,.14);
  --ac-tech-line-soft:rgba(255,255,255,.18);
  --ac-tech-shadow:0 18px 48px rgba(14,39,67,.10);
  --ac-tech-shadow-strong:0 28px 78px rgba(14,39,67,.16);
  --ac-tech-radius-sm:14px;
  --ac-tech-radius-md:20px;
  --ac-tech-radius-lg:28px;
  --ac-tech-ease:cubic-bezier(.2,.72,.2,1);
}

body.ac-tech-v110{
  --ac-tech-motion-scale:1;
  accent-color:var(--ac-tech-blue);
}

body.ac-tech-v110[data-ac-performance-tier="lite"]{
  --ac-tech-motion-scale:0;
}

/* Superfícies amb acabat de sistema de disseny modern, sense reordenar contingut. */
body.ac-tech-v110 :is(.panel-card,.map-card,.stat-card,.news-row,.media-card,.program-card,.programa-card,.detail-card){
  border-color:var(--ac-tech-line);
  transform:translateZ(0);
  will-change:auto;
}

@media (hover:hover) and (pointer:fine){
  body.ac-tech-v110[data-ac-performance-tier="full"] :is(.panel-card,.map-card,.stat-card,.news-row,.media-card,.program-card,.programa-card,.detail-card):hover{
    box-shadow:var(--ac-tech-shadow-strong);
  }
}

/* Header amb tractament glass discret. */
body.ac-tech-v110 .site-header{
  background-image:linear-gradient(180deg,rgba(13,49,82,.96),rgba(10,43,74,.88));
  border-bottom:1px solid rgba(255,255,255,.11);
}

@supports ((backdrop-filter:blur(18px)) or (-webkit-backdrop-filter:blur(18px))){
  body.ac-tech-v110 .site-header{
    background-color:rgba(11,46,79,.74);
    -webkit-backdrop-filter:blur(18px) saturate(138%);
    backdrop-filter:blur(18px) saturate(138%);
  }
}

/* Tipografia fluida només en headings; no modifica el contingut ni els textos. */
body.ac-tech-v110 :is(h1,h2,h3){
  font-kerning:normal;
  text-wrap:balance;
}
body.ac-tech-v110 p{text-wrap:pretty;}

/* Controls coherents amb un sistema tipus shadcn: focus clar, radi i feedback físic curt. */
body.ac-tech-v110 :is(button,.button,.btn,input,select,textarea){
  border-radius:max(8px,min(14px,var(--ac-tech-radius-sm)));
}
body.ac-tech-v110 :is(button,.button,.btn):not(:disabled){
  transition:
    transform .18s var(--ac-tech-ease),
    box-shadow .22s ease,
    border-color .22s ease,
    background-color .22s ease,
    color .22s ease;
}
body.ac-tech-v110 :is(button,.button,.btn):not(:disabled):active{
  transform:scale(.985);
}

/* Ambient WebGPU. S'insereix només a la portada i només en equips aptes. */
.ac-webgpu-ambient{
  position:absolute;
  inset:0;
  z-index:1;
  width:100%;
  height:100%;
  pointer-events:none;
  opacity:.22;
  mix-blend-mode:screen;
}

body.ac-webgpu-fallback .hero-media::after{
  content:"";
  position:absolute;
  inset:-12%;
  z-index:1;
  pointer-events:none;
  opacity:.22;
  background:
    radial-gradient(circle at 18% 24%,rgba(61,143,202,.36),transparent 34%),
    radial-gradient(circle at 76% 42%,rgba(25,94,150,.28),transparent 38%),
    linear-gradient(120deg,transparent 20%,rgba(255,255,255,.06) 52%,transparent 78%);
  filter:blur(20px) saturate(120%);
  animation:acTechAurora 12s ease-in-out infinite alternate;
}

@keyframes acTechAurora{
  from{transform:translate3d(-1.5%,-1%,0) scale(1.01)}
  to{transform:translate3d(1.5%,1%,0) scale(1.035)}
}

/* View Transition: progressiu i sense dependència de framework. */
@supports (view-transition-name:none){
  body.ac-tech-v110 .site-header{view-transition-name:ac-header;}
  body.ac-tech-v110 main{view-transition-name:ac-main;}
}

::view-transition-old(ac-main){animation:acTechOut .16s ease both;}
::view-transition-new(ac-main){animation:acTechIn .24s ease both;}
@keyframes acTechOut{to{opacity:.9;filter:blur(1px)}}
@keyframes acTechIn{from{opacity:.9;filter:blur(1.5px)}to{opacity:1;filter:none}}

/* Millora del mapa: manté zoom només amb +/- i reforça affordance dels controls. */
body.ac-tech-v110 .zoom-controls{
  filter:drop-shadow(0 10px 24px rgba(13,44,73,.14));
}
body.ac-tech-v110 .zoom-btn{
  min-width:46px;
  min-height:46px;
}

/* Evita animacions premium quan l'usuari ho demana o l'equip és limitat. */
@media (prefers-reduced-motion:reduce){
  .ac-webgpu-ambient{display:none!important;}
  body.ac-webgpu-fallback .hero-media::after{animation:none!important;opacity:.12;}
  body.ac-tech-v110 *,body.ac-tech-v110 *::before,body.ac-tech-v110 *::after{
    scroll-behavior:auto!important;
  }
}

@media (max-width:768px){
  .ac-webgpu-ambient{display:none;}
  body.ac-webgpu-fallback .hero-media::after{opacity:.11;filter:blur(12px);}
}
