/* =======================================================
   DESIGN SYSTEM ROOT VARIABLES
   Breakpoint: Desktop (1440px Base)
   ======================================================= */
:root {
    /* =======================================================
     TEXT TOKENS
     ======================================================= */
    /* regular */
    --text-regular-eyebrow-gap: 8px;
    --text-regular-heading-gap: 12px;
    --text-regular-paragraph-gap: 16px;
    --text-regular-list-item-gap: 12px;
    --text-regular-list-block-gap: 24px;
    --text-regular-quote-gap: 32px;

    /* compact */
    --text-compact-heading-gap: 12px;
    --text-compact-paragraph-gap: 12px;
    --text-compact-list-item-gap: 8px;
    --text-compact-list-block-gap: 16px;
    --text-compact-quote-gap: 24px;

    /* spacious */
    --text-spacious-heading-gap: 32px;
    --text-spacious-paragraph-gap: 20px;
    --text-spacious-list-item-gap: 16px;
    --text-spacious-list-block-gap: 32px;
    --text-spacious-quote-gap: 48px;

    /* =======================================================
     STACK TOKENS
     ======================================================= */
    /* regular */
    --stack-regular-block-gap: 60px;
    --stack-regular-group-gap: 24px;
    --stack-regular-item-gap: 6px;
    --stack-regular-action-gap: 40px;

    /* compact */
    --stack-compact-block-gap: 24px;
    --stack-compact-group-gap: 16px;
    --stack-compact-item-gap: 8px;
    --stack-compact-action-gap: 16px;

    /* spacious */
    --stack-spacious-block-gap: 40px;
    --stack-spacious-group-gap: 32px;
    --stack-spacious-item-gap: 16px;
    --stack-spacious-action-gap: 32px;

    /* =======================================================
     INLINE TOKENS
     ======================================================= */
    /* regular */
    --inline-regular-inline-item-gap: 12px;
    --inline-regular-icon-text-gap: 8px;

    /* compact */
    --inline-compact-inline-item-gap: 8px;
    --inline-compact-icon-text-gap: 6px;

    /* spacious */
    --inline-spacious-inline-item-gap: 16px;
    --inline-spacious-icon-text-gap: 12px;

    /* =======================================================
     LAYOUT TOKENS
     ======================================================= */
    /* regular */
    --layout-regular-section-padding-x: 80px;
    --layout-regular-section-padding-y: 80px;
    --layout-regular-grid-column-gap: 24px;
    --layout-regular-grid-row-gap: 24px;
    --layout-regular-2-column-gap: 80px;
	
	--layout-regular-section-margin-top: 80px;

    /* compact */
    --layout-compact-section-padding-x: 12px;
    --layout-compact-section-padding-y: 12px;
    --layout-compact-grid-column-gap: 12px;
    --layout-compact-grid-row-gap: 12px;
    --layout-compact-2-column-gap: 6px;

    /* spacious */
    --layout-spacious-section-padding-x: 100px;
    --layout-spacious-section-padding-y: 60px;
    --layout-spacious-grid-column-gap: 40px;
    --layout-spacious-grid-row-gap: 48px;
    --layout-spacious-2-column-gap: 6px;
	
	--layout-spacious-section-margin-top: 60px;

    /* =======================================================
     COMPONENT — CARD TOKENS
     ======================================================= */
    /* regular */
    --component-card-regular-padding-x: 60px;
    --component-card-regular-padding-y: 80px;
    --component-card-regular-item-gap: 12px;
    --component-card-regular-group-gap: 24px;
    --component-card-regular-action-gap: 24px;

    /* compact */
    --component-card-compact-padding-x: 14px;
    --component-card-compact-padding-y: 14px;
    --component-card-compact-item-gap: 8px;
    --component-card-compact-group-gap: 16px;
    --component-card-compact-action-gap: 16px;

    /* spacious */
    --component-card-spacious-padding-x: 32px;
    --component-card-spacious-padding-y: 20px;
    --component-card-spacious-item-gap: 16px;
    --component-card-spacious-group-gap: 32px;
    --component-card-spacious-action-gap: 32px;

    /* =======================================================
     COMPONENT — LIST TOKENS
     ======================================================= */
    /* regular */
    --component-list-regular-padding-x: 24px;
    --component-list-regular-padding-y: 16px;
    --component-list-regular-item-gap: 24px;
    --component-list-regular-item-inner-gap: 12px;

    /* compact */
    --component-list-compact-padding-x: 16px;
    --component-list-compact-padding-y: 12px;
    --component-list-compact-item-gap: 16px;
    --component-list-compact-item-inner-gap: 8px;

    /* =======================================================
     COMPONENT — FORM TOKENS
     ======================================================= */
    /* regular */
    --component-form-regular-section-gap: 12px;
    --component-form-regular-group-gap: 24px;
    --component-form-regular-field-gap: 12px;
    --component-form-regular-action-gap: 24px;

    /* compact */
    --component-form-compact-section-gap: 40px;
    --component-form-compact-group-gap: 16px;
    --component-form-compact-field-gap: 8px;
    --component-form-compact-action-gap: 16px;

    /* =======================================================
     COMPONENT — BUTTON TOKENS
     ======================================================= */
    /* regular */
    --component-button-regular-padding-x: 16px;
    --component-button-regular-padding-y: 8px;
    --component-button-regular-icon-gap: 8px;
    --component-button-regular-group-gap: 16px;

    /* compact */
    --component-button-compact-padding-x: 12px;
    --component-button-compact-padding-y: 6px;
    --component-button-compact-icon-gap: 6px;
    --component-button-compact-group-gap: 12px;

    /* spacious */
    --component-button-spacious-padding-x: 20px;
}

