/* =====================================================================
   Technic - stile allineato alla landing Smart Bench (/landing/panchine-smart/)
   Caricato dopo custom.css solo dalle pagine italiane (header.php).
   Prefisso t- per le classi generiche, per non scontrarsi con il template Porto
   (.btn, .section, .wrap esistono gia' nel tema).
   ===================================================================== */

:root{
  --red:#ED1C24; --red-dark:#C41219;
  --navy:#0F3964; --navy-600:#17508D; --navy-800:#0A2748; --navy-900:#071B33;
  --paper:#F4F6F9; --line:#DDE3EC; --ink:#12233A; --muted:#5C6B80; --muted-dark:#A9BBD1;
  --white:#fff;
  --font:"Figtree","Segoe UI",-apple-system,BlinkMacSystemFont,Roboto,Helvetica,Arial,sans-serif;
  --fs-display:clamp(2.05rem,5.6vw,3.35rem);
  --fs-h2:clamp(1.65rem,4.6vw,2.85rem);
  --fs-h3:clamp(1.12rem,2.4vw,1.4rem);
  --fs-lead:clamp(1rem,2.5vw,1.19rem);
  --fs-sm:.875rem; --fs-xs:.76rem;
  --sp-section:clamp(56px,8vw,96px);
  --gutter:clamp(18px,5vw,40px);
  --maxw:1240px;
  --r:4px; --r-lg:6px;
  --shadow:0 2px 4px rgba(7,27,51,.05),0 12px 32px rgba(7,27,51,.09);
  --shadow-lg:0 4px 8px rgba(7,27,51,.07),0 26px 64px rgba(7,27,51,.20);
  --hdr-h:68px;
}
@media (min-width:1000px){ :root{ --hdr-h:80px; } }

/* ---------- Base: font e colori della landing al posto di Montserrat/Porto ---------- */
html{ scroll-behavior:smooth; scroll-padding-top:calc(var(--hdr-h) + 12px); }
@media (prefers-reduced-motion: reduce){ html{ scroll-behavior:auto; } }
body{
  font-family:var(--font); font-size:1rem; line-height:1.62; color:var(--ink);
  background:#fff; -webkit-font-smoothing:antialiased; overflow-x:hidden;
}
body p, body li, body .lead{ font-family:var(--font); }
body .lead{ font-size:var(--fs-lead); line-height:1.65; color:var(--muted); letter-spacing:0; }
body h1,body h2,body h3,body h4,body h5,body h6,
body .h1,body .h2,body .h3,body .h4{
  font-family:var(--font); color:var(--ink); line-height:1.15; font-weight:500;
  letter-spacing:-.02em; text-transform:none;
}
body h3,body h4,body h5{ font-weight:600; letter-spacing:-.01em; }
body a{ color:var(--navy); }
body a:hover{ color:var(--red); }
:where(a,button,input,select,textarea,summary):focus-visible{ outline:3px solid var(--red); outline-offset:2px; border-radius:2px; }
.body{ overflow-x:clip; }
/* il tema Porto aggiunge padding in cima per il suo header: lo gestiamo noi */
.body > .main{ padding-top:0; }

