:root {
    --blue: #075fe7;
    --navy: #07152c;
    --ink: #07183b;
    --pale: #f3f7ff;
    --line: #dce5f2
}

* {
    box-sizing: border-box
}

body {
    font-family: 'DM Sans',sans-serif;
    color: var(--ink);
    margin: 0
}

p {
    font-size: 15px;
    line-height: 1.7;
    margin: 0 0 1rem
}

h1,h2,h3,.navbar-brand {
    font-family: 'Space Grotesk',sans-serif
}

.topbar {
    background: #050e1d;
    color: #fff;
    font-size: 14px;
    padding: 8px 0
}

.topbar a,.topbar span {
    color: #fff;
    text-decoration: none;
    margin-right: 30px
}

.navbar {
    min-height: 86px;
    border-bottom: 1px solid #eef2f8
}

.navbar-brand {
    font-size: 38px;
    line-height: .7;
    letter-spacing: -.1em;
    color: var(--blue)!important;
    font-weight: 700
}

.navbar-brand small {
    display: block;
    color: var(--ink);
    font-family: 'DM Sans';
    font-size: 12px;
    letter-spacing: .07em;
    line-height: 1.2
}

.nav-link {
    font-family: 'Space Grotesk';
    font-weight: 600;
    color: var(--ink);
    padding: 28px 16px!important
}

.nav-link.active {
    color: var(--blue);
    border-bottom: 3px solid var(--blue)
}

.btn-primary {
    background: var(--blue);
    border-color: var(--blue);
    font-weight: 700
}

.btn,.btn-lg,.btn-sm,.btn-primary,.btn-outline-light,.load-more,.service-load-more {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    font: 700 15px/1.2 'Space Grotesk',sans-serif;
    letter-spacing: .01em;
    border-radius: 10px;
    white-space: nowrap;
    text-transform: capitalize
}

.btn {
    min-height: 48px;
    padding: 0 18px
}

.btn-lg {
    min-height: 52px;
    padding: 0 22px
}

.btn-sm {
    min-height: 38px;
    padding: 0 14px;
    font-size: 13px
}

a {
    text-transform: capitalize
}

.hero {
    min-height: 565px;
    color: #fff;
    background: linear-gradient(90deg,rgba(2,13,29,.94),rgba(3,16,35,.72) 46%,rgba(3,16,35,.12)),url('https://images.unsplash.com/photo-1581578731548-c64695cc6952?auto=format&fit=crop&w=1800&q=85') center/cover;
    position: relative
}

.hero .container {
    min-height: 565px;
    display: flex;
    align-items: center;
    position: relative
}

.hero-copy {
    max-width: 720px;
    padding: 40px 0
}

.eyebrow,.section-title>p,.section-label {
    color: var(--blue);
    font-size: 13px;
    text-transform: uppercase;
    letter-spacing: .14em;
    font-weight: 700
}

.hero .eyebrow {
    color: #b9d7ff
}

.hero h1 {
    font-size: clamp(37px,4.6vw,63px);
    line-height: 1.05;
    margin: 12px 0
}

.hero h2 {
    color: var(--blue);
    font-size: clamp(24px,3vw,39px);
    margin: 0 0 14px
}

.hero-copy>p:not(.eyebrow) {
    font-size: 16px;
    max-width: 660px
}

.hero-points {
    display: flex;
    flex-wrap: wrap;
    gap: 20px;
    margin: 25px 0;
    font-size: 13px
}

.hero-points span {
    display: flex;
    gap: 8px;
    align-items: center;
    max-width: 160px
}

.hero-points span:first-letter {
    font-size: 26px
}

.hero-buttons {
    display: flex;
    gap: 28px
}

.trusted-badge {
    position: absolute;
    right: 40px;
    top: 60px;
    background: #fff;
    color: #111;
    border: 8px solid #d51926;
    border-radius: 50%;
    height: 155px;
    width: 155px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    transform: rotate(7deg);
    text-align: center
}

.trusted-badge strong {
    font-size: 35px;
    color: #b81721
}

.trusted-badge span {
    font-weight: 700
}

.reviews-strip {
    background: var(--pale)
}

.rating-box,.review-card {
    height: 100%;
    background: #fff;
    border-radius: 7px;
    padding: 14px;
    box-shadow: 0 4px 12px #0d2a5c12
}

.rating-box h3 {
    font-size: 20px
}

.stars {
    color: #f7b415;
    font-size: 20px;
    letter-spacing: 2px
}

.rating-box small {
    font-size: 12px
}

.review-card p {
    font-size: 15px;
    line-height: 1.7;
    min-height: 50px;
    margin-bottom: 8px
}

.review-card strong {
    font-size: 12px
}

.section-pad {
    padding: 70px 0
}

.section-title {
    margin-bottom: 30px
}

.section-title h2,.about h2,.quote h2 {
    font-size: 42px;
    line-height: 1.05;
    margin: 4px 0 8px
}

.section-title h2 span,.about h2 span {
    color: var(--blue)
}

.section-title small {
    display: block;
    max-width: 580px;
    color: #53647b
}

.service-card {
    height: 100%;
    background: #fff;
    border: 1px solid var(--line);
    border-radius: 7px;
    overflow: hidden;
    box-shadow: 0 4px 14px #122b5210;
    transition: .2s
}

.service-card:hover {
    transform: translateY(-4px);
    box-shadow: 0 12px 25px #122b5220
}

