:root {
    --orange: #ff5a1f;
    --orange-dark: #d9420c;
    --orange-soft: #fff0e8;
    --ink: #171614;
    --ink-soft: #302e2a;
    --ivory: #f5f1e9;
    --paper: #fffdf9;
    --white: #ffffff;
    --muted: #756f66;
    --line: #e9e2d7;
    --green: #198754;
    --green-soft: #e8f7ef;
    --amber: #b7791f;
    --amber-soft: #fff7db;
    --red: #c9362b;
    --red-soft: #fdeceb;
    --blue: #2463a8;
    --blue-soft: #eaf2fb;
    --sidebar-width: 215px;
    --sidebar-collapsed: 72px;
    --radius: 18px;
    --radius-sm: 11px;
    --shadow: 0 16px 38px rgba(39, 30, 20, .08);
    --shadow-sm: 0 8px 22px rgba(39, 30, 20, .07);
    --transition: 180ms ease;
    font-family: Inter, "Segoe UI", Roboto, Arial, sans-serif;
    color: var(--ink);
    background: var(--ivory);
}

/* Profit and loss statement */
.pl-summary {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 10px;
    margin-bottom: 14px;
}

.pl-summary article {
    min-height: 88px;
    padding: 13px 15px;
    border: 1px solid #e7dfd5;
    border-radius: 12px;
    background: linear-gradient(145deg, #fff, #fbf7f0);
    box-shadow: 0 6px 16px rgba(61, 45, 31, .05);
}

.pl-summary span,
.pl-summary small {
    display: block;
    color: #7c7166;
    font-size: .68rem;
}

.pl-summary strong {
    display: block;
    margin: 5px 0 2px;
    color: #2d3326;
    font-size: 1.22rem;
}

.pl-paper {
    background: #fff;
}

.pl-paper-head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 20px;
    padding: 22px 24px 18px;
    border-bottom: 1px solid #eee8df;
}

.pl-paper-head h2 {
    margin: 3px 0 5px;
    font-family: Georgia, "Times New Roman", serif;
    font-size: 1.65rem;
}

.pl-paper-head p,
.pl-report-status small {
    margin: 0;
    color: #7b7065;
    font-size: .72rem;
}

.pl-report-status {
    display: grid;
    justify-items: end;
    gap: 7px;
}

.pl-statement th,
.pl-statement td {
    padding-block: 9px;
}

