.elementor-kit-4{--e-global-color-primary:#0E4E3B;--e-global-color-secondary:#0A3C2D;--e-global-color-text:#1A9480;--e-global-color-accent:#29C2B0;--e-global-color-77c9000:#FFFFFF00;--e-global-color-e43b2ac:#0F2B21;--e-global-color-add5dd7:#0E4434;--e-global-color-82e7ad2:#1A9480;--e-global-color-1ed68bd:#73DECC;--e-global-color-edef102:#2E8569;--e-global-color-3d828f6:#5F6F69;--e-global-color-6412f66:#B2C4BF;--e-global-color-f13b6f3:#E5EBE5;--e-global-color-d634ca7:#FFFFFF;--e-global-color-bcf59ce:#F2F7F4;--e-global-color-249b4ae:#ECF5F1;--e-global-color-9adcb05:#999E94;--e-global-color-a2757fc:#8CCCB5;--e-global-color-cce81e1:#E7F2ED;--e-global-typography-primary-font-family:"Roboto";--e-global-typography-primary-font-weight:600;--e-global-typography-secondary-font-family:"Roboto Slab";--e-global-typography-secondary-font-weight:400;--e-global-typography-text-font-family:"Roboto";--e-global-typography-text-font-weight:400;--e-global-typography-accent-font-family:"Roboto";--e-global-typography-accent-font-weight:500;--e-global-typography-ea2eb03-font-family:"Urbanist";--e-global-typography-ea2eb03-font-size:60px;--e-global-typography-ea2eb03-font-weight:600;--e-global-typography-ea2eb03-line-height:1.04em;--e-global-typography-5493e4e-font-family:"Urbanist";--e-global-typography-5493e4e-font-size:26px;--e-global-typography-5493e4e-font-weight:600;--e-global-typography-5493e4e-line-height:1em;--e-global-typography-225690f-font-family:"Urbanist";--e-global-typography-225690f-font-size:12px;--e-global-typography-225690f-font-weight:600;--e-global-typography-225690f-text-transform:uppercase;--e-global-typography-225690f-line-height:1em;--e-global-typography-225690f-letter-spacing:1.6px;--e-global-typography-b5fc4d2-font-family:"Inter";--e-global-typography-b5fc4d2-font-size:17px;--e-global-typography-b5fc4d2-font-weight:400;--e-global-typography-2eb42c5-font-family:"Inter";--e-global-typography-2eb42c5-font-size:16px;--e-global-typography-2eb42c5-font-weight:400;--e-global-typography-2eb42c5-line-height:1.6em;--e-global-typography-465cc49-font-family:"Inter";--e-global-typography-465cc49-font-size:14px;--e-global-typography-465cc49-font-weight:400;--e-global-typography-465cc49-line-height:1.55em;--e-global-typography-05365e2-font-family:"Inter";--e-global-typography-05365e2-font-size:14.5px;--e-global-typography-05365e2-font-weight:500;--e-global-typography-05365e2-line-height:1em;--e-global-typography-82fda93-font-family:"Inter";--e-global-typography-82fda93-font-size:14px;--e-global-typography-82fda93-font-weight:600;--e-global-typography-82fda93-line-height:1rem;--e-global-typography-8db928a-font-family:"Inter";--e-global-typography-8db928a-font-size:15px;--e-global-typography-8db928a-font-weight:600;--e-global-typography-8db928a-line-height:1em;background-color:var( --e-global-color-bcf59ce );}.elementor-kit-4 button,.elementor-kit-4 input[type="button"],.elementor-kit-4 input[type="submit"],.elementor-kit-4 .elementor-button{background-color:var( --e-global-color-accent );font-family:var( --e-global-typography-82fda93-font-family ), Sans-serif;font-size:var( --e-global-typography-82fda93-font-size );font-weight:var( --e-global-typography-82fda93-font-weight );line-height:var( --e-global-typography-82fda93-line-height );color:var( --e-global-color-e43b2ac );border-style:solid;border-width:2px 2px 2px 2px;border-color:var( --e-global-color-accent );border-radius:1500px 1500px 1500px 1500px;padding:14px 28px 14px 28px;}.elementor-kit-4 button:hover,.elementor-kit-4 button:focus,.elementor-kit-4 input[type="button"]:hover,.elementor-kit-4 input[type="button"]:focus,.elementor-kit-4 input[type="submit"]:hover,.elementor-kit-4 input[type="submit"]:focus,.elementor-kit-4 .elementor-button:hover,.elementor-kit-4 .elementor-button:focus{background-color:#22B3A2;border-style:solid;border-width:2px 2px 2px 2px;border-color:#22B3A2;}.elementor-kit-4 e-page-transition{background-color:#FFBC7D;}.elementor-kit-4 h1{color:var( --e-global-color-e43b2ac );font-family:"Urbanist", Sans-serif;font-size:48px;font-weight:600;line-height:1.06em;}.elementor-kit-4 h2{color:var( --e-global-color-e43b2ac );font-family:"Urbanist", Sans-serif;font-size:38px;font-weight:600;line-height:1.1em;}.elementor-kit-4 h3{color:var( --e-global-color-e43b2ac );font-family:"Urbanist", Sans-serif;font-size:28px;font-weight:600;line-height:1.14em;}.elementor-kit-4 h4{color:var( --e-global-color-e43b2ac );font-family:"Urbanist", Sans-serif;font-size:20px;font-weight:600;line-height:1.2em;}.elementor-kit-4 h5{color:var( --e-global-color-e43b2ac );font-family:"Urbanist", Sans-serif;font-size:17px;font-weight:600;line-height:1.24em;}.elementor-kit-4 h6{color:var( --e-global-color-e43b2ac );}.elementor-section.elementor-section-boxed > .elementor-container{max-width:1440px;}.e-con{--container-max-width:1440px;--container-default-padding-top:0px;--container-default-padding-right:0px;--container-default-padding-bottom:0px;--container-default-padding-left:0px;}.elementor-widget:not(:last-child){--kit-widget-spacing:20px;}.elementor-element{--widgets-spacing:20px 20px;--widgets-spacing-row:20px;--widgets-spacing-column:20px;}{}h1.entry-title{display:var(--page-title-display);}.site-header .site-branding{flex-direction:column;align-items:stretch;}.site-header{padding-inline-end:0px;padding-inline-start:0px;}.site-footer .site-branding{flex-direction:column;align-items:stretch;}@media(max-width:1024px){.elementor-kit-4{--e-global-typography-ea2eb03-font-size:33px;--e-global-typography-5493e4e-font-size:19px;--e-global-typography-b5fc4d2-font-size:15px;--e-global-typography-2eb42c5-font-size:15px;--e-global-typography-465cc49-font-size:13px;}.elementor-kit-4 h1{font-size:30px;}.elementor-kit-4 h2{font-size:26px;}.elementor-kit-4 h3{font-size:22px;}.elementor-kit-4 h4{font-size:19px;}.elementor-kit-4 h5{font-size:16px;}.elementor-kit-4 button,.elementor-kit-4 input[type="button"],.elementor-kit-4 input[type="submit"],.elementor-kit-4 .elementor-button{font-size:var( --e-global-typography-82fda93-font-size );line-height:var( --e-global-typography-82fda93-line-height );}.elementor-section.elementor-section-boxed > .elementor-container{max-width:1024px;}.e-con{--container-max-width:1024px;}}@media(max-width:767px){.elementor-kit-4 button,.elementor-kit-4 input[type="button"],.elementor-kit-4 input[type="submit"],.elementor-kit-4 .elementor-button{font-size:var( --e-global-typography-82fda93-font-size );line-height:var( --e-global-typography-82fda93-line-height );}.elementor-section.elementor-section-boxed > .elementor-container{max-width:767px;}.e-con{--container-max-width:767px;}}/* Start custom CSS *//* ==========================================================================
   STYLESHEET INDEX & TABLE OF CONTENTS
   ==========================================================================
   1. Global Design Tokens & Variables
   2. Core Layout & Container Utilities
   3. Elementor Widget Resets & Overrides
      - Text Editor & Links
      - Image / Icon Boxes
      - Icon Lists
      - Accordion / Details Component
      - Navigation Menus (WordPress & Nested)
      - Loop Grid Pagination
   4. Access Control & Sizing Utilities
   5. Component: Image Carousel (Swiper Fixes)
   6. Component: Form Acceptance Checkbox
   7. Component: International Telephone Input (intlTelInput)
   8. Component: Button Variants & Hover States
   9. Component: Global Video Tooltip
   10. Responsive Breakpoints & Media Queries
       - Desktop (>= 1025px)
       - Tablet & Above (>= 768px)
       - Mobile (<= 767px)
   ========================================================================== */


/* ==========================================================================
   1. Global Design Tokens & Variables
   ========================================================================== */

:root {
    /* Default Canvas & Padding Dimensions */
    --canvas-width: 100%;
    --padding-inline: 20px;
    --padding-block: 54px;
}


/* ==========================================================================
   2. Core Layout & Container Utilities
   ========================================================================== */

/**
 * Standardized Section Container
 * Ensures uniform horizontal/vertical spacing and max-width bounds across pages.
 */
.section-container {
    max-width: var(--canvas-width) !important;
    margin-inline: auto !important;
    padding-inline: var(--padding-inline) !important;
    padding-block: var(--padding-block) !important;
}


/* ==========================================================================
   3. Elementor Widget Resets & Overrides
   ========================================================================== */

/* --- Text Editor Overrides --- */

/* Remove unwanted bottom margin from the final paragraph in Elementor text editor */
.elementor-widget-text-editor p:last-of-type {
    margin-bottom: 0 !important;
}

/* Strip default link styling inside text editor widgets */
.elementor-widget-text-editor a {
    color: inherit;
    text-decoration: none;
}

/* --- Image & Icon Box Overrides --- */

/* Remove default top margin on box titles for tight alignment */
.elementor-widget-icon-box .elementor-icon-box-title,
.elementor-widget-image-box .elementor-image-box-title {
    margin-top: 0 !important;
}

/* --- Icon List Resets --- */

/* Reset default margins on SVG icons within list reset wrapper */
.icon-list-reset .elementor-icon-list-icon svg {
    margin: 0 !important;
}

/* Remove default left padding from icon list text labels */
.icon-list-reset .elementor-icon-list-text {
    padding-left: 0 !important;
}

/* --- Accordion / Details Reset --- */

/* Adjust bottom border and padding when an accordion item is expanded */
.accordion-reset details[open] > summary {
    border-bottom-left-radius: 0;
    border-bottom-right-radius: 0;
    border-bottom: 0 !important;
    padding-bottom: 12px;
}

/* --- WordPress Nav Menu Resets --- */

/* Container overflow and margin resets */
.wp-menu-reset nav.elementor-nav-menu__container {
    margin-top: 0 !important;
    overflow: hidden;
}

/* Standardize vertical spacing for main menu items and sub-item dropdown links */
.wp-menu-reset nav.elementor-nav-menu__container > ul > li > a,
.wp-menu-reset nav.elementor-nav-menu__container > ul > li.menu-item-has-children ul a {
    padding-bottom: 32px !important;
}

/* Remove top padding on the first top-level menu item */
.wp-menu-reset nav.elementor-nav-menu__container > ul > li:first-of-type > a {
    padding-top: 0 !important;
}

/* Remove bottom padding on the last top-level menu item */
.wp-menu-reset nav.elementor-nav-menu__container > ul > li:last-of-type > a {
    padding-bottom: 0 !important;
}

/* Ensure sub-menu parents expand to full container width */
.wp-menu-reset nav ul > li.menu-item-has-children {
    width: 100% !important;
}

/* Space parent item label and expand arrow evenly */
.wp-menu-reset nav ul > li.menu-item-has-children > a {
    justify-content: space-between !important;
}

/* Constrain sub-arrow indicator icon dimensions */
.wp-menu-reset nav ul > li.menu-item-has-children > a .sub-arrow svg {
    width: 18px !important;
    height: 18px !important;
}

/* --- Loop Grid Pagination Overrides --- */

/* Reset margins on load-more buttons and completion messages at pagination end */
.loop-grid-reset.e-load-more-pagination-end .e-loop__load-more,
.loop-grid-reset.e-load-more-pagination-end .e-load-more-message {
    margin: 0 !important;
}

/* --- Nested Menu Component Overrides --- */

/* Ensure active sub-menu content overlays correctly below parent trigger */
.menu-reset .e-n-menu-content.e-active {
    padding-block-start: var(--n-menu-title-distance-from-content, 18px) !important;
    top: 100% !important;
}


/* ==========================================================================
   4. Access Control & Sizing Utilities
   ========================================================================== */

/* Hide administrative elements from non-authenticated visitors */
body:not(.logged-in) .admin-only {
    display: none !important;
}

/* Force list items in menus and icon lists to shrink wrap around their content */
.wp-menu-fit nav ul li,
.icon-list-fit ul li {
    width: fit-content;
}


/* ==========================================================================
   5. Component: Image Carousel (Swiper Fixes)
   ========================================================================== */

/* Enable linear transition timing for continuous scrolling carousels */
.image-carousel .swiper-wrapper {
    -webkit-transition-timing-function: linear !important;
    transition-timing-function: linear !important;
}

/* Center inner content container within each slide */
.image-carousel .swiper-slide > div > .e-con-inner {
    justify-content: center;
}

/* Preserve original image aspect ratio and intrinsic sizing */
.image-carousel .swiper-slide img {
    width: auto;
    height: auto;
}


/* ==========================================================================
   6. Component: Custom Form Acceptance Checkbox
   ========================================================================== */

/* Flexbox container for form acceptance label and input */
.form-has-acceptance .elementor-field-type-acceptance .elementor-field-option {
    display: flex;
    align-items: center;
    gap: 10px;
}

/* Base custom checkbox styling replacing native browser UI */
.form-has-acceptance input[type="checkbox"].elementor-acceptance-field {
    -webkit-appearance: none;
    appearance: none;

    width: 16px !important;
    height: 16px !important;
    flex-shrink: 0;

    background-color: #ffffff !important;
    border: 2px solid #C4D4D8 !important;
    border-radius: 2px !important;
    cursor: pointer;
    margin: 0;

    transition: background-color 0.2s ease-in-out, border-color 0.2s ease-in-out;
}

/* Checked state: custom background color & embedded SVG checkmark icon */
.form-has-acceptance input[type="checkbox"].elementor-acceptance-field:checked {
    background-color: #0A3C2D !important;
    border-color: #0A3C2D !important;

    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='20 6 9 17 4 12'%3E%3C/polyline%3E%3C/svg%3E");
    background-size: 100%;
    background-position: center;
    background-repeat: no-repeat;
}


/* ==========================================================================
   7. Component: International Telephone Input (intlTelInput)
   ========================================================================== */

/* Stack phone input elements vertically after plugin initialization */
form .elementor-field-type-tel.intlTelInput-initiated {
    flex-direction: column;
    align-items: flex-start;
}

/* Expand plugin container to full parent width */
form .elementor-field-type-tel.intlTelInput-initiated .iti {
    width: 100%;
}

/* Add left padding to accommodate country flag dropdown inside field */
form .elementor-field-type-tel.intlTelInput-initiated input[type="tel"] {
    padding-left: 52px !important;
}


/* ==========================================================================
   8. Component: Button Variants & Hover States
   ========================================================================== */

/* Default button hover effect: subtle elevation bump */
.elementor-widget-button a:hover,
.e-loop__load-more .elementor-button:hover {
    transform: translateY(-1px);
}

/* Default button disabled state */
.elementor-widget-button a:disabled {
    opacity: .45;
    cursor: not-allowed;
    pointer-events: none;
}

/* --- Primary Button Variant --- */
.elementor-widget-button.btn-primary a:active {
    background-color: #1A9480 !important;
    border-color: #1A9480 !important;
    color: #FFFFFF !important;
}

.elementor-widget-button.btn-primary a:focus-visible {
    outline: 3px solid #29C2B0 !important;
    outline-offset: 2px !important;
}

/* --- Outline Button Variant --- */
.elementor-widget-button.btn-outline a:active {
    background-color: #DCEAE3 !important;
}

.elementor-widget-button.btn-outline a:focus-visible {
    background-color: #FFFFFF !important;
    border: 3px solid #29C2B0 !important;
    outline: unset !important;
}

/* --- Plain Button Variant --- */
.elementor-widget-button.btn-plain svg {
    width: 10px;
    transition: margin-left 0.2s ease-in-out;
}

.elementor-widget-button.btn-plain a:hover svg {
    margin-left: 2px;
}

.elementor-widget-button.btn-plain a:focus-visible {
    color: #29C2B0 !important;
    outline: unset !important;
}

.elementor-widget-button.btn-plain a:focus-visible svg path {
    fill: #29C2B0 !important;
}

/* ==========================================================================
   9. Component: Global Video Tooltip
   ========================================================================== */

/* Pointer cursor on interactive trigger container */
.video-tooltip-trigger {
    cursor: pointer;
}

/* Ensure images within the trigger wrapper stay visible */
.video-tooltip-trigger img,
.video-tooltip-trigger picture {
    display: block;
    opacity: 1 !important;
    visibility: visible !important;
}

/* Tooltip floating card (positioned centered above trigger image) */
.video-unavailable-tooltip {
    position: absolute;
    bottom: calc(100% + 12px);
    left: 50%;
    transform: translateX(-50%) translateY(6px) scale(0.95);
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: rgba(15, 23, 42, 0.94);
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
    color: #ffffff;
    padding: 8px 14px;
    border-radius: 8px;
    font-size: 13px;
    font-weight: 500;
    white-space: nowrap;
    box-shadow: 
        0 10px 25px -5px rgba(0, 0, 0, 0.3),
        0 0 0 1px rgba(255, 255, 255, 0.12);
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    z-index: 999;
    transition: 
        opacity 0.2s ease-in-out,
        transform 0.2s ease-in-out,
        visibility 0.2s;
}

/* Downward pointer triangle arrow on tooltip bottom */
.video-unavailable-tooltip::after {
    content: '';
    position: absolute;
    top: 100%;
    left: 50%;
    transform: translateX(-50%);
    border-width: 6px 6px 0 6px;
    border-style: solid;
    border-color: rgba(15, 23, 42, 0.94) transparent transparent transparent;
}

/* Reveal state: triggered on hover OR via explicit .is-active class */
.video-tooltip-trigger:hover .video-unavailable-tooltip,
.video-unavailable-tooltip.is-active {
    opacity: 1;
    visibility: visible;
    transform: translateX(-50%) translateY(0) scale(1);
}

/* Icon accent color inside tooltip */
.video-unavailable-tooltip svg {
    stroke: #16b0d6;
    flex-shrink: 0;
}


/* ==========================================================================
   10. Responsive Breakpoints & Media Queries
   ========================================================================== */

/* --- Desktop Styles (min-width: 1025px) --- */
@media screen and (min-width: 1025px) {
    :root {
        --padding-block: 100px;
    }

    /* Variant section block padding override */
    .section-container.section-container--block-96 {
        --padding-block: 96px;
    }

    .section-container.section-container--block-80 {
        --padding-block: 80px;
    }

    .section-container.section-container--block-64 {
        --padding-block: 64px;
    }

    .section-container.section-container--block-48 {
        --padding-block: 48px;
    }

    /* Flexbox stretch utility for large screens */
    .lg-flex-auto {
        flex: 1 1 auto;
    }
}

/* --- Tablet & Desktop Styles (min-width: 768px) --- */
@media screen and (min-width: 768px) {
    /* Responsive Canvas Width Breakpoints */
    .section-container {
        --canvas-width: calc(1280px + 40px); /* Base canvas (1344px content + 40px inline padding) */
    }

    .section-container.section-container--1200 {
        --canvas-width: calc(1200px + 40px); /* 1200px variant */
    }

    .section-container.section-container--960 {
        --canvas-width: calc(960px + 40px); /* 960px variant */
    }

    .section-container.section-container--760 {
        --canvas-width: calc(760px + 40px);  /* 760px variant */
    }
}

/* --- Mobile Styles (max-width: 767px) --- */
@media screen and (max-width: 767px) {
    /* Grid row height reset for mobile loop grids */
    .loop-grid-reset .elementor-loop-container.elementor-grid {
        grid-auto-rows: auto !important;
    }

    /* Helper utility to reset grid row height */
    .grid-auto-rows {
        grid-auto-rows: auto !important;
    }

    /* Mobile flexbox vertical stack helper */
    .sm-flex-col {
        display: flex !important;
        flex-direction: column !important;
    }
}/* End custom CSS */