.premium-icon:before,
.premium-icon:after {
    content: none !important;
    display: none !important;
    -webkit-mask: none !important;
    mask: none !important
}

.premium-icon>.glyph-image {
    display: block !important;
    position: absolute !important;
    inset: 20% !important;
    width: 60% !important;
    height: 60% !important;
    max-width: none !important;
    object-fit: contain !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    border-radius: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
    opacity: 1 !important;
    visibility: visible !important;
    filter: invert(31%) sepia(88%) saturate(856%) hue-rotate(148deg) brightness(87%) contrast(96%) !important;
    transform: none;
    transition: transform .7s var(--ease-water), filter .7s !important
}

.pool-icon.premium-icon,
.legal-section-icon.premium-icon {
    background: #eaf8fb !important;
    border-color: #91ccda !important;
    box-shadow: inset 0 2px 0 #fff, 0 4px 0 #b0d5df66, 0 9px 15px #064d6621;
    isolation: isolate
}

:is(.photo-card, .focus-row, .editorial-points>div, .reference-features>a, .plan-panel):hover .premium-icon>.glyph-image {
    transform: translateY(-1px) scale(1.08)
}

.water-steps .premium-icon>.glyph-image {
    filter: invert(20%) sepia(32%) saturate(1813%) hue-rotate(152deg) brightness(88%) contrast(99%) !important
}

#find-care .focus-grid>div:first-child {
    position: relative;
    z-index: 0;
    isolation: isolate
}

#find-care .focus-grid>div:first-child>.section-heading,
#find-care .focus-grid>div:first-child>.text-link {
    position: relative;
    z-index: 1
}

#find-care .net-stage {
    position: absolute;
    left: -18%;
    right: -6%;
    bottom: -30px;
    width: auto;
    height: 155px;
    margin: 0;
    overflow: visible;
    border-radius: 0;
    background: radial-gradient(ellipse at 60% 76%, #44c6d624 0 34%, transparent 68%);
    box-shadow: none;
    pointer-events: none;
    z-index: 0;
    isolation: isolate
}

#find-care .net-stage:before,
#find-care .net-stage:after {
    content: '';
    position: absolute;
    inset: 4px 0 0;
    background: repeating-radial-gradient(210px 58px at 38px 116px, transparent 0 54px, #0aa7bd26 55px 57px, transparent 58px 104px);
    opacity: .9;
    transform: translate3d(-18px, 0, 0);
    animation: designer-wave 9s cubic-bezier(.45, 0, .55, 1) infinite alternate
}

#find-care .net-stage:after {
    inset: 34px -28px 0;
    background: repeating-radial-gradient(240px 62px at 75px 82px, transparent 0 58px, #ffffffb0 59px 61px, transparent 62px 118px);
    opacity: .78;
    animation-duration: 11s;
    animation-direction: alternate-reverse
}

#find-care .net-stage .care-net {
    display: none
}

#find-care .net-stage .care-net {
    left: auto;
    right: 8px;
    top: 8px;
    width: 120px;
    height: 88px;
    opacity: .75;
    transform-origin: 78% 28%;
    animation: gentle-skimming 6s cubic-bezier(.45, 0, .55, 1) infinite;
    filter: invert(37%) sepia(81%) saturate(602%) hue-rotate(143deg) brightness(87%) contrast(94%)
}

@keyframes gentle-skimming {

    0%,
    100% {
        transform: translate3d(-11px, 1px, 0) rotate(-7deg)
    }

    50% {
        transform: translate3d(16px, -5px, 0) rotate(5deg)
    }
}

@keyframes designer-wave {
    0% {
        transform: translate3d(-18px, 1px, 0)
    }

    100% {
        transform: translate3d(18px, -3px, 0)
    }
}

.marquee {
    margin-top: 30px;
    border-top: 1px solid #8fd2df;
    border-bottom: 1px solid #8fd2df;
    background: #e5f7fa;
    box-shadow: inset 0 2px 0 #ffffffaa, 0 9px 18px #064d6610;
    border-radius: 12px;
    overflow: hidden
}

.marquee-track {
    padding-block: 15px;
    align-items: center;
    gap: 30px
}

.marquee-track>span {
    color: #066880;
    font-family: var(--heading);
    font-size: clamp(26px, 3vw, 42px);
    letter-spacing: .3px
}

.marquee-track i {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0
}

