/* Self-hosted fonts (no CDN, no cookies) */
@font-face {
  font-family: "Hanken Grotesk";
  font-style: normal;
  font-weight: 400 800;
  font-display: swap;
  src: url("https://offerte.generaltape.it/assets/fonts/hanken-grotesk-latin.woff2") format("woff2");
}

@font-face {
  font-family: "Montserrat";
  font-style: normal;
  font-weight: 600 800;
  font-display: swap;
  src: url("https://offerte.generaltape.it/assets/fonts/montserrat-latin.woff2") format("woff2");
}

:root {
  --bg: #fcf9f8;
  --bg-soft: #f3efec;
  --surface: #fffdfa;
  --surface-muted: #f4f7fa;
  --line: #dde3ea;
  --line-strong: #cfd7df;
  --text: #0f264f;
  --text-muted: #566578;
  --navy: #00285a;
  --navy-deep: #001634;
  --orange: #fea100;
  --orange-deep: #ed9808;
  --green: #97c14d;
  --shadow-soft: 0 20px 50px rgba(9, 28, 60, 0.08);
  --shadow-card: 0 10px 24px rgba(9, 28, 60, 0.08);
  --radius-xs: 4px;
  --radius-sm: 8px;
  --radius-md: 14px;
  --radius-lg: 20px;
  --shell: 1200px;
  --gutter: clamp(16px, 4vw, 28px);
  --display: "Montserrat", "Trebuchet MS", sans-serif;
  --body: "Hanken Grotesk", "Segoe UI", sans-serif;
}

*,
*::before,
*::after {
  box-sizing: border-box;
}

html {
  scroll-behavior: smooth;
}

html.is-animating {
  scroll-behavior: auto;
}

body {
  margin: 0;
  font-family: var(--body);
  color: var(--text);
  background:
    radial-gradient(circle at top right, rgba(254, 161, 0, 0.08), transparent 22%),
    linear-gradient(180deg, #fffefd 0%, var(--bg) 100%);
  overflow-x: clip;
}

img {
  display: block;
  max-width: 100%;
  height: auto;
}

a {
  color: inherit;
  text-decoration: none;
}

button,
input {
  font: inherit;
}

.shell {
  width: min(calc(100% - (var(--gutter) * 2)), var(--shell));
  margin: 0 auto;
}

.section {
  padding: clamp(56px, 9vw, 110px) 0;
}

.section--warm {
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.35), rgba(255, 255, 255, 0.35)),
    var(--bg-soft);
  border-top: 1px solid rgba(0, 40, 90, 0.08);
  border-bottom: 1px solid rgba(0, 40, 90, 0.08);
}

.section--navy {
  background:
    radial-gradient(circle at top right, rgba(254, 161, 0, 0.14), transparent 24%),
    linear-gradient(180deg, var(--navy-deep), #061d3f 60%, var(--navy));
}

.site-header {
  /* position: sticky;
  top: 0;
  z-index: 20; */
  background: rgba(255, 252, 249, 0.96);
  backdrop-filter: blur(14px);
  border-bottom: 1px solid rgba(0, 40, 90, 0.08);
}

.header-inner {
  min-height: 78px;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 24px;
  padding: 16px var(--gutter);
}

.brand img {
  width: min(300px, 50vw);
}

.page-enter {
  opacity: 0;
  transform: translateY(22px);
  transition:
    opacity 680ms cubic-bezier(0.22, 1, 0.36, 1),
    transform 680ms cubic-bezier(0.22, 1, 0.36, 1);
}

.page-enter--delay-1 {
  transition-delay: 100ms;
}

.page-enter--delay-2 {
  transition-delay: 180ms;
}

.page-enter--delay-3 {
  transition-delay: 280ms;
}

body.is-ready .page-enter {
  opacity: 1;
  transform: translateY(0);
}

.promo-pill {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 11px 16px;
  border-radius: 999px;
  color: var(--orange-deep);
  /* background: rgba(254, 161, 0, 0.1); */
  background: #fcf9f8;
  border: 2px solid var(--orange-deep);
  font-size: 0.95rem;
  font-weight: 700;
  white-space: nowrap;
  animation: promoFloat 4.2s ease-in-out infinite;
}

.promo-pill__dot {
  width: 10px;
  height: 10px;
  border-radius: 50%;
  background: linear-gradient(180deg, #ffbf4b, #ff8f00);
  box-shadow: 0 0 0 6px rgba(254, 161, 0, 0.15);
  animation: promoPulse 1.8s ease-out infinite;
}

.countdown-bar {
  background: rgba(245, 241, 238, 0.88);
  border-bottom: 1px solid rgba(0, 40, 90, 0.08);
}

.countdown-inner {
  padding: 14px 0 16px;
  display: flex;
  flex-direction: column;
  align-items: center;
}

.countdown-inner .promo-pill {
  margin-bottom: 10px;
}

.eyebrow,
.section-tag,
.field span,
.options-box legend {
  text-transform: uppercase;
  letter-spacing: 0.08em;
}

.eyebrow {
  margin: 0 0 10px;
  color: #7f8691;
  font-size: 0.72rem;
  font-weight: 800;
  text-align: center;
}

.countdown-grid {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: clamp(8px, 1.8vw, 18px);
}

.countdown-grid[hidden] {
  display: none;
}

.countdown-unit {
  min-width: clamp(52px, 8vw, 76px);
  text-align: center;
}

.countdown-unit strong {
  display: block;
  font-family: var(--display);
  font-size: clamp(1.7rem, 3.4vw, 2.7rem);
  line-height: 1;
  color: var(--orange);
  transform-origin: 50% 70%;
}

.countdown-unit strong.is-ticking {
  animation: countdownTick 380ms cubic-bezier(0.22, 1, 0.36, 1);
}

.countdown-unit span {
  display: block;
  margin-top: 4px;
  color: #858b94;
  font-size: 0.64rem;
  font-weight: 800;
}

.countdown-separator {
  margin-top: -10px;
  color: var(--orange);
  font-family: var(--display);
  font-size: 1.7rem;
  font-weight: 700;
}

/* Mini countdown sticky: appare in alto allo scroll, sotto il countdown grande */
.countdown-mini {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  z-index: 60;
  background: rgba(252, 249, 248, 0.94);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  border-bottom: 1px solid rgba(0, 40, 90, 0.1);
  box-shadow: 0 2px 10px rgba(0, 22, 52, 0.06);
  transform: translateY(-100%);
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transition:
    transform 420ms cubic-bezier(0.22, 1, 0.36, 1),
    opacity 320ms cubic-bezier(0.22, 1, 0.36, 1),
    visibility 0s linear 420ms;
}

.countdown-mini.is-visible {
  transform: translateY(0);
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
  transition:
    transform 420ms cubic-bezier(0.22, 1, 0.36, 1),
    opacity 320ms cubic-bezier(0.22, 1, 0.36, 1),
    visibility 0s;
}

.countdown-mini[hidden] {
  display: none;
}

.countdown-mini__inner {
  min-height: 40px;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
  padding: 6px var(--gutter);
}

.countdown-mini__label {
  text-transform: uppercase;
  letter-spacing: 0.08em;
  font-size: 0.66rem;
  font-weight: 800;
  color: #7f8691;
  white-space: nowrap;
}

.countdown-mini__time {
  display: inline-flex;
  align-items: baseline;
  font-family: var(--display);
  font-weight: 400;
  font-size: 0.65rem;
  line-height: 1;
  color: rgba(0, 22, 52, 0.55);
  letter-spacing: 0.01em;
}

.countdown-mini__time b {
  font-size: 0.98rem;
  color: var(--orange);
  font-weight: 700;
  font-variant-numeric: tabular-nums;
}

.countdown-mini__colon {
  color: rgba(0, 22, 52, 0.28);
  margin: 0 4px;
}

@media (max-width: 520px) {
  .countdown-mini__inner {
    gap: 8px;
  }

  .countdown-mini__label {
    font-size: 0.58rem;
    letter-spacing: 0.06em;
  }

  .countdown-mini__time {
    font-size: 0.6rem;
  }

  .countdown-mini__time b {
    font-size: 0.9rem;
  }
}

@media (prefers-reduced-motion: reduce) {
  .countdown-mini {
    transition: visibility 0s linear 0s;
  }

  .countdown-mini.is-visible {
    transition: none;
  }
}

.hero {
  /* padding: clamp(30px, 5vw, 56px) 0 clamp(40px, 7vw, 78px); */
  padding-top: clamp(32px, 6vw, 72px);
  padding-bottom: clamp(32px, 6vw, 72px);
}

.hero-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.08fr) minmax(280px, 0.92fr);
  gap: clamp(22px, 4vw, 42px);
  align-items: center;
}