/* =======================================================
   UTILITY CLASSES
   Variable Name = Class Name Mapping
   ======================================================= */

/* -----------------------
   Density: Compact
   ----------------------- */
.text-compact-heading-gap {
    margin-top: var(--text-compact-heading-gap) !important;
}

.text-compact-paragraph-gap {
    gap: var(--text-compact-paragraph-gap);
}

.text-compact-list-item-gap {
    gap: var(--text-compact-list-item-gap);
}

.text-compact-list-block-gap {
    gap: var(--text-compact-list-block-gap);
}

.text-compact-quote-gap {
    gap: var(--text-compact-quote-gap);
}

.stack-compact-block-gap {
    gap: var(--stack-compact-block-gap) !important;
}

.stack-compact-group-gap {
    gap: var(--stack-compact-group-gap);
}

.stack-compact-item-gap {
    gap: var(--stack-compact-item-gap);
}

.stack-compact-action-gap {
    margin-top: var(--stack-compact-action-gap) !important;
}

.inline-compact-inline-item-gap {
    gap: var(--inline-compact-inline-item-gap);
}

.inline-compact-icon-text-gap {
    gap: var(--inline-compact-icon-text-gap);
}

.layout-compact-section-padding-x {
    padding-inline: var(--layout-compact-section-padding-x);
}

.layout-compact-section-padding-y {
    padding-block: var(--layout-compact-section-padding-y);
}

.layout-compact-grid-column-gap {
    column-gap: var(--layout-compact-grid-column-gap);
}

.layout-compact-grid-row-gap {
    row-gap: var(--layout-compact-grid-row-gap);
}

.layout-compact-2-column-gap {
    gap: var(--layout-compact-2-column-gap);
}

.component-card-compact-padding-x {
    padding-inline: var(--component-card-compact-padding-x);
}

.component-card-compact-padding-y {
    padding-block: var(--component-card-compact-padding-y);
}

.component-card-compact-item-gap {
    gap: var(--component-card-compact-item-gap);
}

.component-card-compact-group-gap {
    gap: var(--component-card-compact-group-gap);
}

.component-card-compact-action-gap {
    gap: var(--component-card-compact-action-gap);
}

.component-list-compact-padding-x {
    padding-inline: var(--component-list-compact-padding-x);
}

.component-list-compact-padding-y {
    padding-block: var(--component-list-compact-padding-y);
}

