/*
 Theme Name:   Woodmart Child
 Description:  Woodmart Child Theme
 Author:       XTemos
 Author URI:   http://xtemos.com
 Template:     woodmart
 Version:      1.0.0
 Text Domain:  woodmart
*/

/* ══════════════════════════════════════════════════════════════════════
   CASELLA — custom header/footer (ported from template-casella)
   ══════════════════════════════════════════════════════════════════════ */

/* ── FONTS ─────────────────────────────────────────── */
@font-face { font-family:'Suisse Intl'; src:url("fonts/suisse-intl-400.woff2") format('woff2'); font-weight:400; font-style:normal; font-display:swap; }
@font-face { font-family:'Suisse Intl'; src:url("fonts/suisse-intl-400-italic.woff2") format('woff2'); font-weight:400; font-style:italic; font-display:swap; }
@font-face { font-family:'Suisse Intl'; src:url("fonts/suisse-intl-350.woff2") format('woff2'); font-weight:350; font-style:normal; font-display:swap; }
@font-face { font-family:'Suisse Intl'; src:url("fonts/suisse-intl-500.woff2") format('woff2'); font-weight:500; font-style:normal; font-display:swap; }
@font-face { font-family:'Suisse Intl'; src:url("fonts/suisse-intl-600.woff2") format('woff2'); font-weight:600; font-style:normal; font-display:swap; }
@font-face { font-family:'Suisse Intl'; src:url("fonts/suisse-intl-700.woff2") format('woff2'); font-weight:700; font-style:normal; font-display:swap; }
@font-face { font-family:'Suisse Intl'; src:url("fonts/suisse-intl-700-italic.woff2") format('woff2'); font-weight:700; font-style:italic; font-display:swap; }
@font-face { font-family:'Suisse Intl'; src:url("fonts/suisse-intl-900.woff2") format('woff2'); font-weight:900; font-style:normal; font-display:swap; }
@font-face { font-family:'Suisse Intl'; src:url("fonts/suisse-intl-900-italic.woff2") format('woff2'); font-weight:900; font-style:italic; font-display:swap; }

/* ── CSS VARS ──────────────────────────────────────── */
:root {
  --red:#cf2e2e;
  --red-d:#a82424;
  --red-l:rgba(207,46,46,0.12);
  --black:#0c0c0c;
  --white:#faf9f7;
  --grey:#f0eeec;
  --mid:#c8c4be;
  --muted:#79746e;
  --ease:cubic-bezier(.25,.1,.25,1);
}

/* ── HEADER ────────────────────────────────────────── */
.site-header {
  font-family:'Suisse Intl', sans-serif;
  position:fixed;
  top:0; left:0; right:0;
  z-index:900;
}

/* .site-header is fixed (header-bar ~30px + header-nav 112px = ~142px), so page
   content needs the same amount of top padding or it renders underneath it.
   Zeroed out on mobile below, where the header goes back to static flow. */
main { padding-top:142px; }

.header-bar {
  background:var(--black);
  /* clamp: cresce col viewport come il vecchio 60px fisso, ma smette di
     allargarsi oltre 180px così su monitor molto larghi il contenuto non
     resta incollato ai bordi della finestra. Il fondo nero, invece, resta
     sempre a piena larghezza: solo il padding (cioè lo spazio interno) cresce. */
  padding:7px clamp(24px, 6vw, 180px);
  display:flex;
  justify-content:space-between;
  align-items:center;
}

.hb-left, .hb-right { display:flex; gap:28px; align-items:center; }

.hb-item {
  font-size:11px;
  font-weight:500;
  letter-spacing:.06em;
  color:rgba(255,255,255,.5);
  text-decoration:none;
  display:flex;
  align-items:center;
  gap:7px;
  transition:color .2s;
}
.hb-item:hover { color:var(--red); }
.hb-item .hb-icon { opacity:.6; font-size:12px; }

.hb-shop {
  background:var(--red);
  color:white !important;
  padding:5px 14px;
  font-size:10px;
  font-weight:700;
  letter-spacing:.12em;
  text-transform:uppercase;
}
.hb-shop:hover { background:var(--red-d) !important; }

.header-nav {
  background:rgba(250,249,247,.97);
  backdrop-filter:blur(16px);
  -webkit-backdrop-filter:blur(16px);
  padding:0 clamp(24px, 6vw, 180px);
  display:flex;
  align-items:center;
  justify-content:space-between;
  height:112px;
  border-bottom:1px solid rgba(0,0,0,.07);
  transition:box-shadow .4s var(--ease);
}

.site-header.scrolled .header-nav { box-shadow:0 2px 32px rgba(0,0,0,.1); }

.logo {
  display:flex;
  align-items:center;
  gap:14px;
  text-decoration:none;
  flex-shrink:0;
}

.logo-img { height:76px; width:auto; display:block; }

.logo-sub { font-size:9px; font-weight:500; color:var(--muted); letter-spacing:.14em; text-transform:uppercase; line-height:1.35; max-width:150px; }

.main-nav { display:flex; align-items:center; gap:0; }

.main-nav a {
  font-size:13px;
  font-weight:500;
  letter-spacing:.02em;
  color:var(--black);
  text-decoration:none;
  padding:0 15px;
  height:112px;
  display:flex;
  align-items:center;
  border-bottom:2px solid transparent;
  transition:border-color .2s, color .2s;
  white-space:nowrap;
}

.main-nav a:hover { color:var(--red); border-bottom-color:var(--red); }
.main-nav a.active { color:var(--red); border-bottom-color:var(--red); }

.nav-contact {
  margin-left:20px;
  background:var(--red) !important;
  color:white !important;
  padding:0 22px !important;
  height:42px !important;
  font-size:12px !important;
  font-weight:600 !important;
  letter-spacing:.06em !important;
  text-transform:uppercase;
  border-bottom:none !important;
  display:flex;
  align-items:center;
}
.nav-contact:hover { background:var(--red-d) !important; }

/* ── DROPDOWN ─────────────────────────────────────── */
.nav-item {
  position:relative;
  display:flex;
  align-items:center;
}

.nav-item > a {
  display:flex;
  align-items:center;
  gap:5px;
  cursor:pointer;
}

.nav-chevron {
  font-size:14px;
  line-height:1;
  display:inline-block;
  transition:transform .25s var(--ease);
  margin-top:1px;
  opacity:.5;
}

.nav-item:hover .nav-chevron,
.nav-item.open .nav-chevron { transform:rotate(180deg); opacity:1; }

.nav-dropdown {
  position:absolute;
  top:calc(100% + 0px);
  left:0;
  min-width:220px;
  background:white;
  border-top:2px solid var(--red);
  box-shadow:0 8px 32px rgba(0,0,0,.1);
  display:flex;
  flex-direction:column;
  opacity:0;
  visibility:hidden;
  transform:translateY(8px);
  transition:opacity .22s var(--ease), transform .22s var(--ease), visibility .22s;
  z-index:999;
}

.nav-item:hover .nav-dropdown,
.nav-item.open .nav-dropdown {
  opacity:1;
  visibility:visible;
  transform:translateY(0);
}

.nav-dropdown a {
  font-size:13px;
  font-weight:500;
  letter-spacing:.01em;
  color:var(--black);
  text-decoration:none;
  padding:13px 20px;
  height:auto !important;
  border-bottom:1px solid rgba(0,0,0,.05) !important;
  border-left:none;
  transition:background .18s, color .18s, padding-left .18s;
  white-space:nowrap;
}

.nav-dropdown a:last-child { border-bottom:none !important; }

.nav-dropdown a:hover {
  background:#faf9f7;
  color:var(--red);
  padding-left:26px !important;
  border-bottom-color:rgba(0,0,0,.05) !important;
}

.nav-dropdown a.active {
  background:#faf9f7;
  color:var(--red);
  font-weight:700;
}

/* Mobile nav toggle */
.nav-toggle {
  display:none;
  background:none;
  border:none;
  cursor:pointer;
  width:44px;
  height:44px;
  padding:0;
  align-items:center;
  justify-content:center;
  flex-direction:column;
  gap:5px;
}
.nav-toggle span {
  display:block;
  width:24px; height:2px;
  background:var(--black);
  transition:all .3s;
}

/* ── HEADER TOOLS (native WoodMart search/account/wishlist/cart) ──── */
.header-tools {
  display:flex;
  align-items:center;
  gap:6px;
  margin-left:16px;
  flex-shrink:0;
}
.header-tools .wd-tools-element { display:flex; align-items:center; }

/* ── CUSTOM CURSOR (intero sito, body.custom-cursor impostato in header.php) ──
   Ported from template-casella; qui reso tondo con border-radius:50%
   invece dei quadrati dell'originale. */
.cursor-page-inner { pointer-events:none; }
@media (hover:hover) and (pointer:fine) {
  .custom-cursor .circle-cursor {
    position:fixed;
    left:0; top:0;
    pointer-events:none;
    transform:translateZ(0);
    visibility:hidden;
    opacity:0;
    transition:opacity .65s cubic-bezier(.23,1,.32,1);
    border-radius:50%;
    z-index:10000000;
  }
  .custom-cursor .circle-cursor-inner {
    margin-left:-3px;
    margin-top:-3px;
    width:6px;
    height:6px;
    background-color:var(--red);
    z-index:10000001;
  }
  .custom-cursor .circle-cursor-inner.cursor-link-hover {
    margin-left:-10px;
    margin-top:-10px;
    width:20px;
    height:20px;
    background-color:var(--red);
    opacity:.8;
  }
  .custom-cursor .circle-cursor-outer {
    margin-left:-15px;
    margin-top:-15px;
    width:30px;
    height:30px;
    border:1px solid var(--red);
    opacity:.8;
    transition:.1s;
  }
}

/* ── FOOTER ────────────────────────────────────────── */
footer {
  font-family:'Suisse Intl', sans-serif;
  background:var(--black);
  padding:80px clamp(24px, 6vw, 180px) 36px;
  position:relative;
}

.footer-top {
  display:grid;
  grid-template-columns:2fr minmax(0,1fr) minmax(0,1fr);
  gap:60px;
  margin-bottom:64px;
  padding-bottom:64px;
  border-bottom:1px solid rgba(255,255,255,.07);
}

.footer-logo {
  display:inline-flex;
  align-items:center;
  margin-bottom:18px;
  text-decoration:none;
}

.footer-logo-img { height:44px; width:auto; display:block; filter:brightness(0) invert(1); }

.footer-tagline {
  font-size:14px;
  color:rgba(255,255,255,.4);
  font-weight:350;
  line-height:1.75;
  margin-bottom:0;
  max-width:400px;
}

.footer-badges {
  display:flex;
  align-items:center;
  gap:12px;
  margin-top:24px;
}

.footer-badge {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:38px;
  height:38px;
  border:1px solid rgba(255,255,255,.15);
  color:rgba(255,255,255,.5);
  transition:color .2s, border-color .2s;
}
.footer-badge:hover { color:white; border-color:rgba(255,255,255,.35); }
.footer-badge img { max-width:70%; max-height:70%; object-fit:contain; }

.footer-col-title {
  font-size:15px;
  font-weight:700;
  letter-spacing:.06em;
  text-transform:uppercase;
  color:white;
  margin-bottom:24px;
}

