/* ── tokens ── */
:root {
  --ink: #16150f;
  --ink-2: #24221c;
  --ink-soft: #4a463d;
  --muted: #7c776c;
  --line: #e8e3d9;
  --line-2: #ded8cc;
  --bg: #fbfaf6;
  --white: #ffffff;
  --ivory: #f4f0e7;
  --ivory-2: #ece6d9;
  --sand: #e3d8c3;
  --gold: #b8955a;          /* fills, lines, icons */
  --gold-ink: #8a6a37;      /* gold text on light (AA) */
  --gold-soft: #f1e8d6;
  --gold-light: #e2cc9f;    /* gold text on dark */

  --serif: "Newsreader", Georgia, "Times New Roman", serif;
  --sans: "Plus Jakarta Sans", "Helvetica Neue", Arial, sans-serif;

  --fs-hero: clamp(2.6rem, 1.5rem + 4.1vw, 5.4rem);
  --fs-h2: clamp(2.05rem, 1.45rem + 2.3vw, 3.6rem);
  --fs-h3: clamp(1.3rem, 1.15rem + .55vw, 1.65rem);
  --fs-lead: clamp(1.02rem, .97rem + .25vw, 1.15rem);

  --r-sm: 14px;
  --r: 22px;
  --r-lg: 32px;
  --gutter: clamp(1.1rem, .5rem + 2.6vw, 3rem);
  --section: clamp(4.5rem, 3rem + 5.5vw, 8.5rem);
  --max: 1320px;
  --nav-h: 80px;

  --shadow-sm: 0 1px 2px rgba(22,21,15,.04), 0 4px 14px rgba(22,21,15,.05);
  --shadow: 0 2px 4px rgba(22,21,15,.04), 0 18px 40px -12px rgba(22,21,15,.16);
  --ease: cubic-bezier(.22,.61,.21,1);
  --ease-out: cubic-bezier(.16,1,.3,1);
}
@media (max-width: 760px) { :root { --nav-h: 66px; --r: 18px; --r-lg: 24px; } }

/* ── base ── */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; scroll-padding-top: calc(var(--nav-h) + 12px); }
body {
  margin: 0; background: var(--bg); color: var(--ink);
  font-family: var(--sans); font-size: 1rem; line-height: 1.65; font-weight: 400;
  -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; overflow-x: hidden;
}
@supports (overflow: clip) { body { overflow-x: clip; } }
img, svg { display: block; max-width: 100%; }
img { height: auto; background: var(--ivory-2); }
figure { margin: 0; }
h1, h2, h3, h4, p, ul, ol, dl, dd { margin: 0; }
ul, ol { list-style: none; padding: 0; }
a { color: inherit; text-decoration: none; }
button, input, select, textarea { font: inherit; color: inherit; }
[hidden] { display: none !important; }
button { background: none; border: 0; padding: 0; cursor: pointer; }
::selection { background: var(--gold-soft); }
:focus-visible { outline: 2px solid var(--gold); outline-offset: 3px; border-radius: 6px; }
.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; left: 1rem; top: -100px; z-index: 300; background: var(--ink); color: #fff; padding: .7rem 1.1rem; border-radius: 999px; }
.skip-link:focus { top: 1rem; }

.container { width: 100%; max-width: var(--max); margin-inline: auto; padding-inline: var(--gutter); }
.section { padding-block: var(--section); position: relative; }

/* Type */
h1, h2, h3, .serif { font-family: var(--serif); font-weight: 500; letter-spacing: -.02em; line-height: 1.08; text-wrap: balance; font-optical-sizing: auto; }
.h2 { font-size: var(--fs-h2); }
.h3 { font-size: var(--fs-h3); line-height: 1.2; letter-spacing: -.01em; }
.hl { color: var(--gold-ink); }
.on-dark .hl { color: var(--gold-light); }
.lead { font-size: var(--fs-lead); color: var(--ink-soft); line-height: 1.7; }
.muted { color: var(--muted); }
.kicker { font-size: .78rem; font-weight: 600; letter-spacing: .04em; color: var(--muted); display: inline-flex; align-items: center; gap: .55rem; }
.kicker::before { content: ""; width: 6px; height: 6px; border-radius: 50%; background: var(--gold); }
.on-dark .kicker { color: rgba(255,255,255,.7); }

