/* =============================================================================
   oramail.it - CSS pubblico del sito  (direzione "Lancetta", v1.1)
   -----------------------------------------------------------------------------
   Vocabolario: le classi om-* di 04-contenuti/pagine (BEM in italiano: om-page,
   om-intro, om-hero, om-blocco, om-piano, om-faq, om-cta, om-tabella ...) piu' il
   guscio om-header / om-nav / om-footer / om-cookie definito da questo kit.

   Dove si usa (stesso file in entrambi i casi):
   1) sito statico generato da build-pages.py -> dist/assets/site.css  (<body class="om-site">)
   2) dentro MailWizz 3.0.6 -> frontend/assets/css/style-custom.css, caricato dal core
      DOPO gli altri CSS del frontend (apps/frontend/components/init/FrontendSystemInit.php:171-175).
      Il body e' <body class="... app-frontend ctrl-site|ctrl-pages ...">
      (FrontendSystemInit.php:168; BaseController.php:435).

   Perche' un CSS globale e non <style> / style="" dentro le Pagine: HTMLPurifier di MailWizz
   elimina <style> e <script> e scarta le proprieta' CSS che non conosce (grid, gap, var(),
   sticky, gradient). Quindi: SOLO classi om-* nel markup, tutto lo stile qui (vedi tecnica.md).
   Nessun font, script o immagine esterni. Font: fonts.css (generato se i file esistono).
   Token = 03-brand/design-tokens.css (valori non modificati).
   ========================================================================== */

/* ---------- 1. Token ---------- */
:root{
  --brand-navy-900:#0B1F4B; --brand-blue-700:#173A8C; --brand-blue-600:#1F4FD1;
  --brand-blue-700-hover:#1A44B8; --brand-blue-100:#E6ECFF; --brand-blue-50:#F5F8FF;
  --brand-amber-500:#FFB020; --brand-amber-300:#FFD27A;
  --brand-ink:#0F172A; --brand-slate-600:#475569; --brand-slate-500:#5B6B85;
  --brand-border-strong:#6B7A94; --brand-border:#D5DEEE; --brand-white:#FFFFFF; --brand-on-dark:#C8D6FF;
  --brand-success:#0E6A47; --brand-success-bg:#E4F5EC; --brand-warning:#7A4B00; --brand-warning-bg:#FFF3D6;
  --brand-danger:#B42318; --brand-danger-bg:#FDECEA; --brand-info:#0B5CAD; --brand-info-bg:#E6F1FB;
  --brand-font-heading:"Manrope","Segoe UI",Arial,sans-serif;
  --brand-font-body:"Inter","Segoe UI",Arial,sans-serif;
  --brand-radius-sm:6px; --brand-radius-md:10px; --brand-radius-lg:16px; --brand-radius-pill:999px;
  --brand-shadow-sm:0 1px 2px rgba(11,31,75,.08); --brand-shadow-md:0 4px 12px rgba(11,31,75,.12);
  --brand-shadow-lg:0 12px 32px rgba(11,31,75,.16);

  /* Semantici - tema chiaro */
  --om-bg:#FFFFFF; --om-bg-alt:var(--brand-blue-50); --om-surface:#FFFFFF;
  --om-text:var(--brand-ink); --om-text-muted:var(--brand-slate-600); --om-heading:var(--brand-navy-900);
  --om-link:var(--brand-blue-600); --om-link-hover:var(--brand-blue-700-hover);
  --om-line:var(--brand-border);               /* solo separatori decorativi */
  --om-line-strong:var(--brand-border-strong); /* bordi di componenti: >=3:1 */
  --om-focus:var(--brand-blue-600); --om-focus-on-dark:var(--brand-amber-500);
  --om-btn-bg:var(--brand-blue-600); --om-btn-fg:#FFFFFF; --om-btn-hover:var(--brand-blue-700-hover);
  --om-dark-bg:var(--brand-navy-900); --om-dark-fg:#FFFFFF; --om-dark-muted:var(--brand-on-dark);
  --om-footer-bg:var(--brand-navy-900);
  --om-check:var(--brand-success);
  --om-container:1120px;
  color-scheme:light;
}

