/* Final visual layout and typography corrections for the homepage.
   Loaded after all legacy and design-system layers. */

body#top {
  --vh-home-content-width: 1240px;
  --vh-home-gutter: clamp(20px, 3vw, 48px);
}

/* ===== Real hero scale: legacy CSS sizes the inner spans directly ===== */
body#top .vh-hero__title {
  max-width: 14ch !important;
  gap: 8px !important;
  font-family: var(--vh-font-display) !important;
  line-height: 1 !important;
  letter-spacing: -.035em !important;
}

body#top .vh-hero__title > :is(span, strong) {
  max-width: 100%;
  color: inherit;
  font-family: var(--vh-font-display) !important;
  font-size: clamp(3.4rem, 4.2vw, 4.75rem) !important;
  line-height: 1 !important;
  font-weight: var(--vh-weight-extra-bold) !important;
  letter-spacing: -.035em !important;
  overflow-wrap: normal;
  word-break: normal;
}

body#top .vh-hero__title > strong {
  color: #f4a259;
}

/* ===== One horizontal content grid ===== */
body#top :is(
  .vh-video-section__container,
  .vh-booking__inner,
  .vh-price-calc__wrap,
  .vh-reviews-inner,
  .vh-faq__wrap,
  .vh-contacts-section__inner
) {
  width: 100%;
  max-width: calc(var(--vh-home-content-width) + (var(--vh-home-gutter) * 2));
  margin-inline: auto;
  padding-inline: var(--vh-home-gutter);
}

body#top :is(
  .vh-video-section__header,
  .vh-video-grid,
  .vh-formats-header,
  .vh-formats-container
) {
  width: 100%;
  max-width: var(--vh-home-content-width);
  margin-inline: auto;
}

body#top .vh-formats-section {
  padding-inline: var(--vh-home-gutter);
}

body#top :is(
  .vh-video-section__header,
  .vh-formats-header,
  .vh-booking__head,
  .vh-price-calc__head,
  .vh-reviews-header,
  .vh-faq__head,
  .vh-contacts-section__head
) {
  text-align: left !important;
}

/* ===== Section title hierarchy ===== */
body#top :is(
  .vh-video-section__title,
  .vh-formats-title,
  .vh-booking__title,
  .vh-price-calc__title,
  .vh-reviews-title,
  .vh-faq__title,
  .vh-contacts-section__title
) {
  max-width: 14ch;
  margin-inline: 0;
  color: var(--vh-text-strong);
  font-family: var(--vh-font-display) !important;
  font-size: clamp(2.8rem, 4.1vw, 4rem) !important;
  line-height: 1.02 !important;
  font-weight: var(--vh-weight-heading) !important;
  letter-spacing: -.035em !important;
  text-align: left !important;
}

body#top :is(
  .vh-video-section__title,
  .vh-formats-title,
  .vh-booking__title,
  .vh-price-calc__title,
  .vh-reviews-title,
  .vh-faq__title,
  .vh-contacts-section__title
) > :is(span, strong) {
  font-family: var(--vh-font-display) !important;
  font-size: inherit !important;
  line-height: inherit !important;
  font-weight: inherit !important;
  letter-spacing: inherit !important;
}

body#top :is(
  .vh-video-section__subtitle,
  .vh-formats-description,
  .vh-booking__description,
  .vh-price-calc__description,
  .vh-reviews-subtitle,
  .vh-faq__description,
  .vh-contacts-section__description
) {
  max-width: 56ch;
  margin-inline: 0;
  color: var(--vh-text-muted);
  font-family: var(--vh-font-body) !important;
  font-size: clamp(1rem, 1.15vw, 1.12rem) !important;
  line-height: 1.58 !important;
  font-weight: var(--vh-weight-regular) !important;
  text-align: left !important;
}

/* ===== Formats: remove the unloaded Bebas/Arial fallback ===== */
body#top :is(
  .vh-formats-section,
  .vh-formats-title,
  .vh-format-card,
  .vh-format-content,
  .vh-format-title,
  .vh-format-subtitle,
  .vh-format-number,
  .vh-format-list,
  .vh-format-list li,
  .vh-format-badge,
  .vh-format-select
) {
  font-family: var(--vh-font-family) !important;
}

