
/* Base */
body {
    backdrop-filter: blur(0);
    -webkit-backdrop-filter: blur(0);
}

#home {
    margin: 50px 0 0 0;
    background: linear-gradient(to bottom, rgba(238, 242, 247, 0) 88%, #0000009c 100%);
    min-width: 100vw;
}

#banner {
    display: flex;
    visibility: visible;
    animation-delay: 0.1s;
    animation-name: fadeInUp;
    align-content: flex-start;
    min-height: 70vh !important;
    color: black;
    width: 95%;
    max-width: 1200px;
    margin: auto;
}

.glossy {
    width: 95%;
    max-width: 1200px;
    min-height: 300px;
    display: flex;
    margin-top: 60px;
}

.gloss { background: rgba(255, 255, 255, .28); }
.anItem { max-width: 98%; margin: auto; }
.xx { justify-content: center; margin: auto; }

/* Banner layout */
.my-banner {
    display: flex;
    width: 100%;
    max-width: 1200px;
    margin: 40px auto 20px;
    border-radius: 24px;
    overflow: hidden;
    min-height: 340px;
    align-items: stretch;
    box-shadow: 0 7px 7px rgba(0,0,0,0.17);
}

.banner-text-area {
    flex: 2 1 0;
    max-width: 60%;
    padding: 48px 36px 48px 38px;
    color: #23262d;
    background: rgba(255,255,255,0.5);
    backdrop-filter: blur(30px);
    -webkit-backdrop-filter: blur(30px);
    border-radius: 22px 0 0 22px;
    z-index: 1;
    display: flex;
    flex-direction: column;
    justify-content: center;
}

.banner-img-area {
    flex: 1 1 0;
    max-width: 40%;
    position: relative;
    overflow: hidden;
    border-radius: 0 22px 22px 0;
    display: flex;
    align-items: stretch;
}

.banner-img-main {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
    display: block;
    border-radius: 0 22px 22px 0;
}

/* === Price Estimator CTA === */
.estimator-cta {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: clamp(12px, 3vw, 28px);
    padding: clamp(18px, 3.6vw, 40px);
    border-radius: 24px;
    background: rgba(255,255,255,0.55);
    backdrop-filter: blur(22px);
    -webkit-backdrop-filter: blur(22px);
    box-shadow: 0 10px 28px rgba(0,0,0,0.15);
    overflow: hidden;
    isolation: isolate;
}