.footer-links {
  list-style:none;
  display:flex;
  flex-direction:column;
  gap:11px;
}

.footer-links a {
  font-size:13px;
  font-weight:400;
  color:rgba(255,255,255,.4);
  text-decoration:none;
  transition:color .2s;
}
.footer-links a:hover { color:white; }

.footer-bottom {
  display:flex;
  justify-content:center;
  align-items:center;
}

.footer-copy {
  font-size:13px;
  color:rgba(255,255,255,.4);
  font-weight:400;
  text-align:center;
}

/* ── HEADER/FOOTER RESPONSIVE ─────────────────────── */
@media (max-width:900px) {
  /* Header non più fisso su mobile: scorre via col resto della pagina.
     "relative" invece di "static" per non perdere lo z-index (su un
     elemento static lo z-index viene ignorato dal browser), cosi il
     menu a tendina resta sempre sopra al resto del contenuto. */
  .site-header { position:relative; z-index:900; }
  main { padding-top:0; }
  .header-bar { padding:7px 24px; }
  .hb-left .hb-item:not(.hb-shop):nth-child(1) { display:none; }
  .header-nav { padding:0 24px; position:relative; }
  .main-nav { display:none; }
  .main-nav.open {
    display:flex;
    flex-direction:column;
    position:absolute;
    top:100%; left:0; right:0;
    background:var(--white);
    padding:0;
    gap:0;
    border-bottom:1px solid rgba(0,0,0,.1);
    box-shadow:0 8px 24px rgba(0,0,0,.08);
    z-index:800;
    max-height:80vh;
    overflow-y:auto;
  }
  .main-nav.open > a,
  .main-nav.open .nav-item > a {
    height:auto !important;
    padding:15px 24px !important;
    border-bottom:1px solid rgba(0,0,0,.07) !important;
    width:100%;
    border-left:none !important;
    font-size:14px !important;
  }
  .main-nav.open .nav-item { flex-direction:column; align-items:flex-start; width:100%; }
  .nav-dropdown {
    position:static !important;
    box-shadow:none !important;
    border-top:none !important;
    border-left:3px solid var(--red) !important;
    margin-left:24px;
    transform:none !important;
    opacity:1 !important;
    visibility:visible !important;
    display:none;
    width:calc(100% - 24px);
  }
  .nav-item.open .nav-dropdown { display:flex !important; }
  .nav-dropdown a { white-space:normal !important; }
  .nav-contact { margin:12px 24px !important; width:calc(100% - 48px) !important; justify-content:center !important; }
  .nav-toggle { display:flex; }
  .header-tools { margin-left:auto; }
  .footer-top { grid-template-columns:1fr; gap:40px; padding:64px 24px; }
  footer { padding:64px 24px 32px; }
  .footer-bottom { text-align:center; }
}

/* ══════════════════════════════════════════════════════════════════════
   CASELLA — resto del design system (ported from template-casella)
   ══════════════════════════════════════════════════════════════════════ */

/* ── RESET & BASE ──────────────────────────────────── */
*, *::before, *::after { box-sizing:border-box; margin:0; padding:0; }
html { scroll-behavior:smooth; }
body {
  font-family:'Suisse Intl', sans-serif;
  font-weight:400;
  background:#faf9f7;
  color:#0c0c0c;
  overflow-x:hidden;
  -webkit-font-smoothing:antialiased;
}

/* Grain texture — fixed, non-interactive */
body::after {
  content:'';
  position:fixed;
  inset:0;
  pointer-events:none;
  z-index:9999;
  opacity:0.028;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='300' height='300'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.75' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='300' height='300' filter='url(%23n)'/%3E%3C/svg%3E");
  background-size:200px 200px;
  mix-blend-mode:overlay;
}


/* ── HERO ───────────────────────────────────────────── */
.hero-viewport {
  height:100vh;
  display:flex;
  flex-direction:column;
}

.hero {
  flex:1 1 auto;
  min-height:0;
  background:var(--black);
  display:grid;
  grid-template-columns:42% 58%;
  grid-template-rows:minmax(0,1fr);
  position:relative;
  overflow:hidden;
  padding-top:112px; /* bar(34) + nav(68) + 10 */
}

/* Radial glows */
.hero-glow-1 {
  position:absolute;
  width:900px; height:900px;
  border-radius:50%;
  background:radial-gradient(circle, rgba(207,46,46,.16) 0%, transparent 65%);
  bottom:-300px; left:-200px;
  pointer-events:none;
}

.hero-glow-2 {
  position:absolute;
  width:400px; height:400px;
  border-radius:50%;
  background:radial-gradient(circle, rgba(207,46,46,.07) 0%, transparent 70%);
  top:120px; right:35%;
  pointer-events:none;
}

/* Decorative large number */
.hero-deco {
  position:absolute;
  bottom:-40px;
  right:-20px;
  font-size:clamp(200px,22vw,380px);
  font-weight:900;
  color:rgba(255,255,255,.025);
  letter-spacing:-.05em;
  line-height:1;
  pointer-events:none;
  user-select:none;
}

.hero-left {
  display:flex;
  flex-direction:column;
  justify-content:center;
  padding:80px 40px 100px 80px;
  margin-right:-60px;
  min-height:0;
  overflow:hidden;
  position:relative;
  z-index:3;
}

.hero-eyebrow {
  font-size:11px;
  font-weight:600;
  letter-spacing:.18em;
  text-transform:uppercase;
  color:var(--red);
  margin-bottom:36px;
  display:flex;
  align-items:center;
  gap:14px;
  opacity:0;
  transform:translateY(16px);
  animation:fadeUp .7s .2s var(--ease) forwards;
}

.hero-eyebrow::before {
  content:'';
  width:30px; height:1px;
  background:var(--red);
  flex-shrink:0;
}

.hero-title {
  font-size:clamp(44px,5.5vw,86px);
  font-weight:900;
  color:white;
  line-height:1.0;
  letter-spacing:-.05em;
  margin-bottom:36px;
  opacity:0;
  transform:translateY(20px);
  animation:fadeUp .8s .35s var(--ease) forwards;
}

.hero-title em {
  font-style:italic;
  color:var(--red);
  font-weight:900;
}

.hero-body {
  font-size:16px;
  font-weight:350;
  color:rgba(255,255,255,.5);
  line-height:1.72;
  max-width:420px;
  margin-bottom:52px;
  opacity:0;
  transform:translateY(16px);
  animation:fadeUp .7s .5s var(--ease) forwards;
}

.hero-actions {
  display:flex;
  align-items:center;
  gap:36px;
  opacity:0;
  transform:translateY(12px);
  animation:fadeUp .6s .65s var(--ease) forwards;
}

.btn-red {
  background:var(--red);
  color:white;
  padding:15px 34px;
  font-size:12px;
  font-weight:700;
  letter-spacing:.08em;
  text-transform:uppercase;
  text-decoration:none;
  transition:background .2s, transform .2s;
  display:inline-block;
  flex-shrink:0;
}
.btn-red:hover { background:var(--red-d); transform:translateY(-2px); }

.btn-text {
  color:rgba(255,255,255,.5);
  font-size:13px;
  font-weight:500;
  letter-spacing:.04em;
  text-decoration:none;
  display:flex;
  align-items:center;
  gap:8px;
  transition:color .2s, gap .2s;
}
.btn-text:hover { color:white; gap:14px; }

.btn-ghost {
  background:transparent;
  border:1px solid rgba(255,255,255,.4);
  color:white;
  padding:15px 34px;
  font-size:12px;
  font-weight:700;
  letter-spacing:.08em;
  text-transform:uppercase;
  text-decoration:none;
  display:inline-block;
  transition:background .2s, border-color .2s;
}
.btn-ghost:hover { background:rgba(255,255,255,.08); border-color:rgba(255,255,255,.7); }

.hero-right {
  position:relative;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:60px 70px 60px 20px;
  min-height:0;
  overflow:hidden;
  z-index:1;
}

.hero-img-wrap {
  width:100%;
  height:88%;
  position:relative;
  opacity:0;
  transform:translateX(30px);
  animation:fadeRight .9s .4s var(--ease) forwards;
}

.hero-img {
  width:100%;
  height:100%;
  min-height:420px;
  object-fit:cover;
  display:block;
  border:1px solid rgba(255,255,255,.07);
  position:relative;
}

/* Stack di counter a destra dell'immagine hero */
.hero-stats-stack {
  position:absolute;
  top:50%;
  right:-28px;
  transform:translateY(-50%);
  display:flex;
  flex-direction:column;
  gap:16px;
  z-index:3;
}

.hero-stat-card {
  background:#fff;
  border:1px solid rgba(0,0,0,.08);
  padding:18px 24px;
  opacity:0;
  animation:fadeUp .6s var(--ease) forwards;
}

.hero-stats-stack .hero-stat-card:nth-child(1) { animation-delay:.7s; }
.hero-stats-stack .hero-stat-card:nth-child(2) { animation-delay:.85s; }
.hero-stats-stack .hero-stat-card:nth-child(3) { animation-delay:1s; }
.hero-stats-stack .hero-stat-card:nth-child(4) { animation-delay:1.15s; }

.stat-num {
  font-size:30px;
  font-weight:900;
  color:var(--black);
  letter-spacing:-.05em;
  line-height:1;
}
.stat-num sup { font-size:16px; color:var(--red); }
.stat-label {
  font-size:10px;
  font-weight:500;
  letter-spacing:.1em;
  text-transform:uppercase;
  color:var(--muted);
  margin-top:4px;
}

/* ── MARQUEE STRIP ─────────────────────────────────── */
.marquee-strip {
  background:var(--red);
  padding:13px 0;
  overflow:hidden;
  white-space:nowrap;
  flex:0 0 auto;
}

.marquee-track {
  display:inline-flex;
  animation:marquee 28s linear infinite;
}

.marquee-track span {
  font-size:11px;
  font-weight:700;
  letter-spacing:.2em;
  text-transform:uppercase;
  color:rgba(255,255,255,.85);
  padding:0 36px;
}

.marquee-sep {
  color:rgba(255,255,255,.3) !important;
  padding:0 !important;
  letter-spacing:0 !important;
  font-weight:400 !important;
}

/* ── INTRO / COUNTERS ──────────────────────────────── */
.intro {
  padding:96px 80px;
  display:grid;
  grid-template-columns:minmax(0,1fr) 2fr;
  gap:80px;
  align-items:start;
  background:var(--white);
  position:relative;
  overflow:hidden;
}

.intro::before {
  content:'';
  position:absolute;
  width:600px; height:600px;
  border-radius:50%;
  background:radial-gradient(circle, rgba(207,46,46,.06) 0%, transparent 70%);
  top:-200px; right:-100px;
  pointer-events:none;
}

.intro-left .section-label { margin-bottom:20px; }
.intro-left .section-title { margin-bottom:20px; }
.intro-left .section-body { font-size:15px; color:var(--muted); line-height:1.72; }

.intro-right {
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(0,1fr);
  gap:40px 60px;
  padding-top:8px;
}

.counter-item {}
.counter-val {
  font-size:52px;
  font-weight:900;
  letter-spacing:-.05em;
  color:var(--black);
  line-height:1;
  margin-bottom:6px;
}
.counter-val .suf { color:var(--red); }

