/* A contemporary slab serif brings the club voice closer to the reference. */
@font-face {
  font-family: 'Roboto Slab Gymnos';
  src: url('./assets/fonts/RobotoSlab-Variable.woff') format('woff');
  font-weight: 100 900; font-style: normal; font-display: swap;
}
:root {
  --club-title: 'Roboto Slab Gymnos', Georgia, serif;
  --display: var(--sans);
}
.hero h1,.section-title,.hours-section h2,.place-copy h2,.contact-section h2,
.route-overlay h3,.activity-feature-title,.promise-intro strong,.services-heading,.included h3 {
  font-family: var(--club-title); font-weight: 600; font-style: normal;
  letter-spacing: -.045em; line-height: 1.02;
}
.hero h1 em,.section-title em,.place-copy h2 em,.contact-section h2 em { font-style: normal; }
.hero h1 { font-size: clamp(57px, 6vw, 92px); }
.section-title { font-size: clamp(50px, 5.8vw, 90px); }
.hours-section h2 { font-size: clamp(48px, 5.3vw, 82px); }
.place-copy h2 { font-size: clamp(50px, 5.8vw, 90px); }
.contact-section h2 { font-size: clamp(52px, 6.3vw, 98px); }
.contact-section h2 em { font-size: clamp(31px, 4.3vw, 66px); }
.route-overlay h3 { font-size: clamp(36px, 3.5vw, 55px); }
.promise-intro strong { font-size: clamp(23px, 2.3vw, 33px); font-weight: 500; }
.hero-photo-tag b,.hero-visual-bottom span,.route-class-mark { font-family: var(--club-title); font-weight: 600; }
.hero-visual-bottom span { font-size: clamp(24px, 2.3vw, 34px); line-height: 1.02; letter-spacing: -.045em; }
.services-row > a strong { font-family: var(--sans); font-weight: 600; }
.services-heading,.included h3 { font-size: 32px; }
.activity-feature-title { font-size: clamp(48px, 4.4vw, 70px); }
.activity-feature.is-long .activity-feature-title { font-size: clamp(35px, 3.3vw, 52px); }

/* The practical layer stays open and readable, with less compressed names. */
.activity-trigger strong,.activity-spec strong,.hours-art-number,.hours-art-foot strong,
.price-feature strong,.price-grid strong,.contact-card strong,.contact-card a,
.schedule-panel-head h3,.schedule-day h4,.schedule-day li strong,.gallery-current {
  font-family: var(--sans); font-weight: 600; letter-spacing: -.025em;
}
.activity-trigger strong { font-size: clamp(27px, 2.65vw, 40px); font-weight: 700; }
.hours-art-number { font-size: clamp(70px, 7vw, 104px); }
.price-feature strong { font-size: clamp(65px, 8vw, 118px); }
.schedule-panel-head h3 { line-height: 1.02; }

@media (max-width: 980px) {
  .activities-section .section-title { font-size: clamp(32px, 7.6vw, 52px); line-height: 1.04; }
  .activity-trigger strong { font-size: clamp(25px, 6.5vw, 33px); }
}
@media (max-width: 760px) {
  .hero h1 { font-size: clamp(40px, 10.2vw, 70px); line-height: 1.02; }
  .hero-visual-bottom span { font-size: clamp(17px, 4.8vw, 24px); }
  .section-title { font-size: clamp(34px, 8.2vw, 60px); }
  .hours-section h2,html[lang="es"] .hours-section h2 { font-size: clamp(34px, 7.8vw, 55px); }
  .place-copy h2 { font-size: clamp(39px, 9.5vw, 64px); }
  .contact-section h2 { font-size: clamp(44px, 10vw, 70px); }
  .contact-section h2 em { font-size: clamp(27px, 6.6vw, 46px); white-space: normal; }
  .route-overlay h3 { font-size: clamp(29px, 7.1vw, 43px); }
  .promise-intro strong { font-size: 25px; }
  .services-heading,.included h3 { font-size: 28px; }
  .hours-art-number { font-size: clamp(70px, 16vw, 108px); }
  .price-feature strong { font-size: clamp(62px, 15vw, 82px); }
  .price-feature strong small { font-size: 18px; }
  .price-grid strong { font-size: 26px; }
  .price-grid > div:last-child strong { font-size: 22px; }
  .contact-card strong { font-size: clamp(23px, 6.3vw, 31px); line-height: 1.05; }
  .contact-card a { font-size: clamp(24px, 6vw, 31px); }
  html[lang="es"] .pricing-section .section-title { font-size: clamp(31px, 7.6vw, 56px); }
}
@media (max-width: 430px) {
  .hero h1 { font-size: clamp(43px, 11.5vw, 52px); }
  html[lang="es"] .activities-section .section-title { font-size: clamp(29px, 7.6vw, 36px); }
  html[lang="es"] .hours-section h2 { font-size: clamp(30px, 7.8vw, 36px); }
}
