:root {
  /* One palette */
  --navy: #0a0b0e;
  --navy-2: #15171c;
  --white: #ffffff;
  --on-dark: #ffffff;
  --on-dark-muted: #cfd2d6;
  --limestone: #faf7f1;
  --pale: #faf7f1;
  --sea: #0e3b43;
  --text: #15181d;
  --body: #3a3d42;
  --muted: #4d5157;
  --line: #e6e2d9;
  --field: #d9d5cc;
  --gold-50: #f8f2e4;
  --gold: #1f4fc9;
  --gold-text: #1f4fc9;
  --gold-grad: linear-gradient(135deg, #1f4fc9, #1f4fc9 55%, #1f4fc9);
  --bad: #b3261e;
  /* Type */
  --sans: Jost, system-ui, sans-serif;
  --serif: "Cormorant Garamond", Georgia, serif;
  /* Spacing, shape, motion */
  --gutter: clamp(16px, 5vw, 80px);
  --s-1: 4px; --s-2: 8px; --s-3: 12px; --s-4: 16px; --s-5: 24px; --s-6: 32px; --s-7: 48px; --s-8: 64px; --s-9: 96px; --s-10: 128px;
  --r-1: 10px; --r-2: 12px; --r-3: 12px; --r-pill: 999px;
  --shadow-1: 0 2px 8px rgba(11, 18, 32, .07);
  --shadow-2: 0 12px 28px rgba(11, 18, 32, .13);
  --shadow-3: 0 24px 60px rgba(11, 18, 32, .3);
  --ease: cubic-bezier(.2, .7, .2, 1);
}

/* --------------------------------------------------------------------- 2. CSS: PAGE STYLING --------------------------------------------------------------------- */

/* 2.1 Fonts */
@font-face {
  font-family: Jost;
  src: url(data:font/woff2;base64,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) format("woff2");
  font-weight: 400;
  font-display: swap;
}
@font-face {
  font-family: "Jost";
  src: url(data:font/woff2;base64,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) format("woff2");
  font-weight: 500;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: "Cormorant Garamond";
  src: url(data:font/woff2;base64,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) format("woff2");
  font-weight: 300 500;
  font-display: swap;
}


/* 2.2 Colours */

/* 2.3 Base */
* {
  box-sizing: border-box;
}
html {
  scroll-behavior: smooth;
  scroll-padding-top: 84px;
}
body {
  margin: 0;
  background: var(--white);
  color: var(--text);
  font: 400 17px/1.55 Jost, "Segoe UI", Arial, sans-serif;
}
h1, h2, h3, p, ul, ol, dl, dd, fieldset {
  margin: 0;
  padding: 0;
  border: 0;
  min-width: 0;
}
h1, h2, h3 {
  font-weight: 400;
  line-height: 1.12;
  text-wrap: balance;
}
h2 {
  font-size: clamp(2rem, 3.6vw, 3.1rem);
}
h3 {
  font-size: 1.35rem;
}
ul, ol {
  list-style: none;
}
a {
  color: inherit;
}
button, input, select {
  font: inherit;
  color: inherit;
}
button {
  cursor: pointer;
}
[hidden] {
  display: none !important;
}
:focus-visible {
  outline: 2px solid var(--gold);
  outline-offset: 2px;
}
.section {
  padding: clamp(56px, 7vw, 104px) var(--gutter);
}
.intro {
  max-width: 62ch;
  margin-top: 14px;
  color: var(--muted);
  font-size: 1.15rem;
}
.trap {
  position: absolute;
  left: -9999px;
}

/* 2.4 Buttons */
.btn {
  display: inline-block;
  padding: 14px 26px 12px;
  border: 1px solid transparent;
  border-radius: var(--r-1);
  background: var(--gold);
  color: #120e05;
  font-weight: 500;
  line-height: 1.15;
  text-align: center;
  text-decoration: none;
}
.btn:hover {
  filter: brightness(1.08);
}
.btn:disabled {
  filter: grayscale(.6);
  cursor: progress;
}
.btn.quiet {
  background: none;
  border-color: var(--text);
  color: var(--text);
}
.btn.quiet:hover {
  background: var(--pale);
  filter: none;
}

/* 2.5 Top bar */
.bar {
  position: sticky;
  top: 0;
  z-index: 40;
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: center;
  gap: 8px 28px;
  padding: 12px var(--gutter);
  background: var(--navy);
  color: var(--on-dark);
}
.brand {
  color: var(--gold);
  font-size: 1.35rem;
  font-weight: 500;
  text-decoration: none;
}
.bar nav {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 6px 26px;
}
.bar nav a:not(.btn) {
  font-size: 1rem;
  text-decoration: none;
}
.bar nav a:not(.btn):hover {
  color: var(--gold);
}
.bar .btn {
  padding: 9px 18px 7px;
}
.bar :focus-visible {
  outline-color: var(--gold);
}

/* 2.6 Hero and booking box */
.hero {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  padding: clamp(48px, 7vw, 104px) var(--gutter) clamp(36px, 5vw, 64px);
  background: var(--navy);
  color: var(--on-dark);
}
.hero-art {
  position: absolute;
  inset: 0;
  z-index: -1;
  width: 100%;
  height: 100%;
}
.hero h1 {
  max-width: 20ch;
  font-size: clamp(2.5rem, 5vw, 4.6rem);
}
.hero-lead {
  max-width: 52ch;
  margin: 14px 0 clamp(26px, 4vw, 48px);
  font-size: clamp(1.05rem, 1.5vw, 1.25rem);
}
.widget {
  max-width: 1120px;
  padding: 8px 22px 22px;
  background: var(--white);
  border-radius: var(--r-2);
  color: var(--text);
  box-shadow: 0 24px 60px rgba(0, 0, 0, .35);
}
.tabs {
  display: flex;
  gap: 22px;
  margin-bottom: 16px;
  border-bottom: 1px solid var(--line);
}
.tabs button {
  padding: 11px 2px 9px;
  border: 0;
  border-bottom: 2px solid transparent;
  background: none;
  color: var(--muted);
  font-weight: 500;
}
.tabs button[aria-pressed="true"] {
  border-color: var(--gold);
  color: var(--text);
}
.widget-fields {
  display: grid;
  grid-template-columns: 1.35fr 1.35fr 1fr .8fr .7fr auto;
  gap: 12px;
  align-items: end;
}
.widget label, .field {
  display: flex;
  flex-direction: column;
  gap: 4px;
  min-width: 0;
  font-size: 0.9rem;
  font-weight: 500;
}
.widget input, .widget select, .field input {
  width: 100%;
  min-height: 48px;
  padding: 10px 10px 8px;
  background: var(--white);
  border: 1px solid var(--field);
  border-radius: var(--r-1);
  font-weight: 400;
}
.widget input[readonly] {
  background: var(--pale);
}
.widget input:focus, .widget select:focus, .field input:focus {
  outline: 2px solid var(--gold);
  border-color: var(--gold);
}
.widget .btn {
  min-height: 48px;
}
.widget-note {
  margin-top: 12px;
  color: var(--muted);
}
.widget-note b {
  color: var(--gold-text);
  font-size: 1.15rem;
  font-weight: 500;
}
.bad-note {
  color: var(--bad);
  font-weight: 500;
}

/* 2.7 Highlights */
.highlights {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 20px;
  padding: clamp(30px, 4vw, 52px) var(--gutter);
  border-bottom: 1px solid var(--line);
}
.highlights li {
  display: grid;
  grid-template-columns: 50px 1fr;
  column-gap: 16px;
  align-items: center;
}
.highlights svg {
  grid-row: span 2;
  width: 44px;
  height: 44px;
  fill: none;
  stroke: var(--gold);
  stroke-width: 2;
  stroke-linecap: round;
  stroke-linejoin: round;
}
.highlights b {
  font-size: 1.15rem;
  font-weight: 500;
}
.highlights span {
  color: var(--muted);
}

/* 2.8 Booking steps */
.booking {
  background: var(--pale);
  padding: clamp(28px, 4vw, 52px) var(--gutter) clamp(56px, 6vw, 88px);
}
.progress {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  margin-bottom: 24px;
  border-bottom: 1px solid var(--line);
  counter-reset: step;
}
.progress button {
  padding: 10px 4px 12px;
  border: 0;
  border-bottom: 3px solid transparent;
  background: none;
  color: var(--muted);
  font-weight: 500;
  text-align: left;
  counter-increment: step;
}
.progress button::before {
  content: counter(step) ". ";
}
.progress button[aria-current="step"] {
  border-color: var(--gold);
  color: var(--text);
}
.progress button.done {
  color: var(--text);
}
.progress button:disabled {
  cursor: default;
}
.builder {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(320px, 400px);
  gap: clamp(20px, 3vw, 40px);
  align-items: start;
}
.steps {
  padding: clamp(20px, 2.6vw, 32px);
  background: var(--white);
  border: 1px solid var(--line);
  border-radius: var(--r-2);
}
.step {
  display: grid;
  gap: 18px;
}
.step h2 {
  font-size: clamp(1.7rem, 2.6vw, 2.3rem);
}
.hint {
  color: var(--muted);
  font-size: 0.9rem;
}
.grid2 {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 16px;
}
.grid3 {
  display: grid;
  grid-template-columns: 1.2fr 1fr 1.2fr;
  gap: 16px;
}
.has-error input {
  border-color: var(--bad);
}
.error {
  display: block;
  color: var(--bad);
  font-size: 0.9rem;
  font-weight: 500;
}
.form-message {
  color: var(--bad);
  font-weight: 500;
}
.form-message:empty {
  display: none;
}
.toggle {
  display: flex;
  gap: 12px;
  align-items: center;
  padding: 13px 14px 11px;
  border: 1px solid var(--line);
  border-radius: var(--r-1);
  font-weight: 500;
  cursor: pointer;
}
.toggle input {
  flex: none;
  width: 21px;
  height: 21px;
  accent-color: var(--gold);
}
.toggle small {
  display: block;
  color: var(--muted);
  font-size: 0.9rem;
  font-weight: 400;
}
.return-box {
  padding: 16px;
  background: var(--pale);
  border-radius: var(--r-1);
}
.actions {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  gap: 10px;
  margin-top: 8px;
}
.actions .next {
  margin-left: auto;
}

/* 2.9 Vehicle choice */
.vehicles {
  display: grid;
  gap: 10px;
}
.vehicle {
  cursor: pointer;
}
.vehicle input {
  position: absolute;
  opacity: 0;
}
.v-body {
  display: grid;
  grid-template-columns: 170px minmax(0, 1fr) auto;
  gap: 18px;
  align-items: center;
  padding: 14px 18px;
  border: 1px solid var(--line);
  border-radius: var(--r-1);
}
.art {
  fill: none;
  stroke: var(--gold);
  stroke-width: 3;
  stroke-linecap: round;
  stroke-linejoin: round;
}
.v-body svg {
  width: 100%;
  height: 60px;
}
.v-body b {
  display: block;
  font-size: 1.35rem;
  font-weight: 500;
}
.v-body small {
  color: var(--muted);
  font-size: 0.9rem;
}
.v-body em {
  color: var(--text);
  font-size: 1.35rem;
  font-style: normal;
  font-weight: 500;
}
.vehicle input:checked + .v-body {
  border-color: var(--gold);
  box-shadow: inset 0 0 0 1px var(--gold);
  background: #fbf8f0;
}
.vehicle input:focus-visible + .v-body {
  outline: 2px solid var(--gold);
  outline-offset: 2px;
}
.vehicle input:disabled + .v-body {
  opacity: .4;
  cursor: not-allowed;
}
.counters {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(195px, 1fr));
  gap: 12px 18px;
}
.counter {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 10px;
  font-weight: 500;
}
.stepper {
  flex: none;
  display: inline-grid;
  grid-template-columns: 38px 38px 38px;
  align-items: center;
  border: 1px solid var(--field);
  border-radius: var(--r-1);
}
.stepper button {
  min-height: 38px;
  border: 0;
  background: none;
  font-size: 1.15rem;
}
.stepper button:hover {
  background: var(--pale);
}
.stepper input {
  width: 100%;
  padding: 0;
  border: 0;
  background: none;
  font-weight: 500;
  text-align: center;
}
.section-title {
  font-size: 1.15rem;
  font-weight: 500;
}
.review {
  display: grid;
  gap: 1px;
  background: var(--line);
  border: 1px solid var(--line);
}
.review div {
  display: grid;
  grid-template-columns: 120px 1fr auto;
  gap: 10px;
  align-items: baseline;
  padding: 10px 12px 8px;
  background: var(--white);
}
.review dt {
  color: var(--muted);
  font-size: 0.9rem;
}
.review dd {
  white-space: pre-line;
  overflow-wrap: anywhere;
}
.review button {
  padding: 0;
  border: 0;
  background: none;
  color: var(--gold-text);
  font-size: 0.9rem;
  text-decoration: underline;
}

/* 2.10 Journey summary */
.panel {
  position: sticky;
  top: 82px;
  overflow: hidden;
  background: var(--white);
  border: 1px solid var(--line);
  border-radius: var(--r-2);
}
.map {
  display: block;
  width: 100%;
  height: auto;
  padding: 14px 14px 0;
  background: #fbfaf6;
}
.island {
  fill: #f1ece0;
  stroke: var(--gold);
  stroke-width: 2;
}
.route {
  fill: none;
  stroke: #80622a;
  stroke-width: 5;
  stroke-linecap: round;
}
.air {
  fill: var(--gold);
  stroke: var(--on-dark);
  stroke-width: 3;
}
.dest {
  fill: var(--navy);
  stroke: var(--on-dark);
  stroke-width: 3;
}
.map-label {
  fill: var(--text);
  font: 600 15px Jost, sans-serif;
}
.sign {
  padding: 18px 20px;
}
.sign-route {
  color: var(--muted);
  font-size: 0.9rem;
}
.sign-place {
  font-size: 1.35rem;
  line-height: 1.15;
}
.sign-when {
  margin-top: 4px;
  color: var(--muted);
}
.sign-total {
  margin-top: 12px;
  padding-top: 12px;
  border-top: 1px solid var(--line);
  font-size: 2.5rem;
  font-weight: 500;
  line-height: 1.1;
}
.sign-note {
  color: var(--muted);
  font-size: 0.9rem;
}
.sign-lines {
  display: grid;
  gap: 3px;
  margin-top: 10px;
  font-size: 0.9rem;
}
.sign-lines div {
  display: flex;
  justify-content: space-between;
  gap: 12px;
}
.edit-trip {
  margin-top: 10px;
  padding: 0;
  border: 0;
  background: none;
  color: var(--gold-text);
  text-decoration: underline;
}

/* 2.11 Vehicles */
.classes {
  margin-top: 32px;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 20px;
}
.class-card {
  display: flex;
  flex-direction: column;
  overflow: hidden;
  border: 1px solid var(--line);
  border-radius: var(--r-2);
}
.class-card svg {
  width: 100%;
  height: auto;
  padding: 34px 28px;
  background: var(--navy);
}
.class-card > div {
  display: flex;
  flex: 1;
  flex-direction: column;
  gap: 8px;
  padding: 22px 24px 24px;
}
.class-card p {
  color: var(--muted);
}
.class-card .class-price {
  margin-top: auto;
  color: var(--text);
}
.class-card .class-price b {
  display: block;
  font-size: 1.75rem;
  font-weight: 500;
}
.class-card .btn {
  align-self: flex-start;
}

/* 2.12 Editorial sections */
.story {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: clamp(26px, 5vw, 80px);
  align-items: center;
  padding: clamp(40px, 5vw, 72px) var(--gutter);
}
.story.flip .story-art {
  order: -1;
}
.story p {
  margin-top: 14px;
  color: var(--muted);
  font-size: 1.15rem;
}
.story-art {
  display: block;
  width: 100%;
  height: auto;
  border-radius: var(--r-2);
}

/* 2.13 Destination list */
.places-band {
  background: var(--pale);
}
.place-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(min(100%, 300px), 1fr));
  gap: 26px 40px;
  margin-top: 32px;
}
.place-grid h3 {
  padding-bottom: 8px;
  border-bottom: 2px solid var(--gold);
  font-size: 1.15rem;
  font-weight: 500;
}
.place-row {
  display: flex;
  justify-content: space-between;
  gap: 10px;
  width: 100%;
  padding: 10px 0 8px;
  background: none;
  border: 0;
  border-bottom: 1px solid var(--line);
  text-align: left;
}
.place-row:hover {
  color: var(--gold-text);
}
.place-row span {
  font-weight: 500;
}

/* 2.14 Questions */
.faq {
  display: grid;
  grid-template-columns: minmax(0, .7fr) minmax(0, 1.3fr);
  gap: clamp(26px, 5vw, 80px);
}
.faq details {
  padding: 16px 0 13px;
  border-bottom: 1px solid var(--line);
}
.faq summary {
  font-size: 1.15rem;
  font-weight: 500;
  cursor: pointer;
}
.faq summary::marker {
  color: var(--gold);
}
.faq details p {
  margin-top: 9px;
  color: var(--muted);
}

/* 2.15 Footer */
.foot {
  display: grid;
  grid-template-columns: 1.3fr repeat(3, 1fr);
  gap: 28px;
  padding: clamp(40px, 5vw, 64px) var(--gutter);
  background: var(--navy);
  color: var(--on-dark-muted);
}
.foot h3 {
  margin-bottom: 9px;
  color: var(--gold);
  font-size: 1rem;
  font-weight: 500;
}
.foot li {
  margin-bottom: 5px;
}
.foot a {
  text-decoration: none;
}
.foot a:hover {
  color: var(--gold);
}
.foot :focus-visible {
  outline-color: var(--gold);
}

/* 2.16 Mobile price bar */
.dock {
  display: none;
}

/* 2.17 Smaller screens */
@media (max-width: 1100px) {
  .widget-fields {
    grid-template-columns: 1fr 1fr;
  }
  .widget .btn {
    grid-column: 1 / -1;
  }
  .builder {
    grid-template-columns: minmax(0, 1fr);
  }
  .panel {
    position: static;
  }
  .dock {
    position: fixed;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 35;
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 12px;
    padding: 10px 16px;
    background: var(--navy);
    color: var(--on-dark);
  }
  .dock b {
    color: var(--gold);
    font-size: 1.35rem;
    font-weight: 500;
  }
  body.booking-open {
    padding-bottom: 60px;
  }
  body:not(.booking-open) .dock {
    display: none;
  }
}
@media (max-width: 760px) {
  html {
    scroll-padding-top: 16px;
  }
  .bar {
    position: static;
  }
  .bar nav a[href="#vehicles"], .bar nav a[href="#destinations"], .bar nav a[href="#questions"] {
    display: none;
  }
  .highlights, .classes, .grid2, .grid3, .story, .faq {
    grid-template-columns: minmax(0, 1fr);
  }
  .story.flip .story-art {
    order: 0;
  }
  .widget-fields {
    grid-template-columns: minmax(0, 1fr);
  }
  .v-body {
    grid-template-columns: 80px minmax(0, 1fr) auto;
    gap: 10px;
    padding: 12px;
  }
  .progress button {
    font-size: 0.8rem;
  }
  .review div {
    grid-template-columns: 1fr auto;
  }
  .review dd {
    grid-column: 1 / -1;
    grid-row: 2;
  }
  .foot {
    grid-template-columns: 1fr 1fr;
  }
  .actions .btn {
    flex: 1 1 auto;
  }
}
@media (prefers-reduced-motion: reduce) {
  html {
    scroll-behavior: auto;
  }
}

/* 2.18 Finest dark and white contrast */
.sr {
  position: absolute;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip-path: inset(50%);
  white-space: nowrap;
}
.defs {
  position: absolute;
}
.bar {
  box-shadow: 0 1px 0 rgba(236, 215, 166, .24);
}
.lang select {
  min-height: 34px;
  padding: 3px 6px 2px;
  background: transparent;
  border: 1px solid rgba(236, 215, 166, .55);
  border-radius: var(--r-1);
  color: var(--on-dark);
}
.lang option {
  color: #11151c;
}
.menu-toggle {
  display: none;
  width: 44px;
  height: 44px;
  padding: 10px;
  background: none;
  border: 1px solid rgba(236, 215, 166, .55);
  border-radius: var(--r-1);
}
.menu-toggle span {
  display: block;
  height: 2px;
  margin: 5px 0;
  background: var(--gold);
}

/* 2.19 Destination search box */
.combo-box {
  display: flex;
  flex-direction: column;
  gap: 4px;
  min-width: 0;
  font-size: 0.9rem;
  font-weight: 500;
}
.combo {
  position: relative;
}
.combo input {
  width: 100%;
  min-height: 48px;
  padding: 10px 10px 8px;
  background: var(--white);
  border: 1px solid var(--field);
  border-radius: var(--r-1);
  font-weight: 400;
}
.combo input:focus {
  outline: 2px solid var(--gold);
  border-color: var(--gold);
}
.combo-list {
  position: absolute;
  top: calc(100% + 4px);
  left: 0;
  z-index: 30;
  width: max(100%, 280px);
  max-height: 320px;
  overflow-y: auto;
  background: var(--white);
  border: 1px solid var(--line);
  border-radius: var(--r-1);
  box-shadow: 0 18px 44px rgba(0, 0, 0, .28);
}
.combo-area {
  padding: 9px 12px 4px;
  color: var(--muted);
  font-size: 0.8rem;
  font-weight: 500;
}
.combo-item {
  padding: 8px 12px 6px;
  font-size: 1rem;
  font-weight: 400;
  cursor: pointer;
}
.combo-item:hover, .combo-item.active {
  background: var(--gold-50);
}

/* 2.20 Vehicle picture slides */
.slides {
  position: relative;
  background: var(--navy);
}
.slide {
  display: grid;
  place-items: center;
  min-height: 196px;
  padding: 26px 26px 44px;
}
.slide svg {
  width: 100%;
  height: auto;
}
.class-card .slide svg {
  padding: 0;
  background: none;
}
.seats rect {
  fill: none;
  stroke: var(--gold);
  stroke-width: 2.5;
}
.slide-note {
  color: var(--gold);
  font-size: 0.9rem;
}
.slide-nav {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 8px;
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 12px;
  color: var(--on-dark);
  font-size: 0.9rem;
}
.slide-nav button {
  width: 30px;
  height: 30px;
  background: none;
  border: 1px solid rgba(236, 215, 166, .6);
  border-radius: 50%;
  color: var(--gold);
  line-height: 1;
}
.slide-nav button:hover {
  background: rgba(236, 215, 166, .18);
}
.slide-nav :focus-visible {
  outline-color: var(--gold);
}

/* 2.21 Popular routes */
.routes-band {
  background: var(--navy);
  color: var(--on-dark);
}
.routes-band .intro {
  color: var(--on-dark-muted);
}
.route-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 18px;
  margin-top: 32px;
}
.route-card {
  overflow: hidden;
  background: var(--white);
  border-radius: var(--r-2);
  color: var(--text);
}
.route-map {
  display: block;
  width: 100%;
  height: auto;
  padding: 18px 26px 4px;
  background: #f5f4f0;
}
.isle-shape {
  fill: var(--isle-fill, #e9e3d4);
  stroke: var(--isle-stroke, var(--gold));
  stroke-width: var(--isle-sw, 2.5);
}
.route-line {
  fill: none;
  stroke: #80622a;
  stroke-width: 8;
  stroke-linecap: round;
}
.route-body {
  display: grid;
  gap: 6px;
  padding: 18px 22px 22px;
}
.route-area {
  color: var(--muted);
}
.route-price b {
  display: block;
  font-size: 1.75rem;
  font-weight: 500;
}
.route-body .btn {
  justify-self: start;
}

/* 2.22 Dark editorial section */
.story-dark {
  background: var(--navy);
  color: var(--on-dark);
}
.story-dark p {
  color: var(--on-dark-muted);
}

/* 2.23 Price table controls */
.fare-controls {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  align-items: center;
  margin-top: 26px;
}
.seg {
  display: inline-flex;
  border: 1px solid var(--text);
  border-radius: var(--r-1);
  overflow: hidden;
}
.seg button {
  padding: 10px 15px 8px;
  background: var(--white);
  border: 0;
  font-weight: 500;
}
.seg button[aria-pressed="true"] {
  background: var(--navy);
  color: var(--gold);
}
.fare-search {
  flex: 1 1 220px;
}
.fare-search input {
  width: 100%;
  min-height: 44px;
  padding: 9px 11px 7px;
  background: var(--white);
  border: 1px solid var(--text);
  border-radius: var(--r-1);
}
.fare-empty {
  margin-top: 18px;
  font-weight: 500;
}
.faq-search {
  display: block;
  margin-bottom: 8px;
}

/* 2.24 Booking additions */
.summary-links {
  display: flex;
  justify-content: space-between;
  gap: 12px;
}
.secure {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-top: 12px;
  padding-top: 11px;
  border-top: 1px solid var(--line);
  color: var(--muted);
  font-size: 0.9rem;
}
.secure svg {
  flex: none;
  width: 19px;
  height: 19px;
  fill: none;
  stroke: var(--gold);
  stroke-width: 2;
}
.mover {
  fill: var(--gold);
  stroke: var(--navy);
  stroke-width: 2.5;
}
.error-summary {
  padding: 10px 13px 8px;
  background: #fbeceb;
  border-left: 4px solid var(--bad);
  color: var(--bad);
  font-weight: 500;
}

/* 2.25 Floating buttons */
.mobile-cta, .to-top {
  position: fixed;
  z-index: 30;
}
.mobile-cta {
  display: none;
  left: 16px;
  right: 16px;
  bottom: 14px;
}
.to-top {
  right: 20px;
  bottom: 20px;
  width: 46px;
  height: 46px;
  background: var(--navy);
  border: 1px solid var(--gold);
  border-radius: 50%;
  color: var(--gold);
  font-size: 1.15rem;
}

/* 2.26 Sections easing in */
.js .reveal {
  opacity: 0;
  transform: translateY(14px);
  transition: opacity .55s ease-out, transform .55s ease-out;
}
.js .reveal.seen {
  opacity: 1;
  transform: none;
}

/* 2.27 Smaller screens */
@media (max-width: 1100px) {
  .route-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .to-top {
    bottom: 74px;
  }
}
@media (max-width: 760px) {
  .route-grid {
    grid-template-columns: minmax(0, 1fr);
  }
  .menu-toggle {
    display: block;
  }
  #main-nav {
    display: none;
    flex-basis: 100%;
    flex-direction: column;
    align-items: stretch;
    padding-top: 8px;
  }
  #main-nav.open {
    display: flex;
  }
  #main-nav a[href="#vehicles"], #main-nav a[href="#destinations"], #main-nav a[href="#questions"] {
    display: block;
  }
  #main-nav a {
    padding: 8px 0 6px;
  }
  .mobile-cta {
    display: block;
  }
  .mobile-cta[hidden] {
    display: none !important;
  }
  .seg {
    width: 100%;
  }
  .seg button {
    flex: 1;
    padding-inline: 6px;
  }
  .story.flip .story-art {
    order: 0;
  }
  body.booking-open .to-top {
    bottom: 74px;
  }
}
@media (prefers-reduced-motion: reduce) {
  .js .reveal {
    opacity: 1;
    transform: none;
    transition: none;
  }
}
@media print {
  .bar, .hero, .mobile-cta, .to-top, .dock {
    display: none;
  }
}

/* 2.28 Top bar additions */
.clock {
  color: var(--on-dark-muted);
  font-size: 0.9rem;
  white-space: nowrap;
}
.clock b {
  color: var(--gold);
  font-weight: 500;
}
.options-toggle {
  min-width: 36px;
  min-height: 34px;
  background: none;
  border: 1px solid rgba(236, 215, 166, .55);
  border-radius: var(--r-1);
  color: var(--on-dark);
  font-weight: 500;
}
.options-panel {
  position: absolute;
  top: 100%;
  right: var(--gutter);
  z-index: 45;
  display: grid;
  gap: 8px;
  min-width: 230px;
  padding: 14px 16px;
  background: var(--white);
  border: 1px solid var(--line);
  border-radius: var(--r-1);
  box-shadow: 0 18px 44px rgba(0, 0, 0, .3);
  color: var(--text);
}
.options-title {
  font-weight: 500;
}
.options-panel label {
  display: flex;
  gap: 8px;
  align-items: center;
  cursor: pointer;
}
.options-panel input, .checklist input {
  accent-color: var(--gold);
}
#main-nav a[aria-current="true"] {
  color: var(--gold);
}

/* 2.29 Display options */
.pref-large {
  font-size: 118%;
}
.pref-large body {
  font-size: 19.5px;
}
.pref-contrast {
  --muted: #2c3138;
  --line: #7c828a;
  --gold-text: #5b4417;
}
.pref-contrast .routes-band .intro, .pref-contrast .story-dark p {
  color: var(--on-dark);
}
.pref-still *, .pref-still *::before, .pref-still *::after {
  transition: none !important;
  animation: none !important;
  scroll-behavior: auto !important;
}
.pref-still .js .reveal, .pref-still.js .reveal {
  opacity: 1;
  transform: none;
}

/* 2.30 Explore Mallorca */
.explore-chips {
  display: flex;
  flex-wrap: wrap;
  gap: 7px;
  margin-top: 24px;
}
.explore-chips button {
  padding: 6px 13px 4px;
  background: var(--white);
  border: 1px solid var(--line);
  border-radius: var(--r-pill);
  font-size: 0.9rem;
}
.explore-chips button[aria-pressed="true"] {
  background: var(--navy);
  border-color: var(--navy);
  color: var(--gold);
}
.explore-layout {
  display: grid;
  grid-template-columns: minmax(0, 1.25fr) minmax(300px, 1fr);
  gap: clamp(20px, 3vw, 44px);
  align-items: start;
  margin-top: 26px;
}
.explore-map {
  position: sticky;
  top: 84px;
  display: block;
  width: 100%;
  height: auto;
  padding: 18px;
  background: var(--pale);
  border-radius: var(--r-2);
}
.explore-map .air {
  fill: var(--navy);
}
.explore-pin {
  fill: var(--white);
  stroke: var(--gold);
  stroke-width: 3;
  cursor: pointer;
  transition: fill .15s;
}
.explore-pin:hover, .explore-pin.on {
  fill: var(--gold);
}
.explore-pin.dim {
  opacity: .18;
  pointer-events: none;
}
.explore-list {
  max-height: 620px;
  overflow-y: auto;
  border-top: 1px solid var(--line);
}
.explore-item {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 2px 14px;
  width: 100%;
  padding: 12px 10px 10px;
  background: none;
  border: 0;
  border-bottom: 1px solid var(--line);
  text-align: left;
}
.explore-item b {
  font-weight: 500;
}
.explore-item span {
  grid-column: 1;
  color: var(--muted);
  font-size: 0.9rem;
  line-height: 1.35;
}
.explore-item em {
  grid-column: 2;
  grid-row: 1 / span 2;
  align-self: center;
  font-style: normal;
  font-weight: 500;
}
.explore-item:hover, .explore-item.on {
  background: var(--gold-50);
}

/* 2.31 Destination details window */
.place-dialog {
  width: min(92vw, 860px);
  padding: 0;
  overflow: hidden;
  border: 0;
  border-radius: var(--r-2);
  color: var(--text);
}
.place-dialog::backdrop {
  background: rgba(5, 9, 16, .72);
}
.place-dialog[open] {
  display: grid;
  grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr);
}
.dialog-map {
  display: block;
  width: 100%;
  height: 100%;
  padding: 22px;
  background: var(--navy);
}
.dialog-body {
  display: grid;
  gap: 10px;
  align-content: start;
  padding: 28px;
}
.dialog-area {
  color: var(--gold-text);
  font-weight: 500;
}
.dialog-prices {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 20px;
  margin: 8px 0;
}
.dialog-prices h3 {
  margin-bottom: 7px;
  font-size: 1rem;
  font-weight: 500;
}
.dialog-prices li {
  display: flex;
  justify-content: space-between;
  gap: 10px;
  padding: 5px 0 3px;
  border-bottom: 1px solid var(--line);
}
.dialog-body .btn {
  justify-self: start;
}
.dialog-close {
  position: absolute;
  top: 10px;
  right: 12px;
  z-index: 2;
  width: 38px;
  height: 38px;
  background: var(--white);
  border: 1px solid var(--line);
  border-radius: 50%;
  font-size: 1.35rem;
  line-height: 1;
}

/* 2.32 Price calculator */
.calculator {
  display: grid;
  grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr);
  gap: clamp(24px, 4vw, 64px);
  align-items: start;
  background: var(--pale);
}
.calc-fields {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 120px;
  gap: 12px;
  margin: 22px 0 12px;
}
.calc-fields select {
  width: 100%;
  min-height: 48px;
  padding: 10px;
  background: var(--white);
  border: 1px solid var(--field);
  border-radius: var(--r-1);
  font-weight: 400;
}
.calc-seg {
  display: flex;
  margin-bottom: 12px;
}
.calc-seg button {
  flex: 1;
}
.calculator .toggle {
  background: var(--white);
}
.calc-results {
  display: grid;
  gap: 10px;
}
.calc-empty {
  padding: 26px;
  background: var(--white);
  border: 1px solid var(--line);
  border-radius: var(--r-2);
  color: var(--muted);
}
.calc-card {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto auto;
  gap: 4px 18px;
  align-items: center;
  padding: 16px 20px;
  background: var(--white);
  border: 1px solid var(--line);
  border-radius: var(--r-2);
}
.calc-card.best {
  border-color: var(--gold);
  box-shadow: inset 0 0 0 1px var(--gold);
}
.calc-card.no-fit {
  opacity: .6;
}
.calc-head {
  display: flex;
  flex-wrap: wrap;
  gap: 4px 10px;
  align-items: baseline;
}
.calc-badge {
  color: var(--gold-text);
  font-size: 0.9rem;
  font-weight: 500;
}
.calc-total {
  grid-column: 2;
  grid-row: 1;
  font-size: 1.75rem;
  font-weight: 500;
  line-height: 1.1;
  text-align: right;
}
.calc-card > p:not(.calc-total) {
  grid-column: 1;
  color: var(--muted);
  font-size: 0.9rem;
}
.calc-card .btn {
  grid-column: 3;
  grid-row: 1 / span 2;
  padding: 10px 14px 8px;
}
.calc-card .btn:disabled {
  cursor: not-allowed;
  opacity: .5;
}

