/*
Theme Name: Flatsome Child
Description: This is a child theme for Flatsome Theme
Author: UX Themes
Template: flatsome
Version: 3.0
*/

/*************** ADD CUSTOM CSS HERE.   ***************/
@import url('https://fonts.googleapis.com/css2?family=Raleway:wght@500;700;800&display=swap');

:root {
    /* Colors */
    --color-primary-text: #000000;
    --color-light-text: var(--primary-color);
    --color-secondary: var(--fs-color-secondary);
    --color-pll: #5C5C5C;
    --color-linear-1: var(--fs-color-success);
    --color-linear-2: var(--fs-color-alert);
    /* Font Weights */
    --fw-regular: 400;
    --fw-medium: 500;
    --fw-semibold: 600;
    --fw-bold: 700;
    --fw-extrabold: 800;

    /* Font Sizes (Base 16px) */
    /* --- HEADING (Giảm mạnh ~50-60% khi xuống mobile) --- */
    /* Desktop: 72px -> Mobile: ~40px */
    --fs-72: clamp(1.875rem, 3.5vw + 1rem, 4.5rem);

    /* Desktop: 60px -> Mobile: ~36px */
    --fs-60: clamp(1.25rem, 1.25vw + 1rem, 3.75rem);

    /* Desktop: 40px -> Mobile: ~28px */
    --fs-40: clamp(1.25rem, 2.25vw + 1rem, 2.5rem);

    /* --- SUB-HEADING (Giảm vừa ~20-30%) --- */
    /* Desktop: 36px -> Mobile: ~26px */
    --fs-36: clamp(1.625rem, 1.25vw + 1rem, 2.25rem);

    /* Desktop: 32px -> Mobile: ~24px */
    --fs-32: clamp(1.5rem, 2vw + 1rem, 2rem);

    /* Desktop: 28px -> Mobile: ~22px */
    --fs-28: clamp(1.375rem, 1.8vw + 0.8rem, 1.75rem);

    /* --- BODY TEXT (Giảm ít hoặc giữ nguyên) --- */
    /* Desktop: 24px -> Mobile: ~20px */
    --fs-24: clamp(1.25rem, 1.5vw + 0.8rem, 1.5rem);

    /* Desktop: 20px -> Mobile: ~18px */
    --fs-20: clamp(1.125rem, 1vw + 0.8rem, 1.25rem);

    /* Desktop: 18px -> Mobile: ~16px */
    --fs-18: clamp(1rem, .5vw + 0.8rem, 1.125rem);

    /* --- SMALL TEXT (Giữ nguyên để đọc được) --- */
    /* 16px giữ nguyên hoặc giảm tí xíu xuống 15px */
    --fs-16: clamp(0.9375rem, 0.5vw + 0.8rem, 1rem);

    /* 15px giữ nguyên */
    --fs-15: 0.9375rem;

    /* 13px giữ nguyên (Bé quá rồi không giảm nữa) */
    --fs-13: 0.8125rem;

    /* Các size nhỏ giữ nguyên */
    --space-4: 0.25rem;
    --space-8: 0.5rem;
    --space-10: 0.625rem;

    /* Trả về giá trị gốc của thiết kế */
    --space-12: 0.75rem;
    /* 12px */
    --space-16: 1rem;
    /* 16px */
    --space-20: 1.25rem;
    /* 20px */
    --space-24: 1.5rem;
    /* 24px */
    --space-28: 1.75rem;
    /* 28px */
    --space-32: 2rem;
    /* 32px */
    --space-36: 2.25rem;
    /* 36px */
    --space-40: 2.5rem;
    /* 40px */
    --space-44: 2.75rem;
    /* 44px */
    --space-48: 3rem;
    /* 48px */
    --space-52: 3.25rem;
    /* 52px */
    --space-56: 3.5rem;
    /* 56px */
    --space-60: 3.75rem;
    /* 60px */
    --space-64: 4rem;
    /* 64px */
    --space-70: 4.375rem;
    /* 70px */
}

body {
    font-family: 'Raleway', sans-serif;
    color: var(--color-primary-text);
    font-size: var(--fs-18);
    font-weight: var(--fw-medium);
    line-height: 1.6;
}

.absolute-footer.dark.medium-text-center.small-text-center {
    display: none;
}

.roboto {
    font-family: 'Roboto', sans-serif !important;
}

/*
* CONFIGS
*/
/* Reset Section Padding */
.section.section-pb-0 {
    padding-bottom: 0 !important;
}

.section.section-pt-0 {
    padding-top: 0 !important;
}

.section.section-pb-30 {
    padding-bottom: 1.875rem !important;
}

.section.section-pt-30 {
    padding-top: 1.875rem !important;
}

.section.section-pb-60 {
    padding-bottom: 3.75rem !important;
}

.section.section-pt-60 {
    padding-top: 3.75rem !important;
}

/* CF7 */
.wpcf7-form {
    margin: 0 !important;
}

.wpcf7-spinner {
    display: none !important;
}

/* ICON-Box Left */
.icon-box.featured-box.icon-box-left.text-left {
    align-items: center;
    margin-bottom: 0.25rem;
}

/* Utility Classes for Font Sizes */
.fs-72 {
    font-size: var(--fs-72) !important;
}

.fs-60 {
    font-size: var(--fs-60) !important;
}

.fs-40 {
    font-size: var(--fs-40) !important;
}

.fs-36 {
    font-size: var(--fs-36) !important;
}

.fs-32 {
    font-size: var(--fs-32) !important;
}

.fs-28 {
    font-size: var(--fs-28) !important;
}

.fs-24 {
    font-size: var(--fs-24) !important;
}

.fs-20 {
    font-size: var(--fs-20) !important;
}

.fs-18 {
    font-size: var(--fs-18) !important;
}

.fs-16 {
    font-size: var(--fs-16) !important;
}

.fs-15 {
    font-size: var(--fs-15) !important;
}

.fs-13 {
    font-size: var(--fs-13) !important;
}

/* Utility Classes for Weights */
.fw-regular {
    font-weight: var(--fw-regular) !important;
}

.fw-medium {
    font-weight: var(--fw-medium) !important;
}

.fw-semibold {
    font-weight: var(--fw-semibold) !important;
}

.fw-bold {
    font-weight: var(--fw-bold) !important;
}

.fw-extrabold {
    font-weight: var(--fw-extrabold) !important;
}

/* Utility Classes for Colors */
.text-white {
    color: var(--color-light-text) !important;
}

.text-black {
    color: var(--color-primary-text) !important;
}

.secondary-color {
    color: var(--color-secondary) !important;
}

/* Poly Lang */
.custom-lang-switch {
    display: inline-flex;
    border: 2px solid var(--color-pll);
    line-height: 1;
}

.pll-text {
    font-size: var(--fs-15);
    font-weight: var(--fw-medium);
    color: var(--color-pll);
    padding: 8px 12px;
    display: inline-block;
    text-decoration: none;
    transition: all 0.3s;
}

/*  */
.pll-text:not(:last-child) {
    border-right: 2px solid var(--color-pll);
}

.pll-text:hover,
.pll-text.active {
    color: var(--color-light-text);
}

/* Header Navigation Specific */
.header-nav>li>a,
.main-menu>li>a,
#mega-menu-wrap-primary #mega-menu-primary>li.mega-menu-item>a.mega-menu-link {
    font-family: 'Raleway', sans-serif;
    font-size: var(--fs-15);
    font-weight: var(--fw-medium);
    /* Assuming medium as default for menu, adjust if needed */
}

/* Headings Helpers (Mapping closest logical sizes if needed, or just let user use utility classes) */
h1,
.h1 {
    font-size: var(--fs-72) !important;
    font-weight: var(--fw-extrabold) !important;
}

h2,
.h2 {
    font-size: var(--fs-60) !important;
    font-weight: var(--fw-bold) !important;
}

h3,
.h3 {
    font-size: var(--fs-40) !important;
    font-weight: var(--fw-extrabold) !important;
}

h4,
.h4 {
    font-size: var(--fs-36) !important;
    font-weight: var(--fw-bold) !important;
}

