@font-face {
  font-family: "InterTight GAN";
  src: url("assets/fonts/InterTight-Light.woff2") format("woff2");
  font-style: normal;
  font-weight: 400;
  font-display: swap;
}

@font-face {
  font-family: "InterTight GAN";
  src: url("assets/fonts/InterTight-Medium.woff2") format("woff2");
  font-style: normal;
  font-weight: 500 600;
  font-display: swap;
}

@font-face {
  font-family: "InterTight GAN";
  src: url("assets/fonts/InterTight-Bold.woff2") format("woff2");
  font-style: normal;
  font-weight: 700 900;
  font-display: swap;
}

:root {
  --navy-950: #031328;
  --navy-900: #061c38;
  --navy-800: #0b2d55;
  --navy-700: #174572;
  --ink: #142033;
  --slate: #536174;
  --mist: #eef2f4;
  --paper: #f7f6f2;
  --white: #fff;
  --gold: #d4a74e;
  --gold-light: #f0dca8;
  --gold-dark: #a77928;
  --line: rgba(20, 32, 51, .13);
  --shadow: 0 24px 70px rgba(3, 19, 40, .12);
  --serif: "Iowan Old Style", "Palatino Linotype", "Book Antiqua", Palatino, Georgia, serif;
  --sans: "InterTight GAN", "InterTight LT Std", "Avenir Next", Avenir, "Segoe UI", Helvetica, Arial, sans-serif;
  --shell: min(1180px, calc(100% - 40px));
  --header-h: 88px;
}

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

html {
  scroll-behavior: smooth;
  scroll-padding-top: calc(var(--header-h) + 16px);
}

