/* 
Theme Name: Hello Elementor Child
Theme URI: https://github.com/elementor/hello-theme-child/
Description: Hello Elementor Child is a child theme of Hello Elementor, created by Elementor team
Author: Elementor Team
Author URI: https://elementor.com/
Template: hello-elementor
Version: 2.0.0
Text Domain: hello-elementor-child
License: GNU General Public License v3 or later.
License URI: https://www.gnu.org/licenses/gpl-3.0.html
Tags: flexible-header, custom-colors, custom-menu, custom-logo, editor-style, featured-images, rtl-language-support, threaded-comments, translation-ready
*/

/* Add your custom styles here */



/* ========================================
   MIGRATED FROM WORDPRESS ADDITIONAL CSS
   Date: 18 March 2026
======================================== */

/* -- Prevents Fade in with Litespeed Cache -- */
.hero-video-fix .elementor-background-video-container video {
    opacity: 1 !important;
    animation: none !important;
}

/* -- Hero Video Fix -- */
.hero-video-fix {
    position: relative;
    overflow: hidden;
}

/* Overlay only on video layer */
.hero-video-fix .elementor-background-video-container::after {
    content: "";
    position: absolute;
    inset: 0;
    background: rgba(0,0,0,0.60);
    pointer-events: none;
}

/* ---------- READ MORE ---------- */
/* hide checkbox */
.readmore-wrap input {
    display: none;
}

/* desktop + tablet = show all text */
.readmore-hidden {
    max-height: none;
    overflow: visible;
}

/* hide button on desktop + tablet */
.readmore-button {
    display: none;
    cursor: pointer;
    color: #0073e6;
    font-weight: 600;
}

/* hide "Read less" by default */
.readmore-button .less-text {
    display: none;
}

/* ---------- READ MORE MOBILE ONLY ---------- */
@media (max-width: 767px) {
    .readmore-hidden {
        max-height: 0;
        overflow: hidden;
        transition: max-height 0.4s ease;
    }
    .readmore-wrap input:checked ~ .readmore-hidden {
        max-height: 5000px;
    }
    .readmore-button {
        display: inline-block;
        margin-top: 10px;
    }
    /* text swap */
    .readmore-wrap input:checked ~ .readmore-button .more-text {
        display: none;
    }
    .readmore-wrap input:checked ~ .readmore-button .less-text {
        display: inline;
    }
}

/* Zoom Image in Container on Hover */
.zoom-bg {
    position: relative;
    overflow: hidden;
}

.zoom-bg::before {
    content: "";
    position: absolute;
    inset: 0;
    background-image: inherit;
    background-size: cover;
    background-position: center;
    transition: transform 0.5s ease;
    z-index: 0;
}

.zoom-bg:hover::before {
    transform: scale(1.1);
}

/* Keeps inner content above the background */
.zoom-bg > * {
    position: relative;
    z-index: 1;
}

/* Increases Map Height */
.acf-map {
    height: 84vh;
    min-height: 320px;
}

@media (max-width: 767px) {
    .acf-map {
        height: 60vh;
    }
}

/* Hides Google reCaptcha */
.grecaptcha-badge {
    visibility: hidden;
}

/* DESKTOP: never show back button */
@media (min-width: 1025px) {
    .mobile-back {
        display: none !important;
    }
}

/* Hide Nested Submeu Triangle DESKTOP ONLY START*/
/* DESKTOP ONLY */
@media (min-width: 1025px) {
    .elementor-nav-menu--main > .menu-item-has-children > .sub-menu::before {
        content: "";
        position: absolute;
        top: -10px;
        left: 50%;
        transform: translateX(-50%);
        width: 0;
        height: 0;
        border-left: 10px solid transparent;
        border-right: 10px solid transparent;
        border-bottom: 10px solid #ffffff;
        z-index: 10;
        filter: drop-shadow(0 -2px 2px rgba(0,0,0,0.08));
    }
}
/* Hide Nested Submeu Triangle DESKTOP ONLY END*/

/*Keeps page within screen START*/
html, body {
    overflow-x: hidden;
    width: 100%;
}
/*Keeps page within screen END*/

.list-lowercase-with-bracket {
    list-style-type: none;
    margin: 1rem 0 1rem 3rem;
    padding: 0;
    counter-reset: list;
    font-style: normal;
}

.list-lowercase-with-bracket li span {
    display: block;
}

.list-lowercase-with-bracket > li {
    counter-increment: list;
    position: relative;
    padding-left: 1rem;
}

.list-lowercase-with-bracket > li:before {
    content: "(" counter(list, lower-alpha) ")";
    position: absolute;
    left: -1rem;
}

/*Table stucture for Post*/
table.center-posttable {
    margin-left: auto; 
    margin-right: auto;
    width: 50%;
}