.service-visual {
    height: 110px;
    background: linear-gradient(135deg,#114ca9,#73a8eb);
    position: relative
}

.service-visual:after {
    content: '✦';
    position: absolute;
    bottom: 12px;
    left: 14px;
    background: #082a68;
    color: #fff;
    border: 3px solid #fff;
    border-radius: 50%;
    width: 40px;
    height: 40px;
    text-align: center;
    line-height: 34px
}

.visual-2 {
    background: linear-gradient(135deg,#cda25d,#f1d292)
}

.visual-3 {
    background: linear-gradient(135deg,#b97131,#e5b26f)
}

.visual-4 {
    background: linear-gradient(135deg,#333b46,#8897a9)
}

.visual-5 {
    background: linear-gradient(135deg,#7a4b2e,#d49f6e)
}

.visual-6 {
    background: linear-gradient(135deg,#315a68,#8bc1c0)
}

.service-visual span {
    color: #fff;
    font-weight: 700;
    position: absolute;
    top: 10px;
    left: 12px
}

.service-body {
    padding: 15px
}

.service-body h3 {
    margin: 0 0 10px;
    padding-top: 0;
    border-top: 0;
    font-size: 15px;
    line-height: 1.18
}

.service-card-title {
    display: block;
    color: #fff;
    font-family: 'Space Grotesk',sans-serif;
    font-size: 15px;
    line-height: 1.35;
    font-weight: 700;
    text-decoration: none
}

.service-card-title:hover,.service-card-title:focus-visible {
    color: #dfeeff;
    text-decoration: none
}

.service-body p {
    font-size: 15px;
    color: #687891;
    line-height: 1.6;
    min-height: 42px
}

.service-body a {
    font-size: 12px;
    color: var(--blue);
    font-weight: 700;
    text-decoration: none
}

.about {
    background: #f7faff
}

.about h2 {
    font-size: 48px
}

.about p:not(.section-label) {
    color: #53647b
}

.surface-list {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-top: 24px
}

.surface-list b {
    width: 100%;
    color: var(--ink)
}

.surface-list span {
    padding: 7px 11px;
    background: #fff;
    border: 1px solid var(--line);
    border-radius: 20px;
    font-size: 12px
}

.achievement-card {
    background: #fff;
    border: 1px solid var(--line);
    padding: 35px;
    text-align: center;
    box-shadow: 0 8px 22px #17335a12
}

.achievement-card strong {
    display: block;
    font-size: 54px;
    color: #ba161d
}

.achievement-card>span {
    font-weight: 700;
    font-size: 22px
}

.achievement-card hr {
    margin: 28px 0
}

.award-row {
    display: flex;
    justify-content: space-around;
    color: var(--blue);
    font-size: 20px
}

.gallery {
    background: var(--pale)
}

.gallery-tile {
    height: 300px;
    border-radius: 7px;
    position: relative;
    overflow: hidden;
    background: linear-gradient(135deg,#133d72,#75a2d8)
}

.gallery-tile:after {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(transparent 45%,#051630d9)
}

.tile-two {
    background: linear-gradient(135deg,#b7773f,#e6c28c)
}

.tile-three {
    background: linear-gradient(135deg,#3d5669,#9eabb7)
}

.gallery-tile span {
    position: absolute;
    z-index: 1;
    bottom: 20px;
    left: 20px;
    color: #fff;
    font-weight: 700
}

.quote {
    background: var(--navy);
    color: #fff
}

.quote h2 {
    font-size: 52px
}

.quote p:not(.eyebrow) {
    color: #c1cfdd
}

.contact-info {
    display: flex;
    flex-direction: column;
    gap: 10px;
    margin-top: 30px
}

.contact-info a {
    color: #a6cbff;
    text-decoration: none
}

.quote-form {
    background: #fff;
    padding: 25px;
    color: var(--ink);
    border-radius: 7px
}

.quote-form input,.quote-form select,.quote-form textarea {
    width: 100%;
    border: 1px solid var(--line);
    padding: 12px;
    font: inherit;
    font-size: 13px
}

.form-status {
    color: #258050;
    margin-left: 10px
}

.quote-form .form-status[data-state="error"] {
    color: #a51f1f;
}

.footer {
    background: #050e1d;
    color: #aabbd0
}

.footer-logo {
    color: #fff!important
}

.footer h3 {
    font-size: 14px;
    color: #fff
}

.footer a {
    display: block;
    color: #aabbd0;
    text-decoration: none;
    margin: 8px 0;
    font-size: 13px
}

.footer-bottom {
    border-top: 1px solid #22344b
}

.footer-bottom>.container {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    min-height: 44px;
    padding: 8px 0;
    color: #dfeaf8;
    font-size: 12px
}

.footer-bottom>.container>span,.footer-bottom>.container>p {
    margin: 0;
    font-size: 12px;
    line-height: 1.5
}

.footer-bottom>.container>p {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    flex-wrap: wrap;
    gap: 6px;
    text-align: right
}

.footer-bottom>.container>p a {
    display: inline;
    color: #dfeaf8;
    text-decoration: none;
    font-weight: 700
}

.footer-bottom>.container>p a:hover {
    color: #fff
}

@media(max-width: 991px) {
    .nav-link {
        padding:10px!important
    }

    .nav-link.active {
        border: 0
    }

    .trusted-badge {
        right: 20px;
        top: 30px;
        transform: scale(.8) rotate(7deg)
    }

    .hero-copy {
        padding-top: 85px
    }

    .hero-points {
        max-width: 500px
    }
}

@media(max-width: 575px) {
    .container {
        width:calc(100% - 28px)
    }

    .topbar span {
        display: none
    }

    .topbar a {
        font-size: 12px;
        margin-right: 10px
    }

    .navbar-brand {
        font-size: 29px
    }

    .hero {
        min-height: 650px
    }

    .hero .container {
        min-height: 650px
    }

    .hero h1 {
        font-size: 38px
    }

    .hero h2 {
        font-size: 25px
    }

    .trusted-badge {
        display: none
    }

    .hero-buttons {
        flex-direction: column;
        align-items: flex-start;
        gap: 12px
    }

    .section-pad {
        padding: 50px 0
    }

    .section-title h2,.about h2,.quote h2 {
        font-size: 36px
    }

    .gallery-tile {
        height: 220px
    }
}

.logo-image {
    width: 255px;
    height: 72px;
    display: block
}

.logo-image img {
    width: 100%;
    height: 100%;
    object-fit: contain;
    object-position: left center
}

.service-visual {
    background-size: cover;
    background-position: center
}

.visual-1 {
    background-image: url('../images/client/home-tgb.jpg')
}

.visual-2 {
    background-image: url('../images/client/patio.jpg')
}

.visual-3 {
    background-image: url('../images/client/imprint.jpg')
}

.visual-4 {
    background-image: url('../images/client/sealed.jpg')
}

.visual-5 {
    background-image: url('../images/client/7a.jpg')
}

.visual-6 {
    background-image: url('../images/client/Smart_Seal.png')
}

.gallery-tile {
    background-size: cover;
    background-position: center
}

.tile-one {
    background-image: linear-gradient(transparent 45%,#051630d9),url('../images/client/home-tgb.jpg')
}

.tile-two {
    background-image: linear-gradient(transparent 45%,#051630d9),url('../images/client/patio.jpg')
}

.tile-three {
    background-image: linear-gradient(transparent 45%,#051630d9),url('../images/client/7a.jpg')
}

.achievement-card {
    background-image: linear-gradient(#ffffffea,#ffffffea),url('../images/client/global-awards.jpg');
    background-size: cover
}

.footer-logo span,.footer-logo small {
    visibility: hidden
}

.footer-logo {
    background: url('../images/client/logo.png') left center/contain no-repeat;
    height: 70px
}

.navbar-brand {
    width: 255px;
    height: 72px;
    background: url('../images/client/logo.png') left center/contain no-repeat;
    font-size: 0
}

.navbar-brand span,.navbar-brand small {
    display: none
}

.navbar-brand {
    width: 255px;
    height: 72px;
    background: url('../images/client/logo.png') left center/contain no-repeat;
    font-size: 0
}

.navbar-brand span,.navbar-brand small {
    display: none
}

@media(max-width: 575px) {
    .navbar-brand {
        width:200px;
        height: 62px
    }
}

.hero {
    background-image: linear-gradient(90deg,rgba(2,13,29,.94),rgba(3,16,35,.72) 46%,rgba(3,16,35,.12)),url('../images/client/home-tgb.jpg')
}

.trusted-badge,.hero-points span:first-child,.achievement-card>p:first-child,.achievement-card>strong,.achievement-card>span {
    display: none
}

.achievement-card hr {
    margin-top: 0
}

.service-card:nth-child(1) .service-visual {
    background-image: url('../images/client/home-tgb.jpg')
}

.service-card:nth-child(2) .service-visual {
    background-image: url('../images/client/7a.jpg')
}

.service-card:nth-child(3) .service-visual {
    background-image: url('../images/client/patio.jpg')
}

.service-card:nth-child(4) .service-visual {
    background-image: url('../images/client/imprint.jpg')
}

.service-card:nth-child(5) .service-visual {
    background-image: url('../images/client/sealed.jpg')
}

.service-card:nth-child(6) .service-visual {
    background-image: url('../images/client/7a.jpg')
}

.service-card:nth-child(7) .service-visual {
    background-image: url('../images/client/interior-floor-clean-home.jpg')
}

.service-card:nth-child(8) .service-visual {
    background-image: url('../images/client/logos.jpg')
}

.service-card:nth-child(9) .service-visual {
    background-image: url('../images/client/home-tgb.jpg')
}

.service-card:nth-child(10) .service-visual {
    background-image: url('../images/client/home-tgb.jpg')
}

.service-card:nth-child(11) .service-visual {
    background-image: url('../images/client/Smart_Seal.png')
}

.service-card:nth-child(12) .service-visual {
    background-image: url('../images/client/sealed.jpg')
}

.service-card:nth-child(13) .service-visual {
    background-image: url('../images/client/7a.jpg')
}

.service-card:nth-child(14) .service-visual {
    background-image: url('../images/client/Smart_Seal.png')
}

.gallery-grid {
    display: grid;
    grid-template-columns: repeat(4,1fr);
    grid-auto-rows: 180px;
    gap: 14px
}

.gallery-item {
    margin: 0;
    position: relative;
    overflow: hidden;
    border-radius: 10px
}

.gallery-item-1 {
    grid-row: span 2;
    grid-column: span 2
}

.gallery-item-4 {
    grid-row: span 2
}

.gallery-item button {
    border: 0;
    padding: 0;
    width: 100%;
    height: 100%;
    display: block;
    position: relative;
    background: #081b36;
    cursor: zoom-in
}

.gallery-item img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transition: transform .45s,filter .45s
}

.gallery-item button:hover img {
    transform: scale(1.07);
    filter: brightness(.7)
}

.gallery-overlay {
    position: absolute;
    inset: auto 0 0;
    padding: 50px 18px 16px;
    color: #fff;
    display: flex;
    justify-content: space-between;
    align-items: end;
    background: linear-gradient(transparent,rgba(2,13,29,.85));
    opacity: 0;
    transition: .25s;
    text-align: left
}

.gallery-item button:hover .gallery-overlay {
    opacity: 1
}

.gallery-overlay b {
    font-family: 'Space Grotesk';
    font-size: 19px
}

.gallery-overlay i {
    font-style: normal;
    font-size: 11px
}

.lightbox {
    position: fixed;
    z-index: 1000;
    inset: 0;
    background: rgba(3,12,25,.92);
    display: none;
    align-items: center;
    justify-content: center;
    padding: 30px
}

.lightbox.is-open {
    display: flex
}

.lightbox img {
    max-width: min(100%,1100px);
    max-height: 90vh;
    object-fit: contain;
    box-shadow: 0 20px 70px #000
}

.lightbox-close {
    position: absolute;
    right: 25px;
    top: 15px;
    border: 0;
    background: none;
    color: #fff;
    font-size: 42px;
    cursor: pointer
}

@media(max-width: 767px) {
    .gallery-grid {
        grid-template-columns:repeat(2,1fr);
        grid-auto-rows: 150px;
        gap: 9px
    }

    .gallery-item-1 {
        grid-row: span 2;
        grid-column: span 2
    }

    .gallery-item-4 {
        grid-row: span 1
    }
}

.comparison-grid {
    display: grid;
    grid-template-columns: repeat(3,1fr);
    gap: 20px
}

.comparison-card {
    background: #fff;
    border: 1px solid var(--line);
    border-radius: 10px;
    overflow: hidden;
    box-shadow: 0 7px 22px #102c5512
}

.comparison {
    height: 260px;
    position: relative;
    overflow: hidden;
    background: #dce7f2
}

.comparison img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block
}

.comparison-after {
    position: absolute;
    inset: 0
}

.comparison-before {
    position: absolute;
    inset: 0;
    width: var(--split);
    overflow: hidden;
    border-right: 3px solid #fff;
    z-index: 2
}

.comparison-before img {
    width: calc(100% + 1px);
    max-width: none
}

.comparison-label {
    position: absolute;
    top: 14px;
    z-index: 4;
    color: #fff;
    background: rgba(5,14,29,.78);
    padding: 5px 9px;
    border-radius: 3px;
    font-size: 10px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .1em
}

.label-before {
    left: 14px
}

.label-after {
    right: 14px
}

.comparison-handle {
    position: absolute;
    z-index: 3;
    top: 0;
    bottom: 0;
    left: var(--split);
    width: 0;
    border-left: 2px solid #fff;
    pointer-events: none
}

.comparison-handle span {
    position: absolute;
    top: 50%;
    left: -18px;
    transform: translateY(-50%);
    width: 34px;
    height: 34px;
    border-radius: 50%;
    background: #fff;
    color: var(--blue);
    display: grid;
    place-items: center;
    font-size: 18px;
    box-shadow: 0 3px 10px #061a38aa
}

.comparison-range {
    position: absolute;
    z-index: 5;
    inset: 0;
    width: 100%;
    height: 100%;
    opacity: 0;
    cursor: ew-resize;
    margin: 0
}

.comparison-caption {
    padding: 14px 16px;
    display: flex;
    justify-content: space-between;
    align-items: center
}

.comparison-caption strong {
    font-family: 'Space Grotesk';
    font-size: 15px
}

.comparison-caption span {
    font-size: 11px;
    color: var(--muted)
}

@media(max-width: 991px) {
    .comparison-grid {
        grid-template-columns:repeat(2,1fr)
    }
}

@media(max-width: 575px) {
    .comparison-grid {
        grid-template-columns:1fr
    }

    .comparison {
        height: 240px
    }
}

.load-more {
    display: block;
    margin: 34px auto 0;
    padding: 13px 25px;
    border: 1px solid var(--ink);
    background: #fff;
    color: var(--ink);
    border-radius: 5px;
    font-weight: 700;
    transition: .2s
}

.load-more:hover {
    background: var(--blue);
    border-color: var(--blue);
    color: #fff;
    transform: translateY(-2px)
}

.load-more[hidden] {
    display: none
}

.gallery .tile-one,.gallery .tile-two,.gallery .tile-three {
    display: none!important
}

:root {
    --blue: #073b8f;
    --navy: #03152f;
    --ink: #061b3d;
    --pale: #f1f6ff;
    --line: #d6e1f0
}

.btn,.load-more,.nav-link,.service-body a,.footer a,.contact-info a {
    transition: color .25s ease,background-color .25s ease,border-color .25s ease,transform .25s ease,box-shadow .25s ease
}

.btn {
    position: relative;
    overflow: hidden;
    isolation: isolate
}

.btn:before {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(100deg,#0a4ba8,#062861);
    transform: translateX(-101%);
    transition: transform .35s ease;
    z-index: -1
}

.btn:hover:before {
    transform: translateX(0)
}

.btn:hover {
    color: #fff;
    border-color: #062861;
    transform: translateY(-2px);
    box-shadow: 0 8px 18px rgba(3,21,47,.2)
}

.btn-outline-light:hover {
    background: transparent
}

.nav-link {
    position: relative
}

.nav-link:after {
    content: '';
    position: absolute;
    left: 16px;
    right: 16px;
    bottom: 8px;
    height: 2px;
    background: var(--blue);
    transform: scaleX(0);
    transform-origin: left;
    transition: transform .3s ease
}

.nav-link:hover:after,.nav-link.active:after {
    transform: scaleX(1)
}

.service-body a,.footer a,.contact-info a {
    display: inline-block
}

.service-body a:hover,.contact-info a:hover {
    color: #0a4ba8;
    transform: translateX(6px)
}

.load-more:hover {
    background: var(--blue);
    border-color: var(--blue);
    color: #fff;
    transform: translateY(-3px);
    box-shadow: 0 8px 18px rgba(7,59,143,.22)
}

.footer a:hover {
    color: #fff;
    transform: translateX(4px)
}

.hero-form {
    width: min(390px,100%);
    margin: 45px 0 20px 45px;
    padding: 22px;
    background: rgba(255,255,255,.97);
    border-radius: 8px;
    box-shadow: 0 18px 40px rgba(0,0,0,.28);
    color: var(--ink);
    z-index: 2
}

.hero-form h3 {
    font-size: 25px;
    margin: 3px 0 7px
}

.hero-form-eyebrow {
    color: var(--blue);
    font-size: 11px;
    font-weight: 700;
    letter-spacing: .13em;
    text-transform: uppercase;
    margin: 0
}

.hero-form-intro {
    font-size: 12px;
    color: #617189;
    margin-bottom: 14px
}

.hero-form .quote-form {
    padding: 0;
    background: transparent
}

.hero-form .quote-form input,.hero-form .quote-form select,.hero-form .quote-form textarea {
    background: #fff
}

.hero-form .quote-form textarea {
    height: 74px
}

.hero-form .quote-form .btn {
    font-size: 14px;
    padding: 11px
}

.hero-form .form-status {
    display: block;
    margin: 8px 0 0;
    font-size: 12px
}

@media(max-width: 991px) {
    .hero-form {
        margin:35px 0 35px 25px;
        width: 360px
    }

    .hero .container {
        align-items: flex-start
    }

    .hero-copy {
        max-width: 55%
    }
}

@media(max-width: 767px) {
    .hero .container {
        display:block
    }

    .hero-copy {
        max-width: 100%;
        padding-bottom: 25px
    }

    .hero-form {
        width: 100%;
        margin: 0 0 38px
    }

    .hero {
        padding-bottom: 20px
    }
}

.quote {
    display: none!important
}

.header-socials {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-left: auto
}

.header-socials a {
    display: grid;
    place-items: center;
    width: 25px;
    height: 25px;
    border: 1px solid rgba(255,255,255,.55);
    border-radius: 50%;
    color: #fff!important;
    text-decoration: none;
    font-size: 13px;
    font-weight: 700;
    transition: .2s
}

.header-socials a:hover {
    background: #fff;
    color: var(--navy)!important;
    transform: translateY(-2px)
}

@media(max-width: 991px) {
    .header-socials {
        display:none
    }
}

@media(max-width: 575px) {
    .topbar .container>div:first-child {
        width:100%;
        justify-content: center
    }

    .topbar .container>div:first-child a:nth-child(n+3) {
        display: none
    }
}

.topbar {
    background: var(--navy);
    padding: 9px 0
}

.topbar .container {
    align-items: center;
    min-height: 28px
}

.topbar .container>div:first-child {
    display: flex;
    align-items: center;
    gap: 22px
}

.topbar .container>div:first-child a:nth-child(1),.topbar .container>div:first-child a:nth-child(2) {
    display: none
}

.topbar a,.topbar span {
    font-size: 12px;
    margin: 0;
    color: #eaf3ff
}

.topbar a:hover {
    color: #b8e4ff
}

.navbar {
    box-shadow: 0 4px 18px rgba(4,21,47,.08);
    border-bottom: 0
}

.navbar .container {
    min-height: 84px
}

.navbar-brand {
    flex: 0 0 auto
}

.nav-link {
    font-size: 14px;
    padding: 30px 13px!important
}

.navbar .btn-primary {
    box-shadow: 0 6px 15px rgba(7,59,143,.2);
    padding: 11px 18px
}

.header-socials {
    margin-left: 14px;
    padding-left: 18px;
    border-left: 1px solid rgba(255,255,255,.28)
}

@media (min-width: 768px) {
    .topbar .container>div:first-child a:nth-child(1),
    .topbar .container>div:first-child a:nth-child(2) {
        display: inline-flex;
    }
}

.topbar .container {
    position: relative
}

.header-location {
    display: flex;
    align-items: center;
    gap: 7px;
    margin-left: auto!important;
    color: #fff!important
}

.header-location svg {
    width: 16px;
    height: 16px;
    fill: none;
    stroke: #b8e4ff;
    stroke-width: 2
}

.header-location span {
    font-size: 12px
}

.header-socials {
    margin-left: 18px
}

.topbar i,.header-location i {
    color: #b8e4ff;
    margin-right: 5px
}

.header-location svg {
    display: none
}

.hero-points i {
    color: #b8e4ff;
    font-size: 22px;
    width: 25px;
    text-align: center
}

.stars i {
    font-size: 15px;
    margin-right: 3px;
    color: #f7b415
}

.btn i,.nav-link i,.service-body a i {
    margin-left: 7px
}

.header-socials i {
    margin: 0;
    color: inherit
}

.hero-form .btn i {
    margin-left: 7px
}

.nav-link.active:after {
    display: none
}

.nav-link.active {
    border-bottom: 3px solid var(--blue)
}

.header-socials {
    gap: 8px;
    border-left: 0;
    padding-left: 0
}

.header-socials a {
    width: 28px;
    height: 28px;
    border: 1px solid rgba(184,228,255,.7);
    background: rgba(255,255,255,.04);
    font-size: 13px
}

.header-socials a:hover {
    background: #b8e4ff;
    color: var(--navy)!important;
    border-color: #b8e4ff;
    box-shadow: 0 4px 10px rgba(184,228,255,.25)
}

.header-socials i {
    font-size: 12px
}

.topbar .container>div:first-child a {
    font-weight: 600
}

.nav-link.active {
    border-bottom: 0!important
}

.nav-link:after {
    bottom: 17px;
    height: 2px
}

.nav-link.active:after {
    display: block!important;
    left: 50%;
    right: auto;
    width: 32px;
    transform: translateX(-50%) scaleX(1);
    transform-origin: center
}

.nav-link:hover:after {
    left: 50%;
    right: auto;
    width: 32px;
    transform: translateX(-50%) scaleX(1);
    transform-origin: center
}

.btn-primary,.nav-cta {
    background: linear-gradient(135deg,#0b63dc 0%,#063681 100%);
    border-color: #063681;
    color: #fff;
    box-shadow: 0 6px 14px rgba(6,54,129,.22)
}

.btn-primary:hover,.nav-cta:hover {
    background: linear-gradient(135deg,#084da9 0%,#041f55 100%);
    border-color: #041f55;
    color: #fff;
    transform: translateY(-3px);
    box-shadow: 0 10px 22px rgba(6,54,129,.32)
}

.btn i,.nav-cta i {
    transition: transform .25s ease
}

.btn:hover i,.nav-cta:hover i {
    transform: translateX(4px)
}

.hero-buttons .btn-outline-light {
    background: linear-gradient(135deg,rgba(12,82,171,.4),rgba(3,24,61,.72));
    border-color: #fff
}

.hero-buttons .btn-outline-light:hover {
    background: linear-gradient(135deg,#0b63dc,#063681);
    border-color: #0b63dc
}

.load-more {
    background: linear-gradient(135deg,#fff,#edf4ff)
}

.hero {
    min-height: 650px;
    background-position: center;
    overflow: hidden
}

.hero:before {
    background: linear-gradient(90deg,rgba(2,13,29,.97) 0%,rgba(3,16,35,.87) 42%,rgba(3,16,35,.36) 76%,rgba(3,16,35,.2) 100%)
}

.hero .container {
    min-height: 650px;
    gap: 28px
}

.hero-copy {
    max-width: 700px;
    padding: 48px 0
}

.hero h1 {
    font-size: clamp(40px,4.35vw,60px);
    line-height: 1.04;
    letter-spacing: -.055em;
    margin: 10px 0 18px;
    text-wrap: balance
}

.hero h2 {
    color: #8ec7ff;
    font-size: clamp(24px,2.65vw,36px);
    letter-spacing: -.035em;
    margin-bottom: 18px
}

.hero-copy>p:not(.eyebrow) {
    font-size: 15px;
    line-height: 1.6;
    max-width: 640px;
    color: #f0f6ff
}

.hero-points {
    display: grid;
    grid-template-columns: repeat(3,minmax(0,1fr));
    gap: 14px;
    margin: 24px 0 25px;
    max-width: 660px
}

.hero-points span {
    max-width: none;
    align-items: center;
    font-size: 12px;
    line-height: 1.35;
    color: #f3f8ff
}

.hero-points i {
    flex: 0 0 25px
}

.hero-buttons {
    gap: 14px
}

.hero-buttons .btn {
    padding: 12px 17px;
    font-size: 15px
}

.hero-form {
    flex: 0 0 390px;
    margin: 0 0 0 auto;
    padding: 24px;
    border-radius: 10px
}

.hero-form h3 {
    font-size: 26px
}

.hero-form-intro {
    line-height: 1.45
}

.hero-form .quote-form {
    gap: 12px!important
}

.hero-form .quote-form input,.hero-form .quote-form select,.hero-form .quote-form textarea {
    border-radius: 4px
}

.hero-form .quote-form .btn {
    padding: 12px
}

@media(max-width: 991px) {
    .hero .container {
        gap:15px
    }

    .hero-copy {
        max-width: 57%
    }

    .hero-form {
        flex-basis: 350px
    }

    .hero-points {
        grid-template-columns: repeat(2,1fr)
    }
}

@media(max-width: 767px) {
    .hero .container {
        min-height:auto
    }

    .hero-copy {
        padding: 68px 0 25px
    }

    .hero-copy,.hero-form {
        max-width: 100%
    }

    .hero-form {
        width: 100%;
        margin: 0 0 28px
    }

    .hero-points {
        grid-template-columns: 1fr 1fr
    }

    .hero h1 {
        font-size: 42px
    }
}

.hero {
    background-size: cover;
    animation: heroZoom 18s ease-in-out infinite alternate
}

@keyframes heroZoom {
    0% {
        background-size: 100% auto;
        background-position: center center
    }

    100% {
        background-size: 112% auto;
        background-position: center center
    }
}

.hero-form .quote-form {
    display: grid!important;
    grid-template-columns: 1fr 1fr;
    gap: 12px!important;
    margin: 0!important
}

.hero-form .quote-form>* {
    min-width: 0;
    padding: 0!important
}

.hero-form .quote-form>.col-12 {
    grid-column: 1/-1
}

.hero-form .quote-form input,.hero-form .quote-form select,.hero-form .quote-form textarea {
    width: 100%;
    min-width: 0
}

.hero-form .quote-form textarea {
    height: 82px
}

.hero-form .quote-form button {
    grid-column: 1/-1;
    width: 100%
}

@media(max-width: 767px) {
    .hero {
        animation-duration:24s
    }

    .hero-form .quote-form {
        grid-template-columns: 1fr
    }

    .hero-form .quote-form>.col-12,.hero-form .quote-form button {
        grid-column: auto
    }
}

.hero {
    background-repeat: no-repeat
}

.hero-form .quote-form>.col-sm-6,.hero-form .quote-form>.col-12 {
    width: auto;
    flex: none
}

.hero-form .quote-form>.col-sm-6 {
    grid-column: auto
}

.hero-form .quote-form input,.hero-form .quote-form select,.hero-form .quote-form textarea {
    display: block;
    box-sizing: border-box;
    width: 100%;
    max-width: none
}

.hero-buttons {
    display: flex;
    align-items: center;
    gap: 14px
}

.hero-buttons .btn {
    min-width: 190px;
    min-height: 52px;
    justify-content: space-between;
    border-radius: 7px;
    padding: 13px 17px;
    font-size: 15px;
    line-height: 1
}

.hero-buttons .btn-primary {
    background: linear-gradient(135deg,#1768e5,#123b92);
    border: 1px solid #1768e5
}

.hero-buttons .btn-primary:hover {
    background: linear-gradient(135deg,#0d4eb8,#08265f)
}

.hero-buttons .btn-outline-light {
    background: rgba(3,19,45,.58);
    border: 1px solid rgba(255,255,255,.95);
    color: #fff
}

.hero-buttons .btn-outline-light:hover {
    background: linear-gradient(135deg,#1768e5,#123b92);
    border-color: #1768e5
}

.hero-buttons .btn i {
    font-size: 14px;
    margin-left: 18px;
    transition: transform .25s ease
}

.hero-buttons .btn:hover i {
    transform: translateX(4px)
}

@media(max-width: 575px) {
    .hero-buttons {
        width:100%
    }

    .hero-buttons .btn {
        width: 100%;
        max-width: 260px
    }
}

.hero-buttons .btn {
    min-width: 190px;
    justify-content: center;
    gap: 12px;
    padding: 13px 16px
}

.hero-buttons .btn i {
    margin-left: 0
}

.hero-buttons .btn-primary {
    box-shadow: 0 7px 15px rgba(5,48,120,.28)
}

.hero-buttons .btn-outline-light {
    box-shadow: inset 0 0 0 1px rgba(255,255,255,.12)
}

.hero-buttons .btn {
    height: 50px!important;
    min-height: 50px!important;
    width: auto!important;
    min-width: 0!important;
    padding: 0 18px!important;
    display: inline-flex!important;
    justify-content: center!important;
    align-items: center!important;
    gap: 12px!important;
    white-space: nowrap!important;
    border-radius: 6px!important;
    font-size: 15px!important
}

.hero-buttons .btn:first-child {
    width: 210px!important
}

.hero-buttons .btn:last-child {
    width: 225px!important
}

.hero-buttons .btn:before {
    display: none!important
}

.hero-buttons .btn i {
    margin: 0!important;
    font-size: 13px!important
}

.hero-buttons .btn:hover {
    transform: translateY(-2px)!important
}

@media(max-width: 575px) {
    .hero-buttons .btn:first-child,.hero-buttons .btn:last-child {
        width:100%!important;
        max-width: 280px!important
    }
}

.hero-buttons .btn {
    position: relative;
    overflow: hidden;
    isolation: isolate
}

.hero-buttons .btn:before {
    display: block!important;
    content: '';
    position: absolute;
    inset: 0;
    z-index: -1;
    background: linear-gradient(100deg,#0b63dc,#063681);
    transform: translateX(-101%);
    transition: transform .35s ease
}

.hero-buttons .btn:hover:before {
    transform: translateX(0)
}

.hero-buttons .btn-outline-light {
    background: transparent!important;
    color: #fff;
    border-color: #fff
}

.hero-buttons .btn-outline-light:hover {
    background: transparent!important;
    color: #fff;
    border-color: #3f8dff
}

.hero-buttons .btn-primary:before {
    display: none!important;
    transform: none!important
}

.hero-buttons .btn-primary {
    transition: transform .22s ease,box-shadow .22s ease,background-color .22s ease!important
}

.hero-buttons .btn-primary:hover {
    transform: translateY(-2px)!important;
    background: linear-gradient(135deg,#1768e5,#123b92)!important;
    box-shadow: 0 9px 18px rgba(5,48,120,.3)!important
}

.hero-buttons .btn-primary:hover i {
    transform: translateX(3px)!important
}

.reviews-carousel {
    flex: 1;
    min-width: 0;
    padding: 0 28px
}

.reviews-carousel .review-slide {
    width: auto;
    padding: 0
}

.reviews-carousel .owl-nav button {
    position: absolute;
    top: 42%;
    width: 30px;
    height: 30px;
    border-radius: 50%!important;
    background: #fff!important;
    color: var(--blue)!important;
    box-shadow: 0 3px 10px rgba(5,30,70,.15);
    font-size: 24px!important;
    line-height: 20px!important
}

.reviews-carousel .owl-nav .owl-prev {
    left: -4px
}

.reviews-carousel .owl-nav .owl-next {
    right: -4px
}

.reviews-carousel .owl-dots {
    margin-top: 10px
}

.reviews-carousel .owl-dot span {
    background: #b8c9df!important
}

.reviews-carousel .owl-dot.active span {
    background: var(--blue)!important
}

@media(max-width: 575px) {
    .reviews-carousel {
        padding:0 20px
    }
}

.reviews-carousel,.reviews-carousel.owl-carousel {
    display: block!important
}

.reviews-carousel .review-slide {
    display: block!important
}

.reviews-carousel .owl-item .review-slide {
    display: block!important
}

.reviews-carousel:not(.owl-loaded):not(.owl-fallback) .review-slide:not(:first-child) {
    display: none!important
}

@media(max-width: 991px) {
    .reviews-strip .reviews-carousel {
        flex:0 0 100%;
        width: 100%
    }
}

.reviews-strip {
    padding: 34px 0!important;
    background: #f1f6ff;
    overflow: hidden
}

.reviews-strip .row {
    --bs-gutter-x: 18px
}

.rating-box {
    min-height: 220px;
    height: 100%;
    padding: 24px;
    background: var(--navy);
    border-radius: 8px;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: flex-start;
    color: #fff
}

.rating-box .rating-label {
    margin: 0;
    color: #b8d8ff;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: .12em;
    text-transform: uppercase
}

.rating-box h3 {
    margin: 12px 0 7px;
    color: #fff;
    font-family: 'Space Grotesk',sans-serif;
    font-size: 52px;
    line-height: 1
}

.rating-box h3 span {
    margin-left: 4px;
    color: #a9cafa;
    font-size: 22px
}

.rating-box .stars {
    margin-bottom: 8px
}

.rating-box small {
    color: #d7e7ff;
    font-size: 12px
}

.reviews-carousel {
    padding: 0 14px
}

.reviews-carousel .owl-stage {
    display: flex;
    align-items: stretch
}

.reviews-carousel .owl-item {
    display: flex;
    flex: 0 0 auto
}

.reviews-carousel .review-slide {
    display: flex;
    height: auto;
    padding: 0 0 4px
}

.reviews-carousel .review-card {
    width: 100%;
    height: 100%;
    min-height: 220px;
    padding: 21px 20px;
    border: 1px solid #e2eaf5;
    border-radius: 8px;
    box-shadow: 0 8px 22px rgba(7,21,44,.07);
    display: flex;
    flex-direction: column
}

.reviews-carousel .review-card .stars {
    margin-bottom: 10px
}

.reviews-carousel .review-card p {
    margin: 0 0 auto;
    font-size: 15px;
    line-height: 1.7;
    color: #263956
}

.reviews-carousel .review-card strong {
    margin-top: 18px;
    padding-top: 12px;
    border-top: 1px solid #e8eef6;
    color: var(--ink);
    font-size: 12px
}

.reviews-carousel .owl-dots {
    margin-top: 13px!important
}

@media(max-width: 991px) {
    .reviews-strip {
        padding:26px 0!important
    }

    .rating-box {
        min-height: 180px
    }

    .reviews-carousel {
        padding: 0
    }
}

@media(max-width: 575px) {
    .reviews-strip {
        padding:20px 0!important
    }

    .reviews-strip .row {
        --bs-gutter-y: 14px
    }

    .rating-box {
        min-height: 165px;
        padding: 22px
    }

    .reviews-carousel .review-card {
        min-height: 205px;
        padding: 20px
    }
}

.reviews-carousel.owl-fallback {
    display: grid!important;
    grid-template-columns: repeat(3,minmax(0,1fr));
    gap: 14px;
    padding: 0 28px
}

.reviews-carousel.owl-fallback .review-slide {
    display: none!important
}

.reviews-carousel.owl-fallback .review-slide.review-visible {
    display: block!important
}

.reviews-carousel.owl-fallback .review-card {
    height: 100%
}

@media(max-width: 991px) {
    .reviews-carousel.owl-fallback {
        grid-template-columns:repeat(2,minmax(0,1fr))
    }
}

@media(max-width: 575px) {
    .reviews-carousel.owl-fallback {
        grid-template-columns:1fr;
        padding: 0 20px
    }
}

html {
    scroll-padding-top: 92px
}

body {
    overflow-x: clip
}

.section-pad {
    padding-block:76px!important}

.section-title {
    max-width: 760px;
    margin: 0 auto 36px;
    text-align: center
}

.section-title h2 {
    font-size: 40px;
    line-height: 1.12;
    letter-spacing: 0
}

.section-title small {
    display: block;
    max-width: 680px;
    margin: 10px auto 0;
    color: #66758a;
    line-height: 1.7
}

.service-card {
    display: flex;
    flex-direction: column
}

.service-body {
    display: flex;
    flex: 1;
    flex-direction: column
}

.service-body a {
    margin-top: auto;
    padding-top: 12px
}

.about h2,.quote h2 {
    line-height: 1.1;
    letter-spacing: 0
}

.navbar .navbar-nav {
    flex-wrap: nowrap
}

.hero-form {
    flex: 0 1 390px;
    min-width: 0
}

.hero-copy {
    min-width: 0
}

@media(min-width: 992px) and (max-width:1199px) {
    .navbar-brand {
        width:190px
    }

    .nav-link {
        padding-inline:8px!important;font-size: 13px
    }

    .navbar .container {
        gap: 10px
    }

    .navbar .navbar-nav {
        gap: .35rem!important
    }

    .navbar .btn-primary {
        padding-inline:12px!important;font-size: 13px
    }
}

@media(min-width: 821px) and (max-width:991px) {
    .hero .container {
        display:grid;
        grid-template-columns: minmax(0,1fr) minmax(290px,350px);
        align-items: center;
        gap: 24px;
        padding-block:38px}

    .hero-copy {
        max-width: none;
        padding: 0
    }

    .hero-form {
        width: 100%;
        flex: auto;
        margin: 0;
        padding: 20px
    }

    .hero-form .quote-form {
        grid-template-columns: 1fr 1fr
    }

    .hero-form .quote-form textarea {
        height: 68px
    }

    .hero h1 {
        font-size: 38px;
        letter-spacing: 0
    }

    .hero h2 {
        font-size: 24px
    }

    .hero-buttons {
        flex-direction: row;
        flex-wrap: wrap
    }

    .hero-buttons .btn:first-child,.hero-buttons .btn:last-child {
        width: auto!important;
        min-width: 0!important;
        padding-inline:13px!important;font-size: 13px!important
    }
}

@media(max-width: 820px) {
    .section-pad {
        padding-block:54px!important
    }

    .section-title {
        margin-bottom: 26px
    }

    .section-title h2 {
        font-size: 34px
    }

    .about h2,.quote h2 {
        font-size: 38px
    }

    .hero {
        min-height: 0;
        padding-bottom: 22px;
        background-position: 58% center
    }

    .hero .container {
        display: flex;
        min-height: 0;
        flex-direction: column;
        align-items: stretch;
        gap: 18px;
        padding-top: 44px
    }

    .hero-copy {
        width: 100%;
        max-width: 680px;
        padding: 0
    }

    .hero h1 {
        font-size: 38px;
        line-height: 1.06;
        letter-spacing: 0
    }

    .hero h1 br {
        display: none
    }

    .hero h2 {
        font-size: 23px
    }

    .hero-copy>p:not(.eyebrow) {
        font-size: 15px;
        line-height: 1.65
    }

    .hero-buttons {
        width: 100%;
        gap: 10px
    }

    .hero-buttons .btn:first-child,.hero-buttons .btn:last-child {
        width: min(100%,300px)!important
    }

    .hero-form {
        width: 100%;
        max-width: none;
        flex: auto;
        margin: 4px 0 0;
        padding: 20px
    }

    .hero-form .quote-form {
        grid-template-columns: 1fr 1fr;
        gap: 10px!important
    }

    .hero-form .quote-form textarea {
        height: 72px
    }

    .gallery-tile {
        height: 190px
    }

    .comparison {
        height: 230px
    }

    .footer .container {
        padding-block:38px!important}

    .footer .row>div {
        min-width: 0
    }
}

@media(max-width: 575px) {
    .topbar .container>div:first-child {
        gap:10px;
        justify-content: flex-start
    }

    .topbar .container>div:first-child a {
        font-size: 11px
    }

    .navbar .container {
        min-height: 72px
    }

    .navbar-brand {
        width: 180px;
        height: 58px
    }

    .navbar-toggler {
        flex: 0 0 auto;
        padding: 7px 9px
    }

    .navbar-collapse {
        padding: 8px 0 14px
    }

    .navbar .navbar-nav {
        align-items: stretch!important;
        gap: 0!important
    }

    .navbar .navbar-nav>li {
        width: 100%
    }

    .navbar .nav-link {
        padding: 10px 4px!important
    }

    .navbar .nav-link:after {
        display: none!important
    }

    .navbar .navbar-nav .btn {
        margin: 8px 0
    }

    .hero .container {
        padding-top: 36px
    }

    .hero h1 {
        font-size: 34px
    }

    .hero h2 {
        font-size: 21px
    }

    .hero-buttons {
        align-items: stretch
    }

    .hero-buttons .btn:first-child,.hero-buttons .btn:last-child {
        width: 100%!important;
        max-width: 360px!important
    }

    .hero-form {
        padding: 18px
    }

    .hero-form .quote-form {
        grid-template-columns: 1fr
    }

    .hero-form .quote-form>.col-sm-6,.hero-form .quote-form>.col-12 {
        grid-column: 1/-1
    }

    .hero-form .quote-form textarea {
        height: 68px
    }

    .services .row>div {
        width: 100%
    }

    .service-visual {
        height: 130px
    }

    .service-body {
        padding: 14px
    }

    .service-body h3 {
        font-size: 16px;
        line-height: 1.25
    }

    .service-body p {
        font-size: 15px;
        line-height: 1.6
    }

    .comparison-grid {
        grid-template-columns: 1fr;
        gap: 14px
    }

    .comparison {
        height: 220px
    }

    .footer .row>div {
        width: 100%
    }

    .footer-logo {
        max-width: 100%
    }
}

@media(max-width: 380px) {
    .navbar-brand {
        width:160px
    }

    .hero h1 {
        font-size: 32px
    }

    .services .row>div {
        width: 100%
    }

    .service-visual {
        height: 170px
    }

    .service-body h3 {
        font-size: 18px
    }

    .service-body p {
        font-size: 15px;
        line-height: 1.6
    }
}

@media(min-width: 381px) and (max-width:575px) {
    .hero-form .quote-form {
        grid-template-columns:1fr 1fr
    }

    .hero-form .quote-form>.col-sm-6 {
        grid-column: auto
    }

    .hero-form .quote-form>.col-12 {
        grid-column: 1/-1
    }
}

@media(min-width: 992px) and (max-width:1399px) {
    .navbar .container {
        flex-wrap:nowrap;
        gap: 8px
    }

    .navbar-brand {
        width: 180px
    }

    #siteNav {
        min-width: 0
    }

    #siteNav .navbar-nav {
        gap: 4px!important
    }

    #siteNav .navbar-nav>li {
        flex: 0 0 auto
    }

    #siteNav .nav-link {
        display: flex;
        align-items: center;
        height: 84px;
        padding: 0 5px!important;
        font-size: 12px!important;
        white-space: nowrap
    }

    #siteNav .navbar-nav .btn-primary {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        height: auto!important;
        min-height: 42px;
        padding: 10px 12px!important;
        font-size: 12px!important;
        line-height: 1.2;
        white-space: nowrap
    }
}

@media(max-width: 991.98px) {
    .navbar.nav-menu-open {
        z-index:1055
    }

    .navbar .navbar-toggler {
        position: relative;
        width: 44px;
        height: 44px;
        display: grid;
        place-items: center;
        border-color: #d3dfef;
        border-radius: 6px
    }

    .navbar .navbar-toggler:focus {
        box-shadow: 0 0 0 .18rem rgba(7,59,143,.15)
    }

    .navbar .navbar-toggler.is-open {
        z-index: 1060;
        background: #f0f5fb
    }

    .navbar .navbar-toggler.is-open .navbar-toggler-icon {
        position: relative;
        background-image: none
    }

    .navbar .navbar-toggler.is-open .navbar-toggler-icon:before,.navbar .navbar-toggler.is-open .navbar-toggler-icon:after {
        content: '';
        position: absolute;
        left: 2px;
        top: calc(50% - 1px);
        width: 20px;
        height: 2px;
        border-radius: 2px;
        background: var(--ink)
    }

    .navbar .navbar-toggler.is-open .navbar-toggler-icon:before {
        transform: rotate(45deg)
    }

    .navbar .navbar-toggler.is-open .navbar-toggler-icon:after {
        transform: rotate(-45deg)
    }

    .nav-drawer {
        top: var(--nav-drawer-top,100px)!important;
        right: 0!important;
        bottom: 0!important;
        left: 0!important;
        width: 100%!important;
        height: auto!important;
        max-width: none!important;
        max-height: none!important;
        border: 0!important;
        box-shadow: 0 16px 34px rgba(3,18,43,.15);
        transform: translateY(-100%)!important;
        transition: transform .3s ease-in-out,visibility .3s ease-in-out
    }

    .nav-drawer.show {
        transform: translateY(0)!important
    }

    .nav-drawer .offcanvas-body {
        padding: 18px 20px;
        overflow-y: auto
    }

    .nav-drawer .navbar-nav {
        align-items: stretch!important;
        gap: 4px!important
    }

    .nav-drawer .navbar-nav>li {
        width: 100%
    }

    .nav-drawer .nav-link {
        display: flex;
        align-items: center;
        min-height: 48px;
        padding: 12px 13px!important;
        border-radius: 5px;
        color: var(--ink);
        font-size: 15px!important;
        white-space: nowrap
    }

    .nav-drawer .nav-link:after {
        display: none!important
    }

    .nav-drawer .nav-link.active {
        background: #eef4fc;
        color: var(--blue)
    }

    .nav-drawer .navbar-nav .btn-primary {
        width: 100%;
        min-height: 48px;
        margin-top: 12px;
        padding: 13px!important;
        display: flex;
        justify-content: center;
        font-size: 14px!important;
        white-space: nowrap
    }
}

@media(min-width: 992px) {
    .nav-drawer {
        position:static!important;
        display: flex!important;
        visibility: visible!important;
        width: auto!important;
        height: auto!important;
        max-width: none!important;
        transform: none!important;
        background: transparent!important;
        border: 0!important;
        box-shadow: none!important;
        flex-grow: 1
    }

    .nav-drawer .offcanvas-body {
        display: flex;
        flex: 1 1 auto;
        min-width: 0;
        padding: 0;
        overflow: visible
    }

    .nav-drawer .navbar-nav {
        flex-direction: row
    }
}

@media(min-width: 992px) and (max-width:1399px) {
    #siteNav .navbar-nav {
        gap:14px!important
    }
}

@media(max-width: 991.98px) {
    .nav-drawer {
        transform:translateX(-100%)!important
    }

    .nav-drawer.show {
        transform: translateX(0)!important
    }
}

#services .service-visual:after {
    content: none!important;
    display: none!important
}

/* Service cards */
.services {
    background: #f5f8fc
}

.service-section-title {
    max-width: 760px;
    margin: 0 0 34px;
    text-align: left
}

.service-section-title h2 {
    font-size: 42px;
    line-height: 1.12
}

.service-section-title small {
    margin: 12px 0 0;
    max-width: 620px
}

.service-grid {
    --bs-gutter-y: 24px
}

.service-card {
    height: 100%;
    border: 1px solid #e1e8f0;
    border-radius: 8px;
    background: #fff;
    box-shadow: 0 8px 24px rgba(5,26,55,.06);
    transition: transform .25s ease,box-shadow .25s ease
}

.service-card:hover {
    transform: translateY(-5px);
    box-shadow: 0 16px 30px rgba(5,26,55,.12)
}

.service-visual {
    height: auto;
    aspect-ratio: 1.55;
    position: relative;
    overflow: hidden;
    background: #e5ebf1!important
}

.service-visual:after {
    content: '';
    position: absolute;
    inset: 45% 0 0;
    background: linear-gradient(transparent,rgba(5,20,40,.3));
    pointer-events: none
}

.service-visual img {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transition: transform .5s ease
}

.service-card:hover .service-visual img {
    transform: scale(1.045)
}

.service-number {
    position: absolute;
    z-index: 1;
    top: 13px;
    left: 13px;
    display: grid;
    place-items: center;
    min-width: 37px;
    height: 30px;
    padding: 0 8px;
    border: 1px solid rgba(255,255,255,.75);
    border-radius: 4px;
    background: rgba(5,20,40,.72);
    color: #fff;
    font: 600 11px 'Space Grotesk',sans-serif
}

.service-body {
    display: flex;
    flex: 1;
    flex-direction: column;
    padding: 18px 18px 17px
}

.service-body h3 {
    min-height: 44px;
    margin: 0 0 9px;
    color: var(--ink);
    font: 600 17px/1.3 'Space Grotesk',sans-serif
}

.service-body p {
    margin: 0 0 16px;
    color: #68778a;
    font-size: 15px;
    line-height: 1.6
}

.service-body a {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-top: auto;
    padding-top: 12px;
    border-top: 1px solid #e8edf3;
    color: var(--blue);
    font-size: 12px;
    font-weight: 700;
    text-decoration: none
}

.service-body a:hover {
    color: #0344a6
}

.service-body a i {
    transition: transform .2s ease
}

.service-body a:hover i {
    transform: translateX(4px)
}

@media(max-width: 767px) {
    .service-section-title {
        margin-bottom:24px
    }

    .service-section-title h2 {
        font-size: 34px
    }

    .service-grid {
        --bs-gutter-y: 18px
    }

    .service-visual {
        aspect-ratio: 1.45
    }

    .service-body {
        padding: 14px
    }

    .service-body h3 {
        min-height: 42px;
        font-size: 15px
    }

    .service-body p {
        font-size: 15px;
        line-height: 1.6
    }

    .service-body a {
        font-size: 11px
    }
}

@media(max-width: 380px) {
    .service-visual {
        aspect-ratio:1.7
    }

    .service-body {
        padding: 16px
    }

    .service-body h3 {
        font-size: 17px
    }

    .service-body p {
        font-size: 15px
    }
}

@media(max-width: 991.98px) {
    .nav-drawer {
        align-items:stretch!important
    }

    .nav-drawer .offcanvas-body {
        width: 100%;
        min-width: 0;
        flex: 1 1 auto;
        align-self: stretch;
        padding: 24px clamp(24px,8vw,40px)
    }

    .nav-drawer .navbar-nav {
        width: 100%;
        margin: 0!important;
        gap: 2px!important
    }

    .nav-drawer .navbar-nav>li {
        width: 100%
    }

    .nav-drawer .navbar-nav>li:not(:last-child) {
        border-bottom: 1px solid #e8edf4
    }

    .nav-drawer .nav-link {
        width: 100%;
        min-height: 54px;
        padding: 14px 12px!important;
        border-left: 3px solid transparent;
        border-radius: 4px
    }

    .nav-drawer .nav-link.active {
        border-left-color: var(--blue);
        background: #f0f5fc
    }

    .nav-drawer .navbar-nav .btn-primary {
        width: 100%;
        min-height: 52px;
        margin-top: 22px!important
    }
}

#services .service-body a {
    transition: color .2s ease!important
}

#services .service-body a:hover {
    transform: none!important
}

#services .service-body a i,#services .service-body a:hover i {
    transform: none!important;
    transition: none!important
}

@media(max-width: 991.98px) {
    .navbar .navbar-toggler {
        padding:0!important
    }

    .navbar .navbar-toggler.is-open .navbar-toggler-icon:before,.navbar .navbar-toggler.is-open .navbar-toggler-icon:after {
        left: 5px
    }
}

.footer .footer-logo,.footer .footer-logo:hover {
    transform: none!important;
    transition: none!important;
    box-shadow: none!important
}

.page-loader {
    position: fixed;
    z-index: 2000;
    inset: 0;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 20px;
    background: #fff;
    opacity: 1;
    visibility: visible;
    transition: opacity .3s ease,visibility .3s ease
}

.page-loader.is-hidden {
    opacity: 0;
    visibility: hidden;
    pointer-events: none
}

.page-loader>img {
    display: block;
    width: min(255px,68vw);
    max-height: 100px;
    object-fit: contain
}

.page-loader-line {
    position: relative;
    width: min(220px,58vw);
    height: 3px;
    overflow: hidden;
    border-radius: 3px;
    background: #e2eaf5
}

.page-loader-line:after {
    content: '';
    position: absolute;
    inset: 0 auto 0 0;
    width: 38%;
    border-radius: inherit;
    background: var(--blue);
    animation: page-loader-progress 1.15s cubic-bezier(.4,0,.2,1) infinite
}

@keyframes page-loader-progress {
    0% {
        transform: translateX(-120%)
    }

    60%,100% {
        transform: translateX(300%)
    }
}

@media(prefers-reduced-motion:reduce) {
    .page-loader,.page-loader-line:after {
        transition: none;
        animation: none
    }

    .page-loader-line:after {
        width: 70%;
        transform: none
    }
}

.award-mark {
    overflow: hidden
}

.awards-panel .award-mark img {
    width: auto!important;
    height: auto!important;
    max-width: 100%!important;
    max-height: 50px!important
}

#services.services-showcase {
    background: #06162d;
    color: #e7f0fb
}

#services .service-section-title>p {
    color: #9fc6ff
}

#services .service-section-title h2 {
    color: #fff
}

#services .service-section-title h2 span {
    color: #82bdff
}

#services .service-section-title small {
    color: #c3d2e5
}

.service-grid-item-hidden {
    display: none!important
}

.service-load-more-wrap {
    display: flex;
    justify-content: center;
    margin-top: 32px
}

.service-load-more {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 14px;
    min-width: 205px;
    min-height: 48px;
    padding: 0 20px;
    border: 1px solid #6e9dd3;
    border-radius: 5px;
    background: #0b2c51;
    color: #fff;
    font: 600 14px 'Space Grotesk',sans-serif;
    transition: background .2s ease,border-color .2s ease,transform .2s ease
}

.service-load-more:hover {
    background: #104074;
    border-color: #9bc8f7;
    transform: translateY(-2px)
}

.service-load-more i {
    font-size: 12px;
    color: #a9d0ff
}

@media(max-width: 575px) {
    .service-load-more-wrap {
        margin-top:22px
    }

    .service-load-more {
        width: 100%;
        max-width: 320px
    }
}

.btn:not(.navbar-toggler):not(.btn-close),.load-more,.service-load-more {
    position: relative;
    overflow: hidden;
    isolation: isolate
}

.btn:not(.navbar-toggler):not(.btn-close):before,.load-more:before,.service-load-more:before {
    content: '';
    position: absolute;
    inset: 0;
    z-index: -1;
    border-radius: inherit;
    background: linear-gradient(105deg,#0b63dc,#063681);
    transform: translateX(-101%)!important;
    transition: transform .35s cubic-bezier(.22,.61,.36,1)
}

.btn:not(.navbar-toggler):not(.btn-close):hover:before,.btn:not(.navbar-toggler):not(.btn-close):focus-visible:before,.load-more:hover:before,.load-more:focus-visible:before,.service-load-more:hover:before,.service-load-more:focus-visible:before {
    transform: translateX(0)!important
}

.btn:not(.navbar-toggler):not(.btn-close):hover,.load-more:hover,.service-load-more:hover {
    background: transparent!important;
    border-color: #0b63dc!important;
    color: #fff!important;
    transform: translateY(-2px);
    box-shadow: 0 8px 18px rgba(6,54,129,.24)
}

.hero-buttons .btn-primary:before {
    display: block!important
}

.hero-buttons .btn-primary:hover {
    background: transparent!important
}

.footer {
    background: #06162d;
    color: #c0cede
}

.footer-main {
    display: grid;
    grid-template-columns: minmax(280px,1.25fr) minmax(150px,.65fr) minmax(310px,1fr);
    gap: 54px;
    padding-top: 50px;
    padding-bottom: 46px
}

.footer-brand .footer-logo {
    margin-bottom: 16px
}

.footer-brand>p {
    max-width: 340px;
    margin: 0;
    color: #aebdd0;
    font-size: 13px;
    line-height: 1.7
}

.footer .footer-socials {
    display: flex;
    gap: 9px;
    margin-top: 20px
}

.footer .footer-socials a {
    width: 34px;
    height: 34px;
    margin: 0;
    border: 1px solid #334a66;
    border-radius: 50%;
    display: grid;
    place-items: center;
    color: #dbe7f5;
    font-size: 13px;
    transition: background .2s ease,color .2s ease,border-color .2s ease
}

.footer .footer-socials a:hover {
    background: #1768e5;
    border-color: #1768e5;
    color: #fff;
    transform: none
}

.footer .footer-links,.footer .footer-contact {
    min-width: 0
}

.footer .footer-links h3,.footer .footer-contact h3 {
    margin: 3px 0 17px;
    color: #fff;
    font: 600 14px 'Space Grotesk',sans-serif
}

.footer .footer-links a {
    width: max-content;
    max-width: 100%;
    margin: 0 0 11px;
    color: #c0cede;
    font-size: 13px;
    transition: color .2s ease
}

.footer .footer-links a:hover {
    color: #8fc1ff;
    transform: none
}

.footer .footer-email {
    display: flex;
    align-items: center;
    gap: 9px;
    width: max-content;
    max-width: 100%;
    margin: 0 0 16px;
    color: #e4edf8;
    font-size: 13px;
    overflow-wrap: anywhere
}

.footer .footer-email i {
    color: #8fc1ff
}

.footer-phone-grid {
    display: grid;
    grid-template-columns: repeat(2,minmax(0,1fr));
    gap: 8px
}

.footer-phone-grid a {
    min-width: 0;
    min-height: 62px;
    margin: 0;
    padding: 10px;
    border: 1px solid #263c56;
    border-radius: 5px;
    background: #0a203b;
    color: #fff;
    text-decoration: none;
    transition: border-color .2s ease,background .2s ease
}

.footer-phone-grid a:hover {
    border-color: #5799ed;
    background: #0d294b;
    transform: none
}

.footer-phone-grid span,.footer-phone-grid strong {
    display: block
}

.footer-phone-grid span {
    margin-bottom: 5px;
    color: #9eb4ce;
    font-size: 13px;
    text-transform: uppercase
}

.footer-phone-grid strong {
    font-size: 14px;
    white-space: nowrap
}

.footer-bottom {
    border-top: 1px solid #203550
}

.footer-bottom>.container {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    min-height: 44px;
    padding: 8px 0;
    color: #dfeaf8;
    font-size: 12px
}

.footer-bottom>.container>span,.footer-bottom>.container>p {
    margin: 0;
    color: #dfeaf8;
    font-size: 12px;
    line-height: 1.5
}

.footer-bottom>.container>p {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    flex-wrap: wrap;
    gap: 6px;
    text-align: right
}

.footer-bottom>.container>p a {
    display: inline;
    color: #dfeaf8;
    text-decoration: none;
    font-weight: 700
}

.footer-bottom>.container>p a:hover {
    color: #fff
}

.footer-bottom span:last-child {
    color: #b4c6db
}

@media(max-width: 991px) {
    .footer-main {
        grid-template-columns:minmax(0,1.1fr) minmax(140px,.8fr);
        gap: 32px 40px
    }

    .footer-contact {
        grid-column: 1/-1
    }

    .footer-phone-grid {
        max-width: 560px
    }
}

@media(max-width: 575px) {
    .footer-main {
        grid-template-columns:1fr;
        gap: 28px;
        padding-top: 36px;
        padding-bottom: 30px
    }

    .footer-contact {
        grid-column: auto
    }

    .footer-phone-grid {
        grid-template-columns: 1fr
    }

    .footer-phone-grid a {
        display: flex;
        justify-content: space-between;
        align-items: center;
        min-height: 50px
    }

    .footer-phone-grid span {
        margin: 0
    }

    .footer-bottom>.container {
        padding-block:14px;align-items: flex-start;
        flex-direction: column;
        gap: 4px
    }
}

.achievement-card.awards-panel {
    height: 100%;
    min-height: 0;
    padding: 24px;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: #fff!important;
    box-shadow: 0 10px 28px rgba(5,26,55,.08);
    display: grid;
    gap: 10px;
    text-align: left
}

.awards-panel-head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 12px
}

.awards-kicker {
    color: var(--blue);
    font-size: 10px;
    font-weight: 700;
    letter-spacing: .12em;
    text-transform: uppercase
}

.awards-panel-head h3 {
    margin: 7px 0 0;
    color: var(--ink);
    font: 600 24px/1.15 'Space Grotesk',sans-serif
}

.awards-emblem {
    flex: 0 0 40px;
    width: 40px;
    height: 40px;
    display: grid;
    place-items: center;
    border-radius: 50%;
    background: #eef4fc;
    color: var(--blue);
    font-size: 17px
}

.awards-trust-row {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 10px
}

.award-trust-mark {
    min-width: 0;
    min-height: 76px;
    padding: 10px;
    border: 1px solid #e5ebf2;
    border-radius: 5px;
    background: #f7f9fc;
    display: flex;
    align-items: center;
    gap: 8px;
    color: #506075;
    font-size: 9px;
    line-height: 1.35
}

.award-trust-mark img {
    display: block;
    max-width: 100%;
    object-fit: contain
}

.which-mark img {
    flex: 0 0 54px;
    width: 54px;
    height: 42px
}

.which-mark strong {
    color: var(--ink);
    font-size: 10px
}

.registered-mark {
    flex-direction: column;
    justify-content: center;
    align-items: flex-start;
    font-weight: 700
}

.registered-mark img {
    width: 100%;
    height: 34px
}

.award-grid {
    display: grid;
    grid-template-columns: repeat(3,minmax(0,1fr));
    gap: 9px;
    margin-top: 0
}

.award-mark {
    min-width: 0;
    height: 68px;
    margin: 0;
    padding: 8px;
    border: 1px solid #e5ebf2;
    border-radius: 5px;
    background: #fff;
    display: grid;
    place-items: center
}

.award-mark img {
    width: 100%;
    height: 100%;
    object-fit: contain
}

.awards-trust-row,.award-grid,.about-trust-marks {
    gap: 10px;
    align-items: stretch;
    justify-items: stretch
}

.award-mark,.award-trust-mark,.about-trust-mark {
    min-height: 76px
}

.awards-panel-note {
    margin: 0;
    color: #718096;
    font-size: 15px;
    line-height: 1.7
}

.awards-panel > .award-grid + .awards-panel-note {
    margin-top: 0
}

.awards-panel .award-grid {
    margin-top: 0
}

.awards-panel > .awards-trust-row + .award-grid {
    margin-top: 0
}

.awards-panel > .awards-trust-row + .award-grid + .awards-panel-note {
    margin-top: 0
}

@media(max-width: 575px) {
    .achievement-card.awards-panel {
        padding:20px;
        gap: 10px
    }

    .awards-panel-head h3 {
        font-size: 22px
    }

    .award-grid {
        grid-template-columns: repeat(2,minmax(0,1fr))
    }

    .award-mark {
        height: 74px
    }
}

html,body,p,span,label,input,select,textarea,option,small {
    font-family: 'DM Sans',Arial,sans-serif
}

button,.btn,a {
    font-family: 'DM Sans',Arial,sans-serif
}

h1,h2,h3,h4,h5,h6,.nav-link,.service-load-more,.comparison-caption strong,.rating-box h3 {
    font-family: 'Space Grotesk','DM Sans',Arial,sans-serif
}

.fa,.fa-classic,.fa-solid,.fas,.fa-regular,.far,.fa-brands,.fab {
    font-family: var(--fa-style-family,"Font Awesome 6 Free")
}

.areas-section {
    position: relative;
    overflow: hidden;
    background: linear-gradient(125deg,#06162d 0%,#09284d 58%,#0d3f73 100%);
    color: #fff
}

.areas-section:before {
    content: '';
    position: absolute;
    right: -140px;
    top: -180px;
    width: 520px;
    height: 520px;
    border: 1px solid rgba(143,193,255,.16);
    border-radius: 50%;
    box-shadow: 0 0 0 70px rgba(143,193,255,.035),0 0 0 140px rgba(143,193,255,.025)
}

.areas-layout {
    position: relative;
    display: grid;
    grid-template-columns: minmax(0,.9fr) minmax(480px,1.1fr);
    align-items: center;
    gap: 70px
}

.areas-copy .section-label {
    color: #9fc9ff
}

.areas-copy h2 {
    max-width: 600px;
    margin: 0 0 20px;
    font-size: clamp(38px,4vw,56px);
    line-height: 1.06;
    letter-spacing: -.045em;
    color: #fff
}

.areas-copy h2 span {
    color: #87c0ff
}

.areas-copy>p:not(.section-label) {
    max-width: 610px;
    margin-bottom: 24px;
    color: #c8d8e9;
    font-size: 15px;
    line-height: 1.7
}

.areas-base {
    display: flex;
    align-items: center;
    gap: 13px;
    margin: 0 0 28px;
    padding: 15px 0;
    border-top: 1px solid rgba(255,255,255,.13);
    border-bottom: 1px solid rgba(255,255,255,.13)
}

.areas-base>i {
    width: 39px;
    height: 39px;
    display: grid;
    place-items: center;
    border-radius: 50%;
    background: #0e4176;
    color: #9dccff
}

.areas-base small,.areas-base strong {
    display: block
}

.areas-base small {
    margin-bottom: 3px;
    color: #8fa9c5;
    font-size: 10px;
    text-transform: uppercase;
    letter-spacing: .1em
}

.areas-base strong {
    color: #fff;
    font-size: 13px;
    font-weight: 600
}

.areas-actions {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 18px
}

.areas-actions .btn {
    min-height: 48px;
    display: inline-flex;
    align-items: center;
    gap: 12px;
    padding: 0 19px
}

.areas-phone {
    display: inline-flex;
    align-items: center;
    gap: 9px;
    color: #dcecff;
    text-decoration: none;
    font-weight: 700;
    font-size: 14px;
    transition: color .2s ease,transform .2s ease
}

.areas-phone i {
    color: #87c0ff
}

.areas-phone:hover {
    color: #fff;
    transform: translateX(3px)
}

.areas-card {
    position: relative;
    padding: 30px;
    border: 1px solid rgba(255,255,255,.16);
    border-radius: 10px;
    background: rgba(255,255,255,.97);
    color: var(--ink);
    box-shadow: 0 24px 55px rgba(0,8,24,.28)
}

.areas-card-head {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 20px;
    margin-bottom: 22px
}

.areas-card-head small {
    display: block;
    margin-bottom: 5px;
    color: var(--blue);
    font-size: 10px;
    font-weight: 700;
    letter-spacing: .13em;
    text-transform: uppercase
}

.areas-card-head h3 {
    margin: 0;
    font-size: 27px
}

.areas-card-head>span {
    flex: 0 0 48px;
    width: 48px;
    height: 48px;
    display: grid;
    place-items: center;
    border-radius: 50%;
    background: #eaf3ff;
    color: var(--blue);
    font-size: 20px
}

.areas-list {
    display: grid;
    grid-template-columns: repeat(3,minmax(0,1fr));
    gap: 9px
}

.areas-list>span {
    min-width: 0;
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 10px 11px;
    border: 1px solid #e0e8f2;
    border-radius: 5px;
    background: #f7f9fc;
    color: #344a64;
    font-size: 12px;
    font-weight: 600
}

.areas-list i {
    color: #347bd3;
    font-size: 10px
}

.areas-card>p {
    margin: 18px 0 0;
    color: #6c7d90;
    font-size: 15px;
    line-height: 1.7
}

@media(max-width: 991px) {
    .areas-layout {
        grid-template-columns:1fr;
        gap: 38px
    }

    .areas-card {
        max-width: 720px
    }

    .areas-list {
        grid-template-columns: repeat(3,minmax(0,1fr))
    }
}

@media(max-width: 575px) {
    .areas-copy h2 {
        font-size:36px;
        letter-spacing: -.03em
    }

    .areas-actions {
        align-items: stretch;
        flex-direction: column
    }

    .areas-actions .btn,.areas-phone {
        width: 100%;
        justify-content: center
    }

    .areas-card {
        padding: 21px
    }

    .areas-card-head h3 {
        font-size: 23px
    }

    .areas-list {
        grid-template-columns: repeat(2,minmax(0,1fr))
    }

    .areas-list>span {
        padding: 9px;
        font-size: 11px
    }

    .areas-base {
        align-items: flex-start
    }

    .areas-base strong {
        font-size: 12px
    }
}

.areas-section {
    background: #06162d
}

.services.services-showcase {
    position: relative;
    overflow: hidden
}

.services.services-showcase:before {
    content: '';
    position: absolute;
    right: -140px;
    top: -180px;
    width: 520px;
    height: 520px;
    border: 1px solid rgba(143,193,255,.16);
    border-radius: 50%;
    box-shadow: 0 0 0 70px rgba(143,193,255,.035),0 0 0 140px rgba(143,193,255,.025);
    pointer-events: none
}

.services.services-showcase>.container {
    position: relative;
    z-index: 1
}

.fa-brands,.fab {
    font-family: "Font Awesome 6 Brands"!important;
    font-weight: 400!important
}

.header-socials {
    display: flex!important;
    align-items: center;
    flex-shrink: 0
}

.header-socials a {
    cursor: pointer;
    pointer-events: auto
}

.header-socials i {
    display: inline-block;
    font-style: normal
}

.which-widget {
    width: 100%;
    max-width: 100%;
    overflow: hidden
}

.which-widget iframe {
    min-width: 0!important;
    max-width: 100%!important
}

@media(max-width: 767px) {
    .which-widget iframe {
        height:800px!important
    }
}

@media(max-width: 575px) {
    .which-widget iframe {
        height:950px!important
    }
}

.premium-test {
    display: block
}

.premium-reset {
    --ink: #06142b;
    --navy: #06152b;
    --blue: #1769e8;
    --sky: #84c7ff;
    --ice: #f4f8fc;
    --line: #dce6f1;
    --muted: #6d7e93;
    --gold: #f6bf61;
    --shadow: 0 22px 60px rgba(5,24,55,.12)
}

:root {
    --ink: #06142b;
    --navy: #06152b;
    --blue: #1769e8;
    --sky: #84c7ff;
    --ice: #f4f8fc;
    --line: #dce6f1;
    --muted: #6d7e93;
    --gold: #f6bf61;
    --shadow: 0 22px 60px rgba(5,24,55,.12)
}

html {
    scroll-behavior: smooth
}

body {
    color: var(--ink);
    background: #fff;
    overflow-x: hidden
}

h1,h2,h3,h4,h5,h6,.navbar-brand,.nav-link,.btn,.service-load-more,.comparison-caption strong {
    font-family: 'Space Grotesk',sans-serif
}

.container {
    max-width: 1240px
}

.topbar {
    background: #031022;
    color: #dbeaff;
    padding: 10px 0;
    font-size: 12px
}

.topbar .container {
    display: flex;
    align-items: center;
    gap: 18px
}

.topbar a,.topbar span {
    color: inherit;
    text-decoration: none
}

.topbar a {
    margin-right: 20px
}

.topbar i {
    color: var(--sky);
    margin-right: 6px
}

.header-location {
    margin-left: auto
}

.header-socials {
    display: flex;
    gap: 8px;
    margin-left: 4px
}

.header-socials a {
    display: grid;
    place-items: center;
    width: 26px;
    height: 26px;
    margin: 0;
    border: 1px solid rgba(255,255,255,.2);
    border-radius: 50%;
    transition: .25s
}

.header-socials a:hover {
    color: #031022;
    background: var(--sky);
    border-color: var(--sky);
    transform: translateY(-2px)
}

.navbar {
    padding: 0!important;
    min-height: 92px;
    background: rgba(255,255,255,.92)!important;
    border: 0;
    box-shadow: 0 8px 28px rgba(9,35,70,.07);
    backdrop-filter: blur(16px)
}

.navbar .container {
    min-height: 92px
}

.navbar-brand {
    width: 220px;
    height: 68px;
    margin: 0;
    background: url('../images/client/logo.png') left center/contain no-repeat;
    font-size: 0
}

.navbar-brand span,.navbar-brand small {
    display: none
}

.nav-link {
    position: relative;
    color: var(--ink);
    font-size: 13px;
    font-weight: 700;
    padding: 35px 12px!important;
    transition: color .25s
}

.nav-link:after {
    content: '';
    position: absolute;
    left: 50%;
    bottom: 22px;
    width: 22px;
    height: 2px;
    background: var(--blue);
    transform: translateX(-50%) scaleX(0);
    transition: transform .25s
}

.nav-link:hover,.nav-link.active {
    color: var(--blue)
}

.nav-link:hover:after,.nav-link.active:after {
    transform: translateX(-50%) scaleX(1)
}

.navbar .btn {
    border: 0;
    border-radius: 10px;
    padding: 13px 18px!important
}

.btn {
    border-radius: 10px;
    font-weight: 800;
    transition: transform .25s,box-shadow .25s,background .25s
}

.btn-primary {
    border: 0;
    background: linear-gradient(135deg,#2080f2,#0c49ad);
    box-shadow: 0 12px 24px rgba(23,105,232,.2)
}

.btn-primary:hover {
    background: linear-gradient(135deg,#2a8dff,#0b3d98);
    transform: translateY(-3px);
    box-shadow: 0 17px 30px rgba(23,105,232,.3)
}

.btn-outline-light {
    border: 1px solid rgba(255,255,255,.6);
    background: rgba(255,255,255,.06);
    color: #fff
}

.btn-outline-light:hover {
    border-color: #fff;
    background: #fff;
    color: var(--ink)
}

.hero {
    min-height: 720px;
    background: #06162c url('../images/client/home-tgb.jpg') center/cover;
    overflow: hidden
}

.hero:before {
    background: linear-gradient(90deg,rgba(2,13,29,.98) 0%,rgba(3,18,39,.92) 42%,rgba(3,18,39,.45) 73%,rgba(3,18,39,.16) 100%)
}

.hero:after {
    content: '';
    position: absolute;
    right: -140px;
    bottom: -280px;
    width: 650px;
    height: 650px;
    border: 1px solid rgba(132,199,255,.25);
    border-radius: 50%;
    box-shadow: 0 0 0 80px rgba(132,199,255,.04),0 0 0 160px rgba(132,199,255,.025);
    animation: premium-orbit 18s linear infinite
}

.hero .container {
    min-height: 720px
}

.hero-copy {
    max-width: 680px;
    padding: 70px 0
}

.eyebrow,.section-title>p,.section-label {
    margin: 0 0 14px;
    color: var(--blue);
    font-size: 11px;
    font-weight: 800;
    letter-spacing: .18em;
    text-transform: uppercase
}

.hero .eyebrow {
    color: var(--sky)
}

.hero h1 {
    max-width: 720px;
    margin: 0 0 20px;
    font-size: clamp(42px,5.4vw,78px);
    line-height: 1.01;
    letter-spacing: -.065em
}

.hero h2 {
    margin: 0 0 22px;
    color: #8cc9ff;
    font-size: clamp(22px,2.4vw,31px);
    letter-spacing: -.035em
}

.hero-copy>p:not(.eyebrow) {
    max-width: 610px;
    color: #cbd9e9;
    font-size: 16px;
    line-height: 1.75
}

.hero-buttons {
    gap: 13px;
    margin-top: 30px
}

.hero-form {
    width: 390px;
    margin: 65px 0 25px auto;
    padding: 25px;
    background: rgba(255,255,255,.97);
    border: 1px solid rgba(255,255,255,.5);
    border-radius: 18px;
    box-shadow: 0 30px 70px rgba(0,8,24,.35);
    animation: premium-float 6s ease-in-out infinite
}

.hero-form h3 {
    margin: 7px 0 6px;
    font-size: 27px;
    letter-spacing: -.04em
}

.hero-form-eyebrow {
    color: var(--blue);
    font-size: 10px;
    font-weight: 800;
    letter-spacing: .16em;
    text-transform: uppercase
}

.hero-form-intro {
    color: var(--muted);
    font-size: 12px
}

.hero-form .quote-form {
    padding: 0;
    background: transparent
}

.hero-form .quote-form input,.hero-form .quote-form select,.hero-form .quote-form textarea {
    width: 100%;
    padding: 12px 13px;
    border: 1px solid var(--line);
    border-radius: 9px;
    font: inherit;
    font-size: 13px;
    outline: 0;
    transition: border-color .2s,box-shadow .2s
}

.hero-form .quote-form input:focus,.hero-form .quote-form select:focus,.hero-form .quote-form textarea:focus {
    border-color: var(--blue);
    box-shadow: 0 0 0 4px rgba(23,105,232,.11)
}

.hero-form .quote-form textarea {
    height: 76px
}

.hero-form .quote-form .btn {
    width: 100%;
    padding: 13px
}

.quote {
    display: none!important
}

.reviews-strip {
    margin-top: -54px
}

.rating-box,.review-card {
    padding: 22px 20px;
    background: rgba(255,255,255,.96);
    border: 1px solid rgba(220,230,241,.8);
    border-radius: 14px;
    box-shadow: var(--shadow)
}

.rating-label {
    color: var(--muted);
    font-size: 11px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .12em
}

.rating-box h3 {
    font-size: 38px
}

.rating-box h3 span {
    color: var(--muted);
    font-size: 15px
}

.stars {
    color: var(--gold);
    font-size: 15px;
    letter-spacing: 3px
}

.review-card p {
    color: #42546a;
    font-size: 13px;
    line-height: 1.55
}

.review-card strong {
    font-size: 12px
}

.owl-theme .owl-dots .owl-dot span {
    width: 6px;
    height: 6px;
    background: #c9d6e4
}

.owl-theme .owl-dots .owl-dot.active span {
    width: 20px;
    background: var(--blue)
}

.section-pad {
    padding: 110px 0
}

.section-title {
    margin-bottom: 38px
}

.section-title h2,.about h2,.quote h2 {
    font-size: clamp(38px,4.5vw,64px);
    line-height: 1.02;
    letter-spacing: -.065em
}

.section-title h2 span,.about h2 span {
    color: var(--blue)
}

.section-title small {
    color: var(--muted);
    font-size: 15px;
    line-height: 1.7
}

.services {
    background: #06162d;
    color: #fff
}

.services:before {
    right: -180px;
    top: -170px;
    width: 560px;
    height: 560px;
    border-color: rgba(132,199,255,.18);
    box-shadow: 0 0 0 80px rgba(132,199,255,.035),0 0 0 160px rgba(132,199,255,.02)
}

.service-section-title>p {
    color: var(--sky)
}

.service-section-title h2 {
    color: #fff
}

.service-section-title h2 span {
    color: #85c6ff
}

.service-section-title small {
    color: #b8cde2
}

.service-card {
    border: 1px solid rgba(147,185,223,.2);
    border-radius: 15px;
    background: linear-gradient(180deg,#0c2749,#091e39);
    box-shadow: 0 12px 35px rgba(0,5,20,.2);
    transition: transform .35s,box-shadow .35s,border-color .35s
}

.service-card:hover {
    transform: translateY(-8px);
    border-color: rgba(132,199,255,.75);
    box-shadow: 0 25px 45px rgba(0,5,20,.35)
}

.service-visual {
    aspect-ratio: 1.45;
    overflow: hidden;
    background: #18385f
}

.service-visual:after {
    content: '';
    position: absolute;
    inset: 35% 0 0;
    background: linear-gradient(transparent,rgba(2,12,28,.7))
}

.service-visual img {
    transition: transform .6s,filter .6s
}

.service-card:hover .service-visual img {
    transform: scale(1.08);
    filter: saturate(1.15)
}

.service-body {
    padding: 20px
}

.service-body h3 {
    min-height: 44px;
    color: #fff;
    font-size: 17px;
    line-height: 1.28
}

.service-body p {
    min-height: 60px;
    color: #aac0d7;
    font-size: 15px;
    line-height: 1.6
}

.service-body a {
    padding-top: 14px;
    border-top: 1px solid rgba(147,185,223,.18);
    color: #8dccff;
    font-size: 12px
}

.service-body a:hover {
    color: #fff
}

.service-number {
    padding: 7px 9px;
    border: 1px solid rgba(255,255,255,.55);
    border-radius: 7px;
    background: rgba(5,20,40,.72);
    font-size: 10px
}

.service-load-more {
    padding: 14px 20px;
    border: 1px solid #4e78a7;
    border-radius: 10px;
    background: #0d2a4c;
    color: #fff
}

.service-load-more:hover {
    background: #1769e8;
    border-color: #1769e8;
    transform: translateY(-3px)
}

.about {
    background: var(--ice)
}

.about h2 {
    margin-bottom: 24px
}

.about p:not(.section-label) {
    color: #53667c;
    line-height: 1.75
}

.surface-list span {
    padding: 9px 13px;
    border: 1px solid var(--line);
    border-radius: 30px;
    background: #fff;
    color: #465a71;
    font-size: 12px
}

.awards-panel {
    padding: 25px!important;
    border: 1px solid var(--line)!important;
    border-radius: 18px!important;
    background: #fff!important;
    box-shadow: var(--shadow)!important
}

.awards-panel-head h3 {
    font-size: 25px
}

.awards-emblem {
    background: #edf5ff;
    color: var(--blue)
}

.award-trust-mark,.award-mark {
    border: 1px solid #e4ebf3;
    border-radius: 10px;
    background: #f8fafc
}

.award-grid {
    gap: 9px;
    margin-top: 12px
}

.award-mark {
    height: 70px
}

.awards-panel-note {
    color: var(--muted)
}

.areas-section {
    background: #06162d
}

.areas-layout {
    gap: 70px
}

.areas-copy .section-label {
    color: var(--sky)
}

.areas-copy h2 {
    color: #fff;
    font-size: clamp(38px,4.2vw,61px);
    line-height: 1.02;
    letter-spacing: -.065em
}

.areas-copy h2 span {
    color: #88c8ff
}

.areas-copy>p:not(.section-label) {
    color: #b9cce0;
    line-height: 1.75
}

.areas-base {
    padding: 17px 0;
    border-color: rgba(255,255,255,.14)
}

.areas-base>i {
    background: #0e4176;
    color: var(--sky)
}

.areas-card {
    padding: 30px;
    border: 1px solid rgba(255,255,255,.15);
    border-radius: 18px;
    background: rgba(255,255,255,.98);
    box-shadow: 0 30px 65px rgba(0,0,0,.28)
}

.areas-card-head h3 {
    font-size: 28px
}

.areas-card-head>span {
    background: #eaf3ff;
    color: var(--blue)
}

.areas-list {
    gap: 9px
}

.areas-list>span {
    padding: 10px;
    border: 1px solid #e1e9f1;
    border-radius: 9px;
    background: #f8fafc;
    color: #435870;
    font-size: 12px
}

.areas-list i {
    color: var(--blue)
}

.gallery {
    background: var(--ice)
}

.gallery-project-group + .gallery-project-group {
    margin-top: 48px
}

.gallery-project-title {
    margin: 0 0 20px;
    color: var(--ink);
    font-family: 'Space Grotesk';
    font-size: clamp(22px, 2.5vw, 30px);
    font-weight: 700;
    text-align: center
}

.gallery .comparison-caption {
    justify-content: center;
    text-align: center
}

.comparison-card {
    border: 1px solid var(--line);
    border-radius: 15px;
    box-shadow: 0 10px 32px rgba(5,24,55,.08)
}

.comparison {
    height: 280px
}

.comparison-label {
    border-radius: 5px;
    background: rgba(5,14,29,.78);
    font-size: 9px
}

.comparison-handle span {
    color: var(--blue)
}

.comparison-caption {
    padding: 15px 17px
}

.comparison-caption span {
    color: var(--muted)
}

.load-more {
    padding: 13px 22px;
    border: 1px solid var(--ink);
    border-radius: 10px;
    background: #fff;
    color: var(--ink);
    font-weight: 800
}

.load-more:hover {
    border-color: var(--blue);
    background: var(--blue);
    color: #fff;
    transform: translateY(-3px)
}

.which-widget {
    border: 1px solid var(--line);
    border-radius: 18px;
    box-shadow: var(--shadow)
}

.footer {
    background: #031022;
    color: #aebfd2
}

.footer-main {
    padding: 68px 0
}

.footer-logo {
    filter: brightness(0) invert(1)
}

.footer-brand>p {
    color: #9db0c6
}

.footer-socials a {
    border-color: #2b4563;
    color: #e1edfb!important
}

.footer-socials a:hover {
    background: var(--blue);
    border-color: var(--blue);
    transform: translateY(-3px)
}

.footer h3 {
    color: #fff
}

.footer-links a {
    color: #aebfd2
}

.footer-links a:hover {
    color: var(--sky);
    transform: translateX(4px)
}

.footer-phone-grid a {
    border-color: #29415e;
    color: #fff;
    transition: .5s;
}

.footer-phone-grid a:hover {
    border-color: #659ee0;
    background: #0b2341;
    transform: translateY(-3px)
}

.footer-bottom {
    border-color: #1c344e
}

.footer-bottom>.container {
    padding: 17px 0;
    color: #8197af
}

.form-status {
    color: #1b8758
}

@keyframes premium-orbit {
    to {
        transform: rotate(360deg)
    }
}

@keyframes premium-float {
    0%,100% {
        transform: translateY(0)
    }

    50% {
        transform: translateY(-9px)
    }
}

@media(max-width: 991px) {
    .nav-link {
        padding:14px!important
    }

    .nav-link:after {
        display: none
    }

    .nav-drawer {
        top: var(--nav-drawer-top,92px)!important;
        background: #fff!important;
        box-shadow: 0 20px 35px rgba(3,18,43,.16)
    }

    .nav-drawer.show {
        transform: translateY(0)!important
    }

    .nav-drawer .offcanvas-body {
        padding: 20px
    }

    .nav-drawer .navbar-nav>li {
        border-bottom: 1px solid #edf1f5
    }

    .nav-drawer .navbar-nav .btn {
        width: 100%;
        margin-top: 14px
    }

    .hero {
        min-height: 760px
    }

    .hero .container {
        min-height: 760px;
        align-items: flex-start
    }

    .hero-copy {
        max-width: 58%;
        padding-top: 78px
    }

    .hero-form {
        width: 360px;
        margin-top: 180px
    }

    .areas-layout {
        grid-template-columns: 1fr;
        gap: 40px
    }

    .comparison-grid {
        grid-template-columns: repeat(2,1fr)
    }

    .footer-main {
        grid-template-columns: 1fr 1fr;
        gap: 38px
    }

    .footer-contact {
        grid-column: 1/-1
    }
}

@media(max-width: 767px) {
    .topbar .container {
        justify-content:center
    }

    .topbar .header-location,.topbar .header-socials {
        display: none
    }

    .navbar,.navbar .container {
        min-height: 76px
    }

    .navbar-brand {
        width: 185px;
        height: 58px
    }

    .hero,.hero .container {
        min-height: 0
    }

    .hero .container {
        display: block
    }

    .hero-copy {
        max-width: 100%;
        padding: 68px 0 28px
    }

    .hero h1 {
        font-size: clamp(43px,12vw,62px)
    }

    .hero-copy>p:not(.eyebrow) {
        font-size: 14px
    }

    .hero-buttons {
        flex-direction: column;
        align-items: stretch
    }

    .hero-buttons .btn {
        width: 100%;
        text-align: center
    }

    .hero-form {
        width: 100%;
        margin: 0 0 42px;
        animation: none
    }

    .reviews-strip {
        margin-top: 0;
        padding: 18px 0;
        background: var(--ice)
    }

    .section-pad {
        padding: 76px 0
    }

    .section-title h2,.about h2 {
        font-size: 44px
    }

    .service-body {
        padding: 15px
    }

    .service-body h3 {
        font-size: 15px
    }

    .service-body p {
        font-size: 15px;
        line-height: 1.6
    }

    .comparison-grid {
        grid-template-columns: 1fr
    }

    .comparison {
        height: 250px
    }

    .footer-main {
        grid-template-columns: 1fr;
        gap: 30px;
        padding: 48px 0
    }

    .footer-contact {
        grid-column: auto
    }

    .footer-phone-grid {
        grid-template-columns: 1fr
    }

    .footer-phone-grid a {
        display: flex;
        justify-content: space-between;
        align-items: center
    }

    .footer-phone-grid span {
        margin: 0;
        font-size: 15px;
    }
    
    .footer-phone-grid strong {
        font-size: 16px;
    }

    .footer-bottom>.container {
        flex-direction: column;
        align-items: flex-start;
        padding: 14px 0
    }

    .areas-list {
        grid-template-columns: repeat(2,1fr)
    }

    .awards-trust-row {
        grid-template-columns: 1fr
    }

    .award-grid {
        grid-template-columns: repeat(2,1fr)
    }
}

@media(prefers-reduced-motion:reduce) {
    html {
        scroll-behavior: auto
    }

    *,*:before,*:after {
        animation-duration: .01ms!important;
        animation-iteration-count: 1!important;
        transition-duration: .01ms!important
    }
}

.premium-reveal {
    opacity: 0;
    transform: translateY(24px);
    transition: opacity .7s ease var(--reveal-delay,0ms),transform .7s cubic-bezier(.22,.61,.36,1) var(--reveal-delay,0ms)
}

.premium-reveal.is-visible {
    opacity: 1;
    transform: none
}

/* A long gallery section may never reach the reveal observer's visibility threshold. */
.gallery-page .gallery.section-pad.premium-reveal {
    opacity: 1;
    transform: none
}

.hero {
    animation: none!important;
    background-size: cover!important;
    background-position: center!important
}

.hero:after {
    display: none!important;
    animation: none!important
}

.hero h1 {
    font-size: clamp(37px,4.35vw,58px)!important;
    line-height: 1.05!important;
    letter-spacing: -.045em!important;
    margin-bottom: 16px!important
}

.hero h2 {
    font-size: clamp(20px,2.2vw,29px)!important;
    margin-bottom: 16px!important
}

.hero-copy>p:not(.eyebrow) {
    font-size: 14px!important;
    line-height: 1.65!important
}

.hero-copy {
    padding: 52px 0
}

.hero-form {
    animation: none!important;
    transform: none!important
}

.hero-form h3 {
    font-size: 23px!important
}

.hero-form .quote-form input,.hero-form .quote-form select,.hero-form .quote-form textarea {
    font-size: 12px!important;
    padding: 10px 12px!important
}

.hero-form .quote-form textarea {
    height: 68px!important
}

.reviews-strip {
    margin-top: 0!important;
    padding: 40px 0!important;
    background: #f1f6ff!important
}

.reviews-strip .row {
    display: grid!important;
    grid-template-columns: minmax(210px,250px) minmax(0,1fr);
    align-items: stretch;
    gap: 18px;
    margin: 0
}

.reviews-strip .row>.col-lg-3 {
    width: auto;
    padding: 0
}

.reviews-carousel {
    min-width: 0;
    width: 100%;
    padding: 0!important
}

.reviews-carousel .review-card {
    min-height: 190px!important;
    height: 100%;
    padding: 20px!important;
    border-radius: 14px!important
}

.reviews-carousel .review-card p {
    font-size: 12px!important;
    line-height: 1.55!important
}

.reviews-carousel .owl-stage {
    display: flex;
    align-items: stretch
}

.reviews-carousel .owl-item {
    display: flex
}

.reviews-carousel .review-slide {
    width: 100%
}

.rating-box {
    min-height: 190px!important;
    border-radius: 14px!important;
    padding: 22px!important
}

.reviews-carousel.owl-fallback {
    display: grid!important;
    grid-template-columns: repeat(3,minmax(0,1fr))!important;
    gap: 14px!important;
    padding: 0!important
}

.reviews-carousel.owl-fallback .review-slide {
    display: block!important
}

.reviews-carousel.owl-fallback .review-card {
    min-height: 190px!important
}

@media(max-width: 991px) {
    .reviews-strip .row {
        grid-template-columns:1fr
    }

    .reviews-carousel {
        padding-top: 2px!important
    }

    .rating-box {
        min-height: 150px!important
    }

    .hero-copy {
        padding-top: 50px
    }

    .hero-form {
        margin-top: 125px
    }
}

@media(max-width: 767px) {
    .hero-copy {
        padding:52px 0 22px
    }

    .hero h1 {
        font-size: clamp(34px,9.5vw,48px)!important
    }

    .hero h2 {
        font-size: 21px!important
    }

    .hero-copy>p:not(.eyebrow) {
        font-size: 13px!important
    }

    .reviews-strip {
        padding: 26px 0!important
    }

    .reviews-carousel.owl-fallback {
        grid-template-columns: 1fr!important
    }

    .reviews-carousel.owl-fallback .review-slide {
        display: none!important
    }

    .reviews-carousel.owl-fallback .review-slide.review-visible {
        display: block!important
    }

    .reviews-carousel .review-card {
        min-height: 175px!important
    }
}

.footer .footer-logo {
    filter: none!important;
    width: 220px!important;
    height: 62px!important;
    background-size: contain!important;
    background-position: left center!important;
    background-repeat: no-repeat!important
}

.footer .footer-logo span,.footer .footer-logo small {
    display: none!important
}

.hero:before {
    z-index: 0!important;
    background: linear-gradient(90deg,rgba(2,10,24,.985) 0%,rgba(3,17,39,.94) 38%,rgba(3,18,39,.72) 68%,rgba(3,18,39,.38) 100%)!important
}

.hero .container {
    z-index: 2!important
}

.hero-copy {
    position: relative;
    z-index: 2
}

.hero h1,.hero h2 {
    color: #fff;
    text-shadow: 0 3px 22px rgba(0,0,0,.38)
}

.hero h2 {
    color: #a8d8ff!important
}

.hero-copy>p:not(.eyebrow) {
    color: #e6f0fb!important;
    text-shadow: 0 2px 12px rgba(0,0,0,.3)
}

.hero .eyebrow {
    color: #9ed3ff!important
}

.reviews-strip {
    position: relative;
    isolation: isolate;
    background: linear-gradient(135deg,#eef5fc 0%,#f8fbff 55%,#eaf3fc 100%)!important;
    border-top: 1px solid #dce8f4;
    border-bottom: 1px solid #dce8f4
}

.reviews-strip:before {
    content: 'CUSTOMER VOICES';
    position: absolute;
    right: 6%;
    top: 28px;
    color: #cbdced;
    font: 700 clamp(36px,6vw,86px)/1 'Space Grotesk',sans-serif;
    letter-spacing: -.07em;
    pointer-events: none;
    z-index: -1
}

.reviews-strip .container {
    position: relative;
    z-index: 1
}

.reviews-strip .rating-box {
    position: relative;
    overflow: hidden;
    background: linear-gradient(145deg,#06162d,#0c3461)!important;
    border: 0!important;
    box-shadow: 0 18px 40px rgba(4,26,58,.2)!important
}

.reviews-strip .rating-box:after {
    content: '★★★★★';
    position: absolute;
    right: -8px;
    bottom: -18px;
    color: rgba(132,199,255,.12);
    font-size: 84px;
    letter-spacing: -8px;
    transform: rotate(-10deg)
}

.reviews-strip .rating-box h3 {
    font-size: 48px!important
}

.reviews-carousel .review-card {
    position: relative;
    border: 1px solid #dbe6f1!important;
    background: rgba(255,255,255,.86)!important;
    box-shadow: 0 12px 28px rgba(9,42,79,.08)!important;
    transition: transform .25s,box-shadow .25s,border-color .25s
}

.reviews-carousel .review-card:hover {
    transform: translateY(-5px);
    border-color: #9ecbfa!important;
    box-shadow: 0 18px 34px rgba(9,42,79,.14)!important
}

.reviews-carousel .review-card .stars {
    font-size: 13px
}

.reviews-carousel .review-card p {
    color: #41566f!important
}

.reviews-carousel .review-card strong {
    color: #0a2a52!important
}

.reviews-carousel .owl-nav button {
    background: #fff!important;
    border: 1px solid #d5e2ef!important
}

@media(max-width: 767px) {
    .reviews-strip:before {
        top:18px;
        right: 5%;
        font-size: 32px
    }

    .reviews-strip .row {
        gap: 14px
    }

    .reviews-strip .rating-box h3 {
        font-size: 42px!important
    }
}

.which-recommended {
    padding-top: 88px!important;
    padding-bottom: 88px!important;
    background: #fff!important
}

.which-recommended .section-title {
    margin-bottom: 34px!important
}

.which-recommended .section-title>p {
    color: var(--blue)!important
}

.which-widget {
    border-radius: 18px!important;
    box-shadow: 0 16px 40px rgba(5,24,55,.1)!important
}

/* Final hero refinement */
.reviews-strip:before {
    display: none!important
}

@media (min-width: 768px) and (max-width:991px) {
    .hero-form {
        margin-top:40px!important
    }
}

@media (max-width: 991px) {
    .hero-form {
        margin-top:40px!important
    }
}

.hero {
    min-height: 680px!important;
    isolation: isolate;
    background-position: center 58%!important
}

.hero:before {
    content: "";
    position: absolute;
    inset: 0;
    z-index: 0!important;
    background: linear-gradient(90deg,rgba(2,10,24,.97) 0%,rgba(3,17,39,.9) 34%,rgba(3,18,39,.58) 66%,rgba(3,18,39,.2) 100%),linear-gradient(0deg,rgba(1,8,20,.46),transparent 48%)!important
}

.hero:after {
    display: block!important;
    content: "";
    position: absolute;
    z-index: 0;
    inset: auto -110px -330px auto;
    width: 720px;
    height: 720px;
    border: 1px solid rgba(159,214,255,.23);
    border-radius: 50%;
    box-shadow: 0 0 0 72px rgba(159,214,255,.04),0 0 0 144px rgba(159,214,255,.025);
    pointer-events: none!important;
    animation: none!important
}

.hero .container {
    min-height: 680px!important;
    align-items: center;
    z-index: 2!important
}

.hero-copy {
    max-width: 715px!important;
    padding: 58px 0 50px!important
}

.hero .eyebrow {
    display: flex;
    align-items: center;
    gap: 11px;
    margin-bottom: 19px!important;
    color: #a9d9ff!important;
    font-size: 11px!important;
    letter-spacing: .2em!important
}

.hero .eyebrow:before {
    content: "";
    display: inline-block;
    width: 31px;
    height: 1px;
    background: #8ecbff;
    box-shadow: 0 0 14px #8ecbff
}

.hero h1 {
    max-width: 720px!important;
    margin: 0 0 18px!important;
    color: #fff!important;
    font-size: clamp(43px,5vw,70px)!important;
    line-height: 1.01!important;
    letter-spacing: -.06em!important;
    text-shadow: 0 5px 24px rgba(0,0,0,.3)!important
}

.hero h2 {
    margin: 0 0 20px!important;
    color: #a9d9ff!important;
    font-size: clamp(22px,2.3vw,32px)!important;
    line-height: 1.1;
    letter-spacing: -.04em!important
}

.hero-copy>p:not(.eyebrow) {
    max-width: 600px!important;
    margin-bottom: 0!important;
    color: #d8e6f3!important;
    font-size: 15px!important;
    line-height: 1.72!important;
    text-shadow: none!important
}

.hero-points {
    display: flex!important;
    gap: 0!important;
    max-width: 600px!important;
    margin: 25px 0 27px!important;
    padding-top: 18px;
    border-top: 1px solid rgba(211,232,250,.2)
}

.hero-points span {
    flex: 1;
    max-width: none!important;
    min-width: 0;
    padding-right: 17px;
    color: #f5f9fd!important;
    font-size: 11px!important;
    line-height: 1.3!important
}

.hero-points span:first-child {
    display: flex!important
}

.hero-points span>b {
    font-size: 11px!important
}

.hero-points span+span {
    padding-left: 17px;
    border-left: 1px solid rgba(211,232,250,.2)
}

.hero-points span:first-letter {
    font-size: 14px!important;
    color: #8dceff
}

.hero-buttons {
    gap: 12px!important
}

.hero-buttons .btn {
    height: 54px!important;
    border-radius: 8px!important;
    padding: 0 20px!important;
    font-size: 15px!important;
    box-shadow: none!important
}

.hero-buttons .btn:first-child {
    width: 204px!important;
    background: linear-gradient(135deg,#2585f4,#0b4db9)!important;
    border-color: #3c95ff!important;
    box-shadow: 0 12px 25px rgba(4,51,125,.3)!important
}

.hero-buttons .btn:last-child {
    width: 204px!important;
    background: rgba(255,255,255,.06)!important;
    border-color: rgba(255,255,255,.66)!important
}

.trusted-badge {
    display: flex!important;
    right: clamp(24px,7vw,100px)!important;
    top: auto!important;
    bottom: 76px!important;
    width: 154px!important;
    height: 154px!important;
    padding: 18px!important;
    border: 1px solid rgba(169,217,255,.44)!important;
    border-radius: 50%!important;
    background: rgba(4,25,53,.54)!important;
    color: #fff!important;
    box-shadow: 0 20px 60px rgba(0,8,24,.3),inset 0 0 0 7px rgba(169,217,255,.06)!important;
    transform: rotate(0)!important;
    backdrop-filter: blur(8px)
}

.trusted-badge:before {
    content: "";
    position: absolute;
    inset: 10px;
    border: 1px dashed rgba(169,217,255,.32);
    border-radius: 50%
}

.trusted-badge strong {
    font-family: 'Space Grotesk';
    font-size: 39px!important;
    line-height: 1;
    color: #b8e1ff!important
}

.trusted-badge span {
    position: relative;
    font-size: 10px!important;
    line-height: 1.25;
    text-align: center;
    color: #c5dcef!important
}

@media(max-width: 991px) {
    .hero,.hero .container {
        min-height:640px!important
    }

    .hero-copy {
        max-width: 63%!important
    }

    .trusted-badge {
        right: 25px!important;
        bottom: 55px!important;
        transform: scale(.82)!important
    }
}

@media(max-width: 767px) {
    .hero {
        min-height:0!important;
        padding-bottom: 34px!important;
        background-position: 62% center!important
    }

    .hero .container {
        min-height: 0!important;
        align-items: stretch;
        padding-top: 0
    }

    .hero-copy {
        max-width: 100%!important;
        padding: 54px 0 0!important
    }

    .hero h1 {
        font-size: clamp(37px,10.5vw,54px)!important;
        line-height: 1.02!important
    }

    .hero h1 br {
        display: none
    }

    .hero h2 {
        font-size: 22px!important
    }

    .hero-copy>p:not(.eyebrow) {
        font-size: 14px!important;
        line-height: 1.65!important
    }

    .hero-points {
        margin: 23px 0!important;
        padding-top: 16px
    }

    .hero-points span {
        padding-right: 8px;
        font-size: 10px!important
    }

    .hero-points span+span {
        padding-left: 8px
    }

    .hero-buttons {
        flex-direction: column!important;
        align-items: stretch!important
    }

    .hero-buttons .btn:first-child,.hero-buttons .btn:last-child {
        width: 100%!important;
        max-width: 330px!important
    }

    .trusted-badge {
        display: none!important
    }

    .hero:after {
        width: 430px;
        height: 430px;
        right: -210px;
        bottom: -185px
    }
}

/* Reliable mobile navigation and topbar alignment */
.nav-drawer .offcanvas-header {
    display: none
}

@media(max-width: 991px) {
    .navbar {
        position:sticky;
        top: 0;
        z-index: 1040
    }

    .nav-drawer {
        position: fixed!important;
        top: var(--nav-drawer-top,0px)!important;
        right: 0!important;
        bottom: 0!important;
        left: auto!important;
        width: min(88vw,390px)!important;
        height: auto!important;
        display: flex!important;
        flex-direction: column!important;
        visibility: hidden!important;
        background: #fff!important;
        border: 0!important;
        border-radius: 22px 0 0 22px!important;
        box-shadow: -18px 0 48px rgba(3,18,43,.2)!important;
        transform: translateX(105%)!important;
        transition: transform .32s cubic-bezier(.22,.61,.36,1),visibility .32s!important;
        z-index: 1055!important
    }

    .nav-drawer.show {
        visibility: visible!important;
        transform: translateX(0)!important
    }

    .nav-drawer .offcanvas-header {
        display: flex;
        align-items: center;
        justify-content: space-between;
        padding: 23px 22px 16px;
        border-bottom: 1px solid #edf1f5
    }

    .nav-drawer-title {
        color: var(--ink);
        font: 700 19px/1 'Space Grotesk',sans-serif;
        letter-spacing: -.03em
    }

    .nav-drawer .btn-close {
        margin: 0;
        padding: 10px;
        background-size: 12px;
        border-radius: 50%;
        box-shadow: 0 0 0 1px #e2eaf2
    }

    .nav-drawer .offcanvas-body {
        height: auto;
        overflow-y: auto;
        padding: 12px 22px 24px
    }

    .nav-drawer .navbar-nav {
        align-items: stretch!important;
        gap: 0!important
    }

    .nav-drawer .navbar-nav>li {
        border-bottom: 1px solid #edf1f5
    }

    .nav-drawer .nav-link {
        display: flex;
        align-items: center;
        min-height: 52px;
        padding: 15px 2px!important;
        font-size: 16px
    }

    .nav-drawer .nav-link:after {
        display: none
    }

    .nav-drawer .navbar-nav .btn {
        display: flex;
        justify-content: center;
        align-items: center;
        width: 100%;
        margin-top: 18px;
        padding: 14px 16px!important
    }

}

@media(max-width: 767px) {
    .topbar {
        padding:8px 0!important
    }

    .topbar .container {
        justify-content: space-between!important;
        gap: 8px!important;
        min-height: 28px
    }

    .topbar .container>div:first-child {
        width: auto!important;
        min-width: 0;
        gap: 10px!important;
        overflow: hidden
    }

    .topbar .container>div:first-child a {
        font-size: 10px!important;
        margin: 0!important;
        white-space: nowrap
    }

    .topbar .header-location {
        display: none!important
    }

    .topbar .header-socials {
        display: flex!important;
        flex: 0 0 auto;
        margin: 0 0 0 auto!important;
        gap: 6px!important
    }

    .topbar .header-socials a {
        width: 25px!important;
        height: 25px!important;
        font-size: 11px!important
    }
}

/* Keep the loading layer viewport-bound and prevent the drawer from reflowing the page. */
html,body {
    min-width: 0
}

.page-loader {
    position: fixed!important;
    inset: 0!important;
    width: 100vw!important;
    height: 100vh!important;
    height: 100dvh!important;
    max-width: 100vw;
    overflow: hidden;
    z-index: 2000!important;
    transform: translateZ(0);
    contain: layout paint
}

.page-loader>img {
    flex: 0 0 auto;
    max-width: 68vw
}

.page-loader-line {
    flex: 0 0 auto
}

@media(max-width: 991.98px) {
    .navbar,.navbar .container {
        height:76px!important;
        min-height: 76px!important
    }

    .navbar .container {
        align-items: center!important
    }

    .nav-drawer {
        position: fixed!important;
        top: var(--nav-drawer-top,0px)!important;
        right: 0!important;
        bottom: 0!important;
        left: 0!important;
        width: 100vw!important;
        max-width: none!important;
        height: calc(100dvh - var(--nav-drawer-top,0px))!important;
        min-height: 220px!important;
        max-height: none!important;
        display: flex!important;
        flex: 0 0 auto!important;
        flex-direction: column!important;
        overflow: hidden!important;
        border-radius: 0!important;
        background: linear-gradient(145deg,#06152b 0%,#0a2b52 58%,#0d4d87 100%)!important;
        box-shadow: 0 -14px 40px rgba(0,0,0,.24)!important;
        transform: translate3d(105%,0,0)!important;
        will-change: transform;
        overscroll-behavior: contain
    }

    .nav-drawer.show {
        transform: translate3d(0,0,0)!important
    }

    .nav-drawer .offcanvas-header {
        display: none!important
    }

    .nav-drawer .offcanvas-body {
        display: block!important;
        flex: 1 1 auto!important;
        min-height: 0!important;
        height: auto!important;
        padding: 26px 20px 30px!important;
        overflow-y: auto!important;
        overflow-x: hidden!important;
        -webkit-overflow-scrolling: touch
    }

    .nav-drawer .navbar-nav {
        width: 100%!important;
        margin: 0!important;
        gap: 0!important
    }

    .nav-drawer .navbar-nav>li {
        border-bottom: 1px solid rgba(196,225,255,.16)!important
    }

    .nav-drawer .navbar-nav>li:last-child {
        border-bottom: 0!important;
        padding-bottom: 0!important
    }

    .nav-drawer .nav-link {
        display: flex!important;
        align-items: center;
        min-height: 54px;
        padding: 15px 4px!important;
        border-left: 3px solid transparent;
        border-radius: 0!important;
        color: #eef7ff!important;
        font-size: 15px!important;
        font-weight: 700!important
    }

    .nav-drawer .nav-link {
        padding-left: 16px!important
    }

    .nav-drawer .nav-link:hover,.nav-drawer .nav-link.active {
        color: #fff!important;
        background: rgba(126,190,255,.16)!important;
        border-left-color: #8dceff!important
    }

    .nav-drawer .navbar-nav .btn-primary {
        width: 100%!important;
        min-height: 52px;
        margin-top: 22px!important;
        border: 1px solid rgba(170,218,255,.55)!important;
        background: linear-gradient(135deg,#2c83f2,#1352bd)!important;
        color: #fff!important;
        box-shadow: 0 10px 22px rgba(0,20,62,.3)!important
    }

}

/* Header alignment and social icon states */
.topbar .container {
    min-height: 20px
}

.topbar .container>div:first-child {
    display: flex;
    align-items: center;
    gap: 14px
}

.topbar .container>div:first-child a {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    margin: 0
}

.topbar .header-socials {
    display: flex!important;
    align-items: center;
    justify-content: center;
    gap: 8px;
    margin-left: auto
}

.topbar .header-socials a {
    display: flex!important;
    align-items: center;
    justify-content: center;
    width: 26px;
    height: 26px;
    padding: 0;
    margin: 0;
    line-height: 1;
    color: #b9d8f7;
    border: 1px solid rgba(185,216,247,.28);
    border-radius: 50%;
    transition: color .25s,background-color .25s,border-color .25s,transform .25s
}

.topbar .header-socials a i {
    display: block;
    width: 1em;
    height: 1em;
    line-height: 1;
    text-align: center;
    margin: 0;
    color: inherit
}

.topbar .header-socials a:hover,.topbar .header-socials a:focus-visible {
    color: #031022;
    background: var(--sky);
    border-color: var(--sky);
    transform: translateY(-2px)
}

@media(max-width: 991.98px) {
    .about .container {
        width:100%;
        max-width: none;
        padding-inline:24px}

    .about .row {
        --bs-gutter-x: 0;
        --bs-gutter-y: 28px
    }

    .about .row>[class*="col-"] {
        width: 100%;
        padding-inline:0}
}

@media(max-width: 767px) {
    .about .container {
        padding-inline:18px
    }

    .topbar .container {
        align-items: center
    }

    .topbar .header-socials {
        gap: 6px
    }

    .topbar .header-socials a {
        width: 25px;
        height: 25px;
        font-size: 11px
    }
}

/* Responsive overflow guard: decorative layers and Bootstrap rows must not widen the page. */
html {
    overflow-x: clip!important
}

body {
    max-width: 100%;
    overflow-x: clip!important;
    overflow-y: visible
}

img,svg,video,iframe {
    max-width: 100%
}

.container,.container-fluid {
    min-width: 0
}

.row {
    max-width: 100%;
}

@media(max-width: 991.98px) {
    .nav-drawer,.nav-drawer .offcanvas-body {
        overflow-x:hidden!important
    }

    .topbar,.hero,main,footer {
        max-width: 100%;
        overflow-x: clip
    }

    .navbar {
        position: sticky!important;
        top: 0!important;
        overflow: visible!important;
        z-index: 1070!important
    }

    .navbar.nav-menu-open {
        z-index: 1070!important
    }

    .nav-drawer .navbar-nav .btn {
        display: flex;
        align-items: center;
        justify-content: center
    }
}

/* Keep the desktop header balanced: logo on the left, navigation flush right. */
@media(min-width: 992px) {
    .navbar,.navbar .container {
        min-height:92px!important
    }

    .navbar .container {
        align-items: center!important
    }

    #siteNav {
        margin-left: auto!important;
        flex: 0 1 auto!important
    }

    #siteNav .offcanvas-body {
        justify-content: flex-end!important
    }

    #siteNav .navbar-nav {
        margin-left: auto!important;
        align-items: center!important
    }

    #siteNav .nav-link {
        height: 92px;
        display: flex;
        align-items: center;
        padding-top: 0!important;
        padding-bottom: 0!important
    }

    #siteNav .nav-link:after {
        bottom: 20px
    }
}

/* The location label is intentionally not shown in the topbar. */
.topbar .header-location {
    display: none!important
}

/* Keep the projects action consistent with the site's primary buttons. */
.load-more {
    display: flex!important;
    align-items: center;
    justify-content: center;
    gap: 10px;
    width: max-content;
    cursor: pointer
}

.load-more:hover i,.load-more:focus-visible i {
    transform: translateX(4px)
}

/* Keep the gallery action aligned with the site's primary buttons. */
.load-more {
    display: flex;
    width: max-content;
    align-items: center;
    justify-content: center;
    gap: 10px;
    min-height: 48px;
    margin: 34px auto 0;
    padding: 0 20px;
    border: 0;
    border-radius: 10px;
    background: linear-gradient(135deg,#2080f2,#0c49ad);
    color: #fff;
    font: 800 15px 'Space Grotesk',sans-serif;
    box-shadow: 0 12px 24px rgba(23,105,232,.2)
}

.load-more:hover {
    background: linear-gradient(135deg,#2a8dff,#0b3d98);
    border-color: transparent;
    color: #fff;
    transform: translateY(-3px);
    box-shadow: 0 17px 30px rgba(23,105,232,.3)
}

.load-more:focus-visible {
    outline: 3px solid rgba(23,105,232,.3);
    outline-offset: 3px
}

@media(max-width: 767px) {
    .about-hero:after {
        display:none
    }

    .about-values .row {
        --bs-gutter-x: 0
    }
}

.load-more i {
    transition: transform .25s ease
}

.load-more:hover i,.load-more:focus-visible i {
    transform: translateY(3px)
}

/* Preserve each button's base fill while the hover gradient slides over it. */
.btn-primary:hover,.nav-cta:hover,.load-more:hover {
    background: linear-gradient(135deg,#2080f2,#0c49ad)!important
}

.hero-buttons .btn-outline-light:hover {
    background: linear-gradient(135deg,rgba(12,82,171,.4),rgba(3,24,61,.72))!important
}

.service-load-more:hover {
    background: #0d2a4c!important
}

/* Keep the base fill mounted while the hover gradient slides over it. */
.btn,.load-more,.service-load-more {
    --button-base-fill: transparent;
    --button-hover-fill: linear-gradient(135deg,#2a8dff,#0b3d98);
    position: relative;
    overflow: hidden;
    isolation: isolate;
    background: transparent!important;
    transition: transform .25s ease,box-shadow .25s ease,border-color .25s ease,color .25s ease;
}

.btn:after,.load-more:after,.service-load-more:after {
    content: '';
    position: absolute;
    inset: 0;
    z-index: -2;
    pointer-events: none;
    background: var(--button-base-fill);
}

.btn:before,.load-more:before,.service-load-more:before {
    content: '';
    position: absolute;
    inset: 0;
    z-index: -1;
    pointer-events: none;
    background: var(--button-hover-fill);
    transform: translate3d(-101%,0,0);
    transition: transform .4s cubic-bezier(.22,.61,.36,1);
}

.btn:hover:before,.btn:focus-visible:before, .load-more:hover:before,.load-more:focus-visible:before, .service-load-more:hover:before,.service-load-more:focus-visible:before {
    transform: translate3d(0,0,0);
}

.hero-buttons .btn:before {
    display: block!important
}

/* About page: same Splash Clean visual language, with a more editorial story layout. */
.about-hero {
    position: relative;
    isolation: isolate;
    min-height: 560px;
    overflow: hidden;
    color: #fff;
    background: #06162c url('../images/client/interior-floor-clean-home.jpg') center/cover no-repeat
}

.about-hero:before {
    content: '';
    position: absolute;
    inset: 0;
    z-index: -1;
    background: linear-gradient(90deg,rgba(2,10,24,.98) 0%,rgba(3,17,39,.9) 42%,rgba(3,18,39,.46) 78%,rgba(3,18,39,.18) 100%)
}

.about-hero:after {
    content: '';
    position: absolute;
    right: -190px;
    bottom: -270px;
    width: 620px;
    height: 620px;
    border: 1px solid rgba(158,213,255,.22);
    border-radius: 50%;
    box-shadow: 0 0 0 70px rgba(158,213,255,.04),0 0 0 140px rgba(158,213,255,.025);
    pointer-events: none
}

.about-hero .container {
    position: relative;
    display: flex;
    align-items: center;
    min-height: 560px
}

.about-hero-copy {
    max-width: 720px;
    padding: 65px 0
}

.about-hero .eyebrow {
    display: flex;
    align-items: center;
    gap: 11px;
    color: #a9d9ff;
    margin-bottom: 19px
}

.about-hero .eyebrow:before {
    content: '';
    width: 31px;
    height: 1px;
    background: #8ecbff;
    box-shadow: 0 0 14px #8ecbff
}

.about-hero h1 {
    margin: 0 0 19px;
    font-size: clamp(46px,5.5vw,76px);
    line-height: 1;
    letter-spacing: -.065em
}

.about-hero h1 span {
    color: #a8d8ff
}

.about-hero-copy>p:not(.eyebrow) {
    max-width: 590px;
    color: #dbe9f5;
    font-size: 16px;
    line-height: 1.75
}

.about-hero-actions {
    display: flex;
    align-items: center;
    gap: 24px;
    margin-top: 30px
}

.about-hero-actions .btn {
    min-width: 205px
}

.about-text-link {
    color: #dcecff;
    font-size: 13px;
    font-weight: 700;
    text-decoration: none
}

.about-text-link i {
    margin-left: 7px;
    color: #8dccff;
    transition: transform .25s ease
}

.about-text-link:hover {
    color: #fff
}

.about-text-link:hover i {
    transform: translateX(4px)
}

.about-hero-note {
    position: absolute;
    right: 0;
    bottom: 67px;
    display: flex;
    align-items: center;
    gap: 13px;
    padding: 13px 17px;
    border: 1px solid rgba(169,217,255,.3);
    border-radius: 12px;
    background: rgba(4,25,53,.6);
    backdrop-filter: blur(8px);
    box-shadow: 0 18px 45px rgba(0,8,24,.25)
}

.about-note-icon {
    display: grid;
    place-items: center;
    width: 35px;
    height: 35px;
    border-radius: 9px;
    background: #1768e5;
    color: #fff
}

.about-hero-note strong,.about-hero-note small {
    display: block
}

.about-hero-note strong {
    font: 700 13px 'Space Grotesk',sans-serif;
    color: #fff
}

.about-hero-note small {
    margin-top: 3px;
    color: #b9d7ef;
    font-size: 10px
}

.about-intro {
    background: #fff
}

.about-intro-grid {
    display: grid;
    grid-template-columns: minmax(0,1fr) minmax(0,1fr);
    gap: 78px;
    align-items: center
}

.about-intro-image {
    position: relative;
    min-height: 475px;
    border-radius: 18px;
    overflow: hidden;
    background: #0b2341;
    box-shadow: 0 24px 55px rgba(5,24,55,.15)
}

.about-intro-image:after {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg,transparent 45%,rgba(2,13,29,.78) 100%)
}

.about-intro-image img {
    width: 100%;
    height: 100%;
    min-height: 475px;
    display: block;
    object-fit: cover
}

.about-image-caption {
    position: absolute;
    z-index: 1;
    right: 20px;
    bottom: 18px;
    left: 20px;
    display: flex;
    justify-content: space-between;
    align-items: center;
    color: #fff;
    font: 700 13px 'Space Grotesk',sans-serif
}

.about-image-caption i {
    display: grid;
    place-items: center;
    width: 32px;
    height: 32px;
    border: 1px solid rgba(255,255,255,.5);
    border-radius: 50%;
    font-size: 11px
}

.about-intro-copy h2,.about-trust-copy h2 {
    margin: 0 0 20px;
    font-size: clamp(38px,4.1vw,59px);
    line-height: 1.03;
    letter-spacing: -.06em
}

.about-intro-copy h2 span,.about-trust-copy h2 span {
    color: var(--blue)
}

.about-intro-copy>p:not(.section-label),.about-trust-copy>p:not(.section-label) {
    color: #53667c;
    line-height: 1.8
}

.about-stat-row {
    display: grid;
    grid-template-columns: repeat(3,1fr);
    gap: 12px;
    margin-top: 29px;
    padding-top: 24px;
    border-top: 1px solid var(--line)
}

.about-stat-row strong,.about-stat-row span {
    display: block
}

.about-stat-row strong {
    color: var(--blue);
    font: 700 26px/1 'Space Grotesk',sans-serif
}

.about-stat-row span {
    margin-top: 7px;
    color: #6a7b8f;
    font-size: 11px;
    line-height: 1.3
}

.about-values {
    background: var(--ice)
}

.about-values .section-title {
    max-width: 740px
}

.about-value-card {
    position: relative;
    height: 100%;
    min-height: 244px;
    padding: 29px;
    border: 1px solid #dce6f0;
    border-radius: 16px;
    background: #fff;
    box-shadow: 0 10px 30px rgba(5,24,55,.06);
    transition: transform .3s ease,box-shadow .3s ease,border-color .3s ease
}

.about-value-card:hover {
    transform: translateY(-7px);
    border-color: #a8cef1;
    box-shadow: 0 20px 38px rgba(5,24,55,.12)
}

.about-value-number {
    position: absolute;
    top: 23px;
    right: 25px;
    color: #d5e6f7;
    font: 700 30px/1 'Space Grotesk',sans-serif
}

.about-value-card>i {
    display: grid;
    place-items: center;
    width: 48px;
    height: 48px;
    margin-bottom: 25px;
    border-radius: 12px;
    background: #eaf4ff;
    color: var(--blue);
    font-size: 19px
}

.about-value-card h3 {
    max-width: 210px;
    margin: 0 0 10px;
    font-size: 22px;
    line-height: 1.1
}

.about-value-card p {
    margin: 0;
    color: #687a8e;
    font-size: 13px;
    line-height: 1.65
}

.about-trust {
    background: #fff
}

.about-trust-grid {
    display: grid;
    grid-template-columns: minmax(0,.9fr) minmax(0,1.1fr);
    gap: 72px;
    align-items: center
}

.about-trust-copy .btn {
    margin-top: 16px
}

.about-page .about-trust-copy .hero-buttons .about-reviews-button {
    align-self: flex-start;
    width: fit-content!important;
    max-width: 100%!important;
    height: auto!important;
    min-height: 54px!important;
    padding: 14px 20px!important;
    line-height: 1.3;
    white-space: normal!important;
    text-align: center
}

.about-page .about-trust-copy .about-reviews-button i {
    flex: 0 0 auto
}

.about-trust-panel {
    padding: 29px;
    border: 1px solid var(--line);
    border-radius: 18px;
    background: linear-gradient(145deg,#f8fbff,#edf5fd);
    box-shadow: 0 18px 42px rgba(5,24,55,.08)
}

.about-trust-heading {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 20px;
    color: var(--ink);
    font: 700 18px 'Space Grotesk',sans-serif
}

.about-trust-heading i {
    display: grid;
    place-items: center;
    width: 42px;
    height: 42px;
    border-radius: 50%;
    background: #dcebfb;
    color: var(--blue);
    font-size: 18px
}

.about-trust-marks {
    display: grid;
    grid-template-columns: repeat(2,1fr);
    gap: 12px
}

.about-trust-mark {
    display: flex;
    align-items: center;
    gap: 13px;
    min-height: 88px;
    padding: 12px;
    border: 1px solid #dce6f0;
    border-radius: 11px;
    background: #fff
}

.about-trust-mark img {
    width: 62px;
    height: 54px;
    object-fit: contain
}

.about-trust-mark span {
    color: #52667c;
    font-size: 11px;
    font-weight: 700;
    line-height: 1.35
}

.about-cta {
    padding-top: 0;
    background: #fff
}

.about-cta-inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 35px;
    padding: 42px 48px;
    border-radius: 20px;
    background: linear-gradient(135deg,#061a35,#0b4781);
    box-shadow: 0 25px 55px rgba(5,24,55,.2);
    overflow: hidden;
    position: relative
}

.about-cta-inner:after {
    content: '';
    position: absolute;
    right: -100px;
    bottom: -180px;
    width: 430px;
    height: 430px;
    border: 1px solid rgba(158,213,255,.25);
    border-radius: 50%;
    box-shadow: 0 0 0 55px rgba(158,213,255,.04),0 0 0 110px rgba(158,213,255,.025);
    pointer-events: none
}

.about-cta-inner>div,.about-cta-inner>a {
    position: relative;
    z-index: 1
}

.about-cta .eyebrow {
    margin-bottom: 12px;
    color: #a9d9ff
}

.about-cta h2 {
    margin: 0 0 8px;
    color: #fff;
    font-size: clamp(30px,4vw,50px);
    line-height: 1.04;
    letter-spacing: -.05em
}

.about-cta p:not(.eyebrow) {
    margin: 0;
    color: #c7dced;
    font-size: 14px
}

.about-cta .btn {
    flex: 0 0 auto;
    min-width: 190px
}

@media(max-width: 991px) {
    .about-hero,.about-hero .container {
        min-height:520px
    }

    .about-hero .container {
        align-items: flex-start
    }

    .about-hero-copy {
        padding-top: 76px
    }

    .about-hero-note {
        right: 24px;
        bottom: 36px
    }

    .about-intro-grid,.about-trust-grid {
        grid-template-columns: 1fr;
        gap: 42px
    }

    .about-intro-image {
        min-height: 390px;
        max-height: 500px
    }

    .about-intro-image img {
        min-height: 390px
    }

    .about-trust-grid {
        gap: 35px
    }

    .about-cta-inner {
        padding: 36px
    }
}

@media(max-width: 767px) {
    .about-hero {
        min-height:600px;
        background-position: 62% center
    }

    .about-hero .container {
        display: block;
        min-height: 600px
    }

    .about-hero-copy {
        padding: 55px 0 28px
    }

    .about-hero h1 {
        font-size: clamp(40px,11vw,58px)
    }

    .about-hero-copy>p:not(.eyebrow) {
        font-size: 14px;
        line-height: 1.65
    }

    .about-hero-actions {
        align-items: flex-start;
        flex-direction: column;
        gap: 20px;
        margin-top: 25px
    }

    .about-hero-actions .btn {
        width: 100%;
        max-width: 300px
    }

    .about-hero-note {
        right: 0;
        bottom: 27px;
        left: 0;
        width: max-content;
        max-width: 100%
    }

    .about-intro-grid {
        gap: 32px
    }

    .about-intro-image,.about-intro-image img {
        min-height: 300px
    }

    .about-intro-copy h2,.about-trust-copy h2 {
        font-size: 40px
    }

    .about-stat-row {
        gap: 8px
    }

    .about-stat-row strong {
        font-size: 22px
    }

    .about-stat-row span {
        font-size: 10px
    }

    .about-value-card {
        min-height: 0
    }

    .about-trust-panel {
        padding: 20px
    }

    .about-trust-marks {
        grid-template-columns: 1fr
    }

    .about-cta-inner {
        align-items: flex-start;
        flex-direction: column;
        padding: 30px 24px
    }

    .about-cta .btn {
        width: 100%;
        max-width: 260px
    }
}

.btn-primary,.nav-cta {
    --button-base-fill: linear-gradient(135deg,#2080f2,#0c49ad);
    --button-hover-fill: linear-gradient(135deg,#2a8dff,#0b3d98);
}

.hero-buttons .btn-outline-light,.btn-outline-light {
    --button-base-fill: rgba(255,255,255,.06);
    --button-hover-fill: linear-gradient(135deg,rgba(12,82,171,.72),rgba(3,24,61,.94));
    background: transparent!important;
}

.load-more {
    --button-base-fill: linear-gradient(135deg,#2080f2,#0c49ad);
    --button-hover-fill: linear-gradient(135deg,#2a8dff,#0b3d98);
}

.service-load-more {
    --button-base-fill: #0d2a4c;
    --button-hover-fill: linear-gradient(135deg,#1769e8,#0d429e);
}

.about-page .about-trust-copy .btn-primary:not(:hover):not(:focus-visible), .about-page .about-cta .btn-primary:not(:hover):not(:focus-visible) {
    background: linear-gradient(135deg,#2585f4,#0b4db9)!important;
    border: 1px solid #3c95ff!important
}

.about-page .about-hero-actions .about-text-link {
    font-weight: 800!important
}

@media(max-width: 767px) {
    .about-page .about-cta .hero-buttons {
        width:100%
    }

    .about-page .about-cta .btn {
        max-width: none!important
    }
}

@media(max-width: 767px) {
    .about-hero,.about-hero .container {
        min-height:0
    }
}

@media(max-width: 767px) {
    .about-page .about-hero-actions {
        width:100%;
        gap: 14px!important
    }

    .about-page .about-hero-actions .btn {
        width: 100%!important;
        min-width: 0!important;
        max-width: none!important;
        height: 54px!important;
        min-height: 54px!important;
        padding: 0 20px!important
    }
}

@media(max-width: 767px) {
    .about-page .about-hero-copy {
        padding:28px 0
    }
}

.services-page-hero {
    background-image: url('../images/services/driveway-restoration.jpg')
}

.services-page #services.premium-reveal {
    opacity: 1;
    transform: none
}

@media(max-width: 767px) {
    .services-page .about-hero-copy {
        padding:28px 0
    }

    .services-page .about-hero-actions {
        width: 100%;
        gap: 14px!important
    }

    .services-page .about-hero-actions .btn {
        width: 100%!important;
        min-width: 0!important;
        max-width: none!important;
        height: 54px!important;
        min-height: 54px!important;
        padding: 0 20px!important
    }

    .services-page .services {
        padding-top: 64px;
        padding-bottom: 64px
    }
}

.services-page #services.services-showcase {
    background: #fff;
    color: var(--ink)
}

.services-page #services .service-section-title>p {
    color: var(--blue)
}

.services-page #services .service-section-title h2 {
    color: var(--ink)
}

.services-page #services .service-section-title h2 span {
    color: var(--blue)
}

.services-page #services .service-section-title small {
    color: #66758a
}

@media(min-width: 821px) and (max-width:991.98px) {
    .hero {
        min-height:0!important
    }

    .hero .container {
        display: grid!important;
        grid-template-columns: minmax(0,1fr) minmax(300px,350px)!important;
        align-items: center!important;
        gap: 20px!important;
        min-height: 0!important;
        padding: 38px 12px!important
    }

    .hero-copy {
        width: 100%!important;
        max-width: none!important;
        padding: 0!important
    }

    .hero h1 {
        font-size: clamp(34px,4vw,42px)!important;
        line-height: 1.04!important
    }

    .hero h2 {
        font-size: 22px!important
    }

    .hero-copy>p:not(.eyebrow) {
        font-size: 14px!important;
        line-height: 1.6!important
    }

    .hero-form {
        width: 100%!important;
        max-width: none!important;
        margin: 0!important;
        padding: 18px!important
    }

    .hero-form .quote-form {
        grid-template-columns: 1fr 1fr!important;
        gap: 10px!important
    }

    .hero-form .quote-form>.col-sm-6 {
        grid-column: auto
    }

    .hero-form .quote-form>.col-12 {
        grid-column: 1/-1
    }
}

@media(min-width: 576px) and (max-width:820px) {
    .hero {
        min-height:0!important;
        padding-bottom: 22px!important
    }

    .hero .container {
        display: flex!important;
        grid-template-columns: 1fr!important;
        align-items: stretch!important;
        flex-direction: column!important;
        gap: 18px!important;
        min-height: 0!important;
        padding: 40px 12px 0!important
    }

    .hero-copy {
        width: 100%!important;
        max-width: none!important;
        padding: 0!important;
        margin: 0!important
    }

    .hero h1 {
        font-size: clamp(34px,5vw,40px)!important;
        line-height: 1.04!important
    }

    .hero h2 {
        font-size: 22px!important
    }

    .hero-copy>p:not(.eyebrow) {
        font-size: 14px!important;
        line-height: 1.6!important
    }

    .hero-form {
        width: 100%!important;
        max-width: none!important;
        flex: 0 0 auto!important;
        margin: 4px 0 0!important;
        padding: 18px!important
    }

    .hero-form .quote-form {
        grid-template-columns: 1fr 1fr!important;
        gap: 10px!important
    }

    .hero-form .quote-form>.col-sm-6 {
        grid-column: auto
    }

    .hero-form .quote-form>.col-12 {
        grid-column: 1/-1
    }
}

.services .service-grid {
    width: calc(100% + 24px);
    max-width: none;
    margin-left: -12px;
    margin-right: -12px;
    justify-content: center
}

.service-all-link .service-load-more {
    text-decoration: none!important
}

@media(max-width: 575px) {
    .service-all-link {
        margin-top:36px
    }
}

#siteNav .services-menu {
    display: flex;
    align-items: center;
    gap: 0
}

#siteNav .services-menu-toggle {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    align-self: stretch;
    min-width: 20px;
    padding: 0 3px;
    border: 0;
    background: transparent;
    color: var(--ink);
    cursor: pointer
}

#siteNav .services-menu-chevron {
    font-size: 10px;
    transition: transform .2s ease
}

#siteNav .services-menu-toggle[aria-expanded="true"] .services-menu-chevron {
    transform: rotate(180deg)
}

@media(min-width: 992px) {
    #siteNav .services-menu>.nav-link {
        padding-right:5px!important
    }

    #siteNav .services-menu-toggle {
        width: 16px;
        min-width: 16px;
        padding: 0
    }
}

@media(max-width: 991.98px) {
    #siteNav .services-menu-toggle {
        align-self:center;
        width: 40px;
        height: 40px;
        min-width: 40px;
        min-height: 40px;
        padding: 0;
        border: 1px solid rgba(141,206,255,.7)!important;
        border-radius: 6px;
        background: rgba(126,190,255,.16)!important;
        color: #eef7ff!important
    }

    .nav-drawer .services-menu-toggle:hover,.nav-drawer .services-menu-toggle:focus-visible {
        background: rgba(126,190,255,.28)!important;
        outline: 2px solid rgba(141,206,255,.45);
        outline-offset: 2px
    }
}

#siteNav .services-menu-list {
    width: 320px;
    max-height: none;
    overflow: visible;
    padding: 8px;
    border: 1px solid #e2eaf3;
    border-radius: 7px;
    box-shadow: 0 16px 32px rgba(5,24,55,.16)
}

@media(min-width: 992px) {
    #siteNav .services-menu-list {
        top:100%!important;
        left: 0!important;
        margin-top: 0!important;
        transform: none!important
    }
}

#siteNav .services-menu-list .dropdown-item {
    padding: 9px 12px;
    border-radius: 4px;
    color: #34445a;
    font-size: 12px;
    line-height: 1.35;
    white-space: normal
}

#siteNav .services-menu-list .dropdown-item:hover,#siteNav .services-menu-list .dropdown-item:focus {
    background: #eef5ff;
    color: #0b55bb
}

.nav-drawer-inner {
    width: 100%;
    max-width: 1240px;
    margin: 0 auto
}

@media(min-width: 992px) and (hover:hover) {
    #siteNav .services-menu:hover>.services-menu-list,#siteNav .services-menu:focus-within>.services-menu-list {
        display:block
    }

    #siteNav .services-menu:hover>.dropdown-toggle .services-menu-chevron,#siteNav .services-menu:focus-within>.dropdown-toggle .services-menu-chevron {
        transform: rotate(180deg)
    }
}

@media(max-width: 991.98px) {
    #siteNav .offcanvas-body {
        padding:26px 0 30px!important
    }

    .nav-drawer-inner {
        width: var(--nav-container-width,100%);
        max-width: none;
        margin-left: var(--nav-container-left,0px);
        margin-right: 0;
        padding-inline:12px}

    #siteNav .services-menu {
        display: grid;
        grid-template-columns: minmax(0,1fr) 44px
    }

    .nav-drawer .services-menu>.nav-link {
        grid-column: 1;
        grid-row: 1
    }

    .nav-drawer .services-menu-toggle {
        grid-column: 2;
        grid-row: 1;
        width: 44px;
        min-width: 44px;
        min-height: 54px;
        color: #eef7ff
    }

    #siteNav .services-menu-list {
        position: static!important;
        grid-column: 1/-1;
        grid-row: 2;
        width: 100%;
        max-height: 32vh!important;
        margin: 0 0 10px;
        padding: 6px 8px;
        border: 1px solid rgba(196,225,255,.18);
        background: rgba(255,255,255,.06);
        box-shadow: none;
        transform: none!important;
        overflow-y: auto!important;
        overscroll-behavior: contain;
        scrollbar-width: thin;
        scrollbar-color: #70aef4 rgba(255,255,255,.08)
    }

    #siteNav .services-menu-list::-webkit-scrollbar {
        width: 8px
    }

    #siteNav .services-menu-list::-webkit-scrollbar-track {
        border-radius: 8px;
        background: rgba(255,255,255,.08)
    }

    #siteNav .services-menu-list::-webkit-scrollbar-thumb {
        border: 2px solid #0a2547;
        border-radius: 8px;
        background: #70aef4
    }

    #siteNav .services-menu-list .dropdown-item {
        color: #e8f3ff
    }

    #siteNav .services-menu-list .dropdown-item:hover,#siteNav .services-menu-list .dropdown-item:focus {
        background: rgba(126,190,255,.16);
        color: #fff
    }
}