.marquee-track .pool-icon.premium-icon {
    width: 38px;
    height: 38px;
    background: #fff !important;
    border: 1px solid #a6d8e4 !important;
    border-radius: 50% !important;
    box-shadow: 0 3px 0 #a6d0db55, 0 7px 10px #064d6617
}

.marquee-track .premium-icon>.glyph-image {
    inset: 21% !important;
    width: 58% !important;
    height: 58% !important
}

.marquee:hover {
    background: #d9f2f7;
    transition: background .8s
}

.renovation-band {
    position: relative;
    overflow: hidden;
    isolation: isolate;
    background: linear-gradient(115deg, #042f42d9, #07586fb8), url("../images/banner-1.webp") center 55%/cover fixed !important;
    color: #dff5fa
}

.renovation-band:before {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(90deg, #022f42de 0%, #044a5fb0 38%, #065d726e 100%);
    z-index: 0;
    pointer-events: none
}

.renovation-band:after {
    content: '';
    position: absolute;
    inset: 0;
    background: radial-gradient(ellipse at 18% 22%, #45d5e61c 0 24%, transparent 54%), linear-gradient(180deg, #001f2a1a, #001f2a66);
    z-index: 0;
    pointer-events: none
}

.renovation-band .renovation-inner {
    position: relative;
    z-index: 1
}

.renovation-band .renovation-copy p {
    color: #d8eef4;
    text-shadow: 0 2px 8px #001d2b38
}

.renovation-band .renovation-copy h2 {
    text-shadow: 0 3px 18px #001d2b55
}

.renovation-band .renovation-card {
    box-shadow: 0 18px 32px #001e2d5c;
    border: 1px solid #ffffff35
}

.contact-v2 {
    isolation: isolate
}

.contact-droplets {
    position: absolute;
    inset: 0;
    overflow: hidden;
    z-index: -1;
    pointer-events: none
}

.contact-droplets img {
    position: absolute;
    left: var(--x);
    width: var(--size);
    height: var(--size);
    top: -45px;
    object-fit: contain;
    filter: invert(62%) sepia(79%) saturate(567%) hue-rotate(140deg) brightness(93%) contrast(86%);
    opacity: 0;
    animation: contact-rain var(--duration) linear var(--delay) infinite
}

@keyframes contact-rain {
    0% {
        transform: translate3d(0, 0, 0) rotate(-8deg);
        opacity: 0
    }

    15% {
        opacity: .2
    }

    75% {
        opacity: .18
    }

    100% {
        transform: translate3d(12px, 800px, 0) rotate(10deg);
        opacity: 0
    }
}

.contact-v2 .contact-form {
    background: #fff
}

.contact-v2 .contact-grid>div:first-child {
    position: relative
}

.contact-v2 .contact-photo {
    box-shadow: 0 15px 25px #064d662d
}

.contact-form:focus-within {
    box-shadow: 0 24px 44px #064d6633 !important
}

.pricing-chapter .pricing-grid {
    gap: 24px;
    align-items: stretch;
    padding-top: 7px
}

.pricing-chapter .price-card {
    position: relative;
    display: flex;
    flex-direction: column;
    padding: 26px;
    background: #fff !important;
    color: #064d66;
    border: 1px solid #abd4df;
    border-bottom: 5px solid #72bccd;
    box-shadow: 0 6px 0 #022f4729, 0 20px 32px #002a4366;
    border-radius: 19px;
    isolation: isolate
}

.price-card:nth-child(2) {
    border-color: #24bdcc;
    box-shadow: 0 0 0 3px #21bdce33, 0 20px 35px #002a4355
}

.price-type {
    align-self: flex-start;
    padding: 5px 12px;
    background: #e7f6f9;
    color: #08758c;
    border: 1px solid #c5e4eb;
    border-radius: 7px;
    font-size: 12px;
    line-height: 1.5;
    font-weight: 600;
    margin-bottom: 16px
}

.price-card:nth-child(2) .price-type {
    background: #08748b;
    color: #fff;
    border-color: #08748b
}

.pricing-chapter .price-card h3 {
    color: #064d66;
    font-size: 29px
}

.pricing-chapter .price-card>p {
    color: #5c7782
}

.pricing-rate {
    border-block: 1px solid #d6e9ef;
    padding: 16px 0;
    margin: 18px 0
}

.pricing-rate>span {
    font-size: 11px;
    letter-spacing: 1px;
    text-transform: uppercase;
    color: #64838f
}

.pricing-chapter .quote-price {
    color: #075a71;
    font-size: clamp(27px, 2.6vw, 39px);
    line-height: 1.12;
    margin: 7px 0 0
}

.pricing-chapter .quote-price small {
    color: #66838e;
    font-size: 12px;
    margin-top: 9px
}

.pricing-chapter .price-card .btn {
    background: #ff7126;
    color: #fff;
    box-shadow: 0 4px 0 #d64d1233, 0 10px 16px #f4762526;
    width: 100%;
    margin: 0
}

.price-includes {
    font-weight: 600;
    font-size: 12px;
    color: #22657a;
    margin-top: 24px
}

.pricing-chapter .price-card ul {
    margin: 12px 0 17px
}

.pricing-chapter .price-card li {
    color: #436975;
    font-size: 13px
}

.pricing-chapter .price-card li:before {
    border-color: #0aa5b9
}

.pricing-chapter .price-card .price-footnote {
    font-size: 11px;
    line-height: 1.55;
    color: #6f8790;
    margin: auto 0 0;
    padding-top: 12px;
    min-height: 0;
    border-top: 1px solid #e0edf1
}

.pricing-chapter .price-card:hover {
    translate: 0 -7px;
    box-shadow: 0 8px 0 #022f4720, 0 28px 38px #002a4370;
    border-color: #25b9cb
}

.pricing-disclosure {
    text-align: center;
    font-size: 12px;
    line-height: 1.65;
    color: #d7ebf0;
    margin: 22px auto 0;
    max-width: 750px
}

.pricing-chapter .pricing-grid {
    gap: 18px
}

.pricing-chapter .price-card {
    padding: 20px 21px 18px
}

.pricing-chapter .price-card h3 {
    font-size: 25px
}

.pricing-chapter .price-card>p {
    font-size: 13px;
    line-height: 1.45;
    min-height: 38px;
    margin-top: 7px
}

.pricing-chapter .price-type {
    padding: 4px 10px;
    margin-bottom: 11px;
    font-size: 11px
}

.pricing-chapter .pricing-rate {
    padding: 11px 0;
    margin: 13px 0
}

.pricing-chapter .quote-price {
    font-size: clamp(29px, 2.5vw, 36px);
    margin-top: 4px
}

.pricing-chapter .quote-price small {
    font-size: 11px;
    margin-top: 5px
}

.pricing-chapter .price-card .btn {
    min-height: 44px;
    padding: 11px 17px;
    font-size: 14px
}

.pricing-chapter .price-includes {
    margin-top: 15px;
    font-size: 11px
}

.pricing-chapter .price-card ul {
    margin: 8px 0 12px
}

.pricing-chapter .price-card li {
    font-size: 12px;
    line-height: 1.45;
    margin: 5px 0
}

.pricing-chapter .price-card .price-footnote {
    font-size: 10px;
    line-height: 1.45;
    padding-top: 9px
}

:is(.btn, .circle, .search-open, .menu-toggle) {
    transition: background .65s, color .65s, box-shadow .65s, translate .65s, transform .65s var(--ease-water) !important
}

.btn {
    box-shadow: 0 4px 0 #d350111c, 0 9px 17px #df5b1621
}

.btn:is(:hover, :focus-visible) {
    box-shadow: 0 6px 0 #064d661c, 0 15px 25px #064d6629;
    translate: 0 -2px
}

.btn:active,
.circle:active {
    translate: 0 1px
}

.circle {
    box-shadow: inset 0 1px 0 #fff, 0 4px 0 #99c6d244, 0 9px 17px #064d6626
}

.direction-icon {
    stroke-width: 1.8
}

:is(.plan-options button, .lab-tabs button, .tabs button, .choice-tabs button, .tool-tabs button) {
    transition: background .65s, color .65s, box-shadow .65s, transform .75s var(--ease-water) !important
}

:is(.plan-options button, .lab-tabs button, .tabs button, .choice-tabs button, .tool-tabs button):focus-visible {
    outline: 2px solid #f27830;
    outline-offset: 4px
}

:is(.organic-trio a, .gallery-choice, .tab-panel.split, .reference-copy, .lab-panel, .person-card, .before-copy) {
    transition: box-shadow .8s, border-color .8s, background .8s, translate .8s var(--ease-water) !important
}

.organic-trio a {
    padding: 15px;
    border: 1px solid #c7e3eb;
    border-bottom: 4px solid #9fd6e1;
    border-radius: 18px;
    background: #f6fcfd;
    box-shadow: 0 12px 20px #064d6617
}

.organic-trio a:hover {
    background: #e3f6fa;
    translate: 0 -5px;
    box-shadow: 0 20px 30px #064d662b;
    border-color: #5dbdce
}

.organic-trio a img {
    transition: transform 1s var(--ease-water), box-shadow .8s
}

.organic-trio a:hover img {
    transform: translateY(-3px);
    box-shadow: 0 11px 18px #064d6621
}

.organic-trio a h3 {
    font-size: 26px
}

.organic-trio a p {
    font-size: 13px;
    line-height: 1.6
}

.service-content .organic-section .extra-inner {
    padding: 0;
    width: 100%
}

.service-content .organic-trio {
    gap: 16px
}

.service-content .organic-trio a {
    padding: 12px
}

.service-content .organic-trio h3 {
    font-size: 24px
}

.service-content .organic-trio p {
    font-size: 12px
}

:is(.tab-panel.split, .lab-panel, .reference-copy, .before-copy):hover {
    box-shadow: 0 19px 30px #064d6625
}

.header .header-inner {
    box-shadow: 0 1px 0 #c5e4ec
}

.header .search-open:hover,
.header .menu-toggle:hover {
    box-shadow: 0 7px 15px #064d6620
}

.station-nav a:hover {
    box-shadow: inset 0 1px 0 #ffffff60, 0 7px 12px #064d6622
}

.footer-top .btn {
    box-shadow: 0 10px 20px #002e433e
}

.container,
.extra-inner,
.service-content,
.service-body,
.split>*,
.two-grid>*,
.three-grid>*,
.pricing-grid>*,
.contact-grid>*,
.people-grid>*,
.stories-layout>* {
    min-width: 0
}

.contact-email,
[data-email],
.fine-print {
    overflow-wrap: anywhere
}

.premium-icon {
    max-width: 100%
}

.water-steps .premium-icon {
    max-width: none
}

[data-water-section]:not(.is-near) .contact-droplets img {
    animation-play-state: paused
}

@media(max-width:1100px) {
    .pricing-chapter .price-card {
        padding: 22px
    }

    .pricing-chapter .pricing-grid {
        gap: 17px
    }

    .pricing-chapter .price-card h3 {
        font-size: 26px
    }

    .service-content .organic-trio h3 {
        font-size: 22px
    }

    .service-content .organic-trio a {
        padding: 10px
    }
}

@media(max-width:767px) {
    #find-care .net-stage {
        left: -18px;
        right: -18px;
        bottom: -18px;
        height: 112px;
        background: radial-gradient(ellipse at 50% 78%, #44c6d61c 0 36%, transparent 70%)
    }

    #find-care .net-stage:before {
        inset: 8px -24px 0;
        background: repeating-radial-gradient(145px 42px at 16px 83px, transparent 0 39px, #0aa7bd22 40px 42px, transparent 43px 80px)
    }

    #find-care .net-stage:after {
        inset: 31px -32px 0;
        background: repeating-radial-gradient(170px 45px at 45px 60px, transparent 0 42px, #ffffffb5 43px 45px, transparent 46px 90px)
    }

    .renovation-band {
        background: linear-gradient(115deg, #042f42d9, #07586fb8), url("../images/banner-1.webp") center/cover scroll !important
    }

    .renovation-band:before {
        background: #03384ccc
    }

    .renovation-band:after {
        background: linear-gradient(180deg, #001f2a26, #001f2a73)
    }

    .marquee {
        margin-top: 22px;
        border-radius: 9px
    }

    .marquee-track {
        gap: 20px;
        padding-block: 12px
    }

    .marquee-track>span {
        font-size: 28px
    }

    .marquee-track .pool-icon.premium-icon {
        width: 30px;
        height: 30px
    }

    .contact-droplets img:nth-child(n+6) {
        display: none
    }

    .pricing-chapter .pricing-grid {
        gap: 20px
    }

    .pricing-chapter .price-card {
        padding: 23px
    }

    .pricing-chapter .quote-price {
        font-size: 35px
    }

    .price-includes {
        margin-top: 19px
    }

    .pricing-disclosure {
        font-size: 11px
    }

    .service-content .organic-trio {
        grid-template-columns: 1fr;
        gap: 18px
    }

    .service-content .organic-trio a {
        padding: 18px;
        max-width: 440px;
        width: 100%;
        margin: auto
    }

    .service-content .organic-trio h3 {
        font-size: 26px
    }

    .service-content .organic-trio p {
        font-size: 13px
    }

    .service-content .organic-trio img {
        max-height: 220px
    }

    .section h2 {
        text-wrap: balance
    }

    .section .btn {
        max-width: 100%
    }

    .btn span {
        white-space: normal
    }

    .contact-form .two-grid {
        grid-template-columns: 1fr
    }

    .price-card:hover,
    .organic-trio a:hover {
        translate: 0 -3px
    }
}

@media(max-width:1100px) {
    .pricing-chapter .price-card {
        padding: 18px !important
    }

    .pricing-chapter .price-card h3 {
        font-size: 24px !important
    }
}

@media(max-width:767px) {
    .pricing-chapter .pricing-grid {
        gap: 14px !important
    }

    .pricing-chapter .price-card {
        padding: 18px !important
    }

    .pricing-chapter .price-card>p {
        min-height: 0 !important
    }

    .pricing-chapter .quote-price {
        font-size: 31px !important
    }

    .pricing-chapter .price-includes {
        margin-top: 13px !important
    }

    .pricing-chapter .price-card ul {
        margin-bottom: 10px !important
    }
}

@media(prefers-reduced-motion:reduce) {

    .care-net,
    #find-care .net-stage:before,
    #find-care .net-stage:after,
    .contact-droplets img {
        animation: none !important
    }

    .contact-droplets img {
        top: 20%;
        opacity: .13
    }

    :is(.btn, .circle, .organic-trio a, .price-card):hover {
        translate: none !important
    }

    .premium-icon>.glyph-image {
        transform: none !important
    }
}

.pool-statistics {
    position: relative;
    isolation: isolate;
    overflow: hidden;
    padding: 60px 0 35px !important;
    background: #fff
}

.statistics-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 30px;
    max-width: 1260px;
    margin: auto
}

.stat-item {
    min-width: 0;
    padding: 5px 12px;
    text-align: left;
    transition: translate .7s var(--ease-water)
}

.stat-item:hover {
    translate: 0 -3px
}

.stat-value {
    display: flex;
    align-items: center;
    gap: 3px;
    color: #07334e;
    font: 700 clamp(35px, 3.6vw, 58px)/1.15 var(--body);
    font-variant-numeric: tabular-nums;
    letter-spacing: -1.5px;
    white-space: nowrap
}

.stat-digits {
    display: inline-flex;
    align-items: flex-start
}

.stat-digit {
    display: inline-block;
    width: .64em;
    height: 1.15em;
    overflow: hidden
}

.stat-comma {
    width: .28em;
    height: 1.15em;
    line-height: 1.15
}

.stat-reel {
    display: block;
    transform: translateY(0)
}

.stat-reel>span {
    display: block;
    height: 1.15em;
    line-height: 1.15
}

.stat-plus {
    color: #079ade;
    font-size: .8em;
    line-height: 1;
    margin-left: 1px;
    letter-spacing: 0
}

.stat-label {
    display: block;
    color: #7c8c9e;
    font-size: 13px;
    margin-top: 15px;
    line-height: 1.5
}

.statistics-note {
    font-size: 10px;
    color: #81949d;
    text-align: center;
    margin-top: 26px;
    line-height: 1.5
}

.stats-in-view .stat-reel {
    animation: digit-roll 1.5s cubic-bezier(.18, .75, .25, 1) var(--delay) both
}

.stats-complete .stat-reel {
    transform: translateY(calc(var(--roll)*-1.15em))
}

@keyframes digit-roll {
    from {
        transform: translateY(0)
    }

    to {
        transform: translateY(calc(var(--roll)*-1.15em))
    }
}

.statistics-brush {
    position: absolute;
    right: 2%;
    bottom: 5px;
    width: 95px;
    height: 95px;
    object-fit: contain;
    opacity: .14;
    pointer-events: none;
    z-index: -1;
    filter: invert(47%) sepia(80%) saturate(712%) hue-rotate(155deg) brightness(102%) contrast(94%);
    rotate: 12deg
}

.equipment-section .marquee .marquee-track>span,
.equipment-section .marquee span:not(.premium-icon) {
    color: #075c76 !important;
    text-shadow: none !important
}

.equipment-section .marquee {
    background: #e5f7fa !important;
    border-color: #8ed3df !important
}

.equipment-section .marquee:hover {
    background: #d3f0f6 !important
}

.equipment-section .marquee .premium-icon {
    background: #fff !important
}

.footer-top h2 {
    white-space: nowrap;
    font-size: clamp(32px, 3vw, 43px)
}

.service-content #overview .inline-note {
    display: grid;
    grid-template-columns: 48px minmax(0, 1fr);
    align-items: center;
    gap: 15px;
    min-height: 0;
    margin-top: 24px;
    padding: 15px 18px;
    background: linear-gradient(135deg, #fff 0%, #f1fbfd 100%);
    border: 1px solid #b9dfe8;
    border-left: 5px solid #12a8bd;
    border-bottom: 3px solid #8bd0dd;
    border-radius: 14px;
    box-shadow: 0 10px 22px #064d6617, inset 0 1px 0 #fff
}

.service-content #overview .inline-note>.premium-icon {
    position: relative !important;
    inset: auto !important;
    right: auto !important;
    top: auto !important;
    width: 48px;
    height: 48px;
    border-radius: 14px !important;
    background: #dcf4f8 !important;
    border-color: #94d3de !important;
    box-shadow: inset 0 1px 0 #fff, 0 4px 10px #064d6618
}

.service-content #overview .inline-note p {
    margin: 0 !important;
    color: #073f54 !important;
    font-size: 16px !important;
    line-height: 1.55 !important;
    font-weight: 500;
    letter-spacing: 0
}

.renovation-brush-stage {
    width: 160px;
    height: 85px;
    margin: 19px 9% 0 auto;
    position: relative;
    pointer-events: none;
    overflow: visible
}

.renovation-brush {
    position: absolute;
    right: 12px;
    top: 0;
    width: 96px;
    height: 76px;
    object-fit: contain;
    filter: invert(72%) sepia(60%) saturate(562%) hue-rotate(132deg) brightness(97%) contrast(91%);
    opacity: .85;
    transform-origin: 50% 70%;
    animation: pool-brushing 5.5s cubic-bezier(.45, 0, .55, 1) infinite
}

@keyframes pool-brushing {

    0%,
    100% {
        transform: translate3d(-14px, 0, 0) rotate(-6deg)
    }

    45% {
        transform: translate3d(16px, 4px, 0) rotate(6deg)
    }

    55% {
        transform: translate3d(16px, 4px, 0) rotate(6deg)
    }
}

.contact-droplets img {
    filter: invert(45%) sepia(95%) saturate(962%) hue-rotate(145deg) brightness(96%) contrast(94%);
    animation-name: contact-rain-visible
}

@keyframes contact-rain-visible {
    0% {
        transform: translate3d(0, 0, 0) rotate(-8deg);
        opacity: 0
    }

    12% {
        opacity: .47
    }

    75% {
        opacity: .42
    }

    100% {
        transform: translate3d(12px, 800px, 0) rotate(10deg);
        opacity: 0
    }
}

[data-water-section]:not(.is-near) .renovation-brush {
    animation-play-state: paused
}

@media(max-width:1000px) {
    .statistics-grid {
        gap: 17px
    }

    .stat-value {
        font-size: 42px
    }

    .stat-label {
        font-size: 12px
    }

    .statistics-brush {
        width: 65px;
        height: 65px
    }

    .pool-statistics {
        padding: 42px 0 25px !important
    }
}

@media(max-width:767px) {
    .statistics-grid {
        grid-template-columns: 1fr 1fr;
        gap: 25px 13px;
        max-width: 440px
    }

    .stat-item {
        text-align: center;
        padding: 0
    }

    .stat-value {
        justify-content: center;
        font-size: 39px
    }

    .stat-label {
        font-size: 11px;
        margin-top: 9px
    }

    .statistics-note {
        font-size: 9px;
        max-width: 270px;
        margin: 22px auto 0
    }

    .statistics-brush {
        width: 52px;
        height: 52px;
        right: 1%
    }

    .pool-statistics {
        padding: 32px 0 22px !important
    }

    .renovation-brush-stage {
        height: 65px;
        width: 120px;
        margin: 14px 10% 0 auto
    }

    .renovation-brush {
        width: 78px;
        height: 61px
    }

    .contact-droplets img {
        animation-duration: 10s
    }
}

@media(max-width:767px) {
    .footer-top h2 {
        font-size: clamp(24px, 7vw, 35px);
        white-space: nowrap
    }
}

@media(max-width:767px) {
    .service-content #overview .inline-note {
        grid-template-columns: 42px minmax(0, 1fr);
        gap: 12px;
        margin-top: 20px;
        padding: 13px 14px;
        text-align: left
    }

    .service-content #overview .inline-note>.premium-icon {
        width: 42px;
        height: 42px
    }

    .service-content #overview .inline-note p {
        font-size: 13px !important;
        line-height: 1.45 !important
    }
}