/* container */
.responsive-two-column-grid {
    display: block;
}

/* columns */
.responsive-two-column-grid > * {
    padding: 1rem;
}

/* tablet breakpoint */
@media (min-width: 768px) {
    .responsive-two-column-grid {
        display: grid;
        grid-template-columns: 1fr 1fr;
    }
}

h2.wp-block-heading {
    font-family: 'Tomorrow' !important;
}

h3.wp-block-heading,
h4.wp-block-heading,
h5.wp-block-heading,
h6.wp-block-heading {
    font-family: 'Open Sans' !important;
}

h2 {
    color: inherit;
    font-family: 'Tomorrow' !important;
}

h3, h4, h5, h6 {
    color: inherit;
    font-family: 'Open Sans' !important;
}

.accordionjs .acc_section {
    margin-top: -30px !important;
    margin-bottom: -30px !important;
}

.elementor-12 .elementor-element.elementor-element-5e1c62db {
    --z-index: 999 !important;
}

/* Facilities icon image Start*/
.house-facilities {
    list-style-type: none;
    padding: 0;
    margin: 0;
    vertical-align: middle;
}

.house-facilities img {
    vertical-align: middle;
}

/* Focus State is enabled - Colour around link boxes for Accessability */
a:focus, button:focus, input:focus, select:focus {
    outline: 3px solid #005fcc !important;
    outline-offset: 2px;
}

/* START Add disc under arrow for image and testimonial sliders for Accessability */
/* Global Testimonial Carousel Disc Buttons */
.elementor-swiper-button-prev,
.elementor-swiper-button-next,
.swiper-button-prev,
.swiper-button-next {
    background-color: rgba(246, 209, 0, 0.6) !important; 
    border-radius: 50% !important;        
    width: 45px !important;                
    height: 45px !important;               
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    transition: all 0.3s ease-in-out !important;
}

/* Hover effect */
.elementor-swiper-button-prev:hover,
.elementor-swiper-button-next:hover {
    background-color: rgba(246, 209, 0, 0.6) !important; 
}
/* END Add disc under arrow for image and testimonial sliders for Accessability */

/* 1. Force the active text color in Menu for ALL active items */
.elementor-nav-menu .current-menu-ancestor > a.elementor-item,
.elementor-nav-menu .current-menu-item > a.elementor-item,
.elementor-nav-menu .elementor-item-active {
    color: #EEB508 !important; 
}

/* 2. Completely kill the glitchy Elementor ghost line on ALL active items */
.elementor-nav-menu .current-menu-ancestor > a.elementor-item::before,
.elementor-nav-menu .current-menu-ancestor > a.elementor-item::after,
.elementor-nav-menu .current-menu-item > a.elementor-item::before,
.elementor-nav-menu .current-menu-item > a.elementor-item::after,
.elementor-nav-menu .elementor-item-active::before,
.elementor-nav-menu .elementor-item-active::after {
    display: none !important; 
    content: none !important;
}

/* 3. Draw a stable line that physically cannot detach */
.elementor-nav-menu .current-menu-ancestor > a.elementor-item,
.elementor-nav-menu .current-menu-item > a.elementor-item,
.elementor-nav-menu .elementor-item-active {
    box-shadow: inset 0px -3px 0px 0px #EEB508 !important; 
}

/* 4. OVERRIDE: Make active SUB-MENU items black with no underline */
.elementor-nav-menu .sub-menu .current-menu-item > a.elementor-sub-item,
.elementor-nav-menu .sub-menu a.elementor-item-active {
    color: #000000 !important;
    box-shadow: none !important;
}

/* ==========================================================================
   Rank Math Breadcrumb Banner Styles (Child Theme)
   ========================================================================== */

/* 1. Base wrapper */
nav.rank-math-breadcrumb p {
    font-size: 14px !important;
    line-height: 1.5 !important;
    font-family: 'Open Sans', sans-serif;
    color: #666666 !important; 
    margin: 0 !important;
    padding: 0 !important;
}

/* 2. Hyperlinks */
nav.rank-math-breadcrumb p a {
    color: #436BE5 !important; 
    text-decoration: none !important;
    font-weight: 400 !important;
    transition: color 0.2s ease-in-out;
}

/* 3. Link Hover */
nav.rank-math-breadcrumb p a:hover {
    color: #436BE5 !important; 
    text-decoration: underline !important;
}

/* 4. Separator */
nav.rank-math-breadcrumb p .separator {
    color: #1A2930 !important; 
    padding: 0 8px !important; 
}

/* 5. Current Page */
nav.rank-math-breadcrumb p .last {
    color: #1A2930 !important; 
    font-weight: 400 !important;
}