.section-tag {
  display: inline-flex;
  align-items: center;
  margin-bottom: 18px;
  padding: 7px 11px;
  border-radius: 999px;
  border: 1px solid rgba(0, 40, 90, 0.12);
  background: rgba(244, 247, 250, 0.9);
  color: #5f6d80;
  font-size: 0.68rem;
  font-weight: 800;
}

.hero-copy h1,
.section-heading h2,
.form-panel h2,
.thanks-card h1 {
  margin: 0;
  font-family: var(--display);
  letter-spacing: 0;
}

.hero-copy h1 {
  /* font-size: clamp(2.45rem, 5.3vw, 4.6rem);
  line-height: 0.95; */
  font-size: clamp(2.05rem, 5.8vw, 4.25rem);
  line-height: 0.98;
  letter-spacing: -0.045em;
}

.hero-copy h1 span,
.highlight-callout span,
.form-panel h2 span {
  color: var(--orange);
}

.hero-copy h1 span {
  display: inline-block;
  margin-top: 0.16em;
}

.hero-copy p {
  max-width: 35rem;
  margin: 20px 0 0;
  color: var(--text-muted);
  /* font-size: 1.05rem; */
  /* line-height: 1.6; */
  line-height: 1.45;
  font-size: clamp(1rem, 1.6vw, 1.18rem);
}

