/* =========================================================
   SECTIONS — Page-specific section styles
   ========================================================= */

/* ── PAGE HERO (subpages) ────────────────────────────────── */
.page-hero {
  position: relative;
  padding: clamp(100px,12vw,160px) 0 var(--section-y);
  background: var(--s-1);
  overflow: clip;
}

.page-hero--compact {
  padding-top: clamp(80px,10vw,120px);
  padding-bottom: clamp(48px,6vw,72px);
}

.page-hero__inner { max-width: 720px; }

.page-hero__heading {
  font-size: clamp(2.2rem,4.5vw,4.4rem);
  line-height: 0.97;
  letter-spacing: -0.04em;
  text-wrap: balance;
  max-width: 22ch;
}

.page-hero__copy {
  max-width: 56ch;
  margin-top: var(--sp-6);
  font-size: clamp(1rem,1.2vw,1.08rem);
  line-height: 1.74;
  color: var(--t-2);
}

/* ══════════════════════════════════════════════════════════
   HOMEPAGE HERO
   ══════════════════════════════════════════════════════════ */
.hero {
  position: relative;
  background: var(--s-1);
  overflow: clip;
}

/* Scroll scene — sticky container */
.hero__scene {
  position: relative;
  min-height: 180svh;
  background: var(--s-1);
  isolation: isolate;
}

@supports not (height: 100svh) { .hero__scene { min-height: 180vh; } }

/* Ambient background gradient */
.hero__scene::before {
  content: '';
  position: absolute;
  inset: 0;
  background:
    radial-gradient(circle at 12% 20%, rgba(27,60,83,0.10), transparent 26%),
    radial-gradient(circle at 82% 16%, rgba(210,193,182,0.12), transparent 30%);
  pointer-events: none;
  z-index: 0;
}

.hero__sticky {
  position: -webkit-sticky;
  position: sticky;
  top: 0;
  min-height: 100svh;
  overflow: visible;
  contain: none;
}

@supports not (height: 100svh) { .hero__sticky { min-height: 100vh; } }

.hero__stage {
  position: relative;
  display: grid;
  place-items: center;
  min-height: 100svh;
  padding: var(--pad-x);
  overflow: hidden;
  perspective: 1000px;
  perspective-origin: 50% 50%;
}

@supports not (height: 100svh) { .hero__stage { min-height: 100vh; } }

/* Logo mark */
.hero__logo-wrap {
  position: relative;
  display: grid;
  place-items: center;
  text-align: center;
  transform-origin: center;
  transform-style: preserve-3d;
  z-index: 1;
}

.hero__logo {
  width: clamp(160px,40vw,500px);
  color: var(--t-1);
  animation: heroEntrance 1.6s cubic-bezier(0.16,1,0.3,1) forwards;
}

@keyframes heroEntrance {
  0%   { opacity: 0; filter: blur(28px); transform: scale(0.65); }
  40%  { opacity: 1; filter: blur(3px); }
  70%  { transform: scale(1.05); filter: blur(0); }
  100% { opacity: 1; filter: blur(0); transform: scale(1); }
}