/* 2.33 Before you book */
.checklist-band {
  background: var(--navy);
  color: var(--on-dark);
}
.checklist-band .intro {
  color: var(--on-dark-muted);
}
.checklist {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 300px), 1fr));
  gap: 10px 26px;
  margin-top: 26px;
}
.checklist label {
  display: flex;
  gap: 11px;
  align-items: center;
  padding: 12px 0 10px;
  border-bottom: 1px solid rgba(236, 215, 166, .28);
  cursor: pointer;
}
.checklist input {
  flex: none;
  width: 19px;
  height: 19px;
}
.checklist :focus-visible {
  outline-color: var(--gold);
}

/* 2.34 Save or share */
.journey-tools {
  display: grid;
  gap: 8px;
  padding-top: 14px;
  border-top: 1px solid var(--line);
}
.tools-title {
  font-weight: 500;
}
.tools-row {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}
.tools-row .btn {
  padding: 9px 13px 7px;
  font-size: 0.9rem;
}
.hint:empty {
  display: none;
}

/* 2.35 Smaller screens */
@media (max-width: 1240px) {
  .clock {
    display: none;
  }
}
@media (max-width: 900px) {
  .explore-layout, .calculator {
    grid-template-columns: minmax(0, 1fr);
  }
  .explore-map {
    position: static;
  }
  .place-dialog[open] {
    display: block;
    max-height: 90vh;
    overflow-y: auto;
  }
  .dialog-map {
    height: 180px;
  }
}
@media (max-width: 520px) {
  .calc-card {
    grid-template-columns: minmax(0, 1fr) auto;
  }
  .calc-card .btn {
    grid-column: 1 / -1;
    grid-row: auto;
  }
  .dialog-prices {
    grid-template-columns: minmax(0, 1fr);
  }
}
@media print {
  .highlights, .section, .story, .foot, .progress, .actions, .journey-tools, .summary-links, .map, .field, .grid2 {
    display: none !important;
  }
  .booking {
    padding: 0;
    background: var(--on-dark);
  }
  .builder {
    display: block;
  }
  .steps, .panel {
    position: static;
    border: 0;
  }
}

/* 2.36 Departure planner */
.planner-fields {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 210px), 1fr));
  gap: 12px;
  margin-top: 24px;
}
.planner-fields select, .planner-fields input {
  width: 100%;
  min-height: 48px;
  padding: 10px;
  background: var(--white);
  border: 1px solid var(--field);
  border-radius: var(--r-1);
  font-weight: 400;
}
.planner-result {
  display: grid;
  gap: 6px;
  justify-items: start;
  margin-top: 18px;
}
.plan-time {
  font-size: 1.75rem;
  font-weight: 500;
  line-height: 1.15;
}

/* 2.37 Keep the top bar on one line, or use the menu button */
html {
  scroll-padding-top: 90px;
}

#main-nav {
  flex-wrap: nowrap;
  white-space: nowrap;
}

@media (max-width: 1720px) {
  .clock {
    display: none;
  }
}

@media (max-width: 1360px) {
  .menu-toggle {
    display: block;
  }
  #main-nav {
    display: none;
    flex-basis: 100%;
    flex-direction: column;
    align-items: stretch;
    padding-top: 8px;
  }
  #main-nav.open {
    display: flex;
  }
  #main-nav a[href="#vehicles"], #main-nav a[href="#destinations"], #main-nav a[href="#questions"] {
    display: block;
  }
  #main-nav a {
    padding: 8px 0 6px;
  }
  #main-nav .options-toggle, #main-nav .lang {
    align-self: flex-start;
  }
}
/* 2.38 Same layout rhythm as the reference page */
body {
  background: var(--white);
  color: var(--text);
}
h2 {
  font-size: clamp(1.9rem, 3vw, 2.6rem);
  line-height: 1.15;
}
.section {
  padding-block: clamp(48px, 6vw, 80px);
}
.bar {
  background: var(--navy);
  box-shadow: none;
}

/* 2.39 Hero: one full picture */
.hero {
  min-height: min(86vh, 760px);
  display: flex;
  flex-direction: column;
  justify-content: center;
  background: var(--navy);
}
.hero-photo {
  width: 100%;
  height: 100%;
  object-fit: cover;
  filter: brightness(.62);
}
.hero h1 {
  font-size: clamp(2.3rem, 5vw, 4rem);
  margin-bottom: 26px;
}
.widget {
  border-radius: var(--r-2);
  box-shadow: 0 18px 50px rgba(0, 0, 0, .28);
}
.hero-foot {
  position: relative;
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: end;
  gap: 12px 30px;
  margin-top: 30px;
  color: var(--on-dark);
}
.hero-foot a {
  color: var(--on-dark);
  font-weight: 500;
  border-bottom: 1px solid var(--gold);
}

/* 2.40 Breadcrumb */
.crumbs {
  padding: 16px var(--gutter) 0;
  font-size: 0.9rem;
}
.crumbs ol {
  display: flex;
  flex-wrap: wrap;
  gap: 4px 9px;
  padding: 0;
  list-style: none;
}
.crumbs li + li::before {
  content: "/";
  margin-right: 9px;
  color: var(--muted);
}
.crumbs a {
  color: var(--muted);
}
.crumbs [aria-current] {
  color: var(--text);
}

/* 2.41 Highlights: a plain row */
.highlights {
  padding-block: 30px;
  background: var(--white);
  border-bottom: 1px solid var(--line);
}
.highlights svg {
  stroke: var(--text);
}

/* 2.42 Vehicle cards: picture on top, text below */
.classes {
  gap: clamp(16px, 2vw, 28px);
}
.class-card {
  background: var(--white);
  border: 0;
  border-radius: 0;
  box-shadow: none;
}
.class-card .slides {
  overflow: hidden;
  background: var(--navy);
  border-radius: var(--r-2);
}
.class-card .slide {
  aspect-ratio: 4 / 3;
  min-height: 0;
}
.class-card .slide:has(.slide-photo) {
  padding: 0;
}
.slide-photo {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.class-card > div:last-child {
  padding: 18px 0 0;
}

/* 2.43 Full-width picture and text rows */
.wide-picture {
  aspect-ratio: 5 / 2;
  overflow: hidden;
  background: var(--navy);
}
.wide-picture img, .wide-picture svg {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.story, .story.flip, .story-dark {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: clamp(28px, 5vw, 80px);
  align-items: center;
  padding: clamp(40px, 5vw, 72px) var(--gutter);
  background: var(--white);
  color: var(--text);
}
.story p {
  color: var(--muted);
}
.story-art {
  width: 100%;
  height: auto;
  aspect-ratio: 3 / 2;
  object-fit: cover;
  border-radius: var(--r-2);
}

/* 2.44 Questions with one tall picture */
.faq {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(280px, 400px);
  gap: clamp(28px, 5vw, 80px);
  align-items: start;
  background: var(--white);
}
.class-card > .slides {
  padding: 0;
}
.faq-main > h2 {
  margin-bottom: 22px;
}
.faq-picture {
  position: sticky;
  top: 84px;
  aspect-ratio: 4 / 7;
  overflow: hidden;
  border-radius: var(--r-2);
  background: var(--navy);
}
.faq-picture img, .faq-picture svg {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

/* 2.45 Plan your trip tabs */
.plan {
  background: var(--pale);
}
.plan-tabs {
  display: flex;
  gap: 4px;
  margin-top: 22px;
  overflow-x: auto;
  border-bottom: 1px solid var(--line);
  scrollbar-width: none;
}
.plan-tabs button {
  flex: none;
  padding: 12px 16px 10px;
  background: none;
  border: 0;
  border-bottom: 2px solid transparent;
  color: var(--muted);
  font-weight: 500;
}
.plan-tabs button[aria-selected="true"] {
  border-bottom-color: var(--gold);
  color: var(--text);
}
.tool-panel > .section {
  padding: 28px 0 0;
  background: none;
  color: var(--text);
}
.tool-panel > .section > h2, .tool-panel .calc-copy > h2 {
  display: none;
}
.tool-panel > .section .intro, .tool-panel .checklist-band .intro {
  margin-top: 0;
  color: var(--muted);
}
.tool-panel .routes-band .route-card {
  background: var(--white);
  color: var(--text);
  border: 1px solid var(--line);
}
.tool-panel .route-card .route-area, .tool-panel .route-card p {
  color: var(--muted);
}
.tool-panel .route-card .route-price b, .tool-panel .route-card h3 {
  color: var(--text);
}
.tool-panel .route-map {
  background: var(--navy);
}
.tool-panel .checklist label {
  border-bottom-color: var(--line);
}
.tool-panel .explore-map {
  background: var(--white);
}
.tool-panel .explore-chips {
  margin-top: 16px;
}

/* 2.46 Quiet footer */
.foot {
  background: var(--navy);
}
@media (max-width: 900px) {
  .story, .story.flip, .faq {
    grid-template-columns: minmax(0, 1fr);
  }
  .story.flip .story-art {
    order: 0;
  }
  .faq-picture {
    display: none;
  }
  .wide-picture {
    aspect-ratio: 16 / 9;
  }
}
/* 2.47 One gold, one set of headings */
h1 {
  font-size: clamp(2.3rem, 4.4vw, 3.6rem);
  line-height: 1.08;
}
h2 {
  font-size: clamp(1.85rem, 3vw, 2.6rem);
  line-height: 1.15;
}
h3 {
  font-size: 1.35rem;
  line-height: 1.25;
}
.hero h1 {
  font-size: clamp(2.3rem, 4.4vw, 3.6rem);
}
.section {
  scroll-margin-top: 0;
}
.native-hidden.native-hidden.native-hidden {
  position: absolute;
  width: 1px;
  height: 1px;
  min-height: 0;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  border: 0;
  clip: rect(0 0 0 0);
  opacity: 0;
}

/* 2.48 Top bar */
.bar {
  padding-block: 12px;
  transition: padding .2s var(--ease);
}
.bar.slim {
  padding-block: 5px;
  box-shadow: 0 6px 22px rgba(0, 0, 0, .28);
}
.brand {
  display: inline-flex;
  gap: 10px;
  align-items: center;
  color: var(--on-dark);
  text-decoration: none;
}
.brand-mark {
  flex: none;
  width: 36px;
  height: 36px;
}
.brand-mark circle, .brand-mark path {
  fill: none;
  stroke: var(--gold);
  stroke-width: 2.2;
  stroke-linecap: round;
  stroke-linejoin: round;
}
.brand-text {
  display: grid;
  line-height: 1;
}
.brand-text b {
  color: var(--on-dark);
  font-size: 1rem;
  font-weight: 500;
  letter-spacing: .13em;
}
.brand-text small {
  margin-top: 4px;
  color: var(--gold);
  font-size: 0.8rem;
  letter-spacing: .34em;
}
#main-nav {
  display: flex;
  gap: 22px;
  align-items: center;
}
.bar nav a:not(.btn) {
  position: relative;
  padding-block: 5px;
}
.bar nav a:not(.btn)::after {
  content: "";
  position: absolute;
  right: 0;
  bottom: 0;
  left: 0;
  height: 2px;
  background: var(--gold);
  transform: scaleX(0);
  transform-origin: left;
  transition: transform .2s var(--ease);
}
.bar nav a:not(.btn):hover {
  color: var(--on-dark);
}
.bar nav a:not(.btn):hover::after, .bar nav a[aria-current="true"]::after {
  transform: scaleX(1);
}
#main-nav a[aria-current="true"] {
  color: var(--on-dark);
}
.phone-link {
  display: inline-flex;
  gap: 7px;
  align-items: center;
}
.phone-link svg, .options-toggle svg {
  width: 16px;
  height: 16px;
  fill: none;
  stroke: var(--gold);
  stroke-width: 1.8;
  stroke-linecap: round;
  stroke-linejoin: round;
}
.options-toggle {
  display: inline-flex;
  gap: 7px;
  align-items: center;
  min-height: 36px;
  padding: 0 11px;
  background: none;
  border: 1px solid rgba(255, 255, 255, .28);
  border-radius: var(--r-1);
  color: var(--on-dark);
  font-weight: 400;
}
.options-toggle:hover, .lang-menu > button:hover {
  border-color: var(--gold);
}
.lang {
  display: none;
}
.lang-menu {
  position: relative;
}
.lang-menu > button {
  display: inline-flex;
  gap: 8px;
  align-items: center;
  min-height: 36px;
  padding: 0 11px;
  background: none;
  border: 1px solid rgba(255, 255, 255, .28);
  border-radius: var(--r-1);
  color: var(--on-dark);
}
.lang-menu > button::after {
  content: "";
  width: 7px;
  height: 7px;
  border-right: 1.5px solid var(--gold);
  border-bottom: 1.5px solid var(--gold);
  transform: translateY(-2px) rotate(45deg);
}
.lang-list {
  position: absolute;
  top: calc(100% + 8px);
  right: 0;
  z-index: 50;
  width: 180px;
  padding: 6px;
  background: var(--white);
  border-radius: var(--r-2);
  box-shadow: 0 18px 44px rgba(0, 0, 0, .3);
  list-style: none;
}
.lang-list button {
  display: flex;
  justify-content: space-between;
  width: 100%;
  padding: 10px 11px 8px;
  background: none;
  border: 0;
  border-radius: var(--r-1);
  color: var(--text);
  text-align: left;
}
.lang-list button:hover {
  background: var(--pale);
}
.lang-list button[aria-current="true"] {
  font-weight: 500;
}
.lang-list button[aria-current="true"]::after {
  content: "✓";
  color: var(--gold-text);
}
.menu-toggle span {
  transition: transform .2s var(--ease), opacity .2s var(--ease);
}
.menu-toggle[aria-expanded="true"] span:nth-child(1) {
  transform: translateY(7px) rotate(45deg);
}
.menu-toggle[aria-expanded="true"] span:nth-child(2) {
  opacity: 0;
}
.menu-toggle[aria-expanded="true"] span:nth-child(3) {
  transform: translateY(-7px) rotate(-45deg);
}
.nav-shade {
  position: fixed;
  inset: 0;
  z-index: 35;
  background: rgba(5, 8, 12, .6);
}
.call-menu {
  display: none;
}

/* 2.49 Top section */
.hero {
  min-height: 0;
  justify-content: flex-start;
  padding-block: clamp(30px, 4.5vh, 56px) clamp(24px, 3.5vh, 44px);
}
.hero-art {
  z-index: 0;
}
.hero-shade {
  position: absolute;
  inset: 0;
  z-index: 0;
  background: linear-gradient(180deg, rgba(15, 19, 25, .55), rgba(15, 19, 25, .28) 55%, rgba(15, 19, 25, .62));
}
.hero > h1, .hero > .hero-lead, .hero > .widget, .hero > .hero-foot {
  position: relative;
  z-index: 1;
}
.hero h1 {
  margin-bottom: 10px;
}
.hero-lead {
  max-width: 660px;
  margin-bottom: 22px;
  color: var(--on-dark);
  font-size: 1.15rem;
}
.hero .widget {
  width: 100%;
  max-width: none;
}
.hero-foot {
  justify-content: flex-end;
  margin-top: 18px;
}
.hero-foot a {
  display: inline-flex;
  gap: 9px;
  align-items: center;
  padding: 10px 16px 8px;
  border: 1px solid rgba(255, 255, 255, .55);
  border-radius: var(--r-1);
}
.hero-foot a::after, .widget .btn[type="submit"]::after {
  content: "→";
  transition: transform .2s var(--ease);
}
.hero-foot a:hover {
  border-color: var(--gold);
}
.hero-foot a:hover::after, .widget .btn[type="submit"]:hover::after {
  transform: translateX(3px);
}
@keyframes rise-in {
  from {
    opacity: 0;
    transform: translateY(14px);
  }
  to {
    opacity: 1;
    transform: none;
  }
}
.hero > h1, .hero > .hero-lead, .hero > .widget, .hero > .hero-foot {
  animation: rise-in .55s var(--ease) both;
}
.hero > .hero-lead {
  animation-delay: .06s;
}
.hero > .widget {
  animation-delay: .12s;
}
.hero > .hero-foot {
  animation-delay: .18s;
}

/* 2.50 Booking box */
.widget {
  padding: 16px 22px 14px;
}
.widget-fields {
  grid-template-columns: minmax(0, 2.8fr) minmax(0, 1.25fr) minmax(0, .9fr) minmax(130px, .9fr) auto;
}
.route-pair {
  position: relative;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
}
.route-pair > * {
  min-width: 0;
}
.quick-swap {
  position: absolute;
  bottom: 8px;
  left: 50%;
  z-index: 2;
  display: grid;
  place-items: center;
  width: 32px;
  height: 32px;
  padding: 0;
  background: var(--white);
  border: 1px solid var(--gold);
  border-radius: 50%;
  color: var(--gold-text);
  transform: translateX(-50%);
  transition: transform .2s var(--ease), background .2s var(--ease);
}
.quick-swap:hover {
  background: var(--gold-50);
}
.quick-swap.turned {
  transform: translateX(-50%) rotate(180deg);
}
.quick-swap svg {
  width: 16px;
  height: 16px;
  fill: none;
  stroke: currentColor;
  stroke-width: 2;
  stroke-linecap: round;
  stroke-linejoin: round;
}
#quick-from-box input, #quick-search {
  padding-left: 38px;
  background-repeat: no-repeat;
  background-position: 12px center;
  background-size: 18px;
}
#quick-from-box input {
  padding-right: 22px;
  background-color: #f4efe3;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%231f4fc9' stroke-width='1.8' stroke-linejoin='round'%3E%3Cpath d='M21 3 3 10.5l7 2.8L13 21z'/%3E%3C/svg%3E");
  border-color: #e4d6b6;
  font-weight: 500;
}
#quick-search {
  padding-right: 22px;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%231f4fc9' stroke-width='1.8'%3E%3Cpath d='M12 22s-7-7-7-12a7 7 0 0 1 14 0c0 5-7 12-7 12Z'/%3E%3Ccircle cx='12' cy='10' r='2.5'/%3E%3C/svg%3E");
}
.pick-btn {
  display: block;
  width: 100%;
  min-height: 48px;
  padding: 8px 10px 6px 38px;
  overflow: hidden;
  background-color: var(--white);
  background-repeat: no-repeat;
  background-position: 12px center;
  background-size: 18px;
  border: 1px solid var(--field);
  border-radius: var(--r-1);
  color: var(--text);
  font-weight: 400;
  text-align: left;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.pick-btn.empty {
  color: var(--muted);
}
.pick-btn:hover, .pick-btn[aria-expanded="true"] {
  border-color: var(--gold);
}
.pick-date {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%231f4fc9' stroke-width='1.8'%3E%3Crect x='3.5' y='5' width='17' height='15.5' rx='2'/%3E%3Cpath d='M3.5 10h17M8 3v4M16 3v4'/%3E%3C/svg%3E");
}
.pick-time {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%231f4fc9' stroke-width='1.8' stroke-linecap='round'%3E%3Ccircle cx='12' cy='12' r='8.5'/%3E%3Cpath d='M12 7v5l3.5 2'/%3E%3C/svg%3E");
}
.has-error .pick-btn, .quick-bad .pick-btn, .quick-bad input {
  border-color: var(--bad);
}
.pax-control {
  display: grid;
  grid-template-columns: 44px minmax(24px, 1fr) 44px;
  align-items: center;
  min-height: 48px;
  overflow: hidden;
  border: 1px solid var(--field);
  border-radius: var(--r-1);
}
.pax-control button {
  height: 46px;
  padding: 0;
  background: var(--white);
  border: 0;
  color: var(--text);
  font-size: 1.35rem;
}
.pax-control button:hover:not(:disabled) {
  background: var(--gold-50);
}
.pax-control button:disabled {
  color: #b5b8bc;
  cursor: not-allowed;
}
.pax-control output {
  font-weight: 500;
  font-size: 1rem;
  text-align: center;
}
.widget .btn[type="submit"] {
  position: relative;
  min-height: 48px;
  white-space: nowrap;
}
.widget .btn.is-busy[type="submit"] {
  color: transparent;
  pointer-events: none;
}
.widget .btn.is-busy[type="submit"]::after {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  width: 18px;
  height: 18px;
  margin: -9px 0 0 -9px;
  border: 2px solid rgba(15, 19, 25, .3);
  border-top-color: var(--text);
  border-radius: 50%;
  transform: none;
  animation: spin .7s linear infinite;
}
@keyframes spin {
  to {
    transform: rotate(360deg);
  }
}
.field-error {
  display: block;
  margin-top: 4px;
  color: var(--bad);
  font-size: 0.8rem;
  font-weight: 400;
  line-height: 1.25;
}
.widget-foot {
  display: flex;
  flex-wrap: wrap;
  gap: 6px 20px;
  justify-content: space-between;
  align-items: center;
  margin-top: 10px;
}
.widget-note {
  margin: 0;
  color: var(--muted);
  font-size: 0.9rem;
}
.widget-note b {
  color: var(--text);
  font-size: 1.15rem;
  font-weight: 500;
}
.pay-row {
  display: inline-flex;
  flex-wrap: wrap;
  gap: 6px 8px;
  align-items: center;
  color: var(--muted);
  font-size: 0.8rem;
}
.pay-chip {
  padding: 3px 8px 1px;
  border: 1px solid var(--line);
  border-radius: var(--r-1);
  color: var(--text);
  font-size: 0.8rem;
  font-weight: 500;
}
.combo-area.popular {
  color: var(--gold-text);
}

/* 2.51 Calendar and time picker */
.picker {
  position: fixed;
  z-index: 70;
  padding: 14px;
  background: var(--white);
  border-radius: var(--r-2);
  box-shadow: 0 22px 60px rgba(0, 0, 0, .32);
  color: var(--text);
}
.picker-calendar {
  width: 320px;
}
.picker button {
  background: none;
  border: 0;
  color: var(--text);
}
.picker-head {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 8px;
}
.picker-head b {
  font-weight: 500;
  text-transform: capitalize;
}
.picker-head button {
  width: 38px;
  height: 38px;
  border: 1px solid var(--line);
  border-radius: 50%;
  font-size: 1.15rem;
  line-height: 1;
}
.picker-head button:hover:not(:disabled) {
  border-color: var(--gold);
}
.picker-head button:disabled {
  opacity: .3;
  cursor: not-allowed;
}
.picker-days {
  display: grid;
  grid-template-columns: repeat(7, minmax(0, 1fr));
  gap: 2px;
  text-align: center;
}
.picker-days span {
  padding: 4px 0;
  color: var(--muted);
  font-size: 0.8rem;
  text-transform: capitalize;
}
.picker-days button {
  aspect-ratio: 1;
  padding: 0;
  border-radius: 50%;
}
.picker-days button:hover:not(:disabled) {
  background: var(--gold-50);
}
.picker-days button:disabled {
  color: #bcbfc3;
  cursor: not-allowed;
}
.picker-days .today {
  box-shadow: inset 0 0 0 1px var(--gold);
}
.picker-time {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 14px;
  width: 220px;
}
.picker-column b {
  display: block;
  margin-bottom: 6px;
  color: var(--muted);
  font-size: 0.8rem;
  font-weight: 500;
  text-align: center;
}
.picker-list {
  position: relative;
  display: grid;
  gap: 2px;
  height: 228px;
  overflow-y: auto;
}
.picker-list button {
  min-height: 38px;
  padding: 0;
  border-radius: var(--r-1);
}
.picker-list button:hover {
  background: var(--gold-50);
}

/* 2.52 Breadcrumb and highlights */
.crumbs {
  padding-top: 12px;
  font-size: 0.8rem;
}
.crumbs a {
  color: #6c7076;
}
.crumbs [aria-current] {
  color: var(--muted);
}
.highlights svg {
  stroke: var(--gold);
}

/* 2.53 Vehicle cards */
.class-card {
  display: flex;
  flex-direction: column;
  border-radius: var(--r-2);
  transition: transform .2s var(--ease);
}
.class-card:hover {
  transform: translateY(-4px);
}
.class-card:hover .slides {
  box-shadow: 0 16px 34px rgba(15, 19, 25, .2);
}
.class-card .slides {
  transition: box-shadow .2s var(--ease);
  touch-action: pan-y;
}
.class-card .slide {
  padding: 26px 26px 44px;
}
.class-card .slide:has(.slide-photo) {
  padding: 0;
}
.class-card > div:last-child {
  display: flex;
  flex: 1;
  flex-direction: column;
}
.class-card h3 {
  margin-bottom: 7px;
  font-size: 1.35rem;
  font-weight: 500;
}
.slide-nav {
  position: static;
  display: contents;
}
.slide-nav > button {
  position: absolute;
  top: 50%;
  z-index: 2;
  width: 42px;
  height: 42px;
  margin-top: -21px;
  background: rgba(15, 19, 25, .55);
  border: 1px solid rgba(255, 255, 255, .55);
  color: var(--on-dark);
  font-size: 1.15rem;
}
.slide-nav > button:hover {
  background: var(--gold);
  border-color: var(--gold);
  color: var(--text);
}
.slide-nav > [data-slide="-1"] {
  left: 10px;
}
.slide-nav > [data-slide="1"] {
  right: 10px;
}
.slide-dots {
  position: absolute;
  right: 0;
  bottom: 8px;
  left: 0;
  z-index: 2;
  display: flex;
  justify-content: center;
  gap: 2px;
}
.slide-dots button {
  width: 22px;
  height: 22px;
  padding: 0;
  background: none;
  border: 0;
}
.slide-dots button::before {
  content: "";
  display: block;
  width: 9px;
  height: 9px;
  margin: auto;
  background: rgba(255, 255, 255, .45);
  border-radius: 50%;
}
.slide-dots button[aria-current="true"]::before {
  background: var(--gold);
}
.class-points {
  display: grid;
  gap: 7px;
  margin: 3px 0 14px;
  padding: 0;
  list-style: none;
}
.class-points li {
  display: flex;
  gap: 9px;
  align-items: center;
  color: var(--muted);
  line-height: 1.3;
}
.class-points svg {
  flex: none;
  width: 19px;
  height: 19px;
  fill: none;
  stroke: var(--gold-text);
  stroke-width: 1.7;
  stroke-linecap: round;
  stroke-linejoin: round;
}
.class-card .class-price {
  margin-top: 0;
}
.class-card .btn {
  align-self: flex-start;
}
.class-card .btn:hover {
  background: var(--gold);
  border-color: var(--gold);
  color: var(--text);
}

/* 2.54 Buttons at the screen edge */
.to-top {
  background: var(--gold);
  border: 1px solid var(--gold);
  color: var(--text);
  box-shadow: 0 8px 22px rgba(15, 19, 25, .32);
}
.mobile-cta {
  display: none;
}

/* 2.55 Footer */
.foot .brand-text b {
  color: var(--on-dark);
}

/* 2.56 Tablet and phone menu */
@media (max-width: 1360px) {
  #main-nav {
    position: fixed;
    top: 0;
    right: 0;
    bottom: 0;
    z-index: 44;
    display: flex;
    flex-basis: auto;
    flex-direction: column;
    gap: 0;
    align-items: stretch;
    width: min(86vw, 360px);
    padding: 76px 22px 26px;
    overflow-y: auto;
    background: var(--navy);
    box-shadow: -18px 0 50px rgba(0, 0, 0, .4);
    white-space: normal;
    visibility: hidden;
    transform: translateX(100%);
    transition: transform .26s var(--ease), visibility .26s;
  }
  #main-nav.open {
    visibility: visible;
    transform: none;
  }
  #main-nav a:not(.btn) {
    display: flex;
    align-items: center;
    min-height: 54px;
    padding: 8px 0 6px;
    border-bottom: 1px solid rgba(255, 255, 255, .13);
    font-size: 1.15rem;
  }
  #main-nav a:not(.btn)::after {
    display: none;
  }
  #main-nav .phone-link {
    display: none;
  }
  #main-nav a.call-menu {
    display: flex;
    gap: 9px;
    justify-content: center;
    margin-top: 18px;
    padding: 12px;
    border: 1px solid var(--gold);
    border-radius: var(--r-1);
    color: var(--on-dark);
    font-weight: 500;
  }
  .call-menu svg {
    width: 18px;
    height: 18px;
    fill: none;
    stroke: var(--gold);
    stroke-width: 1.8;
    stroke-linecap: round;
    stroke-linejoin: round;
  }
  .menu-row {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 10px;
    order: 8;
    margin-top: 12px;
  }
  .menu-row > * {
    width: 100%;
  }
  .menu-row .options-toggle, .lang-menu > button {
    justify-content: center;
    width: 100%;
    min-height: 46px;
  }
  #main-nav .btn {
    order: 9;
    margin-top: 12px;
    text-align: center;
  }
  .lang-list {
    position: fixed;
    top: auto;
    right: 22px;
    bottom: 150px;
    z-index: 60;
  }
  .menu-toggle {
    position: relative;
    z-index: 46;
  }
  .options-panel {
    position: fixed;
    top: auto;
    right: 22px;
    bottom: 150px;
    z-index: 60;
  }
}

