:root{--navy:#071a35;--navy-2:#0b315f;--gold:#d4a73e;--paper:#f4f6f9;--ink:#122033;--muted:#64748b;--line:#dce4ee;--white:#fff;--radius:1.25rem;--shadow:0 18px 50px rgba(7,26,53,.12);font-size:100%}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font-family:Inter,system-ui,-apple-system,"Segoe UI",sans-serif}body.dark-theme{--paper:#091425;--ink:#edf4ff;--muted:#b8c6da;--line:#31435c;--white:#102039}body.high-contrast{--navy:#000;--navy-2:#000;--gold:#ffdf00;--paper:#fff;--ink:#000;--muted:#111;--line:#000;--white:#fff}body.high-contrast *{box-shadow:none!important}a,button,input,select,textarea{font:inherit}a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid #f5b800!important;outline-offset:3px}[v-cloak]{display:none}.skip-link{position:fixed;left:1rem;top:-100px;z-index:9999;background:#fff;color:#000;padding:.75rem 1rem}.skip-link:focus{top:1rem}.site-header{background:var(--navy);box-shadow:0 8px 24px rgba(0,0,0,.18)}.navbar{min-height:76px}.navbar-brand span:last-child{display:flex;flex-direction:column;line-height:1.05}.navbar-brand small{font-size:.68rem;text-transform:uppercase;letter-spacing:.1em;opacity:.75}.brand-mark{width:42px;height:42px;display:grid;place-items:center;border:1px solid rgba(255,255,255,.3);border-radius:12px;color:var(--gold)}.nav-link{border-radius:999px;padding:.55rem .85rem!important}.nav-link.active,.nav-link:hover{background:rgba(255,255,255,.12);color:#fff!important}.language-select{width:70px;background-color:rgba(255,255,255,.1);color:#fff;border-color:rgba(255,255,255,.3)}.language-select option{color:#000}.btn-gold{background:linear-gradient(#e4bf61,#c69325);border:0;color:#101828;font-weight:800}.ai-notice{background:#e8f0ff;color:#173d78;font-size:.82rem;padding:.45rem}.hero{min-height:600px;display:flex;align-items:center;background:linear-gradient(90deg,rgba(4,18,38,.92),rgba(4,18,38,.35)),url('../../assets/img/noto-hero.svg') center/cover;color:#fff}.hero-content{padding-top:4rem;padding-bottom:7rem}.hero h1{font-family:Georgia,serif;font-size:clamp(2.8rem,6vw,5.7rem);line-height:1.02;max-width:900px}.hero p{max-width:700px;font-size:1.25rem;color:#e7edf7}.eyebrow{display:inline-flex;gap:.5rem;align-items:center;text-transform:uppercase;letter-spacing:.1em;font-size:.78rem;font-weight:900;color:var(--gold);margin-bottom:1rem}.eyebrow.dark{color:#8a6515}.quick-actions{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem;margin-top:-70px;position:relative}.action-card,.content-card,.event-tile,.filter-panel,.event-row,.operator-chat,.ai-panel{background:var(--white);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow)}.action-card{padding:1.5rem;cursor:pointer}.action-card>i{font-size:2rem;color:#17457f}.action-card h2{font-size:1.12rem;margin-top:1rem}.action-card p{color:var(--muted)}.action-card span{font-weight:800;color:#17457f}.section-heading{display:flex;justify-content:space-between;align-items:end;margin-bottom:1.5rem}.section-heading h2,.page-heading h1{font-family:Georgia,serif;font-weight:700}.event-tile{height:100%;padding:1.25rem;display:flex;gap:1rem}.event-date{min-width:65px;text-align:center;color:#173d70}.event-date strong{display:block;font-size:2rem;line-height:1}.event-date span{font-weight:900}.event-tile h3{font-size:1.05rem}.event-tile p{color:var(--muted)}.page-section{padding-top:4rem;padding-bottom:5rem}.page-heading{max-width:760px;margin-bottom:2rem}.page-heading h1{font-size:clamp(2.2rem,4vw,4rem)}.page-heading p{font-size:1.15rem;color:var(--muted)}.filter-panel{padding:1.25rem}.results-count{color:var(--muted);margin:1.25rem 0}.event-list{display:grid;gap:1rem}.event-row{display:grid;grid-template-columns:80px 1fr auto;align-items:center;gap:1.5rem;padding:1.25rem}.event-main h2{font-size:1.25rem;margin:.5rem 0}.event-main p{margin:.25rem 0;color:var(--muted)}.availability{height:6px;background:var(--line);border-radius:99px;max-width:280px;margin-top:.8rem;overflow:hidden}.availability span{display:block;height:100%;background:#198754}.empty-state{text-align:center;padding:4rem;background:var(--white);border-radius:var(--radius)}.empty-state i{font-size:3rem}.content-card{padding:clamp(1.25rem,3vw,2rem)}.content-card h2{font-family:Georgia,serif}.access-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1rem;margin:2rem 0}.access-grid article{padding:1rem;border:1px solid var(--line);border-radius:1rem}.access-grid i{font-size:1.8rem;color:#16457d}.access-grid h3{font-size:1rem;margin-top:.5rem}.access-grid p{color:var(--muted);margin:0}.aside-card{top:130px}.contact-list{list-style:none;padding:0;display:grid;gap:1rem}.contact-list li{display:flex;gap:1rem}.contact-list i{font-size:1.4rem;color:#17457f}.contact-list strong{display:block}.phone{font-size:1.5rem;font-weight:900;color:#17457f}.simplified-box{background:#fff6d8;color:#3d3211;padding:1rem;border-radius:.75rem}.channel-tabs{display:grid;grid-template-columns:repeat(3,1fr);background:var(--white);border:1px solid var(--line);border-radius:1rem;margin-bottom:1.5rem;overflow:hidden}.channel-tabs button{border:0;border-bottom:4px solid transparent;background:transparent;padding:1rem;font-weight:800;color:var(--ink)}.channel-tabs button i{margin-right:.5rem}.channel-tabs button.active{border-bottom-color:#17457f;color:#17457f;background:#eef5ff}.operator-chat,.ai-panel{overflow:hidden}.chat-scroll{padding:1.5rem;min-height:380px;max-height:520px;overflow:auto}.chat-message{max-width:75%;margin-bottom:1rem}.chat-message small{display:block;color:var(--muted);margin-bottom:.25rem}.chat-message p{background:#edf1f6;color:#122033;padding:.85rem 1rem;border-radius:1rem;margin:0}.chat-message.user{margin-left:auto}.chat-message.user p{background:var(--navy);color:#fff}.chat-composer{padding:1rem;border-top:1px solid var(--line);display:flex;gap:.5rem;background:var(--white)}.form-card{max-width:850px}.ai-panel-header{background:var(--navy);color:#fff;padding:1.25rem;display:flex;justify-content:space-between}.ai-panel-header>div{display:grid;grid-template-columns:auto 1fr;column-gap:.75rem}.ai-panel-header>div>span{grid-row:1/3;font-size:1.5rem}.ai-panel-header small{opacity:.75}.status-dot{color:#75dfa7}.ai-scroll{background:var(--white)}.suggestion-list{display:flex;gap:.5rem;flex-wrap:wrap;padding:0 1rem 1rem;background:var(--white)}.suggestion-list button{border:1px solid var(--line);border-radius:999px;background:var(--white);color:var(--ink);padding:.5rem .8rem}.citations{list-style:none;padding:.5rem 0 0;margin:0;color:#345f96;font-size:.82rem}.typing{color:var(--muted)}.access-tools{position:fixed;right:1rem;top:145px;z-index:1020;display:flex;flex-direction:column;background:#fff;border:1px solid #ccd6e4;border-radius:.75rem;overflow:hidden;box-shadow:0 12px 30px rgba(0,0,0,.16)}.access-tools button{width:48px;height:48px;border:0;border-bottom:1px solid #dde4ed;background:#fff;color:#071a35;font-weight:900}.site-footer{background:var(--navy);color:#fff;padding:3rem 1rem}.site-footer h2{font-family:Georgia,serif}.site-footer h3{font-size:1rem}.site-footer a{display:block;color:#d7e1ef;text-decoration:none;margin:.5rem 0}.booking-steps{display:flex;justify-content:center;gap:5rem;margin:0 0 1.5rem}.booking-steps span{width:34px;height:34px;border-radius:50%;background:#dce3ed;display:grid;place-items:center;font-weight:900}.booking-steps span.active{background:#17457f;color:#fff}.summary-box{background:#f3f6fa;padding:1rem;border-radius:1rem;color:#122033}.summary-box dl{display:grid;grid-template-columns:130px 1fr}.summary-box dd{margin:0 0 .5rem}.app-toast{position:fixed;right:1.5rem;bottom:1.5rem;z-index:9999;background:#146c43;color:#fff;padding:1rem 1.25rem;border-radius:.75rem;box-shadow:var(--shadow)}.app-toast i{margin-right:.5rem}@media(max-width:991px){.quick-actions{grid-template-columns:repeat(2,1fr)}.event-row{grid-template-columns:65px 1fr}.event-row>.btn{grid-column:1/-1}.access-tools{top:auto;bottom:1rem;right:1rem;flex-direction:row}.access-grid{grid-template-columns:1fr}}@media(max-width:575px){.hero{min-height:540px}.hero-content{padding-bottom:6rem}.quick-actions{grid-template-columns:1fr;margin-top:-40px}.section-heading{display:block}.section-heading button{margin-top:1rem}.event-row{grid-template-columns:1fr}.event-date{text-align:left}.channel-tabs{grid-template-columns:1fr}.chat-message{max-width:92%}.booking-steps{gap:2rem}}
/* Miglioramenti WCAG 2.1 AA */
.btn-primary{--bs-btn-color:#fff;--bs-btn-bg:#8a6515;--bs-btn-border-color:#8a6515;--bs-btn-hover-color:#fff;--bs-btn-hover-bg:#6f4f0f;--bs-btn-hover-border-color:#6f4f0f;--bs-btn-focus-shadow-rgb:212,167,62;--bs-btn-active-color:#fff;--bs-btn-active-bg:#5f430c;--bs-btn-active-border-color:#5f430c;--bs-btn-disabled-color:#fff;--bs-btn-disabled-bg:#8a6515;--bs-btn-disabled-border-color:#8a6515}
.btn-outline-primary{--bs-btn-color:#76530f;--bs-btn-border-color:#8a6515;--bs-btn-hover-color:#fff;--bs-btn-hover-bg:#8a6515;--bs-btn-hover-border-color:#8a6515;--bs-btn-focus-shadow-rgb:212,167,62;--bs-btn-active-color:#fff;--bs-btn-active-bg:#6f4f0f;--bs-btn-active-border-color:#6f4f0f}
.btn-link{--bs-btn-color:#76530f;--bs-btn-hover-color:#5f430c}
.hero{background-image:linear-gradient(90deg,rgba(4,18,38,.94) 0%,rgba(4,18,38,.76) 38%,rgba(4,18,38,.22) 72%,rgba(4,18,38,.08) 100%),url('../img/noto-hero-v2.png');background-position:center;background-size:cover;background-repeat:no-repeat}
.action-card{color:var(--ink);text-decoration:none;text-align:left}.action-card:hover{color:var(--ink)}
[tabindex]:focus-visible{outline:3px solid #f5b800!important;outline-offset:3px}
body.dark-theme{--muted:#c7d2e2;--line:#60728a}body.dark-theme .badge.text-bg-light{color:#111!important}body.dark-theme .form-label,body.dark-theme label{color:var(--ink)}
body.dark-theme .modal-content,body.dark-theme .p-dialog,body.dark-theme .p-dialog .p-dialog-content,body.dark-theme .p-dialog .p-dialog-header{background:var(--white);color:var(--ink)}
body.high-contrast a{text-decoration:underline}body.high-contrast .btn,body.high-contrast button{text-decoration:none;border:2px solid currentColor}
.form-control:invalid:not(:placeholder-shown),.form-select:invalid{border-color:#b42318}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}
