:root {
    --plum: #4b1c3d;
    --plum-dark: #321127;
    --gold: #d7b35f;
    --gold-soft: #f0d992;
    --cream: #f8f5ee;
    --cream-deep: #efe6dc;
    --paper: #fffdf9;
    --ink: #2d2028;
    --muted: #766d70;
    --green: #1f6f57;
    --sage: #e8f2ed;
    --line: rgba(75, 28, 61, .14);
    --shadow: 0 1rem 2.5rem rgba(45, 18, 38, .12);
    --container: 1180px;
    --header-offset: 7.2rem;
}

*,
*::before,
*::after {
    box-sizing: border-box;
}

html {
    overflow-x: hidden;
    scroll-padding-top: var(--header-offset);
    scroll-behavior: smooth;
}

body {
    margin: 0;
    min-width: 320px;
    overflow-x: hidden;
    color: var(--ink);
    background: var(--cream);
    font-family: Lato, "Segoe UI", Arial, sans-serif;
    font-size: 1rem;
    line-height: 1.55;
    text-rendering: optimizeLegibility;
}

body.nav-open {
    overflow: hidden;
}

body.nav-open::before {
    content: "";
    position: fixed;
    inset: 0;
    z-index: 35;
    background: rgba(35, 12, 30, .55);
}

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

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

button,
input,
select {
    font: inherit;
}

button {
    cursor: pointer;
}

em {
    color: var(--gold);
    font-style: italic;
}

.container {
    width: min(var(--container), calc(100% - 2rem));
    margin-inline: auto;
}

.row {
    --gap: 1.5rem;
    display: grid;
    grid-template-columns: repeat(12, minmax(0, 1fr));
    gap: var(--gap);
}

.row > * {
    grid-column: 1 / -1;
    min-width: 0;
}

.g-3 {
    --gap: 1rem;
}

.g-4 {
    --gap: 1.5rem;
}

.g-5 {
    --gap: 3rem;
}

.d-flex {
    display: flex;
}

.justify-content-between {
    justify-content: space-between;
}

.align-items-center {
    align-items: center;
}

.align-items-end {
    align-items: end;
}

.text-center {
    text-align: center;
}

.mx-auto {
    margin-inline: auto;
}

.mb-4 {
    margin-bottom: 1.5rem;
}

.mb-5 {
    margin-bottom: 3rem;
}

.w-100 {
    width: 100%;
}

.bi {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 auto;
    width: 1em;
    height: 1em;
    font-style: normal;
    line-height: 1;
}

.bi::before {
    content: "";
    display: block;
    width: 1em;
    height: 1em;
    background: currentColor;
    -webkit-mask: var(--icon) center / contain no-repeat;
    mask: var(--icon) center / contain no-repeat;
}

.bi-telephone-fill::before {
    --icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M22 16.92v3a2 2 0 0 1-2.18 2 19.8 19.8 0 0 1-8.63-3.07 19.5 19.5 0 0 1-6-6A19.8 19.8 0 0 1 2.12 4.18 2 2 0 0 1 4.11 2h3a2 2 0 0 1 2 1.72c.12.92.33 1.82.63 2.68a2 2 0 0 1-.45 2.11L8.1 9.7a16 16 0 0 0 6.2 6.2l1.19-1.19a2 2 0 0 1 2.11-.45c.86.3 1.76.51 2.68.63A2 2 0 0 1 22 16.92z'/%3E%3C/svg%3E");
}

.bi-envelope-fill::before {
    --icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='5' width='18' height='14' rx='2'/%3E%3Cpath d='m3 7 9 6 9-6'/%3E%3C/svg%3E");
}

.bi-megaphone-fill::before {
    --icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m3 11 18-5v12L3 14z'/%3E%3Cpath d='M11.6 16.8a3 3 0 0 1-5.8-1.5'/%3E%3C/svg%3E");
}

.bi-images::before {
    --icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='3' width='18' height='18' rx='2'/%3E%3Ccircle cx='8.5' cy='8.5' r='1.5'/%3E%3Cpath d='m21 15-5-5L5 21'/%3E%3C/svg%3E");
}

.bi-arrow-up-right::before {
    --icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M7 17 17 7'/%3E%3Cpath d='M7 7h10v10'/%3E%3C/svg%3E");
}

.bi-arrow-right::before {
    --icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12h14'/%3E%3Cpath d='m13 6 6 6-6 6'/%3E%3C/svg%3E");
}

.bi-arrow-up::before {
    --icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 19V5'/%3E%3Cpath d='m6 11 6-6 6 6'/%3E%3C/svg%3E");
}

.bi-check2-circle::before {
    --icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M22 11.1V12a10 10 0 1 1-5.9-9.1'/%3E%3Cpath d='m9 11 3 3L22 4'/%3E%3C/svg%3E");
}

.bi-info-circle::before {
    --icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'/%3E%3Cpath d='M12 16v-4'/%3E%3Cpath d='M12 8h.01'/%3E%3C/svg%3E");
}

.bi-x-lg::before {
    --icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.4' stroke-linecap='round'%3E%3Cpath d='M18 6 6 18'/%3E%3Cpath d='m6 6 12 12'/%3E%3C/svg%3E");
}

.bi-whatsapp::before {
    --icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='black'%3E%3Cpath d='M20.5 3.5A11.8 11.8 0 0 0 12.1 0C5.6 0 .3 5.3.3 11.8c0 2.1.6 4.1 1.6 5.9L0 24l6.5-1.7a11.8 11.8 0 0 0 5.6 1.4h.1C18.7 23.7 24 18.4 24 11.9a11.8 11.8 0 0 0-3.5-8.4ZM12.1 21.7h-.1a9.8 9.8 0 0 1-5-1.4l-.4-.2-3.8 1 1-3.7-.2-.4a9.8 9.8 0 0 1-1.5-5.2c0-5.4 4.4-9.8 9.9-9.8 2.6 0 5.1 1 7 2.9a9.8 9.8 0 0 1 2.9 7c0 5.4-4.4 9.8-9.8 9.8Zm5.4-7.4c-.3-.1-1.8-.9-2.1-1-.3-.1-.5-.1-.7.2-.2.3-.8 1-.9 1.2-.2.2-.3.2-.6.1-.3-.1-1.2-.4-2.3-1.4-.9-.8-1.4-1.7-1.6-2-.2-.3 0-.5.1-.6l.5-.6c.2-.2.2-.3.3-.5.1-.2.1-.4 0-.6 0-.1-.7-1.7-1-2.3-.3-.6-.5-.5-.7-.5h-.6c-.2 0-.6.1-.9.4-.3.3-1.2 1.2-1.2 2.8 0 1.7 1.2 3.3 1.4 3.5.2.2 2.4 3.7 5.8 5.1.8.3 1.4.5 1.9.7.8.3 1.6.2 2.2.1.7-.1 1.8-.7 2-1.4.3-.7.3-1.3.2-1.4-.1-.2-.3-.3-.6-.4Z'/%3E%3C/svg%3E");
}

