:root {
            --bg: #021511;
            --bg-2: #062b24;
            --panel: rgba(255, 243, 223, 0.07);
            --panel-strong: rgba(255, 243, 223, 0.12);
            --cream: #fff3df;
            --muted: rgba(255, 243, 223, 0.72);
            --gold: #d7b987;
            --gold-2: #f0c176;
            --sunset: #d9822b;
            --sunset-2: #f0a44d;
            --pine: #17383b;
            --wine: #6b2b24;
            --line: rgba(217, 130, 43, 0.26);
            --dark: #020f0c;
            --shadow: 0 24px 80px rgba(0, 0, 0, 0.34);
        }

        * {
            box-sizing: border-box;
            margin: 0;
            padding: 0;
        }

        html {
            scroll-behavior: smooth;
            -webkit-text-size-adjust: 100%;
        }

        body {
            min-height: 100vh;
            background:
                radial-gradient(circle at 8% 4%, rgba(217, 130, 43, 0.22), transparent 34rem),
                radial-gradient(circle at 88% 18%, rgba(240, 193, 118, 0.1), transparent 28rem),
                linear-gradient(135deg, var(--bg), var(--bg-2) 48%, #03110e);
            color: var(--cream);
            font-family: "Montserrat", Arial, sans-serif;
            line-height: 1.6;
        }

        body::before {
            position: fixed;
            inset: 0;
            z-index: -1;
            background-image: linear-gradient(rgba(240, 164, 77, 0.035) 1px, transparent 1px), linear-gradient(90deg, rgba(240, 164, 77, 0.035) 1px, transparent 1px);
            background-size: 84px 84px;
            mask-image: linear-gradient(to bottom, rgba(0,0,0,0.6), transparent 82%);
            content: "";
        }

        a {
            color: inherit;
            text-decoration: none;
        }

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

        .shell {
            width: min(1180px, calc(100% - 34px));
            margin: 0 auto;
        }

        .site-header {
            position: sticky;
            top: 0;
            z-index: 50;
            border-bottom: 1px solid rgba(217, 130, 43, 0.2);
            background: rgba(2, 21, 17, 0.86);
            backdrop-filter: blur(18px);
        }

        .nav {
            display: flex;
            align-items: center;
            justify-content: space-between;
            min-height: 78px;
            gap: 24px;
        }

        .brand {
            display: flex;
            align-items: center;
            gap: 13px;
            min-width: 0;
        }

        .brand-logo {
            width: 68px;
            height: 68px;
            object-fit: contain;
            filter: drop-shadow(0 8px 18px rgba(0, 0, 0, 0.28));
        }

        .brand-text strong {
            display: block;
            color: var(--gold);
            font-family: "Playfair Display", Georgia, serif;
            font-size: 25px;
            line-height: 1;
            white-space: nowrap;
        }

        .brand-text span {
            color: var(--muted);
            font-size: 11px;
            font-weight: 700;
            letter-spacing: 0.24em;
            text-transform: uppercase;
        }

        .nav-links {
            display: flex;
            align-items: center;
            gap: 22px;
            color: var(--muted);
            font-size: 13px;
            font-weight: 700;
            letter-spacing: 0.04em;
            text-transform: uppercase;
        }

        .nav-links a:hover {
            color: var(--sunset-2);
        }

        .nav-links a.is-active,
        .menu-tabs a.is-active {
            color: var(--sunset-2);
        }

        .nav-cta,
        .btn {
            display: inline-flex;
            align-items: center;
            justify-content: center;
            gap: 10px;
            min-height: 46px;
            padding: 0 18px;
            border: 1px solid var(--sunset);
            border-radius: 999px;
            background: var(--sunset);
            color: #1b1008;
            font-size: 13px;
            font-weight: 800;
            letter-spacing: 0.05em;
            text-transform: uppercase;
            transition: transform 180ms ease, background 180ms ease, color 180ms ease;
        }

        .nav-cta:hover,
        .btn:hover {
            background: var(--sunset-2);
            border-color: var(--sunset-2);
            color: #1b1008;
            transform: translateY(-2px);
        }

        .btn.secondary {
            background: transparent;
            color: var(--cream);
        }

        .hero {
            display: grid;
            grid-template-columns: minmax(0, 1fr) minmax(320px, 0.78fr);
            gap: clamp(28px, 4vw, 50px);
            align-items: center;
            min-height: calc(100svh - 78px);
            padding: clamp(28px, 4.5vh, 46px) 0 clamp(24px, 4vh, 42px);
        }

        .eyebrow {
            display: inline-flex;
            align-items: center;
            gap: 12px;
            margin-bottom: 18px;
            color: var(--sunset-2);
            font-size: 13px;
            font-weight: 800;
            letter-spacing: 0.26em;
            text-transform: uppercase;
        }

        .eyebrow::before {
            width: 42px;
            height: 1px;
            background: var(--sunset);
            content: "";
        }

        h1,
        h2,
        h3 {
            font-family: "Playfair Display", Georgia, serif;
            line-height: 1.04;
        }

        h1 {
            max-width: 760px;
            color: var(--cream);
            font-size: clamp(48px, 5.4vw, 88px);
            letter-spacing: -0.045em;
            line-height: 0.98;
        }

        h1 span {
            color: var(--gold-2);
            text-shadow: 0 0 28px rgba(217, 130, 43, 0.18);
        }

        .hero-lead {
            max-width: 690px;
            margin-top: 18px;
            color: var(--muted);
            font-size: clamp(16px, 1.45vw, 19px);
            font-weight: 300;
        }

        .hero-actions {
            display: flex;
            flex-wrap: wrap;
            gap: 14px;
            margin-top: 24px;
        }

        .hero-facts {
            display: grid;
            grid-template-columns: repeat(3, minmax(0, 1fr));
            gap: 14px;
            max-width: 720px;
            margin-top: 26px;
        }

        .fact {
            padding: 14px 16px;
            border: 1px solid var(--line);
            border-radius: 20px;
            background: rgba(255, 243, 223, 0.055);
        }

        .fact strong {
            display: block;
            color: var(--sunset-2);
            font-size: 21px;
            line-height: 1.1;
        }

        .fact span {
            display: block;
            margin-top: 5px;
            color: var(--muted);
            font-size: 12px;
            font-weight: 700;
            letter-spacing: 0.08em;
            text-transform: uppercase;
        }

        .hero-media {
            position: relative;
        }

        .photo-stack {
            position: relative;
            height: clamp(380px, calc(100svh - 220px), 500px);
            min-height: 0;
        }

        .photo-main,
        .photo-small {
            overflow: hidden;
            border: 1px solid var(--line);
            box-shadow: var(--shadow);
        }

        .photo-main {
            height: 100%;
            border-radius: 38px;
            background: linear-gradient(to bottom, rgba(2, 21, 17, 0.04), rgba(2, 21, 17, 0.36)), url("../assets/images/interior-wide.jpeg") center/cover;
        }

        .photo-small {
            position: absolute;
            right: -20px;
            bottom: 0;
            width: 56%;
            min-width: 230px;
            padding: 18px;
            border-radius: 28px;
            background: rgba(2, 21, 17, 0.88);
            backdrop-filter: blur(16px);
        }

        .photo-small img {
            width: 100%;
            height: 170px;
            object-fit: cover;
            border-radius: 18px;
        }

        .photo-small strong {
            display: block;
            margin-top: 14px;
            color: var(--sunset-2);
            font-family: "Playfair Display", Georgia, serif;
            font-size: 24px;
        }

        .photo-small p {
            margin-top: 4px;
            color: var(--muted);
            font-size: 14px;
        }

        section {
            scroll-margin-top: 98px;
            padding: 86px 0;
        }

        .section-head {
            display: flex;
            justify-content: space-between;
            gap: 28px;
            align-items: flex-end;
            margin-bottom: 34px;
        }

        .section-head h2 {
            color: var(--gold-2);
            font-size: clamp(38px, 5.6vw, 72px);
            letter-spacing: -0.035em;
        }

        .section-head p {
            max-width: 440px;
            color: var(--muted);
            text-align: right;
        }

        .highlights {
            display: grid;
            grid-template-columns: repeat(4, minmax(0, 1fr));
            gap: 18px;
        }

        .highlight-card {
            overflow: hidden;
            border: 1px solid var(--line);
            border-radius: 28px;
            background: linear-gradient(180deg, rgba(255, 243, 223, 0.085), rgba(23, 56, 59, 0.12));
            box-shadow: 0 18px 54px rgba(0, 0, 0, 0.18);
        }

        .highlight-card img {
            width: 100%;
            height: 210px;
            object-fit: cover;
        }

        .highlight-body {
            padding: 20px;
        }

        .highlight-body strong {
            display: block;
            color: var(--cream);
            font-family: "Playfair Display", Georgia, serif;
            font-size: 25px;
        }

        .highlight-body span {
            display: block;
            margin-top: 8px;
            color: var(--sunset-2);
            font-weight: 800;
        }

        .about-panel {
            display: grid;
            grid-template-columns: 0.9fr 1.1fr;
            gap: 34px;
            align-items: stretch;
            padding: 28px;
            border: 1px solid var(--line);
            border-radius: 36px;
            background: linear-gradient(135deg, rgba(255, 243, 223, 0.075), rgba(217, 130, 43, 0.035));
            box-shadow: var(--shadow);
        }

        .about-image {
            min-height: 420px;
            border-radius: 28px;
            background: url("../assets/images/window-table.jpeg") center/cover;
        }

        .about-copy {
            display: flex;
            flex-direction: column;
            justify-content: center;
            padding: 24px;
        }

        .about-copy h2 {
            color: var(--gold-2);
            font-size: clamp(38px, 5vw, 66px);
        }

        .about-copy p {
            margin-top: 20px;
            color: var(--muted);
            font-size: 18px;
        }

        .about-list {
            display: grid;
            grid-template-columns: repeat(2, minmax(0, 1fr));
            gap: 14px;
            margin-top: 28px;
        }

        .about-list div {
            padding: 16px;
            border: 1px solid var(--line);
            border-radius: 18px;
            background: rgba(2, 21, 17, 0.38);
            color: var(--muted);
        }

        .about-list i {
            margin-right: 8px;
            color: var(--sunset-2);
        }

        .menu-tabs {
            display: flex;
            gap: 10px;
            overflow-x: auto;
            margin-bottom: 24px;
            padding-bottom: 4px;
            scroll-padding-inline: 12px;
            scrollbar-width: none;
        }

        .menu-tabs::-webkit-scrollbar {
            display: none;
        }

        .menu-tabs a {
            flex: 0 0 auto;
            padding: 11px 16px;
            border: 1px solid var(--line);
            border-radius: 999px;
            color: var(--muted);
            font-size: 13px;
            font-weight: 800;
            text-transform: uppercase;
            transition: border-color 180ms ease, color 180ms ease, background 180ms ease;
        }

        .menu-tabs a:hover {
            color: var(--sunset-2);
            border-color: var(--sunset);
        }

        .menu-tabs a.is-active {
            border-color: var(--sunset);
            background: rgba(217, 130, 43, 0.12);
        }

        .menu-grid {
            display: grid;
            grid-template-columns: repeat(2, minmax(0, 1fr));
            gap: 20px;
        }

        .menu-card {
            padding: 26px;
            border: 1px solid var(--line);
            border-radius: 28px;
            background: linear-gradient(180deg, rgba(255, 243, 223, 0.07), rgba(23, 56, 59, 0.12));
        }

        .menu-card.full {
            grid-column: 1 / -1;
        }

        .menu-card h3 {
            display: flex;
            align-items: center;
            gap: 11px;
            margin-bottom: 18px;
            color: var(--cream);
            font-size: 28px;
        }

        .menu-card h3 i {
            color: var(--sunset-2);
            font-size: 22px;
        }

        .price-table {
            width: 100%;
            border-collapse: collapse;
        }

        .price-table th,
        .price-table td {
            padding: 12px 8px;
            border-bottom: 1px solid rgba(255, 243, 223, 0.12);
            text-align: right;
            vertical-align: top;
        }

        .price-table th:first-child,
        .price-table td:first-child {
            padding-left: 0;
            text-align: left;
        }

        .price-table th {
            color: var(--sunset-2);
            font-size: 12px;
            font-weight: 800;
            letter-spacing: 0.12em;
            text-transform: uppercase;
        }

        .price-table td {
            font-size: 16px;
            font-weight: 500;
        }

        .price,
        .item-price {
            color: var(--sunset-2);
            font-weight: 800;
            white-space: nowrap;
        }

        .item-list {
            display: grid;
            gap: 12px;
        }

        .menu-item {
            display: grid;
            grid-template-columns: minmax(0, 1fr) auto;
            gap: 18px;
            padding-bottom: 12px;
            border-bottom: 1px solid rgba(255, 243, 223, 0.12);
        }

        .menu-item:last-child,
        .price-table tr:last-child td {
            border-bottom: 0;
            padding-bottom: 0;
        }

        .menu-item strong {
            font-size: 17px;
            font-weight: 700;
        }

        .menu-item small {
            display: block;
            margin-top: 3px;
            color: var(--muted);
            font-size: 13px;
            font-weight: 500;
        }

        .notice {
            margin-top: 24px;
            padding: 18px 20px;
            border-left: 4px solid var(--sunset);
            border-radius: 18px;
            background: rgba(217, 130, 43, 0.1);
            color: var(--muted);
        }

        .gallery-grid {
            display: grid;
            grid-template-columns: 1.1fr 0.9fr 0.9fr;
            grid-auto-rows: 240px;
            gap: 18px;
        }

        .gallery-grid img {
            width: 100%;
            height: 100%;
            object-fit: cover;
            border: 1px solid var(--line);
            border-radius: 28px;
        }

        .gallery-grid img:first-child {
            grid-row: span 2;
        }

        .contact-panel {
            display: grid;
            grid-template-columns: 0.95fr 1.05fr;
            gap: 24px;
            padding: 26px;
            border: 1px solid var(--line);
            border-radius: 36px;
            background: rgba(255, 243, 223, 0.07);
            box-shadow: var(--shadow);
        }

        .contact-card {
            padding: 26px;
            border-radius: 28px;
            background: rgba(2, 21, 17, 0.46);
        }

        .contact-card h2 {
            color: var(--gold-2);
            font-size: clamp(38px, 5vw, 66px);
        }

        .contact-row {
            display: flex;
            gap: 14px;
            align-items: flex-start;
            margin-top: 20px;
            color: var(--muted);
        }

        .contact-row i {
            width: 22px;
            margin-top: 4px;
            color: var(--sunset-2);
        }

        .contact-row strong {
            display: block;
            color: var(--cream);
        }

        .text-link {
            color: var(--sunset-2);
            font-weight: 800;
        }

        .text-link:hover {
            color: var(--gold-2);
        }

        .contact-actions {
            display: flex;
            flex-wrap: wrap;
            gap: 12px;
            margin-top: 28px;
        }

        .map-placeholder {
            display: grid;
            min-height: 420px;
            place-items: center;
            border: 1px dashed rgba(217, 130, 43, 0.42);
            border-radius: 28px;
            background:
                linear-gradient(135deg, rgba(2, 21, 17, 0.66), rgba(217, 130, 43, 0.14)),
                url("../assets/images/lake-view.jpeg") center/cover;
            text-align: center;
        }

        .map-placeholder div {
            max-width: 360px;
            padding: 24px;
            border: 1px solid var(--line);
            border-radius: 22px;
            background: rgba(2, 21, 17, 0.84);
            backdrop-filter: blur(12px);
        }

        .map-placeholder strong {
            display: block;
            color: var(--sunset-2);
            font-family: "Playfair Display", Georgia, serif;
            font-size: 30px;
        }

        .map-placeholder p {
            margin-top: 8px;
            color: var(--muted);
        }

        .footer {
            padding: 34px 0 96px;
            border-top: 1px solid rgba(217, 130, 43, 0.2);
            color: var(--muted);
        }

        .footer-inner {
            display: flex;
            justify-content: space-between;
            gap: 20px;
            align-items: center;
        }

        .footer-legal {
            display: flex;
            flex-wrap: wrap;
            justify-content: flex-end;
            gap: 10px 18px;
            max-width: 520px;
            text-align: right;
        }

        .footer-legal a {
            color: var(--sunset-2);
            font-size: 13px;
            font-weight: 700;
        }

        .footer-legal a:hover {
            color: var(--gold-2);
        }

        .legal-page {
            padding: 72px 0 96px;
        }

        .legal-page h1 {
            max-width: 900px;
            margin-bottom: 14px;
            font-size: clamp(46px, 7vw, 88px);
        }

        .legal-updated {
            color: var(--muted);
            font-weight: 600;
        }

        .back-link {
            display: inline-flex;
            align-items: center;
            gap: 8px;
            margin-bottom: 28px;
            color: var(--sunset-2);
            font-weight: 800;
        }

        .legal-card {
            max-width: 940px;
            margin-top: 34px;
            padding: clamp(24px, 4vw, 42px);
            border: 1px solid var(--line);
            border-radius: 30px;
            background: linear-gradient(180deg, rgba(255, 243, 223, 0.075), rgba(23, 56, 59, 0.12));
            box-shadow: var(--shadow);
        }

        .legal-card h2 {
            margin-top: 28px;
            color: var(--gold-2);
            font-size: 28px;
        }

        .legal-card h2:first-child {
            margin-top: 0;
        }

        .legal-card p {
            margin-top: 12px;
            color: var(--muted);
        }

        .legal-card a {
            color: var(--sunset-2);
            font-weight: 800;
        }

        .footer strong {
            color: var(--gold-2);
            font-family: "Playfair Display", Georgia, serif;
            font-size: 26px;
        }

        .mobile-bar {
            position: fixed;
            right: 14px;
            bottom: 14px;
            left: 14px;
            z-index: 60;
            display: none;
            grid-template-columns: repeat(4, 1fr);
            overflow: hidden;
            border: 1px solid var(--line);
            border-radius: 22px;
            background: rgba(2, 21, 17, 0.94);
            box-shadow: 0 20px 70px rgba(0, 0, 0, 0.45);
            backdrop-filter: blur(18px);
        }

        .mobile-bar a {
            display: grid;
            gap: 4px;
            place-items: center;
            padding: 11px 6px;
            color: var(--muted);
            font-size: 11px;
            font-weight: 800;
        }

        .mobile-bar i {
            color: var(--gold-2);
            font-size: 17px;
        }

        @media (max-width: 1020px) {
            .nav-links {
                display: none;
            }

            .hero,
            .about-panel,
            .contact-panel {
                grid-template-columns: 1fr;
            }

            .hero {
                min-height: auto;
            }

            .photo-stack {
                height: 460px;
            }

            .photo-main {
                height: 100%;
            }

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

        @media (max-width: 760px) {
            .shell {
                width: min(100% - 22px, 1180px);
            }

            .site-header {
                position: sticky;
            }

            .nav {
                min-height: 72px;
                gap: 12px;
            }

            .nav-cta {
                display: none;
            }

            .brand-logo {
                width: 52px;
                height: 52px;
            }

            .brand-text strong {
                font-size: clamp(19px, 6vw, 22px);
            }

            .brand-text span {
                font-size: 10px;
                letter-spacing: 0.18em;
            }

            .hero {
                gap: 34px;
                padding: 36px 0 34px;
            }

            h1 {
                font-size: clamp(40px, 13.5vw, 62px);
                letter-spacing: -0.05em;
            }

            .hero-lead,
            .about-copy p {
                font-size: 16px;
            }

            .hero-actions,
            .contact-actions {
                display: grid;
            }

            .btn {
                width: 100%;
            }

            .hero-facts,
            .highlights,
            .about-list,
            .menu-grid,
            .gallery-grid {
                grid-template-columns: 1fr;
            }

            .hero-facts {
                gap: 10px;
            }

            .photo-stack {
                height: auto;
                min-height: auto;
            }

            .photo-main {
                height: min(360px, 82vw);
                border-radius: 28px;
            }

            .photo-small {
                position: relative;
                right: auto;
                bottom: auto;
                width: 100%;
                margin-top: 16px;
            }

            section {
                scroll-margin-top: 88px;
                padding: 54px 0;
            }

            .section-head {
                display: block;
            }

            .section-head p {
                margin-top: 12px;
                text-align: left;
            }

            .menu-card.full {
                grid-column: auto;
            }

            .menu-card,
            .about-panel,
            .contact-panel,
            .contact-card {
                padding: 18px;
                border-radius: 24px;
            }

            .menu-card h3 {
                align-items: flex-start;
                font-size: 24px;
            }

            .menu-item {
                gap: 12px;
            }

            .menu-item strong {
                font-size: 16px;
            }

            .menu-tabs {
                position: sticky;
                top: 72px;
                z-index: 20;
                margin-inline: -11px;
                padding: 10px 11px 12px;
                background: rgba(2, 21, 17, 0.94);
                backdrop-filter: blur(14px);
            }

            .price-table {
                display: block;
                overflow-x: auto;
                white-space: nowrap;
                -webkit-overflow-scrolling: touch;
            }

            .price-table th,
            .price-table td {
                min-width: 82px;
                font-size: 14px;
            }

            .price-table th:first-child,
            .price-table td:first-child {
                min-width: 172px;
            }

            .gallery-grid {
                grid-auto-rows: min(280px, 72vw);
            }

            .gallery-grid img:first-child {
                grid-row: auto;
            }

            .footer-inner {
                display: block;
            }

            .footer-legal {
                display: grid;
                justify-content: start;
                margin-top: 18px;
                text-align: left;
            }

            .legal-page {
                padding: 46px 0 104px;
            }

            .legal-page h1 {
                font-size: clamp(38px, 12vw, 58px);
            }

            .map-placeholder {
                min-height: 300px;
            }

            .mobile-bar {
                display: grid;
            }
        }

        @media (max-width: 420px) {
            .brand {
                gap: 9px;
            }

            .brand-logo {
                width: 46px;
                height: 46px;
            }

            .brand-text span {
                max-width: 150px;
                overflow: hidden;
                text-overflow: ellipsis;
                white-space: nowrap;
            }

            .eyebrow {
                gap: 9px;
                font-size: 11px;
                letter-spacing: 0.18em;
            }

            .eyebrow::before {
                width: 28px;
            }

            .hero-actions,
            .contact-actions {
                gap: 10px;
            }

            .fact {
                padding: 12px 14px;
            }

            .footer {
                padding-bottom: 104px;
            }
        }

