/* Site-wide polish: one type system and tighter vertical rhythm.
   Loaded last on every page so it wins over the older per-page styles. */

:root {
    --font-body: "Inter", "Segoe UI", system-ui, -apple-system, Arial, sans-serif;
    --font-heading: "Montserrat", "Inter", "Segoe UI", system-ui, Arial, sans-serif;
    --section-space: clamp(2.75rem, 2.2vw + 2rem, 4rem);
}

/* Typography (Chinese keeps its own CJK font stack from global.css) */
html:not([lang="zh-CN"]) body {
    font-family: var(--font-body);
}
html:not([lang="zh-CN"]) :is(h1, h2, h3, .section-title, .partner-name, .brand-name) {
    font-family: var(--font-heading);
}
body {
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    text-rendering: optimizeLegibility;
}
main :is(h1, h2, h3) {
    letter-spacing: -0.015em;
    text-wrap: balance;
    /* very long words (e.g. Russian "достопримечательности") must not push past a phone screen */
    overflow-wrap: break-word;
    hyphens: auto;
}
main p {
    text-wrap: pretty;
}

/* Section headings: smaller, lighter, closer to their content */
.section-header {
    margin-bottom: clamp(1.75rem, 1.5vw + 1rem, 2.5rem);
}
.section-header .section-title,
.section-header h1,
.section-header h2 {
    font-size: clamp(1.7rem, 1.1vw + 1.25rem, 2.35rem);
    font-weight: 700;
    line-height: 1.18;
    margin-bottom: 0.6rem;
}
.section-header .section-subtitle,
.section-header p {
    font-size: clamp(1rem, 0.25vw + 0.94rem, 1.1rem);
    line-height: 1.6;
    max-width: 720px;
}
main h3 {
    font-weight: 700;
    line-height: 1.3;
}

/* Content sections: one consistent vertical rhythm instead of 80px padding plus trailing margins */
main :is(
    .section, .about-story, .about-reasons, .about-destination, .about-values, .about-booking, .about-team,
    .partners-section, .sales-intro,
    .accom-categories, .accom-comparison, .accom-meal-plans, .accom-faq,
    .marine-facts, .marine-species-showcase, .marine-calendar, .marine-gallery-section,
    #featured-dive-sites, #recommended-dive-holidays, #dive-sites-faq
),
.why-fuvahmulah, .marine-life, .guest-stories {
    padding-top: var(--section-space);
    padding-bottom: var(--section-space);
}
main section > .container > :last-child,
main section > .container > :last-child > :last-child,
.why-fuvahmulah > .container > :last-child,
.marine-life > .container > :last-child,
.guest-stories > .container > :last-child {
    margin-bottom: 0;
}

/* Closing call-to-action panels: less empty space around the panel */
main :is(.about-cta, .accom-cta, .packages-cta) {
    padding-top: var(--section-space);
    padding-bottom: var(--section-space);
}

/* Buttons: same font and a slightly firmer weight everywhere */
.btn,
button {
    font-family: inherit;
}
.btn {
    font-weight: 600;
    letter-spacing: 0.005em;
}

@media (max-width: 768px) {
    .section-header {
        margin-bottom: 1.5rem;
    }
}

@media (max-width: 420px) {
    .section-header .section-title,
    .section-header h1,
    .section-header h2 {
        font-size: 1.55rem;
    }
}