body#top .vh-format-title {
  max-width: 100%;
  margin: 0 0 10px;
  font-size: clamp(2rem, 2.35vw, 2.7rem) !important;
  line-height: 1.06 !important;
  font-weight: var(--vh-weight-extra-bold) !important;
  letter-spacing: -.03em !important;
  white-space: normal !important;
  text-wrap: balance;
}

body#top .vh-format-subtitle {
  font-size: clamp(.95rem, 1.1vw, 1.05rem) !important;
  line-height: 1.45 !important;
  font-weight: var(--vh-weight-semibold) !important;
}

body#top .vh-format-list li {
  font-size: clamp(.94rem, 1vw, 1rem) !important;
  line-height: 1.45 !important;
  font-weight: var(--vh-weight-medium) !important;
}

/* ===== Calm FAQ hierarchy ===== */
body#top .vh-faq__question {
  min-height: 0 !important;
  padding: var(--vh-space-5) var(--vh-space-6) !important;
  font-family: var(--vh-font-family) !important;
  font-size: clamp(1rem, 1.2vw, 1.15rem) !important;
  line-height: 1.35 !important;
  font-weight: var(--vh-weight-semibold) !important;
  letter-spacing: -.01em !important;
}

body#top .vh-faq__question span {
  font: inherit !important;
  letter-spacing: inherit !important;
}

body#top .vh-faq__answer p {
  max-width: 68ch;
  font-size: clamp(.94rem, 1vw, 1rem) !important;
  line-height: 1.68 !important;
  font-weight: var(--vh-weight-regular) !important;
}

body#top :is(
  .vh-benefit-text h3,
  .vh-booking__steps h3,
  .vh-booking__included h3,
  .vh-price-calc__included h3,
  .vh-faq__card h3,
  .vh-contact-card__content strong
) {
  font-family: var(--vh-font-display) !important;
  font-size: clamp(1.08rem, 1.45vw, 1.38rem) !important;
  line-height: 1.22 !important;
}

@media (max-width: 760px) {
  body#top {
    --vh-home-gutter: 16px;
  }

  body#top .vh-hero__title {
    max-width: 100% !important;
    gap: 5px !important;
  }

  body#top .vh-hero__title > :is(span, strong) {
    font-size: clamp(2.45rem, 10.8vw, 3rem) !important;
    line-height: 1.01 !important;
  }

  /* Preserve the horizontal video carousel while keeping the first card aligned. */
  body#top .vh-video-section__container {
    max-width: none;
    padding-left: var(--vh-home-gutter);
    padding-right: 0;
  }

  body#top .vh-video-section__header {
    margin-right: var(--vh-home-gutter);
  }

  body#top .vh-video-grid {
    max-width: none;
    margin-inline: 0;
    padding-right: var(--vh-home-gutter);
  }

  body#top :is(
    .vh-video-section__title,
    .vh-formats-title,
    .vh-booking__title,
    .vh-price-calc__title,
    .vh-reviews-title,
    .vh-faq__title,
    .vh-contacts-section__title
  ) {
    max-width: 12ch;
    font-size: clamp(2.05rem, 9.2vw, 2.6rem) !important;
    line-height: 1.04 !important;
  }

  body#top :is(
    .vh-video-section__subtitle,
    .vh-formats-description,
    .vh-booking__description,
    .vh-price-calc__description,
    .vh-reviews-subtitle,
    .vh-faq__description,
    .vh-contacts-section__description
  ) {
    max-width: 100%;
    font-size: clamp(.96rem, 4vw, 1.04rem) !important;
  }

  body#top .vh-format-title {
    font-size: clamp(1.9rem, 8vw, 2.35rem) !important;
  }

  body#top .vh-faq__question {
    padding: 17px var(--vh-space-4) !important;
    font-size: 1rem !important;
  }

  body#top .vh-faq__answer p {
    padding-inline: var(--vh-space-4);
    font-size: .94rem !important;
    line-height: 1.65 !important;
  }
}
