/* Iannello Inox V1.0.6 — White-first content surfaces and red compact header.
 * Goals: preserve the anti-overlap spacing corrections, keep content sections
 * predominantly white and restore the Iannello red header after scroll. */

:root {
  --qv-page-gutter: max(clamp(1.25rem, 4.5vw, 5rem), calc((100vw - 86rem) / 2));
  --qv-reading-width: 46rem;
}

/* Safer typographic geometry: long Italian and translated strings must never overlap. */
.qv-home--v3 :where(h1, h2, h3, strong, p, li, a, span),
.qv-internal :where(h1, h2, h3, strong, p, li, a, span),
.qv-footer :where(h2, h3, p, li, a, address, span) {
  min-width: 0;
  overflow-wrap: break-word;
  word-break: normal;
  hyphens: auto;
}

.qv-home--v3 :where(p, li),
.qv-internal :where(p, li) {
  line-height: 1.68;
}

.qv-home--v3 .qv-home-section,
.qv-lead,
.qv-footer__cta,
.qv-footer__grid,
.qv-footer__bottom {
  padding-inline: var(--qv-page-gutter);
}

.qv-home--v3 .qv-home-section {
  padding-top: clamp(5rem, 8vw, 8rem);
  padding-bottom: clamp(5rem, 8vw, 8rem);
}

.qv-home--v3 .qv-section-heading,
.qv-home--v3 .qv-section-heading--editorial {
  gap: clamp(2.5rem, 5vw, 5.5rem);
  margin-bottom: clamp(3rem, 5vw, 5rem);
}

.qv-home--v3 .qv-section-heading .qv-kicker,
.qv-home--v3 .qv-section-heading--editorial .qv-kicker {
  margin: 0 0 1rem;
}

.qv-home--v3 .qv-section-heading--editorial h2,
.qv-home--v3 .qv-process-system__heading h2,
.qv-home--v3 .qv-evolution__content h2,
.qv-home--v3 .qv-credibility__headline h2,
.qv-home--v3 .qv-lead__intro h2,
.qv-footer h2,
.qv-internal-hero h1,
.qv-internal-section h2,
.qv-contact-card h2 {
  letter-spacing: -0.04em;
  line-height: 1.02;
}

.qv-home--v3 .qv-section-heading--editorial h2 {
  max-width: 16ch;
  font-size: clamp(2.7rem, 4.75vw, 5.7rem);
}

.qv-home--v3 .qv-section-heading--editorial > p,
.qv-home--v3 .qv-process-system__heading > p:not(.qv-kicker),
.qv-home--v3 .qv-credibility__headline > p:not(.qv-kicker),
.qv-home--v3 .qv-lead__intro > p,
.qv-internal-split p {
  max-width: var(--qv-reading-width);
}

/* Header: transparent on the hero, compact Iannello red after scroll. */
.home .qv-header.qv-header--compact {
  background: rgb(200 16 34 / 98%) !important;
  color: #fff !important;
  border-bottom-color: rgb(255 255 255 / 24%) !important;
  box-shadow: 0 0.5rem 2rem rgb(87 8 18 / 20%);
}

.home .qv-header.qv-header--compact .qv-brand__light {
  display: block !important;
}

.home .qv-header.qv-header--compact .qv-brand__dark {
  display: none !important;
}

.home .qv-header.qv-header--compact .qv-brand img {
  filter: none !important;
}

.home .qv-header.qv-header--compact .qv-navigation--desktop a,
.home .qv-header.qv-header--compact .qv-search-toggle,
.home .qv-header.qv-header--compact .qv-nav-toggle,
.home .qv-header.qv-header--compact .qv-language summary {
  color: #fff !important;
}

.home .qv-header.qv-header--compact .qv-button--header {
  border-color: #fff !important;
  background: #fff !important;
  color: var(--qv-color-brand) !important;
}

.home .qv-header.qv-header--compact .qv-button--header:hover,
.home .qv-header.qv-header--compact .qv-button--header:focus-visible {
  border-color: #fff !important;
  background: transparent !important;
  color: #fff !important;
}

/* Hero spacing: preserve the cinematic image but prevent title collisions. */
.qv-hero--v3 .qv-hero__content {
  width: auto;
  margin-inline: var(--qv-page-gutter);
  gap: clamp(2.5rem, 6vw, 7rem);
}

