/* Shared vertical rhythm for public pages. Loaded after page styles. */
:root { --section-space: 28px; --heading-space: 20px; }

body :is(.section, .mv-section, .mv-story, .mv-sponsors, .mv-final-cta,
    .flight-request-zone, .flight-why, .flight-steps, .flight-final,
    .hotel-request, .hotel-catalog, .hotel-experience, .hotel-final,
    .services-intro, .services-process, .services-why, .services-final,
    .visa-intro, .visa-request, .visa-disclaimer, .visa-final,
    .trips-intro, .trips-philosophy, .trips-final,
    .promo-intro, .promo-how, .promo-final) {
    padding-top: var(--section-space);
    padding-bottom: var(--section-space);
}
body :is(.trips-catalog, .promo-offers, .services-list) { padding-top: 0; padding-bottom: var(--section-space); }
body .page-pub { margin-bottom: 0; }
body .service-feature { padding-block: var(--section-space); gap: 32px; }

body :is(.mv-section-heading, .flight-heading, .hotel-heading, .visa-heading,
    .trips-heading, .promo-heading, .formation-heading) {
    margin-bottom: var(--heading-space);
    gap: 20px;
}
body :is(.mv-section-heading, .flight-heading, .hotel-heading, .visa-heading,
    .trips-heading, .promo-heading, .formation-heading) h2,
body :is(.mv-story, .mv-final-cta, .flight-final, .hotel-final,
    .services-final, .visa-final, .trips-final, .promo-final) h2 {
    font-size: clamp(1.65rem, 2.6vw, 2.5rem);
    line-height: 1.15;
    margin-top: 8px;
}

body :is(.mv-empty, .hotel-empty, .hotel-filter-empty, .trips-empty,
    .trips-filter-empty, .promo-empty, .promo-filter-empty, .formation-empty) {
    padding: 22px 20px;
}
body .mv-empty__icon { width: 40px; height: 40px; margin-bottom: 10px; }
body .mv-service-card { min-height: 0; padding: 22px; }
body .mv-service-card__icon { margin-bottom: 16px; }
body .mv-service-card p { margin-bottom: 18px; }
body :is(.flight-step, .visa-info-card, .mv-testimonial) { min-height: 0; padding: 22px; }
body :is(.mv-final-cta__card, .flight-final__card, .hotel-final__card,
    .services-final__card, .visa-final__card, .trips-final__card, .promo-final__card) {
    min-height: 0;
    padding: 28px;
    gap: 24px;
}
body :is(.journal-contact, .formation-contact) { padding: 28px; margin-bottom: 28px; }
body .contact-map-heading { margin-top: 28px; }
body .footer { margin-top: 0; padding-top: 32px; }
body .footer-invitation { padding-bottom: 28px; margin-bottom: 28px; gap: 32px; }
body .footer-bottom { margin-top: 24px; }

@media (max-width: 640px) {
    :root { --section-space: 20px; --heading-space: 16px; }
    body .service-feature { gap: 22px; }
    body :is(.mv-final-cta__card, .flight-final__card, .hotel-final__card,
        .services-final__card, .visa-final__card, .trips-final__card,
        .promo-final__card, .journal-contact, .formation-contact) { padding: 22px; }
    body .footer-invitation { gap: 24px; }
}