@media(prefers-reduced-motion:reduce) {
    .stat-reel {
        animation: none !important;
        transform: translateY(calc(var(--roll)*-1.15em)) !important
    }

    .renovation-brush {
        animation: none !important
    }

    .contact-droplets img {
        animation: none !important;
        opacity: .35
    }

    .stat-item:hover {
        translate: none
    }
}


#contact .consent {
    cursor: pointer;
    position: relative;
    align-items: flex-start
}

#contact .consent input[type=checkbox] {
    appearance: auto;
    -webkit-appearance: auto;
    display: inline-block;
    position: relative;
    flex: 0 0 20px;
    width: 20px;
    height: 20px;
    min-width: 20px;
    padding: 0;
    margin: 3px 0 0;
    accent-color: #058aa3;
    cursor: pointer;
    pointer-events: auto;
    background: revert;
    border: revert;
    border-radius: 4px;
    box-shadow: none
}

#contact .consent input[type=checkbox]:checked {
    background: revert;
    border-color: revert
}

#contact .consent input[type=checkbox]::before {
    content: none
}

#contact .consent input[type=checkbox]:focus-visible {
    outline: 2px solid #058aa3;
    outline-offset: 4px;
    box-shadow: none
}

#find-care .focus-row {
    grid-template-columns: 92px minmax(0, 1fr)
}

