/*
 * T h*eme Name: Lucy AI CEO Child Theme
 * Theme URI: http://yourwebsite.com
 * Description: Child Theme For Divi
 * Author: Giorgio Gobbo
 * Author URI: http://webdesign.giorgiogobbo.com
 * Version: 1.0.0
 * Template: Divi
 */

/*
 * Theme Name: Child Theme for Divi
 * Theme URI: https://wp-ninja.net
 * Description: Child Theme For Divi
 * Author: Giorgio Gobbo
 * Author URI: https://wp-ninja.net
 * Template: Divi
 * Version: 1.0.0
 */

/* Start your custom CSS below this comment
 * ===========================================
 */

/* =========================================================
 *  01. ROOT TOKENS
 *  ========================================================= */

:root {
    /* -----------------------------------------------------
     * SECTION SPACING — VIEWPORT DRIVEN
     * ----------------------------------------------------- */
    --section-pad-y-3xs: clamp(1rem, 0.85rem + 0.5vw, 1.5rem);
    --section-pad-y-2xs: clamp(1.5rem, 1.2rem + 1vw, 2.5rem);
    --section-pad-y-xs: clamp(2rem, 1.5rem + 1.4vw, 3rem);
    --section-pad-y-sm: clamp(2.5rem, 1.9rem + 1.8vw, 4rem);
    --section-pad-y-md: clamp(3.5rem, 2.6rem + 2.3vw, 5.5rem);
    --section-pad-y-lg: clamp(4.5rem, 3.3rem + 3vw, 7rem);
    --section-pad-y-xl: clamp(5.5rem, 4rem + 3.8vw, 8.5rem);
    --section-pad-y-2xl: clamp(6.5rem, 4.8rem + 4.6vw, 10rem);
    --section-pad-y-3xl: clamp(8rem, 6rem + 5.5vw, 12rem);

    --section-pad-x-3xs: clamp(0.5rem, 0.44rem + 0.2vw, 0.75rem);
    --section-pad-x-2xs: clamp(0.75rem, 0.67rem + 0.28vw, 1rem);
    --section-pad-x-xs: clamp(1rem, 0.88rem + 0.4vw, 1.25rem);
    --section-pad-x-sm: clamp(1.25rem, 1.08rem + 0.55vw, 1.75rem);
    --section-pad-x-md: clamp(1.5rem, 1.28rem + 0.7vw, 2rem);
    --section-pad-x-lg: clamp(2rem, 1.7rem + 0.95vw, 2.75rem);
    --section-pad-x-xl: clamp(2.5rem, 2.1rem + 1.2vw, 3.5rem);
    --section-pad-x-2xl: clamp(3rem, 2.5rem + 1.5vw, 4.25rem);
    --section-pad-x-3xl: clamp(4rem, 3.3rem + 2vw, 5.5rem);

    /* -----------------------------------------------------
     * TYPOGRAPHY TOKENS
     * ----------------------------------------------------- */
    --weight-light: 300;
    --weight-regular: 400;
    --weight-medium: 500;
    --weight-semibold: 600;
    --weight-bold: 700;
    --weight-heavy: 800;

    --lh-tight: 1.08;
    --lh-heading: 1.15;
    --lh-subheading: 1.2;
    --lh-body: 1.65;
    --lh-small: 1.5;

    --text-black: #0A0D14;
    --text-white: #F8FAFC;
    --text-muted: #94A3B8;
    --text-primary: #22D3EE;
    --text-secondary: #D4A44B;

    --type-h1-hero-min: 2.5rem;
    --type-h1-hero-max: 5rem;

    --type-h1-min: 2rem;
    --type-h1-max: 4rem;

    --type-h2-min: 1.625rem;
    --type-h2-max: 3rem;

    --type-h3-min: 1.375rem;
    --type-h3-max: 2.25rem;

    --type-h4-min: 1.125rem;
    --type-h4-max: 1.75rem;

    --type-h5-min: 1rem;
    --type-h5-max: 1.375rem;

    --type-h6-min: 0.875rem;
    --type-h6-max: 1.125rem;

    --type-body-min: 0.9375rem;
    --type-body-max: 1.1875rem;
    --text-body: clamp(var(--type-body-min), 0.95rem + 0.22vw, var(--type-body-max));

    --type-body-sm-min: 0.8125rem;
    --type-body-sm-max: 1.0625rem;
    --text-body-sm: clamp(var(--type-body-sm-min), 0.82rem + 0.18vw, var(--type-body-sm-max));

    --type-card-title-min: 1rem;
    --type-card-title-max: 1.375rem;

    --type-card-body-min: 0.95rem;
    --type-card-body-max: 1.05rem;

    --type-card-meta-min: 0.8125rem;
    --type-card-meta-max: 0.95rem;
/* -----------------------------------------------------
 * SURFACES / BACKGROUNDS / BORDERS
 * ----------------------------------------------------- */

--bg-white: #ffffff;

/* Main alternate section background — almost white */
--bg-light: #fcfcfd;

/* Slightly visible alternate if #fcfcfd is too subtle */
--bg-soft: #fafafa;

/* Use only when you actually want a real grey block */
--bg-grey: #f6f7f9;

--bg-dark: #111111;
--bg-primary: var(--gcid-primary-color);
--bg-secondary: var(--gcid-secondary-color);

--surface-white: #ffffff;

/* Surfaces should stay white, not grey */
--surface-light: #ffffff;

/* Barely tinted card/panel background */
--surface-soft: #fbfbfc;

/* Stronger panel grey, not for full sections */
--surface-grey: #f7f8fa;

--surface-dark: #111111;

--border-light: #edf0f3;
--border-medium: #e2e6eb;
--border-strong: #cbd1d8;

    /* -----------------------------------------------------
     * FLUID RADIUS
     * ----------------------------------------------------- */
    --radius-3xs: clamp(0.25rem, 0.22rem + 0.08vw, 0.375rem);
    --radius-2xs: clamp(0.375rem, 0.34rem + 0.12vw, 0.5rem);
    --radius-xs: clamp(0.5rem, 0.44rem + 0.18vw, 0.625rem);
    --radius-sm: clamp(0.625rem, 0.56rem + 0.22vw, 0.75rem);
    --radius-md: clamp(0.75rem, 0.67rem + 0.28vw, 1rem);
    --radius-lg: clamp(1rem, 0.88rem + 0.4vw, 1.25rem);
    --radius-xl: clamp(1.25rem, 1.08rem + 0.55vw, 1.75rem);
    --radius-2xl: clamp(1.5rem, 1.28rem + 0.7vw, 2rem);
    --radius-3xl: clamp(2rem, 1.7rem + 0.95vw, 2.75rem);

    /* -----------------------------------------------------
     * SHADOWS
     * ----------------------------------------------------- */
    --shadow-xs: 0 1px 2px rgba(0, 0, 0, 0.04);
    --shadow-sm: 0 1px 2px rgba(0, 0, 0, 0.06);
    --shadow-md: 0 6px 18px rgba(0, 0, 0, 0.08);
    --shadow-lg: 0 12px 32px rgba(0, 0, 0, 0.12);
    --shadow-xl: 0 18px 48px rgba(0, 0, 0, 0.16);

    /* -----------------------------------------------------
     * BUTTON TOKENS
     * ----------------------------------------------------- */
    --btn-font-weight: var(--weight-semibold);
    --btn-line-height: 1.2;
    --btn-letter-spacing: 0.04em;
    --btn-radius: var(--radius-xs);

    --btn-font-size-3xs: clamp(0.75rem, 1.4cqi, 0.875rem);
    --btn-font-size-2xs: clamp(0.8125rem, 1.55cqi, 0.9375rem);
    --btn-font-size-xs: clamp(0.875rem, 1.7cqi, 1rem);
    --btn-font-size-sm: clamp(0.9375rem, 1.9cqi, 1.0625rem);
    --btn-font-size: clamp(1rem, 2.1cqi, 1.1875rem);
    --btn-font-size-lg: clamp(1.0625rem, 2.4cqi, 1.25rem);
    --btn-font-size-xl: clamp(1.125rem, 2.8cqi, 1.375rem);
    --btn-font-size-2xl: clamp(1.25rem, 3.2cqi, 1.5rem);

    --btn-pad-y-3xs: clamp(0.4rem, 1.2cqi, 0.5rem);
    --btn-pad-y-2xs: clamp(0.48rem, 1.35cqi, 0.58rem);
    --btn-pad-y-xs: clamp(0.55rem, 1.5cqi, 0.65rem);
    --btn-pad-y-sm: clamp(0.62rem, 1.7cqi, 0.72rem);
    --btn-pad-y: clamp(0.72rem, 1.9cqi, 0.85rem);
    --btn-pad-y-lg: clamp(0.82rem, 2.2cqi, 0.98rem);
    --btn-pad-y-xl: clamp(0.95rem, 2.6cqi, 1.125rem);
    --btn-pad-y-2xl: clamp(1.05rem, 3cqi, 1.3rem);

    --btn-pad-x-3xs: clamp(0.62rem, 1.5cqi, 0.8rem);
    --btn-pad-x-2xs: clamp(0.72rem, 1.8cqi, 0.92rem);
    --btn-pad-x-xs: clamp(0.82rem, 2cqi, 1rem);
    --btn-pad-x-sm: clamp(0.95rem, 2.3cqi, 1.125rem);
    --btn-pad-x: clamp(1.05rem, 2.7cqi, 1.35rem);
    --btn-pad-x-lg: clamp(1.2rem, 3.2cqi, 1.55rem);
    --btn-pad-x-xl: clamp(1.35rem, 3.8cqi, 1.8rem);
    --btn-pad-x-2xl: clamp(1.55rem, 4.4cqi, 2.1rem);

    --btn-shadow: var(--shadow-sm);
    --btn-shadow-hover: var(--shadow-md);

    --btn-primary-bg: #22D3EE;
    --btn-primary-bg-hover: #67E8F9;
    --btn-primary-text: #0A0D14;
    --btn-primary-border: #22D3EE;

    --btn-secondary-bg: #D4A44B;
    --btn-secondary-bg-hover: #F0C66A;
    --btn-secondary-text: #0A0D14;
    --btn-secondary-border: #D4A44B;
}

/* =========================================================
 *  02. CONTAINER QUERY HELPERS
 *  ========================================================= */

.cq-section,
.cq-row,
.cq-col,
.cq-group,
.cq-card {
    container-type: inline-size;
}

/* =========================================================
 *  03. SECTION TOKENS — SECTION CONTEXT
 *  ========================================================= */

.cq-section {
    --row-pad-y-3xs: clamp(0.5rem, 1.2cqi, 0.75rem);
    --row-pad-y-2xs: clamp(0.75rem, 1.8cqi, 1rem);
    --row-pad-y-xs: clamp(1rem, 2.4cqi, 1.5rem);
    --row-pad-y-sm: clamp(1.25rem, 3cqi, 2rem);
    --row-pad-y-md: clamp(1.5rem, 3.8cqi, 2.5rem);
    --row-pad-y-lg: clamp(2rem, 4.8cqi, 3.5rem);
    --row-pad-y-xl: clamp(2.5rem, 6cqi, 4.5rem);
    --row-pad-y-2xl: clamp(3rem, 7.5cqi, 5.5rem);
    --row-pad-y-3xl: clamp(4rem, 9cqi, 7rem);

    --row-pad-x-3xs: clamp(0.5rem, 1.2cqi, 0.75rem);
    --row-pad-x-2xs: clamp(0.75rem, 1.8cqi, 1rem);
    --row-pad-x-xs: clamp(1rem, 2.2cqi, 1.25rem);
    --row-pad-x-sm: clamp(1.25rem, 2.8cqi, 1.75rem);
    --row-pad-x-md: clamp(1.5rem, 3.5cqi, 2rem);
    --row-pad-x-lg: clamp(2rem, 4.5cqi, 2.75rem);
    --row-pad-x-xl: clamp(2.5rem, 5.5cqi, 3.5rem);
    --row-pad-x-2xl: clamp(3rem, 7cqi, 4.25rem);
    --row-pad-x-3xl: clamp(4rem, 8.5cqi, 5.5rem);
}

