/* /Components/Layout/AdminLayout.razor.rz.scp.css */
.admin[b-amd7e596v7] {
    display: grid;
    min-height: calc(100dvh - var(--header-height));
}

@media (min-width: 900px) {
    .admin[b-amd7e596v7] { grid-template-columns: 220px 1fr; }
}

.admin__sidebar[b-amd7e596v7] {
    display: flex;
    flex-direction: column;
    gap: var(--space-5);
    padding: var(--space-5) var(--space-4);
    background: var(--surface-alt);
    border-right: 1px solid var(--line);
}

.admin__brand[b-amd7e596v7] {
    font-family: var(--font-body);
    font-size: var(--text-xs);
    letter-spacing: var(--tracking-eyebrow);
    text-transform: uppercase;
    color: var(--fg-muted);
    margin: 0;
}

.admin__nav[b-amd7e596v7] {
    display: flex;
    flex-direction: column;
    gap: 2px;
}

/* Deliberately dense and plain — this is a tool, not a shop window. */
.admin__link[b-amd7e596v7] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--space-2);
    padding: var(--space-2) var(--space-3);
    border: 0;
    border-left: 2px solid transparent;
    border-radius: 0;
    background: transparent;
    color: var(--fg);
    font-size: var(--text-sm);
    text-align: left;
    text-decoration: none;
    cursor: pointer;
}

.admin__link:hover[b-amd7e596v7] { background: var(--surface); color: var(--fg); }

.admin__link.active[b-amd7e596v7] {
    border-left-color: var(--gold);
    background: var(--surface);
    font-weight: 600;
}

.admin__count[b-amd7e596v7] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 20px;
    height: 20px;
    padding: 0 6px;
    border-radius: 10px;
    background: var(--gold);
    color: var(--ink);
    font-size: var(--text-xs);
    font-weight: 700;
}

.admin__sidebar-footer[b-amd7e596v7] {
    margin-top: auto;
    display: flex;
    flex-direction: column;
    gap: 2px;
    padding-top: var(--space-4);
    border-top: 1px solid var(--line);
}

.admin__content[b-amd7e596v7] {
    padding: var(--space-6) var(--space-5);
    min-width: 0;
}

@media (min-width: 900px) {
    .admin__content[b-amd7e596v7] { padding: var(--space-7) var(--space-6); }
}
/* /Components/Layout/ConsentBanner.razor.rz.scp.css */
/* Fixed to the bottom, above the treatments basket bar (z-index 40) and below
   the mobile drawer (70). Non-modal: it must never block reading the page. */

.consent[b-c516b670sp] {
    position: fixed;
    inset: auto 0 0 0;
    z-index: 60;
    background: var(--ink);
    color: var(--on-ink);
    border-top: 1px solid var(--gold);
}

.consent__inner[b-c516b670sp] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: var(--space-3) var(--space-5);
    padding-block: var(--space-4);
}

.consent__text[b-c516b670sp] {
    flex: 1 1 320px;
    margin: 0;
    max-width: 70ch;
    font-size: var(--text-sm);
    color: var(--on-ink);
}

.consent__text a[b-c516b670sp] { color: var(--gold); }

.consent__actions[b-c516b670sp] {
    display: flex;
    gap: var(--space-3);
    flex: none;
}

/* Same treatment for both, deliberately: neither is styled as the "right"
   answer. Outlined on ink so they read as equals. */
.consent__actions .btn[b-c516b670sp] {
    min-width: 112px;
    border-color: var(--on-ink-muted);
    color: var(--on-ink);
}

.consent__actions .btn:hover[b-c516b670sp] {
    border-color: var(--gold);
    color: var(--gold);
    background: transparent;
}

@media (max-width: 520px) {
    .consent__actions[b-c516b670sp] { flex: 1 1 100%; }
    .consent__actions .btn[b-c516b670sp] { flex: 1; }
}
/* /Components/Layout/QuickContactBar.razor.rz.scp.css */
.quick-contact[b-z0yu6hz2pv] { display: none; }

@media (max-width: 719px) {
    .quick-contact[b-z0yu6hz2pv] {
        position: fixed;
        inset: auto 0 0 0;
        z-index: 30;
        display: flex;
        gap: var(--space-2);
        padding: var(--space-2) var(--space-3);
        background: var(--surface);
        border-top: 1px solid var(--line);
    }

    .quick-contact__action[b-z0yu6hz2pv] { flex: 1; }
}
/* /Components/Layout/ReconnectModal.razor.rz.scp.css */
.components-reconnect-first-attempt-visible[b-ccu1es65ch],
.components-reconnect-repeated-attempt-visible[b-ccu1es65ch],
.components-reconnect-failed-visible[b-ccu1es65ch],
.components-pause-visible[b-ccu1es65ch],
.components-resume-failed-visible[b-ccu1es65ch],
.components-rejoining-animation[b-ccu1es65ch] {
    display: none;
}

#components-reconnect-modal.components-reconnect-show .components-reconnect-first-attempt-visible[b-ccu1es65ch],
#components-reconnect-modal.components-reconnect-show .components-rejoining-animation[b-ccu1es65ch],
#components-reconnect-modal.components-reconnect-paused .components-pause-visible[b-ccu1es65ch],
#components-reconnect-modal.components-reconnect-resume-failed .components-resume-failed-visible[b-ccu1es65ch],
#components-reconnect-modal.components-reconnect-retrying[b-ccu1es65ch],
#components-reconnect-modal.components-reconnect-retrying .components-reconnect-repeated-attempt-visible[b-ccu1es65ch],
#components-reconnect-modal.components-reconnect-retrying .components-rejoining-animation[b-ccu1es65ch],
#components-reconnect-modal.components-reconnect-failed[b-ccu1es65ch],
#components-reconnect-modal.components-reconnect-failed .components-reconnect-failed-visible[b-ccu1es65ch] {
    display: block;
}


#components-reconnect-modal[b-ccu1es65ch] {
    background-color: white;
    width: 20rem;
    margin: 20vh auto;
    padding: 2rem;
    border: 0;
    border-radius: 0.5rem;
    box-shadow: 0 3px 6px 2px rgba(0, 0, 0, 0.3);
    opacity: 0;
    transition: display 0.5s allow-discrete, overlay 0.5s allow-discrete;
    animation: components-reconnect-modal-fadeOutOpacity-b-ccu1es65ch 0.5s both;
    &[open]

{
    animation: components-reconnect-modal-slideUp-b-ccu1es65ch 1.5s cubic-bezier(.05, .89, .25, 1.02) 0.3s, components-reconnect-modal-fadeInOpacity-b-ccu1es65ch 0.5s ease-in-out 0.3s;
    animation-fill-mode: both;
}

}

#components-reconnect-modal[b-ccu1es65ch]::backdrop {
    background-color: rgba(0, 0, 0, 0.4);
    animation: components-reconnect-modal-fadeInOpacity-b-ccu1es65ch 0.5s ease-in-out;
    opacity: 1;
}

@keyframes components-reconnect-modal-slideUp-b-ccu1es65ch {
    0% {
        transform: translateY(30px) scale(0.95);
    }

    100% {
        transform: translateY(0);
    }
}