/* ── ui ── */
/* Buttons */
.btn {
  display: inline-flex; align-items: center; justify-content: center; gap: .6rem;
  height: 52px; padding: 0 1.6rem; border-radius: 999px; border: 1px solid transparent;
  font-size: .9rem; font-weight: 600; letter-spacing: .005em; white-space: nowrap;
  transition: background-color .35s var(--ease), color .35s var(--ease), border-color .35s var(--ease), transform .35s var(--ease-out), box-shadow .35s var(--ease);
}
.btn:active { transform: scale(.98); }
.btn--sm { height: 44px; padding: 0 1.25rem; font-size: .85rem; }
.btn--primary { background: var(--ink); color: #fff; }
.btn--primary:hover { background: var(--gold); color: var(--ink); }
.btn--gold { background: var(--gold); color: var(--ink); }
.btn--gold:hover { background: #fff; }
.btn--outline { border-color: var(--line-2); background: rgba(255,255,255,.6); color: var(--ink); }
.btn--outline:hover { border-color: var(--ink); background: #fff; }
.btn--glass { background: rgba(255,255,255,.14); color: #fff; border-color: rgba(255,255,255,.35); backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px); }
.btn--glass:hover { background: #fff; color: var(--ink); }
.btn .arr { display: grid; place-items: center; width: 26px; height: 26px; margin-right: -.8rem; border-radius: 50%; background: rgba(255,255,255,.14); transition: transform .4s var(--ease-out); }
.btn--outline .arr, .btn--gold .arr { background: rgba(22,21,15,.08); }
.btn:hover .arr { transform: translateX(3px) rotate(-45deg); }
.btn .arr svg { width: 13px; height: 13px; }

/* Round icon buttons (carousels, expand) */
.ibtn {
  width: 44px; height: 44px; border-radius: 50%; display: grid; place-items: center; flex: none;
  border: 1px solid var(--line-2); background: #fff; color: var(--ink);
  transition: background-color .3s, color .3s, border-color .3s, transform .3s var(--ease-out), opacity .3s;
}
.ibtn svg { width: 16px; height: 16px; }
.ibtn:hover { border-color: var(--ink); }
.ibtn--fill { background: var(--gold); border-color: var(--gold); color: var(--ink); }
.ibtn--fill:hover { background: var(--ink); border-color: var(--ink); color: #fff; }
.ibtn[disabled] { opacity: .35; pointer-events: none; }
.ibtn--glass { background: rgba(255,255,255,.85); border-color: transparent; backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px); }

.chip {
  display: inline-flex; align-items: center; gap: .5rem; height: 34px; padding: 0 .85rem 0 .45rem;
  border-radius: 999px; background: #fff; box-shadow: var(--shadow-sm); font-size: .78rem; font-weight: 600; white-space: nowrap;
}
.chip--plain { padding: 0 .9rem; }

/* Circular flags (CSS only) */
.flag { width: 24px; height: 24px; border-radius: 50%; flex: none; box-shadow: 0 0 0 2px #fff, 0 2px 6px rgba(0,0,0,.15); display: inline-block; }
.flag--lg { width: 34px; height: 34px; }
.flag--ae { background: linear-gradient(90deg, #ce1126 0 27%, transparent 27%), linear-gradient(#00732f 0 33.4%, #fff 33.4% 66.6%, #111 66.6%); }
.flag--de { background: linear-gradient(#111 0 33.4%, #dd0000 33.4% 66.6%, #ffce00 66.6%); }
.flag--ch { background: linear-gradient(#fff,#fff) center / 56% 18% no-repeat, linear-gradient(#fff,#fff) center / 18% 56% no-repeat, #d52b1e; }
.flag--fr { background: linear-gradient(90deg, #0055a4 0 33.4%, #fff 33.4% 66.6%, #ef4135 66.6%); }
.flag--it { background: linear-gradient(90deg, #009246 0 33.4%, #fff 33.4% 66.6%, #ce2b37 66.6%); }
.flag--nl { background: linear-gradient(#ae1c28 0 33.4%, #fff 33.4% 66.6%, #21468b 66.6%); }
.flag--at { background: linear-gradient(#c8102e 0 33.4%, #fff 33.4% 66.6%, #c8102e 66.6%); }
.flag--be { background: linear-gradient(90deg, #000 0 33.4%, #fae042 33.4% 66.6%, #ed2939 66.6%); }
/* Section heads */
.head { display: grid; gap: 1rem; margin-bottom: clamp(2.2rem, 1.5rem + 2.5vw, 3.8rem); }
.head--center { justify-items: center; text-align: center; }
.head--center .lead { max-width: 36rem; }
.head--row { grid-template-columns: 1fr auto; align-items: end; gap: 1.5rem 3rem; }
.head--row > div:not(.controls) { display: grid; gap: 1rem; }
.controls { display: flex; gap: .6rem; }
@media (max-width: 700px) { .head--row { grid-template-columns: 1fr; } }

/* Carousel track */
.track { display: grid; grid-auto-flow: column; gap: clamp(.9rem, 1.6vw, 1.5rem); overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; overscroll-behavior-x: contain; scroll-padding-inline: var(--gutter); }
.track::-webkit-scrollbar { display: none; }
.track > * { scroll-snap-align: start; }

/* Media helpers */
.cover { position: relative; overflow: hidden; border-radius: var(--r); background: var(--ivory-2); isolation: isolate; }
.cover > img, .cover > picture img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: transform 1.2s var(--ease-out); }
.lift { transition: transform .5s var(--ease-out), box-shadow .5s var(--ease); }
.lift:hover { transform: translateY(-4px); box-shadow: var(--shadow); }
.lift:hover .cover > img, .cover.zoom:hover > img { transform: scale(1.05); }

/* ── navbar ── */
.nav { position: fixed; inset: 0 0 auto; z-index: 100; padding-top: 10px; transition: padding .4s var(--ease); }
.nav__bar {
  height: calc(var(--nav-h) - 10px); display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; gap: 1.5rem;
  border-radius: 999px; transition: background-color .4s var(--ease), box-shadow .4s var(--ease), max-width .5s var(--ease), padding .4s var(--ease);
}
.nav.is-scrolled { padding-top: 10px; }
.nav.is-scrolled .nav__bar {
  max-width: calc(var(--max) - 2 * var(--gutter) + 2.4rem);
  padding-inline: 1.2rem .55rem 1.2rem; padding-left: 1.2rem; padding-right: .55rem;
  background: rgba(255,255,255,.82); backdrop-filter: blur(16px) saturate(1.4); -webkit-backdrop-filter: blur(16px) saturate(1.4);
  box-shadow: 0 1px 0 rgba(22,21,15,.04), 0 10px 30px -12px rgba(22,21,15,.18);
}

.brand { display: inline-flex; align-items: center; gap: .85rem; justify-self: start; }
.brand__logo { height: 40px; width: auto; background: none; display: block; }
.brand__sub { padding-left: .85rem; border-left: 1px solid var(--line-2); line-height: 1.25 !important; }
.brand__mark svg { width: 40px; height: 40px; }
.brand__text { display: grid; line-height: 1.1; }
.brand__name { font-family: var(--serif); font-weight: 600; font-size: 1.3rem; letter-spacing: -.01em; }
.brand__sub { font-size: .66rem; font-weight: 500; color: var(--muted); letter-spacing: .02em; }

.nav__links { display: flex; gap: .3rem; padding: .3rem; border-radius: 999px; background: rgba(255,255,255,.7); box-shadow: inset 0 0 0 1px var(--line); }
.nav.is-scrolled .nav__links { background: transparent; box-shadow: none; }
.nav__links a { font-size: .88rem; font-weight: 500; padding: .5rem 1.1rem; border-radius: 999px; color: var(--ink-soft); transition: background-color .3s, color .3s; }
.nav__links a:hover { color: var(--ink); }
.nav__links a[aria-current="page"] { background: var(--ink); color: #fff; }

.nav__cta { padding-right: .35rem; gap: .9rem; }
.nav__cta .arr { width: 34px; height: 34px; margin-right: 0; }
.nav__end { justify-self: end; display: flex; align-items: center; gap: .6rem; }
.nav__toggle { display: none; width: 46px; height: 46px; border-radius: 50%; background: var(--ink); color: #fff; place-items: center; }
.nav__toggle .icon { width: 20px; height: 20px; grid-area: 1 / 1; transition: opacity .3s, transform .4s var(--ease-out); }
.nav__toggle .i-close { opacity: 0; transform: rotate(-90deg); }
.nav.is-open .nav__toggle .i-open { opacity: 0; transform: rotate(90deg); }
.nav.is-open .nav__toggle .i-close { opacity: 1; transform: none; }

.menu {
  position: absolute; left: var(--gutter); right: var(--gutter); top: calc(100% + 8px);
  background: #fff; border-radius: var(--r-lg); box-shadow: var(--shadow); padding: .6rem;
  opacity: 0; transform: translateY(-10px) scale(.98); transform-origin: top right; visibility: hidden;
  transition: opacity .35s var(--ease), transform .5s var(--ease-out), visibility 0s linear .5s;
}
.nav.is-open .menu { opacity: 1; transform: none; visibility: visible; transition: opacity .35s var(--ease), transform .5s var(--ease-out), visibility 0s; }
.menu__links { display: grid; }
.menu__links a {
  display: flex; align-items: center; justify-content: space-between; padding: 1.05rem 1.1rem;
  font-family: var(--serif); font-size: 1.7rem; font-weight: 500; letter-spacing: -.02em; border-radius: var(--r-sm);
}
.menu__links a .icon { width: 20px; height: 20px; color: var(--gold); }
.menu__links a[aria-current="page"] { background: var(--ivory); }
.menu__card { margin-top: .5rem; padding: 1.1rem; border-radius: calc(var(--r-lg) - 8px); background: var(--ivory); display: grid; gap: 1rem; }
.menu__route { display: flex; align-items: center; gap: .45rem; font-size: .8rem; font-weight: 600; flex-wrap: wrap; }
.menu__route .flag { width: 18px; height: 18px; }
.menu__route i { width: 14px; height: 1px; background: var(--gold); }

@media (max-width: 880px) {
  .nav__bar { grid-template-columns: 1fr auto; }
  .nav__links, .nav__cta { display: none; }
  .nav__toggle { display: grid; }
  .nav.is-scrolled .nav__bar, .nav.is-open .nav__bar { padding-left: 1rem; padding-right: .35rem; background: rgba(255,255,255,.9); backdrop-filter: blur(16px); -webkit-backdrop-filter: blur(16px); box-shadow: 0 10px 30px -12px rgba(22,21,15,.2); max-width: calc(100% - 2 * var(--gutter) + 1.2rem); }
  .brand__logo { height: 34px; }
  .brand__sub { font-size: .6rem; padding-left: .7rem; }
}
@media (min-width: 881px) { .menu { display: none; } }

/* ── hero ── */
/* ── Hero: centred statement on a moving "mirror" gradient ── */
.hero { padding: 10px 10px 0; }
.hero__panel {
  position: relative; overflow: hidden; isolation: isolate; border-radius: var(--r-lg);
  background: #fbf9f4;
  box-shadow: 0 1px 0 rgba(22,21,15,.03), 0 30px 60px -40px rgba(22,21,15,.25);
  padding-top: calc(var(--nav-h) + clamp(3rem, 1rem + 7vh, 7rem));
  min-height: min(100svh - 10px, 980px);
  display: flex; flex-direction: column;
}

/* Mirror gradient — warm Dubai light on one side, cool European sky on the other,
   drifting in opposite (mirrored) directions and reacting to the pointer. */
.hero__mirror { position: absolute; inset: 0; z-index: -2; --mx: 0; --my: 0; }
.blob {
  position: absolute; border-radius: 50%; filter: blur(70px); opacity: .9; will-change: transform;
  translate: calc(var(--mx) * var(--k, 1) * 60px) calc(var(--my) * var(--k, 1) * 40px);
  transition: translate 1.2s var(--ease-out);
}
.blob[data-mirror="-1"] { --k: -1; }
.blob--a { width: 46vw; height: 46vw; left: -12vw; top: 8%; background: radial-gradient(circle at 40% 40%, #cfe0ee, rgba(207,224,238,0) 70%); animation: driftA 22s ease-in-out infinite alternate; }
.blob--b { width: 46vw; height: 46vw; right: -12vw; top: 8%; background: radial-gradient(circle at 60% 40%, #f5d6b4, rgba(245,214,180,0) 70%); animation: driftB 22s ease-in-out infinite alternate; }
.blob--c { width: 34vw; height: 34vw; left: 18vw; bottom: -14vw; background: radial-gradient(circle, #efe3c8, rgba(239,227,200,0) 70%); animation: driftB 26s ease-in-out infinite alternate-reverse; opacity: .8; }
.blob--d { width: 34vw; height: 34vw; right: 18vw; bottom: -14vw; background: radial-gradient(circle, #e6eef2, rgba(230,238,242,0) 70%); animation: driftA 26s ease-in-out infinite alternate-reverse; opacity: .8; }
@keyframes driftA { 0% { transform: translate(0, 0) scale(1); } 50% { transform: translate(9vw, 5vh) scale(1.12); } 100% { transform: translate(4vw, -6vh) scale(.95); } }
@keyframes driftB { 0% { transform: translate(0, 0) scale(1); } 50% { transform: translate(-9vw, 5vh) scale(1.12); } 100% { transform: translate(-4vw, -6vh) scale(.95); } }
.hero__sheen {
  position: absolute; inset: -20% -40%; pointer-events: none; mix-blend-mode: soft-light;
  background: linear-gradient(105deg, transparent 38%, rgba(255,255,255,.75) 47%, rgba(255,255,255,.15) 52%, transparent 60%);
  animation: sheen 11s cubic-bezier(.45,0,.25,1) infinite; opacity: .9;
}
@keyframes sheen { 0% { transform: translateX(-45%); } 55%, 100% { transform: translateX(45%); } }

/* faint dotted map with the Dubai → Frankfurt arc */
.hero__map {
  position: absolute; inset: 0; width: 100%; height: 100%; z-index: -1; pointer-events: none;
  -webkit-mask-image: radial-gradient(ellipse 70% 60% at 50% 45%, transparent 30%, #000 75%);
          mask-image: radial-gradient(ellipse 70% 60% at 50% 45%, transparent 30%, #000 75%);
  opacity: .5;
}
.hero__map .dotmap__dots { fill: #d7cdb9; }
.hero__map .dotmap__dots circle { r: 1.7; }
.hero__arc { fill: none; stroke: var(--gold); stroke-width: 1.4; stroke-dasharray: 4 6; }
.hero__node { fill: var(--gold); }

.hero__body { flex: 1; display: grid; justify-items: center; align-content: center; text-align: center; gap: 1.6rem; padding-bottom: 3rem; }
.hero__eyebrow {
  display: inline-flex; align-items: center; gap: .55rem; height: 40px; padding: 0 1rem 0 .45rem; border-radius: 999px;
  background: rgba(255,255,255,.7); backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px);
  box-shadow: inset 0 0 0 1px rgba(22,21,15,.06), var(--shadow-sm); font-size: .8rem; font-weight: 600; color: var(--ink-soft);
}
.hero__eyebrow .flag { width: 26px; height: 26px; box-shadow: none; }
.hero__eyebrow-2 { display: inline-flex; align-items: center; gap: .55rem; }
.hero__eyebrow i { width: 1px; height: 16px; background: var(--line-2); margin: 0 .35rem; }
.hero__title {
  font-family: var(--sans); font-weight: 600; font-size: clamp(2.6rem, .9rem + 5.6vw, 6.4rem);
  line-height: 1.02; letter-spacing: -.05em; color: var(--ink); max-width: 14em; text-wrap: balance;
}
.hero__accent {
  font-family: var(--serif); font-style: italic; font-weight: 400; letter-spacing: -.035em;
  background: linear-gradient(100deg, #8a6a37 0%, #c9a66b 40%, #8a6a37 60%, #b8955a 100%); background-size: 200% 100%;
  -webkit-background-clip: text; background-clip: text; color: transparent; padding-right: .06em;
  animation: shimmer 8s ease-in-out infinite;
}
@keyframes shimmer { 50% { background-position: 100% 0; } }
.hero__lede { max-width: 40rem; font-size: clamp(1rem, .95rem + .3vw, 1.15rem); line-height: 1.7; color: var(--ink-soft); }
.hero__actions { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 1.2rem 2rem; margin-top: .6rem; }

.btn--xl { height: 64px; padding: 0 .55rem 0 1.8rem; font-size: 1rem; gap: 2.2rem; }
.btn--xl .arr { width: 48px; height: 48px; margin-right: 0; }
.btn--xl .arr svg { width: 20px; height: 20px; }

.hero__proof { display: flex; align-items: center; gap: .9rem; text-align: left; }
.hero__flags { display: flex; }
.hero__flags .flag { width: 40px; height: 40px; box-shadow: 0 0 0 3px #fff; transition: transform .4s var(--ease-out); }
.hero__flags .flag + .flag { margin-left: -12px; }
.hero__proof:hover .flag { transform: translateY(-3px); }
.hero__proof:hover .flag:nth-child(2) { transition-delay: .04s; } .hero__proof:hover .flag:nth-child(3) { transition-delay: .08s; }
.hero__proof:hover .flag:nth-child(4) { transition-delay: .12s; } .hero__proof:hover .flag:nth-child(5) { transition-delay: .16s; }
.hero__proof-txt { display: grid; line-height: 1.3; }
.hero__proof-txt b { font-size: .92rem; font-weight: 700; }
.hero__proof-txt small { font-size: .82rem; color: var(--muted); }

/* destination strip */
.hero__strip { padding: 0 0 clamp(1.8rem, 1rem + 2vw, 3rem); }
.hero__strip-k { display: flex; align-items: center; gap: 1.5rem; max-width: 900px; margin: 0 auto 1.6rem; padding-inline: var(--gutter); font-size: .88rem; color: var(--muted); text-align: center; }
.hero__strip-k::before, .hero__strip-k::after { content: ""; flex: 1; height: 1px; background: linear-gradient(90deg, transparent, var(--line-2)); }
.hero__strip-k::after { background: linear-gradient(270deg, transparent, var(--line-2)); }
.marquee { display: flex; overflow: hidden; -webkit-mask-image: linear-gradient(90deg, transparent, #000 12%, #000 88%, transparent); mask-image: linear-gradient(90deg, transparent, #000 12%, #000 88%, transparent); }
.marquee__row { display: flex; flex: none; gap: clamp(2.5rem, 5vw, 4.5rem); padding-right: clamp(2.5rem, 5vw, 4.5rem); animation: marquee 48s linear infinite; }
.marquee__row li { display: inline-flex; align-items: center; gap: .6rem; font-size: clamp(1.15rem, 1rem + .6vw, 1.6rem); font-weight: 700; letter-spacing: -.03em; color: var(--ink); white-space: nowrap; opacity: .82; }
.marquee__row .flag { width: 28px; height: 28px; box-shadow: none; }
.marquee:hover .marquee__row { animation-play-state: paused; }
@keyframes marquee { to { transform: translateX(-100%); } }

/* nav CTA arrow + primary arrow style (white circle, like the reference) */
.btn--primary .arr { background: #fff; color: var(--ink); }
.btn--primary:hover .arr { background: var(--ink); color: #fff; }

@media (max-width: 760px) {
  .hero { padding: 6px 6px 0; }
  .hero__panel { padding-top: calc(var(--nav-h) + 2.5rem); min-height: 0; }
  .br-lg { display: none; }
  .hero__title { font-size: clamp(2.35rem, 10.5vw, 3.2rem); letter-spacing: -.045em; }
  .hero__eyebrow { font-size: .72rem; padding-right: .8rem; }
  .hero__eyebrow-2 { display: none !important; }
  .hero__actions { width: 100%; flex-direction: column; gap: 1.4rem; }
  .btn--xl { width: 100%; justify-content: space-between; height: 60px; }
  .hero__map { opacity: .4; -webkit-mask-image: radial-gradient(ellipse 90% 60% at 50% 40%, transparent 35%, #000 80%); mask-image: radial-gradient(ellipse 90% 60% at 50% 40%, transparent 35%, #000 80%); }
  .blob { filter: blur(50px); }
  .blob--a, .blob--b { width: 90vw; height: 90vw; }
  .blob--a { left: -40vw; } .blob--b { right: -40vw; }
  .hero__strip-k { font-size: .78rem; gap: .8rem; }
}
@media (prefers-reduced-motion: reduce) {
  .blob, .hero__sheen, .hero__accent, .marquee__row { animation: none !important; }
}
@media (max-width: 420px) {
  .hero__flags .flag { width: 34px; height: 34px; }
  .hero__flags .flag + .flag { margin-left: -11px; }
  .hero__proof-txt b { font-size: .82rem; white-space: nowrap; }
  .hero__proof-txt small { font-size: .76rem; }
}

/* ── intro ── */
.textlink { display: inline-flex; align-items: center; gap: .45rem; font-size: .9rem; font-weight: 600; color: var(--ink); border-bottom: 1px solid var(--gold); padding-bottom: .2rem; }
.textlink .icon { width: 16px; height: 16px; color: var(--gold-ink); transition: transform .4s var(--ease-out); }
.textlink:hover .icon { transform: translateX(4px); }

.intro__head { display: grid; gap: 1.2rem; margin-bottom: clamp(2.5rem, 1.5rem + 3vw, 4.5rem); }
.intro__side { display: grid; gap: 1.2rem; justify-items: start; color: var(--ink-soft); font-size: .95rem; max-width: 26rem; }
@media (min-width: 900px) {
  .intro__head { grid-template-columns: 2fr 5fr 3fr; gap: 2.5rem; align-items: start; }
  .intro__head .kicker { padding-top: .8rem; }
  .intro__title { max-width: 9em; }
}

.bento { display: grid; gap: clamp(.9rem, 1.4vw, 1.4rem); grid-template-columns: 3fr 2.4fr 4.4fr; align-items: end; }
.bento > * { border-radius: var(--r); }
.bento__a { height: clamp(340px, 34vw, 460px); color: #fff; display: block; }
.bento__a::after { content: ""; position: absolute; inset: 0; background: linear-gradient(0deg, rgba(22,21,15,.6), rgba(22,21,15,0) 50%); z-index: 1; }
.bento__expand { position: absolute; top: 1rem; right: 1rem; z-index: 2; color: var(--ink); }
.bento__time { position: absolute; left: 1.3rem; right: 1.3rem; bottom: 1.2rem; z-index: 2; display: flex; align-items: flex-end; gap: .8rem; }
.bento__clock { font-size: clamp(2.6rem, 2rem + 2vw, 3.6rem); line-height: .9; letter-spacing: -.04em; font-variant-numeric: tabular-nums; }
.bento__where { font-size: .9rem; font-weight: 600; line-height: 1.25; padding-bottom: .2rem; }
.bento__where small { font-weight: 400; opacity: .8; font-size: .78rem; }

.bento__b { height: clamp(280px, 26vw, 360px); background: var(--ivory); padding: 1.5rem; display: flex; flex-direction: column; justify-content: space-between; gap: 1rem; }
.flagstack { display: flex; }
.flagstack .flag + .flag { margin-left: -8px; }
.bento__big { font-size: clamp(1.7rem, 1.3rem + 1vw, 2.3rem); line-height: 1; letter-spacing: -.03em; display: flex; align-items: center; gap: .5rem; }
.bento__big .icon { width: 26px; height: 26px; color: var(--gold); fill: var(--gold); stroke: none; }
.bento__txt { font-size: .88rem; color: var(--ink-soft); line-height: 1.55; }

.bento__c { height: clamp(280px, 26vw, 360px); color: #fff; }
.slide { position: absolute; inset: 0; opacity: 0; transition: opacity .9s var(--ease); }
.slide.is-active { opacity: 1; z-index: 1; }
.slide img { width: 100%; height: 100%; object-fit: cover; transform: scale(1.06); transition: transform 6s var(--ease-out); }
.slide.is-active img { transform: none; }
.slide::after { content: ""; position: absolute; inset: 0; background: linear-gradient(0deg, rgba(22,21,15,.55), rgba(22,21,15,0) 55%); }
.slide figcaption { position: absolute; z-index: 2; right: 1.1rem; bottom: 1.1rem; max-width: 62%; display: grid; gap: .1rem; padding: .8rem 1rem; border-radius: var(--r-sm); background: rgba(22,21,15,.32); backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px); text-align: right; }
.slide figcaption b { font-family: var(--serif); font-weight: 500; font-size: 1.2rem; letter-spacing: -.01em; line-height: 1.15; }
.slide figcaption span { font-size: .78rem; opacity: .85; }
.bento__nav { position: absolute; z-index: 3; left: 1.1rem; bottom: 1.1rem; display: flex; gap: .45rem; }
.bento__nav .ibtn { width: 40px; height: 40px; }

@media (max-width: 899px) {
  .bento { grid-template-columns: 1fr 1fr; align-items: stretch; }
  .bento__a { height: auto; aspect-ratio: auto; min-height: 300px; }
  .bento__b { height: auto; }
  .bento__c { grid-column: 1 / -1; height: auto; aspect-ratio: 4 / 3.2; }
}
@media (max-width: 480px) {
  .bento__a { min-height: 270px; }
  .bento__b { padding: 1.1rem; }
  .bento__big { font-size: 1.45rem; }
  .bento__big .icon { display: none; }
  .bento__txt { font-size: .8rem; }
  .bento__clock { font-size: 2.3rem; }
  .bento__time { flex-direction: column; align-items: flex-start; gap: .3rem; left: 1rem; }
  .flagstack .flag { width: 28px; height: 28px; }
  .slide figcaption { max-width: 70%; }
}

/* ── takeoff ── */
/* ── Brand film: full-width logo-to-plane animation that reads as part of the page ── */
.intro { padding-bottom: clamp(1rem, .5rem + 2vw, 2.5rem); }
.takeoff { position: relative; overflow: hidden; padding-block: 0 clamp(1rem, .5rem + 2vw, 2.5rem); }
.takeoff__film {
  position: relative; width: 100%; aspect-ratio: 16 / 9; max-height: min(82vh, 860px);
  margin-inline: auto; pointer-events: none; user-select: none;
}
.takeoff__video {
  width: 100%; height: 100%; object-fit: cover; display: block; background: transparent;
  mix-blend-mode: multiply;               /* the video's white backdrop takes on the page colour */
  /* soft edges on all four sides so there is no visible frame */
  -webkit-mask-image: linear-gradient(90deg, transparent 0, #000 12%, #000 88%, transparent 100%),
                      linear-gradient(180deg, transparent 0, #000 14%, #000 86%, transparent 100%);
  -webkit-mask-composite: source-in;
          mask-image: linear-gradient(90deg, transparent 0, #000 12%, #000 88%, transparent 100%),
                      linear-gradient(180deg, transparent 0, #000 14%, #000 86%, transparent 100%);
          mask-composite: intersect;
  transition: opacity .45s var(--ease);
}
.takeoff__video.is-fading { opacity: 0; }
.takeoff__video::-webkit-media-controls, .takeoff__video::-webkit-media-controls-start-playback-button { display: none !important; -webkit-appearance: none; }
@media (max-width: 700px) {
  .takeoff__film { aspect-ratio: 4 / 3; }
}

/* ── germany ── */
.germany__bar { display: flex; align-items: center; justify-content: space-between; gap: 1rem; margin-bottom: 1.4rem; }
.germany__note { display: inline-flex; align-items: center; gap: .5rem; font-size: .82rem; font-weight: 500; color: var(--muted); }
.germany__note .icon { width: 18px; height: 18px; color: var(--gold-ink); }
.germany__wrap { position: relative; }

.cities { grid-auto-columns: calc((100% - 3 * clamp(.9rem, 1.6vw, 1.5rem)) / 4); align-items: start; padding-bottom: 4.5rem; }
.city--low { padding-top: 3.5rem; }
.city__card { display: block; aspect-ratio: 3 / 4.1; color: #fff; }
.city__card::after { content: ""; position: absolute; inset: 0; z-index: 1; background: linear-gradient(0deg, rgba(22,21,15,.72) 0%, rgba(22,21,15,0) 48%); }
.city__body { position: absolute; z-index: 2; left: 1.2rem; right: 1.2rem; bottom: 1.2rem; display: grid; gap: .1rem; }
.city__body small { font-size: .72rem; opacity: .8; }
.city__body b { font-family: var(--serif); font-weight: 500; font-size: clamp(1.6rem, 1.2rem + 1vw, 2.1rem); letter-spacing: -.02em; line-height: 1.05; }
.city__body span { font-size: .8rem; opacity: .85; max-height: 0; overflow: hidden; transition: max-height .6s var(--ease-out), opacity .4s; opacity: 0; }
.city__card:hover .city__body span, .city__card:focus-visible .city__body span { max-height: 3em; opacity: .9; }
.city__go { position: absolute; z-index: 2; top: 1rem; right: 1rem; width: 40px; height: 40px; opacity: 0; transform: scale(.8); transition: opacity .4s, transform .5s var(--ease-out); color: var(--ink); }
.city__card:hover .city__go { opacity: 1; transform: none; }
.germany__cta { position: absolute; right: var(--gutter); bottom: 0; }

@media (hover: none) {
  .city__body span { max-height: none; opacity: .9; }
}
@media (max-width: 999px) {
  .cities { grid-auto-columns: min(68vw, 300px); padding-bottom: 0; margin-inline: calc(var(--gutter) * -1); padding-inline: var(--gutter); }
  .city--low { padding-top: 2rem; }
  .germany__cta { position: static; margin-top: 1.8rem; }
  .germany__wrap { display: grid; }
  .germany__cta { justify-self: center; }
  .city__body span { max-height: none; opacity: .9; }
}
@media (max-width: 600px) { .germany__note { display: none; } .germany__bar { justify-content: center; } }
.germany__note { margin-left: auto; }

/* Auto-moving carousel: runs edge to edge so cards glide off-screen instead of being clipped inside the page column. */
.cities[data-marquee] { -webkit-mask-image: linear-gradient(90deg, transparent, #000 7%, #000 93%, transparent); mask-image: linear-gradient(90deg, transparent, #000 7%, #000 93%, transparent); }
@media (min-width: 1000px) {
  .cities[data-marquee] {
    --gap: clamp(.9rem, 1.6vw, 1.5rem);
    grid-auto-columns: calc((min(100vw, var(--max)) - 2 * var(--gutter) - 3 * var(--gap)) / 4);
    margin-inline: calc(50% - 50vw); width: 100vw; padding-inline: 0;
  }
}

/* ── audience ── */
.audience { background: var(--white); }
.people { grid-auto-columns: calc((100% - 3 * clamp(.9rem, 1.6vw, 1.5rem)) / 4); }
.person { position: relative; border-radius: var(--r); background: var(--ivory); padding: 10px; display: flex; flex-direction: column; }
.person__img { aspect-ratio: 4 / 4.6; border-radius: calc(var(--r) - 6px); }
.person__label {
  position: relative; margin: -3.2rem .6rem 0; z-index: 2; background: #fff; border-radius: var(--r-sm); padding: 1.1rem 1rem 1rem;
  box-shadow: var(--shadow-sm); display: grid; gap: .35rem; flex: 1; align-content: start;
}
.person__ic { position: absolute; top: -18px; right: 1rem; width: 36px; height: 36px; border-radius: 50%; display: grid; place-items: center; background: var(--gold); color: var(--ink); box-shadow: 0 0 0 4px #fff; }
.person__ic .icon { width: 18px; height: 18px; }
.person__label h3 { font-size: 1.2rem; letter-spacing: -.01em; }
.person__label p { font-size: .82rem; color: var(--ink-soft); line-height: 1.55; }
.person:hover .person__img img { transform: scale(1.05); }
@media (max-width: 999px) {
  .people { grid-auto-columns: min(72vw, 300px); margin-inline: calc(var(--gutter) * -1); padding-inline: var(--gutter); }
}

/* ── planner ── */
.plan { max-width: 1120px; margin: 0 auto clamp(3.5rem, 2.5rem + 3vw, 5.5rem); background: #fff; border-radius: var(--r-lg); box-shadow: var(--shadow); padding: 1rem; }
.plan__tabs { border: 0; margin: 0; padding: .2rem .2rem .9rem; display: flex; gap: .4rem; flex-wrap: wrap; }
.plan__tabs label { cursor: pointer; }
.plan__tabs input { position: absolute; opacity: 0; pointer-events: none; }
.plan__tabs span { display: inline-flex; align-items: center; gap: .45rem; height: 38px; padding: 0 1rem; border-radius: 999px; font-size: .84rem; font-weight: 600; color: var(--ink-soft); transition: background-color .3s, color .3s; }
.plan__tabs .icon { width: 17px; height: 17px; }
.plan__tabs label:hover span { background: var(--ivory); }
.plan__tabs input:checked + span { background: var(--gold-soft); color: var(--ink); }
.plan__tabs input:checked + span .icon { color: var(--gold-ink); }
.plan__tabs input:focus-visible + span { outline: 2px solid var(--gold); outline-offset: 2px; }

.plan__row { display: grid; grid-template-columns: repeat(4, 1fr) auto; background: var(--ivory); border-radius: calc(var(--r-lg) - 10px); padding: .45rem; gap: .2rem; align-items: center; }
.plan__field {
  position: relative; display: grid; grid-template-columns: 38px 1fr; grid-template-rows: auto auto; column-gap: .6rem;
  padding: .55rem .8rem; border-radius: var(--r-sm); cursor: pointer; transition: background-color .3s; min-width: 0;
}
.plan__field:hover, .plan__field:focus-within { background: #fff; }
.plan__field + .plan__field::before { content: ""; position: absolute; left: -.1rem; top: 22%; bottom: 22%; width: 1px; background: var(--line-2); }
.plan__ic { grid-row: 1 / 3; width: 38px; height: 38px; border-radius: 50%; background: #fff; display: grid; place-items: center; color: var(--gold-ink); align-self: center; }
.plan__field:hover .plan__ic, .plan__field:focus-within .plan__ic { background: var(--ivory); }
.plan__ic .icon { width: 18px; height: 18px; }
.plan__lbl { font-size: .72rem; font-weight: 600; color: var(--muted); }
.plan__field select, .plan__field input {
  border: 0; background: transparent; padding: 0; font-size: .92rem; font-weight: 600; color: var(--ink); width: 100%; min-width: 0;
  appearance: none; -webkit-appearance: none; outline: none; cursor: pointer; text-overflow: ellipsis;
}
.plan__field input::-webkit-calendar-picker-indicator { opacity: .5; cursor: pointer; }
.plan__go { height: 58px; margin-left: .3rem; }

.ideas-head { display: flex; align-items: baseline; justify-content: space-between; gap: 1rem; flex-wrap: wrap; margin-bottom: 1.5rem; }
.ideas-head p { font-size: .9rem; }
.ideas { display: grid; grid-template-columns: repeat(3, 1fr); gap: clamp(1rem, 1.8vw, 1.6rem); }
.idea { border-radius: var(--r); }
.idea a { display: block; }
.idea__img { aspect-ratio: 4 / 3.1; }
.idea__tag { position: absolute; z-index: 2; top: .9rem; left: .9rem; display: inline-flex; align-items: center; gap: .45rem; height: 32px; padding: 0 .8rem 0 .35rem; border-radius: 999px; background: rgba(255,255,255,.9); backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px); font-size: .75rem; font-weight: 700; }
.idea__tag .flag { width: 22px; height: 22px; box-shadow: none; }
.idea__body { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: 1rem .3rem .4rem; }
.idea__body h4 { font-family: var(--serif); font-weight: 500; font-size: 1.3rem; letter-spacing: -.015em; line-height: 1.2; }
.idea__body p { display: flex; align-items: center; gap: .35rem; font-size: .8rem; color: var(--muted); margin-top: .2rem; }
.idea__body p .icon { width: 15px; height: 15px; flex: none; }
.idea .ibtn { width: 40px; height: 40px; }
.idea:hover .ibtn { background: var(--ink); color: #fff; border-color: var(--ink); }
.idea.lift:hover { box-shadow: none; }

@media (max-width: 1080px) {
  .plan__row { grid-template-columns: 1fr 1fr; }
  .plan__field + .plan__field::before { display: none; }
  .plan__go { grid-column: 1 / -1; margin: .3rem 0 0; width: 100%; }
}
@media (max-width: 999px) { .ideas { grid-template-columns: 1fr 1fr; } }
@media (max-width: 600px) {
  .plan { padding: .6rem; border-radius: var(--r); }
  .plan__tabs { gap: .2rem; padding-bottom: .6rem; flex-wrap: nowrap; overflow-x: auto; scrollbar-width: none; }
  .plan__tabs span { padding: 0 .8rem; font-size: .8rem; }
  .plan__tabs .icon { display: none; }
  .plan__row { grid-template-columns: 1fr; border-radius: var(--r-sm); }
  .plan__field { background: #fff; }
  .ideas { grid-template-columns: 1fr; }
  .idea__img { aspect-ratio: 4 / 2.8; }
}
@media (max-width: 600px) {
  .ideas { grid-template-columns: none; grid-auto-flow: column; grid-auto-columns: 84%; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; margin-inline: calc(var(--gutter) * -1); padding-inline: var(--gutter); scroll-padding-inline: var(--gutter); }
  .ideas::-webkit-scrollbar { display: none; }
  .idea { scroll-snap-align: start; }
}

/* ───────── Departure date trigger + glass calendar ───────── */
.datefield { position: relative; display: block; min-width: 0; }
.datefield__btn { display: flex; align-items: center; justify-content: space-between; gap: .6rem; width: 100%; padding: 0; border: 0; background: transparent; text-align: left; cursor: pointer; font: inherit; color: inherit; }
.datefield__ph { font-size: .92rem; font-weight: 600; color: var(--ink); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; min-width: 0; }
.datefield__ph:not(.is-set) { color: var(--ink-soft); }
.field .datefield__btn { min-height: 52px; padding: .85rem 1rem; border-radius: var(--r-sm); border: 1px solid var(--line-2); background: var(--bg); transition: border-color .3s, box-shadow .3s, background-color .3s; }
.field .datefield__btn:hover, .field .datefield__btn[aria-expanded="true"], .field .datefield__btn:focus-visible { outline: none; border-color: var(--gold); background: #fff; box-shadow: 0 0 0 4px rgba(184,149,90,.15); }
.field .datefield__ph { font-size: .95rem; font-weight: 500; }
.field .datefield__btn .icon { width: 18px; height: 18px; color: var(--gold-ink); flex: none; }

.cal {
  position: fixed; z-index: 300; padding: 1.1rem 1.1rem .9rem; border-radius: 26px; color: var(--ink);
  background: linear-gradient(150deg, rgba(255,255,255,.82), rgba(255,248,236,.58));
  -webkit-backdrop-filter: blur(26px) saturate(170%); backdrop-filter: blur(26px) saturate(170%);
  border: 1px solid rgba(255,255,255,.75);
  box-shadow: 0 30px 70px -18px rgba(22,21,15,.35), 0 2px 0 rgba(255,255,255,.9) inset, 0 0 0 1px rgba(184,149,90,.12);
  opacity: 0; transform: translateY(-8px) scale(.97); transform-origin: top left;
  transition: opacity .22s var(--ease), transform .3s var(--ease-out);
}
@supports not ((-webkit-backdrop-filter: blur(1px)) or (backdrop-filter: blur(1px))) { .cal { background: rgba(255,252,246,.97); } }
.cal[hidden] { display: none; }
.cal.is-open { opacity: 1; transform: none; }
.cal__head { display: flex; align-items: center; justify-content: space-between; gap: .5rem; margin-bottom: .9rem; }
.cal__title { font-size: 1.05rem; color: var(--ink-soft); }
.cal__title b { font-family: var(--serif); font-weight: 500; font-size: 1.3rem; letter-spacing: -.01em; color: var(--ink); }
.cal__nav { width: 38px; height: 38px; border-radius: 50%; display: grid; place-items: center; color: var(--ink); background: rgba(255,255,255,.65); box-shadow: inset 0 0 0 1px rgba(22,21,15,.08); transition: background-color .25s, transform .25s; }
.cal__nav:hover:not(:disabled) { background: #fff; transform: scale(1.06); }
.cal__nav:disabled { opacity: .3; cursor: default; }
.cal__dow, .cal__grid { display: grid; grid-template-columns: repeat(7, 1fr); gap: 3px; text-align: center; }
.cal__dow { margin-bottom: .3rem; }
.cal__dow span { font-size: .68rem; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; color: var(--muted); padding: .3rem 0; }
.cal__day { aspect-ratio: 1; display: grid; place-items: center; border-radius: 50%; font-size: .92rem; font-weight: 500; color: var(--ink); font-variant-numeric: tabular-nums; transition: background-color .2s, color .2s, transform .2s, box-shadow .2s; }
.cal__day:hover:not(:disabled) { background: rgba(184,149,90,.2); }
.cal__day:disabled { color: rgba(22,21,15,.26); cursor: default; }
.cal__day.is-today { box-shadow: inset 0 0 0 1.5px var(--gold); font-weight: 700; }
.cal__day.is-sel { background: var(--ink); color: #fff; font-weight: 700; box-shadow: 0 8px 18px -6px rgba(22,21,15,.55), 0 0 0 3px rgba(184,149,90,.35); }
.cal__day:focus-visible, .cal__nav:focus-visible, .cal__link:focus-visible { outline: 2px solid var(--gold); outline-offset: 2px; }
.cal__foot { display: flex; justify-content: space-between; margin-top: .8rem; padding-top: .7rem; border-top: 1px solid rgba(22,21,15,.08); }
.cal__link { font-size: .85rem; font-weight: 600; color: var(--muted); padding: .35rem .6rem; border-radius: 999px; transition: background-color .2s, color .2s; }
.cal__link:hover { background: rgba(255,255,255,.7); color: var(--ink); }
.cal__link--gold { color: var(--gold-ink); }
@media (prefers-reduced-motion: reduce) { .cal { transition: none; } }

/* ───────── Lead popup (opens from "Plan My Journey") ───────── */
.has-modal { overflow: hidden; }
.modal { position: fixed; inset: 0; z-index: 400; display: grid; place-items: center; padding: 1rem; overflow-y: auto; }
.modal[hidden] { display: none; }
.modal__scrim { position: fixed; inset: 0; background: rgba(22,21,15,.42); -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px); opacity: 0; transition: opacity .3s var(--ease); }
.modal.is-open .modal__scrim { opacity: 1; }
.modal__card {
  position: relative; width: min(100%, 480px); margin: auto; padding: clamp(1.4rem, 1rem + 1.6vw, 2.1rem); border-radius: 28px; outline: none;
  background: linear-gradient(150deg, rgba(255,255,255,.9), rgba(255,248,236,.72));
  -webkit-backdrop-filter: blur(28px) saturate(170%); backdrop-filter: blur(28px) saturate(170%);
  border: 1px solid rgba(255,255,255,.8);
  box-shadow: 0 40px 90px -20px rgba(22,21,15,.45), 0 2px 0 rgba(255,255,255,.95) inset, 0 0 0 1px rgba(184,149,90,.14);
  opacity: 0; transform: translateY(18px) scale(.97); transition: opacity .3s var(--ease), transform .4s var(--ease-out);
}
@supports not ((-webkit-backdrop-filter: blur(1px)) or (backdrop-filter: blur(1px))) { .modal__card { background: rgba(255,252,246,.98); } }
.modal.is-open .modal__card { opacity: 1; transform: none; }
.modal__x { position: absolute; top: 1rem; right: 1rem; width: 38px; height: 38px; border-radius: 50%; display: grid; place-items: center; color: var(--ink); background: rgba(255,255,255,.7); box-shadow: inset 0 0 0 1px rgba(22,21,15,.08); transition: background-color .25s, transform .25s; }
.modal__x:hover { background: #fff; transform: rotate(90deg); }
.modal__title { font-family: var(--serif); font-weight: 500; font-size: clamp(1.6rem, 1.3rem + 1vw, 2.1rem); letter-spacing: -.02em; line-height: 1.1; margin: .4rem 0 1rem; padding-right: 2.4rem; }
.modal__summary { display: flex; flex-wrap: wrap; gap: .4rem; margin-bottom: 1.2rem; }
.modal__summary li { font-size: .78rem; font-weight: 600; color: var(--gold-ink); padding: .32rem .75rem; border-radius: 999px; background: rgba(184,149,90,.14); }
.modal__form { display: grid; gap: .8rem; }
.modal__row { display: grid; grid-template-columns: 1fr 1fr; gap: .8rem; }
.modal__error { font-size: .85rem; color: #b04a34; }
.modal__send { width: 100%; justify-content: center; margin-top: .3rem; }
.modal__note { font-size: .76rem; color: var(--muted); text-align: center; }
.modal__note a { text-decoration: underline; text-underline-offset: 2px; }
.modal__done { display: grid; justify-items: center; text-align: center; gap: .6rem; padding: 1rem 0 .4rem; outline: none; }
.modal__done[hidden], [data-lead-step][hidden] { display: none; }
.modal__done .modal__title { padding-right: 0; margin: .2rem 0 0; }
.modal__done p { color: var(--ink-soft); max-width: 30ch; margin-bottom: .6rem; }
@media (max-width: 520px) { .modal__row { grid-template-columns: 1fr; } }
@media (prefers-reduced-motion: reduce) { .modal__card, .modal__scrim { transition: none; } }

/* ───────── Branded dropdown (replaces the native select list) ───────── */
.dd__btn { display: flex; align-items: center; justify-content: space-between; gap: .6rem; width: 100%; min-width: 0; padding: 0; border: 0; background: transparent; text-align: left; cursor: pointer; font: inherit; color: inherit; }
.dd__val { font-size: .92rem; font-weight: 600; color: var(--ink); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; min-width: 0; }
.dd__chev { width: 16px; height: 16px; color: var(--gold-ink); flex: none; opacity: .75; transition: transform .3s var(--ease-out); }
.dd__btn[aria-expanded="true"] .dd__chev { transform: rotate(180deg); }
.plan__field .dd__btn { outline: none; }
.plan__field .dd__chev { display: none; }
.field .dd__btn { min-height: 52px; padding: .85rem 1rem; border-radius: var(--r-sm); border: 1px solid var(--line-2); background: var(--bg); transition: border-color .3s, box-shadow .3s, background-color .3s; }
.field .dd__btn:hover, .field .dd__btn[aria-expanded="true"], .field .dd__btn:focus-visible { outline: none; border-color: var(--gold); background: #fff; box-shadow: 0 0 0 4px rgba(184,149,90,.15); }
.field .dd__val { font-size: .95rem; font-weight: 500; }

.dd {
  position: fixed; z-index: 300; overflow-y: auto; overscroll-behavior: contain; padding: .45rem; border-radius: 22px; color: var(--ink);
  background: linear-gradient(150deg, rgba(255,255,255,.95), rgba(255,248,236,.86));
  -webkit-backdrop-filter: blur(26px) saturate(170%); backdrop-filter: blur(26px) saturate(170%);
  border: 1px solid rgba(255,255,255,.78);
  box-shadow: 0 28px 64px -18px rgba(22,21,15,.35), 0 2px 0 rgba(255,255,255,.9) inset, 0 0 0 1px rgba(184,149,90,.12);
  opacity: 0; transform: translateY(-6px) scale(.98); transform-origin: top left; scrollbar-width: thin;
  transition: opacity .2s var(--ease), transform .3s var(--ease-out);
}
@supports not ((-webkit-backdrop-filter: blur(1px)) or (backdrop-filter: blur(1px))) { .dd { background: rgba(255,252,246,.98); } }
.dd[hidden] { display: none; }
.dd.is-open { opacity: 1; transform: none; }
.dd__group { padding: .7rem .8rem .3rem; font-size: .68rem; font-weight: 700; letter-spacing: .09em; text-transform: uppercase; color: var(--muted); }
.dd__opt { display: flex; align-items: center; justify-content: space-between; gap: 1rem; width: 100%; padding: .62rem .8rem; border-radius: 14px; font-size: .93rem; font-weight: 500; color: var(--ink); text-align: left; transition: background-color .18s, color .18s; }
.dd__opt:hover, .dd__opt:focus-visible { background: rgba(184,149,90,.18); outline: none; }
.dd__opt.is-sel { font-weight: 700; background: rgba(184,149,90,.14); color: var(--gold-ink); }
.dd__tick { opacity: 0; flex: none; color: var(--gold-ink); }
.dd__opt.is-sel .dd__tick { opacity: 1; }
@media (prefers-reduced-motion: reduce) { .dd { transition: none; } }

/* ── business ── */
.business__grid { display: grid; gap: 3rem; align-items: center; }
.business__copy { display: grid; gap: 1.5rem; justify-items: start; }
.checks { display: grid; grid-template-columns: 1fr 1fr; gap: .6rem; width: 100%; }
.checks li { display: flex; align-items: center; gap: .6rem; padding: .75rem .9rem; border-radius: var(--r-sm); background: #fff; box-shadow: inset 0 0 0 1px var(--line); font-size: .87rem; font-weight: 500; }
.checks .icon { width: 22px; height: 22px; padding: 4px; border-radius: 50%; background: var(--gold-soft); color: var(--gold-ink); stroke-width: 2.4; flex: none; }
.checks li:last-child { grid-column: 1 / -1; }

.business__visual { position: relative; padding-bottom: 3rem; }
.business__img { aspect-ratio: 5 / 5.4; border-radius: var(--r-lg); }
.itin {
  position: absolute; left: -2.5rem; bottom: 0; width: min(330px, 80%); background: #fff; border-radius: var(--r); padding: 1.1rem 1.2rem; box-shadow: var(--shadow);
}
.itin__head { display: flex; align-items: center; gap: .6rem; padding-bottom: .8rem; border-bottom: 1px dashed var(--line-2); }
.itin__head > span { display: flex; }
.itin__head .flag { width: 22px; height: 22px; }
.itin__head .flag + .flag { margin-left: -6px; }
.itin__head b { font-size: .9rem; letter-spacing: .04em; }
.itin__head small { margin-left: auto; font-size: .7rem; color: var(--muted); }
.itin__list { display: grid; gap: .1rem; padding-top: .7rem; position: relative; }
.itin__list li { display: grid; grid-template-columns: 4.2rem 1fr; gap: .6rem; padding: .45rem 0; }
.itin__list span { font-size: .72rem; font-weight: 700; color: var(--gold-ink); padding-top: .15rem; }
.itin__list p { font-size: .86rem; font-weight: 600; display: grid; line-height: 1.35; }
.itin__list small { font-weight: 400; font-size: .76rem; color: var(--muted); }

@media (min-width: 1000px) { .business__grid { grid-template-columns: 5fr 6fr; gap: clamp(3rem, 6vw, 6rem); } .business__visual { order: 2; } }
@media (max-width: 999px) { .itin { left: 1rem; } }
@media (max-width: 600px) {
  .checks { gap: .45rem; }
  .checks li { padding: .55rem .6rem; font-size: .76rem; gap: .45rem; line-height: 1.3; }
  .checks .icon { width: 18px; height: 18px; padding: 3px; }
  .business__copy .btn { width: 100%; }
  .business__img { aspect-ratio: 4 / 4.2; }
  .itin { left: .6rem; right: .6rem; width: auto; }
  .business__visual { padding-bottom: 7rem; }
}

/* ── events ── */
.events { padding-block: 0; }
.events__panel { position: relative; overflow: hidden; isolation: isolate; border-radius: var(--r-lg); background: var(--ink); color: #fff; padding: clamp(2rem, 1rem + 4.5vw, 5rem); }
.events__bg { position: absolute; inset: 0; z-index: -1; }
.events__bg img { width: 100%; height: 100%; object-fit: cover; opacity: .32; filter: grayscale(.4); }
.events__bg::after { content: ""; position: absolute; inset: 0; background: linear-gradient(105deg, rgba(22,21,15,.97) 30%, rgba(22,21,15,.75)); }
.events__grid { display: grid; gap: 2.5rem; }
.events__copy { display: grid; gap: 1.4rem; justify-items: start; align-content: center; }
.events__lede { color: rgba(255,255,255,.72); font-size: var(--fs-lead); line-height: 1.7; max-width: 30rem; }
.etypes { display: grid; grid-template-columns: 1fr 1fr; gap: .7rem; }
.etypes li {
  display: grid; grid-template-columns: auto 1fr; column-gap: .8rem; row-gap: .1rem; align-items: center;
  padding: 1rem; border-radius: var(--r-sm); background: rgba(255,255,255,.06); border: 1px solid rgba(255,255,255,.1);
  transition: background-color .4s, border-color .4s, transform .4s var(--ease-out);
}
.etypes li:hover { background: rgba(255,255,255,.1); border-color: rgba(226,204,159,.4); transform: translateY(-2px); }
.etypes .icon { grid-row: 1 / 3; width: 40px; height: 40px; padding: 10px; border-radius: 50%; background: rgba(226,204,159,.14); color: var(--gold-light); }
.etypes b { font-family: var(--serif); font-weight: 500; font-size: 1.15rem; letter-spacing: -.01em; }
.etypes span { font-size: .78rem; color: rgba(255,255,255,.6); }
.events__cities { margin-top: 1.4rem; display: grid; gap: .7rem; }
.events__cities-k { font-size: .75rem; font-weight: 600; color: rgba(255,255,255,.55); }
.events__cities ul { display: flex; flex-wrap: wrap; gap: .4rem; }
.events__cities li { font-size: .78rem; font-weight: 600; padding: .4rem .8rem; border-radius: 999px; border: 1px solid rgba(255,255,255,.18); color: rgba(255,255,255,.85); }
@media (min-width: 1000px) { .events__grid { grid-template-columns: 5fr 6fr; gap: clamp(3rem, 5vw, 5rem); } }
@media (max-width: 600px) {
  .events .container { padding-inline: 6px; }
  .events__panel { padding: 2.2rem 1.2rem; border-radius: var(--r); }
  .etypes { gap: .5rem; }
  .etypes li { grid-template-columns: 1fr; padding: .85rem; row-gap: .5rem; align-items: start; }
  .etypes .icon { grid-row: auto; width: 34px; height: 34px; padding: 8px; }
  .etypes b { font-size: 1rem; line-height: 1.2; }
  .etypes span { display: none; }
  .events__copy .btn { width: 100%; }
}

/* ── leisure ── */
.leisure { background: var(--white); }
.leisure__intro { max-width: 24rem; color: var(--ink-soft); font-size: .95rem; }
.lgrid { display: grid; gap: clamp(.9rem, 1.4vw, 1.3rem); grid-template-columns: 2fr 1fr 1fr; grid-template-rows: clamp(220px, 21vw, 300px) auto; }
.lgrid__a { grid-row: 1 / 3; min-height: 420px; }
.lgrid__b, .lgrid__c { min-height: 220px; }
.lgrid__d { grid-column: 2 / 4; background: var(--ivory); border-radius: var(--r); padding: clamp(1.3rem, 2vw, 2rem); display: grid; gap: 1.2rem; align-content: center; justify-items: start; }
.lgrid__k { font-family: var(--serif); font-size: clamp(1.3rem, 1.1rem + .6vw, 1.7rem); letter-spacing: -.015em; line-height: 1.2; }
.pills { display: flex; flex-wrap: wrap; gap: .45rem; }
.pills li { display: inline-flex; align-items: center; gap: .45rem; height: 38px; padding: 0 .95rem 0 .4rem; border-radius: 999px; background: #fff; font-size: .84rem; font-weight: 600; box-shadow: var(--shadow-sm); }
.pills .flag { width: 26px; height: 26px; box-shadow: none; }
.glass-tag { position: absolute; z-index: 2; left: .9rem; bottom: .9rem; display: inline-flex; align-items: center; gap: .45rem; height: 34px; padding: 0 .9rem; border-radius: 999px; background: rgba(255,255,255,.88); backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px); font-size: .78rem; font-weight: 700; }
.glass-tag .flag { width: 22px; height: 22px; margin-left: -.55rem; box-shadow: none; }
@media (max-width: 899px) {
  .lgrid { grid-template-columns: 1fr 1fr; grid-template-rows: auto; }
  .lgrid__a { grid-column: 1 / -1; grid-row: auto; min-height: 0; aspect-ratio: 4 / 3; }
  .lgrid__b, .lgrid__c { min-height: 0; aspect-ratio: 4 / 4.6; }
  .lgrid__d { grid-column: 1 / -1; }
}
@media (max-width: 600px) {
  .lgrid__d .btn { width: 100%; }
  .pills li { height: 34px; font-size: .78rem; }
  .pills .flag { width: 22px; height: 22px; }
  .glass-tag { font-size: .7rem; height: 30px; padding: 0 .7rem; }
}

/* ── why ── */
.why__grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: clamp(.9rem, 1.4vw, 1.3rem); }
.why__card { position: relative; overflow: hidden; display: grid; gap: .7rem; align-content: start; padding: 1.6rem 1.5rem 3.6rem; border-radius: var(--r); background: #fff; box-shadow: inset 0 0 0 1px var(--line); transition: transform .5s var(--ease-out), box-shadow .5s; min-height: 260px; }
.why__card:hover { transform: translateY(-4px); box-shadow: inset 0 0 0 1px var(--line), var(--shadow); }
.why__card p { font-size: .88rem; color: var(--ink-soft); line-height: 1.6; }
.why__ic { width: 48px; height: 48px; border-radius: 50%; display: grid; place-items: center; background: var(--gold-soft); color: var(--gold-ink); margin-bottom: .8rem; }
.why__ic .icon { width: 22px; height: 22px; }
.why__ic .flag { width: 28px; height: 28px; box-shadow: none; }
.why__n { position: absolute; right: 1.2rem; bottom: .6rem; font-family: var(--serif); font-size: 3.4rem; line-height: 1; letter-spacing: -.04em; color: var(--ivory-2); }
.why__card--dark { background: var(--ink); color: #fff; box-shadow: none; }
.why__card--dark p { color: rgba(255,255,255,.7); }
.why__card--dark .why__ic { background: rgba(226,204,159,.15); color: var(--gold-light); }
.why__card--dark .why__n { color: rgba(255,255,255,.08); }
@media (max-width: 999px) { .why__grid { grid-template-columns: 1fr 1fr; } }
@media (max-width: 520px) {
  .why__card { padding: 1.2rem 1.1rem 2.8rem; min-height: 0; }
  .why__card .h3 { font-size: 1.12rem; }
  .why__card p { font-size: .78rem; }
  .why__ic { width: 40px; height: 40px; margin-bottom: .3rem; }
  .why__n { font-size: 2.4rem; }
}

/* ── process ── */
.process { background: var(--ivory); border-radius: var(--r-lg); margin-inline: 10px; }
.steps { display: grid; grid-template-columns: repeat(3, 1fr); gap: clamp(1rem, 2vw, 2rem); position: relative; }
.steps::before { content: ""; position: absolute; left: 16%; right: 16%; top: 52px; border-top: 2px dashed var(--sand); }
.step { position: relative; display: grid; justify-items: center; text-align: center; gap: .7rem; padding: 0 1rem; }
.step__n { font-size: .72rem; font-weight: 700; letter-spacing: .08em; color: var(--gold-ink); background: #fff; padding: .3rem .7rem; border-radius: 999px; box-shadow: var(--shadow-sm); }
.step__ic { position: relative; width: 64px; height: 64px; border-radius: 50%; background: var(--ink); color: var(--gold-light); display: grid; place-items: center; box-shadow: 0 0 0 8px var(--ivory); margin-bottom: .5rem; }
.step__ic .icon { width: 26px; height: 26px; }
.step p { font-size: .9rem; color: var(--ink-soft); max-width: 18rem; }
@media (max-width: 760px) {
  .process { margin-inline: 6px; border-radius: var(--r); }
  .steps { grid-template-columns: 1fr; gap: 1.6rem; }
  .steps::before { left: 31px; right: auto; top: 40px; bottom: 40px; border-top: 0; border-left: 2px dashed var(--sand); }
  .step { grid-template-columns: 64px 1fr; justify-items: start; text-align: left; column-gap: 1rem; row-gap: .25rem; padding: 0; }
  .step__ic { grid-column: 1; grid-row: 1 / 4; margin: 0; }
  .step > :not(.step__ic) { grid-column: 2; }
  .step__n { padding: .2rem .55rem; }
}

/* ── pass ── */
.pass { display: grid; grid-template-columns: 1fr 300px; max-width: 1080px; margin-inline: auto; filter: drop-shadow(0 30px 40px rgba(22,21,15,.14)); }
.pass__main, .pass__stub { position: relative; background: #fff; }
.pass__main {
  border-radius: var(--r-lg) 0 0 var(--r-lg); padding: clamp(1.4rem, 1rem + 2vw, 2.4rem);
  -webkit-mask: radial-gradient(circle 16px at 100% 0, transparent 15px, #000 16px) top / 100% 51% no-repeat, radial-gradient(circle 16px at 100% 100%, transparent 15px, #000 16px) bottom / 100% 51% no-repeat;
          mask: radial-gradient(circle 16px at 100% 0, transparent 15px, #000 16px) top / 100% 51% no-repeat, radial-gradient(circle 16px at 100% 100%, transparent 15px, #000 16px) bottom / 100% 51% no-repeat;
}
.pass__stub {
  border-radius: 0 var(--r-lg) var(--r-lg) 0; background: var(--ink); color: #fff; padding: 2rem 1.8rem; display: grid; align-content: center; gap: .9rem; justify-items: start;
  border-left: 2px dashed rgba(255,255,255,.25);
  -webkit-mask: radial-gradient(circle 16px at 0 0, transparent 15px, #000 16px) top / 100% 51% no-repeat, radial-gradient(circle 16px at 0 100%, transparent 15px, #000 16px) bottom / 100% 51% no-repeat;
          mask: radial-gradient(circle 16px at 0 0, transparent 15px, #000 16px) top / 100% 51% no-repeat, radial-gradient(circle 16px at 0 100%, transparent 15px, #000 16px) bottom / 100% 51% no-repeat;
}
.pass__top { display: flex; justify-content: space-between; align-items: center; gap: 1rem; padding-bottom: 1.2rem; border-bottom: 1px dashed var(--line-2); }
.pass__brand { font-size: .8rem; color: var(--muted); letter-spacing: .04em; }
.pass__brand b { font-family: var(--serif); font-size: 1.15rem; color: var(--ink); font-weight: 600; letter-spacing: 0; margin-right: .3rem; }
.pass__tag { font-size: .72rem; font-weight: 700; padding: .35rem .75rem; border-radius: 999px; background: var(--gold-soft); color: var(--gold-ink); }

.pass__route { display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: 1rem; padding: 2rem 0; }
.pass__stop { display: grid; gap: .2rem; }
.pass__stop small { font-size: .7rem; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; color: var(--muted); }
.pass__stop b { font-family: var(--serif); font-weight: 500; font-size: clamp(2.6rem, 1.8rem + 2.6vw, 4.2rem); line-height: 1; letter-spacing: -.03em; }
.pass__stop > span { display: flex; align-items: center; gap: .4rem; font-size: .82rem; font-weight: 600; color: var(--ink-soft); }
.pass__stop .flag { width: 20px; height: 20px; }
.pass__flags .flag + .flag { margin-left: -9px; }
.pass__flags .flag:last-of-type { margin-right: .2rem; }
.pass__leg { position: relative; height: 2px; background: repeating-linear-gradient(90deg, var(--sand) 0 6px, transparent 6px 12px); }
.pass__plane { position: absolute; top: 50%; left: 0; transform: translate(-50%, -50%); width: 38px; height: 38px; border-radius: 50%; background: var(--ink); color: var(--gold-light); display: grid; place-items: center; transition: left 2.4s var(--ease); }
.pass__plane .icon { width: 18px; height: 18px; }
.pass.is-in .pass__plane { left: 50%; }
.pass__leg + .pass__stop + .pass__leg .pass__plane { transition-delay: .6s; }

.pass__meta { display: grid; grid-template-columns: repeat(4, auto); justify-content: space-between; gap: 1rem; padding-top: 1.2rem; border-top: 1px dashed var(--line-2); }
.pass__meta dt { font-size: .68rem; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; color: var(--muted); }
.pass__meta dd { font-size: .88rem; font-weight: 600; }

.pass__stub-k { font-size: .72rem; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; color: rgba(255,255,255,.6); }
.pass__stub-v { font-size: 2.4rem; line-height: 1; letter-spacing: -.03em; }
.pass__code { width: 100%; height: 44px; margin-top: .6rem; opacity: .35; background: repeating-linear-gradient(90deg, #fff 0 2px, transparent 2px 4px, #fff 4px 5px, transparent 5px 9px, #fff 9px 12px, transparent 12px 14px); border-radius: 4px; }

@media (max-width: 900px) {
  .pass { grid-template-columns: 1fr; filter: drop-shadow(0 20px 30px rgba(22,21,15,.12)); }
  .pass__main {
    border-radius: var(--r-lg) var(--r-lg) 0 0;
    -webkit-mask: radial-gradient(circle 16px at 0 100%, transparent 15px, #000 16px) left / 51% 100% no-repeat, radial-gradient(circle 16px at 100% 100%, transparent 15px, #000 16px) right / 51% 100% no-repeat;
            mask: radial-gradient(circle 16px at 0 100%, transparent 15px, #000 16px) left / 51% 100% no-repeat, radial-gradient(circle 16px at 100% 100%, transparent 15px, #000 16px) right / 51% 100% no-repeat;
  }
  .pass__stub {
    border-radius: 0 0 var(--r-lg) var(--r-lg); border-left: 0; border-top: 2px dashed rgba(255,255,255,.25);
    -webkit-mask: radial-gradient(circle 16px at 0 0, transparent 15px, #000 16px) left / 51% 100% no-repeat, radial-gradient(circle 16px at 100% 0, transparent 15px, #000 16px) right / 51% 100% no-repeat;
            mask: radial-gradient(circle 16px at 0 0, transparent 15px, #000 16px) left / 51% 100% no-repeat, radial-gradient(circle 16px at 100% 0, transparent 15px, #000 16px) right / 51% 100% no-repeat;
  }
}
@media (max-width: 640px) {
  .pass__route { grid-template-columns: 1fr; gap: 0; padding: 1.4rem 0; }
  .pass__leg { width: 2px; height: 64px; margin-left: 18px; background: repeating-linear-gradient(180deg, var(--sand) 0 6px, transparent 6px 12px); }
  .pass__plane { left: 50% !important; top: 0; transform: translate(-50%, 0) rotate(90deg); width: 32px; height: 32px; transition: top 2.4s var(--ease); }
  .pass.is-in .pass__plane { top: calc(100% - 32px); }
  .pass__meta { grid-template-columns: 1fr 1fr; }
  .pass__stub { padding: 1.6rem 1.3rem; }
  .pass__stub .btn { width: 100%; }
  .pass__top { flex-wrap: wrap; }
}

/* ── final-cta ── */
.final { padding: 0 10px 10px; }
.final__panel { position: relative; overflow: hidden; isolation: isolate; border-radius: var(--r-lg); min-height: min(78vh, 720px); display: grid; align-items: end; color: #fff; background: var(--ink); }
.final__bg { position: absolute; inset: 0; z-index: -1; }
.final__bg > div { position: absolute; inset: -8% 0; }
.final__bg img { width: 100%; height: 100%; object-fit: cover; }
.final__bg::after { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, rgba(22,21,15,.78) 0%, rgba(22,21,15,.35) 55%, rgba(22,21,15,.1) 100%), linear-gradient(0deg, rgba(22,21,15,.5), transparent 50%); }
.final__body { display: grid; gap: 1.4rem; justify-items: start; padding-block: clamp(3rem, 2rem + 5vw, 6rem); }
.final__chip { background: rgba(255,255,255,.9); color: var(--ink); }
.final__title { font-size: clamp(2.5rem, 1.5rem + 4vw, 5rem); line-height: 1; letter-spacing: -.035em; max-width: 9em; }
.final__lede { max-width: 32rem; color: rgba(255,255,255,.8); font-size: var(--fs-lead); }
.final__actions { display: flex; flex-wrap: wrap; gap: .7rem; }
@media (max-width: 600px) {
  .final { padding: 0 6px 6px; }
  .final__panel { border-radius: var(--r); min-height: 560px; }
  .final__bg::after { background: linear-gradient(0deg, rgba(22,21,15,.85) 15%, rgba(22,21,15,.2) 70%); }
  .final__actions { display: grid; width: 100%; }
}

/* ── footer ── */
.footer { padding-top: clamp(3.5rem, 2.5rem + 4vw, 6rem); font-size: .9rem; color: var(--ink-soft); }
.footer__grid { display: grid; gap: 2.5rem; padding-bottom: clamp(3rem, 2rem + 3vw, 4.5rem); }
.footer__brand { display: grid; gap: 1.1rem; justify-items: start; max-width: 22rem; }
.footer__social { display: flex; gap: .5rem; }
.footer__social .ibtn { width: 40px; height: 40px; }
.footer__social .icon { width: 18px; height: 18px; }
.footer__col h2 { font-family: var(--sans); font-size: .95rem; font-weight: 700; letter-spacing: 0; color: var(--ink); margin-bottom: 1rem; }
.footer__col ul { display: grid; gap: .6rem; }
.footer__col a:hover { color: var(--ink); }
.footer__contact li { display: flex; align-items: center; gap: .6rem; }
.footer__contact .icon { width: 30px; height: 30px; padding: 7px; border-radius: 50%; background: var(--ivory); color: var(--gold-ink); flex: none; }
.ph { color: var(--muted); font-style: italic; }
.footer__thumbs { grid-template-columns: repeat(3, 1fr); gap: .45rem !important; max-width: 290px; }
.footer__thumbs li { position: relative; aspect-ratio: 1; border-radius: 12px; overflow: hidden; }
.footer__thumbs img { width: 100%; height: 100%; object-fit: cover; transition: transform .8s var(--ease-out); }
.footer__thumbs li:hover img { transform: scale(1.08); }
.footer__thumbs span { position: absolute; inset: auto 0 0; padding: .9rem .4rem .3rem; font-size: .62rem; font-weight: 700; color: #fff; background: linear-gradient(0deg, rgba(22,21,15,.7), transparent); }
.footer__bottom { background: var(--ink); color: rgba(255,255,255,.6); font-size: .78rem; }
.footer__bottom .container { display: flex; flex-wrap: wrap; justify-content: space-between; gap: .4rem 2rem; padding-block: 1.2rem; }
@media (min-width: 900px) { .footer__grid { grid-template-columns: 4fr 2fr 3fr 3fr; gap: 3rem; } }
@media (max-width: 899px) { .footer__grid { grid-template-columns: 1fr 1fr; } .footer__brand, .footer__col:last-child { grid-column: 1 / -1; } }

.footer__brand .brand__logo { height: 40px; }
.footer__bottom .container { align-items: center; }
@media (min-width: 900px) {
  .footer__bottom .container { display: grid; grid-template-columns: 1fr auto 1fr; }
  .footer__bottom .container > p:last-child { text-align: right; }
}
@media (max-width: 899px) { .footer__bottom .container { justify-content: center; text-align: center; } }

/* Address: exactly three lines, each kept whole */
.addr { display: block; }
.addr > span { display: block; white-space: nowrap; }
@media (max-width: 420px) { .footer__contact .addr, .ccard__list .addr { font-size: .92em; } }
@media (max-width: 360px) { .footer__contact .addr, .ccard__list .addr { font-size: .82em; } }

/* ── page ── */
/* ───────── Sub-page hero (About, Contact) ───────── */
.hero--page .hero__panel { min-height: 0; padding-top: calc(var(--nav-h) + clamp(3rem, 2rem + 4vw, 6rem)); padding-bottom: clamp(3.5rem, 2rem + 5vw, 6.5rem); }
.hero--page .hero__body { padding-bottom: 0; }
.hero--page .hero__title { font-size: clamp(2.5rem, 1rem + 4.8vw, 5.6rem); max-width: 13em; }
.hero--page .hero__flags .flag { width: 40px; height: 40px; }

.clockchips { display: flex; align-items: center; gap: .6rem; margin-top: .4rem; flex-wrap: wrap; justify-content: center; }
.clockchips li:not(.clockchips__line) { display: inline-flex; align-items: center; gap: .55rem; height: 46px; padding: 0 1.1rem 0 .45rem; border-radius: 999px; background: rgba(255,255,255,.75); backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px); box-shadow: var(--shadow-sm); font-size: .85rem; font-weight: 600; color: var(--ink-soft); }
.clockchips .flag { width: 32px; height: 32px; box-shadow: none; }
.clockchips b { font-variant-numeric: tabular-nums; color: var(--ink); font-size: 1rem; }
.clockchips__line { display: flex; align-items: center; gap: .3rem; color: var(--gold-ink); }
.clockchips__line::before, .clockchips__line::after { content: ""; width: 26px; border-top: 1.5px dashed var(--sand); }
.clockchips__line .icon { width: 20px; height: 20px; }

/* ───────── About: story ───────── */
.story__grid { display: grid; gap: 3rem; align-items: center; }
.story__media { position: relative; display: grid; grid-template-columns: 1.15fr 1fr; gap: 1rem; align-items: end; padding-bottom: 2.5rem; }
.story__img { border-radius: var(--r-lg); }
.story__img--a { aspect-ratio: 3 / 4.2; }
.story__img--b { aspect-ratio: 3 / 3.6; margin-bottom: -2.5rem; }
.story__badge { position: absolute; left: 50%; top: 8%; transform: translateX(-50%); display: flex; align-items: center; gap: .7rem; padding: .55rem 1.1rem .55rem .55rem; border-radius: 999px; background: #fff; box-shadow: var(--shadow); line-height: 1.2; }
.story__badge-flags { display: flex; }
.story__badge-flags .flag { width: 34px; height: 34px; box-shadow: 0 0 0 2px #fff; }
.story__badge-flags .flag + .flag { margin-left: -10px; }
.story__badge span { white-space: nowrap; }
.story__badge b { display: block; font-size: .9rem; letter-spacing: .04em; }
.story__badge small { font-size: .74rem; color: var(--muted); }
.story__copy { display: grid; gap: 1.3rem; }
.story__copy > p:not(.kicker):not(.lead) { color: var(--ink-soft); }
.story__points { display: grid; gap: .6rem; margin-top: .6rem; }
.story__points li { display: flex; gap: .9rem; align-items: center; padding: .9rem 1rem; border-radius: var(--r-sm); background: #fff; box-shadow: inset 0 0 0 1px var(--line); }
.story__points .flag, .story__eu { width: 36px; height: 36px; flex: none; box-shadow: none; }
.story__eu { border-radius: 50%; display: grid; place-items: center; background: var(--gold-soft); color: var(--gold-ink); }
.story__eu .icon { width: 18px; height: 18px; }
.story__points b { display: block; font-size: .92rem; }
.story__points span { font-size: .84rem; color: var(--muted); }
@media (min-width: 1000px) { .story__grid { grid-template-columns: 1fr 1fr; gap: clamp(3rem, 7vw, 7rem); } }

/* ───────── About: principles bento ───────── */
.principles { background: var(--white); }
.principles__intro { max-width: 24rem; color: var(--ink-soft); font-size: .95rem; }
.pgrid { display: grid; grid-template-columns: repeat(3, 1fr); gap: clamp(.9rem, 1.4vw, 1.3rem); }
.pcard { position: relative; overflow: hidden; border-radius: var(--r); background: var(--ivory); padding: 1.7rem; display: grid; gap: .7rem; align-content: start; min-height: 260px; transition: transform .5s var(--ease-out); }
.pcard:hover { transform: translateY(-4px); }
.pcard p { color: var(--ink-soft); font-size: .9rem; line-height: 1.6; max-width: 30rem; }
.pcard__n { font-size: .74rem; font-weight: 700; letter-spacing: .08em; color: var(--gold-ink); }
.pcard__ic { position: absolute; right: 1.4rem; bottom: 1.4rem; width: 44px; height: 44px; color: var(--gold); opacity: .9; }
.pcard__flag { position: absolute; right: 1.4rem; bottom: 1.4rem; width: 44px; height: 44px; }
.pcard--wide { grid-column: span 2; grid-template-columns: 1fr 1fr; gap: 1.5rem; padding: 1rem 1rem 1rem 1.7rem; align-items: stretch; }
.pcard--wide .pcard__txt { display: grid; gap: .7rem; align-content: center; padding-block: .8rem; }
.pcard__img { border-radius: calc(var(--r) - 6px); min-height: 220px; }
.pcard--dark { background: var(--ink); color: #fff; }
.pcard--dark p { color: rgba(255,255,255,.7); }
.pcard--dark .pcard__n, .pcard--dark .pcard__ic { color: var(--gold-light); }
.pcard--gold { background: var(--gold-soft); grid-column: span 2; }
@media (max-width: 999px) {
  .pgrid { grid-template-columns: 1fr 1fr; }
  .pcard--wide { grid-column: 1 / -1; }
  .pcard--gold { grid-column: auto; }
  .pcard--dark { grid-column: 1 / -1; }
}
@media (max-width: 600px) {
  .pgrid { grid-template-columns: 1fr; }
  .pcard { min-height: 0; padding: 1.4rem 1.3rem 4.2rem; }
  .pcard--wide { grid-template-columns: 1fr; padding: .7rem; }
  .pcard--wide .pcard__txt { padding: .8rem .7rem .4rem; }
  .pcard__img { min-height: 0; aspect-ratio: 16 / 10; }
}

/* ───────── About: Germany expertise ───────── */
.expertise__panel { display: grid; gap: 2.5rem; padding: clamp(1.5rem, 1rem + 3vw, 3.5rem); border-radius: var(--r-lg); background: linear-gradient(135deg, #f6f1e7, #efe8da); align-items: center; }
.expertise__copy { display: grid; gap: 1.3rem; justify-items: start; }
.expertise__list { display: grid; gap: .5rem; width: 100%; margin-top: .4rem; }
.expertise__list li { display: flex; gap: .9rem; align-items: flex-start; padding: .9rem 1rem; border-radius: var(--r-sm); background: rgba(255,255,255,.75); }
.expertise__list .icon { width: 38px; height: 38px; padding: 9px; border-radius: 50%; background: var(--ink); color: var(--gold-light); flex: none; }
.expertise__list b { display: block; font-size: .93rem; }
.expertise__list span { font-size: .84rem; color: var(--ink-soft); }
.expertise__media { position: relative; }
.expertise__img { aspect-ratio: 4 / 4.6; border-radius: var(--r); }
.expertise__cities { position: absolute; left: 1rem; right: 1rem; bottom: 1rem; display: flex; flex-wrap: wrap; gap: .4rem; }
.expertise__cities li { padding: .45rem .9rem; border-radius: 999px; background: rgba(255,255,255,.9); backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px); font-size: .8rem; font-weight: 700; }
@media (min-width: 1000px) { .expertise__panel { grid-template-columns: 6fr 5fr; gap: clamp(3rem, 5vw, 5rem); } }
@media (max-width: 600px) { .expertise .container { padding-inline: 6px; } .expertise__panel { border-radius: var(--r); padding: 1.6rem 1rem; } .expertise__img { aspect-ratio: 4 / 3.6; } }

/* ───────── Contact ───────── */
.contact { padding-top: clamp(2.5rem, 1.5rem + 3vw, 4.5rem); }
.contact__grid { display: grid; gap: 1.4rem; align-items: start; }


.enquiry { background: #fff; border-radius: var(--r-lg); box-shadow: var(--shadow); padding: clamp(1.3rem, .8rem + 2.5vw, 2.8rem); }
.enquiry__head { display: grid; gap: .5rem; margin-bottom: 1.8rem; }
.enquiry__head .h3 { font-size: clamp(1.7rem, 1.3rem + 1.2vw, 2.4rem); }
.enquiry__head .muted { font-size: .88rem; }

.eform__purpose { border: 0; padding: 0; margin: 0 0 1.4rem; display: grid; grid-template-columns: repeat(4, 1fr); gap: .5rem; }
.eform__purpose legend { font-size: .8rem; font-weight: 600; color: var(--ink-soft); margin-bottom: .6rem; padding: 0; }
.eform__purpose label { cursor: pointer; }
.eform__purpose input { position: absolute; opacity: 0; pointer-events: none; }
.eform__purpose span { display: grid; justify-items: center; gap: .45rem; padding: 1rem .5rem; border-radius: var(--r-sm); background: var(--ivory); font-size: .85rem; font-weight: 600; color: var(--ink-soft); box-shadow: inset 0 0 0 1px transparent; transition: background-color .3s, box-shadow .3s, color .3s; }
.eform__purpose .icon { width: 22px; height: 22px; color: var(--gold-ink); }
.eform__purpose label:hover span { background: var(--ivory-2); }
.eform__purpose input:checked + span { background: var(--ink); color: #fff; }
.eform__purpose input:checked + span .icon { color: var(--gold-light); }
.eform__purpose input:focus-visible + span { box-shadow: 0 0 0 2px var(--gold); }

.eform__grid { display: grid; grid-template-columns: 1fr 1fr; gap: .8rem; }
.field { display: grid; gap: .4rem; }
.field--full { grid-column: 1 / -1; }
.field > span { font-size: .8rem; font-weight: 600; color: var(--ink-soft); }
.field input, .field select, .field textarea {
  width: 100%; min-height: 52px; padding: .85rem 1rem; border-radius: var(--r-sm); border: 1px solid var(--line-2); background: var(--bg);
  font-size: .95rem; color: var(--ink); transition: border-color .3s, box-shadow .3s, background-color .3s; appearance: none; -webkit-appearance: none;
}
.field select { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%238a6a37' stroke-width='2' stroke-linecap='round'%3E%3Cpath d='m7 10 5 5 5-5'/%3E%3C/svg%3E"); background-repeat: no-repeat; background-position: right .8rem center; background-size: 18px; padding-right: 2.6rem; }
.field textarea { resize: vertical; min-height: 120px; line-height: 1.55; }
.field input:focus, .field select:focus, .field textarea:focus { outline: none; border-color: var(--gold); background: #fff; box-shadow: 0 0 0 4px rgba(184,149,90,.15); }
.field.is-invalid input { border-color: #c0573f; box-shadow: 0 0 0 4px rgba(192,87,63,.12); }
.eform__purpose.is-invalid span { box-shadow: inset 0 0 0 1px #c0573f; }
.eform__consent { display: flex; gap: .7rem; align-items: flex-start; margin-top: 1.2rem; font-size: .85rem; color: var(--ink-soft); cursor: pointer; }
.eform__consent input { width: 20px; height: 20px; margin: .1rem 0 0; accent-color: var(--ink); flex: none; }
.eform__consent.is-invalid { color: #c0573f; }
.eform__foot { display: flex; flex-wrap: wrap; align-items: center; gap: 1rem 1.5rem; margin-top: 1.6rem; }
.eform__consent { margin-bottom: .2rem; }
.eform__error { font-size: .85rem; font-weight: 600; color: #c0573f; }

.enquiry__done { display: grid; justify-items: center; text-align: center; gap: .8rem; padding: 3rem 1rem; outline: none; }
.enquiry__done-ic { width: 64px; height: 64px; border-radius: 50%; display: grid; place-items: center; background: var(--gold); color: var(--ink); }
.enquiry__done-ic .icon { width: 30px; height: 30px; stroke-width: 2.2; }
.enquiry__done p { color: var(--ink-soft); }

.cside { display: grid; gap: 1.2rem; }
.ccard { border-radius: var(--r-lg); background: #fff; box-shadow: inset 0 0 0 1px var(--line); padding: 1.4rem 1.5rem; display: grid; gap: .9rem; }
.ccard--dark { background: var(--ink); color: #fff; box-shadow: none; }
.ccard__list { display: grid; gap: .7rem; margin-top: .1rem; }
.ccard__list li { display: flex; gap: .8rem; align-items: center; }
.ccard__list .icon { width: 36px; height: 36px; padding: 9px; border-radius: 50%; background: rgba(226,204,159,.14); color: var(--gold-light); flex: none; }
.ccard__list small { display: block; font-size: .72rem; color: rgba(255,255,255,.55); }
.ccard__list b { font-size: .92rem; font-weight: 600; }
.ccard--dark .ph { color: rgba(255,255,255,.55); }
.ccard__social { display: flex; gap: .5rem; padding-top: .4rem; border-top: 1px solid rgba(255,255,255,.1); padding-top: 1rem; }
.ccard__social .ibtn { background: transparent; color: #fff; border-color: rgba(255,255,255,.2); width: 40px; height: 40px; }
.ccard__social .ibtn:hover { background: #fff; color: var(--ink); }
.ccard__social .icon { width: 18px; height: 18px; }
.ccard--map { gap: .8rem; padding: 1.2rem 1.4rem; background: linear-gradient(160deg, #fbf8f2, #f1ebdf); box-shadow: inset 0 0 0 1px var(--line); }
.ccard__maphead { display: flex; justify-content: space-between; align-items: center; gap: .8rem; flex-wrap: wrap; }
.ccard__route { display: inline-flex; align-items: center; gap: .35rem; font-size: .78rem; color: var(--muted); }
.ccard__route b { color: var(--ink); font-weight: 700; }
.ccard__route .icon { width: 13px; height: 13px; color: var(--gold-ink); }
.ccard__mapbox { position: relative; aspect-ratio: 740 / 520; margin-inline: -.4rem; }
.ccard__map { position: absolute; inset: 0; width: 100%; height: 100%; overflow: visible; }
.ccard__map .dotmap__dots { fill: #cdbfa5; }
.ccard__map .dotmap__dots circle { r: 3.4; }
.ccard__arc { fill: none; stroke: var(--gold); stroke-width: 3; stroke-linecap: round; stroke-dasharray: .012 .014; }
.js .ccard__arc { stroke-dasharray: 1; stroke-dashoffset: 1; }
.js .ccard--map.is-in .ccard__arc { animation: arcdraw 2s var(--ease) .3s forwards; }
@keyframes arcdraw { 99% { stroke-dasharray: 1; stroke-dashoffset: 0; } 100% { stroke-dasharray: .012 .014; stroke-dashoffset: 0; } }
.ccard__node { fill: var(--ink); stroke: #fff; stroke-width: 4; }
.ccard__node--de { fill: var(--gold); }
.ccard__ring { fill: rgba(184,149,90,.18); stroke: var(--gold); stroke-width: 2; transform-box: fill-box; transform-origin: center; animation: ccring 2.6s var(--ease) infinite; }
@keyframes ccring { 0% { transform: scale(.5); opacity: 1; } 100% { transform: scale(1.8); opacity: 0; } }
.mpin { position: absolute; left: var(--x); top: var(--y); display: inline-flex; align-items: center; gap: .35rem; height: 30px; padding: 0 .7rem 0 .25rem; border-radius: 999px; background: #fff; box-shadow: var(--shadow); font-size: .74rem; font-weight: 700; white-space: nowrap; }
.mpin .flag { width: 22px; height: 22px; box-shadow: none; }
.mpin--dxb { transform: translate(-100%, -150%); }
.mpin--fra { transform: translate(-30%, -160%); }
.ccard__facts { display: grid; grid-template-columns: 1fr 1fr; gap: .5rem; }
.ccard__facts li { display: flex; align-items: center; gap: .55rem; padding: .65rem .7rem; border-radius: var(--r-sm); background: #fff; box-shadow: var(--shadow-sm); }
.ccard__facts .icon { width: 30px; height: 30px; padding: 7px; border-radius: 50%; background: var(--gold-soft); color: var(--gold-ink); flex: none; }
.ccard__facts span { display: grid; line-height: 1.25; }
.ccard__facts small { font-size: .68rem; color: var(--muted); }
.ccard__facts b { font-size: .8rem; }
@media (prefers-reduced-motion: reduce) { .js .ccard__arc { stroke-dasharray: .012 .014; stroke-dashoffset: 0; } }
.nextsteps { display: grid; gap: .75rem; }
.nextsteps li { display: flex; gap: .8rem; align-items: flex-start; }
.nextsteps li > span { width: 30px; height: 30px; flex: none; border-radius: 50%; display: grid; place-items: center; background: var(--gold-soft); color: var(--gold-ink); font-size: .8rem; font-weight: 700; }
.nextsteps b { display: block; font-size: .9rem; }
.nextsteps small { font-size: .8rem; color: var(--muted); }

@media (max-width: 600px) {
  .contact .container { padding-inline: 6px; }
  .enquiry, .ccard { border-radius: var(--r); }
  .eform__purpose { grid-template-columns: 1fr 1fr; }
  .eform__grid { grid-template-columns: 1fr 1fr; gap: .7rem .6rem; }
  .field--m-full { grid-column: 1 / -1; }
  .field select { font-size: .88rem; padding-left: .8rem; padding-right: 2.1rem; background-position: right .6rem center; }
  .eform__foot .btn { width: 100%; justify-content: space-between; }
  .clockchips__line { display: none !important; }
  .clockchips { gap: .4rem; }
  .clockchips li:not(.clockchips__line) { padding-right: .8rem; gap: .4rem; }
  .clockchips li:not(.clockchips__line) { height: 42px; font-size: .8rem; }
  .clockchips .flag { width: 28px; height: 28px; }
}

/* ───────── FAQ ───────── */
.faq__grid { display: grid; gap: 2rem; }
.faq__head { display: grid; gap: 1rem; align-content: start; }
.faq__list { display: grid; gap: .6rem; }
.faq__list details { border-radius: var(--r); background: #fff; box-shadow: inset 0 0 0 1px var(--line); transition: background-color .3s; }
.faq__list details[open] { background: var(--ivory); box-shadow: none; }
.faq__list summary { list-style: none; cursor: pointer; display: flex; justify-content: space-between; align-items: center; gap: 1rem; padding: 1.2rem 1.4rem; font-family: var(--serif); font-size: clamp(1.1rem, 1rem + .4vw, 1.35rem); font-weight: 500; letter-spacing: -.01em; }
.faq__list summary::-webkit-details-marker { display: none; }
.faq__list summary::after { content: "+"; flex: none; width: 34px; height: 34px; border-radius: 50%; display: grid; place-items: center; font-family: var(--sans); font-size: 1.2rem; background: var(--ivory); color: var(--ink); transition: transform .4s var(--ease-out), background-color .3s; }
.faq__list details[open] summary::after { transform: rotate(45deg); background: var(--ink); color: #fff; }
.faq__list details p { padding: 0 1.4rem 1.3rem; color: var(--ink-soft); font-size: .93rem; max-width: 46rem; }
@media (min-width: 1000px) { .faq__grid { grid-template-columns: 4fr 7fr; gap: 5rem; } .faq__head { position: sticky; top: calc(var(--nav-h) + 2rem); } }

/* Contact: equal-height columns (kept last so it wins over the card defaults) */
@media (min-width: 1000px) {
  /* Both columns share one height: the form and the three side cards line up top and bottom. */
  .contact__grid { grid-template-columns: 7fr 4fr; gap: 1.6rem; align-items: stretch; }
  .enquiry { display: flex; flex-direction: column; }
  .eform { flex: 1; display: flex; flex-direction: column; }
  /* extra height goes into the message box rather than empty space */
  .eform__grid { flex: 1; grid-template-rows: repeat(4, auto) 1fr; }
  .eform__grid .field--full { grid-template-rows: auto 1fr; }
  .eform__grid textarea { height: 100%; }
  .enquiry__done { flex: 1; align-content: center; }
  .cside { display: flex; flex-direction: column; gap: 1.2rem; }
  .cside > .ccard { flex: 1 1 auto; display: flex; flex-direction: column; justify-content: space-between; }
  .cside > .ccard > * { width: 100%; }
  .ccard__mapbox { width: calc(100% + .8rem) !important; }
}

/* About & Contact: hero flows straight into the page — no card edge, no shadow */
.hero--page { padding: 0; }
.hero--page .hero__panel { border-radius: 0; box-shadow: none; background: var(--bg); }
.hero--page .hero__panel::after {
  content: ""; position: absolute; inset: auto 0 0; height: 45%; z-index: -1; pointer-events: none;
  background: linear-gradient(180deg, rgba(251,250,246,0) 0%, var(--bg) 100%);
}
.hero--page .hero__panel { padding-bottom: clamp(1.5rem, 1rem + 2vw, 3rem); }

/* ── legal ── */
/* ───────── Legal pages (Privacy Policy) ───────── */
.legal { padding-top: calc(var(--nav-h) + clamp(2.5rem, 1.5rem + 4vw, 5rem)); }
.legal__wrap { max-width: 46rem; }
.legal__head { margin-bottom: 2rem; }
.legal__title { font-family: var(--serif); font-weight: 500; font-size: clamp(2.4rem, 1.4rem + 3.6vw, 4rem); letter-spacing: -.02em; line-height: 1.05; margin-top: .6rem; }
.legal__updated { margin-top: .8rem; font-size: .9rem; color: var(--muted); }
.legal h2 { font-family: var(--serif); font-weight: 500; font-size: clamp(1.3rem, 1.1rem + .8vw, 1.7rem); letter-spacing: -.01em; margin: 2.4rem 0 .8rem; }
.legal p, .legal li { font-size: 1rem; line-height: 1.7; color: var(--ink-soft); }
.legal p + p { margin-top: .9rem; }
.legal ul { list-style: disc; padding-left: 1.3rem; display: grid; gap: .45rem; }
.legal li::marker { color: var(--gold-ink); }
.legal__contact { padding: 1.2rem 1.4rem; border-radius: 16px; background: rgba(255,255,255,.7); box-shadow: inset 0 0 0 1px var(--line); }
.legal__copy { margin-top: 2.4rem; font-size: .85rem !important; color: var(--muted) !important; }
.legal__title--long { font-size: clamp(1.5rem, 1rem + 2vw, 2.4rem); letter-spacing: -.01em; line-height: 1.2; }
/* Organised sections: a hairline and generous space between each numbered block */
.legal h2 { padding-top: 1.8rem; border-top: 1px solid var(--line); margin-top: 2rem; }
.legal__head + p + h2, .legal__head + h2 { margin-top: 2.2rem; }
.legal__contact + p { margin-top: 1.2rem; }
.legal__title--long { font-size: clamp(1.05rem, 5.1vw, 2.4rem); }
.legal__title--long span { display: block; white-space: nowrap; }
.legal__title--long .legal__bar { display: none; }

/* ── motion ── */
.js [data-reveal] { opacity: 0; transform: translateY(22px); transition: opacity .9s var(--ease), transform 1s var(--ease-out); transition-delay: calc(var(--d, 0) * 90ms); }
.js [data-reveal="up"] { transform: translateY(40px) scale(.98); }
.js [data-reveal].is-in { opacity: 1; transform: none; }
.js [data-hero-in] { opacity: 0; transform: translateY(18px); }
.js .is-loaded [data-hero-in] { opacity: 1; transform: none; transition: opacity 1s var(--ease), transform 1.2s var(--ease-out); transition-delay: calc(.1s + var(--i, 0) * .1s); }
[data-parallax] { will-change: transform; }
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; transition-delay: 0s !important; }
  .js [data-reveal], .js [data-hero-in] { opacity: 1; transform: none; }
  .route-draw { stroke-dashoffset: 0; }
  .route-dot { display: none; }
}