/* =========================================================
 *  04. ROW TOKENS — ROW CONTEXT
 *  ========================================================= */

.cq-row {
    --col-pad-y-3xs: clamp(0.375rem, 1cqi, 0.625rem);
    --col-pad-y-2xs: clamp(0.5rem, 1.4cqi, 0.875rem);
    --col-pad-y-xs: clamp(0.75rem, 1.8cqi, 1.125rem);
    --col-pad-y-sm: clamp(1rem, 2.4cqi, 1.5rem);
    --col-pad-y-md: clamp(1.25rem, 3cqi, 2rem);
    --col-pad-y-lg: clamp(1.5rem, 3.8cqi, 2.5rem);
    --col-pad-y-xl: clamp(2rem, 4.8cqi, 3.5rem);
    --col-pad-y-2xl: clamp(2.5rem, 6cqi, 4.5rem);
    --col-pad-y-3xl: clamp(3rem, 7.5cqi, 5.5rem);

    --col-pad-x-3xs: clamp(0.375rem, 1cqi, 0.625rem);
    --col-pad-x-2xs: clamp(0.5rem, 1.3cqi, 0.875rem);
    --col-pad-x-xs: clamp(0.75rem, 1.7cqi, 1.125rem);
    --col-pad-x-sm: clamp(1rem, 2.2cqi, 1.5rem);
    --col-pad-x-md: clamp(1.25rem, 2.8cqi, 2rem);
    --col-pad-x-lg: clamp(1.5rem, 3.6cqi, 2.5rem);
    --col-pad-x-xl: clamp(2rem, 4.6cqi, 3.25rem);
    --col-pad-x-2xl: clamp(2.5rem, 5.8cqi, 4.25rem);
    --col-pad-x-3xl: clamp(3rem, 7cqi, 5rem);

    --text-h1-hero: clamp(var(--type-h1-hero-min), 6cqi, var(--type-h1-hero-max));
    --text-h1: clamp(var(--type-h1-min), 5cqi, var(--type-h1-max));
    --text-h2: clamp(var(--type-h2-min), 4cqi, var(--type-h2-max));
    --text-h3: clamp(var(--type-h3-min), 3.2cqi, var(--type-h3-max));
    --text-h4: clamp(var(--type-h4-min), 2.6cqi, var(--type-h4-max));
    --text-h5: clamp(var(--type-h5-min), 2.1cqi, var(--type-h5-max));
    --text-h6: clamp(var(--type-h6-min), 1.7cqi, var(--type-h6-max));

    --text-body: clamp(var(--type-body-min), 2.6cqi, var(--type-body-max));
    --text-body-sm: clamp(var(--type-body-sm-min), 2.1cqi, var(--type-body-sm-max));
}

/* =========================================================
 *  05. COLUMN TOKENS — COLUMN CONTEXT
 *  ========================================================= */

.cq-col {
    --group-pad-y-3xs: clamp(0.375rem, 1cqi, 0.625rem);
    --group-pad-y-2xs: clamp(0.5rem, 1.3cqi, 0.875rem);
    --group-pad-y-xs: clamp(0.75rem, 1.8cqi, 1.125rem);
    --group-pad-y-sm: clamp(1rem, 2.4cqi, 1.5rem);
    --group-pad-y-md: clamp(1.25rem, 3cqi, 2rem);
    --group-pad-y-lg: clamp(1.5rem, 3.8cqi, 2.5rem);
    --group-pad-y-xl: clamp(2rem, 4.8cqi, 3.5rem);

    --group-pad-x-3xs: clamp(0.375rem, 1cqi, 0.625rem);
    --group-pad-x-2xs: clamp(0.5rem, 1.3cqi, 0.875rem);
    --group-pad-x-xs: clamp(0.75rem, 1.7cqi, 1.125rem);
    --group-pad-x-sm: clamp(1rem, 2.2cqi, 1.5rem);
    --group-pad-x-md: clamp(1.25rem, 2.8cqi, 2rem);
    --group-pad-x-lg: clamp(1.5rem, 3.6cqi, 2.5rem);
    --group-pad-x-xl: clamp(2rem, 4.6cqi, 3.25rem);

    --text-h1-hero: clamp(var(--type-h1-hero-min), 7cqi, var(--type-h1-hero-max));
    --text-h1: clamp(var(--type-h1-min), 5.8cqi, var(--type-h1-max));
    --text-h2: clamp(var(--type-h2-min), 4.6cqi, var(--type-h2-max));
    --text-h3: clamp(var(--type-h3-min), 3.6cqi, var(--type-h3-max));
    --text-h4: clamp(var(--type-h4-min), 2.8cqi, var(--type-h4-max));
    --text-h5: clamp(var(--type-h5-min), 2.2cqi, var(--type-h5-max));
    --text-h6: clamp(var(--type-h6-min), 1.8cqi, var(--type-h6-max));

    --text-body: clamp(var(--type-body-min), 3cqi, var(--type-body-max));
    --text-body-sm: clamp(var(--type-body-sm-min), 2.4cqi, var(--type-body-sm-max));
}

/* =========================================================
 *  06. CARD / GROUP TOKENS — CARD CONTEXT
 *  ========================================================= */

.cq-group,
.cq-card {
    --card-pad-y-sm: clamp(0.875rem, 2.2cqi, 1.25rem);
    --card-pad-y: clamp(1rem, 2.8cqi, 1.5rem);
    --card-pad-y-lg: clamp(1.25rem, 3.6cqi, 2rem);

    --card-pad-x-sm: clamp(0.875rem, 2.2cqi, 1.25rem);
    --card-pad-x: clamp(1rem, 2.8cqi, 1.5rem);
    --card-pad-x-lg: clamp(1.25rem, 3.6cqi, 2rem);

    --card-gap-xs: clamp(0.375rem, 1cqi, 0.625rem);
    --card-gap-sm: clamp(0.5rem, 1.4cqi, 0.875rem);
    --card-gap: clamp(0.75rem, 1.8cqi, 1.125rem);
    --card-gap-lg: clamp(1rem, 2.4cqi, 1.5rem);

    /* card title scale */
    --card-title-size-3xs: clamp(0.875rem, 2.2cqi, 1rem);
    --card-title-size-2xs: clamp(0.9375rem, 2.4cqi, 1.0625rem);
    --card-title-size-xs: clamp(1rem, 2.6cqi, 1.125rem);
    --card-title-size-sm: clamp(1.0625rem, 2.8cqi, 1.1875rem);
    --card-title-size-md: clamp(1.125rem, 3.1cqi, 1.25rem);
    --card-title-size-lg: clamp(1.1875rem, 3.4cqi, 1.375rem);
    --card-title-size-xl: clamp(1.25rem, 3.8cqi, 1.5rem);
    --card-title-size-2xl: clamp(1.375rem, 4.4cqi, 1.75rem);
    --card-title-size-3xl: clamp(1.5rem, 5cqi, 2rem);

    --card-body-size: clamp(var(--type-card-body-min), 2cqi, var(--type-card-body-max));
    --card-meta-size: clamp(var(--type-card-meta-min), 1.5cqi, var(--type-card-meta-max));

    /* card button scale */
    --card-btn-font-size-3xs: clamp(0.6875rem, 1.15cqi, 0.8rem);
    --card-btn-font-size-2xs: clamp(0.75rem, 1.3cqi, 0.875rem);
    --card-btn-font-size-xs: clamp(0.8125rem, 1.45cqi, 0.9375rem);
    --card-btn-font-size-sm: clamp(0.875rem, 1.65cqi, 1rem);
    --card-btn-font-size-md: clamp(0.9375rem, 1.9cqi, 1.0625rem);
    --card-btn-font-size-lg: clamp(1rem, 2.2cqi, 1.125rem);
    --card-btn-font-size-xl: clamp(1.0625rem, 2.6cqi, 1.25rem);
    --card-btn-font-size-2xl: clamp(1.125rem, 3cqi, 1.375rem);
    --card-btn-font-size-3xl: clamp(1.25rem, 3.6cqi, 1.5rem);

    --card-btn-pad-y-3xs: clamp(0.32rem, 0.9cqi, 0.42rem);
    --card-btn-pad-y-2xs: clamp(0.38rem, 1.05cqi, 0.48rem);
    --card-btn-pad-y-xs: clamp(0.44rem, 1.2cqi, 0.54rem);
    --card-btn-pad-y-sm: clamp(0.5rem, 1.35cqi, 0.62rem);
    --card-btn-pad-y-md: clamp(0.56rem, 1.55cqi, 0.7rem);
    --card-btn-pad-y-lg: clamp(0.65rem, 1.8cqi, 0.8rem);
    --card-btn-pad-y-xl: clamp(0.78rem, 2.15cqi, 0.95rem);
    --card-btn-pad-y-2xl: clamp(0.92rem, 2.55cqi, 1.12rem);
    --card-btn-pad-y-3xl: clamp(1.05rem, 3cqi, 1.3rem);

    --card-btn-pad-x-3xs: clamp(0.46rem, 1.05cqi, 0.62rem);
    --card-btn-pad-x-2xs: clamp(0.56rem, 1.25cqi, 0.74rem);
    --card-btn-pad-x-xs: clamp(0.68rem, 1.5cqi, 0.88rem);
    --card-btn-pad-x-sm: clamp(0.8rem, 1.8cqi, 1rem);
    --card-btn-pad-x-md: clamp(0.92rem, 2.1cqi, 1.15rem);
    --card-btn-pad-x-lg: clamp(1.05rem, 2.45cqi, 1.32rem);
    --card-btn-pad-x-xl: clamp(1.2rem, 2.9cqi, 1.55rem);
    --card-btn-pad-x-2xl: clamp(1.38rem, 3.45cqi, 1.85rem);
    --card-btn-pad-x-3xl: clamp(1.55rem, 4cqi, 2.15rem);

    --card-btn-radius: var(--radius-xs);
}

/* =========================================================
 *  07. SECTION UTILITIES
 *  ========================================================= */

.section-3xs { padding-top: var(--section-pad-y-3xs) !important; padding-bottom: var(--section-pad-y-3xs) !important; }
.section-2xs { padding-top: var(--section-pad-y-2xs) !important; padding-bottom: var(--section-pad-y-2xs) !important; }
.section-xs  { padding-top: var(--section-pad-y-xs) !important; padding-bottom: var(--section-pad-y-xs) !important; }
.section-sm  { padding-top: var(--section-pad-y-sm) !important; padding-bottom: var(--section-pad-y-sm) !important; }
.section,
.section-md { padding-top: var(--section-pad-y-md) !important; padding-bottom: var(--section-pad-y-md) !important; }
.section-lg  { padding-top: var(--section-pad-y-lg) !important; padding-bottom: var(--section-pad-y-lg) !important; }
.section-xl  { padding-top: var(--section-pad-y-xl) !important; padding-bottom: var(--section-pad-y-xl) !important; }
.section-2xl { padding-top: var(--section-pad-y-2xl) !important; padding-bottom: var(--section-pad-y-2xl) !important; }
.section-3xl { padding-top: var(--section-pad-y-3xl) !important; padding-bottom: var(--section-pad-y-3xl) !important; }

