* {
    box-sizing: border-box;
    font-family: "Raleway", sans-serif;
}

h1,
h2,
h3,
h4,
h5,
h6 {
    font-family: "Rufina", sans-serif!important;
}


.header-container {
    width: 100%;
    max-width: 100%;
}

.header-container .header-top-row-wrapper {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 12px 16px;
    border-bottom: 1px solid #d4d4d4;
}


/* phone + email contact top row  */

.header-container .header-top-row-wrapper .header-contact-wrapper {
    display: flex;
    gap: 20px;
    align-items: center;
}

.header-container .header-top-row-wrapper .header-contact-wrapper .header-email,
.header-container .header-top-row-wrapper .header-contact-wrapper .header-phone {
    display: flex;
    gap: 8px;
    align-items: center;
}

.header-container .header-top-row-wrapper .header-contact-wrapper .header-email .header-email-icon-wrapper,
.header-container .header-top-row-wrapper .header-contact-wrapper .header-phone .header-phone-icon-wrapper {
    width: 32px;
    height: 32px;
    min-width: 32px;
    max-width: 100%;
}

.header-container .header-top-row-wrapper .header-contact-wrapper .header-email .header-email-icon-wrapper svg,
.header-container .header-top-row-wrapper .header-contact-wrapper .header-phone .header-phone-icon-wrapper svg {
    width: 100%;
    height: 100%;
    max-width: 100%;
}

/* ctas top row */

.header-container .header-top-row-wrapper .header-top-row-ctas-wrapper {
    display: flex;
    gap: 12px;
    align-items: center;
}

.header-container .header-top-row-wrapper .header-top-row-ctas-wrapper .property-search-wrapper {
    display: flex;
    gap: 12px;
    align-items: center;
    padding: 12px 16px;
    background-color: #004155;
    color: #fff;
}

.header-container .header-top-row-wrapper .header-top-row-ctas-wrapper .property-search-wrapper svg {
    width: 24px;
    height: 24px;
    min-width: 24px;
    max-width: 100%;
    fill: #fff;
}

.header-container .header-top-row-wrapper .header-top-row-ctas-wrapper .book-valuation-wrapper {
    display: flex;
    gap: 12px;
    align-items: center;
    padding: 12px 16px;
    background-color: #777674;
    color: #fff;
}

.header-container .header-top-row-wrapper .header-top-row-ctas-wrapper .book-valuation-wrapper svg {
    width: 24px;
    height: 24px;
    min-width: 24px;
    max-width: 100%;
    fill: #fff;
}

/* header bottom row  */

.header-container .header-bottom-row-wrapper {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 12px 16px;
    border-bottom: 1px solid #d4d4d4;
}

.header-container .header-bottom-row-wrapper .logo-wrapper {
    width: 100%;
    max-width: 400px;
    height: auto;
}

.header-container .header-bottom-row-wrapper .logo-wrapper img {
    width: 100%;
    height: auto;
    max-width: 100%;
}

/* header nav links  */

.header-container .header-bottom-row-wrapper .header-nav-links {}

.header-container .header-bottom-row-wrapper .header-nav-links ul {
    padding: 0;
    margin: 0;
    list-style-type: none;
    display: flex;
    gap: 32px;
    align-items: center;
}

.header-container .header-bottom-row-wrapper .header-nav-links ul li {}

.header-container .header-bottom-row-wrapper .header-nav-links ul li a {
    display: flex;
    position: relative;
    justify-content: center;
    font-size: 18px;
    align-items: center;
    color: black;
    text-decoration: none;
    padding-bottom: 4px;
    font-weight: 600;
}

.header-container .header-bottom-row-wrapper .header-nav-links ul li a:hover {
    font-weight: 600;
}

.header-container .header-bottom-row-wrapper .header-nav-links ul li a::after {
    content: "";
    position: absolute;
    left: 0;
    bottom: 0;
    width: 0;
    height: 1px;
    background-color: #000;
    transition: width 220ms ease;
}

.header-container .header-bottom-row-wrapper .header-nav-links ul li a:hover::after {
    width: 100%;
}