/* 2.57 Booking box on tablets */
@media (max-width: 1100px) {
  .widget-fields {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
  .route-pair {
    grid-column: 1 / -1;
  }
  .widget .btn[type="submit"] {
    grid-column: 1 / -1;
  }
}

/* 2.58 Phones */
@media (max-width: 760px) {
  body {
    padding-bottom: 68px;
  }
  body.booking-open {
    padding-bottom: 0;
  }
  .brand-mark {
    width: 32px;
    height: 32px;
  }
  .hero {
    padding-block: 22px 20px;
  }
  .hero-lead {
    margin-bottom: 14px;
    font-size: 1rem;
  }
  .hero-foot {
    display: none;
  }
  .widget {
    padding: 8px 14px 12px;
  }
  .widget-fields {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 9px;
  }
  .route-pair {
    grid-template-columns: minmax(0, 1fr);
    gap: 9px;
  }
  .quick-swap {
    top: 50%;
    right: 8px;
    bottom: auto;
    left: auto;
    margin-top: -16px;
    transform: none;
  }
  .quick-swap.turned {
    transform: rotate(180deg);
  }
  .pax-label {
    grid-column: 1 / -1;
  }
  .widget .btn[type="submit"] {
    grid-column: 1 / -1;
  }
  .widget-foot {
    flex-direction: column;
    align-items: flex-start;
  }
  .pick-btn {
    padding-left: 32px;
    background-position: 8px center;
    background-size: 17px;
  }
  .crumbs {
    display: none;
  }
  .highlights {
    display: flex;
    gap: 12px;
    padding: 16px var(--gutter);
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    scrollbar-width: none;
  }
  .highlights li {
    flex: 0 0 80%;
    gap: 2px 10px;
    scroll-snap-align: center;
  }
  .classes {
    display: flex;
    gap: 16px;
    margin-inline: calc(var(--gutter) * -1);
    padding: 4px var(--gutter) 10px;
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    scroll-padding-inline: var(--gutter);
    scrollbar-width: none;
  }
  .classes .class-card {
    flex: 0 0 86%;
    scroll-snap-align: start;
  }
  .class-card:hover {
    transform: none;
  }
  .class-card .btn {
    align-self: stretch;
    text-align: center;
  }
  .slide-nav > button {
    width: 44px;
    height: 44px;
    margin-top: -22px;
  }
  .to-top {
    display: none !important;
  }
  .mobile-cta {
    position: fixed;
    right: 0;
    bottom: 0;
    left: 0;
    z-index: 30;
    display: grid;
    grid-template-columns: minmax(0, 1fr) 54px;
    gap: 8px;
    width: 100%;
    padding: 8px var(--gutter) calc(8px + env(safe-area-inset-bottom));
    background: var(--navy);
    border-radius: 0;
    box-shadow: 0 -8px 24px rgba(0, 0, 0, .25);
  }
  .mobile-cta[hidden], body.booking-open .mobile-cta {
    display: none !important;
  }
  .mobile-cta .btn {
    display: flex;
    gap: 10px;
    justify-content: center;
    align-items: center;
    min-height: 50px;
    padding: 4px 12px 2px;
    text-align: center;
  }
  .mobile-cta .call {
    display: grid;
    place-items: center;
    border: 1px solid var(--gold);
    border-radius: var(--r-1);
  }
  .mobile-cta .call svg {
    width: 21px;
    height: 21px;
    fill: none;
    stroke: var(--gold);
    stroke-width: 1.8;
    stroke-linecap: round;
    stroke-linejoin: round;
  }
  .picker {
      right: 0;
    bottom: 0;
      width: 100%;
    padding: 16px var(--gutter) 22px;
    border-radius: 14px 14px 0 0;
    box-shadow: 0 0 0 100vmax rgba(5, 8, 12, .55);
  }
}
@media (min-width: 480px) and (max-width: 760px) {
  .widget-fields {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
  .pax-label {
    grid-column: auto;
  }
}
@media (prefers-reduced-motion: reduce) {
  .hero > * {
    animation: none !important;
  }
  #main-nav, .class-card, .bar {
    transition: none;
  }
}
.pref-still .hero > * {
  animation: none !important;
}
.menu-row {
  display: flex;
  gap: 10px;
  align-items: center;
}
.hero-foot a {
  text-decoration: none;
}
.widget .btn[type="submit"]::after {
  margin-left: 8px;
  display: inline-block;
}
@media (max-width: 1360px) {
  .menu-row {
    display: grid;
  }
}
body.menu-open {
  overflow: hidden;
}
.class-card .class-points svg {
  width: 19px;
  height: 19px;
  padding: 0;
  background: none;
  border-radius: 0;
  aspect-ratio: auto;
}
.class-card .slides {
  aspect-ratio: 4 / 3;
}
.class-card .slide {
  display: grid;
  place-items: center;
  height: 100%;
  aspect-ratio: auto;
  padding: 20px 60px 34px;
}
.class-card .slide svg {
  width: 100%;
  height: auto;
  max-height: 100%;
}
.class-card .slide:has(.slide-photo) {
  padding: 0;
}
.widget-fields {
  align-items: start;
}
.widget .btn[type="submit"] {
  margin-top: 24px;
}
.quick-swap {
  top: 32px;
  bottom: auto;
}
@media (max-width: 1100px) {
  .widget .btn[type="submit"] {
    margin-top: 0;
  }
}
@media (max-width: 760px) {
  .quick-swap {
    top: 50%;
  }
}
.class-card .slide {
  position: absolute;
  inset: 0;
  height: auto;
  min-height: 0;
}
.class-card .slide svg {
  max-height: 100%;
}
.class-card > .slides {
  flex: none;
  height: 0;
  padding: 0 0 75%;
  aspect-ratio: auto;
}
/* 2.59 Tighter spacing, one card style, clear focus */
.section {
  padding-block: clamp(36px, 4vw, 56px);
}
.story, .story.flip, .story-dark {
  padding-block: clamp(26px, 3.2vw, 44px);
  gap: clamp(24px, 4vw, 56px);
}
.story .btn {
  display: inline-block;
  margin-top: 16px;
}
a:focus-visible, button:focus-visible, input:focus-visible, summary:focus-visible, [tabindex]:focus-visible {
  outline: 2px solid var(--gold);
  outline-offset: 2px;
}
.btn.quiet:hover {
  background: var(--gold);
  border-color: var(--gold);
  color: var(--text);
}
.calc-card, .route-card, .faq-box, .explore-map, .story-art, .calc-empty {
  border-radius: var(--r-2);
}
.to-top {
  width: 40px;
  height: 40px;
  right: 18px;
  bottom: 18px;
}

/* 2.60 Route cards */
.route-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 18px;
  margin-top: 18px;
}
@media (min-width: 1500px) {
  .route-grid {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }
}
.tool-panel .routes-band .route-card, .route-card {
  display: flex;
  flex-direction: column;
  overflow: hidden;
  background: var(--white);
  border: 1px solid var(--line);
  color: var(--text);
  cursor: pointer;
  transition: border-color .15s var(--ease), box-shadow .15s var(--ease);
}
.route-card:hover {
  border-color: var(--gold);
  box-shadow: 0 10px 26px rgba(15, 19, 25, .1);
}
.route-card[hidden] {
  display: none;
}
.tool-panel .route-map, .route-map {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 2 / 1;
  padding: 0;
  background: #e9f1f4;
}
.route-map .route-line {
  fill: none;
  stroke: var(--gold-text);
  stroke-linecap: round;
}
.pin-air {
  fill: var(--navy);
}
.pin-town {
  fill: var(--gold);
  stroke: var(--navy);
  stroke-width: 1.5;
  vector-effect: non-scaling-stroke;
}
.pin-label {
  fill: var(--text);
  font-weight: 500;
  paint-order: stroke;
  stroke: #f5efe0;
  stroke-width: 3px;
}
.route-body {
  display: flex;
  flex: 1;
  flex-direction: column;
  gap: 6px;
  padding: 14px 16px 16px;
}
.route-body h3 {
  font-size: 1.15rem;
  font-weight: 500;
}
.tool-panel .route-card .route-meta {
  color: var(--muted);
  font-size: 0.9rem;
}
.route-top {
  display: flex;
  flex-wrap: wrap;
  gap: 2px 9px;
  align-items: baseline;
  margin-top: 2px;
}
.route-top b {
  color: var(--text);
  font-size: 1.75rem;
  font-weight: 500;
  line-height: 1.1;
}
.tool-panel .route-card .route-top small {
  color: var(--muted);
  font-size: 0.9rem;
}
.route-rows {
  display: grid;
  gap: 2px;
  margin-bottom: 10px;
  padding: 0;
  color: var(--muted);
  font-size: 0.9rem;
  list-style: none;
}
.route-rows li {
  display: flex;
  justify-content: space-between;
  gap: 10px;
}
.route-rows li b {
  color: var(--text);
  font-weight: 500;
  white-space: nowrap;
}
.route-body .btn {
  width: 100%;
  margin-top: auto;
  padding-block: 11px 9px;
  text-align: center;
}
.route-tools {
  display: flex;
  flex-wrap: wrap;
  gap: 10px 14px;
  align-items: center;
}
.route-tools .fare-search {
  flex: 1 1 240px;
}
.routes-end {
  margin-top: 18px;
  text-align: center;
}
.intro-link {
  display: inline-block;
  margin-top: 3px;
  color: var(--gold-text);
  font-weight: 500;
}

/* 2.61 Tabs */
.tool-panel > .section + .section {
  margin-top: 36px;
  padding-top: 30px;
  border-top: 1px solid var(--line);
}
.tool-panel > .section + .section > h2 {
  display: block;
  margin-bottom: 8px;
  font-size: 1.35rem;
  font-weight: 500;
}
@media (max-width: 760px) {
  .plan-tabs {
    margin-inline: calc(var(--gutter) * -1);
    padding-inline: var(--gutter);
    -webkit-mask-image: linear-gradient(90deg, #000 86%, transparent);
    mask-image: linear-gradient(90deg, #000 86%, transparent);
  }
  h2 {
    font-weight: 500;
  }
}

/* 2.62 Questions */
.faq details {
  transition: background .15s var(--ease);
}
.faq details:hover {
  background: var(--pale);
}
.faq summary {
  display: flex;
  justify-content: space-between;
  gap: 14px;
  align-items: center;
  min-height: 54px;
  padding: 12px 8px 10px;
  list-style: none;
  cursor: pointer;
}
.faq summary::-webkit-details-marker {
  display: none;
}
.faq summary::after {
  content: "";
  flex: none;
  width: 9px;
  height: 9px;
  margin-right: 4px;
  border-right: 2px solid var(--gold-text);
  border-bottom: 2px solid var(--gold-text);
  transform: rotate(45deg);
  transition: transform .15s var(--ease);
}
.faq details[open] summary::after {
  transform: rotate(-135deg);
}
.faq details p {
  padding-inline: 8px;
}
.faq-more {
  display: inline-block;
  margin: 0 8px 12px;
  color: var(--gold-text);
  font-weight: 500;
}
.faq-side {
  position: sticky;
  top: 84px;
  display: grid;
  gap: 16px;
}
.faq-side .faq-picture {
  position: static;
}
.faq-box {
  padding: 24px;
  background: var(--navy);
  color: var(--on-dark);
}
.faq-box h3 {
  margin-bottom: 6px;
}
.faq-box p {
  margin-bottom: 16px;
  color: var(--on-dark-muted);
}
.contact-buttons {
  display: grid;
  gap: 9px;
}
.contact-buttons a {
  display: flex;
  gap: 9px;
  justify-content: center;
  align-items: center;
  min-height: 46px;
  padding: 8px 14px 6px;
  border: 1px solid var(--gold);
  border-radius: var(--r-1);
  color: var(--on-dark);
  font-weight: 500;
  text-decoration: none;
}
.contact-buttons a:hover {
  background: var(--gold);
  color: var(--text);
}
.contact-buttons a.primary {
  background: var(--gold);
  color: var(--text);
}
.contact-buttons svg, .wa-float svg, .mobile-cta .wa svg {
  width: 19px;
  height: 19px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.8;
  stroke-linecap: round;
  stroke-linejoin: round;
}

/* 2.63 How it works, what is included, reviews */
.how {
  display: grid;
  grid-template-columns: minmax(0, 1.5fr) minmax(0, 1fr);
  gap: clamp(24px, 4vw, 60px);
  background: var(--pale);
}
.how-steps {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 16px;
  margin-top: 18px;
  padding: 0;
  list-style: none;
  counter-reset: how;
}
.how-steps li {
  counter-increment: how;
}
.how-steps li::before {
  content: counter(how);
  display: grid;
  place-items: center;
  width: 34px;
  height: 34px;
  margin-bottom: 9px;
  border: 1px solid var(--gold-text);
  border-radius: 50%;
  color: var(--gold-text);
  font-weight: 500;
}
.how-steps b {
  display: block;
  font-weight: 500;
}
.how-steps span, .included li {
  color: var(--muted);
}
.included {
  margin-top: 18px;
  padding: 0;
  list-style: none;
}
.included li {
  position: relative;
  padding: 7px 0 5px 25px;
  border-bottom: 1px solid var(--line);
}
.included li::before {
  content: "✓";
  position: absolute;
  left: 2px;
  color: var(--gold-text);
  font-weight: 500;
}
.reviews-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 280px), 1fr));
  gap: 16px;
  margin-top: 18px;
}
.review {
  padding: 20px;
  border: 1px solid var(--line);
  border-radius: var(--r-2);
}
.review cite {
  display: block;
  margin-top: 9px;
  color: var(--muted);
  font-size: 0.9rem;
  font-style: normal;
}

/* 2.64 Footer */
.foot {
  grid-template-columns: minmax(0, 1.6fr) repeat(3, minmax(0, 1fr));
  gap: 28px clamp(20px, 3vw, 44px);
  padding-block: 44px 20px;
}
.foot-about p {
  margin: 12px 0;
  color: var(--on-dark-muted);
  font-size: 0.9rem;
}
.foot-about a {
  color: var(--on-dark);
}
.foot-lang button {
  padding: 2px 0;
  background: none;
  border: 0;
  color: var(--on-dark-muted);
}
.foot-lang button:hover, .foot-lang button[aria-current="true"] {
  color: var(--gold);
}
.foot-bottom {
  grid-column: 1 / -1;
  display: flex;
  flex-wrap: wrap;
  gap: 6px 18px;
  padding-top: 16px;
  border-top: 1px solid rgba(255, 255, 255, .14);
  color: var(--on-dark-muted);
  font-size: 0.9rem;
}
.foot-bottom a {
  color: var(--on-dark-muted);
}

/* 2.65 Contact buttons at the screen edge */
.wa-float {
  position: fixed;
  right: 18px;
  bottom: 68px;
  z-index: 28;
  display: grid;
  place-items: center;
  width: 40px;
  height: 40px;
  background: var(--navy);
  border: 1px solid var(--gold);
  border-radius: 50%;
  color: var(--gold);
}
.wa-float:hover {
  background: var(--gold);
  color: var(--text);
}
@media (max-width: 900px) {
  .how, .foot {
    grid-template-columns: minmax(0, 1fr);
  }
  .how-steps {
    grid-template-columns: minmax(0, 1fr);
  }
}
@media (max-width: 1100px) {
  .route-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
@media (max-width: 760px) {
  .route-grid {
    grid-template-columns: minmax(0, 1fr);
  }
  .wa-float {
    display: none;
  }
  .faq-side {
    position: static;
  }
  .faq-side .faq-picture {
    display: none;
  }
  .mobile-cta {
    grid-template-columns: minmax(0, 1fr) 50px 50px;
  }
  .mobile-cta .wa {
    display: grid;
    place-items: center;
    border: 1px solid var(--gold);
    border-radius: var(--r-1);
    color: var(--gold);
  }
}
.opt-text {
  display: none;
}
@media (max-width: 1360px) {
  .opt-text {
    display: inline;
  }
}

/* 2.66 Small additions */
@media (prefers-contrast: more) {
  :root {
    --muted: #2c3138;
    --line: #7c828a;
    --gold-text: #5b4417;
  }
}
.noscript {
  position: relative;
  z-index: 1;
  margin-bottom: 14px;
  padding: 12px 14px;
  background: var(--white);
  border-radius: var(--r-2);
  color: var(--text);
}
.route-body h3 a {
  color: inherit;
  text-decoration: none;
}
.route-body h3 a:hover {
  text-decoration: underline;
}
.route-intro {
  padding-bottom: 0;
}
.step-count {
  margin-bottom: 6px;
  color: var(--muted);
  font-size: 0.9rem;
  font-weight: 500;
}
.after-pay a, .form-message a {
  color: var(--gold-text);
  font-weight: 500;
}
/* 2.70 GOLDEN HOUR: typography */
html {
  hanging-punctuation: first;
  scrollbar-color: var(--gold) var(--navy);
}
body {
  color: var(--body);
  font-synthesis: none;
}
::selection {
  background: #e9d9b0;
  color: #0a0b0e;
}
b, strong {
  font-weight: 500;
}
h1, h2 {
  font-family: var(--serif);
  font-weight: 500;
  letter-spacing: -.02em;
}
h1 {
  font-size: clamp(2.7rem, 5.6vw, 5.8rem);
  line-height: 1;
}
.hero h1 {
  font-size: clamp(2.7rem, 5.6vw, 5.8rem);
}
h2 {
  font-size: clamp(2rem, 3.4vw, 3.1rem);
  line-height: 1.06;
}
h3 {
  font-weight: 500;
}
h1 em, h2 em {
  color: inherit;
  font-style: italic;
}
.hero h1 em {
  color: var(--gold);
}
.word {
  display: inline-block;
  animation: rise-in .6s var(--ease) both;
}
.eyebrow {
  margin-bottom: 8px;
  color: var(--gold-text);
  font-size: 0.8rem;
  font-weight: 500;
  letter-spacing: .2em;
  text-transform: uppercase;
}
p, li {
  text-wrap: pretty;
}
.intro, .story p, .faq details p {
  max-width: 62ch;
  color: var(--body);
}
.route-top b, .calc-total, .widget-note b, .sign-total, .class-price b, .place-row span, .route-rows b {
  font-variant-numeric: tabular-nums;
}
.currency {
  font-size: .62em;
  vertical-align: .22em;
}

/* 2.71 Colours and sections */
.how, .plan {
  background: var(--limestone);
}
.btn {
  background: var(--gold);
  transition: transform .15s var(--ease), box-shadow .3s var(--ease), background .15s var(--ease);
}
.btn:active {
  transform: scale(.98);
}
.btn:not(.quiet) {
  color: #0a0b0e;
}
.btn.quiet {
  background: transparent;
}
a:focus-visible, button:focus-visible, input:focus-visible, summary:focus-visible, [tabindex]:focus-visible {
  outline: 2px solid var(--gold);
  outline-offset: 2px;
  box-shadow: 0 0 0 5px rgba(26, 79, 214, .28);
}

/* 2.72 Top bar and logo */
.bar {
  background: linear-gradient(180deg, #0a0b0e, #101a2b);
}
.brand-mark path {
  stroke-width: 2.4;
}
.brand-mark circle {
  display: none;
}
.brand-text b {
  font-family: var(--serif);
  font-size: 1.15rem;
  font-weight: 500;
  letter-spacing: .16em;
}

/* 2.73 Hero */
.hero {
  display: grid;
  grid-template-columns: minmax(0, 1.2fr) minmax(0, .8fr);
  column-gap: 30px;
  align-content: start;
  padding-block: clamp(34px, 5vh, 64px) 0;
  background: var(--navy);
}
.hero > h1, .hero > .hero-lead, .hero > .widget, .hero > noscript {
  grid-column: 1;
}
.hero > .widget {
  grid-column: 1 / -1;
}
.hero-art {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.hero-shade {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2'/%3E%3CfeColorMatrix values='0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 .055 0'/%3E%3C/filter%3E%3Crect width='180' height='180' filter='url(%23n)'/%3E%3C/svg%3E"), linear-gradient(180deg, rgba(11, 18, 32, .5), rgba(11, 18, 32, .12) 60%, rgba(11, 18, 32, .35));
}
.hero-map {
  position: relative;
  z-index: 1;
  grid-column: 2;
  grid-row: 1 / span 2;
  align-self: center;
  justify-self: end;
  width: min(100%, 460px);
  height: auto;
  overflow: visible;
  transform: rotate(-7deg);
  --isle-fill: rgba(255, 255, 255, .05);
  --isle-stroke: var(--gold);
}
.hero-route {
  fill: none;
  stroke: var(--gold);
  stroke-width: 4;
  stroke-linecap: round;
  stroke-dasharray: 1;
  stroke-dashoffset: 0;
}
.hero-route.drawing {
  transition: stroke-dashoffset 1.3s var(--ease);
}
.hero-air {
  fill: var(--on-dark);
}
.hero-dest {
  fill: var(--gold);
}
.hero-foot {
  display: none;
}
.hero-rating {
  color: var(--gold);
}

/* 2.74 Booking box */
.widget {
  background: rgba(255, 255, 255, .95);
  border-radius: var(--r-3);
  box-shadow: var(--shadow-3);
  -webkit-backdrop-filter: blur(14px);
  backdrop-filter: blur(14px);
}
.widget label, .combo-box > label {
  font-weight: 500;
}
#quick-from-box input {
  background-color: var(--white);
  border-color: var(--field);
  font-weight: 400;
}
.widget input, .pick-btn, .pax-control, .field input, .field select, .field textarea, .calc-fields select {
  border: 1px solid var(--field);
  transition: border-color .15s var(--ease), box-shadow .15s var(--ease);
}
.widget input:focus, .pick-btn:focus-visible, .pick-btn[aria-expanded="true"], .field input:focus, .field textarea:focus {
  border-color: var(--gold);
  box-shadow: 0 0 0 4px rgba(26, 79, 214, .22);
  outline: 0;
}
.tabs {
  position: relative;
}
.widget .tabs button, .widget .tabs button[aria-pressed="true"] {
  border-bottom-color: transparent;
}
.tab-line {
  position: absolute;
  bottom: -1px;
  height: 2px;
  background: var(--gold);
  transition: left .3s var(--ease), width .3s var(--ease);
}
.quick-swap {
  transition: transform .3s var(--ease), background .15s var(--ease);
  box-shadow: 0 0 0 3px var(--white);
}
.pax-control {
  display: flex;
  justify-content: space-between;
  padding: 6px;
  border-radius: var(--r-pill);
}
.pax-control button {
  width: 34px;
  height: 34px;
  background: #f4efe3;
  border-radius: 50%;
}
.pax-control output {
  flex: 1;
}
.widget .btn[type="submit"] {
  position: relative;
  overflow: hidden;
  background: var(--gold-grad);
}
.widget .btn[type="submit"]::before {
  content: "";
  position: absolute;
  top: 0;
  bottom: 0;
  left: -60%;
  width: 40%;
  background: linear-gradient(100deg, transparent, rgba(255, 255, 255, .55), transparent);
  transition: left .6s var(--ease);
}
.widget .btn[type="submit"]:hover::before {
  left: 120%;
}
.widget-note b {
  color: var(--gold-text);
  font-family: var(--serif);
  font-size: 1.75rem;
}
.pay-logo {
  width: 38px;
  height: 24px;
}
.pay-logo rect {
  fill: var(--on-dark);
  stroke: var(--line);
}
.pay-logo .mc {
  fill: #7b7f85;
}
.pay-logo .mc2 {
  fill: #a6a9ae;
}
.pay-logo text {
  fill: #5f6368;
  font-size: 11px;
  font-style: italic;
  font-weight: 500;
}
.picker {
  border-radius: var(--r-3);
  box-shadow: var(--shadow-3);
}
.picker .picker-days button.on, .picker .picker-list button.on {
  background: var(--gold);
  color: #0a0b0e;
}

/* 2.75 Highlights */
.highlights b {
  font-family: var(--serif);
  font-size: 1.75rem;
  font-weight: 500;
  line-height: 1.1;
}

/* 2.76 Vehicle cards */
.class-card > .slides {
  padding-bottom: 62.5%;
  background: linear-gradient(160deg, #15171c, #0a0b0e);
}
.class-card .slide {
  padding: 14px 8% 26px;
}
.class-card .slide svg.art {
  width: 100%;
  max-height: 100%;
}
.class-card:hover {
  transform: translateY(-4px);
}
.class-card:hover .slides {
  box-shadow: var(--shadow-3);
}
@media (hover: hover) {
  .slide-nav > button {
    opacity: 0;
    transition: opacity .15s var(--ease);
  }
  .class-card:hover .slide-nav > button, .slide-nav > button:focus-visible {
    opacity: 1;
  }
}
.class-card .btn {
  align-self: stretch;
  width: 100%;
  margin-top: auto;
  text-align: center;
}
.class-card .class-price {
  margin-bottom: 12px;
}
.class-card .class-price b {
  font-family: var(--serif);
  font-size: 1.75rem;
}
.card-ribbon {
  position: absolute;
  top: 12px;
  left: 12px;
  z-index: 2;
  padding: 4px 11px 2px;
  background: var(--gold);
  border-radius: var(--r-pill);
  color: #0a0b0e;
  font-size: 0.8rem;
  font-weight: 500;
}
.card-dots {
  display: none;
}

/* 2.77 Route cards */
.route-card {
  border-radius: var(--r-3);
  box-shadow: var(--shadow-1);
}
.route-card:hover {
  box-shadow: var(--shadow-2);
}
.tool-panel .route-map, .route-map {
  background: radial-gradient(circle at 40% 30%, #17525c, #0e3b43 75%);
  --isle-fill: #f4ecdc;
  --isle-stroke: var(--gold);
}
.route-map .route-line {
  stroke-width: var(--route-width, 4);
  stroke-dasharray: 1;
  stroke-dashoffset: 0;
  vector-effect: none;
  transition: stroke-dashoffset 1s var(--ease);
}
.route-map .route-line {
  stroke: #8a6a2d;
  vector-effect: none;
}
.js .route-card:not(.drawn) .route-line {
  stroke-dashoffset: 1;
}
.pin-air {
  fill: #0a0b0e;
}
.pin-town {
  fill: var(--gold);
  stroke: #0a0b0e;
}
.pin-label {
  fill: #0a0b0e;
  stroke: #f4ecdc;
  stroke-width: 4px;
  font-weight: 500;
}
.route-body {
  position: relative;
}
.route-top b {
  color: var(--gold-text);
  font-family: var(--serif);
  font-size: 2.5rem;
  font-weight: 500;
}
.route-pill {
  display: inline-flex;
  gap: 5px;
  align-items: center;
  margin-right: 7px;
  padding: 3px 10px 1px;
  background: #f4efe3;
  border-radius: var(--r-pill);
  color: var(--text);
  font-size: 0.8rem;
}
.route-card .btn {
  background: transparent;
  border: 1px solid var(--navy);
  color: var(--text);
}
.route-card:hover .btn, .route-card .btn:hover {
  background: var(--gold);
  border-color: var(--gold);
  color: #0a0b0e;
}
.route-strip {
  display: block;
  width: 100%;
  height: 92px;
  object-fit: cover;
}
@media (hover: hover) and (min-width: 761px) {
  .route-rows {
    max-height: 0;
    margin-bottom: 0;
    overflow: hidden;
    opacity: 0;
    transition: max-height .3s var(--ease), opacity .3s var(--ease), margin .3s var(--ease);
  }
  .route-card:hover .route-rows, .route-card:focus-within .route-rows {
    max-height: 110px;
    margin-bottom: 10px;
    opacity: 1;
  }
}

/* 2.78 Rhythm */
.story {
  grid-template-columns: minmax(0, 7fr) minmax(0, 5fr);
}
.story.flip {
  grid-template-columns: minmax(0, 5fr) minmax(0, 7fr);
}
.story-art {
  box-shadow: var(--shadow-2);
}
.how-steps {
  position: relative;
}
.how-steps li {
  position: relative;
}
.how-steps li::before {
  width: 44px;
  height: 44px;
  background: var(--navy);
  border: 0;
  color: var(--gold);
  font-family: var(--serif);
  font-size: 1.35rem;
}
.how-steps li:not(:last-child)::after {
  content: "";
  position: absolute;
  top: 22px;
  right: -8px;
  left: 52px;
  border-top: 2px dotted var(--gold);
}
.review {
  position: relative;
  padding-top: 44px;
  font-family: var(--serif);
  font-size: 1.35rem;
  line-height: 1.3;
}
.review::before {
  content: "\201C";
  position: absolute;
  top: 4px;
  left: 18px;
  color: var(--gold);
  font-size: 2.5rem;
}
.review cite {
  font-family: var(--sans);
  font-size: 0.9rem;
}
.foot {
  position: relative;
  overflow: hidden;
  background: var(--navy);
}
.foot::before {
  content: "MALLORCA";
  position: absolute;
  right: 0;
  bottom: 34px;
  left: 0;
  color: rgba(26, 79, 214, .06);
  font-family: var(--serif);
  font-size: clamp(4rem, 17vw, 16rem);
  line-height: 1;
  text-align: center;
  pointer-events: none;
}
.foot > * {
  position: relative;
}

/* 2.79 Booking progress and answers */
.progress {
  position: relative;
}
.progress::after {
  content: "";
  position: absolute;
  bottom: 0;
  left: 0;
  width: var(--fill, 25%);
  height: 2px;
  background: var(--gold);
  transition: width .6s var(--ease);
}
.faq summary:hover::after, .faq details[open] summary::after {
  border-color: var(--gold);
}
@supports (interpolate-size: allow-keywords) {
  .faq details {
    interpolate-size: allow-keywords;
  }
  .faq details::details-content {
    height: 0;
    overflow: hidden;
    transition: height .3s var(--ease), content-visibility .3s allow-discrete;
  }
  .faq details[open]::details-content {
    height: auto;
  }
}

/* 2.80 Dark mode, switched on from Display options */
html.pref-dark {
  --white: #15171c;
  --text: #f3efe6;
  --body: #d3d5d9;
  --muted: #bcc0c6;
  --line: #2c374b;
  --limestone: #0a0b0e;
  --pale: #0a0b0e;
  --gold-text: #dcc58f;
  --field: #3a465c;
}
.pref-dark .route-pill, .pref-dark .pax-control button {
  background: #22252c;
}
.pref-dark .widget {
  background: rgba(18, 28, 46, .96);
}
.pref-dark .combo-item:hover, .pref-dark .explore-item:hover {
  background: #22252c;
}
.pref-dark .route-card .btn {
  border-color: var(--gold);
}
.pref-dark .pay-logo rect {
  fill: #22252c;
}

/* 2.81 Large screens: the booking box overlaps the edge of the hero */
@media (min-width: 1101px) {
  .hero {
    overflow: visible;
  }
  .hero > .widget {
    z-index: 3;
    margin-bottom: -64px;
  }
  .hero-art, .hero-shade {
    max-height: 100%;
  }
  .crumbs {
    padding-top: 84px;
  }
  body.booking-open .crumbs {
    padding-top: 14px;
  }
  .booking:not([hidden]) {
    padding-top: 96px;
  }
}

/* 2.82 Tablets and phones */
@media (max-width: 1100px) {
  .hero {
    grid-template-columns: minmax(0, 1fr);
    padding-bottom: 24px;
  }
  .hero-map {
    display: none;
  }
  .hero > .widget {
    grid-column: 1;
  }
}
@media (max-width: 900px) {
  .story, .story.flip {
    grid-template-columns: minmax(0, 1fr);
  }
  .how-steps li::after {
    display: none;
  }
}
@media (max-width: 1360px) {
  #main-nav {
    width: 100vw;
    background: var(--navy);
  }
  #main-nav a:not(.btn) {
    min-height: 62px;
    border-bottom-color: rgba(26, 79, 214, .35);
    font-family: var(--serif);
    font-size: 1.75rem;
  }
  #main-nav a.call-menu.call-menu {
    font-family: var(--sans);
    font-size: 1rem;
    min-height: 48px;
  }
}
@media (max-width: 760px) {
  h2 {
    font-size: 1.75rem;
    font-weight: 500;
  }
  .eyebrow {
    font-size: 0.8rem;
  }
  .hero {
    padding-block: 18px 16px;
  }
  .hero h1 {
    font-size: 2.5rem;
  }
  .hero-lead {
    margin-bottom: 12px;
  }
  .highlights {
    -webkit-mask-image: linear-gradient(90deg, #000 84%, transparent);
    mask-image: linear-gradient(90deg, #000 84%, transparent);
  }
  .highlights b {
    font-size: 1.35rem;
  }
  .card-dots {
    display: flex;
    justify-content: center;
    gap: 8px;
    margin-top: 8px;
  }
  .card-dots span {
    width: 8px;
    height: 8px;
    background: var(--line);
    border-radius: 50%;
  }
  .card-dots span.on {
    background: var(--gold);
  }
  .how-steps li::after {
    display: none;
  }
}
@media (prefers-reduced-motion: reduce) {
  .word {
    animation: none;
  }
  .route-line, .hero-route.drawing, .progress::after {
    transition: none;
  }
  .js .route-card:not(.drawn) .route-line {
    stroke-dashoffset: 0;
  }
}
.pref-still .word {
  animation: none;
}
body {
  font-variant-numeric: lining-nums;
}
.route-top b, .calc-total, .widget-note b, .sign-total, .class-price b, .place-row span, .route-rows b {
  font-variant-numeric: lining-nums tabular-nums;
}
.hero {
  grid-template-rows: auto 1fr auto;
}
.hero > .hero-lead {
  align-self: start;
}
.widget {
  background: rgba(255, 255, 255, .985);
}
.pref-dark .widget {
  background: rgba(18, 28, 46, .97);
}
svg.story-art {
  aspect-ratio: 800 / 460;
}
/* 2.90 One family of corners, buttons and fields */
:root {
  --r-1: 10px;
  --r-2: 12px;
  --r-3: 12px;
  --body: #33363a;
  --warm-line: #cfc9bb;
  --gold-dark: #1f4fc9;
}
.btn {
  border-radius: var(--r-1);
}
.btn:not(.quiet), .mobile-cta .btn, .contact-buttons a.primary, .widget .btn[type="submit"] {
  background: var(--gold-grad);
  border: 0;
  color: #0a0b0e;
}
.btn:not(.quiet):hover {
  box-shadow: 0 8px 22px rgba(184, 146, 79, .4);
}
.btn.quiet, .route-card .btn, .class-card .btn {
  background: transparent;
  border: 1px solid var(--warm-line);
  color: var(--text);
}
.btn.quiet:hover, .route-card:hover .btn, .route-card .btn:hover, .class-card .btn:hover {
  background: var(--gold-grad);
  border-color: transparent;
  color: #0a0b0e;
}
.widget input, .pick-btn, .field input, .field select, .field textarea, .calc-fields select, .fare-search input, #calc-pax {
  border: 1px solid var(--field);
  border-radius: var(--r-1);
  background-color: var(--white);
  color: var(--text);
}
.widget input:focus, .pick-btn:focus-visible, .pick-btn[aria-expanded="true"], .field input:focus, .field textarea:focus, .fare-search input:focus {
  border-color: var(--gold);
  box-shadow: 0 0 0 3px rgba(26, 79, 214, .25);
  outline: 0;
}
.fare-search input {
  min-height: 48px;
  padding-left: 40px;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%231f4fc9' stroke-width='1.8' stroke-linecap='round'%3E%3Ccircle cx='11' cy='11' r='6.5'/%3E%3Cpath d='m16 16 4.5 4.5'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: 12px center;
  background-size: 18px;
}

/* 2.91 Steppers */
.pax-control, .stepper {
  display: flex;
  justify-content: space-between;
  align-items: center;
  min-height: 48px;
  padding: 6px;
  background: var(--white);
  border: 1px solid var(--field);
  border-radius: var(--r-1);
}
.pax-control button, .stepper button {
  width: 34px;
  height: 34px;
  padding: 0;
  background: var(--gold-50);
  border: 0;
  border-radius: 8px;
  color: var(--text);
  font-size: 1.15rem;
}
.stepper input {
  width: 44px;
  min-height: 0;
  padding: 0;
  background: none;
  border: 0;
  font-weight: 500;
  text-align: center;
  box-shadow: none;
}

/* 2.92 Segmented controls: tabs and direction switches */
.plan-tabs, .seg {
  display: inline-flex;
  gap: 3px;
  width: auto;
  max-width: 100%;
  padding: 4px;
  background: #efeadf;
  border: 0;
  border-radius: var(--r-pill);
}
.plan-tabs {
  overflow-x: auto;
}
.plan-tabs button, .seg button {
  padding: 9px 18px 7px;
  background: none;
  border: 0;
  border-radius: var(--r-pill);
  color: var(--muted);
  font-weight: 400;
  white-space: nowrap;
  transition: background .3s var(--ease), color .3s var(--ease);
}
.plan-tabs button[aria-selected="true"], .seg button[aria-pressed="true"] {
  background: var(--navy);
  border: 0;
  color: var(--on-dark);
}
.route-tools {
  margin-top: 16px;
}

/* 2.93 Headings and prices */
h3 {
  font-family: var(--serif);
  font-weight: 500;
  letter-spacing: -.01em;
  text-wrap: balance;
}
.foot h3, .dialog-prices h3 {
  font-family: var(--sans);
  font-size: .8rem;
  letter-spacing: .16em;
  text-transform: uppercase;
}
.how-steps b, .class-card h3, .faq-box h3, .route-body h3 {
  font-family: var(--serif);
  font-size: 1.35rem;
  font-weight: 500;
  line-height: 1.15;
  text-wrap: balance;
}
.class-card h3 {
  font-size: 1.75rem;
}
.widget-note b, .class-price b, .route-top b, .sign-total, .calc-total, .vehicle em, .class-card .class-price b, #d-total {
  color: var(--gold-dark);
  font-family: var(--serif);
  font-style: normal;
  font-weight: 500;
  font-variant-numeric: lining-nums tabular-nums;
}
.bar .btn, .foot .contact-buttons a {
  font-family: var(--sans);
}
.sign-total {
  font-size: 2.5rem;
  line-height: 1.05;
}
.vehicle em {
  font-size: 1.75rem;
}
.currency {
  font-size: .6em;
  vertical-align: .55em;
}
.hero h1 em, .faq-box .primary, .foot h3 {
  color: var(--gold);
}
.eyebrow {
  display: flex;
  gap: 10px;
  align-items: center;
}
.eyebrow::before {
  content: "";
  width: 26px;
  height: 1px;
  background: var(--gold);
}
.faq summary {
  font-size: 1.15rem;
  font-weight: 400;
}
.class-card p, .route-intro .intro {
  max-width: none;
}
p, li {
  text-wrap: pretty;
}
.highlights b {
  font-size: 1.9rem;
  color: var(--text);
}
.pref-dark .widget-note b, .pref-dark .class-price b, .pref-dark .route-top b, .pref-dark .sign-total, .pref-dark .calc-total, .pref-dark .vehicle em {
  color: var(--gold);
}

/* 2.94 Hero */
.hero {
  grid-template-rows: auto auto 1fr auto;
}
.hero h1 {
  margin-bottom: 8px;
}
.hero-lead {
  position: relative;
  margin-bottom: 26px;
  padding-top: 16px;
  color: #fff;
  font-weight: 500;
}
.hero-lead::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 64px;
  height: 1px;
  background: var(--gold);
}
.hero-map {
  grid-row: 1 / span 3;
}
.hero-dest {
  filter: drop-shadow(0 0 8px var(--gold));
}
.hero-pulse {
  fill: none;
  stroke: var(--gold);
  stroke-width: 2;
  transform-box: fill-box;
  transform-origin: center;
  animation: pulse 2.4s var(--ease) infinite;
}
@keyframes pulse {
  from {
    opacity: .9;
    transform: scale(.7);
  }
  to {
    opacity: 0;
    transform: scale(2.6);
  }
}
.hero-route {
  filter: drop-shadow(0 0 5px rgba(232, 211, 160, .75));
}

