/**
Theme Name: astra-child
Author: Brainstorm Force
Author URI: http://wpastra.com/about/
Description: Astra is the fastest, fully customizable & beautiful theme suitable for blogs, personal portfolios and business websites. It is very lightweight (less than 50KB on frontend) and offers unparalleled speed. Built with SEO in mind, Astra comes with schema.org code integrated so search engines will love your site. Astra offers plenty of sidebar options and widget areas giving you a full control for customizations. Furthermore, we have included special features and templates so feel free to choose any of your favorite page builder plugin to create pages flexibly. Some of the other features: # WooCommerce Ready # Responsive # Compatible with major plugins # Translation Ready # Extendible with premium addons # Regularly updated # Designed, Developed, Maintained & Supported by Brainstorm Force. Looking for a perfect base theme? Look no further. Astra is fast, fully customizable and beautiful theme!
Version: 1.0.0
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: astra-child
Template: astra
*/

p {
    margin-bottom: 1em;
}
.site-content .elementor-widget-text-editor ul {
    margin-left: 24px;
}
.elementor input[type="checkbox"] {
    accent-color: #000;
}
.bg-icon-orange .elementor-icon-list-icon svg {
    margin-right: 0 !important;
    padding: 2px
}
.bg-icon-orange span.elementor-icon-list-icon {
    background: #FF862F66;
    padding: 4px !important;
    border-radius: 999px;
}
/* Property cards start */
.property-card .property-card-img img {
    aspect-ratio: 4/3;
    object-fit: cover;
}
/* Property cards end */

/* Property interior gallery slider start */
.property-interior-gallery-slider .swiper-slide-image {
    width: 100%;
    height: 750px;
    object-fit: cover;
}
.property-interior-gallery-slider .swiper-pagination-bullet:before {
    content: 'Test';
    padding: 0 15px 15px;
    color: #fff;
    border-bottom: 1px solid #ffffff00;
    font-family: 'Playfair Display';
    font-size: 20px;
    text-transform: uppercase;
    display: block;
}
.property-interior-gallery-slider .swiper-pagination-bullet {
    width: auto;
    height: auto;
    font-size: 0;
    opacity: 1;
    background: transparent;
}
.property-interior-gallery-slider .swiper-pagination-bullet.swiper-pagination-bullet-active:before {
    border-bottom: 1px solid #fff;
}
.property-interior-gallery-slider .swiper-pagination {
    margin-bottom: 20px;
}
.property-interior-gallery-slider .swiper-pagination-bullet:nth-child(1):before {
    content: 'Pool & Spa';
}
.property-interior-gallery-slider .swiper-pagination-bullet:nth-child(2):before {
    content: 'Kitchen';
}
.property-interior-gallery-slider .swiper-pagination-bullet:nth-child(3):before {
    content: 'Bathroom';
}
.property-interior-gallery-slider .swiper-pagination-bullet:nth-child(4):before {
    content: 'Master Bedroom';
}
.property-interior-gallery-slider .swiper-pagination-bullet:nth-child(5):before {
    content: 'Outside';
}
.property-interior-gallery-slider .elementor-swiper-button.elementor-swiper-button-prev {left: 60px;}
.property-interior-gallery-slider .elementor-swiper-button.elementor-swiper-button-next {right: 60px;}
.property-interior-gallery-slider .elementor-swiper-button {
    border: 2px solid #fff;
    padding: 5px;
    border-radius: 50%;
}
/* Property interior gallery slider end */

/* Contact section start */
.contact-section .contact-profile-img img {
    aspect-ratio: 1/1;
    object-fit: cover;
    filter: grayscale(1);
}
/* Contact section end */

/* About page start */
.about-banner-vid .elementor-video {
    height: 100vh !important;
}
.our-team-card .contact-profile-img img {
    width: 100%;
    aspect-ratio: 1/1;
    object-fit: cover;
}
.our-team-card:nth-child(1) .contact-profile-img img, .our-team-card:nth-child(3) .contact-profile-img img {
    object-position: 50% 15%;
}
/* About page end */

