/* =============================================
   ELEMENTOR OVERRIDES
   Loads AFTER Elementor CSS to ensure proper styling
   ============================================= */

/* =============================================
   BUTTON - GLOBAL BASE STYLES
   ============================================= */

/* Base button style - applies to ALL Elementor buttons */
.elementor-widget-button .elementor-button {
    border-radius: 10px;
    padding: 18px 48px;
    font-size: 16px;
    font-weight: 600;
    text-transform: lowercase;
    transition: all 0.3s ease;
    border-width: 3px;
    border-style: solid;
}

/* DARK variant (default) - for light backgrounds */
.elementor-widget-button .elementor-button {
    border-color: #1a1a1a;
    background-color: #FFFFFF;
    background: #FFFFFF;
    color: #000000;
}

.elementor-widget-button .elementor-button:hover,
.elementor-widget-button .elementor-button:focus {
    background-color: #000000;
    background: #000000;
    color: #FFFFFF;
    border-color: #000000;
}

/* LIGHT variant - add class "nb-btn-light" to button widget */
.nb-btn-light .elementor-button {
    border-color: #FFFFFF;
    background-color: transparent;
    background: transparent;
    color: #FFFFFF;
}

.nb-btn-light .elementor-button:hover,
.nb-btn-light .elementor-button:focus {
    background-color: #FFFFFF;
    background: #FFFFFF;
    color: #000000;
    border-color: #FFFFFF;
}

/* =============================================
   HEADER - Remove bottom border
   ============================================= */
.header-holder,
.header-holder .menu-wrapper,
header,
header.header-holder,
header.elementor-location-header,
header.elementor-location-header .e-con,
header.elementor-location-header .elementor-element,
.elementor-location-header,
.elementor-location-header > .e-con,
#header-container {
    border: none !important;
    border-bottom: none !important;
    box-shadow: none !important;
}

/* Keep header/nav above page sections */
#wpadminbar {
    z-index: 1000001 !important;
}

header.elementor-location-header {
    position: relative;
    z-index: 1000000 !important;
}

/* Elementor Nav Menu - remove borders */
.elementor-nav-menu--main,
.elementor-nav-menu__container,
.elementor-widget-nav-menu,
.elementor-nav-menu,
.elementor-nav-menu li,
.elementor-nav-menu a {
    border: none !important;
    border-bottom: none !important;
}

/* Elementor Nav Menu - spacing between items */
.elementor-nav-menu--layout-horizontal .elementor-nav-menu {
    display: flex !important;
    gap: 32px !important;
}

.elementor-nav-menu--layout-horizontal .elementor-nav-menu > li {
    margin: 0 !important;
}

/* Header layout - logo left, menu right (space-between) */
#header-container,
header.elementor-location-header > .e-con {
    justify-content: space-between !important;
    align-items: center !important;
    padding-left: 60px !important;
    padding-right: 60px !important;
}

/* Nav menu align right */
.elementor-widget-nav-menu {
    margin-left: auto !important;
    margin-right: 0 !important;
}

/* Menu items - lowercase */
.elementor-nav-menu .elementor-item {
    text-transform: lowercase !important;
}

/* =============================================
   HEADER NAV - DESKTOP DROPDOWNS
   Make submenu styling consistent with site
   ============================================= */
.elementor-location-header {
    --nb-header-bg: #F5F5F0;
    --nb-header-text: #333333;
    --nb-header-hover-bg: #F2F2F2;
    --nb-header-border: rgba(51, 51, 51, 0.2);
}

/* =============================================
   HERO - Balance text wrapping (reduce orphans)
   ============================================= */
#hero-section .elementor-widget-text-editor p {
    text-wrap: balance;
}

/* If the copy uses manual <br> for desktop, remove those breaks on mobile so lines can reflow naturally. */
@media screen and (max-width: 767px) {
    #hero-section .elementor-widget-text-editor br {
        display: none;
    }
}

.elementor-location-header .elementor-widget-nav-menu .elementor-nav-menu--main .elementor-nav-menu > li > a.elementor-item {
    font-family: "ProductSans-Regular", "ProductSans-Medium", sans-serif !important;
    font-weight: 400 !important;
}

.elementor-location-header .elementor-widget-nav-menu .elementor-nav-menu--main .elementor-nav-menu > li.current-menu-item > a.elementor-item,
.elementor-location-header .elementor-widget-nav-menu .elementor-nav-menu--main .elementor-nav-menu > li.current_page_item > a.elementor-item,
.elementor-location-header .elementor-widget-nav-menu .elementor-nav-menu--main .elementor-nav-menu > li.current-menu-ancestor > a.elementor-item,
.elementor-location-header .elementor-widget-nav-menu .elementor-nav-menu--main .elementor-item.elementor-item-active {
    font-weight: 400 !important;
}

.elementor-location-header .elementor-nav-menu--main .elementor-nav-menu > li.menu-item-has-children {
    position: relative;
}

.elementor-location-header .elementor-nav-menu--main .elementor-nav-menu > li.menu-item-has-children > .sub-menu.elementor-nav-menu--dropdown {
    background: var(--nb-header-bg, #F5F5F0) !important;
    border: 1px solid var(--nb-header-border, rgba(51, 51, 51, 0.2)) !important;
    border-radius: 12px !important;
    box-shadow: 0 12px 30px rgba(0, 0, 0, 0.08) !important;
    padding: 0 !important;
    min-width: 220px;
    top: 100% !important;
    z-index: 1000000;
    --nb-nav-submenu-gap: 24px;
    transform: translateY(var(--nb-nav-submenu-gap)) !important;
}

.elementor-location-header .elementor-nav-menu--main .elementor-nav-menu > li.menu-item-has-children > .sub-menu.elementor-nav-menu--dropdown::before {
    content: "";
    position: absolute;
    top: calc(-1 * var(--nb-nav-submenu-gap));
    left: 0;
    width: 100%;
    height: var(--nb-nav-submenu-gap);
}

.elementor-location-header .elementor-nav-menu--main .elementor-nav-menu > li.menu-item-has-children > .sub-menu.elementor-nav-menu--dropdown,
.elementor-location-header .elementor-nav-menu--main .elementor-nav-menu > li.menu-item-has-children > .sub-menu.elementor-nav-menu--dropdown > li {
    margin: 0 !important;
    list-style: none !important;
}

.elementor-location-header .elementor-nav-menu--main .sub-menu.elementor-nav-menu--dropdown a.elementor-sub-item {
    display: block;
    padding: 12px 16px !important;
    font-size: 14px !important;
    font-family: "ProductSans-Regular", "ProductSans-Medium", sans-serif !important;
    font-weight: 400 !important;
    line-height: 1.2;
    text-transform: lowercase !important;
    letter-spacing: -0.01em;
    color: var(--nb-header-text, #333333) !important;
    text-decoration: none !important;
    border-radius: 0 !important;
    background: transparent !important;
    transition: background-color 0.2s ease, color 0.2s ease;
}

.elementor-location-header .elementor-nav-menu--main .sub-menu.elementor-nav-menu--dropdown > li:first-child > a.elementor-sub-item {
    border-top-left-radius: 12px !important;
    border-top-right-radius: 12px !important;
}

.elementor-location-header .elementor-nav-menu--main .sub-menu.elementor-nav-menu--dropdown > li:last-child > a.elementor-sub-item {
    border-bottom-left-radius: 12px !important;
    border-bottom-right-radius: 12px !important;
}

.elementor-location-header .elementor-nav-menu--main .sub-menu.elementor-nav-menu--dropdown a.elementor-sub-item:hover,
.elementor-location-header .elementor-nav-menu--main .sub-menu.elementor-nav-menu--dropdown a.elementor-sub-item:focus,
.elementor-location-header .elementor-nav-menu--main .sub-menu.elementor-nav-menu--dropdown a.elementor-sub-item:focus-visible {
    background: var(--nb-header-hover-bg, #F2F2F2) !important;
    color: var(--nb-header-text, #333333) !important;
}

.elementor-location-header .elementor-nav-menu--main .sub-menu.elementor-nav-menu--dropdown a.elementor-sub-item:focus-visible {
    outline: 2px solid rgba(0, 0, 0, 0.25);
    outline-offset: 2px;
}

.elementor-location-header .elementor-nav-menu--main .sub-menu.elementor-nav-menu--dropdown li.current-menu-item > a.elementor-sub-item,
.elementor-location-header .elementor-nav-menu--main .sub-menu.elementor-nav-menu--dropdown li.current_page_item > a.elementor-sub-item,
.elementor-location-header .elementor-nav-menu--main .sub-menu.elementor-nav-menu--dropdown li.current-menu-ancestor > a.elementor-sub-item {
    font-weight: 400 !important;
}

.elementor-location-header .elementor-nav-menu--main .menu-item-has-children > a.has-submenu .sub-arrow {
    margin-left: 6px;
    font-size: 12px;
}

/* Desktop header: keep dropdown caret from affecting centering (dot aligns under text) */
@media (min-width: 1025px) {
    .elementor-location-header .elementor-nav-menu--main .elementor-nav-menu > li.menu-item-has-children > a.has-submenu {
        position: relative;
    }

    .elementor-location-header .elementor-nav-menu--main .elementor-nav-menu > li.menu-item-has-children > a.has-submenu .sub-arrow {
        position: absolute;
        top: 50% !important;
        right: -14px;
        /* Some Elementor builds set an inline top value; this keeps the caret visually centered. */
        transform: translateY(calc(-50% + 10px)) !important;
        margin-left: 0;
    }
}

.elementor-location-header .elementor-nav-menu--main .menu-item-has-children > a.has-submenu .sub-arrow i {
    transition: transform 0.2s ease;
}

.elementor-location-header .elementor-nav-menu--main .menu-item-has-children:hover > a.has-submenu .sub-arrow i,
.elementor-location-header .elementor-nav-menu--main .menu-item-has-children:focus-within > a.has-submenu .sub-arrow i {
    transform: rotate(180deg);
}

/* =============================================
   CAROUSEL ARROWS - GLOBAL STYLES
   Applies to all Elementor Swiper carousels
   ============================================= */

.elementor-swiper-button {
    color: #000000 !important;
    background: #ffffff !important;
    border: 1px solid rgba(0, 0, 0, 0.1) !important;
    border-radius: 50% !important;
    width: 48px !important;
    height: 48px !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1) !important;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08) !important;
    cursor: pointer !important;
    opacity: 1 !important;
}

.elementor-swiper-button:hover {
    background: #ffffff !important;
    border-color: rgba(0, 0, 0, 0.2) !important;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.12) !important;
    transform: translateY(-50%) scale(1.05);
}

/* Disabled state */
.elementor-swiper-button.is-disabled,
.elementor-swiper-button.swiper-button-disabled,
.elementor-swiper-button:disabled {
    opacity: 0.4 !important;
    cursor: not-allowed !important;
    pointer-events: none !important;
}

.elementor-swiper-button.is-disabled:hover,
.elementor-swiper-button.swiper-button-disabled:hover,
.elementor-swiper-button:disabled:hover {
    transform: translateY(-50%) !important;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08) !important;
}

