/* Late refinements, price tables, and route-specific responsive overrides. Load last to preserve cascade. */

/* v1.21 review polish: consistent speedboat headers, shared card rhythm, and calmer booking/nav. */
.site-nav .nav-book {
  background: transparent;
  color: var(--ink);
}
.site-nav .nav-book:hover {
  background: transparent;
  color: var(--aqua-dark);
}
.page-photo-hero,
.booking-banner,
.sites-hero.consistent-page-hero {
  height: clamp(190px, 26vw, 360px);
  min-height: 0;
  max-height: 360px;
  overflow: hidden;
  position: relative;
}
.page-photo-hero img,
.booking-banner img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 50%;
  filter: brightness(0.68);
}
.page-photo-hero:after,
.booking-banner:after,
.sites-hero.consistent-page-hero:after {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(90deg, rgba(4, 25, 38, 0.42), rgba(4, 25, 38, 0.08));
}
.sites-hero.consistent-page-hero {
  background: none;
}
.sites-hero.consistent-page-hero:before {
  content: '';
  position: absolute;
  inset: 0;
  background: url('/assets/boat-lfd-hero.jpg') center 50% / cover no-repeat;
  filter: brightness(0.68);
}
.sites-hero.consistent-page-hero .sites-hero-copy {
  position: relative;
  z-index: 1;
}
.sites-hero.consistent-page-hero .sites-hero-copy:before {
  display: none;
}
.professional-course-detail h1 {
  max-width: 18ch;
  font-size: clamp(40px, 5.4vw, 74px);
  line-height: 0.98;
  letter-spacing: -0.045em;
  text-wrap: balance;
}
@media (max-width: 640px) {
  .professional-course-detail h1 {
    max-width: 14ch;
    font-size: clamp(36px, 9.2vw, 54px);
    line-height: 1;
  }
}
/* Prices page title is compact so it labels the list without extending the boat hero. */
.prices-page-heading {
  width: 100%;
  max-width: 1120px;
  margin: 0 auto;
  padding: 18px 24px 4px;
  box-sizing: border-box;
  text-align: center !important;
}
.prices-page-heading h1 {
  display: block;
  width: 100%;
  max-width: 24ch;
  margin: 0 auto;
  color: var(--ink);
  font: 500 clamp(32px, 4vw, 48px)/1.08 var(--site-display-font);
  text-align: center;
  overflow-wrap: anywhere;
  hyphens: auto;
  word-break: normal;
  text-wrap: balance;
}
.prices-page-heading > p,
.prices-page-heading .prices-fee-detail {
  margin: 10px auto 0;
  max-width: 52rem;
  color: var(--ink-2);
  text-align: center;
}
.prices-page-heading .prices-fee-detail { width: 100%; }
.prices-page-heading .prices-fee-detail p { margin: 4px 0; text-align: center; }
.prices-fee-bar {
  max-width: 1120px;
  margin: 0 auto;
  padding: 22px 24px 16px;
  border-bottom: 1px solid var(--line);
}
.prices-fee-copy {
  min-width: 0;
  color: var(--ink);
}
.prices-fee-copy h2 {
  margin: 0 0 4px;
  color: var(--ink);
  font-family: var(--site-display-font);
  font-size: 1.2rem;
  line-height: 1.2;
}
.prices-fee-copy > p {
  margin: 0 0 7px;
  color: var(--ink);
  font-size: 0.95rem;
  line-height: 1.4;
}
.prices-fee-detail {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 4px 0;
  color: var(--muted);
  font-size: 0.88rem;
  line-height: 1.45;
}
.prices-fee-detail p {
  margin: 0;
  overflow-wrap: anywhere;
}
.prices-listing .data-row {
  grid-template-columns: 42px minmax(0, 1fr);
  gap: 14px;
  padding: 18px 0;
  align-items: center;
}
.prices-listing .data-row strong {
  font-size: clamp(1.1rem, 1.6vw, 1.3rem);
  line-height: 1.25;
}
.prices-listing .data-row small {
  margin-top: 6px;
  color: var(--ink);
  font-size: 1rem;
  font-weight: 700;
  line-height: 1.4;
}
@media (max-width: 640px) {
  .prices-fee-bar {
    padding: 16px 16px 12px;
  }
  .prices-fee-detail {
    grid-template-columns: minmax(0, 1fr);
    gap: 4px;
  }
  .prices-listing .data-row {
    grid-template-columns: 30px minmax(0, 1fr);
    gap: 10px;
    padding: 15px 0;
  }
}
.course-list-section .site-feature-list,
.course-special-section .site-feature-list {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 22px;
}
.course-list-section .site-feature-card,
.course-special-section .site-feature-card {
  grid-template-columns: 1fr;
  min-height: 0;
}
.course-list-section .site-feature-image,
.course-special-section .site-feature-image {
  height: 235px;
}
.course-list-section .site-feature-copy,
.course-special-section .site-feature-copy {
  padding: 24px;
}
.crew-list-section .site-feature-list {
  gap: 24px;
}
.crew-feature-card {
  min-height: 300px;
}
.sites-hero:not(.consistent-page-hero) {
  height: clamp(190px, 26vw, 360px);
  min-height: 0;
  background: url('/assets/boat-lfd-hero.jpg') center/cover no-repeat;
}
.sites-hero:not(.consistent-page-hero):after {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(90deg, rgba(4, 25, 38, 0.65), rgba(4, 25, 38, 0.1));
}
.sites-hero:not(.consistent-page-hero) .sites-hero-copy {
  position: relative;
  z-index: 1;
}
.booking-week-list {
  gap: 18px;
}
.booking-trip {
  margin-top: 16px;
}
.booking-panel-close {
  min-width: 44px;
  min-height: 44px;
  padding: 8px 12px;
  border: 1px solid var(--line);
  border-radius: 24px;
  background: transparent;
  color: var(--ink);
  font: 600 12px var(--site-body-font);
  cursor: pointer;
}
.booking-panel-close:hover,
.booking-panel-close:focus-visible {
  border-color: var(--aqua);
  background: color-mix(in srgb, var(--aqua) 18%, var(--card));
}
.booking-selection-grid {
  width: 100%;
  display: grid;
  grid-template-columns: minmax(0, 1.08fr) minmax(0, 0.95fr);
  gap: 16px;
  margin-top: 16px;
  align-items: start;
}
.booking-selection-grid > .booking-trip,
.booking-request-card {
  min-width: 0;
  padding: 18px;
  border: 1px solid var(--line);
  border-radius: 16px;
  background: var(--card);
  color: var(--ink);
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.14);
}
.booking-selection-grid > .booking-trip {
  display: flex;
  flex-direction: column;
  gap: 12px;
  margin: 0;
}
.booking-trip-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
  margin: 0;
}
.booking-trip-head h2,
.booking-request-card > h2 {
  margin: 0;
  font-family: var(--site-display-font);
  font-size: clamp(24px, 2.6vw, 31px);
  font-weight: 500;
  line-height: 1.1;
}
.booking-selected-date {
  margin: 0 0 4px;
  color: var(--ink);
  font-size: 13px;
}
.booking-note {
  max-width: 210px;
  padding: 7px 10px;
  border-radius: 24px;
  background: color-mix(in srgb, var(--aqua) 18%, var(--card));
  font-size: 10px;
  line-height: 1.3;
  text-align: center;
}
.booking-selection-grid .booking-trip-image {
  height: clamp(150px, 16vw, 190px);
  object-fit: cover;
  border-radius: 10px;
}
.booking-selection-grid .booking-trip-info {
  display: flex;
  flex: 1;
  flex-direction: column;
  gap: 10px;
}
.booking-selection-grid .booking-trip-info > p {
  margin: 0;
  color: var(--muted);
  font-size: 13px;
  line-height: 1.5;
}
.booking-trip-highlights b {
  color: var(--ink);
}
.booking-selection-grid .booking-trip-facts {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  margin-top: auto;
  padding-top: 12px;
  border-top: 1px solid var(--line);
}
.booking-selection-grid .booking-trip-facts > div {
  grid-template-columns: 22px minmax(0, 1fr);
  padding: 0 8px;
  border-color: var(--line);
}
.booking-selection-grid .booking-trip-facts > div:first-child {
  padding-left: 0;
}
.booking-selection-grid .booking-trip-facts > div:last-child {
  border-right: 0;
}
.booking-selection-grid .booking-trip-facts b {
  color: var(--ink);
  font-size: 11px;
}
.booking-selection-grid .booking-trip-facts small {
  color: var(--muted);
  overflow-wrap: anywhere;
}
.booking-request-card > h2 {
  margin: 0 0 12px;
}
.booking-request-trap {
  display: none !important;
}
.booking-policy {
  margin-top: 14px;
  color: var(--ink);
  font-size: 13px;
  line-height: 1.55;
}
.booking-policy p {
  margin: 0 0 12px;
}
.booking-request-fields {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 9px 12px;
}
.booking-request-field {
  display: flex;
  min-width: 0;
  flex-direction: column;
  gap: 4px;
  color: var(--ink);
  font-size: 11px;
  font-weight: 600;
}
.booking-request-field input,
.booking-request-field select,
.booking-request-field textarea {
  width: 100%;
  min-width: 0;
  min-height: 36px;
  padding: 7px 9px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: color-mix(in srgb, var(--card) 82%, var(--ink) 18%);
  color: var(--ink);
  font: 400 12px var(--site-body-font);
}
.booking-request-field input::placeholder,
.booking-request-field textarea::placeholder {
  color: var(--muted);
  opacity: 0.8;
}
.booking-request-field textarea {
  min-height: 54px;
  resize: vertical;
}
.booking-request-field-wide {
  grid-column: 1/-1;
}
.booking-request-field .booking-site-locked {
  cursor: default;
  opacity: 0.9;
}
.booking-request-submit {
  display: flex;
  width: 100%;
  min-height: 40px;
  align-items: center;
  justify-content: center;
  gap: 8px;
  margin-top: 10px;
  padding: 9px 14px;
  border: 0;
  border-radius: 24px;
  background: #e9655b;
  color: #fff;
  font-size: 12px;
  font-weight: 600;
}
.booking-request-submit:disabled {
  cursor: not-allowed;
  opacity: 0.78;
}
.booking-request-help {
  margin: 8px 0 0;
  color: var(--muted);
  font-size: 10px;
  line-height: 1.45;
  text-align: center;
}
@media (max-width: 760px) {
  .booking-selection-grid {
    grid-template-columns: 1fr;
  }
  .booking-selection-grid .booking-trip-image {
    height: 190px;
  }
}
@media (max-width: 520px) {
  .booking-selection-grid > .booking-trip,
  .booking-request-card {
    padding: 14px;
  }
  .booking-trip-head {
    flex-direction: column;
  }
  .booking-note {
    max-width: none;
    align-self: flex-start;
  }
  .booking-selection-grid .booking-trip-facts {
    grid-template-columns: 1fr;
    gap: 9px;
  }
  .booking-selection-grid .booking-trip-facts > div,
  .booking-selection-grid .booking-trip-facts > div:first-child {
    padding: 0;
    border: 0;
  }
  .booking-request-fields {
    grid-template-columns: 1fr;
  }
  .booking-request-field-wide {
    grid-column: auto;
  }
}
@media (max-width: 800px) {
  .course-list-section .site-feature-list,
  .course-special-section .site-feature-list {
    grid-template-columns: 1fr;
  }
  .course-list-section .site-feature-image,
  .course-special-section .site-feature-image {
    height: 220px;
  }
}
@media (max-width: 640px) {
  .page-photo-hero,
  .booking-banner,
  .sites-hero.consistent-page-hero {
    height: 180px;
  }
}
#main h1,
#main h2,
#main h3 {
  text-transform: none;
}
#main .fleet-kicker {
  letter-spacing: 0.12em;
  text-transform: uppercase;
}
.fleet-home .fleet-benefit small {
  color: #123f4a;
  font-size: 15px;
}
body[data-theme='dark'] .fleet-home .fleet-benefit small {
  color: #cbdde0;
}
.fleet-home .fleet-spec > span {
  color: #123f4a;
  font-size: 11px;
}
body[data-theme='dark'] .fleet-home .fleet-spec > span {
  color: #cbdde0;
}
.home-reviews {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 16px;
  margin: 0;
  padding: 28px 20px 64px;
  background: var(--fleet-navy);
  color: #fff;
  text-align: center;
}
.home-reviews-copy {
  max-width: 52ch;
}
.home-reviews .fleet-kicker {
  margin-bottom: 10px;
  color: var(--aqua);
}
.home-reviews h2 {
  margin: 0;
  font-family: var(--site-display-font);
  font-size: clamp(30px, 3vw, 40px);
  letter-spacing: -0.04em;
  line-height: 1.1;
}
.home-reviews p {
  margin: 10px 0 0;
  color: #b9d0d5;
  font-size: 16px;
  line-height: 1.5;
}
.home-reviews .button {
  flex: 0 0 auto;
  min-height: 52px;
  padding: 12px 26px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: var(--ink);
  background: var(--aqua);
  border-color: var(--aqua);
}
body[data-theme='dark'] .home-reviews {
  background: #04131c;
}
.crew-team-section {
  display: grid;
  grid-template-columns: minmax(0, 0.85fr) minmax(0, 1.15fr);
  gap: 14px 40px;
  align-items: center;
  max-width: 1280px;
  margin: 0 auto;
  padding: clamp(28px, 6vw, 80px) clamp(20px, 5vw, 64px);
}
.crew-team-copy {
  grid-column: 1;
  grid-row: 1;
  max-width: 550px;
}
.crew-team-photo {
  grid-column: 2;
  grid-row: 1/3;
  width: 100%;
  aspect-ratio: 16/10;
  object-fit: cover;
  border-radius: 18px;
  background: var(--paper);
}
.crew-photo-note {
  grid-column: 2;
  margin: 0;
  color: var(--ink-2);
  font-size: 0.9rem;
}
.course-request-page {
  max-width: 1040px;
  margin: 0 auto;
  padding: clamp(24px, 5vw, 64px) 20px;
}
.course-request-copy {
  max-width: 800px;
  margin: auto;
}
.course-request-copy > p {
  max-width: 70ch;
}
.course-request-form {
  display: grid;
  gap: 18px;
  margin-top: 28px;
  padding: clamp(20px, 4vw, 36px);
  background: var(--card);
  border: 1px solid var(--line);
  border-radius: 18px;
}
.course-request-form label {
  display: grid;
  gap: 8px;
  font-weight: 600;
}
.course-request-form input,
.course-request-form select,
.course-request-form textarea {
  width: 100%;
  min-height: 48px;
  padding: 12px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: var(--paper);
  color: var(--ink);
  font: inherit;
}
.course-request-form textarea {
  resize: vertical;
}
.course-request-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 16px;
}
.course-request-wide {
  grid-column: 1/-1;
}
.course-request-trap {
  position: absolute !important;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip-path: inset(50%);
  white-space: nowrap;
}
.course-request-form button {
  min-height: 48px;
}
.course-request-form button:disabled {
  cursor: not-allowed;
  opacity: 0.56;
}
.course-request-status {
  min-height: 1.5em;
  margin: 0;
  color: var(--ink-2);
}
.padi-specialty-list {
  display: grid;
  gap: 16px;
  margin: 0;
  padding: 16px clamp(16px, 3vw, 32px) 24px;
}
.padi-course-intro {
  max-width: 1280px;
  margin: 0 auto;
  padding: 32px clamp(16px, 5vw, 64px) 28px;
  text-align: center;
}
.padi-pro-intro {
  max-width: 1152px;
  margin: 0 auto;
  padding: 32px clamp(20px, 5vw, 64px) 0;
}
.padi-pro-page-intro {
  max-width: 760px;
  margin: 0 auto;
  text-align: center;
}
.padi-pro-page-intro h2 {
  margin: 8px auto;
  color: var(--ink);
  font: 500 clamp(32px, 4vw, 52px)/1.08 var(--site-display-font);
}
.padi-pro-page-intro p {
  margin: 0 auto;
  color: var(--ink-2);
  line-height: 1.65;
}
.padi-pro-course-list { padding-top: 48px; }