/* Footer start */
.main-footer .footer-logos-invert {
    filter: grayscale(1);
    transition: filter 0.3s ease;
}
.main-footer .footer-logos-invert:last-child .elementor-widget-container {
    filter: invert(1);
}
.main-footer .footer-logos-invert:hover {
    filter: grayscale(0);
}
/* Footer end */

/* About forms - Start */
.st-subs-form .elementor-column.elementor-field-group-field_59a091d.elementor-col-100.elementor-field-required {
    order: 2;
}
.st-cntct-form .elementor-field-type-acceptance.elementor-field-group.elementor-column.elementor-field-group-field_894cb44.elementor-col-100 {
    margin: 0 !important;
}
/* About Forms - End */

/* Property - Start */
.bannerSwiper .swiper-pagination-progressbar {
    background: rgba(255, 255, 255, 0.3);
    height: 4px;
}
.bannerSwiper .swiper-pagination-progressbar-fill {
    background: #ff6600;
}
.bannerSwiper .swiper-slide {
    height: 100vh;
}
/* Property - Start */

/* Single Property - Start */
.single-property-gallery-slider .custom-progress {
    height: 6px;
    background: transparent;
    margin-top: -6px;
    position: relative;
    z-index: 5;
    width: 100%;
    backdrop-filter: blur(18px) saturate(200%);
}
.single-property-gallery-slider .custom-progress span {
    display: block;
    height: 100%;
    width: 0;
    background: #007AFF;
    transition: width 0.3s ease;
}
.single-property-gallery-slider .swiper-slide-image {
    width: 100%;
    height: 60vh;
    object-fit: cover;
}
.single-property-gallery-slider .swiper-pagination {
    display: none;
}
.single-property-gallery-slider.elementor-widget-image-carousel .swiper {
    position: relative;
}

.property-sale-price-wrap .property-sale-price-wrapper {
    position: relative;
    display: inline-block;
    font-family: inherit;
}
.property-sale-price-wrap .pspd-display {
    padding: 10px 20px;
    padding-right: 66px;
    border: 1px solid #000;
    min-width: 160px;
    cursor: pointer;
    background: #fff;
    box-sizing: border-box;
    font-family: 'Playfair Display';
    font-size: 24px;
    color: #000;
}
.property-sale-price-wrap .pspd-list {
    display: none;
    position: absolute;
    left: 0;
    top: calc(100% + 6px);
    z-index: 9999;
    width: 100%;
    max-height: 260px;
    overflow: auto;
    padding: 0;
    box-sizing: border-box;
    margin-left: 0;
    box-shadow: 0 0 12px rgba(0, 0, 0, 0.08);
}
.property-sale-price-wrap .pspd-list li {
    padding: 8px 16px;
    cursor: pointer;
    list-style: none;
    font-family: 'Poppins';
    font-size: 14px;
    background: #fff;
    border-bottom: 1px solid #e6e6e6;
    color: #000;
}
.property-sale-price-wrap .pspd-list li:hover {
    background: #f6f6f6;
}
.property-sale-price-wrap .property-sale-price-wrapper i {
    position: absolute;
    top: 40%;
    right: 24px;
}
.single-property .single-property-read-more-content {
  display: -webkit-box;
  -webkit-line-clamp: 6; /* show 6 lines by default */
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.single-property .single-property-read-more-content.expanded {
  -webkit-line-clamp: unset; /* show full content when expanded */
}
.single-property .other-amenities-tab-content ul {
    column-count: 3;
    list-style: circle;
}
/* Single Property - End */

/*
Single Property Read More - Start
TODO: transition still not the same as client's live site
*/
.single-property .single-property-read-more a:before, .single-property .single-property-read-more a:after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 0;
    height: 1px;
    width: 100%;
    background-color: #000;
    transform: scaleX(0);
    transform-origin: right;
    transition: 300ms cubic-bezier(0.75, 0.25, 0.25, 0.75);
}
.single-property .single-property-read-more a {
    position: relative;
}
.single-property .single-property-read-more a:after {
    transform: scaleX(1);
    transform-origin: left;
    transition-delay: 200ms;
}
.single-property .single-property-read-more a:hover:before {
    transform: scaleX(1);
    transform-origin: left;
    transition-delay: 200ms;
}
.single-property .single-property-read-more a:hover:after {
    transform: scaleX(0);
    transform-origin: right;
    transition-delay: 0ms;
}
/* Single Property Read More - End */