@keyframes components-reconnect-modal-fadeInOpacity-b-ccu1es65ch {
    0% {
        opacity: 0;
    }

    100% {
        opacity: 1;
    }
}

@keyframes components-reconnect-modal-fadeOutOpacity-b-ccu1es65ch {
    0% {
        opacity: 1;
    }

    100% {
        opacity: 0;
    }
}

.components-reconnect-container[b-ccu1es65ch] {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 1rem;
}

#components-reconnect-modal p[b-ccu1es65ch] {
    margin: 0;
    text-align: center;
}

#components-reconnect-modal button[b-ccu1es65ch] {
    border: 0;
    background-color: #6b9ed2;
    color: white;
    padding: 4px 24px;
    border-radius: 4px;
}

    #components-reconnect-modal button:hover[b-ccu1es65ch] {
        background-color: #3b6ea2;
    }

    #components-reconnect-modal button:active[b-ccu1es65ch] {
        background-color: #6b9ed2;
    }

.components-rejoining-animation[b-ccu1es65ch] {
    position: relative;
    width: 80px;
    height: 80px;
}

    .components-rejoining-animation div[b-ccu1es65ch] {
        position: absolute;
        border: 3px solid #0087ff;
        opacity: 1;
        border-radius: 50%;
        animation: components-rejoining-animation-b-ccu1es65ch 1.5s cubic-bezier(0, 0.2, 0.8, 1) infinite;
    }

        .components-rejoining-animation div:nth-child(2)[b-ccu1es65ch] {
            animation-delay: -0.5s;
        }

@keyframes components-rejoining-animation-b-ccu1es65ch {
    0% {
        top: 40px;
        left: 40px;
        width: 0;
        height: 0;
        opacity: 0;
    }

    4.9% {
        top: 40px;
        left: 40px;
        width: 0;
        height: 0;
        opacity: 0;
    }

    5% {
        top: 40px;
        left: 40px;
        width: 0;
        height: 0;
        opacity: 1;
    }

    100% {
        top: 0px;
        left: 0px;
        width: 80px;
        height: 80px;
        opacity: 0;
    }
}
/* /Components/Layout/SiteFooter.razor.rz.scp.css */
/* Footer.
   Pinned to the logo's black in BOTH themes, like the hero. The page background
   changes between light and dark and from section to section, so a footer keyed
   to a surface token is sometimes indistinguishable from the content above it —
   which is exactly what happened on the booking page. Ink always separates. */

.site-footer[b-njb3hb68ns] {
    background: var(--ink);
    color: var(--on-ink);
    border-top: 1px solid var(--line);

    /* The logo was almost touching the top edge. */
    padding-block: var(--space-8) var(--space-7);
    margin-top: auto;
}

.site-footer__inner[b-njb3hb68ns] {
    display: grid;
    gap: var(--space-7);
}

@media (min-width: 700px) {
    .site-footer__inner[b-njb3hb68ns] {
        grid-template-columns: 1fr 1fr;
        gap: var(--space-6);
    }

    .site-footer__brand[b-njb3hb68ns] { grid-column: 1 / -1; }
}

@media (min-width: 1000px) {
    .site-footer__inner[b-njb3hb68ns] { grid-template-columns: 1.2fr 1fr 1.7fr 1.2fr; }

    .site-footer__brand[b-njb3hb68ns] { grid-column: auto; }
}

/* Areas sit in a full-width row under the columns so no column towers over the rest. */
.site-footer__areas[b-njb3hb68ns] {
    grid-column: 1 / -1;
    padding-top: var(--space-5);
    border-top: 1px solid rgb(255 255 255 / 0.08);
}

.site-footer__areas .site-footer__heading[b-njb3hb68ns] { margin-bottom: var(--space-2); }

/* ---- brand ---------------------------------------------------------------- */

.site-footer__brand img[b-njb3hb68ns] {
    width: 56px;
    height: 56px;
    margin-bottom: var(--space-4);
}

.site-footer__tagline[b-njb3hb68ns] {
    margin: 0;
    max-width: 30ch;
    font-size: var(--text-sm);
    color: var(--on-ink-muted);
}

/* ---- columns --------------------------------------------------------------- */

/* One heading style across the whole footer. Previously these were <h2>s taking
   the global heading styles, so "Visit" and "Find us" rendered at display size
   and the footer read as four competing typefaces. */
.site-footer__heading[b-njb3hb68ns] {
    margin: 0 0 var(--space-4);
    font-family: var(--font-body);
    font-size: var(--text-xs);
    font-weight: 600;
    line-height: 1.2;
    letter-spacing: var(--tracking-eyebrow);
    text-transform: uppercase;
    color: var(--on-ink-muted);
}

.site-footer__links[b-njb3hb68ns] {
    list-style: none;
    margin: 0;
    padding: 0;
}

.site-footer__links li[b-njb3hb68ns] { margin-bottom: 0; }

/* Two columns on wider screens keeps the treatments list as short as its neighbours. */
@media (min-width: 560px) {
    .site-footer__links--columns[b-njb3hb68ns] {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        column-gap: var(--space-5);
    }
}

.site-footer__links--inline[b-njb3hb68ns] {
    display: flex;
    flex-wrap: wrap;
    column-gap: var(--space-5);
}

/* These read as plain text before — no colour difference, no underline, nothing
   to say they were clickable. */
/* inline-flex with a 44px minimum: these were 16px tall, which is a fiddly
   target on a phone even with margin between them. The padding gives the
   finger something to land on without changing how the list looks. */
.site-footer__links a[b-njb3hb68ns] {
    display: inline-flex;
    align-items: center;
    min-height: 44px;
    color: var(--on-ink);
    font-size: var(--text-sm);
    text-decoration: underline;
    text-decoration-color: rgb(255 255 255 / 0.25);
    text-decoration-thickness: 1px;
    text-underline-offset: 0.25em;
    transition: color var(--dur) var(--ease), text-decoration-color var(--dur) var(--ease);
}

.site-footer__links a:hover[b-njb3hb68ns],
.site-footer__links a:focus-visible[b-njb3hb68ns] {
    color: var(--gold);
    text-decoration-color: var(--gold);
}

.site-footer__address[b-njb3hb68ns] {
    margin: 0 0 var(--space-4);
    font-style: normal;
    font-size: var(--text-sm);
    line-height: var(--leading-body);
    color: var(--on-ink-muted);
}

/* ---- base panel ------------------------------------------------------------- */

.site-footer__base[b-njb3hb68ns] {
    background: var(--ink-deep);
    color: var(--on-ink-muted);
    border-top: 1px solid rgb(255 255 255 / 0.08);
    padding-block: var(--space-4);
}

.site-footer__base-inner[b-njb3hb68ns] {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    justify-content: space-between;
    gap: var(--space-2) var(--space-5);
}

.site-footer__legal-links[b-njb3hb68ns] {
    display: flex;
    gap: var(--space-4);
}

.site-footer__legal-links a[b-njb3hb68ns],
.site-footer__linkbutton[b-njb3hb68ns] {
    display: inline-flex;
    align-items: center;
    min-height: 44px;
    padding: 0;
    border: 0;
    background: none;
    color: var(--on-ink);
    font: inherit;
    text-decoration: underline;
    text-decoration-color: rgb(255 255 255 / 0.25);
    text-underline-offset: 0.25em;
    cursor: pointer;
}