/* ==========================================================================
   Flip Box Adjustment for Aria and Accessability
   ========================================================================== */

/* Force Flip Box to open when focused via keyboard */
.elementor-flip-box:focus-within .elementor-flip-box__layer--front {
    transform: rotateY(-180deg) !important;
}
.elementor-flip-box:focus-within .elementor-flip-box__layer--back {
    transform: rotateY(0deg) !important;
    opacity: 1 !important;
    visibility: visible !important;
}

/* IF USING VERTICAL FLIP (Up/Down), use these rules instead: */
.elementor-flip-box.elementor-flip-box--vertical:focus-within .elementor-flip-box__layer--front {
    transform: rotateX(-180deg) !important;
}
.elementor-flip-box.elementor-flip-box--vertical:focus-within .elementor-flip-box__layer--back {
    transform: rotateX(0deg) !important;
    opacity: 1 !important;
    visibility: visible !important;
}

/* For Fade/Slide/Zoom effects */
.elementor-flip-box:focus-within .elementor-flip-box__layer--back {
    opacity: 1 !important;
    visibility: visible !important;
}

/* ==========================================================================
   BULLETPROOF MOBILE MENU FIX (Left Aligned + Accordion Submenus)
   ========================================================================== */
@media (max-width: 767px) {
    /* 1. Force the main list to act as a standard block & kill bullet points */
    .mobile-stack-fix .elementor-widget-container ul:not(.sub-menu),
    .mobile-stack-fix .widget_nav_menu ul:not(.sub-menu) {
        display: block !important;
        width: 100% !important;
        padding: 0 !important;
        margin: 0 !important;
        list-style: none !important;
    }
    
    /* 2. Force the top-level list items to act as LEFT-ALIGNED flex rows */
    .mobile-stack-fix .elementor-widget-container ul:not(.sub-menu) > li,
    .mobile-stack-fix .widget_nav_menu ul:not(.sub-menu) > li {
        display: flex !important; 
        flex-wrap: wrap !important;
        justify-content: flex-start !important; 
        align-items: center !important;
        width: 100% !important;
        float: none !important;
        clear: both !important;
        margin: 0 !important;
        position: relative !important; 
        list-style: none !important;
    }
    
    /* 3. Left-align the links with a 20px gap from the screen edge */
    .mobile-stack-fix a {
        display: inline-flex !important;
        justify-content: flex-start !important; 
        align-items: center !important;
        width: auto !important; 
        height: auto !important;
        line-height: 1.5 !important;
        padding: 15px 20px !important; 
        box-sizing: border-box !important;
        position: relative !important; 
        text-align: left !important; 
        text-decoration: none !important; 
        border: none !important;          
        box-shadow: none !important;      
        background-image: none !important;
    }

    /* 4. Completely hide theme-injected pseudo-elements for ACTIVE items */
    .mobile-stack-fix .current-menu-item > a::before,
    .mobile-stack-fix .current-menu-item > a::after,
    .mobile-stack-fix .current-menu-ancestor > a::before,
    .mobile-stack-fix .current-menu-ancestor > a::after,
    .mobile-stack-fix .current_page_item > a::before,
    .mobile-stack-fix .current_page_item > a::after {
        display: none !important;
        content: none !important;
        background: transparent !important;
    }

    /* 5. Let the arrows "hug" the text */
    .mobile-stack-fix li.menu-item-has-children > a svg,
    .mobile-stack-fix li.menu-item-has-children > a i,
    .mobile-stack-fix li.menu-item-has-children > a .sub-arrow,
    .mobile-stack-fix li.menu-item-has-children > button,
    .mobile-stack-fix li.menu-item-has-children > div.sub-arrow {
        position: static !important; 
        transform: none !important;  
        margin: 0 0 0 8px !important; 
        display: inline-flex !important; 
        align-items: center !important;
        justify-content: center !important;
    }

    /* 6. OVERRIDE DESKTOP FLYOUTS: Force submenus to open underneath */
    .mobile-stack-fix ul.sub-menu {
        position: static !important;  /* Kills desktop flyout positioning */
        top: auto !important;         /* Resets coordinates */
        left: auto !important;
        right: auto !important;
        transform: none !important;   /* Stops slide-in animations */
        box-shadow: none !important;  /* Removes floating dropdown shadows */
        width: 100% !important;
        flex-basis: 100% !important;  /* Forces it to wrap to the next line */
        margin: 0 !important;
        padding: 0 !important;
    }

    /* 7. INDENT THE SUBMENU LINKS ("Stepped to the right") */
    .mobile-stack-fix ul.sub-menu > li > a {
        padding-left: 45px !important; 
        width: 100% !important; 
	    font-size: 16px !important; /* <--- Adjust size here (e.g., 16px, 18px, 1.1rem) */
    }
    
    /* 8. (Optional) Indent 3rd-level sub-menus even further */
    .mobile-stack-fix ul.sub-menu ul.sub-menu > li > a {
        padding-left: 70px !important;
		font-size: 16px !important; /* <--- Adjust size here (e.g., 16px, 18px, 1.1rem) */
    }
}