#pool-stories .story-dots {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 12px
}

#pool-stories .story-dots .swiper-pagination-bullet {
    margin: 0 !important
}

@media(max-width:767px) {
    #find-care .focus-row {
        grid-template-columns: 70px minmax(0, 1fr)
    }
}

@media(max-width:480px) {
    #find-care .focus-row {
        grid-template-columns: 61px minmax(0, 1fr)
    }
}

:is(.hero, .service-hero, .legal-hero) h1 {
    -webkit-text-stroke: .45px #4e9acb;
    paint-order: stroke fill;
    text-shadow: 0 2px 8px #07547824
}

#pool-stories {
    position: relative
}

#pool-stories .stories-copy {
    position: relative;
    isolation: isolate;
    padding: 22px 20px 64px;
    border-radius: 24px;
    border: 1px solid #cce6ec;
    background: #f3fbfd;
    box-shadow: inset 0 2px 0 #fff, 0 12px 28px #07537010
}

.perspective-rain {
    position: absolute;
    inset: 0 0 0 auto;
    width: 95px;
    overflow: hidden;
    z-index: -1;
    pointer-events: none;
    border-radius: 24px
}

.perspective-rain img {
    position: absolute;
    left: var(--x);
    top: -45px;
    width: var(--size);
    height: var(--size);
    object-fit: contain;
    opacity: .23;
    filter: invert(49%) sepia(87%) saturate(790%) hue-rotate(148deg);
    animation: poolside-drift var(--duration) linear var(--delay) infinite;
    animation-play-state: paused
}