/* Hide pagination dots globally */
.swiper-pagination {
    display: none !important;
}

/* Responsive - Tablet */
@media screen and (max-width: 1024px) {
    .elementor-swiper-button {
        width: 44px !important;
        height: 44px !important;
    }

    /* Fixed header on tablet/mobile */
    header.elementor-location-header {
        position: sticky !important;
        top: 0 !important;
        left: 0 !important;
        right: 0 !important;
        width: 100% !important;
        z-index: 1000000 !important;
        background: var(--nb-header-bg, #F5F5F0) !important;
        border-bottom: 1px solid #f0f0f0 !important;
    }

    body.admin-bar header.elementor-location-header {
        top: 32px !important;
    }

    /* Ensure header logo stays visible on mobile */
    #header-container .elementor-widget-heading .elementor-heading-title {
        color: #000000 !important;
    }


    /* Reduce header side padding on mobile */
    #header-container,
    header.elementor-location-header > .e-con {
        padding-left: 24px !important;
        padding-right: 24px !important;
        padding-top: 16px !important;
        padding-bottom: 16px !important;
        flex-wrap: nowrap !important;
        min-height: 72px !important;
        box-sizing: border-box !important;
    }

    /* Prevent logo/menu wrapping in header */
    #header-container > .elementor-element,
    header.elementor-location-header > .e-con > .elementor-element {
        width: auto !important;
        flex: 0 0 auto;
    }

    /* =============================================
       ELEMENTOR HEADER NAV (MOBILE)
       Make dropdown look like a clean right drawer
       ============================================= */

    /* Hide the horizontal menu when the toggle is used */
    .elementor-location-header .elementor-nav-menu--main.elementor-nav-menu--layout-horizontal,
    .elementor-widget-nav-menu .elementor-nav-menu--main.elementor-nav-menu--layout-horizontal {
        display: none !important;
    }

    .elementor-widget-nav-menu .elementor-widget-container {
        display: flex;
        align-items: center;
        justify-content: flex-end;
	    }
	
	    /* Keep dropdown out of layout unless open */
	    .elementor-widget-nav-menu nav.elementor-nav-menu--dropdown.elementor-nav-menu__container {
	        display: none;
	    }

    /* Keep toggle aligned nicely in the header row */
    .elementor-location-header .elementor-widget-nav-menu,
    .elementor-widget-nav-menu {
        position: relative;
    }

    .elementor-location-header .elementor-widget-nav-menu .elementor-menu-toggle,
    .elementor-widget-nav-menu .elementor-menu-toggle {
        margin-left: auto;
        width: 48px;
        height: 48px;
        display: flex;
        align-items: center;
        justify-content: center;
        border: 0;
        background: transparent;
        position: relative;
        z-index: 10001;
        flex: 0 0 auto;
    }

    .elementor-location-header .elementor-widget-nav-menu .elementor-menu-toggle i,
    .elementor-widget-nav-menu .elementor-menu-toggle i {
        font-size: 26px;
        line-height: 1;
        color: #000000;
    }

    /* Hide default Elementor icons - we use custom hamburger */
    .elementor-location-header .elementor-widget-nav-menu .elementor-menu-toggle .elementor-menu-toggle__icon--open,
    .elementor-widget-nav-menu .elementor-menu-toggle .elementor-menu-toggle__icon--open,
    .elementor-location-header .elementor-widget-nav-menu .elementor-menu-toggle .elementor-menu-toggle__icon--close,
    .elementor-widget-nav-menu .elementor-menu-toggle .elementor-menu-toggle__icon--close {
        display: none !important;
    }

    /* Custom hamburger - staggered lines (default state) */
    .elementor-location-header .elementor-widget-nav-menu .elementor-menu-toggle::before,
    .elementor-widget-nav-menu .elementor-menu-toggle::before {
        content: "";
        width: 26px;
        height: 18px;
        display: block;
        background-image:
            linear-gradient(currentColor 0 0),
            linear-gradient(currentColor 0 0),
            linear-gradient(currentColor 0 0);
        background-repeat: no-repeat;
        background-position:
            right 0 top 0,
            right 0 center,
            right 0 bottom 0;
        background-size:
            100% 2px,
            60% 2px,
            100% 2px;
        color: #000000;
        transition: background-position 0.3s cubic-bezier(0.4, 0, 0.2, 1),
                    background-size 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    }

    /* Hamburger active state - middle line shifts outside left */
    .elementor-location-header .elementor-widget-nav-menu .elementor-menu-toggle.elementor-active::before,
    .elementor-widget-nav-menu .elementor-menu-toggle.elementor-active::before {
        background-position:
            right 0 top 0,
            left -6px center,
            right 0 bottom 0;
        background-size:
            100% 2px,
            60% 2px,
            100% 2px;
	    }
	
	    /* Drawer - base (hidden) state */
	    .elementor-widget-nav-menu nav.elementor-nav-menu--dropdown.elementor-nav-menu__container {
	        position: fixed !important;
	        top: 0 !important;
	        left: 0;
	        right: 0;
        bottom: 0;
        height: 100vh !important;
        height: 100dvh !important;
        width: 100% !important;
        margin: 0 !important;
        padding: 0 !important;
        background: rgba(255, 255, 255, 0) !important;
        display: flex !important;
        align-items: stretch;
        justify-content: flex-end;
        z-index: 9999;
        pointer-events: none;
        visibility: hidden;
        opacity: 0;
        transition: background 0.4s ease, visibility 0.4s ease, opacity 0.4s ease;
	    }
	
	    /* Drawer - open state */
	    .elementor-widget-nav-menu .elementor-menu-toggle.elementor-active + nav.elementor-nav-menu--dropdown.elementor-nav-menu__container {
	        background: rgba(255, 255, 255, 0.98) !important;
	        pointer-events: auto;
	        visibility: visible;
	        opacity: 1;
	    }
	
	    /* Drawer menu panel */
	    .elementor-widget-nav-menu nav.elementor-nav-menu--dropdown.elementor-nav-menu__container > .elementor-nav-menu {
	        width: 100% !important;
	        height: 100%;
	        background: transparent !important;
	        padding: 100px 48px 60px !important;
        margin: 0 !important;
        list-style: none !important;
        display: flex;
        flex-direction: column;
        align-items: flex-start;
        justify-content: flex-start;
        gap: 0 !important;
        overflow-y: auto;
        border: none !important;
        box-shadow: none !important;
        transform: none !important;
	    }
	
	    /* Remove all list styling */
	    .elementor-widget-nav-menu nav.elementor-nav-menu--dropdown.elementor-nav-menu__container > .elementor-nav-menu,
	    .elementor-widget-nav-menu nav.elementor-nav-menu--dropdown.elementor-nav-menu__container > .elementor-nav-menu > li {
	        list-style: none !important;
	        list-style-type: none !important;
	    }
	
	    .elementor-widget-nav-menu nav.elementor-nav-menu--dropdown.elementor-nav-menu__container > .elementor-nav-menu > li::before,
	    .elementor-widget-nav-menu nav.elementor-nav-menu--dropdown.elementor-nav-menu__container > .elementor-nav-menu > li::marker {
	        display: none !important;
	        content: none !important;
	    }
	
	    /* Menu items */
	    .elementor-widget-nav-menu nav.elementor-nav-menu--dropdown.elementor-nav-menu__container > .elementor-nav-menu > li {
	        width: 100%;
	        max-width: 80%;
	        margin: 0 !important;
        padding: 0 !important;
        opacity: 0;
        transform: translateY(20px);
        transition: opacity 0.4s ease, transform 0.4s ease;
        background: transparent !important;
	    }
	
	    /* Menu items - staggered reveal */
	    .elementor-widget-nav-menu .elementor-menu-toggle.elementor-active + nav.elementor-nav-menu--dropdown.elementor-nav-menu__container > .elementor-nav-menu > li {
	        opacity: 1;
	        transform: translateY(0);
	    }
	
	    .elementor-widget-nav-menu .elementor-menu-toggle.elementor-active + nav.elementor-nav-menu--dropdown.elementor-nav-menu__container > .elementor-nav-menu > li:nth-child(1) { transition-delay: 0.1s; }
	    .elementor-widget-nav-menu .elementor-menu-toggle.elementor-active + nav.elementor-nav-menu--dropdown.elementor-nav-menu__container > .elementor-nav-menu > li:nth-child(2) { transition-delay: 0.15s; }
	    .elementor-widget-nav-menu .elementor-menu-toggle.elementor-active + nav.elementor-nav-menu--dropdown.elementor-nav-menu__container > .elementor-nav-menu > li:nth-child(3) { transition-delay: 0.2s; }
	    .elementor-widget-nav-menu .elementor-menu-toggle.elementor-active + nav.elementor-nav-menu--dropdown.elementor-nav-menu__container > .elementor-nav-menu > li:nth-child(4) { transition-delay: 0.25s; }
	    .elementor-widget-nav-menu .elementor-menu-toggle.elementor-active + nav.elementor-nav-menu--dropdown.elementor-nav-menu__container > .elementor-nav-menu > li:nth-child(5) { transition-delay: 0.3s; }
	    .elementor-widget-nav-menu .elementor-menu-toggle.elementor-active + nav.elementor-nav-menu--dropdown.elementor-nav-menu__container > .elementor-nav-menu > li:nth-child(6) { transition-delay: 0.35s; }
	
	    /* Menu item links - clean modern style with separators */
	    .elementor-widget-nav-menu nav.elementor-nav-menu--dropdown.elementor-nav-menu__container > .elementor-nav-menu > li > a,
	    .elementor-widget-nav-menu nav.elementor-nav-menu--dropdown.elementor-nav-menu__container > .elementor-nav-menu > li > a:hover,
	    .elementor-widget-nav-menu nav.elementor-nav-menu--dropdown.elementor-nav-menu__container > .elementor-nav-menu > li > a:focus,
	    .elementor-widget-nav-menu nav.elementor-nav-menu--dropdown.elementor-nav-menu__container > .elementor-nav-menu > li > a:active {
	        display: block;
	        width: 100%;
	        padding: 24px 0 !important;
	        font-size: 24px !important;
	        font-family: "ProductSans-Regular", "ProductSans-Medium", sans-serif !important;
	        font-weight: 400 !important;
	        text-transform: lowercase;
	        letter-spacing: -0.01em;
	        color: #1a1a1a !important;
	        background: transparent !important;
	        border: none !important;
	        border-bottom: 1px solid #e8e8e8 !important;
	        text-align: left;
	        text-decoration: none !important;
	        transition: color 0.2s ease, transform 0.2s ease;
	        position: relative;
	    }

	    /* Keep submenu caret inline with text */
	    .elementor-widget-nav-menu nav.elementor-nav-menu--dropdown.elementor-nav-menu__container > .elementor-nav-menu > li > a.has-submenu {
	        display: flex;
	        align-items: center;
	    }

	    .elementor-widget-nav-menu nav.elementor-nav-menu--dropdown.elementor-nav-menu__container > .elementor-nav-menu > li > a.has-submenu > .sub-arrow {
	        position: static !important;
	        display: inline-flex !important;
	        align-items: center;
	        justify-content: center;
	        width: auto;
	        height: auto;
	        margin-left: 8px;
	    }

	    .elementor-widget-nav-menu nav.elementor-nav-menu--dropdown.elementor-nav-menu__container > .elementor-nav-menu > li > a.has-submenu > .sub-arrow i {
	        font-size: 14px;
	        line-height: 1;
	        transition: transform 0.2s ease;
	    }

	    .elementor-widget-nav-menu nav.elementor-nav-menu--dropdown.elementor-nav-menu__container > .elementor-nav-menu > li > a.has-submenu[aria-expanded="true"] > .sub-arrow i {
	        transform: rotate(180deg);
	    }
	
	    /* Last item no border */
	    .elementor-widget-nav-menu nav.elementor-nav-menu--dropdown.elementor-nav-menu__container > .elementor-nav-menu > li:last-child > a {
	        border-bottom: none !important;
	    }
	
	    /* Hover effect */
	    .elementor-widget-nav-menu nav.elementor-nav-menu--dropdown.elementor-nav-menu__container > .elementor-nav-menu > li > a:hover {
	        color: #666666 !important;
	    }
	
		    /* Active/current page - same color as other items (consistent with desktop) */
		    .elementor-widget-nav-menu nav.elementor-nav-menu--dropdown.elementor-nav-menu__container > .elementor-nav-menu > li.current-menu-item > a,
			    .elementor-widget-nav-menu nav.elementor-nav-menu--dropdown.elementor-nav-menu__container > .elementor-nav-menu > li.current_page_item > a,
			    .elementor-widget-nav-menu nav.elementor-nav-menu--dropdown.elementor-nav-menu__container > .elementor-nav-menu > li.current-menu-ancestor > a {
			        color: inherit !important;
			        background: transparent !important;
			    }

		    /* Drawer submenus (e.g. Services) */
		    .elementor-widget-nav-menu nav.elementor-nav-menu--dropdown.elementor-nav-menu__container .sub-menu {
		        position: static !important;
		        width: 100% !important;
		        margin: 0 0 16px !important;
		        padding: 8px 0 0 !important;
		        background: transparent !important;
		        border: none !important;
		        box-shadow: none !important;
		    }

		    .elementor-widget-nav-menu nav.elementor-nav-menu--dropdown.elementor-nav-menu__container .sub-menu > li {
		        width: 100%;
		        margin: 0 !important;
		        padding: 0 !important;
		        list-style: none !important;
		    }

		    .elementor-widget-nav-menu nav.elementor-nav-menu--dropdown.elementor-nav-menu__container .sub-menu > li > a.elementor-sub-item {
		        display: block;
		        width: 100%;
		        padding: 14px 0 14px 18px !important;
		        font-size: 18px !important;
		        font-family: "ProductSans-Regular", "ProductSans-Medium", sans-serif !important;
		        font-weight: 400 !important;
		        text-transform: lowercase !important;
		        letter-spacing: -0.01em;
		        color: #666666 !important;
		        background: transparent !important;
		        border: none !important;
		        text-decoration: none !important;
		        transition: color 0.2s ease;
		    }

		    .elementor-widget-nav-menu nav.elementor-nav-menu--dropdown.elementor-nav-menu__container .sub-menu > li > a.elementor-sub-item:hover,
		    .elementor-widget-nav-menu nav.elementor-nav-menu--dropdown.elementor-nav-menu__container .sub-menu > li > a.elementor-sub-item:focus,
		    .elementor-widget-nav-menu nav.elementor-nav-menu--dropdown.elementor-nav-menu__container .sub-menu > li > a.elementor-sub-item:focus-visible {
		        color: #1a1a1a !important;
		    }

		    .elementor-widget-nav-menu nav.elementor-nav-menu--dropdown.elementor-nav-menu__container .sub-menu > li > a.elementor-sub-item:focus-visible {
		        outline: 2px solid rgba(0, 0, 0, 0.25);
		        outline-offset: 2px;
		    }

		    .elementor-widget-nav-menu nav.elementor-nav-menu--dropdown.elementor-nav-menu__container .sub-menu > li.current-menu-item > a.elementor-sub-item,
		    .elementor-widget-nav-menu nav.elementor-nav-menu--dropdown.elementor-nav-menu__container .sub-menu > li.current_page_item > a.elementor-sub-item,
		    .elementor-widget-nav-menu nav.elementor-nav-menu--dropdown.elementor-nav-menu__container .sub-menu > li.current-menu-ancestor > a.elementor-sub-item {
		        color: #1a1a1a !important;
		        font-weight: 400 !important;
		    }
		
		    /* Remove ::after dots from mobile dropdown (desktop uses ::after for dots below) */
		    .elementor-widget-nav-menu nav.elementor-nav-menu--dropdown.elementor-nav-menu__container .elementor-item::after,
		    .elementor-widget-nav-menu nav.elementor-nav-menu--dropdown.elementor-nav-menu__container > .elementor-nav-menu > li > a::after {
	        display: none !important;
	        content: none !important;
	    }
	
		    /* Dot BEFORE nav text for active items on mobile */
		    .elementor-widget-nav-menu nav.elementor-nav-menu--dropdown.elementor-nav-menu__container > .elementor-nav-menu > li.current-menu-item > a::before,
		    .elementor-widget-nav-menu nav.elementor-nav-menu--dropdown.elementor-nav-menu__container > .elementor-nav-menu > li.current_page_item > a::before,
		    .elementor-widget-nav-menu nav.elementor-nav-menu--dropdown.elementor-nav-menu__container > .elementor-nav-menu > li.current-menu-ancestor > a::before {
		        content: "" !important;
		        position: absolute !important;
		        display: block !important;
	        top: 50% !important;
	        left: -16px !important; /* 6px dot + ~10px gap */
	        transform: translateY(-50%) !important;
	        width: 6px !important;
	        height: 6px !important;
	        background-color: #000000 !important;
	        border-radius: 50% !important;
	        opacity: 1 !important;
	        transition: none !important;
	        margin: 0 !important;
		    }
	
	    /* Remove any Elementor default active styling */
	    .elementor-widget-nav-menu nav.elementor-nav-menu--dropdown.elementor-nav-menu__container .elementor-item.elementor-item-active,
	    .elementor-widget-nav-menu nav.elementor-nav-menu--dropdown.elementor-nav-menu__container .elementor-item:hover,
	    .elementor-widget-nav-menu nav.elementor-nav-menu--dropdown.elementor-nav-menu__container .elementor-item:focus {
	        background: transparent !important;
	    }
}

