/* Readable public-page typography: keep the brand voice, lower sustained visual volume. */
body:is(
  [data-page="home"],
  [data-page="markets"],
  [data-page="cities"],
  [data-page="community"],
  [data-page="guide"],
  [data-page="partners"]
) h1,
body:is(
  [data-page="home"],
  [data-page="markets"],
  [data-page="cities"],
  [data-page="community"],
  [data-page="guide"],
  [data-page="partners"]
) h2,
body:is(
  [data-page="home"],
  [data-page="markets"],
  [data-page="cities"],
  [data-page="community"],
  [data-page="guide"],
  [data-page="partners"]
) h3 {
  text-wrap: balance;
}

/* Home: one strong first impression, then quieter section rhythm. */
body[data-page="home"] .home-hero h1 {
  max-width: 570px;
  font-size: clamp(40px, 3.65vw, 52px);
  line-height: 1.08;
  letter-spacing: -.042em;
  font-weight: 900;
}

body[data-page="home"] .home-hero-slogan { font-size: 18px; }
body[data-page="home"] .home-feature-caption h2 { font-size: 22px; }

body[data-page="home"] .home-how-intro h2,
body[data-page="home"] .home-section-heading h2 {
  font-size: clamp(27px, 2.35vw, 35px);
  line-height: 1.12;
  letter-spacing: -.035em;
}

body[data-page="home"] .home-trust-section .trust-heading h2 {
  font-size: clamp(30px, 2.8vw, 40px);
  line-height: 1.08;
  letter-spacing: -.04em;
}

body[data-page="home"] .home-discovery-timeline .home-section-heading h2 { font-size: 24px; }
body[data-page="home"] .home-conversion-layout h2 { font-size: 24px; }

/* Directory and guide heroes: reduce height and avoid poster-sized copy. */
body[data-page="markets"] .route-hero,
body[data-page="guide"] .route-hero {
  padding-top: clamp(40px, 4.5vw, 56px);
  padding-bottom: 36px;
}

body[data-page="markets"] .route-hero-grid,
body[data-page="guide"] .route-hero-grid {
  align-items: center;
  gap: clamp(36px, 5vw, 68px);
}

body[data-page="markets"] .route-hero h1,
body[data-page="guide"] .route-hero h1 {
  max-width: 640px;
  font-size: clamp(38px, 3.45vw, 48px);
  line-height: 1.06;
  letter-spacing: -.043em;
  font-weight: 900;
}

body[data-page="markets"] .route-hero-copy p,
body[data-page="guide"] .route-hero-copy p {
  font-size: 14px;
  line-height: 1.75;
}

body[data-page="guide"] .section { padding-block: 50px; }
body[data-page="guide"] .guide-panel { margin-top: 30px; }
body[data-page="guide"] .guide-panel h2 {
  max-width: 620px;
  font-size: clamp(32px, 3.55vw, 46px);
  line-height: 1.04;
  letter-spacing: -.04em;
}

body[data-page="guide"] .section-heading h2 {
  max-width: 690px;
  font-size: clamp(29px, 3vw, 40px);
  line-height: 1.08;
  letter-spacing: -.04em;
}

/* City channel: keep editorial energy without making every section a hero. */
body[data-page="cities"] .city-channel-hero-inner { padding-block: 24px 28px; }

body[data-page="cities"] .city-channel-hero h1 {
  max-width: 620px;
  font-size: clamp(38px, 3.65vw, 50px);
  line-height: 1.05;
  letter-spacing: -.043em;
  font-weight: 900;
}

body[data-page="cities"] .city-hero-highlights h2 {
  font-size: clamp(23px, 2.35vw, 31px);
  line-height: 1.1;
}

body[data-page="cities"] .section { padding-block: 50px; }
body[data-page="cities"] .section-heading h2,
body[data-page="cities"] .city-directory-heading h2 {
  font-size: clamp(29px, 3vw, 40px);
  line-height: 1.08;
  letter-spacing: -.04em;
}

body[data-page="cities"] .city-coverage-heading h2 {
  font-size: clamp(27px, 2.65vw, 36px);
  line-height: 1.12;
}

body[data-page="cities"] .market-live-fallback-copy h3 {
  font-size: clamp(27px, 3vw, 38px);
  line-height: 1.08;
}

/* Community records and submission: bring the sign-in state closer and calmer. */
body[data-page="community"] .community-hero-grid {
  min-height: 420px;
  padding-block: 40px;
}

body[data-page="community"] .community-hero h1 {
  max-width: 590px;
  font-size: clamp(38px, 3.65vw, 50px);
  line-height: 1.08;
  letter-spacing: -.045em;
  font-weight: 900;
}

body[data-page="community"] .community-intro { padding-block: 34px 32px; }
body[data-page="community"] .community-feed-section { padding-block: 56px 62px; }
body[data-page="community"] .community-submission-section { padding-block: 56px; }

body[data-page="community"] .community-intro h2,
body[data-page="community"] .community-section-heading h2,
body[data-page="community"] .community-login-gate h2,
body[data-page="community"] .community-submission-header h2,
body[data-page="community"] .community-comment-rules h2 {
  font-size: clamp(27px, 2.7vw, 36px);
  line-height: 1.12;
  letter-spacing: -.038em;
}

body[data-page="community"] .community-intro h2 { font-size: clamp(25px, 2.35vw, 32px); }

body[data-page="community"] .community-login-gate { padding: 30px 34px; }
body[data-page="community"] .community-comment-rules-inner { padding-block: 42px; }