/* Logo shape — CSS mask for GPU-clean rendering */
.hero__logo-shape {
  position: relative;
  width: 100%;
  aspect-ratio: 1;
  background:
    linear-gradient(105deg,
      currentColor 0%,
      currentColor 38%,
      var(--brand-warm) 50%,
      currentColor 62%,
      currentColor 100%
    );
  background-size: 300% 100%;
  animation: logoShimmer 4s 2s ease-in-out forwards;
  -webkit-mask-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA2MDkgNjA5Ij48cGF0aCBmaWxsPSJ3aGl0ZSIgZD0iTSAwLjYzIDQ5Ny4yMCBDMC4zNSw0OTYuNzYgMC41NSw0OTQuNjEgMS4wNyw0OTIuNDQgQzEuNTksNDkwLjI4IDIuNjgsNDg1LjU4IDMuNDksNDgyLjAwIEM0LjMwLDQ3OC40MiA2LjM0LDQ2OS42NSA4LjA0LDQ2Mi41MCBDOS43Myw0NTUuMzUgMTEuMjgsNDQ4LjgzIDExLjQ3LDQ0OC4wMCBDMTEuNjYsNDQ3LjE3IDE0LjEyLDQzNi4xNSAxNi45NCw0MjMuNTAgQzE5Ljc1LDQxMC44NSAyMi42OSwzOTcuODAgMjMuNDcsMzk0LjUwIEMyNS40MiwzODYuMjUgMzAuMDUsMzY1Ljc3IDM2LjAzLDMzOS4wMCBDMzguODAsMzI2LjYyIDQyLjE3LDMxMS43NyA0My41MywzMDYuMDAgQzQ2LjIxLDI5NC42MyA2Mi43OSwyMjEuNzMgNjQuMDAsMjE2LjAwIEM2NC40MSwyMTQuMDcgNjYuMTQsMjA2LjQzIDY3Ljg0LDE5OS4wMCBDNzguOTksMTUwLjI3IDc5LjQ2LDE0OC44MSA4Ni44MSwxMzkuMDkgQzk1LjI1LDEyNy45MyAxMDguNjksMTE5LjQ0IDEyMi41MywxMTYuNTEgQzEzMi42NSwxMTQuMzcgMTkzLjEwLDExNC4zNSAyMDEuMzEsMTE2LjQ5IEMyMTQuOTcsMTIwLjA1IDIyMy41OCwxMjYuOTQgMjMzLjgwLDE0Mi40OSBDMjM3LjQyLDE0OC4wMCAyNTUuOTUsMTc1LjkwIDI3NC45OCwyMDQuNTAgQzI5NC4wMSwyMzMuMTAgMzEwLjYyLDI1OC4yMCAzMTEuODksMjYwLjI3IEwgMzE0LjE5IDI2NC4wNCBMIDMxMS40OCAyNzUuNzcgQzMwNy4wNSwyOTQuOTUgMzAwLjA4LDMyNC42NiAyOTcuMDEsMzM3LjUwIEMyOTIuMDUsMzU4LjI2IDI4My4zMCwzOTYuNDEgMjgwLjQ0LDQwOS43NSBDMjgwLjE4LDQxMC45OSAyNzkuNjMsNDExLjk5IDI3OS4yMyw0MTEuOTcgQzI3OC41NCw0MTEuOTQgMjU5LjIzLDM4My4xOCAyMDIuNzQsMjk4LjAwIEMxODkuMDYsMjc3LjM4IDE3Ny4xNCwyNTkuOTQgMTc2LjI0LDI1OS4yNSBDMTc1LjM1LDI1OC41NiAxNzMuMTYsMjU4LjAwIDE3MS4zOCwyNTguMDAgQzE2OC4xMiwyNTguMDAgMTY1LjM2LDI2MC42NCAxNjMuNjIsMjY1LjQzIEMxNjIuOTgsMjY3LjIxIDE1OS43NSwyODEuMTkgMTU4LjY0LDI4Ny4wMCBDMTU4LjAwLDI5MC4zOCAxNDguMjgsMzMzLjk5IDE0Ni41MCwzNDEuNTAgQzE0NS43MiwzNDQuODAgMTQ0LjgxLDM0OS4wNCAxNDQuNDksMzUwLjkyIEMxNDQuMTcsMzUyLjc5IDE0My43NSwzNTQuNTkgMTQzLjU2LDM1NC45MiBDMTQzLjM2LDM1NS4yNCAxNDIuOTIsMzU3LjMwIDE0Mi41OCwzNTkuNTAgQzE0Mi4yNCwzNjEuNzAgMTQxLjU2LDM2NC44NSAxNDEuMDcsMzY2LjUwIEMxNDAuNTgsMzY4LjE1IDEzOC4zMSwzNzguMDUgMTM2LjAyLDM4OC41MCBDMTMzLjcyLDM5OC45NSAxMzAuMzMsNDE0LjAyIDEyOC40OCw0MjIuMDAgQzEyNi42Miw0MjkuOTggMTI0LjkwLDQzNy42MiAxMjQuNjUsNDM5LjAwIEMxMjQuNDAsNDQwLjM4IDEyMi4zNCw0NDkuNjAgMTIwLjA3LDQ1OS41MCBDMTE3LjgwLDQ2OS40MCAxMTUuNzMsNDc4LjYyIDExNS40Nyw0ODAuMDAgQzExNS4yMSw0ODEuMzggMTE0LjE3LDQ4NS44OCAxMTMuMTYsNDkwLjAwIEwgMTExLjMzIDQ5Ny41MCBMIDU2LjIzIDQ5Ny43NiBDMjUuOTIsNDk3LjkwIDAuOTAsNDk3LjY1IDAuNjMsNDk3LjIwIFpNIDM3MS4wMCA0OTYuNTAgQzM1MC4yOCw0OTIuOTIgMzMwLjU5LDQ4MS4zNCAzMTguNjUsNDY1LjcyIEMzMDcuMzAsNDUwLjg5IDMwMS45Nyw0MzUuMDEgMzAxLjkzLDQxNi4wMCBDMzAxLjkxLDQwMi42MiAzMDIuMTksNDAxLjEzIDMxMy40MCwzNTYuMjEgQzMxOC4wMiwzMzcuNjcgMzI2LjM4LDMwMy42MCAzMzEuOTYsMjgwLjUwIEMzNTAuOTAsMjAyLjIyIDM1NC4yNCwxODguNTQgMzYwLjIwLDE2NS4wMCBDMzYzLjQ4LDE1Mi4wNyAzNjYuODEsMTM4LjU3IDM2Ny42MSwxMzUuMDAgQzM2OC40MSwxMzEuNDMgMzY5Ljg1LDEyNS41NyAzNzAuODEsMTIyLjAwIEwgMzcyLjU1IDExNS41MCBMIDQyMy4yOCAxMTUuMjQgQzQ1MS4xNywxMTUuMTAgNDc0LjAwLDExNS4zMiA0NzQuMDAsMTE1Ljc0IEM0NzQuMDEsMTE2LjU1IDQ3MC45NywxMjkuNjIgNDY1LjQ3LDE1Mi41MCBDNDYzLjYyLDE2MC4yMCA0NTkuODAsMTc2LjE4IDQ1Ni45OCwxODguMDAgQzQ1NC4xNSwxOTkuODIgNDUwLjc1LDIxNC4wMCA0NDkuNDEsMjE5LjUwIEM0NDguMDcsMjI1LjAwIDQ0Ni43OSwyMzAuNDAgNDQ2LjU2LDIzMS41MCBDNDQ1LjY5LDIzNS43MiA0NDAuOTAsMjU1Ljc1IDQzOS41MiwyNjEuMDAgQzQzOC43MiwyNjQuMDIgNDM3LjM5LDI2OS40MiA0MzYuNTcsMjczLjAwIEM0MzUuNzQsMjc2LjU4IDQzMi43OCwyODguOTUgNDI5Ljk5LDMwMC41MCBDNDI3LjIwLDMxMi4wNSA0MjMuNzksMzI2LjIzIDQyMi40MSwzMzIuMDAgQzQyMS4wMywzMzcuNzcgNDE4Ljk4LDM0Ni4zMyA0MTcuODYsMzUxLjAwIEM0MTYuNzMsMzU1LjY3IDQxNS42NywzNjAuMTcgNDE1LjQ5LDM2MS4wMCBDNDE1LjMxLDM2MS44MyA0MTQuNjUsMzY0Ljc1IDQxNC4wMSwzNjcuNTAgQzQxMi42NywzNzMuMzIgNDEzLjQzLDM3OS45NyA0MTYuMDEsMzg1LjAyIEM0MTguMzksMzg5LjY4IDQyNS4zMiwzOTYuMDEgNDMxLjEyLDM5OC44MSBDNDQxLjUyLDQwMy44NSA0NDMuNjgsNDAzLjk2IDUyOC44Niw0MDMuOTggTCA2MDguMjIgNDA0LjAwIEwgNjA3LjU2IDQwNy43NSBDNjA3LjE5LDQwOS44MSA2MDUuMTQsNDE4LjcwIDYwMy4wMSw0MjcuNTAgQzYwMC44OCw0MzYuMzAgNTk3LjczLDQ0OS44MCA1OTYuMDEsNDU3LjUwIEM1ODkuODAsNDg1LjMyIDU4OC44Miw0ODkuNTYgNTg3LjY3LDQ5My41MCBMIDU4Ni41MCA0OTcuNTAgTCA0ODIuNTAgNDk3LjY1IEM0MDEuMjQsNDk3Ljc3IDM3Ni44Niw0OTcuNTIgMzcxLjAwLDQ5Ni41MCBaIi8+PC9zdmc+");
  mask-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA2MDkgNjA5Ij48cGF0aCBmaWxsPSJ3aGl0ZSIgZD0iTSAwLjYzIDQ5Ny4yMCBDMC4zNSw0OTYuNzYgMC41NSw0OTQuNjEgMS4wNyw0OTIuNDQgQzEuNTksNDkwLjI4IDIuNjgsNDg1LjU4IDMuNDksNDgyLjAwIEM0LjMwLDQ3OC40MiA2LjM0LDQ2OS42NSA4LjA0LDQ2Mi41MCBDOS43Myw0NTUuMzUgMTEuMjgsNDQ4LjgzIDExLjQ3LDQ0OC4wMCBDMTEuNjYsNDQ3LjE3IDE0LjEyLDQzNi4xNSAxNi45NCw0MjMuNTAgQzE5Ljc1LDQxMC44NSAyMi42OSwzOTcuODAgMjMuNDcsMzk0LjUwIEMyNS40MiwzODYuMjUgMzAuMDUsMzY1Ljc3IDM2LjAzLDMzOS4wMCBDMzguODAsMzI2LjYyIDQyLjE3LDMxMS43NyA0My41MywzMDYuMDAgQzQ2LjIxLDI5NC42MyA2Mi43OSwyMjEuNzMgNjQuMDAsMjE2LjAwIEM2NC40MSwyMTQuMDcgNjYuMTQsMjA2LjQzIDY3Ljg0LDE5OS4wMCBDNzguOTksMTUwLjI3IDc5LjQ2LDE0OC44MSA4Ni44MSwxMzkuMDkgQzk1LjI1LDEyNy45MyAxMDguNjksMTE5LjQ0IDEyMi41MywxMTYuNTEgQzEzMi42NSwxMTQuMzcgMTkzLjEwLDExNC4zNSAyMDEuMzEsMTE2LjQ5IEMyMTQuOTcsMTIwLjA1IDIyMy41OCwxMjYuOTQgMjMzLjgwLDE0Mi40OSBDMjM3LjQyLDE0OC4wMCAyNTUuOTUsMTc1LjkwIDI3NC45OCwyMDQuNTAgQzI5NC4wMSwyMzMuMTAgMzEwLjYyLDI1OC4yMCAzMTEuODksMjYwLjI3IEwgMzE0LjE5IDI2NC4wNCBMIDMxMS40OCAyNzUuNzcgQzMwNy4wNSwyOTQuOTUgMzAwLjA4LDMyNC42NiAyOTcuMDEsMzM3LjUwIEMyOTIuMDUsMzU4LjI2IDI4My4zMCwzOTYuNDEgMjgwLjQ0LDQwOS43NSBDMjgwLjE4LDQxMC45OSAyNzkuNjMsNDExLjk5IDI3OS4yMyw0MTEuOTcgQzI3OC41NCw0MTEuOTQgMjU5LjIzLDM4My4xOCAyMDIuNzQsMjk4LjAwIEMxODkuMDYsMjc3LjM4IDE3Ny4xNCwyNTkuOTQgMTc2LjI0LDI1OS4yNSBDMTc1LjM1LDI1OC41NiAxNzMuMTYsMjU4LjAwIDE3MS4zOCwyNTguMDAgQzE2OC4xMiwyNTguMDAgMTY1LjM2LDI2MC42NCAxNjMuNjIsMjY1LjQzIEMxNjIuOTgsMjY3LjIxIDE1OS43NSwyODEuMTkgMTU4LjY0LDI4Ny4wMCBDMTU4LjAwLDI5MC4zOCAxNDguMjgsMzMzLjk5IDE0Ni41MCwzNDEuNTAgQzE0NS43MiwzNDQuODAgMTQ0LjgxLDM0OS4wNCAxNDQuNDksMzUwLjkyIEMxNDQuMTcsMzUyLjc5IDE0My43NSwzNTQuNTkgMTQzLjU2LDM1NC45MiBDMTQzLjM2LDM1NS4yNCAxNDIuOTIsMzU3LjMwIDE0Mi41OCwzNTkuNTAgQzE0Mi4yNCwzNjEuNzAgMTQxLjU2LDM2NC44NSAxNDEuMDcsMzY2LjUwIEMxNDAuNTgsMzY4LjE1IDEzOC4zMSwzNzguMDUgMTM2LjAyLDM4OC41MCBDMTMzLjcyLDM5OC45NSAxMzAuMzMsNDE0LjAyIDEyOC40OCw0MjIuMDAgQzEyNi42Miw0MjkuOTggMTI0LjkwLDQzNy42MiAxMjQuNjUsNDM5LjAwIEMxMjQuNDAsNDQwLjM4IDEyMi4zNCw0NDkuNjAgMTIwLjA3LDQ1OS41MCBDMTE3LjgwLDQ2OS40MCAxMTUuNzMsNDc4LjYyIDExNS40Nyw0ODAuMDAgQzExNS4yMSw0ODEuMzggMTE0LjE3LDQ4NS44OCAxMTMuMTYsNDkwLjAwIEwgMTExLjMzIDQ5Ny41MCBMIDU2LjIzIDQ5Ny43NiBDMjUuOTIsNDk3LjkwIDAuOTAsNDk3LjY1IDAuNjMsNDk3LjIwIFpNIDM3MS4wMCA0OTYuNTAgQzM1MC4yOCw0OTIuOTIgMzMwLjU5LDQ4MS4zNCAzMTguNjUsNDY1LjcyIEMzMDcuMzAsNDUwLjg5IDMwMS45Nyw0MzUuMDEgMzAxLjkzLDQxNi4wMCBDMzAxLjkxLDQwMi42MiAzMDIuMTksNDAxLjEzIDMxMy40MCwzNTYuMjEgQzMxOC4wMiwzMzcuNjcgMzI2LjM4LDMwMy42MCAzMzEuOTYsMjgwLjUwIEMzNTAuOTAsMjAyLjIyIDM1NC4yNCwxODguNTQgMzYwLjIwLDE2NS4wMCBDMzYzLjQ4LDE1Mi4wNyAzNjYuODEsMTM4LjU3IDM2Ny42MSwxMzUuMDAgQzM2OC40MSwxMzEuNDMgMzY5Ljg1LDEyNS41NyAzNzAuODEsMTIyLjAwIEwgMzcyLjU1IDExNS41MCBMIDQyMy4yOCAxMTUuMjQgQzQ1MS4xNywxMTUuMTAgNDc0LjAwLDExNS4zMiA0NzQuMDAsMTE1Ljc0IEM0NzQuMDEsMTE2LjU1IDQ3MC45NywxMjkuNjIgNDY1LjQ3LDE1Mi41MCBDNDYzLjYyLDE2MC4yMCA0NTkuODAsMTc2LjE4IDQ1Ni45OCwxODguMDAgQzQ1NC4xNSwxOTkuODIgNDUwLjc1LDIxNC4wMCA0NDkuNDEsMjE5LjUwIEM0NDguMDcsMjI1LjAwIDQ0Ni43OSwyMzAuNDAgNDQ2LjU2LDIzMS41MCBDNDQ1LjY5LDIzNS43MiA0NDAuOTAsMjU1Ljc1IDQzOS41MiwyNjEuMDAgQzQzOC43MiwyNjQuMDIgNDM3LjM5LDI2OS40MiA0MzYuNTcsMjczLjAwIEM0MzUuNzQsMjc2LjU4IDQzMi43OCwyODguOTUgNDI5Ljk5LDMwMC41MCBDNDI3LjIwLDMxMi4wNSA0MjMuNzksMzI2LjIzIDQyMi40MSwzMzIuMDAgQzQyMS4wMywzMzcuNzcgNDE4Ljk4LDM0Ni4zMyA0MTcuODYsMzUxLjAwIEM0MTYuNzMsMzU1LjY3IDQxNS42NywzNjAuMTcgNDE1LjQ5LDM2MS4wMCBDNDE1LjMxLDM2MS44MyA0MTQuNjUsMzY0Ljc1IDQxNC4wMSwzNjcuNTAgQzQxMi42NywzNzMuMzIgNDEzLjQzLDM3OS45NyA0MTYuMDEsMzg1LjAyIEM0MTguMzksMzg5LjY4IDQyNS4zMiwzOTYuMDEgNDMxLjEyLDM5OC44MSBDNDQxLjUyLDQwMy44NSA0NDMuNjgsNDAzLjk2IDUyOC44Niw0MDMuOTggTCA2MDguMjIgNDA0LjAwIEwgNjA3LjU2IDQwNy43NSBDNjA3LjE5LDQwOS44MSA2MDUuMTQsNDE4LjcwIDYwMy4wMSw0MjcuNTAgQzYwMC44OCw0MzYuMzAgNTk3LjczLDQ0OS44MCA1OTYuMDEsNDU3LjUwIEM1ODkuODAsNDg1LjMyIDU4OC44Miw0ODkuNTYgNTg3LjY3LDQ5My41MCBMIDU4Ni41MCA0OTcuNTAgTCA0ODIuNTAgNDk3LjY1IEM0MDEuMjQsNDk3Ljc3IDM3Ni44Niw0OTcuNTIgMzcxLjAwLDQ5Ni41MCBaIi8+PC9zdmc+");
  -webkit-mask-size: contain;
  mask-size: contain;
  -webkit-mask-repeat: no-repeat;
  mask-repeat: no-repeat;
  -webkit-mask-position: center;
  mask-position: center;
}

