/*
 * Lower-page responsive typography and narrow-column guard.
 * Phase 5 extraction from typography-final.css.
 * Loaded after each lower page's own stylesheet by design.
 */

/* --------------------------------------------------------------------------
   02. Lower-page hero titles
   -------------------------------------------------------------------------- */

@media (min-width: 1024px) {
  .p-about-v14-hero__content,
  .p-camp-facility-v14-hero__content,
  .p-camp-flow-v14-hero__content,
  .p-activities-v14-hero__content,
  .p-access-v14-hero__content,
  .p-sponsors-v14-hero__content,
  .p-news-v14-hero__content,
  .p-faq-v14-hero__content,
  .p-privacy-v14-hero__content,
  .p-reservation-v14-hero__content,
  .p-contact-v14-hero__content {
    max-width: 700px !important;
  }

  .p-about-v14-hero__title,
  .p-camp-facility-v14-hero__title,
  .p-camp-flow-v14-hero__title,
  .p-activities-v14-hero__title,
  .p-access-v14-hero__title,
  .p-sponsors-v14-hero__title,
  .p-news-v14-hero__title,
  .p-faq-v14-hero__title,
  .p-privacy-v14-hero__title,
  .p-reservation-v14-hero__title,
  .p-contact-v14-hero__title {
    max-width: none !important;
    font-size: clamp(2.65rem, 3.2vw, 2.95rem) !important;
    line-height: 1.42 !important;
    letter-spacing: 0.055em !important;
  }
}

/* --------------------------------------------------------------------------
   03. Section and final-call headings
   -------------------------------------------------------------------------- */

@media (max-width: 767px) {
  .p-about-v14-section__title,
  .p-about-v14-concept__title,
  .p-about-v14-place__title,
  .p-camp-v14-section__title,
  .p-camp-facility-v14-section__title,
  .p-camp-flow-v14-section__title,
  .p-activities-v14-section__title,
  .p-access-v14-section__title,
  .p-sponsors-v14-section__title,
  .p-sponsors-v14-message__title,
  .p-news-v14-section__title,
  .p-faq-v14-section__title,
  .p-contact-v14-section__title,
  .p-reservation-v14-section__title,
  .p-privacy-v14-section__title {
    font-size: clamp(1.72rem, 7.2vw, 2rem) !important;
    line-height: 1.42 !important;
    letter-spacing: 0.035em !important;
  }

  .p-about-v14-final__title,
  .p-camp-facility-v14-final__title,
  .p-camp-flow-v14-final__title,
  .p-activities-v14-final__title,
  .p-access-v14-final__title,
  .p-sponsors-v14-final__title,
  .p-news-v14-final__title,
  .p-faq-v14-final__title,
  .p-privacy-v14-final__title,
  .p-reservation-v14-final__title,
  .p-contact-v14-final__title {
    font-size: clamp(1.72rem, 7.6vw, 1.95rem) !important;
    line-height: 1.4 !important;
    letter-spacing: 0.035em !important;
  }

  .p-contact-v14-form-section__head,
  .p-reservation-v14-form-section__head {
    min-width: 0;
  }
}

@media (min-width: 768px) and (max-width: 1023px) {
  .p-about-v14-concept__title,
  .p-about-v14-place__title,
  .p-contact-v14-section__title,
  .p-camp-facility-v14-section__title,
  .p-camp-flow-v14-section__title,
  .p-access-v14-section__title,
  .p-faq-v14-section__title,
  .p-news-v14-section__title,
  .p-sponsors-v14-section__title,
  .p-privacy-v14-section__title {
    font-size: clamp(2rem, 4.6vw, 2.45rem) !important;
    line-height: 1.3 !important;
    letter-spacing: 0.025em !important;
  }
}

/* --------------------------------------------------------------------------
   04. Portrait-tablet column corrections
   -------------------------------------------------------------------------- */

@media (min-width: 768px) and (max-width: 1023px) {
  .p-about-v14-concept__inner,
  .p-about-v14-place__inner,
  .p-contact-v14-form-section__inner,
  .p-camp-facility-v14-practice__inner,
  .p-camp-facility-v14-check__inner,
  .p-access-v14-map__inner,
  .p-access-v14-arrival__inner,
  .p-access-v14-group__inner,
  .p-sponsors-v14-message__inner {
    grid-template-columns: minmax(0, 1fr) !important;
  }

  .p-contact-v14-form-section__head {
    position: static !important;
  }

  .p-sponsors-v14-message__title {
    font-size: clamp(2.2rem, 5.4vw, 2.8rem) !important;
    line-height: 1.32 !important;
  }

  .p-news-v14-category-card__title {
    font-size: clamp(1.15rem, 2.7vw, 1.45rem) !important;
    letter-spacing: 0.035em !important;
  }
}

/* --------------------------------------------------------------------------
   05. Card-grid readability
   -------------------------------------------------------------------------- */

.p-faq-v14-guide-card__title,
.p-faq-v14-guide-card__text,
.p-contact-v14-type-card__label,
.p-contact-v14-type-card__text,
.p-reservation-v14-type-card__label,
.p-reservation-v14-type-card__text,
.p-camp-target__card .p-lower-mini-card__text,
.p-camp-strengths__card .p-lower-card__text {
  text-wrap: balance;
}

@media (min-width: 768px) and (max-width: 1023px) {
  .p-faq-v14-guide__grid,
  .p-contact-v14-types__grid,
  .p-reservation-v14-types__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }
}

@media (min-width: 1024px) and (max-width: 1399px) {
  .p-faq-v14-guide__grid,
  .p-contact-v14-types__grid {
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  }
}

@media (min-width: 1400px) {
  .p-faq-v14-guide__grid {
    grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
  }

  .p-contact-v14-types__grid {
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  }
}

/* --------------------------------------------------------------------------
   06. Buttons and linked labels
   -------------------------------------------------------------------------- */

.p-lower-button,
.p-lower-related__card-title,
.p-contact-v14-final__links a,
.p-reservation-v14-final__links a,
.p-news-v14-final__links a,
.p-faq-v14-final__links a {
  white-space: nowrap;
  word-break: keep-all;
  overflow-wrap: normal;
}

.p-lower-related__card-title {
  text-wrap: balance;
}

.p-camp-hero .p-lower-hero__actions {
  width: min(760px, 100%);
}

.p-camp-hero .p-lower-button {
  font-size: clamp(0.75rem, 1.1vw, 0.9rem);
}

@media (min-width: 768px) and (max-width: 1023px) {
  .p-camp-hero .p-lower-hero__actions {
    grid-template-columns: minmax(0, 1fr) !important;
    width: min(440px, 100%);
  }
}