/* Responsive - Mobile */
@media screen and (max-width: 767px) {
    .elementor-swiper-button {
        width: 40px !important;
        height: 40px !important;
    }

    /* Partners flags grid - 2 columns on mobile instead of 1 */
    .elementor-element.elementor-element-61b42e4a {
        --e-con-grid-template-columns: repeat(2, 1fr) !important;
    }
}

/* Elementor list spacing - avoid bullets overlapping text */
.elementor .elementor-widget-container ul:not(.elementor-nav-menu):not(.sub-menu):not(.elementor-icon-list-items),
.elementor .elementor-widget-container ol {
    list-style-position: outside;
    padding-left: 1.35em;
    margin-left: 0;
}

.elementor .elementor-widget-container ul:not(.elementor-nav-menu):not(.sub-menu):not(.elementor-icon-list-items) > li,
.elementor .elementor-widget-container ol > li {
    padding-left: 0.2em;
}

/* =============================================
   MINI FORM BOOKING (Elementor Form Steps)
   Scope: .nb-mini-form-booking-form-steps
   ============================================= */

.nb-mini-form-booking-form-steps,
#nb-mini-form-booking-form-steps {
    --nb-mini-form-card-max: 1000px;
    --nb-mini-form-card-pad: 60px;
    --nb-mini-form-card-radius: 32px;
    --nb-mini-form-border: rgba(0, 0, 0, 0.05);
    --nb-mini-form-muted: rgba(17, 24, 39, 0.5);
    --nb-mini-form-shadow: 0 10px 40px -10px rgba(0, 0, 0, 0.08), 0 20px 60px -20px rgba(0, 0, 0, 0.05);
    position: relative;
    z-index: 10;
    overflow: visible !important;
}

