/* Stile della versione rinnovata (dal progetto Claude Design "Home Unipol Rosignano"):
   stessi colori Unipol (blu #0D293F e rosso #A00C12) e stesso carattere Open Sans del sito originale,
   impaginazione a tutta larghezza con sezioni alternate bianche e grigio chiaro. */
:root{
  --blu:#0D293F;--blu-chiaro:#1c4566;--rosso:#A00C12;--rosa:#f3b7ba;
  --testo:#555;--scuro:#333;--grigio:#888;--bordo:#e3e7ec;--fondo-chiaro:#f5f7f9;--rosso-fondo:#fdf2f2;--rosso-bordo:#f3d3d5;
  --raggio:8px;--ombra:0 2px 6px rgba(13,41,63,.06);--ombra-alta:0 14px 30px rgba(13,41,63,.14);
  --wrap:1160px;--gutter:40px
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
html,body{margin:0;padding:0}
body{font-family:'Open Sans',sans-serif;font-size:15px;line-height:1.65;color:var(--testo);background-color:#fff;-webkit-font-smoothing:antialiased}
::selection{background-color:var(--blu);color:#fff}
img{max-width:100%;height:auto}
input,select,textarea,button{font-family:inherit;font-size:inherit;color:inherit}
a{color:var(--blu);text-decoration:none;transition:color .2s,background-color .2s,border-color .2s,box-shadow .2s,transform .2s}
a,button,[role=button]{-webkit-tap-highlight-color:rgba(13,41,63,.12);touch-action:manipulation}
a:hover{color:var(--rosso)}
a:focus-visible,button:focus-visible,[role=button]:focus-visible,input:focus-visible{outline:2px solid var(--rosso);outline-offset:3px}
h1,h2,h3{margin:0;color:var(--blu);line-height:1.2}
p{margin:0}
.wrap{max-width:var(--wrap);margin:0 auto;padding-left:var(--gutter);padding-right:var(--gutter)}
.clear{clear:both;height:0}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
/* <site-header> e <site-footer> (layout.js) non devono creare un riquadro proprio */
site-header,site-footer{display:contents}
header{display:block}

/* ---------- pulsanti e piccoli elementi ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;padding:14px 26px;font-weight:700;font-size:15px;line-height:1.3;color:#fff;background-color:var(--blu);border:0;border-radius:6px;cursor:pointer;white-space:nowrap}
.btn:hover{color:#fff;background-color:var(--rosso)}
.btn-rosso{background-color:var(--rosso)}
.btn-rosso:hover{background-color:var(--blu)}
.btn-contorno{background-color:transparent;color:var(--blu);border:1px solid #c9d1da;padding:13px 24px}
.btn-contorno:hover{background-color:transparent;color:var(--blu);border-color:var(--blu)}
.btn-piccolo{padding:9px 18px;font-size:13px}
.btn_contatti{display:inline-flex;align-items:center;gap:8px;padding:10px 22px;font-weight:700;font-size:14px;line-height:1.3;color:#fff;background-color:var(--blu);border:0;border-radius:6px;cursor:pointer}
.btn_contatti:hover{color:#fff;background-color:var(--rosso)}
.kicker{display:block;font-size:13px;font-weight:700;letter-spacing:1.5px;text-transform:uppercase;color:var(--rosso)}
.etichetta{font-size:12px;font-weight:700;letter-spacing:1px;text-transform:uppercase;color:var(--grigio)}
.data{color:var(--grigio)}
.tag{display:inline-block;padding:2px 10px;font-size:12px;font-weight:600;line-height:1.6;color:var(--blu);background-color:var(--fondo-chiaro);border:1px solid var(--bordo);border-radius:20px}
.tag-rosso{display:inline-flex;align-items:center;gap:6px;padding:2px 12px;font-weight:700;letter-spacing:.5px;text-transform:uppercase;color:#fff;background-color:var(--rosso);border-color:var(--rosso)}
.link-freccia{display:inline-flex;align-items:center;gap:8px;font-weight:700;white-space:nowrap}
.link-freccia .fa{transition:transform .2s}
@media (hover:hover){.link-freccia:hover .fa{transform:translateX(4px)}}
.link-freccia.centrato{align-self:center}
.avatar{flex:none;display:flex;align-items:center;justify-content:center;width:52px;height:52px;overflow:hidden;border-radius:50%;background-color:#fff;color:var(--blu);font-size:16px;font-weight:700;letter-spacing:.5px}
.avatar img{display:block;width:100%;height:100%;object-fit:cover}

/* ---------- barra in alto: stato di apertura, email, reclami ---------- */
.head{background-color:var(--blu);color:rgba(255,255,255,.85);font-size:13px;line-height:1.4}
.head-riga{display:flex;align-items:center;justify-content:space-between;gap:24px;padding-top:10px;padding-bottom:10px}
.stato{display:flex;align-items:center;gap:8px;white-space:nowrap}
.stato b{color:#fff}
.stato-punto{width:8px;height:8px;border-radius:50%;background-color:#e57373;flex:none}
.stato.aperto .stato-punto{background-color:#5fd38d}
.head-link{display:flex;gap:24px;margin-left:auto}
.head-link a{display:flex;align-items:center;gap:6px;color:rgba(255,255,255,.85);white-space:nowrap}
.head-link a:hover{color:#fff}
.head-link .fa{color:rgba(255,255,255,.6)}

/* ---------- logo, menu, pulsante telefono ---------- */
.nav{background-color:#fff;border-bottom:1px solid var(--bordo);position:relative;z-index:5}
.nav-riga{display:flex;align-items:center;gap:40px;padding-top:18px;padding-bottom:18px}
.logo{display:block;flex:none}
.logo img{display:block;height:64px;width:auto}
#menu{list-style:none;margin:0 0 0 auto;padding:0;display:flex;gap:32px;font-size:14px;font-weight:700;letter-spacing:.5px}
#menu li a{display:block;padding:6px 0;color:#444}
#menu li a:hover{color:var(--rosso)}
#menu li a.hover{color:var(--rosso);box-shadow:inset 0 -2px var(--rosso)}
.nav-tel{flex:none;padding:12px 20px;font-size:14px}
#menu_trigger{display:none;align-items:center;justify-content:center;width:44px;height:44px;margin-left:auto;color:var(--blu);border:1px solid var(--bordo);border-radius:6px}
#menu_trigger::before{content:"\f0c9";font:normal normal normal 18px/1 FontAwesome}
#menu_trigger[aria-expanded="true"]::before{content:"\f00d"}
#menu_trigger:hover{color:var(--rosso);border-color:var(--rosso)}

/* ---------- banner con la foto (pagine interne) ---------- */
.banner{height:320px;background-position:center center;background-size:cover;background-color:#aaa;box-shadow:inset 0 -80px 60px -60px rgba(13,41,63,.35)}
#photo:has(#map){min-height:380px;background-color:#eee}
#map{width:100%;height:380px;border:0;display:block}
#map[hidden]{display:none}
.map-consenso{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;height:380px;padding:20px;background-color:var(--fondo-chiaro);text-align:center}
.map-consenso[hidden]{display:none}
.map-consenso .fa-map-marker{font-size:36px;color:var(--rosso)}
.map-consenso a{font-weight:700;text-decoration:underline;text-underline-offset:3px}
.map-consenso p{margin:0}
.mappa-azioni{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:10px 18px;margin-top:4px;font-size:14px}

/* ---------- sezioni della home ---------- */
.home>section{display:block}
.sezione{display:flex;flex-direction:column;gap:32px;padding-top:80px;padding-bottom:80px}
.sezione-compatta{gap:24px;padding-top:52px;padding-bottom:52px}
.sezione-compatta .sezione-titolo h2{font-size:26px}
.fondo-chiaro{background-color:var(--fondo-chiaro)}
.bordo-sopra{border-top:1px solid var(--bordo)}
.bordo-sotto{border-bottom:1px solid var(--bordo)}
.fondo-blu{background-color:var(--blu);color:rgba(255,255,255,.85)}
.sezione-testa{display:flex;align-items:flex-end;justify-content:space-between;gap:40px}
.sezione-titolo{display:flex;flex-direction:column;gap:10px}
.sezione-titolo h2{font-size:32px;font-weight:800}
.schede-3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}

/* hero */
.hero-griglia{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.05fr);gap:64px;align-items:center;padding-top:72px;padding-bottom:80px}
.hero-testo{display:flex;flex-direction:column;gap:24px}
.hero-kicker{display:flex;flex-direction:column;gap:2px}
.hero h1{font-size:48px;line-height:1.12;font-weight:800;letter-spacing:-.5px;text-wrap:balance}
/* seconda riga del titolo: la località, in rosso con il segnaposto */
.hero-luogo{display:flex;align-items:center;gap:10px;margin-top:8px;font-size:.58em;font-weight:700;letter-spacing:0;color:var(--rosso)}
.hero-luogo .fa{font-size:.9em}
.hero-testo p{font-size:18px;line-height:1.6;max-width:520px;text-wrap:pretty}
.hero-testo p b{display:block;margin-bottom:6px;color:var(--blu)}
.azioni{display:flex;flex-wrap:wrap;gap:12px;padding-top:8px}
.hero-foto{position:relative}
.hero-img{height:440px;border-radius:var(--raggio);background-size:cover;background-position:center;background-color:#aaa}
.hero-card{position:absolute;left:-32px;bottom:-32px;display:flex;flex-direction:column;gap:4px;min-width:280px;padding:20px 24px;background-color:#fff;border-top:3px solid var(--rosso);border-radius:var(--raggio);box-shadow:var(--ombra-alta)}
.hero-card>b{font-size:16px;color:var(--blu)}
.hero-oggi{display:flex;align-items:center;gap:8px;margin-top:8px;padding-top:10px;border-top:1px solid var(--bordo);font-size:14px}
.hero-oggi .fa{color:var(--rosso)}
.hero-oggi b{color:var(--scuro);font-variant-numeric:tabular-nums}

/* bacheca */
.bacheca .sezione{padding-top:16px}
.bacheca-griglia{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);gap:20px}
.bacheca-griglia.solo{grid-template-columns:minmax(0,1fr);max-width:760px}
site-bacheca,site-recensioni{display:block}
site-bacheca[hidden]{display:none}
.avviso{display:flex;flex-direction:column;gap:14px;padding:32px;background-color:var(--rosso-fondo);border:1px solid var(--rosso-bordo);border-left:4px solid var(--rosso);border-radius:var(--raggio)}
.avviso-meta{display:flex;align-items:center;gap:10px;font-size:13px}
.avviso-titolo{font-size:22px;line-height:1.3;color:var(--blu);text-wrap:balance}
.avviso p{color:var(--scuro);text-wrap:pretty}
.avviso-piede{display:flex;align-items:center;gap:10px;margin-top:auto;padding-top:14px;border-top:1px solid var(--rosso-bordo);font-size:14px}
.avviso-piede .fa{color:var(--rosso)}
.avviso-piede a{font-weight:700}
.novita{display:flex;flex-direction:column;border:1px solid var(--bordo);border-radius:var(--raggio);overflow:hidden}
.novita-voce{display:flex;gap:18px;padding:22px 24px;border-bottom:1px solid var(--bordo);color:var(--testo)}
.novita-voce:last-child{border-bottom:0}
.novita-voce:hover{background-color:var(--fondo-chiaro);color:var(--testo)}
.novita-icona{flex:none;display:flex;align-items:center;justify-content:center;width:44px;height:44px;border-radius:50%;background-color:var(--fondo-chiaro);border:1px solid var(--bordo);color:var(--blu);font-size:17px}
.novita-testo{display:flex;flex-direction:column;gap:4px;min-width:0;font-size:14px;line-height:1.55}
.novita-meta{display:flex;align-items:center;gap:10px;font-size:12px}
.novita-meta b{text-transform:uppercase;letter-spacing:.5px;color:var(--blu)}
.novita-titolo{font-size:16px;line-height:1.35;color:var(--blu)}

/* schede servizi */
.scheda{position:relative;display:flex;flex-direction:column;gap:10px;padding:24px;background-color:#fff;border:1px solid var(--bordo);border-radius:var(--raggio);color:var(--testo);box-shadow:var(--ombra);transition:box-shadow .2s,transform .2s}
.scheda:hover{color:var(--testo)}
@media (hover:hover){.scheda:hover{box-shadow:var(--ombra-alta);transform:translateY(-4px)}}
.scheda .icona{position:absolute;top:24px;right:24px;display:flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:50%;background:linear-gradient(135deg,var(--blu-chiaro),var(--blu));color:#fff;font-size:16px}
.scheda-titolo{display:flex;align-items:center;min-height:40px;padding-right:52px;font-size:17px;color:var(--blu)}
.scheda>span:not(.icona):not(.tags){font-size:14px;text-wrap:pretty}
.tags{display:flex;flex-wrap:wrap;gap:6px;margin-top:auto;padding-top:4px}

/* vantaggi polizza auto */
.vantaggi{display:grid;grid-template-columns:260px minmax(0,1fr);gap:48px;align-items:center}
.vantaggi .sezione-titolo .link-freccia{align-self:flex-start;margin-top:4px}
.vantaggi-elenco{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0 32px}
.vantaggi-elenco li{display:flex;gap:12px;padding:14px 0;border-bottom:1px solid var(--bordo)}
.vantaggi-elenco li:nth-last-child(-n+3){border-bottom:0}
.vantaggi-elenco>li>.fa{flex:none;width:20px;padding-top:3px;text-align:center;font-size:16px;color:var(--rosso)}
.vantaggi-elenco li>span{display:flex;flex-direction:column;gap:1px;line-height:1.45}
.vantaggi-elenco li b{font-size:14px;color:var(--blu)}
.vantaggi-elenco li span span{font-size:13px;text-wrap:pretty}

/* recensioni */
.voto{display:flex;align-items:center;gap:16px;padding:14px 20px;background-color:#fff;border:1px solid var(--bordo);border-radius:var(--raggio);box-shadow:var(--ombra)}
.voto>.fa{font-size:26px;color:var(--blu)}
.voto-testo{display:flex;flex-direction:column;line-height:1.3}
.voto-riga{display:flex;align-items:center;gap:8px}
.voto-riga b{font-size:24px;color:var(--blu)}
.voto-n{font-size:13px}
.stelle{display:flex;gap:2px;color:#f4b400;font-size:15px}
.recensione{display:flex;flex-direction:column;gap:16px;margin:0;padding:28px;background-color:#fff;border:1px solid var(--bordo);border-radius:var(--raggio);box-shadow:var(--ombra)}
.recensione .stelle{font-size:14px}
.recensione blockquote{margin:0;font-size:15px;line-height:1.65;color:var(--scuro);text-wrap:pretty}
.recensione figcaption{display:flex;align-items:center;gap:12px;margin-top:auto;padding-top:16px;border-top:1px solid var(--bordo)}
.recensione .avatar{width:40px;height:40px;font-size:14px;background-color:var(--fondo-chiaro);border:1px solid var(--bordo)}
.recensione-autore{display:flex;flex-direction:column;line-height:1.35}
.recensione-autore b{font-size:14px;color:var(--blu)}
.recensione-autore span{font-size:12px;color:var(--grigio)}
/* riquadro ufficiale Google (Places UI Kit), vedi recensioni.js: colori e carattere del sito */
#recensioni-google[hidden],#recensioni-voto[hidden],#recensioni-manuali[hidden]{display:none}
#recensioni-google gmp-place-details{display:block;width:100%;background-color:#fff;border:1px solid var(--bordo);border-radius:var(--raggio);box-shadow:var(--ombra);overflow:hidden;--gmp-mat-font-family:"Open Sans",sans-serif;--gmp-mat-color-surface:#fff;--gmp-mat-color-on-surface:var(--scuro);--gmp-mat-color-on-surface-variant:var(--testo);--gmp-mat-color-primary:var(--blu);--gmp-mat-color-outline-decorative:var(--bordo);--gmp-mat-color-secondary-container:var(--fondo-chiaro);--gmp-mat-color-on-secondary-container:var(--blu);--gmp-star-rating-color:#f4b400;--gmp-mat-color-disabled-surface:var(--bordo);--gmp-mat-color-neutral-container:var(--fondo-chiaro);--gmp-mat-color-on-neutral-container:var(--testo);--gmp-button-border-radius:var(--raggio)}

/* team su fondo blu */
.team-home{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.3fr);gap:64px;align-items:center}
.team-home .kicker{color:var(--rosa)}
.team-home h2{color:#fff}
.team-home .sezione-titolo{gap:16px}
.team-home .link-freccia{color:#fff;margin-top:8px}
.team-home .link-freccia:hover{color:var(--rosa)}
.team-griglia{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.team-griglia li{display:flex;flex-direction:column;align-items:flex-start;gap:12px;padding:20px;border-radius:var(--raggio);background-color:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.12)}
.persona{display:flex;flex-direction:column;gap:2px}
.persona b{color:#fff}
.persona span{font-size:13px;line-height:1.5}

/* contatti e orario */
.contatti-home{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:64px}
.contatti-col{display:flex;flex-direction:column;gap:24px}
.recapiti{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:14px}
.recapiti li{display:flex;gap:14px;align-items:flex-start}
.recapiti li>.fa{flex:none;width:18px;padding-top:4px;text-align:center;color:var(--rosso)}
.recapiti b{color:var(--scuro)}
.mappa-box{min-height:220px;border-radius:var(--raggio);border:1px solid var(--bordo);overflow:hidden;background-color:var(--fondo-chiaro)}
.mappa-box .map-consenso,.mappa-box #map{height:260px}
.orario-titolo{font-size:17px;color:var(--blu)}
.contatti-col site-orari{display:block;margin-top:-8px}
.cta-piccola{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-top:-8px;padding:24px 28px;border-radius:var(--raggio);background-color:var(--fondo-chiaro);border:1px solid var(--bordo)}
.cta-testo{display:flex;flex-direction:column}
.cta-testo b{font-size:16px;color:var(--blu)}
.cta-testo span{font-size:14px}
.cta-piccola .btn{padding:11px 22px}

/* tabella orari (generata da layout.js, usata in home e in contatti) */
.orario{width:100%;border-collapse:separate;border-spacing:0;border:1px solid var(--bordo);border-radius:var(--raggio);overflow:hidden;font-variant-numeric:tabular-nums}
.giorno,.ora{padding:12px 20px;border-bottom:1px solid var(--bordo);white-space:nowrap}
.orario tbody tr:last-child>*{border-bottom:0}
.giorno{text-align:left;font-weight:700;color:var(--scuro);border-left:3px solid transparent;width:150px}
.ora{text-align:left;color:var(--scuro)}
.orario thead th{background-color:var(--blu);color:#fff;font-size:12px;font-weight:700;letter-spacing:1px;text-transform:uppercase;padding-top:9px;padding-bottom:9px;border-bottom:0}
.orario tbody tr:nth-child(even){background-color:var(--fondo-chiaro)}
.orario .diverso{color:var(--blu);font-weight:700}
.orario .chiuso .giorno,.orario .chiuso .ora{color:#999;font-weight:400}
.orario .chiuso .ora{font-style:italic}
.orario tr.oggi{background-color:var(--rosso-fondo)}
.orario tr.oggi .giorno{border-left-color:var(--rosso);color:var(--rosso)}
.orario tr.oggi .giorno::after{content:"oggi";display:inline-block;margin-left:8px;padding:0 8px;font-size:11px;line-height:18px;font-weight:400;letter-spacing:.5px;color:#fff;background-color:var(--rosso);border-radius:9px;vertical-align:1px}

/* ---------- footer ---------- */
footer{background-color:var(--blu);border-top:3px solid var(--rosso);color:rgba(255,255,255,.7);font-size:13px;line-height:1.5}
.foot-riga{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:20px 32px;padding-top:36px;padding-bottom:28px}
.foot-brand{display:flex;align-items:center;gap:16px}
/* il logo Unipol Gruppo è un jpg con lo sfondo bianco: lo si mette in un riquadro bianco, così sembra voluto */
.foot-logo{display:flex;align-items:center;padding:6px 10px;background-color:#fff;border-radius:6px}
.foot-logo img{display:block;height:30px;width:auto}
.foot-logo:hover{box-shadow:0 0 0 3px rgba(255,255,255,.25)}
.foot-nome{display:flex;flex-direction:column;line-height:1.35}
.foot-nome b{color:#fff;font-size:15px}
#menu_foot{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:6px 24px}
#menu_foot li a{color:rgba(255,255,255,.85);font-weight:600}
#menu_foot li a:hover{color:#fff;text-decoration:underline;text-underline-offset:4px}
.foot-base{display:flex;flex-wrap:wrap;justify-content:space-between;gap:4px 24px;padding-top:16px;padding-bottom:22px;font-size:12px;color:rgba(255,255,255,.55);position:relative}
.foot-base b{font-weight:600;color:rgba(255,255,255,.8)}
.foot-base::before{content:"";position:absolute;left:var(--gutter);right:var(--gutter);top:0;height:1px;background-color:rgba(255,255,255,.14)}

/* ---------- pagine interne (azienda, servizi, contatti, legali) ---------- */
#cnt:not(.home){max-width:var(--wrap);margin:0 auto;padding:64px var(--gutter) 80px}
#cnt:not(.home) h1{padding-bottom:28px;font-size:26px;letter-spacing:1px;color:var(--rosso)}
#cnt:not(.home) h1::after{content:"";display:block;width:52px;height:3px;margin-top:12px;background-color:var(--rosso);border-radius:2px}
#cnt:not(.home) h2{padding:0 0 10px;font-size:20px}
#cnt:not(.home) p{margin:0 0 14px}
#cnt:not(.home) ul{margin:0 0 14px}
#cnt li::marker{color:var(--rosso)}
#cnt:not(.home) b,#cnt:not(.home) strong{color:var(--scuro)}
#cnt:not(.home) p a,#cnt:not(.home) li a,#cnt .sx_50 a,#cnt .sx_100 a{text-decoration:underline;text-decoration-color:rgba(13,41,63,.3);text-underline-offset:3px}
#cnt .btn_contatti{text-decoration:none}
.intro{border-left:3px solid var(--rosso);padding-left:22px}
#cnt .intro p{font-size:17px;line-height:1.7;color:var(--scuro)}
#cnt .intro p:last-child{margin-bottom:0}
/* servizi.html: riga "In questa pagina" con i link alle sezioni */
#cnt .intro .sommario{font-size:14px;color:var(--testo)}
#cnt .intro .sommario a{font-weight:700;text-decoration-color:rgba(13,41,63,.3)}
.blocco{display:grid;grid-template-columns:220px 1fr;gap:40px;padding:44px 0;border-top:1px solid var(--bordo);scroll-margin-top:24px}
#contatti{scroll-margin-top:24px}
.blocco:first-child{padding-top:0;border-top:0}
#cnt .blocco>h1,#cnt .blocco>h2{padding-bottom:0}
#cnt .categorie{list-style:none;margin:16px 0 0;padding:0;display:grid;grid-template-columns:repeat(5,1fr);gap:12px}
.categorie li{display:flex;flex-direction:column;align-items:center;gap:10px;padding:18px 10px;text-align:center;background-color:var(--fondo-chiaro);border:1px solid var(--bordo);border-radius:var(--raggio);font-weight:700;line-height:1.35;color:var(--blu)}
.categorie .fa{flex:none;width:40px;height:40px;line-height:40px;text-align:center;font-size:17px;border-radius:50%;background-color:#fff;color:var(--rosso);box-shadow:var(--ombra)}
.prodotti{display:grid;grid-template-columns:repeat(2,1fr);gap:20px;margin-top:20px}
.prodotto{position:relative;padding:26px;border:1px solid var(--bordo);border-top:3px solid var(--blu);border-radius:var(--raggio);box-shadow:var(--ombra)}
.prodotto .icona{position:absolute;top:26px;right:26px;display:flex;align-items:center;justify-content:center;width:40px;height:40px;font-size:16px;border-radius:50%;background:linear-gradient(135deg,var(--blu-chiaro),var(--blu));color:#fff}
.prodotto h3{display:flex;align-items:center;min-height:40px;margin:0 0 6px;padding-right:52px;font-size:16px}
#cnt .prodotto p{margin:0}
.cta{display:flex;align-items:center;justify-content:space-between;gap:24px;margin-top:10px;padding:30px 36px;background-color:var(--blu);border-left:4px solid var(--rosso);border-radius:var(--raggio);color:rgba(255,255,255,.85)}
#cnt .cta .cta-titolo{display:block;font-size:20px;color:#fff}
#cnt .cta p{margin:4px 0 0}
#cnt .cta p a{color:#fff;font-weight:700;text-decoration-color:rgba(255,255,255,.5)}
#cnt .cta p a:hover{color:var(--rosa)}
.cta .btn_contatti{flex:none;padding:12px 30px;background-color:#fff;color:var(--blu);white-space:nowrap}
.cta .btn_contatti:hover{background-color:var(--rosso);color:#fff}
.cta a:focus-visible{outline-color:#fff}
.foto{display:grid;grid-template-columns:repeat(2,1fr);gap:20px;margin:20px 0 24px}
.img_right{display:block;width:100%;height:240px;background-position:center center;background-size:cover;background-repeat:no-repeat;background-color:#aaa;border-radius:var(--raggio);box-shadow:var(--ombra);transition:transform .3s,box-shadow .3s}
.zoom{cursor:zoom-in}
@media (hover:hover){.zoom:hover .img_right{transform:translateY(-4px);box-shadow:var(--ombra-alta)}}
#cnt .team{list-style:none;margin:10px 0 0;padding:0;display:grid;grid-template-columns:repeat(2,1fr);column-gap:40px}
.team li{display:flex;align-items:center;gap:22px;padding:18px 0;border-bottom:1px solid var(--bordo)}
.team li:nth-last-child(2):nth-child(odd),.team li:last-child{border-bottom:0}
.team .avatar{width:72px;height:72px;font-size:18px;background-color:var(--fondo-chiaro);border:1px solid var(--bordo)}
.team .persona{flex:1;min-width:0;line-height:1.5}
#cnt .team .persona b{display:block;font-size:16px;color:var(--blu)}
.ruoli,.rui{display:block;font-size:13px;line-height:1.6;color:var(--testo)}
.rui{color:var(--grigio);font-variant-numeric:tabular-nums}
#cnt .nota{margin:10px 0 0;font-size:12px;color:var(--grigio)}
/* contatti.html: recapiti, modulo "Scrivici", orario */
.contatti-griglia{display:grid;grid-template-columns:1fr 1fr;gap:40px;align-items:start}
.sx_50{float:left;width:calc(50% - 20px);margin-right:40px;padding:4px 0}
.sx_50+.sx_50{margin-right:0}
.sx_100{width:100%;margin-top:32px}
.dx_50{padding:24px 28px;background-color:var(--fondo-chiaro);border:1px solid var(--bordo);border-radius:var(--raggio)}
#cnt .sx_50 .fa{color:var(--rosso);width:18px;text-align:center}
.input{display:block;width:100%;padding:10px 14px;background-color:#fff;border:1px solid var(--bordo);border-radius:6px;transition:border-color .2s,box-shadow .2s}
.input:focus{outline:none;border-color:var(--blu);box-shadow:0 0 0 3px rgba(13,41,63,.12)}
#cnt:not(.home) site-orari:not([formato]){display:block;margin-top:4px}
/* modulo "Scrivici": prepara un'email nel programma di posta del visitatore (link mailto:) */
#cnt .scrivici p{margin:8px 0 0;font-size:14px}
.scrivici .campi{display:grid;grid-template-columns:1fr 1fr;gap:16px 20px;margin-top:20px}
.scrivici .campo-largo{grid-column:1/-1}
.scrivici label{display:block;margin-bottom:6px;font-size:13px;font-weight:700;color:var(--scuro)}
.scrivici select.input{appearance:none;-webkit-appearance:none;padding-right:38px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%230D293F' stroke-width='2'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 14px center;cursor:pointer}
.scrivici textarea.input{min-height:130px;resize:vertical;line-height:1.5}
.scrivici .input.errore{border-color:var(--rosso);box-shadow:0 0 0 3px rgba(200,16,46,.12)}
.scrivici .azioni{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-top:20px}
#cnt .scrivici .nota{margin:0;font-size:12px;color:var(--grigio)}
#cnt .scrivici .scrivici-esito{margin-top:16px;padding:12px 16px;font-size:14px;background-color:#fff;border:1px solid var(--bordo);border-radius:6px}
#cnt .scrivici .scrivici-esito.errore{color:var(--rosso);border-color:var(--rosso-bordo);background-color:var(--rosso-fondo)}
#cnt .scrivici .scrivici-esito a{text-decoration:underline;text-decoration-color:rgba(13,41,63,.3);text-underline-offset:3px}

/* ---------- finestra cookies e foto ingrandite ---------- */
#cookie-disclaimer{position:fixed;inset:0;z-index:9999;background-color:rgba(13,41,63,.55);display:flex;align-items:center;justify-content:center;padding:16px;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}
#cookie-disclaimer[hidden]{display:none}
.cookie-box{background-color:#fff;max-width:480px;width:100%;padding:30px;border-top:var(--rosso) 4px solid;border-radius:var(--raggio);box-shadow:0 20px 50px rgba(0,0,0,.35);text-align:left;outline:none}
.cookie-box b{display:block;font-size:18px;color:var(--blu)}
.cookie-box p{margin:15px 0 20px}
.cookie-box a{text-decoration:underline}
.cookie-bottoni{display:flex;gap:10px;justify-content:flex-end}
.btn_cookie{flex:1;max-width:160px;padding:10px 20px;border-radius:6px;border:var(--blu) 1px solid;background-color:#fff;color:var(--blu);font-weight:700;cursor:pointer;transition:background-color .2s,color .2s,border-color .2s}
.btn_cookie:hover{background-color:var(--fondo-chiaro)}
.btn_cookie.accetta{background-color:var(--blu);color:#fff}
.btn_cookie.accetta:hover{background-color:var(--rosso);border-color:var(--rosso)}
.lightbox{position:fixed;inset:0;z-index:10000;background:rgba(13,41,63,.9);display:flex;align-items:center;justify-content:center;cursor:zoom-out;padding:20px}
.lightbox img{max-width:100%;max-height:100%;border-radius:var(--raggio);box-shadow:0 20px 50px rgba(0,0,0,.5)}

/* ---------- schermi medi e piccoli ---------- */
@media (max-width:1100px){
 .hero h1{font-size:40px}
 .vantaggi{grid-template-columns:1fr;gap:16px;align-items:start}
 .vantaggi-elenco{grid-template-columns:repeat(2,minmax(0,1fr))}
 .vantaggi-elenco li:nth-last-child(-n+3){border-bottom:1px solid var(--bordo)}
 .vantaggi-elenco li:nth-last-child(-n+2){border-bottom:0}
 .team-home{grid-template-columns:1fr;gap:40px}
 .blocco{grid-template-columns:180px 1fr;gap:30px}
 #cnt .categorie{grid-template-columns:repeat(auto-fill,minmax(150px,1fr))}
}
@media (max-width:900px){
 :root{--gutter:28px}
 .sezione{gap:28px;padding-top:56px;padding-bottom:56px}
 .sezione-titolo h2{font-size:27px}
 .hero-griglia{grid-template-columns:1fr;gap:56px;padding-top:48px;padding-bottom:64px}
 .hero h1{font-size:36px}
 .hero-img{height:360px}
 .hero-card{left:16px;bottom:-32px;right:16px;min-width:0}
 .bacheca .sezione{padding-top:48px}
 .bacheca-griglia{grid-template-columns:1fr}
 .schede-3{grid-template-columns:1fr}
 .sezione-compatta{padding-top:44px;padding-bottom:44px}
 .team-griglia{grid-template-columns:repeat(2,minmax(0,1fr))}
 .contatti-home{grid-template-columns:1fr;gap:48px}
 .sezione-testa{flex-direction:column;align-items:flex-start;gap:16px}
 .banner{height:260px}
 .blocco{grid-template-columns:1fr;gap:16px;padding:32px 0}
 .contatti-griglia{grid-template-columns:1fr;gap:32px}
 .sx_50{float:none;width:100%;margin-right:0}
 .sx_100{margin-top:24px}
 #cnt:not(.home){padding-top:48px;padding-bottom:64px}
}
@media (max-width:800px){
 .nav-riga{flex-wrap:wrap;gap:10px;padding-top:10px;padding-bottom:10px}
 .logo img{height:44px}
 #menu_trigger{display:inline-flex}
 /* logo a sinistra; telefono e menu spinti a destra */
 .nav-tel{order:2;margin-left:auto}
 #menu_trigger{order:3;margin-left:0}
 #menu{order:4;display:none;flex-direction:column;gap:0;width:100%;margin:4px 0 0;padding-top:4px;border-top:1px solid var(--bordo)}
 #menu.aperto{display:flex}
 #menu li a{padding:13px 12px;border-radius:6px}
 #menu li a.hover{box-shadow:inset 3px 0 var(--rosso);background-color:var(--fondo-chiaro)}
 .head-link a:first-child{display:none}
 /* logo, telefono e menu restano in alto mentre si scorre; le ancore (#auto, #contatti...) tengono conto dell'altezza */
 header{display:contents}
 .nav{position:sticky;top:0}
 html{scroll-padding-top:76px}
 #menu{max-height:calc(100vh - 90px);overflow-y:auto}
 /* aree di tocco più ampie (almeno 44px) senza cambiare l'impaginazione */
 .head-riga{padding-top:4px;padding-bottom:4px}
 .head-link a{padding:9px 4px}
 .stato{padding:9px 0}
 .link-freccia,.recapiti li a{padding:10px 0;margin:-10px 0}
 .team-home .link-freccia{margin-top:-2px}
 .vantaggi .sezione-titolo .link-freccia{margin-top:-6px}
 .avviso-piede a,#cnt:not(.home) a:not(.btn_contatti):not(.zoom){padding:8px 0}
 .btn,.btn_contatti,.btn_cookie{min-height:44px}
 .mappa-azioni a{padding:10px 0}
 /* campi del modulo: con meno di 16px iOS ingrandisce la pagina quando si scrive */
 .input{font-size:16px;padding:12px 14px}
 /* contatti.html: le righe vuote che allineavano le due colonne non servono quando sono impilate */
 .sx_50+.sx_50>br:first-child,.sx_50+.sx_50>br:first-child+br{display:none}
 .sx_50+.sx_50{margin-top:-4px}
}
@media (max-width:600px){
 :root{--gutter:18px}
 body{font-size:14px}
 /* misure ridotte per lo schermo del telefono: barra, titoli, schede, icone, etichette */
 .logo img{height:38px}
 #menu_trigger{width:42px;height:42px}
 #menu_trigger::before{font-size:16px}
 .sezione{gap:20px;padding-top:40px;padding-bottom:40px}
 .sezione-compatta{padding-top:32px;padding-bottom:32px}
 .bacheca .sezione{padding-top:32px}
 .sezione-titolo{gap:6px}
 .sezione-titolo h2,.sezione-compatta .sezione-titolo h2{font-size:22px}
 .kicker{font-size:11px;letter-spacing:1.2px}
 .etichetta{font-size:11px}
 .btn{padding:12px 20px;font-size:14px}
 .btn-contorno{padding:11px 18px}
 .hero-griglia{gap:28px;padding-top:28px;padding-bottom:40px}
 .hero h1{font-size:27px}
 .hero-luogo{font-size:.6em}
 .hero-testo{gap:14px}
 .hero-testo p{font-size:15px}
 /* la scheda con indirizzo e orario va sotto la foto, così la foto resta visibile */
 .hero-foto{display:flex;flex-direction:column}
 .hero-img{height:200px}
 .hero-card{position:static;margin:-32px 14px 0;padding:14px 16px;gap:2px}
 .hero-card>b{font-size:15px}
 .hero-oggi{font-size:13px}
 .azioni .btn{flex:1 1 100%}
 .btn{white-space:normal;text-align:center}
 .avviso{padding:18px;gap:10px}
 .avviso-titolo{font-size:17px}
 .avviso-meta{font-size:12px}
 .tag{font-size:11px;padding:1px 9px}
 .novita-voce{padding:14px;gap:12px}
 .novita-icona{width:36px;height:36px;font-size:14px}
 .novita-titolo{font-size:15px}
 .novita-testo{font-size:13px}
 .scheda{padding:16px;gap:8px}
 .scheda .icona{top:16px;right:16px;width:34px;height:34px;font-size:14px}
 .scheda-titolo{min-height:34px;padding-right:44px;font-size:16px}
 .scheda>span:not(.icona):not(.tags){font-size:13px}
 .vantaggi-elenco li{padding:11px 0}
 .voto{padding:10px 14px;gap:12px}
 .voto>.fa{font-size:22px}
 .voto-riga b{font-size:20px}
 .recensione blockquote{font-size:14px}
 .vantaggi-elenco{grid-template-columns:1fr}
 .vantaggi-elenco li:nth-last-child(-n+2){border-bottom:1px solid var(--bordo)}
 .vantaggi-elenco li:last-child{border-bottom:0}
 .recensione{padding:18px;gap:12px}
 /* team: una riga per persona, con le iniziali a sinistra, invece di sei riquadri alti */
 .team-home{gap:28px}
 .team-griglia{grid-template-columns:1fr;gap:8px}
 .team-griglia li{flex-direction:row;align-items:center;gap:12px;padding:10px 14px}
 .team-griglia .avatar{width:40px;height:40px;font-size:13px}
 .cta-piccola{flex-direction:column;align-items:flex-start;padding:18px;gap:14px}
 .cta-testo b{font-size:15px}
 .cta-piccola .btn{align-self:stretch}
 .giorno,.ora{padding:10px 10px;font-size:13px}
 .giorno{width:auto}
 .ora{white-space:normal;line-height:1.4}
 .orario thead th{font-size:12px;letter-spacing:.5px}
 .orario tr.oggi .giorno::after{display:block;width:max-content;margin:2px 0 0}
 .nav-tel span{display:none}
 .nav-tel{width:42px;height:42px;padding:0;justify-content:center}
 .stato span:not(.stato-punto){display:none}
 .foot-riga{flex-direction:column;align-items:stretch;gap:22px;padding-top:28px;padding-bottom:22px}
 .foot-brand{gap:14px}
 .foot-nome b{font-size:14px}
 #menu_foot{gap:8px 18px}
 .foot-base{flex-direction:column;padding-bottom:18px}
 .prodotti{grid-template-columns:1fr;gap:12px;margin-top:14px}
 .prodotto{padding:18px}
 .prodotto .icona{top:18px;right:18px;width:34px;height:34px;font-size:14px}
 .prodotto h3{min-height:34px;padding-right:44px;font-size:15px}
 #cnt .categorie{gap:8px;grid-template-columns:repeat(2,1fr)}
 .categorie li{padding:12px 8px;gap:8px;font-size:13px}
 .categorie .fa{width:34px;height:34px;line-height:34px;font-size:15px}
 .blocco{padding:24px 0;gap:10px}
 #cnt:not(.home){padding-top:32px;padding-bottom:48px}
 #cnt:not(.home) h1{padding-bottom:20px;font-size:22px}
 #cnt:not(.home) h2{font-size:18px}
 .cta{flex-direction:column;align-items:flex-start;padding:20px 18px;gap:16px}
 #cnt .cta .cta-titolo{font-size:18px}
 #cnt .intro p{font-size:15px}
 #cnt .team{grid-template-columns:1fr}
 .team li:nth-last-child(2):nth-child(odd){border-bottom:1px solid var(--bordo)}
 .foto .img_right{height:170px}
 .team .avatar{width:56px;height:56px;font-size:15px}
 .team li{gap:16px}
 .dx_50{padding:20px 18px}
 .scrivici .campi{grid-template-columns:1fr;gap:14px}
 .scrivici .azioni .btn_contatti{width:100%;justify-content:center}
 .banner{height:200px}
 #map,#photo:has(#map),.map-consenso{height:300px;min-height:300px}
 /* finestra cookies come tendina dal basso, con i due pulsanti a tutta larghezza */
 #cookie-disclaimer{align-items:flex-end;padding:0}
 .cookie-box{max-width:none;padding:24px 20px calc(20px + env(safe-area-inset-bottom));border-radius:var(--raggio) var(--raggio) 0 0}
 .cookie-box p{margin:12px 0 18px}
 .btn_cookie{max-width:none}
 .lightbox{padding:12px}
}
@media (prefers-reduced-motion:reduce){
 *,*::before,*::after{transition:none!important}
}
