/* Banner moderno - CertComp (proposta). Mobile first; usa i colori di config/site.php (--navy-deep, --navy, --teal, --blue-light). */
.hm{position:relative; isolation:isolate; overflow:hidden; background:var(--navy-deep,#07294d); color:#fff;
  min-height:clamp(470px, 82svh, 560px);}
.hm-slide{position:absolute; inset:0; display:flex; align-items:flex-end; opacity:0; visibility:hidden; transition:opacity .9s ease, visibility 0s .9s;}
.hm-slide.is-active{opacity:1; visibility:visible; transition:opacity .9s ease;}
.hm-bg{position:absolute; inset:0; z-index:-2; background:var(--navy-deep,#07294d) center/cover no-repeat; transform:scale(1.08);}
.hm-slide.is-active .hm-bg{animation:hmZoom 12s ease-out forwards;}
@keyframes hmZoom{from{transform:scale(1.12);}to{transform:scale(1);}}
/* velatura: scura dove c'e' il testo, lascia respirare la foto dall'altra parte */
.hm-slide::after{content:""; position:absolute; inset:0; z-index:-1;
  background:linear-gradient(0deg, rgba(7,41,77,.96) 0%, rgba(7,41,77,.84) 42%, rgba(7,41,77,.35) 100%);}
.hm-inner{width:100%; max-width:1180px; margin:0 auto; padding:0 20px 128px;}
.hm-eyebrow{margin:0 0 10px; font-weight:600; font-size:15px; color:var(--blue-light,#9cc7fc);}
.hm-title{margin:0; font-family:var(--font-head,inherit); font-weight:800; letter-spacing:-.02em; line-height:1.06;
  font-size:clamp(1.9rem, 1.25rem + 3.2vw, 3.9rem); max-width:19ch; text-wrap:balance; text-shadow:0 2px 24px rgba(0,0,0,.25);}
.hm-text{margin:16px 0 0; max-width:52ch; font-size:clamp(1rem, .95rem + .3vw, 1.2rem); line-height:1.5; color:#e4eefb;}
.hm-chips{list-style:none; display:flex; flex-wrap:wrap; gap:8px; padding:0; margin:18px 0 0;}
.hm-chips li{padding:5px 12px; border:1px solid rgba(255,255,255,.35); border-radius:99px; font-size:14px;}
.hm-btn{display:inline-flex; align-items:center; margin-top:26px; padding:13px 28px; border-radius:99px; background:#fff; color:var(--navy,#001e7c);
  font-weight:700; font-size:16px; text-decoration:none; transition:background .2s, color .2s, transform .2s;}
.hm-btn:hover{background:var(--blue-light,#9cc7fc); color:var(--navy-deep,#07294d);}
.hm-btn:focus-visible,.hm-nav:focus-visible,.hm-pause:focus-visible{outline:3px solid #fff; outline-offset:3px;}
/* comandi: anello che si chiude mentre scorre il tempo della slide */
.hm-ctrl{position:absolute; z-index:5; right:20px; bottom:24px; display:flex; align-items:center; gap:10px;}
.hm-ring{position:relative; width:76px; height:76px;}
.hm-ring svg{width:100%; height:100%; overflow:visible; transform:rotate(0deg);}
.hm-track{fill:none; stroke:rgba(255,255,255,.28); stroke-width:3;}
.hm-arc{fill:none; stroke:var(--blue-light,#9cc7fc); stroke-width:3; stroke-linecap:round; stroke-dasharray:100; stroke-dashoffset:100;
  transform:rotate(-90deg); transform-origin:60px 60px;}
.hm-dot{fill:var(--teal,#3792f9); stroke:#fff; stroke-width:3; transform-origin:60px 60px;}
.hm-count{position:absolute; inset:0; display:flex; align-items:center; justify-content:center; font-size:13px; color:#cfe0f7; font-variant-numeric:tabular-nums;}
.hm-count b{font-size:20px; font-weight:700; color:#fff; margin-right:2px;}
.hm-nav,.hm-pause{width:44px; height:44px; border-radius:50%; border:1px solid rgba(255,255,255,.4); background:rgba(7,41,77,.4);
  color:#fff; cursor:pointer; display:flex; align-items:center; justify-content:center; font-size:15px; transition:background .2s;}
.hm-nav:hover,.hm-pause:hover{background:rgba(255,255,255,.22);}
.hm-pause{width:36px; height:36px; font-size:12px; margin-left:4px;}
.hm-pi{width:10px; height:12px; border-left:3px solid #fff; border-right:3px solid #fff; box-sizing:border-box;}
.hm-pause[aria-pressed="true"] .hm-pi{width:0; height:0; border:0; border-left:10px solid #fff; border-top:6px solid transparent; border-bottom:6px solid transparent; margin-left:3px;}
/* striscia con i tre numeri della home */
.hm-strip{background:var(--navy,#001e7c); color:#fff;}
.hm-strip ul{list-style:none; margin:0 auto; padding:0; max-width:1180px; display:grid; grid-template-columns:repeat(3,1fr);}
.hm-strip li{display:flex; flex-direction:column; align-items:center; gap:6px; padding:16px 6px; text-align:center; font-weight:600; font-size:14px;}
.hm-strip li + li{border-left:1px solid rgba(255,255,255,.16);}
.hm-strip i{font-size:20px; color:var(--blue-light,#9cc7fc);}

@media (min-width:700px){
  .hm{min-height:clamp(500px, 66svh, 620px);}
  .hm-slide::after{background:linear-gradient(95deg, rgba(7,41,77,.96) 0%, rgba(7,41,77,.82) 45%, rgba(7,41,77,.2) 80%, rgba(0,30,124,.1) 100%);}
  .hm-slide{align-items:center;}
  .hm-inner{padding:0 40px 40px; padding-right:min(34%, 300px);}
  .hm-ctrl{right:40px; bottom:36px;}
  .hm-ring{width:104px; height:104px;}
  .hm-count{font-size:15px;} .hm-count b{font-size:28px;}
  .hm-strip li{flex-direction:row; justify-content:center; gap:12px; padding:20px 10px; font-size:17px;}
  .hm-strip i{font-size:24px;}
}
@media (min-width:1100px){
  .hm{min-height:clamp(540px, 70svh, 680px);}
  .hm-inner{padding-left:20px;}
  .hm-ctrl{right:max(40px, calc((100vw - 1180px) / 2 + 20px)); bottom:48px;}
  .hm-ring{width:132px; height:132px;}
}
@media (prefers-reduced-motion:reduce){
  .hm-slide,.hm-slide.is-active{transition:none;}
  .hm-slide.is-active .hm-bg{animation:none; transform:none;}
}

/* ---------- Banner delle pagine interne (.page-banner): stesso linguaggio del banner della home ---------- */
.cc-content .page-banner{margin:0 0 40px;}
.cc-content .page-banner .page-banner-bg{position:relative; isolation:isolate; overflow:hidden; display:flex; align-items:flex-start;
  min-height:clamp(210px, 30vw, 320px); padding:0; background-size:cover; background-position:70% center; background-color:var(--navy-deep,#07294d);}
.cc-content .page-banner .page-banner-bg::before{content:""; position:absolute; inset:0; z-index:-1;
  background:linear-gradient(180deg, rgba(7,41,77,.9) 0%, rgba(7,41,77,.5) 55%, rgba(7,41,77,.08) 100%);}
.cc-content .page-banner .page-banner-bg::after{content:""; position:absolute; z-index:-1; right:-90px; top:-110px; width:300px; height:300px; border-radius:50%;
  border:34px solid rgba(255,255,255,.06); pointer-events:none;}
.cc-content .page-banner .container{width:100%;}
.cc-content .page-banner .banner-content,
.cc-content .page-banner .banner-content.text-center{padding:clamp(24px, 6vw, 36px) 0 0; text-align:left !important;}
.cc-content .page-banner .banner-content .title{margin:0; color:#fff; font-weight:800; letter-spacing:-.02em; line-height:1.08;
  font-size:clamp(1.7rem, 1.1rem + 2.6vw, 3.1rem); max-width:24ch; text-wrap:balance; text-shadow:0 2px 20px rgba(0,0,0,.3);
  animation:hmTitle .8s cubic-bezier(.2,.7,.2,1) both;}
@keyframes hmTitle{from{opacity:0; transform:translateY(16px);} to{opacity:1; transform:none;}}
@media (min-width:700px){
  .cc-content .page-banner .page-banner-bg{align-items:flex-end;}
  .cc-content .page-banner .banner-content,
  .cc-content .page-banner .banner-content.text-center{padding:0 0 clamp(24px, 4vw, 46px);}
  .cc-content .page-banner .page-banner-bg::before{background:linear-gradient(90deg, rgba(7,41,77,.93) 0%, rgba(7,41,77,.62) 34%, rgba(7,41,77,0) 62%);}
}
@media (max-width:699px){
  .cc-content .page-banner .page-banner-bg{padding:0; min-height:260px; background-size:auto 125%; background-position:88% 6%;}
  .cc-content .page-banner .page-banner-bg::before{background:linear-gradient(180deg, rgba(7,41,77,.88) 0%, rgba(7,41,77,.35) 45%, rgba(7,41,77,0) 100%);}
}
@media (prefers-reduced-motion:reduce){ .cc-content .page-banner .banner-content .title{animation:none;} }