/* Single Property Calculate tax tab - Start */
.calc-tax-tab-content table {
  border-collapse: collapse; /* makes cell borders merge into one line */
  width: 100%; /* optional, keeps it aligned */
}
.calc-tax-tab-content tr:not(:last-child) td,
.calc-tax-tab-content tr:not(:last-child) th {
  border-bottom: 1px solid rgba(0, 0, 0, 0.2) !important;
}
.calc-tax-tab-content tr.d-none {
    display: none;
}
.calc-tax-tab-content tr th {
    text-align: start;
}
.calc-tax-tab-content tr td:last-child {
    text-align: end;
}
.calc-tax-tab-content tr th, .calc-tax-tab-content tr td {
    padding: 12px 0;
    border: none;
}
.calc-tax-tab-content tr td.fst-italic {font-style: italic;}
/* Single Property Calculate tax tab - End */

/* Single property calculate mortgage tab - Start */
.calc-mortgage-tab-wrap .mc-inputs {
    padding-bottom: 30px;
    margin-bottom: 30px;
    border-bottom: 1px solid rgba(0, 0, 0, .2);
    display: flex;
    gap: 30px;
}
.calc-mortgage-tab-wrap .mc-inputs .mc-field {
    position: relative;
}
.calc-mortgage-tab-wrap .mc-inputs label {
    position: absolute;
    top: 10px;
    left: 17px;
    color: rgba(0,0,0,0.65);
    font-size: 13px;
    font-family: 'Playfair Display';
}
.calc-mortgage-tab-wrap .mc-inputs input {
    padding-top: 25px;
    height: auto;
    color: #000;
    font-size: 14px;
    border: 1px solid rgba(217, 217, 217, 1);
}
.calc-mortgage-tab-wrap .mc-results {
    display: flex;
    gap: 30px;
}
.calc-mortgage-tab-wrap .mc-results > p {
    width: 100%;
    max-width: calc(25% - 20px);
    color: #000;
    font-size: 16px;
    font-family: 'Poppins';
    font-weight: 300;
}
.calc-mortgage-tab-wrap .mc-results > p > strong {
    display: block;
    font-weight: 500;
    margin-top: 3px;
}
/* Single property calculate mortgage tab - End */

/* Responsive */
@media screen and (max-width: 1024px) {
    .property-interior-gallery-slider .swiper-pagination {
        display: flex;
        flex-wrap: wrap;
        justify-content: center;
        gap: 20px;
    }
    .property-interior-gallery-slider .swiper-pagination-bullet:before {
        padding: 0 10px 10px;
    }
    .property-interior-gallery-slider .swiper-slide-image {
        height: 650px;
    }
}
@media screen and (max-width: 767px) {
    .property-interior-gallery-slider .elementor-swiper-button.elementor-swiper-button-prev {
        left: 20px;
    }
    .property-interior-gallery-slider .elementor-swiper-button.elementor-swiper-button-next {
        right: 20px;
    }
    .property-interior-gallery-slider .swiper-pagination-bullet:before {
        padding: 0 5px 5px;
        font-size: 18px;
    }
    .property-interior-gallery-slider .swiper-pagination {
        gap: 10px;
        padding: 0 15px;
    }
    .property-interior-gallery-slider .swiper-slide-image {
        height: 500px;
    }
    .calc-mortgage-tab-wrap .mc-inputs, .calc-mortgage-tab-wrap .mc-results {
        flex-direction: column;
        gap: 20px;
    }
    .calc-mortgage-tab-wrap .mc-results > p {
        max-width: 100%;
        margin-bottom: 0;
    }
    .single-property .other-amenities-tab-content ul {
        column-count: 2;
    }
}
@media screen and (max-width: 425px) {
    .single-property .other-amenities-tab-content ul {
        column-count: 1;
    }
}

/* ===================== US Sandtons new styles - add here ===================== */
a.link-no-underline {
    text-decoration: none !important;
}
.elementor-widget-text-editor.mb-0 p:last-child {
    margin-bottom: 0;
}
.w-101.elementor-widget {
    width: 101%;
    max-width: 101% !important;
}
.below-banner-div-icons .elementor-icon-box-title strong {
    font-weight: 600;
}