.site-footer__legal-links a:hover[b-njb3hb68ns],
.site-footer__linkbutton:hover[b-njb3hb68ns] {
    color: var(--gold);
    text-decoration-color: var(--gold);
}

.site-footer__base p[b-njb3hb68ns] {
    margin: 0;
    max-width: none;
    font-size: var(--text-xs);
    line-height: 1.5;
}
/* /Components/Layout/SiteHeader.razor.rz.scp.css */
/* Header, brand lockup and the mobile slide-out drawer. */

.site-header[b-bfnbv72uki] {
    position: sticky;
    top: 0;
    z-index: 50;
    background: var(--bg);
    border-bottom: 1px solid var(--line);
}

.site-header__inner[b-bfnbv72uki] {
    display: flex;
    align-items: center;
    gap: var(--space-5);
    min-height: var(--header-height);
}

/* ---- brand lockup ------------------------------------------------------ */

.brand[b-bfnbv72uki] {
    display: flex;
    align-items: center;
    gap: var(--space-3);
    text-decoration: none;
    color: var(--fg);
    margin-right: auto;
}

.brand__mark[b-bfnbv72uki] {
    width: 44px;
    height: 44px;
    flex: none;
}

.brand__word[b-bfnbv72uki] {
    display: flex;
    flex-direction: column;
    line-height: 1.1;
}

.brand__name[b-bfnbv72uki] {
    font-family: var(--font-display);
    font-size: 1.0625rem;
    font-weight: 600;
    letter-spacing: -0.01em;
    white-space: nowrap;
}

.brand__sub[b-bfnbv72uki] {
    font-size: var(--text-xs);
    letter-spacing: var(--tracking-eyebrow);
    text-transform: uppercase;
    color: var(--fg-muted);
}

/* Below 420px the wordmark is dropped and the circular mark carries the brand
   on its own — it already contains the name. */
@media (max-width: 420px) {
    .brand__word[b-bfnbv72uki] { display: none; }
    .brand__mark[b-bfnbv72uki] { width: 40px; height: 40px; }
}

/* ---- desktop nav -------------------------------------------------------- */

.site-nav[b-bfnbv72uki] {
    display: none;
    gap: var(--space-5);
}

.site-nav__link[b-bfnbv72uki] {
    position: relative;
    padding: var(--space-2) 0;
    color: var(--fg);
    text-decoration: none;
    font-size: var(--text-sm);
    font-weight: 500;
}

.site-nav__link[b-bfnbv72uki]::after {
    content: '';
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    height: 2px;
    background: var(--gold);
    transform: scaleX(0);
    transform-origin: left;
    transition: transform var(--dur) var(--ease);
}

.site-nav__link:hover[b-bfnbv72uki]::after,
.site-nav__link.is-active[b-bfnbv72uki]::after { transform: scaleX(1); }

.site-nav__link.is-active[b-bfnbv72uki] { font-weight: 600; }

.site-header__actions[b-bfnbv72uki] {
    display: flex;
    align-items: center;
    gap: var(--space-2);
}

.site-header__cta[b-bfnbv72uki] { display: none; }

@media (min-width: 900px) {
    .site-nav[b-bfnbv72uki] { display: flex; }
    .site-header__cta[b-bfnbv72uki] { display: inline-flex; }
}

/* ---- hamburger ---------------------------------------------------------- */

.hamburger[b-bfnbv72uki] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 44px;
    height: 44px;
    padding: 0;
    border: 1px solid transparent;
    border-radius: var(--radius);
    background: transparent;
    cursor: pointer;
}

.hamburger:hover[b-bfnbv72uki] { border-color: var(--line); }

.hamburger__box[b-bfnbv72uki] {
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    width: 20px;
    height: 14px;
}

.hamburger__bar[b-bfnbv72uki] {
    display: block;
    height: 2px;
    width: 100%;
    background: var(--fg);
    transition: transform var(--dur) var(--ease), opacity var(--dur-fast) var(--ease);
}

.hamburger__box.is-open .hamburger__bar:nth-child(1)[b-bfnbv72uki] { transform: translateY(6px) rotate(45deg); }
.hamburger__box.is-open .hamburger__bar:nth-child(2)[b-bfnbv72uki] { opacity: 0; }
.hamburger__box.is-open .hamburger__bar:nth-child(3)[b-bfnbv72uki] { transform: translateY(-6px) rotate(-45deg); }

@media (min-width: 900px) {
    .hamburger[b-bfnbv72uki] { display: none; }
}

/* ---- drawer ------------------------------------------------------------- */

.drawer-backdrop[b-bfnbv72uki] {
    position: fixed;
    inset: 0;
    z-index: 60;
    background: rgb(0 0 0 / 0.5);
    opacity: 0;
    visibility: hidden;
    transition: opacity var(--dur) var(--ease), visibility var(--dur) var(--ease);
}

.drawer-backdrop.is-open[b-bfnbv72uki] {
    opacity: 1;
    visibility: visible;
}

.drawer[b-bfnbv72uki] {
    position: fixed;
    top: 0;
    right: 0;
    bottom: 0;
    z-index: 70;
    width: min(320px, 86vw);
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    gap: var(--space-6);
    padding: calc(var(--header-height) + var(--space-4)) var(--space-5) var(--space-6);
    background: var(--surface);
    border-left: 1px solid var(--line);
    transform: translateX(100%);
    visibility: hidden;
    transition: transform var(--dur) var(--ease), visibility var(--dur) var(--ease);
    overflow-y: auto;
}

.drawer.is-open[b-bfnbv72uki] {
    transform: translateX(0);
    visibility: visible;
}

.drawer__nav[b-bfnbv72uki] {
    display: flex;
    flex-direction: column;
}

.drawer__link[b-bfnbv72uki] {
    padding: var(--space-4) 0;
    border-bottom: 1px solid var(--line);
    color: var(--fg);
    text-decoration: none;
    font-family: var(--font-display);
    font-size: var(--text-md);
    font-weight: 500;
}

.drawer__link.is-active[b-bfnbv72uki] { color: var(--accent-text); }

.drawer__footer[b-bfnbv72uki] { padding-top: var(--space-2); }

@media (min-width: 900px) {
    .drawer[b-bfnbv72uki], .drawer-backdrop[b-bfnbv72uki] { display: none; }
}

/* The drawer is a sliding panel by design; under reduced motion it simply
   appears rather than travelling across the screen. */
@media (prefers-reduced-motion: reduce) {
    .drawer[b-bfnbv72uki] { transition: none; }
    .drawer-backdrop[b-bfnbv72uki] { transition: none; }
}
/* /Components/Layout/ThemeToggle.razor.rz.scp.css */
.theme-toggle[b-6onarul18g] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 44px;
    height: 44px;
    padding: 0;
    border: 1px solid transparent;
    border-radius: var(--radius);
    background: transparent;
    color: var(--fg);
    cursor: pointer;
    transition: border-color var(--dur) var(--ease), color var(--dur) var(--ease);
}