/* 2.95 Booking box */
.widget {
  background: #fff;
  box-shadow: inset 0 1px 0 #fff, 0 34px 80px rgba(11, 18, 32, .34);
  border-radius: var(--r-2);
}
.widget label, .combo-box > label {
  color: var(--muted);
  font-size: .8rem;
  font-weight: 500;
  letter-spacing: .08em;
  text-transform: uppercase;
}
.route-pair {
  gap: 44px;
}
.route-pair::before {
  content: "";
  position: absolute;
  top: 47px;
  left: calc(50% - 22px);
  width: 44px;
  border-top: 2px dotted var(--gold);
}
.quick-swap {
  top: 31px;
  box-shadow: 0 0 0 4px #fff;
}
.widget-note b {
  display: inline-block;
  margin-left: 5px;
  padding: 4px 13px 1px;
  background: var(--gold-50);
  border-radius: var(--r-pill);
}
.pay-row::before {
  content: "";
  width: 15px;
  height: 15px;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%231f4fc9' stroke-width='2'%3E%3Crect x='5' y='11' width='14' height='10' rx='2'/%3E%3Cpath d='M8 11V7a4 4 0 0 1 8 0v4'/%3E%3C/svg%3E") center / contain no-repeat;
}
.pay-logo .mc {
  fill: #b9605f;
}
.pay-logo .mc2 {
  fill: #d7a15d;
  opacity: .9;
}

/* 2.96 Vehicle cards: studio look */
.class-card > .slides {
  background: radial-gradient(ellipse at 50% 42%, #2a3650 0%, #15171c 48%, #0a0b0e 100%);
}
.class-card .slide {
  overflow: hidden;
  transition: transform .6s var(--ease);
}
.class-card:hover .slide {
  transform: scale(1.03);
}
.studio {
  position: relative;
  display: grid;
  gap: 0;
  width: 100%;
}
.studio::after {
  content: "";
  position: absolute;
  right: 10%;
  bottom: 30%;
  left: 10%;
  height: 14px;
  background: radial-gradient(ellipse, rgba(0, 0, 0, .75), transparent 70%);
}
.studio .art-reflect {
  display: block;
  width: 100%;
  height: auto;
  margin-top: -8px;
  opacity: .13;
  transform: scaleY(-1);
  -webkit-mask-image: linear-gradient(0deg, #000, transparent 55%);
  mask-image: linear-gradient(0deg, #000, transparent 55%);
}
.studio .art {
  position: relative;
  z-index: 1;
  filter: drop-shadow(0 0 12px rgba(26, 79, 214, .3));
}
.class-card:hover .art {
  filter: drop-shadow(0 0 20px rgba(232, 211, 160, .6));
}
.class-card > div:last-child {
  display: flex;
  flex: 1;
  flex-direction: column;
}
.class-card .class-points {
  margin-bottom: 16px;
}
.class-card .class-points svg {
  box-sizing: content-box;
  padding: 6px;
  stroke: var(--gold-dark);
  background: var(--gold-50);
  border-radius: 50%;
}
.class-card .class-price {
  margin-top: auto;
  color: var(--muted);
  font-size: .9rem;
}
.class-card .class-price b {
  display: block;
  font-size: 2.5rem;
  line-height: 1.1;
}
.class-card .btn::after {
  content: "→";
  display: inline-block;
  width: 0;
  margin-left: 0;
  opacity: 0;
  overflow: hidden;
  transition: width .3s var(--ease), margin .3s var(--ease), opacity .3s var(--ease);
}
.class-card .btn:hover::after {
  width: 1em;
  margin-left: 8px;
  opacity: 1;
}
.slide-dots {
  gap: 5px;
  align-items: center;
}
.slide-dots button {
  width: 26px;
  height: 18px;
}
.slide-dots button::before {
  width: 22px;
  height: 2px;
  border-radius: 2px;
}

/* 2.97 How it works and your price */
.how {
  align-items: start;
}
.how-steps li::before {
  box-shadow: 0 0 0 0 var(--gold);
  transition: box-shadow .3s var(--ease), background .6s var(--ease);
}
.how-steps li:hover::before {
  box-shadow: 0 0 0 3px var(--gold);
}
.how-steps li:not(:last-child)::after {
  height: 2px;
  border: 0;
  background: radial-gradient(circle, var(--gold) 1px, transparent 1.4px) 0 0 / 8px 2px repeat-x;
}
.how-price {
  padding: 22px 24px 18px;
  background: var(--white);
  border-top: 2px solid var(--gold);
  border-radius: var(--r-2);
  box-shadow: var(--shadow-1);
}
.how-price .eyebrow {
  margin-bottom: 8px;
}
.included li {
  padding-left: 32px;
}
.included li::before {
  content: "";
  top: 8px;
  left: 0;
  width: 20px;
  height: 20px;
  background: var(--gold) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230a0b0e' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 12 4 4 8-9'/%3E%3C/svg%3E") center / 13px no-repeat;
  border-radius: 50%;
}

/* 2.98 Bands and stories */
.wide-picture {
  position: relative;
  aspect-ratio: auto;
  height: clamp(240px, 30vw, 400px);
}
.wide-picture::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(0deg, rgba(11, 18, 32, .45), rgba(11, 18, 32, .1));
}
.wide-line {
  position: absolute;
  top: 50%;
  right: var(--gutter);
  left: var(--gutter);
  z-index: 1;
  margin: 0;
  color: #fff;
  font-family: var(--serif);
  font-size: clamp(1.75rem, 3.6vw, 3.1rem);
  line-height: 1.1;
  text-align: center;
  transform: translateY(-50%);
  text-wrap: balance;
}
.story {
  position: relative;
  counter-increment: story;
}
main {
  counter-reset: story;
}
.story-media {
  position: relative;
}
.story-media::after {
  content: "";
  position: absolute;
  inset: 12px;
  border: 1px solid rgba(26, 79, 214, .7);
  border-radius: 6px;
  pointer-events: none;
}
.story-media .story-art {
  display: block;
}
.story .story-text {
  position: relative;
  z-index: 1;
  padding: 26px 30px;
  background: var(--white);
  border-radius: var(--r-2);
}
.story .story-text::before {
  content: "0" counter(story);
  position: absolute;
  top: -18px;
  right: 18px;
  z-index: -1;
  color: rgba(26, 79, 214, .2);
  font-family: var(--serif);
  font-size: 6rem;
  line-height: 1;
}
.text-link {
  display: inline-flex;
  gap: 8px;
  margin-top: 12px;
  color: var(--gold-dark);
  font-weight: 500;
  text-decoration: none;
}
.text-link::after {
  content: "→";
  transition: transform .3s var(--ease);
}
.text-link:hover::after {
  transform: translateX(4px);
}
.pref-dark .text-link {
  color: var(--gold);
}
.story.flip .story-art {
  order: 0;
}
.story.flip .story-media {
  order: -1;
}
@media (min-width: 901px) {
  .story .story-text {
    margin-right: -70px;
    box-shadow: var(--shadow-2);
  }
  .story.flip .story-text {
    margin-right: 0;
    margin-left: -70px;
  }
}

/* 2.99 Questions */
.faq details {
  border-left: 2px solid transparent;
  transition: background .3s var(--ease), border-color .3s var(--ease);
}
.faq details[open] {
  background: var(--limestone);
  border-left-color: var(--gold);
}
.faq summary::after {
  border-color: var(--muted);
  transition: transform .3s var(--ease), border-color .3s var(--ease);
}
.faq summary:hover::after {
  border-color: var(--muted);
}
.faq details[open] summary::after {
  border-color: var(--gold);
}
.faq details p {
  max-width: none;
  padding-right: 34px;
}
.faq details::details-content {
  opacity: 0;
  transition: height .3s var(--ease), opacity .3s var(--ease), content-visibility .3s allow-discrete;
}
.faq details[open]::details-content {
  opacity: 1;
}
.faq-tools {
  display: flex;
  gap: 14px;
  align-items: center;
}
.faq-tools .fare-search {
  flex: 1;
}
.faq-count {
  flex: none;
  color: var(--muted);
  font-size: .9rem;
}
.pref-dark .plan-tabs, .pref-dark .seg {
  background: #22252c;
}

/* 2.100 Maps */
.route-map, .map {
  background: radial-gradient(circle at 40% 30%, #17525c, #0e3b43 75%);
}
.route-map .route-line {
  stroke: url(#route-gold);
  filter: drop-shadow(0 0 2px rgba(232, 211, 160, .7));
}
.coast-ring {
  --isle-fill: none;
  --isle-stroke: #0a2c33;
  --isle-sw: 13;
  opacity: .6;
}
.pin-tag rect {
  fill: #fff;
}
.pin-tag text {
  fill: #0a0b0e;
  font-weight: 500;
}
.pin-plane circle {
  fill: #0a0b0e;
}
.pin-plane path {
  fill: var(--gold);
}
.route-pill {
  padding-left: 25px;
  background: #f4efe3 url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%231f4fc9' stroke-width='2' stroke-linecap='round'%3E%3Ccircle cx='12' cy='12' r='8.5'/%3E%3Cpath d='M12 7v5l3.5 2'/%3E%3C/svg%3E") 9px center / 13px no-repeat;
}
.route-card:hover {
  transform: translateY(-4px);
  box-shadow: var(--shadow-2);
}
.route-card {
  transition: transform .3s var(--ease), box-shadow .3s var(--ease), border-color .3s var(--ease);
}
.routes-end {
  display: flex;
  gap: 18px;
  align-items: center;
  margin-top: 26px;
}
.routes-end::before, .routes-end::after {
  content: "";
  flex: 1;
  height: 1px;
  background: var(--warm-line);
}
#routes-all {
  padding: 4px 6px;
  background: none;
  border: 0;
  color: var(--gold-dark);
  font-weight: 500;
}
#routes-all[hidden] {
  display: none;
}
.pref-dark #routes-all {
  color: var(--gold);
}

/* 2.101 Booking steps */
.progress button.done::before {
  content: "✓";
  color: var(--gold-dark);
}
.pref-dark .progress button.done::before {
  color: var(--gold);
}
.vehicle .v-body {
  position: relative;
  border-radius: var(--r-2);
  transition: border-color .15s var(--ease), background .15s var(--ease);
}
.vehicle input:checked + .v-body {
  background: var(--gold-50);
  border-color: var(--gold);
  box-shadow: 0 0 0 1px var(--gold);
}
.vehicle input:checked + .v-body::after {
  content: "✓";
  position: absolute;
  top: 8px;
  right: 10px;
  display: grid;
  place-items: center;
  width: 22px;
  height: 22px;
  background: var(--gold);
  border-radius: 50%;
  color: #0a0b0e;
  font-size: .8rem;
}
.v-body .art {
  stroke-width: 4.5;
}
.pref-dark .vehicle input:checked + .v-body {
  background: #22252c;
}
.after-pay {
  position: relative;
  margin: 14px 0;
  padding-left: 26px;
}
.after-pay::before {
  content: "i";
  position: absolute;
  top: 1px;
  left: 0;
  display: grid;
  place-items: center;
  width: 18px;
  height: 18px;
  border: 1px solid var(--gold-dark);
  border-radius: 50%;
  color: var(--gold-dark);
  font-family: var(--serif);
  font-size: .9rem;
  line-height: 1;
}
.toggle {
  border-radius: var(--r-2);
}
.toggle input {
  position: relative;
  flex: none;
  width: 44px;
  height: 24px;
  margin: 0;
  background: #d8d4ca;
  border-radius: var(--r-pill);
  cursor: pointer;
  transition: background .3s var(--ease);
  -webkit-appearance: none;
  appearance: none;
}
.toggle input::after {
  content: "";
  position: absolute;
  top: 3px;
  left: 3px;
  width: 18px;
  height: 18px;
  background: #fff;
  border-radius: 50%;
  box-shadow: 0 1px 3px rgba(0, 0, 0, .3);
  transition: transform .3s var(--ease);
}
.toggle input:checked {
  background: var(--gold-grad);
}
.toggle input:checked::after {
  transform: translateX(20px);
}
.field input[name="address"], .field input[name="flight_number"], .field input[name="return_flight"] {
  padding-left: 38px;
  background-repeat: no-repeat;
  background-position: 12px center;
  background-size: 18px;
}
[name="address"] {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%231f4fc9' stroke-width='1.8' stroke-linecap='round'%3E%3Cpath d='M5 21V4h14v17M3 21h18M9 8h2M13 8h2M9 12h2M13 12h2M10 21v-4h4v4'/%3E%3C/svg%3E");
}
[name="flight_number"], [name="return_flight"] {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%231f4fc9' stroke-width='1.8' stroke-linejoin='round'%3E%3Cpath d='M21 3 3 10.500l7 2.800L13 21z'/%3E%3C/svg%3E");
}
.summary-links {
  gap: 14px;
}
.edit-trip {
  display: inline-flex;
  gap: 6px;
  align-items: center;
  padding: 3px 0;
  background: none;
  border: 0;
  color: var(--muted);
  font-size: .9rem;
  text-decoration: none;
}
.edit-trip:hover {
  color: var(--gold-dark);
}
.edit-trip::before {
  content: "↺";
  color: var(--gold-dark);
}
#edit-trip::before {
  content: "✎";
}
.map .island {
  fill: #f4ecdc;
  stroke: var(--gold);
}
.map .route {
  stroke: url(#route-gold);
}
.map-label {
  fill: #0a0b0e;
  font-size: 19px;
  font-weight: 500;
}
.panel {
  top: 74px;
}

/* 2.102 Top bar */
.bar {
  background: rgba(11, 18, 32, .82);
  -webkit-backdrop-filter: blur(12px);
  backdrop-filter: blur(12px);
}
.options-toggle, .lang-menu > button {
  min-height: 38px;
  border: 0;
  border-radius: var(--r-pill);
}
.options-toggle {
  justify-content: center;
  width: 38px;
  padding: 0;
}
.options-toggle:hover, .lang-menu > button:hover {
  background: rgba(255, 255, 255, .12);
}
#main-nav {
  position: relative;
}
.nav-line {
  position: absolute;
  bottom: calc(50% - 16px);
  height: 2px;
  background: var(--gold);
  opacity: 0;
  transition: left .3s var(--ease), width .3s var(--ease), opacity .3s var(--ease);
  pointer-events: none;
}
.bar nav a:not(.btn)::after {
  display: none;
}

/* 2.103 Footer */
.foot .contact-buttons {
  display: inline-grid;
  grid-auto-flow: column;
  gap: 8px;
}
.foot .contact-buttons a {
  min-height: 38px;
  padding: 5px 15px 3px;
  border-color: rgba(26, 79, 214, .55);
  border-radius: var(--r-pill);
  font-size: .9rem;
  font-weight: 400;
}
.foot::before {
  background: linear-gradient(180deg, rgba(26, 79, 214, .13), transparent 92%);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
}
.foot-bottom .brand-mark {
  width: 24px;
  height: 24px;
}
.foot-mark {
  display: inline-flex;
  align-items: center;
}

/* 2.104 Dark mode */
html.pref-dark {
  --warm-line: #3a465c;
  --gold-50: #22252c;
}
.pref-dark .how-steps li::before {
  box-shadow: inset 0 0 0 1px var(--gold);
}
.pref-dark .widget {
  background: #15171c;
  box-shadow: inset 0 1px 0 #22252c, 0 34px 80px rgba(0, 0, 0, .5);
}
.pref-dark .quick-swap {
  box-shadow: 0 0 0 4px #15171c;
}
.pref-dark .story .story-text::before {
  color: rgba(26, 79, 214, .16);
}

/* 2.105 One reveal */
.js .reveal {
  transform: translateY(16px);
  transition: opacity .6s var(--ease), transform .6s var(--ease);
}
.js .reveal.seen {
  transform: none;
}

/* 2.106 Tablet menu keeps its own line off */
@media (max-width: 1360px) {
  .nav-line {
    display: none;
  }
  #main-nav {
    position: fixed;
  }
  .menu-toggle {
    border: 0;
    background: none;
  }
  .menu-toggle span {
    height: 2px;
    margin: 7px 0;
  }
  .menu-toggle span:nth-child(2) {
    display: none;
  }
  .menu-toggle span:nth-child(3) {
    width: 62%;
    margin-left: auto;
  }
  .menu-toggle[aria-expanded="true"] span:nth-child(1) {
    transform: translateY(4.5px) rotate(45deg);
  }
  .menu-toggle[aria-expanded="true"] span:nth-child(3) {
    width: 100%;
    transform: translateY(-4.5px) rotate(-45deg);
  }
  .options-toggle {
    width: 100%;
    border: 1px solid rgba(26, 79, 214, .4);
    border-radius: var(--r-1);
  }
  .lang-menu > button {
    border: 1px solid rgba(26, 79, 214, .4);
    border-radius: var(--r-1);
  }
}
@media (max-width: 1100px) {
  .route-pair {
    gap: 12px 44px;
  }
}
@media (max-width: 760px) {
  .hero {
    position: relative;
  }
  .hero-map {
    position: absolute;
    top: 6px;
    right: -30px;
    display: block;
    grid-column: auto;
    grid-row: auto;
    width: 230px;
    opacity: .15;
  }
  .brand-mark {
    width: 26px;
    height: 26px;
  }
  .brand-text b {
    font-size: 1rem;
  }
  .brand-text small {
    font-size: .8rem;
    letter-spacing: .24em;
    zoom: .8;
  }
  .route-pair {
    gap: 26px;
  }
  .route-pair::before {
    top: 72px;
    left: 26px;
    width: 0;
    height: 26px;
    border-top: 0;
    border-left: 2px dotted var(--gold);
  }
  .quick-swap {
    top: 50%;
    right: 12px;
    margin-top: -12px;
  }
  .widget-foot {
    gap: 8px;
  }
  .slide-nav > button {
    display: none;
  }
  .highlights {
    display: grid;
    gap: 10px;
    padding-block: 18px;
    overflow: visible;
    -webkit-mask-image: none;
    mask-image: none;
  }
  .highlights li {
    flex: none;
  }
  .classes {
    -webkit-mask-image: linear-gradient(90deg, #000 90%, transparent);
    mask-image: linear-gradient(90deg, #000 90%, transparent);
  }
  .mobile-cta .btn {
    gap: 11px;
  }
  .mobile-cta .btn b {
    padding-left: 11px;
    border-left: 1px solid rgba(11, 18, 32, .3);
    font-weight: 400;
  }
  .plan-tabs {
    margin-inline: 0;
    padding-inline: 4px;
  }
  .seg {
    display: flex;
    width: 100%;
  }
  .story .story-text {
    padding: 0;
  }
  .story .story-text::before {
    top: -10px;
    right: 0;
    font-size: 4rem;
  }
  .faq-tools {
    align-items: stretch;
    flex-direction: column;
    gap: 4px;
  }
}
@media (prefers-reduced-motion: reduce) {
  .hero-pulse {
    display: none;
  }
  .js .reveal {
    transform: none;
    transition: none;
  }
}
.pref-still .hero-pulse {
  display: none;
}
@media (max-width: 1360px) {
  .bar {
    background: var(--navy);
    -webkit-backdrop-filter: none;
    backdrop-filter: none;
  }
}
.pref-dark h1, .pref-dark h2, .pref-dark h3, .pref-dark summary, .pref-dark .faq summary, .pref-dark .how-steps b {
  color: var(--text);
}
.pref-dark .hero h1 em {
  color: var(--gold);
}
/* 2.110 Search-engine sections */
.routes-band {
  background: var(--limestone);
  color: var(--text);
}
.routes-band .intro {
  color: var(--body);
}
.route-copy {
  max-width: 74ch;
}
.route-copy p {
  margin-top: 10px;
  color: var(--body);
}
.route-updated {
  margin-top: 12px;
  color: var(--muted);
  font-size: .9rem;
}
.route-table {
  width: 100%;
  max-width: 560px;
  margin-top: 18px;
  border-collapse: collapse;
}
.route-table th, .route-table td {
  padding: 9px 4px 7px;
  border-bottom: 1px solid var(--line);
  text-align: left;
  font-weight: 400;
}
.route-table td {
  color: var(--gold-text);
  font-family: var(--serif);
  font-size: 1.35rem;
  font-variant-numeric: lining-nums tabular-nums;
  text-align: right;
}
.nearby {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 12px;
  padding: 0;
  list-style: none;
}
.nearby a {
  display: inline-block;
  padding: 7px 14px 5px;
  border: 1px solid var(--warm-line);
  border-radius: var(--r-pill);
  color: var(--text);
  text-decoration: none;
}
.nearby a:hover {
  background: var(--gold-50);
  border-color: var(--gold);
}
.home-intro {
  max-width: 74ch;
}
.home-intro p {
  margin-top: 12px;
  color: var(--body);
}
.areas-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 210px), 1fr));
  gap: 20px 28px;
  margin-top: 20px;
}
.areas-grid h3 {
  margin-bottom: 7px;
  font-size: 1.35rem;
}
.areas-grid ul {
  padding: 0;
  list-style: none;
}
.areas-grid li {
  padding: 3px 0;
}
.areas-grid a {
  color: var(--body);
  text-decoration: none;
}
.areas-grid a:hover {
  color: var(--gold-text);
  text-decoration: underline;
}
.foot-routes {
  grid-column: 1 / -1;
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
  gap: 18px;
  padding-top: 18px;
  border-top: 1px solid rgba(255, 255, 255, .14);
}
.foot-routes ul {
  padding: 0;
  list-style: none;
}
.foot-routes li {
  margin-bottom: 4px;
  font-size: .9rem;
}
.empty-help {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 10px;
  font-weight: 400;
}
.empty-help a {
  padding: 7px 14px 5px;
  border: 1px solid var(--warm-line);
  border-radius: var(--r-1);
  color: var(--text);
  text-decoration: none;
}

/* 2.111 Language links */
.lang-list a {
  display: flex;
  justify-content: space-between;
  width: 100%;
  padding: 10px 11px 8px;
  border-radius: 4px;
  color: var(--text);
  text-decoration: none;
}
.lang-list a:hover {
  background: var(--pale);
}
.lang-list a[aria-current="true"] {
  font-weight: 500;
}
.lang-list a[aria-current="true"]::after {
  content: "✓";
  color: var(--gold-text);
}
.foot-lang a {
  color: var(--on-dark-muted);
  text-decoration: none;
}
.foot-lang a:hover, .foot-lang a[aria-current="true"] {
  color: var(--gold);
}

/* 2.112 Steps and fields */
.progress button.done::before {
  content: "✓ " counter(step) ". ";
}
.vehicle .v-body b, .sign-place {
  font-family: var(--serif);
  font-size: 1.75rem;
  font-weight: 500;
  line-height: 1.1;
}
.field, .field > span:first-child {
  font-size: .8rem;
  font-weight: 500;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: var(--muted);
}
.field input, .field select, .field textarea, .field .pick-btn, .field .error, .field small {
  font-size: 1rem;
  font-weight: 400;
  letter-spacing: 0;
  text-transform: none;
}
.class-card .btn {
  margin-top: 0;
}
.bar {
  background: rgba(11, 18, 32, .93);
}
input, textarea {
  caret-color: var(--gold-text);
}
.air-plane circle {
  fill: #0a0b0e;
}
.air-plane path {
  fill: var(--gold);
}
.flight-note, .earliest-note {
  display: block;
  margin-top: 4px;
  color: var(--gold-text);
  font-size: .9rem;
  font-weight: 400;
  letter-spacing: 0;
  text-transform: none;
}
.journey-tools a.btn {
  display: inline-block;
}
.locate-btn {
  margin-top: 6px;
  padding: 0;
  background: none;
  border: 0;
  color: var(--gold-text);
  font-size: .9rem;
  font-weight: 500;
  letter-spacing: 0;
  text-transform: none;
}
.locate-btn[hidden] {
  display: none;
}

/* 2.113 Small sticky booking bar */
.mini-bar {
  position: fixed;
  top: 62px;
  left: 50%;
  z-index: 34;
  display: none;
  gap: 14px;
  align-items: center;
  padding: 7px 8px 7px 18px;
  background: var(--white);
  border: 1px solid var(--gold);
  border-radius: var(--r-pill);
  box-shadow: var(--shadow-2);
  color: var(--text);
  transform: translateX(-50%);
  white-space: nowrap;
}
.mini-bar b {
  color: var(--gold-text);
  font-family: var(--serif);
  font-size: 1.35rem;
  font-weight: 500;
}
.mini-bar .btn {
  padding: 7px 16px 5px;
  border-radius: var(--r-pill);
  font-size: .9rem;
}
.mini-bar.on {
  display: flex;
}

/* 2.114 Mouse glow on cards */
@media (hover: hover) {
  .route-card {
    position: relative;
  }
  .route-card::after, .class-card > .slides::after {
    content: "";
    position: absolute;
    inset: 0;
    z-index: 3;
    background: radial-gradient(240px circle at var(--mx, 50%) var(--my, 50%), rgba(232, 211, 160, .2), transparent 70%);
    opacity: 0;
    pointer-events: none;
    transition: opacity .3s var(--ease);
  }
  .route-card:hover::after, .class-card:hover > .slides::after {
    opacity: 1;
  }
}
@media (min-width: 1921px) {
  :root {
    --gutter: calc((100vw - 1760px) / 2);
  }
}

/* 2.115 Lighter pages */
.how, .story, .faq, .plan, .routes-band, .home-intro-band, .areas-band, .wide-picture {
  content-visibility: auto;
  contain-intrinsic-size: auto 620px;
}
@media (pointer: coarse) {
  .widget, .bar {
    -webkit-backdrop-filter: none;
    backdrop-filter: none;
  }
  .bar {
    background: var(--navy);
  }
  .hero-shade {
    background-image: linear-gradient(180deg, rgba(11, 18, 32, .5), rgba(11, 18, 32, .12) 60%, rgba(11, 18, 32, .35));
  }
  .widget input[type="date"], .widget select#quick-time, .field input[type="date"], .field input[type="time"] {
    min-height: 48px;
  }
}

