/* Homepage refinements; the shared styles on other pages stay independent. */
.home-refresh {
    --brand-orange: #ff751f;
    --brand-charcoal: #242321;
    --brand-stone: #d4cdbe;
    --brand-cream: #f7f3ec;
    --brand-taupe: #8b7565;
    --editorial-ink: var(--brand-charcoal);
    --editorial-muted: var(--brand-charcoal);
    --editorial-accent: var(--brand-orange);
    --editorial-cream: var(--brand-cream);
    --editorial-paper: var(--brand-cream);
    --editorial-clay: var(--brand-stone);
    --editorial-line: #24232126;
    --wtc-ink: var(--brand-charcoal);
    --wtc-accent: var(--brand-orange);
}

.home-refresh .site-header {
    background: var(--brand-cream);
}

.home-refresh .section-eyebrow,
.home-refresh .site-header nav a:hover,
.home-refresh .site-header nav a:focus-visible,
.home-refresh .site-header nav a[aria-current="page"] {
    color: var(--brand-charcoal);
}

.home-refresh .site-header nav a::after {
    background: var(--brand-orange);
}

.home-refresh .btn-primary,
.home-refresh .cookie-accept {
    background: var(--brand-orange);
    border-color: var(--brand-orange);
    color: var(--brand-charcoal);
}

.home-refresh .btn-primary:hover,
.home-refresh .btn-primary:focus-visible,
.home-refresh .cookie-accept:hover {
    background: var(--brand-charcoal);
    border-color: var(--brand-charcoal);
    color: var(--brand-cream);
}

.home-refresh .btn-outline,
.home-refresh .cookie-preferences,
.home-refresh .social-link {
    color: var(--brand-charcoal);
    border-color: var(--brand-taupe);
    background: var(--brand-cream);
}

.home-refresh .btn-outline:hover,
.home-refresh .btn-outline:focus-visible,
.home-refresh .social-link:hover {
    background: var(--brand-stone);
    color: var(--brand-charcoal);
}

.home-refresh .hero .btn-outline {
    color: var(--brand-cream);
    border-color: var(--brand-taupe);
    background: transparent;
}

.home-refresh .hero .btn-outline:hover,
.home-refresh .hero .btn-outline:focus-visible {
    background: var(--brand-cream);
    color: var(--brand-charcoal);
}

.home-refresh .service-details summary::after,
.home-refresh .google-review-stars {
    color: var(--brand-charcoal);
}

.home-refresh .testimonials-band .section-eyebrow {
    color: var(--brand-orange);
}

.home-refresh .testimonials-band h2,
.home-refresh .google-reviews-summary,
.home-refresh .google-reviews-link,
.home-refresh .carousel-button,
.home-refresh > footer,
.home-refresh > footer a {
    color: var(--brand-cream);
}

.home-refresh .google-reviews-band .testimonial-slide {
    background: var(--brand-cream);
}

.home-refresh .google-reviews-link:hover,
.home-refresh .google-reviews-link:focus-visible {
    color: var(--brand-orange);
}

.home-refresh ::selection {
    background: var(--brand-orange);
    color: var(--brand-charcoal);
}

.home-refresh main > section[id] {
    scroll-margin-top: 100px;
}

.home-refresh .section,
.home-refresh .module {
    margin-top: clamp(3.5rem, 6vw, 5.5rem);
}

.home-refresh .promo-strip {
    color: var(--brand-charcoal);
    background: var(--brand-orange);
}

.home-refresh .site-header nav .header-booking {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.7rem;
    min-height: 44px;
    padding: 0.8rem 1rem;
    background: var(--brand-orange);
    color: var(--brand-charcoal);
    letter-spacing: 0.06em;
}

.home-refresh .site-header nav .header-booking::after {
    display: none;
}

.home-refresh .site-header nav .header-booking:hover {
    background: var(--brand-charcoal);
    color: var(--brand-cream);
}

.home-refresh .hero {
    min-height: 560px;
    background: var(--brand-charcoal);
    border-radius: 0;
}

