/* ---------- Header / Nav ---------- */
.em-header{position:sticky;top:0;z-index:50;height:88px;background:var(--surface-page);border-bottom:1px solid transparent;transition:height var(--duration-base) var(--ease-standard),box-shadow var(--duration-base) var(--ease-standard),border-color var(--duration-base) var(--ease-standard)}
.em-header.is-scrolled{height:68px;border-bottom-color:var(--border-default);box-shadow:var(--shadow-sm)}
.em-header__bar{max-width:var(--container-max);margin:0 auto;padding:0 var(--gutter-page);height:100%;display:flex;align-items:center;justify-content:space-between;gap:24px}
.em-header__logo{display:flex;align-items:center;flex:none}
.em-header__logo-img{height:52px;transition:height var(--duration-base) var(--ease-standard)}
.em-header.is-scrolled .em-header__logo-img{height:40px}

.em-nav--desktop{display:flex;align-items:center;gap:var(--space-5)}
.em-nav{flex:1;justify-content:center;white-space:nowrap}
.em-nav__link{font:var(--text-label);letter-spacing:var(--tracking-label);text-transform:uppercase;color:var(--text-primary);display:inline-flex;align-items:center;gap:4px;line-height:1}
.em-nav__link:hover{color:var(--accent-primary)}
.em-nav__link.is-active{color:var(--accent-primary)}
.em-nav__caret{font-size:10px;line-height:1}

.em-nav__servizi{position:relative;display:flex;align-items:center}
.em-nav__dropdown{position:absolute;top:100%;left:0;padding-top:14px;z-index:40;display:none}
.em-nav__servizi:hover .em-nav__dropdown{display:block}
.em-nav__dropdown-panel{background:var(--surface-card);border:1px solid var(--border-default);border-radius:var(--radius-md);box-shadow:var(--shadow-md);padding:var(--space-5);display:grid;grid-template-columns:minmax(0, 1fr) minmax(0, 1fr);gap:var(--space-6);width:600px}
.em-nav__dropdown-heading{font:var(--text-caption);font-size:0.638rem;letter-spacing:var(--tracking-label);text-transform:uppercase;color:var(--text-muted);margin-bottom:var(--space-3);padding:0 10px}
.em-nav__dropdown-col{display:flex;flex-direction:column;gap:2px;min-width:0}
.em-nav__dropdown-item{display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:var(--radius-sm);color:var(--text-primary);font:var(--text-body-sm);font-size:0.744rem;min-width:0;transition:background 140ms var(--ease-standard),box-shadow 140ms var(--ease-standard)}
.em-nav__dropdown-item:hover{background:var(--accent-secondary-soft);color:var(--text-primary);box-shadow:inset 3px 0 0 var(--accent-secondary)}
.em-nav__dropdown-item img{flex:none;opacity:0.9;transition:transform 140ms var(--ease-standard);filter:invert(48%) sepia(79%) saturate(2476%) hue-rotate(360deg) brightness(103%) contrast(105%)}
.em-nav__dropdown-item:hover img{transform:scale(1.12)}
.em-nav__dropdown-item span{min-width:0;white-space:normal;line-height:1.3}
.em-nav__dropdown-footer{grid-column:1 / -1;border-top:1px solid var(--border-default);margin-top:var(--space-2);padding-top:var(--space-3)}
.em-nav__dropdown-footer a{font:var(--text-label);font-size:0.691rem;letter-spacing:var(--tracking-label);text-transform:uppercase;color:var(--accent-primary)}

.em-nav__anchor-right .em-nav__dropdown{right:0;left:auto}
.em-nav__simple-panel{display:flex;flex-direction:column;width:248px;padding:var(--space-2);gap:2px}
.em-nav__simple-panel .em-nav__dropdown-item{padding:10px 12px}
.em-nav__simple-panel .em-nav__dropdown-item img{width:16px;height:16px}
.em-nav__dropdown-item--accent{color:var(--accent-primary);font-weight:600}
.em-nav__dropdown-item--accent:hover{background:var(--accent-primary-soft);color:var(--accent-primary)}
.em-nav__dropdown-item--divider{border-top:1px solid var(--border-default);margin-top:2px;padding-top:12px !important}
.em-nav__dropdown-item--divider-bottom{border-bottom:1px solid var(--border-default);margin-bottom:2px;padding-bottom:12px !important}

/* Labeled divider used above the interactive quiz/tool links in a dropdown
   ("Interagisci ↓") — a line on each side of a small centered caption. */
.em-nav__dropdown-divider{grid-column:1 / -1;display:flex;align-items:center;gap:8px;margin:8px 0 2px;padding:0 4px}
.em-nav__dropdown-divider::before,.em-nav__dropdown-divider::after{content:'';flex:1;height:1px;background:var(--border-default)}
.em-nav__dropdown-divider span{display:inline-flex;align-items:center;gap:4px;font:var(--text-caption);font-size:0.638rem;letter-spacing:var(--tracking-label);text-transform:uppercase;color:var(--text-muted);white-space:nowrap}
.em-nav__dropdown-divider-arrow{font-size:10px;line-height:1;color:var(--accent-secondary)}
/* Every link below an "Interagisci" divider reads as a call to action:
   blue, lowercase, regardless of its own accent/heading classes. */
.em-nav__dropdown-divider ~ .em-nav__dropdown-item,
.em-nav__dropdown-divider ~ .em-nav__dropdown-footer a{color:var(--accent-primary) !important;text-transform:lowercase}
.em-nav__dropdown-divider ~ .em-nav__dropdown-item:hover{background:var(--accent-primary-soft);color:var(--accent-primary) !important}

.em-header__cta{gap:var(--space-4);flex:none}
.em-nav__pill{font:var(--text-label);letter-spacing:var(--tracking-label);text-transform:uppercase;color:var(--accent-primary);border:2px solid var(--accent-primary);padding:8px 14px;border-radius:var(--radius-sm);background:var(--accent-primary-soft)}
.em-nav__pill:hover{background:var(--accent-primary);color:var(--text-on-accent)}