/* mobile header  */

@media (max-width: 1024px) {
    .header-container {
        display: none;
    }
}

@media (min-width: 1025px) {
    .mobile-header-container {
        display: none;
    }
}

.mobile-header-container {
    width: 100%;
}

.mobile-header-container .mobile-header-wrapper {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 20px;
    padding: 12px 16px;
    border-bottom: 1px solid #d4d4d4;
}

.mobile-header-container .mobile-header-wrapper .mobile-logo {
    width: 100%;
    max-width: 300px;
    height: auto;
}

.mobile-header-container .mobile-header-wrapper .mobile-logo img {
    width: 100%;
    height: auto;
    max-width: 100%;
}

.mobile-header-container .mobile-header-wrapper .mobile-ctas {
    display: flex;
    align-items: center;
    gap: 20px;
}

.mobile-header-container .mobile-header-wrapper .mobile-ctas .mobile-contacts {
    display: flex;
    align-items: center;
    gap: 20px;
}

.mobile-header-container .mobile-header-wrapper .mobile-ctas .mobile-contacts .mobile-email,
.mobile-header-container .mobile-header-wrapper .mobile-ctas .mobile-contacts .mobile-phone {
    width: fit-content;
    height: auto;
    max-width: 100%;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 4px;
}

.mobile-header-container .mobile-header-wrapper .mobile-ctas .mobile-contacts .mobile-email svg,
.mobile-header-container .mobile-header-wrapper .mobile-ctas .mobile-contacts .mobile-phone svg {
    width: 100%;
    min-width: 32px;
    height: auto;
    max-width: 32px;
}

/* hamburger  */

.mobile-header-container .mobile-header-wrapper .mobile-ctas .hamburger-wrapper {
    display: flex;
    flex-direction: column;
    gap: 4px;
    align-items: center;
}

.mobile-header-container .mobile-header-wrapper .mobile-ctas .hamburger {
    display: block;
    width: 32px;
    height: 32px;
    position: relative;
}

/* both lines share the same base styles */
.mobile-header-container .mobile-header-wrapper .mobile-ctas .hamburger::before,
.mobile-header-container .mobile-header-wrapper .mobile-ctas .hamburger::after {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    margin: auto;
    width: 1.5rem;
    height: 1px;
    background: #2e3a3e;
    transform-origin: center;
    transition: transform .25s cubic-bezier(.39, .575, .565, 1),
        background .25s linear;
}

.mobile-header-container .mobile-header-wrapper .mobile-ctas .hamburger::before {
    top: 50%;
    transform: translateY(-6px);
}

.mobile-header-container .mobile-header-wrapper .mobile-ctas .hamburger::after {
    top: 50%;
    transform: translateY(6px);
}

.mobile-header-container .mobile-header-wrapper .mobile-ctas .hamburger.active::before {
    transform: translateY(0) rotate(45deg);
}

.mobile-header-container .mobile-header-wrapper .mobile-ctas .hamburger.active::after {
    transform: translateY(0) rotate(-45deg);
}


/* mobile menu */

.menu-overlay {
    position: fixed;
    inset: 0;
    height: 100%;
    width: 100%;
    background-color: rgba(0, 0, 0, 0.4);
    backdrop-filter: blur(0px);
    visibility: hidden;
    opacity: 0;
    pointer-events: none;
    z-index: 2;
    transition: .3s opacity ease-in-out .3s, visibility .6s, .3s backdrop-filter ease-in-out;
}

.menu-overlay.active {
    visibility: visible;
    backdrop-filter: blur(5px);
    opacity: 1;
    pointer-events: all;
}

#mobile-menu {
    width: 100%;
    max-width: 400px;
    position: fixed;
    top: 0;
    bottom: 0;
    right: 0;
    overflow-y: auto;
    overflow-x: clip;
    z-index: 3;
    background-color: #fff;
    visibility: hidden;
    transform: translateX(100%);
    pointer-events: none;
    transition: .3s transform ease-in-out .3s, .6s visibility;
}