.home-refresh .hero-media {
    min-height: 0;
    overflow: hidden;
}

.home-refresh .hero-media img {
    position: absolute;
    inset: 0;
    object-position: center 58%;
    filter: none;
}

.home-refresh .hero-media::after {
    display: none;
}

.home-refresh .hero-overlay {
    min-height: 0;
    padding: clamp(2rem, 4vw, 3.5rem);
    padding-left: max(32px, calc((100vw - 1180px) / 2));
    background: none;
}

.home-refresh .hero-content {
    gap: 1.35rem;
}

.home-refresh .hero-eyebrow {
    color: var(--brand-stone);
    font-size: 0.65rem;
    letter-spacing: 0.12em;
}

.home-refresh .hero h1 {
    color: var(--brand-cream);
    max-width: none;
    margin: 0;
    font-size: clamp(3.4rem, 5.2vw, 5.1rem);
    line-height: 0.98;
}

.home-refresh .hero h1 em {
    color: var(--brand-orange);
    font-weight: 500;
}

.home-refresh .hero-lead {
    max-width: 39ch;
    margin: 0;
    color: var(--brand-cream);
    font-size: 0.95rem;
    line-height: 1.7;
}

.home-refresh .hero-actions {
    gap: 0.7rem;
    margin: 0;
}

.home-refresh .hero .btn-primary {
    color: var(--brand-charcoal);
    background: var(--brand-orange);
    border-color: var(--brand-orange);
}

.home-refresh .hero .btn-primary:hover,
.home-refresh .hero .btn-primary:focus-visible {
    color: var(--brand-charcoal);
    background: var(--brand-cream);
    border-color: var(--brand-cream);
}

.home-refresh .hero-trust {
    display: flex;
    flex-wrap: wrap;
    column-gap: 0.9rem;
    row-gap: 0.5rem;
    margin: 0;
    padding-top: 1rem;
}

.home-refresh .hero-trust li {
    margin-right: 0;
    font-size: 0.6rem;
    color: var(--brand-stone);
}

.home-refresh .services-shell--signature {
    grid-template-columns: 1fr;
    gap: 1.75rem;
}

.home-refresh .services-intro--signature {
    max-width: 700px;
    justify-self: start;
    margin: 0;
    justify-items: start;
    text-align: left;
}

.home-refresh .services-intro--signature h2 {
    font-size: clamp(2.6rem, 4vw, 3.8rem);
    max-width: 20ch;
}

.home-refresh .services-shell--signature .service-list {
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 1.1rem;
    margin: 0;
    border: 0;
    align-items: start;
}

.home-refresh .signature-services .service-item {
    display: flex;
    flex-direction: column;
    min-width: 0;
    padding: 0 0 1rem;
    gap: 0.8rem;
    border: 1px solid #24232126;
    background: var(--brand-stone);
}

.home-refresh .signature-services .service-item::before {
    display: none;
}

.home-refresh .treatment-photo {
    position: relative;
    overflow: hidden;
    width: 100%;
    aspect-ratio: 1.4;
    background: var(--brand-stone);
}

.home-refresh .treatment-photo img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    border-radius: 0;
}

.home-refresh .service-item:nth-child(2) .treatment-photo img {
    object-position: center 70%;
}

.home-refresh .service-item:nth-child(4) .treatment-photo img {
    object-position: 40% center;
}

.home-refresh .treatment-photo > span {
    position: absolute;
    bottom: 0;
    left: 0;
    padding: 0.35rem 0.7rem;
    background: var(--brand-charcoal);
    color: var(--brand-cream);
    font-size: 0.65rem;
    letter-spacing: 0.1em;
}

.home-refresh .signature-services h3 {
    margin: 0;
    padding-inline: 1rem;
    min-height: 2.1em;
    font-size: clamp(1.45rem, 2.1vw, 1.9rem);
    line-height: 1.05;
}

.home-refresh .signature-services .treatment-intro {
    margin: 0;
    padding-inline: 1rem;
    min-height: 5.1em;
    color: var(--brand-charcoal);
    font-size: 0.78rem;
    line-height: 1.7;
}