#pool-stories.is-near .perspective-rain img {
    animation-play-state: running
}

@keyframes poolside-drift {
    0% {
        transform: translate3d(-8px, -40px, 0) rotate(-12deg)
    }

    50% {
        transform: translate3d(2px, 180px, 0) rotate(8deg)
    }

    100% {
        transform: translate3d(-5px, 430px, 0) rotate(-7deg)
    }
}

#pool-stories .story-card {
    border: 1px solid #b8dce5;
    border-bottom: 4px solid #69bacb;
    border-radius: 19px;
    box-shadow: inset 0 2px 0 #fff;
    transition: background .7s, border-color .7s
}

#pool-stories .stories-photo {
    box-shadow: 0 12px 22px #07536c24;
    transition: filter .8s
}

#pool-stories .stories-stage:hover .stories-photo {
    filter: saturate(1.12)
}

#pool-stories .story-card:hover {
    background: #f5fcfd;
    border-color: #31abc0
}

#pool-stories .story-controls .circle {
    box-shadow: 0 4px 0 #07557019, 0 8px 18px #0755701a;
    transition: translate .65s, box-shadow .65s, background .65s
}

#care-options .pricing-grid {
    perspective: 1500px;
    align-items: stretch
}

#care-options .price-card {
    border-top: 4px solid #55c8d6;
    box-shadow: 0 7px 0 #badde5, 0 22px 34px #002e4554, inset 0 2px 0 #fff;
    transition: transform .8s cubic-bezier(.22, .61, .36, 1), translate .8s, box-shadow .8s, border-color .8s, background .8s !important
}

