/* =========================================================================
   LOVABYTE — ART DIRECTION
   Palette ufficiale invariata. Composizione, scala, foto, ritmo.
   Caricare DOPO style.css.
   ========================================================================= */

:root {
  --ad-ink: var(--navy);
  --ad-paper: #ffffff;
  --ad-mist: var(--pale);
  --ad-signal: var(--blue);
  --ad-sky: var(--sky);
  --ad-field: var(--teal);
  --ad-soft: var(--mint);
  --ad-warm: var(--tan);
  --ad-rule: #07074e33;
  --ad-radius: 2px;
}

/* Evita che la galleria Hub allarghi il documento (scroll orizzontale pagina). */
body.ad-on {
  overflow-x: clip;
}

/* Header: più tecnico, meno “pill” */
body.ad-on .site-header {
  background: transparent;
  border-bottom: 1px solid transparent;
  height: 78px;
}
/* Home desktop: l'hero sale sotto l'header sticky, così il testo chiaro
   sta davvero sulla foto scura (non sul wash chiaro del body). */
body.ad-on.ad-home .ad-hero {
  margin-top: -78px;
}
body.ad-on.ad-home .site-header:not(.scrolled) {
  color: #fff;
}
body.ad-on.ad-home .site-header:not(.scrolled) .nav-links a {
  color: #e8f4fc;
}
body.ad-on.ad-home .site-header:not(.scrolled) .nav-links a:hover,
body.ad-on.ad-home .site-header:not(.scrolled) .nav-links a.active {
  color: #fff;
  background: #ffffff14;
  box-shadow: none;
}
body.ad-on.ad-home .site-header:not(.scrolled) .icon-btn,
body.ad-on.ad-home .site-header:not(.scrolled) .nav-toggle {
  background: #ffffff14;
  border-color: #ffffff33;
  color: #fff;
}
body.ad-on.ad-home .site-header:not(.scrolled) .btn-primary {
  background: var(--ad-sky);
  color: var(--ad-ink);
}
body.ad-on.ad-home .site-header:not(.scrolled) .brand-word {
  color: #fff;
}
body.ad-on .site-header.scrolled {
  background: #fffffff5;
  border-bottom-color: var(--ad-rule);
  backdrop-filter: blur(14px);
  color: var(--ad-ink);
}
/* Scrolled (barra chiara): forza contrasto AA su logo/nav/icone */
body.ad-on.ad-home .site-header.scrolled .nav-links a {
  color: var(--text-2);
}
body.ad-on.ad-home .site-header.scrolled .nav-links a:hover,
body.ad-on.ad-home .site-header.scrolled .nav-links a.active {
  color: var(--ad-ink);
  background: #07074e0f;
}
body.ad-on.ad-home .site-header.scrolled .brand-mark img {
  filter: none;
}
body.ad-on.ad-home .site-header.scrolled .brand-word {
  color: var(--ad-ink);
}
body.ad-on.ad-home .site-header.scrolled .icon-btn,
body.ad-on.ad-home .site-header.scrolled .nav-toggle {
  background: #07074e0a;
  border-color: var(--ad-rule);
  color: var(--ad-ink);
}
body.ad-on.ad-home .site-header.scrolled .btn-primary {
  background: var(--ad-ink);
  color: #fff;
}
body.ad-on .nav-links a {
  border-radius: var(--ad-radius);
  font-size: .84rem;
  letter-spacing: .01em;
  text-transform: none;
}
body.ad-on .nav-links a.active {
  background: transparent;
  color: var(--ad-ink);
  box-shadow: inset 0 -2px 0 var(--ad-signal);
  font-weight: 700;
}
body.ad-on .btn {
  border-radius: var(--ad-radius);
}
body.ad-on .btn-primary {
  background: var(--ad-ink);
  box-shadow: none;
}
body.ad-on .btn-primary:hover {
  background: #0c1468;
  box-shadow: none;
}
body.ad-on .btn-ghost {
  border-radius: var(--ad-radius);
  border-width: 1.5px;
}
body.ad-on .eyebrow,
body.ad-on .tag {
  border-radius: var(--ad-radius);
  background: transparent;
  border: 1px solid var(--ad-rule);
  letter-spacing: .12em;
}
/* Availability overlay on product photos: must stay solid (not transparent .tag). */
body.ad-on .product-avail-badge {
  background: var(--navy);
  color: #fff;
  border: 1px solid #ffffff2e;
  letter-spacing: .01em;
  border-radius: var(--ad-radius);
}
body.ad-on .card,
body.ad-on .photo-panel,
body.ad-on .printer-scene,
body.ad-on .cta-banner,
body.ad-on .media-slot--gallery,
body.ad-on .home-gallery-item img {
  border-radius: var(--ad-radius);
}

