/* Real cabin photographs stay together, with the seats unobstructed. */
.hero-grid { grid-template-columns: .9fr 1.1fr; gap: 48px; padding-top: 42px; padding-bottom: 46px; }
.hero h1 { font-size: clamp(56px, 5.8vw, 82px); margin: 12px 0 24px; }
.hero-description { max-width: 460px; margin-bottom: 24px; }
.photo-collage { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; height: auto; width: 100%; max-width: 660px; }
.collage-photo {
  position: relative;
  padding: 6px;
  background: var(--paper);
  color: var(--ink);
  border-radius: 8px;
  box-shadow: 0 18px 38px #030d1b66;
  rotate: var(--photo-angle);
}
.collage-photo img { display: block; width: 100%; height: auto; aspect-ratio: 1; object-fit: cover; border-radius: 3px; }
.collage-photo figcaption { padding: 8px 3px 4px; font-size: 12px; font-weight: 500; line-height: 1.3; }
.collage-lead { --photo-angle: -2deg; grid-column: 1 / -1; z-index: 2; margin-bottom: 8px; }
.collage-lead img { aspect-ratio: 4 / 3; }
.collage-lead figcaption { font-size: 14px; }
.collage-suite { --photo-angle: -4deg; }
.collage-upper { --photo-angle: 2deg; }
.collage-bar { --photo-angle: 4deg; }
.collage-caption { grid-column: 1 / -1; font-size: var(--text-note); color: var(--sky); line-height: 1.5; }

/* The founder story is now an editorial introduction, not a second gallery. */
.founder-grid { grid-template-columns: 1fr 1fr; gap: 90px; align-items: start; }
.founder-heading h2 { font-size: clamp(40px, 4.25vw, 62px); margin: 0 0 36px; }
.founder-byline { font-size: 21px; font-weight: 500; }
.founder-byline span { display: block; font-size: var(--text-label); color: var(--muted); font-weight: 400; margin-top: 3px; }
.founder-copy { border-left: 1px solid #c0c9c0; padding-left: 40px; }
.founder-copy blockquote { font-size: 28px; line-height: 1.45; }
.founder-copy>p:not(.eyebrow) { font-size: var(--text-body); }
.founder-copy>p.personal-note { font-size: var(--text-note); }

/* A drawn route carries the occasion story without more photography. */
.occasion-section::before { display: none; }
.occasion-route { --route-progress: 1; position: relative; padding-bottom: 30px; }
.occasion-route svg { width: 100%; display: block; overflow: visible; }
.route-guide { stroke: #afc3d836; stroke-width: 1; stroke-dasharray: 4 8; }
.route-ink { stroke: #ddc575; stroke-width: 2; stroke-linecap: round; stroke-dasharray: 1; stroke-dashoffset: calc(1 - var(--route-progress)); }
.route-origin { stroke: #ddc575; stroke-width: 2; fill: var(--night); }
.route-halo { stroke: #ddc57566; stroke-width: 1; }
.route-plane { fill: #ddc575; opacity: calc(.25 + var(--route-progress) * .75); }
.occasion-route text { fill: var(--sky); font-family: var(--sans); font-size: 15px; }
.occasion-route>p { text-align: right; padding-right: 10%; color: #ddc575; font-size: 22px; line-height: 1.35; letter-spacing: -.02em; }

@media (max-width: 1100px) {
  .hero-grid { gap: 32px; }
  .photo-collage { gap: 12px; }
  .collage-photo { padding: 5px; }
  .founder-grid { gap: 45px; }
  .founder-copy { padding-left: 28px; }
  .founder-copy blockquote { font-size: 25px; }
}
@media (max-width: 800px) {
  .hero-grid { grid-template-columns: 1fr 1fr; gap: 28px; }
  .hero h1 { font-size: clamp(40px, 5.7vw, 56px); }
  .collage-photo figcaption { font-size: 10px; }
  .collage-lead figcaption { font-size: 13px; }
  .founder-grid { grid-template-columns: 1fr; gap: 30px; }
  .founder-heading h2 { max-width: 610px; }
  .founder-copy { border-left: 0; border-top: 1px solid #c0c9c0; padding: 28px 0 0; }
  .founder-copy blockquote { max-width: 640px; }
  .founder-copy>p:not(.eyebrow) { max-width: 550px; }
}
@media (max-width: 700px) {
  .hero-grid { grid-template-columns: 1fr; gap: 0; padding-top: 28px; padding-bottom: 36px; }
  .hero-copy { display: contents; }
  .hero-copy>* { grid-column: 1; }
  .hero h1 { font-size: clamp(43px, 12.4vw, 68px); line-height: 1.02; margin: 0 0 18px; order: 0; }
  .hero h1 br:nth-of-type(2) { display: initial; }
  .hero-service { order: 1; margin-bottom: 24px; }
  .photo-collage { order: 2; width: 100%; max-width: 500px; margin: 0 auto 28px; gap: 12px; }
  .collage-lead { margin-bottom: 2px; }
  .collage-caption { font-size: 12px; padding-top: 4px; }
  .hero-description { order: 3; max-width: 500px; }
  .hero-copy .button { order: 4; justify-self: start; }
  .hero .sample-trigger { order: 5; }
  .hero-copy .hero-price-note { order: 6; }
  .hero-copy .hero-fare-note { order: 7; }
}
@media (max-width: 600px) {
  .founder-heading h2 { font-size: 46px; margin: 0 0 24px; }
  .founder-byline { font-size: 21px; }
  .founder-copy blockquote { font-size: 25px; }
  .occasion-grid { gap: 15px; }
  .occasion-route { max-width: 420px; width: 100%; margin: auto; padding-bottom: 0; }
  .occasion-route>p { font-size: 21px; padding-right: 5%; }
}
@media (max-width: 360px) {
  .collage-photo { padding: 4px; }
}
html:not([data-motion='full']) .route-ink { stroke-dashoffset: 0; }
html:not([data-motion='full']) .route-plane { opacity: 1; }
@media (prefers-reduced-motion: reduce) {
  .route-ink { stroke-dashoffset: 0; }
  .route-plane { opacity: 1; }
}
