:root {
  --p-bg: #e2e2e2;
  --p-surface: #d6d6d6;
  --p-ink: #7d0c14;
  --p-muted: #5d252a;
  --p-accent: #7d0c14;
  --p-accent-ink: #e2e2e2;
  --p-action: #7d0c14;
  --p-action-ink: #f3eeee;
  --p-inv-bg: #7d0c14;
  --p-inv-surface: #862323;
  --p-inv-ink: #f3eeee;
  --p-inv-muted: #d0b3af;
  --p-inv-accent: #f3eeee;
  --p-inv-accent-ink: #7d0c14;
  --p-inv-action: #f3eeee;
  --p-inv-action-ink: #7d0c14;
  --font-display: "Onest", system-ui, sans-serif;
  --font-text: "Onest", system-ui, sans-serif;
  --display-weight: 400;
  --display-tracking: -0.035em;
  --display-tracking-xl: -0.04em;
  --ly-scale: 1.04;
  --t-body: 17px;
}

html { background: var(--p-bg); }
body { overflow-x: clip; }
::selection { color: var(--p-action-ink); background: var(--p-action); }

.nav { backdrop-filter: none; }
.nav__bar { position: relative; }
.nav__logo { gap: 10px; min-width: 0; text-decoration: none; }
.nav__logo img { width: 110px; height: auto; max-height: 34px; object-fit: contain; }
.nav__logo img { filter: brightness(0) invert(1); }
.nav__logo .brand-en { font-size: 0.72em; letter-spacing: 0.12em; text-transform: uppercase; }
.footer--dark .footer__mark img { filter: none; }

.hero > picture.hero__bg {
  position: absolute;
  inset: 0;
  z-index: 0;
  display: block;
  width: 100%;
  height: 100%;
}
.hero > picture.hero__bg > img {
  width: 100%;
  height: 100%;
  max-width: none;
  object-fit: cover;
  object-position: var(--ly-pos, 50% 50%);
}
.hero--photo .hero__text { border: 1px solid color-mix(in oklab, var(--p-ink) 10%, transparent); }
.hero--photo .hero__lead { max-width: 48ch; color: var(--p-muted); }
.hero--photo .hero__eyebrow { margin-bottom: var(--s-4); color: var(--p-muted); font-size: var(--t-small); font-weight: 500; letter-spacing: 0.08em; text-transform: uppercase; }
.hero--photo .btn-row { margin-top: var(--s-6); }
.hero--photo .hero__note { margin-top: var(--s-4); color: var(--p-muted); font-size: var(--t-small); }
.hero--photo .hero__text { width: min(49%, 630px); }
.hero--photo h1 { max-width: none; font-size: clamp(46px, 4.2vw, 60px); }

.brand-intro { align-items: start; }
.brand-intro__photo { grid-column: 1 / -1; height: clamp(290px, 36svh, 390px); overflow: hidden; }
.brand-intro__photo > picture,
.brand-intro__photo > picture > img { display: block; width: 100%; height: 100%; object-fit: cover; }
.brand-intro__lead { font: var(--display-weight) var(--t-h3)/1.25 var(--font-display); letter-spacing: var(--display-tracking); color: var(--ink); }
.word-parts { display: grid; border-top: 1px solid var(--line); }
.word-part { display: grid; grid-template-columns: 72px 1fr; gap: var(--s-5); padding-block: var(--s-5); border-bottom: 1px solid var(--line); }
.word-part strong { font: var(--display-weight) var(--t-h3)/1 var(--font-display); }
.word-part p { margin: 0; max-width: 48ch; color: var(--ink); }

.media-picture,
.media-picture > img,
.frame > picture,
.frame > picture > img,
.panel > picture,
.panel > picture > img { display: block; width: 100%; height: 100%; }
.frame > picture > img,
.panel > picture > img { object-fit: cover; }

[data-moment="photo-chapters"] .mo-ph__pic > picture { display: block; width: 100%; height: 100%; }
[data-moment="photo-chapters"] .mo-ph__pic > picture > img { display: block; width: 100%; aspect-ratio: 4 / 3; object-fit: cover; }
[data-moment="photo-chapters"].is-live .mo-ph__stage > .mo-ph__pic > picture > img { height: 100%; aspect-ratio: auto; max-height: none; transform: scale(var(--mo-z, 1)); transform-origin: 50% 100%; will-change: transform; }
@media (min-width: 640px) {
  [data-moment="photo-chapters"]:not(.is-live) .mo-ph__pic > picture > img { aspect-ratio: 4 / 5; max-height: 44svh; }
}
@media (max-width: 639px) {
  [data-moment="photo-chapters"]:not(.is-live) .mo-ph__pic > picture > img { aspect-ratio: 16 / 10; }
}
@media print {
  [data-moment="photo-chapters"].is-live .mo-ph__stage > .mo-ph__pic > picture > img { transform: none; }
}