.section-pad-x-3xs { padding-left: var(--section-pad-x-3xs) !important; padding-right: var(--section-pad-x-3xs) !important; }
.section-pad-x-2xs { padding-left: var(--section-pad-x-2xs) !important; padding-right: var(--section-pad-x-2xs) !important; }
.section-pad-x-xs  { padding-left: var(--section-pad-x-xs) !important; padding-right: var(--section-pad-x-xs) !important; }
.section-pad-x-sm  { padding-left: var(--section-pad-x-sm) !important; padding-right: var(--section-pad-x-sm) !important; }
.section-pad-x,
.section-pad-x-md { padding-left: var(--section-pad-x-md) !important; padding-right: var(--section-pad-x-md) !important; }
.section-pad-x-lg  { padding-left: var(--section-pad-x-lg) !important; padding-right: var(--section-pad-x-lg) !important; }
.section-pad-x-xl  { padding-left: var(--section-pad-x-xl) !important; padding-right: var(--section-pad-x-xl) !important; }
.section-pad-x-2xl { padding-left: var(--section-pad-x-2xl) !important; padding-right: var(--section-pad-x-2xl) !important; }
.section-pad-x-3xl { padding-left: var(--section-pad-x-3xl) !important; padding-right: var(--section-pad-x-3xl) !important; }

/* =========================================================
 *  08. SECTION PRESETS
 *  ========================================================= */

.section-tight {
    padding-top: var(--section-pad-y-sm) !important;
    padding-bottom: var(--section-pad-y-sm) !important;
    padding-left: var(--section-pad-x-sm) !important;
    padding-right: var(--section-pad-x-sm) !important;
}

.section-standard {
    padding-top: var(--section-pad-y-md) !important;
    padding-bottom: var(--section-pad-y-md) !important;
    padding-left: var(--section-pad-x-md) !important;
    padding-right: var(--section-pad-x-md) !important;
}

.section-loose {
    padding-top: var(--section-pad-y-lg) !important;
    padding-bottom: var(--section-pad-y-lg) !important;
    padding-left: var(--section-pad-x-lg) !important;
    padding-right: var(--section-pad-x-lg) !important;
}

.section-feature {
    padding-top: var(--section-pad-y-xl) !important;
    padding-bottom: var(--section-pad-y-xl) !important;
    padding-left: var(--section-pad-x-lg) !important;
    padding-right: var(--section-pad-x-lg) !important;
}

.section-banner {
    padding-top: var(--section-pad-y-xs) !important;
    padding-bottom: var(--section-pad-y-xs) !important;
    padding-left: var(--section-pad-x-md) !important;
    padding-right: var(--section-pad-x-md) !important;
}

.section-campaign {
    padding-top: var(--section-pad-y-2xl) !important;
    padding-bottom: var(--section-pad-y-2xl) !important;
    padding-left: var(--section-pad-x-xl) !important;
    padding-right: var(--section-pad-x-xl) !important;
}

/* =========================================================
 *  09. ROW UTILITIES
 *  ========================================================= */

.row-3xs { padding-top: var(--row-pad-y-3xs) !important; padding-bottom: var(--row-pad-y-3xs) !important; }
.row-2xs { padding-top: var(--row-pad-y-2xs) !important; padding-bottom: var(--row-pad-y-2xs) !important; }
.row-xs  { padding-top: var(--row-pad-y-xs) !important; padding-bottom: var(--row-pad-y-xs) !important; }
.row-sm  { padding-top: var(--row-pad-y-sm) !important; padding-bottom: var(--row-pad-y-sm) !important; }
.row,
.row-md  { padding-top: var(--row-pad-y-md) !important; padding-bottom: var(--row-pad-y-md) !important; }
.row-lg  { padding-top: var(--row-pad-y-lg) !important; padding-bottom: var(--row-pad-y-lg) !important; }
.row-xl  { padding-top: var(--row-pad-y-xl) !important; padding-bottom: var(--row-pad-y-xl) !important; }
.row-2xl { padding-top: var(--row-pad-y-2xl) !important; padding-bottom: var(--row-pad-y-2xl) !important; }
.row-3xl { padding-top: var(--row-pad-y-3xl) !important; padding-bottom: var(--row-pad-y-3xl) !important; }

.row-pad-x-3xs { padding-left: var(--row-pad-x-3xs) !important; padding-right: var(--row-pad-x-3xs) !important; }
.row-pad-x-2xs { padding-left: var(--row-pad-x-2xs) !important; padding-right: var(--row-pad-x-2xs) !important; }
.row-pad-x-xs  { padding-left: var(--row-pad-x-xs) !important; padding-right: var(--row-pad-x-xs) !important; }
.row-pad-x-sm  { padding-left: var(--row-pad-x-sm) !important; padding-right: var(--row-pad-x-sm) !important; }
.row-pad-x,
.row-pad-x-md { padding-left: var(--row-pad-x-md) !important; padding-right: var(--row-pad-x-md) !important; }
.row-pad-x-lg  { padding-left: var(--row-pad-x-lg) !important; padding-right: var(--row-pad-x-lg) !important; }
.row-pad-x-xl  { padding-left: var(--row-pad-x-xl) !important; padding-right: var(--row-pad-x-xl) !important; }
.row-pad-x-2xl { padding-left: var(--row-pad-x-2xl) !important; padding-right: var(--row-pad-x-2xl) !important; }
.row-pad-x-3xl { padding-left: var(--row-pad-x-3xl) !important; padding-right: var(--row-pad-x-3xl) !important; }

/* =========================================================
 *  10. ROW PRESETS
 *  ========================================================= */

.row-tight {
    padding-top: var(--row-pad-y-sm) !important;
    padding-bottom: var(--row-pad-y-sm) !important;
    padding-left: var(--row-pad-x-sm) !important;
    padding-right: var(--row-pad-x-sm) !important;
}

.row-standard {
    padding-top: var(--row-pad-y-md) !important;
    padding-bottom: var(--row-pad-y-md) !important;
    padding-left: var(--row-pad-x-md) !important;
    padding-right: var(--row-pad-x-md) !important;
}

.row-loose {
    padding-top: var(--row-pad-y-lg) !important;
    padding-bottom: var(--row-pad-y-lg) !important;
    padding-left: var(--row-pad-x-lg) !important;
    padding-right: var(--row-pad-x-lg) !important;
}

.row-feature {
    padding-top: var(--row-pad-y-xl) !important;
    padding-bottom: var(--row-pad-y-xl) !important;
    padding-left: var(--row-pad-x-lg) !important;
    padding-right: var(--row-pad-x-lg) !important;
}

.row-banner {
    padding-top: var(--row-pad-y-xs) !important;
    padding-bottom: var(--row-pad-y-xs) !important;
    padding-left: var(--row-pad-x-md) !important;
    padding-right: var(--row-pad-x-md) !important;
}

/* =========================================================
 *  11. COLUMN UTILITIES
 *  ========================================================= */

.col-3xs { padding-top: var(--col-pad-y-3xs) !important; padding-bottom: var(--col-pad-y-3xs) !important; }
.col-2xs { padding-top: var(--col-pad-y-2xs) !important; padding-bottom: var(--col-pad-y-2xs) !important; }
.col-xs  { padding-top: var(--col-pad-y-xs) !important; padding-bottom: var(--col-pad-y-xs) !important; }
.col-sm  { padding-top: var(--col-pad-y-sm) !important; padding-bottom: var(--col-pad-y-sm) !important; }
.col,
.col-md  { padding-top: var(--col-pad-y-md) !important; padding-bottom: var(--col-pad-y-md) !important; }
.col-lg  { padding-top: var(--col-pad-y-lg) !important; padding-bottom: var(--col-pad-y-lg) !important; }
.col-xl  { padding-top: var(--col-pad-y-xl) !important; padding-bottom: var(--col-pad-y-xl) !important; }
.col-2xl { padding-top: var(--col-pad-y-2xl) !important; padding-bottom: var(--col-pad-y-2xl) !important; }
.col-3xl { padding-top: var(--col-pad-y-3xl) !important; padding-bottom: var(--col-pad-y-3xl) !important; }

.col-pad-x-3xs { padding-left: var(--col-pad-x-3xs) !important; padding-right: var(--col-pad-x-3xs) !important; }
.col-pad-x-2xs { padding-left: var(--col-pad-x-2xs) !important; padding-right: var(--col-pad-x-2xs) !important; }
.col-pad-x-xs  { padding-left: var(--col-pad-x-xs) !important; padding-right: var(--col-pad-x-xs) !important; }
.col-pad-x-sm  { padding-left: var(--col-pad-x-sm) !important; padding-right: var(--col-pad-x-sm) !important; }
.col-pad-x,
.col-pad-x-md { padding-left: var(--col-pad-x-md) !important; padding-right: var(--col-pad-x-md) !important; }
.col-pad-x-lg  { padding-left: var(--col-pad-x-lg) !important; padding-right: var(--col-pad-x-lg) !important; }
.col-pad-x-xl  { padding-left: var(--col-pad-x-xl) !important; padding-right: var(--col-pad-x-xl) !important; }
.col-pad-x-2xl { padding-left: var(--col-pad-x-2xl) !important; padding-right: var(--col-pad-x-2xl) !important; }
.col-pad-x-3xl { padding-left: var(--col-pad-x-3xl) !important; padding-right: var(--col-pad-x-3xl) !important; }

/* =========================================================
 *  12. COLUMN PRESETS
 *  ========================================================= */

.col-tight {
    padding-top: var(--col-pad-y-sm) !important;
    padding-bottom: var(--col-pad-y-sm) !important;
    padding-left: var(--col-pad-x-sm) !important;
    padding-right: var(--col-pad-x-sm) !important;
}

.col-standard {
    padding-top: var(--col-pad-y-md) !important;
    padding-bottom: var(--col-pad-y-md) !important;
    padding-left: var(--col-pad-x-md) !important;
    padding-right: var(--col-pad-x-md) !important;
}

.col-loose {
    padding-top: var(--col-pad-y-lg) !important;
    padding-bottom: var(--col-pad-y-lg) !important;
    padding-left: var(--col-pad-x-lg) !important;
    padding-right: var(--col-pad-x-lg) !important;
}

.col-feature {
    padding-top: var(--col-pad-y-xl) !important;
    padding-bottom: var(--col-pad-y-xl) !important;
    padding-left: var(--col-pad-x-lg) !important;
    padding-right: var(--col-pad-x-lg) !important;
}

.col-banner {
    padding-top: var(--col-pad-y-xs) !important;
    padding-bottom: var(--col-pad-y-xs) !important;
    padding-left: var(--col-pad-x-md) !important;
    padding-right: var(--col-pad-x-md) !important;
}

/* =========================================================
 *  13. GROUP / CARD UTILITIES
 *  ========================================================= */

.group-3xs { padding-top: var(--group-pad-y-3xs) !important; padding-bottom: var(--group-pad-y-3xs) !important; }
.group-2xs { padding-top: var(--group-pad-y-2xs) !important; padding-bottom: var(--group-pad-y-2xs) !important; }
.group-xs  { padding-top: var(--group-pad-y-xs) !important; padding-bottom: var(--group-pad-y-xs) !important; }
.group-sm  { padding-top: var(--group-pad-y-sm) !important; padding-bottom: var(--group-pad-y-sm) !important; }
.group,
.group-md  { padding-top: var(--group-pad-y-md) !important; padding-bottom: var(--group-pad-y-md) !important; }
.group-lg  { padding-top: var(--group-pad-y-lg) !important; padding-bottom: var(--group-pad-y-lg) !important; }
.group-xl  { padding-top: var(--group-pad-y-xl) !important; padding-bottom: var(--group-pad-y-xl) !important; }

.group-pad-x-3xs { padding-left: var(--group-pad-x-3xs) !important; padding-right: var(--group-pad-x-3xs) !important; }
.group-pad-x-2xs { padding-left: var(--group-pad-x-2xs) !important; padding-right: var(--group-pad-x-2xs) !important; }
.group-pad-x-xs  { padding-left: var(--group-pad-x-xs) !important; padding-right: var(--group-pad-x-xs) !important; }
.group-pad-x-sm  { padding-left: var(--group-pad-x-sm) !important; padding-right: var(--group-pad-x-sm) !important; }
.group-pad-x,
.group-pad-x-md { padding-left: var(--group-pad-x-md) !important; padding-right: var(--group-pad-x-md) !important; }
.group-pad-x-lg  { padding-left: var(--group-pad-x-lg) !important; padding-right: var(--group-pad-x-lg) !important; }
.group-pad-x-xl  { padding-left: var(--group-pad-x-xl) !important; padding-right: var(--group-pad-x-xl) !important; }