/* Tema scuro: solo su richiesta del sistema. I loghi cambiano variante (.om-logo--su-chiaro / --su-scuro). */
@media (prefers-color-scheme:dark){
  :root{
    --om-bg:#081838; --om-bg-alt:#0B1F4B; --om-surface:#102A63;
    --om-text:#E6ECFF; --om-text-muted:#C8D6FF; --om-heading:#FFFFFF;
    --om-link:#FFD27A; --om-link-hover:#FFFFFF;
    --om-line:#2A4380; --om-line-strong:#6F86B8;
    --om-focus:#FFB020;
    --om-btn-bg:#FFB020; --om-btn-fg:#0B1F4B; --om-btn-hover:#FFD27A;
    --om-dark-bg:#0B1F4B; --om-footer-bg:#050F26;
    --om-check:#FFD27A;
    color-scheme:dark;
  }
}

/* ---------- 2. Base: solo pagine del sito (non i moduli lista/iscrizione di MailWizz) ---------- */
:is(body.om-site, body.app-frontend.ctrl-site, body.app-frontend.ctrl-pages){
  margin:0; background:var(--om-bg); color:var(--om-text);
  font-family:var(--brand-font-body); font-size:1rem; line-height:1.6;
  -webkit-text-size-adjust:100%; text-rendering:optimizeLegibility;
}
:is(body.om-site, body.app-frontend.ctrl-site, body.app-frontend.ctrl-pages) .content-wrapper{background:transparent;padding:0}
:is(body.om-site, body.app-frontend.ctrl-site, body.app-frontend.ctrl-pages) :is(h1,h2,h3,h4){
  font-family:var(--brand-font-heading); color:var(--om-heading); line-height:1.2; margin:0 0 .5em; font-weight:700; padding:0}
:is(body.om-site, body.app-frontend.ctrl-site, body.app-frontend.ctrl-pages) p{margin:0 0 1em}
:is(body.om-site, body.app-frontend.ctrl-site, body.app-frontend.ctrl-pages) :is(ul,ol){margin:0 0 1em}
:is(body.om-site, body.app-frontend.ctrl-site, body.app-frontend.ctrl-pages) img{max-width:100%;height:auto}
:is(body.om-site, body.app-frontend.ctrl-site, body.app-frontend.ctrl-pages) a{color:var(--om-link);text-underline-offset:.15em}
:is(body.om-site, body.app-frontend.ctrl-site, body.app-frontend.ctrl-pages) a:hover{color:var(--om-link-hover)}

/* Pagine MailWizz: il titolo h1.page-heading e gli <hr> (frontend/views/pages/view.php:40-45) li
   sostituisce l'h1 del corpo pagina (ne deve esistere uno solo). Contenitore a tutta larghezza,
   come fa il core per la home (frontend/assets/css/style.css:18-30). */
body.app-frontend.ctrl-pages.act-view h1.page-heading,
body.app-frontend.ctrl-pages.act-view .content-wrapper hr{display:none}
body.app-frontend.ctrl-pages.act-view .row-large{margin-left:0!important;margin-right:0!important}
body.app-frontend.ctrl-pages.act-view .container-fluid-large{width:100%!important;left:0!important;padding-left:0;padding-right:0}
body.app-frontend.ctrl-pages.act-view .content-wrapper .container-fluid{padding:0}
body.app-frontend.ctrl-pages.act-view #notify-container{margin:0 auto;max-width:var(--om-container);padding:0 16px}

/* Focus visibile (WCAG 2.4.7 / 2.4.11). !important perche' skin-blue.css toglie l'outline sui .btn
   (assets/css/skin-blue.css:1431 e altri). */