h5,
.h5 {
    font-size: var(--fs-32) !important;
    font-weight: var(--fw-bold) !important;
}

.lh1 {
    line-height: 1 !important;
}

.z0 {
    z-index: 0 !important;
}

.z1 {
    z-index: 1 !important;
}

.z10 {
    z-index: 10 !important;
}

.z-max {
    z-index: 9999 !important;
}
/**
* Header Main
*/
.header-main div.flex-col.hide-for-medium.flex-right,
.header-main .header-nav.header-nav-main,
.header-main .header-nav.header-nav-main>li,
.header-main .header-nav.header-nav-main>li>a {
    height: 100%;
}

.header-main .header-nav.header-nav-main>li.html.custom.html_topbar_left,
.header-main .header-nav.header-nav-main>li.html.header-button-1 {
    display: flex;
    justify-content: center;
    align-items: center;
}

.header-main .header-nav.header-nav-main {
    gap: 1.5rem;
}

.header-button-1 .header-button a {
    padding: 1rem 2.5rem;
    line-height: 1;
}

.html.custom.html_topbar_left {
    margin: 0 1.25rem;
}

.header-main ul.nav li .nav-top-link::after {
    content: "";
    display: block;
    width: 100%;
    height: 0.125rem;
    background: linear-gradient(to right, var(--color-linear-1), var(--color-linear-2));
    position: absolute;
    bottom: 0;
    left: 0;
    transform: translateY(100%);
    opacity: 0;
    transition: all 0.3s;
}

.header-main ul.nav li .nav-top-link:hover::after,
.header-main ul.nav li:not(:first-child).active .nav-top-link::after {
    transform: translateY(0);
    opacity: 1;
}

/**
* Page Banner Shortcode
*/
.page-banner-section {
    position: relative;
    width: 100%;
    padding-top: 34.722%;
    /* 500 / 1440 * 100 */
    overflow: hidden;
}

.page-banner-bg {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 100%;
    height: 100%;
    max-width: 1440px;
    aspect-ratio: 1440/500;
    margin: 0 auto;
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
}

/* Optional Overlay for better text visibility */
.page-banner-bg::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(0, 0, 0, 0.4);
    /* Adjust opacity as needed */
}

.page-banner-content {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 10;
}

.page-banner-title {
    font-family: 'Raleway', sans-serif;
    font-size: 3.875rem !important;
    /* 60px */
    font-weight: var(--fw-bold);
    /* Bold */
    color: var(--color-light-text);
    text-transform: uppercase;
    text-align: center;
    margin: 0;
    line-height: 1.2;
}

/*
* Footer
*/
.ux-menu.stack.stack-col.justify-start.footer-menu {
    display: flex;
    flex-direction: row;
    justify-content: space-between;
    text-transform: uppercase;
    margin-top: 1rem;
    margin-bottom: 5rem;
}

.footer-menu .ux-menu-link {
    color: var(--color-light-text);
}

.footer-menu .ux-menu-link--active .ux-menu-link__link,
.footer-menu .ux-menu-link:hover .ux-menu-link__link {
    color: var(--color-secondary);
}

/* CF7 - FOOTER */

/* 1. Layout Flexbox 70% - 30% */
.newsletter-input-group {
    display: flex;
    width: 100%;
    align-items: stretch;
}

/* Phần Input (Chiếm 70%) */
.newsletter-input-group .input-area {
    width: 70%;
    flex: 0 0 70%;
}

/* Phần Button (Chiếm 30%) */
.newsletter-input-group .submit-area {
    width: 30%;
    flex: 0 0 30%;
}

/* 2. Style cho ô Input Email */
.newsletter-input-group input[type="email"] {
    width: 100%;
    background-color: var(--color-light-text);
    border: none;

    font-size: 15px;
    font-weight: 400;

    padding-top: 0.78125rem;
    padding-bottom: 0.78125rem;
    padding-left: 1.25rem;

    border-radius: 4px 0 0 4px;
    margin-bottom: 0 !important;
    height: auto !important;
}

/* 3. Style cho Button Đăng Ký */
.newsletter-input-group input[type="submit"] {
    width: 100%;
    border: none;
    padding-left: 1.875rem;
    margin: 0;
    border-radius: 0 4px 4px 0 !important;
    height: 100% !important;
    background: var(--color-secondary);
}

.newsletter-label {
    margin-bottom: 1rem !important;
    display: block;
}

/*
* COMMON BLOCK
*/
.blog-single span.posted-on {
    font-family: 'Roboto', sans-serif !important;
    font-size: 1rem !important;
    font-weight: var(--fw-regular) !important;
}

.blog-single .cat-links {
    border: 1px solid var(--color-secondary) !important;
    padding: 0.625rem !important;
    border-radius: 0.25rem !important;
}

.single-page-content img {
    margin-top: 2rem !important;
    margin-bottom: 2rem !important;
    border-radius: 0.25rem;
    height: auto;
    width: 100% !important;
    object-fit: cover;
}

/* Related Post */
/* Related Post Zoom Effect */
.related-post-box:hover .image-cover {
    transform: scale(1.1);
}

.box-image.image-zoom {
    overflow: hidden;
    /* Ensure zoom stays within bounds */
    border-radius: 0.25rem;
}

/* Flex layout for paragraphs with multiple images */
.single-page-content p:has(img + img),
.single-page-content figure.wp-block-gallery {
    display: flex;
    gap: 1.5rem;
    justify-content: space-between;
    margin-top: 2rem;
    margin-bottom: 2rem;
}

/* Reset margin for images in flex container */
.single-page-content p:has(img + img) img {
    margin-top: 0 !important;
    margin-bottom: 0 !important;
    flex: 1;
    /* Equal width */
    width: auto !important;
    /* Allow flex to control width */
}

.single-page-content .wp-caption {
    width: 100% !important;
    /* Ensure caption container takes full width if needed or auto */
    max-width: 100%;
    text-align: center;
}

.single-page-content .wp-caption-text {
    text-align: center;
    font-size: 0.875rem;
    /* ~14px */
    font-style: italic;
    color: #666;
    margin-top: 0.5rem;
    background-color: rgba(0, 0, 0, 0) !important;
    padding: 0 !important;
    margin: 0 !important;
}

/* WCU Map */
.section.block-wcu .map-banner {
    background-color: transparent !important;
}

.section.block-wcu .section-bg :is(img, picture, video) {
    height: 100%;
    -o-object-fit: cover;
    object-fit: cover;
    -o-object-position: 50% 50%;
    object-position: 50% 50% !important;
    position: absolute;
    top: -10% !important;
    right: 0% !important;
    left: auto !important;
    width: 50% !important;
}

.block-wcu-construction {
    border: 1px solid #FFA791;
    border-radius: 1.5rem;
}

.block-wcu-construction>.col-inner {
    padding: 1.875rem;
}

.block-wcu .check-iconbox .icon-box-img {
    text-align: right !important;
}

.block-wcu .check-iconbox .icon-box-img img {
    width: 0.875rem !important;
    padding-top: 0 !important;
    padding-bottom: 0.25rem !important;
}

/* WCU Map */
/* --- VECTOR MAP SYSTEM --- */
/* 2. Container chính (Nằm tại vị trí bạn kéo thả trong UX Builder) */
.vector-map-spot {
    position: relative;
    width: 0;
    height: 0;
    /* Co về 0 để làm tâm chuẩn */
    display: flex;
    align-items: center;
    justify-content: center;
}

/* 3. Phần Chấm Vector (Nằm ngay tâm) */
.vec-icon-wrap {
    position: absolute;
    width: 30px;
    height: 30px;
    /* Chỉnh theo kích thước ảnh chấm của bạn */
    z-index: 2;
    display: flex;
    align-items: center;
    justify-content: center;
}

.vec-dot-img {
    width: .5rem;
    height: .5rem;
    object-fit: contain;
    position: relative;
    z-index: 2;
}