.group-tight {
    padding-top: var(--group-pad-y-sm) !important;
    padding-bottom: var(--group-pad-y-sm) !important;
    padding-left: var(--group-pad-x-sm) !important;
    padding-right: var(--group-pad-x-sm) !important;
}

.group-standard {
    padding-top: var(--group-pad-y-md) !important;
    padding-bottom: var(--group-pad-y-md) !important;
    padding-left: var(--group-pad-x-md) !important;
    padding-right: var(--group-pad-x-md) !important;
}

.group-loose {
    padding-top: var(--group-pad-y-lg) !important;
    padding-bottom: var(--group-pad-y-lg) !important;
    padding-left: var(--group-pad-x-lg) !important;
    padding-right: var(--group-pad-x-lg) !important;
}

.group-feature {
    padding-top: var(--group-pad-y-xl) !important;
    padding-bottom: var(--group-pad-y-xl) !important;
    padding-left: var(--group-pad-x-lg) !important;
    padding-right: var(--group-pad-x-lg) !important;
}

.card-tight {
    padding-top: var(--card-pad-y-sm) !important;
    padding-bottom: var(--card-pad-y-sm) !important;
    padding-left: var(--card-pad-x-sm) !important;
    padding-right: var(--card-pad-x-sm) !important;
}

.card-standard {
    padding-top: var(--card-pad-y) !important;
    padding-bottom: var(--card-pad-y) !important;
    padding-left: var(--card-pad-x) !important;
    padding-right: var(--card-pad-x) !important;
}

.card-loose {
    padding-top: var(--card-pad-y-lg) !important;
    padding-bottom: var(--card-pad-y-lg) !important;
    padding-left: var(--card-pad-x-lg) !important;
    padding-right: var(--card-pad-x-lg) !important;
}

.card-stack-xs > * + * { margin-top: var(--card-gap-xs) !important; }
.card-stack-sm > * + * { margin-top: var(--card-gap-sm) !important; }
.card-stack > * + * { margin-top: var(--card-gap) !important; }
.card-stack-lg > * + * { margin-top: var(--card-gap-lg) !important; }

/* =========================================================
 *  14. BACKGROUND / SURFACE UTILITIES
 *  ========================================================= */

.bg-white { background-color: var(--bg-white) !important; }
.bg-light { background-color: var(--bg-light) !important; }
.bg-soft { background-color: var(--bg-soft) !important; }
.bg-grey { background-color: var(--bg-grey) !important; }
.bg-dark { background-color: var(--bg-dark) !important; }
.bg-primary { background-color: var(--bg-primary) !important; }
.bg-secondary { background-color: var(--bg-secondary) !important; }

.surface-white { background-color: var(--surface-white) !important; }
.surface-light { background-color: var(--surface-light) !important; }
.surface-soft { background-color: var(--surface-soft) !important; }
.surface-grey { background-color: var(--surface-grey) !important; }
.surface-dark { background-color: var(--surface-dark) !important; }

/* =========================================================
 *  15. BORDER UTILITIES
 *  ========================================================= */

.border-light { border: 1px solid var(--border-light) !important; }
.border-medium { border: 1px solid var(--border-medium) !important; }
.border-strong { border: 1px solid var(--border-strong) !important; }

.border-top-light { border-top: 1px solid var(--border-light) !important; }
.border-top-medium { border-top: 1px solid var(--border-medium) !important; }
.border-top-strong { border-top: 1px solid var(--border-strong) !important; }

.border-right-light { border-right: 1px solid var(--border-light) !important; }
.border-right-medium { border-right: 1px solid var(--border-medium) !important; }
.border-right-strong { border-right: 1px solid var(--border-strong) !important; }

.border-bottom-light { border-bottom: 1px solid var(--border-light) !important; }
.border-bottom-medium { border-bottom: 1px solid var(--border-medium) !important; }
.border-bottom-strong { border-bottom: 1px solid var(--border-strong) !important; }

.border-left-light { border-left: 1px solid var(--border-light) !important; }
.border-left-medium { border-left: 1px solid var(--border-medium) !important; }
.border-left-strong { border-left: 1px solid var(--border-strong) !important; }

/* =========================================================
 *  16. RADIUS UTILITIES
 *  ========================================================= */

.radius-3xs { border-radius: var(--radius-3xs) !important; }
.radius-2xs { border-radius: var(--radius-2xs) !important; }
.radius-xs { border-radius: var(--radius-xs) !important; }
.radius-sm { border-radius: var(--radius-sm) !important; }
.radius-md { border-radius: var(--radius-md) !important; }
.radius-lg { border-radius: var(--radius-lg) !important; }
.radius-xl { border-radius: var(--radius-xl) !important; }
.radius-2xl { border-radius: var(--radius-2xl) !important; }
.radius-3xl { border-radius: var(--radius-3xl) !important; }

.radius-top-3xs {
    border-top-left-radius: var(--radius-3xs) !important;
    border-top-right-radius: var(--radius-3xs) !important;
}
.radius-top-2xs {
    border-top-left-radius: var(--radius-2xs) !important;
    border-top-right-radius: var(--radius-2xs) !important;
}
.radius-top-xs {
    border-top-left-radius: var(--radius-xs) !important;
    border-top-right-radius: var(--radius-xs) !important;
}
.radius-top-sm {
    border-top-left-radius: var(--radius-sm) !important;
    border-top-right-radius: var(--radius-sm) !important;
}
.radius-top-md {
    border-top-left-radius: var(--radius-md) !important;
    border-top-right-radius: var(--radius-md) !important;
}
.radius-top-lg {
    border-top-left-radius: var(--radius-lg) !important;
    border-top-right-radius: var(--radius-lg) !important;
}
.radius-top-xl {
    border-top-left-radius: var(--radius-xl) !important;
    border-top-right-radius: var(--radius-xl) !important;
}

.radius-bottom-3xs {
    border-bottom-left-radius: var(--radius-3xs) !important;
    border-bottom-right-radius: var(--radius-3xs) !important;
}
.radius-bottom-2xs {
    border-bottom-left-radius: var(--radius-2xs) !important;
    border-bottom-right-radius: var(--radius-2xs) !important;
}
.radius-bottom-xs {
    border-bottom-left-radius: var(--radius-xs) !important;
    border-bottom-right-radius: var(--radius-xs) !important;
}
.radius-bottom-sm {
    border-bottom-left-radius: var(--radius-sm) !important;
    border-bottom-right-radius: var(--radius-sm) !important;
}
.radius-bottom-md {
    border-bottom-left-radius: var(--radius-md) !important;
    border-bottom-right-radius: var(--radius-md) !important;
}
.radius-bottom-lg {
    border-bottom-left-radius: var(--radius-lg) !important;
    border-bottom-right-radius: var(--radius-lg) !important;
}
.radius-bottom-xl {
    border-bottom-left-radius: var(--radius-xl) !important;
    border-bottom-right-radius: var(--radius-xl) !important;
}

/* =========================================================
 *  17. SHADOW UTILITIES
 *  ========================================================= */

.shadow-xs { box-shadow: var(--shadow-xs) !important; }
.shadow-sm { box-shadow: var(--shadow-sm) !important; }
.shadow-md { box-shadow: var(--shadow-md) !important; }
.shadow-lg { box-shadow: var(--shadow-lg) !important; }
.shadow-xl { box-shadow: var(--shadow-xl) !important; }

/* =========================================================
 *  18. TYPOGRAPHY UTILITIES
 *  ========================================================= */

.w-light { font-weight: var(--weight-light) !important; }
.w-regular { font-weight: var(--weight-regular) !important; }
.w-medium { font-weight: var(--weight-medium) !important; }
.w-semibold { font-weight: var(--weight-semibold) !important; }
.w-bold { font-weight: var(--weight-bold) !important; }
.w-heavy { font-weight: var(--weight-heavy) !important; }

.text-black { color: var(--text-black) !important; }
.text-white { color: var(--text-white) !important; }
.text-muted { color: var(--text-muted) !important; }
.text-primary { color: var(--text-primary) !important; }
.text-secondary { color: var(--text-secondary) !important; }

/* Force Divi text + heading internals to inherit wrapper color */
.text-black .et_pb_text_inner,
.text-black .et_pb_text_inner *,
.text-black .et_pb_blurb_description,
.text-black .et_pb_blurb_description *,
.text-black .et_pb_module_header,
.text-black .et_pb_module_header *,
.text-black p,
.text-black span,
.text-black li,
.text-black a,
.text-black h1,
.text-black h2,
.text-black h3,
.text-black h4,
.text-black h5,
.text-black h6,

.text-white .et_pb_text_inner,
.text-white .et_pb_text_inner *,
.text-white .et_pb_blurb_description,
.text-white .et_pb_blurb_description *,
.text-white .et_pb_module_header,
.text-white .et_pb_module_header *,
.text-white p,
.text-white span,
.text-white li,
.text-white a,
.text-white h1,
.text-white h2,
.text-white h3,
.text-white h4,
.text-white h5,
.text-white h6,

.text-muted .et_pb_text_inner,
.text-muted .et_pb_text_inner *,
.text-muted .et_pb_blurb_description,
.text-muted .et_pb_blurb_description *,
.text-muted .et_pb_module_header,
.text-muted .et_pb_module_header *,
.text-muted p,
.text-muted span,
.text-muted li,
.text-muted a,
.text-muted h1,
.text-muted h2,
.text-muted h3,
.text-muted h4,
.text-muted h5,
.text-muted h6,

.text-primary .et_pb_text_inner,
.text-primary .et_pb_text_inner *,
.text-primary .et_pb_blurb_description,
.text-primary .et_pb_blurb_description *,
.text-primary .et_pb_module_header,
.text-primary .et_pb_module_header *,
.text-primary p,
.text-primary span,
.text-primary li,
.text-primary a,
.text-primary h1,
.text-primary h2,
.text-primary h3,
.text-primary h4,
.text-primary h5,
.text-primary h6,

.text-secondary .et_pb_text_inner,
.text-secondary .et_pb_text_inner *,
.text-secondary .et_pb_blurb_description,
.text-secondary .et_pb_blurb_description *,
.text-secondary .et_pb_module_header,
.text-secondary .et_pb_module_header *,
.text-secondary p,
.text-secondary span,
.text-secondary li,
.text-secondary a,
.text-secondary h1,
.text-secondary h2,
.text-secondary h3,
.text-secondary h4,
.text-secondary h5,
.text-secondary h6 {
    color: inherit !important;
}

.caps {
    text-transform: uppercase !important;
    letter-spacing: 0.04em !important;
}

.caps .et_pb_text_inner,
.caps .et_pb_text_inner *,
.caps .et_pb_blurb_description,
.caps .et_pb_blurb_description *,
.caps .et_pb_module_header,
.caps .et_pb_module_header * {
    letter-spacing: inherit !important;
    text-transform: inherit !important;
    color: inherit !important;
}

/* =========================================================
 *  19. HEADINGS
 *  ========================================================= */

.h1-hero,
.h1-hero .et_pb_module_header,
.h1-hero h1,
.h1-hero h2,
.h1-hero h3,
.h1-hero h4,
.h1-hero h5,
.h1-hero h6 {
    font-family: var(--gcid-heading-font-family) !important;
    font-size: var(--text-h1-hero) !important;
    font-weight: var(--weight-bold) !important;
    line-height: var(--lh-tight) !important;
    color: inherit !important;
}