@keyframes logoShimmer {
  0%   { background-position: 100% 0; }
  100% { background-position: -100% 0; }
}

/* Speed streaks */
.hero__streaks {
  position: absolute;
  inset: 0;
  pointer-events: none;
  z-index: 3;
  opacity: 0;
  transition: opacity 0.5s ease;
}

.hero__stage.is-zooming .hero__streaks { opacity: 1; }

.hero__streak {
  position: absolute;
  top: 50%; left: 50%;
  width: 1px; height: 0;
  background: linear-gradient(to bottom, transparent, rgba(210,193,182,0.28), transparent);
  transform-origin: center top;
  opacity: 0;
}

.hero__stage.is-zooming .hero__streak {
  animation: streakShoot 1.2s ease-out infinite;
}

.hero__streak:nth-child(1) { transform: translate(-50%,-50%) rotate(-30deg); animation-delay: 0s; }
.hero__streak:nth-child(2) { transform: translate(-50%,-50%) rotate(15deg); animation-delay: 0.15s; }
.hero__streak:nth-child(3) { transform: translate(-50%,-50%) rotate(55deg); animation-delay: 0.3s; }
.hero__streak:nth-child(4) { transform: translate(-50%,-50%) rotate(-60deg); animation-delay: 0.1s; }
.hero__streak:nth-child(5) { transform: translate(-50%,-50%) rotate(80deg); animation-delay: 0.25s; }
.hero__streak:nth-child(6) { transform: translate(-50%,-50%) rotate(-10deg); animation-delay: 0.4s; }

