/* Villa Maraini – responsive layer */
html{-webkit-text-size-adjust:100%}
img{max-width:100%;height:auto}
header.vh>a{flex-shrink:0;display:block;line-height:0}
header.vh img{width:auto!important;max-width:none;object-fit:contain;flex-shrink:0}
.vh .hb{background:none;border:0;padding:6px;cursor:pointer}
.vh nav a:focus-visible,.hb:focus-visible,a:focus-visible,button:focus-visible{outline:3px solid #e2622b;outline-offset:3px}
@media(max-width:1180px){
 header.vh{padding:0 24px!important}
 header.vh nav{gap:20px!important}
}
@media(max-width:980px){
 header.vh{height:72px!important;padding:0 18px!important;position:sticky!important}
 header.vh img{height:44px!important}
 header.vh .hb{display:block!important;width:44px}
 header.vh nav{display:none!important;position:absolute;left:0;right:0;top:100%;background:#fffaf4;flex-direction:column;align-items:stretch!important;gap:0!important;padding:8px 18px 20px;border-bottom:4px solid #e2622b;box-shadow:0 12px 24px rgba(45,29,18,.15)}
 header.vh.open nav{display:flex!important}
 header.vh nav a{padding:15px 4px;font-size:18px!important;border-bottom:1px solid #f0e2d6}
 header.vh nav a.sbtn{margin-top:14px!important;text-align:center;border:0;padding:15px!important}
 header.vh.open .hb i:nth-child(1){transform:translateY(9px) rotate(45deg)}
 header.vh.open .hb i:nth-child(2){opacity:0}
 header.vh.open .hb i:nth-child(3){transform:translateY(-9px) rotate(-45deg)}
 .hb i{transition:.2s}
}
@media(max-width:820px){
 body{font-size:17px}
 .wrap{padding-left:20px!important;padding-right:20px!important;padding-top:44px!important;padding-bottom:44px!important;max-width:100%!important;box-sizing:border-box}
 html body [style*="grid-template-columns"],html body .grid2,html body .grid3,html body .grid4,html body .two,html body .fasi,html body .ct,html body .cols,html body .br,html body .certs2,html body .tr,html body .ftop,html body .fl,html body .org,html body .sv-grid,html body .areas,html body .brs .g,html body .certs2,html body .cg,html body .hp .g3,html body .hw,html body .pb,html body .roles,html body .vals,html body .bs,html body .pc,html body .x5b{grid-template-columns:1fr!important}
 .bs .ph{order:0!important}
 .vmx{height:200px!important;font-size:30px!important;flex-wrap:wrap}
 .brc img{height:220px!important}
 .bs .ph img,.bs .ph .vmx{height:240px!important}
 .x5b .cfb b{font-size:32px!important;word-break:break-all}
 .cta,.ctab,.b231{flex-direction:column;align-items:flex-start!important;gap:14px}
 .pb{padding:24px 20px!important;gap:12px!important}
 .stats,.n4{gap:12px!important}
 .facts,.n4,.stats{grid-template-columns:1fr 1fr!important}
 *{min-width:0}
 body{overflow-x:hidden}
 .sv{columns:1!important}
 h1,[style*="font-size:52px"],[style*="font-size:56px"],[style*="font-size:60px"]{font-size:34px!important;line-height:1.15!important}
 h2{font-size:27px!important;line-height:1.2}
 .lead{font-size:18px!important}
 .hero{height:auto!important;min-height:380px;padding:90px 20px 40px!important;box-sizing:border-box}
 .hero h1{font-size:34px!important}
 .card,.cr,.box{padding:24px 20px!important}
 .fm .row{grid-template-columns:1fr!important;gap:0!important}
 .map{height:240px!important}
 .btn,.btn2,.btn3,.send,.dl{display:block!important;text-align:center;margin:10px 0 0!important}
 .chips{flex-wrap:wrap}
 table{display:block;overflow-x:auto}
 footer.vf .ftop{gap:28px!important}
 footer.vf .certs{flex-wrap:wrap;gap:12px!important}
 footer.vf .bot{flex-direction:column;gap:10px;text-align:left}
 .aiuta .two{gap:24px!important}
 .lbl{white-space:normal!important;width:80%;text-align:center}
}
@media(max-width:420px){.facts,.n4,.stats{grid-template-columns:1fr!important}}