/* =========== Homepage carousel - start =========== */
.us-sand-carousel .e-n-carousel.swiper {
    width: 100%;
}
/* =========== Homepage carousel - end =========== */

/* =========== Homepage blog carousel - start =========== */
.latest-insight-item .elementor-widget-button {
    margin-top: auto;
}
.latest-insight-item .elementor-widget-post-info li:not(:first-child) {
    position: relative;
}
.latest-insight-item .elementor-widget-post-info li:not(:first-child):before {
    content: '•';
    position: absolute;
    left: -20px;
}
.blog-carousel .swiper.elementor-loop-container {
    width: 100%;
}
/* =========== Homepage blog carousel - end =========== */

/* =========== Home image rows - start =========== */
.home-logo-row .elementor-widget-image, .home-logo-row .elementor-widget-image img {
    width: auto;
}
/* =========== Home image rows - end =========== */

/* =========== Homepage listings filter - start =========== */
.house-listings-filter input.elementor-field, .house-listings-filter .elementor-field select {
    height: 52px !important;
    padding: 14px !important;
}
.house-listings-filter .listings-filter-btn {
    width: 100%;
    padding: 14px;
    font-size: 16px;
    line-height: 24px;
    color: #fff;
}
.house-listings-filter .listings-filter-btn.btn-filter {
    background: #737373;
}
.house-listings-filter .listings-filter-btn.btn-location {
    background: #0A0A0A;
}
.house-listings-filter .listings-filter-btn:hover {
    color: #fff;
}
.house-listings-filter .elementor-field-group {
    order: 1;
}
.house-listings-filter .elementor-field-type-checkbox {
    order: 9;
}
/* Hide native checkbox */
.house-listings-filter .elementor-field-option input[type="checkbox"] {
    position: absolute;
    opacity: 0;
}
/* Clickable wrapper */
.house-listings-filter .elementor-field-option {
    position: relative;
    padding-left: 54px;
    cursor: pointer;
    line-height: 24px;
    display: inline-flex;
    align-items: center;
}
/* Switch track */
.house-listings-filter .elementor-field-option label::before {
    content: "";
    position: absolute;
    left: 0;
    top: 2px;
    width: 46px;
    height: 24px;
    background: #ccc;
    border-radius: 999px;
    transition: 0.25s ease;
}
/* Switch knob */
.house-listings-filter .elementor-field-option label::after {
    content: "";
    position: absolute;
    left: 3px;
    top: 5px;
    width: 18px;
    height: 18px;
    background: #fff;
    border-radius: 50%;
    transition: 0.25s ease;
}
/* Checked state */
.house-listings-filter .elementor-field-option:has(input[type="checkbox"]:checked) label::before {
    background: #0A0A0A;
}
.house-listings-filter .elementor-field-option:has(input[type="checkbox"]:checked) label::after {
    transform: translateX(22px);
}
.house-listings-filter .elementor-field-type-checkbox label {
    color: #0A0A0A !important;
    font-size: 20px !important;
    line-height: 1.4 !important;
    cursor: pointer;
}
.house-listings-filter .elementor-field-type-checkbox {
    margin-top: 40px;
}
/* =========== Homepage listings filter - end =========== */

/* =========== Homepage testimonial carousel - start =========== */
.squircle-img img {
    aspect-ratio: 1/1;
    object-fit: cover;
}
.home-testi-img img {
    width: 44px;
}
.home-testi-img .elementor-image-box-content {
    width: calc(100% - 52px);
}
.testimonial-play-icon .elementor-icon-wrapper {
    display: flex;
}
/* =========== Homepage testimonial carousel - end =========== */

/* =========== Home above footer CTA area - start =========== */
.box-blur-bg {
    backdrop-filter: blur(11px);
}
.home-cta-form .elementor-field:not(.elementor-select-wrapper),
.home-cta-form .elementor-select-wrapper select{
    height: auto;
    min-height: unset;
    padding: 15px 10px;
}
.home-cta-form .elementor-field:not(.elementor-select-wrapper)::placeholder {
    color: #000;
    opacity: 1;
}
/* =========== Home above footer CTA area - start =========== */