.home-refresh .signature-services .service-details {
    margin: 0 1rem;
    border-color: #24232126;
    background: var(--brand-cream);
}

.home-refresh .service-details summary {
    gap: 0.5rem;
    padding: 0.85rem 0.7rem;
    font-size: 0.63rem;
    letter-spacing: 0.04em;
}

.home-refresh .services-actions {
    grid-column: 1;
    justify-self: start;
    justify-content: flex-start;
    width: fit-content;
    margin: 0;
}

.home-refresh .google-reviews-summary .testimonials-stars {
    color: var(--brand-orange);
}

.home-refresh .header-booking:focus-visible,
.home-refresh .mobile-booking a:focus-visible,
.home-refresh .booking-main-cta:focus-visible {
    outline: 3px solid var(--brand-charcoal);
    outline-offset: 3px;
}

.home-refresh .care-strip {
    margin-top: clamp(2.5rem, 5vw, 4rem);
    padding: 1.6rem 0;
    border-top: 1px solid #24232126;
    border-bottom: 1px solid #24232126;
}

.care-strip ul {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1.5rem;
    margin: 0;
    padding: 0;
    list-style: none;
}

.care-strip li {
    display: flex;
    align-items: center;
    gap: 0.85rem;
}

.care-strip svg {
    flex: 0 0 42px;
    width: 42px;
    height: 42px;
    fill: none;
    stroke: var(--brand-taupe);
    stroke-width: 1.5;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.care-strip strong,
.care-strip li span {
    display: block;
}

.care-strip strong {
    font-size: 0.82rem;
}

.care-strip li span {
    color: var(--brand-charcoal);
    font-size: 0.72rem;
}

.care-strip > a {
    display: block;
    width: fit-content;
    margin: 1.3rem auto 0;
    font-size: 0.7rem;
    text-decoration: underline;
    text-underline-offset: 4px;
}

.home-refresh .about-copy-block {
    max-width: 760px;
    gap: 1rem;
}

.home-refresh .about-copy-block h2 {
    font-size: clamp(2.6rem, 4vw, 3.8rem);
}

.home-refresh .text-link {
    color: var(--brand-charcoal);
    text-decoration-color: var(--brand-taupe);
    font-size: 0.8rem;
    font-weight: 700;
    text-decoration: underline;
    text-underline-offset: 5px;
}

.home-refresh .smooth-services-media {
    border: 8px solid var(--brand-stone);
    height: clamp(340px, 40vw, 510px);
}

.home-refresh .image-band {
    margin-top: clamp(3.5rem, 6vw, 5.5rem);
}

.home-refresh #locations {
    padding: clamp(1.5rem, 4vw, 3.5rem);
    background: var(--brand-stone);
}

.home-refresh .booking-header h2 {
    font-size: clamp(2.7rem, 4.5vw, 4rem);
}

.home-refresh .booking-header p {
    color: var(--brand-charcoal);
}

.home-refresh .booking-main-cta {
    width: fit-content;
    gap: 1rem;
    margin-top: 0.4rem;
}

.home-refresh .booking-grid {
    gap: 1.5rem;
}

.home-refresh .booking-card {
    padding: 1.3rem 0 0;
    border-color: #24232140;
}

.mobile-booking {
    display: none;
}

@media (min-width: 901px) and (max-width: 1100px) {
    .home-refresh .site-header nav a {
        padding-inline: 0.35rem;
        font-size: 0.65rem;
        letter-spacing: 0.06em;
    }

    .home-refresh .hero-overlay {
        padding-right: 1.5rem;
    }
}