.nb-mini-form-booking-form-steps,
#nb-mini-form-booking-form-steps {
    padding-left: 16px;
    padding-right: 16px;
}

.nb-mini-form-booking-form-steps .e-con-inner,
#nb-mini-form-booking-form-steps .e-con-inner,
.nb-mini-form-booking-form-steps .e-con,
#nb-mini-form-booking-form-steps .e-con {
    overflow: visible !important;
}

.nb-mini-form-booking-form-steps .elementor-widget-form,
#nb-mini-form-booking-form-steps .elementor-widget-form {
    width: 100%;
    max-width: var(--nb-mini-form-card-max);
    margin-left: auto;
    margin-right: auto;
}

.nb-mini-form-booking-form-steps form.elementor-form,
#nb-mini-form-booking-form-steps form.elementor-form {
    background: #ffffff;
    border: 1px solid var(--nb-mini-form-border);
    border-radius: var(--nb-mini-form-card-radius);
    padding: var(--nb-mini-form-card-pad);
    box-shadow: var(--nb-mini-form-shadow);
    transition: all 0.4s cubic-bezier(0.16, 1, 0.3, 1);
    overflow: visible !important;
}

.nb-mini-form-booking-form-steps .e-form__step,
#nb-mini-form-booking-form-steps .e-form__step {
    background: transparent !important;
    border: none !important;
    border-radius: 0 !important;
    padding: 0 !important;
    overflow: visible !important;
}

.nb-mini-form-booking-form-steps .elementor-form-fields-wrapper,
#nb-mini-form-booking-form-steps .elementor-form-fields-wrapper {
    display: block;
    overflow: visible !important;
}

.nb-mini-form-booking-form-steps .elementor-field-group,
#nb-mini-form-booking-form-steps .elementor-field-group {
    margin-bottom: 0 !important;
}

.nb-mini-form-booking-form-steps .e-form__step .elementor-field-group + .elementor-field-group,
#nb-mini-form-booking-form-steps .e-form__step .elementor-field-group + .elementor-field-group {
    margin-top: 14px;
}

.nb-mini-form-booking-form-steps .elementor-field-label,
#nb-mini-form-booking-form-steps .elementor-field-label {
    display: block;
    width: 100%;
    margin-bottom: 8px;
    font-weight: 600;
    color: #111827;
}