:is(body.om-site, body.app-frontend.ctrl-site, body.app-frontend.ctrl-pages) :focus-visible{
  outline:3px solid var(--om-focus)!important; outline-offset:2px!important}
:is(.om-hero,.om-cta,.om-footer,.om-cookie) :focus-visible{outline-color:var(--om-focus-on-dark)!important}

:root{scroll-padding-top:16px;scroll-padding-bottom:140px}  /* il banner cookie fisso non deve coprire l'elemento a fuoco (WCAG 2.4.11) */
.om-skip-link{position:absolute;left:8px;top:-80px;z-index:2000;background:var(--brand-navy-900);color:#fff!important;
  padding:12px 16px;border-radius:var(--brand-radius-sm);font-weight:600;text-decoration:none}
.om-skip-link:focus{top:8px}
.om-sr-only{position:absolute!important;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}

/* ---------- 3. Pagina a bande: ogni <header>/<section> figlio di .om-page e' una banda a
   tutta larghezza con il contenuto centrato (max 1120 px) senza bisogno di wrapper nel markup ---------- */
.om-page{display:block;margin:0;padding:0}
.om-page>header,.om-page>section{
  box-sizing:border-box;padding-top:40px;padding-bottom:40px;
  padding-left:max(16px,calc((100% - var(--om-container))/2));
  padding-right:max(16px,calc((100% - var(--om-container))/2));
}
@media (min-width:860px){.om-page>header,.om-page>section{padding-top:64px;padding-bottom:64px}}
.om-page>section:nth-of-type(even):not(.om-cta):not(.om-hero){background:var(--om-bg-alt)}

.om-sezione__titolo,.om-blocco__titolo,.om-caso__titolo{font-size:1.5rem;margin:0 0 .6em}
@media (min-width:860px){.om-sezione__titolo,.om-blocco__titolo,.om-caso__titolo{font-size:2rem}}
.om-sezione__testo,.om-blocco__testo,.om-caso__testo{max-width:72ch}
.om-link{color:var(--om-link);font-weight:600;text-decoration:underline}
:is(.om-nota,.om-blocco__nota,.om-caso__nota,.om-hero__nota,.om-cta__nota,.om-intro__nota,.om-piano__periodo){font-size:.9375rem;color:var(--om-text-muted)}
:is(.om-blocco__nota,.om-caso__nota){max-width:72ch;margin-top:1em}

/* Liste con segno di spunta (ul); le liste ordinate (ol) restano numerate */
:is(ul.om-blocco__lista,ul.om-caso__lista,ul.om-funzioni__lista,ul.om-piano__lista,ul.om-contatti__lista){list-style:none;padding:0}
:is(ul.om-blocco__lista,ul.om-caso__lista,ul.om-funzioni__lista,ul.om-piano__lista) li{position:relative;margin:0 0 .6em;padding-left:1.8em}
:is(ul.om-blocco__lista,ul.om-caso__lista,ul.om-funzioni__lista,ul.om-piano__lista) li::before{
  content:"";position:absolute;left:.15em;top:.5em;width:.85em;height:.45em;
  border-left:3px solid var(--om-check);border-bottom:3px solid var(--om-check);transform:rotate(-45deg)}
ol.om-blocco__lista{padding-left:1.5em;max-width:72ch}
ol.om-blocco__lista li{margin:0 0 .5em;padding-left:.3em}
ul.om-blocco__lista,ul.om-caso__lista,ul.om-funzioni__lista{max-width:72ch}
.om-blocco--limiti{background:var(--brand-warning-bg)!important;color:var(--brand-ink)}
.om-blocco--limiti :is(h2,p,li,a){color:var(--brand-ink)}
.om-blocco--limiti a{color:var(--brand-blue-700)}
.om-blocco--limiti ul.om-blocco__lista li::before{
  border:0;width:.7em;height:.15em;background:var(--brand-warning);transform:none;top:.8em;left:.2em}
