:root {
  --ink: #0e1a2a;
  --ink-2: #16263b;
  --ink-3: #20344f;
  --white: #ffffff;
  --sand: #f4f1ec;
  --sand-2: #e9e3d9;
  --text: #1d2b3c;
  --quiet: #5a6675;
  --quiet-n: #9eabba;
  --line: #e2ddd4;
  --line-n: rgba(255, 255, 255, .12);
  --coral: #f2705b;
  --coral-d: #e45a44;
  --coral-t: #fde6e1;
  --teal: #2ba6a0;
  --err: #b42318;
  --r: 10px;
  --max: 1300px;
  --head: "Unbounded", "Helvetica Neue", Arial, sans-serif;
  --copy: "Rethink Sans", "Helvetica Neue", Arial, sans-serif;
  --lift: 0 2px 6px rgba(14, 26, 42, .06), 0 18px 40px rgba(14, 26, 42, .12);
}
*, *::before, *::after { box-sizing: border-box; }
[hidden] { display: none !important; }
html { -webkit-text-size-adjust: 100%; scroll-padding-top: 96px; }
body { margin: 0; background: var(--white); color: var(--text); font: 400 17.5px/1.65 var(--copy); -webkit-font-smoothing: antialiased; }
img { display: block; max-width: 100%; height: auto; }
a { color: var(--ink); text-decoration-color: var(--coral); text-decoration-thickness: 2px; text-underline-offset: 4px; }
a:hover { color: var(--coral-d); }
h1, h2, h3 { margin: 0; font-family: var(--head); color: var(--ink); letter-spacing: -.02em; }
h1 { font-weight: 700; font-size: clamp(40px, 5.4vw, 80px); line-height: 1.02; }
h2 { font-weight: 600; font-size: clamp(28px, 3.2vw, 44px); line-height: 1.1; }
h3 { font-weight: 600; font-size: 19px; line-height: 1.3; letter-spacing: -.01em; }
p { margin: 0 0 1em; }
ul, ol { margin: 0; padding: 0; }
:focus-visible { outline: 3px solid var(--coral); outline-offset: 3px; border-radius: 4px; }
.hide-v { position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }
.jump { position: absolute; top: -80px; left: 14px; z-index: 200; background: var(--coral); color: var(--ink); padding: 10px 16px; border-radius: var(--r); font-weight: 700; }
.jump:focus { top: 14px; }
.frame { width: 100%; max-width: var(--max); margin: 0 auto; padding: 0 36px; }
.tagline { font: 600 12.5px/1.3 var(--head); letter-spacing: .14em; text-transform: uppercase; color: var(--coral-d); margin: 0 0 18px; }
.standfirst { font-size: 20px; line-height: 1.55; color: var(--text); }
.quiet { color: var(--quiet); }
.tiny { font-size: 14.5px; line-height: 1.55; }
.icn { width: 24px; height: 24px; flex: none; fill: none; stroke: currentColor; stroke-width: 1.6; stroke-linecap: round; stroke-linejoin: round; }