.component-list-compact-item-gap {
    gap: var(--component-list-compact-item-gap);
}

.component-list-compact-item-inner-gap {
    gap: var(--component-list-compact-item-inner-gap);
}

.component-form-compact-section-gap {
    gap: var(--component-form-compact-section-gap);
}

.component-form-compact-group-gap {
    gap: var(--component-form-compact-group-gap);
}

.component-form-compact-field-gap {
    gap: var(--component-form-compact-field-gap);
}

.component-form-compact-action-gap {
    gap: var(--component-form-compact-action-gap);
}

.component-button-compact-padding-x {
    padding-inline: var(--component-button-compact-padding-x);
}

.component-button-compact-padding-y {
    padding-block: var(--component-button-compact-padding-y);
}

.component-button-compact-icon-gap {
    gap: var(--component-button-compact-icon-gap);
}

.component-button-compact-group-gap {
    gap: var(--component-button-compact-group-gap);
}

/* -----------------------
   Density: Regular
   ----------------------- */
.text-regular-eyebrow-gap {
    gap: var(--text-regular-eyebrow-gap);
}

.text-regular-heading-gap {
    gap: var(--text-regular-heading-gap);
}

.text-regular-paragraph-gap {
    margin-top: var(--text-regular-paragraph-gap) !important;
}

.text-regular-list-item-gap {
    gap: var(--text-regular-list-item-gap) !important;
}

.text-regular-list-block-gap {
    gap: var(--text-regular-list-block-gap);
}

.text-regular-quote-gap {
    gap: var(--text-regular-quote-gap);
}

.stack-regular-block-gap {
    gap: var(--stack-regular-block-gap) !important;
}

.stack-regular-group-gap {
    gap: var(--stack-regular-group-gap) !important;
}

.stack-regular-item-gap {
    gap: var(--stack-regular-item-gap);
}

.stack-regular-action-gap {
    margin-top: var(--stack-regular-action-gap) !important;
}

.inline-regular-inline-item-gap {
    gap: var(--inline-regular-inline-item-gap);
}

.inline-regular-icon-text-gap {
    gap: var(--inline-regular-icon-text-gap);
}

.layout-regular-section-padding-x {
    padding-inline: var(--layout-regular-section-padding-x);
}

.layout-regular-section-padding-y {
    padding-block: var(--layout-regular-section-padding-y) !important;
}

.layout-regular-section-margin-top {
    margin-top: var(--layout-regular-section-margin-top) !important;
}

.layout-regular-grid-column-gap {
    column-gap: var(--layout-regular-grid-column-gap) !important;
}

.layout-regular-grid-row-gap {
    row-gap: var(--layout-regular-grid-row-gap) !important;
}

.layout-regular-2-column-gap {
    gap: var(--layout-regular-2-column-gap) !important;
}

.component-card-regular-padding-x {
    padding-inline: var(--component-card-regular-padding-x);
}

.component-card-regular-padding-y {
    padding-block: var(--component-card-regular-padding-y);
}

.component-card-regular-item-gap {
    gap: var(--component-card-regular-item-gap);
}

.component-card-regular-group-gap {
    gap: var(--component-card-regular-group-gap);
}

.component-card-regular-action-gap {
    gap: var(--component-card-regular-action-gap);
}

.component-list-regular-padding-x {
    padding-inline: var(--component-list-regular-padding-x);
}

.component-list-regular-padding-y {
    padding-block: var(--component-list-regular-padding-y);
}

.component-list-regular-item-gap {
    gap: var(--component-list-regular-item-gap);
}

.component-list-regular-item-inner-gap {
    gap: var(--component-list-regular-item-inner-gap);
}

.component-form-regular-section-gap {
    gap: var(--component-form-regular-section-gap);
}

.component-form-regular-group-gap {
    gap: var(--component-form-regular-group-gap);
}

.component-form-regular-field-gap {
    gap: var(--component-form-regular-field-gap);
}

.component-form-regular-action-gap {
    gap: var(--component-form-regular-action-gap);
}

.component-button-regular-padding-x {
    padding-inline: var(--component-button-regular-padding-x);
}

