/* Front-end typography; admin controls retain their own sizing. */
body { font-size: 17px; }
.main-nav > a:not(.button), .main-nav .button { font-size: 15px; }
.language-switch { font-size: 13px; }
.button, .text-link { font-size: 15px; }
.eyebrow { font-size: 12px; }
.hero-content > p, .page-heading > p { font-size: 17px; }
.hero-note { font-size: 12px; }
.hero-side-label { font-size: 10px; }
.quick-heading .eyebrow { font-size: 10px; }
.quick-heading strong { font-size: 22px; }
.quick-book label > span { font-size: 14px; }
.quick-book input { font-size: 15px; }
.section-heading > p, .about-copy > p { font-size: 16px; }
.service-card h3 { font-size: 21px; min-height: 55px; }
.service-card p, .benefit p, .step p, .values-grid p { font-size: 15px; }
.card-number { font-size: 12px; }
.card-link { font-size: 14px; min-height: 32px; }
.photo-caption span { font-size: 11px; }
.photo-caption strong { font-size: 24px; }
.benefit h3 { font-size: 18px; }
.step h3 { font-size: 21px; }
.cta p { font-size: 16px; }
.footer-top > p, .footer-top .text-link,
.footer-grid p, .footer-grid a { font-size: 14px; }
.footer-grid h3 { font-size: 12px; }
.footer-bottom { font-size: 12px; }
.service-detail-copy > p, .booking-aside li, .aside-custom-copy { font-size: 16px; }
.form-panel > h2 { font-size: 27px; }
.form-section-title { font-size: 21px; }
.form-field > span { font-size: 14px; }
.form-field input, .form-field select, .form-field textarea { font-size: 16px; }
.form-field textarea::placeholder { font-size: 15px; }
.field-hint, .form-required-note, .consent { font-size: 13px; }
.return-trip summary, .form-result, .form-notice { font-size: 15px; }
.aside-note p { font-size: 14px; }
.aside-note h3 { font-size: 18px; }
.contact-item span { font-size: 13px; }
.contact-item a, .contact-item p { font-size: 17px; }

@media (min-width: 1081px) and (max-width: 1180px) {
  .main-nav { gap: 16px; }
  .header-inner { gap: 20px; }
}
@media (max-width: 1080px) {
  .service-card h3 { min-height: 0; }
  .main-nav > a:not(.button), .language-switch a { min-height: 44px; }
}
@media (max-width: 782px) {
  body { font-size: 16px; }
  .hero-content > p, .page-heading > p { font-size: 16px; }
  .hero .eyebrow, .service-detail-copy .eyebrow { font-size: 11px; }
  .quick-heading strong { font-size: 21px; }
  .quick-book input { font-size: 16px; }
  .section-heading > p, .about-copy > p { font-size: 16px; }
  .step h3 { font-size: 20px; }
  .photo-caption strong { font-size: 22px; }
}
@media (max-width: 520px) {
  .hero-actions .button { font-size: 15px; }
  .hero-note { font-size: 12px; }
  .quick-book label span { font-size: 14px; }
  .section-heading h2, h2 { font-size: 32px; }
  .service-card h3 { font-size: 23px; }
  .service-card p { font-size: 15px; }
  .cta h2 { font-size: 30px; }
  .cta .eyebrow, .page-heading .eyebrow { font-size: 11px; }
  .cta p { font-size: 15px; }
  .footer-grid h3 { font-size: 12px; }
  .footer-grid p, .footer-grid a { font-size: 14px; }
  .page-heading h1 { font-size: 37px; }
  .service-detail-copy h2 { font-size: 29px; }
  .form-section-title { font-size: 20px; }
  .return-trip summary { font-size: 14px; }
}