/* Partnership: reduce the sales-poster feel while preserving plan hierarchy. */
body[data-page="partners"] .partner-hero,
body[data-page="partners"] .partner-hero-inner { min-height: 500px; }

body[data-page="partners"] .partner-hero-copy {
  width: min(540px, 47%);
  padding-block: 48px 42px;
}

body[data-page="partners"] .partner-hero-copy h1 {
  max-width: 570px;
  font-size: clamp(42px, 4.25vw, 58px);
  line-height: 1.04;
  letter-spacing: -.048em;
  font-weight: 900;
}

body[data-page="partners"] .partner-hero-lead {
  margin-block: 22px 24px;
  font-size: 15px;
  line-height: 1.72;
}

body[data-page="partners"] .partner-hero-actions .button {
  min-width: 178px;
  min-height: 50px;
  font-size: 14px;
}

body[data-page="partners"] .partner-assurance-row { margin-top: 26px; }
body[data-page="partners"] .partner-plans-section { padding-top: 52px; }

body[data-page="partners"] .partner-section-heading h2 {
  font-size: clamp(30px, 3.2vw, 42px);
  line-height: 1.1;
  letter-spacing: -.042em;
}

body[data-page="partners"] .partner-plan-group-heading h3 {
  font-size: clamp(20px, 2vw, 26px);
  line-height: 1.15;
}

body[data-page="partners"] .partner-plan-card h3 { font-size: 22px; }
body[data-page="partners"] .partner-process-heading h2 { font-size: clamp(26px, 2.5vw, 33px); }
body[data-page="partners"] .partner-entry-intro h2 { font-size: 27px; }

.guide-capability-filter { display: flex; flex-wrap: wrap; align-items: end; gap: 16px; margin-bottom: 20px; }
.guide-capability-filter > label { display: grid; gap: 6px; font-size: 13px; font-weight: 750; }
.guide-capability-filter select { min-height: 44px; min-width: 180px; max-width: 100%; padding: 8px 12px; border: 1px solid #b8bcb4; border-radius: 8px; background: #fffdf7; color: var(--ink); font: inherit; }
.guide-capability-filter p { margin: 0; color: var(--muted); font-size: 13px; line-height: 1.6; }

@media (max-width: 760px) {
  body[data-page="home"] .home-hero h1,
  body[data-page="markets"] .route-hero h1,
  body[data-page="guide"] .route-hero h1,
  body[data-page="cities"] .city-channel-hero h1,
  body[data-page="community"] .community-hero h1,
  body[data-page="partners"] .partner-hero-copy h1 {
    font-size: clamp(34px, 10.2vw, 43px);
    line-height: 1.1;
    letter-spacing: -.038em;
  }

  body[data-page="home"] .home-how-intro h2,
  body[data-page="home"] .home-section-heading h2,
  body[data-page="home"] .home-trust-section .trust-heading h2,
  body[data-page="guide"] .section-heading h2,
  body[data-page="cities"] .section-heading h2,
  body[data-page="cities"] .city-directory-heading h2,
  body[data-page="community"] .community-intro h2,
  body[data-page="community"] .community-section-heading h2,
  body[data-page="community"] .community-login-gate h2,
  body[data-page="community"] .community-submission-header h2,
  body[data-page="community"] .community-comment-rules h2,
  body[data-page="partners"] .partner-section-heading h2 {
    font-size: clamp(27px, 8vw, 33px);
    line-height: 1.13;
  }

  body[data-page="guide"] .guide-panel h2 { font-size: clamp(30px, 9vw, 38px); }
  body[data-page="home"] .home-hero-slogan { font-size: 17px; }
  body[data-page="cities"] .city-channel-hero-inner { padding-block: 20px 24px; }
  body[data-page="community"] .community-hero-grid { min-height: 0; padding-block: 34px; }
  body[data-page="community"] .community-intro { padding-block: 26px; }
  body[data-page="community"] .community-feed-section,
  body[data-page="community"] .community-submission-section { padding-block: 44px; }
  body[data-page="community"] .community-login-gate { padding: 25px 22px; }
  body[data-page="partners"] .partner-hero-copy { width: 100%; padding-block: 38px 24px; }
}

@media (max-width: 430px) {
  body[data-page="home"] .home-hero h1,
  body[data-page="markets"] .route-hero h1,
  body[data-page="guide"] .route-hero h1,
  body[data-page="cities"] .city-channel-hero h1,
  body[data-page="community"] .community-hero h1,
  body[data-page="partners"] .partner-hero-copy h1 {
    font-size: clamp(32px, 9.8vw, 39px);
  }
}

@media (max-width: 760px) {
  body[data-page="markets"] .route-hero { padding-block: 24px 22px; }
  body[data-page="markets"] .route-hero-grid { gap: 14px; }
  body[data-page="markets"] .route-hero h1 { font-size: clamp(29px,8vw,36px); line-height: 1.1; }
  body[data-page="markets"] .route-hero .eyebrow { margin-bottom: 10px; }
  body[data-page="markets"] .route-hero-copy p { margin-bottom: 12px; font-size: 13px; }
  body[data-page="markets"] .route-hero-note { padding-top: 12px; }
  body[data-page="markets"] #results { padding-block: 22px 40px; }
}

@media (max-width: 760px) {
  body[data-page="guide"] .route-hero { padding-block: 28px 24px; }
  body[data-page="guide"] .route-hero h1 { font-size: clamp(30px, 8vw, 38px); }
}
