/* Typography only. Fonts, colors, images and all layout rules stay in the
   existing stylesheets. The existing Google Fonts import supplies real
   Noto Sans JP and Barlow Condensed weights 500, 600 and 700. */
body { font-weight: 500; line-height: 1.8; }

/* Body copy and supporting information. */
.home-story-copy p,
.welcome-item small,
.rate-meta,
.rate-capacity,
.rate-sail,
.price small,
.detail-price small,
.phone-hours,
.footer-bottom > a { font-weight: 500; }

/* Navigation, feature labels and table field names. */
.desktop-nav a,
.mobile-nav > a,
.plan-tabs button,
.plan-view-tabs button,
.schedule-tabs button,
.welcome-item strong,
.home-fish span,
.home-discovery-heading p,
.home-hero-kicker,
.home-more-plans,
.home-more-plans span,
.eyebrow,
.section-en,
.section-index,
.rates-table th,
.rates-table .rate-name,
.rates-table td::before,
.detail-facts dt,
.access-copy dt,
.detail-tag { font-weight: 600; }

/* Headings, actions and important numbers. */
h1, h2, h3, h4, h5, h6,
.home-hero .hero-catch,
.home-discovery-heading h2,
.home-story-copy h2,
.plan-content h3,
.catch-blog-content h3,
.instagram-label,
.instagram-account,
.button,
.plan-detail-button,
.home-action,
.home-contact > a,
.home-contact > button,
.mobile-bottom > a,
.mobile-bottom > button,
.hero-memory,
.home-story-photo > p,
.text-link,
.instagram-more,
.booking-phone strong,
.price,
.detail-price,
.rate-money,
.detail-facts dd,
.point-number,
.booking-steps b { font-weight: 700; }
.faq-list summary { font-weight: 600; }
.faq-list summary > span { font-weight: 500; }
.instagram-reserve, .booking-steps span, .rates-table .rate-option { font-weight: 600; }

/* Reading text: retain the large headline sizes and their existing line breaks. */
.section-heading > div > p:last-child:not(.eyebrow),
.stories-intro > p,
.first-inner > div > p:last-child,
.booking-inner > p:not(.eyebrow),
.dialog-intro,
.detail-description,
.catch-blog-content > p:not(.eyebrow),
.faq-list details p { font-size: 16px; line-height: 1.75; }
.plan-desc,
.first-points p,
.schedule-footer p,
.rates-heading p,
.rates-notes p { font-size: 16px; line-height: 1.75; }
.home-story-copy p { font-size: 16px; line-height: 1.75; }
.plan-meta { font-size: 14px; line-height: 1.7; }
.plans-footer p { font-size: 15px; line-height: 1.75; }
.access-address { font-size: 16px; line-height: 1.75; }
.access-copy dl > div { font-size: 15px; line-height: 1.75; }
.detail-facts > div { font-size: 15px; line-height: 1.75; }
.detail-note { font-size: 15px; line-height: 1.75; }
.booking-note { font-size: 14px; line-height: 1.75; }
.instagram-placeholder p:not(.instagram-account) { font-size: 16px; line-height: 1.75; }
.instagram-feed-status, .instagram-noscript { font-size: 15px; line-height: 1.75; }
.news-item a { font-size: 14px; line-height: 1.75; }
.news-tag { font-size: 12px; }
.news .text-link, .plans-footer .text-link { font-size: 14px; }
.map-label { font-size: 13px; font-weight: 600; }
.rate-meta, .rate-capacity, .rate-sail { font-size: 14px; }
.rate-money { font-size: 15px; }
.rate-name { font-size: 17px; }
.schedule-timezone { font-size: 14px; }
.price small { font-size: 13px; }
.phone-hours { font-size: 12px; }
.booking-phone > span:last-child { font-size: 13px; }
.calendar-link small { font-size: 14px; line-height: 1.7; }
.booking-steps span { font-size: 14px; }
.detail-tag { font-size: 13px; }
.eyebrow, .section-index { font-size: 14px; }
.booking-banner .eyebrow { font-size: 14px; }
.dialog .eyebrow { font-size: 13px; }
.access-copy .button, .schedule-footer .text-link, .stories-intro .button { font-size: 14px; }
.footer-top > p { font-size: 15px; line-height: 1.75; }
.footer-bottom > span { font-size: 11px; }
.footer-bottom > a { font-size: 12px; font-weight: 600; }

