html {
    box-sizing: border-box;
}

*,
*::before,
*::after {
    box-sizing: inherit;
}

body {
    margin: 0;
    background-color: var(--baza-color-background-default);
    color: var(--baza-color-text-primary);
    font-family: var(--baza-font-family-base);
    font-size: var(--baza-font-size-body);
    line-height: var(--baza-line-height-body);
}

a {
    color: var(--baza-color-accent-primary);
    text-decoration-thickness: 0.08em;
    text-underline-offset: 0.12em;
    transition: color var(--baza-motion-duration-fast) var(--baza-motion-ease-standard);
}

img {
    display: block;
    max-width: 100%;
    height: auto;
}

h1,
h2,
h3,
h4,
h5,
h6 {
    margin-top: 0;
    margin-bottom: var(--baza-spacing-md);
    color: var(--baza-color-text-primary);
    font-family: var(--baza-font-family-heading);
    line-height: var(--baza-line-height-heading);
}

h1 {
    font-size: var(--baza-font-size-heading-lg);
}

p {
    margin-top: 0;
    margin-bottom: var(--baza-spacing-md);
    color: var(--baza-color-text-primary);
}

.site-main {
    width: min(100% - (var(--baza-layout-page-gutter) * 2), var(--baza-layout-container-md));
    margin: 0 auto;
    padding-top: var(--baza-spacing-section-md);
    padding-bottom: var(--baza-spacing-section-md);
}

.site-main:has(.baza-section) {
    padding-top: 0;
    padding-bottom: 0;
}

@media (max-width: 782px) {
    :root {
        --baza-layout-mobile-section-min-height: auto;
        --baza-space-section-y-mobile: clamp(3rem, 12vw, 5rem);
        --baza-space-block-gap-mobile: var(--baza-spacing-md);
        --baza-space-card-gap-mobile: var(--baza-spacing-md);
        --baza-type-hero-heading-size-mobile: clamp(1.7rem, 5.6vw, 2.15rem);
        --baza-type-section-heading-size-mobile: clamp(1.85rem, 4vw, 2.25rem);
        --baza-type-body-size-mobile: 0.98rem;
        --baza-button-min-height-mobile: calc(var(--baza-spacing-xl) + var(--baza-spacing-xs));
        --baza-button-padding-x-mobile: var(--baza-spacing-md);
        --baza-button-padding-y-mobile: 0.38rem;
        --baza-block-padding-y-mobile: var(--baza-spacing-md);
        --baza-block-padding-x-mobile: var(--baza-layout-page-gutter);
        --baza-block-gap-mobile: var(--baza-spacing-md);
        --baza-block-heading-size-mobile: var(--baza-type-section-heading-size-mobile);
        --baza-block-body-size-mobile: var(--baza-type-body-size-mobile);
        --baza-hero-padding-y-mobile: var(--baza-spacing-xl);
        --baza-hero-padding-x-mobile: var(--baza-layout-page-gutter);
        --baza-hero-content-gap-mobile: var(--baza-spacing-md);
        --baza-hero-heading-size-mobile: clamp(1.7rem, 5.6vw, 2.15rem);
        --baza-hero-heading-line-height-mobile: var(--baza-line-height-heading);
        --baza-hero-lead-size-mobile: 0.98rem;
        --baza-hero-lead-line-height-mobile: var(--baza-line-height-body);
        --baza-hero-visual-width-mobile: min(100%, var(--baza-layout-container-sm));
        --baza-hero-visual-min-height-mobile: clamp(18rem, 32vw, 30rem);
        --baza-hero-parallax-min-height-mobile: clamp(18rem, 32vw, 30rem);
        --baza-hero-parallax-padding-y-mobile: var(--baza-spacing-xl);
        --baza-hero-parallax-padding-x-mobile: var(--baza-layout-page-gutter);
        --baza-hero-parallax-content-gap-mobile: var(--baza-spacing-md);
        --baza-hero-parallax-heading-size-mobile: clamp(1.7rem, 5.6vw, 2.15rem);
        --baza-hero-parallax-heading-line-height-mobile: var(--baza-line-height-heading);
        --baza-hero-parallax-lead-size-mobile: 0.98rem;
        --baza-hero-parallax-lead-line-height-mobile: var(--baza-line-height-body);
        --baza-hero-parallax-arc-size-mobile: min(100%, var(--baza-layout-container-sm));
        --baza-hero-parallax-arc-offset-mobile: var(--baza-spacing-xl);
        --baza-hero-parallax-visual-width-mobile: min(100%, var(--baza-layout-container-sm));
        --baza-hero-parallax-visual-min-height-mobile: clamp(18rem, 32vw, 30rem);
        --baza-hero-parallax-compact-heading-size-mobile: clamp(1.7rem, 5.6vw, 2.15rem);
        --baza-hero-parallax-compact-lead-size-mobile: 0.98rem;
        --baza-hero-parallax-compact-gap-mobile: var(--baza-spacing-md);
        --baza-hero-parallax-button-min-height-mobile: calc(var(--baza-spacing-xl) + var(--baza-spacing-xs));
        --baza-hero-parallax-button-padding-x-mobile: var(--baza-spacing-md);
        --baza-hero-parallax-button-padding-y-mobile: 0.38rem;
        --baza-section-padding-y-mobile: clamp(3rem, 12vw, 5rem);
        --baza-section-padding-x-mobile: var(--baza-layout-page-gutter);
        --baza-section-content-gap-mobile: var(--baza-spacing-md);
        --baza-section-heading-size-mobile: clamp(1.85rem, 4vw, 2.25rem);
        --baza-section-heading-line-height-mobile: var(--baza-line-height-heading);
        --baza-section-lead-size-mobile: var(--baza-font-size-body);
        --baza-section-lead-line-height-mobile: var(--baza-line-height-body);
        --baza-section-media-width-mobile: min(100%, var(--baza-layout-container-sm));
        --baza-section-stack-gap-mobile: var(--baza-spacing-md);
        --baza-section-decor-offset-mobile: 0px;
        --baza-card-grid-gap-mobile: var(--baza-spacing-md);
        --baza-card-padding-mobile: var(--baza-spacing-lg);
        --baza-cta-padding-y-mobile: var(--baza-spacing-xl);
        --baza-cta-gap-mobile: var(--baza-spacing-md);
        --baza-testimonials-gap-mobile: var(--baza-spacing-md);
        --baza-testimonial-card-padding-mobile: var(--baza-spacing-lg);
        --baza-page-snap-panel-min-height-mobile: 100vh;
        --baza-page-snap-nav-offset-mobile: 0.75rem;
        --baza-page-snap-nav-item-size-mobile: 2.75rem;
        --baza-page-snap-nav-gap-mobile: 0.38rem;
        --baza-page-snap-mobile-menu-height: 3.25rem;
        --baza-page-snap-mobile-menu-offset: 1rem;
        --baza-page-snap-mobile-menu-padding-x: 0.78rem;
        --baza-page-snap-mobile-menu-radius: 999px;
    }
}

