/* Finish only: preserve composition, assets, content and quote logic.
   Remove this stylesheet link to restore the approved visual baseline. */
:root {
  --link: #006d60;
  --finish-edge: rgb(0 44 62 / .11);
  --finish-shadow: 0 2px 5px rgb(0 44 62 / .035), 0 12px 28px rgb(0 44 62 / .075);
  --finish-ease: cubic-bezier(.2,.7,.2,1);
  --finish-radius: 16px;
}
/* Existing dark-green token meets AA on white and the tinted section surfaces. */
.eyebrow { color: var(--link); }
.button { color: var(--ink); }
#site-footer small a { color: #c9d9df; }
.footer-grid > div:not(:first-child) > a { min-height: 28px; padding-block: 3px; }
.section-heading h2 { font-size: clamp(28px, 2.5vw, 38px); line-height: 1.14; letter-spacing: -.035em; }
.section-top { margin-bottom: 28px; }
.section-top > p { max-width: 450px; font-size: 16px; line-height: 1.6; }

/* Glass belongs to the surface, never to its controls or their opacity.
   No overflow/contain/transform: anchored and fullscreen panels stay unclipped.
   Solid base is also the fallback for browsers without backdrop filtering. */
.quote-composer-surface {
  border-radius: 0 12px 12px 12px;
  background: #f6f9f8;
  border-color: rgb(255 255 255 / .85);
  -webkit-backdrop-filter: none;
  backdrop-filter: none;
  box-shadow:
    inset 0 1px 0 rgb(255 255 255 / .98),
    inset 1px 0 0 rgb(255 255 255 / .7),
    inset -1px -1px 0 rgb(255 255 255 / .38),
    inset 0 -3px 6px rgb(31 81 83 / .08),
    0 4px 8px rgb(0 35 50 / .06),
    0 18px 38px rgb(0 35 50 / .16);
}
.intent-switch { background-color: #f6f9f8; }
@supports ((backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px))) {
  .quote-composer-surface, .intent-switch {
    background:
      radial-gradient(ellipse at 0 0, rgb(255 255 255 / .65), transparent 55%),
      linear-gradient(125deg, rgb(255 255 255 / .4), rgb(255 255 255 / .08) 42%, rgb(225 249 244 / .14) 75%, rgb(255 255 255 / .38)),
      rgb(255 255 255 / .55);
    -webkit-backdrop-filter: blur(14px) saturate(135%) brightness(1.04);
    backdrop-filter: blur(14px) saturate(135%) brightness(1.04);
  }
}
@media (prefers-reduced-transparency: reduce), (prefers-contrast: more) {
  .quote-composer-surface {
    background: #f6f9f8;
    -webkit-backdrop-filter: none;
    backdrop-filter: none;
    border-color: #78918d;
  }
}
@media (forced-colors: active) {
  .quote-composer-surface {
    background: Canvas;
    border-color: CanvasText;
    box-shadow: none;
    -webkit-backdrop-filter: none;
    backdrop-filter: none;
  }
}
.intent-switch {
  border-radius: 10px 10px 0 0;
  box-shadow: inset 0 1px 0 rgb(255 255 255 / .95), inset 1px 0 0 rgb(255 255 255 / .7), 0 5px 14px rgb(0 35 50 / .09);
}
.intent-switch label { background: transparent; border-right-color: rgb(0 44 62 / .12); cursor: pointer; }
.intent-option { box-shadow: inset 0 1px 0 rgb(255 255 255 / .65); }
.intent-switch input:checked + .intent-option {
  background: var(--green);
  box-shadow: inset 0 1px 0 rgb(255 255 255 / .9), inset 1px 0 0 rgb(255 255 255 / .45), inset -1px -1px 0 rgb(255 255 255 / .25), inset 0 -3px 6px rgb(0 100 65 / .09);
}
/* Same approved green, with a translucent tint over the shared glass surface.
   Paint only: no element opacity, extra hit targets, filters or layout changes. */
