/*
 * Shared typography system — 2026-09-25
 * Scale is deliberately restrained. Hierarchy comes from spacing, rules and
 * photography; type size only identifies the role of the text.
 */
:root{
  --type-page-title:clamp(36px,3.8vw,52px);
  --type-section-title:clamp(28px,2.45vw,36px);
  --type-content-title:clamp(23px,1.9vw,29px);
  --type-subtitle:clamp(18px,1.45vw,21px);
  --type-lead:clamp(18px,1.45vw,21px);
  --type-body:16px;
  --type-body-small:14px;
  --type-label:10px;
  --type-caption:10px;
  --leading-display:1.46;
  --leading-heading:1.68;
  --leading-body:2.05;
  --tracking-display:.1em;
  --tracking-heading:.09em;
  --tracking-body:.045em;
  --tracking-label:.18em;
  --display:var(--type-page-title)
}

body{
  font-size:var(--type-body);
  line-height:var(--leading-body);
  letter-spacing:var(--tracking-body)
}

.section-label,
.eyebrow,
.water-kicker,
.chapter-number,
.experience-term,
.room-heading small,
figcaption{
  font-size:var(--type-label)!important;
  line-height:1.6;
  letter-spacing:var(--tracking-label)
}

figcaption{font-size:var(--type-caption)!important;letter-spacing:.11em}

/* Standard editorial pages. */
.sub-hero h1{
  font-size:var(--type-page-title);
  line-height:var(--leading-display);
  letter-spacing:var(--tracking-display)
}
.sub-hero-lead{
  font-size:var(--type-lead);
  line-height:1.88;
  letter-spacing:.07em
}
.intro-section h2,
.section-title h2,
.facts-inner h2,
.gallery-heading h2{
  font-size:var(--type-section-title);
  line-height:var(--leading-heading);
  letter-spacing:var(--tracking-heading)
}
.editorial-copy h2,
.note-panel h2,
.reservation-cta h2{
  font-size:var(--type-content-title);
  line-height:1.72;
  letter-spacing:var(--tracking-heading)
}
.intro-copy p{
  font-size:var(--type-body);
  line-height:2.12
}
.editorial-copy p,
.gallery-heading p:last-child,
.reservation-cta p{
  font-size:var(--type-body-small);
  line-height:2.08
}
.notice-item h2,
.policy h2{font-size:var(--type-subtitle);line-height:1.75;letter-spacing:.07em}
.facts dd,
.company-table dd,
.timeline dd{font-size:15px;line-height:2}

/* Top page. */
.page-home .story #story-title,
.page-home .renewal-copy h2,
.page-home .place-copy h2{
  font-size:var(--type-section-title);
  line-height:var(--leading-heading);
  letter-spacing:var(--tracking-heading)
}
.page-home .story-copy>p:not(.eyebrow),
.page-home .renewal-copy>p:last-child,
.page-home .place-copy>p{
  font-size:var(--type-body)!important;
  line-height:2.08
}
.page-home .harmony-statement{
  font-size:var(--type-lead)!important;
  line-height:2!important
}
.page-home .experience-content h3{
  font-size:var(--type-content-title)!important;
  line-height:1.68!important;
  letter-spacing:.075em
}
.page-home .experience-content>p:last-child{
  font-size:var(--type-body-small)!important;
  line-height:2.04!important
}
.page-home .reservation-copy h2{
  font-size:var(--type-content-title);
  line-height:1.72
}

/* Room catalogue. */
.page-room .intro-title h1{
  font-size:32px;
  line-height:1.5;
  letter-spacing:.11em
}
.page-room .intro-copy p{
  font-size:var(--type-body-small);
  line-height:2
}
.page-room .room-heading h2{
  font-size:28px;
  line-height:1.35;
  letter-spacing:.1em
}
.page-room .room-lead{
  font-size:var(--type-body);
  line-height:1.8
}
.page-room .room-description,
.page-room .bath-note>div>p{
  font-size:var(--type-body-small);
  line-height:2
}
.page-room .bath-note h2,
.page-room .room-reserve h2{
  font-size:var(--type-subtitle);
  line-height:1.75;
  letter-spacing:.07em
}

/* In-room information. */
.page-information .hero-copy h1{
  font-size:var(--type-page-title);
  line-height:var(--leading-display);
  letter-spacing:var(--tracking-display)
}
.page-information .hero-lead{font-size:var(--type-lead);line-height:1.9}
.page-information .section-heading h2,
.page-information .chapter-heading h2,
.page-information .contact-panel h2{
  font-size:var(--type-section-title);
  line-height:var(--leading-heading);
  letter-spacing:var(--tracking-heading)
}
.page-information .chapter-intro{
  font-size:17px;
  line-height:2.05
}
.page-information .guide-item h3{
  font-size:16px;
  line-height:1.8;
  letter-spacing:.065em
}
.page-information .guide-item p,
.page-information .guide-detail p{
  font-size:13px;
  line-height:2.05
}

/* Accommodation terms. */
.page-terms .terms-hero h1{
  font-size:var(--type-page-title);
  line-height:var(--leading-display);
  letter-spacing:var(--tracking-display)
}
.page-terms .terms-intro h2,
.page-terms .group-heading h2{
  font-size:var(--type-section-title);
  line-height:var(--leading-heading);
  letter-spacing:var(--tracking-heading)
}
.page-terms .term-item summary h3{
  font-size:17px;
  line-height:1.7;
  letter-spacing:.065em
}
.page-terms .term-body,
.page-terms .appendix-block div{
  font-size:13px;
  line-height:2.05
}
.page-terms .appendix-block h3{
  font-size:16px;
  line-height:1.8;
  letter-spacing:.055em
}

@media(max-width:1000px){
  :root{
    --type-page-title:42px;
    --type-section-title:31px;
    --type-content-title:27px;
    --type-lead:19px
  }
}

@media(max-width:700px){
  :root{
    --type-page-title:34px;
    --type-section-title:27px;
    --type-content-title:24px;
    --type-subtitle:18px;
    --type-lead:18px;
    --type-body:16px;
    --type-body-small:14px
  }
  .sub-hero h1{line-height:1.5}
  .sub-hero-lead{line-height:1.9}
  .page-home .story #story-title{font-size:25px}
  .page-home .experience-content h3{font-size:22px!important}
  .page-room .intro-title h1{font-size:30px}
  .page-room .room-heading h2{font-size:26px}
  .page-information .chapter-heading h2{font-size:27px}
  .page-terms .term-item summary h3{font-size:15px}
  .page-terms .term-body,
  .page-terms .appendix-block div{font-size:13px}
}