.om-caso__sottotitolo{font-size:1.125rem;margin:1.25em 0 .5em}

/* ---------- 4. Pulsanti (area minima 44x44) ---------- */
.om-btn,a.om-btn{
  display:inline-flex;align-items:center;justify-content:center;box-sizing:border-box;
  min-height:44px;min-width:44px;padding:10px 22px;border:2px solid transparent;border-radius:var(--brand-radius-md);
  font:600 1rem/1.25 var(--brand-font-body);text-decoration:none;text-align:center;cursor:pointer;
  transition:background-color .15s ease,border-color .15s ease,color .15s ease;
}
/* primario: su chiaro blu pieno; su scuro ambra con testo navy */
.om-btn--primario,a.om-btn--primario{background:var(--om-btn-bg);color:var(--om-btn-fg)!important}
.om-btn--primario:hover,a.om-btn--primario:hover{background:var(--om-btn-hover);color:var(--om-btn-fg)!important}
.om-hero .om-btn--primario,.om-cta .om-btn--primario,.om-cookie .om-btn--primario{background:var(--brand-amber-500);color:var(--brand-navy-900)!important}
.om-hero .om-btn--primario:hover,.om-cta .om-btn--primario:hover,.om-cookie .om-btn--primario:hover{background:var(--brand-amber-300)}
/* secondario: contorno */
.om-btn--secondario,a.om-btn--secondario{background:transparent;color:var(--om-link)!important;border-color:var(--om-link)}
.om-btn--secondario:hover,a.om-btn--secondario:hover{background:var(--brand-blue-100);color:var(--brand-blue-700)!important}
.om-hero .om-btn--secondario,.om-cta .om-btn--secondario,.om-cookie .om-btn--secondario{color:#fff!important;border-color:#fff}
.om-hero .om-btn--secondario:hover,.om-cta .om-btn--secondario:hover,.om-cookie .om-btn--secondario:hover{background:rgba(255,255,255,.14);color:#fff!important}
@media (prefers-color-scheme:dark){.om-btn--secondario:hover,a.om-btn--secondario:hover{background:rgba(255,255,255,.1);color:#fff!important}}
.om-piano .om-btn{width:100%}

/* ---------- 5. Header e menu (guscio: layout.html e header-custom.php) ---------- */
.om-header{background:var(--om-bg);border-bottom:1px solid var(--om-line);position:relative;z-index:50}
.om-header__inner{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:4px 16px;
  max-width:var(--om-container);margin:0 auto;padding:10px 16px;box-sizing:border-box}
.om-brand{display:inline-flex;align-items:center;min-height:44px;text-decoration:none}
.om-logo{display:block;height:36px;width:auto}
.om-logo--su-scuro{display:none}
@media (prefers-color-scheme:dark){.om-logo--su-chiaro{display:none}.om-logo--su-scuro{display:block}}
.om-nav{flex:1 1 100%;order:3}
.om-nav__list{display:flex;flex-wrap:wrap;gap:0 4px;list-style:none;margin:0;padding:0}
.om-nav__list li{margin:0;padding:0;display:block;border:0}
.om-nav__link,a.om-nav__link{display:inline-flex;align-items:center;min-height:44px;padding:8px 12px;border-radius:var(--brand-radius-sm);
  color:var(--om-heading)!important;font-weight:500;text-decoration:none}
.om-nav__link:hover,a.om-nav__link:hover{background:var(--om-bg-alt);color:var(--om-link)!important}
.om-nav__link[aria-current="page"]{font-weight:700;box-shadow:inset 0 -3px 0 var(--om-link)}
.om-header__azioni{display:flex;align-items:center;flex-wrap:wrap;gap:8px;margin-left:auto}
.om-nav-toggle{display:none;min-height:44px;min-width:44px;padding:8px 14px;border:2px solid var(--om-line-strong);border-radius:var(--brand-radius-md);
  background:transparent;color:var(--om-heading);font:600 1rem var(--brand-font-body);cursor:pointer}
/* con JS e schermo stretto il menu si apre/chiude col pulsante; senza JS e' sempre visibile */
.om-js .om-nav-toggle{display:inline-flex;align-items:center}
.om-js .om-nav[data-open="false"]{display:none}
@media (min-width:900px){
  .om-nav{flex:1 1 auto;order:0;margin-left:16px}
  .om-js .om-nav-toggle{display:none}
  .om-js .om-nav[data-open="false"]{display:block}
}

/* ---------- 6. Intro di pagina ---------- */
.om-intro{background:var(--om-bg-alt);border-bottom:1px solid var(--om-line)}
.om-intro__titolo{font-size:2rem;font-weight:800;margin:0 0 .4em;max-width:22ch}
@media (min-width:860px){.om-intro__titolo{font-size:2.5rem}}
.om-intro__testo{font-size:1.125rem;max-width:62ch;color:var(--om-text-muted);margin:0 0 1em}
.om-intro__testo:last-child{margin-bottom:0}
.om-periodo{display:flex;flex-wrap:wrap;gap:8px;margin-top:20px}
.om-periodo__voce,a.om-periodo__voce{display:inline-flex;align-items:center;min-height:44px;padding:8px 18px;border:2px solid var(--om-line-strong);border-radius:var(--brand-radius-pill);
  color:var(--om-heading);font-weight:600;text-decoration:none;background:var(--om-surface)}
.om-periodo__voce:hover,a.om-periodo__voce:hover{border-color:var(--om-link);color:var(--om-link)}

/* ---------- 7. Hero (home) ---------- */
.om-hero{background:var(--om-dark-bg)!important;color:var(--om-dark-fg);display:grid;gap:32px;align-items:center}
@media (min-width:960px){.om-hero{grid-template-columns:1.1fr .9fr;gap:56px}}
.om-page>.om-hero{padding-top:48px;padding-bottom:56px}
@media (min-width:860px){.om-page>.om-hero{padding-top:88px;padding-bottom:96px}}
.om-hero>*{min-width:0}
.om-hero__sopratitolo{margin:0 0 12px;font:600 .875rem/1.4 var(--brand-font-body);letter-spacing:.06em;text-transform:uppercase;color:var(--brand-amber-300)}
.om-hero__titolo{font-size:2.25rem;font-weight:800;color:#fff!important;margin:0 0 16px}
@media (min-width:860px){.om-hero__titolo{font-size:3rem}}
.om-hero__sottotitolo{font-size:1.1875rem;color:var(--om-dark-muted);max-width:56ch;margin:0 0 24px}
.om-hero__azioni{display:flex;flex-wrap:wrap;gap:12px;margin:0}
.om-hero__nota{margin:16px 0 0;color:var(--om-dark-muted)}
.om-hero__figura{margin:0}
.om-hero__img{display:block;width:100%;height:auto;border-radius:var(--brand-radius-lg);background:#102A63}
.om-hero a:not(.om-btn){color:var(--brand-amber-300)}

/* ---------- 8. Blocchi di contenuto ---------- */
.om-benefici__lista,.om-passi__lista{display:grid;gap:20px;grid-template-columns:1fr;list-style:none;margin:0;padding:0}
@media (min-width:760px){.om-benefici__lista,.om-passi__lista{grid-template-columns:repeat(3,1fr)}}
.om-beneficio,.om-passo{background:var(--om-surface);border:1px solid var(--om-line);border-radius:var(--brand-radius-lg);padding:24px;box-sizing:border-box;box-shadow:var(--brand-shadow-sm)}
.om-beneficio__titolo,.om-passo__titolo{font-size:1.25rem;margin:0 0 8px}
.om-beneficio__testo,.om-passo__testo{margin:0;color:var(--om-text-muted)}
.om-passi__lista{counter-reset:om-passo}
.om-passo{counter-increment:om-passo}
.om-passo::before{content:counter(om-passo);display:flex;align-items:center;justify-content:center;width:36px;height:36px;margin-bottom:12px;border-radius:50%;
  background:var(--brand-navy-900);color:#fff;font:700 1rem var(--brand-font-heading)}
@media (prefers-color-scheme:dark){.om-passo::before{background:var(--brand-amber-500);color:var(--brand-navy-900)}}
.om-funzioni__lista{columns:1;margin:0 0 1em}
@media (min-width:760px){.om-funzioni__lista{columns:2;column-gap:40px;max-width:none}.om-funzioni__lista li{break-inside:avoid}}
.om-caso{max-width:none}
.om-caso__lista{margin-bottom:0}
.om-figura{margin:1.5em 0 0}
.om-figura__img{display:block;max-width:100%;height:auto;border-radius:var(--brand-radius-lg);background:#102A63}

/* Prova sociale e citazione */
.om-citazione{margin:0 0 1em;padding:20px 24px;border-left:6px solid var(--om-link);background:var(--om-surface);border-radius:0 var(--brand-radius-md) var(--brand-radius-md) 0;max-width:72ch}
.om-citazione__testo{font-size:1.125rem;margin:0 0 .5em}
.om-citazione__autore{margin:0;padding:0;min-height:0;background:none;font-size:.9375rem;color:var(--om-text-muted)}
.om-prova-sociale__dato{color:var(--om-text-muted)}

/* ---------- 9. Piani e prezzi ---------- */
.om-piani__griglia{display:grid;gap:20px;grid-template-columns:1fr;margin:0}
@media (min-width:760px){.om-piani__griglia{grid-template-columns:repeat(3,1fr)}}
.om-piano{display:flex;flex-direction:column;position:relative;background:var(--om-surface);border:2px solid var(--om-line-strong);border-radius:var(--brand-radius-lg);padding:24px;box-sizing:border-box}
.om-piano--consigliato{border:3px solid var(--brand-blue-600);box-shadow:var(--brand-shadow-md)}
@media (prefers-color-scheme:dark){.om-piano--consigliato{border-color:var(--brand-amber-500);box-shadow:none}}
.om-piano__etichetta{display:inline-block;align-self:flex-start;margin:0 0 12px;padding:4px 12px;border-radius:var(--brand-radius-pill);
  background:var(--brand-navy-900);color:#fff;font:600 .8125rem/1.4 var(--brand-font-body)}
@media (prefers-color-scheme:dark){.om-piano__etichetta{background:var(--brand-amber-500);color:var(--brand-navy-900)}}
.om-piano__nome{font-size:1.5rem;margin:0 0 4px}
.om-piano__per{margin:0 0 16px;color:var(--om-text-muted);font-size:.9375rem;min-height:3em}
.om-piano__prezzo{display:flex;align-items:baseline;flex-wrap:wrap;gap:4px 8px;margin:0 0 4px}
.om-piano__importo{font:800 2.5rem/1.1 var(--brand-font-heading);color:var(--om-heading);font-variant-numeric:tabular-nums}
.om-piano__lista{margin:20px 0 24px;flex:1 1 auto}
.om-piano__lista li{font-size:.9375rem}
.om-piano>p:last-child{margin:auto 0 0}

/* ---------- 10. Tabelle ---------- */
.om-tabella{width:100%;border-collapse:collapse;font-size:.9375rem;margin:0 0 1em;background:var(--om-surface);font-variant-numeric:tabular-nums}
.om-tabella__didascalia{caption-side:top;text-align:left;padding:0 0 12px;font:700 1.0625rem var(--brand-font-heading);color:var(--om-heading)}
.om-tabella th,.om-tabella td{padding:12px 16px;text-align:left;vertical-align:top;border:1px solid var(--om-line-strong)}
.om-tabella thead th{background:var(--om-bg-alt);color:var(--om-heading);font-weight:700}
.om-tabella tbody th{font-weight:600;color:var(--om-heading);background:var(--om-bg-alt)}
.om-tabella--annuale{max-width:760px}
/* il confronto ha 4 colonne: sullo schermo stretto scorre in orizzontale dentro la sua sezione */
.om-confronto{overflow-x:auto;-webkit-overflow-scrolling:touch}
.om-tabella--confronto{min-width:640px}

/* ---------- 11. FAQ: <details> (sito statico, home PHP) oppure <div> con titolo (Pagine MailWizz) ---------- */
.om-faq__voce{max-width:820px;margin:0 0 12px;padding:0;border:1px solid var(--om-line-strong);border-radius:var(--brand-radius-md);background:var(--om-surface)}
.om-faq__domanda{display:flex;align-items:center;justify-content:space-between;gap:16px;box-sizing:border-box;min-height:44px;margin:0;padding:12px 18px;
  font:600 1.0625rem/1.4 var(--brand-font-heading);color:var(--om-heading)}
summary.om-faq__domanda{cursor:pointer;list-style:none}
summary.om-faq__domanda::-webkit-details-marker{display:none}
summary.om-faq__domanda::after{content:"";flex:0 0 auto;width:.55em;height:.55em;border-right:3px solid currentColor;border-bottom:3px solid currentColor;transform:rotate(45deg);transition:transform .15s ease}
details[open]>summary.om-faq__domanda::after{transform:rotate(-135deg)}
.om-faq__risposta{margin:0;padding:0 18px 16px;color:var(--om-text)}
.om-faq>p{margin-top:20px}

/* ---------- 12. CTA, prova, offerta ---------- */
.om-cta{background:var(--om-dark-bg)!important;color:var(--om-dark-fg);text-align:center}
.om-cta__titolo{color:#fff!important;font-size:1.75rem;margin:0 0 .4em}
@media (min-width:860px){.om-cta__titolo{font-size:2.25rem}}
.om-cta__testo{color:var(--om-dark-muted);max-width:56ch;margin:0 auto 1em;font-size:1.0625rem}
.om-cta .om-cta__nota{color:var(--om-dark-muted);margin:1em auto 0;max-width:60ch}
.om-cta a.om-link{color:var(--brand-amber-300)}
.om-offerta{background:var(--brand-warning-bg)!important;color:var(--brand-ink)}
.om-offerta :is(h2,p){color:var(--brand-ink)}
.om-offerta a{color:var(--brand-blue-700)}

/* ---------- 13. Contatti e moduli ---------- */
.om-contatti{max-width:none}
.om-form{max-width:640px}
.om-form__campo{margin:0 0 18px}
.om-form__etichetta{display:block;margin:0 0 6px;font-weight:600;color:var(--om-heading)}
.om-form__input{display:block;width:100%;box-sizing:border-box;min-height:44px;padding:10px 12px;border:2px solid var(--om-line-strong);border-radius:var(--brand-radius-md);
  background:var(--om-surface);color:var(--om-text);font:400 1rem var(--brand-font-body)}
textarea.om-form__input{min-height:140px}
.om-form__campo--consenso{display:flex;gap:12px;align-items:flex-start}
.om-form__campo--consenso input{flex:0 0 auto;width:24px;height:24px;margin-top:2px}
.om-form__azioni{margin:0}
.om-contatti__lista{margin:0 0 1em;padding:0}
.om-contatti__lista li{margin:0 0 .5em}
.om-contatti__mail{max-width:640px;padding:24px;border:2px solid var(--om-line-strong);border-radius:var(--brand-radius-lg);background:var(--om-surface)}

/* ---------- 14. Pagine di testo lungo (legali) ---------- */
.om-prose{max-width:none}
.om-prose>*{max-width:76ch}
.om-prose h2{font-size:1.5rem;margin-top:1.8em}
.om-prose h3{font-size:1.25rem;margin-top:1.4em}
.om-prose li{margin:0 0 .4em}
.om-prose .om-tabella-wrap{max-width:none;overflow-x:auto}
.om-prose table{width:100%;border-collapse:collapse;margin:0 0 1.25em;font-size:.9375rem}
.om-prose :is(th,td){padding:10px 12px;border:1px solid var(--om-line-strong);text-align:left;vertical-align:top}
.om-prose th{background:var(--om-bg-alt)}
.om-prose blockquote{margin:0 0 1.25em;padding:12px 18px;border-left:6px solid var(--brand-warning);background:var(--brand-warning-bg);color:var(--brand-ink);border-radius:0 var(--brand-radius-sm) var(--brand-radius-sm) 0}
.om-prose blockquote a{color:var(--brand-blue-700)}

/* ---------- 15. Footer (guscio: layout.html e footer-custom.php) ---------- */
footer.om-footer{background:var(--om-footer-bg);color:var(--brand-on-dark);padding:48px 0 24px;min-height:0;margin:0}
.om-footer a{color:#fff;text-underline-offset:.15em}
.om-footer a:hover{color:var(--brand-amber-300)}
.om-footer__griglia{display:grid;gap:32px;grid-template-columns:1fr;max-width:var(--om-container);margin:0 auto;padding:0 16px;box-sizing:border-box}
@media (min-width:760px){.om-footer__griglia{grid-template-columns:1.4fr 1fr 1fr 1fr}}
.om-footer__titolo{margin:0 0 12px;color:#fff;font:700 1rem var(--brand-font-heading)}
footer.om-footer ul,.om-footer__lista{list-style:none;margin:0;padding:0}
footer.om-footer ul li,.om-footer__lista li{display:block;margin:0;padding:0;border:0;line-height:1.5}
.om-footer__lista a{display:inline-block;padding:7px 0}
.om-footer .om-logo--su-scuro{display:block}
.om-footer__marchio p{margin:12px 0 0;max-width:36ch;font-size:.9375rem}
.om-footer__fondo{max-width:var(--om-container);margin:32px auto 0;padding:16px 16px 0;border-top:1px solid #2A4380;font-size:.875rem;box-sizing:border-box;
  display:flex;flex-wrap:wrap;gap:8px 24px;justify-content:space-between}
.om-footer__fondo p{margin:0}
.om-footer__social{display:flex;gap:4px}
footer.om-footer .om-footer__social li{display:block}
.om-footer__social a{display:inline-flex;align-items:center;justify-content:center;min-width:44px;min-height:44px}

/* ---------- 16. Banner cookie (solo sito statico, opzionale: vedi tecnica.md) ---------- */
.om-cookie{position:fixed;left:12px;right:12px;bottom:12px;z-index:3000;max-width:720px;margin:0 auto;padding:16px 20px;border-radius:var(--brand-radius-lg);
  background:var(--brand-navy-900);color:#fff;box-shadow:var(--brand-shadow-lg)}
.om-cookie[hidden]{display:none}
.om-cookie__titolo{margin:0 0 6px;font:700 1.0625rem var(--brand-font-heading);color:#fff}
.om-cookie__testo{margin:0 0 12px;font-size:.9375rem;color:var(--brand-on-dark)}
.om-cookie__testo a{color:var(--brand-amber-300)}
.om-cookie__azioni{display:flex;flex-wrap:wrap;gap:12px}
.om-cookie__azioni .om-btn{flex:1 1 140px}

/* ---------- 17. Movimento ridotto e stampa ---------- */
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}
}
@media print{
  .om-header,.om-footer,.om-cookie,.om-cta,.om-skip-link{display:none!important}
  .om-hero{background:#fff!important;color:#000!important}
  .om-hero *{color:#000!important}
  a[href^="http"]::after{content:" (" attr(href) ")";font-size:.8em}
}