.component-button-regular-padding-y {
    padding-block: var(--component-button-regular-padding-y);
}

.component-button-regular-icon-gap {
    gap: var(--component-button-regular-icon-gap);
}

.component-button-regular-group-gap {
    gap: var(--component-button-regular-group-gap);
}

/* -----------------------
   Density: Spacious
   ----------------------- */
.text-spacious-heading-gap {
    gap: var(--text-spacious-heading-gap) !important;
}

.text-spacious-paragraph-gap {
    gap: var(--text-spacious-paragraph-gap) !important;
}

.text-spacious-list-item-gap {
    gap: var(--text-spacious-list-item-gap);
}

.text-spacious-list-block-gap {
    gap: var(--text-spacious-list-block-gap);
}

.text-spacious-quote-gap {
    gap: var(--text-spacious-quote-gap);
}

.stack-spacious-block-gap {
    gap: var(--stack-spacious-block-gap) !important;
}

.stack-spacious-group-gap {
    gap: var(--stack-spacious-group-gap);
}

.stack-spacious-item-gap {
    gap: var(--stack-spacious-item-gap);
}

.stack-spacious-action-gap {
    margin-top: var(--stack-spacious-action-gap) !important;
}

.inline-spacious-inline-item-gap {
    gap: var(--inline-spacious-inline-item-gap);
}

.inline-spacious-icon-text-gap {
    gap: var(--inline-spacious-icon-text-gap);
}

.layout-spacious-section-padding-x {
    padding-inline: var(--layout-spacious-section-padding-x);
}

.layout-spacious-section-padding-y {
    padding-block: var(--layout-spacious-section-padding-y);
}

.layout-spacious-section-margin-top {
    margin-top: var(--layout-spacious-section-margin-top) !important;
}

.layout-spacious-grid-column-gap {
    column-gap: var(--layout-spacious-grid-column-gap) !important;
}

.layout-spacious-grid-row-gap {
    row-gap: var(--layout-spacious-grid-row-gap);
}

.layout-spacious-2-column-gap {
    gap: var(--layout-spacious-2-column-gap);
}

.component-card-spacious-padding-x {
    padding-inline: var(--component-card-spacious-padding-x);
}

.component-card-spacious-padding-y {
    padding-block: var(--component-card-spacious-padding-y) !important;
}

.component-card-spacious-item-gap {
    gap: var(--component-card-spacious-item-gap);
}

.component-card-spacious-group-gap {
    gap: var(--component-card-spacious-group-gap);
}

.component-card-spacious-action-gap {
    gap: var(--component-card-spacious-action-gap);
}

.component-button-spacious-padding-x {
    padding-inline: var(--component-button-spacious-padding-x);
}

/* =======================================================
   RESPONSIVE OVERRIDE
   Breakpoint: ≤1366px
   ======================================================= */
@media only screen and (max-width: 1366px) {
    :root {
        --layout-regular-section-padding-x: 64px;
/*         --layout-regular-section-padding-y: 48px; */
        --layout-regular-2-column-gap: 64px;
        --stack-regular-block-gap: 48px;
        --component-card-regular-padding-x: 48px;
        --component-card-regular-padding-y: 64px;
    }
}

/* =======================================================
   RESPONSIVE OVERRIDE
   Breakpoint: ≤1199px
   ======================================================= */
@media only screen and (max-width: 1199px) {
    :root {
        --layout-regular-section-padding-x: 48px;
/*         --layout-regular-section-padding-y: 40px; */
        --layout-regular-grid-column-gap: 20px;
        --layout-regular-grid-row-gap: 20px;
        --layout-regular-2-column-gap: 48px;
        --stack-regular-block-gap: 40px;
        --stack-regular-group-gap: 20px;
        --stack-regular-action-gap: 32px;
        --component-card-regular-padding-x: 32px;
        --component-card-regular-padding-y: 48px;
        --component-card-regular-group-gap: 20px;
        --component-card-regular-action-gap: 20px;
        --component-list-regular-padding-x: 20px;
        --component-list-regular-item-gap: 20px;
        --component-form-regular-group-gap: 20px;
        --component-form-regular-action-gap: 20px;
		
		--layout-spacious-grid-column-gap: 30px;
		--stack-spacious-block-gap: 30px;
    }
}

