/* ==========================================================================
   03 — Layout
   --------------------------------------------------------------------------
   Flexbox helpers, width/spacing utilities, and responsive visibility.
   ========================================================================== */


/* --- Positioning --- */

.section {
    position: relative;
    z-index: 1;
    overflow: hidden;
}

@media (min-width: 1200px) {
    .section {
        padding-top: calc(6rem + 6vh);
        padding-bottom: calc(6rem + 6vh);
    }
}

@media (max-width: 1199px) {
    .section {
        padding-top: 4rem;
        padding-bottom: 4rem;
    }
}

.section > .container {
    position: relative;
}


/* --- Justify Utilities --- */

.justify-evenly {
    justify-content: space-evenly;
}

.justify-start {
    justify-content: flex-start;
}


/* --- Flexbox Utilities --- */

.flex-c {
    display: flex;
    justify-content: center;
    align-items: center;
    flex-direction: column;
}

.flex-cvert {
    display: flex;
    align-content: center;
    justify-content: center;
    flex-direction: column;
    flex-wrap: wrap;
}

.flex-lvert {
    display: flex;
    align-content: left;
    justify-content: center;
    flex-direction: column;
    flex-wrap: wrap;
}

.flex-start {
    display: flex;
    align-content: flex-start;
    justify-content: center;
    flex-direction: column;
    flex-wrap: wrap;
}

.flex-align-normal {
    align-items: normal !important;
}

.flex-start-s {
    align-items: flex-start;
}

/* Responsive flex direction breakpoints */
@media screen and (max-width: 1200px) {
    .flex-cvert-1200 {
        flex-direction: column;
    }

    .flex-cvert-1200 .wp-block-column {
        justify-content: center;
        display: flex;
        text-align: left;
    }
}

@media screen and (max-width: 1024px) {
    .flex-cvert-tablet {
        flex-direction: column;
    }
}

@media screen and (max-width: 783px) {
    .flex-col-783 {
        flex-direction: column;
    }
}


/* --- Width Utilities --- */

@media (min-width: 767px) {
    .sm\:w-1\/3 {
        width: 33.3333%;
    }

    .sm\:w-2\/3 {
        width: 66.6666%;
    }

    .sm\:w-1\/2 {
        width: 50%;
    }

    .sm\:w-3\/5 {
        width: 60%;
    }
}

@media (min-width: 768px) {
    .md\:w-3\/4 {
        width: 75%;
    }
}

@media (min-width: 1025px) {
    .lg\:w-1\/6 {
        width: 16.6666%;
    }
}



/* --- Gap Utilities --- */
/* Existing in theme: gap-6 (1.5rem), gap-12 (3rem), gap-16 (4rem), lg:gap-24 (6rem) */

.gap-2  { gap: 0.5rem; }
.gap-4  { gap: 1rem; }
.gap-8  { gap: 2rem; }
.gap-20 { gap: 5rem; }
.gap-24 { gap: 6rem; }

@media (min-width: 1025px) {
    .lg\:gap-8  { gap: 2rem; }
    .lg\:gap-12 { gap: 3rem; }
    .lg\:gap-16 { gap: 4rem; }
    .lg\:gap-20 { gap: 5rem; }
}


.w-60 {
    width: 60%;
}

.w-100 {
    width: 100%;
}

.mx-width83 {
    max-width: 82.3%;
}

@media screen and (max-width: 1024px) {
    .mx-width83 {
        max-width: calc(100% - 3rem);
    }
}

.mw-400px {
    max-width: 400px;
}

.mw-50 {
    max-width: 50%;
}


/* --- Embed / Float --- */

.embed-right {
    float: right;
    margin: 1em 0 1em 1em;
    width: 50%;
}

@media (max-width: 1025px) {
    .embed-right {
        float: none;
        margin: 0;
        width: 100%;
    }
}


/* --- Spacing Utilities --- */

.mb-0 {
    margin-bottom: 0;
}

.mt-0 {
    margin-top: 0;
}

.margin-auto {
    margin: auto;
}

.margin0 {
    margin: 0;
}

.margin-t25px {
    margin-top: 25px;
}

.marginb-only {
    margin-bottom: max(30px, 6vw);
    margin-top: 0;
}

.margint-only {
    margin-top: max(30px, 6vw);
    margin-bottom: 0;
}

/* padding-0 and padding0 are equivalent — use padding-0 going forward */
.padding-0,
.padding0 {
    padding: 0;
}

.padding-1em {
    padding: 2em; /* Note: named 1em but value is 2em — preserved as-is */
}

.padding-2rem {
    padding: 2rem;
}

.padding-3rem {
    padding: 3rem;
}

.padding-4rem {
    padding: 4rem;
}

.padding-horizontal {
    padding-left: 2em;
    padding-right: 2em;
}

.paddingl-15px {
    padding-left: 15px;
}


/* --- Font Weight --- */

.fw600 {
    font-weight: 600;
}


/* --- Visibility Breakpoints --- */

@media only screen and (max-width: 1024px) {
    .hide-ctab-lg-md {
        display: none;
    }
}

@media only screen and (min-width: 1024px) {
    .hide-ctab-sm {
        display: none;
    }
}