@media (max-width: 576px) {
    #mobile-menu {
        max-width: 95%;
    }
}

#mobile-menu.active {
    transform: translateX(0);
    visibility: visible;
    pointer-events: all;
}


#mobile-menu .mobile-menu-head {
    display: flex;
    gap: 20px;
    align-items: center;
    justify-content: space-between;
    padding: 24px;
}

#mobile-menu .mobile-menu-head h3 {
    font-size: 24px;
    margin: 0;
    font-weight: bold;
}

#mobile-menu .mobile-menu-head .mobile-hamburger {
    display: block;
    width: 32px;
    height: 32px;
    position: relative;
}

/* both lines share the same base styles */
#mobile-menu .mobile-menu-head .mobile-hamburger::before,
#mobile-menu .mobile-menu-head .mobile-hamburger::after {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    margin: auto;
    width: 1.5rem;
    height: 1px;
    background: #2e3a3e;
    transform-origin: center;
    transition: transform .25s cubic-bezier(.39, .575, .565, 1),
        background .25s linear;
}

#mobile-menu .mobile-menu-head .mobile-hamburger::before {
    top: 50%;
    transform: translateY(-6px);
}

#mobile-menu .mobile-menu-head .mobile-hamburger::after {
    top: 50%;
    transform: translateY(6px);
}

#mobile-menu .mobile-menu-head .mobile-hamburger.active::before {
    transform: translateY(0) rotate(45deg);
}

#mobile-menu .mobile-menu-head .mobile-hamburger.active::after {
    transform: translateY(0) rotate(-45deg);
}

/* body  */

#mobile-menu .mobile-menu-body {
    display: flex;
    flex-direction: column;
    opacity: 0;
    transition: .3s opacity ease-in-out .6s;
}

#mobile-menu .mobile-menu-body.active {
    opacity: 1;
}

#mobile-menu .mobile-menu-body .mobile-menu-property-search {
    display: flex;
    flex-direction: column;
    background-color: rgb(245, 245, 245);
    padding: 20px 24px;
}

#mobile-menu .mobile-menu-body .mobile-menu-property-search h4 {
    letter-spacing: 1.5px;
    text-transform: uppercase;
    font-weight: 400;
    margin: 0;
}

#mobile-menu .mobile-menu-body .mobile-menu-property-search .mobile-search-wrapper {
    display: flex;
    gap: 0;
    align-items: center;
    margin-top: 8px;
}

#mobile-menu .mobile-menu-body .mobile-menu-property-search .mobile-search-wrapper input {
    height: 44px;
    padding: 12px 16px;
    border: 1px solid rgb(204, 204, 204);
    border-right: unset;
    flex-grow: 1;
}

#mobile-menu .mobile-menu-body .mobile-menu-property-search .mobile-search-wrapper button {
    display: flex;
    align-items: center;
    justify-content: center;
    height: 44px;
    border: 1px solid rgb(119, 118, 116);
    width: 44px;
    min-width: 44px;
    max-width: 100%;
    padding: 8px;
    background-color: rgb(119, 118, 116);
}

#mobile-menu .mobile-menu-body .mobile-menu-property-search .mobile-search-wrapper button svg {
    width: 100%;
    height: auto;
    max-width: 100%;
    fill: #fff;
}

/* links  */

#mobile-menu .mobile-menu-body .mobile-menu-links {
    background-color: #fff;
}

#mobile-menu .mobile-menu-body .mobile-menu-links ul {
    display: flex;
    flex-direction: column;
    gap: 0px;
    margin: 0;
    padding: 0;
    list-style-type: none;
}

#mobile-menu .mobile-menu-body .mobile-menu-links ul li {}

#mobile-menu .mobile-menu-body .mobile-menu-links ul li .mobile-menu-link {
    display: flex;
    padding: 0px 24px;
    color: rgb(119, 117, 116);
    text-decoration: none;
}