/* Hiệu ứng sóng (Ripple) nằm dưới ảnh vector */
.vec-ripple {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 100%;
    height: 100%;
    border-radius: 50%;
    animation: vec-ripple-anim 2s infinite;
    z-index: 1;
}

@keyframes vec-ripple-anim {
    0% {
        transform: translate(-50%, -50%) scale(1);
        opacity: 0.6;
    }

    100% {
        transform: translate(-50%, -50%) scale(2.5);
        opacity: 0;
    }
}

.vec-box-content {
    position: absolute;
    left: 75px;
    top: -18px;
    white-space: nowrap;
    z-index: 3;

    display: flex;
    flex-direction: column;
    width: max-content;
    min-width: 120px;
}

/* Ripple Animation */
@keyframes ripple-spot-anim {
    0% {
        width: 0;
        height: 0;
        opacity: 0.5;
    }

    100% {
        width: 200px;
        height: 200px;
        opacity: 0;
    }
}

.custom-map-spot::before,
.custom-map-spot::after {
    content: '';
    display: block;
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    border-radius: 50%;
    background: #fff;
    z-index: -1;
    animation: ripple-spot-anim 2s linear infinite;
}

.custom-map-spot::after {
    animation-delay: 0.5s;
}


/* --- TÙY CHỈNH GÓC XOAY TỪNG MIỀN --- */
.custom-map-spot.spot-north {
    top: 17% !important
}

.spot-north .vec-line-img {
    height: auto;
    max-height: 47px;
    object-fit: contain;
    aspect-ratio: 175 / 47;
    width: 14vw;
    max-width: 175px;
    display: block;
}

.spot-north .vec-line-wrap {
    transform: translateY(-50%);
    position: absolute;
    left: 0;
    top: -22px;
    bottom: auto;
    transform-origin: left center;
    z-index: 1;
}

.spot-north .vec-box-content {
    /* Tính toán lại vị trí Box khi Line xoay lên */
    /* Mẹo: Chỉnh thủ công top/left đến khi khớp với đầu đường kẻ */
    top: -70px;
    left: 170px;
}

/* Central */
.custom-map-spot.spot-central {
    right: 27% !important;
    bottom: 43% !important
}

.spot-central .vec-line-img {
    height: auto;
    max-height: 50px;
    object-fit: contain;
    aspect-ratio: 105.5 / 50;
    width: 14vw;
    max-width: 105.5px;
    display: block;
}

.spot-central .vec-line-wrap {
    transform: translateY(-50%);
    position: absolute;
    left: -105px;
    top: -25px;
    bottom: auto;
    transform-origin: left center;
    z-index: 1;
}

.spot-central .vec-box-content {
    top: -70px;
    left: -260px;
}

/* Miền Nam- South */
.custom-map-spot.spot-south {
    left: 48% !important;
    bottom: 11% !important
}

.spot-south .vec-line-img {
    height: auto;
    max-height: 82px;
    object-fit: contain;
    aspect-ratio: 129 / 82;
    width: 14vw;
    max-width: 129px;
    display: block;
}

.spot-south .vec-line-wrap {
    transform: translateY(-50%);
    position: absolute;
    left: 0;
    top: -40px;
    bottom: auto;
    transform-origin: left center;
    z-index: 1;
}

.spot-south .vec-box-content {
    top: -105px;
    left: 125px;
}


/* --- STYLE GIAO DIỆN HỘP (Giữ nguyên đẹp cũ) --- */
.region-header {
    width: 100%;
    background-color: var(--color-secondary);
    color: #fff;
    padding: .625rem 1.25rem;
    border: 1px solid #fff;
    border-radius: 1rem;
    font-size: 1rem;
    font-weight: var(--fw-semibold, 600);
    cursor: pointer;
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: .5rem;
    position: relative;
    z-index: 2;
    transition: all 0.3s;
}

.region-list {
    /* --- LOGIC ĐỂ GIỮ WIDTH --- */
    position: relative;
    width: 100%;
    min-width: 100%;
    max-height: 0;
    overflow: hidden;
    opacity: 0;
    padding: 0 1.25rem;
    border: 0px solid transparent;
    margin-top: -1px;
    background-color: var(--color-secondary);
    border-bottom-left-radius: 1rem;
    border-bottom-right-radius: 1rem;
    transition: all 0.4s cubic-bezier(0.25, 0.8, 0.25, 1);
}

.region-list ul {
    margin: 0;
    list-style: none;
    text-align: left;
    padding: 10px 0;
    width: max-content;
    min-width: 100%;
}

.region-list li {
    color: #fff;
    margin: 0 !important;
    padding: .25rem 0;
    font-size: 1rem;
    font-weight: var(--fw-regular);
}

.vec-box-content:hover .region-list {
    max-height: 500px;
    opacity: 1;
    visibility: visible;

    border: 1px solid #fff;
    border-top: none;
}

.vec-box-content:hover .region-header {
    border-bottom: none;
    border-bottom-left-radius: 0;
    border-bottom-right-radius: 0;
}

/* Socials */
/* FLOATING CONTACT ICONS */
.floating-contact-stack {
    position: fixed;
    bottom: 1.5rem;
    right: 1.25rem;
    z-index: 9999;
    display: flex;
    flex-direction: column;
    gap: 1.5rem;
}

.contact-btn {
    display: block;
    width: 4rem;
    height: 4rem;
    position: relative;
    border-radius: 50%;
    background: #fff;
    box-shadow: 0 4px 10px rgba(0, 0, 0, 0.15);
    display: flex;
    align-items: center;
    justify-content: center;
    transition: transform 0.3s ease;
}

.contact-btn:hover {
    transform: scale(1.1);
}

.contact-btn img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    border-radius: 50%;
    position: relative;
    z-index: 2;
}

.contact-btn.custom-map-spot::before,
.contact-btn.custom-map-spot::after {
    background: rgba(255, 255, 255, 0.6);
    z-index: -1;
}

.contact-messenger.custom-map-spot::before,
.contact-messenger.custom-map-spot::after,
.contact-zalo.custom-map-spot::before,
.contact-zalo.custom-map-spot::after {
    background: rgba(255, 255, 255, 0.4);
}

/*
* Utilities
* Naming: [property]-[value(px)] (Values in px, mapped to rem)
*/

/* Margin Top */
.mt-0 {
    margin-top: 0 !important;
}

.mt-4 {
    margin-top: var(--space-4) !important;
}

.mt-8 {
    margin-top: var(--space-8) !important;
}

.mt-10 {
    margin-top: var(--space-10) !important;
}

.mt-12 {
    margin-top: var(--space-12) !important;
}

.mt-16 {
    margin-top: var(--space-16) !important;
}

.mt-18 {
    margin-top: var(--space-18) !important;
}

.mt-20 {
    margin-top: var(--space-20) !important;
}

.mt-24 {
    margin-top: var(--space-24) !important;
}

.mt-26 {
    margin-top: var(--space-26) !important;
}

.mt-28 {
    margin-top: var(--space-28) !important;
}

.mt-30 {
    margin-top: var(--space-30) !important;
}

.mt-32 {
    margin-top: var(--space-32) !important;
}

.mt-36 {
    margin-top: var(--space-36) !important;
}

.mt-40 {
    margin-top: var(--space-40) !important;
}

.mt-44 {
    margin-top: var(--space-44) !important;
}

.mt-48 {
    margin-top: var(--space-48) !important;
}

.mt-52 {
    margin-top: var(--space-52) !important;
}

.mt-56 {
    margin-top: var(--space-56) !important;
}

.mt-60 {
    margin-top: var(--space-60) !important;
}

.mt-64 {
    margin-top: var(--space-64) !important;
}

.mt-70 {
    margin-top: var(--space-70) !important;
}

/* Margin Bottom */
.mb-0 {
    margin-bottom: 0 !important;
}

.mb-4 {
    margin-bottom: var(--space-4) !important;
}

.mb-8 {
    margin-bottom: var(--space-8) !important;
}

.mb-10 {
    margin-bottom: var(--space-10) !important;
}

.mb-12 {
    margin-bottom: var(--space-12) !important;
}