.theme-toggle:hover[b-6onarul18g] {
    border-color: var(--line);
    color: var(--accent-text);
}

/* Static pages draw both icons; show the sun in dark and the moon in light. */
.theme-toggle__sun[b-6onarul18g] { display: none; }
:root[data-theme="dark"] .theme-toggle__sun[b-6onarul18g] { display: block; }
:root[data-theme="dark"] .theme-toggle__moon[b-6onarul18g] { display: none; }
@media (prefers-color-scheme: dark) {
    :root:not([data-theme="light"]) .theme-toggle__sun[b-6onarul18g] { display: block; }
    :root:not([data-theme="light"]) .theme-toggle__moon[b-6onarul18g] { display: none; }
}
/* /Components/Pages/Admin/AdminAvailability.razor.rz.scp.css */
.switch-row[b-vzogv0q2e3] {
    padding: var(--space-4);
    border: 1px solid var(--line);
    border-radius: var(--radius-card);
    background: var(--surface);
}

.switch-row p[b-vzogv0q2e3] { margin: var(--space-2) 0 0; max-width: 62ch; }
/* /Components/Pages/Admin/AdminBookings.razor.rz.scp.css */
.admin-toolbar__select[b-q4qowlzxmc] { max-width: 200px; }
/* /Components/Pages/Admin/AdminEnquiries.razor.rz.scp.css */
.enquiry-message[b-2qn6weuepp] {
    max-width: 48ch;
    white-space: pre-wrap;
}

.admin-table tr.is-unread td[b-2qn6weuepp] { background: var(--blush-tint); }
.admin-table tr.is-unread td:first-child[b-2qn6weuepp] { border-left: 2px solid var(--gold); }
/* /Components/Pages/Admin/AdminFeed.razor.rz.scp.css */
.header-image[b-e58gf10mkc] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--space-4);
}

.header-image img[b-e58gf10mkc] {
    border: 1px solid var(--line);
    border-radius: var(--radius);
    object-fit: cover;
}

.header-image__empty[b-e58gf10mkc] {
    display: flex;
    align-items: center;
    gap: var(--space-3);
    padding: var(--space-3);
    border: 1px dashed var(--line-strong);
    border-radius: var(--radius);
    background: var(--ink);
}

.header-image__input[b-e58gf10mkc] { font-size: var(--text-sm); }
/* /Components/Pages/Admin/AdminTeam.razor.rz.scp.css */
.skill-actions[b-bb68b5svso] { margin-bottom: var(--space-3); }

.skills[b-bb68b5svso] {
    border: 1px solid var(--line);
    border-radius: var(--radius-card);
    padding: var(--space-3) var(--space-4) var(--space-4);
    margin: 0 0 var(--space-4);
}

.skills__legend[b-bb68b5svso] {
    padding: 0 var(--space-2);
    font-size: var(--text-xs);
    letter-spacing: var(--tracking-eyebrow);
    text-transform: uppercase;
    color: var(--fg-muted);
}
/* /Components/Pages/Admin/Login.razor.rz.scp.css */
.login[b-8787bj9g2p] {
    max-width: 380px;
    text-align: center;
}

.login__mark[b-8787bj9g2p] { margin: 0 auto var(--space-4); }

.login__title[b-8787bj9g2p] { font-size: var(--text-xl); margin-bottom: var(--space-6); }

.login__form[b-8787bj9g2p] {
    display: flex;
    flex-direction: column;
    gap: var(--space-4);
    text-align: left;
}
/* /Components/Pages/Aftercare.razor.rz.scp.css */
.aftercare__jump[b-2ovrhuatf4] { display: flex; flex-wrap: wrap; gap: var(--space-2); margin: var(--space-5) 0; }
.aftercare__section[b-2ovrhuatf4] { margin-top: var(--space-6); padding-top: var(--space-5); border-top: 1px solid var(--line); }
.aftercare__section ul[b-2ovrhuatf4] { padding-left: var(--space-5); }
.aftercare__actions[b-2ovrhuatf4] { display: flex; flex-wrap: wrap; gap: var(--space-3); margin-top: var(--space-6); }
/* /Components/Pages/AreaServed.razor.rz.scp.css */
.area-served__categories[b-lmok4nqyza] { list-style: none; margin: 0 0 var(--space-5); padding: 0; display: flex; flex-wrap: wrap; gap: var(--space-3); }
.area-served__actions[b-lmok4nqyza] { display: flex; flex-wrap: wrap; gap: var(--space-3); }
/* /Components/Pages/Book.razor.rz.scp.css */
/* ---- step indicator ----------------------------------------------------- */

.steps[b-6p2hnz9gex] {
    display: flex;
    gap: var(--space-4);
    list-style: none;
    margin: var(--space-6) 0 var(--space-6);
    padding: 0;
    border-bottom: 1px solid var(--line);
}

.steps__item[b-6p2hnz9gex] {
    display: flex;
    align-items: center;
    gap: var(--space-2);
    padding-bottom: var(--space-3);
    border-bottom: 2px solid transparent;
    margin-bottom: -1px;
    color: var(--fg-muted);
    font-size: var(--text-sm);
    max-width: none;
}

.steps__item.is-current[b-6p2hnz9gex] {
    color: var(--fg);
    font-weight: 600;
    border-bottom-color: var(--gold);
}

.steps__item.is-done[b-6p2hnz9gex] { color: var(--accent-text); }

.steps__number[b-6p2hnz9gex] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 22px;
    height: 22px;
    border: 1px solid currentColor;
    border-radius: 50%;
    font-size: var(--text-xs);
    flex: none;
}

.steps__item.is-current .steps__number[b-6p2hnz9gex] {
    background: var(--gold);
    border-color: var(--gold);
    color: var(--ink);
}

@media (max-width: 520px) {
    .steps[b-6p2hnz9gex] { gap: var(--space-3); }
    .steps__label[b-6p2hnz9gex] { display: none; }
}

/* ---- confirmation -------------------------------------------------------------- */

.panel--done[b-6p2hnz9gex] { text-align: center; }
.panel--done .summary[b-6p2hnz9gex] { text-align: left; }
.panel--done .panel__actions[b-6p2hnz9gex] { justify-content: center; }
.panel--done .panel__actions .btn--primary[b-6p2hnz9gex] { margin-left: 0; }

.done__tick[b-6p2hnz9gex] {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 56px;
    height: 56px;
    margin: 0 auto var(--space-4);
    border-radius: 50%;
    background: var(--gold);
    color: var(--ink);
    font-size: var(--text-xl);
    line-height: 1;
}

/* ---- treatment search ------------------------------------------------------ */

.panel__lede[b-6p2hnz9gex] { margin-bottom: var(--space-4); max-width: 60ch; }

.option[b-6p2hnz9gex] {
    display: flex;
    flex-direction: column;
    gap: 2px;
}

.option__name[b-6p2hnz9gex] { font-weight: 500; }

.option__meta[b-6p2hnz9gex] {
    font-size: var(--text-xs);
    color: var(--fg-muted);
}

.option__empty[b-6p2hnz9gex] { padding: var(--space-3); margin: 0; }

/* ---- quick add -------------------------------------------------------------- */