.cta-button {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
  margin-top: 22px;
  padding: 16px 22px;
  border: 0;
  border-radius: var(--radius-sm);
  background: linear-gradient(180deg, #ffad14 0%, #ff9e00 100%);
  box-shadow: 0 10px 24px rgba(254, 161, 0, 0.28);
  color: #fffefb;
  font-size: 0.95rem;
  font-weight: 800;
  text-transform: uppercase;
  cursor: pointer;
  transform: perspective(600px) translateY(var(--ty, 0px))
    rotateX(var(--rx, 0deg)) rotateY(var(--ry, 0deg));
  transition: transform 220ms ease, box-shadow 220ms ease, filter 220ms ease;
  isolation: isolate;
  overflow: hidden;
}

.cta-button.is-tilting {
  transition: transform 90ms ease-out, box-shadow 220ms ease, filter 220ms ease;
}

.cta-button::before {
  content: "";
  position: absolute;
  inset: 0;
  border-radius: inherit;
  background: linear-gradient(120deg, transparent 10%, rgba(255, 255, 255, 0.3), transparent 70%);
  transform: translateX(-130%);
  transition: transform 620ms ease;
  z-index: -1;
}

.cta-button:hover,
.cta-button:focus-visible {
  --ty: -1px;
  box-shadow: 0 14px 28px rgba(254, 161, 0, 0.32);
  filter: saturate(1.02);
}

.cta-button:hover::before,
.cta-button:focus-visible::before {
  transform: translateX(130%);
}

.cta-button svg {
  width: 20px;
  height: 20px;
  stroke: currentColor;
  stroke-width: 2.25;
  fill: none;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.hero-visual {
  margin: 0;
  position: relative;
  max-width: 480px;
  justify-self: end;
  
}

.hero-visual::before {
  content: "";
  position: absolute;
  inset: auto auto -18px 18px;
  width: 80%;
  height: 28px;
  background: rgba(0, 40, 90, 0.1);
  filter: blur(18px);
  z-index: 0;
}

.hero-visual img {
  position: relative;
  z-index: 1;
  width: 100%;
  border-radius: 16px;
  box-shadow: var(--shadow-soft);
  transform: perspective(1100px)
    translate3d(0, calc(var(--py, 0px) + var(--ty, 0px)), 0)
    rotateX(var(--rx, 0deg)) rotateY(var(--ry, 0deg))
    scale(var(--sc, 1));
  transition: transform 560ms cubic-bezier(0.22, 1, 0.36, 1), box-shadow 560ms ease;
}

.hero-visual:hover img {
  --ty: -6px;
  --sc: 1.01;
  box-shadow: 0 28px 60px rgba(9, 28, 60, 0.14);
}

/* While the pointer is actively tilting, track it snappily;
   on leave the 560ms ease-out above springs it back. */
.hero-visual img.is-tilting {
  transition: transform 90ms ease-out, box-shadow 560ms ease;
}

/* Count-up odometer: each digit is a wheel that rolls into place.
   Fallback (no-JS / reduced-motion) keeps the plain "10" text.
   Scoped to beat `.hero-copy h1 span { display:inline-block; margin-top }`. */
.hero-copy h1 .countup,
.countup {
  display: inline-flex;
  height: 1em;
  margin: 0;
  line-height: 1;
  overflow: hidden;
  vertical-align: baseline;
  font-variant-numeric: tabular-nums;
}

.countup .cu-digit {
  display: block;
  height: 1em;
  margin: 0;
  overflow: hidden;
}

.countup .cu-track {
  display: flex;
  flex-direction: column;
  margin: 0;
  transform: translateY(0);
}

.countup .cu-track > span {
  display: block;
  height: 1em;
  margin: 0;
  line-height: 1;
  min-width: 1ch;
  text-align: center;
}

.section-heading {
  margin-bottom: clamp(28px, 5vw, 42px);
  text-align: center;
}

.section-heading--tight {
  max-width: 940px;
  margin: 0 auto 34px;
}

.section-heading h2,
.form-panel h2 {
  font-size: clamp(1.8rem, 3.5vw, 2.5rem);
  line-height: 1.08;
  text-wrap: balance;
}

.reveal {
  opacity: 0;
  transform: translateY(30px);
  transition:
    opacity 720ms cubic-bezier(0.22, 1, 0.36, 1),
    transform 720ms cubic-bezier(0.22, 1, 0.36, 1);
  transition-delay: var(--reveal-delay, 0ms);
}

.reveal.is-visible {
  opacity: 1;
  transform: translateY(0);
}

.pain-grid,
.product-grid {
  display: grid;
  gap: 18px;
}

.pain-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.info-card,
.product-card {
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: var(--radius-md);
}

.info-card {
  min-height: 250px;
  padding: 30px 26px 28px;
  text-align: center;
  box-shadow: var(--shadow-card);
  transition:
    transform 280ms cubic-bezier(0.22, 1, 0.36, 1),
    box-shadow 280ms ease,
    border-color 280ms ease;
}

.info-card__icon {
  width: 64px;
  height: 64px;
  margin: 0 auto 22px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  background: rgba(254, 161, 0, 0.12);
  color: var(--orange);
}

.info-card__icon svg {
  width: 42px;
  height: 42px;
  fill: none;
  stroke: currentColor;
  stroke-width: 2;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.info-card h3,
.product-card h3 {
  margin: 0;
  font-family: var(--display);
  letter-spacing: 0;
  font-size: 1.58rem;
  line-height: 1.2;
  text-wrap: balance;
}

.info-card p,
.product-card p,
.thanks-card p {
  margin: 14px 0 0;
  color: var(--text-muted);
  font-size: 1rem;
  line-height: 1.65;
}

.info-card:hover {
  transform: translateY(-6px);
  box-shadow: 0 18px 34px rgba(9, 28, 60, 0.12);
  border-color: rgba(254, 161, 0, 0.28);
}

.highlight-callout {
  margin: 34px auto 0;
  padding: 26px 30px;
  border-radius: var(--radius-md);
  background: #fffefa;
  border: 1px solid rgba(0, 40, 90, 0.12);
  box-shadow: var(--shadow-card);
  text-align: center;
  text-wrap: balance;
  transition: transform 320ms cubic-bezier(0.22, 1, 0.36, 1), box-shadow 320ms ease;
}

.highlight-callout:hover {
  transform: translateY(-4px);
  box-shadow: 0 18px 34px rgba(9, 28, 60, 0.12);
}

.highlight-callout strong {
  font-family: var(--display);
  font-size: clamp(1.5rem, 3vw, 2rem);
  line-height: 1.2;
}

.highlight-callout p {
  margin: 8px 0 0;
  color: var(--text-muted);
}

.product-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

/* ===== Flip card prodotti ===== */
.product-card {
  /* il contenitore è solo il piano prospettico: nessuno stile visibile */
  padding: 0;
  border: 0;
  background: none;
  border-radius: 0;
  perspective: 1600px;
  transition: transform 280ms cubic-bezier(0.22, 1, 0.36, 1);
}

.product-card__inner {
  display: grid;
  transform-style: preserve-3d;
  transition: transform 0.62s cubic-bezier(0.22, 1, 0.36, 1);
}

/* I due lati occupano la stessa cella: l'altezza segue il lato più alto */
.product-card__face {
  grid-area: 1 / 1;
  display: flex;
  flex-direction: column;
  padding: 18px;
  border-radius: var(--radius-md);
  border: 1px solid var(--line);
  backface-visibility: hidden;
  -webkit-backface-visibility: hidden;
}

.product-card__front {
  background: linear-gradient(180deg, #f7f9fc 0%, #eef3f8 100%);
  text-align: center;
}

.product-card__back {
  transform: rotateY(180deg);
  border-color: transparent;
  background:
    radial-gradient(circle at top right, rgba(254, 161, 0, 0.18), transparent 55%),
    linear-gradient(180deg, var(--navy-deep), var(--navy));
  color: rgba(255, 255, 255, 0.82);
  text-align: left;
}

/* Rotazione: hover (solo mouse), tastiera, o stato .is-flipped (tap mobile) */
@media (hover: hover) and (pointer: fine) {
  .product-card:hover .product-card__inner {
    transform: rotateY(180deg);
  }

  /* Su mouse l'hover basta: i pulsanti servono solo a touch.
     Restano in DOM ma fuori vista, riappaiono al focus da tastiera (a11y). */
  .product-card__flip {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
  }

  .product-card__flip:focus-visible {
    position: static;
    width: auto;
    height: auto;
    margin: 0;
    padding: 10px 18px;
    border: 1px solid rgba(0, 40, 90, 0.18);
    overflow: visible;
    clip: auto;
    white-space: normal;
  }

  .product-card__back .product-card__flip--back:focus-visible {
    border-color: rgba(255, 255, 255, 0.28);
  }

  .product-card__front .product-card__flip:focus-visible {
    margin-top: 16px;
  }
}

.product-card:focus-within .product-card__inner,
.product-card.is-flipped .product-card__inner {
  transform: rotateY(180deg);
}

.product-card__media {
  aspect-ratio: 1;
  display: grid;
  place-items: center;
  overflow: hidden;
  border-radius: 10px;
  background: #fff;
}

.product-card__media img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  transition: transform 500ms cubic-bezier(0.22, 1, 0.36, 1);
}

.product-card:hover {
  transform: translateY(-8px);
}

.product-card:hover .product-card__media img,
.product-card.is-flipped .product-card__media img {
  transform: scale(1.04) translateY(-3px);
}

.product-card__front h3 {
  margin-top: 18px;
}

.product-card__back h3 {
  margin: 2px 0 10px;
  color: #fff;
}

.product-card__kicker {
  margin: 0;
  font-size: 0.68rem;
  font-weight: 800;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--orange);
}

.product-card__back p {
  margin: 0 0 16px;
  color: rgba(255, 255, 255, 0.78);
  font-size: 0.96rem;
  line-height: 1.6;
}

.product-card__specs {
  margin: 0 0 18px;
  display: grid;
  grid-template-columns: auto 1fr;
  column-gap: 12px;
}

.product-card__specs dt,
.product-card__specs dd {
  padding: 9px 0;
  border-top: 1px solid rgba(255, 255, 255, 0.12);
}

.product-card__specs dt:last-of-type,
.product-card__specs dd:last-of-type {
  border-bottom: 1px solid rgba(255, 255, 255, 0.12);
}

.product-card__specs dt {
  font-size: 0.7rem;
  font-weight: 800;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, 0.55);
  align-self: center;
}

.product-card__specs dd {
  margin: 0;
  font-weight: 700;
  color: #fff;
  text-align: right;
}

.product-card__link {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  margin-top: auto;
  margin-bottom: 14px;
  color: #ffe0a6;
  font-size: 0.92rem;
  font-weight: 700;
}

.product-card__link::after {
  content: "↗";
  font-size: 0.9rem;
}

.product-card__link:hover,
.product-card__link:focus-visible {
  color: #fff7e8;
}

.product-card__back--eco .product-card__kicker {
  color: var(--green);
}

.product-card__back--eco .product-card__specs dd {
  color: var(--green);
}

/* Pulsante flip */
.product-card__flip {
  margin-top: auto;
  align-self: center;
  padding: 10px 18px;
  border: 1px solid rgba(0, 40, 90, 0.18);
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.6);
  color: var(--navy);
  font-size: 0.78rem;
  font-weight: 800;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  cursor: pointer;
  transition: background 0.2s ease, border-color 0.2s ease, color 0.2s ease;
}