@media(max-width: 767px) {
    .hero h1,.about-hero h1 {
        font-size:36px!important
    }
}

@media(max-width: 380px) {
    .hero h1,.about-hero h1 {
        font-size:32px!important
    }
}

.service-detail-hero {
    background-image: linear-gradient(90deg,rgba(2,10,24,.96),rgba(3,17,39,.78) 58%,rgba(3,18,39,.3)),var(--service-hero-image);
    background-position: center;
    background-size: cover
}

.service-detail-page .service-detail-content {
    background: #f5f8fc
}

.service-breadcrumb {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 10px;
    margin: 0 0 34px;
    color: #6c7b8e;
    font-size: 12px
}

.service-breadcrumb a {
    color: #1769e8;
    text-decoration: none
}

.service-breadcrumb a:hover {
    text-decoration: underline
}

.service-breadcrumb i {
    font-size: 9px;
    color: #9aa8b8
}

.service-detail-grid {
    display: grid;
    grid-template-columns: minmax(0,1.35fr) minmax(290px,.75fr);
    align-items: start;
    gap: 54px
}

.service-detail-copy,
.service-detail-sidebar {
    min-width: 0
}

.service-detail-copy h2 {
    margin: 0 0 22px;
    color: var(--ink);
    font-size: 42px;
    line-height: 1.1
}