.quick-add[b-6p2hnz9gex] { margin-top: var(--space-5); }

.quick-add__label[b-6p2hnz9gex] {
    font-size: var(--text-xs);
    font-weight: 600;
    letter-spacing: var(--tracking-eyebrow);
    text-transform: uppercase;
    color: var(--fg-muted);
    margin-bottom: var(--space-3);
}

.chip--add[b-6p2hnz9gex] { gap: var(--space-2); }

.chip__sign[b-6p2hnz9gex] {
    font-weight: 700;
    opacity: 0.7;
}

/* ---- party size ------------------------------------------------------------ */

.party[b-6p2hnz9gex] {
    margin-top: var(--space-6);
    padding-top: var(--space-5);
    border-top: 1px solid var(--line);
}

.party__label[b-6p2hnz9gex] {
    font-weight: 600;
    margin-bottom: var(--space-3);
}

.party__note[b-6p2hnz9gex] { margin: var(--space-3) 0 0; }

.slot-picker__chosen[b-6p2hnz9gex] {
    margin-top: var(--space-4);
    padding-top: var(--space-3);
    border-top: 1px solid var(--line);
    color: var(--fg-muted);
    font-size: var(--text-sm);
}
/* /Components/Pages/Contact.razor.rz.scp.css */
/* Two equal cards side by side, then the form full width beneath.
   The previous layout was a 1fr / 1.2fr split with the form spanning both
   columns at a fixed max-width, which left a large empty gap to the right of it
   and meant the inputs did not line up with anything above them. */

.contact-top[b-xsqqhmbunt] {
    display: grid;
    gap: var(--space-5);
    margin-top: var(--space-5);
}

@media (min-width: 860px) {
    .contact-top[b-xsqqhmbunt] { grid-template-columns: 1fr 1fr; }
}

.contact-card[b-xsqqhmbunt] {
    background: var(--surface);
    /* Equal height, so the two cards line up even when one has a map. */
    display: flex;
    flex-direction: column;
}

.contact-card__title[b-xsqqhmbunt] {
    margin: 0 0 var(--space-3);
    font-family: var(--font-body);
    font-size: var(--text-xs);
    font-weight: 600;
    line-height: 1.2;
    letter-spacing: var(--tracking-eyebrow);
    text-transform: uppercase;
    color: var(--fg-muted);
}

/* Spacing between the stacked blocks inside a card, without a margin on the
   first one pushing it away from the card's own padding. */
.contact-card > * + .contact-card__title[b-xsqqhmbunt] { margin-top: var(--space-6); }

.contact-card__address[b-xsqqhmbunt] {
    margin: 0;
    font-style: normal;
    font-size: var(--text-md);
    line-height: var(--leading-body);
}

.contact-list[b-xsqqhmbunt] {
    list-style: none;
    margin: 0;
    padding: 0;
}

/* 44px minimum: these were 16px-tall text links, awkward to hit on a phone. */
.contact-list a[b-xsqqhmbunt] {
    display: inline-flex;
    align-items: center;
    min-height: 44px;
}

/* ---- map ------------------------------------------------------------------ */

.contact-map[b-xsqqhmbunt] {
    position: relative;
    aspect-ratio: 16 / 10;
    border: 1px solid var(--line);
    border-radius: var(--radius);
    overflow: hidden;
    margin-bottom: var(--space-4);
}

.contact-map iframe[b-xsqqhmbunt] {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    border: 0;
}

/* ---- directions ------------------------------------------------------------ */

/* The input and button share one grid row and stretch to the same height. */
.directions[b-xsqqhmbunt] {
    display: grid;
    grid-template-columns: 1fr auto;
    align-items: stretch;
    gap: var(--space-3);
    margin-top: var(--space-2);
}

/* MudBlazor reserves room under the input for a validation message, which
   makes the input's box taller than its outline; drop it so heights match. */
.directions[b-xsqqhmbunt]  .mud-input-control {
    margin: 0;
    padding: 0;
}

.directions[b-xsqqhmbunt]  .mud-input-helper-text { display: none; }

.directions__go[b-xsqqhmbunt] {
    min-height: 56px;
    white-space: nowrap;
}

.directions__locate[b-xsqqhmbunt] { margin-top: var(--space-2); padding-inline: 0; }

.directions__message[b-xsqqhmbunt] { margin-top: var(--space-2); }

@media (max-width: 420px) {
    .directions[b-xsqqhmbunt] { grid-template-columns: 1fr; }
    .directions__go[b-xsqqhmbunt] { width: 100%; }
}

/* ---- high-intent CTA -------------------------------------------------------- */

.intent-cta[b-xsqqhmbunt] {
    margin-top: auto;
    padding-top: var(--space-5);
}

.intent-cta__text[b-xsqqhmbunt] {
    margin-bottom: var(--space-3);
    font-size: var(--text-sm);
}

.intent-cta__text strong[b-xsqqhmbunt] { display: block; margin-bottom: var(--space-1); }

/* ---- form -------------------------------------------------------------------- */

.contact-form[b-xsqqhmbunt] { margin-top: var(--space-5); }

/* Sits directly under the page heading now, so it needs the gap above it
   removed and a little more presence. */
.contact-form--lead[b-xsqqhmbunt] {
    margin-top: var(--space-6);
    border-left: 2px solid var(--gold);
}

.contact-form__lede[b-xsqqhmbunt] { margin-bottom: var(--space-5); }

.contact-fields[b-xsqqhmbunt] {
    display: grid;
    gap: var(--space-4);
}

@media (min-width: 700px) {
    .contact-fields[b-xsqqhmbunt] { grid-template-columns: repeat(3, 1fr); }
    .contact-fields__wide[b-xsqqhmbunt] { grid-column: 1 / -1; }
}

.contact-form__about[b-xsqqhmbunt] { margin: var(--space-4) 0 0; }

.contact-form__submit[b-xsqqhmbunt] { margin-top: var(--space-5); }

@media (max-width: 699px) {
    .contact-form__submit[b-xsqqhmbunt] { width: 100%; }
}
/* /Components/Pages/Feed.razor.rz.scp.css */
.feed__lede[b-j47r1z6xma] { max-width: 58ch; }

.feed__filters[b-j47r1z6xma] {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-2);
    margin: var(--space-5) 0;
}

.feed__filters .badge[b-j47r1z6xma] { text-decoration: none; }

.feed__grid[b-j47r1z6xma] { margin-top: var(--space-6); }

.feed__empty[b-j47r1z6xma] { margin-top: var(--space-6); }

.feed-card[b-j47r1z6xma] { background: var(--surface); }

.feed-card__link[b-j47r1z6xma] {
    display: block;
    text-decoration: none;
    color: inherit;
}

.feed-card__image[b-j47r1z6xma] {
    aspect-ratio: 16 / 10;
    background: var(--surface-alt);
    border-bottom: 1px solid var(--line);
    overflow: hidden;
}

