/**
 * Global typography scale — reusable across heroes, page headings, and detail titles.
 * ~15–20% reduction from previous defaults; tighter vertical rhythm.
 */
:root {
  --heading-scale: 0.82;
  --heading-line-tight: 1.25;
  --heading-line-body: 1.55;
  --page-heading-gap: 0.65rem;
}

/* Hero & marketing titles */
.hero-title,
.partner-hero .hero-title,
.privacy-hero h1 {
  font-size: clamp(1.65rem, 3.2vw, 2.05rem) !important;
  line-height: var(--heading-line-tight);
  margin-bottom: var(--page-heading-gap) !important;
  letter-spacing: 0.02em;
}

.hero-subtitle,
.partner-hero .hero-subtitle {
  font-size: clamp(0.95rem, 2vw, 1.05rem) !important;
  line-height: var(--heading-line-body);
  margin-top: 0;
}

/* Listing & content page H1 */
.packages-header h1,
.page-heading,
.compare-header h1,
.build-trip h1,
.contact-title,
.error-title,
.profile-page h1,
.payment-page h1 {
  font-size: clamp(1.45rem, 2.8vw, 1.85rem) !important;
  line-height: var(--heading-line-tight);
  margin-bottom: var(--page-heading-gap) !important;
}

.packages-header p,
.page-lead {
  font-size: clamp(0.95rem, 1.8vw, 1.05rem) !important;
  line-height: var(--heading-line-body);
  margin-top: 0;
}

/* Detail page titles */
.package-title-card .package-title,
.content-card > h2.package-title {
  font-size: clamp(1.35rem, 2.5vw, 1.65rem) !important;
  line-height: var(--heading-line-tight);
  margin-bottom: 0.35rem !important;
}

.content-card > h2.package-title {
  margin-top: 0;
}

.section-title,
.offer-details-section .section-title,
.trip-details-overview__title,
.offer-summary__title {
  font-size: clamp(1.2rem, 2.2vw, 1.45rem) !important;
  line-height: var(--heading-line-tight);
  margin-bottom: 0.5rem !important;
}

.section-subtitle,
.trip-details-overview__subtitle {
  font-size: 0.95rem !important;
  line-height: var(--heading-line-body);
  color: var(--color-text-light, #4a5568);
}

.section-header h2,
.destinations .section-header h2,
.features .section-header h2 {
  font-size: clamp(1.2rem, 2.2vw, 1.45rem) !important;
  line-height: var(--heading-line-tight);
  margin-bottom: 0.35rem !important;
}

.section-header p {
  font-size: 0.95rem !important;
  line-height: var(--heading-line-body);
  margin-top: 0;
}

/* Card titles on listings */
.package-content .package-card__title,
.package-content h3.package-card__title {
  font-size: 0.82rem !important;
  line-height: 1.3;
  margin-bottom: 0.25rem !important;
}

/* Clone-ui global headings (when variables.css loaded) */
h1:not(.sr-only) {
  font-size: clamp(1.5rem, 3vw, 2rem);
  line-height: var(--heading-line-tight);
}

h2 {
  font-size: clamp(1.25rem, 2.4vw, 1.55rem);
  line-height: 1.3;
}

h3 {
  font-size: clamp(1.05rem, 2vw, 1.2rem);
  line-height: 1.35;
}

body {
  line-height: 1.6;
}

@media (max-width: 768px) {
  .packages-header {
    margin-bottom: 1.25rem !important;
  }
}