.counter-title {
  font-size:14px;
  font-weight:600;
  color:var(--black);
  margin-bottom:4px;
}
.counter-desc {
  font-size:13px;
  font-weight:350;
  color:var(--muted);
  line-height:1.6;
}

/* ── SETTORI ───────────────────────────────────────── */
.settori {
  background:var(--black);
  padding:96px 80px;
  position:relative;
  overflow:hidden;
}

.settori::before {
  content:'';
  position:absolute;
  width:700px; height:700px;
  border-radius:50%;
  background:radial-gradient(circle, rgba(207,46,46,.1) 0%, transparent 65%);
  bottom:-250px; right:-100px;
  pointer-events:none;
}

.settori-head {
  display:flex;
  justify-content:space-between;
  align-items:flex-end;
  margin-bottom:56px;
}

.settori-head .section-title { color:white; }

.settori-link {
  font-size:12px;
  font-weight:600;
  letter-spacing:.1em;
  text-transform:uppercase;
  color:var(--red);
  text-decoration:none;
  display:flex;
  align-items:center;
  gap:8px;
  white-space:nowrap;
  padding-bottom:4px;
  transition:gap .2s;
}
.settori-link:hover { gap:14px; }

.settori-grid {
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:2px;
}
.settori-grid.cols-3 { grid-template-columns:repeat(3,minmax(0,1fr)); }

.settore-card {
  background:rgba(255,255,255,.04);
  border:1px solid rgba(255,255,255,.06);
  padding:40px 32px;
  position:relative;
  overflow:hidden;
  cursor:pointer;
  transition:background .3s, border-color .3s;
}

.settore-card::after {
  content:'';
  position:absolute;
  top:0; left:0; right:0;
  height:2px;
  background:var(--red);
  transform:scaleX(0);
  transform-origin:left;
  transition:transform .35s var(--ease);
}

.settore-card:hover { background:rgba(207,46,46,.08); border-color:rgba(207,46,46,.2); }
.settore-card:hover::after { transform:scaleX(1); }

/* Variante: intero quadrato come link (pagine hub Soluzioni/Prodotti) */
a.settore-card { display:block; color:inherit; text-decoration:none; }
.settore-card:hover .settore-cta { gap:14px; }

.settore-num {
  font-size:10px;
  font-weight:700;
  letter-spacing:.18em;
  color:var(--red);
  margin-bottom:44px;
  font-family:monospace;
}

.settore-img {
  width:100%;
  height:130px;
  overflow:hidden;
  border:1px solid rgba(255,255,255,.06);
  margin-bottom:32px;
}

.settore-photo {
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
}

.settore-title {
  font-size:19px;
  font-weight:700;
  color:white;
  letter-spacing:-.03em;
  line-height:1.2;
  margin-bottom:10px;
}

.settore-desc {
  font-size:13px;
  font-weight:350;
  color:rgba(255,255,255,.4);
  line-height:1.65;
  margin-bottom:32px;
}

.settore-cta {
  font-size:11px;
  font-weight:700;
  letter-spacing:.1em;
  text-transform:uppercase;
  color:var(--red);
  text-decoration:none;
  display:flex;
  align-items:center;
  gap:8px;
  transition:gap .2s;
}
.settore-cta:hover { gap:14px; }

/* ── BRAND SYSTEM ──────────────────────────────────── */
.brand-system {
  padding:96px 80px;
  background:var(--white);
  position:relative;
  overflow:hidden;
}

.brand-system::before {
  content:'';
  position:absolute;
  width:500px; height:500px;
  border-radius:50%;
  background:radial-gradient(circle, rgba(207,46,46,.06) 0%, transparent 70%);
  bottom:-150px; left:-100px;
  pointer-events:none;
}

.brand-system-head { margin-bottom:60px; }

/* Level 1 — Casella */
.brand-l1 {
  background:var(--black);
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(0,1fr);
  min-height:320px;
  margin-bottom:3px;
  position:relative;
  overflow:hidden;
}

.brand-l1::before {
  content:'';
  position:absolute;
  width:400px; height:400px;
  border-radius:50%;
  background:radial-gradient(circle, rgba(207,46,46,.2) 0%, transparent 65%);
  top:-100px; right:-50px;
}

.brand-l1-content {
  padding:56px 64px;
  display:flex;
  flex-direction:column;
  justify-content:space-between;
  position:relative;
  z-index:2;
}

.brand-tier-tag {
  font-size:10px;
  font-weight:600;
  letter-spacing:.2em;
  text-transform:uppercase;
  color:rgba(255,255,255,.3);
  margin-bottom:20px;
}

.brand-l1-name {
  font-size:48px;
  font-weight:900;
  color:white;
  letter-spacing:-.05em;
  line-height:1;
  margin-bottom:16px;
}

.brand-l1-name span { color:var(--red); }

.brand-l1-text {
  font-size:15px;
  font-weight:350;
  color:rgba(255,255,255,.5);
  line-height:1.72;
  margin-bottom:36px;
  max-width:420px;
}

.brand-l1-right {
  border-left:1px solid rgba(255,255,255,.07);
  overflow:hidden;
  position:relative;
  z-index:2;
}

.brand-l1-photo {
  width:100%;
  height:100%;
  min-height:320px;
  object-fit:cover;
  display:block;
}

/* Level 2 — Brand proprietari */
.brand-l2-items { margin-bottom:60px; }

.brand-l2-label {
  font-size:10px;
  font-weight:600;
  letter-spacing:.2em;
  text-transform:uppercase;
  color:var(--muted);
  margin:56px 0 28px;
  display:flex;
  align-items:center;
  gap:16px;
}
.brand-l2-label::after {
  content:'';
  flex:1;
  height:1px;
  background:var(--mid);
}

.brand-l2-grid {
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(0,1fr);
  gap:3px;
}

.brand-l2-grid.trio {
  grid-template-columns:minmax(0,1fr) minmax(0,1fr) minmax(0,1fr);
  margin-top:3px;
}

.brand-l2-card {
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(0,1fr);
  min-height:260px;
  background:var(--grey);
  overflow:hidden;
}

.brand-l2-card:nth-child(even) .brand-l2-card-img { order:2; }
.brand-l2-grid.trio .brand-l2-card-img { order:0; }

.brand-l2-card-img {
  background:var(--mid);
  display:flex;
  align-items:center;
  justify-content:center;
  font-family:monospace;
  font-size:9px;
  letter-spacing:.1em;
  color:rgba(0,0,0,.3);
  text-transform:uppercase;
  background:repeating-linear-gradient(
    135deg,
    rgba(0,0,0,.04) 0px,
    rgba(0,0,0,.04) 1px,
    transparent 1px, transparent 10px
  );
  border:1px solid rgba(0,0,0,.07);
  position:relative;
}

.brand-l2-card-img:has(.brand-l2-logo) {
  background:#fff;
  padding:32px;
}

.brand-l2-logo {
  max-width:170px;
  max-height:72px;
  object-fit:contain;
}

.brand-l2-card-content {
  padding:36px 40px;
  display:flex;
  flex-direction:column;
  justify-content:center;
}

.brand-l2-tier-tag {
  font-size:9px;
  font-weight:600;
  letter-spacing:.2em;
  text-transform:uppercase;
  color:var(--muted);
  margin-bottom:14px;
}

.brand-l2-name {
  font-size:22px;
  font-weight:900;
  letter-spacing:-.04em;
  color:var(--black);
  margin-bottom:10px;
  display:flex;
  align-items:center;
  gap:8px;
}

.brand-l2-dot {
  width:7px; height:7px;
  border-radius:50%;
  background:var(--red);
  flex-shrink:0;
}

.brand-l2-text {
  font-size:13px;
  font-weight:350;
  line-height:1.65;
  color:var(--muted);
  margin-bottom:24px;
}

.btn-sm {
  font-size:11px;
  font-weight:700;
  letter-spacing:.08em;
  text-transform:uppercase;
  color:var(--red);
  text-decoration:none;
  display:flex;
  align-items:center;
  gap:6px;
  transition:gap .2s;
  width:fit-content;
}
.btn-sm:hover { gap:12px; }

/* Link inline dentro a un paragrafo di testo (non un bottone a sé) */
.text-link {
  color:var(--red);
  font-weight:600;
  text-decoration:underline;
  text-decoration-color:rgba(207,46,46,.4);
  text-underline-offset:2px;
  transition:text-decoration-color .2s;
}
.text-link:hover { text-decoration-color:var(--red); }

/* Level 3 — Partner logo grid */
.brand-l3-label {
  font-size:10px;
  font-weight:600;
  letter-spacing:.2em;
  text-transform:uppercase;
  color:var(--muted);
  margin:56px 0 28px;
  display:flex;
  align-items:center;
  gap:16px;
}
.brand-l3-label::after {
  content:'';
  flex:1;
  height:1px;
  background:var(--mid);
}

.partner-grid {
  display:grid;
  grid-template-columns:repeat(7,minmax(0,1fr));
  gap:1px;
  background:rgba(0,0,0,.1);
}

.partner-grid.compact {
  display:flex;
  justify-content:center;
  flex-wrap:wrap;
  max-width:640px;
  margin:32px auto 0;
}
.partner-grid.compact .partner-cell { width:160px; }

.partner-cell {
  background:var(--grey);
  aspect-ratio:2/1;
  display:flex;
  align-items:center;
  justify-content:center;
  font-size:12px;
  font-weight:700;
  letter-spacing:.06em;
  text-transform:uppercase;
  color:rgba(0,0,0,.28);
  filter:grayscale(1);
  transition:background .25s, color .25s, filter .25s;
  cursor:default;
  padding:20px;
  text-align:center;
  min-width:0;
}

.partner-cell:hover {
  background:white;
  color:var(--black);
  filter:none;
}

/* Livello 3 (home): loghi bianchi; hover rivela il logo a colori */
.partner-grid:not(.compact) .partner-cell {
  filter:none;
}
.partner-grid:not(.compact) .partner-logo {
  filter:brightness(0) invert(1);
  transition:filter .25s;
}
.partner-grid:not(.compact) .partner-cell:hover .partner-logo {
  filter:none;
}

.partner-logo {
  max-width:120px;
  max-height:48px;
  width:auto;
  height:auto;
  object-fit:contain;
}

/* ── TESTIMONIANZE ─────────────────────────────────── */
.testimonials {
  background:var(--black);
  padding:56px 80px;
  position:relative;
  overflow:hidden;
}

.testimonials::before {
  content:'';
  position:absolute;
  width:700px; height:700px;
  border-radius:50%;
  background:radial-gradient(circle, rgba(207,46,46,.1) 0%, transparent 65%);
  top:-250px; left:-150px;
  pointer-events:none;
}

.testimonials-head {
  display:flex;
  flex-direction:column;
  align-items:center;
  text-align:center;
  gap:24px;
  margin-bottom:48px;
  position:relative;
  z-index:2;
}
.testimonials-head .section-label { justify-content:center; }

.testimonials-nav {
  display:flex;
  gap:12px;
}

.testimonials-arrow {
  width:46px; height:46px;
  border:1px solid rgba(255,255,255,.15);
  background:transparent;
  color:white;
  font-family:'Suisse Intl',sans-serif;
  font-size:16px;
  cursor:pointer;
  transition:background .2s, border-color .2s;
}
.testimonials-arrow:hover { background:var(--red); border-color:var(--red); }

