/* ===========================================================
   RetailTune — shared design system
   Brand: azure blue + cyan data accent, navy ink, cool whites
   Type: Space Grotesk (display) + Plus Jakarta Sans (text)
   =========================================================== */

:root{
  /* Brand — RetailTune: orange / black / light grey */
  --brand:        #F09B0E;
  --brand-700:    #C77D06;
  --brand-600:    #E8920A;
  --brand-500:    #F09B0E;
  --brand-300:    #F6BE5E;
  --brand-100:    #FBE3BC;
  --brand-50:     #FEF5E6;
  --cyan:         #1A1A1A;   /* secondary accent = black */
  --cyan-50:      #EBEBEC;   /* light grey surface */

  /* Ink / neutrals */
  --ink:          #141414;
  --ink-2:        #4A4A4D;
  --muted:        #86868B;
  --line:         #E2E2E4;
  --line-2:       #EDEDEE;

  /* Surfaces */
  --bg:           #FFFFFF;
  --bg-soft:      #F6F6F7;
  --bg-navy:      #141414;
  --bg-navy-2:    #1F1F20;

  /* Effects */
  --radius:       0;
  --radius-sm:    0;
  --radius-lg:    0;
  --shadow-sm:    0 1px 2px rgba(16,33,68,.06), 0 1px 3px rgba(16,33,68,.05);
  --shadow:       0 6px 24px -8px rgba(16,33,68,.18), 0 2px 6px rgba(16,33,68,.06);
  --shadow-lg:    0 30px 60px -22px rgba(13,32,82,.30);
  --shadow-brand: 0 18px 40px -16px rgba(240,155,14,.5);

  --maxw:         1300px;
  --header-h:     76px;

  --font-display: "Montserrat", system-ui, -apple-system, sans-serif;
  --font-text:    "Montserrat", system-ui, -apple-system, sans-serif;
  --font-mono:    "Montserrat", system-ui, sans-serif;
}

*,*::before,*::after{ box-sizing:border-box; }
html{ scroll-behavior:smooth; -webkit-text-size-adjust:100%; }
body{
  margin:0;
  font-family:var(--font-text);
  color:var(--ink);
  background:var(--bg);
  font-size:17px;
  line-height:1.65;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
  overflow-x:hidden;
}
img{ max-width:100%; display:block; }
a{ color:inherit; text-decoration:none; }
button{ font-family:inherit; cursor:pointer; border:0; background:none; color:inherit; }
::selection{ background:var(--brand-100); color:var(--brand-700); }

h1,h2,h3,h4{
  font-family:var(--font-display);
  font-weight:700;
  line-height:1.08;
  letter-spacing:-0.02em;
  color:var(--ink);
  margin:0;
  text-wrap:balance;
}
h1{ font-size:clamp(2.4rem,5.2vw,4.1rem); }
h2{ font-size:clamp(1.6rem,3vw,2.35rem); }
h3{ font-size:clamp(1.25rem,2vw,1.6rem); }
p{ margin:0 0 1em; text-wrap:pretty; font-size:1rem; }
.lead{ font-size:1rem; color:var(--ink-2); line-height:1.6; }

/* ---------- layout helpers ---------- */
.container{ width:100%; max-width:var(--maxw); margin-inline:auto; padding-inline:clamp(20px,5vw,40px); }
.container-wide{ max-width:1340px; }
.section{ padding-block:70px; }
.section-soft{ background:var(--bg-soft); }
@media (max-width:640px){ :where(body[data-nav="moduli"]) .section.section-soft{ padding-block:40px; } }
.center{ text-align:center; }
.eyebrow{
  display:inline-flex; align-items:center; gap:8px;
  font-family:var(--font-mono);
  font-size:.78rem; font-weight:700;
  letter-spacing:.18em; text-transform:uppercase;
  color:var(--brand-600);
}
.eyebrow::before{ content:""; width:22px; height:2px; background:var(--brand-600); border-radius:2px; }
.eyebrow.on-dark{ color:var(--brand); }
.eyebrow.on-dark::before{ background:var(--brand); }
.eyebrow.center-line{ }
.section-head{ max-width:none; }
.section-head.center{ margin-inline:auto; }
.section-head h2{ margin-top:14px; }
.section-head p{ margin-top:16px; }