.padi-page-intro {
  max-width: 1152px;
  margin: 0 auto;
  padding: 0 0 22px;
  text-align: center;
}
.padi-page-intro h1 { max-width: none; margin: 8px auto; font-size: clamp(32px, 4vw, 52px); }
.padi-page-intro p { max-width: 760px; margin: 0 auto; color: var(--ink-2); line-height: 1.65; }
.padi-elearning-notice {
  display: flex;
  max-width: 1152px;
  align-items: center;
  justify-content: center;
  gap: 12px;
  margin: 0 auto;
  padding: 22px 0 0;
  border-top: 1px solid var(--line);
  color: var(--ink-2);
  text-align: center;
}
.padi-elearning-notice > div { max-width: 760px; }
.padi-elearning-icon { flex: 0 0 auto; color: var(--aqua-dark); font-size: 1.1rem; line-height: 1.6; }
.padi-elearning-notice h2 { margin: 0 0 4px; color: var(--ink); font-size: clamp(1.25rem, 2.2vw, 1.75rem); line-height: 1.2; }
.padi-elearning-notice p { max-width: 760px; margin: 0; line-height: 1.55; }
.padi-elearning-notice p + p { margin-top: 8px; }
body[data-theme='dark'] .padi-elearning-icon { color: var(--aqua); }
.padi-specialty-groups { max-width: 1280px; margin: 0 auto; padding: 0 clamp(16px, 5vw, 64px) 48px; }
.padi-specialty-group { margin: 0 0 14px; overflow: clip; background: var(--card); border: 1px solid var(--line); border-radius: 14px; }
.padi-specialty-group > summary { display: flex; min-height: 56px; align-items: center; justify-content: space-between; gap: 16px; padding: 14px 20px; color: var(--ink); font-weight: 700; cursor: pointer; list-style: none; }
.padi-specialty-group > summary::-webkit-details-marker { display: none; }
.padi-specialty-group > summary::after { content: '+'; font-size: 1.3rem; }
.padi-specialty-group[open] > summary::after { content: '−'; }
.padi-specialty-group > summary span { margin-left: auto; color: var(--ink-2); font-size: .88rem; font-weight: 500; }
.padi-specialty-group > summary:focus-visible { outline: 3px solid var(--aqua); outline-offset: -3px; }
.padi-specialty-card {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 24px;
  align-items: center;
  padding: 22px;
  background: var(--paper);
  border: 1px solid var(--line);
  border-radius: 14px;
}
.padi-specialty-card h3 {
  margin: 0 0 8px;
}
.padi-specialty-card p {
  margin: 0 0 10px;
}
.padi-specialty-card small {
  color: var(--ink-2);
}
.padi-specialty-actions {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 10px;
}
.padi-specialty-actions .button {
  min-height: 44px;
  display: inline-flex;
  align-items: center;
}
.padi-course-guidance {
  max-width: 1280px;
  margin: 0 auto;
  padding: clamp(24px, 5vw, 64px);
}
.padi-course-guidance .section-head h2 {
  font-size: clamp(2rem, 4vw, 3rem);
  line-height: 1.1;
}
.padi-guidance-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 16px;
}
.padi-guidance-grid article {
  padding: 22px;
  background: var(--card);
  border: 1px solid var(--line);
  border-radius: 14px;
}
@media (max-width: 800px) {
  .crew-team-section {
    grid-template-columns: 1fr;
    gap: 18px;
  }
  .crew-team-copy,
  .crew-team-photo,
  .crew-photo-note {
    grid-column: 1;
    grid-row: auto;
  }
  .crew-team-photo {
    aspect-ratio: 4/3;
  }
  .home-reviews {
    align-items: center;
  }
  .home-reviews .button {
    white-space: normal;
  }
  .padi-specialty-card {
    grid-template-columns: 1fr;
  }
  .padi-specialty-actions {
    justify-content: flex-start;
  }
  .course-list-section .site-feature-list { gap: 18px; }
  .padi-guidance-grid {
    grid-template-columns: 1fr;
  }
}
@media (max-width: 520px) {
  .course-request-grid {
    grid-template-columns: 1fr;
  }
  .course-request-wide {
    grid-column: auto;
  }
  .home-reviews {
    padding: 24px 20px 42px;
  }
  .padi-specialty-card {
    padding: 16px;
  }
  .padi-course-guidance {
    padding: 24px 16px;
  }
  .padi-page-intro { padding: 22px 20px 8px; }
  .padi-specialty-groups { padding-right: 16px; padding-left: 16px; }
  .padi-specialty-group > summary { padding: 13px 15px; }
}
@media (max-width: 640px) {
  .fleet-home .fleet-spec > span {
    font-size: 10px;
  }
  .padi-course-intro { padding-top: 26px; padding-bottom: 24px; }
  .padi-page-intro { padding-right: 0; padding-left: 0; }
  .padi-elearning-notice { flex-direction: column; gap: 6px; }
}