@media (max-width: 700px) {
  .eyebrow { font-size: 14px; }
  .booking-banner .eyebrow, .dialog .eyebrow { font-size: 14px; }
  .phone-hours { font-size: 12px; }
  .mobile-nav > a { font-size: 15px; line-height: 1.75; }
  .header-reserve { font-size: 12px !important; }
  .home-action { font-size: 14px; }
  .welcome-item strong { font-size: 15px; }
  .welcome-item small { font-size: 12px; }
  .welcome-item:first-child strong span,
  .welcome-item:last-child strong span {
    font-size: min(clamp(10px, 3.07vw, 16px), calc((100vw - 66px) / 27));
  }
  .home-discovery-heading p { font-size: 15px; }
  .home-fish span { font-size: 13px; }
  .home-more-plans { font-size: 13px; }
  .home-more-plans span { font-size: 14px; }
  .home-contact > a, .home-contact > button { font-size: 15px; }
  .plan-view-tabs button, .plan-tabs button { font-size: 14px; }
  .plan-desc { font-size: 14px; line-height: 1.75; }
  .plan-meta { font-size: 12px; }
  .plan-detail-button { font-size: 14px; }
  .price small { font-size: 13px; }
  .rates-table td::before { font-size: 14px; }
  .rate-meta, .rate-capacity, .rate-sail { font-size: 15px; }
  .rates-table td.rate-option { font-size: 15px; }
  .rate-name { font-size: 18px; }
  .rate-money { font-size: 16px; }
  .faq-list summary { font-size: 16px; line-height: 1.75; }
  .dialog .button, .instagram-reserve { font-size: 14px; }
  .calendar-link strong { font-size: 15px; }
  .booking-steps span { font-size: 14px; }
  .mobile-bottom > a, .mobile-bottom > button { font-size: 15px; }
  .news .text-link, .plans-footer .text-link, .map-label { font-size: 13px; }
  .dialog-intro { font-size: 15px; }
  .booking-note { font-size: 12px; }
  /* Keep reservation phrases intact as the small note becomes more readable. */
  .booking-dialog .booking-note { font-size: 14px; }
  .booking-note-phrase { white-space: nowrap; }
  .booking-inner > p:not(.eyebrow) { font-size: 15px; }
  .booking-buttons .button { font-size: 15px; }
  .booking-phone > span:last-child { font-size: 13px; }
  .schedule-timezone { font-size: 15px; }
  .footer-top > p { font-size: 15px; }
  .footer-bottom > span { font-size: 12px; }
  .footer-bottom > a { font-size: 13px; }
}
@media (max-width: 390px) {
  /* Keep compact actions on their original lines; weight supplies the emphasis. */
  .home-action { font-size: 13px; }
  .welcome-item small { font-size: 11px; }
  .home-contact > a, .home-contact > button,
  .mobile-bottom > a, .mobile-bottom > button { font-size: 14px; }
}
@media (max-width: 359px) {
  .phone-hours { font-size: 11px; }
  .rate-capacity { font-size: 14px; }
  .header-reserve { font-size: 11px !important; }
  .home-action { font-size: 11px; }
  .welcome-item strong { font-size: 14px; }
  .welcome-item:first-child strong span,
  .welcome-item:last-child strong span { font-size: 10px; }
  .home-contact > a, .home-contact > button { font-size: 12px; }
  .mobile-bottom > a, .mobile-bottom > button { font-size: 12px; }
  .plan-desc { font-size: 13px; }
}