@media (max-width: 1100px) {
    .home-refresh .services-shell--signature .service-list {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .home-refresh .signature-services h3,
    .home-refresh .signature-services .treatment-intro {
        min-height: 0;
    }
}

@media (max-width: 900px) {
    .home-refresh {
        padding-bottom: calc(76px + env(safe-area-inset-bottom, 0px));
    }

    .home-refresh .hero {
        min-height: 0;
    }

    .home-refresh .hero-overlay {
        grid-column: 1;
        grid-row: 1;
        padding: 2.5rem max(24px, calc((100vw - 620px) / 2));
    }

    .home-refresh .hero-media {
        grid-column: 1;
        grid-row: 2;
        height: clamp(250px, 60vw, 440px);
    }

    .home-refresh .hero-media img {
        object-position: center 62%;
    }

    .home-refresh .hero h1 {
    color: var(--brand-cream);
        font-size: clamp(3rem, 7.5vw, 4.5rem);
    }

    .home-refresh .hero-actions {
        display: flex;
        flex-direction: row;
    }

    .home-refresh .hero-actions a {
        width: auto;
        flex: 1 1 auto;
        min-height: 48px;
    }

    .home-refresh .care-strip ul {
        grid-template-columns: 1fr;
        gap: 1.3rem;
    }

    .home-refresh .care-strip li {
        max-width: 440px;
        width: 100%;
        margin-inline: auto;
    }

    .home-refresh .booking-grid {
        grid-template-columns: 1fr;
    }

    .mobile-booking {
        position: fixed;
        inset: auto 0 0;
        z-index: 35;
        display: grid;
        grid-template-columns: auto 1fr;
        align-items: center;
        gap: 1rem;
        padding: 0.65rem 1rem calc(0.65rem + env(safe-area-inset-bottom, 0px));
        border-top: 1px solid #24232126;
        background: var(--brand-cream);
        box-shadow: 0 -6px 24px #24232110;
    }

    .mobile-booking a {
        display: flex;
        justify-content: center;
        align-items: center;
        gap: 0.5rem;
        min-height: 48px;
        font-size: 0.75rem;
        font-weight: 700;
    }

    .mobile-booking a:last-child {
        background: var(--brand-orange);
        color: var(--brand-charcoal);
        padding-inline: 0.6rem;
    }

    .home-refresh .cookie-banner {
        bottom: calc(84px + env(safe-area-inset-bottom, 0px));
        max-height: calc(100dvh - 180px);
        overflow-y: auto;
    }

    .home-refresh:has(.site-header .is-open) .mobile-booking {
        display: none;
    }
}

@media (max-width: 520px) {
    .home-refresh .hero-content {
        gap: 1.1rem;
    }

    .home-refresh .hero-overlay {
        padding: 2rem 1.5rem;
    }

    .home-refresh .hero-actions a {
        font-size: 0.62rem;
        letter-spacing: 0.04em;
        padding-inline: 0.75rem;
    }

    .home-refresh .hero-trust li {
        width: auto;
        flex: 0 1 auto;
        font-size: 0.55rem;
        letter-spacing: 0.05em;
    }

    .home-refresh .services-shell--signature .service-list {
        grid-template-columns: 1fr;
    }

    .home-refresh .signature-services .service-item {
        display: grid;
        grid-template-columns: 96px minmax(0, 1fr);
        gap: 0.6rem 0.9rem;
        padding-bottom: 0.9rem;
    }

    .home-refresh .signature-services h3 {
        grid-column: 2;
        margin-top: 0.9rem;
        padding-left: 0;
        font-size: 1.55rem;
    }

    .home-refresh .treatment-photo {
        grid-column: 1;
        grid-row: 1 / 3;
        align-self: stretch;
        aspect-ratio: auto;
        min-height: 150px;
    }

    .home-refresh .treatment-photo img {
        position: absolute;
        inset: 0;
    }

    .home-refresh .signature-services .treatment-intro {
        grid-column: 2;
        padding-left: 0;
        padding-bottom: 0.6rem;
        font-size: 0.8rem;
    }

    .home-refresh .signature-services .service-details {
        grid-column: 1 / -1;
        margin-inline: 0.9rem;
    }

    .home-refresh .service-details summary {
        font-size: 0.7rem;
    }
}

@media print {
    .mobile-booking {
        display: none;
    }

    .home-refresh {
        padding-bottom: 0;
    }
}