@supports (background: color-mix(in srgb, white, transparent)) {
  .intent-switch input:checked + .intent-option {
    background:
      linear-gradient(135deg, rgb(255 255 255 / .24), rgb(255 255 255 / .03) 42%, transparent 58%, rgb(255 255 255 / .12)),
      color-mix(in srgb, var(--green) 90%, transparent);
  }
}
@media (prefers-reduced-transparency: reduce), (prefers-contrast: more) {
  .intent-switch { background: #f6f9f8; -webkit-backdrop-filter: none; backdrop-filter: none; }
  .intent-switch input:checked + .intent-option { background: var(--green); }
}
@media (forced-colors: active) {
  .intent-switch { background: Canvas; -webkit-backdrop-filter: none; backdrop-filter: none; box-shadow: none; }
  .intent-switch input:checked + .intent-option { background: Highlight; color: HighlightText; outline: 2px solid Highlight; outline-offset: -2px; }
}
.field__control {
  border-radius: 8px;
  border-color: rgb(0 44 62 / .14);
  box-shadow: 0 1px 2px rgb(0 44 62 / .025);
}
.field__control:focus-within {
  border-color: #00867d;
  box-shadow: 0 0 0 4px rgb(0 134 125 / .08);
}
.button {
  border-radius: 8px;
  box-shadow: 0 1px 0 rgb(255 255 255 / .16) inset, 0 3px 8px rgb(0 75 49 / .09);
}
.route-label { border-radius: 8px; box-shadow: 0 3px 12px rgb(0 35 50 / .14); }
.hero-copy h1 { text-shadow: 0 2px 12px rgb(0 30 45 / .12); }

/* Product imagery and fare information share the card without squeezing copy. */
.table-scroll { border-radius: 10px; border-color: var(--finish-edge); box-shadow: var(--finish-shadow); }
tbody td:not(:last-child) { font-variant-numeric: tabular-nums; }
.vehicle-pair { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 24px; }
.vehicle-card, .vehicle-card--luxury {
  grid-template-columns: minmax(0,.72fr) minmax(0,1fr);
  gap: 18px; padding: 28px 24px 28px 14px; min-height: 360px;
  border-radius: var(--finish-radius); border-color: var(--finish-edge);
  background: linear-gradient(105deg, #f0f6f3, #fff 48%);
  box-shadow: var(--finish-shadow);
}
.vehicle-card > div, .vehicle-card--luxury > div { padding: 0; align-self: center; }
.vehicle-card h3 { font-size: 24px; line-height: 1.18; margin-bottom: 14px; text-wrap: balance; }
.vehicle-card > img { height: 225px; }
.vehicle-card > .vehicle-cutout { filter: drop-shadow(0 8px 5px rgb(0 33 48 / .14)); }
.vehicle-extras { margin-top: 18px; border: 1px solid var(--finish-edge); border-radius: 12px; padding: 18px 24px; background: #f6f8f8; }
.fare-choices a { border-radius: 7px; min-height: 48px; font-size: 14px; display: flex; flex-direction: column; justify-content: center; }
.fare-choices .fare-choice--premium { background: #edf8f2; border-color: #72bb9a; color: #005e40; }
.vehicle-card > div > a { display: inline-flex; align-items: center; gap: 6px; max-width: 100%; min-height: 44px; font-size: 14px; }
.vehicle-card p { font-size: 16px; line-height: 1.6; margin-bottom: 18px; }
.fare-choices { gap: 8px; margin-bottom: 12px; }
.destination-grid { align-items: stretch; gap: 24px; }
.destination-grid article {
  display: flex; flex-direction: column; min-width: 0; background: #fff;
  border: 1px solid var(--finish-edge); border-radius: var(--finish-radius);
  box-shadow: var(--finish-shadow);
}
.destination-photo { border-radius: 15px 15px 0 0; overflow: hidden; }
.destination-grid h3 { margin: 20px 18px 8px; font-size: 21px; line-height: 1.25; }
.destination-grid p { font-size: 14px; line-height: 1.5; }
.destination-grid article > p { padding: 0 18px 16px; }
.destination-grid article > a:last-child { display: flex; align-items: center; justify-content: space-between; gap: 8px; min-height: 48px; font-size: 14px; margin: auto 18px 12px; border-top: 1px solid var(--line); text-decoration: none; font-weight: 650; }
.prices-content tbody a { display: inline-flex; align-items: center; min-height: 44px; }
.prices-content .table-note { font-size: 13px; line-height: 1.55; }
.guide-mosaic img { border-radius: 8px; }
.destination-photo img { border-radius: 0; box-shadow: none; }
.guide-mosaic img { box-shadow: 0 2px 4px rgb(0 44 62 / .05), 0 6px 12px rgb(0 44 62 / .08); }
.arrival-photo { box-shadow: 5px 0 16px rgb(0 44 62 / .06); }
.review-feature {
  border-left-color: rgb(0 134 117 / .3);
  border-radius: 0 10px 10px 0;
  background: linear-gradient(90deg, rgb(233 246 240 / .65), rgb(255 255 255 / 0) 85%);
  box-shadow: -3px 0 12px rgb(0 44 62 / .025);
}
.faq-list { display: grid; gap: 10px; border: 0; background: transparent; box-shadow: none; border-radius: 0; }
.faq-list > details { border: 1px solid var(--finish-edge); border-radius: 12px; background: #fff; box-shadow: 0 3px 10px rgb(0 44 62 / .035); }
.faq-list > details:first-child { border-radius: 12px; }
.faq-list summary { min-height: 64px; padding: 18px 20px; gap: 16px; font-size: 16px; line-height: 1.45; border-radius: inherit; }
.faq-list summary > img, .faq-list summary > img.icon { flex: 0 0 30px; width: 30px; height: 30px; padding: 5px; border: 1px solid var(--line); border-radius: 50%; background: #f6f8f8; transform: rotate(90deg); }
.faq-list details[open] > summary > img { transform: rotate(-90deg); }
.faq-list details > p { padding: 0 18px 20px; font-size: 15px; line-height: 1.65; max-width: 78ch; }
.faq-list details[open] > summary { color: #006d60; }
.faq-list > details[open] { border-color: #72bb9a; background: linear-gradient(120deg,#edf8f2,#fff 60%); box-shadow: 0 8px 24px rgb(0 44 62 / .055); }
.faq-list .more-answers > details { margin: 0 16px 10px; border-top: 1px solid var(--line); }
.review-byline > img { box-shadow: 0 0 0 3px white, 0 0 0 4px rgb(0 44 62 / .08); }
.review-feature--pair { display: block; min-width: 0; padding: 0; border: 0; background: transparent; box-shadow: none; }
.review-pair { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 20px; }
.review-quote { display: flex; flex-direction: column; min-width: 0; padding: 26px; border: 1px solid var(--finish-edge); border-radius: var(--finish-radius); background: #fff; box-shadow: var(--finish-shadow); }
.review-feature--pair blockquote { font: 550 21px/1.55 'Public Sans',Arial,sans-serif; letter-spacing: -.015em; flex: 1; }
.review-feature--pair .review-byline { gap: 10px; flex-wrap: wrap; font-size: 12px; }
.review-feature--pair .stars img { width: 17px; height: 17px; }
.review-feature--pair .review-byline > img { width: 28px; height: 28px; }
.review-feature--pair > a { display: inline-block; max-width: none; margin-top: 20px; white-space: normal; }
@media (max-width: 1000px) {
  .review-pair { grid-template-columns: 1fr; gap: 20px; }
}
.footer-bottom { border-top-color: rgb(255 255 255 / .18); }

/* Give editorial sections room without changing the hero or booking geometry. */
#main-content > .section { padding-block: 76px; }
.arrival-section .arrival-copy { padding-block: 48px; }
.arrival-section .arrival-photo img { max-height: none; }
#hotel-transfers .hotel-links { padding-block: 20px 44px; }
#approved-close > .shell { padding-block: 32px; }

@media (max-width: 832px) {
  #main-content > .section { padding-block: 48px; }
  .vehicle-pair { grid-template-columns: 1fr; gap: 18px; }
  .vehicle-card, .vehicle-card--luxury { min-height: 0; }
  .destination-grid { gap: 20px 14px; }
  .destination-grid h3 { font-size: 18px; margin: 16px 12px 8px; }
  .destination-grid article > p { padding-inline: 12px; font-size: 13px; }
  .destination-grid article > a:last-child { margin-inline: 12px; font-size: 13px; }
  .review-quote { padding: 22px; }
  .review-feature--pair blockquote { font-size: 20px; }
  .arrival-section .arrival-copy { padding-block: 40px; }
  #hotel-transfers .hotel-links { padding-block: 12px 36px; }
}

/* Visible keyboard affordances; no essential interaction depends on hover. */
.desktop-nav a { text-decoration-thickness: 1px; text-underline-offset: 7px; }
.desktop-nav a:focus-visible, .footer-grid a:focus-visible { text-decoration: underline; }
.faq-list summary:focus-visible { outline-offset: -3px; }

@media (hover: hover) and (pointer: fine) {
  .desktop-nav a:hover { color: var(--link); text-decoration: underline; }
  .footer-grid a:hover { text-decoration: underline; text-underline-offset: 4px; }
  .field__control:hover { border-color: rgb(0 100 86 / .4); }
  .intent-switch label:hover input:not(:checked) + .intent-option { box-shadow: 0 -2px 0 rgb(0 134 125 / .22) inset; }
  .vehicle-card:hover { border-color: rgb(0 134 125 / .24); box-shadow: 0 3px 8px rgb(0 44 62 / .045), 0 16px 32px rgb(0 44 62 / .1); }
  .destination-grid article:hover, .destination-grid article:focus-within { border-color: #72bb9a; box-shadow: 0 8px 28px rgb(0 44 62 / .12); }
  .prices-content tbody tr:hover { background: #f3f9f6; }
  .faq-list summary:hover { background: #f0f7f4; }
}

/* Micro-motion only; nothing loops, appears on scroll, or delays initial content. */
@media (prefers-reduced-motion: no-preference) {
  .button, .field__control, .vehicle-card, .intent-option, .faq-list summary {
    transition: border-color 160ms var(--finish-ease), background-color 160ms var(--finish-ease), box-shadow 180ms var(--finish-ease);
  }
  .button > .link-arrow, .quote-composer__submit::after {
    display: inline-block;
    transition: transform 180ms var(--finish-ease);
  }
  .faq-list summary .icon { transition: transform 180ms var(--finish-ease); }
  @media (hover: hover) and (pointer: fine) {
    .button:hover > .link-arrow, .quote-composer__submit:hover::after { transform: translateX(3px); }
  }
  .button:active { box-shadow: 0 1px 3px rgb(0 44 62 / .12) inset; }
}

@media (max-width: 832px) {
  .quote-composer-surface { border-radius: 0 0 12px 12px; }
}
@media (prefers-reduced-motion: reduce) {
  .button, .button::after, .button > .link-arrow, .field__control,
  .vehicle-card, .intent-option, .faq-list summary, .faq-list summary .icon {
    transition: none;
    animation: none;
  }
}
.home-fare-notice{margin:12px 0 0;padding:12px 16px;border:1px solid var(--line);border-radius:12px;background:#fff;color:var(--ink);font-size:14px}
.quote-fare[data-selected="true"]{border-color:var(--green,#00bc71);box-shadow:0 0 0 2px #00bc7133}
.server-quote-status{padding:24px 0;min-height:120px}
.server-quote-status .quote-actions{display:flex;flex-wrap:wrap;align-items:center;gap:12px}
[data-home-price-link]{text-underline-offset:4px}
[data-home-price-link]:hover{text-decoration:underline}
.booking-fullscreen--party{top:auto;bottom:0;height:auto;max-height:min(480px,90dvh);border-radius:22px 22px 0 0;padding-bottom:env(safe-area-inset-bottom)}
.booking-fullscreen--party .party-popover{position:static!important;inset:auto!important;transform:none!important;width:100%;max-width:none;max-height:none;box-shadow:none;border:0;padding:0 4px}
.booking-fullscreen--party .party-stepper button{width:44px;height:44px}
.vehicle-capacity{display:flex;flex-wrap:wrap;gap:10px 20px;margin:12px 0 16px;color:#183c46;font-size:14px;font-weight:600;line-height:1.5}
.vehicle-capacity span{display:inline-flex;align-items:center;gap:7px}
.vehicle-capacity .icon{width:20px;height:20px;flex:none}
@media(max-width:600px){
  .vehicle-card,.vehicle-card--luxury{grid-template-columns:minmax(110px,.85fr) minmax(0,1.15fr);gap:16px;padding:20px 16px;align-items:center}
  .vehicle-card>img{grid-column:1;grid-row:1 / 3;height:140px}
  .vehicle-card>div{display:contents}
  .vehicle-card h3,.vehicle-card .vehicle-capacity{grid-column:2;margin:0}
  .vehicle-card h3{font-size:21px}
  .vehicle-card .vehicle-capacity{gap:8px;font-size:13px}
  .vehicle-card>div>p,.vehicle-card .fare-choices,.vehicle-card>div>a{grid-column:1 / -1;margin:0}
  .vehicle-card .fare-choices a{min-height:44px;display:flex;flex-direction:column;justify-content:center}
}
.footer-social{display:flex;flex-wrap:wrap;gap:10px;padding-block:28px;border-top:1px solid #ffffff24}
#site-footer .footer-social a{display:inline-flex;align-items:center;gap:9px;padding:10px 13px;border:1px solid #ffffff30;border-radius:10px;text-decoration:none;font-size:13px;color:#fff;min-height:44px}
#site-footer .footer-social a:hover{background:#ffffff15;border-color:#ffffff80}
.footer-social svg{flex:none}
.prices-content .home-route-name{display:block;min-width:135px}
.prices-content .home-route-estimate{display:grid;gap:5px;margin-top:8px;font-size:13px;font-weight:450;color:#476269;line-height:1.35}
.prices-content .home-route-estimate span{display:flex;align-items:center;gap:6px;font-size:13px}
.home-route-estimate svg{width:16px;height:16px;flex:none;color:#187146}
.route-overview{background:#f0f7f3;border-bottom:1px solid #d7e5dd}
.route-overview-inner{display:grid;grid-template-columns:minmax(220px,1fr) auto;align-items:center;column-gap:60px;row-gap:18px;padding-block:30px}
.route-overview-heading>p{font-size:13px;font-weight:650;color:#316d4b;margin:0 0 8px}
.route-overview-heading h2{font-size:clamp(22px,2.2vw,30px);line-height:1.2;letter-spacing:-.025em;margin:0}
.route-overview-data{display:flex;gap:45px;margin:0}
.route-overview-data>div{padding-left:24px;border-left:1px solid #bcd5c7}
.route-overview-data dt{display:flex;align-items:center;gap:8px;font-size:13px;color:#415e54;margin-bottom:8px}
.route-overview-data dt svg{color:#146b40;flex:none}
.route-overview-data dd{margin:0;font-size:29px;line-height:1.2;font-weight:700;letter-spacing:-.035em;color:#082f3a}
.route-overview-data dd span{font-size:18px}
.route-overview .route-overview-note{grid-column:1/-1;max-width:100%;margin:0;font-size:13px;line-height:1.6;color:#486359}
@media(max-width:832px){.route-overview-inner{grid-template-columns:1fr;gap:20px;padding-block:26px}.route-overview-data{gap:24px;justify-content:flex-start;flex-wrap:wrap}.route-overview-data>div{padding-left:15px}.route-overview-data dd{font-size:25px}.route-overview-data dt{font-size:12px}.route-overview .route-overview-note{font-size:13px}}
@media(min-width:360px) and (max-width:832px){.route-overview-data{display:grid;grid-template-columns:1.5fr 1fr;gap:16px}.route-overview-data dt{min-height:32px}.route-overview-data dt svg{width:18px;height:18px}}
