/**
 * EFEGE — Sitewide typography & text spacing
 * Loaded in <head> via includes/seo-tags.php on all public pages.
 */

:root {
  --ef-font-display: 'Roma', 'Cormorant Garamond', Georgia, serif;
  --ef-font-sans: 'Darker Grotesque', sans-serif;
  --ef-font-body: 'Montserrat', sans-serif;

  --ef-text-xs: 10px;
  --ef-text-sm: 13px;
  --ef-text-base: 16px;
  --ef-text-md: 17px;
  --ef-text-lg: 18px;
  --ef-text-xl: 20px;

  --ef-leading-tight: 1.1;
  --ef-leading-snug: 1.25;
  --ef-leading-normal: 1.65;
  --ef-leading-relaxed: 1.75;

  --ef-space-text: 0.75em;
  --ef-space-block: 1em;
}

body {
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

/* Labels & eyebrow (16px) */
.banner__label,
.gallery-header__label,
.footer-cta__label,
.section-9__label {
  font-size: var(--ef-text-base) !important;
  line-height: var(--ef-leading-snug) !important;
}

.banner__subtitle,
.gallery-header__sub,
.footer-cta__sub,
.section-9__sub {
  font-size: var(--ef-text-base) !important;
  line-height: var(--ef-leading-normal) !important;
}

.bar__tagline {
  line-height: var(--ef-leading-snug) !important;
}

.bar__copy {
  font-size: var(--ef-text-lg) !important;
  line-height: var(--ef-leading-snug) !important;
}

/* Hero / banner titles */
.banner__title {
  font-family: var(--ef-font-display);
  font-size: clamp(36px, 7vw, 60px) !important;
  line-height: var(--ef-leading-tight) !important;
  letter-spacing: 0.05em;
}

.footer-cta__title {
  font-family: var(--ef-font-display);
  font-size: clamp(38px, 8vw, 58px) !important;
  line-height: var(--ef-leading-tight) !important;
}

.gallery-header__title {
  font-family: var(--ef-font-display);
  font-size: clamp(28px, 5vw, 36px) !important;
  line-height: var(--ef-leading-tight) !important;
}

/* Section titles */
.couple-title,
.seo-insight__title,
.destinations-section__title,
.destination-card__name {
  line-height: var(--ef-leading-snug) !important;
}

/* Body copy */
.banner__desc,
.body-text,
.couple-desc,
.seo-insight__text,
.location-sub,
.location-venue,
.destination-card__desc,
.process-step__desc,
.process-intro__text,
.process-testimonial__text {
  font-size: var(--ef-text-base);
  line-height: var(--ef-leading-normal) !important;
}

.couple-desc + .couple-desc,
.seo-insight__text + .seo-insight__text,
.body-text + .body-text {
  margin-top: var(--ef-space-block);
}

.legal-section p,
.legal-section li {
  font-size: var(--ef-text-base);
  line-height: var(--ef-leading-relaxed) !important;
}

.legal-section p + p {
  margin-top: var(--ef-space-text);
}

.legal-section p:last-child {
  margin-bottom: 0;
}

.process-hero__title {
  line-height: var(--ef-leading-tight) !important;
}

.process-hero__sub,
.process-intro__text {
  line-height: var(--ef-leading-normal) !important;
}

.footer-cta__btn {
  line-height: var(--ef-leading-snug) !important;
}

@media (min-width: 1400px) {
  .banner__title {
    font-size: clamp(60px, 5vw, 72px) !important;
  }
}

@media (max-width: 900px) {
  .banner__title {
    font-size: clamp(32px, 8vw, 44px) !important;
  }

  .couple-desc,
  .location-venue,
  .location-sub,
  .destination-card__desc {
    font-size: 15px;
    line-height: var(--ef-leading-normal) !important;
  }
}

@media (max-width: 600px) {
  .banner__label,
  .gallery-header__label,
  .footer-cta__label {
    font-size: var(--ef-text-base) !important;
    letter-spacing: 0.18em;
  }

  .banner__title {
    font-size: clamp(28px, 9vw, 36px) !important;
    line-height: 1.15 !important;
  }

  .banner__subtitle,
  .gallery-header__sub,
  .footer-cta__sub {
    font-size: var(--ef-text-md) !important;
    max-width: 100%;
  }

  .bar__tagline {
    font-size: 15px !important;
    white-space: normal;
    text-align: center;
  }

  .bar__copy {
    font-size: var(--ef-text-md) !important;
    white-space: normal;
    text-align: center;
  }

  .couple-title {
    font-size: clamp(22px, 6vw, 28px) !important;
    line-height: 1.3 !important;
  }

  .couple-desc {
    font-size: var(--ef-text-lg) !important;
  }

  .seo-insight__title {
    font-size: 22px !important;
    line-height: 1.3 !important;
  }

  .footer-cta__title {
    font-size: clamp(32px, 10vw, 38px) !important;
  }

  .gallery-header__title {
    font-size: clamp(24px, 8vw, 28px) !important;
  }
}

@media (max-width: 480px) {
  .footer-cta__label,
  .footer-cta__sub {
    font-size: var(--ef-text-md) !important;
  }
}