@keyframes streakShoot {
  0%   { height: 0; opacity: 0; }
  10%  { opacity: 0.3; }
  100% { height: 100vh; opacity: 0; }
}

.hero__kicker {
  margin-top: var(--sp-5);
  font-family: var(--f-body);
  font-size: 0.68rem;
  line-height: 1;
  letter-spacing: 0.28em;
  text-transform: uppercase;
  color: var(--t-3);
  opacity: 0;
  animation: kickerReveal 1.2s 1.2s var(--ease) forwards;
}

@keyframes kickerReveal {
  0%   { opacity: 0; transform: translateY(10px); letter-spacing: 0.55em; }
  100% { opacity: 1; transform: translateY(0); letter-spacing: 0.28em; }
}

/* Content area (after sticky) */
.hero__content {
  position: relative;
  z-index: 2;
  margin-top: -30svh;
  padding: clamp(72px,9vw,128px) 0 clamp(80px,10vw,140px);
  background: var(--s-1);
  border-top-left-radius: var(--r-xl);
  border-top-right-radius: var(--r-xl);
  overflow: hidden;
}

@supports not (height: 100svh) { .hero__content { margin-top: -30vh; } }

.hero__content-inner {
  width: min(980px, 100% - (var(--pad-x) * 2));
  margin: 0 auto;
}