.mb-16 {
    margin-bottom: var(--space-16) !important;
}

.mb-18 {
    margin-bottom: var(--space-18) !important;
}

.mb-20 {
    margin-bottom: var(--space-20) !important;
}

.mb-24 {
    margin-bottom: var(--space-24) !important;
}

.mb-26 {
    margin-bottom: var(--space-26) !important;
}

.mb-28 {
    margin-bottom: var(--space-28) !important;
}

.mb-30 {
    margin-bottom: var(--space-30) !important;
}

.mb-32 {
    margin-bottom: var(--space-32) !important;
}

.mb-36 {
    margin-bottom: var(--space-36) !important;
}

.mb-40 {
    margin-bottom: var(--space-40) !important;
}

.mb-44 {
    margin-bottom: var(--space-44) !important;
}

.mb-48 {
    margin-bottom: var(--space-48) !important;
}

.mb-52 {
    margin-bottom: var(--space-52) !important;
}

.mb-56 {
    margin-bottom: var(--space-56) !important;
}

.mb-60 {
    margin-bottom: var(--space-60) !important;
}

.mb-64 {
    margin-bottom: var(--space-64) !important;
}

.mb-70 {
    margin-bottom: var(--space-70) !important;
}

/* Margin Left */
.ml-0 {
    margin-left: 0 !important;
}

.ml-4 {
    margin-left: var(--space-4) !important;
}

.ml-8 {
    margin-left: var(--space-8) !important;
}

.ml-10 {
    margin-left: var(--space-10) !important;
}

.ml-12 {
    margin-left: var(--space-12) !important;
}

.ml-16 {
    margin-left: var(--space-16) !important;
}

.ml-18 {
    margin-left: var(--space-18) !important;
}

.ml-20 {
    margin-left: var(--space-20) !important;
}

.ml-24 {
    margin-left: var(--space-24) !important;
}

.ml-26 {
    margin-left: var(--space-26) !important;
}

.ml-28 {
    margin-left: var(--space-28) !important;
}

.ml-30 {
    margin-left: var(--space-30) !important;
}

.ml-32 {
    margin-left: var(--space-32) !important;
}

.ml-36 {
    margin-left: var(--space-36) !important;
}

.ml-40 {
    margin-left: var(--space-40) !important;
}

.ml-44 {
    margin-left: var(--space-44) !important;
}

.ml-48 {
    margin-left: var(--space-48) !important;
}

.ml-52 {
    margin-left: var(--space-52) !important;
}

.ml-56 {
    margin-left: var(--space-56) !important;
}

.ml-60 {
    margin-left: var(--space-60) !important;
}

.ml-64 {
    margin-left: var(--space-64) !important;
}

.ml-70 {
    margin-left: var(--space-70) !important;
}

/* Margin Right */
.mr-0 {
    margin-right: 0 !important;
}

.mr-4 {
    margin-right: var(--space-4) !important;
}

.mr-8 {
    margin-right: var(--space-8) !important;
}

.mr-10 {
    margin-right: var(--space-10) !important;
}

.mr-12 {
    margin-right: var(--space-12) !important;
}

.mr-16 {
    margin-right: var(--space-16) !important;
}

.mr-18 {
    margin-right: var(--space-18) !important;
}

.mr-20 {
    margin-right: var(--space-20) !important;
}

.mr-24 {
    margin-right: var(--space-24) !important;
}

.mr-26 {
    margin-right: var(--space-26) !important;
}

.mr-28 {
    margin-right: var(--space-28) !important;
}

.mr-30 {
    margin-right: var(--space-30) !important;
}

.mr-32 {
    margin-right: var(--space-32) !important;
}

.mr-36 {
    margin-right: var(--space-36) !important;
}

.mr-40 {
    margin-right: var(--space-40) !important;
}

.mr-44 {
    margin-right: var(--space-44) !important;
}

.mr-48 {
    margin-right: var(--space-48) !important;
}

.mr-52 {
    margin-right: var(--space-52) !important;
}

.mr-56 {
    margin-right: var(--space-56) !important;
}

.mr-60 {
    margin-right: var(--space-60) !important;
}

.mr-64 {
    margin-right: var(--space-64) !important;
}

.mr-70 {
    margin-right: var(--space-70) !important;
}

/* Margin X */
.mx-0 {
    margin-left: 0 !important;
    margin-right: 0 !important;
}

.mx-4 {
    margin-left: var(--space-4) !important;
    margin-right: var(--space-4) !important;
}

.mx-8 {
    margin-left: var(--space-8) !important;
    margin-right: var(--space-8) !important;
}

.mx-10 {
    margin-left: var(--space-10) !important;
    margin-right: var(--space-10) !important;
}

.mx-12 {
    margin-left: var(--space-12) !important;
    margin-right: var(--space-12) !important;
}

.mx-16 {
    margin-left: var(--space-16) !important;
    margin-right: var(--space-16) !important;
}

.mx-18 {
    margin-left: var(--space-18) !important;
    margin-right: var(--space-18) !important;
}

.mx-20 {
    margin-left: var(--space-20) !important;
    margin-right: var(--space-20) !important;
}

.mx-24 {
    margin-left: var(--space-24) !important;
    margin-right: var(--space-24) !important;
}

.mx-26 {
    margin-left: var(--space-26) !important;
    margin-right: var(--space-26) !important;
}

.mx-28 {
    margin-left: var(--space-28) !important;
    margin-right: var(--space-28) !important;
}

.mx-30 {
    margin-left: var(--space-30) !important;
    margin-right: var(--space-30) !important;
}

.mx-32 {
    margin-left: var(--space-32) !important;
    margin-right: var(--space-32) !important;
}

.mx-36 {
    margin-left: var(--space-36) !important;
    margin-right: var(--space-36) !important;
}

.mx-40 {
    margin-left: var(--space-40) !important;
    margin-right: var(--space-40) !important;
}

.mx-44 {
    margin-left: var(--space-44) !important;
    margin-right: var(--space-44) !important;
}

.mx-48 {
    margin-left: var(--space-48) !important;
    margin-right: var(--space-48) !important;
}

.mx-52 {
    margin-left: var(--space-52) !important;
    margin-right: var(--space-52) !important;
}

.mx-56 {
    margin-left: var(--space-56) !important;
    margin-right: var(--space-56) !important;
}

.mx-60 {
    margin-left: var(--space-60) !important;
    margin-right: var(--space-60) !important;
}

.mx-64 {
    margin-left: var(--space-64) !important;
    margin-right: var(--space-64) !important;
}

.mx-70 {
    margin-left: var(--space-70) !important;
    margin-right: var(--space-70) !important;
}

/* Margin Y */
.my-0 {
    margin-top: 0 !important;
    margin-bottom: 0 !important;
}

.my-4 {
    margin-top: var(--space-4) !important;
    margin-bottom: var(--space-4) !important;
}

.my-8 {
    margin-top: var(--space-8) !important;
    margin-bottom: var(--space-8) !important;
}

.my-10 {
    margin-top: var(--space-10) !important;
    margin-bottom: var(--space-10) !important;
}

.my-12 {
    margin-top: var(--space-12) !important;
    margin-bottom: var(--space-12) !important;
}

.my-16 {
    margin-top: var(--space-16) !important;
    margin-bottom: var(--space-16) !important;
}

.my-18 {
    margin-top: var(--space-18) !important;
    margin-bottom: var(--space-18) !important;
}

.my-20 {
    margin-top: var(--space-20) !important;
    margin-bottom: var(--space-20) !important;
}

.my-24 {
    margin-top: var(--space-24) !important;
    margin-bottom: var(--space-24) !important;
}

.my-26 {
    margin-top: var(--space-26) !important;
    margin-bottom: var(--space-26) !important;
}

.my-28 {
    margin-top: var(--space-28) !important;
    margin-bottom: var(--space-28) !important;
}

.my-30 {
    margin-top: var(--space-30) !important;
    margin-bottom: var(--space-30) !important;
}

.my-32 {
    margin-top: var(--space-32) !important;
    margin-bottom: var(--space-32) !important;
}