/* Animated gradient edge */
.estimator-cta .cta-glow {
    content: "";
    position: absolute;
    inset: -2px;
    border-radius: inherit;
    background: conic-gradient(from 0deg,
    #6ea8fe, #94f0ff, #b0ffda, #ffd6a5, #f8a1ff, #6ea8fe);
    filter: blur(16px);
    opacity: .35;
    animation: spin 10s linear infinite;
    z-index: 0;
    pointer-events: none;
    mask: radial-gradient(circle at center, rgba(0,0,0,.15) 60%, rgba(0,0,0,1) 62%);
}

/* Content */
.estimator-cta .cta-content {
    position: relative;
    z-index: 1;
    max-width: 900px;
}

.cta-title {
    margin: 0 0 6px 0;
    font-weight: 800;
    font-size: clamp(22px, 3.2vw, 34px);
    letter-spacing: .2px;
    color: #11151a;
}

.cta-sub {
    margin: 0 0 14px 0;
    font-size: clamp(16px, 1.4vw, 18px);
    color: #273039;
    opacity: .95;
    font-weight: bold;
}

.cta-highlights {
    margin: 0 0 18px 0;
    padding: 0;
    list-style: none;
    display: grid;
    gap: 8px;
    justify-items: center; /* keep items centered when text-align center */
    text-align: center;
}

.cta-highlights li {
    position: relative;
    display: inline-flex; /* keeps icon + text together */
    align-items: center;
    gap: 8px; /* space between icon and text */
    color: #1e2a33;
    font-size: clamp(15px, 1.3vw, 17px);
}

.cta-highlights li::before {
    content: "";
    flex-shrink: 0;
    width: 16px; height: 16px;
    border-radius: 50%;
    background: radial-gradient(circle at 30% 30%, #9cf1ff, #6ea8fe 60%, #4f7bff);
    box-shadow: 0 0 10px rgba(110,168,254,.6);
}


/* Button */
.btn-cta {
    display: inline-block;
    padding: 12px 20px;
    border-radius: 14px;
    font-weight: 700;
    text-decoration: none;
    border: 1px solid rgba(0,0,0,.06);
    background:
            linear-gradient(180deg, rgba(255,255,255,.9), rgba(255,255,255,.7)) padding-box,
            linear-gradient(120deg, #6ea8fe, #89ffd6, #f8a1ff) border-box;
    color: #0d2233;
    box-shadow: 0 8px 18px rgba(0, 0, 0, .12);
    transition: transform .18s ease, box-shadow .18s ease, opacity .18s ease;
    will-change: transform;
}
.btn-cta:hover { transform: translateY(-2px); box-shadow: 0 12px 26px rgba(0,0,0,.16); }
.btn-cta:active { transform: translateY(0); }

/* Floating orbs */
.orb {
    position: absolute;
    border-radius: 50%;
    filter: blur(4px);
    opacity: .28;
    z-index: 0;
    pointer-events: none;
    animation: float 8s ease-in-out infinite;
}
.orb-a { width: 140px; height: 140px; right: -20px; bottom: -30px; background: radial-gradient(#b0ffda, transparent 70%); animation-delay: .2s; }
.orb-b { width: 180px; height: 180px; left: -40px; top: -30px; background: radial-gradient(#94f0ff, transparent 70%); animation-delay: .6s; }
.orb-c { width: 120px; height: 120px; right: 35%; top: -20px; background: radial-gradient(#f8a1ff, transparent 70%); animation-delay: 1s; opacity: .22; }

/* Animations */
@keyframes spin {
    to { transform: rotate(360deg); }
}
@keyframes float {
    0%, 100% { transform: translateY(0) translateX(0); }
    50%      { transform: translateY(-8px) translateX(6px); }
}


/* ---------- Yelp Reviews (scoped) ---------- */
.yr { --yr-card-gap: 18px; --yr-star:#f7b500; --yr-muted:#6b7280;
        width: 100%;
        }
.yr * { box-sizing: border-box; }

.yr-head {
    display: grid;
    grid-template-columns: 1fr auto auto;
    align-items: center;
    gap: 14px;
    margin-bottom: 18px;
}
.yr-brand { display: inline-flex; align-items: center; gap: 10px; text-transform: capitalize; }
.yr-logo svg { width: 92px; height: 46px; display: block; }
.yr-logo img { width: 92px; height: 46px; display: block; }
.yr-title { font-size: 28px; font-weight: 700; }

.yr-rating { display: inline-flex; align-items: center; gap: 10px; font-weight: 600; }
.yr-score { font-size: 28px; }
.yr-stars { display: inline-flex; gap: 2px; }
.yr-stars i {
    width: 20px; height: 20px; display: inline-block;
    background: conic-gradient(from 0deg, var(--yr-star) 0 360deg);
    -webkit-mask: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 14 14"><path d="M6.826 11.442 3.546 13.166c-.273.142-.593.02-.725-.254a.64.64 0 0 1-.02-.528l.627-3.65a.78.78 0 0 0-.126-.639L.65 5.959a.78.78 0 0 1 .277-1.307l3.666-.533a.8.8 0 0 0 .377-.283L6.61.978A.8.8 0 0 1 7.058.7c.15 0 .297.04.425.118.128.078.231.19.292.324l1.641 3.322a.8.8 0 0 0 .376.283l3.666.533a.78.78 0 0 1 .277 1.307l-2.653 2.586a.78.78 0 0 0-.127.639l.627 3.651a.64.64 0 0 1-.725.253l-3.279-1.724a.83.83 0 0 0-.732 0Z"/></svg>') center/contain no-repeat;
    mask: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 14 14"><path d="M6.826 11.442 3.546 13.166c-.273.142-.593.02-.725-.254a.64.64 0 0 1-.02-.528l.627-3.65a.78.78 0 0 0-.126-.639L.65 5.959a.78.78 0 0 1 .277-1.307l3.666-.533a.8.8 0 0 0 .377-.283L6.61.978A.8.8 0 0 1 7.058.7c.15 0 .297.04.425.118.128.078.231.19.292.324l1.641 3.322a.8.8 0 0 0 .376.283l3.666.533a.78.78 0 0 1 .277 1.307l-2.653 2.586a.78.78 0 0 0-.127.639l.627 3.651a.64.64 0 0 1-.725.253l-3.279-1.724a.83.83 0 0 0-.732 0Z"/></svg>') center/contain no-repeat;
}
.yr-count { color: var(--yr-muted); }

.yr-cta {
    justify-self: end;
    background: #0a63ff; color: #fff; text-decoration: none;
    padding: 12px 18px; border-radius: 999px; font-weight: 700;
    box-shadow: 0 4px 10px rgba(10,99,255,.22);
}
.yr-cta:hover { filter: brightness(.95); }

.yr-track { position: relative; }
.yr-viewport { overflow: hidden; }
.yr-slides {
    display: grid;
    grid-auto-flow: column;
    grid-auto-columns: calc(50% - var(--yr-card-gap));
    gap: var(--yr-card-gap);
    padding: 0; margin: 0;
    list-style: none;
    transition: transform .35s ease;
}

.yr-card {
    background: #f7f7f9;
    border-radius: 14px;
    box-shadow: 0 6px 18px rgba(0,0,0,.08);
    padding: 20px;
    height: 100%;
    text-align: left;
}
}
.yr-card .yr-row1 { display:flex; align-items:center; gap:12px; margin-bottom:10px; }
.yr-avatar {
    width: 48px;
    height: 48px;
    border-radius: 50%;
    background: #e6e6eb;
    position: relative;
    display: flex;
    justify-content: center;
    align-items: center;
}

.yr-avatar .avatar{
    width: 30px;
    height: 30px;
    display: inline-block;
    background: url("data:image/svg+xml;utf8,<svg viewBox='0 0 24 24' preserveAspectRatio='xMidYMid meet' fill='none' xmlns='http://www.w3.org/2000/svg'><title>Avatar stub icon</title><path d='M12 2C9.23858 2 7 4.23858 7 7C7 9.76142 9.23858 12 12 12C14.7614 12 17 9.76142 17 7C17 4.23858 14.7614 2 12 2Z' fill='url(%23first_linear)'/><path d='M12 13C9.60453 13 7.42467 13.6937 5.82227 14.6715C5.02143 15.1602 4.33788 15.7363 3.84397 16.3615C3.35805 16.9767 3 17.713 3 18.5C3 19.3449 3.41114 20.0111 4.00266 20.4859C4.56324 20.9359 5.30182 21.2336 6.08716 21.4416C7.66466 21.8593 9.77101 22 12 22C14.229 22 16.3353 21.8593 17.9128 21.4416C18.6982 21.2336 19.4368 20.9359 19.9973 20.4859C20.5889 20.0111 21 19.3449 21 18.5C21 17.713 20.642 16.9767 20.156 16.3615C19.6621 15.7363 18.9786 15.1602 18.1777 14.6715C16.5753 13.6937 14.3955 13 12 13Z' fill='url(%23second_linear)'/><defs><linearGradient id='first_linear' gradientUnits='userSpaceOnUse'><stop stop-color='%237e7e7e'/><stop offset='1' stop-color='%23989898'/></linearGradient><linearGradient id='second_linear' gradientUnits='userSpaceOnUse'><stop stop-color='%237e7e7e'/><stop offset='1' stop-color='%23989898'/></linearGradient></defs></svg>") no-repeat center/contain;
}

.yr-burst {
    position:absolute; right:-2px; bottom:-2px;;
    background:#ff1a1a; border-radius:50%;
    width: 24px;
    height: 24px;
    display: inline-block;
    background: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24'><path fill='%23fff' stroke='%23fff' stroke-linejoin='round' stroke-width='2' d='M12 1c6.075 0 11 4.925 11 11s-4.925 11-11 11S1 18.075 1 12 5.925 1 12 1Z'/><path fill='%23FF1A1A' d='M2 12C2 6.477 6.477 2 12 2s10 4.477 10 10-4.477 10-10 10S2 17.523 2 12Z'/><path fill='%23fff' d='M11.411 13.847a.647.647 0 0 1 .721.242.817.817 0 0 1 .103.237c.048.175.054.37.047.546l-.028.763c-.013.43-.03.858-.052 1.288-.013.28-.021.517-.039.72l-.01.114a1.917 1.917 0 0 1-.108.538.642.642 0 0 1-.393.388c-.046.016-.095.03-.143.042a1.388 1.388 0 0 1-.307.023 3.562 3.562 0 0 1-.919-.175 3.944 3.944 0 0 1-1.007-.49 1.348 1.348 0 0 1-.227-.207 1.483 1.483 0 0 1-.087-.122.697.697 0 0 1-.096-.273.639.639 0 0 1 .027-.276c.038-.134.114-.284.247-.49l.063-.097c.111-.17.252-.362.414-.59.25-.352.5-.7.755-1.045l.45-.618c.026-.024.047-.063.07-.091.089-.113.187-.225.303-.311a.88.88 0 0 1 .216-.116Zm2.309-.467c.142.026.28.084.409.145.033.016.069.042.104.052l.673.357c.382.2.76.402 1.137.61.246.132.456.243.631.348.033.02.068.041.099.058.21.127.342.23.436.332a.643.643 0 0 1 .179.524 1.41 1.41 0 0 1-.026.147 1.11 1.11 0 0 1-.111.285 3.953 3.953 0 0 1-1.44 1.445 1.4 1.4 0 0 1-.286.112 1.37 1.37 0 0 1-.147.025.641.641 0 0 1-.524-.176 1.942 1.942 0 0 1-.332-.436c-.017-.03-.04-.065-.06-.098-.104-.174-.216-.385-.35-.63a66.942 66.942 0 0 1-.612-1.134l-.36-.674a1.824 1.824 0 0 1-.196-.512.826.826 0 0 1-.01-.256.648.648 0 0 1 .786-.524Zm-6.31-2.532c.138 0 .3.03.532.101l.11.034c.192.06.412.14.673.233.401.14.8.285 1.197.433l.709.258c.13.047.256.105.376.173a.902.902 0 0 1 .264.227c.05.072.089.154.11.24l.002.012a.712.712 0 0 1-.51.848.835.835 0 0 1-.063.018l-.647.15-.002-.002-2.147.496c-.22.051-.442.108-.67.091-.153-.01-.3-.024-.445-.125a.692.692 0 0 1-.195-.21c-.204-.322-.214-.798-.217-1.169-.003-.41.062-.818.194-1.207a1.371 1.371 0 0 1 .136-.271c.028-.04.059-.079.091-.115a.687.687 0 0 1 .234-.165.635.635 0 0 1 .268-.05Zm8.609-2a.686.686 0 0 1 .282.047c.045.018.09.04.133.064a1.393 1.393 0 0 1 .241.184c.288.291.526.63.703 1 .16.334.36.766.316 1.147a.688.688 0 0 1-.082.274c-.086.153-.212.23-.345.307-.198.115-.422.161-.642.212l-2.796.646a.66.66 0 0 1-.064.012.714.714 0 0 1-.83-.54l-.003-.011a.71.71 0 0 1-.006-.264.9.9 0 0 1 .138-.32 2.56 2.56 0 0 1 .26-.32l.525-.544c.293-.307.587-.61.886-.913.194-.197.357-.367.503-.505a2.15 2.15 0 0 0 .083-.077c.178-.165.312-.264.435-.325a.634.634 0 0 1 .263-.073Zm-5.11-4.08c.529-.074 1.304-.112 1.668.36.206.268.21.642.229.968.023.395-.02.782-.038 1.175-.05 1.035-.114 2.07-.174 3.105-.018.31-.018.69-.22.943a.62.62 0 0 1-.047.048.71.71 0 0 1-.33.198l-.024.006a.711.711 0 0 1-.412-.027.593.593 0 0 1-.06-.023c-.293-.14-.459-.48-.61-.75-.508-.904-1.018-1.808-1.519-2.716-.189-.344-.397-.674-.549-1.04-.125-.3-.287-.639-.22-.969.121-.585.836-.89 1.343-1.056a6.322 6.322 0 0 1 .962-.222Z'/></svg>") no-repeat center/contain;
}


.yr-name { font-weight:700; }
.yr-date { color: var(--yr-muted); font-size: 14px; }
.yr-stars-sm { margin: 6px 0; }
.yr-stars-sm i { width: 18px; height: 18px; display:inline-block;
    background: conic-gradient(from 0deg, var(--yr-star) 0 360deg);
    -webkit-mask: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 14 14"><path d="M6.826 11.442 3.546 13.166c-.273.142-.593.02-.725-.254a.64.64 0 0 1-.02-.528l.627-3.65a.78.78 0 0 0-.126-.639L.65 5.959a.78.78 0 0 1 .277-1.307l3.666-.533a.8.8 0 0 0 .377-.283L6.61.978A.8.8 0 0 1 7.058.7c.15 0 .297.04.425.118.128.078.231.19.292.324l1.641 3.322a.8.8 0 0 0 .376.283l3.666.533a.78.78 0 0 1 .277 1.307l-2.653 2.586a.78.78 0 0 0-.127.639l.627 3.651a.64.64 0 0 1-.725.253l-3.279-1.724a.83.83 0 0 0-.732 0Z"/></svg>') center/contain no-repeat;
    mask: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 14 14"><path d="M6.826 11.442 3.546 13.166c-.273.142-.593.02-.725-.254a.64.64 0 0 1-.02-.528l.627-3.65a.78.78 0 0 0-.126-.639L.65 5.959a.78.78 0 0 1 .277-1.307l3.666-.533a.8.8 0 0 0 .377-.283L6.61.978A.8.8 0 0 1 7.058.7c.15 0 .297.04.425.118.128.078.231.19.292.324l1.641 3.322a.8.8 0 0 0 .376.283l3.666.533a.78.78 0 0 1 .277 1.307l-2.653 2.586a.78.78 0 0 0-.127.639l.627 3.651a.64.64 0 0 1-.725.253l-3.279-1.724a.83.83 0 0 0-.732 0Z"/></svg>') center/contain no-repeat;
}

.yr-text {
    color:#111; line-height:1.6;
    display:-webkit-box; -webkit-line-clamp:5; -webkit-box-orient:vertical; overflow:hidden;
}
.yr-readmore { display:inline-block; margin-top:8px; font-weight:600; }

.yr-nav {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    width: 42px;
    height: 42px;
    border: none;
    border-radius: 50%;
    background: #fff;
    box-shadow: 0 4px 12px rgba(0,0,0,.15);
    cursor: pointer;
    font-size: 26px;
    display: flex;
    justify-content: center; /* perfect centering */
    padding: 0;
}

.yr-prev { left: -10px; z-index: 99;}
.yr-next { right: -10px; }

.yr-nav.yr-next {
    display: flex;
    align-items: center;
    justify-content: center;
}
.yr-nav.yr-next::before {
    content: '\203A';
    font-size: 32px;
    position: relative;
    left: 2px;
    top: -2px;
}

.yr-nav.yr-prev {
    display: flex;
    align-items: center;
    justify-content: center;
}
.yr-nav.yr-prev::before {
    content: '\2039';
    font-size: 32px;
    position: relative;
    left: 0px;
    top: -2px;
}


@media (max-width: 900px) {
    .yr-slides { grid-auto-columns: 100%; }
    .yr-prev { left:-40px; } .yr-next { right:-40px; }
    .yr-head { grid-template-columns: 1fr; justify-items: center; row-gap: 10px; }
    .yr-cta { justify-self: center; }
}



/* Height-based tweaks */
@media (min-height: 900px) {
    #banner { min-height: 50vh !important; }
}
@media (min-height: 1200px) {
    #banner { min-height: 30vh !important; }
}

/* Mobile/tablet */
@media (max-width: 900px) {
    .my-banner {
        flex-direction: column-reverse; /* Image on top, text below */
        min-height: unset;
        max-width: 98vw;
        border-radius: 22px; /* unify radius on mobile stack */
    }

    .banner-text-area,
    .banner-img-area {
        max-width: 100%;
        border-radius: 22px;
        padding: 18px 4vw;
    }

    .banner-img-main {
        width: 100%;
        max-width: 98vw;
        min-height: 220px;
        height: 300px;
        border-radius: 22px 22px 0 0; /* rounded top when stacked */
    }

    .banner-img-area {
        padding: 0;
        min-height: 300px;
        border-radius: 20px 20px 0 0;
    }

    .banner-text-area {
        border-radius: 0 0 20px 20px;
    }

    .estimator-cta {
        flex-direction: column;
        padding: 18px 16px 20px;
        border-radius: 22px;
    }
    .cta-highlights {
        gap: 6px;
    }
    .btn-cta { width: 100%; text-align: center; }

}

/* Narrow phones: main background gradient tweak */
@media (max-width: 768px) {
    main {
        background: linear-gradient(to bottom, rgba(255, 255, 255, 0) 98%, #0000009c 100%) !important;
    }
}

