/* ==========================================================
   Sito studio medico — style.css
   Design: Scientific Humanism / Stitch bozza
   Responsive: mobile-first, tablet ≥768px, desktop ≥1024px
   Compatibile con hosting PHP statico (nessuna build)
   ========================================================== */
/* Montserrat self-hosted (variabile 100-900, subset latin): nessun CDN esterno */
@font-face{
  font-family:'Montserrat';font-style:normal;font-weight:100 900;font-display:swap;
  src:url('../fonts/montserrat-latin.woff2') format('woff2');
}
:root{
  --bg:#ededed;
  --surface:#ffffff;
  --surface-soft:#f8fafc;
  --ink:#111111;
  --muted:#555555;
  --muted-2:#6b7280;
  --brand:#389db8;
  --brand-hover:#2a829a;
  --brand-border:#8ec5d2;
  --line:#d9d9d9;
  --radius-pill:9999px;
  --radius-card:1rem;
  --max:1340px;
  --font:'Montserrat','Helvetica Neue',Arial,sans-serif;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
section[id]{scroll-margin-top:6rem}
#esito{scroll-margin-top:6rem}
body{
  margin:0;
  font-family:var(--font);
  background:var(--bg);
  color:var(--ink);
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
  line-height:1.6;
}
img{max-width:100%;display:block}
/* i <picture> responsive non devono alterare il layout */
.discipline-bg picture,.hero-media picture,.news-thumb picture,.map picture{display:contents}
a{color:inherit}
.container{width:100%;max-width:var(--max);margin:0 auto;padding-left:max(1.75rem, env(safe-area-inset-left));padding-right:max(1.75rem, env(safe-area-inset-right))}
@media(min-width:640px){.container{padding-left:max(3rem, env(safe-area-inset-left));padding-right:max(3rem, env(safe-area-inset-right))}}

/* ---------- Header ---------- */
.site-header{
  position:sticky;top:0;z-index:50;
  background:color-mix(in srgb, var(--bg) 88%, white 12%);
  backdrop-filter:blur(10px);
  border-bottom:1px solid transparent;
}
.site-header .bar{
  display:flex;align-items:center;justify-content:space-between;
  gap:1rem;padding-top:1.25rem;padding-bottom:.75rem;
}
/* PROVA: header e parte iniziale (fino a CHI SONO esclusa) larghi quanto lo schermo */
.site-header .bar,.hero{max-width:none}
.brand{font-weight:900;letter-spacing:-.02em;font-size:clamp(.85rem,.5rem + 2.2vw,1.25rem);text-decoration:none;white-space:nowrap;min-width:0}
@media(min-width:640px){.brand{font-size:1.5rem}}
.main-nav{display:none}
.main-nav a{
  text-decoration:none;font-weight:700;font-size:.82rem;letter-spacing:.06em;
  padding:.65rem .2rem;position:relative;
}
.main-nav a:hover{color:var(--brand)}
.admin-link{font-size:1.2rem;line-height:1;text-decoration:none}
.admin-link:hover{color:var(--brand)}
.main-nav a.active::after{
  content:"";position:absolute;left:0;right:0;bottom:-2px;height:4px;background:var(--brand);
}
.menu-btn{
  display:inline-flex;align-items:center;justify-content:center;
  padding:.5rem;border:0;background:transparent;cursor:pointer;color:#111;
}
.menu-btn svg{width:26px;height:26px}
.mobile-nav{
  display:none;border-top:1px solid var(--line);
  background:rgba(255,255,255,.93);
  backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);
}
.mobile-nav.open{display:block;position:absolute;top:100%;left:0;right:0;box-shadow:0 12px 24px rgba(0,0,0,.12)}
.mobile-nav a{
  display:block;padding:1rem max(1.75rem, env(safe-area-inset-right)) 1rem max(1.75rem, env(safe-area-inset-left));text-decoration:none;font-weight:700;
  font-size:.85rem;letter-spacing:.06em;border-bottom:1px solid #eee;
}
.mobile-nav a.active{background:#eef7fa;border-left:4px solid var(--brand)}
@media(min-width:900px){
  .main-nav{display:flex;align-items:center;gap:2.25rem}
  .menu-btn,.mobile-nav{display:none}
}

/* ---------- Hero ---------- */
.hero{padding-top:2rem;padding-bottom:3rem;position:relative;overflow:clip;min-height:calc(100vh - 5rem);min-height:calc(100svh - 5rem);display:flex;flex-direction:column;justify-content:center}
.hero-grid{display:grid;grid-template-columns:1fr;gap:1rem;align-items:start}
.hero-kicker{display:block;font-weight:900;text-transform:uppercase;line-height:1;
  font-size:1.875rem;letter-spacing:-.02em;margin-bottom:.35rem}
@media(min-width:640px){.hero-kicker{font-size:2.25rem}}
@media(min-width:1024px){.hero-kicker{font-size:2.5rem}}
.hero-title{
  margin:0;font-weight:900;text-transform:uppercase;
  letter-spacing:-.035em;line-height:.88;
  font-size:3.75rem;
}
@media(min-width:640px){.hero-title{font-size:4.5rem}}
@media(min-width:768px){.hero-title{font-size:6rem}}
@media(min-width:1024px){.hero-title{font-size:6.5rem}}
@media(min-width:1280px){.hero-title{font-size:7rem}}
.hero-sub{margin-top:1.75rem}
.hero-sub h2{
  margin:0;color:var(--brand);font-weight:900;text-transform:uppercase;
  font-size:1.875rem;line-height:1.05;letter-spacing:.02em;
}
@media(min-width:640px){.hero-sub h2{font-size:2.25rem}}
@media(min-width:768px){.hero-sub h2{font-size:3rem}}
.hero-tags{margin:.5rem 0 0;font-weight:700;letter-spacing:.08em;text-transform:uppercase;font-size:clamp(.6rem,.45rem + 1.7vw,.875rem);white-space:nowrap}
.hero{container-type:inline-size}
@supports (font-size:1cqw){
  .hero-tags{font-size:clamp(.55rem,4.2cqw,.875rem)}
  .hero-sub h2{font-size:min(3rem,7cqw)}
}
@media(min-width:1024px){
  @supports (font-size:1cqw){
    .hero-sub h2{font-size:min(3rem,3.8cqw)}
  }
}
@media(min-width:640px){.hero-tags{font-size:1rem;letter-spacing:.14em}}
@media(min-width:768px){.hero-tags{font-size:1.125rem}}
.btn{
  display:inline-block;text-decoration:none;text-transform:uppercase;
  font-weight:800;letter-spacing:.06em;font-size:.85rem;
  padding:.8rem 2.25rem;border-radius:var(--radius-pill);
  background:var(--brand);color:#fff;border:0;cursor:pointer;
  transition:transform .15s ease, background .2s ease;
}
.btn:hover{background:var(--brand-hover);transform:translateY(-1px)}
.btn.compact{padding:.35rem .8rem;font-size:.72rem}
.copie-azioni{display:inline-flex;gap:.75rem;align-items:center;margin-left:.75rem;vertical-align:middle}
.copie-riga{margin-bottom:.6rem}
.hero-cta{margin-top:2rem}
.hero-media{display:flex;justify-content:center;pointer-events:none}
.hero-media img{
  width:min(92vw,560px);height:auto;object-fit:contain;
  transform:scale(1.06);transform-origin:top center;
}
@media(min-width:1024px){
  .hero{padding-top:3rem;padding-bottom:4rem}
  .hero-grid{grid-template-columns:1fr 1fr;min-height:580px}
  .hero-grid>div:first-child{align-self:center;display:grid;justify-content:center;align-content:center;text-align:left;justify-items:start}
  .hero-media{justify-content:flex-end;align-items:start}
  .hero-media img{width:min(38vw,720px);transform:scale(1.05);transform-origin:top right}
}

/* ---------- Sections ---------- */
.section{padding-block:2.5rem}
.section-head{margin-bottom:1.25rem}
.section-title{
  margin:0;display:inline-block;text-transform:uppercase;font-weight:900;
  letter-spacing:-.02em;line-height:1;font-size:2.25rem;
}
@media(min-width:640px){.section-title{font-size:3rem}}
@media(min-width:768px){.section-title{font-size:3.75rem}}
.accent{width:3.5rem;height:5px;background:var(--brand);margin-top:.35rem}
.divider{border:0;border-top:1px solid color-mix(in srgb, var(--brand-border) 70%, #999 30%);margin:1.25rem 0 2rem}

/* Chi sono */
.about-grid{display:grid;grid-template-columns:1fr;gap:2rem}
.about-grid h3{margin:0 0 .9rem;text-transform:uppercase;font-weight:800;line-height:1.25;font-size:1.15rem}
.about-grid p{margin:.4rem 0;color:#374151;font-size:.88rem;font-weight:500}
@media(min-width:768px){.about-grid{grid-template-columns:1fr 1fr;gap:2.5rem}}
@media(min-width:1100px){.about-grid{grid-template-columns:1fr 1fr 1fr}}

/* Discipline: replica fedele del modello Stitch.
   Immagine dietro a tutto schermo (100vw, altezza naturale, centrata):
   sempre attaccata ai bordi sinistro/destro, ritaglio verticale su desktop largo.
   Testi agli estremi (alto-sx / basso-dx) con ampi stacchi: mai sovrapposti. */
.discipline{position:relative;overflow:hidden;padding-block:3rem}
.discipline-bg{
  position:absolute;inset:0;z-index:0;pointer-events:none;user-select:none;
  display:flex;align-items:center;justify-content:center;
  width:100vw;left:50%;transform:translateX(-50%);
  overflow:hidden;
}
.discipline-bg img{width:100vw;min-width:100vw;height:auto;display:block;opacity:.95}
.discipline-inner{position:relative;z-index:1;display:flex;flex-direction:column;justify-content:space-between;min-height:850px}
.discipline-card{max-width:28rem}
@media(min-width:768px){.discipline-card{max-width:32rem}}
.discipline-card.align-right{align-self:flex-end}
.block-top{margin-bottom:6rem;padding-top:1rem}
.block-bottom{margin-top:15rem;padding-bottom:2rem}
.discipline-card h2{margin:0;text-transform:uppercase;font-weight:900;font-size:2.25rem;line-height:1;overflow-wrap:break-word;hyphens:manual}
@media(min-width:640px){.discipline-card h2{font-size:3rem}}
@media(min-width:768px){.discipline-card h2{font-size:3.75rem}}
.discipline-card .sub{font-weight:800;text-transform:uppercase;font-size:.9rem;margin:.5rem 0}
.discipline-card p{font-size:.86rem;color:#1f2937;font-weight:500;margin:1em 0}
.discipline-card ul{margin:.5rem 0;padding-left:1.1rem;font-size:.86rem;color:#1f2937;font-weight:500}
.discipline-card li{margin:.15rem 0}
.discipline-card .btn.compact{margin:.2rem .25rem .2rem 0}
@media(min-width:1024px){
  .discipline{padding-block:5rem}
  .discipline-inner{min-height:960px}
  .block-top{margin-bottom:9rem}
  .block-bottom{margin-top:10rem}
}
/* La card destra finirebbe sopra le dita (gradini calibrati con l'utente,
   testi reali). Avvicina senza stringere: card a 31rem (parole intere) +
   box2 appena sotto dita3 in 560–867 (22rem; sotto ~552 la card è già
   fluida da sola), 19rem in 868–1020, 12rem in 1024–1090.
   Da 1090 base: nessun salto di larghezza a 1150. */
@media(min-width:560px) and (max-width:1023px){.discipline-card{max-width:31rem}}
@media(min-width:560px) and (max-width:867px){.block-bottom{margin-top:22rem}}
@media(min-width:868px) and (max-width:1020px){.block-bottom{margin-top:19rem}}
@media(min-width:1024px) and (max-width:1090px){.block-bottom{margin-top:12rem}}
/* Titoli lunghi (es. CHETOGENICA, 471px a 60px): a 48px stanno nei 448px della card */
@media(min-width:768px) and (max-width:1023px){.discipline-card h2{font-size:3rem}}

/* Sedi */
.locations{display:flex;flex-direction:column;gap:2.75rem}
.location{display:flex;flex-direction:column;gap:1.25rem}
.map{
  width:12rem;height:8rem;border-radius:.25rem;flex-shrink:0;overflow:hidden;position:relative;
  background:#e8f1ec;border:1px solid #d6e2db;
}
.map svg{width:100%;height:100%;display:block}
.map img{width:100%;height:100%;object-fit:cover;display:block}
a.map{display:block;color:inherit;text-decoration:none}
a.map-link{transition:transform .15s ease, box-shadow .2s ease}
a.map-link:hover{transform:scale(1.02);box-shadow:0 6px 18px rgba(0,0,0,.15)}
.map-badge{
  position:absolute;inset:0;display:flex;align-items:center;justify-content:center;pointer-events:none;
}
.map-badge span{
  display:inline-flex;align-items:center;gap:.35rem;background:rgba(255,255,255,.95);
  padding:.2rem .5rem;border-radius:.4rem;font-size:.58rem;font-weight:800;border:1px solid #eee;
}
.dot{width:.5rem;height:.5rem;border-radius:50%;background:#ef4444;display:inline-block}
.location-body{flex:1;width:100%}
.location-name{border-bottom:1px solid color-mix(in srgb, var(--brand-border) 70%, #999 30%);padding-bottom:.4rem;margin-bottom:.8rem}
.location-name h3{margin:0;text-transform:uppercase;font-weight:800;font-size:1.05rem}
.location-meta{display:flex;flex-direction:column;gap:1rem}
.location-meta p{margin:.15rem 0;font-size:.83rem;color:#374151;font-weight:500}
@media(min-width:768px){
  .location{flex-direction:row;align-items:center;gap:2.5rem}
  .map{width:14rem;height:9rem}
  .location-meta{flex-direction:row;align-items:center;justify-content:space-between;gap:1.5rem}
}

/* Area riservata banner */
.private{background:var(--brand);color:#fff;text-align:center;padding:3.5rem max(1.75rem, env(safe-area-inset-right)) 3.5rem max(1.75rem, env(safe-area-inset-left));margin:2rem 0}
.private h2{margin:0 0 1.75rem;text-transform:uppercase;font-weight:800;font-size:1.875rem}
@media(min-width:640px){.private h2{font-size:2.25rem}}
@media(min-width:768px){.private h2{font-size:3rem}}
.btn-light{background:#fff;color:var(--brand);padding:.65rem 3rem}
.btn-light:hover{background:#f1f5f9}

/* News */
.news-grid{display:grid;grid-template-columns:1fr;gap:2.25rem;margin-bottom:2.5rem}
.news-card{display:flex;gap:1.25rem;align-items:start;text-decoration:none}
.news-thumb{width:7rem;height:7rem;flex-shrink:0;background:#e5e7eb;overflow:hidden}
.news-thumb img{width:100%;height:100%;object-fit:cover}
.news-card[hidden]{display:none}
.news-card h3{margin:.2rem 0 .5rem;text-transform:uppercase;font-size:.9rem;line-height:1.3;font-weight:800}
.news-card p{margin:.15rem 0;font-size:.78rem;color:#4b5563;font-weight:500}
@media(min-width:768px){.news-grid{grid-template-columns:1fr 1fr}}
@media(min-width:1100px){.news-grid{grid-template-columns:1fr 1fr 
1fr}.news-thumb{width:8rem;height:8rem}}
.blocchi-grid{display:grid;grid-template-columns:1fr;gap:2rem}
.blocco-card h3{margin:0 0 .5rem;text-transform:uppercase;font-weight:800;line-height:1.25;font-size:1.15rem}
.blocco-card p{margin:.4rem 0;color:#374151;font-size:.88rem;font-weight:500}
.blocco-card ul{list-style:none;margin:.5rem 0;padding-left:0}
.blocco-card li{position:relative;padding-left:1.7rem;margin:.35rem 0;color:#374151;font-size:.88rem;font-weight:500}
.blocco-card li::before{content:"";position:absolute;left:0;top:.15em;width:1.1em;height:1.1em;background:var(--brand);-webkit-mask:url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%20512%20512%27%3E%3Cpath%20d%3D%27M504%20256c0%20136.967-111.033%20248-248%20248S8%20392.967%208%20256%20119.033%208%20256%208s248%20111.033%20248%20248zM227.314%20387.314l184-184c6.248-6.248%206.248-16.379%200-22.627l-22.627-22.627c-6.248-6.249-16.379-6.249-22.628%200L216%20308.118l-70.059-70.059c-6.248-6.248-16.379-6.248-22.628%200l-22.627%2022.627c-6.248%206.248-6.248%2016.379%200%2022.627l104%20104c6.249%206.249%2016.379%206.249%2022.628.001z%27%2F%3E%3C%2Fsvg%3E") center/contain no-repeat;mask:url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%20512%20512%27%3E%3Cpath%20d%3D%27M504%20256c0%20136.967-111.033%20248-248%20248S8%20392.967%208%20256%20119.033%208%20256%208s248%20111.033%20248%20248zM227.314%20387.314l184-184c6.248-6.248%206.248-16.379%200-22.627l-22.627-22.627c-6.248-6.249-16.379-6.249-22.628%200L216%20308.118l-70.059-70.059c-6.248-6.248-16.379-6.248-22.628%200l-22.627%2022.627c-6.248%206.248-6.248%2016.379%200%2022.627l104%20104c6.249%206.249%2016.379%206.249%2022.628.001z%27%2F%3E%3C%2Fsvg%3E") center/contain no-repeat}
.blocco-img{overflow:hidden;border-radius:.5rem;margin-bottom:1rem}
.blocco-img img,.blocco-img svg{display:block;width:100%;height:auto;aspect-ratio:8/5;object-fit:cover}
@media(min-width:768px){.blocchi-grid{grid-template-columns:1fr 1fr}}
@media(min-width:1100px){.blocchi-grid{grid-template-columns:1fr 1fr 1fr}}

/* Footer */
.footer{border-top:1px solid rgba(0,0,0,.14);padding:2.5rem 0 2rem;margin-top:2rem}
.footer-grid{display:grid;grid-template-columns:1fr;gap:2rem;padding-bottom:1.75rem;border-bottom:1px solid rgba(0,0,0,.14)}
.footer h4{margin:0 0 .5rem;text-transform:uppercase;font-size:.8rem;font-weight:800;letter-spacing:.05em}
.footer p,.footer li{font-size:.76rem;color:#4b5563}
.footer ul{list-style:none;margin:0;padding:0;display:grid;gap:.35rem}
.footer a:hover{color:var(--brand)}
.footer-bottom{display:flex;flex-direction:column;gap:.5rem;align-items:center;justify-content:space-between;padding-top:1.25rem;font-size:.72rem;color:#6b7280}
@media(min-width:768px){
  .footer-grid{grid-template-columns:5fr 4fr 3fr}
  .footer-bottom{flex-direction:row}
  .legal{text-align:right}
}

/* ---------- Prenota / Contatti ---------- */
.page-hero{padding:2.5rem 0 1rem}
.page-hero p{color:#374151;max-width:46rem}
.contact-grid{display:grid;grid-template-columns:1fr;gap:1.25rem;margin:1.5rem 0 2.5rem}
.contact-card{background:#fff;border:1px solid #e2e8f0;border-radius:var(--radius-card);padding:1.5rem}
.contact-card h3{margin:0 0 .5rem;text-transform:uppercase;font-size:1rem}
.contact-card p{margin:.25rem 0;font-size:.9rem;color:#374151}
.form-card{background:#fff;border:1px solid #e2e8f0;border-radius:var(--radius-card);padding:1.5rem}
.form-grid{display:grid;grid-template-columns:1fr;gap:1rem}
.field label{display:block;font-size:.75rem;font-weight:800;text-transform:uppercase;letter-spacing:.05em;margin-bottom:.4rem}
.field input,.field textarea,.field select{
  width:100%;border:1px solid #cbd5e1;border-radius:.6rem;padding:.7rem .85rem;
  font:inherit;font-size:.9rem;background:#fff;
}
.field textarea{min-height:140px;resize:vertical}
.privacy{display:flex;gap:.6rem;align-items:start;font-size:.78rem;color:#4b5563}
@media(min-width:1024px){
  .page-hero .unafrase{white-space:nowrap}
}
@media(min-width:900px){
  .contact-grid{grid-template-columns:1fr 1.4fr;align-items:start}
  .form-grid.two{grid-template-columns:1fr 1fr}
  .form-grid.two-13{grid-template-columns:1fr 3fr}
  .form-grid.split{gap:1.5rem}
  .form-grid.split>div+div{border-left:1px solid #e2e8f0;padding-left:1.5rem}
}
.alert{background:#fef3c7;border:1px solid #f59e0b;color:#92400e;padding:.8rem 1rem;border-radius:.6rem;font-size:.85rem}
.skip{position:absolute;left:-9999px}
.skip:focus{left:1rem;top:1rem;background:#fff;padding:.5rem 1rem;z-index:99}
/* ---------- Bottone WhatsApp flottante ---------- */
.wa-float{position:fixed;right:max(1.25rem, env(safe-area-inset-right));bottom:max(1.25rem, env(safe-area-inset-bottom));z-index:60;width:3.5rem;height:3.5rem;border-radius:50%;background:#25D366;display:flex;align-items:center;justify-content:center;box-shadow:0 4px 14px rgba(0,0,0,.25);transition:transform .15s ease}
.wa-float:hover{transform:scale(1.08)}
.wa-float svg{width:2rem;height:2rem}
/* ---------- Pannello amministrazione (aggiuntivo, non tocca il layout sito) ---------- */
.admin-tabs{display:flex;flex-wrap:wrap;gap:1.25rem 2rem;margin:1.5rem 0;border-bottom:1px solid var(--line)}
.admin-tabs a{text-decoration:none;font-weight:700;font-size:.82rem;letter-spacing:.06em;text-transform:uppercase;padding:.65rem .2rem;position:relative}
.admin-tabs a:hover{color:var(--brand)}
.admin-tabs a.active::after{content:"";position:absolute;left:0;right:0;bottom:-2px;height:4px;background:var(--brand)}
.admin-ok{background:#dcfce7;border:1px solid #16a34a;color:#14532d;padding:.8rem 1rem;border-radius:.6rem;font-size:.85rem;margin-bottom:1rem}
.hint{font-size:.78rem;color:#4b5563}
.btn.danger{background:#ba1a1a}
.btn.danger:hover{background:#93000a}
.badge-esci{display:inline-block;background:var(--brand);color:#fff;font-weight:700;font-size:.72rem;letter-spacing:.05em;text-transform:uppercase;padding:.3rem .9rem;border-radius:9999px;text-decoration:none}
.badge-esci:hover{background:var(--brand-hover);color:#fff}
/* ---------- News pannello: card collassabili ---------- */
.news-top{display:flex;gap:1rem;align-items:flex-start}
.news-collapse{flex:1;min-width:0}
.news-collapse summary{list-style:none;display:flex;align-items:center;gap:1rem;cursor:pointer}
.news-collapse summary::-webkit-details-marker{display:none}
.news-head-testo{min-width:0;flex:1}
.news-head-testo strong{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.news-sintesi{display:block;font-size:.76rem;color:#6b7280;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.badge{display:inline-block;font-size:.68rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;padding:.15rem .6rem;border-radius:9999px;background:#eef2f5;color:#374151;margin:.2rem .35rem 0 0}
.badge.on{background:#dcfce7;color:#14532d}
.badge.off{background:#fee2e2;color:#7f1d1d}
.news-caret{color:var(--brand);transition:transform .15s ease;flex-shrink:0}
details[open] .news-caret{transform:rotate(180deg)}
.news-toggle{padding-top:.6rem;flex-shrink:0}
.badge-btn{border:0;cursor:pointer;font-family:inherit}
.news-body{margin-top:1rem;border-top:1px solid #eee;padding-top:1rem}
/* ---------- Mediateca pannello ---------- */
.media-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:.75rem;margin:.75rem 0}
.media-scelta{display:block;border:2px solid #e2e8f0;border-radius:.6rem;padding:.4rem;cursor:pointer;text-align:center;background:#fff}
.media-scelta:has(input:checked){border-color:var(--brand);background:#eef7fa}
.media-scelta img{width:100%;height:80px;object-fit:cover;border-radius:.35rem}
.media-scelta small{display:block;font-size:.68rem;color:#4b5563;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.media-scelta input{margin-top:.3rem;accent-color:var(--brand)}
.crop-nota{font-size:.76rem;color:var(--brand);min-height:1.2em}
#crop-modal{position:fixed;inset:0;z-index:100;background:rgba(0,0,0,.65);display:flex;align-items:center;justify-content:center;padding:1rem}
#crop-modal[hidden]{display:none}
.crop-box{background:#fff;border-radius:.75rem;padding:1.25rem;max-width:640px;width:100%;max-height:90vh;overflow:auto}
.crop-box img{max-width:100%;max-height:55vh;display:block;margin:0 auto}
.crop-box .cropper-container{max-height:55vh}
.crop-azioni{display:flex;gap:.75rem;flex-wrap:wrap;margin-top:1rem}
/* ---------- Pagina dettaglio news ---------- */
.news-articolo{max-width:46rem;padding-block:2.5rem}
.news-articolo .section-title{font-size:clamp(1.8rem,5vw,2.8rem)}
.news-figura{margin:1.75rem 0}
.news-figura img{width:100%;height:auto;border-radius:.5rem}
.news-testo{font-size:.95rem;color:#1f2937}
.news-testo p{margin:.8rem 0}