.service-detail-copy>p:not(.section-label) {
    color: #53667c;
    font-size: 15px;
    line-height: 1.75
}

.service-detail-copy h3 {
    margin: 30px 0 14px;
    color: var(--ink);
    font: 600 20px/1.25 'Space Grotesk',sans-serif
}

.service-live-content ul {
    margin: 0 0 22px;
    padding-left: 22px;
    color: #53667c;
    font-size: 15px;
    line-height: 1.75
}

.service-live-content li {
    padding-left: 3px
}

.service-live-content a {
    color: #1769e8
}

.service-detail-gallery {
    margin-top: 46px
}

.service-detail-gallery>.section-label {
    margin-bottom: 8px
}

.service-detail-gallery>h3 {
    margin: 0 0 18px
}

.service-gallery-comparison {
    min-width: 0;
    margin: 0
}

.service-gallery-comparison .comparison {
    height: auto;
    aspect-ratio: 1.6
}

.service-gallery-carousel {
    min-width: 0;
    margin: 0;
    width: 100%
}

.service-gallery-viewport {
    min-width: 0;
    overflow: visible
}

.service-gallery-slides {
    position: relative;
    display: flex;
    flex-wrap: wrap;
    gap: 16px;
    min-width: 0;
    transition: transform .4s ease
}