/* 2.116 Tablets */
@media (min-width: 761px) and (max-width: 1100px) {
  .widget-fields {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

/* 2.117 Phones */
@media (max-width: 760px) {
  .section {
    padding-block: 32px;
  }
  .story, .story.flip {
    padding-block: 22px;
  }
  body {
    font-size: 17px;
  }
  .hero h1, h1 {
    font-size: 2.6rem;
  }
  h2 {
    font-size: 2rem;
  }
  .brand-mark {
    width: 24px;
    height: 24px;
  }
  .brand-text b {
    font-size: .9rem;
  }
  button, .btn, .plan-tabs button, .seg button, .pax-control button, .stepper button, .foot a, .faq summary {
    min-height: 44px;
  }
  .pax-control button, .stepper button {
    min-width: 44px;
  }
  .mobile-cta {
    padding-left: max(var(--gutter), env(safe-area-inset-left));
    padding-right: max(var(--gutter), env(safe-area-inset-right));
    transition: transform .3s var(--ease);
  }
  .mobile-cta.away {
    transform: translateY(110%);
  }
  #main-nav {
    padding-bottom: calc(26px + env(safe-area-inset-bottom));
  }
  .actions {
    position: sticky;
    bottom: 0;
    z-index: 5;
    padding: 10px 0 calc(10px + env(safe-area-inset-bottom));
    background: var(--white);
  }
  .explore-chips {
    flex-wrap: nowrap;
    margin-inline: calc(var(--gutter) * -1);
    padding-inline: var(--gutter);
    overflow-x: auto;
    scrollbar-width: none;
  }
  .explore-chips button {
    flex: none;
  }
  .combo-box.full {
    position: fixed;
    inset: 0;
    z-index: 80;
    padding: 14px var(--gutter);
    overflow-y: auto;
    background: var(--white);
  }
  .combo-box.full .combo-list {
    position: static;
    width: 100%;
    max-height: none;
    border: 0;
    box-shadow: none;
  }
  .combo-box.full .combo-item {
    padding: 13px 6px 11px;
    border-bottom: 1px solid var(--line);
    font-size: 1.15rem;
  }
}
@media (max-height: 500px) and (orientation: landscape) {
  .hero {
    padding-block: 12px;
  }
  .hero h1, h1 {
    font-size: 2rem;
  }
  .hero-map {
    display: none;
  }
  .mobile-cta {
    display: none;
  }
}
@media (prefers-reduced-motion: reduce) {
  ::view-transition-group(*), ::view-transition-old(*), ::view-transition-new(*) {
    animation: none;
  }
}
.route-copy .nearby-title {
  margin-top: 26px;
  font-size: 1.75rem;
}
.route-updated {
  margin-bottom: 0;
}
@media (max-width: 760px) {
  .hero:has(.combo-box.full) {
    z-index: 90;
  }
  .hero > .widget:has(.combo-box.full) {
    animation: none;
    transform: none;
    -webkit-backdrop-filter: none;
    backdrop-filter: none;
  }
  .combo-box.full label {
    display: block;
    margin-bottom: 8px;
  }
}
/* 3.00 Dark and light surfaces: one class switches a whole section */
:root {
  --surface-dark: #0a0b0e;
  --surface-dark-2: #15171c;
  --surface-light: #ffffff;
  --surface-light-2: #faf7f1;
  --on-light: #0a0b0e;
  --text: #0a0b0e;
  --body: #3a3f47;
  --muted: #4d5157;
  --line: #ece6d8;
  --warm-line: #d9d1c0;
  --shadow-1: 0 2px 10px rgba(11, 18, 32, .08), 0 1px 3px rgba(122, 95, 42, .06);
  --shadow-2: 0 14px 30px rgba(11, 18, 32, .1), 0 4px 10px rgba(122, 95, 42, .08);
  --grain: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2'/%3E%3CfeColorMatrix values='0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 .05 0'/%3E%3C/filter%3E%3Crect width='180' height='180' filter='url(%23n)'/%3E%3C/svg%3E");
  --paper: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.8' numOctaves='2'/%3E%3CfeColorMatrix values='0 0 0 0 .48 0 0 0 0 .37 0 0 0 0 .16 0 0 0 .018 0'/%3E%3C/filter%3E%3Crect width='180' height='180' filter='url(%23n)'/%3E%3C/svg%3E");
}
.section-white {
  background: var(--paper), var(--white);
  color: var(--text);
}
.section-cream, .how.section-cream, .plan.section-white {
  color: var(--text);
}
.section-cream {
  background: var(--paper), var(--limestone);
}
.plan.section-white {
  background: var(--paper), var(--white);
}
.section-dark {
  --white: #15171c;
  --limestone: #0a0b0e;
  --pale: #0a0b0e;
  --text: #ffffff;
  --body: #cfd2d6;
  --muted: #b5bac2;
  --line: rgba(255, 255, 255, .08);
  --warm-line: rgba(255, 255, 255, .35);
  --field: rgba(255, 255, 255, .22);
  --gold-text: #1f4fc9;
  --gold-dark: #1f4fc9;
  --gold-50: rgba(26, 79, 214, .15);
  --shadow-1: 0 10px 28px rgba(26, 79, 214, .08);
  --shadow-2: 0 16px 38px rgba(26, 79, 214, .14);
  position: relative;
  padding-block: calc(clamp(36px, 4vw, 56px) + 16px);
  background: var(--grain), radial-gradient(700px 420px at var(--glow-x, 8%) 0%, rgba(26, 79, 214, .13), transparent 70%), linear-gradient(135deg, var(--dark-from, #15171c), #0a0b0e);
  color: var(--text);
  border-top: 1px solid rgba(26, 79, 214, .3);
  box-shadow: 0 22px 40px -22px rgba(11, 18, 32, .55);
}
.section-dark.glow-right {
  --glow-x: 92%;
}
.section-dark::before {
  content: "◆";
  position: absolute;
  top: -9px;
  left: 50%;
  z-index: 2;
  color: var(--gold);
  font-size: 13px;
  line-height: 1;
  transform: translateX(-50%);
}
.section-dark h1, .section-dark h2, .section-dark h3 {
  color: #fff;
}
.section-dark h2 em {
  color: var(--gold);
}
.section-dark a:not(.btn):not(.brand) {
  color: var(--gold);
}
.section-dark a:not(.btn):not(.brand):hover {
  color: #fff;
}
.section-dark input, .section-dark select, .section-dark textarea {
  background-color: #101216;
  color: #fff;
}
.section-dark input::placeholder {
  color: #8a93a3;
}
.section-dark .btn.quiet, .section-dark .route-card .btn, .section-dark .class-card .btn {
  border-color: rgba(255, 255, 255, .35);
  color: #fff;
}
.section-dark .btn.quiet:hover, .section-dark .route-card:hover .btn, .section-dark .class-card .btn:hover {
  color: #0a0b0e;
}
.section-dark .plan-tabs, .section-dark .seg {
  background: #22252c;
}
.section-dark .seg button {
  color: #cfd2d6;
}
.section-dark .plan-tabs button[aria-selected="true"], .section-dark .seg button[aria-pressed="true"] {
  background: var(--gold);
  color: #0a0b0e;
}
.section-dark .route-pill {
  background-color: rgba(26, 79, 214, .15);
  color: var(--gold);
}
.section-dark .route-card {
  border-color: rgba(26, 79, 214, .18);
}
.section-dark .class-points svg {
  stroke: var(--gold);
}
.section-dark .fare-search input {
  background-color: #101216;
}
.section-dark .eyebrow {
  color: var(--gold);
}
h1, h2, h3 {
  color: var(--text);
}
.hero h1 {
  color: #fff;
}
.highlights, .story {
  border-bottom: 0;
}
.highlights {
  background: var(--paper), var(--white);
}
.highlights li + li {
  border-left: 1px solid rgba(26, 79, 214, .35);
  padding-left: 24px;
}
.highlights svg {
  box-sizing: content-box;
  width: 30px;
  height: 30px;
  padding: 10px;
  background: var(--gold-50);
  border-radius: 50%;
  stroke: var(--gold-text);
}

/* 3.01 Hero */
.earliest-note {
  display: inline-flex;
  gap: 7px;
  align-items: center;
  padding: 4px 12px 2px 28px;
  background: var(--gold-50) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%231f4fc9' stroke-width='2' stroke-linecap='round'%3E%3Ccircle cx='12' cy='12' r='8.5'/%3E%3Cpath d='M12 7v5l3.5 2'/%3E%3C/svg%3E") 9px center / 13px no-repeat;
  border-radius: var(--r-pill);
  font-size: .8rem;
}
.widget-note b {
  font-size: 1.35rem;
}

/* 3.02 Vehicles */
.class-card {
  background: transparent;
}
.class-card > div:last-child > p:first-of-type {
  min-height: 3.2em;
}
.studio .art-reflect {
  opacity: .06;
}
.how-steps li:last-child::before {
  box-shadow: 0 0 0 3px var(--gold);
}
.how-price {
  border-top-width: 3px;
}

/* 3.03 About the airport */
.home-intro-band {
  display: grid;
  grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr);
  gap: clamp(24px, 4vw, 60px);
  align-items: start;
}
.intro-panel {
  display: grid;
  gap: 14px;
  padding: 26px;
  background: var(--grain), linear-gradient(135deg, #15171c, #0a0b0e);
  border-radius: var(--r-2);
  color: #fff;
}
.intro-panel svg {
  width: 100%;
  height: auto;
  --isle-fill: rgba(255, 255, 255, .05);
  --isle-stroke: var(--gold);
}
.intro-panel .air-dot {
  fill: var(--gold);
}
.intro-panel text {
  fill: #fff;
  font-size: 20px;
  font-weight: 500;
}
.intro-panel h3 {
  color: #fff;
}
.intro-panel ul {
  margin: 0;
  padding: 0;
  list-style: none;
}
.intro-panel li {
  display: flex;
  justify-content: space-between;
  gap: 10px;
  padding: 7px 0 5px;
  border-bottom: 1px solid rgba(255, 255, 255, .08);
  color: #cfd2d6;
}
.intro-panel li span:last-child {
  color: var(--gold);
}

/* 3.04 Areas */
.areas-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 14px;
}
.area-card {
  padding: 16px 18px;
  background: var(--white);
  border: 1px solid rgba(26, 79, 214, .18);
  border-radius: var(--r-2);
}
.area-card summary {
  display: flex;
  justify-content: space-between;
  gap: 10px;
  align-items: baseline;
  list-style: none;
  cursor: pointer;
}
.area-card summary::-webkit-details-marker {
  display: none;
}
.section-dark .area-card h3 {
  margin: 0;
  color: var(--gold);
  font-size: 1.35rem;
}
.area-from {
  color: #cfd2d6;
  font-size: .9rem;
}
.area-card ul {
  margin-top: 8px;
}
.section-dark .areas-grid a:not(.btn):not(.brand) {
  color: #fff;
}
.section-dark .areas-grid a:not(.btn):not(.brand):hover {
  color: var(--gold);
  text-decoration: underline;
  text-decoration-color: var(--gold);
}
.areas-grid a {
  display: inline-block;
}

/* 3.05 Band and stories */
.wide-picture::after {
  background: linear-gradient(0deg, var(--limestone) 0, transparent 60px), linear-gradient(0deg, rgba(11, 18, 32, .3), rgba(11, 18, 32, .1));
}
.wide-copy {
  position: absolute;
  top: 50%;
  right: var(--gutter);
  left: var(--gutter);
  z-index: 1;
  display: grid;
  gap: 12px;
  justify-items: center;
  transform: translateY(-55%);
}
.wide-line {
  position: static;
  transform: none;
  text-shadow: 0 2px 18px rgba(11, 18, 32, .7);
}
.wide-copy::after {
  content: "";
  order: 1;
  width: 70px;
  height: 1px;
  background: var(--gold);
}
.wide-copy a {
  order: 2;
  color: #fff;
  font-weight: 500;
  text-decoration: none;
}
.wide-copy a::after {
  content: " →";
  color: var(--gold);
}
.story.section-cream {
  background: var(--paper), var(--limestone);
}
.story.section-dark {
  --dark-from: #15171c;
  box-shadow: none;
}
.story.section-dark .story-text {
  background: #15171c;
  border: 1px solid rgba(26, 79, 214, .18);
}
.story .story-text::before {
  color: rgba(26, 79, 214, .25);
  z-index: 0;
}
.story .story-text > * {
  position: relative;
  z-index: 1;
}

/* 3.06 Questions */
.faq {
  grid-template-columns: minmax(0, 1fr);
}
.faq.has-photo {
  grid-template-columns: minmax(0, 1fr) minmax(280px, 400px);
}
.section-white .faq details[open], .faq.section-white details[open] {
  background: var(--limestone);
}
.faq-main .fare-search {
  max-width: none;
}
.faq-band {
  display: flex;
  flex-wrap: wrap;
  gap: 16px 40px;
  justify-content: space-between;
  align-items: center;
}
.faq-band h3 {
  margin-bottom: 4px;
  font-size: 1.75rem;
}
.faq-band p {
  color: var(--body);
}
.faq-band .contact-buttons {
  display: flex;
  flex-wrap: wrap;
}
.faq-band .contact-buttons a {
  min-width: 190px;
  color: #fff;
}
.faq-band .contact-buttons a.primary {
  color: #0a0b0e;
}

/* 3.07 Routes and prices */
.routes-band.section-dark {
  background: var(--grain), radial-gradient(700px 420px at 92% 0%, rgba(26, 79, 214, .13), transparent 70%), linear-gradient(135deg, #15171c, #0a0b0e);
}
.route-card .route-meta {
  font-size: .8rem;
}
.route-pill {
  font-size: .8rem;
}
.section-dark .route-body h3 a:not(.btn):not(.brand) {
  color: #fff;
}
.section-dark #routes-all {
  color: var(--gold);
}
.section-dark .routes-end::before, .section-dark .routes-end::after {
  background: rgba(255, 255, 255, .15);
}
.place-grid {
  display: block;
  columns: 3;
  column-gap: 28px;
}
.fare-group {
  break-inside: avoid;
  margin-bottom: 20px;
}
.fare-group h3 {
  position: relative;
  padding-bottom: 8px;
  border: 0;
  font-family: var(--serif);
  font-size: 1.35rem;
  font-weight: 500;
}
.fare-group h3::after {
  content: "";
  position: absolute;
  bottom: 0;
  left: 0;
  width: 34px;
  height: 2px;
  background: var(--gold);
}
.place-row span {
  color: var(--gold-text);
  font-family: var(--serif);
  font-size: 1.35rem;
  font-weight: 500;
  font-variant-numeric: lining-nums tabular-nums;
}
.calc-empty {
  display: flex;
  gap: 16px;
  align-items: center;
  background: var(--limestone);
}
.plan.section-white .calc-card, .plan.section-white .calc-empty {
  background: var(--limestone);
}
.calc-empty svg {
  flex: none;
  width: 110px;
  height: auto;
  --isle-fill: var(--white);
}
.calc-empty b {
  display: block;
  color: var(--gold-text);
  font-family: var(--serif);
  font-size: 1.35rem;
  font-weight: 500;
}
.fare-chips {
  display: none;
}

/* 3.08 Footer */
.foot {
  background: var(--grain), radial-gradient(700px 420px at 8% 0%, rgba(26, 79, 214, .1), transparent 70%), linear-gradient(135deg, #15171c, #0a0b0e);
  margin-top: 44px;
  overflow: visible;
}
.foot-ridge {
  position: absolute;
  right: 0;
  bottom: 100%;
  left: 0;
  display: block;
  width: 100%;
  height: 44px;
  fill: #15171c;
}
.foot::before {
  overflow: hidden;
}

/* 3.09 Top bar follows the section under it */
.bar {
  transition: padding .2s var(--ease), background .3s var(--ease);
}
.bar.on-light {
  background: rgba(255, 255, 255, .95);
  box-shadow: 0 2px 12px rgba(11, 18, 32, .1);
}
.bar.on-light .brand-text b {
  color: #0a0b0e;
}
.bar.on-light .brand-text small {
  color: #1f4fc9;
}
.bar.on-light .brand-mark path {
  stroke: #1f4fc9;
}
.bar.on-light .menu-toggle span {
  background: #1f4fc9;
}
@media (min-width: 1361px) {
  .bar.on-light nav a:not(.btn), .bar.on-light .options-toggle, .bar.on-light .lang-menu > button {
    color: #0a0b0e;
  }
  .bar.on-light .options-toggle:hover, .bar.on-light .lang-menu > button:hover {
    background: rgba(11, 18, 32, .07);
  }
  .bar.on-light .options-toggle svg {
    stroke: #1f4fc9;
  }
}

/* 3.10 Dark mode keeps the rhythm */
html.pref-dark {
  --white: #15171c;
  --limestone: #1b1d23;
  --pale: #1b1d23;
  --paper: none;
  --on-light: #fff;
  --text: #f3efe6;
  --body: #d3d5d9;
  --muted: #bcc0c6;
  --line: #2c374b;
  --warm-line: #3a465c;
  --gold-text: #dcc58f;
  --gold-dark: #dcc58f;
}
html.pref-dark .section-white, html.pref-dark .highlights {
  background: #15171c;
}
html.pref-dark .section-cream {
  background: #1b1d23;
}
html.pref-dark .section-dark {
  background: var(--grain), #0a0b0e;
}
html.pref-dark .highlights svg {
  stroke: var(--gold);
}
html.pref-dark .bar.on-light {
  background: rgba(18, 28, 46, .95);
}
html.pref-dark .bar.on-light .brand-text b, html.pref-dark .bar.on-light nav a:not(.btn), html.pref-dark .bar.on-light .options-toggle, html.pref-dark .bar.on-light .lang-menu > button {
  color: #fff;
}

/* 3.11 Tablets */
@media (max-width: 1100px) {
  .home-intro-band {
    grid-template-columns: minmax(0, 1fr);
  }
  .areas-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .place-grid {
    columns: 2;
  }
}

/* 3.12 Phones */
@media (max-width: 760px) {
  .section {
    padding-block: 56px;
  }
  .section-dark {
    padding-block: 64px;
  }
  .home-intro p, .route-copy p, .intro {
    font-size: 1rem;
    font-size: 17px;
    line-height: 1.6;
  }
  .hero {
    padding-bottom: 0;
  }
  .hero > .widget {
    width: auto;
    margin-inline: calc(var(--gutter) * -1);
    margin-bottom: 0;
    padding-inline: var(--gutter);
    background: #fff;
    border-radius: 18px 18px 0 0;
    box-shadow: 0 -14px 30px rgba(11, 18, 32, .28);
  }
  .highlights {
    --text: #fff;
    --muted: #cfd2d6;
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 6px;
    padding: 14px var(--gutter);
    background: var(--grain), linear-gradient(135deg, #15171c, #0a0b0e);
  }
  .highlights li, .highlights li + li {
    display: block;
    flex: none;
    padding: 0;
    border: 0;
    color: #fff;
    text-align: center;
  }
  .highlights svg {
    width: 20px;
    height: 20px;
    margin: 0 auto 5px;
    padding: 7px;
    background: rgba(26, 79, 214, .15);
    stroke: var(--gold);
  }
  .highlights b {
    display: block;
    font-size: 1rem;
    line-height: 1.15;
    color: #fff;
  }
  .highlights span {
    display: none;
  }
  .story .story-text::before {
    position: static;
    display: block;
    margin-bottom: 4px;
    color: var(--gold-text);
    font-family: var(--sans);
    font-size: .8rem;
    letter-spacing: .2em;
  }
  .story.flip .story-media, .story .story-media {
    order: -1;
  }
  .story.section-dark .story-text {
    padding: 0;
    background: none;
    border: 0;
  }
  .areas-grid {
    grid-template-columns: minmax(0, 1fr);
  }
  .area-card summary::after {
    content: "";
    width: 9px;
    height: 9px;
    border-right: 2px solid var(--gold);
    border-bottom: 2px solid var(--gold);
    transform: rotate(45deg);
    transition: transform .3s var(--ease);
  }
  .area-card[open] summary::after {
    transform: rotate(-135deg);
  }
  .area-card summary {
    min-height: 40px;
    align-items: center;
  }
  .area-from {
    margin-left: auto;
  }
  .areas-grid a, .foot-routes a, .foot-lang a {
    display: flex;
    align-items: center;
    min-height: 48px;
  }
  .faq summary, .plan-tabs button, .seg button {
    min-height: 48px;
  }
  .route-grid {
    display: flex;
    gap: 14px;
    margin-inline: calc(var(--gutter) * -1);
    padding: 4px var(--gutter) 12px;
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    scroll-padding-inline: var(--gutter);
    scrollbar-width: none;
  }
  .route-grid .route-card {
    flex: 0 0 86%;
    scroll-snap-align: start;
  }
  .route-grid .route-card[hidden] {
    display: none;
  }
  .place-grid {
    columns: 1;
  }
  .fare-chips {
    display: flex;
    gap: 7px;
    margin: 14px calc(var(--gutter) * -1) 10px;
    padding-inline: var(--gutter);
    overflow-x: auto;
    scrollbar-width: none;
  }
  .fare-chips button {
    flex: none;
    min-height: 40px;
    padding: 7px 14px 5px;
    background: var(--white);
    border: 1px solid var(--warm-line);
    border-radius: var(--r-pill);
    color: var(--text);
  }
  .fare-chips button[aria-pressed="true"] {
    background: var(--navy);
    border-color: var(--navy);
    color: #fff;
  }
  .mobile-cta.on-dark {
    background: #fff;
  }
  .mobile-cta.on-dark .wa, .mobile-cta.on-dark .call {
    color: #1f4fc9;
    border-color: #1f4fc9;
  }
  .mobile-cta.on-dark .call svg {
    stroke: #1f4fc9;
  }
  .faq-band {
    flex-direction: column;
    align-items: stretch;
  }
  .faq-band .contact-buttons {
    display: grid;
  }
  .foot-ridge {
    height: 24px;
  }
}
@media (pointer: coarse) {
  :root {
    --grain: none;
    --paper: none;
  }
}

/* 3.13 The contact band and routes read as one dark block */
.faq-band.section-dark {
  box-shadow: none;
  padding-bottom: 36px;
}
.faq-band + .routes-band {
  border-top-color: rgba(255, 255, 255, .08);
}
.faq-band + .routes-band::before {
  display: none;
}
@media (min-width: 1101px) {
  .area-card:last-child {
    grid-column: 1 / -1;
  }
  .area-card:last-child ul {
    display: flex;
    flex-wrap: wrap;
    gap: 4px 28px;
  }
}
/* 3.20 CALMER FINISH: less gold, more space */
:root {
  --r-1: 8px;
  --r-2: 8px;
  --r-3: 8px;
  --gold-grad: #1f4fc9;
  --gutter: max(clamp(16px, 5vw, 80px), calc((100vw - 1280px) / 2));
  --ease: cubic-bezier(.2, .8, .2, 1);
  --paper: none;
  --grain: none;
  --navy: #0a0b0e;
}
body {
  font-size: 18px;
  line-height: 1.65;
}
.section {
  padding-block: clamp(56px, 8vw, 120px);
}
.section-dark {
  padding-block: clamp(64px, 8vw, 120px);
  background: #0a0b0e;
  border-top: 0;
  box-shadow: none;
}
.section-dark::before {
  display: none;
}
.eyebrow {
  color: var(--muted);
  font-size: .8rem;
  letter-spacing: .16em;
}
.eyebrow::before {
  display: none;
}
.section-dark .eyebrow {
  color: #b5bac2;
}
.section-dark a:not(.btn):not(.brand) {
  color: #fff;
}
.section-dark a:not(.btn):not(.brand):hover {
  color: #cfd2d6;
}
.text-link, .pref-dark .text-link {
  color: var(--text);
}
.intro-link, #routes-all, .section-dark #routes-all {
  color: inherit;
}
.highlights svg, .class-points svg, .included li::before {
  background-color: transparent;
}

/* 3.21 Buttons: gold for booking, white on dark, black on light */
.btn, .btn:hover {
  box-shadow: none;
}
.btn {
  transition: background .2s var(--ease), color .2s var(--ease), transform .2s var(--ease);
}
.btn:hover {
  transform: translateY(-1px);
}
.btn:active {
  transform: translateY(0);
}
.widget .btn[type="submit"] {
  min-height: 56px;
  background: var(--gold);
  font-size: 1.05rem;
}
.widget .btn[type="submit"]::before {
  display: none;
}
.route-card .btn, .section-dark .route-card .btn, .class-card .btn, .section-dark .class-card .btn {
  background: #fff;
  border: 0;
  color: #0a0b0e;
}
.route-card:hover .btn, .section-dark .route-card:hover .btn, .section-dark .class-card .btn:hover {
  background: #e8e8ea;
  color: #0a0b0e;
}
.class-card .btn::after {
  display: none;
}
.btn.quiet {
  background: #0a0b0e;
  border: 0;
  color: #fff;
}
.btn.quiet:hover {
  background: #24262b;
  color: #fff;
}
.section-dark .btn.quiet {
  background: #fff;
  color: #0a0b0e;
}
.section-dark .btn.quiet:hover {
  background: #e8e8ea;
  color: #0a0b0e;
}
.route-card::after, .class-card > .slides::after {
  display: none;
}
.route-card:hover, .class-card:hover {
  transform: translateY(-4px);
  box-shadow: var(--shadow-2);
  border-color: var(--line);
}
.class-card:hover {
  box-shadow: none;
}
.class-card:hover .slide {
  transform: none;
}
.class-card:hover .art, .studio .art {
  filter: none;
}
.section-dark {
  --shadow-1: 0 8px 22px rgba(0, 0, 0, .3);
  --shadow-2: 0 14px 34px rgba(0, 0, 0, .45);
}
.route-line, .route-map .route-line, .hero-route {
  filter: none;
}
.hero-dest {
  filter: none;
}

/* 3.22 Hero */
.hero {
  padding-block: clamp(26px, 4vh, 48px) 26px;
}
.hero h1, .hero > h1 {
  font-size: clamp(2.6rem, 4.8vw, 4.6rem);
  line-height: 1.04;
}
.hero h1 em {
  color: var(--gold);
}
.hero > h1, .hero > .hero-lead, .hero > .widget, .hero > .hero-foot {
  animation: fade-in .4s var(--ease) both;
  animation-delay: 0s;
}
@keyframes fade-in {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}
.hero-lead {
  padding-top: 0;
  margin-bottom: 14px;
  font-weight: 400;
}
.hero-lead::before {
  display: none;
}
.hero-chips {
  position: relative;
  z-index: 1;
  grid-column: 1;
  display: flex;
  flex-wrap: wrap;
  gap: 6px 18px;
  margin: 0 0 20px;
  padding: 0;
  color: #cfd2d6;
  font-size: .9rem;
  list-style: none;
}
.hero-map {
  grid-row: 1 / span 3;
  width: min(100%, 360px);
}
.hero-pulse {
  display: none;
}
.hero > .widget {
  margin-top: 18px;
  margin-bottom: 0;
}
.widget {
  padding: 12px 20px 12px;
  box-shadow: 0 20px 50px rgba(0, 0, 0, .4);
}
.tabs {
  display: inline-flex;
  gap: 2px;
  margin-bottom: 10px;
  padding: 3px;
  background: #efeadf;
  border: 0;
  border-radius: var(--r-pill);
}
.tabs button {
  padding: 5px 15px 3px;
  border: 0;
  border-radius: var(--r-pill);
  font-size: .9rem;
  color: var(--muted);
}
.tabs button[aria-pressed="true"] {
  background: #0a0b0e;
  color: #fff;
}
.tab-line {
  display: none;
}
.widget-foot {
  margin-top: 8px;
}
.widget-foot .earliest-note, .widget-foot #quick-note {
  display: none;
}
.widget-foot.has-dest .earliest-note, .widget-foot.has-dest #quick-note {
  display: inline-flex;
  align-items: center;
}
.pay-row {
  margin-left: auto;
  color: #70747a;
  font-size: .8rem;
}
.pay-logo {
  width: 32px;
  height: 20px;
  filter: grayscale(1);
  opacity: .75;
}
.pay-row::before {
  filter: grayscale(1);
}
.earliest-note {
  background-color: transparent;
  padding-left: 20px;
  background-position: 0 center;
  color: var(--muted);
}
.quick-swap {
  flex: none;
  width: 34px;
  min-width: 34px;
  height: 34px;
  min-height: 34px;
  padding: 0;
}
.highlights {
  position: relative;
  z-index: 1;
  grid-column: 1 / -1;
  grid-row: auto;
  margin: 22px 0 0;
  padding: 0;
  background: none;
  color: #fff;
}
.highlights li {
  color: #fff;
}
.highlights li + li {
  border-left-color: rgba(255, 255, 255, .15);
}
.highlights b {
  color: #fff;
  font-family: var(--serif);
  font-size: 1.35rem;
}
.highlights span {
  color: #b5bac2;
  font-size: .9rem;
}
.highlights svg {
  width: 22px;
  height: 22px;
  padding: 0;
  stroke: #cfd2d6;
}
.crumbs, body.booking-open .crumbs {
  padding-top: 14px;
}
.booking:not([hidden]) {
  padding-top: clamp(40px, 5vw, 64px);
}
html.pref-dark .highlights {
  background: none;
}

/* 3.23 Service classes */
.classes {
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 300px), 1fr));
}
.class-card > .slides {
  padding-bottom: 42.86%;
  background: #15171c;
  border-radius: 0;
}
.class-card .slide {
  padding: 14px 16% 10px;
}
.class-card .studio::after, .studio .art-reflect {
  display: none;
}
.class-card h3 {
  font-size: 1.75rem;
}
.class-card > div:last-child > p:first-of-type {
  min-height: 3.3em;
}
.class-specs {
  display: flex;
  flex-wrap: wrap;
  gap: 4px 18px;
  margin: 4px 0 14px;
  padding: 0;
  color: var(--body);
  font-size: .9rem;
  list-style: none;
}
.class-specs li {
  display: flex;
  gap: 6px;
  align-items: center;
}
.class-specs svg {
  width: 18px;
  height: 18px;
  padding: 0;
  background: none;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.6;
  stroke-linecap: round;
  stroke-linejoin: round;
}
.class-model {
  margin: -8px 0 12px;
  color: var(--muted);
  font-size: .9rem;
}
.class-card .class-price {
  margin-top: auto;
}
.class-price small {
  display: block;
  color: var(--muted);
  font-size: .8rem;
}
.class-price .from-word {
  color: var(--muted);
  font-family: var(--sans);
  font-size: .9rem;
}
.class-card .class-price b {
  display: inline;
  color: var(--gold);
}
.class-note {
  margin-top: 20px;
  color: var(--muted);
  font-size: .9rem;
}

/* 3.24 Trust sections, shown only when filled in */
.standard-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 240px), 1fr));
  gap: 18px 28px;
  margin-top: 22px;
  padding: 0;
  list-style: none;
}
.standard-grid li {
  padding-top: 12px;
  border-top: 1px solid var(--line);
}
.stats-row {
  display: flex;
  flex-wrap: wrap;
  gap: 20px 56px;
  margin-top: 8px;
}
.stats-row b {
  display: block;
  font-family: var(--serif);
  font-size: 2.5rem;
  font-weight: 500;
  line-height: 1.1;
}
.reviews-grid {
  display: flex;
  gap: 18px;
  overflow-x: auto;
  scroll-snap-type: x mandatory;
}
.review {
  flex: 0 0 min(86%, 440px);
  scroll-snap-align: start;
}
.driver-block {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: clamp(24px, 4vw, 60px);
  align-items: center;
}
.driver-block img {
  display: block;
  width: 100%;
  height: auto;
}
.timeline {
  display: grid;
  gap: 10px;
  margin-top: 16px;
  padding: 0;
  list-style: none;
  counter-reset: pick;
}
.partner-row {
  display: flex;
  flex-wrap: wrap;
  gap: 14px 36px;
  margin-top: 12px;
  color: var(--muted);
}
.trust-line {
  margin: 10px 0 0;
  color: var(--muted);
  font-size: .9rem;
}

/* 3.25 Airport panel with travel times */
.intro-panel svg {
  display: none;
}
.intro-panel {
  background: #0a0b0e;
}
.time-bars {
  display: grid;
  gap: 9px;
}
.intro-panel .time-bars li {
  display: grid;
  grid-template-columns: 112px minmax(0, 1fr) 54px;
  gap: 10px;
  align-items: center;
  padding: 0;
  border: 0;
  font-size: .9rem;
}
.time-bars i {
  display: block;
  height: 4px;
  background: #5c6068;
  width: var(--w);
}
.intro-panel li span:last-child {
  color: #fff;
  text-align: right;
}

/* 3.26 Stories, led by the picture */
.story, .story.flip {
  grid-template-columns: minmax(0, 2fr) minmax(0, 3fr);
  padding-block: clamp(40px, 5vw, 72px);
}
.story.flip {
  grid-template-columns: minmax(0, 3fr) minmax(0, 2fr);
}
.story .story-text, .story.section-dark .story-text {
  margin: 0;
  padding: 0;
  background: none;
  border: 0;
  box-shadow: none;
}
.story .story-text::before {
  display: none;
}
.story-media::after {
  display: none;
}
.story-art {
  border-radius: 0;
  box-shadow: none;
}
.wide-picture {
  height: clamp(260px, 34vw, 480px);
}
.wide-picture::after {
  background: linear-gradient(0deg, rgba(10, 11, 14, .45), rgba(10, 11, 14, .1));
}
.wide-copy::after {
  display: none;
}

/* 3.27 Questions in two columns */
.faq-head {
  display: flex;
  flex-wrap: wrap;
  gap: 10px 30px;
  justify-content: space-between;
  align-items: end;
  margin-bottom: 20px;
}
.faq-head .faq-tools {
  flex: 0 1 380px;
}
.faq-list {
  column-count: 2;
  column-gap: 40px;
}
.faq-list details {
  break-inside: avoid;
}
.faq details[open] {
  border-left-color: transparent;
}
.faq details[open] summary::after, .faq summary::after, .faq summary:hover::after {
  border-color: var(--muted);
}
.faq-more-button {
  display: none;
}
.faq-band.section-dark {
  display: block;
  padding-block: 44px;
  text-align: center;
}
.faq-band > div:first-child {
  margin-bottom: 14px;
}
.faq-band .contact-buttons {
  justify-content: center;
}
.faq-band h3 {
  font-size: 1.35rem;
}
.faq-band .contact-buttons a, .faq-band .contact-buttons a.primary {
  min-width: 0;
  min-height: 44px;
  padding: 7px 18px 5px;
  background: none;
  border: 1px solid rgba(255, 255, 255, .35);
  color: #fff;
}
.faq-band .contact-buttons a:hover, .faq-band .contact-buttons a.primary:hover {
  background: rgba(255, 255, 255, .1);
  color: #fff;
}

/* 3.28 Prices */
.place-row {
  padding-block: 7px 5px;
  border: 0;
  border-radius: 4px;
}
.place-row:nth-of-type(even) {
  background: var(--limestone);
}
.place-row span {
  color: var(--text);
  font-family: var(--sans);
  font-size: 1rem;
  font-weight: 500;
}
.fare-group h3::after {
  display: none;
}
.route-top b, .section-dark .route-top b {
  color: var(--gold);
}
.route-pill {
  padding-left: 10px;
  background-image: none;
}
.section-dark .route-pill {
  background-color: rgba(255, 255, 255, .1);
  color: #fff;
}
.routes-band.section-dark {
  background: #0a0b0e;
}
.tool-panel .route-map, .route-map, .map {
  background: #123036;
}
.area-card {
  position: relative;
  background: #15171c;
  border-color: rgba(255, 255, 255, .08);
}
.section-dark .area-card h3 {
  color: #fff;
}
.area-thumb {
  position: absolute;
  top: 12px;
  right: 12px;
  width: 50px;
  height: auto;
  --isle-fill: rgba(255, 255, 255, .07);
  --isle-stroke: #5c6068;
  opacity: .9;
}
.area-thumb circle {
  fill: #fff;
}
.area-from {
  margin-right: 58px;
}
.area-card:last-child ul {
  display: block;
}
.area-card:last-child {
  grid-column: auto;
}

/* 3.29 Top bar and footer */
#main-nav {
  gap: 30px;
}
.bar nav a:not(.btn) {
  font-size: .95rem;
  letter-spacing: .02em;
}
.nav-line {
  display: none;
}
.wa-float, .to-top {
  display: none;
}
@media (min-width: 1361px) {
  body.book-in-view .bar nav .btn {
    visibility: hidden;
  }
}
.foot {
  margin-top: 0;
  background: #0a0b0e;
}
.foot-ridge, .foot::before {
  display: none;
}
.foot {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}
.foot-column summary {
  display: block;
  list-style: none;
  cursor: default;
}
.foot-column summary::-webkit-details-marker {
  display: none;
}
.foot-column ul {
  padding: 0;
  list-style: none;
}
.foot-column a, .foot-about a:not(.brand) {
  color: #cfd2d6;
  text-decoration: none;
}
.foot-column a:hover {
  color: #fff;
}
.foot-lang-select {
  width: 100%;
  max-width: 200px;
  min-height: 42px;
  margin-top: 12px;
  padding: 6px 10px;
  background: #15171c;
  border: 1px solid rgba(255, 255, 255, .22);
  border-radius: var(--r-1);
  color: #fff;
}
.foot-pay {
  grid-column: 1 / -1;
  display: flex;
  gap: 8px;
  align-items: center;
  color: #8d9096;
  font-size: .8rem;
}
.foot-company {
  color: #b5bac2;
  font-size: .9rem;
}
.foot-company p {
  margin: 3px 0;
}
.foot .contact-buttons {
  display: grid;
  grid-auto-flow: row;
}