.feed-card__image img[b-j47r1z6xma] {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

/* Logo fallback is centred and small rather than stretched to fill. */
.feed-card__image.is-fallback[b-j47r1z6xma] {
    display: flex;
    align-items: center;
    justify-content: center;
    background: var(--ink);
}

.feed-card__fallback[b-j47r1z6xma] {
    width: 84px;
    height: 84px;
    object-fit: contain;
}

.feed-card__date[b-j47r1z6xma] { margin-bottom: var(--space-2); }

.feed-card__title[b-j47r1z6xma] {
    font-size: var(--text-md);
    margin-bottom: var(--space-2);
}
/* /Components/Pages/FeedArticle.razor.rz.scp.css */
.post__back[b-gevzzm5fxt] { text-decoration: none; }

.post__meta[b-gevzzm5fxt] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--space-3);
    margin-bottom: var(--space-6);
}

.post__meta .badge[b-gevzzm5fxt] { text-decoration: none; }

.post__header[b-gevzzm5fxt] {
    width: 100%;
    height: auto;
    border: 1px solid var(--line);
    border-radius: var(--radius-card);
    margin-bottom: var(--space-6);
}

.post__body[b-gevzzm5fxt] { font-size: var(--text-base); max-width: var(--measure); }

.post__body img[b-gevzzm5fxt] {
    width: 100%;
    height: auto;
    border-radius: var(--radius);
    margin: var(--space-5) 0;
}

.post__body h2[b-gevzzm5fxt] { font-size: var(--text-lg); margin-top: var(--space-6); }
.post__body h3[b-gevzzm5fxt] { font-size: var(--text-md); margin-top: var(--space-5); }

.post__body blockquote[b-gevzzm5fxt] {
    margin: var(--space-5) 0;
    padding-left: var(--space-4);
    border-left: 2px solid var(--gold);
    color: var(--fg-muted);
}

.post__footer[b-gevzzm5fxt] {
    max-width: var(--measure);
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-3);
    margin-top: var(--space-7);
    padding-top: var(--space-5);
    border-top: 1px solid var(--line);
}

.post__related[b-gevzzm5fxt] { max-width: var(--measure); margin: var(--space-6) 0 var(--space-5); padding-top: var(--space-5); border-top: 1px solid var(--line); }
.post__related ul[b-gevzzm5fxt] { margin: 0 0 var(--space-3); padding-left: var(--space-5); }
/* /Components/Pages/Home.razor.rz.scp.css */
/* ---- hero ------------------------------------------------------------- */

.hero[b-94q0rhm6wy] {
    padding-block: var(--space-8);
    text-align: center;
}

.hero__inner[b-94q0rhm6wy] {
    display: flex;
    flex-direction: column;
    align-items: center;
}

.hero__mark[b-94q0rhm6wy] {
    width: 96px;
    height: 96px;
    margin-bottom: var(--space-5);
}

.hero h1[b-94q0rhm6wy] {
    max-width: 16ch;
    margin-bottom: var(--space-5);
}

.hero__lede[b-94q0rhm6wy] {
    max-width: 58ch;
    margin-bottom: var(--space-6);
}

.hero__actions[b-94q0rhm6wy] {
    justify-content: center;
}

@media (min-width: 900px) {
    .hero[b-94q0rhm6wy] { padding-block: var(--space-9); }
    .hero__mark[b-94q0rhm6wy] { width: 120px; height: 120px; }
}

/* ---- practitioner ------------------------------------------------------ */

.bio[b-94q0rhm6wy] {
    display: grid;
    gap: var(--space-7);
}

.bio__credentials[b-94q0rhm6wy] {
    font-family: var(--font-display);
    font-size: var(--text-md);
    color: var(--accent-text);
    margin-bottom: var(--space-4);
}

.bio__card-title[b-94q0rhm6wy] {
    font-size: var(--text-xs);
    font-family: var(--font-body);
    letter-spacing: var(--tracking-eyebrow);
    text-transform: uppercase;
    color: var(--fg-muted);
    margin-bottom: var(--space-3);
}

.bio__card-title + *[b-94q0rhm6wy] { margin-top: 0; }

.bio__card > * + .bio__card-title[b-94q0rhm6wy] { margin-top: var(--space-5); }

.bio__address[b-94q0rhm6wy] {
    font-style: normal;
    line-height: var(--leading-body);
}

.bio__link[b-94q0rhm6wy] {
    display: inline-flex;
    margin-top: var(--space-5);
    padding-inline: 0;
}

@media (min-width: 900px) {
    .bio[b-94q0rhm6wy] { grid-template-columns: 1.4fr 1fr; align-items: start; }
}

/* ---- signature treatments ---------------------------------------------- */

.home-treatments[b-94q0rhm6wy] { margin-top: var(--space-6); }

.home-treatment[b-94q0rhm6wy] {
    display: flex;
    flex-direction: column;
    background: var(--bg);
}

.home-treatment__name[b-94q0rhm6wy] {
    font-size: var(--text-md);
    margin-bottom: var(--space-2);
}

.home-treatment__meta[b-94q0rhm6wy] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--space-3);
    margin-top: auto;
    margin-bottom: var(--space-4);
    padding-top: var(--space-4);
}

.home-treatments__more[b-94q0rhm6wy] {
    justify-content: center;
    margin-top: var(--space-6);
}

/* ---- closing CTA -------------------------------------------------------- */

.home-cta[b-94q0rhm6wy] { text-align: center; }
.home-cta .lede[b-94q0rhm6wy] { margin-inline: auto; }

.home-categories[b-94q0rhm6wy] { list-style: none; margin: var(--space-4) 0; padding: 0; display: flex; flex-wrap: wrap; gap: var(--space-3); }
.home-categories a[b-94q0rhm6wy] { display: inline-block; padding: var(--space-2) var(--space-4); border: 1px solid var(--line); border-radius: var(--radius); color: inherit; text-decoration: none; }
.home-categories a:hover[b-94q0rhm6wy] { border-color: var(--gold); }
/* /Components/Pages/Privacy.razor.rz.scp.css */
.privacy h2[b-lx9e5ijana] {
    font-size: var(--text-lg);
    margin-top: var(--space-7);
}

.privacy h3[b-lx9e5ijana] {
    font-size: var(--text-md);
    margin-top: var(--space-5);
}

.privacy ul[b-lx9e5ijana] {
    padding-left: var(--space-5);
    margin: 0 0 var(--space-4);
}

.privacy li[b-lx9e5ijana] { margin-bottom: var(--space-3); }