.qv-hero--v3 h1 {
  max-width: 12ch;
  font-size: clamp(3.4rem, 6.3vw, 7rem);
  letter-spacing: -0.045em;
  line-height: 0.98;
}

.qv-hero--v3 .qv-hero__intro {
  max-width: 45rem;
  line-height: 1.68;
}

/* White-first surfaces. */
.qv-products--v3,
.qv-journeys--v3,
.qv-process-system,
.qv-credibility--v3,
.qv-services-home--v3,
.qv-lead--v3,
.qv-evolution--v3,
.qv-internal,
.qv-internal-section,
.qv-internal-section--dark,
.qv-contact-card,
.qv-contact-card--accent {
  background: #fff;
  color: var(--qv-color-ink);
}

.qv-journeys--v3 {
  background: #fff;
}

.qv-journeys--v3 .qv-journeys__grid {
  border-color: #e8e8e5;
  background: #e8e8e5;
}

.qv-journeys--v3 .qv-journey {
  grid-template-rows: auto 1fr auto;
  min-height: 28rem;
  padding: clamp(2rem, 3.4vw, 3.25rem);
  background: #fff;
}

.qv-journeys--v3 .qv-journey h3 {
  max-width: 12ch;
  margin: clamp(2.5rem, 5vw, 5rem) 0 1.25rem;
  font-size: clamp(2rem, 3vw, 3.45rem);
  letter-spacing: -0.035em;
  line-height: 1.05;
}

.qv-journeys--v3 .qv-journey p {
  margin: 0 0 2rem;
  line-height: 1.68;
}

.qv-journeys--v3 .qv-journey:hover {
  background: #fff7f8;
  color: var(--qv-color-ink);
}

.qv-journeys--v3 .qv-journey:hover :where(h3, p) {
  color: inherit;
}

.qv-journeys--v3 .qv-journey:hover > span,
.qv-journeys--v3 .qv-journey:hover a {
  color: var(--qv-color-brand);
}

/* Evolution: white editorial split, red only as accent. */
.qv-evolution--v3 {
  min-height: auto;
  border-top: 1px solid #ececea;
  border-bottom: 1px solid #ececea;
}

.qv-evolution__media::after {
  background: linear-gradient(90deg, transparent 72%, rgb(255 255 255 / 90%));
}

.qv-evolution__content {
  padding: clamp(5rem, 8vw, 8rem) var(--qv-page-gutter) clamp(5rem, 8vw, 8rem) clamp(2.5rem, 6vw, 6rem);
}

.qv-evolution__content .qv-kicker,
.qv-evolution__content h2,
.qv-evolution__content > p,
.qv-evolution__content li {
  color: var(--qv-color-ink);
}

.qv-evolution__content .qv-kicker {
  color: var(--qv-color-brand);
}

.qv-evolution__content h2 {
  max-width: 12ch;
  font-size: clamp(2.9rem, 5vw, 5.75rem);
}

.qv-evolution__content > p {
  line-height: 1.68;
}

.qv-evolution__content ul {
  border-top-color: #dededa;
}

.qv-evolution__content li {
  border-bottom-color: #dededa;
}

.qv-evolution__content .qv-button--light {
  border-color: var(--qv-color-brand);
  background: var(--qv-color-brand);
  color: #fff;
}

/* Process: generous margins and no sticky collision on ordinary laptop screens. */
.qv-process-system {
  gap: clamp(3.5rem, 6vw, 6.5rem);
}

.qv-process-system__heading h2 {
  max-width: 11ch;
  font-size: clamp(2.8rem, 4.9vw, 5.7rem);
}

.qv-process-card__body {
  padding: clamp(2rem, 3vw, 3.25rem);
}

.qv-process-card__body strong {
  max-width: 18ch;
  font-size: clamp(1.75rem, 2.45vw, 2.85rem);
  letter-spacing: -0.035em;
  line-height: 1.06;
}

.qv-process-card__body small,
.qv-process-card__body > span {
  line-height: 1.65;
}

/* Credibility: white field, red iconography and rules. */
.qv-credibility--v3 {
  border-top: 1px solid #ececea;
  border-bottom: 1px solid #ececea;
}

.qv-credibility--v3 .qv-kicker {
  color: var(--qv-color-brand);
}

.qv-credibility--v3 h2,
.qv-credibility--v3 .qv-credibility__headline > p:not(.qv-kicker),
.qv-credibility--v3 .qv-credibility__list strong,
.qv-credibility--v3 .qv-credibility__list span {
  color: var(--qv-color-ink);
}