.product-card__front .product-card__flip {
  margin-top: 16px;
}

.product-card__flip:hover {
  background: var(--orange);
  border-color: var(--orange);
  color: #fff;
}

.product-card__flip--back {
  align-self: flex-start;
  background: rgba(255, 255, 255, 0.1);
  border-color: rgba(255, 255, 255, 0.28);
  color: #fff;
}

.product-card__flip--back:hover {
  background: var(--orange);
  border-color: var(--orange);
}

@media (prefers-reduced-motion: reduce) {
  html {
    scroll-behavior: auto;
  }

  .page-enter,
  .reveal,
  .product-card__inner,
  .product-card,
  .info-card,
  .highlight-callout,
  .form-panel,
  .hero-visual img,
  .product-card__media img,
  .cta-button {
    transition: none;
  }

  .page-enter,
  .reveal {
    opacity: 1;
    transform: none;
  }

  .promo-pill,
  .promo-pill__dot,
  .countdown-unit strong.is-ticking {
    animation: none;
  }

  .cta-button::before {
    display: none;
  }
}

.form-panel {
  padding: clamp(16px, 3vw, 34px);
  border-radius: 18px;
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.98), rgba(249, 250, 253, 0.98)),
    #fff;
  /* border: 2px solid rgba(254, 161, 0, 0.95); */
  box-shadow: 0 30px 50px rgba(1, 18, 42, 0.24);
  transition: transform 360ms cubic-bezier(0.22, 1, 0.36, 1), box-shadow 360ms ease;
  scroll-margin-top: 104px;
}

.form-panel:hover {
  transform: translateY(-4px);
  box-shadow: 0 36px 58px rgba(1, 18, 42, 0.28);
}

.form-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 18px;
  align-items: start;
}

.field {
  position: relative;
  display: grid;
  gap: 10px;
}

.options-box legend {
  color: #64758a;
  font-size: 0.78rem;
  font-weight: 800;
}

/* Floating label */
.field > span {
  position: absolute;
  left: 16px;
  top: 0;
  height: 58px;
  display: flex;
  align-items: center;
  margin: 0;
  padding: 0 6px;
  color: #8294a6;
  font-size: 0.98rem;
  font-weight: 600;
  text-transform: none;
  letter-spacing: normal;
  line-height: 1;
  pointer-events: none;
  transform-origin: left center;
  transition: transform 200ms cubic-bezier(0.22, 1, 0.36, 1),
    color 200ms ease, background-color 200ms ease;
}

.field > span::before {
  content: "";
  position: absolute;
  inset: 44% 0;
  background: #fff;
  border-radius: 2px;
  z-index: -1;
  opacity: 0;
  transition: opacity 200ms ease;
}

.field:has(input:focus) > span,
.field:has(input:not(:placeholder-shown)) > span,
.field:has(textarea:focus) > span,
.field:has(textarea:not(:placeholder-shown)) > span {
  transform: translateY(-29px) scale(0.82);
  color: var(--navy);
  font-weight: 800;
}

.field:has(input:focus) > span::before,
.field:has(input:not(:placeholder-shown)) > span::before,
.field:has(textarea:focus) > span::before,
.field:has(textarea:not(:placeholder-shown)) > span::before {
  opacity: 1;
}

/* Message field: label rests at top, not centered */
.field--message > span {
  height: auto;
  top: 14px;
  align-items: flex-start;
}

