:root {
    --lbm-charcoal: #151311;
    --lbm-charcoal-deep: #0c0b0a;
    --lbm-panel: #211c18;

    --lbm-bronze: #b27a35;
    --lbm-bronze-light: #d0a15d;
    --lbm-ember: #b44726;

    --lbm-cream: #f4ede1;
    --lbm-bone: #e5d8c5;
    --lbm-white: #fffdf8;

    --lbm-text: #302a25;
    --lbm-muted: #756b62;
    --lbm-dark-muted: #b8aa9c;

    --lbm-line: rgba(178, 122, 53, 0.24);
    --lbm-light-line: rgba(255, 255, 255, 0.12);

    --lbm-max: 1500px;

    --lbm-serif:
    "Noto Serif",
    "Liberation Serif",
    Georgia,
    serif;

    --lbm-sans:
    "Noto Sans",
    "Liberation Sans",
    Arial,
    sans-serif;
}


/* ---------------------------------------------------------
 * Foundation
 * --------------------------------------------------------- */

* {
    box-sizing: border-box;
}

html {
    min-height: 100%;
    scroll-behavior: smooth;
}

body {
    margin: 0;
    min-height: 100vh;

    background: var(--lbm-charcoal-deep);
    color: var(--lbm-text);

    font-family: var(--lbm-sans);
    line-height: 1.6;
}

img {
    display: block;
    max-width: 100%;
}

button,
input,
select,
textarea {
    font: inherit;
}

a {
    color: inherit;
}


/* ---------------------------------------------------------
 * Header
 * --------------------------------------------------------- */

.lbm-header {
    position: sticky;
    top: 0;
    z-index: 1000;

    background: rgba(12, 11, 10, 0.97);

    border-bottom: 1px solid var(--lbm-line);

    backdrop-filter: blur(12px);
}

.lbm-brand {
    display: flex;
    align-items: center;
    justify-content: center;

    padding: 0.75rem 2rem 0.6rem;

    text-decoration: none;
}

.lbm-brand img {
    width: min(390px, 42vw);
    height: auto;
}

.lbm-nav {
    display: flex;
    align-items: stretch;
    justify-content: center;

    min-height: 50px;

    border-top: 1px solid rgba(255, 255, 255, 0.06);
}

.lbm-nav a {
    position: relative;

    display: flex;
    align-items: center;
    justify-content: center;

    padding: 0.7rem 1.15rem;

    color: rgba(255, 253, 248, 0.74);

    font-size: 0.68rem;
    font-weight: 700;
    letter-spacing: 0.11em;

    text-decoration: none;
    text-transform: uppercase;

    transition:
    color 160ms ease,
    background-color 160ms ease;
}

.lbm-nav a:hover,
.lbm-nav a:focus-visible {
    color: var(--lbm-bronze-light);

    background: rgba(178, 122, 53, 0.07);
}

.lbm-nav a:focus-visible {
    outline: 2px solid var(--lbm-bronze-light);
    outline-offset: -2px;
}

.lbm-nav a.active {
    color: var(--lbm-white);
}

.lbm-nav a.active::after {
    content: "";

    position: absolute;

    left: 1rem;
    right: 1rem;
    bottom: 0;

    height: 2px;

    background: var(--lbm-bronze);
}


/* ---------------------------------------------------------
 * Hero
 * --------------------------------------------------------- */

.lbm-hero {
    position: relative;

    min-height: 760px;

    display: flex;
    align-items: center;

    overflow: hidden;

    background: var(--lbm-charcoal);
}

.lbm-hero-image {
    position: absolute;
    inset: 0;

    width: 100%;
    height: 100%;

    object-fit: cover;
    object-position: center;

    z-index: 0;
}

.lbm-hero::after {
    content: "";

    position: absolute;
    inset: 0;

    z-index: 1;

    background:
    linear-gradient(
        90deg,
        rgba(10, 8, 7, 0.94) 0%,
                    rgba(10, 8, 7, 0.80) 28%,
                    rgba(10, 8, 7, 0.40) 48%,
                    rgba(10, 8, 7, 0.08) 70%
    );

    pointer-events: none;
}

.lbm-hero-content {
    position: relative;
    z-index: 2;

    width: min(680px, 46%);

    margin-left: max(4rem, calc((100vw - var(--lbm-max)) / 2));

    padding: 5rem 0;
}

.lbm-eyebrow,
.lbm-section-kicker {
    margin: 0 0 0.8rem;

    color: var(--lbm-bronze-light);

    font-size: 0.7rem;
    font-weight: 700;
    letter-spacing: 0.2em;

    text-transform: uppercase;
}

.lbm-hero h1 {
    margin: 0;

    color: var(--lbm-white);

    font-family: var(--lbm-serif);
    font-size: clamp(3.6rem, 5.7vw, 6.5rem);
    font-weight: 500;
    line-height: 0.98;
    letter-spacing: -0.035em;
}

.lbm-hero h1 span {
    color: var(--lbm-bronze-light);
}

.lbm-hero-copy {
    max-width: 560px;

    margin: 1.8rem 0 0;

    color: rgba(255, 253, 248, 0.80);

    font-family: var(--lbm-serif);
    font-size: 1.15rem;
    line-height: 1.7;
}


/* ---------------------------------------------------------
 * Buttons
 * --------------------------------------------------------- */

.lbm-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;

    min-height: 54px;

    margin-top: 2rem;
    padding: 0.85rem 1.8rem;

    border: 1px solid var(--lbm-bronze);

    background: var(--lbm-bronze);
    color: var(--lbm-white);

    font-family: var(--lbm-serif);
    font-size: 0.95rem;
    font-weight: 600;

    cursor: pointer;

    transition:
    background-color 160ms ease,
    border-color 160ms ease,
    color 160ms ease,
    transform 160ms ease;
}

.lbm-button::after {
    content: "→";

    margin-left: 0.8rem;
}

.lbm-button:hover,
.lbm-button:focus-visible {
    border-color: var(--lbm-bronze-light);

    background: var(--lbm-bronze-light);
    color: var(--lbm-charcoal-deep);

    transform: translateY(-1px);
}

.lbm-button:focus-visible {
    outline: 3px solid rgba(208, 161, 93, 0.28);
    outline-offset: 3px;
}

.lbm-button-outline {
    flex: 0 0 auto;

    margin: 0;

    border-color: var(--lbm-bronze);

    background: transparent;
    color: var(--lbm-bronze-light);
}

.lbm-button-outline:hover,
.lbm-button-outline:focus-visible {
    background: var(--lbm-bronze);
    color: var(--lbm-white);
}


/* ---------------------------------------------------------
 * Experience
 * --------------------------------------------------------- */

.lbm-experience {
    padding: 7rem 4rem 8rem;

    background: var(--lbm-cream);
}

.lbm-section-intro {
    width: min(100%, 1050px);

    margin: 0 auto;

    text-align: center;
}

.lbm-section-intro h2 {
    margin: 0;

    color: var(--lbm-charcoal);

    font-family: var(--lbm-serif);
    font-size: clamp(2.7rem, 4.3vw, 4.6rem);
    font-weight: 500;
    line-height: 1.08;
    letter-spacing: -0.025em;
}

.lbm-section-intro > p:last-child {
    max-width: 760px;

    margin: 1.6rem auto 0;

    color: var(--lbm-muted);

    font-size: 1rem;
    line-height: 1.8;
}


/* Dining room / wine bar */

.lbm-experience-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));

    width: min(100%, 1100px);

    margin: 5rem auto 0;

    border-top: 1px solid rgba(48, 42, 37, 0.15);
    border-bottom: 1px solid rgba(48, 42, 37, 0.15);
}

.lbm-experience-grid article {
    min-width: 0;

    padding: 3rem 3.5rem;
}

.lbm-experience-grid article + article {
    border-left: 1px solid rgba(48, 42, 37, 0.15);
}

.lbm-experience-grid h3 {
    margin: 0;

    color: var(--lbm-charcoal);

    font-family: var(--lbm-serif);
    font-size: 1.75rem;
    font-weight: 500;
    line-height: 1.2;
}

.lbm-experience-grid article > p:last-child {
    margin: 1rem 0 0;

    color: var(--lbm-muted);

    font-size: 0.95rem;
    line-height: 1.8;
}


/* ---------------------------------------------------------
 * Visit
 * --------------------------------------------------------- */