.my-36 {
    margin-top: var(--space-36) !important;
    margin-bottom: var(--space-36) !important;
}

.my-40 {
    margin-top: var(--space-40) !important;
    margin-bottom: var(--space-40) !important;
}

.my-44 {
    margin-top: var(--space-44) !important;
    margin-bottom: var(--space-44) !important;
}

.my-48 {
    margin-top: var(--space-48) !important;
    margin-bottom: var(--space-48) !important;
}

.my-52 {
    margin-top: var(--space-52) !important;
    margin-bottom: var(--space-52) !important;
}

.my-56 {
    margin-top: var(--space-56) !important;
    margin-bottom: var(--space-56) !important;
}

.my-60 {
    margin-top: var(--space-60) !important;
    margin-bottom: var(--space-60) !important;
}

.my-64 {
    margin-top: var(--space-64) !important;
    margin-bottom: var(--space-64) !important;
}

.my-70 {
    margin-top: var(--space-70) !important;
    margin-bottom: var(--space-70) !important;
}

.mt-8 {
    margin-top: 0.5rem !important;
}

.mt-12 {
    margin-top: 0.75rem !important;
}

.mt-16 {
    margin-top: 1rem !important;
}

.mt-20 {
    margin-top: 1.25rem !important;
}

.mt-24 {
    margin-top: 1.5rem !important;
}

.mt-28 {
    margin-top: 1.75rem !important;
}

.mt-32 {
    margin-top: 2rem !important;
}

.mt-36 {
    margin-top: 2.25rem !important;
}

.mt-40 {
    margin-top: 2.5rem !important;
}

.mt-44 {
    margin-top: 2.75rem !important;
}

.mt-48 {
    margin-top: 3rem !important;
}

.mt-52 {
    margin-top: 3.25rem !important;
}

.mt-56 {
    margin-top: 3.5rem !important;
}

.mt-60 {
    margin-top: 3.75rem !important;
}

.mt-64 {
    margin-top: 4rem !important;
}

/* Margin Bottom */
.mb-0 {
    margin-bottom: 0 !important;
}

.mb-4 {
    margin-bottom: 0.25rem !important;
}

.mb-8 {
    margin-bottom: 0.5rem !important;
}

.mb-10 {
    margin-bottom: 0.625rem !important;
}

.mb-12 {
    margin-bottom: 0.75rem !important;
}

.mb-16 {
    margin-bottom: 1rem !important;
}

.mb-20 {
    margin-bottom: 1.25rem !important;
}

.mb-24 {
    margin-bottom: 1.5rem !important;
}

.mb-28 {
    margin-bottom: 1.75rem !important;
}

.mb-32 {
    margin-bottom: 2rem !important;
}

.mb-36 {
    margin-bottom: 2.25rem !important;
}

.mb-40 {
    margin-bottom: 2.5rem !important;
}

.mb-44 {
    margin-bottom: 2.75rem !important;
}

.mb-48 {
    margin-bottom: 3rem !important;
}

.mb-52 {
    margin-bottom: 3.25rem !important;
}

.mb-56 {
    margin-bottom: 3.5rem !important;
}

.mb-60 {
    margin-bottom: 3.75rem !important;
}

.mb-64 {
    margin-bottom: 4rem !important;
}

/* Margin Left */
.ml-0 {
    margin-left: 0 !important;
}

.ml-4 {
    margin-left: 0.25rem !important;
}

.ml-8 {
    margin-left: 0.5rem !important;
}

.ml-12 {
    margin-left: 0.75rem !important;
}

.ml-16 {
    margin-left: 1rem !important;
}

.ml-20 {
    margin-left: 1.25rem !important;
}

.ml-24 {
    margin-left: 1.5rem !important;
}

.ml-28 {
    margin-left: 1.75rem !important;
}

.ml-32 {
    margin-left: 2rem !important;
}

.ml-36 {
    margin-left: 2.25rem !important;
}

.ml-40 {
    margin-left: 2.5rem !important;
}

.ml-44 {
    margin-left: 2.75rem !important;
}

.ml-48 {
    margin-left: 3rem !important;
}

.ml-52 {
    margin-left: 3.25rem !important;
}

.ml-56 {
    margin-left: 3.5rem !important;
}

.ml-60 {
    margin-left: 3.75rem !important;
}

.ml-64 {
    margin-left: 4rem !important;
}

/* Margin Right */
.mr-0 {
    margin-right: 0 !important;
}

.mr-4 {
    margin-right: 0.25rem !important;
}

.mr-8 {
    margin-right: 0.5rem !important;
}

.mr-12 {
    margin-right: 0.75rem !important;
}

.mr-16 {
    margin-right: 1rem !important;
}

.mr-20 {
    margin-right: 1.25rem !important;
}

.mr-24 {
    margin-right: 1.5rem !important;
}

.mr-28 {
    margin-right: 1.75rem !important;
}

.mr-32 {
    margin-right: 2rem !important;
}

.mr-36 {
    margin-right: 2.25rem !important;
}

.mr-40 {
    margin-right: 2.5rem !important;
}

.mr-44 {
    margin-right: 2.75rem !important;
}

.mr-48 {
    margin-right: 3rem !important;
}

.mr-52 {
    margin-right: 3.25rem !important;
}

.mr-56 {
    margin-right: 3.5rem !important;
}

.mr-60 {
    margin-right: 3.75rem !important;
}

.mr-64 {
    margin-right: 4rem !important;
}

/* Margin X */
.mx-0 {
    margin-left: 0 !important;
    margin-right: 0 !important;
}

.mx-4 {
    margin-left: 0.25rem !important;
    margin-right: 0.25rem !important;
}

.mx-8 {
    margin-left: 0.5rem !important;
    margin-right: 0.5rem !important;
}

.mx-12 {
    margin-left: 0.75rem !important;
    margin-right: 0.75rem !important;
}

.mx-16 {
    margin-left: 1rem !important;
    margin-right: 1rem !important;
}

.mx-20 {
    margin-left: 1.25rem !important;
    margin-right: 1.25rem !important;
}

.mx-24 {
    margin-left: 1.5rem !important;
    margin-right: 1.5rem !important;
}

.mx-28 {
    margin-left: 1.75rem !important;
    margin-right: 1.75rem !important;
}

.mx-32 {
    margin-left: 2rem !important;
    margin-right: 2rem !important;
}

.mx-36 {
    margin-left: 2.25rem !important;
    margin-right: 2.25rem !important;
}

.mx-40 {
    margin-left: 2.5rem !important;
    margin-right: 2.5rem !important;
}

.mx-44 {
    margin-left: 2.75rem !important;
    margin-right: 2.75rem !important;
}

.mx-48 {
    margin-left: 3rem !important;
    margin-right: 3rem !important;
}

.mx-52 {
    margin-left: 3.25rem !important;
    margin-right: 3.25rem !important;
}

.mx-56 {
    margin-left: 3.5rem !important;
    margin-right: 3.5rem !important;
}

.mx-60 {
    margin-left: 3.75rem !important;
    margin-right: 3.75rem !important;
}

.mx-64 {
    margin-left: 4rem !important;
    margin-right: 4rem !important;
}

/* Margin Y */
.my-0 {
    margin-top: 0 !important;
    margin-bottom: 0 !important;
}

.my-4 {
    margin-top: 0.25rem !important;
    margin-bottom: 0.25rem !important;
}

.my-8 {
    margin-top: 0.5rem !important;
    margin-bottom: 0.5rem !important;
}

.my-12 {
    margin-top: 0.75rem !important;
    margin-bottom: 0.75rem !important;
}

.my-16 {
    margin-top: 1rem !important;
    margin-bottom: 1rem !important;
}

.my-20 {
    margin-top: 1.25rem !important;
    margin-bottom: 1.25rem !important;
}

.my-24 {
    margin-top: 1.5rem !important;
    margin-bottom: 1.5rem !important;
}

.my-28 {
    margin-top: 1.75rem !important;
    margin-bottom: 1.75rem !important;
}