/* 3.30 Voucher when printed */
@media print {
  .bar, .hero, .crumbs, main > section:not(.booking), .foot, .mobile-cta, .mini-bar, .map, .summary-links, .steps, .progress, .step-count, .secure {
    display: none;
  }
  .booking, .builder {
    display: block;
    padding: 0;
    background: #fff;
  }
  .panel {
    position: static;
    border: 0;
  }
  .sign::before {
    content: "Mallorca Transfer · +34 615 886 553";
    display: block;
    margin-bottom: 14px;
    font-weight: 600;
  }
}

/* 3.31 Booking box one question at a time, phones */
.m-steps {
  display: none;
}
@media (max-width: 1100px) {
  .faq-list {
    column-count: 1;
  }
  .story, .story.flip {
    grid-template-columns: minmax(0, 1fr);
  }
  .foot {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .foot-routes, .foot-pay, .foot-bottom {
    grid-column: 1 / -1;
  }
}
@media (max-width: 760px) {
  body {
    font-size: 17px;
    line-height: 1.65;
  }
  .section, .section-dark {
    padding-block: 64px;
  }
  .hero {
    overflow: hidden;
    padding-bottom: 0;
  }
  .hero h1, .hero > h1 {
    font-size: 2.6rem;
  }
  .hero-lead {
    font-size: 17px;
    font-weight: 400;
  }
  .hero > .widget {
    margin-top: 4px;
  }
  .highlights {
    display: flex;
    gap: 10px;
    order: 9;
    margin: 0 calc(var(--gutter) * -1);
    padding: 14px var(--gutter);
    background: #0a0b0e;
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    scrollbar-width: none;
  }
  .highlights li, .highlights li + li {
    display: grid;
    flex: 0 0 74%;
    grid-template-columns: auto 1fr;
    gap: 0 10px;
    padding: 12px;
    background: #15171c;
    border-radius: var(--r-1);
    scroll-snap-align: start;
    text-align: left;
  }
  .highlights svg {
    grid-row: span 2;
    width: 22px;
    height: 22px;
    margin: 2px 0 0;
    padding: 0;
    background: none;
  }
  .highlights span {
    display: block;
  }
  .tabs {
    width: 100%;
  }
  .tabs button {
    flex: 1;
    min-height: 40px;
  }
  .m-steps {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 4px;
    margin-bottom: 12px;
  }
  .m-steps span {
    height: 3px;
    background: var(--line);
    border-radius: 2px;
  }
  .m-steps span.on {
    background: var(--gold);
  }
  .widget-fields {
    grid-template-columns: minmax(0, 1fr);
  }
  .widget[data-mstep="0"] .widget-fields > :not(.route-pair):not(.m-nav), .widget[data-mstep="1"] .widget-fields > :not(.m-date):not(.m-nav), .widget[data-mstep="2"] .widget-fields > :not(.m-time):not(.m-nav), .widget[data-mstep="3"] .widget-fields > :not(.pax-label):not(.btn):not(.m-nav) {
    display: none;
  }
  .widget[data-mstep="3"] #m-next {
    display: none;
  }
  .m-nav {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    gap: 8px;
    grid-column: 1 / -1;
  }
  .m-nav .btn {
    min-height: 52px;
  }
  #m-back[hidden] {
    display: none;
  }
  #m-back {
    padding-inline: 18px;
    background: #efeadf;
    color: #0a0b0e;
  }
  .widget .btn[type="submit"] {
    min-height: 56px;
  }
  .fare-chips button {
    min-height: 48px;
  }
  .how-steps {
    gap: 0;
  }
  .how-steps li {
    padding: 0 0 18px 58px;
  }
  .how-steps li::before {
    position: absolute;
    left: 0;
    top: 0;
    margin: 0;
  }
  .how-steps li:not(:last-child)::after {
    display: block;
    top: 44px;
    bottom: 0;
    left: 21px;
    right: auto;
    width: 2px;
    height: auto;
    background: var(--gold);
  }
  .faq-list details.m-hidden {
    display: none;
  }
  .faq-more-button {
    display: block;
    width: 100%;
    margin-top: 14px;
  }
  .faq-more-button[hidden] {
    display: none;
  }
  .faq-head .faq-tools {
    flex: 1 1 100%;
  }
  .foot {
    grid-template-columns: minmax(0, 1fr);
  }
  .foot-column summary {
    display: flex;
    justify-content: space-between;
    min-height: 48px;
    align-items: center;
    cursor: pointer;
  }
  .foot-column summary::after {
    content: "+";
    color: #cfd2d6;
  }
  .foot-column[open] summary::after {
    content: "−";
  }
  .foot-column a {
    display: flex;
    align-items: center;
    min-height: 48px;
  }
  .story, .story.flip {
    padding-block: 44px;
  }
  .intro-panel .time-bars li {
    grid-template-columns: 96px minmax(0, 1fr) 50px;
  }
}

/* 3.32 Phones: the phone's picker behind a clean field */
.native-wrap {
  position: relative;
  display: block;
}
.native-wrap .pick-btn {
  pointer-events: none;
}
.native-wrap input, .native-wrap select {
  position: absolute;
  inset: 0;
  z-index: 1;
  width: 100%;
  height: 100%;
  min-height: 0;
  padding: 0;
  opacity: 0;
  font-size: 16px;
}
html.pref-dark .tabs {
  background: #22252c;
}
html.pref-dark .section-white, html.pref-dark .section-cream {
  background: #15171c;
}
html.pref-dark .section-dark {
  background: #0a0b0e;
}
html.pref-dark {
  --white: #15171c;
  --limestone: #1b1d23;
  --pale: #1b1d23;
  --line: #2c2f36;
  --field: #3a3d45;
}
html.pref-dark .btn.quiet {
  background: #fff;
  color: #0a0b0e;
}
html.pref-dark .route-card .btn {
  background: #fff;
  color: #0a0b0e;
}
.m-nav {
  display: none;
}
.story .story-text, .story.flip .story-text, .story.section-dark .story-text {
  margin: 0;
}
@media (max-width: 760px) {
  .m-nav {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    gap: 8px;
  }
  .widget[data-mstep="3"] .m-nav {
    grid-template-columns: minmax(0, 1fr);
  }
  .widget .m-nav .btn {
    grid-column: auto;
    width: auto;
    margin: 0;
  }
  .native-wrap .pick-btn {
    display: flex;
    align-items: center;
    color: var(--text);
    font-size: 1rem;
    font-weight: 400;
    letter-spacing: 0;
    text-transform: none;
  }
  .area-thumb {
    display: none;
  }
  .area-from {
    margin-right: 10px;
  }
  .intro-panel .time-bars li {
    grid-template-columns: 96px minmax(0, 1fr) 62px;
    white-space: nowrap;
  }
}
/* 3.40 Depth sections */
.route-answer {
  font-size: 1.15rem;
  color: var(--text);
}
.compare-table {
  width: 100%;
  margin-top: 16px;
  border-collapse: collapse;
  font-size: .95rem;
}
.compare-table th, .compare-table td {
  padding: 10px 8px 8px;
  border-bottom: 1px solid var(--line);
  text-align: left;
  font-weight: 400;
}
.compare-table thead th {
  font-family: var(--serif);
  font-size: 1.15rem;
  font-weight: 500;
}
.compare-table td:nth-child(2), .compare-table thead th:nth-child(2) {
  background: var(--limestone);
}
.route-links {
  display: flex;
  flex-wrap: wrap;
  gap: 8px 18px;
  margin-top: 14px;
}
.route-links a {
  color: var(--text);
  font-weight: 500;
}
.area-hub-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 260px), 1fr));
  gap: 10px 26px;
  margin-top: 18px;
  padding: 0;
  list-style: none;
}
.area-hub-grid a {
  display: flex;
  justify-content: space-between;
  gap: 10px;
  padding: 10px 0 8px;
  border-bottom: 1px solid var(--line);
  color: var(--text);
  text-decoration: none;
}
.area-hub-grid b {
  color: var(--gold-text);
  font-weight: 500;
}
.not-found {
  padding: 26px var(--gutter) 0;
  font-weight: 500;
}
.guide-copy p {
  margin-top: 12px;
}
.prices-updated {
  margin-top: 10px;
  color: var(--muted);
  font-size: .9rem;
}

/* 3.41 Booking box */
.combo-price {
  float: right;
  color: var(--gold-text);
}
.note-others {
  margin-left: 12px;
  color: var(--muted);
  font-size: .9rem;
}
.widget:focus-within {
  box-shadow: inset 0 2px 0 var(--gold), 0 20px 50px rgba(0, 0, 0, .4);
}
.resume-banner {
  position: relative;
  z-index: 1;
  grid-column: 1 / -1;
  display: inline-flex;
  justify-self: start;
  gap: 10px;
  margin-bottom: 10px;
  padding: 6px 14px 4px;
  background: rgba(255, 255, 255, .1);
  border: 0;
  border-radius: var(--r-pill);
  color: #fff;
}
.resume-banner[hidden] {
  display: none;
}
.seat-guide {
  margin: 4px 0 10px;
  color: var(--muted);
  font-size: .9rem;
}

/* 3.42 Hero and icons */
.hero {
  border-radius: 0 0 50% 50% / 0 0 26px 26px;
  overflow: hidden;
}
.has-hero-photo .hero-map {
  opacity: .4;
}
.highlights svg {
  stroke: var(--gold);
  stroke-width: 1.6;
}
.highlights b {
  font-size: 1.75rem;
}
.class-points svg, .class-specs svg, .phone-link svg, .contact-buttons svg, .options-toggle svg, .mobile-cta .call svg, .mobile-cta .wa svg, .wa-float svg, .secure svg {
  stroke-width: 1.6;
}
.class-card > .slides {
  background: radial-gradient(ellipse at 50% 55%, #33363f 0%, #181a20 55%, #101216 100%);
}
.class-card .class-price b, .route-top b {
  font-size: 2rem;
}
.class-card .btn:hover, .section-dark .class-card .btn:hover {
  background: var(--gold);
  color: #0a0b0e;
}
.how-steps li.reveal::before {
  transition: background .6s var(--ease), color .6s var(--ease);
}
.how-steps li.reveal.seen::before {
  background: var(--gold);
  color: #0a0b0e;
}
.included li::before {
  background-color: var(--gold);
}
.faq summary {
  font-family: var(--serif);
  font-size: 1.35rem;
  font-weight: 500;
  line-height: 1.2;
}

/* 3.43 Areas */
@media (min-width: 1101px) {
  .areas-grid {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }
}
.area-thumb {
  --isle-fill: #f4ecdc;
  --isle-stroke: #f4ecdc;
  width: 44px;
}
.area-thumb circle {
  fill: var(--gold);
  stroke: #0a0b0e;
  stroke-width: 6;
}
.area-from {
  margin-right: 52px;
}
.area-card li {
  display: flex;
  justify-content: space-between;
  gap: 8px;
}
.town-from {
  color: var(--gold);
  font-size: .9rem;
  opacity: 0;
  transition: opacity .2s var(--ease);
}
.area-card li:hover .town-from, .area-card li:focus-within .town-from {
  opacity: 1;
}
.area-card h3 a {
  color: inherit;
  text-decoration: none;
}
.route-card.has-photo {
  position: relative;
}
.route-strip {
  height: 150px;
}
.route-card.has-photo .route-map {
  position: absolute;
  top: 96px;
  right: 10px;
  z-index: 2;
  width: 90px;
  border: 1px solid #fff;
}

/* 3.44 Receipt and summary */
.calc-results {
  gap: 0;
  padding: 8px 20px;
  background: var(--limestone);
  border-radius: var(--r-2);
}
.calc-card, .plan.section-white .calc-card {
  background: none;
  border: 0;
  border-bottom: 1px dashed var(--warm-line);
  border-radius: 0;
  box-shadow: none;
  padding-inline: 0;
}
.calc-card.best {
  box-shadow: none;
}
.calc-card:last-child {
  border-bottom: 0;
}
.calc-total {
  font-size: 1.75rem;
}
.panel {
  --white: #15171c;
  --text: #fff;
  --body: #cfd2d6;
  --muted: #b5bac2;
  --line: rgba(255, 255, 255, .1);
  --gold-text: #1f4fc9;
  --gold-dark: #1f4fc9;
  background: #15171c;
  color: #fff;
}
.panel .sign-lines b {
  color: #fff;
}
.panel .secure {
  color: #b5bac2;
}
.progress {
  grid-template-columns: repeat(3, 1fr);
}
.extras-title {
  margin-top: 26px;
  padding-top: 22px;
  border-top: 1px solid var(--line);
  font-size: 1.75rem;
}

/* 3.45 Footer */
.foot-routes {
  display: grid;
}
.foot-routes li a {
  color: #cfd2d6;
}

/* 3.46 Phones */
.m-head, .m-date-strip, .m-time-chips {
  display: none;
}
@media (max-width: 760px) {
  .m-head {
    display: flex;
    gap: 10px;
    align-items: center;
    margin-bottom: 10px;
    color: var(--text);
    font-weight: 500;
  }
  .m-head button {
    width: 44px;
    min-width: 44px;
    height: 44px;
    padding: 0;
    background: #efeadf;
    border: 0;
    border-radius: 50%;
    font-size: 1.15rem;
    color: #0a0b0e;
  }
  .m-head button[hidden] {
    display: none;
  }
  .m-head b {
    margin-left: auto;
    color: var(--gold-text);
    font-family: var(--serif);
    font-size: 1.35rem;
    font-weight: 500;
  }
  #m-back {
    display: none;
  }
  .m-nav {
    grid-template-columns: minmax(0, 1fr);
  }
  .pay-logo {
    filter: none;
    opacity: 1;
  }
  .hero-map {
    opacity: .1;
    top: auto;
    bottom: 40%;
  }
  .btn:active, button:active {
    transform: scale(.97);
  }
  .combo-box.full .combo-list {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px;
  }
  .combo-box.full .combo-area {
    grid-column: 1 / -1;
    padding-inline: 0;
  }
  .combo-box.full .combo-item {
    min-height: 58px;
    padding: 12px;
    background: var(--limestone);
    border: 0;
    border-radius: var(--r-1);
  }
  .combo-price {
    display: block;
    float: none;
    font-size: .9rem;
  }
  .m-date-strip {
    display: flex;
    gap: 7px;
    margin: 8px calc(var(--gutter) * -1) 0;
    padding: 0 var(--gutter) 6px;
    overflow-x: auto;
    scrollbar-width: none;
  }
  .m-date-strip button {
    flex: none;
    min-height: 48px;
    padding: 6px 13px 4px;
    background: var(--limestone);
    border: 1px solid var(--line);
    border-radius: var(--r-1);
    color: var(--text);
    font-size: .9rem;
    font-weight: 400;
    letter-spacing: 0;
    text-transform: none;
  }
  .m-date-strip button.on, .m-time-chips button.on {
    background: #0a0b0e;
    color: #fff;
  }
  .m-time-chips {
    display: block;
    max-height: 300px;
    margin-top: 10px;
    overflow-y: auto;
    font-size: .9rem;
    font-weight: 400;
    letter-spacing: 0;
    text-transform: none;
  }
  .m-time-chips h4 {
    margin: 8px 0 6px;
    font-size: .9rem;
    font-weight: 500;
  }
  .m-time-chips div {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 6px;
  }
  .m-time-chips button {
    min-height: 44px;
    padding: 0;
    background: var(--limestone);
    border: 1px solid var(--line);
    border-radius: var(--r-1);
    color: var(--text);
  }
  .has-chips .native-wrap {
    display: none;
  }
  .dock {
    cursor: pointer;
  }
  .cta-route {
    font-weight: 400;
  }
  .compare-table {
    font-size: .9rem;
  }
  .compare-table th, .compare-table td {
    padding-inline: 4px;
  }
}
@media (max-width: 380px) {
  .hero h1, .hero > h1 {
    font-size: 2.25rem;
  }
  .brand-text b {
    font-size: .8rem;
  }
}
.field input[name="address"] {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%231f4fc9' stroke-width='1.6' stroke-linecap='round'%3E%3Cpath d='M5 21V4h14v17M3 21h18M9 8h2M13 8h2M9 12h2M13 12h2M10 21v-4h4v4'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: 12px center;
  background-size: 18px;
}
.field input[name="flight_number"], .field input[name="return_flight"] {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%231f4fc9' stroke-width='1.6' stroke-linejoin='round'%3E%3Cpath d='M21 3 3 10.5l7 2.8L13 21z'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: 12px center;
  background-size: 18px;
}
.highlights svg {
  width: 26px;
  height: 26px;
}
.highlights svg * {
  stroke: var(--gold);
  fill: none;
}
.resume-banner {
  grid-column: 1;
  margin: 0 0 12px;
}
.resume-banner {
  align-self: start;
  align-items: center;
  height: auto;
  min-height: 36px;
}
/* 3.60 Content shows by default; scrolling adds only a small lift */
.js .reveal {
  opacity: 1;
  transform: translateY(10px);
  transition: transform .5s var(--ease);
}
.js .reveal.seen {
  transform: none;
}

/* 3.61 Small booking bar docks to the bottom edge */
.mini-bar {
  top: auto;
  right: 0;
  bottom: 0;
  left: 0;
  justify-content: center;
  border: 0;
  border-top: 1px solid var(--gold);
  border-radius: 0;
  transform: none;
}
@media (min-width: 1361px) {
  body.book-in-view .bar nav .btn {
    display: none;
    visibility: visible;
  }
}

/* 3.62 One serif scale */
h1, .hero h1, .hero > h1 {
  font-size: clamp(2.6rem, 4.6vw, 4.2rem);
}
h2 {
  font-size: clamp(2rem, 3vw, 2.6rem);
}
h3 {
  font-size: 1.5rem;
}
.class-card h3, .faq-band h3 {
  font-size: 1.5rem;
}

/* 3.63 Hero */
.hero {
  padding-bottom: 44px;
}
.highlights svg, .highlights svg * {
  stroke: #1f4fc9;
  stroke-width: 3;
}
.highlights svg {
  width: 28px;
  height: 28px;
  opacity: 1;
}
.hero-route-link {
  position: relative;
  z-index: 1;
  grid-column: 1;
  margin: -8px 0 12px;
}
.hero-route-link a {
  color: #fff;
  font-size: .9rem;
  text-decoration: underline;
  text-underline-offset: 3px;
}

/* 3.64 Route page in two columns */
.route-intro {
  display: grid;
  grid-template-columns: minmax(0, 1.5fr) minmax(300px, 1fr);
  gap: clamp(28px, 4vw, 64px);
  align-items: start;
}
.route-side {
  position: sticky;
  top: 84px;
  overflow: hidden;
  background: var(--white);
  border: 1px solid var(--line);
  border-radius: var(--r-2);
  box-shadow: var(--shadow-1);
}
.route-side .route-map {
  border-radius: 0;
}
.route-side-body {
  padding: 18px 20px 20px;
}
.route-side .route-table {
  max-width: none;
  margin-top: 0;
}
.route-side .btn {
  display: block;
  margin-top: 14px;
  background: var(--gold);
  color: #0a0b0e;
  text-align: center;
}
.route-copy {
  max-width: none;
}
.route-copy p {
  font-size: 18px;
  line-height: 1.65;
}
.route-table {
  max-width: none;
}
.compare-table .yes {
  color: var(--gold-text);
  font-weight: 500;
}
.compare-table .yes::before {
  content: "✓ ";
}
.compare-table .soft {
  color: var(--muted);
}
.nearby small {
  margin-left: 5px;
  color: var(--muted);
  font-size: .8rem;
}
.leave-table {
  width: 100%;
  margin-top: 12px;
  border-collapse: collapse;
}
.leave-table th, .leave-table td {
  padding: 8px 4px 6px;
  border-bottom: 1px solid var(--line);
  text-align: left;
  font-weight: 400;
}
.leave-table td {
  font-weight: 500;
}

/* 3.65 Plain pages */
.plain-table {
  width: 100%;
  margin-top: 16px;
  border-collapse: collapse;
  font-size: .95rem;
}
.plain-table th, .plain-table td {
  padding: 8px 6px 6px;
  border-bottom: 1px solid var(--line);
  text-align: left;
  font-weight: 400;
}
.plain-table thead th {
  font-weight: 500;
}
.plain-table td {
  font-variant-numeric: lining-nums tabular-nums;
}
.table-wrap {
  overflow-x: auto;
}
.all-links {
  columns: 3;
  column-gap: 28px;
  margin-top: 14px;
  padding: 0;
  list-style: none;
}
.all-links li {
  break-inside: avoid;
  padding: 4px 0;
}
.all-links a {
  color: var(--text);
}
.hub-intro {
  max-width: 62ch;
  margin-top: 8px;
}

/* 3.66 Details */
.time-bars i {
  background: var(--gold);
}
.pay-logo, .foot-pay .pay-logo {
  filter: none;
  opacity: 1;
}
.pay-row::before {
  filter: none;
}
.pay-logo .mc {
  fill: #d0453f;
}
.pay-logo .mc2 {
  fill: #eda33b;
  opacity: .92;
}
.foot-pay .pay-logo rect {
  fill: #fff;
}
.faq summary::after {
  content: "+";
  width: auto;
  height: auto;
  margin-right: 2px;
  border: 0;
  color: var(--gold-text);
  font-family: var(--sans);
  font-size: 1.5rem;
  font-weight: 400;
  line-height: 1;
  transform: none;
  transition: transform .2s var(--ease);
}
.faq details[open] summary::after {
  transform: rotate(45deg);
}
.combo-star {
  margin-left: 5px;
  color: var(--gold-text);
}
.card-skeleton {
  min-height: 380px;
  border-radius: var(--r-2);
  background: linear-gradient(100deg, #15171c 20%, #24262b 40%, #15171c 60%);
  background-size: 200% 100%;
  animation: shimmer 1.2s linear infinite;
}
@keyframes shimmer {
  to {
    background-position: -200% 0;
  }
}
.lang-suggest {
  position: fixed;
  right: 16px;
  bottom: 16px;
  z-index: 40;
  display: flex;
  gap: 12px;
  align-items: center;
  padding: 10px 14px;
  background: #fff;
  border-radius: var(--r-2);
  box-shadow: var(--shadow-2);
  color: #0a0b0e;
}
.lang-suggest a {
  color: #0a0b0e;
  font-weight: 500;
}
.lang-suggest button {
  width: 30px;
  height: 30px;
  padding: 0;
  background: none;
  border: 0;
  color: #4d5157;
}
.lang-suggest[hidden] {
  display: none;
}
.recent-row {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  align-items: center;
  margin-top: 14px;
  color: var(--body);
  font-size: .9rem;
}
.recent-row[hidden] {
  display: none;
}
.recent-row a {
  padding: 4px 12px 2px;
  border: 1px solid var(--warm-line);
  border-radius: var(--r-pill);
  text-decoration: none;
}
.night-note {
  margin-top: 6px;
  color: var(--muted);
  font-size: .9rem;
  font-weight: 400;
  letter-spacing: 0;
  text-transform: none;
}
.night-note[hidden] {
  display: none;
}
@media (max-width: 1100px) {
  .route-intro {
    grid-template-columns: minmax(0, 1fr);
  }
  .route-side {
    position: static;
    order: -1;
  }
  .all-links {
    columns: 2;
  }
}
@media (max-width: 760px) {
  .hero {
    padding-bottom: 0;
  }
  h1, .hero h1, .hero > h1 {
    font-size: 2.6rem;
  }
  h2 {
    font-size: 2rem;
  }
  .highlights {
    -webkit-mask-image: linear-gradient(90deg, #000 88%, transparent);
    mask-image: linear-gradient(90deg, #000 88%, transparent);
  }
  .mini-bar {
    display: none;
  }
  .route-copy.collapsed > p:nth-of-type(n+4) {
    display: none;
  }
  .read-more {
    width: 100%;
    margin-top: 10px;
  }
  .read-more[hidden] {
    display: none;
  }
  .nearby a, .crumbs a {
    display: inline-flex;
    align-items: center;
    min-height: 48px;
  }
  .all-links {
    columns: 1;
  }
  .all-links a {
    display: flex;
    align-items: center;
    min-height: 48px;
  }
  .lang-suggest {
    right: 8px;
    bottom: 76px;
    left: 8px;
  }
}
@media (min-width: 761px) {
  .read-more {
    display: none;
  }
}
@media (max-width: 380px) {
  h1, .hero h1, .hero > h1 {
    font-size: 2.2rem;
  }
}
.how, .story, .faq, .plan, .routes-band, .home-intro-band, .areas-band, .wide-picture {
  content-visibility: visible;
}
@media (min-width: 1101px) {
  .route-side {
    order: 2;
  }
}
@media (max-width: 760px) {
  .hero {
    border-radius: 0;
  }
  .highlights b {
    font-size: 1.15rem;
    line-height: 1.2;
  }
  .highlights span {
    font-size: .8rem;
    line-height: 1.3;
  }
  .highlights li, .highlights li + li {
    align-items: start;
  }
  .highlights svg {
    width: 24px;
    height: 24px;
  }
}
/* 3.70 Fixes */
.currency {
  font-size: .5em;
  vertical-align: .75em;
}
.route-intro {
  padding-top: 36px;
}
@media (min-width: 1361px) {
  body.book-in-view .bar nav .btn {
    display: inline-block;
    visibility: hidden;
  }
}
.class-foot {
  display: flex;
  flex-wrap: wrap;
  gap: 10px 14px;
  align-items: center;
  margin-top: 20px;
}
.class-note {
  display: inline-flex;
  gap: 8px;
  align-items: center;
  margin: 0;
  padding: 7px 14px 5px;
  background: rgba(255, 255, 255, .08);
  border-radius: var(--r-pill);
  color: #cfd2d6;
}
.class-note svg {
  width: 16px;
  height: 16px;
  fill: none;
  stroke: var(--gold);
  stroke-width: 1.6;
  stroke-linecap: round;
  stroke-linejoin: round;
}
.compare-open {
  min-height: 44px;
  padding: 4px 8px;
  background: none;
  border: 0;
  color: #fff;
  text-decoration: underline;
  text-underline-offset: 3px;
}
.mini-bar {
  padding: 10px 18px;
  box-shadow: 0 -10px 30px rgba(10, 11, 14, .22);
}
.mini-bar svg {
  width: 20px;
  height: 20px;
  fill: none;
  stroke: var(--gold-text);
  stroke-width: 1.6;
  stroke-linecap: round;
  stroke-linejoin: round;
}
.mini-bar .btn {
  min-height: 44px;
  padding: 9px 26px 7px;
  border-radius: var(--r-1);
  font-size: 1rem;
}

/* 3.71 Compare window */
.compare-dialog {
  width: min(94vw, 760px);
  padding: 26px;
  border: 0;
  border-radius: var(--r-2);
  background: var(--white);
  color: var(--text);
}
.compare-dialog::backdrop {
  background: rgba(5, 8, 12, .7);
}
.compare-dialog h2 {
  margin-bottom: 12px;
  font-size: 2rem;
}
.compare-dialog .dialog-close {
  top: 10px;
  right: 10px;
}
.compare-dialog th, .compare-dialog td {
  padding: 10px 6px 8px;
  border-bottom: 1px solid var(--line);
  text-align: left;
  font-weight: 400;
}
.compare-dialog table {
  width: 100%;
  border-collapse: collapse;
}
.compare-dialog thead th {
  font-family: var(--serif);
  font-size: 1.15rem;
  font-weight: 500;
}
.compare-dialog td {
  font-variant-numeric: lining-nums tabular-nums;
}

/* 3.72 Route side card and price notes */
.side-pax {
  display: flex;
  gap: 10px;
  align-items: center;
  margin-top: 12px;
}
.side-pax span {
  flex: 1;
}
.side-pax button {
  width: 44px;
  height: 44px;
  padding: 0;
  background: var(--gold-50);
  border: 0;
  border-radius: var(--r-1);
  color: var(--text);
  font-size: 1.15rem;
}
.side-pax output {
  min-width: 22px;
  font-weight: 500;
  text-align: center;
}
.side-each, .price-policy, .approx {
  margin: 6px 0 0;
  color: var(--muted);
  font-size: .9rem;
}
.price-policy {
  flex-basis: 100%;
}
.fixed-badge {
  display: inline-block;
  margin-top: 8px;
  padding: 3px 11px 1px;
  background: var(--gold-50);
  border-radius: var(--r-pill);
  font-size: .8rem;
}
.compare-table td:nth-child(2), .compare-table thead th:nth-child(2) {
  background: rgba(26, 79, 214, .13);
}
.leave-link {
  display: inline-block;
  margin: 0 0 12px;
  color: var(--gold-text);
  font-weight: 500;
}
.leave-link[hidden], .invoice-fields[hidden], .bag-note[hidden], .trip-timeline[hidden] {
  display: none;
}
.invoice-fields {
  margin-top: 10px;
}
.bag-note {
  margin-top: 10px;
  padding: 9px 12px 7px;
  background: var(--gold-50);
  border-radius: var(--r-1);
  font-size: .9rem;
}
.trip-timeline {
  display: grid;
  gap: 0;
  margin: 16px 0 20px;
  padding: 0;
  list-style: none;
}
.trip-timeline li {
  position: relative;
  padding: 0 0 14px 24px;
  border-left: 2px solid var(--gold);
  margin-left: 5px;
}
.trip-timeline li:last-child {
  border-left-color: transparent;
  padding-bottom: 0;
}
.trip-timeline li::before {
  content: "";
  position: absolute;
  top: 5px;
  left: -7px;
  width: 12px;
  height: 12px;
  background: var(--gold);
  border-radius: 50%;
}
.trip-timeline small {
  display: block;
  color: var(--muted);
  font-size: .9rem;
}

/* 3.73 Plain pages */
.region-layout {
  display: grid;
  grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr);
  gap: clamp(24px, 4vw, 56px);
  align-items: start;
  margin-top: 16px;
}
.region-map {
  display: block;
  width: 100%;
  height: auto;
  padding: 14px;
  background: #123036;
  border-radius: var(--r-2);
  --isle-fill: #f4ecdc;
  --isle-stroke: var(--gold);
}
.region-map circle {
  fill: var(--gold);
  stroke: #0a0b0e;
  stroke-width: 3;
}
.area-hub-grid {
  grid-template-columns: minmax(0, 1fr);
  margin-top: 0;
}
.area-hub-grid a {
  align-items: center;
  min-height: 48px;
}
.price-tools {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 16px;
}
.price-chips {
  display: none;
}
.table-wrap {
  max-height: 78vh;
  overflow: auto;
  margin-top: 14px;
}
.plain-table {
  margin-top: 0;
}
.plain-table caption {
  padding-bottom: 8px;
  color: var(--muted);
  font-size: .9rem;
  text-align: left;
}
.plain-table thead th {
  position: sticky;
  top: 0;
  z-index: 1;
  background: var(--limestone);
}
.plain-table tbody tr:nth-child(odd) {
  background: var(--white);
}
.plain-table tbody th a {
  color: var(--text);
}
.plain-table.dir-from .c-to, .plain-table.dir-to .c-from {
  display: none;
}
.all-group {
  margin-top: 24px;
}
.all-group h3 a {
  color: inherit;
}
.all-list {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 340px), 1fr));
  gap: 12px 30px;
  margin-top: 8px;
  padding: 0;
  list-style: none;
}
.all-list a {
  display: block;
  color: var(--text);
  font-weight: 500;
}
.all-list small {
  display: block;
  color: var(--muted);
  font-size: .9rem;
  line-height: 1.4;
}
.all-list .rev {
  display: inline;
  font-weight: 400;
  font-size: .9rem;
}
.guide-steps {
  margin-top: 12px;
  padding-left: 22px;
}
.guide-steps li {
  padding: 5px 0;
}
.guide-note {
  margin-top: 14px;
  color: var(--muted);
  font-size: .9rem;
}
.guide-link {
  margin-top: 12px;
}
@media (max-width: 1100px) {
  .region-layout {
    grid-template-columns: minmax(0, 1fr);
  }
}
@media (max-width: 760px) {
  .price-chips {
    display: flex;
    gap: 7px;
    margin: 12px calc(var(--gutter) * -1) 0;
    padding-inline: var(--gutter);
    overflow-x: auto;
    scrollbar-width: none;
  }
  .price-chips button {
    flex: none;
    min-height: 48px;
    padding: 7px 14px 5px;
    background: var(--white);
    border: 1px solid var(--warm-line);
    border-radius: var(--r-pill);
    color: var(--text);
  }
  .price-chips button[aria-pressed="true"] {
    background: #0a0b0e;
    color: #fff;
  }
  .plain-table tr[data-area].off {
    display: none;
  }
  .table-wrap {
    max-height: none;
  }
  .plain-table tbody th a {
    display: flex;
    align-items: center;
    min-height: 48px;
  }
  .all-list a {
    min-height: 48px;
  }
  .class-foot {
    align-items: stretch;
    flex-direction: column;
  }
  .class-note {
    border-radius: var(--r-1);
  }
}
.guide-steps {
  list-style: decimal;
}
.guide-copy .nearby-title {
  margin-top: 26px;
  font-size: 1.5rem;
}
.all-group h2 {
  font-size: 1.5rem;
}
/* 3.80 Hero and benefits */
.hero {
  grid-template-rows: auto auto auto auto;
  row-gap: 0;
}
.hero > .widget {
  margin-top: 6px;
}
.hero-map {
  width: min(100%, 300px);
}
.announcement {
  padding: 7px var(--gutter) 5px;
  background: var(--gold);
  color: #0a0b0e;
  font-size: .9rem;
  text-align: center;
}
.hero-rating {
  position: relative;
  z-index: 1;
  grid-column: 1;
  margin: 0 0 12px;
  color: #fff;
  font-size: .95rem;
}
.hero-rating::before {
  content: "★ ";
  color: var(--gold);
}
.benefit-tiles {
  position: relative;
  z-index: 1;
  grid-column: 1 / -1;
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(170px, 1fr));
  gap: 8px;
  margin: 18px 0 0;
  padding: 0;
  color: #fff;
  list-style: none;
}
.benefit-tiles li {
  padding: 11px 14px 9px;
  background: rgba(255, 255, 255, .08);
  border-radius: var(--r-1);
  font-size: .95rem;
}
.benefit-tiles li::before {
  content: "✓ ";
  color: var(--gold);
}
.quick-extras {
  display: flex;
  flex-wrap: wrap;
  gap: 8px 18px;
  align-items: end;
  margin-top: 8px;
}
.quick-extras > button {
  min-height: 44px;
  padding: 0;
  background: none;
  border: 0;
  color: var(--text);
  font-size: .9rem;
  font-weight: 500;
  text-decoration: underline;
  text-underline-offset: 3px;
}
.quick-extras > button[hidden], .quick-extras label[hidden] {
  display: none;
}
.quick-extras label {
  min-width: 200px;
}
.quick-classes {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 8px;
  flex-basis: 100%;
}
.quick-classes[hidden] {
  display: none;
}
.quick-classes button {
  display: grid;
  gap: 1px;
  padding: 9px 12px 7px;
  background: #fff;
  border: 1px solid var(--field);
  border-radius: var(--r-1);
  color: #0a0b0e;
  text-align: left;
}
.quick-classes button[aria-pressed="true"] {
  border-color: var(--gold);
  box-shadow: inset 0 0 0 1px var(--gold);
  background: var(--gold-50);
}
.quick-classes button:disabled {
  opacity: .45;
  cursor: not-allowed;
}
.quick-classes b {
  color: var(--gold-text);
  font-family: var(--serif);
  font-size: 1.35rem;
  font-weight: 500;
}
.quick-classes small {
  color: var(--muted);
  font-size: .8rem;
}
.widget-note .note-others:empty {
  display: none;
}