.lbm-visit {
    padding: 7rem 4rem 8rem;

    background: var(--lbm-charcoal);
    color: var(--lbm-white);
}

.lbm-visit-intro {
    width: min(100%, 1100px);

    margin: 0 auto 4.5rem;

    text-align: center;
}

.lbm-visit-intro h2 {
    margin: 0;

    color: var(--lbm-white);

    font-family: var(--lbm-serif);
    font-size: clamp(2.5rem, 4vw, 4rem);
    font-weight: 500;
    line-height: 1.1;
}

.lbm-visit-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));

    width: min(100%, 1180px);

    margin: 0 auto;

    border-top: 1px solid var(--lbm-light-line);
    border-bottom: 1px solid var(--lbm-light-line);
}

.lbm-visit-item {
    min-width: 0;

    padding: 2.5rem 3rem;

    text-align: center;
}

.lbm-visit-item + .lbm-visit-item {
    border-left: 1px solid var(--lbm-light-line);
}

.lbm-visit-item h3 {
    margin: 0;

    color: var(--lbm-bronze-light);

    font-family: var(--lbm-serif);
    font-size: 1.35rem;
    font-weight: 500;
}

.lbm-visit-item > p {
    margin: 0.8rem 0 0;

    color: rgba(255, 253, 248, 0.82);

    font-size: 0.92rem;
    line-height: 1.7;
}

.lbm-detail-note {
    color: var(--lbm-dark-muted) !important;

    font-size: 0.76rem !important;
}


/* Hours */

.lbm-hours {
    margin: 0.8rem 0 0;
}

.lbm-hours div {
    display: flex;
    justify-content: space-between;

    gap: 1rem;

    padding: 0.35rem 0;

    color: rgba(255, 253, 248, 0.82);

    font-size: 0.82rem;
}

.lbm-hours dt,
.lbm-hours dd {
    margin: 0;
}

.lbm-hours dt {
    text-align: left;
}

.lbm-hours dd {
    color: var(--lbm-dark-muted);

    text-align: right;
}


/* ---------------------------------------------------------
 * Employment
 * --------------------------------------------------------- */

.lbm-employment {
    display: flex;
    align-items: center;
    justify-content: space-between;

    gap: 5rem;

    padding: 5rem max(4rem, calc((100vw - 1180px) / 2));

    background: var(--lbm-white);
}

.lbm-employment > div {
    max-width: 760px;
}

.lbm-employment h2 {
    margin: 0;

    color: var(--lbm-charcoal);

    font-family: var(--lbm-serif);
    font-size: clamp(2.2rem, 3.4vw, 3.5rem);
    font-weight: 500;
    line-height: 1.1;
}

.lbm-employment > div > p:last-child {
    max-width: 680px;

    margin: 1.2rem 0 0;

    color: var(--lbm-muted);

    font-size: 0.95rem;
    line-height: 1.8;
}


/* ---------------------------------------------------------
 * Footer
 * --------------------------------------------------------- */

.lbm-footer {
    padding: 2rem 4rem 6.5rem;

    border-top: 1px solid var(--lbm-line);

    background: var(--lbm-charcoal-deep);
    color: rgba(255, 253, 248, 0.56);

    text-align: center;

    font-size: 0.7rem;
    line-height: 1.7;
}

.lbm-footer p {
    margin: 0;
}

.lbm-footer p + p {
    margin-top: 0.35rem;
}


/* ---------------------------------------------------------
 * EFL return
 * --------------------------------------------------------- */

.efl-return {
    position: fixed;

    right: 1.4rem;
    bottom: 1.4rem;

    z-index: 1200;

    display: inline-flex;
    align-items: center;

    gap: 0.55rem;

    min-height: 44px;

    padding: 0.7rem 1rem;

    border: 1px solid rgba(208, 161, 93, 0.30);
    border-radius: 999px;

    background: rgba(12, 11, 10, 0.95);
    color: var(--lbm-white);

    box-shadow: 0 8px 28px rgba(0, 0, 0, 0.28);

    font-size: 0.68rem;
    font-weight: 700;
    letter-spacing: 0.05em;

    text-decoration: none;

    backdrop-filter: blur(10px);

    transition:
    background-color 160ms ease,
    color 160ms ease,
    transform 160ms ease;
}

.efl-return:hover,
.efl-return:focus-visible {
    background: var(--lbm-bronze);
    color: var(--lbm-white);

    transform: translateY(-2px);
}

.efl-return:focus-visible {
    outline: 3px solid rgba(208, 161, 93, 0.30);
    outline-offset: 3px;
}


/* ---------------------------------------------------------
 * Large displays
 * --------------------------------------------------------- */

@media (min-width: 1600px) {
    .lbm-brand img {
        width: 430px;
    }

    .lbm-nav a {
        padding-inline: 1.35rem;

        font-size: 0.72rem;
    }

    .lbm-hero {
        min-height: 820px;
    }

    .lbm-hero-content {
        width: min(720px, 44%);
    }

    .lbm-hero-copy {
        font-size: 1.22rem;
    }

    .lbm-experience {
        padding-block: 8rem 9rem;
    }

    .lbm-visit {
        padding-block: 8rem 9rem;
    }
}


/* ---------------------------------------------------------
 * Smaller desktop / tablet
 * --------------------------------------------------------- */

@media (max-width: 1150px) {
    .lbm-brand img {
        width: min(360px, 58vw);
    }

    .lbm-nav {
        display: grid;
        grid-template-columns: repeat(4, minmax(0, 1fr));
    }

    .lbm-nav a {
        min-width: 0;

        padding: 0.7rem 0.4rem;

        font-size: 0.64rem;

        text-align: center;
    }

    .lbm-hero {
        min-height: 700px;
    }

    .lbm-hero-content {
        width: min(620px, 62%);

        margin-left: 2rem;
    }

    .lbm-experience,
    .lbm-visit {
        padding-inline: 2rem;
    }

    .lbm-employment {
        padding-inline: 2rem;
    }
}


/* ---------------------------------------------------------
 * Mobile
 * --------------------------------------------------------- */