.testimonials-swiper {
  position:relative;
  z-index:2;
}

.testimonial-card {
  padding:48px 64px;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  text-align:center;
  min-height:220px;
}

.testimonial-quote {
  font-size:19px;
  font-weight:350;
  line-height:1.65;
  color:rgba(255,255,255,.8);
  margin:0 auto 28px;
  max-width:680px;
  width:100%;
  text-align:center;
}

.testimonial-author {
  font-size:13px;
  font-weight:700;
  color:white;
  letter-spacing:-.01em;
}

.testimonial-meta {
  font-size:11px;
  font-weight:500;
  color:var(--red);
  letter-spacing:.03em;
  margin-top:4px;
}

/* ── CONTACT BAND ──────────────────────────────────── */
.contact-band {
  background:var(--red);
  padding:96px 80px;
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(0,1fr);
  gap:80px;
  align-items:center;
  position:relative;
  overflow:hidden;
}

.contact-band::before {
  content:'';
  position:absolute;
  width:700px; height:700px;
  border-radius:50%;
  background:radial-gradient(circle, rgba(168,36,36,.55) 0%, transparent 65%);
  bottom:-300px; right:-150px;
  pointer-events:none;
}

.contact-band::after {
  content:'';
  position:absolute;
  width:300px; height:300px;
  border-radius:50%;
  background:radial-gradient(circle, rgba(168,36,36,.4) 0%, transparent 70%);
  top:-100px; left:30%;
  pointer-events:none;
}

.cb-title {
  font-size:clamp(32px,3.2vw,54px);
  font-weight:900;
  color:white;
  letter-spacing:-.05em;
  line-height:1.05;
  margin-bottom:20px;
}

.cb-body {
  font-size:16px;
  color:rgba(255,255,255,.65);
  font-weight:350;
  line-height:1.72;
  margin-bottom:36px;
}

.cb-contacts {
  display:flex;
  flex-direction:column;
  gap:12px;
}

.cb-contact-item {
  display:flex;
  align-items:center;
  gap:12px;
  font-size:14px;
  font-weight:500;
  color:rgba(255,255,255,.8);
}

.cb-contact-dot { width:4px; height:4px; border-radius:50%; background:rgba(255,255,255,.4); flex-shrink:0; }

.contact-form { position:relative; z-index:2; }

.form-row { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:10px; margin-bottom:10px; }
.form-row.full { grid-template-columns:1fr; }

.f-input {
  width:100%;
  background:rgba(255,255,255,.12);
  border:1px solid rgba(255,255,255,.18);
  padding:13px 17px;
  font-family:'Suisse Intl',sans-serif;
  font-size:14px;
  font-weight:400;
  color:white;
  outline:none;
  transition:background .2s, border-color .2s;
  -webkit-appearance:none;
}

.f-input::placeholder { color:rgba(255,255,255,.4); }
.f-input:focus { background:rgba(255,255,255,.18); border-color:rgba(255,255,255,.5); }

textarea.f-input { resize:none; height:90px; }