.journey-list { display: grid; border-top: 1px solid var(--line); }
.journey-row {
  display: grid;
  grid-template-columns: minmax(0, 1.1fr) 170px minmax(0, 1fr) auto;
  gap: var(--s-5);
  align-items: center;
  padding-block: var(--s-6);
  border-bottom: 1px solid var(--line);
}
.journey-row h3 { margin: 0; font-size: clamp(20px, 1.5vw, 22px); }
.journey-row p { margin: 0; max-width: 48ch; }
.journey-row__meta { display: grid; gap: var(--s-2); color: var(--muted); font-size: var(--t-small); }
.journey-row__meta { min-width: 0; padding-right: var(--s-4); overflow-wrap: anywhere; }
.journey-row__tag { color: var(--accent); font-weight: 600; letter-spacing: 0.05em; text-transform: uppercase; }
.journey-row .link { white-space: nowrap; }
.journey-row:not(:has(> .journey-row__image)) { grid-template-columns: minmax(0, 0.82fr) minmax(280px, 0.55fr) auto; }
.journey-row__image { display: block; width: 100%; height: 120px; overflow: hidden; border-radius: var(--r-md); }
.journey-row__image > img { display: block; width: 100%; height: 100%; object-fit: cover; }
#journeys .journeys-layout { align-items: stretch; }
#journeys .section-head--split { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); align-items: end; gap: var(--s-6); margin-bottom: var(--s-5); }
#journeys .journey-list { border-top: 0; }
#journeys .journey-row { grid-template-columns: minmax(0, 1fr) auto; gap: var(--s-3); padding-block: var(--s-5); }
#journeys .journey-row__meta { grid-column: 1; grid-row: 2; }
#journeys .journey-row .link { grid-column: 2; grid-row: 1 / span 2; align-self: center; }
.journeys-layout__photo { height: min(510px, 57svh); overflow: hidden; }
.journeys-layout__photo > picture,
.journeys-layout__photo > picture > img { display: block; width: 100%; height: 100%; object-fit: cover; object-position: 50% 20%; }

.steps-grid .card { --c-r: var(--r-lg); }
.steps-grid .card > p { color: var(--ink); }
.steps-grid .panel { --p-h: min(300px, 33svh); height: var(--p-h); min-height: 0; flex: none; }
.steps-grid .panel > picture > img { object-fit: cover; }
.step-num { display: inline-flex; width: 34px; height: 34px; align-items: center; justify-content: center; margin-bottom: var(--s-4); border: 1px solid var(--line-strong); border-radius: 50%; font-size: var(--t-small); }

.partner-band { color: var(--p-inv-ink); background: var(--p-inv-bg); }
.partner-band .muted { color: var(--p-inv-muted); }
.partner-band .btn--secondary { --bg: var(--p-inv-bg); --ink: var(--p-inv-ink); --line-strong: color-mix(in oklab, var(--p-inv-ink) 30%, transparent); }
.partner-band .frame { min-height: min(520px, 56svh); }
#partners .frame { height: min(560px, 64svh); }
.partner-feature .section-head { margin-bottom: var(--s-5); }
.partner-feature__media { width: 100%; height: min(380px, 42svh); overflow: hidden; border-radius: var(--r-lg); }
.partner-feature__media > picture,
.partner-feature__media > picture > img { display: block; width: 100%; height: 100%; }
.partner-feature__media > picture > img { object-fit: cover; object-position: 50% 56%; }
.partner-feature__detail { max-width: 55ch; margin-top: var(--s-5); }
.partner-feature__detail p { margin: 0; }
.partner-feature__detail .btn-row { margin-top: var(--s-5); }

.page-hero { min-height: 72svh; }
.page-hero .hero__text { max-width: 720px; }
.page-hero .hero__lead { max-width: 52ch; }
.page-hero--compact { min-height: 62svh; }

.destination-grid .card { min-height: 100%; }
.destination-grid .panel { --p-h: 260px; }
.destination-grid .card__meta { display: flex; flex-wrap: wrap; gap: 8px 14px; margin-top: 14px; color: var(--muted); font-size: var(--t-small); }

.details-grid { align-items: start; }
.details-list { display: grid; border-top: 1px solid var(--line); }
.details-list > div { display: grid; grid-template-columns: minmax(140px, 0.4fr) 1fr; gap: var(--s-4); padding-block: var(--s-4); border-bottom: 1px solid var(--line); }
.details-list dt { font-weight: 600; }
.details-list dd { margin: 0; }

.form-shell { align-items: start; }
.form-copy { display: grid; gap: var(--s-5); }
.form-copy .notice { padding: var(--s-5); border: 1px solid var(--line-strong); color: var(--ink); }
.form-panel { padding: clamp(24px, 4vw, 48px); border-radius: var(--r-lg); background: var(--surface); }
.form-panel .form { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--s-5); }
.form-panel .field--wide,
.form-panel .form__foot { grid-column: 1 / -1; }
.form-panel textarea { min-height: 140px; resize: vertical; }
.form-panel .field input,
.form-panel .field select,
.form-panel .field textarea { width: 100%; }
.form-panel .consent { display: grid; grid-template-columns: auto 1fr; gap: var(--s-3); align-items: start; }
.form-panel .consent input { width: 20px; height: 20px; margin-top: 2px; }
.form-panel .form__foot { display: grid; gap: var(--s-3); }
.form-panel .setup-notice { margin: 0; padding: var(--s-3) var(--s-4); border-left: 3px solid var(--accent); background: var(--bg); font-size: var(--t-small); }
.form-panel .hp-field { position: absolute; left: -10000px; width: 1px; height: 1px; overflow: hidden; }

