/* Editorial typography: distinct reading, display and wayfinding scales.
   References: Azumi Setoda /overview/ and KAI Nagato (2026-10-01).
   White space belongs around a text group, not between every line. */
:root {
  --reading-size: 15px;
  --reading-leading: 2;
  --display-tracking: .055em;
}
body {
  letter-spacing: .025em;
  line-height: var(--reading-leading);
  font-kerning: normal;
  line-break: strict;
  overflow-wrap: break-word;
}
h1, h2, h3 {
  font-feature-settings: "palt" 1;
  font-kerning: normal;
  letter-spacing: var(--display-tracking);
  font-weight: 400;
}
p, dd, li { line-break: strict; }
.keep-together { white-space: nowrap; }
/* Small navigational text stays compact; it should never compete with a title. */
.rail-nav a { letter-spacing: .045em; line-height: 1.65; }
.brand-spring { letter-spacing: .14em; }
.header-note, .booking-link, .page-jump, .breadcrumb,
.button-primary, .button-outline, .mobile-booking, .footer-top nav {
  letter-spacing: .04em;
  line-height: 1.7;
}
.location-note, .chapter-name, .small-title {
  font-family: var(--sans);
  font-size: 12px;
  line-height: 1.7;
  letter-spacing: .09em;
  font-weight: 400;
}
.opening-heading .location-note { margin-bottom: 32px; font-size: 11px; }
.opening h1 {
  font-size: 39px;
  letter-spacing: .045em;
  line-height: 1.45;
  gap: 24px;
  font-feature-settings: normal;
}
.opening-note { font-size: 14px; line-height: 1.9; letter-spacing: .055em; margin-top: 32px; }
.opening-foot { padding: 12px 0; }
.opening-foot, .opening-foot>p, .stay-facts a { font-size: 12px; letter-spacing: .025em; }
.stay-facts { gap: 24px; padding: 14px 0; }
.stay-facts small { font-size: 19px; }
/* Keep the spring title and its paragraphs together, independent of photo height. */
.spring-letter {
  grid-template-columns: minmax(0, 1fr) minmax(0, .9fr);
  align-items: center;
  gap: 0 11%;
  padding: 112px 9% 128px;
}
.spring-reading { grid-column: 2; grid-row: 1; }
.spring-title .small-title { margin-bottom: 18px; }
.spring-title h2 { font-size: clamp(28px, 2.55vw, 38px); line-height: 1.6; letter-spacing: .045em; }
.spring-copy { max-width: 28em; margin-top: 32px; padding: 0; }
.spring-detail-photo { grid-column: 1; grid-row: 1; margin: 34px 0 0; width: 100%; }
.spring-letter>.chapter-name { top: 112px; left: 3%; font-size: 11px; letter-spacing: .12em; }
.spring-copy p, .river-copy p, .stay-notebook article p:not(.small-title),
.night-letter>div>p, .morning-chapter>div>p:not(.chapter-name),
.split-copy>div>p:not(.lead), .editorial-row p:not(.fine-print),
.breakfast-story>div>p:last-child, .walk-list article p:not(.eyebrow) {
  font-size: var(--reading-size);
  line-height: var(--reading-leading);
  letter-spacing: .035em;
}
.spring-copy p+p { margin-top: 20px; }
.spring-copy p br, .river-copy p br, .stay-notebook article p br,
.night-letter>div>p br, .morning-chapter>div>p:not(.chapter-name) br,
.split-copy .lead br, .breakfast-story>div>p br { display: none; }
.story-link { margin-top: 28px; padding: 14px 0; font-size: 13px; line-height: 1.6; letter-spacing: .055em; }
.story-link span { font-size: 18px; }
figure figcaption { font-size: 11px; line-height: 1.65; letter-spacing: .035em; margin-top: 12px; }
.river-heading .chapter-name { font-size: 12px; }
.river-heading h2 { font-size: clamp(34px, 3.2vw, 48px); line-height: 1.55; letter-spacing: .065em; margin-top: 24px; }
.river-heading h2 br { display: block; }
.river-copy { padding-top: 38px; padding-bottom: 38px; }
.notebook-heading h2 { font-size: clamp(30px, 2.8vw, 40px); line-height: 1.65; letter-spacing: .06em; margin-top: 24px; }
.notebook-heading .chapter-name { font-size: 12px; }
.stay-notebook h3 { font-size: 25px; line-height: 1.6; letter-spacing: .045em; margin-bottom: 20px; }
.stay-notebook h3 br { display: block; }
.stay-notebook .small-title { font-size: 11px; margin-bottom: 14px; }
.stay-notebook article>div { margin-top: 28px; }
.notebook-dinner>div { max-width: 430px; }
.notebook-room>div { max-width: 27em; }
.night-letter>.chapter-name { font-size: 12px; }
.night-letter h2 { font-size: clamp(28px, 2.55vw, 38px); line-height: 1.6; letter-spacing: .045em; }
.night-letter>div { padding-top: 2px; }
.night-letter>div>p { max-width: 26em; }
.morning-chapter h2 { font-size: clamp(30px, 2.8vw, 40px); line-height: 1.65; letter-spacing: .055em; margin: 22px 0 28px; }
.morning-chapter>div>p:not(.chapter-name) { max-width: 26em; }
.journey-desk h2 { font-size: clamp(28px, 2.5vw, 36px); line-height: 1.65; letter-spacing: .045em; }
.journey-desk .small-title { margin-bottom: 22px; }
.journey-booking .button-primary { font-size: 15px; min-height: 68px; }
.journey-booking .phone-link { line-height: 1.8; letter-spacing: .025em; }
.desk-note { font-size: 11px; line-height: 1.9; letter-spacing: .015em; }
.journey-desk nav a { font-size: 14px; letter-spacing: .04em; }
/* Detail pages use the same hierarchy, with a shorter measure for long copy. */
.page-title { padding-top: 52px; padding-bottom: 50px; }
.page-title h1, .page-onsen .page-title h1 { font-size: clamp(34px, 3.55vw, 50px); line-height: 1.55; letter-spacing: .06em; margin: 0 0 24px; }
.page-title>p:last-child { font-size: 14px; line-height: 1.9; letter-spacing: .035em; max-width: 42em; }
.page-reserve .page-title h1 { font-size: 38px; }
.split-copy h2, .editorial-row h2, .breakfast-story h2,
.room-details h2, .section-heading h2, .bathing-info h2,
.information-section h2, .faq-section h2, .quiet-night h2 {
  font-size: 32px; line-height: 1.65; letter-spacing: .055em; margin-top: 0;
}
.split-copy .lead { font-family: var(--serif); font-size: 19px; line-height: 1.9; letter-spacing: .035em; }
.split-copy>div>p { max-width: 33em; }
.split-copy>div>p+p { margin-top: 22px; }
.editorial-row h2, .breakfast-story h2 { margin-bottom: 28px; }
.editorial-row p+p { margin-top: 20px; }
.editorial-row>div, .breakfast-story>div { max-width: 33em; }
.section-heading>p, .room-details>p:not(.fine-print), .quiet-night>p:not(.sky-note) {
  font-size: 15px; line-height: 2; letter-spacing: .035em;
}
.walk-list article h3 { font-size: 25px; line-height: 1.6; letter-spacing: .045em; margin: 0 0 18px; }
.walk-list article p { max-width: 44em; }
.data-list>div { font-size: 14px; line-height: 1.9; letter-spacing: .02em; padding: 20px 0; }
.data-list dt { font-size: 12px; line-height: 1.9; letter-spacing: .05em; }
.data-list dd small { font-size: 12px; line-height: 1.8; }
.fine-print, .reservation-content .fine-print { line-height: 1.85; letter-spacing: .015em; }
.room-table { font-size: 15px; letter-spacing: .025em; font-variant-numeric: tabular-nums; }
.room-table thead, .room-table caption { font-size: 12px; }
.faq-section summary { font-size: 15px; line-height: 1.8; letter-spacing: .025em; }
.faq-section details>p { font-size: 14px; line-height: 1.95; letter-spacing: .025em; max-width: 58em; }
.reservation-content h2, .reservation-at-a-glance h2 { font-size: 26px; line-height: 1.65; letter-spacing: .04em; }
.reservation-content>p:not(.fine-print) { font-size: 15px; line-height: 1.95; }
.next-chapter h2 { font-size: 28px; line-height: 1.6; letter-spacing: .045em; }
.footer-top>p { font-size: 25px; line-height: 1.8; letter-spacing: .08em; }
.footer-bottom { font-size: 11px; line-height: 1.9; letter-spacing: .025em; }
.footer-bottom small { font-size: 10px; letter-spacing: .08em; }
@media (min-width:721px) and (max-width:1100px) {
  .opening h1 { font-size: 31px; gap: 18px; }
  .opening-heading .location-note { font-size: 10px; }
  .spring-letter { padding: 90px 7%; gap: 7%; }
  .spring-letter>.chapter-name { left: 2%; top: 90px; }
  .spring-title h2 { font-size: 27px; }
  .spring-copy { margin-top: 24px; }
  .notebook-heading h2, .night-letter h2, .morning-chapter h2,
  .split-copy h2, .editorial-row h2, .breakfast-story h2 { font-size: 27px; }
  .stay-notebook h3 { font-size: 22px; }
  .journey-desk h2 { font-size: 25px; }
}
@media (max-width:720px) {
  :root { --reading-size: 15px; --reading-leading: 1.95; }
  .opening-heading { padding: 28px 28px 30px; }
  .opening-heading .location-note { margin-bottom: 22px; font-size: 11px; letter-spacing: .07em; }
  .opening h1 { font-size: clamp(27px, 7.9vw, 33px); line-height: 1.6; letter-spacing: .035em; margin: 0; }
  .opening-note { margin-top: 20px; font-size: 13px; line-height: 1.85; letter-spacing: .04em; }
  .opening-foot { margin-top: 30px; }
  .stay-facts a { font-size: 12px; line-height: 1.75; }
  .spring-letter { grid-template-columns: 1fr; gap: 0; padding: 76px 28px 84px; }
  .spring-reading { display: contents; }
  .spring-letter>.chapter-name { grid-column: 1; grid-row: 1; margin-bottom: 28px; border: 0; font-size: 11px; }
  .spring-title { grid-column: 1; grid-row: 2; }
  .spring-title .small-title { margin-bottom: 14px; font-size: 11px; }
  .spring-title h2 { font-size: clamp(26px, 7.2vw, 30px); line-height: 1.6; letter-spacing: .04em; }
  .spring-detail-photo { grid-column: 1; grid-row: 3; width: 86%; margin: 32px 0 0 auto; }
  .spring-copy { grid-column: 1; grid-row: 4; max-width: 30em; margin-top: 30px; }
  .spring-copy p+p { margin-top: 18px; }
  .story-link { font-size: 13px; margin-top: 24px; padding: 14px 0; min-height: 48px; }
  .river-heading { padding: 0 28px 76px; }
  .river-heading .chapter-name { font-size: 11px; }
  .river-heading h2 { font-size: 32px; line-height: 1.55; margin-top: 22px; letter-spacing: .05em; }
  .river-copy { padding: 28px 28px 32px; }
  .river-copy .story-link { font-size: 13px; margin-top: 24px; }
  .notebook-heading { margin-bottom: 32px; }
  .notebook-heading .chapter-name { font-size: 11px; }
  .notebook-heading h2 { font-size: 30px; line-height: 1.6; margin-top: 22px; }
  .stay-notebook h3 { font-size: 23px; line-height: 1.6; letter-spacing: .035em; margin-bottom: 18px; }
  .stay-notebook article>div { margin-top: 24px; }
  .stay-notebook .notebook-room { margin-top: 64px; gap: 24px; }
  .night-letter>.chapter-name { font-size: 11px; }
  .night-letter h2 { font-size: clamp(25px, 7.2vw, 29px); line-height: 1.6; margin: 22px 0 24px; }
  .morning-chapter h2 { font-size: 30px; line-height: 1.6; margin: 22px 0 24px; }
  .morning-chapter .chapter-name { font-size: 11px; }
  .journey-desk h2 { font-size: clamp(25px, 7vw, 29px); line-height: 1.65; }
  .journey-desk .small-title { font-size: 11px; margin-bottom: 20px; }
  .journey-booking .button-primary { min-height: 62px; font-size: 15px; }
  .journey-booking .phone-link { font-size: 12px; }
  .journey-desk nav a { font-size: 14px; }
  .page-title { padding: 30px 28px 34px; }
  .page-title h1, .page-onsen .page-title h1 { font-size: clamp(27px, 7.8vw, 33px); line-height: 1.6; margin: 0 0 20px; letter-spacing: .045em; }
  .page-title>p:last-child { font-size: 13px; line-height: 1.9; }
  .page-reserve .page-title h1 { font-size: 30px; }
  .page-jump { font-size: 12px; gap: 6px 18px; margin-top: 24px; }
  .split-copy h2, .editorial-row h2, .breakfast-story h2, .room-details h2,
  .section-heading h2, .bathing-info h2, .information-section h2,
  .faq-section h2, .quiet-night h2 { font-size: 28px; line-height: 1.65; letter-spacing: .035em; }
  .split-copy .lead { font-size: 18px; line-height: 1.9; }
  .split-copy>div>p:not(.lead), .editorial-row p:not(.fine-print) { font-size: 15px; line-height: 1.95; }
  .editorial-row h2, .breakfast-story h2 { margin-bottom: 24px; }
  .walk-list article h3 { font-size: 23px; }
  .walk-list article { column-gap: 14px; }
  .data-list>div { font-size: 14px; line-height: 1.9; padding: 18px 0; }
  .data-list dt { font-size: 12px; }
  .faq-section summary { font-size: 14px; line-height: 1.85; }
  .faq-section details>p { font-size: 14px; line-height: 1.95; }
  .next-chapter h2 { font-size: 24px; }
  .footer-top nav { font-size: 12px; row-gap: 6px; }
  .footer-bottom { font-size: 11px; }
}
@media (max-width:360px) {
  .river-heading h2, .notebook-heading h2, .morning-chapter h2 { font-size: 28px; }
  .stay-notebook h3 { font-size: 21px; }
  .split-copy h2, .editorial-row h2 { font-size: 26px; }
  .stay-facts a { font-size: 11px; }
  .room-table { font-size: 14px; }
}