.service-gallery-carousel.is-carousel-ready .service-gallery-viewport {
    overflow: hidden
}

.service-gallery-carousel.is-carousel-ready .service-gallery-slides {
    flex-wrap: nowrap
}

.service-gallery-slide[hidden] {
    display: none
}

.service-gallery-slide {
    flex: 0 0 calc((100% - 16px) / 2);
    min-width: 0
}

.service-gallery-slide:only-child {
    flex-basis: 100%
}

.service-gallery-carousel-controls {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
    margin-top: 14px
}

.service-gallery-carousel-nav {
    display: grid;
    width: 42px;
    height: 42px;
    flex: 0 0 auto;
    place-items: center;
    border: 1px solid var(--line);
    border-radius: 50%;
    background: #fff;
    color: var(--ink);
    cursor: pointer;
    transition: background-color .2s ease, color .2s ease, border-color .2s ease
}

.service-gallery-carousel-nav:hover {
    border-color: var(--blue);
    background: var(--blue);
    color: #fff
}

.service-gallery-carousel-indicators {
    display: flex;
    justify-content: center;
    gap: 7px
}

.service-gallery-carousel-dot {
    width: 9px;
    height: 9px;
    padding: 0;
    border: 0;
    border-radius: 50%;
    background: #b8c5d6;
    cursor: pointer;
    transition: width .2s ease, background-color .2s ease
}