.hero__heading {
  font-size: clamp(2.2rem,5vw,4.8rem);
  line-height: 0.96;
  letter-spacing: -0.04em;
  max-width: 20ch;
  text-wrap: balance;
  overflow: hidden;
}

/* Word-by-word reveal */
.hero-word {
  display: inline-block;
  opacity: 0;
  transform: translateY(55%);
  filter: blur(3px);
  transition:
    opacity 0.7s var(--ease),
    transform 0.7s var(--ease),
    filter 0.5s var(--ease);
}

.hero-word.is-visible {
  opacity: 1;
  transform: translateY(0);
  filter: blur(0);
}

.hero__copy {
  max-width: 56ch;
  margin-top: var(--sp-6);
  font-size: clamp(1rem,1.2vw,1.08rem);
  line-height: 1.74;
  color: var(--t-2);
}

.hero__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 14px;
  margin-top: var(--sp-8);
}

.hero__pills {
  display: flex;
  flex-wrap: wrap;
  gap: 10px 12px;
  margin-top: var(--sp-7);
}

.hero__pill {
  padding: 9px 14px;
  border: 1px solid var(--b-1);
  border-radius: var(--r-pill);
  background: rgba(255,255,255,0.36);
  font-size: var(--tx-xs);
  line-height: 1.2;
  color: var(--t-2);
  backdrop-filter: blur(6px);
}

@media (prefers-color-scheme: dark) {
  .hero__pill { background: rgba(255,255,255,0.03); }
}

/* ── SOCIAL PROOF STRIP ──────────────────────────────────── */
.proof-strip {
  padding: var(--sp-9) 0;
  background: var(--s-1);
  border-bottom: 1px solid var(--b-2);
}

.proof-strip__inner {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: var(--sp-6);
  flex-wrap: wrap;
}