.my-32 {
    margin-top: 2rem !important;
    margin-bottom: 2rem !important;
}

.my-36 {
    margin-top: 2.25rem !important;
    margin-bottom: 2.25rem !important;
}

.my-40 {
    margin-top: 2.5rem !important;
    margin-bottom: 2.5rem !important;
}

.my-44 {
    margin-top: 2.75rem !important;
    margin-bottom: 2.75rem !important;
}

.my-48 {
    margin-top: 3rem !important;
    margin-bottom: 3rem !important;
}

.my-52 {
    margin-top: 3.25rem !important;
    margin-bottom: 3.25rem !important;
}

.my-56 {
    margin-top: 3.5rem !important;
    margin-bottom: 3.5rem !important;
}

.my-60 {
    margin-top: 3.75rem !important;
    margin-bottom: 3.75rem !important;
}

.my-64 {
    margin-top: 4rem !important;
    margin-bottom: 4rem !important;
}

/* Padding Top */
.pt-0 {
    padding-top: 0 !important;
}

.pt-4 {
    padding-top: var(--space-4) !important;
}

.pt-8 {
    padding-top: var(--space-8) !important;
}

.pt-10 {
    padding-top: var(--space-10) !important;
}

.pt-12 {
    padding-top: var(--space-12) !important;
}

.pt-16 {
    padding-top: var(--space-16) !important;
}

.pt-18 {
    padding-top: var(--space-18) !important;
}

.pt-20 {
    padding-top: var(--space-20) !important;
}

.pt-24 {
    padding-top: var(--space-24) !important;
}

.pt-26 {
    padding-top: var(--space-26) !important;
}

.pt-28 {
    padding-top: var(--space-28) !important;
}

.pt-30 {
    padding-top: var(--space-30) !important;
}

.pt-32 {
    padding-top: var(--space-32) !important;
}

.pt-36 {
    padding-top: var(--space-36) !important;
}

.pt-40 {
    padding-top: var(--space-40) !important;
}

.pt-44 {
    padding-top: var(--space-44) !important;
}

.pt-48 {
    padding-top: var(--space-48) !important;
}

.pt-52 {
    padding-top: var(--space-52) !important;
}

.pt-56 {
    padding-top: var(--space-56) !important;
}

.pt-60 {
    padding-top: var(--space-60) !important;
}

.pt-64 {
    padding-top: var(--space-64) !important;
}

.pt-70 {
    padding-top: var(--space-70) !important;
}

/* Padding Bottom */
.pb-0 {
    padding-bottom: 0 !important;
}

.pb-4 {
    padding-bottom: var(--space-4) !important;
}

.pb-8 {
    padding-bottom: var(--space-8) !important;
}

.pb-10 {
    padding-bottom: var(--space-10) !important;
}

.pb-12 {
    padding-bottom: var(--space-12) !important;
}

.pb-16 {
    padding-bottom: var(--space-16) !important;
}

.pb-18 {
    padding-bottom: var(--space-18) !important;
}

.pb-20 {
    padding-bottom: var(--space-20) !important;
}

.pb-24 {
    padding-bottom: var(--space-24) !important;
}

.pb-26 {
    padding-bottom: var(--space-26) !important;
}

.pb-28 {
    padding-bottom: var(--space-28) !important;
}

.pb-30 {
    padding-bottom: var(--space-30) !important;
}

.pb-32 {
    padding-bottom: var(--space-32) !important;
}

.pb-36 {
    padding-bottom: var(--space-36) !important;
}

.pb-40 {
    padding-bottom: var(--space-40) !important;
}

.pb-44 {
    padding-bottom: var(--space-44) !important;
}

.pb-48 {
    padding-bottom: var(--space-48) !important;
}

.pb-52 {
    padding-bottom: var(--space-52) !important;
}

.pb-56 {
    padding-bottom: var(--space-56) !important;
}

.pb-60 {
    padding-bottom: var(--space-60) !important;
}

.pb-64 {
    padding-bottom: var(--space-64) !important;
}

.pb-70 {
    padding-bottom: var(--space-70) !important;
}

/* Padding Left */
.pl-0 {
    padding-left: 0 !important;
}

.pl-4 {
    padding-left: var(--space-4) !important;
}

.pl-8 {
    padding-left: var(--space-8) !important;
}

.pl-10 {
    padding-left: var(--space-10) !important;
}

.pl-12 {
    padding-left: var(--space-12) !important;
}

.pl-16 {
    padding-left: var(--space-16) !important;
}

.pl-18 {
    padding-left: var(--space-18) !important;
}

.pl-20 {
    padding-left: var(--space-20) !important;
}

.pl-24 {
    padding-left: var(--space-24) !important;
}

.pl-26 {
    padding-left: var(--space-26) !important;
}

.pl-28 {
    padding-left: var(--space-28) !important;
}

.pl-30 {
    padding-left: var(--space-30) !important;
}

.pl-32 {
    padding-left: var(--space-32) !important;
}

.pl-36 {
    padding-left: var(--space-36) !important;
}

.pl-40 {
    padding-left: var(--space-40) !important;
}

.pl-44 {
    padding-left: var(--space-44) !important;
}

.pl-48 {
    padding-left: var(--space-48) !important;
}

.pl-52 {
    padding-left: var(--space-52) !important;
}

.pl-56 {
    padding-left: var(--space-56) !important;
}

.pl-60 {
    padding-left: var(--space-60) !important;
}

.pl-64 {
    padding-left: var(--space-64) !important;
}

.pl-70 {
    padding-left: var(--space-70) !important;
}

/* Padding Right */
.pr-0 {
    padding-right: 0 !important;
}

.pr-4 {
    padding-right: var(--space-4) !important;
}

.pr-8 {
    padding-right: var(--space-8) !important;
}

.pr-10 {
    padding-right: var(--space-10) !important;
}

.pr-12 {
    padding-right: var(--space-12) !important;
}

.pr-16 {
    padding-right: var(--space-16) !important;
}

.pr-18 {
    padding-right: var(--space-18) !important;
}

.pr-20 {
    padding-right: var(--space-20) !important;
}

.pr-24 {
    padding-right: var(--space-24) !important;
}

.pr-26 {
    padding-right: var(--space-26) !important;
}

.pr-28 {
    padding-right: var(--space-28) !important;
}

.pr-30 {
    padding-right: var(--space-30) !important;
}

.pr-32 {
    padding-right: var(--space-32) !important;
}

.pr-36 {
    padding-right: var(--space-36) !important;
}

.pr-40 {
    padding-right: var(--space-40) !important;
}

.pr-44 {
    padding-right: var(--space-44) !important;
}

.pr-48 {
    padding-right: var(--space-48) !important;
}

.pr-52 {
    padding-right: var(--space-52) !important;
}

.pr-56 {
    padding-right: var(--space-56) !important;
}

.pr-60 {
    padding-right: var(--space-60) !important;
}

.pr-64 {
    padding-right: var(--space-64) !important;
}

.pr-70 {
    padding-right: var(--space-70) !important;
}

/* Padding X */
.px-0 {
    padding-left: 0 !important;
    padding-right: 0 !important;
}

.px-4 {
    padding-left: var(--space-4) !important;
    padding-right: var(--space-4) !important;
}

.px-8 {
    padding-left: var(--space-8) !important;
    padding-right: var(--space-8) !important;
}

.px-10 {
    padding-left: var(--space-10) !important;
    padding-right: var(--space-10) !important;
}

.px-12 {
    padding-left: var(--space-12) !important;
    padding-right: var(--space-12) !important;
}

.px-16 {
    padding-left: var(--space-16) !important;
    padding-right: var(--space-16) !important;
}

.px-18 {
    padding-left: var(--space-18) !important;
    padding-right: var(--space-18) !important;
}

.px-20 {
    padding-left: var(--space-20) !important;
    padding-right: var(--space-20) !important;
}

.px-24 {
    padding-left: var(--space-24) !important;
    padding-right: var(--space-24) !important;
}

.px-26 {
    padding-left: var(--space-26) !important;
    padding-right: var(--space-26) !important;
}