.nb-mini-form-booking-form-steps .elementor-field.elementor-field-textual,
#nb-mini-form-booking-form-steps .elementor-field.elementor-field-textual {
    box-sizing: border-box;
    border-radius: 16px;
    border: 1px solid rgba(17, 24, 39, 0.25);
    padding: 14px 16px;
    min-height: 52px;
    background: #ffffff;
    color: #111827;
}

.nb-mini-form-booking-form-steps .elementor-field.elementor-field-textual:focus,
#nb-mini-form-booking-form-steps .elementor-field.elementor-field-textual:focus {
    border-color: rgba(0, 0, 0, 0.85);
    box-shadow: 0 0 0 4px rgba(0, 0, 0, 0.08);
    outline: none;
}

.nb-mini-form-booking-form-steps .nb-mini-form__phone-row,
#nb-mini-form-booking-form-steps .nb-mini-form__phone-row {
    display: flex;
    gap: 12px;
    align-items: stretch;
    width: 100%;
}

.nb-mini-form-booking-form-steps .elementor-field-group-phone,
#nb-mini-form-booking-form-steps .elementor-field-group-phone,
.nb-mini-form-booking-form-steps .elementor-field-group-email,
#nb-mini-form-booking-form-steps .elementor-field-group-email {
    display: block !important;
    width: 100% !important;
    flex: 0 0 100% !important;
    max-width: 100% !important;
    position: static !important;
    clear: both !important;
}

.nb-mini-form-booking-form-steps .elementor-field-group-phone,
#nb-mini-form-booking-form-steps .elementor-field-group-phone {
    position: relative !important;
    z-index: 2147483100;
    overflow: visible !important;
}

.nb-mini-form-booking-form-steps .elementor-field-group-email > label,
#nb-mini-form-booking-form-steps .elementor-field-group-email > label {
    display: block !important;
    width: 100% !important;
}

.nb-mini-form-booking-form-steps .elementor-field-group-email .elementor-field,
#nb-mini-form-booking-form-steps .elementor-field-group-email .elementor-field {
    width: 100% !important;
    max-width: 100% !important;
    display: block;
    margin: 0 !important;
    float: none !important;
    position: static !important;
    left: auto !important;
    right: auto !important;
}

.nb-mini-form-booking-form-steps #form-field-email,
#nb-mini-form-booking-form-steps #form-field-email {
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    position: static !important;
    left: auto !important;
    right: auto !important;
    transform: none !important;
}

.nb-mini-form-booking-form-steps .elementor-field-group-phone + .elementor-field-group-email,
#nb-mini-form-booking-form-steps .elementor-field-group-phone + .elementor-field-group-email {
    margin-top: 20px !important;
}

.nb-mini-form-booking-form-steps .nb-mini-form__country-wrap,
#nb-mini-form-booking-form-steps .nb-mini-form__country-wrap,
.nb-mini-form-booking-form-steps .nb-mini-form__country,
#nb-mini-form-booking-form-steps .nb-mini-form__country {
    flex: 0 0 132px;
    min-height: 52px;
    border-radius: 16px;
    border: 1px solid rgba(17, 24, 39, 0.25);
    padding: 14px 12px;
    background: #ffffff;
    color: #111827;
    font-weight: 600;
}

.nb-mini-form-booking-form-steps .nb-mini-form__custom-select {
    position: relative;
    flex: 0 0 140px;
    min-width: 120px;
    z-index: 2147483200;
}

.nb-mini-form-booking-form-steps .nb-mini-form__custom-select.is-open {
    z-index: 2147483300;
}

.nb-mini-form-booking-form-steps .nb-mini-form__select-trigger {
    display: flex;
    align-items: center;
    justify-content: space-between;
    width: 100%;
    height: 52px;
    padding: 0 12px;
    background: #ffffff;
    border: 1px solid rgba(17, 24, 39, 0.25);
    border-radius: 16px;
    cursor: pointer;
    transition: all 0.2s ease;
    color: #111827;
    font-size: 15px;
    font-weight: 600;
}

.nb-mini-form-booking-form-steps .nb-mini-form__select-trigger:hover {
    border-color: rgba(17, 24, 39, 0.45);
    background: #f9fafb;
}

.nb-mini-form-booking-form-steps .nb-mini-form__select-trigger[aria-expanded="true"] {
    border-color: #000000;
    box-shadow: 0 0 0 4px rgba(0, 0, 0, 0.05);
}

.nb-mini-form-booking-form-steps .nb-mini-form__trigger-flag {
    font-size: 20px;
    margin-right: 8px;
    line-height: 1;
}

.nb-mini-form-booking-form-steps .nb-mini-form__trigger-flag img.emoji,
.nb-mini-form-booking-form-steps .nb-mini-form__option-flag img.emoji {
    width: 18px;
    height: 18px;
    vertical-align: middle;
}

.nb-mini-form-booking-form-steps .nb-mini-form__trigger-dial {
    margin-right: auto;
    line-height: 1;
}

.nb-mini-form-booking-form-steps .nb-mini-form__trigger-arrow {
    color: rgba(17, 24, 39, 0.5);
    transition: transform 0.2s ease;
}

.nb-mini-form-booking-form-steps .nb-mini-form__select-trigger[aria-expanded="true"] .nb-mini-form__trigger-arrow {
    transform: rotate(180deg);
}

.nb-mini-form-booking-form-steps .nb-mini-form__select-dropdown {
    position: absolute;
    top: calc(100% + 8px);
    left: 0;
    width: 280px;
    max-height: 300px;
    overflow-y: auto;
    background: #ffffff;
    border: 1px solid rgba(17, 24, 39, 0.1);
    border-radius: 16px;
    box-shadow: 0 10px 25px -5px rgba(0, 0, 0, 0.1), 0 8px 10px -6px rgba(0, 0, 0, 0.1);
    z-index: 2147483647;
    padding: 6px;
    opacity: 0;
    visibility: hidden;
    transform: translateY(-10px);
    transition: all 0.2s cubic-bezier(0.16, 1, 0.3, 1);
}

.nb-mini-form-booking-form-steps .nb-mini-form__custom-select.is-open .nb-mini-form__select-dropdown {
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
}

.nb-mini-form-booking-form-steps .nb-mini-form__select-option {
    display: flex;
    align-items: center;
    padding: 10px 12px;
    border-radius: 10px;
    cursor: pointer;
    transition: background 0.15s ease;
    font-size: 14px;
    color: #374151;
}

.nb-mini-form-booking-form-steps .nb-mini-form__select-option:hover,
.nb-mini-form-booking-form-steps .nb-mini-form__select-option.is-selected {
    background: #f3f4f6;
    color: #111827;
}

.nb-mini-form-booking-form-steps .nb-mini-form__option-flag {
    font-size: 18px;
    margin-right: 10px;
    line-height: 1;
}

.nb-mini-form-booking-form-steps .nb-mini-form__option-label {
    font-weight: 500;
}

/* Scrollbar styling for dropdown */
.nb-mini-form-booking-form-steps .nb-mini-form__select-dropdown::-webkit-scrollbar {
    width: 6px;
}
.nb-mini-form-booking-form-steps .nb-mini-form__select-dropdown::-webkit-scrollbar-track {
    background: transparent;
}
.nb-mini-form-booking-form-steps .nb-mini-form__select-dropdown::-webkit-scrollbar-thumb {
    background-color: rgba(0, 0, 0, 0.1);
    border-radius: 3px;
}

.nb-mini-form-booking-form-steps .nb-mini-form__country:focus,
#nb-mini-form-booking-form-steps .nb-mini-form__country:focus,
.nb-mini-form-booking-form-steps .nb-mini-form__country-wrap:focus-within,
#nb-mini-form-booking-form-steps .nb-mini-form__country-wrap:focus-within {
    border-color: rgba(0, 0, 0, 0.85);
    box-shadow: 0 0 0 4px rgba(0, 0, 0, 0.08);
    outline: none;
}

.nb-mini-form-booking-form-steps .nb-mini-form__phone-input,
#nb-mini-form-booking-form-steps .nb-mini-form__phone-input {
    flex: 1 1 auto;
    width: 100%;
    min-width: 0;
    margin: 0 !important;
}

.nb-mini-form-booking-form-steps .nb-mini-form__help,
#nb-mini-form-booking-form-steps .nb-mini-form__help {
    margin-top: 8px;
    font-size: 13px;
    line-height: 1.35;
    color: #b91c1c;
}

