/* WEB-V23 — sola grafica. Nessun cambiamento nel contratto WEB.v1 o nella logica dei moduli. */
:root{--v23-navy:#092d5d;--v23-blue:#075b9e;--v23-orange:#c73500;--v23-orange-bright:#e44905;--v23-sand:#fff6ed;--v23-cream:#fffcf7;--v23-border:#eacfb9;--v23-copy:#253d56;--v23-muted:#5b5860;--v23-shade:#fbebdb;--v23-shadow:0 9px 26px rgba(83,43,18,.075);--blue:#12518c;--ink:#17364f;--muted:#626069;--cream:#fff7ef}
html{scroll-behavior:smooth}body{background:var(--v23-cream);color:var(--v23-copy);font-family:Arial,Helvetica,sans-serif}*,*:before,*:after{box-sizing:border-box}
a:focus-visible,button:focus-visible,select:focus-visible,input:focus-visible,textarea:focus-visible{outline:3px solid #0a5495!important;outline-offset:3px!important}
.v23-wrap{max-width:1280px;width:92%;margin-inline:auto}.v23-top{background:#fff2e5;border-bottom:1px solid #efdcc9;color:var(--v23-navy);font-size:11px;letter-spacing:.07em;font-weight:700;padding:7px 0}.v23-top .v23-wrap{display:flex;justify-content:space-between;gap:12px}.v23-top-note{font-weight:500}
.v23-header{position:relative;z-index:20;background:rgba(255,250,245,.98);border-bottom:1px solid #ebd7c5;box-shadow:0 2px 10px #3b261209}.v23-header:after{display:none}.v23-nav{display:flex;align-items:center;justify-content:space-between;gap:30px;min-height:95px}.v23-brand{flex:0 0 275px;display:block}.v23-brand img{display:block;width:100%;height:auto;filter:drop-shadow(0 3px 2px #253b5114)}.v23-nav nav{display:flex;align-items:center;gap:17px;flex-wrap:nowrap}.v23-nav nav a{font-weight:700;font-size:13px;color:var(--v23-navy);white-space:nowrap}.v23-nav nav a:not(.v23-cta):hover,.v23-nav nav a[aria-current=page]{color:var(--v23-orange);text-decoration:underline;text-underline-offset:7px}.v23-cta,.v23-primary{display:inline-flex;align-items:center;justify-content:center;gap:9px;background:var(--v23-orange)!important;color:#fff!important;border:1px solid #bd3800!important;border-radius:10px!important;font-weight:700;box-shadow:0 7px 15px #b6541d20;padding:13px 18px;text-decoration:none}.v23-cta:hover,.v23-primary:hover{background:#a52e00!important}.v23-menu{display:none;border:1px solid var(--v23-border);padding:10px 12px;background:#fff5ed;color:var(--v23-navy);border-radius:9px;font-weight:700;cursor:pointer}
.v23-page{min-height:60vh;background:linear-gradient(125deg,#fffaf5 0%,#fff4e9 70%,#fff9f3)}.v23-kicker{font-size:11px;text-transform:uppercase;letter-spacing:.16em;color:#9e451a;font-weight:800}.v23-heading{font-size:clamp(36px,4.5vw,62px);line-height:1.11;letter-spacing:-.04em;color:var(--v23-navy);margin:12px 0 20px}.v23-heading em{font-style:normal;color:var(--v23-orange)}.v23-lead{font-size:clamp(16px,1.6vw,19px);line-height:1.62;color:#3c4551;max-width:680px}.v23-section{padding:65px 0}.v23-section:nth-child(even){background:#fff8f2}.v23-panel{background:#fffefa;border:1px solid var(--v23-border);border-radius:20px;box-shadow:var(--v23-shadow);padding:26px}.v23-hero{padding:55px 0 32px;overflow:hidden}.v23-grid{display:grid;grid-template-columns:1.08fr 1fr;gap:36px;align-items:center}.v23-heroart{position:relative;min-height:360px;overflow:hidden;border-radius:22px;background:linear-gradient(155deg,#fbefe1,#fff4e8);box-shadow:var(--v23-shadow)}.v23-heroart img{display:block;width:100%;height:100%;max-height:530px;object-fit:cover;object-position:center 32%}.v23-heroart .v23-caption{position:absolute;bottom:15px;left:15px;background:#fffaf2ea;border:1px solid #f4caa9;border-radius:11px;padding:9px 13px;color:var(--v23-navy);font-size:12px;font-weight:700}.v23-actions{display:flex;flex-wrap:wrap;gap:13px;margin-top:25px}.v23-secondary{display:inline-flex;justify-content:center;align-items:center;gap:10px;padding:12px 18px;border:1px solid #42658d;color:var(--v23-navy);border-radius:10px;font-weight:700;background:#fffcf8}.v23-secondary:hover{background:#f9e4d4}.v23-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:19px}.v23-card{background:#fffefa;border:1px solid var(--v23-border);box-shadow:var(--v23-shadow);border-radius:18px;overflow:hidden;display:flex;flex-direction:column;min-width:0}.v23-card-thumb{height:170px;overflow:hidden;background:#f1dfcc}.v23-card-thumb img{width:100%;height:100%;display:block;object-fit:cover;object-position:50% 45%}.v23-card-body{padding:22px;flex:1;display:flex;flex-direction:column}.v23-card .v23-icon{font-size:27px;color:var(--v23-orange);line-height:1}.v23-card h3{font-size:21px;color:var(--v23-navy);margin:13px 0 9px;line-height:1.16}.v23-card p{font-size:14px;line-height:1.6;color:#4a4b50;margin:0 0 22px;flex:1}.v23-card a{color:#ad3200;font-weight:700;text-decoration:underline;text-underline-offset:4px}.v23-card a:hover{color:#782300}.v23-callout{background:linear-gradient(112deg,#143c69,#0e3158);color:#fff9f0;padding:30px;border-radius:18px;display:flex;align-items:center;justify-content:space-between;gap:18px}.v23-callout h2{color:#fff;margin:0 0 8px;font-size:27px}.v23-callout p{margin:0;opacity:.93}.v23-callout .v23-primary{flex-shrink:0;background:#c63b00!important}.v23-list{padding-left:20px;line-height:2;color:#4d4b4a}.v23-split{display:grid;grid-template-columns:1fr 1fr;gap:32px}.v23-formlinks{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:17px}.v23-formlinks a{border:1px solid #f1d1b9;background:#fff;padding:22px;border-radius:15px;box-shadow:var(--v23-shadow);color:var(--v23-navy);text-decoration:none;font-weight:700}.v23-formlinks a:hover{border-color:#da8b62;background:#fff7ef}.v23-formlinks small{display:block;color:#685852;font-weight:400;margin-top:5px}.v23-quiet{color:#615952;font-size:13px;line-height:1.6}.v23-footer{padding:46px 0 0;background:#14365b;color:#f9efe4}.v23-footgrid{display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:34px}.v23-footgrid img{width:220px;max-width:100%;height:auto;background:#fffaf4;border-radius:8px;padding:7px}.v23-footgrid p{font-size:14px;line-height:1.6;opacity:.85}.v23-footgrid small{font-size:11px;opacity:.68}.v23-footgrid h2{font-size:15px;color:#fff;margin:6px 0 15px}.v23-footgrid a{display:block;font-size:14px;margin-bottom:11px;color:#f9efe4}.v23-footgrid a:hover{text-decoration:underline}.v23-footbottom{text-align:center;padding:17px 12px;margin-top:32px;border-top:1px solid #ffffff30;font-size:12px;opacity:.8}
/* Existing pages / modules: visual overrides only, never alter module form logic or semantics. */
body:not(.v23-new) header:not(.header-35){background:#fffbf6;border-bottom:1px solid #e9cfbc;box-shadow:0 6px 22px #7d431813}body:not(.v23-new) .top{background:#fff2e7;border-color:#eed8c9;color:var(--v23-navy)}body:not(.v23-new) .nav nav a{color:var(--v23-navy)}body:not(.v23-new) .nav .btn{background:#bb3500;border-color:#ae3000;color:#fff;border-radius:10px}body:not(.v23-new) .nav .menu{border-color:#e4c3ab;background:#fff3e7;color:var(--v23-navy);border-radius:9px}
body:not(.v23-new) main:not(#contenuto):not(#demo-main){background:#fffaf5}body:not(.v23-new) .content{background:#fffbf7}body:not(.v23-new) main>section.content[style]{background:linear-gradient(120deg,#fff5e9,#ffe9d7)!important}body:not(.v23-new) .content.repairs{background:#fff1e5}body:not(.v23-new) .service{background:#fffefa;border-color:#edd4bf;border-radius:14px;box-shadow:var(--v23-shadow)}body:not(.v23-new) .service .number,body:not(.v23-new) .eyebrow{color:#9b3a08}body:not(.v23-new) .btn.blue{background:#b93800;color:#fff;border-color:#ac3500;border-radius:10px}
body:not(.v23-new) .demo-shell{background:linear-gradient(180deg,#fff9f2,#fffdf9);padding-block:35px}body:not(.v23-new) .demo-heading{color:var(--v23-navy);letter-spacing:-.03em}body:not(.v23-new) .demo-lead{color:#554e51}body:not(.v23-new) .demo-note{background:#fff0e0;border-color:#cf7650;color:#523921;border-radius:11px}body:not(.v23-new) .demo-card{background:#fffefa;border:1px solid #e9ceb8;border-radius:16px;box-shadow:var(--v23-shadow)}body:not(.v23-new) .demo-tabs button{border-radius:10px;background:#fff9f3;border:1px solid #e2c7b3;color:var(--v23-navy)}body:not(.v23-new) .demo-tabs button[aria-selected=true]{background:#133e70;border-color:#123961;color:#fff}body:not(.v23-new) .demo-field input,body:not(.v23-new) .demo-field select,body:not(.v23-new) .demo-field textarea{background:#fffdfa;border-color:#8b7060}body:not(.v23-new) .demo-btn{background:#bb3500;color:#fff;border-radius:10px}body:not(.v23-new) .demo-btn.secondary{background:#153e68}body:not(.v23-new) .demo-result{background:#fffcf7;border-color:#e0c9b7}body:not(.v23-new) .demo-technical{background:#fff1e7}
/* Home from phase-1: no redesign of house or logo; co-ordinate surrounding details only */
.header-35{background:#fff9f3}.hero35{background:linear-gradient(118deg,#fffbf6,#fff0df 67%,#ffead5)}.hero35 h1{color:var(--v23-navy)}.hero35 h1 strong{color:#c23d00}.hero35 .btn-main,.hero35 .label-basement{background:#b93800}.hero35 .btn-outline{color:var(--v23-navy)}.hero35 .service35{border-color:#f0d6c0;background:#fffdf8}
/* Ensure white section text never sits on a cream background. */
body:not(.v23-new) section.content.renew{background:linear-gradient(108deg,#13395f,#194d76 65%,#4e3c37)!important;color:#fff7f0}
body:not(.v23-new) section.content.renew h2,body:not(.v23-new) section.content.renew h3{color:#fffaf6!important}
body:not(.v23-new) section.content.renew p,body:not(.v23-new) section.content.renew li{color:#f9e7d6!important}
body:not(.v23-new) section.content.renew .eyebrow,body:not(.v23-new) section.content.renew .heat b{color:#ffb77e!important}
body:not(.v23-new) section.content.renew a{color:#fff9e7!important}
body:not(.v23-new) section.content.renew a.btn{color:#fff!important;background:#bd3900!important;border-color:#bd3900}
body:not(.v23-new) section.content.renew .heat{background:#ffffff0c;border:1px solid #c9a287}
body:not(.v23-new) footer.v23-footer{background:#14365b;color:#f9efe4}
/* Smalls accessible UI states */
@media(max-width:1080px){.v23-nav{gap:20px}.v23-brand{flex-basis:240px}.v23-nav nav{gap:11px}.v23-nav nav a{font-size:12px}.v23-cta{padding:11px 13px}}
@media(max-width:930px){.v23-nav{min-height:78px}.v23-brand{flex:0 0 240px}.v23-menu{display:block}.v23-nav nav{display:none;position:absolute;top:100%;left:0;right:0;background:#fffaf5;border-bottom:1px solid #e4c7b3;box-shadow:0 12px 25px #37200f29;flex-direction:column;align-items:stretch;padding:17px 5%;gap:0;z-index:30}.v23-nav nav.open{display:flex}.v23-nav nav a{font-size:15px;display:block;padding:12px}.v23-cta{margin-top:7px}.v23-grid{grid-template-columns:1fr}.v23-hero{padding-top:30px}.v23-heroart{min-height:390px}.v23-cards{grid-template-columns:repeat(2,minmax(0,1fr))}.v23-footgrid{grid-template-columns:repeat(2,1fr)}.v23-callout{align-items:start;flex-direction:column}}
@media(max-width:650px){.v23-top{font-size:9px}.v23-top-note{display:none}.v23-wrap{width:92%}.v23-brand{flex-basis:212px}.v23-nav{min-height:73px}.v23-section{padding:42px 0}.v23-heading{font-size:clamp(35px,10vw,51px)}.v23-heroart{min-height:310px}.v23-cards,.v23-split,.v23-formlinks{grid-template-columns:1fr}.v23-card-thumb{height:180px}.v23-footgrid{grid-template-columns:1fr 1fr;gap:20px}.v23-footgrid>div:first-child{grid-column:1/-1}.v23-callout{padding:22px}.v23-callout h2{font-size:23px}.v23-formlinks{gap:11px}}
@media(max-width:400px){.v23-brand{flex-basis:185px}.v23-footgrid{grid-template-columns:1fr}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}

/* C1: distinguish invalid fields and expose policy links without changing the form contract. */
body:not(.v23-new) .demo-field [aria-invalid=true]{border-color:#ab1d2d}
.demo-checkbox a{text-decoration:underline;text-underline-offset:2px}

/* C3: retain logo proportions and the complete menu at narrow CSS viewports. */
@media(max-width:375px){
 body:not(.v23-new) .nav>a:first-child{min-width:0;flex-shrink:1}
 body:not(.v23-new) .nav>a:first-child .logo{max-width:100%;height:auto}
 body:not(.v23-new) .nav>.menu{flex:0 0 auto}
}