@media (max-width: 700px) {
    .lbm-header {
        position: relative;
    }

    .lbm-brand {
        padding: 0.8rem 1rem 0.7rem;
    }

    .lbm-brand img {
        width: min(300px, 78vw);
    }

    .lbm-nav {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .lbm-nav a {
        min-height: 44px;

        padding: 0.65rem 0.35rem;

        font-size: 0.62rem;
        letter-spacing: 0.08em;
    }

    .lbm-hero {
        min-height: 720px;

        align-items: flex-end;
    }

    .lbm-hero-image {
        object-position: 62% center;
    }

    .lbm-hero::after {
        background:
        linear-gradient(
            180deg,
            rgba(10, 8, 7, 0.08) 0%,
                        rgba(10, 8, 7, 0.26) 28%,
                        rgba(10, 8, 7, 0.82) 60%,
                        rgba(10, 8, 7, 0.97) 100%
        );
    }

    .lbm-hero-content {
        width: 100%;

        margin: 0;

        padding: 12rem 1.4rem 3rem;
    }

    .lbm-eyebrow {
        font-size: 0.64rem;
    }

    .lbm-hero h1 {
        font-size: clamp(3rem, 14vw, 4.5rem);
    }

    .lbm-hero-copy {
        margin-top: 1.35rem;

        font-size: 1rem;
    }

    .lbm-reservation-demo {
        width: 100%;

        margin-top: 1.5rem;
    }


    /* Experience */

    .lbm-experience {
        padding: 4.5rem 1.4rem 5rem;
    }

    .lbm-section-intro {
        text-align: left;
    }

    .lbm-section-intro h2 {
        font-size: clamp(2.4rem, 11vw, 3.5rem);
    }

    .lbm-section-intro > p:last-child {
        margin-left: 0;
        margin-right: 0;
    }

    .lbm-experience-grid {
        grid-template-columns: 1fr;

        margin-top: 3rem;
    }

    .lbm-experience-grid article {
        padding: 2rem 0;
    }

    .lbm-experience-grid article + article {
        border-top: 1px solid rgba(48, 42, 37, 0.15);
        border-left: 0;
    }


    /* Visit */

    .lbm-visit {
        padding: 4.5rem 1.4rem 5rem;
    }

    .lbm-visit-intro {
        margin-bottom: 3rem;

        text-align: left;
    }

    .lbm-visit-intro h2 {
        font-size: clamp(2.3rem, 10vw, 3.3rem);
    }

    .lbm-visit-grid {
        grid-template-columns: 1fr;
    }

    .lbm-visit-item {
        padding: 2rem 0;

        text-align: left;
    }

    .lbm-visit-item + .lbm-visit-item {
        border-top: 1px solid var(--lbm-light-line);
        border-left: 0;
    }

    .lbm-hours div {
        max-width: 360px;
    }


    /* Employment */

    .lbm-employment {
        flex-direction: column;
        align-items: stretch;

        gap: 2rem;

        padding: 4.5rem 1.4rem 5rem;
    }

    .lbm-employment h2 {
        font-size: clamp(2.3rem, 10vw, 3.3rem);
    }

    .lbm-button-outline {
        width: 100%;
    }


    /* Footer */

    .lbm-footer {
        padding: 1.8rem 1.25rem 2.5rem;
    }


    /* Return to EFL */

    .efl-return {
        position: static;

        display: flex;

        width: fit-content;
        max-width: calc(100% - 2.5rem);

        margin: 1rem auto;

        font-size: 0.66rem;
    }
}

/* ---------------------------------------------------------
 * Our Story
 * --------------------------------------------------------- */

.lbm-story {
    background: var(--lbm-cream);
}


/* ---------------------------------------------------------
 * Story opening
 * --------------------------------------------------------- */

.lbm-story-opening {
    padding: 8rem 4rem 9rem;

    background: var(--lbm-cream);
}

.lbm-story-opening-inner {
    width: min(100%, 1080px);

    margin: 0 auto;

    text-align: center;
}

.lbm-story-opening h1 {
    margin: 0;

    color: var(--lbm-charcoal);

    font-family: var(--lbm-serif);
    font-size: clamp(3rem, 4.8vw, 5.2rem);
    font-weight: 500;
    line-height: 1.05;
    letter-spacing: -0.03em;
}

.lbm-story-opening h1 span {
    display: block;

    margin-top: 0.12em;

    color: var(--lbm-bronze);
}

.lbm-story-lead {
    max-width: 820px;

    margin: 2.5rem auto 0;

    color: var(--lbm-text);

    font-family: var(--lbm-serif);
    font-size: 1.3rem;
    line-height: 1.75;
}

.lbm-story-opening-inner > p:last-child {
    max-width: 780px;

    margin: 1.5rem auto 0;

    color: var(--lbm-muted);

    font-size: 1rem;
    line-height: 1.85;
}


/* ---------------------------------------------------------
 * Leña · Brasa · Memorias
 * --------------------------------------------------------- */

.lbm-name-story {
    padding: 8rem 4rem 9rem;

    background: var(--lbm-charcoal);
    color: var(--lbm-white);

    border-top: 1px solid var(--lbm-line);
    border-bottom: 1px solid var(--lbm-line);
}

.lbm-name-story-intro {
    width: min(100%, 1000px);

    margin: 0 auto;

    text-align: center;
}

.lbm-name-story-intro h2 {
    margin: 0;

    color: var(--lbm-white);

    font-family: var(--lbm-serif);
    font-size: clamp(2.8rem, 4.2vw, 4.5rem);
    font-weight: 500;
    line-height: 1.08;
    letter-spacing: -0.025em;
}


/* Three words */

.lbm-name-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));

    width: min(100%, 1180px);

    margin: 5rem auto 0;

    border-top: 1px solid var(--lbm-light-line);
    border-bottom: 1px solid var(--lbm-light-line);
}

.lbm-name-grid article {
    min-width: 0;

    padding: 3.5rem 3rem;

    text-align: center;
}

.lbm-name-grid article + article {
    border-left: 1px solid var(--lbm-light-line);
}

.lbm-name-word {
    display: block;

    color: var(--lbm-bronze-light);

    font-family: var(--lbm-serif);
    font-size: 2.8rem;
    font-weight: 500;
    line-height: 1;
}

.lbm-name-translation {
    margin: 0.9rem 0 0;

    color: rgba(255, 253, 248, 0.52);

    font-size: 0.64rem;
    font-weight: 700;
    letter-spacing: 0.18em;

    text-transform: uppercase;
}

.lbm-name-grid article > p:last-child {
    max-width: 300px;

    margin: 1.4rem auto 0;

    color: rgba(255, 253, 248, 0.72);

    font-size: 0.92rem;
    line-height: 1.8;
}


/* ---------------------------------------------------------
 * Food + wine philosophy
 * --------------------------------------------------------- */

.lbm-philosophy {
    background: var(--lbm-white);
}

.lbm-philosophy-block {
    display: grid;
    grid-template-columns:
    minmax(300px, 0.8fr)
    minmax(0, 1.2fr);

    gap: 7rem;

    width: min(100% - 8rem, 1180px);

    margin: 0 auto;
    padding: 8rem 0;
}

.lbm-philosophy-block + .lbm-philosophy-block {
    border-top: 1px solid rgba(48, 42, 37, 0.15);
}

.lbm-philosophy-heading h2 {
    margin: 0;

    color: var(--lbm-charcoal);

    font-family: var(--lbm-serif);
    font-size: clamp(2.4rem, 3.5vw, 3.8rem);
    font-weight: 500;
    line-height: 1.08;
    letter-spacing: -0.025em;
}

.lbm-philosophy-copy {
    align-self: center;
}

.lbm-philosophy-copy p {
    max-width: 650px;

    margin: 0;

    color: var(--lbm-muted);

    font-size: 1rem;
    line-height: 1.85;
}

.lbm-philosophy-copy p + p {
    margin-top: 1.35rem;
}


/* Wine reverses the composition */

.lbm-philosophy-wine {
    grid-template-columns:
    minmax(0, 1.2fr)
    minmax(300px, 0.8fr);
}

.lbm-philosophy-wine .lbm-philosophy-heading {
    grid-column: 2;
    grid-row: 1;

    text-align: right;
}

.lbm-philosophy-wine .lbm-philosophy-copy {
    grid-column: 1;
    grid-row: 1;
}

.lbm-philosophy-wine .lbm-philosophy-copy p {
    margin-left: auto;
}


/* ---------------------------------------------------------
 * Story closing statement
 * --------------------------------------------------------- */

.lbm-story-close {
    padding: 8rem 4rem 9rem;

    background:
    linear-gradient(
        135deg,
        var(--lbm-charcoal-deep) 0%,
                    var(--lbm-panel) 100%
    );

    text-align: center;
}

.lbm-story-close h2 {
    margin: 0;

    color: var(--lbm-white);

    font-family: var(--lbm-serif);
    font-size: clamp(3rem, 4.8vw, 5rem);
    font-weight: 500;
    line-height: 1.08;
    letter-spacing: -0.025em;
}

.lbm-story-close h2 br + * {
    color: inherit;
}


/* ---------------------------------------------------------
 * Our Story — large displays
 * --------------------------------------------------------- */

@media (min-width: 1600px) {
    .lbm-story-opening {
        padding-block: 9rem 10rem;
    }

    .lbm-story-opening-inner {
        width: min(100%, 1180px);
    }

    .lbm-name-story {
        padding-block: 9rem 10rem;
    }

    .lbm-name-grid {
        width: min(100%, 1320px);
    }

    .lbm-name-grid article {
        padding: 4rem 3.5rem;
    }

    .lbm-name-word {
        font-size: 3.1rem;
    }

    .lbm-philosophy-block {
        width: min(100% - 10rem, 1320px);

        gap: 8rem;

        padding-block: 9rem;
    }

    .lbm-story-close {
        padding-block: 9rem 10rem;
    }
}


/* ---------------------------------------------------------
 * Our Story — tablet
 * --------------------------------------------------------- */

@media (max-width: 900px) {
    .lbm-story-opening {
        padding: 6rem 2rem 7rem;
    }

    .lbm-name-story {
        padding: 6rem 2rem 7rem;
    }

    .lbm-name-grid article {
        padding: 2.5rem 1.5rem;
    }

    .lbm-name-word {
        font-size: 2.3rem;
    }

    .lbm-philosophy-block,
    .lbm-philosophy-wine {
        grid-template-columns:
        minmax(240px, 0.8fr)
        minmax(0, 1.2fr);

        gap: 3.5rem;

        width: min(100% - 4rem, 900px);

        padding-block: 6rem;
    }

    .lbm-philosophy-wine .lbm-philosophy-heading {
        grid-column: 1;
        grid-row: 1;

        text-align: left;
    }

    .lbm-philosophy-wine .lbm-philosophy-copy {
        grid-column: 2;
        grid-row: 1;
    }

    .lbm-philosophy-wine .lbm-philosophy-copy p {
        margin-left: 0;
    }

    .lbm-story-close {
        padding: 6rem 2rem 7rem;
    }
}


