/* Mobile reading scale. Loaded last; desktop typography is unchanged. */
@media (max-width: 760px) {
  body { font-size: 18px; }
  #main :is(p, li) { font-size: 18px; line-height: 1.65; }
  #main :is(h2, .guide-section-intro h2, .reservation-copy h2, .enquiry-copy h2) {
    font-size: clamp(34px, 8.5vw, 44px);
    line-height: 1.25;
    overflow-wrap: break-word;
  }
  #main :is(.hero h1, .guide-hero h1, .licence-hero h1) {
    font-size: clamp(44px, 11.5vw, 68px);
    line-height: 1.2;
    overflow-wrap: break-word;
  }
  #main :is(h3, .contact-unified h3) { font-size: 28px; line-height: 1.3; }
  #main .experience-copy h3 { font-size: 32px; }
  #main .experience-copy p { font-size: 18px; line-height: 1.45; max-width: none; }
  #main .experience-copy > div { min-width: 0; }
  #main .experience-copy { gap: 12px; }
  #main .experience-copy .circle-arrow { flex-shrink: 0; }

  #main :is(.button, .text-link, .gift-option, .guide-back),
  .mobile-booking a, .contact-permit-link .text-link {
    font-size: 18px;
    line-height: 1.45;
    white-space: normal;
    min-height: 48px;
  }
  #main .button { padding: 16px 20px; max-width: 100%; gap: 12px; }
  #main :is(.button, .text-link, .gift-option) svg { flex-shrink: 0; }
  #main .hero-actions { flex-wrap: wrap; gap: 14px; }
  #main .hero-actions .button { justify-content: center; width: 100%; }
  #main .text-link { align-items: center; padding-block: 12px; gap: 14px; }
  #main .gift-option { padding-block: 20px; gap: 18px; }
  #main .discovery-links { grid-template-columns: 1fr; }
  #main .discovery-links > a { font-size: 21px; line-height: 1.4; padding-block: 24px; gap: 16px; }
  #main .discovery-number { font-size: 15px; }
  #main .discovery-links > a > span:not(.discovery-number) { min-width: 0; }

  #main :is(.eyebrow, .fine-print, .gift-note, .booking-note, .card-number,
    .destination-meta, .destination-coordinate, .map-disclaimer, .map-caption,
    .fun-note, .fun-checked, .fun-category, .fun-agenda-meta, .fun-date, .fun-place,
    .yoles-table-note, .yoles-booking-note, .form-privacy, .licence-availability,
    .guide-sources, .licence-sources, .boat-equipment > span, .boat-ribbon,
    .guide-facts > span, .guide-jump, figcaption) {
    font-size: 15px;
    line-height: 1.6;
  }
  #main .eyebrow { letter-spacing: 1.4px; }
  #main .fine-print { display: block; margin-top: 14px; }
  #main .boat-ribbon { display: flex; flex-wrap: wrap; justify-content: flex-start; gap: 10px 0; padding-block: 18px; }
  #main .boat-ribbon > span { padding-inline: 12px; white-space: normal; }
  #main .boat-ribbon > span:first-child { flex-basis: 100%; border: 0; padding-left: 0; }
  #main .boat-ribbon > span:nth-child(2) { padding-left: 0; border-left: 0; }
  #main .spec-grid p { font-size: 16px; line-height: 1.45; }
  #main .spec-grid strong span { font-size: 18px; }
  #main .mode-tabs button { font-size: 17px; line-height: 1.4; min-height: 52px; white-space: normal; }
  #main .faq-list summary { font-size: 18px; line-height: 1.5; }

  #main .booking-steps { display: grid; gap: 20px; }
  #main .booking-steps li { align-items: center; gap: 16px; }
  #main .booking-steps li > span { font-size: 20px; flex-shrink: 0; }
  #main .booking-card { padding: 28px 22px; }
  #main .booking-card-top { font-size: 16px; line-height: 1.5; gap: 12px; }
  #main .booking-price { font-size: 18px; line-height: 1.6; }
  #main .booking-price strong { font-size: 60px; line-height: 1.2; margin-block: 10px; }
  #main .booking-price > span { font-size: 17px; }
  #main .booking-detail { font-size: 17px; line-height: 1.5; gap: 8px 16px; align-items: start; }
  #main .booking-detail b { min-width: 0; overflow-wrap: break-word; }
  #main .booking-note { margin-top: 20px; }
  #main .booking-question { font-size: 17px; line-height: 1.5; padding-block: 18px; }
  #main .gift-voucher > p { font-size: 42px; line-height: 1.2; }
  #main .gift-voucher :is(small, div > span) { font-size: 14px; line-height: 1.5; }

  #main :is(.map-stop, .region-filters button, .fun-filters button, .destination-links > a) {
    font-size: 16px; line-height: 1.45; min-height: 46px; white-space: normal;
  }
  #main .destination-links { flex-wrap: wrap; gap: 12px 18px; }
  #main .map-stop { padding: 14px 10px; }
  #main .guide-facts b { font-size: 22px; line-height: 1.3; }
  #main .guide-jump { gap: 16px; }
  #main .guide-jump a { padding-block: 8px; }
  #main .yoles-table { font-size: 16px; line-height: 1.5; }
  #main .yoles-table :is(td, th) { padding: 16px; }
  #main .yoles-table thead th { font-size: 15px; }
  #main .yoles-result-table tbody small { font-size: 14px; }
  #main .yoles-time { font-size: 16px; }
  #main .yoles-rank { font-size: 21px; }
  #main .yoles-book-actions .button { font-size: 17px; }
  #main .yoles-tabs a { font-size: 17px; line-height: 1.5; min-height: 60px; }
  #main .fun-card h2 { font-size: 28px; }
  #main .fun-hero h1 { font-size: 68px; line-height: 1.15; }
  #main .fun-empty h3 { font-size: 28px; }
  .fun-dialog .fun-dialog-bar h2 { font-size: 18px; }
  #main .form-field { font-size: 17px; }
  #main .form-field :is(input, select) { font-size: 18px; min-height: 52px; }
  #main .contact-details .contact-address { font-size: 16px !important; }

  .site-header nav > a:not(.button) { font-size: 19px; line-height: 1.45; padding-block: 17px; }
  .site-header nav > .button { font-size: 18px; white-space: normal; }
  .language-switch select { font-size: 14px; width: 104px; min-height: 44px; }
  .mobile-booking a:first-child, .mobile-booking a:last-child { font-size: 17px; line-height: 1.45; padding: 12px; min-height: 48px; }
  .footer-main > p { font-size: 17px; line-height: 1.65; }
  .footer-bottom { font-size: 14px; line-height: 1.6; padding-bottom: 125px; flex-wrap: wrap; gap: 18px; }
  .footer-photo-credits, .footer-photo-credits .photo-credits { font-size: 14px; line-height: 1.65; }
  .info-dialog #info-copy, .info-dialog #info-copy p { font-size: 17px; line-height: 1.65; }
}

@media (max-width: 480px) {
  #main .booking-detail { display: grid; grid-template-columns: 1fr; gap: 4px; margin-block: 18px; }
  #main .booking-detail b { text-align: left; }
  #main .experience-copy > .experience-logo { width: 34px; height: 34px; }
  #main .experience-copy .circle-arrow { display: none; }
}

@media (max-width: 380px) {
  .site-header .nav-shell { gap: 6px; }
  .site-header .brand .brand-wordmark { width: 70px; }
  .language-switch select { width: 98px; }
  #main .booking-card { padding-inline: 20px; }
  #main .experience-copy { left: 18px; right: 18px; gap: 10px; }
}