.service-gallery-carousel-dot[aria-pressed="true"] {
    width: 24px;
    border-radius: 99px;
    background: var(--blue)
}

.service-gallery-carousel-nav:focus-visible,
.service-gallery-carousel-dot:focus-visible {
    outline: 3px solid var(--blue);
    outline-offset: 3px
}

@media(prefers-reduced-motion: reduce) {
    .service-gallery-slides,
    .service-gallery-carousel-nav,
    .service-gallery-carousel-dot {
        transition: none
    }
}

@media(max-width: 991px) {
    .service-gallery-slide {
        flex-basis: 100%
    }
}

.gallery-page-carousel .service-gallery-slides {
    gap: 20px
}

.gallery-page-carousel .service-gallery-slide {
    flex-basis: calc((100% - 40px) / 3)
}

.gallery-page-carousel[data-slide-count="2"] .service-gallery-slide {
    flex-basis: calc((100% - 20px) / 2)
}

.gallery-page-carousel[data-slide-count="1"] .service-gallery-slide {
    flex-basis: 100%
}

@media (min-width: 576px) and (max-width: 991.98px) {
    .gallery-page-carousel .service-gallery-slide {
        flex-basis: calc((100% - 20px) / 2)
    }
}

@media (max-width: 575.98px) {
    .gallery-page-carousel .service-gallery-slide,
    .gallery-page-carousel[data-slide-count="1"] .service-gallery-slide,
    .gallery-page-carousel[data-slide-count="2"] .service-gallery-slide {
        flex-basis: 100%
    }
}

.service-gallery-photo {
    min-width: 0;
    margin: 0;
    overflow: hidden;
    border: 1px solid #dfe7f0;
    border-radius: 8px;
    background: #fff;
    box-shadow: 0 7px 22px rgba(5,26,55,.08)
}

.service-gallery-photo img {
    display: block;
    width: 100%;
    aspect-ratio: 1.45;
    object-fit: cover;
    background: #e5ebf1
}

.service-gallery-photo figcaption {
    padding: 12px 14px;
    color: #53667c;
    font-size: 12px;
    line-height: 1.45
}

.service-detail-sidebar {
    position: sticky;
    top: 110px;
    align-self: start;
    border: 1px solid #dfe7f0;
    border-radius: 8px;
    background: #fff;
    box-shadow: 0 10px 28px rgba(5,26,55,.08)
}

.service-sidebar-section,.service-sidebar-contact {
    padding: 20px
}

.service-sidebar-section h2,.service-sidebar-contact h2 {
    margin: 0 0 14px;
    color: var(--ink);
    font: 600 22px/1.2 'Space Grotesk',sans-serif
}