/* ---------------------------------------------------------
 * Our Story — mobile
 * --------------------------------------------------------- */

@media (max-width: 650px) {
    .lbm-story-opening {
        padding: 4.5rem 1.4rem 5rem;
    }

    .lbm-story-opening-inner {
        text-align: left;
    }

    .lbm-story-opening h1 {
        font-size: clamp(2.6rem, 12vw, 3.8rem);
    }

    .lbm-story-lead {
        margin-top: 1.8rem;

        font-size: 1.12rem;
    }

    .lbm-story-opening-inner > p:last-child {
        margin-left: 0;
        margin-right: 0;
    }


    /* Name */

    .lbm-name-story {
        padding: 4.5rem 1.4rem 5rem;
    }

    .lbm-name-story-intro {
        text-align: left;
    }

    .lbm-name-story-intro h2 {
        font-size: clamp(2.5rem, 11vw, 3.5rem);
    }

    .lbm-name-grid {
        grid-template-columns: 1fr;

        margin-top: 3rem;
    }

    .lbm-name-grid article {
        padding: 2.25rem 0;

        text-align: left;
    }

    .lbm-name-grid article + article {
        border-top: 1px solid var(--lbm-light-line);
        border-left: 0;
    }

    .lbm-name-word {
        font-size: 2.4rem;
    }

    .lbm-name-grid article > p:last-child {
        max-width: none;

        margin-left: 0;
        margin-right: 0;
    }


    /* Philosophy */

    .lbm-philosophy-block,
    .lbm-philosophy-wine {
        grid-template-columns: 1fr;

        gap: 2rem;

        width: min(100% - 2.8rem, 520px);

        padding-block: 4.5rem;
    }

    .lbm-philosophy-wine .lbm-philosophy-heading,
    .lbm-philosophy-wine .lbm-philosophy-copy {
        grid-column: 1;
        grid-row: auto;

        text-align: left;
    }

    .lbm-philosophy-heading h2 {
        font-size: clamp(2.3rem, 10vw, 3.3rem);
    }

    .lbm-philosophy-copy p {
        max-width: none;

        margin-left: 0;
        margin-right: 0;
    }


    /* Closing */

    .lbm-story-close {
        padding: 5rem 1.4rem 6rem;

        text-align: left;
    }

    .lbm-story-close h2 {
        font-size: clamp(2.6rem, 12vw, 3.8rem);
    }
}

/* ---------------------------------------------------------
 * Menus
 * --------------------------------------------------------- */

.lbm-menus {
    min-height: 100vh;

    background: var(--lbm-cream);
}


/* Menus introduction */

.lbm-menu-heading {
    padding: 2.75rem 4rem 2.25rem;

    background: var(--lbm-charcoal);

    text-align: center;
}

.lbm-menu-heading h1 {
    margin: 0;

    color: var(--lbm-white);

    font-family: var(--lbm-serif);
    font-size: clamp(3rem, 4.8vw, 5rem);
    font-weight: 500;
    line-height: 1.05;
    letter-spacing: -0.03em;
}

.lbm-menu-heading > p:last-child {
    margin: 0.6rem auto 0;

    color: var(--lbm-dark-muted);

    font-size: 1rem;
    line-height: 1.8;
}


/* ---------------------------------------------------------
 * Menu subnavigation
 * --------------------------------------------------------- */

.lbm-menu-nav {
    position: sticky;
    top: var(--lbm-header-height, 0px);

    z-index: 900;

    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));

    width: 100%;

    border-top: 1px solid var(--lbm-line);
    border-bottom: 1px solid var(--lbm-line);

    background: var(--lbm-charcoal-deep);
}

.lbm-menu-tab {
    position: relative;

    min-height: 58px;

    padding: 0.8rem 1rem;

    border: 0;
    border-right: 1px solid var(--lbm-light-line);

    background: transparent;
    color: rgba(255, 253, 248, 0.60);

    font-family: var(--lbm-sans);
    font-size: 0.68rem;
    font-weight: 700;
    letter-spacing: 0.15em;

    text-transform: uppercase;

    cursor: pointer;

    transition:
    color 160ms ease,
    background-color 160ms ease;
}

.lbm-menu-tab:last-child {
    border-right: 0;
}

.lbm-menu-tab:hover,
.lbm-menu-tab:focus-visible {
    color: var(--lbm-bronze-light);

    background: rgba(178, 122, 53, 0.06);
}

.lbm-menu-tab:focus-visible {
    outline: 2px solid var(--lbm-bronze-light);
    outline-offset: -2px;
}

.lbm-menu-tab.active {
    color: var(--lbm-white);
}

.lbm-menu-tab.active::after {
    content: "";

    position: absolute;

    left: 25%;
    right: 25%;
    bottom: 0;

    height: 2px;

    background: var(--lbm-bronze);
}


/* ---------------------------------------------------------
 * Menu stage
 * --------------------------------------------------------- */

.lbm-menu-stage {
    width: min(100% - 4rem, 1180px);

    margin: 0 auto;
    padding: 6rem 0 8rem;
}

.lbm-menu-panel[hidden] {
    display: none;
}


/* Menu heading + simulated download */

.lbm-menu-panel-header {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;

    gap: 3rem;

    padding-bottom: 2rem;

    border-bottom: 1px solid rgba(48, 42, 37, 0.18);
}

.lbm-menu-panel-header h2 {
    margin: 0;

    color: var(--lbm-charcoal);

    font-family: var(--lbm-serif);
    font-size: clamp(2.6rem, 4vw, 4.2rem);
    font-weight: 500;
    line-height: 1.05;
    letter-spacing: -0.025em;
}

.lbm-download-demo {
    flex: 0 0 auto;

    min-height: 46px;

    padding: 0.7rem 1rem;

    border: 1px solid var(--lbm-bronze);

    background: transparent;
    color: var(--lbm-bronze);

    font-size: 0.68rem;
    font-weight: 700;
    letter-spacing: 0.09em;

    text-transform: uppercase;

    cursor: pointer;

    transition:
    background-color 160ms ease,
    color 160ms ease;
}

.lbm-download-demo span {
    margin-left: 0.5rem;
}

.lbm-download-demo:hover,
.lbm-download-demo:focus-visible {
    background: var(--lbm-bronze);
    color: var(--lbm-white);
}

.lbm-download-demo:focus-visible {
    outline: 3px solid rgba(178, 122, 53, 0.20);
    outline-offset: 3px;
}


/* ---------------------------------------------------------
 * Dinner / Bar / Dessert menu structure
 * --------------------------------------------------------- */

.lbm-menu-content {
    margin-top: 1rem;
}

.lbm-menu-category {
    padding: 4.5rem 0;
}

.lbm-menu-category + .lbm-menu-category {
    border-top: 1px solid rgba(48, 42, 37, 0.15);
}

.lbm-menu-category-header {
    margin-bottom: 2.75rem;
}

.lbm-menu-category-header h3 {
    margin: 0;

    color: var(--lbm-bronze);

    font-family: var(--lbm-serif);
    font-size: 2rem;
    font-weight: 500;
    line-height: 1.15;
}


/* Two-column food menu */

.lbm-menu-items {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));

    column-gap: 5rem;
    row-gap: 2.75rem;
}

.lbm-menu-item {
    min-width: 0;
}

.lbm-menu-item-heading {
    display: flex;
    align-items: baseline;
    justify-content: space-between;

    gap: 1.5rem;
}

.lbm-menu-item-heading h4 {
    min-width: 0;

    margin: 0;

    color: var(--lbm-charcoal);

    font-family: var(--lbm-serif);
    font-size: 1.18rem;
    font-weight: 600;
    line-height: 1.35;
}

.lbm-menu-item-heading h4 span {
    margin-left: 0.35rem;

    color: var(--lbm-bronze);

    font-family: var(--lbm-sans);
    font-size: 0.64rem;
    font-weight: 700;
    letter-spacing: 0.08em;

    text-transform: uppercase;
}

.lbm-menu-item-heading strong {
    flex: 0 0 auto;

    color: var(--lbm-charcoal);

    font-family: var(--lbm-serif);
    font-size: 1rem;
    font-weight: 600;
}