/* ---------- Layout ---------- */
.t-wrap{ width:100%; max-width:var(--maxw); margin-inline:auto; padding-inline:var(--gutter); }
.t-section{ padding-block:var(--sp-section); }
.t-section--paper{ background:var(--paper); }
.t-section--dark{ background:#0A0A0A; color:#fff; }
.t-section--dark h2,.t-section--dark h3{ color:#fff; }

.t-eyebrow{
  display:inline-flex; align-items:center; gap:9px;
  font-size:var(--fs-xs) !important; font-weight:700; letter-spacing:.15em; text-transform:uppercase;
  color:var(--red); margin:0 0 16px; line-height:1.4;
}
.t-eyebrow::before{ content:""; width:22px; height:2px; background:var(--red); flex:none; }
.t-section--dark .t-eyebrow{ color:var(--red); }
.t-section--dark .t-eyebrow::before{ background:var(--red); }

.t-head{ max-width:760px; margin-bottom:clamp(32px,5vw,56px); }
.t-head h1{ font-size:var(--fs-display); margin:0; }
.t-head h2{ font-size:var(--fs-h2); margin:0; }
.t-head p:not(.t-eyebrow){ margin:16px 0 0; font-size:var(--fs-lead); color:var(--muted); line-height:1.65; }
.t-section--dark .t-head p:not(.t-eyebrow){ color:rgba(255,255,255,.7); }
.t-head--center{ margin-inline:auto; text-align:center; }
.t-head--center .t-eyebrow{ justify-content:center; }
.t-head--row{ max-width:none; display:flex; flex-wrap:wrap; gap:20px 40px; align-items:flex-end; justify-content:space-between; }
.t-head--row > div{ max-width:760px; }

/* ---------- Pulsanti (pillola, come la landing) ---------- */
.tbtn{
  display:inline-flex; align-items:center; justify-content:center; gap:10px;
  min-height:56px; padding:15px 30px;
  font-family:var(--font); font-size:1rem; font-weight:700; letter-spacing:.01em; line-height:1.2;
  text-decoration:none; text-align:center; text-transform:none;
  border:2px solid transparent; border-radius:999px; cursor:pointer;
  transition:background-color .18s ease, border-color .18s ease, color .18s ease, transform .18s ease;
}
.tbtn:hover{ text-decoration:none; }
.tbtn:active{ transform:translateY(1px); }
.tbtn--primary,a.tbtn--primary{ background:var(--red); color:#fff; border-color:var(--red); }
.tbtn--primary:hover,a.tbtn--primary:hover{ background:var(--red-dark); border-color:var(--red-dark); color:#fff; }
.tbtn--ghost,a.tbtn--ghost{ background:transparent; color:#fff; border-color:rgba(255,255,255,.5); }
.tbtn--ghost:hover,a.tbtn--ghost:hover{ background:rgba(255,255,255,.12); border-color:#fff; color:#fff; }
.tbtn--outline,a.tbtn--outline{ background:transparent; color:var(--navy); border-color:var(--navy); }
.tbtn--outline:hover,a.tbtn--outline:hover{ background:#0A0A0A; border-color:#0A0A0A; color:#fff; }
.tbtn--sm{ min-height:46px; padding:11px 20px; font-size:var(--fs-sm); }
.tbtn--block{ width:100%; }
.tbtn svg{ width:18px; height:18px; flex:none; }
.t-actions{ display:flex; flex-wrap:wrap; gap:12px; margin-top:28px; }

/* pulsanti del tema rimasti (modali): stessa forma e colori */
body .btn-primary{
  background:var(--red); border-color:var(--red); color:#fff;
  border-radius:999px; font-family:var(--font); font-weight:700; padding:11px 24px; text-transform:none;
}
body .btn-primary:hover,body .btn-primary:focus{ background:var(--red-dark); border-color:var(--red-dark); color:#fff; }

/* =====================  HEADER  ===================== */
.hdr{
  position:fixed; top:0; left:0; right:0; z-index:1030;
  background:transparent; border-bottom:1px solid transparent;
  transition:background .25s ease, box-shadow .25s ease, border-color .25s ease;
  font-family:var(--font);
}
/* in home l'header sta sopra le foto: velatura in alto per leggere le voci */
.hdr:not(.is-stuck)::before{
  content:""; position:absolute; inset:0 0 -40px; z-index:-1; pointer-events:none;
  background:linear-gradient(180deg,rgba(0,0,0,.55) 0%,rgba(0,0,0,0) 100%);
}
.hdr.is-stuck{ background:#fff; border-bottom-color:var(--line); box-shadow:0 6px 22px rgba(7,27,51,.10); }
.hdr__in{ display:flex; align-items:center; gap:16px; min-height:var(--hdr-h); }
.hdr__logo{ display:block; flex:none; margin-right:auto; }
.hdr__logo img{ width:clamp(132px,20vw,178px); height:auto; display:block; }
.hdr__logo .logo-dark{ display:none; }
.hdr.is-stuck .logo-dark{ display:block; }
.hdr.is-stuck .logo-light{ display:none; }

.hdr__nav{ display:none; }
.hdr__nav > a,.hdr__ddbtn{
  font-family:var(--font); font-size:var(--fs-sm); font-weight:600; color:#fff; text-decoration:none;
  padding:6px 0; border:0; border-bottom:2px solid transparent; background:none; cursor:pointer;
  display:inline-flex; align-items:center; gap:6px; line-height:1.4;
  transition:color .25s ease, border-color .25s ease;
}
.hdr__nav > a:hover,.hdr__ddbtn:hover{ color:#fff; border-bottom-color:var(--red); text-decoration:none; }
.hdr.is-stuck .hdr__nav > a,.hdr.is-stuck .hdr__ddbtn{ color:var(--ink); }
.hdr.is-stuck .hdr__nav > a:hover,.hdr.is-stuck .hdr__ddbtn:hover{ color:var(--navy); }
.hdr__nav > a.is-current{ border-bottom-color:var(--red); }
.hdr__ddbtn svg,.hdr__langbtn svg{ width:10px; height:10px; transition:transform .2s ease; }
.hdr__dd.is-open .hdr__ddbtn svg,.hdr__lang.is-open .hdr__langbtn svg{ transform:rotate(180deg); }
.hdr__nav > .hdr__navcta{ display:none; }

/* tendina Prodotti */
.hdr__dd{ position:relative; }
.hdr__menu{
  display:none; position:absolute; top:calc(100% + 14px); left:-22px; z-index:5;
  min-width:290px; margin:0; padding:10px; list-style:none;
  background:#fff; border:1px solid var(--line); border-radius:12px; box-shadow:var(--shadow-lg);
}
.hdr__menu::before{ content:""; position:absolute; left:0; right:0; top:-16px; height:16px; } /* ponte per l'hover */
.hdr__dd.is-open .hdr__menu{ display:block; }
@media (hover:hover) and (min-width:1000px){ .hdr__dd:hover .hdr__menu{ display:block; } }
.hdr__menu li{ margin:0; }
.hdr__menu a{
  display:flex; align-items:center; justify-content:space-between; gap:12px;
  padding:9px 12px; border-radius:8px;
  font-size:var(--fs-sm); font-weight:600; color:var(--ink); text-decoration:none;
}
.hdr__menu a:hover{ background:var(--paper); color:var(--red); text-decoration:none; }
.hdr__menu a.is-new::after{
  content:"Nuovo"; font-size:.66rem; font-weight:700; letter-spacing:.08em; text-transform:uppercase;
  color:#fff; background:var(--red); padding:3px 8px; border-radius:999px;
}
.hdr__menu .hdr__menu-all{ border-top:1px solid var(--line); margin-top:6px; padding-top:6px; }
.hdr__menu .hdr__menu-all a{ color:var(--navy); }

/* lingue */
.hdr__lang{ position:relative; flex:none; }
.hdr__langbtn{
  display:inline-flex; align-items:center; gap:6px; padding:8px 4px;
  font-family:var(--font); font-size:var(--fs-sm); font-weight:700; letter-spacing:.06em;
  color:#fff; background:none; border:0; cursor:pointer;
}
.hdr.is-stuck .hdr__langbtn{ color:var(--ink); }
.hdr__langlist{
  display:none; position:absolute; right:0; top:calc(100% + 10px); z-index:5;
  min-width:160px; margin:0; padding:8px; list-style:none;
  background:#fff; border:1px solid var(--line); border-radius:12px; box-shadow:var(--shadow-lg);
}
.hdr__lang.is-open .hdr__langlist{ display:block; }
.hdr__langlist a{ display:block; padding:8px 12px; border-radius:8px; font-size:var(--fs-sm); font-weight:600; color:var(--ink); text-decoration:none; }
.hdr__langlist a:hover{ background:var(--paper); color:var(--red); }
.hdr__langlist a[aria-current]{ color:var(--red); }

.hdr__cta{ flex:none; }
.hdr__burger{
  flex:none; width:44px; height:44px; padding:0; margin-right:-8px;
  display:inline-flex; align-items:center; justify-content:center;
  background:none; border:0; cursor:pointer; color:#fff;
}
.hdr.is-stuck .hdr__burger{ color:var(--ink); }
.hdr__burger span,.hdr__burger span::before,.hdr__burger span::after{
  display:block; width:22px; height:2px; background:currentColor; border-radius:2px; position:relative;
  transition:transform .2s ease, background-color .2s ease;
}
.hdr__burger span::before,.hdr__burger span::after{ content:""; position:absolute; left:0; }
.hdr__burger span::before{ top:-7px; }
.hdr__burger span::after{ top:7px; }
.hdr.is-open .hdr__burger span{ background:transparent; }
.hdr.is-open .hdr__burger span::before{ transform:translateY(7px) rotate(45deg); }
.hdr.is-open .hdr__burger span::after{ transform:translateY(-7px) rotate(-45deg); }

/* mobile: menu a pannello sotto l'header */
@media (max-width:999.98px){
  .hdr.is-open{ background:#fff; box-shadow:0 6px 22px rgba(7,27,51,.10); }
  .hdr.is-open .logo-dark{ display:block; }
  .hdr.is-open .logo-light{ display:none; }
  .hdr.is-open .hdr__burger,.hdr.is-open .hdr__langbtn{ color:var(--ink); }
  .hdr.is-open::before{ display:none; }
  .hdr__nav{
    position:absolute; top:100%; left:0; right:0;
    max-height:calc(100vh - var(--hdr-h)); overflow-y:auto;
    flex-direction:column; align-items:stretch; gap:0;
    padding:8px var(--gutter) 24px; background:#fff; border-top:1px solid var(--line);
    box-shadow:0 18px 30px rgba(7,27,51,.12);
  }
  .hdr.is-open .hdr__nav{ display:flex; }
  .hdr__nav > a,.hdr__ddbtn{
    color:var(--ink) !important; font-size:1.05rem; padding:14px 0; width:100%;
    justify-content:space-between; border-bottom:1px solid var(--line) !important;
  }
  .hdr__menu{ position:static; box-shadow:none; border:0; padding:4px 0 10px; min-width:0; border-radius:0; }
  .hdr__menu::before{ display:none; }
  .hdr__menu a{ padding:10px 4px; font-size:1rem; }
  .hdr__nav > .hdr__navcta{ display:flex; margin-top:20px; color:#fff !important; border-bottom:2px solid var(--red) !important; justify-content:center; }
  .hdr__cta{ display:none; }
}
@media (min-width:560px) and (max-width:999.98px){ .hdr__cta{ display:block; } }
@media (min-width:1000px){
  .hdr__logo{ margin-right:0; }
  .hdr__nav{ display:flex; align-items:center; gap:30px; margin-left:auto; }
  .hdr__lang{ margin-left:14px; }
  .hdr__cta{ margin-left:8px; }
  .hdr__burger{ display:none; }
}

/* =====================  HOME  ===================== */
/* Case history: titoli e testi in Figtree */
.ch-story,.ch-story-title,.ch-story-claim,.ch-story-lede,.ch-story-meta,.ch-story-numbers,.ch-story-link{ font-family:var(--font) !important; }
.ch-story-title{ letter-spacing:-.02em; }
.ch-story-link{ border-radius:999px; }

/* introduzione */
.t-intro h1{ font-size:var(--fs-display); max-width:26ch; margin-inline:auto; }
.t-intro h1 span{ color:var(--red); display:block; }
.t-intro .t-head{ max-width:900px; }
.t-feats{ display:grid; gap:20px; }
@media (min-width:820px){ .t-feats{ grid-template-columns:repeat(3,1fr); gap:24px; } }
.t-feat{
  background:#fff; border:1px solid var(--line); border-radius:16px; padding:32px 28px;
  transition:box-shadow .2s ease, transform .2s ease;
}
.t-feat:hover{ box-shadow:var(--shadow); transform:translateY(-2px); }
.t-feat__icon{
  width:52px; height:52px; border-radius:14px; display:flex; align-items:center; justify-content:center;
  background:rgba(237,28,36,.08); color:var(--red); font-size:1.3rem; margin-bottom:20px;
}
.t-feat h3{ font-size:var(--fs-h3); margin:0 0 10px; }
.t-feat p{ margin:0; color:var(--muted); font-size:.98rem; line-height:1.65; }

/* carosello prodotti */
.t-carousel{ margin-top:8px; }
.t-carousel .owl-stage{ display:flex; }
.t-carousel .owl-item{ display:flex; }
.t-carousel .owl-item > div{ width:100%; display:flex; }
.t-carousel .owl-item > div > .card{ width:100%; }
.t-carousel.owl-carousel .owl-nav{ position:static !important; top:auto !important; left:auto; width:auto !important; transform:none !important; display:flex; gap:10px; justify-content:flex-end; margin-top:24px; }
.t-carousel.owl-carousel .owl-nav.disabled{ display:none; }
.t-carousel.owl-carousel .owl-nav button.owl-prev,
.t-carousel.owl-carousel .owl-nav button.owl-next{
  position:static; margin:0; width:48px; height:48px; border-radius:999px !important;
  background:#fff !important; border:1.5px solid var(--line) !important; color:var(--ink) !important;
  display:inline-flex; align-items:center; justify-content:center; transform:none;
  transition:background-color .18s ease, border-color .18s ease, color .18s ease;
}
.t-carousel.owl-carousel .owl-nav button:hover{ background:#0A0A0A !important; border-color:#0A0A0A !important; color:#fff !important; }
.t-carousel.owl-carousel .owl-nav button.disabled{ opacity:.35; pointer-events:none; }
.t-carousel.owl-carousel .owl-nav button::before{ font-size:14px; }

.t-card{
  display:flex; flex-direction:column; width:100%; height:100%;
  background:#fff; border:1px solid var(--line); border-radius:16px; overflow:hidden;
  font-family:var(--font); transition:box-shadow .2s ease, transform .2s ease;
}
.t-card:hover{ box-shadow:var(--shadow); transform:translateY(-2px); }
.t-card__media{ display:block; aspect-ratio:4/3; overflow:hidden; background:var(--paper); }
.t-card__media img{ width:100%; height:100%; object-fit:cover; transition:transform .5s ease; }
.t-card:hover .t-card__media img{ transform:scale(1.04); }
.t-card__body{ display:flex; flex-direction:column; flex:1; padding:22px 24px 24px; }
.t-card__title{ font-size:var(--fs-h3) !important; margin:0 0 8px; color:var(--ink); }
.t-card__title a{ color:inherit; text-decoration:none; }
.t-card__text{ margin:0 0 18px; color:var(--muted); font-size:.95rem; line-height:1.6; }
.t-card__link{
  margin-top:auto; display:inline-flex; align-items:center; gap:8px; align-self:flex-start;
  font-size:var(--fs-sm); font-weight:700; color:var(--navy); text-decoration:none;
  border-bottom:2px solid transparent; padding-bottom:2px;
}
.t-card__link:hover{ color:var(--red); border-bottom-color:var(--red); text-decoration:none; }
.t-card__link i{ transition:transform .2s ease; }
.t-card__link:hover i{ transform:translateX(3px); }

/* box Smart Bench nel carosello: stesso raggio delle altre card */
.tc-box{ border-radius:16px !important; font-family:var(--font) !important; height:100%; }
.tc-box-title,.tc-box-claim,.tc-box-eyebrow,.tc-box-points,.tc-box-cta{ font-family:var(--font) !important; }
.tc-box-cta{ border-radius:999px !important; }

/* catalogo sfogliabile */
.t-catalog{ position:relative; width:100%; aspect-ratio:16/9; max-height:86vh; border-radius:16px; overflow:hidden; background:#fff; box-shadow:var(--shadow); }
.t-catalog iframe{ position:absolute; inset:0; width:100%; height:100%; border:0; }
@media (max-width:759px){ .t-catalog{ aspect-ratio:3/4; } }

/* fascia blu "soluzione integrata" */
.t-cta{ display:grid; gap:28px; align-items:center; }
@media (min-width:900px){ .t-cta{ grid-template-columns:1fr auto; gap:56px; } }
.t-cta .t-head{ margin:0; }
.t-cta .t-actions{ margin:0; }

/* immagine con punti interattivi */
.t-hotspot{ padding-bottom:0; }
#hotspotImg{ border-radius:0; }
#hotspotImg .tooltip{ font-family:var(--font); }
#hotspotImg .tooltip h4{ font-size:.85rem; letter-spacing:.06em; }

/* =====================  PAGINE CATEGORIA / PRODOTTO  ===================== */
.body > .main.t-page{ padding-top:var(--hdr-h); }
.t-hero{ padding-block:clamp(40px,6vw,72px) var(--sp-section); background:var(--paper); }
.t-crumbs{ display:flex; flex-wrap:wrap; gap:6px 10px; margin:0 0 28px; padding:0; list-style:none; font-size:var(--fs-sm); color:var(--muted); }
.t-crumbs li{ margin:0; display:inline-flex; align-items:center; gap:10px; }
.t-crumbs li + li::before{ content:"/"; color:#B4C0CF; }
.t-crumbs a{ color:var(--muted); text-decoration:none; font-weight:600; }
.t-crumbs a:hover{ color:var(--red); }
.t-crumbs [aria-current]{ color:var(--ink); font-weight:600; }
.t-hero__grid{ display:grid; gap:clamp(28px,5vw,64px); align-items:center; }
@media (min-width:900px){ .t-hero__grid{ grid-template-columns:1.05fr 1fr; } }
.t-hero h1{ font-size:var(--fs-display); margin:0; }
.t-hero .lead{ margin:20px 0 0; }
.t-hero .lead strong,.t-hero .lead b{ color:var(--ink); font-weight:700; }
.t-hero__media{ border-radius:16px; overflow:hidden; box-shadow:var(--shadow-lg); background:#fff; }
.t-hero__media img{ display:block; width:100%; height:auto; }
.t-hero__media a{ display:block; }
.t-dl{ display:inline-flex; align-items:center; gap:8px; }

/* =====================  CONTATTI + FORM  ===================== */
.contact-sec{ background:#fff; }
.contact-grid{ display:grid; gap:clamp(28px,5vw,56px); }
@media (min-width:1000px){ .contact-grid{ grid-template-columns:1fr 520px; align-items:start; } }
.contact-info h2{ font-size:var(--fs-h2); max-width:16ch; margin:0; }
.contact-lead{ margin:16px 0 0; font-size:var(--fs-lead); color:var(--muted); max-width:46ch; line-height:1.65; }
.contact-phone{
  display:inline-block; margin-top:22px;
  font-size:clamp(1.7rem,4.2vw,2.75rem); font-weight:700; letter-spacing:-.02em; line-height:1.15;
  color:var(--ink) !important; text-decoration:none;
}
.contact-phone:hover{ color:var(--red) !important; text-decoration:none; }
.contact-rows{ margin:28px 0 0; padding:0; list-style:none; display:grid; gap:18px; }
.contact-rows li{ display:grid; grid-template-columns:20px 92px 1fr; gap:14px; align-items:start; font-size:1rem; line-height:1.55; margin:0; }
.contact-rows svg{ width:20px; height:20px; color:var(--red); margin-top:3px; }
.contact-label{ font-size:var(--fs-xs); font-weight:700; letter-spacing:.14em; text-transform:uppercase; color:var(--muted); margin-top:4px; }
.contact-rows a{ color:var(--ink); font-weight:700; text-decoration:none; }
.contact-rows a:hover{ color:var(--red); }
@media (max-width:479px){ .contact-rows li{ grid-template-columns:20px 1fr; } .contact-label{ grid-column:2; margin-top:0; } .contact-rows li > :last-child{ grid-column:2; } }

.form-card{
  background:#fff; color:var(--ink); border:0; border-radius:24px;
  box-shadow:0 8px 40px rgba(0,0,0,.08); padding:clamp(24px,4vw,40px);
}
.form-card__title{ color:var(--ink) !important; font-size:1.6rem !important; font-weight:700 !important; letter-spacing:-.02em; margin:0 0 22px; }
.form-grid{ display:grid; gap:14px; }
@media (min-width:560px){ .form-grid--2{ grid-template-columns:1fr 1fr; } }
.field{ display:flex; flex-direction:column; gap:6px; min-width:0; }
.field--full{ grid-column:1 / -1; }
.field label{ font-size:var(--fs-sm); font-weight:700; margin:0; color:var(--ink); }
.field .req{ color:var(--red); }
.field input,.field textarea{
  font-family:var(--font); font-size:1rem; color:var(--ink);
  width:100%; min-height:52px; padding:13px 14px; margin:0;
  background:#fff; border:1.5px solid var(--line); border-radius:8px; box-shadow:none;
  transition:border-color .16s ease, box-shadow .16s ease;
}
.field input::placeholder,.field textarea::placeholder{ color:#9AA7B8; }
.field textarea{ min-height:112px; resize:vertical; }
.field input:focus,.field textarea:focus{ outline:none; border-color:var(--navy); box-shadow:0 0 0 3px rgba(15,57,100,.16); }
.field .is-invalid{ border-color:var(--red) !important; background-image:none; }
.consent{ display:flex; gap:11px; align-items:flex-start; grid-column:1 / -1; margin-top:4px; }
.consent input{ width:20px; height:20px; margin:2px 0 0; flex:none; accent-color:var(--red); }
.consent label{ font-size:var(--fs-xs); line-height:1.55; color:var(--muted); font-weight:500; margin:0; transition:color .2s; }
.consent label.text-danger{ color:var(--red) !important; }
.consent a{ color:var(--navy); font-weight:600; }
.form-send{ grid-column:1 / -1; margin-top:6px; }
.form-foot{ grid-column:1 / -1; margin:2px 0 0; font-size:var(--fs-xs); color:var(--muted); line-height:1.6; }
.form-msg{ grid-column:1 / -1; padding:16px 18px; border-radius:var(--r-lg); font-size:var(--fs-sm); line-height:1.55; margin:0; }
.form-msg strong{ display:block; font-size:1rem; margin-bottom:4px; }
.form-msg--ok{ border:1.5px solid var(--navy); border-left:5px solid var(--red); background:#F3F7FC; color:var(--ink); }
.form-msg--ok strong{ color:var(--navy); }
.form-msg--err{ border:1.5px solid var(--red); background:#FFF4F4; color:var(--red-dark); }

/* =====================  FOOTER  ===================== */
.ftr{
  position:relative; isolation:isolate; overflow:hidden;
  background:#000; color:rgba(255,255,255,.82); font-family:var(--font);
  padding-block:var(--sp-section) 32px;
}
.ftr__bg{ position:absolute; inset:0; z-index:0; width:100%; height:100%; object-fit:cover; object-position:center 40%; }
.ftr::before{
  content:""; position:absolute; inset:0; z-index:1;
  background:linear-gradient(180deg,rgba(0,0,0,.70) 0%,rgba(0,0,0,.80) 60%,rgba(0,0,0,.90) 100%);
}
.ftr .t-wrap{ position:relative; z-index:2; }
.ftr__in{ display:grid; gap:36px; }
@media (min-width:820px){ .ftr__in{ grid-template-columns:1.5fr 1fr 1.25fr; gap:48px; } }
.ftr__logo{ display:inline-block; background:#fff; padding:10px 14px; border-radius:var(--r-lg); margin-bottom:22px; }
.ftr__logo img{ display:block; width:168px; height:auto; }
.ftr p{ color:rgba(255,255,255,.82); }
.ftr__brand p{ font-size:var(--fs-sm); line-height:1.7; max-width:38ch; margin:0; }
.ftr__brand p + p{ margin-top:12px; }
.ftr .t-eyebrow{ margin-bottom:18px; }
.ftr ul{ margin:0; padding:0; list-style:none; }
.ftr__links li{ margin:0; }
.ftr__links li + li{ margin-top:10px; }
.ftr__links a{ color:#fff; text-decoration:none; font-size:1rem; line-height:1.4; transition:color .2s; }
.ftr__links a:hover{ color:var(--red); }
.ftr__rows{ display:grid; gap:16px; }
.ftr__rows li{ display:grid; grid-template-columns:20px 1fr; gap:14px; align-items:start; font-size:var(--fs-sm); line-height:1.55; margin:0; }
.ftr__rows svg{ width:20px; height:20px; color:var(--red); margin-top:2px; }
.ftr__rows a{ color:#fff; text-decoration:none; font-weight:700; transition:color .2s; }
.ftr__rows a:hover{ color:var(--red); }
.ftr__tel{ font-size:1.05rem; }
.ftr__social{ display:flex; gap:10px; margin-top:22px; }
.ftr__social a{
  width:40px; height:40px; border-radius:999px; display:inline-flex; align-items:center; justify-content:center;
  border:1px solid rgba(255,255,255,.35); color:#fff; text-decoration:none; transition:background-color .2s, border-color .2s;
}
.ftr__social a:hover{ background:var(--red); border-color:var(--red); color:#fff; }
.ftr__legal{
  margin-top:40px; padding-top:22px; border-top:1px solid rgba(255,255,255,.18);
  display:flex; flex-wrap:wrap; gap:10px 28px; justify-content:space-between; align-items:center;
  font-size:var(--fs-xs); line-height:1.7; color:rgba(255,255,255,.6);
}
.ftr__legal p{ margin:0; color:rgba(255,255,255,.6); font-size:var(--fs-xs); }
.ftr__legal a{ color:rgba(255,255,255,.85); text-decoration:none; }
.ftr__legal a:hover{ color:var(--red); }
.ftr__legal-links{ display:flex; flex-wrap:wrap; gap:6px 18px; }

/* =====================  PULSANTE FISSO "Contattaci"  ===================== */
.form-fab{
  position:fixed; right:28px; bottom:28px; z-index:1020;
  display:none; align-items:center; gap:10px;
  padding:14px 22px 14px 18px;
  background:var(--red); color:#fff !important; border-radius:999px; text-decoration:none;
  font-family:var(--font); font-size:var(--fs-sm); font-weight:700; line-height:1;
  box-shadow:0 10px 30px rgba(237,28,36,.35);
  transition:transform .2s ease, box-shadow .2s ease, background-color .2s ease, opacity .25s ease;
}
.form-fab:hover{ background:var(--red-dark); transform:translateY(-2px); box-shadow:0 14px 34px rgba(237,28,36,.45); text-decoration:none; }
.form-fab svg{ width:20px; height:20px; flex:none; }
.form-fab.is-hidden{ opacity:0; pointer-events:none; transform:translateY(12px); }
@media (min-width:1000px){ .form-fab{ display:flex; } }
@media (prefers-reduced-motion: reduce){ .form-fab,.hdr,.t-card,.t-feat{ transition:none; } }

/* modali download: stesso font */
.modal{ font-family:var(--font); }
.modal-content{ border-radius:16px; border:0; box-shadow:var(--shadow-lg); }