.service-sidebar-list {
    display: grid;
    gap: 2px;
    margin: 0;
    padding: 0;
    list-style: none
}

.service-sidebar-list a {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 9px 8px;
    border-radius: 4px;
    color: #42556c;
    font-size: 12px;
    line-height: 1.35;
    text-decoration: none
}

.service-sidebar-list a i {
    flex: 0 0 auto;
    color: #7b91aa;
    font-size: 10px
}

.service-sidebar-list a:hover,.service-sidebar-list a.active {
    background: #edf5ff;
    color: #075fe7
}

.service-sidebar-list a.active {
    font-weight: 700
}

.service-sidebar-contact {
    border-top: 1px solid #e5ebf2;
    background: #f8fafd
}

.service-sidebar-contact h3 {
    margin: 16px 0 8px;
    color: #61738a;
    font: 700 10px/1.3 'DM Sans',sans-serif;
    letter-spacing: .1em;
    text-transform: uppercase
}

.service-sidebar-contact> a:not(.btn) {
    display: flex;
    justify-content: space-between;
    gap: 10px;
    padding: 6px 0;
    color: #3f536a;
    font-size: 12px;
    text-decoration: none
}

.service-sidebar-contact> a:not(.btn) strong {
    color: var(--ink);
    white-space: nowrap
}

.service-sidebar-contact .service-sidebar-email {
    justify-content: flex-start;
    overflow-wrap: anywhere
}

.service-sidebar-contact .btn {
    display: flex;
    justify-content: center;
    align-items: center;
    min-height: 46px;
    margin-top: 14px
}

.service-detail-kicker {
    color: #1769e8;
    font-size: 10px;
    font-weight: 800;
    letter-spacing: .12em;
    text-transform: uppercase
}

.service-detail-not-found {
    min-height: 50vh
}

.service-detail-not-found h1 {
    margin: 0 0 22px;
    font-size: 40px
}

.service-detail-not-found .btn {
    display: inline-flex;
    align-items: center;
    min-height: 48px;
    padding: 0 18px
}

.service-detail-page .service-detail-content.premium-reveal {
    opacity: 1;
    transform: none
}

@media(max-width: 991.98px) {
    .service-detail-grid {
        grid-template-columns:1fr;
        gap: 34px
    }

    .service-detail-sidebar {
        position: static;
        display: grid;
        grid-template-columns: minmax(0,1.1fr) minmax(280px,.9fr)
    }

    .service-sidebar-contact {
        border-top: 0;
        border-left: 1px solid #e5ebf2
    }
}

@media(max-width: 767px) {
    .service-detail-copy h2 {
        font-size:34px
    }

    .service-detail-copy>p:not(.section-label) {
        font-size: 14px
    }

    .service-gallery-comparison .comparison {
        aspect-ratio: 1.4
    }

    .service-gallery-carousel-controls {
        gap: 9px;
        margin-top: 12px
    }

    .service-gallery-carousel-nav {
        width: 38px;
        height: 38px
    }

    .service-gallery-carousel-dot {
        width: 8px;
        height: 8px
    }

    .service-gallery-carousel-dot[aria-pressed="true"] {
        width: 20px
    }

    .service-detail-sidebar {
        display: block
    }

    .service-sidebar-contact {
        border-top: 1px solid #e5ebf2;
        border-left: 0
    }

    .service-detail-not-found h1 {
        font-size: 32px
    }
}