.f-submit {
  width:100%;
  background:white;
  color:var(--red);
  border:none;
  padding:16px 36px;
  font-family:'Suisse Intl',sans-serif;
  font-size:12px;
  font-weight:700;
  letter-spacing:.1em;
  text-transform:uppercase;
  cursor:pointer;
  margin-top:10px;
  transition:background .2s, transform .2s;
}
.f-submit:hover { background:#f0eeec; transform:translateY(-2px); }

/* Form variants for use inside .about-section (light/dark) */
.about-section .f-input {
  background:var(--grey);
  border:1px solid rgba(0,0,0,.1);
  color:var(--black);
}
.about-section .f-input::placeholder { color:rgba(0,0,0,.35); }
.about-section .f-input:focus { background:#fff; border-color:rgba(207,46,46,.4); }
.about-section .f-submit { background:var(--red); color:white; }
.about-section .f-submit:hover { background:var(--red-d); }

.about-section.dark .f-input {
  background:rgba(255,255,255,.06);
  border-color:rgba(255,255,255,.12);
  color:white;
}
.about-section.dark .f-input::placeholder { color:rgba(255,255,255,.35); }
.about-section.dark .f-input:focus { background:rgba(255,255,255,.1); border-color:rgba(255,255,255,.3); }

.f-label {
  font-size:11px;
  font-weight:600;
  letter-spacing:.08em;
  text-transform:uppercase;
  color:var(--muted);
  margin-bottom:8px;
  display:block;
}
.about-section.dark .f-label { color:rgba(255,255,255,.4); }

/* ── SECTION UTILITY ──────────────────────────────── */
.title-divider {
  width:48px;
  height:3px;
  background:var(--red);
  margin:20px 0 24px;
}

.w-fit { width:fit-content; }

.section-label {
  font-size:11px;
  font-weight:600;
  letter-spacing:.18em;
  text-transform:uppercase;
  color:var(--red);
  display:flex;
  align-items:center;
  gap:12px;
  margin-bottom:18px;
}
.section-label::before { content:''; width:28px; height:1px; background:var(--red); flex-shrink:0; }

.section-label.light { color:rgba(207,46,46,.8); }
.section-label.light::before { background:rgba(207,46,46,.8); }

.section-title {
  font-size:clamp(28px,3vw,50px);
  font-weight:900;
  letter-spacing:-.05em;
  line-height:1.05;
  color:var(--black);
}

.section-title.light { color:white; }

.section-body {
  font-size:15px;
  font-weight:350;
  line-height:1.72;
  color:var(--muted);
  max-width:560px;
}

/* ── ANIMATIONS ───────────────────────────────────── */
@keyframes fadeUp {
  to { opacity:1; transform:translateY(0); }
}
@keyframes fadeRight {
  to { opacity:1; transform:translateX(0); }
}
@keyframes marquee {
  0% { transform:translateX(0); }
  100% { transform:translateX(-50%); }
}

.anim {
  opacity:0;
  transform:translateY(28px);
  transition:opacity .7s var(--ease), transform .7s var(--ease);
}
.anim.visible {
  opacity:1;
  transform:translateY(0);
}
.anim-d1 { transition-delay:.1s; }
.anim-d2 { transition-delay:.2s; }
.anim-d3 { transition-delay:.3s; }
.anim-d4 { transition-delay:.4s; }

/* ── PAGE HERO (sottopagine) ────────────────────────── */
.page-hero {
  background:var(--black);
  padding:170px 80px 90px;
  position:relative;
  overflow:hidden;
}

.page-hero-inner {
  max-width:820px;
  position:relative;
  z-index:2;
}
.page-hero-inner .hero-body { max-width:640px; }

/* Variante: hero con foto a piena copertura come sfondo, testo libero sopra */
.page-hero-photo-img {
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:right center;
  z-index:0;
}
.page-hero-photo-img.contain {
  object-fit:contain;
  object-position:right bottom;
}
.page-hero-photo-overlay {
  position:absolute;
  inset:0;
  background:linear-gradient(90deg, rgba(12,12,12,.97) 0%, rgba(12,12,12,.88) 38%, rgba(12,12,12,.4) 70%, rgba(12,12,12,.08) 100%);
  z-index:1;
}
.page-hero-photo .page-hero-inner { z-index:2; }

/* Centered variant */
.page-hero-centered .page-hero-inner {
  max-width:760px;
  margin:0 auto;
  text-align:center;
}
.page-hero-centered .hero-eyebrow { justify-content:center; }
.page-hero-centered .hero-title { text-align:center; }
.page-hero-centered .hero-body { max-width:640px; margin-left:auto; margin-right:auto; }

/* Compact variant — banner con foto di sfondo, per pagine di categoria */
.page-hero-compact {
  position:relative;
  min-height:360px;
  display:flex;
  align-items:center;
  padding:150px 80px 50px;
  overflow:clip;
}
.page-hero-compact-img {
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
  z-index:0;
}
.page-hero-compact-overlay {
  position:absolute;
  inset:0;
  background:linear-gradient(90deg, rgba(12,12,12,.94) 0%, rgba(12,12,12,.82) 50%, rgba(12,12,12,.45) 100%);
  z-index:1;
}
.page-hero-compact .page-hero-inner { max-width:1100px; }
.page-hero-compact .hero-title {
  font-size:clamp(32px,3.5vw,52px);
  margin-bottom:0;
}

/* Variante senza foto: sfondo a gradiente coerente con le altre hero del sito */
.page-hero-compact.gradient {
  background:linear-gradient(135deg, var(--black) 0%, #1c0e0e 55%, var(--red-d) 160%);
}

/* Titolo del Blog su una sola riga, stessa dimensione font: allarga solo il contenitore */
.page-hero-compact.gradient .page-hero-inner { max-width:none; }
.page-hero-compact.gradient:not(.centered) .hero-title { white-space:nowrap; }
@media (max-width:900px) {
  .page-hero-compact.gradient:not(.centered) .hero-title { white-space:normal; }
}

/* ── HERO ARTICOLO SINGOLO (blog): blocco autonomo, nessuna classe condivisa ── */
.blog-single-hero {
  position:relative;
  overflow:hidden;
  min-height:400px;
  padding:150px 80px 50px;
  display:flex;
  align-items:center;
  justify-content:center;
  text-align:center;
  background:linear-gradient(135deg, var(--black) 0%, #1c0e0e 55%, var(--red-d) 160%);
}
.blog-single-hero-inner { position:relative; z-index:2; width:100%; }
.blog-single-hero-title {
  font-size:clamp(32px,3.5vw,52px);
  font-weight:900;
  color:white;
  line-height:1.0;
  letter-spacing:-.05em;
  margin:0;
}
.blog-single-hero-title em { font-style:italic; color:var(--red); font-weight:900; }
.blog-single-hero-breadcrumb {
  display:flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  font-size:12px;
  font-weight:500;
  color:rgba(255,255,255,.4);
  margin-top:24px;
}
.blog-single-hero-breadcrumb a { color:rgba(255,255,255,.6); text-decoration:none; transition:color .2s; }
.blog-single-hero-breadcrumb a:hover { color:white; }
.blog-single-hero-breadcrumb .current { color:var(--red); }
.blog-single-hero-glow-1 {
  position:absolute;
  width:900px; height:900px;
  border-radius:50%;
  background:radial-gradient(circle, rgba(207,46,46,.16) 0%, transparent 65%);
  bottom:-300px; left:-200px;
  pointer-events:none;
}
.blog-single-hero-glow-2 {
  position:absolute;
  width:400px; height:400px;
  border-radius:50%;
  background:radial-gradient(circle, rgba(207,46,46,.07) 0%, transparent 70%);
  top:120px; right:35%;
  pointer-events:none;
}
@media (max-width:900px) {
  .blog-single-hero { padding:40px 24px; min-height:300px; }
}

/* ── STAT STRIP (fascia statistiche full-width) ──────── */
.stat-strip {
  display:grid;
  grid-template-columns:repeat(5,minmax(0,1fr));
  gap:1px;
  background:rgba(255,255,255,.08);
  border-top:1px solid rgba(255,255,255,.08);
}

.stat-strip-item {
  background:var(--black);
  padding:36px 24px;
  text-align:center;
}

.stat-strip-val {
  font-size:28px;
  font-weight:900;
  color:white;
  letter-spacing:-.03em;
  line-height:1;
}
.stat-strip-val .suf { color:var(--red); }

.stat-strip-label {
  font-size:10px;
  font-weight:500;
  letter-spacing:.1em;
  text-transform:uppercase;
  color:rgba(255,255,255,.4);
  margin-top:8px;
}

.page-hero-stats {
  display:flex;
  gap:52px;
  flex-wrap:wrap;
  margin-top:8px;
}

.mini-stat-val {
  font-size:34px;
  font-weight:900;
  color:white;
  letter-spacing:-.04em;
  line-height:1;
}
.mini-stat-val .suf { color:var(--red); }

.mini-stat-label {
  font-size:10px;
  font-weight:500;
  letter-spacing:.1em;
  text-transform:uppercase;
  color:rgba(255,255,255,.4);
  margin-top:8px;
}

/* ── CHI SIAMO / CONTENT SECTIONS ───────────────────── */
.about-section {
  padding:96px 80px;
  position:relative;
  overflow:clip;
}
.about-section.light { background:var(--white); }
.about-section.dark { background:var(--black); }

.about-section::before {
  content:'';
  position:absolute;
  width:600px; height:600px;
  border-radius:50%;
  pointer-events:none;
}
.about-section.light::before {
  background:radial-gradient(circle, rgba(207,46,46,.06) 0%, transparent 70%);
  top:-200px; right:-100px;
}
.about-section.dark::before {
  background:radial-gradient(circle, rgba(207,46,46,.1) 0%, transparent 65%);
  bottom:-200px; left:-150px;
}

.about-grid {
  display:grid;
  grid-template-columns:320px minmax(0,1fr);
  gap:64px;
  align-items:start;
  position:relative;
  z-index:2;
}

.about-grid-head { position:sticky; top:140px; }
.about-grid-head .section-label { margin-bottom:20px; }
.about-grid-head .section-title {
  font-size:clamp(24px,2.2vw,34px);
  margin-bottom:20px;
  overflow-wrap:break-word;
}

.about-grid-body { min-width:0; }

/* Simple (non-split) content column, for sections without a sticky head */
.about-content-simple { max-width:720px; position:relative; z-index:2; }
.about-content-simple + .partner-grid,
.partner-grid + .about-content-simple { margin-top:56px; }

.about-content-simple.centered {
  max-width:980px;
  margin-left:auto;
  margin-right:auto;
  text-align:center;
}
.about-content-simple.centered .section-label { justify-content:center; }
.about-content-simple.centered .title-divider { margin-left:auto; margin-right:auto; }
.about-content-simple.centered .about-text { max-width:none; margin-left:auto; margin-right:auto; }

.about-text {
  font-size:15px;
  font-weight:350;
  line-height:1.72;
  color:var(--muted);
  max-width:760px;
  margin-bottom:22px;
}
.about-text:last-child { margin-bottom:0; }
.about-section.dark .about-text { color:rgba(255,255,255,.55); }
.about-text.full { max-width:none; }

/* ── STORIA: layout timeline + galleria immagini sincronizzata allo scroll ── */
.storia-layout {
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(320px,440px);
  gap:56px;
  align-items:start;
}

.storia-visual {
  position:sticky;
  top:140px;
  height:560px;
  overflow:hidden;
}

.storia-visual-frame {
  position:absolute;
  inset:0;
  opacity:0;
  transition:opacity .6s ease;
}
.storia-visual-frame.active { opacity:1; }

.storia-visual-badge {
  position:absolute;
  top:24px;
  left:24px;
  z-index:2;
  background:var(--red);
  color:white;
  font-size:14px;
  font-weight:800;
  letter-spacing:.02em;
  padding:9px 18px;
}

/* ── TIMELINE ────────────────────────────────────────── */
.timeline {
  position:relative;
  max-width:760px;
  margin-top:12px;
}
.timeline::before {
  content:'';
  position:absolute;
  left:5px; top:8px; bottom:8px;
  width:1px;
  background:rgba(255,255,255,.15);
}
.about-section.light .timeline::before { background:rgba(0,0,0,.12); }

.timeline-item {
  position:relative;
  padding-left:38px;
  margin-bottom:48px;
}
.timeline-item:last-child { margin-bottom:0; }
/* Più spazio tra le voci della timeline nella sezione storia (solo desktop):
   da più respiro al cambio foto sincronizzato e rende più omogenei i tempi
   di transizione tra una voce e l'altra. */
#storia .timeline-item { margin-bottom:110px; }
#storia .timeline-item:last-child { margin-bottom:0; }

.timeline-item::before {
  content:'';
  position:absolute;
  left:0; top:6px;
  width:11px; height:11px;
  border-radius:50%;
  background:var(--red);
  border:2px solid var(--black);
  z-index:2;
}
.about-section.light .timeline-item::before { border-color:var(--white); }

.timeline-year {
  font-size:10px;
  font-weight:700;
  letter-spacing:.18em;
  text-transform:uppercase;
  color:var(--red);
  font-family:monospace;
  margin-bottom:10px;
}

.timeline-title {
  font-size:21px;
  font-weight:800;
  letter-spacing:-.03em;
  color:white;
  margin-bottom:12px;
}
.about-section.light .timeline-title { color:var(--black); }

.timeline-text {
  font-size:14px;
  font-weight:350;
  line-height:1.75;
  color:rgba(255,255,255,.5);
  max-width:620px;
}
.timeline-text + .timeline-text { margin-top:14px; }
.about-section.light .timeline-text { color:var(--muted); }

/* ── PILLAR GRID (valori) ────────────────────────────── */
.pillar-grid {
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:2px;
  margin-top:16px;
}
.pillar-grid.cols-3 { grid-template-columns:repeat(3,minmax(0,1fr)); }

.pillar-card {
  background:var(--grey);
  border:1px solid rgba(0,0,0,.06);
  padding:36px 28px;
  position:relative;
  overflow:hidden;
  transition:background .3s, border-color .3s;
}
.pillar-card::after {
  content:'';
  position:absolute;
  top:0; left:0; right:0;
  height:2px;
  background:var(--red);
  transform:scaleX(0);
  transform-origin:left;
  transition:transform .35s var(--ease);
}
.pillar-card:hover { background:white; border-color:rgba(207,46,46,.25); }
.pillar-card:hover::after { transform:scaleX(1); }

.pillar-num {
  font-size:10px;
  font-weight:700;
  letter-spacing:.18em;
  color:var(--red);
  font-family:monospace;
  margin-bottom:28px;
}

.pillar-title {
  font-size:17px;
  font-weight:700;
  color:var(--black);
  letter-spacing:-.02em;
  margin-bottom:10px;
}

.pillar-desc {
  font-size:13px;
  font-weight:350;
  color:var(--muted);
  line-height:1.65;
}

.about-section.dark .pillar-card { background:rgba(255,255,255,.04); border-color:rgba(255,255,255,.08); }
.about-section.dark .pillar-card:hover { background:rgba(255,255,255,.07); border-color:rgba(207,46,46,.3); }
.about-section.dark .pillar-title { color:white; }
.about-section.dark .pillar-desc { color:rgba(255,255,255,.5); }

/* ── SERVICE GRID (fasi del progetto) ────────────────── */
.service-grid {
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:1px;
  background:rgba(255,255,255,.08);
  margin-top:16px;
}

.service-cell {
  background:var(--black);
  padding:28px 24px;
  display:flex;
  flex-direction:column;
  gap:16px;
  transition:background .25s;
}
.service-cell:hover { background:rgba(207,46,46,.1); }

.service-cell-num {
  font-size:10px;
  font-weight:700;
  letter-spacing:.15em;
  color:var(--red);
  font-family:monospace;
}

.service-cell-label {
  font-size:14px;
  font-weight:600;
  color:white;
  letter-spacing:-.01em;
  line-height:1.35;
}

.service-grid + .about-text { margin-top:32px; }

/* ── STATEMENT ────────────────────────────────────────── */
.statement-section {
  background:var(--grey);
  padding:110px 80px;
  text-align:center;
}

.statement-text {
  font-size:clamp(24px,2.6vw,38px);
  font-weight:700;
  letter-spacing:-.03em;
  line-height:1.35;
  color:var(--black);
  max-width:820px;
  margin:0 auto;
}
.statement-text em { font-style:italic; color:var(--red); }

.statement-label {
  font-size:11px;
  font-weight:600;
  letter-spacing:.18em;
  text-transform:uppercase;
  color:var(--red);
  margin-bottom:20px;
}

.statement-footer {
  font-size:15px;
  font-weight:350;
  line-height:1.7;
  color:var(--muted);
  max-width:640px;
  margin:24px auto 0;
}

/* ── CERT GRID (badge certificazione) ────────────────── */
.cert-grid {
  display:grid;
  grid-template-columns:1.3fr minmax(0,1fr);
  gap:64px;
  align-items:center;
  position:relative;
  z-index:2;
}

.cert-visual { display:flex; align-items:center; justify-content:center; }

.cert-badge {
  width:220px; height:220px;
  border:2px solid var(--red);
  border-radius:50%;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  text-align:center;
  position:relative;
  flex-shrink:0;
}
.cert-badge::before {
  content:'';
  position:absolute;
  inset:10px;
  border:1px solid rgba(207,46,46,.25);
  border-radius:50%;
}

.cert-badge-label {
  font-size:10px;
  font-weight:600;
  letter-spacing:.14em;
  text-transform:uppercase;
  color:var(--muted);
}
.cert-badge-num {
  font-size:38px;
  font-weight:900;
  letter-spacing:-.03em;
  color:var(--black);
  line-height:1;
  margin:8px 0;
}
.cert-badge-sub {
  font-size:10px;
  font-weight:700;
  letter-spacing:.12em;
  text-transform:uppercase;
  color:var(--red);
}

/* ── EXPERTISE GRID (settori esperienza) ─────────────── */
.expertise-grid {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:2px;
}

/* ── STATS GRID (numeri organizzazione) ──────────────── */
.stats-grid {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:40px 48px;
}

/* ── DUO GRID (due blocchi di testo affiancati) ──────── */
.duo-grid {
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(0,1fr);
  gap:56px;
  margin-top:40px;
}

.duo-title {
  font-size:17px;
  font-weight:700;
  letter-spacing:-.02em;
  color:var(--black);
  margin-bottom:10px;
}
.about-section.dark .duo-title { color:white; }

.duo-text {
  font-size:14px;
  font-weight:350;
  line-height:1.7;
  color:var(--muted);
}
.about-section.dark .duo-text { color:rgba(255,255,255,.55); }

/* ── SEDI (mappe + indirizzi) ────────────────────────── */
.sede-grid {
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(0,1fr);
  gap:48px;
  margin-top:16px;
}

.sede-name {
  font-size:19px;
  font-weight:700;
  letter-spacing:-.02em;
  color:white;
  margin-bottom:16px;
}
.about-section.light .sede-name { color:var(--black); }

.sede-map { height:240px; margin-bottom:16px; }

.sede-address {
  font-size:14px;
  font-weight:350;
  line-height:1.65;
  color:rgba(255,255,255,.5);
  margin-bottom:8px;
}
.about-section.light .sede-address { color:var(--muted); }

/* ── CHECKLIST ────────────────────────────────────────── */
.checklist {
  list-style:none;
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(0,1fr);
  gap:18px 40px;
  margin-top:8px;
}
.checklist li {
  display:flex;
  align-items:flex-start;
  gap:14px;
  font-size:14px;
  font-weight:500;
  line-height:1.5;
  color:var(--black);
}
.checklist li::before {
  content:'✔';
  color:var(--red);
  font-weight:700;
  font-size:13px;
  flex-shrink:0;
  margin-top:2px;
}
.about-section.dark .checklist li { color:rgba(255,255,255,.85); }
.checklist + .about-text { margin-top:28px; }

/* ── MARK LIST (lista numerata a righe, alternativa elegante al checklist) ── */
.mark-list {
  list-style:none;
  margin-top:16px;
  border-top:1px solid rgba(0,0,0,.1);
}
.mark-list li {
  display:flex;
  align-items:baseline;
  gap:18px;
  padding:15px 0;
  border-bottom:1px solid rgba(0,0,0,.1);
  font-size:14px;
  font-weight:500;
  line-height:1.5;
  color:var(--black);
}
.mark-list-num {
  font-family:monospace;
  font-size:11px;
  font-weight:700;
  letter-spacing:.06em;
  color:var(--red);
  flex-shrink:0;
  width:22px;
}
.about-section.dark .mark-list li { color:rgba(255,255,255,.85); border-color:rgba(255,255,255,.12); }
.about-section.dark .mark-list { border-color:rgba(255,255,255,.12); }

/* ── PAGE HERO — split variant (vetrina loghi) ───────── */
.page-hero-split {
  display:grid;
  grid-template-columns:1.15fr minmax(0,1fr);
  gap:48px;
  align-items:center;
}
.page-hero-split .page-hero-inner { max-width:none; }

.page-hero-visual {
  position:relative;
  z-index:2;
  opacity:0;
  transform:translateX(30px);
  animation:fadeRight .9s .4s var(--ease) forwards;
}

.hero-logo-grid {
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(0,1fr);
  gap:14px;
}

.hero-logo-tile {
  background:white;
  aspect-ratio:1;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:26px;
  border:1px solid rgba(255,255,255,.07);
}
.hero-logo-tile img { max-width:100%; max-height:100%; object-fit:contain; }

.hero-logo-tile.text-mark {
  background:var(--black);
  border:1px solid rgba(255,255,255,.15);
  flex-direction:column;
  gap:4px;
}
.hero-logo-tile.text-mark .tile-name {
  font-size:19px;
  font-weight:900;
  letter-spacing:-.03em;
  color:white;
}
.hero-logo-tile.text-mark .tile-name span { color:var(--red); }
.hero-logo-tile.text-mark .tile-tag {
  font-size:9px;
  font-weight:600;
  letter-spacing:.1em;
  text-transform:uppercase;
  color:rgba(255,255,255,.35);
}

/* ── BRAND PROFILE (vetrina brand a tutta larghezza) ─── */
.brand-profile {
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(0,1fr);
  overflow:clip;
  position:relative;
}
.brand-profile.light { background:var(--white); }
.brand-profile.dark { background:var(--black); }
.brand-profile.reverse .brand-profile-visual { order:2; }

.brand-profile-content {
  padding:64px;
  display:flex;
  flex-direction:column;
  justify-content:center;
  position:relative;
  z-index:2;
}

.brand-profile-name {
  font-size:40px;
  font-weight:900;
  letter-spacing:-.04em;
  line-height:1;
  margin-bottom:10px;
  color:var(--black);
}
.brand-profile.dark .brand-profile-name { color:white; }
.brand-profile-name span { color:var(--red); font-size:.5em; vertical-align:top; }

.brand-profile-tagline {
  font-size:15px;
  font-weight:500;
  color:var(--red);
  margin-bottom:24px;
}

.brand-profile-text {
  font-size:14px;
  font-weight:350;
  line-height:1.72;
  color:var(--muted);
  margin-bottom:16px;
  max-width:480px;
}
.brand-profile-text:last-of-type { margin-bottom:0; }
.brand-profile.dark .brand-profile-text { color:rgba(255,255,255,.55); }

.brand-profile-tags {
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:10px;
  margin-top:24px;
}

/* Chip con logo reale del brand, usato negli stessi contesti dei tag testuali */
.brand-logo-chip {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  background:white;
  border:1px solid rgba(0,0,0,.08);
  padding:10px 18px;
  height:48px;
  margin-bottom:16px;
  transition:border-color .2s, transform .2s;
}
.brand-logo-chip img { max-height:100%; max-width:110px; object-fit:contain; }
.brand-logo-chip:hover { border-color:rgba(207,46,46,.35); transform:translateY(-2px); }
.brand-profile-tag {
  font-size:11px;
  font-weight:600;
  letter-spacing:.06em;
  text-transform:uppercase;
  color:var(--red);
  border:1px solid rgba(207,46,46,.3);
  padding:7px 14px;
  text-decoration:none;
  display:inline-block;
  transition:background .2s, color .2s, border-color .2s;
}
.brand-profile.dark .brand-profile-tag { color:rgba(255,255,255,.8); border-color:rgba(255,255,255,.2); }
a.brand-profile-tag:hover { background:var(--red); color:white; border-color:var(--red); }

.brand-profile-content .checklist { margin-top:20px; }

.brand-profile-visual {
  min-height:320px;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:48px;
  position:relative;
  background:repeating-linear-gradient(135deg, rgba(0,0,0,.04) 0px, rgba(0,0,0,.04) 1px, transparent 1px, transparent 10px);
  border-left:1px solid rgba(0,0,0,.07);
}
.brand-profile.dark .brand-profile-visual {
  background:repeating-linear-gradient(135deg, rgba(255,255,255,.04) 0px, rgba(255,255,255,.04) 1px, transparent 1px, transparent 10px);
  border-left:1px solid rgba(255,255,255,.07);
}
.brand-profile-visual:has(.brand-profile-logo) { background:#fff; }

.brand-profile-logo {
  max-width:min(500px, 100%);
  max-height:200px;
  object-fit:contain;
}

.brand-wordmark {
  font-size:clamp(32px,3.5vw,52px);
  font-weight:900;
  letter-spacing:-.04em;
  color:var(--black);
  text-align:center;
}
.brand-profile.dark .brand-wordmark { color:white; }
.brand-wordmark span { color:var(--red); font-size:.5em; vertical-align:top; }

/* ── PARTNER PROFILE GRID (partner con logo + descrizione) ── */
.partner-profile-grid {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:2px;
}

.partner-profile-card {
  background:var(--grey);
  padding:32px 28px;
  display:flex;
  flex-direction:column;
  gap:16px;
}
.about-section.dark .partner-profile-card { background:rgba(255,255,255,.04); }

.partner-profile-logo-wrap {
  height:52px;
  display:flex;
  align-items:center;
}
.partner-profile-logo-wrap img { max-height:100%; max-width:150px; object-fit:contain; }

.partner-profile-logo-wrap.text-mark {
  font-size:18px;
  font-weight:800;
  letter-spacing:-.02em;
  color:var(--black);
}
.about-section.dark .partner-profile-logo-wrap.text-mark { color:white; }

.partner-profile-name {
  font-size:16px;
  font-weight:700;
  letter-spacing:-.02em;
  color:var(--black);
}
.about-section.dark .partner-profile-name { color:white; }

.partner-profile-desc {
  font-size:13px;
  font-weight:350;
  line-height:1.6;
  color:var(--muted);
}
.about-section.dark .partner-profile-desc { color:rgba(255,255,255,.5); }

/* ── VALUE CHIP CLUSTER (vetrina valori, hero) ───────── */
.value-chip-cluster {
  display:flex;
  flex-wrap:wrap;
  gap:14px;
  align-content:center;
}

.value-chip {
  background:rgba(255,255,255,.06);
  border:1px solid rgba(255,255,255,.12);
  color:white;
  font-size:13px;
  font-weight:600;
  letter-spacing:.02em;
  padding:14px 22px;
  white-space:nowrap;
}
.value-chip.accent {
  background:var(--red);
  border-color:var(--red);
}

/* ── ROLE GRID (figure ricercate) ────────────────────── */
.role-grid {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:2px;
  margin-top:16px;
}

/* ── BREADCRUMB ───────────────────────────────────────── */
.breadcrumb {
  display:flex;
  align-items:center;
  gap:8px;
  font-size:12px;
  font-weight:500;
  color:rgba(255,255,255,.4);
  margin-bottom:28px;
  position:relative;
  z-index:2;
}
.breadcrumb a { color:rgba(255,255,255,.6); text-decoration:none; transition:color .2s; }
.breadcrumb a:hover { color:white; }
.breadcrumb-sep { color:rgba(255,255,255,.25); }
.breadcrumb .current { color:var(--red); }

/* ── SOLUTION LAYOUT (sidebar sticky + contenuto) ────── */
.solution-layout {
  display:grid;
  grid-template-columns:300px minmax(0,1fr);
  gap:56px;
  align-items:start;
  padding:96px 80px;
  position:relative;
  background:var(--white);
}

.solution-sidebar {
  position:sticky;
  top:140px;
  display:flex;
  flex-direction:column;
  gap:16px;
}

.solution-nav {
  background:var(--grey);
  border:1px solid rgba(0,0,0,.06);
}
.solution-nav-item {
  display:flex;
  align-items:center;
  gap:10px;
  padding:14px 18px;
  font-size:13px;
  font-weight:500;
  color:var(--muted);
  text-decoration:none;
  border-bottom:1px solid rgba(0,0,0,.06);
  transition:background .2s, color .2s;
}
.solution-nav-item:last-child { border-bottom:none; }
.solution-nav-item::before {
  content:'';
  width:6px; height:6px;
  border-radius:50%;
  background:var(--red);
  opacity:.35;
  flex-shrink:0;
  transition:opacity .2s;
}
.solution-nav-item:hover { color:var(--black); background:rgba(0,0,0,.03); }
.solution-nav-item:hover::before { opacity:.7; }
.solution-nav-item.active { color:var(--red); font-weight:700; background:white; }
.solution-nav-item.active::before { opacity:1; }

.sidebar-call-box {
  background:var(--black);
  padding:22px 20px;
  display:flex;
  align-items:center;
  gap:14px;
}
.sidebar-call-icon {
  width:44px; height:44px;
  background:var(--red);
  display:flex;
  align-items:center;
  justify-content:center;
  color:white;
  font-size:16px;
  flex-shrink:0;
}
.sidebar-call-label { font-size:11px; color:rgba(255,255,255,.45); margin-bottom:4px; }
.sidebar-call-num { font-size:15px; font-weight:700; color:white; text-decoration:none; }

.sidebar-form-box { background:var(--grey); padding:26px 22px; }
.sidebar-form-title { font-size:16px; font-weight:800; color:var(--black); letter-spacing:-.02em; margin-bottom:4px; }
.sidebar-form-sub { font-size:11px; color:var(--red); font-weight:600; margin-bottom:16px; display:block; }
.sidebar-form-box .f-input { background:white; border:1px solid rgba(0,0,0,.1); color:var(--black); margin-bottom:10px; }
.sidebar-form-box .f-input::placeholder { color:rgba(0,0,0,.35); }
.sidebar-form-box .f-input:focus { border-color:rgba(207,46,46,.4); }
.sidebar-form-box textarea.f-input { height:70px; }
.sidebar-form-box .f-submit { background:var(--red); color:white; margin-top:2px; }
.sidebar-form-box .f-submit:hover { background:var(--red-d); }

/* Componenti riusati (timeline) su sfondo chiaro fuori da .about-section */
.light-surface .timeline::before { background:rgba(0,0,0,.12); }
.light-surface .timeline-item::before { border-color:var(--white); }
.light-surface .timeline-title { color:var(--black); }
.light-surface .timeline-text { color:var(--muted); }

.solution-main .section-label { margin-bottom:20px; }
.solution-main .section-title { margin-bottom:20px; }
.solution-main > * + * { margin-top:64px; }

.lead-text {
  font-size:19px;
  font-weight:350;
  line-height:1.65;
  color:var(--black);
  padding-bottom:40px;
  border-bottom:1px solid rgba(0,0,0,.08);
}
.lead-text em { font-style:italic; color:var(--red); }

.content-photo-wrap { width:100%; }
.content-photo {
  width:100%;
  height:400px;
  object-fit:cover;
  display:block;
}
@media (max-width:768px) {
  .content-photo { height:220px; }
}

/* ── PHASE LIST (fasi del progetto, lista verticale numerata) ── */
.phase-list { margin-top:40px; border-top:2px solid var(--black); }
.phase-row {
  display:grid;
  grid-template-columns:80px minmax(0,1fr);
  gap:20px;
  padding:28px 0;
  border-bottom:1px solid rgba(0,0,0,.1);
}
.phase-row:last-child { border-bottom:none; }
.phase-num { font-size:44px; font-weight:900; color:var(--red); line-height:1; letter-spacing:-.03em; }
.phase-title { font-size:20px; font-weight:800; letter-spacing:-.02em; color:var(--black); margin-bottom:8px; }
.phase-text { color:var(--muted); font-size:15px; line-height:1.7; }
.phase-text + .brand-profile-tags { margin-top:14px; }

/* ── LT-FIGURE (immagine editoriale: taglio diagonale, cornice sfalsata, targhetta) ── */
.lt-figure { position:relative; margin-top:80px; padding-right:20px; padding-bottom:20px; }
.lt-figure__img {
  position:relative;
  height:clamp(260px,34vw,420px);
  background:repeating-linear-gradient(45deg, var(--grey) 0 14px, var(--mid) 14px 28px);
  clip-path:polygon(0 0,100% 0,100% 82%,72% 100%,0 100%);
  display:flex;
  align-items:center;
  justify-content:center;
}
.lt-figure__img img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.lt-figure__hint { font-family:monospace; font-size:13px; color:var(--muted); background:var(--white); border:1px dashed var(--mid); padding:8px 14px; }
.lt-figure__frame { position:absolute; inset:24px -20px -20px 24px; border:3px solid var(--red); z-index:-1; }

/* ── IMG PLACEHOLDER (segnaposto generico al posto di una foto reale) ── */
.img-placeholder { display:flex; align-items:center; justify-content:center; }
.img-placeholder-label {
  font-family:monospace;
  font-size:13px;
  font-weight:600;
  letter-spacing:.08em;
  text-transform:uppercase;
  padding:8px 14px;
}
.img-placeholder-light {
  background:repeating-linear-gradient(45deg, var(--grey) 0 14px, var(--mid) 14px 28px);
}
.img-placeholder-light .img-placeholder-label {
  color:var(--muted);
  background:var(--white);
  border:1px dashed var(--mid);
}
.img-placeholder-dark {
  background:repeating-linear-gradient(45deg, rgba(255,255,255,.05) 0 14px, rgba(255,255,255,.09) 14px 28px), var(--black);
}
.img-placeholder-dark .img-placeholder-label {
  color:white;
  background:rgba(255,255,255,.14);
  border:1px dashed rgba(255,255,255,.4);
}
.lt-figure__tag { position:absolute; left:0; bottom:0; background:var(--black); color:var(--white); font-size:12px; text-transform:uppercase; letter-spacing:.1em; padding:10px 16px; }
.lt-figure__tag strong { color:var(--red); margin-right:8px; }

/* ── MAGIC CURSOR HERO (cerchio sfocato in hover, su tutte le hero del sito) ── */
.lt-hero-magic-cursor { cursor:none; }
.lt-magic-cursor-wrapper {
  position:fixed;
  left:0; top:0;
  width:0; height:0;
  pointer-events:none;
  z-index:10000;
}
#lt-ball-cursor {
  position:absolute;
  left:0; top:0;
  width:220px; height:220px;
  margin-left:-110px;
  margin-top:-110px;
  background-color:rgba(12,12,12,.4);
  -webkit-backdrop-filter:blur(6px);
  backdrop-filter:blur(6px);
  opacity:0;
  transform:scale(0);
  transition:opacity .25s ease, transform .3s ease;
}
.lt-magic-cursor-wrapper.active #lt-ball-cursor {
  opacity:1;
  transform:scale(1);
}
@media (hover:none) and (pointer:coarse) {
  .lt-magic-cursor-wrapper { display:none; }
}

/* ── OFFER BAND (cosa offriamo, griglia 2x2 su card scura) ── */
.offer-band { background:var(--black); padding:48px 40px; }
.offer-grid {
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:1px;
  background:rgba(255,255,255,.2);
  border:1px solid rgba(255,255,255,.2);
  margin-top:32px;
}
.offer-cell {
  background:var(--black);
  padding:28px 24px;
  position:relative;
  overflow:hidden;
  transition:background .3s;
}
.offer-cell::after {
  content:'';
  position:absolute;
  top:0; left:0; right:0;
  height:2px;
  background:var(--red);
  transform:scaleX(0);
  transform-origin:left;
  transition:transform .35s var(--ease);
}
.offer-cell:hover { background:white; }
.offer-cell:hover::after { transform:scaleX(1); }
.offer-cell:hover .offer-cell-title { color:var(--black); }
.offer-cell:hover .offer-cell-desc { color:var(--muted); }
.offer-cell-num { font-size:13px; font-weight:700; letter-spacing:.06em; color:var(--red); font-family:monospace; }
.offer-cell-title { font-size:18px; font-weight:700; letter-spacing:-.02em; color:white; margin:10px 0; transition:color .3s; }
.offer-cell-desc { font-size:14px; font-weight:350; line-height:1.65; color:rgba(255,255,255,.65); transition:color .3s; }
@media (max-width:600px) {
  .offer-grid { grid-template-columns:1fr; }
}

/* ── POINT LIST (perché sceglierci, righe numerate) ─────── */
.point-list { margin-top:36px; border-top:2px solid var(--black); }
.point-row {
  display:grid;
  grid-template-columns:56px 320px minmax(0,1fr);
  gap:16px;
  align-items:baseline;
  padding:20px 0;
  border-bottom:1px solid rgba(0,0,0,.1);
}
.point-row:last-child { border-bottom:none; }
.point-num { color:var(--red); font-weight:700; font-size:14px; font-family:monospace; }
.point-title { font-size:17px; font-weight:700; letter-spacing:-.02em; color:var(--black); }
.point-desc { color:var(--muted); font-size:15px; line-height:1.7; }
@media (max-width:900px) {
  .point-row { grid-template-columns:40px minmax(0,1fr); }
  .point-desc { grid-column:2; }
}

/* ── ADVANCE BAND (guardando avanti, banda rossa) ────────── */
.advance-band { background:var(--red); padding:48px 40px; }
.advance-band-title {
  font-size:clamp(26px,3vw,40px);
  font-weight:900;
  letter-spacing:-.03em;
  line-height:1.15;
  color:white;
}
.advance-band-text {
  margin-top:18px;
  color:rgba(255,255,255,.9);
  font-size:15px;
  font-weight:350;
  line-height:1.7;
}
.advance-band-text + .advance-band-text { margin-top:12px; }

/* ── SOLUTION CARDS (altre soluzioni, card chiare con foto) ── */
.solution-cards {
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(240px,1fr));
  gap:20px;
  margin-top:32px;
}
.solution-card {
  background:var(--white);
  border:1px solid rgba(0,0,0,.12);
  text-decoration:none;
  color:inherit;
  display:block;
  position:relative;
  overflow:hidden;
  transition:background .3s, border-color .3s;
}
.solution-card::after {
  content:'';
  position:absolute;
  top:0; left:0; right:0;
  height:2px;
  background:var(--red);
  transform:scaleX(0);
  transform-origin:left;
  transition:transform .35s var(--ease);
}
.solution-card:hover { background:var(--black); border-color:var(--black); }
.solution-card:hover::after { transform:scaleX(1); }
.solution-card:hover .solution-card-title { color:white; }
.solution-card:hover .solution-card-desc { color:rgba(255,255,255,.65); }
.solution-card-img { width:100%; height:170px; object-fit:cover; display:block; }
.solution-card-body { padding:20px; }
.solution-card-title { font-size:18px; font-weight:700; letter-spacing:-.02em; color:var(--black); margin-bottom:8px; transition:color .3s; }
.solution-card-desc { font-size:14px; font-weight:350; line-height:1.6; color:var(--muted); transition:color .3s; }
.solution-card-link { display:inline-block; margin-top:12px; color:var(--red); font-weight:700; font-size:14px; text-decoration:none; }

/* ── FINAL CTA BAND (contenuta nella colonna, non full-bleed) ── */
.final-cta-band { background:var(--black); padding:56px 40px; text-align:center; }
.final-cta-text {
  max-width:52ch;
  margin:16px auto 28px;
  color:rgba(255,255,255,.7);
  font-size:15px;
  font-weight:350;
  line-height:1.7;
}

/* Layout mobile delle pagine Soluzioni/Prodotti: sidebar (sotto-menu, box
   telefono, form) completamente nascosta su mobile — resta visibile solo
   .solution-main. Su desktop l'aside resta intatta come sidebar sticky
   (nessuna modifica sopra i 900px). */
@media (max-width:900px) {
  .lt-rebuild .solution-layout { grid-template-columns:1fr; gap:32px; padding:64px 24px; }
  .lt-rebuild .solution-sidebar { display:none; }
  .lt-rebuild .solution-main > * + * { margin-top:48px; }
}

/* ── CTA BAND ────────────────────────────────────────── */
.cta-band {
  background:var(--red);
  padding:90px 80px;
  text-align:center;
  position:relative;
  overflow:hidden;
}
.cta-band::before {
  content:'';
  position:absolute;
  width:700px; height:700px;
  border-radius:50%;
  background:radial-gradient(circle, rgba(168,36,36,.5) 0%, transparent 65%);
  top:-300px; left:50%;
  transform:translateX(-50%);
  pointer-events:none;
}
.cta-title {
  font-size:clamp(28px,3vw,44px);
  font-weight:900;
  color:white;
  letter-spacing:-.05em;
  line-height:1.1;
  margin-bottom:18px;
  position:relative;
  z-index:2;
}
.cta-body {
  font-size:15px;
  font-weight:350;
  color:rgba(255,255,255,.75);
  max-width:520px;
  margin:0 auto 32px;
  line-height:1.65;
  position:relative;
  z-index:2;
}
.cta-band .btn-red {
  background:white;
  color:var(--red);
  position:relative;
  z-index:2;
}
.cta-band .btn-red:hover { background:#f0eeec; }


/* ── MOBILE (sezioni di contenuto: hero, intro, settori, brand, testimonianze, contact-band, page-hero, storia, cert/expertise/stats/duo grid, sede, checklist, brand-profile, solution layout) ── */
@media (max-width:900px) {
  .hero { grid-template-columns:1fr; min-height:auto; padding-top:0; }
  /* La foto diventa sfondo a piena pagina dietro al testo, invece di sparire */
  .hero-right { position:absolute; inset:0; z-index:0; padding:0; }
  .hero-img-wrap { width:100%; height:100%; }
  .hero-img { min-height:0; filter:brightness(.45); }
  .hero-stats-stack { display:none; }
  .hero-left { padding:60px 24px 80px; margin-right:0; position:relative; z-index:2; }
  .intro { grid-template-columns:1fr; gap:40px; padding:64px 24px; }
  .intro-right { grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:32px; }
  .settori { padding:64px 24px; }
  .settori-grid { grid-template-columns:minmax(0,1fr) minmax(0,1fr); }
  .settori-head { flex-direction:column; align-items:flex-start; gap:16px; }
  .brand-system { padding:64px 24px; }
  .brand-l1 { grid-template-columns:1fr; }
  .brand-l1-right { display:none; }
  .brand-l2-grid, .brand-l2-grid.trio { grid-template-columns:1fr; }
  .brand-l2-card { grid-template-columns:1fr; min-height:auto; }
  .brand-l2-card-img { height:160px; }
  .partner-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .testimonials { padding:64px 24px; }
  .testimonials-head { gap:20px; }
  .testimonial-card { padding:32px 28px; }
  .testimonial-quote { font-size:16px; }
  .contact-band { grid-template-columns:1fr; padding:64px 24px; gap:48px; }
  .page-hero { padding:56px 24px 64px; }
  .page-hero-compact { padding:40px 24px 40px; min-height:300px; }
  .page-hero-stats { gap:32px; }
  .stat-strip { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .about-section { padding:64px 24px; }
  .cta-band { padding:64px 24px; }
  .service-grid { grid-template-columns:minmax(0,1fr) minmax(0,1fr); }
  .statement-section { padding:64px 24px; }
  .about-grid { grid-template-columns:1fr; gap:32px; }
  .about-grid-head { position:static; }
  .storia-layout { grid-template-columns:1fr; gap:32px; }
  .storia-visual { display:none; }
  #storia .timeline-item { margin-bottom:48px; }
  .cert-grid { grid-template-columns:1fr; gap:32px; text-align:center; }
  .expertise-grid { grid-template-columns:minmax(0,1fr) minmax(0,1fr); }
  .stats-grid { grid-template-columns:minmax(0,1fr) minmax(0,1fr); }
  .duo-grid { grid-template-columns:1fr; gap:32px; }
  .sede-grid { grid-template-columns:1fr; gap:32px; }
  .pillar-grid.cols-3 { grid-template-columns:1fr; }
  .checklist { grid-template-columns:1fr; }
  .page-hero-split { grid-template-columns:1fr; }
  .page-hero-visual { display:none; }
  .page-hero-photo-overlay { background:rgba(12,12,12,.88); }
  /* Su mobile la hero è stretta: "contain" (contatti.php) ridurrebbe la foto
     a un ritaglio minuscolo in un angolo, quindi passa a "cover" come le
     altre pagine con foto in hero. */
  .page-hero-photo-img.contain {
    object-fit:cover;
    object-position:65% center;
    transform:scale(1.25);
    transform-origin:65% center;
  }
  .brand-profile { grid-template-columns:1fr; }
  .brand-profile.reverse .brand-profile-visual { order:0; }
  .brand-profile-content { padding:40px 24px; }
  .brand-profile-visual { padding:32px 24px; min-height:220px; }
  .partner-profile-grid { grid-template-columns:minmax(0,1fr) minmax(0,1fr); }
  .role-grid { grid-template-columns:minmax(0,1fr) minmax(0,1fr); }
  .solution-layout { grid-template-columns:1fr; gap:32px; padding:64px 24px; }
  .solution-sidebar { position:static; order:2; }
  .solution-main { order:1; }
  .solution-main > * + * { margin-top:48px; }
}

/* ── BLOG ─────────────────────────────────────────── */
.blog-grid { max-width:none; }

.blog-cards { grid-template-columns:repeat(4,minmax(0,1fr)); }
@media (max-width:900px) {
  .blog-cards { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (max-width:600px) {
  .blog-cards { grid-template-columns:1fr; }
}

.blog-card-body { display:flex; align-items:flex-start; gap:16px; }
.blog-card-info { flex:1; min-width:0; }

.blog-card-date-box {
  flex:0 0 72px;
  width:72px;
  height:72px;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  background:var(--red);
  color:white;
  transition:background .3s, color .3s;
}
.solution-card:hover .blog-card-date-box { background:white; color:var(--red); }

.blog-card-date-day { font-size:24px; font-weight:700; line-height:1; }
.blog-card-date-month {
  font-size:11px;
  font-weight:600;
  letter-spacing:.05em;
  text-transform:uppercase;
  margin-top:4px;
}

.pagination { margin-top:48px; }
.pagination .nav-links {
  display:flex;
  justify-content:center;
  align-items:center;
  gap:8px;
  flex-wrap:wrap;
}
.pagination .page-numbers {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:40px;
  height:40px;
  padding:0 14px;
  border:1px solid rgba(0,0,0,.12);
  color:var(--black);
  text-decoration:none;
  font-size:14px;
  font-weight:500;
  transition:background .2s, border-color .2s, color .2s;
}
.pagination .page-numbers:hover { background:var(--black); border-color:var(--black); color:white; }
.pagination .page-numbers.current { background:var(--red); border-color:var(--red); color:white; }
.pagination .page-numbers.dots { border:none; }

/* Breadcrumb + data/autore spostati sopra il testo dell'articolo (sfondo chiaro, centrati) */
.blog-post-meta-block { text-align:center; margin-bottom:32px; }
.blog-post-meta-block .hero-eyebrow { justify-content:center; margin-bottom:0; }

.blog-post-thumb {
  width:100%;
  max-height:480px;
  object-fit:cover;
  display:block;
  margin-bottom:40px;
}

/* Layout articolo: colonna centrale (immagine+testo) SEMPRE centrata sullo schermo;
   la sidebar occupa lo spazio a destra senza mai spostare la colonna centrale, perché
   la colonna a sinistra riserva esattamente lo stesso spazio (anche se resta vuota). */
.blog-post-layout {
  display:grid;
  grid-template-columns: minmax(332px,1fr) 720px minmax(332px,1fr);
}
.blog-post-content { grid-column:2; max-width:none; margin:0; }
.blog-sidebar {
  grid-column:3;
  justify-self:start;
  align-self:start;
  width:300px;
  margin-left:32px;
  position:sticky;
  top:140px;
  text-align:left;
}
/* Sotto i 1550px non c'è spazio per affiancare sidebar e colonna centrata senza
   sbilanciarla: la sidebar scende sotto il contenuto invece di spostarlo. */
@media (max-width:1550px) {
  .blog-post-layout { display:block; }
  .blog-post-content { max-width:720px; margin:0 auto; }
  .blog-sidebar {
    width:100%;
    max-width:720px;
    margin:40px auto 0;
    position:static;
  }
}
.blog-sidebar-widget { margin-bottom:40px; }
.blog-sidebar-widget:last-child { margin-bottom:0; }
.blog-sidebar-title {
  font-size:13px;
  font-weight:700;
  letter-spacing:.06em;
  text-transform:uppercase;
  color:var(--black);
  margin-bottom:20px;
  padding-bottom:12px;
  border-bottom:2px solid var(--black);
}

.blog-related-list { display:flex; flex-direction:column; gap:20px; }
.blog-related-item { display:flex; gap:12px; text-decoration:none; }
.blog-related-thumb { width:64px; height:64px; object-fit:cover; flex-shrink:0; }
.blog-related-info { min-width:0; display:flex; flex-direction:column; }
.blog-related-title {
  font-size:13px;
  font-weight:600;
  line-height:1.4;
  color:var(--black);
  transition:color .2s;
}
.blog-related-item:hover .blog-related-title { color:var(--red); }
.blog-related-date { font-size:11px; color:var(--muted); margin-top:4px; }

.blog-sidebar-widget .blog-share {
  max-width:none;
  margin:0;
  padding-top:0;
  border-top:none;
  justify-content:flex-start;
}
.blog-post-content p,
.blog-post-content ul,
.blog-post-content ol,
.blog-post-content blockquote {
  font-size:15px;
  font-weight:350;
  line-height:1.72;
  color:var(--muted);
  margin-bottom:22px;
}
.blog-post-content h2,
.blog-post-content h3,
.blog-post-content h4 {
  color:var(--black);
  font-weight:700;
  letter-spacing:-.02em;
  margin:36px 0 16px;
}
.blog-post-content h2 { font-size:26px; }
.blog-post-content h3 { font-size:21px; }
.blog-post-content h4 { font-size:17px; }
.blog-post-content ul,
.blog-post-content ol { padding-left:22px; }
.blog-post-content img { max-width:100%; height:auto; margin:8px 0 22px; }
.blog-post-content a { color:var(--red); text-decoration:underline; }
.blog-post-content blockquote {
  border-left:3px solid var(--red);
  padding-left:20px;
  font-style:italic;
  color:var(--black);
}

/* Condivisione social */
.blog-share {
  display:flex;
  align-items:center;
  justify-content:center;
  gap:14px;
  max-width:720px;
  margin:40px auto 0;
  padding-top:24px;
  border-top:1px solid rgba(0,0,0,.08);
}
.blog-share-icon {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:38px;
  height:38px;
  border:1px solid rgba(0,0,0,.12);
  color:var(--black);
  transition:color .2s, border-color .2s, background .2s;
}
.blog-share-icon:hover { background:var(--red); border-color:var(--red); color:white; }

/* Commenti */

.blog-comment-list { list-style:none; margin-bottom:48px; }
.blog-comment-list ul.children { list-style:none; margin:24px 0 0 56px; padding-left:0; }

.blog-comment-item {
  display:flex;
  gap:16px;
  padding:24px 0;
  border-bottom:1px solid rgba(0,0,0,.08);
}
.blog-comment-avatar img { border-radius:50%; display:block; }
.blog-comment-body { flex:1; min-width:0; }
.blog-comment-meta { display:flex; align-items:baseline; gap:10px; flex-wrap:wrap; margin-bottom:8px; }
.blog-comment-author { font-weight:700; color:var(--black); font-size:14px; }
.blog-comment-date { font-size:12px; color:var(--muted); }
.blog-comment-text p { font-size:14px; line-height:1.7; color:var(--muted); margin-bottom:10px; }
.blog-comment-reply a {
  font-size:11px;
  font-weight:600;
  letter-spacing:.05em;
  text-transform:uppercase;
  color:var(--red);
  text-decoration:none;
}
.blog-comment-reply a:hover { text-decoration:underline; }

.blog-comment-form { max-width:720px; margin:0 auto; }
