/* Reference: the supplied White Desert site uses a capped 17.333px base,
   15.167px body text, 1.4-1.5 body leading and normal tracking.
   Keep MR99's fonts and section geometry while applying that reading scale. */
:root {
  --type-base: clamp(16px, 1.111111vw, 17.333333px);
  --type-body: calc(var(--type-base) * .875);
  --type-large: var(--type-base);
  --type-heading: clamp(30px, 3.125vw, 60px);
  --type-hero: clamp(34px, 3.75vw, 65px);
  --type-script: clamp(24px, 1.8vw, 32px);
  --title: var(--type-heading);
  --body-size: var(--type-body);
  --script-size: var(--type-script);
}
body { font-size: var(--type-base); letter-spacing: normal; }
h1, h2, h3, p, li, a, button, label, input, textarea, summary, blockquote {
  letter-spacing: normal;
}
h1, h2 { line-height: 1.1; }
.body-copy, .hero-copy .body-copy, .difference-body,
.service-copy > .body-copy, .cross .service-copy > .body-copy {
  font-size: var(--type-body); line-height: 1.5; letter-spacing: normal;
}
.script { font-size: var(--type-script); line-height: 1.2; }
.nav-group { font-size: var(--type-body); line-height: 1.5; }
.menu-tabs button, .menu-home, .menu-enquire { font-size: var(--type-large); line-height: 1.4; }
.menu-section a, .menu-section [data-gallery-unavailable], .menu-mobile-links a {
  font-size: 16px; line-height: 1.25;
}
.menu-section h3 { font-size: 28px; line-height: 1.2; }
.intro h1, .service-copy h2 { line-height: 1.1; }
.difference-subtitle { font-size: clamp(18px, 1.3vw, 25px); line-height: 1.2; }
.founder blockquote { line-height: 1.2; }
.founder-role { font-size: var(--type-large); line-height: 1.2; }
.button-outline, .button-solid { font-size: var(--type-large); line-height: 1.4; }

/* Journey pages */
.family-page {
  --family-title: var(--type-heading);
  --family-body: var(--type-body);
  --family-script: var(--type-script);
}
.family-main h2, .itinerary-map h2, .inspiration-section h2,
.inspiration-closing h2 { font-size: var(--type-heading); line-height: 1.1; }
.family-hero h1, .inspiration-hero h1 { font-size: var(--type-hero); line-height: 1.05; }
.family-script, .inspiration-subtitle { font-size: var(--type-script); line-height: 1.2; }
.hero-meta, .inspiration-hero-subtitle { font-size: calc(var(--type-base) * 1.125); line-height: 1.4; }
.hero-intro, .intro-body, .intro-copy .intro-body, .slide-description,
.itinerary-day p, .inspiration-hero-intro, .inspiration-body {
  font-size: var(--type-body); line-height: 1.5;
}
.family-anchors a, .inspiration-hero-nav a { font-size: var(--type-body); line-height: 1.4; }
.slide-copy h2 { font-size: clamp(26px, 2.083333vw, 40px); line-height: 1.1; }
.itinerary-day h3 { font-size: calc(var(--type-base) * 1.375); line-height: 1.2; }
.inspiration-option-group h3 { font-size: var(--type-large); line-height: 1.2; }
.inspiration-option { font-size: calc(var(--type-base) * 1.375); line-height: 1.2; }
.inspiration-option-description, .option-note { font-size: var(--type-body); line-height: 1.5; }
.closing-script { font-size: calc(var(--type-base) * 1.375); line-height: 1.2; }
.inspiration-closing h3 { font-size: calc(var(--type-base) * 1.75); line-height: 1.2; }
.closing-note { font-size: var(--type-body); line-height: 1.4; }
.inspiration-contact { font-size: var(--type-large); line-height: 1.4; }

/* Services */
.detail-page { --detail-body: var(--type-body); --detail-title: var(--type-hero); }
.detail-hero h1 { font-size: var(--type-hero); line-height: 1.05; }
.detail-script { font-size: var(--type-script); line-height: 1.2; }
.detail-hero-intro, .detail-explainer, .offering-body {
  font-size: var(--type-body); line-height: 1.5;
}
.detail-explore-heading { font-size: clamp(26px, 2.083333vw, 40px); line-height: 1.1; }
.offering-title { font-size: calc(var(--type-base) * 1.375); line-height: 1.2; }
.experience-heading h2, .detail-closing h2 { font-size: var(--type-heading); line-height: 1.1; }
.project-title { font-size: calc(var(--type-base) * 1.125); line-height: 1.4; }
.project-link, .detail-outline { font-size: var(--type-large); line-height: 1.4; }
.detail-closing > .detail-script { font-size: calc(var(--type-base) * 1.375); line-height: 1.2; }