.field--message:has(textarea:focus) > span,
.field--message:has(textarea:not(:placeholder-shown)) > span {
  transform: translateY(-22px) scale(0.82);
}

@media (prefers-reduced-motion: reduce) {
  .field > span,
  .field > span::before {
    transition: none;
  }
}

.field input {
  width: 100%;
  height: 58px;
  padding: 0 16px;
  border: 1px solid var(--line-strong);
  border-radius: var(--radius-xs);
  background: #fff;
  color: var(--text);
  transition: border-color 180ms ease, box-shadow 180ms ease;
}

.field input:focus-visible,
.field textarea:focus-visible {
  outline: none;
  border-color: var(--navy);
  box-shadow: 0 0 0 4px rgba(0, 40, 90, 0.1);
}

.field input.is-invalid,
.field textarea.is-invalid {
  border-color: #b74b00;
  box-shadow: 0 0 0 4px rgba(183, 75, 0, 0.1);
}

.field-error {
  display: none;
  color: #b74b00;
  font-size: 0.84rem;
  font-weight: 700;
  line-height: 1.35;
}

.field-error.is-visible {
  display: block;
}

.field--message {
  margin-top: 18px;
}

.field textarea {
  width: 100%;
  min-height: 120px;
  padding: 14px 16px;
  border: 1px solid var(--line-strong);
  border-radius: var(--radius-xs);
  background: #fff;
  color: var(--text);
  line-height: 1.55;
  resize: vertical;
  transition: border-color 180ms ease, box-shadow 180ms ease;
}

@keyframes promoFloat {
  0%,
  100% {
    transform: translateY(0);
  }

  50% {
    transform: translateY(-3px);
  }
}

@keyframes promoPulse {
  0% {
    box-shadow: 0 0 0 0 rgba(254, 161, 0, 0.28);
  }

  100% {
    box-shadow: 0 0 0 10px rgba(254, 161, 0, 0);
  }
}

@keyframes countdownTick {
  0% {
    transform: translateY(0) scale(1);
    opacity: 0.82;
  }

  45% {
    transform: translateY(-4px) scale(1.08);
    opacity: 1;
  }

  100% {
    transform: translateY(0) scale(1);
    opacity: 1;
  }
}

.options-box {
  margin: 20px 0 0;
  padding: 18px;
  border: 1px solid var(--line-strong);
  border-radius: var(--radius-sm);
  background: linear-gradient(180deg, #f5f8fc, #eef3f7);
}

.options-box legend {
  padding: 0 10px;
}

.check-option {
  display: grid;
  grid-template-columns: 20px minmax(0, 1fr);
  gap: 12px;
  align-items: start;
  padding: 12px 0;
  color: var(--text-muted);
  font-size: 1rem;
  line-height: 1.55;
}

.check-option + .check-option {
  border-top: 1px solid rgba(100, 117, 138, 0.15);
}

.check-option input {
  width: 18px;
  height: 18px;
  margin-top: 3px;
  accent-color: var(--navy-deep);
}

.check-option input.is-invalid,
.consent-option input.is-invalid {
  outline: 2px solid #b74b00;
  outline-offset: 3px;
}

.check-option strong {
  color: var(--text);
  text-transform: uppercase;
}

.options-box.is-invalid {
  border-color: #b74b00;
  box-shadow: 0 0 0 4px rgba(183, 75, 0, 0.08);
}

.options-box .field-error {
  margin-top: 8px;
}

.form-feedback {
  min-height: 28px;
  margin-top: 18px;
  color: var(--text-muted);
  font-size: 0.96rem;
}

.form-feedback.is-error {
  color: #b74b00;
}

.form-feedback.is-success {
  color: #2f5f0d;
}

.cta-button--full {
  width: 100%;
  margin-top: 8px;
}

.cta-button[disabled] {
  cursor: wait;
  opacity: 0.86;
}

.form-note {
  margin: 16px 0 0;
  text-align: center;
  color: #8a93a0;
  font-size: 0.84rem;
}

.site-footer {
  padding: 42px 0 48px;
  background: #fffdfa;
  border-top: 1px solid rgba(0, 40, 90, 0.08);
}

.footer-grid {
  display: block;
}

.footer-panel {
  padding: 10px 0 0;
  /* Master track grid. Both rows below adopt these exact columns via
     `subgrid`, so the contact column (col 2) and the legal links line up
     vertically on the left, regardless of the social block's width. */
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(250px, 320px) auto;
  column-gap: 24px;
}

.footer-top,
.footer-meta {
  grid-column: 1 / -1;
  display: grid;
  grid-template-columns: subgrid;
  column-gap: 24px;
  align-items: start;
}

.footer-top {
  padding-bottom: 24px;
}

.footer-social-label {
  margin: 0;
  font-size: 0.78rem;
  font-weight: 800;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.footer-brand {
  margin: 0 0 14px;
}

.footer-brand img {
  display: block;
  width: min(250px, 56vw);
  height: auto;
}

.footer-copy {
  max-width: 46ch;
  margin: 0;
  color: var(--text-muted);
  line-height: 1.65;
}

.footer-social-wrap {
  display: grid;
  justify-items: end;
  gap: 12px;
  align-self: start;
}

.footer-social-label {
  color: var(--text-muted);
}

.footer-social {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}

.footer-social__link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 46px;
  height: 46px;
  border-radius: 50%;
  border: 1px solid rgba(0, 40, 90, 0.12);
  background: #ffffff;
  color: var(--navy);
  transition:
    transform 180ms ease,
    border-color 180ms ease,
    background-color 180ms ease,
    color 180ms ease;
}

.footer-social__link:hover {
  transform: translateY(-2px);
  border-color: rgba(254, 161, 0, 0.56);
  background: rgba(254, 161, 0, 0.14);
  color: var(--orange);
}

.footer-social__link:focus-visible,
.footer-contact:focus-visible {
  outline: 3px solid rgba(254, 161, 0, 0.4);
  outline-offset: 3px;
}

.footer-social__link svg {
  width: 20px;
  height: 20px;
  fill: currentColor;
}

.footer-social__link--disabled {
  opacity: 0.5;
  cursor: default;
  pointer-events: none;
}

.footer-contact-layout {
  display: grid;
  grid-template-columns: 1fr;
  gap: 12px;
  margin-top: 0;
  align-items: start;
}

.footer-contact {
  display: grid;
  grid-template-columns: 16px minmax(0, 1fr);
  gap: 16px;
  align-items: start;
  padding: 0;
  border-radius: 0;
  text-decoration: none;
  color: var(--text);
  background: transparent;
  border: 0;
  transition:
    transform 180ms ease,
    border-color 180ms ease,
    background-color 180ms ease,
    box-shadow 180ms ease;
}

.footer-contact[href]:hover {
  transform: none;
  color: var(--navy-deep);
}

.footer-contact[href]:hover .footer-contact__icon, .footer-contact[href]:hover .footer-contact__value {
  color: var(--orange-deep);
}

.footer-contact__icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 24px;
  height: 24px;
  color: var(--navy-deep);
}