/* 3.81 Classes */
.class-each {
  display: block;
  color: #cfd2d6;
  font-size: .9rem;
}
.class-card .class-price .currency {
  vertical-align: baseline;
  font-size: .7em;
}
.class-features {
  display: grid;
  gap: 3px;
  margin: -6px 0 12px;
  padding: 0;
  color: #cfd2d6;
  font-size: .9rem;
  list-style: none;
}
.class-features li::before {
  content: "✓ ";
  color: var(--gold);
}

/* 3.82 How it works drawings */
.how-steps svg {
  display: block;
  width: 100%;
  max-width: 190px;
  height: auto;
  margin-bottom: 10px;
}
.how-steps li::before {
  display: none;
}
.how-steps li:not(:last-child)::after {
  display: none;
}
.how-steps li {
  padding: 0;
}

/* 3.83 Rating, reviews, photo grids */
.rating-big {
  display: flex;
  gap: 12px;
  align-items: baseline;
  margin-top: 4px;
}
.rating-big b {
  font-family: var(--serif);
  font-size: 4.2rem;
  font-weight: 500;
  line-height: 1;
}
.review-card {
  flex: 0 0 min(86%, 400px);
  padding: 20px;
  background: var(--white);
  border: 1px solid var(--line);
  border-radius: var(--r-2);
  scroll-snap-align: start;
}
.review-head {
  display: flex;
  gap: 11px;
  align-items: center;
  margin-bottom: 9px;
}
.review-initial {
  display: grid;
  place-items: center;
  width: 40px;
  height: 40px;
  background: #0a0b0e;
  border-radius: 50%;
  color: #fff;
  font-weight: 500;
}
.review-head small {
  display: block;
  color: var(--muted);
  font-size: .8rem;
}
.review-stars {
  color: var(--gold-text);
  letter-spacing: .08em;
}
.photo-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(46%, 240px), 1fr));
  gap: 12px;
  margin-top: 18px;
}
.photo-grid img {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 4 / 3;
  object-fit: cover;
}
.dest-tile {
  position: relative;
  display: block;
  overflow: hidden;
  color: #fff;
  text-decoration: none;
}
.dest-tile span {
  position: absolute;
  right: 0;
  bottom: 0;
  left: 0;
  display: flex;
  justify-content: space-between;
  padding: 22px 12px 8px;
  background: linear-gradient(0deg, rgba(10, 11, 14, .8), transparent);
}
.partner-row span {
  color: var(--muted);
  filter: grayscale(1);
  transition: color .2s var(--ease);
}
.partner-row span:hover {
  color: var(--text);
}
.service-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 260px), 1fr));
  gap: 14px;
  margin-top: 18px;
  padding: 0;
  list-style: none;
}
.service-grid li {
  padding: 18px;
  background: var(--white);
  border: 1px solid var(--line);
  border-radius: var(--r-2);
}
.service-grid img {
  display: block;
  width: calc(100% + 36px);
  max-width: none;
  height: auto;
  margin: -18px -18px 12px;
}
.promo-line, .green-line {
  margin-top: 10px;
  font-weight: 500;
}

/* 3.84 Plan your stay and tiles */
.stay-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 250px), 1fr));
  gap: 14px;
  margin-top: 16px;
}
.stay-grid a {
  display: block;
  padding: 20px;
  background: var(--white);
  border: 1px solid var(--line);
  border-radius: var(--r-2);
  color: var(--text);
  text-decoration: none;
  transition: transform .2s var(--ease), box-shadow .2s var(--ease);
}
.stay-grid a:hover {
  transform: translateY(-4px);
  box-shadow: var(--shadow-2);
}
.stay-grid b {
  display: block;
  font-family: var(--serif);
  font-size: 1.5rem;
  font-weight: 500;
}
.stay-grid span {
  color: var(--muted);
  font-size: .95rem;
}
.home-card {
  display: none;
}
.contact-tiles {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
  padding-block: 40px;
  padding-inline: var(--gutter);
  background: var(--limestone);
}
.contact-tiles a {
  display: flex;
  gap: 14px;
  align-items: center;
  min-height: 72px;
  padding: 16px 20px;
  background: var(--white);
  border: 1px solid var(--line);
  border-radius: var(--r-2);
  color: var(--text);
  font-family: var(--serif);
  font-size: 1.5rem;
  text-decoration: none;
}
.contact-tiles svg {
  flex: none;
  width: 26px;
  height: 26px;
  fill: none;
  stroke: var(--gold-text);
  stroke-width: 1.6;
  stroke-linecap: round;
  stroke-linejoin: round;
}
.faq-band.section-dark {
  padding-block: 28px;
}
.routes-band.section-dark {
  padding-top: 44px;
}
.area-card.ask-card {
  display: grid;
  align-content: center;
  gap: 6px;
}
.area-card.ask-card b {
  font-family: var(--serif);
  font-size: 1.35rem;
  font-weight: 500;
}
.area-thumb circle {
  stroke: none;
}
.region-thumb-photo {
  display: block;
  width: calc(100% + 36px);
  max-width: none;
  height: auto;
  margin: -16px -18px 12px;
  aspect-ratio: 16 / 9;
  object-fit: cover;
}

/* 3.85 One accent */
:root {
  --shadow-1: 0 2px 10px rgba(11, 18, 32, .08);
  --shadow-2: 0 12px 28px rgba(11, 18, 32, .12);
}
.tool-panel .route-map, .route-map, .map, .region-map {
  background: #1a1c22;
}
.foot {
  grid-template-columns: 1.4fr repeat(4, minmax(0, 1fr));
}
.foot-rating {
  color: #fff;
  font-size: .9rem;
}
.foot-rating::before {
  content: "★ ";
  color: var(--gold);
}
.opening-text {
  color: #cfd2d6;
  font-size: .9rem;
}
.pay-name {
  padding: 3px 8px 1px;
  background: #fff;
  border-radius: 3px;
  color: #0a0b0e;
  font-size: .8rem;
  font-weight: 500;
}
html.pref-dark .quick-classes button {
  background: #15171c;
  color: #fff;
}
html.pref-dark .contact-tiles {
  background: #1b1d23;
}
@media (max-width: 1100px) {
  .foot {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .foot-about {
    grid-column: 1 / -1;
  }
}
@media (max-width: 760px) {
  .benefit-tiles {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    order: 9;
    margin-block: 12px;
  }
  .quick-classes {
    grid-template-columns: minmax(0, 1fr);
  }
  .quick-classes button {
    grid-template-columns: 1fr auto;
    align-items: center;
  }
  .widget:not([data-mstep="3"]) .quick-extras {
    display: none;
  }
  .home-card {
    display: block;
  }
  .how-steps li {
    padding: 0 0 18px;
  }
  .how-steps svg {
    max-width: 150px;
  }
  .contact-tiles {
    grid-template-columns: minmax(0, 1fr);
    padding-block: 28px;
  }
  .foot {
    grid-template-columns: minmax(0, 1fr);
  }
  .photo-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .chip-note {
    min-height: 48px;
  }
  .rating-big b {
    font-size: 3.2rem;
  }
}
.widget-foot.has-dest #quick-note {
  display: none;
}
/* 4.00 WHITE AND BLUE: flat, thin lines, one accent */
:root {
  --accent: #1f4fc9;
  --gold: #1f4fc9;
  --gold-text: #1f4fc9;
  --gold-dark: #1f4fc9;
  --gold-50: #eef2fd;
  --gold-grad: #1f4fc9;
  --navy: #1a1a1a;
  --navy-2: #2a2a2a;
  --white: #fff;
  --limestone: #f7f3ee;
  --pale: #f7f3ee;
  --text: #1a1a1a;
  --body: #555;
  --muted: #666;
  --line: #e6e6e6;
  --warm-line: #d8d8d8;
  --field: #d8d8d8;
  --on-light: #1a1a1a;
  --shadow-1: none;
  --shadow-2: 0 4px 14px rgba(0, 0, 0, .06);
  --shadow-3: 0 4px 14px rgba(0, 0, 0, .08);
  --r-1: 8px;
  --r-2: 8px;
  --r-3: 8px;
  --gutter: max(clamp(16px, 5vw, 64px), calc((100vw - 1200px) / 2));
  --grain: none;
  --paper: none;
}
body {
  background: #fff;
  color: var(--body);
  font-size: 16px;
  line-height: 1.6;
}
p, li {
  color: inherit;
}
h1, h2, h3 {
  color: var(--text);
  letter-spacing: -.01em;
}
h1, h2 {
  font-family: var(--serif);
  font-weight: 300;
}
h2 {
  font-size: 2.2rem;
  line-height: 1.15;
}
h3 {
  font-family: var(--sans);
  font-size: 1.05rem;
  font-weight: 500;
  letter-spacing: 0;
}
h1 em, h2 em, .hero h1 em {
  color: inherit;
  font-style: normal;
}
.eyebrow {
  display: none;
}
b, strong {
  font-weight: 500;
}
a {
  color: var(--accent);
  text-decoration: none;
}
main a:not(.btn):hover, .foot a:hover {
  text-decoration: underline;
}
.intro, .story p, .route-copy p, .home-intro p {
  color: var(--body);
  font-size: 16px;
  line-height: 1.6;
}
.section, .section-white, .section-cream {
  padding-block: clamp(48px, 6vw, 88px);
  background: #fff;
  color: var(--body);
}
.section-cream.tint, #vehicles {
  background: var(--limestone);
}
.btn, .btn:not(.quiet), .mobile-cta .btn, .widget .btn[type="submit"], .route-side .btn {
  background: var(--accent);
  border: 0;
  border-radius: 999px;
  color: #fff;
  box-shadow: none;
  font-weight: 500;
}
.btn:hover, .btn:not(.quiet):hover {
  background: #153fa9;
  color: #fff;
  box-shadow: none;
  transform: none;
}
.btn::before {
  display: none;
}
.btn.quiet, .route-card .btn {
  background: #fff;
  border: 1px solid var(--warm-line);
  border-radius: 999px;
  color: var(--text);
}
.btn.quiet:hover, .route-card:hover .btn, .route-card .btn:hover {
  background: #fff;
  border-color: var(--accent);
  color: var(--accent);
}
:focus-visible, a:focus-visible, button:focus-visible, input:focus-visible, summary:focus-visible {
  outline: 2px solid var(--accent);
  outline-offset: 2px;
  box-shadow: none;
}
.widget input:focus, .pick-btn:focus-visible, .field input:focus, .fare-search input:focus {
  box-shadow: none;
  border-color: var(--accent);
  outline: 0;
}
::selection {
  background: #d9e3fb;
  color: var(--text);
}
html {
  scrollbar-color: #bbb #fff;
}
input, textarea {
  caret-color: var(--accent);
}

/* 4.01 Header */
.bar, .bar.slim, .bar.on-light {
  align-items: center;
  min-height: 64px;
  padding-block: 0;
  background: #fff;
  border-bottom: 1px solid var(--line);
  box-shadow: none;
  -webkit-backdrop-filter: none;
  backdrop-filter: none;
}
.brand-text b, .bar.on-light .brand-text b {
  color: var(--text);
  font-family: var(--sans);
  font-size: 1rem;
  font-weight: 500;
  letter-spacing: .12em;
}
.brand-text small, .bar.on-light .brand-text small {
  color: #6b6b6b;
}
.brand-mark path, .bar.on-light .brand-mark path {
  stroke: #1a1a1a;
}
#main-nav {
  gap: 22px;
  margin-left: auto;
}
.bar nav a:not(.btn), .bar.on-light nav a:not(.btn), #main-nav a[aria-current="true"], .bar nav a:not(.btn):hover {
  color: #444;
  font-size: 14px;
  letter-spacing: 0;
}
.bar nav a:not(.btn):hover {
  color: var(--accent);
}
.nav-drop {
  position: relative;
}
.nav-drop summary {
  display: flex;
  gap: 6px;
  align-items: center;
  color: #444;
  font-size: 14px;
  list-style: none;
  cursor: pointer;
}
.nav-drop summary::-webkit-details-marker {
  display: none;
}
.nav-drop summary::after, .lang-menu > button::after {
  content: "";
  width: 6px;
  height: 6px;
  border-right: 1px solid #707070;
  border-bottom: 1px solid #707070;
  transform: translateY(-2px) rotate(45deg);
}
.nav-panel {
  position: absolute;
  top: calc(100% + 12px);
  left: 0;
  z-index: 50;
  display: grid;
  gap: 2px;
  min-width: 220px;
  padding: 8px;
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 8px;
  box-shadow: var(--shadow-2);
}
.nav-panel a, .nav-panel button {
  display: block;
  width: 100%;
  padding: 8px 10px 6px;
  background: none;
  border: 0;
  border-radius: 4px;
  color: #444;
  font-size: 14px;
  text-align: left;
  white-space: nowrap;
}
.nav-panel a:hover, .nav-panel button:hover {
  background: #f5f5f5;
}
.options-toggle, .bar.on-light .options-toggle {
  display: block;
  width: 100%;
  min-height: 0;
  border: 0;
  color: #444;
}
.opt-text {
  display: inline;
}
.options-toggle svg {
  display: none;
}
.lang-menu > button, .bar.on-light .lang-menu > button {
  min-height: 36px;
  padding: 0;
  background: none;
  border: 0;
  color: #444;
  font-size: 14px;
}
.lang-menu > button:hover {
  background: none;
  color: var(--accent);
}
.manage-pill {
  display: inline-flex;
  gap: 6px;
  align-items: center;
  padding: 6px 13px 4px;
  border: 1px solid var(--warm-line);
  border-radius: 999px;
}
.manage-pill svg {
  width: 15px;
  height: 15px;
  fill: none;
  stroke: #444;
  stroke-width: 1.6;
}
.bar nav .btn {
  padding: 8px 18px 6px;
  font-size: 14px;
}
.bar-book {
  display: none;
}
@media (min-width: 1361px) {
  body.book-in-view .bar nav .btn {
    visibility: visible;
  }
}
.menu-toggle span, .bar.on-light .menu-toggle span {
  background: #1a1a1a;
}
.options-panel {
  color: var(--text);
}

/* 4.02 Hero */
.hero, .hero.has-hero-photo {
  position: relative;
  z-index: 5;
  display: block;
  min-height: 420px;
  padding: 44px var(--gutter) 22px;
  overflow: visible;
  background: #2c3a4a;
  border-radius: 0 0 24px 24px;
  text-align: center;
}
.hero-art, .hero-shade {
  border-radius: 0 0 24px 24px;
}
.hero-art {
  transform: none;
}
.hero-photo {
  filter: none;
}
.hero-shade {
  background: rgba(0, 0, 0, .4);
}
.hero-map, .hero-route-link {
  display: none;
}
.hero h1, .hero > h1 {
  margin: 0 0 18px;
  color: #fff;
  font-size: clamp(2.4rem, 3.6vw, 3.2rem);
  font-weight: 300;
  line-height: 1.1;
}
.hero > h1, .hero > .widget {
  animation: none;
}
.hero-rating {
  color: #fff;
}
.hero-rating::before {
  color: #fff;
}
.resume-banner {
  margin: 0 auto 10px;
  font-size: .9rem;
}
.noscript {
  color: var(--text);
}
.hero-more {
  position: relative;
  z-index: 1;
  display: inline-block;
  margin-top: 16px;
  color: #fff;
  font-size: 14px;
}
.hero-more:hover {
  color: #fff;
  text-decoration: underline;
}
.crumbs, body.booking-open .crumbs {
  padding: 16px var(--gutter) 0;
  font-size: 12px;
}
.crumbs ol {
  justify-content: center;
}
.crumbs a {
  color: var(--accent);
}
.crumbs [aria-current] {
  color: #6b6b6b;
}
@media (min-width: 761px) {
  .hero > .widget {
    width: 100%;
    margin: 0;
    padding: 0;
    background: none;
    border: 0;
    border-radius: 0;
    box-shadow: none;
    -webkit-backdrop-filter: none;
    backdrop-filter: none;
    color: #fff;
    text-align: left;
  }
  .widget:focus-within {
    box-shadow: none;
  }
  .tabs {
    display: flex;
    width: max-content;
    margin: 0 auto 18px;
    padding: 3px;
    background: rgba(255, 255, 255, .18);
    border: 0;
    border-radius: 999px;
  }
  .tabs button {
    padding: 6px 18px 4px;
    color: #fff;
    font-size: 14px;
  }
  .tabs button[aria-pressed="true"] {
    background: var(--accent);
    color: #fff;
  }
  .widget-fields {
    grid-template-columns: minmax(0, 2.6fr) minmax(0, 1.1fr) minmax(0, .8fr) minmax(0, .7fr) auto;
    gap: 18px;
    align-items: end;
  }
  .route-pair {
    gap: 44px;
  }
  .route-pair::before {
    display: none;
  }
  .widget label, .combo-box > label, .combo-box label, .widget .pax-label {
    color: #fff;
    font-size: 13px;
    font-weight: 400;
    letter-spacing: 0;
    text-transform: none;
  }
  .widget input, .widget .pick-btn, #quick-from-box input, #quick-search {
    min-height: 40px;
    padding: 6px 2px 4px;
    background: none;
    border: 0;
    border-bottom: 1px solid rgba(255, 255, 255, .75);
    border-radius: 0;
    color: #fff;
    font-weight: 400;
  }
  .widget input::placeholder {
    color: rgba(255, 255, 255, .8);
  }
  .widget .pick-btn.empty {
    color: rgba(255, 255, 255, .8);
  }
  .widget input:focus, .widget .pick-btn:focus-visible, .widget .pick-btn[aria-expanded="true"] {
    border-bottom-color: #fff;
  }
  .pax-control {
    min-height: 40px;
    padding: 0;
    background: none;
    border: 0;
    border-bottom: 1px solid rgba(255, 255, 255, .75);
    border-radius: 0;
  }
  .pax-control button {
    width: 28px;
    height: 28px;
    background: none;
    color: #fff;
  }
  .pax-control button:hover:not(:disabled) {
    background: rgba(255, 255, 255, .15);
  }
  .pax-control button:disabled {
    color: rgba(255, 255, 255, .4);
  }
  .pax-control output {
    color: #fff;
  }
  .quick-swap {
    top: auto;
    bottom: 4px;
    width: 30px;
    min-width: 30px;
    height: 30px;
    min-height: 30px;
    background: none;
    border: 1px solid #fff;
    color: #fff;
    box-shadow: none;
  }
  .quick-swap:hover {
    background: rgba(255, 255, 255, .15);
  }
  .widget .btn[type="submit"] {
    min-height: 44px;
    margin: 0;
    padding-inline: 24px;
    font-size: 15px;
  }
  .quick-extras {
    margin-top: 10px;
  }
  .quick-extras > button {
    min-height: 30px;
    color: #fff;
    font-size: 13px;
    font-weight: 400;
    text-decoration: none;
  }
  .quick-extras > button:hover {
    text-decoration: underline;
  }
  .quick-extras label {
    color: #fff;
  }
  .widget-foot {
    justify-content: center;
    margin-top: 8px;
    color: #fff;
  }
  .widget-note, .widget-foot.has-dest #quick-note, .earliest-note, .night-note, .price-policy {
    color: #fff;
    font-size: 13px;
  }
  .widget-foot.has-dest #quick-note {
    display: block;
  }
  .widget-note b, .widget-note .note-others {
    padding: 0;
    background: none;
    color: #fff;
    font-family: var(--sans);
    font-size: 13px;
    font-weight: 500;
    margin-left: 4px;
  }
  .earliest-note, .widget-foot.has-dest .earliest-note {
    padding: 0;
    background: none;
  }
  .combo-list {
    color: var(--text);
    text-align: left;
  }
}
.quick-classes, .widget-foot.has-dest .quick-classes {
  display: none;
}
.combo-list, .picker {
  border: 1px solid var(--line);
  box-shadow: var(--shadow-2);
}
.picker-days .on, .picker-list .on, .picker .picker-days button.on, .picker .picker-list button.on {
  background: var(--accent);
  color: #fff;
}

/* 4.03 Trust cards */
.trust-band {
  padding: 32px var(--gutter) 0;
  text-align: center;
}
.hero-below {
  max-width: 62ch;
  margin: 0 auto 20px;
}
.trust-cards {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 16px;
  margin: 0;
  padding: 0;
  list-style: none;
}
.trust-cards li {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 0 12px;
  align-items: center;
  width: 280px;
  padding: 14px 16px;
  border: 1px solid var(--line);
  border-radius: 8px;
  text-align: left;
}
.trust-cards svg {
  grid-row: span 2;
  width: 26px;
  height: 26px;
  fill: none;
  stroke: var(--accent);
  stroke-width: 1.4;
  stroke-linecap: round;
  stroke-linejoin: round;
}
.trust-cards b {
  color: var(--text);
  font-size: 15px;
  line-height: 1.3;
}
.trust-cards span {
  color: #6b6b6b;
  font-size: 12px;
  line-height: 1.4;
}

/* 4.04 Service classes */
#vehicles {
  text-align: center;
}
#vehicles .intro {
  max-width: none;
}
.classes {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 16px;
  margin-top: 26px;
  text-align: left;
}
.class-card, .section-dark .class-card {
  flex: 0 1 280px;
  cursor: pointer;
  overflow: hidden;
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 8px;
}
.class-card:hover {
  box-shadow: var(--shadow-2);
  transform: translateY(-4px);
}
.class-card > .slides {
  height: auto;
  padding: 0 0 62%;
  background: #e4f3ec;
  border-radius: 0;
  box-shadow: none;
}
.class-card:nth-child(2) > .slides {
  background: #e3eefa;
}
.class-card:nth-child(3) > .slides {
  background: #fbeadd;
}
.class-card:hover .slides {
  box-shadow: none;
}
.class-card .art, .class-card svg.art, .art {
  stroke: #4a4a4a;
  filter: none;
}
.class-card:hover .art {
  filter: none;
}
.slide-dots button::before {
  width: 6px;
  height: 6px;
  background: rgba(0, 0, 0, .25);
  border-radius: 50%;
}
.slide-dots button[aria-current="true"]::before {
  background: #555;
}
.class-card > div:last-child {
  padding: 14px 16px 16px;
}
.class-card h3 {
  margin-bottom: 2px;
  font-family: var(--sans);
  font-size: 1.05rem;
  font-weight: 500;
}
.class-model, .class-card > div:last-child > p:first-of-type {
  min-height: 0;
  margin: 0 0 8px;
  color: #6b6b6b;
  font-size: .8rem;
}
.class-bullets {
  margin: 0 0 12px;
  padding-left: 16px;
  color: var(--body);
  font-size: .85rem;
  list-style: disc;
}
.class-bullets li {
  padding: 1px 0;
}
.class-bullets .accent {
  color: var(--accent);
}
.class-features {
  color: var(--body);
  font-size: .85rem;
  margin: 0 0 12px;
}
.class-features li::before {
  color: var(--accent);
}
.class-card .class-price {
  color: var(--text);
  font-size: .95rem;
}
.class-card .class-price b, .class-price .from-word, .class-card .class-price .currency {
  display: inline;
  color: var(--text);
  font-family: var(--sans);
  font-size: inherit;
  font-weight: 500;
  vertical-align: baseline;
}
.class-price small, .class-each {
  color: #6b6b6b;
  font-size: .8rem;
}
.class-card .btn, .section-dark .class-card .btn, .class-card .btn:hover {
  display: inline-block;
  align-self: flex-start;
  width: auto;
  min-height: 0;
  margin-top: 8px;
  padding: 0;
  background: none;
  border: 0;
  border-radius: 0;
  color: var(--accent);
  font-size: 14px;
  font-weight: 500;
}
.class-foot {
  justify-content: center;
}
.compare-open {
  color: var(--accent);
  font-size: 14px;
  text-decoration: none;
}

/* 4.05 Photo rows */
.story, .story.flip, .section-cream.story {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: clamp(28px, 5vw, 64px);
  padding-block: 48px;
  padding-inline: max(var(--gutter), calc((100vw - 1000px) / 2));
  background: #fff;
}
.story h2 {
  font-size: 1.6rem;
  margin-bottom: 8px;
}
.story p {
  font-size: 14px;
}
.story-art, svg.story-art {
  border-radius: 4px;
  box-shadow: none;
  aspect-ratio: 3 / 2;
}
.story-media::after {
  display: none;
}

/* 4.06 Questions */
.faq, .faq.has-photo {
  display: block;
}
.faq.has-photo {
  display: grid;
  grid-template-columns: 45% 40%;
  justify-content: space-between;
}
.faq-main {
  max-width: 760px;
  margin: 0 auto;
}
.faq.has-photo .faq-main {
  max-width: none;
  margin: 0;
}
.faq-head {
  display: block;
}
.faq-head .faq-tools {
  margin-top: 12px;
}
.faq-list {
  column-count: 1;
}
.faq details, .faq details[open], .section-white .faq details[open], .faq.section-white details[open] {
  background: none;
  border-left: 0;
  border-bottom: 1px solid var(--line);
}
.faq details:hover {
  background: none;
}
.faq summary {
  min-height: 48px;
  padding: 10px 0 8px;
  color: var(--text);
  font-family: var(--sans);
  font-size: 14px;
  font-weight: 400;
}
.faq summary::after, .faq details[open] summary::after, .faq summary:hover::after {
  content: "";
  width: 7px;
  height: 7px;
  border-right: 1px solid #888;
  border-bottom: 1px solid #888;
  color: inherit;
  transform: rotate(45deg);
}
.faq details[open] summary::after {
  transform: rotate(-135deg);
}
.faq details p {
  padding: 0 0 12px;
  color: var(--body);
  font-size: 14px;
}
.faq-contact {
  display: flex;
  gap: 18px;
  margin-top: 16px;
  font-size: 14px;
}
.faq-picture {
  border-radius: 4px;
}