.pl-section-row th {
    padding: 10px 14px 7px;
    color: #7f5b32;
    background: #faf5ec;
    font-size: .7rem;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.pl-account-link {
    color: #2d3326;
    font-weight: 700;
    text-decoration: none;
}

.pl-account-link:hover {
    color: var(--orange-dark);
    text-decoration: underline;
}

.pl-subtotal th,
.pl-result-row th,
.pl-net-row th {
    border-top: 1px solid #ded5ca;
}

.pl-result-row th {
    background: #f3f6ec;
}

.pl-net-row th {
    padding-block: 14px;
    color: #fff;
    background: #39442f;
    font-size: .85rem;
}

.pl-chart-card {
    margin-top: 14px;
}

.pl-chart-legend {
    display: flex;
    gap: 14px;
    font-size: .68rem;
}

.pl-chart-legend span::before {
    display: inline-block;
    width: 8px;
    height: 8px;
    margin-right: 5px;
    border-radius: 50%;
    content: "";
}

.pl-chart-legend .revenue::before,
.pl-bars .revenue { background: #566f38; }
.pl-chart-legend .costs::before,
.pl-bars .costs { background: #dd8b42; }
.pl-chart-legend .profit::before,
.pl-bars .profit { background: #e65c28; }
.pl-bars .profit.negative { background: #b83737; }

.pl-monthly-chart {
    min-height: 245px;
    display: flex;
    align-items: stretch;
    gap: 10px;
    overflow-x: auto;
    padding: 8px 2px 0;
}

.pl-monthly-chart article {
    min-width: 76px;
    flex: 1 0 76px;
    display: grid;
    grid-template-rows: 195px auto auto;
    gap: 4px;
    text-align: center;
}

.pl-bars {
    display: flex;
    align-items: end;
    justify-content: center;
    gap: 4px;
    border-bottom: 1px solid #ddd4c9;
}

.pl-bars i {
    width: 18%;
    min-height: 3px;
    max-width: 16px;
    border-radius: 4px 4px 0 0;
}

.pl-monthly-chart strong { font-size: .66rem; }
.pl-monthly-chart small { color: #81766b; font-size: .61rem; }

@media (max-width: 900px) {
    .pl-summary { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .pl-paper-head { display: block; }
    .pl-report-status { justify-items: start; margin-top: 10px; }
}

@media (max-width: 520px) {
    .pl-summary { grid-template-columns: 1fr; }
}

@media print {
    body:has(.pl-paper) .sidebar,
    body:has(.pl-paper) .staff-topbar,
    body:has(.pl-paper) .page-header,
    body:has(.pl-paper) .accounting-filterbar,
    body:has(.pl-paper) .quick-strip,
    body:has(.pl-paper) .tabs,
    body:has(.pl-paper) .pl-summary,
    body:has(.pl-paper) .pl-chart-card,
    body:has(.pl-paper) #profit-drilldown,
    body:has(.pl-paper) .ai-assistant-launcher { display: none !important; }
    body:has(.pl-paper) .main-content { margin: 0 !important; padding: 0 !important; }
    body:has(.pl-paper) .pl-paper { border: 0; box-shadow: none; }
}

/* Reference-led four-part public footer */
.public-footer.kuwa-footer {
    --footer-accent: #ff5a1f;
    --footer-accent-dark: #d9420c;
    --footer-orange: #ff5a1f;
    --footer-ink: #171614;
    --footer-line: #e9e2d7;
    position: relative;
    isolation: isolate;
    display: block;
    width: 100%;
    margin: 0;
    padding: 0;
    overflow: hidden;
    border: 0;
    background: #fff;
    color: var(--footer-ink);
    text-align: left;
    font-family: Inter, "Segoe UI", Roboto, Arial, sans-serif;
}

.public-footer.kuwa-footer::before,
.public-footer.kuwa-footer::after { display: none; }

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

.kuwa-footer-hero {
    position: relative;
    min-height: clamp(440px, 32vw, 510px);
    overflow: hidden;
    background: #e8ddd4;
}

.kuwa-footer-wave {
    position: absolute;
    top: -1px;
    right: 0;
    left: 0;
    z-index: 5;
    width: 100%;
    height: clamp(42px, 4.6vw, 70px);
    display: none;
    pointer-events: none;
}

.kuwa-footer-wave-fill {
    fill: #f9f5ed;
}

.kuwa-footer-wave-line {
    fill: none;
    stroke: rgba(255, 90, 31, .34);
    stroke-width: 2;
    vector-effect: non-scaling-stroke;
}

.kuwa-footer-hero-photo {
    position: absolute;
    inset: 0;
    z-index: 0;
    background-image: linear-gradient(90deg, rgba(37, 24, 15, .01) 35%, rgba(37, 24, 15, .08)), url("../images/website/hero-safari.jpg");
    background-position: center 62%;
    background-size: cover;
    transform: scale(1.015);
}

.kuwa-footer-hero::after {
    position: absolute;
    right: 0;
    bottom: 0;
    left: 39%;
    z-index: 1;
    height: 38%;
    content: "";
    pointer-events: none;
    background: linear-gradient(0deg, rgba(42, 25, 14, .18), transparent);
}

.kuwa-footer-hero-border,
.kuwa-footer-hero-brand {
    position: absolute;
    top: -1px;
    bottom: 0;
    left: -1px;
    border-top-right-radius: 62% 100%;
}

.kuwa-footer-hero-border {
    z-index: 2;
    width: 66%;
    background: rgba(255, 90, 31, .82);
}

.kuwa-footer-hero-brand {
    z-index: 6;
    width: 65%;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-direction: column;
    padding: 22px 20% 32px 4%;
    background: radial-gradient(circle at 16% 72%, rgba(231, 152, 37, .06), transparent 31%), #fbfaf6;
    text-align: center;
}

.kuwa-footer-logo {
    width: clamp(195px, 15.5vw, 255px);
    height: clamp(195px, 15.5vw, 255px);
    display: grid;
    flex: 0 0 auto;
    place-items: center;
    margin: -18px auto -8px;
    overflow: hidden;
    border-radius: 50%;
    background: #f4f1eb;
    box-shadow: 0 10px 25px rgba(49, 47, 34, .08);
}

.kuwa-footer-logo img {
    width: 112%;
    height: 112%;
    max-width: none;
    display: block;
    object-fit: contain;
}

.kuwa-footer-hero-brand h2 {
    max-width: 500px;
    margin: 4px 0 3px;
    color: var(--footer-ink);
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(1.85rem, 2.7vw, 3rem);
    font-weight: 500;
    line-height: 1.05;
    letter-spacing: .035em;
    text-transform: uppercase;
}

.kuwa-footer-place {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 13px;
    color: #282b1c;
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(.74rem, .92vw, 1rem);
    font-weight: 700;
    letter-spacing: .34em;
    text-indent: .34em;
    text-transform: uppercase;
}

.kuwa-footer-place i {
    width: clamp(30px, 3.5vw, 58px);
    height: 1px;
    background: rgba(40, 43, 28, .7);
}

.kuwa-footer-hero-brand > em {
    display: block;
    margin: 20px 0 3px;
    color: var(--footer-accent-dark);
    font-family: "Segoe Print", "Bradley Hand", cursive;
    font-size: clamp(.94rem, 1.28vw, 1.3rem);
    line-height: 1.3;
}

.kuwa-footer-hero-brand > p {
    width: min(395px, 90%);
    margin: 0;
    color: #55544e;
    font-size: clamp(.79rem, .96vw, .98rem);
    line-height: 1.55;
}

.kuwa-footer-directory {
    position: relative;
    width: min(1500px, 100%);
    display: grid;
    grid-template-columns: .9fr 1.05fr 1.15fr;
    margin: 0 auto;
    padding: 46px clamp(34px, 5vw, 82px) 42px;
    overflow: hidden;
    background:
        radial-gradient(circle at 9% 92%, rgba(255,90,31,.04), transparent 23%),
        linear-gradient(135deg, #fff 0%, #fffdf9 100%);
}

.kuwa-footer-directory::before {
    position: absolute;
    bottom: -13px;
    left: -20px;
    width: 245px;
    height: 86px;
    opacity: .055;
    background: var(--footer-accent-dark);
    clip-path: polygon(0 71%, 9% 51%, 18% 55%, 29% 20%, 39% 48%, 52% 42%, 64% 65%, 73% 51%, 83% 61%, 100% 73%, 100% 100%, 0 100%);
    content: "";
}

.kuwa-footer-foliage {
    position: absolute;
    right: -14px;
    bottom: -20px;
    width: 165px;
    height: 238px;
    fill: none;
    stroke: var(--footer-accent);
    stroke-width: 1.2;
    opacity: .12;
    pointer-events: none;
}

.kuwa-footer-column {
    position: relative;
    z-index: 1;
    min-width: 0;
    padding: 0 clamp(24px, 2.8vw, 43px);
    border-left: 1px solid var(--footer-line);
}

.kuwa-footer-heading-icon {
    width: 43px;
    height: 43px;
    display: grid;
    place-items: center;
    margin-bottom: 14px;
    border-radius: 50%;
    color: #fff;
    background: linear-gradient(145deg, #ff6a2d, #d9420c);
    box-shadow: 0 8px 18px rgba(217,66,12,.16);
}

.kuwa-footer-heading-icon svg {
    width: 21px;
    height: 21px;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.65;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.kuwa-footer-column:first-child { padding-left: 0; border-left: 0; }
.kuwa-footer-column:last-child { padding-right: 0; }

.kuwa-footer-column h3 {
    position: relative;
    margin: 0 0 23px;
    color: #333024;
    font-size: .93rem;
    font-weight: 850;
    letter-spacing: .035em;
    line-height: 1.1;
    text-transform: uppercase;
}

.kuwa-footer-column h3::after {
    position: absolute;
    bottom: -11px;
    left: 0;
    width: 32px;
    height: 2px;
    content: "";
    border-radius: 2px;
    background: var(--footer-orange);
}

.kuwa-footer-column p {
    margin: 0;
    color: #3f3e39;
    font-size: .82rem;
    line-height: 1.7;
}

.kuwa-footer-about { position: relative; overflow: hidden; }

.kuwa-footer-silhouette {
    position: relative;
    width: 88%;
    height: 72px;
    margin: 9px 0 -2px;
    opacity: .12;
    overflow: hidden;
}

.kuwa-footer-silhouette::before {
    position: absolute;
    bottom: -5px;
    left: 14px;
    width: 135px;
    height: 42px;
    content: "";
    background: var(--footer-accent-dark);
    clip-path: polygon(0 42%, 14% 22%, 31% 27%, 43% 5%, 59% 21%, 78% 16%, 100% 47%, 83% 52%, 62% 45%, 54% 100%, 48% 100%, 42% 47%, 20% 53%);
}

.kuwa-footer-silhouette::after {
    position: absolute;
    right: 4px;
    bottom: 2px;
    width: 78px;
    height: 38px;
    content: "";
    background: var(--footer-accent-dark);
    clip-path: polygon(4% 34%, 24% 18%, 69% 19%, 82% 34%, 100% 24%, 86% 44%, 82% 100%, 73% 100%, 70% 54%, 27% 57%, 24% 100%, 14% 100%, 14% 55%, 0 48%);
}

.kuwa-footer-links {
    display: flex;
    align-items: flex-start;
    flex-direction: column;
}

.kuwa-footer-links h3 { width: 100%; }

.kuwa-footer-links a {
    display: inline-flex;
    align-items: center;
    gap: 12px;
    margin: 0 0 8px;
    color: #292823;
    font-size: .81rem;
    line-height: 1.22;
    text-decoration: none;
    transition: color .2s ease, transform .2s ease;
}

.kuwa-footer-links a i {
    color: var(--footer-accent);
    font-size: .56rem;
    font-style: normal;
    transform: rotate(16deg);
}

.kuwa-footer-links a:hover { color: var(--footer-accent); transform: translateX(4px); }

.kuwa-footer-contact { display: flex; flex-direction: column; gap: 12px; }
.kuwa-footer-contact h3 { margin-bottom: 17px; }

.kuwa-footer-contact-row {
    display: grid;
    grid-template-columns: 42px minmax(0, 1fr);
    align-items: center;
    gap: 12px;
}

.kuwa-footer-contact-row > span {
    width: 40px;
    height: 40px;
    display: grid;
    place-items: center;
    border: 1.5px solid var(--footer-accent);
    border-radius: 50%;
    color: var(--footer-accent);
}

.kuwa-footer-contact-row svg { width: 22px; height: 22px; }

.kuwa-footer-contact-row p,
.kuwa-footer-contact-row a {
    min-width: 0;
    overflow-wrap: anywhere;
    color: #34332d;
    font-size: .78rem;
    line-height: 1.55;
    text-decoration: none;
}

.kuwa-footer-contact-row a:hover { color: var(--footer-accent); }
.kuwa-footer-connect > p { margin-bottom: 15px; line-height: 1.55; }

.kuwa-footer-subscribe {
    height: 46px;
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    overflow: hidden;
    border: 1px solid #bebdb6;
    border-radius: 999px;
    background: #fff;
}

.kuwa-footer-subscribe input {
    min-width: 0;
    height: 100%;
    padding: 0 17px;
    border: 0;
    outline: 0;
    background: transparent;
    color: var(--footer-ink);
    font: inherit;
    font-size: .76rem;
}

.kuwa-footer-subscribe button {
    min-width: 118px;
    padding: 0 20px;
    border: 0;
    border-radius: 999px;
    background: linear-gradient(135deg, #ff6a2d, #d9420c);
    color: #fff;
    cursor: pointer;
    font: inherit;
    font-size: .72rem;
    font-weight: 850;
    letter-spacing: .025em;
    text-transform: uppercase;
    transition: filter .2s ease;
}

.kuwa-footer-subscribe button:hover { filter: brightness(1.08); }

.kuwa-newsletter-swal {
    width: min(440px, calc(100% - 32px));
    padding: 30px 28px 27px;
    overflow: hidden;
    border: 1px solid rgba(255,90,31,.2);
    border-radius: 28px;
    background:
        radial-gradient(circle at 100% 0, rgba(255,90,31,.09), transparent 32%),
        radial-gradient(circle at 0 100%, rgba(112,119,72,.08), transparent 30%),
        #fffdf9 !important;
    box-shadow: 0 30px 80px rgba(42,31,21,.24);
    font-family: Inter, "Segoe UI", Roboto, Arial, sans-serif;
}

.kuwa-newsletter-swal .swal2-title {
    padding-top: 5px;
    color: #302e2a;
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(1.55rem, 4vw, 2rem);
    font-weight: 600;
}

.kuwa-newsletter-swal .swal2-html-container {
    margin-top: 10px;
    color: #655f56;
    font-size: .92rem;
    line-height: 1.65;
}

.kuwa-newsletter-swal .swal2-success-ring {
    border-color: rgba(255,90,31,.28) !important;
}

.kuwa-newsletter-swal .swal2-success-line-tip,
.kuwa-newsletter-swal .swal2-success-line-long {
    background-color: #ff5a1f !important;
}

.kuwa-newsletter-swal-button {
    min-width: 172px;
    margin-top: 6px;
    padding: 12px 24px;
    border: 0;
    border-radius: 999px;
    background: linear-gradient(135deg, #ff6a2d, #d9420c);
    box-shadow: 0 12px 24px rgba(217,66,12,.24);
    color: #fff;
    cursor: pointer;
    font: inherit;
    font-size: .82rem;
    font-weight: 850;
    letter-spacing: .02em;
}

.kuwa-newsletter-swal-button:hover {
    filter: brightness(1.06);
    transform: translateY(-1px);
}

.kuwa-footer-subscribe-success {
    display: block;
    margin-top: 8px;
    color: var(--footer-accent-dark);
    font-size: .7rem;
    font-weight: 750;
}

.kuwa-footer-follow-title { margin-top: 28px !important; }

.kuwa-footer-socials { display: flex; align-items: center; gap: 16px; }

.kuwa-footer-socials a {
    width: 42px;
    height: 42px;
    display: grid;
    place-items: center;
    border: 1.5px solid var(--footer-accent);
    border-radius: 50%;
    color: var(--footer-accent-dark);
    text-decoration: none;
    transition: color .2s ease, background .2s ease, transform .2s ease;
}

.kuwa-footer-socials a:hover { background: var(--footer-accent); color: #fff; transform: translateY(-3px); }
.kuwa-footer-socials svg { width: 19px; height: 19px; }

.kuwa-footer-features {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    padding: 25px clamp(34px, 5vw, 80px);
    background: linear-gradient(90deg, rgba(255, 255, 255, .55), transparent 35%, rgba(255, 255, 255, .55)), #f2eee5;
}

.kuwa-footer-features article {
    display: grid;
    grid-template-columns: 50px minmax(0, 1fr);
    align-items: center;
    gap: 15px;
    min-width: 0;
    padding: 0 clamp(18px, 2.3vw, 38px);
    border-left: 1px solid #c9c2b3;
}

.kuwa-footer-features article:first-child { padding-left: 0; border-left: 0; }
.kuwa-footer-features article:last-child { padding-right: 0; }
.kuwa-footer-features svg { width: 45px; height: 45px; color: var(--footer-accent); }

.kuwa-footer-features strong {
    display: block;
    margin-bottom: 4px;
    color: #302f27;
    font-size: .76rem;
    font-weight: 850;
    line-height: 1.2;
    letter-spacing: .025em;
    text-transform: uppercase;
}

.kuwa-footer-features p { margin: 0; color: #4e4d47; font-size: .7rem; line-height: 1.45; }

.kuwa-footer-bottom {
    display: grid;
    grid-template-columns: 1fr auto 1fr;
    align-items: center;
    gap: 28px;
    padding: 27px clamp(34px, 4vw, 62px);
    background: #fff;
}

.kuwa-footer-bottom > em {
    color: #292a23;
    font-family: "Segoe Print", "Bradley Hand", cursive;
    font-size: clamp(.82rem, 1.1vw, 1.12rem);
}

.kuwa-footer-bottom > em span { color: var(--footer-orange); font-family: Arial, sans-serif; font-style: normal; }
.kuwa-footer-bottom > small { color: #5c5b55; font-size: .71rem; text-align: center; }

.kuwa-footer-bottom > p {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 8px;
    margin: 0;
    color: #595850;
    font-size: .72rem;
    padding-right: 126px;
}

.kuwa-footer-bottom > p svg { width: 27px; height: 27px; color: #9b7b52; }

.kuwa-footer-bottom > p i {
    color: var(--footer-accent-dark);
    font-family: "Segoe Print", "Bradley Hand", cursive;
    font-size: .82rem;
}

.kuwa-footer .sr-only {
    position: absolute !important;
    width: 1px !important;
    height: 1px !important;
    padding: 0 !important;
    overflow: hidden !important;
    clip: rect(0, 0, 0, 0) !important;
    white-space: nowrap !important;
    border: 0 !important;
}

@media (max-width: 1080px) {
    .kuwa-footer-hero-border { width: 71%; }
    .kuwa-footer-hero-brand { width: 70%; padding-right: 24%; }
    .kuwa-footer-directory { grid-template-columns: repeat(2, minmax(0, 1fr)); row-gap: 35px; }
    .kuwa-footer-column:nth-child(3) { grid-column: 1 / -1; padding: 32px 0 0; border-top: 1px solid var(--footer-line); border-left: 0; }
    .kuwa-footer-features { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 25px 0; }
    .kuwa-footer-features article:nth-child(3) { padding-left: 0; border-left: 0; }
    .kuwa-footer-bottom { grid-template-columns: 1fr 1fr; }
    .kuwa-footer-bottom > small { grid-column: 1 / -1; grid-row: 2; }
}

@media (max-width: 720px) {
    .kuwa-footer-hero { min-height: 610px; }
    .kuwa-footer-hero-photo { background-position: 63% center; }
    .kuwa-footer-wave { height: 46px; }
    .kuwa-footer-hero-border, .kuwa-footer-hero-brand { top: 0; bottom: auto; height: 63%; border-top-right-radius: 0; border-bottom-right-radius: 76% 31%; }
    .kuwa-footer-hero-border { width: 94%; }
    .kuwa-footer-hero-brand { width: 92.5%; padding: 16px 14% 56px 4%; }
    .kuwa-footer-logo { width: 150px; height: 150px; margin-top: -8px; }
    .kuwa-footer-hero-brand h2 { font-size: clamp(1.42rem, 7vw, 2rem); }
    .kuwa-footer-hero-brand > em { margin-top: 15px; }
    .kuwa-footer-hero::after { left: 0; height: 40%; }
    .kuwa-footer-directory { grid-template-columns: 1fr; padding: 34px 24px 30px; }
    .kuwa-footer-column, .kuwa-footer-column:first-child, .kuwa-footer-column:nth-child(3) { padding: 28px 0 0; border-top: 1px solid var(--footer-line); border-left: 0; }
    .kuwa-footer-column:first-child { padding-top: 0; border-top: 0; }
    .kuwa-footer-column:last-child { padding-right: 0; }
    .kuwa-footer-features { grid-template-columns: 1fr; gap: 0; padding: 8px 24px; }
    .kuwa-footer-features article, .kuwa-footer-features article:first-child, .kuwa-footer-features article:nth-child(3) { padding: 20px 0; border-top: 1px solid #c9c2b3; border-left: 0; }
    .kuwa-footer-features article:first-child { border-top: 0; }
    .kuwa-footer-bottom { grid-template-columns: 1fr; gap: 13px; padding: 24px; text-align: center; }
    .kuwa-footer-bottom > small { grid-column: auto; grid-row: auto; }
    .kuwa-footer-bottom > p { justify-content: center; }
    .kuwa-footer-bottom { padding-bottom: 92px; }
    .kuwa-footer-bottom > p { padding-right: 0; }
    .kuwa-footer-foliage { width: 130px; height: 190px; opacity: .08; }
}

@media (max-width: 420px) {
    .kuwa-footer-hero { min-height: 570px; }
    .kuwa-footer-hero-border, .kuwa-footer-hero-brand { height: 65%; }
    .kuwa-footer-hero-brand { padding-right: 10%; }
    .kuwa-footer-subscribe { height: auto; grid-template-columns: 1fr; overflow: visible; border: 0; border-radius: 0; gap: 8px; }
    .kuwa-footer-subscribe input, .kuwa-footer-subscribe button { height: 44px; border: 1px solid #bebdb6; border-radius: 999px; }
}

* {
    box-sizing: border-box;
}

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

body {
    min-height: 100vh;
    margin: 0;
    color: var(--ink);
    background: var(--ivory);
    line-height: 1.5;
}

body::selection {
    color: #fff;
    background: var(--orange);
}

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

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

button,
a {
    -webkit-tap-highlight-color: transparent;
}

img {
    max-width: 100%;
}

h1,
h2,
h3,
h4,
p {
    margin-top: 0;
}

h1,
h2,
h3,
h4 {
    letter-spacing: -.025em;
    line-height: 1.15;
}

.muted {
    color: var(--muted);
}

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

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

.text-danger {
    color: var(--red);
}

.text-success {
    color: var(--green);
}

.eyebrow {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    margin-bottom: 10px;
    color: var(--orange-dark);
    font-size: .74rem;
    font-weight: 800;
    letter-spacing: .13em;
    text-transform: uppercase;
}

.eyebrow::before {
    width: 20px;
    height: 3px;
    border-radius: 9px;
    background: var(--orange);
    content: "";
}

.btn {
    min-height: 43px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 9px;
    padding: 10px 17px;
    border: 1px solid transparent;
    border-radius: 11px;
    color: var(--ink);
    background: #fff;
    cursor: pointer;
    font-weight: 750;
    transition: transform var(--transition), box-shadow var(--transition), border-color var(--transition), background var(--transition);
}

.btn:hover {
    transform: translateY(-1px);
}

.btn:focus-visible,
.icon-btn:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible,
.nav-link:focus-visible {
    outline: 3px solid rgba(255, 90, 31, .28);
    outline-offset: 2px;
}

.btn-primary {
    color: #fff;
    background: var(--orange);
    box-shadow: 0 9px 18px rgba(255, 90, 31, .2);
}

.btn-primary:hover {
    background: var(--orange-dark);
    box-shadow: 0 12px 24px rgba(255, 90, 31, .27);
}

.btn-dark {
    color: #fff;
    background: var(--ink);
}

.btn-outline {
    border-color: var(--line);
    background: var(--paper);
}

.btn-danger {
    color: #fff;
    background: var(--red);
}

.btn-success {
    color: #fff;
    background: var(--green);
}

.btn-sm {
    min-height: 34px;
    padding: 7px 11px;
    border-radius: 9px;
    font-size: .82rem;
}

.btn-block {
    width: 100%;
}

.icon-btn {
    width: 42px;
    height: 42px;
    display: inline-grid;
    flex: 0 0 42px;
    place-items: center;
    border: 1px solid var(--line);
    border-radius: 12px;
    color: var(--ink);
    background: var(--paper);
    cursor: pointer;
    transition: background var(--transition), transform var(--transition);
}

.icon-btn:hover {
    transform: translateY(-1px);
    background: var(--orange-soft);
}

.field {
    display: grid;
    gap: 7px;
    margin-bottom: 16px;
}

.field > span,
.field-label {
    color: var(--ink-soft);
    font-size: .84rem;
    font-weight: 750;
}

.field small {
    color: var(--muted);
}

input,
select,
textarea {
    width: 100%;
    min-height: 44px;
    padding: 10px 12px;
    border: 1px solid var(--line);
    border-radius: 10px;
    color: var(--ink);
    background: #fff;
    transition: border-color var(--transition), box-shadow var(--transition);
}

textarea {
    min-height: 105px;
    resize: vertical;
}

input:hover,
select:hover,
textarea:hover {
    border-color: #d4c9ba;
}

input:focus,
select:focus,
textarea:focus {
    border-color: var(--orange);
    box-shadow: 0 0 0 4px rgba(255, 90, 31, .09);
}

input[type="checkbox"],
input[type="radio"] {
    width: 18px;
    min-height: 18px;
    margin: 0;
    accent-color: var(--orange);
}

.checkbox {
    display: inline-flex;
    align-items: center;
    gap: 9px;
    color: var(--ink-soft);
    font-size: .88rem;
}

.form-grid {
    display: grid;
    gap: 16px;
}

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

.form-grid.three {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.form-grid.four {
    grid-template-columns: repeat(4, minmax(0, 1fr));
}

.form-actions {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: 10px;
    padding-top: 8px;
}

.alert {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    margin-bottom: 16px;
    padding: 12px 14px;
    border: 1px solid transparent;
    border-radius: 11px;
    font-size: .9rem;
}

.alert-success {
    color: #12633e;
    border-color: #bfe8d0;
    background: var(--green-soft);
}

.alert-danger {
    color: #8c201a;
    border-color: #f1c4c0;
    background: var(--red-soft);
}

.alert-warning {
    color: #77500d;
    border-color: #f1df9e;
    background: var(--amber-soft);
}

.alert-info {
    color: #174d86;
    border-color: #c4d9ef;
    background: var(--blue-soft);
}

.status-pill {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    width: fit-content;
    padding: 5px 9px;
    border-radius: 999px;
    font-size: .72rem;
    font-weight: 800;
    line-height: 1;
    text-transform: capitalize;
    white-space: nowrap;
}

.status-pill::before {
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: currentColor;
    content: "";
}

.status-pill.success {
    color: var(--green);
    background: var(--green-soft);
}

.status-pill.warning {
    color: var(--amber);
    background: var(--amber-soft);
}

.status-pill.danger {
    color: var(--red);
    background: var(--red-soft);
}

.status-pill.info {
    color: var(--blue);
    background: var(--blue-soft);
}

.badge {
    display: inline-flex;
    min-width: 22px;
    min-height: 22px;
    align-items: center;
    justify-content: center;
    padding: 2px 7px;
    border-radius: 999px;
    color: #fff;
    background: var(--orange);
    font-size: .7rem;
    font-weight: 800;
}

/* Authentication */
.auth-page {
    background:
        radial-gradient(circle at 12% 12%, rgba(255, 90, 31, .11), transparent 28%),
        linear-gradient(145deg, #f8f4ed 0%, #efe8dc 100%);
}

.auth-shell {
    width: min(1100px, calc(100% - 40px));
    min-height: min(700px, calc(100vh - 56px));
    display: grid;
    grid-template-columns: minmax(0, 1.08fr) minmax(400px, .92fr);
    margin: 28px auto;
    overflow: hidden;
    border: 1px solid rgba(255, 255, 255, .7);
    border-radius: 28px;
    background: var(--paper);
    box-shadow: 0 30px 80px rgba(34, 28, 20, .15);
}

.auth-brand-panel {
    position: relative;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    gap: 30px;
    padding: 50px;
    overflow: hidden;
    color: #fff;
    background:
        linear-gradient(145deg, rgba(20, 19, 17, .97), rgba(37, 32, 26, .94)),
        var(--ink);
}

.auth-brand-panel::after {
    position: absolute;
    right: -70px;
    bottom: -100px;
    width: 330px;
    height: 330px;
    border: 58px solid rgba(255, 90, 31, .17);
    border-radius: 50%;
    content: "";
}

.auth-brand-panel img {
    position: relative;
    z-index: 1;
    width: 172px;
    height: 172px;
    object-fit: cover;
    border: 8px solid rgba(255, 255, 255, .08);
    border-radius: 28px;
}

.auth-brand-panel > div {
    position: relative;
    z-index: 1;
}

.auth-brand-panel .eyebrow {
    color: #ff9b73;
}

.auth-brand-panel h1 {
    max-width: 520px;
    margin-bottom: 18px;
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(2.35rem, 4.2vw, 4.35rem);
    font-weight: 500;
}

.auth-brand-panel p {
    max-width: 520px;
    color: rgba(255, 255, 255, .67);
    font-size: 1.02rem;
}

.auth-form-panel {
    display: grid;
    align-items: center;
    padding: 48px;
}

.auth-form-wrap {
    width: 100%;
    max-width: 420px;
    margin: auto;
}

.auth-form-wrap h2 {
    margin-bottom: 10px;
    font-size: 2rem;
}

.auth-form-wrap > p {
    margin-bottom: 25px;
}

.login-page {
    min-height: 100vh;
    display: grid;
    place-items: center;
}

.login-shell {
    width: min(980px, calc(100% - 28px));
    min-height: min(600px, calc(100vh - 28px));
    grid-template-columns: minmax(300px, .9fr) minmax(380px, 1.1fr);
    margin: 14px auto;
    border-radius: 22px;
}

.login-shell .auth-brand-panel {
    align-items: center;
    justify-content: center;
    gap: 20px;
    padding: 34px;
    text-align: center;
}

.login-shell .auth-brand-panel img {
    width: 118px;
    height: 118px;
    border-width: 6px;
    border-radius: 22px;
}

.login-shell .auth-brand-panel h1,
.login-shell .auth-brand-panel p {
    margin-inline: auto;
}

.login-shell .auth-brand-panel h1 {
    margin-bottom: 12px;
    font-size: clamp(2rem, 3.5vw, 3.1rem);
}

.login-shell .auth-brand-panel p {
    font-size: .9rem;
}

.login-shell .auth-form-panel {
    justify-items: center;
    padding: 32px;
}

.login-shell .auth-form-wrap {
    max-width: 410px;
    margin: auto;
}

.login-shell .auth-form-wrap > .eyebrow,
.login-shell .auth-form-wrap > h2,
.login-shell .auth-form-wrap > p {
    text-align: center;
}

.login-shell .auth-form-wrap > .eyebrow {
    width: fit-content;
    margin-inline: auto;
}

.login-shell .auth-form-wrap h2 {
    margin-bottom: 7px;
    font-size: 1.7rem;
}

.login-shell .auth-form-wrap > p {
    margin-bottom: 20px;
    font-size: .86rem;
}

.login-shell .field {
    gap: 6px;
    margin-bottom: 12px;
}

.login-shell input {
    min-height: 42px;
    padding: 8px 11px;
}

.login-shell .btn {
    min-height: 42px;
    padding: 9px 16px;
}

.login-help {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    margin: 2px 0 16px;
}

.login-help a {
    color: var(--orange-dark);
    font-size: .84rem;
    font-weight: 750;
}

.favicon-setting-layout {
    display: grid;
    grid-template-columns: 88px minmax(240px, 1fr) auto;
    align-items: center;
    gap: 18px;
}

.favicon-setting-layout .field {
    margin-bottom: 0;
}

.favicon-preview {
    width: 88px;
    height: 88px;
    display: grid;
    place-items: center;
    overflow: hidden;
    border: 1px solid var(--line);
    border-radius: 18px;
    background:
        linear-gradient(45deg, #f1eee8 25%, transparent 25%),
        linear-gradient(-45deg, #f1eee8 25%, transparent 25%),
        linear-gradient(45deg, transparent 75%, #f1eee8 75%),
        linear-gradient(-45deg, transparent 75%, #f1eee8 75%);
    background-position: 0 0, 0 8px, 8px -8px, -8px 0;
    background-size: 16px 16px;
}

.favicon-preview img {
    width: 64px;
    height: 64px;
    object-fit: contain;
    border-radius: 10px;
}

.setup-shell {
    width: min(1040px, calc(100% - 28px));
    min-height: auto;
    max-height: calc(100vh - 28px);
    grid-template-columns: minmax(280px, .78fr) minmax(430px, 1.22fr);
    margin: 14px auto;
    border-radius: 22px;
}

.setup-page {
    min-height: 100vh;
    display: grid;
    place-items: center;
}

.setup-shell .auth-form-panel {
    align-items: center;
    justify-items: center;
    padding: 26px 32px;
    overflow-y: auto;
}

.setup-shell .auth-brand-panel {
    align-items: center;
    justify-content: center;
    gap: 18px;
    padding: 30px;
    text-align: center;
}

.setup-shell .auth-brand-panel h1,
.setup-shell .auth-brand-panel p {
    margin-inline: auto;
}

.setup-shell .auth-brand-panel img {
    width: 112px;
    height: 112px;
    border-width: 6px;
    border-radius: 22px;
}

.setup-shell .auth-brand-panel h1 {
    margin-bottom: 12px;
    font-size: clamp(2rem, 3.4vw, 3rem);
}

.setup-shell .auth-brand-panel p {
    margin-bottom: 0;
    font-size: .9rem;
}

.setup-shell .auth-form-wrap {
    max-width: 520px;
    margin: auto;
}

.setup-shell .auth-form-wrap > .eyebrow,
.setup-shell .auth-form-wrap > h2,
.setup-shell .auth-form-wrap > p,
.setup-shell .auth-form-wrap > .status-pill {
    text-align: center;
}

.setup-shell .auth-form-wrap > .eyebrow,
.setup-shell .auth-form-wrap > .status-pill {
    width: fit-content;
    margin-inline: auto;
}

.setup-shell .auth-form-wrap h2 {
    margin-bottom: 6px;
    font-size: 1.55rem;
}

.setup-shell .auth-form-wrap > p {
    margin-bottom: 14px;
    font-size: .82rem;
}

.setup-shell .eyebrow {
    margin-bottom: 6px;
}

.setup-shell .field {
    gap: 5px;
    margin-bottom: 10px;
}

.setup-shell .form-grid {
    gap: 10px;
}

.setup-shell input,
.setup-shell select,
.setup-shell textarea {
    min-height: 39px;
    padding: 7px 10px;
}

.setup-shell .btn {
    min-height: 40px;
    padding: 8px 15px;
}

/* Staff shell */
.app-shell {
    min-height: 100vh;
}

.sidebar {
    position: fixed;
    z-index: 50;
    inset: 0 auto 0 0;
    width: var(--sidebar-width);
    display: flex;
    flex-direction: column;
    overflow: hidden;
    color: #fff;
    background:
        radial-gradient(circle at 12% 4%, rgba(255, 90, 31, .18), transparent 25%),
        linear-gradient(180deg, #171614 0%, #23201d 100%);
    transition: width var(--transition), transform var(--transition);
}

.sidebar-brand {
    min-height: 86px;
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 15px 18px;
    border-bottom: 1px solid rgba(255, 255, 255, .08);
}

.sidebar-brand img {
    width: 49px;
    height: 49px;
    flex: 0 0 49px;
    object-fit: cover;
    border-radius: 12px;
}

.sidebar-brand strong {
    display: block;
    font-family: Georgia, "Times New Roman", serif;
    font-size: 1.07rem;
    white-space: nowrap;
}

.sidebar-brand small {
    display: block;
    margin-top: 2px;
    color: rgba(255, 255, 255, .54);
    font-size: .7rem;
    letter-spacing: .12em;
    text-transform: uppercase;
    white-space: nowrap;
}

.sidebar-nav {
    flex: 1;
    overflow-x: hidden;
    overflow-y: auto;
    padding: 16px 12px;
    scroll-behavior: smooth;
    scroll-padding-block: 24px;
    scrollbar-color: rgba(255,255,255,.18) transparent;
    scrollbar-width: thin;
}

.nav-section-label {
    height: 27px;
    margin: 12px 12px 4px;
    color: rgba(255, 255, 255, .38);
    font-size: .65rem;
    font-weight: 800;
    letter-spacing: .13em;
    text-transform: uppercase;
    white-space: nowrap;
    transition: opacity var(--transition);
}

.nav-link {
    min-height: 44px;
    display: flex;
    align-items: center;
    gap: 13px;
    margin: 3px 0;
    padding: 9px 12px;
    border-radius: 11px;
    color: rgba(255, 255, 255, .69);
    font-size: .88rem;
    font-weight: 650;
    white-space: nowrap;
    transition: color var(--transition), background var(--transition);
}

.nav-link:hover {
    color: #fff;
    background: rgba(255, 255, 255, .07);
}

.nav-link.active {
    color: #fff;
    background: linear-gradient(100deg, var(--orange), #ef6a36);
    box-shadow: 0 8px 20px rgba(255, 90, 31, .22);
}

.nav-icon {
    width: 25px;
    flex: 0 0 25px;
    text-align: center;
    font-size: 1.08rem;
}

.nav-text {
    transition: opacity var(--transition);
}

.sidebar-footer {
    padding: 14px 12px;
    border-top: 1px solid rgba(255, 255, 255, .08);
}

.sidebar-footer .nav-link {
    margin: 0;
}

.app-main {
    min-height: 100vh;
    margin-left: var(--sidebar-width);
    transition: margin-left var(--transition);
}

.topbar {
    position: sticky;
    z-index: 40;
    top: 0;
    min-height: 72px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
    padding: 12px 28px;
    border-bottom: 1px solid rgba(220, 211, 199, .85);
    background: rgba(245, 241, 233, .9);
    -webkit-backdrop-filter: blur(14px);
    backdrop-filter: blur(14px);
}

.topbar-left,
.topbar-right {
    display: flex;
    align-items: center;
    gap: 12px;
}

.global-search {
    position: relative;
    width: min(380px, 38vw);
}

.global-search input {
    padding-left: 39px;
    border-color: transparent;
    background: rgba(255,255,255,.75);
    box-shadow: 0 5px 14px rgba(38, 30, 22, .04);
}

.global-search::before {
    position: absolute;
    z-index: 1;
    top: 11px;
    left: 14px;
    content: "⌕";
    color: var(--muted);
    font-size: 1.1rem;
}

.global-results {
    right: auto;
    left: 0;
    width: min(520px, calc(100vw - 34px));
    max-height: min(560px, 72vh);
    overflow-y: auto;
    overscroll-behavior: contain;
}

.global-results a {
    align-items: flex-start;
}

.global-results a.active,
.global-results a:hover {
    background: var(--orange-soft);
}

.global-result-icon {
    width: 30px;
    height: 30px;
    display: grid;
    flex: 0 0 30px;
    place-items: center;
    border-radius: 8px;
    color: var(--orange-dark);
    background: rgba(255,106,22,.12);
    font-size: .62rem;
    font-weight: 850;
}

.global-result-copy {
    min-width: 0;
    display: grid;
    gap: 1px;
}

.global-result-copy em {
    color: var(--orange-dark);
    font-size: .52rem;
    font-style: normal;
    font-weight: 800;
    letter-spacing: .055em;
    text-transform: uppercase;
}

.global-result-copy strong,
.global-result-copy small {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.global-result-copy small,
.dropdown-empty {
    color: var(--muted);
    font-size: .68rem;
}

.dropdown-empty {
    padding: 12px;
    text-align: center;
}

.business-date {
    display: grid;
    line-height: 1.15;
}

.business-date span {
    color: var(--muted);
    font-size: .68rem;
    font-weight: 750;
    letter-spacing: .07em;
    text-transform: uppercase;
}

.business-date strong {
    margin-top: 4px;
    font-size: .84rem;
}

.profile-menu {
    position: relative;
}

.profile-trigger {
    min-height: 46px;
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 4px 9px 4px 5px;
    border: 1px solid var(--line);
    border-radius: 13px;
    background: var(--paper);
    cursor: pointer;
}

.avatar {
    width: 36px;
    height: 36px;
    display: grid;
    flex: 0 0 36px;
    place-items: center;
    border-radius: 10px;
    color: #fff;
    background: linear-gradient(145deg, var(--orange), var(--orange-dark));
    font-size: .76rem;
    font-weight: 900;
}

.profile-trigger-info {
    display: grid;
    min-width: 105px;
    text-align: left;
    line-height: 1.15;
}

.profile-trigger-info strong {
    font-size: .8rem;
}

.profile-trigger-info small {
    max-width: 125px;
    margin-top: 3px;
    overflow: hidden;
    color: var(--muted);
    font-size: .66rem;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.dropdown {
    position: absolute;
    z-index: 80;
    top: calc(100% + 9px);
    right: 0;
    width: 225px;
    display: none;
    padding: 8px;
    border: 1px solid var(--line);
    border-radius: 14px;
    background: var(--paper);
    box-shadow: var(--shadow);
}

.dropdown.open {
    display: grid;
}

.dropdown a,
.dropdown button {
    width: 100%;
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 10px;
    border: 0;
    border-radius: 9px;
    color: var(--ink-soft);
    background: transparent;
    cursor: pointer;
    text-align: left;
    font-size: .84rem;
}

.dropdown a:hover,
.dropdown button:hover {
    background: var(--orange-soft);
}

.app-content {
    width: min(1600px, 100%);
    margin: 0 auto;
    padding: 27px 28px 55px;
}

body.sidebar-collapsed .sidebar {
    width: var(--sidebar-collapsed);
}

body.sidebar-collapsed .app-main {
    margin-left: var(--sidebar-collapsed);
}

body.sidebar-collapsed .sidebar-brand {
    justify-content: center;
}

body.sidebar-collapsed .sidebar-brand > div,
body.sidebar-collapsed .nav-text,
body.sidebar-collapsed .nav-section-label {
    width: 0;
    overflow: hidden;
    opacity: 0;
}

body.sidebar-collapsed .nav-link {
    justify-content: center;
    padding-inline: 8px;
}

body.sidebar-collapsed .nav-icon {
    width: 30px;
    flex-basis: 30px;
}

.mobile-overlay {
    position: fixed;
    z-index: 45;
    inset: 0;
    display: none;
    background: rgba(17, 16, 14, .5);
}

/* Page structure */
.page-header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 24px;
    margin-bottom: 24px;
}

.page-header h1 {
    margin-bottom: 7px;
    font-size: clamp(1.65rem, 3vw, 2.3rem);
}

.page-header p {
    max-width: 720px;
    margin-bottom: 0;
    color: var(--muted);
}

.page-actions {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: 9px;
}

.quick-strip {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 15px;
    margin-bottom: 22px;
}

.metric-card {
    position: relative;
    min-height: 138px;
    padding: 20px;
    overflow: hidden;
    border: 1px solid rgba(228, 218, 204, .86);
    border-radius: var(--radius);
    background: var(--paper);
    box-shadow: var(--shadow-sm);
}

.metric-card::after {
    position: absolute;
    right: -25px;
    bottom: -42px;
    width: 110px;
    height: 110px;
    border: 22px solid var(--orange-soft);
    border-radius: 50%;
    content: "";
}

.metric-head {
    position: relative;
    z-index: 1;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    color: var(--muted);
    font-size: .79rem;
    font-weight: 750;
}

.metric-icon {
    width: 35px;
    height: 35px;
    display: grid;
    place-items: center;
    border-radius: 10px;
    color: var(--orange-dark);
    background: var(--orange-soft);
}

.metric-value {
    position: relative;
    z-index: 1;
    display: block;
    margin-top: 13px;
    font-size: clamp(1.55rem, 2.5vw, 2.15rem);
    font-weight: 850;
    letter-spacing: -.045em;
}

.metric-foot {
    position: relative;
    z-index: 1;
    display: block;
    margin-top: 4px;
    color: var(--muted);
    font-size: .73rem;
}

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

.span-3 { grid-column: span 3; }
.span-4 { grid-column: span 4; }
.span-5 { grid-column: span 5; }
.span-6 { grid-column: span 6; }
.span-7 { grid-column: span 7; }
.span-8 { grid-column: span 8; }
.span-9 { grid-column: span 9; }
.span-12 { grid-column: span 12; }

.card {
    border: 1px solid rgba(228, 218, 204, .86);
    border-radius: var(--radius);
    background: var(--paper);
    box-shadow: var(--shadow-sm);
}

.card-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    padding: 19px 21px;
    border-bottom: 1px solid var(--line);
}

.card-header h2,
.card-header h3 {
    margin: 0;
    font-size: 1.05rem;
}

.card-header p {
    margin: 4px 0 0;
    color: var(--muted);
    font-size: .78rem;
}

.card-body {
    padding: 21px;
}

.card-body.flush {
    padding: 0;
}

.card-footer {
    padding: 14px 21px;
    border-top: 1px solid var(--line);
}

.toolbar {
    display: flex;
    flex-wrap: wrap;
    align-items: end;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 18px;
    padding: 14px;
    border: 1px solid var(--line);
    border-radius: 14px;
    background: rgba(255,255,255,.62);
}

.toolbar-group {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 9px;
}

.toolbar input,
.toolbar select {
    width: auto;
    min-width: 150px;
    min-height: 38px;
    padding-block: 7px;
}

.table-wrap {
    width: 100%;
    overflow-x: auto;
}

.data-table {
    width: 100%;
    border-collapse: collapse;
    font-size: .84rem;
}

.data-table th,
.data-table td {
    padding: 13px 15px;
    border-bottom: 1px solid var(--line);
    text-align: left;
    vertical-align: middle;
    white-space: nowrap;
}

.data-table th {
    color: var(--muted);
    background: #fbf8f2;
    font-size: .68rem;
    font-weight: 850;
    letter-spacing: .07em;
    text-transform: uppercase;
}

.data-table tbody tr {
    transition: background var(--transition);
}

.data-table tbody tr:hover {
    background: #fffaf5;
}

.data-table tbody tr:last-child td {
    border-bottom: 0;
}

.primary-cell {
    display: grid;
    gap: 2px;
}

.primary-cell strong {
    font-size: .86rem;
}

.primary-cell small {
    color: var(--muted);
    font-size: .7rem;
}

.empty-state {
    display: grid;
    place-items: center;
    min-height: 260px;
    padding: 35px;
    text-align: center;
}

.empty-state-icon {
    width: 70px;
    height: 70px;
    display: grid;
    place-items: center;
    margin-bottom: 14px;
    border-radius: 22px;
    color: var(--orange);
    background:
        repeating-linear-gradient(135deg, transparent 0 7px, rgba(255,90,31,.08) 7px 13px),
        var(--orange-soft);
    font-size: 1.7rem;
}

.empty-state h3 {
    margin-bottom: 8px;
}

.empty-state p {
    max-width: 390px;
    margin-bottom: 18px;
    color: var(--muted);
    font-size: .88rem;
}

.tabs {
    display: flex;
    gap: 4px;
    overflow-x: auto;
    padding: 5px;
    border: 1px solid var(--line);
    border-radius: 12px;
    background: #ebe5db;
}

.tab {
    min-height: 36px;
    padding: 8px 13px;
    border: 0;
    border-radius: 9px;
    color: var(--muted);
    background: transparent;
    cursor: pointer;
    font-size: .8rem;
    font-weight: 750;
    white-space: nowrap;
}

.tab.active {
    color: var(--ink);
    background: var(--paper);
    box-shadow: 0 3px 10px rgba(28, 23, 17, .07);
}

.tab-panel {
    display: none;
}

.tab-panel.active {
    display: block;
}

.list {
    display: grid;
}

.list-item {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
    padding: 13px 0;
    border-bottom: 1px solid var(--line);
}

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

.list-item-main {
    display: flex;
    align-items: center;
    gap: 11px;
}

.list-icon {
    width: 38px;
    height: 38px;
    display: grid;
    flex: 0 0 38px;
    place-items: center;
    border-radius: 11px;
    background: var(--orange-soft);
}

.list-item strong {
    display: block;
    font-size: .83rem;
}

.list-item small {
    display: block;
    margin-top: 2px;
    color: var(--muted);
    font-size: .7rem;
}

.progress {
    height: 8px;
    overflow: hidden;
    border-radius: 999px;
    background: #eee6db;
}

.progress > span {
    height: 100%;
    display: block;
    border-radius: inherit;
    background: var(--orange);
}

/* Room board */
.room-board {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(175px, 1fr));
    gap: 13px;
}

.room-card {
    position: relative;
    min-height: 145px;
    padding: 16px;
    overflow: hidden;
    border: 1px solid var(--line);
    border-left: 5px solid var(--blue);
    border-radius: 14px;
    background: #fff;
}

.room-card.success { border-left-color: var(--green); }
.room-card.warning { border-left-color: var(--amber); }
.room-card.danger { border-left-color: var(--red); }
.room-card.info { border-left-color: var(--blue); }

.room-number {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 8px;
}

.room-number strong {
    font-size: 1.25rem;
}

.room-card > small {
    display: block;
    margin-top: 5px;
    color: var(--muted);
}

.room-card .status-pill {
    margin-top: 18px;
}

.room-card-actions {
    display: flex;
    gap: 5px;
    margin-top: 12px;
}

/* Calendar / timeline */
.calendar-strip {
    display: grid;
    grid-auto-columns: minmax(82px, 1fr);
    grid-auto-flow: column;
    overflow-x: auto;
}

.calendar-day {
    padding: 11px 7px;
    border-right: 1px solid var(--line);
    text-align: center;
}

.calendar-day strong,
.calendar-day small {
    display: block;
}

.calendar-day small {
    color: var(--muted);
    font-size: .68rem;
}

.calendar-day.today {
    color: var(--orange-dark);
    background: var(--orange-soft);
}

/* POS */
.pos-layout {
    height: calc(100vh - 128px);
    min-height: 650px;
    display: grid;
    grid-template-columns: minmax(0, 1fr) 390px;
    gap: 16px;
}

.pos-catalog,
.pos-ticket {
    min-height: 0;
    display: flex;
    flex-direction: column;
    overflow: hidden;
    border: 1px solid var(--line);
    border-radius: 18px;
    background: var(--paper);
    box-shadow: var(--shadow-sm);
}

.pos-categories {
    display: flex;
    gap: 7px;
    padding: 14px;
    overflow-x: auto;
    border-bottom: 1px solid var(--line);
}

.pos-products {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(145px, 1fr));
    gap: 11px;
    padding: 14px;
    overflow-y: auto;
}

.product-card {
    min-height: 135px;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    gap: 12px;
    padding: 14px;
    border: 1px solid var(--line);
    border-radius: 14px;
    background:
        linear-gradient(145deg, rgba(255,255,255,.94), rgba(255,248,239,.94)),
        #fff;
    cursor: pointer;
    text-align: left;
    transition: transform var(--transition), border-color var(--transition), box-shadow var(--transition);
}

.product-card:hover {
    transform: translateY(-2px);
    border-color: #f0b397;
    box-shadow: 0 11px 22px rgba(56, 37, 20, .09);
}

.product-card strong {
    font-size: .91rem;
}

.product-card small {
    display: block;
    margin-top: 4px;
    color: var(--muted);
}

.product-card .price {
    color: var(--orange-dark);
    font-weight: 850;
}

.pos-ticket-head {
    padding: 16px;
    border-bottom: 1px solid var(--line);
}

.pos-ticket-items {
    flex: 1;
    overflow-y: auto;
    padding: 7px 15px;
}

.ticket-item {
    display: grid;
    grid-template-columns: 1fr auto;
    gap: 10px;
    padding: 12px 0;
    border-bottom: 1px solid var(--line);
}

.ticket-item strong {
    display: block;
    font-size: .84rem;
}

.ticket-item small {
    color: var(--muted);
}

.quantity-control {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    margin-top: 7px;
}

.quantity-control button {
    width: 25px;
    height: 25px;
    display: grid;
    place-items: center;
    padding: 0;
    border: 1px solid var(--line);
    border-radius: 7px;
    background: #fff;
    cursor: pointer;
}

.pos-ticket-total {
    padding: 16px;
    border-top: 1px solid var(--line);
    background: #fbf8f2;
}

.total-row {
    display: flex;
    justify-content: space-between;
    margin: 6px 0;
    color: var(--muted);
    font-size: .84rem;
}

.total-row.grand {
    margin-top: 12px;
    padding-top: 12px;
    border-top: 1px dashed #c9bcaa;
    color: var(--ink);
    font-size: 1.12rem;
    font-weight: 850;
}

/* KDS */
.kds-board {
    display: grid;
    grid-template-columns: repeat(4, minmax(260px, 1fr));
    gap: 14px;
    overflow-x: auto;
}

.kds-column {
    min-height: 570px;
    padding: 12px;
    border-radius: 16px;
    background: rgba(225, 217, 205, .65);
}

.kds-column-head {
    display: flex;
    justify-content: space-between;
    padding: 5px 4px 12px;
    font-size: .83rem;
    font-weight: 850;
    text-transform: uppercase;
}

.kds-ticket {
    margin-bottom: 10px;
    padding: 14px;
    border: 1px solid var(--line);
    border-radius: 13px;
    background: var(--paper);
    box-shadow: var(--shadow-sm);
}

.kds-ticket-head {
    display: flex;
    justify-content: space-between;
    gap: 9px;
    margin-bottom: 11px;
}

.kds-ticket ul {
    margin: 0;
    padding-left: 20px;
    color: var(--ink-soft);
    font-size: .82rem;
}

.kds-ticket .timer {
    color: var(--orange-dark);
    font-size: .72rem;
    font-weight: 850;
}

/* Charts */
.chart-bars {
    height: 220px;
    display: flex;
    align-items: end;
    gap: 12px;
    padding: 18px 4px 0;
}

.chart-bar-group {
    min-width: 24px;
    flex: 1;
    text-align: center;
}

.chart-bar {
    width: 100%;
    min-height: 3px;
    border-radius: 7px 7px 2px 2px;
    background: linear-gradient(180deg, var(--orange), #ff8a5e);
    transition: height .5s ease;
}

.chart-bar-group small {
    display: block;
    margin-top: 7px;
    color: var(--muted);
    font-size: .66rem;
}

/* Public booking portal */
.public-page {
    background: #f9f5ed;
}

.public-topbar {
    position: relative;
    z-index: 31;
    color: var(--ink-soft);
    background:
        radial-gradient(circle at 18% 50%, rgba(255,90,31,.07), transparent 24%),
        #e7e6e3;
    border-bottom: 1px solid #d8d5cf;
}

.public-topbar::before {
    position: absolute;
    top: 0;
    right: 0;
    left: 0;
    height: 2px;
    background: linear-gradient(90deg, var(--orange), #ff8a50 45%, transparent 82%);
    content: "";
}

.public-topbar-inner {
    width: min(1180px, calc(100% - 48px));
    min-height: 34px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 24px;
    margin: auto;
    padding: 2px 0;
}

.public-socials,
.public-social-links,
.public-topbar-contact,
.public-topbar-contact a {
    display: flex;
    align-items: center;
}

.public-socials {
    gap: 12px;
}

.public-topbar-kicker {
    display: flex;
    align-items: center;
    gap: 7px;
    color: #69645e;
    font-size: .62rem;
    font-weight: 850;
    letter-spacing: .12em;
    text-transform: uppercase;
}

.public-topbar-kicker i {
    width: 17px;
    height: 1px;
    display: block;
    background: var(--orange);
}

.public-social-links {
    gap: 5px;
}

.public-social-icon {
    width: 22px;
    height: 22px;
    display: grid;
    place-items: center;
    border: 1px solid #cfcbc4;
    border-radius: 50%;
    color: #4e4a45;
    background: rgba(255,255,255,.7);
    font-family: Arial, sans-serif;
    font-size: .68rem;
    font-weight: 900;
    line-height: 1;
    transition: color var(--transition), border-color var(--transition), background var(--transition), transform var(--transition);
}

.public-social-icon:hover {
    border-color: var(--orange);
    color: #fff;
    background: var(--orange);
    transform: translateY(-1px);
}

.public-topbar-contact {
    gap: 0;
}

.public-topbar-contact a {
    gap: 7px;
    padding: 0 13px;
    color: #55514b;
    font-size: .68rem;
    font-weight: 700;
    white-space: nowrap;
}

.public-topbar-contact a + a {
    border-left: 1px solid #cbc7c0;
}

.public-topbar-contact a:last-child {
    padding-right: 0;
}

.public-topbar-contact a:hover {
    color: var(--orange-dark);
}

.public-contact-icon {
    width: 19px;
    height: 19px;
    display: grid;
    place-items: center;
    border-radius: 7px;
    color: var(--orange);
    background: rgba(255,90,31,.1);
    font-size: .69rem;
}

.public-nav {
    position: relative;
    z-index: 30;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
    overflow: hidden;
    padding: 16px max(24px, calc((100% - 1180px) / 2));
    border-bottom: 1px solid #d8ccb9;
    background:
        linear-gradient(90deg, rgba(252,249,242,.98), rgba(243,236,224,.96)),
        var(--paper);
    box-shadow: 0 10px 28px rgba(46, 35, 24, .08);
    isolation: isolate;
    -webkit-backdrop-filter: blur(12px);
    backdrop-filter: blur(12px);
}

.public-nav::before {
    position: absolute;
    z-index: -1;
    inset: 0;
    background:
        repeating-linear-gradient(114deg, transparent 0 38px, rgba(30,25,19,.025) 39px 46px),
        radial-gradient(circle at 86% 20%, rgba(255,90,31,.11), transparent 26%);
    content: "";
}

.public-brand {
    position: relative;
    z-index: 1;
    display: flex;
    align-items: center;
    gap: 14px;
}

.public-brand img {
    width: 72px;
    height: 72px;
    padding: 3px;
    object-fit: cover;
    border: 2px solid rgba(255,90,31,.48);
    border-radius: 46% 54% 48% 52% / 52% 46% 54% 48%;
    background: rgba(255,255,255,.86);
    box-shadow: 0 8px 20px rgba(52,38,25,.13), 0 0 0 5px rgba(255,255,255,.48);
}

.public-brand strong {
    display: block;
    color: #28221b;
    font-family: Georgia, "Times New Roman", serif;
    font-size: 1.2rem;
    letter-spacing: .01em;
}

.public-brand small {
    display: block;
    margin-top: 2px;
    color: var(--orange-dark);
    font-size: .76rem;
    font-weight: 850;
    letter-spacing: .11em;
    text-transform: uppercase;
}

.public-links {
    position: relative;
    z-index: 1;
    display: flex;
    align-items: center;
    gap: clamp(14px, 1.7vw, 22px);
}

.public-links a:not(.btn) {
    position: relative;
    padding: 10px 14px;
    border: 1px solid rgba(91, 75, 57, .28);
    border-radius: 999px;
    color: var(--ink-soft);
    font-size: clamp(1rem, 1.28vw, 1.08rem);
    font-weight: 700;
    transition: border-color .24s ease, color .24s ease;
}

.public-links a:not(.btn)::after {
    position: absolute;
    right: 14px;
    bottom: 5px;
    left: 14px;
    height: 2px;
    border-radius: 999px;
    background: var(--orange);
    content: "";
    opacity: 0;
    transform: scaleX(0);
    transform-origin: center;
    transition: opacity .16s ease, transform .32s cubic-bezier(.2, .72, .28, 1);
}

.public-links a:not(.btn):hover,
.public-links a.active:not(.btn),
.public-links a:not(.btn):focus-visible {
    border-color: transparent;
    color: var(--ink-soft);
}

.public-links a:not(.btn):hover::after,
.public-links a.active:not(.btn)::after,
.public-links a:not(.btn):focus-visible::after {
    opacity: 1;
    transform: scaleX(1);
}

.public-nav .btn-sm {
    min-height: 46px;
    padding: 10px 19px;
    border-radius: 999px;
}

.public-nav .btn-primary {
    border-color: rgba(195,62,13,.2);
    background: linear-gradient(135deg, #ff6a2f, var(--orange-dark));
    box-shadow: 0 11px 23px rgba(212, 68, 17, .24);
}

.public-nav .btn-primary:hover {
    background: linear-gradient(135deg, var(--orange), #b9380d);
    box-shadow: 0 14px 28px rgba(192, 57, 10, .3);
}

.public-links a.active:not(.btn) {
    color: var(--orange-dark);
}

.hero {
    position: relative;
    min-height: 620px;
    display: grid;
    align-items: center;
    overflow: hidden;
    color: #fff;
    background: var(--ink);
}

.hero::before {
    position: absolute;
    z-index: 1;
    inset: 0;
    background:
        linear-gradient(90deg, rgba(13, 13, 12, .94) 0%, rgba(18, 17, 15, .82) 46%, rgba(18, 17, 15, .34) 100%),
        linear-gradient(0deg, rgba(18, 17, 15, .55), transparent 52%);
    content: "";
}

.hero::after {
    position: absolute;
    z-index: 1;
    inset: 0;
    background:
        repeating-linear-gradient(125deg, transparent 0 58px, rgba(255,255,255,.02) 59px 65px),
        radial-gradient(circle at 78% 32%, rgba(255, 90, 31, .22), transparent 30%);
    content: "";
}

.hero-slides,
.hero-slide {
    position: absolute;
    inset: 0;
}

.hero-slides {
    z-index: 0;
    overflow: hidden;
}

.hero-slide {
    z-index: 0;
    visibility: hidden;
    opacity: 0;
    transform: translate3d(100%, 0, 0);
    transition:
        transform 1s cubic-bezier(.68, 0, .22, 1),
        opacity .72s ease,
        visibility 0s linear 1s;
    will-change: transform, opacity;
}

.hero-slide.is-active {
    z-index: 2;
    visibility: visible;
    opacity: 1;
    transform: translate3d(0, 0, 0);
    transition-delay: 0s;
}

.hero-slide.is-entering-right,
.hero-slide.is-entering-left,
.hero-slide.is-leaving-left,
.hero-slide.is-leaving-right {
    visibility: visible;
    opacity: 1;
    transition-delay: 0s;
}

.hero-slide.is-entering-right {
    z-index: 2;
    transform: translate3d(100%, 0, 0);
    transition: none;
}

.hero-slide.is-entering-left {
    z-index: 2;
    transform: translate3d(-100%, 0, 0);
    transition: none;
}

.hero-slide.is-leaving-left {
    z-index: 1;
    transform: translate3d(-100%, 0, 0);
}

.hero-slide.is-leaving-right {
    z-index: 1;
    transform: translate3d(100%, 0, 0);
}

.hero-slide img {
    width: 100%;
    height: 100%;
    display: block;
    object-fit: cover;
    object-position: center 66%;
    transform: scale(1.02);
}

.hero-slide-lodge img {
    object-position: center 53%;
}

.hero-slide.is-active img {
    animation: hero-slide-zoom 7s ease-out both;
}

.hero-depth-scene {
    position: absolute;
    z-index: 1;
    inset: 0;
    overflow: hidden;
    pointer-events: none;
    perspective: 900px;
}

.hero-depth-scene > span {
    position: absolute;
    display: block;
    transform: translate3d(var(--depth-x, 0), var(--depth-y, 0), 0);
    transition: transform .9s cubic-bezier(.2, .72, .28, 1);
    will-change: transform;
}

.hero-depth-sun {
    top: 12%;
    right: 12%;
    width: clamp(170px, 20vw, 290px);
    aspect-ratio: 1;
    border: 1px solid rgba(255, 194, 133, .2);
    border-radius: 50%;
    background: radial-gradient(circle, rgba(255, 155, 91, .27), rgba(255, 111, 48, .08) 44%, transparent 70%);
    box-shadow: 0 0 85px rgba(255, 106, 47, .13);
}

.hero-depth-dust {
    inset: 0;
    opacity: .55;
    background-image:
        radial-gradient(circle at 12% 28%, rgba(255,255,255,.75) 0 1px, transparent 1.5px),
        radial-gradient(circle at 36% 64%, rgba(255,210,167,.6) 0 1px, transparent 1.5px),
        radial-gradient(circle at 72% 24%, rgba(255,255,255,.58) 0 1px, transparent 1.5px),
        radial-gradient(circle at 88% 72%, rgba(255,185,120,.62) 0 1px, transparent 1.5px);
    background-size: 190px 170px, 240px 220px, 280px 190px, 220px 260px;
    animation: safari-dust-drift 15s ease-in-out infinite alternate;
}

.hero-depth-grass {
    right: -4%;
    bottom: -18px;
    left: -4%;
    transform-origin: bottom;
}

.hero-depth-grass-back {
    height: 135px;
    opacity: .19;
    background: repeating-linear-gradient(102deg, transparent 0 15px, rgba(238, 205, 153, .72) 16px 18px, transparent 19px 30px);
    clip-path: polygon(0 100%, 0 71%, 6% 84%, 12% 55%, 17% 80%, 23% 47%, 28% 78%, 35% 58%, 42% 83%, 49% 51%, 56% 79%, 63% 43%, 70% 77%, 77% 55%, 84% 81%, 91% 48%, 100% 73%, 100% 100%);
}

.hero-depth-grass-front {
    bottom: -30px;
    height: 112px;
    opacity: .28;
    background: repeating-linear-gradient(96deg, transparent 0 20px, rgba(21, 20, 16, .92) 21px 25px, transparent 26px 42px);
    clip-path: polygon(0 100%, 0 74%, 5% 47%, 10% 81%, 16% 37%, 22% 76%, 29% 45%, 35% 82%, 42% 31%, 49% 75%, 56% 39%, 64% 79%, 72% 34%, 79% 77%, 87% 43%, 94% 80%, 100% 55%, 100% 100%);
}

@keyframes safari-dust-drift {
    from {
        opacity: .4;
        transform: translate3d(var(--depth-x, 0), var(--depth-y, 0), 0) scale(1);
    }
    to {
        opacity: .68;
        transform: translate3d(var(--depth-x, 0), var(--depth-y, 0), 0) scale(1.025);
    }
}

@keyframes hero-slide-zoom {
    from {
        transform: scale(1.02);
    }
    to {
        transform: scale(1.12);
    }
}

.hero-inner {
    position: relative;
    z-index: 2;
    width: min(1180px, calc(100% - 48px));
    display: grid;
    grid-template-columns: 1.05fr .95fr;
    align-items: center;
    gap: 55px;
    margin: 0 auto;
    padding: 82px 0 125px;
}

.hero-copy-stage {
    min-width: 0;
    display: grid;
}

.hero-copy-stage .hero-copy {
    grid-area: 1 / 1;
    align-self: center;
    visibility: hidden;
    opacity: 0;
    pointer-events: none;
    transform: translate3d(72px, 0, 0);
    transition:
        opacity .42s ease,
        transform .62s cubic-bezier(.2, .72, .28, 1),
        visibility 0s linear .62s;
    will-change: opacity, transform;
}

.hero-copy-stage .hero-copy.is-active {
    visibility: visible;
    opacity: 1;
    pointer-events: auto;
    transform: translate3d(0, 0, 0);
    transition-delay: 0s;
}

.hero-copy-stage .hero-copy.is-leaving {
    visibility: visible;
    opacity: 0;
    transform: translate3d(-72px, 0, 0);
    transition-delay: 0s;
}

.hero-copy-stage .hero-copy.is-entering {
    visibility: visible;
    opacity: 0;
    transform: translate3d(72px, 0, 0);
    transition: none;
}

.hero-copy-stage.is-reverse .hero-copy {
    transform: translate3d(-72px, 0, 0);
}

.hero-copy-stage.is-reverse .hero-copy.is-active {
    transform: translate3d(0, 0, 0);
}

.hero-copy-stage.is-reverse .hero-copy.is-leaving {
    transform: translate3d(72px, 0, 0);
}

.hero-copy-stage.is-reverse .hero-copy.is-entering {
    transform: translate3d(-72px, 0, 0);
}

.hero-copy h1 {
    max-width: 690px;
    margin-bottom: 22px;
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(3.25rem, 7vw, 6.4rem);
    font-weight: 500;
    line-height: .97;
}

.hero-copy h1 em {
    color: var(--orange);
    font-weight: 500;
}

.hero-copy p {
    max-width: 580px;
    margin-bottom: 30px;
    color: rgba(255,255,255,.7);
    font-size: 1.06rem;
}

.hero-mark {
    position: relative;
    display: grid;
    place-items: center;
}

.hero-mark::before,
.hero-mark::after {
    position: absolute;
    width: 360px;
    height: 360px;
    border: 1px solid rgba(255,255,255,.12);
    border-radius: 50%;
    content: "";
}

.hero-mark::after {
    width: 470px;
    height: 470px;
    border-style: dashed;
    border-color: rgba(255, 90, 31, .2);
}

.hero-mark img {
    position: relative;
    z-index: 2;
    width: 330px;
    height: 330px;
    object-fit: cover;
    border: 14px solid rgba(255,255,255,.07);
    border-radius: 46% 54% 48% 52% / 53% 43% 57% 47%;
    box-shadow: 0 30px 70px rgba(0,0,0,.28);
    transform: perspective(900px) rotateX(var(--hero-mark-x, 0deg)) rotateY(var(--hero-mark-y, 0deg)) translateZ(16px);
    transition: transform .85s cubic-bezier(.2, .72, .28, 1), box-shadow .5s ease;
    will-change: transform;
}

.hero-mark:hover img {
    box-shadow: 0 38px 82px rgba(0,0,0,.38);
}

.hero-slider-controls {
    position: absolute;
    z-index: 4;
    bottom: 82px;
    left: max(24px, calc((100% - 1180px) / 2));
    display: flex;
    align-items: center;
    gap: 2px;
    padding: 5px 8px;
    border: 1px solid rgba(255,255,255,.12);
    border-radius: 999px;
    background: rgba(18,17,15,.38);
    -webkit-backdrop-filter: blur(9px);
    backdrop-filter: blur(9px);
}

.hero-slider-dot {
    width: 42px;
    height: 26px;
    display: grid;
    place-items: center;
    padding: 0;
    border: 0;
    background: transparent;
    cursor: pointer;
}

.hero-slider-dot span {
    width: 25px;
    height: 3px;
    display: block;
    border-radius: 999px;
    background: rgba(255,255,255,.38);
    transition: width .35s ease, background .35s ease;
}

.hero-slider-dot:hover span {
    background: rgba(255,255,255,.72);
}

.hero-slider-dot.is-active span {
    width: 34px;
    background: var(--orange);
}

.hero-slider-dot:focus-visible {
    outline: 2px solid rgba(255,255,255,.9);
    outline-offset: 1px;
    border-radius: 999px;
}

@media (prefers-reduced-motion: reduce) {
    .hero-slide {
        transition: none;
    }

    .hero-slide.is-active img {
        animation: none;
        transform: scale(1.02);
    }

    .hero-copy-stage .hero-copy,
    .hero-copy-stage .hero-copy.is-active,
    .hero-copy-stage .hero-copy.is-leaving,
    .hero-copy-stage .hero-copy.is-entering {
        transform: none;
        transition: none;
    }
}

.availability-box {
    position: relative;
    z-index: 5;
    width: min(1080px, calc(100% - 48px));
    display: grid;
    grid-template-columns: repeat(4, 1fr) auto;
    align-items: end;
    gap: 10px;
    margin: -63px auto 0;
    padding: 18px;
    border: 1px solid rgba(226, 215, 200, .9);
    border-radius: 20px;
    background: var(--paper);
    box-shadow: 0 24px 55px rgba(34, 25, 17, .15);
}

.availability-box .field {
    margin: 0;
}

.lodge-introduction {
    position: relative;
    overflow: hidden;
    padding: 112px 24px 52px;
    text-align: center;
    background:
        radial-gradient(circle at 50% 12%, rgba(255,90,31,.09), transparent 27%),
        linear-gradient(180deg, rgba(249,245,237,.88), rgba(249,245,237,.94)),
        url("../images/website/lodge-lounge.jpg") center 58% / cover;
    background-blend-mode: normal;
}

.lodge-introduction::before,
.lodge-introduction::after {
    position: absolute;
    border: 1px solid rgba(89,74,57,.08);
    border-radius: 50%;
    content: "";
    pointer-events: none;
}

.lodge-introduction::before {
    top: 60px;
    left: -115px;
    width: 270px;
    height: 270px;
}

.lodge-introduction::after {
    right: -90px;
    bottom: -125px;
    width: 310px;
    height: 310px;
    box-shadow: 0 0 0 38px rgba(255,90,31,.018);
}

.introduction-depth-scene {
    position: absolute;
    z-index: 0;
    inset: 0;
    overflow: hidden;
    pointer-events: none;
}

.introduction-depth-scene > span {
    position: absolute;
    display: block;
    will-change: transform;
}

.introduction-depth-sun {
    top: 84px;
    left: 50%;
    width: 270px;
    height: 270px;
    border: 1px solid rgba(210, 99, 44, .12);
    border-radius: 50%;
    background: radial-gradient(circle, rgba(255, 162, 100, .12), rgba(255, 174, 116, .035) 55%, transparent 70%);
    transform: translate3d(-50%, var(--introduction-back-y, 0), 0);
}

.introduction-depth-ridge {
    right: -7%;
    bottom: -85px;
    left: -7%;
    border-radius: 48% 52% 0 0 / 100% 100% 0 0;
    transform-origin: center bottom;
}

.introduction-depth-ridge-back {
    height: 245px;
    opacity: .12;
    background: #806f59;
    clip-path: polygon(0 56%, 11% 36%, 23% 61%, 36% 30%, 47% 55%, 61% 25%, 74% 59%, 88% 34%, 100% 53%, 100% 100%, 0 100%);
    transform: translate3d(0, var(--introduction-back-y, 0), 0);
}

.introduction-depth-ridge-front {
    bottom: -125px;
    height: 250px;
    opacity: .09;
    background: #d85a23;
    clip-path: polygon(0 50%, 14% 30%, 27% 57%, 43% 25%, 57% 52%, 72% 34%, 86% 59%, 100% 38%, 100% 100%, 0 100%);
    transform: translate3d(0, var(--introduction-front-y, 0), 0);
}

.introduction-depth-baobab {
    bottom: 30px;
    left: clamp(22px, 8vw, 125px);
    width: 38px;
    height: 205px;
    opacity: .11;
    border-radius: 55% 45% 14% 18% / 12% 18% 4% 5%;
    background: #302a23;
    transform: translate3d(0, var(--introduction-tree-y, 0), 0);
}

.introduction-depth-baobab::before {
    position: absolute;
    top: -46px;
    left: 50%;
    width: 148px;
    height: 92px;
    border-radius: 48% 52% 46% 54%;
    background: #302a23;
    box-shadow:
        -55px 18px 0 -18px #302a23,
        58px 13px 0 -16px #302a23,
        -24px -18px 0 -15px #302a23,
        29px -20px 0 -18px #302a23;
    content: "";
    transform: translateX(-50%);
}

.introduction-depth-baobab::after {
    position: absolute;
    top: -10px;
    left: -52px;
    width: 142px;
    height: 8px;
    border-radius: 50%;
    background: #302a23;
    box-shadow: 0 -24px 0 -2px #302a23;
    content: "";
    transform: rotate(-7deg);
}

.lodge-introduction-inner {
    position: relative;
    z-index: 2;
    width: min(900px, 100%);
    margin: auto;
}

.lodge-introduction-name {
    display: block;
    margin-bottom: 12px;
    color: var(--orange-dark);
    font-size: .7rem;
    font-weight: 900;
    letter-spacing: .22em;
    text-transform: uppercase;
}

.lodge-introduction .eyebrow {
    justify-content: center;
}

.lodge-introduction h2 {
    max-width: 790px;
    margin: 14px auto 20px;
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(2.25rem, 5vw, 4.35rem);
    font-weight: 500;
    line-height: 1.04;
}

.lodge-introduction-mark {
    width: 62px;
    height: 62px;
    display: grid;
    place-items: center;
    margin: 0 auto 24px;
    border: 1px solid rgba(255,90,31,.35);
    border-radius: 46% 54% 48% 52% / 52% 46% 54% 48%;
    color: var(--orange-dark);
    background: rgba(255,255,255,.55);
    box-shadow: 0 0 0 7px rgba(255,90,31,.045);
}

.lodge-introduction-mark span {
    font-size: .58rem;
    font-weight: 900;
    letter-spacing: .08em;
}

.lodge-introduction-copy {
    display: grid;
    gap: 14px;
}

.lodge-introduction-copy p {
    max-width: 830px;
    margin: auto;
    color: var(--muted);
    font-size: .96rem;
    line-height: 1.85;
}

.lodge-introduction-values {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 9px;
    margin-top: 27px;
}

.lodge-introduction-values span {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 7px 11px;
    border: 1px solid var(--line);
    border-radius: 999px;
    color: var(--ink-soft);
    background: rgba(255,255,255,.56);
    font-size: .69rem;
    font-weight: 800;
}

.lodge-introduction-values span::before {
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: var(--orange);
    content: "";
}

.lodge-introduction + .public-section {
    padding-top: 55px;
}

.scroll-reveal-ready .scroll-reveal {
    opacity: 0;
    transform: translate3d(0, 28px, 0);
    transition:
        opacity .82s cubic-bezier(.2,.72,.28,1),
        transform .82s cubic-bezier(.2,.72,.28,1);
    transition-delay: var(--reveal-delay, 0ms);
    will-change: opacity, transform;
}

.scroll-reveal-ready .scroll-reveal.reveal-left {
    transform: translate3d(-34px, 0, 0);
}

.scroll-reveal-ready .scroll-reveal.reveal-right {
    transform: translate3d(34px, 0, 0);
}

.scroll-reveal-ready .scroll-reveal.reveal-scale {
    transform: scale(.94);
}

.scroll-reveal-ready .scroll-reveal.is-visible {
    opacity: 1;
    transform: translate3d(0, 0, 0) scale(1);
}

@media (prefers-reduced-motion: reduce) {
    .scroll-reveal-ready .scroll-reveal {
        opacity: 1;
        transform: none;
        transition: none;
    }
}

.public-section {
    width: min(1180px, calc(100% - 48px));
    margin: 0 auto;
    padding: 90px 0;
}

.section-heading {
    max-width: 700px;
    margin-bottom: 35px;
}

.section-heading h2 {
    margin-bottom: 13px;
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(2rem, 4vw, 3.5rem);
    font-weight: 500;
}

.section-heading p {
    color: var(--muted);
}

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

.public-room-card {
    overflow: hidden;
    border: 1px solid var(--line);
    border-radius: 21px;
    background: var(--paper);
    box-shadow: var(--shadow-sm);
}

.room-image-placeholder {
    position: relative;
    height: 230px;
    display: grid;
    place-items: center;
    overflow: hidden;
    color: #fff;
    background:
        linear-gradient(145deg, rgba(16,16,15,.88), rgba(58,42,28,.84)),
        var(--ink);
}

.room-image-placeholder::before {
    width: 160px;
    height: 160px;
    border: 30px solid rgba(255, 90, 31, .22);
    border-radius: 50%;
    content: "";
}

.room-image-placeholder span {
    position: absolute;
    font-family: Georgia, "Times New Roman", serif;
    font-size: 2.1rem;
}

.room-media-gallery {
    position: relative;
    height: 230px;
    overflow: hidden;
    background: var(--ink);
}

.room-media-main-wrap,
.room-media-main {
    width: 100%;
    height: 100%;
}

.room-media-main {
    display: block;
    object-fit: cover;
}

.room-media-count {
    position: absolute;
    z-index: 2;
    top: 10px;
    right: 10px;
    padding: 4px 8px;
    border-radius: 999px;
    color: #fff;
    background: rgba(18, 17, 15, .72);
    font-size: .68rem;
    font-weight: 800;
    -webkit-backdrop-filter: blur(8px);
    backdrop-filter: blur(8px);
}

.room-media-fallback-label {
    position: absolute;
    z-index: 2;
    right: 10px;
    bottom: 10px;
    padding: 5px 9px;
    border: 1px solid rgba(255,255,255,.24);
    border-radius: 999px;
    color: #fff;
    background: rgba(18, 17, 15, .62);
    font-size: .63rem;
    font-weight: 800;
    letter-spacing: .04em;
    text-transform: uppercase;
    -webkit-backdrop-filter: blur(8px);
    backdrop-filter: blur(8px);
}

.room-media-thumbs {
    position: absolute;
    z-index: 2;
    right: 8px;
    bottom: 8px;
    left: 8px;
    display: flex;
    gap: 5px;
    overflow-x: auto;
    padding: 5px;
    border-radius: 10px;
    background: rgba(18, 17, 15, .66);
    scrollbar-width: none;
    -webkit-backdrop-filter: blur(8px);
    backdrop-filter: blur(8px);
}

.room-media-thumbs::-webkit-scrollbar {
    display: none;
}

.room-media-thumb {
    width: 43px;
    height: 34px;
    flex: 0 0 43px;
    padding: 0;
    overflow: hidden;
    border: 2px solid transparent;
    border-radius: 7px;
    background: #fff;
    cursor: pointer;
    opacity: .7;
}

.room-media-thumb.active {
    border-color: var(--orange);
    opacity: 1;
}

.room-media-thumb img {
    width: 100%;
    height: 100%;
    display: block;
    object-fit: cover;
}

.room-media-gallery.compact,
.room-image-placeholder.compact {
    height: 175px;
    margin-bottom: 16px;
    border-radius: 12px;
}

.public-room-card-body {
    padding: 22px;
}

.public-room-card-body h3 {
    margin-bottom: 8px;
    font-size: 1.28rem;
}

.public-room-card-body p {
    min-height: 48px;
    color: var(--muted);
    font-size: .86rem;
}

.amenity-list {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    margin: 14px 0 20px;
}

.amenity-chip {
    padding: 5px 8px;
    border-radius: 999px;
    color: var(--ink-soft);
    background: var(--ivory);
    font-size: .7rem;
}

.room-card-footer {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
}

.room-price {
    display: grid;
}

.room-price strong {
    color: var(--orange-dark);
    font-size: 1.28rem;
}

.room-price small {
    color: var(--muted);
}

.activities-section {
    position: relative;
    scroll-margin-top: 24px;
    overflow: hidden;
    padding: 92px 24px 96px;
    color: #fff;
    background:
        radial-gradient(circle at 8% 12%, rgba(255, 90, 31, .16), transparent 28%),
        radial-gradient(circle at 94% 90%, rgba(184, 143, 85, .14), transparent 30%),
        #171714;
}

.booking-page-hero {
    position: relative;
    min-height: 680px;
    display: grid;
    grid-template-columns: minmax(0, .88fr) minmax(450px, .72fr);
    align-items: center;
    gap: clamp(48px, 7vw, 95px);
    overflow: hidden;
    padding: 80px max(24px, calc((100% - 1180px) / 2)) 108px;
    color: #fff;
    background:
        linear-gradient(90deg, rgba(15,14,12,.95), rgba(20,18,15,.73) 52%, rgba(20,18,15,.36)),
        linear-gradient(0deg, rgba(18,17,14,.58), transparent 55%),
        url("../images/website/room-deluxe.jpg") center 58% / cover;
}

.booking-page-hero::before {
    position: absolute;
    inset: 0;
    background:
        radial-gradient(circle at 82% 24%, rgba(255,105,45,.21), transparent 27%),
        repeating-linear-gradient(120deg, transparent 0 62px, rgba(255,255,255,.022) 63px 68px);
    content: "";
}

.booking-page-hero::after {
    position: absolute;
    right: -8%;
    bottom: -62px;
    left: -8%;
    height: 160px;
    opacity: .28;
    background: repeating-linear-gradient(99deg, transparent 0 21px, #171714 22px 26px, transparent 27px 44px);
    clip-path: polygon(0 100%, 0 70%, 7% 39%, 14% 79%, 21% 31%, 28% 75%, 36% 44%, 43% 82%, 51% 27%, 59% 77%, 67% 38%, 75% 83%, 83% 31%, 91% 75%, 100% 46%, 100% 100%);
    content: "";
}

.booking-page-copy,
.booking-start-card {
    position: relative;
    z-index: 2;
}

.booking-page-copy .eyebrow {
    color: #ff8d58;
}

.booking-page-copy h1 {
    max-width: 690px;
    margin: 12px 0 21px;
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(3.3rem, 6.6vw, 6.2rem);
    font-weight: 500;
    line-height: .94;
}

.booking-page-copy h1 em {
    color: var(--orange);
    font-weight: 500;
}

.booking-page-copy > p {
    max-width: 560px;
    color: rgba(255,255,255,.72);
    font-size: 1rem;
}

.booking-page-promises {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-top: 27px;
}

.booking-page-promises span {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    padding: 7px 10px;
    border: 1px solid rgba(255,255,255,.2);
    border-radius: 999px;
    color: rgba(255,255,255,.82);
    background: rgba(255,255,255,.06);
    font-size: .66rem;
    font-weight: 750;
    -webkit-backdrop-filter: blur(8px);
    backdrop-filter: blur(8px);
}

.booking-page-promises span::before {
    width: 5px;
    height: 5px;
    border-radius: 50%;
    background: var(--orange);
    content: "";
}

.booking-start-card {
    padding: clamp(25px, 3vw, 38px);
    border: 1px solid rgba(255,255,255,.46);
    border-radius: 26px;
    color: var(--ink);
    background: rgba(255,253,249,.94);
    box-shadow: 0 32px 80px rgba(0,0,0,.28);
    -webkit-backdrop-filter: blur(16px);
    backdrop-filter: blur(16px);
}

.booking-start-card::before {
    position: absolute;
    z-index: -1;
    top: 20px;
    right: -17px;
    bottom: -17px;
    left: 20px;
    border: 1px solid rgba(255,255,255,.19);
    border-radius: inherit;
    content: "";
}

.booking-start-card-head {
    display: flex;
    align-items: center;
    gap: 14px;
    margin-bottom: 25px;
}

.booking-start-card-head > span {
    width: 48px;
    height: 48px;
    display: grid;
    flex: 0 0 48px;
    place-items: center;
    border-radius: 50%;
    color: #fff;
    background: linear-gradient(135deg, var(--orange), var(--orange-dark));
    font-size: .7rem;
    font-weight: 900;
    box-shadow: 0 9px 20px rgba(216,76,25,.22);
}

.booking-start-card-head small {
    display: block;
    margin-bottom: 3px;
    color: var(--orange-dark);
    font-size: .61rem;
    font-weight: 900;
    letter-spacing: .1em;
    text-transform: uppercase;
}

.booking-start-card-head h2 {
    font-family: Georgia, "Times New Roman", serif;
    font-size: 1.55rem;
    font-weight: 500;
}

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

.booking-room-preference {
    grid-column: 1 / -1;
}

.booking-start-card .field span small {
    color: var(--muted);
    font-size: .64rem;
    font-weight: 500;
}

.booking-start-submit {
    width: 100%;
    margin-top: 17px;
}

.booking-start-submit span {
    margin-left: 7px;
    font-size: 1rem;
}

.booking-start-note {
    margin-top: 11px;
    color: var(--muted);
    font-size: .67rem;
    text-align: center;
}

.booking-journey-section {
    width: min(1120px, calc(100% - 48px));
    margin: 0 auto;
    padding: 94px 0 102px;
}

.booking-journey-heading {
    max-width: 680px;
    margin: 0 auto 35px;
    text-align: center;
}

.booking-journey-heading .eyebrow {
    justify-content: center;
}

.booking-journey-heading h2 {
    margin-top: 10px;
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(2.3rem, 4.4vw, 3.85rem);
    font-weight: 500;
    line-height: 1.05;
}

.booking-journey-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 16px;
}

.booking-journey-grid article {
    display: flex;
    gap: 15px;
    padding: 27px 24px;
    border: 1px solid var(--line);
    border-radius: 19px;
    background: rgba(255,255,255,.78);
    box-shadow: var(--shadow-sm);
}

.booking-journey-grid article > span {
    width: 38px;
    height: 38px;
    display: grid;
    flex: 0 0 38px;
    place-items: center;
    border: 1px solid rgba(255,90,31,.26);
    border-radius: 50%;
    color: var(--orange-dark);
    background: var(--paper);
    font-size: .62rem;
    font-weight: 900;
}

.booking-journey-grid h3 {
    margin: 3px 0 6px;
    font-family: Georgia, "Times New Roman", serif;
    font-size: 1.25rem;
    font-weight: 500;
}

.booking-journey-grid p {
    color: var(--muted);
    font-size: .76rem;
}

.booking-inspiration {
    width: min(1120px, calc(100% - 48px));
    display: grid;
    grid-template-columns: minmax(0, 1.08fr) minmax(0, .92fr);
    align-items: center;
    gap: clamp(40px, 7vw, 84px);
    margin: 0 auto;
    padding: 0 0 106px;
}

.booking-inspiration-image {
    position: relative;
    height: 470px;
}

.booking-inspiration-image::before {
    position: absolute;
    top: 26px;
    right: -17px;
    bottom: -17px;
    left: 26px;
    border: 1px solid rgba(255,90,31,.2);
    border-radius: 25px;
    content: "";
}

.booking-inspiration-image img {
    position: relative;
    width: 100%;
    height: 100%;
    display: block;
    object-fit: cover;
    border: 8px solid var(--paper);
    border-radius: 25px;
    box-shadow: 0 26px 62px rgba(44,32,21,.17);
}

.booking-inspiration-copy h2 {
    margin: 10px 0 16px;
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(2.3rem, 4vw, 3.7rem);
    font-weight: 500;
    line-height: 1.04;
}

.booking-inspiration-copy > p {
    color: var(--muted);
}

.booking-inspiration-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin-top: 26px;
}

.contact-page-hero {
    position: relative;
    min-height: 535px;
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
    gap: 55px;
    overflow: hidden;
    padding: 82px max(24px, calc((100% - 1180px) / 2)) 118px;
    color: #fff;
    background:
        linear-gradient(90deg, rgba(15,14,12,.94), rgba(20,18,15,.7) 54%, rgba(20,18,15,.25)),
        linear-gradient(0deg, rgba(18,17,14,.62), transparent 56%),
        url("../images/website/lodge-lounge.jpg") center 55% / cover;
}

.contact-page-hero::before {
    position: absolute;
    inset: 0;
    background:
        radial-gradient(circle at 83% 35%, rgba(255, 104, 45, .22), transparent 28%),
        repeating-linear-gradient(122deg, transparent 0 65px, rgba(255,255,255,.022) 66px 71px);
    content: "";
}

.contact-page-hero-inner {
    position: relative;
    z-index: 2;
    max-width: 780px;
}

.contact-page-hero .eyebrow {
    color: #ff8e5a;
}

.contact-page-hero h1 {
    max-width: 790px;
    margin: 12px 0 21px;
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(3.2rem, 7vw, 6.35rem);
    font-weight: 500;
    line-height: .95;
}

.contact-page-hero h1 em {
    color: var(--orange);
    font-weight: 500;
}

.contact-page-hero p {
    max-width: 620px;
    color: rgba(255,255,255,.74);
    font-size: 1.04rem;
}

.contact-page-compass {
    position: relative;
    z-index: 2;
    width: 190px;
    height: 190px;
    display: grid;
    place-items: center;
    border: 1px solid rgba(255,255,255,.27);
    border-radius: 50%;
    color: #fff;
    background: rgba(21,19,15,.28);
    box-shadow: 0 0 0 22px rgba(255,255,255,.035), 0 24px 60px rgba(0,0,0,.28);
    -webkit-backdrop-filter: blur(9px);
    backdrop-filter: blur(9px);
}

.contact-page-compass::before,
.contact-page-compass::after {
    position: absolute;
    background: rgba(255,255,255,.18);
    content: "";
}

.contact-page-compass::before {
    width: 1px;
    height: 150px;
}

.contact-page-compass::after {
    width: 150px;
    height: 1px;
}

.contact-page-compass > span {
    position: absolute;
    top: 15px;
    color: #ff8e5a;
    font-size: .68rem;
    font-weight: 900;
}

.contact-page-compass > i {
    position: absolute;
    z-index: 2;
    width: 18px;
    height: 82px;
    background: linear-gradient(180deg, var(--orange) 0 48%, rgba(255,255,255,.84) 49% 100%);
    clip-path: polygon(50% 0, 100% 50%, 50% 100%, 0 50%);
    transform: rotate(24deg);
    animation: contact-compass-breathe 4.5s ease-in-out infinite alternate;
}

.contact-page-compass > small {
    position: absolute;
    bottom: 20px;
    color: rgba(255,255,255,.68);
    font-size: .55rem;
    font-weight: 850;
    letter-spacing: .12em;
    text-transform: uppercase;
}

@keyframes contact-compass-breathe {
    from {
        transform: rotate(19deg) scale(.96);
    }
    to {
        transform: rotate(29deg) scale(1.04);
    }
}

.contact-details-section {
    position: relative;
    z-index: 3;
    width: min(1120px, calc(100% - 48px));
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 14px;
    margin: -58px auto 0;
}

.contact-detail-card {
    min-width: 0;
    padding: 27px 26px;
    border: 1px solid rgba(220,210,195,.9);
    border-radius: 19px;
    background: rgba(255,253,249,.94);
    box-shadow: 0 22px 48px rgba(39,29,20,.13);
    -webkit-backdrop-filter: blur(14px);
    backdrop-filter: blur(14px);
}

.contact-detail-icon {
    width: 38px;
    height: 38px;
    display: grid;
    place-items: center;
    margin-bottom: 17px;
    border-radius: 50%;
    color: #fff;
    background: linear-gradient(135deg, var(--orange), var(--orange-dark));
    box-shadow: 0 8px 18px rgba(216,76,25,.2);
}

.contact-detail-card > small {
    display: block;
    margin-bottom: 5px;
    color: var(--orange-dark);
    font-size: .62rem;
    font-weight: 900;
    letter-spacing: .12em;
    text-transform: uppercase;
}

.contact-detail-card h2 {
    margin-bottom: 7px;
    font-family: Georgia, "Times New Roman", serif;
    font-size: 1.35rem;
    font-weight: 500;
}

.contact-detail-card a,
.contact-detail-card > span:last-child {
    display: block;
    overflow-wrap: anywhere;
    color: var(--muted);
    font-size: .78rem;
}

.contact-detail-card a:hover {
    color: var(--orange-dark);
}

.contact-page-shell {
    width: min(1120px, calc(100% - 48px));
    display: grid;
    grid-template-columns: minmax(0, .82fr) minmax(0, 1.18fr);
    align-items: center;
    gap: clamp(40px, 7vw, 88px);
    margin: 0 auto;
    padding: 100px 0 108px;
}

.contact-page-copy h2 {
    max-width: 520px;
    margin: 10px 0 17px;
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(2.35rem, 4.5vw, 4rem);
    font-weight: 500;
    line-height: 1.03;
}

.contact-page-copy > p {
    max-width: 520px;
    color: var(--muted);
}

.contact-assurance-list {
    display: grid;
    gap: 12px;
    margin: 28px 0;
}

.contact-assurance-list > span {
    display: flex;
    align-items: center;
    gap: 12px;
    color: var(--ink-soft);
    font-size: .8rem;
    font-weight: 700;
}

.contact-assurance-list i {
    width: 34px;
    height: 34px;
    display: grid;
    flex: 0 0 34px;
    place-items: center;
    border: 1px solid rgba(255,90,31,.28);
    border-radius: 50%;
    color: var(--orange-dark);
    background: rgba(255,255,255,.7);
    font-size: .61rem;
    font-style: normal;
    font-weight: 900;
}

.contact-whatsapp-link {
    display: grid;
    gap: 4px;
    padding: 17px 19px;
    border: 1px solid rgba(46,143,82,.2);
    border-radius: 15px;
    color: #1d5632;
    background: rgba(58,174,99,.075);
}

.contact-whatsapp-link strong {
    font-size: .8rem;
}

.contact-whatsapp-link span {
    font-size: .72rem;
}

.contact-form-card {
    position: relative;
    padding: clamp(24px, 4vw, 39px);
    border: 1px solid rgba(220,210,195,.95);
    border-radius: 25px;
    background: rgba(255,253,249,.96);
    box-shadow: 0 28px 70px rgba(46,33,21,.15);
}

.contact-form-card::before {
    position: absolute;
    z-index: -1;
    top: 24px;
    right: -18px;
    bottom: -18px;
    left: 24px;
    border: 1px solid rgba(255,90,31,.16);
    border-radius: 25px;
    content: "";
}

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

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

.contact-form-card textarea {
    width: 100%;
    min-height: 140px;
    resize: vertical;
}

.contact-form-card .field span small {
    color: var(--muted);
    font-size: .66rem;
    font-weight: 500;
}

.contact-submit {
    width: 100%;
    margin-top: 16px;
}

.contact-submit span {
    margin-left: 7px;
    font-size: 1rem;
}

.contact-form-note {
    margin-top: 12px;
    color: var(--muted);
    font-size: .67rem;
    text-align: center;
}

.contact-honeypot {
    position: absolute !important;
    width: 1px;
    height: 1px;
    overflow: hidden;
    clip: rect(0 0 0 0);
    white-space: nowrap;
}

.contact-location-band {
    position: relative;
    min-height: 330px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 35px;
    overflow: hidden;
    padding: 72px max(24px, calc((100% - 1120px) / 2));
    color: #fff;
    background:
        linear-gradient(90deg, rgba(17,16,13,.94), rgba(17,16,13,.57)),
        url("../images/website/safari-wildlife.jpg") center 52% / cover;
}

.contact-location-band::after {
    position: absolute;
    inset: 0;
    background: radial-gradient(circle at 78% 30%, rgba(255,90,31,.2), transparent 30%);
    content: "";
}

.contact-location-band > * {
    position: relative;
    z-index: 1;
}

.contact-location-band .eyebrow {
    color: #ff8d58;
}

.contact-location-band h2 {
    max-width: 680px;
    margin-top: 10px;
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(2.25rem, 4.5vw, 4rem);
    font-weight: 500;
    line-height: 1.04;
}

.activities-page-hero {
    position: relative;
    min-height: 570px;
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
    gap: 50px;
    overflow: hidden;
    padding: 86px max(24px, calc((100% - 1180px) / 2)) 112px;
    color: #fff;
    background:
        linear-gradient(90deg, rgba(14, 14, 12, .94) 0%, rgba(17, 16, 13, .76) 50%, rgba(17, 16, 13, .32) 100%),
        linear-gradient(0deg, rgba(17,16,13,.58), transparent 55%),
        url("../images/website/activities/game-drive.jpg") center 56% / cover;
}


.activities-page-hero::before {
    position: absolute;
    inset: 0;
    background:
        radial-gradient(circle at 80% 30%, rgba(255, 102, 44, .24), transparent 29%),
        repeating-linear-gradient(118deg, transparent 0 62px, rgba(255,255,255,.022) 63px 68px);
    content: "";
}

.activities-page-hero::after {
    position: absolute;
    right: -6%;
    bottom: -50px;
    left: -6%;
    height: 155px;
    opacity: .26;
    background: repeating-linear-gradient(98deg, transparent 0 20px, #171714 21px 25px, transparent 26px 42px);
    clip-path: polygon(0 100%, 0 74%, 6% 42%, 13% 80%, 20% 35%, 27% 77%, 35% 46%, 42% 81%, 50% 29%, 58% 76%, 66% 41%, 74% 82%, 82% 34%, 90% 78%, 100% 47%, 100% 100%);
    content: "";
}

.activities-page-hero-inner {
    position: relative;
    z-index: 2;
    max-width: 760px;
}

.activities-page-hero .eyebrow {
    color: #ff8a55;
}

.activities-page-hero h1 {
    max-width: 760px;
    margin: 12px 0 20px;
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(3.15rem, 7vw, 6.5rem);
    font-weight: 500;
    line-height: .94;
}

.activities-page-hero p {
    max-width: 610px;
    color: rgba(255,255,255,.73);
    font-size: 1.04rem;
}

.activities-page-hero-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 11px;
    margin-top: 30px;
}

.btn-ghost-light {
    border: 1px solid rgba(255,255,255,.42);
    color: #fff;
    background: rgba(255,255,255,.08);
    -webkit-backdrop-filter: blur(10px);
    backdrop-filter: blur(10px);
}

.btn-ghost-light:hover {
    border-color: rgba(255,255,255,.75);
    color: #fff;
    background: rgba(255,255,255,.14);
}

.activities-page-hero-mark {
    position: relative;
    z-index: 2;
    width: 190px;
    height: 190px;
    display: grid;
    place-content: center;
    border: 1px solid rgba(255,255,255,.28);
    border-radius: 50%;
    text-align: center;
    background: rgba(20,18,15,.26);
    box-shadow: 0 0 0 22px rgba(255,255,255,.035), 0 24px 55px rgba(0,0,0,.24);
    -webkit-backdrop-filter: blur(9px);
    backdrop-filter: blur(9px);
}

.activities-page-hero-mark span {
    color: var(--orange);
    font-family: Georgia, "Times New Roman", serif;
    font-size: 4.6rem;
    line-height: .8;
}

.activities-page-hero-mark small {
    margin-top: 12px;
    color: rgba(255,255,255,.8);
    font-size: .62rem;
    font-weight: 850;
    letter-spacing: .13em;
    text-transform: uppercase;
}

.activities-page-listing {
    padding-top: 78px;
    border-top: 1px solid rgba(255,255,255,.08);
}

.activities-section::before {
    position: absolute;
    inset: 0;
    pointer-events: none;
    background-image:
        linear-gradient(115deg, transparent 0 48%, rgba(255, 255, 255, .025) 48% 48.4%, transparent 48.4%),
        repeating-linear-gradient(0deg, transparent 0 48px, rgba(255, 255, 255, .018) 49px);
    content: "";
}

.activities-inner {
    position: relative;
    z-index: 1;
    width: min(1180px, 100%);
    margin: 0 auto;
}

.activities-heading {
    max-width: 740px;
    margin: 0 auto 42px;
    text-align: center;
}

.activities-heading .eyebrow {
    color: #ff7a45;
}

.activities-heading h2 {
    margin: 10px 0 14px;
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(2.2rem, 4.5vw, 3.85rem);
    font-weight: 500;
    line-height: 1.04;
}

.activities-heading p {
    max-width: 650px;
    margin: 0 auto;
    color: rgba(255, 255, 255, .68);
}

.activities-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 18px;
    perspective: 1600px;
    transform-style: preserve-3d;
}

.activity-card {
    --activity-curve: 0deg;
    --activity-arc: 0px;
    --activity-z: 0px;
    position: relative;
    min-height: 440px;
    isolation: isolate;
    overflow: hidden;
    border: 1px solid rgba(255, 255, 255, .14);
    border-radius: 22px;
    background: #27251f;
    box-shadow: 0 22px 55px rgba(0, 0, 0, .25);
    transform: perspective(1100px) translate3d(0, var(--activity-arc), var(--activity-z)) rotateX(var(--tilt-x, 0deg)) rotateY(calc(var(--activity-curve) + var(--tilt-y, 0deg)));
    transform-style: preserve-3d;
    transition: transform .38s cubic-bezier(.2, .72, .28, 1), border-color .35s ease, box-shadow .35s ease;
    will-change: transform;
}

.activity-card:nth-child(3n + 1) {
    --activity-curve: 4deg;
    --activity-arc: 10px;
}

.activity-card:nth-child(3n + 2) {
    --activity-z: 22px;
    --activity-arc: -6px;
}

.activity-card:nth-child(3n) {
    --activity-curve: -4deg;
    --activity-arc: 10px;
}

.activity-card::after {
    position: absolute;
    z-index: -1;
    inset: 0;
    background:
        linear-gradient(180deg, rgba(12, 12, 10, .04) 5%, rgba(12, 12, 10, .18) 38%, rgba(12, 12, 10, .94) 100%);
    content: "";
}

.activity-card > img {
    position: absolute;
    z-index: -2;
    inset: 0;
    width: 100%;
    height: 100%;
    display: block;
    object-fit: cover;
    transform: translate3d(var(--depth-image-x, 0), var(--depth-image-y, 0), 0) scale(1.035);
    transition: transform .75s cubic-bezier(.2, .65, .25, 1), filter .45s ease;
}

.activity-card:nth-child(1) > img {
    object-position: 52% center;
}

.activity-card:nth-child(4) > img {
    object-position: center 56%;
}

.activity-card-content {
    position: absolute;
    right: 0;
    bottom: 0;
    left: 0;
    padding: 30px 28px 27px;
}

.activity-card-number {
    display: flex;
    align-items: center;
    gap: 9px;
    margin-bottom: 10px;
    color: rgba(255, 255, 255, .72);
    font-size: .65rem;
    font-weight: 800;
    letter-spacing: .13em;
    text-transform: uppercase;
}

.activity-card-number i {
    width: 26px;
    height: 1px;
    display: inline-block;
    background: var(--orange);
}

.activity-card h3 {
    margin-bottom: 9px;
    font-family: Georgia, "Times New Roman", serif;
    font-size: 1.8rem;
    font-weight: 500;
}

.activity-card p {
    max-width: 330px;
    margin-bottom: 18px;
    color: rgba(255, 255, 255, .74);
    font-size: .79rem;
    line-height: 1.6;
}

.activity-card-link {
    display: inline-flex;
    align-items: center;
    gap: 9px;
    color: #fff;
    font-size: .72rem;
    font-weight: 800;
    letter-spacing: .08em;
    text-decoration: none;
    text-transform: uppercase;
}

.activity-card-link span {
    color: var(--orange);
    font-size: 1.05rem;
    transition: transform .25s ease;
}

.activity-card:hover > img {
    filter: saturate(1.08);
    transform: translate3d(var(--depth-image-x, 0), var(--depth-image-y, 0), 0) scale(1.095);
}

.activity-card:hover .activity-card-link span {
    transform: translateX(5px);
}

.activity-card-link:focus-visible {
    border-radius: 4px;
    outline: 2px solid var(--orange);
    outline-offset: 6px;
}

.activities-cta {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 22px;
    margin-top: 34px;
}

.activities-cta > span {
    color: rgba(255, 255, 255, .67);
    font-size: .8rem;
}

.activities-section .btn-outline {
    border-color: rgba(255,255,255,.34);
    color: #fff;
    background: rgba(255,255,255,.055);
}

.activities-section .btn-outline:hover {
    border-color: rgba(255,255,255,.68);
    color: #fff;
    background: rgba(255,255,255,.11);
}

.activity-planning-section {
    width: min(1080px, calc(100% - 48px));
    margin: 0 auto;
    padding: 92px 0 98px;
    text-align: center;
}

.activity-planning-heading {
    max-width: 680px;
    margin: 0 auto 35px;
}

.activity-planning-heading .eyebrow {
    justify-content: center;
}

.activity-planning-heading h2 {
    margin: 10px 0 13px;
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(2.2rem, 4.5vw, 3.75rem);
    font-weight: 500;
    line-height: 1.06;
}

.activity-planning-heading p {
    color: var(--muted);
}

.activity-planning-grid {
    position: relative;
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 16px;
    margin-bottom: 30px;
}

.activity-planning-grid::before {
    position: absolute;
    top: 36px;
    right: 15%;
    left: 15%;
    height: 1px;
    background: linear-gradient(90deg, transparent, rgba(255,90,31,.4), transparent);
    content: "";
}

.activity-planning-card {
    position: relative;
    z-index: 1;
    padding: 28px 22px;
    border: 1px solid var(--line);
    border-radius: 20px;
    background: rgba(255,255,255,.78);
    box-shadow: var(--shadow-sm);
}

.activity-planning-card > span {
    width: 46px;
    height: 46px;
    display: grid;
    place-items: center;
    margin: 0 auto 17px;
    border: 1px solid rgba(255,90,31,.3);
    border-radius: 50%;
    color: var(--orange-dark);
    background: var(--paper);
    font-size: .69rem;
    font-weight: 900;
    box-shadow: 0 0 0 7px rgba(255,90,31,.045);
}

.activity-planning-card h3 {
    margin-bottom: 7px;
    font-family: Georgia, "Times New Roman", serif;
    font-size: 1.3rem;
}

.activity-planning-card p {
    color: var(--muted);
    font-size: .8rem;
}

.activities-section::after {
    position: absolute;
    right: -12%;
    bottom: -180px;
    left: -12%;
    height: 300px;
    opacity: .12;
    pointer-events: none;
    background: repeating-linear-gradient(98deg, transparent 0 22px, #f5c28f 23px 25px, transparent 26px 44px);
    clip-path: polygon(0 100%, 0 74%, 7% 39%, 14% 81%, 21% 32%, 29% 75%, 37% 45%, 44% 82%, 52% 28%, 60% 78%, 68% 38%, 76% 84%, 84% 31%, 92% 77%, 100% 44%, 100% 100%);
    content: "";
    transform: translate3d(0, var(--activities-pattern-y, 0), 0);
    transition: transform .1s linear;
}

.public-room-card.depth-card {
    position: relative;
    transform: perspective(1100px) rotateX(var(--tilt-x, 0deg)) rotateY(var(--tilt-y, 0deg)) translateZ(0);
    transform-style: preserve-3d;
    transition: transform .34s cubic-bezier(.2, .72, .28, 1), box-shadow .34s ease, border-color .34s ease;
    will-change: transform;
}

.public-room-card.depth-card::after,
.activity-card::before {
    position: absolute;
    z-index: 5;
    inset: 0;
    border-radius: inherit;
    pointer-events: none;
    background: radial-gradient(circle at var(--depth-glow-x, 50%) var(--depth-glow-y, 50%), rgba(255,255,255,.25), transparent 32%);
    content: "";
    opacity: 0;
    transition: opacity .3s ease;
}

.public-room-card.depth-card.is-tilting,
.activity-card.is-tilting {
    border-color: rgba(255, 116, 61, .38);
    box-shadow: 0 28px 65px rgba(42, 30, 20, .22);
}

.activity-card.is-tilting {
    --activity-z: 38px;
    box-shadow: 0 32px 70px rgba(0, 0, 0, .38);
}

.public-room-card.depth-card.is-tilting::after,
.activity-card.is-tilting::before {
    opacity: .42;
}

.public-room-card.depth-card .room-media-main {
    transform: translate3d(var(--depth-image-x, 0), var(--depth-image-y, 0), 0) scale(1.055);
    transition: transform .55s cubic-bezier(.2, .72, .28, 1);
    will-change: transform;
}

.scroll-reveal-ready .public-room-card.depth-card.scroll-reveal {
    transform: perspective(1100px) translate3d(0, 28px, 0) rotateX(var(--tilt-x, 0deg)) rotateY(var(--tilt-y, 0deg));
}

.scroll-reveal-ready .public-room-card.depth-card.scroll-reveal.is-visible {
    transform: perspective(1100px) translate3d(0, 0, 0) rotateX(var(--tilt-x, 0deg)) rotateY(var(--tilt-y, 0deg));
}

.scroll-reveal-ready .activity-card.scroll-reveal {
    transform: perspective(1100px) translate3d(0, calc(var(--activity-arc) + 28px), var(--activity-z)) rotateX(var(--tilt-x, 0deg)) rotateY(calc(var(--activity-curve) + var(--tilt-y, 0deg)));
}

.scroll-reveal-ready .activity-card.scroll-reveal.is-visible {
    transform: perspective(1100px) translate3d(0, var(--activity-arc), var(--activity-z)) rotateX(var(--tilt-x, 0deg)) rotateY(calc(var(--activity-curve) + var(--tilt-y, 0deg)));
}

.safari-story {
    padding-top: 24px;
}

.safari-story-grid {
    display: grid;
    grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr);
    align-items: center;
    gap: clamp(38px, 7vw, 90px);
}

.safari-story-copy h2 {
    max-width: 530px;
    margin: 8px 0 18px;
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(2rem, 4vw, 3.45rem);
    font-weight: 500;
    line-height: 1.08;
}

.safari-story-copy > p {
    max-width: 520px;
    color: var(--muted);
}

.safari-story-points {
    display: grid;
    gap: 9px;
    margin: 25px 0 28px;
}

.safari-story-points span {
    display: flex;
    align-items: center;
    gap: 10px;
    color: var(--ink-soft);
    font-size: .84rem;
    font-weight: 700;
}

.safari-story-points span::before {
    width: 8px;
    height: 8px;
    flex: 0 0 8px;
    border-radius: 50%;
    background: var(--orange);
    box-shadow: 0 0 0 5px rgba(255, 90, 31, .1);
    content: "";
}

.safari-story-gallery {
    position: relative;
    min-height: 530px;
    perspective: 1300px;
    transform-style: preserve-3d;
}

.safari-story-gallery figure {
    position: absolute;
    overflow: hidden;
    margin: 0;
    border: 8px solid var(--paper);
    border-radius: 24px;
    background: var(--ink);
    box-shadow: 0 24px 60px rgba(42, 30, 20, .18);
}

.safari-story-gallery img {
    width: 100%;
    height: 100%;
    display: block;
    object-fit: cover;
    transition: transform .8s cubic-bezier(.2, .72, .28, 1), filter .5s ease;
}

.safari-story-gallery figcaption {
    position: absolute;
    right: 12px;
    bottom: 12px;
    left: 12px;
    padding: 9px 11px;
    border-radius: 10px;
    color: #fff;
    background: rgba(18, 17, 15, .67);
    font-size: .7rem;
    font-weight: 700;
    -webkit-backdrop-filter: blur(8px);
    backdrop-filter: blur(8px);
}

.safari-story-main {
    inset: 0 105px 55px 0;
}

.safari-story-main img {
    transform: scale(1.035) translate3d(-5px, 0, 0);
}

.safari-story-secondary {
    right: 0;
    bottom: 0;
    width: 48%;
    height: 48%;
}

.safari-story-secondary img {
    transform: scale(1.075) translate3d(5px, -2px, 0);
}

.safari-story-gallery:hover .safari-story-main img {
    filter: saturate(1.06);
    transform: scale(1.075) translate3d(7px, -3px, 0);
}

.safari-story-gallery:hover .safari-story-secondary img {
    filter: saturate(1.1);
    transform: scale(1.12) translate3d(-7px, 4px, 0);
}

.feature-band {
    position: relative;
    overflow: hidden;
    color: #fff;
    background:
        radial-gradient(circle at 12% 40%, rgba(255,90,31,.2), transparent 28%),
        var(--ink);
}

.feature-band::before {
    position: absolute;
    inset: 0;
    background:
        linear-gradient(90deg, rgba(18,17,15,.97), rgba(18,17,15,.82)),
        url("../images/website/safari-wildlife.jpg") center 58% / cover;
    content: "";
}

.feature-band-inner {
    position: relative;
    z-index: 1;
    width: min(1180px, calc(100% - 48px));
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 26px;
    margin: auto;
    padding: 62px 0;
}

.public-feature {
    display: grid;
    grid-template-columns: auto 1fr;
    gap: 14px;
}

.public-feature-icon {
    width: 48px;
    height: 48px;
    display: grid;
    place-items: center;
    border-radius: 14px;
    color: var(--orange);
    background: rgba(255,255,255,.08);
    font-size: 1.2rem;
}

.public-feature h3 {
    margin-bottom: 5px;
    font-size: 1rem;
}

.public-feature p {
    margin: 0;
    color: rgba(255,255,255,.57);
    font-size: .8rem;
}

.public-footer {
    position: relative;
    overflow: hidden;
    padding: 0 28px;
    border-top: 5px solid var(--orange);
    color: rgba(255,255,255,.7);
    text-align: left;
    background:
        radial-gradient(circle at 8% 15%, rgba(255,101,24,.15), transparent 27%),
        repeating-linear-gradient(118deg, transparent 0 58px, rgba(255,255,255,.018) 59px 64px),
        #142219;
}

.public-footer::before {
    position: absolute;
    inset: 0;
    pointer-events: none;
    background: linear-gradient(90deg, rgba(255,255,255,.035) 1px, transparent 1px), linear-gradient(rgba(255,255,255,.025) 1px, transparent 1px);
    background-size: 48px 48px;
    mask-image: linear-gradient(to bottom, rgba(0,0,0,.35), transparent 75%);
    content: "";
}

.public-footer-sun {
    position: absolute;
    top: -130px;
    right: 6%;
    width: 330px;
    height: 330px;
    border: 1px solid rgba(255,151,94,.14);
    border-radius: 50%;
    box-shadow: 0 0 0 42px rgba(255,101,24,.025), 0 0 0 84px rgba(255,101,24,.018);
}

.public-footer-inner {
    position: relative;
    z-index: 1;
    width: min(1320px, 100%);
    margin: 0 auto;
    padding: 52px 0 38px;
    display: grid;
    grid-template-columns: minmax(340px, 1.45fr) minmax(150px, .55fr) minmax(230px, .8fr);
    gap: clamp(35px, 6vw, 85px);
    align-items: center;
}

.public-footer-brand {
    max-width: 560px;
}

.public-footer-logo {
    display: flex;
    align-items: center;
    gap: 22px;
    width: fit-content;
    color: #fff;
}

.public-footer-logo-frame {
    position: relative;
    width: 150px;
    height: 150px;
    flex: 0 0 150px;
    display: grid;
    place-items: center;
    padding: 8px;
    border: 1px solid rgba(255,255,255,.2);
    border-radius: 31% 69% 46% 54% / 54% 39% 61% 46%;
    background: #f1eee6;
    box-shadow: 0 20px 46px rgba(0,0,0,.25), 0 0 0 7px rgba(255,255,255,.035);
    transform: rotate(-2deg);
}

.public-footer-logo-frame::after {
    position: absolute;
    right: -12px;
    bottom: 13px;
    width: 29px;
    height: 29px;
    border: 5px solid #142219;
    border-radius: 50%;
    background: var(--orange);
    content: "";
}

.public-footer-logo-frame img {
    width: 100%;
    height: 100%;
    display: block;
    object-fit: contain;
    border-radius: 24px;
    transform: rotate(2deg);
}

.public-footer-name strong,
.public-footer-name small {
    display: block;
}

.public-footer-name strong {
    max-width: 250px;
    color: #fff;
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(1.55rem, 2.3vw, 2.15rem);
    font-weight: 500;
    line-height: 1.04;
}

.public-footer-name small {
    margin-top: 8px;
    color: #ff8a4e;
    font-size: .68rem;
    font-weight: 850;
    letter-spacing: .18em;
    text-transform: uppercase;
}

.public-footer-brand > p {
    max-width: 520px;
    margin: 21px 0 13px;
    color: rgba(255,255,255,.62);
    font-size: .83rem;
    line-height: 1.75;
}

.public-footer-tagline {
    display: flex;
    align-items: center;
    gap: 9px;
    color: #e7cbb9;
    font-size: .64rem;
    font-weight: 850;
    letter-spacing: .13em;
    text-transform: uppercase;
}

.public-footer-tagline i {
    width: 32px;
    height: 2px;
    background: var(--orange);
}

.public-footer-nav,
.public-footer-contact {
    display: grid;
    align-content: start;
    gap: 10px;
}

.public-footer-nav > span,
.public-footer-contact > span {
    margin-bottom: 7px;
    color: #ff8a4e;
    font-size: .62rem;
    font-weight: 900;
    letter-spacing: .15em;
    text-transform: uppercase;
}

.public-footer-nav a,
.public-footer-contact a {
    width: fit-content;
    color: rgba(255,255,255,.75);
    font-size: .77rem;
    transition: color .2s ease, transform .2s ease;
}

.public-footer-nav a:hover,
.public-footer-contact a:hover {
    color: #fff;
    transform: translateX(3px);
}

.public-footer-contact p {
    max-width: 265px;
    margin: 0 0 3px;
    color: rgba(255,255,255,.58);
    font-size: .74rem;
    line-height: 1.6;
}

.public-footer-contact .public-footer-contact-link {
    margin-top: 9px;
    padding-bottom: 5px;
    border-bottom: 1px solid rgba(255,101,24,.6);
    color: #fff;
    font-weight: 800;
}

.public-footer-contact-link span {
    margin-left: 5px;
    color: var(--orange);
}

.public-footer-bottom {
    position: relative;
    z-index: 1;
    width: min(1320px, 100%);
    margin: 0 auto;
    padding: 17px 0 22px;
    border-top: 1px solid rgba(255,255,255,.11);
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
    color: rgba(255,255,255,.4);
    font-size: .61rem;
    letter-spacing: .04em;
}

.public-footer-bottom span {
    color: rgba(255,255,255,.5);
    text-transform: uppercase;
    letter-spacing: .12em;
}

@media (max-width: 920px) {
    .public-footer-inner {
        grid-template-columns: minmax(300px, 1.25fr) minmax(135px, .55fr);
    }

    .public-footer-contact {
        grid-column: 1 / -1;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        align-items: center;
        padding-top: 24px;
        border-top: 1px solid rgba(255,255,255,.1);
    }

    .public-footer-contact > span,
    .public-footer-contact p {
        grid-column: 1 / -1;
    }
}

@media (max-width: 620px) {
    .public-brand {
        gap: 10px;
    }

    .public-brand img {
        width: 58px;
        height: 58px;
    }

    .public-brand strong {
        max-width: 145px;
        font-size: .99rem;
        line-height: 1.03;
    }

    .public-brand small {
        font-size: .6rem;
    }

    .public-footer {
        padding-inline: 20px;
    }

    .public-footer-inner {
        grid-template-columns: 1fr;
        gap: 31px;
        padding-top: 39px;
    }

    .public-footer-logo {
        gap: 17px;
    }

    .public-footer-logo-frame {
        width: 120px;
        height: 120px;
        flex-basis: 120px;
    }

    .public-footer-name strong {
        font-size: 1.55rem;
    }

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

    .public-footer-nav > span {
        grid-column: 1 / -1;
    }

    .public-footer-contact {
        grid-column: auto;
        grid-template-columns: 1fr;
    }

    .public-footer-contact > span,
    .public-footer-contact p {
        grid-column: auto;
    }

    .public-footer-bottom {
        align-items: flex-start;
        flex-direction: column;
        gap: 7px;
    }
}

.public-room-actions {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: 6px;
}

.section-footer-action {
    display: flex;
    justify-content: center;
    margin-top: 32px;
}

.rooms-listing-hero {
    position: relative;
    min-height: 335px;
    display: grid;
    align-items: center;
    overflow: hidden;
    color: #fff;
    background:
        linear-gradient(90deg, rgba(18,17,15,.91), rgba(18,17,15,.45)),
        url("../images/website/lodge-lounge.jpg") center 56% / cover;
}

.rooms-listing-hero::after {
    position: absolute;
    inset: 0;
    background:
        repeating-linear-gradient(125deg, transparent 0 58px, rgba(255,255,255,.025) 59px 65px),
        radial-gradient(circle at 78% 30%, rgba(255,90,31,.2), transparent 30%);
    content: "";
}

.rooms-listing-hero-inner {
    position: relative;
    z-index: 1;
    width: min(1180px, calc(100% - 48px));
    margin: auto;
    padding: 70px 0 92px;
}

.rooms-listing-hero h1 {
    max-width: 750px;
    margin: 8px 0 15px;
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(2.65rem, 6vw, 5rem);
    font-weight: 500;
    line-height: 1;
}

.rooms-listing-hero p {
    max-width: 640px;
    margin: 0;
    color: rgba(255,255,255,.74);
    font-size: 1rem;
}

.room-catalogue-shell {
    width: min(1180px, calc(100% - 48px));
    margin: -42px auto 90px;
}

.room-filter-panel {
    position: relative;
    z-index: 3;
    padding: 19px;
    border: 1px solid var(--line);
    border-radius: 20px;
    background: var(--paper);
    box-shadow: 0 24px 55px rgba(34, 25, 17, .14);
}

.room-filter-heading,
.room-results-heading,
.room-listing-card-head,
.room-listing-actions,
.room-detail-heading,
.room-booking-price {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
}

.room-filter-heading {
    margin-bottom: 14px;
}

.room-filter-heading h2,
.room-results-heading h2 {
    margin-top: 3px;
    font-size: 1.12rem;
}

.filter-reset {
    color: var(--orange-dark);
    font-size: .78rem;
    font-weight: 800;
}

.room-filter-grid {
    display: grid;
    grid-template-columns: minmax(190px, 1.55fr) repeat(2, minmax(125px, 1fr)) repeat(2, minmax(105px, .75fr)) minmax(145px, 1fr) auto;
    align-items: end;
    gap: 9px;
}

.room-filter-grid .field {
    margin: 0;
}

.room-filter-grid .field > span {
    font-size: .67rem;
}

.room-filter-grid input,
.room-filter-grid select {
    min-width: 0;
}

.room-filter-submit {
    white-space: nowrap;
}

.room-results-heading {
    align-items: end;
    margin: 38px 0 18px;
}

.room-results-heading h2 {
    font-family: Georgia, "Times New Roman", serif;
    font-size: 1.85rem;
    font-weight: 500;
}

.room-results-heading p {
    margin: 0;
    color: var(--muted);
    font-size: .76rem;
}

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

.room-listing-card {
    display: flex;
    flex-direction: column;
}

.room-listing-card .room-media-gallery {
    height: 285px;
}

.room-listing-card .public-room-card-body {
    display: flex;
    flex: 1;
    flex-direction: column;
}

.room-listing-card-head {
    align-items: flex-start;
}

.room-code {
    display: inline-block;
    margin-bottom: 4px;
    color: var(--orange-dark);
    font-size: .63rem;
    font-weight: 900;
    letter-spacing: .12em;
}

.room-listing-card-head h3 {
    margin: 0;
}

.room-price-right {
    flex: 0 0 auto;
    text-align: right;
}

.room-facts {
    display: flex;
    flex-wrap: wrap;
    gap: 7px 14px;
    margin-top: 15px;
    color: var(--ink-soft);
    font-size: .73rem;
    font-weight: 700;
}

.room-facts span {
    position: relative;
    padding-left: 12px;
}

.room-facts span::before {
    position: absolute;
    top: .43em;
    left: 0;
    width: 5px;
    height: 5px;
    border-radius: 50%;
    background: var(--orange);
    content: "";
}

.room-listing-actions {
    align-items: stretch;
    margin-top: auto;
    padding-top: 4px;
}

.room-listing-actions .btn {
    flex: 1 1 auto;
}

.room-results-empty {
    margin-bottom: 0;
}

.public-breadcrumbs {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-bottom: 25px;
    color: var(--muted);
    font-size: .73rem;
    font-weight: 700;
}

.public-breadcrumbs a {
    color: var(--orange-dark);
}

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

.room-detail-heading {
    align-items: flex-end;
    margin-bottom: 26px;
}

.room-detail-heading h1 {
    margin: 7px 0 10px;
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(2.65rem, 6vw, 5.2rem);
    font-weight: 500;
    line-height: 1;
}

.room-detail-heading p {
    max-width: 700px;
    margin: 0;
    color: var(--muted);
}

.room-detail-rate {
    display: grid;
    flex: 0 0 auto;
    padding: 13px 16px;
    border: 1px solid var(--line);
    border-radius: 15px;
    background: var(--paper);
    text-align: right;
}

.room-detail-rate strong {
    color: var(--orange-dark);
    font-size: 1.55rem;
}

.room-detail-rate small {
    color: var(--muted);
    font-size: .66rem;
}

.room-detail-gallery .room-media-gallery {
    height: 560px;
    border-radius: 25px;
    box-shadow: 0 25px 65px rgba(42,30,20,.16);
}

.room-detail-gallery .room-media-thumbs {
    right: 14px;
    bottom: 14px;
    left: 14px;
    gap: 7px;
    padding: 7px;
}

.room-detail-gallery .room-media-thumb {
    width: 65px;
    height: 48px;
    flex-basis: 65px;
}

.room-detail-layout {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 360px;
    align-items: start;
    gap: clamp(30px, 6vw, 72px);
    margin-top: 50px;
}

.room-detail-content {
    min-width: 0;
}

.room-detail-section {
    padding: 0 0 42px;
}

.room-detail-section + .room-detail-section {
    padding-top: 38px;
    border-top: 1px solid var(--line);
}

.room-detail-section h2,
.room-booking-card h2 {
    margin: 7px 0 13px;
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(1.65rem, 3vw, 2.45rem);
    font-weight: 500;
    line-height: 1.1;
}

.room-detail-section > p,
.room-booking-card > p {
    color: var(--muted);
}

.room-detail-facts {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 10px;
    margin-top: 24px;
}

.room-detail-facts article {
    min-height: 96px;
    display: grid;
    align-content: center;
    gap: 5px;
    padding: 16px;
    border: 1px solid var(--line);
    border-radius: 14px;
    background: var(--paper);
}

.room-detail-facts small {
    color: var(--muted);
    font-size: .64rem;
    font-weight: 800;
    letter-spacing: .05em;
    text-transform: uppercase;
}

.room-detail-facts strong {
    font-size: .85rem;
}

.room-detail-amenities {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 9px;
    margin-top: 23px;
}

.room-detail-amenities span {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 12px 14px;
    border-radius: 12px;
    color: var(--ink-soft);
    background: rgba(255,255,255,.6);
    font-size: .8rem;
    font-weight: 700;
}

.room-detail-amenities i {
    width: 24px;
    height: 24px;
    display: grid;
    flex: 0 0 24px;
    place-items: center;
    border-radius: 50%;
    color: #fff;
    background: var(--orange);
    font-size: .7rem;
    font-style: normal;
}

.room-booking-card {
    position: sticky;
    top: 20px;
    padding: 23px;
    border: 1px solid var(--line);
    border-radius: 20px;
    background: var(--paper);
    box-shadow: 0 22px 55px rgba(42,30,20,.13);
}

.room-booking-card form {
    margin-top: 20px;
}

.room-booking-card .field {
    margin-bottom: 14px;
}

.room-booking-price {
    margin: 5px 0 16px;
    padding: 13px 0;
    border-block: 1px solid var(--line);
    color: var(--muted);
    font-size: .75rem;
}

.room-booking-price strong {
    color: var(--orange-dark);
    font-size: 1.2rem;
}

.room-booking-note {
    display: block;
    margin-top: 10px;
    color: var(--muted);
    text-align: center;
    font-size: .68rem;
}

.related-rooms-section {
    padding-top: 0;
}

.room-detail-not-found {
    width: min(680px, calc(100% - 40px));
    min-height: 65vh;
    display: grid;
    align-content: center;
    justify-items: start;
    margin: auto;
    padding: 70px 0;
}

.room-detail-not-found h1 {
    margin: 9px 0 13px;
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(2.3rem, 6vw, 4.6rem);
    font-weight: 500;
    line-height: 1.03;
}

.room-detail-not-found p {
    max-width: 570px;
    margin-bottom: 24px;
    color: var(--muted);
}

.booking-shell {
    width: min(1040px, calc(100% - 40px));
    margin: 42px auto 80px;
}

.booking-progress {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 5px;
    margin-bottom: 25px;
}

.booking-step {
    display: grid;
    gap: 7px;
    color: var(--muted);
    font-size: .72rem;
    font-weight: 750;
}

.booking-step::before {
    height: 5px;
    border-radius: 999px;
    background: #ddd3c5;
    content: "";
}

.booking-step.active,
.booking-step.done {
    color: var(--orange-dark);
}

.booking-step.active::before,
.booking-step.done::before {
    background: var(--orange);
}

.booking-summary {
    position: sticky;
    top: 94px;
}

.ticket {
    width: min(820px, calc(100% - 30px));
    margin: 35px auto;
    overflow: hidden;
    border: 1px solid var(--line);
    border-radius: 22px;
    background: #fff;
    box-shadow: var(--shadow);
}

.ticket-accent {
    min-height: 34px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    padding: 7px 27px;
    color: #fff;
    background: var(--orange);
    font-size: .65rem;
    font-weight: 800;
    letter-spacing: .12em;
    text-transform: uppercase;
}

.ticket-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
    padding: 23px 27px;
    color: #fff;
    background-color: var(--ink);
    background-image: radial-gradient(circle at 82% 28%, rgba(245,102,29,.16) 0 2px, transparent 2.5px);
    background-size: 17px 17px;
}

.ticket-head img {
    width: 65px;
    height: 65px;
    object-fit: cover;
    border-radius: 13px;
}

.ticket-head-brand {
    display: flex;
    align-items: center;
    gap: 13px;
}

.ticket-head h1 {
    margin: 0;
    font-family: Georgia, "Times New Roman", serif;
    font-size: 1.35rem;
}

.ticket-head p {
    margin: 4px 0 0;
    color: rgba(255,255,255,.6);
    font-size: .75rem;
}

.ticket-reference {
    text-align: right;
}

.ticket-reference small {
    display: block;
    color: rgba(255,255,255,.55);
}

.ticket-reference strong {
    display: block;
    margin-top: 3px;
    color: var(--orange);
    font-size: 1.05rem;
}

.ticket-body {
    padding: 27px;
}

.ticket-welcome {
    margin-bottom: 25px;
    padding-bottom: 20px;
    border-bottom: 1px solid var(--line);
}

.ticket-welcome h2 {
    margin: 7px 0 5px;
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(1.55rem, 4vw, 2rem);
}

.ticket-welcome p {
    margin: 0;
    color: var(--muted);
}

.ticket-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 22px;
}

.ticket-field {
    display: grid;
    gap: 4px;
}

.ticket-field small {
    color: var(--muted);
    font-size: .68rem;
    font-weight: 750;
    letter-spacing: .07em;
    text-transform: uppercase;
}

.barcode {
    min-height: 96px;
    display: grid;
    place-items: center;
    margin-top: 26px;
    padding: 12px;
    border: 1px dashed #cfc2b2;
    border-radius: 12px;
}

.barcode svg {
    max-width: 100%;
}

.ticket-note {
    margin-top: 20px;
    padding: 13px;
    border-left: 4px solid var(--orange);
    border-radius: 6px 10px 10px 6px;
    background: var(--orange-soft);
    font-size: .82rem;
}

.ticket-note strong,
.ticket-note span {
    display: block;
}

.ticket-note span {
    margin-top: 4px;
}

.ticket-arrival {
    display: grid;
    grid-template-columns: 110px 110px minmax(0, 1fr);
    gap: 1px;
    margin-top: 25px;
    overflow: hidden;
    border: 1px solid var(--line);
    border-radius: 13px;
    background: var(--line);
}

.ticket-arrival > div {
    min-width: 0;
    padding: 13px 15px;
    background: #fbf8f3;
}

.ticket-arrival small,
.ticket-present small {
    display: block;
    margin-bottom: 5px;
    color: var(--muted);
    font-size: .63rem;
    font-weight: 800;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.ticket-arrival strong {
    font-size: .83rem;
}

.ticket-validation {
    display: grid;
    grid-template-columns: minmax(0, 1.45fr) minmax(180px, .55fr);
    align-items: stretch;
    gap: 12px;
    margin-top: 18px;
}

.ticket-validation .barcode {
    margin-top: 0;
}

.ticket-present {
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding: 15px;
    border: 1px dashed #cfc2b2;
    border-radius: 12px;
    background: #faf7f2;
}

.ticket-present strong {
    font-size: .82rem;
}

.ticket-present span {
    margin-top: 6px;
    color: var(--orange-dark);
    font-size: .78rem;
    font-weight: 750;
}

.ticket-foot {
    display: flex;
    justify-content: space-between;
    gap: 16px;
    margin-top: 22px;
    padding-top: 15px;
    border-top: 1px solid var(--line);
    color: var(--muted);
    font-size: .68rem;
}

.ticket-foot strong {
    color: var(--ink);
}

.ticket-print-panel {
    width: min(820px, calc(100% - 30px));
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 18px;
    margin: -17px auto 38px;
    padding: 15px 18px;
    border: 1px solid var(--line);
    border-radius: 14px;
    background: #fff;
    box-shadow: var(--shadow-sm);
}

.ticket-print-panel div {
    display: grid;
    gap: 3px;
}

.ticket-print-panel span {
    color: var(--muted);
    font-size: .75rem;
}

.kuwa-swal {
    border-radius: 20px;
    font-family: inherit;
}

.required-star {
    margin-left: 2px;
    color: #c9302c;
    font-size: .92em;
    font-weight: 900;
    line-height: 1;
}

.email-metric-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 12px;
    margin-bottom: 18px;
}

.email-metric-card {
    position: relative;
    min-width: 0;
    min-height: 92px;
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: 4px;
    padding: 10px 13px 10px 17px;
    overflow: hidden;
    border: 1px solid var(--line);
    border-radius: 14px;
    background: var(--paper);
    box-shadow: var(--shadow-sm);
}

.email-metric-card::before {
    position: absolute;
    inset: 0 auto 0 0;
    width: 4px;
    background: #c49a36;
    content: "";
}

.email-metric-card.sent::before {
    background: #2f855a;
}

.email-metric-card.failed::before {
    background: #c24132;
}

.email-metric-card.transport::before {
    background: var(--orange);
}

.email-metric-card > span,
.email-metric-card > strong,
.email-metric-card > small {
    position: relative;
    z-index: 1;
    display: block;
}

.email-metric-card > span {
    color: var(--muted);
    font-size: .67rem;
    font-weight: 800;
    letter-spacing: .09em;
    text-transform: uppercase;
}

.email-metric-card > strong {
    margin: 1px 0;
    color: var(--ink);
    font-size: 1.65rem;
    line-height: 1;
}

.email-metric-card > small {
    overflow: hidden;
    color: var(--muted);
    font-size: .68rem;
    line-height: 1.35;
    text-overflow: ellipsis;
    white-space: nowrap;
}

@media (max-width: 900px) {
    .email-metric-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 480px) {
    .email-metric-grid {
        grid-template-columns: 1fr;
        gap: 8px;
    }

    .email-metric-card {
        min-height: 92px;
    }

    .ticket-print-panel {
        align-items: stretch;
        flex-direction: column;
    }
}

/* Room catalogue management */
.room-management-toolbar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 18px;
    margin-bottom: 14px;
}

.room-management-toolbar h2 {
    margin-bottom: 3px;
    font-size: 1.15rem;
}

.room-management-toolbar p {
    margin: 0;
    font-size: .8rem;
}

.room-manager-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 14px;
}

.room-manager-card {
    min-width: 0;
    display: flex;
    flex-direction: column;
    overflow: hidden;
}

.room-manager-cover {
    position: relative;
    height: 175px;
    display: grid;
    place-items: center;
    overflow: hidden;
    color: #fff;
    background:
        radial-gradient(circle at 75% 30%, rgba(255,90,31,.25), transparent 35%),
        var(--ink);
}

.room-manager-cover > img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.room-manager-cover > span {
    font-family: Georgia, "Times New Roman", serif;
    font-size: 2rem;
}

.room-manager-cover-meta {
    position: absolute;
    right: 10px;
    bottom: 10px;
    left: 10px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
}

.room-image-count {
    padding: 5px 8px;
    border-radius: 999px;
    color: #fff;
    background: rgba(18,17,15,.72);
    font-size: .68rem;
    font-weight: 800;
}

.room-manager-card .card-body {
    flex: 1;
}

.room-manager-title {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 12px;
}

.room-manager-title .eyebrow {
    margin-bottom: 4px;
    font-size: .61rem;
}

.room-manager-title h3 {
    margin: 0;
    font-size: 1.02rem;
}

.room-manager-title > strong {
    color: var(--orange-dark);
    font-size: .96rem;
    text-align: right;
    white-space: nowrap;
}

.room-manager-title > strong small {
    display: block;
    color: var(--muted);
    font-size: .62rem;
    font-weight: 600;
}

.room-manager-description {
    min-height: 38px;
    margin: 10px 0;
    color: var(--muted);
    font-size: .76rem;
}

.room-manager-facts {
    display: flex;
    flex-wrap: wrap;
    gap: 5px;
}

.room-manager-facts span {
    padding: 4px 7px;
    border-radius: 7px;
    color: var(--ink-soft);
    background: var(--ivory);
    font-size: .67rem;
    font-weight: 700;
}

.room-manager-card .amenity-list {
    margin: 10px 0 0;
}

.room-manager-actions {
    display: flex;
    justify-content: flex-end;
    gap: 7px;
}

.amenity-library {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(150px, 1fr));
    gap: 8px;
}

.amenity-library-item {
    display: grid;
    gap: 2px;
    padding: 9px 10px;
    border: 1px solid var(--line);
    border-radius: 9px;
    background: #fff;
}

.amenity-library-item strong {
    font-size: .76rem;
}

.amenity-library-item small {
    color: var(--muted);
    font-size: .64rem;
}

.amenity-selector {
    margin: 2px 0 14px;
    padding: 12px;
    border: 1px solid var(--line);
    border-radius: 10px;
}

.amenity-selector legend {
    padding: 0 6px;
    color: var(--ink-soft);
    font-size: .75rem;
    font-weight: 800;
}

.amenity-checkbox-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 9px;
}

.room-image-admin-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 10px;
}

.room-image-admin-card {
    overflow: hidden;
    border: 1px solid var(--line);
    border-radius: 11px;
    background: #fff;
}

.room-image-admin-card > img {
    width: 100%;
    height: 135px;
    display: block;
    object-fit: cover;
}

.room-image-admin-card > div {
    padding: 9px;
}

.room-image-admin-card small {
    display: block;
    margin-top: 6px;
    overflow: hidden;
    color: var(--muted);
    font-size: .67rem;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.room-image-admin-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    padding-top: 0 !important;
}

.room-image-admin-actions form {
    flex: 1;
}

.room-image-admin-actions .btn {
    width: 100%;
}

.room-gallery-upload {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(190px, .55fr) auto;
    align-items: end;
    gap: 10px;
    margin-top: 14px;
    padding: 13px;
    border: 1px dashed #d7cbbb;
    border-radius: 11px;
    background: #fbf8f2;
}

.room-gallery-upload .field {
    margin-bottom: 0;
}

.gallery-empty {
    display: grid;
    gap: 3px;
    padding: 20px;
    border: 1px dashed #d7cbbb;
    border-radius: 11px;
    color: var(--muted);
    text-align: center;
}

.gallery-empty strong {
    color: var(--ink);
}

/* Modal */
.modal-backdrop {
    position: fixed;
    z-index: 100;
    inset: 0;
    display: none;
    align-items: center;
    justify-content: center;
    padding: 20px;
    background: rgba(18, 17, 15, .64);
    -webkit-backdrop-filter: blur(3px);
    backdrop-filter: blur(3px);
}

.modal-backdrop.open {
    display: flex;
}

.modal {
    width: min(680px, 100%);
    max-height: calc(100vh - 40px);
    overflow-y: auto;
    border: 1px solid rgba(255,255,255,.4);
    border-radius: 20px;
    background: var(--paper);
    box-shadow: 0 28px 70px rgba(0,0,0,.25);
}

.modal-lg {
    width: min(920px, 100%);
}

.modal-head {
    position: sticky;
    z-index: 2;
    top: 0;
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 15px;
    padding: 20px 22px;
    border-bottom: 1px solid var(--line);
    background: var(--paper);
}

.modal-head h2 {
    margin: 0;
    font-size: 1.2rem;
}

.modal-body {
    padding: 22px;
}

.modal-foot {
    position: sticky;
    bottom: 0;
    display: flex;
    justify-content: flex-end;
    gap: 9px;
    padding: 15px 22px;
    border-top: 1px solid var(--line);
    background: var(--paper);
}

.close-modal {
    width: 34px;
    height: 34px;
    display: grid;
    place-items: center;
    border: 0;
    border-radius: 9px;
    color: var(--muted);
    background: var(--ivory);
    cursor: pointer;
    font-size: 1.25rem;
}

/* Compact staff workspace */
.app-shell {
    --radius: 14px;
    --radius-sm: 9px;
    font-size: .92rem;
}

.app-shell .sidebar-brand {
    min-height: 70px;
    gap: 10px;
    padding: 10px 14px;
}

.app-shell .sidebar-brand img {
    width: 42px;
    height: 42px;
    flex-basis: 42px;
    border-radius: 10px;
}

.app-shell .sidebar-brand strong {
    font-size: .98rem;
}

.app-shell .sidebar-brand small {
    font-size: .62rem;
}

.app-shell .sidebar-nav {
    padding: 8px 9px;
}

.app-shell .nav-section-label {
    height: 21px;
    margin: 8px 10px 2px;
    font-size: .59rem;
}

.app-shell .nav-link {
    min-height: 37px;
    gap: 10px;
    margin: 2px 0;
    padding: 6px 10px;
    border-radius: 9px;
    font-size: .81rem;
}

.app-shell .nav-icon {
    width: 22px;
    flex-basis: 22px;
    font-size: .98rem;
}

.app-shell .sidebar-footer {
    padding: 8px 9px;
}

.app-shell .topbar {
    min-height: 60px;
    gap: 14px;
    padding: 8px 20px;
}

.app-shell .topbar-left,
.app-shell .topbar-right {
    gap: 9px;
}

.app-shell .global-search {
    width: min(330px, 35vw);
}

.app-shell .global-search input {
    min-height: 38px;
    padding: 7px 10px 7px 36px;
    font-size: .82rem;
}

.app-shell .global-search::before {
    top: 8px;
    left: 12px;
    font-size: 1rem;
}

.app-shell .icon-btn {
    width: 36px;
    height: 36px;
    flex-basis: 36px;
    border-radius: 10px;
}

.app-shell .profile-trigger {
    min-height: 40px;
    gap: 8px;
    padding: 3px 8px 3px 4px;
    border-radius: 11px;
}

.app-shell .avatar {
    width: 32px;
    height: 32px;
    flex-basis: 32px;
    border-radius: 8px;
    font-size: .7rem;
}

.app-shell .profile-trigger-info {
    min-width: 94px;
}

.app-shell .business-date strong {
    margin-top: 2px;
    font-size: .79rem;
}

.app-shell .app-content {
    padding: 18px 20px 40px;
}

.app-shell .page-header {
    gap: 16px;
    margin-bottom: 16px;
}

.app-shell .page-header .eyebrow {
    margin-bottom: 6px;
    font-size: .66rem;
}

.app-shell .page-header h1 {
    margin-bottom: 5px;
    font-size: clamp(1.45rem, 2.4vw, 1.9rem);
}

.app-shell .page-header p {
    max-width: 680px;
    font-size: .82rem;
    line-height: 1.42;
}

.app-shell .page-actions {
    gap: 7px;
}

.app-shell .btn {
    min-height: 37px;
    gap: 7px;
    padding: 7px 13px;
    border-radius: 9px;
    font-size: .82rem;
}

.app-shell .btn-sm {
    min-height: 30px;
    padding: 5px 9px;
    border-radius: 7px;
    font-size: .75rem;
}

.app-shell .field {
    gap: 5px;
    margin-bottom: 12px;
}

.app-shell .field > span,
.app-shell .field-label {
    font-size: .78rem;
}

.app-shell .field small {
    font-size: .7rem;
}

.app-shell input,
.app-shell select,
.app-shell textarea {
    min-height: 39px;
    padding: 7px 10px;
    border-radius: 8px;
    font-size: .82rem;
}

.app-shell textarea {
    min-height: 82px;
}

.app-shell input[type="checkbox"],
.app-shell input[type="radio"] {
    width: 16px;
    min-height: 16px;
}

.app-shell .checkbox {
    gap: 7px;
    font-size: .81rem;
}

.app-shell .form-grid {
    gap: 12px;
}

.app-shell .form-actions {
    gap: 8px;
    padding-top: 5px;
}

.app-shell .alert {
    gap: 8px;
    margin-bottom: 12px;
    padding: 9px 11px;
    border-radius: 9px;
    font-size: .81rem;
}

.app-shell .status-pill {
    gap: 5px;
    padding: 4px 7px;
    font-size: .66rem;
}

.app-shell .badge {
    min-width: 18px;
    min-height: 18px;
    padding: 1px 5px;
    font-size: .62rem;
}

.app-shell .quick-strip {
    gap: 10px;
    margin-bottom: 16px;
}

.app-shell .metric-card {
    min-height: 92px;
    padding: 10px 13px;
    border-radius: 14px;
}

.app-shell .metric-head {
    font-size: .72rem;
}

.app-shell .metric-icon {
    width: 26px;
    height: 26px;
    border-radius: 7px;
}

.app-shell .metric-value {
    margin-top: 3px;
    font-size: clamp(1.25rem, 1.8vw, 1.58rem);
}

.app-shell .metric-foot {
    margin-top: 0;
    font-size: .68rem;
}

.app-shell .module-compact-metrics {
    margin-bottom: 12px;
}

.app-shell .module-compact-metrics .metric-card {
    min-height: 76px;
    padding: 7px 11px;
}

.app-shell .module-compact-metrics .metric-head {
    font-size: .68rem;
    line-height: 1.05;
}

.app-shell .module-compact-metrics .metric-icon {
    width: 22px;
    height: 22px;
    border-radius: 6px;
    font-size: .7rem;
}

.app-shell .module-compact-metrics .metric-value {
    margin-top: 1px;
    font-size: clamp(1.08rem, 1.45vw, 1.32rem);
    line-height: 1.05;
}

.app-shell .module-compact-metrics .metric-foot {
    margin-top: 1px;
    font-size: .61rem;
    line-height: 1.1;
}

.app-shell .accounting-compact-metrics {
    gap: 7px;
    margin-bottom: 10px;
}

.app-shell .accounting-compact-metrics .metric-card {
    min-height: 64px;
    padding: 6px 9px;
    border-radius: 11px;
}

.app-shell .accounting-compact-metrics .metric-card::after {
    right: -40px;
    bottom: -54px;
    transform: scale(.65);
}

.app-shell .accounting-compact-metrics .metric-head {
    gap: 6px;
    font-size: .61rem;
    line-height: 1;
}

.app-shell .accounting-compact-metrics .metric-icon {
    width: 19px;
    height: 19px;
    border-radius: 5px;
    font-size: .6rem;
}

.app-shell .accounting-compact-metrics .metric-value {
    margin-top: 0;
    font-size: clamp(.94rem, 1.18vw, 1.08rem);
    line-height: 1.02;
}

.app-shell .accounting-compact-metrics .metric-foot {
    margin-top: 1px;
    font-size: .54rem;
    line-height: 1.05;
}

.accounting-filterbar .toolbar-group,
.table-filterbar .toolbar-group {
    flex-wrap: wrap;
    align-items: flex-end;
}

.accounting-filterbar label,
.table-filterbar label {
    display: grid;
    gap: 3px;
    min-width: 118px;
}

.accounting-filterbar label > span,
.table-filterbar label > span {
    color: var(--muted);
    font-size: .61rem;
    font-weight: 750;
    letter-spacing: .025em;
}

.accounting-filterbar input,
.accounting-filterbar select,
.table-filterbar input,
.table-filterbar select {
    min-height: 32px;
    padding: 5px 8px;
    font-size: .72rem;
}

.accounting-filterbar .filter-check {
    display: inline-flex;
    min-width: 145px;
    flex-direction: row;
    align-items: center;
    gap: 6px;
    min-height: 32px;
}

.accounting-filterbar .filter-check input {
    min-height: auto;
}

.app-shell .hr-compact-metrics .metric-card {
    min-height: 66px;
    padding: 7px 10px;
    border-radius: 10px;
}

.app-shell .hr-compact-metrics .metric-head {
    font-size: .58rem;
    line-height: 1;
}

.app-shell .hr-compact-metrics .metric-icon {
    width: 22px;
    height: 22px;
    border-radius: 6px;
    font-size: .55rem;
}

.app-shell .hr-compact-metrics .metric-value {
    margin-top: 0;
    font-size: 1rem;
    line-height: 1;
}

.app-shell .hr-compact-metrics .metric-foot {
    margin-top: 1px;
    font-size: .52rem;
    line-height: 1.05;
}

.hr-control-strip,
.roster-coverage-strip {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(120px, 1fr));
    gap: 8px;
    margin-bottom: 14px;
}

.hr-control-strip > span,
.roster-coverage-strip > span {
    display: grid;
    gap: 2px;
    min-width: 0;
    padding: 8px 11px;
    border: 1px solid var(--line);
    border-radius: 10px;
    background: rgba(255,255,255,.72);
}

.hr-control-strip small,
.roster-coverage-strip small {
    color: var(--muted);
    font-size: .6rem;
    font-weight: 750;
    text-transform: uppercase;
    letter-spacing: .035em;
}

.hr-control-strip strong,
.roster-coverage-strip strong {
    font-size: .88rem;
    line-height: 1.1;
}

.roster-coverage-strip em {
    overflow: hidden;
    color: var(--muted);
    font-size: .58rem;
    font-style: normal;
    white-space: nowrap;
    text-overflow: ellipsis;
}

.roster-coverage-strip > span.today {
    border-color: rgba(255,106,22,.55);
    box-shadow: inset 0 0 0 1px rgba(255,106,22,.12);
}

.app-shell .dashboard-metrics .metric-card {
    min-height: 92px;
    padding: 10px 13px;
}

.app-shell .dashboard-metrics .metric-icon {
    width: 26px;
    height: 26px;
    border-radius: 7px;
}

.app-shell .dashboard-metrics .metric-value {
    margin-top: 3px;
    font-size: clamp(1.25rem, 1.8vw, 1.58rem);
}

.app-shell .dashboard-metrics .metric-foot {
    margin-top: 0;
}

.app-shell .content-grid {
    gap: 14px;
}

.app-shell .content-grid > * {
    min-width: 0;
}

.app-shell .card {
    border-radius: 14px;
}

.app-shell .card-header {
    flex-wrap: wrap;
    gap: 12px;
    padding: 13px 16px;
}

.app-shell .card-header h2,
.app-shell .card-header h3 {
    font-size: .96rem;
}

.app-shell .card-header p {
    margin-top: 3px;
    font-size: .72rem;
}

.app-shell .card-body {
    padding: 16px;
}

.app-shell .card-body.flush {
    padding: 0;
}

.app-shell .card-footer {
    padding: 10px 16px;
}

.app-shell .toolbar {
    gap: 9px;
    margin-bottom: 13px;
    padding: 10px;
    border-radius: 11px;
}

.app-shell .toolbar-group {
    gap: 7px;
}

.app-shell .toolbar input,
.app-shell .toolbar select {
    min-width: 130px;
    min-height: 34px;
    padding-block: 5px;
}

.app-shell .data-table {
    font-size: .77rem;
}

.app-shell .data-table th,
.app-shell .data-table td {
    padding: 9px 11px;
}

.app-shell .data-table th {
    font-size: .62rem;
}

.app-shell .primary-cell {
    gap: 1px;
}

.app-shell .primary-cell strong {
    font-size: .79rem;
}

.app-shell .primary-cell small {
    font-size: .65rem;
}

.app-shell .empty-state {
    min-height: 190px;
    padding: 24px;
}

.app-shell .empty-state-icon {
    width: 54px;
    height: 54px;
    margin-bottom: 10px;
    border-radius: 16px;
    font-size: 1.35rem;
}

.app-shell .empty-state h3 {
    margin-bottom: 5px;
    font-size: .96rem;
}

.app-shell .empty-state p {
    margin-bottom: 13px;
    font-size: .79rem;
}

.app-shell .tabs {
    gap: 3px;
    padding: 4px;
    border-radius: 10px;
}

.app-shell .tab {
    min-height: 32px;
    padding: 6px 10px;
    border-radius: 7px;
    font-size: .74rem;
}

.app-shell .list-item {
    gap: 10px;
    padding: 9px 0;
}

.app-shell .list-item-main {
    gap: 9px;
}

.app-shell .list-icon {
    width: 32px;
    height: 32px;
    flex-basis: 32px;
    border-radius: 9px;
}

.app-shell .list-item strong {
    font-size: .77rem;
}

.app-shell .list-item small {
    font-size: .65rem;
}

.app-shell .progress {
    height: 6px;
}

.app-shell .room-board {
    grid-template-columns: repeat(auto-fill, minmax(155px, 1fr));
    gap: 9px;
}

.app-shell .room-card {
    min-height: 120px;
    padding: 12px;
    border-left-width: 4px;
    border-radius: 11px;
}

.app-shell .room-number strong {
    font-size: 1.08rem;
}

.app-shell .room-card > small {
    margin-top: 3px;
    font-size: .68rem;
}

.app-shell .room-card .status-pill {
    margin-top: 12px;
}

.app-shell .room-card-actions {
    margin-top: 8px;
}

.app-shell .calendar-strip {
    grid-auto-columns: minmax(72px, 1fr);
}

.app-shell .calendar-day {
    padding: 8px 6px;
}

.app-shell .pos-layout {
    height: calc(100vh - 96px);
    min-height: 560px;
    grid-template-columns: minmax(0, 1fr) 340px;
    gap: 12px;
}

.app-shell .pos-catalog,
.app-shell .pos-ticket {
    border-radius: 14px;
}

.app-shell .pos-categories {
    gap: 5px;
    padding: 10px;
}

.app-shell .pos-products {
    grid-template-columns: repeat(auto-fill, minmax(125px, 1fr));
    gap: 8px;
    padding: 10px;
}

.app-shell .product-card {
    min-height: 108px;
    gap: 8px;
    padding: 11px;
    border-radius: 11px;
}

.app-shell .product-card strong {
    font-size: .82rem;
}

.app-shell .product-card small {
    margin-top: 2px;
    font-size: .68rem;
}

.app-shell .pos-ticket-head,
.app-shell .pos-ticket-total {
    padding: 12px;
}

.app-shell .pos-ticket-items {
    padding: 5px 12px;
}

.app-shell .ticket-item {
    gap: 8px;
    padding: 9px 0;
}

.app-shell .total-row {
    margin: 4px 0;
    font-size: .77rem;
}

.app-shell .total-row.grand {
    margin-top: 8px;
    padding-top: 8px;
    font-size: 1rem;
}

.app-shell .kds-board {
    grid-template-columns: repeat(4, minmax(230px, 1fr));
    gap: 10px;
}

.app-shell .kds-column {
    min-height: 460px;
    padding: 9px;
    border-radius: 13px;
}

.app-shell .kds-column-head {
    padding: 4px 3px 9px;
    font-size: .75rem;
}

.app-shell .kds-ticket {
    margin-bottom: 8px;
    padding: 10px;
    border-radius: 10px;
}

.app-shell .kds-ticket-head {
    margin-bottom: 8px;
}

.app-shell .kds-ticket ul {
    padding-left: 17px;
    font-size: .75rem;
}

.app-shell .chart-bars {
    height: 175px;
    gap: 8px;
    padding-top: 12px;
}

.app-shell .modal-backdrop {
    padding: 10px;
}

.app-shell .modal {
    max-height: calc(100vh - 20px);
    border-radius: 16px;
}

.app-shell .modal-head {
    gap: 12px;
    padding: 14px 16px;
}

.app-shell .modal-head h2 {
    font-size: 1.05rem;
}

.app-shell .modal-body {
    padding: 16px;
}

.app-shell .modal-foot {
    gap: 7px;
    padding: 11px 16px;
}

/* Public WhatsApp enquiry assistant */
.whatsapp-chat {
    position: fixed;
    z-index: 120;
    right: 24px;
    bottom: 24px;
    display: grid;
    justify-items: end;
    gap: 12px;
    pointer-events: none;
}

.whatsapp-chat > * {
    pointer-events: auto;
}

.whatsapp-chat-panel {
    width: min(390px, calc(100vw - 32px));
    max-height: min(620px, calc(100vh - 110px));
    overflow: hidden auto;
    border: 1px solid rgba(27, 117, 69, .18);
    border-radius: 22px;
    background: #f7f5ef;
    box-shadow: 0 26px 70px rgba(20, 42, 30, .25);
    transform-origin: right bottom;
    animation: whatsapp-panel-in .34s cubic-bezier(.2, .72, .28, 1) both;
}

.whatsapp-chat-head {
    position: sticky;
    z-index: 2;
    top: 0;
    display: grid;
    grid-template-columns: auto 1fr auto;
    align-items: center;
    gap: 11px;
    padding: 16px 17px;
    color: #fff;
    background:
        radial-gradient(circle at 86% 18%, rgba(255,255,255,.18), transparent 24%),
        linear-gradient(135deg, #177e4b, #21a967);
}

.whatsapp-chat-avatar,
.whatsapp-launch-icon {
    display: grid;
    place-items: center;
    border-radius: 50%;
    color: #15864f;
    background: #fff;
    font-family: Arial, sans-serif;
    font-weight: 900;
}

.whatsapp-chat-avatar svg,
.whatsapp-launch-icon svg {
    width: 63%;
    height: 63%;
    display: block;
}

.whatsapp-chat-avatar {
    width: 42px;
    height: 42px;
    box-shadow: 0 0 0 4px rgba(255,255,255,.13);
}

.whatsapp-chat-head strong,
.whatsapp-chat-head small {
    display: block;
}

.whatsapp-chat-head strong {
    font-size: .9rem;
}

.whatsapp-chat-head small {
    margin-top: 3px;
    color: rgba(255,255,255,.75);
    font-size: .66rem;
}

.whatsapp-chat-head small i {
    width: 7px;
    height: 7px;
    display: inline-block;
    margin-right: 4px;
    border-radius: 50%;
    background: #a7f3d0;
    box-shadow: 0 0 0 3px rgba(167,243,208,.14);
}

.whatsapp-chat-head > button {
    width: 30px;
    height: 30px;
    display: grid;
    place-items: center;
    padding: 0;
    border: 1px solid rgba(255,255,255,.22);
    border-radius: 50%;
    color: #fff;
    background: rgba(255,255,255,.08);
    font-size: 1.2rem;
    cursor: pointer;
}

.whatsapp-chat-body {
    padding: 17px;
    background:
        radial-gradient(circle at 18% 8%, rgba(31,168,100,.07), transparent 22%),
        #f7f5ef;
}

.whatsapp-bot-message {
    width: fit-content;
    max-width: 84%;
    padding: 11px 13px;
    border-radius: 4px 15px 15px 15px;
    color: #26352d;
    background: #fff;
    box-shadow: 0 7px 18px rgba(28, 57, 40, .08);
}

.whatsapp-bot-message small {
    display: block;
    margin-bottom: 4px;
    color: #168551;
    font-size: .61rem;
    font-weight: 850;
}

.whatsapp-bot-message p {
    margin: 0;
    font-size: .79rem;
    line-height: 1.55;
}

.whatsapp-quick-topics {
    display: flex;
    flex-wrap: wrap;
    gap: 7px;
    margin: 14px 0;
}

.whatsapp-quick-topics button {
    padding: 7px 10px;
    border: 1px solid rgba(26,139,83,.28);
    border-radius: 999px;
    color: #16653f;
    background: rgba(255,255,255,.72);
    font-size: .68rem;
    font-weight: 750;
    cursor: pointer;
    transition: color .2s ease, background .2s ease, transform .2s ease;
}

.whatsapp-quick-topics button:hover,
.whatsapp-quick-topics button:focus-visible {
    color: #fff;
    background: #198e56;
    transform: translateY(-1px);
}

.whatsapp-topic-reply {
    margin: -3px 0 13px auto;
    padding: 9px 11px;
    border-radius: 14px 4px 14px 14px;
    color: #21583d;
    background: #dff5e8;
    font-size: .7rem;
    line-height: 1.5;
}

.whatsapp-chat-form {
    padding-top: 13px;
    border-top: 1px solid rgba(57, 87, 68, .12);
}

.whatsapp-chat-form label {
    display: block;
    margin-bottom: 6px;
    color: #405149;
    font-size: .69rem;
    font-weight: 800;
}

.whatsapp-chat-form textarea {
    width: 100%;
    min-height: 88px;
    resize: vertical;
    border-color: rgba(49, 101, 70, .2);
    background: #fff;
    font-size: .78rem;
}

.whatsapp-send-button {
    width: 100%;
    margin-top: 10px;
    border-color: #168551;
    color: #fff;
    background: linear-gradient(135deg, #1fab67, #168551);
    box-shadow: 0 10px 22px rgba(22,133,81,.2);
}

.whatsapp-send-button:hover {
    color: #fff;
    background: linear-gradient(135deg, #24b970, #137646);
}

.whatsapp-send-button span {
    width: 21px;
    height: 21px;
    display: inline-grid;
    place-items: center;
    margin-right: 5px;
    border-radius: 50%;
    color: #198e56;
    background: #fff;
    font-size: .66rem;
    font-weight: 900;
}

.whatsapp-send-button span svg {
    width: 14px;
    height: 14px;
    display: block;
}

.whatsapp-chat-form > small {
    display: block;
    margin-top: 8px;
    color: #777f79;
    font-size: .61rem;
    text-align: center;
}

.whatsapp-chat-launcher {
    position: relative;
    min-height: 54px;
    display: flex;
    align-items: center;
    gap: 9px;
    padding: 7px 17px 7px 7px;
    border: 1px solid rgba(255,255,255,.55);
    border-radius: 999px;
    color: #fff;
    background: linear-gradient(135deg, #20ad68, #168551);
    box-shadow: 0 16px 34px rgba(18, 107, 64, .28);
    cursor: pointer;
    transition: transform .24s ease, box-shadow .24s ease;
}

.whatsapp-chat-launcher:hover {
    transform: translateY(-2px);
    box-shadow: 0 20px 40px rgba(18,107,64,.34);
}

.whatsapp-launch-icon {
    width: 40px;
    height: 40px;
    flex: 0 0 40px;
}

.whatsapp-launch-label {
    font-size: .78rem;
    font-weight: 850;
}

.whatsapp-chat-launcher > i {
    position: absolute;
    top: 2px;
    left: 39px;
    width: 10px;
    height: 10px;
    border: 2px solid #fff;
    border-radius: 50%;
    background: #6ee7a8;
}

.whatsapp-chat.is-open .whatsapp-chat-launcher {
    transform: scale(.94);
}

@keyframes whatsapp-panel-in {
    from { opacity: 0; transform: translate3d(0, 18px, 0) scale(.95); }
    to { opacity: 1; transform: translate3d(0, 0, 0) scale(1); }
}

@media (max-width: 540px) {
    .whatsapp-chat {
        right: 14px;
        bottom: 14px;
        left: 14px;
    }

    .whatsapp-chat-panel {
        width: 100%;
        max-height: calc(100vh - 96px);
    }

    .whatsapp-chat-launcher {
        padding-right: 11px;
    }

    .whatsapp-launch-label {
        display: none;
    }
}

/* Full artwork introduction supplied for the homepage */
.home-page .lodge-introduction-art {
    position: relative;
    width: 100%;
    max-width: none;
    padding: 0;
    overflow: hidden;
    border: 0;
    background: #f5eee1;
}

.home-page .lodge-introduction-art::before,
.home-page .lodge-introduction-art::after {
    display: none;
}

.lodge-introduction-artwork {
    width: 100%;
    margin: 0 auto;
    overflow: hidden;
    background: #f5eee1;
}

.lodge-introduction-artwork img {
    width: 100%;
    height: auto;
    display: block;
    object-fit: contain;
}

.lodge-introduction-art .sr-only {
    position: absolute !important;
    width: 1px !important;
    height: 1px !important;
    padding: 0 !important;
    margin: -1px !important;
    overflow: hidden !important;
    clip: rect(0, 0, 0, 0) !important;
    white-space: nowrap !important;
    border: 0 !important;
}

.home-page .lodge-introduction-art + .public-section {
    margin-top: 0;
}

@media (min-width: 1900px) {
    .lodge-introduction-artwork img {
        max-height: 1040px;
        object-fit: cover;
    }
}

@media (max-width: 720px) {
    .lodge-introduction-artwork {
        overflow-x: auto;
        overscroll-behavior-inline: contain;
        scrollbar-width: thin;
        scroll-snap-type: x proximity;
    }

    .lodge-introduction-artwork img {
        width: 900px;
        max-width: none;
        scroll-snap-align: start;
    }
}

@media (prefers-reduced-motion: reduce) {
    .whatsapp-chat-panel {
        animation: none;
    }

    .whatsapp-chat-launcher,
    .whatsapp-quick-topics button {
        transition: none;
    }
}

/* Large-screen public website scaling */
@media (min-width: 1440px) {
    .public-topbar-inner,
    .hero-inner,
    .public-section,
    .activities-inner,
    .feature-band-inner,
    .rooms-listing-hero-inner,
    .room-catalogue-shell,
    .room-detail-shell {
        width: min(1680px, calc(100% - 112px));
    }

    .public-nav {
        gap: 32px;
        padding: 18px max(56px, calc((100% - 1680px) / 2));
    }

    .public-brand {
        gap: 16px;
    }

    .public-brand img {
        width: 82px;
        height: 82px;
    }

    .public-brand strong {
        font-size: 1.48rem;
    }

    .public-brand small {
        font-size: .8rem;
    }

    .public-links {
        gap: clamp(24px, 2vw, 36px);
    }

    .public-links a:not(.btn) {
        font-size: 1.02rem;
    }

    .public-nav .btn-sm {
        min-height: 50px;
        padding-inline: 23px;
        font-size: .9rem;
    }

    .hero {
        min-height: clamp(690px, 68vh, 880px);
    }

    .hero-inner {
        grid-template-columns: minmax(0, 1.12fr) minmax(420px, .88fr);
        gap: clamp(70px, 7vw, 130px);
        padding: 100px 0 145px;
    }

    .hero-copy h1 {
        max-width: 820px;
        font-size: clamp(5.7rem, 6.4vw, 7.4rem);
    }

    .hero-copy p {
        max-width: 680px;
        font-size: 1.16rem;
        line-height: 1.75;
    }

    .hero-mark::before,
    .hero-mark::after {
        width: 420px;
        height: 420px;
    }

    .hero-mark::after {
        width: 550px;
        height: 550px;
    }

    .hero-mark img {
        width: 390px;
        height: 390px;
    }

    .hero-slider-controls {
        bottom: 94px;
        left: max(56px, calc((100% - 1680px) / 2));
    }

    .availability-box {
        width: min(1460px, calc(100% - 180px));
        gap: 14px;
        margin-top: -68px;
        padding: 22px;
    }

    .availability-box input,
    .availability-box select,
    .availability-box .btn {
        min-height: 48px;
    }

    .lodge-introduction {
        padding: 132px 40px 72px;
    }

    .lodge-introduction-inner {
        width: min(1080px, 100%);
    }

    .lodge-introduction h2 {
        max-width: 950px;
        font-size: clamp(3.7rem, 4.2vw, 5.25rem);
    }

    .lodge-introduction-copy p {
        max-width: 1000px;
        font-size: 1.05rem;
    }

    .public-section {
        padding-block: 108px;
    }

    .section-heading {
        max-width: 820px;
        margin-bottom: 42px;
    }

    .section-heading h2 {
        font-size: clamp(3rem, 3.5vw, 4.3rem);
    }

    .section-heading p,
    .activities-heading p {
        font-size: 1.03rem;
        line-height: 1.7;
    }

    .room-types-grid {
        gap: 26px;
    }

    .room-media-gallery,
    .room-image-placeholder {
        height: 285px;
    }

    .public-room-card-body {
        padding: 27px;
    }

    .public-room-card-body h3 {
        font-size: 1.48rem;
    }

    .public-room-card-body p {
        font-size: .92rem;
        line-height: 1.65;
    }

    .activities-section {
        padding: 112px 56px 120px;
    }

    .activities-heading {
        max-width: 880px;
        margin-bottom: 52px;
    }

    .activities-heading h2 {
        font-size: clamp(3.1rem, 3.8vw, 4.65rem);
    }

    .activities-grid {
        gap: 25px;
    }

    .activity-card {
        min-height: 500px;
    }

    .activity-card-content {
        padding: 36px 34px 33px;
    }

    .activity-card h3 {
        font-size: 2.05rem;
    }

    .activity-card p {
        max-width: 410px;
        font-size: .88rem;
    }

    .safari-story-grid {
        grid-template-columns: minmax(0, .88fr) minmax(0, 1.12fr);
        gap: clamp(80px, 8vw, 150px);
    }

    .safari-story-copy h2 {
        max-width: 650px;
        font-size: clamp(3rem, 3.4vw, 4.25rem);
    }

    .safari-story-copy > p {
        max-width: 640px;
        font-size: 1rem;
        line-height: 1.75;
    }

    .safari-story-gallery {
        min-height: 620px;
    }

    .feature-band-inner {
        gap: 42px;
        padding: 78px 0;
    }

    .public-feature-icon {
        width: 56px;
        height: 56px;
    }

    .public-feature h3 {
        font-size: 1.12rem;
    }

    .public-feature p {
        font-size: .88rem;
    }

    .booking-page-hero,
    .contact-page-hero,
    .activities-page-hero {
        padding-inline: max(56px, calc((100% - 1680px) / 2));
    }

    .booking-page-hero {
        min-height: clamp(740px, 72vh, 920px);
        grid-template-columns: minmax(0, 1.04fr) minmax(510px, .72fr);
    }

    .booking-page-copy h1,
    .contact-page-hero h1,
    .activities-page-hero h1 {
        max-width: 900px;
        font-size: clamp(5.2rem, 5.8vw, 7.2rem);
    }

    .booking-page-copy > p,
    .contact-page-hero p,
    .activities-page-hero p {
        max-width: 700px;
        font-size: 1.12rem;
        line-height: 1.75;
    }

    .booking-start-card {
        padding: 42px;
    }

    .booking-journey-section,
    .booking-inspiration,
    .contact-details-section,
    .contact-page-shell {
        width: min(1500px, calc(100% - 160px));
    }

    .booking-journey-grid,
    .contact-details-section {
        gap: 22px;
    }

    .booking-journey-grid article,
    .contact-detail-card {
        padding: 32px 30px;
    }

    .booking-inspiration-image {
        height: 560px;
    }

    .contact-page-shell {
        grid-template-columns: minmax(0, .9fr) minmax(600px, 1.1fr);
    }

    .contact-form-card {
        padding: 44px;
    }

    .contact-location-band {
        min-height: 390px;
        padding-inline: max(70px, calc((100% - 1500px) / 2));
    }

    .activities-page-hero,
    .contact-page-hero {
        min-height: 640px;
    }

    .activities-page-hero-inner,
    .contact-page-hero-inner {
        max-width: 900px;
    }

    .activities-page-hero-mark,
    .contact-page-compass {
        width: 220px;
        height: 220px;
    }

    .activity-planning-section {
        width: min(1320px, calc(100% - 180px));
        padding-block: 110px;
    }

    .activity-planning-card {
        padding: 34px 28px;
    }

    .rooms-listing-hero {
        min-height: 410px;
    }

    .rooms-listing-hero-inner {
        padding: 88px 0 112px;
    }

    .rooms-listing-hero h1,
    .room-detail-heading h1 {
        max-width: 920px;
        font-size: clamp(4.3rem, 4.8vw, 6.2rem);
    }

    .rooms-listing-hero p,
    .room-detail-heading p {
        max-width: 780px;
        font-size: 1.08rem;
        line-height: 1.7;
    }

    .room-filter-panel {
        padding: 24px;
    }

    .room-listing-grid {
        gap: 26px;
    }

    .room-listing-card .room-media-gallery {
        height: 340px;
    }

    .room-detail-gallery .room-media-gallery {
        height: clamp(620px, 47vw, 760px);
    }

    .room-detail-layout {
        grid-template-columns: minmax(0, 1fr) 410px;
        gap: clamp(70px, 7vw, 130px);
    }

    .room-booking-card {
        padding: 29px;
    }

    .booking-shell {
        width: min(1280px, calc(100% - 120px));
    }
}

@media (min-width: 1700px) {
    .room-listing-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .room-listing-card .room-media-gallery {
        height: 315px;
    }
}

.app-shell .close-modal {
    width: 30px;
    height: 30px;
    border-radius: 8px;
    font-size: 1.1rem;
}

/* Responsive */
@media (max-width: 1180px) {
    .public-links {
        gap: 14px;
    }

    .public-links a:not(.btn) {
        padding: 8px 10px;
        font-size: clamp(.88rem, 1.3vw, .98rem);
    }

    .public-links a:not(.btn)::after {
        right: 10px;
        left: 10px;
    }

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

    .app-shell .span-3 {
        grid-column: span 6;
    }

    .pos-layout {
        grid-template-columns: minmax(0, 1fr) 340px;
    }

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

    .room-filter-grid {
        grid-template-columns: repeat(4, minmax(0, 1fr));
    }

    .room-filter-search {
        grid-column: span 2;
    }

    .room-filter-submit {
        grid-column: span 2;
    }
}

@media (max-width: 980px) {
    .sidebar {
        width: var(--sidebar-width);
        transform: translateX(-100%);
    }

    .app-main,
    body.sidebar-collapsed .app-main {
        margin-left: 0;
    }

    body.sidebar-mobile-open .sidebar {
        transform: translateX(0);
    }

    body.sidebar-mobile-open .mobile-overlay {
        display: block;
    }

    .topbar {
        padding-inline: 18px;
    }

    .app-content {
        padding-inline: 18px;
    }

    .auth-shell,
    .setup-shell {
        grid-template-columns: 1fr;
    }

    .auth-brand-panel {
        min-height: 380px;
    }

    .auth-form-panel {
        padding: 42px 30px;
    }

    .setup-shell {
        width: min(680px, calc(100% - 24px));
        max-height: none;
        margin: 12px auto;
    }

    .setup-shell .auth-brand-panel {
        min-height: 210px;
        flex-direction: row;
        align-items: center;
        justify-content: center;
        padding: 24px;
    }

    .setup-shell .auth-brand-panel img {
        width: 82px;
        height: 82px;
    }

    .setup-shell .auth-brand-panel h1 {
        margin-bottom: 8px;
        font-size: 1.75rem;
    }

    .setup-shell .auth-brand-panel p {
        font-size: .8rem;
    }

    .setup-shell .auth-form-panel {
        padding: 24px;
    }

    .login-shell {
        width: min(620px, calc(100% - 24px));
        min-height: auto;
        margin: 12px auto;
    }

    .login-shell .auth-brand-panel {
        min-height: 200px;
        flex-direction: row;
        justify-content: center;
        padding: 24px;
    }

    .login-shell .auth-brand-panel img {
        width: 82px;
        height: 82px;
    }

    .login-shell .auth-brand-panel h1 {
        margin-bottom: 8px;
        font-size: 1.75rem;
    }

    .login-shell .auth-brand-panel p {
        font-size: .8rem;
    }

    .login-shell .auth-form-panel {
        padding: 24px;
    }

    .hero-inner {
        grid-template-columns: 1fr;
        text-align: center;
    }

    .hero::before {
        background: rgba(13, 13, 12, .74);
    }

    .hero-copy p {
        margin-inline: auto;
    }

    .hero-mark {
        display: none;
    }

    .hero-slider-controls {
        right: auto;
        left: 50%;
        transform: translateX(-50%);
    }

    .availability-box {
        grid-template-columns: repeat(2, 1fr);
    }

    .availability-box .btn {
        grid-column: span 2;
    }

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

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

    .activities-page-hero {
        grid-template-columns: 1fr;
    }

    .activities-page-hero-mark {
        display: none;
    }

    .contact-page-hero {
        grid-template-columns: 1fr;
    }

    .contact-page-compass {
        display: none;
    }

    .contact-page-shell {
        grid-template-columns: 1fr;
    }

    .contact-page-copy {
        max-width: 680px;
    }

    .booking-page-hero {
        grid-template-columns: 1fr;
    }

    .booking-page-copy {
        max-width: 740px;
        text-align: center;
    }

    .booking-page-copy > p,
    .booking-start-card {
        margin-inline: auto;
    }

    .booking-page-promises {
        justify-content: center;
    }

    .booking-start-card {
        width: min(100%, 620px);
    }

    .booking-inspiration {
        grid-template-columns: 1fr;
    }

    .booking-inspiration-image {
        height: 520px;
    }

    .booking-inspiration-copy {
        max-width: 680px;
    }

    .activities-grid .activity-card {
        --activity-curve: 0deg;
        --activity-arc: 0px;
        --activity-z: 0px;
    }

    .activities-grid .activity-card:nth-child(odd) {
        --activity-curve: 3deg;
        --activity-arc: 6px;
    }

    .activities-grid .activity-card:nth-child(even) {
        --activity-curve: -3deg;
        --activity-arc: 6px;
    }

    .safari-story-grid {
        grid-template-columns: 1fr;
    }

    .safari-story-copy {
        max-width: 680px;
    }

    .safari-story-gallery {
        min-height: 500px;
    }

    .room-listing-grid {
        grid-template-columns: 1fr;
    }

    .room-listing-card {
        display: grid;
        grid-template-columns: minmax(280px, .9fr) minmax(0, 1.1fr);
    }

    .room-listing-card .room-media-gallery {
        height: 100%;
        min-height: 330px;
    }

    .room-detail-layout {
        grid-template-columns: 1fr;
    }

    .room-booking-card {
        position: static;
    }

    .feature-band-inner {
        grid-template-columns: 1fr;
    }

    .pos-layout {
        height: auto;
        grid-template-columns: 1fr;
    }

    .pos-catalog {
        min-height: 500px;
    }

    .pos-ticket {
        min-height: 420px;
    }
}

@media (max-height: 760px) and (min-width: 981px) {
    .login-shell {
        min-height: calc(100vh - 24px);
        margin: 12px auto;
    }

    .login-shell .auth-brand-panel {
        padding: 24px;
    }

    .login-shell .auth-brand-panel img {
        width: 88px;
        height: 88px;
    }

    .login-shell .auth-brand-panel h1 {
        font-size: 1.9rem;
    }

    .login-shell .auth-form-panel {
        padding: 22px 28px;
    }

    .setup-shell .auth-brand-panel {
        padding: 24px;
    }

    .setup-shell .auth-brand-panel img {
        width: 88px;
        height: 88px;
    }

    .setup-shell .auth-brand-panel h1 {
        font-size: 1.85rem;
    }

    .setup-shell .auth-brand-panel p {
        font-size: .82rem;
    }

    .setup-shell .auth-form-panel {
        padding: 20px 28px;
    }
}

@media (max-width: 840px) {
    .app-shell .span-3,
    .app-shell .span-4,
    .app-shell .span-5,
    .app-shell .span-6 {
        grid-column: span 6;
    }

    .app-shell .span-7,
    .app-shell .span-8,
    .app-shell .span-9 {
        grid-column: span 12;
    }
}

@media (max-width: 720px) {
    .favicon-setting-layout {
        grid-template-columns: 72px minmax(0, 1fr);
    }

    .favicon-setting-layout .btn {
        grid-column: 1 / -1;
    }

    .favicon-preview {
        width: 72px;
        height: 72px;
    }

    .favicon-preview img {
        width: 52px;
        height: 52px;
    }

    .form-grid.two,
    .form-grid.three,
    .form-grid.four,
    .ticket-grid {
        grid-template-columns: 1fr;
    }

    .quick-strip {
        grid-template-columns: 1fr;
    }

    .span-3,
    .span-4,
    .span-5,
    .span-6,
    .span-7,
    .span-8,
    .span-9,
    .span-12 {
        grid-column: span 12;
    }

    .page-header {
        display: grid;
    }

    .app-shell .app-content {
        padding: 14px 12px 28px;
    }

    .app-shell .page-header {
        gap: 10px;
        margin-bottom: 12px;
    }

    .app-shell .page-header h1 {
        font-size: 1.38rem;
    }

    .page-actions {
        justify-content: flex-start;
    }

    .app-shell .page-actions {
        width: 100%;
    }

    .app-shell .page-actions .btn {
        flex: 1 1 auto;
    }

    .topbar {
        gap: 8px;
    }

    .app-shell .topbar {
        padding-inline: 12px;
    }

    .app-shell .content-grid {
        gap: 10px;
    }

    .app-shell .quick-strip {
        gap: 8px;
        margin-bottom: 12px;
    }

    .app-shell .metric-card {
        min-height: 92px;
        padding: 10px 12px;
    }

    .app-shell .card-header,
    .app-shell .card-body {
        padding: 12px;
    }

    .app-shell .card-body.flush {
        padding: 0;
    }

    .app-shell .data-table th,
    .app-shell .data-table td {
        padding: 8px 9px;
    }

    .app-shell .toolbar {
        align-items: stretch;
    }

    .app-shell .toolbar-group {
        width: 100%;
    }

    .app-shell .toolbar input,
    .app-shell .toolbar select {
        min-width: 0;
        flex: 1 1 140px;
    }

    .app-shell .pos-catalog {
        min-height: 440px;
    }

    .app-shell .pos-ticket {
        min-height: 360px;
    }

    .room-management-toolbar {
        display: grid;
    }

    .room-management-toolbar .page-actions {
        width: 100%;
    }

    .room-manager-grid,
    .room-image-admin-grid,
    .room-gallery-upload {
        grid-template-columns: 1fr;
    }

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

    .global-search,
    .business-date,
    .profile-trigger-info {
        display: none;
    }

    .public-links a:not(.btn) {
        display: none;
    }

    .public-topbar-inner {
        width: calc(100% - 28px);
        gap: 12px;
    }

    .public-topbar-kicker {
        display: none;
    }

    .public-topbar-contact a {
        padding-inline: 9px;
        font-size: .64rem;
    }

    .hero {
        min-height: 535px;
    }

    .hero-inner {
        padding-top: 60px;
    }

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

    .availability-box {
        grid-template-columns: 1fr;
    }

    .availability-box .btn {
        grid-column: auto;
    }

    .lodge-introduction {
        padding: 88px 18px 40px;
    }

    .lodge-introduction h2 {
        margin-top: 12px;
    }

    .lodge-introduction-copy p {
        font-size: .88rem;
        line-height: 1.72;
    }

    .lodge-introduction + .public-section {
        padding-top: 42px;
    }

    .room-types-grid {
        grid-template-columns: 1fr;
    }

    .activities-section {
        padding: 72px 18px 76px;
    }

    .activities-heading {
        margin-bottom: 30px;
    }

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

    .activities-page-hero {
        min-height: 500px;
        padding: 68px 22px 94px;
        text-align: center;
    }

    .activities-page-hero {
        background:
            linear-gradient(90deg, rgba(14,14,12,.84), rgba(17,16,13,.68)),
            linear-gradient(0deg, rgba(17,16,13,.64), transparent 55%),
            url("../images/website/activities/game-drive.jpg") center 56% / cover;
    }

    .activities-page-hero-inner,
    .activities-page-hero p {
        margin-inline: auto;
    }

    .activities-page-hero-actions {
        justify-content: center;
    }

    .contact-page-hero {
        min-height: 480px;
        padding: 66px 22px 100px;
        text-align: center;
        background:
            linear-gradient(90deg, rgba(15,14,12,.84), rgba(20,18,15,.64)),
            linear-gradient(0deg, rgba(18,17,14,.67), transparent 56%),
            url("../images/website/lodge-lounge.jpg") center 55% / cover;
    }

    .contact-page-hero-inner,
    .contact-page-hero p {
        margin-inline: auto;
    }

    .contact-details-section {
        width: min(100% - 28px, 620px);
        grid-template-columns: 1fr;
        margin-top: -48px;
    }

    .contact-detail-card {
        padding: 23px;
    }

    .contact-page-shell {
        width: min(100% - 28px, 620px);
        gap: 38px;
        padding: 76px 0 82px;
    }

    .contact-page-copy {
        text-align: center;
    }

    .contact-page-copy > p {
        margin-inline: auto;
    }

    .contact-assurance-list {
        width: min(100%, 470px);
        margin-inline: auto;
        text-align: left;
    }

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

    .contact-message-field {
        grid-column: auto;
    }

    .contact-location-band {
        min-height: 360px;
        align-items: flex-start;
        flex-direction: column;
        justify-content: center;
        text-align: center;
    }

    .contact-location-band > div,
    .contact-location-band h2 {
        margin-inline: auto;
    }

    .contact-location-band > .btn {
        margin-inline: auto;
    }

    .booking-page-hero {
        min-height: 0;
        padding: 68px 20px 92px;
    }

    .booking-page-copy h1 {
        font-size: clamp(3rem, 14vw, 4.7rem);
    }

    .booking-start-grid {
        grid-template-columns: 1fr;
    }

    .booking-room-preference {
        grid-column: auto;
    }

    .booking-journey-section,
    .booking-inspiration {
        width: min(100% - 28px, 620px);
    }

    .booking-journey-section {
        padding: 72px 0 80px;
    }

    .booking-journey-grid {
        grid-template-columns: 1fr;
    }

    .booking-inspiration {
        gap: 38px;
        padding-bottom: 80px;
    }

    .booking-inspiration-image {
        height: 390px;
    }

    .booking-inspiration-copy {
        text-align: center;
    }

    .booking-inspiration-actions {
        justify-content: center;
    }

    .activities-grid .activity-card,
    .activities-grid .activity-card:nth-child(odd),
    .activities-grid .activity-card:nth-child(even) {
        --activity-curve: 0deg;
        --activity-arc: 0px;
        --activity-z: 0px;
    }

    .activity-card {
        min-height: 405px;
    }

    .activities-cta {
        flex-direction: column;
        gap: 14px;
        text-align: center;
    }

    .activity-planning-section {
        width: min(100% - 28px, 620px);
        padding: 70px 0 76px;
    }

    .activity-planning-grid {
        grid-template-columns: 1fr;
    }

    .activity-planning-grid::before {
        top: 10%;
        right: auto;
        bottom: 10%;
        left: 50%;
        width: 1px;
        height: auto;
    }

    .rooms-listing-hero {
        min-height: 290px;
    }

    .rooms-listing-hero-inner {
        padding: 56px 0 75px;
    }

    .room-catalogue-shell,
    .room-detail-shell {
        width: min(100% - 28px, 680px);
    }

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

    .room-filter-search,
    .room-filter-submit {
        grid-column: span 2;
    }

    .room-filter-submit {
        width: 100%;
    }

    .room-results-heading,
    .room-detail-heading {
        align-items: flex-start;
        flex-direction: column;
    }

    .room-results-heading p {
        display: none;
    }

    .room-listing-card {
        display: flex;
    }

    .room-listing-card .room-media-gallery {
        height: 270px;
        min-height: 0;
    }

    .room-detail-rate {
        width: 100%;
        text-align: left;
    }

    .room-detail-gallery .room-media-gallery {
        height: 390px;
        border-radius: 18px;
    }

    .room-detail-layout {
        margin-top: 34px;
    }

    .room-detail-facts {
        grid-template-columns: 1fr;
    }

    .room-detail-facts article {
        min-height: 78px;
    }

    .safari-story {
        padding-top: 16px;
    }

    .safari-story-gallery {
        min-height: 390px;
    }

    .safari-story-main {
        inset: 0 50px 45px 0;
    }

    .safari-story-secondary {
        width: 52%;
        height: 45%;
    }

    .ticket-head {
        align-items: flex-start;
    }

    .ticket-reference {
        max-width: 130px;
    }

    .ticket-arrival,
    .ticket-validation {
        grid-template-columns: 1fr;
    }

    .ticket-arrival-location {
        grid-column: auto;
    }

    .ticket-foot {
        flex-direction: column;
        gap: 5px;
    }
}

/* Professional procurement workspace */
.line-editor { margin-top: 14px; border: 1px solid var(--line); border-radius: 14px; overflow: hidden; }
.line-editor-head { display:flex; justify-content:space-between; align-items:center; padding:10px 12px; background:#faf6f0; }
.procurement-line { display:grid; grid-template-columns:minmax(220px,2fr) repeat(3,minmax(120px,1fr)) 34px; gap:9px; align-items:end; padding:10px 12px; border-top:1px solid var(--line); }
.procurement-line.po-line { grid-template-columns:minmax(220px,2fr) repeat(3,minmax(115px,1fr)) 34px; }
.procurement-line .field { margin:0; }
.document-facts { display:grid; grid-template-columns:repeat(auto-fit,minmax(140px,1fr)); gap:9px; margin-bottom:16px; }
.document-facts > span { padding:10px 12px; border:1px solid var(--line); border-radius:11px; background:#fcfaf7; }
.document-facts small { display:block; color:var(--muted); text-transform:uppercase; font-size:.62rem; letter-spacing:.06em; }
.document-facts strong { display:block; margin-top:3px; font-size:.82rem; text-transform:capitalize; }
.document-total { display:flex; justify-content:flex-end; align-items:center; gap:24px; margin-top:14px; font-size:1rem; }
.document-total strong { color:var(--orange-dark); font-size:1.35rem; }
.procurement-actions { flex-wrap:wrap; }
.procurement-actions form { margin:0; }
.receiving-table input { min-width:92px; max-width:135px; }
.match-banner { display:flex; justify-content:space-between; align-items:center; gap:12px; padding:12px 14px; margin-bottom:14px; border-radius:12px; }
.match-banner.matched { color:#166534; background:#dcfce7; }
.match-banner.exception { color:#991b1b; background:#fee2e2; }
.approval-panel { margin-top:16px; padding:14px; border:1px solid #bbdfc5; border-radius:12px; background:#f3fbf5; }
.procurement-workbench { margin-bottom:14px; }
.workbench-list { display:flex; flex-wrap:wrap; gap:8px; }
.workbench-list > span { display:flex; align-items:center; gap:7px; padding:7px 8px 7px 11px; border:1px solid var(--line); border-radius:11px; background:#fff; }
.workbench-list small { color:var(--muted); }
@media(max-width:900px){.procurement-line,.procurement-line.po-line{grid-template-columns:1fr 1fr}.procurement-line .icon-btn{align-self:center}.receiving-table input{min-width:80px}}
@media(max-width:560px){.procurement-line,.procurement-line.po-line{grid-template-columns:1fr}.document-facts{grid-template-columns:1fr 1fr}}

/* Accounting statements */
.accounting-report .card-header {
    align-items: center;
}

.financial-table .number-cell {
    text-align: right;
    white-space: nowrap;
}

.financial-table tfoot th {
    border-top: 2px solid var(--border);
    background: #f6f3ec;
}

.balance-sheet-summary {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 10px;
    margin-bottom: 14px;
}

.balance-sheet-summary article {
    padding: 13px 15px;
    border: 1px solid var(--border);
    border-radius: 13px;
    background: linear-gradient(145deg, #fff, #f8f5ee);
    box-shadow: 0 8px 20px rgba(40, 34, 24, .05);
}

.balance-sheet-summary span,
.balance-sheet-summary strong {
    display: block;
}

.balance-sheet-summary span {
    margin-bottom: 5px;
    color: var(--muted);
    font-size: .69rem;
    font-weight: 700;
    letter-spacing: .06em;
    text-transform: uppercase;
}

.balance-sheet-summary strong {
    color: var(--ink);
    font-family: var(--display-font);
    font-size: clamp(1rem, 1.8vw, 1.32rem);
}

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

.statement-column {
    overflow: hidden;
    border: 1px solid var(--border);
    border-radius: 13px;
    background: #fff;
}

.statement-heading,
.statement-row,
.statement-total {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    padding: 10px 13px;
}

.statement-heading {
    color: #fff;
    background: linear-gradient(135deg, #28362d, #435541);
    font-weight: 800;
}

.statement-heading.equity-heading {
    margin-top: 12px;
    background: linear-gradient(135deg, #5b4027, #8a633c);
}

.statement-row {
    border-bottom: 1px solid #eee9de;
    color: var(--ink-soft);
    font-size: .8rem;
}

.statement-row span {
    min-width: 0;
}

.statement-row small {
    display: inline-block;
    min-width: 46px;
    margin-right: 8px;
    color: var(--muted);
    font-size: .67rem;
}

.statement-row strong,
.statement-total strong {
    white-space: nowrap;
}

.statement-total {
    border-top: 2px solid var(--ink);
    background: #f7f3ea;
    color: var(--ink);
    font-weight: 850;
}

.accounting-balance-check {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin-top: 15px;
    padding: 11px 14px;
    border-radius: 11px;
    font-size: .79rem;
}

.accounting-balance-check.is-balanced {
    border: 1px solid rgba(29, 122, 76, .22);
    color: #17653f;
    background: #eef9f2;
}

.accounting-balance-check.is-unbalanced {
    border: 1px solid rgba(190, 52, 52, .22);
    color: #9a2d2d;
    background: #fff1f1;
}

.amount-negative {
    color: #b63a3a !important;
}

@media (max-width: 980px) {
    .balance-sheet-summary {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 720px) {
    .financial-statement-grid,
    .balance-sheet-summary {
        grid-template-columns: 1fr;
    }

    .accounting-balance-check {
        align-items: flex-start;
        flex-direction: column;
    }
}

@media (max-width: 540px) {
    .amenity-checkbox-grid {
        grid-template-columns: 1fr;
    }

    .public-topbar-inner {
        width: calc(100% - 20px);
        flex-wrap: wrap;
        justify-content: center;
        gap: 4px 12px;
        padding: 5px 0;
    }

    .contact-form-card {
        padding: 22px 18px;
    }

    .contact-form-card::before {
        display: none;
    }

    .contact-page-hero h1 {
        font-size: clamp(2.85rem, 15vw, 4rem);
    }

    .booking-start-card {
        padding: 22px 18px;
    }

    .booking-start-card::before,
    .booking-inspiration-image::before {
        display: none;
    }

    .booking-start-card-head {
        align-items: flex-start;
    }

    .booking-inspiration-image {
        height: 310px;
    }

    .public-socials {
        justify-content: center;
    }

    .public-topbar-contact {
        width: 100%;
        justify-content: center;
        padding-top: 4px;
        border-top: 1px solid #d2cec7;
    }

    .public-topbar-contact a:first-child {
        padding-left: 0;
    }

    .public-topbar-contact a:last-child {
        padding-right: 0;
    }

    .rooms-listing-hero-inner {
        width: calc(100% - 28px);
    }

    .room-filter-grid {
        grid-template-columns: 1fr;
    }

    .room-filter-search,
    .room-filter-submit {
        grid-column: auto;
    }

    .room-filter-heading {
        align-items: flex-start;
    }

    .room-listing-card-head,
    .room-listing-actions,
    .room-card-footer {
        align-items: flex-start;
        flex-direction: column;
    }

    .room-price-right {
        text-align: left;
    }

    .room-listing-actions,
    .room-listing-actions .btn,
    .public-room-actions,
    .public-room-actions .btn {
        width: 100%;
    }

    .room-detail-gallery .room-media-gallery {
        height: 310px;
    }

    .room-detail-amenities {
        grid-template-columns: 1fr;
    }

    .room-booking-card {
        padding: 18px;
    }

    .activities-section {
        padding-inline: 14px;
    }

    .activity-card {
        min-height: 370px;
        border-radius: 18px;
    }

    .activity-card-content {
        padding: 26px 22px 23px;
    }

    .activity-card h3 {
        font-size: 1.6rem;
    }

    .hero-depth-sun {
        right: -55px;
        width: 190px;
    }

    .hero-depth-grass-back {
        height: 95px;
    }

    .hero-depth-grass-front {
        height: 78px;
    }

    .introduction-depth-baobab {
        left: -8px;
        opacity: .07;
        transform: translate3d(0, var(--introduction-tree-y, 0), 0) scale(.78);
        transform-origin: bottom left;
    }

    .login-shell .auth-brand-panel {
        min-height: 0;
        flex-direction: column;
        padding: 20px;
    }

    .login-shell .auth-brand-panel img {
        width: 68px;
        height: 68px;
    }

    .login-shell .auth-brand-panel h1 {
        font-size: 1.5rem;
    }

    .login-shell .auth-form-panel {
        padding: 22px 20px;
    }

    .setup-shell .auth-brand-panel {
        min-height: 0;
        flex-direction: column;
        align-items: center;
        padding: 20px;
    }

    .setup-shell .auth-brand-panel img {
        width: 68px;
        height: 68px;
    }

    .setup-shell .auth-brand-panel h1 {
        font-size: 1.5rem;
    }

    .setup-shell .auth-form-panel {
        padding: 20px;
    }
}

@media (prefers-reduced-motion: reduce) {
    .hero-depth-scene > span,
    .hero-mark img,
    .introduction-depth-scene > span,
    .activities-section::after,
    .public-room-card.depth-card,
    .activity-card,
    .public-room-card.depth-card .room-media-main,
    .activity-card > img,
    .safari-story-gallery img {
        animation: none;
        transform: none !important;
        transition: none;
    }

    .hero-depth-dust {
        opacity: .48;
    }
}

.hr-tabs {
    margin-bottom: 14px;
    overflow-x: auto;
    scrollbar-width: thin;
}

.hr-filter input[type="search"] {
    min-width: 230px;
}

.compact-actions {
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 12px;
}

.compact-actions .muted {
    max-width: 700px;
    margin: 0;
}

.inline-actions {
    display: flex;
    gap: 5px;
}

.shift-dot {
    display: inline-block;
    width: 9px;
    height: 9px;
    margin-right: 6px;
    border-radius: 50%;
}

.hr-employee-form {
    display: grid;
    gap: 12px;
}

.hr-form-section {
    padding: 14px;
    border: 1px solid var(--line);
    border-radius: 14px;
    background: color-mix(in srgb, var(--paper) 94%, var(--orange) 6%);
}

.hr-form-section h3 {
    margin: 0 0 12px;
    color: var(--ink);
    font-size: .88rem;
    letter-spacing: .04em;
    text-transform: uppercase;
}

.hr-form-section .field {
    margin-bottom: 0;
}

.hr-report-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 12px;
    margin-bottom: 12px;
}

.report-stat {
    display: grid;
    gap: 7px;
    padding: 17px;
}

.report-stat > span {
    color: var(--muted);
    font-size: .78rem;
    font-weight: 800;
    letter-spacing: .04em;
    text-transform: uppercase;
}

.report-stat > strong {
    color: var(--ink);
    font-size: clamp(1.25rem, 2vw, 1.8rem);
}

.report-stat > small {
    color: var(--muted);
    line-height: 1.45;
}

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

.hr-compliance-note {
    margin-top: 12px;
    border-left: 4px solid var(--orange);
}

.hr-compliance-note p,
.hr-payroll-disclaimer p {
    margin: 5px 0 0;
    color: var(--muted);
    line-height: 1.55;
}

.hr-payroll-disclaimer {
    padding: 13px 14px;
    border: 1px solid rgba(234, 90, 20, .2);
    border-radius: 12px;
    background: var(--orange-soft);
}

@media (max-width: 980px) {
    .hr-report-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 680px) {
    .hr-filter .toolbar-group,
    .compact-actions {
        align-items: stretch;
        flex-direction: column;
    }

    .hr-filter input[type="search"] {
        min-width: 0;
        width: 100%;
    }

    .hr-report-grid,
    .hr-report-columns {
        grid-template-columns: 1fr;
    }

    .hr-form-section {
        padding: 11px;
    }
}

@media print {
    .no-print,
    .public-topbar,
    .public-nav,
    .sidebar,
    .topbar,
    .page-actions,
    .toolbar {
        display: none !important;
    }

    .whatsapp-chat,
    .swal2-container {
        display: none !important;
    }

    body,
    .public-page,
    .app-main,
    .app-content {
        margin: 0;
        padding: 0;
        background: #fff;
    }

    .ticket {
        width: 100%;
        margin: 0;
        border: 1px solid #222;
        border-radius: 14px;
        box-shadow: none;
        break-inside: avoid;
        -webkit-print-color-adjust: exact;
        print-color-adjust: exact;
    }

    @page {
        size: A4;
        margin: 12mm;
    }

    .card {
        box-shadow: none;
    }
}

/* Immersive POS workstation */
.app-shell .pos-workstation {
    --pos-bg: #080d16;
    --pos-panel: #101827;
    --pos-panel-soft: #151f30;
    --pos-border: #263247;
    --pos-text: #f4f7fb;
    --pos-muted: #8f9aae;
    height: calc(100vh - 154px);
    min-height: 590px;
    grid-template-columns: minmax(0, 1fr) 360px;
    grid-template-rows: auto minmax(0, 1fr);
    gap: 10px;
    padding: 10px;
    overflow: hidden;
    border: 1px solid #1d293c;
    border-radius: 18px;
    color: var(--pos-text);
    background: var(--pos-bg);
    box-shadow: 0 24px 55px rgba(3, 7, 14, .28);
}

.pos-terminal-bar {
    grid-column: 1 / -1;
    min-width: 0;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    padding: 8px 10px 10px;
    border-bottom: 1px solid var(--pos-border);
}

.pos-terminal-brand,
.pos-terminal-context,
.pos-terminal-brand > span:last-child,
.pos-cashier,
.pos-clock {
    display: flex;
    align-items: center;
}

.pos-terminal-brand {
    gap: 10px;
}

.pos-terminal-brand > span:last-child,
.pos-cashier,
.pos-clock {
    align-items: flex-start;
    flex-direction: column;
}

.pos-terminal-brand strong {
    font-size: .9rem;
    letter-spacing: .03em;
}

.pos-terminal-brand small,
.pos-terminal-context small,
.pos-terminal-context label > span {
    color: var(--pos-muted);
    font-size: .58rem;
    font-weight: 750;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.pos-live-dot {
    width: 10px;
    height: 10px;
    border: 2px solid rgba(65, 211, 132, .25);
    border-radius: 50%;
    background: #41d384;
    box-shadow: 0 0 0 4px rgba(65, 211, 132, .11), 0 0 16px rgba(65, 211, 132, .55);
}

.pos-terminal-context {
    min-width: 0;
    justify-content: flex-end;
    gap: 10px;
}

.pos-terminal-context label {
    display: grid;
    gap: 3px;
}

.pos-terminal-context select {
    min-width: 150px;
    height: 33px;
    padding: 5px 30px 5px 9px;
    border-color: var(--pos-border);
    color: var(--pos-text);
    background-color: var(--pos-panel-soft);
    font-size: .75rem;
}

.pos-cashier,
.pos-clock {
    min-width: 80px;
    gap: 2px;
    padding: 0 9px;
    border-left: 1px solid var(--pos-border);
}

.pos-cashier strong,
.pos-clock strong {
    max-width: 130px;
    overflow: hidden;
    color: var(--pos-text);
    font-size: .72rem;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.pos-toolbar-action,
.pos-fullscreen-button {
    min-height: 34px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 7px;
    padding: 7px 11px;
    border: 1px solid var(--pos-border);
    border-radius: 9px;
    color: #dce4f0;
    background: #172235;
    font-size: .7rem;
    font-weight: 750;
    cursor: pointer;
    text-decoration: none;
    transition: border-color .2s ease, background .2s ease, transform .2s ease;
}

.pos-toolbar-action:hover,
.pos-fullscreen-button:hover {
    transform: translateY(-1px);
    border-color: #52627b;
    color: #fff;
    background: #202d43;
}

.app-shell .pos-workstation .pos-catalog,
.app-shell .pos-workstation .pos-ticket {
    border-color: var(--pos-border);
    border-radius: 13px;
    color: var(--pos-text);
    background: var(--pos-panel);
    box-shadow: none;
}

.app-shell .pos-workstation .pos-categories {
    gap: 7px;
    padding: 11px;
    border-bottom-color: var(--pos-border);
    background: #0d1522;
}

.pos-workstation .pos-categories .tab {
    flex: 0 0 auto;
    padding: 8px 12px;
    border: 1px solid #2c3950;
    border-radius: 9px;
    color: #aeb8c9;
    background: #172235;
    font-size: .7rem;
}

.pos-workstation .pos-categories .tab:hover {
    color: #fff;
    border-color: #4a5a73;
}

.pos-workstation .pos-categories .tab.active {
    border-color: #ff7a2e;
    color: #fff;
    background: #d95713;
    box-shadow: 0 7px 18px rgba(229, 88, 14, .25);
}

.pos-workstation #pos-search,
.pos-workstation input,
.pos-workstation select {
    border-color: var(--pos-border);
    color: var(--pos-text);
    background-color: #0c1421;
}

.pos-workstation input::placeholder {
    color: #69758a;
}

.pos-workstation select option {
    color: #fff;
    background: #111a29;
}

.pos-workstation .field > span {
    color: var(--pos-muted);
}

.app-shell .pos-workstation .pos-products {
    grid-template-columns: repeat(auto-fill, minmax(138px, 1fr));
    gap: 9px;
    padding: 11px;
}

.app-shell .pos-workstation .product-card {
    --product-color: #ff7a2e;
    position: relative;
    min-height: 118px;
    padding: 13px;
    overflow: hidden;
    border: 1px solid #2a374c;
    border-top: 3px solid var(--product-color);
    border-radius: 12px;
    color: var(--pos-text);
    background: #182235;
    box-shadow: 0 7px 18px rgba(0, 0, 0, .14);
}

.app-shell .pos-workstation .product-card:nth-child(6n + 2) { --product-color: #2dc7b3; }
.app-shell .pos-workstation .product-card:nth-child(6n + 3) { --product-color: #f4bf4f; }
.app-shell .pos-workstation .product-card:nth-child(6n + 4) { --product-color: #8c7cf0; }
.app-shell .pos-workstation .product-card:nth-child(6n + 5) { --product-color: #e86783; }
.app-shell .pos-workstation .product-card:nth-child(6n + 6) { --product-color: #55a8f6; }

.app-shell .pos-workstation .product-card:hover {
    transform: translateY(-3px);
    border-color: var(--product-color);
    border-top-color: var(--product-color);
    background: #202d43;
    box-shadow: 0 12px 25px rgba(0, 0, 0, .24);
}

.app-shell .pos-workstation .product-card strong {
    color: #f8fafc;
    font-size: .8rem;
    line-height: 1.3;
}

.app-shell .pos-workstation .product-card small {
    color: var(--pos-muted);
}

.app-shell .pos-workstation .product-card .price {
    align-self: flex-start;
    padding: 5px 7px;
    border-radius: 7px;
    color: #fff;
    background: color-mix(in srgb, var(--product-color) 28%, #111827);
    font-size: .76rem;
}

/* Inventory and production catalogue imagery */
.catalogue-item-cell {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    min-width: 210px;
}

.catalogue-thumb,
.production-thumb {
    width: 46px;
    height: 46px;
    flex: 0 0 46px;
    border-radius: 11px;
    object-fit: cover;
    border: 1px solid var(--line);
    background: #f4ede3;
    box-shadow: 0 4px 10px rgba(48, 35, 21, .08);
}

.catalogue-placeholder {
    display: inline-grid;
    place-items: center;
    color: var(--orange-dark);
    background: linear-gradient(145deg, #f7efe4, #eadbc8);
}

.catalogue-placeholder.large { width: 88px; height: 88px; border-radius: 18px; font-size: 1.8rem; }
.catalogue-edit-image { display: grid; width: 180px; height: 150px; object-fit: cover; border-radius: 16px; margin-bottom: 12px; }
.catalogue-inactive { opacity: .62; }
.table-subtext { display: block; margin-top: 3px; color: var(--muted); }
.table-actions { display: flex; align-items: center; gap: 6px; white-space: nowrap; }
.table-actions form { margin: 0; }

.inventory-form-layout {
    display: grid;
    grid-template-columns: minmax(160px, 190px) minmax(0, 1fr);
    gap: 20px;
    align-items: start;
}

.image-upload-panel {
    min-height: 210px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 7px;
    padding: 16px;
    border: 1px dashed #d8b898;
    border-radius: 16px;
    background: #fffaf4;
    text-align: center;
}
.image-upload-panel small { color: var(--muted); }
.image-upload-panel input { width: 100%; font-size: .78rem; }
.compact-checks { display: flex; flex-wrap: wrap; gap: 8px 16px; margin-top: 10px; font-size: .82rem; }
.compact-checks label { display: inline-flex; align-items: center; gap: 6px; }

.production-item { display: flex; align-items: center; gap: 9px; }
.production-thumb { width: 38px; height: 38px; flex-basis: 38px; border-color: rgba(255,255,255,.12); }

.app-shell .pos-workstation .product-card { padding: 0; min-height: 190px; }
.app-shell .pos-workstation .product-card-media { display: block; height: 92px; overflow: hidden; background: #222d3e; }
.app-shell .pos-workstation .product-card-media img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .35s ease; }
.app-shell .pos-workstation .product-card:hover .product-card-media img { transform: scale(1.06); }
.app-shell .pos-workstation .product-card-placeholder { display: grid; height: 100%; place-items: center; color: var(--product-color); font-size: 1.6rem; }
.app-shell .pos-workstation .product-card-copy { padding: 0 11px; }
.app-shell .pos-workstation .product-card .price { margin: 0 11px 11px; }

@media (max-width: 720px) {
    .inventory-form-layout { grid-template-columns: 1fr; }
    .image-upload-panel { min-height: 150px; }
    .catalogue-edit-image { width: 100%; height: 180px; }
}

.app-shell .pos-workstation .pos-ticket-head {
    padding: 12px;
    border-bottom-color: var(--pos-border);
    background: #0d1522;
}

.app-shell .pos-workstation .pos-ticket-items {
    padding: 5px 12px;
    background: #111a29;
}

.pos-workstation .pos-ticket-items .empty-state {
    color: #d8e0ea;
}

.pos-workstation .pos-ticket-items .empty-state-icon {
    color: #ff8a49;
    background: rgba(255, 122, 46, .12);
}

.pos-workstation .pos-ticket-items .empty-state p,
.pos-workstation .ticket-item small {
    color: var(--pos-muted);
}

.app-shell .pos-workstation .ticket-item {
    border-bottom-color: var(--pos-border);
}

.pos-workstation .quantity-control button {
    border-color: #344158;
    color: #e7edf5;
    background: #1c283b;
}

.pos-workstation .quantity-control button:hover {
    border-color: #ff7a2e;
    background: #2a3446;
}

.app-shell .pos-workstation .pos-ticket-total {
    padding: 13px;
    border-top-color: var(--pos-border);
    background: #0b121e;
}

.pos-workstation .total-row {
    color: var(--pos-muted);
}

.pos-workstation .total-row.grand {
    border-top-color: #354158;
    color: #fff;
    font-size: 1.14rem;
}

.pos-workstation #pos-discount-btn {
    border-color: rgba(244, 191, 79, .45);
    color: #ffd779;
    background: rgba(244, 191, 79, .08);
}

.pos-workstation #pos-submit {
    min-height: 42px;
    border-color: #28a868;
    color: #06150e;
    background: #42d486;
    box-shadow: 0 9px 22px rgba(66, 212, 134, .19);
}

.pos-workstation #pos-submit:hover {
    background: #62e39e;
}

.pos-workstation .pos-products,
.pos-workstation .pos-ticket-items,
.pos-workstation .pos-categories {
    scrollbar-color: #3a475d #0d1522;
    scrollbar-width: thin;
}

.pos-workstation:fullscreen,
.pos-workstation.is-fullscreen {
    width: 100vw;
    height: 100vh !important;
    min-height: 100vh;
    margin: 0;
    padding: 12px;
    border: 0;
    border-radius: 0;
    background: var(--pos-bg);
}

.pos-workstation:fullscreen .pos-terminal-bar,
.pos-workstation.is-fullscreen .pos-terminal-bar {
    padding-inline: 12px;
}

@media (max-width: 980px) {
    .app-shell .pos-workstation {
        height: auto;
        min-height: 0;
        grid-template-columns: 1fr;
        grid-template-rows: auto minmax(480px, auto) minmax(420px, auto);
    }

    .pos-terminal-bar {
        align-items: flex-start;
        flex-direction: column;
    }

    .pos-terminal-context {
        width: 100%;
        flex-wrap: wrap;
        justify-content: flex-start;
    }

    .pos-workstation:fullscreen,
    .pos-workstation.is-fullscreen {
        height: 100vh !important;
        grid-template-columns: minmax(0, 1fr) 340px;
        grid-template-rows: auto minmax(0, 1fr);
    }
}

@media (max-width: 720px) {
    .pos-terminal-context label,
    .pos-terminal-context select {
        width: 100%;
    }

    .pos-cashier {
        border-left: 0;
        padding-left: 0;
    }

    .pos-workstation:fullscreen,
    .pos-workstation.is-fullscreen {
        overflow-y: auto;
        grid-template-columns: 1fr;
        grid-template-rows: auto minmax(460px, auto) minmax(420px, auto);
    }
}

/* Reservation report paper */
.reservation-report-paper {
    width: min(100%, 1180px);
    min-height: 780px;
    margin: 0 auto 28px;
    padding: 28px 32px 20px;
    color: #20231f;
    background: #fff;
    box-shadow: 0 16px 45px rgba(36, 31, 24, .11);
}

.reservation-report-letterhead {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 24px;
    padding-bottom: 16px;
    border-bottom: 2px solid #222a22;
}

.reservation-report-brand,
.reservation-report-document {
    display: flex;
    align-items: center;
    gap: 12px;
}

.reservation-report-brand img {
    width: 54px;
    height: 54px;
    object-fit: contain;
    border-radius: 9px;
    background: #f2eee5;
}

.reservation-report-brand strong,
.reservation-report-brand span,
.reservation-report-document span,
.reservation-report-document strong,
.reservation-report-document small {
    display: block;
}

.reservation-report-brand strong {
    font-family: var(--display-font);
    font-size: 1.06rem;
    letter-spacing: .01em;
}

.reservation-report-brand span,
.reservation-report-document small {
    margin-top: 2px;
    color: #74786f;
    font-size: .67rem;
}

.reservation-report-document {
    align-items: flex-end;
    flex-direction: column;
    gap: 1px;
    text-align: right;
}

.reservation-report-document span {
    color: #7b5833;
    font-size: .61rem;
    font-weight: 850;
    letter-spacing: .14em;
    text-transform: uppercase;
}

.reservation-report-document strong {
    font-size: .78rem;
    letter-spacing: .05em;
}

.reservation-report-title {
    padding: 22px 0 18px;
}

.reservation-report-title span {
    color: #6b4b2d;
    font-size: .69rem;
    font-weight: 850;
    letter-spacing: .12em;
    text-transform: uppercase;
}

.reservation-report-title h2 {
    margin: 4px 0 3px;
    color: #20251f;
    font-family: var(--display-font);
    font-size: clamp(1.35rem, 3vw, 2rem);
}

.reservation-report-title p {
    margin: 0;
    color: #74786f;
    font-size: .7rem;
}

.reservation-report-kpis {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1px;
    margin-bottom: 20px;
    overflow: hidden;
    border: 1px solid #e4e0d7;
    border-radius: 10px;
    background: #e4e0d7;
}

.reservation-report-kpis.compact {
    grid-template-columns: repeat(4, minmax(0, 1fr));
}

.reservation-report-kpis > div {
    min-width: 0;
    padding: 11px 13px;
    background: #faf9f6;
}

.reservation-report-kpis span,
.reservation-report-kpis strong,
.reservation-report-kpis small {
    display: block;
}

.reservation-report-kpis span {
    color: #73786f;
    font-size: .61rem;
    font-weight: 800;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.reservation-report-kpis strong {
    margin: 3px 0 1px;
    overflow: hidden;
    color: #20251f;
    font-size: 1.08rem;
    line-height: 1.15;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.reservation-report-kpis small {
    overflow: hidden;
    color: #7b7f77;
    font-size: .62rem;
    text-overflow: ellipsis;
    white-space: nowrap;
}

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

.reservation-report-section {
    margin-bottom: 20px;
}

.reservation-report-section-head {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 14px;
    margin-bottom: 7px;
    padding-bottom: 6px;
    border-bottom: 1px solid #31372f;
}

.reservation-report-section-head h3 {
    margin: 0;
    color: #272d26;
    font-family: var(--display-font);
    font-size: .89rem;
}

.reservation-report-section-head span {
    color: #7a7e75;
    font-size: .61rem;
}

.reservation-report-table-wrap {
    width: 100%;
    overflow-x: auto;
}

.reservation-report-table {
    width: 100%;
    border: 0;
    border-collapse: separate;
    border-spacing: 0;
    color: #30352e;
    font-size: .67rem;
}

.reservation-report-table th,
.reservation-report-table td {
    padding: 7px 8px;
    border: 0 !important;
    text-align: left;
    vertical-align: top;
}

.reservation-report-table th {
    color: #6e736a;
    background: #f2f0e9;
    font-size: .56rem;
    font-weight: 850;
    letter-spacing: .07em;
    text-transform: uppercase;
}

.reservation-report-table tbody tr:nth-child(even) td {
    background: #fcfbf8;
}

.reservation-report-table td strong,
.reservation-report-table td small {
    display: block;
}

.reservation-report-table td strong {
    color: #252a24;
    font-size: .68rem;
}

.reservation-report-table td small {
    margin-top: 2px;
    color: #7a7e75;
    font-size: .58rem;
    line-height: 1.35;
}

.reservation-report-table .num {
    text-align: right;
    white-space: nowrap;
}

.reservation-report-register {
    min-width: 900px;
}

.reservation-report-insights {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 16px;
    margin: 2px 0 20px;
    padding: 13px 15px;
    border-radius: 9px;
    color: #f6f2e9;
    background: #29332b;
}

.reservation-report-insights span,
.reservation-report-insights strong {
    display: block;
}

.reservation-report-insights span {
    color: #bfc8bc;
    font-size: .57rem;
    letter-spacing: .07em;
    text-transform: uppercase;
}

.reservation-report-insights strong {
    margin-top: 3px;
    font-size: .78rem;
}

.reservation-report-empty {
    padding: 28px 16px;
    color: #777c73;
    background: #faf9f6;
    text-align: center;
    font-size: .72rem;
}

.reservation-report-footer {
    display: grid;
    grid-template-columns: 1fr auto auto;
    gap: 18px;
    margin-top: 28px;
    padding-top: 10px;
    border-top: 1px solid #d9d5cb;
    color: #858980;
    font-size: .57rem;
}

.reservation-report-footer strong {
    color: #4e554d;
}

@media (max-width: 900px) {
    .reservation-report-paper {
        padding: 20px;
    }

    .reservation-report-kpis,
    .reservation-report-kpis.compact {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .reservation-report-columns {
        grid-template-columns: 1fr;
        gap: 0;
    }
}

@media (max-width: 620px) {
    .reservation-report-paper {
        padding: 15px 13px;
        box-shadow: none;
    }

    .reservation-report-letterhead {
        align-items: flex-start;
        gap: 12px;
    }

    .reservation-report-brand img {
        width: 42px;
        height: 42px;
    }

    .reservation-report-brand strong {
        font-size: .86rem;
    }

    .reservation-report-document small,
    .reservation-report-brand span {
        font-size: .56rem;
    }

    .reservation-report-kpis,
    .reservation-report-kpis.compact,
    .reservation-report-insights {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .reservation-report-footer {
        grid-template-columns: 1fr;
        gap: 3px;
    }
}

@media print {
    @page {
        size: A4 landscape;
        margin: 9mm;
    }

    body {
        background: #fff !important;
    }

    body * {
        visibility: hidden;
    }

    .reservation-report-paper,
    .reservation-report-paper * {
        visibility: visible;
    }

    .reservation-report-paper {
        position: absolute;
        inset: 0;
        width: 100%;
        min-height: 0;
        margin: 0;
        padding: 0;
        box-shadow: none;
    }

    .reservation-report-table-wrap {
        overflow: visible;
    }

    .reservation-report-section,
    .reservation-report-kpis,
    .reservation-report-insights {
        break-inside: avoid;
    }

    .reservation-report-table {
        font-size: 7pt;
    }

    .reservation-report-table th,
    .reservation-report-table td {
        padding: 4px 5px;
    }
}
/* Ku-Wa Intelligence assistant */
.ai-assistant{position:fixed;z-index:1300;inset:0;pointer-events:none}.ai-assistant-fab{pointer-events:auto;position:absolute;right:22px;bottom:22px;height:52px;border:0;border-radius:18px;padding:0 17px 0 8px;background:#15221a;color:#fff;display:flex;align-items:center;gap:10px;box-shadow:0 14px 35px rgba(16,32,22,.27);cursor:pointer;overflow:hidden;transition:.25s transform,.25s box-shadow}.ai-assistant-fab:hover{transform:translateY(-3px);box-shadow:0 18px 42px rgba(16,32,22,.34)}.ai-fab-glow{position:absolute;inset:-30px auto auto -30px;width:80px;height:80px;background:rgba(255,101,24,.3);filter:blur(14px)}.ai-fab-icon{position:relative;display:grid;place-items:center;width:36px;height:36px;border-radius:13px;background:linear-gradient(145deg,#ff7b31,#f14c05);font-weight:900;font-size:12px;letter-spacing:.04em}.ai-fab-label{font-weight:800;font-size:13px}.ai-assistant-backdrop{position:absolute;inset:0;background:rgba(8,15,11,.24);opacity:0;transition:opacity .26s;pointer-events:none;backdrop-filter:blur(2px)}.ai-assistant-drawer{pointer-events:auto;position:absolute;right:0;top:0;bottom:0;width:min(470px,100vw);background:#f6f5f0;box-shadow:-22px 0 55px rgba(10,20,14,.2);display:grid;grid-template-rows:auto auto minmax(0,1fr) auto;transform:translateX(104%);transition:transform .34s cubic-bezier(.2,.75,.25,1);overflow:hidden}.ai-assistant.is-open .ai-assistant-drawer{transform:none}.ai-assistant.is-open .ai-assistant-backdrop{opacity:1;pointer-events:auto}.ai-assistant.is-open .ai-assistant-fab{opacity:0;pointer-events:none}.ai-assistant-head{min-height:72px;padding:13px 15px;background:linear-gradient(135deg,#111d16,#203127);color:#fff;display:flex;align-items:center;gap:11px}.ai-assistant-head>div:nth-child(2){min-width:0;flex:1}.ai-assistant-head strong{display:block;font-size:15px}.ai-assistant-head small{display:flex;align-items:center;gap:6px;color:#bdc8c0;font-size:10px;margin-top:3px}.ai-assistant-head small i{width:6px;height:6px;border-radius:50%;background:#56d589;box-shadow:0 0 0 4px rgba(86,213,137,.12)}.ai-assistant-mark{width:43px;height:43px;border-radius:15px;display:grid;place-items:center;background:#ff6518;color:#fff;font-size:12px;font-weight:900;position:relative;overflow:hidden;box-shadow:inset 0 0 0 1px rgba(255,255,255,.22)}.ai-assistant-mark span{position:absolute;width:31px;height:31px;border:1px solid rgba(255,255,255,.35);border-radius:50%;animation:aiOrbit 5s linear infinite}.ai-assistant-icon-btn{border:1px solid rgba(255,255,255,.16);color:#fff;background:rgba(255,255,255,.07);width:32px;height:32px;border-radius:10px;font-size:18px;cursor:pointer}.ai-assistant-icon-btn:hover{background:rgba(255,255,255,.14)}.ai-assistant-context{padding:10px 16px;border-bottom:1px solid #e0ded6;background:#fff;display:grid;grid-template-columns:auto 1fr;gap:1px 8px;align-items:center}.ai-assistant-context span{text-transform:uppercase;letter-spacing:.12em;font-size:8px;font-weight:900;color:#f05a13}.ai-assistant-context strong{font-size:11px;color:#1d2a22;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ai-assistant-context small{grid-column:2;color:#7d877f;font-size:9px}.ai-assistant-messages{overflow:auto;padding:19px 16px 24px;scrollbar-width:thin}.ai-welcome{text-align:center;padding:20px 3px}.ai-welcome-orbit{position:relative;margin:0 auto 17px;width:67px;height:67px;border-radius:24px;background:#15221a;display:grid;place-items:center}.ai-welcome-orbit:before{content:'AI';color:#fff;font-size:17px;font-weight:900}.ai-welcome-orbit i{position:absolute;inset:-7px;border:1px dashed rgba(240,90,19,.5);border-radius:27px;animation:aiOrbit 12s linear infinite}.ai-welcome h2{margin:0;color:#19271e;font:800 21px/1.2 inherit}.ai-welcome p{margin:8px auto 19px;color:#758078;font-size:12px;line-height:1.6;max-width:340px}.ai-prompt-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;text-align:left}.ai-prompt-grid button,.ai-followups button{border:1px solid #dfddd5;background:#fff;color:#2e3d33;border-radius:13px;padding:11px;font-size:10px;font-weight:700;line-height:1.35;text-align:left;cursor:pointer;transition:.2s}.ai-prompt-grid button:hover,.ai-followups button:hover{border-color:#ff8b50;color:#d94805;transform:translateY(-1px)}.ai-message{margin:0 0 15px}.ai-message-user{margin-left:47px;background:#1a2a20;color:#fff;border-radius:17px 17px 4px 17px;padding:11px 13px;box-shadow:0 7px 16px rgba(20,35,25,.1)}.ai-message-user p{margin:0;font-size:12px;line-height:1.55}.ai-message-assistant{background:#fff;border:1px solid #e4e1d9;border-radius:4px 18px 18px 18px;padding:14px;box-shadow:0 8px 22px rgba(24,37,28,.06)}.ai-message-label{display:flex;align-items:center;gap:8px;margin-bottom:9px}.ai-message-label span{display:grid;place-items:center;width:27px;height:27px;border-radius:9px;background:#ff6518;color:#fff;font-size:8px;font-weight:900}.ai-message-label strong{font-size:11px;color:#25352b}.ai-answer p{font-size:11.5px;line-height:1.65;color:#4d5a52;margin:0 0 8px}.ai-insight-grid{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin:11px 0}.ai-insight-card{position:relative;padding:10px;border-radius:11px;background:#f6f6f2;border-left:3px solid #95a098}.ai-insight-card.tone-good{border-color:#3fab70;background:#f0faf4}.ai-insight-card.tone-warning{border-color:#e4a128;background:#fff9e9}.ai-insight-card.tone-danger{border-color:#d85246;background:#fff2f0}.ai-insight-card small{display:block;font-size:8px;text-transform:uppercase;letter-spacing:.08em;color:#78827b;font-weight:800}.ai-insight-card strong{display:block;font-size:15px;color:#1c2b21;margin:3px 0}.ai-insight-card p{font-size:9px;line-height:1.4;color:#667168;margin:0}.ai-visual-card{border:1px solid #e5e2db;border-radius:13px;margin:11px 0;padding:11px;background:#fbfbf8}.ai-visual-card h3{font-size:10px;text-transform:uppercase;letter-spacing:.07em;margin:0 0 10px;color:#3c4b41}.ai-table-wrap{overflow:auto;max-height:260px}.ai-table-wrap table{width:100%;border-collapse:collapse;font-size:9px;white-space:nowrap}.ai-table-wrap th{position:sticky;top:0;background:#efeee9;color:#526057;text-align:left;padding:7px}.ai-table-wrap td{border-top:1px solid #ebe8e1;padding:7px;color:#536057}.ai-chart-row{display:grid;grid-template-columns:78px 1fr;align-items:center;gap:8px;margin:7px 0}.ai-chart-label{font-size:8px;color:#647067;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ai-chart-bars{display:grid;gap:3px}.ai-chart-bar{height:15px;background:#ebeae4;border-radius:5px;overflow:visible}.ai-chart-bar i{display:block;width:var(--bar-width);height:100%;min-width:4px;background:var(--bar-color);border-radius:5px;position:relative;transition:width .65s}.ai-chart-bar b{position:absolute;left:calc(100% + 5px);top:1px;font-size:7px;color:#5d685f;white-space:nowrap}.ai-chart-legend{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}.ai-chart-legend span{font-size:8px;color:#667168}.ai-chart-legend span:before{content:'';display:inline-block;width:7px;height:7px;border-radius:2px;background:var(--legend-color);margin-right:4px}.ai-line-chart{display:block;width:100%;height:155px;background:linear-gradient(#f5f4ef 1px,transparent 1px);background-size:100% 25%}.ai-line-labels{display:flex;justify-content:space-between;gap:4px}.ai-line-labels span{font-size:7px;color:#7b857d;white-space:nowrap;overflow:hidden}.ai-doughnut-layout{display:flex;align-items:center;gap:18px}.ai-doughnut{width:115px;aspect-ratio:1;border-radius:50%;display:grid;place-items:center;flex:none}.ai-doughnut>span{width:66px;aspect-ratio:1;border-radius:50%;background:#fff;display:grid;place-content:center;text-align:center}.ai-doughnut strong{font-size:14px;color:#233329}.ai-doughnut small{font-size:7px;color:#778078}.ai-doughnut-legend{flex:1;min-width:0}.ai-doughnut-legend div{display:grid;grid-template-columns:auto 1fr auto;gap:6px;align-items:center;padding:4px 0}.ai-doughnut-legend i{width:7px;height:7px;border-radius:2px}.ai-doughnut-legend span,.ai-doughnut-legend strong{font-size:8px;color:#59665d}.ai-data-scope,.ai-model-note{display:block;color:#8a938c;font-size:8px;margin-top:8px}.ai-model-note{text-align:right}.ai-followups{display:grid;gap:6px;margin-top:10px}.ai-followups button{padding:8px 10px;font-size:9px}.ai-message-loading{display:flex;align-items:center;gap:5px;min-height:48px}.ai-message-loading span{width:6px;height:6px;border-radius:50%;background:#f36521;animation:aiPulse 1.1s infinite}.ai-message-loading span:nth-child(2){animation-delay:.15s}.ai-message-loading span:nth-child(3){animation-delay:.3s}.ai-message-loading small{margin-left:5px;font-size:9px;color:#78827b}.ai-message-error{border:1px solid #f0c9c4;background:#fff4f2;border-radius:13px;padding:11px;color:#973a31}.ai-message-error strong{font-size:11px}.ai-message-error p{font-size:10px;margin:4px 0 0;line-height:1.45}.ai-assistant-composer{padding:11px 14px 13px;background:#fff;border-top:1px solid #e2dfd7}.ai-composer-box{display:flex;align-items:flex-end;gap:8px;padding:7px 7px 7px 12px;border:1px solid #d8d6cf;border-radius:16px;background:#fafaf7;box-shadow:0 5px 15px rgba(23,36,27,.04)}.ai-composer-box:focus-within{border-color:#f47a3c;box-shadow:0 0 0 3px rgba(244,122,60,.1)}.ai-composer-box textarea{flex:1;resize:none;border:0!important;box-shadow:none!important;background:transparent!important;padding:6px 0!important;min-height:32px;max-height:120px;font-size:12px;line-height:1.45}.ai-composer-box button{border:0;border-radius:11px;background:#ff6518;color:#fff;min-width:53px;height:35px;font-size:11px;font-weight:800;cursor:pointer}.ai-composer-box button span{display:none}.ai-composer-box button:disabled{opacity:.5}.ai-assistant-composer>small{display:block;text-align:center;color:#9a9f9b;font-size:8px;margin-top:7px}.ai-drawer-open{overflow:hidden}@keyframes aiOrbit{to{transform:rotate(360deg)}}@keyframes aiPulse{0%,70%,100%{opacity:.3;transform:translateY(0)}35%{opacity:1;transform:translateY(-3px)}}
@media(max-width:600px){.ai-assistant-fab{right:13px;bottom:13px;height:48px}.ai-fab-label{display:none}.ai-assistant-fab{padding:0 6px}.ai-assistant-drawer{width:100vw}.ai-assistant-head{min-height:64px}.ai-assistant-messages{padding:14px 11px 20px}.ai-prompt-grid{grid-template-columns:1fr}.ai-insight-grid{grid-template-columns:1fr}.ai-doughnut-layout{align-items:flex-start}}
.ai-settings-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin-bottom:14px}.ai-settings-summary>div{padding:11px 12px;border:1px solid var(--line);border-radius:11px;background:linear-gradient(145deg,#fafaf7,#fff)}.ai-settings-summary small{display:block;text-transform:uppercase;letter-spacing:.07em;font-size:8px;font-weight:800;color:var(--muted);margin-bottom:4px}.ai-settings-summary strong{font-size:14px;color:var(--ink)}.ai-settings-summary strong span{font-size:9px;color:var(--muted)}.ai-provider-panel{border:1px solid var(--line);border-radius:13px;padding:13px;background:#fbfbf8}.ai-provider-panel .field+.field{margin-top:9px}.ai-provider-title{display:flex;justify-content:space-between;gap:8px;align-items:center;padding-bottom:9px;margin-bottom:10px;border-bottom:1px solid var(--line)}.ai-provider-title strong{font-size:13px}.ai-provider-title span{font-size:8px;text-transform:uppercase;letter-spacing:.07em;color:var(--muted)}.ai-legacy-settings{border:1px solid var(--line);border-radius:11px;padding:10px 13px;margin:13px 0}.ai-legacy-settings summary{cursor:pointer;font-size:10px;font-weight:800;color:var(--ink)}.ai-legacy-settings[open] summary{margin-bottom:12px}.ai-toggle-stack{display:grid;align-content:center;gap:9px}.ai-model-catalogue{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:12px;border-radius:12px;background:#18271e;color:#fff;margin-top:13px}.ai-model-catalogue>div{margin-right:auto}.ai-model-catalogue>div strong,.ai-model-catalogue>div small{display:block}.ai-model-catalogue>div strong{font-size:11px}.ai-model-catalogue>div small{font-size:8px;color:#9daaa1}.ai-model-catalogue>span{padding:7px 9px;border-radius:9px;background:rgba(255,255,255,.07);font-size:9px;font-weight:700;display:grid;grid-template-columns:auto 1fr;align-items:center;gap:1px 5px}.ai-model-catalogue>span i{width:6px;height:6px;border-radius:50%;background:#9baba0;grid-row:1/3}.ai-model-catalogue>span i.primary{background:#ff7028}.ai-model-catalogue>span i.fallback{background:#e8bb55}.ai-model-catalogue>span small{display:block;grid-column:2;font-size:7px;color:#a9b5ad;font-weight:500}.ai-privacy-note{margin:12px 0 0;font-size:9px}.ai-privacy-note strong{color:inherit}@media(max-width:900px){.ai-settings-summary{grid-template-columns:1fr 1fr}}@media(max-width:520px){.ai-settings-summary{grid-template-columns:1fr}.ai-model-catalogue{align-items:stretch}.ai-model-catalogue>div{width:100%}}
.maintenance-admin-card{border-color:rgba(43,139,85,.2)}.maintenance-admin-card.is-active{border-color:rgba(206,72,52,.35);box-shadow:0 0 0 3px rgba(206,72,52,.04)}.maintenance-admin-toggle{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-top:13px;padding:12px 13px;border:1px solid var(--line);border-radius:11px;background:#f9f8f4}.maintenance-admin-toggle>span{min-width:0;font-size:9px;color:var(--muted);text-align:right}.maintenance-admin-toggle>span strong{display:inline-block;max-width:420px;padding:4px 7px;margin-left:4px;border-radius:7px;color:#fff;background:#26372d;font-size:9px;letter-spacing:0;overflow-wrap:anywhere;vertical-align:middle}@media(max-width:680px){.maintenance-admin-toggle{align-items:flex-start;flex-direction:column}.maintenance-admin-toggle>span{text-align:left}.maintenance-admin-toggle>span strong{display:block;margin:5px 0 0}}

/* Original light public footer, enhanced only with a complete logo mark */
.public-footer {
    position: relative;
    overflow: hidden;
    padding: 66px 24px 48px;
    border-top: 1px solid var(--line);
    color: var(--muted);
    text-align: center;
    isolation: isolate;
    background:
        radial-gradient(circle at 50% 38%, rgba(255,255,255,.96) 0 20%, rgba(247,243,234,.85) 45%, transparent 67%),
        linear-gradient(110deg, #f4efe5, #fbf9f4 48%, #eee6d8);
}

.public-footer::before {
    position: absolute;
    z-index: -1;
    inset: 10px;
    display: block;
    border: 1px solid rgba(95,78,57,.14);
    border-radius: 42px 12px 42px 12px;
    pointer-events: none;
    content: "";
}

.public-footer-sun {
    display: none;
}

.public-footer > .public-footer-mark,
.public-footer > strong,
.public-footer > .public-footer-location,
.public-footer > p,
.public-footer > small {
    position: relative;
    z-index: 3;
}

.public-footer-curves {
    position: absolute;
    z-index: 0;
    top: 0;
    bottom: 0;
    left: 0;
    width: min(31vw, 390px);
    overflow: hidden;
    pointer-events: none;
}

.public-footer-curves::before {
    position: absolute;
    inset: -20% 8% -20% -45%;
    border-radius: 50%;
    background: repeating-linear-gradient(117deg, rgba(113,83,53,.12) 0 2px, transparent 2px 13px);
    transform: rotate(-8deg);
    content: "";
}

.public-footer-curves i {
    position: absolute;
    left: -145px;
    width: 315px;
    height: 315px;
    border: 1px solid rgba(221,89,26,.35);
    border-radius: 42% 58% 54% 46% / 46% 43% 57% 54%;
    transform: rotate(18deg);
}

.public-footer-curves i:nth-child(1) { top: -92px; }
.public-footer-curves i:nth-child(2) { top: -42px; left: -105px; border-color: rgba(92,72,50,.2); }
.public-footer-curves i:nth-child(3) { top: 9px; left: -68px; border-style: dashed; border-color: rgba(221,89,26,.42); }

.public-footer-curves span {
    position: absolute;
    bottom: 27px;
    left: 24px;
    width: 95px;
    height: 7px;
    border-top: 1px solid rgba(221,89,26,.58);
    border-bottom: 1px solid rgba(221,89,26,.28);
    transform: rotate(-8deg);
}

.public-footer-wildlife {
    position: absolute;
    z-index: 0;
    top: 18px;
    right: -28px;
    bottom: 18px;
    width: min(31vw, 400px);
    margin: 0;
    overflow: hidden;
    border: 1px solid rgba(255,255,255,.66);
    border-radius: 64% 0 0 38% / 52% 0 0 48%;
    background: #d8ccb9;
    box-shadow: -16px 0 36px rgba(63,47,30,.1), 0 0 0 7px rgba(255,255,255,.25);
    pointer-events: none;
    transform: rotate(1.2deg);
}

.public-footer-wildlife::before {
    position: absolute;
    z-index: 2;
    inset: 0;
    background: linear-gradient(90deg, #f8f5ee 0, rgba(248,245,238,.82) 11%, rgba(248,245,238,.12) 52%, rgba(38,29,20,.12));
    content: "";
}

.public-footer-wildlife::after {
    position: absolute;
    z-index: 3;
    inset: 12px;
    border: 1px solid rgba(255,255,255,.52);
    border-radius: inherit;
    content: "";
}

.public-footer-wildlife img {
    width: 100%;
    height: 100%;
    display: block;
    object-fit: cover;
    object-position: 53% center;
    filter: saturate(.78) sepia(.08) contrast(.95);
}

.public-footer-wildlife span {
    position: absolute;
    z-index: 4;
    right: 31px;
    bottom: 28px;
    width: 44px;
    height: 44px;
    border: 1px solid rgba(255,255,255,.7);
    border-radius: 50%;
    box-shadow: 0 0 0 8px rgba(255,255,255,.16);
}

.public-footer-mark {
    position: relative;
    width: 210px;
    height: 210px;
    display: grid;
    place-items: center;
    margin: 0 auto 24px;
    padding: 11px;
    border: 1px solid rgba(255,90,31,.32);
    border-radius: 44% 56% 48% 52% / 55% 43% 57% 45%;
    background: #f5f1e8;
    box-shadow: 0 14px 30px rgba(57,43,27,.13), 0 0 0 7px rgba(255,255,255,.62);
    transform: rotate(-2deg);
    transition: transform .25s ease, box-shadow .25s ease;
}

.public-footer-mark:hover {
    transform: translateY(-3px) rotate(0);
    box-shadow: 0 18px 38px rgba(57,43,27,.17), 0 0 0 7px rgba(255,255,255,.72);
}

.public-footer-mark-ring {
    position: absolute;
    right: -11px;
    bottom: 17px;
    width: 34px;
    height: 34px;
    border: 7px solid var(--paper);
    border-radius: 50%;
    background: var(--orange);
}

.public-footer-mark img {
    width: 100%;
    height: 100%;
    display: block;
    object-fit: contain;
    border-radius: 38px;
    transform: rotate(2deg);
}

.public-footer > strong {
    display: block;
    color: var(--ink);
    font-family: Georgia, "Times New Roman", serif;
    font-size: 1.2rem;
    font-weight: 600;
}

.public-footer-location {
    display: block;
    margin-top: 3px;
    color: var(--orange-dark);
    font-size: .65rem;
    font-weight: 850;
    letter-spacing: .15em;
    text-transform: uppercase;
}

.public-footer > p {
    margin: 10px 0 7px;
    color: var(--muted);
    font-size: .76rem;
}

.public-footer > small {
    color: var(--muted);
    font-size: .65rem;
}

@media (max-width: 620px) {
    .public-footer {
        padding: 52px 18px 43px;
    }

    .public-footer-mark {
        width: 154px;
        height: 154px;
        margin-top: 0;
    }

    .public-footer-curves {
        width: 43vw;
        opacity: .65;
    }

    .public-footer-wildlife {
        top: auto;
        right: -45px;
        bottom: 12px;
        width: 150px;
        height: 118px;
        opacity: .43;
    }
}

/* Sunlit public theme */
.public-page {
    color: #211d18;
    overflow-x: hidden;
    background:
        radial-gradient(circle at 10% 18%, rgba(255, 126, 64, .075), transparent 24%),
        radial-gradient(circle at 88% 48%, rgba(207, 159, 92, .08), transparent 25%),
        #fbf7ef;
}

.public-page main {
    background: linear-gradient(180deg, rgba(255, 253, 248, .28), rgba(249, 243, 233, .18));
}

.public-topbar {
    border-bottom-color: #e6d8c8;
    background:
        radial-gradient(circle at 14% 50%, rgba(255, 90, 31, .055), transparent 25%),
        linear-gradient(90deg, #f8f6f2, #fdfaf5 55%, #f6f2eb);
}

.public-nav {
    border-bottom-color: rgba(214, 185, 151, .72);
    background:
        linear-gradient(104deg, rgba(255, 255, 253, .99), rgba(255, 251, 245, .99) 56%, rgba(255, 248, 238, .99)),
        var(--paper);
    box-shadow: 0 12px 32px rgba(95, 61, 32, .075);
}

.public-nav::before {
    background:
        repeating-linear-gradient(114deg, transparent 0 38px, rgba(104, 74, 45, .018) 39px 46px),
        radial-gradient(circle at 86% 20%, rgba(255,90,31,.075), transparent 26%),
        radial-gradient(circle at 8% 95%, rgba(190, 139, 72, .055), transparent 24%);
}

.public-nav::after {
    position: absolute;
    z-index: 0;
    right: max(12px, calc((100% - 1450px) / 2));
    bottom: -13px;
    width: min(390px, 34vw);
    height: 114px;
    pointer-events: none;
    content: "";
    opacity: .14;
    background: center / contain no-repeat url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 390 114'%3E%3Ccircle cx='302' cy='43' r='35' fill='%23ff5a1f' fill-opacity='.3'/%3E%3Cpath d='M15 103h360M202 104c13-24 13-46 11-67m0 30c-22-13-46-14-78-8 18-22 47-31 80-23 23-15 58-13 86 7-17 19-50 25-86 17m-4 44 4-52' fill='none' stroke='%235b412b' stroke-width='4' stroke-linecap='round' stroke-linejoin='round'/%3E%3Cpath d='M327 25q9-8 18 0m9 8q7-6 14 0' fill='none' stroke='%235b412b' stroke-width='2' stroke-linecap='round'/%3E%3Cpath d='M76 104c8-20 8-37 7-52m1 21c-12-8-27-9-45-5 12-15 29-20 46-14 15-10 35-7 48 6-12 12-30 16-49 12' fill='none' stroke='%23ff5a1f' stroke-width='3' stroke-linecap='round'/%3E%3C/svg%3E");
}

.public-brand,
.public-links {
    z-index: 2;
}

.public-brand img {
    background: #fffaf2;
    box-shadow: 0 9px 22px rgba(94, 59, 31, .13), 0 0 0 5px rgba(255,255,255,.58);
}

/* Sunlit homepage hero */
.hero {
    color: #211c17;
    background: #eee2d4;
}

.hero-slide img {
    filter: brightness(1.035) saturate(1.1) contrast(.98);
}

.hero::before {
    background:
        linear-gradient(90deg, rgba(255, 248, 237, .25) 0%, rgba(255, 246, 233, .13) 48%, rgba(255, 246, 233, .02) 76%, transparent 100%),
        linear-gradient(0deg, rgba(255, 245, 231, .14), transparent 55%);
}

.hero-copy-stage {
    position: relative;
    width: min(690px, 100%);
    padding: clamp(30px, 4vw, 48px);
    border: 1px solid rgba(224, 195, 161, .8);
    border-radius: 30px 118px 30px 30px;
    background:
        radial-gradient(circle at 92% 10%, rgba(255,90,31,.09), transparent 25%),
        rgba(255, 253, 248, .93);
    box-shadow: 0 28px 68px rgba(68, 43, 23, .18), inset 0 0 0 1px rgba(255,255,255,.7);
    -webkit-backdrop-filter: blur(7px);
    backdrop-filter: blur(7px);
}

.hero-copy-stage::before {
    position: absolute;
    top: 24px;
    right: 27px;
    width: 48px;
    height: 48px;
    border: 1px solid rgba(255,90,31,.18);
    border-radius: 50%;
    content: "";
    box-shadow: 0 0 0 10px rgba(255,90,31,.035);
    pointer-events: none;
}

.hero::after {
    background:
        repeating-linear-gradient(125deg, transparent 0 58px, rgba(97, 66, 39, .025) 59px 65px),
        radial-gradient(circle at 79% 29%, rgba(255, 167, 92, .38), rgba(255, 128, 58, .08) 20%, transparent 34%);
}

.hero-copy h1 {
    color: #211b16;
    text-shadow: 0 2px 0 rgba(255,255,255,.4);
}

.hero-copy p {
    color: #5f554a;
}

.hero-depth-dust {
    opacity: .35;
}

.hero-depth-grass-back {
    opacity: .13;
    background: repeating-linear-gradient(102deg, transparent 0 15px, rgba(171, 115, 56, .68) 16px 18px, transparent 19px 30px);
}

.hero-depth-grass-front {
    opacity: .13;
    background: repeating-linear-gradient(96deg, transparent 0 20px, rgba(104, 68, 38, .76) 21px 25px, transparent 26px 42px);
}

.hero-mark::before {
    border-color: rgba(255, 90, 31, .28);
    background: rgba(255, 250, 241, .18);
}

.hero-mark::after {
    border-color: rgba(217, 88, 25, .3);
}

.hero-mark img {
    border-color: rgba(255,255,255,.76);
    background: #f8f2e8;
    box-shadow: 0 28px 64px rgba(77, 49, 27, .2);
}

.hero-mark:hover img {
    box-shadow: 0 34px 74px rgba(77, 49, 27, .27);
}

.hero-slider-controls {
    border-color: rgba(122, 87, 54, .2);
    background: rgba(255, 250, 242, .86);
    box-shadow: 0 8px 20px rgba(77, 49, 27, .1);
}

.hero-slider-dot span {
    background: rgba(89, 67, 46, .28);
}

.hero-slider-dot:hover span {
    background: rgba(89, 67, 46, .55);
}

.hero-slider-dot:focus-visible {
    outline-color: var(--orange);
}

/* Bright photographic page heroes */
.rooms-listing-hero,
.booking-page-hero,
.contact-page-hero,
.activities-page-hero {
    color: #211c17;
}

.rooms-listing-hero {
    background:
        linear-gradient(90deg, rgba(255,251,244,.97), rgba(255,248,238,.84) 48%, rgba(255,248,238,.2) 82%),
        url("../images/website/banner/landscape.jpg") center 56% / cover;
}

.booking-page-hero {
    background:
        linear-gradient(90deg, rgba(255,251,244,.97), rgba(255,248,238,.84) 49%, rgba(255,248,238,.24)),
        linear-gradient(0deg, rgba(255,244,229,.18), transparent 55%),
        url("../images/website/room-deluxe.jpg") center 58% / cover;
}

.contact-page-hero {
    background:
        linear-gradient(90deg, rgba(255,251,244,.97), rgba(255,248,238,.82) 53%, rgba(255,248,238,.18)),
        url("../images/website/banner/elephant.jpg") center 55% / cover;
}

.activities-page-hero {
    background:
        linear-gradient(90deg, rgba(255,251,244,.97) 0%, rgba(255,248,238,.84) 50%, rgba(255,248,238,.2) 82%),
        url("../images/website/gallery/safari drive.webp") center 56% / cover;
}

.rooms-listing-hero::after,
.booking-page-hero::before,
.contact-page-hero::before,
.activities-page-hero::before {
    background:
        radial-gradient(circle at 82% 27%, rgba(255, 143, 75, .24), transparent 27%),
        repeating-linear-gradient(120deg, transparent 0 62px, rgba(99, 68, 41, .022) 63px 68px);
}

.booking-page-hero::after,
.activities-page-hero::after {
    opacity: .13;
    background: repeating-linear-gradient(99deg, transparent 0 21px, #a66f42 22px 26px, transparent 27px 44px);
}

.rooms-listing-hero p,
.booking-page-copy > p,
.contact-page-hero p,
.activities-page-hero p {
    color: #61574d;
}

.booking-page-copy .eyebrow,
.contact-page-hero .eyebrow,
.activities-page-hero .eyebrow {
    color: var(--orange-dark);
}

.booking-page-promises span {
    border-color: rgba(141, 100, 62, .2);
    color: #53493f;
    background: rgba(255, 252, 246, .75);
    box-shadow: 0 5px 16px rgba(88, 57, 31, .055);
}

.booking-start-card {
    border-color: rgba(218, 187, 151, .82);
    background: rgba(255, 253, 248, .97);
    box-shadow: 0 30px 72px rgba(79, 49, 26, .2);
}

.booking-start-card::before {
    border-color: rgba(255, 90, 31, .22);
}

.contact-page-compass,
.activities-page-hero-mark {
    border-color: rgba(223, 117, 54, .32);
    color: #30261e;
    background: rgba(255, 250, 241, .84);
    box-shadow: 0 0 0 20px rgba(255,255,255,.18), 0 24px 55px rgba(92, 56, 28, .18);
}

.contact-page-compass::before,
.contact-page-compass::after {
    background: rgba(118, 82, 49, .2);
}

.contact-page-compass > i {
    background: linear-gradient(180deg, var(--orange) 0 48%, #8d6b4c 49% 100%);
}

.contact-page-compass > small,
.activities-page-hero-mark small {
    color: #6e6257;
}

.btn-ghost-light {
    border-color: rgba(124, 88, 54, .35);
    color: #372c23;
    background: rgba(255, 251, 244, .76);
}

.btn-ghost-light:hover {
    border-color: var(--orange);
    color: var(--orange-dark);
    background: #fffaf3;
}

/* Cream activity gallery with vivid imagery */
.activities-section {
    color: #211d18;
    background:
        radial-gradient(circle at 8% 12%, rgba(255, 90, 31, .11), transparent 28%),
        radial-gradient(circle at 94% 90%, rgba(184, 143, 85, .12), transparent 30%),
        linear-gradient(145deg, #f8efe2, #fffaf2 55%, #f2e4d2);
}

.activities-section::before {
    background-image:
        linear-gradient(115deg, transparent 0 48%, rgba(104, 73, 43, .025) 48% 48.4%, transparent 48.4%),
        repeating-linear-gradient(0deg, transparent 0 48px, rgba(104, 73, 43, .018) 49px);
}

.activities-heading p,
.activities-cta > span {
    color: #6b6055;
}

.activity-card {
    display: grid;
    grid-template-rows: minmax(255px, 1.2fr) auto;
    border-color: rgba(216, 191, 161, .9);
    color: #211d18;
    background: #fffaf3;
    box-shadow: 0 22px 50px rgba(82, 54, 30, .14);
}

.activity-card::after {
    display: none;
}

.activity-card > img {
    position: relative;
    z-index: 0;
    inset: auto;
    grid-row: 1;
    height: 100%;
    filter: none;
}

.activity-card-content {
    position: relative;
    z-index: 2;
    inset: auto;
    grid-row: 2;
    padding: 26px 28px 27px;
    background: #fffaf3;
}

.activity-card-number {
    color: #8b6546;
}

.activity-card h3 {
    color: #272019;
}

.activity-card p {
    color: #6a5f55;
}

.activity-card-link {
    color: var(--orange-dark);
}

.activity-card:hover > img {
    filter: none;
}

.activities-section .btn-outline {
    border-color: rgba(112, 78, 46, .36);
    color: #342a22;
    background: rgba(255,255,255,.58);
}

.activities-section .btn-outline:hover {
    border-color: var(--orange);
    color: var(--orange-dark);
    background: #fffaf3;
}

.activities-page-listing {
    border-top-color: rgba(184, 139, 91, .2);
}

/* Bright supporting image bands */
.feature-band {
    color: #292119;
    background: #f1e4d4;
}

.feature-band::before {
    background:
        linear-gradient(90deg, rgba(255, 251, 244, .96), rgba(255, 248, 238, .88)),
        url("../images/website/safari-wildlife.jpg") center 58% / cover;
}

.public-feature-icon {
    border: 1px solid rgba(255,90,31,.2);
    color: var(--orange-dark);
    background: rgba(255,255,255,.78);
    box-shadow: 0 8px 20px rgba(91, 57, 29, .08);
}

.public-feature p {
    color: #6b6055;
}

.contact-location-band {
    color: #272019;
    background:
        linear-gradient(90deg, rgba(255,251,244,.96), rgba(255,248,238,.78) 62%, rgba(255,248,238,.42)),
        url("../images/website/safari-wildlife.jpg") center 52% / cover;
}

.contact-location-band .eyebrow {
    color: var(--orange-dark);
}

.contact-location-band::after {
    background: radial-gradient(circle at 78% 30%, rgba(255,90,31,.14), transparent 30%);
}

.safari-story-gallery figure,
.room-media-gallery {
    background: #eadfce;
}

.safari-story-gallery figcaption,
.room-media-count,
.room-media-fallback-label {
    border-color: rgba(255,255,255,.7);
    color: #34291f;
    background: rgba(255, 250, 242, .86);
    box-shadow: 0 6px 18px rgba(69, 46, 26, .09);
}

.room-media-thumbs {
    border: 1px solid rgba(255,255,255,.66);
    background: rgba(255, 250, 242, .78);
}

.room-image-placeholder {
    color: #3b2b20;
    background:
        radial-gradient(circle at 74% 25%, rgba(255,90,31,.18), transparent 34%),
        linear-gradient(145deg, #f1e0cb, #fff8ec);
}

/* Keep the public booking lookup as bright as the main website */
.auth-page:not(.login-page) .auth-brand-panel {
    color: #211c17;
    background:
        linear-gradient(145deg, rgba(255,250,241,.96), rgba(246,231,211,.91)),
        url("../images/website/safari-wildlife.jpg") center / cover;
}

.auth-page:not(.login-page) .auth-brand-panel::after {
    border-color: rgba(255, 90, 31, .16);
}

.auth-page:not(.login-page) .auth-brand-panel img {
    border-color: rgba(255,255,255,.74);
    box-shadow: 0 18px 45px rgba(84, 51, 27, .16);
}

.auth-page:not(.login-page) .auth-brand-panel .eyebrow {
    color: var(--orange-dark);
}

.auth-page:not(.login-page) .auth-brand-panel p {
    color: #6a5e53;
}

@media (max-width: 980px) {
    .hero::before {
        background: linear-gradient(90deg, rgba(255,248,238,.24), rgba(255,248,238,.1) 62%, transparent);
    }

    .public-nav::after {
        right: 3%;
        width: 300px;
        opacity: .14;
    }
}

@media (max-width: 720px) {
    .public-nav::after {
        right: -48px;
        width: 240px;
        opacity: .12;
    }

    .hero::before {
        background: rgba(255, 249, 239, .12);
    }

    .hero-copy-stage {
        padding: 30px 23px;
        border-radius: 25px 72px 25px 25px;
        background: rgba(255, 253, 248, .92);
        box-shadow: 0 22px 48px rgba(68, 43, 23, .17);
    }

    .hero-copy-stage::before {
        top: 18px;
        right: 19px;
        width: 35px;
        height: 35px;
    }

    .hero-copy h1 {
        font-size: clamp(2.75rem, 14vw, 4.65rem);
    }

    .rooms-listing-hero,
    .booking-page-hero,
    .contact-page-hero,
    .activities-page-hero {
        background-position: 62% center;
    }

    .activity-card {
        min-height: 435px;
    }
}

/* Pearl header and split-image homepage slider */
.public-topbar {
    background: linear-gradient(90deg, #fbfaf8, #fffefd 55%, #faf7f2);
}

.public-nav {
    background: linear-gradient(100deg, #fff 0%, #fffefd 62%, #fffaf4 100%);
    box-shadow: 0 10px 28px rgba(82, 55, 31, .06);
}

.public-nav::before {
    opacity: .48;
    background:
        repeating-linear-gradient(114deg, transparent 0 38px, rgba(104, 74, 45, .012) 39px 46px),
        radial-gradient(circle at 88% 24%, rgba(255,90,31,.045), transparent 25%);
}

.public-nav::after {
    opacity: .085;
}

.hero {
    min-height: 570px;
    align-items: stretch;
    background:
        radial-gradient(circle at 10% 18%, rgba(255,90,31,.055), transparent 25%),
        linear-gradient(145deg, #fffefd, #fffaf3);
}

.hero-slides {
    top: 0;
    right: 0;
    bottom: 0;
    left: 36%;
    overflow: hidden;
    border-left: 1px solid rgba(255,90,31,.22);
    border-radius: 112px 0 0 112px;
    box-shadow: -15px 0 0 rgba(255,90,31,.055), -26px 0 55px rgba(82,52,27,.08);
}

.hero-slide img {
    object-fit: cover;
    object-position: center;
    filter: brightness(1.02) saturate(1.1) contrast(1.01);
}

.hero-slide-lodge img {
    object-position: center 52%;
}

.hero-slide-elephants img {
    object-position: center 62%;
}

.hero-slide-room-one img {
    object-position: center 52%;
}

.hero-slide-river-guests img {
    object-position: 62% center;
}

.hero-slide-room-two img {
    object-position: center 48%;
}

.hero-depth-scene {
    transition: opacity .55s ease;
}

.hero[data-active-scene="room"] .hero-depth-scene {
    opacity: 0;
}

.hero-depth-scene {
    top: 0;
    right: 0;
    bottom: 0;
    left: 36%;
}

.hero::before {
    top: 0;
    right: 0;
    bottom: 0;
    left: 36%;
    background: linear-gradient(90deg, rgba(255,250,242,.14), transparent 20%, transparent 100%);
}

.hero::after {
    top: 0;
    right: auto;
    bottom: 0;
    left: 0;
    width: 36%;
    background:
        radial-gradient(circle at 20% 22%, rgba(255,151,84,.16), transparent 25%),
        repeating-linear-gradient(120deg, transparent 0 58px, rgba(114,78,46,.018) 59px 64px);
}

.hero-inner {
    width: min(1260px, calc(100% - 56px));
    grid-template-columns: 36% 64%;
    align-items: center;
    gap: 0;
    padding: 62px 0 104px;
}

.hero-copy-stage {
    width: auto;
    grid-column: 1;
    margin-right: 34px;
    padding: 22px 24px 26px 0;
    border: 0;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
    -webkit-backdrop-filter: none;
    backdrop-filter: none;
}

.hero-copy-stage::before {
    top: -3px;
    right: 24px;
    width: 36px;
    height: 36px;
    opacity: .62;
}

.hero-copy h1 {
    max-width: 500px;
    margin-bottom: 17px;
    font-size: clamp(2.45rem, 4.25vw, 4.45rem);
    line-height: .99;
}

.hero-copy p {
    max-width: 470px;
    margin-bottom: 24px;
    font-size: .93rem;
    line-height: 1.62;
}

.hero-mark {
    display: none;
}

.hero-slider-controls {
    right: auto;
    bottom: 34px;
    left: calc(36% + 30px);
}

@media (max-width: 980px) and (min-width: 721px) {
    .hero-slides,
    .hero-depth-scene,
    .hero::before {
        left: 44%;
    }

    .hero::after {
        width: 44%;
    }

    .hero-inner {
        width: calc(100% - 40px);
        grid-template-columns: 44% 56%;
    }

    .hero-copy-stage {
        margin-right: 24px;
    }

    .hero-copy h1 {
        font-size: clamp(2.35rem, 5.4vw, 3.45rem);
    }

    .hero-copy p {
        font-size: .86rem;
    }

    .hero-slider-controls {
        left: calc(44% + 24px);
    }
}

@media (max-width: 720px) {
    .public-nav {
        background: #fff;
    }

    .public-nav::after {
        opacity: .055;
    }

    .hero {
        min-height: 760px;
        display: block;
    }

    .hero-slides {
        top: 0;
        right: 0;
        bottom: auto;
        left: 0;
        height: 330px;
        border-left: 0;
        border-bottom: 1px solid rgba(255,90,31,.2);
        border-radius: 0 0 44px 44px;
        box-shadow: 0 12px 35px rgba(82,52,27,.1);
    }

    .hero-depth-scene,
    .hero::before {
        top: 0;
        right: 0;
        bottom: auto;
        left: 0;
        height: 330px;
    }

    .hero::after {
        top: 330px;
        right: 0;
        bottom: 0;
        left: 0;
        width: auto;
    }

    .hero-inner {
        width: calc(100% - 36px);
        min-height: 760px;
        display: flex;
        align-items: flex-end;
        padding: 352px 0 110px;
        text-align: center;
    }

    .hero-copy-stage {
        width: 100%;
        margin: 0;
        padding: 25px 7px 18px;
    }

    .hero-copy-stage::before {
        display: none;
    }

    .hero-copy h1 {
        max-width: 360px;
        margin-right: auto;
        margin-left: auto;
        font-size: clamp(2.35rem, 12vw, 3.25rem);
    }

    .hero-copy p {
        max-width: 350px;
        margin-right: auto;
        margin-left: auto;
        font-size: .86rem;
    }

    .hero-slider-controls {
        top: 275px;
        right: auto;
        bottom: auto;
        left: 50%;
        transform: translateX(-50%);
    }
}

.public-page .availability-box {
    margin-top: 28px;
}

@media (min-width: 1400px) {
    .hero {
        min-height: clamp(640px, 42vw, 780px);
    }

    .hero-slides,
    .hero-depth-scene,
    .hero::before {
        left: 34.5%;
    }

    .hero::after {
        width: 34.5%;
    }

    .hero-slides {
        border-radius: 145px 0 0 145px;
    }

    .hero-inner {
        width: min(1600px, calc(100% - 80px));
        grid-template-columns: 34.5% 65.5%;
        padding-top: clamp(76px, 6vw, 112px);
        padding-bottom: clamp(118px, 8vw, 150px);
    }

    .hero-copy-stage {
        margin-right: clamp(48px, 4vw, 72px);
    }

    .hero-copy h1 {
        max-width: 610px;
        font-size: clamp(3.15rem, 3.65vw, 4.8rem);
    }

    .hero-copy p {
        max-width: 550px;
        font-size: clamp(.94rem, .82vw, 1.05rem);
    }

    .hero-slider-controls {
        bottom: 42px;
        left: calc(34.5% + 38px);
    }
}

@media (min-width: 1900px) {
    .hero {
        min-height: clamp(760px, 38vw, 920px);
    }

    .hero-slides,
    .hero-depth-scene,
    .hero::before {
        left: 35.5%;
    }

    .hero::after {
        width: 35.5%;
    }

    .hero-slides {
        border-radius: 180px 0 0 180px;
    }

    .hero-inner {
        width: min(2050px, calc(100% - 120px));
        grid-template-columns: 35.5% 64.5%;
        padding-top: 120px;
        padding-bottom: 170px;
    }

    .hero-copy-stage {
        margin-right: clamp(74px, 5vw, 110px);
    }

    .hero-copy h1 {
        max-width: 700px;
        font-size: clamp(4rem, 3.25vw, 5.25rem);
    }

    .hero-copy p {
        max-width: 620px;
        font-size: 1.08rem;
    }

    .hero-slider-controls {
        bottom: 50px;
        left: calc(35.5% + 48px);
    }
}

@media (max-width: 720px) {
    .public-page .availability-box {
        margin-top: 20px;
    }
}

.lodge-introduction {
    background: #fff;
}

.lodge-introduction::before,
.lodge-introduction::after,
.lodge-introduction .introduction-depth-scene {
    display: none;
}

.public-brand small {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    text-align: center;
    text-indent: 0;
}

.public-brand small::before,
.public-brand small::after {
    width: 24px;
    height: 1px;
    flex: 0 0 24px;
    background: rgba(217, 66, 12, .62);
    content: "";
}

.public-nav {
    padding-top: 13px;
    padding-bottom: 13px;
}

.public-brand img {
    width: 112px;
    height: 112px;
    object-fit: contain;
}

@media (min-width: 1440px) {
    .public-nav {
        padding-top: 15px;
        padding-bottom: 15px;
    }

    .public-brand img {
        width: 132px;
        height: 132px;
    }
}

@media (max-width: 620px) {
    .public-nav {
        padding-top: 12px;
        padding-bottom: 12px;
    }

    .public-brand img {
        width: 84px;
        height: 84px;
    }
}

/* Spacious header navigation and hero separation */
.hero {
    margin-top: 24px;
}

@media (min-width: 1400px) {
    .public-links {
        gap: clamp(25px, 1.75vw, 42px);
    }

    .public-links a:not(.btn) {
        padding: 12px clamp(17px, 1.15vw, 23px);
        font-size: clamp(1.08rem, .9vw, 1.2rem);
    }

    .public-nav .btn-sm {
        min-height: 52px;
        padding: 12px clamp(23px, 1.45vw, 31px);
        font-size: clamp(.92rem, .78vw, 1.06rem);
    }
}

@media (min-width: 1900px) {
    .public-nav {
        gap: 46px;
        padding-right: max(72px, calc((100% - 2050px) / 2));
        padding-left: max(72px, calc((100% - 2050px) / 2));
    }

    .public-links {
        gap: clamp(36px, 1.65vw, 52px);
    }

    .public-links a:not(.btn) {
        padding: 14px 25px;
        font-size: 1.2rem;
    }

    .public-nav .btn-sm {
        min-height: 56px;
        padding: 14px 32px;
        font-size: 1.08rem;
    }

    .public-brand strong {
        font-size: 1.65rem;
    }

    .public-brand small {
        font-size: .84rem;
    }
}

@media (max-width: 720px) {
    .hero {
        margin-top: 14px;
    }
}

/* Unified bright canvas for the homepage hero and availability search */
.home-page,
.home-page main {
    background:
        radial-gradient(circle at 9% 13%, rgba(255,90,31,.035), transparent 24%),
        linear-gradient(180deg, #fffefd, #fffaf4 72%, #fff 100%);
}

.home-page .hero {
    background:
        radial-gradient(circle at 10% 18%, rgba(255,90,31,.04), transparent 25%),
        linear-gradient(145deg, #fffefd, #fffaf4);
}

.home-page .availability-band {
    padding: 40px 0;
    background:
        radial-gradient(circle at 10% 18%, rgba(255,90,31,.04), transparent 25%),
        linear-gradient(145deg, #fffefd, #fffaf4);
}

/* Editorial curved landing composition */
.public-page .home-public-nav {
    min-height: 126px;
    padding: 10px max(34px, calc((100% - 1540px) / 2));
    border-bottom: 0;
    overflow: visible;
    background:
        radial-gradient(circle at 7% 28%, rgba(255, 90, 31, .045), transparent 22%),
        linear-gradient(110deg, #fffefd 0%, #fffbf4 70%, #fff8ed 100%);
    box-shadow: none;
}

.public-page .home-public-nav::before {
    opacity: .38;
    background:
        repeating-linear-gradient(112deg, transparent 0 42px, rgba(120, 84, 48, .018) 43px 48px),
        radial-gradient(circle at 88% 18%, rgba(255, 90, 31, .045), transparent 22%);
}

.public-page .home-public-nav::after {
    right: max(18px, calc((100% - 1540px) / 2));
    bottom: -20px;
    width: min(360px, 24vw);
    height: 98px;
    opacity: .075;
}

.public-page .home-public-nav .public-brand img {
    width: 104px;
    height: 104px;
    flex: 0 0 104px;
    border-color: rgba(255, 90, 31, .35);
    box-shadow: 0 8px 24px rgba(92, 57, 29, .1), 0 0 0 5px rgba(255, 255, 255, .6);
}

.public-page .home-public-nav .public-brand strong {
    font-size: clamp(1.22rem, 1.35vw, 1.58rem);
}

.public-page .home-public-nav .public-links {
    gap: clamp(20px, 2vw, 38px);
}

.public-page .home-public-nav .public-links a:not(.btn) {
    padding: 11px 2px;
    border: 0;
    border-radius: 0;
    color: #3f372f;
    font-size: clamp(1.02rem, 1vw, 1.16rem);
}

.public-page .home-public-nav .public-links a:not(.btn)::after {
    right: 0;
    bottom: 5px;
    left: 0;
}

.public-page .home-public-nav .btn-sm {
    min-height: 50px;
    padding: 12px clamp(22px, 1.7vw, 31px);
    border-radius: 12px;
}

.home-page .home-hero {
    height: clamp(690px, calc(100svh - 158px), 920px);
    min-height: 690px;
    margin-top: 0;
    display: grid;
    align-items: stretch;
    overflow: hidden;
    color: #211c17;
    background:
        radial-gradient(circle at 8% 25%, rgba(255, 90, 31, .045), transparent 24%),
        linear-gradient(135deg, #fffefd 0%, #fffaf1 58%, #fff7eb 100%);
    isolation: isolate;
}

.home-page .home-hero .hero-slides {
    z-index: 1;
    inset: 0;
    overflow: hidden;
    border: 0;
    border-radius: 0;
    box-shadow: none;
    clip-path: url(#homeHeroCurve);
    filter: drop-shadow(-9px 0 0 rgba(186, 128, 66, .26));
}

.home-page .home-hero::after {
    z-index: 0;
    inset: 0;
    width: auto;
    background: #d9b67f;
    opacity: .42;
    clip-path: url(#homeHeroCurve);
    transform: translateX(-7px);
}

.home-page .home-hero::before {
    z-index: 0;
    inset: auto auto 0 0;
    width: 39%;
    height: 42%;
    opacity: .12;
    background: left bottom / 95% auto no-repeat url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 620 260'%3E%3Cg fill='none' stroke='%23846a4d' stroke-linecap='round'%3E%3Cpath d='M0 232h610M104 233c13-43 16-86 13-132m0 58c-36-22-78-25-120-12 24-37 68-53 120-35 35-25 86-21 126 11-27 34-76 48-126 32m238 78c8-28 8-55 7-83m0 38c-21-13-44-14-72-8 16-23 44-33 74-22 21-15 52-13 76 9-19 22-48 29-77 21' stroke-width='6'/%3E%3Cpath d='M462 229c5-20 5-38 4-58m0 26c-13-8-30-9-47-5 10-15 27-22 47-15 14-10 34-8 49 6-12 14-31 19-49 14M520 84q11-9 22 0m17 10q8-7 17 0M276 64q10-8 20 0m13 9q7-6 14 0' stroke-width='4'/%3E%3C/g%3E%3C/svg%3E");
    content: "";
}

.home-page .home-hero .hero-slide img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
    filter: brightness(1.035) saturate(1.08) contrast(1.01);
}

.home-page .home-hero .hero-slide-elephants img {
    object-position: 61% 58%;
}

.home-page .home-hero .hero-slide-room-one img {
    object-position: 63% 50%;
}

.home-page .home-hero .hero-slide-river-guests img {
    object-position: 62% center;
}

.home-page .home-hero .hero-slide-room-two img {
    object-position: 63% 48%;
}

.home-page .home-hero .hero-depth-scene {
    display: none;
}

.home-page .hero-clip-defs {
    position: absolute;
    width: 0;
    height: 0;
    overflow: hidden;
}

.home-page .home-hero .hero-inner {
    position: relative;
    z-index: 3;
    width: min(1540px, calc(100% - 80px));
    min-height: 100%;
    grid-template-columns: minmax(0, 39%) minmax(0, 61%);
    gap: 0;
    padding: clamp(50px, 6vh, 78px) 0 clamp(58px, 7vh, 90px);
}

.home-page .home-hero .hero-copy-stage {
    width: 100%;
    max-width: 610px;
    margin: 0;
    padding: 0 clamp(38px, 4.5vw, 70px) 0 0;
    border: 0;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
    -webkit-backdrop-filter: none;
    backdrop-filter: none;
}

.home-page .home-hero .hero-copy-stage::before {
    display: none;
}

.home-page .home-hero .hero-copy .eyebrow {
    display: inline-flex;
    align-items: center;
    gap: 11px;
    margin-bottom: 24px;
    color: #9b632e;
    font-size: .83rem;
    letter-spacing: .15em;
}

.home-page .home-hero .hero-copy .eyebrow::before {
    width: 30px;
    height: 2px;
    flex: 0 0 30px;
    border-radius: 999px;
    background: var(--orange);
    content: "";
}

.home-page .home-hero .hero-copy h1 {
    max-width: 590px;
    margin-bottom: 24px;
    color: #263127;
    font-size: clamp(3.35rem, 4.55vw, 5.15rem);
    line-height: .99;
    letter-spacing: -.035em;
    text-shadow: none;
}

.home-page .home-hero .hero-copy h1 em {
    color: var(--orange-dark);
}

.home-page .home-hero .hero-copy p {
    max-width: 520px;
    margin-bottom: 30px;
    color: #62584e;
    font-size: clamp(.96rem, 1vw, 1.08rem);
    line-height: 1.72;
}

.home-page .hero-actions {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 14px;
}

.home-page .hero-actions .btn {
    min-height: 54px;
    padding: 14px 23px;
    border-radius: 10px;
}

.home-page .hero-actions .btn-outline {
    border-color: rgba(170, 103, 46, .54);
    color: #63472e;
    background: rgba(255, 255, 255, .34);
}

.home-page .hero-actions .btn-outline:hover {
    border-color: var(--orange);
    color: var(--orange-dark);
    background: #fff;
}

.home-page .hero-trust {
    display: flex;
    align-items: center;
    gap: 13px;
    margin-top: clamp(38px, 6vh, 68px);
    color: #443a31;
}

.home-page .hero-trust-mark {
    width: 46px;
    height: 46px;
    display: grid;
    place-items: center;
    flex: 0 0 46px;
    border: 1px solid rgba(194, 109, 39, .45);
    border-radius: 50%;
    color: var(--orange-dark);
    background: rgba(255, 255, 255, .62);
    font-family: Georgia, "Times New Roman", serif;
    font-size: 1.2rem;
    font-style: italic;
    box-shadow: 0 7px 18px rgba(93, 57, 27, .08);
}

.home-page .hero-trust strong,
.home-page .hero-trust small {
    display: block;
}

.home-page .hero-trust strong {
    margin-bottom: 3px;
    font-size: .88rem;
    letter-spacing: .025em;
}

.home-page .hero-trust small {
    color: #75695d;
    font-size: .76rem;
}

.home-page .hero-location-card {
    position: absolute;
    z-index: 4;
    right: clamp(180px, 12vw, 225px);
    bottom: 34px;
    min-width: 330px;
    display: flex;
    align-items: center;
    gap: 14px;
    padding: 15px 19px;
    border: 1px solid rgba(255, 255, 255, .17);
    border-radius: 16px;
    color: #fff;
    background: rgba(37, 45, 35, .78);
    box-shadow: 0 18px 38px rgba(21, 24, 18, .22);
    -webkit-backdrop-filter: blur(12px);
    backdrop-filter: blur(12px);
}

.home-page .hero-location-pin {
    width: 38px;
    height: 38px;
    display: grid;
    place-items: center;
    flex: 0 0 38px;
    border: 1px solid rgba(255, 146, 73, .42);
    border-radius: 50%;
    color: #ff8a43;
}

.home-page .hero-location-pin svg {
    width: 21px;
    height: 21px;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.8;
}

.home-page .hero-location-card strong,
.home-page .hero-location-card small {
    display: block;
}

.home-page .hero-location-card strong {
    margin-bottom: 2px;
    font-size: .96rem;
}

.home-page .hero-location-card small {
    color: rgba(255, 255, 255, .76);
    font-size: .78rem;
}

.home-page .home-hero .hero-slider-controls {
    z-index: 4;
    right: auto;
    bottom: 35px;
    left: 43%;
    border-color: rgba(255, 255, 255, .24);
    background: rgba(255, 252, 246, .9);
}

@media (min-width: 1800px) {
    .public-page .home-public-nav {
        min-height: 144px;
        padding-right: max(54px, calc((100% - 1880px) / 2));
        padding-left: max(54px, calc((100% - 1880px) / 2));
    }

    .public-page .home-public-nav .public-brand img {
        width: 118px;
        height: 118px;
        flex-basis: 118px;
    }

    .home-page .home-hero {
        height: clamp(760px, calc(100svh - 176px), 1040px);
        min-height: 760px;
    }

    .home-page .home-hero .hero-inner {
        width: min(1880px, calc(100% - 108px));
        grid-template-columns: minmax(0, 38%) minmax(0, 62%);
    }

    .home-page .home-hero .hero-copy-stage {
        max-width: 720px;
    }

    .home-page .home-hero .hero-copy h1 {
        max-width: 700px;
        font-size: clamp(4.5rem, 3.9vw, 6.4rem);
    }

    .home-page .home-hero .hero-copy p {
        max-width: 620px;
        font-size: 1.12rem;
    }
}

@media (max-width: 1120px) {
    .public-page .home-public-nav {
        min-height: 0;
        flex-wrap: wrap;
        justify-content: center;
        padding: 12px 24px 15px;
    }

    .public-page .home-public-nav .public-brand {
        margin-right: auto;
    }

    .public-page .home-public-nav .public-brand img {
        width: 86px;
        height: 86px;
        flex-basis: 86px;
    }

    .public-page .home-public-nav .public-links {
        gap: 15px;
    }

    .public-page .home-public-nav .public-links a:not(.btn) {
        display: block;
        font-size: .96rem;
    }

    .home-page .home-hero {
        height: 720px;
        min-height: 720px;
    }

    .home-page .home-hero .hero-inner {
        width: calc(100% - 48px);
        grid-template-columns: 44% 56%;
        padding-top: 48px;
    }

    .home-page .home-hero .hero-copy-stage {
        padding-right: 34px;
    }

    .home-page .home-hero .hero-copy h1 {
        font-size: clamp(3rem, 5.8vw, 4.2rem);
    }

    .home-page .hero-trust {
        margin-top: 35px;
    }

    .home-page .hero-location-card {
        right: 24px;
        bottom: 28px;
        min-width: 290px;
    }

    .home-page .home-hero .hero-slider-controls {
        bottom: 28px;
        left: 49%;
    }
}

@media (max-width: 820px) {
    .public-page .home-public-nav {
        display: flex;
        align-items: center;
        justify-content: center;
        gap: 10px;
        padding-right: 18px;
        padding-left: 18px;
    }

    .public-page .home-public-nav .public-brand {
        margin: 0 auto;
    }

    .public-page .home-public-nav .public-links {
        width: 100%;
        justify-content: flex-start;
        gap: 9px;
        padding: 5px 0 2px;
        overflow-x: auto;
        scrollbar-width: none;
    }

    .public-page .home-public-nav .public-links::-webkit-scrollbar {
        display: none;
    }

    .public-page .home-public-nav .public-links a {
        flex: 0 0 auto;
        white-space: nowrap;
    }

    .public-page .home-public-nav .public-links a:not(.btn) {
        display: block;
        padding: 9px 10px;
        border: 1px solid rgba(117, 91, 64, .17);
        border-radius: 999px;
        font-size: .9rem;
    }

    .public-page .home-public-nav .btn-sm {
        min-height: 42px;
        padding: 9px 16px;
        border-radius: 999px;
    }

    .home-page .home-hero {
        height: 940px;
        min-height: 940px;
        display: block;
    }

    .home-page .home-hero .hero-slides {
        top: auto;
        right: 0;
        bottom: 0;
        left: 0;
        height: 390px;
        border-radius: 52px 52px 0 0;
        clip-path: none;
        filter: drop-shadow(0 -8px 0 rgba(186, 128, 66, .2));
    }

    .home-page .home-hero::after {
        top: auto;
        right: 0;
        bottom: 0;
        left: 0;
        width: auto;
        height: 398px;
        border-radius: 56px 56px 0 0;
        clip-path: none;
        transform: none;
    }

    .home-page .home-hero::before {
        width: 100%;
        height: 33%;
    }

    .home-page .home-hero .hero-inner {
        width: calc(100% - 40px);
        min-height: 0;
        height: 100%;
        display: flex;
        align-items: flex-start;
        padding: 48px 0 430px;
        text-align: left;
    }

    .home-page .home-hero .hero-copy-stage {
        width: 100%;
        max-width: 680px;
        margin: 0 auto;
        padding: 0;
    }

    .home-page .home-hero .hero-copy h1 {
        max-width: 630px;
        margin-right: 0;
        margin-left: 0;
        font-size: clamp(3rem, 9vw, 4.25rem);
    }

    .home-page .home-hero .hero-copy p {
        max-width: 610px;
        margin-right: 0;
        margin-left: 0;
        font-size: .94rem;
    }

    .home-page .hero-trust {
        margin-top: 30px;
    }

    .home-page .home-hero .hero-slider-controls {
        top: auto;
        right: auto;
        bottom: 326px;
        left: 50%;
        transform: translateX(-50%);
    }

    .home-page .hero-location-card {
        right: 20px;
        bottom: 22px;
        min-width: min(310px, calc(100% - 40px));
    }
}

@media (max-width: 560px) {
    .public-page .home-public-nav .public-links {
        display: grid;
        grid-template-columns: repeat(3, max-content);
        justify-content: center;
        gap: 8px;
        overflow: visible;
    }

    .public-page .home-public-nav .public-links a:not(.btn) {
        padding: 8px 9px;
        font-size: .82rem;
    }

    .public-page .home-public-nav .btn-sm {
        min-height: 39px;
        padding: 8px 14px;
        font-size: .78rem;
    }

    .public-page .home-public-nav .public-brand {
        gap: 10px;
    }

    .public-page .home-public-nav .public-brand img {
        width: 72px;
        height: 72px;
        flex-basis: 72px;
    }

    .public-page .home-public-nav .public-brand strong {
        font-size: 1.05rem;
    }

    .public-page .home-public-nav .public-brand small {
        font-size: .65rem;
    }

    .home-page .home-hero {
        height: 900px;
        min-height: 900px;
    }

    .home-page .home-hero .hero-inner {
        width: calc(100% - 30px);
        padding-top: 35px;
        padding-bottom: 390px;
    }

    .home-page .home-hero .hero-copy .eyebrow {
        margin-bottom: 17px;
        font-size: .72rem;
    }

    .home-page .home-hero .hero-copy h1 {
        margin-bottom: 18px;
        font-size: clamp(2.6rem, 12.7vw, 3.35rem);
    }

    .home-page .home-hero .hero-copy p {
        margin-bottom: 21px;
        font-size: .86rem;
        line-height: 1.58;
    }

    .home-page .hero-actions {
        gap: 9px;
    }

    .home-page .hero-actions .btn {
        min-height: 47px;
        padding: 11px 15px;
        font-size: .82rem;
    }

    .home-page .hero-trust {
        gap: 10px;
        margin-top: 24px;
    }

    .home-page .hero-trust-mark {
        width: 39px;
        height: 39px;
        flex-basis: 39px;
    }

    .home-page .hero-trust strong {
        font-size: .8rem;
    }

    .home-page .hero-trust small {
        font-size: .68rem;
    }

    .home-page .home-hero .hero-slides {
        height: 350px;
        border-radius: 38px 38px 0 0;
    }

    .home-page .home-hero::after {
        height: 358px;
        border-radius: 42px 42px 0 0;
    }

    .home-page .home-hero .hero-slider-controls {
        bottom: 292px;
    }

    .home-page .hero-location-card {
        display: none;
    }
}

.home-page .availability-box {
    margin: 0 auto;
    border-color: rgba(226, 207, 184, .72);
    background: rgba(255,255,255,.98);
    box-shadow: 0 22px 48px rgba(82, 52, 27, .1), 0 0 0 8px rgba(255,255,255,.42);
}

/* Location, map, and subscriber experiences */
.public-contact-icon svg {
    width: 12px;
    height: 12px;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.8;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.public-topbar-contact .public-topbar-bookings {
    color: #8b3d1c;
    font-weight: 850;
}

.public-topbar-bookings .public-booking-icon {
    color: #fff;
    background: linear-gradient(135deg, #ff7438, #d9420c);
    box-shadow: 0 3px 10px rgba(217,66,12,.19);
}

.home-location {
    position: relative;
    padding: clamp(72px, 7vw, 112px) 0;
    overflow: hidden;
    background:
        radial-gradient(circle at 4% 15%, rgba(255,174,91,.16), transparent 24%),
        linear-gradient(145deg, #fffdf9, #f9f1e4);
}

.home-location::before,
.find-location-section::before {
    position: absolute;
    right: -65px;
    bottom: -50px;
    width: 330px;
    height: 165px;
    border: 1px solid rgba(201,92,38,.13);
    border-radius: 50% 50% 0 0;
    box-shadow: 0 -18px 0 rgba(255,255,255,.3), 0 -36px 0 rgba(201,92,38,.04);
    content: "";
}

.home-location-inner {
    position: relative;
    z-index: 1;
    width: min(1240px, calc(100% - 48px));
    display: grid;
    grid-template-columns: minmax(300px, .82fr) minmax(430px, 1.18fr);
    align-items: center;
    gap: clamp(36px, 6vw, 84px);
    margin: auto;
}

.home-location-copy h2,
.find-location-copy h2,
.find-journey-section .section-heading h2 {
    margin: 8px 0 15px;
    color: #2c3024;
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(2.25rem, 4.1vw, 4.15rem);
    font-weight: 500;
    line-height: 1.02;
}

.home-location-copy > p,
.find-location-copy > p {
    max-width: 570px;
    color: #696257;
    font-size: .96rem;
    line-height: 1.75;
}

.home-location-facts {
    display: flex;
    gap: 14px;
    margin: 25px 0;
}

.home-location-facts span {
    min-width: 150px;
    padding: 13px 16px;
    border: 1px solid rgba(188,136,84,.24);
    border-radius: 15px;
    background: rgba(255,255,255,.72);
}

.home-location-facts strong,
.home-location-facts small {
    display: block;
}

.home-location-facts strong {
    color: #34372b;
    font-family: Georgia, "Times New Roman", serif;
    font-size: 1.02rem;
}

.home-location-facts small {
    margin-top: 3px;
    color: #8b7967;
    font-size: .66rem;
}

.home-location-actions,
.find-journey-action {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
}

.home-location-map,
.find-map-frame {
    position: relative;
    min-height: 470px;
    overflow: hidden;
    border: 10px solid rgba(255,255,255,.94);
    border-radius: 38px 8px 38px 8px;
    background: #eee8dc;
    box-shadow: 0 28px 65px rgba(82,52,27,.17);
}

.home-location-map::after,
.find-map-frame::after {
    position: absolute;
    inset: 0;
    border: 1px solid rgba(194,113,59,.2);
    border-radius: inherit;
    pointer-events: none;
    content: "";
}

.home-location-map iframe,
.find-map-frame iframe {
    width: 100%;
    height: 100%;
    position: absolute;
    inset: 0;
    border: 0;
    filter: saturate(.82) sepia(.08) contrast(.96);
}

.home-location-pin,
.find-map-badge {
    position: absolute;
    z-index: 2;
    right: 22px;
    bottom: 22px;
    padding: 13px 17px 13px 44px;
    border: 1px solid rgba(255,255,255,.7);
    border-radius: 14px;
    color: #38372e;
    background: rgba(255,253,248,.94);
    box-shadow: 0 12px 32px rgba(51,42,30,.18);
    font-size: .78rem;
    font-weight: 850;
    line-height: 1.3;
    backdrop-filter: blur(12px);
}

.home-location-pin i,
.find-map-badge > span {
    position: absolute;
    top: 16px;
    left: 17px;
    width: 15px;
    height: 15px;
    border: 4px solid #e34c14;
    border-radius: 50% 50% 50% 0;
    transform: rotate(-45deg);
}

.home-location-pin small,
.find-map-badge small {
    color: #8b7967;
    font-size: .65rem;
    font-weight: 700;
}

.find-us-page,
.find-us-page main {
    background: #fffdf8;
}

.find-hero {
    position: relative;
    min-height: clamp(410px, 40vw, 570px);
    display: grid;
    align-items: center;
    overflow: hidden;
    margin-top: 24px;
    background:
        linear-gradient(90deg, rgba(255,253,248,.98) 0%, rgba(255,249,239,.88) 48%, rgba(255,248,235,.2) 82%),
        url("../images/website/banner/landscape.jpg") center 55% / cover;
}

.find-hero::before {
    position: absolute;
    top: 0;
    right: 8%;
    width: 42%;
    height: 8px;
    border-radius: 0 0 10px 10px;
    background: linear-gradient(90deg, transparent, #e85d23, transparent);
    opacity: .45;
    content: "";
}

.find-hero-copy {
    position: relative;
    z-index: 2;
    width: min(1240px, calc(100% - 48px));
    margin: auto;
}

.find-hero-copy h1 {
    max-width: 650px;
    margin: 9px 0 18px;
    color: #293023;
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(3.2rem, 6.4vw, 6.7rem);
    font-weight: 500;
    line-height: .95;
}

.find-hero-copy p {
    max-width: 590px;
    margin-bottom: 24px;
    color: #686255;
    font-size: 1rem;
    line-height: 1.7;
}

.find-hero-art {
    position: absolute;
    z-index: 1;
    right: 0;
    bottom: 0;
    width: 56%;
    height: 85%;
    opacity: 0;
}

.find-hero-art svg {
    width: 100%;
    height: 100%;
}

.find-sun {
    position: absolute;
    top: 11%;
    right: 18%;
    width: clamp(120px, 15vw, 225px);
    height: clamp(120px, 15vw, 225px);
    border-radius: 50%;
    background: linear-gradient(145deg, #ffd392, #f09b45);
    box-shadow: 0 0 0 24px rgba(255,211,146,.14);
}

.find-hill-back { fill: #d9d2ad; }
.find-hill-front { fill: #718247; }
.find-tree { fill: #283221; }

.find-location-section {
    position: relative;
    padding: clamp(75px, 8vw, 120px) 0;
    overflow: hidden;
    background: #fff;
}

.find-location-layout {
    position: relative;
    z-index: 1;
    width: min(1240px, calc(100% - 48px));
    display: grid;
    grid-template-columns: minmax(280px, .78fr) minmax(480px, 1.22fr);
    align-items: center;
    gap: clamp(40px, 7vw, 95px);
    margin: auto;
}

.find-address-card {
    display: flex;
    align-items: center;
    gap: 14px;
    margin: 25px 0;
    padding: 15px 16px;
    border: 1px solid #eee0cf;
    border-radius: 16px;
    background: #fffaf3;
}

.find-address-icon {
    width: 42px;
    height: 42px;
    display: grid;
    flex: 0 0 42px;
    place-items: center;
    border-radius: 13px;
    color: #e14c17;
    background: #fff0e6;
}

.find-address-icon svg {
    width: 22px;
    height: 22px;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.7;
}

.find-address-card small,
.find-address-card strong,
.find-map-badge strong,
.find-map-badge small {
    display: block;
}

.find-address-card small {
    color: #9b765d;
    font-size: .66rem;
    font-weight: 850;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.find-address-card strong {
    margin-top: 3px;
    color: #36372e;
    font-size: .88rem;
}

.find-map-frame {
    min-height: 540px;
}

.find-journey-section {
    padding: clamp(72px, 7vw, 110px) max(24px, calc((100% - 1240px) / 2));
    background:
        linear-gradient(rgba(255,250,242,.92), rgba(255,250,242,.96)),
        radial-gradient(circle at 10% 85%, rgba(109,130,68,.2), transparent 28%);
}

.find-journey-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 18px;
    margin-top: 34px;
}

.find-journey-grid article {
    position: relative;
    min-height: 225px;
    padding: 27px;
    overflow: hidden;
    border: 1px solid #eddfcf;
    border-radius: 23px 6px 23px 6px;
    background: rgba(255,255,255,.9);
    box-shadow: 0 16px 35px rgba(73,55,35,.07);
}

.find-journey-grid article::after {
    position: absolute;
    right: -28px;
    bottom: -35px;
    width: 105px;
    height: 105px;
    border: 18px solid rgba(112,131,69,.07);
    border-radius: 50%;
    content: "";
}

.find-journey-grid article > span {
    color: #e45019;
    font-size: .68rem;
    font-weight: 900;
    letter-spacing: .12em;
}

.find-journey-grid h3 {
    margin: 18px 0 10px;
    color: #30342a;
    font-family: Georgia, "Times New Roman", serif;
    font-size: 1.45rem;
}

.find-journey-grid p {
    color: #726b60;
    font-size: .83rem;
    line-height: 1.65;
}

.find-journey-action {
    justify-content: center;
    margin-top: 30px;
}

.kuwa-footer-subscribe-error {
    display: block;
    margin-top: 8px;
    color: #a53322;
    font-size: .7rem;
    font-weight: 750;
}

.newsletter-table .table-actions {
    flex-wrap: nowrap;
}

.newsletter-table td:last-child {
    width: 1%;
    white-space: nowrap;
}

@media (min-width: 1500px) {
    .public-topbar-inner,
    .home-location-inner,
    .find-location-layout,
    .find-hero-copy {
        width: min(1600px, calc(100% - 100px));
    }

    .home-location-inner,
    .find-location-layout {
        grid-template-columns: minmax(390px, .78fr) minmax(650px, 1.22fr);
    }

    .home-location-map { min-height: 560px; }
    .find-map-frame { min-height: 650px; }
}

@media (max-width: 980px) {
    .home-location-inner,
    .find-location-layout {
        grid-template-columns: 1fr;
    }

    .home-location-map,
    .find-map-frame {
        min-height: 430px;
    }

    .find-hero-art {
        width: 64%;
        opacity: .45;
    }

    .find-journey-grid {
        grid-template-columns: 1fr;
    }

    .find-journey-grid article {
        min-height: 0;
    }
}

@media (max-width: 720px) {
    .home-location-inner,
    .find-location-layout,
    .find-hero-copy {
        width: calc(100% - 30px);
    }

    .home-location,
    .find-location-section {
        padding: 62px 0;
    }

    .home-location-facts {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .home-location-facts span {
        min-width: 0;
    }

    .home-location-map,
    .find-map-frame {
        min-height: 360px;
        border-width: 6px;
        border-radius: 25px 6px 25px 6px;
    }

    .find-hero {
        min-height: 470px;
        margin-top: 14px;
    }

    .find-hero-copy h1 {
        max-width: 430px;
        font-size: clamp(3rem, 15vw, 4.7rem);
    }

    .find-hero-copy p {
        max-width: 430px;
        padding-right: 10px;
    }

    .find-hero-art {
        width: 100%;
        opacity: .26;
    }
}

@media (max-width: 540px) {
    .public-topbar-contact {
        flex-wrap: wrap;
    }

    .public-topbar-contact a {
        padding: 2px 8px;
        font-size: .63rem;
    }

    .public-topbar-contact a + a {
        border-left: 0;
    }

    .public-topbar-contact .public-topbar-bookings {
        padding-left: 0;
    }

    .home-location-actions .btn,
    .find-journey-action .btn {
        width: 100%;
    }

    .home-location-pin,
    .find-map-badge {
        right: 12px;
        bottom: 12px;
    }

    .newsletter-table .table-actions {
        flex-wrap: wrap;
    }
}

/* Responsive web equivalent of the homepage lodge story artwork */
.lodge-about-showcase {
    position: relative;
    width: 100%;
    overflow: hidden;
    background: #fbf5eb;
}

.lodge-about-panel {
    position: relative;
    min-height: clamp(700px, 56vw, 900px);
    display: grid;
    grid-template-columns: minmax(535px, 51.2%) minmax(0, 48.8%);
    overflow: hidden;
    background:
        radial-gradient(circle at 12% 18%, rgba(255,255,255,.92), transparent 30%),
        linear-gradient(135deg, #fffdf8 0%, #f7eddd 100%);
}

.lodge-about-copy {
    position: relative;
    z-index: 3;
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding: clamp(56px, 5.4vw, 92px) clamp(42px, 4.4vw, 74px) clamp(50px, 5vw, 84px) max(42px, calc((100vw - 1680px) / 2));
    color: #292b23;
    background:
        linear-gradient(115deg, rgba(255,255,255,.28), transparent 38%),
        radial-gradient(circle at 3% 82%, rgba(107,124,68,.08), transparent 25%);
}

.lodge-about-copy::before {
    position: absolute;
    bottom: -36px;
    left: -25px;
    width: 350px;
    height: 138px;
    opacity: .2;
    background:
        radial-gradient(ellipse at 24% 85%, #6b7445 0 12%, transparent 13%),
        radial-gradient(ellipse at 50% 90%, #6b7445 0 17%, transparent 18%),
        radial-gradient(ellipse at 78% 92%, #6b7445 0 12%, transparent 13%);
    content: "";
}

.lodge-about-copy::after {
    position: absolute;
    z-index: -1;
    top: -8%;
    right: -92px;
    width: 184px;
    height: 116%;
    border-right: 2px solid rgba(236,92,32,.42);
    border-radius: 50%;
    background: #f8efe2;
    box-shadow: 18px 0 0 rgba(255,255,255,.68), 23px 0 0 rgba(233,91,32,.13);
    content: "";
}

.lodge-about-kicker {
    display: flex;
    align-items: center;
    gap: 11px;
    color: #585d3e;
    font-size: clamp(.78rem, 1vw, 1rem);
    font-weight: 850;
    letter-spacing: .02em;
}

.lodge-about-kicker svg {
    width: 26px;
    height: 26px;
    fill: none;
    stroke: #dd5a22;
    stroke-width: 1.7;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.lodge-about-kicker i {
    width: 5px;
    height: 5px;
    border-radius: 50%;
    background: #e45b22;
}

.lodge-about-rule {
    width: 110px;
    height: 2px;
    display: block;
    margin: 20px 0 26px;
    background: linear-gradient(90deg, #e25a22 0 68%, rgba(226,90,34,.12) 68%);
}

.lodge-about-copy h2 {
    max-width: 720px;
    margin: 0;
    color: #3e422e;
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(2.65rem, 4.2vw, 5rem);
    font-weight: 500;
    line-height: .98;
    letter-spacing: -.035em;
}

.lodge-about-pattern {
    width: 250px;
    height: 9px;
    display: block;
    margin: 22px 0 5px;
    opacity: .78;
    background:
        linear-gradient(135deg, transparent 35%, #e46128 36% 48%, transparent 49%) 0 0/16px 8px,
        linear-gradient(45deg, transparent 35%, #e46128 36% 48%, transparent 49%) 8px 0/16px 8px;
}

.lodge-about-wordmark {
    color: #d65720;
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(3.35rem, 5.6vw, 6rem);
    font-weight: 500;
    letter-spacing: .06em;
    line-height: 1;
}

.lodge-about-ornament {
    display: flex;
    align-items: center;
    gap: 7px;
    margin: 5px 0 22px 80px;
    color: #dd5b23;
}

.lodge-about-ornament i {
    width: 72px;
    height: 1px;
    background: currentColor;
}

.lodge-about-ornament b {
    font-size: .66rem;
}

.lodge-about-story {
    display: grid;
    gap: 16px;
}

.lodge-about-story article {
    display: grid;
    grid-template-columns: 54px minmax(0, 1fr);
    align-items: center;
    gap: 18px;
}

.lodge-about-story article + article {
    padding-top: 15px;
    border-top: 1px solid rgba(104,104,75,.15);
}

.lodge-about-icon,
.lodge-about-location-icon {
    width: 52px;
    height: 52px;
    display: grid;
    place-items: center;
    border: 1px solid rgba(255,255,255,.72);
    border-radius: 50%;
    color: #fff;
    background: linear-gradient(145deg, #74794b, #4f5731);
    box-shadow: 0 8px 20px rgba(73,78,43,.16);
}

.lodge-about-icon svg,
.lodge-about-location-icon svg {
    width: 27px;
    height: 27px;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.35;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.lodge-about-story p,
.lodge-about-location p {
    margin: 0;
    color: #4d4b43;
    font-size: clamp(.96rem, 1.05vw, 1.1rem);
    line-height: 1.58;
}

.lodge-about-location {
    display: grid;
    grid-template-columns: 58px minmax(0, 1fr);
    align-items: center;
    gap: 18px;
    margin-top: 20px;
    padding: 16px 20px;
    border: 1px solid rgba(226,90,34,.22);
    border-radius: 20px;
    background: rgba(255,255,255,.54);
    box-shadow: inset 0 1px 0 rgba(255,255,255,.8);
}

.lodge-about-location-icon {
    width: 56px;
    height: 56px;
    color: #fff;
    background: linear-gradient(145deg, #ff6b2c, #cc4614);
}

.lodge-about-photo {
    position: relative;
    z-index: 1;
    min-width: 0;
    min-height: 100%;
    margin-left: -48px;
    overflow: hidden;
    background: #d8c39c;
}

.lodge-about-photo img {
    width: 100%;
    height: 100%;
    display: block;
    object-fit: cover;
    object-position: 48% center;
    filter: saturate(.9) contrast(.97) brightness(1.04);
    transform: scale(1);
    transform-origin: top right;
    transition: transform 1.2s cubic-bezier(.2,.7,.2,1), filter .8s ease;
}

.lodge-about-showcase:hover .lodge-about-photo img {
    filter: saturate(.96) contrast(.98) brightness(1.06);
    transform: scale(1.04);
}

.lodge-about-photo-shade {
    position: absolute;
    inset: 0;
    pointer-events: none;
    background: linear-gradient(90deg, rgba(70,67,42,.14), transparent 24% 82%, rgba(38,34,19,.06));
}

.lodge-about-leaf-art {
    position: absolute;
    right: 6%;
    bottom: -18px;
    width: 190px;
    height: 160px;
    color: rgba(255,244,220,.34);
}

.lodge-about-leaf-art svg {
    width: 100%;
    height: 100%;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.2;
}

.lodge-about-showcase + .public-section {
    margin-top: 0;
}

@media (min-width: 1680px) {
    .lodge-about-panel {
        min-height: 920px;
        grid-template-columns: 49.2% 50.8%;
    }

    .lodge-about-copy {
        padding-left: max(70px, calc((100vw - 1760px) / 2));
    }

    .lodge-about-photo {
        margin-left: -68px;
    }
}

@media (max-width: 1180px) {
    .lodge-about-panel {
        min-height: 760px;
        grid-template-columns: minmax(500px, 54%) minmax(0, 46%);
    }

    .lodge-about-copy {
        padding: 52px 44px 48px 38px;
    }

    .lodge-about-copy::after {
        right: -70px;
        width: 150px;
    }

    .lodge-about-photo {
        margin-left: -34px;
    }

    .lodge-about-copy h2 {
        font-size: clamp(2.7rem, 5vw, 4rem);
    }
}

@media (max-width: 860px) {
    .lodge-about-panel {
        min-height: 0;
        grid-template-columns: 1fr;
    }

    .lodge-about-copy {
        padding: 58px 28px 48px;
    }

    .lodge-about-copy::after {
        top: auto;
        right: -8%;
        bottom: -92px;
        width: 116%;
        height: 150px;
        border-right: 0;
        border-bottom: 2px solid rgba(236,92,32,.4);
        border-radius: 50%;
        box-shadow: 0 13px 0 rgba(255,255,255,.65), 0 18px 0 rgba(233,91,32,.12);
    }

    .lodge-about-photo {
        min-height: 540px;
        margin-left: 0;
    }

    .lodge-about-photo img {
        object-position: 48% center;
    }
}

@media (max-width: 540px) {
    .lodge-about-copy {
        padding: 46px 20px 40px;
    }

    .lodge-about-kicker {
        font-size: .7rem;
    }

    .lodge-about-kicker svg {
        width: 22px;
        height: 22px;
    }

    .lodge-about-copy h2 {
        font-size: clamp(2.35rem, 12vw, 3.35rem);
    }

    .lodge-about-pattern {
        width: 180px;
    }

    .lodge-about-wordmark {
        font-size: 3.6rem;
    }

    .lodge-about-ornament {
        margin-left: 36px;
    }

    .lodge-about-story article {
        grid-template-columns: 44px minmax(0, 1fr);
        align-items: flex-start;
        gap: 12px;
    }

    .lodge-about-icon {
        width: 44px;
        height: 44px;
    }

    .lodge-about-icon svg {
        width: 23px;
        height: 23px;
    }

    .lodge-about-story p,
    .lodge-about-location p {
        font-size: .9rem;
        line-height: 1.6;
    }

    .lodge-about-location {
        grid-template-columns: 46px minmax(0, 1fr);
        gap: 12px;
        padding: 14px;
        border-radius: 16px;
    }

    .lodge-about-location-icon {
        width: 46px;
        height: 46px;
    }

    .lodge-about-photo {
        min-height: 390px;
    }
}

.homepage-intro-admin-layout {
    display: grid;
    grid-template-columns: minmax(250px, .82fr) minmax(320px, 1.18fr);
    align-items: center;
    gap: 20px;
}

.homepage-intro-admin-preview {
    position: relative;
    height: 190px;
    overflow: hidden;
    border: 1px solid var(--line);
    border-radius: 15px;
    background: #eee7da;
}

.homepage-intro-admin-preview img {
    width: 100%;
    height: 100%;
    display: block;
    object-fit: cover;
    object-position: 88% center;
}

.homepage-intro-admin-preview span {
    position: absolute;
    right: 10px;
    bottom: 10px;
    padding: 5px 8px;
    border-radius: 7px;
    color: #fff;
    background: rgba(31,35,27,.78);
    font-size: .64rem;
    font-weight: 800;
    backdrop-filter: blur(8px);
}

.homepage-intro-admin-form .field {
    margin-bottom: 5px;
}

@media (max-width: 760px) {
    .homepage-intro-admin-layout {
        grid-template-columns: 1fr;
    }
}