.lbm-menu-item > p {
    max-width: 480px;

    margin: 0.65rem 0 0;

    color: var(--lbm-muted);

    font-size: 0.88rem;
    line-height: 1.7;
}


/* General menu note */

.lbm-menu-note {
    margin: 1.5rem 0 0;

    color: var(--lbm-muted);

    font-size: 0.78rem;
    font-style: italic;
    line-height: 1.6;
}


/* ---------------------------------------------------------
 * Wine menu
 * --------------------------------------------------------- */

.lbm-wine-content {
    margin-top: 3.5rem;
}


/* Bottle / glass column key */

.lbm-wine-column-key {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 90px 90px;

    gap: 1.5rem;

    padding: 0 0 0.8rem;

    border-bottom: 1px solid rgba(48, 42, 37, 0.18);

    color: var(--lbm-bronze);

    font-size: 0.62rem;
    font-weight: 700;
    letter-spacing: 0.14em;

    text-align: right;
    text-transform: uppercase;
}

.lbm-wine-column-key span:first-child {
    grid-column: 2;
}

.lbm-wine-column-key span:last-child {
    grid-column: 3;
}


/* Wine categories */

.lbm-wine-category {
    padding: 3.75rem 0;
}

.lbm-wine-category + .lbm-wine-category {
    border-top: 1px solid rgba(48, 42, 37, 0.15);
}

.lbm-wine-category .lbm-menu-category-header {
    margin-bottom: 1.5rem;
}

.lbm-wine-items {
    display: grid;
}

.lbm-wine-item {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 90px 90px;

    align-items: center;

    gap: 1.5rem;

    min-width: 0;

    padding: 1rem 0;

    border-bottom: 1px solid rgba(48, 42, 37, 0.09);
}

.lbm-wine-item:last-child {
    border-bottom: 0;
}

.lbm-wine-info {
    min-width: 0;
}

.lbm-wine-info h4 {
    margin: 0;

    color: var(--lbm-charcoal);

    font-family: var(--lbm-serif);
    font-size: 1.05rem;
    font-weight: 600;
    line-height: 1.35;
}

.lbm-wine-info p {
    margin: 0.25rem 0 0;

    color: var(--lbm-muted);

    font-size: 0.72rem;
    letter-spacing: 0.04em;
    line-height: 1.5;
}

.lbm-wine-item > strong,
.lbm-no-glass {
    color: var(--lbm-charcoal);

    font-family: var(--lbm-serif);
    font-size: 0.95rem;

    text-align: right;
}

.lbm-wine-item > strong {
    font-weight: 600;
}

.lbm-no-glass {
    color: rgba(48, 42, 37, 0.30);
}


/* Icewine note */

.lbm-wine-footnote {
    margin: 1.25rem 0 0;

    color: var(--lbm-muted);

    font-size: 0.72rem;
    font-style: italic;
}


/* ---------------------------------------------------------
 * Trophy Collection
 * --------------------------------------------------------- */

.lbm-trophy-collection {
    margin-top: 3rem;
    padding: 4.5rem;

    border: 1px solid var(--lbm-line);

    background:
    linear-gradient(
        135deg,
        var(--lbm-charcoal-deep) 0%,
                    var(--lbm-panel) 100%
    );
}

.lbm-trophy-header {
    max-width: 760px;

    margin-bottom: 3rem;
}

.lbm-trophy-header h3 {
    margin: 0;

    color: var(--lbm-white);

    font-family: var(--lbm-serif);
    font-size: clamp(2.4rem, 3.5vw, 3.5rem);
    font-weight: 500;
    line-height: 1.1;
}

.lbm-trophy-header > p:last-child {
    margin: 1rem 0 0;

    color: var(--lbm-dark-muted);

    font-size: 0.88rem;
    line-height: 1.7;
}

.lbm-trophy-items {
    border-top: 1px solid var(--lbm-light-line);
}

.lbm-trophy-item {
    display: flex;
    align-items: center;
    justify-content: space-between;

    gap: 2rem;

    padding: 1.3rem 0;

    border-bottom: 1px solid var(--lbm-light-line);
}

.lbm-trophy-item > div {
    min-width: 0;
}

.lbm-trophy-item h4 {
    margin: 0;

    color: var(--lbm-white);

    font-family: var(--lbm-serif);
    font-size: 1.08rem;
    font-weight: 500;
    line-height: 1.4;
}

.lbm-trophy-item p {
    margin: 0.25rem 0 0;

    color: var(--lbm-dark-muted);

    font-size: 0.7rem;
    letter-spacing: 0.05em;
}

.lbm-trophy-item strong {
    flex: 0 0 auto;

    color: var(--lbm-bronze-light);

    font-family: var(--lbm-serif);
    font-size: 1.05rem;
    font-weight: 600;
}


/* ---------------------------------------------------------
 * Menus — large displays
 * --------------------------------------------------------- */

@media (min-width: 1600px) {
    .lbm-menu-heading {
        padding-block: 3rem 2.5rem;
    }

    .lbm-menu-stage {
        width: min(100% - 6rem, 1320px);

        padding-block: 7rem 9rem;
    }

    .lbm-menu-items {
        column-gap: 7rem;
        row-gap: 3rem;
    }

    .lbm-menu-item-heading h4 {
        font-size: 1.25rem;
    }

    .lbm-menu-item > p {
        font-size: 0.92rem;
    }

    .lbm-trophy-collection {
        padding: 5rem;
    }
}


/* ---------------------------------------------------------
 * Menus — tablet
 * --------------------------------------------------------- */

@media (max-width: 900px) {
    .lbm-menu-heading {
        padding: 2.5rem 2rem 2.25rem;
    }

    .lbm-menu-stage {
        width: min(100% - 3rem, 850px);

        padding-block: 5rem 6rem;
    }

    .lbm-menu-items {
        column-gap: 3rem;
    }

    .lbm-menu-panel-header {
        gap: 2rem;
    }

    .lbm-wine-column-key,
    .lbm-wine-item {
        grid-template-columns:
        minmax(0, 1fr)
        75px
        75px;

        gap: 1rem;
    }

    .lbm-trophy-collection {
        padding: 3.5rem;
    }
}


/* ---------------------------------------------------------
 * Menus — mobile
 * --------------------------------------------------------- */

@media (max-width: 650px) {
    .lbm-menu-heading {
        padding: 2.25rem 1.4rem 2rem;

        text-align: left;
    }

    .lbm-menu-heading {
        padding: 1.9rem 1.4rem 1.7rem;
    }


    /* Four menu tabs remain visible */

    .lbm-menu-nav {
        position: static;

        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .lbm-menu-tab {
        min-height: 48px;

        font-size: 0.62rem;
    }

    .lbm-menu-tab:nth-child(2) {
        border-right: 0;
    }

    .lbm-menu-tab:nth-child(-n + 2) {
        border-bottom: 1px solid var(--lbm-light-line);
    }


    /* Stage */

    .lbm-menu-stage {
        width: min(100% - 2.8rem, 520px);

        padding-block: 4rem 5rem;
    }

    .lbm-menu-panel-header {
        align-items: flex-start;
        flex-direction: column;

        gap: 1.5rem;
    }

    .lbm-menu-panel-header h2 {
        font-size: clamp(2.4rem, 11vw, 3.5rem);
    }

    #menu-wine .lbm-menu-panel-header h2 {
    font-size: 2.6rem;
    }

    .lbm-download-demo {
        width: 100%;
    }


    /* Food menus */

    .lbm-menu-category {
        padding: 3.5rem 0;
    }

    .lbm-menu-category-header {
        margin-bottom: 2rem;
    }

    .lbm-menu-category-header h3 {
        font-size: 1.8rem;
    }

    .lbm-menu-items {
        grid-template-columns: 1fr;

        gap: 2.25rem;
    }

    .lbm-menu-item-heading {
        gap: 1rem;
    }

    .lbm-menu-item-heading h4 {
        font-size: 1.1rem;
    }

    .lbm-menu-item-heading h4 span {
        display: block;

        margin: 0.2rem 0 0;

        font-size: 0.6rem;
    }

    .lbm-menu-item > p {
        max-width: none;
    }


    /* Wine */

    .lbm-wine-content {
        margin-top: 2.5rem;
    }

    .lbm-wine-column-key {
        grid-template-columns:
        minmax(0, 1fr)
        58px
        58px;

        gap: 0.6rem;

        font-size: 0.56rem;
    }

    .lbm-wine-item {
        grid-template-columns:
        minmax(0, 1fr)
        58px
        58px;

        gap: 0.6rem;

        padding-block: 1.1rem;
    }

    .lbm-wine-info h4 {
        font-size: 0.95rem;
    }

    .lbm-wine-info p {
        font-size: 0.66rem;
    }

    .lbm-wine-item > strong,
    .lbm-no-glass {
        font-size: 0.86rem;
    }


    /* Trophy */

    .lbm-trophy-collection {
        margin-top: 2rem;
        padding: 2.5rem 1.4rem;
    }

    .lbm-trophy-header {
        margin-bottom: 2rem;
    }

    .lbm-trophy-header h3 {
        font-size: clamp(2.2rem, 10vw, 3.2rem);
    }

    .lbm-trophy-item {
        align-items: flex-start;

        gap: 1rem;

        padding-block: 1.25rem;
    }

    .lbm-trophy-item h4 {
        font-size: 1rem;
    }

    .lbm-trophy-item p {
        font-size: 0.66rem;
    }

    .lbm-trophy-item strong {
        font-size: 0.95rem;

        text-align: right;
    }
}