.footer-contact__icon svg {
  width: 24px;
  height: 24px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.9;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.footer-contact__body {
  display: grid;
  gap: 0;
}

.footer-contact__value {
  color: var(--text);
  font-size: 0.95rem;
  font-weight: 500;
  line-height: 1.45;
}

.footer-meta {
  padding-top: 20px;
  border-top: 1px solid rgba(0, 40, 90, 0.1);
  align-items: start;
}

.footer-legal p {
  margin: 4px 0;
  color: var(--text-muted);
}

.footer-links {
  grid-column: 2 / -1;
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-start;
  gap: 16px;
}

.thanks-body {
  min-height: 100vh;
  display: grid;
  place-items: center;
  padding: 24px;
  background:
    radial-gradient(circle at top right, rgba(254, 161, 0, 0.15), transparent 28%),
    linear-gradient(180deg, #09214a, #001634 72%);
}

.thanks-wrap {
  width: min(100%, 760px);
}

.thanks-card {
  padding: clamp(28px, 4vw, 48px);
  text-align: center;
  border-radius: 20px;
  border: 2px solid rgba(254, 161, 0, 0.9);
  background: rgba(255, 253, 250, 0.98);
  box-shadow: 0 30px 60px rgba(0, 0, 0, 0.24);
}

.thanks-logo {
  
  margin: 0 auto 18px;
}

.thanks-card h1 {
  font-size: clamp(2.2rem, 4vw, 3.5rem);
  line-height: 1.05;
}

.page-enter--delay-4 {
  transition-delay: 360ms;
}

.page-enter--delay-5 {
  transition-delay: 440ms;
}

.page-enter--delay-6 {
  transition-delay: 520ms;
}

/* Animated confirmation checkmark */
.thanks-check {
  display: block;
  width: 72px;
  height: 72px;
  margin: 4px auto 14px;
}

.thanks-check circle {
  fill: none;
  stroke: var(--orange);
  stroke-width: 4;
  stroke-dasharray: 164;
  stroke-dashoffset: 164;
}

.thanks-check path {
  fill: none;
  stroke: var(--orange);
  stroke-width: 5;
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-dasharray: 34;
  stroke-dashoffset: 34;
}

body.is-ready .thanks-check circle {
  transition: stroke-dashoffset 640ms cubic-bezier(0.22, 1, 0.36, 1) 260ms;
  stroke-dashoffset: 0;
}

body.is-ready .thanks-check path {
  transition: stroke-dashoffset 360ms cubic-bezier(0.22, 1, 0.36, 1) 820ms;
  stroke-dashoffset: 0;
}

/* "What happens now" progress timeline */
.thanks-steps {
  list-style: none;
  margin: 26px 0 30px;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 8px;
}

.thanks-step {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 10px;
  font-size: 0.8rem;
  font-weight: 700;
  line-height: 1.25;
  color: var(--text-muted);
}

.thanks-step__mark {
  position: relative;
  z-index: 1;
  width: 18px;
  height: 18px;
  border-radius: 50%;
  border: 2px solid var(--line-strong);
  background: var(--surface);
}

.thanks-step:not(:last-child)::after {
  content: "";
  position: absolute;
  top: 8px;
  left: 50%;
  width: 100%;
  height: 2px;
  background: var(--line-strong);
  z-index: 0;
}

.thanks-step.is-done .thanks-step__mark {
  border-color: var(--orange);
  background: var(--orange);
}

.thanks-step.is-done::after {
  background: var(--orange);
}

.thanks-step.is-active .thanks-step__mark {
  border-color: var(--orange);
  background: var(--surface);
  animation: thanksPulse 2.1s ease-out infinite;
}

.thanks-step.is-done .thanks-step__label,
.thanks-step.is-active .thanks-step__label {
  color: var(--navy);
}

@keyframes thanksPulse {
  0% {
    box-shadow: 0 0 0 0 rgba(254, 161, 0, 0.5);
  }
  70% {
    box-shadow: 0 0 0 9px rgba(254, 161, 0, 0);
  }
  100% {
    box-shadow: 0 0 0 0 rgba(254, 161, 0, 0);
  }
}

/* Social follow block */
.thanks-social {
  margin-top: 26px;
  padding-top: 22px;
  border-top: 1px solid var(--line);
}

.thanks-social__label {
  margin: 0 0 12px;
  font-size: 0.7rem;
  font-weight: 800;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--text-muted);
  text-wrap: balance;
}

.thanks-social .footer-social {
  justify-content: center;
}

@media (prefers-reduced-motion: reduce) {
  .thanks-check circle,
  .thanks-check path {
    transition: none;
    stroke-dashoffset: 0;
  }

  .thanks-step.is-active .thanks-step__mark {
    animation: none;
  }
}

.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

@media (max-width: 980px) {
  .hero-grid,
  .pain-grid,
  .product-grid,
  .form-grid {
    grid-template-columns: 1fr;
  }

  .hero-copy {
    order: 1;
  }

  .hero-visual {
    order: 2;
    width: min(100%, 480px);
    justify-self: center;
  }

  .footer-panel,
  .footer-top,
  .footer-meta,
  .footer-contact-layout {
    grid-template-columns: 1fr;
  }

  /* Stacked: give each block real breathing room (subgrid column-gap
     adds no vertical space once collapsed to one column). */
  .footer-top {
    gap: 30px;
  }

  .footer-contact-layout {
    gap: 18px;
  }

  .footer-meta {
    gap: 22px;
  }

  .footer-social-wrap {
    justify-items: start;
  }

  .footer-links {
    grid-column: auto;
    justify-content: flex-start;
    order: 1; /* legal links first... */
    gap: 14px 20px;
  }

  /* ...copyright block last, per request. */
  .footer-legal {
    order: 2;
  }
}

@media (max-width: 720px) {
  .header-inner {
    min-height: 68px;
    gap: 14px;
  }

  .promo-pill {
    font-size: 0.82rem;
    padding: 10px 12px;
  }

  .countdown-grid {
    gap: 6px;
  }

  .countdown-unit strong {
    font-size: 1.55rem;
  }

  .countdown-separator {
    font-size: 1.3rem;
    margin-top: -6px;
  }

  .section {
    padding: 50px 0;
  }

  .hero {
    padding: 24px 0 42px;
  }

  .hero-copy h1 {
    font-size: clamp(2.15rem, 9vw, 3.35rem);
    line-height: 0.97;
  }

  .hero-copy p {
    font-size: 0.98rem;
    margin-top: 16px;
  }

  .cta-button {
    width: 100%;
    padding: 15px 18px;
  }

  .hero-visual {
    width: min(100%, 600px);
  }

  .info-card,
  .product-card,
  .form-panel {
    border-radius: 14px;
  }
}

/* ===== Link-button (link in stile testo) ===== */
.link-button {
  appearance: none;
  background: none;
  border: 0;
  padding: 0;
  margin: 0;
  font: inherit;
  color: var(--navy);
  font-weight: 600;
  text-decoration: underline;
  text-underline-offset: 2px;
  cursor: pointer;
}

.link-button:hover {
  color: var(--orange-deep);
}

.footer-links .link-button {
  color: var(--navy);
  font-weight: 400;
  text-decoration: none;
  text-align: left;
  padding: 0;
  border-radius: 0;
  background: transparent;
  border: 0;
}

.footer-links .link-button:hover {
  color: var(--orange-deep);
  background: transparent;
  /* text-decoration: underline; */
}

/* ===== Consenso privacy nel form ===== */
.consent-option {
  display: grid;
  grid-template-columns: 20px minmax(0, 1fr);
  gap: 12px;
  align-items: start;
  margin-top: 20px;
  color: var(--text-muted);
  font-size: 0.96rem;
  line-height: 1.55;
}

.consent-option input {
  width: 18px;
  height: 18px;
  margin-top: 3px;
  accent-color: var(--navy-deep);
}

.consent-option .field-error {
  grid-column: 2;
}

/* ===== Modali legali ===== */
.modal[hidden] {
  display: none;
}

.modal {
  position: fixed;
  inset: 0;
  z-index: 200;
  display: grid;
  place-items: center;
  padding: 20px;
}

.modal__backdrop {
  position: absolute;
  inset: 0;
  background: rgba(0, 22, 52, 0.55);
  backdrop-filter: blur(2px);
}

.modal__dialog {
  position: relative;
  width: min(100%, 640px);
  max-height: 85vh;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  background: var(--surface);
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-soft);
  animation: modal-in 0.18s ease-out;
}

