:root {
  --navy: #182228;
  --navy-soft: #25323a;
  --navy-light: #3c4a52;
  --graphite: #202a2f;
  --gunmetal: #46535a;
  --steel: #7b878d;
  --ruby: #b3125c;
  --ruby-dark: #780c3d;
  --ruby-bright: #ef4c8c;
  --ruby-glow: #ff78aa;
  --brand-blue: #0098c7;
  --brand-blue-dark: #00799f;
  --brand-blue-bright: #20b8dc;
  --brand-green: #73c82f;
  --brand-green-dark: #4faa22;
  --brand-green-bright: #94db47;
  --cyan: var(--ruby);
  --cyan-dark: var(--ruby-dark);
  --cyan-bright: var(--ruby-bright);
  --green: var(--ruby-bright);
  --ink: #202a2f;
  --muted: #667178;
  --line: #d6dde0;
  --mist: #eef1f2;
  --white: #ffffff;
  --shadow: 0 22px 55px rgba(4, 27, 42, .14);
  --max: 1240px;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  color: var(--ink);
  background: var(--white);
  font-family: "Manrope", Arial, sans-serif;
  font-size: 16px;
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
}
body.menu-open { overflow: hidden; }
img { display: block; max-width: 100%; }
a { color: inherit; text-decoration: none; }
button { font: inherit; }
h1, h2, h3, p { margin-top: 0; }
h1, h2, h3 { font-family: "Space Grotesk", "Manrope", sans-serif; letter-spacing: -.045em; line-height: 1.04; }
h2 { font-size: clamp(2.35rem, 5.2vw, 4.8rem); font-weight: 500; }
.sr-only { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0,0,0,0); }
.skip-link { position: fixed; left: 1rem; top: -5rem; z-index: 100; padding: .8rem 1rem; color: white; background: var(--navy); }
.skip-link:focus { top: 1rem; }