/* ---------------------------------------------------------
 * Gallery
 * --------------------------------------------------------- */

.lbm-gallery {
    min-height: 100vh;

    background: var(--lbm-charcoal-deep);
}


/* ---------------------------------------------------------
 * Gallery introduction
 * --------------------------------------------------------- */

.lbm-gallery-intro {
    padding: 5rem 4rem 4.5rem;

    background: var(--lbm-charcoal);

    text-align: center;
}

.lbm-gallery-intro h1 {
    margin: 0;

    color: var(--lbm-white);

    font-family: var(--lbm-serif);
    font-size: clamp(3rem, 4.8vw, 5rem);
    font-weight: 500;
    line-height: 1.05;
    letter-spacing: -0.03em;
}

.lbm-gallery-intro > p:last-child {
    max-width: 700px;

    margin: 1rem auto 0;

    color: var(--lbm-dark-muted);

    font-size: 1rem;
    line-height: 1.8;
}


/* ---------------------------------------------------------
 * Gallery grid
 * --------------------------------------------------------- */

.lbm-gallery-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));

    gap: 1rem;

    width: min(100% - 4rem, 1500px);

    margin: 0 auto;
    padding: 4rem 0 7rem;
}

.lbm-gallery-item {
    position: relative;

    min-width: 0;
    margin: 0;

    overflow: hidden;

    background: var(--lbm-panel);
}

.lbm-gallery-item img {
    display: block;

    width: 100%;
    height: 100%;

    aspect-ratio: 16 / 10;

    object-fit: cover;
    object-position: center;

    transition: transform 500ms ease;
}


/* Wide editorial images */

.lbm-gallery-wide {
    grid-column: 1 / -1;
}

.lbm-gallery-wide img {
    aspect-ratio: 16 / 7;
}


/* Very restrained hover treatment */

@media (hover: hover) {
    .lbm-gallery-item:hover img {
        transform: scale(1.015);
    }
}


/* ---------------------------------------------------------
 * Gallery — large displays
 * --------------------------------------------------------- */

@media (min-width: 1600px) {
    .lbm-gallery-intro {
        padding: 5.5rem 4rem 5rem;
    }

    .lbm-gallery-grid {
        width: min(100% - 6rem, 1650px);

        gap: 1.25rem;

        padding-block: 5rem 8rem;
    }
}


/* ---------------------------------------------------------
 * Gallery — tablet / half screen
 * --------------------------------------------------------- */

@media (max-width: 900px) {
    .lbm-gallery-intro {
        padding: 4rem 2rem 3.5rem;
    }

    .lbm-gallery-grid {
        width: min(100% - 3rem, 850px);

        gap: 0.8rem;

        padding-block: 3rem 5rem;
    }

    .lbm-gallery-item img {
        aspect-ratio: 4 / 3;
    }

    .lbm-gallery-wide img {
        aspect-ratio: 16 / 8;
    }
}


/* ---------------------------------------------------------
 * Gallery — mobile
 * --------------------------------------------------------- */

@media (max-width: 650px) {
    .lbm-gallery-intro {
        padding: 2.75rem 1.4rem 2.5rem;

        text-align: left;
    }

    .lbm-gallery-intro h1 {
        font-size: clamp(2.4rem, 11vw, 3.4rem);
    }

    .lbm-gallery-intro > p:last-child {
        margin: 0.7rem 0 0;
    }


    /* Single-column gallery */

    .lbm-gallery-grid {
        grid-template-columns: 1fr;

        gap: 0.75rem;

        width: 100%;

        padding: 0.75rem 0 3rem;
    }

    .lbm-gallery-wide {
        grid-column: auto;
    }

    .lbm-gallery-item img,
    .lbm-gallery-wide img {
        aspect-ratio: 16 / 10;
    }
}

/* ---------------------------------------------------------
 * Promotions
 * --------------------------------------------------------- */

.lbm-promotions {
    min-height: 100vh;

    background: var(--lbm-charcoal-deep);
}

.lbm-promotions-feature {
    width: min(100% - 4rem, 1600px);

    margin: 0 auto;
    padding: 4rem 0 6rem;
}

.lbm-promotions-feature img {
    display: block;

    width: 100%;
    height: auto;

    margin: 0;
}

.lbm-promotions-feature picture {
    display: block;
}

/* ---------------------------------------------------------
 * Promotions — tablet / half screen
 * --------------------------------------------------------- */

@media (max-width: 900px) {
    .lbm-promotions-feature {
        width: min(100% - 3rem, 850px);

        padding: 3rem 0 4rem;
    }
}


/* ---------------------------------------------------------
 * Promotions — mobile
 * --------------------------------------------------------- */

@media (max-width: 650px) {
    .lbm-promotions-feature {
        width: 100%;

        padding: 0;
    }
}

/* ---------------------------------------------------------
 * Private Dining
 * --------------------------------------------------------- */

.lbm-private-dining {
    background: var(--lbm-charcoal-deep);
}


/* ---------------------------------------------------------
 * Private Dining hero
 * --------------------------------------------------------- */

.lbm-private-dining-hero {
    width: 100%;
    margin: 0;
}

.lbm-private-dining-hero picture {
    display: block;
}

.lbm-private-dining-hero img {
    display: block;

    width: 100%;
    height: auto;
}


/* ---------------------------------------------------------
 * Private Dining experience
 * --------------------------------------------------------- */

.lbm-private-dining-experience {
    padding: 6rem 4rem 7rem;

    background: var(--lbm-cream);
}

.lbm-private-dining-experience-inner {
    width: min(100%, 1250px);

    margin: 0 auto;
}

.lbm-private-dining-experience h1 {
    max-width: 760px;

    margin: 0.6rem 0 0;

    color: var(--lbm-text);

    font-family: var(--lbm-serif);
    font-size: clamp(2.5rem, 4vw, 4.2rem);
    font-weight: 500;
    line-height: 1.08;
    letter-spacing: -0.025em;
}

.lbm-private-dining-lead {
    max-width: 760px;

    margin: 1.4rem 0 0;

    color: var(--lbm-muted);

    font-size: 1rem;
    line-height: 1.8;
}


/* Options */

.lbm-private-dining-options {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));

    gap: 0;

    margin-top: 4rem;

    border-top: 1px solid var(--lbm-line);
    border-left: 1px solid var(--lbm-line);
}

.lbm-private-dining-options article {
    min-width: 0;

    padding: 2.5rem 3rem 3rem;

    border-right: 1px solid var(--lbm-line);
    border-bottom: 1px solid var(--lbm-line);
}

.lbm-private-dining-options article > span {
    display: block;

    margin-bottom: 1.6rem;

    color: var(--lbm-bronze);

    font-size: 0.68rem;
    font-weight: 700;
    letter-spacing: 0.18em;
}

.lbm-private-dining-options h3 {
    margin: 0;

    color: var(--lbm-text);

    font-family: var(--lbm-serif);
    font-size: 1.65rem;
    font-weight: 600;
    line-height: 1.2;
}

.lbm-private-dining-options p {
    margin: 0.8rem 0 0;

    color: var(--lbm-muted);

    line-height: 1.75;
}


/* ---------------------------------------------------------
 * Private Dining spaces
 * --------------------------------------------------------- */