.h1,
.h1 .et_pb_module_header,
.h1 h1,
.h1 h2,
.h1 h3,
.h1 h4,
.h1 h5,
.h1 h6 {
    font-family: var(--gcid-heading-font-family) !important;
    font-size: var(--text-h1) !important;
    font-weight: var(--weight-bold) !important;
    line-height: var(--lh-tight) !important;
    color: inherit !important;
}

.h2,
.h2 .et_pb_module_header,
.h2 h1,
.h2 h2,
.h2 h3,
.h2 h4,
.h2 h5,
.h2 h6 {
    font-family: var(--gcid-heading-font-family) !important;
    font-size: var(--text-h2) !important;
    font-weight: var(--weight-semibold) !important;
    line-height: var(--lh-heading) !important;
    color: inherit !important;
}

.h3,
.h3 .et_pb_module_header,
.h3 h1,
.h3 h2,
.h3 h3,
.h3 h4,
.h3 h5,
.h3 h6 {
    font-family: var(--gcid-heading-font-family) !important;
    font-size: var(--text-h3) !important;
    font-weight: var(--weight-semibold) !important;
    line-height: var(--lh-subheading) !important;
    color: inherit !important;
}

.h4,
.h4 .et_pb_module_header,
.h4 h1,
.h4 h2,
.h4 h3,
.h4 h4,
.h4 h5,
.h4 h6 {
    font-family: var(--gcid-heading-font-family) !important;
    font-size: var(--text-h4) !important;
    font-weight: var(--weight-semibold) !important;
    line-height: var(--lh-subheading) !important;
    color: inherit !important;
}

.h5,
.h5 .et_pb_module_header,
.h5 h1,
.h5 h2,
.h5 h3,
.h5 h4,
.h5 h5,
.h5 h6 {
    font-family: var(--gcid-heading-font-family) !important;
    font-size: var(--text-h5) !important;
    font-weight: var(--weight-semibold) !important;
    line-height: var(--lh-subheading) !important;
    color: inherit !important;
}

.h6,
.h6 .et_pb_module_header,
.h6 h1,
.h6 h2,
.h6 h3,
.h6 h4,
.h6 h5,
.h6 h6 {
    font-family: var(--gcid-heading-font-family) !important;
    font-size: var(--text-h6) !important;
    font-weight: var(--weight-semibold) !important;
    line-height: var(--lh-subheading) !important;
    color: inherit !important;
}

/* =========================================================
 *  20. BODY TEXT
 *  ========================================================= */

.body-text {
    font-family: var(--gcid-body-font-family) !important;
    font-size: var(--text-body) !important;
    font-weight: var(--weight-regular) !important;
    line-height: var(--lh-body) !important;
    color: inherit !important;
    min-width: 0 !important;
    overflow-wrap: anywhere !important;
    word-break: break-word !important;
}

.body-text-sm {
    font-family: var(--gcid-body-font-family) !important;
    font-size: var(--text-body-sm) !important;
    font-weight: var(--weight-regular) !important;
    line-height: var(--lh-small) !important;
    color: inherit !important;
    min-width: 0 !important;
    overflow-wrap: anywhere !important;
    word-break: break-word !important;
}

/* text module inheritance */
.body-text .et_pb_text_inner,
.body-text .et_pb_text_inner p,
.body-text .et_pb_text_inner li,
.body-text .et_pb_text_inner a,
.body-text .et_pb_text_inner span,
.body-text .et_pb_blurb_description,
.body-text .et_pb_blurb_description p,
.body-text .et_pb_blurb_description li,
.body-text .et_pb_blurb_description a,
.body-text .et_pb_blurb_description span {
    font-family: inherit !important;
    font-size: inherit !important;
    font-weight: inherit !important;
    line-height: inherit !important;
    color: inherit !important;
    min-width: 0 !important;
    overflow-wrap: anywhere !important;
    word-break: break-word !important;
}

.body-text-sm .et_pb_text_inner,
.body-text-sm .et_pb_text_inner p,
.body-text-sm .et_pb_text_inner li,
.body-text-sm .et_pb_text_inner a,
.body-text-sm .et_pb_text_inner span,
.body-text-sm .et_pb_blurb_description,
.body-text-sm .et_pb_blurb_description p,
.body-text-sm .et_pb_blurb_description li,
.body-text-sm .et_pb_blurb_description a,
.body-text-sm .et_pb_blurb_description span {
    font-family: inherit !important;
    font-size: inherit !important;
    font-weight: inherit !important;
    line-height: inherit !important;
    color: inherit !important;
    min-width: 0 !important;
    overflow-wrap: anywhere !important;
    word-break: break-word !important;
}

/* =========================================================
 *  21. CARD TYPOGRAPHY
 *  ========================================================= */

.card-title-3xs,
.card-title-3xs .et_pb_module_header,
.card-title-3xs h1,
.card-title-3xs h2,
.card-title-3xs h3,
.card-title-3xs h4,
.card-title-3xs h5,
.card-title-3xs h6 {
    font-family: var(--gcid-heading-font-family) !important;
    font-size: var(--card-title-size-3xs) !important;
    font-weight: var(--weight-semibold) !important;
    line-height: 1.2 !important;
    color: inherit !important;
}

.card-title-2xs,
.card-title-2xs .et_pb_module_header,
.card-title-2xs h1,
.card-title-2xs h2,
.card-title-2xs h3,
.card-title-2xs h4,
.card-title-2xs h5,
.card-title-2xs h6 {
    font-family: var(--gcid-heading-font-family) !important;
    font-size: var(--card-title-size-2xs) !important;
    font-weight: var(--weight-semibold) !important;
    line-height: 1.2 !important;
    color: inherit !important;
}

.card-title-xs,
.card-title-xs .et_pb_module_header,
.card-title-xs h1,
.card-title-xs h2,
.card-title-xs h3,
.card-title-xs h4,
.card-title-xs h5,
.card-title-xs h6 {
    font-family: var(--gcid-heading-font-family) !important;
    font-size: var(--card-title-size-xs) !important;
    font-weight: var(--weight-semibold) !important;
    line-height: 1.2 !important;
    color: inherit !important;
}

.card-title-sm,
.card-title-sm .et_pb_module_header,
.card-title-sm h1,
.card-title-sm h2,
.card-title-sm h3,
.card-title-sm h4,
.card-title-sm h5,
.card-title-sm h6 {
    font-family: var(--gcid-heading-font-family) !important;
    font-size: var(--card-title-size-sm) !important;
    font-weight: var(--weight-semibold) !important;
    line-height: 1.2 !important;
    color: inherit !important;
}

.card-title,
.card-title-md,
.card-title .et_pb_module_header,
.card-title-md .et_pb_module_header,
.card-title h1,
.card-title h2,
.card-title h3,
.card-title h4,
.card-title h5,
.card-title h6,
.card-title-md h1,
.card-title-md h2,
.card-title-md h3,
.card-title-md h4,
.card-title-md h5,
.card-title-md h6 {
    font-family: var(--gcid-heading-font-family) !important;
    font-size: var(--card-title-size-md) !important;
    font-weight: var(--weight-semibold) !important;
    line-height: 1.2 !important;
    color: inherit !important;
}

.card-title-lg,
.card-title-lg .et_pb_module_header,
.card-title-lg h1,
.card-title-lg h2,
.card-title-lg h3,
.card-title-lg h4,
.card-title-lg h5,
.card-title-lg h6 {
    font-family: var(--gcid-heading-font-family) !important;
    font-size: var(--card-title-size-lg) !important;
    font-weight: var(--weight-semibold) !important;
    line-height: 1.18 !important;
    color: inherit !important;
}

.card-title-xl,
.card-title-xl .et_pb_module_header,
.card-title-xl h1,
.card-title-xl h2,
.card-title-xl h3,
.card-title-xl h4,
.card-title-xl h5,
.card-title-xl h6 {
    font-family: var(--gcid-heading-font-family) !important;
    font-size: var(--card-title-size-xl) !important;
    font-weight: var(--weight-semibold) !important;
    line-height: 1.16 !important;
    color: inherit !important;
}

.card-title-2xl,
.card-title-2xl .et_pb_module_header,
.card-title-2xl h1,
.card-title-2xl h2,
.card-title-2xl h3,
.card-title-2xl h4,
.card-title-2xl h5,
.card-title-2xl h6 {
    font-family: var(--gcid-heading-font-family) !important;
    font-size: var(--card-title-size-2xl) !important;
    font-weight: var(--weight-semibold) !important;
    line-height: 1.14 !important;
    color: inherit !important;
}

.card-title-3xl,
.card-title-3xl .et_pb_module_header,
.card-title-3xl h1,
.card-title-3xl h2,
.card-title-3xl h3,
.card-title-3xl h4,
.card-title-3xl h5,
.card-title-3xl h6 {
    font-family: var(--gcid-heading-font-family) !important;
    font-size: var(--card-title-size-3xl) !important;
    font-weight: var(--weight-semibold) !important;
    line-height: 1.12 !important;
    color: inherit !important;
}

.card-text {
    font-family: var(--gcid-body-font-family) !important;
    font-size: var(--card-body-size) !important;
    font-weight: var(--weight-regular) !important;
    line-height: var(--lh-body) !important;
    color: inherit !important;
}

.card-meta {
    font-family: var(--gcid-body-font-family) !important;
    font-size: var(--card-meta-size) !important;
    font-weight: var(--weight-medium) !important;
    line-height: var(--lh-small) !important;
    color: inherit !important;
}

.card-text .et_pb_text_inner,
.card-text .et_pb_text_inner *,
.card-text .et_pb_blurb_description,
.card-text .et_pb_blurb_description *,

.card-meta .et_pb_text_inner,
.card-meta .et_pb_text_inner *,
.card-meta .et_pb_blurb_description,
.card-meta .et_pb_blurb_description * {
    font-family: inherit !important;
    font-size: inherit !important;
    font-weight: inherit !important;
    line-height: inherit !important;
    color: inherit !important;
}

/* =========================================================
 *  22. BUTTON BASE
 *  ========================================================= */

.btn-primary,
.btn-secondary,
.et_pb_button.btn-primary,
.et_pb_button.btn-secondary {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 0.4em !important;

    font-family: var(--gcid-body-font-family) !important;
    font-size: var(--btn-font-size) !important;
    font-weight: var(--btn-font-weight) !important;
    line-height: var(--btn-line-height) !important;
    letter-spacing: var(--btn-letter-spacing) !important;
    text-transform: uppercase !important;
    text-decoration: none !important;

    padding: var(--btn-pad-y) var(--btn-pad-x) !important;
    border-radius: var(--btn-radius) !important;
    border: 1px solid transparent !important;
    box-shadow: var(--btn-shadow) !important;

    transition:
    background-color 0.2s ease,
    border-color 0.2s ease,
    box-shadow 0.2s ease,
    transform 0.2s ease !important;
}

.btn-primary *,
.btn-secondary *,
.et_pb_button.btn-primary *,
.et_pb_button.btn-secondary *,
.et_pb_button.btn-primary span,
.et_pb_button.btn-secondary span {
    font-family: inherit !important;
    font-size: inherit !important;
    font-weight: inherit !important;
    line-height: inherit !important;
    letter-spacing: inherit !important;
    text-transform: inherit !important;
    color: inherit !important;
}

/* =========================================================
 *  23. BUTTON SIZE MODIFIERS
 *  ========================================================= */

.btn-3xs,
.et_pb_button.btn-3xs {
    font-size: var(--btn-font-size-3xs) !important;
    padding: var(--btn-pad-y-3xs) var(--btn-pad-x-3xs) !important;
}

.btn-2xs,
.et_pb_button.btn-2xs {
    font-size: var(--btn-font-size-2xs) !important;
    padding: var(--btn-pad-y-2xs) var(--btn-pad-x-2xs) !important;
}

.btn-xs,
.et_pb_button.btn-xs {
    font-size: var(--btn-font-size-xs) !important;
    padding: var(--btn-pad-y-xs) var(--btn-pad-x-xs) !important;
}