/* Soft body wash: meno “gradient SaaS” */
body.ad-on::before {
  background:
    linear-gradient(180deg, #f7fbfe 0%, transparent 28%),
    radial-gradient(40% 30% at 100% 0%, #6acff61a, transparent 70%);
}

/* -------------------------------------------------------------------------
   HERO — evento tipografico + foto a sangue (full-bleed)
   ------------------------------------------------------------------------- */
.ad-hero {
  position: relative;
  margin: 0;
  padding: 0;
  min-height: min(94vh, 900px);
  display: block;
  background: var(--ad-ink);
  color: #fff;
  overflow: hidden;
}
.ad-hero__media {
  position: absolute;
  inset: 0;
  z-index: 0;
}
.ad-hero__media .media-slot,
.ad-hero__media .media-slot__img {
  position: absolute !important;
  inset: 0 !important;
  width: 100% !important;
  height: 100% !important;
  max-width: none !important;
  max-height: none !important;
  padding: 0 !important;
  margin: 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  aspect-ratio: auto !important;
  object-fit: cover !important;
  object-position: 58% 38% !important;
  background: transparent !important;
}
.ad-hero__media::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
  background:
    linear-gradient(100deg, #07074ed9 0%, #07074eb8 22%, #07074e66 46%, #07074e1f 68%, transparent 86%),
    linear-gradient(0deg, #07074ec2 0%, transparent 38%);
  pointer-events: none;
}
.ad-hero h1 {
  text-shadow: 0 10px 40px #07074e99;
}
.ad-hero__copy {
  position: relative;
  z-index: 2;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  min-height: min(94vh, 900px);
  padding: clamp(100px, 14vh, 160px) clamp(24px, 6vw, 80px) clamp(48px, 8vh, 80px);
  max-width: min(720px, 92vw);
}
.ad-hero__kicker {
  font-family: var(--font-mono);
  font-size: .8rem;
  letter-spacing: .18em;
  text-transform: uppercase;
  color: var(--ad-sky);
  margin-bottom: 22px;
}
.ad-hero h1 {
  font-size: clamp(3.2rem, 9vw, 7rem);
  line-height: .9;
  letter-spacing: -0.05em;
  font-weight: 800;
  max-width: 9.2ch;
  margin: 0 0 24px;
  color: #fff;
  text-wrap: balance;
}
.ad-hero .lead {
  color: #e2eef9;
  font-size: clamp(1.08rem, 1.8vw, 1.32rem);
  max-width: 36ch;
  line-height: 1.45;
  margin: 0;
}
.ad-hero__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  margin-top: 36px;
}
.ad-hero__actions .btn-lg {
  min-height: 52px;
  padding-inline: 22px;
  font-size: 1.02rem;
}
body.ad-on .ad-hero__actions .btn-primary,
body.ad-on .ad-cta .btn-primary,
body.ad-on .ad-lova__copy .btn-primary {
  background: var(--ad-sky);
  color: var(--ad-ink);
}
body.ad-on .ad-hero__actions .btn-primary:hover,
body.ad-on .ad-cta .btn-primary:hover {
  background: #fff;
  color: var(--ad-ink);
}
body.ad-on .ad-lova__copy .btn-primary {
  background: #fff;
  color: var(--ad-field);
}
body.ad-on .ad-lova__copy .btn-primary:hover {
  background: var(--ad-mist);
  color: var(--ad-ink);
}
body.ad-on .ad-hero__actions .btn-ghost,
body.ad-on .ad-cta .btn-ghost {
  border: 1.5px solid #ffffff88;
  color: #fff;
  background: transparent;
}
.ad-hero__mark {
  position: absolute;
  right: clamp(16px, 3vw, 40px);
  bottom: clamp(16px, 3vw, 40px);
  z-index: 2;
  font-family: var(--font-mono);
  font-size: .78rem;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: #fff;
  background: #07074ed9;
  border: 1px solid #ffffff40;
  padding: 10px 14px;
}

@media (max-width: 900px) {
  .ad-hero { min-height: auto; }
  .ad-hero__media {
    position: relative;
    inset: auto;
    min-height: 0;
    max-height: min(46vh, 360px);
    aspect-ratio: 16/10;
  }
  .ad-hero__media::after {
    background: linear-gradient(180deg, transparent 45%, #07074ecc 78%, #07074e 100%);
  }
  .ad-hero__media .media-slot__img {
    object-position: 52% 42% !important;
  }
  .ad-hero__copy {
    min-height: 0;
    padding: 12px var(--gutter) 24px;
    max-width: none;
    justify-content: flex-start;
    gap: 0;
  }
  .ad-hero__kicker {
    margin-bottom: 10px;
  }
  .ad-hero h1 {
    max-width: none;
    font-size: clamp(2.35rem, 11vw, 3.35rem);
    margin: 0 0 10px;
    line-height: .94;
  }
  .ad-hero .lead {
    font-size: 1.02rem;
    max-width: none;
    line-height: 1.4;
  }
  .ad-hero__actions {
    flex-direction: column;
    align-items: stretch;
    margin-top: 16px;
    gap: 10px;
  }
  .ad-hero__actions .btn {
    width: 100%;
    justify-content: center;
    min-height: 48px;
  }
  .ad-hero__mark { display: none; }
}
/* Telefono stretto: altezza intenzionale, senza fascia navy vuota */
@media (max-width: 430px) {
  .ad-hero__media {
    aspect-ratio: 5/3;
    max-height: 280px;
  }
  .ad-hero__copy {
    padding: 10px var(--gutter) 20px;
  }
  .ad-hero h1 {
    font-size: clamp(2.15rem, 10.5vw, 2.85rem);
    margin-bottom: 8px;
  }
  .ad-hero__actions { margin-top: 12px; }
}

/* -------------------------------------------------------------------------
   TRUST — fascia navy tipografica
   ------------------------------------------------------------------------- */
.ad-trust {
  background: var(--ad-ink);
  color: #c9daf0;
  padding: clamp(28px, 4vw, 44px) 0;
  border: 0;
}
.ad-trust .ad-trust__label {
  font-family: var(--font-mono);
  font-size: .72rem;
  letter-spacing: .18em;
  text-transform: uppercase;
  color: var(--ad-sky);
  margin-bottom: 18px;
  text-align: center;
}
.ad-trust .logo-row {
  gap: clamp(18px, 4vw, 48px);
}
.ad-trust .logo-row .logo {
  color: #fff;
  font-size: clamp(.95rem, 1.5vw, 1.2rem);
  font-weight: 600;
  letter-spacing: -.01em;
}

/* -------------------------------------------------------------------------
   PATH — journey mosaic (signature)
   ------------------------------------------------------------------------- */
.ad-path {
  padding: clamp(64px, 10vw, 120px) 0;
  background: var(--ad-paper);
}
.ad-path__head {
  display: grid;
  grid-template-columns: 1.2fr .8fr;
  gap: clamp(20px, 4vw, 48px);
  align-items: end;
  margin-bottom: clamp(28px, 4vw, 48px);
  padding-inline: var(--gutter);
  max-width: calc(var(--maxw) + 2 * var(--gutter));
  margin-inline: auto;
}
.ad-path__head h2 {
  font-size: clamp(1.85rem, 4.1vw, 3.05rem);
  line-height: 1.06;
  letter-spacing: -.03em;
  max-width: 18ch;
  margin: 10px 0 0;
}
.ad-path__head .lead {
  margin: 0;
  max-width: 36ch;
  color: var(--text-2);
}
.ad-path__mosaic {
  display: grid;
  grid-template-columns: 1.35fr 1fr 1fr;
  grid-template-rows: auto auto;
  gap: 10px;
  padding-inline: var(--gutter);
  max-width: calc(var(--maxw) + 2 * var(--gutter));
  margin-inline: auto;
}
.ad-path__cell {
  position: relative;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  min-height: 200px;
  padding: clamp(16px, 2.2vw, 24px);
  text-decoration: none;
  color: inherit;
  border: 1px solid var(--ad-rule);
  overflow: hidden;
  transition: transform .22s ease, border-color .22s ease, background-color .22s ease;
}
.ad-path__cell:hover {
  transform: translateY(-2px);
  border-color: var(--ad-signal);
}
.ad-path__cell:focus-visible {
  outline: 2px solid var(--ad-signal);
  outline-offset: 2px;
}
.ad-path__cell h3 {
  font-size: clamp(1.15rem, 2vw, 1.55rem);
  line-height: 1.18;
  margin: 0 0 6px;
  letter-spacing: -.02em;
}
.ad-path__cell p {
  margin: 0;
  font-size: .9rem;
  color: var(--text-2);
  max-width: 32ch;
  line-height: 1.42;
}
.ad-path__cell .ad-go {
  margin-top: 14px;
  font-weight: 700;
  font-size: .88rem;
  color: var(--ad-signal);
}
.ad-path__feature {
  grid-row: 1 / span 2;
  min-height: 440px;
  color: #fff;
  border: 0;
  background: #0a1a3a;
}
.ad-path__feature .media-slot,
.ad-path__feature .media-slot__img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  padding: 0 !important;
  border-radius: 0 !important;
  object-fit: cover;
  object-position: center 40%;
}
.ad-path__feature::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, #07074e33 0%, #07074ef2 78%);
}
.ad-path__feature > *:not(.media-slot) {
  position: relative;
  z-index: 1;
}
.ad-path__feature p { color: #d5e6f6; }
.ad-path__feature .ad-go { color: var(--ad-sky); }
.ad-path__feature h3 {
  font-size: clamp(1.7rem, 3vw, 2.4rem);
  max-width: 10ch;
}
.ad-path__tile--ink {
  background: var(--ad-ink);
  color: #fff;
  border-color: transparent;
}
.ad-path__tile--ink p { color: #b9cce4; }
.ad-path__tile--ink .ad-go { color: var(--ad-sky); }
.ad-path__tile--mist {
  background: var(--ad-mist);
  border-color: transparent;
}
.ad-path__tile--field {
  background: var(--ad-field);
  color: #fff;
  border-color: transparent;
}
.ad-path__tile--field p { color: #e5fff8; }
.ad-path__tile--field .ad-go { color: #fff; }
.ad-path__soft {
  margin: 18px auto 0;
  padding-inline: var(--gutter);
  max-width: calc(var(--maxw) + 2 * var(--gutter));
  display: flex;
  flex-wrap: wrap;
  gap: 10px 28px;
  align-items: baseline;
  font-size: .95rem;
  color: var(--text-2);
  border-top: 1px solid var(--ad-rule);
  padding-top: 18px;
}
.ad-path__soft strong {
  color: var(--ad-ink);
  font-family: var(--font-mono);
  font-size: .78rem;
  letter-spacing: .12em;
  text-transform: uppercase;
  margin-right: 8px;
}
.ad-path__soft a {
  font-weight: 700;
  color: var(--ad-signal);
}

@media (max-width: 900px) {
  .ad-path { padding: clamp(48px, 8vw, 80px) 0; }
  .ad-path__head {
    grid-template-columns: 1fr;
    margin-bottom: 22px;
  }
  .ad-path__head h2 { max-width: none; }
  .ad-path__mosaic {
    grid-template-columns: 1fr 1fr;
    grid-template-rows: auto;
    gap: 8px;
  }
  .ad-path__feature {
    grid-column: 1 / -1;
    grid-row: auto;
    min-height: 280px;
  }
  .ad-path__feature h3 { max-width: 14ch; }
}
@media (max-width: 560px) {
  .ad-path__mosaic { grid-template-columns: 1fr; }
  .ad-path__cell { min-height: 168px; }
  .ad-path__feature { min-height: 260px; }
}

/* -------------------------------------------------------------------------
   HUB — fotografia a sangue
   ------------------------------------------------------------------------- */
.ad-hub {
  padding: clamp(56px, 9vw, 110px) 0 0;
  background: #f4f8fc;
  overflow-x: clip;
}
.ad-hub__intro {
  display: grid;
  grid-template-columns: 1.1fr .9fr;
  gap: clamp(20px, 4vw, 56px);
  align-items: end;
  margin-bottom: clamp(24px, 4vw, 40px);
}
.ad-hub__intro h2 {
  font-size: clamp(2rem, 4.6vw, 3.5rem);
  max-width: 14ch;
  line-height: 1.05;
  margin: 10px 0 0;
}
.ad-hub__intro .lead { margin: 0; max-width: 38ch; }
.ad-hub__rail-wrap {
  margin-inline: 0;
  padding-bottom: clamp(40px, 6vw, 72px);
  overflow-x: auto;
  max-width: 100%;
  width: 100%;
  overscroll-behavior-x: contain;
  -webkit-overflow-scrolling: touch;
}
.ad-hub .home-gallery {
  padding-inline: var(--gutter);
  gap: 8px;
  max-width: 100%;
  width: 100%;
  box-sizing: border-box;
  /* scroll orizzontale sul gallery stesso — non allarga il documento */
  overflow-x: auto;
  overscroll-behavior-x: contain;
}
.ad-hub .home-gallery-item {
  /* vw evita il ciclo % → crescita del flex parent → scrollWidth documento */
  flex: 0 0 min(82vw, 760px);
  border-radius: 0;
  min-width: 0;
  position: relative;
  overflow: hidden;
}
.ad-hub .home-gallery-item .media-slot,
.ad-hub .home-gallery-item img {
  border-radius: 0 !important;
  aspect-ratio: 16/10;
  object-fit: cover;
  width: 100%;
  height: 100%;
}
.ad-hub .home-gallery-item .media-slot--pos-center .media-slot__img {
  object-position: center 40%;
}
.ad-hub .home-gallery-item .media-slot--pos-bottom .media-slot__img {
  object-position: center 72%;
}
@media (max-width: 900px) {
  .ad-hub .home-gallery-item {
    flex: 0 0 min(88vw, 520px);
  }
  .ad-hub .home-gallery-item .media-slot,
  .ad-hub .home-gallery-item img {
    aspect-ratio: 4/3;
  }
}
.ad-hub .home-gallery-nav {
  padding-inline: var(--gutter);
  margin-bottom: 14px;
}
.ad-hub .home-gallery-dot {
  border-radius: var(--ad-radius);
  width: 40px;
  height: 32px;
}
.ad-hub__foot {
  display: flex;
  flex-wrap: wrap;
  gap: 14px 22px;
  align-items: center;
  justify-content: space-between;
  padding: 22px var(--gutter) 0;
  max-width: calc(var(--maxw) + 2 * var(--gutter));
  margin-inline: auto;
  border-top: 1px solid var(--ad-rule);
  margin-top: 8px;
}
@media (max-width: 900px) {
  .ad-hub__intro { grid-template-columns: 1fr; }
  .ad-hub__intro h2 { max-width: none; }
}

/* -------------------------------------------------------------------------
   LOVAPRINT — product brand field
   ------------------------------------------------------------------------- */
.ad-lova {
  display: grid;
  grid-template-columns: 1fr 1.05fr;
  min-height: min(72vh, 680px);
  background: var(--ad-field);
  color: #fff;
}
.ad-lova__copy {
  padding: clamp(48px, 8vw, 96px) clamp(24px, 5vw, 64px);
  display: flex;
  flex-direction: column;
  justify-content: center;
}
.ad-lova__copy .ad-kicker {
  font-family: var(--font-mono);
  letter-spacing: .16em;
  text-transform: uppercase;
  font-size: .78rem;
  color: #d8fff4;
  margin-bottom: 18px;
}
.ad-lova__copy h2 {
  font-size: clamp(2.4rem, 5.5vw, 4.2rem);
  line-height: .98;
  letter-spacing: -.035em;
  max-width: 10ch;
  margin: 0 0 18px;
  color: #fff;
}
.ad-lova__copy .lead {
  color: #e7fff8;
  max-width: 34ch;
}
.ad-lova .spec-inline {
  margin-top: 28px;
  border-color: #ffffff33;
  display: grid;
  gap: 0;
}
.ad-lova .spec-inline li { border-top-color: #ffffff33; }
.ad-lova .spec-inline strong { color: #fff; }
.ad-lova .spec-inline span { color: #d9fff3; }
.ad-lova__copy .btn-primary {
  background: #fff;
  color: var(--ad-field);
  align-self: flex-start;
  margin-top: 28px;
}
.ad-lova__copy .btn-primary:hover {
  background: var(--ad-mist);
  color: var(--ad-ink);
}
.ad-lova__media {
  position: relative;
  min-height: 320px;
}
.ad-lova__media .media-slot,
.ad-lova__media .media-slot__img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  padding: 0 !important;
  border-radius: 0 !important;
  object-fit: cover;
  object-position: center 42%;
}
@media (max-width: 900px) {
  .ad-lova { grid-template-columns: 1fr; min-height: 0; }
  .ad-lova__media { order: -1; aspect-ratio: 16/11; min-height: 0; }
  .ad-lova__copy {
    padding: clamp(32px, 6vw, 48px) var(--gutter) clamp(40px, 7vw, 56px);
  }
  .ad-lova__copy h2 { max-width: none; }
  .ad-lova__copy .btn-primary {
    align-self: stretch;
    justify-content: center;
    margin-top: 22px;
  }
}

/* -------------------------------------------------------------------------
   PROCESS — numeri grandi + foto
   ------------------------------------------------------------------------- */
.ad-process {
  padding: clamp(64px, 10vw, 120px) 0;
  background: var(--ad-paper);
}
.ad-process__layout {
  display: grid;
  grid-template-columns: .85fr 1.15fr;
  gap: clamp(28px, 5vw, 64px);
  align-items: start;
}
.ad-process__layout h2 {
  font-size: clamp(2rem, 4.4vw, 3.3rem);
  max-width: 12ch;
  line-height: 1.05;
  margin: 10px 0 14px;
}
.ad-process__steps {
  display: grid;
  gap: 0;
  border-top: 1px solid var(--ad-rule);
}
.ad-process__step {
  display: grid;
  grid-template-columns: 4.5rem 1fr;
  gap: 18px;
  padding: 22px 0;
  border-bottom: 1px solid var(--ad-rule);
}
.ad-process__n {
  font-family: var(--font-display);
  font-weight: 800;
  font-size: clamp(1.8rem, 3vw, 2.4rem);
  line-height: 1;
  color: var(--ad-signal);
  letter-spacing: -.03em;
}
.ad-process__step h3 {
  font-size: 1.15rem;
  margin: 0 0 6px;
}
.ad-process__step p {
  margin: 0;
  color: var(--text-2);
  font-size: .95rem;
  max-width: 48ch;
}
.ad-process__media {
  position: sticky;
  top: calc(var(--nav-h) + 20px);
  min-height: 420px;
  background: #0e2038;
}
.ad-process__media .media-slot,
.ad-process__media .media-slot__img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  padding: 0 !important;
  border-radius: 0 !important;
  object-fit: cover;
  object-position: center 45%;
}
.ad-process .hero-actions {
  margin-top: 22px;
  gap: 10px;
}
@media (max-width: 900px) {
  .ad-process { padding: clamp(48px, 8vw, 80px) 0; }
  .ad-process__layout { grid-template-columns: 1fr; }
  .ad-process__media {
    position: relative;
    top: auto;
    min-height: 0;
    aspect-ratio: 16/10;
    order: -1;
  }
  .ad-process__step {
    grid-template-columns: 3.2rem 1fr;
    gap: 12px;
    padding: 16px 0;
  }
  .ad-process .hero-actions {
    flex-direction: column;
    align-items: stretch;
  }
  .ad-process .hero-actions .btn {
    width: 100%;
    justify-content: center;
    min-height: 48px;
  }
}

/* -------------------------------------------------------------------------
   METRICS / COMMUNITY / CTA
   ------------------------------------------------------------------------- */
.ad-metrics {
  background: var(--ad-mist);
  border: 0;
  padding: clamp(36px, 6vw, 64px) 0;
}
.ad-metrics .stat-tile .n { color: var(--ad-ink); }
.ad-metrics .stat-tile .l { color: #35506f; }

.ad-community {
  padding: clamp(64px, 10vw, 120px) 0;
}
.ad-community__grid {
  display: grid;
  grid-template-columns: 1.05fr .95fr;
  gap: clamp(28px, 5vw, 64px);
  align-items: start;
}
.ad-community h2 {
  font-size: clamp(2rem, 4.4vw, 3.3rem);
  max-width: 14ch;
  line-height: 1.05;
}
.ad-community .topic-list {
  border-top: 2px solid var(--ad-ink);
}
.ad-community .topic-row {
  padding: 22px 0;
}
.ad-community .topic-row .tag {
  display: none;
}
.ad-community .topic-row h3 {
  font-size: 1.35rem;
}

.ad-cta {
  background: var(--ad-ink);
  color: #fff;
  padding: clamp(64px, 10vw, 120px) var(--gutter);
  text-align: left;
}
.ad-cta .container {
  display: grid;
  grid-template-columns: 1.2fr .8fr;
  gap: 28px;
  align-items: end;
}
.ad-cta h2 {
  font-size: clamp(2.2rem, 5vw, 3.8rem);
  color: #fff;
  max-width: 12ch;
  line-height: 1.02;
  margin: 10px 0 14px;
}
.ad-cta .lead { color: #c9daf0; margin: 0; }
.ad-cta .ad-kicker {
  font-family: var(--font-mono);
  letter-spacing: .16em;
  text-transform: uppercase;
  color: var(--ad-sky);
  font-size: .78rem;
}
.ad-cta .hero-actions .btn-primary {
  background: var(--ad-sky);
  color: var(--ad-ink);
}
.ad-cta .hero-actions .btn-ghost {
  color: #fff;
  border-color: #ffffff55;
}
@media (max-width: 900px) {
  .ad-community__grid,
  .ad-cta .container { grid-template-columns: 1fr; }
  .ad-cta { text-align: left; }
  .ad-cta h2 { max-width: none; }
}

/* -------------------------------------------------------------------------
   PAGE HEROES — più editoriali
   ------------------------------------------------------------------------- */
body.ad-on .page-hero {
  text-align: left;
  background: var(--ad-ink);
  color: #fff;
  padding: clamp(72px, 12vw, 140px) 0 clamp(40px, 6vw, 72px);
  margin-bottom: 0;
}
@media (max-width: 900px) {
  body.ad-on .page-hero {
    padding: clamp(88px, 18vw, 110px) 0 clamp(28px, 5vw, 40px);
  }
  body.ad-on .page-hero h1 {
    max-width: none;
    font-size: clamp(2rem, 9vw, 2.8rem);
  }
}
body.ad-on .page-hero .container,
body.ad-on .page-hero {
  max-width: none;
}
body.ad-on .page-hero > * {
  max-width: var(--maxw);
  margin-inline: auto;
  padding-inline: var(--gutter);
}
body.ad-on .page-hero .breadcrumb { color: #9eb6d4; }
body.ad-on .page-hero .breadcrumb a { color: var(--ad-sky); }
body.ad-on .page-hero .eyebrow {
  border-color: #ffffff33;
  color: var(--ad-sky);
}
body.ad-on .page-hero h1 {
  color: #fff;
  max-width: 16ch;
  margin-inline: 0;
  font-size: clamp(2.4rem, 6vw, 4.2rem);
}
body.ad-on .page-hero .lead {
  color: #c9daf0;
  margin-inline: 0;
}
body.ad-on .page-hero .hero-actions { justify-content: flex-start; }

/* Process strip on servizi: sharper */
body.ad-on .process-strip {
  border-top: 2px solid var(--ad-ink);
}
body.ad-on .process-step {
  border-right: 1px solid var(--ad-rule);
  padding-block: 28px;
}
body.ad-on .process-step::before {
  width: 40px;
  height: 4px;
  background: var(--ad-signal);
}

/* Footer */
body.ad-on .site-footer {
  background: #05063a;
  color: #c2d4ea;
  border-top: 0;
}
body.ad-on .site-footer a { color: #e8f1fb; }
body.ad-on .site-footer .footer-col h5 { color: var(--ad-sky); }
body.ad-on .site-footer .muted,
body.ad-on .site-footer .footer-news-note { color: #9db4d0; }
body.ad-on .footer-bottom { border-top-color: #ffffff22; color: #8aa3c2; }

/* Confronta / prodotti — meno “database” */
body.ad-on #printerGrid,
body.ad-on .product-grid {
  gap: 12px !important;
}
body.ad-on #printerGrid .card,
body.ad-on .product-card {
  border-radius: var(--ad-radius);
  border: 1px solid var(--ad-rule);
  box-shadow: none;
  padding: 0;
  overflow: hidden;
}
body.ad-on #printerGrid .card:hover,
body.ad-on .product-card:hover {
  border-color: var(--ad-signal);
  transform: none;
}
/* Shop catalog: product-grid reflow (not fixed cols-4) */
body.ad-on.ad-page-commerce #griglia.product-grid,
body.ad-on #griglia.product-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(min(260px, 100%), 1fr));
  gap: 16px !important;
}
body.ad-on #griglia.product-grid .product-card {
  min-width: 0;
}
body.ad-on #griglia.product-grid .product-card__media {
  border-radius: 0;
}
body.ad-on #griglia.product-grid .product-card h3,
body.ad-on #griglia.product-grid .product-card h2 {
  overflow-wrap: anywhere;
  hyphens: auto;
}
body.ad-on .filter-chip {
  border-radius: var(--ad-radius);
}
body.ad-on .filter-chip.active {
  background: var(--ad-ink);
}

/* Legal / utility page-hero ghost CTAs on dark navy */
body.ad-on .page-hero .btn-ghost {
  border-color: #ffffff66;
  color: #fff;
}

/* Logo leggibile su hero scuro (prima dello scroll) */
body.ad-on.ad-home .site-header:not(.scrolled) .brand-mark img {
  filter: brightness(0) invert(1);
}
body.ad-on.ad-home .site-header:not(.scrolled) {
  background: transparent;
}
/* Su mobile lo stack mette la foto sopra: header resta chiaro */
@media (max-width: 900px) {
  body.ad-on.ad-home .site-header:not(.scrolled) {
    background: #fffffff5;
    color: var(--ad-ink);
  }
  body.ad-on.ad-home .site-header:not(.scrolled) .nav-links a { color: var(--text-2); }
  body.ad-on.ad-home .site-header:not(.scrolled) .brand-mark img { filter: none; }
  body.ad-on.ad-home .site-header:not(.scrolled) .icon-btn,
  body.ad-on.ad-home .site-header:not(.scrolled) .nav-toggle {
    background: #07074e0a;
    border-color: var(--ad-rule);
    color: var(--ad-ink);
  }
  body.ad-on.ad-home .site-header:not(.scrolled) .btn-primary {
    background: var(--ad-ink);
    color: #fff;
  }
}

/* =========================================================================
   INTERNAL PAGE HERO — homepage continuity (full-bleed photo + overlay)
   Homepage (.ad-hero / .ad-home) is FROZEN. Polish pass only — no redesign.
   Pattern: branded photography (text-side navy → subject side lighter).
   ========================================================================= */

.ad-page-hero {
  position: relative;
  margin: 0;
  padding: 0;
  min-height: min(68vh, 700px);
  display: block;
  background: var(--ad-ink);
  color: #fff;
  overflow: hidden;
}
.ad-page-hero--hub,
.ad-page-hero--servizi,
.ad-page-hero--filamenti,
.ad-page-hero--assist,
.ad-page-hero--community {
  min-height: min(74vh, 780px);
}
.ad-page-hero--academy,
.ad-page-hero--market {
  min-height: min(68vh, 720px);
}
.ad-page-hero--compact {
  min-height: min(40vh, 380px);
}
.ad-page-hero__media {
  position: absolute;
  inset: 0;
  z-index: 0;
}
.ad-page-hero__media .media-slot,
.ad-page-hero__media .media-slot__img {
  position: absolute !important;
  inset: 0 !important;
  width: 100% !important;
  height: 100% !important;
  max-width: none !important;
  max-height: none !important;
  padding: 0 !important;
  margin: 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  aspect-ratio: auto !important;
  object-fit: cover !important;
  background: transparent !important;
}
/* Top veil: header contrast over photography (not a solid bar) */
.ad-page-hero__media::before {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  top: 0;
  height: min(130px, 20%);
  z-index: 2;
  background: linear-gradient(180deg, #07074ecc 0%, #07074e55 42%, transparent 100%);
  pointer-events: none;
}
/* Default layered overlay — text left, photo right (soft, not a navy slab) */
.ad-page-hero__media::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
  background:
    linear-gradient(105deg, #07074ee0 0%, #07074eb0 18%, #07074e66 40%, #07074e24 62%, #07074e0a 78%, transparent 92%),
    linear-gradient(0deg, #07074ea6 0%, transparent 42%);
  pointer-events: none;
}
/* Per-page overlays — preserve subject color / personality */
.ad-page-hero--hub .ad-page-hero__media::after {
  /* Yellow wall + mural: clear the right/mid ASAP */
  background:
    linear-gradient(98deg, #07074ee8 0%, #07074eb0 14%, #07074e48 32%, #07074e12 52%, transparent 68%),
    linear-gradient(0deg, #07074e88 0%, transparent 36%);
}
.ad-page-hero--filamenti .ad-page-hero__media::after {
  /* AMS spool colors + yellow wall: open mid/right */
  background:
    linear-gradient(108deg, #07074ee6 0%, #07074eb0 16%, #07074e4a 36%, #07074e12 56%, transparent 74%),
    linear-gradient(0deg, #07074e7a 0%, transparent 34%);
}
.ad-page-hero--servizi .ad-page-hero__media::after {
  /* Benchy/printer: keep dimensional highlights on the right */
  background:
    linear-gradient(100deg, #07074ee0 0%, #07074eb0 18%, #07074e58 42%, #07074e18 64%, transparent 82%),
    linear-gradient(0deg, #07074e96 0%, transparent 40%);
}
.ad-page-hero--assist .ad-page-hero__media::after {
  /* Hands/tools/machine: denser text side, lighter on subject */
  background:
    linear-gradient(96deg, #07074ee8 0%, #07074eba 18%, #07074e62 42%, #07074e20 64%, transparent 84%),
    linear-gradient(0deg, #07074e9e 0%, transparent 38%);
}
.ad-page-hero--community .ad-page-hero__media::after {
  /* People/environment: natural mid tones */
  background:
    linear-gradient(100deg, #07074ee0 0%, #07074ea8 18%, #07074e52 42%, #07074e14 66%, transparent 84%),
    linear-gradient(0deg, #07074e8c 0%, transparent 36%);
}
.ad-page-hero--academy .ad-page-hero__media::after,
.ad-page-hero--market .ad-page-hero__media::after {
  background:
    linear-gradient(102deg, #07074ee3 0%, #07074eb5 20%, #07074e62 44%, #07074e1c 66%, transparent 84%),
    linear-gradient(0deg, #07074e9e 0%, transparent 40%);
}
.ad-page-hero--shop .ad-page-hero__media::after,
.ad-page-hero--tool .ad-page-hero__media::after,
.ad-page-hero--blog .ad-page-hero__media::after,
.ad-page-hero--contact .ad-page-hero__media::after {
  background:
    linear-gradient(100deg, #07074ee0 0%, #07074eB0 22%, #07074e58 48%, #07074e18 70%, transparent 88%),
    linear-gradient(0deg, #07074e96 0%, transparent 44%);
}

.ad-page-hero__copy {
  position: relative;
  z-index: 3;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  min-height: inherit;
  padding: clamp(100px, 12vh, 140px) clamp(24px, 5vw, 72px) clamp(40px, 6vh, 64px);
  max-width: min(680px, 92vw);
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
  backdrop-filter: none !important;
}
.ad-page-hero--compact .ad-page-hero__copy {
  padding-top: clamp(96px, 11vh, 120px);
  padding-bottom: clamp(28px, 4vh, 44px);
}
.ad-page-hero .breadcrumb {
  color: #b7cce4;
  margin: 0 0 14px;
  font-size: .88rem;
  max-width: none;
  padding: 0;
  background: transparent;
}
.ad-page-hero .breadcrumb a { color: var(--ad-sky); }
.ad-page-hero__kicker,
body.ad-on .ad-page-hero .eyebrow {
  font-family: var(--font-mono);
  font-size: .78rem;
  letter-spacing: .16em;
  text-transform: uppercase;
  color: var(--ad-sky);
  border: 1px solid #ffffff44;
  background: transparent;
  margin: 0 0 16px;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  width: fit-content;
  padding: 6px 10px;
}
body.ad-on .ad-page-hero .eyebrow .dot { background: var(--ad-sky); }
.ad-page-hero h1 {
  font-size: clamp(2.5rem, 6.4vw, 4.5rem);
  line-height: .94;
  letter-spacing: -0.045em;
  font-weight: 800;
  max-width: 12.5ch;
  margin: 0 0 16px;
  color: #fff;
  text-shadow: 0 10px 40px #07074e99;
  text-wrap: balance;
}
.ad-page-hero--compact h1 {
  font-size: clamp(2.05rem, 5vw, 3.25rem);
  max-width: 16ch;
}
.ad-page-hero h1 .gradient-text {
  color: var(--ad-sky);
  background: none;
  -webkit-text-fill-color: var(--ad-sky);
}
.ad-page-hero .lead {
  color: #e2eef9;
  font-size: clamp(1.02rem, 1.55vw, 1.18rem);
  max-width: 36ch;
  line-height: 1.45;
  margin: 0;
}
.ad-page-hero .hero-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  margin-top: 28px;
  justify-content: flex-start;
  background: transparent !important;
  border: 0 !important;
  padding: 0 !important;
  box-shadow: none !important;
  backdrop-filter: none !important;
}
/* Beat body.ad-on .btn-primary (navy) — same specificity pattern as homepage */
body.ad-on .ad-page-hero .btn-primary {
  background: var(--ad-sky);
  color: var(--ad-ink);
  box-shadow: none;
}
body.ad-on .ad-page-hero .btn-primary:hover {
  background: #fff;
  color: var(--ad-ink);
}
body.ad-on .ad-page-hero .btn-ghost {
  border: 1.5px solid #ffffff99;
  color: #fff;
  background: transparent;
}
body.ad-on .ad-page-hero .btn-ghost:hover {
  background: #ffffff18;
  color: #fff;
  border-color: #fff;
}
body.ad-on .ad-page-hero .btn-primary:focus-visible {
  outline: 2px solid #fff;
  outline-offset: 3px;
}
body.ad-on .ad-page-hero .btn-ghost:focus-visible {
  outline: 2px solid var(--ad-sky);
  outline-offset: 3px;
}

/* Status — secondary editorial note, not a white warning box */
.ad-page-hero__status {
  margin-top: 22px;
  max-width: 40ch;
  padding: 14px 16px;
  border: 1px solid #ffffff33;
  background: #07074ecc;
  backdrop-filter: blur(8px);
  border-radius: var(--ad-radius);
  color: #e8f1fb;
  font-size: .92rem;
  line-height: 1.45;
}
.ad-page-hero__status strong { color: #fff; }
.ad-page-hero__status p { margin: 0; }
.ad-page-hero__status a { color: var(--ad-sky); text-decoration: underline; }
.ad-page-hero__status .eyebrow {
  margin-bottom: 8px;
  color: var(--ad-sky);
  background: transparent;
}

/* Per-page focal crops */
.ad-page-hero--servizi .ad-page-hero__media .media-slot__img { object-position: 58% 40% !important; }
.ad-page-hero--assist .ad-page-hero__media .media-slot__img { object-position: 70% 30% !important; }
.ad-page-hero--filamenti .ad-page-hero__media .media-slot__img { object-position: 72% 45% !important; }
.ad-page-hero--shop .ad-page-hero__media .media-slot__img { object-position: 62% 42% !important; }
.ad-page-hero--hub .ad-page-hero__media .media-slot__img { object-position: 58% 55% !important; }
.ad-page-hero--community .ad-page-hero__media .media-slot__img { object-position: 60% 38% !important; }
.ad-page-hero--academy .ad-page-hero__media .media-slot__img { object-position: 48% 52% !important; }
.ad-page-hero--market .ad-page-hero__media .media-slot__img { object-position: 52% 42% !important; }
.ad-page-hero--blog .ad-page-hero__media .media-slot__img { object-position: 65% 48% !important; }
.ad-page-hero--tool .ad-page-hero__media .media-slot__img { object-position: 55% 40% !important; }
.ad-page-hero--contact .ad-page-hero__media .media-slot__img { object-position: 50% 32% !important; }

/* Desktop: header underlap (homepage-like) */
body.ad-on:has(.ad-page-hero) .ad-page-hero {
  margin-top: -78px;
}
body.ad-on:has(.ad-page-hero) .site-header:not(.scrolled) {
  color: #fff;
  background: transparent;
}
body.ad-on:has(.ad-page-hero) .site-header:not(.scrolled) .nav-links a {
  color: #e8f4fc;
}
body.ad-on:has(.ad-page-hero) .site-header:not(.scrolled) .nav-links a:hover,
body.ad-on:has(.ad-page-hero) .site-header:not(.scrolled) .nav-links a.active {
  color: #fff;
  background: #ffffff18;
  box-shadow: none;
}
body.ad-on:has(.ad-page-hero) .site-header:not(.scrolled) .icon-btn,
body.ad-on:has(.ad-page-hero) .site-header:not(.scrolled) .nav-toggle {
  background: #ffffff18;
  border-color: #ffffff44;
  color: #fff;
}
body.ad-on:has(.ad-page-hero) .site-header:not(.scrolled) .btn-primary {
  background: var(--ad-sky);
  color: var(--ad-ink);
}
body.ad-on:has(.ad-page-hero) .site-header:not(.scrolled) .brand-word {
  color: #fff;
}
body.ad-on:has(.ad-page-hero) .site-header:not(.scrolled) .brand-mark img {
  filter: brightness(0) invert(1);
}
body.ad-on:has(.ad-page-hero) .site-header.scrolled .nav-links a {
  color: var(--text-2);
}
body.ad-on:has(.ad-page-hero) .site-header.scrolled .nav-links a:hover,
body.ad-on:has(.ad-page-hero) .site-header.scrolled .nav-links a.active {
  color: var(--ad-ink);
  background: #07074e0f;
}
body.ad-on:has(.ad-page-hero) .site-header.scrolled .brand-mark img {
  filter: none;
}
body.ad-on:has(.ad-page-hero) .site-header.scrolled .brand-word {
  color: var(--ad-ink);
}
body.ad-on:has(.ad-page-hero) .site-header.scrolled .icon-btn,
body.ad-on:has(.ad-page-hero) .site-header.scrolled .nav-toggle {
  background: #07074e0a;
  border-color: var(--ad-rule);
  color: var(--ad-ink);
}
body.ad-on:has(.ad-page-hero) .site-header.scrolled .btn-primary {
  background: var(--ad-ink);
  color: #fff;
}

/* Below-hero rhythm */
body.ad-on main > .ad-page-hero + .container,
body.ad-on main > .ad-page-hero + section {
  margin-top: 0;
  padding-top: clamp(28px, 4.5vw, 48px);
}
body.ad-on.ad-page-commerce .shop-trust {
  margin-top: 0;
  margin-bottom: 12px;
  background: #fff;
  border-bottom: 1px solid var(--ad-rule);
  padding-top: clamp(16px, 2.5vw, 22px) !important;
}
body.ad-on.ad-page-commerce .shop-trust > div {
  background: transparent !important;
  border: 0 !important;
  border-radius: 0 !important;
}
body.ad-on.ad-page-place .hub-photo-panel {
  padding: 0;
  overflow: hidden;
  border-radius: var(--ad-radius);
  border: 1px solid var(--ad-rule);
  background: #fff;
}
body.ad-on.ad-page-place .hub-photo-panel .media-slot { margin: 0; border-radius: 0; }
body.ad-on.ad-page-tool .quiz {
  border-radius: var(--ad-radius);
  border: 1px solid var(--ad-rule);
}

body.ad-on:not(.ad-home) .ad-page-hero .reveal {
  opacity: 1;
  transform: none;
}

@media (max-width: 900px) {
  body.ad-on:has(.ad-page-hero) .site-header:not(.scrolled) {
    background: #fffffff5;
    color: var(--ad-ink);
  }
  body.ad-on:has(.ad-page-hero) .site-header:not(.scrolled) .nav-links a { color: var(--text-2); }
  body.ad-on:has(.ad-page-hero) .site-header:not(.scrolled) .brand-mark img { filter: none; }
  body.ad-on:has(.ad-page-hero) .site-header:not(.scrolled) .icon-btn,
  body.ad-on:has(.ad-page-hero) .site-header:not(.scrolled) .nav-toggle {
    background: #07074e0a;
    border-color: var(--ad-rule);
    color: var(--ad-ink);
  }
  body.ad-on:has(.ad-page-hero) .site-header:not(.scrolled) .btn-primary {
    background: var(--ad-ink);
    color: #fff;
  }
  body.ad-on:has(.ad-page-hero) .site-header:not(.scrolled) .brand-word {
    color: var(--ad-ink);
  }

  .ad-page-hero,
  .ad-page-hero--compact,
  .ad-page-hero--hub,
  .ad-page-hero--servizi,
  .ad-page-hero--filamenti,
  .ad-page-hero--assist,
  .ad-page-hero--community,
  .ad-page-hero--academy,
  .ad-page-hero--market {
    min-height: 0;
  }
  .ad-page-hero__media {
    position: relative;
    inset: auto;
    aspect-ratio: 4/3;
    max-height: min(46vh, 340px);
  }
  .ad-page-hero--compact .ad-page-hero__media {
    aspect-ratio: 16/10;
    max-height: min(32vh, 240px);
  }
  .ad-page-hero__media::before { height: 56px; opacity: .55; }
  .ad-page-hero__media::after {
    /* Soft bottom lift into copy — not a hard navy slab over the photo */
    background: linear-gradient(180deg, transparent 22%, #07074e66 52%, #07074ed9 100%);
  }
  .ad-page-hero__copy {
    min-height: 0 !important;
    max-width: none;
    margin-top: -96px;
    padding: 100px var(--gutter) 24px;
    justify-content: flex-start;
    /* Continuity with photo: fade into ink, avoid a hard rectangle edge */
    background: linear-gradient(180deg, transparent 0%, #07074ecc 22%, #07074e 48%, #07074e 100%) !important;
    border: 0 !important;
    box-shadow: none !important;
    backdrop-filter: none !important;
  }
  .ad-page-hero--compact .ad-page-hero__copy {
    margin-top: -68px;
    padding-top: 76px;
    padding-bottom: 18px;
  }
  .ad-page-hero h1 {
    max-width: none;
    font-size: clamp(1.95rem, 9vw, 2.7rem);
    margin-bottom: 10px;
  }
  .ad-page-hero .lead {
    max-width: none;
    font-size: 1.02rem;
  }
  .ad-page-hero .hero-actions {
    flex-direction: column;
    align-items: stretch;
    margin-top: 16px;
  }
  .ad-page-hero .hero-actions .btn {
    width: 100%;
    justify-content: center;
    min-height: 48px;
  }
  .ad-page-hero__status { max-width: none; }

  /* Mobile crops — keep subject in frame */
  .ad-page-hero--servizi .ad-page-hero__media .media-slot__img { object-position: 55% 35% !important; }
  .ad-page-hero--assist .ad-page-hero__media .media-slot__img { object-position: 55% 25% !important; }
  .ad-page-hero--filamenti .ad-page-hero__media .media-slot__img { object-position: 60% 40% !important; }
  .ad-page-hero--hub .ad-page-hero__media .media-slot__img { object-position: 50% 48% !important; }
  .ad-page-hero--community .ad-page-hero__media .media-slot__img { object-position: 50% 30% !important; }
  .ad-page-hero--shop .ad-page-hero__media .media-slot__img { object-position: 55% 38% !important; }
  .ad-page-hero--academy .ad-page-hero__media .media-slot__img { object-position: 45% 45% !important; }
  .ad-page-hero--market .ad-page-hero__media .media-slot__img { object-position: 48% 38% !important; }
  .ad-page-hero--blog .ad-page-hero__media .media-slot__img { object-position: 55% 42% !important; }
  .ad-page-hero--tool .ad-page-hero__media .media-slot__img { object-position: 50% 36% !important; }
  .ad-page-hero--contact .ad-page-hero__media .media-slot__img { object-position: 50% 28% !important; }
}
@media (max-width: 430px) {
  .ad-page-hero__media { max-height: 250px; }
  .ad-page-hero--compact .ad-page-hero__media { max-height: 190px; }
  .ad-page-hero__copy { margin-top: -72px; padding-top: 80px; }
}
@media (prefers-reduced-motion: reduce) {
  .ad-page-hero h1 { text-shadow: none; }
  .ad-page-hero__status { backdrop-filter: none; }
}

/* =========================================================================
   PAGE FAMILIES — function-based refinement (photographic system preserved)
   Homepage .ad-home remains FROZEN aside from shared overflow geometry fixes.
   ========================================================================= */

/* FAMILY A — Service / technical: denser hero → form */
body.ad-on.ad-page-service .ad-page-hero--servizi,
body.ad-on.ad-page-service .ad-page-hero--assist {
  min-height: min(62vh, 640px);
}
body.ad-on main > .ad-page-hero--servizi + section .card,
body.ad-on main > .ad-page-hero--assist + section .card {
  border-radius: var(--ad-radius);
  border-color: var(--ad-rule);
}
/* Soft editorial handoff into quote/assist forms */
body.ad-on main > .ad-page-hero--servizi + section.container,
body.ad-on main > .ad-page-hero--servizi + .container,
body.ad-on main > .ad-page-hero--assist + section,
body.ad-on main > .ad-page-hero--assist + .container {
  padding-top: clamp(22px, 3.5vw, 40px);
}

/* FAMILY B — Commerce: compact hero, catalog first */
body.ad-on.ad-page-commerce .ad-page-hero--shop,
body.ad-on.ad-page-commerce .ad-page-hero--filamenti.ad-page-hero--compact {
  min-height: min(36vh, 340px);
}
body.ad-on.ad-page-commerce .ad-page-hero--filamenti:not(.ad-page-hero--compact) {
  min-height: min(58vh, 620px);
}
body.ad-on.ad-page-commerce .ad-page-hero--shop .ad-page-hero__copy {
  max-width: min(560px, 92vw);
}
body.ad-on.ad-page-commerce .ad-page-hero--shop h1 {
  max-width: 14ch;
  font-size: clamp(2.1rem, 5vw, 3.4rem);
}

/* FAMILY C — Hub / place: less SaaS card chrome on story */
body.ad-on.ad-page-place .ad-place-story__block {
  padding: 0;
  background: transparent;
  border: 0;
  box-shadow: none;
}
body.ad-on.ad-page-place .ad-place-story__block .icon-badge {
  margin-bottom: 10px;
}
body.ad-on.ad-page-place .ad-place-story__block h3 {
  font-size: clamp(1.35rem, 2.4vw, 1.75rem);
  letter-spacing: -0.03em;
  max-width: 18ch;
}
body.ad-on.ad-page-place .ad-place-story__block p {
  max-width: 36ch;
}
body.ad-on.ad-page-place .hub-photo-panel {
  border-radius: var(--ad-radius);
  border: 0;
  box-shadow: none;
}
body.ad-on.ad-page-place .hub-photo-panel .media-slot,
body.ad-on.ad-page-place .hub-photo-panel .media-slot__img {
  border-radius: var(--ad-radius);
  aspect-ratio: 4/3;
  object-fit: cover;
  width: 100%;
}

/* FAMILY D — Coming soon: intentionally compact */
body.ad-on.ad-page-soon .ad-page-hero--academy,
body.ad-on.ad-page-soon .ad-page-hero--market {
  min-height: min(48vh, 480px);
}
body.ad-on.ad-page-soon .ad-page-hero--blog.ad-page-hero--compact,
body.ad-on .ad-page-hero--blog.ad-page-hero--compact {
  min-height: min(32vh, 300px);
}
body.ad-on .ad-page-hero--academy .ad-page-hero__status,
body.ad-on .ad-page-hero--market .ad-page-hero__status,
body.ad-on .ad-page-hero--community .ad-page-hero__status {
  max-width: 42ch;
}
.ad-soon-empty {
  text-align: left;
  max-width: 42ch;
  margin: 0 auto;
  padding: clamp(20px, 4vw, 36px) 0 clamp(48px, 8vw, 80px);
  border: 0;
  background: transparent;
  box-shadow: none;
}
.ad-soon-empty p { margin: 0; }
.ad-soon-empty .muted { font-size: .95rem; }

/* FAMILY E — Tool entry */
body.ad-on.ad-page-tool .ad-page-hero--compact {
  min-height: min(34vh, 320px);
}
body.ad-on.ad-page-tool .quiz {
  border-radius: var(--ad-radius);
}

/* Contact: compact, form-first */
body.ad-on .ad-page-hero--contact.ad-page-hero--compact {
  min-height: min(32vh, 300px);
}

/* Community portrait crop: give the photo more of the field on desktop */
@media (min-width: 901px) {
  .ad-page-hero--community .ad-page-hero__media .media-slot__img {
    object-position: 62% 28% !important;
  }
  .ad-page-hero--community .ad-page-hero__copy {
    max-width: min(640px, 50vw);
  }
}

/* Filamenti category tiles: avoid forced 4-col crush on mid widths */
body.ad-on.ad-page-commerce .section .grid.cols-4 {
  grid-template-columns: repeat(auto-fill, minmax(min(220px, 100%), 1fr));
}

/* Filamenti: open the photo field (less navy slab, more AMS/spool presence) */
@media (min-width: 901px) {
  body.ad-on.ad-page-commerce .ad-page-hero--filamenti:not(.ad-page-hero--compact) .ad-page-hero__media::after {
    background:
      linear-gradient(112deg, #07074ee8 0%, #07074ea8 12%, #07074e42 28%, #07074e10 46%, transparent 64%),
      linear-gradient(0deg, #07074e66 0%, transparent 30%);
  }
  body.ad-on.ad-page-commerce .ad-page-hero--filamenti:not(.ad-page-hero--compact) .ad-page-hero__copy {
    max-width: min(520px, 44vw);
  }
}

/* Comparison table: horizontal scroll stays inside the component */
body.ad-on.ad-page-tool .cmp-wrap,
body.ad-on.ad-page-tool .table-wrap {
  max-width: 100%;
  overflow-x: auto;
  overscroll-behavior-x: contain;
  -webkit-overflow-scrolling: touch;
}

/* Place family: values/team keep utility but lose SaaS glow */
body.ad-on.ad-page-place .section.band .card,
body.ad-on.ad-page-place .section .card {
  border-radius: var(--ad-radius);
  box-shadow: none;
}
body.ad-on.ad-page-place .card-glow::before { opacity: 0 !important; }

@media (max-width: 900px) {
  body.ad-on.ad-page-service .ad-page-hero--servizi,
  body.ad-on.ad-page-service .ad-page-hero--assist,
  body.ad-on.ad-page-soon .ad-page-hero--academy,
  body.ad-on.ad-page-soon .ad-page-hero--market {
    min-height: 0;
  }
}