.lbm-private-dining-spaces {
    width: min(100% - 6rem, 1500px);

    margin: 0 auto;
    padding: 7rem 0 8rem;
}

.lbm-private-dining-spaces-heading {
    margin-bottom: 4rem;
}

.lbm-private-dining-spaces-heading h2 {
    margin: 0.6rem 0 0;

    color: var(--lbm-white);

    font-family: var(--lbm-serif);
    font-size: clamp(2.5rem, 4vw, 4.3rem);
    font-weight: 500;
    line-height: 1.08;
    letter-spacing: -0.025em;
}


/* Individual spaces */

.lbm-private-dining-space {
    display: grid;
    grid-template-columns: minmax(0, 1.65fr) minmax(300px, 0.7fr);

    align-items: center;

    gap: 4rem;

    padding: 2rem 0 5rem;
}

.lbm-private-dining-space + .lbm-private-dining-space {
    padding-top: 5rem;

    border-top: 1px solid var(--lbm-line);
}

.lbm-private-dining-space img {
    display: block;

    width: 100%;
    height: auto;
}

.lbm-private-dining-space > div {
    max-width: 420px;
}

.lbm-private-dining-space h3 {
    margin: 0.5rem 0 0;

    color: var(--lbm-white);

    font-family: var(--lbm-serif);
    font-size: clamp(2rem, 2.8vw, 3rem);
    font-weight: 500;
    line-height: 1.1;
}

.lbm-private-dining-space > div > p:last-child {
    margin: 1rem 0 0;

    color: var(--lbm-dark-muted);

    line-height: 1.8;
}


/* Alternate the large room */

.lbm-private-dining-space-reverse {
    grid-template-columns: minmax(300px, 0.7fr) minmax(0, 1.65fr);
}

.lbm-private-dining-space-reverse img {
    grid-column: 2;
    grid-row: 1;
}

.lbm-private-dining-space-reverse > div {
    grid-column: 1;
    grid-row: 1;
}


/* Combined room receives more visual emphasis */

.lbm-private-dining-combined {
    display: block;
}

.lbm-private-dining-combined img {
    width: 100%;
}

.lbm-private-dining-combined > div {
    max-width: 760px;

    margin-top: 2rem;
}


/* ---------------------------------------------------------
 * Private Dining — tablet / half screen
 * --------------------------------------------------------- */

@media (max-width: 900px) {
    .lbm-private-dining-experience {
        padding: 4.5rem 2.5rem 5rem;
    }

    .lbm-private-dining-options article {
        padding: 2rem;
    }


    .lbm-private-dining-spaces {
        width: min(100% - 4rem, 850px);

        padding: 5rem 0 6rem;
    }

    .lbm-private-dining-space,
    .lbm-private-dining-space-reverse {
        grid-template-columns: 1fr;

        gap: 2rem;
    }

    .lbm-private-dining-space img,
    .lbm-private-dining-space-reverse img {
        grid-column: 1;
        grid-row: 1;
    }

    .lbm-private-dining-space > div,
    .lbm-private-dining-space-reverse > div {
        grid-column: 1;
        grid-row: 2;

        max-width: 650px;
    }
}


/* ---------------------------------------------------------
 * Private Dining — mobile
 * --------------------------------------------------------- */

@media (max-width: 650px) {
    .lbm-private-dining-experience {
        padding: 3.5rem 1.4rem 4rem;
    }

    .lbm-private-dining-experience h1 {
        font-size: clamp(2.2rem, 10vw, 3rem);
    }


    .lbm-private-dining-options {
        grid-template-columns: 1fr;

        margin-top: 3rem;
    }

    .lbm-private-dining-options article {
        padding: 1.8rem 1.5rem 2rem;
    }


    .lbm-private-dining-spaces {
        width: 100%;

        padding: 4rem 0 0;
    }

    .lbm-private-dining-spaces-heading {
        padding: 0 1.4rem;

        margin-bottom: 2.5rem;
    }

    .lbm-private-dining-spaces-heading h2 {
        font-size: clamp(2.2rem, 10vw, 3rem);
    }


    .lbm-private-dining-space,
    .lbm-private-dining-space-reverse,
    .lbm-private-dining-combined {
        display: block;

        padding: 0 0 3.5rem;
    }

    .lbm-private-dining-space + .lbm-private-dining-space {
        padding-top: 0;

        border-top: 0;
    }

    .lbm-private-dining-space img {
        width: 100%;
    }

    .lbm-private-dining-space > div,
    .lbm-private-dining-space-reverse > div,
    .lbm-private-dining-combined > div {
        max-width: none;

        margin: 0;
        padding: 1.8rem 1.4rem 0;
    }

    .lbm-private-dining-space h3 {
        font-size: 2rem;
    }
}

/* ---------------------------------------------------------
 * Staff
 * --------------------------------------------------------- */

.lbm-staff {
    min-height: 100vh;

    background: var(--lbm-charcoal-deep);
}


/* Staff introduction */

.lbm-staff-intro {
    padding: 3rem 4rem 2.75rem;

    background: var(--lbm-charcoal);

    text-align: center;
}

.lbm-staff-intro h1 {
    max-width: 900px;

    margin: 0 auto;

    color: var(--lbm-white);

    font-family: var(--lbm-serif);
    font-size: clamp(2.5rem, 3.8vw, 4rem);
    font-weight: 500;
    line-height: 1.05;
    letter-spacing: -0.03em;
}

.lbm-staff-intro > p:last-child {
    max-width: 680px;

    margin: 1rem auto 0;

    color: var(--lbm-dark-muted);

    font-size: 1rem;
    line-height: 1.8;
}


/* ---------------------------------------------------------
 * Staff roster
 * --------------------------------------------------------- */

.lbm-staff-roster {
    width: min(100% - 6rem, 1100px);

    margin: 0 auto;
    padding: 6rem 0 8rem;
}

.lbm-staff-list {
    border-top: 1px solid var(--lbm-line);
}

.lbm-staff-member {
    display: block;
    grid-template-columns: 80px minmax(0, 1fr);

    align-items: center;

    gap: 2rem;

    min-height: 105px;

    padding: 1.4rem 0;

    border-bottom: 1px solid var(--lbm-light-line);
}

.lbm-staff-member h2 {
    margin: 0;

    color: var(--lbm-white);

    font-family: var(--lbm-serif);
    font-size: clamp(1.65rem, 2.2vw, 2.25rem);
    font-weight: 500;
    line-height: 1.15;
}

.lbm-staff-member p {
    margin: 0.35rem 0 0;

    color: var(--lbm-bronze-light);

    font-size: 0.68rem;
    font-weight: 700;
    letter-spacing: 0.12em;

    text-transform: uppercase;
}


/* Separation between professional and uniformed leadership */

.lbm-staff-divider {
    position: relative;

    height: 5rem;
}

.lbm-staff-divider::before {
    content: "";

    position: absolute;

    top: 50%;
    left: 0;
    right: 0;

    height: 1px;

    background:
    linear-gradient(
        90deg,
        transparent,
        var(--lbm-bronze),
                    transparent
    );
}


/* ---------------------------------------------------------
 * Staff — large displays
 * --------------------------------------------------------- */

@media (min-width: 1600px) {
    .lbm-staff-intro {
        padding-block: 3.25rem 3rem;
    }

    .lbm-staff-roster {
        padding-block: 7rem 9rem;
    }
}


/* ---------------------------------------------------------
 * Staff — tablet / half screen
 * --------------------------------------------------------- */

@media (max-width: 900px) {
    .lbm-staff-intro {
        padding: 2.75rem 2rem 2.5rem;
    }

    .lbm-staff-roster {
        width: min(100% - 4rem, 800px);

        padding: 4.5rem 0 6rem;
    }

    .lbm-staff-member {
        grid-template-columns: 60px minmax(0, 1fr);

        gap: 1.5rem;
    }
}


/* ---------------------------------------------------------
 * Staff — mobile
 * --------------------------------------------------------- */