.privacy code[b-lx9e5ijana] {
    padding: 1px 6px;
    border: 1px solid var(--line);
    border-radius: var(--radius);
    background: var(--surface-alt);
    font-size: 0.9em;
}
/* /Components/Pages/TreatmentCategory.razor.rz.scp.css */
.treatment-category__back[b-6bdmxkkffw] { color: inherit; }
.treatment-category__actions[b-6bdmxkkffw] { display: flex; flex-wrap: wrap; gap: var(--space-3); }
.treatment-category__others[b-6bdmxkkffw] { margin-top: var(--space-7); padding-top: var(--space-5); border-top: 1px solid var(--line); }
.treatment-category__other-list[b-6bdmxkkffw] { list-style: none; margin: var(--space-4) 0 0; padding: 0; display: flex; flex-wrap: wrap; gap: var(--space-3); }
.treatment-category__other-link[b-6bdmxkkffw] { display: inline-block; padding: var(--space-2) var(--space-4); border: 1px solid var(--line); border-left: 3px solid var(--gold); border-radius: var(--radius-card); background: var(--surface); color: var(--fg); font-weight: 600; text-decoration: none; transition: border-color var(--dur) var(--ease), color var(--dur) var(--ease), transform var(--dur) var(--ease); }
.treatment-category__other-link:hover[b-6bdmxkkffw], .treatment-category__other-link:focus-visible[b-6bdmxkkffw] { border-color: var(--gold); color: var(--accent-text); transform: translateY(-1px); }
/* /Components/Pages/TreatmentDetail.razor.rz.scp.css */
.treatment-detail__back[b-y0on3s9286] { color: inherit; }
.treatment-detail__meta[b-y0on3s9286] { display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-3); margin: var(--space-4) 0; }
.treatment-detail__gallery[b-y0on3s9286] { display: flex; flex-wrap: wrap; gap: var(--space-3); margin-bottom: var(--space-5); }
.treatment-detail__gallery img[b-y0on3s9286] { max-width: 100%; height: auto; border-radius: var(--radius); }
.treatment-detail__body[b-y0on3s9286] { margin-bottom: var(--space-5); }
.treatment-detail__actions[b-y0on3s9286] { display: flex; flex-wrap: wrap; gap: var(--space-3); margin-top: var(--space-5); }
.treatment-detail__related[b-y0on3s9286] { margin-top: var(--space-7); padding-top: var(--space-5); border-top: 1px solid var(--line); }
.treatment-detail__back-button[b-y0on3s9286] { margin-bottom: var(--space-4); }

.treatment-detail__faqs[b-y0on3s9286] { margin-top: var(--space-6); }
.treatment-detail__question[b-y0on3s9286] { font-size: var(--text-md); margin: var(--space-4) 0 var(--space-2); }

.treatment-detail__guide[b-y0on3s9286] { margin-top: var(--space-6); }
.treatment-detail__guide ul[b-y0on3s9286] { padding-left: var(--space-5); }

.treatment-detail__container[b-y0on3s9286] { padding-top: var(--space-5); }
.treatment-detail__layout[b-y0on3s9286] { display: grid; gap: var(--space-6); grid-template-columns: minmax(0, 1fr); margin-top: var(--space-5); }
.treatment-detail__main[b-y0on3s9286] { min-width: 0; max-width: 720px; }
.treatment-detail__summary[b-y0on3s9286] { border: 1px solid var(--line); border-radius: var(--radius); padding: var(--space-5); align-self: start; }
.treatment-detail__actions--stacked[b-y0on3s9286] { margin-top: 0; flex-direction: column; }
.treatment-detail__actions--stacked .btn[b-y0on3s9286] { width: 100%; text-align: center; }
@media (min-width: 900px) {
    .treatment-detail__layout[b-y0on3s9286] { grid-template-columns: minmax(0, 1fr) 320px; gap: var(--space-8); }
    .treatment-detail__summary[b-y0on3s9286] { position: sticky; top: var(--space-6); }
}
/* /Components/Pages/Treatments.razor.rz.scp.css */
.treatments__lede[b-x72p1240cw] { max-width: 62ch; }

/* ---- filters --------------------------------------------------------------- */

.filters[b-x72p1240cw] {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-2);
    margin-top: var(--space-5);
}

.filter[b-x72p1240cw] {
    display: inline-flex;
    align-items: center;
    gap: var(--space-2);
    min-height: 40px;
    padding: 0 var(--space-3);
    border: 1px solid var(--line);
    border-radius: var(--radius);
    background: var(--surface);
    color: var(--fg-muted);
    font-size: var(--text-xs);
    font-weight: 600;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    cursor: pointer;
    transition: border-color var(--dur) var(--ease), color var(--dur) var(--ease),
                background-color var(--dur) var(--ease);
}

.filter:hover[b-x72p1240cw] { border-color: var(--line-strong); color: var(--fg); }

.filter.is-active[b-x72p1240cw] {
    background: var(--gold);
    border-color: var(--gold);
    color: var(--ink);
}

.filter--offers[b-x72p1240cw] { border-color: var(--blush); color: var(--blush-text); }
.filter--offers.is-active[b-x72p1240cw] { background: var(--blush); border-color: var(--blush); color: var(--ink); }

/* A running offer gets a quiet blush edge so it stands out in a long list. */
.treatment.is-offer[b-x72p1240cw] { box-shadow: inset 2px 0 0 var(--blush); padding-left: var(--space-4); }
.treatment.is-offer.is-added[b-x72p1240cw] { box-shadow: inset 2px 0 0 var(--gold); }

.filter__count[b-x72p1240cw] {
    padding: 1px 6px;
    border-radius: 10px;
    background: var(--surface-alt);
    color: var(--fg-muted);
    font-size: 11px;
    letter-spacing: 0;
}

.filter.is-active .filter__count[b-x72p1240cw] {
    background: rgb(0 0 0 / 0.18);
    color: var(--ink);
}

.treatments__search[b-x72p1240cw] { margin-top: var(--space-4); }

/* The intro and the first category are separate sections, so their paddings
   stack. Trimming the intro's bottom keeps the first price near the filters. */
.treatments__intro[b-x72p1240cw] { padding-bottom: var(--space-4); }

.treatments__search-field[b-x72p1240cw] { max-width: 380px; }

/* ---- list ------------------------------------------------------------------- */

/* The intro block used to be a full `.section` and the first category another,
   stacking 96px of bottom padding onto 48px of top padding — a screen and a
   half of nothing before the first price on a phone. Both are --tight now. */
.treatments__category[b-x72p1240cw] {
    font-size: var(--text-lg);
    padding-bottom: var(--space-3);
    border-bottom: 2px solid var(--gold);
    margin-bottom: 0;
}

.treatments__list[b-x72p1240cw] {
    list-style: none;
    margin: 0;
    padding: 0;
}

.treatment[b-x72p1240cw] {
    display: flex;
    flex-direction: column;
    gap: var(--space-3);
    padding: var(--space-5) 0;
    border-bottom: 1px solid var(--line);
    max-width: none;
    transition: background-color var(--dur) var(--ease);
}

.treatment:last-child[b-x72p1240cw] { border-bottom: 0; }

/* A quiet cue that something is in the basket, without shouting. */
.treatment.is-added[b-x72p1240cw] {
    background: var(--blush-tint);
    box-shadow: inset 2px 0 0 var(--gold);
    padding-inline: var(--space-4);
    margin-inline: calc(var(--space-4) * -1);
}

.treatment__name[b-x72p1240cw] {
    font-size: var(--text-md);
    margin-bottom: var(--space-2);
}

.treatment__description[b-x72p1240cw] {
    font-size: var(--text-sm);
    margin-bottom: var(--space-3);
    max-width: 60ch;
}

.treatment__badges[b-x72p1240cw] {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-2);
    margin: 0;
}

.treatment__badges:empty[b-x72p1240cw] { display: none; }

.treatment__aside[b-x72p1240cw] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--space-4);
}

.treatment__price[b-x72p1240cw] {
    font-family: var(--font-display);
    font-size: var(--text-md);
    font-weight: 600;
    margin: 0;
    white-space: nowrap;
}