.qv-credibility--v3 .qv-credibility__list {
  border-top-color: #dddeda;
}

.qv-credibility--v3 .qv-credibility__list li {
  border-bottom-color: #dddeda;
}

.qv-credibility__icon svg {
  stroke: var(--qv-color-brand);
}

.qv-credibility--v3 .qv-button--light {
  border-color: var(--qv-color-brand);
  background: var(--qv-color-brand);
  color: #fff;
}

/* Services and lead: white surfaces separated by subtle borders. */
.qv-services-home--v3 {
  background: #fff;
  border-bottom: 1px solid #ececea;
}

.qv-services-home--v3 .qv-services-home__grid {
  background: #e8e8e5;
}

.qv-services-home--v3 .qv-services-home__grid article {
  min-height: 17rem;
  padding: clamp(2rem, 3vw, 3rem);
}

.qv-services-home--v3 .qv-services-home__grid h3 {
  margin-top: clamp(2.25rem, 4vw, 3.5rem);
  line-height: 1.08;
}

.qv-services-home--v3 .qv-services-home__grid article:hover {
  background: #fff7f8;
}

.qv-lead--v3 {
  gap: clamp(3rem, 6vw, 6rem);
  padding-top: clamp(5rem, 8vw, 8rem);
  padding-bottom: clamp(5rem, 8vw, 8rem);
  border-bottom: 1px solid #ececea;
}

.qv-lead--v3 .qv-lead__intro {
  padding: clamp(2.25rem, 4vw, 4rem);
  border: 1px solid #e6e6e2;
  background: #fff;
  color: var(--qv-color-ink);
}

.qv-lead--v3 .qv-lead__intro .qv-kicker {
  color: var(--qv-color-brand);
}

.qv-lead--v3 .qv-lead__intro h2,
.qv-lead--v3 .qv-lead__intro > p:last-of-type,
.qv-lead--v3 .qv-lead__checklist strong,
.qv-lead--v3 .qv-lead__checklist ul {
  color: var(--qv-color-ink);
}

.qv-lead--v3 .qv-lead__checklist {
  border-top-color: #dededa;
}

.qv-lead--v3 .qv-lead__checklist li::before {
  color: var(--qv-color-brand);
}

/* Footer: one red CTA, then a white information area. */
.qv-footer--red {
  background: #fff;
  color: #555a5d;
}

.qv-footer--red .qv-footer__cta {
  background: var(--qv-color-brand);
  color: #fff;
  border-bottom: 0;
}

.qv-footer--red .qv-footer__cta :where(h2, .qv-kicker, .qv-text-action, .qv-text-action:visited) {
  color: #fff;
}

.qv-footer--red .qv-footer__grid {
  background: #fff;
}

.qv-footer--red .qv-footer__grid :where(h3, a, a:visited, address) {
  color: var(--qv-color-ink);
}

.qv-footer--red .qv-footer__grid a:hover,
.qv-footer--red .qv-footer__grid a:focus-visible {
  color: var(--qv-color-brand);
  opacity: 1;
}

.qv-footer--red .qv-footer__brand img {
  filter: none;
}

.qv-footer--red .qv-footer__socials a {
  border-color: #cfd0cd;
  color: var(--qv-color-brand);
}

.qv-footer--red .qv-footer__contacts small {
  color: #6c7072;
}

.qv-footer--red .qv-footer__bottom {
  border-top-color: #dededa;
  background: #f7f7f5;
  color: #676b6d;
}

/* Internal pages: white replaces red/dark full-section backgrounds. */
.qv-internal {
  background: #fff;
}

.qv-internal-shell {
  width: min(calc(100% - (2 * clamp(1.25rem, 4.5vw, 5rem))), 86rem);
}

.qv-internal-hero {
  min-height: auto;
  padding: clamp(9rem, 14vw, 12rem) 0 clamp(5rem, 8vw, 8rem);
  background: #fff;
  color: var(--qv-color-ink);
  border-bottom: 1px solid #ececea;
}

.qv-internal-hero p:not(.qv-kicker) {
  color: #5d6264;
}

.qv-internal-hero figure {
  background: #f4f4f1;
}

.qv-internal-section--dark,
.qv-contact-card--accent {
  background: #fff;
  color: var(--qv-color-ink);
}