@media (max-width: 650px) {
    .lbm-staff-intro {
        padding: 2.25rem 1.4rem 2rem;

        text-align: left;
    }

    .lbm-staff-intro h1 {
        font-size: clamp(2.2rem, 9.5vw, 3rem);
    }

    .lbm-staff-intro > p:last-child {
        margin: 0.7rem 0 0;
    }


    .lbm-staff-roster {
        width: calc(100% - 2.8rem);

        padding: 3.5rem 0 5rem;
    }

    .lbm-staff-member {
        grid-template-columns: 42px minmax(0, 1fr);

        gap: 1rem;

        min-height: 90px;

        padding: 1.2rem 0;
    }

    .lbm-staff-number {
        font-size: 0.6rem;
    }

    .lbm-staff-member h2 {
        font-size: 1.45rem;
    }

    .lbm-staff-member p {
        font-size: 0.6rem;
        letter-spacing: 0.09em;
    }

    .lbm-staff-divider {
        height: 3.5rem;
    }
}

/* ---------------------------------------------------------
 * Contact
 * --------------------------------------------------------- */

.lbm-contact {
    min-height: 100vh;

    background: var(--lbm-charcoal-deep);
}


/* ---------------------------------------------------------
 * Contact introduction
 * --------------------------------------------------------- */

.lbm-contact-intro {
    padding: 3rem 4rem 2.75rem;

    background: var(--lbm-charcoal);

    text-align: center;
}

.lbm-contact-intro h1 {
    max-width: 850px;

    margin: 0 auto;

    color: var(--lbm-white);

    font-family: var(--lbm-serif);
    font-size: clamp(2.5rem, 3.8vw, 4rem);
    font-weight: 500;
    line-height: 1.05;
    letter-spacing: -0.03em;
}

.lbm-contact-intro > p:last-child {
    max-width: 650px;

    margin: 0.9rem auto 0;

    color: var(--lbm-dark-muted);

    font-size: 1rem;
    line-height: 1.8;
}


/* ---------------------------------------------------------
 * Social links
 * --------------------------------------------------------- */

.lbm-contact-social {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));

    width: min(100% - 6rem, 1200px);

    margin: 0 auto;
    padding: 5rem 0;

    border-bottom: 1px solid var(--lbm-light-line);
}

.lbm-contact-social a {
    display: flex;
    flex-direction: column;
    justify-content: center;

    min-width: 0;
    min-height: 125px;

    padding: 1.5rem 2rem;

    color: inherit;

    text-align: center;
    text-decoration: none;

    border-right: 1px solid var(--lbm-light-line);

    transition:
    background-color 180ms ease,
    border-color 180ms ease;
}

.lbm-contact-social a:first-child {
    border-left: 1px solid var(--lbm-light-line);
}

.lbm-contact-social span {
    color: var(--lbm-bronze-light);

    font-size: 0.68rem;
    font-weight: 700;
    letter-spacing: 0.14em;

    text-transform: uppercase;
}

.lbm-contact-social strong {
    margin-top: 0.6rem;

    color: var(--lbm-white);

    font-family: var(--lbm-serif);
    font-size: clamp(1rem, 1.5vw, 1.3rem);
    font-weight: 500;
}

@media (hover: hover) {
    .lbm-contact-social a:hover {
        background: var(--lbm-panel);
        border-color: var(--lbm-bronze);
    }
}


/* ---------------------------------------------------------
 * Contact form
 * --------------------------------------------------------- */

.lbm-contact-form-section {
    display: grid;
    grid-template-columns: minmax(280px, 0.7fr) minmax(0, 1.3fr);

    gap: 6rem;

    width: min(100% - 6rem, 1200px);

    margin: 0 auto;
    padding: 6rem 0 8rem;
}

.lbm-contact-form-heading {
    max-width: 390px;
}

.lbm-contact-form-heading h2 {
    margin: 0.6rem 0 0;

    color: var(--lbm-white);

    font-family: var(--lbm-serif);
    font-size: clamp(2.5rem, 3.5vw, 3.8rem);
    font-weight: 500;
    line-height: 1.08;
}

.lbm-contact-form-heading > p:last-child {
    margin: 1rem 0 0;

    color: var(--lbm-dark-muted);

    line-height: 1.8;
}


/* Form grid */

.lbm-contact-form {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));

    gap: 2rem 2.5rem;
}

.lbm-contact-field {
    min-width: 0;
}

.lbm-contact-field-full {
    grid-column: 1 / -1;
}

.lbm-contact-field label {
    display: block;

    margin-bottom: 0.65rem;

    color: var(--lbm-bronze-light);

    font-size: 0.68rem;
    font-weight: 700;
    letter-spacing: 0.12em;

    text-transform: uppercase;
}

.lbm-contact-field label span {
    margin-left: 0.4rem;

    color: var(--lbm-dark-muted);

    font-weight: 500;
    letter-spacing: 0.08em;
}

.lbm-contact-field input,
.lbm-contact-field textarea {
    display: block;

    width: 100%;

    padding: 0.9rem 0;

    color: var(--lbm-white);
    background: transparent;

    font: inherit;

    border: 0;
    border-bottom: 1px solid var(--lbm-light-line);
    border-radius: 0;

    outline: 0;

    transition: border-color 180ms ease;
}

.lbm-contact-field textarea {
    min-height: 150px;

    padding: 1rem;

    resize: vertical;

    border: 1px solid var(--lbm-light-line);
}

.lbm-contact-field input:focus,
.lbm-contact-field textarea:focus {
    border-color: var(--lbm-bronze-light);
}


/* Submit */

.lbm-contact-submit {
    grid-column: 1 / -1;
}

.lbm-contact-submit button {
    min-width: 210px;

    padding: 1rem 1.8rem;

    color: var(--lbm-white);
    background: transparent;

    font-family: var(--lbm-sans);
    font-size: 0.7rem;
    font-weight: 700;
    letter-spacing: 0.13em;

    text-transform: uppercase;

    border: 1px solid var(--lbm-bronze);

    cursor: pointer;

    transition:
    color 180ms ease,
    background-color 180ms ease;
}

@media (hover: hover) {
    .lbm-contact-submit button:hover {
        color: var(--lbm-charcoal-deep);
        background: var(--lbm-bronze-light);
    }
}


/* ---------------------------------------------------------
 * Contact — large displays
 * --------------------------------------------------------- */

@media (min-width: 1600px) {
    .lbm-contact-intro {
        padding-block: 3.25rem 3rem;
    }
}


/* ---------------------------------------------------------
 * Contact — tablet / half screen
 * --------------------------------------------------------- */

@media (max-width: 900px) {
    .lbm-contact-intro {
        padding: 2.75rem 2rem 2.5rem;
    }

    .lbm-contact-social {
        width: min(100% - 4rem, 800px);

        padding: 4rem 0;
    }

    .lbm-contact-social a {
        padding-inline: 1rem;
    }


    .lbm-contact-form-section {
        grid-template-columns: 1fr;

        gap: 3rem;

        width: min(100% - 4rem, 800px);

        padding: 4.5rem 0 6rem;
    }

    .lbm-contact-form-heading {
        max-width: 600px;
    }
}


/* ---------------------------------------------------------
 * Contact — mobile
 * --------------------------------------------------------- */

@media (max-width: 650px) {
    .lbm-contact-intro {
        padding: 2.25rem 1.4rem 2rem;

        text-align: left;
    }

    .lbm-contact-intro h1 {
        font-size: clamp(2.2rem, 9.5vw, 3rem);
    }

    .lbm-contact-intro > p:last-child {
        margin: 0.7rem 0 0;
    }


    /* Social accounts stack */

    .lbm-contact-social {
        grid-template-columns: 1fr;

        width: calc(100% - 2.8rem);

        padding: 3rem 0;
    }

    .lbm-contact-social a {
        min-height: 90px;

        padding: 1.2rem 0;

        text-align: left;

        border-right: 0;
        border-bottom: 1px solid var(--lbm-light-line);
    }

    .lbm-contact-social a:first-child {
        border-left: 0;
        border-top: 1px solid var(--lbm-light-line);
    }

    .lbm-contact-social strong {
        font-size: 1.15rem;
    }


    /* Form */

    .lbm-contact-form-section {
        width: calc(100% - 2.8rem);

        gap: 2.5rem;

        padding: 3.5rem 0 5rem;
    }

    .lbm-contact-form-heading h2 {
        font-size: 2.5rem;
    }

    .lbm-contact-form {
        grid-template-columns: 1fr;

        gap: 1.8rem;
    }

    .lbm-contact-field-full,
    .lbm-contact-submit {
        grid-column: auto;
    }

    .lbm-contact-submit button {
        width: 100%;
    }
}

/* Accessible heading for image-led promotions page. */
.lbm-promotions .visually-hidden {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}