@media (min-width: 1025px) {
    .baza-hidden-desktop {
        display: none;
    }
}

@media (min-width: 783px) and (max-width: 1024px) {
    .baza-hidden-tablet {
        display: none;
    }
}

@media (max-width: 782px) {
    .baza-hidden-mobile {
        display: none;
    }

    .baza-mobile-compact-spacing {
        --baza-space-section-y-mobile: clamp(3rem, 12vw, 5rem);
        --baza-space-block-gap-mobile: var(--baza-spacing-md);
        --baza-space-card-gap-mobile: var(--baza-spacing-md);
        --baza-section-padding-y-mobile: clamp(3rem, 12vw, 5rem);
        --baza-section-content-gap-mobile: var(--baza-spacing-md);
        --baza-card-grid-gap-mobile: var(--baza-spacing-md);
        --baza-card-padding-mobile: var(--baza-spacing-lg);
        --baza-cta-gap-mobile: var(--baza-spacing-md);
        --baza-testimonials-gap-mobile: var(--baza-spacing-md);
        --baza-spacing-section-md: clamp(3rem, 12vw, 5rem);
    }

    .baza-mobile-motion-none,
    .baza-mobile-motion-none *,
    .baza-mobile-motion-none *::before,
    .baza-mobile-motion-none *::after {
        animation: none;
        transition: none;
    }

    .baza-mobile-motion-fade,
    .baza-mobile-motion-fade *,
    .baza-mobile-motion-fade *::before,
    .baza-mobile-motion-fade *::after {
        transition-duration: 160ms;
        animation-duration: 160ms;
    }

    .baza-mobile-motion-reduced,
    .baza-mobile-motion-reduced *,
    .baza-mobile-motion-reduced *::before,
    .baza-mobile-motion-reduced *::after {
        transition-duration: 0.01ms;
        animation-duration: 0.01ms;
    }
}