@keyframes modal-in {
  from {
    opacity: 0;
    transform: translateY(12px);
  }
}

.modal__close {
  position: absolute;
  top: 12px;
  right: 14px;
  z-index: 1;
  width: 38px;
  height: 38px;
  border: 0;
  border-radius: 50%;
  background: rgba(0, 22, 52, 0.06);
  color: var(--navy);
  font-size: 1.5rem;
  line-height: 1;
  cursor: pointer;
}

.modal__close:hover {
  background: rgba(0, 22, 52, 0.12);
}

.modal__body {
  overflow-y: auto;
  padding: 34px clamp(22px, 4vw, 40px) 36px;
}

.modal__body h2 {
  margin: 0 0 4px;
  font-family: var(--display);
  font-size: clamp(1.6rem, 3vw, 1.8rem);
  color: var(--navy);
}

.modal__body h3 {
  margin: 22px 0 6px;
  font-size: 1.05rem;
  color: var(--text);
}

.modal__body p {
  margin: 0 0 10px;
  color: var(--text-muted);
  line-height: 1.6;
}

.modal__body a {
  color: var(--orange-deep);
}

.modal__updated {
  font-size: 0.85rem;
  color: #8a93a0;
}

body.modal-open {
  overflow: hidden;
}

/* ===== Cookie consent ===== */
.cookie-consent[hidden] {
  display: none;
}

.cookie-consent {
  position: fixed;
  right: 18px;
  bottom: 18px;
  z-index: 120;
  width: min(460px, calc(100vw - 36px));
}

.cookie-consent__card {
  padding: 22px;
  border: 1px solid rgba(0, 40, 90, 0.14);
  border-radius: 22px;
  background:
    linear-gradient(180deg, rgba(255, 253, 250, 0.98), rgba(248, 244, 240, 0.98)),
    #fffdfa;
  box-shadow: 0 20px 45px rgba(8, 26, 56, 0.16);
  backdrop-filter: blur(14px);
}

.cookie-consent__eyebrow {
  margin: 0 0 8px;
  color: var(--orange-deep);
  font-size: 0.78rem;
  font-weight: 800;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.cookie-consent__title {
  margin: 0 0 10px;
  font-family: var(--display);
  font-size: clamp(1.2rem, 2vw, 1.45rem);
  color: var(--navy-deep);
}

.cookie-consent__copy {
  margin: 0;
  color: var(--text-muted);
  line-height: 1.6;
}

.cookie-consent__actions,
.cookie-consent__panel-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 18px;
}

.cookie-consent__button {
  appearance: none;
  border: 1px solid transparent;
  border-radius: 999px;
  padding: 12px 16px;
  font: inherit;
  font-weight: 700;
  line-height: 1;
  cursor: pointer;
  transition:
    transform 180ms ease,
    background-color 180ms ease,
    border-color 180ms ease,
    color 180ms ease,
    box-shadow 180ms ease;
}

.cookie-consent__button:hover {
  transform: translateY(-1px);
}