/* =========== Table 1 design - start =========== */
.us-sand-table-1-design .mb-0 p {
    margin-bottom: 0;
}
.us-sand-table-1-design th .data-header-icon {
    margin-bottom: 16px;
    margin-right: 0px !important;
}
.us-sand-table-1-design .data-table-header-text {
    width: 100%;
    display: inline-block;
}
/* =========== Table 1 design - end =========== */

/* =========== Table 1 3-column layout - start =========== */
.us-sand-table-1-design.col-3 .table-header th {
    width: 100%;
    max-width: 33%;
}
/* =========== Table 1 3-column layout - end =========== */

/* =========== Table 1 4-column equal width layout - start =========== */
.us-sand-table-1-design.equal-columns .table-header th {
    width: 100%;
    max-width: 25%;
}
/* =========== Table 1 4-column equal width layout - end =========== */

/* =========== Vertical Table layout - start =========== */
.vertical-header thead th:first-child, .vertical-header tr td:first-child {
    background-color: #FE6A11 !important;
    color: #fff !important;
    padding: 20px 8px !important;
}
.vertical-header thead th:last-child, .vertical-header tr td:last-child {
    border-right-width: 1px !important;
}
.vertical-header thead th:first-child .data-table-header-text {
    font-size: 24px !important;
    line-height: 1.33 !important;
    font-weight: 600 !important;
}
.vertical-header tr td.inc-req-col .eael-datatable-icon:after {
    content: 'Income Requirement';
}
.vertical-header tr td.work-rights .eael-datatable-icon:after {
    content: 'Work Rights';
}
.vertical-header tr td.family-inc .eael-datatable-icon:after {
    content: 'Family Included';
}
.vertical-header tr td.approval-time .eael-datatable-icon:after {
    content: 'Approval Time';
}
.vertical-header tr td .eael-datatable-icon {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 16px;
}
.vertical-header tr td:first-child .eael-datatable-icon:after {
    font-size: 24px;
    line-height: 1.33;
    font-weight: 600;
}
.vertical-header tr td.nvl-retirees .eael-datatable-icon:after {
    content: 'NVL (Retirees)';
    white-space: nowrap;
}
.vertical-header tr td.property-inv .eael-datatable-icon:after {
    content: 'Property Investors';
    white-space: nowrap;
}
.vertical-header tr td.st-movers .eael-datatable-icon:after {
    content: 'Short-Term Movers';
    white-space: nowrap;
}
/* =========== Vertical Table layout - end =========== */

/* =========== Table w/ fade left sidebar & rotated text layout - start =========== */
.table-w-fake-col-wrap {
    position: relative;
    overflow-x: auto;
}
.table-w-fake-col-wrap .table-w-fake-col {
    position: absolute;
    height: 100%;
    width: 90px;
    display: flex;
    justify-content: center;
}
.table-w-fake-col-wrap .table-w-fake-col .elementor-heading-title {
    transform: rotate(-90deg);
    white-space: nowrap;
}
.table-w-fake-col .elementor-widget-heading > .elementor-widget-container {
    display: flex;
    justify-content: center;
}
/* =========== Table w/ fade left sidebar & rotated text layout - end =========== */

/* =========== Cost breakdown page - cost icon list - start =========== */
.icon-b-horizontal-layout ul {
    margin: 0 0 0 6px !important;
    display: flex;
    flex-direction: column;
    gap: 8px;
    list-style: none;
}
.icon-b-horizontal-layout ul + p {
    display: none;
}
.icon-b-horizontal-layout ul li {
    position: relative;
}
.icon-b-horizontal-layout ul li:before {
    content: '';
    background: #737373;
    position: absolute;
    height: 5px;
    width: 5px;
    border-radius: 9999px;
    left: -15px;
    top: 10px;
}
/* =========== Cost breakdown page - cost icon list - end =========== */