.btn-sm,
.et_pb_button.btn-sm {
    font-size: var(--btn-font-size-sm) !important;
    padding: var(--btn-pad-y-sm) var(--btn-pad-x-sm) !important;
}

.btn-md,
.et_pb_button.btn-md {
    font-size: var(--btn-font-size) !important;
    padding: var(--btn-pad-y) var(--btn-pad-x) !important;
}

.btn-lg,
.et_pb_button.btn-lg {
    font-size: var(--btn-font-size-lg) !important;
    padding: var(--btn-pad-y-lg) var(--btn-pad-x-lg) !important;
}

.btn-xl,
.et_pb_button.btn-xl {
    font-size: var(--btn-font-size-xl) !important;
    padding: var(--btn-pad-y-xl) var(--btn-pad-x-xl) !important;
}

.btn-2xl,
.et_pb_button.btn-2xl {
    font-size: var(--btn-font-size-2xl) !important;
    padding: var(--btn-pad-y-2xl) var(--btn-pad-x-2xl) !important;
}

/* =========================================================
 *  23A. CARD BUTTON SIZE MODIFIERS
 *  ========================================================= */

.btn-card-3xs,
.et_pb_button.btn-card-3xs {
    font-size: var(--card-btn-font-size-3xs) !important;
    padding: var(--card-btn-pad-y-3xs) var(--card-btn-pad-x-3xs) !important;
    border-radius: var(--card-btn-radius) !important;
    line-height: 1 !important;
    white-space: nowrap !important;
}

.btn-card-2xs,
.et_pb_button.btn-card-2xs {
    font-size: var(--card-btn-font-size-2xs) !important;
    padding: var(--card-btn-pad-y-2xs) var(--card-btn-pad-x-2xs) !important;
    border-radius: var(--card-btn-radius) !important;
    line-height: 1.02 !important;
    white-space: nowrap !important;
}

.btn-card-xs,
.et_pb_button.btn-card-xs {
    font-size: var(--card-btn-font-size-xs) !important;
    padding: var(--card-btn-pad-y-xs) var(--card-btn-pad-x-xs) !important;
    border-radius: var(--card-btn-radius) !important;
    line-height: 1.04 !important;
    white-space: nowrap !important;
}

.btn-card-sm,
.et_pb_button.btn-card-sm {
    font-size: var(--card-btn-font-size-sm) !important;
    padding: var(--card-btn-pad-y-sm) var(--card-btn-pad-x-sm) !important;
    border-radius: var(--card-btn-radius) !important;
    line-height: 1.06 !important;
    white-space: nowrap !important;
}

.btn-card,
.btn-card-md,
.et_pb_button.btn-card,
.et_pb_button.btn-card-md {
    font-size: var(--card-btn-font-size-md) !important;
    padding: var(--card-btn-pad-y-md) var(--card-btn-pad-x-md) !important;
    border-radius: var(--card-btn-radius) !important;
    line-height: 1.08 !important;
    white-space: nowrap !important;
}

.btn-card-lg,
.et_pb_button.btn-card-lg {
    font-size: var(--card-btn-font-size-lg) !important;
    padding: var(--card-btn-pad-y-lg) var(--card-btn-pad-x-lg) !important;
    border-radius: var(--card-btn-radius) !important;
    line-height: 1.1 !important;
    white-space: nowrap !important;
}

.btn-card-xl,
.et_pb_button.btn-card-xl {
    font-size: var(--card-btn-font-size-xl) !important;
    padding: var(--card-btn-pad-y-xl) var(--card-btn-pad-x-xl) !important;
    border-radius: var(--card-btn-radius) !important;
    line-height: 1.12 !important;
    white-space: nowrap !important;
}

.btn-card-2xl,
.et_pb_button.btn-card-2xl {
    font-size: var(--card-btn-font-size-2xl) !important;
    padding: var(--card-btn-pad-y-2xl) var(--card-btn-pad-x-2xl) !important;
    border-radius: var(--card-btn-radius) !important;
    line-height: 1.14 !important;
    white-space: nowrap !important;
}

.btn-card-3xl,
.et_pb_button.btn-card-3xl {
    font-size: var(--card-btn-font-size-3xl) !important;
    padding: var(--card-btn-pad-y-3xl) var(--card-btn-pad-x-3xl) !important;
    border-radius: var(--card-btn-radius) !important;
    line-height: 1.16 !important;
    white-space: nowrap !important;
}

/* =========================================================
 *  24. BUTTON VARIANTS
 *  ========================================================= */

.btn-primary,
.et_pb_button.btn-primary {
    background-color: var(--btn-primary-bg) !important;
    color: var(--btn-primary-text) !important;
    border-color: var(--btn-primary-border) !important;
}

.btn-primary:hover,
.et_pb_button.btn-primary:hover,
.btn-primary:focus-visible,
.et_pb_button.btn-primary:focus-visible {
    background-color: var(--btn-primary-bg-hover) !important;
    border-color: var(--btn-primary-bg-hover) !important;
    color: var(--btn-primary-text) !important;
    box-shadow: var(--btn-shadow-hover) !important;
    text-decoration: none !important;
}

.btn-primary:active,
.et_pb_button.btn-primary:active {
    transform: translateY(1px) !important;
}

.btn-secondary,
.et_pb_button.btn-secondary {
    background-color: var(--btn-secondary-bg) !important;
    color: var(--btn-secondary-text) !important;
    border-color: var(--btn-secondary-border) !important;
}

.btn-secondary:hover,
.et_pb_button.btn-secondary:hover,
.btn-secondary:focus-visible,
.et_pb_button.btn-secondary:focus-visible {
    background-color: var(--btn-secondary-bg-hover) !important;
    border-color: var(--btn-secondary-bg-hover) !important;
    color: var(--btn-secondary-text) !important;
    box-shadow: var(--btn-shadow-hover) !important;
    text-decoration: none !important;
}

.btn-secondary:active,
.et_pb_button.btn-secondary:active {
    transform: translateY(1px) !important;
}

.et_pb_button.btn-primary:after,
.et_pb_button.btn-secondary:after {
    color: inherit !important;
}

/* =========================================================
 * 25. ROW PADDING UTILITIES — WRAPPER RESPONSIVE
 *  ========================================================= */

.row-pad-3xs { padding: var(--row-pad-y-3xs) var(--row-pad-x-3xs) !important; }
.row-pad-2xs { padding: var(--row-pad-y-2xs) var(--row-pad-x-2xs) !important; }
.row-pad-xs  { padding: var(--row-pad-y-xs) var(--row-pad-x-xs) !important; }
.row-pad-sm  { padding: var(--row-pad-y-sm) var(--row-pad-x-sm) !important; }
.row-pad,
.row-pad-md  { padding: var(--row-pad-y-md) var(--row-pad-x-md) !important; }
.row-pad-lg  { padding: var(--row-pad-y-lg) var(--row-pad-x-lg) !important; }
.row-pad-xl  { padding: var(--row-pad-y-xl) var(--row-pad-x-xl) !important; }
.row-pad-2xl { padding: var(--row-pad-y-2xl) var(--row-pad-x-2xl) !important; }
.row-pad-3xl { padding: var(--row-pad-y-3xl) var(--row-pad-x-3xl) !important; }

/* vertical only */
.row-pad-y-3xs { padding-top: var(--row-pad-y-3xs) !important; padding-bottom: var(--row-pad-y-3xs) !important; }
.row-pad-y-2xs { padding-top: var(--row-pad-y-2xs) !important; padding-bottom: var(--row-pad-y-2xs) !important; }
.row-pad-y-xs  { padding-top: var(--row-pad-y-xs) !important;  padding-bottom: var(--row-pad-y-xs) !important; }
.row-pad-y-sm  { padding-top: var(--row-pad-y-sm) !important;  padding-bottom: var(--row-pad-y-sm) !important; }
.row-pad-y,
.row-pad-y-md  { padding-top: var(--row-pad-y-md) !important;  padding-bottom: var(--row-pad-y-md) !important; }
.row-pad-y-lg  { padding-top: var(--row-pad-y-lg) !important;  padding-bottom: var(--row-pad-y-lg) !important; }
.row-pad-y-xl  { padding-top: var(--row-pad-y-xl) !important;  padding-bottom: var(--row-pad-y-xl) !important; }
.row-pad-y-2xl { padding-top: var(--row-pad-y-2xl) !important; padding-bottom: var(--row-pad-y-2xl) !important; }
.row-pad-y-3xl { padding-top: var(--row-pad-y-3xl) !important; padding-bottom: var(--row-pad-y-3xl) !important; }

/* horizontal only */
.row-pad-x-3xs { padding-left: var(--row-pad-x-3xs) !important; padding-right: var(--row-pad-x-3xs) !important; }
.row-pad-x-2xs { padding-left: var(--row-pad-x-2xs) !important; padding-right: var(--row-pad-x-2xs) !important; }
.row-pad-x-xs  { padding-left: var(--row-pad-x-xs) !important;  padding-right: var(--row-pad-x-xs) !important; }
.row-pad-x-sm  { padding-left: var(--row-pad-x-sm) !important;  padding-right: var(--row-pad-x-sm) !important; }
.row-pad-x,
.row-pad-x-md  { padding-left: var(--row-pad-x-md) !important;  padding-right: var(--row-pad-x-md) !important; }
.row-pad-x-lg  { padding-left: var(--row-pad-x-lg) !important;  padding-right: var(--row-pad-x-lg) !important; }
.row-pad-x-xl  { padding-left: var(--row-pad-x-xl) !important;  padding-right: var(--row-pad-x-xl) !important; }
.row-pad-x-2xl { padding-left: var(--row-pad-x-2xl) !important; padding-right: var(--row-pad-x-2xl) !important; }
.row-pad-x-3xl { padding-left: var(--row-pad-x-3xl) !important; padding-right: var(--row-pad-x-3xl) !important; }

/* =========================================================
 *  26.COLUMN PADDING UTILITIES — WRAPPER RESPONSIVE
 *  ========================================================= */

.col-pad-3xs { padding: var(--col-pad-y-3xs) var(--col-pad-x-3xs) !important; }
.col-pad-2xs { padding: var(--col-pad-y-2xs) var(--col-pad-x-2xs) !important; }
.col-pad-xs  { padding: var(--col-pad-y-xs) var(--col-pad-x-xs) !important; }
.col-pad-sm  { padding: var(--col-pad-y-sm) var(--col-pad-x-sm) !important; }
.col-pad,
.col-pad-md  { padding: var(--col-pad-y-md) var(--col-pad-x-md) !important; }
.col-pad-lg  { padding: var(--col-pad-y-lg) var(--col-pad-x-lg) !important; }
.col-pad-xl  { padding: var(--col-pad-y-xl) var(--col-pad-x-xl) !important; }
.col-pad-2xl { padding: var(--col-pad-y-2xl) var(--col-pad-x-2xl) !important; }
.col-pad-3xl { padding: var(--col-pad-y-3xl) var(--col-pad-x-3xl) !important; }

/* vertical only */
.col-pad-y-3xs { padding-top: var(--col-pad-y-3xs) !important; padding-bottom: var(--col-pad-y-3xs) !important; }
.col-pad-y-2xs { padding-top: var(--col-pad-y-2xs) !important; padding-bottom: var(--col-pad-y-2xs) !important; }
.col-pad-y-xs  { padding-top: var(--col-pad-y-xs) !important;  padding-bottom: var(--col-pad-y-xs) !important; }
.col-pad-y-sm  { padding-top: var(--col-pad-y-sm) !important;  padding-bottom: var(--col-pad-y-sm) !important; }
.col-pad-y,
.col-pad-y-md  { padding-top: var(--col-pad-y-md) !important;  padding-bottom: var(--col-pad-y-md) !important; }
.col-pad-y-lg  { padding-top: var(--col-pad-y-lg) !important;  padding-bottom: var(--col-pad-y-lg) !important; }
.col-pad-y-xl  { padding-top: var(--col-pad-y-xl) !important;  padding-bottom: var(--col-pad-y-xl) !important; }
.col-pad-y-2xl { padding-top: var(--col-pad-y-2xl) !important; padding-bottom: var(--col-pad-y-2xl) !important; }
.col-pad-y-3xl { padding-top: var(--col-pad-y-3xl) !important; padding-bottom: var(--col-pad-y-3xl) !important; }