.cookie-consent__button--primary {
  background: linear-gradient(180deg, var(--orange), #ff9300);
  color: #fffefb;
  box-shadow: 0 10px 24px rgba(254, 161, 0, 0.24);
}

.cookie-consent__button--secondary {
  background: rgba(0, 22, 52, 0.06);
  border-color: rgba(0, 22, 52, 0.12);
  color: var(--navy-deep);
}

.cookie-consent__button--ghost {
  background: transparent;
  border-color: rgba(0, 40, 90, 0.18);
  color: var(--navy);
}

.cookie-consent__button:focus-visible,
.cookie-consent__link:focus-visible,
.cookie-consent__choice input:focus-visible {
  outline: 3px solid rgba(254, 161, 0, 0.35);
  outline-offset: 2px;
}

.cookie-consent__link {
  display: inline;
  padding: 0;
  border: 0;
  border-radius: 3px;
  background: transparent;
  color: var(--navy-deep);
  font: inherit;
  font-weight: 700;
  text-decoration: underline;
  text-underline-offset: 0.18em;
  cursor: pointer;
}

.cookie-consent__link:hover {
  color: var(--orange);
}

.cookie-consent__panel {
  margin-top: 18px;
  padding-top: 18px;
  border-top: 1px solid rgba(0, 40, 90, 0.1);
}

.cookie-consent__choice {
  display: grid;
  grid-template-columns: 20px minmax(0, 1fr);
  gap: 12px;
  align-items: start;
  color: var(--text-muted);
  line-height: 1.55;
}

.cookie-consent__choice input {
  width: 18px;
  height: 18px;
  margin-top: 2px;
  accent-color: var(--navy-deep);
}

.cookie-preferences-link[hidden] {
  display: none;
}

@media (max-width: 640px) {
  .cookie-consent {
    right: 12px;
    bottom: 12px;
    width: calc(100vw - 24px);
  }

  .cookie-consent__card {
    padding: 18px;
    border-radius: 18px;
  }

  .cookie-consent__actions,
  .cookie-consent__panel-actions {
    flex-direction: column;
  }

  .cookie-consent__button {
    width: 100%;
    justify-content: center;
  }
}


.cookie-list {
  display: flex;
  flex-direction: column;
  gap: 16px;
  margin: 20px 0;
}

.cookie-list .cookie-card {
  padding: 16px;
  border: 1px solid #e2e2e2;
  border-radius: 12px;
  background: #ffffff;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.04);
}

.cookie-list .cookie-card h3 {
  margin: 0 0 12px;
  font-size: 1.05rem;
  line-height: 1.35;
  color: #1f1f1f;
}

.cookie-list .cookie-card p {
  margin: 0 0 12px;
  font-size: 0.95rem;
  line-height: 1.55;
  color: #333333;
}

.cookie-list .cookie-card p:last-child {
  margin-bottom: 0;
}

.cookie-list .cookie-card strong {
  display: inline-block;
  margin-bottom: 3px;
  color: #1f1f1f;
  font-weight: 700;
}

.cookie-list .cookie-card code {
  display: inline-block;
  max-width: 100%;
  padding: 2px 6px;
  border-radius: 5px;
  background: #f4f4f4;
  color: #222222;
  font-size: 0.88em;
  line-height: 1.4;
  white-space: normal;
  word-break: break-word;
}

.cookie-list .cookie-card em {
  color: #666666;
  font-size: 0.92em;
}

@media (max-width: 600px) {
  .cookie-list {
    gap: 12px;
    margin: 16px 0;
  }

  .cookie-list .cookie-card {
    padding: 14px;
    border-radius: 10px;
  }

  .cookie-list .cookie-card h3 {
    font-size: 1rem;
  }

  .cookie-list .cookie-card p {
    font-size: 0.92rem;
    line-height: 1.5;
  }
}

/* ===== Tablet responsive pass ===== */
@media (min-width: 981px) and (max-width: 1180px) {
  .hero {
    padding-top: clamp(40px, 5vw, 56px);
    padding-bottom: clamp(40px, 5vw, 56px);
  }

  .hero-grid {
    grid-template-columns: minmax(0, 0.96fr) minmax(360px, 0.88fr);
    gap: clamp(28px, 4vw, 48px);
  }

  .hero-copy h1 {
    font-size: clamp(3rem, 5vw, 3.65rem);
    line-height: 1;
    letter-spacing: -0.035em;
  }

  .hero-copy h1 span {
    margin-top: 0.12em;
  }

  .hero-copy p {
    max-width: 33rem;
  }
}

@media (min-width: 721px) and (max-width: 980px) {
  .section {
    padding: 64px 0;
  }

  .hero {
    padding-top: 46px;
    padding-bottom: 58px;
  }

  .hero-grid {
    gap: 34px;
  }

  .hero-copy {
    max-width: 760px;
  }

  .hero-copy h1 {
    font-size: clamp(2.75rem, 6vw, 3.45rem);
    line-height: 1.02;
    letter-spacing: -0.035em;
  }

  .hero-copy h1 span {
    margin-top: 0.1em;
  }

  .hero-copy p {
    max-width: 43rem;
  }

  .hero-visual {
    width: min(72vw, 430px);
  }

  .pain-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .info-card {
    min-height: 280px;
    padding: 26px 18px 24px;
  }

  .info-card h3 {
    font-size: clamp(1.22rem, 2.45vw, 1.45rem);
  }

  .info-card p {
    font-size: 0.96rem;
    line-height: 1.55;
  }

  .product-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .product-grid > .product-card:last-child {
    grid-column: 1 / -1;
    width: calc((100% - 18px) / 2);
    justify-self: center;
  }

  .product-card__face {
    padding: 16px;
  }

  .form-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (min-width: 721px) and (max-width: 1180px) {
  .product-card__flip,
  .cookie-consent__button {
    min-height: 44px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
  }

  .product-card__flip {
    padding: 12px 18px;
  }

  .cookie-consent {
    left: 50%;
    right: auto;
    bottom: 16px;
    width: min(680px, calc(100vw - 40px));
    transform: translateX(-50%);
  }

  .cookie-consent__card {
    padding: 16px 18px;
    border-radius: 16px;
  }

  .cookie-consent__eyebrow {
    margin-bottom: 6px;
    font-size: 0.72rem;
  }

  .cookie-consent__title {
    margin-bottom: 8px;
    font-size: clamp(1.08rem, 1.9vw, 1.3rem);
  }

  .cookie-consent__copy {
    font-size: 0.94rem;
    line-height: 1.5;
  }

  .cookie-consent__actions,
  .cookie-consent__panel-actions {
    margin-top: 12px;
  }
}
