/* =========================================================
   SICOM — style.css (condiviso da tutte le pagine)
   Palette dal logo (blu gradiente) e dalle foto (acciaio inox)
   ========================================================= */

/* ---- Font locali (nessuna chiamata a Google Fonts) ---- */
@font-face{font-family:'Inter';font-style:normal;font-weight:400;font-display:swap;src:url('assets/fonts/inter-400.woff2') format('woff2');}
@font-face{font-family:'Inter';font-style:normal;font-weight:500;font-display:swap;src:url('assets/fonts/inter-500.woff2') format('woff2');}
@font-face{font-family:'Inter';font-style:normal;font-weight:600;font-display:swap;src:url('assets/fonts/inter-600.woff2') format('woff2');}
@font-face{font-family:'Sora';font-style:normal;font-weight:500;font-display:swap;src:url('assets/fonts/sora-500.woff2') format('woff2');}
@font-face{font-family:'Sora';font-style:normal;font-weight:600;font-display:swap;src:url('assets/fonts/sora-600.woff2') format('woff2');}
@font-face{font-family:'Sora';font-style:normal;font-weight:700;font-display:swap;src:url('assets/fonts/sora-700.woff2') format('woff2');}
@font-face{font-family:'Sora';font-style:normal;font-weight:800;font-display:swap;src:url('assets/fonts/sora-800.woff2') format('woff2');}

:root{
  --blu:        #1E5AA8;   /* blu SICOM primario */
  --azzurro:    #3D9BE0;   /* accento / gradiente */
  --blu-scuro:  #12356B;   /* profondità, footer */
  --acciaio-chiaro:#C7CDD3;
  --acciaio-medio: #8B949E;
  --antracite:  #2C333B;   /* testo principale */
  --ghiaccio:   #F5F8FC;   /* sfondo base */
  --bianco:     #ffffff;
  --rosso:      #E23B2E;   /* micro-accento */

  --grad: linear-gradient(120deg, var(--blu) 0%, var(--azzurro) 100%);
  --radius: 14px;
  --shadow-sm: 0 2px 10px rgba(18,53,107,.08);
  --shadow-md: 0 12px 34px rgba(18,53,107,.14);
  --shadow-lg: 0 24px 60px rgba(18,53,107,.22);
  --maxw: 1160px;
  --ease: cubic-bezier(.22,.61,.36,1);
}