/* horizontal only */
.col-pad-x-3xs { padding-left: var(--col-pad-x-3xs) !important; padding-right: var(--col-pad-x-3xs) !important; }
.col-pad-x-2xs { padding-left: var(--col-pad-x-2xs) !important; padding-right: var(--col-pad-x-2xs) !important; }
.col-pad-x-xs  { padding-left: var(--col-pad-x-xs) !important;  padding-right: var(--col-pad-x-xs) !important; }
.col-pad-x-sm  { padding-left: var(--col-pad-x-sm) !important;  padding-right: var(--col-pad-x-sm) !important; }
.col-pad-x,
.col-pad-x-md  { padding-left: var(--col-pad-x-md) !important;  padding-right: var(--col-pad-x-md) !important; }
.col-pad-x-lg  { padding-left: var(--col-pad-x-lg) !important;  padding-right: var(--col-pad-x-lg) !important; }
.col-pad-x-xl  { padding-left: var(--col-pad-x-xl) !important;  padding-right: var(--col-pad-x-xl) !important; }
.col-pad-x-2xl { padding-left: var(--col-pad-x-2xl) !important; padding-right: var(--col-pad-x-2xl) !important; }
.col-pad-x-3xl { padding-left: var(--col-pad-x-3xl) !important; padding-right: var(--col-pad-x-3xl) !important; }

/* =========================================================
 *  27. GROUP PADDING UTILITIES — WRAPPER RESPONSIVE
 *  ========================================================= */

.group-pad-3xs { padding: var(--group-pad-y-3xs) var(--group-pad-x-3xs) !important; }
.group-pad-2xs { padding: var(--group-pad-y-2xs) var(--group-pad-x-2xs) !important; }
.group-pad-xs  { padding: var(--group-pad-y-xs) var(--group-pad-x-xs) !important; }
.group-pad-sm  { padding: var(--group-pad-y-sm) var(--group-pad-x-sm) !important; }
.group-pad,
.group-pad-md  { padding: var(--group-pad-y-md) var(--group-pad-x-md) !important; }
.group-pad-lg  { padding: var(--group-pad-y-lg) var(--group-pad-x-lg) !important; }
.group-pad-xl  { padding: var(--group-pad-y-xl) var(--group-pad-x-xl) !important; }

/* vertical only */
.group-pad-y-3xs { padding-top: var(--group-pad-y-3xs) !important; padding-bottom: var(--group-pad-y-3xs) !important; }
.group-pad-y-2xs { padding-top: var(--group-pad-y-2xs) !important; padding-bottom: var(--group-pad-y-2xs) !important; }
.group-pad-y-xs  { padding-top: var(--group-pad-y-xs) !important;  padding-bottom: var(--group-pad-y-xs) !important; }
.group-pad-y-sm  { padding-top: var(--group-pad-y-sm) !important;  padding-bottom: var(--group-pad-y-sm) !important; }
.group-pad-y,
.group-pad-y-md  { padding-top: var(--group-pad-y-md) !important;  padding-bottom: var(--group-pad-y-md) !important; }
.group-pad-y-lg  { padding-top: var(--group-pad-y-lg) !important;  padding-bottom: var(--group-pad-y-lg) !important; }
.group-pad-y-xl  { padding-top: var(--group-pad-y-xl) !important;  padding-bottom: var(--group-pad-y-xl) !important; }

/* horizontal only */
.group-pad-x-3xs { padding-left: var(--group-pad-x-3xs) !important; padding-right: var(--group-pad-x-3xs) !important; }
.group-pad-x-2xs { padding-left: var(--group-pad-x-2xs) !important; padding-right: var(--group-pad-x-2xs) !important; }
.group-pad-x-xs  { padding-left: var(--group-pad-x-xs) !important;  padding-right: var(--group-pad-x-xs) !important; }
.group-pad-x-sm  { padding-left: var(--group-pad-x-sm) !important;  padding-right: var(--group-pad-x-sm) !important; }
.group-pad-x,
.group-pad-x-md  { padding-left: var(--group-pad-x-md) !important;  padding-right: var(--group-pad-x-md) !important; }
.group-pad-x-lg  { padding-left: var(--group-pad-x-lg) !important;  padding-right: var(--group-pad-x-lg) !important; }
.group-pad-x-xl  { padding-left: var(--group-pad-x-xl) !important;  padding-right: var(--group-pad-x-xl) !important; }

/* =========================================================
 * 28. CARD PADDING UTILITIES — CARD RESPONSIVE
 *  ========================================================= */

.card-pad-sm { padding: var(--card-pad-y-sm) var(--card-pad-x-sm) !important; }
.card-pad,
.card-pad-md { padding: var(--card-pad-y) var(--card-pad-x) !important; }
.card-pad-lg { padding: var(--card-pad-y-lg) var(--card-pad-x-lg) !important; }

.card-pad-y-sm { padding-top: var(--card-pad-y-sm) !important; padding-bottom: var(--card-pad-y-sm) !important; }
.card-pad-y,
.card-pad-y-md { padding-top: var(--card-pad-y) !important; padding-bottom: var(--card-pad-y) !important; }
.card-pad-y-lg { padding-top: var(--card-pad-y-lg) !important; padding-bottom: var(--card-pad-y-lg) !important; }

.card-pad-x-sm { padding-left: var(--card-pad-x-sm) !important; padding-right: var(--card-pad-x-sm) !important; }
.card-pad-x,
.card-pad-x-md { padding-left: var(--card-pad-x) !important; padding-right: var(--card-pad-x) !important; }
.card-pad-x-lg { padding-left: var(--card-pad-x-lg) !important; padding-right: var(--card-pad-x-lg) !important; }

/* =========================================================
 *  MODULE-TO-MODULE SPACING UTILITIES
 *  Use for fine tuning spacing between modules
 *  ========================================================= */

/* -------------------------
 * TOP MARGIN
 * ------------------------- */
.mt-3xs { margin-top: var(--group-pad-y-3xs) !important; }
.mt-2xs { margin-top: var(--group-pad-y-2xs) !important; }
.mt-xs  { margin-top: var(--group-pad-y-xs) !important; }
.mt-sm  { margin-top: var(--group-pad-y-sm) !important; }
.mt,
.mt-md  { margin-top: var(--group-pad-y-md) !important; }
.mt-lg  { margin-top: var(--group-pad-y-lg) !important; }
.mt-xl  { margin-top: var(--group-pad-y-xl) !important; }

/* -------------------------
 * BOTTOM MARGIN
 * ------------------------- */
.mb-3xs { margin-bottom: var(--group-pad-y-3xs) !important; }
.mb-2xs { margin-bottom: var(--group-pad-y-2xs) !important; }
.mb-xs  { margin-bottom: var(--group-pad-y-xs) !important; }
.mb-sm  { margin-bottom: var(--group-pad-y-sm) !important; }
.mb,
.mb-md  { margin-bottom: var(--group-pad-y-md) !important; }
.mb-lg  { margin-bottom: var(--group-pad-y-lg) !important; }
.mb-xl  { margin-bottom: var(--group-pad-y-xl) !important; }

/* -------------------------
 * LEFT MARGIN
 * ------------------------- */
.ml-3xs { margin-left: var(--group-pad-x-3xs) !important; }
.ml-2xs { margin-left: var(--group-pad-x-2xs) !important; }
.ml-xs  { margin-left: var(--group-pad-x-xs) !important; }
.ml-sm  { margin-left: var(--group-pad-x-sm) !important; }
.ml,
.ml-md  { margin-left: var(--group-pad-x-md) !important; }
.ml-lg  { margin-left: var(--group-pad-x-lg) !important; }
.ml-xl  { margin-left: var(--group-pad-x-xl) !important; }

/* -------------------------
 * RIGHT MARGIN
 * ------------------------- */
.mr-3xs { margin-right: var(--group-pad-x-3xs) !important; }
.mr-2xs { margin-right: var(--group-pad-x-2xs) !important; }
.mr-xs  { margin-right: var(--group-pad-x-xs) !important; }
.mr-sm  { margin-right: var(--group-pad-x-sm) !important; }
.mr,
.mr-md  { margin-right: var(--group-pad-x-md) !important; }
.mr-lg  { margin-right: var(--group-pad-x-lg) !important; }
.mr-xl  { margin-right: var(--group-pad-x-xl) !important; }

/* -------------------------
 * AXIS SHORTHANDS
 * ------------------------- */
.mx-3xs {
    margin-left: var(--group-pad-x-3xs) !important;
    margin-right: var(--group-pad-x-3xs) !important;
}
.mx-2xs {
    margin-left: var(--group-pad-x-2xs) !important;
    margin-right: var(--group-pad-x-2xs) !important;
}
.mx-xs {
    margin-left: var(--group-pad-x-xs) !important;
    margin-right: var(--group-pad-x-xs) !important;
}
.mx-sm {
    margin-left: var(--group-pad-x-sm) !important;
    margin-right: var(--group-pad-x-sm) !important;
}
.mx,
.mx-md {
    margin-left: var(--group-pad-x-md) !important;
    margin-right: var(--group-pad-x-md) !important;
}
.mx-lg {
    margin-left: var(--group-pad-x-lg) !important;
    margin-right: var(--group-pad-x-lg) !important;
}
.mx-xl {
    margin-left: var(--group-pad-x-xl) !important;
    margin-right: var(--group-pad-x-xl) !important;
}

.my-3xs {
    margin-top: var(--group-pad-y-3xs) !important;
    margin-bottom: var(--group-pad-y-3xs) !important;
}
.my-2xs {
    margin-top: var(--group-pad-y-2xs) !important;
    margin-bottom: var(--group-pad-y-2xs) !important;
}
.my-xs {
    margin-top: var(--group-pad-y-xs) !important;
    margin-bottom: var(--group-pad-y-xs) !important;
}
.my-sm {
    margin-top: var(--group-pad-y-sm) !important;
    margin-bottom: var(--group-pad-y-sm) !important;
}
.my,
.my-md {
    margin-top: var(--group-pad-y-md) !important;
    margin-bottom: var(--group-pad-y-md) !important;
}
.my-lg {
    margin-top: var(--group-pad-y-lg) !important;
    margin-bottom: var(--group-pad-y-lg) !important;
}
.my-xl {
    margin-top: var(--group-pad-y-xl) !important;
    margin-bottom: var(--group-pad-y-xl) !important;
}

/* -------------------------
 * RESET HELPERS
 * ------------------------- */
.mt-0 { margin-top: 0 !important; }
.mb-0 { margin-bottom: 0 !important; }
.ml-0 { margin-left: 0 !important; }
.mr-0 { margin-right: 0 !important; }
.mx-0 {
    margin-left: 0 !important;
    margin-right: 0 !important;
}
.my-0 {
    margin-top: 0 !important;
    margin-bottom: 0 !important;
}

/* =========================================================
 *  WRAPPER SPACING HELPERS
 *  ========================================================= */

/* vertical flow */
.stack-3xs > * + * { margin-top: var(--group-pad-y-3xs) !important; }
.stack-2xs > * + * { margin-top: var(--group-pad-y-2xs) !important; }
.stack-xs  > * + * { margin-top: var(--group-pad-y-xs) !important; }
.stack-sm  > * + * { margin-top: var(--group-pad-y-sm) !important; }
.stack,
.stack-md  > * + * { margin-top: var(--group-pad-y-md) !important; }
.stack-lg  > * + * { margin-top: var(--group-pad-y-lg) !important; }
.stack-xl  > * + * { margin-top: var(--group-pad-y-xl) !important; }