.nb-mini-form-booking-form-steps .nb-mini-form--error .elementor-field.elementor-field-textual,
#nb-mini-form-booking-form-steps .nb-mini-form--error .elementor-field.elementor-field-textual {
    border-color: rgba(185, 28, 28, 0.65);
}

.nb-mini-form-booking-form-steps .nb-mini-form--error .elementor-field.elementor-field-textual:focus,
#nb-mini-form-booking-form-steps .nb-mini-form--error .elementor-field.elementor-field-textual:focus {
    border-color: rgba(185, 28, 28, 0.85);
    box-shadow: 0 0 0 4px rgba(185, 28, 28, 0.14);
}

.nb-mini-form-booking-form-steps .nb-mini-form__kicker,
#nb-mini-form-booking-form-steps .nb-mini-form__kicker {
    margin: 0 0 12px;
    font-size: 13px;
    font-weight: 700;
    text-transform: none;
    letter-spacing: 0.05em;
    color: var(--nb-mini-form-muted);
}

.nb-mini-form-booking-form-steps .nb-mini-form__title,
#nb-mini-form-booking-form-steps .nb-mini-form__title {
    margin: 0 0 12px;
    font-size: 36px;
    font-weight: 800;
    letter-spacing: -0.02em;
    line-height: 1.1;
    color: #000000;
}

.nb-mini-form-booking-form-steps .nb-mini-form__subtitle,
#nb-mini-form-booking-form-steps .nb-mini-form__subtitle {
    margin: 0 0 32px;
    font-size: 18px;
    line-height: 1.5;
    max-width: 600px;
    color: var(--nb-mini-form-muted);
}

.nb-mini-form-booking-form-steps .e-form__buttons,
#nb-mini-form-booking-form-steps .e-form__buttons {
    margin-top: 18px;
    position: relative;
    z-index: 1;
}

.nb-mini-form-booking-form-steps .nb-mini-form__iframe-wrap,
#nb-mini-form-booking-form-steps .nb-mini-form__iframe-wrap {
    border-radius: 24px;
    overflow: hidden;
    border: 1px solid rgba(0, 0, 0, 0.06);
    background: #fcfcfc;
    box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.02);
    scroll-margin-top: 120px;
}

.nb-mini-form-booking-form-steps .nb-mini-form__iframe,
#nb-mini-form-booking-form-steps .nb-mini-form__iframe {
    display: block;
    width: 100%;
}

/* When Bookings is open, avoid horizontal scroll from full-bleed sections */
html.nb-mini-form--bookings-open,
body.nb-mini-form--bookings-open {
    overflow-x: hidden;
}

/* When the Bookings step is shown, widen the card so Microsoft Bookings renders desktop layout */
.nb-mini-form-booking-form-steps.nb-mini-form--show-bookings,
#nb-mini-form-booking-form-steps.nb-mini-form--show-bookings {
    --nb-mini-form-card-max: 100%;
    --nb-mini-form-card-pad: 0px;
    --nb-bookings-iframe-offset: 320px;
    padding-left: 0;
    padding-right: 0;
}

.nb-mini-form-booking-form-steps.nb-mini-form--show-bookings form.elementor-form,
#nb-mini-form-booking-form-steps.nb-mini-form--show-bookings form.elementor-form {
    max-width: 100%;
    padding: 0;
    border-left: 0;
    border-right: 0;
    border-radius: 0;
    box-shadow: none;
}

.nb-mini-form-booking-form-steps.nb-mini-form--show-bookings .elementor-field-group-step_2_booking,
#nb-mini-form-booking-form-steps.nb-mini-form--show-bookings .elementor-field-group-step_2_booking {
    padding-top: 28px;
}

.nb-mini-form-booking-form-steps.nb-mini-form--show-bookings .elementor-field-group-step_2_booking .nb-mini-form__header,
#nb-mini-form-booking-form-steps.nb-mini-form--show-bookings .elementor-field-group-step_2_booking .nb-mini-form__header {
    max-width: 1120px;
    margin-left: auto;
    margin-right: auto;
    padding-left: 16px;
    padding-right: 16px;
}

.nb-mini-form-booking-form-steps.nb-mini-form--show-bookings #bookiframe,
#nb-mini-form-booking-form-steps.nb-mini-form--show-bookings #bookiframe,
.nb-mini-form-booking-form-steps.nb-mini-form--show-bookings .nb-mini-form__iframe,
#nb-mini-form-booking-form-steps.nb-mini-form--show-bookings .nb-mini-form__iframe {
    width: 100%;
    min-height: 680px;
    height: calc(
        100vh - var(--nb-bookings-iframe-offset) -
        var(--wp-admin--admin-bar--height, 0px)
    );
    height: calc(
        100svh - var(--nb-bookings-iframe-offset) -
        var(--wp-admin--admin-bar--height, 0px)
    );
    max-height: 1500px;
}

.nb-mini-form-booking-form-steps.nb-mini-form--show-bookings .nb-mini-form__iframe-wrap,
#nb-mini-form-booking-form-steps.nb-mini-form--show-bookings .nb-mini-form__iframe-wrap {
    position: relative;
    left: 50%;
    right: 50%;
    width: 100vw;
    margin-left: -50vw;
    margin-right: -50vw;
    border-radius: 0;
    border-left: 0;
    border-right: 0;
    background: #ffffff;
}

.nb-mini-form-booking-form-steps.nb-mini-form--show-bookings .nb-mini-form__fallback,
#nb-mini-form-booking-form-steps.nb-mini-form--show-bookings .nb-mini-form__fallback {
    max-width: 1120px;
    margin-left: auto;
    margin-right: auto;
    padding-left: 16px;
    padding-right: 16px;
    padding-bottom: 28px;
}

/* =============================================
   MINI FORM - HIDE ELEMENTOR SUCCESS MESSAGE
   Elementor shows this after the lead form submits, not after the
   Microsoft Bookings appointment is confirmed (iframe).
   ============================================= */
.nb-mini-form-booking-form-steps .elementor-message-success,
#nb-mini-form-booking-form-steps .elementor-message-success {
    display: none !important;
}

.nb-mini-form-booking-form-steps.nb-mini-form--show-bookings .e-form__buttons,
#nb-mini-form-booking-form-steps.nb-mini-form--show-bookings .e-form__buttons {
    max-width: 1120px;
    margin-left: auto;
    margin-right: auto;
    padding-left: 16px;
    padding-right: 16px;
    padding-bottom: 32px;
}

@media screen and (max-width: 767px) {
    .nb-mini-form-booking-form-steps.nb-mini-form--show-bookings,
    #nb-mini-form-booking-form-steps.nb-mini-form--show-bookings {
        --nb-bookings-iframe-offset: 280px;
    }

    .nb-mini-form-booking-form-steps.nb-mini-form--show-bookings #bookiframe,
    #nb-mini-form-booking-form-steps.nb-mini-form--show-bookings #bookiframe,
    .nb-mini-form-booking-form-steps.nb-mini-form--show-bookings .nb-mini-form__iframe,
    #nb-mini-form-booking-form-steps.nb-mini-form--show-bookings .nb-mini-form__iframe {
        min-height: 560px;
        max-height: 1100px;
    }

    .nb-mini-form-booking-form-steps.nb-mini-form--show-bookings .nb-mini-form__iframe-wrap,
    #nb-mini-form-booking-form-steps.nb-mini-form--show-bookings .nb-mini-form__iframe-wrap {
        border-radius: 0;
    }
}

.nb-mini-form-booking-form-steps .nb-mini-form__fallback,
#nb-mini-form-booking-form-steps .nb-mini-form__fallback {
    margin: 12px 0 0;
    font-size: 14px;
    color: var(--nb-mini-form-muted);
}

/* Option A: hide Bookings embed until form submitted */
.nb-mini-form-booking-form-steps:not(.nb-mini-form--show-bookings) .nb-mini-form__bookings,
#nb-mini-form-booking-form-steps:not(.nb-mini-form--show-bookings) .nb-mini-form__bookings,
.nb-mini-form-booking-form-steps:not(.nb-mini-form--show-bookings) #bookiframe,
#nb-mini-form-booking-form-steps:not(.nb-mini-form--show-bookings) #bookiframe,
.nb-mini-form-booking-form-steps:not(.nb-mini-form--show-bookings) .nb-mini-form__iframe-wrap,
#nb-mini-form-booking-form-steps:not(.nb-mini-form--show-bookings) .nb-mini-form__iframe-wrap,
.nb-mini-form-booking-form-steps:not(.nb-mini-form--show-bookings) .nb-mini-form__fallback,
#nb-mini-form-booking-form-steps:not(.nb-mini-form--show-bookings) .nb-mini-form__fallback {
    display: none !important;
}