/* C9 Island guide layout */
.island-page-intro { max-width: 1152px; margin: 0 auto; padding: 30px clamp(20px, 5vw, 64px) 8px; }
.island-page-intro-copy { max-width: 760px; margin: 0 auto; text-align: center; }
.island-page-intro h1 { margin: 0 auto 8px; color: var(--ink); font: 500 clamp(32px, 4vw, 52px)/1.08 var(--site-display-font); text-wrap: balance; }
.island-page-intro p { margin: 0 auto; color: var(--ink-2); line-height: 1.65; }
.island-destinations, .island-planning { max-width: 1280px; margin: 0 auto; padding: 32px clamp(20px, 5vw, 64px); }
.island-section-heading { max-width: 760px; margin: 0 auto 22px; text-align: center; }
.island-section-heading .fleet-kicker { color: var(--aqua-dark); }
.island-section-heading h2 { margin: 6px 0 0; color: var(--ink); font: 500 clamp(28px, 3.5vw, 42px)/1.12 var(--site-display-font); text-wrap: balance; }
.island-destination-grid, .island-practical-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; align-items: stretch; }
.island-destination-card { min-width: 0; overflow: hidden; border: 1px solid var(--line); border-radius: 16px; background: var(--card); box-shadow: 0 10px 30px rgba(0, 0, 0, .12); }
.island-destination-card img { display: block; width: 100%; aspect-ratio: 16 / 10; object-fit: cover; background: var(--paper); }
.island-destination-copy { padding: 20px 22px 22px; }
.island-destination-copy h3, .island-practical-card h3 { margin: 0 0 8px; color: var(--ink); font: 500 clamp(21px, 2vw, 25px)/1.2 var(--site-display-font); }
.island-destination-copy p, .island-practical-card p { margin: 0; color: var(--muted); line-height: 1.55; }
.island-planning { padding-top: 14px; padding-bottom: 52px; }
.island-planning .island-section-heading { margin-bottom: 18px; }
.island-practical-grid { gap: 16px; }
.island-practical-card { min-width: 0; padding: 20px 22px; border: 1px solid var(--line); border-radius: 14px; background: var(--card); box-shadow: 0 8px 24px rgba(0, 0, 0, .08); }
@media (max-width: 820px) { .island-destination-grid, .island-practical-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } .island-destination-card:last-child { grid-column: 1 / -1; } }
@media (max-width: 560px) {
  .island-page-intro { padding: 24px 20px 4px; }
  .island-destinations, .island-planning { padding: 24px 16px; }
  .island-section-heading { margin-bottom: 16px; }
  .island-destination-grid, .island-practical-grid { grid-template-columns: minmax(0, 1fr); gap: 14px; }
  .island-destination-card:last-child { grid-column: auto; }
  .island-destination-card img { aspect-ratio: 16 / 9; }
  .island-destination-copy, .island-practical-card { padding: 18px; }
  .island-planning { padding-top: 10px; padding-bottom: 34px; }
}

/* Booking availability stays legible across seven compact mobile date cards. */
.booking-availability {
  margin-top: auto;
  color: #34535b;
  font-size: 11px;
  font-weight: 600;
  line-height: 1.2;
  text-align: center;
  white-space: normal;
}
.booking-label-mobile { display: none; }
@media (max-width: 640px) {
  .booking-week-days .booking-availability {
    display: flex;
    min-height: 18px;
    padding-top: 3px;
    color: #34535b;
    font-size: 9px;
    font-weight: 600;
    line-height: 1.1;
    justify-content: center;
    overflow-wrap: normal;
    word-break: normal;
  }
  .booking-label-desktop { display: none; }
  .booking-label-mobile { display: inline; }
  .booking-site-name:empty { display: none; }
}
body[data-theme='dark'] .booking-week-days .booking-availability {
  color: #cbdde0;
}
body[data-theme='dark'] .site-feature-copy .fleet-kicker {
  color: #63e4d6;
}
body[data-theme='dark'] .course-list-section .site-feature-copy small {
  color: #cbdde0;
}