.qv-internal-section--dark :where(h2, h3, p, span),
.qv-contact-card--accent :where(h2, h3, p, address, a, li) {
  color: var(--qv-color-ink);
}

.qv-internal-section--dark .qv-internal-cards,
.qv-internal-section--dark .qv-internal-cards article {
  background: #fff;
}

.qv-internal-section--dark .qv-internal-cards {
  gap: 1px;
  background: #dededa;
}

.qv-internal-section--dark .qv-internal-cards article {
  border: 0;
}

.qv-internal-section--dark .qv-internal-cards article span {
  color: var(--qv-color-brand);
}

.qv-internal-section--dark .qv-internal-cards article p {
  color: #575c5e;
}

/* Earlier responsive collapse prevents narrow columns and overlapping headings. */
@media (max-width: 80rem) {
  .qv-home--v3 .qv-section-heading--editorial,
  .qv-process-system,
  .qv-credibility--v3,
  .qv-lead--v3,
  .qv-evolution--v3,
  .qv-internal-hero__grid,
  .qv-internal-split,
  .qv-contact-grid {
    grid-template-columns: 1fr;
  }

  .qv-process-system__heading {
    position: static;
  }

  .qv-evolution__media {
    min-height: clamp(24rem, 55vw, 40rem);
  }

  .qv-evolution__media::after {
    background: linear-gradient(0deg, #fff 0%, rgb(255 255 255 / 0%) 45%);
  }

  .qv-evolution__content {
    padding: clamp(4rem, 7vw, 6rem) var(--qv-page-gutter);
  }
}

@media (max-width: 64rem) {
  :root {
    --qv-page-gutter: clamp(1.25rem, 4.5vw, 2.5rem);
  }

  .qv-home--v3 .qv-home-section {
    padding-top: clamp(4.5rem, 9vw, 6rem);
    padding-bottom: clamp(4.5rem, 9vw, 6rem);
  }

  .qv-journeys--v3 .qv-journeys__grid,
  .qv-services-home--v3 .qv-services-home__grid {
    grid-template-columns: 1fr 1fr;
  }

  .qv-hero--v3 .qv-hero__content {
    margin-inline: var(--qv-page-gutter);
  }
}

@media (max-width: 48rem) {
  .qv-home--v3 .qv-section-heading--editorial h2,
  .qv-home--v3 .qv-process-system__heading h2,
  .qv-home--v3 .qv-evolution__content h2,
  .qv-home--v3 .qv-credibility__headline h2,
  .qv-home--v3 .qv-lead__intro h2,
  .qv-footer h2,
  .qv-internal-hero h1,
  .qv-internal-section h2,
  .qv-contact-card h2 {
    max-width: none;
    font-size: clamp(2.35rem, 10.5vw, 3.65rem);
    letter-spacing: -0.03em;
    line-height: 1.06;
  }

  .qv-hero--v3 .qv-hero__content {
    width: auto;
    margin-inline: var(--qv-page-gutter);
    padding-top: 8.5rem;
    padding-bottom: 13rem;
  }

  .qv-hero--v3 h1 {
    max-width: none;
    font-size: clamp(2.8rem, 12vw, 4.25rem);
    line-height: 1.02;
  }

  .qv-journeys--v3 .qv-journeys__grid,
  .qv-services-home--v3 .qv-services-home__grid {
    grid-template-columns: 1fr;
  }

  .qv-journeys--v3 .qv-journey {
    min-height: auto;
  }

  .qv-process-card {
    min-height: auto;
  }

  .qv-process-card__body {
    padding: 1.75rem 1.4rem 2.1rem;
  }

  .qv-process-card__body strong {
    max-width: none;
    font-size: clamp(1.8rem, 8vw, 2.5rem);
  }

  .qv-credibility--v3 .qv-credibility__list li {
    grid-template-columns: 2.6rem 1fr;
    gap: 0.85rem 1rem;
    align-items: start;
  }

  .qv-credibility--v3 .qv-credibility__list li > span:last-child {
    grid-column: 2;
  }

  .qv-lead-form {
    grid-template-columns: 1fr;
  }

  .qv-lead-form__wide {
    grid-column: auto;
  }

  .qv-footer__cta,
  .qv-footer__grid,
  .qv-footer__bottom {
    padding-inline: var(--qv-page-gutter);
  }
}