#care-options .price-card:nth-child(2) {
    border-top-color: #ff823e
}

#care-options .pricing-rate {
    border: 1px solid #b8dce6;
    border-radius: 13px;
    padding: 15px;
    background: #eef9fc;
    box-shadow: inset 0 2px 4px #08617a09;
    transition: background .7s, border-color .7s
}

#care-options .price-card .price-type {
    box-shadow: 0 3px 0 #07536c12;
    transition: translate .7s, background .7s
}

#care-options .price-card li {
    transition: translate .7s, color .7s
}

#care-options .price-card:focus-within {
    border-color: #1daec0;
    box-shadow: 0 7px 0 #99d3df, 0 25px 36px #002e455c
}

.symptom-photo {
    position: relative;
    isolation: isolate
}

.photo-drop-marquee {
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    height: 48px;
    overflow: hidden;
    background: #e8faffed;
    border-top: 1px solid #ffffffb3;
    pointer-events: none;
    opacity: 0;
    transform: translateY(100%);
    transition: opacity .65s, transform .8s cubic-bezier(.22, .61, .36, 1)
}

.photo-drop-track {
    display: flex;
    width: max-content;
    height: 100%;
    animation: pool-drop-run 18s linear infinite;
    animation-play-state: paused
}

.photo-drop-track>span {
    display: flex;
    align-items: center;
    gap: 28px;
    padding-right: 28px
}