.em-mobile-toggle{display:none;background:none;border:none;flex-direction:column;gap:5px;padding:8px}
.em-mobile-toggle span{width:24px;height:2px;background:var(--ink-900);display:block}
.em-mobile-menu{background:var(--surface-page);border-top:1px solid var(--border-default);padding:var(--space-5) var(--gutter-page);display:flex;flex-direction:column;gap:var(--space-4)}
.em-mobile-menu[hidden]{display:none}
.em-mobile-menu a{font:var(--text-h4);color:var(--text-primary)}
.em-mobile-menu__percorsi{color:var(--accent-primary) !important;text-transform:lowercase}
.em-mobile-menu__servizi-toggle{display:flex;align-items:center;justify-content:space-between;width:100%;background:none;border:none;padding:0;font:var(--text-h4);color:var(--text-primary)}
.em-mobile-menu__servizi-icon{font-size:15px}
.em-mobile-menu__servizi-list{display:flex;flex-direction:column;gap:var(--space-3);padding:var(--space-3) 0 0 var(--space-3)}
.em-mobile-menu__servizi-list[hidden]{display:none}
.em-mobile-menu__servizi-list a{font:var(--text-body);color:var(--text-secondary)}
.em-mobile-menu__divider{font:var(--text-caption);letter-spacing:var(--tracking-label);text-transform:uppercase;color:var(--text-muted);text-align:center;border-top:1px solid var(--border-default);padding-top:var(--space-3)}

.em-header__account{display:flex;align-items:center;gap:14px;flex:none}
.em-header__account-link{font:var(--text-label);letter-spacing:var(--tracking-label);text-transform:uppercase;color:var(--accent-primary);white-space:nowrap}
.em-header__account-link:hover{opacity:0.75}
.em-header__account-link--muted{color:var(--text-muted)}
@media (max-width:1179px){
  .em-header__account{display:none}
}

/* Barra compatta dell'Area Riservata (header.php, em_is_area_app): niente
   mega-menu pubblico — logo, utente e uscita in stile "toolbar applicativa",
   sempre visibile anche sotto i 1179px dove la barra normale nasconde l'account. */
