/* /Components/Account/Pages/Manage/EnableAuthenticator.razor.rz.scp.css */
.info-message[b-a2wy67uxt6] {
    justify-content: start;
    margin: 0.625rem 0 0.625rem 0;
}
/* /Components/Account/Pages/Manage/ExternalLogins.razor.rz.scp.css */
.current-logins[b-to7vfrqzbo] {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}

.current-logins-item[b-to7vfrqzbo] {
    display: flex;
    gap: 0.625rem;
}
/* /Components/Account/Shared/AccountLayout.razor.rz.scp.css */
.account-shell[b-rhgyg99th9]{min-height:100dvh;color:var(--color-text-primary);background:var(--color-canvas);font-family:Inter,Aptos,"Segoe UI",sans-serif}.account-header[b-rhgyg99th9]{display:flex;align-items:center;justify-content:space-between;min-height:4.5rem;padding-inline:clamp(1rem,5vw,4rem);background:#fff;border-bottom:1px solid var(--color-border)}.account-header>a[b-rhgyg99th9]{display:flex;align-items:center;gap:.65rem;color:var(--color-espresso);font:500 1.55rem Georgia,serif;text-decoration:none}.account-header>a span[b-rhgyg99th9]{display:grid;place-items:center;width:2.25rem;height:2.25rem;border:1px solid var(--color-gold);border-radius:50%}.account-header nav[b-rhgyg99th9]{display:flex;gap:1rem}.account-header nav a[b-rhgyg99th9]{color:var(--color-espresso);font-weight:650}.account-main[b-rhgyg99th9]{width:min(100% - 2rem,34rem);margin:auto;padding-block:clamp(2rem,8vw,6rem)}
/* /Components/Account/Shared/ExternalLoginPicker.razor.rz.scp.css */
.external-logins[b-0zj36lmku4] {
    display: flex;
    gap: 0.5rem;
}

@media (max-width: 500px) {
    .external-logins[b-0zj36lmku4] {
        flex-direction: column;
    }
}
/* /Components/Account/Shared/ShowRecoveryCodes.razor.rz.scp.css */
.codes[b-qnsnri1c2r] {
    margin: 0.625rem 0 0.625rem 0;
}
/* /Components/Client/ClientPageHead.razor.rz.scp.css */
.client-page-head[b-ov1eyuqj6b] { margin-block-end:2rem; }
.client-page-head h1[b-ov1eyuqj6b] { margin:0; font:500 clamp(2.25rem,5vw,4rem)/1.05 Georgia,"Times New Roman",serif; letter-spacing:-.035em; }
.client-page-head p[b-ov1eyuqj6b] { max-width:42rem; margin:.9rem 0 0; color:var(--color-text-muted); font-size:1.08rem; }
/* /Components/Layout/ClientLayout.razor.rz.scp.css */
.client-shell[b-n46b4refp1] { min-height:100dvh; display:grid; grid-template-columns:17rem minmax(0,1fr); color:var(--color-text-primary); background:var(--color-canvas); font-family:Inter,Aptos,"Segoe UI",system-ui,sans-serif; }
.client-sidebar[b-n46b4refp1] { position:sticky; inset-block-start:0; height:100dvh; display:flex; flex-direction:column; padding:1.5rem; color:#fff; background:var(--color-espresso); z-index:20; }
.client-brand[b-n46b4refp1] { display:flex; align-items:center; gap:.75rem; color:#fff; font-family:Georgia,"Times New Roman",serif; font-size:1.7rem; text-decoration:none; }
.client-brand-mark[b-n46b4refp1] { display:grid; place-items:center; width:2.5rem; height:2.5rem; border:1px solid rgb(255 255 255 / 40%); border-radius:50%; color:var(--color-gold); }
.client-nav[b-n46b4refp1] { display:grid; gap:.3rem; margin-block:2.5rem; }
.client-nav a[b-n46b4refp1] { padding:.75rem 1rem; color:rgb(255 255 255 / 74%); border-radius:.75rem; text-decoration:none; }
.client-nav a:hover[b-n46b4refp1],.client-nav a.active[b-n46b4refp1] { color:#fff; background:rgb(255 255 255 / 10%); }
.client-sidebar-footer[b-n46b4refp1] { margin-block-start:auto; display:grid; gap:.4rem; }
.client-sidebar-footer a[b-n46b4refp1],.client-sidebar-footer button[b-n46b4refp1] { display:block; width:100%; padding:.65rem 1rem; color:rgb(255 255 255 / 72%); background:none; border:0; text-align:start; text-decoration:none; cursor:pointer; }
.client-workspace[b-n46b4refp1] { min-width:0; }
.client-topbar[b-n46b4refp1] { min-height:4.5rem; display:flex; align-items:center; justify-content:flex-end; padding-inline:clamp(1rem,4vw,3rem); background:rgb(255 255 255 / 72%); border-bottom:1px solid var(--color-border); backdrop-filter:blur(12px); }
.client-menu-toggle[b-n46b4refp1] { display:none; margin-inline-end:auto; font-size:1.35rem; background:none; border:0; }
.client-content[b-n46b4refp1] { width:min(100% - 2rem,72rem); margin-inline:auto; padding-block:clamp(2rem,5vw,4.5rem); }
@media (max-width: 52rem) { .client-shell[b-n46b4refp1]{grid-template-columns:1fr}.client-sidebar[b-n46b4refp1]{position:fixed; inset:0 auto 0 0; width:min(20rem,88vw); transform:translateX(-105%); transition:transform .2s ease}.client-sidebar.is-open[b-n46b4refp1]{transform:translateX(0)}.client-menu-toggle[b-n46b4refp1]{display:block}.client-topbar[b-n46b4refp1]{justify-content:flex-end} }
/* /Components/Layout/Drawer.razor.rz.scp.css */
.drawer-container[b-1scegfo8hk] {
    height: 100%;
}

.navigation-drawer-shading[b-1scegfo8hk] {
    height: 100%;
    position: absolute;
    transition: ease 300ms;
    transition-property: opacity, visibility;
    visibility: visible;
    width: 100%;
    z-index: 99;
    background-color: var(--dxds-color-surface-backdrop-default-rest);
}

.navigation-drawer.mobile.panel-closed .navigation-drawer-shading[b-1scegfo8hk] {
    opacity: 0;
    visibility: hidden;
}

[b-1scegfo8hk] .navigation-drawer > .dxbl-drawer-panel {
    display: flex;
}

[b-1scegfo8hk] .navigation-drawer.mobile > .dxbl-drawer-panel {
    display: none;
}

.navigation-drawer-shading[b-1scegfo8hk] {
    display: none;
}

[b-1scegfo8hk] .panel-open:not(.mobile) .nav-buttons-container .menu-button {
    display: none;
}

@media (max-width: 768px) {
    [b-1scegfo8hk] .navigation-drawer > .dxbl-drawer-panel {
        display: none;
    }

    [b-1scegfo8hk] .navigation-drawer.mobile > .dxbl-drawer-panel {
        display: flex;
    }

    .navigation-drawer-shading[b-1scegfo8hk] {
        display: block;
    }

    [b-1scegfo8hk] .panel-open:not(.mobile) .nav-buttons-container .menu-button {
        display: flex;
    }
}
/* /Components/Layout/MainLayout.razor.rz.scp.css */
.page[b-v6r1tnjbee] {
    height: 100%;
    min-height: 0;
}

[b-v6r1tnjbee] .navigation-drawer {
    --dxbl-drawer-panel-body-padding-x: 0;
    --dxbl-drawer-panel-body-padding-y: 1rem;
    --dxbl-drawer-panel-footer-bg: none;
    --dxbl-drawer-panel-header-bg: none;
    --dxbl-drawer-separator-border-width: 0;
}

[b-v6r1tnjbee] .navigation-drawer > .dxbl-drawer-panel {
    background-image: linear-gradient(180deg, var(--dxds-color-surface-primary-default-rest) 0%, var(--dxds-primary-170) 150%);
}

.navigation-drawer-header[b-v6r1tnjbee] {
    align-items: center;
    display: flex;
    justify-content: space-between;
    padding: 1.375rem 0.375rem;
    width: 100%;
}

.navigation-drawer-header .logo[b-v6r1tnjbee] {
    height: 1.5rem;
    width: 9rem;
}

.navigation-drawer-footer[b-v6r1tnjbee] {
    display: flex;
    justify-content: space-evenly;
    padding-bottom: 0.875rem;
    width: 100%;
}

.drawer-content[b-v6r1tnjbee] {
    display: flex;
    flex-direction: column;
    height: 100%;
    overflow: auto;
    padding: 2rem 1.5rem 1.5rem 1.5rem;
}

.nav-buttons-container[b-v6r1tnjbee] {
    align-items: center;
    display: flex;
    gap: 0.625rem;
    min-height: 2rem;
}

[b-v6r1tnjbee] .nav-buttons-container > a {
    color: inherit;
}

[b-v6r1tnjbee] .nav-buttons-container .back-button {
    padding-left: 0;
    padding-right: 0.25rem;
}

[b-v6r1tnjbee] .nav-buttons-container .menu-button-float-end {
    margin-left: auto;
}

.page-content-container[b-v6r1tnjbee] {
    display: flex;
    flex-direction: column;
    flex-grow: 1;
    min-height: 0;
}
/* /Components/Layout/NavMenu.razor.rz.scp.css */
[b-si2264k3gh] .menu {
    --dxbl-menu-bottom-left-border-radius: 0;
    --dxbl-menu-bottom-right-border-radius: 0;
    --dxbl-menu-top-left-border-radius: 0;
    --dxbl-menu-top-right-border-radius: 0;
    --dxbl-menu-item-padding-x: 1.125rem;
    --dxbl-menu-item-padding-y: 0.5rem;
    --dxbl-menu-item-color: var(--dxds-color-content-neutral-default-static-dark-rest);
    --dxbl-menu-item-image-color: var(--dxds-color-content-neutral-default-static-dark-rest);
    --dxbl-menu-item-hover-bg: rgb(from var(--dxds-color-surface-neutral-default-static-light-rest) r g b / 0.15);
    --dxbl-menu-item-hover-color: var(--dxds-color-content-neutral-default-static-dark-hovered);
    --dxbl-menu-item-hover-image-color: var(--dxds-color-content-neutral-default-static-dark-hovered);

    background: none;
}

[b-si2264k3gh] .menu.display-mobile {
    margin-bottom: 2rem;
}

[b-si2264k3gh] .menu-item-active {
    background-color: rgb(from var(--dxds-color-surface-neutral-default-static-light-rest) r g b / 0.05);
}
/* /Components/Layout/OperationsLayout.razor.rz.scp.css */
.operations-shell[b-tskw8effz1]{min-height:100dvh;display:grid;grid-template-columns:16rem minmax(0,1fr);background:#f4f5f4;color:var(--color-text-primary);font-family:Inter,Aptos,"Segoe UI",sans-serif}.operations-sidebar[b-tskw8effz1]{position:sticky;top:0;height:100dvh;display:flex;flex-direction:column;padding:1.5rem;background:#17231f;color:#fff;z-index:20}.operations-brand[b-tskw8effz1]{display:flex;align-items:center;gap:.7rem;color:#fff;font:500 1.55rem Georgia,serif;text-decoration:none}.operations-brand span[b-tskw8effz1]{display:grid;place-items:center;width:2.25rem;height:2.25rem;border:1px solid #a98e5f;border-radius:50%;color:#d6b875}.operations-caption[b-tskw8effz1]{margin:1.5rem 0 .5rem;color:rgb(255 255 255 / 48%);font-size:.72rem;letter-spacing:.1em;text-transform:uppercase}.operations-sidebar nav[b-tskw8effz1]{display:grid;gap:.25rem}.operations-sidebar nav a[b-tskw8effz1]{padding:.72rem .85rem;color:rgb(255 255 255 / 72%);border-radius:.55rem;text-decoration:none}.operations-sidebar nav a.active[b-tskw8effz1],.operations-sidebar nav a:hover[b-tskw8effz1]{color:#fff;background:rgb(255 255 255 / 9%)}.operations-site-link[b-tskw8effz1]{margin-top:auto;padding:.72rem .85rem;color:rgb(255 255 255 / 65%)}.operations-workspace[b-tskw8effz1]{min-width:0}.operations-topbar[b-tskw8effz1]{height:4.25rem;display:flex;align-items:center;justify-content:flex-end;gap:1rem;padding-inline:2rem;background:#fff;border-bottom:1px solid #ddd}.operations-topbar button[b-tskw8effz1]{display:none;margin-right:auto;background:none;border:0;font-size:1.35rem}.operations-content[b-tskw8effz1]{width:min(100% - 2rem,84rem);margin:auto;padding-block:2.5rem}.operations-content :global(h1)[b-tskw8effz1]{font:500 clamp(2rem,4vw,3.5rem) Georgia,serif}.operations-content :global(.ops-head)[b-tskw8effz1]{display:flex;align-items:flex-end;justify-content:space-between;gap:1rem;margin-bottom:1.5rem}.operations-content :global(.ops-kicker)[b-tskw8effz1]{color:var(--color-bronze);font-size:.76rem;font-weight:750;letter-spacing:.1em;text-transform:uppercase}.operations-content :global(.ops-cards)[b-tskw8effz1]{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1rem}.operations-content :global(.ops-card)[b-tskw8effz1]{padding:1.4rem;background:#fff;border:1px solid #ddd;border-radius:.8rem}.operations-content :global(.ops-card strong)[b-tskw8effz1]{display:block;font:500 2.25rem Georgia,serif}.operations-content :global(.ops-card span)[b-tskw8effz1]{color:#67706b}.operations-content :global(.ops-panel)[b-tskw8effz1]{padding:1.25rem;background:#fff;border:1px solid #ddd;border-radius:.8rem}.operations-content :global(.ops-actions)[b-tskw8effz1]{display:flex;flex-wrap:wrap;gap:.75rem}.operations-content :global(.ops-form)[b-tskw8effz1]{display:grid;gap:.9rem}.operations-content :global(.ops-form label)[b-tskw8effz1]{display:grid;gap:.35rem;font-weight:650}.operations-content :global(.ops-form input)[b-tskw8effz1],.operations-content :global(.ops-form select)[b-tskw8effz1],.operations-content :global(.ops-form textarea)[b-tskw8effz1]{min-height:2.6rem;padding:.65rem;border:1px solid #ccc;border-radius:.45rem}.operations-content :global(.ops-form textarea)[b-tskw8effz1]{min-height:6rem}.operations-content :global(.ops-grid)[b-tskw8effz1]{display:grid;grid-template-columns:minmax(17rem,.7fr) minmax(0,1.3fr);gap:1.25rem}.operations-content :global(.ops-calendar-list)[b-tskw8effz1]{display:grid;gap:.65rem}.operations-content :global(.ops-calendar-item)[b-tskw8effz1]{display:grid;grid-template-columns:9rem 1fr auto;gap:1rem;padding:1rem;border-left:.3rem solid var(--color-gold);background:#fff}.operations-content :global(.ops-calendar-item.booking)[b-tskw8effz1]{border-left-color:var(--color-success)}
@media(max-width:58rem){.operations-shell[b-tskw8effz1]{grid-template-columns:1fr}.operations-sidebar[b-tskw8effz1]{position:fixed;left:0;transform:translateX(-105%);width:min(19rem,88vw);transition:transform .2s}.operations-sidebar.is-open[b-tskw8effz1]{transform:translateX(0)}.operations-topbar button[b-tskw8effz1]{display:block}.operations-content :global(.ops-cards)[b-tskw8effz1],.operations-content :global(.ops-grid)[b-tskw8effz1]{grid-template-columns:1fr}}
/* /Components/Pages/Public/Availability.razor.rz.scp.css */
.availability-form[b-9mbvx8dtl5] {
    position: relative;
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: var(--space-4);
    padding: clamp(1.5rem, 4vw, 3rem);
    background: var(--color-canvas);
    border-radius: var(--radius-media);
}

.field[b-9mbvx8dtl5] {
    display: flex;
    flex-direction: column;
    gap: var(--space-2);
}

.full-field[b-9mbvx8dtl5] {
    grid-column: 1 / -1;
}

label[b-9mbvx8dtl5] {
    color: var(--color-text-primary);
    font-size: 0.88rem;
    font-weight: 700;
}

input[b-9mbvx8dtl5],
select[b-9mbvx8dtl5],
textarea[b-9mbvx8dtl5] {
    width: 100%;
    min-height: 3rem;
    padding: 0.7rem 0.85rem;
    color: var(--color-text-primary);
    background: var(--color-surface);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-small);
    font: inherit;
}

textarea[b-9mbvx8dtl5] {
    resize: vertical;
}

.consent[b-9mbvx8dtl5] {
    display: flex;
    gap: var(--space-3);
    align-items: flex-start;
    font-weight: 500;
}

.consent input[b-9mbvx8dtl5] {
    flex: 0 0 auto;
    width: 1.25rem;
    min-height: 1.25rem;
    margin-block-start: 0.2rem;
}

.form-result[b-9mbvx8dtl5] {
    margin-block-start: var(--space-8);
    padding: var(--space-6);
    border-radius: var(--radius-control);
}

.form-result strong[b-9mbvx8dtl5] {
    display: block;
    margin-block-end: var(--space-2);
    font-family: Georgia, "Times New Roman", serif;
    font-size: 1.5rem;
}

.form-result p[b-9mbvx8dtl5] {
    margin: 0;
}

.success-result[b-9mbvx8dtl5] {
    color: var(--color-success);
    background: color-mix(in srgb, var(--color-success) 10%, white);
}

.error-result[b-9mbvx8dtl5] {
    color: var(--color-error);
    background: color-mix(in srgb, var(--color-error) 10%, white);
}

.honeypot[b-9mbvx8dtl5] {
    position: absolute;
    inset-inline-start: -10000px;
    width: 1px;
    height: 1px;
    overflow: hidden;
}

@media (max-width: 36rem) {
    .availability-form[b-9mbvx8dtl5] {
        grid-template-columns: 1fr;
    }

    .full-field[b-9mbvx8dtl5] {
        grid-column: auto;
    }
}
/* /Components/Pages/Public/Contacts.razor.rz.scp.css */
.contact-address[b-s76vb4dlii] {
    align-items: end;
    margin-block-start: var(--space-16);
    padding-block-start: var(--space-12);
    border-block-start: 1px solid var(--color-border);
}

a[b-s76vb4dlii] { color: var(--color-espresso); text-underline-offset: 0.25rem; }
/* /Components/Pages/Public/Gallery.razor.rz.scp.css */
.gallery-grid[b-2qhc9qq1s2] {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    grid-template-rows: 16rem 11rem;
    gap: 0.8rem;
}

.gallery-grid img[b-2qhc9qq1s2] {
    width: 100%;
    height: 100%;
    object-fit: cover;
    border-radius: var(--radius-control);
}

.gallery-location[b-2qhc9qq1s2] {
    grid-column: span 2;
    object-position: 50% center;
}

@media (max-width: 52rem) {
    .gallery-grid[b-2qhc9qq1s2] { grid-template-rows: 18rem 10rem; }
}
/* /Components/Pages/Public/Home.razor.rz.scp.css */
/* «Соната» landing: light split hero, halls grid, sticky experience rail,
   dark kitchen story, hotel block, full-bleed wedding banner. Every
   .stack-panel owns an opaque background so panels can slide over the
   pinned previous one. */

/* --- 1. Hero: wordmark on ivory + photo stack --------------------------- */

.home-hero[b-qbpjo2yrnk] {
    position: relative;
    display: flex;
    flex-direction: column;
    justify-content: center;
    min-block-size: 100svh;
    overflow: clip;
    padding-block: calc(var(--header-height) + 3rem) 4rem;
    background-color: var(--color-canvas);
    background-image: var(--grain);
}

.hero-grid[b-qbpjo2yrnk] {
    display: grid;
    grid-template-columns: minmax(0, 1.05fr) minmax(0, 0.95fr);
    gap: clamp(2.5rem, 6vw, 6rem);
    align-items: center;
}

.hero-title[b-qbpjo2yrnk] {
    margin: 0;
    font-family: var(--font-display);
    font-size: clamp(3.2rem, 8.5vw, 8.4rem);
    font-weight: 250;
    letter-spacing: 0.14em;
    text-indent: 0.14em;
    line-height: 1;
    text-transform: uppercase;
}

/* Fine gold staff lines under the wordmark — the «Соната» motif. */
.hero-staff[b-qbpjo2yrnk] {
    display: block;
    block-size: 3.3rem;
    margin-block-start: clamp(1rem, 2vw, 1.6rem);
    color: color-mix(in srgb, var(--color-gold) 62%, transparent);
    background-image: var(--staff-lines);
    mask-image: linear-gradient(to right, #000 0%, #000 58%, transparent 100%);
}

.hero-tagline[b-qbpjo2yrnk] {
    max-width: 22ch;
    margin: clamp(1.25rem, 2.5vw, 2rem) 0 0;
    font-family: var(--font-display);
    font-size: clamp(1.35rem, 2.3vw, 2.1rem);
    font-weight: 320;
    line-height: 1.2;
    text-wrap: balance;
}

.hero-lead[b-qbpjo2yrnk] {
    max-width: 38rem;
    margin: var(--space-6) 0 0;
    color: var(--color-text-muted);
    font-size: clamp(0.98rem, 1.3vw, 1.12rem);
    line-height: 1.75;
}

.hero-actions[b-qbpjo2yrnk] {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-3);
    margin-block-start: clamp(1.75rem, 3vw, 2.5rem);
}

.hero-facts[b-qbpjo2yrnk] {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: var(--space-6);
    margin-block: clamp(2.25rem, 4vw, 3.25rem) 0;
    padding-block-start: clamp(1.5rem, 3vw, 2.25rem);
    border-block-start: 1px solid var(--color-border);
}

.hero-facts > div[b-qbpjo2yrnk] {
    display: grid;
    gap: 0.35rem;
}

.hero-facts dt[b-qbpjo2yrnk] {
    font-family: var(--font-display);
    font-size: clamp(1.6rem, 2.6vw, 2.5rem);
    font-weight: 300;
    line-height: 1;
    color: var(--color-espresso);
}

.hero-facts dd[b-qbpjo2yrnk] {
    margin: 0;
    color: var(--color-text-muted);
    font-size: 0.78rem;
    font-weight: 650;
    letter-spacing: 0.1em;
    line-height: 1.4;
    text-transform: uppercase;
}

.hero-media[b-qbpjo2yrnk] {
    position: relative;
    padding-inline-end: clamp(0rem, 5vw, 4.5rem);
    padding-block-end: clamp(2.5rem, 6vw, 5rem);
}

.hero-media-main[b-qbpjo2yrnk] {
    margin: 0;
    block-size: clamp(24rem, 68vh, 40rem);
    overflow: clip;
    border-radius: var(--radius-media);
}

.hero-media-main img[b-qbpjo2yrnk] {
    display: block;
    inline-size: 100%;
    block-size: 100%;
    object-fit: cover;
    object-position: 50% 32%;
}

.hero-media-inset[b-qbpjo2yrnk] {
    position: absolute;
    inset-block-end: 0;
    inset-inline-end: 0;
    z-index: 1;
    inline-size: clamp(8rem, 15vw, 13rem);
    margin: 0;
    overflow: clip;
    border: 0.55rem solid var(--color-canvas);
    border-radius: var(--radius-media);
    box-shadow: 0 1.5rem 3rem rgb(36 29 27 / 18%);
}

.hero-media-inset img[b-qbpjo2yrnk] {
    display: block;
    inline-size: 100%;
    block-size: clamp(10rem, 19vw, 16rem);
    object-fit: cover;
}

.hero-foot[b-qbpjo2yrnk] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--space-4);
    margin-block-start: clamp(2rem, 4vw, 3.5rem);
    padding-block-start: var(--space-6);
    color: var(--color-text-muted);
    font-size: 0.72rem;
    font-weight: 650;
    letter-spacing: 0.22em;
    text-transform: uppercase;
    border-block-start: 1px solid var(--color-border);
}

.hero-scroll[b-qbpjo2yrnk] {
    display: inline-flex;
    flex-direction: column;
    gap: 0.5rem;
    align-items: center;
}

.hero-scroll i[b-qbpjo2yrnk] {
    position: relative;
    inline-size: 1px;
    block-size: 2.4rem;
    overflow: clip;
    background: var(--color-border);
}

.hero-scroll i[b-qbpjo2yrnk]::after {
    position: absolute;
    inset-inline: 0;
    block-size: 50%;
    content: "";
    background: var(--color-gold);
    animation: hero-scroll-drip-b-qbpjo2yrnk 2.2s cubic-bezier(0.65, 0, 0.35, 1) infinite;
}

@keyframes hero-scroll-drip-b-qbpjo2yrnk {
    0% { transform: translateY(-120%); }
    100% { transform: translateY(240%); }
}

/* --- 2. Intro + panorama + marquee ------------------------------------- */

.home-intro[b-qbpjo2yrnk] {
    padding-block: clamp(4.5rem, 9vw, 9rem) 0;
    overflow: clip;
    background-color: var(--color-surface);
    background-image: var(--grain);
}

.intro-grid[b-qbpjo2yrnk] {
    display: grid;
    grid-template-columns: minmax(0, 1.1fr) minmax(18rem, 0.9fr);
    gap: clamp(2rem, 6vw, 6rem);
    align-items: end;
}

.intro-copy .lead[b-qbpjo2yrnk] {
    margin-block-start: 0;
}

.intro-copy .button-row[b-qbpjo2yrnk] {
    margin-block-start: var(--space-6);
}

.intro-panorama[b-qbpjo2yrnk] {
    display: block;
    margin: clamp(3rem, 6vw, 5.5rem) auto 0;
}

.intro-panorama img[b-qbpjo2yrnk] {
    block-size: clamp(18rem, 56vh, 34rem);
    border-radius: var(--radius-media);
}

.intro-panorama figcaption[b-qbpjo2yrnk] {
    margin-block-start: var(--space-3);
    color: var(--color-text-muted);
    font-size: 0.72rem;
    font-weight: 650;
    letter-spacing: 0.22em;
    text-transform: uppercase;
}

.home-marquee[b-qbpjo2yrnk] {
    padding-block: clamp(2.5rem, 5vw, 4.5rem);
}

.home-marquee .marquee-track[b-qbpjo2yrnk] {
    gap: clamp(1.5rem, 3vw, 3rem);
    padding-inline-end: clamp(1.5rem, 3vw, 3rem);
}

.home-marquee span[b-qbpjo2yrnk] {
    font-family: var(--font-display);
    font-size: clamp(2.4rem, 6.4vw, 5.6rem);
    font-weight: 260;
    line-height: 1.1;
    text-transform: uppercase;
    color: transparent;
    -webkit-text-stroke: 1px color-mix(in srgb, var(--color-espresso) 40%, transparent);
}

.home-marquee i[b-qbpjo2yrnk] {
    font-size: clamp(1.1rem, 2.2vw, 1.8rem);
    font-style: normal;
    color: var(--color-gold);
}

/* --- 3. Halls ----------------------------------------------------------- */

.halls-section[b-qbpjo2yrnk] {
    padding-block: clamp(4.5rem, 9vw, 9rem);
    background-color: var(--color-canvas);
    background-image: var(--grain);
}

.halls-head[b-qbpjo2yrnk] {
    max-width: 46rem;
}

.halls-grid[b-qbpjo2yrnk] {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: clamp(1.5rem, 3vw, 2.75rem);
    margin-block-start: clamp(2.5rem, 5vw, 4.5rem);
}

.hall-card figure[b-qbpjo2yrnk] {
    margin: 0 0 var(--space-6);
    block-size: clamp(16rem, 34vw, 26rem);
    overflow: clip;
    border-radius: var(--radius-media);
}

.hall-card h3[b-qbpjo2yrnk] {
    margin: 0 0 var(--space-3);
    font-family: var(--font-display);
    font-size: clamp(1.2rem, 1.9vw, 1.75rem);
    font-weight: 350;
    line-height: 1.2;
}

.hall-card p[b-qbpjo2yrnk] {
    margin: 0;
    color: var(--color-text-muted);
}

/* --- 4. Experience rail ------------------------------------------------- */

.exp-section[b-qbpjo2yrnk] {
    padding-block: clamp(4.5rem, 9vw, 9rem);
    background-color: var(--color-surface);
    background-image: var(--grain);
}

.exp-layout[b-qbpjo2yrnk] {
    display: grid;
    grid-template-columns: minmax(0, 0.85fr) minmax(0, 1.15fr);
    gap: clamp(2.5rem, 6vw, 7rem);
    align-items: start;
}

.exp-side[b-qbpjo2yrnk] {
    position: sticky;
    inset-block-start: calc(var(--header-height) + 2.5rem);
}

.exp-nav[b-qbpjo2yrnk] {
    display: flex;
    flex-direction: column;
    margin-block-start: clamp(2rem, 4vw, 3.5rem);
}

.exp-nav a[b-qbpjo2yrnk] {
    display: flex;
    gap: 1.1rem;
    align-items: baseline;
    padding-block: 1rem;
    color: var(--color-text-primary);
    font-family: var(--font-display);
    font-size: clamp(1.15rem, 1.8vw, 1.65rem);
    font-weight: 330;
    text-decoration: none;
    border-block-end: 1px solid var(--color-border);
    opacity: 0.45;
    transition: opacity 240ms ease, padding-inline-start 240ms ease, color 240ms ease;
}

.exp-nav a span[b-qbpjo2yrnk] {
    font-family: var(--font-body);
    font-size: 0.68rem;
    font-weight: 700;
    letter-spacing: 0.18em;
    color: var(--color-bronze);
}

.exp-nav a:hover[b-qbpjo2yrnk],
.exp-nav a.is-active[b-qbpjo2yrnk] {
    padding-inline-start: 0.7rem;
    opacity: 1;
}

.exp-counter[b-qbpjo2yrnk] {
    display: flex;
    gap: var(--space-4);
    align-items: center;
    margin-block-start: clamp(2rem, 4vw, 3.5rem);
    color: var(--color-text-muted);
    font-size: 0.78rem;
    font-weight: 650;
    letter-spacing: 0.16em;
}

.exp-count[b-qbpjo2yrnk] {
    font-family: var(--font-display);
    font-size: clamp(2.2rem, 3.6vw, 3.4rem);
    font-weight: 260;
    color: var(--color-text-primary);
}

.exp-line[b-qbpjo2yrnk] {
    flex: 1;
    block-size: 1px;
    background: var(--color-border);
}

.exp-items[b-qbpjo2yrnk] {
    display: flex;
    flex-direction: column;
    gap: clamp(3rem, 7vw, 6rem);
}

.exp-item[b-qbpjo2yrnk] {
    display: block;
    color: inherit;
    text-decoration: none;
}

.exp-item figure[b-qbpjo2yrnk] {
    margin: 0;
    block-size: clamp(20rem, 64vh, 36rem);
    overflow: clip;
    border-radius: var(--radius-media);
}

.exp-item-copy[b-qbpjo2yrnk] {
    display: grid;
    gap: 0.4rem;
    padding-block-start: var(--space-6);
}

.exp-item-copy h3[b-qbpjo2yrnk] {
    margin: 0;
    font-family: var(--font-display);
    font-size: clamp(1.35rem, 2.2vw, 2rem);
    font-weight: 340;
    transition: color 220ms ease;
}

.exp-item:hover h3[b-qbpjo2yrnk] {
    color: var(--color-brand);
}

.exp-item-copy p[b-qbpjo2yrnk] {
    max-width: 34rem;
    margin: 0;
    color: var(--color-text-muted);
}

.exp-more[b-qbpjo2yrnk] {
    margin-block-start: var(--space-2);
    color: var(--color-bronze);
    font-size: 0.74rem;
    font-weight: 700;
    letter-spacing: 0.18em;
    text-transform: uppercase;
}

.exp-item:hover .exp-more[b-qbpjo2yrnk] {
    color: var(--color-brand);
}

/* --- 5. Kitchen story (dark) -------------------------------------------- */

.menu-story[b-qbpjo2yrnk] {
    padding-block: clamp(4.5rem, 9vw, 9rem);
    overflow: clip;
    color: var(--color-text-inverse);
    background:
        var(--grain),
        radial-gradient(120% 100% at 80% 0%, #4b3a33 0%, var(--color-espresso-deep) 62%);
}

.menu-story-grid[b-qbpjo2yrnk] {
    display: grid;
    grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr);
    gap: clamp(2.5rem, 6vw, 6rem);
    align-items: center;
}

.menu-story .section-title[b-qbpjo2yrnk] {
    color: inherit;
}

.menu-collage[b-qbpjo2yrnk] {
    display: grid;
    grid-template-columns: 1.1fr 0.9fr;
    gap: clamp(1rem, 2.5vw, 2rem);
    align-items: start;
}

.menu-collage figure[b-qbpjo2yrnk] {
    margin: 0;
    overflow: clip;
    border-radius: var(--radius-media);
}

.menu-collage-a[b-qbpjo2yrnk] {
    block-size: clamp(18rem, 52vh, 30rem);
}

.menu-collage-b[b-qbpjo2yrnk] {
    block-size: clamp(14rem, 40vh, 23rem);
    transform: translateY(clamp(2rem, 6vw, 4.5rem));
}

/* --- 6. Hotel ------------------------------------------------------------ */

.hotel-section[b-qbpjo2yrnk] {
    padding-block: clamp(4.5rem, 9vw, 9rem);
    overflow: clip;
    background-color: var(--color-canvas);
    background-image: var(--grain);
}

.hotel-grid[b-qbpjo2yrnk] {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    gap: clamp(2.5rem, 6vw, 6rem);
    align-items: center;
}

.hotel-media[b-qbpjo2yrnk] {
    display: grid;
    grid-template-columns: 1fr 0.85fr;
    gap: clamp(1rem, 2.2vw, 1.75rem);
    align-items: start;
}

.hotel-media figure[b-qbpjo2yrnk] {
    margin: 0;
    overflow: clip;
    border-radius: var(--radius-media);
}

.hotel-media-a[b-qbpjo2yrnk] {
    block-size: clamp(17rem, 48vh, 28rem);
}

.hotel-media-b[b-qbpjo2yrnk] {
    block-size: clamp(13rem, 36vh, 21rem);
    transform: translateY(clamp(2rem, 5vw, 4rem));
}

.hotel-points[b-qbpjo2yrnk] {
    display: grid;
    gap: var(--space-6);
    margin-block: clamp(2rem, 4vw, 3rem) 0;
    padding: 0;
    list-style: none;
}

.hotel-points li[b-qbpjo2yrnk] {
    padding-block-start: var(--space-4);
    border-block-start: 1px solid var(--color-border);
}

.hotel-points h3[b-qbpjo2yrnk] {
    margin: 0 0 var(--space-2);
    font-family: var(--font-display);
    font-size: clamp(1.05rem, 1.5vw, 1.35rem);
    font-weight: 360;
}

.hotel-points p[b-qbpjo2yrnk] {
    margin: 0;
    color: var(--color-text-muted);
}

/* --- 7. Full-bleed banner ------------------------------------------------ */

.home-banner[b-qbpjo2yrnk] {
    position: relative;
    display: grid;
    place-items: center;
    min-block-size: 86svh;
    overflow: clip;
    color: var(--color-text-inverse);
    background: var(--color-espresso-deep);
    text-align: center;
}

.banner-bg[b-qbpjo2yrnk] {
    position: absolute;
    inset: 0;
    margin: 0;
}

.banner-bg[b-qbpjo2yrnk]::after {
    position: absolute;
    inset: 0;
    content: "";
    background:
        linear-gradient(rgb(28 20 19 / 62%), rgb(28 20 19 / 72%)),
        var(--grain);
}

.banner-content[b-qbpjo2yrnk] {
    position: relative;
    z-index: 1;
    display: grid;
    justify-items: center;
    padding-block: clamp(5rem, 10vw, 8rem);
}

.banner-content .eyebrow[b-qbpjo2yrnk] {
    color: color-mix(in srgb, var(--color-text-inverse) 62%, transparent);
}

.banner-title[b-qbpjo2yrnk] {
    max-width: 18ch;
    margin: 0;
    font-family: var(--font-display);
    font-size: clamp(2rem, 4.6vw, 4.4rem);
    font-weight: 290;
    line-height: 1.12;
    text-wrap: balance;
}

.banner-content p[b-qbpjo2yrnk] {
    max-width: 40rem;
    margin: var(--space-6) 0 0;
    color: color-mix(in srgb, var(--color-text-inverse) 78%, transparent);
    font-size: clamp(1rem, 1.4vw, 1.18rem);
    line-height: 1.7;
}

.banner-content .button-row[b-qbpjo2yrnk] {
    justify-content: center;
}

/* --- 8. Process ----------------------------------------------------------- */

.home-process[b-qbpjo2yrnk] {
    padding-block: clamp(4.5rem, 9vw, 9rem);
    background-color: var(--color-surface);
    background-image: var(--grain);
}

.process-list[b-qbpjo2yrnk] {
    margin-block-start: clamp(2.5rem, 5vw, 4.5rem);
}

.process-list article[b-qbpjo2yrnk] {
    display: grid;
    grid-template-columns: 5rem minmax(0, 1fr);
    gap: var(--space-8);
    padding-block: clamp(1.5rem, 3vw, 2.5rem);
    border-block-start: 1px solid var(--color-border);
}

.process-list article:last-child[b-qbpjo2yrnk] {
    border-block-end: 1px solid var(--color-border);
}

.process-list span[b-qbpjo2yrnk] {
    font-family: var(--font-display);
    font-size: 1.1rem;
    font-weight: 300;
    color: var(--color-bronze);
}

.process-list h3[b-qbpjo2yrnk] {
    margin: 0 0 var(--space-2);
    font-family: var(--font-display);
    font-size: clamp(1.25rem, 2vw, 1.8rem);
    font-weight: 340;
    line-height: 1.2;
}

.process-list p[b-qbpjo2yrnk] {
    max-width: 38rem;
    margin: 0;
    color: var(--color-text-muted);
}

/* --- 9. Availability band --------------------------------------------------- */

.availability-band[b-qbpjo2yrnk] {
    padding-block: clamp(4.5rem, 9vw, 9rem);
    background-color: var(--color-canvas);
    background-image: var(--grain);
}

/* --- Responsive -------------------------------------------------------------- */

@media (max-width: 64rem) {
    .hero-grid[b-qbpjo2yrnk],
    .intro-grid[b-qbpjo2yrnk],
    .exp-layout[b-qbpjo2yrnk],
    .menu-story-grid[b-qbpjo2yrnk],
    .hotel-grid[b-qbpjo2yrnk] {
        grid-template-columns: 1fr;
    }

    .halls-grid[b-qbpjo2yrnk] {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .hero-media[b-qbpjo2yrnk] {
        padding-inline-end: 0;
    }

    .exp-side[b-qbpjo2yrnk] {
        position: static;
    }

    .exp-counter[b-qbpjo2yrnk] {
        display: none;
    }

    .exp-item figure[b-qbpjo2yrnk] {
        block-size: clamp(16rem, 48vh, 26rem);
    }
}

@media (max-width: 40rem) {
    .home-hero[b-qbpjo2yrnk] {
        min-block-size: auto;
    }

    .hero-facts[b-qbpjo2yrnk] {
        grid-template-columns: 1fr;
        gap: var(--space-4);
    }

    .hero-foot[b-qbpjo2yrnk] {
        font-size: 0.6rem;
        letter-spacing: 0.14em;
    }

    .hero-foot > span:first-child[b-qbpjo2yrnk] {
        display: none;
    }

    .halls-grid[b-qbpjo2yrnk],
    .hotel-media[b-qbpjo2yrnk] {
        grid-template-columns: 1fr;
    }

    .hotel-media-b[b-qbpjo2yrnk] {
        transform: none;
    }

    .intro-panorama img[b-qbpjo2yrnk] {
        block-size: 15rem;
    }

    .menu-collage-b[b-qbpjo2yrnk] {
        transform: translateY(1.25rem);
    }

    .process-list article[b-qbpjo2yrnk] {
        grid-template-columns: 1fr;
        gap: var(--space-3);
    }
}
/* /Components/Pages/Public/Hotel.razor.rz.scp.css */
.hotel-overview[b-5w3m5jisiu] {
    overflow: clip;
}

.hotel-stats[b-5w3m5jisiu] {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    margin-block-end: clamp(3rem, 7vw, 6rem);
    border-block: 1px solid var(--color-border);
}

.hotel-stats > div[b-5w3m5jisiu] {
    display: grid;
    gap: 0.45rem;
    padding: clamp(1.5rem, 3vw, 2.4rem);
    text-align: center;
}

.hotel-stats > div + div[b-5w3m5jisiu] {
    border-inline-start: 1px solid var(--color-border);
}

.hotel-stats strong[b-5w3m5jisiu] {
    color: var(--color-espresso);
    font-family: var(--font-display);
    font-size: clamp(2.2rem, 5vw, 4.4rem);
    font-weight: 300;
    line-height: 1;
}

.hotel-stats span[b-5w3m5jisiu] {
    color: var(--color-text-muted);
    font-size: 0.76rem;
    font-weight: 700;
    letter-spacing: 0.14em;
    text-transform: uppercase;
}

.hotel-gallery[b-5w3m5jisiu] {
    display: grid;
    grid-template-columns: 1.2fr 0.8fr 0.8fr;
    grid-template-rows: repeat(2, clamp(13rem, 24vw, 22rem));
    gap: clamp(0.6rem, 1.4vw, 1.1rem);
}

.hotel-gallery figure[b-5w3m5jisiu] {
    min-width: 0;
    margin: 0;
    overflow: clip;
    border-radius: var(--radius-control);
}

.hotel-gallery-main[b-5w3m5jisiu] {
    grid-row: span 2;
    border-radius: var(--radius-media) !important;
}

.hotel-gallery img[b-5w3m5jisiu] {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.hotel-gallery-main img[b-5w3m5jisiu] {
    object-position: 50% 44%;
}

.hotel-rooms-section[b-5w3m5jisiu],
.hotel-booking-section[b-5w3m5jisiu] {
    background-color: var(--color-canvas);
    background-image: var(--grain);
}

.hotel-section-heading[b-5w3m5jisiu] {
    max-width: 52rem;
}

.room-grid[b-5w3m5jisiu] {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: clamp(1rem, 2.5vw, 2rem);
    margin-block-start: clamp(3rem, 6vw, 5rem);
}

.room-card[b-5w3m5jisiu] {
    padding: clamp(1.6rem, 4vw, 3rem);
    background: var(--color-surface);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-media);
}

.room-card-featured[b-5w3m5jisiu] {
    color: var(--color-text-inverse);
    background: var(--color-espresso-deep);
    border-color: transparent;
}

.room-card-head[b-5w3m5jisiu] {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: var(--space-6);
    padding-block-end: var(--space-6);
    border-block-end: 1px solid var(--color-border);
}

.room-card-featured .room-card-head[b-5w3m5jisiu] {
    border-color: rgb(255 255 255 / 16%);
}

.room-capacity[b-5w3m5jisiu] {
    display: block;
    margin-block-end: var(--space-3);
    color: var(--color-bronze);
    font-size: 0.72rem;
    font-weight: 700;
    letter-spacing: 0.16em;
    text-transform: uppercase;
}

.room-card-featured .room-capacity[b-5w3m5jisiu] {
    color: var(--color-gold);
}

.room-card h3[b-5w3m5jisiu] {
    margin: 0;
    font-family: var(--font-display);
    font-size: clamp(1.55rem, 2.5vw, 2.35rem);
    font-weight: 340;
}

.room-price[b-5w3m5jisiu] {
    display: grid;
    flex: 0 0 auto;
    gap: 0.3rem;
    text-align: end;
}

.room-price strong[b-5w3m5jisiu] {
    color: var(--color-espresso);
    font-family: var(--font-display);
    font-size: clamp(1.5rem, 2.4vw, 2.2rem);
    font-weight: 380;
    line-height: 1;
    white-space: nowrap;
}

.room-card-featured .room-price strong[b-5w3m5jisiu] {
    color: var(--color-text-inverse);
}

.room-price span[b-5w3m5jisiu] {
    color: var(--color-text-muted);
    font-size: 0.72rem;
}

.room-card-featured .room-price span[b-5w3m5jisiu],
.room-card-featured .room-description[b-5w3m5jisiu],
.room-card-featured .room-amenities[b-5w3m5jisiu] {
    color: rgb(255 255 255 / 70%);
}

.room-description[b-5w3m5jisiu] {
    margin-block: var(--space-6);
    color: var(--color-text-muted);
    line-height: 1.75;
}

.room-amenities[b-5w3m5jisiu] {
    display: grid;
    gap: var(--space-3);
    margin: 0;
    padding: 0;
    color: var(--color-text);
    list-style: none;
}

.room-amenities li[b-5w3m5jisiu] {
    position: relative;
    padding-inline-start: 1.4rem;
}

.room-amenities li[b-5w3m5jisiu]::before {
    position: absolute;
    inset-block-start: 0.68em;
    inset-inline-start: 0;
    width: 0.45rem;
    height: 0.45rem;
    content: "";
    background: var(--color-gold);
    border-radius: 50%;
}

.hotel-services-section .section-title[b-5w3m5jisiu] {
    color: inherit;
}

.hotel-services-grid[b-5w3m5jisiu] {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: clamp(1.5rem, 3vw, 3rem);
    margin-block-start: clamp(3rem, 6vw, 5rem);
}

.hotel-services-grid article[b-5w3m5jisiu] {
    padding-block-start: var(--space-5);
    border-block-start: 1px solid rgb(255 255 255 / 18%);
}

.hotel-services-grid span[b-5w3m5jisiu] {
    color: var(--color-gold);
    font-size: 0.72rem;
    font-weight: 700;
    letter-spacing: 0.16em;
}

.hotel-services-grid h3[b-5w3m5jisiu] {
    margin-block: var(--space-6) var(--space-3);
    font-family: var(--font-display);
    font-size: clamp(1.2rem, 1.8vw, 1.65rem);
    font-weight: 360;
}

.hotel-services-grid p[b-5w3m5jisiu] {
    margin: 0;
    color: rgb(255 255 255 / 66%);
    line-height: 1.7;
}

.hotel-booking-panel[b-5w3m5jisiu] {
    display: grid;
    grid-template-columns: minmax(0, 1.15fr) minmax(18rem, 0.85fr);
    gap: clamp(2.5rem, 7vw, 7rem);
    align-items: center;
}

.hotel-booking-actions[b-5w3m5jisiu] {
    display: grid;
    justify-items: start;
    gap: var(--space-5);
}

.hotel-booking-phone[b-5w3m5jisiu] {
    color: var(--color-espresso);
    font-family: var(--font-display);
    font-size: clamp(1.5rem, 3vw, 2.35rem);
    text-decoration: none;
}

.hotel-booking-phone:hover[b-5w3m5jisiu] {
    color: var(--color-bronze);
}

.hotel-booking-actions p[b-5w3m5jisiu] {
    max-width: 34rem;
    margin: 0;
    color: var(--color-text-muted);
    font-size: 0.9rem;
}

@media (max-width: 64rem) {
    .hotel-services-grid[b-5w3m5jisiu] {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 52rem) {
    .room-grid[b-5w3m5jisiu],
    .hotel-booking-panel[b-5w3m5jisiu] {
        grid-template-columns: 1fr;
    }

    .hotel-gallery[b-5w3m5jisiu] {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        grid-template-rows: 22rem repeat(2, 14rem);
    }

    .hotel-gallery-main[b-5w3m5jisiu] {
        grid-column: span 2;
        grid-row: auto;
    }
}

@media (max-width: 36rem) {
    .hotel-stats > div[b-5w3m5jisiu] {
        padding-inline: 0.7rem;
    }

    .hotel-stats strong[b-5w3m5jisiu] {
        font-size: clamp(1.8rem, 10vw, 2.8rem);
    }

    .hotel-stats span[b-5w3m5jisiu] {
        font-size: 0.62rem;
        letter-spacing: 0.08em;
    }

    .hotel-gallery[b-5w3m5jisiu] {
        grid-template-rows: 19rem 11rem 11rem;
        gap: 0.5rem;
    }

    .room-card-head[b-5w3m5jisiu] {
        display: grid;
    }

    .room-price[b-5w3m5jisiu] {
        text-align: start;
    }

    .hotel-services-grid[b-5w3m5jisiu] {
        grid-template-columns: 1fr;
    }
}
/* /Components/Pages/Public/Locations.razor.rz.scp.css */
.location-photo[b-0j496t7z7q] {
    margin-block-end: clamp(2rem, 5vw, 5rem);
}

.location-photo img[b-0j496t7z7q] {
    display: block;
    width: 100%;
    max-height: 34rem;
    object-fit: cover;
    object-position: 50% center;
    border-radius: var(--radius-media);
}
/* /Components/Pages/Public/Menu.razor.rz.scp.css */
.menu-photo-strip[b-wkj6tjkwg3] {
    display: grid;
    grid-template-columns: 1.4fr repeat(4, 1fr);
    gap: 0.75rem;
    margin-block-end: var(--space-12);
}

.menu-photo-strip img[b-wkj6tjkwg3] {
    width: 100%;
    height: clamp(10rem, 18vw, 17rem);
    object-fit: cover;
    border-radius: var(--radius-control);
}

.menu-photo-strip img:first-child[b-wkj6tjkwg3] {
    border-radius: var(--radius-media) var(--radius-control) var(--radius-control) var(--radius-media);
}

@media (max-width: 52rem) {
    .menu-photo-strip[b-wkj6tjkwg3] {
        grid-template-columns: repeat(2, 1fr);
    }

    .menu-photo-strip img:first-child[b-wkj6tjkwg3] {
        grid-column: span 2;
    }
}
/* /Components/Public/PublicFooter.razor.rz.scp.css */
.public-footer[b-67wzuk503l] {
    position: relative;
    z-index: 10;
    overflow: clip;
    color: var(--color-text-inverse);
    background:
        var(--grain),
        var(--color-espresso-deep);
}

/* --- Big booking CTA --------------------------------------------------- */

.footer-cta a[b-67wzuk503l] {
    display: flex;
    flex-wrap: wrap;
    gap: 1rem clamp(1.5rem, 4vw, 3.5rem);
    align-items: baseline;
    width: min(calc(100% - clamp(2rem, 6vw, 5rem)), var(--container-wide));
    margin-inline: auto;
    padding-block: clamp(3rem, 6vw, 5.5rem);
    color: inherit;
    text-decoration: none;
    border-block-end: 1px solid rgb(247 241 231 / 14%);
}

.footer-cta-kicker[b-67wzuk503l] {
    font-size: 0.72rem;
    font-weight: 700;
    letter-spacing: 0.28em;
    text-transform: uppercase;
    opacity: 0.55;
}

.footer-cta-title[b-67wzuk503l] {
    font-family: var(--font-display);
    font-size: clamp(1.9rem, 5vw, 4.2rem);
    font-weight: 280;
    line-height: 1.05;
    transition: color 220ms ease;
}

.footer-cta-arrow[b-67wzuk503l] {
    font-size: clamp(1.5rem, 3vw, 2.6rem);
    transition: transform 260ms cubic-bezier(0.33, 1, 0.68, 1);
}

.footer-cta a:hover .footer-cta-title[b-67wzuk503l] {
    color: var(--color-gold);
}

.footer-cta a:hover .footer-cta-arrow[b-67wzuk503l] {
    transform: translateX(0.7rem);
}

/* --- Columns ------------------------------------------------------------ */

.footer-inner[b-67wzuk503l] {
    display: grid;
    grid-template-columns: minmax(16rem, 1.3fr) repeat(2, minmax(11rem, 1fr));
    gap: clamp(2rem, 5vw, 5rem);
    width: min(calc(100% - clamp(2rem, 6vw, 5rem)), var(--container-wide));
    margin-inline: auto;
    padding-block: clamp(2.75rem, 5vw, 4.5rem);
}

.footer-brand p[b-67wzuk503l] {
    max-width: 26rem;
    margin: var(--space-4) 0 0;
    font-size: 0.95rem;
    line-height: 1.7;
    opacity: 0.68;
}

.footer-logo-line[b-67wzuk503l] {
    display: flex;
    gap: var(--space-4);
    align-items: center;
}

.footer-logo-line img[b-67wzuk503l] {
    border-radius: 50%;
}

.footer-mark[b-67wzuk503l] {
    font-family: var(--font-display);
    font-size: 1.3rem;
    font-weight: 320;
    letter-spacing: 0.34em;
    text-transform: uppercase;
}

.footer-col h2[b-67wzuk503l] {
    margin: 0 0 var(--space-4);
    font-size: 0.7rem;
    font-weight: 700;
    letter-spacing: 0.28em;
    text-transform: uppercase;
    opacity: 0.55;
}

.footer-col address[b-67wzuk503l] {
    display: grid;
    gap: 0.4rem;
    font-style: normal;
}

.footer-col a[b-67wzuk503l] {
    inline-size: fit-content;
    color: inherit;
    font-weight: 600;
    text-decoration: none;
}

.footer-col a:hover[b-67wzuk503l] {
    text-decoration: underline;
    text-underline-offset: 0.25rem;
}

.footer-col p[b-67wzuk503l] {
    margin: 0;
    opacity: 0.8;
}

.footer-col address span[b-67wzuk503l] {
    font-size: 0.92rem;
    opacity: 0.66;
}

.social-links[b-67wzuk503l] {
    display: flex;
    gap: var(--space-6);
    margin-block-start: var(--space-4);
}

/* --- Giant wordmark ------------------------------------------------------ */

.footer-wordmark[b-67wzuk503l] {
    margin-block-start: clamp(1rem, 3vw, 2.5rem);
    font-family: var(--font-display);
    font-size: clamp(4.5rem, 17vw, 16rem);
    font-weight: 250;
    line-height: 0.8;
    letter-spacing: 0.12em;
    text-align: center;
    text-transform: uppercase;
    white-space: nowrap;
    color: transparent;
    -webkit-text-stroke: 1px rgb(247 241 231 / 22%);
    user-select: none;
    transform: translateY(0.14em);
}

/* --- Bottom bar ----------------------------------------------------------- */

.footer-bottom[b-67wzuk503l] {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-2) var(--space-8);
    justify-content: space-between;
    width: min(calc(100% - clamp(2rem, 6vw, 5rem)), var(--container-wide));
    margin-inline: auto;
    padding-block: var(--space-6);
    font-size: 0.78rem;
    letter-spacing: 0.06em;
    border-block-start: 1px solid rgb(247 241 231 / 12%);
    opacity: 0.6;
}

@media (max-width: 52rem) {
    .footer-inner[b-67wzuk503l] {
        grid-template-columns: 1fr;
    }
}
/* /Components/Public/PublicHeader.razor.rz.scp.css */
/* Fixed header: transparent over the dark inner-page heroes, ink over the
   light home hero, solid paper after scroll, slides away scrolling down
   (classes added by public-motion.js). */

.public-header[b-e9hqsjezs6] {
    position: fixed;
    inset-block-start: 0;
    inset-inline: 0;
    z-index: 1000;
    color: var(--color-text-inverse);
    transition: transform 420ms cubic-bezier(0.33, 1, 0.68, 1);
}

.public-header[b-e9hqsjezs6]::before {
    position: absolute;
    inset: 0;
    z-index: -1;
    content: "";
    background: linear-gradient(to bottom, rgb(28 20 19 / 52%), transparent);
    opacity: 1;
    transition: opacity 260ms ease;
}

/* The home hero sits on ivory, so the un-scrolled header must read as ink. */
.public-shell:has(.home-hero) .public-header:not(.is-scrolled):not(.menu-open)[b-e9hqsjezs6] {
    color: var(--color-text-primary);
}

.public-shell:has(.home-hero) .public-header:not(.is-scrolled):not(.menu-open)[b-e9hqsjezs6]::before {
    opacity: 0;
}

.public-header[b-e9hqsjezs6]::after {
    position: absolute;
    inset: 0;
    z-index: -1;
    content: "";
    background: var(--color-canvas);
    border-block-end: 1px solid var(--color-border);
    opacity: 0;
    transition: opacity 260ms ease;
}

.public-header.is-scrolled[b-e9hqsjezs6] {
    color: var(--color-text-primary);
}

.public-header.is-scrolled[b-e9hqsjezs6]::before {
    opacity: 0;
}

.public-header.is-scrolled[b-e9hqsjezs6]::after {
    opacity: 1;
}

.public-header.is-hidden[b-e9hqsjezs6] {
    transform: translateY(-102%);
}

.public-header.menu-open[b-e9hqsjezs6] {
    color: var(--color-text-inverse);
}

.public-header.menu-open[b-e9hqsjezs6]::before,
.public-header.menu-open[b-e9hqsjezs6]::after {
    opacity: 0;
}

.header-bar[b-e9hqsjezs6] {
    position: relative;
    z-index: 2;
    display: flex;
    align-items: center;
    justify-content: space-between;
    block-size: var(--header-height);
    padding-inline: clamp(1rem, 3vw, 2.5rem);
}

/* --- Burger ---------------------------------------------------------- */

.menu-toggle[b-e9hqsjezs6] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    inline-size: 3.1rem;
    block-size: 3.1rem;
    padding: 0;
    color: inherit;
    cursor: pointer;
    background: transparent;
    border: 1px solid color-mix(in srgb, currentColor 38%, transparent);
    border-radius: 50%;
    transition: border-color 200ms ease, background-color 200ms ease;
}

.menu-toggle:hover[b-e9hqsjezs6] {
    border-color: currentColor;
}

.menu-toggle-icon[b-e9hqsjezs6] {
    position: relative;
    display: block;
    inline-size: 1.15rem;
    block-size: 0.7rem;
}

.menu-toggle-icon span[b-e9hqsjezs6] {
    position: absolute;
    inset-inline: 0;
    block-size: 1.5px;
    background: currentColor;
    transition: transform 300ms ease, inset-block-start 300ms ease;
}

.menu-toggle-icon span:first-child[b-e9hqsjezs6] {
    inset-block-start: 0;
}

.menu-toggle-icon span:last-child[b-e9hqsjezs6] {
    inset-block-start: calc(100% - 1.5px);
}

.menu-open .menu-toggle-icon span:first-child[b-e9hqsjezs6] {
    inset-block-start: 50%;
    transform: rotate(45deg);
}

.menu-open .menu-toggle-icon span:last-child[b-e9hqsjezs6] {
    inset-block-start: 50%;
    transform: rotate(-45deg);
}

/* --- Brand (centered) ------------------------------------------------- */

.brand[b-e9hqsjezs6] {
    position: absolute;
    inset-inline-start: 50%;
    display: grid;
    justify-items: center;
    gap: 0.15rem;
    color: inherit;
    text-align: center;
    text-decoration: none;
    transform: translateX(-50%);
}

.brand-mark[b-e9hqsjezs6] {
    font-family: var(--font-display);
    font-size: clamp(1.05rem, 2vw, 1.4rem);
    font-weight: 340;
    letter-spacing: 0.42em;
    text-indent: 0.42em;
    text-transform: uppercase;
    line-height: 1;
}

.brand-note[b-e9hqsjezs6] {
    font-size: 0.56rem;
    font-weight: 600;
    letter-spacing: 0.34em;
    text-indent: 0.34em;
    text-transform: uppercase;
    opacity: 0.62;
}

/* --- Right side ------------------------------------------------------- */

.header-side[b-e9hqsjezs6] {
    display: flex;
    align-items: center;
    gap: clamp(0.75rem, 1.6vw, 1.4rem);
}

.language-switcher[b-e9hqsjezs6] {
    display: inline-flex;
    align-items: center;
    gap: 0.45rem;
    font-size: 0.74rem;
    font-weight: 700;
    letter-spacing: 0.14em;
}

.language-switcher span[b-e9hqsjezs6] {
    opacity: 0.4;
}

.language-switcher a[b-e9hqsjezs6] {
    color: inherit;
    opacity: 0.55;
    text-decoration: none;
    transition: opacity 180ms ease;
}

.language-switcher a:hover[b-e9hqsjezs6],
.language-switcher a.is-active[b-e9hqsjezs6] {
    opacity: 1;
}

.phone-button[b-e9hqsjezs6] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    inline-size: 3.1rem;
    block-size: 3.1rem;
    color: inherit;
    border: 1px solid color-mix(in srgb, currentColor 38%, transparent);
    border-radius: 50%;
    transition: border-color 200ms ease;
}

.phone-button:hover[b-e9hqsjezs6] {
    border-color: currentColor;
}

.header-cta[b-e9hqsjezs6] {
    border: 1px solid transparent;
}

.public-header:not(.is-scrolled) .header-cta[b-e9hqsjezs6] {
    color: inherit;
    background: transparent;
    border-color: color-mix(in srgb, currentColor 38%, transparent);
}

.public-header:not(.is-scrolled) .header-cta:hover[b-e9hqsjezs6] {
    border-color: currentColor;
}

/* --- Fullscreen overlay navigation ------------------------------------ */

.public-navigation[b-e9hqsjezs6] {
    position: fixed;
    inset: 0;
    z-index: 1;
    display: grid;
    visibility: hidden;
    overflow-y: auto;
    color: var(--color-text-inverse);
    background:
        var(--grain),
        radial-gradient(120% 90% at 15% 0%, #4b3a33 0%, var(--color-espresso-deep) 58%);
    opacity: 0;
    transition: opacity 460ms ease, visibility 0s linear 460ms;
}

.public-navigation.is-open[b-e9hqsjezs6] {
    visibility: visible;
    opacity: 1;
    transition-delay: 0s;
}

.nav-inner[b-e9hqsjezs6] {
    display: grid;
    grid-template-columns: minmax(0, 1.35fr) minmax(16rem, 0.65fr);
    gap: clamp(2rem, 6vw, 6rem);
    align-content: center;
    width: min(calc(100% - clamp(2rem, 6vw, 5rem)), var(--container-wide));
    margin-inline: auto;
    padding-block: calc(var(--header-height) + 2rem) 3rem;
}

.nav-links[b-e9hqsjezs6] {
    display: flex;
    flex-direction: column;
}

.nav-links a[b-e9hqsjezs6] {
    --nav-i: 0;

    display: flex;
    gap: 1.4rem;
    align-items: baseline;
    padding-block: clamp(0.5rem, 1.2vw, 0.9rem);
    color: inherit;
    text-decoration: none;
    border-block-end: 1px solid rgb(247 241 231 / 10%);
    opacity: 0;
    transform: translateY(1.6rem);
    transition: opacity 500ms ease, transform 500ms cubic-bezier(0.33, 1, 0.68, 1), padding-inline-start 300ms ease;
}

.public-navigation.is-open .nav-links a[b-e9hqsjezs6] {
    opacity: 1;
    transform: translateY(0);
    transition-delay: calc(120ms + var(--nav-i) * 55ms), calc(120ms + var(--nav-i) * 55ms), 0s;
}

.nav-links a:hover[b-e9hqsjezs6],
.nav-links a[aria-current="page"][b-e9hqsjezs6] {
    padding-inline-start: 0.9rem;
}

.nav-num[b-e9hqsjezs6] {
    font-size: 0.7rem;
    font-weight: 700;
    letter-spacing: 0.2em;
    opacity: 0.45;
}

.nav-label[b-e9hqsjezs6] {
    font-family: var(--font-display);
    font-size: clamp(1.65rem, 4.2vw, 3.1rem);
    font-weight: 300;
    line-height: 1.15;
}

.nav-links a[aria-current="page"] .nav-label[b-e9hqsjezs6] {
    color: var(--color-gold);
}

.nav-aside[b-e9hqsjezs6] {
    display: flex;
    flex-direction: column;
    gap: clamp(1.25rem, 2.5vw, 2rem);
    justify-content: center;
    opacity: 0;
    transform: translateY(1.6rem);
    transition: opacity 500ms ease 420ms, transform 500ms cubic-bezier(0.33, 1, 0.68, 1) 420ms;
}

.public-navigation.is-open .nav-aside[b-e9hqsjezs6] {
    opacity: 1;
    transform: translateY(0);
}

.nav-aside-block[b-e9hqsjezs6] {
    display: grid;
    gap: 0.3rem;
}

.nav-aside-title[b-e9hqsjezs6] {
    margin-block-end: 0.35rem;
    font-size: 0.68rem;
    font-weight: 700;
    letter-spacing: 0.28em;
    text-transform: uppercase;
    opacity: 0.5;
}

.nav-aside-block a[b-e9hqsjezs6] {
    inline-size: fit-content;
    color: inherit;
    font-size: 1.02rem;
    font-weight: 600;
    text-decoration: none;
}

.nav-aside-block a:hover[b-e9hqsjezs6] {
    text-decoration: underline;
    text-underline-offset: 0.25rem;
}

.nav-aside-note[b-e9hqsjezs6] {
    font-size: 0.92rem;
    opacity: 0.66;
}

.nav-aside-links[b-e9hqsjezs6] {
    gap: 0.45rem;
}

.nav-cta[b-e9hqsjezs6] {
    inline-size: fit-content;
}

/* --- Responsive -------------------------------------------------------- */

@media (max-width: 78rem) {
    .header-cta[b-e9hqsjezs6] {
        display: none;
    }
}

@media (max-width: 64rem) {

    .nav-inner[b-e9hqsjezs6] {
        grid-template-columns: 1fr;
        align-content: start;
    }
}

.nav-lang[b-e9hqsjezs6] {
    font-size: 0.9rem;
}

@media (max-width: 40rem) {
    .header-bar .language-switcher[b-e9hqsjezs6] {
        display: none;
    }

    .brand-note[b-e9hqsjezs6] {
        display: none;
    }

    .public-navigation .nav-label[b-e9hqsjezs6] {
        font-size: clamp(1.5rem, 7.5vw, 2rem);
    }
}
/* /Components/Public/PublicPageHero.razor.rz.scp.css */
/* Dark mini-hero for inner public pages; sits under the fixed transparent
   header, so it owns the top spacing. */

.page-hero[b-l4n7ocro46] {
    position: relative;
    overflow: clip;
    padding-block: calc(var(--header-height) + clamp(3.5rem, 8vw, 7rem)) clamp(3.5rem, 7vw, 6rem);
    color: var(--color-text-inverse);
    background:
        var(--grain),
        radial-gradient(130% 100% at 20% 0%, #4b3a33 0%, var(--color-espresso-deep) 62%);
}

.page-hero[b-l4n7ocro46]::after {
    position: absolute;
    inset-block-end: 0;
    inset-inline: 0;
    block-size: 1px;
    content: "";
    background: rgb(247 241 231 / 12%);
}

.page-hero-inner[b-l4n7ocro46] {
    position: relative;
    z-index: 1;
}

.page-hero .eyebrow[b-l4n7ocro46] {
    color: color-mix(in srgb, var(--color-text-inverse) 58%, transparent);
}

.page-hero .display-title[b-l4n7ocro46] {
    max-width: 18ch;
    color: inherit;
    font-size: clamp(2.2rem, 5vw, 4.6rem);
}

.page-hero .lead[b-l4n7ocro46] {
    color: color-mix(in srgb, var(--color-text-inverse) 72%, transparent);
}

@media (max-width: 36rem) {
    .page-hero .display-title[b-l4n7ocro46] {
        font-size: clamp(1.75rem, 8.5vw, 2.4rem);
    }
}

/* Buttons live in the caller's `Actions` fragment, so they carry the *page's*
   scope attribute, not this component's — their dark-hero styling has to be
   global. See `.page-hero` button rules in css/design-system.css. */