.photo-drop-track img {
    width: 22px;
    height: 26px;
    object-fit: contain;
    filter: invert(42%) sepia(85%) saturate(1200%) hue-rotate(149deg);
    opacity: .8
}

.symptom-photo:hover .photo-drop-marquee {
    opacity: 1;
    transform: translateY(0)
}

.symptom-section.is-near .symptom-photo:hover .photo-drop-track {
    animation-play-state: running
}

@keyframes pool-drop-run {
    to {
        transform: translateX(-50%)
    }
}

.service-content .plan-panel {
    position: relative;
    isolation: isolate
}

.plan-dewdrop {
    position: absolute;
    right: 17px;
    bottom: 15px;
    width: 58px;
    height: 58px;
    object-fit: contain;
    pointer-events: none;
    z-index: -1;
    opacity: .34;
    filter: invert(47%) sepia(84%) saturate(1100%) hue-rotate(146deg) drop-shadow(3px 5px 1px #08628326);
    transition: transform .85s, opacity .85s
}

.plan-panel:hover .plan-dewdrop {
    transform: translateY(-5px) rotate(7deg);
    opacity: .5
}

@media(hover:hover) and (pointer:fine) {
    #care-options .price-card:hover {
        transform: rotateX(1.5deg) rotateY(-1deg);
        translate: 0 -7px;
        box-shadow: 0 9px 0 #99d3df, 0 29px 39px #002e4566;
        background: #f8fdff !important
    }

    #care-options .price-card:hover .pricing-rate {
        background: #e3f7fb;
        border-color: #5ab9cc
    }

    #care-options .price-card:hover .price-type {
        translate: 0 -2px
    }

    #care-options .price-card:hover li {
        translate: 3px 0;
        color: #08718b
    }
}