.em-header--app{height:auto;min-height:64px}
.em-app-topbar{padding-top:10px;padding-bottom:10px;flex-wrap:wrap;row-gap:8px}
.em-app-topbar__left{display:flex;align-items:center;gap:16px}
.em-app-topbar__public-link{font:var(--text-label);letter-spacing:var(--tracking-label);text-transform:uppercase;color:var(--text-muted);white-space:nowrap}
.em-app-topbar__public-link:hover{color:var(--accent-primary)}
.em-app-topbar__user{display:flex;align-items:center;gap:10px}
.em-app-topbar__avatar{display:flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:50%;background:var(--accent-primary-soft);color:var(--accent-primary);flex:none}
.em-app-topbar__user-text{display:flex;flex-direction:column;line-height:1.25}
.em-app-topbar__user-text strong{color:var(--ink-900);font-weight:700;font-size:13px}
.em-app-topbar__user-text span{color:var(--text-muted);font-size:11px}
.em-app-topbar__logout{display:flex;align-items:center;gap:6px;background:#E8453C;color:#fff;padding:8px 14px;border-radius:var(--radius-full);font:var(--text-label);letter-spacing:var(--tracking-label);text-transform:uppercase;white-space:nowrap}
.em-app-topbar__logout:hover{opacity:0.88}
.em-app-topbar__logout img{filter:brightness(0) invert(1)}
@media (max-width:539px){
  .em-app-topbar__public-link,.em-app-topbar__user-text{display:none}
}

/* ---------- Area Riservata: pannello di controllo (sidebar + briciole) ---------- */
.em-area-shell-wrap{padding:0 var(--gutter-page) var(--space-9)}
.em-area-shell{max-width:1200px;margin:0 auto;padding-top:var(--space-5);display:flex;align-items:flex-start;gap:var(--space-6)}
.em-area-main .em-icon-circle{width:36px;height:36px;margin-bottom:var(--space-3)}
.em-area-sidebar{flex:0 0 232px;position:sticky;top:88px;background:var(--surface-card);border:1px solid var(--border-default);border-radius:var(--radius-lg);padding:var(--space-3)}
.em-area-sidebar__group{margin-bottom:var(--space-4)}
.em-area-sidebar__group:last-child{margin-bottom:0}
.em-area-sidebar__group-label{font:var(--text-caption);letter-spacing:var(--tracking-label);text-transform:uppercase;color:var(--text-muted);padding:4px 12px 6px}
.em-area-sidebar__nav{display:flex;flex-direction:column;gap:2px}
.em-area-sidebar__link{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:var(--radius-md);font:var(--text-body-sm);font-weight:600;color:var(--text-secondary)}
.em-area-sidebar__link img{flex:none;opacity:0.7}
.em-area-sidebar__link:hover{background:var(--surface-canvas);color:var(--text-primary)}
.em-area-sidebar__link.is-active{background:var(--accent-primary-soft);color:var(--accent-primary)}
.em-area-sidebar__link.is-active img{opacity:1}
.em-area-sidebar__lock{margin-left:auto;opacity:0.5}

.em-area-main{flex:1 1 auto;min-width:0}
.em-area-breadcrumbs{display:flex;align-items:center;gap:6px;font:var(--text-caption);color:var(--text-muted);margin-bottom:var(--space-3);flex-wrap:wrap}
.em-area-breadcrumbs a{color:var(--accent-primary)}
.em-area-breadcrumbs__sep{color:var(--text-muted)}
.em-area-breadcrumbs__current{color:var(--text-secondary);font-weight:600}

/* Titoli e form dentro il pannello: gerarchia contenuta (H2, non un hero da
   64px) e label dei campi neutre — quelle arancioni/maiuscole sono pensate
   per i form pubblici, non per un cruscotto amministrativo denso. */
.em-area-page-title{font:var(--text-h2);color:var(--ink-900);margin:0 0 4px}
.em-area-page-subtitle{font:var(--text-body-sm);color:var(--text-secondary);margin:0 0 var(--space-5)}
.em-area-main .em-form-field>label{font:600 11px/1.3 var(--font-body);letter-spacing:0;text-transform:none;color:var(--text-muted)}
.em-area-main .em-area-panel h2{font:var(--text-h4)}

@media (max-width:880px){
  .em-area-shell{flex-direction:column}
  .em-area-sidebar{position:static;width:100%;flex:none}
  .em-area-sidebar__group-label{padding-left:4px}
  .em-area-sidebar__nav{flex-direction:row;flex-wrap:wrap}
  .em-area-sidebar__link{flex:1 1 auto;justify-content:center}
}

/* Tabelle del pannello — righe di dati orizzontali invece di card impilate (Richieste, Moderazione, Trattative). */
.em-area-table-wrap{overflow-x:auto}
.em-area-table{width:100%;border-collapse:collapse}
.em-area-table th{text-align:left;font:var(--text-caption);letter-spacing:var(--tracking-label);text-transform:uppercase;color:var(--text-muted);padding:8px 10px;border-bottom:1px solid var(--border-default);white-space:nowrap}
.em-area-table td{padding:10px;border-bottom:1px solid var(--border-default);font:var(--text-body-sm);color:var(--text-secondary);vertical-align:middle}
.em-area-table tr:last-child td{border-bottom:none}
.em-area-table tbody tr:hover td{background:var(--surface-canvas)}
.em-area-table td.em-area-table__actions{text-align:right;white-space:nowrap}
.em-area-table td.em-area-table__actions form{display:inline-block;margin-left:6px}

@media (max-width:1179px){
  .em-nav--desktop{display:none !important}
  .em-mobile-toggle{display:flex !important}
}

/* ---------- Footer ---------- */
.em-footer{position:relative;overflow:hidden;background:var(--ink-900);border-top:1px solid var(--ink-700);padding:var(--space-8) var(--gutter-page) var(--space-5);background-image:repeating-linear-gradient(45deg, var(--ink-800) 0, var(--ink-800) 1px, transparent 1px, transparent 16px)}
.em-footer > *{position:relative;z-index:1}
.em-footer__grid{max-width:var(--container-max);margin:0 auto;display:grid;grid-template-columns:1.2fr 1fr 1fr 1fr 1fr;gap:var(--space-6)}
@media (max-width:899px){ .em-footer__grid{grid-template-columns:1fr 1fr 1fr} }
@media (max-width:599px){ .em-footer__grid{grid-template-columns:1fr 1fr} }
.em-footer__logo{height:48px;margin-bottom:var(--space-4);overflow:visible}
/* "Costruire": the 3 bars lay themselves down left-to-right like courses of
   brick, then the E/M settle in with a soft fade — no rotation, calmer than
   a spinning-letters effect. */
.em-footer__logo-bar{transform-box:fill-box;transform-origin:left center;animation:em-footer-bar-build 8s ease-in-out infinite}
.em-footer__logo-bar--1{animation-delay:0s}
.em-footer__logo-bar--2{animation-delay:0.35s}
.em-footer__logo-bar--3{animation-delay:0.7s}
.em-footer__logo-e,.em-footer__logo-m{transform-box:fill-box;transform-origin:center;animation:em-footer-logo-settle 8s ease-in-out infinite}
.em-footer__logo-e polygon,.em-footer__logo-m polygon{fill:#FFFFFF}
.em-footer__logo-m{animation-delay:0.15s}
@keyframes em-footer-bar-build{
  0%,100%{transform:scaleX(0)}
  20%,85%{transform:scaleX(1)}
}
@keyframes em-footer-logo-settle{
  0%,100%{opacity:0;transform:scale(0.9)}
  35%,85%{opacity:1;transform:scale(1)}
}
@media (prefers-reduced-motion: reduce){
  .em-footer__logo-bar,.em-footer__logo-e,.em-footer__logo-m{animation:none}
}
.em-footer__blurb{font:var(--text-body-sm);color:var(--concrete-400);margin:0 0 var(--space-4);max-width:280px}
.em-footer__social{display:flex;gap:var(--space-3)}
.em-footer__icon{width:36px;height:36px;border:1px solid var(--ink-700);border-radius:var(--radius-sm);display:flex;align-items:center;justify-content:center}
.em-footer__icon:hover{border-color:var(--brand-blue-500)}
.em-footer__icon img{filter:invert(1)}
.em-footer__heading{font:var(--text-label);letter-spacing:var(--tracking-label);text-transform:uppercase;color:var(--concrete-400);margin-bottom:var(--space-4)}
.em-footer__links{display:flex;flex-direction:column;gap:var(--space-3)}
.em-footer__links a{font:var(--text-body-sm);color:var(--concrete-200)}
.em-footer__links a:hover{color:var(--paper-000)}
.em-footer__link--accent{color:var(--brand-blue-100) !important}
.em-footer__bottom{max-width:var(--container-max);margin:var(--space-7) auto 0;padding-top:var(--space-5);border-top:1px solid var(--ink-700);display:flex;justify-content:space-between;flex-wrap:wrap;gap:var(--space-3)}
.em-footer__bottom span{font:var(--text-caption);color:var(--concrete-600)}
.em-footer__legal{display:flex;gap:var(--space-5)}
.em-footer__legal a{font:var(--text-caption);color:var(--concrete-600)}
.em-footer__legal a:hover{color:var(--paper-000)}

/* ---------- Buttons (replaces the design system's React Button/IconButton) ---------- */
.em-btn{display:inline-flex;align-items:center;gap:8px;justify-content:center;font-family:var(--font-body);letter-spacing:var(--tracking-label);text-transform:uppercase;border-radius:var(--radius-sm);cursor:pointer;text-decoration:none;transition:background var(--duration-fast) var(--ease-standard),border-color var(--duration-fast) var(--ease-standard),color var(--duration-fast) var(--ease-standard);border:2px solid transparent}
.em-btn--sm{padding:8px 14px;font:var(--text-body-sm)}
.em-btn--md{padding:11px 20px;font:var(--text-button)}
.em-btn--lg{padding:15px 28px;font:var(--text-button)}
.em-btn--primary{background:var(--accent-primary);color:var(--text-on-accent);border-color:var(--accent-primary)}
.em-btn--primary:hover{background:var(--accent-primary-hover);border-color:var(--accent-primary-hover);color:var(--text-on-accent)}
.em-btn--secondary{background:var(--ink-900);color:var(--text-on-inverse);border-color:var(--ink-900)}
.em-btn--secondary:hover{background:var(--ink-700);border-color:var(--ink-700);color:var(--text-on-inverse)}
.em-btn--outline{background:transparent;color:var(--accent-primary);border-color:var(--accent-primary)}
.em-btn--outline:hover{background:var(--accent-primary-soft);color:var(--accent-primary)}
.em-btn--ghost{background:transparent;color:var(--accent-primary);border-color:transparent}
.em-btn--ghost:hover{background:var(--accent-primary-soft);color:var(--accent-primary)}
.em-btn:disabled{opacity:0.45;cursor:not-allowed}
.em-btn--block{display:flex;width:100%}

.em-icon-btn{display:inline-flex;align-items:center;justify-content:center;border-radius:var(--radius-sm);cursor:pointer;border:2px solid transparent;transition:background var(--duration-fast) var(--ease-standard),border-color var(--duration-fast) var(--ease-standard)}
.em-icon-btn--sm{width:32px;height:32px}
.em-icon-btn--md{width:40px;height:40px}
.em-icon-btn--lg{width:48px;height:48px}
.em-icon-btn--primary{background:var(--accent-primary);border-color:var(--accent-primary)}
.em-icon-btn--primary img{filter:invert(1)}
.em-icon-btn--primary:hover{background:var(--accent-primary-hover);border-color:var(--accent-primary-hover)}
.em-icon-btn--outline{background:transparent;border-color:var(--border-default)}
.em-icon-btn--outline:hover{background:var(--concrete-050)}
.em-icon-btn--ghost{background:transparent}
.em-icon-btn--ghost:hover{background:var(--concrete-050)}

/* ---------- Breadcrumb ---------- */
.em-breadcrumb{display:flex;align-items:center;gap:8px;font:var(--text-caption);color:var(--text-muted);margin-bottom:var(--space-5)}
.em-breadcrumb a{color:var(--text-muted)}
.em-breadcrumb__current{color:var(--text-primary)}

/* ---------- Forms (shared across every lead-capture form on the site) ---------- */
/* Sized ~20% down from the original (padding/gaps/font) per explicit request — forms felt oversized. */
.em-form-panel{
  position:relative;max-width:640px;margin:0 auto;
  background-color:var(--surface-card);
  background-image:
    repeating-linear-gradient(0deg,rgba(15,112,185,0.20) 0,rgba(15,112,185,0.20) 1px,transparent 1px,transparent 25px),
    repeating-linear-gradient(90deg,rgba(15,112,185,0.20) 0,rgba(15,112,185,0.20) 1px,transparent 1px,transparent 25px),
    repeating-linear-gradient(0deg,rgba(15,112,185,0.07) 0,rgba(15,112,185,0.07) 1px,transparent 1px,transparent 5px),
    repeating-linear-gradient(90deg,rgba(15,112,185,0.07) 0,rgba(15,112,185,0.07) 1px,transparent 1px,transparent 5px);
  border:1px solid var(--border-default);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);padding:38px 38px 38px 46px;
}
.em-form-panel::before{content:"";position:absolute;top:0;left:0;right:0;height:4px;border-radius:var(--radius-lg) var(--radius-lg) 0 0;background:linear-gradient(90deg,var(--accent-primary),var(--accent-secondary))}

/* Realistic corkboard pushpins at the four corners — see EM.initFormPins() in utils.js. */
.em-pin{position:absolute;width:26px;height:26px;background-repeat:no-repeat;background-size:contain;pointer-events:none;z-index:2;filter:drop-shadow(0 3px 3px rgba(20,23,26,0.35))}
.em-pin--tl{top:-13px;left:-13px}
.em-pin--tr{top:-13px;right:-13px}
.em-pin--bl{bottom:-13px;left:-13px}
.em-pin--br{bottom:-13px;right:-13px}
.em-pin--orange{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E %3Cdefs%3E %3CradialGradient id='g' cx='0.35' cy='0.28' r='0.75'%3E %3Cstop offset='0' stop-color='%23FF9A5C'/%3E %3Cstop offset='0.55' stop-color='%23FF6A13'/%3E %3Cstop offset='1' stop-color='%23B94E0C'/%3E %3C/radialGradient%3E %3C/defs%3E %3Cellipse cx='12' cy='20' rx='5.5' ry='2' fill='%2314171A' opacity='0.22'/%3E %3Ccircle cx='12' cy='10.5' r='8.3' fill='url(%23g)' stroke='%238f3a08' stroke-width='0.6'/%3E %3Ccircle cx='9.3' cy='7.6' r='2.3' fill='%23FFFFFF' opacity='0.55'/%3E %3C/svg%3E")}
.em-pin--blue{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E %3Cdefs%3E %3CradialGradient id='g' cx='0.35' cy='0.28' r='0.75'%3E %3Cstop offset='0' stop-color='%235FAEE0'/%3E %3Cstop offset='0.55' stop-color='%230F70B9'/%3E %3Cstop offset='1' stop-color='%230A4E82'/%3E %3C/radialGradient%3E %3C/defs%3E %3Cellipse cx='12' cy='20' rx='5.5' ry='2' fill='%2314171A' opacity='0.22'/%3E %3Ccircle cx='12' cy='10.5' r='8.3' fill='url(%23g)' stroke='%23083a61' stroke-width='0.6'/%3E %3Ccircle cx='9.3' cy='7.6' r='2.3' fill='%23FFFFFF' opacity='0.55'/%3E %3C/svg%3E")}
@media (max-width:539px){ .em-pin{width:20px;height:20px} .em-pin--tl,.em-pin--tr{top:-10px} .em-pin--bl,.em-pin--br{bottom:-10px} .em-pin--tl,.em-pin--bl{left:-10px} .em-pin--tr,.em-pin--br{right:-10px} }
.em-ruler-top{position:relative;height:16px;margin:0 0 16px -8px;border-bottom:1px solid rgba(15,112,185,0.35)}
.em-ruler-top__tick{position:absolute;bottom:0;font:9px/1 var(--font-body);color:var(--accent-primary);opacity:0.75;border-left:1px solid rgba(15,112,185,0.4);padding-left:3px;height:10px;transform:translateX(0)}
.em-ruler-left{position:absolute;top:70px;bottom:38px;left:0;width:8px;pointer-events:none}
.em-ruler-left__tick{position:absolute;left:0;width:6px;height:1px;background:rgba(15,112,185,0.4)}
.em-form-panel__intro{max-width:640px;margin:0 auto var(--space-6);text-align:center}
.em-form-row{display:grid;grid-template-columns:1fr 1fr;gap:19px;margin-bottom:19px;align-items:start}
@media (max-width:539px){ .em-form-row{grid-template-columns:1fr !important} }
.em-form-field{margin-bottom:19px}
.em-form-field>label{font:var(--text-label);letter-spacing:var(--tracking-label);text-transform:uppercase;color:var(--accent-secondary);display:block;margin-bottom:8px}
.em-form-field input,.em-form-field select{height:42px}
.em-form-field input,.em-form-field textarea,.em-form-field select{width:100%;box-sizing:border-box;padding:11px 13px;border:1.5px solid var(--border-default);border-radius:var(--radius-md);font:400 0.875rem/1.5 var(--font-body);background:var(--surface-page);color:var(--ink-900);transition:border-color 160ms var(--ease-standard),box-shadow 160ms var(--ease-standard)}
.em-form-field input::placeholder,.em-form-field textarea::placeholder{color:var(--text-muted)}
.em-form-field input:hover,.em-form-field textarea:hover{border-color:var(--ink-500)}
.em-form-field input:focus,.em-form-field textarea:focus{outline:none;border-color:var(--accent-primary);box-shadow:0 0 0 4px var(--accent-primary-soft)}
.em-form-field textarea{resize:vertical;line-height:1.5}
.em-form-field textarea.em-textarea--prefilled{font:var(--text-caption);letter-spacing:0;text-transform:none}
.em-form-field--optional>label::after{content:" (facoltativo)";text-transform:none;letter-spacing:0;font:var(--text-caption);color:var(--text-muted)}
.em-form-note{font:var(--text-caption);color:var(--text-muted);text-align:center;margin:13px 0 0}
.em-form-banner{max-width:640px;margin:0 auto 19px;padding:13px 19px;border-radius:var(--radius-md);font:var(--text-body-sm);text-align:center;border-left:3px solid transparent}
.em-form-banner--ok{background:var(--success-100);color:var(--success-500);border-left-color:var(--success-500)}
.em-form-banner--error{background:var(--danger-100);color:var(--danger-500);border-left-color:var(--danger-500)}

/* Shared GDPR double-consent checkbox (mandatory privacy + optional marketing), reused across every lead-capturing form and the newsletter box. */
.em-form-checkbox{display:flex;align-items:flex-start;gap:6px;font:12px/1.4 var(--font-body, inherit);color:var(--text-muted);margin:0}
.em-form-checkbox input{margin-top:2px;width:13px;height:13px;flex:none;accent-color:var(--accent-primary)}
.em-form-checkbox a{color:var(--accent-primary)}
.em-form-consent{display:flex;flex-direction:column;gap:6px;margin:0 0 19px}

/* Floating, no-scroll-needed validation error — see assets/js/utils.js EM.showFieldError(). */
.em-toast{position:fixed;top:20px;left:50%;transform:translateX(-50%) translateY(-14px);z-index:300;background:var(--danger-500);color:#fff;padding:14px 22px;border-radius:var(--radius-md);box-shadow:var(--shadow-md);font:var(--text-body-sm);font-weight:600;max-width:min(90vw,480px);text-align:center;opacity:0;pointer-events:none;transition:opacity 200ms var(--ease-standard),transform 200ms var(--ease-standard)}
.em-toast.is-visible{opacity:1;transform:translateX(-50%) translateY(0)}

/* "Prenota consulenza" location card (Sede Edil.Marketing: address + maps + share). */
.em-location-card{background:var(--accent-primary-soft);border:1px solid var(--accent-primary);border-left:3px solid var(--accent-primary);border-radius:var(--radius-md);padding:13px}
.em-location-link{display:inline-flex;align-items:center;gap:6px;padding:6px 11px;border:1px solid var(--accent-primary);border-radius:var(--radius-sm);color:var(--accent-primary);font:var(--text-body-sm);font-weight:600;background:var(--surface-card);cursor:pointer;text-decoration:none;transition:background 140ms var(--ease-standard),color 140ms var(--ease-standard)}
.em-location-link:hover{background:var(--accent-primary);color:#fff}

/* "Prenota consulenza": bordered box around the "La tua sede" address fields. */
.em-address-box{border:1px solid var(--border-default);border-radius:var(--radius-md);padding:16px;background:var(--surface-page)}
.em-address-box__title{font:var(--text-label);letter-spacing:var(--tracking-label);text-transform:uppercase;color:var(--accent-primary);margin-bottom:14px}
.em-address-box .em-form-field:last-child{margin-bottom:0}

/* "Prenota consulenza": unobtrusive "add to calendar" button below the three availability rows. */
.em-cal-save{margin:2px 0 19px}
.em-cal-save__toggle{display:block;width:100%;background:none;border:1px dashed var(--border-default);border-radius:var(--radius-sm);padding:8px 12px;font:var(--text-caption);color:var(--text-secondary);cursor:pointer;text-align:left;transition:border-color 140ms var(--ease-standard),color 140ms var(--ease-standard)}
.em-cal-save__toggle:hover{border-color:var(--accent-primary);color:var(--accent-primary)}
.em-cal-save__panel{margin-top:8px;padding:4px 12px;border:1px solid var(--border-default);border-radius:var(--radius-sm);background:var(--surface-page)}
.em-cal-save__empty{font:var(--text-caption);color:var(--text-muted);padding:8px 0}
.em-cal-save__row{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:8px 0;font:var(--text-caption);color:var(--text-secondary)}
.em-cal-save__row+.em-cal-save__row{border-top:1px solid var(--border-default)}
.em-cal-save__links{display:flex;gap:10px;flex:none}
.em-cal-save__links a,.em-cal-save__links button{font:var(--text-caption);font-weight:600;color:var(--accent-primary);background:none;border:none;cursor:pointer;padding:0;text-decoration:underline}

/* ---------- Floating "Interagisci" launcher (fixed top-left, all pages) ---------- */
.em-float-ia{position:fixed;top:104px;left:16px;z-index:60}
.em-float-ia__btn{position:relative;width:40px;height:40px;border-radius:50%;border:none;background:var(--accent-primary);box-shadow:var(--shadow-md);cursor:pointer;display:flex;align-items:center;justify-content:center;padding:0;transition:transform 160ms var(--ease-standard),background 160ms var(--ease-standard)}
.em-float-ia__btn:hover{transform:scale(1.08);background:var(--accent-primary-hover, var(--accent-primary))}
.em-float-ia__circle{font:800 1rem/1 var(--font-display);color:var(--text-on-accent)}
.em-float-ia__tooltip{position:absolute;left:calc(100% + 10px);top:50%;transform:translateY(-50%) translateX(-4px);background:var(--ink-900);color:var(--paper-000);font:var(--text-caption);white-space:nowrap;padding:6px 10px;border-radius:var(--radius-sm);opacity:0;pointer-events:none;transition:opacity 160ms var(--ease-standard),transform 160ms var(--ease-standard)}
.em-float-ia__btn:hover .em-float-ia__tooltip{opacity:1;transform:translateY(-50%) translateX(0)}
.em-float-ia__panel{position:absolute;top:0;left:50px;width:260px;background:var(--surface-card);border:1px solid var(--border-default);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);overflow:hidden}
.em-float-ia__panel-header{display:flex;align-items:center;justify-content:space-between;padding:var(--space-4) var(--space-4);font:var(--text-label);letter-spacing:var(--tracking-label);text-transform:uppercase;color:var(--text-muted);border-bottom:1px solid var(--border-default)}
.em-float-ia__close{border:none;background:none;cursor:pointer;font-size:14px;color:var(--text-muted);line-height:1;padding:4px}
.em-float-ia__close:hover{color:var(--accent-primary)}
.em-float-ia__links{display:flex;flex-direction:column;padding:var(--space-2) 0;max-height:60vh;overflow-y:auto}
.em-float-ia__links a{padding:10px var(--space-4);font:var(--text-body-sm);color:var(--text-primary)}
.em-float-ia__links a:hover{background:var(--concrete-050);color:var(--accent-primary)}
.em-float-ia__all{font-weight:600;color:var(--accent-primary) !important;border-top:1px solid var(--border-default);margin-top:4px;padding-top:12px !important}
@media (max-width:480px){ .em-float-ia{top:auto;bottom:16px} .em-float-ia__panel{left:50px;top:auto;bottom:0} }

/* ---------- Stat row (offering breadth: servizi / aree / percorsi) ---------- */
.em-stat-row{display:flex;gap:var(--space-7);flex-wrap:wrap;margin-top:var(--space-6)}
.em-stat-row__item{display:flex;flex-direction:column}
.em-stat-row__value{font:800 clamp(1.75rem,3vw,2.25rem)/1 var(--font-display);color:var(--accent-primary)}
.em-stat-row__label{font:var(--text-body-sm);color:var(--text-secondary);margin-top:4px}
.em-stat-row--inverse .em-stat-row__value{color:var(--paper-000)}
.em-stat-row--inverse .em-stat-row__label{color:var(--concrete-300)}

/* ---------- "Thanks" courtesy screen (shared by every form's success state) ---------- */
.em-thanks{max-width:640px;margin:0 auto}
.em-thanks__icon{position:relative;display:inline-block;width:88px;height:88px;margin-bottom:var(--space-6);font-size:56px;line-height:88px;cursor:default}
.em-thanks__icon-face{position:absolute;inset:0;transition:opacity 220ms var(--ease-standard),transform 220ms var(--ease-standard)}
.em-thanks__icon-face--default{opacity:1;transform:scale(1) rotate(0deg)}
.em-thanks__icon-face--hover{opacity:0;transform:scale(0.7) rotate(-10deg)}
.em-thanks__icon:hover .em-thanks__icon-face--default{opacity:0;transform:scale(0.7) rotate(10deg)}
.em-thanks__icon:hover .em-thanks__icon-face--hover{opacity:1;transform:scale(1) rotate(0deg);animation:em-thanks-wave 700ms ease-in-out 220ms}
@keyframes em-thanks-wave{
  0%,100%{transform:rotate(0deg)}
  20%{transform:rotate(14deg)}
  40%{transform:rotate(-8deg)}
  60%{transform:rotate(14deg)}
  80%{transform:rotate(-4deg)}
}

/* ---------- Cerco/Offro category cards + radio groups ---------- */
.em-co-card{border-color:var(--border-default);background:var(--surface-card);font-family:inherit;transition:border-color 160ms var(--ease-standard),box-shadow 160ms var(--ease-standard)}
.em-co-card:hover{border-color:var(--accent-primary);box-shadow:var(--shadow-sm)}
.em-co-card.is-selected{border-color:var(--accent-primary);box-shadow:0 0 0 3px var(--accent-primary-soft)}
.em-co-radio-group{display:flex;gap:13px;flex-wrap:wrap;margin-top:2px}
.em-co-radio{display:flex;align-items:center;gap:5px;font:0.8125rem/1.4 var(--font-body);color:var(--text-primary);cursor:pointer;text-transform:none;letter-spacing:normal;white-space:nowrap}
.em-co-radio input{width:15px;height:15px;margin:0;flex:none;accent-color:var(--accent-primary)}
/* Compact variant: two radio-groups side by side in one .em-form-row (e.g. Modalità + Dove ci vediamo). */
.em-co-radio-group--tight{gap:8px 10px}
.em-co-radio-group--tight .em-co-radio{font-size:0.75rem;white-space:normal}

/* Anchor variant: same pill group used as filter links (e.g. bacheca Cerco/Offro). */
a.em-co-radio{padding:6px 14px;border:1.5px solid var(--border-default);border-radius:999px;text-decoration:none}
a.em-co-radio.is-active{background:var(--accent-primary);border-color:var(--accent-primary);color:#fff}

/* ---------- Area Riservata: login/registrazione panels + admin lists ---------- */
.em-auth-panel{max-width:440px;margin:0 auto;background:var(--surface-page);border:1px solid var(--border-default);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);padding:var(--space-6)}
.em-auth-panel--wide{max-width:600px}
.em-auth-panel__links{display:flex;flex-direction:column;gap:8px;margin-top:var(--space-5);text-align:center}
.em-auth-panel__links a{font:var(--text-body-sm);color:var(--accent-primary)}
.em-area-pending-list{display:flex;flex-direction:column;gap:var(--space-3)}
.em-area-pending-row{display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);flex-wrap:wrap;padding:var(--space-3) 0;border-bottom:1px solid var(--border-default);font:var(--text-body-sm)}
.em-area-pending-row:last-child{border-bottom:none}
.em-area-pending-row__actions{display:flex;gap:8px;flex:none}
.em-co-contatta{width:100%;margin-top:var(--space-3)}
.em-co-contatta summary{cursor:pointer;font:var(--text-label);letter-spacing:var(--tracking-label);text-transform:uppercase;color:var(--accent-primary);list-style:none}
.em-co-contatta summary::-webkit-details-marker{display:none}
.em-co-contatta__form{margin-top:var(--space-3);max-width:480px}
.em-co-contatta__form textarea{width:100%;box-sizing:border-box;padding:11px 13px;border:1.5px solid var(--border-default);border-radius:var(--radius-md);font:400 0.875rem/1.5 var(--font-body);background:var(--surface-page);color:var(--ink-900);resize:vertical}

.em-auth-welcome{text-align:center}
.em-auth-welcome .em-avatar-mascot{margin:0 auto var(--space-4);display:block}
@media (max-width:899px){ .em-auth-welcome{margin-bottom:var(--space-2)} }
.em-auth-divider{display:flex;align-items:center;gap:12px;margin:var(--space-5) 0;color:var(--text-muted);font:var(--text-caption);text-transform:uppercase;letter-spacing:var(--tracking-label)}
.em-auth-divider::before,.em-auth-divider::after{content:"";flex:1;height:1px;background:var(--border-default)}
.em-auth-social-btn{position:relative;display:flex;align-items:center;justify-content:center;gap:10px;width:100%;box-sizing:border-box;padding:12px;border:1.5px solid var(--border-default);border-radius:var(--radius-md);font:600 0.875rem/1 var(--font-body);color:var(--ink-900);background:var(--surface-page);transition:border-color 160ms var(--ease-standard),box-shadow 160ms var(--ease-standard)}
.em-auth-social-btn:hover{border-color:var(--ink-500);box-shadow:var(--shadow-sm)}
.em-auth-social-btn + .em-auth-social-btn{margin-top:8px}
.em-auth-social-btn--last-used{border-color:var(--success-500)}
.em-auth-badge{position:absolute;top:-9px;right:14px;background:var(--success-500);color:#fff;font:700 0.6875rem/1 var(--font-body);letter-spacing:var(--tracking-label);text-transform:uppercase;padding:3px 9px;border-radius:999px;box-shadow:0 1px 2px rgba(0,0,0,0.12)}

/* ---------- "I miei servizi" — barra SAL (Stato Avanzamento Lavori) ---------- */
.em-servizio-card{border:1px solid var(--border-default);border-radius:var(--radius-md);padding:var(--space-4);margin-bottom:var(--space-4)}
.em-servizio-card:last-child{margin-bottom:0}
.em-servizio-card__title{font:var(--text-h4);color:var(--ink-900);margin:0 0 12px}
.em-sal-bar{display:flex;gap:4px;margin-bottom:8px}
.em-sal-bar__step{flex:1;height:6px;border-radius:3px;background:var(--border-default)}
.em-sal-bar__step.is-done{background:var(--accent-primary)}
.em-sal-bar__step.is-current{background:var(--accent-secondary)}
.em-sal-labels{display:flex;justify-content:space-between;font:var(--text-caption);color:var(--text-muted)}
.em-sal-labels span.is-current{color:var(--accent-secondary);font-weight:700}
.em-servizio-admin-row{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);flex-wrap:wrap;padding:10px 0;border-bottom:1px solid var(--border-default);font:var(--text-body-sm)}
.em-servizio-admin-row:last-child{border-bottom:none}
.em-servizio-admin-row select{font:var(--text-body-sm);padding:4px 6px;border-radius:6px;border:1px solid var(--border-default)}
.em-co-radio-group--tight .em-co-radio input{width:14px;height:14px}
.em-form-row--modality{grid-template-columns:auto 1fr;gap:24px}
@media (max-width:539px){ .em-form-row--modality{grid-template-columns:1fr} }

/* ---------- Quiz results: bar chart, radar chart, summary, advice, actions (shared by all 4 quizzes) ---------- */
.em-chart-bar{display:flex;flex-direction:column;gap:var(--space-3)}
.em-chart-bar__row{display:grid;grid-template-columns:140px 1fr 48px;align-items:center;gap:var(--space-3)}
.em-chart-bar__label{font:var(--text-body-sm);color:var(--text-secondary)}
.em-chart-bar__track{height:10px;background:var(--concrete-100);border-radius:var(--radius-full);overflow:hidden}
.em-chart-bar__fill{height:100%;background:var(--accent-secondary);border-radius:var(--radius-full);transition:width 700ms var(--ease-standard)}
.em-chart-bar__pct{font:var(--text-mono);color:var(--ink-900);text-align:right}
.em-chart-bar__row.is-winner .em-chart-bar__label{color:var(--ink-900);font-weight:600}
.em-chart-bar__row.is-winner .em-chart-bar__fill{background:var(--accent-primary)}
@media (max-width:539px){
  .em-chart-bar__row{grid-template-columns:1fr}
  .em-chart-bar__pct{text-align:left}
}

.em-chart-radar{display:flex;flex-direction:column;align-items:center;gap:var(--space-4)}
.em-chart-radar__svg{width:100%;max-width:340px;height:auto}
.em-chart-radar__ring{fill:none;stroke:var(--border-default)}
.em-chart-radar__spoke{stroke:var(--border-default)}
.em-chart-radar__data{fill:var(--accent-primary-soft);stroke:var(--accent-primary);stroke-width:2}
.em-chart-radar__dot{fill:var(--accent-primary)}
.em-chart-radar__labels{display:flex;flex-wrap:wrap;justify-content:center;gap:var(--space-2) var(--space-4)}
.em-chart-radar__label-item{font:var(--text-caption);color:var(--text-muted)}

.em-result-summary{background:var(--surface-card);border:1px solid var(--border-default);border-radius:var(--radius-md);padding:var(--space-5) var(--space-6);margin:var(--space-6) 0;font:var(--text-body);color:var(--text-secondary);line-height:1.6}
.em-result-advice{list-style:none;margin:var(--space-6) 0;padding:0;display:flex;flex-direction:column;gap:var(--space-3)}
.em-result-advice li{display:flex;gap:var(--space-3);align-items:flex-start;background:var(--surface-card);border:1px solid var(--border-default);border-radius:var(--radius-md);padding:var(--space-4) var(--space-5);font:var(--text-body-sm);color:var(--text-secondary);line-height:1.5}
.em-result-advice li::before{content:'→';color:var(--accent-primary);font-weight:700;flex:none}
.em-result-actions{display:flex;gap:var(--space-4);justify-content:center;flex-wrap:wrap;margin-top:var(--space-7)}

/* ---------- Area Riservata: pannello pulito (niente carta millimetrata/puntine — quella texture è per i form pubblici, non per un cruscotto) ---------- */
.em-area-panel{background:var(--surface-card);border:1px solid var(--border-default);border-radius:var(--radius-lg);padding:var(--space-6)}
.em-area-panel .em-form-row{gap:var(--space-4);margin-bottom:var(--space-4)}
.em-area-panel .em-form-field{margin-bottom:var(--space-4)}

.em-tabs__nav{display:flex;gap:var(--space-2);border-bottom:1px solid var(--border-default);margin-bottom:var(--space-5);flex-wrap:wrap}
.em-tabs__btn{padding:10px 4px;margin-right:var(--space-5);font:var(--text-body-sm);font-weight:600;color:var(--text-muted);background:none;border:none;border-bottom:2px solid transparent;cursor:pointer;white-space:nowrap}
.em-tabs__btn:hover{color:var(--text-primary)}
.em-tabs__btn.is-active{color:var(--accent-primary);border-bottom-color:var(--accent-primary)}

/* ---------- Shared decorative background patterns (visual audit pass) ----------
   Add <div class="em-pattern-X" aria-hidden="true"></div> as the FIRST child of a
   position:relative;overflow:hidden section; give the section's real content
   position:relative;z-index:1 so it stays above the pattern. Pure CSS, no new
   image assets, colors sourced from tokens.css only. */
.em-pattern-grid,.em-pattern-dots,.em-pattern-corners,.em-pattern-diagonal{position:absolute;inset:0;z-index:0;pointer-events:none}

.em-pattern-grid{background-image:linear-gradient(var(--concrete-200) 1px, transparent 1px),linear-gradient(90deg, var(--concrete-200) 1px, transparent 1px);background-size:56px 56px;opacity:0.5;-webkit-mask-image:radial-gradient(ellipse 80% 70% at 50% 40%, black, transparent);mask-image:radial-gradient(ellipse 80% 70% at 50% 40%, black, transparent)}

.em-pattern-dots{background-image:radial-gradient(var(--ink-700) 1.4px, transparent 1.4px);background-size:26px 26px;opacity:0.32}
.em-pattern-dots--dark{background-image:radial-gradient(var(--paper-000) 1.4px, transparent 1.4px);background-size:28px 28px;opacity:0.08}

.em-pattern-corners::before,.em-pattern-corners::after{content:'';position:absolute;width:26px;height:26px;border-color:var(--concrete-400)}
.em-pattern-corners::before{top:var(--space-5);left:var(--space-5);border-top:2px solid;border-left:2px solid}
.em-pattern-corners::after{bottom:var(--space-5);right:var(--space-5);border-bottom:2px solid;border-right:2px solid}

.em-pattern-diagonal{background-image:repeating-linear-gradient(45deg, var(--concrete-300) 0, var(--concrete-300) 1px, transparent 1px, transparent 14px);opacity:0.35}
.em-pattern-diagonal--dark{background-image:repeating-linear-gradient(45deg, var(--paper-000) 0, var(--paper-000) 1px, transparent 1px, transparent 14px);opacity:0.05}

/* Shared hero photo banner (real sourced photos, visual audit pass) */
.em-hero-photo{border-radius:var(--radius-lg);overflow:hidden;margin:0 0 var(--space-7);box-shadow:var(--shadow-md)}
.em-hero-photo + .em-ai-image-credit{margin-top:calc(-1 * var(--space-7) + 6px)}
.em-ai-image-credit{font:var(--text-caption);color:var(--text-muted);opacity:0.75;margin:0 0 var(--space-6);text-align:center}
.em-hero-photo img{display:block;width:100%;height:auto;max-height:360px;object-fit:cover}

/* Full-bleed dark hero background photo (e.g. .em-section-dark with min-height) */
.em-hero-photo-bg{position:absolute;inset:0;z-index:0}
.em-hero-photo-bg img{width:100%;height:100%;object-fit:cover}
/* Optional video layer over the same-frame poster photo — the <img> stays
   underneath as the permanent fallback, so a slow connection or
   prefers-reduced-motion (which hides the video) never leaves a gap. */
.em-hero-photo-bg__video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
@media (prefers-reduced-motion: reduce){
	.em-hero-photo-bg__video{display:none}
}
.em-hero-photo-overlay{position:absolute;inset:0;z-index:1;background:linear-gradient(180deg, rgba(20,23,26,0.55) 0%, rgba(20,23,26,0.72) 100%)}
.em-tabs__panel[hidden]{display:none}