.bi-facebook::before {
    --icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='black'%3E%3Cpath d='M15.1 8H18V4h-3.4C10.9 4 9 6.2 9 9.5V12H6v4h3v8h4v-8h3.3l.7-4h-4V9.8c0-1.2.4-1.8 2.1-1.8Z'/%3E%3C/svg%3E");
}

.bi-instagram::before {
    --icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.1' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='3' width='18' height='18' rx='5'/%3E%3Ccircle cx='12' cy='12' r='4'/%3E%3Cpath d='M17.5 6.5h.01'/%3E%3C/svg%3E");
}

.bi-youtube::before {
    --icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='black'%3E%3Cpath d='M23.5 6.2a3 3 0 0 0-2.1-2.1C19.5 3.6 12 3.6 12 3.6s-7.5 0-9.4.5A3 3 0 0 0 .5 6.2 31 31 0 0 0 0 12a31 31 0 0 0 .5 5.8 3 3 0 0 0 2.1 2.1c1.9.5 9.4.5 9.4.5s7.5 0 9.4-.5a3 3 0 0 0 2.1-2.1A31 31 0 0 0 24 12a31 31 0 0 0-.5-5.8ZM9.6 15.6V8.4l6.2 3.6-6.2 3.6Z'/%3E%3C/svg%3E");
}

.bi-tiktok::before {
    --icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='black'%3E%3Cpath d='M16.6 1.5c.4 3 2.1 4.8 5.1 5v3.4a9 9 0 0 1-5.1-1.6v7.6c0 4.7-3.2 7.6-7.4 7.6-4 0-7-2.8-7-6.5 0-4.1 3.2-6.9 7.5-6.6.5 0 .9.1 1.3.2v3.8a4.4 4.4 0 0 0-1.6-.3c-1.9 0-3.2 1.1-3.2 2.8 0 1.5 1.2 2.7 2.9 2.7 1.9 0 3.1-1.2 3.1-3.5V1.5h4.4Z'/%3E%3C/svg%3E");
}

.bi-flower1::before {
    --icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 22s-4-5-4-9a4 4 0 0 1 8 0c0 4-4 9-4 9Z'/%3E%3Cpath d='M12 2s4 5 4 9a4 4 0 0 1-8 0c0-4 4-9 4-9Z'/%3E%3Cpath d='M2 12s5-4 9-4a4 4 0 0 1 0 8c-4 0-9-4-9-4Z'/%3E%3Cpath d='M22 12s-5 4-9 4a4 4 0 0 1 0-8c4 0 9 4 9 4Z'/%3E%3C/svg%3E");
}

.bi-fire::before {
    --icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='black'%3E%3Cpath d='M13.6 1.5c.7 3.4-.8 5.2-2.3 6.8-1.3 1.4-2.6 2.8-2.3 5 .8-.8 1.4-1.7 1.8-2.8 2.8 1.5 4.2 3.7 4.2 6.4 0 1.8-.7 3.5-2 4.6 4.7-.5 8-4 8-8.8 0-4.7-3.1-8.9-7.4-11.2ZM11.5 22.5c-2.7-.4-5.7-2.7-5.7-6.4 0-2.2 1-4.3 3-6.3-.1 1.5.3 2.8 1.3 3.8.6-1.6 1.7-2.8 3.2-3.8.8 1.3 1.2 2.6 1.2 4 0 2.8-1.2 5-3 8.7Z'/%3E%3C/svg%3E");
}

.bi-heart-fill::before {
    --icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='black'%3E%3Cpath d='M12 21s-7.5-4.7-10-9.4C-.3 7.2 2.4 3 6.8 3c2.1 0 4 1.1 5.2 2.8A6.4 6.4 0 0 1 17.2 3c4.4 0 7.1 4.2 4.8 8.6C19.5 16.3 12 21 12 21Z'/%3E%3C/svg%3E");
}

.bi-stars::before {
    --icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='black'%3E%3Cpath d='m12 2 1.6 5.2L19 9l-5.4 1.8L12 16l-1.6-5.2L5 9l5.4-1.8L12 2Zm7 11 1 3 3 1-3 1-1 3-1-3-3-1 3-1 1-3ZM5 13l.8 2.2L8 16l-2.2.8L5 19l-.8-2.2L2 16l2.2-.8L5 13Z'/%3E%3C/svg%3E");
}

.bi-briefcase-fill::before {
    --icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='7' width='18' height='13' rx='2'/%3E%3Cpath d='M8 7V5a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2'/%3E%3Cpath d='M3 13h18'/%3E%3C/svg%3E");
}

.topbar {
    position: relative;
    z-index: 60;
    padding: .42rem 0;
    background: transparent;
    border-bottom: 0;
    color: var(--plum);
}

.topbar .container {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: .85rem;
    min-width: 0;
}

.topbar a {
    display: inline-flex;
    align-items: center;
    gap: .45rem;
    min-width: 0;
    max-width: 100%;
    padding: .42rem .9rem;
    border: 1px solid rgba(75, 28, 61, .14);
    border-radius: 999px;
    background: transparent;
    color: var(--plum);
    font-size: 1.05rem;
    font-weight: 700;
    line-height: 1;
    white-space: nowrap;
    transition: background .2s ease, color .2s ease, border-color .2s ease;
}

.topbar a[href^="mailto:"] {
    overflow: hidden;
    text-overflow: ellipsis;
}

.topbar a i {
    color: var(--gold);
    font-size: .92em;
}

.topbar a:hover,
.topbar a:focus-visible {
    background: rgba(75, 28, 61, .06);
    border-color: rgba(215, 179, 95, .55);
    color: var(--plum-dark);
}

.announcement {
    min-width: 0;
    color: var(--plum);
    font-size: .92rem;
    font-style: italic;
    white-space: nowrap;
}