.plain-page main { min-height: 70svh; }
.legal-copy { max-width: 760px; }
.legal-copy h2 { margin-top: var(--s-8); font-size: var(--t-h3); }
.legal-copy ul { padding-left: 1.2em; }
.legal-copy li + li { margin-top: var(--s-2); }

.close--photo .close__media > picture,
.close--photo .close__media > picture > img { width: 100%; height: 100%; }
.close--photo .close__media > picture > img { object-fit: cover; object-position: var(--pos, 50% 50%); }
.footer--dark .footer__lede { color: var(--p-inv-ink); }
.footer--dark .footer__note { max-width: 40ch; color: var(--p-inv-muted); }
.footer--dark .brand-lockup { width: min(260px, 100%); height: auto; }
.footer__legal { align-items: center; }
.footer__legal .source-note { color: var(--muted); }

.not-found { min-height: calc(100svh - var(--nav)); display: grid; align-content: center; }
.not-found h1 { font-size: var(--ly-h1-xl); }

@media (max-width: 1023px) {
  .hero > picture.hero__bg { top: var(--nav); bottom: auto; height: var(--photo); }
  .hero > picture.hero__bg > img { object-position: var(--ly-pos-phone, var(--ly-pos, 50% 50%)); }
  .hero--photo .hero__text { border: 0; }
  .hero--photo .hero__text { width: 100%; }
  .journey-row { grid-template-columns: minmax(0, 1fr) 160px; }
  .journey-row:not(:has(> .journey-row__image)) { grid-template-columns: minmax(0, 1fr) auto; }
  .journey-row__image { grid-column: 2; grid-row: 1 / span 3; align-self: center; }
  .journey-row__meta { grid-column: 1; grid-row: 2; }
  .journey-row:not(:has(> .journey-row__image)) .journey-row__meta { grid-column: 1 / -1; grid-row: 2; }
  .journey-row .link { grid-column: 1; grid-row: 3; }
  .journey-row:not(:has(> .journey-row__image)) .link { grid-column: 2; grid-row: 1; }
  #journeys .journey-list,
  #journeys .journeys-layout__photo { grid-column: 1 / -1; }
  #journeys .section-head--split { grid-template-columns: 1fr; }
  #journeys .journeys-layout__photo { order: -1; height: 420px; }
  #journeys .journey-row .link { grid-column: 2; grid-row: 1 / span 2; }
  .partner-band .frame { min-height: 420px; margin-top: var(--s-7); }
  #partners .frame { height: 420px; }
  .partner-feature__media { height: 380px; }
}

@media (max-width: 639px) {
  .nav__logo img { width: 84px; }
  .nav__logo .brand-en { display: none; }
  .hero--photo .hero__eyebrow { margin-bottom: var(--s-3); }
  .word-part { grid-template-columns: 48px 1fr; gap: var(--s-4); }
  .journey-row { grid-template-columns: minmax(0, 1fr) 110px; gap: var(--s-3); }
  .journey-row:not(:has(> .journey-row__image)) { grid-template-columns: 1fr; }
  .journey-row:not(:has(> .journey-row__image)) .link { grid-column: 1; grid-row: 3; }
  #journeys .journeys-layout__photo { height: 510px; }
  #journeys .journey-row { grid-template-columns: 1fr; }
  #journeys .journey-row .link { grid-column: 1; grid-row: 3; }
  .journey-row__image { height: 126px; }
  .journey-row .link { margin-top: var(--s-2); }
  .steps-grid .panel { --p-h: 260px; }
  .destination-grid .panel { --p-h: 210px; }
  .form-panel { padding: 20px; }
  .form-panel .form { grid-template-columns: 1fr; }
  .form-panel .field--wide,
  .form-panel .form__foot { grid-column: auto; }
  .details-list > div { grid-template-columns: 1fr; gap: var(--s-2); }
  .hero--photo { --photo: 31svh; }
  .hero--photo h1 { font-size: clamp(38px, 10vw, 46px); line-height: 1.04; }
  .brand-intro__photo { height: 230px; }
  #partners .frame { height: 300px; }
  .partner-feature__media { height: 300px; }
  .partner-feature__detail { max-width: none; }
}

@media (min-width: 360px) and (max-width: 639px) and (min-height: 780px) {
  .hero--photo .btn-row { margin-top: 125px; }
}

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

@media (max-width: 359px) {
  .nav:not(.is-open) .nav__actions { display: none; }
  .nav__toggle { margin-left: auto; }
  .hero--photo { --photo: 23svh; }
  .hero--photo h1 { font-size: 35px; }
  .hero--photo .hero__lead { font-size: 16px; line-height: 1.45; }
}