/* MAP WRAPPER */
.map-wrapper {
  width: 100%;
  /* Maintains a perfect 16:9 widescreen shape on all devices */
  aspect-ratio: 16 / 9; 
  /* Sets a floor so it does not get too small on phones */
  min-height: 300px;   
  /* Sets a ceiling so it does not look massive on desktop screens */
  max-height: 600px;   
}

/* Add shadow to Desktop Elementor Dropdown Menu Box */
@media (min-width: 1025px) {
    .elementor-nav-menu--main .sub-menu {
        box-shadow: 0px 10px 30px rgba(0, 0, 0, 0.15) !important;
        border: 1px solid #f0f0f0 !important; /* Optional: adds a subtle edge */
    }
}

/* 1. Pull Search Results Container Up Toward the Header */
body.search-results .elementor-location-archive,
body.search-results [data-elementor-type="search-results"] {
    min-height: auto !important;
    padding-top: 0 !important;
    margin-top: 0 !important;
    justify-content: flex-start !important;
}

/* 2. Center and Format Search Results Layout ONLY on the Search Page */
body.search-results .site-main {
    max-width: 1140px !important;
    margin: 20px auto 80px auto !important;
    padding: 0 24px !important;
    width: 100% !important;
    box-sizing: border-box !important;
    align-self: flex-start !important;
}

body.search-results .site-main .ssp-search,
body.search-results .site-main .search-input,
body.search-results .site-main .result {
    width: 100% !important;
    box-sizing: border-box !important;
}

/* 3. Hide Unwanted Elements (Duplicates & "Searched for:" Heading) */
body.search-results .site-main .ssp-search:nth-of-type(n+2),
body.search-results .site-main .result:nth-of-type(n+2),
body.search-results .site-main .ssp-results:nth-of-type(n+2),
body.search-results .ssp-search-heading,
.site-main .ssp-search-heading {
    display: none !important;
}

/* 4. Disable Live Autocomplete & Header Dropdowns While Typing */
.search-auto-complete,
.ssp-search--page .search-auto-complete,
.ssp-search-container-injected .search-auto-complete,
header .ssp-search .result,
.elementor-location-header .ssp-search .result {
    display: none !important;
}

/* 5. Search Results Card & List Styling */
.ssp-search-container-injected .ssp-results,
.site-main .ssp-results {
    margin-top: 20px !important;
    background-color: #ffffff;
    border: 1px solid #e0e0e0;
    border-radius: 8px;
    padding: 20px;
}

.ssp-search-container-injected .ssp-results ul,
.site-main .ssp-results ul {
    display: flex !important;
    flex-direction: column !important;
    padding: 0 !important;
    margin: 15px 0 0 0 !important;
    list-style: none !important;
}

.ssp-search-container-injected .ssp-results ul a,
.site-main .ssp-results ul a {
    display: block !important;
    width: 100% !important;
    text-decoration: none !important;
}

.ssp-search-container-injected .ssp-results .auto-complete-item,
.site-main .ssp-results .auto-complete-item,
.site-main .ssp-results li {
    display: flex !important;
    flex-direction: column !important;
    align-items: flex-start !important;
    width: 100% !important;
    height: auto !important;
    padding: 12px 16px !important;
    border-bottom: 1px solid #f0f0f0 !important;
    color: #0073aa !important;
    font-weight: 600;
}

.ssp-search-container-injected .ssp-results .auto-complete-item:hover,
.site-main .ssp-results li:hover {
    background-color: #f8f9fa !important;
}

/* Format search excerpts/snippets under titles */
.site-main .ssp-results .ssp-excerpt,
.site-main .ssp-results p,
.site-main .ssp-results .auto-complete-excerpt,
.site-main .ssp-results span.excerpt {
    display: block !important;
    color: #555555 !important;
    font-size: 14px !important;
    font-weight: 400 !important;
    margin-top: 6px !important;
    line-height: 1.5 !important;
    text-decoration: none !important;
}

/* Search Button Transparent outline style */
button.search-submit,
.search-form button[type="submit"],
.ssp-search button[type="submit"] {
    background-color: transparent !important;
    border: 1px solid #1D4AD3 !important;
    color: #1D4AD3 !important;
}

/* Search Button Hover state */
button.search-submit:hover,
.search-form button[type="submit"]:hover,
.ssp-search button[type="submit"]:hover {
    background-color: #1D4AD3 !important;
    color: #ffffff !important;
}
