/* ============================================================
   Lake Bomoseen Lodge & Taproom — rezStream Booking Engine Skin
   ------------------------------------------------------------
   Brand palette (from live theme):
     #4282aa  lake blue (primary)
     #002e41  deep navy-teal (header/footer)
     #0c4861  navy-teal mid
     #2fa0c3  light blue accent
     #fffcf0  warm cream (page background)
     #393f4a  body text
   Fonts: Karla (sans, body) / Kaisei Decol (serif, headings)

   NOTE: Styles are intentionally scoped to .lbl-* (chrome) and
   a handful of .rs-* engine overrides. No global reset and no
   bare element selectors (a, button, table, input, div, .ui-*)
   so this never fights the engine's injected jQuery UI markup.
   The calendar/datepicker is styled separately via ThemeRoller.
   ============================================================ */

:root {
    --lbl-blue: #4282aa;
    --lbl-blue-light: #2fa0c3;
    --lbl-navy: #002e41;
    --lbl-navy-mid: #0c4861;
    --lbl-cream: #fffcf0;
    --lbl-cream-2: #fffbeb;
    --lbl-ink: #393f4a;
    --lbl-line: #ebebeb;
    --lbl-sans: "Karla", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    --lbl-serif: "Kaisei Decol", Georgia, "Times New Roman", serif;
    --lbl-maxw: 1200px;
}

/* ---- base chrome (scoped to body class, not bare html/body) ---- */
.lbl-body {
    margin: 0;
    background: var(--lbl-cream);
    color: var(--lbl-ink);
    font-family: var(--lbl-sans);
    font-size: 16px;
    line-height: 1.6;
    -webkit-font-smoothing: antialiased;
}

/* ============ HEADER ============ */
.lbl-header {
    background: var(--lbl-navy);
    border-bottom: 3px solid var(--lbl-blue);
}
.lbl-header-inner {
    max-width: var(--lbl-maxw);
    margin: 0 auto;
    padding: 18px 24px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 16px;
}
.lbl-logo {
    display: inline-flex;
    line-height: 0;
}
.lbl-logo img {
    height: 56px;
    width: auto;
    display: block;
}
.lbl-nav {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 6px 4px;
}
.lbl-nav-link {
    color: #ffffff;
    text-decoration: none;
    font-weight: 600;
    font-size: 0.82rem;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    padding: 8px 14px;
    border-radius: 4px;
    transition: background 0.18s ease, color 0.18s ease;
}
.lbl-nav-link:hover,
.lbl-nav-link:focus {
    background: rgba(255, 255, 255, 0.12);
    color: #ffffff;
}
.lbl-nav-link--cta {
    background: var(--lbl-blue);
    margin-left: 8px;
}
.lbl-nav-link--cta:hover,
.lbl-nav-link--cta:focus {
    background: var(--lbl-blue-light);
}

/* ============ MAIN / ENGINE SHELL ============ */
.lbl-main {
    max-width: var(--lbl-maxw);
    margin: 0 auto;
    padding: 40px 24px 64px;
    min-height: 60vh;
}
.lbl-engine-shell {
    background: #ffffff;
    border: 1px solid var(--lbl-line);
    border-radius: 10px;
    padding: 32px;
    box-shadow: 0 6px 24px rgba(0, 46, 65, 0.06);
}
/* heading injected by the engine wrapper */
.categoryHeadings_full h1 {
    font-family: var(--lbl-serif);
    color: var(--lbl-navy);
    font-size: 2rem;
    font-weight: 500;
    margin: 0 0 24px;
    padding-bottom: 16px;
    border-bottom: 2px solid var(--lbl-blue);
}

/* ============ FOOTER ============ */
.lbl-footer {
    background: var(--lbl-navy);
    color: rgba(255, 255, 255, 0.82);
    font-size: 0.92rem;
}
.lbl-footer-inner {
    max-width: var(--lbl-maxw);
    margin: 0 auto;
    padding: 48px 24px 32px;
    display: grid;
    grid-template-columns: 1.4fr 1fr 1fr;
    gap: 40px;
}
.lbl-footer-logo {
    height: 50px;
    width: auto;
    margin-bottom: 14px;
}
.lbl-footer-tagline {
    margin: 0;
    max-width: 30ch;
    line-height: 1.5;
}
.lbl-footer-heading {
    font-family: var(--lbl-serif);
    color: #ffffff;
    font-size: 1.05rem;
    font-weight: 500;
    margin: 0 0 14px;
}
.lbl-footer-text {
    margin: 0 0 10px;
    line-height: 1.5;
}
.lbl-footer-list {
    list-style: none;
    margin: 0;
    padding: 0;
}
.lbl-footer-list li {
    margin-bottom: 8px;
}
.lbl-footer-link {
    color: rgba(255, 255, 255, 0.82);
    text-decoration: none;
    transition: color 0.18s ease;
}
.lbl-footer-link:hover,
.lbl-footer-link:focus {
    color: var(--lbl-blue-light);
}
.lbl-footer-bottom {
    border-top: 1px solid rgba(255, 255, 255, 0.14);
    text-align: center;
    padding: 18px 24px;
    font-size: 0.8rem;
    color: rgba(255, 255, 255, 0.6);
}

/* ============ RESPONSIVE ============ */
@media (max-width: 820px) {
    .lbl-header-inner { justify-content: center; }
    .lbl-nav { justify-content: center; }
    .lbl-engine-shell { padding: 20px; }
    .lbl-footer-inner { grid-template-columns: 1fr; gap: 28px; text-align: center; }
    .lbl-footer-tagline { margin-left: auto; margin-right: auto; }
}

/* ============================================================
   PART 5 — STYLE OVERRIDES (engine's own rs-* content)
   A handful only, in brand colors, so engine content matches.
   Add more in rezStream Cloud > Theme Customizations as needed.
   ============================================================ */
h2.rs-content-header,
h2.rs-cart-header {
    font-family: var(--lbl-serif);
    color: var(--lbl-navy);
    font-weight: 500;
}
.rs-content a,
.rs-sidebar-wrapper a {
    color: var(--lbl-blue);
}
.rs-content a:hover,
.rs-sidebar-wrapper a:hover {
    color: var(--lbl-navy);
}
.rs-here .rs-step-num {
    background: var(--lbl-blue);
    color: #ffffff;
}
.rs-here .rs-step-name {
    color: var(--lbl-navy);
}
.rs-footer-logo a {
    color: var(--lbl-blue);
}
