body{margin:0;background:#FFFFFF;color:#233B3F;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-weight:300;-webkit-font-smoothing:antialiased}
*{box-sizing:border-box}
a{color:inherit}a:hover{color:#C9431F}
.g-hero{background:#18292D url(../img/sfondo-hero.jpg) center top/cover no-repeat}
.g-dark{background:#18292D url(../img/sfondo-format.jpg) center bottom/cover no-repeat}
.btn-primary{background:#C9431F;color:#FFFFFF;transition:background .2s ease}
.btn-primary:hover{background:#A9361A;color:#FFFFFF}
.btn-ghost{border:1px solid rgba(255,255,255,.55);color:#FFFFFF;transition:background .2s ease,color .2s ease}
.btn-ghost:hover{background:#FFFFFF;color:#233B3F}
.btn-dark{background:#233B3F;color:#FFFFFF;transition:background .2s ease}
.btn-dark:hover{background:#142326;color:#FFFFFF}
.btn-line{border:1px solid #233B3F;color:#233B3F;transition:background .2s ease,color .2s ease}
.btn-line:hover{background:#233B3F;color:#FFFFFF}
.navlink{text-decoration:none;color:rgba(255,255,255,.82)}
.navlink:hover{color:#FFFFFF}
.clip{transition:transform .3s ease}
.clip:hover{transform:translateY(-4px)}
.pg{backface-visibility:hidden;will-change:transform}
.flipR0{animation:flipR0 .75s cubic-bezier(.22,.7,.2,1);z-index:2}
.flipR1{animation:flipR1 .75s cubic-bezier(.22,.7,.2,1);z-index:2}
.flipL0{animation:flipL0 .75s cubic-bezier(.22,.7,.2,1);z-index:2}
.flipL1{animation:flipL1 .75s cubic-bezier(.22,.7,.2,1);z-index:2}
@keyframes flipR0{from{transform:rotateY(-110deg);filter:brightness(.7)}to{transform:rotateY(0);filter:brightness(1)}}
@keyframes flipR1{from{transform:rotateY(-110deg);filter:brightness(.7)}to{transform:rotateY(0);filter:brightness(1)}}
@keyframes flipL0{from{transform:rotateY(110deg);filter:brightness(.7)}to{transform:rotateY(0);filter:brightness(1)}}
@keyframes flipL1{from{transform:rotateY(110deg);filter:brightness(.7)}to{transform:rotateY(0);filter:brightness(1)}}
@media (prefers-reduced-motion:reduce){.flipR0,.flipR1,.flipL0,.flipL1{animation:none}}
.flipbtn{width:52px;height:52px;border-radius:50%;border:1px solid rgba(255,255,255,.55);background:transparent;color:#FFFFFF;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;transition:background .2s ease,color .2s ease}
.flipbtn:hover{background:#FFFFFF;color:#233B3F}
.flipbtn:disabled{opacity:.3;cursor:default;background:transparent;color:#FFFFFF}
.flipbtn:focus-visible,.dotbtn:focus-visible{outline:2px solid #F2826A;outline-offset:3px}
.dotbtn{min-width:44px;height:44px;padding:0 10px;font-family:inherit;font-size:13px;font-weight:500;letter-spacing:.06em;border:1px solid rgba(255,255,255,.4);background:transparent;color:#FFFFFF;cursor:pointer;transition:background .2s ease,color .2s ease}
.dotbtn:hover{border-color:#FFFFFF}
.dotbtn-on{background:#FFFFFF;color:#233B3F;border-color:#FFFFFF}
.ed-grid{display:grid;gap:12px;grid-template-columns:repeat(5,1fr);grid-auto-rows:clamp(200px,19vw,268px);grid-template-areas:"a b c d e" "a f g d h" "i j k l m"}
.idxbtn{display:grid;grid-template-columns:32px 1fr auto;gap:12px;align-items:center;width:100%;min-height:52px;padding:10px 0;border:0;border-top:1px solid #D7DCDD;background:transparent;color:#233B3F;font-family:inherit;font-weight:300;text-align:left;cursor:pointer;transition:color .2s ease}
.idxbtn:hover{color:#C9431F}
.slot-hide{display:none !important}
.idxbtn:focus-visible{outline:2px solid #C9431F;outline-offset:2px}
.btn-primary{background:#C9431F;color:#FFFFFF;border:0;cursor:pointer;font-family:inherit;transition:background .2s ease}
.navlink{text-decoration:none;color:rgba(255,255,255,.85)}
.fld{display:flex;flex-direction:column;gap:8px}
.fld label,.lbl{font-size:13px;font-weight:500;letter-spacing:.04em;color:#233B3F}
.fld input,.fld select{font-family:inherit;font-size:16px;font-weight:300;color:#233B3F;background:#FFFFFF;border:0;border-bottom:1px solid #8A9597;padding:12px 2px;min-height:48px;border-radius:0;outline:none;transition:border-color .2s ease}
.fld input:focus,.fld select:focus{border-bottom:2px solid #233B3F;padding-bottom:11px}
.fld input::placeholder{color:#8A9597}
.req{color:#C9431F}
.check{display:flex;gap:12px;align-items:flex-start;font-size:14px;line-height:1.1;color:#4A585B;cursor:pointer}
.check input{width:20px;height:20px;margin:1px 0 0;accent-color:#233B3F;flex:none}
.fld input,.fld select,.fld textarea{font-family:inherit;font-size:16px;font-weight:300;color:#233B3F;background:#FFFFFF;border:0;border-bottom:1px solid #8A9597;padding:12px 2px;min-height:48px;border-radius:0;outline:none;transition:border-color .2s ease}
.fld textarea{border:1px solid #8A9597;padding:14px;min-height:130px;resize:vertical;line-height:1.1}
.fld textarea:focus{border:1px solid #233B3F;box-shadow:inset 0 0 0 1px #233B3F}
.fld input::placeholder,.fld textarea::placeholder{color:#8A9597}
.chips{display:flex;flex-wrap:wrap;gap:10px;border:0;margin:0;padding:0;min-width:0}
.chip{position:relative;display:inline-flex;cursor:pointer}
.chip input{position:absolute;opacity:0;width:1px;height:1px;margin:0}
.chip span{display:inline-flex;align-items:center;min-height:44px;padding:10px 18px;border:1px solid #8A9597;font-size:15px;font-weight:400;color:#233B3F;transition:background .2s ease,color .2s ease,border-color .2s ease}
.chip:hover span{border-color:#233B3F}
.chip input:checked + span{background:#233B3F;border-color:#233B3F;color:#FFFFFF}
.chip input:focus-visible + span{outline:2px solid #C9431F;outline-offset:2px}
.opt{position:relative;display:flex;cursor:pointer}
.opt input{position:absolute;opacity:0;width:1px;height:1px;margin:0}
.opt .box{flex:1;display:flex;flex-direction:column;gap:6px;padding:20px 22px;border:1px solid #C3CACB;transition:border-color .2s ease,background .2s ease}
.opt:hover .box{border-color:#233B3F}
.opt input:checked + .box{border-color:#233B3F;background:#EEF0F0;box-shadow:inset 3px 0 0 #C9431F}
.opt input:focus-visible + .box{outline:2px solid #C9431F;outline-offset:2px}
legend{padding:0;margin-bottom:12px}
/* ------------------------------------------------------------------
   Aggiunte per la versione online (responsive, menu mobile, giornale)
   ------------------------------------------------------------------ */
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
img{max-width:100%}
section[id],div[id]{scroll-margin-top:12px}
[hidden]{display:none !important}
button,input,select,textarea{font:inherit}

/* Navigazione */
.nav-toggle,.nav-cta-mobile{display:none}
@media (max-width:900px){
  .main-nav{position:relative;flex-wrap:nowrap !important;gap:12px !important}
  .main-nav .nav-cta{margin-left:auto}
  .nav-toggle{display:inline-flex;flex-direction:column;justify-content:center;gap:5px;width:46px;height:46px;padding:0 12px;background:transparent;border:1px solid rgba(255,255,255,.45);cursor:pointer;flex:none}
  .nav-toggle span{display:block;height:1.5px;background:#FFFFFF;transition:transform .25s ease,opacity .25s ease}
  .main-nav.is-open .nav-toggle span:nth-child(1){transform:translateY(6.5px) rotate(45deg)}
  .main-nav.is-open .nav-toggle span:nth-child(2){opacity:0}
  .main-nav.is-open .nav-toggle span:nth-child(3){transform:translateY(-6.5px) rotate(-45deg)}
  .main-nav .nav-links{display:none !important}
  .main-nav.is-open .nav-links{display:flex !important;position:absolute;top:calc(100% - 12px);left:clamp(20px,5vw,64px);right:clamp(20px,5vw,64px);z-index:50;flex-direction:column;align-items:stretch !important;gap:0 !important;padding:8px 24px 24px;background:#142326;border:1px solid rgba(255,255,255,.16);box-shadow:0 30px 60px rgba(0,0,0,.45)}
  .main-nav.is-open .nav-links .navlink{padding:15px 0;border-bottom:1px solid rgba(255,255,255,.12);font-size:17px}
  .nav-cta-mobile{display:inline-flex !important;justify-content:center;margin-top:20px;padding:16px 20px;text-decoration:none;font-size:13px;font-weight:500;letter-spacing:.08em;text-transform:uppercase}
}
@media (max-width:600px){.main-nav .nav-cta{display:none !important}.main-nav .nav-toggle{margin-left:auto}}

/* Blocco "Attività opzionali" */
.span-2{grid-column:auto}
@media (min-width:760px){.span-2{grid-column:span 2}}

/* Giornale sfogliabile */
.book{width:100%;max-width:1152px;display:grid;grid-template-columns:1fr 1fr;perspective:2600px;box-shadow:0 40px 90px rgba(0,0,0,.38);touch-action:pan-y}
.book .pg{position:relative;aspect-ratio:3/4;min-width:0;overflow:hidden}
.pg-head{display:flex;justify-content:space-between;gap:12px;padding-bottom:10px;border-bottom:1px solid #233B3F;font-size:11px;font-weight:500;letter-spacing:.16em;text-transform:uppercase;color:#5A6669}
.book-controls{display:flex;align-items:center;justify-content:center;gap:16px 20px;flex-wrap:wrap}
.book-dots{display:flex;gap:8px;flex-wrap:wrap;justify-content:center}
@media (max-width:720px){
  .book{grid-template-columns:1fr;max-width:460px;box-shadow:0 24px 50px rgba(0,0,0,.35)}
  .book-dots{display:none}
  .pg-head{font-size:10px;letter-spacing:.1em}
}

/* Pagina "Scarica la presentazione" */
.pres-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,480px),1fr))}

/* Pagina "Partecipa" */
.part-grid{grid-template-columns:1fr}
@media (min-width:960px){.part-grid{grid-template-columns:minmax(0,1fr) minmax(0,2fr)}}
@media (max-width:959px){
  .part-aside{order:2;max-width:none !important}
  .part-aside img{max-height:440px}
}

/* Testi lunghi: niente parole che escono dallo schermo */
h1,h2,h3,p,dd,dt,li,a,span{overflow-wrap:break-word}

/* Edizioni passate: griglia per tablet e telefono */
@media (max-width:900px){
  .ed-grid{grid-template-columns:repeat(3,1fr) !important;grid-auto-rows:clamp(150px,30vw,240px) !important;
    grid-template-areas:"a b c" "a f d" "g h d" "e i j" "k l m" !important}
}
@media (max-width:560px){
  .ed-grid{grid-template-columns:repeat(2,1fr) !important;grid-auto-rows:clamp(150px,44vw,230px) !important;gap:8px !important;
    grid-template-areas:"a b" "a f" "c d" "g d" "h e" "h i" "j k" "l m" !important}
}

/* Card dei servizi: niente spazio vuoto su telefono */
@media (max-width:700px){
  #servizi article{min-height:0 !important;padding:28px 24px !important}
}