/* =========== Custom CTA box area w/ form - start =========== */
.cta-newsletter-form input#form-field-user_email {
    padding-left: 0;
}
.cta-newsletter-form .elementor-field-group-user_email {
    padding-left: 38px !important;
    position: relative;
    width: 100%;
    max-width: 300px;
}
.cta-newsletter-form .elementor-field-group-user_email:before {
    content: '\f0e0';
    font-family: 'Font Awesome 5 Free';
    font-weight: 800;
    font-size: 18px;
    color: #A1A1A1;
    position: absolute;
    left: 11.25px;
}
.cta-newsletter-form input#form-field-user_email:focus {
    box-shadow: none;
}
.cta-newsletter-form  .elementor-field-type-submit.e-form__buttons {
    width: 100%;
    max-width: 167px;
}
/* =========== Custom CTA box area w/ form - end =========== */

/* =========== FAQ Accordion - start =========== */
.faq-accordion .e-n-accordion-item {
    border-bottom: 1px solid #E9E9E9;
}
.faq-accordion .e-n-accordion-item[open] .e-n-accordion-item-title {
    padding-bottom: 16px !important;
}
/* =========== FAQ Accordion - end =========== */

/* =========== FAQ page tabs - start =========== */
.faq-page-tabs .e-n-tabs-heading .e-n-tab-title {
    width: 100%;
    flex-basis: auto;
    max-width: calc(20% - 12.8px);
    height: 112px;
}
.faq-page-tabs .e-n-tabs-heading .e-n-tab-title:nth-child(-n + 4) {
    max-width: calc(25% - 12px);
}
/* =========== FAQ page tabs - end =========== */

/* =========== Visa page - 4 visa options section - start =========== */
.swap-title-icon-pos .elementor-icon-list-item {
    flex-direction: row-reverse;
    gap: 10px;
}
/* =========== Visa page - 4 visa options section - end =========== */


/* Menu */
.oc-menu li.elementor-icon-list-item a.is-active {
    border-bottom: 2px solid #ff862f;
}
.oc-menu li.elementor-icon-list-item a.is-active span.elementor-icon-list-text {
    color: #ff862f;
}
.oc-menu li.elementor-icon-list-item a.is-active span.elementor-icon-list-icon path {
    fill: #ff862f;
}
.oc-menu li.elementor-icon-list-item:hover a{
    border-bottom: 2px solid #ffffff;
    transition: all 100ms ease;
}
.oc-menu li.elementor-icon-list-item:hover span.elementor-icon-list-text {
    color: #ffffff;
}
.oc-menu li.elementor-icon-list-item:hover a.is-active span.elementor-icon-list-icon path {
    fill: #ffffff;
}



/* =========== Responsive =========== */
@media screen and (max-width: 1024px) {
    .faq-page-tabs .e-n-tabs-heading .e-n-tab-title:nth-child(-n + 4),
    .faq-page-tabs .e-n-tabs-heading .e-n-tab-title {
        max-width: calc(33% - 10.66px);
        height: 70px;
    }
    .vertical-header thead th:first-child .data-table-header-text,
    .vertical-header tr td:first-child .eael-datatable-icon:after {
        font-size: 18px !important;
    }
}
@media screen and (max-width: 767px) {
    .elementor-element.p-relative-mobile {
        position: relative !important;
        top: unset !important;
        bottom: unset !important;
        left: unset !important;
    }
    .remove-br-mobile p br {
        display: none;
    }
    .cta-newsletter-form .elementor-field-group-user_email, .cta-newsletter-form .elementor-field-type-submit.e-form__buttons {
        max-width: 100%;
    }
    .faq-page-tabs .e-n-tabs-heading .e-n-tab-title:nth-child(-n + 4),
    .faq-page-tabs .e-n-tabs-heading .e-n-tab-title {
        height: 60px;
        padding-left: 20px;
        padding-right: 20px;
        max-width: 100%;
    }
    .house-listings-filter .elementor-field-type-checkbox label {
        font-size: 16px !important;
    }
    .house-listings-filter .elementor-field-option label::before {
        height: 20px;
        width: 38px;
    }
    .house-listings-filter .elementor-field-option label::after {
        height: 14px;
        width: 14px;
    }
    .house-listings-filter .elementor-field-option:has(input[type="checkbox"]:checked) label::after {
        transform: translateX(18px);
    }
    .house-listings-filter .elementor-field-type-checkbox {
        margin-top: 10px;
    }
}