.px-28 {
    padding-left: var(--space-28) !important;
    padding-right: var(--space-28) !important;
}

.px-30 {
    padding-left: var(--space-30) !important;
    padding-right: var(--space-30) !important;
}

.px-32 {
    padding-left: var(--space-32) !important;
    padding-right: var(--space-32) !important;
}

.px-36 {
    padding-left: var(--space-36) !important;
    padding-right: var(--space-36) !important;
}

.px-40 {
    padding-left: var(--space-40) !important;
    padding-right: var(--space-40) !important;
}

.px-44 {
    padding-left: var(--space-44) !important;
    padding-right: var(--space-44) !important;
}

.px-48 {
    padding-left: var(--space-48) !important;
    padding-right: var(--space-48) !important;
}

.px-52 {
    padding-left: var(--space-52) !important;
    padding-right: var(--space-52) !important;
}

.px-56 {
    padding-left: var(--space-56) !important;
    padding-right: var(--space-56) !important;
}

.px-60 {
    padding-left: var(--space-60) !important;
    padding-right: var(--space-60) !important;
}

.px-64 {
    padding-left: var(--space-64) !important;
    padding-right: var(--space-64) !important;
}

.px-70 {
    padding-left: var(--space-70) !important;
    padding-right: var(--space-70) !important;
}

/* Padding Y */
.py-0 {
    padding-top: 0 !important;
    padding-bottom: 0 !important;
}

.py-4 {
    padding-top: var(--space-4) !important;
    padding-bottom: var(--space-4) !important;
}

.py-8 {
    padding-top: var(--space-8) !important;
    padding-bottom: var(--space-8) !important;
}

.py-10 {
    padding-top: var(--space-10) !important;
    padding-bottom: var(--space-10) !important;
}

.py-12 {
    padding-top: var(--space-12) !important;
    padding-bottom: var(--space-12) !important;
}

.py-16 {
    padding-top: var(--space-16) !important;
    padding-bottom: var(--space-16) !important;
}

.py-18 {
    padding-top: var(--space-18) !important;
    padding-bottom: var(--space-18) !important;
}

.py-20 {
    padding-top: var(--space-20) !important;
    padding-bottom: var(--space-20) !important;
}

.py-24 {
    padding-top: var(--space-24) !important;
    padding-bottom: var(--space-24) !important;
}

.py-26 {
    padding-top: var(--space-26) !important;
    padding-bottom: var(--space-26) !important;
}

.py-28 {
    padding-top: var(--space-28) !important;
    padding-bottom: var(--space-28) !important;
}

.py-30 {
    padding-top: var(--space-30) !important;
    padding-bottom: var(--space-30) !important;
}

.py-32 {
    padding-top: var(--space-32) !important;
    padding-bottom: var(--space-32) !important;
}

.py-36 {
    padding-top: var(--space-36) !important;
    padding-bottom: var(--space-36) !important;
}

.py-40 {
    padding-top: var(--space-40) !important;
    padding-bottom: var(--space-40) !important;
}

.py-44 {
    padding-top: var(--space-44) !important;
    padding-bottom: var(--space-44) !important;
}

.py-48 {
    padding-top: var(--space-48) !important;
    padding-bottom: var(--space-48) !important;
}

.py-52 {
    padding-top: var(--space-52) !important;
    padding-bottom: var(--space-52) !important;
}

.py-56 {
    padding-top: var(--space-56) !important;
    padding-bottom: var(--space-56) !important;
}

.py-60 {
    padding-top: var(--space-60) !important;
    padding-bottom: var(--space-60) !important;
}

.py-64 {
    padding-top: var(--space-64) !important;
    padding-bottom: var(--space-64) !important;
}

.py-70 {
    padding-top: var(--space-70) !important;
    padding-bottom: var(--space-70) !important;
}

.pt-8 {
    padding-top: var(--space-8) !important;
}

.pt-12 {
    padding-top: var(--space-12) !important;
}

.pt-16 {
    padding-top: var(--space-16) !important;
}

.pt-20 {
    padding-top: var(--space-20) !important;
}

.pt-24 {
    padding-top: var(--space-24) !important;
}

.pt-26 {
    padding-top: var(--space-26) !important;
}

.pt-28 {
    padding-top: var(--space-28) !important;
}

.pt-32 {
    padding-top: var(--space-32) !important;
}

.pt-36 {
    padding-top: var(--space-36) !important;
}

.pt-40 {
    padding-top: var(--space-40) !important;
}

.pt-44 {
    padding-top: var(--space-44) !important;
}

.pt-48 {
    padding-top: var(--space-48) !important;
}

.pt-52 {
    padding-top: var(--space-52) !important;
}

.pt-56 {
    padding-top: var(--space-56) !important;
}

.pt-60 {
    padding-top: var(--space-60) !important;
}

.pt-64 {
    padding-top: var(--space-64) !important;
}

/* Padding Bottom */
.pb-0 {
    padding-bottom: 0 !important;
}

.pb-4 {
    padding-bottom: var(--space-4) !important;
}

.pb-8 {
    padding-bottom: var(--space-8) !important;
}

.pb-12 {
    padding-bottom: var(--space-12) !important;
}

.pb-16 {
    padding-bottom: var(--space-16) !important;
}

.pb-20 {
    padding-bottom: var(--space-20) !important;
}

.pb-24 {
    padding-bottom: var(--space-24) !important;
}

.pb-26 {
    padding-bottom: var(--space-26) !important;
}

.pb-28 {
    padding-bottom: var(--space-28) !important;
}

.pb-32 {
    padding-bottom: var(--space-32) !important;
}

.pb-36 {
    padding-bottom: var(--space-36) !important;
}

.pb-40 {
    padding-bottom: var(--space-40) !important;
}

.pb-44 {
    padding-bottom: var(--space-44) !important;
}

.pb-48 {
    padding-bottom: var(--space-48) !important;
}

.pb-52 {
    padding-bottom: var(--space-52) !important;
}

.pb-56 {
    padding-bottom: var(--space-56) !important;
}

.pb-60 {
    padding-bottom: var(--space-60) !important;
}

.pb-64 {
    padding-bottom: var(--space-64) !important;
}

/* Padding Left */
.pl-0 {
    padding-left: 0 !important;
}

.pl-4 {
    padding-left: var(--space-4) !important;
}

.pl-8 {
    padding-left: var(--space-8) !important;
}

.pl-12 {
    padding-left: var(--space-12) !important;
}

.pl-16 {
    padding-left: var(--space-16) !important;
}

.pl-20 {
    padding-left: var(--space-20) !important;
}

.pl-24 {
    padding-left: var(--space-24) !important;
}

.pl-28 {
    padding-left: var(--space-28) !important;
}

.pl-32 {
    padding-left: var(--space-32) !important;
}

.pl-36 {
    padding-left: var(--space-36) !important;
}

.pl-40 {
    padding-left: var(--space-40) !important;
}

.pl-44 {
    padding-left: var(--space-44) !important;
}

.pl-48 {
    padding-left: var(--space-48) !important;
}

.pl-52 {
    padding-left: var(--space-52) !important;
}

.pl-56 {
    padding-left: var(--space-56) !important;
}

.pl-60 {
    padding-left: var(--space-60) !important;
}

.pl-64 {
    padding-left: var(--space-64) !important;
}

/* Padding Right */
.pr-0 {
    padding-right: 0 !important;
}

.pr-4 {
    padding-right: var(--space-4) !important;
}

.pr-8 {
    padding-right: var(--space-8) !important;
}

.pr-12 {
    padding-right: var(--space-12) !important;
}

.pr-16 {
    padding-right: var(--space-16) !important;
}

.pr-20 {
    padding-right: var(--space-20) !important;
}

.pr-24 {
    padding-right: var(--space-24) !important;
}

.pr-28 {
    padding-right: var(--space-28) !important;
}

.pr-32 {
    padding-right: var(--space-32) !important;
}

.pr-36 {
    padding-right: var(--space-36) !important;
}

.pr-40 {
    padding-right: var(--space-40) !important;
}

