body{margin:0;background:#FFFFFF;color:#1A1A1A;font-family:'Source Sans 3',system-ui,sans-serif;-webkit-font-smoothing:antialiased}
a{color:#811418}a:hover{color:#5C0D10}
h1,h2,h3,p{text-wrap:pretty}
.nl{color:#1A1A1A;text-decoration:none;font-size:17px;font-weight:600;padding:8px 0;border-bottom:2px solid transparent;transition:border-color .2s,color .2s}
.nl:hover{color:#811418;border-bottom-color:#811418}
.nl-on{border-bottom-color:#811418}
.btn{display:inline-flex;align-items:center;gap:10px;min-height:52px;padding:0 26px;background:#811418;color:#FFFFFF;text-decoration:none;font-weight:700;font-size:16px;border:0;border-radius:999px;cursor:pointer;font-family:inherit;transition:background .25s,transform .25s}
.btn:hover{transform:translateY(-1px)}
.btn:hover{background:#5C0D10;color:#FFFFFF}
.btn-w{display:inline-flex;align-items:center;gap:10px;min-height:52px;padding:0 26px;background:#FFFFFF;color:#1A1A1A;text-decoration:none;font-weight:700;font-size:16px;border:0;border-radius:999px;cursor:pointer;font-family:inherit;transition:background .25s}
.btn-w:hover{background:#F3F3F1;color:#1A1A1A}
.btn-o{display:inline-flex;align-items:center;gap:10px;min-height:52px;padding:0 26px;background:transparent;color:#1A1A1A;text-decoration:none;font-weight:700;font-size:16px;border:1.5px solid #1A1A1A;border-radius:999px;cursor:pointer;font-family:inherit;transition:background .25s,color .25s}
.btn-o:hover{background:#1A1A1A;color:#FFFFFF}
.lk{color:#1A1A1A;text-decoration:none;font-weight:700;font-size:16px;display:inline-flex;align-items:center;gap:8px;border-bottom:2px solid #811418;padding-bottom:2px}
.lk:hover{color:#811418}
.card{text-decoration:none;color:#1A1A1A;display:flex;flex-direction:column;gap:14px}
.card{transition:transform .4s cubic-bezier(.2,.7,.2,1)}
.card:hover{color:#1A1A1A;transform:translateY(-6px)}
.card:hover .ttl{text-decoration:underline;text-decoration-color:#811418;text-underline-offset:4px}
.card:hover .zoom{transform:scale(1.04)}
.zoom{transition:transform .7s cubic-bezier(.2,.7,.2,1)}
.ph{background-color:#E6E4DF;background-image:repeating-linear-gradient(135deg,rgba(26,26,26,.06) 0 1px,transparent 1px 14px)}
.phd{background-color:#2B2B2B;background-image:repeating-linear-gradient(135deg,rgba(255,255,255,.06) 0 1px,transparent 1px 14px)}
.fl{color:#FFFFFF;text-decoration:none;font-size:15px;opacity:.85}.fl:hover{opacity:1;text-decoration:underline}
.ib{width:48px;height:48px;border-radius:50%;border:1.5px solid #1A1A1A;background:#FFFFFF;display:flex;align-items:center;justify-content:center;cursor:pointer;color:#1A1A1A;transition:background .2s,color .2s}
.ib:hover{background:#1A1A1A;color:#FFFFFF}
.hl{background-image:linear-gradient(rgba(129,20,24,.16),rgba(129,20,24,.16));background-repeat:no-repeat;background-size:100% .6em;background-position:0 100%;-webkit-box-decoration-break:clone;box-decoration-break:clone;animation:hlin 1.1s cubic-bezier(.2,.7,.2,1) .5s both;padding:0 .08em}
.hl-w{background-image:linear-gradient(rgba(255,255,255,.3),rgba(255,255,255,.3));background-repeat:no-repeat;background-size:100% .6em;background-position:0 100%;-webkit-box-decoration-break:clone;box-decoration-break:clone;animation:hlin 1.1s cubic-bezier(.2,.7,.2,1) .5s both;padding:0 .08em}
@keyframes hlin{from{background-size:0% .6em}to{background-size:100% .6em}}
.ul{text-decoration:underline;text-decoration-color:#811418;text-decoration-thickness:2px;text-underline-offset:5px;transition:text-decoration-thickness .25s,text-underline-offset .25s}
.ul:hover{text-decoration-thickness:4px;text-underline-offset:3px}
.ul-w{text-decoration:underline;text-decoration-color:rgba(255,255,255,.7);text-decoration-thickness:2px;text-underline-offset:5px}
b,strong{font-weight:700;color:inherit}
@keyframes up{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}
.up{animation:up .9s cubic-bezier(.2,.7,.2,1) both}
.d1{animation-delay:.1s}.d2{animation-delay:.2s}.d3{animation-delay:.3s}
input,select,textarea{font-family:inherit}
input:focus,select:focus,textarea:focus{outline:2px solid #811418;outline-offset:2px}
@media (prefers-reduced-motion:reduce){.up,.hl,.hl-w{animation:none}}

/* ---------- schermi ampi: layout a tutta larghezza ---------- */
@media (min-width: 1500px){
 .topbar, header{padding-left:max(5vw, calc((100% - 1600px) / 2)) !important;padding-right:max(5vw, calc((100% - 1600px) / 2)) !important}
 header{height:116px !important}
 header.sh.hdr-over{margin-bottom:-116px !important}
 header img{height:70px !important}
 header nav{gap:44px !important}
 .nl{font-size:18px !important}
 main > section{padding-left:max(5vw, calc((100% - 1600px) / 2)) !important;padding-right:max(5vw, calc((100% - 1600px) / 2)) !important}
 main > section[style*="margin: 0 24px"], main > section[style*="margin: 24px 24px 0"]{margin-left:max(1.6vw, calc((100% - 1680px) / 2)) !important;margin-right:max(1.6vw, calc((100% - 1680px) / 2)) !important;padding-left:max(4vw, 40px) !important;padding-right:max(4vw, 40px) !important}
 main > section[style*="margin: 0 24px"][style*="padding: 72px 64px"], main > section[style*="margin: 0 24px"][style*="padding: 80px 56px"], main > section[style*="margin: 0 24px"][style*="padding: 64px 56px"], main > section[style*="margin: 0 24px"][style*="padding: 72px 56px"]{padding-left:min(4vw, 80px) !important;padding-right:min(4vw, 80px) !important}
 main > section[style*="margin: 0 64px"], main > section[style*="margin: 72px 64px"]{margin-left:max(5vw, calc((100% - 1600px) / 2)) !important;margin-right:max(5vw, calc((100% - 1600px) / 2)) !important}
 main > section[style*="height: 680px"]{height:min(86vh, 920px) !important;margin:24px max(1.6vw, calc((100% - 1680px) / 2)) 0 !important;padding:0 !important}
 main > section[style*="margin: 0 64px"]{padding-left:0 !important;padding-right:0 !important}
 main > section[style*="height: 680px"] h1{font-size:clamp(104px, 7.4vw, 156px) !important}
 [style*="left: 64px; right: 64px"]{left:min(5vw, 96px) !important;right:min(5vw, 96px) !important;bottom:6vh !important;max-width:min(60vw, 1100px) !important}
 [style*="left: 64px; right: 64px"] p{font-size:clamp(26px, 1.7vw, 34px) !important}
 h1{font-size:clamp(80px, 5.4vw, 116px) !important}
 h2{font-size:clamp(46px, 3.1vw, 68px) !important}
 p[style*="font-size: 17px"], p[style*="font-size: 18px"]{font-size:clamp(17px, 1.06vw, 21px) !important}
 p[style*="font-size: 22px"]{font-size:clamp(22px, 1.35vw, 27px) !important}
 [style*="height: 560px"]:not([style*="min-height"]){height:min(62vh, 760px) !important}
 [style*="height: 590px"]{height:clamp(590px, 36vw, 780px) !important}
 [style*="height: 520px"]{height:clamp(520px, 32vw, 700px) !important}
 [style*="height: 640px"]{height:clamp(640px, 40vw, 840px) !important}
 .g-med > div{height:clamp(360px, 22vw, 480px) !important}
 footer{padding-left:max(5vw, calc((100% - 1600px) / 2)) !important;padding-right:max(5vw, calc((100% - 1600px) / 2)) !important}
}
/* ---------- animazioni di ingresso allo scroll ---------- */
@keyframes rv-up{from{opacity:0;transform:translateY(42px);filter:blur(6px)}to{opacity:1;transform:none;filter:blur(0)}}
@keyframes rv-img{from{clip-path:inset(18% 0 0 0 round 24px);transform:scale(1.12);opacity:.2}to{clip-path:inset(0 0 0 0 round 0);transform:none;opacity:1}}
@keyframes rv-line{from{opacity:0;letter-spacing:.3em}to{opacity:1}}
@supports (animation-timeline: view()){
 main h2, main h3, main p, main figcaption, main .lk, main .btn, main .btn-o, main nav[aria-label="Percorso"]{animation:rv-up linear both;animation-timeline:view();animation-range:entry 0% cover 28%}
 main span[style*="text-transform: uppercase"][style*="letter-spacing: .08em"]{animation:rv-line linear both;animation-timeline:view();animation-range:entry 0% cover 25%}
 main img:not([style*="opacity"]), main .ph, main .phd{animation:rv-img linear both;animation-timeline:view();animation-range:entry 0% cover 40%}
 main > section[style*="height: 680px"] *{animation-timeline:auto !important}
 main > section[style*="height: 680px"] img, main > section[style*="height: 680px"] p, main > section[style*="height: 680px"] .btn{animation:none !important}
 main .card, .g-4 > div, .g-6 > div, .g-med > div, main [style*="border-radius: 20px; padding: 40px"]{animation:rv-up linear both;animation-timeline:view();animation-range:entry 0% cover 30%}
 .g-4 > :nth-child(2), .g-6 > :nth-child(2), .g-med > :nth-child(2){animation-range:entry 8% cover 34%}
 .g-4 > :nth-child(3), .g-6 > :nth-child(3), .g-med > :nth-child(3){animation-range:entry 16% cover 38%}
 .g-4 > :nth-child(4), .g-6 > :nth-child(4), .g-med > :nth-child(4){animation-range:entry 24% cover 42%}
 .g-6 > :nth-child(n+5), .g-med > :nth-child(5){animation-range:entry 32% cover 46%}
 main .card img, main .card .ph, .g-med img{animation:none}
 .snap, .snap *{animation:none !important}
}
@media (prefers-reduced-motion: reduce){ main *{animation:none !important} }

.hphone .hph-i{transition:background .25s,transform .25s}
.hphone:hover .hph-i{background:#811418 !important;transform:rotate(-12deg)}
.hphone:hover .hph-i svg{stroke:#FFFFFF}
.hphone:hover{color:#811418 !important}
header,footer,main{flex-shrink:0}
.tabbar{display:none}
@media (min-width: 681px) and (max-width: 1100px){
 main > section{padding-left:32px !important;padding-right:32px !important}
 main > section[style*="margin: 0 24px"], main > section[style*="margin: 0 64px"], main > section[style*="margin: 72px 64px"]{margin-left:16px !important;margin-right:16px !important;padding-left:32px !important;padding-right:32px !important}
 header{padding:0 32px !important}
 .hcta .btn{display:none !important}
 .hph-t{display:none !important}
 .nl{font-size:16px !important;white-space:nowrap}
 header nav{gap:22px !important}
 header nav{gap:26px !important}
 .topbar{padding:0 32px !important}
 .topbar{justify-content:center !important}
 .topbar > span{display:none}
 main > section:has([style*="min-height: 560px"]) > div{grid-column:1 / -1 !important}
 main > section:has([style*="min-height: 560px"]) > div:first-child{margin-bottom:32px}
 [style*="min-height: 560px"]{min-height:420px !important}
 h1{font-size:64px !important}
 section[style*="height: 680px"]{height:560px !important}
 section[style*="height: 680px"] h1{font-size:84px !important}
 h2{font-size:40px !important}
 [style*="grid-template-columns: repeat(12"] > [style*="grid-column: span 4"],[style*="grid-template-columns: repeat(12"] > [style*="grid-column: span 5"]{grid-column:span 6 !important}
 [style*="grid-template-columns: repeat(12"] > [style*="grid-column: 6 / span 7"],[style*="grid-template-columns: repeat(12"] > [style*="grid-column: 7 / span 6"],[style*="grid-template-columns: repeat(12"] > [style*="grid-column: 8 / span 5"],[style*="grid-template-columns: repeat(12"] > [style*="grid-column: 9 / span 4"]{grid-column:7 / span 6 !important}
 [style*="grid-template-columns: repeat(12"] > [style*="grid-column: span 7"]{grid-column:span 12 !important}
 .g-6{grid-template-columns:repeat(3, minmax(0, 1fr)) !important}
 .g-med{grid-template-columns:repeat(3, minmax(0, 1fr)) !important}
 .g-med > div{margin-top:0 !important;height:320px !important}
 .g-4{grid-template-columns:repeat(2, minmax(0, 1fr)) !important}
 footer{padding:0 32px 32px !important}
 footer > div[style*="1.6fr"]{grid-template-columns:1fr 1fr !important;row-gap:40px !important}
 footer > div[style*="1.6fr"] > :first-child{grid-column:1 / -1 !important}
 .snap{display:grid !important;grid-template-columns:none !important;grid-auto-flow:column;grid-auto-columns:42%;overflow-x:auto;scroll-snap-type:x mandatory;padding-bottom:8px;scrollbar-width:none}
 .snap::-webkit-scrollbar{display:none}
 .snap > *{scroll-snap-align:start}
 .ctrls{display:none !important}
 [style*="height: 590px"]{height:460px !important}
}
@media (max-width: 680px){
 main > section{padding-left:20px !important;padding-right:20px !important;padding-top:48px !important;padding-bottom:48px !important}
 main > section[style*="margin: 0 24px"], main > section[style*="margin: 0 64px"], main > section[style*="margin: 72px 64px"]{margin-left:10px !important;margin-right:10px !important;padding:40px 20px !important;border-radius:22px !important}
 main > section[style*="margin: 72px 64px"]{margin-top:40px !important;flex-direction:column;align-items:flex-start !important}
 main > section[style*="height: 680px"]{margin:10px 10px 0 !important;height:560px !important;padding:0 !important;border-radius:22px !important}
 section[style*="height: 680px"] h1{font-size:56px !important}
 [style*="left: 64px; right: 64px"]{left:20px !important;right:20px !important;bottom:28px !important}
 [style*="left: 64px; right: 64px"] p{font-size:20px !important}
 .topbar{padding:0 16px !important;height:36px !important;justify-content:center !important}
 .topbar > span{display:none}
 header{height:68px !important;padding:0 16px !important}
 header img{height:36px !important}
 header{flex-wrap:nowrap !important}
 header nav{display:none !important}
 .hph-t{display:none !important}
 .hcta{gap:8px !important}
 .hph-i{width:42px !important;height:42px !important}
 .hcta .btn{min-height:42px !important;padding:0 14px !important;font-size:14px !important;white-space:nowrap}
 h1{font-size:44px !important;line-height:1.05 !important}
 h2{font-size:32px !important;line-height:1.12 !important}
 p{font-size:16px !important}
 [style*="grid-template-columns"]{grid-template-columns:1fr !important}
 [style*="grid-template-rows"]{grid-template-rows:none !important}
 [style*="grid-column"]{grid-column:auto !important}
 [style*="grid-row"]{grid-row:auto !important}
 .g-6{grid-template-columns:repeat(2, minmax(0, 1fr)) !important;gap:12px !important}
 .g-med{grid-template-columns:repeat(2, minmax(0, 1fr)) !important;gap:12px !important}
 .g-med > div{height:240px !important;margin-top:0 !important}
 .g-med > div:last-child{grid-column:1 / -1 !important;height:300px !important}
 .g-4{grid-template-columns:repeat(2, minmax(0, 1fr)) !important;gap:12px !important}
 .g-4 > div{flex-direction:column !important;align-items:flex-start !important;padding:18px !important}
 .g-4 > div span[style*="font-size: 34px"], .g-4 > div span[style*="font-size: 24px"]{font-size:22px !important}
 [style*="justify-content: space-between"]{flex-wrap:wrap;row-gap:16px !important}
 [style*="display: flex; gap: 12px"]{flex-wrap:wrap}
 [style*="column-gap: 24px"],[style*="column-gap: 32px"]{row-gap:28px !important}
 [style*="height: 640px"],[style*="height: 620px"],[style*="height: 590px"],[style*="height: 560px"],[style*="height: 520px"],[style*="height: 480px"],[style*="height: 440px"],[style*="height: 430px"],[style*="height: 420px"],[style*="height: 360px"],[style*="height: 320px"],[style*="height: 300px"]{height:250px !important;min-height:0 !important}
 [style*="min-height: 560px"]{min-height:260px !important}
 [style*="height: 590px"]{height:240px !important}
 .snap{display:grid !important;grid-template-columns:none !important;grid-auto-flow:column;grid-auto-columns:82%;gap:14px !important;overflow-x:auto;scroll-snap-type:x mandatory;padding-bottom:8px;scrollbar-width:none}
 .snap > *{scroll-snap-align:start}
 .ctrls{display:none !important}
 img[style*="opacity: .1"], img[style*="opacity: .28"]{height:220px !important}
 [style*="padding: 48px 44px"]{padding:28px 22px !important}
 [style*="padding: 56px"]{padding:24px !important}
 [style*="padding: 44px 48px"]{padding:28px 22px !important}
 footer{padding:0 20px 100px !important;border-radius:22px 22px 0 0 !important}
 footer > div[style*="1.6fr"]{grid-template-columns:1fr 1fr !important;row-gap:32px !important}
 footer > div[style*="1.6fr"] > :first-child{grid-column:1 / -1 !important}
 footer > div:last-of-type{flex-direction:column;align-items:flex-start !important;gap:14px}
 .btn,.btn-o,.btn-w,.btn-l{min-height:48px !important;padding:0 20px !important;font-size:15px !important}
 .tabbar{display:flex;position:sticky;bottom:16px;z-index:50;margin:-84px auto 18px;width:max-content;gap:6px;padding:6px;background:rgba(255,255,255,.82);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border:1px solid rgba(26,26,26,.08);border-radius:999px;box-shadow:0 12px 30px -12px rgba(0,0,0,.28)}
 .tabbar a{width:48px;height:48px;border-radius:50%;display:flex;align-items:center;justify-content:center;color:#2A2A2A;font-size:0;line-height:0;text-decoration:none;transition:background .25s,color .25s}
 .tabbar a svg{width:20px;height:20px}
 .tabbar a.on{background:#811418;color:#FFFFFF}
}

.vt-player{width:100%;max-width:none;height:auto !important;aspect-ratio:21 / 9}
.vt-fig{max-width:1040px;width:100%;margin-left:auto;margin-right:auto}
main > section[style*="height: 680px"]{margin:0 !important;padding:0 !important;border-radius:0 !important;width:100% !important;height:min(86vh, 920px) !important}
main > section[style*="height: 680px"] [style*="left: 64px; right: 64px"]{left:max(5vw, calc((100% - 1600px) / 2)) !important;right:max(5vw, calc((100% - 1600px) / 2)) !important}
@media (min-width: 681px) and (max-width: 1100px){ main > section[style*="height: 680px"]{height:640px !important} main > section[style*="height: 680px"] [style*="left: 64px; right: 64px"]{left:32px !important;right:32px !important} }
@media (max-width: 680px){ .vt-player{aspect-ratio:16 / 10} .vt-fig{max-width:320px} main > section[style*="height: 680px"]{height:560px !important} main > section[style*="height: 680px"] [style*="left: 64px; right: 64px"]{left:20px !important;right:20px !important} }

/* header trasparente sopra la hero (solo Home) */
.hdr-over .nl{color:#FFFFFF;text-shadow:0 1px 8px rgba(0,0,0,.35)}
.hdr-over .nl:hover,.hdr-over .nl-on{color:#FFFFFF;border-bottom-color:#FFFFFF}
.hdr-over .hphone{color:#FFFFFF !important}
.hdr-over .hph-t > span:last-child{color:rgba(255,255,255,.82) !important}
.hdr-over .hph-i{background:rgba(255,255,255,.16) !important;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}
.hdr-over .hph-i svg{stroke:#FFFFFF}
.hdr-over .btn{background:#811418;color:#FFFFFF}
.hdr-over .btn:hover{background:#FFFFFF;color:#811418}
.hdr-over ~ main > section[style*="height: 680px"] > div[style*="linear-gradient(180deg, rgba(0,0,0,0) 35%"]{background:linear-gradient(90deg, rgba(0,0,0,.5) 0%, rgba(0,0,0,.18) 45%, rgba(0,0,0,0) 70%), linear-gradient(180deg, rgba(0,0,0,.72) 0%, rgba(0,0,0,.45) 11%, rgba(0,0,0,.12) 24%, rgba(0,0,0,0) 34%, rgba(0,0,0,.08) 48%, rgba(0,0,0,.7) 100%) !important}

/* partner: loghi in scala di grigi, a colori al passaggio */
.plogos > .plogo{position:relative}
.plogos > .plogo + .plogo::before{content:"";position:absolute;left:0;top:22%;bottom:22%;width:1px;background:rgba(26,26,26,.12)}
.plogo img{filter:grayscale(1);opacity:.62;transition:filter .35s ease,opacity .35s ease,transform .35s cubic-bezier(.2,.7,.2,1)}
.plogo:hover img{filter:grayscale(0);opacity:1;transform:scale(1.06)}
@media (max-width: 680px){ .plogos > .plogo + .plogo::before{display:none} .plogos{gap:8px !important} .plogo{background:#FFFFFF} }


/* ---------- footer ---------- */
.ft .fl{position:relative;display:inline-block;align-self:flex-start;text-decoration:none !important;opacity:.78;transition:opacity .25s ease,transform .25s ease}
.ft .fl::after{content:"";position:absolute;left:0;right:0;bottom:-3px;height:1.5px;background:#E7A9AB;transform:scaleX(0);transform-origin:left;transition:transform .3s cubic-bezier(.2,.7,.2,1)}
.ft .fl:hover{opacity:1;transform:translateX(3px)}
.ft a.fl:hover,.ft a.fl:focus-visible{color:#FFFFFF !important}
.ft .fl:hover::after{transform:scaleX(1)}
.ft .fsm{font-size:13px !important;align-self:center}
.ft .fsm:hover{transform:none}
.ft .fh{font-size:12px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:#E7A9AB;padding-bottom:14px;margin-bottom:18px;border-bottom:1px solid rgba(255,255,255,.14);position:relative}
.ft .fh::after{content:"";position:absolute;left:0;bottom:-1px;width:28px;height:2px;background:#C8383E}
.ft .fitem{display:flex;align-items:flex-start;gap:14px;font-size:15px;line-height:1.5;color:rgba(255,255,255,.88);opacity:1}
.ft a.fitem::after{display:none}
.ft .fico{flex:none;width:36px;height:36px;border-radius:50%;background:rgba(255,255,255,.08);display:flex;align-items:center;justify-content:center;color:#F2C4C6;margin-top:-6px}
.ft .fsoc{width:44px;height:44px;border-radius:50%;border:1px solid rgba(255,255,255,.28);display:flex;align-items:center;justify-content:center;color:#FFFFFF;transition:background .25s ease,border-color .25s ease,transform .25s ease}
.ft .fsoc:hover{background:#FFFFFF;border-color:#FFFFFF;color:#1A1A1A;transform:translateY(-3px)}
.ft .fbtn{display:inline-flex;align-items:center;gap:10px;height:54px;padding:0 26px;border-radius:999px;font-weight:700;font-size:16px;text-decoration:none;transition:background .25s ease,color .25s ease,border-color .25s ease,transform .25s ease}
.ft .fbtn svg{transition:transform .25s ease}
.ft .fbtn:hover svg{transform:translateX(4px)}
.ft .fbtn-w{background:#FFFFFF;color:#811418}
.ft .fbtn-w:hover{background:#811418;color:#FFFFFF}
.ft .fbtn-o{border:1.5px solid rgba(255,255,255,.45);color:#FFFFFF}
.ft .fbtn-o:hover{border-color:#FFFFFF;background:rgba(255,255,255,.08)}
.ft .ftop{width:40px;height:40px;border-radius:50%;background:rgba(255,255,255,.1);display:flex;align-items:center;justify-content:center;color:#FFFFFF;transition:background .25s ease,transform .25s ease}
.ft .ftop:hover{background:#FFFFFF;color:#1A1A1A;transform:translateY(-3px)}
@media (max-width: 1100px){ .ft .fcta{flex-direction:column;align-items:flex-start !important;padding:48px 0 40px !important} .ft .fcta div[style*="52px"]{font-size:40px !important} }
@media (max-width: 680px){ .ft .fbr{display:none} .ft .fcta div[style*="52px"]{font-size:32px !important} .ft .fbtns{width:100%} .ft .fbtn{flex:1;justify-content:center;height:50px;padding:0 18px;font-size:15px} .ft .fico{width:32px;height:32px} footer.ft > div[style*="1.6fr"]{padding:40px 0 !important} }


/* footer rosso (variante) */
.ft-red .fkick{color:rgba(255,255,255,.78) !important}
.ft-red .fem{color:#FFFFFF !important}
.ft-red .fh{color:rgba(255,255,255,.78);border-bottom-color:rgba(255,255,255,.22)}
.ft-red .fh::after{background:#FFFFFF}
.ft-red .fl::after{background:#FFFFFF}
.ft-red .fl{opacity:.88}
.ft-red .fitem{color:#FFFFFF}
.ft-red .fico{background:rgba(255,255,255,.14);color:#FFFFFF}
.ft-red .fsoc{border-color:rgba(255,255,255,.45)}
.ft-red .fsoc:hover{background:#FFFFFF;border-color:#FFFFFF;color:#811418}
.ft-red .ftop{background:rgba(255,255,255,.16)}
.ft-red .ftop:hover{background:#FFFFFF;color:#811418}
.ft-red .fbtn-w:hover{background:#1A1A1A;color:#FFFFFF}
.ft-red .fbtn-o{border-color:rgba(255,255,255,.6)}
.ft-red .fbtn-o:hover{background:rgba(255,255,255,.12);border-color:#FFFFFF}
.ft-red .fcta,.ft-red > div[style*="border-top"]{border-color:rgba(255,255,255,.22) !important}
.ft-red > div[style*="border-top"]{color:rgba(255,255,255,.78) !important}
.ft-red .fshield{opacity:.09 !important}


/* contatti */
@media (max-width: 1100px){ .c3{grid-template-columns:1fr !important} .cbook{grid-template-columns:1fr !important;padding:40px 32px !important;gap:32px !important} }
@media (min-width: 681px) and (max-width: 1100px){ .cbook .c3{grid-template-columns:repeat(3, minmax(0, 1fr)) !important} }
@media (max-width: 680px){ .cbook{padding:32px 20px !important;border-radius:22px !important} .c3{gap:16px !important} .c3 > div[style*="padding: 36px"]{padding:28px 24px !important} .cstep{padding:22px 20px !important} }


/* spazio fisso di 50px sopra il footer */
footer.ft{margin-top:50px !important}
main > section:last-child{margin-bottom:0 !important}
main > section:last-child:not([style*="background"]){padding-bottom:0 !important}


/* pagine legali */
.ltoc-a{display:block;padding:7px 10px;margin:0 -10px;border-radius:10px;color:#1A1A1A;text-decoration:none;font-size:15px;line-height:1.35;transition:background .2s,color .2s}
.ltoc-a:hover{background:#FFFFFF;color:#811418}
.lsec{display:flex;flex-direction:column;gap:16px;scroll-margin-top:120px}
.lsec h2{font-size:30px !important;line-height:1.2 !important}
@media (max-width: 680px){ .lsec h2{font-size:25px !important} .lbody{gap:36px !important} }
.lbody a[target]{word-break:break-word}
@media (max-width: 1100px){ .ltoc{display:none !important} .lbody{grid-column:1 / -1 !important} }

img[alt="Visita guidata al museo con una classe"]{object-position:center 12%}
img[alt="Incontro con una classe nella sala del museo"]{object-position:center 26%}

/* cenni storici */
@media (max-width: 1100px){ main > section > .cs-fig[style]{grid-column:1 / -1 !important;max-width:720px} main > section > .cs-txt[style]{grid-column:1 / -1 !important;order:-1;padding-left:0 !important} }


/* timeline cenni storici */
.cs-tl{position:relative;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:20px;padding-top:34px}
.cs-tl::before{content:"";position:absolute;left:0;right:0;top:8px;height:2px;background:#E2E2E2;border-radius:2px}
.cs-tl::after{content:"";position:absolute;left:0;right:0;top:8px;height:2px;background:linear-gradient(90deg,#811418,#C8383E);border-radius:2px;transform-origin:left}
.cs-card{position:relative;display:flex;flex-direction:column;gap:10px;padding:26px 24px 28px;background:#F3F3F1;border-radius:20px;transition:transform .35s cubic-bezier(.2,.7,.2,1),box-shadow .35s ease,background .35s ease}
.cs-card:hover{transform:translateY(-6px);background:#FFFFFF;box-shadow:0 22px 44px -24px rgba(0,0,0,.28)}
.cs-dot{position:absolute;left:24px;top:-34px;width:18px;height:18px;border-radius:50%;background:#FFFFFF;border:3px solid #811418;box-sizing:border-box;transition:transform .3s ease,background .3s ease}
.cs-card:hover .cs-dot{transform:scale(1.25);background:#811418}
.cs-era{font-size:13px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:#811418}
.cs-num{position:absolute;right:20px;top:14px;font-family:'Source Serif 4',Georgia,serif;font-style:italic;font-weight:500;font-size:46px;line-height:1;color:rgba(129,20,24,.14);transition:color .35s ease}
.cs-card:hover .cs-num{color:rgba(129,20,24,.3)}
.cs-ttl{font-family:'Source Serif 4',Georgia,serif;font-weight:600;font-size:22px;line-height:1.25;color:#1A1A1A;padding-right:40px}
.cs-dsc{margin:0;font-size:15px;line-height:1.55;color:#555555}
.cs-card-red{background:linear-gradient(135deg,#931C21,#811418 55%,#5E0D11);color:#FFFFFF}
.cs-card-red:hover{background:linear-gradient(135deg,#9E2228,#8A161B 55%,#650E12)}
.cs-card-red .cs-era{color:rgba(255,255,255,.8)}
.cs-card-red .cs-ttl{color:#FFFFFF}
.cs-card-red .cs-dsc{color:rgba(255,255,255,.88)}
.cs-card-red .cs-num{color:rgba(255,255,255,.22)}
.cs-card-red .cs-dot{background:#811418;box-shadow:0 0 0 6px rgba(129,20,24,.18)}
@keyframes cs-line{from{transform:scaleX(0)}to{transform:scaleX(1)}}
@keyframes cs-in{from{opacity:0;transform:translateY(28px)}to{opacity:1;transform:none}}
@keyframes cs-pulse{0%,100%{box-shadow:0 0 0 6px rgba(129,20,24,.18)}50%{box-shadow:0 0 0 12px rgba(129,20,24,0)}}
.cs-card-red .cs-dot{animation:cs-pulse 2.4s ease-in-out infinite}
@supports (animation-timeline: view()){
 .cs-tl::after{animation:cs-line linear both;animation-timeline:view();animation-range:entry 20% cover 55%}
 .cs-card{animation:cs-in linear both;animation-timeline:view();animation-range:entry 0% cover 30%}
 .cs-card:nth-child(2){animation-range:entry 8% cover 36%}
 .cs-card:nth-child(3){animation-range:entry 16% cover 42%}
 .cs-card:nth-child(4){animation-range:entry 24% cover 48%}
}
@media (max-width: 1100px){ .cs-tl{grid-template-columns:repeat(2,minmax(0,1fr))} }
@media (max-width: 680px){
 .cs-tl{grid-template-columns:1fr;gap:16px;padding-top:0;padding-left:30px}
 .cs-tl::before,.cs-tl::after{left:8px;right:auto;top:0;bottom:0;width:2px;height:auto}
 .cs-tl::after{transform-origin:top}
 .cs-dot{left:-30px;top:26px}
 @keyframes cs-line{from{transform:scaleY(0)}to{transform:scaleY(1)}}
}


/* visite speciali */
@media (max-width: 1100px){ main > section > .vs-img[style]{grid-column:1 / -1 !important} main > section > .vs-txt[style]{grid-column:1 / -1 !important;padding:28px 0 0 !important} }


/* ombra sotto header trasparente in home */
header.sh.hdr-over::before{content:"";position:absolute;left:0;right:0;top:0;height:260px;background:linear-gradient(180deg,rgba(0,0,0,.78) 0%,rgba(0,0,0,.55) 40%,rgba(0,0,0,.22) 72%,rgba(0,0,0,0) 100%);z-index:-1;pointer-events:none;transition:opacity .35s ease}
header.sh.hdr-over.is-scrolled::before{opacity:0}
.hdr-over .hphone, .hdr-over .hlogo{filter:drop-shadow(0 1px 6px rgba(0,0,0,.35))}
@media (max-width: 680px){ header.sh.hdr-over::before{height:170px} }


/* header su schermi medi (tablet orizzontale, laptop piccoli) */
header .nl, header .btn, header .hph-t > span{white-space:nowrap}
@media (min-width: 1101px) and (max-width: 1319px){ header .hph-t{display:none !important} header nav{gap:24px !important} header .btn{padding:0 18px !important} }


/* dove siamo e orari: tablet */
@media (max-width: 1100px){ main > section > .hs-txt[style]{grid-column:1 / -1 !important} }
/* orari visita: niente a capo dentro gli orari */
.nowrap{white-space:nowrap}
@media (max-width: 1300px){ .cs-tl{grid-template-columns:repeat(2,minmax(0,1fr))} }


/* tablet: info visita e timeline */
@media (max-width: 1100px){ main > section.vinfo[style]{grid-template-columns:1fr !important;gap:16px !important} }
@media (max-width: 1300px) and (min-width: 681px){ .cs-tl::before,.cs-tl::after{display:none} .cs-tl{padding-top:0} .cs-dot{display:none} }

@media (max-width: 680px){ .cta-shield{height:170px !important;right:-20px !important;bottom:-30px !important} }
@media (max-width: 1100px){ main > section > .sede-img[style]{grid-column:1 / -1 !important;max-width:560px} main > section > .sede-img [style*="height: 400px"]{height:320px !important} }
img[alt="Documenti e libretti in vetrina"]{object-position:center 45%}
@media (max-width: 680px){ .md-side[style]{height:auto !important;grid-template-rows:auto auto !important;gap:14px !important} .md-side > div{height:230px} }
/* ---------- header sticky: barra bordeaux allo scroll (opzione D) ---------- */
header.sh{transition:background .35s ease,height .35s ease,margin .35s ease,box-shadow .35s ease}
header.sh .lg-a,header.sh .lg-b{transition:opacity .3s ease,height .35s ease}
header.sh .nl,header.sh .hphone,header.sh .btn{transition:color .3s ease,background .3s ease,border-color .3s ease}
header.sh.is-scrolled{background:#811418 !important;height:76px !important;box-shadow:0 12px 30px -16px rgba(0,0,0,.5)}
header.sh.hdr-over.is-scrolled{margin-bottom:-76px !important}
header.sh.is-scrolled .lg-a{opacity:0}
header.sh.is-scrolled .lg-b{opacity:1 !important}
header.sh.is-scrolled .hlogo img{height:46px !important}
header.sh.is-scrolled .nl{color:#FFFFFF !important;text-shadow:none !important}
header.sh.is-scrolled .nl:hover,header.sh.is-scrolled .nl-on{border-bottom-color:#FFFFFF !important}
header.sh.is-scrolled .hphone{color:#FFFFFF !important}
header.sh.is-scrolled .hph-t > span:last-child{color:rgba(255,255,255,.8) !important}
header.sh.is-scrolled .hph-i{background:rgba(255,255,255,.16) !important}
header.sh.is-scrolled .hph-i svg{stroke:#FFFFFF !important}
header.sh.is-scrolled .btn{background:#FFFFFF !important;color:#811418 !important}
header.sh.is-scrolled .btn:hover{background:#1A1A1A !important;color:#FFFFFF !important}
@media (max-width: 680px){ header.sh.hdr-over{margin-bottom:-68px !important} header.sh.is-scrolled{height:60px !important} header.sh.hdr-over.is-scrolled{margin-bottom:-60px !important} header.sh.is-scrolled .hlogo img{height:32px !important} }
@supports (animation-timeline: scroll()){
 header.sh{animation:sh-bg linear both;animation-timeline:scroll(root);animation-range:30px 130px}
 header.sh .lg-a{animation:sh-out linear both;animation-timeline:scroll(root);animation-range:30px 130px}
 header.sh .lg-b{animation:sh-in linear both;animation-timeline:scroll(root);animation-range:30px 130px}
 header.sh .nl, header.sh .hphone{animation:sh-white linear both;animation-timeline:scroll(root);animation-range:30px 130px}
 header.sh .hph-i{animation:sh-ico linear both;animation-timeline:scroll(root);animation-range:30px 130px}
 header.sh .btn{animation:sh-btn linear both;animation-timeline:scroll(root);animation-range:30px 130px}
 header.sh .hph-i svg{animation:sh-stroke linear both;animation-timeline:scroll(root);animation-range:30px 130px}
}
@keyframes sh-stroke{to{stroke:#FFFFFF}}
@keyframes sh-bg{to{background:#811418;box-shadow:0 12px 30px -16px rgba(0,0,0,.5)}}
@keyframes sh-out{to{opacity:0}}
@keyframes sh-in{to{opacity:1}}
@keyframes sh-white{to{color:#FFFFFF;text-shadow:none}}
@keyframes sh-ico{to{background:rgba(255,255,255,.16)}}
@keyframes sh-btn{to{background:#FFFFFF;color:#811418}}

/* ---- sito reale ---- */
html{scroll-behavior:smooth}
img{max-width:100%}
.snap::-webkit-scrollbar{display:none}
.snap > *{scroll-snap-align:start}
[hidden]{display:none !important}
@media (min-width: 681px) and (max-width: 1100px){ .snap{grid-auto-columns:42% !important} }
@media (max-width: 680px){ .snap{grid-auto-columns:82% !important} }
/* animazioni di ingresso — fallback per browser senza scroll-timeline */
.rv{opacity:0;transform:translateY(36px);filter:blur(6px);transition:opacity .9s cubic-bezier(.2,.7,.2,1),transform .9s cubic-bezier(.2,.7,.2,1),filter .9s ease}
.rv-img{clip-path:inset(16% 0 0 0 round 24px);transform:scale(1.1);opacity:.25;transition:clip-path 1.2s cubic-bezier(.2,.7,.2,1),transform 1.4s cubic-bezier(.2,.7,.2,1),opacity 1s ease}
.rv.in,.rv-img.in{opacity:1;transform:none;filter:none;clip-path:inset(0 0 0 0 round 0)}
@media (prefers-reduced-motion: reduce){.rv,.rv-img{opacity:1 !important;transform:none !important;filter:none !important;clip-path:none !important;transition:none !important}}

.vt-gal{max-width:1140px;margin-left:auto;margin-right:auto}
.vt-gal > div{height:220px !important}
@media (max-width: 680px){ .vt-gal{grid-template-columns:repeat(3, minmax(0, 1fr)) !important;gap:8px !important} .vt-gal > div{height:90px !important;border-radius:10px !important} main > section[style*="height: 680px"]{height:72vh !important;min-height:520px} }


/* ---------- aggiornamento: footer loghi, pagina Eventi, menu a 6 voci ---------- */
.ft .mi-badge{display:inline-flex;align-items:center;gap:14px;align-self:flex-start;text-decoration:none;color:rgba(255,255,255,.72);font-size:12px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;line-height:1.4;transition:color .25s}
.ft .mi-badge:hover{color:#FFFFFF}
.ft .mi-logo{background:#FFFFFF;border-radius:12px;display:flex;flex:none}
.ev{display:flex;flex-direction:column;background:#FFFFFF;border-radius:24px;overflow:hidden;transition:transform .35s cubic-bezier(.2,.7,.2,1),box-shadow .35s ease}
.ev:hover{transform:translateY(-6px);box-shadow:0 22px 44px -24px rgba(0,0,0,.28)}
.ev .ph{display:flex;align-items:center;justify-content:center;color:#555555;font-size:14px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;text-align:center;padding:0 16px}
@media (max-width: 1499px){ header .hph-t{display:none !important} }
@media (min-width: 681px) and (max-width: 1100px){ header img{height:48px !important} header .nl{font-size:15px !important} header nav{gap:16px !important} }
@media (max-width: 680px){ .ev .ph{height:220px !important} }

/* ---------- menu mobile (hamburger) ---------- */
.mtog{display:none;width:42px;height:42px;border-radius:50%;border:0;background:#F3F3F1;color:#811418;align-items:center;justify-content:center;cursor:pointer;flex-shrink:0;padding:0}
.hdr-over .mtog,header.sh.is-scrolled .mtog{background:rgba(255,255,255,.16);color:#FFFFFF}
.mnav{position:fixed;inset:0;z-index:100;background:#811418;color:#FFFFFF;display:flex;flex-direction:column;padding:12px 20px 28px;box-sizing:border-box;overflow-y:auto}
.mnav[hidden]{display:none !important}
.mnav-top{display:flex;align-items:center;justify-content:space-between;height:56px;flex-wrap:nowrap !important}
.mclose{width:44px;height:44px;border-radius:50%;border:0;background:rgba(255,255,255,.16);color:#FFFFFF;display:flex;align-items:center;justify-content:center;cursor:pointer;padding:0}
.mnav-links{display:flex;flex-direction:column;margin-top:24px}
.mlink{color:#FFFFFF;text-decoration:none;font-family:'Source Serif 4',Georgia,serif;font-weight:600;font-size:32px;line-height:1.2;padding:12px 0;border-bottom:1px solid rgba(255,255,255,.18)}
.mlink:hover{color:#FFFFFF;opacity:.8}
.mlink-on{color:#F2C4C6}
.mnav-foot{margin-top:auto;padding-top:32px;display:flex;flex-direction:column;gap:12px}
.mphone{display:inline-flex;align-items:center;gap:10px;color:#FFFFFF;text-decoration:none;font-weight:700;font-size:20px}
.mphone:hover{color:#FFFFFF}
.mhours{font-size:14px;color:rgba(255,255,255,.78)}
.mcta{display:flex;align-items:center;justify-content:center;min-height:52px;border-radius:999px;background:#FFFFFF;color:#811418;text-decoration:none;font-weight:700;font-size:16px}
.mcta:hover{background:#F3F3F1;color:#811418}
@media (max-width: 680px){ .mtog{display:flex} .hcta .btn{display:none !important} }
@media (min-width: 681px){ .mnav{display:none !important} }

/* ---------- banner cookie ---------- */
.ckb{position:fixed;left:24px;right:24px;bottom:24px;z-index:200;max-width:980px;margin:0 auto;box-sizing:border-box;background:#161616;color:#FFFFFF;border-radius:20px;padding:20px 24px;display:flex;align-items:center;gap:24px;box-shadow:0 20px 50px -20px rgba(0,0,0,.55)}
.ckb[hidden]{display:none !important}
.ckb-txt{font-size:15px;line-height:1.5;color:rgba(255,255,255,.88)}
.ckb-txt strong{color:#FFFFFF}
.ckb-txt a{color:#F2C4C6;font-weight:700}
.ckb-txt a:hover{color:#FFFFFF}
.ckb-btns{display:flex;gap:10px;flex-shrink:0}
.ckb-btns button{min-height:46px;padding:0 24px;border-radius:999px;font-family:inherit;font-weight:700;font-size:15px;cursor:pointer;transition:background .2s,border-color .2s}
.ckb-no{background:transparent;color:#FFFFFF;border:1.5px solid rgba(255,255,255,.6)}
.ckb-no:hover{border-color:#FFFFFF;background:rgba(255,255,255,.08)}
.ckb-ok{background:#FFFFFF;color:#811418;border:1.5px solid #FFFFFF}
.ckb-ok:hover{background:#F3F3F1}
.map-consent{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;text-align:center;padding:24px;background:rgba(233,238,230,.9)}
.map-consent[hidden]{display:none !important}
.map-consent p{margin:0;max-width:420px;font-size:16px;line-height:1.5;color:#333333}
.ft button.fl{background:none;border:0;padding:0;font-family:inherit;cursor:pointer;color:#FFFFFF}
@media (max-width: 680px){
 .ckb{left:10px;right:10px;bottom:10px;flex-direction:column;align-items:stretch;gap:14px;padding:18px}
 .ckb-btns button{flex:1}
 div:has(> .map-consent){height:460px !important}
 .map-consent{justify-content:flex-start;padding-top:40px}
}

.vt-start .vt-play{transition:transform .3s ease,background .3s ease}
.vt-start:hover{color:#FFFFFF}
.vt-start:hover .vt-play{transform:scale(1.08);background:#5C0D10 !important}

/* domande frequenti (Visita) */
.faq{border-bottom:1px solid #D9D9D9}
.faq summary{list-style:none;cursor:pointer;padding:20px 40px 20px 0;position:relative;font-family:'Source Serif 4',Georgia,serif;font-weight:600;font-size:22px;line-height:1.3;color:#1A1A1A}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";position:absolute;right:4px;top:50%;transform:translateY(-50%);font-family:'Source Sans 3',system-ui,sans-serif;font-size:28px;font-weight:400;color:#811418;transition:transform .25s}
.faq[open] summary::after{transform:translateY(-50%) rotate(45deg)}
.faq summary:hover{color:#811418}
.faq p{margin:0 0 22px;font-size:17px;line-height:1.6;color:#333333;max-width:720px}
.faq a{color:#811418;font-weight:600}
@media (max-width: 680px){ .faq summary{font-size:19px} }