@media(max-width:767px) {
    #pool-stories .stories-copy {
        padding: 20px;
        width: 100%
    }

    .perspective-rain {
        width: 70px
    }

    .perspective-rain img:nth-child(n+4) {
        display: none
    }

    .plan-dewdrop {
        width: 42px;
        height: 42px;
        right: 12px;
        bottom: 12px
    }

    .service-content .plan-panel .btn {
        max-width: calc(100% - 45px)
    }

    #care-options .price-card {
        transform: none !important;
        translate: none !important
    }
}

@media(hover:none) {
    .photo-drop-marquee {
        opacity: 1;
        transform: none
    }

    .symptom-section.is-near .photo-drop-track {
        animation-play-state: running
    }
}

@media(prefers-reduced-motion:reduce) {

    .perspective-rain img,
    .photo-drop-track {
        animation: none !important
    }

    .perspective-rain img {
        top: calc(var(--x) * 3)
    }

    #care-options .price-card,
    .plan-dewdrop {
        transform: none !important;
        translate: none !important;
        transition: none !important
    }

    .photo-drop-marquee {
        transition: none
    }
}


html,
body {
    max-width: 100%;
    overflow-x: clip
}

@supports not (overflow:clip) {

    html,
    body {
        overflow-x: hidden
    }
}

#find-care {
    overflow-x: clip
}

@supports not (overflow:clip) {
    #find-care {
        overflow-x: hidden
    }
}