.pr-44 {
    padding-right: var(--space-44) !important;
}

.pr-48 {
    padding-right: var(--space-48) !important;
}

.pr-52 {
    padding-right: var(--space-52) !important;
}

.pr-56 {
    padding-right: var(--space-56) !important;
}

.pr-60 {
    padding-right: var(--space-60) !important;
}

.pr-64 {
    padding-right: var(--space-64) !important;
}

/* Padding X */
.px-0 {
    padding-left: 0 !important;
    padding-right: 0 !important;
}

.px-4 {
    padding-left: var(--space-4) !important;
    padding-right: var(--space-4) !important;
}

.px-8 {
    padding-left: var(--space-8) !important;
    padding-right: var(--space-8) !important;
}

.px-12 {
    padding-left: var(--space-12) !important;
    padding-right: var(--space-12) !important;
}

.px-16 {
    padding-left: var(--space-16) !important;
    padding-right: var(--space-16) !important;
}

.px-20 {
    padding-left: var(--space-20) !important;
    padding-right: var(--space-20) !important;
}

.px-24 {
    padding-left: var(--space-24) !important;
    padding-right: var(--space-24) !important;
}

.px-28 {
    padding-left: var(--space-28) !important;
    padding-right: var(--space-28) !important;
}

.px-32 {
    padding-left: var(--space-32) !important;
    padding-right: var(--space-32) !important;
}

.px-36 {
    padding-left: var(--space-36) !important;
    padding-right: var(--space-36) !important;
}

.px-40 {
    padding-left: var(--space-40) !important;
    padding-right: var(--space-40) !important;
}

.px-44 {
    padding-left: var(--space-44) !important;
    padding-right: var(--space-44) !important;
}

.px-48 {
    padding-left: var(--space-48) !important;
    padding-right: var(--space-48) !important;
}

.px-52 {
    padding-left: var(--space-52) !important;
    padding-right: var(--space-52) !important;
}

.px-56 {
    padding-left: var(--space-56) !important;
    padding-right: var(--space-56) !important;
}

.px-60 {
    padding-left: var(--space-60) !important;
    padding-right: var(--space-60) !important;
}

.px-64 {
    padding-left: var(--space-64) !important;
    padding-right: var(--space-64) !important;
}

/* Padding Y */
.py-0 {
    padding-top: 0 !important;
    padding-bottom: 0 !important;
}

.py-4 {
    padding-top: var(--space-4) !important;
    padding-bottom: var(--space-4) !important;
}

.py-8 {
    padding-top: var(--space-8) !important;
    padding-bottom: var(--space-8) !important;
}

.py-10 {
    padding-top: var(--space-10) !important;
    padding-bottom: var(--space-10) !important;
}

.py-12 {
    padding-top: var(--space-12) !important;
    padding-bottom: var(--space-12) !important;
}

.py-16 {
    padding-top: var(--space-16) !important;
    padding-bottom: var(--space-16) !important;
}

.py-18 {
    padding-top: var(--space-18) !important;
    padding-bottom: var(--space-18) !important;
}

.py-20 {
    padding-top: var(--space-20) !important;
    padding-bottom: var(--space-20) !important;
}

.py-24 {
    padding-top: var(--space-24) !important;
    padding-bottom: var(--space-24) !important;
}

.py-28 {
    padding-top: var(--space-28) !important;
    padding-bottom: var(--space-28) !important;
}

.py-32 {
    padding-top: var(--space-32) !important;
    padding-bottom: var(--space-32) !important;
}

.py-36 {
    padding-top: var(--space-36) !important;
    padding-bottom: var(--space-36) !important;
}

.py-40 {
    padding-top: var(--space-40) !important;
    padding-bottom: var(--space-40) !important;
}

.py-44 {
    padding-top: var(--space-44) !important;
    padding-bottom: var(--space-44) !important;
}

.py-48 {
    padding-top: var(--space-48) !important;
    padding-bottom: var(--space-48) !important;
}

.py-52 {
    padding-top: var(--space-52) !important;
    padding-bottom: var(--space-52) !important;
}

.py-56 {
    padding-top: var(--space-56) !important;
    padding-bottom: var(--space-56) !important;
}

.py-60 {
    padding-top: var(--space-60) !important;
    padding-bottom: var(--space-60) !important;
}

.py-64 {
    padding-top: var(--space-64) !important;
    padding-bottom: var(--space-64) !important;
}

.py-70 {
    padding-top: var(--space-70) !important;
    padding-bottom: var(--space-70) !important;
}

@media only screen and (max-width: 1025px) {
    .header-main .header-nav.header-nav-main {
        gap: 0.5rem;
    }

    .spot-north .vec-line-img,
    .spot-south .vec-line-img {
        width: 10vw;
    }

    .spot-north .vec-line-wrap {
        top: -0.875rem;
    }

    .spot-south .vec-line-wrap {
        top: -2rem;
    }

    .spot-north .vec-box-content {
        top: -3.125rem;
        left: 6.25rem;
    }

    .spot-south .vec-box-content {
        top: -6.25rem;
        left: 2.8125rem;
    }
}

@media only screen and (max-width: 821px) {

    .spot-north .vec-line-img,
    .spot-south .vec-line-img {
        width: 15vw !important;
    }

    .spot-south .vec-line-wrap {
        top: -2.5rem;
    }

    .spot-north .vec-box-content {
        top: -5.5vh !important;
        left: 13.5vw !important;
    }

    .spot-central .vec-box-content {
        top: -6vh !important;
        left: -32vw !important;
    }

    .spot-south .vec-box-content {
        top: -8.5vh !important;
        left: 13.5vw !important;
    }
}

@media (max-width: 768px) {
    .floating-contact-stack {
        bottom: 20px;
        right: 20px;
        left: auto;
        /* Ensure no conflict */
        gap: 1rem;
    }

    .contact-btn {
        width: 3.5rem;
        height: 3.5rem;
    }
}


@media (max-width: 550px) {

    .map-banner .banner-layers.container {
        overflow: visible;
    }

    .spot-south .vec-line-wrap,
    .spot-north .vec-line-wrap,
    .spot-central .vec-line-wrap {
        display: none !important;
    }

    .spot-central .vec-box-content {
        top: -6vh !important;
        left: -55vw !important;
    }

    .spot-south .vec-box-content {
        top: -8.5vh !important;
        left: 3.5vw !important;
    }

    .hotspot-2 {
        bottom: 43% !important;
        right: 35% !important;
    }

    .region-header,
    .region-list li {
        font-size: .75rem !important;
    }

}

@media only screen and (max-width: 431px) {

    .page-banner-section {
        padding-top: calc(200% / 3);
    }

    .page-banner-title {
        font-size: 2.5rem !important;
    }

    .ux-menu.stack.stack-col.justify-start.footer-menu {
        margin-bottom: 2rem !important;
    }

    .custom-newsletter-wrapper .newsletter-input-group input[type="submit"] {
        padding: 0 !important;
    }

    #footer .footer-col-2>.col-inner {
        padding: 0px !important;
    }

    /* News Detail */
    .single-page-content p:has(img + img),
    .single-page-content figure.wp-block-gallery {
        display: flex;
        flex-wrap: wrap;
        gap: 1.25rem;
    }

    /*  Custom */
    br {
        display: none !important;
    }

    .sm-fs-14 {
        font-size: 0.875rem !important;
    }

    .sm-fs-15 {
        font-size: 0.9375rem !important;
    }

    .sm-fs-16 {
        font-size: 1rem !important;
    }

    .sm-fs-18 {
        font-size: 1.125rem !important;
    }

    .sm-fs-20 {
        font-size: 1.25rem !important;
    }

    .sm-fs-22 {
        font-size: 1.375rem !important;
    }

    .sm-fs-24 {
        font-size: 1.5rem !important;
    }

    .sm-fs-28 {
        font-size: 1.75rem !important;
    }
}

@media only screen and (max-width: 376px) {
    .footer-menu .ux-menu-link__link {
        font-size: .75rem !important;
    }
}