/* ---------- buttons ---------- */
.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:9px;
  font-family:var(--font-text); font-weight:700; font-size:.98rem;
  padding:14px 26px; border-radius:0; border:1.5px solid transparent;
  transition:transform .18s ease, box-shadow .25s ease, background .2s ease, color .2s ease, border-color .2s ease;
  white-space:nowrap; line-height:1;
}
.btn svg{ width:18px; height:18px; transition:transform .22s ease; }
.btn-primary{ background:var(--brand-600); color:var(--ink); box-shadow:none; }
.btn-primary:hover{ background:var(--brand-700); transform:translateY(-2px); }
.btn-ghost{ background:transparent; color:var(--muted); border:none; box-shadow:none; }
.btn-ghost:hover{ color:var(--brand-700); transform:translateY(-2px); }
.btn-dark{ background:var(--ink); color:#fff; }
.btn-dark:hover{ background:#1b2949; transform:translateY(-2px); }
.btn-light{ background:#fff; color:var(--brand-700); }
.btn-light:hover{ transform:translateY(-2px); box-shadow:var(--shadow-lg); }
/* hover shine sweep (like landingNLgiugno) */
.btn-primary, .btn-dark, .btn-light{ position:relative; overflow:hidden; }
.btn-primary::after, .btn-dark::after, .btn-light::after{
  content:""; position:absolute; top:0; left:-140%; width:55%; height:100%;
  background:linear-gradient(120deg, transparent, rgba(255,255,255,.45), transparent);
  transform:skewX(-22deg); pointer-events:none;
}
.btn-light::after{ background:linear-gradient(120deg, transparent, rgba(240,155,14,.30), transparent); }
.btn:hover svg{ transform:translateX(4px); }
@media (prefers-reduced-motion: no-preference){
  .btn-primary:hover::after, .btn-dark:hover::after, .btn-light:hover::after{ animation:btnshine .85s ease 1; }
}
@keyframes btnshine{ 0%{ left:-140%; } 100%{ left:160%; } }
.btn-lg{ padding:17px 34px; font-size:1.05rem; }
.link-arrow{ display:inline-flex; align-items:center; gap:8px; font-weight:700; color:var(--brand-700); }
.link-arrow svg{ width:18px; height:18px; transition:transform .2s ease; }
.link-arrow:hover svg{ transform:translateX(4px); }

/* ---------- pills / chips ---------- */
.pill{
  display:inline-flex; align-items:center; gap:8px;
  padding:7px 14px; border-radius:999px;
  background:var(--brand-50); color:var(--brand-700);
  font-size:.82rem; font-weight:700; letter-spacing:.01em;
  border:1px solid var(--brand-100);
}
.chip{
  display:inline-flex; align-items:center; gap:8px;
  padding:9px 15px; border-radius:11px;
  background:#fff; border:1px solid var(--line);
  font-size:.92rem; font-weight:600; color:var(--ink-2);
  box-shadow:var(--shadow-sm);
}
.chip .dot{ width:7px; height:7px; border-radius:50%; background:var(--brand-500); flex:none; }

/* ===========================================================
   HEADER + PORTAFOGLIO MEGA-MENU
   =========================================================== */
.topbar{
  background:var(--bg-soft); color:var(--ink-2);
  border-bottom:1px solid var(--line);
  font-size:.82rem;
}
.topbar .container{ display:flex; align-items:center; justify-content:flex-end; gap:22px; height:38px; }
.topbar a{ color:var(--ink-2); font-weight:600; transition:color .2s; }
.topbar a:hover{ color:var(--ink); }
.topbar .sep{ width:1px; height:15px; background:var(--line-2); }
.lang{ display:flex; gap:10px; align-items:center; }
.lang a{ opacity:.6; font-weight:700; letter-spacing:.04em; }
.lang a.active{ opacity:1; color:var(--ink); }
.topbar-links{ display:flex; gap:20px; align-items:center; }

.site-header{
  position:sticky; top:0; z-index:200;
  background:#fff;
  border-bottom:1px solid var(--line);
  transition:box-shadow .25s ease;
}
.site-header.scrolled{ box-shadow:0 10px 30px -16px rgba(0,0,0,.18); }
.nav{ display:flex; align-items:center; justify-content:space-between; min-height:var(--header-h); padding-block:10px; gap:14px; }
.brand{ display:flex; align-items:center; gap:11px; flex:none; }
.brand.has-tag{ flex-direction:column; align-items:flex-start; gap:3px; }
.brand-tag{ font-family:"Helvetica Neue",Helvetica,Arial,sans-serif; font-weight:300; font-size:0.94rem; letter-spacing:.01em; text-transform:none; color:var(--ink); white-space:nowrap; }
.brand .logo-mark{
  width:38px; height:38px; border-radius:11px; flex:none;
  background:linear-gradient(135deg,var(--brand-500),var(--brand-700));
  display:grid; place-items:center; box-shadow:var(--shadow-brand);
  position:relative;
}
.brand .logo-mark::after{
  content:""; width:13px; height:13px; border-radius:50% 50% 50% 2px;
  transform:rotate(45deg); background:#fff;
  box-shadow:inset 0 0 0 4px var(--brand-600);
}
.brand .logo-word{ font-family:var(--font-display); font-weight:800; font-size:1.5rem; letter-spacing:-.03em; color:var(--ink); }
.brand .logo-word b{ color:var(--brand); font-weight:800; }
.site-header .logo-word{ color:var(--ink); }
.site-footer .logo-word{ color:var(--ink); }
.site-footer .brand-logo{ content:url('img/logo-rt-dark.svg'); }
.site-footer .btn-primary{ box-shadow:none; }
.site-footer .btn-primary:hover{ box-shadow:none; }
.brand-logo{ height:26px; width:auto; display:block; }
.site-header .brand-logo{ filter:none; }
.site-footer .brand-logo{ filter:none; }
.site-header .logo-fallback{ color:var(--ink); }
.site-footer .logo-fallback{ color:var(--ink); }

.nav-menu{ display:flex; align-items:center; gap:2px; list-style:none; margin:0; padding:0; height:100%; }
.nav-menu > li{ height:100%; display:flex; align-items:center; }
/* Variant B — animated underline links on dark */
.nav-link{
  display:inline-flex; align-items:center; gap:5px;
  padding:10px 11px; position:relative;
  font-weight:600; font-size:.92rem; color:var(--ink-2); white-space:nowrap;
  transition:color .2s;
}
.nav-link::after{
  content:""; position:absolute; left:11px; right:11px; bottom:6px; height:2px;
  background:var(--brand); border-radius:2px;
  transform:scaleX(0); transform-origin:left; transition:transform .26s cubic-bezier(.4,0,.1,1);
}
.nav-link:hover, .nav-item.open .nav-link{ color:var(--ink); }
.nav-link:hover::after, .nav-item.open .nav-link::after{ transform:scaleX(1); }
.nav-link .caret{ width:15px; height:15px; transition:transform .3s ease; opacity:.55; }
.nav-item.open .nav-link .caret{ transform:rotate(180deg); }
.nav-cta{ display:flex; align-items:center; gap:8px; flex:none; }
/* header buttons on dark */
.site-header .nav-cta .btn-ghost{ background:transparent; color:var(--ink); border-color:var(--line-2); box-shadow:none; }
.site-header .nav-cta .btn-ghost:hover{ border-color:var(--ink); color:var(--ink); background:rgba(0,0,0,.04); }
.site-header .hamburger{ background:transparent; border-color:var(--line-2); }
.site-header .hamburger span{ background:var(--ink); }

/* the fold-down panel — dark editorial */
.mega{
  position:absolute; left:0; right:0; top:100%;
  background:#141414; border-bottom:1px solid rgba(255,255,255,.08);
  box-shadow:0 40px 60px -30px rgba(0,0,0,.7);
  overflow:hidden;
  /* folded */
  display:grid; grid-template-rows:0fr;
  opacity:0; visibility:hidden; pointer-events:none;
  transition:grid-template-rows .42s cubic-bezier(.4,0,.1,1), opacity .3s ease, visibility .42s;
  transform-origin:top center;
}
.nav-item.open .mega{ grid-template-rows:1fr; opacity:1; visibility:visible; pointer-events:auto; }
.mega-inner{ overflow:hidden; min-height:0; }
.mega-pad{ padding:30px 0 36px; }

/* Variant B — feature tile + link columns */
.megab-pad{ padding:34px 0 42px; overflow:hidden; min-height:0; }
.megab-head{ display:flex; align-items:baseline; gap:16px; flex-wrap:wrap; padding-bottom:16px; margin-bottom:24px; border-bottom:1px solid rgba(255,255,255,.1); }
.megab-htitle{ font-family:var(--font-display); font-weight:700; font-size:1.15rem; line-height:1.15; letter-spacing:-.02em; color:#fff; display:inline-flex; align-items:center; gap:9px; }
.megab-htitle svg{ width:16px; height:16px; color:var(--brand); transition:transform .2s; }
.megab-htitle:hover{ color:var(--brand); }
.megab-htitle:hover svg{ transform:translateX(3px); }
.megab-hdesc{ color:#9a9a9d; font-size:.88rem; line-height:1.4; }
.megab-cols{ display:grid; grid-template-columns:repeat(4,1fr); gap:18px 28px; align-content:start; }
.megab-col h4{ font-family:var(--font-mono); font-size:.7rem; font-weight:700; text-transform:uppercase; letter-spacing:.14em; color:var(--brand); margin:0 0 8px; }
.megab-col a{ display:block; padding:8px 0; color:#cdcdcd; transition:color .18s, padding .18s; border-bottom:1px solid rgba(255,255,255,.06); }
.megab-col a:last-child{ border-bottom:0; }
.megab-col a:hover{ color:#fff; padding-left:6px; }
.megab-col a .lb-t{ display:block; font-weight:600; font-size:1.04rem; letter-spacing:-.01em; }
.megab-col a .lb-d{ display:block; font-size:.84rem; color:#7d7d80; margin-top:2px; line-height:1.4; }
.megab-col a:hover .lb-d{ color:#a7a7aa; }
@media (max-width:1040px){ .megab-cols{ grid-template-columns:repeat(3,1fr); } }

/* Variant C — product-card grid */
.mega-cards{ display:grid; grid-template-columns:repeat(var(--mc-cols,3),1fr); gap:12px; }
.mega-card{
  display:flex; gap:14px; align-items:flex-start;
  padding:15px 16px; border:1px solid var(--line); border-radius:0;
  background:#fff; transition:transform .22s ease, box-shadow .22s ease, border-color .22s ease;
}
.mega-card:hover{ border-color:var(--brand-300); box-shadow:0 14px 30px -16px rgba(240,155,14,.55); transform:translateY(-3px); }
.mega-card .mc-ic{
  width:44px; height:44px; border-radius:12px; flex:none;
  background:var(--brand-50); color:var(--brand-700);
  display:grid; place-items:center; transition:.22s;
}
.mega-card:hover .mc-ic{ background:var(--brand); color:var(--ink); }
.mega-card .mc-ic svg{ width:22px; height:22px; }
.mega-card .mc-body{ display:flex; flex-direction:column; min-width:0; }
.mega-card .mc-cat{ font-size:.62rem; font-weight:700; letter-spacing:.12em; text-transform:uppercase; color:var(--brand-700); }
.mega-card .mc-title{ font-family:var(--font-display); font-weight:700; font-size:.96rem; color:var(--ink); margin:2px 0 1px; letter-spacing:-.01em; }
.mega-card .mc-desc{ font-size:.79rem; color:var(--muted); line-height:1.4; }
@media (max-width:1040px){ .mega-cards{ grid-template-columns:repeat(2,1fr) !important; } }

.mega-cols{ display:grid; gap:30px 26px; }
.mega-cols.cols-6{ grid-template-columns:repeat(3,1fr); }
.mega-feature{
  grid-column:span 1;
  background:linear-gradient(160deg,var(--bg-navy),var(--bg-navy-2));
  color:#fff; border-radius:var(--radius); padding:26px;
  display:flex; flex-direction:column; justify-content:space-between; gap:18px;
}
.mega-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:28px 30px; }
.mega-group-title{
  font-family:var(--font-mono); font-size:.72rem; font-weight:700;
  letter-spacing:.16em; text-transform:uppercase; color:var(--brand-600);
  margin-bottom:13px; display:flex; align-items:center; gap:8px;
}
.mega-group-title::before{ content:""; width:6px; height:6px; border-radius:2px; background:var(--cyan); }
.mega-list{ list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:2px; }
.mega-list a{
  display:flex; align-items:center; gap:10px;
  padding:8px 10px; border-radius:9px; margin-left:-10px;
  font-size:.95rem; font-weight:600; color:var(--ink-2);
  transition:background .18s, color .18s, transform .18s;
}
.mega-list a:hover{ background:var(--brand-50); color:var(--brand-700); transform:translateX(3px); }
.mega-list a .ic{ width:8px; height:8px; border-radius:50%; background:var(--line); flex:none; transition:background .2s; }
.mega-list a:hover .ic{ background:var(--brand-500); }
.mega-feature .pill{ background:rgba(255,255,255,.1); border-color:rgba(255,255,255,.16); color:#fff; align-self:flex-start; }
.mega-feature h4{ color:#fff; font-size:1.2rem; }
.mega-feature p{ color:#b4b4b7; font-size:.92rem; margin:0; }
.mega-feature .link-arrow{ color:var(--brand); }

/* mobile nav */
.hamburger{ display:none; width:46px; height:46px; border:1px solid var(--line); border-radius:12px; background:#fff; align-items:center; justify-content:center; flex-direction:column; gap:5px; cursor:pointer; transition:.25s; }
.hamburger span{ width:20px; height:2px; background:var(--ink); border-radius:2px; transition:.3s; }
.site-header .hamburger{ background:#fff; border-color:var(--line-2); }
.site-header .hamburger span{ background:var(--ink); }
.site-header .hamburger:hover{ background:rgba(0,0,0,.04); }
.mobile-nav{ display:none; }

@media (max-width:1024px){
  .nav-menu, .nav-cta .btn, .topbar-links{ display:none; }
  .hamburger{ display:flex; }

  /* ===== Mobile drawer (premium) ===== */
  .mobile-nav{ display:flex; flex-direction:column; position:fixed; inset:0; z-index:400;
    background:#fff; transform:translateX(100%); transition:transform .42s cubic-bezier(.4,0,.1,1);
    will-change:transform; }
  .mobile-nav.open{ transform:translateX(0); box-shadow:-30px 0 80px rgba(20,20,20,.18); }
  body.menu-open{ overflow:hidden; }

  .m-head{ display:flex; align-items:center; justify-content:flex-end; flex:none;
    padding:16px 20px; border-bottom:1px solid var(--line-2); }
  .m-head .brand-logo{ height:30px; }
  .m-close{ width:46px; height:46px; border-radius:12px; border:1px solid var(--line); background:#fff;
    display:grid; place-items:center; color:var(--ink); cursor:pointer; transition:.2s; }
  .m-close:hover{ background:var(--brand-50); border-color:var(--brand-100); color:var(--brand-700); }
  .m-close svg{ width:21px; height:21px; }

  .m-body{ flex:1 1 auto; overflow-y:auto; -webkit-overflow-scrolling:touch; padding:8px 16px 18px; }

  .m-link, .m-acc-btn{ width:100%; display:flex; align-items:center; gap:14px; padding:14px 8px;
    background:none; border:0; border-bottom:1px solid var(--line-2); text-align:left;
    font-family:var(--font-display); font-weight:700; font-size:1.1rem; color:var(--ink);
    cursor:pointer; transition:background .2s, color .2s; }
  .m-link:active, .m-acc-btn:active{ background:var(--brand-50); }
  @media (hover:hover){ .m-link:hover, .m-acc-btn:hover{ background:var(--brand-50); } }
  .m-ic{ width:42px; height:42px; flex:none; border-radius:12px; background:var(--brand-50);
    border:1px solid var(--brand-100); color:var(--brand-600); display:grid; place-items:center;
    transition:background .25s, color .25s, border-color .25s; }
  .m-ic svg{ width:21px; height:21px; }
  .m-acc-label{ flex:1; }
  .m-acc-btn .caret{ width:20px; height:20px; flex:none; color:var(--muted); transition:transform .3s ease, color .3s; }

  .m-acc.open > .m-acc-btn{ color:var(--brand-700); border-bottom-color:transparent; }
  .m-acc.open > .m-acc-btn .caret{ transform:rotate(180deg); color:var(--brand-600); }
  .m-acc.open > .m-acc-btn .m-ic{ background:linear-gradient(135deg,var(--brand-300),var(--brand-600)); color:#fff; border-color:transparent; }
  .m-acc.open{ border-bottom:1px solid var(--line-2); }

  .m-acc-body{ overflow:hidden; max-height:0; opacity:0; transition:max-height .38s ease, opacity .3s ease; }
  .m-acc.open > .m-acc-body{ max-height:640px; opacity:1; }
  .m-sublist{ list-style:none; margin:0; padding:2px 0 14px 56px; display:flex; flex-direction:column; gap:1px; }
  .m-sublist li a{ display:flex; align-items:center; gap:11px; padding:11px 10px; border-radius:10px;
    color:var(--ink-2); font-size:.99rem; font-weight:500; transition:background .18s, color .18s; }
  .m-sublist li a .ic{ width:6px; height:6px; border-radius:50%; background:var(--brand-300); flex:none; transition:.2s; }
  @media (hover:hover){ .m-sublist li a:hover{ background:var(--brand-50); color:var(--brand-700); } .m-sublist li a:hover .ic{ background:var(--brand-600); transform:scale(1.25); } }

  .m-foot{ flex:none; padding:18px 20px calc(20px + env(safe-area-inset-bottom)); border-top:1px solid var(--line-2); background:#fff; }
  .m-cta{ display:flex; gap:10px; }
  .m-cta .btn{ flex:1; justify-content:center; }
  .m-lang{ display:flex; justify-content:center; gap:8px; margin-top:16px; }
  .m-lang a{ padding:7px 16px; border-radius:22px; border:1px solid var(--line); font-weight:600;
    font-size:.85rem; color:var(--ink-2); transition:.2s; }
  .m-lang a.active{ background:var(--brand-50); border-color:var(--brand-100); color:var(--brand-700); }
  .m-phone{ display:block; text-align:center; margin-top:14px; font-size:.84rem; font-weight:600; color:var(--muted); }
  @media (hover:hover){ .m-phone:hover{ color:var(--brand-700); } }

  @media (prefers-reduced-motion: reduce){ .mobile-nav, .m-acc-body, .m-ic, .caret{ transition:none !important; } }
}

/* ===========================================================
   FADE / reveal animations
   =========================================================== */
.reveal{ opacity:0; transform:translateY(26px); transition:opacity .7s ease, transform .7s cubic-bezier(.2,.7,.2,1); }
.reveal.in{ opacity:1; transform:none; }
.reveal.d1{ transition-delay:.08s; } .reveal.d2{ transition-delay:.16s; }
.reveal.d3{ transition-delay:.24s; } .reveal.d4{ transition-delay:.32s; }
.reveal.d5{ transition-delay:.40s; } .reveal.d6{ transition-delay:.48s; }
.reveal-fade{ opacity:0; transition:opacity .9s ease; }
.reveal-fade.in{ opacity:1; }
@media (prefers-reduced-motion:reduce){
  .reveal,.reveal-fade{ opacity:1 !important; transform:none !important; }
  *{ scroll-behavior:auto !important; }
}

/* ===========================================================
   IMAGE FALLBACK PLACEHOLDERS
   =========================================================== */
.ph{ position:relative; background:var(--bg-soft); overflow:hidden; }
.img-fallback{
  width:100%; height:100%; min-height:inherit;
  background:
    repeating-linear-gradient(135deg, var(--brand-50) 0 12px, #fff 12px 24px);
  display:flex; align-items:center; justify-content:center;
  color:var(--brand-600); font-family:var(--font-mono); font-size:.8rem;
  letter-spacing:.04em; text-align:center; padding:14px; border:1px dashed var(--brand-100);
}
.logo-fallback{
  display:flex; align-items:center; justify-content:center;
  width:100%; height:100%;
  font-family:var(--font-display); font-weight:700; font-size:.95rem;
  color:var(--ink-2); letter-spacing:-.01em; text-align:center; padding:8px;
}

/* ===========================================================
   CARDS / shared blocks
   =========================================================== */
.card{
  background:#fff; border:1px solid var(--line); border-radius:var(--radius);
  padding:30px; box-shadow:var(--shadow-sm);
  transition:transform .3s ease, box-shadow .3s ease, border-color .3s ease;
}
.card-hover:hover{ transform:translateY(-5px); box-shadow:var(--shadow-lg); border-color:var(--brand-100); }
.card .ic-box{
  width:54px; height:54px; border-radius:14px; display:grid; place-items:center;
  background:var(--brand-50); color:var(--brand-600); margin-bottom:18px;
}
.card .ic-box svg{ width:26px; height:26px; }
.card h3{ font-size:1.25rem; margin-bottom:10px; }
.card p{ color:var(--ink-2); font-size:1rem; margin:0; }

.grid{ display:grid; gap:26px; }
.grid-2{ grid-template-columns:repeat(2,1fr); }
.grid-3{ grid-template-columns:repeat(3,1fr); }
.grid-4{ grid-template-columns:repeat(4,1fr); }
@media (max-width:900px){ .grid-3,.grid-4{ grid-template-columns:repeat(2,1fr); } }
@media (max-width:600px){ .grid-2,.grid-3,.grid-4{ grid-template-columns:1fr; } }

/* breadcrumb */
.breadcrumb{ display:flex; align-items:center; gap:9px; font-size:.82rem; font-weight:700; font-family:var(--font-mono); letter-spacing:.04em; text-transform:uppercase; color:var(--muted); }
.breadcrumb a{ color:var(--muted); transition:color .2s; }
.breadcrumb a:hover{ color:var(--brand-600); }
.breadcrumb .crumb-sep{ opacity:.5; }
.breadcrumb .current{ color:var(--brand-600); }

/* feature list with checks */
.checklist{ list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:14px; }
.checklist li{ display:flex; gap:13px; align-items:flex-start; color:var(--ink-2); font-size:1.02rem; }
.checklist li .ck{ flex:none; width:26px; height:26px; border-radius:8px; background:var(--brand-50); color:var(--brand-600); display:grid; place-items:center; margin-top:2px; }
.checklist li .ck svg{ width:15px; height:15px; }
.checklist li b{ color:var(--ink); }

/* ===========================================================
   FOOTER
   =========================================================== */
.site-footer{ background:#fff; color:var(--ink-2); padding-block:0 30px; border-top:1px solid var(--line); }
/* riga centrale: brand · nav · social */
.footer-mid{ display:flex; align-items:flex-start; justify-content:space-between; gap:28px 40px; flex-wrap:wrap; padding:44px 0 32px; border-bottom:1px solid var(--line); }
.footer-mid .footer-nav, .footer-mid .footer-social{ margin-top:6px; }
.site-footer .brand .logo-word{ color:var(--ink); }
.footer-brand{ display:flex; flex-direction:column; gap:4px; }
.footer-blurb{ font-size:.9rem; color:var(--muted); margin:0; max-width:340px; }
.footer-info{ display:flex; align-items:center; flex-wrap:wrap; gap:0 4px; font-style:normal; padding:18px 0; font-size:.82rem; color:var(--muted); border-bottom:1px solid var(--line); }
.footer-info-co{ font-weight:600; color:var(--ink-2); }
.footer-info a{ color:var(--ink-2); transition:color .2s; }
.footer-info a:hover{ color:var(--brand-700); }
.footer-sep{ width:4px; height:4px; border-radius:50%; background:var(--line-2); margin:0 12px; flex:none; }
.footer-nav{ display:flex; flex-wrap:wrap; gap:10px 26px; }
.fn-item{ position:relative; }
.fn-link{ all:unset; box-sizing:border-box; display:inline-flex; align-items:center; gap:6px; font-family:var(--font-display); font-size:.92rem; font-weight:600; color:var(--ink-2); cursor:pointer; transition:color .2s; }
.fn-link:hover{ color:var(--brand-700); }
.fn-caret{ width:13px; height:13px; flex:none; transition:transform .25s ease; }
.fn-drop{ position:absolute; bottom:calc(100% + 14px); left:0; min-width:230px; background:#fff; border:1px solid var(--line); box-shadow:0 18px 50px rgba(20,20,20,.14); padding:20px 18px; opacity:0; visibility:hidden; transform:translateY(8px); transition:opacity .2s ease, transform .2s ease; z-index:30; }
.fn-drop::after{ content:""; position:absolute; top:100%; left:26px; width:12px; height:12px; background:#fff; border-right:1px solid var(--line); border-bottom:1px solid var(--line); transform:translateY(-50%) rotate(45deg); }
/* larghezze in base alla quantità di voci */
.fn-drop-2{ min-width:400px; }
.fn-drop-md{ min-width:440px; }
.fn-drop-wide{ min-width:min(680px,80vw); }
.fn-drop-in{ display:flex; gap:10px 34px; }
.fn-drop-2 .fn-col ul{ column-count:2; column-gap:34px; }
.fn-drop-md .fn-drop-in{ gap:10px 40px; }
.fn-drop-wide .fn-drop-in{ display:grid; grid-template-columns:repeat(3,minmax(160px,1fr)); gap:20px 30px; }
.fn-col{ min-width:0; }
.fn-col ul{ list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:2px; }
.fn-drop-2 .fn-col ul{ display:block; }
.fn-col li{ break-inside:avoid; }
.fn-col a{ display:block; font-size:.865rem; color:var(--ink-2); white-space:nowrap; padding:6px 10px; margin:0 -10px; border-radius:6px; transition:color .18s, background .18s; }
.fn-col a:hover{ color:var(--brand-700); background:var(--brand-50); }
.fn-h{ display:block; font-family:var(--font-display); font-size:.66rem; font-weight:700; text-transform:uppercase; letter-spacing:.1em; color:var(--brand-700); padding-bottom:9px; margin:0 0 6px; border-bottom:1px solid var(--line); }
.fn-item:hover .fn-drop, .fn-item.open .fn-drop{ opacity:1; visibility:visible; transform:translateY(0); }
.fn-item:hover .fn-caret, .fn-item.open .fn-caret{ transform:rotate(180deg); }
.footer-social{ display:flex; gap:10px; }
.footer-social a{ width:38px; height:38px; border-radius:10px; border:1px solid var(--line-2); color:var(--ink-2); display:grid; place-items:center; transition:.2s; }
.footer-social a:hover{ background:var(--brand-600); border-color:var(--brand-600); color:#fff; }
.footer-social svg{ width:18px; height:18px; }
.footer-bottom{ display:flex; align-items:center; justify-content:space-between; gap:18px; padding-top:22px; flex-wrap:wrap; font-size:.82rem; color:var(--muted); }
.footer-bottom .legal-links{ display:flex; gap:20px; flex-wrap:wrap; }
.footer-bottom a:hover{ color:var(--brand-700); }
@media (max-width:720px){
  .footer-mid{ flex-direction:column; align-items:flex-start; gap:22px; }
  .footer-info{ gap:8px 4px; }
  .footer-info .footer-sep{ margin:0 8px; }
  .footer-bottom{ flex-direction:column; align-items:flex-start; gap:10px; }
  .footer-nav{ flex-direction:column; gap:0; width:100%; }
  .fn-item{ width:100%; border-top:1px solid var(--line); }
  .fn-link{ width:100%; justify-content:space-between; padding:14px 2px; }
  .fn-drop{ position:static; min-width:0; width:auto; border:0; box-shadow:none; padding:0 0 14px 14px; opacity:1; visibility:visible; transform:none; transition:none; display:none; }
  .fn-drop::after{ display:none; }
  .fn-drop-2, .fn-drop-md, .fn-drop-wide{ min-width:0; }
  .fn-drop-in, .fn-drop-wide .fn-drop-in{ display:flex; flex-direction:column; gap:14px; }
  .fn-drop-2 .fn-col ul{ column-count:1; }
  .fn-item:hover .fn-drop{ display:none; }
  .fn-item.open .fn-drop{ display:block; }
  .fn-col a{ white-space:normal; margin:0; padding:6px 0; }
}

/* ===========================================================
   FORMS
   =========================================================== */
.field{ display:flex; flex-direction:column; gap:7px; margin-bottom:18px; }
.field label{ font-size:.86rem; font-weight:700; color:var(--ink); }
.field label .req{ color:var(--brand-600); }
.field input, .field textarea{
  font-family:inherit; font-size:1rem; color:var(--ink);
  padding:14px 16px; border:1px solid var(--line); border-radius:0; background:#fff;
  transition:border-color .2s, box-shadow .2s;
}
.field input:focus, .field textarea:focus{ outline:none; border-color:var(--brand-500); box-shadow:0 0 0 3px var(--brand-50); }
.field input:user-invalid, .field textarea:user-invalid{ border-color:#E24B4A; box-shadow:0 0 0 3px rgba(226,75,74,.12); }
.field textarea{ resize:vertical; min-height:120px; }
.form-secure{ display:flex; align-items:center; justify-content:center; gap:7px; margin:14px 0 0; font-size:.82rem; color:var(--muted); }
.form-secure svg{ width:15px; height:15px; flex:none; }
.check-row{ display:flex; gap:11px; align-items:flex-start; font-size:.9rem; color:var(--ink-2); }
.check-row input{ margin-top:3px; width:18px; height:18px; accent-color:var(--brand-600); flex:none; }
.field-2{ display:grid; grid-template-columns:1fr 1fr; gap:0 16px; }
.nl-required{ margin:0 0 18px; font-size:.82rem; color:var(--muted); }
.nl-required .req{ color:var(--brand-600); }
@media (max-width:520px){ .field-2{ grid-template-columns:1fr; } }

/* newsletter: layout a due colonne */
.nl-grid{ display:grid; grid-template-columns:1.05fr .95fr; gap:clamp(34px,5vw,72px); align-items:center; }
.nl-intro h2{ margin:14px 0 0; }
.nl-intro .lead{ margin-top:14px; }
.nl-benefits{ list-style:none; margin:30px 0 0; padding:0; display:flex; flex-direction:column; gap:20px; }
.nl-benefit{ display:flex; gap:15px; align-items:flex-start; }
.nl-benefit .ic{ width:44px; height:44px; border-radius:12px; background:var(--brand-50); color:var(--brand-600); display:grid; place-items:center; flex:none; }
.nl-benefit .ic svg{ width:21px; height:21px; }
.nl-benefit b{ display:block; font-family:var(--font-display); font-size:1.02rem; letter-spacing:-.01em; margin-bottom:2px; }
.nl-benefit span{ color:var(--muted); font-size:.92rem; line-height:1.5; }
.nl-freq{ display:flex; align-items:center; gap:8px; margin:28px 0 0; font-size:.86rem; color:var(--muted); }
.nl-freq svg{ width:17px; height:17px; color:var(--brand-600); flex:none; }
@media (max-width:840px){ .nl-grid{ grid-template-columns:1fr; gap:40px; } }

/* contatti: mappa nella colonna a fianco al form */
.contact-map{ position:relative; margin-top:22px; overflow:hidden; background:var(--bg-soft); flex:1 1 auto; min-height:320px; }
.contact-map iframe{ width:100%; height:100%; min-height:320px; border:0; display:block; }
.ct-stats{ display:grid; grid-template-columns:repeat(3,1fr); gap:30px; text-align:center; }
.ct-stat{ padding:0 12px; }
.ct-stat + .ct-stat{ border-left:1px solid var(--line); }
.ct-intro{ margin-top:26px; }
.ct-intro p{ font-size:1.08rem; line-height:1.75; color:var(--ink-2); margin:0 0 18px; }
.ct-intro p:last-child{ margin-bottom:0; }
.ct-why{ display:grid; grid-template-columns:repeat(3,1fr); gap:24px; margin-top:30px; }
.ct-why-card{ background:#fff; border:1px solid var(--line); padding:30px 26px; }
.ct-why-card .cf-ic{ margin-bottom:16px; }
.ct-why-card b{ font-family:var(--font-display); font-size:1.08rem; display:block; margin-bottom:8px; }
.ct-why-card p{ color:var(--muted); font-size:.95rem; margin:0; line-height:1.55; }
@media (max-width:760px){ .ct-stats{ grid-template-columns:1fr; gap:28px; } .ct-stat + .ct-stat{ border-left:none; } .ct-why{ grid-template-columns:1fr; } }
/* contatti: foto sede */
.sede-photo{ position:relative; overflow:hidden; background:var(--bg-soft); }
.sede-photo-wide{ height:420px; }
.sede-photo::after{ content:"Foto Google da inserire"; position:absolute; inset:0; display:grid; place-items:center; color:var(--muted); font-weight:600; font-size:.9rem; z-index:0; }
.sede-photo img{ position:relative; z-index:1; width:100%; height:100%; object-fit:cover; display:block; }
@media (max-width:760px){ .sede-photo-wide{ height:300px; } }

/* popup overlay (termini, ecc.) */
.popup{ position:fixed; inset:0; z-index:1000; display:none; align-items:center; justify-content:center; padding:20px; background:rgba(10,10,10,.6); }
.popup.open{ display:flex; }
.popup-card{ position:relative; background:#fff; width:100%; max-width:820px; max-height:86vh; overflow:auto; border-radius:var(--radius-lg); padding:clamp(28px,3.4vw,48px); box-shadow:0 40px 80px -28px rgba(0,0,0,.55); }
.popup-close{ position:absolute; top:14px; right:14px; width:38px; height:38px; border:none; background:var(--bg-soft); border-radius:50%; cursor:pointer; display:grid; place-items:center; color:var(--ink); transition:.2s; }
.popup-close:hover{ background:var(--brand-50); color:var(--brand-700); }
.popup-close svg{ width:18px; height:18px; }
.popup-card h3{ font-family:var(--font-display); font-size:1.4rem; letter-spacing:-.01em; margin:0 0 16px; padding-right:34px; }
.popup-body{ color:var(--ink-2); font-size:.95rem; line-height:1.65; }
.popup-body p{ margin:0 0 1em; }
.popup-body p:last-child{ margin-bottom:0; }
.popup-actions{ margin-top:24px; }

/* popup di conferma invio form */
.popup-success .popup-card{ max-width:460px; text-align:center; padding:clamp(34px,4vw,52px) clamp(26px,3.4vw,44px); animation:popIn .35s ease; }
.popup-success .okic{ width:72px; height:72px; margin:0 auto 20px; border-radius:50%; background:var(--brand-50); color:var(--brand-600); display:grid; place-items:center; }
.popup-success .okic svg{ width:36px; height:36px; }
.popup-success h3{ padding-right:0; font-size:1.55rem; margin:0 0 10px; }
.popup-success p{ color:var(--ink-2); font-size:1rem; line-height:1.6; margin:0 0 24px; }
.popup-success .popup-actions{ margin-top:0; }
@keyframes popIn{ from{ opacity:0; transform:translateY(12px) scale(.97); } to{ opacity:1; transform:none; } }

/* stat number */
.stat-num{ font-family:var(--font-display); font-weight:700; font-size:clamp(2.4rem,4vw,3.4rem); line-height:1; letter-spacing:-.03em; color:var(--brand-600); }
.stat-num.on-dark{ color:#fff; }
.stat-label{ color:var(--ink-2); font-size:.96rem; margin-top:8px; }
.stat-label.on-dark{ color:#b4b4b7; }

/* stat rings (donut graficati) */
.stat-ring-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:clamp(28px,4vw,52px); }
.stat-ring{ margin:0; display:flex; flex-direction:column; align-items:center; text-align:center; }
.stat-ring svg{ width:150px; height:150px; transform:rotate(-90deg); }
.stat-ring .ring-track{ fill:none; stroke:var(--brand-50); stroke-width:12; }
.stat-ring .ring-fill{ fill:none; stroke:var(--brand); stroke-width:12; stroke-linecap:round; transition:stroke-dasharray 1s ease; }
.stat-ring .ring-num{ transform:rotate(90deg); transform-origin:60px 60px; text-anchor:middle; font-family:var(--font-display); font-weight:800; font-size:26px; fill:var(--ink); letter-spacing:-.02em; }
.stat-ring figcaption{ margin-top:16px; max-width:280px; color:var(--ink-2); font-size:.96rem; line-height:1.5; }
.stat-ring figcaption b{ color:var(--ink); }
@media (max-width:760px){ .stat-ring-grid{ grid-template-columns:1fr; gap:34px; } }

/* marquee */
.marquee{ overflow:hidden; -webkit-mask:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent); mask:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent); }
.marquee-track{ display:flex; gap:28px; width:max-content; animation:marquee 140s linear infinite; }
@keyframes marquee{ to{ transform:translateX(-50%); } }
.logo-cell{
  flex:none; width:160px; height:160px; background:#fff; border:0px solid var(--line);
  border-radius:0px; display:flex; align-items:center; justify-content:center; padding:8px;
  pointer-events:none; cursor:default;
}
.logo-cell img{ max-width:100%; max-height:160px; width:auto; height:auto; object-fit:contain; margin:auto; }
.clients-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:14px; align-items:center; }
body[data-nav="clienti"] .clients-grid{ margin-top:40px; }
.clients-grid .logo-cell{ width:100%; height:170px; padding:6px; }
.clients-grid .logo-cell img{ width:92%; height:92%; max-width:none; max-height:none; object-fit:contain; }
@media (max-width:980px){ .clients-grid{ grid-template-columns:repeat(3,1fr); } }
@media (max-width:600px){ .clients-grid{ grid-template-columns:repeat(2,1fr); } }

/* ===========================================================
   PAGE TEMPLATES (module / industry / service / form)
   =========================================================== */
.subhero{ position:relative; overflow:hidden; padding-block:clamp(34px,5vw,64px) clamp(48px,6vw,80px); }
.subhero::before{ content:""; position:absolute; inset:0; z-index:-2;
  background:radial-gradient(60% 80% at 92% 0%, var(--cyan-50) 0%, transparent 55%), radial-gradient(50% 70% at 0% 0%, var(--brand-50) 0%, transparent 55%), #fff; }
.subhero::after{ content:""; position:absolute; inset:0; z-index:-1; opacity:.45;
  background-image:radial-gradient(var(--brand-100) 1.1px, transparent 1.1px); background-size:30px 30px;
  -webkit-mask:linear-gradient(180deg,#000,transparent 80%); mask:linear-gradient(180deg,#000,transparent 80%); }
.subhero-grid{ display:grid; grid-template-columns:1.05fr .95fr; gap:48px; align-items:center; }
.subhero h1{ margin:18px 0 0; font-size:clamp(2.1rem,4.4vw,3.4rem); }
.subhero h1 .accent{ color:var(--brand-600); }
.subhero .sub-h3{ font-family:var(--font-display); font-weight:500; font-size:clamp(1.15rem,1.9vw,1.5rem); color:var(--ink-2); margin-top:18px; line-height:1.32; max-width:560px; letter-spacing:-.01em; }
.subhero .lead{ margin-top:18px; max-width:540px; }
.subhero .hero-actions{ display:flex; gap:13px; margin-top:28px; flex-wrap:wrap; }
/* full-bleed page banner con foto di sfondo + titolo sopra */
.page-banner{ position:relative; padding-block:clamp(54px,9vh,96px); background:#141414 url('img/storia-banner.jpg') center/cover no-repeat; overflow:hidden; }
.page-banner::before{ content:""; position:absolute; inset:0; background:linear-gradient(90deg, rgba(8,8,8,.55) 0%, rgba(8,8,8,.32) 58%, rgba(8,8,8,.15) 100%); }
.page-banner .container{ position:relative; z-index:1; }
.page-banner .eyebrow.on-dark{ color:var(--brand); }
.page-banner h1{ color:#fff; margin:16px 0 0; font-size:clamp(2.4rem,5vw,3.8rem); }
.page-banner h1 .accent{ color:var(--brand); }
.page-banner .banner-sub{ color:rgba(255,255,255,.9); margin-top:18px; max-width:620px; font-family:var(--font-display); font-weight:500; font-size:clamp(1.1rem,1.8vw,1.45rem); line-height:1.38; letter-spacing:-.01em; }
/* foto di sfondo differenziate per sezione */
.page-banner.bn-about{ background-image:url('img/storia-banner.jpg'); }
.page-banner.bn-clienti{ background-image:url('img/clienti-banner.jpg'); }
.page-banner.bn-servizi{ background-image:url('img/banner-servizi-1.jpg'); }
.page-banner.bn-industrie{ background-image:url('img/hero-street.jpg'); }
.page-banner.bn-moduli{ background-image:url('img/hero-phone.jpg'); }
.page-banner.bn-storelocator{ background-image:url('img/store-locator-banner.jpg'); }
.page-banner.bn-wholesale{ background-image:url('img/wholesale-banner.jpg'); }
.page-banner.bn-reviews{ background-image:url('img/reviews-banner.jpg'); }
.page-banner.bn-analytics{ background-image:url('img/analytics-banner.jpg'); }
.page-banner.bn-localads{ background-image:url('img/banner-localads-1-1.jpg'); }
.page-banner.bn-conversion{ background-image:url('img/banner-covertion-1.jpg'); }
.page-banner.bn-calligaris{ background-image:url('img/calligaris-banner.jpg'); }
.page-banner.bn-magazine{ background-image:url('img/magazine-banner.jpg'); }
.page-banner.bn-contact{ background-image:url('img/hero-mobile.png'); }
/* success manager — layout due colonne: testo + card a sinistra, illustrazione a destra */
.sm-split{ display:grid; grid-template-columns:1.15fr .85fr; gap:48px; align-items:start; }
.sm-left .eyebrow{ margin-bottom:12px; }
.sm-cards{ display:flex; flex-direction:column; gap:12px; margin-top:26px; }
.sm-card{ display:flex; gap:16px; align-items:flex-start; background:#fff; border:1px solid var(--line); padding:18px 20px; transition:border-color .2s, transform .2s; }
.sm-card:hover{ border-color:var(--brand); transform:translateX(4px); }
.sm-card .sm-ic{ flex:none; width:44px; height:44px; display:flex; align-items:center; justify-content:center; background:var(--brand-50); color:var(--brand-700); }
.sm-card .sm-ic svg{ width:22px; height:22px; }
.sm-card h3{ font-size:1rem; margin:0 0 4px; letter-spacing:-.01em; }
.sm-card p{ font-size:.9rem; line-height:1.5; color:var(--ink-2); margin:0; }
.sm-media{ position:sticky; top:100px; }
.sm-media img{ width:100%; height:auto; display:block; }
.sm-media .sm-ph{ display:flex; align-items:center; justify-content:center; aspect-ratio:4/5; background:var(--brand-50); border:1px dashed var(--brand-300); color:var(--brand-700); font-weight:600; font-size:.9rem; text-align:center; padding:20px; }
@media (max-width:900px){
  .sm-split{ grid-template-columns:1fr; gap:32px; }
  .sm-media{ position:static; order:-1; max-width:420px; }
}
/* sezione strumenti — fondo arancione sfumato + card bianche con icone */
.tools-section{ position:relative; overflow:hidden; padding-block:70px; background:linear-gradient(135deg, var(--brand-100) 0%, var(--brand-300) 55%, var(--brand) 115%); color:var(--ink); }
.tools-section::before{ content:""; position:absolute; inset:0; opacity:.5; background-image:radial-gradient(rgba(0,0,0,.10) 1.2px, transparent 1.2px); background-size:26px 26px; -webkit-mask:linear-gradient(180deg,#000,transparent 92%); mask:linear-gradient(180deg,#000,transparent 92%); }
.tools-section .container{ position:relative; z-index:1; }
.tools-head{ max-width:720px; margin-inline:auto; }
.tools-head .eyebrow{ color:var(--ink); }
.tools-head .eyebrow::before{ background:var(--ink); }
.tools-head h2{ color:var(--ink); margin-top:14px; font-size:clamp(1.9rem,3.4vw,2.9rem); }
.tools-head p{ color:rgba(20,20,20,.74); margin-top:16px; font-size:1.08rem; }
.tools-grid{ display:grid; grid-template-columns:repeat(2,1fr); gap:18px; margin-top:48px; }
.tool-card{ background:#fff; border:1px solid var(--line); padding:30px; box-shadow:var(--shadow-sm); transition:transform .25s ease, border-color .25s ease, box-shadow .25s ease; }
.tool-card:hover{ transform:translateY(-5px); border-color:var(--brand); box-shadow:var(--shadow-lg); }
.tool-ic{ display:grid; place-items:center; width:54px; height:54px; background:var(--brand-50); color:var(--brand-600); border:1px solid var(--brand-100); border-radius:14px; margin-bottom:18px; }
.tool-ic svg{ width:26px; height:26px; }
.tool-card h3{ color:var(--ink); font-size:1.25rem; margin-bottom:10px; }
.tool-card p{ color:var(--ink-2); font-size:1rem; margin:0; }
@media (max-width:760px){ .tools-grid{ grid-template-columns:1fr; } }
/* timeline storia */
.timeline{ list-style:none; margin:46px 0 0; padding:0; position:relative; max-width:780px; }
.timeline::before{ content:""; position:absolute; left:9px; top:10px; bottom:10px; width:2px; background:linear-gradient(180deg, var(--brand) 0%, var(--brand-100) 100%); }
.tl-item{ position:relative; padding:0 0 34px 56px; }
.tl-item:last-child{ padding-bottom:0; }
.tl-item::before{ content:""; position:absolute; left:0; top:3px; width:20px; height:20px; border-radius:50%; background:#fff; border:4px solid var(--brand); box-sizing:border-box; }
.tl-year{ display:inline-block; font-family:var(--font-display); font-weight:800; color:var(--brand-600); font-size:.95rem; letter-spacing:.03em; text-transform:uppercase; }
.tl-content h3{ font-size:1.3rem; margin:5px 0 8px; }
.tl-content p{ color:var(--ink-2); margin:0; max-width:640px; }
/* decorazione animata a destra della sezione origini */
.origins-section{ position:relative; overflow:hidden; }
.origins-section .container{ position:relative; z-index:1; }
.origins-anim{ position:absolute; top:0; right:0; bottom:0; width:60%; min-width:360px; pointer-events:none; z-index:0; display:flex; align-items:center; justify-content:flex-end; }
.origins-illustration{ width:clamp(470px,57vw,780px); height:auto; margin-right:3%; animation:origins-float 7s ease-in-out infinite; }
@keyframes origins-float{ 0%,100%{ transform:translateY(0); } 50%{ transform:translateY(-12px); } }

@media (max-width:860px){ .origins-anim{ position:static; width:100%; min-width:0; justify-content:center; margin-top:8px; }
  .origins-illustration{ width:min(420px,86%); margin-right:0; } }
@media (prefers-reduced-motion: reduce){ .origins-illustration{ animation:none !important; } }

/* curare strip */
.cura-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:18px; }
.cura-item{ background:#fff; border:1px solid var(--line); border-radius:var(--radius); padding:22px; box-shadow:var(--shadow-sm); transition:.25s; }
.cura-item:hover{ transform:translateY(-4px); box-shadow:var(--shadow); border-color:var(--brand-100); }
.cura-item .ci-ic{ width:46px; height:46px; border-radius:12px; background:var(--brand-50); color:var(--brand-600); display:grid; place-items:center; margin-bottom:14px; }
.cura-item .ci-ic svg{ width:23px; height:23px; }
.cura-item h4{ font-size:1.02rem; margin:0 0 6px; }
.cura-item p{ font-size:1rem; color:var(--ink-2); margin:0; }
@media (max-width:860px){ .cura-grid{ grid-template-columns:1fr 1fr; } }

/* big numbered feature rows */
.featrow{ display:grid; grid-template-columns:auto 1fr; gap:22px; padding:28px 0; border-top:1px solid var(--line); align-items:flex-start; }
.featrow:last-child{ border-bottom:1px solid var(--line); }
.featrow .fr-n{ font-family:var(--font-mono); font-weight:700; font-size:1.1rem; color:var(--brand-600); }
.featrow h3{ font-size:1.3rem; margin:0 0 8px; }
.featrow p{ margin:0; color:var(--ink-2); }

/* quote block */
.quote-block{ background:linear-gradient(155deg,var(--bg-navy),var(--bg-navy-2)); color:#fff; border-radius:var(--radius-lg); padding:clamp(34px,5vw,64px); position:relative; overflow:hidden; }
.quote-block::before{ content:"\201C"; position:absolute; top:-10px; left:30px; font-family:var(--font-display); font-size:10rem; color:rgba(255,255,255,.07); line-height:1; }
.quote-block blockquote{ position:relative; margin:0; font-family:var(--font-display); font-weight:500; font-size:clamp(1.3rem,2.4vw,2rem); line-height:1.32; letter-spacing:-.02em; max-width:880px; }
.quote-block .who{ display:flex; align-items:center; gap:14px; margin-top:28px; }
.quote-block .who .logo-cell{ width:86px; height:50px; filter:none; opacity:1; }
.quote-block .who b{ display:block; font-family:var(--font-display); color:#fff; }
.quote-block .who small{ color:#e9e9eb; }

/* magazine / focus block */
.mag-grid{ display:grid; grid-template-columns:.85fr 1.15fr; border-radius:var(--radius-lg); overflow:hidden;  background:#fff; }
.mag-media{ position:relative; min-height:300px; background:var(--bg-navy); }
.mag-media img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.mag-text{ padding:clamp(26px,4vw,44px); display:flex; flex-direction:column; justify-content:center; }
.mag-text .pill{ align-self:flex-start; margin-bottom:14px; }

/* industry two-column lists */
.ind-cols{ display:grid; grid-template-columns:1fr 1fr; gap:26px; }
.ind-panel{ background:#fff; border:1px solid var(--line); border-radius:var(--radius-lg); padding:32px; box-shadow:var(--shadow-sm); }
.ind-panel h3{ display:flex; align-items:center; gap:11px; font-size:1.3rem; margin:0 0 20px; }
.ind-panel h3 .hp{ width:38px; height:38px; border-radius:10px; display:grid; place-items:center; background:var(--brand-50); color:var(--brand-600); }
.ind-panel h3 .hp svg{ width:20px; height:20px; }
.tag-list{ display:flex; flex-wrap:wrap; gap:9px; }
.tag-list .tg{ display:inline-flex; align-items:center; gap:7px; padding:9px 14px; border-radius:999px; background:var(--bg-soft); border:1px solid var(--line); font-size:.88rem; font-weight:600; color:var(--ink-2); transition:.2s; }
.tag-list .tg:hover{ background:var(--brand-50); border-color:var(--brand-100); color:var(--brand-700); }
.tag-list .tg .d{ width:6px; height:6px; border-radius:50%; background:var(--brand-500); }
.ind-panel.is-prod{ border-top:5px solid var(--brand); }
.ind-panel.is-serv{ border-top:5px solid var(--ink); }
.ind-head{ display:flex; align-items:center; gap:16px; margin:0 0 22px; padding:0 0 18px; border-bottom:1px solid var(--line-2); }
.ind-head .ind-graphic{ width:52px; height:52px; flex:0 0 auto; }
.ind-head .ind-graphic svg{ width:52px; height:52px; display:block; }
.ind-head .ind-illu{ width:125px; height:125px; flex:0 0 auto; display:grid; place-items:center; }
.ind-head .ind-illu img{ width:125px; height:125px; object-fit:contain; }
.ind-head h3{ display:block; margin:0; font-size:1.6rem; line-height:1.2; }
.ind-head .ind-sub{ display:block; margin-top:3px; font-size:.82rem; font-weight:500; color:var(--muted); }
@media (max-width:760px){ .ind-cols{ grid-template-columns:1fr; } }

/* Focus band (banda numeri) + spotlight modulo — industrie/servizi */
.rt-band{ background:var(--brand-50); }
.rt-stat-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:40px; }
.rt-stat{ position:relative; }
.rt-stat + .rt-stat{ padding-left:40px; border-left:1px solid var(--brand-100); }
.rt-stat p{ color:var(--ink-2); margin:12px 0 0; font-size:1rem; line-height:1.5; }
.rt-spot-sec{ background:linear-gradient(180deg, #E9E9EB 0%, var(--bg-soft) 55%, #fff 100%); padding-top:70px; }
.rt-spot-sec .rt-spot.is-9{ margin-top:0; }
.rt-spot{ display:grid; grid-template-columns:1.02fr .98fr; gap:52px; align-items:center; }
.rt-spot-media{ position:relative; }
.rt-spot-media img{ width:100%; display:block; border:1px solid var(--line); }
.rt-spot-media .rt-spot-badge{ position:absolute; top:18px; left:18px; background:var(--brand); color:#fff; font-size:.78rem; font-weight:700; letter-spacing:.02em; padding:8px 14px; }
.rt-spot ul.rt-feats{ list-style:none; margin:22px 0 26px; padding:0; display:grid; gap:12px; }
.rt-spot ul.rt-feats li{ display:flex; align-items:flex-start; gap:11px; color:var(--ink-2); font-size:.98rem; line-height:1.45; }
.rt-spot ul.rt-feats li svg{ flex:none; width:20px; height:20px; color:var(--brand-600); margin-top:1px; }
@media (max-width:860px){ .rt-spot{ grid-template-columns:1fr; gap:30px; } }
@media (max-width:760px){ .rt-stat-grid{ grid-template-columns:1fr; gap:26px; } .rt-stat + .rt-stat{ padding-left:0; border-left:0; padding-top:26px; border-top:1px solid var(--brand-100); } }

/* CTA band */
.cta-band{ background:radial-gradient(85% 130% at 100% 0%, rgba(240,155,14,.32), transparent 58%), var(--ink); color:#fff; border-radius:var(--radius-lg); padding:clamp(34px,5vw,58px); display:grid; grid-template-columns:1.4fr auto; gap:30px; align-items:center; position:relative; overflow:hidden; }
.cta-band::before{ content:""; position:absolute; inset:0; opacity:.45; background-image:radial-gradient(rgba(255,255,255,.14) 1px,transparent 1px); background-size:24px 24px; }
.cta-band h2{ color:#fff; position:relative; }
.cta-band p{ color:rgba(255,255,255,.9); position:relative; margin:12px 0 0; max-width:520px; }
.cta-band .cta-actions{ position:relative; display:flex; gap:12px; flex-wrap:wrap; }
@media (max-width:760px){ .cta-band{ grid-template-columns:1fr; } }

/* icona feature riutilizzabile */
.feat-ic{ display:inline-grid; place-items:center; width:48px; height:48px; border-radius:13px; background:var(--brand-50); color:var(--brand-600); border:1px solid var(--brand-100); }
.feat-ic svg{ width:23px; height:23px; }
.card .feat-ic{ margin-bottom:13px; }

/* card "A chi ci rivolgiamo" */
.grid.audience-grid{ gap:20px; }
.aud-card{ padding:30px 22px; border-radius:0; position:relative; overflow:hidden; }
.aud-card::before{ content:""; position:absolute; inset:0 0 auto 0; height:4px; background:linear-gradient(90deg,var(--brand-300),var(--brand-600)); opacity:0; transition:opacity .3s ease; }
.aud-card:hover{ transform:translateY(-6px); box-shadow:var(--shadow-lg); border-color:var(--brand-100); }
.aud-card:hover::before{ opacity:1; }
.aud-card .feat-ic{ width:56px; height:56px; border-radius:50%; margin:0 auto 16px; transition:background .3s ease, color .3s ease, border-color .3s ease, transform .3s ease; }
.aud-card:hover .feat-ic{ background:linear-gradient(135deg,var(--brand-300),var(--brand-600)); color:#fff; border-color:transparent; transform:scale(1.06); }
.aud-card h3{ font-size:1.08rem; margin:0 0 7px; color:var(--ink); }
.aud-card p{ font-size:.88rem; color:var(--muted); margin:0; line-height:1.45; }
@media (max-width:980px){ .grid.audience-grid{ grid-template-columns:repeat(3,1fr); } }
@media (max-width:620px){ .grid.audience-grid{ grid-template-columns:repeat(2,1fr); gap:14px; } .aud-card{ padding:24px 16px; } }
@media (max-width:400px){ .grid.audience-grid{ grid-template-columns:1fr; } }

/* blocchi editoriali etichetta + testo */
.info-stack{ margin-top:clamp(28px,4vw,44px); }
.info-block{ display:grid; grid-template-columns:230px 1fr; gap:clamp(16px,3vw,40px); padding:clamp(24px,3vw,34px) 0; border-top:1px solid var(--line); align-items:start; }
.info-block:last-child{ border-bottom:1px solid var(--line); }
.ib-label .feat-ic{ margin-bottom:13px; }
.info-block h3{ margin:0; font-size:1.3rem; color:var(--brand-700); letter-spacing:-.01em; }
.info-block p{ margin:0; color:var(--ink-2); font-size:1.05rem; line-height:1.62; }
@media (max-width:760px){ .info-block{ grid-template-columns:1fr; gap:8px; } }

/* CTA full-bleed a fondo arancione leggero con icona grande */
.cta-soft{ position:relative; overflow:hidden; background:linear-gradient(120deg, #FDEFD3 0%, #FBE3BC 52%, #F7D49A 100%); color:var(--ink); padding-block:clamp(54px,8vw,70px); }
.cta-soft .container{ position:relative; z-index:1; }
.cta-soft-inner{ display:grid; grid-template-columns:1fr auto; gap:clamp(28px,5vw,64px); align-items:center; }
.cta-soft h2{ color:var(--ink); }
.cta-soft p{ color:var(--ink-2); margin:12px 0 0; max-width:560px; }
.cta-soft .cta-actions{ display:flex; gap:12px; flex-wrap:wrap; margin-top:24px; }
.cta-soft-art{ width:clamp(320px,34vw,392px); }

/* checklist sotto al titolo */
.cta-list{ list-style:none; margin:20px 0 0; padding:0; display:grid; gap:11px; }
.cta-list li{ position:relative; padding-left:30px; color:var(--ink-2); font-size:1rem; line-height:1.45; }
.cta-list li::before{ content:""; position:absolute; left:0; top:1px; width:19px; height:19px; border-radius:50%; background:var(--brand-50); border:1px solid var(--brand-100); }
.cta-list li::after{ content:""; position:absolute; left:6px; top:6px; width:7px; height:4px; border-left:2px solid var(--brand-600); border-bottom:2px solid var(--brand-600); transform:rotate(-45deg); }

/* card store in stile landing (angoli vivi, accento arancione) */
.lp-card{ background:#fff; border:1px solid #EFE8DA; box-shadow:0 40px 90px -30px rgba(120,75,5,.40); overflow:hidden; animation:cta-cardfloat 6s ease-in-out infinite; }
@keyframes cta-cardfloat{ 0%,100%{ transform:translateY(0); } 50%{ transform:translateY(-9px); } }
.lp-bar{ display:flex; align-items:center; gap:8px; padding:13px 16px; border-bottom:1px solid #EFE8DA; }
.lp-dot{ width:9px; height:9px; border-radius:50%; background:#E6DCC9; }
.lp-bar .lp-t{ font-size:13px; font-weight:600; color:#4A4233; margin-left:6px; }
.lp-body{ padding:18px 18px 20px; }
.lp-top{ display:grid; grid-template-columns:1fr 116px; gap:14px; align-items:start; }
.lp-top h4{ font-size:21px; font-weight:700; margin:0; color:var(--ink); letter-spacing:-.01em; }
.lp-addr{ font-size:13.5px; color:#6E6555; margin-top:4px; }
.lp-open{ font-size:13px; margin-top:8px; color:#4A4233; }
.lp-open b{ color:#14A35B; } .lp-open .sep{ color:#9C9484; }
.lp-rate{ display:flex; align-items:center; gap:7px; margin-top:8px; font-size:13.5px; color:var(--ink); }
.lp-rate .score{ font-weight:700; } .lp-rate .stars{ color:#F5A623; letter-spacing:1px; font-size:13px; } .lp-rate .cnt{ color:#9C9484; }
.lp-photo{ background:repeating-linear-gradient(135deg,#FBF3E4 0,#FBF3E4 9px,#F6EAD6 9px,#F6EAD6 18px); display:grid; place-items:center; height:96px; color:#9C9484; font-family:ui-monospace,Menlo,monospace; font-size:11px; text-align:center; }
.lp-chips{ display:flex; gap:8px; margin-top:14px; flex-wrap:wrap; }
.lp-chip{ font-size:12.5px; font-weight:600; padding:7px 13px; }
.lp-chip.fill{ background:var(--brand); color:#fff; }
.lp-chip.line{ background:#fff; border:1px solid #EFE8DA; color:#4A4233; }
.lp-amen{ display:grid; grid-template-columns:repeat(4,1fr); gap:10px; margin-top:16px; }
.lp-amen .amen{ border:1px solid #EFE8DA; padding:11px 8px; text-align:center; }
.lp-amen .ic{ display:block; width:22px; height:22px; margin:0 auto 7px; color:var(--brand); }
.lp-amen .ic svg{ width:22px; height:22px; display:block; }
.lp-amen .amen span{ font-size:10.5px; color:#6E6555; line-height:1.25; display:block; }
.lp-map{ position:relative; margin-top:14px; height:118px; overflow:hidden; background:linear-gradient(#EEF3F0,#E7EEF4); }
.lp-map .roads{ position:absolute; inset:0; opacity:.5; }
.lp-map .pin{ position:absolute; left:50%; top:50%; transform:translate(-50%,-62%); width:34px; height:34px; color:var(--brand); }
@media (prefers-reduced-motion: reduce){ .lp-card{ animation:none; } }
@media (max-width:860px){ .cta-soft-inner{ grid-template-columns:1fr; } .cta-soft-art{ display:none; } }

/* CTA "Richiedi demo" condivisa — titolo + sottotitolo + 3 plus + bottone in riga */
.cta-demo{ background:linear-gradient(120deg,#FDEFD3 0%,#FBE3BC 60%,#F7D49A 100%); padding-block:clamp(52px,8vw,96px); }
.cta-demo-inner{ display:flex; align-items:center; gap:clamp(24px,4vw,48px); flex-wrap:wrap; }
.cta-demo-text{ flex:1 1 220px; }
.cta-demo-title{ margin:0; font-size:clamp(1.3rem,2.2vw,1.85rem); line-height:1.2; color:var(--ink); }
.cta-demo-sub{ margin:8px 0 0; color:var(--ink-2); font-size:.98rem; line-height:1.5; max-width:360px; }
.cta-demo-plus{ flex:1 1 260px; list-style:none; margin:0; padding:0 0 0 clamp(24px,3vw,40px); display:flex; flex-direction:column; gap:8px; border-left:1px solid rgba(20,20,20,.14); }
.cta-demo-plus li{ display:flex; gap:11px; align-items:flex-start; font-size:.95rem; color:var(--ink-2); }
.cta-demo-plus li .ck{ flex:none; width:20px; height:20px; border-radius:0; background:transparent; color:var(--brand-600); display:grid; place-items:center; }
.cta-demo-plus li .ck svg{ width:16px; height:16px; }
.cta-demo .cta-actions{ flex:none; }
@media (max-width:860px){ .cta-demo-inner{ flex-direction:column; align-items:flex-start; gap:22px; } .cta-demo-text{ flex:none; width:100%; } .cta-demo-plus{ flex:none; border-left:0; padding-left:0; } }
@media (max-width:560px){
  .cta-demo{ padding-block:44px; }
  .cta-demo-inner{ gap:20px; }
  .cta-demo-text{ flex:none; width:100%; }
  .cta-demo-title{ font-size:1.4rem; }
  .cta-demo-sub{ max-width:none; font-size:.95rem; }
  .cta-demo-plus{ flex:none; width:100%; gap:11px; padding-top:18px; border-top:1px solid rgba(20,20,20,.14); }
  .cta-demo-plus li{ font-size:.95rem; line-height:1.5; }
  .cta-demo .cta-actions{ width:100%; }
  .cta-demo .cta-actions .btn{ width:100%; }
}

/* CTA full-bleed a fondo pieno */
.cta-flat{ background:#EBEBEC; padding-block:clamp(48px,7vw,84px); }
.cta-flat-inner{ display:grid; grid-template-columns:1.4fr auto; gap:30px; align-items:center; }
.cta-flat-inner h2{ color:var(--ink); }
.cta-flat-inner p{ color:var(--ink-2); margin:12px 0 0; max-width:560px; }
.cta-flat .cta-actions{ display:flex; gap:12px; flex-wrap:wrap; }
@media (max-width:760px){ .cta-flat-inner{ grid-template-columns:1fr; } }
@media (max-width:560px){ .cta-flat .cta-actions{ width:100%; } .cta-flat .cta-actions .btn{ flex:1 1 100%; justify-content:center; text-align:center; } }

/* phone / locator mock for templates */
.tpl-mock{ position:relative; }
.tpl-card{ background:#fff; border:1px solid var(--line); border-radius:var(--radius-lg); box-shadow:var(--shadow-lg); overflow:hidden; }
.tpl-bar{ display:flex; align-items:center; gap:10px; padding:15px 18px; border-bottom:1px solid var(--line-2); }
.tpl-bar .d3{ display:flex; gap:6px; } .tpl-bar .d3 i{ width:9px; height:9px; border-radius:50%; background:var(--line); }
.tpl-bar .u{ flex:1; background:var(--bg-soft); border-radius:8px; padding:6px 12px; font-family:var(--font-mono); font-size:.72rem; color:var(--muted); }

/* page hero badge floats reused */
.fbadge{ position:absolute; background:#fff; border:1px solid var(--line); border-radius:0; box-shadow:var(--shadow-lg); padding:12px 14px; display:flex; align-items:center; gap:11px; z-index:4; }
.fbadge .fb-ic{ width:38px; height:38px; border-radius:10px; display:grid; place-items:center; flex:none; }
.fbadge h6{ margin:0; font-size:.82rem; font-family:var(--font-display); }
.fbadge p{ margin:1px 0 0; font-size:.7rem; color:var(--muted); }

@media (max-width:960px){
  .subhero-grid{ grid-template-columns:1fr; }
  .subhero .tpl-mock{ max-width:480px; }
}


/* ===================================================
   Pagina: home (stili scopati con :where)
   =================================================== */
/* Stili spostati da index.html (erano in <style> inline) */
/* ====== HOME-SPECIFIC ====== */
/* full-bleed immersive photo hero */
:where(body[data-page="home"]) .hero{ position:relative; overflow:hidden; min-height:clamp(520px,68vh,660px); display:flex; align-items:flex-start; background:var(--ink); }
:where(body[data-page="home"]) .hero-slide{ position:absolute; inset:0; opacity:0; pointer-events:none; transition:opacity .7s ease; }
:where(body[data-page="home"]) .hero-slide.active{ opacity:1; pointer-events:auto; }
:where(body[data-page="home"]) .hs-bg{ position:absolute; inset:0; background-size:cover; background-position:center; transform:scale(1.04); transition:transform 7s ease; }
:where(body[data-page="home"]) .hero-slide.active .hs-bg{ transform:scale(1); }
:where(body[data-page="home"]) .hs-bg::after{ content:""; position:absolute; inset:0; background:linear-gradient(90deg, rgba(0,0,0,.30) 0%, rgba(0,0,0,.12) 50%, rgba(0,0,0,0) 80%); }
:where(body[data-page="home"]) .hs-inner{ position:relative; z-index:2; width:100%; max-width:var(--maxw); margin-inline:auto; padding-inline:clamp(20px,5vw,40px); color:#fff; text-shadow:0 2px 14px rgba(0,0,0,.45); }
:where(body[data-page="home"]) .hs-block{ max-width:620px; padding-top:clamp(70px,11vh,128px); transform:translateY(16px); opacity:0; transition:opacity .6s ease .15s, transform .6s ease .15s; }
:where(body[data-page="home"]) .hero-slide.active .hs-block{ transform:none; opacity:1; }
:where(body[data-page="home"]) .hero .pill{ background:var(--brand); color:var(--ink); border-color:var(--brand); font-size:.8rem; padding:7px 14px; }
:where(body[data-page="home"]) .hero h1{ color:#fff; font-size:clamp(1.9rem,3.9vw,3.05rem); margin:15px 0 0; }
:where(body[data-page="home"]) .hero h1 .accent{ color:var(--brand); }
:where(body[data-page="home"]) .hero-lead{ margin-top:15px; max-width:510px; font-size:1rem; color:rgba(255,255,255,.86); }
:where(body[data-page="home"]) .hero-actions{ display:flex; gap:12px; margin-top:25px; flex-wrap:wrap; }
:where(body[data-page="home"]) .hero-actions .btn-lg{ padding:15px 28px; font-size:1rem; }
:where(body[data-page="home"]) .hero .btn, :where(body[data-page="home"]) .hero-actions .btn, :where(body[data-page="home"]) .hero .btn:hover, :where(body[data-page="home"]) .hero-actions .btn:hover{ box-shadow:none !important; text-shadow:none; }
:where(body[data-page="home"]) .hero-chips{ display:flex; gap:11px; margin-top:28px; flex-wrap:wrap; }
:where(body[data-page="home"]) .hero-chip{ background:rgba(255,255,255,.1); border:1px solid rgba(255,255,255,.2); border-radius:14px; padding:11px 16px; backdrop-filter:blur(6px); }
:where(body[data-page="home"]) .hero-chip b{ display:block; font-family:var(--font-display); font-weight:700; font-size:1.45rem; color:var(--brand); line-height:1; }
:where(body[data-page="home"]) .hero-chip span{ font-size:.76rem; color:rgba(255,255,255,.82); }
/* controls overlaid bottom-left */
:where(body[data-page="home"]) .hero-controls{ position:absolute; left:50%; transform:translateX(-50%); bottom:26px; z-index:5; width:100%; max-width:var(--maxw); padding-inline:clamp(20px,5vw,40px); display:flex; align-items:center; gap:18px; }
:where(body[data-page="home"]) .hero-dots{ display:flex; gap:9px; }
:where(body[data-page="home"]) .hero-dot{ width:9px; height:9px; border-radius:50%; border:0; background:rgba(255,255,255,.4); cursor:pointer; transition:.25s; padding:0; }
:where(body[data-page="home"]) .hero-dot.active{ width:30px; border-radius:6px; background:var(--brand); }
:where(body[data-page="home"]) .hero-arrows{ display:flex; gap:8px; margin-left:auto; }
:where(body[data-page="home"]) .hero-arrows button{ width:42px; height:42px; border-radius:11px; border:1px solid rgba(255,255,255,.28); background:rgba(255,255,255,.08); display:grid; place-items:center; color:#fff; transition:.2s; }
:where(body[data-page="home"]) .hero-arrows button:hover{ background:var(--brand); border-color:var(--brand); color:var(--ink); }
:where(body[data-page="home"]) .hero-arrows svg{ width:18px; height:18px; }
/* locator product mock */
:where(body[data-page="home"]) .mock{ position:relative; }
:where(body[data-page="home"]) .mock-card{ background:#fff; border:1px solid var(--line); border-radius:var(--radius-lg); box-shadow:var(--shadow-lg); overflow:hidden; }
:where(body[data-page="home"]) .mock-top{ display:flex; align-items:center; gap:10px; padding:16px 18px; border-bottom:1px solid var(--line-2); }
:where(body[data-page="home"]) .mock-dots{ display:flex; gap:6px; }
:where(body[data-page="home"]) .mock-dots i{ width:10px; height:10px; border-radius:50%; background:var(--line); }
:where(body[data-page="home"]) .mock-dots i:first-child{ background:#ff5f57; }
:where(body[data-page="home"]) .mock-dots i:nth-child(2){ background:#febc2e; }
:where(body[data-page="home"]) .mock-dots i:nth-child(3){ background:#28c840; }
:where(body[data-page="home"]) .mock-url{ flex:1; background:var(--bg-soft); border-radius:8px; padding:6px 12px; font-family:var(--font-mono); font-size:.74rem; color:var(--muted); }
:where(body[data-page="home"]) .mock-body{ display:grid; grid-template-columns:1fr 1.15fr; min-height:330px; }
:where(body[data-page="home"]) .mock-list{ padding:16px; display:flex; flex-direction:column; gap:10px; border-right:1px solid var(--line-2); }
:where(body[data-page="home"]) .mock-search{ display:flex; align-items:center; gap:9px; background:var(--bg-soft); border:1px solid var(--line); border-radius:10px; padding:10px 12px; font-size:.82rem; color:var(--muted); }
:where(body[data-page="home"]) .mock-search svg{ width:15px; height:15px; color:var(--brand-600); }
:where(body[data-page="home"]) .store-item{ border:1px solid var(--line-2); border-radius:12px; padding:11px 12px; display:flex; gap:10px; align-items:flex-start; transition:.2s; }
:where(body[data-page="home"]) .store-item.sel{ border-color:var(--brand-300); background:var(--brand-50); box-shadow:0 0 0 3px var(--brand-50); }
:where(body[data-page="home"]) .store-item .pin{ width:26px; height:26px; border-radius:8px; background:var(--brand-600); color:#fff; display:grid; place-items:center; flex:none; }
:where(body[data-page="home"]) .store-item .pin svg{ width:14px; height:14px; }
:where(body[data-page="home"]) .store-item h6{ margin:0; font-size:.82rem; font-family:var(--font-display); color:var(--ink); }
:where(body[data-page="home"]) .store-item p{ margin:2px 0 0; font-size:.72rem; color:var(--muted); }
:where(body[data-page="home"]) .store-item .dist{ margin-left:auto; font-size:.7rem; font-weight:700; color:var(--brand-700); white-space:nowrap; }
:where(body[data-page="home"]) .mock-map{ position:relative; background:
  linear-gradient(0deg, rgba(21,94,239,.04), rgba(21,94,239,.04)),
  repeating-linear-gradient(0deg,#eef2fa 0 1px,transparent 1px 46px),
  repeating-linear-gradient(90deg,#eef2fa 0 1px,transparent 1px 46px),
  #f7faff; }
:where(body[data-page="home"]) .mock-map .road{ position:absolute; background:#e4ebf7; }
:where(body[data-page="home"]) .mock-map .road.r1{ left:0; right:0; top:38%; height:14px; transform:rotate(-4deg); }
:where(body[data-page="home"]) .mock-map .road.r2{ top:0; bottom:0; left:54%; width:13px; }
:where(body[data-page="home"]) .mock-map .road.r3{ left:8%; right:30%; top:72%; height:9px; transform:rotate(6deg); }
:where(body[data-page="home"]) .map-pin{ position:absolute; width:30px; height:30px; transform:translate(-50%,-100%); }
:where(body[data-page="home"]) .map-pin span{ position:absolute; inset:0; background:var(--brand-600); border-radius:50% 50% 50% 2px; transform:rotate(45deg); box-shadow:var(--shadow); }
:where(body[data-page="home"]) .map-pin span::after{ content:""; position:absolute; inset:9px; background:#fff; border-radius:50%; transform:rotate(-45deg); }
:where(body[data-page="home"]) .map-pin.alt span{ background:var(--cyan); }
:where(body[data-page="home"]) .map-pin.big{ width:40px; height:40px; z-index:3; }
:where(body[data-page="home"]) .map-pin.big::before{ content:""; position:absolute; left:50%; top:0; transform:translate(-50%,-30%); width:54px; height:54px; border-radius:50%; background:rgba(21,94,239,.16); animation:ping 2.4s ease-out infinite; }
:where(body[data-page="home"]) .float-badge{ position:absolute; background:#fff; border:1px solid var(--line); border-radius:14px; box-shadow:var(--shadow-lg); padding:12px 14px; display:flex; align-items:center; gap:11px; }
:where(body[data-page="home"]) .float-badge .fb-ic{ width:38px; height:38px; border-radius:10px; display:grid; place-items:center; flex:none; }
:where(body[data-page="home"]) .float-badge h6{ margin:0; font-size:.82rem; font-family:var(--font-display); }
:where(body[data-page="home"]) .float-badge p{ margin:1px 0 0; font-size:.7rem; color:var(--muted); }
:where(body[data-page="home"]) .float-badge.fb1{ top:-22px; left:-26px; animation:floaty 5s ease-in-out infinite; }
:where(body[data-page="home"]) .float-badge.fb2{ bottom:-24px; right:-20px; animation:floaty 5s ease-in-out infinite .8s; }
/* stats band */
:where(body[data-page="home"]) .stats-band{ background:var(--cyan-50); color:var(--ink); position:relative; overflow:hidden; }
:where(body[data-page="home"]) .stats-band::before{ content:""; position:absolute; inset:0; opacity:.5; background-image:radial-gradient(rgba(0,0,0,.05) 1px,transparent 1px); background-size:26px 26px; }
:where(body[data-page="home"]) .stats-band .eyebrow.on-dark{ color:var(--brand-700); }
:where(body[data-page="home"]) .stats-band .eyebrow.on-dark::before{ background:var(--brand-700); }
:where(body[data-page="home"]) .stats-grid{ position:relative; display:grid; grid-template-columns:repeat(4,1fr); gap:30px; }
:where(body[data-page="home"]) .stat-cell{ position:relative; }
:where(body[data-page="home"]) .stat-cell + .stat-cell{ padding-left:30px; }
:where(body[data-page="home"]) .stat-cell .stat-num{ color:var(--brand-600); }
:where(body[data-page="home"]) .stat-cell p{ color:var(--ink-2); font-size:1rem; margin:10px 0 0; }
:where(body[data-page="home"]) .stats-note{ position:relative; margin-top:36px; padding-top:26px; border-top:1px solid var(--line); color:var(--ink-2); font-size:.95rem; max-width:620px; }
:where(body[data-page="home"]) .stats-callout{ position:relative; margin-top:48px; display:flex; gap:44px; align-items:center; background:var(--bg-soft); color:var(--ink); border:0; border-radius:0; padding:20px; box-shadow:var(--shadow-sm); }
:where(body[data-page="home"]) .stats-callout .sc-illu{ flex:none; width:280px; display:grid; place-items:center; }
:where(body[data-page="home"]) .stats-callout .sc-illu img,
:where(body[data-page="home"]) .stats-callout .sc-illu svg{ width:280px; object-fit:contain; }
:where(body[data-page="home"]) .stats-callout .sc-text{ display:flex; flex-direction:column; gap:10px; }
:where(body[data-page="home"]) .stats-callout .sc-title{ margin:0; font-family:var(--font-display); font-weight:800; font-size:clamp(1.15rem,1.9vw,1.5rem); line-height:1.25; letter-spacing:-.02em; color:var(--ink); }
:where(body[data-page="home"]) .stats-callout .sc-body{ margin:0; font-weight:400; font-size:clamp(.95rem,1.4vw,1.08rem); line-height:1.5; color:var(--ink-2); }
@media (max-width:600px){
:where(body[data-page="home"]) .stats-callout{ flex-direction:column; align-items:flex-start; text-align:left; gap:12px; }
}
@media (max-width:760px){
:where(body[data-page="home"]) .stats-grid{ grid-template-columns:1fr 1fr; gap:26px 20px; }
:where(body[data-page="home"]) .stat-cell+.stat-cell{ padding-left:0; }
}
/* clients marquee section */
:where(body[data-page="home"]) .clients-strip .label{ text-align:center; font-family:var(--font-display); font-weight:700; font-size:clamp(1.9rem,3.4vw,2.6rem); letter-spacing:-.02em; color:var(--ink); margin-bottom:34px; }
:where(body[data-page="home"]) .clients-strip .label b{ color:var(--brand-600); }
/* "vedi tutti i clienti" — text CTA with sliding arrow box */
:where(body[data-page="home"]) .see-all{ display:inline-flex; align-items:center; gap:14px; padding:0; background:none; border:0; cursor:pointer;
  font-family:var(--font-mono); font-weight:700; font-size:.82rem; letter-spacing:.16em; text-transform:uppercase; color:var(--ink); }
:where(body[data-page="home"]) .see-all .sa-txt{ position:relative; padding-bottom:4px; }
:where(body[data-page="home"]) .see-all .sa-txt::after{ content:""; position:absolute; left:0; bottom:0; width:100%; height:2px; background:var(--brand); transform:scaleX(0); transform-origin:left; transition:transform .3s ease; }
:where(body[data-page="home"]) .see-all:hover .sa-txt::after{ transform:scaleX(1); }
:where(body[data-page="home"]) .see-all .sa-arr{ width:34px; height:34px; flex:none; display:grid; place-items:center; background:var(--ink); color:#fff; transition:background .25s ease, transform .25s ease; }
:where(body[data-page="home"]) .see-all .sa-arr svg{ width:16px; height:16px; transition:transform .25s ease; }
:where(body[data-page="home"]) .see-all:hover .sa-arr{ background:var(--brand); color:var(--ink); }
:where(body[data-page="home"]) .see-all:hover .sa-arr svg{ transform:translateX(3px); }
/* perché split */
:where(body[data-page="home"]) .perche-section{ position:relative; overflow:hidden; }
:where(body[data-page="home"]) .perche-bigicon{ position:absolute; right:-6%; bottom:-22%; width:min(56%,640px); color:var(--brand); opacity:.1; z-index:0; pointer-events:none; }
:where(body[data-page="home"]) .perche-bigicon svg{ width:100%; height:auto; display:block; }
:where(body[data-page="home"]) .split{ position:relative; z-index:1; display:grid; grid-template-columns:1.05fr .95fr; gap:48px; align-items:center; }
:where(body[data-page="home"]) .perche-points{ display:flex; flex-direction:column; gap:14px; margin-top:30px; }
:where(body[data-page="home"]) .perche-points .pp{ display:flex; gap:18px; align-items:center; background:#fff; border:1px solid var(--line); border-radius:var(--radius); padding:18px 22px; box-shadow:var(--shadow-sm); transition:transform .25s ease, box-shadow .25s ease, border-color .25s ease; }
:where(body[data-page="home"]) .perche-points .pp:hover{ transform:translateX(6px); box-shadow:var(--shadow); border-color:var(--brand-100); }
:where(body[data-page="home"]) .perche-points .pp .n{ font-family:var(--font-display); font-weight:800; color:var(--brand); font-size:2.1rem; line-height:1; flex:none; width:54px; text-align:center; padding:0; letter-spacing:-.03em; }
:where(body[data-page="home"]) .perche-points .pp p{ font-size:1rem; line-height:1.5; }
:where(body[data-page="home"]) .perche-media{ display:flex; align-items:center; justify-content:center; position:relative; z-index:1; }
:where(body[data-page="home"]) .perche-media img{ width:100%; height:auto; mix-blend-mode:multiply; }
:where(body[data-page="home"]) .perche-media img{ width:100%; height:auto; border-radius:var(--radius); }
:where(body[data-page="home"]) .perche-media .fi-illu{ width:100%; height:auto; display:block; }
:where(body[data-page="home"]) .click-card{ background:linear-gradient(150deg,var(--brand-500),var(--brand-700)); color:var(--ink); border-radius:var(--radius-lg); padding:38px; box-shadow:var(--shadow-brand); position:relative; overflow:hidden; }
:where(body[data-page="home"]) .click-card::after{ content:""; position:absolute; right:-40px; bottom:-40px; width:180px; height:180px; border-radius:50%; background:rgba(0,0,0,.06); }
:where(body[data-page="home"]) .click-card .big-quote{ font-family:var(--font-display); font-size:clamp(1.5rem,2.4vw,2.1rem); line-height:1.18; letter-spacing:-.02em; }
:where(body[data-page="home"]) .click-card .one-click{ display:inline-flex; align-items:center; gap:9px; margin-top:22px; font-weight:700; background:rgba(0,0,0,.12); padding:10px 16px; border-radius:999px; font-size:.92rem; }
/* soluzioni inline (fondo bianco) */
:where(body[data-page="home"]) .sol-inline-head{ max-width:760px; }
:where(body[data-page="home"]) .sol-panel{ margin-top:34px; background:#fff; border:1px solid var(--line); border-radius:var(--radius-lg); padding:clamp(22px,3vw,34px); box-shadow:var(--shadow-sm); }
/* soluzioni — spotlight arancione (Prova B) */
:where(body[data-page="home"]) .solB{ position:relative; overflow:hidden; background:linear-gradient(160deg, var(--brand-50) 0%, var(--brand-100) 60%, var(--brand-300) 130%); }
:where(body[data-page="home"]) .solB::before{ content:""; position:absolute; inset:0; opacity:.55; background-image:radial-gradient(rgba(199,125,6,.18) 1px,transparent 1px); background-size:30px 30px; -webkit-mask:radial-gradient(90% 80% at 50% 0%,#000,transparent); mask:radial-gradient(90% 80% at 50% 0%,#000,transparent); }
:where(body[data-page="home"]) .solB .container{ position:relative; }
:where(body[data-page="home"]) .solB-top{ display:grid; grid-template-columns:auto 1fr; gap:26px; align-items:center; max-width:900px; }
:where(body[data-page="home"]) .solB-badge{ flex:none; width:84px; height:84px; border-radius:20px; background:var(--brand); color:var(--ink); display:grid; place-items:center; box-shadow:var(--shadow-brand); }
:where(body[data-page="home"]) .solB-badge svg{ width:42px; height:42px; }
:where(body[data-page="home"]) .solB h2{ font-size:clamp(1.9rem,3.4vw,2.6rem); letter-spacing:-.025em; }
:where(body[data-page="home"]) .solB .eyebrow{ color:var(--brand-700); }
:where(body[data-page="home"]) .solB .eyebrow::before{ background:var(--brand-700); }
:where(body[data-page="home"]) .solB .lead{ color:var(--ink-2); max-width:760px; font-weight:500; }
:where(body[data-page="home"]) .solB .sol-panel{ border:1px solid var(--brand-100); border-top:4px solid var(--brand); box-shadow:0 36px 70px -34px rgba(240,155,14,.6); }
@media (max-width:620px){
:where(body[data-page="home"]) .solB-top{ grid-template-columns:1fr; }
}
:where(body[data-page="home"]) .sol-tabs{ display:none; }
:where(body[data-page="home"]) .sol-duo{ margin-top:34px; display:grid; grid-template-columns:1fr 1fr; gap:22px; align-items:stretch; }
:where(body[data-page="home"]) .sol-block{ display:flex; flex-direction:column; background:#fff; border:1px solid var(--brand-100); border-top:4px solid var(--brand); padding:clamp(22px,3vw,30px); box-shadow:0 36px 70px -34px rgba(240,155,14,.6); }
:where(body[data-page="home"]) .sol-block-tag{ align-self:flex-start; font-family:var(--font-display); font-size:.78rem; font-weight:700; letter-spacing:.02em; text-transform:uppercase; color:#fff; background:var(--ink); padding:5px 13px; border-radius:8px; }
:where(body[data-page="home"]) .sol-block .panel-lead{ margin-top:16px; }
:where(body[data-page="home"]) .sol-list.is-single{ grid-template-columns:1fr; flex:1; align-content:start; }
:where(body[data-page="home"]) .si-ico{ width:48px!important; height:48px!important; background:var(--brand-50)!important; color:var(--brand)!important; }
:where(body[data-page="home"]) .si-ico svg{ width:27px; height:27px; }
:where(body[data-page="home"]) .si-ico img{ width:27px; height:27px; object-fit:contain; }
:where(body[data-page="home"]) .sol-item:hover .si-ico{ background:var(--brand)!important; color:var(--ink)!important; }
:where(body[data-page="home"]) .pub-rows{ flex:0 0 auto; }
:where(body[data-page="home"]) .pub-art{ flex:1; display:flex; align-items:center; justify-content:center; margin-top:18px; min-height:180px; }
:where(body[data-page="home"]) .pub-art-img{ display:block; width:100%; height:100%; max-height:340px; object-fit:contain; }
:where(body[data-page="home"]) .panel-lead{ font-size:1.05rem; color:var(--ink-2); margin:0 0 20px; }
:where(body[data-page="home"]) .panel-lead b{ color:var(--ink); }
:where(body[data-page="home"]) .aud-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:16px; }
:where(body[data-page="home"]) .aud-item{ text-align:center; padding:28px 14px; border:1.5px solid var(--line); border-radius:16px; background:#fff; transition:.25s; }
:where(body[data-page="home"]) .aud-item:hover{ border-color:var(--brand); transform:translateY(-5px); box-shadow:0 20px 40px -20px rgba(240,155,14,.6); }
:where(body[data-page="home"]) .aud-item .ai{ width:60px; height:60px; border-radius:16px; margin:0 auto 14px; background:var(--brand-50); color:var(--brand-600); display:grid; place-items:center; transition:.25s; }
:where(body[data-page="home"]) .aud-item:hover .ai{ background:var(--brand); color:var(--ink); transform:scale(1.06); }
:where(body[data-page="home"]) .aud-item .ai svg{ width:28px; height:28px; }
:where(body[data-page="home"]) .aud-item .ai img{ width:34px; height:34px; object-fit:contain; }
:where(body[data-page="home"]) .aud-item span{ font-weight:700; font-size:1rem; font-family:var(--font-display); letter-spacing:-.01em; }
:where(body[data-page="home"]) .sol-list{ display:grid; grid-template-columns:1fr 1fr; gap:12px; }
:where(body[data-page="home"]) .sol-item{ display:flex; align-items:center; gap:14px; padding:18px 18px; border:1.5px solid var(--line); border-radius:14px; font-weight:700; font-size:1rem; font-family:var(--font-display); letter-spacing:-.01em; transition:.22s; cursor:default; }
:where(body[data-page="home"]) .sol-item:hover{ border-color:var(--brand); background:var(--brand-50); transform:translateX(4px); box-shadow:0 14px 28px -18px rgba(240,155,14,.6); }
:where(body[data-page="home"]) .sol-item .si{ width:38px; height:38px; border-radius:10px; background:var(--ink); color:#fff; display:grid; place-items:center; flex:none; font-family:var(--font-mono); font-size:.9rem; font-weight:700; transition:.22s; }
:where(body[data-page="home"]) .sol-item:hover .si{ background:var(--brand); color:var(--ink); }
:where(body[data-page="home"]) .sol-item.is-cta{ background:var(--brand); border-color:var(--brand); color:var(--ink); }
:where(body[data-page="home"]) .sol-item.is-cta:hover{ background:var(--brand-700); transform:translateX(4px); }
:where(body[data-page="home"]) .sol-item.is-cta .si{ background:rgba(0,0,0,.18); color:var(--ink); }
@media (max-width:860px){
:where(body[data-page="home"]) .sol-tabs{ display:grid; grid-template-columns:1fr 1fr; gap:6px; margin-top:26px; background:var(--bg-soft); border:1px solid var(--line); border-radius:14px; padding:5px; }
:where(body[data-page="home"]) .sol-tab{ border:0; background:transparent; font-family:var(--font-display); font-weight:700; font-size:.92rem; letter-spacing:-.01em; color:var(--ink-2); padding:12px 10px; border-radius:10px; cursor:pointer; transition:.2s; }
:where(body[data-page="home"]) .sol-tab.active{ background:var(--brand); color:var(--ink); }
:where(body[data-page="home"]) .sol-duo{ grid-template-columns:1fr; margin-top:14px; }
:where(body[data-page="home"]) .sol-duo .sol-block{ display:none; }
:where(body[data-page="home"]) .sol-duo .sol-block.is-active{ display:flex; }
:where(body[data-page="home"]) .pub-art{ display:none; }
body[data-page="home"] .is-60{ width:auto; max-width:100%; }
:where(body[data-page="home"]) .solB-badge{ display:none; }
}
@media (max-width:640px){
:where(body[data-page="home"]) .sol-list{ grid-template-columns:1fr; }
:where(body[data-page="home"]) .hero-lead,
:where(body[data-page="home"]) .stat-cell p,
:where(body[data-page="home"]) .stats-callout .sc-body,
:where(body[data-page="home"]) .lead,
:where(body[data-page="home"]) .perche-points .pp p,
:where(body[data-page="home"]) .panel-lead,
:where(body[data-page="home"]) .diff-big p,
:where(body[data-page="home"]) .news-text p,
:where(body[data-page="home"]) .demo-intro p{ font-size:.9rem; line-height:1.3; }
body[data-page="home"] .mag-feat-excerpt,
body[data-page="home"] .mag-feat-excerpt p{ font-size:.9rem; line-height:1.3; }
body[data-page="home"] .tcard blockquote{ font-size:.9rem; line-height:1.3; }
body[data-page="home"] .marquee .logo-cell{ width:200px; height:200px; }
body[data-page="home"] .marquee .logo-cell img{ max-height:200px; }
:where(body[data-page="home"]) .is-51{ padding:30px 0px 70px; }
:where(body[data-page="home"]) .clients-strip .label{ line-height:1.2em; }
body[data-page="home"] .is-56{ margin-bottom:0; }
}
:where(body[data-page="home"]) /* focus on — open layout, :where(body[data-page="home"]) no card, :where(body[data-page="home"]) no radius */
.focus-grid{ display:grid; grid-template-columns:1fr 1fr; gap:clamp(28px,5vw,64px); align-items:center; }
:where(body[data-page="home"]) .focus-media{ position:relative; min-height:380px; align-self:stretch; }
:where(body[data-page="home"]) .focus-media img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; border-radius:0; }
:where(body[data-page="home"]) .focus-text{ padding:0; background:transparent; display:flex; flex-direction:column; justify-content:center; }
:where(body[data-page="home"]) .focus-text .pill{ align-self:flex-start; margin-bottom:18px; }
:where(body[data-page="home"]) .focus-text h3{ font-size:clamp(1.9rem,3.4vw,2.6rem); }
/* differenziatori cards already styled */
:where(body[data-page="home"]) .diff-card .ic-box{ width:74px; height:74px; background:linear-gradient(140deg,var(--brand-50),var(--cyan-50)); }
:where(body[data-page="home"]) .diff-card .ic-box img{ width:44px; height:44px; object-fit:contain; }
/* ===== COSA CI RENDE DIVERSI — big 2-col impactful (light) ===== */
:where(body[data-page="home"]) .diff-section{ background:linear-gradient(165deg, var(--brand-50) 0%, var(--brand-100) 45%, var(--brand-300) 100%); color:var(--ink); position:relative; overflow:hidden; }
:where(body[data-page="home"]) .diff-section::before{ content:""; position:absolute; inset:0; opacity:.5; background-image:radial-gradient(rgba(199,125,6,.16) 1px,transparent 1px); background-size:30px 30px; -webkit-mask:radial-gradient(85% 85% at 50% 0%,#000,transparent); mask:radial-gradient(85% 85% at 50% 0%,#000,transparent); }
:where(body[data-page="home"]) .diff-section .section-head{ position:relative; }
:where(body[data-page="home"]) .diff-section .section-head h2{ color:var(--ink); font-size:clamp(1.9rem,3.4vw,2.6rem); }
:where(body[data-page="home"]) .section-head h2,
:where(body[data-page="home"]) .perche-section h2{ font-size:clamp(1.9rem,3.4vw,2.6rem); }
:where(body[data-page="home"]) .diff-grid{ position:relative; display:grid; grid-template-columns:1fr 1fr; gap:24px; margin-top:54px; }
:where(body[data-page="home"]) .diff-big{
  position:relative; background:#fff; border:1px solid var(--line);
  border-radius:0; padding:44px 42px; overflow:hidden; box-shadow:var(--shadow-sm);
  transition:transform .3s ease, border-color .3s ease, box-shadow .3s ease;
}
:where(body[data-page="home"]) .diff-big:hover{ transform:translateY(-6px); border-color:var(--brand-300); box-shadow:0 30px 56px -26px rgba(240,155,14,.5); }
:where(body[data-page="home"]) .diff-big .dnum{ position:absolute; top:30px; right:38px; font-family:var(--font-display); font-weight:800; font-size:4.8rem; line-height:1; color:var(--brand-50); letter-spacing:-.04em; transition:color .3s; }
:where(body[data-page="home"]) .diff-big:hover .dnum{ color:var(--brand-100); }
:where(body[data-page="home"]) .diff-big .dic{ width:auto; height:auto; border:0; background:none; display:block; margin-bottom:22px; transition:transform .3s ease; }
:where(body[data-page="home"]) .diff-big:hover .dic{ transform:scale(1.05); }
:where(body[data-page="home"]) .diff-big .dic img{ width:auto; height:112px; max-width:100%; object-fit:contain; }
:where(body[data-page="home"]) .diff-big .dic svg{ width:96px; height:96px; color:var(--brand-700); }
:where(body[data-page="home"]) .diff-big h3{ color:var(--ink); font-size:clamp(1.4rem,2.2vw,1.85rem); margin-bottom:14px; max-width:88%; }
:where(body[data-page="home"]) .diff-big p{ color:var(--ink-2); font-size:1rem; line-height:1.6; margin:0; max-width:96%; }
@media (max-width:760px){
:where(body[data-page="home"]) .diff-grid{ grid-template-columns:1fr; }
:where(body[data-page="home"]) .diff-big{ padding:34px 28px; }
:where(body[data-page="home"]) .diff-big .dnum{ font-size:3.6rem; }
:where(body[data-page="home"]) .diff-big .dic{ width:auto; height:auto; background:none; border:0; margin-bottom:20px; }
:where(body[data-page="home"]) .diff-big .dic img{ width:auto; height:120px; max-width:100%; }
body[data-page="home"] .diff-big p{ font-size:.9rem; line-height:1.3; }
}
/* testimonials */
:where(body[data-page="home"]) .tcar{ position:relative; overflow:hidden; }
:where(body[data-page="home"]) .tcar-track{ display:flex; gap:24px; padding:6px 2px 18px; will-change:transform; }
/* Larghezza card: entra un numero esatto di card, nessuna sporgenza (3 su desktop). */
:where(body[data-page="home"]) .tcard{ flex:0 0 calc((100% - 48px) / 3 - 1px); background:#fff; border:1px solid var(--line); border-radius:var(--radius-lg); padding:32px; box-shadow:var(--shadow-sm); display:flex; flex-direction:column; }
:where(body[data-page="home"]) .tcard .quote-mark{ font-family:var(--font-display); font-weight:700; font-size:5rem; line-height:.8; color:var(--brand); height:42px; }
:where(body[data-page="home"]) .tcard blockquote{ margin:0; color:var(--ink-2); font-size:1rem; line-height:1.6; flex:1; }
:where(body[data-page="home"]) .tcard .who{ display:flex; align-items:center; gap:13px; margin-top:22px; padding-top:20px; border-top:1px solid var(--line-2); }
:where(body[data-page="home"]) .tcard .who .logo-cell{ width:64px; height:64px; flex:none; border-radius:50%; background:#fff; border:1px solid var(--line); box-shadow:var(--shadow-sm); filter:none; opacity:1; padding:10px; display:flex; align-items:center; justify-content:center; pointer-events:none; }
:where(body[data-page="home"]) .tcard .who .logo-cell img{ max-height:40px; max-width:100%; width:auto; height:auto; object-fit:contain; margin:auto; }
:where(body[data-page="home"]) .tcard .who b{ display:block; font-family:var(--font-display); font-size:.92rem; color:var(--ink); }
:where(body[data-page="home"]) .tcard .who small{ color:var(--muted); font-size:.78rem; line-height:1.2; display:block; }
:where(body[data-page="home"]) .car-nav{ display:flex; gap:10px; }
:where(body[data-page="home"]) .car-nav button{ width:28px; height:28px; border-radius:0; border:0; background:none; display:grid; place-items:center; color:var(--ink-2); box-shadow:none; padding:0; transition:.2s; }
:where(body[data-page="home"]) .car-nav button:hover{ color:var(--brand-700); }
:where(body[data-page="home"]) .car-nav svg{ width:15px; height:15px; }
/* Card testimonianze: 2 su tablet, 1 su mobile — sempre card intere. */
@media (max-width:1024px){
:where(body[data-page="home"]) .tcard{ flex:0 0 calc((100% - 24px) / 2 - 1px); }
}
@media (max-width:640px){
:where(body[data-page="home"]) .tcard{ flex:0 0 100%; }
}
/* clients grid */
:where(body[data-page="home"]) .clients-grid{ display:grid; grid-template-columns:repeat(6,1fr); gap:16px; }
@media (max-width:900px){
:where(body[data-page="home"]) .clients-grid{ grid-template-columns:repeat(4,1fr); }
}
@media (max-width:560px){
:where(body[data-page="home"]) .clients-grid{ grid-template-columns:repeat(2,1fr); }
}
:where(body[data-page="home"]) .clients-grid .logo-cell{ width:100%; height:150px; }
:where(body[data-page="home"]) .clients-grid .logo-cell img{ max-height:132px; max-width:92%; }
:where(body[data-page="home"]) /* newsletter — full-bleed lighter band, :where(body[data-page="home"]) no box/radius */
.news-full{ background:linear-gradient(135deg, var(--brand-100) 0%, var(--brand-300) 55%, var(--brand) 110%); color:var(--ink); padding-block:clamp(44px,6vw,76px); position:relative; overflow:hidden; }
:where(body[data-page="home"]) .news-full::before{ content:""; position:absolute; inset:0; opacity:.45; background-image:radial-gradient(rgba(199,125,6,.18) 1.2px,transparent 1.2px); background-size:24px 24px; }
:where(body[data-page="home"]) .news-row{ position:relative; display:grid; grid-template-columns:auto 1fr; gap:clamp(28px,5vw,60px); align-items:center; }
:where(body[data-page="home"]) .news-illu{ flex:none; }
:where(body[data-page="home"]) .news-illu img{ width:clamp(150px,18vw,230px); height:auto; object-fit:contain; }
:where(body[data-page="home"]) .news-copy{ min-width:0; display:flex; align-items:center; gap:clamp(24px,4vw,48px); }
:where(body[data-page="home"]) .news-text{ min-width:0; }
:where(body[data-page="home"]) .news-copy .is-69{ flex:none; }
:where(body[data-page="home"]) .news-full h2{ color:var(--ink); }
:where(body[data-page="home"]) .news-full p{ color:rgba(20,20,20,.74); max-width:620px; margin:16px 0 0; }
@media (max-width:680px){
:where(body[data-page="home"]) .news-row{ grid-template-columns:1fr; text-align:center; justify-items:center; }
:where(body[data-page="home"]) .news-copy{ flex-direction:column; text-align:center; }
:where(body[data-page="home"]) .news-full p{ margin-inline:auto; }
}
/* legacy boxed band (kept for any other use) */
:where(body[data-page="home"]) .news-band{ background:linear-gradient(135deg, var(--brand-300) 0%, var(--brand) 48%, var(--brand-700) 100%); color:var(--ink); border-radius:var(--radius-lg); padding:clamp(34px,5vw,60px); text-align:center; position:relative; overflow:hidden; }
:where(body[data-page="home"]) .news-band::before{ content:""; position:absolute; inset:0; opacity:.5; background-image:radial-gradient(rgba(0,0,0,.10) 1.2px,transparent 1.2px); background-size:24px 24px; }
:where(body[data-page="home"]) .news-band h2{ color:var(--ink); position:relative; }
:where(body[data-page="home"]) .news-band p{ color:rgba(20,20,20,.78); position:relative; max-width:600px; margin:16px auto 0; }
/* demo form — Variante B (immagine + form) */
:where(body[data-page="home"]) .vb-grid{ display:grid; grid-template-columns:1fr 1fr; gap:0; align-items:stretch; border:1px solid var(--line); border-radius:var(--radius-lg); overflow:hidden; box-shadow:var(--shadow); }
:where(body[data-page="home"]) .vb-media{ position:relative; min-height:560px; background:var(--bg-navy); }
:where(body[data-page="home"]) .vb-media img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
:where(body[data-page="home"]) .vb-media .overlay{ position:absolute; inset:0; background:linear-gradient(180deg, rgba(8,8,8,.10), rgba(8,8,8,.78)); }
:where(body[data-page="home"]) .vb-media .cap{ position:absolute; left:30px; right:30px; bottom:30px; color:#fff; z-index:2; }
:where(body[data-page="home"]) .vb-media .cap .pill{ background:var(--brand); color:#141414; border-color:var(--brand); }
:where(body[data-page="home"]) .vb-media .cap h2{ color:#fff; margin-top:14px; font-size:clamp(1.6rem,2.4vw,2.1rem); }
:where(body[data-page="home"]) .vb-media .cap p{ color:rgba(255,255,255,.88); margin-top:10px; font-size:1rem; max-width:400px; }
:where(body[data-page="home"]) .vb-media .cap .feats{ display:flex; flex-direction:column; gap:11px; margin-top:22px; }
:where(body[data-page="home"]) .vb-media .cap .feats .f{ display:flex; align-items:center; gap:11px; font-size:.94rem; font-weight:600; }
:where(body[data-page="home"]) .vb-media .cap .feats .f .ic{ width:34px; height:34px; border-radius:9px; background:rgba(255,255,255,.14); display:grid; place-items:center; flex:none; backdrop-filter:blur(4px); }
:where(body[data-page="home"]) .vb-media .cap .feats .f .ic svg{ width:17px; height:17px; }
:where(body[data-page="home"]) .vb-form{ background:#fff; padding:clamp(26px,3.4vw,46px); }
:where(body[data-page="home"]) .vb-form .form-head{ margin-bottom:24px; }
:where(body[data-page="home"]) .vb-form .form-head h2{ margin-top:12px; font-size:clamp(1.6rem,2.4vw,2rem); }
:where(body[data-page="home"]) .vb-form .form-head h2 .accent{ color:var(--brand-600); }
/* demo full-bleed con immagine di sfondo + form a lato */
:where(body[data-page="home"]) .demo-full{ position:relative; padding-block:clamp(60px,8vw,110px); background:#141414 url('img/hero-store.jpg') center/cover no-repeat; overflow:hidden; }
:where(body[data-page="home"]) .demo-full::before{ content:""; position:absolute; inset:0; background:linear-gradient(100deg, rgba(8,8,8,.7) 0%, rgba(8,8,8,.38) 45%, rgba(8,8,8,.08) 100%); }
:where(body[data-page="home"]) .demo-full .container{ position:relative; z-index:1; }
:where(body[data-page="home"]) .demo-row{ display:grid; grid-template-columns:1.05fr .95fr; gap:clamp(30px,5vw,70px); align-items:center; }
:where(body[data-page="home"]) .demo-intro{ color:#fff; }
:where(body[data-page="home"]) .demo-intro h2{ color:#fff; margin-top:14px; font-size:clamp(1.9rem,3.4vw,2.6rem); }
/* Home — tutti gli h2 di sezione stessa dimensione */
:where(body[data-page="home"]) h2{ font-size:clamp(1.9rem,3.4vw,2.6rem) !important; }
/* Home — titolo slide magazine più piccolo */
:where(body[data-page="home"]) .mag-feat-title{ font-size:clamp(1.25rem,1.9vw,1.6rem) !important; }
/* Home — foto più piccola, colonna testo più larga */
:where(body[data-page="home"]) .mag-slide{ grid-template-columns:1.42fr .58fr; }
:where(body[data-page="home"]) .mag-feat-body{ order:1; }
:where(body[data-page="home"]) .mag-feat-media{ order:2; min-height:320px; }
:where(body[data-page="home"]) #home-mag-carousel .mag-carousel{ margin-bottom:35px; border:0; }
:where(body[data-page="home"]) .demo-intro p{ color:rgba(255,255,255,.86); margin-top:16px; max-width:440px; font-size:1.05rem; }
:where(body[data-page="home"]) .demo-intro .feats{ display:flex; flex-direction:column; gap:13px; margin-top:26px; }
:where(body[data-page="home"]) .demo-intro .feats .f{ display:flex; align-items:center; gap:12px; font-weight:600; color:#fff; }
:where(body[data-page="home"]) .demo-intro .feats .f .ic{ width:38px; height:38px; background:rgba(255,255,255,.14); display:grid; place-items:center; flex:none; }
:where(body[data-page="home"]) .demo-intro .feats .f .ic svg{ width:18px; height:18px; }
:where(body[data-page="home"]) .demo-full .vb-form{ box-shadow:var(--shadow-lg); }
@media (max-width:860px){ :where(body[data-page="home"]) .demo-row{ grid-template-columns:1fr; } }
:where(body[data-page="home"]) .form-2col{ display:grid; grid-template-columns:1fr 1fr; gap:0 18px; }
:where(body[data-page="home"]) .ok-msg{ display:none; text-align:center; padding:30px 10px; }
:where(body[data-page="home"]) .ok-msg.show{ display:block; animation:fadeIn .4s ease; }
:where(body[data-page="home"]) .ok-msg .okic{ width:64px; height:64px; border-radius:50%; background:var(--brand-50); color:var(--brand-600); display:grid; place-items:center; margin:0 auto 16px; }
:where(body[data-page="home"]) .ok-msg .okic svg{ width:32px; height:32px; }
@media (max-width:820px){
:where(body[data-page="home"]) .vb-grid{ grid-template-columns:1fr; }
:where(body[data-page="home"]) .vb-media{ min-height:320px; }
:where(body[data-page="home"]) .form-2col{ grid-template-columns:1fr; }
}
@media (max-width:960px){
:where(body[data-page="home"]) .hero-grid, :where(body[data-page="home"]) .split, :where(body[data-page="home"]) .sol-cta, :where(body[data-page="home"]) .focus-grid{ grid-template-columns:1fr; }
:where(body[data-page="home"]) .hero-visual{ order:-1; }
:where(body[data-page="home"]) .hero-controls{ transform:none; margin-top:28px; }
:where(body[data-page="home"]) .aud-grid{ grid-template-columns:1fr 1fr; }
}
:where(body[data-page="home"]) #clientMarquee > div:nth-child(24) > img:nth-child(1){ width: 60px !important }
:where(body[data-page="home"]) #clientMarquee > div:nth-child(24) > img:nth-child(1){ height: 66px !important }
/* ===================================================
   Header/nav bianco — stile homepage applicato a tutte le pagine
   =================================================== */
.site-header{ height: 88px !important; text-align: left !important; }
.site-header >.container{ height: 86px !important; }
.topbar >.container{ font-size: 12px !important; }
.nav{ height: 86px !important; }

.site-header{ background:#fff; border-bottom:1px solid var(--line); }
.site-header::before{ display:none; }
.site-header .brand-logo{ content:url('img/logo-rt-dark.svg'); }
.site-header .brand-tag{ color:var(--ink-2); }
.site-header .logo-word{ color:var(--ink); }
.site-header .logo-fallback{ color:var(--ink); }
.site-header .nav-link{ color:var(--ink-2); }
.site-header .nav-link:hover,
.site-header .nav-item.open .nav-link{ color:var(--ink); }
.site-header .nav-cta .btn-ghost{ color:var(--ink); border-color:var(--line); }
.site-header .nav-cta .btn-ghost:hover{ color:var(--ink); border-color:var(--ink); background:var(--bg-soft); }
.site-header .hamburger{ background:transparent; border-color:var(--line); }
.site-header .hamburger span{ background:var(--ink); }
/* topbar grigia come i blocchi della home */
.topbar{ background:var(--bg-soft); color:var(--ink-2); border-bottom:1px solid var(--line); }
.topbar a{ color:var(--ink-2); }
.topbar a:hover{ color:var(--ink); }
.topbar .sep{ background:var(--line); }
.topbar .lang a{ color:var(--ink-2); }
.topbar .lang a.active{ color:var(--ink); }


/* ===================================================
   Pagina: richiedi-demo (stili scopati con :where)
   =================================================== */
/* Stili spostati da richiedi-demo.html (erano in <style> inline) */
:where(body[data-page="richiedi-demo"]) /* variant B — image + form, :where(body[data-page="richiedi-demo"]) edge to edge */
.vb-grid{ display:grid; grid-template-columns:1fr 1fr; gap:0; align-items:stretch; border:1px solid var(--line); border-radius:var(--radius-lg); overflow:hidden; box-shadow:var(--shadow); }
:where(body[data-page="richiedi-demo"]) .vb-media{ position:relative; min-height:600px; background:var(--bg-navy); }
:where(body[data-page="richiedi-demo"]) .vb-media img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
:where(body[data-page="richiedi-demo"]) .vb-media .overlay{ position:absolute; inset:0; background:linear-gradient(180deg, rgba(8,8,8,.10), rgba(8,8,8,.78)); }
:where(body[data-page="richiedi-demo"]) .vb-media .cap{ position:absolute; left:30px; right:30px; bottom:30px; color:#fff; z-index:2; }
:where(body[data-page="richiedi-demo"]) .vb-media .cap .pill{ background:var(--brand); color:#141414; border-color:var(--brand); }
:where(body[data-page="richiedi-demo"]) .vb-media .cap h2{ color:#fff; margin-top:14px; font-size:clamp(1.6rem,2.4vw,2.1rem); }
:where(body[data-page="richiedi-demo"]) .vb-media .cap p{ color:rgba(255,255,255,.88); margin-top:10px; font-size:1rem; max-width:400px; }
:where(body[data-page="richiedi-demo"]) .vb-media .cap .feats{ display:flex; flex-direction:column; gap:11px; margin-top:22px; }
:where(body[data-page="richiedi-demo"]) .vb-media .cap .feats .f{ display:flex; align-items:center; gap:11px; font-size:.94rem; font-weight:600; }
:where(body[data-page="richiedi-demo"]) .vb-media .cap .feats .f .ic{ width:34px; height:34px; border-radius:9px; background:rgba(255,255,255,.14); display:grid; place-items:center; flex:none; backdrop-filter:blur(4px); }
:where(body[data-page="richiedi-demo"]) .vb-media .cap .feats .f .ic svg{ width:17px; height:17px; }
:where(body[data-page="richiedi-demo"]) .vb-form{ background:#fff; padding:clamp(26px,3.4vw,46px); }
:where(body[data-page="richiedi-demo"]) .vb-form .form-head{ margin-bottom:24px; }
:where(body[data-page="richiedi-demo"]) .vb-form .form-head .eyebrow{ }
:where(body[data-page="richiedi-demo"]) .vb-form .form-head h2{ margin-top:12px; font-size:clamp(1.6rem,2.4vw,2rem); }
:where(body[data-page="richiedi-demo"]) .vb-form .form-head h2 .accent{ color:var(--brand-600); }
:where(body[data-page="richiedi-demo"]) .form-2col{ display:grid; grid-template-columns:1fr 1fr; gap:0 18px; }
:where(body[data-page="richiedi-demo"]) .ok-msg{ display:none; text-align:center; padding:30px 10px; }
:where(body[data-page="richiedi-demo"]) .ok-msg.show{ display:block; animation:fadeIn .4s ease; }
:where(body[data-page="richiedi-demo"]) .ok-msg .okic{ width:64px; height:64px; border-radius:50%; background:var(--brand-50); color:var(--brand-600); display:grid; place-items:center; margin:0 auto 16px; }
:where(body[data-page="richiedi-demo"]) .ok-msg .okic svg{ width:32px; height:32px; }
/* trust strip below */
:where(body[data-page="richiedi-demo"]) .trust-strip{ display:grid; grid-template-columns:repeat(3,1fr); gap:24px; margin-top:36px; }
:where(body[data-page="richiedi-demo"]) .trust-strip .ts{ display:flex; gap:14px; align-items:flex-start; }
:where(body[data-page="richiedi-demo"]) .trust-strip .ts .ic{ width:46px; height:46px; border-radius:12px; background:var(--brand-50); color:var(--brand-600); display:grid; place-items:center; flex:none; }
:where(body[data-page="richiedi-demo"]) .trust-strip .ts .ic svg{ width:22px; height:22px; }
:where(body[data-page="richiedi-demo"]) .trust-strip .ts b{ font-family:var(--font-display); }
:where(body[data-page="richiedi-demo"]) .trust-strip .ts span{ color:var(--muted); font-size:.9rem; }
@media (max-width:820px){
:where(body[data-page="richiedi-demo"]) .vb-grid{ grid-template-columns:1fr; }
:where(body[data-page="richiedi-demo"]) .vb-media{ min-height:340px; }
:where(body[data-page="richiedi-demo"]) .trust-strip{ grid-template-columns:1fr; gap:16px; }
:where(body[data-page="richiedi-demo"]) .form-2col{ grid-template-columns:1fr; }
}


/* ===================================================
   Pagina: store-locator (stili scopati con :where)
   =================================================== */
/* Stili spostati da moduli/store-locator.html (erano in <style> inline) */
/* page-specific locator mock */
:where(body[data-page="store-locator"]) .loc-body{ display:grid; grid-template-columns:1fr 1.2fr; min-height:360px; }
:where(body[data-page="store-locator"]) .loc-list{ padding:16px; display:flex; flex-direction:column; gap:10px; border-right:1px solid var(--line-2); }
:where(body[data-page="store-locator"]) .loc-search{ display:flex; align-items:center; gap:9px; background:var(--bg-soft); border:1px solid var(--line); border-radius:10px; padding:11px 13px; font-size:.84rem; color:var(--muted); }
:where(body[data-page="store-locator"]) .loc-search svg{ width:15px; height:15px; color:var(--brand-600); }
:where(body[data-page="store-locator"]) .loc-item{ border:1px solid var(--line-2); border-radius:12px; padding:11px 12px; display:flex; gap:10px; align-items:flex-start; }
:where(body[data-page="store-locator"]) .loc-item.sel{ border-color:var(--brand-300); background:var(--brand-50); }
:where(body[data-page="store-locator"]) .loc-item .pin{ width:26px; height:26px; border-radius:8px; background:var(--brand-600); color:#fff; display:grid; place-items:center; flex:none; }
:where(body[data-page="store-locator"]) .loc-item .pin svg{ width:14px; height:14px; }
:where(body[data-page="store-locator"]) .loc-item h6{ margin:0; font-size:.82rem; font-family:var(--font-display); }
:where(body[data-page="store-locator"]) .loc-item p{ margin:2px 0 0; font-size:.72rem; color:var(--muted); }
:where(body[data-page="store-locator"]) .loc-item .dist{ margin-left:auto; font-size:.7rem; font-weight:700; color:var(--brand-700); }
:where(body[data-page="store-locator"]) .loc-map{ position:relative; background:linear-gradient(0deg,rgba(21,94,239,.04),rgba(21,94,239,.04)),repeating-linear-gradient(0deg,#eef2fa 0 1px,transparent 1px 46px),repeating-linear-gradient(90deg,#eef2fa 0 1px,transparent 1px 46px),#f7faff; }
:where(body[data-page="store-locator"]) .loc-map .road{ position:absolute; background:#e4ebf7; }
:where(body[data-page="store-locator"]) .loc-map .r1{ left:0; right:0; top:42%; height:13px; transform:rotate(-5deg); }
:where(body[data-page="store-locator"]) .loc-map .r2{ top:0; bottom:0; left:58%; width:12px; }
:where(body[data-page="store-locator"]) .lpin{ position:absolute; width:30px; height:30px; transform:translate(-50%,-100%); }
:where(body[data-page="store-locator"]) .lpin span{ position:absolute; inset:0; background:var(--brand-600); border-radius:50% 50% 50% 2px; transform:rotate(45deg); box-shadow:var(--shadow); }
:where(body[data-page="store-locator"]) .lpin span::after{ content:""; position:absolute; inset:9px; background:#fff; border-radius:50%; transform:rotate(-45deg); }
:where(body[data-page="store-locator"]) .lpin.alt span{ background:var(--cyan); }
:where(body[data-page="store-locator"]) .lpin.big{ width:40px; height:40px; z-index:3; }
:where(body[data-page="store-locator"]) .lpin.big::before{ content:""; position:absolute; left:50%; top:0; transform:translate(-50%,-30%); width:54px; height:54px; border-radius:50%; background:rgba(21,94,239,.16); animation:ping 2.4s ease-out infinite; }
:where(body[data-page="store-locator"]) .fbadge.fb1{ top:-20px; right:-18px; animation:floaty 5s ease-in-out infinite; }
@media (max-width:520px){
:where(body[data-page="store-locator"]) .loc-body{ grid-template-columns:1fr; }
:where(body[data-page="store-locator"]) .loc-map{ min-height:200px; }
}


/* ===================================================
   Pagina: gbp (stili scopati con :where)
   =================================================== */
/* Stili spostati da servizi/google-business-profile.html (erano in <style> inline) */
/* GBP profile mock */
:where(body[data-page="gbp"]) .gbp-card{ background:#fff; border:1px solid var(--line); border-radius:var(--radius-lg); box-shadow:var(--shadow-lg); overflow:hidden; }
:where(body[data-page="gbp"]) .gbp-cover{ height:96px; background:linear-gradient(120deg,var(--brand-600),var(--cyan)); position:relative; }
:where(body[data-page="gbp"]) .gbp-cover .road{ position:absolute; background:rgba(255,255,255,.18); }
:where(body[data-page="gbp"]) .gbp-cover .ra{ left:0; right:0; top:60%; height:10px; transform:rotate(-5deg); }
:where(body[data-page="gbp"]) .gbp-cover .rb{ top:0; bottom:0; left:62%; width:9px; }
:where(body[data-page="gbp"]) .gbp-pin{ position:absolute; left:30%; top:44%; width:26px; height:26px; transform:translate(-50%,-100%); }
:where(body[data-page="gbp"]) .gbp-pin span{ position:absolute; inset:0; background:#fff; border-radius:50% 50% 50% 2px; transform:rotate(45deg); box-shadow:var(--shadow); }
:where(body[data-page="gbp"]) .gbp-pin span::after{ content:""; position:absolute; inset:8px; background:var(--brand-600); border-radius:50%; transform:rotate(-45deg); }
:where(body[data-page="gbp"]) .gbp-head{ padding:18px 20px 14px; }
:where(body[data-page="gbp"]) .gbp-head h5{ font-family:var(--font-display); font-size:1.1rem; margin:0; }
:where(body[data-page="gbp"]) .gbp-rate{ display:flex; align-items:center; gap:7px; margin-top:5px; font-size:.82rem; color:var(--ink-2); }
:where(body[data-page="gbp"]) .gbp-stars{ color:#f5a623; letter-spacing:1px; font-size:.86rem; }
:where(body[data-page="gbp"]) .gbp-actions{ display:flex; gap:8px; padding:0 20px 16px; flex-wrap:wrap; }
:where(body[data-page="gbp"]) .gbp-actions .b{ flex:1; min-width:84px; display:flex; flex-direction:column; align-items:center; gap:5px; padding:11px 6px; border:1px solid var(--line); border-radius:12px; font-size:.72rem; font-weight:700; color:var(--brand-700); }
:where(body[data-page="gbp"]) .gbp-actions .b svg{ width:18px; height:18px; }
:where(body[data-page="gbp"]) .gbp-prod{ padding:6px 20px 20px; }
:where(body[data-page="gbp"]) .gbp-prod .t{ font-size:.74rem; font-weight:700; color:var(--muted); font-family:var(--font-mono); letter-spacing:.1em; text-transform:uppercase; margin-bottom:10px; }
:where(body[data-page="gbp"]) .gbp-prod .row{ display:grid; grid-template-columns:repeat(3,1fr); gap:9px; }
:where(body[data-page="gbp"]) .gbp-prod .pcard{ border:1px solid var(--line-2); border-radius:10px; overflow:hidden; }
:where(body[data-page="gbp"]) .gbp-prod .pcard .im{ height:54px; background:repeating-linear-gradient(135deg,var(--brand-50) 0 8px,#fff 8px 16px); }
:where(body[data-page="gbp"]) .gbp-prod .pcard .pp{ padding:7px 8px; font-size:.66rem; font-weight:700; color:var(--ink-2); }
:where(body[data-page="gbp"]) .fbadge.fb1{ top:-18px; right:-16px; }


/* ===== keyframes pagine (deduplicati) ===== */
@keyframes ping { 0%{ transform:translate(-50%,-30%) scale(.5); opacity:.7; } 100%{ transform:translate(-50%,-30%) scale(1.4); opacity:0; } }
@keyframes floaty { 50%{ transform:translateY(-9px); } }
@keyframes fadeIn { from{ opacity:0; transform:translateY(8px); } }


/* ===================================================
   Utility da style="" inline (caricate per ultime)
   =================================================== */
/* Classi generate da attributi style="" inline (caricato per ultimo) */
.is-1{ max-width:760px; }
.is-2{ margin-top:14px; }
.is-3{ margin-top:16px; }
.is-4{ padding-top:70px; }
.is-5{ color:var(--ink-2); }
.is-6{ width:100%; height:auto; mix-blend-mode:multiply; }
.is-7{ margin-top:42px; grid-template-columns:repeat(5,1fr); }
.is-8{ font-size:1.05rem; }
.is-9{ margin-top:38px; }
.is-10{ display:flex; flex-direction:column; gap:14px; text-decoration:none; }
.is-11{ height:118px; width:100%; overflow:hidden; padding:0; background:var(--bg-soft); }
.is-11 img{ width:100%; height:100%; max-width:none; max-height:none; object-fit:contain; transform:scale(1.5); }
.is-11 .logo-fallback{ transform:none; }
.is-12{ margin-top:12px; font-size:1.2rem; }
.is-13{ margin-top:6px; }
.is-14{ margin-top:auto; }
.is-15{ max-width:820px; }
.is-16{ align-items:start; }
.is-17{ display:flex; flex-direction:column; }
.is-18{ font-family:var(--font-display); font-size:2.4rem; line-height:.6; color:var(--brand); height:22px; }
.is-19{ color:var(--ink-2); font-size:.96rem; flex:1; }
.is-20{ display:flex; align-items:center; gap:12px; margin-top:18px; padding-top:16px; border-top:1px solid var(--line-2); }
.is-21{ width:64px; height:40px; padding:5px; border:0; background:transparent; }
.is-22{ font-family:var(--font-display); font-size:.9rem; display:block; }
.is-23{ color:var(--muted); font-size:.78rem; }
.tgrid-q{ display:grid; grid-template-columns:repeat(2,1fr); gap:26px; align-items:stretch; }
.tcard-q{ display:flex; flex-direction:column; padding:34px; }
.tcard-q .tq-mark{ font-family:var(--font-display); font-weight:800; font-size:3.2rem; line-height:.7; color:var(--brand); height:30px; }
.tcard-q .tq-text{ color:var(--ink); font-size:1.12rem; line-height:1.6; flex:1; margin:14px 0 22px; }
.tcard-q .tq-foot{ display:flex; align-items:center; gap:16px; padding-top:20px; border-top:1px solid var(--line-2); }
.tcard-q .tq-photo{ width:74px; height:74px; flex:none; overflow:hidden; border-radius:50%; background:var(--bg-soft); border:1px solid var(--line); }
.tcard-q .tq-photo img{ width:100%; height:100%; object-fit:cover; display:block; }
.tcard-q .tq-info{ flex:1; min-width:0; }
.tcard-q .tq-info b{ font-family:var(--font-display); font-size:1.02rem; display:block; color:var(--ink); }
.tcard-q .tq-info small{ color:var(--muted); font-size:.84rem; line-height:1.2; display:block; }
.tcard-q .tq-logo{ flex:none; width:84px; height:48px; display:flex; align-items:center; justify-content:center; }
.tcard-q .tq-logo img{ max-width:100%; max-height:48px; width:auto; height:auto; object-fit:contain; }
@media (max-width:820px){ .tgrid-q{ grid-template-columns:1fr; } }
@media (max-width:480px){ .tcard-q .tq-logo{ display:none; } }
.is-24{ max-width:720px; }
.is-25{ margin-top:18px; }
.is-26{ padding-top:clamp(16px,2vw,32px); }
.is-27{ display:grid; grid-template-columns:.9fr 1.1fr; gap:48px; align-items:stretch; }
.contact-left{ display:flex; flex-direction:column; height:100%; }
.is-28{ display:flex; gap:14px; align-items:flex-start; margin-top:6px; }
.is-29{ width:46px; height:46px; border-radius:12px; background:var(--brand-50); color:var(--brand-600); display:grid; place-items:center; flex:none; }
.is-30{ width:22px; height:22px; }
.is-31{ font-family:var(--font-display); }
.is-32{ color:var(--muted); font-size:.9rem; }
.is-33{ display:flex; gap:14px; align-items:flex-start; margin-top:22px; }
.is-34{ background:#fff; border:1px solid var(--line); border-radius:var(--radius-lg); padding:clamp(26px,3vw,40px); box-shadow:var(--shadow); }
.is-35{ font-size:.82rem; color:var(--muted); margin:0 0 16px; }
.is-36{ display:grid; grid-template-columns:1fr 1fr; gap:0 18px; }
.is-37{ margin-bottom:20px; }
.is-38{ color:var(--brand-700); font-weight:700; }
.is-39{ width:100%; }
.is-40{ display:none; text-align:center; padding:24px 6px; }
.is-41{ width:60px; height:60px; border-radius:50%; background:var(--brand-50); color:var(--brand-600); display:grid; place-items:center; margin:0 auto 14px; }
.is-42{ width:30px; height:30px; }
.is-43{ color:var(--ink-2); margin-top:8px; }
.is-44{ background-image:url('img/hero-street.jpg'); }
.is-45{ padding:80px 0px 0px; }
.is-46{ background-image:url('img/hero-store.jpg'); }
.is-47{ background-image:url('img/hero-phone.jpg'); }
.is-48{ background-image:url('img/hero-window.jpg'); }
.is-49{ background-image:url('img/hero-mobile.png'); }
.is-50{ background-image:url('img/hero-group.png'); }
.is-51{ padding:80px 0px 120px; }
.is-52{ padding:30px 0px 0px; }
.is-53{ color:var(--ink); }
.is-54{ border-color:rgb(154, 154, 154); }
.is-55{ font-size:25px; }
.is-56{ padding-block:clamp(48px,6vw,72px); }
.is-57{ margin-top:18px; font-weight:400; }
.is-58{ margin:0; }
.is-59{ margin-top:26px; }
.is-60{ margin-top:12px; width:900px; }
.is-61{ border-color:rgba(227, 154, 18, 0.996); }
.is-62{ margin-top:24px; }
.is-63{ margin-top:14px; color:var(--ink-2); }
.is-64{ margin-top:10px; }
.is-65{ padding:70px 0px; }
.is-66{ margin-inline:auto; }
.is-67{ display:flex; justify-content:space-between; align-items:flex-end; gap:24px; flex-wrap:wrap; }
.is-68{ margin-top:34px; }
.is-69{ margin-top:28px; }
.is-70{ margin-top:42px; }
.is-71{ padding:90px 0px 120px; }
.is-72{ margin-bottom:36px; }
.is-73{ background:var(--cyan-50); color:var(--brand-700); }
.is-74{ margin-top:26px; padding-top:22px; border-top:1px solid var(--line-2); }
.is-75{ color:var(--ink-2); font-size:.95rem; margin:0 0 16px; }
.is-76{ margin-top:46px; }
.is-77{ padding-top:0; }
.is-78{ padding:30px; }
.is-79{ width:64px; height:64px; background:linear-gradient(140deg,var(--brand-50),var(--cyan-50)); }
.is-80{ margin:18px 0 14px; }
.is-81{ margin-top:45px; }
.is-82{ display:grid; place-items:center; }
.is-83{ width:104px; height:104px; color:#fff; opacity:.92; }
.is-84{ background:var(--cyan); }
.is-85{ background:var(--ink-2); }
.is-86{ left:44%; top:50%; }
.is-87{ left:74%; top:32%; }
.is-88{ left:26%; top:74%; }
.is-89{ padding-top:clamp(40px,5vw,72px); }
.is-90{ max-width:680px; }
.is-91{ margin:4px 0 20px; }
.is-92{ display:none; text-align:center; padding:14px 6px; }
.is-93{ padding-bottom:clamp(28px,4vw,44px); }
.is-94{ background:var(--brand-50); color:var(--brand-600); }

/* sfumatura morbida: dal bianco al grigio chiaro a fine blocco */
.section.sl-fade{ background:linear-gradient(180deg, #ffffff 0%, #ffffff 58%, #ECECEE 100%); }
.section.sl-toppad{ padding-top:clamp(48px,7vw,88px); }

/* Magazine: fondino grigio chiaro + senza riquadro */
.mag-band{ background:#F4F4F5; }
@media (max-width:640px){ :where(body[data-nav="moduli"]) .section.mag-band{ padding-block:40px; } }
/* placeholder icona magazine (pagine senza foto reale) */
.mag-band .mag-media.is-82{ background:linear-gradient(135deg,var(--brand-50),var(--brand-100)); min-height:260px; }
.mag-band .mag-media.is-82 .is-83{ color:var(--brand-600); opacity:.9; }
.mag-grid.mag-plain{ border:0; box-shadow:none; background:transparent; border-radius:0; gap:clamp(28px,4vw,52px); align-items:center; }
.mag-grid.mag-plain .mag-media{ border-radius:var(--radius); overflow:hidden; min-height:0; background:transparent; }
.mag-grid.mag-plain .mag-media img{ position:static; width:100%; height:auto; object-fit:contain; }
.mag-grid.mag-plain .mag-text{ padding:0; }

/* Dicono di noi — fascia full-width fondo bianco, fonte affiancata al testo */
.testi-band{ background:#ffffff; }
:where(body[data-nav="moduli"]) .section.testi-band{ padding-block:96px; }
@media (max-width:640px){ :where(body[data-nav="moduli"]) .section.testi-band{ padding-block:40px; } }
.testi{ position:relative; margin:0; padding-top:40px; display:grid; grid-template-columns:1fr minmax(210px,270px); gap:clamp(30px,4vw,56px); align-items:center; }
.testi::before{ content:"\201C"; position:absolute; top:-6px; left:0; font-family:var(--font-display); font-size:6.5rem; line-height:1; color:var(--brand-300); pointer-events:none; }
.testi blockquote{ position:relative; margin:0; font-family:var(--font-display); font-weight:500; font-size:clamp(1.05rem,1.8vw,1.4rem); line-height:1.46; letter-spacing:-.005em; color:var(--ink-2); }
.testi-who{ display:flex; flex-direction:column; align-items:flex-start; gap:16px; border-left:3px solid var(--brand-300); padding-left:clamp(28px,4vw,52px); }
.testi-logo{ display:inline-grid; place-items:center; padding:12px 18px; background:#fff; border:1px solid var(--line); border-radius:14px; }
.testi-logo img{ max-height:50px; max-width:160px; width:auto; object-fit:contain; }
.testi-meta b{ display:block; font-family:var(--font-display); font-size:1.1rem; line-height:1.3; color:var(--ink); margin-bottom:3px; }
.testi-meta small{ display:block; color:var(--muted); font-size:.86rem; line-height:1.45; }
@media (max-width:760px){
  .testi{ grid-template-columns:1fr; gap:24px; }
  .testi-who{ border-left:0; border-top:3px solid var(--brand-300); padding-left:0; padding-top:22px; }
}

/* Caratteristiche: testo + featrow a sinistra, immagine a destra */
.car-split{ display:grid; grid-template-columns:1.12fr .88fr; gap:clamp(32px,5vw,60px); align-items:center; }
.car-rows{ margin-top:clamp(20px,3vw,30px); }
.car-media{ align-self:stretch; }
.car-media img{ width:100%; height:100%; min-height:360px; object-fit:cover; border-radius:var(--radius); display:block; box-shadow:var(--shadow); }
.car-media.car-media-flat img{ box-shadow:none; border-radius:0; }
.car-media.car-media-phone img{ object-fit:contain; min-height:auto; max-height:480px; margin-inline:auto; }
.car-media.car-media-contain{ display:flex; align-items:center; justify-content:center; }
.car-media.car-media-contain img{ object-fit:contain; min-height:auto; height:auto; max-height:440px; margin-inline:auto; }
:where(body[data-page="store-locator"]) .car-media-contain img{ max-height:520px; }
.car-media.car-ph{ position:relative; min-height:340px; background:#F4F4F5; }
.car-media.car-ph::after{ content:"Foto da inserire"; position:absolute; inset:0; display:grid; place-items:center; color:var(--muted); font-size:.95rem; }
.car-media.car-ph img{ position:relative; z-index:1; width:100%; height:100%; min-height:340px; object-fit:cover; display:block; }
@media (max-width:860px){ .car-split{ grid-template-columns:1fr; } .car-media img{ min-height:240px; } .car-split-mtop .car-media, .car-split-mtop .cc-media{ order:-1; } }

/* tick list (bullet con spunta arancione) */
.tick-list{ list-style:none; margin:18px 0 0; padding:0; }
.tick-list li{ position:relative; padding:0 0 0 30px; margin:0 0 12px; color:var(--ink-2); font-weight:500; line-height:1.4; }
.tick-list li::before{ content:""; position:absolute; left:0; top:2px; width:18px; height:18px; background:var(--brand); -webkit-mask:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'><polyline points='20 6 9 17 4 12'/></svg>") center/13px no-repeat; mask:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'><polyline points='20 6 9 17 4 12'/></svg>") center/13px no-repeat; }

/* moduli — su mobile font/interlinea uniforme dei paragrafi (.95rem / 1.5) */
@media (max-width:640px){
  :where(body[data-nav="moduli"]) .section-head p,
  :where(body[data-nav="moduli"]) .car-text p,
  :where(body[data-nav="moduli"]) .sl-text p,
  :where(body[data-nav="moduli"]) .mag-text p,
  :where(body[data-nav="moduli"]) .card p,
  :where(body[data-nav="chisiamo"]) .section p,
  :where(body[data-nav="chisiamo"]) .tools-head p,
  :where(body[data-nav="chisiamo"]) .tool-card p,
  :where(body[data-nav="chisiamo"]) .cta-flat p{ font-size:.95rem; line-height:1.5; }
}

/* media composita: foto di sfondo (placeholder) + telefono sovrapposto */
.car-split-mtop{ grid-template-columns:.8fr 1.2fr; }
@media (max-width:860px){
  .car-split-mtop{ grid-template-columns:1fr; }
  .car-split-mtop .car-media.car-media-flat img{ min-height:0; height:auto; object-fit:contain; }
}
.cc-media{ position:relative; align-self:stretch; }
.cc-bg{ display:block; position:relative; min-height:460px; background:#ffffff; overflow:hidden; }
.cc-bg::after{ content:"Foto da inserire"; position:absolute; inset:0; display:grid; place-items:center; color:var(--muted); font-size:.95rem; }
.cc-bg img{ position:relative; z-index:1; width:100%; height:100%; min-height:460px; object-fit:cover; display:block; }
.cc-phone{ position:absolute; left:0; bottom:0; width:32%; max-width:210px; height:auto; z-index:2; }
@media (max-width:860px){ .cc-bg, .cc-bg img{ min-height:280px; } }

/* timeline orizzontale dei punti chiave (allineata a sinistra) */
.htl{ display:grid; grid-template-columns:repeat(4,1fr); margin-top:clamp(34px,4.5vw,52px); }
.htl-item{ position:relative; padding:0 clamp(18px,2vw,30px) 0 0; text-align:left; }
.htl-item::after{ content:""; position:absolute; top:30px; left:30px; width:100%; height:2px; background:var(--brand-100); z-index:0; }
.htl-item:last-child::after{ display:none; }
.htl-node{ position:relative; z-index:1; width:60px; height:60px; margin:0 0 18px; border-radius:50%; background:#fff; border:2px solid var(--brand-300); color:var(--brand-600); display:grid; place-items:center; box-shadow:0 8px 20px rgba(240,155,14,.16); }
.htl-node svg{ width:25px; height:25px; }
.htl-item h4{ font-size:1.04rem; margin:0 0 7px; color:var(--ink); }
.htl-item p{ font-size:.93rem; color:var(--ink-2); line-height:1.5; margin:0; max-width:240px; }
@media (max-width:760px){
  .htl{ grid-template-columns:1fr 1fr; gap:32px 0; }
  .htl-item::after{ display:none; }
}
@media (max-width:440px){ .htl{ grid-template-columns:1fr; } }

/* testo + immagine (es. Store Locator "Perché conta") */
.sl-split{ display:grid; grid-template-columns:.82fr 1.18fr; gap:clamp(32px,5vw,60px); align-items:center; }
.sl-text h2{ margin-top:14px; }
.sl-text .lead{ margin-top:16px; }
.sl-text p+p{ margin-top:14px; }
.sl-media{ position:relative; display:flex; align-items:center; justify-content:flex-end; padding:0 0 30px 24px; }
.sl-store{ width:100%; max-width:none; height:auto; display:block; border-radius:var(--radius); box-shadow:var(--shadow-lg); }
.sl-phone{ position:absolute; left:0; bottom:0; width:34%; max-width:200px; height:auto; display:block; filter:drop-shadow(0 18px 30px rgba(20,20,20,.28)); }
@media (max-width:860px){ .sl-split{ grid-template-columns:1fr; gap:30px; } .sl-media{ order:-1; padding:0 0 24px 18px; } .sl-store{ max-width:100%; } .sl-phone{ width:30%; max-width:130px; } }

/* ===========================================================
   RASSEGNA STAMPA (data-driven)
   =========================================================== */
.press-sec{ margin-bottom:clamp(40px,6vw,72px); }
.press-sec:last-child{ margin-bottom:0; }
.press-h{ font-size:clamp(1.4rem,2.6vw,1.9rem); margin:0 0 24px; padding-bottom:14px; border-bottom:1px solid var(--line); }

/* griglia testate — solo loghi */
.press-outlets{ display:grid; grid-template-columns:repeat(auto-fill,minmax(180px,1fr)); gap:18px; }
.press-outlet{ display:grid; place-items:center; min-height:120px; padding:26px 22px; background:#fff; border:1px solid var(--line); border-radius:var(--radius); box-shadow:var(--shadow-sm); transition:transform .25s ease, box-shadow .25s ease, border-color .25s ease; }
.press-outlet:hover{ transform:translateY(-5px); box-shadow:var(--shadow-lg); border-color:var(--brand-100); }
.po-logo{ display:grid; place-items:center; width:100%; }
.po-logo img{ max-height:70px; max-width:82%; width:auto; object-fit:contain; }
.po-ph{ font-family:var(--font-display); font-weight:700; font-size:1.15rem; color:var(--ink); text-align:center; }

/* lista articoli */
.press-list{ display:grid; grid-template-columns:repeat(2,1fr); gap:40px; }
.press-card{ display:grid; grid-template-columns:140px 1fr; background:#fff; border:1px solid var(--line); border-radius:var(--radius); overflow:hidden; box-shadow:var(--shadow-sm); transition:transform .25s ease, box-shadow .25s ease, border-color .25s ease; }
.press-card:hover{ transform:translateY(-4px); box-shadow:var(--shadow-lg); border-color:var(--brand-100); }
.pc-img{ background:var(--brand-50); overflow:hidden; }
.pc-img img{ width:100%; height:100%; object-fit:cover; }
.pc-body{ display:flex; flex-direction:column; gap:7px; padding:18px 20px; }
.pc-top{ display:flex; align-items:center; gap:9px; font-size:.78rem; }
.pc-outlet{ font-weight:700; color:var(--brand-700); text-transform:uppercase; letter-spacing:.04em; }
.pc-date{ color:var(--muted); }
.pc-title{ font-family:var(--font-display); font-weight:700; font-size:1.06rem; line-height:1.32; color:var(--ink); }
.pc-ex{ font-size:.92rem; color:var(--ink-2); line-height:1.5; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }
.pc-go{ margin-top:auto; font-size:.85rem; font-weight:700; color:var(--brand-700); }

/* back link */
.press-back{ display:inline-flex; align-items:center; gap:6px; font-weight:700; color:var(--brand-700); margin-bottom:24px; }
.press-back:hover{ color:var(--brand); }
.pa-foot{ margin-top:36px; padding-top:24px; border-top:1px solid var(--line); }
.pa-foot .press-back{ margin:0; }

/* intestazione testata */
.press-outlet-head{ display:flex; align-items:center; justify-content:space-between; gap:24px; margin-bottom:34px; padding-bottom:26px; border-bottom:2px solid var(--ink); }
.press-outlet-head h2{ order:0; }
.poh-logo{ order:1; flex:none; height:66px; display:grid; place-items:center; }
.poh-logo img{ max-height:60px; max-width:180px; width:auto; object-fit:contain; }
.press-outlet-head h2{ margin:0; font-size:clamp(1.9rem,3.6vw,2.9rem); line-height:1.1; letter-spacing:-.01em; }

/* articolo — larghezza piena come le altre pagine */
.press-article{ max-width:none; margin:0; }
.pa-meta{ display:flex; align-items:center; gap:9px; font-size:.85rem; margin-bottom:14px; }
.pa-outlet{ font-weight:700; color:var(--brand-700); text-transform:uppercase; letter-spacing:.04em; }
.pa-dot{ color:var(--line); }
.pa-date{ color:var(--muted); }
.pa-title{ font-size:clamp(1.9rem,3.8vw,2.9rem); line-height:1.15; letter-spacing:-.02em; margin:0 0 28px; padding-bottom:22px; border-bottom:1px solid var(--line); }
/* corpo su due colonne, foto in colonna */
.pa-body{ font-size:1.04rem; line-height:1.74; color:var(--ink-2); column-count:2; column-gap:clamp(30px,4vw,60px); }
.pa-body > *{ break-inside:avoid; }
.pa-body p{ margin:0 0 18px; }
.pa-body strong{ color:var(--ink); font-weight:700; }
.pa-body h3{ font-family:var(--font-display); font-size:1.28rem; color:var(--ink); margin:8px 0 14px; letter-spacing:-.01em; }
.pa-body figure{ margin:6px 0 22px; border-radius:var(--radius); overflow:hidden; background:var(--brand-50); }
.pa-body figure img{ width:100%; height:auto; display:block; }
.pa-body figcaption{ font-size:.85rem; color:var(--muted); padding:8px 2px 0; }
.pa-body a{ color:var(--brand-700); text-decoration:underline; }
@media (max-width:760px){ .pa-body{ column-count:1; } .pa-title{ max-width:none; } }

@media (max-width:760px){
  .press-latest{ display:none; }
  .press-list{ grid-template-columns:1fr; }
  .press-card{ grid-template-columns:108px 1fr; }
  .pc-body{ padding:14px 16px; }
  .press-outlet-head{ flex-direction:column; align-items:flex-start; gap:12px; }
}
@media (max-width:440px){
  .press-card{ grid-template-columns:1fr; }
  .pc-img{ height:160px; }
}

/* ===================================================
   Magazine (blog headless da WordPress)
   =================================================== */
.container-narrow{ max-width:820px; }
.mag-loading{ padding:60px 0; text-align:center; color:var(--muted); font-weight:600; }
.mag-empty{ padding:50px 0; text-align:center; color:var(--muted); }
.mag-empty .link-arrow{ margin-top:10px; }

/* toolbar: categorie + ricerca */
.mag-toolbar-inner{ display:flex; align-items:center; justify-content:space-between; gap:20px; flex-wrap:wrap; margin-bottom:34px; padding-bottom:22px; border-bottom:1px solid var(--line); }
.mag-cats{ display:flex; flex-wrap:wrap; gap:8px; }
.mag-chip{ display:inline-flex; align-items:center; padding:8px 16px; border:1px solid var(--line); background:#fff; color:var(--ink); font-weight:600; font-size:.86rem; cursor:pointer; transition:.18s; white-space:nowrap; }
.mag-chip:hover{ border-color:var(--brand-300); color:var(--brand-700); }
.mag-chip.is-on{ background:var(--ink); border-color:var(--ink); color:#fff; }
.mag-search{ position:relative; display:flex; align-items:center; min-width:240px; flex:0 1 300px; }
.mag-search svg{ position:absolute; left:14px; width:17px; height:17px; color:var(--muted); pointer-events:none; }
.mag-search input{ width:100%; padding:11px 14px 11px 40px; border:1px solid var(--line); background:#fff; font:inherit; font-size:.9rem; color:var(--ink); outline:none; transition:.18s; }
.mag-search input:focus{ border-color:var(--brand); box-shadow:0 0 0 3px var(--brand-50); }

/* carousel articoli in evidenza */
#mag-carousel:empty{ display:none; }
.mag-carousel{ position:relative; overflow:hidden; background:#fff; border:1px solid var(--line); margin-bottom:44px; }
.mag-car-track{ display:flex; transition:transform .55s cubic-bezier(.4,0,.1,1); }
.mag-slide{ flex:0 0 100%; display:grid; grid-template-columns:1.12fr .88fr; min-width:0; }
.mag-feat-media{ display:block; min-height:400px; background:#F4F4F5; overflow:hidden; }
.mag-feat-media img{ width:100%; height:100%; object-fit:cover; transition:transform .5s ease; }
.mag-slide:hover .mag-feat-media img{ transform:scale(1.03); }
.mag-feat-body{ padding:clamp(28px,3.2vw,56px) clamp(28px,3.2vw,52px) clamp(40px,4vw,60px); display:flex; flex-direction:column; justify-content:center; gap:15px; }
.mag-feat-badge{ align-self:flex-start; background:var(--bg-soft); color:var(--ink-2); border:1px solid var(--line); border-radius:999px; font-weight:700; font-size:.68rem; letter-spacing:.1em; text-transform:uppercase; padding:6px 13px; }
.mag-feat-title{ font-size:clamp(1.5rem,2.5vw,2.2rem); line-height:1.16; letter-spacing:-.02em; }
.mag-feat-title a{ color:var(--ink); }
.mag-feat-title a:hover{ color:var(--brand-700); }
.mag-feat-excerpt{ color:var(--muted); font-size:1.02rem; line-height:1.62; }
.mag-feat-excerpt p{ margin:0; }
.mag-feat-cta{ margin-top:8px; align-self:flex-start; }
/* controlli */
.mag-car-dots{ position:absolute; bottom:20px; right:clamp(28px,3.2vw,52px); display:flex; gap:9px; z-index:3; }
.mag-car-dot{ width:9px; height:9px; border-radius:50%; border:0; background:rgba(20,20,20,.2); cursor:pointer; padding:0; transition:.25s; }
.mag-car-dot.active{ width:30px; border-radius:6px; background:var(--brand); }
/* magazine index: carosello con immagine e titolo piu piccoli */
#mag-carousel .mag-slide{ grid-template-columns:.82fr 1.18fr; }
#mag-carousel .mag-feat-media{ min-height:300px; }
#mag-carousel .mag-feat-title{ font-size:clamp(1.2rem,1.7vw,1.65rem); }
@media (max-width:820px){
  .mag-slide{ grid-template-columns:1fr; }
  .mag-feat-media{ min-height:0; aspect-ratio:16/9; }
  #mag-carousel .mag-slide{ grid-template-columns:1fr; }
  #mag-carousel .mag-feat-media{ min-height:0; aspect-ratio:16/9; }
  .mag-car-dots{ right:16px; bottom:16px; }
}

/* griglia lista */
#mag-list.mag-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:30px 26px; }
#mag-list.mag-grid .mag-card{ background:var(--bg-soft); border:none; }
#mag-list.mag-grid .mag-card:hover{ box-shadow:none; border-color:transparent; }
#mag-list.mag-grid .mag-card .mag-card-media{ background:#ececed; }
.mag-card{ display:flex; flex-direction:column; background:#fff; border:none; box-shadow:none; overflow:hidden; transition:transform .25s ease; }
.mag-card:hover{ transform:translateY(-4px); box-shadow:none; }
/* articoli correlati: card flat, senza bordo né ombra */
#mag-related .mag-card{ border:none; }
#mag-related .mag-card:hover{ box-shadow:none; border-color:transparent; }
.mag-card-media{ display:block; aspect-ratio:16/10; overflow:hidden; background:#F4F4F5; }
.mag-card-media img{ width:100%; height:100%; object-fit:cover; transition:transform .4s ease; }
.mag-card:hover .mag-card-media img{ transform:scale(1.04); }
.mag-card-media--ph{ background:linear-gradient(135deg,var(--brand-50),var(--brand-100)); }
.mag-card-body{ display:flex; flex-direction:column; gap:10px; padding:20px 22px 24px; flex:1; }
.mag-card-meta{ display:flex; align-items:center; gap:12px; font-size:.72rem; font-weight:700; text-transform:uppercase; letter-spacing:.08em; }
.mag-cat{ color:var(--brand-700); }
.mag-date{ color:var(--muted); font-weight:600; letter-spacing:.02em; text-transform:none; font-size:.78rem; }
.mag-card-title{ font-size:1.12rem; line-height:1.3; letter-spacing:-.01em; }
.mag-card-title a{ color:var(--ink); }
.mag-card-title a:hover{ color:var(--brand-700); }
.mag-card-excerpt{ color:var(--muted); font-size:.92rem; line-height:1.55; flex:1; }
.mag-card-excerpt p{ margin:0; }
.mag-card-link{ margin-top:4px; font-size:.86rem; }

/* paginazione */
.mag-pager{ display:flex; align-items:center; justify-content:center; gap:22px; margin-top:46px; flex-wrap:wrap; }
.mag-pg{ display:inline-flex; align-items:center; padding:11px 20px; border:1px solid var(--line); font-weight:600; font-size:.9rem; color:var(--ink); transition:.2s; }
.mag-pg:hover{ border-color:var(--brand); color:var(--brand-700); background:var(--brand-50); }
.mag-pg-info{ color:var(--muted); font-size:.86rem; font-weight:600; }

/* articolo singolo */
.mag-article-section{ padding-top:clamp(28px,4vw,48px); }
.mag-breadcrumb{ display:inline-block; margin-bottom:22px; color:var(--muted); font-weight:600; font-size:.9rem; }
.mag-breadcrumb:hover{ color:var(--brand-700); }
.mag-art-head{ margin-bottom:22px; }
.mag-art-title{ font-size:clamp(1.8rem,3.4vw,2.6rem); line-height:1.15; letter-spacing:-.02em; margin-top:12px; }
.mag-art-cover{ margin:6px 0 32px; background:#eee; padding:22px; display:flex; justify-content:center; }
.mag-art-cover img{ width:auto; max-width:100%; max-height:360px; height:auto; display:block; }
@media (max-width:560px){ .mag-art-cover{ padding:14px; } .mag-art-cover img{ max-height:240px; } }
.mag-art-body{ font-size:1.05rem; line-height:1.75; color:#2a2a2c; }
.mag-art-body p{ margin:0 0 1.1em; }
.mag-art-body h2,.mag-art-body h3,.mag-art-body h4{ font-family:var(--font-display); letter-spacing:-.01em; line-height:1.25; margin:1.6em 0 .6em; color:var(--ink); }
.mag-art-body h2{ font-size:1.5rem; }
.mag-art-body h3{ font-size:1.25rem; }
.mag-art-body a{ color:var(--brand-700); text-decoration:underline; text-underline-offset:2px; }
.mag-art-body ul,.mag-art-body ol{ margin:0 0 1.2em; padding-left:1.3em; }
.mag-art-body li{ margin:.4em 0; }
.mag-art-body img,.mag-art-body figure img{ max-width:100%; height:auto; display:block; }
.mag-art-body figure{ margin:1.6em 0; background:#eee; padding:22px; display:flex; justify-content:center; }
.mag-art-body figure img{ width:auto; max-width:100%; max-height:360px; height:auto; }
.mag-art-body figure figure{ background:none; padding:0; margin:0; }
.mag-art-body .blocks-gallery-grid{ margin:0; padding:0; list-style:none; }
@media (max-width:560px){ .mag-art-body figure{ padding:14px; } .mag-art-body figure img{ max-height:240px; } }
.mag-art-body blockquote{ margin:1.6em 0; padding:6px 0 6px 22px; border-left:3px solid var(--brand-300); color:#444; font-style:italic; }
.mag-cta{ margin:2.4em 0; background:var(--brand-50); border-left:4px solid var(--brand); padding:30px 32px; }
.mag-cta-in{ display:flex; align-items:center; justify-content:space-between; gap:18px 34px; flex-wrap:wrap; }
.mag-cta-text{ min-width:0; }
.mag-cta-title{ font-family:var(--font-display); font-size:1.4rem; font-weight:800; letter-spacing:-.01em; color:var(--ink); margin:0 0 6px; line-height:1.15; }
.mag-cta-sub{ margin:0; color:var(--ink-2); font-size:1rem; line-height:1.55; max-width:52ch; }
.mag-art-body .mag-cta-btn{ flex:none; white-space:nowrap; text-decoration:none; color:#fff; }
.mag-art-body .mag-cta-btn:hover{ color:#fff; }
@media (max-width:560px){ .mag-cta{ padding:22px; } .mag-cta-in{ flex-direction:column; align-items:flex-start; gap:16px; } }
.mag-art-foot{ margin-top:40px; padding-top:26px; border-top:1px solid var(--line); }

/* layout articolo + sidebar */
.mag-layout{ display:grid; grid-template-columns:minmax(0,1fr) 300px; gap:clamp(30px,4vw,56px); align-items:start; }
.mag-main{ max-width:760px; min-width:0; }
.mag-aside{ position:sticky; top:96px; display:flex; flex-direction:column; gap:30px; }
.mag-aside-title{ font-family:var(--font-display); font-weight:700; font-size:1.05rem; letter-spacing:-.01em; margin:0 0 16px; padding-bottom:12px; border-bottom:2px solid var(--brand-300); }
.mag-search-aside{ width:100%; min-width:0; flex:none; }
.mag-recent{ list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:16px; }
.mag-recent-item{ display:flex; gap:13px; align-items:flex-start; }
.mag-recent-thumb{ width:80px; height:60px; flex:none; overflow:hidden; background:#F4F4F5; }
.mag-recent-thumb img{ width:100%; height:100%; object-fit:cover; transition:transform .35s ease; }
.mag-recent-thumb:hover img{ transform:scale(1.05); }
.mag-recent-thumb--ph{ background:linear-gradient(135deg,var(--brand-50),var(--brand-100)); }
.mag-recent-body{ display:flex; flex-direction:column; gap:4px; min-width:0; }
.mag-recent-title{ font-weight:600; font-size:.9rem; line-height:1.32; color:var(--ink); }
.mag-recent-title:hover{ color:var(--brand-700); }
.mag-recent .mag-date{ font-size:.74rem; }
.mag-loading-sm{ color:var(--muted); font-size:.85rem; list-style:none; }
/* tag cloud */
.mag-tagcloud{ display:flex; flex-wrap:wrap; gap:8px; align-items:center; }
.mag-tag{ display:inline-block; padding:5px 11px; background:var(--brand-50); color:var(--brand-700); border:1px solid var(--brand-100); line-height:1.2; transition:.18s; }
.mag-tag:hover{ background:var(--brand); color:#fff; border-color:var(--brand); }
/* filtro tag attivo (lista) */
#mag-activetag:empty{ display:none; }
.mag-active-tag{ display:inline-flex; align-items:center; gap:10px; margin-bottom:24px; padding:8px 14px; background:var(--brand-50); border:1px solid var(--brand-100); color:var(--brand-700); font-weight:600; font-size:.88rem; }
.mag-active-x{ background:none; border:none; color:var(--brand-700); cursor:pointer; font-size:.95rem; line-height:1; padding:0; }
.mag-active-x:hover{ color:var(--ink); }
@media (max-width:960px){ .mag-layout{ grid-template-columns:1fr; } .mag-aside{ position:static; flex-direction:row; flex-wrap:wrap; gap:30px 40px; } .mag-aside-block{ flex:1 1 260px; } }
@media (max-width:560px){ .mag-aside{ flex-direction:column; } }

/* correlati */
#mag-related:empty{ display:none; }
.mag-related-head{ margin-bottom:26px; }
.mag-related-head .eyebrow{ color:var(--brand-700); }
#mag-related .mag-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:30px 26px; border-radius:0; overflow:visible; background:transparent; }

@media (max-width:900px){ #mag-list.mag-grid{ grid-template-columns:repeat(2,1fr); } #mag-related .mag-grid{ grid-template-columns:repeat(2,1fr); } }
@media (max-width:560px){ #mag-list.mag-grid{ grid-template-columns:1fr; } .mag-grid.mag-plain{ grid-template-columns:1fr; } #mag-related .mag-grid{ grid-template-columns:1fr; } }

/* ===========================================================
   CASE HISTORY — pagina di dettaglio
   =========================================================== */
.ch-back{ display:inline-flex; align-items:center; gap:8px; font-family:var(--font-display); font-weight:600; font-size:.86rem; letter-spacing:.02em; text-transform:uppercase; color:var(--brand-700); }
.ch-back svg{ width:16px; height:16px; }
.ch-back:hover{ color:var(--ink); }
.ch-intro{ display:grid; grid-template-columns:1.05fr .95fr; gap:48px; align-items:center; margin-top:30px; }
.ch-intro .eyebrow{ margin-bottom:14px; }
.ch-intro h2{ font-size:clamp(1.5rem,2.4vw,2rem); line-height:1.22; }
.ch-intro .lead{ margin-top:18px; }
.ch-hero-media{ position:relative; }
.ch-hero-media img{ width:100%; height:100%; max-height:420px; object-fit:cover; display:block; }
@media (max-width:860px){ .ch-intro{ grid-template-columns:1fr; gap:28px; } }
.ch-intro-long{ align-items:start; }
.ch-intro-long .ch-hero-media{ width:calc(100% + 50vw - min(50vw,650px) + clamp(20px,5vw,40px)); }
.ch-intro-long .ch-hero-media img{ height:auto; max-height:none; }
@media (max-width:860px){ .ch-intro-long .ch-hero-media{ width:100%; } }
.ch-intro-text > p:not(.lead){ color:var(--ink-2); font-size:1rem; line-height:1.65; margin-top:1em; }
.ch-intro-text > p:not(.lead) b{ color:var(--ink); }

/* KPI band */
.ch-kpis{ display:grid; grid-template-columns:repeat(4,1fr); gap:1px; background:var(--line); border:1px solid var(--line); margin-top:8px; }
.ch-kpi{ background:#fff; padding:34px 26px; }
.ch-kpi .ch-kpi-num{ font-family:var(--font-display); font-weight:800; font-size:clamp(2.2rem,3.6vw,3rem); line-height:1; letter-spacing:-.03em; color:var(--brand-600); }
.ch-kpi .ch-kpi-lab{ color:var(--ink-2); font-size:.9rem; margin-top:12px; line-height:1.4; }
@media (max-width:860px){ .ch-kpis{ grid-template-columns:repeat(2,1fr); } }
@media (max-width:480px){ .ch-kpis{ grid-template-columns:1fr; } }
/* KPI a bolli rotondi arancioni con effetto "ricarica" */
.ch-kpis-dial{ display:flex; flex-wrap:wrap; justify-content:center; gap:clamp(28px,4vw,56px); background:none; border:0; margin-top:0; }
.ch-kpis-dial .ch-kpi{ background:none; padding:0; display:flex; flex-direction:column; align-items:center; text-align:center; width:190px; }
.ch-kpi-dial{ position:relative; width:170px; height:170px; border-radius:50%; background:var(--brand); display:grid; place-items:center; box-shadow:0 16px 34px rgba(240,155,14,.30); }
.ch-ring{ position:absolute; inset:0; width:100%; height:100%; transform:rotate(-90deg); }
.ch-ring circle{ fill:none; stroke-width:7; }
.ch-ring-track{ stroke:rgba(255,255,255,.28); }
.ch-ring-bar{ stroke:#fff; stroke-linecap:round; stroke-dasharray:327; stroke-dashoffset:327; animation:chCharge 1.6s cubic-bezier(.22,1,.36,1) forwards; }
.ch-kpis-dial .ch-kpi:nth-child(2) .ch-ring-bar{ animation-delay:.15s; }
.ch-kpis-dial .ch-kpi:nth-child(3) .ch-ring-bar{ animation-delay:.30s; }
.ch-kpis-dial .ch-kpi:nth-child(4) .ch-ring-bar{ animation-delay:.45s; }
@keyframes chCharge{ to{ stroke-dashoffset:0; } }
.ch-kpis-dial .ch-kpi-num{ position:relative; z-index:1; color:#fff; font-family:var(--font-display); font-weight:800; font-size:clamp(1.7rem,2.4vw,2.1rem); letter-spacing:-.02em; line-height:1; }
.ch-kpis-dial .ch-kpi-lab{ color:var(--ink-2); font-size:.9rem; margin-top:16px; line-height:1.45; max-width:190px; }
@media (max-width:480px){ .ch-kpi-dial{ width:150px; height:150px; } }

/* KPI card piatte dentro il feature band */
.ch-feature-kpis{ padding:clamp(36px,5vw,64px) 0 clamp(48px,6vw,80px); }
.ch-kpis-flat{ display:grid; grid-template-columns:repeat(4,1fr); gap:18px; }
.ch-kpi-card{ background:#fff; border:1px solid var(--line); padding:30px 26px; display:flex; flex-direction:column; gap:12px; }
.ch-kpi-card .ch-kpi-num{ font-family:var(--font-display); font-weight:800; font-size:clamp(2rem,3vw,2.7rem); color:var(--brand); line-height:1; letter-spacing:-.02em; }
.ch-kpi-card .ch-kpi-lab{ color:var(--ink-2); font-size:.92rem; line-height:1.45; }
@media (max-width:760px){ .ch-kpis-flat{ grid-template-columns:repeat(2,1fr); } }
@media (max-width:420px){ .ch-kpis-flat{ grid-template-columns:1fr; } }
.ch-kpis-intro{ margin-top:clamp(40px,5vw,64px); }
.ch-kpis-ico .ch-kpi-card{ align-items:flex-start; gap:6px; }
.ch-kpis-ico .ch-kpi-ico{ width:44px; height:44px; object-fit:contain; margin-bottom:6px; color:var(--brand); flex:0 0 auto; }
svg.ch-kpi-ico{ stroke:currentColor; fill:none; }

/* righe alternate testo/foto */
.ch-rows{ display:flex; flex-direction:column; gap:clamp(48px,7vw,96px); }
.ch-row{ display:grid; grid-template-columns:1fr 1fr; gap:clamp(36px,5vw,72px); align-items:center; }
.ch-row-text h2{ font-size:clamp(1.4rem,2.2vw,1.9rem); margin:0 0 18px; }
.ch-row-text p{ color:var(--ink-2); font-size:1.02rem; line-height:1.7; margin:0 0 1.1em; }
.ch-row-text p:last-child{ margin-bottom:0; }
.ch-row-text p b{ color:var(--ink); }
.ch-row-media img{ width:100%; height:100%; max-height:440px; object-fit:cover; display:block; }
.ch-row:nth-child(even) .ch-row-media{ order:-1; }
@media (max-width:760px){ .ch-row{ grid-template-columns:1fr; gap:24px; } .ch-row:nth-child(even) .ch-row-media{ order:0; } .ch-row-media img{ max-height:300px; } }

/* prose corpo testo */
.ch-prose{ max-width:820px; }
.ch-prose h2{ font-size:clamp(1.4rem,2.2vw,1.9rem); margin:0 0 18px; }
.ch-prose h3{ font-family:var(--font-display); font-size:1.15rem; margin:34px 0 10px; }
.ch-prose p{ color:var(--ink-2); font-size:1.02rem; line-height:1.7; margin:0 0 1.1em; }
.ch-prose p b{ color:var(--ink); }
.ch-figure{ margin:30px 0 0; }
.ch-figure img{ width:100%; height:auto; display:block; }
.ch-fig-grid{ display:grid; grid-template-columns:1fr 1fr; gap:18px; margin-top:30px; }
.ch-fig-grid img{ width:100%; height:100%; object-fit:cover; display:block; }
@media (max-width:680px){ .ch-fig-grid{ grid-template-columns:1fr; } }
.ch-feature{ display:grid; grid-template-columns:1fr 1fr; gap:54px; align-items:center; }
.ch-feature-text h2{ font-size:clamp(1.4rem,2.2vw,1.9rem); margin:0 0 18px; }
.ch-feature-text p{ color:var(--ink-2); font-size:1.02rem; line-height:1.7; margin:0 0 1.1em; }
.ch-feature-text p b{ color:var(--ink); }
.ch-feature-media{ position:relative; padding:0 0 44px 44px; }
.ch-feat-back{ width:100%; height:auto; display:block; }
.ch-feat-phone{ position:absolute; left:0; bottom:0; width:42%; max-width:240px; height:auto; display:block; filter:drop-shadow(0 22px 40px rgba(0,0,0,.32)); }
@media (max-width:860px){ .ch-feature{ grid-template-columns:1fr; gap:32px; } .ch-feature-media{ padding:0 0 38px 32px; } .ch-feat-phone{ width:40%; } }
/* variante full-bleed (subito dopo i KPI) */
.ch-feature-band{ background:var(--bg-soft); }
.ch-feature-full{ grid-template-columns:1fr 1.15fr; gap:0; align-items:stretch; }
.ch-feature-full .ch-feature-text{ align-self:center; padding:clamp(40px,6vw,84px) clamp(80px,8vw,150px) clamp(40px,6vw,84px) clamp(100px,10vw,190px); }
.ch-feature-full .ch-feature-media{ position:relative; min-height:560px; padding:0; overflow:visible; }
.ch-feature-full .ch-feat-back{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.ch-feature-full .ch-feat-phone{ left:-72px; right:auto; bottom:48px; width:30%; max-width:300px; z-index:2; }
@media (max-width:860px){ .ch-feature-full{ grid-template-columns:1fr; } .ch-feature-full .ch-feature-text{ padding:34px 24px; } .ch-feature-full .ch-feature-media{ min-height:380px; } .ch-feature-full .ch-feat-phone{ left:16px; width:44%; } }

/* ===== Legal modal (Privacy / Cookie) ===== */
body.legal-open{ overflow:hidden; }
.legal-modal{ position:fixed; inset:0; z-index:2000; display:none; }
.legal-modal.open{ display:block; }
.legal-overlay{ position:absolute; inset:0; background:rgba(20,20,20,.62); backdrop-filter:blur(2px); animation:legalFade .25s ease; }
.legal-dialog{
  position:absolute; left:50%; top:50%; transform:translate(-50%,-50%);
  width:min(920px,92vw); max-height:88vh; display:flex; flex-direction:column;
  background:#fff; border-top:5px solid var(--brand); box-shadow:0 30px 80px rgba(0,0,0,.35);
  animation:legalPop .28s cubic-bezier(.2,.8,.25,1);
}
@keyframes legalFade{ from{ opacity:0; } to{ opacity:1; } }
@keyframes legalPop{ from{ opacity:0; transform:translate(-50%,-46%); } to{ opacity:1; transform:translate(-50%,-50%); } }

.legal-head{ display:flex; align-items:flex-start; justify-content:space-between; gap:20px; padding:26px 30px 20px; border-bottom:1px solid var(--line); }
.legal-eyebrow{ display:inline-block; font-family:var(--font-display,inherit); font-size:.72rem; font-weight:700; letter-spacing:.14em; text-transform:uppercase; color:var(--brand-700); margin-bottom:8px; }
.legal-title{ font-family:var(--font-display,inherit); font-size:1.7rem; line-height:1.1; font-weight:800; color:var(--ink); margin:0; }
.legal-x{ all:unset; box-sizing:border-box; flex:none; width:40px; height:40px; display:flex; align-items:center; justify-content:center; color:var(--ink-2); cursor:pointer; border:1px solid var(--line); transition:background .2s, color .2s, border-color .2s; }
.legal-x:hover{ background:var(--brand-50); color:var(--brand-700); border-color:var(--brand-300); }
.legal-x svg{ width:20px; height:20px; }

.legal-body{ padding:8px 30px 24px; overflow-y:auto; -webkit-overflow-scrolling:touch; flex:1 1 auto; }
.legal-body::-webkit-scrollbar{ width:10px; }
.legal-body::-webkit-scrollbar-thumb{ background:var(--brand-300); }
.legal-body::-webkit-scrollbar-track{ background:var(--bg-soft); }

/* injected iubenda content -> orange evident headings */
.legal-body .iub-main{ font-size:.92rem; line-height:1.55; color:var(--ink-2); }
.legal-body h1, .legal-body h2, .legal-body h3,
.legal-body .iub_content h1, .legal-body .iub_content h2, .legal-body .iub_content h3{
  font-family:var(--font-display,inherit); color:var(--brand-700); font-weight:800; line-height:1.2;
}
.legal-body h1, .legal-body .iub_content h1{ font-size:1.35rem; margin:24px 0 12px; }
.legal-body h2, .legal-body .iub_content h2{ font-size:1.12rem; margin:22px 0 10px; padding-top:16px; border-top:2px solid var(--brand-50); }
.legal-body h3, .legal-body .iub_content h3{ font-size:1rem; color:var(--brand); margin:16px 0 8px; }
.legal-body a{ color:var(--brand-700); }
.legal-body ul, .legal-body ol{ padding-left:20px; }

.legal-foot{ display:flex; align-items:center; justify-content:space-between; gap:16px; flex-wrap:wrap; padding:18px 30px; background:var(--bg-soft); border-top:1px solid var(--line); }
.legal-foot #legalModalFull{ display:inline-flex; align-items:center; gap:6px; font-weight:700; font-size:.9rem; color:var(--brand-700); text-decoration:none; }
.legal-foot #legalModalFull:hover{ color:var(--brand); }
.legal-foot #legalModalFull svg{ width:16px; height:16px; }

@media (max-width:640px){
  .legal-dialog{ width:94vw; max-height:92vh; }
  .legal-head{ padding:22px 20px 16px; }
  .legal-title{ font-size:1.4rem; }
  .legal-body{ padding:8px 20px 20px; }
  .legal-foot{ padding:16px 20px; }
  .legal-close-btn{ order:-1; width:100%; text-align:center; }
}

/* Touchpoint strip (listing) */
.tp-strip{ margin-top:60px; border-top:1px solid var(--line); padding-top:42px; }
.tp-lead{ text-align:center; font-weight:600; color:var(--ink-2); margin:0 0 22px; }
.tp-grid{ list-style:none; margin:0; padding:0; display:grid; grid-template-columns:repeat(5,1fr); gap:14px; }
.tp-item{ display:flex; flex-direction:column; align-items:center; gap:12px; text-align:center; padding:22px 12px; background:#fff; border:1px solid var(--line); transition:border-color .18s ease, transform .18s ease; }
.tp-item:hover{ border-color:var(--brand-300); transform:translateY(-2px); }
.tp-logo{ width:44px; height:44px; display:inline-flex; }
.tp-logo svg{ width:100%; height:100%; display:block; }
.tp-name{ font-size:.82rem; font-weight:600; color:var(--ink); line-height:1.25; }
@media (max-width:900px){ .tp-grid{ grid-template-columns:repeat(3,1fr); } }
@media (max-width:560px){ .tp-grid{ grid-template-columns:repeat(2,1fr); } }