body {
  margin: 0;
  color: var(--ink);
  background: var(--paper);
  font-family: var(--sans);
  font-size: 16px;
  line-height: 1.65;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

body.menu-open {
  overflow: hidden;
}

body.dialog-open {
  overflow: hidden;
}

img,
video,
svg {
  display: block;
  max-width: 100%;
}

svg {
  fill: none;
  stroke: currentColor;
  stroke-width: 1.8;
  stroke-linecap: round;
  stroke-linejoin: round;
}

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

button,
input,
select,
textarea {
  font: inherit;
}

button,
a {
  -webkit-tap-highlight-color: transparent;
}

:focus-visible {
  outline: 3px solid var(--gold);
  outline-offset: 4px;
}

address {
  font-style: normal;
}

h1,
h2,
h3,
p {
  margin-top: 0;
}

h1,
h2,
h3 {
  text-wrap: balance;
}

p {
  text-wrap: pretty;
}

.shell {
  width: var(--shell);
  margin-inline: auto;
}

.section {
  padding-block: clamp(80px, 10vw, 144px);
}

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

.skip-link {
  position: fixed;
  top: 12px;
  left: 12px;
  z-index: 1000;
  padding: 10px 16px;
  color: var(--navy-950);
  background: var(--gold-light);
  border-radius: 6px;
  transform: translateY(-180%);
  transition: transform .2s;
}

.skip-link:focus {
  transform: translateY(0);
}

.eyebrow {
  margin-bottom: 18px;
  color: var(--gold-dark);
  font-size: .72rem;
  font-weight: 800;
  letter-spacing: .18em;
  line-height: 1.3;
  text-transform: uppercase;
}

.button {
  display: inline-flex;
  min-height: 52px;
  align-items: center;
  justify-content: center;
  gap: 10px;
  padding: 13px 24px;
  border: 1px solid transparent;
  border-radius: 3px;
  font-size: .82rem;
  font-weight: 800;
  letter-spacing: .06em;
  line-height: 1.2;
  text-align: center;
  text-transform: uppercase;
  transition: color .25s, background-color .25s, border-color .25s, transform .25s, box-shadow .25s;
}

.button:hover {
  transform: translateY(-2px);
}

.button--small {
  min-height: 42px;
  padding: 10px 16px;
  font-size: .7rem;
}

.button--gold {
  color: var(--navy-950);
  background: linear-gradient(135deg, var(--gold-light), var(--gold) 52%, #bf8d34);
  box-shadow: 0 12px 32px rgba(212, 167, 78, .22);
}

.button--gold:hover {
  box-shadow: 0 16px 38px rgba(212, 167, 78, .35);
}

.button--navy {
  color: var(--white);
  background: var(--navy-900);
}

.button--navy:hover {
  background: var(--navy-800);
}

.button--ghost,
.button--outline-light {
  color: var(--white);
  border-color: rgba(255, 255, 255, .34);
  background: rgba(255, 255, 255, .05);
  backdrop-filter: blur(12px);
}

.button--ghost:hover,
.button--outline-light:hover {
  border-color: var(--gold);
  background: rgba(255, 255, 255, .12);
}

.button svg {
  width: 18px;
  height: 18px;
}

.text-link {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding-bottom: 4px;
  border-bottom: 1px solid currentColor;
  color: var(--gold-light);
  font-size: .8rem;
  font-weight: 800;
  letter-spacing: .07em;
  text-transform: uppercase;
}

.text-link--dark {
  color: var(--navy-800);
}

.site-header {
  position: absolute;
  inset: 0 0 auto;
  z-index: 100;
  color: var(--white);
  transition: background .3s, box-shadow .3s, transform .3s;
}

.site-header.is-sticky {
  position: fixed;
  background: rgba(3, 19, 40, .96);
  box-shadow: 0 12px 30px rgba(0, 0, 0, .16);
  backdrop-filter: blur(16px);
}

.site-header.is-sticky .utility {
  display: none;
}

.utility {
  border-bottom: 1px solid rgba(255, 255, 255, .1);
  font-size: .73rem;
}

.utility__inner {
  display: flex;
  min-height: 38px;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
}

.utility p {
  margin: 0;
  color: rgba(255, 255, 255, .62);
  font-weight: 650;
  letter-spacing: .06em;
  text-transform: uppercase;
}

.utility__links {
  display: flex;
  align-items: center;
  gap: 28px;
}

.utility__links a {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  color: rgba(255, 255, 255, .78);
}

.utility__links a:hover {
  color: var(--gold-light);
}

.utility__links svg {
  width: 14px;
  height: 14px;
}

.nav-wrap {
  display: flex;
  min-height: var(--header-h);
  align-items: center;
  justify-content: space-between;
  gap: 30px;
}

.brand {
  display: inline-flex;
  flex: 0 0 auto;
  align-items: center;
  gap: 12px;
}

.brand__gan {
  width: 52px;
  height: 52px;
  flex: 0 0 auto;
  border-radius: 10px;
  object-fit: contain;
  box-shadow: 0 8px 22px rgba(0, 0, 0, .2);
}

.brand__text {
  display: flex;
  flex-direction: column;
  line-height: 1.1;
}

.brand__text strong {
  font-size: .84rem;
  font-weight: 850;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.brand__text > span {
  margin-top: 3px;
  color: var(--white);
  font-size: 1.08rem;
  font-weight: 500;
  line-height: 1;
}

.brand__text small {
  margin-top: 4px;
  color: var(--gold-light);
  font-size: .59rem;
  font-weight: 800;
  letter-spacing: .15em;
  text-transform: uppercase;
}

.main-nav {
  display: flex;
  align-items: center;
  gap: clamp(16px, 2vw, 28px);
}

.main-nav > a:not(.button) {
  position: relative;
  padding-block: 12px;
  color: rgba(255, 255, 255, .8);
  font-size: .75rem;
  font-weight: 750;
  letter-spacing: .04em;
}

.main-nav > a:not(.button)::after {
  position: absolute;
  right: 0;
  bottom: 6px;
  left: 0;
  height: 1px;
  background: var(--gold);
  content: "";
  transform: scaleX(0);
  transform-origin: right;
  transition: transform .25s;
}

.main-nav > a:not(.button):hover {
  color: var(--white);
}

.main-nav > a:not(.button):hover::after {
  transform: scaleX(1);
  transform-origin: left;
}

.menu-toggle {
  display: none;
  width: 46px;
  height: 46px;
  padding: 11px;
  border: 1px solid rgba(255, 255, 255, .2);
  color: inherit;
  background: transparent;
}

.menu-toggle span:not(.sr-only) {
  display: block;
  height: 1px;
  margin: 5px 0;
  background: currentColor;
  transition: transform .25s, opacity .25s;
}

.hero {
  position: relative;
  display: grid;
  min-height: max(760px, 100svh);
  place-items: center;
  overflow: hidden;
  color: var(--white);
  background:
    linear-gradient(90deg, rgba(3, 19, 40, .96) 0%, rgba(3, 19, 40, .84) 48%, rgba(3, 19, 40, .48) 100%),
    url("bg-part-poster-v4.jpg") center 36% / cover no-repeat;
}

.hero__video {
  position: absolute;
  inset: 0;
  z-index: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 36%;
  opacity: 0;
  filter: saturate(.78) contrast(.98) brightness(.86) blur(.35px);
  transform: scale(1.012);
  transition: opacity 1.2s ease;
}

.hero__video.is-ready {
  opacity: 1;
}

.hero::before {
  position: absolute;
  inset: 0;
  background:
    linear-gradient(90deg, rgba(3, 19, 40, .96) 0%, rgba(3, 19, 40, .84) 48%, rgba(3, 19, 40, .58) 100%),
    linear-gradient(180deg, rgba(3, 19, 40, .56) 0%, rgba(3, 19, 40, .18) 42%, rgba(3, 19, 40, .68) 100%),
    repeating-linear-gradient(90deg, transparent 0, transparent calc(25% - 1px), rgba(255, 255, 255, .045) 25%);
  content: "";
  z-index: 1;
}

.hero__grid {
  position: relative;
  z-index: 2;
  display: grid;
  grid-template-columns: minmax(0, 1.35fr) minmax(310px, .65fr);
  align-items: end;
  gap: clamp(50px, 8vw, 120px);
  padding-top: 150px;
  padding-bottom: 100px;
}

.hero__copy {
  max-width: 760px;
}

.hero .eyebrow {
  color: var(--gold-light);
}

.hero h1 {
  margin-bottom: 26px;
  font-family: var(--serif);
  font-size: clamp(3.3rem, 7.4vw, 7rem);
  font-weight: 500;
  letter-spacing: -.055em;
  line-height: .9;
}

.hero h1 em {
  color: var(--gold-light);
  font-weight: 400;
}

.hero__lead {
  max-width: 650px;
  margin-bottom: 32px;
  color: rgba(255, 255, 255, .78);
  font-size: clamp(1rem, 1.5vw, 1.2rem);
  line-height: 1.75;
}

.hero__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
}

.hero__proofs {
  display: grid;
  max-width: 660px;
  grid-template-columns: repeat(3, 1fr);
  margin: 52px 0 0;
  padding: 26px 0 0;
  border-top: 1px solid rgba(255, 255, 255, .16);
  list-style: none;
}

.hero__proofs li {
  display: flex;
  flex-direction: column;
  padding-right: 18px;
}

.hero__proofs li + li {
  padding-left: 24px;
  border-left: 1px solid rgba(255, 255, 255, .12);
}

.hero__proofs strong {
  color: var(--gold-light);
  font-family: var(--serif);
  font-size: 1.8rem;
  font-weight: 500;
  line-height: 1;
}

.hero__proofs span {
  margin-top: 7px;
  color: rgba(255, 255, 255, .58);
  font-size: .7rem;
  font-weight: 700;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.hero__card {
  position: relative;
  padding: clamp(28px, 3vw, 42px);
  border: 1px solid rgba(255, 255, 255, .18);
  background: rgba(5, 28, 56, .62);
  box-shadow: var(--shadow);
  backdrop-filter: blur(18px);
}

.hero__card::before {
  position: absolute;
  inset: -1px auto -1px -1px;
  width: 3px;
  background: linear-gradient(var(--gold-light), var(--gold), transparent);
  content: "";
}

.hero__card-label {
  margin-bottom: 18px;
  color: var(--gold-light);
  font-size: .67rem;
  font-weight: 800;
  letter-spacing: .16em;
  text-transform: uppercase;
}

.hero__card h2 {
  margin-bottom: 26px;
  font-family: var(--serif);
  font-size: clamp(1.8rem, 3vw, 2.6rem);
  font-weight: 500;
  line-height: 1.08;
}

.hero__card address {
  display: flex;
  flex-direction: column;
  margin-bottom: 22px;
  color: rgba(255, 255, 255, .72);
  line-height: 1.6;
}

.hero__card address span:last-child {
  margin-top: 7px;
  color: rgba(255, 255, 255, .45);
  font-size: .77rem;
}

.google-place-card {
  position: relative;
  display: block;
  padding: 22px 22px 0;
  overflow: hidden;
  border: 1px solid #dadce0;
  border-radius: 14px;
  color: #202124;
  background:
    radial-gradient(circle at 96% 0, rgba(66, 133, 244, .07), transparent 31%),
    #fff;
  box-shadow:
    0 2px 6px rgba(60, 64, 67, .12),
    0 12px 30px rgba(60, 64, 67, .15);
  font-family: Arial, "Segoe UI", sans-serif;
  transition: box-shadow .25s ease, transform .25s ease;
}

.google-place-card::before {
  position: absolute;
  top: 0;
  right: 0;
  left: 0;
  height: 3px;
  background: linear-gradient(90deg, #4285f4 0 27%, #ea4335 27% 48%, #fbbc05 48% 70%, #34a853 70%);
  content: "";
}

.google-place-card:hover,
.google-place-card:focus-visible {
  box-shadow:
    0 3px 8px rgba(60, 64, 67, .16),
    0 20px 46px rgba(60, 64, 67, .22);
  transform: translateY(-4px);
}

.google-place-card__top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  margin-bottom: 18px;
}

.google-place-card__brand {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  color: #3c4043;
  font-size: .82rem;
  font-weight: 600;
}

.google-place-card__brand > img {
  width: 27px;
  height: 28px;
  object-fit: contain;
}

.google-place-card__name-row {
  display: flex;
  align-items: center;
  gap: 11px;
}

.google-place-card__name-row > img {
  width: 38px;
  height: 38px;
  flex: 0 0 auto;
  object-fit: contain;
  border-radius: 7px;
  box-shadow: 0 4px 12px rgba(3, 27, 55, .12);
}

.google-place-card__name {
  display: block;
  color: #202124;
  font-size: 1.05rem;
  font-weight: 600;
  line-height: 1.3;
}

.google-place-card__category {
  display: block;
  margin-top: 3px;
  color: #70757a;
  font-size: .72rem;
}

.google-place-card__rating {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-top: 17px;
}

.google-place-card__rating > b {
  color: #202124;
  font-size: 2.35rem;
  font-weight: 500;
  letter-spacing: -.04em;
  line-height: 1;
}

.google-place-card__rating > span {
  display: flex;
  flex-direction: column;
  gap: 5px;
}

.google-place-card__rating small {
  color: #5f6368;
  font-size: .7rem;
  font-weight: 400;
}

.google-place-card__stars {
  background: linear-gradient(90deg, #fbbc04 0 92%, #dadce0 92% 100%);
  background-clip: text;
  color: transparent;
  font-size: 1rem;
  letter-spacing: .04em;
  line-height: 1;
  -webkit-background-clip: text;
}

.google-place-card__address {
  display: flex;
  align-items: center;
  gap: 7px;
  margin-top: 17px;
  padding: 11px 12px;
  border-radius: 8px;
  color: #5f6368;
  background: #f8f9fa;
  font-size: .73rem;
}

.google-place-card__address > b {
  color: #1a73e8;
  font-size: 1rem;
  font-weight: 500;
}

.google-place-card__actions {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  margin: 19px -22px 0;
  border-top: 1px solid #e5e7ea;
  color: #1a73e8;
  font-size: .72rem;
  font-weight: 600;
}

.google-place-card__actions > span {
  display: flex;
  min-height: 48px;
  align-items: center;
  justify-content: center;
  gap: 7px;
  padding: 11px 8px;
  transition: background .2s ease;
}

.google-place-card__actions > span + span {
  border-left: 1px solid #e5e7ea;
}

.google-place-card:hover .google-place-card__actions > span,
.google-place-card:focus-visible .google-place-card__actions > span {
  background: #f8fbff;
}

.google-place-card__actions b {
  font-size: .95rem;
  font-weight: 500;
}

.scroll-cue {
  position: absolute;
  z-index: 3;
  bottom: 24px;
  left: 50%;
  display: inline-flex;
  align-items: center;
  gap: 12px;
  color: rgba(255, 255, 255, .58);
  font-size: .65rem;
  font-weight: 800;
  letter-spacing: .13em;
  text-transform: uppercase;
  transform: translateX(-50%);
}

.scroll-cue svg {
  width: 18px;
  height: 18px;
  animation: bob 1.8s ease-in-out infinite;
}

@keyframes bob {
  50% { transform: translateY(5px); }
}

.section-heading {
  margin-bottom: clamp(42px, 6vw, 72px);
}

.section-heading h2,
.method h2,
.faq h2,
.contact h2 {
  margin-bottom: 0;
  color: var(--navy-950);
  font-family: var(--serif);
  font-size: clamp(2.5rem, 5vw, 4.7rem);
  font-weight: 500;
  letter-spacing: -.045em;
  line-height: .98;
}

.section-heading--center {
  max-width: 760px;
  margin-inline: auto;
  text-align: center;
}

.section-heading--center > p:last-child {
  max-width: 650px;
  margin: 22px auto 0;
  color: var(--slate);
}

.section-heading--split {
  display: grid;
  grid-template-columns: minmax(0, 1.15fr) minmax(300px, .65fr);
  align-items: end;
  gap: clamp(40px, 8vw, 120px);
}

.section-heading--split > p {
  margin-bottom: 5px;
  color: var(--slate);
  font-size: 1.04rem;
}

.audiences {
  background:
    linear-gradient(rgba(20, 32, 51, .038) 1px, transparent 1px),
    linear-gradient(90deg, rgba(20, 32, 51, .038) 1px, transparent 1px),
    var(--paper);
  background-size: 50px 50px;
}

.audience-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  box-shadow: var(--shadow);
}

.audience-card {
  position: relative;
  display: flex;
  min-height: 650px;
  align-items: flex-end;
  isolation: isolate;
  overflow: hidden;
}

.audience-card__media,
.audience-card__veil {
  position: absolute;
  inset: 0;
}

.audience-card__media img,
.audience-card__media video {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.audience-card__media video {
  position: absolute;
  inset: 0;
  opacity: 0;
  transition: opacity 1s ease;
}

.audience-card__media video.is-ready {
  opacity: 1;
}

.audience-card__media img {
  transition: transform 1.1s cubic-bezier(.2, .7, .2, 1);
}

.audience-card:hover .audience-card__media img {
  transform: scale(1.04);
}

.audience-card--light .audience-card__veil {
  background: linear-gradient(180deg, rgba(245, 242, 233, .08), rgba(247, 246, 242, .97) 74%);
}

.audience-card--dark .audience-card__veil {
  background: linear-gradient(180deg, rgba(3, 19, 40, .16), rgba(3, 19, 40, .98) 75%);
}

.audience-card__content {
  position: relative;
  z-index: 2;
  width: 100%;
  padding: clamp(32px, 5vw, 64px);
}

.audience-card__index {
  margin-bottom: 15px;
  color: var(--gold-dark);
  font-size: .66rem;
  font-weight: 800;
  letter-spacing: .16em;
  text-transform: uppercase;
}

.audience-card h3 {
  max-width: 540px;
  margin-bottom: 18px;
  font-family: var(--serif);
  font-size: clamp(2rem, 3.5vw, 3.35rem);
  font-weight: 500;
  letter-spacing: -.035em;
  line-height: 1;
}

.audience-card__content > p:not(.audience-card__index) {
  max-width: 520px;
  margin-bottom: 20px;
  color: var(--slate);
}

.audience-card ul {
  display: grid;
  gap: 8px;
  margin: 0 0 30px;
  padding: 0;
  list-style: none;
}

.audience-card li {
  position: relative;
  padding-left: 20px;
  font-size: .84rem;
  font-weight: 650;
}

.audience-card li::before {
  position: absolute;
  top: .65em;
  left: 0;
  width: 8px;
  height: 1px;
  background: var(--gold);
  content: "";
}

.audience-card--dark {
  color: var(--white);
}

.audience-card--dark .audience-card__index {
  color: var(--gold-light);
}

.audience-card--dark .audience-card__content > p:not(.audience-card__index),
.audience-card--dark li {
  color: rgba(255, 255, 255, .7);
}

.journeys {
  padding-block: clamp(90px, 10vw, 140px);
  background:
    linear-gradient(180deg, var(--paper) 0, #fff 52%, #f1eee7 100%);
}

.journey-lab__intro {
  display: grid;
  max-width: none;
  grid-template-columns: minmax(0, 1.25fr) minmax(280px, .65fr);
  align-items: end;
  gap: clamp(40px, 8vw, 110px);
  margin-bottom: clamp(54px, 7vw, 82px);
}

.journey-lab__intro h2 {
  max-width: 680px;
  margin: 0;
  font-family: var(--serif);
  font-size: clamp(3rem, 5.8vw, 5.8rem);
  font-weight: 500;
  letter-spacing: -.055em;
  line-height: .9;
}

.journey-lab__intro .eyebrow {
  grid-column: 1 / -1;
  margin-bottom: -18px;
}

.journey-lab__intro > p:last-child {
  max-width: 440px;
  margin: 0 0 4px;
  color: var(--muted);
  line-height: 1.65;
}

.journey-concept + .journey-concept {
  margin-top: clamp(110px, 15vw, 190px);
}

.journey-concept__header {
  display: grid;
  grid-template-columns: 100px minmax(0, 1fr);
  align-items: end;
  gap: 20px;
  margin-bottom: 24px;
  padding-bottom: 16px;
  border-bottom: 1px solid var(--line);
}

.journey-concept__header > span {
  color: var(--gold-dark);
  font-size: .66rem;
  font-weight: 700;
  letter-spacing: .12em;
  text-transform: uppercase;
}

.journey-concept__header h3 {
  margin: 0;
  font-family: var(--serif);
  font-size: clamp(1.7rem, 3vw, 2.75rem);
  font-weight: 500;
  letter-spacing: -.04em;
}

.route-stack {
  display: grid;
  gap: 14px;
  box-shadow: 0 34px 86px rgba(3, 19, 40, .15);
}

.route-row {
  position: relative;
  display: grid;
  min-height: 320px;
  grid-template-columns: minmax(420px, 45%) minmax(0, 55%);
  isolation: isolate;
  overflow: hidden;
}

.route-row + .route-row {
  border-top: 0;
}

.route-row::before,
.route-row::after {
  position: absolute;
  z-index: -2;
  inset: 0;
  content: "";
}

.route-row--private::before {
  background: url("bg-part-poster-v4.jpg") 78% 45% / cover no-repeat;
  filter: grayscale(.35) saturate(.55);
  opacity: .34;
}

.route-row--business::before {
  background: url("bg-pro-poster.jpg") center 46% / cover no-repeat;
}

.route-row__video {
  position: absolute;
  z-index: -2;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  opacity: 0;
  transition: opacity 1.2s ease;
}

.route-row--private .route-row__video {
  object-position: 78% 45%;
  filter: grayscale(.28) saturate(.68) contrast(.96);
}

.route-row--business .route-row__video {
  object-position: center 46%;
  filter: saturate(.82) contrast(.94);
}

.route-row__video.is-ready {
  opacity: 1;
}

.route-row--private::after {
  z-index: -1;
  background:
    linear-gradient(90deg, rgba(249, 247, 241, .99) 0 38%, rgba(249, 247, 241, .91) 62%, rgba(249, 247, 241, .74) 100%);
}

.route-row--business::after {
  z-index: -1;
  background:
    linear-gradient(90deg, rgba(3, 19, 40, .98) 0 36%, rgba(3, 19, 40, .82) 66%, rgba(3, 19, 40, .9) 100%);
}

.route-row__identity {
  display: flex;
  flex-direction: column;
  justify-content: center;
  min-width: 0;
  padding: clamp(40px, 4.5vw, 54px);
  border: 0;
  border-right: 1px solid rgba(255, 255, 255, .24);
  color: inherit;
  background: transparent;
  text-align: left;
  cursor: pointer;
  transition: background .3s ease;
}

.route-row__identity small {
  color: var(--gold-light);
  font-size: .64rem;
  font-weight: 750;
  letter-spacing: .12em;
  text-transform: uppercase;
}

.route-row__identity strong {
  margin-top: 18px;
  font-family: var(--serif);
  font-size: clamp(2.65rem, 3.5vw, 3.4rem);
  font-weight: 500;
  letter-spacing: -.05em;
  line-height: .94;
  white-space: nowrap;
}

.route-row__identity span {
  max-width: 310px;
  margin-top: 20px;
  color: rgba(255, 255, 255, .64);
  font-size: .82rem;
  line-height: 1.5;
}

.route-row__identity > b {
  display: flex;
  align-items: center;
  gap: 9px;
  margin-top: 26px;
  color: var(--gold-light);
  font-size: .64rem;
  font-style: normal;
  font-weight: 750;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.route-row__identity > b i {
  font-size: .95rem;
  font-style: normal;
  font-weight: 500;
  transition: transform .25s ease;
}

.route-row__identity:hover > b i,
.route-row__identity:focus-visible > b i {
  transform: translateX(5px);
}

.route-row--private {
  color: var(--navy-950);
  border: 1px solid rgba(3, 19, 40, .12);
}

.route-row--private .route-row__identity {
  border-color: rgba(3, 19, 40, .14);
}

.route-row--private .route-row__identity small,
.route-row--private .route-row__identity > b,
.route-row--private .route-row__actions small,
.route-row--private .route-row__actions span {
  color: var(--gold-dark);
}

.route-row--private .route-row__identity span {
  color: rgba(3, 19, 40, .62);
}

.route-row--business {
  color: var(--white);
  border: 1px solid rgba(255, 255, 255, .1);
}

.route-row--private .route-row__identity:hover,
.route-row--private .route-row__identity:focus-visible {
  background: rgba(255, 255, 255, .42);
}

.route-row--business .route-row__identity:hover,
.route-row--business .route-row__identity:focus-visible {
  background: rgba(255, 255, 255, .08);
}

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

.route-row__actions a {
  display: flex;
  min-width: 0;
  flex-direction: column;
  justify-content: center;
  padding: clamp(34px, 3vw, 44px);
  transition: background .3s ease, color .3s ease;
}

.route-row__actions a + a {
  border-left: 1px solid rgba(255, 255, 255, .22);
}

.route-row--private .route-row__actions a + a {
  border-color: rgba(3, 19, 40, .14);
}

.route-row--private .route-row__actions a:hover,
.route-row--private .route-row__actions a:focus-visible {
  background: rgba(212, 167, 78, .14);
}

.route-row--business .route-row__actions a:hover,
.route-row--business .route-row__actions a:focus-visible {
  background: rgba(255, 255, 255, .1);
}

.route-row__actions small,
.route-row__actions span {
  color: var(--gold-light);
  font-size: .66rem;
  font-weight: 700;
  letter-spacing: .07em;
  text-transform: uppercase;
}

.route-row__actions strong {
  margin: 16px 0 28px;
  font-family: var(--serif);
  font-size: clamp(2.05rem, 2.8vw, 3.15rem);
  font-weight: 500;
  letter-spacing: -.045em;
  line-height: .98;
  text-wrap: balance;
}

.route-row__actions span {
  display: flex;
  align-items: center;
  gap: 10px;
  line-height: 1.45;
}

.route-row__actions b {
  font-size: 1rem;
  font-weight: 500;
  transition: transform .25s ease;
}

.route-row__actions a:hover b,
.route-row__actions a:focus-visible b {
  transform: translateX(5px);
}

.journey-dialog {
  width: min(920px, calc(100% - 32px));
  max-width: none;
  max-height: calc(100dvh - 32px);
  margin: auto;
  padding: 0;
  overflow: visible;
  border: 0;
  color: var(--navy-950);
  background: transparent;
}

.journey-dialog::backdrop {
  background: rgba(1, 10, 22, .84);
  backdrop-filter: blur(9px);
}

.journey-dialog[open] {
  animation: journey-dialog-in .28s ease both;
}

.journey-dialog__panel {
  position: relative;
  max-height: calc(100dvh - 32px);
  padding: clamp(34px, 6vw, 72px);
  overflow-y: auto;
  background:
    linear-gradient(135deg, rgba(255, 255, 255, .98), rgba(244, 240, 230, .98));
  box-shadow: 0 40px 120px rgba(0, 0, 0, .38);
}

.journey-dialog.is-business {
  color: var(--white);
}

.journey-dialog.is-business .journey-dialog__panel {
  background:
    radial-gradient(circle at 86% 8%, rgba(212, 167, 78, .14), transparent 30%),
    linear-gradient(145deg, #0b2d55, #031328 70%);
}

.journey-dialog__close {
  position: absolute;
  top: 20px;
  right: 22px;
  display: grid;
  width: 44px;
  height: 44px;
  place-items: center;
  padding: 0;
  border: 1px solid currentColor;
  border-radius: 50%;
  color: inherit;
  background: transparent;
  font-size: 1.7rem;
  font-weight: 300;
  line-height: 1;
  cursor: pointer;
  opacity: .62;
}

.journey-dialog__close:hover,
.journey-dialog__close:focus-visible {
  opacity: 1;
}

.journey-dialog h2 {
  max-width: 680px;
  margin: 10px 0 0;
  font-family: var(--serif);
  font-size: clamp(3rem, 7vw, 6rem);
  font-weight: 500;
  letter-spacing: -.055em;
  line-height: .88;
}

.journey-dialog__intro {
  max-width: 520px;
  margin: 24px 0 38px;
  color: rgba(3, 19, 40, .64);
}

.journey-dialog.is-business .journey-dialog__intro {
  color: rgba(255, 255, 255, .66);
}

.journey-dialog__choices {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
}

.journey-dialog__choice {
  position: relative;
  display: flex;
  min-height: 250px;
  flex-direction: column;
  justify-content: center;
  isolation: isolate;
  padding: clamp(28px, 4vw, 42px);
  overflow: hidden;
  border: 1px solid rgba(3, 19, 40, .14);
  background: var(--white);
  box-shadow: 0 18px 50px rgba(3, 19, 40, .08);
  transition: transform .25s ease, border-color .25s ease, box-shadow .25s ease, background .25s ease;
}

.journey-dialog__choice::before {
  position: absolute;
  z-index: -1;
  inset: 0;
  background:
    linear-gradient(105deg, rgba(250, 248, 242, .94), rgba(250, 248, 242, .78));
  content: "";
  transition: background .35s ease;
}

.journey-dialog.is-private .journey-dialog__choice {
  background: url("bg-part-poster-v4.jpg") center / cover no-repeat;
}

.journey-dialog.is-business .journey-dialog__choice {
  border-color: rgba(255, 255, 255, .18);
  background: url("bg-pro-poster.jpg") center / cover no-repeat;
  box-shadow: none;
}

.journey-dialog.is-business .journey-dialog__choice::before {
  background:
    linear-gradient(105deg, rgba(3, 19, 40, .9), rgba(3, 19, 40, .7));
}

.journey-dialog__video {
  position: absolute;
  z-index: -2;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  filter: saturate(.78) contrast(.95);
  opacity: 0;
  transform: scale(1.025);
  transition: opacity 1s ease, transform 7s ease;
}

.journey-dialog__video--new {
  object-position: center;
}

.journey-dialog__video--existing {
  object-position: center;
}

.journey-dialog__video.is-ready {
  opacity: 1;
}

.journey-dialog__choice:hover,
.journey-dialog__choice:focus-visible {
  z-index: 1;
  border-color: var(--gold);
  background: rgba(255, 255, 255, .86);
  box-shadow:
    0 0 0 1px rgba(212, 167, 78, .42),
    0 0 44px rgba(212, 167, 78, .3),
    0 24px 60px rgba(3, 19, 40, .16);
  transform: translateY(-5px);
}

.journey-dialog__choice:hover::before,
.journey-dialog__choice:focus-visible::before {
  background:
    linear-gradient(105deg, rgba(250, 248, 242, .88), rgba(250, 248, 242, .64));
}

.journey-dialog.is-business .journey-dialog__choice:hover::before,
.journey-dialog.is-business .journey-dialog__choice:focus-visible::before {
  background:
    linear-gradient(105deg, rgba(3, 19, 40, .84), rgba(3, 19, 40, .56));
}

.journey-dialog__choice:hover .journey-dialog__video,
.journey-dialog__choice:focus-visible .journey-dialog__video {
  transform: scale(1.06);
}

.journey-dialog.is-business .journey-dialog__choice:hover,
.journey-dialog.is-business .journey-dialog__choice:focus-visible {
  background: rgba(255, 255, 255, .1);
}

.journey-dialog__choice--primary {
  animation: choice-halo 2.4s ease-in-out infinite;
}

.journey-dialog__choice small {
  color: var(--gold-dark);
  font-size: .64rem;
  font-weight: 750;
  letter-spacing: .1em;
  text-transform: uppercase;
}

.journey-dialog.is-business .journey-dialog__choice small {
  color: var(--gold-light);
}

.journey-dialog__choice strong {
  margin: 14px 0 20px;
  font-family: var(--serif);
  font-size: clamp(2.1rem, 4vw, 3.4rem);
  font-weight: 500;
  letter-spacing: -.045em;
  line-height: .95;
}

.journey-dialog__choice span {
  max-width: 240px;
  color: rgba(3, 19, 40, .62);
  font-size: .78rem;
  line-height: 1.5;
}

.journey-dialog.is-business .journey-dialog__choice span {
  color: rgba(255, 255, 255, .63);
}

.journey-dialog__choice > b {
  position: absolute;
  right: 28px;
  bottom: 24px;
  color: var(--gold-dark);
  font-size: 1.2rem;
  font-weight: 500;
}

.journey-dialog.is-business .journey-dialog__choice > b {
  color: var(--gold-light);
}

.journey-dialog__switch {
  display: block;
  margin: 30px auto 0;
  padding: 8px 3px;
  border: 0;
  border-bottom: 1px solid currentColor;
  color: inherit;
  background: transparent;
  font-size: .76rem;
  font-weight: 650;
  cursor: pointer;
  opacity: .68;
}

.journey-dialog__switch:hover,
.journey-dialog__switch:focus-visible {
  opacity: 1;
}

@keyframes journey-dialog-in {
  from {
    opacity: 0;
    transform: translateY(16px) scale(.985);
  }
}

@keyframes choice-halo {
  50% {
    border-color: rgba(212, 167, 78, .66);
    box-shadow:
      0 0 0 1px rgba(212, 167, 78, .2),
      0 0 34px rgba(212, 167, 78, .18),
      0 20px 55px rgba(3, 19, 40, .1);
  }
}

.topic-dialog {
  width: min(620px, 100%);
  max-width: none;
  height: 100dvh;
  max-height: none;
  margin: 0 0 0 auto;
  padding: 0;
  overflow: hidden;
  border: 0;
  color: var(--white);
  background: transparent;
}

.topic-dialog::backdrop {
  background: rgba(1, 10, 22, .78);
  backdrop-filter: blur(7px);
}

.topic-dialog[open] {
  animation: topic-dialog-in .34s ease both;
}

.topic-dialog__panel {
  position: relative;
  display: flex;
  height: 100%;
  flex-direction: column;
  padding: clamp(52px, 7vw, 78px);
  overflow-y: auto;
  background:
    radial-gradient(circle at 90% 12%, rgba(212, 167, 78, .17), transparent 28%),
    linear-gradient(155deg, var(--navy-800), var(--navy-950) 68%);
  box-shadow: -30px 0 100px rgba(0, 0, 0, .28);
}

.topic-dialog__close {
  position: absolute;
  top: 22px;
  right: 24px;
  display: grid;
  width: 44px;
  height: 44px;
  place-items: center;
  padding: 0;
  border: 1px solid rgba(255, 255, 255, .5);
  border-radius: 50%;
  color: var(--white);
  background: transparent;
  font-size: 1.65rem;
  font-weight: 300;
  cursor: pointer;
  opacity: .7;
}

.topic-dialog__close:hover,
.topic-dialog__close:focus-visible {
  opacity: 1;
}

.topic-dialog h2 {
  margin: 12px 0 0;
  font-family: var(--serif);
  font-size: clamp(3rem, 6vw, 5rem);
  font-weight: 500;
  letter-spacing: -.055em;
  line-height: .9;
  text-wrap: balance;
}

.topic-dialog__lead {
  max-width: 460px;
  margin: 28px 0 42px;
  color: rgba(255, 255, 255, .68);
  font-size: 1rem;
  line-height: 1.7;
}

.topic-dialog__content {
  padding-top: 32px;
  border-top: 1px solid rgba(255, 255, 255, .17);
}

.topic-dialog__content h3 {
  margin: 0 0 18px;
  font-size: .7rem;
  font-weight: 750;
  letter-spacing: .11em;
  text-transform: uppercase;
}

.topic-dialog__content ul {
  display: grid;
  gap: 0;
  margin: 0;
  padding: 0;
  list-style: none;
}

.topic-dialog__content li {
  position: relative;
  padding: 15px 0 15px 28px;
  border-bottom: 1px solid rgba(255, 255, 255, .11);
  color: rgba(255, 255, 255, .76);
}

.topic-dialog__content li::before {
  position: absolute;
  top: 24px;
  left: 2px;
  width: 8px;
  height: 8px;
  border: 1px solid var(--gold-light);
  border-radius: 50%;
  content: "";
}

.topic-dialog__actions {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 20px;
  margin-top: auto;
  padding-top: 42px;
}

.topic-dialog__actions > button {
  padding: 9px 1px;
  border: 0;
  border-bottom: 1px solid rgba(255, 255, 255, .5);
  color: rgba(255, 255, 255, .7);
  background: transparent;
  font-weight: 650;
  cursor: pointer;
}

@keyframes topic-dialog-in {
  from {
    opacity: .6;
    transform: translateX(48px);
  }
}

.topic-dialog__gan {
  display: grid;
  grid-template-columns: 42px 1fr;
  gap: 4px 14px;
  align-items: center;
  margin-top: 24px;
  padding: 18px;
  border: 1px solid rgba(212, 167, 78, .3);
  background: rgba(255, 255, 255, .055);
}

.topic-dialog__gan[hidden] {
  display: none;
}

.topic-dialog__gan img {
  grid-row: 1 / 3;
  width: 42px;
  height: 42px;
  border-radius: 6px;
  object-fit: contain;
}

.topic-dialog__gan p {
  display: grid;
  gap: 3px;
  margin: 0;
}

.topic-dialog__gan strong {
  color: var(--gold-light);
  font-size: .7rem;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.topic-dialog__gan span {
  color: rgba(255, 255, 255, .72);
  font-size: .78rem;
  line-height: 1.5;
}

.topic-dialog__gan > a {
  grid-column: 2;
  width: fit-content;
  margin-top: 5px;
  color: var(--white);
  font-size: .72rem;
  font-weight: 650;
  text-decoration: underline;
  text-underline-offset: 4px;
}

.retirement-dialog {
  width: min(1180px, calc(100% - 32px));
  max-width: none;
  height: min(790px, calc(100dvh - 32px));
  max-height: none;
  padding: 0;
  border: 0;
  color: var(--navy-950);
  background: transparent;
  overflow: hidden;
}

.retirement-dialog::backdrop {
  background: rgba(1, 10, 22, .84);
  backdrop-filter: blur(9px);
}

.retirement-dialog[open] {
  animation: retirement-dialog-in .38s cubic-bezier(.2, .7, .2, 1) both;
}

@keyframes retirement-dialog-in {
  from {
    opacity: 0;
    transform: translateY(28px) scale(.985);
  }
}

.retirement-dialog__panel {
  position: relative;
  display: grid;
  grid-template-columns: minmax(300px, 35%) 1fr;
  width: 100%;
  height: 100%;
  overflow: hidden;
  background: var(--paper);
  box-shadow: 0 38px 100px rgba(0, 0, 0, .35);
}

.retirement-dialog__close {
  position: absolute;
  z-index: 12;
  top: 20px;
  right: 22px;
  display: grid;
  width: 42px;
  height: 42px;
  padding: 0;
  place-items: center;
  border: 1px solid rgba(6, 28, 56, .24);
  border-radius: 50%;
  color: var(--navy-900);
  background: rgba(255, 255, 255, .82);
  font-size: 1.6rem;
  font-weight: 300;
  line-height: 1;
  cursor: pointer;
  transition: color .25s, background .25s, transform .25s;
}

.retirement-dialog__close:hover,
.retirement-dialog__close:focus-visible {
  color: var(--white);
  background: var(--navy-900);
  transform: rotate(6deg);
}

.retirement-dialog__aside {
  position: relative;
  display: flex;
  flex-direction: column;
  padding: clamp(30px, 3.6vw, 48px) clamp(28px, 4vw, 54px) 26px;
  color: var(--white);
  background:
    radial-gradient(circle at 20% 10%, rgba(212, 167, 78, .2), transparent 30%),
    linear-gradient(155deg, var(--navy-800), var(--navy-950) 72%);
  overflow-x: hidden;
  overflow-y: auto;
}

.retirement-dialog__aside::after {
  position: absolute;
  right: -90px;
  bottom: -110px;
  width: 310px;
  height: 310px;
  border: 1px solid rgba(212, 167, 78, .18);
  border-radius: 50%;
  box-shadow:
    0 0 0 38px rgba(212, 167, 78, .035),
    0 0 0 78px rgba(212, 167, 78, .02);
  content: "";
  pointer-events: none;
}

.retirement-dialog__gan-logo {
  width: 52px;
  height: 52px;
  margin-bottom: 20px;
  border-radius: 8px;
  box-shadow: 0 12px 30px rgba(0, 0, 0, .25);
}

.retirement-dialog__aside .eyebrow {
  color: var(--gold-light);
}

.retirement-dialog__aside h2 {
  max-width: 390px;
  margin: 12px 0 18px;
  font-family: var(--serif);
  font-size: clamp(2.2rem, 3.25vw, 3.15rem);
  font-weight: 500;
  line-height: .95;
  text-wrap: balance;
}

.retirement-dialog__aside > p:not(.eyebrow, .retirement-dialog__source) {
  max-width: 380px;
  margin: 0;
  color: rgba(255, 255, 255, .68);
  font-size: .82rem;
  line-height: 1.5;
}

.retirement-dialog__steps {
  position: relative;
  z-index: 1;
  display: grid;
  gap: 0;
  margin: auto 0 16px;
  padding: 18px 0 0;
  list-style: none;
}

.retirement-dialog__steps li {
  display: flex;
  align-items: center;
  gap: 13px;
  padding: 5px 0;
  color: rgba(255, 255, 255, .38);
  font-size: .7rem;
  font-weight: 700;
  letter-spacing: .08em;
  text-transform: uppercase;
  transition: color .3s, transform .3s;
}

.retirement-dialog__steps li span {
  display: grid;
  width: 26px;
  height: 26px;
  place-items: center;
  border: 1px solid rgba(255, 255, 255, .18);
  border-radius: 50%;
  font-size: .58rem;
}

.retirement-dialog__steps li.is-active {
  color: var(--white);
  transform: translateX(5px);
}

.retirement-dialog__steps li.is-active span {
  border-color: var(--gold);
  color: var(--navy-950);
  background: var(--gold);
}

.retirement-dialog__steps li.is-complete {
  color: rgba(255, 255, 255, .68);
}

.retirement-dialog__steps li.is-complete span {
  border-color: rgba(212, 167, 78, .55);
  color: var(--gold-light);
}

.retirement-dialog__source {
  position: relative;
  z-index: 1;
  margin: 0;
  color: rgba(255, 255, 255, .48);
  font-size: .67rem;
  line-height: 1.5;
}

.retirement-dialog__source a {
  color: var(--white);
  text-decoration: underline;
  text-underline-offset: 3px;
}

.retirement-dialog__body {
  min-width: 0;
  height: 100%;
  padding: clamp(58px, 7vw, 82px) clamp(28px, 6vw, 76px) 34px;
  background:
    linear-gradient(rgba(255, 255, 255, .72), rgba(255, 255, 255, .72)),
    radial-gradient(circle at 80% 0, rgba(212, 167, 78, .13), transparent 32%),
    var(--paper);
  overflow: auto;
  scrollbar-width: thin;
}

.retirement-dialog__body form {
  display: flex;
  min-height: 100%;
  flex-direction: column;
}

.retirement-dialog__body form[hidden] {
  display: none;
}

.retirement-dialog__mobile-progress {
  display: none;
}

.retirement-step[hidden],
.retirement-success[hidden] {
  display: none;
}

.retirement-step {
  animation: retirement-step-in .34s ease both;
}

@keyframes retirement-step-in {
  from {
    opacity: 0;
    transform: translateX(16px);
  }
}

.retirement-step__number {
  margin: 0 0 12px;
  color: var(--gold-dark);
  font-size: .68rem;
  font-weight: 800;
  letter-spacing: .12em;
  text-transform: uppercase;
}

.retirement-step h3,
.retirement-success h3 {
  max-width: 690px;
  margin: 0;
  font-family: var(--serif);
  font-size: clamp(2rem, 4vw, 3.45rem);
  font-weight: 500;
  line-height: 1;
  text-wrap: balance;
}

.retirement-step__intro {
  max-width: 650px;
  margin: 17px 0 28px;
  color: var(--slate);
  font-size: .87rem;
  line-height: 1.55;
}

.retirement-step fieldset {
  margin: 0 0 25px;
  padding: 0;
  border: 0;
}

.retirement-step legend {
  width: 100%;
  margin-bottom: 12px;
  color: var(--navy-800);
  font-size: .75rem;
  font-weight: 750;
}

.retirement-options {
  display: grid;
  gap: 9px;
}

.retirement-options--three {
  grid-template-columns: repeat(3, 1fr);
}

.retirement-options--compact {
  grid-template-columns: repeat(4, 1fr);
}

.retirement-options--stack {
  grid-template-columns: repeat(2, 1fr);
}

.retirement-options--checks {
  grid-template-columns: repeat(3, 1fr);
}

.retirement-options--checks label > span {
  flex-direction: column;
  gap: 2px;
}

.retirement-step legend small {
  color: var(--slate);
  font-weight: 500;
}

.retirement-options label {
  position: relative;
  min-width: 0;
  cursor: pointer;
}

.retirement-options input {
  position: absolute;
  width: 1px;
  height: 1px;
  opacity: 0;
  pointer-events: none;
}

.retirement-options label > span {
  display: flex;
  min-height: 64px;
  height: 100%;
  align-items: center;
  justify-content: center;
  padding: 13px 14px;
  border: 1px solid rgba(6, 28, 56, .16);
  color: var(--navy-800);
  background: rgba(255, 255, 255, .72);
  font-size: .76rem;
  font-weight: 700;
  line-height: 1.25;
  text-align: center;
  transition: border .22s, color .22s, background .22s, box-shadow .22s, transform .22s;
}

.retirement-options--stack label > span {
  min-height: 77px;
  align-items: flex-start;
  flex-direction: column;
  padding: 14px 17px;
  text-align: left;
}

.retirement-options label > span small {
  display: block;
  margin-top: 3px;
  color: var(--slate);
  font-size: .66rem;
  font-weight: 500;
  line-height: 1.3;
}

.retirement-options input:checked + span {
  border-color: var(--gold-dark);
  color: var(--navy-950);
  background: rgba(212, 167, 78, .13);
  box-shadow: inset 0 0 0 1px var(--gold-dark), 0 9px 24px rgba(6, 28, 56, .08);
  transform: translateY(-1px);
}

.retirement-options input:focus-visible + span {
  outline: 3px solid rgba(48, 105, 188, .36);
  outline-offset: 2px;
}

.retirement-options input:checked + span::after {
  position: absolute;
  top: 8px;
  right: 9px;
  display: grid;
  width: 18px;
  height: 18px;
  place-items: center;
  border-radius: 50%;
  color: var(--white);
  background: var(--gold-dark);
  content: "✓";
  font-size: .62rem;
}

.retirement-priority-list {
  display: grid;
  gap: 8px;
}

.retirement-priority {
  display: grid;
  grid-template-columns: 1fr auto;
  min-width: 0;
  border: 1px solid rgba(6, 28, 56, .16);
  background: rgba(255, 255, 255, .72);
  transition: border-color .22s, background .22s, box-shadow .22s, transform .22s;
}

.retirement-priority:hover {
  border-color: rgba(6, 28, 56, .34);
}

.retirement-priority.is-selected {
  border-color: var(--gold-dark);
  background: rgba(212, 167, 78, .13);
  box-shadow: inset 0 0 0 1px var(--gold-dark), 0 8px 20px rgba(6, 28, 56, .07);
}

.retirement-priority label {
  display: grid;
  grid-template-columns: 38px 1fr;
  gap: 13px;
  min-width: 0;
  align-items: center;
  padding: 10px 13px;
  cursor: pointer;
}

.retirement-priority input {
  position: absolute;
  width: 1px;
  height: 1px;
  opacity: 0;
}

.retirement-priority label:has(input:focus-visible) {
  outline: 3px solid rgba(48, 105, 188, .36);
  outline-offset: 2px;
}

.retirement-priority__rank {
  display: grid;
  width: 32px;
  height: 32px;
  place-items: center;
  border: 1px solid rgba(6, 28, 56, .22);
  border-radius: 50%;
  color: var(--slate);
  font-size: .76rem;
  font-weight: 800;
  transition: color .22s, border-color .22s, background .22s;
}

.retirement-priority.is-selected .retirement-priority__rank {
  border-color: var(--gold-dark);
  color: var(--white);
  background: var(--gold-dark);
}

.retirement-priority__copy {
  display: grid;
  gap: 2px;
  min-width: 0;
  color: var(--navy-900);
  font-size: .76rem;
  line-height: 1.25;
}

.retirement-priority__copy small {
  color: var(--slate);
  font-size: .65rem;
}

.retirement-priority__controls {
  display: none;
  grid-template-columns: repeat(2, 34px);
  align-items: stretch;
  border-left: 1px solid rgba(6, 28, 56, .12);
}

.retirement-priority.is-selected .retirement-priority__controls {
  display: grid;
}

.retirement-priority__controls button {
  border: 0;
  border-left: 1px solid rgba(6, 28, 56, .1);
  color: var(--navy-800);
  background: transparent;
  font-size: .85rem;
  cursor: pointer;
}

.retirement-priority__controls button:hover:not(:disabled),
.retirement-priority__controls button:focus-visible {
  color: var(--white);
  background: var(--navy-800);
}

.retirement-priority__controls button:disabled {
  opacity: .25;
  cursor: default;
}

.retirement-priority__status {
  min-height: 18px;
  margin: 7px 0 0;
  color: var(--slate);
  font-size: .66rem;
}

.retirement-field-error {
  min-height: 18px;
  margin: 7px 0 0;
  color: #a22b2b;
  font-size: .7rem;
  font-weight: 650;
}

.retirement-fields {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 16px;
  margin-top: 28px;
}

.retirement-fields label {
  display: grid;
  gap: 7px;
}

.retirement-fields label > span {
  color: var(--navy-800);
  font-size: .7rem;
  font-weight: 750;
}

.retirement-fields label > span small {
  color: var(--slate);
  font-weight: 500;
}

.retirement-fields input,
.retirement-fields textarea {
  width: 100%;
  padding: 12px 13px;
  border: 1px solid rgba(6, 28, 56, .2);
  border-radius: 0;
  color: var(--navy-950);
  background: rgba(255, 255, 255, .78);
  font: inherit;
  font-size: .82rem;
  outline: none;
  transition: border .2s, box-shadow .2s;
}

.retirement-fields input {
  min-height: 46px;
}

.retirement-fields textarea {
  resize: vertical;
}

.retirement-fields input:focus,
.retirement-fields textarea:focus {
  border-color: var(--gold-dark);
  box-shadow: 0 0 0 3px rgba(212, 167, 78, .16);
}

.retirement-fields__wide {
  grid-column: 1 / -1;
}

.retirement-privacy {
  margin: 4px 0 0;
  color: var(--slate);
  font-size: .66rem;
  line-height: 1.45;
}

.retirement-dialog__navigation {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 24px;
  margin-top: auto;
  padding-top: 26px;
}

.retirement-back {
  padding: 10px 0;
  border: 0;
  border-bottom: 1px solid var(--navy-700);
  color: var(--navy-800);
  background: transparent;
  font-size: .75rem;
  font-weight: 750;
  cursor: pointer;
}

.retirement-back[hidden],
[data-retirement-next][hidden],
[data-retirement-submit][hidden] {
  display: none;
}

.retirement-success {
  animation: retirement-step-in .4s ease both;
}

.retirement-success > p:not(.retirement-step__number, .retirement-success__status, .retirement-success__note) {
  max-width: 650px;
  margin: 18px 0 24px;
  color: var(--slate);
}

.retirement-summary {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 0;
  margin: 24px 0;
  border-top: 1px solid var(--line);
  border-left: 1px solid var(--line);
}

.retirement-summary p {
  display: grid;
  gap: 4px;
  margin: 0;
  padding: 14px 16px;
  border-right: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
}

.retirement-summary small {
  color: var(--slate);
  font-size: .62rem;
  font-weight: 750;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.retirement-summary strong {
  color: var(--navy-900);
  font-size: .78rem;
  line-height: 1.4;
}

.retirement-success__actions {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 12px;
}

.retirement-success__actions > a:not(.button) {
  color: var(--navy-800);
  font-size: .75rem;
  font-weight: 750;
  text-decoration: underline;
  text-underline-offset: 4px;
}

.retirement-success__status {
  min-height: 20px;
  margin: 12px 0 0;
  color: #18733b;
  font-size: .72rem;
  font-weight: 700;
}

.retirement-success__note {
  max-width: 680px;
  margin: 24px 0 0;
  padding-top: 18px;
  border-top: 1px solid var(--line);
  color: var(--slate);
  font-size: .66rem;
  line-height: 1.5;
}

.intent-board {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  overflow: hidden;
  box-shadow: 0 28px 70px rgba(3, 19, 40, .14);
}

.intent-column {
  min-width: 0;
  padding: clamp(30px, 5vw, 64px);
}

.intent-column--new {
  background: var(--white);
}

.intent-column--existing {
  color: var(--white);
  background:
    radial-gradient(circle at 100% 0, rgba(212, 167, 78, .16), transparent 38%),
    var(--navy-950);
}

.intent-column__heading {
  min-height: 180px;
}

.intent-column__heading small {
  color: var(--gold-dark);
  font-size: .68rem;
  font-weight: 700;
  letter-spacing: .1em;
  text-transform: uppercase;
}

.intent-column--existing .intent-column__heading small {
  color: var(--gold-light);
}

.intent-column__heading h4 {
  margin: 18px 0 0;
  font-family: var(--serif);
  font-size: clamp(3rem, 5vw, 5.1rem);
  font-weight: 500;
  letter-spacing: -.055em;
  line-height: .9;
}

.intent-column__choices {
  border-top: 1px solid currentColor;
}

.intent-column__choices a {
  display: grid;
  min-height: 132px;
  grid-template-columns: 60px minmax(0, 1fr);
  align-content: center;
  column-gap: 18px;
  padding: 20px 6px;
  border-bottom: 1px solid currentColor;
  transition: padding .25s ease, background .25s ease;
}

.intent-column__choices a:hover,
.intent-column__choices a:focus-visible {
  padding-inline: 18px;
  background: rgba(212, 167, 78, .1);
}

.intent-column__choices span {
  grid-row: span 2;
  align-self: center;
  color: var(--gold-dark);
  font-family: var(--serif);
  font-size: 1.45rem;
}

.intent-column--existing .intent-column__choices span {
  color: var(--gold-light);
}

.intent-column__choices strong {
  font-size: clamp(1.15rem, 2vw, 1.55rem);
  font-weight: 600;
}

.intent-column__choices small {
  margin-top: 8px;
  opacity: .62;
  font-size: .72rem;
}

.portal-stack {
  display: grid;
  gap: 12px;
}

.portal {
  position: relative;
  display: grid;
  min-height: 310px;
  grid-template-columns: minmax(260px, .9fr) minmax(0, 1.25fr);
  align-items: stretch;
  isolation: isolate;
  overflow: hidden;
  color: var(--white);
}

.portal::before,
.portal::after {
  position: absolute;
  z-index: -2;
  inset: 0;
  content: "";
}

.portal--private::before {
  background: url("bg-part-poster-v4.jpg") center 42% / cover no-repeat;
}

.portal--business::before {
  background: url("bg-pro-poster.jpg") center 42% / cover no-repeat;
}

.portal::after {
  z-index: -1;
  background: linear-gradient(90deg, rgba(3, 19, 40, .88), rgba(3, 19, 40, .64));
}

.portal__identity {
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: clamp(34px, 5vw, 66px);
}

.portal__identity small {
  color: var(--gold-light);
  font-size: .68rem;
  font-weight: 700;
  letter-spacing: .11em;
  text-transform: uppercase;
}

.portal__identity strong {
  margin-top: 12px;
  font-family: var(--serif);
  font-size: clamp(3.2rem, 6vw, 6.2rem);
  font-weight: 500;
  letter-spacing: -.06em;
  line-height: .85;
}

.portal nav {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  border-left: 1px solid rgba(255, 255, 255, .24);
}

.portal nav a {
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: clamp(28px, 4vw, 48px);
  font-size: clamp(1rem, 1.8vw, 1.35rem);
  font-weight: 600;
  transition: background .3s ease;
}

.portal nav a + a {
  border-left: 1px solid rgba(255, 255, 255, .24);
}

.portal nav a:hover,
.portal nav a:focus-visible {
  background: rgba(3, 19, 40, .5);
}

.portal nav span {
  margin-bottom: 14px;
  color: var(--gold-light);
  font-size: .64rem;
  letter-spacing: .09em;
  text-transform: uppercase;
}

.journey-board {
  display: grid;
  min-height: 580px;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  overflow: hidden;
  background: var(--navy-950);
  box-shadow: 0 30px 80px rgba(3, 19, 40, .18);
}

.journey-lane {
  position: relative;
  min-width: 0;
  isolation: isolate;
  overflow: hidden;
}

.journey-lane + .journey-lane {
  border-left: 1px solid rgba(255, 255, 255, .28);
}

.journey-lane__media,
.journey-lane__veil {
  position: absolute;
  inset: 0;
}

.journey-lane__media {
  z-index: -2;
}

.journey-lane__media img,
.journey-lane__media video {
  position: absolute;
  width: 100%;
  height: 100%;
  inset: 0;
  object-fit: cover;
  transition: filter .7s ease, transform 1.1s cubic-bezier(.2, .7, .2, 1);
}

.journey-lane__media video {
  z-index: 1;
}

.journey-lane__veil {
  z-index: -1;
  background:
    linear-gradient(180deg, rgba(3, 19, 40, .28), rgba(3, 19, 40, .78)),
    linear-gradient(90deg, rgba(3, 19, 40, .22), transparent 60%);
  transition: background .5s ease;
}

.journey-lane--business .journey-lane__veil {
  background:
    linear-gradient(180deg, rgba(3, 19, 40, .46), rgba(3, 19, 40, .9)),
    linear-gradient(90deg, rgba(3, 19, 40, .32), transparent 60%);
}

.journey-lane__title {
  position: absolute;
  z-index: 3;
  top: 25px;
  left: 50%;
  width: max-content;
  max-width: calc(100% - 40px);
  margin: 0;
  color: var(--white);
  font-family: var(--sans);
  font-size: clamp(.72rem, 1vw, .86rem);
  font-weight: 700;
  letter-spacing: .08em;
  text-align: center;
  text-transform: uppercase;
  transform: translateX(-50%);
}

.journey-lane__title span {
  margin-right: 9px;
  color: var(--gold-light);
  font-size: .66rem;
  letter-spacing: .12em;
}

.journey-lane__options {
  position: relative;
  z-index: 2;
  display: grid;
  min-height: 580px;
  grid-template-rows: repeat(2, minmax(0, 1fr));
}

.journey-option {
  position: relative;
  display: flex;
  min-width: 0;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 68px 28px 32px;
  overflow: hidden;
  color: var(--white);
  border-bottom: 1px solid rgba(255, 255, 255, .22);
  transition: background .4s ease, opacity .35s ease;
  text-align: center;
}

.journey-option::before,
.journey-option::after {
  position: absolute;
  content: "";
  pointer-events: none;
}

.journey-option::before {
  z-index: -1;
  inset: 0;
  background: linear-gradient(90deg, rgba(3, 19, 40, .2), rgba(3, 19, 40, .06));
  opacity: .36;
  transition: opacity .4s ease;
}

.journey-option::after {
  bottom: 0;
  left: 0;
  width: 0;
  height: 3px;
  background: var(--gold);
  transition: width .55s cubic-bezier(.2, .7, .2, 1);
}

.journey-option:hover,
.journey-option:focus-visible {
  background: rgba(3, 19, 40, .32);
}

.journey-option:hover::before,
.journey-option:focus-visible::before {
  opacity: 1;
}

.journey-option:hover::after,
.journey-option:focus-visible::after {
  width: 100%;
}

.journey-lane:has(.journey-option:hover) .journey-lane__media img,
.journey-lane:has(.journey-option:hover) .journey-lane__media video {
  filter: brightness(1.08) saturate(.88);
  transform: scale(1.025);
}

.journey-option__status {
  margin-bottom: 14px;
  color: var(--gold-light);
  font-size: .68rem;
  font-weight: 700;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.journey-option strong {
  max-width: 470px;
  font-family: var(--serif);
  font-size: clamp(2.35rem, 3.3vw, 3.35rem);
  font-weight: 500;
  letter-spacing: -.04em;
  line-height: .96;
}

.journey-option__cta {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  margin-top: 22px;
  padding-bottom: 5px;
  border-bottom: 1px solid rgba(212, 167, 78, .7);
  font-size: .72rem;
  font-weight: 700;
  letter-spacing: .045em;
  text-transform: uppercase;
}

.journey-option__cta span {
  color: var(--gold-light);
  transition: transform .25s ease;
}

.journey-option:hover .journey-option__cta span,
.journey-option:focus-visible .journey-option__cta span {
  transform: translateX(5px);
}

.services--private {
  background: var(--white);
}

.coverage-explorer {
  display: grid;
  width: 100%;
  min-width: 0;
  max-width: 100%;
  grid-template-columns: minmax(0, 1fr) 330px;
  align-items: stretch;
  margin-bottom: clamp(52px, 7vw, 90px);
  overflow: visible;
  color: var(--white);
  background: var(--navy-950);
  box-shadow: var(--shadow);
}

.coverage-explorer__stage {
  --callout-x: 64%;
  --callout-y: 50%;
  --connector-length: 72px;
  position: relative;
  z-index: 1;
  height: 100%;
  min-width: 0;
  min-height: 100%;
  isolation: isolate;
  overflow: visible;
  background: #d4f0f2;
}

.coverage-explorer__media {
  position: absolute;
  z-index: 0;
  inset: 0;
  overflow: hidden;
  background: #d4f0f2;
}

.coverage-explorer__media > img,
.coverage-map,
.coverage-explorer__veil {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
}

.coverage-explorer__media > img {
  z-index: 0;
  object-fit: contain;
  filter: none;
  transform: scale(1.08) translateX(3%);
  transition: filter .4s ease, transform .4s ease;
}

.coverage-explorer__veil {
  z-index: 1;
  pointer-events: none;
  background:
    radial-gradient(circle at var(--callout-x) var(--callout-y), transparent 0 9%, rgba(3, 19, 40, .08) 20%, rgba(3, 19, 40, .43) 62%),
    linear-gradient(90deg, rgba(3, 19, 40, .18), transparent 24%);
  opacity: 0;
  transition: background .35s ease, opacity .25s ease;
}

.coverage-map {
  z-index: 2;
  overflow: visible;
  transform: scale(1.08) translateX(3%);
  transform-origin: center;
  transition: transform .4s ease;
}

.coverage-explorer__stage.has-selection .coverage-explorer__veil {
  opacity: 1;
}

.coverage-zone {
  cursor: pointer;
  outline: none;
}

.coverage-zone image {
  opacity: 0;
  pointer-events: none;
  filter: brightness(1.3) contrast(1.18) saturate(.9);
  transition: opacity .28s ease;
}

.coverage-zone__outline {
  fill: rgba(255, 255, 255, .08);
  stroke: transparent;
  stroke-linejoin: round;
  stroke-width: 3;
  vector-effect: non-scaling-stroke;
  transition: fill .25s ease, stroke .25s ease;
}

.coverage-zone__hit {
  fill: transparent;
  stroke: transparent;
  stroke-width: 20;
  vector-effect: non-scaling-stroke;
  pointer-events: all;
}

.coverage-zone:hover image,
.coverage-zone:focus-visible image,
.coverage-zone.is-active image {
  opacity: 1;
}

.coverage-zone:hover .coverage-zone__outline,
.coverage-zone:focus-visible .coverage-zone__outline,
.coverage-zone.is-active .coverage-zone__outline {
  fill: rgba(255, 255, 255, .13);
  stroke: var(--gold-light);
  filter: url("#coverage-glow");
}

.coverage-callout {
  position: absolute;
  z-index: 4;
  top: var(--callout-y);
  left: var(--callout-x);
  display: grid;
  width: min(220px, 28%);
  gap: 2px;
  padding: 13px 15px 14px;
  color: var(--white);
  border-left: 2px solid var(--gold);
  background: rgba(3, 19, 40, .9);
  box-shadow: 0 14px 36px rgba(3, 19, 40, .24);
  pointer-events: none;
  transform: translate(-50%, calc(-100% - var(--connector-length)));
  transition: top .28s ease, left .28s ease, transform .28s ease;
  backdrop-filter: blur(10px);
  text-decoration: none;
}

.coverage-callout[hidden] {
  display: none;
}

.coverage-callout::after {
  position: absolute;
  top: 100%;
  left: -2px;
  width: 2px;
  height: var(--connector-length);
  background: var(--gold);
  content: "";
}

.coverage-callout > span {
  color: var(--gold-light);
  font-size: .62rem;
  font-weight: 800;
  letter-spacing: .14em;
}

.coverage-callout strong {
  font-size: clamp(.78rem, 1.25vw, 1rem);
  font-weight: 600;
  line-height: 1.15;
}

.coverage-callout small {
  margin-top: 3px;
  color: rgba(255, 255, 255, .64);
  font-size: clamp(.57rem, .85vw, .68rem);
  line-height: 1.3;
}

.coverage-callout b {
  margin-top: 9px;
  color: var(--gold-light);
  font-size: .58rem;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.coverage-explorer__panel {
  position: relative;
  z-index: 3;
  min-width: 0;
  padding: 28px;
  border-left: 1px solid rgba(255, 255, 255, .12);
  background:
    radial-gradient(circle at 100% 0, rgba(212, 167, 78, .15), transparent 36%),
    var(--navy-950);
}

.coverage-explorer__panel .eyebrow {
  color: var(--gold-light);
}

.coverage-explorer__panel h3 {
  margin: 0 0 14px;
  font-family: var(--serif);
  font-size: clamp(2rem, 2.5vw, 2.65rem);
  font-weight: 500;
  letter-spacing: -.035em;
  line-height: .98;
}

.coverage-explorer__panel > p:not(.eyebrow) {
  margin: 0 0 20px;
  color: rgba(255, 255, 255, .6);
  font-size: .86rem;
  line-height: 1.5;
}

.coverage-controls {
  border-top: 1px solid rgba(255, 255, 255, .14);
}

.coverage-control {
  position: relative;
  display: grid;
  width: 100%;
  grid-template-columns: 28px 1fr;
  align-items: center;
  gap: 9px;
  padding: 9px 20px 9px 0;
  color: rgba(255, 255, 255, .62);
  border: 0;
  border-bottom: 1px solid rgba(255, 255, 255, .12);
  background: transparent;
  cursor: pointer;
  font-size: .78rem;
  font-weight: 600;
  line-height: 1.2;
  text-align: left;
  transition: color .22s, padding .22s, background .22s;
}

.coverage-control::after {
  position: absolute;
  top: 50%;
  right: 4px;
  width: 7px;
  height: 7px;
  border-top: 1px solid currentColor;
  border-right: 1px solid currentColor;
  content: "";
  opacity: .5;
  transform: translateY(-50%) rotate(45deg);
}

.coverage-control > span {
  color: var(--gold);
  font-size: .62rem;
  font-weight: 500;
}

.coverage-control:hover,
.coverage-control:focus-visible,
.coverage-control.is-active {
  padding-left: 9px;
  color: var(--white);
  background: rgba(255, 255, 255, .055);
}

.coverage-control.is-active::after {
  color: var(--gold-light);
  opacity: 1;
}

.service-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  border-top: 1px solid var(--line);
  border-left: 1px solid var(--line);
}

.service-card {
  position: relative;
  min-height: 350px;
  padding: clamp(28px, 4vw, 44px);
  border-right: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
  background: var(--white);
  transition: color .3s, background .3s, transform .3s;
}

.service-card:hover {
  z-index: 2;
  color: var(--white);
  background: var(--navy-900);
  transform: translateY(-5px);
  box-shadow: 0 24px 50px rgba(3, 19, 40, .16);
}

.service-card--featured {
  background: var(--paper);
}

.service-card__number {
  position: absolute;
  top: 28px;
  right: 30px;
  color: rgba(20, 32, 51, .28);
  font-size: .8rem;
  font-weight: 500;
}

.service-card__icon {
  display: grid;
  width: 52px;
  height: 52px;
  margin-bottom: 40px;
  place-items: center;
  color: var(--gold-dark);
  background: rgba(212, 167, 78, .12);
}

.service-card__icon svg {
  width: 27px;
  height: 27px;
}

.service-card h3 {
  margin-bottom: 14px;
  font-size: 1.65rem;
  font-weight: 600;
  line-height: 1.1;
}

.service-card p {
  margin-bottom: 68px;
  color: var(--slate);
  font-size: .9rem;
  transition: color .3s;
}

.service-card > .card-drill,
.business-grid .card-drill {
  position: absolute;
  z-index: 1;
  inset: 0;
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  padding: 0 clamp(28px, 4vw, 44px) 30px;
  border: 0;
  color: var(--navy-800);
  background: transparent;
  font-size: .7rem;
  font-weight: 800;
  letter-spacing: .08em;
  text-align: left;
  text-decoration: none;
  text-transform: uppercase;
  cursor: pointer;
  transition: color .3s;
}

.service-card > .card-drill::before,
.business-grid .card-drill::before {
  position: absolute;
  right: clamp(28px, 4vw, 44px);
  bottom: 68px;
  left: clamp(28px, 4vw, 44px);
  height: 1px;
  background: var(--line);
  content: "";
  transition: background .3s;
}

.service-card:hover .service-card__number,
.service-card:hover p {
  color: rgba(255, 255, 255, .62);
}

.service-card:hover > .card-drill,
.service-card > .card-drill:focus-visible {
  color: var(--gold-light);
}

.service-card:hover > .card-drill::before,
.service-card > .card-drill:focus-visible::before {
  background: rgba(255, 255, 255, .16);
}

.services--business {
  position: relative;
  overflow: hidden;
  color: var(--white);
  background: var(--navy-950);
}

.services__texture {
  position: absolute;
  inset: 0;
  opacity: .7;
  background:
    radial-gradient(circle at 8% 12%, rgba(212, 167, 78, .12), transparent 26%),
    radial-gradient(circle at 95% 70%, rgba(23, 69, 114, .36), transparent 38%),
    repeating-linear-gradient(115deg, transparent 0 80px, rgba(255, 255, 255, .018) 80px 81px);
}

.services--business .shell {
  position: relative;
}

.section-heading--light h2 {
  color: var(--white);
}

.section-heading--light > p {
  color: rgba(255, 255, 255, .61);
}

.services--business .eyebrow,
.contact .eyebrow {
  color: var(--gold-light);
}

.business-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  border-top: 1px solid rgba(255, 255, 255, .14);
  border-left: 1px solid rgba(255, 255, 255, .14);
}

.business-grid article {
  position: relative;
  min-height: 280px;
  padding: clamp(28px, 4vw, 44px) clamp(28px, 4vw, 44px) 92px;
  border-right: 1px solid rgba(255, 255, 255, .14);
  border-bottom: 1px solid rgba(255, 255, 255, .14);
  transition: background .3s;
}

.business-grid article:hover {
  background: rgba(255, 255, 255, .055);
}

.business-grid span {
  color: var(--gold);
  font-size: .8rem;
  font-weight: 500;
}

.business-grid h3 {
  max-width: 270px;
  margin: 45px 0 15px;
  font-size: 1.6rem;
  font-weight: 600;
  line-height: 1.12;
}

.business-grid p {
  margin: 0;
  color: rgba(255, 255, 255, .58);
  font-size: .87rem;
}

.business-grid .card-drill {
  color: var(--gold-light);
}

.business-grid .card-drill::before {
  background: rgba(255, 255, 255, .14);
}

.business-grid .card-drill:focus-visible {
  color: var(--white);
}

.diagnostic {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 40px;
  margin-top: 44px;
  padding: clamp(30px, 5vw, 56px);
  border: 1px solid rgba(212, 167, 78, .34);
  background: linear-gradient(105deg, rgba(212, 167, 78, .11), rgba(255, 255, 255, .03));
}

.diagnostic .eyebrow {
  margin-bottom: 10px;
}

.diagnostic h3 {
  margin-bottom: 8px;
  font-family: var(--serif);
  font-size: clamp(1.8rem, 3vw, 2.7rem);
  font-weight: 500;
  line-height: 1;
}

.diagnostic p:last-child {
  margin: 0;
  color: rgba(255, 255, 255, .58);
}

.diagnostic .button {
  flex: 0 0 auto;
}

.diagnostic__actions {
  display: flex;
  flex: 0 0 auto;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 10px;
}

.method {
  background: var(--paper);
}

.method__grid {
  display: grid;
  grid-template-columns: minmax(0, .95fr) minmax(0, 1.05fr);
  align-items: center;
  gap: clamp(50px, 9vw, 130px);
}

.method__visual {
  position: relative;
  background: #d9f2f3;
}

.method__visual::before {
  position: absolute;
  top: -28px;
  right: 28px;
  bottom: 28px;
  left: -28px;
  z-index: 0;
  border: 1px solid rgba(212, 167, 78, .5);
  content: "";
}

.method__illustration {
  position: relative;
  z-index: 1;
  width: 100%;
  height: auto;
  aspect-ratio: 1400 / 781;
  object-fit: contain;
  object-position: center;
  filter: saturate(.84) contrast(1.03);
}

.method__signature {
  position: absolute;
  z-index: 2;
  right: -24px;
  bottom: 24px;
  display: flex;
  max-width: 370px;
  align-items: center;
  gap: 18px;
  padding: 22px 25px;
  color: var(--white);
  color: var(--navy-950);
  background: var(--white);
  box-shadow: var(--shadow);
}

.method__signature > img {
  flex: 0 0 auto;
  width: 52px;
  height: 52px;
  border-radius: 9px;
}

.method__signature p {
  margin: 0;
  font-size: .74rem;
  line-height: 1.35;
}

.method__signature p strong {
  font-size: .76rem;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.method__signature p span {
  color: var(--slate);
  font-size: .92rem;
  font-weight: 500;
}

.method__intro {
  margin: 26px 0 36px;
  color: var(--slate);
  font-size: 1.02rem;
}

.steps {
  margin: 0;
  padding: 0;
  border-top: 1px solid var(--line);
  list-style: none;
}

.steps li {
  display: grid;
  grid-template-columns: 45px 1fr;
  gap: 12px;
  padding: 19px 0;
  border-bottom: 1px solid var(--line);
}

.steps > li > span {
  color: var(--gold-dark);
  font-size: .8rem;
  font-weight: 500;
}

.steps h3 {
  margin: 0 0 3px;
  font-size: 1.16rem;
  font-weight: 600;
  line-height: 1.25;
}

.steps p {
  margin: 0;
  color: var(--slate);
  font-size: .9rem;
  line-height: 1.5;
}

.agent-medallions {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
  margin-top: 28px;
}

.agent-medallion {
  position: relative;
  display: flex;
  align-items: center;
  gap: 12px;
  min-width: 0;
  padding: 12px 36px 12px 12px;
  border: 1px solid var(--line);
  background: rgba(255, 255, 255, .56);
  cursor: pointer;
  transition: border-color .22s ease, background .22s ease, transform .22s ease;
  text-decoration: none;
}

.agent-medallion::after {
  position: absolute;
  right: 14px;
  color: var(--gold-dark);
  content: "→";
}

.agent-medallion:hover,
.agent-medallion:focus-visible {
  border-color: rgba(167, 121, 40, .58);
  background: var(--white);
  transform: translateY(-2px);
}

.agent-medallion > img {
  width: 54px;
  height: 54px;
  flex: 0 0 auto;
  border: 2px solid var(--white);
  border-radius: 50%;
  object-fit: cover;
  object-position: center 16%;
  box-shadow: 0 4px 16px rgba(3, 19, 40, .12);
}

.agent-medallion > div {
  display: flex;
  min-width: 0;
  flex-direction: column;
}

.agent-medallion strong {
  color: var(--navy-950);
  font-size: 1.02rem;
  font-weight: 600;
  line-height: 1.2;
}

.agent-medallion span {
  margin-top: 4px;
  color: var(--slate);
  font-size: .7rem;
  line-height: 1.4;
}

.team {
  background: var(--white);
}

.team-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: clamp(18px, 3vw, 34px);
}

.team-card {
  position: relative;
  padding-bottom: 52px;
  border-bottom: 1px solid var(--line);
  cursor: pointer;
  transition: border-color .25s ease, transform .25s ease;
  color: inherit;
  text-decoration: none;
}

.team-card::after {
  position: absolute;
  right: 0;
  bottom: 20px;
  color: var(--gold-dark);
  font-size: .65rem;
  font-weight: 750;
  letter-spacing: .08em;
  text-transform: uppercase;
  content: "Découvrir  →";
}

.team-card:hover,
.team-card:focus-visible {
  border-color: var(--gold-dark);
  transform: translateY(-3px);
}

.team-card__image {
  aspect-ratio: 1 / 1.08;
  margin-bottom: 24px;
  overflow: hidden;
  background: var(--mist);
}

.team-card__image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 18%;
  filter: saturate(.86);
  transition: transform .7s ease, filter .7s ease;
}

.team-card:hover .team-card__image img,
.team-card:focus-visible .team-card__image img {
  transform: scale(1.025);
  filter: saturate(1);
}

.team-card p {
  margin-bottom: 7px;
  color: var(--gold-dark);
  font-size: .64rem;
  font-weight: 800;
  letter-spacing: .14em;
  text-transform: uppercase;
}

.team-card h3 {
  margin-bottom: 4px;
  color: var(--navy-950);
  font-size: clamp(1.45rem, 2.6vw, 1.85rem);
  font-weight: 600;
  line-height: 1.15;
}

.team-card > span {
  color: var(--slate);
  font-size: .78rem;
}

.locations {
  color: var(--white);
  background:
    linear-gradient(rgba(255, 255, 255, .025) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255, 255, 255, .025) 1px, transparent 1px),
    var(--navy-900);
  background-size: 54px 54px;
}

.locations .section-heading h2 {
  color: var(--white);
}

.locations .section-heading > p {
  color: rgba(255, 255, 255, .6);
}

.locations .eyebrow {
  color: var(--gold-light);
}

.locations__grid {
  display: grid;
  grid-template-columns: minmax(310px, .85fr) minmax(0, 1.15fr);
  gap: clamp(40px, 7vw, 90px);
}

.location-feature {
  position: relative;
  padding: clamp(35px, 5vw, 58px);
  border: 1px solid rgba(212, 167, 78, .32);
  background:
    linear-gradient(160deg, rgba(212, 167, 78, .14), transparent 55%),
    rgba(3, 19, 40, .46);
}

.location-feature__label {
  margin-bottom: 26px;
  color: var(--gold-light);
  font-size: .68rem;
  font-weight: 800;
  letter-spacing: .16em;
  text-transform: uppercase;
}

.location-feature h3 {
  margin-bottom: 20px;
  font-family: var(--serif);
  font-size: clamp(2.4rem, 4vw, 3.8rem);
  font-weight: 500;
  line-height: 1;
}

.location-feature address {
  margin-bottom: 24px;
  color: rgba(255, 255, 255, .75);
  font-size: 1.05rem;
}

.location-feature ul {
  display: grid;
  gap: 9px;
  margin: 0 0 34px;
  padding: 22px 0 0;
  border-top: 1px solid rgba(255, 255, 255, .12);
  color: rgba(255, 255, 255, .55);
  font-size: .8rem;
  list-style: none;
}

.location-feature__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}

.location-list {
  margin: 0;
  padding: 0;
  border-top: 1px solid rgba(255, 255, 255, .16);
  list-style: none;
}

.location-list > li {
  min-height: 0;
  border-bottom: 1px solid rgba(255, 255, 255, .16);
}

.location-list > li > a {
  position: relative;
  display: grid;
  grid-template-columns: 48px 1fr auto;
  min-height: 98px;
  align-items: center;
  gap: 20px;
  padding-right: 34px;
  color: inherit;
  text-decoration: none;
  transition: padding .25s, background .25s;
}

.location-list > li > a::after {
  position: absolute;
  right: 8px;
  color: var(--gold-light);
  content: "→";
}

.location-list > li > a:hover,
.location-list > li > a:focus-visible {
  padding-inline: 16px;
  background: rgba(255, 255, 255, .04);
}

.location-list span {
  color: var(--gold);
  font-size: .8rem;
  font-weight: 500;
}

.location-list h3,
.location-list p {
  margin: 0;
}

.location-list h3 {
  font-size: clamp(1.3rem, 2.2vw, 1.9rem);
  font-weight: 600;
  line-height: 1.15;
}

.location-list p {
  color: rgba(255, 255, 255, .45);
  font-size: .77rem;
}

.faq {
  background: var(--white);
}

.faq__grid {
  display: grid;
  grid-template-columns: minmax(0, .75fr) minmax(0, 1.25fr);
  gap: clamp(50px, 10vw, 140px);
}

.faq__intro {
  position: sticky;
  top: 130px;
  align-self: start;
}

.faq h2 {
  font-size: clamp(2.5rem, 4.5vw, 4.1rem);
}

.faq__intro > p:not(.eyebrow) {
  margin: 26px 0;
  color: var(--slate);
}

.accordion {
  border-top: 1px solid var(--line);
}

.accordion details {
  border-bottom: 1px solid var(--line);
}

.accordion summary {
  position: relative;
  display: flex;
  min-height: 96px;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  padding: 24px 50px 24px 0;
  color: var(--navy-950);
  cursor: pointer;
  font-size: clamp(1.15rem, 2vw, 1.45rem);
  font-weight: 600;
  line-height: 1.25;
  list-style: none;
}

.accordion summary::-webkit-details-marker {
  display: none;
}

.accordion summary span,
.accordion summary span::after {
  position: absolute;
  top: 50%;
  right: 6px;
  width: 17px;
  height: 1px;
  background: var(--gold-dark);
  content: "";
  transition: transform .25s;
}

.accordion summary span::after {
  inset: 0;
  transform: rotate(90deg);
}

.accordion details[open] summary span::after {
  transform: rotate(0);
}

.accordion details p {
  max-width: 720px;
  margin: -2px 48px 28px 0;
  color: var(--slate);
  font-size: .92rem;
}

.contact {
  position: relative;
  overflow: hidden;
  color: var(--white);
  background: var(--navy-950);
}

.contact__glow {
  position: absolute;
  top: -50%;
  left: -10%;
  width: 70vw;
  height: 70vw;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(212, 167, 78, .18), transparent 68%);
}

.contact__grid {
  position: relative;
  display: grid;
  grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr);
  align-items: center;
  gap: clamp(50px, 9vw, 120px);
}

.contact h2 {
  color: var(--white);
}

.contact__grid > div:first-child > p:last-child {
  max-width: 560px;
  margin-top: 26px;
  color: rgba(255, 255, 255, .62);
}

.contact__options {
  border-top: 1px solid rgba(255, 255, 255, .16);
}

.contact-option {
  display: grid;
  grid-template-columns: 52px 1fr auto;
  align-items: center;
  gap: 18px;
  min-height: 104px;
  padding-block: 20px;
  border-bottom: 1px solid rgba(255, 255, 255, .16);
  transition: padding .25s, background .25s;
}

.contact-option:hover {
  padding-inline: 14px;
  background: rgba(255, 255, 255, .04);
}

.contact-option__icon {
  display: grid;
  width: 48px;
  height: 48px;
  place-items: center;
  color: var(--gold-light);
  background: rgba(212, 167, 78, .1);
}

.contact-option__icon svg {
  width: 23px;
  height: 23px;
}

.contact-option > span:nth-child(2) {
  display: flex;
  flex-direction: column;
}

.contact-option small {
  color: rgba(255, 255, 255, .44);
  font-size: .66rem;
  font-weight: 750;
  letter-spacing: .09em;
  text-transform: uppercase;
}

.contact-option strong {
  margin-top: 4px;
  font-size: clamp(1.05rem, 2vw, 1.35rem);
  font-weight: 600;
}

.site-footer {
  padding-top: 68px;
  color: rgba(255, 255, 255, .62);
  background: #020d1b;
}

.footer__top {
  display: grid;
  grid-template-columns: 1.4fr repeat(3, 1fr);
  gap: 50px;
  padding-bottom: 55px;
}

.brand--footer {
  color: var(--white);
}

.footer__top > div:first-child > p {
  max-width: 280px;
  margin-top: 22px;
  font-size: .8rem;
}

.footer__top h2 {
  margin-bottom: 20px;
  color: var(--gold-light);
  font-family: var(--sans);
  font-size: .65rem;
  font-weight: 800;
  letter-spacing: .14em;
  text-transform: uppercase;
}

.footer__top > div:not(:first-child) {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 9px;
}

.footer__top a,
.footer__top address,
.footer__top div > p {
  font-size: .78rem;
}

.footer__top a:hover {
  color: var(--white);
}

.footer__top address {
  margin-top: 8px;
}

.footer__top div > p {
  margin: 8px 0 0;
}

.footer__legal {
  display: flex;
  min-height: 76px;
  align-items: center;
  justify-content: space-between;
  gap: 25px;
  border-top: 1px solid rgba(255, 255, 255, .1);
  color: rgba(255, 255, 255, .36);
  font-size: .66rem;
}

.footer__legal p {
  margin: 0;
}

.footer__legal a:hover {
  color: var(--gold-light);
}

.mobile-actions {
  display: none;
}

@media (max-width: 1060px) {
  :root {
    --header-h: 74px;
  }

  .utility {
    display: none;
  }

  .site-header {
    position: absolute;
    background: rgba(3, 19, 40, .32);
  }

  .menu-toggle {
    display: block;
  }

  .menu-toggle[aria-expanded="true"] span:not(.sr-only):nth-child(2) {
    transform: translateY(6px) rotate(45deg);
  }

  .menu-toggle[aria-expanded="true"] span:not(.sr-only):nth-child(3) {
    opacity: 0;
  }

  .menu-toggle[aria-expanded="true"] span:not(.sr-only):nth-child(4) {
    transform: translateY(-6px) rotate(-45deg);
  }

  .main-nav {
    position: fixed;
    top: var(--header-h);
    right: 0;
    bottom: 0;
    left: 0;
    display: flex;
    align-items: stretch;
    flex-direction: column;
    gap: 0;
    padding: 28px 20px 90px;
    overflow-y: auto;
    background: rgba(3, 19, 40, .985);
    transform: translateX(100%);
    transition: transform .3s ease;
  }

  .main-nav.is-open {
    transform: translateX(0);
  }

  .main-nav > a:not(.button) {
    padding: 17px 8px;
    border-bottom: 1px solid rgba(255, 255, 255, .1);
    font-size: 1.45rem;
    font-weight: 600;
  }

  .main-nav > .button {
    margin-top: 24px;
  }

  .hero__grid {
    grid-template-columns: 1fr;
    align-items: center;
    gap: 45px;
    padding-top: 130px;
  }

  .hero__copy {
    max-width: 720px;
  }

  .hero__card {
    max-width: 620px;
  }

  .journey-lab__intro {
    grid-template-columns: minmax(0, 1fr) minmax(250px, .7fr);
    gap: 44px;
  }

  .route-row {
    grid-template-columns: minmax(300px, 45%) minmax(0, 55%);
  }

  .route-row__identity {
    padding: 38px 30px;
  }

  .route-row__actions a {
    padding: 36px 26px;
  }

  .route-row__identity strong {
    font-size: clamp(2.4rem, 4.6vw, 3.05rem);
  }

  .route-row__actions strong {
    font-size: clamp(1.9rem, 3.7vw, 2.65rem);
  }

  .scroll-cue {
    display: none;
  }

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

  .method__signature {
    right: -10px;
  }

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

@media (max-width: 760px) {
  :root {
    --shell: min(100% - 28px, 1180px);
  }

  html {
    scroll-padding-top: 88px;
  }

  body {
    padding-bottom: 66px;
  }

  .section {
    padding-block: 78px;
  }

  .brand__gan {
    width: 41px;
    height: 41px;
  }

  .brand__text strong {
    font-size: .7rem;
  }

  .brand__text > span {
    font-size: .94rem;
  }

  .brand__text small {
    font-size: .52rem;
  }

  .hero {
    min-height: auto;
    background-position: 57% center;
  }

  .hero::before {
    background:
      linear-gradient(180deg, rgba(3, 19, 40, .7), rgba(3, 19, 40, .9) 58%, var(--navy-950)),
      repeating-linear-gradient(90deg, transparent 0, transparent calc(50% - 1px), rgba(255, 255, 255, .04) 50%);
  }

  .hero__grid {
    gap: 38px;
    padding-top: 126px;
    padding-bottom: 72px;
  }

  .hero h1 {
    font-size: clamp(3.25rem, 15vw, 5rem);
  }

  .hero__actions {
    flex-direction: column;
  }

  .hero__actions .button {
    width: 100%;
  }

  .hero__proofs {
    gap: 0;
    margin-top: 36px;
    padding-top: 22px;
  }

  .hero__proofs li {
    padding-right: 9px;
  }

  .hero__proofs li + li {
    padding-left: 12px;
  }

  .hero__proofs strong {
    font-size: 1.45rem;
  }

  .hero__proofs span {
    font-size: .56rem;
    line-height: 1.35;
  }

  .hero__card {
    padding: 28px 25px;
  }

  .section-heading--split {
    grid-template-columns: 1fr;
    gap: 25px;
  }

  .section-heading--split > p {
    font-size: .95rem;
  }

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

  .journey-lab__intro {
    grid-template-columns: 1fr;
    gap: 22px;
    margin-bottom: 58px;
  }

  .journey-lab__intro .eyebrow {
    margin-bottom: 0;
  }

  .journey-lab__intro h2 {
    font-size: clamp(2.8rem, 13vw, 4.4rem);
  }

  .journey-lab__intro > p:last-child {
    max-width: 520px;
  }

  .journey-dialog {
    width: calc(100% - 20px);
    max-height: calc(100dvh - 20px);
  }

  .journey-dialog__panel {
    max-height: calc(100dvh - 20px);
    padding: 56px 20px 26px;
  }

  .journey-dialog__close {
    top: 12px;
    right: 14px;
  }

  .journey-dialog h2 {
    font-size: clamp(2.8rem, 15vw, 4.6rem);
  }

  .journey-dialog__choices {
    grid-template-columns: 1fr;
  }

  .journey-dialog__choice {
    min-height: 190px;
    padding: 26px 24px;
  }

  .journey-dialog__choice strong {
    font-size: clamp(2rem, 10vw, 3rem);
  }

  .topic-dialog {
    width: 100%;
  }

  .topic-dialog__panel {
    padding: 66px 24px 30px;
  }

  .topic-dialog h2 {
    font-size: clamp(2.8rem, 14vw, 4.5rem);
  }

  .topic-dialog__actions {
    align-items: stretch;
    flex-direction: column;
  }

  .topic-dialog__actions .button,
  .topic-dialog__actions > button {
    width: 100%;
    justify-content: center;
    text-align: center;
  }

  .journey-concept {
    margin-bottom: 82px;
  }

  .journey-concept__header {
    grid-template-columns: 1fr;
    gap: 8px;
    margin-bottom: 22px;
  }

  .route-row {
    grid-template-columns: 1fr;
  }

  .route-row__identity {
    min-height: 190px;
    padding: 28px 22px;
    border-right: 0;
    border-bottom: 1px solid rgba(255, 255, 255, .26);
  }

  .route-row--private .route-row__identity {
    border-bottom-color: rgba(3, 19, 40, .14);
  }

  .route-row__identity strong {
    font-size: clamp(2.15rem, 11vw, 3rem);
  }

  .route-row__actions {
    grid-template-columns: 1fr;
  }

  .route-row__actions a {
    min-height: 190px;
    padding: 28px 22px;
  }

  .route-row__actions a + a {
    border-top: 1px solid rgba(255, 255, 255, .22);
    border-left: 0;
  }

  .intent-board {
    grid-template-columns: 1fr;
  }

  .intent-column {
    padding: 34px 22px 22px;
  }

  .intent-column + .intent-column {
    border-top: 1px solid rgba(255, 255, 255, .16);
    border-left: 0;
  }

  .intent-column__heading {
    min-height: 0;
    margin-bottom: 32px;
  }

  .intent-column__heading h4 {
    font-size: clamp(2.65rem, 12vw, 4rem);
  }

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

  .portal__identity {
    min-height: 190px;
    padding: 32px 22px;
  }

  .portal nav {
    grid-template-columns: 1fr;
    border-top: 1px solid rgba(255, 255, 255, .22);
    border-left: 0;
  }

  .portal nav a {
    min-height: 150px;
    padding: 26px 22px;
  }

  .portal nav a + a {
    border-top: 1px solid rgba(255, 255, 255, .2);
    border-left: 0;
  }

  .journey-board {
    min-height: 0;
    grid-template-columns: 1fr;
  }

  .journey-lane + .journey-lane {
    border-top: 1px solid rgba(255, 255, 255, .28);
    border-left: 0;
  }

  .journey-lane__options {
    min-height: 560px;
  }

  .journey-option {
    padding: 62px 20px 28px;
  }

  .journey-option strong {
    font-size: clamp(2rem, 10vw, 3rem);
  }

  .audience-card {
    min-height: 610px;
  }

  .audience-card__content {
    padding: 32px 24px;
  }

  .service-grid,
  .business-grid {
    grid-template-columns: 1fr;
  }

  .coverage-explorer {
    grid-template-columns: 1fr;
  }

  .coverage-explorer__stage {
    order: 2;
    height: auto;
    min-height: 0;
    aspect-ratio: 1400 / 781;
  }

  .coverage-explorer__panel {
    order: 1;
    width: 100%;
    max-width: 100%;
    overflow: hidden;
    padding: 28px 22px 20px;
    border-bottom: 1px solid rgba(255, 255, 255, .12);
    border-left: 0;
  }

  .coverage-explorer__panel h3 {
    font-size: 2.25rem;
  }

  .coverage-explorer__panel > p:not(.eyebrow) {
    margin-bottom: 20px;
  }

  .coverage-controls {
    display: flex;
    width: 100%;
    max-width: 100%;
    gap: 8px;
    padding-bottom: 5px;
    overflow-x: auto;
    border-top: 0;
    scrollbar-width: none;
  }

  .coverage-controls::-webkit-scrollbar {
    display: none;
  }

  .coverage-control {
    flex: 0 0 auto;
    width: auto;
    min-width: max-content;
    grid-template-columns: 1fr;
    padding: 9px 13px;
    border: 1px solid rgba(255, 255, 255, .15);
    border-radius: 999px;
    font-size: .72rem;
    text-align: center;
  }

  .coverage-control > span,
  .coverage-control::after {
    display: none;
  }

  .coverage-control:hover,
  .coverage-control:focus-visible,
  .coverage-control.is-active {
    padding-left: 13px;
    color: var(--navy-950);
    border-color: var(--gold);
    background: var(--gold-light);
  }

  .coverage-callout {
    right: 12px;
    bottom: 12px;
    top: auto;
    left: 12px;
    width: auto;
    transform: none;
  }

  .coverage-callout::after,
  .coverage-callout small {
    display: none;
  }

  .service-card {
    min-height: 330px;
  }

  .business-grid article {
    min-height: 240px;
  }

  .business-grid h3 {
    margin-top: 35px;
  }

  .diagnostic {
    align-items: stretch;
    flex-direction: column;
    padding: 28px 24px;
  }

  .diagnostic .button,
  .diagnostic__actions {
    width: 100%;
  }

  .diagnostic__actions {
    justify-content: stretch;
  }

  .method__grid,
  .locations__grid,
  .faq__grid,
  .contact__grid {
    grid-template-columns: 1fr;
  }

  .method__grid {
    gap: 70px;
  }

  .method__visual {
    margin-left: 16px;
  }

  .method__visual::before {
    top: -16px;
    right: 16px;
    bottom: 16px;
    left: -16px;
  }

  .method__signature {
    right: -7px;
    bottom: 20px;
    max-width: 275px;
  }

  .team-grid {
    grid-template-columns: 1fr;
    gap: 42px;
  }

  .agent-medallions {
    grid-template-columns: 1fr;
  }

  .locations__grid {
    gap: 50px;
  }

  .location-feature__actions {
    flex-direction: column;
  }

  .location-list > li > a {
    grid-template-columns: 36px 1fr;
  }

  .location-list p {
    grid-column: 2;
    margin-top: -18px;
  }

  .faq__grid {
    gap: 48px;
  }

  .faq__intro {
    position: static;
  }

  .accordion summary {
    min-height: 86px;
    padding-right: 40px;
    font-size: 1.18rem;
  }

  .contact-option {
    grid-template-columns: 45px 1fr auto;
    gap: 13px;
  }

  .contact-option__icon {
    width: 43px;
    height: 43px;
  }

  .footer__top {
    grid-template-columns: 1fr;
    gap: 38px;
  }

  .footer__legal {
    align-items: flex-start;
    flex-direction: column;
    justify-content: center;
    gap: 7px;
    padding-block: 22px;
  }

  .mobile-actions {
    position: fixed;
    z-index: 90;
    right: 0;
    bottom: 0;
    left: 0;
    display: grid;
    grid-template-columns: .8fr 1.2fr;
    min-height: 66px;
    color: var(--navy-950);
    background: var(--white);
    box-shadow: 0 -10px 28px rgba(3, 19, 40, .13);
  }

  .mobile-actions a {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    padding: 10px;
    font-size: .71rem;
    font-weight: 850;
    letter-spacing: .05em;
    text-align: center;
    text-transform: uppercase;
  }

  .mobile-actions a:last-child {
    background: var(--gold);
  }

  .mobile-actions svg {
    width: 18px;
    height: 18px;
  }
}

@media (max-width: 390px) {
  .brand__text small {
    display: none;
  }

  .hero__proofs span {
    letter-spacing: .03em;
  }

  .method__signature {
    position: relative;
    right: auto;
    bottom: auto;
    margin: -38px 12px 0;
  }

  .contact-option {
    grid-template-columns: 42px 1fr;
  }

  .contact-option > span:last-child {
    display: none;
  }
}

@media (max-width: 900px) {
  .retirement-dialog {
    width: 100%;
    height: 100dvh;
  }

  .retirement-dialog__panel {
    grid-template-columns: 1fr;
    grid-template-rows: auto 1fr;
  }

  .retirement-dialog__aside {
    display: grid;
    grid-template-columns: auto 1fr;
    gap: 0 16px;
    padding: 20px 70px 20px 22px;
  }

  .retirement-dialog__gan-logo {
    grid-row: 1 / 3;
    width: 44px;
    height: 44px;
    margin: 0;
  }

  .retirement-dialog__aside .eyebrow {
    margin: 1px 0 3px;
  }

  .retirement-dialog__aside h2 {
    margin: 0;
    font-size: 1.65rem;
    line-height: 1;
  }

  .retirement-dialog__aside > p:not(.eyebrow),
  .retirement-dialog__steps {
    display: none;
  }

  .retirement-dialog__close {
    top: 17px;
    right: 18px;
    border-color: rgba(255, 255, 255, .34);
    color: var(--white);
    background: rgba(255, 255, 255, .08);
  }

  .retirement-dialog__body {
    padding: 28px clamp(18px, 6vw, 48px) 24px;
  }

  .retirement-dialog__mobile-progress {
    display: grid;
    grid-template-columns: 1fr auto;
    gap: 6px 12px;
    align-items: center;
    margin-bottom: 24px;
    color: var(--gold-dark);
    font-size: .65rem;
    font-weight: 750;
    letter-spacing: .08em;
    text-transform: uppercase;
  }

  .retirement-dialog__mobile-progress progress {
    grid-column: 1 / -1;
    width: 100%;
    height: 3px;
    border: 0;
    background: rgba(6, 28, 56, .1);
  }

  .retirement-dialog__mobile-progress progress::-webkit-progress-bar {
    background: rgba(6, 28, 56, .1);
  }

  .retirement-dialog__mobile-progress progress::-webkit-progress-value {
    background: var(--gold-dark);
  }

  .retirement-dialog__mobile-progress progress::-moz-progress-bar {
    background: var(--gold-dark);
  }
}

@media (max-width: 620px) {
  .retirement-dialog__aside {
    padding-block: 15px;
  }

  .retirement-dialog__aside h2 {
    font-size: 1.3rem;
  }

  .retirement-dialog__gan-logo {
    width: 38px;
    height: 38px;
  }

  .retirement-dialog__body {
    padding: 20px 17px 18px;
  }

  .retirement-step h3,
  .retirement-success h3 {
    font-size: clamp(1.85rem, 9vw, 2.55rem);
  }

  .retirement-step__intro {
    margin: 13px 0 22px;
  }

  .retirement-options--three,
  .retirement-options--compact,
  .retirement-options--checks {
    grid-template-columns: repeat(2, 1fr);
  }

  .retirement-options--stack,
  .retirement-fields,
  .retirement-summary {
    grid-template-columns: 1fr;
  }

  .retirement-options--stack label > span {
    min-height: 70px;
  }

  .retirement-dialog__navigation {
    position: sticky;
    z-index: 3;
    bottom: -18px;
    gap: 14px;
    margin-inline: -17px;
    padding: 14px 17px 18px;
    background: linear-gradient(transparent, var(--paper) 18%, var(--paper));
  }

  .retirement-dialog__navigation .button {
    flex: 1;
    justify-content: center;
  }

  .retirement-success__actions {
    align-items: stretch;
    flex-direction: column;
  }

  .retirement-success__actions .button {
    width: 100%;
    justify-content: center;
  }
}

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

  *,
  *::before,
  *::after {
    scroll-behavior: auto !important;
    animation-duration: .01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: .01ms !important;
  }

  .audience-card video,
  .journey-lane video,
  .route-row__video,
  .journey-dialog__video {
    display: none;
  }
}

@media (prefers-contrast: more) {
  :root {
    --line: rgba(20, 32, 51, .35);
  }

  .hero__lead,
  .section-heading--light > p,
  .business-grid p,
  .contact__grid > div:first-child > p:last-child {
    color: rgba(255, 255, 255, .86);
  }
}


/* ── Filigrane « Place des Victoires » ─────────────────────────────────
   Motif des présentations RDD / bilan 6 mois, décliné pour les fonds
   blancs du site : traits navy sur fond transparent, opacité très basse,
   fondu vers le haut pour ne jamais concurrencer le texte. */
.services--private,
.team,
.faq {
  position: relative;
  isolation: isolate;
}

.services--private::before,
.team::before,
.faq::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  background: url("assets/motif-place-victoires.png") center bottom / min(1560px, 174%) auto no-repeat;
  opacity: .03;
  pointer-events: none;
  -webkit-mask-image: linear-gradient(180deg, transparent 0, #000 62%);
  mask-image: linear-gradient(180deg, transparent 0, #000 62%);
}

/* Déclinaison fonds SOMBRES : mêmes traits en bleu clair (l'esprit des
   présentations d'origine), sur les grandes sections navy. */
.services--business,
.locations,
.contact {
  isolation: isolate;
}

.locations {
  position: relative;
}

.services--business::before,
.locations::before,
.contact::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  background: url("assets/motif-place-victoires-clair.png") center bottom / min(1560px, 174%) auto no-repeat;
  opacity: .05;
  pointer-events: none;
  -webkit-mask-image: linear-gradient(180deg, transparent 0, #000 62%);
  mask-image: linear-gradient(180deg, transparent 0, #000 62%);
}

/* .journeys : les tuiles opaques couvrent le bas de la section — motif
   ancré en haut, fondu avant les tuiles pour rester un fond de titre. */
.journeys {
  position: relative;
  isolation: isolate;
}

.journeys::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  background: url("assets/motif-place-victoires.png") center top / min(1560px, 174%) auto no-repeat;
  opacity: .028;
  pointer-events: none;
  -webkit-mask-image: linear-gradient(180deg, #000 40%, transparent 80%);
  mask-image: linear-gradient(180deg, #000 40%, transparent 80%);
}