#mobile-menu .mobile-menu-body .mobile-menu-links ul li .mobile-menu-link .mobile-menu-link-option-wrapper {
    position: relative;
    border-bottom: 1px solid rgb(241, 239, 239);
    width: 100%;
    padding: 16px 0;
    position: relative;
}

#mobile-menu .mobile-menu-body .mobile-menu-links ul li .mobile-menu-link .mobile-menu-link-option-wrapper.has-children {}

#mobile-menu .mobile-menu-body .mobile-menu-links ul li .mobile-menu-link .mobile-menu-link-option-wrapper.has-children::after {
    font-family: "Font Awesome 7 Free";
    font-weight: 900;
    content: "\f105";
    position: absolute;
    right: 20px;
    top: 50%;
    transform: translateY(-50%);
    color: #777574;
}


/* mobile menu ctas  */

#mobile-menu .mobile-menu-body .mobile-menu-ctas {
    display: flex;
    flex-direction: column;
    gap: 12px;
    width: 100%;
    padding: 0 24px;
    margin-top: 24px;
    margin-bottom: 24px;
}

#mobile-menu .mobile-menu-body .mobile-menu-ctas .mobile-book-valuation {
    width: 100%;
    display: flex;
    justify-content: center;
    align-items: center;
    background-color: #004155;
    padding: 12px 16px;
    color: #fff;
    text-decoration: none;
}

#mobile-menu .mobile-menu-body .mobile-menu-ctas .mobile-call-us {
    width: 100%;
    display: flex;
    justify-content: center;
    align-items: center;
    background-color: #777674;
    padding: 12px 16px;
    color: #fff;
    text-decoration: none;
}

/* submenus  */

#mobile-menu .sub-menu {
    position: absolute;
    top: 0;
    bottom: 0;
    right: 0;
    background-color: #fff;
    width: 100%;
    visibility: hidden;
    pointer-events: all;
    z-index: 4;
    transform: translateX(100%);
    transition: .3s transform ease-in-out .3s, .6s visibility;
}

#mobile-menu .sub-menu.active#about-us-submenu,
#mobile-menu .sub-menu.active#blog-submenu {
    transform: translateX(0);
    visibility: visible;
    pointer-events: all;
}

#mobile-menu .sub-menu .sub-menu-head {
    display: flex;
    gap: 20px;
    font-size: 24px;
    align-items: center;
    justify-content: start;
    padding: 24px;
    border-bottom: 1px solid rgb(241, 239, 239);
}

#mobile-menu .sub-menu .sub-menu-head h4 {
    margin: 0;
}

#mobile-menu .sub-menu .sub-menu-head button {
    width: 24px;
    height: 24px;
    min-width: 24px;
    padding: 0;
    max-width: 100%;
    background-color: unset;
    border: unset;
}

#mobile-menu .sub-menu .sub-menu-head button svg {
    height: auto;
    width: 100%;
    max-width: 100%;
}

/* body  */

#mobile-menu .sub-menu .sub-menu-body {
    opacity: 0;
    transition: .3s opacity ease-in-out .6s;
    width: 100%;
}

#mobile-menu .sub-menu.active .sub-menu-body {
    opacity: 1;
}

#mobile-menu .sub-menu .sub-menu-body .sub-menu-nav-items {
    background-color: #fff;
    width: 100%;
}

#mobile-menu .sub-menu .sub-menu-body .sub-menu-nav-items ul {
    display: flex;
    flex-direction: column;
    gap: 0;
    padding: 0;
    margin: 0;
    list-style-type: none;
}

#mobile-menu .sub-menu .sub-menu-body .sub-menu-nav-items ul li {}

#mobile-menu .sub-menu .sub-menu-body .sub-menu-nav-items ul li .sub-menu-link {
    display: flex;
    padding: 0px 24px;
    color: rgb(119, 117, 116);
    text-decoration: none;
}

#mobile-menu .sub-menu .sub-menu-body .sub-menu-nav-items ul li .sub-menu-link .sub-menu-link-content-wrapper {
    border-bottom: 1px solid rgb(241, 239, 239);
    width: 100%;
    padding: 16px 0;
    position: relative;
}