.button { display: inline-flex; align-items: center; justify-content: center; gap: 10px; min-height: 52px; padding: 0 26px; border-radius: 999px; border: 0; background: var(--coral); color: var(--ink); font: 600 15px/1 var(--head); letter-spacing: .01em; text-decoration: none; cursor: pointer; transition: background .2s ease, transform .2s ease; }
.button:hover { background: #f58a78; color: var(--ink); }
.button:active { transform: scale(.98); }
.button:disabled { opacity: .7; cursor: progress; }
.button-ghost { background: transparent; color: var(--ink); box-shadow: inset 0 0 0 1.5px var(--ink); }
.button-ghost:hover { background: var(--ink); color: #fff; }
.zone-night .button-ghost, .base .button-ghost { color: #fff; box-shadow: inset 0 0 0 1.5px rgba(255, 255, 255, .5); }
.zone-night .button-ghost:hover { background: #fff; color: var(--ink); }
.button-small { min-height: 44px; padding: 0 20px; font-size: 13.5px; }
.more-link { display: inline-flex; align-items: center; gap: 10px; font: 600 14.5px var(--head); color: var(--ink); text-decoration: none; }
.more-link::after { content: ""; width: 26px; height: 1.5px; background: var(--coral); transition: width .2s ease; }
.more-link:hover::after { width: 40px; }
.zone-night .more-link { color: #fff; }

/* masthead */
.masthead { position: fixed; top: 0; left: 0; right: 0; z-index: 60; transition: background .25s ease, box-shadow .25s ease; }
.masthead.is-solid, .inner .masthead { background: rgba(14, 26, 42, .96); box-shadow: 0 1px 0 var(--line-n); backdrop-filter: blur(12px); -webkit-backdrop-filter: blur(12px); }
.masthead-row { display: flex; align-items: center; justify-content: space-between; gap: 24px; height: 84px; }
.wordmark { display: inline-flex; color: #fff; text-decoration: none; flex: none; }
.wordmark svg { height: 32px; width: auto; overflow: visible; }
.wordmark text { font-family: var(--head); font-weight: 600; letter-spacing: -.01em; }
.navlinks { display: flex; align-items: center; gap: 28px; }
.navlinks-list { display: flex; gap: 26px; list-style: none; }
.navlinks-list a { color: rgba(255, 255, 255, .9); font: 500 15px var(--copy); text-decoration: none; padding: 6px 0; border-bottom: 1.5px solid transparent; }
.navlinks-list a:hover, .navlinks-list a[aria-current="page"] { color: #fff; border-bottom-color: var(--coral); }
.toggle { display: none; width: 48px; height: 48px; border-radius: 50%; border: 1.5px solid rgba(255, 255, 255, .45); background: transparent; position: relative; cursor: pointer; }
.toggle span { position: absolute; left: 14px; right: 14px; height: 1.5px; background: #fff; transition: transform .2s ease, top .2s ease; }
.toggle span:first-child { top: 19px; }
.toggle span:last-child { top: 27px; }
.menu-open .toggle span:first-child { top: 23px; transform: rotate(45deg); }
.menu-open .toggle span:last-child { top: 23px; transform: rotate(-45deg); }

/* cover (hero) */
.cover { position: relative; min-height: clamp(760px, 100vh, 960px); display: flex; align-items: flex-end; color: #fff; isolation: isolate; }
.cover-photo { position: absolute; inset: 0; z-index: -1; background: #1b4f62; }
.cover-photo img { width: 100%; height: 100%; object-fit: cover; object-position: 50% 55%; }
.cover-photo::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(14, 26, 42, .55) 0%, rgba(14, 26, 42, 0) 26%), linear-gradient(90deg, rgba(14, 26, 42, .82) 0%, rgba(14, 26, 42, .4) 48%, rgba(14, 26, 42, .1) 100%), linear-gradient(0deg, rgba(14, 26, 42, .6) 0%, rgba(14, 26, 42, 0) 45%); }
.cover-grid { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(0, .85fr); gap: 64px; align-items: end; padding-top: 150px; padding-bottom: 72px; }
.cover h1 { color: #fff; }
.cover .tagline { color: #ffb4a6; }
.cover .standfirst { color: rgba(255, 255, 255, .9); max-width: 32em; margin: 24px 0 0; }
.cover-times { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 30px; list-style: none; }
.cover-times li { font-size: 14.5px; color: #fff; background: rgba(255, 255, 255, .12); border: 1px solid rgba(255, 255, 255, .22); border-radius: 999px; padding: 7px 14px; backdrop-filter: blur(6px); -webkit-backdrop-filter: blur(6px); }
.cover-times b { font-weight: 600; }

/* planner (quote form) */
.planner { background: rgba(14, 26, 42, .84); border: 1px solid rgba(255, 255, 255, .14); border-radius: 18px; padding: 26px; color: #fff; backdrop-filter: blur(14px); -webkit-backdrop-filter: blur(14px); box-shadow: 0 30px 60px rgba(0, 0, 0, .28); }
.planner-head { display: flex; justify-content: space-between; align-items: baseline; gap: 12px; margin-bottom: 16px; }
.planner-title { font: 600 18px/1.3 var(--head); margin: 0; color: #fff; }
.planner-step { font-size: 13px; color: var(--quiet-n); margin: 0; }
.trip-switch { display: grid; grid-template-columns: repeat(3, 1fr); border: 0; margin: 0 0 16px; padding: 4px; background: rgba(255, 255, 255, .08); border-radius: 999px; }
.trip-switch label { position: relative; }
.trip-switch input { position: absolute; inset: 0; opacity: 0; margin: 0; cursor: pointer; }
.trip-switch span { display: flex; align-items: center; justify-content: center; min-height: 44px; text-align: center; padding: 9px 6px; border-radius: 999px; font: 600 14px/1.2 var(--copy); color: rgba(255, 255, 255, .78); }
.trip-switch input:checked + span { background: var(--coral); color: var(--ink); }
.trip-switch input:focus-visible + span { outline: 3px solid #fff; outline-offset: 1px; }
.pair { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.trio { display: grid; grid-template-columns: repeat(auto-fit, minmax(120px, 1fr)); gap: 12px; }
.planner .pair + .pair, .planner .pair + .trio, .planner .trio + .pair { margin-top: 12px; }
.ctl { display: flex; flex-direction: column; gap: 6px; min-width: 0; }
.ctl label { font-size: 13.5px; font-weight: 600; letter-spacing: .01em; color: rgba(255, 255, 255, .86); }
.ctl input, .ctl select, .ctl textarea { width: 100%; min-height: 50px; padding: 12px 14px; border-radius: var(--r); border: 1px solid rgba(255, 255, 255, .2); background: rgba(255, 255, 255, .07); color: #fff; font: 500 16px/1.3 var(--copy); appearance: none; -webkit-appearance: none; color-scheme: dark; transition: border-color .15s ease, background .15s ease, box-shadow .15s ease; }
.ctl select { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1.5l5 5 5-5' fill='none' stroke='%23ffffff' stroke-width='1.6'/%3E%3C/svg%3E"); background-repeat: no-repeat; background-position: right 14px center; padding-right: 36px; }
.ctl select option { color: var(--ink); }
.ctl textarea { min-height: 84px; resize: vertical; }
.ctl input::placeholder, .ctl textarea::placeholder { color: rgba(255, 255, 255, .55); }
.ctl input:hover, .ctl select:hover, .ctl textarea:hover { border-color: rgba(255, 255, 255, .4); }
.ctl input:focus, .ctl select:focus, .ctl textarea:focus { outline: none; border-color: var(--coral); background: rgba(255, 255, 255, .12); box-shadow: 0 0 0 3px rgba(242, 112, 91, .3); }
.ctl [aria-invalid="true"] { border-color: #ff9b8a; box-shadow: 0 0 0 3px rgba(255, 155, 138, .25); }
.ctl-note { margin: 0; font-size: 13.5px; font-weight: 600; color: #ffb4a6; }
.ctl-opt { font-weight: 400; color: var(--quiet-n); }
.consent-row { display: flex; gap: 10px; align-items: flex-start; }
.consent-row input { width: 20px; height: 20px; margin: 3px 0 0; flex: none; accent-color: var(--coral); }
.consent-row label { font-size: 14.5px; line-height: 1.5; color: rgba(255, 255, 255, .86); }
.pot { position: absolute; left: -10000px; width: 1px; height: 1px; overflow: hidden; }
.step-two { display: grid; gap: 12px; margin-top: 16px; padding-top: 16px; border-top: 1px solid rgba(255, 255, 255, .14); }
.planner-actions { margin-top: 16px; }
.planner-actions .button { width: 100%; }
.smallprint { margin-top: 14px; display: grid; gap: 6px; }
.smallprint p { margin: 0; font-size: 12.5px; line-height: 1.5; color: var(--quiet-n); }
.smallprint a { color: #fff; text-decoration-color: rgba(255, 255, 255, .5); text-decoration-thickness: 1px; }
.done-panel, .retry-panel { border-radius: var(--r); padding: 20px 22px; }
.done-panel { background: rgba(43, 166, 160, .16); border: 1px solid rgba(43, 166, 160, .5); outline: none; }
.done-title, .retry-title { font: 600 19px/1.3 var(--head); margin: 0 0 6px; color: #fff; }
.done-panel p:last-child { margin: 0; color: rgba(255, 255, 255, .88); }
.retry-panel { margin-top: 14px; background: rgba(255, 155, 138, .12); border: 1px solid rgba(255, 155, 138, .45); }
.retry-panel p { margin: 0 0 12px; font-size: 15px; color: rgba(255, 255, 255, .9); }
.retry-button { min-height: 44px; padding: 0 18px; border-radius: 999px; border: 1.5px solid #ffb4a6; background: transparent; color: #fff; font: 600 13.5px var(--head); cursor: pointer; }
.retry-button:hover { background: #ffb4a6; color: var(--ink); }

/* zones */
.zone { padding: 120px 0; }
.zone-sand { background: var(--sand); }
.zone-night { background: var(--ink); color: #d4dbe4; }
.zone-night h2, .zone-night h3 { color: #fff; }
.zone-night .tagline { color: var(--coral); }
.zone-intro { max-width: 760px; margin-bottom: 52px; }
.zone-intro p:not(.tagline) { margin: 18px 0 0; font-size: 19px; color: var(--quiet); }
.zone-night .zone-intro p:not(.tagline) { color: var(--quiet-n); }
.zone-intro-row { display: flex; justify-content: space-between; align-items: flex-end; gap: 40px; margin-bottom: 52px; }
.zone-intro-row .zone-intro { margin-bottom: 0; }

/* promises */
.promises { border-bottom: 1px solid var(--line); }
.promises ul { list-style: none; display: grid; grid-template-columns: repeat(4, 1fr); }
.promises li { padding: 44px 30px 46px; border-left: 1px solid var(--line); }
.promises li:first-child { border-left: 0; padding-left: 0; }
.promises b { display: block; font: 600 21px/1.2 var(--head); color: var(--ink); margin-bottom: 10px; letter-spacing: -.02em; }
.promises b::before { content: ""; display: block; width: 28px; height: 3px; border-radius: 2px; background: var(--coral); margin-bottom: 18px; }
.promises span { display: block; color: var(--quiet); font-size: 15.5px; line-height: 1.55; }

/* season */
.season { list-style: none; display: grid; grid-template-columns: repeat(6, 1fr); gap: 14px; }
.month { background: #fff; border-radius: var(--r); padding: 20px 18px 22px; display: flex; flex-direction: column; }
.month-name { font: 600 16px var(--head); color: var(--ink); margin: 0 0 14px; }
.month-bar { height: 96px; display: flex; align-items: flex-end; background: var(--sand); border-radius: 6px; overflow: hidden; margin-bottom: 14px; }
.month-bar i { display: block; width: 100%; border-radius: 6px 6px 0 0; background: var(--teal); }
.level-low i { height: 25%; } .level-mid i { height: 50%; } .level-high i { height: 76%; background: #f2a35b; } .level-peak i { height: 100%; background: var(--coral); }
.month-level { font-size: 12.5px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--quiet); margin: 0 0 6px; }
.month-note { font-size: 14.5px; line-height: 1.5; color: var(--text); margin: 0; }
.season-foot { display: flex; justify-content: space-between; align-items: center; gap: 20px; flex-wrap: wrap; margin-top: 32px; }
.season-key { list-style: none; display: flex; gap: 18px; flex-wrap: wrap; font-size: 14px; color: var(--quiet); }
.season-key li { display: inline-flex; align-items: center; gap: 8px; }
.season-key i { width: 12px; height: 12px; border-radius: 3px; display: inline-block; }

/* lanes */
.lanes-grid { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(0, .75fr); gap: 64px; align-items: stretch; }
.lanes { list-style: none; border-top: 1px solid var(--line-n); }
.lane { display: grid; grid-template-columns: 1.6fr .9fr 1.1fr; gap: 20px; align-items: center; padding: 20px 0; border-bottom: 1px solid var(--line-n); }
.lane-from { display: flex; flex-direction: column; }
.lane-from b { font: 600 19px var(--head); color: #fff; letter-spacing: -.01em; }
.lane-from span { font-size: 14.5px; color: var(--quiet-n); }
.lane-time { font: 600 17px var(--head); color: var(--coral); }
.lane-craft { font-size: 15px; color: #d4dbe4; }
.lanes-note { margin-top: 22px; font-size: 14.5px; color: var(--quiet-n); }
.lanes-photo { margin: 0; border-radius: 16px; overflow: hidden; position: relative; min-height: 420px; }
.lanes-photo img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.lanes-photo figcaption { position: absolute; left: 20px; right: 20px; bottom: 18px; color: #fff; font-size: 14px; }

/* bento aircraft */
.bento { list-style: none; display: grid; grid-template-columns: 1.3fr 1fr 1fr; grid-template-rows: auto auto; gap: 18px; }
.bento-item { position: relative; border-radius: 16px; overflow: hidden; background: var(--ink); color: #fff; min-height: 270px; display: flex; align-items: flex-end; }
.bento-item--lead { grid-row: span 2; min-height: 560px; }
.bento-photo { position: absolute; inset: 0; }
.bento-photo img { width: 100%; height: 100%; object-fit: cover; transition: transform .7s ease; }
.bento-item:hover .bento-photo img { transform: scale(1.04); }
.bento-photo::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(14, 26, 42, 0) 30%, rgba(14, 26, 42, .9) 100%); }
.bento-text { position: relative; padding: 22px; width: 100%; }
.bento-text h3 { color: #fff; font-size: 20px; margin-bottom: 6px; }
.bento-item--lead .bento-text h3 { font-size: 30px; }
.bento-text p { margin: 0 0 12px; font-size: 14.5px; color: rgba(255, 255, 255, .84); max-width: 34em; }
.bento-specs { list-style: none; display: flex; flex-wrap: wrap; gap: 8px; }
.bento-specs li { font-size: 13px; font-weight: 600; background: rgba(255, 255, 255, .14); border: 1px solid rgba(255, 255, 255, .2); border-radius: 999px; padding: 5px 11px; }
.bento-note { margin-top: 22px; font-size: 14.5px; color: var(--quiet); max-width: 62em; }

/* places */
.places { list-style: none; display: grid; grid-template-columns: repeat(4, 1fr); gap: 18px; }
.place { position: relative; border-radius: 16px; overflow: hidden; aspect-ratio: 3 / 4.2; background: var(--ink); }
.place img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: transform .7s ease; }
.place:hover img { transform: scale(1.05); }
.place::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(14, 26, 42, 0) 40%, rgba(14, 26, 42, .86) 100%); }
.place-text { position: absolute; left: 0; right: 0; bottom: 0; z-index: 1; padding: 20px; color: #fff; }
.place-text h3 { color: #fff; font-size: 18px; margin-bottom: 6px; }
.place-text p { margin: 0; font-size: 14.5px; line-height: 1.5; color: rgba(255, 255, 255, .86); }

/* onward */
.onward { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, .9fr); gap: 72px; align-items: center; }
.onward-photo { margin: 0; border-radius: 16px; overflow: hidden; }
.onward-photo img { width: 100%; aspect-ratio: 4 / 3.3; object-fit: cover; }
.onward-facts { list-style: none; margin: 26px 0 30px; display: grid; gap: 0; border-top: 1px solid var(--line); }
.onward-facts li { display: grid; grid-template-columns: 150px 1fr; gap: 16px; padding: 14px 0; border-bottom: 1px solid var(--line); font-size: 15.5px; }
.onward-facts b { font: 600 14.5px var(--head); color: var(--ink); letter-spacing: -.01em; }

/* sequence */
.sequence { list-style: none; display: grid; grid-template-columns: repeat(3, 1fr); gap: 0; counter-reset: q; }
.seq-step { padding: 0 36px 0 0; }
.seq-step + .seq-step { padding-left: 36px; border-left: 1px solid var(--line-n); }
.seq-step::before { counter-increment: q; content: counter(q); display: block; font: 700 64px/1 var(--head); color: var(--coral); margin-bottom: 22px; letter-spacing: -.04em; }
.seq-step h3 { font-size: 21px; margin-bottom: 10px; }
.seq-step p { margin: 0; color: var(--quiet-n); font-size: 16.5px; }

/* assurance */
.assurance { list-style: none; display: grid; grid-template-columns: repeat(4, 1fr); gap: 18px; }
.assure-item { border: 1px solid var(--line); border-radius: var(--r); padding: 26px 24px; }
.assure-icn { width: 46px; height: 46px; border-radius: 12px; background: var(--coral-t); color: var(--coral-d); display: grid; place-items: center; margin-bottom: 20px; }
.assure-item h3 { margin-bottom: 8px; }
.assure-item p { margin: 0; font-size: 15.5px; color: var(--quiet); }
.assure-note { margin-top: 26px; font-size: 15.5px; color: var(--quiet); max-width: 66em; }

/* answers */
.answers-wrap { display: grid; grid-template-columns: minmax(0, .7fr) minmax(0, 1.3fr); gap: 72px; align-items: start; }
.answers { border-top: 1.5px solid var(--ink); }
.answers-item { border-bottom: 1px solid var(--line); }
.answers-item summary { list-style: none; cursor: pointer; display: flex; justify-content: space-between; align-items: center; gap: 24px; padding: 22px 0; font: 600 17px/1.4 var(--head); color: var(--ink); letter-spacing: -.01em; }
.answers-item summary::-webkit-details-marker { display: none; }
.answers-item summary::after { content: ""; flex: none; width: 12px; height: 12px; border-right: 2px solid var(--coral); border-bottom: 2px solid var(--coral); transform: rotate(45deg) translate(-2px, -2px); transition: transform .2s ease; }
.answers-item[open] summary::after { transform: rotate(-135deg) translate(-2px, -2px); }
.answers-body { padding: 0 40px 22px 0; color: var(--text); }
.answers-body p:last-child { margin: 0; }

/* sets */
.setlist { list-style: none; display: grid; grid-template-columns: repeat(3, 1fr); gap: 26px; }
.set-card a { display: block; color: inherit; text-decoration: none; }
.set-photo { border-radius: 16px; overflow: hidden; aspect-ratio: 4 / 3; margin-bottom: 18px; background: var(--sand-2); }
.set-photo img { width: 100%; height: 100%; object-fit: cover; transition: transform .7s ease; }
.set-card a:hover img { transform: scale(1.04); }
.set-meta { font-size: 12.5px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: var(--coral-d); }
.set-card h3 { font-size: 21px; line-height: 1.25; margin: 10px 0 10px; }
.set-card a:hover h3 { color: var(--coral-d); }
.set-card p { margin: 0; color: var(--quiet); font-size: 15.5px; }

/* final */
.final { position: relative; isolation: isolate; color: #d4dbe4; padding: 130px 0; }
.final-photo { position: absolute; inset: 0; z-index: -1; background: var(--ink); }
.final-photo img { width: 100%; height: 100%; object-fit: cover; object-position: 50% 60%; }
.final-photo::after { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, rgba(14, 26, 42, .94) 0%, rgba(14, 26, 42, .8) 50%, rgba(14, 26, 42, .55) 100%); }
.final-grid { display: grid; grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); gap: 64px; align-items: start; }
.final h2 { color: #fff; }
.final .tagline { color: var(--coral); }
.final .standfirst { color: rgba(255, 255, 255, .88); margin: 22px 0 28px; }
.final-list { list-style: none; display: grid; gap: 12px; }
.final-list li { display: grid; grid-template-columns: 26px 1fr; gap: 12px; color: #fff; font-size: 16.5px; }
.final-list .icn { color: var(--coral); }

/* base (footer) */
.base { background: var(--ink); color: #b6c1cf; padding: 88px 0 36px; font-size: 15.5px; border-top: 1px solid var(--line-n); }
.base-mark { font: 700 clamp(34px, 5.6vw, 86px)/1 var(--head); color: #fff; letter-spacing: -.035em; margin: 0 0 56px; }
.base-mark span { color: var(--coral); }
.base-cols { display: grid; grid-template-columns: 1.3fr 1fr 1fr 1fr; gap: 40px; }
.base-cols p { margin: 0; max-width: 28em; }
.base h2 { font: 600 12.5px var(--head); letter-spacing: .14em; text-transform: uppercase; color: #fff; margin-bottom: 14px; }
.base ul { list-style: none; display: grid; gap: 10px; }
.base ul a { color: #b6c1cf; text-decoration: none; }
.base ul a:hover { color: #fff; text-decoration: underline; text-decoration-color: var(--coral); }
.base-legal { margin-top: 56px; padding-top: 24px; border-top: 1px solid var(--line-n); font-size: 14.5px; color: #b6c1cf; }
.base-legal p { margin: 0; max-width: 95ch; }
.base-end { display: flex; justify-content: space-between; gap: 14px; flex-wrap: wrap; margin-top: 22px; font-size: 14px; color: #8e9bab; }
.base-end a { color: #b6c1cf; }

/* inner pages */
.title-block { background: var(--ink); color: #d4dbe4; padding: 168px 0 72px; }
.title-block h1 { color: #fff; font-size: clamp(36px, 4.6vw, 62px); max-width: 15em; }
.title-block .standfirst { color: rgba(255, 255, 255, .86); max-width: 38em; margin: 22px 0 0; }
.title-block .tagline { color: var(--coral); }
.path { list-style: none; display: flex; flex-wrap: wrap; gap: 10px; font-size: 14px; color: var(--quiet-n); margin-bottom: 26px; }
.path li + li::before { content: "/"; margin-right: 10px; color: #536175; }
.path a { color: #c9d2de; text-decoration: none; }
.path a:hover { color: #fff; }
.longform { max-width: 740px; }
.longform > p, .longform li { color: var(--text); }
.longform h2 { font-size: clamp(24px, 2.5vw, 31px); margin: 54px 0 16px; }
.longform h3 { margin: 32px 0 10px; font-size: 18px; }
.longform ul, .longform ol { padding-left: 22px; margin: 0 0 1.2em; }
.longform li { margin-bottom: .5em; }
.longform table { width: 100%; border-collapse: collapse; margin: 26px 0 8px; font-size: 15.5px; }
.longform th { text-align: left; padding: 12px 14px 12px 0; border-bottom: 1.5px solid var(--ink); font: 600 13px var(--head); letter-spacing: .02em; color: var(--ink); }
.longform td { padding: 12px 14px 12px 0; border-bottom: 1px solid var(--line); vertical-align: top; }
.longform figure { margin: 34px 0; }
.longform figure img { border-radius: 14px; width: 100%; }
.note-cap { font-size: 14.5px; color: var(--quiet); margin-top: 8px; }
.overflow-x { overflow-x: auto; -webkit-overflow-scrolling: touch; }
.boxout { background: var(--sand); border-left: 3px solid var(--coral); border-radius: 0 var(--r) var(--r) 0; padding: 20px 24px; margin: 28px 0; }
.boxout p:last-child { margin: 0; }
.set-head { background: var(--ink); color: #d4dbe4; padding: 160px 0 0; }
.set-head h1 { color: #fff; font-size: clamp(32px, 4.2vw, 56px); max-width: 17em; }
.set-head .tagline { color: var(--coral); }
.set-facts { list-style: none; display: flex; gap: 22px; flex-wrap: wrap; margin-top: 22px; font-size: 14.5px; color: var(--quiet-n); }
.set-cover { margin: 40px 0 0; border-radius: 16px 16px 0 0; overflow: hidden; }
.set-cover img { width: 100%; aspect-ratio: 2.3 / 1; object-fit: cover; }
.set-layout { display: grid; grid-template-columns: minmax(0, 740px) minmax(0, 1fr); gap: 72px; padding: 64px 0 110px; }
.set-aside { position: sticky; top: 112px; display: grid; gap: 16px; align-self: start; }
.aside-panel { border-radius: 14px; padding: 26px; background: var(--sand); }
.aside-panel h2 { font-size: 19px; margin-bottom: 10px; }
.aside-panel p { font-size: 15.5px; color: var(--text); }
.aside-panel .button { width: 100%; }
.aside-links { list-style: none; display: grid; }
.aside-links a { display: block; padding: 11px 0; border-bottom: 1px solid var(--line); font-weight: 600; text-decoration: none; color: var(--ink); line-height: 1.4; }
.aside-links a:hover { color: var(--coral-d); }
.cta-night { margin-top: 52px; background: var(--ink); color: #d4dbe4; border-radius: 16px; padding: 32px; display: flex; justify-content: space-between; align-items: center; gap: 20px; flex-wrap: wrap; }
.cta-night h2 { color: #fff; font-size: 23px; margin: 0 0 6px; }
.cta-night p { margin: 0; color: var(--quiet-n); }
.request-layout { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(0, .75fr); gap: 52px; padding: 64px 0 120px; align-items: start; }
.request-aside { position: sticky; top: 112px; display: grid; gap: 16px; }
.planner--full { background: var(--ink); backdrop-filter: none; -webkit-backdrop-filter: none; box-shadow: var(--lift); }
.form-heading { font: 600 12.5px var(--head); letter-spacing: .14em; text-transform: uppercase; color: var(--coral); margin: 22px 0 12px; }
.form-heading:first-child { margin-top: 0; }

/* calendar tool */
.cal-tabs { display: flex; gap: 8px; flex-wrap: wrap; margin-bottom: 26px; }
.cal-tab { min-height: 48px; padding: 0 22px; border-radius: 999px; border: 1.5px solid var(--line); background: #fff; color: var(--ink); font: 600 14px var(--head); cursor: pointer; display: inline-flex; align-items: center; gap: 10px; }
.cal-tab i { width: 9px; height: 9px; border-radius: 50%; display: inline-block; }
.cal-tab:hover { border-color: var(--ink); }
.cal-tab[aria-selected="true"] { background: var(--ink); border-color: var(--ink); color: #fff; }
.cal-panel { background: #fff; border-radius: 16px; box-shadow: var(--lift); padding: 34px; }
.cal-panel + .cal-panel { margin-top: 18px; }
.js .cal-panel + .cal-panel { margin-top: 0; }
.cal-top { display: flex; justify-content: space-between; align-items: center; gap: 20px; flex-wrap: wrap; margin-bottom: 24px; }
.cal-top h2 { font-size: 30px; }
.cal-level { display: flex; align-items: center; gap: 14px; font-weight: 600; font-size: 15px; }
.cal-meter { display: flex; gap: 4px; }
.cal-meter i { width: 26px; height: 8px; border-radius: 4px; background: var(--sand-2); }
.cal-meter i.on { background: var(--coral); }
.cal-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 0 36px; }
.cal-item { padding: 18px 0; border-top: 1px solid var(--line); }
.cal-item h3 { font-size: 15px; margin-bottom: 6px; }
.cal-item p { margin: 0; font-size: 15.5px; color: var(--text); }

.astray { min-height: 70vh; display: flex; align-items: center; padding: 180px 0 120px; background: var(--ink); color: #d4dbe4; }
.astray h1 { color: #fff; }

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { transition: none !important; animation: none !important; }
}
@media (max-width: 1180px) {
  .season { grid-template-columns: repeat(3, 1fr); }
  .places { grid-template-columns: repeat(2, 1fr); }
  .assurance { grid-template-columns: repeat(2, 1fr); }
  .promises ul { grid-template-columns: 1fr 1fr; }
  .promises li:nth-child(3) { border-left: 0; padding-left: 0; }
  .promises li:nth-child(n+3) { border-top: 1px solid var(--line); }
}
@media (max-width: 1023px) {
  .toggle { display: block; }
  .navlinks { display: none; position: fixed; top: 84px; left: 0; right: 0; bottom: 0; background: var(--ink); padding: 18px 36px 40px; flex-direction: column; align-items: stretch; gap: 22px; overflow-y: auto; }
  .menu-open .navlinks { display: flex; }
  .menu-open .masthead { background: var(--ink); }
  .navlinks-list { flex-direction: column; gap: 0; }
  .navlinks-list a { display: block; padding: 18px 0; border-bottom: 1px solid var(--line-n); font: 600 20px var(--head); }
  .navlinks .button { min-height: 54px; }
  .cover-grid, .lanes-grid, .onward, .answers-wrap, .final-grid, .request-layout, .set-layout { grid-template-columns: 1fr; gap: 44px; }
  .cover { min-height: 0; }
  .lanes-photo { min-height: 320px; }
  .bento { grid-template-columns: 1fr 1fr; }
  .bento-item--lead { grid-column: 1 / -1; grid-row: auto; min-height: 420px; }
  .sequence { grid-template-columns: 1fr; gap: 36px; }
  .seq-step, .seq-step + .seq-step { padding: 0; border-left: 0; }
  .setlist { grid-template-columns: 1fr 1fr; }
  .base-cols { grid-template-columns: 1fr 1fr; }
  .base-cols > div:first-child { grid-column: 1 / -1; }
  .set-aside, .request-aside { position: static; }
  .zone-intro-row { display: block; }
  .zone-intro-row .button, .zone-intro-row .more-link { margin-top: 22px; }
}
@media (max-width: 720px) {
  body { font-size: 17px; }
  .frame { padding: 0 20px; }
  .masthead-row { height: 70px; }
  .navlinks { top: 70px; padding: 10px 20px 32px; }
  .wordmark svg { height: 24px; }
  .cover-grid { padding-top: 112px; padding-bottom: 32px; gap: 32px; }
  .cover h1 { font-size: 40px; }
  .standfirst { font-size: 18px; }
  .planner { padding: 18px 16px; border-radius: 16px; }
  .pair { grid-template-columns: 1fr; }
  .zone { padding: 80px 0; }
  .zone-intro, .zone-intro-row { margin-bottom: 34px; }
  .promises ul { grid-template-columns: 1fr; }
  .promises li, .promises li:first-child { padding: 26px 0; border-left: 0; border-top: 1px solid var(--line); }
  .promises li:first-child { border-top: 0; }
  .season { grid-template-columns: 1fr 1fr; gap: 10px; }
  .month { padding: 16px 14px; }
  .month-bar { height: 64px; }
  .lane { grid-template-columns: 1fr auto; gap: 4px 14px; }
  .lane-craft { grid-column: 1 / -1; font-size: 14px; color: var(--quiet-n); }
  .bento { grid-template-columns: 1fr; }
  .bento-item, .bento-item--lead { min-height: 300px; }
  .bento-item--lead .bento-text h3 { font-size: 24px; }
  .places { grid-template-columns: 1fr 1fr; gap: 12px; }
  .place { aspect-ratio: 3 / 4.4; }
  .place-text { padding: 14px; }
  .place-text h3 { font-size: 15px; }
  .place-text p { font-size: 13px; }
  .onward-facts li { grid-template-columns: 1fr; gap: 2px; }
  .assurance { grid-template-columns: 1fr; }
  .answers-item summary { font-size: 15.5px; }
  .answers-body { padding-right: 0; }
  .setlist { grid-template-columns: 1fr; }
  .final { padding: 84px 0; }
  .base-cols { grid-template-columns: 1fr; }
  .title-block { padding: 128px 0 56px; }
  .set-head { padding-top: 124px; }
  .set-cover img { aspect-ratio: 16 / 10; }
  .cal-panel { padding: 22px; }
  .cal-grid { grid-template-columns: 1fr; }
  .cta-night { padding: 24px; }
}

/* planner rows */
.pax-row { align-items: end; }
.pax-row .planner-actions { margin-top: 0; }
.cal-tabs { display: none; }
.js .cal-tabs { display: flex; }
.bento-item:not(.bento-item--lead) .bento-photo::after { background: linear-gradient(180deg, rgba(14, 26, 42, .3) 0%, rgba(14, 26, 42, .93) 72%); }