/* About and studio */
.about-page { --about-heading: var(--type-heading); --about-body: var(--type-body); --about-script: var(--type-script); }
.about-main h1, .about-main h2 { font-size: var(--type-heading); line-height: 1.1; }
.about-body, .partner-details, .partner-category p { font-size: var(--type-body); line-height: 1.5; }
.about-script, .wayfinders-heading .about-script, .partners-heading .about-script {
  font-size: var(--type-script); line-height: 1.2;
}
.belief-copy, .company-copy { font-size: calc(var(--type-base) * 1.375); line-height: 1.4; }
.collage-label { font-size: var(--type-heading); line-height: 1.1; }
.collage-caption { font-size: calc(var(--type-base) * 1.75); line-height: 1.2; }
.partner-category h3 { font-size: var(--type-large); line-height: 1.4; }
.studio-intro h2 { font-size: clamp(28px, 2.083333vw, 40px); line-height: 1.1; }
.studio-intro-heading > p { font-size: calc(var(--type-base) * 1.125); line-height: 1.4; }
.studio-intro-copy, .studio-service ul, .studio-statistic-label { font-size: var(--type-body); line-height: 1.5; }
.studio-service h3 { font-size: var(--type-large); line-height: 1.2; }
.studio-collage-label { font-size: var(--type-heading); line-height: 1.1; }
.studio-visit { font-size: clamp(24px, 2.083333vw, 36px); line-height: 1.2; }

/* Keep the homepage and studio display scale aligned with the supplied reference. */
@media (min-width: 901px) {
  .difference-body { width: 21.333333vw; }
  .inspiration-panel span {
    font-size: clamp(28px, 2.083333vw, 40px);
    line-height: 1.2;
  }
  .menu-tabs button, .menu-home, .menu-enquire {
    font-size: 16px;
    line-height: 1.3;
  }
  .menu-section a, .menu-section [data-gallery-unavailable] { padding: 3px 0; }
  .studio-page .studio-hero h1 {
    font-size: 10.416667vw;
    line-height: 1.03;
  }
}

/* Move, gallery, and supporting pages */
.move-heading, .move-option h2, .move-drawer-title, .move-plan-card h2,
.gallery-hero h1 { font-size: var(--type-heading); line-height: 1.1; }
.move-tab, .gallery-tab { font-size: calc(var(--type-base) * 1.375); line-height: 1.2; }
.move-option-subtitle, .move-option-copy, .move-detail-section p,
.move-plan-intro, .gallery-photo figcaption, .how-step p { font-size: var(--type-body); line-height: 1.5; }
.move-detail-section h3 { font-size: var(--type-large); line-height: 1.4; }
.move-button, .move-return { font-size: var(--type-large); line-height: 1.4; }
.how-aside h1 { font-size: clamp(28px, 2.083333vw, 40px); line-height: 1.1; }
.how-step h2 { font-size: var(--type-large); line-height: 1.2; }
.enquire-modal .enquire-modal__intro { font-size: var(--type-body); line-height: 1.5; }
.plan-group legend, .plan-line, .enquire-modal .enquire-modal__card label { font-size: var(--type-body); line-height: 1.4; }
.enquire-modal .enquire-modal__submit, .enquire-modal .enquire-modal__return { font-size: var(--type-large); line-height: 1.4; }

/* The footer keeps the supplied ending's geometry and display wordmark. */
.home-footer .footer-column h3 { font-size: clamp(22px, 1.5vw, 26px); line-height: 1.2; }
.home-footer .footer-column > a { font-size: var(--type-body); line-height: 1.4; }
.home-footer-bottom { font-size: var(--type-body); line-height: 1.5; }
.footer-film, .footer-action-pair > *, .footer-action-enquire {
  font-size: var(--type-large); line-height: 1.4;
}
.footer-wordmark { letter-spacing: -.048em; }
.carousel-toggle { letter-spacing: -2px; }

@media (max-width: 900px) {
  :root {
    --type-base: 16px;
    --type-body: 16px;
    --type-heading: 30px;
    --type-hero: 34px;
    --type-script: 28px;
  }
  .intro h1 { font-size: clamp(26px, 5.7vw, 34px); line-height: 1.1; }
  .difference-subtitle { font-size: 18px; line-height: 1.2; }
  .family-anchors a, .inspiration-hero-nav a { font-size: 12px; }
  .hero-meta, .inspiration-hero-subtitle { font-size: 18px; }
  .intro-body, .intro-copy .intro-body, .inspiration-body { line-height: 1.5; }
  .slide-copy h2 { font-size: 26px; line-height: 1.1; }
  .family-main .itinerary-map h2 { font-size: clamp(24px, 6.2vw, 30px); }
  .inspiration-section h2 { font-size: 28px; }
  .inspiration-closing h2 { font-size: 28px; }
  .inspiration-closing h3 { font-size: 24px; }
  .inspiration-option { font-size: 21px; }
  .inspiration-option-group h3 { font-size: 16px; }
  .inspiration-option-description, .closing-note { font-size: 14px; }
  .menu-tabs button { font-size: 12px; }
  .menu-section h3 { font-size: 27px; }
  .menu-section a, .menu-section [data-gallery-unavailable] {
    font-size: 17px;
    line-height: 1.25;
  }
  .about-main h1 { font-size: 34px; }
  .studio-service h3 { font-size: 17px; }
  .move-tab, .gallery-tab { font-size: 20px; }
  .move-button { font-size: 14px; }
  .home-footer .footer-column > a { font-size: 13px; line-height: 1.4; }
  .home-footer-bottom { font-size: 14px; line-height: 1.5; }
  .footer-film, .footer-action-pair > *, .footer-action-enquire { font-size: 15px; }
}
@media (max-width: 600px) {
  .gallery-tab { font-size: clamp(13px, 3.45vw, 18px); }
}
@media (max-width: 700px) {
  .footer-wordmark { letter-spacing: -.065em; }
}