.proof-quote {
  display: flex;
  align-items: flex-start;
  gap: var(--sp-4);
  padding: var(--sp-5) var(--sp-6);
  background: var(--s-3);
  border: 1px solid var(--b-1);
  border-radius: var(--r-md);
  box-shadow: var(--sh-1);
  max-width: 360px;
  flex: 1;
  min-width: 280px;
}

.proof-quote__avatar {
  flex-shrink: 0;
  width: 44px;
  height: 44px;
  border-radius: 50%;
  background: var(--brand-ghost);
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: var(--f-display);
  font-size: var(--tx-sm);
  font-weight: 700;
  color: var(--brand);
  border: 2px solid var(--b-1);
}

.proof-quote__body {}

.proof-quote__text {
  font-size: var(--tx-sm);
  line-height: 1.65;
  color: var(--t-2);
  font-style: italic;
  margin-bottom: var(--sp-2);
}

.proof-quote__author {
  font-size: var(--tx-xs);
  font-weight: 600;
  color: var(--t-1);
}

.proof-quote__company {
  font-size: var(--tx-xs);
  color: var(--t-3);
}

/* ── PROBLEM SECTION ─────────────────────────────────────── */
.problem-grid {
  display: grid;
  grid-template-columns: repeat(3,1fr);
  gap: clamp(14px,2vw,22px);
}

.problem-card {
  padding: var(--sp-5);
  background: var(--s-3);
  border: 1.5px solid var(--b-1);
  border-radius: var(--r-sm);
  box-shadow: var(--sh-card);
  text-align: center;
}

.problem-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 36px; height: 36px;
  margin: 0 auto var(--sp-3);
  border-radius: 50%;
  background: rgba(192,57,43,0.08);
  color: #b04040;
  font-size: var(--tx-sm);
  font-weight: 700;
  line-height: 1;
}

@media (prefers-color-scheme: dark) {
  .problem-icon { background: rgba(220,100,100,0.12); color: #e08080; }
}

.problem-text {
  font-size: var(--tx-sm);
  line-height: 1.55;
  color: var(--t-2);
}

/* ── SOLUTION SECTION ────────────────────────────────────── */
.solution-card {
  display: grid;
  grid-template-columns: 1.1fr 0.9fr;
  gap: clamp(32px,5vw,56px);
  align-items: center;
  padding: clamp(28px,4vw,48px);
  background: var(--s-4);
  border: 1.5px solid var(--b-1);
  border-radius: var(--r-lg);
  box-shadow: var(--sh-1);
}

.solution-heading {
  font-size: clamp(1.8rem,3.5vw,3rem);
  line-height: 1;
  letter-spacing: -0.035em;
}

.solution-text {
  max-width: 48ch;
  margin-top: var(--sp-5);
  font-size: var(--tx-base);
  line-height: 1.74;
  color: var(--t-2);
}

.solution-copy .btn { margin-top: var(--sp-7); }

.solution-tags {
  display: flex;
  flex-wrap: wrap;
  gap: var(--sp-3);
  justify-content: center;
}

.solution-tag {
  padding: var(--sp-3) var(--sp-4);
  background: var(--s-3);
  border: 1.5px solid var(--b-1);
  border-radius: var(--r-pill);
  font-size: var(--tx-sm);
  font-weight: 500;
  color: var(--t-1);
  line-height: 1;
}

/* ── MINI CONFIGURATOR (homepage teaser) ─────────────────── */
.mini-config {
  padding: clamp(28px,4vw,44px);
  background: var(--s-3);
  border: 1.5px solid var(--b-1);
  border-radius: var(--r-lg);
  box-shadow: var(--sh-2);
}

.mini-config__heading {
  font-size: clamp(1.6rem,2.8vw,2.4rem);
  letter-spacing: -0.03em;
  margin-bottom: var(--sp-3);
}

.mini-config__sub {
  font-size: var(--tx-sm);
  color: var(--t-2);
  line-height: 1.6;
  margin-bottom: var(--sp-7);
  max-width: 52ch;
}

.mini-config__modules {
  display: flex;
  flex-wrap: wrap;
  gap: var(--sp-3);
  margin-bottom: var(--sp-7);
}

.mini-config__module {
  display: flex;
  align-items: center;
  gap: var(--sp-2);
  padding: var(--sp-3) var(--sp-4);
  border: 1.5px solid var(--b-1);
  border-radius: var(--r-pill);
  background: var(--s-2);
  font-size: var(--tx-sm);
  font-weight: 500;
  color: var(--t-2);
  cursor: pointer;
  transition: border-color var(--dur-fast) var(--ease), background var(--dur-fast) var(--ease), color var(--dur-fast) var(--ease);
  -webkit-user-select: none;
  user-select: none;
  -webkit-tap-highlight-color: transparent;
}

.mini-config__module.is-selected {
  border-color: var(--brand);
  background: var(--brand-ghost);
  color: var(--t-1);
}

.mini-config__dot {
  width: 8px; height: 8px;
  border-radius: 50%;
  border: 1.5px solid currentColor;
  transition: background var(--dur-fast) var(--ease);
}

.mini-config__module.is-selected .mini-config__dot {
  background: var(--brand);
  border-color: var(--brand);
}

.mini-config__summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--sp-5);
  padding: var(--sp-5) var(--sp-6);
  background: var(--s-4);
  border-radius: var(--r-md);
  flex-wrap: wrap;
}

.mini-config__total-label {
  font-size: var(--tx-xs);
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: var(--t-3);
  margin-bottom: var(--sp-1);
}