/* horizontal / wrapped spacing */
.cluster-3xs {
    display: flex !important;
    flex-wrap: wrap !important;
    gap: var(--group-pad-x-3xs) !important;
}

.cluster-2xs {
    display: flex !important;
    flex-wrap: wrap !important;
    gap: var(--group-pad-x-2xs) !important;
}

.cluster-xs {
    display: flex !important;
    flex-wrap: wrap !important;
    gap: var(--group-pad-x-xs) !important;
}

.cluster-sm {
    display: flex !important;
    flex-wrap: wrap !important;
    gap: var(--group-pad-x-sm) !important;
}

.cluster,
.cluster-md {
    display: flex !important;
    flex-wrap: wrap !important;
    gap: var(--group-pad-x-md) !important;
}

.cluster-lg {
    display: flex !important;
    flex-wrap: wrap !important;
    gap: var(--group-pad-x-lg) !important;
}

.cluster-xl {
    display: flex !important;
    flex-wrap: wrap !important;
    gap: var(--group-pad-x-xl) !important;
}

/* =========================================================
 *  29. DIVI CLEANUP
 *  ========================================================= */

img {
    max-width: 100%;
    height: auto;
    display: block;
}

.et_pb_row,
.et_pb_section {
    width: 100%;
}

.et_pb_text > *:last-child,
.et_pb_blurb_description > *:last-child,
.et_pb_text_inner > *:last-child {
    margin-bottom: 0 !important;
}

.et_pb_image img {
    display: block;
}

.et_pb_button {
    text-decoration: none;
}

iframe,
video {
    max-width: 100%;
    display: block;
}

/* =========================================================
 *  30. TEXT COLOR OVERRIDE PATCH — APPEND AT VERY END
 *  ========================================================= */

/* wrapper */
.text-black { color: var(--text-black) !important; }
.text-white { color: var(--text-white) !important; }
.text-muted { color: var(--text-muted) !important; }
.text-primary { color: var(--text-primary) !important; }
.text-secondary { color: var(--text-secondary) !important; }

/* heading modules */
.et_pb_module.text-black .et_pb_module_header,
.et_pb_module.text-black .et_pb_module_header *,
.et_pb_module.text-black h1,
.et_pb_module.text-black h2,
.et_pb_module.text-black h3,
.et_pb_module.text-black h4,
.et_pb_module.text-black h5,
.et_pb_module.text-black h6,
.et_pb_module.text-black p {
    color: var(--text-black) !important;
}

.et_pb_module.text-white .et_pb_module_header,
.et_pb_module.text-white .et_pb_module_header *,
.et_pb_module.text-white h1,
.et_pb_module.text-white h2,
.et_pb_module.text-white h3,
.et_pb_module.text-white h4,
.et_pb_module.text-white h5,
.et_pb_module.text-white h6,
.et_pb_module.text-white p {
    color: var(--text-white) !important;
}

.et_pb_module.text-muted .et_pb_module_header,
.et_pb_module.text-muted .et_pb_module_header *,
.et_pb_module.text-muted h1,
.et_pb_module.text-muted h2,
.et_pb_module.text-muted h3,
.et_pb_module.text-muted h4,
.et_pb_module.text-muted h5,
.et_pb_module.text-muted h6,
.et_pb_module.text-muted p {
    color: var(--text-muted) !important;
}

.et_pb_module.text-primary .et_pb_module_header,
.et_pb_module.text-primary .et_pb_module_header *,
.et_pb_module.text-primary h1,
.et_pb_module.text-primary h2,
.et_pb_module.text-primary h3,
.et_pb_module.text-primary h4,
.et_pb_module.text-primary h5,
.et_pb_module.text-primary h6,
.et_pb_module.text-primary p {
    color: var(--text-primary) !important;
}

.et_pb_module.text-secondary .et_pb_module_header,
.et_pb_module.text-secondary .et_pb_module_header *,
.et_pb_module.text-secondary h1,
.et_pb_module.text-secondary h2,
.et_pb_module.text-secondary h3,
.et_pb_module.text-secondary h4,
.et_pb_module.text-secondary h5,
.et_pb_module.text-secondary h6,
.et_pb_module.text-secondary p {
    color: var(--text-secondary) !important;
}

/* text modules */
.et_pb_text.text-black,
.et_pb_text.text-black .et_pb_text_inner,
.et_pb_text.text-black .et_pb_text_inner *,
.et_pb_text.text-black p,
.et_pb_text.text-black span,
.et_pb_text.text-black li,
.et_pb_text.text-black a {
    color: var(--text-black) !important;
}

.et_pb_text.text-white,
.et_pb_text.text-white .et_pb_text_inner,
.et_pb_text.text-white .et_pb_text_inner *,
.et_pb_text.text-white p,
.et_pb_text.text-white span,
.et_pb_text.text-white li,
.et_pb_text.text-white a {
    color: var(--text-white) !important;
}

.et_pb_text.text-muted,
.et_pb_text.text-muted .et_pb_text_inner,
.et_pb_text.text-muted .et_pb_text_inner *,
.et_pb_text.text-muted p,
.et_pb_text.text-muted span,
.et_pb_text.text-muted li,
.et_pb_text.text-muted a {
    color: var(--text-muted) !important;
}

.et_pb_text.text-primary,
.et_pb_text.text-primary .et_pb_text_inner,
.et_pb_text.text-primary .et_pb_text_inner *,
.et_pb_text.text-primary p,
.et_pb_text.text-primary span,
.et_pb_text.text-primary li,
.et_pb_text.text-primary a {
    color: var(--text-primary) !important;
}

.et_pb_text.text-secondary,
.et_pb_text.text-secondary .et_pb_text_inner,
.et_pb_text.text-secondary .et_pb_text_inner *,
.et_pb_text.text-secondary p,
.et_pb_text.text-secondary span,
.et_pb_text.text-secondary li,
.et_pb_text.text-secondary a {
    color: var(--text-secondary) !important;
}

/* =========================================================
 *  31. WOOCOMMERCE ADD TO CART — DIVI BUTTON SYSTEM BRIDGE
 *  Add to Woo Add To Cart module:
 *  cq-woo-atc btn-secondary btn-xl
 *  ========================================================= */

.cq-woo-atc {
    container-type: inline-size;
}

/* Keep Woo form clean inside Divi */
.cq-woo-atc form.cart {
    display: flex !important;
    align-items: center !important;
    flex-wrap: wrap !important;
    gap: var(--group-pad-x-xs, 1rem) !important;
    margin: 0 !important;
}

/* Quantity box */
.cq-woo-atc .quantity {
    margin: 0 !important;
}

.cq-woo-atc .quantity input.qty {
    width: 4.25rem !important;
    min-height: 100% !important;

    font-family: var(--gcid-body-font-family) !important;
    font-size: var(--text-body-sm) !important;
    font-weight: var(--weight-medium) !important;
    line-height: var(--lh-small) !important;
    color: var(--text-black) !important;

    padding: var(--btn-pad-y-xl) 0.5rem !important;
    border: 1px solid var(--border-medium) !important;
    border-radius: var(--btn-radius) !important;
    background-color: var(--surface-white) !important;
    box-shadow: var(--shadow-xs) !important;
}

/* Base Woo button = your Divi button base */
.cq-woo-atc .single_add_to_cart_button,
.cq-woo-atc button.single_add_to_cart_button,
.cq-woo-atc form.cart button.button,
.cq-woo-atc a.button {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 0.4em !important;

    font-family: var(--gcid-body-font-family) !important;
    font-size: var(--btn-font-size) !important;
    font-weight: var(--btn-font-weight) !important;
    line-height: var(--btn-line-height) !important;
    letter-spacing: var(--btn-letter-spacing) !important;
    text-transform: uppercase !important;
    text-decoration: none !important;

    padding: var(--btn-pad-y) var(--btn-pad-x) !important;
    border-radius: var(--btn-radius) !important;
    border: 1px solid transparent !important;
    box-shadow: var(--btn-shadow) !important;

    cursor: pointer !important;
    float: none !important;

    transition:
        background-color 0.2s ease,
        border-color 0.2s ease,
        box-shadow 0.2s ease,
        transform 0.2s ease !important;
}

/* Size bridge: btn-xl on the module wrapper affects the Woo button */
.cq-woo-atc.btn-xl .single_add_to_cart_button,
.cq-woo-atc.btn-xl button.single_add_to_cart_button,
.cq-woo-atc.btn-xl form.cart button.button,
.cq-woo-atc.btn-xl a.button {
    font-size: var(--btn-font-size-xl) !important;
    padding: var(--btn-pad-y-xl) var(--btn-pad-x-xl) !important;
}

/* Variant bridge: btn-secondary on the module wrapper affects the Woo button */
.cq-woo-atc.btn-secondary .single_add_to_cart_button,
.cq-woo-atc.btn-secondary button.single_add_to_cart_button,
.cq-woo-atc.btn-secondary form.cart button.button,
.cq-woo-atc.btn-secondary a.button {
    background-color: var(--btn-secondary-bg) !important;
    color: var(--btn-secondary-text) !important;
    border-color: var(--btn-secondary-border) !important;
}

.cq-woo-atc.btn-secondary .single_add_to_cart_button:hover,
.cq-woo-atc.btn-secondary button.single_add_to_cart_button:hover,
.cq-woo-atc.btn-secondary form.cart button.button:hover,
.cq-woo-atc.btn-secondary a.button:hover,
.cq-woo-atc.btn-secondary .single_add_to_cart_button:focus-visible,
.cq-woo-atc.btn-secondary button.single_add_to_cart_button:focus-visible,
.cq-woo-atc.btn-secondary form.cart button.button:focus-visible,
.cq-woo-atc.btn-secondary a.button:focus-visible {
    background-color: var(--btn-secondary-bg-hover) !important;
    border-color: var(--btn-secondary-bg-hover) !important;
    color: var(--btn-secondary-text) !important;
    box-shadow: var(--btn-shadow-hover) !important;
    text-decoration: none !important;
}

.cq-woo-atc.btn-secondary .single_add_to_cart_button:active,
.cq-woo-atc.btn-secondary button.single_add_to_cart_button:active,
.cq-woo-atc.btn-secondary form.cart button.button:active,
.cq-woo-atc.btn-secondary a.button:active {
    transform: translateY(1px) !important;
}

/* Prevent Divi/Woo pseudo-icons from messing up the button */
.cq-woo-atc .single_add_to_cart_button:before,
.cq-woo-atc .single_add_to_cart_button:after,
.cq-woo-atc button.single_add_to_cart_button:before,
.cq-woo-atc button.single_add_to_cart_button:after,
.cq-woo-atc form.cart button.button:before,
.cq-woo-atc form.cart button.button:after {
    display: none !important;
}

/* Disabled / variation not selected */
.cq-woo-atc .single_add_to_cart_button.disabled,
.cq-woo-atc .single_add_to_cart_button.wc-variation-selection-needed,
.cq-woo-atc button.single_add_to_cart_button.disabled,
.cq-woo-atc button.single_add_to_cart_button.wc-variation-selection-needed {
    opacity: 0.55 !important;
    cursor: not-allowed !important;
    transform: none !important;
    box-shadow: var(--btn-shadow) !important;
}

/* =========================================================
 * DIVI 5 FRONTEND MOBILE STACK PATCH
 * Add class "mobile-stack" to any Divi Row that must stack
 * ========================================================= */

@media (max-width: 980px) {
  body:not(.et-fb) .mobile-stack {
    display: flex !important;
    flex-direction: column !important;
    flex-wrap: nowrap !important;
  }

  body:not(.et-fb) .mobile-stack > .et_pb_column {
    width: 100% !important;
    max-width: 100% !important;
    flex: 0 0 100% !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
    float: none !important;
  }
}