/* ===== ATLAS CEER CINEMATIC LAYER vCEER1 (additive, safe to remove) ===== */
:root{
  --cx-red:#e30613;
  --cx-red-soft:rgba(227,6,19,.55);
  --cx-bg:#050507;
  --cx-card:#0c0d12;
  --cx-line:rgba(255,255,255,.09);
  --cx-text:#f2f4f8;
  --cx-muted:#9aa3b2;
  --cx-ease:cubic-bezier(.22,.9,.28,1);
}

/* scroll progress */
#cx-progress{position:fixed;top:0;inset-inline-start:0;height:2px;width:100%;z-index:9999;
  background:linear-gradient(90deg,var(--cx-red),#ff6a3d);transform-origin:0 50%;
  transform:scaleX(0);pointer-events:none}
[dir="rtl"] #cx-progress{transform-origin:100% 50%}

/* ---------- cinematic hero ---------- */
.hero.hero-slider{counter-reset:none}
.hero-slide{background-size:100% auto;transition:background-size 7s ease-out}
.hero-slide.active{background-size:114% auto}
.hero-slide .hero-vignette{background:radial-gradient(120% 90% at 50% 20%,transparent 30%,rgba(0,0,0,.55) 75%,rgba(0,0,0,.85) 100%)}
.hero-content .eyebrow{display:inline-flex;align-items:center;gap:12px;letter-spacing:.42em;
  font-size:11px;font-weight:800;color:#fff}
.hero-content .eyebrow::before{content:"";width:34px;height:2px;background:var(--cx-red);display:inline-block}
.hero-content h1{font-size:clamp(38px,6.4vw,88px);line-height:1.14;font-weight:900;letter-spacing:-.01em}
.hero-content h1 span{background:linear-gradient(180deg,#fff 30%,#ff8a7a 75%,var(--cx-red));
  -webkit-background-clip:text;background-clip:text;color:transparent}
.hero-slide .hero-content>*{opacity:0;transform:translateY(26px);transition:opacity .8s var(--cx-ease),transform .8s var(--cx-ease)}
.hero-slide.active .hero-content>*{opacity:1;transform:none}
.hero-slide.active .hero-content>*:nth-child(1){transition-delay:.10s}
.hero-slide.active .hero-content>*:nth-child(2){transition-delay:.22s}
.hero-slide.active .hero-content>*:nth-child(3){transition-delay:.34s}
.hero-slide.active .hero-content>*:nth-child(4){transition-delay:.46s}

/* ---------- service cards ---------- */
.service-card{position:relative;overflow:hidden;border:1px solid var(--cx-line);
  border-radius:18px;background:var(--cx-card);transition:transform .5s var(--cx-ease),box-shadow .5s,border-color .5s}
.service-card::before{content:"";position:absolute;top:0;inset-inline-start:0;height:3px;width:0;
  background:linear-gradient(90deg,var(--cx-red),#ff6a3d);transition:width .5s var(--cx-ease);z-index:2}
.service-card:hover{transform:translateY(-8px);border-color:rgba(227,6,19,.45);
  box-shadow:0 24px 60px rgba(0,0,0,.55),0 0 0 1px rgba(227,6,19,.15)}
.service-card:hover::before{width:100%}
.service-card img{transition:transform .8s var(--cx-ease),filter .8s}
.service-card:hover img{transform:scale(1.07);filter:saturate(1.15)}
.service-card .service-content span{font-family:Inter,Arial,sans-serif;font-weight:800;
  color:transparent;-webkit-text-stroke:1px rgba(255,255,255,.4)}
.service-card:hover .service-content span{-webkit-text-stroke:1px var(--cx-red)}

/* ---------- buttons: shine sweep ---------- */
.primary-btn,.glass-btn{position:relative;overflow:hidden;isolation:isolate}
.primary-btn::after{content:"";position:absolute;top:0;bottom:0;width:45%;inset-inline-start:-60%;
  background:linear-gradient(105deg,transparent,rgba(255,255,255,.35),transparent);
  transform:skewX(-18deg);transition:inset-inline-start .6s var(--cx-ease)}
.primary-btn:hover::after{inset-inline-start:130%}

/* ---------- counters ---------- */
[data-count]{font-variant-numeric:tabular-nums}

/* ---------- marquee utility ---------- */
.cx-marquee{overflow:hidden;white-space:nowrap;direction:ltr}
.cx-marquee>div{display:inline-flex;gap:3rem;padding-inline-end:3rem;animation:cx-scroll 28s linear infinite}
@keyframes cx-scroll{to{transform:translateX(-50%)}}

/* ---------- dettaglio-style dark map ---------- */
.atlas-leaflet-map,#homeAtlasMap,#centerMap{border-radius:20px;overflow:hidden;
  border:1px solid rgba(255,255,255,.1);box-shadow:0 30px 80px rgba(0,0,0,.6),0 0 0 1px rgba(227,6,19,.12)}
.atlas-leaflet-map .leaflet-container{background:#0a0b10;font-family:inherit}
.atlas-leaflet-marker .marker-bubble{background:linear-gradient(165deg,#1a0508,#2b0a0e);
  border:1px solid rgba(227,6,19,.6);color:#fff;border-radius:14px;
  box-shadow:0 10px 28px rgba(0,0,0,.6),0 0 14px rgba(227,6,19,.25)}
.atlas-leaflet-marker .marker-bubble b{background:var(--cx-red);color:#fff}
.atlas-leaflet-marker.is-active .marker-bubble,.atlas-leaflet-marker:hover .marker-bubble{
  border-color:var(--cx-red);box-shadow:0 10px 30px rgba(0,0,0,.65),0 0 22px rgba(227,6,19,.5)}
.atlas-cluster-bubble{background:radial-gradient(circle at 35% 30%,#ff2b3a,var(--cx-red) 60%,#7a020c);
  color:#fff;border:2px solid rgba(255,255,255,.25);box-shadow:0 0 24px rgba(227,6,19,.55)}
.leaflet-tooltip{background:#0d0e14;color:#fff;border:1px solid rgba(227,6,19,.5);
  border-radius:10px;box-shadow:0 12px 30px rgba(0,0,0,.6)}
.leaflet-tooltip-top::before{border-top-color:rgba(227,6,19,.5)}
.leaflet-bar a{background:#101218;color:#fff;border-color:rgba(255,255,255,.12)}
.leaflet-bar a:hover{background:#1a0b0d;color:#fff}
.leaflet-control-attribution{background:rgba(5,5,8,.7)!important;color:#6b7280!important;font-size:9px!important}
.leaflet-control-attribution a{color:#9aa3b2!important}

/* ---------- reveal polish (works with existing .active system) ---------- */
.reveal{will-change:transform,opacity}

/* ---------- slim scrollbar ---------- */
::-webkit-scrollbar{width:10px}
::-webkit-scrollbar-track{background:#07080c}
::-webkit-scrollbar-thumb{background:linear-gradient(180deg,#3a0d12,var(--cx-red));border-radius:8px}

@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.001s!important;transition-duration:.001s!important}
  .hero-slide{background-size:cover}
  .cx-marquee>div{animation:none}
}
body.cx-paused .hero-slide,
body.cx-paused .cx-marquee>div{animation-play-state:paused}
/* ===== CEER center-cards motion v2 ===== */
body.cx-cards .center-results-grid > .center-card{opacity:0;transform:translateY(34px) scale(.985);
  transition:opacity .7s cubic-bezier(.22,.9,.28,1),transform .7s cubic-bezier(.22,.9,.28,1),box-shadow .45s ease,border-color .45s ease}
body.cx-cards .center-results-grid > .center-card.cx-in{opacity:1;transform:none}
.center-results-grid > .center-card{position:relative}
.center-results-grid > .center-card::after{content:"";position:absolute;inset:0;border-radius:inherit;
  pointer-events:none;opacity:0;transition:opacity .4s ease;
  background:radial-gradient(420px circle at var(--mx,50%) var(--my,50%),rgba(227,6,19,.14),transparent 65%)}
.center-results-grid > .center-card:hover::after{opacity:1}
.center-results-grid > .center-card:hover{transform:translateY(-8px);border-color:rgba(227,6,19,.5);
  box-shadow:0 26px 60px rgba(0,0,0,.6),0 0 0 1px rgba(227,6,19,.18)}
@media (prefers-reduced-motion:reduce){
  body.cx-cards .center-results-grid > .center-card{opacity:1;transform:none;transition:none}
  .center-results-grid > .center-card::after{display:none}
}