/* Microsoft Bookings requires the parent page to be HTTPS (CSP: frame-ancestors https:) */
.nb-mini-form-booking-form-steps.nb-mini-form--bookings-https-required #bookiframe,
#nb-mini-form-booking-form-steps.nb-mini-form--bookings-https-required #bookiframe,
.nb-mini-form-booking-form-steps.nb-mini-form--bookings-https-required .nb-mini-form__iframe-wrap,
#nb-mini-form-booking-form-steps.nb-mini-form--bookings-https-required .nb-mini-form__iframe-wrap {
    display: none !important;
}

.nb-mini-form-booking-form-steps .nb-mini-form__bookings-https-notice,
#nb-mini-form-booking-form-steps .nb-mini-form__bookings-https-notice {
    display: none;
    margin: 18px 0 0;
    padding: 14px 16px;
    border-radius: 16px;
    border: 1px solid rgba(17, 24, 39, 0.15);
    background: rgba(255, 247, 237, 0.9);
    color: #111827;
    font-size: 14px;
    line-height: 1.35;
}

.nb-mini-form-booking-form-steps .nb-mini-form__bookings-https-notice a,
#nb-mini-form-booking-form-steps .nb-mini-form__bookings-https-notice a {
    color: #111827;
    text-decoration: underline;
    font-weight: 600;
}

/* In Elementor editor, keep embed visible for editing */
.elementor-editor-active .nb-mini-form-booking-form-steps .nb-mini-form__bookings,
.elementor-editor-active #nb-mini-form-booking-form-steps .nb-mini-form__bookings,
.elementor-editor-active .nb-mini-form-booking-form-steps #bookiframe,
.elementor-editor-active #nb-mini-form-booking-form-steps #bookiframe,
.elementor-editor-active .nb-mini-form-booking-form-steps .nb-mini-form__iframe-wrap,
.elementor-editor-active #nb-mini-form-booking-form-steps .nb-mini-form__iframe-wrap,
.elementor-editor-active .nb-mini-form-booking-form-steps .nb-mini-form__fallback,
.elementor-editor-active #nb-mini-form-booking-form-steps .nb-mini-form__fallback {
    display: revert !important;
}

/* After submit success, hide form fields to prevent duplicates */
.nb-mini-form-booking-form-steps form.elementor-form.nb-mini-form--submitted .elementor-form-fields-wrapper,
#nb-mini-form-booking-form-steps form.elementor-form.nb-mini-form--submitted .elementor-form-fields-wrapper {
    display: none;
}

.nb-mini-form-booking-form-steps form.elementor-form.nb-mini-form--submitted .e-form__buttons,
#nb-mini-form-booking-form-steps form.elementor-form.nb-mini-form--submitted .e-form__buttons {
    display: none;
}

/* After submit success (inline Bookings iframe), keep fields visible but hide buttons to prevent duplicates */
.nb-mini-form-booking-form-steps form.elementor-form.nb-mini-form--submitted-inline .e-form__buttons,
#nb-mini-form-booking-form-steps form.elementor-form.nb-mini-form--submitted-inline .e-form__buttons {
    display: none;
}

@media screen and (max-width: 767px) {
    .nb-mini-form-booking-form-steps,
    #nb-mini-form-booking-form-steps {
        --nb-mini-form-card-pad: 32px 24px;
        --nb-mini-form-card-radius: 24px;
        padding-left: 12px;
        padding-right: 12px;
    }

    .nb-mini-form-booking-form-steps .nb-mini-form__title,
    #nb-mini-form-booking-form-steps .nb-mini-form__title {
        font-size: 28px;
    }

    .nb-mini-form-booking-form-steps .nb-mini-form__subtitle,
    #nb-mini-form-booking-form-steps .nb-mini-form__subtitle {
        font-size: 16px;
    }

    .nb-mini-form-booking-form-steps .nb-mini-form__select-dropdown {
        width: 240px;
    }
}

.nb-mini-form-booking-form-steps .elementor-field-group-name,
#nb-mini-form-booking-form-steps .elementor-field-group-name {
    display: none !important;
}

.nb-mini-form-booking-form-steps .elementor-widget-form .e-form__buttons__wrapper__button,
.nb-mini-form-booking-form-steps .e-form__buttons__wrapper__button,
#nb-mini-form-booking-form-steps .e-form__buttons__wrapper__button {
    min-height: 52px;
    border-radius: 16px;
    padding: 14px 24px;
    font-size: 16px;
    font-weight: 600;
    text-transform: lowercase;
    transition: all 0.3s ease;
    border-width: 3px;
    border-style: solid;
}

.nb-mini-form-booking-form-steps .elementor-widget-form .e-form__buttons__wrapper__button-next,
.nb-mini-form-booking-form-steps .e-form__buttons__wrapper__button-next,
#nb-mini-form-booking-form-steps .e-form__buttons__wrapper__button-next,
.nb-mini-form-booking-form-steps .elementor-widget-form .e-form__buttons__wrapper__button[type="submit"],
.nb-mini-form-booking-form-steps .e-form__buttons__wrapper__button[type="submit"],
#nb-mini-form-booking-form-steps .e-form__buttons__wrapper__button[type="submit"] {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    cursor: pointer !important;
    background-color: #000000 !important;
    background: #000000 !important;
    background-image: none !important;
    border-color: #000000 !important;
    color: #FFFFFF !important;
}

.nb-mini-form-booking-form-steps .elementor-widget-form .e-form__buttons__wrapper__button-next:hover,
.nb-mini-form-booking-form-steps .elementor-widget-form .e-form__buttons__wrapper__button-next:focus,
.nb-mini-form-booking-form-steps .e-form__buttons__wrapper__button-next:hover,
.nb-mini-form-booking-form-steps .e-form__buttons__wrapper__button-next:focus,
#nb-mini-form-booking-form-steps .e-form__buttons__wrapper__button-next:hover,
#nb-mini-form-booking-form-steps .e-form__buttons__wrapper__button-next:focus,
.nb-mini-form-booking-form-steps .elementor-widget-form .e-form__buttons__wrapper__button[type="submit"]:hover,
.nb-mini-form-booking-form-steps .elementor-widget-form .e-form__buttons__wrapper__button[type="submit"]:focus,
.nb-mini-form-booking-form-steps .e-form__buttons__wrapper__button[type="submit"]:hover,
.nb-mini-form-booking-form-steps .e-form__buttons__wrapper__button[type="submit"]:focus,
#nb-mini-form-booking-form-steps .e-form__buttons__wrapper__button[type="submit"]:hover,
#nb-mini-form-booking-form-steps .e-form__buttons__wrapper__button[type="submit"]:focus {
    background-color: #111111 !important;
    background: #111111 !important;
    border-color: #111111 !important;
    color: #FFFFFF !important;
}