/* 4.07 Other sections */
.how {
  background: #fff;
}
.how-steps li::before {
  content: counter(how);
  display: grid;
  place-items: center;
  width: 34px;
  height: 34px;
  margin-bottom: 8px;
  background: none;
  border: 1px solid var(--accent);
  border-radius: 50%;
  color: var(--accent);
  font-family: var(--sans);
  font-size: 14px;
}
.how-steps li:last-child::before, .how-steps li:hover::before {
  box-shadow: none;
}
.how-steps b {
  font-family: var(--sans);
  font-size: 1.05rem;
  font-weight: 500;
  color: var(--text);
}
.how-price {
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 8px;
  box-shadow: none;
}
.included li::before {
  background-color: var(--accent);
}
.areas-grid {
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 22px 20px;
}
.area-card, .section-dark .area-card, .area-card.ask-card {
  padding: 0;
  background: none;
  border: 0;
  border-radius: 0;
}
.area-thumb {
  display: none;
}
.area-from {
  margin: 0;
  color: #6b6b6b;
  font-size: .8rem;
}
.area-card h3, .section-dark .area-card h3, .area-card h3 a {
  color: var(--text);
  font-family: var(--sans);
  font-size: 1rem;
}
.areas-grid a, .section-dark .areas-grid a:not(.btn):not(.brand) {
  color: var(--accent);
  font-size: 14px;
}
.town-from {
  color: #6b6b6b;
}
.route-card, .section-dark .route-card, .tool-panel .routes-band .route-card {
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 8px;
  box-shadow: none;
  color: var(--text);
}
.tool-panel .route-map, .route-map, .map, .region-map, .section-dark .route-map {
  background: #e9eef3;
  --isle-fill: #fbfaf7;
  --isle-stroke: #c4cbd3;
}
.coast-ring {
  display: none;
}
.route-map .route-line, .map .route {
  stroke: var(--accent);
  filter: none;
}
.pin-town {
  fill: var(--accent);
  stroke: #fff;
}
.pin-plane circle {
  fill: #1a1a1a;
}
.pin-plane path {
  fill: #fff;
}
.air-plane path {
  fill: #fff;
}
.route-body h3 a, .section-dark .route-body h3 a:not(.btn):not(.brand) {
  color: var(--text);
}
.route-top b, .section-dark .route-top b, .widget-note b, .class-price b, .calc-total, .vehicle em, .sign-total, #d-total, .mini-bar b, .route-table td, .place-row span, .quick-classes b, .m-head b {
  color: var(--text);
  font-family: var(--sans);
  font-weight: 500;
}
.route-top b {
  font-size: 1.35rem;
}
.route-top .currency, .sign-total .currency, .calc-total .currency {
  font-size: inherit;
  vertical-align: baseline;
}
.currency {
  font-size: inherit;
  vertical-align: baseline;
}
.route-pill, .section-dark .route-pill {
  padding-left: 0;
  background: none;
  color: #6b6b6b;
}
.route-meta, .route-card .route-meta {
  font-size: 13px;
}
.routes-end::before, .routes-end::after {
  background: var(--line);
}
#routes-all, .section-dark #routes-all {
  color: var(--accent);
}
.plan-tabs, .seg, .section-dark .plan-tabs, .section-dark .seg {
  padding: 3px;
  background: #f1f1f1;
  border-radius: 999px;
}
.plan-tabs button, .seg button, .section-dark .seg button {
  color: #444;
  font-size: 14px;
}
.plan-tabs button[aria-selected="true"], .seg button[aria-pressed="true"], .section-dark .plan-tabs button[aria-selected="true"], .section-dark .seg button[aria-pressed="true"] {
  background: var(--accent);
  color: #fff;
}
.explore-chips button[aria-pressed="true"], .fare-chips button[aria-pressed="true"], .price-chips button[aria-pressed="true"] {
  background: var(--accent);
  border-color: var(--accent);
  color: #fff;
}
.calc-results, .plan.section-white .calc-card, .plan.section-white .calc-empty, .calc-empty {
  background: #fff;
}
.calc-results {
  border: 1px solid var(--line);
}
.calc-card {
  border-bottom: 1px solid var(--line);
}
.place-row {
  padding-block: 8px 6px;
  border-bottom: 1px solid var(--line);
  border-radius: 0;
}
.place-row:nth-of-type(even) {
  background: none;
}
.place-row span {
  font-size: 15px;
}
.fare-group h3 {
  font-family: var(--sans);
  font-size: 1rem;
}
.explore-map, .tool-panel .explore-map {
  background: #e9eef3;
  --isle-fill: #fbfaf7;
  --isle-stroke: #c4cbd3;
}
.explore-pin {
  fill: #fff;
  stroke: var(--accent);
}
.explore-pin:hover, .explore-pin.on {
  fill: var(--accent);
}
.explore-item:hover, .explore-item.on, .combo-item:hover, .combo-item.active {
  background: #f5f7fd;
}
.checklist-band, .tool-panel .checklist-band {
  background: none;
  color: var(--text);
}
.intro-panel {
  background: #fff;
  border: 1px solid var(--line);
  color: var(--text);
}
.intro-panel h3 {
  color: var(--text);
}
.intro-panel li, .intro-panel .time-bars li {
  color: var(--body);
}
.intro-panel li span:last-child {
  color: var(--text);
}
.stay-grid b {
  font-family: var(--sans);
  font-size: 1.05rem;
}
.stay-grid a {
  border-radius: 8px;
  color: var(--body);
}
.stay-grid a b {
  color: var(--text);
}
.compare-table thead th {
  font-family: var(--sans);
  font-size: 14px;
  font-weight: 500;
}
.compare-table td:nth-child(2), .compare-table thead th:nth-child(2) {
  background: none;
}
.compare-table {
  color: var(--body);
}
.compare-table th {
  color: var(--text);
}
.route-side {
  box-shadow: none;
}
.route-intro {
  background: #fff;
}
.side-pax button {
  background: #f1f1f1;
}
.nearby a {
  color: var(--text);
}
.wide-picture::after {
  background: rgba(0, 0, 0, .3);
}
.plain-table thead th {
  background: #fff;
}
.plain-table tbody tr:nth-child(odd) {
  background: none;
}
.plain-table td, .plain-table th {
  font-weight: 400;
}
.plain-table thead th {
  font-weight: 500;
  color: var(--text);
}
.region-map circle {
  fill: var(--accent);
  stroke: #fff;
}
.card-skeleton {
  background: linear-gradient(100deg, #f1f1f1 20%, #fafafa 40%, #f1f1f1 60%);
  background-size: 200% 100%;
}
.review-initial {
  background: var(--accent);
}

/* 4.08 Booking steps */
.booking {
  background: #fff;
}
.step-count {
  color: #6b6b6b;
}
.progress button[aria-current="step"] {
  color: var(--text);
}
.progress::after {
  background: var(--accent);
}
.field, .field > span:first-child {
  color: var(--body);
  font-size: 13px;
  font-weight: 400;
  letter-spacing: 0;
  text-transform: none;
}
.field input, .field select, .field textarea, .field .pick-btn {
  padding-left: 2px;
  background-color: #fff;
  border: 0;
  border-bottom: 1px solid #bbb;
  border-radius: 0;
}
.field input[name="address"], .field input[name="flight_number"], .field input[name="return_flight"] {
  padding-left: 28px;
  background-position: 2px center;
}
.steps {
  border: 1px solid var(--line);
  border-radius: 8px;
  box-shadow: none;
}
.vehicle .v-body {
  border: 1px solid var(--line);
  border-radius: 8px;
}
.vehicle input:checked + .v-body {
  background: #f5f7fd;
  border-color: var(--accent);
  box-shadow: inset 0 0 0 1px var(--accent);
}
.vehicle input:checked + .v-body::after {
  background: var(--accent);
  color: #fff;
}
.vehicle .v-body b, .sign-place {
  font-family: var(--sans);
  font-size: 1.05rem;
  font-weight: 500;
}
.vehicle em {
  font-size: 1.15rem;
  font-style: normal;
}
.panel {
  --white: #f7f3ee;
  --text: #1a1a1a;
  --body: #555;
  --muted: #666;
  --line: #e6dfd5;
  --gold-text: #1f4fc9;
  --gold-dark: #1f4fc9;
  background: #f7f3ee;
  border: 0;
  border-radius: 8px;
  color: var(--text);
}
.panel .sign, .sign {
  background: none;
  color: var(--text);
}
.panel .sign-lines b {
  color: var(--text);
}
.panel .secure {
  color: #6b6b6b;
}
.sign-total {
  font-size: 1.75rem;
}
.toggle input:checked {
  background: var(--accent);
}
.mini-bar {
  background: #fff;
  border-top: 1px solid var(--line);
  box-shadow: 0 -2px 10px rgba(0, 0, 0, .05);
}
.mini-bar svg {
  stroke: var(--accent);
}

/* 4.09 Footer */
.foot {
  display: grid;
  grid-template-columns: 1.3fr repeat(4, minmax(0, 1fr));
  gap: 24px;
  padding-block: 44px 20px;
  background: #f7f3ee;
  color: var(--body);
  font-size: 13px;
}
.foot::before, .foot-ridge {
  display: none;
}
.foot h3 {
  margin-bottom: 8px;
  color: var(--text);
  font-family: var(--sans);
  font-size: 13px;
  font-weight: 500;
  letter-spacing: 0;
  text-transform: none;
}
.foot-about p, .foot-company {
  color: var(--body);
  font-size: 13px;
}
.foot-column a, .foot a, .foot-about a:not(.brand), .foot-bottom a {
  color: var(--body);
}
.foot-column a:hover {
  color: var(--accent);
}
.foot-column li {
  margin-bottom: 4px;
}
.foot .brand-text b {
  color: var(--text);
}
.foot-lang-select {
  min-height: 38px;
  background: #fff;
  border: 1px solid var(--warm-line);
  color: var(--text);
}
.foot-bottom {
  grid-column: 1 / -1;
  align-items: center;
  color: #6b6b6b;
  font-size: 12px;
  border-top: 1px solid #e6dfd5;
}
.foot-bottom .foot-right {
  display: flex;
  gap: 10px;
  align-items: center;
  margin-left: auto;
}
.foot-bottom .pay-logo {
  width: 32px;
  height: 20px;
  filter: grayscale(1);
  opacity: .7;
}
.pay-name {
  background: none;
  border: 1px solid #ccc;
  color: #6b6b6b;
}

/* 4.10 Dark mode, based on this design */
html.pref-dark {
  --white: #16181c;
  --limestone: #1d2025;
  --pale: #1d2025;
  --text: #f1f1f1;
  --body: #c9c9c9;
  --muted: #a5a5a5;
  --line: #2e3137;
  --warm-line: #3a3d44;
  --field: #3a3d44;
  --accent: #7aa2ff;
  --gold: #7aa2ff;
  --gold-text: #7aa2ff;
  --gold-dark: #7aa2ff;
  --gold-50: #1f2a44;
  --on-light: #fff;
}
html.pref-dark body, html.pref-dark .section, html.pref-dark .section-white, html.pref-dark .section-cream, html.pref-dark .story, html.pref-dark .booking, html.pref-dark .how, html.pref-dark .route-intro, html.pref-dark .plan.section-white {
  background: #16181c;
  color: #c9c9c9;
}
html.pref-dark #vehicles, html.pref-dark .foot, html.pref-dark .panel {
  background: #1d2025;
}
html.pref-dark .panel {
  --white: #1d2025;
  --text: #f1f1f1;
  --body: #c9c9c9;
  color: #f1f1f1;
}
html.pref-dark h1, html.pref-dark h2, html.pref-dark h3, html.pref-dark .class-card h3, html.pref-dark .how-steps b, html.pref-dark .faq summary, html.pref-dark .route-top b, html.pref-dark .place-row span, html.pref-dark .class-price b, html.pref-dark .class-price .from-word, html.pref-dark .route-body h3 a, html.pref-dark .trust-cards b, html.pref-dark .foot h3, html.pref-dark .brand-text b, html.pref-dark .class-card .class-price b, html.pref-dark .sign-total, html.pref-dark .calc-total, html.pref-dark .vehicle em {
  color: #f1f1f1;
}
html.pref-dark .bar, html.pref-dark .bar.on-light, html.pref-dark .class-card, html.pref-dark .route-card, html.pref-dark .nav-panel, html.pref-dark .steps, html.pref-dark .how-price, html.pref-dark .intro-panel {
  background: #16181c;
}
html.pref-dark .bar nav a:not(.btn), html.pref-dark .bar.on-light nav a:not(.btn), html.pref-dark .nav-drop summary, html.pref-dark .nav-panel a, html.pref-dark .nav-panel button, html.pref-dark .lang-menu > button, html.pref-dark .bar.on-light .lang-menu > button, html.pref-dark .foot a, html.pref-dark .foot-column a {
  color: #d5d5d5;
}
html.pref-dark .brand-mark path {
  stroke: #f1f1f1;
}
html.pref-dark .menu-toggle span {
  background: #f1f1f1;
}
html.pref-dark .btn, html.pref-dark .btn:not(.quiet) {
  background: #2f5fe0;
  color: #fff;
}
html.pref-dark .btn.quiet, html.pref-dark .route-card .btn {
  background: none;
  border-color: #4a4d54;
  color: #f1f1f1;
}
html.pref-dark .class-card .btn {
  background: none;
  color: #7aa2ff;
}
html.pref-dark .field input, html.pref-dark .field select, html.pref-dark .field textarea, html.pref-dark .fare-search input, html.pref-dark .field .pick-btn {
  background-color: #16181c;
  color: #f1f1f1;
}
html.pref-dark .route-map, html.pref-dark .explore-map, html.pref-dark .region-map {
  background: #22262c;
  --isle-fill: #383c44;
  --isle-stroke: #4d525b;
}
html.pref-dark .plan-tabs, html.pref-dark .seg {
  background: #24272d;
}
html.pref-dark .plan-tabs button[aria-selected="true"], html.pref-dark .seg button[aria-pressed="true"] {
  background: #2f5fe0;
}
html.pref-dark .class-card > .slides {
  background: #24272d;
}
html.pref-dark .art {
  stroke: #c9c9c9;
}
html.pref-dark .pin-label, html.pref-dark .pin-tag text {
  fill: #1a1a1a;
}

/* 4.11 Smaller screens */
@media (max-width: 1360px) {
  #main-nav, html.pref-dark #main-nav {
    width: min(92vw, 380px);
    background: #fff;
    gap: 0;
    margin: 0;
  }
  #main-nav a:not(.btn), #main-nav .nav-drop summary {
    min-height: 48px;
    font-family: var(--sans);
    font-size: 16px;
    color: var(--text);
    border-bottom: 1px solid var(--line);
  }
  .nav-drop summary {
    justify-content: space-between;
  }
  .nav-panel {
    position: static;
    min-width: 0;
    padding: 0 0 8px 10px;
    border: 0;
    box-shadow: none;
  }
  .nav-panel a:not(.btn), #main-nav .nav-panel a:not(.btn) {
    border: 0;
    font-size: 15px;
  }
  .nav-panel .options-toggle {
    min-height: 44px;
  }
  .menu-row {
    display: block;
    margin: 8px 0;
  }
  .lang-menu > button, .bar.on-light .lang-menu > button {
    justify-content: flex-start;
    width: auto;
    min-height: 44px;
    border: 0;
  }
  .lang-list {
    position: static;
    width: auto;
    box-shadow: none;
    border: 1px solid var(--line);
  }
  .manage-pill {
    justify-content: flex-start;
    border-radius: 0;
    border-width: 0 0 1px;
    padding: 0;
  }
  .bar {
    display: flex;
    flex-wrap: nowrap;
  }
  .menu-toggle, .bar.on-light .menu-toggle {
    margin-left: 10px;
  }
  .bar-book {
    display: inline-block;
    margin-left: auto;
    padding: 8px 16px 6px;
    font-size: 14px;
  }
  .options-panel {
    right: 16px;
    bottom: auto;
    top: 70px;
  }
}
@media (max-width: 1100px) {
  .areas-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .foot {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .foot-about {
    grid-column: 1 / -1;
  }
}
@media (min-width: 761px) and (max-width: 1100px) {
  .widget-fields {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
  .route-pair {
    grid-column: 1 / -1;
  }
  .widget .btn[type="submit"] {
    grid-column: 1 / -1;
    justify-self: center;
  }
}
@media (max-width: 900px) {
  .story, .story.flip, .section-cream.story {
    grid-template-columns: minmax(0, 1fr);
    padding-inline: var(--gutter);
  }
  .faq.has-photo {
    grid-template-columns: minmax(0, 1fr);
  }
}
@media (max-width: 760px) {
  body {
    font-size: 16px;
  }
  .section, .section-white, .section-cream {
    padding-block: 48px;
  }
  h2 {
    font-size: 2rem;
  }
  .hero, .hero.has-hero-photo {
    min-height: 0;
    padding: 28px var(--gutter) 16px;
    border-radius: 0 0 24px 24px;
  }
  .hero h1, .hero > h1 {
    font-size: 2.3rem;
  }
  .hero > .widget {
    margin: 0;
    padding: 12px 14px 14px;
    border-radius: 12px;
    box-shadow: none;
  }
  .tabs {
    background: #f1f1f1;
  }
  .tabs button[aria-pressed="true"] {
    background: var(--accent);
    color: #fff;
  }
  .widget label, .combo-box > label {
    color: var(--body);
    font-size: 13px;
    font-weight: 400;
    letter-spacing: 0;
    text-transform: none;
  }
  .widget input, .widget .pick-btn, #quick-from-box input, #quick-search {
    border: 0;
    border-bottom: 1px solid #bbb;
    border-radius: 0;
    background-color: #fff;
  }
  .pax-control {
    border: 0;
    border-bottom: 1px solid #bbb;
    border-radius: 0;
  }
  .pax-control button {
    background: #f1f1f1;
    border-radius: 50%;
  }
  .route-pair::before {
    display: none;
  }
  .quick-swap {
    box-shadow: none;
  }
  .m-head button {
    background: #f1f1f1;
  }
  .m-steps span.on {
    background: var(--accent);
  }
  #m-back {
    background: #f1f1f1;
  }
  .widget .m-nav .btn {
    border-radius: 999px;
  }
  .trust-cards li {
    width: 100%;
  }
  .classes {
    flex-wrap: nowrap;
    justify-content: flex-start;
  }
  .classes .class-card {
    flex: 0 0 82%;
  }
  .brand-mark {
    width: 22px;
    height: 22px;
  }
  .brand-text b {
    font-size: .85rem;
  }
  .brand-text small {
    display: none;
  }
  .bar {
    padding-inline: 16px;
  }
  .route-grid .route-card {
    flex: 0 0 84%;
  }
  .areas-grid {
    grid-template-columns: minmax(0, 1fr);
  }
  .area-card {
    border-bottom: 1px solid var(--line);
  }
  .area-card summary::after {
    border-color: #6b6b6b;
  }
  .foot {
    grid-template-columns: minmax(0, 1fr);
  }
  .faq-contact {
    flex-direction: column;
    gap: 4px;
  }
  .faq-contact a {
    display: flex;
    align-items: center;
    min-height: 48px;
  }
  .mobile-cta, .mobile-cta.on-dark {
    background: #fff;
    border-top: 1px solid var(--line);
    box-shadow: none;
  }
  .mobile-cta .wa, .mobile-cta .call, .mobile-cta.on-dark .wa, .mobile-cta.on-dark .call {
    border-color: var(--warm-line);
    border-radius: 50%;
    color: var(--accent);
  }
  .mobile-cta .call svg, .mobile-cta.on-dark .call svg {
    stroke: var(--accent);
  }
  .mobile-cta .btn b {
    border-left-color: rgba(255, 255, 255, .5);
    color: #fff;
  }
  .story h2 {
    font-size: 1.6rem;
  }
}

/* 4.12 Corrections */
::selection {
  color: #1a1a1a;
}
.hero h1, .hero > h1 {
  width: 100%;
  max-width: none;
  text-align: center;
}
.hero > .widget {
  text-align: left;
}
.hero-more {
  display: block;
  width: max-content;
  margin-inline: auto;
}
.trust-band {
  padding-bottom: 40px;
}
.how-steps li.reveal::before, .how-steps li.reveal.seen::before, .how-steps li::before {
  background: none;
  color: var(--accent);
}
.how-steps li {
  padding: 0 0 14px;
}
.field .pick-btn {
  padding-left: 28px;
  background-position: 2px center;
}
.extras-title {
  font-family: var(--serif);
  font-size: 1.6rem;
  font-weight: 300;
}
.intro-link {
  color: var(--accent);
  font-weight: 400;
}
.area-card.ask-card b {
  color: var(--text);
  font-family: var(--sans);
  font-size: 1rem;
}
.area-card.ask-card span {
  color: var(--accent);
  font-size: 14px;
}
.class-card .class-price .currency, .class-price .from-word {
  color: var(--text);
}
@media (max-width: 760px) {
  .how-steps li {
    padding: 0 0 18px 48px;
  }
  .how-steps li::before {
    position: absolute;
    top: 0;
    left: 0;
    margin: 0;
  }
  .how-steps li:not(:last-child)::after {
    display: none;
  }
  .hero-more {
    margin-top: 12px;
  }
}
@media (min-width: 761px) {
  .hero .widget-note, .hero .widget-note b, .hero .widget-note .note-others, .hero .widget-note .currency {
    color: #fff;
  }
}
.route-links a, .route-copy p a, .story p a, .home-intro p a, .route-answer a {
  color: var(--accent);
  text-decoration: underline;
  text-underline-offset: 3px;
}
.tabs button {
  color: #444;
}
@media (min-width: 761px) {
  .tabs button {
    color: #fff;
  }
}
html.pref-dark .tabs button {
  color: #e5e5e5;
}
html.pref-dark .tabs {
  background: #2a2d33;
}
.class-each, .class-price small, .class-model {
  color: #666;
}
.trust-cards span, .area-from, .town-from {
  color: #666;
}
html.pref-dark .class-each, html.pref-dark .class-price small, html.pref-dark .class-model, html.pref-dark .trust-cards span, html.pref-dark .area-from, html.pref-dark .town-from {
  color: #aaa;
}
/* 4.20 Darker text, stronger tones */
:root {
  --text: #111;
  --body: #3d3d3d;
  --muted: #6b6b6b;
  --limestone: #f3eee6;
  --pale: #f3eee6;
  --line: #e3e3e3;
  --warm-line: #cfcfcf;
  --accent: #1f4fc9;
  --gold: #1f4fc9;
  --gold-text: #1f4fc9;
  --gold-dark: #1f4fc9;
  --gold-grad: #1f4fc9;
  --gutter: max(16px, calc((100vw - 1040px) / 2));
  --shadow-1: 0 1px 4px rgba(0, 0, 0, .05);
  --shadow-2: 0 6px 18px rgba(0, 0, 0, .08);
  --r-img: 6px;
}
body {
  color: var(--body);
  font-size: 16px;
}
h1, h2 {
  color: var(--text);
  font-weight: 300;
}
h2 {
  font-size: 2.3rem;
  margin-bottom: 12px;
}
.intro {
  margin: 0 0 32px;
  color: var(--body);
  font-size: 16px;
  max-width: 65ch;
}
.home-intro p, .route-copy p, .guide-copy p {
  max-width: 65ch;
  font-size: 16px;
}
.class-model, .class-each, .class-price small, .trust-cards span, .area-from, .town-from, .route-meta, .route-rows, .route-from, .step-count, .hero-below {
  color: var(--muted);
}
.hero-below {
  color: var(--body);
}

/* 4.21 One width, one rhythm */
.section, .section-white, .section-cream {
  padding-block: 96px;
}
.section-white + .section-white, .section-cream + .section-cream {
  padding-top: 0;
}
#vehicles {
  padding-block: 96px;
}
.story, .story.flip, .section-cream.story {
  padding: 48px var(--gutter);
  gap: 48px;
  grid-template-columns: repeat(2, minmax(0, 1fr));
}
.story + .story {
  padding-top: 0;
}
.story h2 {
  font-size: 2.3rem;
  margin-bottom: 12px;
}
.story p {
  font-size: 16px;
}
.story-art, svg.story-art, .story-media img {
  width: 100%;
  height: auto;
  aspect-ratio: 4 / 3;
  object-fit: cover;
  border-radius: var(--r-img);
}
img.hero-photo, .photo-grid img, .faq-picture img, .route-strip {
  object-fit: cover;
}
.crumbs, body.booking-open .crumbs {
  padding: 16px var(--gutter) 0;
}
.crumbs ol {
  justify-content: flex-start;
}
.booking {
  padding-inline: var(--gutter);
}
.foot {
  padding-inline: var(--gutter);
  line-height: 1.8;
}
.foot-column a, .foot a, .foot-about a:not(.brand), .foot-bottom a {
  color: #333;
}
.foot h3 {
  color: #111;
}
html.pref-dark .foot-column a, html.pref-dark .foot a {
  color: #d5d5d5;
}
html.pref-dark .foot h3 {
  color: #f1f1f1;
}

/* 4.22 Hero */
.hero, .hero.has-hero-photo {
  background: linear-gradient(135deg, #1c2a3f, #15181d);
}
.hero > h1, .hero h1 {
  font-weight: 400;
  letter-spacing: .005em;
}
@media (min-width: 761px) {
  .widget-fields {
    grid-template-columns: minmax(0, 2.2fr) repeat(2, minmax(0, 1fr)) minmax(0, 1fr) auto;
  }
  .widget label, .combo-box > label, .combo-box label, .widget .pax-label {
    color: rgba(255, 255, 255, .78);
    font-size: 12px;
  }
  .widget input, .widget .pick-btn, #quick-from-box input, #quick-search {
    min-height: 44px;
    color: #fff;
    font-size: 15px;
  }
  .pax-control {
    min-height: 44px;
  }
  .widget .btn[type="submit"] {
    min-height: 44px;
  }
  .widget-foot {
    justify-content: flex-start;
  }
  .hero-more {
    margin-top: 24px;
  }
}
.quick-extras {
  padding-left: 0;
}

/* 4.23 Cards */
.trust-band {
  padding: 40px var(--gutter);
}
.trust-cards {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 16px;
}
.trust-cards li {
  width: auto;
  padding: 20px;
  border-color: #e3e3e3;
  box-shadow: var(--shadow-1);
}
.trust-cards svg {
  width: 28px;
  height: 28px;
  stroke: #333;
  stroke-width: 1.5;
}
.trust-cards b {
  font-size: 17px;
}
.trust-cards span {
  font-size: 14px;
}
.classes {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 16px;
}
.class-card {
  box-shadow: var(--shadow-1);
}
.class-card .art, .class-card svg.art, .class-card .slide svg.art {
  stroke: #222;
  stroke-width: 4;
}
.class-card > div:last-child, .route-body {
  padding: 20px;
}
.class-card h3, .route-body h3, .stay-grid b {
  font-family: var(--sans);
  font-size: 17px;
  font-weight: 500;
}
.class-model {
  font-size: 14px;
}
.class-bullets {
  font-size: 15px;
  line-height: 1.6;
}
.class-card .class-price {
  font-size: 15px;
}
.class-card .class-price b, .route-top b, .class-price .from-word {
  font-size: 20px;
}
.class-card .btn, .section-dark .class-card .btn, .class-card .btn:hover {
  margin-top: 12px;
  padding: 7px 16px 5px;
  border: 1px solid var(--accent);
  border-radius: 999px;
  font-size: 15px;
}
.class-card .btn:hover {
  background: var(--accent);
  color: #fff;
}
.compare-open {
  min-height: 44px;
  padding: 8px 22px 6px;
  border: 1px solid var(--warm-line);
  border-radius: 999px;
  color: var(--text);
  font-size: 15px;
}
.compare-open:hover {
  border-color: var(--accent);
  color: var(--accent);
}
.route-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 16px;
}
@media (min-width: 1500px) {
  .route-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}
.route-card {
  box-shadow: var(--shadow-1);
}
.route-from {
  margin: -4px 0 0;
  font-size: 14px;
}
.route-meta, .route-card .route-meta, .route-rows {
  font-size: 14px;
}
.route-pill, .section-dark .route-pill {
  color: var(--muted);
  font-size: 14px;
}
#routes-all, .section-dark #routes-all {
  min-height: 44px;
  padding: 8px 24px 6px;
  background: #fff;
  border: 1px solid var(--warm-line);
  border-radius: 999px;
  color: var(--text);
  font-size: 15px;
  font-weight: 500;
}
.routes-end::before, .routes-end::after {
  display: none;
}
.routes-end {
  justify-content: center;
}
.plan-tabs, .seg, .section-dark .plan-tabs, .section-dark .seg {
  background: #ececec;
}
.plan-tabs button, .seg button, .section-dark .seg button {
  color: #222;
}

/* 4.24 How it works and your price */
.how {
  align-items: start;
}
.how-steps {
  position: relative;
}
.how-steps::before {
  content: "";
  position: absolute;
  top: 20px;
  right: 16%;
  left: 40px;
  height: 1px;
  background: #cfcfcf;
}
.how-steps li::before, .how-steps li.reveal::before, .how-steps li.reveal.seen::before {
  position: relative;
  z-index: 1;
  width: 40px;
  height: 40px;
  background: #fff;
  border: 1px solid #333;
  color: #111;
  font-size: 15px;
}
.how-price {
  padding: 0;
  border: 0;
  border-radius: 0;
}
.included li::before {
  content: "✓";
  width: auto;
  height: auto;
  background: none;
  color: #333;
  font-weight: 500;
}
html.pref-dark .how-steps li::before {
  background: #16181c;
  border-color: #aaa;
  color: #f1f1f1;
}
html.pref-dark .included li::before {
  color: #d5d5d5;
}

/* 4.25 Airport text and areas */
.home-intro-band {
  align-items: start;
}
.home-intro h2 {
  margin-top: 0;
}
.intro-panel {
  margin: 0;
  padding: 20px;
  border-color: #e3e3e3;
  box-shadow: var(--shadow-1);
}
.intro-panel li, .intro-panel .time-bars li {
  color: #333;
}
.time-bars i {
  background: #444;
}
html.pref-dark .intro-panel li, html.pref-dark .intro-panel .time-bars li {
  color: #d5d5d5;
}
.areas-grid {
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 16px;
}
.area-card, .section-dark .area-card, .area-card.ask-card {
  padding: 20px;
  background: #fff;
  border: 1px solid #e3e3e3;
  border-radius: 8px;
  box-shadow: var(--shadow-1);
}
.area-card summary {
  justify-content: flex-start;
  gap: 8px;
}
.area-card h3, .section-dark .area-card h3 {
  font-weight: 500;
  font-size: 17px;
}
.area-card li {
  justify-content: flex-start;
  gap: 8px;
}
html.pref-dark .area-card {
  background: #1d2025;
  border-color: #2e3137;
}

/* 4.26 Maps */
.tool-panel .route-map, .route-map, .map, .region-map, .section-dark .route-map, .explore-map, .tool-panel .explore-map {
  background: #dbe6f3;
  --isle-fill: #f6f2ec;
  --isle-stroke: #7d8a99;
}
.map .island {
  fill: #f6f2ec;
  stroke: #7d8a99;
}
.explore-pin {
  fill: var(--accent);
  stroke: #fff;
  stroke-width: 3;
}
.explore-pin:hover, .explore-pin.on {
  fill: #111;
}
.explore-layout {
  align-items: stretch;
}
.explore-map {
  position: static;
  height: 100%;
}
.explore-list {
  max-height: none;
  overflow: visible;
  columns: 2;
  column-gap: 20px;
}
.explore-list li {
  break-inside: avoid;
}
.explore-item {
  padding: 9px 6px 7px;
}
.explore-item span {
  display: none;
}
.explore-item b {
  font-size: 15px;
}
.explore-item em {
  font-size: 15px;
}

/* 4.27 Dark band and questions */
.contact-band {
  display: flex;
  flex-wrap: wrap;
  gap: 14px 40px;
  justify-content: space-between;
  align-items: center;
  padding: 56px var(--gutter);
  background: #14181f;
  color: #d5d8dc;
}
.contact-band h2 {
  margin: 0 0 4px;
  color: #fff;
  font-size: 2rem;
}
.contact-band p {
  margin: 0;
}
.contact-band .links {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}
.contact-band a {
  display: inline-flex;
  align-items: center;
  min-height: 44px;
  padding: 8px 22px 6px;
  border: 1px solid rgba(255, 255, 255, .5);
  border-radius: 999px;
  color: #fff;
  font-size: 15px;
}
.contact-band a:first-child {
  background: #fff;
  border-color: #fff;
  color: #111;
}
.contact-band a:hover {
  text-decoration: none;
}
.faq, .faq.has-photo {
  display: grid;
  grid-template-columns: minmax(0, 1.2fr) minmax(0, .8fr);
  gap: 56px;
  justify-content: stretch;
  align-items: start;
}
.faq-main, .faq.has-photo .faq-main {
  max-width: none;
  margin: 0;
}
.faq-side {
  position: sticky;
  top: 84px;
}
.faq-picture {
  aspect-ratio: 4 / 6;
  overflow: hidden;
  border-radius: var(--r-img);
  background: #f3eee6;
}
.faq-picture svg {
  width: 100%;
  height: 100%;
  display: block;
}
.faq summary {
  min-height: 52px;
  padding: 12px 0 10px;
  font-size: 16px;
  font-weight: 500;
}
.faq details p {
  font-size: 16px;
  color: var(--body);
}
.faq-list details.m-hidden {
  display: none;
}
.faq-more-button {
  display: block;
  width: auto;
  margin-top: 16px;
}
.faq-more-button[hidden] {
  display: none;
}

/* 4.28 Routes, stay cards */
#routes {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  gap: 0 24px;
  align-items: center;
}
#routes > * {
  grid-column: 1 / -1;
}
#routes > h2 {
  grid-column: 1;
  margin: 0;
}
#routes > .route-tools {
  grid-column: 2;
  grid-row: 1;
  justify-content: flex-end;
  margin: 0;
}
#routes > .route-tools .fare-search {
  flex: 0 1 300px;
}
#routes > .intro {
  margin-top: 12px;
}
.stay-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 16px;
  margin-top: 0;
}
.stay-grid a {
  padding: 20px;
  box-shadow: var(--shadow-1);
  border-color: #e3e3e3;
}
.stay-grid svg {
  display: block;
  width: 28px;
  height: 28px;
  margin-bottom: 8px;
  fill: none;
  stroke: #333;
  stroke-width: 1.5;
  stroke-linecap: round;
  stroke-linejoin: round;
}
.stay-grid span {
  font-size: 15px;
}
html.pref-dark .stay-grid svg, html.pref-dark .trust-cards svg {
  stroke: #d5d5d5;
}

/* 4.29 Smaller screens */
.trust-dots {
  display: none;
}
@media (max-width: 1100px) {
  .areas-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .route-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .classes {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .trust-cards, .stay-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .how-steps::before {
    right: 8%;
  }
}
@media (max-width: 900px) {
  .story, .story.flip, .section-cream.story {
    grid-template-columns: minmax(0, 1fr);
  }
  .story .story-media, .story.flip .story-media {
    order: -1;
  }
  .faq, .faq.has-photo {
    grid-template-columns: minmax(0, 1fr);
  }
  .faq-side {
    display: none;
  }
}
@media (max-width: 760px) {
  body, .class-bullets, .class-card .class-price, .stay-grid span, .trust-cards span, .route-meta, .route-rows, .intro-panel li {
    font-size: 16px;
  }
  .section, .section-white, .section-cream, #vehicles {
    padding-block: 56px;
  }
  .contact-band {
    padding-block: 56px;
  }
  .hero > .widget {
    padding: 0;
    background: none;
    border-radius: 0;
  }
  .tabs {
    background: rgba(255, 255, 255, .18);
  }
  .tabs button {
    color: #fff;
  }
  .m-head, .m-head span {
    color: #fff;
  }
  .m-head b {
    color: #fff;
  }
  .m-steps span {
    background: rgba(255, 255, 255, .3);
  }
  .m-steps span.on {
    background: #fff;
  }
  .widget label, .combo-box > label {
    color: #fff;
    font-size: 14px;
  }
  .widget input, .widget .pick-btn, #quick-from-box input, #quick-search {
    min-height: 48px;
    background-color: #fff;
    border: 0;
    border-radius: 8px;
    color: #111;
    font-size: 16px;
  }
  .native-wrap .pick-btn {
    color: #111;
  }
  .pax-control {
    background: #fff;
    border: 0;
    border-radius: 8px;
  }
  .widget-foot, .widget-note, .earliest-note, .night-note, .widget-note b, .note-others {
    color: #fff;
  }
  .earliest-note {
    background-image: none;
    padding-left: 0;
  }
  .quick-extras > button, .quick-extras label {
    color: #fff;
  }
  .quick-swap {
    background: #fff;
  }
  .m-time-chips h4 {
    color: #fff;
  }
  .trust-band {
    padding-block: 32px;
  }
  .trust-cards {
    display: flex;
    gap: 12px;
    margin-inline: calc(var(--gutter) * -1);
    padding-inline: var(--gutter);
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    scrollbar-width: none;
  }
  .trust-cards li {
    flex: 0 0 84%;
    scroll-snap-align: center;
  }
  .trust-dots {
    display: flex;
    justify-content: center;
    gap: 8px;
    margin-top: 12px;
  }
  .trust-dots span {
    width: 8px;
    height: 8px;
    background: #cfcfcf;
    border-radius: 50%;
  }
  .trust-dots span.on {
    background: #333;
  }
  .classes {
    display: flex;
  }
  .areas-grid {
    grid-template-columns: minmax(0, 1fr);
  }
  .route-grid {
    display: flex;
  }
  .stay-grid {
    grid-template-columns: minmax(0, 1fr);
  }
  #routes {
    display: block;
  }
  #routes > .route-tools {
    margin-top: 14px;
    justify-content: stretch;
  }
  #routes > .route-tools .fare-search {
    flex: 1 1 100%;
  }
  .explore-list {
    columns: 1;
  }
  .explore-item span {
    display: block;
    font-size: 15px;
  }
  .how-steps::before {
    top: 0;
    bottom: 18px;
    right: auto;
    left: 20px;
    width: 1px;
    height: auto;
  }
  .how-steps li {
    padding-left: 54px;
  }
  .how-price {
    margin-top: 12px;
  }
  .contact-band {
    flex-direction: column;
    align-items: stretch;
  }
  .contact-band a {
    justify-content: center;
  }
  .faq summary {
    min-height: 56px;
  }
  .foot {
    font-size: 14px;
  }
}

/* 4.30 One gap between white sections, full stay row, area chevrons */
#how + section, #routes + section, #routes + section + #plan {
  padding-top: 0;
}
.stay-grid {
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
}
.area-card summary::after {
  margin-left: auto;
}
@media (max-width: 900px) {
  .stay-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
@media (max-width: 600px) {
  .stay-grid {
    grid-template-columns: minmax(0, 1fr);
  }
}
#routes + section h2, section[class*="areas-"] h2 {
  margin-bottom: 32px;
}