.mini-config__total-value {
  font-family: var(--f-display);
  font-size: var(--tx-2xl);
  font-weight: 700;
  letter-spacing: -0.03em;
  color: var(--t-1);
}

/* ── CTA SECTION ─────────────────────────────────────────── */
.cta-card {
  position: relative;
  overflow: hidden;
  padding: clamp(32px,5vw,64px);
  background: var(--s-5);
  border: 1.5px solid var(--b-1);
  border-radius: var(--r-lg);
  box-shadow: var(--sh-2);
}

.cta-card::before {
  content: '';
  position: absolute;
  inset: 0;
  background: radial-gradient(circle at top right, rgba(27,60,83,0.09), transparent 40%);
  pointer-events: none;
}

@media (prefers-color-scheme: dark) {
  .cta-card::before {
    background: radial-gradient(circle at top right, rgba(210,193,182,0.08), transparent 40%);
  }
}

.cta-card > * { position: relative; z-index: 1; }

.cta-heading {
  font-size: clamp(2rem,4.5vw,4.4rem);
  line-height: 0.97;
  letter-spacing: -0.036em;
  max-width: 18ch;
  text-wrap: balance;
}

.cta-copy {
  max-width: 56ch;
  margin-top: var(--sp-6);
  font-size: clamp(1rem,1.2vw,1.08rem);
  line-height: 1.74;
  color: var(--t-2);
}

.cta-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 14px;
  margin-top: var(--sp-8);
}

.cta-meta {
  margin-top: var(--sp-6);
  font-family: var(--f-body);
  font-size: var(--tx-xs);
  letter-spacing: 0.09em;
  text-transform: uppercase;
  color: var(--t-3);
  line-height: 1.5;
}

/* ── TRUST / APPROACH ────────────────────────────────────── */
.trust-card {
  display: grid;
  grid-template-columns: 1.1fr 0.9fr;
  gap: var(--sp-7);
  padding: clamp(28px,4vw,44px);
  background: var(--s-4);
  border: 1.5px solid var(--b-1);
  border-radius: var(--r-lg);
  box-shadow: var(--sh-1);
}

.trust-heading {
  font-size: clamp(1.8rem,3.2vw,2.8rem);
  letter-spacing: -0.032em;
  line-height: 1.02;
  max-width: 22ch;
}

.trust-text {
  max-width: 48ch;
  margin-top: var(--sp-5);
  font-size: var(--tx-base);
  line-height: 1.74;
  color: var(--t-2);
}

.trust-points {
  display: grid;
  gap: 14px;
  align-content: start;
}

.trust-points li {
  padding: var(--sp-4) var(--sp-5);
  background: var(--s-3);
  border: 1px solid var(--b-1);
  border-radius: var(--r-sm);
  font-size: var(--tx-sm);
  line-height: 1.65;
  color: var(--t-2);
}

/* ── CONTACT LAYOUT ──────────────────────────────────────── */
.contact-grid {
  display: grid;
  grid-template-columns: 1.3fr 0.7fr;
  gap: clamp(32px,5vw,64px);
  align-items: start;
}

.contact-block { display: grid; gap: var(--sp-7); }

.contact-block-title {
  font-family: var(--f-body);
  font-size: var(--tx-xs);
  font-weight: 650;
  letter-spacing: 0.09em;
  text-transform: uppercase;
  color: var(--t-3);
  margin-bottom: var(--sp-2);
}

.contact-block-text {
  font-size: var(--tx-base);
  line-height: 1.55;
  color: var(--t-1);
}

.contact-block-text a {
  text-decoration: underline;
  text-underline-offset: 3px;
  text-decoration-color: var(--b-1);
  transition: text-decoration-color var(--dur-fast) var(--ease);
}

.contact-block-text a:hover { text-decoration-color: var(--brand); }

.contact-steps {
  counter-reset: cstep;
  display: grid;
  gap: var(--sp-4);
  margin-top: var(--sp-4);
}

.contact-steps li {
  counter-increment: cstep;
  position: relative;
  padding-left: 32px;
  font-size: var(--tx-sm);
  line-height: 1.7;
  color: var(--t-2);
}

.contact-steps li::before {
  content: counter(cstep);
  position: absolute;
  left: 0; top: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 22px; height: 22px;
  border-radius: 50%;
  background: var(--brand-ghost);
  font-size: 0.7rem;
  font-weight: 650;
  color: var(--brand);
}

.contact-expect {
  padding: var(--sp-6);
  background: var(--s-3);
  border: 1.5px solid var(--b-1);
  border-radius: var(--r-md);
}

/* ── LEGAL PAGES ─────────────────────────────────────────── */
.legal-page {
  padding: clamp(80px,9vw,120px) 0 var(--section-y);
  background: var(--s-1);
}

.legal-title {
  font-size: clamp(2.2rem,4.5vw,4rem);
  line-height: 0.98;
  letter-spacing: -0.04em;
  text-wrap: balance;
  max-width: 16ch;
}

.legal-section {
  margin-top: var(--sp-8);
  padding: var(--sp-7);
  background: var(--s-3);
  border: 1px solid var(--b-1);
  border-radius: var(--r-md);
  box-shadow: var(--sh-1);
}

.legal-section h2 {
  font-size: clamp(1.15rem,1.8vw,1.4rem);
  margin-bottom: var(--sp-4);
  letter-spacing: -0.02em;
}

.legal-section p,
.legal-section li {
  font-family: var(--f-body);
  font-weight: 400;
  font-size: var(--tx-base);
  line-height: 1.78;
  color: var(--t-2);
}