.nb-mini-form-booking-form-steps .elementor-widget-form .e-form__buttons__wrapper__button-next:disabled,
.nb-mini-form-booking-form-steps .elementor-widget-form .e-form__buttons__wrapper__button-next[aria-disabled="true"],
.nb-mini-form-booking-form-steps .elementor-widget-form .e-form__buttons__wrapper__button-next.elementor-disabled,
.nb-mini-form-booking-form-steps .e-form__buttons__wrapper__button-next:disabled,
.nb-mini-form-booking-form-steps .e-form__buttons__wrapper__button-next[aria-disabled="true"],
.nb-mini-form-booking-form-steps .e-form__buttons__wrapper__button-next.elementor-disabled,
#nb-mini-form-booking-form-steps .e-form__buttons__wrapper__button-next:disabled,
#nb-mini-form-booking-form-steps .e-form__buttons__wrapper__button-next[aria-disabled="true"],
#nb-mini-form-booking-form-steps .e-form__buttons__wrapper__button-next.elementor-disabled,
.nb-mini-form-booking-form-steps .elementor-widget-form .e-form__buttons__wrapper__button[type="submit"]:disabled,
.nb-mini-form-booking-form-steps .elementor-widget-form .e-form__buttons__wrapper__button[type="submit"][aria-disabled="true"],
.nb-mini-form-booking-form-steps .elementor-widget-form .e-form__buttons__wrapper__button[type="submit"].elementor-disabled,
.nb-mini-form-booking-form-steps .e-form__buttons__wrapper__button[type="submit"]:disabled,
.nb-mini-form-booking-form-steps .e-form__buttons__wrapper__button[type="submit"][aria-disabled="true"],
.nb-mini-form-booking-form-steps .e-form__buttons__wrapper__button[type="submit"].elementor-disabled,
#nb-mini-form-booking-form-steps .e-form__buttons__wrapper__button[type="submit"]:disabled,
#nb-mini-form-booking-form-steps .e-form__buttons__wrapper__button[type="submit"][aria-disabled="true"],
#nb-mini-form-booking-form-steps .e-form__buttons__wrapper__button[type="submit"].elementor-disabled {
    background-color: #000000 !important;
    background: #000000 !important;
    background-image: none !important;
    border-color: #000000 !important;
    color: rgba(255, 255, 255, 0.75) !important;
    cursor: not-allowed !important;
    opacity: 1 !important;
}

.nb-mini-form-booking-form-steps .elementor-widget-form .e-form__buttons__wrapper__button-previous {
    background: transparent !important;
    border-color: rgba(0, 0, 0, 0.35) !important;
    color: #000000 !important;
}

.nb-mini-form-booking-form-steps .elementor-widget-form .e-form__buttons__wrapper__button-previous:hover,
.nb-mini-form-booking-form-steps .elementor-widget-form .e-form__buttons__wrapper__button-previous:focus {
    border-color: rgba(0, 0, 0, 0.7) !important;
}

/* =============================================
   SUBPAGE HERO - Desktop height consistency
   ============================================= */
@media (min-width: 1025px) {
    #subpage-hero {
        min-height: calc(100vh - 80px) !important;
        min-height: min(700px, calc(100vh - 80px)) !important;
        min-height: min(700px, calc(100dvh - 80px)) !important;
        height: auto !important;
    }
}

/* =============================================
   TYPOGRAPHY - Bold support in Elementor text widgets
   The Fonts Plugin loads ProductSans weights as separate font families
   (e.g. ProductSans-Regular, ProductSans-Bold), so `font-weight` alone cannot
   switch to the real bold face. This adds the missing 700 face to the Regular
   family and forces <strong>/<b> inside text editors to use 700.
   ============================================= */
@font-face {
    font-family: 'ProductSans-Regular';
    font-style: normal;
    font-weight: 700;
    font-display: swap;
    src: url('/wp-content/uploads/2024/07/ProductSans-Bold.ttf') format('truetype');
}

.elementor-widget-text-editor strong,
.elementor-widget-text-editor b {
    font-weight: 700 !important;
}

.nb-normal-case,
.nb-normal-case * {
    text-transform: none !important;
}

/* =============================================
   OFFER CAROUSEL - Fix button overlap
   ============================================= */

/* IMPORTANT:
   Do NOT add global padding to `.nb-offer-card`.
   `.nb-offer-card` is also used for image-only slides (e.g. Career people carousel),
   and global padding will squeeze images into thin vertical strips.
   If any carousel needs extra “safe space” for nav buttons, add it on the carousel
   wrapper (or scope to a specific section) instead. */

/* On mobile, arrows are enabled by default.
   If you want to hide arrows for ONE specific carousel/section only, add
   `nb-hide-nav-mobile` to that section container (or the `.nb-offer-carousel`
   container) in Elementor. */
@media screen and (max-width: 767px) {
    .nb-hide-nav-mobile .nb-offer-carousel-wrapper .nb-carousel-nav,
    .nb-offer-carousel.nb-hide-nav-mobile ~ .nb-carousel-nav,
    .nb-offer-carousel-wrapper.nb-hide-nav-mobile .nb-carousel-nav {
        display: none !important;
    }
}


/* Mobile - Peeking Cards UX (<480px) - HIGH SPECIFICITY to override nb-offer-carousel.css */
@media screen and (max-width: 480px) {
    /* Match specificity of nb-offer-carousel.css selectors */
    .nb-offer-carousel.e-con:not([class*="e-grid"]) > .nb-offer-card,
    .nb-offer-carousel.e-con:not([class*="e-grid"]) > .nb-offer-card.e-con-full,
    .nb-offer-carousel.e-con:not([class*="e-grid"]) > .e-con,
    .nb-offer-carousel.e-con:not([class*="e-grid"]) > .e-con.e-con-full,
    .nb-offer-carousel.e-con:not([class*="e-grid"]) > .e-con-inner > .e-con,
    .nb-offer-carousel.e-con:not([class*="e-grid"]) > .e-con-inner > .e-con.e-con-full,
    .nb-offer-carousel.e-con:not([class*="e-grid"]) > .e-con-inner > .nb-offer-card,
    .nb-offer-carousel.e-con:not([class*="e-grid"]) > .e-con-inner > .nb-offer-card.e-con-full,
    .nb-offer-carousel:not([class*="e-grid"]) > .nb-offer-card,
    .nb-offer-carousel:not([class*="e-grid"]) > .nb-offer-card.e-con-full {
        flex: 0 0 85% !important;
        min-width: 85% !important;
        max-width: 85% !important;
        width: 85% !important;
        scroll-snap-align: center !important;
    }
}

/* Mobile - Minimal Scrollbar Indicator - HIGH SPECIFICITY */
@media screen and (max-width: 767px) {
    .nb-offer-carousel.e-con:not([class*="e-grid"]),
    .nb-offer-carousel:not([class*="e-grid"]),
    .nb-offer-carousel.e-con:not([class*="e-grid"]) > .e-con-inner,
    .nb-offer-carousel:not([class*="e-grid"]) > .e-con-inner {
        scrollbar-width: thin !important;
        scrollbar-color: rgba(0,0,0,0.25) transparent !important;
        padding-bottom: 12px !important;
    }
    
    .nb-offer-carousel.e-con:not([class*="e-grid"])::-webkit-scrollbar,
    .nb-offer-carousel:not([class*="e-grid"])::-webkit-scrollbar,
    .nb-offer-carousel.e-con:not([class*="e-grid"]) > .e-con-inner::-webkit-scrollbar,
    .nb-offer-carousel:not([class*="e-grid"]) > .e-con-inner::-webkit-scrollbar {
        display: block !important;
        height: 4px !important;
    }
    
    .nb-offer-carousel.e-con:not([class*="e-grid"])::-webkit-scrollbar-track,
    .nb-offer-carousel:not([class*="e-grid"])::-webkit-scrollbar-track,
    .nb-offer-carousel.e-con:not([class*="e-grid"]) > .e-con-inner::-webkit-scrollbar-track,
    .nb-offer-carousel:not([class*="e-grid"]) > .e-con-inner::-webkit-scrollbar-track {
        background: rgba(0,0,0,0.05) !important;
        border-radius: 4px !important;
    }
    
    .nb-offer-carousel.e-con:not([class*="e-grid"])::-webkit-scrollbar-thumb,
    .nb-offer-carousel:not([class*="e-grid"])::-webkit-scrollbar-thumb,
    .nb-offer-carousel.e-con:not([class*="e-grid"]) > .e-con-inner::-webkit-scrollbar-thumb,
    .nb-offer-carousel:not([class*="e-grid"]) > .e-con-inner::-webkit-scrollbar-thumb {
        background-color: rgba(0,0,0,0.25) !important;
        border-radius: 4px !important;
    }
}

/* =============================================
   SMASH BALLOON INSTAGRAM FEED - IMAGE HEIGHT
   Prevent overly tall images on tablet/iPad
   ============================================= */
@media (max-width: 1024px) and (min-width: 768px) {
    /* Constrain Instagram feed image height on tablets */
    #sb_instagram img,
    .sb_instagram_header img,
    .sbi_photo_wrap img,
    [id*="sb_instagram"] img,
    [class*="sb-instagram"] img {
        max-height: 45vh;
        object-fit: cover;
    }
}
