/* MESA Infissi: font locali, banner cookie, widget accessibilità, pagine legali */

/* ---------- font serviti dal sito (nessuna chiamata a Google) ---------- */
@font-face{font-family:"Strait";font-style:normal;font-weight:400;font-display:swap;src:url(fonts/strait-latin-ext.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:"Strait";font-style:normal;font-weight:400;font-display:swap;src:url(fonts/strait-latin.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Playfair Display";font-style:italic;font-weight:400;font-display:swap;src:url(fonts/playfair-italic-latin-ext.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:"Playfair Display";font-style:italic;font-weight:400;font-display:swap;src:url(fonts/playfair-italic-latin.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}

/* ---------- salta al contenuto + focus visibile ---------- */
.skip{position:absolute;left:12px;top:-60px;z-index:400;background:#111;color:#fff;padding:12px 18px;font:500 14px/1 var(--body);text-decoration:none;transition:top .2s}
.skip:focus{top:12px}
:focus-visible{outline:2px solid #b4532a;outline-offset:3px}

/* ---------- banner cookie ---------- */
.mc-banner{position:fixed;left:20px;bottom:20px;z-index:300;width:min(460px,calc(100% - 40px));background:#111;color:#fff;padding:26px 26px 22px;box-shadow:0 24px 60px rgba(0,0,0,.35);font:400 15px/1.55 var(--body)}
.mc-banner[hidden],.mc-panel[hidden]{display:none}
.mc-banner h2{font:400 22px/1.1 var(--head);text-transform:uppercase;letter-spacing:.03em;margin:0 0 10px;color:#fff}
.mc-banner p{margin:0 0 18px;color:rgba(255,255,255,.8)}
.mc-banner a{color:#fff;text-decoration:underline}
.mc-btns{display:flex;gap:8px;flex-wrap:wrap}
.mc-btn{flex:1 1 auto;border:1px solid #fff;background:transparent;color:#fff;padding:13px 14px;font:500 12px/1 var(--body);letter-spacing:.12em;text-transform:uppercase;cursor:pointer;border-radius:0;min-height:44px}
.mc-btn.pri{background:#fff;color:#111}
.mc-btn:hover{background:#fff;color:#111}
.mc-btn.pri:hover{background:transparent;color:#fff}
.mc-panel{position:fixed;inset:0;z-index:310;background:rgba(0,0,0,.55);display:flex;align-items:center;justify-content:center;padding:20px}
.mc-box{background:#fff;color:#111;width:min(560px,100%);max-height:calc(100vh - 40px);overflow:auto;padding:30px}
.mc-box h2{font:400 26px/1.1 var(--head);text-transform:uppercase;margin:0 0 10px}
.mc-box>p{margin:0 0 18px;color:#5f5f5f;font-size:15px}
.mc-cat{border-top:1px solid #dcdcdc;padding:16px 0;display:grid;grid-template-columns:1fr auto;gap:6px 18px;align-items:center}
.mc-cat b{font:500 16px/1.2 var(--body)}
.mc-cat p{grid-column:1/-1;margin:0;font-size:14px;color:#5f5f5f;line-height:1.5}
.mc-cat .always{font-size:12px;letter-spacing:.1em;text-transform:uppercase;color:#5f5f5f}
.mc-sw{position:relative;width:50px;height:28px;flex:none}
.mc-sw input{position:absolute;opacity:0;inset:0;margin:0;cursor:pointer;z-index:1}
.mc-sw span{position:absolute;inset:0;background:#c9c9c9;border-radius:28px;transition:background .2s}
.mc-sw span::after{content:"";position:absolute;left:3px;top:3px;width:22px;height:22px;border-radius:50%;background:#fff;transition:transform .2s}
.mc-sw input:checked+span{background:#111}
.mc-sw input:checked+span::after{transform:translateX(22px)}
.mc-sw input:focus-visible+span{outline:2px solid #b4532a;outline-offset:2px}
.mc-box .mc-btns{margin-top:18px}
.mc-box .mc-btn{border-color:#111;color:#111}
.mc-box .mc-btn.pri{background:#111;color:#fff}
.mc-box .mc-btn:hover{background:#111;color:#fff}
.mc-box .mc-links{margin:16px 0 0;font-size:13px;color:#5f5f5f}
.mc-box .mc-links a{color:#111}
@media (max-width:620px){.mc-banner{left:0;right:0;bottom:0;width:100%;padding:22px 20px 20px}.mc-btn{flex:1 1 100%}}

/* ---------- widget accessibilità ---------- */
.a11y-fab{position:fixed;right:20px;bottom:20px;z-index:290;width:54px;height:54px;border-radius:50%;background:#111;color:#fff;border:2px solid #fff;box-shadow:0 10px 30px rgba(0,0,0,.25);display:flex;align-items:center;justify-content:center;cursor:pointer;padding:0}
.a11y-fab svg{width:30px;height:30px;fill:currentColor}
.a11y-fab:hover{background:#b4532a}
@media (max-width:900px){.a11y-fab{bottom:72px;right:14px;width:48px;height:48px}}
.a11y-panel{position:fixed;right:20px;bottom:86px;z-index:295;width:min(360px,calc(100% - 28px));max-height:calc(100vh - 120px);overflow:auto;background:#fff;color:#111;box-shadow:0 24px 60px rgba(0,0,0,.3);border:1px solid #dcdcdc;font:400 15px/1.4 var(--body)}
.a11y-panel[hidden]{display:none}
@media (max-width:900px){.a11y-panel{right:14px;bottom:130px;max-height:calc(100vh - 160px)}}
.a11y-head{display:flex;align-items:center;justify-content:space-between;padding:16px 18px;background:#111;color:#fff;position:sticky;top:0}
.a11y-head h2{font:400 20px/1 var(--head);text-transform:uppercase;letter-spacing:.04em;margin:0;color:#fff}
.a11y-x{background:none;border:0;color:#fff;font-size:26px;line-height:1;cursor:pointer;width:40px;height:40px}
.a11y-body{padding:8px 18px 18px}
.a11y-row{padding:14px 0;border-bottom:1px solid #e6e6e6}
.a11y-row>b{display:block;font-weight:600;margin-bottom:8px}
.a11y-opts{display:flex;gap:6px;flex-wrap:wrap}
.a11y-opts button,.a11y-tg{border:1px solid #bdbdbd;background:#fff;color:#111;padding:9px 12px;font:500 14px/1.1 var(--body);cursor:pointer;min-height:40px;border-radius:0}
.a11y-opts button[aria-pressed="true"],.a11y-tg[aria-pressed="true"]{background:#111;color:#fff;border-color:#111}
.a11y-tg{width:100%;display:flex;justify-content:space-between;align-items:center;text-align:left}
.a11y-tg::after{content:"No";font-size:12px;letter-spacing:.08em;text-transform:uppercase;opacity:.7}
.a11y-tg[aria-pressed="true"]::after{content:"Sì"}
.a11y-foot{display:flex;justify-content:space-between;align-items:center;gap:10px;padding-top:14px;font-size:13px}
.a11y-foot button{border:0;background:none;text-decoration:underline;cursor:pointer;font:inherit;color:#111;padding:6px 0}
.a11y-foot a{color:#111}

/* comandi: dimensione testo */
html[data-a11y-size="90"] :is(main,.site-footer){zoom:.9}
html[data-a11y-size="110"] :is(main,.site-footer){zoom:1.1}
html[data-a11y-size="125"] :is(main,.site-footer){zoom:1.25}
html[data-a11y-size="150"] :is(main,.site-footer){zoom:1.5}
/* contrasto alto: testi pieni e bordi netti */
html[data-a11y-contrast="alto"]{--mid:#000;--mute:#222;--line:#555}
html[data-a11y-contrast="alto"] :is(p,li,span,small,figcaption,td,th){color:inherit!important}
html[data-a11y-contrast="alto"] .sec.dark,html[data-a11y-contrast="alto"] .site-footer{background:#000!important}
html[data-a11y-contrast="alto"] :is(.sec.dark,.site-footer,.phero,.hero,.band,.terra) :is(p,li,span,a){color:#fff!important}
/* toni scuri */
html[data-a11y-contrast="scuro"] :is(main,.site-footer){filter:invert(1) hue-rotate(180deg)}
html[data-a11y-contrast="scuro"] :is(main,.site-footer) :is(img,video,picture,svg image){filter:invert(1) hue-rotate(180deg)}
html[data-a11y-contrast="scuro"] body{background:#000}
/* scala di grigi */
html[data-a11y-contrast="grigio"] :is(main,.site-footer,.site-header){filter:grayscale(1)}
.menu-open .site-header{filter:none!important}
/* link evidenziati */
html[data-a11y-links] main a,html[data-a11y-links] .site-footer a{text-decoration:underline!important;text-underline-offset:3px;outline:2px solid currentColor;outline-offset:2px}
/* carattere ad alta leggibilità */
html[data-a11y-font] body,html[data-a11y-font] body *:not(svg):not(svg *){font-family:Verdana,Tahoma,"Segoe UI",Arial,sans-serif!important;letter-spacing:.01em!important;text-transform:none!important}
/* spaziatura */
html[data-a11y-spacing] :is(p,li,dd,td,blockquote,.lead){line-height:1.95!important;letter-spacing:.04em!important;word-spacing:.14em!important}
html[data-a11y-spacing] :is(p,li){margin-bottom:1.1em}
/* animazioni ferme */
html[data-a11y-motion] *,html[data-a11y-motion] *::before,html[data-a11y-motion] *::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}
html[data-a11y-motion] :is(.rv,.wi,.ch,.wf,.imgr,.imgr img,.hero-text,.statement h2,[data-par]){opacity:1!important;transform:none!important;filter:none!important}
html[data-a11y-motion] .mq-track{transform:none!important}
html[data-a11y-motion] :is(.cur,.progress,.curtain){display:none!important}
html[data-a11y-motion] .btn{transform:none!important}
/* puntatore grande */
html[data-a11y-cursor],html[data-a11y-cursor] *{cursor:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='48' height='48' viewBox='0 0 48 48'%3E%3Cpath d='M6 3l30 21-13 2 8 16-6 3-8-16-11 9z' fill='%23111' stroke='%23fff' stroke-width='2.5' stroke-linejoin='round'/%3E%3C/svg%3E") 6 3,auto!important}
html[data-a11y-cursor] .cur{display:none!important}

/* ---------- pagine legali ---------- */
.legal .sec-body{max-width:820px}
.legal .updated{font-size:14px;color:var(--mute);margin:0 0 26px}
.legal table{width:100%;border-collapse:collapse;margin:14px 0 26px;font-size:15px}
.legal th,.legal td{border-bottom:1px solid var(--line);padding:12px 10px;text-align:left;vertical-align:top}
.legal th{font:500 12px/1.2 var(--body);letter-spacing:.12em;text-transform:uppercase;color:var(--mid)}
.legal h2{font-size:clamp(22px,2.2vw,30px);margin:40px 0 14px}
.legal h3{font-size:20px;margin:28px 0 10px}
.legal .tbl{overflow-x:auto}
.legal .btn-cookie{display:inline-block;margin-top:6px;border:1px solid var(--ink);background:none;padding:12px 18px;font:500 13px/1 var(--body);letter-spacing:.1em;text-transform:uppercase;cursor:pointer}
.legal .btn-cookie:hover{background:var(--ink);color:#fff}
.f-bottom-bar .f-legal a,.f-bottom-bar .f-legal button{color:inherit;background:none;border:0;padding:0;font:inherit;cursor:pointer;text-decoration:none}
.f-bottom-bar .f-legal a:hover,.f-bottom-bar .f-legal button:hover{text-decoration:underline}
