/* =========================================================
   ALBERT LEOW - GLOBAL ELEMENTOR SPACING SYSTEM
   Edit variables in :root only
   ========================================================= */

:root {

    /* -----------------------------------------------------
       GLOBAL HORIZONTAL PADDING
       ----------------------------------------------------- */

    /* Mobile minimum: 20px */
    --fluid-side-padding-min: 1.25rem;

    /* Desktop maximum: 80px */
    --fluid-side-padding-max: 5rem;


    /* -----------------------------------------------------
       VERTICAL SECTION PADDING
       ----------------------------------------------------- */

    /* XXL: 150px → 160px */
    --section-xxl-padding-min: 9.375rem;
    --section-xxl-padding-max: 10rem;

    /* XL: 110px → 120px */
    --section-xl-padding-min: 6.875rem;
    --section-xl-padding-max: 7.5rem;

    /* Large: 90px → 100px */
    --section-l-padding-min: 5.625rem;
    --section-l-padding-max: 6.25rem;

    /* Medium: 80px */
    --section-m-padding: 5rem;

    /* Small: 60px */
    --section-s-padding: 3.75rem;

    /* Extra Small: 40px */
    --section-xs-padding: 2.5rem;

    /* Extra Extra Small: 24px */
    --section-xxs-padding: 1.5rem;

    /* Header: 20px */
    --section-header-padding: 1.25rem;


    /* -----------------------------------------------------
       HERO
       ----------------------------------------------------- */

    --section-hero-height: 100svh;


    /* -----------------------------------------------------
       HEADER OFFSET
       ----------------------------------------------------- */

    --section-offset-header: 80px;


    /* -----------------------------------------------------
       CONTENT WIDTH
       ----------------------------------------------------- */

    --section-narrow: 62.5rem;      /* 1000px */
    --section-narrow-xs: 45rem;     /* 720px */
}


/* =========================================================
   GLOBAL FLUID SIDE PADDING
   20px mobile → 80px desktop
   ========================================================= */

.section-xxl,
.section-xl,
.section-l,
.section-m,
.section-s,
.section-xs,
.section-xxs,
.section-header {

    padding-left: clamp(
        var(--fluid-side-padding-min),
        calc(6.522vw - 0.217rem),
        var(--fluid-side-padding-max)
    ) !important;

    padding-right: clamp(
        var(--fluid-side-padding-min),
        calc(6.522vw - 0.217rem),
        var(--fluid-side-padding-max)
    ) !important;
}


/* =========================================================
   XXL SECTION
   150px → 160px
   ========================================================= */

.section-xxl {

    padding-top: clamp(
        var(--section-xxl-padding-min),
        calc(1.087vw + 9.13rem),
        var(--section-xxl-padding-max)
    );

    padding-bottom: clamp(
        var(--section-xxl-padding-min),
        calc(1.087vw + 9.13rem),
        var(--section-xxl-padding-max)
    );
}


/* =========================================================
   XL SECTION
   110px → 120px
   ========================================================= */

.section-xl {

    padding-top: clamp(
        var(--section-xl-padding-min),
        calc(1.087vw + 6.63rem),
        var(--section-xl-padding-max)
    );

    padding-bottom: clamp(
        var(--section-xl-padding-min),
        calc(1.087vw + 6.63rem),
        var(--section-xl-padding-max)
    );
}


/* =========================================================
   LARGE SECTION
   90px → 100px
   ========================================================= */

.section-l {

    padding-top: clamp(
        var(--section-l-padding-min),
        calc(1.087vw + 5.38rem),
        var(--section-l-padding-max)
    );

    padding-bottom: clamp(
        var(--section-l-padding-min),
        calc(1.087vw + 5.38rem),
        var(--section-l-padding-max)
    );
}


/* =========================================================
   MEDIUM SECTION - 80px
   ========================================================= */

.section-m {
    padding-top: var(--section-m-padding);
    padding-bottom: var(--section-m-padding);
}


/* =========================================================
   SMALL SECTION - 60px
   ========================================================= */

.section-s {
    padding-top: var(--section-s-padding);
    padding-bottom: var(--section-s-padding);
}


/* =========================================================
   EXTRA SMALL SECTION - 40px
   ========================================================= */

.section-xs {
    padding-top: var(--section-xs-padding);
    padding-bottom: var(--section-xs-padding);
}


/* =========================================================
   EXTRA EXTRA SMALL SECTION - 24px
   ========================================================= */

.section-xxs {
    padding-top: var(--section-xxs-padding);
    padding-bottom: var(--section-xxs-padding);
}


/* =========================================================
   HEADER - 20px
   ========================================================= */

.section-header {
    padding-top: var(--section-header-padding);
    padding-bottom: var(--section-header-padding);
}


/* =========================================================
   HERO SECTION
   ========================================================= */

.section-hero {
    min-height: 100vh;
    min-height: var(--section-hero-height);
}


/* Center hero content when Elementor uses .e-con-inner */

.section-hero > .e-con-inner {
    justify-content: center;
}


/* =========================================================
   FULL WIDTH SECTION
   Targets Elementor inner container only
   ========================================================= */

.section-full > .e-con-inner {
    max-width: 100% !important;
    width: 100%;
}


/* =========================================================
   NARROW CONTENT
   ========================================================= */

.section-narrow > .e-con-inner {
    max-width: var(--section-narrow) !important;
    width: 100%;
    margin-left: auto;
    margin-right: auto;
}


/* =========================================================
   EXTRA NARROW CONTENT
   ========================================================= */

.section-narrow-xs > .e-con-inner {
    max-width: var(--section-narrow-xs) !important;
    width: 100%;
    margin-left: auto;
    margin-right: auto;
}


/* =========================================================
   OVERLAY / STICKY HEADER OFFSET
   ========================================================= */

.section-offset {
    padding-top: calc(
        var(--section-offset-header) +
        var(--section-xxl-padding-min)
    );
}
 