/*
Theme Name: FV Low Cost
Theme URI: https://mccubo.it
Author: McCubo
Author URI: https://mccubo.it
Description: Tema custom Full Site Editing per FV Low Cost - impianti fotovoltaici. Design "Soles": navy, verde lime, giallo sole.
Version: 2.5.0
Requires at least: 6.4
Tested up to: 7.0
Requires PHP: 7.4
License: Proprietario
Text Domain: fvlowcost
*/

:root{
  --ink:#002244;
  --navy:#002244;
  --verde:#86BB46;
  --verde-deep:#467a1e;
  --verde-chiaro:#9ccb5b;
  --sole:#FEC51B;
  --font-display:'Unbounded',sans-serif;
  --font-body:'Sora',sans-serif;
}

html{overflow-x:clip}
body{font-family:var(--font-body);color:var(--navy);overflow-x:clip}
main.wp-block-group{margin-block-start:0}

/* rete di sicurezza: nessuna immagine può sforare il proprio contenitore
   (evita lo zoom-out su mobile, es. overlay lightbox a dimensione naturale) */
img{max-width:100%;height:auto}

/* contenitore interno alle sezioni full-width */
.wrap{max-width:1320px;margin:0 auto;padding-left:24px;padding-right:24px}

/* ── header sticky ── */
header.wp-block-template-part{position:sticky;top:0;z-index:50}
.site-header{background:#fff;border-bottom:1px solid rgba(0,34,68,.08);padding:1rem 0}
.site-header .logo-fv svg{height:51px;width:auto;display:block}
.site-header .wp-block-navigation a{font-size:.92rem;font-weight:500;position:relative;padding:.2rem 0;min-height:28px;display:inline-flex;align-items:center}
.site-header .wp-block-navigation a:hover{text-decoration:none}
.site-header .wp-block-navigation .wp-block-navigation-item__content::after{content:"";position:absolute;left:0;bottom:0;width:0;height:2px;background:var(--verde);transition:width .25s ease}
.site-header .wp-block-navigation .wp-block-navigation-item__content:hover::after,
.site-header .wp-block-navigation .current-menu-item .wp-block-navigation-item__content::after{width:100%}
.site-header .wp-block-navigation .cta-nav .wp-block-navigation-item__content{background:var(--sole);color:var(--navy);padding:.55rem 1.3rem;border-radius:10px;font-weight:600;transition:transform .2s ease,box-shadow .2s ease}
.site-header .wp-block-navigation .cta-nav .wp-block-navigation-item__content:hover{transform:translateY(-2px);box-shadow:0 8px 20px rgba(254,197,27,.45)}
.site-header .wp-block-navigation .cta-nav .wp-block-navigation-item__content::after{display:none}
/* focus visibile da tastiera sui link header (oltre all'underline animato) */
.site-header .wp-block-navigation a:focus-visible,
.site-header .header-tel:focus-visible,
.site-header .logo-fv:focus-visible{outline:2px solid var(--verde-deep);outline-offset:3px;border-radius:4px}
/* ── telefono nell'header ── */
.site-header .header-right{gap:1.4rem}
.header-tel{display:inline-flex;align-items:center;gap:.45rem;font-weight:700;font-size:.95rem;color:var(--navy);text-decoration:none;white-space:nowrap;padding:.5rem .75rem;border-radius:10px;min-height:44px;transition:color .2s ease,background .2s ease}
.header-tel svg{color:var(--verde-deep);flex:none}
.header-tel:hover{color:var(--verde-deep);background:rgba(70,122,30,.08)}

/* ── bottoni ── */
.btn,.wp-block-button__link{font-weight:600;border-radius:10px;transition:transform .2s ease,box-shadow .2s ease}
.btn{display:inline-flex;align-items:center;gap:.6rem;padding:.95rem 1.9rem;font-size:1rem;text-decoration:none}
.btn-pieno .wp-block-button__link{background:var(--verde);color:#fff}
.btn-pieno:hover,.btn-pieno .wp-block-button__link:hover{transform:translateY(-2px);box-shadow:0 12px 28px rgba(134,187,70,.45);color:#fff}
.btn-vuoto{border:none}
.btn-vuoto .wp-block-button__link{border:2px solid rgba(255,255,255,.35);color:#fff;background:transparent}
.btn-vuoto .wp-block-button__link:hover{border-color:var(--verde);color:var(--verde-chiaro);background:transparent}
.btn-sole .wp-block-button__link{background:var(--sole);color:var(--navy)}
.btn-sole:hover,.btn-sole .wp-block-button__link:hover{transform:translateY(-2px);box-shadow:0 12px 30px rgba(254,197,27,.45);color:var(--navy)}
.btn-navy .wp-block-button__link{background:var(--navy);color:#fff}
.btn-navy:hover,.btn-navy .wp-block-button__link:hover{transform:translateY(-2px);color:#fff}

/* ── hero home ── */
.hero{background:linear-gradient(160deg,#001a33 0%,var(--ink) 60%,#003366 100%);color:#fff;padding:5.5rem 0 4.5rem;position:relative;overflow:hidden}
.hero::before{content:"";position:absolute;top:-340px;right:-240px;width:780px;height:780px;border-radius:50%;background:radial-gradient(circle,rgba(254,197,27,.38) 0%,rgba(254,197,27,.12) 42%,transparent 70%);pointer-events:none}
.hero h1{color:#fff;font-weight:800;font-size:clamp(2.1rem,4.4vw,3.7rem);line-height:1.08;letter-spacing:-.01em}
.hero h1 .sole{color:var(--sole);white-space:nowrap}
.hero h1 .verde{color:var(--verde)}
.hero .sub{margin:1.6rem 0 2.3rem;font-size:1.13rem;line-height:1.7;color:rgba(255,255,255,.78);max-width:34rem;font-weight:300}
.hero-grid{display:grid !important;grid-template-columns:1.05fr .95fr;gap:3.5rem;align-items:center}
.hero-grid > .wp-block-column{margin:0 !important;flex:none !important;width:auto !important}
.kicker{display:inline-flex;align-items:center;gap:.5rem;font-size:.78rem;letter-spacing:.18em;text-transform:uppercase;font-weight:600;color:var(--verde-chiaro);margin-bottom:1.4rem}
.kicker::before{content:"";width:34px;height:2px;background:var(--sole)}
.hero-foto{position:relative}
.hero-foto .cornice{border-radius:28px 120px 28px 28px;overflow:hidden;box-shadow:0 30px 70px rgba(0,26,51,.45);transform:rotate(1.2deg)}
.hero-foto .cornice img{width:100%;height:560px;object-fit:cover;display:block}
.card-float{position:absolute;background:#fff;border-radius:18px;padding:1rem 1.4rem;box-shadow:0 18px 44px rgba(0,26,51,.3);display:flex;align-items:center;gap:.9rem;animation:galleggia 5s ease-in-out infinite}
.card-float .num{font-family:var(--font-display);font-weight:800;font-size:1.7rem;color:var(--verde-deep)}
.card-float small{font-size:.78rem;line-height:1.35;color:rgba(0,34,68,.65);font-weight:500}
.cf-1{top:36px;left:-44px}
.cf-2{bottom:90px;right:-30px;animation-delay:1.6s}
.cf-3{bottom:-26px;left:36px;animation-delay:3s}
.cf-3 .num{color:var(--sole)}
@keyframes galleggia{0%,100%{transform:translateY(0)}50%{transform:translateY(-12px)}}

/* ── nastro scorrevole ── */
.nastro{background:var(--verde);color:var(--navy);padding:.95rem 0;overflow:hidden;transform:rotate(-1.2deg) scale(1.02);margin:2.5rem 0}
.nastro-track{display:flex;gap:3rem;white-space:nowrap;animation:scorri 26s linear infinite;width:max-content}
.nastro span{font-family:var(--font-display);font-size:.9rem;font-weight:400;letter-spacing:.08em;display:flex;align-items:center;gap:3rem}
.nastro .pallino{color:var(--navy);font-style:normal}
@keyframes scorri{to{transform:translateX(-50%)}}

/* ── sezioni ── */
.sez{padding:5.5rem 0}
.titolo-sez{font-family:var(--font-display);font-weight:600;font-size:clamp(1.6rem,3vw,2.5rem);line-height:1.15;letter-spacing:-.01em}
.eyebrow{font-size:.75rem;letter-spacing:.2em;text-transform:uppercase;font-weight:600;color:var(--verde-deep);display:block;margin-bottom:.9rem}
.testo-tenue{line-height:1.85;color:rgba(0,34,68,.78);font-weight:300}

/* chi siamo / griglie a due colonne */
.chi-grid{display:grid !important;grid-template-columns:1fr 1fr;gap:4rem;align-items:center}
.chi-grid > .wp-block-column{margin:0 !important;flex:none !important;width:auto !important}
.chi-foto,.chi-foto img{border-radius:24px;overflow:hidden}
.chi-foto{box-shadow:0 24px 60px rgba(0,34,68,.22)}
.chi-foto img{height:420px;width:100%;object-fit:cover;transition:transform .6s ease;display:block}
.chi-foto:hover img{transform:scale(1.04)}
.contatori{display:flex;gap:2.8rem;margin-top:2.4rem;flex-wrap:wrap}
.contatore .num{font-family:var(--font-display);font-weight:800;font-size:2.6rem;color:var(--verde-deep)}
.contatore .num em{font-style:normal;color:var(--verde-deep)}
.contatore small{display:block;margin-top:.3rem;font-size:.82rem;color:rgba(0,34,68,.6);font-weight:500}
.link-freccia{display:inline-flex;align-items:center;gap:.5rem;font-weight:600;color:var(--verde-deep) !important;margin-top:1.6rem;text-decoration:none;transition:gap .2s ease,color .2s ease}
.link-freccia:hover{gap:.9rem;color:var(--verde) !important}
.link-freccia::after{content:"→";font-size:1.15rem}

/* servizi (banda navy) */
.servizi{background:var(--ink);color:#fff;clip-path:polygon(0 3.5%,100% 0,100% 96.5%,0 100%);padding:8rem 0}
.servizi .eyebrow{color:var(--sole)}
.servizi .titolo-sez,.servizi h2,.servizi h3{color:#fff}
.serv-grid{display:grid !important;grid-template-columns:repeat(3,1fr);gap:1.6rem;margin-top:3rem}
.serv-grid > .wp-block-column{margin:0 !important;flex:none !important;width:auto !important}
.serv-card{background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.12);border-radius:22px;padding:2.2rem 1.9rem;transition:transform .3s ease,background .3s ease,border-color .3s ease}
.serv-card:hover{transform:translateY(-8px);background:rgba(255,255,255,.09);border-color:var(--sole)}
.serv-card .icona{width:58px;height:58px;border-radius:16px;display:flex;align-items:center;justify-content:center;margin-bottom:1.5rem;background:rgba(254,197,27,.14)}
.serv-card h3{font-family:var(--font-display);font-weight:600;font-size:1.12rem;margin-bottom:.8rem}
.serv-card p{font-size:.94rem;line-height:1.7;color:rgba(255,255,255,.7);font-weight:300}
.serv-cta{text-align:center;margin-top:3.2rem}

/* processo */
.passi{display:grid !important;grid-template-columns:repeat(4,1fr);gap:1.4rem;margin-top:3rem}
.passi > .wp-block-column{margin:0 !important;flex:none !important;width:auto !important}
.passo{position:relative;padding:2rem 1.5rem 1.8rem;background:#fff;border-radius:20px;border:1px solid rgba(0,34,68,.07);transition:transform .3s ease,box-shadow .3s ease}
.passo:hover{transform:translateY(-6px);box-shadow:0 18px 40px rgba(0,34,68,.12)}
.passo .n{font-family:var(--font-display);font-weight:800;font-size:2.8rem;color:transparent;-webkit-text-stroke:1.5px var(--verde);opacity:.85}
.passo h3{font-family:var(--font-body);font-size:1.02rem;font-weight:600;margin:.9rem 0 .5rem}
.passo p{font-size:.88rem;line-height:1.65;color:rgba(0,34,68,.65);font-weight:300}

/* gallerie */
.mosaico-mini.wp-block-gallery{gap:1rem;margin-top:3rem}
.mosaico-mini .wp-block-image{border-radius:18px;overflow:hidden}
.mosaico-mini .wp-block-image img{height:280px !important;object-fit:cover}
.griglia-foto.wp-block-gallery{gap:1rem;margin-top:3rem}
.griglia-foto .wp-block-image{border-radius:18px;overflow:hidden}
.griglia-foto .wp-block-image img{transition:transform .55s ease}
.griglia-foto .wp-block-image:hover img{transform:scale(1.05)}
.serv-cta-spazio{margin-top:2.6rem}

/* banda CTA finale */
.finale{background:linear-gradient(135deg,var(--verde-deep) 0%,var(--verde) 55%,var(--verde-chiaro) 100%);color:var(--navy);border-radius:32px;padding:4.5rem 3rem;text-align:center;position:relative;overflow:hidden}
.finale::before{content:"";position:absolute;top:-130px;right:-80px;width:380px;height:380px;border-radius:50%;background:radial-gradient(circle,rgba(254,197,27,.45),transparent 70%)}
.finale h2{font-family:var(--font-display);font-weight:600;font-size:clamp(1.5rem,2.8vw,2.3rem);max-width:36rem;margin:0 auto 1.2rem;position:relative}
.finale p{color:rgba(0,34,68,.78);margin-bottom:2.2rem;font-weight:300;position:relative}
.finale .wp-block-buttons{position:relative}
/* banda finale = sfondo verde → CTA navy per contrasto (il default verde di theme.json sarebbe verde-su-verde) */
.finale .wp-block-button__link{background-color:var(--navy);color:#fff}
.finale .wp-block-button__link:hover{background-color:#001a33;color:#fff;transform:translateY(-2px)}

/* ── hero pagine interne ── */
.pagina-hero{background:linear-gradient(160deg,#001a33 0%,var(--ink) 60%,#003366 100%);color:#fff;padding:4.5rem 0 3.5rem;position:relative;overflow:hidden}
.pagina-hero::before{content:"";position:absolute;top:-300px;right:-200px;width:640px;height:640px;border-radius:50%;background:radial-gradient(circle,rgba(254,197,27,.3) 0%,transparent 70%)}
.pagina-hero h1{color:#fff;font-weight:800;font-size:clamp(1.9rem,3.6vw,3rem);position:relative}
.briciole{position:relative;margin-top:1rem;font-size:.85rem;color:rgba(255,255,255,.6)}
.briciole a{color:inherit;text-decoration:none}
.briciole a:hover{color:var(--verde-chiaro)}

/* blocchi servizio alternati */
.blocco-serv{display:grid !important;grid-template-columns:1fr 1fr;gap:3.5rem;align-items:center;padding:3.5rem 0}
.blocco-serv > .wp-block-column{margin:0 !important;flex:none !important;width:auto !important}
.blocco-foto,.blocco-foto img{border-radius:24px;overflow:hidden}
.blocco-foto{box-shadow:0 24px 60px rgba(0,34,68,.22)}
.blocco-foto img{width:100%;height:380px;object-fit:cover;transition:transform .6s ease;display:block}
.blocco-foto:hover img{transform:scale(1.04)}
.lista-check{margin-top:1.2rem;padding-left:0 !important;list-style:none}
.lista-check li{padding-left:1.7rem;position:relative;margin-bottom:.55rem;font-size:.95rem;color:rgba(0,34,68,.78)}
.lista-check li::before{content:"✓";position:absolute;left:0;color:var(--verde-deep);font-weight:700}

/* contatti */
.cont-grid{display:grid !important;grid-template-columns:1fr 1.1fr;gap:3.5rem;align-items:start;margin-top:3rem}
.cont-grid > .wp-block-column{margin:0 !important;flex:none !important;width:auto !important}
.cont-card{background:#fff;border:1px solid rgba(0,34,68,.08);border-radius:22px;padding:2.2rem;margin-bottom:1.4rem;display:flex;gap:1.2rem;align-items:flex-start;transition:transform .25s ease,box-shadow .25s ease}
.cont-card:hover{transform:translateY(-4px);box-shadow:0 16px 40px rgba(0,34,68,.12)}
.cont-card .icona{flex:none;width:52px;height:52px;border-radius:14px;background:rgba(134,187,70,.15);display:flex;align-items:center;justify-content:center}
.cont-card h3{font-family:var(--font-body);font-size:1rem;font-weight:600;margin-bottom:.3rem}
.cont-card p,.cont-card a{font-size:.95rem;color:rgba(0,34,68,.72);font-weight:300;line-height:1.6}
.cont-card a:hover{color:var(--verde-deep)}
.form-card{background:#fff;border:1px solid rgba(0,34,68,.08);border-radius:24px;padding:2.5rem;box-shadow:0 24px 60px rgba(0,34,68,.1)}
.form-card h3{font-family:var(--font-display);font-weight:600;font-size:1.25rem;margin-bottom:1.6rem}
.form-card label{display:block;font-size:.82rem;font-weight:600;margin:1.1rem 0 .4rem}
.form-card input[type="text"],.form-card input[type="tel"],.form-card input[type="email"],.form-card textarea{width:100%;padding:.8rem 1rem;min-height:48px;border:1.5px solid rgba(0,34,68,.15);border-radius:12px;font-family:var(--font-body);font-size:16px;background:#fff;transition:border-color .2s ease;box-sizing:border-box}
.form-card textarea{min-height:120px}
.form-card input:focus,.form-card textarea:focus{outline:2px solid var(--verde-deep);outline-offset:2px;border-color:var(--verde-deep)}
.form-card .wpcf7-submit{margin-top:1.6rem;width:100%;min-height:48px;border:none;cursor:pointer;background:var(--verde);color:#fff;font-weight:600;border-radius:10px;padding:.95rem 1.9rem;font-size:16px;font-family:var(--font-body)}
.form-card .wpcf7-submit:hover{box-shadow:0 12px 28px rgba(134,187,70,.45)}
.mappa{border-radius:24px;overflow:hidden;margin-top:3.5rem;box-shadow:0 24px 60px rgba(0,34,68,.12)}
.mappa iframe{width:100%;height:380px;border:0;display:block}
/* mappa caricata solo al click: evita ~2MB di Google Maps al caricamento pagina */
.mappa-lazy iframe{display:none}
.mappa-attiva{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.35rem;width:100%;height:380px;border:0;cursor:pointer;font-family:var(--font-body);color:var(--navy);background:linear-gradient(135deg,#eaf1e0 0%,#e6eef7 100%);transition:filter .2s ease}
.mappa-attiva:hover{filter:brightness(.97)}
.mappa-attiva .mappa-pin{width:48px;height:48px;border-radius:50%;background:var(--verde-deep);color:#fff;display:flex;align-items:center;justify-content:center;margin-bottom:.4rem}
.mappa-attiva strong{font-weight:600;font-size:1.02rem}
.mappa-attiva small{font-weight:400;font-size:.85rem;color:rgba(0,34,68,.62)}
.mappa-attiva:focus-visible{outline:3px solid var(--verde-deep);outline-offset:-3px}

/* footer */
footer.wp-block-template-part .site-footer{background:var(--ink);color:rgba(247,245,240,.75);padding:4rem 0 1.8rem;margin-top:5.5rem}
.site-footer h4{color:#fff;font-family:var(--font-body);font-size:.85rem;letter-spacing:.14em;text-transform:uppercase;margin-bottom:1.1rem}
.site-footer a{color:inherit;text-decoration:none}
.site-footer a:hover{color:var(--sole)}
.site-footer .foot-grid{display:grid !important;grid-template-columns:1.4fr 1fr 1fr;gap:3rem;padding-bottom:2.8rem;border-bottom:1px solid rgba(247,245,240,.1)}
.site-footer .foot-grid > .wp-block-column{margin:0 !important;flex:none !important;width:auto !important}
.site-footer ul{list-style:none;padding-left:0}
.site-footer li{margin-bottom:.6rem;font-size:.92rem;font-weight:300}
.site-footer .copy{text-align:center;padding-top:1.6rem;font-size:.78rem;color:rgba(247,245,240,.45)}

/* ── reveal allo scroll (attivo solo con JS) ── */
body.js .rivela{opacity:0;transform:translateY(34px);transition:opacity .8s ease,transform .8s ease}
body.js .rivela.vista{opacity:1;transform:none}
/* il lightbox di WP clona la figura con le sue classi (inclusa .rivela):
   dentro l'overlay il reveal non deve mai nascondere nulla */
body.js .wp-lightbox-overlay .rivela{opacity:1 !important;transform:none !important;transition:none !important}
@media (prefers-reduced-motion: reduce){
  body.js .rivela{opacity:1;transform:none;transition:none}
  .nastro-track,.card-float{animation:none}
}

/* ══════════ MENU MOBILE (overlay nativo WP, stile standard Enrico) ══════════ */
/* hamburger a 3 linee con scritta MENU; visibile solo da mobile */
.site-header .wp-block-navigation__responsive-container-open{
  display:none;flex-direction:column;align-items:center;justify-content:center;gap:4px;
  min-width:44px;min-height:44px;
  background:none;border:none;padding:.4rem;cursor:pointer;color:var(--navy)}
.site-header .wp-block-navigation__responsive-container-open svg{display:none}
.site-header .wp-block-navigation__responsive-container-open::before{
  content:"";width:26px;height:2px;border-radius:2px;background:var(--navy);
  box-shadow:0 7px 0 var(--navy),0 14px 0 var(--navy)}
.site-header .wp-block-navigation__responsive-container-open::after{
  content:"MENU";margin-top:14px;font-family:var(--font-body);font-size:.6rem;
  font-weight:700;letter-spacing:.15em;color:var(--navy)}

/* overlay aperto: fondo navy, logo in cima, voci centrate */
.wp-block-navigation__responsive-container.is-menu-open{
  background:var(--ink) !important;padding:1.5rem 1.5rem 3rem}
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-inner{
  margin-top:1rem}
.wp-block-navigation__responsive-container.is-menu-open::before{
  content:"";position:absolute;top:1.6rem;left:1.6rem;width:150px;height:34px;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 250 56'%3E%3Ccircle cx='28' cy='14' r='9' fill='%23FEC51B'/%3E%3Crect x='8' y='26' width='40' height='24' rx='4' fill='%2386BB46'/%3E%3Cline x1='21.3' y1='26' x2='21.3' y2='50' stroke='%23fff' stroke-width='1.6'/%3E%3Cline x1='34.6' y1='26' x2='34.6' y2='50' stroke='%23fff' stroke-width='1.6'/%3E%3Cline x1='8' y1='38' x2='48' y2='38' stroke='%23fff' stroke-width='1.6'/%3E%3Ctext x='60' y='33' font-family='Unbounded,sans-serif' font-weight='800' font-size='21' fill='%23fff'%3EFV%3Ctspan fill='%239ccb5b'%3E LOW COST%3C/tspan%3E%3C/text%3E%3Ctext x='61' y='48' font-family='Sora,sans-serif' font-weight='500' font-size='9.5' letter-spacing='3.1' fill='%2386BB46'%3EENERGIA CHE CONVIENE%3C/text%3E%3C/svg%3E");
  background-repeat:no-repeat;background-size:contain}
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-close{
  color:#fff;top:1.7rem;right:1.6rem}
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content{
  width:100%;justify-content:center !important}
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container{
  gap:1.6rem !important;align-items:center !important;justify-content:center !important;width:100%;min-height:60vh}
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item{
  width:100%;text-align:center;align-items:center !important;justify-content:center !important}
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content{
  color:#fff;font-family:var(--font-display);font-weight:600;font-size:1.4rem}
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content::after{display:none}
.wp-block-navigation__responsive-container.is-menu-open .cta-nav{margin-top:1rem}
.wp-block-navigation__responsive-container.is-menu-open .cta-nav .wp-block-navigation-item__content{
  background:var(--sole);color:var(--navy) !important;padding:.9rem 2.4rem;border-radius:10px;font-size:1.1rem}

/* ══════════ responsive layout ══════════ */
@media(max-width:980px){
  .hero-grid,.chi-grid,.blocco-serv,.cont-grid{grid-template-columns:1fr !important;gap:2.5rem}
  .serv-grid{grid-template-columns:1fr !important}
  .passi{grid-template-columns:repeat(2,1fr) !important}
  .site-header .wp-block-navigation__responsive-container-open{display:inline-flex}
  .site-footer .foot-grid{grid-template-columns:1fr !important;gap:2.4rem;text-align:center}
  .site-footer .foot-grid > .wp-block-column > *{margin-left:auto;margin-right:auto}
  .site-footer .foot-grid p{max-width:32rem}
}

/* ── tablet portrait: immagini meno alte, l'headline resta above-the-fold ── */
@media(max-width:768px){
  .hero-foto .cornice img{height:400px}
  .blocco-foto img{height:300px}
}

/* ── HOME e pagine su telefono ── */
@media(max-width:640px){
  .sez{padding:3.5rem 0}
  .servizi{padding:5rem 0;clip-path:polygon(0 1.5%,100% 0,100% 98.5%,0 100%)}
  .hero{padding:3rem 0 3.5rem}

  /* hero: foto sotto, card galleggianti riposizionate e statiche */
  .hero h1{font-size:clamp(2rem,9vw,2.7rem)}
  .hero-foto{margin-top:1rem}
  .hero-foto .cornice{border-radius:20px 60px 20px 20px;transform:none}
  .hero-foto .cornice img{height:300px}
  .card-float{animation:none;padding:.7rem 1rem}
  .card-float .num{font-size:1.35rem}
  .card-float small{font-size:.7rem}
  .cf-1{top:12px;left:12px}
  .cf-2{bottom:auto;top:12px;right:12px}
  .cf-3{bottom:12px;left:12px}

  /* statistiche: griglia 3 colonne; numero "18+" inline, etichetta sotto */
  .contatori{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem;text-align:center}
  .contatore{text-align:center}
  .contatore .num{font-size:1.9rem}
  .contatore small{font-size:.72rem}

  /* processo: una colonna piena, no doppio vuoto */
  .passi{grid-template-columns:1fr !important;gap:1rem}
  .passo{display:flex;align-items:center;gap:1rem;padding:1.2rem 1.4rem}
  .passo .n{font-size:2rem;margin:0;flex:none}
  .passo h3{margin:0}

  /* galleria home: 1 grande sopra, evita 3 foto minuscole in fila */
  .mosaico-mini.wp-block-gallery{grid-template-columns:1fr !important}
  .mosaico-mini .wp-block-image img{height:240px !important}

  /* card servizi e CTA finale più compatte */
  .serv-card{padding:1.8rem 1.5rem}
  .finale{padding:3rem 1.6rem;border-radius:24px}
  .finale .wp-block-buttons{flex-direction:column;align-items:stretch}
  .finale .wp-block-button{width:100%}
  .finale .wp-block-button__link{display:block;text-align:center}
  .serv-cta .wp-block-button__link,.serv-cta-spazio .wp-block-button__link{display:block;text-align:center}

  /* griglia realizzazioni: 2 colonne pulite */
  .griglia-foto.wp-block-gallery{grid-template-columns:repeat(2,1fr) !important}
}

/* ── telefoni piccoli (<=420px): telefono header compatto, card-float discrete ── */
@media(max-width:420px){
  /* sull'header resta solo l'icona-telefono cliccabile, per non affollare la riga */
  .header-tel{padding:.5rem;gap:0}
  .header-tel span{display:none}
  /* card galleggianti più piccole così non coprono il soggetto della foto hero */
  .card-float{padding:.5rem .7rem;border-radius:12px}
  .card-float .num{font-size:1.15rem}
  .card-float small{font-size:.62rem}
}