.legal-section p + p { margin-top: var(--sp-4); }
.legal-section ul, .legal-section ol { margin: var(--sp-4) 0 0; padding-left: 1.2rem; }
.legal-section li + li { margin-top: var(--sp-2); }
.legal-section a { color: var(--brand); text-decoration: underline; text-decoration-thickness: 1px; }
.legal-section strong { color: var(--t-1); }

/* ── TEAM SECTION ────────────────────────────────────────── */
.team-grid-two {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: var(--sp-7);
  max-width: 800px;
}

.team-card {
  display: grid;
  grid-template-columns: 140px 1fr;
  gap: var(--sp-6);
  align-items: start;
  padding: var(--sp-7);
  background: var(--s-3);
  border: 1.5px solid var(--b-1);
  border-radius: var(--r-lg);
  box-shadow: var(--sh-1);
}

.team-photo {
  aspect-ratio: 1;
  border-radius: var(--r-md);
  overflow: hidden;
  background: var(--s-4);
}

.team-photo-placeholder {
  display: grid;
  place-items: center;
  height: 100%;
  font-size: var(--tx-xs);
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--t-3);
}

.team-photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.team-name {
  font-size: var(--tx-xl);
  letter-spacing: -0.02em;
  margin-bottom: var(--sp-2);
}

.team-role {
  font-family: var(--f-body);
  font-size: var(--tx-xs);
  letter-spacing: 0.09em;
  text-transform: uppercase;
  color: var(--t-3);
  margin-bottom: var(--sp-4);
}

.team-bio {
  font-size: var(--tx-sm);
  line-height: 1.74;
  color: var(--t-2);
}

/* ── APPROACH ────────────────────────────────────────────── */
.approach-grid {
  display: grid;
  grid-template-columns: 0.85fr 1.15fr;
  gap: clamp(32px,5vw,64px);
  align-items: start;
}

.approach-heading {
  font-size: clamp(1.8rem,3.5vw,3rem);
  letter-spacing: -0.035em;
  line-height: 1;
  max-width: 14ch;
}

.approach-lead {
  max-width: 36ch;
  margin-top: var(--sp-6);
  font-size: var(--tx-base);
  line-height: 1.74;
  color: var(--t-2);
}

.approach-text {
  max-width: 58ch;
  font-size: var(--tx-base);
  line-height: 1.8;
  color: var(--t-2);
}

.approach-text + .approach-text { margin-top: var(--sp-6); }

/* ── VALUES ──────────────────────────────────────────────── */
.values-grid {
  display: grid;
  grid-template-columns: repeat(2,1fr);
  gap: clamp(16px,2vw,24px);
}

.value-card {
  padding: var(--sp-7);
  background: var(--s-3);
  border: 1.5px solid var(--b-1);
  border-radius: var(--r-md);
  box-shadow: var(--sh-card);
}

.value-title {
  font-size: var(--tx-xl);
  letter-spacing: -0.025em;
  margin-bottom: var(--sp-3);
}

.value-text {
  font-size: var(--tx-sm);
  line-height: 1.74;
  color: var(--t-2);
}

/* ── HOW WE WORK ─────────────────────────────────────────── */
.howwork-card {
  padding: clamp(28px,4vw,48px);
  background: var(--s-4);
  border: 1.5px solid var(--b-1);
  border-radius: var(--r-lg);
  box-shadow: var(--sh-1);
}

.howwork-heading {
  font-size: clamp(1.8rem,3.5vw,3rem);
  letter-spacing: -0.035em;
  line-height: 1;
  max-width: 22ch;
}

.howwork-grid {
  display: grid;
  grid-template-columns: repeat(2,1fr);
  gap: clamp(16px,2vw,24px);
  margin-top: var(--sp-9);
}

.howwork-item {
  padding: var(--sp-5);
  background: var(--s-3);
  border: 1px solid var(--b-1);
  border-radius: var(--r-sm);
}

.howwork-item-title {
  font-size: var(--tx-base);
  letter-spacing: -0.01em;
  margin-bottom: var(--sp-2);
}

.howwork-item-text {
  font-size: var(--tx-sm);
  line-height: 1.7;
  color: var(--t-2);
}

/* ── RESPONSIVE — Sections ───────────────────────────────── */
@media (max-width: 900px) {
  .solution-card,
  .trust-card,
  .contact-grid,
  .approach-grid { grid-template-columns: 1fr; }

  .problem-grid,
  .values-grid,
  .howwork-grid { grid-template-columns: 1fr 1fr; }

  .team-grid-two { grid-template-columns: 1fr; }
}

@media (max-width: 767px) {
  .hero__content {
    margin-top: -10svh;
    border-top-left-radius: 22px;
    border-top-right-radius: 22px;
  }

  .hero__logo { width: clamp(180px,72vw,460px); }

  .hero__actions,
  .cta-actions { gap: var(--sp-3); }

  .hero__actions .btn,
  .cta-actions .btn { width: 100%; }

  .problem-grid { grid-template-columns: 1fr; }

  .proof-strip__inner { flex-direction: column; align-items: stretch; }
  .proof-quote { max-width: 100%; }

  .mini-config__summary { flex-direction: column; align-items: flex-start; }

  .team-card {
    grid-template-columns: 1fr;
    text-align: center;
  }

  .team-photo { max-width: 140px; margin: 0 auto; }
}