.gallery .load-more {
    background: linear-gradient(135deg,#2080f2,#0c49ad)!important;
    color: #fff;
    text-decoration: none
}

.gallery .load-more:hover,.gallery .load-more:focus-visible {
    background: linear-gradient(135deg,#2a8dff,#0b3d98)!important;
    color: #fff
}

/* Trusted Trader seal used consistently across page heroes. */
.hero-trust-mark {
    display: block;
    width: 132px;
    max-width: 38vw;
    margin: 0;
    line-height: 0;
    filter: drop-shadow(0 10px 18px rgba(0,8,24,.24));
}

.about-hero .hero-trust-mark {
    position: absolute;
    z-index: 2;
    right: 0;
    bottom: 28px;
}

.hero-trust-mark img {
    display: block;
    width: 100%;
    height: auto;
}

@media (min-width: 768px) and (max-width: 991.98px) {
    .about-hero-copy {
        max-width: calc(100% - 136px);
    }

    .about-hero .hero-trust-mark {
        width: 112px;
    }
}

@media (max-width: 767.98px) {
    .hero-trust-mark {
        width: 108px;
    }

    .about-hero .container {
        padding-bottom: 126px;
    }

    .about-hero .hero-trust-mark {
        right: auto;
        left: 0;
        bottom: 20px;
    }
}

.which-mark.home-which-mark {
    justify-content: flex-start;
    min-height: 76px;
}

.which-mark.home-which-mark img {
    flex: 0 0 68px;
    width: 68px;
    height: 54px;
}

.reviews-all-link {
    display: flex;
    justify-content: center;
    margin-top: 26px
}

.reviews-all-link .btn {
    text-decoration: none
}

.reviews-page-content {
    background: var(--ice)
}

.reviews-grid {
    display: grid;
    grid-template-columns: repeat(3,minmax(0,1fr));
    gap: 20px
}

.review-list-message {
    grid-column: 1/-1;
    margin: 0;
    padding: 22px;
    border: 1px dashed #cbd9e8;
    border-radius: 12px;
    background: rgba(255,255,255,.72);
    color: #586b81;
    text-align: center
}

.reviews-grid .review-card {
    padding: 25px;
    border: 1px solid var(--line);
    border-radius: 15px;
    background: #fff;
    box-shadow: 0 10px 32px rgba(5,24,55,.08)
}

.reviews-grid .review-card p {
    min-height: 0;
    margin: 13px 0;
    color: #42546a;
    font-size: 15px;
    line-height: 1.7
}

.reviews-grid .review-card strong {
    color: var(--ink);
    font-size: 13px
}

.review-service-badge {
    display: inline-flex;
    align-items: center;
    margin: 0 0 12px;
    padding: 5px 9px;
    border-radius: 20px;
    background: #edf4fb;
    color: #42617f;
    font-size: 10px;
    font-weight: 700
}

.reviews-grid .review-featured {
    position: relative;
    grid-column: 1/-1;
    overflow: hidden;
    padding: 36px 42px;
    border: 0;
    background: linear-gradient(120deg,#061a36,#0b3670 68%,#1769c6);
    box-shadow: 0 18px 40px rgba(5,24,55,.18);
    color: #fff
}

.review-featured:after {
    content: '“';
    position: absolute;
    right: 36px;
    bottom: -105px;
    color: rgba(255,255,255,.08);
    font: 700 300px/1 'Space Grotesk',sans-serif;
    pointer-events: none
}

.review-featured-label {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    margin-bottom: 16px;
    padding: 7px 11px;
    border: 1px solid rgba(255,255,255,.26);
    border-radius: 30px;
    background: rgba(255,255,255,.09);
    color: #dcecff;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: .07em;
    text-transform: uppercase
}

.reviews-grid .review-featured .stars {
    color: #ffd16a;
    font-size: 17px;
    letter-spacing: 4px
}

.reviews-grid .review-featured p {
    position: relative;
    z-index: 1;
    max-width: 900px;
    margin: 13px 0 18px;
    color: #fff;
    font: 500 clamp(20px,2.2vw,29px)/1.45 'Space Grotesk',sans-serif
}

.reviews-grid .review-featured strong {
    position: relative;
    z-index: 1;
    color: #c4ddff;
    font-size: 14px
}

.reviews-grid .review-featured .review-service-badge {
    position: relative;
    z-index: 1;
    background: rgba(255,255,255,.13);
    color: #dcecff
}

@media(max-width: 991.98px) {
    .reviews-grid {
        grid-template-columns:repeat(2,minmax(0,1fr))
    }
}

@media(max-width: 575.98px) {
    .reviews-grid {
        grid-template-columns:1fr;
        gap: 14px
    }

    .reviews-grid .review-card {
        padding: 21px
    }
}

@media(max-width: 767.98px) {
    .reviews-grid .review-featured {
        padding:26px 22px
    }

    .review-featured:after {
        right: 4px;
        bottom: -70px;
        font-size: 210px
    }
}

.review-submit-section {
    position: relative;
    overflow: hidden;
    background: linear-gradient(135deg,#f1f7fc 0%,#fff 58%,#edf5ff 100%)
}

.review-submit-layout {
    display: grid;
    grid-template-columns: minmax(240px,.72fr) minmax(0,1.28fr);
    align-items: start;
    gap: clamp(28px,6vw,88px)
}

.review-submit-intro {
    position: relative;
    align-self: center;
    max-width: 440px;
    padding: 0
}

.review-submit-intro .eyebrow {
    display: flex;
    align-items: center;
    gap: 10px;
    margin: 0 0 16px;
    color: #2474c8;
    font-size: 12px;
    font-weight: 800;
    letter-spacing: .13em;
    text-transform: uppercase
}

.review-submit-intro .eyebrow:before {
    width: 28px;
    height: 2px;
    background: #2474c8;
    content: ''
}

.review-submit-intro h2 {
    margin: 0 0 18px;
    color: var(--ink);
    font: 700 clamp(36px,4.2vw,54px)/1.04 'Space Grotesk',sans-serif;
    letter-spacing: -.035em
}

.review-submit-intro h2 span {
    color: #2474c8
}

.review-submit-intro > p:not(.eyebrow) {
    max-width: 390px;
    margin: 0;
    color: #52647a;
    font-size: 16px;
    line-height: 1.7
}

.review-process {
    margin-top: 30px
}

.review-process-heading {
    margin: 0 0 14px;
    color: #77879b;
    font-size: 11px;
    font-weight: 800;
    letter-spacing: .12em;
    text-transform: uppercase
}

.review-process-list {
    display: grid;
    gap: 14px;
    margin: 0;
    padding: 0;
    list-style: none
}

.review-process-list li {
    position: relative;
    display: grid;
    grid-template-columns: 34px minmax(0,1fr);
    align-items: start;
    gap: 12px
}

.review-process-list li:not(:last-child):after {
    position: absolute;
    top: 34px;
    bottom: -13px;
    left: 16px;
    width: 1px;
    background: #d9e5f1;
    content: ''
}

.review-process-number {
    display: grid;
    width: 34px;
    height: 34px;
    place-items: center;
    border: 1px solid #d6e3f0;
    border-radius: 50%;
    background: #fff;
    color: #2474c8;
    font-size: 10px;
    font-weight: 800;
    letter-spacing: .03em
}

.review-process-copy {
    display: grid;
    gap: 3px;
    padding: 1px 0 0
}

.review-process-copy strong {
    color: var(--ink);
    font-size: 13px;
    font-weight: 700
}

.review-process-copy small {
    color: #66778c;
    font-size: 12px;
    line-height: 1.5
}

.review-submit-note {
    display: flex;
    align-items: center;
    gap: 9px;
    width: fit-content;
    margin-top: 21px;
    color: #66778c;
    font-size: 12px;
    line-height: 1.4
}

.review-submit-note i {
    display: grid;
    width: 27px;
    height: 27px;
    flex: 0 0 27px;
    place-items: center;
    margin: 0;
    border-radius: 50%;
    background: #e5f0fb;
    color: #2474c8;
    font-size: 12px
}

.review-form-panel {
    min-width: 0;
    padding: clamp(22px,4vw,38px);
    border: 1px solid #dce6f0;
    border-radius: 18px;
    background: #fff;
    box-shadow: 0 18px 55px rgba(5,24,55,.1)
}

.review-form-feedback {
    margin-bottom: 24px;
    padding: 13px 16px;
    border: 1px solid;
    border-radius: 10px;
    font-size: 14px;
    line-height: 1.55
}

.review-form-feedback.is-success {
    border-color: #a9d9be;
    background: #effaf3;
    color: #17633a
}

.review-form-feedback.is-error {
    border-color: #efbbbb;
    background: #fff4f4;
    color: #9f2929
}

.review-submit-form {
    display: grid;
    gap: 20px
}

.review-rating-fieldset {
    min-width: 0;
    margin: 0;
    padding: 0;
    border: 0
}

.review-rating-fieldset legend,
.review-form-field label {
    display: block;
    margin: 0 0 9px;
    color: var(--ink);
    font-size: 13px;
    font-weight: 700
}

.review-rating-fieldset legend span,
.review-form-field label span {
    color: #c34343
}

.review-rating-options {
    display: flex;
    justify-content: flex-end;
    width: fit-content;
    gap: 5px
}

.review-rating-option {
    position: relative;
    display: inline-flex;
    cursor: pointer
}

.review-rating-option input {
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
    clip: rect(0,0,0,0);
    white-space: nowrap;
    clip-path: inset(50%)
}

.review-rating-option > span:first-of-type {
    display: block;
    color: #cbd5e0;
    font-size: 32px;
    line-height: 1.1;
    transition: color .16s ease,transform .16s ease
}

.review-rating-options:has(label:nth-child(1):hover) label:nth-child(-n+1) > span:first-of-type,
.review-rating-options:has(label:nth-child(2):hover) label:nth-child(-n+2) > span:first-of-type,
.review-rating-options:has(label:nth-child(3):hover) label:nth-child(-n+3) > span:first-of-type,
.review-rating-options:has(label:nth-child(4):hover) label:nth-child(-n+4) > span:first-of-type,
.review-rating-options:has(label:nth-child(5):hover) label:nth-child(-n+5) > span:first-of-type,
.review-rating-options:has(#review-rating-1:checked) label:nth-child(-n+1) > span:first-of-type,
.review-rating-options:has(#review-rating-2:checked) label:nth-child(-n+2) > span:first-of-type,
.review-rating-options:has(#review-rating-3:checked) label:nth-child(-n+3) > span:first-of-type,
.review-rating-options:has(#review-rating-4:checked) label:nth-child(-n+4) > span:first-of-type,
.review-rating-options:has(#review-rating-5:checked) label:nth-child(-n+5) > span:first-of-type {
    color: #f2ad2f
}

.review-rating-option input:focus-visible + span:first-of-type {
    outline: 3px solid #2474c8;
    outline-offset: 3px;
    border-radius: 3px
}

.review-rating-option:hover > span:first-of-type {
    transform: translateY(-2px)
}

.review-form-grid {
    display: grid;
    grid-template-columns: repeat(2,minmax(0,1fr));
    gap: 18px
}

.review-form-field {
    min-width: 0
}

.review-email-field {
    grid-column: 1/-1
}

.review-form-field input,
.review-form-field select,
.review-form-field textarea {
    display: block;
    width: 100%;
    min-height: 48px;
    padding: 12px 14px;
    border: 1px solid #cfdbe7;
    border-radius: 9px;
    outline: 0;
    background: #fff;
    color: #14243a;
    font: inherit;
    font-size: 14px;
    transition: border-color .16s ease,box-shadow .16s ease
}

.review-form-field textarea {
    min-height: 138px;
    resize: vertical
}

.review-form-field input:focus,
.review-form-field select:focus,
.review-form-field textarea:focus {
    border-color: #2474c8;
    box-shadow: 0 0 0 3px rgba(36,116,200,.14)
}

.review-form-field [aria-invalid="true"],
.review-consent-field [aria-invalid="true"] {
    border-color: #c34343
}

.review-form-field textarea::placeholder {
    color: #8391a1
}

.review-field-meta {
    display: flex;
    justify-content: space-between;
    min-height: 20px;
    margin-top: 6px;
    color: #748397;
    font-size: 12px
}

.review-field-error {
    display: block;
    margin-top: 7px;
    color: #a42f2f;
    font-size: 12px;
    line-height: 1.45
}

.review-field-hint {
    display: block;
    margin-top: 7px;
    color: #748397;
    font-size: 12px;
    line-height: 1.45
}

.review-consent-field {
    display: grid;
    grid-template-columns: 18px minmax(0,1fr);
    align-items: start;
    gap: 10px;
    color: #52647a;
    font-size: 13px;
    line-height: 1.55
}

.review-consent-field input {
    width: 17px;
    height: 17px;
    margin: 2px 0 0;
    accent-color: #1768bd
}

.review-consent-field label {
    cursor: pointer
}

.review-consent-error {
    margin-top: -14px
}

.review-submit-button {
    display: inline-flex;
    justify-content: center;
    align-items: center;
    gap: 11px;
    justify-self: start;
    min-height: 49px;
    padding: 0 22px
}

.review-honeypot {
    position: absolute !important;
    left: -10000px !important;
    width: 1px !important;
    height: 1px !important;
    overflow: hidden !important
}

@media(max-width: 767.98px) {
    .review-submit-layout {
        grid-template-columns: 1fr;
        gap: 26px
    }

    .review-submit-intro {
        position: static;
        align-self: start;
        max-width: 560px;
        padding-top: 0
    }

    .review-submit-note {
        margin-top: 18px
    }

    .review-process {
        margin-top: 23px
    }
}

@media(max-width: 575.98px) {
    .review-form-grid {
        grid-template-columns: 1fr;
        gap: 20px
    }

    .review-form-panel {
        padding: 21px 17px;
        border-radius: 14px
    }

    .review-rating-option > span:first-of-type {
        font-size: 30px
    }

    .review-submit-button {
        width: 100%
    }
}

.contact-hero {
    background-image: url('../images/services/commercial-cleaning.jpg')
}

.contact-page-content {
    background: var(--ice)
}

.contact-page-grid {
    display: grid;
    grid-template-columns: minmax(0,1.45fr) minmax(330px,.85fr);
    align-items: stretch;
    gap: 26px
}

.contact-form-panel,.contact-details-panel {
    min-width: 0;
    border: 1px solid #e0e8f1;
    border-radius: 16px;
    background: #fff;
    box-shadow: 0 14px 36px rgba(5,24,55,.08)
}

.contact-form-panel {
    padding: 32px
}

.contact-panel-heading {
    display: flex;
    align-items: center;
    gap: 14px;
    margin-bottom: 24px
}

.contact-panel-icon {
    display: grid;
    place-items: center;
    width: 48px;
    height: 48px;
    flex: 0 0 48px;
    border-radius: 13px;
    background: #eaf3ff;
    color: var(--blue);
    font-size: 19px
}

.contact-panel-kicker {
    margin: 0 0 5px;
    color: var(--blue);
    font-size: 10px;
    font-weight: 800;
    letter-spacing: .13em;
    text-transform: uppercase
}

.contact-panel-heading h2,.contact-details-heading h2 {
    margin: 0;
    color: var(--ink);
    font: 600 25px/1.2 'Space Grotesk',sans-serif
}

.contact-form-panel .quote-form {
    padding: 0;
    background: transparent
}

.contact-form-panel .quote-form label {
    display: block;
    margin: 0 0 7px;
    color: #334962;
    font-size: 12px;
    font-weight: 700
}

.contact-form-panel .quote-form input,.contact-form-panel .quote-form select,.contact-form-panel .quote-form textarea {
    min-height: 48px;
    border: 1px solid #dbe4ef;
    border-radius: 7px;
    background: #fbfdff;
    color: var(--ink);
    font-size: 13px;
    transition: border-color .2s ease,box-shadow .2s ease
}

.contact-form-panel .quote-form textarea {
    min-height: 130px;
    resize: vertical
}

.contact-form-panel .quote-form input:focus,.contact-form-panel .quote-form select:focus,.contact-form-panel .quote-form textarea:focus {
    border-color: #72a9ed;
    outline: 0;
    box-shadow: 0 0 0 3px rgba(23,105,232,.12)
}

.contact-form-panel .quote-form .btn {
    min-height: 52px
}

.contact-form-panel .form-status {
    display: block;
    min-height: 18px;
    margin: 9px 0 0;
    color: #1b8758;
    font-size: 12px
}

.contact-details-panel {
    position: relative;
    isolation: isolate;
    overflow: hidden;
    padding: 30px;
    background: linear-gradient(150deg,#061a36,#0b315d 60%,#0c4477);
    border-color: #173b63;
    color: #fff
}

.contact-details-panel:after {
    position: absolute;
    z-index: -1;
    right: -75px;
    top: -90px;
    width: 250px;
    height: 250px;
    border: 1px solid rgba(178,218,255,.16);
    border-radius: 50%;
    box-shadow: 0 0 0 32px rgba(178,218,255,.035),0 0 0 64px rgba(178,218,255,.025);
    content: '';
    pointer-events: none
}

.contact-details-heading {
    padding-bottom: 20px;
    border-bottom: 1px solid rgba(255,255,255,.15)
}

.contact-details-heading .contact-panel-kicker {
    color: #9dceff
}

.contact-details-heading h2 {
    color: #fff;
    font-size: 24px
}

.contact-details-heading>p:last-child {
    margin: 10px 0 0;
    color: #bfd1e4;
    font-size: 12px;
    line-height: 1.6
}

.contact-detail-group {
    padding: 18px 0;
    border-bottom: 1px solid rgba(255,255,255,.13)
}

.contact-detail-group:last-child {
    padding-bottom: 0;
    border-bottom: 0
}

.contact-detail-group h3 {
    display: flex;
    align-items: center;
    gap: 10px;
    margin: 0 0 12px;
    color: #fff;
    font: 600 15px 'Space Grotesk',sans-serif
}

.contact-detail-group h3>span {
    display: grid;
    place-items: center;
    width: 30px;
    height: 30px;
    border-radius: 9px;
    background: rgba(135,192,255,.14);
    color: #a9d5ff;
    font-size: 12px
}

.contact-detail-group address {
    margin: 0 0 0 40px;
    color: #d5e4f3;
    font-size: 13px;
    font-style: normal;
    line-height: 1.7
}

.contact-detail-group>a {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 12px;
    margin: 8px 0 0 40px;
    color: #d6e6f5;
    text-decoration: none
}

.contact-detail-group>a small {
    color: #a9bfd5;
    font-size: 11px
}

.contact-detail-group>a strong {
    font-size: 12px;
    font-weight: 700;
    text-align: right;
    overflow-wrap: anywhere
}

.contact-detail-group>a:hover strong {
    color: #9dccff
}

.contact-detail-group .contact-email-link {
    justify-content: flex-start;
    align-items: flex-start;
    flex-direction: column;
    gap: 3px
}

.contact-detail-group .contact-email-link strong {
    max-width: 100%;
    text-align: left
}

.contact-social-links {
    display: flex;
    gap: 9px;
    margin-left: 40px
}

.contact-social-links a {
    display: grid;
    place-items: center;
    width: 38px;
    height: 38px;
    margin: 0;
    border: 1px solid rgba(190,219,247,.28);
    border-radius: 50%;
    background: rgba(255,255,255,.06);
    color: #e8f4ff;
    text-decoration: none!important;
    transition: transform .2s ease,background .2s ease,border-color .2s ease
}

.contact-social-links a:hover {
    transform: translateY(-3px);
    border-color: #78b6fa;
    background: #1769e8;
    color: #fff
}

@media(max-width: 991.98px) {
    .contact-page-grid {
        grid-template-columns:minmax(0,1.15fr) minmax(290px,.85fr);
        gap: 18px
    }

    .contact-form-panel,.contact-details-panel {
        padding: 24px
    }
}

@media(max-width: 767.98px) {
    .contact-page-grid {
        grid-template-columns:1fr
    }

    .contact-form-panel,.contact-details-panel {
        padding: 22px
    }

    .contact-panel-icon {
        display: none
    }

    .contact-details-panel {
        order: 2
    }

    .contact-form-panel .quote-form {
        margin: 0
    }

    .contact-form-panel .quote-form>[class*="col-"] {
        width: 100%;
        padding: 0
    }

    .contact-form-panel .quote-form input,.contact-form-panel .quote-form select,.contact-form-panel .quote-form textarea,.contact-form-panel .quote-form button {
        width: 100%;
        max-width: 100%
    }
}

.areas-hero {
    background-image: url('../images/services/driveway-restoration.jpg')
}

.areas-page-content {
    background: #fff
}

.areas-page-content:before {
    border-color: rgba(23,105,232,.08);
    box-shadow: 0 0 0 70px rgba(23,105,232,.025),0 0 0 140px rgba(23,105,232,.018)
}

.areas-page-content .areas-copy .section-label {
    color: var(--blue)
}

.areas-page-content .areas-copy h2 {
    color: var(--ink)
}

.areas-page-content .areas-copy h2 span {
    color: var(--blue)
}

.areas-page-content .areas-copy>p:not(.section-label) {
    color: #53667c
}

.areas-page-content .areas-base {
    border-color: #e3eaf2
}

.areas-page-content .areas-base>i {
    background: #eaf3ff;
    color: var(--blue)
}

.areas-page-content .areas-base small {
    color: #74849a
}

.areas-page-content .areas-base strong {
    color: var(--ink)
}

.areas-page-content .areas-phone {
    color: #344a64
}

.areas-page-content .areas-phone i {
    color: var(--blue)
}

.areas-page-content .areas-layout {
    grid-template-columns: minmax(0,.9fr) minmax(480px,1.1fr)
}

.areas-page-content .areas-card {
    border-color: #e0e8f1;
    background: #f8fafc;
    box-shadow: 0 18px 42px rgba(5,24,55,.1)
}

.areas-more-link {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    margin-top: 15px;
    color: var(--blue);
    font-size: 13px;
    font-weight: 700;
    text-decoration: none
}

.areas-more-link i {
    transition: transform .2s ease
}

.areas-more-link:hover {
    color: #0648ad
}

.areas-more-link:hover i {
    transform: translateX(4px)
}

@media(max-width: 991.98px) {
    .areas-page-content .areas-layout {
        grid-template-columns:1fr
    }
}

.topbar .container {
    position: relative
}

.header-quick-links {
    position: static;
    display: flex;
    align-items: center;
    gap: 9px;
    margin-left: auto
}

.topbar .header-socials {
    margin-left: 0!important
}

.topbar .header-quick-links .header-quick-link {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    margin: 0;
    padding: 7px 12px;
    border: 1px solid rgba(185,216,247,.28);
    border-radius: 6px;
    color: #e4f1ff;
    font-size: 11px;
    font-weight: 700;
    white-space: nowrap;
    transition: background .2s ease,border-color .2s ease,color .2s ease
}

.topbar .header-quick-links .header-quick-link:hover {
    border-color: #84c7ff;
    background: rgba(132,199,255,.12);
    color: #fff
}

.topbar .header-quick-links .header-quick-link i {
    margin: 0
}

.nav-utility-link {
    display: none
}

@media(max-width: 991.98px) {
    .header-quick-links {
        display:none
    }

    .nav-drawer .navbar-nav>li.nav-utility-link {
        display: block;
        padding: 0!important;
        border: 0!important
    }

    .nav-drawer .navbar-nav>li.nav-utility-link:first-of-type {
        margin-top: 10px
    }

    .nav-drawer .navbar-nav>li.nav-utility-link:last-of-type {
        padding-bottom: 0!important
    }

    .nav-drawer .nav-utility-button {
        position: relative;
        display: flex;
        align-items: center;
        justify-content: center;
        gap: 9px;
        width: 100%;
        min-height: 50px;
        margin-top: 10px;
        padding: 12px 16px;
        overflow: hidden;
        isolation: isolate;
        border: 1px solid rgba(170,218,255,.4);
        border-radius: 8px;
        color: #f2f8ff;
        font-size: 14px;
        font-weight: 700;
        text-decoration: none;
        transition: transform .25s,box-shadow .25s,background .25s
    }

    .nav-drawer .nav-utility-button:before {
        content: '';
        position: absolute;
        inset: 0;
        z-index: -1;
        border-radius: inherit;
        background: linear-gradient(105deg,#0b63dc,#063681);
        transform: translateX(-101%);
        transition: transform .35s cubic-bezier(.22,.61,.36,1)
    }

    .nav-drawer .nav-brochure-button {
        background: rgba(255,255,255,.08)
    }

    .nav-drawer .nav-callback-button {
        border-color: #3988ef;
        background: linear-gradient(135deg,#2c83f2,#1352bd);
        box-shadow: 0 10px 22px rgba(0,20,62,.3)
    }

    .nav-drawer .nav-utility-button:hover:before,.nav-drawer .nav-utility-button:focus-visible:before {
        transform: translateX(0)
    }

    .nav-drawer .nav-utility-button:hover,.nav-drawer .nav-utility-button:focus-visible {
        border-color: #0b63dc;
        background: transparent;
        color: #fff;
        transform: translateY(-2px);
        box-shadow: 0 10px 22px rgba(0,20,62,.3)!important
    }

    .nav-drawer .nav-utility-button:hover i,.nav-drawer .nav-utility-button:focus-visible i {
        transform: translateX(4px)
    }

    .nav-drawer .nav-utility-button i {
        transition: transform .25s ease
    }
}

@media(max-width: 767.98px) {
    main section:not(.hero) h2 {
        font-size:clamp(26px,7.2vw,32px)!important;
        line-height: 1.12!important
    }
}

.areas-layout {
    grid-template-columns: minmax(0,.9fr) minmax(0,1.1fr);
    gap: clamp(32px,5vw,70px)
}

.areas-copy,.areas-card,.areas-card-head>div {
    min-width: 0
}

.areas-base strong {
    overflow-wrap: anywhere
}

.areas-list>span {
    min-height: 40px
}

@media(max-width: 1199.98px) {
    .areas-layout,.areas-page-content .areas-layout {
        grid-template-columns:minmax(0,1fr);
        gap: 34px
    }

    .areas-copy {
        max-width: 760px
    }

    .areas-card {
        width: 100%;
        max-width: none
    }
}

@media(max-width: 767.98px) {
    .areas-section.section-pad {
        padding-block:58px
    }

    .areas-layout,.areas-page-content .areas-layout {
        gap: 26px
    }

    .areas-card {
        padding: 24px
    }

    .areas-card-head {
        align-items: center;
        gap: 12px;
        margin-bottom: 18px
    }

    .areas-card-head h3 {
        max-width: 260px;
        font-size: clamp(20px,5.5vw,24px);
        line-height: 1.16
    }

    .areas-card-head>span {
        flex-basis: 42px;
        width: 42px;
        height: 42px;
        font-size: 18px
    }

    .areas-list {
        grid-template-columns: repeat(auto-fit,minmax(min(100%,120px),1fr));
        gap: 8px
    }

    .areas-list>span {
        padding: 9px 10px;
        font-size: 12px
    }

    .areas-card>p {
        font-size: 15px;
        line-height: 1.7
    }
}

@media(max-width: 575.98px) {
    .areas-section.section-pad {
        padding-block:48px
    }

    .areas-card {
        padding: 20px
    }

    .areas-card-head {
        gap: 10px
    }

    .areas-card-head h3 {
        font-size: clamp(19px,5.8vw,22px)
    }

    .areas-card-head>span {
        flex-basis: 38px;
        width: 38px;
        height: 38px;
        font-size: 16px
    }

    .areas-list>span {
        font-size: 11px
    }

    .areas-actions .btn,.areas-phone {
        min-height: 46px
    }
}

@media(max-width: 575.98px) {
    .footer-bottom>.container {
        flex-direction:column;
        justify-content: center;
        min-height: 0;
        align-items: center;
        gap: 4px;
        padding-block:10px;text-align: center
    }

    .footer-bottom>.container>span,.footer-bottom>.container>p {
        margin: 0;
        text-align: center
    }

    .footer-bottom>.container>p {
        justify-content: center
    }
}

.about-hero .about-hero-actions .btn, .hero .hero-buttons .btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    height: 54px;
    min-height: 54px;
    padding-inline:20px;border-radius: 8px;
    font-size: 15px;
    font-weight: 700
}

.about-hero .about-hero-actions .btn-primary, .hero .hero-buttons .btn-primary {
    width: 204px;
    background: linear-gradient(135deg,#2585f4,#0b4db9);
    border: 1px solid #3c95ff;
    box-shadow: 0 12px 25px rgba(4,51,125,.3)
}

.about-hero .about-hero-actions .btn-outline-light, .hero .hero-buttons .btn-outline-light {
    width: 204px;
    background: rgba(255,255,255,.06);
    border-color: rgba(255,255,255,.66)
}

.about-hero .about-hero-actions .btn-primary:only-child {
    width: 204px;
    background: linear-gradient(135deg,#2585f4,#0b4db9)!important;
    border-color: #3c95ff!important
}

@media(max-width: 767.98px) {
    .about-hero .about-hero-actions {
        width:100%;
        align-items: stretch;
        flex-direction: column;
        gap: 14px;
        margin-top: 25px
    }

    .about-hero .about-hero-actions .btn {
        width: 100%!important;
        max-width: none!important;
        min-width: 0!important;
        height: 54px!important;
        min-height: 54px!important;
        padding-inline:20px!important}

    .hero .hero-buttons {
        align-items: stretch;
        gap: 14px
    }

    .hero .hero-buttons .btn {
        width: 100%!important;
        max-width: 100%!important;
        height: 54px;
        min-height: 54px
    }
    .footer-bottom>.container p a {
        margin: 0;
    }
}

@media(max-width: 575.98px) {
    .footer-bottom>.container {
        flex-direction:column!important;
        justify-content: center!important;
        min-height: 0!important;
        align-items: center!important;
        gap: 10px!important;
        padding: 20px 0!important
    }

    .footer-bottom>.container>span,.footer-bottom>.container>p {
        margin: 0!important;
        text-align: center!important
    }

    .footer-bottom>.container>p {
        justify-content: center!important
    }
}

#services .service-card .service-body h3 {
    min-height: 44px;
    margin: 0 0 9px;
    color: #fff;
    font: 600 17px/1.28 'Space Grotesk',sans-serif
}

#services .service-card .service-body h3 .service-card-title {
    display: block;
    margin: 0;
    padding: 0;
    border: 0;
    color: #fff;
    font: inherit;
    text-decoration: none
}

#services .service-card .service-body h3 .service-card-title:hover, #services .service-card .service-body h3 .service-card-title:focus-visible {
    color: #dfeeff
}

@media(max-width: 575.98px) {
    #services .service-card .service-visual {
        aspect-ratio:1.9
    }

    #services .service-card .service-body {
        padding: 14px
    }

    #services .service-card .service-body h3 {
        min-height: 0;
        margin-bottom: 12px
    }

    #services .service-card .service-body p {
        min-height: 0;
        margin-bottom: 10px;
        line-height: 1.5
    }

    #services .service-card .service-body>a:last-child {
        margin-top: 0;
        padding-top: 8px
    }
}

#services .service-card .service-visual {
    background-image: none!important
}

#services .service-card .service-visual picture {
    position: absolute;
    inset: 0;
    display: block
}

.hero {
    background-image: url('../images/client/home-tgb.webp')!important
}

.home-award-marquee {
    overflow: hidden;
    color: #173052;
}

.award-marquee-heading {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 38px;
    padding: 10px clamp(20px, 4.2vw, 68px) 0;
    text-align: center;
}

.award-marquee-heading > span {
    color: #62738b;
    font: 700 14px/1.2 'Inter',sans-serif;
    letter-spacing: .16em;
    text-transform: uppercase;
}

.award-marquee-viewport {
    overflow-x: auto;
    scrollbar-width: none;
    outline-offset: -3px;
}

.award-marquee-viewport::-webkit-scrollbar {
    display: none;
}

.award-marquee-track,
.award-marquee-group {
    display: flex;
    width: max-content;
    align-items: center;
}

.award-marquee-group {
    flex: 0 0 auto;
    gap: clamp(24px, 4vw, 56px);
    padding: 12px 20px 18px;
}

.award-marquee-group[aria-hidden="true"] {
    display: none;
}

.award-marquee-card {
    display: flex;
    flex: 0 0 220px;
    align-items: center;
    justify-content: center;
    width: 220px;
    height: 92px;
}

.award-marquee-card img {
    display: block;
    width: 100%;
    height: 82px;
    object-fit: contain;
}

.home-award-marquee.is-running .award-marquee-viewport {
    overflow: hidden;
}

.home-award-marquee.is-running .award-marquee-group[aria-hidden="true"] {
    display: flex;
}

.home-award-marquee.is-running .award-marquee-track {
    animation: home-award-marquee-loop 42s linear infinite;
}

.home-award-marquee.is-running .award-marquee-track:hover,
.home-award-marquee.is-running .award-marquee-track:focus-within {
    animation-play-state: paused;
}

@keyframes home-award-marquee-loop {
    to { transform: translateX(-33.333333%); }
}

@media (max-width: 575.98px) {
    .award-marquee-heading {
        min-height: 40px;
        padding: 10px 17px 0;
    }

    .award-marquee-heading > span {
        font-size: 12px;
    }

    .award-marquee-group {
        gap: 22px;
        padding: 10px 16px 16px;
    }

    .award-marquee-card {
        flex-basis: 170px;
        width: 170px;
        height: 76px;
    }

    .award-marquee-card img {
        height: 68px;
    }
}

@media (prefers-reduced-motion: reduce) {
    .home-award-marquee.is-running .award-marquee-track {
        animation: none;
    }
}

/* Homepage Facebook timeline replacement for the former introduction and awards panel. */
.facebook-feature {
    position: relative;
    isolation: isolate;
    overflow: hidden;
    padding-block: clamp(42px, 5vw, 68px) !important;
    background: linear-gradient(125deg, #edf4fc 0%, #f6f9fd 52%, #eaf2fa 100%)
}

.facebook-feature-layout {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: clamp(18px, 2.4vw, 28px)
}

.facebook-feature-copy {
    display: flex;
    min-width: 0;
    width: 100%;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: clamp(20px, 2.8vw, 32px);
    border: 1px solid rgba(255, 255, 255, .12);
    border-radius: 18px;
    background: radial-gradient(circle at 100% 0%, rgba(49, 116, 203, .4), transparent 38%), linear-gradient(145deg, #0a1d36, #123b68);
    box-shadow: 0 24px 54px rgba(9, 34, 65, .18);
    color: #fff;
    text-align: center
}

.facebook-feature-copy .section-label {
    margin-bottom: 12px;
    color: #9bc8ff;
    letter-spacing: .14em
}

.facebook-feature-copy h2 {
    margin: 0 0 9px;
    color: #fff;
    font: 600 clamp(30px, 3.1vw, 42px)/1.08 'Space Grotesk', sans-serif;
    letter-spacing: -.065em
}

.facebook-feature-copy h2 span {
    color: #8dc0ff
}

.facebook-feature-copy > p:not(.section-label) {
    max-width: 680px;
    margin: 0 0 14px;
    color: #d0deee;
    font-size: 14px;
    line-height: 1.6
}

.facebook-feature-link {
    --button-base-fill: #fff;
    --button-hover-fill: #eaf3ff;
    display: inline-flex;
    align-items: center;
    gap: 10px;
    min-height: 42px;
    padding-inline: 17px;
    border: 1px solid #fff;
    border-radius: 8px;
    background: #fff;
    color: #103052;
    font-weight: 700;
    box-shadow: 0 10px 24px rgba(0, 0, 0, .12);
    transition: transform .2s ease, box-shadow .2s ease
}

.facebook-feature-link:hover {
    transform: translateY(-2px);
    background: #eaf3ff;
    border-color: #eaf3ff;
    color: #103052;
    box-shadow: 0 14px 28px rgba(0, 0, 0, .18)
}

.facebook-feed-shell {
    width: 100%;
    min-width: 0;
    max-width: none;
    margin: 0;
    padding: 21px;
    overflow: hidden;
    border: 1px solid #dce6f2;
    border-radius: 24px;
    background: #fff;
    box-shadow: 0 26px 64px rgba(18, 43, 78, .13)
}

.facebook-feed-heading {
    display: flex;
    align-items: center;
    gap: 12px;
    margin-bottom: 14px
}

.facebook-feed-shell .powr-facebook-feed {
    width: 100%;
    max-width: 100%;
    min-width: 0
}

.facebook-feed-icon {
    display: grid;
    flex: 0 0 42px;
    width: 42px;
    height: 42px;
    place-items: center;
    border-radius: 50%;
    background: #edf4ff;
    color: #1877f2;
    font-size: 18px
}

.facebook-feed-heading > div {
    display: grid;
    gap: 2px
}

.facebook-feed-heading strong {
    color: var(--ink, #0b1730);
    font-size: 14px;
    line-height: 1.2
}

.facebook-feed-heading > div span {
    color: #718096;
    font-size: 12px
}

.facebook-feed-open {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    margin-left: auto;
    border: 1px solid #dce6f2;
    border-radius: 30px;
    padding: 9px 12px;
    background: #f8fbff;
    color: #3568ef;
    font-size: 12px;
    font-weight: 700;
    text-decoration: none;
    transition: background .2s ease, border-color .2s ease
}

.facebook-feed-open:hover {
    border-color: #b9d0f5;
    background: #edf5ff;
    color: #174dbb
}

.facebook-feed-open:focus-visible,
.facebook-posts-link:focus-visible,
.facebook-feature-link:focus-visible {
    outline: 3px solid rgba(53, 104, 239, .35);
    outline-offset: 3px
}

.facebook-post-photos {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 5px;
    overflow: hidden;
    border-radius: 12px;
    background: #eef2f6
}

.facebook-post-photos a {
    display: block;
    min-width: 0;
    overflow: hidden
}

.facebook-post-photos a:first-child {
    grid-column: 1 / -1
}

.facebook-post-photos img {
    display: block;
    width: 100%;
    height: auto;
    aspect-ratio: 2.6;
    object-fit: cover
}

.facebook-post-photos a:first-child img {
    aspect-ratio: 1.9
}

.facebook-post-photos a:focus-visible {
    outline: 3px solid #174dbb;
    outline-offset: -4px
}

.facebook-post-body {
    padding: 24px 4px 0
}

.facebook-post-body h3 {
    margin: 0 0 12px;
    color: #0b1730;
    font-size: clamp(24px, 2.5vw, 32px);
    line-height: 1.2
}

.facebook-post-body p {
    margin: 0 0 16px;
    color: #52667c;
    line-height: 1.7
}

.facebook-post-details {
    margin-bottom: 16px;
    color: #52667c;
    font-size: 14px;
    line-height: 1.7
}

.facebook-post-details summary {
    width: fit-content;
    padding-block: 10px;
    cursor: pointer;
    color: #174dbb;
    font-weight: 600
}

.facebook-post-details summary:focus-visible {
    outline: 3px solid #3568ef;
    outline-offset: 3px
}

.facebook-post-details[open] summary {
    margin-bottom: 12px
}

.facebook-post-body .facebook-posts-link {
    display: flex;
    justify-content: space-between;
    padding-top: 16px;
    border-top: 1px solid #e4ebf4
}

.facebook-posts-link {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    min-height: 44px;
    color: #174dbb;
    font-weight: 700;
    text-underline-offset: 3px
}

@media (max-width: 991.98px) {
    .facebook-feature-layout {
        gap: 24px
    }
}

/* Keep both office phone links on one balanced row on mobile. */
@media(max-width: 767.98px) {
    .topbar {
        padding: 4px 0 !important;
    }

    .topbar .container {
        justify-content: center!important;
        gap: 0!important;
        min-height: 0;
    }

    .topbar .container>div:first-child {
        display: grid!important;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        align-items: center;
        width: 100%!important;
        min-width: 0;
        gap: 6px!important;
        overflow: visible!important;
    }

    .topbar .container>div:first-child a {
        display: inline-flex!important;
        align-items: center;
        gap: 4px;
        width: 100%;
        min-width: 0;
        min-height: 28px;
        margin: 0!important;
        padding: 0;
        font-size: clamp(9px,3.2vw,10px)!important;
        line-height: 1.1;
        letter-spacing: -.015em;
        white-space: nowrap;
    }

    .topbar .container>div:first-child a:first-child {
        justify-content: flex-start;
    }

    .topbar .container>div:first-child a:nth-child(2) {
        justify-content: flex-end;
    }

    .topbar .container>div:first-child a i {
        width: 11px;
        margin: 0;
        font-size: 9px;
        text-align: center;
    }

    .topbar .header-socials {
        display: none!important;
    }
}

@media (max-width: 575.98px) {
    .facebook-feature-copy {
        padding: 22px 18px;
        border-radius: 16px
    }

    .facebook-feature-copy h2 {
        font-size: clamp(29px, 8vw, 36px)
    }

    .facebook-feature-copy > p:not(.section-label) {
        font-size: 15px
    }

    .facebook-feed-shell {
        padding: 12px;
        border-radius: 18px
    }

    .facebook-feed-heading {
        gap: 9px
    }

    .facebook-feed-open {
        padding: 8px 10px;
        font-size: 11px
    }
}

@media (prefers-reduced-motion: reduce) {
    .facebook-feed-open,
    .facebook-feature-link {
        transition: none
    }
}

/* Seasonal interior-floor promotion */
body.winter-offer-open .modal-backdrop {
    z-index: 1080;
}

.winter-offer-modal {
    z-index: 1085;
}

.winter-offer-modal .modal-dialog {
    width: min(980px, calc(100% - 2rem));
    max-width: 980px;
}

.winter-offer-modal .winter-offer-card {
    display: grid;
    grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr);
    overflow: hidden;
    border: 1px solid rgba(255, 255, 255, .72);
    border-radius: 22px;
    background: #fff;
    box-shadow: 0 28px 90px rgba(2, 15, 36, .3);
}

.winter-offer-visual {
    position: relative;
    min-height: 520px;
    overflow: hidden;
    background: #d8e2ee;
}

.winter-offer-visual img {
    display: block;
    width: 100%;
    height: 100%;
    position: absolute;
    inset: 0;
    object-fit: cover;
    object-position: center;
}

.winter-offer-copy {
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    justify-content: center;
    padding: 58px clamp(30px, 5vw, 64px) 42px;
}

.winter-offer-close {
    position: absolute;
    top: 20px;
    right: 20px;
    width: 42px;
    height: 42px;
    border-radius: 50%;
    background-color: #f1f5fa;
    background-size: 12px;
    opacity: .8;
}

.winter-offer-close:hover {
    background-color: #e4ecf6;
    opacity: 1;
}

.winter-offer-close:focus-visible,
.winter-offer-actions a:focus-visible {
    outline: 3px solid #79aaff;
    outline-offset: 3px;
}

.winter-offer-kicker {
    display: inline-flex;
    align-items: center;
    gap: 9px;
    margin: 0 0 18px;
    color: var(--blue);
    font: 700 12px/1.3 'Space Grotesk', sans-serif;
    letter-spacing: .13em;
    text-transform: uppercase;
}

.winter-offer-kicker span {
    width: 22px;
    height: 2px;
    background: currentColor;
}

.winter-offer-copy h2 {
    max-width: 440px;
    margin: 0 0 16px;
    color: var(--navy);
    font-size: clamp(32px, 4vw, 47px);
    font-weight: 700;
    letter-spacing: -.055em;
    line-height: 1.04;
}

.winter-offer-description {
    max-width: 420px;
    margin: 0 0 22px;
    color: #53647b;
    font-size: 15px;
    line-height: 1.75;
}

.winter-offer-service-note {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    max-width: 420px;
    margin-bottom: 28px;
    padding: 14px 15px;
    border: 1px solid #e4ebf4;
    border-radius: 12px;
    background: #f7f9fc;
    color: #354960;
    font-size: 13px;
    line-height: 1.55;
}

.winter-offer-service-note i {
    margin-top: 2px;
    color: var(--blue);
}

.winter-offer-actions {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 16px;
}

.winter-offer-primary {
    min-height: 52px;
    padding-inline: 20px;
    border-radius: 10px;
}

.winter-offer-primary:hover {
    border-color: #064fbe;
    background: #064fbe;
}

.winter-offer-secondary {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    min-height: 36px;
    color: #263b55;
    font: 700 13px/1.4 'Space Grotesk', sans-serif;
    text-decoration: none;
    text-underline-offset: 4px;
}

.winter-offer-secondary:hover {
    color: var(--blue);
    text-decoration: underline;
}

.winter-offer-secondary i {
    font-size: 11px;
}

@media (max-width: 767.98px) {
    .winter-offer-modal {
        padding: 0 !important;
    }

    .winter-offer-modal.show {
        display: block;
    }

    .winter-offer-modal .modal-dialog {
        position: fixed;
        top: 50vh;
        top: 50dvh;
        left: 50vw;
        width: min(520px, calc(100vw - 24px));
        max-width: 520px;
        min-height: 0;
        max-height: calc(100vh - 24px);
        max-height: calc(100dvh - 24px);
        margin: 0;
        transform: translate(-50%, -50%) !important;
        transition: none;
    }

    .winter-offer-modal .winter-offer-card {
        grid-template-columns: minmax(0, 1fr);
        max-height: calc(100vh - 24px);
        max-height: calc(100dvh - 24px);
        overflow-y: auto;
        overscroll-behavior: contain;
        border-radius: 18px;
    }

    .winter-offer-visual {
        min-height: 0;
        height: clamp(150px, 28vh, 210px);
    }

    .winter-offer-copy {
        padding: 26px 22px 22px;
    }

    .winter-offer-close {
        top: 13px;
        right: 13px;
        z-index: 2;
        background-color: rgba(255, 255, 255, .94);
    }

    .winter-offer-kicker {
        margin-bottom: 12px;
        font-size: 10px;
    }

    .winter-offer-copy h2 {
        max-width: 390px;
        margin-bottom: 12px;
        font-size: clamp(30px, 8vw, 39px);
    }

    .winter-offer-description {
        margin-bottom: 16px;
        font-size: 14px;
    }

    .winter-offer-service-note {
        margin-bottom: 19px;
        padding: 11px 13px;
    }

    .winter-offer-actions {
        width: 100%;
        gap: 11px;
    }

    .winter-offer-primary {
        width: 100%;
    }

}

@media (max-width: 380px) {
    .winter-offer-copy {
        padding: 22px 18px 18px;
    }

    .winter-offer-visual {
        height: 150px;
    }
}

@media (prefers-reduced-motion: reduce) {
    .winter-offer-modal.fade .modal-dialog {
        transition: none;
    }
}