.announcement i {
    margin-right: .35rem;
    color: var(--gold);
}

.site-nav {
    position: sticky;
    top: 0;
    z-index: 50;
    background: rgba(255, 253, 249, .94);
    border-bottom: 1px solid rgba(215, 179, 95, .28);
    box-shadow: 0 .75rem 2rem rgba(45, 18, 38, .06);
    backdrop-filter: blur(14px);
    transition: box-shadow .2s ease, background .2s ease;
}

.site-nav.scrolled {
    background: rgba(255, 253, 249, .98);
    box-shadow: 0 .75rem 2rem rgba(45, 18, 38, .11);
}

.site-nav .container {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    min-height: 5rem;
}

.navbar-brand {
    display: flex;
    align-items: center;
    justify-content: center;
    align-self: center;
    width: auto;
    min-height: 3.35rem;
    padding: .55rem 1.25rem;
    border: 1px solid rgba(215, 179, 95, .45);
    border-radius: 999px;
    background: linear-gradient(135deg, var(--plum), #37162f);
    color: #fff;
    font-family: Georgia, "Times New Roman", serif;
    font-size: 1.12rem;
    font-style: italic;
    line-height: 1.1;
    text-align: center;
    transition: color .2s ease;
}

.navbar-brand:hover,
.navbar-brand:focus-visible {
    color: var(--gold-soft);
}

.navbar-toggler {
    display: none;
}

.navbar-collapse {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    flex: 1 1 auto;
    gap: 1.2rem;
}

.nav-drawer-head {
    display: none;
}

.navbar-nav {
    display: flex;
    align-items: center;
    gap: .25rem;
    padding: 0;
    margin: 0;
    list-style: none;
}

.nav-link {
    display: inline-flex;
    align-items: center;
    min-height: 2.65rem;
    padding: .65rem .78rem;
    border-radius: 999px;
    color: var(--ink);
    font-size: .88rem;
    font-style: italic;
    transition: color .2s ease, background .2s ease, box-shadow .2s ease;
}

.nav-link:hover,
.nav-link:focus-visible {
    background: rgba(75, 28, 61, .08);
    color: var(--plum);
    box-shadow: inset 0 0 0 1px rgba(75, 28, 61, .08);
}

.btn,
.btn-gold,
.nav-cta,
.btn-outline-light {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: .45rem;
    min-height: 2.85rem;
    border: 1px solid transparent;
    border-radius: 1rem;
    padding: .78rem 1.25rem;
    font-size: .88rem;
    font-style: italic;
    font-weight: 700;
    line-height: 1.15;
    text-align: center;
    transition: transform .2s ease, background .2s ease, color .2s ease, border-color .2s ease;
}

.btn:hover,
.btn:focus-visible {
    transform: translateY(-2px);
}

.btn-gold,
.nav-cta {
    background: var(--gold);
    border-color: #b9943f;
    color: var(--plum-dark);
}

.btn-gold:hover,
.btn-gold:focus-visible,
.nav-cta:hover,
.nav-cta:focus-visible {
    background: var(--gold-soft);
    color: var(--plum-dark);
}

.nav-cta {
    border-radius: 999px;
    box-shadow: 0 .55rem 1.2rem rgba(215, 179, 95, .24);
}

.btn-outline-light {
    border-color: rgba(255, 255, 255, .72);
    color: #fff;
}

.btn-outline-light:hover,
.btn-outline-light:focus-visible {
    background: #fff;
    color: var(--plum);
}

.hero-section {
    position: relative;
    display: flex;
    align-items: center;
    min-height: clamp(34rem, calc(100svh - var(--header-offset) - 4rem), 44rem);
    overflow: hidden;
    isolation: isolate;
    background: var(--plum-dark);
    color: #fff;
}

.hero-section::before,
.hero-section::after {
    content: "";
    position: absolute;
    inset: 0;
    z-index: 1;
    pointer-events: none;
}

.hero-section::before {
    background: linear-gradient(90deg, rgba(50, 17, 39, .9), rgba(75, 28, 61, .62) 56%, rgba(30, 5, 25, .34));
}

.hero-section::after {
    background: linear-gradient(180deg, rgba(50, 17, 39, .08), rgba(50, 17, 39, .38)), radial-gradient(circle at 72% 30%, rgba(215, 179, 95, .18), transparent 26%);
}

.hero-slideshow {
    position: absolute;
    inset: -6%;
    z-index: 0;
    overflow: hidden;
}

.hero-slide {
    position: absolute;
    inset: 0;
    background-image: var(--hero-image);
    background-position: center;
    background-size: cover;
    opacity: 0;
    transform: scale(1.04);
    transform-origin: center;
    animation: heroSlideshow 24s ease-in-out infinite;
    animation-delay: var(--slide-delay);
    will-change: opacity, transform;
}

.hero-slide:first-child {
    opacity: 1;
}

.hero-content {
    position: relative;
    z-index: 2;
    width: min(var(--container), calc(100% - 2rem));
    padding: clamp(4.5rem, 7vw, 6.25rem) 0 clamp(4rem, 6vw, 5.5rem);
}

.hero-text {
    width: min(50rem, 56vw);
    max-width: 100%;
}

.hero-feature {
    position: absolute;
    z-index: 2;
    top: 50%;
    right: clamp(1rem, 5vw, 5rem);
    width: min(36rem, 38vw);
    min-height: 35rem;
    transform: translateY(-50%);
}

.hero-feature::before {
    content: "";
    position: absolute;
    inset: 2.6rem 2.5rem 3.5rem 3rem;
    border: 1px solid rgba(240, 217, 146, .42);
    border-radius: 2rem;
    transform: rotate(-5deg);
}

.eyebrow {
    margin: 0 0 .9rem;
    color: var(--gold);
    font-size: .82rem;
    font-style: italic;
    font-weight: 700;
    letter-spacing: .03em;
    text-transform: uppercase;
}

.hero-section h1 {
    margin: 0;
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(2.65rem, 4.1vw, 4.35rem);
    font-weight: 700;
    line-height: 1.06;
    text-wrap: balance;
}

.hero-section h1 span,
.hero-section h1 em {
    display: block;
}

.hero-copy {
    max-width: 38rem;
    margin: 1.25rem 0 1.8rem;
    color: rgba(255, 255, 255, .94);
    font-size: clamp(1rem, 1.6vw, 1.32rem);
    font-style: italic;
    font-weight: 700;
    line-height: 1.6;
}

.hero-actions {
    display: flex;
    flex-wrap: wrap;
    gap: .85rem;
    max-width: 100%;
}

.feature-photo {
    position: absolute;
    background-position: center;
    background-size: cover;
    border: 7px solid rgba(248, 245, 238, .9);
    border-radius: 1.45rem;
    box-shadow: 0 1.5rem 4rem rgba(30, 5, 25, .32);
}

.feature-photo-main {
    top: 0;
    right: 0;
    width: min(29rem, 78%);
    height: 20rem;
    background-image: url("images/hero-main.webp");
}

.feature-photo-small {
    bottom: 1.8rem;
    left: 0;
    width: min(22rem, 62%);
    height: 14.5rem;
    background-image: url("images/hero-detail.webp");
}

.booking-card {
    position: absolute;
    right: 0;
    bottom: .6rem;
    width: 18.5rem;
    padding: 2rem 2.1rem;
    border: 2px solid var(--gold);
    border-radius: 3rem 3rem 0 3rem;
    background: linear-gradient(135deg, rgba(75, 28, 61, .98), rgba(82, 24, 66, .95));
    box-shadow: 0 1.35rem 3.2rem rgba(30, 5, 25, .34);
}

.booking-card strong {
    display: block;
    margin-bottom: 1rem;
    color: #fff;
    font-size: 1.35rem;
    font-style: italic;
    line-height: 1.1;
}

.booking-card span {
    display: block;
    color: #fff;
    font-size: 1.04rem;
    line-height: 1.55;
}

.booking-card a {
    display: inline-flex;
    align-items: center;
    gap: .4rem;
    margin-top: 1.25rem;
    color: var(--gold);
    font-size: 1.04rem;
    font-weight: 700;
}

.hero-text .eyebrow,
.hero-text h1,
.hero-text .hero-copy,
.hero-text .hero-actions,
.hero-feature .feature-photo,
.hero-feature .booking-card {
    opacity: 0;
    animation: heroTextIn .85s cubic-bezier(.2, .75, .25, 1) forwards;
}

.hero-text .eyebrow {
    animation-delay: .1s;
}

.hero-text h1 {
    animation-delay: .22s;
}

.hero-text .hero-copy {
    animation-delay: .34s;
}

.hero-text .hero-actions {
    animation-delay: .46s;
}

.hero-feature .feature-photo-main {
    animation-delay: .42s;
}

.hero-feature .feature-photo-small {
    animation-delay: .56s;
}

.hero-feature .booking-card {
    animation-delay: .68s;
}

.section-padding {
    padding: 6rem 0;
}

.occasion-section {
    padding: 3rem 0;
    border-block: 1px solid rgba(75, 28, 61, .08);
    background: #fff;
    color: var(--plum);
    text-align: center;
}

.occasion-copy {
    max-width: 46rem;
    margin: 0 auto;
}

.section-kicker {
    margin: 0;
    color: var(--plum);
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(1.8rem, 3vw, 2.45rem);
    font-style: italic;
    font-weight: 700;
}

.gold-rule {
    position: relative;
    width: min(16rem, 100%);
    height: 1px;
    margin: .6rem auto 1rem;
    background: var(--gold);
}

.gold-rule::before,
.gold-rule::after {
    content: "";
    position: absolute;
    top: -2px;
    width: 5px;
    height: 5px;
    border-radius: 50%;
    background: var(--gold);
}

.gold-rule::before {
    left: 0;
}

.gold-rule::after {
    right: 0;
}

.occasion-copy p:last-child {
    max-width: 36rem;
    margin: 0 auto;
    color: var(--muted);
    font-size: 1rem;
    font-style: italic;
    line-height: 1.7;
}

.occasion-section .text-reveal {
    opacity: 1;
    transform: none;
}

.food-showcase-section {
    background: #fff;
    color: var(--ink);
}

.food-showcase-visual {
    position: relative;
    min-height: 35rem;
}

.food-showcase-visual img {
    object-fit: cover;
    box-shadow: 0 1.2rem 3rem rgba(75, 28, 61, .14);
}

.food-image-main {
    width: 88%;
    height: 28rem;
    border-radius: .9rem;
}

.food-image-side {
    position: absolute;
    right: 0;
    bottom: 0;
    width: 42%;
    height: 22rem;
    border: 7px solid #fff;
    border-radius: .9rem;
}

.food-showcase-copy h2,
.about-copy h2,
.section-intro h2,
.spaces-section h2,
.gallery-section h2,
.contact-section h2 {
    margin: 0 0 1.25rem;
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(2rem, 4vw, 3.25rem);
    font-weight: 700;
    line-height: 1.08;
    text-wrap: balance;
}

.food-showcase-copy h2,
.section-intro h2,
.spaces-section h2,
.gallery-section h2 {
    color: var(--plum);
}

.food-showcase-copy p:not(.eyebrow),
.section-note {
    color: var(--muted);
    font-size: .98rem;
    line-height: 1.75;
}

.food-highlights {
    display: grid;
    gap: .75rem;
    margin: 1.45rem 0 .7rem;
}

.food-highlights span {
    display: flex;
    align-items: center;
    gap: .65rem;
    color: var(--plum);
    font-size: .95rem;
    font-style: italic;
    font-weight: 700;
}

.food-highlights i {
    color: var(--gold);
    font-size: 1.1rem;
}

.text-link {
    display: inline-flex;
    align-items: center;
    gap: .35rem;
    margin-top: .85rem;
    padding-bottom: .35rem;
    border-bottom: 1px solid currentColor;
    color: var(--gold);
    font-size: .88rem;
    font-style: italic;
    font-weight: 700;
}

.menu-board {
    margin-top: 5rem;
    padding: clamp(1.35rem, 3vw, 2.4rem);
    border: 1px solid rgba(215, 179, 95, .35);
    border-radius: .55rem;
    background: linear-gradient(135deg, #fff 0%, #fff8ef 58%, #f7fbf8 100%);
    box-shadow: 0 1.4rem 3.5rem rgba(75, 28, 61, .1);
}

.menu-board-header {
    display: flex;
    align-items: end;
    justify-content: space-between;
    gap: 2rem;
    padding-bottom: 1.45rem;
    border-bottom: 1px solid rgba(215, 179, 95, .3);
}

.menu-board-header .eyebrow {
    margin-bottom: .55rem;
    color: var(--green);
}

.menu-board-header h3 {
    margin: 0;
    color: var(--plum);
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(1.8rem, 3vw, 2.8rem);
    line-height: 1.05;
}

.menu-board-header p:not(.eyebrow) {
    max-width: 26rem;
    margin: 0;
    color: var(--muted);
    font-size: .98rem;
    line-height: 1.7;
}

.menu-category-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1rem;
    margin-top: 1.35rem;
}

.menu-category {
    min-height: 100%;
    padding: 1.25rem;
    border: 1px solid rgba(75, 28, 61, .12);
    border-left: 4px solid var(--gold);
    border-radius: .5rem;
    background: #fff;
}

.menu-category-featured {
    border-left-color: var(--green);
    background: linear-gradient(180deg, #fff, #f7fbf8);
}

.menu-category span {
    display: block;
    margin-bottom: .8rem;
    color: var(--plum);
    font-family: Georgia, "Times New Roman", serif;
    font-size: 1.25rem;
    font-weight: 700;
    line-height: 1.15;
}

.menu-category ul {
    display: grid;
    gap: .55rem;
    padding: 0;
    margin: 0;
    list-style: none;
}

.menu-category li {
    position: relative;
    padding-left: 1rem;
    color: var(--ink);
    font-size: .95rem;
    line-height: 1.45;
}

.menu-category li::before {
    content: "";
    position: absolute;
    top: .6rem;
    left: 0;
    width: .35rem;
    height: .35rem;
    border-radius: 50%;
    background: var(--gold);
}

.menu-board-footer {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    margin-top: 1.35rem;
    padding-top: 1rem;
    border-top: 1px solid rgba(75, 28, 61, .12);
    color: var(--muted);
    font-size: .9rem;
}

.menu-board-footer span {
    display: inline-flex;
    align-items: center;
    gap: .45rem;
}

.menu-board-footer i {
    color: var(--green);
}

.about-section {
    background: var(--plum);
    color: #fff;
}

.about-images {
    position: relative;
    min-height: 25rem;
}

.about-images img {
    object-fit: cover;
    border-radius: .55rem;
}

.about-image-large {
    width: 68%;
    height: 20rem;
}

.about-image-small {
    position: absolute;
    bottom: 0;
    left: 47%;
    width: 42%;
    height: 12rem;
    border: 5px solid var(--plum);
}

.about-copy {
    padding-left: 2rem;
}

.about-copy p:not(.eyebrow) {
    max-width: 31rem;
    color: #e7dce3;
    font-size: .98rem;
    line-height: 1.75;
}

.services-section {
    background: linear-gradient(180deg, var(--cream) 0%, var(--cream-deep) 100%);
}

.section-intro {
    max-width: 50rem;
    margin: 0 auto 3.3rem;
}

.service-card {
    position: relative;
    display: flex;
    flex-direction: column;
    min-height: 18.8rem;
    height: 100%;
    padding: 2rem 1.6rem 1.6rem;
    overflow: hidden;
    border: 1px solid rgba(75, 28, 61, .12);
    border-radius: .65rem;
    background: var(--cream);
    box-shadow: 0 .8rem 2rem rgba(75, 28, 61, .08);
    transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease;
}

.service-card::before {
    content: "";
    position: absolute;
    inset: 0 0 auto;
    height: .28rem;
    background: var(--gold);
}

.service-card:hover,
.service-card:focus-within {
    transform: translateY(-.45rem);
    border-color: rgba(215, 179, 95, .55);
    box-shadow: 0 1.2rem 2.6rem rgba(75, 28, 61, .14);
}

.service-card > i:first-child {
    display: grid;
    place-items: center;
    width: 3rem;
    height: 3rem;
    border: 1px solid rgba(215, 179, 95, .45);
    border-radius: 50%;
    background: rgba(215, 179, 95, .16);
    color: var(--gold);
    font-size: 1.45rem;
}

.service-card h3 {
    margin: 1rem 0 .55rem;
    color: var(--plum);
    font-family: Georgia, "Times New Roman", serif;
    font-size: 1.48rem;
    font-weight: 700;
    line-height: 1.12;
    text-wrap: balance;
}

.service-card p {
    max-width: 18rem;
    margin: 0 0 2.8rem;
    color: var(--muted);
    font-size: .9rem;
    line-height: 1.62;
}

.service-card a {
    position: absolute;
    right: 1.5rem;
    bottom: 1.5rem;
    display: grid;
    place-items: center;
    width: 2.35rem;
    height: 2.35rem;
    border-radius: 50%;
    background: rgba(75, 28, 61, .08);
    color: var(--plum);
    transition: background .2s ease, color .2s ease, transform .2s ease;
}

.service-card a:hover,
.service-card a:focus-visible {
    background: var(--plum);
    color: var(--gold);
    transform: rotate(8deg);
}

.featured-service {
    transform: translateY(-1rem);
    border-color: rgba(215, 179, 95, .68);
    background: linear-gradient(145deg, var(--plum), #35132d);
    color: #fff;
}

.featured-service:hover,
.featured-service:focus-within {
    transform: translateY(-1.35rem);
}

.featured-service::before {
    background: linear-gradient(90deg, var(--gold), var(--gold-soft));
}

.featured-service h3 {
    color: #fff;
}

.featured-service p {
    color: #e4d7df;
}

.featured-service a {
    color: var(--gold);
}

.spaces-section {
    background: linear-gradient(180deg, var(--cream), #fff);
}

.section-note {
    margin: 0;
    font-style: italic;
}

.spaces-grid {
    display: grid;
    grid-template-columns: minmax(0, 1.25fr) minmax(18rem, .75fr);
    gap: 1.2rem;
    align-items: stretch;
}

.space-card {
    position: relative;
    display: flex;
    align-items: flex-end;
    min-height: 27rem;
    padding: 2rem;
    overflow: hidden;
    isolation: isolate;
    border-radius: .75rem;
    background: var(--plum-dark);
    color: #fff;
    box-shadow: 0 1.1rem 2.8rem rgba(75, 28, 61, .12);
}

.space-card-large {
    min-height: 31rem;
}

.space-card img {
    position: absolute;
    inset: 0;
    z-index: -2;
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform .45s ease, filter .45s ease;
}

.space-card::before {
    content: "";
    position: absolute;
    inset: 0;
    z-index: -1;
    background: linear-gradient(180deg, rgba(48, 13, 40, .04) 0%, rgba(48, 13, 40, .25) 42%, rgba(48, 13, 40, .9) 100%);
}

.space-card:hover img,
.space-card:focus-within img {
    filter: saturate(1.08);
    transform: scale(1.05);
}

.space-card-content {
    position: relative;
    max-width: 27rem;
}

.space-card span {
    color: var(--gold);
    font-size: .78rem;
    font-style: italic;
    font-weight: 700;
}

.space-card h3 {
    margin: .35rem 0 0;
    font-family: Georgia, "Times New Roman", serif;
    font-size: 2rem;
    line-height: 1.1;
}

.space-card p {
    max-width: 23rem;
    margin: .65rem 0 0;
    color: rgba(255, 255, 255, .86);
    font-size: .92rem;
    font-style: italic;
    line-height: 1.55;
}

.gallery-section {
    background: var(--cream-deep);
}

.gallery-section .d-flex {
    gap: 1rem;
}

.gallery-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    grid-auto-flow: dense;
    grid-auto-rows: 14rem;
    gap: 1rem;
}

.gallery-grid img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    border-radius: .65rem;
    box-shadow: 0 .9rem 2rem rgba(75, 28, 61, .1);
    transition: transform .25s ease, box-shadow .25s ease, filter .25s ease;
}

.gallery-grid img:hover,
.gallery-grid img:focus-visible {
    filter: saturate(1.08);
    transform: translateY(-.28rem);
    box-shadow: 0 1.25rem 2.6rem rgba(75, 28, 61, .16);
}

.gallery-featured {
    grid-column: span 2;
    grid-row: span 2;
}

.contact-section {
    background: var(--plum-dark);
    color: #fff;
}

.light-label {
    color: var(--gold);
}

.contact-section h2 {
    font-size: clamp(2.4rem, 5vw, 4.3rem);
}

.contact-copy {
    max-width: 31rem;
    color: #ddcfd9;
    line-height: 1.75;
}

.contact-phone,
.contact-email {
    display: inline-flex;
    align-items: center;
    gap: .5rem;
    margin: 1rem 1rem 0 0;
    color: var(--gold);
    font-size: 1.05rem;
    font-style: italic;
    font-weight: 700;
}

.enquiry-form {
    padding: 1.6rem;
    border: 1px solid rgba(215, 179, 95, .5);
    border-radius: .45rem;
    background: rgba(255, 255, 255, .08);
}

.enquiry-form label {
    display: block;
    margin-bottom: .35rem;
    color: #ddcfd9;
    font-size: .78rem;
    font-style: italic;
}

.enquiry-form input,
.enquiry-form select {
    width: 100%;
    padding: .45rem 0 .65rem;
    border: 0;
    border-bottom: 1px solid rgba(255, 255, 255, .35);
    border-radius: 0;
    outline: 0;
    background: transparent;
    color: #fff;
}

.enquiry-form input:focus,
.enquiry-form select:focus {
    border-bottom-color: var(--gold);
}

.enquiry-form select option {
    color: var(--ink);
}

.form-message {
    margin: .85rem 0 0;
    color: var(--gold);
    font-size: .82rem;
    font-style: italic;
}

.site-footer {
    padding: 1rem 0 calc(4.75rem + env(safe-area-inset-bottom));
    background: #251021;
    color: #cbbdc7;
    font-size: .75rem;
}

.footer-content {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
}

.footer-socials {
    display: flex;
    align-items: center;
    gap: .85rem;
}

.footer-socials a {
    color: var(--gold);
    font-size: 1rem;
    transition: color .2s ease, transform .2s ease;
}

.footer-socials a:hover,
.footer-socials a:focus-visible {
    color: #fff;
    transform: translateY(-2px);
}

.site-footer i {
    color: var(--gold);
}

.whatsapp-button {
    position: fixed;
    left: 1rem;
    bottom: calc(1rem + env(safe-area-inset-bottom));
    z-index: 70;
    display: inline-flex;
    align-items: center;
    gap: .45rem;
    min-height: 3rem;
    padding: .75rem 1rem;
    border-radius: 999px;
    background: #25d366;
    color: #fff;
    font-size: .9rem;
    font-style: italic;
    font-weight: 700;
    line-height: 1;
    box-shadow: 0 .35rem 1rem rgba(37, 211, 102, .3);
    transition: transform .2s ease, box-shadow .2s ease;
}

.whatsapp-button i {
    width: 1.7rem;
    height: 1.7rem;
    border-radius: 50%;
    background: rgba(255, 255, 255, .18);
}

.whatsapp-button:hover,
.whatsapp-button:focus-visible {
    color: #fff;
    transform: translateY(-3px);
    box-shadow: 0 .55rem 1.2rem rgba(37, 211, 102, .4);
}

.back-to-top {
    position: fixed;
    right: 1rem;
    bottom: calc(1rem + env(safe-area-inset-bottom));
    z-index: 65;
    display: grid;
    place-items: center;
    width: 2.35rem;
    height: 2.35rem;
    border: 0;
    border-radius: 50%;
    background: var(--plum);
    color: var(--gold);
    opacity: 0;
    pointer-events: none;
    transition: opacity .2s ease, transform .2s ease;
}

.back-to-top.visible {
    opacity: 1;
    pointer-events: auto;
}

.back-to-top:hover,
.back-to-top:focus-visible {
    transform: translateY(-2px);
}

.text-reveal {
    opacity: 0;
    transform: translateY(1rem);
    transition: opacity .7s ease, transform .7s cubic-bezier(.2, .75, .25, 1);
}

.text-reveal.is-visible {
    opacity: 1;
    transform: translateY(0);
}

@keyframes heroSlideshow {
    0% {
        opacity: 1;
        transform: scale(1.04) translate3d(-1%, -1%, 0);
    }

    21% {
        opacity: 1;
    }

    30% {
        opacity: 0;
        transform: scale(1.12) translate3d(1%, 1%, 0);
    }

    91% {
        opacity: 0;
        transform: scale(1.08) translate3d(0, 0, 0);
    }

    100% {
        opacity: 1;
        transform: scale(1.04) translate3d(-1%, -1%, 0);
    }
}

@keyframes heroTextIn {
    from {
        opacity: 0;
        transform: translateY(1.25rem);
    }

    to {
        opacity: 1;
        transform: translateY(0);
    }
}

@media (min-width: 576px) {
    .col-sm-6 {
        grid-column: span 6;
    }
}

@media (min-width: 768px) {
    .col-md-6 {
        grid-column: span 6;
    }
}

@media (min-width: 992px) {
    .col-lg-3 {
        grid-column: span 3;
    }

    .col-lg-4 {
        grid-column: span 4;
    }

    .col-lg-5 {
        grid-column: span 5;
    }

    .col-lg-6 {
        grid-column: span 6;
    }

    .col-lg-7 {
        grid-column: span 7;
    }

    .col-lg-8 {
        grid-column: span 8;
    }

    .align-items-lg-center {
        align-items: center;
    }

    .whatsapp-button {
        right: 1rem;
        left: auto;
    }

    .back-to-top {
        bottom: calc(4.75rem + env(safe-area-inset-bottom));
    }
}

@media (min-width: 1200px) {
    .hero-section h1 {
        font-size: 4.35rem;
    }

    .topbar {
        padding: .5rem 0;
    }

    .topbar a {
        font-size: 1.18rem;
    }

    .announcement {
        font-size: 1rem;
    }
}

@media (max-width: 991px) {
    .hero-section {
        display: block;
        flex-wrap: wrap;
        min-height: auto;
    }

    .hero-text {
        width: 100%;
    }

    :root {
        --header-offset: 7.4rem;
    }

    .container {
        width: min(100% - 1.5rem, var(--container));
    }

    .topbar .container {
        flex-wrap: wrap;
        justify-content: center;
    }

    .topbar a {
        font-size: .95rem;
    }

    .topbar a[href^="mailto:"] {
        max-width: min(21rem, 100%);
    }

    .announcement {
        display: none;
    }

    .site-nav .container {
        align-items: center;
        min-height: 4.55rem;
    }

    .navbar-brand {
        width: min(16rem, calc(100vw - 5rem));
        min-height: 3.35rem;
        padding: .45rem .85rem;
        border-radius: 999px;
        font-size: .95rem;
        white-space: normal;
    }

    .navbar-toggler {
        display: grid;
        place-items: center;
        width: 2.75rem;
        height: 2.75rem;
        border: 1px solid rgba(215, 179, 95, .58);
        border-radius: 50%;
        background: var(--plum);
        box-shadow: 0 .45rem 1rem rgba(75, 28, 61, .12);
    }

    .navbar-toggler-icon {
        position: relative;
        width: 1.2rem;
        height: 2px;
        border-radius: 999px;
        background: var(--gold-soft);
        box-shadow: 0 -.4rem 0 var(--gold-soft), 0 .4rem 0 var(--gold-soft);
    }

    .navbar-collapse {
        position: fixed;
        top: 0;
        right: 0;
        z-index: 45;
        display: block;
        width: min(22rem, 88vw);
        height: 100svh;
        padding: 1.15rem 1.1rem 1.5rem;
        overflow-y: auto;
        border-left: 1px solid rgba(215, 179, 95, .55);
        background: linear-gradient(180deg, var(--cream), var(--cream-deep));
        box-shadow: -1.4rem 0 3.5rem rgba(38, 12, 32, .35);
        opacity: 0;
        visibility: hidden;
        transform: translateX(100%);
        transition: opacity .25s ease, visibility .25s ease, transform .25s ease;
    }

    .navbar-collapse.show {
        opacity: 1;
        visibility: visible;
        transform: translateX(0);
    }

    .nav-drawer-head {
        display: flex;
        align-items: center;
        justify-content: space-between;
        gap: 1rem;
        padding-bottom: 1rem;
        border-bottom: 1px solid rgba(75, 28, 61, .12);
    }

    .nav-drawer-head span {
        color: var(--plum);
        font-family: Georgia, "Times New Roman", serif;
        font-size: 1.25rem;
        font-style: italic;
    }

    .popup-close {
        display: grid;
        place-items: center;
        width: 2.35rem;
        height: 2.35rem;
        border: 1px solid rgba(75, 28, 61, .2);
        border-radius: 50%;
        background: transparent;
        color: var(--plum);
        transition: background .2s ease, color .2s ease, transform .2s ease;
    }

    .popup-close:hover,
    .popup-close:focus-visible {
        background: var(--plum);
        color: var(--gold);
        transform: rotate(90deg);
    }

    .navbar-collapse .navbar-nav {
        display: grid;
        gap: .7rem;
        margin: 1.15rem 0 0;
    }

    .nav-link {
        min-height: 3rem;
        padding: .8rem .9rem;
        border: 1px solid rgba(75, 28, 61, .1);
        border-radius: .5rem;
        background: rgba(255, 255, 255, .55);
        color: var(--plum);
        font-size: .95rem;
    }

    .nav-link:hover,
    .nav-link:focus-visible {
        border-color: var(--gold);
        background: var(--plum);
        color: #fff;
    }

    .nav-cta {
        width: 100%;
        margin-top: 1rem;
        border-radius: .5rem;
        padding: .95rem 1rem;
        font-size: .95rem;
    }

    .hero-content {
        width: min(100% - 1.5rem, var(--container));
        padding: 4.2rem 0 2.8rem;
    }

    .hero-section h1 {
        font-size: clamp(2.35rem, 9vw, 4rem);
    }

    .hero-copy {
        max-width: 34rem;
    }

    .hero-feature {
        position: relative;
        top: auto;
        right: auto;
        width: 100%;
        flex: 1 1 100%;
        min-height: 24rem;
        max-width: 36rem;
        margin: 0 auto 3.5rem;
        transform: none;
    }

    .hero-feature::before {
        inset: 1.2rem 1.1rem 2rem;
        border-radius: 1.25rem;
        transform: rotate(-2deg);
    }

    .feature-photo-main {
        width: 72%;
        height: 15rem;
    }

    .feature-photo-small {
        width: 52%;
        height: 10.5rem;
        bottom: 1rem;
    }

    .booking-card {
        width: 14rem;
        padding: 1.2rem 1.3rem;
    }

    .booking-card strong {
        font-size: 1.05rem;
    }

    .booking-card span,
    .booking-card a {
        font-size: .88rem;
    }

    .about-copy {
        padding-left: 0;
    }

    .food-showcase-visual {
        max-width: 44rem;
        margin: 0 auto;
    }

    .food-showcase-copy {
        text-align: center;
    }

    .food-highlights {
        max-width: 28rem;
        margin-left: auto;
        margin-right: auto;
    }

    .food-highlights span {
        justify-content: center;
    }

    .menu-board-header {
        align-items: start;
        flex-direction: column;
        gap: .8rem;
    }

    .menu-board-header p:not(.eyebrow) {
        max-width: 100%;
    }

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

    .featured-service {
        transform: none;
    }

    .featured-service:hover,
    .featured-service:focus-within {
        transform: translateY(-.45rem);
    }

    .spaces-grid {
        grid-template-columns: 1fr;
    }

    .space-card,
    .space-card-large {
        min-height: 24rem;
    }
}

@media (max-width: 767px) {
    :root {
        --header-offset: 8.6rem;
    }

    .row {
        --gap: 1.4rem;
    }

    .topbar {
        padding: .38rem 0;
    }

    .topbar .container {
        display: grid;
        grid-template-columns: minmax(0, 1fr);
        gap: .5rem;
    }

    .topbar a {
        width: 100%;
        justify-content: center;
        padding: .38rem .6rem;
        border-radius: .7rem;
        font-size: .84rem;
        line-height: 1.18;
        white-space: normal;
        overflow-wrap: anywhere;
    }

    .site-nav .container {
        min-height: 4.15rem;
    }

    .hero-content {
        padding: 3rem 0 3.35rem;
    }

    .hero-section h1 {
        max-width: 22rem;
        font-size: clamp(1.95rem, 8vw, 2.28rem);
        line-height: 1.06;
    }

    .hero-text .eyebrow {
        max-width: 22rem;
        font-size: .72rem;
        line-height: 1.35;
        letter-spacing: .015em;
    }

    .hero-copy {
        max-width: 20.75rem;
        font-size: .96rem;
        line-height: 1.55;
    }

    .hero-actions {
        display: grid;
        grid-template-columns: minmax(0, 1fr);
        gap: .55rem;
        max-width: 22rem;
    }

    .hero-actions .btn {
        width: 100%;
        min-height: 2.9rem;
        padding: .72rem .85rem;
        font-size: .9rem;
        white-space: normal;
    }

    .hero-feature {
        display: none;
    }

    .section-padding {
        padding: 4.35rem 0;
    }

    .occasion-section {
        padding: 2.4rem 0;
    }

    .section-kicker {
        max-width: 17rem;
        margin-inline: auto;
        font-size: clamp(1.45rem, 6.2vw, 1.72rem);
        line-height: 1.15;
        text-wrap: balance;
    }

    .gold-rule {
        width: 12rem;
    }

    .occasion-copy p:last-child {
        max-width: 17rem;
        font-size: .9rem;
        line-height: 1.6;
    }

    .food-showcase-visual {
        display: grid;
        gap: .85rem;
        min-height: auto;
    }

    .food-image-main,
    .food-image-side {
        position: static;
        width: 100%;
        border: 0;
        border-radius: .65rem;
    }

    .food-image-main {
        height: 16rem;
    }

    .food-image-side {
        height: 20rem;
    }

    .food-showcase-copy {
        text-align: left;
    }

    .food-showcase-copy h2,
    .about-copy h2,
    .section-intro h2,
    .spaces-section h2,
    .gallery-section h2,
    .contact-section h2 {
        font-size: clamp(1.9rem, 8vw, 2.35rem);
    }

    .food-highlights {
        margin-left: 0;
        margin-right: 0;
    }

    .food-highlights span {
        align-items: flex-start;
        justify-content: flex-start;
        text-align: left;
    }

    .menu-board {
        margin-top: 3.5rem;
        padding: 1rem;
    }

    .menu-board-header h3 {
        font-size: clamp(1.65rem, 8vw, 2.15rem);
    }

    .menu-category-grid {
        grid-template-columns: 1fr;
    }

    .menu-category {
        padding: 1rem;
    }

    .menu-category li {
        font-size: .92rem;
    }

    .menu-board-footer {
        align-items: flex-start;
        flex-direction: column;
    }

    .about-images {
        min-height: 19rem;
    }

    .about-image-large {
        width: 72%;
        height: 16rem;
    }

    .about-image-small {
        width: 46%;
        height: 9rem;
    }

    .service-card {
        min-height: 17rem;
    }

    .service-card h3 {
        font-size: 1.35rem;
    }

    .space-card,
    .space-card-large {
        min-height: 21rem;
        padding: 1.4rem;
    }

    .space-card h3 {
        font-size: 1.55rem;
    }

    .space-card p {
        font-size: .86rem;
    }

    .gallery-section .d-flex {
        align-items: flex-start;
        flex-direction: column;
    }

    .gallery-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        grid-auto-rows: 8.8rem;
        gap: .7rem;
    }

    .gallery-grid img {
        border-radius: .45rem;
    }

    .gallery-featured {
        grid-column: span 2;
        grid-row: span 2;
    }

    .contact-phone,
    .contact-email {
        display: flex;
        width: fit-content;
        max-width: 100%;
        margin-right: 0;
        font-size: .95rem;
        overflow-wrap: anywhere;
    }

    .enquiry-form {
        padding: 1.15rem;
    }

    .footer-content {
        flex-direction: column;
        gap: .65rem;
        text-align: center;
    }

    .whatsapp-button {
        justify-content: center;
        width: 3rem;
        min-height: 2.85rem;
        padding: .65rem;
        font-size: .82rem;
    }

    .whatsapp-button span {
        display: none;
    }
}

@media (max-width: 420px) {
    .container {
        width: min(100% - 1rem, var(--container));
    }

    .navbar-brand {
        width: min(14rem, calc(100vw - 4.4rem));
        font-size: .86rem;
    }

    .topbar a {
        font-size: .78rem;
    }

    .hero-actions {
        gap: .45rem;
    }

    .hero-actions .btn {
        font-size: .84rem;
    }
}

@media (prefers-reduced-motion: reduce) {
    *,
    *::before,
    *::after {
        scroll-behavior: auto !important;
        transition-duration: .01ms !important;
        animation-duration: .01ms !important;
        animation-iteration-count: 1 !important;
    }

    .hero-slide {
        opacity: 0;
        transform: none;
        animation: none;
    }

    .hero-slide:first-child {
        opacity: 1;
    }

    .hero-text .eyebrow,
    .hero-text h1,
    .hero-text .hero-copy,
    .hero-text .hero-actions,
    .hero-feature .feature-photo,
    .hero-feature .booking-card,
    .text-reveal,
    .text-reveal.is-visible {
        opacity: 1;
        transform: none;
    }
}