/* =======================================================
   RESPONSIVE OVERRIDE
   Breakpoint: ≤1024px
   ======================================================= */
@media only screen and (max-width: 1024px) {
    :root {
        --layout-regular-section-padding-x: 40px;
        --layout-regular-section-padding-y: 60px;
		--layout-regular-section-margin-top: 60px;
        --layout-regular-grid-column-gap: 16px;
        --layout-regular-grid-row-gap: 16px;
        --layout-regular-2-column-gap: 32px;
        --stack-regular-block-gap: 32px;
        --stack-regular-group-gap: 16px;
        --stack-regular-action-gap: 24px;
        --component-card-regular-padding-x: 24px;
        --component-card-regular-padding-y: 32px;
        --component-card-regular-group-gap: 16px;
        --component-card-regular-action-gap: 16px;
        --component-list-regular-padding-x: 16px;
        --component-list-regular-item-gap: 16px;
        --component-form-regular-group-gap: 16px;
        --component-form-regular-action-gap: 16px;
    }
}

/* =======================================================
   RESPONSIVE OVERRIDE
   Breakpoint: ≤767px
   ======================================================= */
@media only screen and (max-width: 767px) {
    :root {
        --layout-regular-section-padding-x: 16px;
        --layout-regular-section-padding-y: 40px;
		--layout-regular-section-margin-top: 40px;
        --layout-regular-grid-column-gap: 12px;
/*         --layout-regular-grid-row-gap: 12px; */
        --layout-regular-2-column-gap: 16px;
        --stack-regular-block-gap: 24px;
        --stack-regular-group-gap: 12px;
/*         --stack-regular-action-gap: 16px; */
        --component-card-regular-padding-x: 16px;
        --component-card-regular-padding-y: 24px;
        --component-card-regular-group-gap: 12px;
        --component-card-regular-action-gap: 12px;
        --component-list-regular-padding-x: 12px;
        --component-list-regular-padding-y: 12px;
        --component-list-regular-item-gap: 12px;
        --component-form-regular-group-gap: 12px;
        --component-form-regular-action-gap: 12px;
        --component-button-regular-padding-x: 14px;
        --component-button-regular-padding-y: 10px;
        --component-button-regular-group-gap: 12px;
		
		--layout-spacious-section-margin-top: 40px;
    }
}

/* =======================================================
   RESPONSIVE OVERRIDE
   Breakpoint: ≤479px
   ======================================================= */
@media only screen and (max-width: 479px) {
    :root {
        --layout-regular-section-padding-x: 12px;
/*         --layout-regular-section-padding-y: 16px; */
        --layout-regular-grid-column-gap: 8px;
/*         --layout-regular-grid-row-gap: 8px; */
        --layout-regular-2-column-gap: 12px;
        --stack-regular-block-gap: 20px;
        --stack-regular-group-gap: 12px;
/*         --stack-regular-action-gap: 12px; */
        --component-card-regular-padding-x: 12px;
        --component-card-regular-padding-y: 16px;
        --component-card-regular-group-gap: 8px;
        --component-card-regular-action-gap: 8px;
        --component-list-regular-padding-x: 8px;
        --component-list-regular-item-gap: 8px;
        --component-form-regular-group-gap: 8px;
        --component-form-regular-action-gap: 8px;
    }
}

/* =======================================================
   RESPONSIVE OVERRIDE
   Breakpoint: ≤374px
   ======================================================= */
@media only screen and (max-width: 374px) {
    :root {
        --layout-regular-section-padding-x: 8px;
/*         --layout-regular-section-padding-y: 12px; */
        --stack-regular-block-gap: 16px;
        --component-card-regular-padding-x: 8px;
        --component-card-regular-padding-y: 12px;
        --component-button-regular-padding-x: 12px;
        --component-button-regular-padding-y: 8px;
    }
}