.site-header {
  height: 78px;
  display: grid;
  grid-template-columns: minmax(180px, 1fr) auto minmax(180px, 1fr);
  align-items: center;
  gap: 2.5rem;
  padding: 0 clamp(1.5rem, 4vw, 4rem);
  background: rgba(249,252,253,.95);
  position: absolute;
  left: 0;
  right: 0;
  top: 0;
  z-index: 50;
  border-bottom: 1px solid rgba(24,34,40,.1);
  backdrop-filter: blur(12px);
}
.brand { justify-self: start; width: 190px; }
.brand img {
  width: 100%;
  height: 54px;
  object-fit: contain;
  object-position: left center;
  filter: none;
  mix-blend-mode: normal;
}
.main-nav { display: flex; align-items: stretch; height: 78px; gap: 2rem; }
.main-nav a { display: grid; place-items: center; font-size: .78rem; font-weight: 600; color: #40545d; position: relative; white-space: nowrap; }
.main-nav a::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 2px; background: linear-gradient(90deg, var(--brand-green), var(--brand-blue)); transform: scaleX(0); transition: transform .25s ease; }
.main-nav a:hover::after, .main-nav a.active::after { transform: scaleX(1); }
.main-nav a:hover, .main-nav a.active { color: var(--navy); }
.nav-products { position: relative; height: 100%; }
.nav-products summary { height: 100%; display: flex; align-items: center; gap: .35rem; color: #40545d; font-size: .78rem; font-weight: 600; white-space: nowrap; list-style: none; cursor: pointer; }
.nav-products summary::-webkit-details-marker { display: none; }
.nav-products summary span { color: var(--cyan-dark); font-size: .85rem; transition: transform .2s ease; }
.main-nav .nav-products summary .nav-parent-link { display: inline-flex; align-items: center; height: 100%; padding: 0; color: inherit; font: inherit; border: 0; }
.main-nav .nav-products summary .nav-parent-link::after { display: none; }
.main-nav .nav-products summary .nav-parent-link:hover { color: var(--navy); }
.nav-products[open] summary { color: var(--navy); }
.nav-products.active summary { color: var(--navy); }
.nav-products[open] summary span { transform: rotate(180deg); }
.nav-products-menu { position: absolute; z-index: 20; top: calc(100% - 8px); left: 50%; width: 230px; padding: .55rem; background: rgba(255,255,255,.98); border: 1px solid var(--line); border-radius: 10px; box-shadow: 0 18px 42px rgba(24,34,40,.16); transform: translateX(-50%); }
.main-nav .nav-products-menu a { display: block; padding: .7rem .8rem; color: #40545d; border-radius: 7px; font-size: .74rem; }
.main-nav .nav-products-menu a::after { display: none; }
.main-nav .nav-products-menu a:hover { color: var(--navy); background: #f1f3f4; }
.header-cta { justify-self: end; }
.menu-toggle { display: none; }

.sound-toggle {
  position: fixed;
  z-index: 90;
  left: clamp(14px, 2.4vw, 34px);
  bottom: clamp(14px, 2.4vw, 30px);
  display: inline-flex;
  align-items: center;
  gap: .62rem;
  min-height: 42px;
  padding: .6rem .72rem .6rem .78rem;
  color: white;
  background: rgba(24,34,40,.92);
  border: 1px solid rgba(255,255,255,.22);
  border-radius: 999px;
  box-shadow: 0 12px 34px rgba(4,27,42,.22);
  backdrop-filter: blur(12px);
  cursor: pointer;
  transition: transform .2s ease, background .2s ease, border-color .2s ease;
}
.sound-toggle:hover { transform: translateY(-2px); background: rgba(24,34,40,.98); border-color: rgba(115,200,47,.65); }
.sound-toggle:focus-visible { outline: 3px solid rgba(0,152,199,.35); outline-offset: 3px; }
.sound-toggle-icon { display: inline-flex; height: 18px; align-items: center; gap: 2px; }
.sound-toggle-icon i { width: 2px; height: 5px; background: linear-gradient(180deg, var(--brand-green), var(--brand-blue)); border-radius: 2px; opacity: .58; transform-origin: center; }
.sound-toggle-icon i:nth-child(2) { height: 11px; }
.sound-toggle-icon i:nth-child(3) { height: 8px; }
.sound-toggle.is-playing .sound-toggle-icon i { opacity: 1; animation: evospray-sound-bars .72s ease-in-out infinite alternate; }
.sound-toggle.is-playing .sound-toggle-icon i:nth-child(2) { animation-delay: -.22s; }
.sound-toggle.is-playing .sound-toggle-icon i:nth-child(3) { animation-delay: -.46s; }
.sound-toggle-label { font-size: .7rem; font-weight: 700; letter-spacing: .03em; white-space: nowrap; }
.sound-toggle-state { min-width: 30px; padding: .12rem .36rem; color: rgba(255,255,255,.72); background: rgba(255,255,255,.08); border-radius: 999px; font-size: .57rem; font-weight: 800; letter-spacing: .08em; text-align: center; }
.sound-toggle.is-playing .sound-toggle-state { color: #172127; background: var(--brand-green); }
@keyframes evospray-sound-bars { from { transform: scaleY(.55); } to { transform: scaleY(1.45); } }

.button { display: inline-flex; min-height: 44px; align-items: center; justify-content: center; padding: .8rem 1.25rem; border-radius: 8px; border: 1px solid transparent; font-size: .82rem; font-weight: 700; transition: transform .2s ease, background .2s ease, border-color .2s ease; }
.button:hover { transform: translateY(-2px); }
.button-primary { color: white; background: linear-gradient(100deg, var(--ruby-dark), var(--ruby)); box-shadow: 0 12px 28px rgba(179,18,92,.28), inset 0 0 0 1px rgba(255,120,170,.2); }
.button-primary:hover { background: linear-gradient(100deg, #650932, #9f0e51); box-shadow: 0 16px 34px rgba(179,18,92,.34), inset 0 0 0 1px rgba(255,120,170,.36); }
.button-ghost { color: white; background: rgba(24,34,40,.12); border-color: rgba(255,255,255,.52); backdrop-filter: blur(7px); }
.button-ghost:hover { background: rgba(255,255,255,.12); border-color: white; }
.button-white { color: var(--navy); background: white; }

.hero { min-height: 720px; height: 100vh; max-height: 900px; padding-top: 78px; position: relative; overflow: hidden; display: flex; align-items: center; color: var(--navy); }
.hero-image { position: absolute; inset: -1.5%; width: 103%; height: 103%; object-fit: cover; object-position: 62% 50%; filter: brightness(.82) saturate(.86) contrast(1.08); transform: translate3d(var(--hero-x, 0px), calc(var(--hero-y, 0px) + var(--hero-scroll, 0px)), 0) scale(var(--hero-scale, 1.008)); transform-origin: center; will-change: transform; animation: hero-arrival 1.35s cubic-bezier(.2,.72,.2,1) both; }
.hero-overlay { position: absolute; inset: 0; background: linear-gradient(90deg, rgba(231,234,235,.95) 0%, rgba(223,227,229,.78) 24%, rgba(215,220,222,.44) 45%, rgba(24,34,40,.08) 64%, rgba(24,34,40,.22) 100%), linear-gradient(0deg, rgba(24,34,40,.17), transparent 62%); }
.hero-spray { position: absolute; z-index: 1; left: 54.5%; top: 47%; width: 24%; height: 22.5%; pointer-events: none; overflow: hidden; border-radius: 1%; opacity: .82; mix-blend-mode: screen; isolation: isolate; clip-path: inset(0); mask-image: linear-gradient(90deg, transparent, black 3.5% 96.5%, transparent), linear-gradient(0deg, transparent, black 3% 97%, transparent); mask-composite: intersect; }
.spray-mist { position: absolute; inset: 12% 6% 5%; opacity: .2; background: radial-gradient(ellipse at 48% 67%, rgba(236,246,248,.34), transparent 54%), radial-gradient(ellipse at 31% 47%, rgba(255,255,255,.2), transparent 27%), radial-gradient(ellipse at 72% 44%, rgba(234,244,246,.18), transparent 29%); filter: blur(11px); animation: spray-mist-breathe 5.8s ease-in-out infinite alternate; }
.spray-curtain { position: absolute; inset: 5% 9% 7%; opacity: .18; background-image: repeating-linear-gradient(92deg, transparent 0 10.8%, rgba(244,250,251,.46) 11.1%, transparent 11.65% 18%), linear-gradient(180deg, rgba(250,253,253,.22), transparent 72%); filter: blur(.45px); mask-image: linear-gradient(180deg, transparent 0, black 12%, rgba(0,0,0,.74) 68%, transparent 100%); animation: spray-curtain-flow 2.8s linear infinite; }
.spray-fan { position: absolute; z-index: 2; width: 41%; height: 11%; opacity: .4; background: linear-gradient(90deg, rgba(255,255,255,.9) 0 2%, rgba(245,250,251,.65) 5%, rgba(225,239,242,.24) 42%, transparent 86%), repeating-linear-gradient(176deg, transparent 0 13%, rgba(251,253,253,.58) 14%, transparent 15.3% 24%); clip-path: polygon(0 44%, 100% 8%, 89% 88%, 0 56%); filter: blur(.32px) drop-shadow(0 0 2px rgba(228,246,249,.4)); transform-origin: 0 50%; animation: spray-fan-pulse 2.35s ease-in-out infinite; }
.spray-fan::before { content: ""; position: absolute; inset: 14% 5% 14% 0; opacity: .7; background: repeating-linear-gradient(178deg, transparent 0 18%, rgba(255,255,255,.58) 19%, transparent 20.5% 29%); }
.spray-fan::after { content: ""; position: absolute; inset: -38% -4%; opacity: .45; background: radial-gradient(circle at 23% 37%, rgba(255,255,255,.7) 0 1px, transparent 1.3px), radial-gradient(circle at 54% 59%, rgba(239,248,249,.58) 0 .8px, transparent 1.2px), radial-gradient(circle at 78% 28%, rgba(255,255,255,.55) 0 .7px, transparent 1.1px); background-size: 22px 17px, 27px 21px, 31px 18px; filter: blur(.18px); }
.spray-fan-l { left: 7%; }
.spray-fan-r { right: 6%; transform: scaleX(-1); transform-origin: 50% 50%; }
.spray-fan-1 { top: 20%; rotate: 5deg; }
.spray-fan-2 { top: 29%; rotate: -6deg; animation-delay: -.58s; }
.spray-fan-3 { top: 58%; rotate: -5deg; animation-delay: -1.12s; }
.spray-fan-4 { top: 66%; rotate: 4deg; animation-delay: -1.68s; }
.spray-particles { position: absolute; inset: 0; z-index: 3; }
.spray-particle { position: absolute; left: var(--x); top: var(--y); width: var(--size); height: calc(var(--size) * 1.7); border-radius: 48% 48% 58% 58%; opacity: 0; background: rgba(248,252,252,.82); box-shadow: 0 0 2px rgba(234,247,249,.28); animation: spray-particle-fall var(--duration) linear var(--delay) infinite; }
.spray-impact { position: absolute; z-index: 2; top: 54%; width: 16%; height: 12%; opacity: .16; border-radius: 50%; background: radial-gradient(ellipse, rgba(250,253,253,.58), rgba(229,242,244,.16) 42%, transparent 70%); filter: blur(3px); animation: spray-impact-pulse 2.6s ease-out infinite; }
.spray-impact-1 { left: 27%; }
.spray-impact-2 { right: 23%; top: 62%; animation-delay: -1.3s; }
.hero-grid { position: absolute; inset: 0; opacity: .08; background-image: linear-gradient(rgba(24,34,40,.16) 1px, transparent 1px), linear-gradient(90deg, rgba(24,34,40,.14) 1px, transparent 1px); background-size: 78px 78px; mask-image: linear-gradient(90deg, black, transparent 62%); }
.hero-content { width: min(var(--max), calc(100% - 7rem)); margin: 0 auto; position: relative; z-index: 2; padding-top: 1rem; animation: hero-copy-arrival .8s .24s cubic-bezier(.2,.72,.2,1) both; }
.eyebrow { display: flex; align-items: center; gap: .75rem; color: var(--cyan-bright); text-transform: uppercase; letter-spacing: .16em; font-size: .76rem; font-weight: 700; }
.eyebrow span { width: 26px; height: 2px; background: var(--cyan); }
.hero h1 { max-width: 800px; margin: 1.2rem 0 1.45rem; font-size: clamp(3rem, 5.35vw, 5.4rem); font-weight: 500; }
.hero .eyebrow { color: var(--brand-blue-dark); }
.hero .eyebrow span { background: linear-gradient(90deg, var(--brand-green), var(--brand-blue)); }
.hero h1 em {
  color: var(--ruby);
  background: linear-gradient(94deg, #303a3f 0%, #5b676d 52%, var(--ruby) 100%);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
  font-style: normal;
}
.hero-lead { max-width: 660px; margin-bottom: 1.8rem; font-size: clamp(1rem, 1.45vw, 1.18rem); color: rgba(24,34,40,.76); }
.hero-actions { display: flex; gap: .8rem; flex-wrap: wrap; }
.hero .button-ghost { color: var(--navy); background: rgba(255,255,255,.58); border-color: rgba(0,152,199,.4); }
.hero .button-ghost:hover { color: var(--navy); background: rgba(255,255,255,.88); border-color: var(--brand-blue); box-shadow: 0 10px 24px rgba(0,152,199,.14); }
.scroll-cue { position: absolute; z-index: 2; bottom: 2.2rem; right: clamp(2rem, 5vw, 5rem); display: flex; align-items: center; gap: .75rem; color: rgba(24,34,40,.62); font-size: .68rem; text-transform: uppercase; letter-spacing: .15em; writing-mode: vertical-rl; }
.scroll-cue span { width: 2px; height: 38px; background: linear-gradient(180deg, var(--brand-green), var(--brand-blue), var(--ruby)); }

@keyframes hero-arrival {
  from { opacity: .35; transform: translate3d(0, 18px, 0) scale(1.075); }
  to { opacity: 1; transform: translate3d(var(--hero-x, 0px), calc(var(--hero-y, 0px) + var(--hero-scroll, 0px)), 0) scale(var(--hero-scale, 1.008)); }
}
@keyframes hero-copy-arrival {
  from { opacity: 0; transform: translateY(22px); }
  to { opacity: 1; transform: translateY(0); }
}
@keyframes spray-mist-breathe {
  from { opacity: .13; transform: translate3d(-.8%, .6%, 0) scale(.98); }
  to { opacity: .24; transform: translate3d(.8%, -.5%, 0) scale(1.018); }
}
@keyframes spray-curtain-flow {
  from { background-position: 0 -18px, 0 0; }
  to { background-position: 5px 30px, 0 0; }
}
@keyframes spray-fan-pulse {
  0%, 100% { opacity: .28; filter: blur(.48px) drop-shadow(0 0 1px rgba(228,246,249,.22)); }
  40%, 68% { opacity: .46; filter: blur(.26px) drop-shadow(0 0 2px rgba(228,246,249,.4)); }
}
@keyframes spray-particle-fall {
  0% { opacity: 0; transform: translate3d(0, -5px, 0) scale(.6); }
  10% { opacity: var(--alpha); }
  74% { opacity: var(--alpha); }
  100% { opacity: 0; transform: translate3d(var(--drift), var(--fall), 0) scale(1.08); }
}
@keyframes spray-impact-pulse {
  0% { opacity: 0; transform: scale(.7); }
  38% { opacity: .18; }
  100% { opacity: 0; transform: scale(1.08); }
}
@keyframes spray-drift {
  from { opacity: .22; transform: translate3d(-4px, 3px, 0) scale(.98); }
  to { opacity: .38; transform: translate3d(5px, -3px, 0) scale(1.025); }
}

.has-aerosec-topbar { --aerosec-topbar-height: 82px; }
.has-aerosec-topbar .site-header { top: var(--aerosec-topbar-height); }
.aerosec-topbar {
  position: relative;
  z-index: 51;
  height: var(--aerosec-topbar-height);
  overflow: hidden;
  background:
    radial-gradient(circle at 82% 10%, rgba(0,152,199,.28), transparent 26%),
    radial-gradient(circle at 15% 120%, rgba(115,200,47,.16), transparent 32%),
    linear-gradient(135deg, #0d222b 0%, #122a34 55%, #18222f 100%);
  box-shadow: 0 8px 22px rgba(6,24,33,.15);
}
.aerosec-topbar::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 2px; background: linear-gradient(90deg, var(--brand-green), var(--brand-blue), var(--ruby)); }
.aerosec-topbar.proof-ultrasons a { width: min(var(--max), calc(100% - 4rem)); height: 100%; min-height: 0; margin: 0 auto; grid-template-columns: 2.2rem minmax(0, 1fr) auto; align-items: center; padding: .65rem 0; }
.aerosec-topbar .proof-ultrasons-wave { grid-row: auto; margin: 0 !important; }
.aerosec-topbar .proof-ultrasons-copy { align-self: center; }
.aerosec-topbar small { display: block; margin: 0 0 .15rem; font-family: "Space Grotesk"; font-size: .58rem; font-weight: 700; letter-spacing: .12em; }
.aerosec-topbar strong { display: block; font-family: "Space Grotesk"; font-size: 1.05rem; font-weight: 600; }
.aerosec-topbar .proof-ultrasons-copy > span { display: block; margin-top: .2rem; }
.aerosec-topbar.proof-ultrasons b { grid-column: 3; margin: 0; padding: .48rem .78rem; }
.aerosec-topbar.proof-ultrasons:hover,
.aerosec-topbar.proof-ultrasons:focus-within { transform: none; box-shadow: 0 10px 26px rgba(6,24,33,.22), inset 0 0 0 1px rgba(32,184,220,.3); }

.proof-strip { display: grid; grid-template-columns: repeat(4, 1fr); border-bottom: 1px solid var(--line); }
.proof-strip article { position: relative; padding: 1.3rem clamp(1rem, 2vw, 2rem) 1.45rem; border-right: 1px solid var(--line); background: linear-gradient(180deg, white, #f7f8f8); }
.proof-strip article:last-child { border-right: 0; }
.proof-strip article::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 2px; background: linear-gradient(90deg, var(--ruby), transparent 72%); opacity: .7; }
.proof-strip small { display: block; margin-bottom: .3rem; color: var(--ruby); font-family: "Space Grotesk"; font-size: .58rem; font-weight: 700; letter-spacing: .12em; }
.proof-strip strong { display: block; color: var(--navy-light); font-family: "Space Grotesk"; font-size: 1.15rem; font-weight: 500; }
.proof-strip span { display: block; margin-top: .15rem; color: #75868d; font-size: .72rem; line-height: 1.45; }
.proof-strip .proof-ultrasons {
  padding: 0;
  background:
    radial-gradient(circle at 88% 16%, rgba(0,152,199,.28), transparent 34%),
    radial-gradient(circle at 18% 100%, rgba(115,200,47,.14), transparent 38%),
    linear-gradient(135deg, #0d222b 0%, #122a34 55%, #18222f 100%);
  transition: transform .25s ease, box-shadow .25s ease;
}
.proof-strip .proof-ultrasons::after { background: linear-gradient(90deg, var(--brand-green), var(--brand-blue), var(--ruby)); opacity: .95; }
.proof-ultrasons a {
  display: grid;
  grid-template-columns: 2.2rem minmax(0, 1fr);
  align-content: center;
  gap: .2rem .75rem;
  min-height: 100%;
  padding: 1rem clamp(1rem, 1.7vw, 1.7rem) 1.05rem;
  color: white;
  text-decoration: none;
}
.proof-ultrasons-wave { display: flex !important; align-items: flex-end; justify-content: center; gap: 3px; grid-row: 1 / span 2; height: 2.3rem; margin: .1rem 0 0 !important; }
.proof-ultrasons-wave i { display: block; width: 3px; border-radius: 99px; background: linear-gradient(180deg, var(--brand-green), var(--brand-blue)); animation: ultrasound-wave 1.4s ease-in-out infinite; }
.proof-ultrasons-wave i:nth-child(1) { height: 42%; animation-delay: -.28s; }
.proof-ultrasons-wave i:nth-child(2) { height: 95%; animation-delay: -.14s; }
.proof-ultrasons-wave i:nth-child(3) { height: 65%; }
.proof-ultrasons-copy { margin: 0 !important; }
.proof-ultrasons small { color: var(--brand-blue-bright); }
.proof-ultrasons strong { color: white; font-size: 1.05rem; font-weight: 600; line-height: 1.15; }
.proof-ultrasons-copy > span { margin-top: .25rem; color: #b7c8cf; font-size: .66rem; font-weight: 500; }
.proof-ultrasons b { grid-column: 2; width: max-content; margin-top: .45rem; padding: .32rem .6rem; border: 1px solid rgba(255,255,255,.24); border-radius: 999px; color: white; font-size: .62rem; font-weight: 700; letter-spacing: .02em; }
.proof-ultrasons b i { color: var(--brand-green-bright); font-size: .74rem; font-style: normal; }
.proof-ultrasons:hover,
.proof-ultrasons:focus-within { transform: translateY(-3px); box-shadow: 0 12px 30px rgba(6,24,33,.2), inset 0 0 0 1px rgba(32,184,220,.42); }
.proof-ultrasons a:focus-visible { outline: 2px solid var(--brand-blue-bright); outline-offset: -5px; border-radius: 4px; }
@keyframes ultrasound-wave { 0%, 100% { transform: scaleY(.62); opacity: .68; } 50% { transform: scaleY(1); opacity: 1; } }

.section { width: min(var(--max), calc(100% - 7rem)); margin: 0 auto; padding: 4.5rem 0; }
.section-label { color: #6d7f86; font-size: .7rem; font-weight: 700; letter-spacing: .15em; text-transform: uppercase; }
.kicker { margin-bottom: .8rem; color: var(--cyan); font-size: .74rem; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; }
.intro {
  position: relative;
  isolation: isolate;
  display: grid;
  grid-template-columns: 1fr 3fr 1.6fr;
  align-items: start;
  gap: 2.6rem;
}
.intro::before {
  content: "";
  position: absolute;
  z-index: -2;
  top: 0;
  bottom: 0;
  left: 50%;
  width: 100vw;
  transform: translateX(-50%);
  background:
    radial-gradient(circle at 8% 22%, rgba(115,200,47,.12), transparent 25rem),
    radial-gradient(circle at 82% 6%, rgba(0,152,199,.11), transparent 27rem),
    linear-gradient(118deg, #e9eff1 0%, #f7f9f9 46%, #e7eef0 100%);
  border-top: 1px solid rgba(0,121,159,.12);
  border-bottom: 1px solid rgba(24,34,40,.08);
}
.intro::after {
  content: "";
  position: absolute;
  z-index: -1;
  top: 0;
  bottom: 0;
  left: 50%;
  width: 100vw;
  transform: translateX(-50%);
  opacity: .28;
  background-image: linear-gradient(rgba(38,74,87,.08) 1px, transparent 1px), linear-gradient(90deg, rgba(38,74,87,.07) 1px, transparent 1px);
  background-size: 72px 72px;
  mask-image: linear-gradient(90deg, transparent 0, black 12%, rgba(0,0,0,.32) 58%, transparent 100%);
  pointer-events: none;
}
.intro h2 { margin-bottom: 0; }
.intro .section-label { color: #4f6974; }
.intro .kicker { color: var(--brand-blue-dark); }
.intro-text {
  position: relative;
  margin-top: 1.35rem;
  padding: 1.55rem 1.5rem 1.35rem;
  overflow: hidden;
  color: var(--muted);
  background: rgba(255,255,255,.76);
  border: 1px solid rgba(0,121,159,.16);
  border-radius: 12px;
  box-shadow: 0 20px 50px rgba(31,61,72,.09);
  backdrop-filter: blur(8px);
}
.intro-text::before { content: ""; position: absolute; top: 0; left: 0; width: 100%; height: 3px; background: linear-gradient(90deg, var(--brand-green), var(--brand-blue), var(--ruby)); }
.intro-text > p { margin-bottom: 0; }
.intro-paths { display: grid; margin-top: 1.4rem; border-top: 1px solid var(--line); }
.intro-paths a { display: grid; grid-template-columns: 30px minmax(0,1fr) auto; align-items: center; gap: .65rem; padding: .8rem .25rem; color: var(--navy); border-bottom: 1px solid var(--line); transition: color .2s ease, padding-left .2s ease, background .2s ease; }
.intro-paths a > span { color: var(--cyan-dark); font-family: "Space Grotesk"; font-size: .62rem; }
.intro-paths a > strong { font-size: .74rem; }
.intro-paths a > i { color: var(--cyan); font-size: .9rem; font-style: normal; }
.intro-paths a:hover, .intro-paths a:focus-visible { padding-left: .7rem; color: var(--brand-blue-dark); background: rgba(0,152,199,.055); outline: none; }
.text-link { display: inline-flex; align-items: center; gap: .55rem; margin-top: 1.2rem; padding-bottom: .2rem; border-bottom: 1px solid var(--cyan); color: var(--navy); font-size: .8rem; font-weight: 700; }
.text-link span { color: var(--cyan); }
.text-link.light { color: white; }

.solutions { padding-top: 1rem; }
.section-head { display: flex; align-items: end; justify-content: space-between; gap: 4rem; margin-bottom: 3.3rem; }
.section-head h2 { margin: .8rem 0 0; }
.section-head > p { max-width: 390px; margin-bottom: .6rem; color: var(--muted); }
.solution-stage { min-height: 490px; display: grid; grid-template-columns: 1.12fr .88fr; overflow: hidden; border-radius: 14px; box-shadow: var(--shadow); }
.solution-media { position: relative; min-height: 490px; display: grid; place-items: center; padding: 3rem; overflow: hidden; background: linear-gradient(135deg, #f4f8f9 0%, #e6eef1 72%, #d9e7eb 100%); }
.solution-media::before { content: ""; position: absolute; width: 520px; height: 520px; border: 1px solid rgba(179,18,92,.26); border-radius: 50%; }
.solution-media::after { content: ""; position: absolute; width: 360px; height: 360px; border: 1px solid rgba(179,18,92,.22); border-radius: 50%; }
.solution-index { position: absolute; top: 1.5rem; left: 1.8rem; z-index: 2; color: var(--navy-light); font-family: "Space Grotesk"; font-size: .78rem; letter-spacing: .13em; }
.solution-media img { position: relative; z-index: 1; width: min(80%, 520px); height: 365px; object-fit: contain; filter: drop-shadow(0 24px 24px rgba(24,34,40,.2)); transition: opacity .22s ease, transform .35s ease; }
.solution-media img.changing { opacity: 0; transform: translateY(10px); }
.solution-copy { position: relative; display: flex; flex-direction: column; justify-content: center; padding: clamp(2.5rem, 5vw, 5rem); color: white; background: radial-gradient(circle at 100% 0%, rgba(179,18,92,.28), transparent 42%), var(--navy); }
.solution-copy h3 { margin: .25rem 0 1rem; font-size: clamp(2.1rem, 3.4vw, 3.6rem); font-weight: 500; }
.solution-copy > p:not(.kicker) { color: rgba(255,255,255,.72); }
.solution-copy ul { margin: .8rem 0 .6rem; padding: 0; list-style: none; }
.solution-copy li { padding: .48rem 0 .48rem 1.3rem; position: relative; font-size: .84rem; color: rgba(255,255,255,.8); }
.solution-copy li::before { content: ""; position: absolute; left: 0; top: .95rem; width: 6px; height: 6px; border-radius: 50%; background: var(--green); box-shadow: 0 0 0 4px rgba(139,211,74,.12); }
.solution-progress { position: absolute; left: 0; right: 0; bottom: 0; height: 3px; background: rgba(255,255,255,.12); }
.solution-progress span { display: block; width: 20%; height: 100%; background: linear-gradient(90deg, var(--cyan), var(--green)); transition: width .35s ease; }
.solution-tabs { display: grid; grid-template-columns: repeat(5, 1fr); border: 1px solid var(--line); border-top: 0; }
.solution-tab { min-height: 74px; padding: .8rem 1rem; color: #60737b; background: white; border: 0; border-right: 1px solid var(--line); text-align: left; font-size: .74rem; font-weight: 700; cursor: pointer; transition: color .2s ease, background .2s ease; }
.solution-tab:last-child { border-right: 0; }
.solution-tab span { display: block; margin-bottom: .15rem; color: #98a7ad; font-family: "Space Grotesk"; font-size: .65rem; }
.solution-tab:hover, .solution-tab.active { color: var(--navy); background: #f5f9fa; }
.solution-tab.active { box-shadow: inset 0 -3px var(--cyan); }

.catalog-feature { min-height: 500px; display: grid; grid-template-columns: 1.1fr .9fr; overflow: hidden; border-radius: 14px; box-shadow: var(--shadow); }
.catalog-feature-media { position: relative; min-height: 500px; display: grid; place-items: center; padding: 3rem; overflow: hidden; background: radial-gradient(circle at 50% 46%, white 0 28%, transparent 60%), linear-gradient(135deg, #f2f7f8, #dfecef); }
.catalog-feature-media::before, .catalog-feature-media::after { content: ""; position: absolute; width: 520px; height: 520px; border: 1px solid rgba(179,18,92,.24); border-radius: 50%; }
.catalog-feature-media::after { width: 370px; height: 370px; }
.catalog-feature-media > span { position: absolute; top: 1.5rem; left: 1.8rem; z-index: 2; color: var(--navy-light); font-size: .68rem; font-weight: 700; letter-spacing: .13em; text-transform: uppercase; }
.catalog-feature-media img { position: relative; z-index: 1; width: min(85%, 560px); height: 390px; object-fit: contain; filter: drop-shadow(0 25px 28px rgba(24,34,40,.22)); }
.catalog-family-media { display: block; padding: 3.7rem 1.25rem 1.25rem; background: linear-gradient(145deg, #f4f9fa, #dfecef); }
.catalog-family-media::before, .catalog-family-media::after { display: none; }
.catalog-family-grid { position: relative; z-index: 2; height: 100%; display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); grid-template-rows: repeat(2, minmax(0,1fr)); gap: .75rem; }
.catalog-family-card { position: relative; min-width: 0; min-height: 0; display: grid; place-items: center; overflow: hidden; background: radial-gradient(circle at 50% 42%, white 0 30%, #eef5f6 78%); border: 1px solid rgba(13,143,172,.16); transition: transform .25s ease, border-color .25s ease, box-shadow .25s ease; }
.catalog-family-card::after { content: ""; position: absolute; inset: 11% 22% 21%; border: 1px solid rgba(179,18,92,.19); border-radius: 50%; transition: transform .3s ease, border-color .3s ease; }
.catalog-feature-media .catalog-family-card img { z-index: 2; width: 100%; height: calc(100% - 2.65rem); object-fit: contain; filter: drop-shadow(0 13px 13px rgba(24,34,40,.17)); transition: transform .3s ease; }
.catalog-family-card > span { position: absolute; z-index: 3; left: .75rem; right: .75rem; bottom: .65rem; display: flex; align-items: center; justify-content: space-between; gap: .65rem; color: var(--navy); }
.catalog-family-card small { color: var(--cyan-dark); font-family: "Space Grotesk"; font-size: .6rem; letter-spacing: .08em; }
.catalog-family-card strong { font-size: .7rem; text-align: right; }
.catalog-family-card:hover, .catalog-family-card:focus-visible { z-index: 4; transform: translateY(-4px); border-color: rgba(13,143,172,.55); box-shadow: 0 16px 30px rgba(24,34,40,.14); outline: none; }
.catalog-family-card:hover::after, .catalog-family-card:focus-visible::after { transform: scale(1.08); border-color: rgba(179,18,92,.4); }
.catalog-family-card:hover img, .catalog-family-card:focus-visible img { transform: scale(1.07); }
.catalog-feature-copy { display: flex; flex-direction: column; justify-content: center; padding: clamp(2.5rem, 5vw, 5rem); color: white; background: radial-gradient(circle at 100% 0%, rgba(179,18,92,.3), transparent 40%), var(--navy); }
.catalog-feature-copy h3 { margin: .25rem 0 1rem; font-size: clamp(2.2rem, 3.8vw, 3.9rem); font-weight: 500; }
.catalog-feature-copy > p:not(.kicker) { color: rgba(255,255,255,.72); }
.catalog-feature-copy ul { margin: .8rem 0; padding: 0; list-style: none; }
.catalog-feature-copy li { position: relative; padding: .48rem 0 .48rem 1.3rem; color: rgba(255,255,255,.82); font-size: .84rem; }
.catalog-feature-copy li::before { content: ""; position: absolute; left: 0; top: .95rem; width: 6px; height: 6px; background: var(--green); border-radius: 50%; box-shadow: 0 0 0 4px rgba(139,211,74,.12); }
.catalog-scroll { align-self: flex-start; padding-inline: 0; background: transparent; cursor: pointer; }
.machine-catalog { margin-top: 3rem; }
.machine-toolbar { display: flex; justify-content: space-between; gap: 2rem; align-items: end; margin-bottom: 1.5rem; padding-bottom: 1.2rem; border-bottom: 1px solid var(--line); }
.machine-toolbar > div:first-child { display: grid; gap: .18rem; }
.machine-toolbar > div:first-child span { color: var(--cyan-dark); font-size: .68rem; font-weight: 700; text-transform: uppercase; letter-spacing: .13em; }
.machine-toolbar > div:first-child strong { font-family: "Space Grotesk"; font-size: 1.25rem; font-weight: 500; }
.machine-filters { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: .45rem; }
.machine-filters button { padding: .58rem .85rem; color: #61737b; background: white; border: 1px solid #cddade; border-radius: 999px; font-size: .68rem; font-weight: 700; cursor: pointer; transition: color .2s ease, background .2s ease, border-color .2s ease; }
.machine-filters button:hover, .machine-filters button.active { color: white; background: var(--navy); border-color: var(--navy); }
.machine-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 1rem; }
.machine-card { min-width: 0; overflow: hidden; background: white; border: 1px solid var(--line); border-radius: 12px; transition: transform .3s ease, box-shadow .3s ease, border-color .3s ease; transition-delay: var(--card-delay,0ms); }
.machine-card:hover { transform: translateY(-6px); border-color: #b9dce4; box-shadow: 0 22px 50px rgba(24,34,40,.12); }
.machine-card-media { position: relative; min-height: 265px; display: grid; place-items: center; padding: 1.4rem; overflow: hidden; background: radial-gradient(circle at 50% 44%, rgba(255,255,255,.78) 0 18%, rgba(255,255,255,0) 63%), linear-gradient(145deg, #f1f7f8 0%, #e5eef0 100%); }
.machine-card-media[role] { cursor: pointer; }
.machine-card-media[role]:focus-visible { outline: 3px solid rgba(179,18,92,.65); outline-offset: -3px; }
.machine-card-media::before { content: ""; position: absolute; width: 230px; height: 230px; border: 1px solid rgba(179,18,92,.18); border-radius: 50%; }
.machine-card-media img { position: relative; z-index: 1; width: 100%; height: 230px; object-fit: contain; filter: drop-shadow(0 16px 16px rgba(24,34,40,.17)); transition: transform .35s ease; }
.machine-card:hover .machine-card-media img { transform: scale(1.035); }
.machine-card-media > span { position: absolute; top: 1rem; left: 1rem; z-index: 2; padding: .35rem .55rem; color: var(--navy-light); background: rgba(255,255,255,.86); border: 1px solid rgba(13,143,172,.14); border-radius: 999px; font-size: .6rem; font-weight: 700; text-transform: uppercase; letter-spacing: .08em; backdrop-filter: blur(5px); }
.machine-card-copy { padding: 1.35rem 1.45rem 1.5rem; }
.machine-card-copy h3 { margin: 0 0 .35rem; font-size: 1.45rem; }
.machine-card-copy > p { min-height: 40px; margin-bottom: 1rem; color: var(--muted); font-size: .74rem; }
.machine-card-choice-hint { width: fit-content; margin: -.45rem 0 1rem; padding: .35rem .58rem; color: #07576a; background: rgba(130,195,65,.14); border: 1px solid rgba(130,195,65,.42); border-radius: 999px; font-size: .62rem; font-weight: 800; letter-spacing: .04em; text-transform: uppercase; }
.machine-card-specs { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); margin-bottom: 1.2rem; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.machine-card-specs > div { min-width: 0; padding: .72rem .45rem .72rem 0; }
.machine-card-specs span, .machine-specs span { display: block; color: #829198; font-size: .55rem; text-transform: uppercase; letter-spacing: .08em; }
.machine-card-specs strong { display: block; overflow: hidden; color: var(--navy); font-family: "Space Grotesk"; font-size: .68rem; font-weight: 600; text-overflow: ellipsis; white-space: nowrap; }
.machine-card-link { width: 100%; display: flex; align-items: center; justify-content: space-between; padding: .2rem 0; color: var(--cyan-dark); background: transparent; border: 0; font-size: .72rem; font-weight: 700; cursor: pointer; }
.machine-card-link::after { content: "↗"; font-size: 1rem; }

.machine-dialog { width: min(1120px, calc(100% - 2rem)); max-width: none; max-height: min(90vh, 820px); margin: auto; padding: 0; color: var(--navy); background: white; border: 0; border-radius: 18px; box-shadow: 0 32px 90px rgba(3,20,31,.34); overflow: hidden; }
.machine-dialog[open] { display: grid; grid-template-columns: .92fr 1.08fr; animation: needs-dialog-in .3s ease both; }
.machine-dialog::backdrop { background: rgba(3,20,31,.72); backdrop-filter: blur(8px); }
.machine-dialog-close { position: absolute; z-index: 5; right: 1rem; top: 1rem; width: 44px; height: 44px; display: grid; place-items: center; padding: 0; color: var(--navy); background: rgba(255,255,255,.88); border: 1px solid #d7e4e8; border-radius: 50%; font-size: 1.7rem; line-height: 1; cursor: pointer; }
.machine-dialog-media { position: relative; min-height: 650px; display: grid; place-items: center; padding: 2.5rem; overflow: hidden; background: radial-gradient(circle at 50% 42%, white 0 25%, transparent 62%), linear-gradient(135deg,#edf4f5,#dce9ed); }
.machine-dialog-media::before, .machine-dialog-media::after { content: ""; position: absolute; width: 520px; height: 520px; border: 1px solid rgba(179,18,92,.2); border-radius: 50%; }
.machine-dialog-media::after { width: 360px; height: 360px; }
.machine-dialog-media > span { position: absolute; top: 1.5rem; left: 1.6rem; z-index: 2; color: var(--cyan-dark); font-size: .68rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; }
.machine-dialog-media img { position: relative; z-index: 1; width: 100%; max-height: 520px; object-fit: contain; filter: drop-shadow(0 22px 24px rgba(24,34,40,.2)); }
.machine-dialog-copy { max-height: min(90vh,820px); overflow-y: auto; padding: clamp(2.8rem,5vw,5rem); scrollbar-color: #b8cbd2 transparent; }
.machine-dialog-copy h2 { margin: .2rem 0 1rem; font-size: clamp(2.5rem,3.5vw,3.5rem); line-height: .98; }
.machine-dialog-lead { color: var(--muted); font-size: .88rem; }
.machine-specs { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); margin: 1.5rem 0 1.8rem; border: 1px solid var(--line); border-radius: 10px; overflow: hidden; }
.machine-specs > div { padding: 1rem; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.machine-specs > div:nth-child(2n) { border-right: 0; }
.machine-specs > div:nth-last-child(-n+2) { border-bottom: 0; }
.machine-specs strong { color: var(--navy); font-family: "Space Grotesk"; font-size: 1rem; font-weight: 600; }
.machine-process { margin: 0 0 1.7rem; }
.machine-process h3 { margin-bottom: .75rem; }
.machine-process-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: .55rem; }
.machine-process article { min-width: 0; padding: .85rem; background: linear-gradient(145deg,#f7fbfc,#edf5f7); border: 1px solid #d8e6ea; border-radius: 9px; }
.machine-process article > span { display: block; margin-bottom: .42rem; color: var(--cyan-dark); font-family: "Space Grotesk"; font-size: .62rem; font-weight: 700; letter-spacing: .08em; }
.machine-process article > strong { display: block; margin-bottom: .28rem; color: var(--navy); font-family: "Space Grotesk"; font-size: .78rem; }
.machine-process article > p { margin: 0; color: #607984; font-size: .63rem; line-height: 1.5; }
.machine-variants { margin: -.2rem 0 1.6rem; }
.machine-variants[hidden] { display: none; }
.machine-variants-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: .65rem; }
.machine-variant-card { position: relative; display: block; padding: .9rem; border: 1px solid var(--line); border-radius: 10px; background: #f8fbfc; cursor: pointer; transition: border-color .2s ease, box-shadow .2s ease, transform .2s ease; }
.machine-variant-card:hover { border-color: #9bd9e5; transform: translateY(-2px); }
.machine-variant-card.selected { border-color: var(--cyan); background: #f1f3f4; box-shadow: 0 0 0 3px rgba(179,18,92,.12); }
.machine-variant-card > input { position: absolute; width: 1px; height: 1px; opacity: 0; pointer-events: none; }
.machine-variant-title { display: block; margin: 0 0 .65rem; color: var(--navy); font-family: "Space Grotesk"; font-size: 1rem; font-weight: 700; }
.machine-variants dl { display: grid; grid-template-columns: 1.45fr .55fr; gap: .5rem; margin: 0 0 .65rem; }
.machine-variants dt { color: #82939b; font-size: .56rem; letter-spacing: .06em; text-transform: uppercase; }
.machine-variants dd { margin: .12rem 0 0; color: var(--navy); font-size: .72rem; font-weight: 700; }
.machine-variant-select { display: flex; align-items: center; justify-content: space-between; padding-top: .55rem; color: var(--cyan-dark); border-top: 1px solid #dce8eb; font-size: .7rem; font-weight: 700; }
.machine-variant-select::after { content: "→"; font-size: 1rem; }
.machine-version-chooser { min-width: 0; margin: .9rem 0 0; padding: .85rem; background: #f8fbfc; border: 1px solid var(--line); border-radius: 10px; }
.machine-version-chooser[hidden] { display: none; }
.machine-version-chooser legend { padding: 0 .35rem; color: var(--navy); font-family: "Space Grotesk"; font-size: .86rem; font-weight: 700; }
.machine-version-options { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: .45rem; }
.machine-version-options label { position: relative; cursor: pointer; }
.machine-version-options input { position: absolute; width: 1px; height: 1px; opacity: 0; pointer-events: none; }
.machine-version-options span { display: block; min-height: 100%; padding: .58rem .48rem; color: #405761; background: white; border: 1px solid #d3e2e7; border-radius: 7px; font-size: .65rem; font-weight: 600; text-align: center; transition: border-color .2s ease, color .2s ease, background .2s ease; }
.machine-version-options label:hover span { border-color: #9bd9e5; }
.machine-version-options input:focus-visible + span { outline: 3px solid rgba(179,18,92,.22); outline-offset: 2px; }
.machine-version-options input:checked + span { color: var(--navy); background: #eceff0; border-color: var(--cyan); }
.machine-selection-summary { margin: .65rem 0 0; color: #536d79; font-size: .68rem; }
.machine-options-chooser { margin: .9rem 0 0; padding: .9rem; background: #f8fbfc; border: 1px solid var(--line); border-radius: 10px; }
.machine-options-chooser[hidden] { display: none; }
.machine-options-chooser h3 { margin-bottom: .25rem; }
.machine-options-intro { margin: 0 0 .8rem; color: #607984; font-size: .68rem; line-height: 1.5; }
.machine-options-label { margin: 0 0 .45rem; color: var(--navy); font-size: .68rem; font-weight: 700; }
.machine-options-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: .42rem; }
.machine-option { position: relative; display: grid; grid-template-columns: 18px 1fr; gap: .5rem; align-items: start; min-height: 100%; padding: .58rem; color: #405761; background: white; border: 1px solid #d7e4e8; border-radius: 7px; font-size: .66rem; line-height: 1.35; cursor: pointer; transition: border-color .2s ease, background .2s ease, opacity .2s ease; }
.machine-option:hover { border-color: #9bd9e5; }
.machine-option > input { position: absolute; width: 1px; height: 1px; opacity: 0; pointer-events: none; }
.machine-option-marker { width: 16px; height: 16px; display: grid; place-items: center; border: 1px solid #a8bdc5; border-radius: 4px; }
.machine-option-marker::after { content: "✓"; color: white; font-size: .68rem; font-weight: 800; opacity: 0; transform: scale(.6); transition: opacity .18s ease, transform .18s ease; }
.machine-option:has(input:checked) { color: var(--navy); background: #f1f3f4; border-color: var(--cyan); }
.machine-option input:checked + .machine-option-marker { background: var(--cyan-dark); border-color: var(--cyan-dark); }
.machine-option input:checked + .machine-option-marker::after { opacity: 1; transform: scale(1); }
.machine-option:has(input:focus-visible) { outline: 3px solid rgba(179,18,92,.2); outline-offset: 2px; }
.machine-option.disabled { opacity: .42; cursor: not-allowed; }
.machine-option.is-featured-option { background: linear-gradient(135deg, #fff 0%, #fff2f7 100%); border-color: rgba(179,18,92,.36); }
.machine-option.is-featured-option:has(input:checked) { background: #fff0f6; border-color: var(--ruby); box-shadow: 0 0 0 2px rgba(179,18,92,.1); }
.machine-option-copy { display: grid; gap: .2rem; }
.machine-option-copy small { color: var(--ruby); font-size: .52rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.machine-option-copy strong { color: var(--navy); font-size: .68rem; line-height: 1.3; }
.machine-option-copy > span { color: #607984; font-size: .58rem; line-height: 1.45; }
.machine-options-more { margin-top: .55rem; }
.machine-options-more summary { color: var(--cyan-dark); font-size: .7rem; font-weight: 700; cursor: pointer; }
.machine-options-more[open] summary { margin-bottom: .55rem; }
.machine-options-grid-other { padding-top: .05rem; }
.machine-options-note { margin: .65rem 0 0; color: #758b95; font-size: .6rem; line-height: 1.45; }
.machine-dialog-copy h3 { margin: 0 0 .6rem; font-size: 1rem; }
.machine-dialog-copy ul { margin: 0; padding-left: 1.15rem; color: #4f6672; font-size: .8rem; }
.machine-dialog-copy li { margin: .42rem 0; }
.machine-options-status { display: grid; gap: .25rem; margin-top: 1.25rem; padding: 1rem 1.05rem; background: #eef1f2; border-left: 3px solid var(--cyan); border-radius: 0 8px 8px 0; }
.machine-options-status[hidden] { display: none; }
.machine-options-status > span { color: var(--cyan-dark); font-size: .58rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }
.machine-options-status > strong { color: var(--navy); font-family: "Space Grotesk"; font-size: .82rem; }
.machine-options-status > p { margin: 0; color: #607984; font-size: .68rem; line-height: 1.5; }
.machine-dialog-actions { display: flex; align-items: center; gap: 1.2rem; margin-top: 2rem; }
.machine-dialog-actions .text-link { margin-top: 0; }
.machine-dialog-actions .button[disabled] { opacity: .48; cursor: not-allowed; }

.method { width: min(var(--max), calc(100% - 4rem)); min-height: 560px; display: grid; grid-template-columns: .92fr 1.08fr; margin: 1.5rem auto 4rem; overflow: hidden; background: var(--navy); color: white; border-radius: 14px; box-shadow: var(--shadow); }
.method-image { position: relative; min-height: 560px; overflow: hidden; }
.method-image::after { content: ""; position: absolute; inset: 0; background: linear-gradient(0deg, rgba(24,34,40,.7), transparent 58%); }
.method-image img { width: 100%; height: 100%; object-fit: cover; filter: saturate(.75); }
.method-caption { position: absolute; z-index: 2; left: clamp(2rem, 5vw, 5rem); right: 2rem; bottom: 3rem; }
.method-caption span { display: block; margin-bottom: .5rem; color: var(--cyan-bright); font-size: .72rem; font-weight: 700; text-transform: uppercase; letter-spacing: .14em; }
.method-caption strong { display: block; max-width: 420px; font-family: "Space Grotesk"; font-size: clamp(1.5rem, 2.5vw, 2.35rem); font-weight: 500; line-height: 1.15; }
.method-content { display: flex; flex-direction: column; justify-content: center; padding: clamp(2.8rem, 4vw, 4.5rem); background: radial-gradient(circle at 100% 0%, rgba(179,18,92,.18), transparent 35%); }
.method .section-label { margin-bottom: 1.8rem; color: rgba(255,255,255,.52); }
.method h2 { margin: .5rem 0 2rem; font-size: clamp(2.35rem, 3.6vw, 3.7rem); }
.steps { margin: 0; padding: 0; list-style: none; border-top: 1px solid rgba(255,255,255,.14); }
.steps li { display: grid; grid-template-columns: 40px 1fr; gap: .8rem; padding: 1rem 0; border-bottom: 1px solid rgba(255,255,255,.14); }
.steps > li > span { color: var(--cyan); font-family: "Space Grotesk"; font-size: .72rem; }
.steps h3 { margin: 0 0 .35rem; font-size: 1.22rem; font-weight: 500; }
.steps p { margin-bottom: 0; color: rgba(255,255,255,.62); font-size: .84rem; }
.method-actions { display: flex; align-items: center; flex-wrap: wrap; gap: 1.25rem; margin-top: 1.5rem; }
.method-actions .text-link { margin-top: 0; }

.industries { padding-bottom: 5rem; }
.industry-grid { display: grid; grid-template-columns: repeat(3, 1fr); border-top: 1px solid var(--line); border-left: 1px solid var(--line); }
.industry-card { position: relative; min-height: 310px; display: grid; grid-template-rows: auto 125px 1fr; padding: 1.6rem; overflow: hidden; background: white; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); transition: background .25s ease, transform .25s ease, box-shadow .25s ease; }
.industry-card::after { content: "↗"; position: absolute; right: 1.2rem; top: 1rem; color: var(--cyan); font-size: 1rem; }
.industry-card:hover, .industry-card:focus-visible { z-index: 2; background: var(--mist); transform: translateY(-5px); box-shadow: 0 18px 35px rgba(24,34,40,.1); outline: none; }
.industry-card > span { color: var(--cyan-dark); font-family: "Space Grotesk"; font-size: .64rem; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; }
.industry-card > img { width: 100%; height: 125px; object-fit: contain; filter: drop-shadow(0 12px 12px rgba(24,34,40,.13)); transition: transform .3s ease; }
.industry-card:hover > img, .industry-card:focus-visible > img { transform: scale(1.05); }
.industry-card h3 { margin: .35rem 0 .45rem; color: var(--navy); font-size: 1.35rem; font-weight: 500; }
.industry-card p { margin-bottom: .8rem; color: var(--muted); font-size: .73rem; }
.industry-card strong { display: block; color: var(--cyan-dark); font-size: .62rem; letter-spacing: .03em; }

.expertise { display: grid; grid-template-columns: 1.5fr 1fr; gap: 0; padding-top: 2.5rem; padding-bottom: 5rem; }
.expertise-panel { position: relative; min-height: 500px; overflow: hidden; padding: clamp(3rem, 6vw, 6rem); color: white; background: linear-gradient(128deg, var(--navy), #0b4e67); border-radius: 12px 0 0 12px; }
.expertise-panel h2 { margin: .8rem 0 1.6rem; font-size: clamp(2.2rem, 4vw, 4rem); }
.expertise-panel > p:last-child { max-width: 580px; color: rgba(255,255,255,.68); }
.expertise-mark { position: absolute; right: -100px; top: -85px; width: 360px; height: 360px; }
.expertise-mark i { position: absolute; inset: calc(var(--i, 0) * 36px); border: 1px solid rgba(255,120,170,.24); border-radius: 50%; }
.expertise-mark i:nth-child(2) { inset: 45px; }
.expertise-mark i:nth-child(3) { inset: 90px; }
.expertise-stats { display: grid; background: var(--mist); border-radius: 0 12px 12px 0; }
.expertise-stat { position: relative; display: grid; grid-template-columns: 100px 1fr 28px; align-items: center; gap: 1rem; padding: 1.4rem 2.2rem; color: inherit; text-decoration: none; border-bottom: 1px solid white; overflow: hidden; transition: color .3s ease, background .3s ease; }
.expertise-stat:last-child { border-bottom: 0; }
.expertise-stat::before { content: ""; position: absolute; inset: 0; background: linear-gradient(110deg, rgba(0,167,207,.12), rgba(255,255,255,.72)); transform: translateX(-102%); transition: transform .45s cubic-bezier(.2,.75,.2,1); }
.expertise-stat > * { position: relative; z-index: 1; }
.expertise-stat span { display: flex; flex-direction: column; gap: .45rem; }
.expertise-stat small { color: var(--navy); font-size: .76rem; font-weight: 650; letter-spacing: .01em; opacity: 0; transform: translateY(5px); transition: opacity .25s ease, transform .25s ease; }
.expertise-stat i { color: var(--cyan); font-size: 1.15rem; font-style: normal; opacity: .45; transform: translate(-4px, 4px); transition: opacity .25s ease, transform .25s ease; }
.expertise-stat:hover::before, .expertise-stat:focus-visible::before { transform: translateX(0); }
.expertise-stat:hover small, .expertise-stat:focus-visible small { opacity: 1; transform: translateY(0); }
.expertise-stat:hover i, .expertise-stat:focus-visible i { opacity: 1; transform: translate(0, 0); }
.expertise-stat:focus-visible { outline: 2px solid var(--cyan); outline-offset: -3px; }
.expertise-stats strong { color: var(--navy-light); font-family: "Space Grotesk"; font-size: 2.2rem; font-weight: 500; }
.expertise-stats span { color: var(--muted); font-size: .8rem; }

.final-cta { position: relative; min-height: 370px; overflow: hidden; display: grid; grid-template-columns: 1.4fr .6fr; align-items: center; gap: 4rem; padding: 5rem max(3.5rem, calc((100vw - var(--max)) / 2)); color: var(--navy); background: radial-gradient(circle at 88% 46%, rgba(0,152,199,.16), transparent 34%), linear-gradient(112deg, #e7edef 0%, #d7e3e6 58%, #c3d6da 100%); border-top: 1px solid rgba(0,152,199,.24); }
.final-cta h2 { margin: .8rem 0 1.1rem; font-size: clamp(3rem, 6vw, 5.6rem); }
.final-cta p { max-width: 690px; margin-bottom: 0; color: #435861; }
.cta-actions { display: flex; flex-direction: column; gap: .8rem; position: relative; z-index: 2; }
.cta-pattern { position: absolute; right: -80px; top: -180px; width: 630px; height: 630px; border: 1px solid rgba(0,152,199,.28); border-radius: 50%; box-shadow: 0 0 0 70px rgba(126,204,53,.055), 0 0 0 140px rgba(0,152,199,.035); }
.cta-copy { position: relative; z-index: 2; }
.final-cta .eyebrow { color: var(--brand-blue-dark); }
.final-cta .eyebrow span { background: linear-gradient(90deg, var(--brand-green), var(--brand-blue)); }
.final-cta .button-white { color: white; background: linear-gradient(100deg, var(--brand-blue-dark), var(--brand-blue)); box-shadow: 0 12px 28px rgba(0,152,199,.2); }
.final-cta .button-white:hover { background: linear-gradient(100deg, #006f91, #0098c7); box-shadow: 0 16px 32px rgba(0,152,199,.26); }
.final-cta .button-ghost { color: var(--navy); background: rgba(255,255,255,.42); border-color: rgba(24,34,40,.34); }
.final-cta .button-ghost:hover { color: var(--navy); background: rgba(255,255,255,.72); border-color: var(--brand-blue-dark); }

body.modal-open { overflow: hidden; }
.needs-dialog [hidden] { display: none !important; }
.needs-dialog { width: min(1180px, calc(100% - 2rem)); height: min(92vh, 920px); max-width: none; max-height: none; margin: auto; padding: 0; color: var(--navy); background: #f8fbfc; border: 0; border-radius: 18px; box-shadow: 0 32px 90px rgba(3,20,31,.3); overflow: hidden; }
.needs-dialog[open] { animation: needs-dialog-in .3s ease both; }
.needs-dialog::backdrop { background: rgba(3,20,31,.7); backdrop-filter: blur(8px); }
.needs-dialog-shell { height: 100%; display: grid; grid-template-rows: auto auto minmax(0,1fr); }
.needs-dialog-header { position: relative; display: grid; grid-template-columns: 1fr auto; gap: 2rem; align-items: start; padding: 2rem 2.5rem 1.35rem; color: white; background: linear-gradient(115deg, #182228, #465159); }
.needs-dialog-header h2 { margin: .25rem 0 .4rem; font-size: clamp(2rem, 4vw, 3.4rem); }
.needs-dialog-header p { max-width: 760px; margin: 0; color: rgba(255,255,255,.76); }
.needs-dialog-header .kicker { color: var(--cyan-bright); }
.needs-close { width: 44px; height: 44px; display: grid; place-items: center; padding: 0; color: white; background: rgba(255,255,255,.08); border: 1px solid rgba(255,255,255,.22); border-radius: 50%; font-size: 1.8rem; line-height: 1; cursor: pointer; transition: background .2s ease, transform .2s ease; }
.needs-close:hover { background: rgba(255,255,255,.17); transform: rotate(5deg); }
.needs-progress { padding: 1rem 2.5rem .9rem; background: white; border-bottom: 1px solid var(--line); }
.needs-progress-meta { display: flex; justify-content: space-between; gap: 1rem; margin-bottom: .55rem; color: var(--muted); font-size: .7rem; }
.needs-progress-meta strong { color: var(--navy); font-family: "Space Grotesk"; font-weight: 600; }
.needs-progress-track { height: 4px; overflow: hidden; background: #e3edf0; border-radius: 999px; }
.needs-progress-track span { display: block; width: 20%; height: 100%; background: linear-gradient(90deg, var(--cyan), var(--green)); border-radius: inherit; transition: width .3s ease; }
.needs-progress ol { display: grid; grid-template-columns: repeat(5,1fr); gap: 1rem; margin: .65rem 0 0; padding: 0; list-style: none; color: #8b9aa3; font-size: .66rem; }
.needs-progress li { position: relative; }
.needs-progress li.active { color: var(--cyan-dark); font-weight: 700; }
.needs-form { min-height: 0; display: grid; grid-template-rows: minmax(0,1fr) auto; }
.form-trap { position: absolute !important; left: -10000px !important; width: 1px !important; height: 1px !important; opacity: 0 !important; }
.needs-step { min-height: 0; overflow-y: auto; padding: 2rem 2.5rem 2.5rem; scrollbar-color: #b8cbd2 transparent; }
.needs-step[hidden] { display: none; }
.needs-step-heading { display: flex; gap: 1rem; align-items: flex-start; margin-bottom: 1.5rem; }
.needs-step-heading > span { flex: 0 0 auto; min-width: 48px; padding: .45rem .65rem; color: white; background: var(--cyan-dark); border-radius: 8px; font-family: "Space Grotesk"; font-size: .78rem; text-align: center; }
.needs-step-heading h3 { margin: 0; font-size: 1.35rem; }
.needs-step-heading p { margin: .22rem 0 0; color: var(--muted); font-size: .78rem; }
.selected-model-note { display: grid; gap: .7rem; margin: -.35rem 0 1.25rem; padding: .9rem 1rem; color: #38515e; background: #f0f2f3; border-left: 3px solid var(--cyan); border-radius: 0 8px 8px 0; font-size: .72rem; }
.selected-model-note > div { display: flex; justify-content: space-between; gap: 1rem; align-items: center; }
.selected-model-note strong { color: var(--navy); font-family: "Space Grotesk"; font-size: .9rem; text-align: right; }
.selected-model-note ul { display: flex; flex-wrap: wrap; gap: .4rem; margin: 0; padding: .7rem 0 0; border-top: 1px solid rgba(8,143,172,.18); list-style: none; }
.selected-model-note li { padding: .38rem .55rem; color: #28505f; background: white; border: 1px solid #b9dce3; border-radius: 999px; font-size: .65rem; }
.form-grid { display: grid; gap: 1rem; }
.form-grid-2 { grid-template-columns: repeat(2,minmax(0,1fr)); }
.form-grid-3 { grid-template-columns: repeat(3,minmax(0,1fr)); }
.form-span-2 { grid-column: span 2; }
.form-span-3 { grid-column: span 3; }
.needs-form label, .standalone-label { display: grid; gap: .4rem; color: #49606d; font-size: .73rem; font-weight: 600; }
.needs-form label em, .needs-required em, .consent-check em { color: #db416c; font-style: normal; }
.needs-form input[type="text"], .needs-form input[type="email"], .needs-form input[type="tel"], .needs-form input[type="number"], .needs-form textarea { width: 100%; padding: .78rem .9rem; color: var(--navy); background: white; border: 1px solid #c8d9df; border-radius: 8px; outline: 0; font: inherit; font-weight: 500; transition: border-color .2s ease, box-shadow .2s ease; }
.needs-form textarea { resize: vertical; min-height: 72px; }
.needs-form input:focus, .needs-form textarea:focus { border-color: var(--cyan); box-shadow: 0 0 0 3px rgba(179,18,92,.12); }
.needs-form input:user-invalid, .needs-form textarea:user-invalid { border-color: #db416c; }
.choice-block { min-width: 0; margin: 0 0 1rem; padding: 1.05rem 1.15rem 1.15rem; background: white; border: 1px solid #d7e4e8; border-radius: 12px; }
.choice-block legend { padding: 0 .45rem; color: var(--navy); font-family: "Space Grotesk"; font-size: .82rem; font-weight: 600; }
.choice-block > label { margin-top: .9rem; }
.choice-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: .55rem .8rem; }
.choice-grid-3 { grid-template-columns: repeat(3,minmax(0,1fr)); }
.choice-grid-1 { grid-template-columns: 1fr; }
.choice-grid label, .consent-check { display: flex; grid-template-columns: none; gap: .62rem; align-items: flex-start; min-height: 41px; padding: .62rem .72rem; color: #334b59; background: #f6fafb; border: 1px solid transparent; border-radius: 8px; cursor: pointer; font-size: .72rem; font-weight: 500; transition: border-color .2s ease, background .2s ease; }
.choice-grid label:hover { background: #eef7f9; border-color: #c6e6ed; }
.choice-grid input, .consent-check input { width: 17px; height: 17px; flex: 0 0 auto; margin: .05rem 0 0; accent-color: var(--cyan-dark); }
.handling-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 1rem; }
.handling-grid-2 { grid-template-columns: repeat(2,minmax(0,1fr)); }
.standalone-label { margin: -.1rem 0 1.2rem; }
.compact-choice { margin: 0; }
.compact-choice .choice-grid { max-width: 500px; }
.needs-summary { padding: 1rem 1.15rem; color: #38515e; background: #f0f2f3; border-left: 3px solid var(--cyan); border-radius: 0 8px 8px 0; font-size: .74rem; line-height: 1.65; }
.needs-summary strong { color: var(--navy); }
.needs-summary-options { margin: .55rem 0 .7rem; }
.needs-summary-options ul { margin: .25rem 0 0; padding-left: 1.1rem; }
.consent-check { align-items: flex-start; min-height: auto; padding: 1rem; background: white; border-color: #d7e4e8; cursor: pointer; line-height: 1.5; }
.needs-form-footer { min-height: 82px; display: grid; grid-template-columns: auto 1fr auto; gap: 1rem; align-items: center; padding: 1rem 2.5rem; background: white; border-top: 1px solid var(--line); }
.needs-required { margin: 0; color: var(--muted); font-size: .67rem; }
.needs-form-status { margin: 0; color: #b3264f; font-size: .7rem; text-align: right; }
.needs-form-actions { display: flex; gap: .65rem; }
.needs-form-actions .button { min-width: 130px; justify-content: center; cursor: pointer; }
.needs-back { color: var(--navy); background: white; border: 1px solid #b8c9cf; }
.needs-submit[disabled] { opacity: .6; cursor: wait; }
.needs-success { align-self: center; justify-self: center; max-width: 520px; padding: 3rem; text-align: center; }
.needs-success > span { width: 68px; height: 68px; display: grid; place-items: center; margin: 0 auto 1.3rem; color: white; background: var(--green); border-radius: 50%; font-size: 2rem; }
.needs-success h3 { margin: 0 0 .65rem; font-size: 2rem; }
.needs-success p { margin: 0 0 1.5rem; color: var(--muted); }
@keyframes needs-dialog-in { from { opacity: 0; transform: translateY(18px) scale(.985); } to { opacity: 1; transform: none; } }

.site-footer { position: relative; display: grid; grid-template-columns: 2fr 1fr 1fr; gap: 5rem; padding: 4.5rem max(3.5rem, calc((100vw - var(--max)) / 2)) 5.5rem; color: rgba(255,255,255,.76); background: linear-gradient(115deg, #102833, #173945); border-top: 1px solid rgba(0,152,199,.2); font-size: .76rem; }
.footer-brand img { width: 190px; height: 60px; object-fit: contain; object-position: left; filter: grayscale(1) invert(1) brightness(3); mix-blend-mode: screen; }
.footer-brand p { max-width: 310px; margin-top: 1rem; }
.site-footer strong { display: block; margin-bottom: 1rem; color: white; font-family: "Space Grotesk"; font-weight: 500; }
.site-footer a { display: block; margin: .55rem 0; }
.site-footer a:hover { color: var(--cyan-bright); }
.copyright { position: absolute; left: max(3.5rem, calc((100vw - var(--max)) / 2)); right: max(3.5rem, calc((100vw - var(--max)) / 2)); bottom: 1.2rem; padding-top: 1.2rem; border-top: 1px solid rgba(255,255,255,.17); }

.reveal { opacity: 0; transform: translateY(22px); transition: opacity .65s ease, transform .65s ease; }
.reveal.visible { opacity: 1; transform: translateY(0); }

@media (max-width: 1060px) {
  .site-header { grid-template-columns: 170px 1fr auto; gap: 1.3rem; }
  .main-nav { gap: 1.1rem; }
  .main-nav a { font-size: .7rem; }
  .nav-products summary { font-size: .7rem; }
  .header-cta { padding-inline: .9rem; }
  .intro { grid-template-columns: 1fr 3fr; }
  .intro-text { grid-column: 2; }
  .section, .hero-content { width: min(var(--max), calc(100% - 4rem)); }
  .method-content { padding: 4rem; }
  .industry-card { padding: 1.4rem; }
  .machine-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
}

@media (max-width: 820px) {
  .has-aerosec-topbar { --aerosec-topbar-height: 112px; }
  .aerosec-topbar.proof-ultrasons a { width: calc(100% - 2.4rem); grid-template-columns: 2.2rem minmax(0, 1fr); gap: .1rem .7rem; padding: .65rem 0; }
  .aerosec-topbar .proof-ultrasons-wave { grid-row: 1 / span 2; }
  .aerosec-topbar.proof-ultrasons b { grid-column: 2; justify-self: start; margin-top: .35rem; padding: .34rem .62rem; }
  .site-header { height: 70px; grid-template-columns: 1fr auto; padding: 0 1.2rem; background: rgba(249,252,253,.96); }
  .brand { width: 165px; }
  .brand img { height: 48px; }
  .menu-toggle { display: grid; gap: 4px; width: 44px; height: 44px; place-content: center; color: var(--navy); background: transparent; border: 0; cursor: pointer; }
  .menu-toggle > span:not(.sr-only) { display: block; width: 22px; height: 2px; background: currentColor; transition: transform .2s ease; }
  .main-nav { position: fixed; inset: 70px 0 0; height: auto; display: none; flex-direction: column; align-items: stretch; gap: 0; padding: 2rem 1.5rem; background: rgba(24,34,40,.98); }
  .has-aerosec-topbar .main-nav { inset: calc(var(--aerosec-topbar-height) + 70px) 0 0; }
  .menu-open .main-nav { display: flex; }
  .main-nav a { display: block; padding: 1rem 0; color: white; border-bottom: 1px solid rgba(255,255,255,.12); font-size: 1.05rem; }
  .main-nav a::after { display: none; }
  .nav-products { height: auto; }
  .nav-products summary { height: auto; padding: 1rem 0; color: white; border-bottom: 1px solid rgba(255,255,255,.12); font-size: 1.05rem; }
  .main-nav .nav-products summary .nav-parent-link { display: inline-flex; padding: 0; color: white; border-bottom: 0; font-size: inherit; }
  .nav-products[open] summary { color: white; }
  .nav-products-menu { position: static; width: auto; padding: .25rem 0 .55rem .9rem; background: transparent; border: 0; border-radius: 0; box-shadow: none; transform: none; }
  .main-nav .nav-products-menu a { padding: .72rem .8rem; color: rgba(255,255,255,.72); border-bottom: 0; font-size: .9rem; }
  .main-nav .nav-products-menu a:hover { color: white; background: rgba(255,255,255,.08); }
  .header-cta { display: none; }
  .sound-toggle { left: 12px; bottom: 12px; min-height: 40px; padding: .55rem .65rem; }
  .sound-toggle-label { font-size: .64rem; }
  .hero { height: auto; min-height: 720px; padding-top: 70px; }
  .hero-overlay { background: linear-gradient(90deg, rgba(232,234,235,.96), rgba(226,229,230,.84)), linear-gradient(0deg, rgba(24,34,40,.12), transparent 60%); }
  .hero-spray { display: none; }
  .hero-content { width: calc(100% - 3rem); }
  .hero h1 { font-size: clamp(2.7rem, 12vw, 4.4rem); }
  .hero-lead { font-size: 1rem; }
  .scroll-cue { display: none; }
  .proof-strip { grid-template-columns: 1fr 1fr; }
  .proof-strip article:nth-child(even) { border-right: 0; }
  .proof-strip article:nth-child(-n+4) { border-bottom: 1px solid var(--line); }
  .proof-strip .proof-ultrasons { grid-column: 1 / -1; border-right: 0; }
  .section { width: calc(100% - 3rem); padding: 3.75rem 0; }
  .intro { display: block; }
  .intro-copy { margin-top: 1.5rem; }
  .intro-text { padding-top: 1.4rem; }
  .section-head { display: block; }
  .section-head > p { margin-top: 1.5rem; }
  .solution-stage { grid-template-columns: 1fr; }
  .solution-media { min-height: 390px; }
  .solution-copy { min-height: 430px; }
  .solution-tabs { grid-template-columns: 1fr 1fr; }
  .solution-tab { border-bottom: 1px solid var(--line); }
  .solution-tab:nth-child(2n) { border-right: 0; }
  .solution-tab:last-child { grid-column: 1 / -1; }
  .catalog-feature { grid-template-columns: 1fr; }
  .catalog-feature-media { min-height: 410px; }
  .catalog-feature-media img { height: 330px; }
  .machine-toolbar { display: block; }
  .machine-filters { justify-content: flex-start; margin-top: 1rem; }
  .machine-dialog { width: calc(100% - 1rem); height: calc(100vh - 1rem); max-height: none; }
  .machine-dialog[open] { grid-template-columns: 1fr; grid-template-rows: 310px minmax(0,1fr); }
  .machine-dialog-media { min-height: 310px; padding: 1.5rem; }
  .machine-dialog-media img { max-height: 255px; }
  .machine-dialog-copy { max-height: none; padding: 2.2rem 1.5rem; }
  .machine-dialog-copy h2 { font-size: 2.6rem; }
  .method { width: calc(100% - 3rem); grid-template-columns: 1fr; margin-bottom: 3rem; }
  .method-image { min-height: 420px; }
  .method-content { padding: 3rem 1.5rem; }
  .industry-grid { grid-template-columns: 1fr 1fr; }
  .expertise { grid-template-columns: 1fr; }
  .expertise-panel { border-radius: 12px 12px 0 0; }
  .expertise-stats { border-radius: 0 0 12px 12px; }
  .final-cta { grid-template-columns: 1fr; gap: 2rem; padding: 4.5rem 1.5rem; }
  .cta-actions { align-items: flex-start; }
  .needs-dialog { width: calc(100% - 1rem); height: calc(100vh - 1rem); border-radius: 12px; }
  .needs-dialog-header { padding: 1.5rem; }
  .needs-progress { padding: .85rem 1.5rem; }
  .needs-step { padding: 1.5rem; }
  .needs-form-footer { grid-template-columns: 1fr auto; padding: .9rem 1.5rem; }
  .needs-form-status { grid-column: 1 / -1; grid-row: 1; text-align: left; }
  .needs-required { grid-row: 2; }
  .needs-form-actions { grid-row: 2; }
  .choice-grid-3 { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .handling-grid { grid-template-columns: 1fr; }
  .handling-grid-2 { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .site-footer { grid-template-columns: 1.5fr 1fr 1fr; gap: 2rem; padding: 4rem 1.5rem 6rem; }
  .copyright { left: 1.5rem; right: 1.5rem; }
}

@media (max-width: 520px) {
  .hero { min-height: 660px; }
  .hero-image { object-position: 66% center; }
  .hero-content { width: calc(100% - 2rem); }
  .hero h1 { font-size: 2.7rem; }
  .hero-actions { align-items: stretch; flex-direction: column; }
  .proof-strip { grid-template-columns: 1fr; }
  .proof-strip article { border-right: 0; border-bottom: 1px solid var(--line); }
  .proof-strip .proof-ultrasons { grid-column: auto; border-bottom: 0; }
  .section { width: calc(100% - 2rem); }
  h2 { font-size: 2.5rem; }
  .solution-media { min-height: 330px; padding: 1rem; }
  .solution-media img { height: 285px; }
  .solution-copy { padding: 2.2rem 1.5rem; }
  .solution-tabs { grid-template-columns: 1fr; }
  .solution-tab, .solution-tab:nth-child(2n) { border-right: 0; }
  .solution-tab:last-child { grid-column: auto; }
  .catalog-feature-media { min-height: 330px; padding: 1rem; }
  .catalog-feature-media img { height: 275px; }
  .catalog-family-media { min-height: 430px; padding: 3.3rem .7rem .7rem; }
  .catalog-feature-media .catalog-family-card img { width: 100%; height: calc(100% - 2.35rem); }
  .catalog-family-card > span { left: .5rem; right: .5rem; bottom: .45rem; }
  .catalog-family-card strong { max-width: 95px; font-size: .62rem; line-height: 1.25; }
  .catalog-feature-copy { padding: 2.4rem 1.5rem; }
  .machine-catalog { margin-top: 3rem; }
  .machine-grid { grid-template-columns: 1fr; }
  .machine-card-media { min-height: 240px; }
  .machine-card-media img { height: 210px; }
  .machine-filters { flex-wrap: nowrap; overflow-x: auto; padding-bottom: .4rem; }
  .machine-filters button { flex: 0 0 auto; }
  .machine-dialog[open] { grid-template-rows: 250px minmax(0,1fr); }
  .machine-dialog-media { min-height: 250px; }
  .machine-dialog-media img { max-height: 205px; }
  .machine-dialog-copy { padding: 1.7rem 1rem 2rem; }
  .machine-dialog-copy h2 { font-size: 2.15rem; }
  .machine-process-grid { grid-template-columns: 1fr; }
  .machine-variants-grid { grid-template-columns: 1fr; }
  .machine-version-options { grid-template-columns: 1fr; }
  .machine-options-grid { grid-template-columns: 1fr; }
  .machine-dialog-actions { align-items: stretch; flex-direction: column; }
  .machine-dialog-actions .button { justify-content: center; }
  .method { width: calc(100% - 2rem); }
  .method-image { min-height: 340px; }
  .method-actions { align-items: stretch; flex-direction: column; }
  .method-actions .button { width: 100%; }
  .industry-grid { grid-template-columns: 1fr; }
  .industry-card { min-height: 290px; }
  .expertise-panel { min-height: 470px; padding: 3rem 1.5rem; }
.expertise-stat { grid-template-columns: 72px 1fr 24px; padding: 1.3rem 1.2rem; }
.expertise-stat small { opacity: 1; transform: none; }
  .needs-dialog-header { padding: 1.15rem 1rem; }
  .needs-dialog-header p { display: none; }
  .needs-dialog-header h2 { font-size: 1.7rem; }
  .needs-progress { padding: .75rem 1rem; }
  .needs-progress ol { gap: .25rem; font-size: .55rem; }
  .needs-progress ol li { text-align: center; }
  .needs-step { padding: 1.2rem 1rem 1.5rem; }
  .selected-model-note > div { align-items: flex-start; flex-direction: column; }
  .selected-model-note strong { text-align: left; }
  .form-grid-2, .form-grid-3, .choice-grid, .choice-grid-3, .handling-grid-2 { grid-template-columns: 1fr; }
  .form-span-2, .form-span-3 { grid-column: auto; }
  .choice-block { padding: .9rem; }
  .needs-form-footer { padding: .8rem 1rem; }
  .needs-required { display: none; }
  .needs-form-footer { grid-template-columns: 1fr; }
  .needs-form-actions { grid-column: 1; width: 100%; }
  .needs-form-actions .button { flex: 1; min-width: 0; padding-inline: .75rem; }
  .site-footer { grid-template-columns: 1fr 1fr; }
  .footer-brand { grid-column: 1 / -1; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation-duration: .01ms !important; transition-duration: .01ms !important; }
  .reveal { opacity: 1; transform: none; }
  .hero-image, .hero-content { animation: none; transform: none; }
}

/* L'aspersion en mouvement, avec les vidéos officielles EVOSPRAY. */
.spray-videos {
  position: relative;
  display: grid;
  grid-template-columns: minmax(300px, .62fr) minmax(0, 1.38fr);
  align-items: center;
  gap: clamp(2rem, 3.5vw, 3.75rem);
  padding: clamp(3rem, 4vw, 3.5rem) max(2rem, calc((100vw - var(--max)) / 2));
  overflow: hidden;
  overflow: clip;
  color: white;
  background:
    radial-gradient(circle at 84% 16%, rgba(179,18,92,.2), transparent 28%),
    linear-gradient(135deg, #182228 0%, #25323a 62%, #202a2f 100%);
}
.spray-videos::before {
  content: "";
  position: absolute;
  inset: 0;
  opacity: .2;
  background: repeating-linear-gradient(90deg, transparent 0 119px, rgba(255,255,255,.08) 120px);
  pointer-events: none;
}
.spray-videos::after {
  content: "";
  position: absolute;
  width: 520px;
  height: 520px;
  right: -260px;
  bottom: -260px;
  border: 1px solid rgba(255,120,170,.3);
  border-radius: 50%;
  box-shadow: 0 0 0 90px rgba(255,120,170,.03), 0 0 0 180px rgba(255,120,170,.018);
  pointer-events: none;
}
.spray-videos-head,
.spray-cinema { position: relative; z-index: 1; }
.spray-videos-head {
  display: grid;
  align-content: center;
  margin: 0;
}
.spray-videos .kicker { color: var(--ruby-bright); }
.spray-videos-head h2 { margin: .55rem 0 0; font-size: clamp(2.2rem, 2.75vw, 3rem); }
.spray-videos-head h2 em { color: var(--ruby-bright); font-style: normal; }
.spray-process-copy {
  min-height: 126px;
  max-width: 470px;
  margin-top: 1.45rem;
  padding-left: 1rem;
  border-left: 2px solid rgba(245,63,137,.74);
}
.spray-process-count {
  display: block;
  color: var(--ruby-bright);
  font-size: .64rem;
  font-weight: 700;
  letter-spacing: .13em;
  text-transform: uppercase;
}
.spray-process-copy h3 {
  margin: .45rem 0 .35rem;
  color: white;
  font-family: "Space Grotesk", sans-serif;
  font-size: clamp(1.35rem, 2vw, 1.85rem);
  letter-spacing: -.025em;
}
.spray-process-copy p {
  margin: 0;
  color: rgba(255,255,255,.7);
  font-size: .8rem;
  line-height: 1.65;
}
.spray-process-nav {
  display: grid;
  grid-template-columns: 38px minmax(0, 1fr) 38px;
  align-items: center;
  gap: .7rem;
  max-width: 500px;
  margin-top: 1.25rem;
}
.spray-process-arrow {
  width: 38px;
  height: 38px;
  padding: 0;
  color: white;
  background: rgba(255,255,255,.07);
  border: 1px solid rgba(255,255,255,.22);
  border-radius: 50%;
  cursor: pointer;
  transition: background .2s ease, border-color .2s ease, transform .2s ease;
}
.spray-process-arrow:hover,
.spray-process-arrow:focus-visible {
  background: rgba(179,18,92,.84);
  border-color: rgba(255,255,255,.46);
  transform: scale(1.05);
}
.spray-process-arrow:focus-visible,
.spray-process-dots button:focus-visible { outline: 2px solid white; outline-offset: 3px; }
.spray-process-dots {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: .35rem;
}
.spray-process-dots button {
  position: relative;
  min-width: 0;
  padding: .32rem .2rem .42rem;
  color: rgba(255,255,255,.44);
  background: transparent;
  border: 0;
  border-bottom: 2px solid rgba(255,255,255,.18);
  cursor: pointer;
  text-align: left;
  transition: color .25s ease, border-color .25s ease;
}
.spray-process-dots button::after {
  content: "";
  position: absolute;
  left: 0;
  right: 100%;
  bottom: -2px;
  height: 2px;
  background: var(--ruby-bright);
  transition: right .35s ease;
}
.spray-process-dots button.is-active { color: white; border-bottom-color: rgba(245,63,137,.26); }
.spray-process-dots button.is-active::after {
  right: 0;
  transform-origin: left center;
  animation: spray-process-progress 120s linear both;
}
.spray-videos.is-paused .spray-process-dots button.is-active::after { animation-play-state: paused; }
@keyframes spray-process-progress {
  from { transform: scaleX(0); }
  to { transform: scaleX(1); }
}
@media (prefers-reduced-motion: reduce) {
  .spray-process-dots button.is-active::after { animation: none; }
}
.spray-process-dots span,
.spray-process-dots small { display: block; }
.spray-process-dots span { font-size: .64rem; font-weight: 700; letter-spacing: .09em; }
.spray-process-dots small { margin-top: .12rem; overflow: hidden; font-size: .58rem; text-overflow: ellipsis; white-space: nowrap; }
.spray-cinema {
  position: relative;
  perspective: 1600px;
  overflow: visible;
}
.spray-page-behind {
  position: absolute;
  z-index: -1;
  top: 12px;
  right: -12px;
  bottom: 12px;
  left: 12px;
  border: 1px solid rgba(255,255,255,.14);
  border-radius: 18px;
  background: #303c42;
}
.spray-page-behind-two { z-index: -2; top: 23px; right: -22px; bottom: 23px; left: 22px; opacity: .5; }
.spray-cinema-frame {
  position: relative;
  aspect-ratio: 1.85 / 1;
  min-height: 330px;
  overflow: hidden;
  background: #10171b;
  border: 1px solid rgba(255,255,255,.16);
  border-radius: 20px;
  box-shadow: 0 35px 90px rgba(0,0,0,.32);
  isolation: isolate;
  transform-origin: right center;
  backface-visibility: hidden;
}
.spray-cinema.is-turning .spray-cinema-frame { animation: spray-page-turn .82s cubic-bezier(.6,.02,.24,1) both; }
@keyframes spray-page-turn {
  0% { transform: rotateY(0deg) translateX(0); filter: brightness(1); }
  42% { transform: rotateY(-15deg) translateX(-3%); filter: brightness(.58); }
  48% { transform: rotateY(10deg) translateX(2%); filter: brightness(.72); }
  100% { transform: rotateY(0deg) translateX(0); filter: brightness(1); }
}
.spray-cinema-frame iframe {
  position: absolute;
  z-index: 0;
  left: 4%;
  top: 4%;
  width: 92%;
  height: 92%;
  display: block;
  overflow: hidden;
  background: #111a1f;
  border: 0;
  border-radius: 12px;
  pointer-events: none;
}
.spray-cinema-frame iframe[hidden] { display: none; }
.spray-local-video {
  position: absolute;
  z-index: 0;
  inset: 0;
  display: grid;
  place-items: center;
  overflow: hidden;
  background: #111a1f;
}
.spray-local-video[hidden] { display: none; }
.spray-local-video video { pointer-events: none; }
.spray-local-backdrop {
  position: absolute;
  inset: -10%;
  width: 120%;
  height: 120%;
  object-fit: cover;
  opacity: .6;
  filter: blur(24px) saturate(1.2) brightness(.56);
  transform: scale(1.08);
}
.spray-local-foreground {
  position: relative;
  z-index: 1;
  width: auto;
  height: 100%;
  max-width: 66%;
  object-fit: contain;
  background: #111a1f;
  box-shadow: 0 0 0 1px rgba(255,255,255,.14), 0 0 70px rgba(0,0,0,.58);
}
.spray-cinema.is-featured .spray-local-backdrop {
  opacity: .24;
  filter: blur(18px) saturate(1.06) brightness(.8);
}
.spray-cinema.is-featured .spray-local-foreground {
  position: absolute;
  z-index: 2;
  left: 50%;
  top: 50%;
  width: 34%;
  height: 88%;
  max-width: none;
  object-fit: contain;
  object-position: center;
  transform: translate(-50%, -50%);
  filter: brightness(1.12) contrast(1.04) saturate(1.04);
  border-radius: 12px;
  box-shadow: 0 0 0 1px rgba(255,255,255,.14), 0 20px 55px rgba(0,0,0,.3);
}
.spray-cinema.is-featured .spray-local-video::before,
.spray-cinema.is-featured .spray-local-video::after {
  opacity: .12;
}
.spray-cinema.is-featured .spray-local-rails,
.spray-cinema.is-featured .spray-local-brand {
  display: none;
}
.spray-cinema.is-featured .spray-cinema-shade {
  background: linear-gradient(180deg, rgba(15,22,26,.42) 0, rgba(15,22,26,.18) 20px, transparent 48px);
}
.spray-cinema.is-featured .spray-cinema-hitarea span {
  width: 42px;
  height: 42px;
  opacity: .35;
}
.spray-preview-note {
  position: absolute;
  z-index: 5;
  left: 50%;
  bottom: 1.35rem;
  display: grid;
  gap: .2rem;
  min-width: min(320px, calc(100% - 2rem));
  padding: .8rem 1rem;
  color: white;
  background: rgba(15,22,26,.82);
  border: 1px solid rgba(255,255,255,.18);
  border-radius: 10px;
  text-align: center;
  transform: translateX(-50%);
  backdrop-filter: blur(10px);
}
.spray-preview-note[hidden] { display: none; }
.spray-preview-note span { color: var(--ruby-bright); font-size: .58rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.spray-preview-note strong { font-size: .72rem; }
.spray-cinema.is-static-preview .spray-cinema-hitarea,
.spray-cinema.is-static-preview .spray-cinema-toggle { cursor: default; opacity: .72; }
.spray-local-video::before,
.spray-local-video::after {
  content: "";
  position: absolute;
  z-index: 2;
  top: 0;
  bottom: 0;
  width: 26%;
  pointer-events: none;
}
.spray-local-video::before { left: 0; background: linear-gradient(90deg, rgba(20,29,34,.94), rgba(20,29,34,.2), transparent); }
.spray-local-video::after { right: 0; background: linear-gradient(270deg, rgba(63,27,48,.84), rgba(63,27,48,.18), transparent); }
.spray-local-rails {
  position: absolute;
  z-index: 3;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0 8%;
  opacity: .55;
  pointer-events: none;
}
.spray-local-rails span { width: 1px; height: 68%; background: linear-gradient(transparent, var(--ruby-bright), transparent); box-shadow: 0 0 12px rgba(245,63,137,.4); }
.spray-local-brand {
  position: absolute;
  z-index: 4;
  left: 1.2rem;
  bottom: 1rem;
  display: flex;
  align-items: center;
  gap: .75rem;
  padding: .68rem .85rem;
  color: white;
  background: rgba(18,27,32,.82);
  border: 1px solid rgba(255,255,255,.18);
  border-radius: 10px;
  backdrop-filter: blur(12px);
  pointer-events: none;
}
.spray-local-brand > span {
  display: grid;
  place-items: center;
  width: 32px;
  height: 32px;
  color: white;
  background: var(--ruby);
  border-radius: 50%;
  font-size: 1rem;
  box-shadow: 0 0 0 5px rgba(245,63,137,.1);
}
.spray-local-brand small,
.spray-local-brand strong { display: block; }
.spray-local-brand small { color: var(--ruby-bright); font-size: .5rem; font-weight: 700; letter-spacing: .13em; text-transform: uppercase; }
.spray-local-brand strong { margin-top: .16rem; font-family: "Space Grotesk", sans-serif; font-size: .7rem; letter-spacing: .04em; }
.spray-cinema.is-featured .spray-cinema-frame {
  border-color: rgba(245,63,137,.48);
  box-shadow: 0 35px 95px rgba(0,0,0,.42), 0 0 0 1px rgba(245,63,137,.16), 0 0 55px rgba(179,18,92,.2);
}
.spray-cinema.is-featured .spray-page-behind { border-color: rgba(245,63,137,.25); background: #382b34; }
.spray-cinema-poster {
  position: absolute;
  z-index: 1;
  inset: 4%;
  background-color: #111a1f;
  background-image: url("https://i.ytimg.com/vi/m7TZrvWLa2g/hqdefault.jpg");
  background-position: center 54%;
  background-size: contain;
  background-repeat: no-repeat;
  border-radius: 12px;
  opacity: 1;
  visibility: visible;
  transition: opacity .45s ease, visibility .45s ease;
  pointer-events: none;
}
.spray-cinema-poster.is-hidden { opacity: 0; visibility: hidden; }
.spray-cinema-shade {
  position: absolute;
  z-index: 2;
  inset: 0;
  background: linear-gradient(180deg, rgba(15,22,26,.9) 0, rgba(15,22,26,.55) 18px, transparent 55px);
  pointer-events: none;
}
.spray-page-number {
  position: absolute;
  z-index: 4;
  left: 1rem;
  bottom: .85rem;
  display: grid;
  place-items: center;
  width: 34px;
  height: 24px;
  color: rgba(255,255,255,.9);
  background: rgba(24,34,40,.7);
  border: 1px solid rgba(255,255,255,.22);
  border-radius: 999px;
  font-size: .58rem;
  font-weight: 700;
  letter-spacing: .08em;
  backdrop-filter: blur(8px);
}
.spray-page-curl {
  position: absolute;
  z-index: 5;
  top: -20%;
  bottom: -20%;
  left: -25%;
  width: 24%;
  opacity: 0;
  background: linear-gradient(90deg, transparent, rgba(255,255,255,.32), rgba(255,255,255,.06), transparent);
  filter: blur(2px);
  pointer-events: none;
  transform: skewX(-10deg);
}
.spray-cinema.is-turning .spray-page-curl { animation: spray-page-curl .82s ease both; }
@keyframes spray-page-curl {
  0% { left: -30%; opacity: 0; }
  28% { opacity: .72; }
  70% { opacity: .3; }
  100% { left: 112%; opacity: 0; }
}
.spray-cinema-hitarea {
  position: absolute;
  z-index: 3;
  inset: 0;
  display: grid;
  place-items: center;
  padding: 0;
  background: transparent;
  border: 0;
  cursor: pointer;
}
.spray-cinema-hitarea span {
  width: 48px;
  height: 48px;
  display: grid;
  place-items: center;
  color: white;
  background: rgba(24,34,40,.7);
  border: 1px solid rgba(255,255,255,.38);
  border-radius: 50%;
  box-shadow: 0 12px 34px rgba(0,0,0,.28);
  font-size: 1rem;
  font-weight: 700;
  opacity: .58;
  transform: scale(.94);
  transition: opacity .2s ease, transform .2s ease, background .2s ease;
  backdrop-filter: blur(8px);
}
.spray-cinema-hitarea:hover span,
.spray-cinema-hitarea:focus-visible span { opacity: 1; transform: scale(1); background: rgba(179,18,92,.9); }
.spray-cinema-hitarea:focus-visible { outline: 3px solid var(--ruby-bright); outline-offset: -6px; }
.spray-cinema-toggle {
  position: absolute;
  z-index: 4;
  top: 1rem;
  right: 1rem;
  display: flex;
  align-items: center;
  gap: .55rem;
  padding: .58rem .75rem;
  color: white;
  background: rgba(24,34,40,.76);
  border: 1px solid rgba(255,255,255,.28);
  border-radius: 999px;
  cursor: pointer;
  backdrop-filter: blur(9px);
}
.spray-cinema-toggle span { color: var(--ruby-bright); font-size: .8rem; font-weight: 700; }
.spray-cinema-toggle small { font-size: .68rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; }
.spray-cinema-toggle:hover { background: rgba(24,34,40,.94); }
.spray-cinema-toggle:focus-visible { outline: 3px solid var(--ruby-bright); outline-offset: 3px; }

/* Mise en avant publicitaire de la MECA ES avec option monte / baisse. */
.meca-es-ad {
  position: relative;
  width: min(var(--max), calc(100% - 4rem));
  height: 520px;
  display: grid;
  grid-template-columns: minmax(0, .88fr) minmax(500px, 1.12fr);
  margin: 2.5rem auto;
  overflow: hidden;
  color: white;
  background: #172228;
  border-radius: 16px;
  box-shadow: 0 28px 70px rgba(24,34,40,.18);
}
.meca-es-ad::before {
  content: "MECA ES";
  position: absolute;
  z-index: 0;
  right: -1.5rem;
  bottom: -2.6rem;
  color: rgba(255,255,255,.028);
  font-family: "Space Grotesk", sans-serif;
  font-size: clamp(7rem, 14vw, 14rem);
  font-weight: 700;
  letter-spacing: -.09em;
  line-height: .8;
  pointer-events: none;
}
.meca-es-ad-media {
  position: relative;
  height: 520px;
  overflow: hidden;
  background: #d8dcdd;
}
.meca-es-ad-media::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(90deg, transparent 60%, rgba(23,34,40,.48) 100%), linear-gradient(180deg, transparent 62%, rgba(11,18,22,.44));
  pointer-events: none;
}
.meca-es-ad-media img {
  width: 100%;
  height: 100%;
  display: block;
  object-fit: cover;
  object-position: center 49%;
  filter: saturate(.82) contrast(1.05);
  transition: transform .8s cubic-bezier(.2,.7,.2,1), filter .4s ease;
}
.meca-es-ad:hover .meca-es-ad-media img { transform: scale(1.025); filter: saturate(.95) contrast(1.06); }
.meca-es-ad-photo-label {
  position: absolute;
  z-index: 2;
  left: clamp(1rem, 3vw, 2.8rem);
  bottom: clamp(1rem, 3vw, 2.5rem);
  padding: .72rem 1rem;
  background: rgba(22,32,38,.8);
  border: 1px solid rgba(255,255,255,.24);
  border-radius: 8px;
  backdrop-filter: blur(12px);
}
.meca-es-ad-photo-label span,
.meca-es-ad-photo-label strong { display: block; }
.meca-es-ad-photo-label span { color: rgba(255,255,255,.62); font-size: .58rem; letter-spacing: .14em; text-transform: uppercase; }
.meca-es-ad-photo-label strong { margin-top: .18rem; font-family: "Space Grotesk", sans-serif; font-size: .8rem; letter-spacing: .05em; }
.meca-es-ad-copy {
  position: relative;
  z-index: 1;
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: 1.55rem clamp(2.4rem, 3.4vw, 4rem) 1.2rem;
  background:
    radial-gradient(circle at 100% 0%, rgba(179,18,92,.32), transparent 42%),
    linear-gradient(145deg, #172228, #253139 74%);
}
.meca-es-ad-badge {
  position: absolute;
  top: .7rem;
  right: 1rem;
  display: inline-flex;
  align-items: center;
  gap: .5rem;
  padding: .48rem .7rem;
  color: white;
  background: rgba(245,63,137,.15);
  border: 1px solid rgba(245,63,137,.45);
  border-radius: 999px;
  font-size: .6rem;
  font-weight: 700;
  letter-spacing: .1em;
  text-transform: uppercase;
}
.meca-es-ad-badge span { color: var(--ruby-bright); font-size: 1rem; line-height: 1; }
.meca-es-ad .kicker { margin: 0 0 .55rem; color: var(--ruby-bright); }
.meca-es-ad h2 { margin: 0; color: white; font-size: clamp(2.35rem, 3.2vw, 3.45rem); line-height: .96; letter-spacing: -.055em; }
.meca-es-ad h2 em { color: var(--ruby-bright); font-style: normal; }
.meca-es-ad-lead { max-width: 610px; margin: .65rem 0 .75rem; color: rgba(255,255,255,.72); font-size: clamp(.8rem, .95vw, .94rem); line-height: 1.5; }
.meca-es-ad-feature {
  display: flex;
  align-items: center;
  gap: 1.1rem;
  padding: .72rem 0;
  border-top: 1px solid rgba(255,255,255,.14);
  border-bottom: 1px solid rgba(255,255,255,.14);
}
.meca-es-ad-arrow {
  display: grid;
  place-items: center;
  flex: 0 0 42px;
  height: 54px;
  color: white;
  background: var(--ruby);
  border-radius: 999px;
  font-size: 1.65rem;
  box-shadow: 0 0 0 7px rgba(245,63,137,.1);
}
.meca-es-ad-feature small,
.meca-es-ad-feature strong { display: block; }
.meca-es-ad-feature small { color: var(--ruby-bright); font-size: .6rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; }
.meca-es-ad-feature strong { margin-top: .25rem; color: white; font-family: "Space Grotesk", sans-serif; font-size: clamp(1.02rem, 1.5vw, 1.3rem); line-height: 1.16; }
.meca-es-ad-points {
  display: flex;
  flex-wrap: wrap;
  gap: .55rem;
  margin: .55rem 0 .7rem;
  padding: 0;
  list-style: none;
}
.meca-es-ad-points li {
  padding: .48rem .68rem;
  color: rgba(255,255,255,.82);
  background: rgba(255,255,255,.065);
  border: 1px solid rgba(255,255,255,.13);
  border-radius: 999px;
  font-size: .66rem;
}
.meca-es-ad-actions { display: flex; align-items: center; flex-wrap: wrap; gap: 1.2rem; }
.meca-es-ad-link { color: white; font-size: .72rem; font-weight: 700; text-decoration: none; border-bottom: 1px solid rgba(245,63,137,.75); }
.meca-es-ad-link:hover { color: var(--ruby-bright); }
.meca-es-ad-signature { margin-top: .45rem; color: rgba(255,255,255,.38); font-size: .53rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; }

@media (max-width: 980px) {
  .meca-es-ad { height: auto; grid-template-columns: 1fr; margin: 2.75rem auto; }
  .meca-es-ad-media,
  .meca-es-ad-media img { height: 440px; min-height: 0; max-height: none; }
  .meca-es-ad-media::after { background: linear-gradient(180deg, transparent 64%, rgba(23,34,40,.68)); }
  .meca-es-ad-copy { padding: 3.6rem 2.5rem 2.8rem; }
}
@media (max-width: 620px) {
  .meca-es-ad { width: calc(100% - 2rem); margin: 2rem auto; border-radius: 12px; }
  .meca-es-ad-media,
  .meca-es-ad-media img { height: 380px; min-height: 0; max-height: none; }
  .meca-es-ad-copy { padding: 3.8rem 1.25rem 2.3rem; }
  .meca-es-ad-badge { top: 1rem; right: 1rem; }
  .meca-es-ad h2 { font-size: 2.75rem; }
  .meca-es-ad-actions { align-items: stretch; flex-direction: column; }
  .meca-es-ad-actions .button { justify-content: center; }
  .meca-es-ad-link { align-self: flex-start; }
}

@media (max-width: 980px) {
  .spray-videos { grid-template-columns: 1fr; gap: 2rem; }
  .spray-videos-head { grid-template-columns: 1fr 1fr; column-gap: 2rem; }
  .spray-process-copy { margin-top: 0; }
  .spray-process-nav { grid-column: 1 / -1; max-width: none; }
  .spray-cinema-frame { aspect-ratio: 16 / 9; min-height: 360px; }
}

@media (max-width: 620px) {
  .spray-videos { padding-inline: 1.2rem; }
  .spray-videos-head { display: block; }
  .spray-videos-head h2 { font-size: 2.55rem; }
  .spray-process-copy { min-height: 148px; margin-top: 1.25rem; }
  .spray-process-nav { grid-template-columns: 34px minmax(0, 1fr) 34px; gap: .42rem; }
  .spray-process-arrow { width: 34px; height: 34px; }
  .spray-process-dots small { display: none; }
  .spray-process-dots button { text-align: center; }
  .spray-cinema { border-radius: 14px; }
  .spray-cinema-frame { min-height: 400px; aspect-ratio: .92 / 1; }
  .spray-cinema-frame iframe { left: 4%; top: 4%; width: 92%; height: 92%; }
  .spray-cinema.is-featured .spray-local-foreground { width: 60%; height: 88%; max-width: none; }
  .spray-cinema-toggle small { display: none; }
  .spray-cinema-toggle { width: 43px; height: 43px; justify-content: center; padding: 0; }
  .spray-page-behind { display: none; }
}

/* Défilé de machines réelles sur fond blanc. */
.real-machines {
  position: relative;
  padding: clamp(3.1rem, 4.2vw, 4.2rem) 0 clamp(1.25rem, 2vw, 2rem);
  overflow: hidden;
  color: var(--navy);
  background: #fff;
  border-top: 1px solid #e5ecee;
}
.real-machines + .intro { padding-top: clamp(3rem, 4vw, 4.5rem); }
.real-machines::before {
  content: "";
  position: absolute;
  width: 760px;
  height: 760px;
  right: -340px;
  top: -380px;
  border: 1px solid rgba(179,18,92,.12);
  border-radius: 50%;
  box-shadow: 0 0 0 110px rgba(179,18,92,.025), 0 0 0 220px rgba(179,18,92,.018);
  pointer-events: none;
}
.real-machines-head {
  position: relative;
  z-index: 2;
  width: min(var(--max), calc(100% - 7rem));
  display: grid;
  grid-template-columns: minmax(0, 1.35fr) minmax(300px, .65fr);
  align-items: end;
  gap: 4rem;
  margin: 0 auto 2.4rem;
}
.real-machines-head h2 { margin: .55rem 0 0; font-size: clamp(2.45rem, 4vw, 4rem); }
.real-machines-head h2 em { color: var(--cyan-dark); font-style: normal; }
.real-machines-intro > p { max-width: 440px; margin-bottom: 1.7rem; color: var(--muted); }
.real-machines-controls { display: flex; align-items: center; gap: .55rem; }
.real-machines-count { margin-right: auto; color: #6c7e86; font-family: "Space Grotesk"; font-size: .72rem; font-weight: 600; letter-spacing: .12em; }
.real-machines-controls button {
  width: 46px;
  height: 46px;
  display: grid;
  place-items: center;
  color: var(--navy);
  background: white;
  border: 1px solid #cfdde1;
  border-radius: 50%;
  cursor: pointer;
  transition: color .2s ease, background .2s ease, border-color .2s ease, transform .2s ease;
}
.real-machines-controls button:hover { color: white; background: var(--navy); border-color: var(--navy); transform: translateY(-2px); }
.real-machines-viewport { position: relative; overflow: hidden; touch-action: pan-y; cursor: grab; }
.real-machines-viewport:active { cursor: grabbing; }
.real-machines-track {
  width: max-content;
  display: flex;
  gap: clamp(1rem, 1.8vw, 1.6rem);
  padding: .8rem clamp(1.2rem, 6vw, 6rem) 1.8rem;
  will-change: transform;
  transition: transform .82s cubic-bezier(.22,.74,.17,1);
}
.real-machine-slide {
  width: min(70vw, 960px);
  min-height: 410px;
  flex: 0 0 auto;
  display: grid;
  grid-template-columns: minmax(290px, .4fr) minmax(0, .6fr);
  overflow: hidden;
  background: white;
  border: 1px solid #dce7ea;
  border-radius: 20px;
  box-shadow: 0 22px 55px rgba(24,34,40,.12);
}
.real-machine-copy {
  position: relative;
  z-index: 2;
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: clamp(2.2rem, 3.5vw, 3.4rem);
  background: linear-gradient(145deg, #fff 0%, #f7fbfc 100%);
  border-right: 1px solid #e0e9ec;
}
.real-machine-copy::before { content: ""; width: 42px; height: 2px; margin-bottom: 1.2rem; background: var(--cyan); }
.real-machine-copy > span { color: var(--cyan-dark); font-size: .67rem; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; }
.real-machine-copy h3 { max-width: 380px; margin: .7rem 0 1rem; font-size: clamp(1.95rem, 2.7vw, 3rem); font-weight: 500; }
.real-machine-copy > p { max-width: 390px; color: var(--muted); }
.real-machine-copy .text-link { align-self: flex-start; margin-top: 1rem; }
.real-machine-media {
  position: relative;
  min-width: 0;
  overflow: hidden;
  isolation: isolate;
  background: #e8f0f2;
}
.real-machine-media::before { content: ""; position: absolute; z-index: 2; inset: 0; background: linear-gradient(90deg, rgba(24,34,40,.09), transparent 18%, transparent 82%, rgba(24,34,40,.04)); pointer-events: none; }
.real-machine-media::after { content: ""; position: absolute; inset: 0; z-index: 3; border: 1px solid rgba(255,255,255,.36); pointer-events: none; }
.real-machine-media img { position: relative; z-index: 1; width: 100%; height: 100%; object-fit: cover; transition: transform 1.15s cubic-bezier(.2,.7,.2,1), filter .5s ease; }
.real-machine-slide:hover .real-machine-media img:not(.is-cutout) { transform: scale(1.035); filter: saturate(1.04) contrast(1.02); }
.real-machine-slide.is-product .real-machine-media {
  display: grid;
  place-items: center;
  padding: .8rem;
  background:
    radial-gradient(circle at 51% 46%, #fff 0 28%, rgba(255,255,255,.2) 56%, transparent 58%),
    linear-gradient(135deg, #fff, #edf5f7);
}
.real-machine-slide.is-product .real-machine-media::before,
.real-machine-slide.is-product .real-machine-media::after {
  content: "";
  position: absolute;
  inset: auto;
  width: 470px;
  height: 470px;
  border: 1px solid rgba(179,18,92,.24);
  border-radius: 50%;
  box-shadow: none;
}
.real-machine-slide.is-product .real-machine-media::after { width: 340px; height: 340px; }
.real-machine-media img.is-cutout { position: relative; z-index: 2; width: 94%; height: 94%; object-fit: contain; padding: 1.2rem; filter: drop-shadow(0 28px 24px rgba(24,34,40,.2)); }
.real-machine-slide:hover .real-machine-media img.is-cutout { transform: translateY(-5px) scale(1.015); }
.real-machines-dots { display: flex; justify-content: center; align-items: center; gap: .45rem; margin-top: 1rem; }
.real-machines-dots button { width: 7px; height: 7px; padding: 0; background: #bdcbd0; border: 0; border-radius: 999px; cursor: pointer; transition: width .25s ease, background .25s ease; }
.real-machines-dots button.active { width: 32px; background: var(--cyan-dark); }

@media (max-width: 980px) {
  .real-machines-head { width: min(var(--max), calc(100% - 3rem)); grid-template-columns: 1fr; gap: 1.5rem; }
  .real-machines-intro { display: grid; grid-template-columns: 1fr auto; align-items: end; gap: 2rem; }
  .real-machines-intro > p { margin: 0; }
  .real-machine-slide { width: 86vw; grid-template-columns: minmax(280px,.45fr) minmax(0,.55fr); }
}

@media (max-width: 720px) {
  .real-machines { padding: 3.5rem 0 1.5rem; }
  .real-machines + .intro { padding-top: 3.2rem; }
  .real-machines-head { width: calc(100% - 2.4rem); margin-bottom: 2.2rem; }
  .real-machines-head h2 { font-size: 2.75rem; }
  .real-machines-intro { display: block; }
  .real-machines-controls { margin-top: 1.4rem; }
  .real-machines-track { padding-inline: 1.2rem; }
  .real-machine-slide { width: calc(100vw - 2.4rem); min-height: 0; grid-template-columns: 1fr; grid-template-rows: 260px auto; }
  .real-machine-media { grid-row: 1; }
  .real-machine-copy { grid-row: 2; min-height: 260px; padding: 1.8rem 1.6rem; border-top: 1px solid #e0e9ec; border-right: 0; }
  .real-machine-copy h3 { font-size: 2rem; }
}

@media (max-width: 430px) {
  .real-machines-head h2 { font-size: 2.35rem; }
  .real-machine-slide { grid-template-rows: 220px auto; border-radius: 18px; }
  .real-machine-copy { min-height: 270px; }
  .real-machine-copy h3 { font-size: 1.8rem; }
  .real-machines-controls button { width: 42px; height: 42px; }
}

/* Page catalogue : une vraie destination, séparée de l'accueil. */
.models-page { overflow-x: hidden; background: #f4f7f8; }
.models-page main > .hero,
.models-page main > .proof-strip,
.models-page main > .intro,
.models-page main > .method,
.models-page main > .industries,
.models-page main > .expertise,
.models-page main > .final-cta,
.models-page .models-catalog-section > .section-head,
.models-page .models-catalog-section > .catalog-feature { display: none; }

.models-hero {
  min-height: 640px;
  display: grid;
  grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr);
  padding-top: 78px;
  color: white;
  background: var(--navy);
  overflow: hidden;
}
.models-hero-copy {
  position: relative;
  z-index: 2;
  min-width: 0;
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: clamp(3.5rem, 5.5vw, 5.8rem) clamp(3rem, 6vw, 6rem);
  background:
    radial-gradient(circle at 16% 24%, rgba(179,18,92,.18), transparent 31%),
    linear-gradient(135deg, #031722, #062d40);
}
.models-hero-copy::after {
  content: "";
  position: absolute;
  right: 0;
  top: 14%;
  bottom: 14%;
  width: 1px;
  background: linear-gradient(transparent, rgba(255,120,170,.65), transparent);
}
.models-back { align-self: flex-start; margin-bottom: 2rem; color: rgba(255,255,255,.62); font-size: .73rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; }
.models-back:hover { color: var(--cyan-bright); }
.models-hero .eyebrow { color: var(--cyan-bright); }
.models-hero h1 { max-width: 620px; margin: .45rem 0 1.2rem; font-size: clamp(2.8rem, 4vw, 4.65rem); font-weight: 500; }
.models-hero h1 em { color: var(--cyan-bright); font-style: normal; }
.models-hero-copy > p:not(.eyebrow) { max-width: 580px; color: rgba(255,255,255,.72); font-size: 1rem; }
.models-hero-actions { display: flex; align-items: center; flex-wrap: wrap; gap: 1.6rem; margin-top: 1rem; }
.models-hero-actions .text-link { margin-top: 0; }
.models-hero-stats { display: flex; gap: 0; margin: 2.3rem 0 0; }
.models-hero-stats > div { min-width: 118px; padding: 0 1.5rem; border-left: 1px solid rgba(255,255,255,.15); }
.models-hero-stats > div:first-child { padding-left: 0; border-left: 0; }
.models-hero-stats dt { color: white; font-family: "Space Grotesk"; font-size: 1.65rem; line-height: 1; }
.models-hero-stats dd { margin: .4rem 0 0; color: rgba(255,255,255,.52); font-size: .67rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }

.models-hero-visual {
  position: relative;
  min-height: 562px;
  overflow: hidden;
  background:
    linear-gradient(150deg, rgba(255,255,255,.86), rgba(228,239,242,.96)),
    repeating-linear-gradient(90deg, transparent 0 59px, rgba(24,34,40,.04) 60px);
}
.models-hero-visual::before {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(115deg, transparent 0 60%, rgba(179,18,92,.1) 60% 61%, transparent 61%);
}
.models-orbit, .models-orbit i { position: absolute; border: 1px solid rgba(179,18,92,.28); border-radius: 50%; }
.models-orbit { width: 680px; height: 680px; left: 50%; top: 50%; transform: translate(-50%,-48%); }
.models-orbit i:nth-child(1) { inset: 11%; }
.models-orbit i:nth-child(2) { inset: 24%; }
.models-orbit i:nth-child(3) { inset: 38%; border-color: rgba(24,34,40,.12); }
.models-visual-label { position: absolute; z-index: 4; top: 2rem; left: 2.2rem; color: var(--navy-light); font-size: .68rem; font-weight: 700; letter-spacing: .13em; text-transform: uppercase; }
.models-machine { position: absolute; z-index: 2; object-fit: contain; filter: drop-shadow(0 30px 28px rgba(24,34,40,.24)); }
.models-machine-main { width: min(68%, 620px); height: 70%; right: 5%; top: 13%; }
.models-machine-secondary { z-index: 3; width: min(39%, 350px); height: 37%; left: 2%; bottom: 8%; padding: .7rem; background: rgba(255,255,255,.66); border: 1px solid rgba(179,18,92,.24); border-radius: 50%; backdrop-filter: blur(5px); }
.models-visual-caption { position: absolute; z-index: 4; right: 2.2rem; bottom: 2rem; display: grid; padding: 1rem 1.15rem; color: white; background: rgba(24,34,40,.9); border-left: 3px solid var(--cyan); box-shadow: 0 16px 30px rgba(24,34,40,.18); }
.models-visual-caption span { color: var(--cyan-bright); font-size: .63rem; font-weight: 700; letter-spacing: .13em; text-transform: uppercase; }
.models-visual-caption strong { font-family: "Space Grotesk"; font-size: .92rem; font-weight: 500; }

.models-page .models-catalog-section { padding-top: 6rem; padding-bottom: 7rem; }
.models-page .machine-catalog { margin-top: 0; scroll-margin-top: 2rem; }
.models-page .machine-toolbar { margin-bottom: 2rem; }
.models-page .machine-card { box-shadow: 0 12px 30px rgba(24,34,40,.06); }

@media (max-width: 980px) {
  .models-hero { grid-template-columns: 1fr; }
  .models-hero-copy { min-height: 610px; }
  .models-hero-visual { min-height: 590px; }
}

@media (max-width: 820px) {
  .models-hero { padding-top: 70px; }
  .models-hero-copy { min-height: auto; padding: 5rem 1.5rem 4rem; }
  .models-back { margin-bottom: 2.2rem; }
  .models-hero-stats > div { min-width: 0; flex: 1; padding: 0 1rem; }
  .models-hero-visual { min-height: 500px; }
  .models-machine-main { width: 78%; right: 1%; }
  .models-machine-secondary { width: 42%; left: 1rem; }
  .models-page .models-catalog-section { width: min(var(--max), calc(100% - 2.4rem)); padding-top: 4rem; }
}

@media (max-width: 520px) {
  .models-hero h1 { max-width: 100%; font-size: 2.55rem; overflow-wrap: break-word; }
  .models-hero-copy > p:not(.eyebrow) { max-width: 100%; font-size: .9rem; overflow-wrap: break-word; }
  .models-hero-actions { align-items: flex-start; flex-direction: column; }
  .models-hero-stats { margin-top: 2.5rem; }
  .models-hero-stats dt { font-size: 1.3rem; }
  .models-hero-stats dd { font-size: .58rem; }
  .models-hero-visual { min-height: 410px; }
  .models-visual-label { top: 1.3rem; left: 1.3rem; right: 1.3rem; }
  .models-machine-main { width: 88%; height: 66%; top: 16%; }
  .models-machine-secondary { width: 39%; height: 34%; bottom: 9%; }
  .models-visual-caption { right: 1rem; bottom: 1rem; }
}

/* Produits lessiviels */
.products-page { background: #f5f9fa; }
.products-page .site-header { position: absolute; }
.product-hero {
  min-height: 690px;
  display: grid;
  grid-template-columns: minmax(0, 1.05fr) minmax(420px, .95fr);
  padding-top: 78px;
  color: white;
  background:
    radial-gradient(circle at 77% 38%, rgba(179,18,92,.18), transparent 29%),
    linear-gradient(118deg, #182228 0 56%, #25323a 56% 100%);
  overflow: hidden;
}
.product-hero-copy { display: flex; flex-direction: column; justify-content: center; padding: 5rem max(4rem, calc((100vw - var(--max)) / 2)); padding-right: 5vw; }
.product-hero .eyebrow { color: var(--cyan-bright); }
.product-back-link { align-self: flex-start; width: fit-content; color: var(--cyan-bright); text-decoration: none; transition: color .25s ease, transform .25s ease; }
.product-back-link i { font-style: normal; font-size: 1rem; transition: transform .25s ease; }
.product-back-link:hover, .product-back-link:focus-visible { color: white; transform: translateX(-2px); }
.product-back-link:hover i, .product-back-link:focus-visible i { transform: translateX(-4px); }
.product-back-link:focus-visible { outline: 2px solid var(--cyan-bright); outline-offset: 6px; }
.product-hero h1 { max-width: 760px; margin: 1rem 0 1.6rem; font-size: clamp(3.2rem, 5.8vw, 6.1rem); font-weight: 500; }
.product-hero h1 em { color: var(--cyan-bright); font-style: normal; }
.product-hero-copy > p:not(.eyebrow) { max-width: 660px; color: rgba(255,255,255,.72); font-size: 1.03rem; }
.product-hero-actions { display: flex; align-items: center; gap: 1.4rem; flex-wrap: wrap; margin-top: 1rem; }
.product-hero-actions .text-link { margin-top: 0; }
.product-hero-panel { align-self: center; width: min(520px, calc(100% - 5rem)); margin: 2rem auto; padding: 2rem; background: rgba(255,255,255,.98); color: var(--ink); box-shadow: 0 34px 80px rgba(0,0,0,.24); }
.product-hero-panel > p { margin-bottom: 1.3rem; color: var(--navy-light); font-size: .72rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; }
.product-hero-panel ol { display: grid; gap: 0; margin: 0; padding: 0; list-style: none; }
.product-hero-panel li { display: grid; grid-template-columns: 48px 1fr; align-items: center; gap: 1rem; padding: 1rem 0; border-top: 1px solid var(--line); }
.product-hero-panel li > span { color: var(--cyan-dark); font-family: "Space Grotesk"; font-size: .76rem; }
.product-hero-panel li div { display: grid; gap: .1rem; }
.product-hero-panel li strong { color: var(--navy); font-size: .98rem; }
.product-hero-panel li small { color: var(--muted); font-size: .76rem; }
.product-hero-note { display: flex; align-items: center; gap: .7rem; margin-top: 1rem; padding: .9rem 1rem; color: #31535f; background: #eaf7f8; font-size: .78rem; font-weight: 700; }
.product-hero-note span { display: grid; width: 22px; height: 22px; place-items: center; color: white; background: var(--cyan-dark); border-radius: 50%; }
.product-hero-note div { display: grid; gap: .06rem; }
.product-hero-note strong { color: var(--navy); font-size: .75rem; }
.product-hero-note small { color: var(--muted); font-size: .66rem; font-weight: 500; }
.product-hero-selector-cta { width: 100%; margin-top: .7rem; text-align: center; }

.aspersion-products {
  position: relative;
  padding: 4.5rem max(2rem, calc((100vw - var(--max)) / 2));
  overflow: hidden;
  background: #eef2f3;
  scroll-margin-top: 1.5rem;
}
.aspersion-products::before {
  content: "";
  position: absolute;
  inset: 0;
  opacity: .34;
  background:
    linear-gradient(90deg, transparent 0 119px, rgba(24,34,40,.035) 120px),
    radial-gradient(circle at 88% 12%, rgba(179,18,92,.13), transparent 24%);
  background-size: 120px 100%, 100% 100%;
  pointer-events: none;
}
.aspersion-products-heading,
.aspersion-products-grid,
.aspersion-products-note { position: relative; z-index: 1; }
.aspersion-products-heading {
  display: grid;
  grid-template-columns: minmax(0, 1.2fr) minmax(300px, .8fr);
  align-items: end;
  gap: 4rem;
  margin-bottom: 3rem;
}
.aspersion-products-heading .kicker { color: var(--ruby-dark); font-size: .7rem; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; }
.aspersion-products-heading h2 { margin: 0; color: var(--navy); font-size: clamp(2.4rem, 4.5vw, 4.4rem); }
.aspersion-products-heading h2 em { color: var(--ruby); font-style: normal; }
.aspersion-products-heading > p { margin: 0; color: var(--muted); }
.aspersion-products-grid { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 1rem; }
.aspersion-product-card {
  grid-column: span 2;
  min-height: 365px;
  display: flex;
  flex-direction: column;
  padding: 1.55rem;
  overflow: hidden;
  color: var(--ink);
  background: rgba(255,255,255,.96);
  border: 1px solid #d5dee1;
  box-shadow: 0 15px 35px rgba(24,34,40,.07);
  transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease;
}
.aspersion-product-card-wide { grid-column: span 3; }
.aspersion-product-card-centered { grid-column: 3 / span 2; }
.aspersion-product-card { cursor: pointer; }
.aspersion-product-card:hover { transform: translateY(-4px); border-color: rgba(179,18,92,.38); box-shadow: 0 22px 45px rgba(24,34,40,.11); }
.aspersion-product-card:focus-visible { outline: 3px solid rgba(179,18,92,.38); outline-offset: 4px; transform: translateY(-4px); }
.aspersion-product-card-featured { color: white; background: linear-gradient(145deg, #182228, #2e3940); border-color: rgba(255,255,255,.08); }
.aspersion-product-top { display: flex; align-items: center; justify-content: space-between; gap: 1rem; }
.aspersion-product-top span { color: var(--ruby-bright); font-family: "Space Grotesk"; font-size: .68rem; font-weight: 600; letter-spacing: .12em; }
.aspersion-product-top small { padding: .32rem .55rem; color: #53676f; background: #edf2f3; font-size: .58rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; }
.aspersion-product-card-featured .aspersion-product-top small { color: rgba(255,255,255,.76); background: rgba(255,255,255,.09); }
.aspersion-product-card h3 { margin: 2.25rem 0 .75rem; color: var(--navy); font-size: clamp(2rem, 3vw, 2.8rem); }
.aspersion-product-card-featured h3 { color: white; }
.aspersion-product-card > p { color: var(--muted); font-size: .8rem; }
.aspersion-product-card-featured > p { color: rgba(255,255,255,.65); }
.aspersion-product-card dl { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); margin: auto 0 1rem; border-top: 1px solid #dbe3e5; }
.aspersion-product-card dl div { padding: .8rem .5rem .6rem 0; }
.aspersion-product-card dl div + div { padding-left: .8rem; border-left: 1px solid #dbe3e5; }
.aspersion-product-card dt { color: #7a868c; font-size: .58rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.aspersion-product-card dd { margin: .1rem 0 0; color: var(--navy); font-size: .78rem; font-weight: 700; }
.aspersion-product-card-featured dl { border-color: rgba(255,255,255,.13); }
.aspersion-product-card-featured dl div + div { border-color: rgba(255,255,255,.13); }
.aspersion-product-card-featured dt { color: rgba(255,255,255,.45); }
.aspersion-product-card-featured dd { color: white; }
.aspersion-product-use { padding-top: .8rem; color: var(--ruby-dark); border-top: 2px solid var(--ruby); font-size: .68rem; letter-spacing: .06em; text-transform: uppercase; }
.aspersion-product-card-featured .aspersion-product-use { color: var(--ruby-bright); }
.aspersion-product-more { display: flex; align-items: center; justify-content: space-between; gap: 1rem; margin-top: .9rem; color: var(--navy); font-size: .72rem; font-weight: 700; }
.aspersion-product-more i { color: var(--ruby); font-size: 1rem; font-style: normal; transition: transform .2s ease; }
.aspersion-product-card:hover .aspersion-product-more i,
.aspersion-product-card:focus-visible .aspersion-product-more i { transform: translateX(5px); }
.aspersion-product-card-featured .aspersion-product-more { color: white; }
.aspersion-product-card-featured .aspersion-product-more i { color: var(--ruby-bright); }
.aspersion-products-note { display: grid; grid-template-columns: 40px 1fr; align-items: center; gap: 1rem; margin-top: 1rem; padding: 1rem 1.2rem; color: white; background: var(--navy-soft); }
.aspersion-products-note > span { display: grid; width: 34px; height: 34px; place-items: center; color: white; background: var(--ruby); border-radius: 50%; font-weight: 700; }
.aspersion-products-note p { margin: 0; color: rgba(255,255,255,.66); font-size: .75rem; }
.aspersion-products-note strong { color: white; }

.product-selector-section { position: relative; width: min(var(--max), calc(100% - 4rem)); margin: 0 auto; padding: 4.5rem 0; scroll-margin-top: 1.5rem; }
.product-selector-section::before { content: ""; position: absolute; z-index: -1; top: 0; bottom: 0; left: 50%; width: 100vw; transform: translateX(-50%); background: linear-gradient(135deg, #f7f9fa, #e9eff1); }
.selector-heading, .sheets-heading { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(300px, .8fr); gap: 4rem; align-items: end; margin-bottom: 3rem; }
.selector-heading .kicker, .sheets-heading .kicker, .product-validation .kicker { color: var(--cyan-dark); font-size: .7rem; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; }
.selector-heading h2, .sheets-heading h2, .product-validation h2 { margin-bottom: 0; color: var(--navy); font-size: clamp(2.4rem, 4.8vw, 4.6rem); }
.selector-heading > p, .sheets-heading > p { margin: 0; color: var(--muted); }
.selector-progress { display: grid; grid-template-columns: minmax(260px, .42fr) minmax(0, .58fr); align-items: end; gap: 2rem; margin: -1rem 0 1.5rem; padding: 1rem 1.2rem; color: white; background: var(--navy-soft); border-left: 4px solid var(--ruby); }
.selector-progress > div:first-child { display: flex; align-items: center; justify-content: space-between; gap: 1rem; }
.selector-progress span { color: rgba(255,255,255,.48); font-size: .6rem; font-weight: 700; letter-spacing: .11em; text-transform: uppercase; }
.selector-progress strong { color: white; font-family: "Space Grotesk"; font-size: .75rem; font-weight: 500; }
.selector-progress-track { height: 4px; overflow: hidden; background: rgba(255,255,255,.13); }
.selector-progress-track i { display: block; width: 0; height: 100%; background: linear-gradient(90deg, var(--ruby), var(--ruby-bright)); transition: width .32s ease; }
.product-selector-shell { display: grid; grid-template-columns: minmax(0, 1.18fr) minmax(340px, .82fr); gap: 1.5rem; align-items: start; }
.product-selector { display: grid; gap: 1rem; }
.product-selector fieldset { position: relative; margin: 0; padding: 1.7rem; background: white; border: 1px solid var(--line); transition: border-color .22s ease, box-shadow .22s ease; }
.product-selector fieldset.is-complete { border-color: rgba(179,18,92,.45); box-shadow: inset 4px 0 0 var(--ruby); }
.product-selector fieldset.is-complete::after { content: "✓ RENSEIGNÉ"; position: absolute; top: 1.05rem; right: 1.35rem; color: var(--ruby-dark); font-size: .52rem; font-weight: 700; letter-spacing: .1em; }
.product-selector legend { display: flex; align-items: center; gap: .7rem; padding: 0 .4rem; color: var(--navy); font-family: "Space Grotesk"; font-size: 1.02rem; font-weight: 600; }
.product-selector legend span { color: var(--cyan-dark); font-size: .7rem; letter-spacing: .1em; }
.selector-options { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .65rem; }
.selector-options label { cursor: pointer; }
.selector-options input { position: absolute; opacity: 0; pointer-events: none; }
.selector-options label > span { min-height: 84px; display: grid; align-content: center; gap: .15rem; padding: .9rem 1rem; color: #42565f; background: #f5f9fa; border: 1px solid transparent; transition: border-color .2s ease, background .2s ease, box-shadow .2s ease; }
.selector-options label > span strong { color: var(--navy); font-size: .86rem; }
.selector-options label > span small { color: var(--muted); font-size: .72rem; }
.selector-options input:checked + span { background: #eef1f2; border-color: var(--cyan); box-shadow: inset 4px 0 0 var(--cyan); }
.selector-options input:focus-visible + span { outline: 3px solid rgba(179,18,92,.28); outline-offset: 2px; }
.selector-options.compact label > span { min-height: 74px; }

.selector-result { position: sticky; top: 1.5rem; min-height: 560px; padding: 2.2rem; color: white; background: radial-gradient(circle at 100% 0%, rgba(179,18,92,.22), transparent 38%), var(--navy); box-shadow: 0 24px 55px rgba(24,34,40,.18); transition: background .3s ease, box-shadow .3s ease; }
.selector-result.is-matched { background: radial-gradient(circle at 100% 0%, rgba(239,76,140,.36), transparent 42%), linear-gradient(145deg, #121b20, #243138); box-shadow: 0 28px 65px rgba(120,12,61,.2); }
.selector-result.is-review { background: radial-gradient(circle at 100% 0%, rgba(196,125,42,.2), transparent 42%), linear-gradient(145deg, #191d20, #303033); }
.selector-result-kicker { margin-bottom: .8rem; color: var(--cyan-bright); font-size: .68rem; font-weight: 700; letter-spacing: .15em; text-transform: uppercase; }
.selector-result-gauge { display: grid; grid-template-columns: auto 1fr; gap: .45rem .8rem; align-items: center; margin-bottom: 1.5rem; }
.selector-result-gauge > span { grid-row: 1 / 3; display: grid; width: 58px; height: 58px; place-items: center; color: white; border: 1px solid rgba(255,255,255,.28); border-radius: 50%; font-family: "Space Grotesk"; font-size: .8rem; }
.selector-result-gauge > div { height: 3px; overflow: hidden; background: rgba(255,255,255,.13); }
.selector-result-gauge i { display: block; width: 0; height: 100%; background: var(--ruby-bright); transition: width .32s ease; }
.selector-result-gauge strong { color: rgba(255,255,255,.62); font-size: .65rem; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; }
.selector-result h3 { margin-bottom: 1rem; font-size: clamp(2rem, 3.2vw, 3rem); font-weight: 500; }
.selector-result > p:not(.selector-result-kicker) { color: rgba(255,255,255,.7); font-size: .85rem; }
.selector-result-lines { display: grid; grid-template-columns: 1fr 1fr; margin: 1.5rem 0; border-top: 1px solid rgba(255,255,255,.13); border-left: 1px solid rgba(255,255,255,.13); }
.selector-result-lines div { display: grid; gap: .2rem; padding: .85rem; border-right: 1px solid rgba(255,255,255,.13); border-bottom: 1px solid rgba(255,255,255,.13); }
.selector-result-lines span { color: rgba(255,255,255,.48); font-size: .61rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }
.selector-result-lines strong { color: white; font-size: .77rem; }
.selector-result ul { display: grid; gap: .65rem; margin: 0 0 1.5rem; padding: 0; list-style: none; }
.selector-result li { position: relative; padding-left: 1rem; color: rgba(255,255,255,.72); font-size: .76rem; }
.selector-result li::before { content: ""; position: absolute; left: 0; top: .62em; width: 5px; height: 5px; background: var(--green); border-radius: 50%; }
.selector-result-match { display: grid; gap: .16rem; margin: -0.2rem 0 1.25rem; padding: .9rem 1rem; color: white; background: rgba(179,18,92,.2); border: 1px solid rgba(239,76,140,.4); }
.selector-result-match span { color: var(--ruby-bright); font-size: .6rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }
.selector-result-match strong { color: white; font-size: .74rem; }
.selector-result-actions { display: grid; gap: .15rem; }
.selector-result .button { width: 100%; text-align: center; }
.selector-result .button.is-disabled { opacity: .38; pointer-events: none; filter: grayscale(.7); }
.selector-result-actions .text-link { justify-self: start; margin-top: .8rem; color: rgba(255,255,255,.9); }
.selector-result > small { display: block; margin-top: .9rem; color: rgba(255,255,255,.46); font-size: .66rem; line-height: 1.5; }
.aspersion-product-card:target { border-color: var(--ruby); box-shadow: 0 0 0 3px rgba(179,18,92,.16), 0 24px 55px rgba(24,34,40,.14); animation: product-target-pulse 1.2s ease both; }
@keyframes product-target-pulse { 0% { transform: translateY(0); } 35% { transform: translateY(-8px); } 100% { transform: translateY(0); } }

.technical-sheets { padding: 4.5rem max(2rem, calc((100vw - var(--max)) / 2)); background: white; scroll-margin-top: 1.5rem; }
.sheets-approval-flow { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); margin: 0 0 1rem; padding: 0; color: white; background: var(--navy); list-style: none; }
.sheets-approval-flow li { display: grid; grid-template-columns: 44px 1fr; gap: .9rem; align-items: center; min-height: 108px; padding: 1.2rem; border-right: 1px solid rgba(255,255,255,.12); }
.sheets-approval-flow li:last-child { border-right: 0; }
.sheets-approval-flow span { color: var(--cyan-bright); font-family: "Space Grotesk"; font-size: .7rem; font-weight: 700; letter-spacing: .12em; }
.sheets-approval-flow strong { display: block; margin-bottom: .22rem; font-family: "Space Grotesk"; font-size: .9rem; }
.sheets-approval-flow small { display: block; color: rgba(255,255,255,.58); font-size: .7rem; line-height: 1.45; }
.locked-doc-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1rem; }
.locked-doc { min-height: 330px; display: flex; flex-direction: column; padding: 1.6rem; background: #f6fafb; border: 1px solid var(--line); }
.locked-doc-top { display: flex; align-items: center; justify-content: space-between; margin-bottom: 3.1rem; }
.locked-doc-top span { color: var(--cyan-dark); font-family: "Space Grotesk"; font-size: .73rem; font-weight: 600; letter-spacing: .12em; }
.locked-doc-top i { width: 35px; height: 35px; display: grid; place-items: center; color: var(--navy); background: white; border: 1px solid var(--line); border-radius: 50%; font-size: .55rem; font-style: normal; }
.locked-doc h3 { margin-bottom: .7rem; color: var(--navy); font-size: 1.35rem; }
.locked-doc p { color: var(--muted); font-size: .82rem; }
.locked-badge { align-self: flex-start; margin: auto 0 1rem; padding: .34rem .55rem; color: #536971; background: #e5edef; font-size: .62rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; }
.locked-doc .text-link { margin-top: 0; color: var(--cyan-dark); }
.sheets-security-note { display: grid; grid-template-columns: 44px 1fr; gap: 1rem; align-items: start; margin-top: 1rem; padding: 1.25rem; color: white; background: var(--navy-soft); }
.sheets-security-note > span { display: grid; width: 40px; height: 40px; place-items: center; color: var(--cyan-bright); border: 1px solid rgba(255,120,170,.38); }
.sheets-security-note strong { font-size: .86rem; }
.sheets-security-note p { margin: .15rem 0 0; color: rgba(255,255,255,.63); font-size: .75rem; }

.product-validation { display: grid; grid-template-columns: minmax(0, .85fr) minmax(0, 1.15fr); gap: 5rem; align-items: start; padding: 4.5rem max(2rem, calc((100vw - var(--max)) / 2)); background: #eaf1f3; }
.product-validation ol { display: grid; margin: 0; padding: 0; list-style: none; }
.product-validation li { display: grid; grid-template-columns: 54px 1fr; gap: 1rem; padding: 1.3rem 0; border-top: 1px solid #cddadd; }
.product-validation li > span { color: var(--cyan-dark); font-family: "Space Grotesk"; font-size: .72rem; }
.product-validation li strong { color: var(--navy); font-size: .9rem; }
.product-validation li p { margin: .18rem 0 0; color: var(--muted); font-size: .78rem; }

.product-detail-open { overflow: hidden; }
.product-detail-dialog {
  width: min(980px, calc(100% - 2rem));
  max-width: none;
  height: min(720px, calc(100dvh - 3rem));
  max-height: none;
  margin: auto;
  padding: 0;
  overflow: hidden;
  color: var(--ink);
  background: white;
  border: 0;
  border-radius: 16px;
  box-shadow: 0 35px 100px rgba(4,27,42,.42);
}
.product-detail-dialog[open] { display: grid; grid-template-columns: minmax(300px, .78fr) minmax(0, 1.22fr); }
.product-detail-dialog::backdrop { background: rgba(4,27,42,.78); backdrop-filter: blur(8px); }
.product-detail-close {
  position: absolute;
  z-index: 3;
  top: 1rem;
  right: 1rem;
  width: 42px;
  height: 42px;
  display: grid;
  place-items: center;
  padding: 0;
  color: var(--navy);
  background: white;
  border: 1px solid #d5e0e3;
  border-radius: 50%;
  cursor: pointer;
  font-size: 1.35rem;
  line-height: 1;
}
.product-detail-close:hover,
.product-detail-close:focus-visible { color: white; background: var(--ruby); border-color: var(--ruby); outline: 0; }
.product-detail-header {
  position: relative;
  min-width: 0;
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: 3.5rem;
  overflow: hidden;
  color: white;
  background:
    radial-gradient(circle at 15% 85%, rgba(38,192,220,.18), transparent 30%),
    radial-gradient(circle at 90% 10%, rgba(232,34,124,.22), transparent 32%),
    linear-gradient(150deg, #142229, #26363e);
}
.product-detail-header::after {
  content: "";
  position: absolute;
  right: -90px;
  bottom: -90px;
  width: 250px;
  height: 250px;
  border: 1px solid rgba(38,192,220,.24);
  border-radius: 50%;
  box-shadow: 0 0 0 42px rgba(38,192,220,.06), 0 0 0 84px rgba(38,192,220,.035);
}
.product-detail-meta { position: absolute; top: 2rem; left: 3.5rem; right: 3.5rem; display: flex; align-items: center; justify-content: space-between; gap: 1rem; }
.product-detail-meta span { color: var(--ruby-bright); font-family: "Space Grotesk"; font-size: .72rem; font-weight: 700; letter-spacing: .12em; }
.product-detail-meta small { padding: .38rem .6rem; color: rgba(255,255,255,.72); background: rgba(255,255,255,.09); font-size: .58rem; font-weight: 700; letter-spacing: .07em; text-transform: uppercase; }
.product-detail-kicker { position: relative; z-index: 1; margin: 0 0 .75rem; color: var(--cyan-bright); font-size: .66rem; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; }
.product-detail-header h2 { position: relative; z-index: 1; margin: 0 0 1rem; color: white; font-size: clamp(2.8rem, 5vw, 4.9rem); line-height: .96; }
.product-detail-header > p:last-child { position: relative; z-index: 1; margin: 0; color: rgba(255,255,255,.66); font-size: .86rem; line-height: 1.65; }
.product-detail-content { min-width: 0; padding: 3.5rem 3rem 2.5rem; overflow-y: auto; }
.product-detail-section { padding: 1.35rem 0; border-top: 1px solid var(--line); }
.product-detail-section:first-child { padding-top: 0; border-top: 0; }
.product-detail-section h3 { margin: 0 0 1rem; color: var(--navy); font-size: 1rem; }
.product-detail-specification dl { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); margin: 0; border: 1px solid var(--line); }
.product-detail-specification dl > div { min-width: 0; padding: .85rem; }
.product-detail-specification dl > div + div { border-left: 1px solid var(--line); }
.product-detail-specification dt { color: #7a8990; font-size: .55rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.product-detail-specification dd { margin: .18rem 0 0; color: var(--navy); font-size: .76rem; font-weight: 700; line-height: 1.4; overflow-wrap: anywhere; }
.product-detail-section ul { display: grid; gap: .7rem; margin: 0; padding: 0; list-style: none; }
.product-detail-section li { position: relative; padding-left: 1.5rem; color: #53676f; font-size: .8rem; line-height: 1.5; }
.product-detail-section li::before { content: "✓"; position: absolute; top: 0; left: 0; color: var(--cyan-dark); font-weight: 700; }
.product-detail-validation { margin-top: .15rem; padding: 1.2rem; background: #f4f8f9; border: 1px solid #dbe6e8; }
.product-detail-validation li::before { content: "•"; color: var(--ruby); }
.product-detail-actions { display: flex; align-items: center; gap: 1.2rem; margin-top: 1.4rem; }
.product-detail-actions .button { text-align: center; }
.product-detail-actions .text-link { margin: 0; padding: .2rem 0; color: var(--navy); background: none; border: 0; cursor: pointer; font: inherit; font-size: .75rem; font-weight: 700; }
.product-detail-notice { margin: 1rem 0 0; color: #7b888e; font-size: .64rem; line-height: 1.5; }

@media (max-width: 1060px) {
  .product-hero { grid-template-columns: 1fr; }
  .product-hero-copy { min-height: 590px; padding: 7rem 3rem 4rem; }
  .product-hero-panel { width: min(700px, calc(100% - 6rem)); margin: 0 auto 4rem; }
  .aspersion-products-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .aspersion-product-card,
  .aspersion-product-card-wide { grid-column: span 1; }
  .aspersion-product-card-centered { grid-column: 1 / -1; width: calc(50% - .5rem); justify-self: center; }
  .product-selector-shell { grid-template-columns: 1fr; }
  .selector-result { position: static; }
}

@media (max-width: 820px) {
  .product-hero { padding-top: 70px; }
  .product-hero-copy { min-height: 520px; padding: 5rem 1.5rem 3rem; }
  .product-hero-panel { width: calc(100% - 3rem); }
  .aspersion-products { padding: 5rem 1.5rem; }
  .aspersion-products-heading { grid-template-columns: 1fr; gap: 1.5rem; }
  .product-selector-section { width: calc(100% - 3rem); padding: 5rem 0; }
  .selector-progress { grid-template-columns: 1fr; gap: .8rem; }
  .selector-heading, .sheets-heading, .product-validation { grid-template-columns: 1fr; gap: 1.5rem; }
  .sheets-approval-flow { grid-template-columns: 1fr; }
  .sheets-approval-flow li { border-right: 0; border-bottom: 1px solid rgba(255,255,255,.12); }
  .sheets-approval-flow li:last-child { border-bottom: 0; }
  .locked-doc-grid { grid-template-columns: 1fr; }
  .technical-sheets, .product-validation { padding: 5rem 1.5rem; }
  .product-detail-dialog { height: min(760px, calc(100dvh - 1.5rem)); }
  .product-detail-dialog[open] { display: block; overflow-y: auto; }
  .product-detail-header { min-height: 310px; padding: 4.5rem 2rem 2.5rem; }
  .product-detail-meta { top: 1.4rem; left: 2rem; right: 4.5rem; }
  .product-detail-content { padding: 2rem; overflow: visible; }
}

@media (max-width: 560px) {
  .product-hero h1 { font-size: 2.9rem; }
  .product-hero-actions { align-items: flex-start; flex-direction: column; }
  .product-hero-panel { padding: 1.35rem; }
  .aspersion-products-grid { grid-template-columns: 1fr; }
  .aspersion-product-card,
  .aspersion-product-card-wide { grid-column: 1; min-height: 330px; }
  .aspersion-product-card-centered { grid-column: 1; width: 100%; }
  .selector-options { grid-template-columns: 1fr; }
  .product-selector fieldset { padding: 1.2rem; }
  .product-selector fieldset.is-complete::after { position: static; display: inline-block; margin: .7rem 0 0 .4rem; }
  .selector-result { padding: 1.5rem; }
  .selector-result-lines { grid-template-columns: 1fr; }
  .product-detail-dialog { width: calc(100% - 1rem); height: calc(100dvh - 1rem); border-radius: 12px; }
  .product-detail-header { min-height: 280px; padding: 4.2rem 1.35rem 2rem; }
  .product-detail-meta { left: 1.35rem; }
  .product-detail-header h2 { font-size: 2.7rem; }
  .product-detail-content { padding: 1.5rem 1.35rem 2rem; }
  .product-detail-specification dl { grid-template-columns: 1fr; }
  .product-detail-specification dl > div + div { border-left: 0; border-top: 1px solid var(--line); }
  .product-detail-actions { align-items: stretch; flex-direction: column; }
  .product-detail-actions .text-link { align-self: flex-start; }
}

/* Passage visuel : du besoin à la solution d'aspersion */
.spray-divider {
  position: relative;
  min-height: 280px;
  display: grid;
  align-items: end;
  overflow: hidden;
  isolation: isolate;
  color: white;
  background:
    radial-gradient(circle at 72% 30%, rgba(179,18,92,.2), transparent 30%),
    radial-gradient(circle at 18% 100%, rgba(160,207,216,.13), transparent 32%),
    linear-gradient(115deg, #11191e 0%, #1d2a31 55%, #121a1f 100%);
  border-top: 3px solid var(--ruby);
  border-bottom: 1px solid rgba(190,225,232,.28);
  box-shadow: inset 0 22px 60px rgba(0,0,0,.34), inset 0 -20px 55px rgba(0,0,0,.28);
}
.spray-divider::before {
  content: "ASPERSION INDUSTRIELLE  /  PROCESS MAÎTRISÉ  /  EVOSPRAY";
  position: absolute;
  z-index: 2;
  top: 1rem;
  right: max(2rem, calc((100vw - var(--max)) / 2));
  color: rgba(255,255,255,.38);
  font-family: "Space Grotesk", sans-serif;
  font-size: .58rem;
  font-weight: 600;
  letter-spacing: .22em;
  white-space: nowrap;
}
.spray-divider::after {
  content: "";
  position: absolute;
  z-index: 1;
  inset: 0;
  background: linear-gradient(90deg, rgba(8,14,18,.78) 0%, rgba(8,14,18,.38) 44%, rgba(8,14,18,.05) 76%);
  pointer-events: none;
}
.spray-divider-grid {
  position: absolute;
  z-index: 0;
  inset: 0;
  opacity: .42;
  background-image:
    linear-gradient(rgba(174,211,218,.055) 1px, transparent 1px),
    linear-gradient(90deg, rgba(174,211,218,.055) 1px, transparent 1px);
  background-size: 42px 42px;
  mask-image: linear-gradient(to bottom, black, transparent 92%);
}
.spray-divider-ramp {
  position: absolute;
  z-index: 1;
  left: max(1.5rem, calc((100vw - 1450px) / 2));
  right: max(1.5rem, calc((100vw - 1450px) / 2));
  top: 1.25rem;
  height: 205px;
}
.spray-divider-pipe {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 20px;
  background:
    linear-gradient(90deg, transparent 0 8%, rgba(255,255,255,.12) 8.1% 8.35%, transparent 8.45% 91.5%, rgba(255,255,255,.12) 91.6% 91.85%, transparent 92%),
    linear-gradient(180deg, #78858b 0%, #d9e0e2 18%, #66747b 42%, #2e393e 70%, #8e999e 100%);
  border: 1px solid rgba(231,244,246,.42);
  border-radius: 3px;
  box-shadow: 0 5px 14px rgba(0,0,0,.5), inset 0 1px rgba(255,255,255,.65);
}
.spray-divider-pipe::before,
.spray-divider-pipe::after {
  content: "";
  position: absolute;
  top: -5px;
  width: 32px;
  height: 31px;
  border: 2px solid #9ca8ac;
  background: linear-gradient(90deg, #364147, #aab4b7 46%, #4a555a);
  box-shadow: 0 4px 9px rgba(0,0,0,.42);
}
.spray-divider-pipe::before { left: 7%; }
.spray-divider-pipe::after { right: 7%; }
.spray-divider-nozzles {
  position: absolute;
  top: 15px;
  left: 8%;
  right: 8%;
  display: flex;
  justify-content: space-between;
}
.spray-divider-nozzles i {
  position: relative;
  width: 13px;
  height: 26px;
  display: block;
  background: linear-gradient(90deg, #29343a, #b5c0c3 46%, #4d5a60);
  border: 1px solid #9ca9ad;
  border-radius: 0 0 6px 6px;
  box-shadow: 0 4px 8px rgba(0,0,0,.45);
}
.spray-divider-nozzles i::before {
  content: "";
  position: absolute;
  left: 50%;
  bottom: -7px;
  width: 24px;
  height: 10px;
  transform: translateX(-50%);
  background: linear-gradient(90deg, #303b40, #aab5b9 50%, #354146);
  border-radius: 2px 2px 6px 6px;
  box-shadow: 0 2px 5px rgba(0,0,0,.35);
}
.spray-divider-nozzles i::after {
  content: "";
  position: absolute;
  top: 32px;
  left: 50%;
  width: clamp(64px, 7.5vw, 110px);
  height: 145px;
  transform: translateX(-50%);
  clip-path: polygon(46% 0, 54% 0, 100% 100%, 0 100%);
  opacity: .78;
  background:
    radial-gradient(circle, rgba(241,252,254,.96) 0 1px, transparent 1.7px) 0 0 / 13px 17px,
    repeating-linear-gradient(91deg, transparent 0 6px, rgba(211,239,244,.52) 7px 8px, transparent 9px 13px),
    linear-gradient(180deg, rgba(227,247,250,.78), rgba(159,204,212,.2) 72%, transparent);
  filter: blur(.25px) drop-shadow(0 0 8px rgba(204,239,245,.42));
  animation: divider-spray .82s linear infinite;
}
.spray-divider-nozzles i:nth-child(2)::after { animation-delay: -.65s; }
.spray-divider-nozzles i:nth-child(3)::after { animation-delay: -1.25s; }
.spray-divider-nozzles i:nth-child(4)::after { animation-delay: -.35s; }
.spray-divider-nozzles i:nth-child(5)::after { animation-delay: -1.7s; }
.spray-divider-nozzles i:nth-child(6)::after { animation-delay: -.95s; }
.spray-divider-nozzles i:nth-child(7)::after { animation-delay: -1.45s; }
.spray-divider-inner {
  position: relative;
  z-index: 4;
  width: min(var(--max), calc(100% - 7rem));
  margin: 0 auto;
  padding: 4.2rem 0 1.45rem;
  display: grid;
  grid-template-columns: minmax(0, 1.05fr) minmax(470px, .95fr);
  align-items: end;
  gap: 5rem;
}
.spray-divider-copy { max-width: 670px; }
.spray-divider-kicker {
  display: flex;
  align-items: center;
  gap: .75rem;
  margin-bottom: .85rem;
  color: rgba(255,255,255,.76);
  font-size: .66rem;
  font-weight: 700;
  letter-spacing: .16em;
  text-transform: uppercase;
}
.spray-divider-kicker span {
  display: grid;
  width: 26px;
  height: 26px;
  place-items: center;
  color: white;
  background: var(--ruby);
  border-radius: 50%;
  letter-spacing: 0;
}
.spray-divider-copy h2 {
  margin: 0 0 .8rem;
  font-size: clamp(2.15rem, 3.25vw, 3.5rem);
  text-shadow: 0 7px 22px rgba(0,0,0,.35);
}
.spray-divider-copy h2 em { color: var(--ruby-bright); font-style: normal; }
.spray-divider-copy > p:last-child { max-width: 560px; margin: 0; color: rgba(255,255,255,.67); font-size: .78rem; }
.spray-divider-settings {
  display: grid;
  grid-template-columns: repeat(3, minmax(0,1fr));
  background: rgba(11,19,24,.66);
  border: 1px solid rgba(212,236,240,.25);
  box-shadow: 0 18px 45px rgba(0,0,0,.3);
  backdrop-filter: blur(12px);
}
.spray-divider-settings div { min-width: 0; padding: .78rem .9rem .85rem; border-right: 1px solid rgba(212,236,240,.16); }
.spray-divider-settings div:last-child { border-right: 0; }
.spray-divider-settings small { display: block; margin-bottom: .7rem; color: var(--ruby-bright); font-family: "Space Grotesk"; font-size: .58rem; }
.spray-divider-settings span { display: block; color: rgba(255,255,255,.48); font-size: .55rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }
.spray-divider-settings strong { display: block; margin-top: .16rem; color: white; font-family: "Space Grotesk"; font-size: .83rem; font-weight: 500; }
.spray-divider-impact {
  position: absolute;
  z-index: 2;
  left: 0;
  right: 0;
  bottom: 18px;
  height: 2px;
  background: linear-gradient(90deg, transparent, rgba(202,235,241,.44) 12%, rgba(255,255,255,.75) 50%, rgba(202,235,241,.44) 88%, transparent);
  box-shadow: 0 0 18px rgba(193,231,238,.45);
}
.spray-divider-impact::before {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  height: 78px;
  opacity: .42;
  background: radial-gradient(ellipse at 50% 100%, rgba(190,231,239,.38), transparent 67%);
  animation: divider-mist 3.4s ease-in-out infinite alternate;
}
.spray-divider-impact span {
  position: absolute;
  left: 50%;
  top: -5px;
  width: min(76vw, 1080px);
  height: 11px;
  transform: translateX(-50%);
  opacity: .5;
  background: repeating-radial-gradient(circle, rgba(229,247,250,.9) 0 1px, transparent 1.5px 7px);
  background-size: 14px 10px;
}
@keyframes divider-spray {
  0% { opacity: .58; transform: translateX(-50%) scaleX(.92); background-position: 0 -20px, 0 -18px, 0 0; }
  50% { opacity: .9; transform: translateX(-50%) scaleX(1.04); }
  100% { opacity: .68; transform: translateX(-50%) scaleX(.96); background-position: 7px 22px, 4px 24px, 0 0; }
}
@keyframes divider-mist {
  from { opacity: .24; transform: translateX(-2%) scaleY(.82); }
  to { opacity: .5; transform: translateX(2%) scaleY(1.08); }
}

/* Le chapitre solutions bascule dans une ambiance acier froid. */
.solutions {
  position: relative;
  padding-top: 7rem;
  padding-bottom: 8rem;
  background: transparent;
  box-shadow: 0 0 0 100vmax #eef3f4;
  clip-path: inset(0 -100vmax);
}
.solutions::before {
  content: "";
  position: absolute;
  z-index: -1;
  inset: 0 -100vmax;
  background:
    linear-gradient(90deg, transparent 0 119px, rgba(24,34,40,.035) 120px),
    radial-gradient(circle at 84% 8%, rgba(179,18,92,.09), transparent 26%),
    linear-gradient(180deg, #e7eef0 0%, #f5f8f9 34%, #eef3f4 100%);
  background-size: 120px 100%, 100% 100%, 100% 100%;
}

@media (max-width: 1060px) {
  .spray-divider { min-height: 430px; }
  .spray-divider-inner { width: calc(100% - 4rem); grid-template-columns: 1fr; gap: 1.8rem; padding-bottom: 3rem; }
  .spray-divider-copy { max-width: 720px; }
  .spray-divider-settings { max-width: 720px; }
}
@media (max-width: 700px) {
  .spray-divider { min-height: 500px; }
  .spray-divider::before { left: 1.5rem; right: auto; max-width: calc(100% - 3rem); overflow: hidden; }
  .spray-divider-ramp { left: 1rem; right: 1rem; }
  .spray-divider-nozzles { left: 7%; right: 7%; }
  .spray-divider-nozzles i:first-child,
  .spray-divider-nozzles i:last-child { display: none; }
  .spray-divider-inner { width: calc(100% - 3rem); padding-top: 8.6rem; }
  .spray-divider-settings { grid-template-columns: 1fr; }
  .spray-divider-settings div { display: grid; grid-template-columns: 28px 1fr auto; align-items: center; gap: .5rem; padding: .72rem .85rem; border-right: 0; border-bottom: 1px solid rgba(212,236,240,.16); }
  .spray-divider-settings div:last-child { border-bottom: 0; }
  .spray-divider-settings small { margin: 0; }
  .spray-divider-settings strong { margin: 0; text-align: right; }
  .solutions { padding-top: 5rem; }
}
@media (prefers-reduced-motion: reduce) {
  .spray-divider-nozzles i::after,
  .spray-divider-impact::before { animation: none; }
}

/* BIO 80 — fiche produit et article conseil */
.bio-product-page,
.bio-blog-page { background: #f4f7f7; }
.bio-product-page main,
.bio-blog-page main { overflow: hidden; }
.bio-product-page .site-header,
.bio-blog-page .site-header { position: absolute; }
.bio-overline {
  display: flex;
  align-items: center;
  gap: .72rem;
  margin: 0 0 1.15rem;
  color: var(--brand-blue-dark);
  font-size: .7rem;
  font-weight: 800;
  letter-spacing: .15em;
  text-transform: uppercase;
}
.bio-overline span { width: 26px; height: 2px; background: linear-gradient(90deg, var(--brand-green), var(--brand-blue)); }
.bio-back { display: inline-flex; align-items: center; gap: .5rem; margin-bottom: 2rem; color: rgba(255,255,255,.7); font-size: .72rem; font-weight: 700; }
.bio-back:hover { color: white; }
.bio-back span { font-size: 1rem; }
.button-ghost-light { color: white; border-color: rgba(255,255,255,.44); background: rgba(255,255,255,.06); }
.button-ghost-light:hover { border-color: white; background: rgba(255,255,255,.12); }

.bio-hero {
  min-height: 760px;
  padding: 142px max(3rem, calc((100vw - var(--max)) / 2)) 64px;
  display: grid;
  grid-template-columns: minmax(0, .86fr) minmax(520px, 1.14fr);
  gap: clamp(2.2rem, 5vw, 5.5rem);
  align-items: center;
  color: white;
  background:
    radial-gradient(circle at 28% 34%, rgba(0,152,199,.17), transparent 32%),
    radial-gradient(circle at 88% 16%, rgba(115,200,47,.13), transparent 24%),
    linear-gradient(115deg, #101b21 0%, #1b292f 62%, #25333a 100%);
  position: relative;
}
.bio-hero::before { content: ""; position: absolute; inset: 0; opacity: .13; background-image: linear-gradient(rgba(255,255,255,.16) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,.16) 1px, transparent 1px); background-size: 74px 74px; mask-image: linear-gradient(90deg, black, transparent 64%); }
.bio-hero-copy,
.bio-hero-media { position: relative; z-index: 1; }
.bio-hero-copy .bio-overline { color: var(--brand-green-bright); }
.bio-hero h1 { margin: 0 0 1.45rem; font-size: clamp(4.25rem, 7vw, 7.1rem); font-weight: 500; letter-spacing: -.065em; line-height: .83; }
.bio-hero h1 em { color: var(--brand-green-bright); font-style: normal; }
.bio-hero-lead { max-width: 585px; margin-bottom: 1.8rem; color: rgba(255,255,255,.72); font-size: 1.03rem; }
.bio-hero-actions { display: flex; flex-wrap: wrap; gap: .75rem; }
.bio-hero-note { display: flex; align-items: center; gap: .55rem; margin: 1.35rem 0 0; color: rgba(255,255,255,.52); font-size: .7rem; }
.bio-hero-note span { color: var(--brand-green-bright); }
.bio-hero-media { align-self: stretch; min-height: 540px; border-radius: 26px 4px 26px 4px; overflow: hidden; border: 1px solid rgba(255,255,255,.32); box-shadow: 0 32px 70px rgba(0,0,0,.25); background: #fff; }
.bio-hero-media > img { width: 100%; height: 100%; object-fit: contain; object-position: center; filter: none; }
.bio-hero-media::after { content: ""; position: absolute; inset: 0; background: none; pointer-events: none; }
.bio-hero-card { position: absolute; z-index: 2; left: 1.2rem; bottom: 1.2rem; min-width: 184px; padding: 1rem 1.1rem 1.15rem; background: rgba(16,27,33,.82); border: 1px solid rgba(255,255,255,.2); backdrop-filter: blur(12px); }
.bio-hero-card small { display: block; margin-bottom: .45rem; color: var(--brand-green-bright); font-size: .58rem; font-weight: 800; letter-spacing: .18em; }
.bio-hero-card strong { font-family: "Space Grotesk"; font-size: 1.1rem; font-weight: 500; line-height: 1.2; }

.bio-spec-strip { display: grid; grid-template-columns: repeat(4, 1fr); margin: 0; color: white; background: #101b21; border-top: 1px solid rgba(255,255,255,.12); }
.bio-spec-strip article { display: grid; grid-template-columns: 32px 1fr; column-gap: .7rem; padding: 1.35rem clamp(1.25rem, 3.2vw, 3.4rem); border-right: 1px solid rgba(255,255,255,.12); }
.bio-spec-strip article:last-child { border-right: 0; }
.bio-spec-strip span { grid-row: 1 / 3; color: var(--brand-green-bright); font: 700 .62rem "Space Grotesk"; }
.bio-spec-strip small { color: rgba(255,255,255,.46); font-size: .62rem; text-transform: uppercase; letter-spacing: .1em; }
.bio-spec-strip strong { color: white; font-family: "Space Grotesk"; font-size: .95rem; font-weight: 500; }

.bio-intro-section,
.bio-gallery-section,
.bio-tech-section { padding: clamp(5rem, 8vw, 8rem) max(3rem, calc((100vw - var(--max)) / 2)); }
.bio-section-heading { display: grid; grid-template-columns: minmax(0, 1.4fr) minmax(300px, .6fr); gap: clamp(2rem, 7vw, 7rem); align-items: end; margin-bottom: 3.2rem; }
.bio-section-heading h2,
.bio-feature-copy h2,
.bio-consumable-copy h2,
.bio-tech-intro h2 { margin: 0; font-size: clamp(2.7rem, 5.3vw, 5.15rem); }
.bio-section-heading h2 em { color: var(--brand-blue-dark); font-style: normal; }
.bio-section-heading > p { margin: 0; color: var(--muted); }
.bio-process-grid { display: grid; grid-template-columns: repeat(3, 1fr); border: 1px solid #cad6d9; background: white; }
.bio-process-grid article { min-height: 246px; padding: 2rem 2.2rem; border-right: 1px solid #cad6d9; position: relative; }
.bio-process-grid article:last-child { border-right: 0; }
.bio-process-grid article > span { display: inline-grid; width: 34px; height: 34px; place-items: center; color: white; background: var(--navy); border-radius: 50%; font-size: .62rem; }
.bio-process-grid h3 { margin: 2.2rem 0 .65rem; font-size: 1.55rem; }
.bio-process-grid p { margin: 0; color: var(--muted); font-size: .86rem; }

.bio-feature-section { display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(440px, .95fr); min-height: 700px; color: white; background: #18262c; }
.bio-feature-photo { min-height: 700px; overflow: hidden; background: #fff; }
.bio-feature-photo img { width: 100%; height: 100%; object-fit: cover; object-position: center 52%; }
.bio-feature-copy { padding: clamp(4rem, 7vw, 7rem) max(3rem, calc((100vw - var(--max)) / 2)); padding-left: clamp(3rem, 6vw, 6rem); }
.bio-feature-copy .bio-overline { color: var(--brand-green-bright); }
.bio-feature-copy > p:not(.bio-overline) { max-width: 540px; color: rgba(255,255,255,.64); }
.bio-feature-copy ul { margin: 2.2rem 0 0; padding: 0; list-style: none; border-top: 1px solid rgba(255,255,255,.14); }
.bio-feature-copy li { display: grid; grid-template-columns: 200px 1fr; gap: 1rem; padding: 1rem 0; border-bottom: 1px solid rgba(255,255,255,.14); }
.bio-feature-copy li strong { color: white; font-size: .82rem; }
.bio-feature-copy li span { color: rgba(255,255,255,.53); font-size: .76rem; }

.bio-gallery-section { background: #e8eff0; }
.bio-section-heading.compact { margin-bottom: 2rem; }
.bio-section-heading.compact > p { justify-self: end; color: var(--brand-blue-dark); font-size: .75rem; font-weight: 700; }
.bio-gallery { display: grid; grid-template-columns: minmax(0, 1fr) 128px; gap: .8rem; height: min(68vw, 690px); }
.bio-gallery-main { overflow: hidden; background: #fff; }
.bio-gallery-main img { width: 100%; height: 100%; object-fit: contain; object-position: center; }
.bio-gallery-thumbs { display: grid; grid-template-rows: repeat(6, 1fr); gap: .5rem; min-height: 0; }
.bio-gallery-thumbs button { min-height: 0; padding: 0; overflow: hidden; cursor: pointer; border: 2px solid transparent; background: #fff; }
.bio-gallery-thumbs button:hover,
.bio-gallery-thumbs button.active { border-color: var(--brand-blue); }
.bio-gallery-thumbs img { width: 100%; height: 100%; object-fit: cover; }

.bio-consumables { display: grid; grid-template-columns: minmax(400px, .82fr) minmax(0, 1.18fr); align-items: stretch; padding-left: max(3rem, calc((100vw - var(--max)) / 2)); background: white; }
.bio-consumable-copy { padding: clamp(5rem, 8vw, 8rem) clamp(3rem, 6vw, 6rem) clamp(5rem, 8vw, 8rem) 0; }
.bio-consumable-copy > p:not(.bio-overline) { max-width: 580px; color: var(--muted); }
.bio-consumable-notes { display: flex; flex-wrap: wrap; gap: .55rem; margin-top: 1.8rem; }
.bio-consumable-notes span { padding: .55rem .72rem; color: #36484f; background: #edf4f4; border: 1px solid #cfdddf; font-size: .66rem; font-weight: 700; }
.bio-consumable-images { display: grid; grid-template-columns: 1fr 1fr; min-height: 560px; background: #f3f8f8; }
.bio-consumable-images figure { position: relative; display: grid; place-items: center; margin: 0; overflow: hidden; background: radial-gradient(circle at 50% 42%, #fff 0 36%, #eef5f5 78%, #e4eeee 100%); border-left: 1px solid rgba(0,125,163,.12); }
.bio-consumable-images figure::before { content: ""; position: absolute; width: min(78%, 360px); aspect-ratio: 1; border: 1px solid rgba(179,18,92,.12); border-radius: 50%; }
.bio-consumable-images img { position: relative; z-index: 1; width: 100%; height: 100%; padding: clamp(2.2rem, 4vw, 4.5rem); object-fit: contain; box-sizing: border-box; filter: drop-shadow(0 24px 24px rgba(16,38,45,.14)); }
.bio-consumable-images figcaption { position: absolute; z-index: 2; left: 1rem; bottom: 1rem; padding: .55rem .7rem; color: white; background: rgba(16,27,33,.86); font-size: .6rem; font-weight: 800; letter-spacing: .12em; }

.bio-tech-section { display: grid; grid-template-columns: minmax(300px, .72fr) minmax(480px, 1.28fr); gap: clamp(3rem, 7vw, 7rem); color: white; background: #142127; }
.bio-tech-intro .bio-overline { color: var(--brand-green-bright); }
.bio-tech-intro p:last-child { max-width: 490px; color: rgba(255,255,255,.52); }
.bio-tech-list { margin: 0; border-top: 1px solid rgba(255,255,255,.18); }
.bio-tech-list div { display: grid; grid-template-columns: 1fr auto; gap: 1rem; padding: 1.05rem 0; border-bottom: 1px solid rgba(255,255,255,.18); }
.bio-tech-list dt { color: rgba(255,255,255,.52); font-size: .75rem; }
.bio-tech-list dd { margin: 0; color: white; font-family: "Space Grotesk"; font-size: .9rem; }

.bio-aid-teaser { display: grid; grid-template-columns: .74fr 1.26fr; min-height: 480px; background: linear-gradient(115deg, #d9f0cb 0%, #f3f7f2 58%, #e6f1f3 100%); }
.bio-aid-number { display: grid; place-content: center; padding: 3rem; text-align: center; color: white; background: linear-gradient(145deg, var(--brand-green-dark), var(--brand-blue)); }
.bio-aid-number span,
.bio-aid-number small { font-weight: 800; letter-spacing: .14em; text-transform: uppercase; }
.bio-aid-number span { font-size: .82rem; }
.bio-aid-number strong { font: 500 clamp(5.2rem, 11vw, 10rem) "Space Grotesk"; line-height: .86; letter-spacing: -.08em; }
.bio-aid-number small { margin-top: .8rem; font-size: .65rem; }
.bio-aid-copy { align-self: center; max-width: 760px; padding: clamp(4rem, 7vw, 7rem); }
.bio-aid-copy h2 { margin: 0 0 1rem; font-size: clamp(2.5rem, 4.5vw, 4.2rem); }
.bio-aid-copy > p:not(.bio-overline) { color: #526168; }
.bio-aid-copy > small { display: block; margin-top: 1rem; color: #68777d; font-size: .62rem; }

.bio-final-cta { display: grid; grid-template-columns: minmax(0, 1.3fr) minmax(320px, .7fr); gap: 4rem; align-items: center; padding: clamp(4rem, 7vw, 7rem) max(3rem, calc((100vw - var(--max)) / 2)); color: white; background: radial-gradient(circle at 88% 25%, rgba(0,152,199,.25), transparent 30%), linear-gradient(120deg, #17252c, #24333a); }
.bio-final-cta .bio-overline { color: var(--brand-green-bright); }
.bio-final-cta h2 { margin: 0 0 1rem; font-size: clamp(2.8rem, 5.5vw, 5.3rem); }
.bio-final-cta p:last-child { max-width: 670px; margin-bottom: 0; color: rgba(255,255,255,.62); }
.bio-final-actions { display: grid; gap: .75rem; }

.bio-blog { padding-top: 78px; }
.bio-blog-hero { display: grid; grid-template-columns: minmax(0, 1.06fr) minmax(480px, .94fr); min-height: 650px; color: white; background: #17242a; }
.bio-blog-hero-copy { padding: clamp(4.5rem, 7vw, 7rem) clamp(3rem, 6vw, 6rem) clamp(4.5rem, 7vw, 7rem) max(3rem, calc((100vw - var(--max)) / 2)); }
.bio-blog-hero-copy .bio-overline { color: var(--brand-green-bright); }
.bio-blog-hero h1 { margin: 0 0 1.5rem; font-size: clamp(3.1rem, 5.2vw, 5.5rem); }
.bio-blog-hero h1 em { color: var(--brand-green-bright); font-style: normal; }
.bio-blog-hero-copy > p:last-child { max-width: 720px; color: rgba(255,255,255,.68); }
.bio-blog-hero-media { min-height: 650px; position: relative; overflow: hidden; }
.bio-blog-hero-media img { width: 100%; height: 100%; object-fit: cover; }
.bio-blog-hero-media::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, transparent 54%, rgba(9,17,21,.72)); }
.bio-blog-hero-media > div { position: absolute; z-index: 1; left: 1.5rem; right: 1.5rem; bottom: 1.5rem; display: grid; grid-template-columns: 1fr auto; align-items: end; padding: 1.1rem 1.25rem; color: white; background: rgba(18,31,37,.84); border: 1px solid rgba(255,255,255,.2); backdrop-filter: blur(12px); }
.bio-blog-hero-media small { grid-column: 1; color: var(--brand-green-bright); font-size: .58rem; letter-spacing: .14em; }
.bio-blog-hero-media strong { grid-row: 1 / 3; grid-column: 2; font: 500 3.8rem "Space Grotesk"; line-height: .85; }
.bio-blog-hero-media span { font-size: .72rem; color: rgba(255,255,255,.64); }
.bio-blog-layout { width: min(var(--max), calc(100% - 6rem)); margin: 0 auto; padding: clamp(4rem, 7vw, 7rem) 0; display: grid; grid-template-columns: minmax(0, 1fr) 330px; gap: clamp(3rem, 7vw, 7rem); align-items: start; }
.bio-blog-content { max-width: 790px; }
.bio-blog-content section { margin-bottom: 4.5rem; }
.bio-blog-content section:last-child { margin-bottom: 0; }
.bio-blog-content h2 { margin-bottom: 1rem; font-size: clamp(2rem, 3.2vw, 3.15rem); }
.bio-blog-content p { color: #56656b; }
.bio-blog-content strong { color: var(--navy); }
.bio-blog-lead { padding-left: 1.25rem; border-left: 3px solid var(--brand-green); color: #31444c !important; font-size: 1.1rem; }
.bio-blog-highlight { margin-top: 1.8rem; padding: 1.35rem 1.5rem; background: #e5f3dc; border-left: 4px solid var(--brand-green); }
.bio-blog-highlight span { display: block; margin-bottom: .35rem; color: var(--brand-green-dark); font-size: .62rem; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; }
.bio-blog-highlight strong { font-family: "Space Grotesk"; font-size: 1.05rem; font-weight: 500; }
.bio-blog-numbers { display: grid; grid-template-columns: repeat(3, 1fr); margin-top: 2rem; border: 1px solid #cbd7da; background: white; }
.bio-blog-numbers article { padding: 1.35rem; border-right: 1px solid #cbd7da; }
.bio-blog-numbers article:last-child { border-right: 0; }
.bio-blog-numbers small,
.bio-blog-numbers span { display: block; color: #66767c; font-size: .62rem; }
.bio-blog-numbers strong { display: block; margin: .35rem 0; color: var(--brand-blue-dark); font: 500 2rem "Space Grotesk"; }
.bio-blog-checks { display: grid; gap: .1rem; margin: 1.5rem 0 0; padding: 0; list-style: none; }
.bio-blog-checks li { position: relative; padding: .85rem .8rem .85rem 2.65rem; border-bottom: 1px solid #d2dcde; color: #4e6067; }
.bio-blog-checks li::before { content: "✓"; position: absolute; left: .75rem; color: var(--brand-green-dark); font-weight: 800; }
.bio-blog-steps { margin: 1.5rem 0 0; padding: 0; list-style: none; border-top: 1px solid #cbd7da; }
.bio-blog-steps li { display: grid; grid-template-columns: 46px 1fr; gap: 1rem; padding: 1.2rem 0; border-bottom: 1px solid #cbd7da; }
.bio-blog-steps li > span { color: var(--brand-blue-dark); font: 700 .72rem "Space Grotesk"; }
.bio-blog-steps strong { display: block; margin-bottom: .2rem; font-family: "Space Grotesk"; }
.bio-blog-steps p { margin: 0; font-size: .84rem; }
.bio-blog-support { padding: 2rem; background: #dfecee; border: 1px solid #c2d2d5; }
.bio-blog-support .button { margin-top: .5rem; }
.bio-blog-aside { position: sticky; top: 1.5rem; display: grid; gap: 1rem; }
.bio-blog-aside-card { padding: 1.5rem; background: white; border: 1px solid #cbd7da; }
.bio-blog-aside-card > span { color: var(--brand-blue-dark); font-size: .58rem; font-weight: 800; letter-spacing: .13em; }
.bio-blog-aside-card > strong { display: block; margin: .65rem 0; font-family: "Space Grotesk"; font-size: 1.1rem; line-height: 1.2; }
.bio-blog-aside-card p { color: #68777d; font-size: .75rem; }
.bio-blog-aside-card a { display: flex; justify-content: space-between; gap: 1rem; padding-top: .85rem; border-top: 1px solid #d3dcde; color: var(--brand-blue-dark); font-size: .72rem; font-weight: 800; }
.bio-blog-aside-card.official { color: white; background: #1b2b32; border-color: #1b2b32; }
.bio-blog-aside-card.official > span { color: var(--brand-green-bright); }
.bio-blog-aside-card.official p { color: rgba(255,255,255,.58); }
.bio-blog-aside-card.official a { color: white; border-color: rgba(255,255,255,.17); }
.bio-blog-disclaimer { margin: .4rem 0 0; color: #738087; font-size: .63rem; }
.machine-card-link { text-decoration: none; }

/* SEO landing pages: crawlable entrances for the historic Google queries. */
.seo-landing-page { background: #edf3f4; color: var(--ink); }
.seo-landing-page .site-header { position: relative; background: rgba(255,255,255,.97); border-bottom: 1px solid var(--line); }
.seo-hero { height: 620px; min-height: 620px; display: grid; grid-template-columns: minmax(0, .88fr) minmax(500px, 1.12fr); background: #0d2833; color: white; }
.seo-hero-copy { align-self: center; padding: 5.5rem clamp(3.5rem, 5.5vw, 7rem) 4.6rem; }
.seo-hero h1 { max-width: 700px; margin: 1.15rem 0 1.35rem; font: 600 clamp(3.2rem, 3.8vw, 4.5rem)/.97 "Space Grotesk", sans-serif; letter-spacing: -.05em; }
.seo-hero-copy > p:last-of-type { max-width: 660px; color: rgba(255,255,255,.72); font-size: 1.05rem; line-height: 1.72; }
.seo-hero-actions { display: flex; flex-wrap: wrap; gap: 1rem; margin-top: 2.2rem; }
.seo-hero figure { height: 620px; min-height: 620px; margin: 0; overflow: hidden; background: #f7f9f9; }
.seo-hero figure img { display: block; width: 100%; height: 100%; object-fit: contain; padding: 2.4rem 3.4rem; }
.seo-intro { display: grid; grid-template-columns: 1fr 1fr; gap: 6rem; padding: 7rem max(3.5rem, calc((100vw - var(--max)) / 2)); background: white; }
.seo-intro h2, .seo-related h2, .seo-contact h2 { max-width: 680px; margin: .8rem 0 0; font: 600 clamp(2.5rem, 4vw, 4.5rem)/1 "Space Grotesk", sans-serif; letter-spacing: -.045em; }
.seo-intro > p { align-self: end; max-width: 680px; margin: 0; color: #5e7078; font-size: 1.04rem; line-height: 1.8; }
.seo-benefits { display: grid; grid-template-columns: repeat(3, 1fr); margin: 0 max(3.5rem, calc((100vw - var(--max)) / 2)) 7rem; border: 1px solid #c8d5d9; background: #f8fbfb; }
.seo-benefits article { min-height: 310px; padding: 2.5rem; border-right: 1px solid #c8d5d9; }
.seo-benefits article:last-child { border-right: 0; }
.seo-benefits span { color: var(--magenta); font: 600 .76rem "Space Grotesk", sans-serif; letter-spacing: .12em; }
.seo-benefits h2 { margin: 4.5rem 0 1rem; font: 600 1.6rem/1.08 "Space Grotesk", sans-serif; }
.seo-benefits p { color: #64747b; line-height: 1.7; }
.seo-related { display: grid; grid-template-columns: 1fr 1fr; gap: 6rem; padding: 7rem max(3.5rem, calc((100vw - var(--max)) / 2)); background: #dfe9eb; }
.seo-related nav { border-top: 1px solid #b8c8cc; }
.seo-related nav a { display: flex; justify-content: space-between; gap: 2rem; padding: 1.4rem .2rem; border-bottom: 1px solid #b8c8cc; font: 600 1rem "Space Grotesk", sans-serif; }
.seo-related nav a:hover { color: var(--magenta); }
.seo-contact { padding: 7rem max(3.5rem, calc((100vw - var(--max)) / 2)); color: white; background: linear-gradient(120deg, #102833, #173945); }
.seo-contact p:not(.kicker) { max-width: 670px; margin: 1.5rem 0 2rem; color: rgba(255,255,255,.7); line-height: 1.75; }

/* Machine de lavage : page conseil et comparaison. */
.seo-machine-page .seo-hero { min-height: 620px; grid-template-columns: minmax(0, .88fr) minmax(520px, 1.12fr); }
.seo-machine-page .seo-hero-copy { padding: 5.5rem clamp(3.5rem, 5.5vw, 7rem) 4.6rem; }
.seo-machine-page .seo-hero h1 { max-width: 700px; margin: 1.15rem 0 1.35rem; font-size: clamp(3.2rem, 3.8vw, 4.5rem); line-height: .97; }
.seo-machine-page .seo-hero figure { min-height: 620px; }
.seo-machine-page .seo-hero figure img { padding: 2.4rem 3.4rem; }
.seo-hero-stats { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); max-width: 590px; margin-top: 2.5rem; border-top: 1px solid rgba(255,255,255,.19); border-bottom: 1px solid rgba(255,255,255,.19); }
.seo-hero-stats div { padding: 1rem 1.25rem 1rem 0; border-right: 1px solid rgba(255,255,255,.19); }
.seo-hero-stats div:not(:first-child) { padding-left: 1.25rem; }
.seo-hero-stats div:last-child { border-right: 0; }
.seo-hero-stats strong, .seo-hero-stats span { display: block; }
.seo-hero-stats strong { color: white; font: 600 1.45rem "Space Grotesk", sans-serif; }
.seo-hero-stats span { margin-top: .18rem; color: rgba(255,255,255,.5); font-size: .58rem; font-weight: 700; letter-spacing: .13em; text-transform: uppercase; }

.seo-section-heading { display: grid; grid-template-columns: minmax(0, .95fr) minmax(360px, .75fr); gap: clamp(3rem, 8vw, 8rem); align-items: end; }
.seo-section-heading h2,
.seo-comparison h2,
.seo-faq h2 { max-width: 760px; margin: .8rem 0 0; font: 600 clamp(2.6rem, 4.5vw, 4.8rem)/.98 "Space Grotesk", sans-serif; letter-spacing: -.05em; }
.seo-section-heading > p { max-width: 610px; margin: 0; color: #607178; line-height: 1.75; }
.seo-machine-solutions { padding: 7rem max(3.5rem, calc((100vw - var(--max)) / 2)); background: #e8f0f1; }
.seo-solution-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.35rem; margin-top: 3.4rem; }
.seo-solution-card { display: grid; grid-template-columns: minmax(230px, .92fr) minmax(0, 1.08fr); min-height: 330px; overflow: hidden; color: inherit; background: white; border: 1px solid #cbd8db; transition: transform .25s ease, border-color .25s ease, box-shadow .25s ease; }
.seo-solution-card:hover { color: inherit; border-color: var(--brand-blue); box-shadow: 0 22px 46px rgba(16,47,58,.12); transform: translateY(-4px); }
.seo-solution-card figure { display: grid; place-items: center; min-height: 330px; margin: 0; overflow: hidden; background: radial-gradient(circle at 50% 44%, white 0 30%, #edf4f4 74%, #e0eaec 100%); }
.seo-solution-card img { width: 100%; height: 100%; padding: 1.4rem; object-fit: contain; box-sizing: border-box; transition: transform .35s ease; }
.seo-solution-card:hover img { transform: scale(1.025); }
.seo-solution-card > div { display: flex; flex-direction: column; padding: 2rem; border-left: 1px solid #d5e0e2; }
.seo-solution-card span { color: var(--brand-blue-dark); font-size: .58rem; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; }
.seo-solution-card h3 { margin: .75rem 0 .7rem; font: 600 1.75rem/1.05 "Space Grotesk", sans-serif; }
.seo-solution-card p { margin: 0; color: #65747a; font-size: .78rem; line-height: 1.65; }
.seo-solution-card strong { display: flex; justify-content: space-between; gap: 1rem; margin-top: auto; padding-top: 1.5rem; color: #85134d; border-top: 1px solid #d4dee0; font-size: .7rem; }
.seo-solution-card strong i { font-style: normal; }

.seo-selection-process { padding: 7rem max(3.5rem, calc((100vw - var(--max)) / 2)); color: white; background: #122c36; }
.seo-selection-process .kicker { color: #62d43f; }
.seo-selection-process .seo-section-heading > p { color: rgba(255,255,255,.62); }
.seo-selection-grid { display: grid; grid-template-columns: repeat(4, 1fr); margin-top: 3.5rem; border: 1px solid rgba(255,255,255,.18); }
.seo-selection-grid article { min-height: 270px; padding: 2rem; border-right: 1px solid rgba(255,255,255,.18); }
.seo-selection-grid article:last-child { border-right: 0; }
.seo-selection-grid span { display: inline-grid; width: 35px; height: 35px; place-items: center; color: white; background: var(--magenta); border-radius: 50%; font: 600 .66rem "Space Grotesk", sans-serif; }
.seo-selection-grid h3 { margin: 4rem 0 .75rem; font: 600 1.45rem "Space Grotesk", sans-serif; }
.seo-selection-grid p { margin: 0; color: rgba(255,255,255,.6); font-size: .78rem; line-height: 1.65; }

.seo-comparison { padding: 7rem max(3.5rem, calc((100vw - var(--max)) / 2)); background: white; }
.seo-comparison-scroll { margin: 3rem 0 2rem; overflow-x: auto; border: 1px solid #c5d2d6; }
.seo-comparison table { width: 100%; min-width: 900px; border-collapse: collapse; table-layout: fixed; }
.seo-comparison th, .seo-comparison td { padding: 1.2rem 1.25rem; border-right: 1px solid #d3dee1; border-bottom: 1px solid #d3dee1; text-align: left; vertical-align: top; }
.seo-comparison tr:last-child th, .seo-comparison tr:last-child td { border-bottom: 0; }
.seo-comparison th:last-child, .seo-comparison td:last-child { border-right: 0; }
.seo-comparison thead th { color: white; background: #16313b; font: 600 .76rem/1.3 "Space Grotesk", sans-serif; }
.seo-comparison thead th:first-child { color: #7be555; }
.seo-comparison tbody th { color: #17323c; background: #edf3f4; font-size: .68rem; letter-spacing: .05em; text-transform: uppercase; }
.seo-comparison td { color: #596a71; font-size: .78rem; line-height: 1.55; }

.seo-faq { display: grid; grid-template-columns: minmax(320px, .72fr) minmax(0, 1.28fr); gap: clamp(3rem, 8vw, 8rem); padding: 7rem max(3.5rem, calc((100vw - var(--max)) / 2)); background: #e3ecee; }
.seo-faq-list { border-top: 1px solid #afc2c7; }
.seo-faq details { border-bottom: 1px solid #afc2c7; }
.seo-faq summary { display: flex; justify-content: space-between; gap: 2rem; padding: 1.5rem 0; cursor: pointer; list-style: none; font: 600 1.05rem/1.35 "Space Grotesk", sans-serif; }
.seo-faq summary::-webkit-details-marker { display: none; }
.seo-faq summary span { color: var(--magenta); font-size: 1.5rem; font-weight: 400; transition: transform .2s ease; }
.seo-faq details[open] summary span { transform: rotate(45deg); }
.seo-faq details p { max-width: 740px; margin: 0; padding: 0 3.5rem 1.6rem 0; color: #5d6d73; line-height: 1.75; }

@media (max-width: 960px) {
  .seo-hero { height: auto; grid-template-columns: 1fr; }
  .seo-hero-copy { padding: 6rem 2rem 4rem; }
  .seo-hero figure { height: 520px; min-height: 520px; }
  .seo-intro, .seo-related { grid-template-columns: 1fr; gap: 2.5rem; padding: 5rem 2rem; }
  .seo-benefits { margin: 0 2rem 5rem; }
  .seo-machine-page .seo-hero { grid-template-columns: 1fr; }
  .seo-machine-page .seo-hero figure { height: 500px; min-height: 500px; }
  .seo-section-heading, .seo-faq { grid-template-columns: 1fr; gap: 2rem; }
  .seo-machine-solutions, .seo-selection-process, .seo-comparison, .seo-faq { padding: 5rem 2rem; }
  .seo-solution-card { grid-template-columns: 1fr; }
  .seo-solution-card figure { min-height: 270px; }
  .seo-solution-card > div { min-height: 250px; border-top: 1px solid #d5e0e2; border-left: 0; }
  .seo-selection-grid { grid-template-columns: repeat(2, 1fr); }
  .seo-selection-grid article:nth-child(2) { border-right: 0; }
  .seo-selection-grid article:nth-child(-n+2) { border-bottom: 1px solid rgba(255,255,255,.18); }
}
@media (max-width: 700px) {
  .seo-hero h1 { font-size: clamp(2.55rem, 10.8vw, 3.4rem); }
  .seo-hero figure { height: 390px; min-height: 390px; }
  .seo-hero figure img { padding: 1.5rem; }
  .seo-benefits { grid-template-columns: 1fr; margin: 0 1.25rem 4rem; }
  .seo-benefits article { min-height: auto; border-right: 0; border-bottom: 1px solid #c8d5d9; }
  .seo-benefits article:last-child { border-bottom: 0; }
  .seo-benefits h2 { margin-top: 2.5rem; }
  .seo-intro, .seo-related, .seo-contact { padding: 4rem 1.25rem; }
  .seo-machine-page .seo-hero-copy { padding: 5rem 1.25rem 3.5rem; }
  .seo-machine-page .seo-hero h1 { font-size: clamp(2.7rem, 11vw, 3.5rem); }
  .seo-machine-page .seo-hero figure { height: 370px; min-height: 370px; }
  .seo-machine-page .seo-hero figure img { padding: 1.25rem; }
  .seo-hero-stats div { padding: .9rem .7rem .9rem 0; }
  .seo-hero-stats div:not(:first-child) { padding-left: .7rem; }
  .seo-hero-stats strong { font-size: 1.15rem; }
  .seo-machine-solutions, .seo-selection-process, .seo-comparison, .seo-faq { padding: 4rem 1.25rem; }
  .seo-solution-grid, .seo-selection-grid { grid-template-columns: 1fr; }
  .seo-solution-card { min-height: 0; }
  .seo-solution-card figure { min-height: 260px; }
  .seo-solution-card > div { min-height: 235px; padding: 1.5rem; }
  .seo-selection-grid article { min-height: auto; border-right: 0; border-bottom: 1px solid rgba(255,255,255,.18); }
  .seo-selection-grid article:last-child { border-bottom: 0; }
  .seo-selection-grid h3 { margin-top: 2.5rem; }
  .seo-faq details p { padding-right: 0; }
}

@media (max-width: 1100px) {
  .bio-hero { grid-template-columns: minmax(0, .9fr) minmax(430px, 1.1fr); padding-left: 3rem; padding-right: 3rem; }
  .bio-spec-strip { grid-template-columns: repeat(2, 1fr); }
  .bio-spec-strip article:nth-child(2) { border-right: 0; }
  .bio-spec-strip article:nth-child(-n+2) { border-bottom: 1px solid rgba(255,255,255,.12); }
  .bio-feature-section { grid-template-columns: 1fr 1fr; }
  .bio-feature-copy li { grid-template-columns: 1fr; gap: .25rem; }
  .bio-blog-hero { grid-template-columns: 1fr 440px; }
}
@media (max-width: 900px) {
  .bio-hero { grid-template-columns: 1fr; min-height: 0; padding: 128px 2rem 2.5rem; }
  .bio-hero-media { min-height: 560px; }
  .bio-section-heading,
  .bio-tech-section,
  .bio-final-cta { grid-template-columns: 1fr; }
  .bio-section-heading { gap: 1.2rem; }
  .bio-feature-section { grid-template-columns: 1fr; }
  .bio-feature-photo { min-height: 560px; }
  .bio-feature-copy { padding: 4.5rem 2.5rem; }
  .bio-consumables { grid-template-columns: 1fr; padding-left: 0; }
  .bio-consumable-copy { padding: 4.5rem 2.5rem; }
  .bio-consumable-images { min-height: 520px; }
  .bio-blog-hero { grid-template-columns: 1fr; }
  .bio-blog-hero-copy { padding: 4.5rem 2.5rem; }
  .bio-blog-hero-media { min-height: 560px; }
  .bio-blog-layout { grid-template-columns: 1fr; }
  .bio-blog-content { max-width: none; }
  .bio-blog-aside { position: static; grid-template-columns: 1fr 1fr; }
  .bio-blog-disclaimer { grid-column: 1 / -1; }
}
@media (max-width: 700px) {
  .bio-intro-section,
  .bio-gallery-section,
  .bio-tech-section { padding: 4rem 1.25rem; }
  .bio-hero { padding-left: 1.25rem; padding-right: 1.25rem; }
  .bio-hero h1 { font-size: clamp(3.2rem, 14vw, 4.5rem); }
  .bio-hero-media { min-height: 460px; }
  .bio-spec-strip { grid-template-columns: 1fr; }
  .bio-spec-strip article { border-right: 0; border-bottom: 1px solid rgba(255,255,255,.12); }
  .bio-process-grid { grid-template-columns: 1fr; }
  .bio-process-grid article { min-height: auto; border-right: 0; border-bottom: 1px solid #cad6d9; }
  .bio-process-grid article:last-child { border-bottom: 0; }
  .bio-feature-photo { min-height: 480px; }
  .bio-feature-copy,
  .bio-consumable-copy { padding: 4rem 1.25rem; }
  .bio-gallery { grid-template-columns: 1fr; height: auto; }
  .bio-gallery-main { height: 480px; }
  .bio-gallery-thumbs { grid-template: 80px / repeat(6, 1fr); }
  .bio-consumable-images { grid-template-columns: 1fr; }
  .bio-consumable-images figure { min-height: 430px; }
  .bio-aid-teaser { grid-template-columns: 1fr; }
  .bio-aid-number { min-height: 300px; }
  .bio-aid-copy { padding: 4rem 1.25rem; }
  .bio-final-cta { padding: 4rem 1.25rem; gap: 2rem; }
  .bio-blog-hero-copy { padding: 4rem 1.25rem; }
  .bio-blog-hero h1 { font-size: clamp(2.5rem, 10.7vw, 3.3rem); }
  .bio-blog-hero h1 em { display: block; }
  .bio-blog-hero-media { min-height: 460px; }
  .bio-blog-layout { width: calc(100% - 2.5rem); }
  .bio-blog-numbers { grid-template-columns: 1fr; }
  .bio-blog-numbers article { border-right: 0; border-bottom: 1px solid #cbd7da; }
  .bio-blog-numbers article:last-child { border-bottom: 0; }
  .bio-blog-aside { grid-template-columns: 1fr; }
  .bio-blog-disclaimer { grid-column: auto; }
}
@media (max-width: 480px) {
  .bio-hero h1 { font-size: 3.2rem; }
  .bio-hero-actions .button { width: 100%; }
  .bio-hero-media,
  .bio-feature-photo,
  .bio-blog-hero-media { min-height: 390px; }
  .bio-gallery-main { height: 390px; }
  .bio-gallery-thumbs { grid-template: repeat(2, 68px) / repeat(3, 1fr); }
  .bio-consumable-images figure { min-height: 380px; }
  .bio-blog-hero-media > div { left: .8rem; right: .8rem; bottom: .8rem; }
}