.treatment__actions[b-x72p1240cw] {
    display: flex;
    align-items: center;
    gap: var(--space-2);
}

.treatment__add[b-x72p1240cw] { gap: var(--space-2); min-width: 104px; }

@media (min-width: 720px) {
    .treatment[b-x72p1240cw] {
        flex-direction: row;
        align-items: center;
        justify-content: space-between;
        gap: var(--space-6);
        padding: var(--space-5) 0;
    }

    .treatment.is-added[b-x72p1240cw] { padding-inline: var(--space-4); }

    .treatment__main[b-x72p1240cw] { flex: 1; }

    .treatment__aside[b-x72p1240cw] {
        flex: none;
        justify-content: flex-end;
        gap: var(--space-6);
    }

    .treatment__price[b-x72p1240cw] { min-width: 7ch; text-align: right; }
}

/* ---- sticky basket bar -------------------------------------------------------- */

.basket-bar[b-x72p1240cw] {
    position: sticky;
    bottom: 0;
    z-index: 40;
    background: var(--ink);
    color: var(--on-ink);
    border-top: 1px solid var(--gold);
}

.basket-bar__inner[b-x72p1240cw] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: var(--space-3) var(--space-5);
    padding-block: var(--space-3);
}

.basket-bar__count[b-x72p1240cw] {
    margin: 0;
    font-weight: 600;
}

.basket-bar__meta[b-x72p1240cw] {
    margin: 0;
    color: var(--on-ink-muted);
}

.basket-bar__actions[b-x72p1240cw] {
    display: flex;
    align-items: center;
    gap: var(--space-3);
}

.basket-bar__actions .btn--quiet[b-x72p1240cw] { color: var(--on-ink-muted); }
.basket-bar__actions .btn--quiet:hover[b-x72p1240cw] { color: var(--on-ink); }

@media (max-width: 520px) {
    .basket-bar__inner[b-x72p1240cw] { gap: var(--space-2); }
    .basket-bar__summary[b-x72p1240cw] { flex: 1 1 100%; }
    .basket-bar__actions[b-x72p1240cw] { flex: 1 1 100%; }
    .basket-bar__actions .btn--primary[b-x72p1240cw] { flex: 1; }
}

/* ---- closing CTA --------------------------------------------------------------- */

.treatments__cta[b-x72p1240cw] { text-align: center; }
.treatments__cta .lede[b-x72p1240cw] { margin-inline: auto; }
.treatments__cta-actions[b-x72p1240cw] { justify-content: center; }

.treatment__link[b-x72p1240cw] { color: inherit; text-decoration: none; }
.treatment__link:hover[b-x72p1240cw] { text-decoration: underline; text-decoration-color: var(--gold); text-underline-offset: 4px; }
/* /Components/Shared/OpeningHoursList.razor.rz.scp.css */
.hours[b-f0krkp82qf] {
    margin: 0;
    font-size: var(--text-sm);
}

.hours__row[b-f0krkp82qf] {
    display: flex;
    justify-content: space-between;
    gap: var(--space-4);
    padding: var(--space-2) 0;
    border-bottom: 1px solid var(--line);
}

.hours__row:last-child[b-f0krkp82qf] { border-bottom: 0; }

.hours__row.is-today[b-f0krkp82qf] { font-weight: 600; }

.hours__days[b-f0krkp82qf] { margin: 0; color: var(--fg-muted); }
.hours__row.is-today .hours__days[b-f0krkp82qf] { color: var(--fg); }

.hours__times[b-f0krkp82qf] { margin: 0; }
/* /Components/Shared/RichTextEditor.razor.rz.scp.css */
.rte[b-2mcehtp0yf] {
    border: 1px solid var(--line-strong);
    border-radius: var(--radius);
    background: var(--surface);
}

.rte__surface[b-2mcehtp0yf] { min-height: 220px; }

/* Quill ships its own light-only palette; these pull it onto the tokens so it
   works in dark mode too. ::deep because Quill builds its DOM at runtime,
   outside Blazor's scoped-CSS rewriting. */
[b-2mcehtp0yf] .ql-toolbar.ql-snow {
    border: 0;
    border-bottom: 1px solid var(--line);
    border-radius: var(--radius) var(--radius) 0 0;
    background: var(--surface-alt);
}

[b-2mcehtp0yf] .ql-container.ql-snow { border: 0; font-family: var(--font-body); font-size: var(--text-base); }

[b-2mcehtp0yf] .ql-editor { min-height: 200px; color: var(--fg); }

[b-2mcehtp0yf] .ql-editor.ql-blank::before { color: var(--fg-muted); font-style: normal; }

[b-2mcehtp0yf] .ql-snow .ql-stroke { stroke: var(--fg); }
[b-2mcehtp0yf] .ql-snow .ql-fill { fill: var(--fg); }
[b-2mcehtp0yf] .ql-snow .ql-picker { color: var(--fg); }
[b-2mcehtp0yf] .ql-snow .ql-picker-options { background: var(--surface); border-color: var(--line); }

[b-2mcehtp0yf] .ql-snow.ql-toolbar button:hover .ql-stroke,
[b-2mcehtp0yf] .ql-snow.ql-toolbar button.ql-active .ql-stroke { stroke: var(--accent-text); }

[b-2mcehtp0yf] .ql-snow.ql-toolbar button:hover .ql-fill,
[b-2mcehtp0yf] .ql-snow.ql-toolbar button.ql-active .ql-fill { fill: var(--accent-text); }

[b-2mcehtp0yf] .ql-editor img { max-width: 100%; height: auto; }
/* /Components/Shared/TreatmentCardList.razor.rz.scp.css */
.treatment-card-list[b-i1r33gy8w8] { list-style: none; margin: var(--space-4) 0; padding: 0; display: grid; gap: var(--space-3); }
.treatment-card[b-i1r33gy8w8] { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: var(--space-3) var(--space-4); padding: var(--space-4) var(--space-5); background: var(--surface); border: 1px solid var(--line); border-left: 3px solid var(--gold); border-radius: var(--radius-card); box-shadow: 0 1px 2px rgba(0, 0, 0, 0.06); transition: box-shadow var(--dur) var(--ease), border-color var(--dur) var(--ease), transform var(--dur) var(--ease); }
.treatment-card:hover[b-i1r33gy8w8], .treatment-card:focus-within[b-i1r33gy8w8] { border-color: var(--gold); box-shadow: 0 6px 18px rgba(0, 0, 0, 0.12); transform: translateY(-2px); }
.treatment-card__name[b-i1r33gy8w8] { display: block; font-weight: 600; color: var(--fg); text-decoration: none; margin-bottom: var(--space-2); }
.treatment-card__name:hover[b-i1r33gy8w8] { color: var(--accent-text); }
.treatment-card__meta[b-i1r33gy8w8] { display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-3); margin: 0; }
.treatment-card__add[data-added='true'][b-i1r33gy8w8] { background: transparent; border-color: var(--gold); color: var(--accent-text); }
.treatment-card-list__summary[b-i1r33gy8w8] { margin: 0 0 var(--space-4); }.treatment-card__description[b-i1r33gy8w8] { margin: 0 0 var(--space-2); }