/* ---------- Reset ---------- */
*,*::before,*::after{ box-sizing:border-box; margin:0; padding:0; }
html{ scroll-behavior:smooth; scroll-padding-top:90px; }
body{
  font-family:'Inter',system-ui,Arial,sans-serif;
  color:var(--antracite); background:var(--ghiaccio); line-height:1.65;
  -webkit-font-smoothing:antialiased; overflow-x:hidden;
}
img{ display:block; max-width:100%; height:auto; }
a{ color:inherit; text-decoration:none; }
h1,h2,h3,h4{ font-family:'Sora',sans-serif; line-height:1.15; color:var(--blu-scuro); font-weight:700; }
h1{ font-size:clamp(2rem,5vw,3.4rem); letter-spacing:-.02em; }
h2{ font-size:clamp(1.6rem,3.4vw,2.5rem); letter-spacing:-.01em; }
h3{ font-size:1.25rem; }
p{ color:#40474f; }
.container{ width:min(100% - 40px, var(--maxw)); margin-inline:auto; }
.eyebrow{ font-family:'Sora',sans-serif; font-weight:600; color:var(--blu); letter-spacing:.14em; text-transform:uppercase; font-size:.8rem; margin-bottom:.6rem; }

/* ---------- Bottoni ---------- */
.btn{ display:inline-flex; align-items:center; justify-content:center; gap:.5rem;
  font-family:'Sora',sans-serif; font-weight:600; font-size:.98rem; padding:.85rem 1.5rem;
  border-radius:50px; border:2px solid transparent; cursor:pointer;
  transition:transform .25s var(--ease), box-shadow .25s var(--ease), background .25s, color .25s; }
.btn-primary{ background:var(--grad); color:#fff; box-shadow:0 8px 22px rgba(30,90,168,.35); }
.btn-primary:hover{ transform:translateY(-3px); box-shadow:0 14px 30px rgba(30,90,168,.45); }
.btn-ghost{ background:rgba(255,255,255,.12); color:#fff; border-color:rgba(255,255,255,.6); backdrop-filter:blur(4px); }
.btn-ghost:hover{ background:#fff; color:var(--blu); transform:translateY(-3px); }
.btn-outline{ background:transparent; color:var(--blu); border-color:var(--blu); }
.btn-outline:hover{ background:var(--blu); color:#fff; transform:translateY(-3px); }
.btn-block{ width:100%; }
.btn-nav{ background:var(--grad); color:#fff; padding:.6rem 1.15rem; }
.btn-nav:hover{ transform:translateY(-2px); box-shadow:var(--shadow-md); }

/* ---------- Header ---------- */
.site-header{ position:fixed; inset:0 0 auto 0; z-index:100; padding:.9rem 0;
  transition:background .3s, box-shadow .3s, padding .3s; }
.site-header.scrolled{ background:rgba(255,255,255,.94); backdrop-filter:blur(10px); box-shadow:var(--shadow-sm); padding:.5rem 0; }
.header-inner{ display:flex; align-items:center; justify-content:space-between; }
.brand{ display:flex; align-items:center; background:#fff; padding:.45rem .9rem; border-radius:12px; border:4px solid #000; box-shadow:var(--shadow-md); transition:transform .25s var(--ease), padding .3s; }
.brand:hover{ transform:translateY(-2px); }
.brand-logo{ height:66px; width:auto; transition:height .3s; }
.site-header.scrolled .brand{ padding:.35rem .8rem; }
.site-header.scrolled .brand-logo{ height:54px; }

.nav{ display:flex; align-items:center; gap:1.5rem; }
.nav a{ font-weight:500; color:#fff; position:relative; transition:color .2s; }
.nav a:not(.btn)::after{ content:""; position:absolute; left:0; bottom:-6px; width:0; height:2px; background:var(--azzurro); transition:width .3s var(--ease); }
.nav a:not(.btn):hover::after,
.nav a.active:not(.btn)::after{ width:100%; }
.nav a.active:not(.btn){ color:#fff; font-weight:600; }
.site-header.scrolled .nav a{ color:var(--antracite); }
.site-header.scrolled .nav a.active{ color:var(--blu); }
.site-header.scrolled .nav a.btn-nav{ color:#fff; }

.nav-toggle{ display:none; flex-direction:column; gap:5px; background:rgba(255,255,255,.92); border:none; border-radius:8px; padding:9px 8px; cursor:pointer; }
.nav-toggle span{ width:24px; height:2.5px; background:var(--blu-scuro); border-radius:2px; transition:transform .3s, opacity .3s; }
.nav-toggle[aria-expanded="true"] span:nth-child(1){ transform:translateY(7.5px) rotate(45deg); }
.nav-toggle[aria-expanded="true"] span:nth-child(2){ opacity:0; }
.nav-toggle[aria-expanded="true"] span:nth-child(3){ transform:translateY(-7.5px) rotate(-45deg); }

/* ---------- Hero (home) ---------- */
.hero{ position:relative; min-height:100svh; display:flex; align-items:center; color:#fff; overflow:hidden; }
.hero-slides{ position:absolute; inset:0; z-index:-2; }
.hero-slides .slide{ position:absolute; inset:0; opacity:0; transition:opacity 1.1s var(--ease); }
.hero-slides .slide.active{ opacity:1; }
.hero-slides img{ width:100%; height:100%; object-fit:cover; }
.hero-overlay{ position:absolute; inset:0; z-index:-1;
  background:linear-gradient(115deg, rgba(18,53,107,.92) 0%, rgba(30,90,168,.74) 45%, rgba(61,155,224,.42) 100%); }
.hero-content{ padding:130px 0 90px; max-width:820px; }
.hero-kicker{ font-family:'Sora',sans-serif; font-weight:600; letter-spacing:.18em; text-transform:uppercase; font-size:.8rem; color:#cfe4fb; margin-bottom:1rem; }
.hero h1{ color:#fff; margin-bottom:1.2rem; }
.grad-text{ background:linear-gradient(100deg,#7ec2ff,#bfe0ff); -webkit-background-clip:text; background-clip:text; color:transparent; }
.hero-lead{ font-size:1.18rem; max-width:640px; color:#eaf3fd; margin-bottom:2rem; }
.hero-cta{ display:flex; gap:1rem; flex-wrap:wrap; }
.carousel-ui{ position:absolute; bottom:26px; left:0; right:0; z-index:2; }
.carousel-ui .container{ display:flex; align-items:center; gap:14px; justify-content:center; }
.carousel-dots{ display:flex; gap:9px; flex-wrap:wrap; justify-content:center; max-width:min(70vw,520px); }
.carousel-dots button{ width:11px; height:11px; border-radius:50%; border:2px solid rgba(255,255,255,.7); background:transparent; cursor:pointer; padding:0; transition:background .25s, transform .25s; }
.carousel-dots button.active{ background:#fff; transform:scale(1.15); }
.carousel-prev,.carousel-next{ width:42px; height:42px; border-radius:50%; border:2px solid rgba(255,255,255,.6); background:rgba(255,255,255,.12); color:#fff; font-size:1.4rem; cursor:pointer; transition:background .25s, transform .25s; }
.carousel-prev:hover,.carousel-next:hover{ background:var(--blu); transform:scale(1.06); }

/* ---------- Page banner (sotto-pagine) ---------- */
.page-banner{ position:relative; padding:150px 0 70px; color:#fff; overflow:hidden; }
.page-banner::before{ content:""; position:absolute; inset:0; z-index:-2; background-size:cover; background-position:center; }
.page-banner::after{ content:""; position:absolute; inset:0; z-index:-1; background:linear-gradient(115deg, rgba(18,53,107,.93), rgba(30,90,168,.7)); }
.page-banner.b-lavorazioni::before{ background-image:url('assets/carpenteria-officina.jpg'); }
.page-banner.b-chisiamo::before{ background-image:url('assets/serbatoio-inox.jpg'); }
.page-banner.b-gallery::before{ background-image:url('assets/componente-navale.jpg'); }
.page-banner.b-contatti::before{ background-image:url('assets/impianto-industriale.jpg'); }
.page-banner h1{ color:#fff; margin-bottom:.6rem; }
.page-banner p{ color:#e4eefb; max-width:640px; font-size:1.1rem; }
.breadcrumb{ font-size:.82rem; color:#bcd4f2; margin-bottom:1rem; letter-spacing:.04em; }
.breadcrumb a:hover{ color:#fff; }

/* ---------- Sezioni ---------- */
.section{ padding:clamp(60px,9vw,110px) 0; }
.section-alt{ background:#eef3f9; }
.section-dark{ background:var(--blu-scuro); color:#dbe6f5; }
.section-dark h2,.section-dark h3{ color:#fff; }
.section-dark p{ color:#b9c9e2; }
.section-head{ max-width:700px; margin:0 auto clamp(36px,5vw,60px); text-align:center; }
.section-sub{ color:var(--acciaio-medio); font-size:1.05rem; margin-top:.6rem; }
.section-dark .section-sub{ color:#9fb4d6; }

/* ---------- Intro / about ---------- */
.about-grid{ display:grid; grid-template-columns:1.3fr .9fr; gap:clamp(30px,5vw,70px); align-items:center; }
.about-text h2{ margin:.4rem 0 1rem; }
.about-text p{ margin-bottom:1rem; }
.about-media{ position:relative; }
.about-media img{ border-radius:var(--radius); box-shadow:var(--shadow-md); width:100%; }
.about-media .badge{ position:absolute; bottom:-18px; left:-18px; background:var(--grad); color:#fff; padding:1rem 1.3rem; border-radius:14px; box-shadow:var(--shadow-md); font-family:'Sora',sans-serif; font-weight:700; }
.link-arrow{ font-family:'Sora',sans-serif; font-weight:600; color:var(--blu); display:inline-flex; align-items:center; gap:.4rem; }
.link-arrow::after{ content:"→"; transition:transform .25s var(--ease); }
.link-arrow:hover::after{ transform:translateX(6px); }

/* ---------- Stats ---------- */
.stats{ list-style:none; display:grid; grid-template-columns:repeat(4,1fr); gap:16px; }
.stat{ background:#fff; border:1px solid #e2e8f0; border-radius:var(--radius); padding:1.4rem 1.2rem; text-align:center; box-shadow:var(--shadow-sm); transition:transform .3s var(--ease), box-shadow .3s; }
.stat:hover{ transform:translateY(-5px); box-shadow:var(--shadow-md); }
.stat-num{ display:block; font-family:'Sora',sans-serif; font-weight:800; font-size:2.2rem; background:var(--grad); -webkit-background-clip:text; background-clip:text; color:transparent; line-height:1; }
.stat-label{ display:block; margin-top:.4rem; font-size:.86rem; color:var(--acciaio-medio); font-weight:500; }

/* ---------- Cards settori/servizi ---------- */
.cards{ display:grid; grid-template-columns:repeat(3,1fr); gap:26px; }
.card{ background:#fff; border-radius:var(--radius); overflow:hidden; box-shadow:var(--shadow-sm); transition:transform .35s var(--ease), box-shadow .35s; display:flex; flex-direction:column; }
.card:hover{ transform:translateY(-8px); box-shadow:var(--shadow-lg); }
.card-media{ position:relative; aspect-ratio:4/3; overflow:hidden; }
.card-media img{ width:100%; height:100%; object-fit:cover; transition:transform .6s var(--ease); }
.card:hover .card-media img{ transform:scale(1.08); }
.card-media::after{ content:""; position:absolute; inset:0; background:linear-gradient(180deg,transparent 55%,rgba(18,53,107,.35)); opacity:0; transition:opacity .35s; }
.card:hover .card-media::after{ opacity:1; }
.card-body{ padding:1.4rem 1.4rem 1.6rem; display:flex; flex-direction:column; flex:1; }
.card-body h3{ color:var(--blu); margin-bottom:.5rem; }
.card-body p{ font-size:.97rem; margin-bottom:1rem; }
.card-body .link-arrow{ margin-top:auto; }

/* ---------- Punti di forza ---------- */
.features{ display:grid; grid-template-columns:repeat(4,1fr); gap:22px; }
.feature{ text-align:center; padding:1.7rem 1.2rem; border-radius:var(--radius); background:#fff; border:1px solid #e6ecf3; transition:transform .3s var(--ease), box-shadow .3s, border-color .3s; }
.feature:hover{ transform:translateY(-6px); box-shadow:var(--shadow-md); border-color:transparent; }
.feature-icon{ width:62px; height:62px; margin:0 auto 1rem; border-radius:16px; display:grid; place-items:center; background:var(--grad); box-shadow:0 8px 20px rgba(30,90,168,.3); }
.feature-icon svg{ width:30px; height:30px; fill:none; stroke:#fff; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }
.feature h3{ font-size:1.08rem; margin-bottom:.5rem; }
.feature p{ font-size:.92rem; color:var(--acciaio-medio); }

/* ---------- Lavorazioni: righe dettaglio ---------- */
.detail-row{ display:grid; grid-template-columns:1fr 1fr; gap:clamp(28px,5vw,64px); align-items:center; padding:clamp(34px,5vw,56px) 0; border-bottom:1px solid #e3e9f1; }
.detail-row:last-child{ border-bottom:none; }
.detail-row:nth-of-type(even) .detail-media{ order:2; }
.detail-media img{ border-radius:var(--radius); box-shadow:var(--shadow-md); width:100%; aspect-ratio:4/3; object-fit:cover; }
.detail-text .num{ display:none; }
.detail-text h2{ margin:0 0 .8rem; }
.detail-text p{ margin-bottom:1rem; }
.tag-list{ list-style:none; display:flex; flex-wrap:wrap; gap:.5rem; margin-top:.4rem; }
.tag-list li{ background:#e8f1fb; color:var(--blu); font-size:.82rem; font-weight:600; padding:.35rem .8rem; border-radius:50px; }
.spec{ display:flex; gap:1.4rem; flex-wrap:wrap; margin:.6rem 0 1rem; }
.spec div{ font-size:.9rem; }
.spec strong{ display:block; font-family:'Sora',sans-serif; color:var(--blu-scuro); }

/* ---------- Steps / processo ---------- */
.steps{ display:grid; grid-template-columns:repeat(4,1fr); gap:22px; counter-reset:step; }
.step{ background:#fff; border-radius:var(--radius); padding:1.8rem 1.4rem 1.5rem; box-shadow:var(--shadow-sm); position:relative; border:1px solid #e6ecf3; transition:transform .3s var(--ease), box-shadow .3s; }
.step:hover{ transform:translateY(-6px); box-shadow:var(--shadow-md); }
.step::before{ counter-increment:step; content:"0" counter(step); font-family:'Sora',sans-serif; font-weight:800; font-size:1.6rem; background:var(--grad); -webkit-background-clip:text; background-clip:text; color:transparent; }
.step h3{ font-size:1.05rem; margin:.5rem 0 .4rem; }
.step p{ font-size:.9rem; color:var(--acciaio-medio); }

/* ---------- Valori (chi siamo) ---------- */
.values{ display:grid; grid-template-columns:repeat(3,1fr); gap:22px; }
.value{ padding:1.6rem; border-radius:var(--radius); background:rgba(255,255,255,.06); border:1px solid rgba(255,255,255,.12); }
.value h3{ margin-bottom:.5rem; }

/* ---------- CTA band ---------- */
.cta-band{ background:var(--grad); color:#fff; border-radius:20px; padding:clamp(30px,5vw,54px); text-align:center; box-shadow:var(--shadow-md); }
.cta-band h2{ color:#fff; margin-bottom:.6rem; }
.cta-band p{ color:#eaf3fd; margin-bottom:1.6rem; }

/* ---------- Gallery + filtri ---------- */
.filters{ display:flex; flex-wrap:wrap; gap:.6rem; justify-content:center; margin-bottom:2rem; }
.filters button{ font-family:'Sora',sans-serif; font-weight:600; font-size:.9rem; padding:.55rem 1.2rem; border-radius:50px; border:1.5px solid #cdd9e6; background:#fff; color:var(--blu-scuro); cursor:pointer; transition:all .25s; }
.filters button:hover{ border-color:var(--azzurro); }
.filters button.active{ background:var(--grad); color:#fff; border-color:transparent; box-shadow:var(--shadow-sm); }
.gallery{ display:grid; grid-template-columns:repeat(4,1fr); grid-auto-rows:200px; gap:14px; }
.gallery-item{ border:none; padding:0; cursor:pointer; border-radius:12px; overflow:hidden; position:relative; background:#dfe6ee; }
.gallery-item.hidden{ display:none; }
.gallery-item img{ width:100%; height:100%; object-fit:cover; transition:transform .6s var(--ease); }
.gallery-item::after{ content:"+"; position:absolute; inset:0; display:grid; place-items:center; font-size:2rem; color:#fff; background:rgba(18,53,107,.35); opacity:0; transition:opacity .3s; font-family:'Sora',sans-serif; }
.gallery-item:hover img{ transform:scale(1.07); }
.gallery-item:hover::after{ opacity:1; }
.gallery-item:focus-visible{ outline:3px solid var(--azzurro); outline-offset:2px; }
/* masonry accenti (solo su griglia piena / filtro "tutte") */
.gallery.feature-layout .gallery-item:nth-child(1){ grid-column:span 2; grid-row:span 2; }
.gallery.feature-layout .gallery-item:nth-child(6){ grid-column:span 2; }
.gallery.feature-layout .gallery-item:nth-child(7){ grid-column:span 2; }

/* ---------- Contatti ---------- */
.contact-grid{ display:grid; grid-template-columns:1fr 1.1fr; gap:clamp(30px,5vw,60px); align-items:start; }
.contact-info h2{ margin:.4rem 0 1rem; }
.contact-info>p{ margin-bottom:1.6rem; }
.contact-list{ list-style:none; display:grid; gap:1rem; margin-bottom:1.6rem; }
.contact-list li{ display:flex; align-items:center; gap:.9rem; font-weight:500; }
.ci-icon{ width:42px; height:42px; border-radius:12px; background:#e8f1fb; display:grid; place-items:center; flex:0 0 auto; }
.ci-icon svg{ width:20px; height:20px; fill:none; stroke:var(--blu); stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }
.contact-list a:hover{ color:var(--blu); }
.hours{ background:#eef3f9; border-radius:var(--radius); padding:1.2rem 1.4rem; }
.hours h3{ font-size:1rem; margin-bottom:.6rem; }
.hours ul{ list-style:none; font-size:.92rem; }
.hours li{ display:flex; justify-content:space-between; padding:.25rem 0; border-bottom:1px dashed #d3ddea; }
.hours li:last-child{ border-bottom:none; }

.contact-form{ background:#fff; padding:clamp(1.4rem,3vw,2.2rem); border-radius:var(--radius); box-shadow:var(--shadow-md); border:1px solid #e6ecf3; }
.form-row{ display:grid; grid-template-columns:1fr 1fr; gap:1rem; }
.field{ margin-bottom:1.1rem; }
.field label{ display:block; font-size:.86rem; font-weight:600; color:var(--blu-scuro); margin-bottom:.4rem; }
.field input,.field select,.field textarea{ width:100%; padding:.8rem 1rem; border:1.5px solid #d7dee6; border-radius:10px; font:inherit; color:var(--antracite); background:#fbfdff; transition:border-color .25s, box-shadow .25s; }
.field input:focus,.field select:focus,.field textarea:focus{ outline:none; border-color:var(--azzurro); box-shadow:0 0 0 4px rgba(61,155,224,.18); }
.field textarea{ resize:vertical; }
.form-note{ margin-top:.9rem; font-size:.9rem; text-align:center; min-height:1.2em; }
.form-note.ok{ color:#1a8a4a; } .form-note.err{ color:var(--rosso); }
.map-embed{ margin-top:clamp(30px,5vw,50px); border-radius:var(--radius); overflow:hidden; box-shadow:var(--shadow-md); line-height:0; }
.map-embed iframe{ width:100%; height:360px; border:0; }

/* ---------- Footer ---------- */
.site-footer{ background:var(--blu-scuro); color:#cdd8e8; }
.footer-inner{ display:grid; grid-template-columns:2fr 1fr 1.2fr; gap:40px; padding:clamp(40px,6vw,70px) 0 40px; }
.footer-brand{ max-width:360px; }
.footer-logo{ height:50px; background:#fff; padding:8px 13px; border-radius:10px; border:3px solid #000; margin-bottom:1rem; }
.footer-brand p{ font-size:.92rem; color:#a7b8d2; }
.footer-nav,.footer-contact{ display:flex; flex-direction:column; gap:.6rem; }
.footer-nav h4,.footer-contact h4{ color:#fff; font-size:.95rem; margin-bottom:.3rem; text-transform:uppercase; letter-spacing:.08em; }
.footer-nav a,.footer-contact a,.footer-contact span{ color:#cdd8e8; font-weight:500; font-size:.92rem; transition:color .2s, padding-left .2s; }
.footer-nav a:hover,.footer-contact a:hover{ color:#fff; padding-left:5px; }
.footer-bottom{ border-top:1px solid rgba(255,255,255,.12); padding:1.1rem 0; font-size:.82rem; }
.footer-bottom .container{ display:flex; justify-content:space-between; gap:12px; flex-wrap:wrap; color:#8ba0be; }

/* ---------- Lightbox ---------- */
.lightbox{ position:fixed; inset:0; z-index:200; background:rgba(9,20,40,.92); display:flex; align-items:center; justify-content:center; opacity:0; visibility:hidden; transition:opacity .3s, visibility .3s; }
.lightbox.open{ opacity:1; visibility:visible; }
.lb-figure{ max-width:88vw; max-height:86vh; text-align:center; }
.lb-figure img{ max-width:88vw; max-height:78vh; border-radius:10px; box-shadow:var(--shadow-lg); margin-inline:auto; }
.lb-figure figcaption{ color:#dbe6f5; margin-top:.8rem; font-size:.95rem; }
.lb-close,.lb-nav{ position:absolute; background:rgba(255,255,255,.12); color:#fff; border:none; cursor:pointer; border-radius:50%; display:grid; place-items:center; transition:background .25s, transform .25s; }
.lb-close{ top:20px; right:24px; width:46px; height:46px; font-size:1.9rem; line-height:1; }
.lb-nav{ top:50%; transform:translateY(-50%); width:54px; height:54px; font-size:2rem; }
.lb-prev{ left:20px; } .lb-next{ right:20px; }
.lb-close:hover,.lb-nav:hover{ background:var(--blu); }
.lb-nav:hover{ transform:translateY(-50%) scale(1.08); }

/* ---------- Reveal ---------- */
.reveal{ opacity:0; transform:translateY(28px); transition:opacity .7s var(--ease), transform .7s var(--ease); }
.reveal.visible{ opacity:1; transform:none; }
.reveal.d1{ transition-delay:.08s } .reveal.d2{ transition-delay:.16s } .reveal.d3{ transition-delay:.24s }

/* ---------- Responsive ---------- */
@media (max-width:960px){
  .about-grid,.contact-grid,.detail-row{ grid-template-columns:1fr; }
  .detail-row:nth-of-type(even) .detail-media{ order:0; }
  .cards,.features,.steps,.values{ grid-template-columns:1fr 1fr; }
  .footer-inner{ grid-template-columns:1fr 1fr; }
  .gallery{ grid-template-columns:repeat(2,1fr); grid-auto-rows:180px; }
  .gallery.feature-layout .gallery-item:nth-child(1){ grid-column:span 2; grid-row:span 1; }
  .gallery.feature-layout .gallery-item:nth-child(6),
  .gallery.feature-layout .gallery-item:nth-child(7){ grid-column:span 1; }
}
@media (max-width:760px){
  .nav{ position:fixed; inset:0 0 0 auto; width:min(78vw,320px); flex-direction:column; align-items:flex-start;
    justify-content:center; gap:1.5rem; padding:2rem; background:#fff; box-shadow:var(--shadow-lg);
    transform:translateX(100%); transition:transform .35s var(--ease); }
  .nav.open{ transform:none; }
  .nav a{ color:var(--antracite); font-size:1.1rem; }
  .nav a.active{ color:var(--blu); }
  .nav .btn-nav{ color:#fff; }
  .nav-toggle{ display:flex; z-index:110; }
  .form-row{ grid-template-columns:1fr; }
}
@media (max-width:560px){
  .cards,.features,.steps,.values,.stats{ grid-template-columns:1fr; }
  .stats{ grid-template-columns:1fr 1fr; }
  .footer-inner{ grid-template-columns:1fr; }
  .footer-bottom .container{ flex-direction:column; }
}

@media (prefers-reduced-motion:reduce){
  *{ animation:none !important; scroll-behavior:auto; }
  .reveal{ opacity:1; transform:none; transition:none; }
}

/* ---------- Pagine legali (privacy / cookie) ---------- */
.legal{ max-width:820px; }
.legal h2{ font-size:1.3rem; margin:2rem 0 .6rem; }
.legal p{ margin-bottom:1rem; }
.legal ul{ margin:0 0 1rem 1.3rem; }
.legal li{ margin-bottom:.4rem; }
.legal a{ color:var(--blu); font-weight:600; }
.legal a:hover{ text-decoration:underline; }
.legal .muted{ color:var(--acciaio-medio); font-size:.9rem; }

/* link legali nel footer */
.footer-legal{ display:flex; gap:.6rem; flex-wrap:wrap; }
.footer-legal a:hover{ color:#fff; }

/* banner cookie (consenso tecnico) */
.cookie-banner{ position:fixed; left:16px; right:16px; bottom:16px; z-index:300; max-width:780px; margin-inline:auto; background:#fff; border:1px solid #e2e8f0; border-radius:14px; box-shadow:var(--shadow-lg); padding:1.1rem 1.3rem; display:flex; align-items:center; gap:1.3rem; flex-wrap:wrap; animation:cookieUp .5s var(--ease); }
.cookie-banner p{ flex:1 1 300px; font-size:.9rem; line-height:1.5; margin:0; color:#40474f; }
.cookie-banner a{ color:var(--blu); font-weight:600; }
.cookie-banner a:hover{ text-decoration:underline; }
.cookie-actions{ display:flex; gap:.6rem; flex:0 0 auto; }
.cookie-actions .btn{ padding:.6rem 1.3rem; font-size:.9rem; }
.cookie-banner.hide{ opacity:0; transform:translateY(20px); transition:opacity .4s, transform .4s; }
@keyframes cookieUp{ from{opacity:0;transform:translateY(20px)} to{opacity:1;transform:none} }
@media (max-width:560px){ .cookie-banner{ gap:.9rem; } .cookie-actions{ width:100%; } .cookie-actions .btn{ flex:1; } }

/* box "clicca per caricare la mappa" (consenso) */
.map-consent{ background:#eef3f9; border:1px dashed #b9cbe2; border-radius:var(--radius); padding:2.4rem 1.4rem; text-align:center; display:flex; flex-direction:column; align-items:center; gap:1rem; line-height:1.6; }
.map-consent p{ max-width:560px; font-size:.95rem; color:#40474f; margin:0; }
.map-consent .map-ext{ font-size:.88rem; color:var(--blu); font-weight:600; }
.map-consent .map-ext:hover{ text-decoration:underline; }
