@media only screen and (max-width: 991px) {
    .navbar-collapse {
        background: var(--primary--color);
        border-radius: 10px;
        position: relative;
        z-index: 2;
    }
}

.justify-content-end {
    -webkit-box-pack: end !important;
    -ms-flex-pack: end!important;
    justify-content: flex-end !important;
}
.navbar-collapse {
    -ms-flex-preferred-size: 100%;
    flex-basis: 100%;
    -webkit-box-flex: 1;
    -ms-flex-positive: 1;
    flex-grow: 1;
    -webkit-box-align: center;
    -ms-flex-align: center;
    align-items: center;
}
.collapse {
    display: none;
}
* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}
*, ::after, ::before {
    box-sizing: border-box;
}
div {
    display: block;
    unicode-bidi: isolate;
}
@media only screen and (max-width: 575px) {
    body {
        font-size: 16px;
        line-height: 22px;
    }
}
@media only screen and (max-width: 1199px) {
    body {
        font-size: 18px;
        line-height: 27px;
        color: var(--text-color);
        font-family: 'Outfit', sans-serif;
    }
}
body {
    margin: 0;
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
    font-size: 1rem;
    font-weight: 400;
    line-height: 1.5;
    color: #212529;
    text-align: left;
    background-color: #fff;
}
:root {
    --primary--color: #030d43;
    --secondary--color: #A020F0;
    --text-color: #757887;
    --accent: #A020F0;
    --white-color: #fff;
}
:root {
    --primary-color: #FFF;
    --secondary-color: #1f1f1f;
    --accent: #072359;
    --text-color: #757887;
    --button-color: #243ffa;
    --e-global-color-secondary: #ffffff;
    --e-global-color-text: #b0b8db;
    --e-global-color-white: #ffffff;
    --e-global-color-black: #000000;
    --e-global-color-very-dark-blue: #0f1e5d;
    --e-global-color-vivid-yellow: #dfb405;
    --e-global-color-soft-red: #e45267;
    --e-global-color-dark-blue: #0d1a4f;
    --e-global-color-mostly-desaturated-dark-blue: #6f789e;
    --e-global-color-moderate-blue: #3c59d5;
    --e-global-color-bright-blue: #19296f;
    --e-global-color-soft-blue: #506ad9;
    --e-global-color-light-grayish-blue: #b0b8db;
    --e-global-color-very-bright-blue: #19296f;
    --e-global-color-very-soft-blue: #4e69d9;
    --e-global-color-dark-moderate-blue: #303f7e;
    --e-global-color-bright-moderate-blue: #334cb5;
    --e-global-color-soft-dark-blue: #283a8a;
    --e-global-color-very-dark-moderate-blue: #47548c;
    --e-global-color-very-light-moderate-blue: #4a65d8;
    --e-global-color-light-moderate-blue: #4d64cb;
}
:root {
    --blue: #007bff;
    --indigo: #6610f2;
    --purple: #6f42c1;
    --pink: #e83e8c;
    --red: #dc3545;
    --orange: #fd7e14;
    --yellow: #ffc107;
    --green: #28a745;
    --teal: #20c997;
    --cyan: #17a2b8;
    --white: #fff;
    --gray: #6c757d;
    --gray-dark: #343a40;
    --primary: #007bff;
    --secondary: #6c757d;
    --success: #28a745;
    --info: #17a2b8;
    --warning: #ffc107;
    --danger: #dc3545;
    --light: #f8f9fa;
    --dark: #343a40;
    --breakpoint-xs: 0;
    --breakpoint-sm: 576px;
    --breakpoint-md: 768px;
    --breakpoint-lg: 992px;
    --breakpoint-xl: 1200px;
    --font-family-sans-serif: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
    --font-family-monospace: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
}
html {
    font-family: sans-serif;
    line-height: 1.15;
    -webkit-text-size-adjust: 100%;
    -ms-text-size-adjust: 100%;
    -ms-overflow-style: scrollbar;
    -webkit-tap-highlight-color: transparent;
    scroll-behavior: smooth;
    scroll-padding-top: 110px;
}
*, ::after, ::before {
    box-sizing: border-box;
}
*, ::after, ::before {
    box-sizing: border-box;
}
@font-face {
    font-family: 'Outfit';
    font-style: normal;
    font-weight: 300;
    font-display: swap;
    src: url(https://fonts.gstatic.com/s/outfit/v15/QGYvz_MVcBeNP4NJuktqQ4E.woff2) format('woff2');
    unicode-range: U +0100 -02BA, U +02BD -02C5, U +02C7 -02CC, U +02CE -02D7, U +02DD -02FF, U +0304, U +0308, U +0329, U +1D00 -1DBF, U +1E00 -1E9F, U +1EF2 -1EFF, U +2020, U +20A0 -20AB, U +20AD -20C0, U +2113, U +2C60 -2C7F, U + A720-A7FF;
}

/* Keep the service checklist aligned in one column on phones. */
@media only screen and (max-width: 575px) {
    .banner-con .banner-title {
        padding-top: 72px;
    }

    .about-con .generic-list {
        display: block;
    }

    .about-con .generic-list ul {
        width: 100%;
        margin: 0 !important;
        padding-left: 0 !important;
    }
}

/* Add breathing room between the banner divider and its opening text. */
.banner-details-txt > p {
    padding-left: 28px !important;
}

.ceo-heading {
    margin: 0 0 32px;
    text-align: center;
    transform: translateY(-50px);
}

.ceo-heading span {
    display: inline-block;
    color: #a020f0;
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(38px, 4.5vw, 56px);
    font-weight: 800;
    line-height: 1.2;
    letter-spacing: 0.6px;
}

.ceo-heading p {
    max-width: 620px;
    margin: 8px auto 0;
    color: #555d72;
    font-size: clamp(16px, 1.5vw, 19px);
    line-height: 1.4;
    text-align: center;
}

.about-con.design-img {
    padding-top: 55px !important;
}

.ceo-image-wrap {
    transform: translateY(-24px);
}

.process-worker-image {
    display: flex;
    justify-content: center;
    margin-top: 70px;
}

.process-worker-image img {
    display: block;
    width: min(100%, 720px);
    height: auto;
    border-radius: 12px;
    box-shadow: 0 8px 24px rgba(16, 42, 87, .16);
}

.about-gallery img {
    animation: gallery-bounce 3s ease-in-out infinite;
    will-change: transform;
}

.about-gallery img:nth-child(2) { animation-delay: .35s; }
.about-gallery img:nth-child(3) { animation-delay: .7s; }

@keyframes gallery-bounce {
    0%, 100% { transform: translateY(0); }
    45% { transform: translateY(-14px); }
    65% { transform: translateY(-6px); }
}

@media (prefers-reduced-motion: reduce) {
    .about-gallery img { animation: none; }
}

/* Refined home header and hero layout. */
.home-page .top-address-bar {
    padding: 7px 20px !important;
    background: linear-gradient(90deg, #7b22da, #a020f0) !important;
}

.home-page .header-con {
    top: 0;
    position: relative;
    border-bottom: 1px solid #ececf4;
    box-shadow: 0 4px 20px rgba(16, 42, 87, .07);
}

.home-page .header-con .navbar { min-height: 106px; }
.home-page .header-con .navbar-light .navbar-nav .nav-link { color: #102a57; font-weight: 700; }
.home-page .header-con .navbar-light .navbar-nav .nav-item::after { background: #a020f0; }

.home-page .banner-con {
    float: none !important;
    width: calc(100% - 40px) !important;
    margin: 22px 20px 38px;
    padding: 32px 0 22px;
    overflow: hidden;
    border-radius: 24px;
    background: linear-gradient(120deg, #4c1ab4 0%, #7424d6 52%, #9c2ced 100%) !important;
    box-shadow: 0 18px 42px rgba(84, 25, 181, .22);
}

.home-page .banner-title { padding-top: 58px; }
.home-page .banner-title h3 { font-size: clamp(34px, 3.8vw, 56px); line-height: 1.13; }
.home-page .banner-title p { max-width: 520px; padding-right: 24px; }
.home-page .banner-btn a:first-child { padding: 14px 22px; border: 1px solid rgba(255, 255, 255, .48); border-radius: 8px; background: rgba(255, 255, 255, .12); }
.home-page .banner-btn a:first-child:hover { color: #6921cf; background: #fff; }

@media only screen and (min-width: 992px) {
    .home-page .banner-details > figure {
        transform: translateY(165px);
    }
}

@media only screen and (max-width: 991px) {
    .home-page .header-con .navbar { min-height: 0; }
    .home-page .navbar-collapse .nav-link { color: #fff !important; }
    .home-page .banner-con { width: calc(100% - 28px) !important; margin: 14px 14px 28px; border-radius: 18px; }
}

@media only screen and (max-width: 575px) {
    .home-page .banner-con { padding-top: 8px; }
    .home-page .banner-con .banner-title { padding-top: 46px; }
    .home-page .banner-title h3 { font-size: 34px; }
    .home-page .banner-title p { padding-right: 0; }
}

/* Match interior page headers and banners to the Home page treatment. */
.interior-page .header-con {
    top: 0;
    position: relative;
    background: #fff !important;
    border-bottom: 1px solid #ececf4;
    box-shadow: 0 4px 20px rgba(16, 42, 87, .07);
}

.interior-page .header-con .navbar { min-height: 106px; }
.interior-page .header-con .navbar-light .navbar-nav .nav-link { color: #102a57; font-weight: 700; }
.interior-page .header-con .navbar-light .navbar-nav .nav-item::after { background: #a020f0; }

.interior-page .sub-banner-con,
.interior-page .contact-page-intro {
    float: none !important;
    width: calc(100% - 40px) !important;
    min-height: 0 !important;
    margin: 22px 20px 38px;
    padding: 70px 20px !important;
    overflow: hidden;
    border-radius: 24px;
    background: linear-gradient(120deg, #4c1ab4 0%, #7424d6 52%, #9c2ced 100%) !important;
    box-shadow: 0 18px 42px rgba(84, 25, 181, .22);
}

.interior-page .sub-banner-con h1,
.interior-page .contact-page-intro h1 { font-size: clamp(38px, 5vw, 62px); }

@media only screen and (max-width: 991px) {
    .interior-page .header-con .navbar { min-height: 0; }
    .interior-page .navbar-collapse .nav-link { color: #fff !important; }
}

@media only screen and (max-width: 575px) {
    .interior-page .sub-banner-con,
    .interior-page .contact-page-intro {
        width: calc(100% - 28px) !important;
        margin: 14px 14px 28px;
        padding: 54px 18px !important;
        border-radius: 18px;
    }
}

.services-caption {
    max-width: 920px;
    margin: 48px auto 0;
    color: #555d72;
    font-size: clamp(17px, 2vw, 20px);
    line-height: 1.7;
    text-align: center;
}

.service-box-item figure {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 72px;
    height: 72px;
    margin: 0 0 22px;
    border-radius: 50%;
    background: rgba(160, 32, 240, .11);
}

.service-box-item .service-icon {
    color: #8d25df;
    font-size: 31px;
}

.process-img-box figure {
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    background: rgba(160, 32, 240, .10);
    border-radius: 50%;
    transition: background .25s ease, box-shadow .25s ease, transform .25s ease;
}

.process-img-box figure.is-active {
    background: #fff;
    box-shadow: 0 8px 20px rgba(49, 84, 227, .18);
    transform: translateY(-4px);
}

.process-img-box .process-icon {
    color: #3154e3;
    font-size: 52px;
}

/* Keep Opening Hours bullets clear of the footer edge on every page. */
.footer-main-section .footer-newsletter ul {
    padding-left: 24px !important;
    list-style-position: outside;
}

.footer-main-section .footer-newsletter li {
    padding-left: 8px;
}

.site-footer .footer-grid > div:last-child li i {
    width: auto;
    margin: 0 10px 0 8px;
}

.footer-social-links ul,
.footer-main-section .contact-details-box > div > ul,
.site-footer .social-links {
    justify-content: flex-start !important;
    padding-left: 0 !important;
}

.payment-consultation {
    max-width: 470px;
    margin: 52px auto 0;
}

.private-pay-rates {
    margin: 0 0 14px;
    color: #177c9c;
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(38px, 4vw, 50px);
    font-weight: 800;
    line-height: 1.2;
    letter-spacing: .4px;
    text-align: center;
}

.payment-consultation-link {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 20px 26px;
    color: #fff;
    background: #050505;
    font-size: 18px;
    font-weight: 700;
    letter-spacing: .5px;
    text-transform: uppercase;
    text-decoration: none;
}

.payment-consultation-link:hover { color: #fff; background: #1d1d1d; }
.payment-consultation-link i { color: #169bd7; font-size: 24px; }
.payment-methods { display: flex; flex-wrap: wrap; gap: 6px; padding: 10px 0; }
.payment-methods span { display: inline-flex; align-items: center; justify-content: center; min-width: 52px; height: 24px; padding: 0 5px; border: 1px solid #d8d8d8; color: #243d83; background: #fff; font-size: 9px; font-weight: 800; }
.payment-methods .paypal { color: #1275b9; }
.payment-methods .mastercard { color: #d6472e; }
.payment-methods .visa { color: #1a3e91; font-size: 12px; font-style: italic; }
.payment-methods .amex { color: #1275b9; background: #e8f7ff; }
@media only screen and (max-width: 575px) {
    .payment-consultation { margin-top: 38px; }
    .private-pay-rates { font-size: 34px; }
    .payment-consultation-link { justify-content: center; padding: 17px 16px; font-size: 15px; }
}

/* Remove the white decorative blocks from the lower-left banner area. */
.banner-inner-box::before {
    content: none !important;
    display: none !important;
    background: none !important;
}


.footer-social-links ul {
    justify-content: center;
    width: 100%;
}

@media only screen and (max-width: 991px) {
    .navbar-collapse .header-contact {
        width: 100%;
        margin: 18px 0 0;
        justify-content: center;
    }

    .navbar-collapse .header-contact .phone {
        width: 100%;
        justify-content: center;
        gap: 12px;
    }

    .navbar-collapse .header-contact .phone figure {
        margin-right: 0 !important;
    }

    .navbar-collapse .header-contact .phone-txt,
    .navbar-collapse .header-contact .phone-txt span,
    .navbar-collapse .header-contact .phone-txt a {
        color: #fff !important;
    }

    .navbar-collapse .header-contact .phone img {
        filter: brightness(0) invert(1) !important;
    }
}

.local-page { color: #17213c; background: #f7f9fe; font-family: 'Outfit', Arial, sans-serif; }
.local-page .top-address-bar { padding: 5px 20px; background: #a020f0; color: #fff; }
.local-page .top-address-bar p { margin: 0; color: #fff; font-size: 13px; }
.local-page .local-header { background: #fff; box-shadow: 0 2px 12px rgba(16, 42, 87, .08); }
.local-page .local-nav { display: flex; align-items: center; justify-content: space-between; gap: 24px; max-width: 1180px; margin: 0 auto; padding: 12px 20px; }
.local-page .local-logo { width: 190px; height: auto; }
.local-page .local-nav-links { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 22px; }
.local-page .local-nav-links a { color: #102a57; font-weight: 700; text-decoration: none; }
.local-page .local-nav-links a:hover, .local-page .local-nav-links a.active { color: #a020f0; }
.local-page .local-nav-toggle { display: none; border: 1px solid #a020f0; border-radius: 6px; background: #fff; color: #a020f0; font-size: 28px; line-height: 1; padding: 7px 12px; }
.local-page .local-hero { padding: 78px 20px; background: linear-gradient(135deg, #6426e8, #b337e8); color: #fff; text-align: center; }
.local-page .local-hero h1 { margin: 0 0 12px; color: #fff; font-size: clamp(38px, 5vw, 62px); font-weight: 800; }
.local-page .local-hero p { max-width: 700px; margin: 0 auto; color: #fff; font-size: 19px; }
.local-page .local-content { max-width: 1180px; margin: 0 auto; padding: 72px 20px; }
.local-page .local-intro { max-width: 800px; margin: 0 auto 40px; text-align: center; color: #626b7f; font-size: 18px; line-height: 1.7; }
.local-page .local-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; }
.local-page .local-card { padding: 30px; background: #fff; border-radius: 14px; box-shadow: 0 8px 28px rgba(16, 42, 87, .09); }
.local-page .local-card h2 { margin: 0 0 14px; color: #102a57; font-size: 24px; }
.local-page .local-card p, .local-page .local-card li { color: #626b7f; line-height: 1.65; }
.local-page .local-card ul { margin: 0; padding-left: 20px; }
.local-page .local-footer { padding: 28px 20px; background: #102a57; color: #fff; text-align: center; }
.local-page .local-footer a { color: #fff; text-decoration: none; }
@media only screen and (max-width: 767px) {
    .local-page .local-nav { position: relative; flex-direction: row; }
    .local-page .local-nav-toggle { display: block; }
    .local-page .local-nav-links { display: none; position: absolute; top: 100%; left: 20px; right: 20px; z-index: 10; padding: 22px; background: #102a57; border-radius: 10px; justify-content: center; gap: 16px; }
    .local-page .local-nav-links.open { display: flex; }
    .local-page .local-nav-links a { color: #fff; width: 100%; text-align: center; }
    .local-page .local-nav-links a.active, .local-page .local-nav-links a:hover { color: #e6b7ff; }
    .local-page .local-grid { grid-template-columns: 1fr; }
    .local-page .local-hero { padding: 55px 20px; }

    .footer-main-section .footer-inner-con {
        display: block;
    }

    .footer-main-section .footer-box {
        width: 100%;
        margin: 0 0 38px;
        text-align: left;
    }

    .footer-main-section .footer-box:last-child {
        margin-bottom: 0;
    }

    .footer-main-section .footer-newsletter ul,
    .footer-main-section .contact-details-box ul {
        text-align: left;
    }
}

@media only screen and (max-width: 575px) {
    .ceo-heading {
        margin-bottom: 24px;
    }

    .about-con.design-img {
        padding-top: 38px !important;
    }
}
