/* =======================================================
   GLOBAL DESIGN TOKENS
======================================================= */

:root {
    /* Layout */
    --container-width: 1200px;
    --container-padding: 24px;

    /* Section spacing */
    --section-spacing-desktop: 140px;
    --section-spacing-tablet: 115px;
    --section-spacing-mobile: 90px;

    /* Content spacing */
    --heading-spacing: 55px;
    --content-gap: 24px;

    /* Fixed navigation offset */
    --navbar-scroll-offset: 110px;
    --navbar-scroll-offset-mobile: 90px;

    /* Border radius */
    --radius-sm: 10px;
    --radius-md: 16px;
    --radius-lg: 22px;
    --radius-xl: 28px;
    --radius-pill: 999px;

    /* Transitions */
    --transition-fast: 0.2s ease;
    --transition-normal: 0.3s ease;
    --transition-slow: 0.45s ease;
}


/* =======================================================
   GLOBAL RESET
======================================================= */

*,
*::before,
*::after {
    box-sizing: border-box;
}

html {
    margin: 0;
    padding: 0;
    scroll-behavior: smooth;
}

body {
    min-height: 100vh;
    margin: 0;
    padding: 0;
    overflow-x: hidden;
}

img,
picture,
video,
canvas,
svg {
    display: block;
    max-width: 100%;
}

button,
input,
textarea,
select {
    font: inherit;
}


/* =======================================================
   TYPOGRAPHY
======================================================= */

h1,
h2,
h3,
h4,
h5,
h6,
p {
    margin-top: 0;
}

p:last-child {
    margin-bottom: 0;
}


/* =======================================================
   LINKS
======================================================= */

a {
    color: inherit;
    text-decoration: none;
}

a,
button {
    -webkit-tap-highlight-color: transparent;
}


/* =======================================================
   GLOBAL LAYOUT
======================================================= */

body {

    overflow-x: hidden;

}

main {

    position: relative;

    z-index: 1;

}

.container {

    width: 100%;

    max-width: var(--container-width);

    margin: 0 auto;

    padding-left: var(--container-padding);

    padding-right: var(--container-padding);

}

section {

    position: relative;

    padding-top: var(--section-spacing);

    padding-bottom: var(--section-spacing);

}

@media (max-width: 991px) {

    .container {

        padding-left: 20px;

        padding-right: 20px;

    }

}

@media (max-width: 767px) {

    section {

        padding-top: var(--section-spacing-mobile);

        padding-bottom: var(--section-spacing-mobile);

    }

}


/* =======================================================
   UTILITIES
======================================================= */

.no-scroll {
    overflow: hidden;
}

.visually-hidden-custom {
    position: absolute !important;
    width: 1px !important;
    height: 1px !important;
    padding: 0 !important;
    overflow: hidden !important;
    clip: rect(0, 0, 0, 0) !important;
    white-space: nowrap !important;
    border: 0 !important;
}

.text-balance {
    text-wrap: balance;
}


/* =======================================================
   RESPONSIVE LAYOUT
======================================================= */

@media (max-width: 991px) {
    :root {
        --container-padding: 22px;
        --heading-spacing: 45px;
    }

    section {
        padding-top: var(--section-spacing-tablet);
        padding-bottom: var(--section-spacing-tablet);
    }
}

@media (max-width: 767px) {
    :root {
        --container-padding: 18px;
        --heading-spacing: 38px;
    }

    section {
        padding-top: var(--section-spacing-mobile);
        padding-bottom: var(--section-spacing-mobile);
        scroll-margin-top: var(--navbar-scroll-offset-mobile);
    }
}