:root {
    --ink: #f8f3ea;
    --muted: rgba(255, 252, 246, 0.9);
    --soft: rgba(248, 243, 234, 0.12);
    --gold: #d7b46a;
    --deep: #07100e;
    --deep-veil: rgba(7, 16, 14, 0.68);
    --header-height: 204px;
    --admin-strip-height: 0px;
}

/* Executive retreats landing page */
.retreat-page {
    background: #07162d;
    color: #fffaf0;
}

.retreat-hero {
    min-height: min(920px, 92vh);
    overflow: hidden;
    position: relative;
}

.retreat-hero > img {
    height: 100%;
    inset: 0;
    object-fit: cover;
    position: absolute;
    width: 100%;
}

.retreat-hero-veil {
    background: linear-gradient(90deg, rgba(3, 12, 27, .94) 0%, rgba(3, 12, 27, .66) 48%, rgba(3, 12, 27, .1) 78%), linear-gradient(0deg, rgba(3, 12, 27, .55), transparent 48%);
    inset: 0;
    position: absolute;
}

.retreat-hero-copy {
    max-width: 1050px;
    padding: clamp(150px, 18vw, 250px) clamp(24px, 8vw, 130px) 110px;
    position: relative;
    z-index: 1;
}

.retreat-hero-copy h1 {
    font-family: "Playfair Display", serif;
    font-size: clamp(3.7rem, 7.7vw, 8rem);
    line-height: .92;
    margin: 28px 0 34px;
}

.retreat-hero-copy h1 em,
.retreat-collection h2 em,
.retreat-inclusions h2 em {
    color: #e1b858;
    font-weight: inherit;
}

.retreat-hero-copy > p:not(.section-kicker) {
    color: #fffaf0;
    font-size: clamp(1.2rem, 1.7vw, 1.65rem);
    line-height: 1.65;
    max-width: 760px;
}

.retreat-hero-actions {
    align-items: center;
    display: flex;
    flex-wrap: wrap;
    gap: 28px;
    margin-top: 42px;
}

.retreat-text-link {
    color: #fff4da;
    font-weight: 600;
}

.retreat-hero-note {
    background: rgba(5, 17, 36, .88);
    border-left: 4px solid #d7b46a;
    bottom: 42px;
    display: grid;
    padding: 20px 30px;
    position: absolute;
    right: clamp(24px, 6vw, 100px);
    z-index: 1;
}

.retreat-hero-note span,
.retreat-story-copy > span,
.retreat-destination-card span {
    color: #e1bd67;
    font-size: .85rem;
    font-weight: 700;
    letter-spacing: .1em;
    text-transform: uppercase;
}

.retreat-hero-note strong { font-family: "Playfair Display", serif; font-size: 1.7rem; }
.retreat-hero-note small { color: #eee4d3; }

.retreat-intro {
    align-items: start;
    background: #f2ecdf;
    color: #060606;
    display: grid;
    gap: clamp(35px, 6vw, 100px);
    grid-template-columns: .55fr 1.15fr 1fr;
    padding: clamp(75px, 9vw, 135px) clamp(24px, 8vw, 130px);
}

.retreat-intro .section-kicker,
.retreat-intro p { color: #000; }
.retreat-intro h2,
.retreat-collection h2,
.retreat-inclusions h2,
.retreat-booking h2 {
    font-family: "Playfair Display", serif;
    font-size: clamp(2.8rem, 5vw, 5.6rem);
    line-height: 1.02;
}
.retreat-intro > div p { color: #000; font-size: 1.15rem; line-height: 1.85; }
.retreat-intro > div p + p { margin-top: 22px; }

.retreat-collection { padding: clamp(85px, 10vw, 150px) clamp(24px, 8vw, 130px); }
.retreat-collection > header { margin-bottom: 70px; }
.retreat-story { align-items: stretch; display: grid; grid-template-columns: 1.25fr .75fr; }
.retreat-story-image { min-height: 650px; }
.retreat-story-image img { height: 100%; object-fit: cover; width: 100%; }
.retreat-story-copy { background: #f2ecdf; color: #060606; padding: clamp(38px, 5vw, 80px); }
.retreat-story-copy h3,
.retreat-destination-card h3 { font-family: "Playfair Display", serif; font-size: clamp(2rem, 3vw, 3.25rem); line-height: 1.05; margin: 20px 0; }
.retreat-story-copy p { color: #000; font-size: 1.1rem; line-height: 1.8; }
.retreat-story-copy ul { color: #000; line-height: 1.8; margin: 25px 0; padding-left: 22px; }
.retreat-story-copy a,
.retreat-destination-card a { color: #75500e; font-weight: 700; text-decoration: underline; text-underline-offset: 5px; }

.retreat-destination-grid { display: grid; gap: 28px; grid-template-columns: repeat(2, minmax(0, 1fr)); margin-top: 30px; }
.retreat-destination-card { background: #f2ecdf; color: #060606; display: grid; grid-template-columns: .9fr 1.1fr; min-height: 410px; }
.retreat-destination-card img { height: 100%; min-height: 410px; object-fit: cover; width: 100%; }
.retreat-destination-card > div { padding: clamp(28px, 3vw, 48px); }
.retreat-destination-card p { color: #000; line-height: 1.75; margin-bottom: 25px; }

.retreat-moments { display: grid; gap: 12px; grid-auto-rows: 360px; grid-template-columns: repeat(4, 1fr); padding: 12px; }
.retreat-moments figure { overflow: hidden; }
.retreat-moments img { height: 100%; object-fit: cover; transition: transform .7s ease; width: 100%; }
.retreat-moments figure:hover img { transform: scale(1.035); }
.retreat-moment-wide { grid-column: span 2; }

.retreat-inclusions { background: #f2ecdf; color: #060606; display: grid; gap: 80px; grid-template-columns: .8fr 1.2fr; padding: clamp(85px, 10vw, 150px) clamp(24px, 8vw, 130px); }
.retreat-inclusions .section-kicker { color: #72500f; }
.retreat-inclusion-grid { display: grid; gap: 35px; grid-template-columns: repeat(2, 1fr); }
.retreat-inclusion-grid article { border-top: 2px solid #c4a052; padding-top: 22px; }
.retreat-inclusion-grid span { color: #8b641d; font-weight: 700; }
.retreat-inclusion-grid h3 { font-family: "Playfair Display", serif; font-size: 1.8rem; margin: 12px 0; }
.retreat-inclusion-grid p { color: #000; line-height: 1.7; }

.retreat-booking { background: radial-gradient(circle at 14% 20%, #164679 0, #091b37 42%, #040d1d 100%); display: grid; gap: clamp(45px, 8vw, 130px); grid-template-columns: .85fr 1.15fr; padding: clamp(90px, 10vw, 150px) clamp(24px, 8vw, 130px); }
.retreat-booking-intro > p:not(.section-kicker) { color: #fffaf0; font-size: 1.15rem; line-height: 1.8; margin-top: 28px; }
.retreat-booking-assurance { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 35px; }
.retreat-booking-assurance span { border: 1px solid rgba(215, 180, 106, .65); border-radius: 999px; color: #ffe5a4; padding: 9px 15px; }
.retreat-booking-form { background: #f5efe3; border: 2px solid #c9a252; border-radius: 18px; box-shadow: 0 30px 65px rgba(0,0,0,.35); display: grid; gap: 24px; padding: clamp(30px, 5vw, 60px); }
.retreat-booking-form label { color: #000; display: grid; font-size: 1rem; font-weight: 700; gap: 10px; }
.retreat-booking-form input,
.retreat-booking-form select,
.retreat-booking-form textarea { background: #fff; border: 2px solid #aa8848; border-radius: 8px; color: #000; font: inherit; min-height: 58px; padding: 14px 16px; width: 100%; }
.retreat-booking-form textarea { min-height: 150px; }
.retreat-form-row { display: grid; gap: 18px; grid-template-columns: 1fr 1fr; }
.retreat-booking-form small { color: #332c23; line-height: 1.55; }
.retreat-submit { background: #050505; border: 3px solid #d7b46a; color: #f1cd73; box-shadow: inset 0 2px 0 rgba(255,240,170,.35), inset 0 -4px 0 #5e3e08, 0 5px 0 #795713; }

@media (max-width: 1100px) {
    .retreat-intro { grid-template-columns: 1fr 1.4fr; }
    .retreat-intro > div { grid-column: 1 / -1; }
    .retreat-destination-card { grid-template-columns: 1fr; }
    .retreat-destination-card img { max-height: 370px; }
}

@media (max-width: 760px) {
    .retreat-hero-note { bottom: 20px; left: 20px; right: 20px; }
    .retreat-hero-copy { padding-bottom: 210px; }
    .retreat-intro,
    .retreat-story,
    .retreat-destination-grid,
    .retreat-inclusions,
    .retreat-booking { grid-template-columns: 1fr; }
    .retreat-story-image { min-height: 430px; }
    .retreat-moments { grid-auto-rows: 260px; grid-template-columns: 1fr 1fr; }
    .retreat-moment-wide { grid-column: span 2; }
    .retreat-inclusion-grid,
    .retreat-form-row { grid-template-columns: 1fr; }
}

/* Site-wide legibility and contrast */
body {
    font-weight: 400;
    line-height: 1.65;
}

.page p,
.dashboard-page p,
.experience-detail-copy,
.profile-copy p,
.profile-intro > p:last-of-type,
.safari-editorial-copy > p,
.safari-editorial-copy li,
.safari-specialist-grid li,
.feature-copy {
    color: rgba(255, 252, 246, 0.92);
    font-weight: 400;
}

.page-hero-content > p:last-of-type,
.hero-copy {
    color: #fffaf0;
    font-weight: 500;
    text-shadow: 0 2px 12px rgba(0, 0, 0, 0.7);
}

.feature-copy {
    line-height: 1.65;
    text-shadow: 0 1px 7px rgba(0, 0, 0, 0.82);
}

.dashboard-form label {
    color: #fff8ea;
    font-weight: 600;
}

.dashboard-form input,
.dashboard-form textarea,
.dashboard-form select {
    background: rgba(2, 12, 28, 0.96);
    border-color: rgba(240, 205, 122, 0.52);
    color: #ffffff;
    font-weight: 500;
}

.dashboard-form input::placeholder,
.dashboard-form textarea::placeholder {
    color: rgba(255, 252, 246, 0.72);
    opacity: 1;
}

.dashboard-form select option {
    background: #071b3a;
    color: #ffffff;
}

.dashboard-form input:focus,
.dashboard-form textarea:focus,
.dashboard-form select:focus {
    border-color: #f0ca70;
    box-shadow: 0 0 0 3px rgba(240, 202, 112, 0.2);
}

.booking-payments p,
.booking-payments small,
.mini-payment-grid small {
    color: rgba(255, 252, 246, 0.88);
}

.wellness-philosophy p,
.wellness-values p,
.wellness-care-section p,
.wellness-care-section li {
    color: #3f3832;
    font-weight: 500;
    text-shadow: none;
}

.wellness-treatment-copy > p:not(:first-child) {
    color: rgba(255, 252, 246, 0.9);
}

body.has-admin-strip {
    --admin-strip-height: 48px;
}

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

html {
    scroll-behavior: smooth;
}

body {
    background:
        radial-gradient(circle at 12% 18%, rgba(29, 89, 162, 0.38) 0%, rgba(29, 89, 162, 0) 34%),
        radial-gradient(circle at 88% 42%, rgba(215, 180, 106, 0.14) 0%, rgba(215, 180, 106, 0) 28%),
        linear-gradient(132deg, #06142b 0%, #0c2f5d 31%, #081a36 55%, #18140e 76%, #071d3b 100%);
    color: var(--ink);
    font-family: "Poppins", sans-serif;
    min-height: 100vh;
}

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

.site-header {
    align-items: center;
    display: grid;
    gap: 14px clamp(16px, 2vw, 30px);
    grid-template-columns: 1fr auto;
    grid-template-rows: auto auto;
    height: var(--header-height);
    left: 0;
    padding: 14px clamp(18px, 3.2vw, 52px) 18px;
    position: fixed;
    right: 0;
    top: 0;
    transition: background 0.35s ease, border-color 0.35s ease, height 0.35s ease;
    z-index: 20;
}

.site-header.is-scrolled {
    background: rgba(7, 16, 14, 0.94);
    border-bottom: 1px solid rgba(213, 218, 218, 0.22);
    height: 188px;
}

.brand-cluster {
    align-items: flex-start;
    display: flex;
    flex-direction: column;
    gap: 10px;
    grid-column: 1;
    grid-row: 1;
}

.brand {
    align-items: flex-start;
    background: linear-gradient(145deg, #123e77 0%, #082752 55%, #061a38 100%);
    border: 2px solid #d7b46a;
    border-radius: 12px;
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.18),
        0 4px 0 #765819,
        0 8px 18px rgba(0, 0, 0, 0.34);
    display: inline-flex;
    flex-direction: column;
    gap: 5px;
    line-height: 1;
    min-width: max-content;
    padding: 12px 20px 13px;
}

.brand-logo {
    display: block;
    max-height: 38px;
    max-width: 150px;
    object-fit: contain;
}

.brand-mark {
    color: #f1cc75;
    font-size: clamp(1.25rem, 1.65vw, 1.7rem);
    font-weight: 700;
    letter-spacing: 0.12em;
    text-shadow: 0 1px 0 #5b4211, 0 0 10px rgba(215, 180, 106, 0.22);
}

.brand-subtitle {
    color: #e5bf65;
    font-family: "Playfair Display", serif;
    font-size: clamp(1.05rem, 1.25vw, 1.3rem);
    font-weight: 700;
}

.main-nav {
    align-items: center;
    display: flex;
    gap: clamp(8px, 0.9vw, 14px);
    grid-column: 1 / -1;
    grid-row: 2;
    justify-content: center;
    overflow-x: auto;
    padding: 3px 2px 10px;
    scrollbar-width: none;
}

.main-nav::-webkit-scrollbar {
    display: none;
}

.main-nav a {
    align-items: center;
    background:
        linear-gradient(180deg, #f7dc91 0%, #d8b35e 47%, #b78931 52%, #e2c16f 100%);
    border: 1px solid #d9dfdf;
    border-bottom-color: #7f8788;
    border-radius: 13px;
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.72),
        inset 0 -2px 0 rgba(80, 54, 7, 0.3),
        0 3px 0 #745619,
        0 6px 12px rgba(0, 0, 0, 0.34);
    color: #11130f;
    display: inline-flex;
    flex: 0 0 auto;
    font-size: clamp(1.05rem, 1.3vw, 1.3rem);
    font-weight: 800;
    justify-content: center;
    letter-spacing: 0.045em;
    line-height: 1.12;
    min-height: 62px;
    min-width: max-content;
    padding: 8px clamp(16px, 1.5vw, 24px);
    position: relative;
    text-transform: uppercase;
    transition: transform 0.18s ease, box-shadow 0.18s ease, filter 0.18s ease;
    text-align: center;
    white-space: nowrap;
}

.main-nav a::after {
    content: none;
}

.main-nav a:hover,
.main-nav a:focus-visible {
    filter: brightness(1.12) saturate(1.08);
    transform: translateY(-2px);
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.8),
        inset 0 -2px 0 rgba(80, 54, 7, 0.26),
        0 5px 0 #745619,
        0 9px 16px rgba(0, 0, 0, 0.4);
}

.main-nav a.is-active {
    background:
        linear-gradient(180deg, #fff0b5 0%, #e4c36c 45%, #b98a2f 51%, #d1aa4e 100%);
    border-color: #f2f6f6;
    box-shadow:
        inset 0 2px 4px rgba(72, 49, 7, 0.3),
        inset 0 0 0 1px rgba(255, 255, 255, 0.42),
        0 1px 0 #715416,
        0 4px 10px rgba(0, 0, 0, 0.32);
    transform: translateY(2px);
}

.nav-cta,
.btn {
    align-items: center;
    border: 1px solid rgba(215, 180, 106, 0.72);
    border-radius: 999px;
    display: inline-flex;
    justify-content: center;
    transition: background 0.3s ease, color 0.3s ease, border-color 0.3s ease;
}

.nav-cta {
    color: var(--ink);
    font-size: 1rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    min-height: 58px;
    padding: 0 30px;
    text-transform: uppercase;
    white-space: nowrap;
}

.header-actions {
    align-items: center;
    display: flex;
    gap: 10px;
    grid-column: 2;
    grid-row: 1;
    justify-content: flex-end;
}

.admin-cta {
    background: var(--gold);
    border-color: var(--gold);
    color: #10100d;
    min-width: 180px;
}

.main-nav .journey-cta {
    background: linear-gradient(180deg, #184f8e 0%, #0c3266 52%, #071f46 100%);
    border: 2px solid #e0bc63;
    border-bottom-color: #9d782a;
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.24),
        0 3px 0 #6e5218,
        0 6px 12px rgba(0, 0, 0, 0.34);
    color: #f3cf77;
    min-height: 62px;
    min-width: max-content;
    padding: 8px clamp(18px, 1.7vw, 26px);
}

.admin-cta:hover,
.admin-cta:focus-visible {
    background: transparent;
    color: var(--ink);
}

.nav-cta:hover,
.nav-cta:focus-visible,
.btn:hover,
.btn:focus-visible {
    background: var(--gold);
    border-color: var(--gold);
    color: #10100d;
}

.admin-strip {
    align-items: center;
    background: rgba(10, 21, 18, 0.92);
    border-bottom: 1px solid rgba(215, 180, 106, 0.24);
    border-top: 1px solid rgba(248, 243, 234, 0.08);
    display: flex;
    gap: 10px;
    height: var(--admin-strip-height);
    justify-content: center;
    left: 0;
    overflow-x: auto;
    padding: 0 clamp(18px, 5vw, 72px);
    position: fixed;
    right: 0;
    scrollbar-width: none;
    top: var(--header-height);
    z-index: 19;
}

.admin-strip::-webkit-scrollbar {
    display: none;
}

.admin-strip a {
    border: 1px solid rgba(248, 243, 234, 0.12);
    color: rgba(248, 243, 234, 0.82);
    flex: 0 0 auto;
    font-size: 0.7rem;
    font-weight: 500;
    letter-spacing: 0.08em;
    padding: 8px 12px;
    text-transform: uppercase;
    transition: border-color 0.25s ease, color 0.25s ease;
}

.admin-strip a:hover,
.admin-strip a:focus-visible {
    border-color: rgba(215, 180, 106, 0.68);
    color: var(--gold);
}

.hero {
    align-items: flex-start;
    display: flex;
    min-height: 100vh;
    overflow: hidden;
    padding: calc(var(--header-height) + var(--admin-strip-height) + 42px) clamp(22px, 8vw, 110px) 64px;
    position: relative;
}

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

.hero-slide {
    animation: heroFade 24s infinite;
    background-position: center;
    background-size: cover;
    opacity: 0;
    transform: scale(1.04);
}

.hero-slide-one,
.hero-slide-1 {
    animation-delay: -2s;
    background-image: url("/images/nairobi/Ol20Acacia20Deck.webp");
}

.hero-slide-two,
.hero-slide-2 {
    animation-delay: 6s;
    background-image: url("/images/nairobi/pf_aerial_villa_enh.jpg");
}

.hero-slide-three,
.hero-slide-3 {
    animation-delay: 14s;
    background-image: url("/images/nairobi/Cheval-Riverside.webp");
}

.hero-overlay {
    background:
        linear-gradient(90deg, rgba(7, 16, 14, 0.88) 0%, rgba(7, 16, 14, 0.58) 42%, rgba(7, 16, 14, 0.18) 100%),
        linear-gradient(0deg, rgba(7, 16, 14, 0.72) 0%, rgba(7, 16, 14, 0.08) 42%, rgba(7, 16, 14, 0.52) 100%);
    z-index: 2;
}

.hero-content {
    max-width: 820px;
    position: relative;
    z-index: 3;
}

.hero-kicker {
    color: var(--gold);
    font-size: 0.82rem;
    font-weight: 500;
    letter-spacing: 0.24em;
    margin-bottom: 24px;
    text-transform: uppercase;
}

.hero h1 {
    background: linear-gradient(145deg, rgba(20, 67, 122, 0.96) 0%, rgba(8, 39, 82, 0.97) 58%, rgba(5, 23, 51, 0.98) 100%);
    border: 3px solid #d7b46a;
    border-radius: 22px;
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.2),
        inset 0 -3px 0 rgba(0, 0, 0, 0.28),
        0 5px 0 #765819,
        0 14px 34px rgba(0, 0, 0, 0.38);
    color: #f1cc75;
    display: inline-block;
    font-family: "Playfair Display", serif;
    font-size: clamp(3.6rem, 8vw, 8.4rem);
    font-weight: 700;
    line-height: 0.94;
    max-width: 900px;
    padding: 0.16em 0.24em 0.2em;
    text-shadow:
        0 2px 0 #5d4310,
        0 0 18px rgba(215, 180, 106, 0.2);
}

.hero-copy {
    color: #ffffff;
    font-family: "Playfair Display", serif;
    font-size: clamp(2.2rem, 4vw, 3.75rem);
    font-style: italic;
    font-weight: 600;
    line-height: 1.22;
    margin: 34px 0 42px;
    max-width: 980px;
    text-shadow: 0 3px 14px rgba(0, 0, 0, 0.72);
}

.btn {
    background: rgba(7, 16, 14, 0.12);
    color: var(--ink);
    font-size: 0.86rem;
    font-weight: 500;
    letter-spacing: 0.1em;
    min-height: 56px;
    padding: 0 34px;
    text-transform: uppercase;
}

.hero-scroll-cue {
    bottom: 34px;
    height: 52px;
    left: 50%;
    position: absolute;
    transform: translateX(-50%);
    width: 1px;
    z-index: 4;
}

.hero-scroll-cue span {
    animation: scrollCue 1.8s infinite;
    background: rgba(248, 243, 234, 0.72);
    display: block;
    height: 100%;
    width: 1px;
}

.home-sections {
    background:
        radial-gradient(circle at 10% 22%, rgba(39, 104, 181, 0.28), transparent 32%),
        radial-gradient(circle at 88% 64%, rgba(215, 180, 106, 0.12), transparent 28%),
        linear-gradient(145deg, #06162f 0%, #0d315f 30%, #091c3a 54%, #17140f 76%, #082144 100%);
}

.content-section {
    display: grid;
    gap: clamp(32px, 5vw, 72px);
    grid-template-columns: minmax(190px, 0.28fr) minmax(0, 1fr);
    padding: clamp(76px, 9vw, 132px) clamp(22px, 6vw, 92px);
}

.content-section + .content-section {
    border-top: 1px solid rgba(224, 191, 111, 0.24);
}

.split-section {
    background:
        linear-gradient(125deg, rgba(12, 49, 96, 0.66), rgba(8, 24, 52, 0.68) 52%, rgba(31, 25, 15, 0.62));
}

.section-heading {
    align-content: start;
    align-items: start;
    display: flex;
    flex-direction: column;
    gap: 22px;
    margin: 0;
    max-width: 280px;
    padding-top: 4px;
}

.section-heading h2 {
    color: var(--ink);
    font-family: "Playfair Display", serif;
    font-size: clamp(1.3rem, 2vw, 2.3rem);
    font-weight: 700;
    line-height: 1.02;
    max-width: 280px;
}

.section-heading a {
    border-bottom: 1px solid rgba(215, 180, 106, 0.72);
    color: var(--gold);
    font-size: 0.76rem;
    font-weight: 500;
    letter-spacing: 0.1em;
    padding-bottom: 8px;
    text-transform: uppercase;
    white-space: nowrap;
}

.feature-grid {
    display: grid;
    gap: 18px;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    margin: 0;
    max-width: 1180px;
}

.content-section:nth-child(even) {
    grid-template-columns: minmax(0, 1fr) minmax(190px, 0.28fr);
}

.content-section:nth-child(even) .section-heading {
    grid-column: 2;
    grid-row: 1;
}

.content-section:nth-child(even) .feature-grid {
    grid-column: 1;
    grid-row: 1;
}

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

.hospitality-card {
    aspect-ratio: 0.9;
    min-height: 390px;
}

/* Cultural Exchange gateway card: keep the human exchange clearly visible */
.cultural-exchange-card img {
    display: block;
    filter: saturate(1.1) contrast(1.04);
    height: 56%;
    object-position: 50% 50%;
    opacity: 1;
    position: absolute;
    top: 0;
}

.cultural-exchange-card .card-shade {
    background: linear-gradient(180deg, transparent 0 51%, rgba(4, 20, 44, .78) 57%, #061a38 68%, #061a38 100%);
}

.cultural-exchange-card .feature-card-content {
    background: #061a38;
    gap: 8px;
    height: 44%;
    justify-content: center;
    padding: 16px 22px 18px;
    width: 100%;
}

.cultural-exchange-card .feature-title {
    font-size: clamp(1.7rem, 2.15vw, 2.15rem);
    line-height: .96;
}

.cultural-exchange-card .feature-copy {
    font-size: .88rem;
    line-height: 1.48;
}

.cultural-exchange-card .feature-action {
    margin-top: 0;
}

.feature-action {
    color: var(--gold);
    font-size: 0.7rem;
    font-weight: 600;
    letter-spacing: 0.1em;
    margin-top: 4px;
    text-transform: uppercase;
}

.experience-card-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 9px;
    margin-top: 4px;
}

.experience-card-actions a {
    border: 1px solid rgba(215, 180, 106, 0.68);
    color: var(--gold);
    font-size: 0.68rem;
    font-weight: 600;
    letter-spacing: 0.09em;
    padding: 10px 13px;
    text-transform: uppercase;
}

.experience-card-actions a:last-child {
    background: var(--gold);
    color: #071b3a;
}

.experience-card-actions a:hover,
.experience-card-actions a:focus-visible {
    background: #f0cf7e;
    color: #071b3a;
}

.feature-card {
    aspect-ratio: 0.82;
    background: linear-gradient(145deg, #164474, #071b3a 65%, #1f190e);
    border: 1px solid rgba(224, 191, 111, 0.46);
    border-radius: 12px;
    box-shadow: 0 18px 38px rgba(0, 0, 0, 0.3);
    display: flex;
    min-height: 440px;
    overflow: hidden;
    position: relative;
}

.compact-grid .feature-card {
    aspect-ratio: 1.05;
    min-height: 360px;
}

.feature-card img {
    height: 100%;
    inset: 0;
    object-fit: cover;
    position: absolute;
    transition: transform 0.7s ease;
    width: 100%;
}

.feature-card:hover img,
.feature-card:focus-visible img {
    transform: scale(1.045);
}

.feature-card:hover,
.feature-card:focus-visible {
    border-color: rgba(245, 211, 127, 0.9);
    box-shadow: 0 22px 48px rgba(2, 9, 22, 0.48);
}

.card-shade {
    background:
        linear-gradient(0deg, rgba(4, 17, 39, 0.94) 0%, rgba(7, 34, 71, 0.42) 54%, rgba(20, 17, 11, 0.08) 100%);
    inset: 0;
    position: absolute;
}

.feature-card-content {
    align-self: flex-end;
    display: flex;
    flex-direction: column;
    gap: 12px;
    padding: 28px;
    position: relative;
    z-index: 2;
}

.feature-title {
    color: var(--ink);
    font-family: "Playfair Display", serif;
    font-size: clamp(1.7rem, 2.5vw, 2.5rem);
    line-height: 1;
}

.feature-copy {
    color: var(--muted);
    font-size: 0.95rem;
    line-height: 1.7;
}

.profile-link {
    color: var(--gold);
    font-size: 0.72rem;
    font-weight: 500;
    letter-spacing: 0.1em;
    text-transform: uppercase;
}

.portrait-card img {
    object-fit: contain;
    object-position: center top;
}

.portrait-card:hover img,
.portrait-card:focus-visible img {
    transform: none;
}

.portrait-card .feature-card-content {
    background: linear-gradient(0deg, rgba(4, 17, 39, 0.97), rgba(4, 17, 39, 0.82) 72%, transparent);
    gap: 9px;
    padding-top: 58px;
    width: 100%;
}

.portrait-card .feature-copy {
    display: -webkit-box;
    line-height: 1.55;
    overflow: hidden;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 3;
}

.portrait-card .profile-link {
    margin-top: 2px;
}

.homepage-original-companions { display: none; }
.content-section.homepage-feature-combination { align-items: stretch; grid-template-columns: minmax(0,1fr); row-gap: clamp(42px,6vw,76px); }
.content-section.homepage-feature-combination > .section-heading { grid-column: 1; grid-row: auto; max-width: 760px; }
.content-section.homepage-feature-combination > .feature-grid { gap: clamp(18px,2vw,28px); grid-column: 1; grid-row: auto; grid-template-columns: repeat(5,minmax(0,1fr)); max-width: none; min-width: 0; width: 100%; }
.homepage-feature-combination > .feature-grid .feature-card { min-height: 400px; }
.homepage-six-companions { border-top: 1px solid rgba(224,191,111,.28); display: grid; gap: clamp(24px,3vw,38px); grid-column: 1; min-width: 0; padding-top: clamp(38px,5vw,64px); width: 100%; }
.homepage-six-heading { align-items: end; display: flex; gap: 28px; justify-content: space-between; }
.homepage-six-heading > div { max-width: 720px; }
.homepage-six-heading h3 { color: #e8bd55; font: 700 clamp(1.9rem,3vw,3.15rem)/1.08 "Playfair Display",serif; margin: 8px 0 12px; text-shadow: 0 1px #5a3904,0 0 18px rgba(255,214,110,.2); }
.homepage-six-heading p:last-child { color: var(--muted); line-height: 1.7; margin: 0; }
.homepage-six-heading > a { border-bottom: 1px solid rgba(224,191,111,.55); color: var(--gold); flex: 0 0 auto; font-size: .75rem; letter-spacing: .1em; padding-bottom: 8px; text-transform: uppercase; }
.homepage-six-grid { display: grid; gap: clamp(18px,2vw,28px); grid-template-columns: repeat(5,minmax(0,1fr)); min-width: 0; width: 100%; }
.homepage-mini-profile { aspect-ratio: 4 / 3.35; background: #07162b; border: 1px solid rgba(224,191,111,.56); border-radius: 10px; box-shadow: 0 10px 24px rgba(0,0,0,.2); min-height: 155px; overflow: hidden; position: relative; isolation: isolate; }
.homepage-mini-profile::after { border: 1px solid rgba(255,226,145,.24); border-radius: 10px; content: ""; inset: 9px; pointer-events: none; position: absolute; z-index: 3; }
.homepage-mini-profile img { height: 100%; inset: 0; object-fit: cover; object-position: center top; position: absolute; transition: filter .45s ease, transform .55s cubic-bezier(.2,.7,.2,1); width: 100%; }
.homepage-mini-shade { background: linear-gradient(180deg,rgba(3,13,30,.04) 30%,rgba(3,13,30,.4) 58%,rgba(3,13,30,.98) 100%); inset: 0; position: absolute; z-index: 1; }
.homepage-mini-number { color: rgba(255,234,173,.9); font: 600 .72rem/1 "Montserrat",sans-serif; letter-spacing: .16em; position: absolute; right: 22px; top: 22px; z-index: 2; }
.homepage-mini-content { bottom: 0; display: grid; gap: 4px; left: 0; padding: 17px; position: absolute; right: 0; z-index: 2; }
.homepage-mini-content small { color: #f2d889; font-size: .65rem; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; }
.homepage-mini-content strong { color: #fff1bd; font: 700 clamp(.9rem,1.15vw,1.2rem)/1.12 "Playfair Display",serif; text-shadow: 0 2px 16px rgba(0,0,0,.78); }
.homepage-mini-action { align-items: center; color: rgba(255,255,255,.8); display: flex; font-size: .72rem; gap: 8px; letter-spacing: .06em; margin-top: 6px; text-transform: uppercase; transform: translateY(4px); transition: color .3s ease, transform .3s ease; }
.homepage-mini-profile:hover img,
.homepage-mini-profile:focus-visible img { filter: brightness(1.05) saturate(1.04); transform: scale(1.055); }
.homepage-mini-profile:hover .homepage-mini-action,
.homepage-mini-profile:focus-visible .homepage-mini-action { color: #f7d979; transform: translateY(0); }
.homepage-mini-profile:focus-visible { outline: 3px solid #f0ca70; outline-offset: 4px; }
.homepage-prime-profile { border-color: rgba(255,216,112,.8); box-shadow: 0 18px 42px rgba(0,0,0,.38),0 0 20px rgba(218,171,57,.13); }
.wellness-featured-therapists { background: linear-gradient(125deg,rgba(12,49,96,.92),rgba(8,24,52,.96) 58%,rgba(31,25,15,.9)); border-bottom: 1px solid rgba(224,191,111,.24); display: grid; gap: clamp(32px,5vw,64px); padding: clamp(64px,8vw,112px) clamp(22px,6vw,92px); }
.wellness-featured-heading { align-items: end; display: flex; gap: 30px; justify-content: space-between; }
.wellness-featured-heading > div { max-width: 760px; }
.wellness-featured-heading h2 { color: #e8bd55; font: 700 clamp(2rem,3.8vw,4rem)/1.04 "Playfair Display",serif; margin: 10px 0 16px; text-shadow: 0 1px #5a3904,0 0 18px rgba(255,214,110,.18); }
.wellness-featured-heading p:last-child { color: var(--muted); line-height: 1.75; margin: 0; }
.wellness-featured-heading > a { border-bottom: 1px solid rgba(224,191,111,.55); color: var(--gold); flex: 0 0 auto; font-size: .75rem; letter-spacing: .1em; padding-bottom: 8px; text-transform: uppercase; }
.wellness-featured-grid { display: grid; gap: clamp(18px,2vw,28px); grid-template-columns: repeat(5,minmax(0,1fr)); width: 100%; }
.wellness-featured-card { min-height: 400px; }
.wellness-card-kicker { color: #f2d889; font-size: .65rem; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; }
.wellness-featured-empty { align-items: flex-start; border: 1px solid rgba(224,191,111,.28); display: flex; flex-direction: column; gap: 18px; padding: clamp(24px,4vw,42px); }
.wellness-featured-empty p { color: var(--muted); margin: 0; }
.wellness-service-rate-grid { display: grid; gap: clamp(16px,2vw,24px); grid-template-columns: repeat(2,minmax(0,1fr)); }
.companion-rate-total.wellness-service-rate { background: linear-gradient(145deg,#164474,#071b3a 65%,#1f190e); border: 1px solid rgba(255,216,112,.72); border-radius: 12px; box-shadow: 0 18px 38px rgba(0,0,0,.3),0 0 18px rgba(218,171,57,.1); gap: 9px; min-height: 190px; padding: clamp(22px,3vw,32px); position: relative; transition: border-color .3s ease,box-shadow .3s ease,transform .3s ease; }
.companion-rate-total.wellness-service-rate::after { border: 1px solid rgba(255,226,145,.2); border-radius: 8px; content: ""; inset: 9px; pointer-events: none; position: absolute; }
.companion-rate-total.wellness-service-rate:hover { border-color: rgba(245,211,127,.95); box-shadow: 0 22px 48px rgba(2,9,22,.48),0 0 24px rgba(218,171,57,.18); transform: translateY(-4px); }
.wellness-service-rate h3 { color: #fff1bd; font: 700 clamp(1.25rem,2vw,1.8rem)/1.08 "Playfair Display",serif; margin: 0; position: relative; z-index: 1; }
.wellness-service-rate .wellness-rate-label { color: #f2d889; font-size: .65rem; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; }
.wellness-service-rate strong,.wellness-service-rate small { position: relative; z-index: 1; }
@media (max-width: 1100px) { .wellness-featured-grid { grid-template-columns: repeat(3,minmax(0,1fr)); } }
@media (max-width: 700px) { .wellness-featured-heading { align-items: flex-start; flex-direction: column; } .wellness-featured-grid,.wellness-service-rate-grid { grid-template-columns: 1fr; } .wellness-featured-card { min-height: 460px; } }
.prime-profile-control { align-items: flex-start !important; background: rgba(111,74,8,.2); border: 1px solid rgba(224,191,111,.45); border-radius: 10px; flex-wrap: wrap; padding: 15px; }
.prime-profile-control small { flex-basis: 100%; margin-left: 28px; }
@media (max-width: 1100px) { .homepage-feature-combination > .feature-grid { grid-template-columns: repeat(3,minmax(0,1fr)); } .homepage-six-grid { grid-template-columns: repeat(4,minmax(0,1fr)); } }
@media (max-width: 850px) { .homepage-six-grid { grid-template-columns: repeat(3,minmax(0,1fr)); } }
@media (max-width: 700px) { .homepage-feature-combination > .feature-grid { grid-template-columns: 1fr; } .homepage-feature-combination > .feature-grid .feature-card { min-height: 420px; } .homepage-six-heading { align-items: flex-start; flex-direction: column; } }
@media (max-width: 700px) { .homepage-six-grid { grid-template-columns: repeat(2,minmax(0,1fr)); } .homepage-mini-content { padding: 18px; } .homepage-mini-action { font-size: .62rem; } }
@media (max-width: 420px) { .homepage-six-grid { grid-template-columns: 1fr; } .homepage-mini-profile { aspect-ratio: 4 / 4.6; min-height: 320px; } }

/* Metallic gold typography for Elite Companion headings. */
.page-hero-models h1,
.profile-page h1,
.profile-page h2,
.portrait-card .feature-title,
.companion-rates-section h2 {
    color: #e8bd55;
    text-shadow: 0 1px 0 #6f4a08, 0 2px 0 #3d2905, 0 0 16px rgba(255, 211, 103, .28);
}

@supports ((-webkit-background-clip: text) or (background-clip: text)) {
    .page-hero-models h1,
    .profile-page h1,
    .profile-page h2,
    .portrait-card .feature-title,
    .companion-rates-section h2 {
        background: linear-gradient(105deg, #79520b 0%, #d39a24 18%, #fff1a7 38%, #c48716 54%, #ffe68a 72%, #8a5b09 100%);
        background-size: 220% 100%;
        -webkit-background-clip: text;
        background-clip: text;
        color: transparent;
        -webkit-text-fill-color: transparent;
    }
}

@media (prefers-reduced-motion: no-preference) {
    .page-hero-models h1,
    .profile-page h1,
    .profile-page h2,
    .portrait-card .feature-title,
    .companion-rates-section h2 { animation: companionGoldShine 7s ease-in-out infinite; }
}

@keyframes companionGoldShine {
    0%, 32%, 100% { background-position: 100% 50%; }
    48%, 65% { background-position: 0% 50%; }
}

.companion-rates-section { align-items: center; display: grid; gap: clamp(30px,6vw,80px); grid-template-columns: minmax(0,1fr) minmax(320px,520px); padding: clamp(64px,9vw,120px) clamp(22px,8vw,110px); }
.companion-rates-copy h2 { font: 700 clamp(2.2rem,4vw,4.5rem)/1.05 "Playfair Display",serif; margin: 12px 0 20px; }
.companion-rates-copy > p:last-child { color: var(--muted); line-height: 1.8; max-width: 660px; }
.companion-rate-card { background: linear-gradient(145deg,rgba(21,67,121,.95),rgba(5,24,53,.98) 65%,rgba(23,19,12,.98)); border: 1px solid rgba(224,191,111,.65); border-radius: 16px; box-shadow: 0 22px 50px rgba(0,0,0,.35); display: grid; gap: 20px; padding: clamp(24px,4vw,42px); }
.companion-rate-card label { color: var(--ink); display: grid; font-size: .78rem; font-weight: 700; gap: 8px; letter-spacing: .07em; text-transform: uppercase; }
.companion-rate-card select { background: #061a38; border: 1px solid rgba(224,191,111,.5); border-radius: 8px; color: #fff; min-height: 50px; padding: 10px 12px; width: 100%; }
.companion-rate-total { background: rgba(3,14,32,.6); border-radius: 10px; display: grid; gap: 7px; padding: 18px; }
.companion-rate-total span,.companion-rate-total small { color: var(--muted); }
.companion-rate-total strong { color: #f0ca70; font: 700 clamp(1.8rem,3vw,2.8rem) "Playfair Display",serif; }
.profile-page .booking-panel { align-items: center; display: grid; gap: clamp(28px,6vw,72px); grid-template-columns: minmax(0,1fr) minmax(320px,520px); }
.profile-booking-copy h2 { margin: 10px 0 18px; }
.profile-companion-rate-card { text-align: left; width: 100%; }
.profile-rate-assignment { background: rgba(5,24,53,.75); border: 1px solid rgba(224,191,111,.55); border-radius: 12px; display: grid; gap: 18px; padding: 20px; }
.profile-rate-assignment h3 { color: #fff; font: 700 1.5rem "Playfair Display",serif; margin: 5px 0; }
.profile-rate-assignment p { color: rgba(235,242,250,.8); font-size: .82rem; }
.profile-rate-preview { background: rgba(2,12,28,.7); border-radius: 9px; display: grid; gap: 14px; padding: 16px; }
.profile-rate-preview > strong { color: #f0ca70; font-size: 1.2rem; }
.profile-rate-preview > div { display: grid; gap: 7px; grid-template-columns: repeat(3,minmax(0,1fr)); }
.profile-rate-preview span { align-items: center; border: 1px solid rgba(224,191,111,.2); color: #fff; display: flex; font-size: .72rem; justify-content: space-between; padding: 7px; }
.profile-rate-preview b { color: #f0ca70; }
.profile-video-upload { background: rgba(5,24,53,.75); border: 1px solid rgba(224,191,111,.55); border-radius: 12px; display: grid; gap: 18px; padding: 20px; }
.profile-video-upload h3 { color: #fff; font: 700 1.5rem "Playfair Display",serif; margin: 5px 0; }
.profile-video-upload video { background: #020812; border-radius: 10px; max-height: 440px; width: 100%; }
.profile-video-section { display: grid; gap: 28px; padding: clamp(54px,8vw,100px) clamp(22px,8vw,110px); }
.profile-video-section h2 { font: 700 clamp(2rem,4vw,4rem) "Playfair Display",serif; }
.profile-video-section video { background: #020812; border: 1px solid rgba(224,191,111,.45); border-radius: 15px; box-shadow: 0 24px 55px rgba(0,0,0,.38); max-height: 78vh; width: 100%; }
@media (max-width: 640px) { .profile-rate-preview > div { grid-template-columns: repeat(2,minmax(0,1fr)); } }
@media (max-width: 850px) { .companion-rates-section { grid-template-columns: 1fr; } }
@media (max-width: 850px) { .profile-page .booking-panel { grid-template-columns: 1fr; } }

.page {
    background:
        radial-gradient(circle at 14% 62%, rgba(27, 88, 158, 0.3), transparent 32%),
        linear-gradient(140deg, #06142b, #0b2d59 38%, #111a27 67%, #17130d);
    min-height: 100vh;
}

.page-hero {
    align-items: flex-end;
    background-position: center;
    background-size: cover;
    display: flex;
    min-height: 72vh;
    overflow: hidden;
    padding: calc(var(--header-height) + var(--admin-strip-height) + 80px) clamp(22px, 8vw, 110px) 86px;
    position: relative;
}

.page-hero-experiences {
    background-image: url("/images/nairobi/Ol20Acacia20Deck.webp");
}

.page-hero-destinations {
    background-image: url("/images/nairobi/pf_aerial_villa_enh.jpg");
}

.page-hero-models {
    background-image: url("/images/nairobi/Sky-Lounge-4.png");
}

.page-hero-gallery {
    background-image: url("/images/nairobi/luxury-4.webp");
}

.page-hero-about {
    background-image: url("/images/nairobi/The-Hide-01.jpg");
}

.page-hero-contact {
    background-image: url("/images/nairobi/Cheval-Riverside.webp");
}

.page-veil {
    background:
        linear-gradient(90deg, rgba(4, 19, 43, 0.92) 0%, rgba(7, 45, 91, 0.62) 52%, rgba(18, 16, 11, 0.18) 100%),
        linear-gradient(0deg, rgba(5, 20, 43, 0.9) 0%, rgba(10, 46, 88, 0.16) 60%, rgba(23, 18, 11, 0.54) 100%);
    inset: 0;
    position: absolute;
}

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

.section-kicker {
    color: var(--gold);
    font-size: 0.78rem;
    font-weight: 500;
    letter-spacing: 0.24em;
    margin-bottom: 22px;
    text-transform: uppercase;
}

.page-hero h1 {
    color: var(--ink);
    font-family: "Playfair Display", serif;
    font-size: clamp(3rem, 6vw, 6.6rem);
    line-height: 0.98;
}

.page-hero p:not(.section-kicker) {
    color: var(--muted);
    font-size: clamp(1rem, 1.55vw, 1.2rem);
    line-height: 1.85;
    margin-top: 28px;
    max-width: 680px;
}

.dashboard-page {
    background:
        radial-gradient(circle at 12% 22%, rgba(30, 93, 168, 0.34), transparent 34%),
        linear-gradient(135deg, #06152c 0%, #0d3262 34%, #091b39 58%, #18140e 80%, #071d3c 100%);
    min-height: 100vh;
    padding: calc(var(--header-height) + var(--admin-strip-height) + 72px) clamp(22px, 6vw, 92px) 90px;
}

.admin-dashboard-theme {
    background:
        radial-gradient(circle at 14% 18%, rgba(25, 82, 151, 0.52) 0%, rgba(25, 82, 151, 0) 34%),
        radial-gradient(circle at 88% 34%, rgba(215, 180, 106, 0.2) 0%, rgba(215, 180, 106, 0) 28%),
        linear-gradient(128deg, #06152c 0%, #0d3262 28%, #091b39 49%, #17140f 70%, #071d3c 100%);
    color: #fffaf0;
    overflow: hidden;
    position: relative;
}

.admin-dashboard-theme::before {
    background:
        linear-gradient(115deg, transparent 0 22%, rgba(232, 199, 117, 0.1) 22.3%, transparent 22.7% 62%, rgba(71, 135, 207, 0.13) 62.3%, transparent 62.7%),
        repeating-linear-gradient(135deg, transparent 0 58px, rgba(255, 255, 255, 0.018) 59px, transparent 60px);
    content: "";
    inset: 0;
    pointer-events: none;
    position: absolute;
}

.admin-dashboard-theme > * {
    position: relative;
    z-index: 1;
}

.admin-dashboard-theme .dashboard-hero {
    border-left: 4px solid #d7b46a;
    padding-left: clamp(20px, 3vw, 38px);
}

.admin-dashboard-theme .dashboard-hero h1 {
    color: #fff9eb;
    text-shadow: 0 3px 18px rgba(0, 0, 0, 0.38);
}

.admin-dashboard-theme .dashboard-hero p:not(.section-kicker) {
    color: rgba(234, 241, 250, 0.86);
}

.admin-dashboard-theme .section-kicker {
    color: #f0ca70;
}

.admin-dashboard-theme .dashboard-card,
.admin-dashboard-theme .dashboard-row,
.admin-dashboard-theme .dashboard-form,
.admin-dashboard-theme .field-manager {
    background:
        linear-gradient(145deg, rgba(22, 67, 120, 0.9) 0%, rgba(8, 31, 66, 0.94) 58%, rgba(20, 18, 14, 0.94) 100%);
    border: 1px solid rgba(225, 192, 112, 0.48);
    border-radius: 14px;
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.08),
        0 16px 34px rgba(0, 0, 0, 0.26);
}

.admin-dashboard-theme .dashboard-card {
    border-top: 4px solid #d7b46a;
}

.admin-dashboard-theme .dashboard-card:hover {
    background:
        linear-gradient(145deg, rgba(31, 83, 145, 0.96) 0%, rgba(10, 39, 82, 0.97) 58%, rgba(35, 28, 17, 0.96) 100%);
    border-color: rgba(242, 207, 124, 0.82);
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.11),
        0 20px 42px rgba(0, 0, 0, 0.34);
}

.admin-dashboard-theme .dashboard-card span,
.admin-dashboard-theme .dashboard-card small,
.admin-dashboard-theme .dashboard-form label,
.admin-dashboard-theme .dashboard-row p,
.admin-dashboard-theme .empty-state {
    color: rgba(235, 242, 250, 0.82);
}

.admin-dashboard-theme .dashboard-card strong,
.admin-dashboard-theme .dashboard-row span,
.admin-dashboard-theme .dashboard-inline-link {
    color: #f0ca70;
}

.admin-dashboard-theme .dashboard-form input,
.admin-dashboard-theme .dashboard-form textarea,
.admin-dashboard-theme .dashboard-form select {
    background: rgba(4, 19, 42, 0.78);
    border-color: rgba(131, 174, 222, 0.34);
    color: #ffffff;
}

.admin-dashboard-theme .dashboard-form input:focus,
.admin-dashboard-theme .dashboard-form textarea:focus,
.admin-dashboard-theme .dashboard-form select:focus {
    border-color: #e5bf65;
    box-shadow: 0 0 0 3px rgba(215, 180, 106, 0.15);
}

.admin-dashboard-theme .settings-section,
.admin-dashboard-theme .profile-fieldset,
.admin-dashboard-theme .field-manager-row {
    border-color: rgba(226, 193, 114, 0.24);
}

.admin-dashboard-theme .field-manager-head {
    background: rgba(215, 180, 106, 0.14);
    color: #fff7e3;
}

.dashboard-hero {
    margin: 0 auto 42px;
    max-width: 1180px;
}

.compact-dashboard-hero {
    max-width: 860px;
}

.dashboard-hero h1 {
    font-family: "Playfair Display", serif;
    font-size: clamp(3rem, 6vw, 6.2rem);
    line-height: 1;
    max-width: 860px;
}

.dashboard-hero p:not(.section-kicker) {
    color: var(--muted);
    font-size: 1.05rem;
    line-height: 1.8;
    margin: 24px 0 34px;
    max-width: 660px;
}

.dashboard-grid {
    display: grid;
    gap: 18px;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    margin: 0 auto;
    max-width: 1180px;
}

.dashboard-card {
    background: rgba(248, 243, 234, 0.06);
    border: 1px solid rgba(248, 243, 234, 0.1);
    display: flex;
    flex-direction: column;
    min-height: 210px;
    padding: 28px;
    transition: background 0.3s ease, border-color 0.3s ease, transform 0.3s ease;
}

.dashboard-card:hover,
.dashboard-card:focus-visible {
    background: rgba(248, 243, 234, 0.09);
    border-color: rgba(215, 180, 106, 0.54);
    transform: translateY(-3px);
}

.dashboard-card span,
.dashboard-card small {
    color: var(--muted);
    display: block;
    font-size: 0.78rem;
    letter-spacing: 0.1em;
    text-transform: uppercase;
}

.dashboard-card strong {
    color: var(--gold);
    display: block;
    font-family: "Playfair Display", serif;
    font-size: 5rem;
    line-height: 1;
    margin: 34px 0 18px;
}

.dashboard-card-actions,
.dashboard-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
}

.dashboard-card-actions {
    margin-top: auto;
}

.dashboard-card-actions a {
    border: 1px solid rgba(215, 180, 106, 0.46);
    color: var(--gold);
    font-size: 0.7rem;
    font-weight: 500;
    letter-spacing: 0.08em;
    padding: 9px 11px;
    text-transform: uppercase;
    transition: background 0.25s ease, color 0.25s ease;
}

.dashboard-card-actions a:hover,
.dashboard-card-actions a:focus-visible {
    background: var(--gold);
    color: #10100d;
}

.dashboard-actions {
    margin-top: 28px;
}

.secondary-btn {
    border-color: rgba(248, 243, 234, 0.24);
    color: rgba(248, 243, 234, 0.86);
}

.dashboard-list,
.dashboard-form-wrap {
    margin: 0 auto;
    max-width: 960px;
}

.rate-admin-list {
    display: grid;
    gap: 18px;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    max-width: 1480px;
    width: 100%;
}

.rate-admin-list .rate-admin-row {
    align-items: stretch;
    grid-template-columns: 1fr;
    margin-bottom: 0;
    min-width: 0;
}

.rate-admin-list .rate-admin-row h2 { font-size: clamp(1.25rem, 1.7vw, 1.75rem); }

@media (max-width: 1050px) { .rate-admin-list { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 650px) { .rate-admin-list { grid-template-columns: 1fr; } }

/* Two-row desktop navigation: keeps zoomed menu items out of the logo area. */
@media (min-width: 761px) {
    .site-header {
        align-items: center;
        grid-template-columns: minmax(205px, auto) minmax(0, 1fr) auto;
        grid-template-rows: 1fr;
        padding-bottom: 14px;
        padding-top: 14px;
    }

    .brand-cluster {
        grid-column: 1;
        grid-row: 1;
        position: relative;
        z-index: 2;
    }

    .main-nav {
        display: grid;
        gap: 10px 8px;
        grid-column: 2;
        grid-row: 1;
        grid-template-columns: repeat(6, minmax(78px, 1fr));
        justify-content: stretch;
        overflow: visible;
        padding: 0;
        width: 100%;
    }

    .main-nav a,
    .main-nav .journey-cta {
        font-size: clamp(.62rem, .72vw, .84rem);
        min-height: 46px;
        min-width: 0;
        padding: 6px 8px;
        white-space: normal;
        width: 100%;
    }

    .header-actions {
        grid-column: 3;
        grid-row: 1;
    }
}

.dashboard-row {
    align-items: center;
    background: rgba(248, 243, 234, 0.055);
    border: 1px solid rgba(248, 243, 234, 0.09);
    display: grid;
    gap: 24px;
    grid-template-columns: 170px 1fr;
    margin-bottom: 16px;
    padding: 16px;
}

.dashboard-row img {
    aspect-ratio: 1.25;
    height: 100%;
    object-fit: cover;
    width: 100%;
}

.dashboard-row h2 {
    font-family: "Playfair Display", serif;
    font-size: 2rem;
    line-height: 1;
    margin-bottom: 10px;
}

.dashboard-row p,
.empty-state {
    color: var(--muted);
    line-height: 1.7;
}

.dashboard-row span {
    border: 1px solid rgba(215, 180, 106, 0.46);
    color: var(--gold);
    display: inline-flex;
    font-size: 0.72rem;
    letter-spacing: 0.08em;
    margin-top: 14px;
    padding: 7px 10px;
    text-transform: uppercase;
}

.dashboard-inline-link {
    color: var(--gold);
    display: inline-flex;
    font-size: 0.72rem;
    letter-spacing: 0.08em;
    margin-left: 10px;
    margin-top: 14px;
    text-transform: uppercase;
}

.dashboard-form {
    background: rgba(248, 243, 234, 0.06);
    border: 1px solid rgba(248, 243, 234, 0.1);
    display: grid;
    gap: 22px;
    padding: clamp(24px, 4vw, 46px);
}

.dashboard-form label {
    color: var(--muted);
    display: grid;
    font-size: 0.78rem;
    gap: 10px;
    letter-spacing: 0.1em;
    text-transform: uppercase;
}

.dashboard-form input,
.dashboard-form textarea,
.dashboard-form select {
    background: rgba(7, 16, 14, 0.78);
    border: 1px solid rgba(248, 243, 234, 0.12);
    color: var(--ink);
    font: inherit;
    letter-spacing: 0;
    outline: none;
    padding: 16px 18px;
    text-transform: none;
    width: 100%;
}

.dashboard-form input:focus,
.dashboard-form textarea:focus,
.dashboard-form select:focus {
    border-color: rgba(215, 180, 106, 0.72);
}

.login-form {
    max-width: 520px;
}

.form-links {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
}

.form-links a {
    color: var(--gold);
    font-size: 0.78rem;
    text-decoration: underline;
    text-underline-offset: 4px;
}

.form-help {
    color: var(--muted);
    font-size: 0.8rem;
    line-height: 1.6;
    margin: 0;
}

.form-error,
.form-success {
    border: 1px solid;
    font-size: 0.86rem;
    line-height: 1.6;
    padding: 14px 16px;
}

.form-error {
    background: rgba(170, 44, 44, 0.18);
    border-color: rgba(255, 132, 132, 0.36);
    color: #ffd1d1;
}

.form-success {
    background: rgba(215, 180, 106, 0.14);
    border-color: rgba(215, 180, 106, 0.46);
    color: var(--gold);
}

.settings-form {
    gap: 28px;
    max-width: 1080px;
}

.settings-section {
    border-top: 1px solid rgba(248, 243, 234, 0.1);
    display: grid;
    gap: 18px;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    padding-top: 24px;
}

.settings-section h2 {
    color: var(--ink);
    font-family: "Playfair Display", serif;
    font-size: 2rem;
    grid-column: 1 / -1;
    line-height: 1;
}

.settings-section label:has(textarea),
.settings-section label:has(input[type="file"]) {
    grid-column: 1 / -1;
}

.profile-fieldset {
    border-top: 1px solid rgba(248, 243, 234, 0.1);
    display: grid;
    gap: 22px;
    padding-top: 22px;
}

.field-manager {
    background: rgba(255, 255, 255, 0.035);
    border: 1px solid rgba(248, 243, 234, 0.1);
    overflow-x: auto;
}

.field-manager-title {
    color: var(--ink);
    font-family: "Playfair Display", serif;
    font-size: 1.55rem;
    padding: 18px 20px;
}

.field-manager-head,
.field-manager-row {
    align-items: center;
    display: grid;
    gap: 14px;
    grid-template-columns: 82px 150px minmax(220px, 1fr) 92px 120px;
    min-width: 760px;
}

.field-manager-head {
    background: rgba(248, 243, 234, 0.08);
    color: rgba(248, 243, 234, 0.72);
    font-size: 0.72rem;
    font-weight: 600;
    letter-spacing: 0.08em;
    padding: 12px 16px;
    text-transform: uppercase;
}

.field-manager-row {
    border-top: 1px solid rgba(248, 243, 234, 0.08);
    padding: 10px 16px;
}

.field-manager-row input,
.field-manager-row select {
    min-height: 40px;
    padding: 10px 12px;
}

.manager-label {
    color: rgba(248, 243, 234, 0.82);
    font-size: 0.84rem;
}

.manager-check {
    align-items: center;
    display: inline-flex !important;
    justify-content: center;
}

.manager-check input {
    height: 1px;
    opacity: 0;
    position: absolute;
    width: 1px;
}

.manager-check span {
    align-items: center;
    border: 1px solid rgba(248, 243, 234, 0.26);
    display: inline-flex;
    height: 22px;
    justify-content: center;
    transition: background 0.2s ease, border-color 0.2s ease;
    width: 22px;
}

.manager-check input:checked + span {
    background: var(--gold);
    border-color: var(--gold);
}

.manager-check input:checked + span::after {
    color: #10100d;
    content: "OK";
    font-size: 0.9rem;
    font-weight: 700;
    line-height: 1;
}

.chip-group {
    display: grid;
    gap: 12px;
}

.chip-group > span {
    color: var(--muted);
    font-size: 0.78rem;
    letter-spacing: 0.1em;
    text-transform: uppercase;
}

.chip-options {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
}

.choice-chip {
    cursor: pointer;
    display: inline-flex !important;
}

.choice-chip input {
    height: 1px;
    opacity: 0;
    position: absolute;
    width: 1px;
}

.choice-chip span {
    border: 1px solid rgba(248, 243, 234, 0.16);
    color: rgba(248, 243, 234, 0.78);
    display: inline-flex;
    font-size: 0.74rem;
    letter-spacing: 0.08em;
    padding: 10px 13px;
    text-transform: uppercase;
    transition: background 0.2s ease, border-color 0.2s ease, color 0.2s ease;
}

.choice-chip input:checked + span {
    background: var(--gold);
    border-color: var(--gold);
    color: #10100d;
}

.profile-page {
    padding-top: calc(var(--header-height) + var(--admin-strip-height));
}

.profile-hero {
    display: grid;
    gap: clamp(28px, 5vw, 72px);
    grid-template-columns: minmax(280px, 0.8fr) minmax(0, 1fr);
    margin: 0 auto;
    max-width: 1180px;
    padding: clamp(54px, 7vw, 96px) clamp(22px, 6vw, 92px);
}

.profile-image {
    aspect-ratio: 0.78;
    background: linear-gradient(145deg, #164474, #071b3a 65%, #1f190e);
    border: 1px solid rgba(224, 191, 111, 0.48);
    border-radius: 14px;
    box-shadow: 0 20px 42px rgba(0, 0, 0, 0.32);
    overflow: hidden;
}

.profile-image img {
    height: 100%;
    object-fit: contain;
    object-position: center top;
    width: 100%;
}

.profile-intro {
    align-self: center;
}

.profile-intro h1,
.profile-content h2,
.booking-panel h2 {
    font-family: "Playfair Display", serif;
    line-height: 1;
}

.profile-intro h1 {
    font-size: clamp(3.2rem, 6vw, 6.6rem);
}

.profile-intro p:not(.section-kicker),
.profile-copy p,
.booking-panel p {
    color: var(--muted);
    font-size: 1.05rem;
    line-height: 1.85;
    margin-top: 24px;
}

.profile-tabs {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin-top: 34px;
}

.profile-tab {
    border: 1px solid rgba(248, 243, 234, 0.18);
    color: rgba(248, 243, 234, 0.84);
    font-size: 0.76rem;
    letter-spacing: 0.1em;
    padding: 12px 16px;
    text-transform: uppercase;
}

.active-tab,
.profile-tab:hover,
.profile-tab:focus-visible {
    background: var(--gold);
    border-color: var(--gold);
    color: #10100d;
}

.profile-content,
.booking-panel {
    border-top: 1px solid rgba(248, 243, 234, 0.08);
    margin: 0 auto;
    max-width: 1180px;
    padding: clamp(54px, 7vw, 90px) clamp(22px, 6vw, 92px);
}

.profile-content h2,
.booking-panel h2 {
    font-size: clamp(2.4rem, 4vw, 4.6rem);
}

.profile-facts {
    display: grid;
    gap: 14px;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    margin-top: 34px;
}

.managed-profile-facts {
    grid-template-columns: repeat(6, minmax(0, 1fr));
}

.profile-facts article {
    background: linear-gradient(145deg, rgba(22, 67, 120, 0.86), rgba(7, 27, 58, 0.92) 65%, rgba(31, 25, 14, 0.9));
    border: 1px solid rgba(224, 191, 111, 0.4);
    border-radius: 12px;
    padding: 22px;
}

.managed-profile-facts article {
    grid-column: span 2;
}

.managed-profile-facts .profile-fact-small {
    grid-column: span 1;
}

.managed-profile-facts .profile-fact-large {
    grid-column: span 3;
}

.featured-profile-fact {
    background: rgba(215, 180, 106, 0.16) !important;
    border-color: rgba(215, 180, 106, 0.62) !important;
}

.profile-facts span {
    color: var(--muted);
    display: block;
    font-size: 0.72rem;
    letter-spacing: 0.1em;
    margin-bottom: 12px;
    text-transform: uppercase;
}

.profile-facts strong {
    color: var(--ink);
    font-family: "Playfair Display", serif;
    font-size: 1.6rem;
    font-weight: 600;
}

.profile-tags {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin-top: 24px;
}

.profile-tags span {
    background: rgba(215, 180, 106, 0.14);
    border: 1px solid rgba(215, 180, 106, 0.46);
    color: var(--gold);
    font-size: 0.72rem;
    letter-spacing: 0.08em;
    padding: 9px 12px;
    text-transform: uppercase;
}

.contact-section {
    background:
        radial-gradient(circle at 86% 20%, rgba(215, 180, 106, 0.14), transparent 28%),
        linear-gradient(138deg, #06152c, #0d3262 42%, #111a27 70%, #18140e);
    padding: clamp(60px, 8vw, 110px) clamp(22px, 6vw, 92px);
}

.contact-panel {
    margin: 0 auto;
    max-width: 1180px;
}

.contact-panel h2 {
    font-family: "Playfair Display", serif;
    font-size: clamp(2.4rem, 4vw, 4.6rem);
    line-height: 1;
}

.contact-grid {
    display: grid;
    gap: 16px;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    margin-top: 34px;
}

.contact-grid article {
    background: linear-gradient(145deg, rgba(22, 67, 120, 0.88), rgba(7, 27, 58, 0.94) 65%, rgba(31, 25, 14, 0.92));
    border: 1px solid rgba(224, 191, 111, 0.44);
    border-radius: 12px;
    box-shadow: 0 14px 30px rgba(0, 0, 0, 0.24);
    display: flex;
    flex-direction: column;
    gap: 12px;
    min-height: 190px;
    padding: 24px;
}

.contact-grid span {
    color: var(--muted);
    font-size: 0.72rem;
    letter-spacing: 0.1em;
    text-transform: uppercase;
}

.contact-grid a,
.contact-grid strong {
    color: var(--ink);
    font-size: 0.96rem;
    font-weight: 500;
    line-height: 1.6;
    overflow-wrap: anywhere;
}

.contact-grid a:hover,
.contact-grid a:focus-visible {
    color: var(--gold);
}

.payment-section,
.booking-payments {
    padding: clamp(54px, 7vw, 90px) clamp(22px, 6vw, 92px);
}

.payment-grid,
.mini-payment-grid {
    display: grid;
    gap: 16px;
    margin: 0 auto;
    max-width: 1180px;
}

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

.payment-card,
.mini-payment-grid article {
    background: linear-gradient(145deg, rgba(22, 67, 120, 0.9), rgba(7, 27, 58, 0.95) 64%, rgba(31, 25, 14, 0.94));
    border: 1px solid rgba(224, 191, 111, 0.46);
    border-radius: 12px;
    box-shadow: 0 16px 34px rgba(0, 0, 0, 0.26);
    display: flex;
    flex-direction: column;
    gap: 16px;
    min-height: 290px;
    padding: 28px;
}

.mpesa-card {
    border-color: rgba(215, 180, 106, 0.42);
}

.mpesa-payment-image,
.payment-provider-image {
    background: #fff;
    border: 1px solid rgba(255, 255, 255, 0.72);
    border-radius: 10px;
    display: block;
    height: auto;
    width: 100%;
}

.mini-payment-image {
    background: #fff;
    border: 1px solid rgba(255, 255, 255, 0.72);
    border-radius: 8px;
    display: block;
    height: auto;
    margin: 4px 0;
    width: 100%;
}

.admin-logout-link,
.admin-logout-cta {
    border-color: rgba(229, 107, 107, 0.75) !important;
    color: #ffe3e3 !important;
}

.payment-card span,
.mini-payment-grid span {
    color: var(--gold);
    font-size: 0.72rem;
    letter-spacing: 0.12em;
    text-transform: uppercase;
}

.payment-currency,
.mini-payment-grid small {
    color: rgba(248, 243, 234, 0.72);
    font-size: 0.74rem;
    font-weight: 600;
    letter-spacing: 0.1em;
    text-transform: uppercase;
}

.payment-card h2,
.booking-payments h2 {
    color: var(--ink);
    font-family: "Playfair Display", serif;
    font-size: clamp(2rem, 3vw, 3.2rem);
    line-height: 1;
}

.payment-card strong,
.mini-payment-grid strong,
.mini-payment-grid a {
    color: var(--ink);
    font-family: "Playfair Display", serif;
    font-size: 1.7rem;
    font-weight: 600;
    line-height: 1.2;
    overflow-wrap: anywhere;
}

.payment-card p {
    color: var(--muted);
    line-height: 1.8;
}

.payment-card .btn {
    margin-top: auto;
}

.payment-pending {
    color: rgba(248, 243, 234, 0.7) !important;
    font-family: "Poppins", sans-serif !important;
    font-size: 0.94rem !important;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.booking-payments {
    margin: 0 auto;
    max-width: 1180px;
}

.mini-payment-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    margin-top: 24px;
}

.mini-payment-grid article {
    min-height: 150px;
}

.mini-payment-grid a:hover,
.mini-payment-grid a:focus-visible {
    color: var(--gold);
}

.site-footer {
    align-items: center;
    background: linear-gradient(110deg, #06142b 0%, #0b2b54 48%, #17130d 100%);
    border-top: 1px solid rgba(224, 191, 111, 0.32);
    color: var(--muted);
    display: grid;
    gap: 18px;
    grid-template-columns: 1fr auto auto 1fr;
    padding: 26px clamp(22px, 6vw, 92px);
}

.footer-partner-link { text-align: center; }
.footer-partner-link a { color: var(--gold); }

/* Partner banner exchange and managed side placements */
.partner-banner-rail { display: flex; flex-direction: column; gap: 12px; max-height: 64vh; overflow-y: auto; position: fixed; top: 25%; width: 120px; z-index: 30; }
.partner-banner-rail--left { left: 10px; }
.partner-banner-rail--right { right: 10px; }
.partner-banner-rail a { background: #06142b; border: 1px solid rgba(224,191,111,.6); border-radius: 8px; box-shadow: 0 10px 28px rgba(0,0,0,.38); display: block; overflow: hidden; }
.partner-banner-rail img { display: block; height: auto; max-height: 180px; object-fit: contain; width: 100%; }

.banner-exchange-page { padding-bottom: 80px; }
.banner-exchange-hero { background: linear-gradient(120deg,#06142b,#0b3b69 65%,#18130c); border-bottom: 1px solid rgba(224,191,111,.45); padding: clamp(80px,10vw,150px) clamp(24px,9vw,140px); }
.banner-exchange-hero h1 { color: var(--ink); font-family: "Playfair Display",serif; font-size: clamp(3rem,7vw,6.5rem); line-height: .92; margin: 15px 0 24px; }
.banner-exchange-hero > p:last-child { color: var(--muted); font-size: 1.05rem; line-height: 1.8; max-width: 720px; }
.banner-exchange-intro { display: grid; gap: 18px; grid-template-columns: repeat(3,1fr); margin: 44px auto; max-width: 1180px; padding: 0 24px; }
.banner-exchange-intro div { align-items: center; background: rgba(7,27,58,.9); border: 1px solid rgba(224,191,111,.32); border-radius: 12px; display: flex; gap: 16px; padding: 22px; }
.banner-exchange-intro strong { color: var(--gold); font-family: "Playfair Display",serif; font-size: 2rem; }
.banner-exchange-intro span { color: var(--muted); font-size: .86rem; line-height: 1.5; }
.partner-banner-grid { display: grid; gap: 28px; margin: 0 auto; max-width: 1180px; padding: 0 24px; }
.partner-banner-card { background: #071b3a; border: 1px solid rgba(224,191,111,.4); border-radius: 14px; padding: clamp(22px,4vw,42px); }
.partner-banner-heading { align-items: center; display: flex; justify-content: space-between; margin-bottom: 22px; }
.partner-banner-heading h2,.banner-exchange-contact h2 { color: var(--ink); font-family: "Playfair Display",serif; font-size: clamp(1.8rem,3vw,3rem); }
.partner-banner-heading > span { border: 1px solid var(--gold); border-radius: 20px; color: var(--gold); font-size: .7rem; padding: 7px 12px; }
.partner-banner-preview { align-items: center; background: #fff; border-radius: 9px; display: flex; justify-content: center; margin-bottom: 24px; min-height: 160px; overflow: auto; padding: 22px; }
.partner-banner-preview img { height: auto; max-width: 100%; }
.partner-banner-card label { color: var(--gold); display: block; font-size: .75rem; letter-spacing: .1em; margin-bottom: 8px; text-transform: uppercase; }
.partner-banner-card textarea { background: #020b17; border: 1px solid rgba(224,191,111,.3); border-radius: 7px; color: #cbd5e1; font: .78rem/1.55 monospace; padding: 14px; resize: vertical; width: 100%; }
.partner-banner-actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 16px; }
.partner-banner-actions button,.partner-banner-actions a,.banner-exchange-contact a { background: var(--gold); border: 0; border-radius: 6px; color: #06142b; cursor: pointer; font: 600 .72rem Poppins,sans-serif; letter-spacing: .08em; padding: 12px 17px; text-transform: uppercase; }
.partner-banner-actions a { background: transparent; border: 1px solid var(--gold); color: var(--gold); }
.banner-exchange-contact { background: linear-gradient(120deg,#0b315b,#07182f); border: 1px solid rgba(224,191,111,.4); border-radius: 14px; margin: 45px auto 0; max-width: 1132px; padding: clamp(32px,6vw,70px); }
.banner-exchange-contact p:not(.section-kicker) { color: var(--muted); line-height: 1.7; margin: 15px 0 26px; max-width: 720px; }
.banner-checkboxes { border: 1px solid rgba(224,191,111,.35); border-radius: 8px; display: grid; gap: 14px; padding: 20px; }
.banner-checkboxes legend { color: var(--gold); padding: 0 8px; }
.partner-admin-row img { object-fit: contain; }
.banner-status { color: var(--gold) !important; }

@media (max-width: 1250px) { .partner-banner-rail { display: none; } }
@media (max-width: 850px) { .banner-exchange-intro { grid-template-columns: 1fr; } .site-footer { grid-template-columns: 1fr; } }

/* Launch-ready navigation and information pages */
.mobile-menu-toggle { display: none; }
.legal-hero { background: linear-gradient(120deg,#06142b,#0b3b69 65%,#18130c); border-bottom: 1px solid rgba(224,191,111,.4); padding: clamp(80px,10vw,145px) clamp(24px,9vw,140px); }
.legal-hero h1 { color: var(--ink); font-family: "Playfair Display",serif; font-size: clamp(3rem,7vw,6rem); line-height: .95; margin: 14px 0 22px; }
.legal-hero p { color: var(--muted); line-height: 1.8; max-width: 760px; }
.legal-hero .btn { display: inline-block; margin-top: 25px; }
.legal-content { display: grid; gap: 28px; margin: 0 auto; max-width: 960px; padding: clamp(45px,7vw,90px) 24px; }
.legal-content article,.legal-content > h2 { border-top: 1px solid rgba(224,191,111,.3); padding-top: 24px; }
.legal-content h2 { color: var(--ink); font-family: "Playfair Display",serif; font-size: clamp(1.5rem,3vw,2.4rem); }
.legal-content p { color: var(--muted); line-height: 1.8; }
.legal-content a { color: var(--gold); }
.footer-partner-link { gap: 5px !important; }
.inquiry-row { grid-template-columns: 1fr; }
.calendar-help { color: var(--gold); display: block; font-size: .75rem; margin-top: 7px; }
.flatpickr-calendar { border: 2px solid #d7a847; box-shadow: 0 22px 55px rgba(0,0,0,.45); font-size: 1rem; width: 370px; }
.flatpickr-rContainer,.flatpickr-days,.dayContainer { width: 370px; max-width: 370px; min-width: 370px; }
.flatpickr-day { border-radius: 7px; font-size: 1rem; font-weight: 600; height: 48px; line-height: 48px; max-width: 52px; }
.flatpickr-day.weekend-day { color: #c51f2c; font-weight: 800; }
.flatpickr-day.weekend-day.selected { color: #fff; }
.flatpickr-months .flatpickr-month { height: 48px; }
.flatpickr-current-month { font-size: 1.12rem; padding-top: 10px; }
.flatpickr-weekday { font-size: .9rem; }

@media (max-width: 420px) {
    .flatpickr-calendar,.flatpickr-rContainer,.flatpickr-days,.dayContainer { max-width: 340px; min-width: 340px; width: 340px; }
    .flatpickr-day { height: 44px; line-height: 44px; max-width: 48px; }
}

/* Rates catalogue and multi-service journey calculator */
.rates-catalog { margin: 0 auto; max-width: 1180px; padding: clamp(50px,8vw,100px) 24px; }
.rate-category { border-bottom: 1px solid rgba(224,191,111,.25); padding: 0 0 50px; margin-bottom: 50px; }
.rate-category-heading h2 { color: var(--ink); font: 700 clamp(2rem,4vw,3.8rem)/1 "Playfair Display",serif; margin-top: 8px; }
.rate-card-grid { display: grid; gap: clamp(20px,2.2vw,30px); grid-template-columns: repeat(3,minmax(0,1fr)); margin-top: 32px; }
.rate-card { background: linear-gradient(145deg,rgba(21,67,121,.98),rgba(5,24,53,.99) 65%,rgba(23,19,12,.98)); border: 1px solid rgba(255,216,112,.7); border-radius: 16px; box-shadow: 0 18px 42px rgba(0,0,0,.38),0 0 20px rgba(218,171,57,.1); display: flex; flex-direction: column; gap: 13px; isolation: isolate; min-height: 310px; overflow: hidden; padding: clamp(24px,3vw,34px); position: relative; transition: border-color .3s ease,box-shadow .3s ease,transform .3s ease; }
.rate-card::before { background: radial-gradient(circle at 100% 0,rgba(237,195,91,.16),transparent 38%); content: ""; inset: 0; pointer-events: none; position: absolute; z-index: -1; }
.rate-card::after { border: 1px solid rgba(255,226,145,.2); border-radius: 11px; content: ""; inset: 9px; pointer-events: none; position: absolute; }
.rate-card:hover { border-color: rgba(245,211,127,.96); box-shadow: 0 24px 52px rgba(2,9,22,.52),0 0 28px rgba(218,171,57,.18); transform: translateY(-5px); }
.rate-card .rate-card-label { color: #f2d889; font-size: .63rem; font-weight: 700; letter-spacing: .16em; margin: 0; text-transform: uppercase; }
.rate-card h3 { color: #fff1bd; font: 700 clamp(1.4rem,2vw,2rem)/1.08 "Playfair Display",serif; margin: 0; text-shadow: 0 2px 16px rgba(0,0,0,.7); }
.rate-card p { color: var(--muted); line-height: 1.6; margin: 0; }
.rate-card-price { border-top: 1px solid rgba(224,191,111,.24); display: grid; gap: 6px; margin-top: auto; padding-top: 18px; }
.rate-card-price > span { color: var(--gold); font-size: .68rem; font-weight: 700; letter-spacing: .12em; margin: 0; text-transform: uppercase; }
.rate-card strong { color: #fff; font: 800 clamp(1.35rem,2vw,1.8rem)/1.1 "Montserrat",sans-serif; }
.rate-card .kes-conversion { color: #78d69a; font-size: .88rem; font-weight: 700; }
.rate-card .rate-fee-badge { align-self: flex-start; background: rgba(120,214,154,.12); border: 1px solid rgba(120,214,154,.5); border-radius: 999px; color: #9ce9b7; font-size: .67rem; font-weight: 700; letter-spacing: .03em; padding: 7px 10px; }
.rate-card small { color: rgba(248,243,234,.74); line-height: 1.55; }
.rate-card-action { align-items: center; color: #f2d889; display: flex; font-size: .68rem; font-weight: 700; gap: 8px; letter-spacing: .1em; margin-top: 4px; text-transform: uppercase; }
.rate-card-action span { color: inherit; font-size: 1rem; margin: 0; }
.rate-note { color: var(--muted); font-style: italic; text-align: center; }
.rate-attribution { color: rgba(248,243,234,.55); font-size: .7rem; text-align: center; }
.live-rate-badge { background: rgba(5,19,43,.75); border: 1px solid rgba(224,191,111,.45); border-radius: 20px; color: #78d69a; display: table; font-size: .8rem; margin: 20px 0; padding: 9px 14px; }
.rate-settings-grid { display: grid; gap: 16px; grid-template-columns: repeat(4,1fr); }
.rate-admin-row { grid-template-columns: 1fr; }

.journey-builder { border: 1px solid rgba(224,191,111,.45); border-radius: 12px; display: grid; gap: 28px; padding: clamp(18px,4vw,34px); }
.journey-builder > legend { color: var(--ink); font: 700 clamp(1.8rem,3vw,2.6rem) "Playfair Display",serif; padding: 0 10px; }
.journey-builder > p { color: var(--muted); line-height: 1.6; }
.journey-rate-group h3 { color: var(--gold); font: 700 1.3rem "Playfair Display",serif; margin-bottom: 12px; }
.journey-rate-options { display: grid; gap: 14px; grid-template-columns: repeat(3,minmax(0,1fr)); }
.journey-rate-option { align-items: center; background: rgba(5,19,43,.65); border: 1px solid rgba(224,191,111,.25); border-radius: 9px; display: grid !important; gap: 12px; grid-template-columns: auto 1fr; padding: 14px; }
.journey-rate-option > input[type="checkbox"] { accent-color: var(--gold); height: 21px; width: 21px; }
.journey-rate-option span { display: flex; flex-direction: column; gap: 4px; }
.journey-rate-option strong { color: var(--ink); font-size: .88rem; }
.journey-rate-option small { color: var(--muted); font-size: .7rem; }
.journey-rate-option .journey-duration { grid-column: 1 / -1; min-height: 42px; padding: 7px; width: 100%; }
.journey-total-panel { background: linear-gradient(135deg,#06142b,#0d3766); border: 2px solid rgba(224,191,111,.6); border-radius: 14px; padding: clamp(22px,4vw,36px); }
.journey-total-panel h3 { color: var(--ink); font: 700 clamp(1.8rem,3vw,2.7rem) "Playfair Display",serif; }
.journey-selected-lines { border-bottom: 1px solid rgba(224,191,111,.25); margin: 18px 0; padding-bottom: 14px; }
.journey-selected-lines p,.journey-total-panel dl div { color: var(--muted); display: flex; gap: 16px; justify-content: space-between; line-height: 1.5; }
.journey-total-panel dl { display: grid; gap: 10px; }
.journey-total-panel dd { color: var(--ink); font-weight: 700; }
.journey-total-panel .journey-grand-total { border-bottom: 1px solid rgba(224,191,111,.35); border-top: 1px solid rgba(224,191,111,.35); color: #fff; font-size: 1.25rem; margin: 5px 0; padding: 12px 0; }
.journey-total-panel > small { color: var(--gold); display: block; line-height: 1.5; margin-top: 18px; }
.kes-conversion-panel { background: rgba(0,0,0,.22); border-radius: 9px; display: grid; gap: 8px; margin-top: 20px; padding: 18px; }
.kes-conversion-panel > span { color: #78d69a; font-size: .78rem; font-weight: 700; }
.kes-conversion-panel p { color: var(--muted); display: flex; justify-content: space-between; }
.kes-conversion-panel b { color: #fff; }
.kes-conversion-panel small { color: rgba(248,243,234,.65); }
.inquiry-quote { background: rgba(5,19,43,.7); border: 1px solid rgba(224,191,111,.3); border-radius: 8px; display: grid; gap: 6px; margin: 16px 0; padding: 16px; }
.inquiry-quote h3,.inquiry-quote strong { color: var(--ink); }
.inquiry-quote span { color: var(--gold); }
.inquiry-discount-form { align-items: end; border-top: 1px solid rgba(224,191,111,.25); display: grid; gap: 12px; grid-template-columns: minmax(180px, 280px) auto; margin-top: 12px; padding-top: 14px; }
.inquiry-discount-form label { color: var(--ink); display: grid; gap: 6px; font-weight: 700; }
.inquiry-discount-form input { background: #fff; border: 1px solid rgba(5,19,43,.25); border-radius: 6px; min-height: 44px; padding: 8px 10px; }
@media (max-width: 640px) { .inquiry-discount-form { grid-template-columns: 1fr; } }

@media (max-width: 1050px) { .journey-rate-options { grid-template-columns: repeat(2,minmax(0,1fr)); } }
@media (max-width: 800px) { .rate-card-grid,.rate-settings-grid { grid-template-columns: 1fr; } }
@media (max-width: 640px) { .journey-rate-options { grid-template-columns: 1fr; } }

@media (max-width: 1320px) and (min-width: 761px) {
    .site-header { grid-template-columns: minmax(210px,auto) 1fr auto; padding-left: 24px; padding-right: 24px; }
    .main-nav { gap: 7px; }
    .main-nav a { font-size: .68rem; padding-left: 11px; padding-right: 11px; }
    .header-actions { display: none; }
    .content-section,
    .content-section:nth-child(even) { grid-template-columns: 1fr; }
    .content-section:nth-child(even) .section-heading,
    .content-section:nth-child(even) .feature-grid { grid-column: 1; grid-row: auto; }
    .section-heading { max-width: 620px; }
}

@media (max-width: 760px) {
    .site-header { align-items: center; grid-template-columns: 1fr auto; }
    .mobile-menu-toggle { background: #d7a847; border: 0; border-radius: 6px; color: #06142b; display: block; font-weight: 700; padding: 12px 16px; }
    .main-nav { background: #06142b; border: 1px solid rgba(224,191,111,.4); border-radius: 9px; display: none; grid-column: 1 / -1; max-height: 70vh; overflow-y: auto; padding: 12px; width: 100%; }
    .main-nav.is-open { display: grid; }
    .main-nav a { min-height: 48px; width: 100%; }
    .header-actions { display: none; }
}

.site-footer div {
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.site-footer strong {
    color: var(--ink);
    font-size: 0.9rem;
}

.site-footer span,
.site-footer p,
.site-footer a {
    font-size: 0.78rem;
    line-height: 1.6;
}

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

.site-footer p {
    justify-self: end;
    text-align: right;
}

.checkbox-field {
    align-items: center;
    display: flex !important;
    flex-direction: row;
}

.checkbox-field input {
    accent-color: var(--gold);
    width: auto;
}

@keyframes heroFade {
    0% {
        opacity: 0;
        transform: scale(1.035);
    }

    8%,
    33% {
        opacity: 1;
    }

    41%,
    100% {
        opacity: 0;
        transform: scale(1);
    }
}

@keyframes scrollCue {
    0% {
        opacity: 0;
        transform: scaleY(0);
        transform-origin: top;
    }

    45% {
        opacity: 1;
        transform: scaleY(1);
        transform-origin: top;
    }

    46% {
        transform-origin: bottom;
    }

    100% {
        opacity: 0;
        transform: scaleY(0);
        transform-origin: bottom;
    }
}

@media (max-width: 900px) {
    .site-header {
        gap: 18px;
        grid-template-columns: 1fr auto;
        height: var(--header-height);
        padding-bottom: 18px;
        padding-top: 18px;
    }

    .site-header.is-scrolled {
        height: 188px;
    }

    .main-nav {
        grid-column: 1 / -1;
        justify-content: flex-start;
        overflow-x: auto;
        gap: 10px;
        padding-bottom: 10px;
        scrollbar-width: none;
    }

    .main-nav a {
        flex: 0 0 auto;
        font-size: 1.05rem;
        min-height: 62px;
        min-width: max-content;
    }

    .main-nav::-webkit-scrollbar {
        display: none;
    }

    .nav-cta {
        min-height: 54px;
        padding: 0 22px;
    }

    .header-actions {
        justify-content: flex-end;
    }

    .hero {
        align-items: flex-start;
        padding-bottom: 72px;
    }

    .hero-overlay {
        background:
            linear-gradient(90deg, rgba(7, 16, 14, 0.82) 0%, rgba(7, 16, 14, 0.48) 100%),
            linear-gradient(0deg, rgba(7, 16, 14, 0.8) 0%, rgba(7, 16, 14, 0.14) 58%, rgba(7, 16, 14, 0.58) 100%);
    }

    .section-heading {
        align-items: start;
        max-width: 560px;
    }

    .content-section,
    .content-section:nth-child(even) {
        grid-template-columns: 1fr;
    }

    .content-section:nth-child(even) .section-heading,
    .content-section:nth-child(even) .feature-grid {
        grid-column: 1;
        grid-row: auto;
    }

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

    .feature-card,
    .compact-grid .feature-card {
        aspect-ratio: 1.08;
        min-height: 340px;
    }

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

    .settings-section,
    .contact-grid,
    .payment-grid,
    .mini-payment-grid,
    .site-footer {
        grid-template-columns: 1fr;
    }

    .footer-contact,
    .site-footer p {
        justify-self: start;
        text-align: left;
    }

    .dashboard-row {
        grid-template-columns: 1fr;
    }

    .profile-hero {
        grid-template-columns: 1fr;
    }

    .profile-image {
        max-height: 620px;
    }

    .profile-facts {
        grid-template-columns: 1fr;
    }

    .managed-profile-facts,
    .managed-profile-facts article,
    .managed-profile-facts .profile-fact-small,
    .managed-profile-facts .profile-fact-large {
        grid-column: auto;
        grid-template-columns: 1fr;
    }
}

@media (max-width: 560px) {
    :root {
        --header-height: 202px;
    }

    .site-header {
        padding-left: 18px;
        padding-right: 18px;
    }

    .brand-mark {
        font-size: 0.78rem;
    }

    .brand-subtitle {
        font-size: 0.9rem;
    }

    .main-nav {
        gap: 9px;
    }

    .main-nav a {
        font-size: 1rem;
        min-height: 60px;
        padding: 8px 16px;
    }

    .nav-cta {
        font-size: 0.78rem;
    }

    .header-actions {
        align-items: flex-end;
        gap: 8px;
    }

    .admin-cta {
        min-width: 138px;
    }

    .main-nav .journey-cta {
        min-width: max-content;
    }

    .hero {
        padding-left: 20px;
        padding-right: 20px;
    }

    .hero-kicker {
        font-size: 0.7rem;
        line-height: 1.7;
        margin-bottom: 18px;
    }

    .hero h1 {
        border-radius: 15px;
        border-width: 2px;
        font-size: clamp(3.1rem, 15vw, 4.8rem);
        padding: 0.18em 0.2em 0.22em;
    }

    .hero-copy {
        font-size: clamp(1.65rem, 7vw, 2.4rem);
        margin: 26px 0 32px;
    }

    .btn {
        min-height: 52px;
        padding: 0 24px;
    }

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

    .profile-hero,
    .profile-content,
    .booking-panel {
        padding-left: 20px;
        padding-right: 20px;
    }

    .choice-chip span {
        font-size: 0.68rem;
        padding: 9px 10px;
    }
}

.vip-image-tool {
    background:
        radial-gradient(circle at 92% 8%, rgba(198, 162, 86, 0.2), transparent 34%),
        linear-gradient(145deg, #11251f, #091512);
    border: 1px solid rgba(209, 178, 105, 0.45);
    border-radius: 22px;
    color: #f8f1e3;
    display: grid;
    gap: 24px;
    padding: clamp(24px, 4vw, 42px);
}

.vip-image-tool-heading,
.vip-tool-controls {
    align-items: end;
    display: flex;
    gap: 24px;
    justify-content: space-between;
}

.vip-image-tool-heading h2 {
    color: #fff8e9;
    font-family: "Playfair Display", serif;
    font-size: clamp(1.7rem, 3vw, 2.45rem);
    margin: 5px 0 0;
}

.tool-kicker,
.ai-badge {
    color: #d9bb77;
    font-size: 0.68rem;
    font-weight: 600;
    letter-spacing: 0.18em;
    text-transform: uppercase;
}

.ai-badge {
    border: 1px solid rgba(217, 187, 119, 0.55);
    border-radius: 999px;
    padding: 8px 12px;
    white-space: nowrap;
}

.vip-image-tool > p {
    color: rgba(248, 241, 227, 0.76);
    margin: 0;
}

.admin-dashboard-theme .vip-image-tool label {
    color: #e8d9ba;
}

.admin-dashboard-theme .vip-image-tool input,
.admin-dashboard-theme .vip-image-tool select {
    background: rgba(255, 255, 255, 0.08);
    border-color: rgba(232, 217, 186, 0.38);
    color: #fff8e9;
}

.admin-dashboard-theme .vip-image-tool select option {
    background: #11251f;
}

.vip-tool-controls > label {
    flex: 1;
}

.vip-enhance-btn {
    background: linear-gradient(135deg, #d9bb77, #a77a2f);
    color: #10231d;
    min-width: 250px;
}

.vip-enhance-btn:disabled {
    cursor: not-allowed;
    opacity: 0.48;
}

.vip-enhance-btn.is-loading {
    animation: vip-button-pulse 1.2s ease-in-out infinite alternate;
}

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

.vip-preview-grid[hidden] {
    display: none;
}

.vip-preview-grid figure {
    margin: 0;
}

.vip-preview-grid figcaption {
    align-items: center;
    display: flex;
    font-size: 0.72rem;
    justify-content: space-between;
    letter-spacing: 0.13em;
    margin-bottom: 10px;
    text-transform: uppercase;
}

.vip-preview-frame {
    aspect-ratio: 2 / 3;
    background: rgba(255, 255, 255, 0.055);
    border: 1px solid rgba(232, 217, 186, 0.24);
    border-radius: 14px;
    display: grid;
    overflow: hidden;
    place-items: center;
}

.vip-preview-frame img {
    height: 100%;
    object-fit: cover;
    width: 100%;
}

#vip-preview-placeholder {
    color: rgba(248, 241, 227, 0.5);
    max-width: 190px;
    padding: 24px;
    text-align: center;
}

.vip-tool-message {
    border-left: 2px solid #d9bb77;
    font-size: 0.86rem;
    padding-left: 14px;
}

.vip-tool-message.is-success {
    color: #c8ebd4;
}

.vip-tool-message.is-error {
    border-color: #e58e82;
    color: #ffd0ca;
}

@keyframes vip-button-pulse {
    to { opacity: 0.72; }
}

@media (max-width: 700px) {
    .vip-image-tool-heading,
    .vip-tool-controls {
        align-items: stretch;
        flex-direction: column;
    }

    .vip-enhance-btn {
        min-width: 0;
        width: 100%;
    }

    .vip-preview-grid {
        grid-template-columns: 1fr;
    }
}

/* Rates-page service names use the same polished gold as model names. */
.rates-page .rate-card h3 {
    background: linear-gradient(105deg,#79520b 0%,#d39a24 18%,#fff1a7 38%,#c48716 54%,#ffe68a 72%,#8a5b09 100%);
    background-size: 220% 100%;
    background-clip: text;
    -webkit-background-clip: text;
    color: #e8bd55;
    display: inline-block;
    filter: none;
    letter-spacing: .015em;
    margin: 8px 12px;
    max-width: calc(100% - 24px);
    position: relative;
    width: fit-content;
    z-index: 1;
    paint-order: normal;
    text-shadow: 0 1px 0 #6f4a08,0 2px 0 #3d2905,0 0 16px rgba(255,211,103,.28);
    -webkit-text-fill-color: transparent;
    -webkit-text-stroke: 0;
}

.rates-page .rate-card h3::before {
    backdrop-filter: blur(16px) saturate(135%);
    -webkit-backdrop-filter: blur(16px) saturate(135%);
    background: linear-gradient(135deg,rgba(255,255,255,.62) 0%,rgba(255,255,255,.25) 48%,rgba(220,235,255,.16) 100%);
    border: 1px solid rgba(255,255,255,.92);
    border-radius: 10px;
    box-shadow: inset 0 1px 0 rgba(255,255,255,1),inset 1px 0 0 rgba(255,255,255,.55),0 1px 0 rgba(255,255,255,.55),0 8px 24px rgba(20,42,76,.18);
    content: "";
    inset: -8px -12px;
    position: absolute;
    z-index: -1;
}

@media (prefers-reduced-motion: no-preference) {
    .rates-page .rate-card h3 { animation: companionGoldShine 7s ease-in-out infinite; }
}

/* Executive retreat high-visibility peach and pitch-black theme */
.retreat-page,
.retreat-collection,
.retreat-booking {
    background: #e8ad8e;
    color: #000000;
}

.retreat-intro,
.retreat-story-copy,
.retreat-destination-card,
.retreat-inclusions,
.retreat-booking-form {
    background: #f0bea3;
    color: #000000;
}

.retreat-hero-veil {
    background:
        linear-gradient(90deg, rgba(239, 184, 154, .97) 0%, rgba(239, 184, 154, .88) 45%, rgba(239, 184, 154, .2) 78%),
        linear-gradient(0deg, rgba(12, 8, 5, .18), transparent 50%);
}

.retreat-page p,
.retreat-page li,
.retreat-page label,
.retreat-page small,
.retreat-page .section-kicker,
.retreat-page .retreat-text-link,
.retreat-page h1,
.retreat-page h2,
.retreat-page h3 {
    color: #000000;
    opacity: 1;
    text-shadow: none;
}

.retreat-page .section-kicker {
    font-size: 1.76rem;
    line-height: 1.35;
}

.retreat-hero-copy > p:not(.section-kicker) {
    color: #000000;
    font-size: clamp(2.15rem, 3vw, 3.2rem);
    font-weight: 600;
    line-height: 1.4;
    max-width: 980px;
    text-shadow: 0 1px 0 rgba(255, 215, 187, .75);
}

.retreat-hero-copy h1,
.retreat-hero-copy h1 em {
    color: #000000;
    text-shadow: 0 1px 0 rgba(255, 224, 196, .8);
}

.retreat-hero-copy h1 em,
.retreat-collection h2 em,
.retreat-inclusions h2 em {
    color: #000000;
    -webkit-text-stroke: 1.5px #a97716;
    paint-order: stroke fill;
}

.retreat-hero-note {
    background: #e8ad8e;
    border: 3px solid #8a6419;
    box-shadow: inset 0 2px 0 rgba(255, 226, 192, .7), 0 6px 0 #6b490c, 0 16px 30px rgba(0, 0, 0, .28);
}

.retreat-hero-note span,
.retreat-story-copy > span,
.retreat-destination-card span {
    color: #000000;
    font-size: 1.7rem;
}

.retreat-hero-note small {
    color: #000000;
    font-size: 1.4rem;
    font-weight: 600;
}

.retreat-intro > div p,
.retreat-story-copy p,
.retreat-story-copy li,
.retreat-destination-card p,
.retreat-inclusion-grid p,
.retreat-booking-intro > p:not(.section-kicker) {
    color: #000000;
    font-size: 2.2rem;
    font-weight: 500;
    line-height: 1.55;
}

.retreat-story-copy a,
.retreat-destination-card a,
.retreat-text-link {
    color: #000000;
    font-size: 1.6rem;
    font-weight: 800;
}

.retreat-inclusion-grid span {
    color: #000000;
    font-size: 1.5rem;
}

.retreat-booking-assurance span {
    background: #d6a04f;
    border: 2px solid #69470c;
    color: #000000;
    font-size: 1.5rem;
    font-weight: 700;
}

.retreat-booking-form {
    border: 3px solid #72500f;
}

.retreat-booking-form label {
    color: #000000;
    font-size: 2rem;
}

.retreat-booking-form input,
.retreat-booking-form select,
.retreat-booking-form textarea {
    background: #e8ad8e;
    border: 3px solid #72500f;
    color: #000000;
    font-size: 1.6rem;
    font-weight: 600;
    min-height: 78px;
}

.retreat-booking-form textarea {
    min-height: 230px;
}

.retreat-booking-form small {
    color: #000000;
    font-size: 1.4rem;
    font-weight: 600;
}

.retreat-submit,
.retreat-hero-actions .btn {
    background: #000000;
    border: 3px solid #d7a947;
    color: #f4ca6a;
    font-size: 1.45rem;
    font-weight: 800;
    min-height: 72px;
}

@media (max-width: 760px) {
    .retreat-page .section-kicker,
    .retreat-hero-note span,
    .retreat-story-copy > span,
    .retreat-destination-card span {
        font-size: 1.35rem;
    }

    .retreat-hero-copy > p:not(.section-kicker),
    .retreat-intro > div p,
    .retreat-story-copy p,
    .retreat-story-copy li,
    .retreat-destination-card p,
    .retreat-inclusion-grid p,
    .retreat-booking-intro > p:not(.section-kicker) {
        font-size: 1.55rem;
    }

    .retreat-booking-form label {
        font-size: 1.5rem;
    }

    .retreat-booking-form input,
    .retreat-booking-form select,
    .retreat-booking-form textarea {
        font-size: 1.3rem;
    }
}

/* Large-display typography system */
html {
    font-size: 19px;
}

body,
button,
input,
select,
textarea {
    font-family: "Poppins", sans-serif;
}

.page p,
.dashboard-page p,
.feature-copy,
.profile-copy p,
.experience-detail-copy,
.safari-editorial-copy p,
.safari-editorial-copy li,
.wellness-treatment-copy p {
    font-size: 1.05rem;
    line-height: 1.8;
}

.section-kicker,
.feature-action,
.profile-link,
.detail-back-link,
.safari-card-image > span,
.safari-meta dt,
.safari-highlights span,
.wellness-treatment-copy > p:first-child,
.wellness-treatment-copy a {
    font-size: 0.88rem;
    font-weight: 700;
    letter-spacing: 0.1em;
}

.wellness-brand-heading {
    display: grid;
    gap: 18px;
    max-width: 1100px;
}

.wellness-brand-heading > span {
    color: #ffffff;
    display: block;
    font-size: clamp(4.8rem, 10vw, 10.5rem);
    line-height: 0.86;
    text-shadow: 0 5px 24px rgba(0, 0, 0, 0.88);
}

.wellness-brand-heading > small {
    color: #f0ca70;
    display: block;
    font-family: "Playfair Display", serif;
    font-size: clamp(2rem, 4vw, 4rem);
    font-weight: 600;
    line-height: 1;
    text-shadow: 0 3px 16px rgba(0, 0, 0, 0.9);
}

/* Final header override must follow legacy responsive rules. */
@media (min-width: 761px) {
    .site-header { grid-template-columns: minmax(205px, auto) minmax(0, 1fr) auto; grid-template-rows: 1fr; }
    .brand-cluster { grid-column: 1; grid-row: 1; }
    .main-nav {
        display: grid;
        gap: 10px 8px;
        grid-column: 2;
        grid-row: 1;
        grid-template-columns: repeat(6, minmax(78px, 1fr));
        justify-content: stretch;
        overflow: visible;
        padding: 0;
        width: 100%;
    }
    .main-nav a,
    .main-nav .journey-cta { font-size: clamp(.62rem, .72vw, .84rem); min-height: 46px; min-width: 0; padding: 6px 8px; white-space: normal; width: 100%; }
    .header-actions { grid-column: 3; grid-row: 1; }
}

@media (min-width: 761px) and (max-width: 1050px) {
    .site-header { grid-template-columns: 215px minmax(0, 1fr); gap: 16px; padding-left: 18px; padding-right: 18px; }
    .brand { min-width: 205px; padding: 10px 12px 11px; }
    .brand-mark { font-size: .88rem; letter-spacing: .08em; }
    .brand-subtitle { font-size: .82rem; }
    .main-nav a,
    .main-nav .journey-cta { font-size: .62rem; letter-spacing: .015em; padding-left: 5px; padding-right: 5px; }
}

.wellness-treatment-section {
    background: #f2ece2;
    color: #050505;
}

.wellness-treatment-section h2,
.wellness-treatment-section > header > p {
    color: #050505;
}

.wellness-treatment-card {
    background: #ffffff;
    border-color: #b9934f;
    color: #050505;
    box-shadow: 0 16px 34px rgba(45, 34, 21, 0.15);
}

.wellness-treatment-copy > p:first-child {
    color: #684814;
}

.wellness-treatment-copy h3 {
    color: #000000;
    font-size: clamp(2rem, 2.8vw, 2.8rem);
}

.wellness-treatment-copy > p:not(:first-child) {
    color: #000000 !important;
    font-weight: 500;
    min-height: 0;
    text-shadow: none;
}

.wellness-treatment-copy a {
    color: #432c07;
    display: inline-block;
    margin-top: 12px;
    text-decoration: underline;
    text-underline-offset: 5px;
}

.dashboard-form-wrap {
    max-width: 1180px;
}

.dashboard-form {
    gap: 30px;
    padding: clamp(34px, 5vw, 64px);
}

.dashboard-form label {
    font-size: 1.05rem;
    gap: 14px;
    letter-spacing: 0.07em;
}

.dashboard-form input,
.dashboard-form select {
    font-size: 1.1rem;
    min-height: 68px;
    padding: 18px 22px;
}

.dashboard-form textarea {
    font-size: 1.1rem;
    line-height: 1.7;
    min-height: 210px;
    padding: 20px 22px;
}

.dashboard-form .btn {
    font-size: 1rem;
    min-height: 64px;
    padding: 18px 30px;
}

.booking-payments h2 {
    font-size: clamp(3rem, 5vw, 5.5rem);
}

.mini-payment-grid article,
.mini-payment-grid strong,
.mini-payment-grid small {
    font-size: 1rem;
    line-height: 1.7;
}

@media (max-width: 700px) {
    html {
        font-size: 17px;
    }

    .wellness-brand-heading > span {
        font-size: clamp(3.6rem, 17vw, 6.2rem);
    }
}

/* Raised gold treatment-name tabs */
.wellness-treatment-copy h3 {
    background:
        linear-gradient(180deg, #fff0ad 0%, #e7c765 18%, #bd8d27 52%, #f2d479 100%);
    border: 2px solid #5e410c;
    border-radius: 12px;
    box-shadow:
        inset 0 2px 0 rgba(255, 255, 255, 0.82),
        inset 0 -4px 0 rgba(91, 57, 4, 0.35),
        0 5px 0 #6e4a0d,
        0 11px 22px rgba(42, 29, 8, 0.3);
    color: #050505;
    display: block;
    font-family: "Playfair Display", serif;
    font-size: clamp(1.8rem, 2.5vw, 2.6rem);
    font-weight: 700;
    line-height: 1.08;
    margin: 14px 0 26px;
    padding: 16px 18px 19px;
    text-shadow: 0 1px 0 rgba(255, 255, 255, 0.62);
}

.wellness-treatment-card:hover .wellness-treatment-copy h3 {
    background:
        linear-gradient(180deg, #fff5c8 0%, #f0d373 20%, #cb992c 54%, #f7dd8c 100%);
    box-shadow:
        inset 0 2px 0 rgba(255, 255, 255, 0.9),
        inset 0 -4px 0 rgba(91, 57, 4, 0.32),
        0 6px 0 #6e4a0d,
        0 14px 26px rgba(42, 29, 8, 0.36);
    transform: translateY(-1px);
}

.wellness-treatment-card {
    background: linear-gradient(145deg, #12345d, #071b3a 68%, #10243c);
    color: #fffdf5;
}

.wellness-treatment-copy > p:not(:first-child) {
    color: #fffdf2 !important;
    font-family: Georgia, "Times New Roman", serif;
    font-size: 1.15rem;
    font-style: italic;
    font-weight: 500;
    line-height: 1.75;
    text-shadow: 0 1px 8px rgba(0, 0, 0, 0.48);
}

.wellness-treatment-copy a {
    color: #ffe59a;
}

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

.wellness-treatment-copy > p:not(:first-child) {
    font-size: clamp(1.9rem, 2.55vw, 2.75rem);
    line-height: 1.4;
    margin: 22px 0 30px;
}

@media (max-width: 760px) {
    .wellness-treatment-grid {
        grid-template-columns: 1fr;
    }

    .wellness-treatment-copy > p:not(:first-child) {
        font-size: clamp(1.55rem, 6.5vw, 2.1rem);
    }
}

.field-hint {
    color: #a89062;
    font-size: 0.68rem;
    font-weight: 400;
    letter-spacing: 0;
    text-transform: none;
}

.upload-count {
    color: var(--muted);
    font-size: 0.8rem;
    margin: -12px 0 8px;
}

.upload-count.is-error {
    color: #bc4438;
}

.profile-photo-section,
.gallery-collections {
    padding: 90px clamp(20px, 7vw, 110px);
}

.profile-photo-heading,
.gallery-collection > header {
    align-items: end;
    display: grid;
    gap: 40px;
    grid-template-columns: 1fr minmax(250px, 0.65fr);
    margin-bottom: 36px;
}

.profile-photo-heading h2,
.gallery-collection h2 {
    font-family: "Playfair Display", serif;
    font-size: clamp(2.2rem, 5vw, 4.8rem);
    margin: 0;
}

.profile-photo-heading > span {
    color: var(--muted);
    justify-self: end;
}

.profile-photo-grid,
.gallery-photo-grid {
    display: grid;
    gap: 16px;
    grid-auto-rows: 260px;
    grid-template-columns: repeat(4, minmax(0, 1fr));
}

.profile-photo-grid figure,
.gallery-photo-grid figure,
.gallery-photo-grid a {
    border-radius: 14px;
    margin: 0;
    overflow: hidden;
    position: relative;
}

.profile-photo-grid img,
.gallery-photo-grid img {
    height: 100%;
    object-fit: cover;
    transition: transform 0.5s ease;
    width: 100%;
}

.profile-photo-grid img {
    background: linear-gradient(145deg, #164474, #071b3a 65%, #1f190e);
    object-fit: contain;
}

.profile-photo-grid figure:hover img,
.gallery-photo-grid figure:hover img,
.gallery-photo-grid a:hover img {
    transform: scale(1.025);
}

.profile-photo-grid figure:hover img {
    transform: none;
}

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

.gallery-directory {
    background: #0b1916;
    display: flex;
    gap: 10px;
    overflow-x: auto;
    padding: 24px clamp(20px, 7vw, 110px);
    position: sticky;
    top: 0;
    z-index: 5;
}

.gallery-directory a {
    border: 1px solid rgba(214, 180, 104, 0.45);
    border-radius: 999px;
    color: #f5e9cf;
    flex: 0 0 auto;
    font-size: 0.72rem;
    letter-spacing: 0.08em;
    padding: 10px 15px;
    text-transform: uppercase;
}

.gallery-collections {
    display: grid;
    gap: 120px;
}

.gallery-collection {
    scroll-margin-top: 100px;
}

.gallery-collection > header p:last-child {
    color: var(--muted);
    margin: 0;
}

.gallery-photo-grid a > span {
    background: linear-gradient(transparent, rgba(5, 14, 12, 0.88));
    bottom: 0;
    color: white;
    left: 0;
    padding: 44px 20px 18px;
    position: absolute;
    right: 0;
}

.gallery-count-1 {
    grid-template-columns: minmax(0, 720px);
}

.gallery-count-1 .gallery-photo-featured {
    aspect-ratio: 4 / 3;
    grid-column: auto;
    grid-row: auto;
}

@media (max-width: 850px) {
    .profile-photo-heading,
    .gallery-collection > header {
        align-items: start;
        grid-template-columns: 1fr;
    }

    .profile-photo-heading > span {
        justify-self: start;
    }

    .profile-photo-grid,
    .gallery-photo-grid {
        grid-auto-rows: 220px;
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 520px) {
    .profile-photo-grid,
    .gallery-photo-grid {
        grid-auto-rows: 260px;
        grid-template-columns: 1fr;
    }

    .profile-photo-featured,
    .gallery-photo-featured {
        grid-column: auto;
        grid-row: auto;
    }
}

.profile-admin-actions {
    align-items: center;
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-top: 14px;
}

.profile-admin-actions .dashboard-inline-link {
    margin: 0;
}

.edit-profile-link {
    border: 1px solid rgba(215, 180, 106, 0.45);
    padding: 8px 10px;
}

.profile-admin-actions form {
    margin: 0;
}

.dashboard-delete-btn {
    background: transparent;
    border: 1px solid rgba(255, 132, 132, 0.45);
    color: #ffb4b4;
    cursor: pointer;
    font: inherit;
    font-size: 0.7rem;
    letter-spacing: 0.08em;
    padding: 8px 10px;
    text-transform: uppercase;
}

.dashboard-delete-btn:hover,
.dashboard-delete-btn:focus-visible {
    background: #a92f2f;
    color: white;
}

.existing-media-manager {
    border-top: 1px solid rgba(217, 187, 119, 0.28);
    display: grid;
    gap: 16px;
    padding-top: 24px;
}

.existing-media-heading {
    align-items: center;
    display: flex;
    gap: 20px;
    justify-content: space-between;
}

.existing-media-heading h3 {
    color: #fff8e9;
    font-family: "Playfair Display", serif;
    font-size: 1.65rem;
    margin: 0;
}

.existing-media-heading span {
    color: #d9bb77;
}

.existing-media-manager > p {
    color: rgba(248, 241, 227, 0.7);
    font-size: 0.85rem;
    margin: 0;
}

.existing-media-grid {
    display: grid;
    gap: 14px;
    grid-template-columns: repeat(auto-fit, minmax(130px, 1fr));
}

.existing-media-grid article {
    background: rgba(255, 255, 255, 0.045);
    border: 1px solid rgba(232, 217, 186, 0.24);
    border-radius: 12px;
    display: grid;
    gap: 8px;
    overflow: hidden;
    padding-bottom: 10px;
}

.existing-media-grid article > img {
    aspect-ratio: 3 / 4;
    object-fit: cover;
    width: 100%;
}

.admin-dashboard-theme .existing-media-grid .media-choice {
    align-items: center;
    color: #f4ead6;
    display: flex;
    font-size: 0.68rem;
    gap: 7px;
    grid-template-columns: auto 1fr;
    padding: 0 10px;
}

.admin-dashboard-theme .existing-media-grid .media-choice input {
    accent-color: #d9bb77;
    height: 16px;
    padding: 0;
    width: 16px;
}

.admin-dashboard-theme .existing-media-grid .remove-choice {
    color: #ffb4b4;
}

.profile-photo-grid {
    grid-auto-rows: auto;
}

.profile-photo-grid figure {
    aspect-ratio: 3 / 4;
    grid-column: auto;
    grid-row: auto;
}

body.slideshow-open {
    overflow: hidden;
}

.profile-photo-trigger {
    background: none;
    border: 0;
    cursor: zoom-in;
    display: block;
    height: 100%;
    padding: 0;
    width: 100%;
}

.profile-photo-trigger:focus-visible {
    box-shadow: inset 0 0 0 3px var(--gold);
    outline: none;
}

.companion-slideshow {
    background: transparent;
    border: 0;
    height: 100dvh;
    margin: auto;
    max-height: none;
    max-width: none;
    padding: 0;
    width: 100%;
}

.companion-slideshow::backdrop {
    background: rgba(1, 7, 17, 0.94);
    backdrop-filter: blur(10px);
}

.companion-slideshow-shell {
    background: #041127;
    color: var(--ink);
    display: grid;
    grid-template-rows: auto minmax(0, 1fr) auto;
    height: 100%;
    padding: clamp(14px, 2vw, 28px);
}

.companion-slideshow-header {
    align-items: center;
    display: grid;
    gap: 18px;
    grid-template-columns: 1fr auto auto;
    padding-bottom: 14px;
}

.companion-slideshow-header .section-kicker {
    margin-bottom: 3px;
}

.companion-slideshow-header strong {
    font-family: "Playfair Display", serif;
    font-size: clamp(1.2rem, 2vw, 1.8rem);
}

.companion-slide-count {
    color: var(--muted);
    font-size: 0.82rem;
    letter-spacing: 0.08em;
}

.companion-slideshow-close,
.companion-slide-arrow {
    align-items: center;
    background: rgba(248, 243, 234, 0.08);
    border: 1px solid rgba(224, 191, 111, 0.45);
    border-radius: 50%;
    color: var(--ink);
    cursor: pointer;
    display: flex;
    justify-content: center;
}

.companion-slideshow-close {
    font-size: 1.8rem;
    height: 44px;
    width: 44px;
}

.companion-slideshow-stage {
    align-items: center;
    display: grid;
    gap: clamp(8px, 2vw, 22px);
    grid-template-columns: auto minmax(0, 1fr) auto;
    min-height: 0;
}

.companion-slide-track {
    display: flex;
    height: 100%;
    max-height: calc(100dvh - 190px);
    overflow-x: auto;
    overscroll-behavior-x: contain;
    scrollbar-width: none;
    scroll-snap-type: x mandatory;
}

.companion-slide-track::-webkit-scrollbar {
    display: none;
}

.companion-slide {
    display: grid;
    flex: 0 0 100%;
    margin: 0;
    min-width: 0;
    place-items: center;
    scroll-snap-align: center;
    scroll-snap-stop: always;
}

.companion-slide img {
    border-radius: 10px;
    height: 100%;
    max-width: 100%;
    object-fit: contain;
    width: 100%;
}

.companion-slide-arrow {
    font-size: 2.2rem;
    height: 48px;
    width: 48px;
}

.companion-slide-arrow:disabled {
    cursor: default;
    opacity: 0.3;
}

.companion-slideshow-close:hover,
.companion-slide-arrow:hover,
.companion-slideshow-close:focus-visible,
.companion-slide-arrow:focus-visible {
    background: rgba(224, 191, 111, 0.2);
    border-color: var(--gold);
    outline: none;
}

.companion-slide-thumbnails {
    display: flex;
    gap: 10px;
    justify-content: center;
    overflow-x: auto;
    padding-top: 14px;
    scroll-snap-type: x proximity;
}

.companion-slide-thumbnails button {
    background: #071b3a;
    border: 2px solid transparent;
    border-radius: 8px;
    cursor: pointer;
    flex: 0 0 58px;
    height: 72px;
    overflow: hidden;
    padding: 0;
    scroll-snap-align: center;
}

.companion-slide-thumbnails button.is-active {
    border-color: var(--gold);
}

.companion-slide-thumbnails img {
    height: 100%;
    object-fit: contain;
    width: 100%;
}

@media (max-width: 640px) {
    .companion-slideshow-header {
        grid-template-columns: 1fr auto;
    }

    .companion-slide-count {
        grid-column: 1;
        grid-row: 2;
    }

    .companion-slideshow-close {
        grid-column: 2;
        grid-row: 1 / span 2;
    }

    .companion-slideshow-stage {
        grid-template-columns: minmax(0, 1fr);
    }

    .companion-slide-arrow {
        display: none;
    }

    .companion-slide-track {
        max-height: calc(100dvh - 210px);
    }
}

.safari-experiences-section,
.safari-builder-section {
    padding: clamp(72px, 9vw, 130px) clamp(20px, 7vw, 110px);
}

.safari-experiences-section {
    background:
        radial-gradient(circle at 85% 10%, rgba(215, 180, 106, 0.12), transparent 28%),
        #06152e;
}

.safari-section-intro {
    align-items: end;
    display: grid;
    gap: clamp(30px, 7vw, 100px);
    grid-template-columns: minmax(0, 1.2fr) minmax(280px, 0.8fr);
    margin-bottom: 34px;
}

.safari-section-intro h2,
.safari-builder-heading h2 {
    font-family: "Playfair Display", serif;
    font-size: clamp(2.7rem, 6vw, 6rem);
    line-height: 0.98;
    margin: 0;
}

.safari-section-intro > p,
.safari-builder-heading > p {
    color: var(--muted);
    line-height: 1.8;
    margin: 0;
}

.safari-category-nav {
    display: flex;
    gap: 10px;
    margin-bottom: 44px;
    overflow-x: auto;
    padding-bottom: 8px;
}

.safari-category-nav a {
    border: 1px solid rgba(224, 191, 111, 0.42);
    border-radius: 999px;
    color: var(--gold);
    flex: 0 0 auto;
    font-size: 0.72rem;
    letter-spacing: 0.08em;
    padding: 10px 16px;
    text-transform: uppercase;
}

.safari-card-grid {
    display: grid;
    gap: 24px;
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.safari-booking-card {
    background: rgba(248, 243, 234, 0.045);
    border: 1px solid rgba(224, 191, 111, 0.28);
    border-radius: 16px;
    display: flex;
    flex-direction: column;
    overflow: hidden;
}

.safari-card-image {
    aspect-ratio: 4 / 3;
    overflow: hidden;
    position: relative;
}

.safari-card-image::after {
    background: linear-gradient(transparent 45%, rgba(4, 17, 39, 0.8));
    content: "";
    inset: 0;
    position: absolute;
}

.safari-card-image img {
    height: 100%;
    object-fit: cover;
    transition: transform 0.6s ease;
    width: 100%;
}

.safari-booking-card:hover .safari-card-image img {
    transform: scale(1.035);
}

.safari-card-image > span {
    background: rgba(4, 17, 39, 0.82);
    border: 1px solid rgba(224, 191, 111, 0.46);
    border-radius: 999px;
    bottom: 16px;
    color: var(--gold);
    font-size: 0.66rem;
    left: 16px;
    letter-spacing: 0.08em;
    padding: 8px 11px;
    position: absolute;
    text-transform: uppercase;
    z-index: 1;
}

.safari-card-body {
    display: flex;
    flex: 1;
    flex-direction: column;
    padding: 24px;
}

.safari-card-body h3 {
    font-family: "Playfair Display", serif;
    font-size: clamp(1.6rem, 2.4vw, 2.25rem);
    line-height: 1.08;
    margin: 0 0 20px;
}

.safari-meta {
    display: grid;
    gap: 12px;
    grid-template-columns: 0.75fr 1.25fr;
    margin: 0 0 20px;
}

.safari-meta div {
    border-left: 1px solid rgba(224, 191, 111, 0.35);
    padding-left: 12px;
}

.safari-meta dt,
.safari-card-footer small {
    color: var(--muted);
    font-size: 0.65rem;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.safari-meta dd {
    font-size: 0.82rem;
    line-height: 1.5;
    margin: 4px 0 0;
}

.safari-highlights {
    display: flex;
    flex-wrap: wrap;
    gap: 7px;
    margin-bottom: 24px;
}

.safari-highlights span {
    background: rgba(248, 243, 234, 0.06);
    border-radius: 5px;
    color: var(--muted);
    font-size: 0.7rem;
    padding: 7px 9px;
}

.safari-card-footer {
    align-items: center;
    border-top: 1px solid rgba(248, 243, 234, 0.09);
    display: flex;
    gap: 14px;
    justify-content: space-between;
    margin-top: auto;
    padding-top: 20px;
}

.safari-card-footer > div {
    display: grid;
    gap: 2px;
}

.safari-card-footer strong {
    color: var(--gold);
    font-family: "Playfair Display", serif;
}

.safari-book-button {
    font-size: 0.67rem;
    padding: 12px 15px;
    white-space: nowrap;
}

.safari-builder-section {
    background:
        linear-gradient(rgba(5, 15, 35, 0.94), rgba(5, 15, 35, 0.97)),
        url("../../images/cultural/resorts/images (4).jpg") center / cover fixed;
}

.safari-builder-heading {
    display: grid;
    gap: 18px;
    margin: 0 auto 50px;
    max-width: 900px;
    text-align: center;
}

.safari-builder {
    background: rgba(3, 13, 31, 0.9);
    border: 1px solid rgba(224, 191, 111, 0.32);
    border-radius: 18px;
    margin: 0 auto;
    max-width: 1180px;
    padding: clamp(24px, 5vw, 58px);
}

.safari-builder fieldset {
    border: 0;
    border-bottom: 1px solid rgba(248, 243, 234, 0.1);
    margin: 0;
    padding: 0 0 36px;
}

.safari-builder fieldset + fieldset {
    padding-top: 36px;
}

.safari-builder legend {
    font-family: "Playfair Display", serif;
    font-size: clamp(1.45rem, 2.4vw, 2rem);
    margin-bottom: 20px;
}

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

.safari-choice-grid label {
    cursor: pointer;
    position: relative;
}

.safari-choice-grid input {
    height: 1px;
    opacity: 0;
    position: absolute;
    width: 1px;
}

.safari-choice-grid span {
    align-items: center;
    background: rgba(248, 243, 234, 0.055);
    border: 1px solid rgba(248, 243, 234, 0.12);
    border-radius: 8px;
    color: var(--muted);
    display: flex;
    font-size: 0.76rem;
    min-height: 46px;
    padding: 10px 13px 10px 36px;
    position: relative;
}

.safari-choice-grid span::before {
    border: 1px solid rgba(224, 191, 111, 0.55);
    border-radius: 4px;
    content: "";
    height: 14px;
    left: 13px;
    position: absolute;
    width: 14px;
}

.safari-choice-grid input:checked + span {
    background: rgba(224, 191, 111, 0.14);
    border-color: var(--gold);
    color: var(--ink);
}

.safari-choice-grid input:checked + span::before {
    background: var(--gold);
    box-shadow: inset 0 0 0 3px #071b3a;
}

.safari-choice-grid input:focus-visible + span {
    outline: 2px solid var(--gold);
    outline-offset: 2px;
}

.safari-duration-grid {
    grid-template-columns: repeat(6, minmax(0, 1fr));
}

.safari-duration-grid span {
    justify-content: center;
    padding-left: 32px;
}

.safari-duration-grid span::before {
    border-radius: 50%;
}

.safari-builder-submit {
    align-items: center;
    display: flex;
    gap: 24px;
    justify-content: space-between;
    padding-top: 36px;
}

.safari-builder-submit > div {
    display: grid;
    gap: 5px;
}

.safari-builder-submit > div strong {
    font-family: "Playfair Display", serif;
    font-size: 1.35rem;
}

.safari-builder-submit > div span {
    color: var(--muted);
    font-size: 0.8rem;
}

@media (max-width: 1050px) {
    .safari-card-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

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

@media (max-width: 720px) {
    .safari-section-intro,
    .safari-card-grid {
        grid-template-columns: 1fr;
    }

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

    .safari-builder-submit {
        align-items: stretch;
        flex-direction: column;
    }

    .safari-builder-submit .btn {
        text-align: center;
    }
}

@media (max-width: 430px) {
    .safari-choice-grid,
    .safari-duration-grid {
        grid-template-columns: 1fr;
    }

    .safari-card-footer {
        align-items: stretch;
        flex-direction: column;
    }

    .safari-book-button {
        text-align: center;
    }
}

.safari-landing-hero,
.experience-detail-hero {
    align-items: end;
    display: flex;
    min-height: min(820px, 88vh);
    overflow: hidden;
    position: relative;
}

.safari-landing-hero > img,
.experience-detail-hero > img {
    height: 100%;
    inset: 0;
    object-fit: cover;
    position: absolute;
    width: 100%;
}

.safari-landing-hero .page-veil,
.experience-detail-hero .page-veil {
    background:
        linear-gradient(90deg, rgba(2, 10, 24, 0.94), rgba(2, 10, 24, 0.38) 68%, rgba(2, 10, 24, 0.2)),
        linear-gradient(0deg, rgba(2, 10, 24, 0.88), transparent 55%);
    inset: 0;
    position: absolute;
}

.safari-landing-hero .page-hero-content,
.experience-detail-hero .page-hero-content {
    padding: clamp(130px, 18vw, 220px) clamp(20px, 8vw, 120px) clamp(70px, 9vw, 120px);
    position: relative;
    z-index: 1;
}

.safari-landing-hero .page-hero-content h1,
.experience-detail-hero .page-hero-content h1 {
    font-size: clamp(3.2rem, 8vw, 8rem);
    max-width: 900px;
}

.safari-landing-hero .page-hero-content p:last-of-type,
.experience-detail-hero .page-hero-content p:last-of-type {
    color: rgba(248, 243, 234, 0.78);
    line-height: 1.8;
    max-width: 720px;
}

.detail-back-link {
    color: var(--gold);
    display: inline-block;
    font-size: 0.72rem;
    letter-spacing: 0.08em;
    margin-bottom: 32px;
    text-transform: uppercase;
}

.safari-specialist-section {
    background: #081b35;
    padding: clamp(72px, 9vw, 130px) clamp(20px, 7vw, 110px);
}

.safari-specialist-grid {
    display: grid;
    gap: 18px;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    margin: 0 auto;
    max-width: 1180px;
}

.safari-specialist-grid article {
    background: rgba(248, 243, 234, 0.045);
    border: 1px solid rgba(224, 191, 111, 0.24);
    border-radius: 14px;
    padding: clamp(24px, 4vw, 42px);
}

.safari-specialist-grid h3 {
    color: var(--gold);
    font-family: "Playfair Display", serif;
    font-size: clamp(1.5rem, 2.7vw, 2.3rem);
    margin: 0 0 20px;
}

.safari-specialist-grid ul,
.experience-detail-copy ul {
    color: var(--muted);
    display: grid;
    gap: 12px;
    line-height: 1.65;
    margin: 0;
    padding-left: 20px;
}

.experience-detail-content {
    background:
        radial-gradient(circle at 15% 20%, rgba(215, 180, 106, 0.12), transparent 30%),
        #06152e;
    display: grid;
    gap: clamp(40px, 9vw, 140px);
    grid-template-columns: minmax(0, 0.9fr) minmax(320px, 1.1fr);
    padding: clamp(80px, 11vw, 150px) clamp(20px, 8vw, 120px);
}

.experience-detail-content h2 {
    font-family: "Playfair Display", serif;
    font-size: clamp(2.7rem, 6vw, 5.8rem);
    line-height: 1;
    margin: 0;
}

.experience-detail-copy {
    align-self: center;
    color: var(--muted);
    display: grid;
    gap: 24px;
    line-height: 1.8;
}

.experience-detail-copy p {
    margin: 0;
}

.experience-detail-copy .btn {
    justify-self: start;
}

@media (max-width: 760px) {
    .safari-specialist-grid,
    .experience-detail-content {
        grid-template-columns: 1fr;
    }

    .safari-landing-hero,
    .experience-detail-hero {
        min-height: 760px;
    }
}

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

.safari-editorial-card {
    background: rgba(248, 243, 234, 0.045);
    border: 1px solid rgba(224, 191, 111, 0.25);
    border-radius: 16px;
    display: grid;
    grid-template-columns: minmax(150px, 0.72fr) minmax(0, 1.28fr);
    overflow: hidden;
}

.safari-editorial-image {
    min-height: 100%;
    overflow: hidden;
    position: relative;
}

.safari-editorial-image::after {
    background: linear-gradient(0deg, rgba(4, 17, 39, 0.68), transparent 52%);
    content: "";
    inset: 0;
    position: absolute;
}

.safari-editorial-image img {
    height: 100%;
    object-fit: cover;
    transition: transform 0.6s ease;
    width: 100%;
}

.safari-editorial-card:hover .safari-editorial-image img {
    transform: scale(1.035);
}

.safari-editorial-image span {
    bottom: 16px;
    color: var(--gold);
    font-family: "Playfair Display", serif;
    font-size: 1.8rem;
    left: 16px;
    position: absolute;
    z-index: 1;
}

.safari-editorial-copy {
    padding: 26px;
}

.safari-editorial-copy h3 {
    font-family: "Playfair Display", serif;
    font-size: clamp(1.65rem, 2.5vw, 2.4rem);
    line-height: 1.05;
    margin: 0 0 12px;
}

.safari-editorial-copy > p {
    color: var(--muted);
    font-size: 0.85rem;
    line-height: 1.7;
}

.safari-editorial-copy ul {
    color: var(--muted);
    display: grid;
    font-size: 0.79rem;
    gap: 8px;
    line-height: 1.55;
    margin: 18px 0;
    padding-left: 18px;
}

.safari-editorial-copy > a {
    color: var(--gold);
    font-size: 0.7rem;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.experience-detail-gallery {
    display: grid;
    gap: 14px;
    grid-auto-rows: 250px;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    padding: 70px clamp(20px, 7vw, 110px) 0;
}

.experience-detail-gallery figure {
    border-radius: 14px;
    margin: 0;
    overflow: hidden;
}

.experience-detail-gallery img {
    height: 100%;
    object-fit: cover;
    width: 100%;
}

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

@media (max-width: 980px) {
    .safari-editorial-grid {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 620px) {
    .safari-editorial-card {
        grid-template-columns: 1fr;
    }

    .safari-editorial-image {
        min-height: 240px;
    }

    .experience-detail-gallery {
        grid-auto-rows: 220px;
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

.wellness-landing-hero {
    align-items: end;
    display: flex;
    min-height: min(860px, 90vh);
    overflow: hidden;
    position: relative;
}

.wellness-landing-hero > img,
.wellness-landing-hero .page-veil {
    height: 100%;
    inset: 0;
    object-fit: cover;
    position: absolute;
    width: 100%;
}

.wellness-landing-hero .page-veil {
    background: linear-gradient(90deg, rgba(22, 15, 11, 0.86), rgba(35, 25, 18, 0.2));
}

.wellness-landing-hero .page-hero-content {
    padding: clamp(130px, 18vw, 220px) clamp(20px, 8vw, 120px) clamp(70px, 9vw, 120px);
    position: relative;
    z-index: 1;
}

.wellness-landing-hero h1 {
    font-size: clamp(3.4rem, 8.5vw, 8.5rem);
    line-height: 0.92;
}

.wellness-philosophy,
.wellness-treatment-section,
.wellness-care-section {
    padding: clamp(80px, 10vw, 140px) clamp(20px, 8vw, 120px);
}

.wellness-philosophy {
    background: #f5f0e8;
    color: #211e1a;
    display: grid;
    gap: clamp(40px, 9vw, 140px);
    grid-template-columns: minmax(0, 1.2fr) minmax(300px, 0.8fr);
}

.wellness-philosophy h2,
.wellness-treatment-section h2,
.wellness-care-section h2 {
    font-family: "Playfair Display", serif;
    font-size: clamp(2.7rem, 5.5vw, 6rem);
    line-height: 1;
    margin: 0;
}

.wellness-philosophy em,
.wellness-treatment-section em,
.wellness-care-section em {
    color: #b88c3f;
    font-weight: inherit;
}

.wellness-philosophy > div:last-child {
    align-self: center;
    color: #514941;
    line-height: 1.8;
}

.wellness-values {
    background: #ded4c4;
    color: #211e1a;
    display: grid;
    gap: 40px;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    padding: 70px clamp(20px, 8vw, 120px);
}

.wellness-values article {
    border-top: 1px solid rgba(74, 51, 40, 0.35);
    padding-top: 22px;
}

.wellness-values span {
    color: #9b712d;
    font-size: 0.72rem;
    letter-spacing: 0.12em;
}

.wellness-values h3 {
    font-family: "Playfair Display", serif;
    font-size: 2rem;
    margin: 14px 0 8px;
}

.wellness-values p {
    color: #514941;
    line-height: 1.7;
}

.wellness-treatment-section {
    background: #071b3a;
}

.wellness-treatment-section > header {
    align-items: end;
    display: grid;
    gap: 50px;
    grid-template-columns: 1fr minmax(250px, 0.5fr);
    margin-bottom: 55px;
}

.wellness-treatment-section > header > p {
    color: var(--muted);
}

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

.wellness-treatment-card {
    background: rgba(248, 243, 234, 0.045);
    border: 1px solid rgba(215, 180, 106, 0.25);
    border-radius: 15px;
    overflow: hidden;
}

.wellness-treatment-image {
    aspect-ratio: 4 / 3;
    overflow: hidden;
    position: relative;
}

.wellness-treatment-image img {
    height: 100%;
    object-fit: cover;
    transition: transform 0.6s ease;
    width: 100%;
}

.wellness-treatment-card:hover img {
    transform: scale(1.035);
}

.wellness-treatment-image span {
    background: rgba(7, 27, 58, 0.8);
    bottom: 12px;
    color: var(--gold);
    left: 12px;
    padding: 7px 9px;
    position: absolute;
}

.wellness-treatment-copy {
    padding: 24px;
}

.wellness-treatment-copy > p:first-child {
    color: var(--gold);
    font-size: 0.68rem;
    letter-spacing: 0.1em;
    text-transform: uppercase;
}

.wellness-treatment-copy h3 {
    font-family: "Playfair Display", serif;
    font-size: 1.8rem;
    line-height: 1.05;
    margin: 10px 0;
}

.wellness-treatment-copy > p:not(:first-child) {
    color: var(--muted);
    line-height: 1.65;
    min-height: 80px;
}

.wellness-treatment-copy a {
    color: var(--gold);
    font-size: 0.72rem;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.wellness-care-section {
    align-items: center;
    background: #f5f0e8;
    color: #211e1a;
    display: grid;
    gap: clamp(40px, 9vw, 120px);
    grid-template-columns: 1fr 1fr;
}

.wellness-care-section > img {
    height: 680px;
    object-fit: cover;
    width: 100%;
}

.wellness-care-section p,
.wellness-care-section ul {
    color: #514941;
    line-height: 1.8;
}

.wellness-care-section ul {
    margin: 24px 0 30px;
    padding-left: 20px;
}

@media (max-width: 900px) {
    .wellness-treatment-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 700px) {
    .wellness-philosophy,
    .wellness-treatment-section > header,
    .wellness-values,
    .wellness-care-section {
        grid-template-columns: 1fr;
    }

    .wellness-treatment-grid {
        grid-template-columns: 1fr;
    }

    .wellness-care-section > img {
        height: 480px;
    }
}

/* Enlarged personalised-care copy and luxury booking action */
.wellness-care-section .section-kicker {
    font-size: 1.76rem;
    line-height: 1.35;
}

.wellness-care-section > div > p:not(.section-kicker),
.wellness-care-section li {
    font-size: 2.1rem;
    line-height: 1.55;
}

.wellness-care-section .wellness-book-moment {
    background: linear-gradient(145deg, #171717 0%, #020202 58%, #101010 100%);
    border: 3px solid #d5aa45;
    border-radius: 14px;
    box-shadow:
        inset 0 2px 0 rgba(255, 239, 171, 0.34),
        inset 0 -4px 0 rgba(74, 45, 2, 0.92),
        0 5px 0 #72500f,
        0 12px 24px rgba(32, 22, 5, 0.3);
    color: #f4cf71;
    font-size: 1.2rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    padding: 18px 32px 21px;
    text-shadow: 0 1px 0 #000;
}

.wellness-care-section .wellness-book-moment:hover,
.wellness-care-section .wellness-book-moment:focus-visible {
    background: #000;
    border-color: #f0cf76;
    box-shadow:
        inset 0 2px 0 rgba(255, 244, 190, 0.48),
        inset 0 -4px 0 rgba(91, 57, 4, 0.9),
        0 6px 0 #7d5914,
        0 15px 28px rgba(32, 22, 5, 0.38);
    color: #ffe79d;
}

@media (max-width: 700px) {
    .wellness-care-section .section-kicker {
        font-size: 1.45rem;
    }

    .wellness-care-section > div > p:not(.section-kicker),
    .wellness-care-section li {
        font-size: 1.55rem;
    }
}

/* Twice-size supporting typography for the philosophy and values panels */
.wellness-philosophy .section-kicker {
    color: #000000;
    font-size: 1.76rem;
    line-height: 1.35;
}

.wellness-philosophy > div:last-child p {
    color: #000000;
    font-size: 2.1rem;
    font-weight: 500;
    line-height: 1.55;
}

.wellness-values span {
    color: #000000;
    font-size: 1.44rem;
}

.wellness-values h3,
.wellness-values p {
    color: #000000;
}

.wellness-values p {
    font-size: 2.1rem;
    font-weight: 500;
    line-height: 1.55;
}

@media (max-width: 700px) {
    .wellness-philosophy .section-kicker {
        font-size: 1.5rem;
    }

    .wellness-philosophy > div:last-child p,
    .wellness-values p {
        font-size: 1.65rem;
    }

    .wellness-values span {
        font-size: 1.3rem;
    }
}

/* Raised gold section-topic tabs */
.wellness-values h3,
.wellness-treatment-section .section-kicker {
    background: linear-gradient(180deg, #fff0ad 0%, #e7c765 18%, #bd8d27 52%, #f2d479 100%);
    border: 2px solid #5e410c;
    border-radius: 12px;
    box-shadow:
        inset 0 2px 0 rgba(255, 255, 255, 0.82),
        inset 0 -4px 0 rgba(91, 57, 4, 0.35),
        0 5px 0 #6e4a0d,
        0 11px 22px rgba(42, 29, 8, 0.3);
    color: #000000;
    display: inline-block;
    font-weight: 700;
    padding: 14px 22px 17px;
    text-shadow: 0 1px 0 rgba(255, 255, 255, 0.62);
}

.wellness-values h3 {
    min-width: min(100%, 260px);
}

.wellness-treatment-section .section-kicker {
    font-size: 1.15rem;
    margin-bottom: 28px;
}

/* Black treatment-menu headline with a pronounced gold outline */
.wellness-treatment-section h2,
.wellness-treatment-section h2 em {
    color: #000000;
    paint-order: stroke fill;
    -webkit-text-stroke: 2px #e4bd59;
    text-shadow:
        1px 1px 0 #e4bd59,
        -1px -1px 0 #e4bd59,
        0 5px 16px rgba(0, 0, 0, 0.3);
}

@media (max-width: 700px) {
    .wellness-values h3,
    .wellness-treatment-section .section-kicker {
        width: 100%;
    }

    .wellness-treatment-section h2,
    .wellness-treatment-section h2 em {
        -webkit-text-stroke-width: 1.25px;
    }
}

/* Immersive bookable destination pages */
.destination-story-page {
    background: #e8ad8e;
    color: #000;
}

.destination-story-hero {
    min-height: min(940px, 94vh);
    overflow: hidden;
    position: relative;
}

.destination-story-hero > img {
    height: 100%;
    inset: 0;
    object-fit: cover;
    position: absolute;
    width: 100%;
}

.destination-story-veil {
    background: linear-gradient(90deg, rgba(237, 177, 145, .97), rgba(237, 177, 145, .86) 45%, rgba(237, 177, 145, .12) 80%);
    inset: 0;
    position: absolute;
}

.destination-story-hero-copy {
    max-width: 1120px;
    padding: clamp(150px, 17vw, 240px) clamp(24px, 8vw, 130px) 150px;
    position: relative;
    z-index: 1;
}

.destination-story-hero-copy h1 {
    color: #000;
    font-family: "Playfair Display", serif;
    font-size: clamp(5rem, 10vw, 11rem);
    line-height: .82;
    margin: 28px 0;
}

.destination-story-hero-copy h2 {
    color: #000;
    font-family: "Playfair Display", serif;
    font-size: clamp(2.3rem, 4.2vw, 4.8rem);
    line-height: 1;
    margin-bottom: 28px;
    -webkit-text-stroke: 1px #a87514;
    paint-order: stroke fill;
}

.destination-story-hero-copy > p:not(.section-kicker) {
    color: #000;
    font-size: clamp(1.7rem, 2.25vw, 2.5rem);
    font-weight: 600;
    line-height: 1.5;
    max-width: 950px;
}

.destination-story-page .section-kicker {
    color: #000;
    font-size: 1.55rem;
    font-weight: 800;
}

.destination-story-hero-copy .btn,
.destination-inline-booking .btn {
    background: #000;
    border: 3px solid #d9ad4d;
    box-shadow: inset 0 2px 0 rgba(255, 235, 165, .35), inset 0 -4px 0 #5d3d08, 0 5px 0 #785512;
    color: #f3ca6d;
    font-size: 1.35rem;
    font-weight: 800;
    margin-top: 36px;
    min-height: 70px;
}

.destination-best-for {
    background: #000;
    border: 2px solid #d9ad4d;
    bottom: 35px;
    color: #f2c96d;
    font-size: 1.2rem;
    font-weight: 700;
    letter-spacing: .06em;
    padding: 18px 26px;
    position: absolute;
    right: clamp(24px, 6vw, 100px);
    z-index: 1;
}

.destination-story-intro {
    align-items: end;
    background: #f0bea3;
    display: grid;
    gap: 60px;
    grid-template-columns: .45fr 1fr 1fr;
    padding: clamp(80px, 10vw, 145px) clamp(24px, 8vw, 130px);
}

.destination-story-intro h2,
.destination-highlights h2,
.destination-inline-booking h2 {
    color: #000;
    font-family: "Playfair Display", serif;
    font-size: clamp(3rem, 5.5vw, 6.2rem);
    line-height: 1;
}

.destination-story-intro h2 em,
.destination-highlights h2 em {
    color: #000;
    -webkit-text-stroke: 1.5px #a87514;
    paint-order: stroke fill;
}

.destination-story-intro > p:last-child {
    color: #000;
    font-size: 1.8rem;
    font-weight: 500;
    line-height: 1.6;
}

.destination-experience-grid {
    display: grid;
    gap: 30px;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    padding: clamp(70px, 9vw, 130px) clamp(24px, 8vw, 130px);
}

.destination-experience-card {
    background: #f0bea3;
    border: 2px solid #8c6417;
    box-shadow: 0 20px 42px rgba(58, 31, 17, .2);
    display: grid;
    grid-template-columns: .9fr 1.1fr;
    min-height: 500px;
    overflow: hidden;
}

.destination-experience-card img {
    height: 100%;
    min-height: 500px;
    object-fit: cover;
    width: 100%;
}

.destination-experience-card > div {
    padding: clamp(30px, 4vw, 56px);
}

.destination-experience-card span {
    color: #000;
    font-size: 1.25rem;
    font-weight: 800;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.destination-experience-card h3 {
    color: #000;
    font-family: "Playfair Display", serif;
    font-size: clamp(2.3rem, 3vw, 3.6rem);
    line-height: 1.05;
    margin: 24px 0;
}

.destination-experience-card p {
    color: #000;
    font-size: 1.65rem;
    font-weight: 500;
    line-height: 1.6;
}

.destination-experience-card a {
    color: #000;
    display: inline-block;
    font-size: 1.35rem;
    font-weight: 800;
    margin-top: 28px;
    text-decoration: underline;
    text-underline-offset: 6px;
}

.destination-gallery {
    display: grid;
    gap: 12px;
    grid-auto-rows: 360px;
    grid-template-columns: repeat(4, 1fr);
    padding: 12px;
}

.destination-gallery figure { overflow: hidden; }
.destination-gallery img { height: 100%; object-fit: cover; transition: transform .65s ease; width: 100%; }
.destination-gallery figure:hover img { transform: scale(1.04); }
.destination-gallery-wide { grid-column: span 2; }

.destination-highlights {
    background: #f0bea3;
    display: grid;
    gap: 80px;
    grid-template-columns: .85fr 1.15fr;
    padding: clamp(85px, 10vw, 150px) clamp(24px, 8vw, 130px);
}

.destination-highlight-grid {
    display: grid;
    gap: 24px;
    grid-template-columns: repeat(2, 1fr);
}

.destination-highlight-grid article {
    background: linear-gradient(180deg, #f2d27c, #bd8d27 62%, #e5bd59);
    border: 2px solid #62430d;
    border-radius: 12px;
    box-shadow: inset 0 2px 0 rgba(255,255,255,.6), inset 0 -4px 0 rgba(83,48,3,.35), 0 5px 0 #6b490c;
    color: #000;
    display: grid;
    gap: 9px;
    padding: 22px;
}

.destination-highlight-grid span { font-size: 1rem; font-weight: 800; }
.destination-highlight-grid strong { font-size: 1.45rem; }

.destination-inline-booking {
    background: #e8ad8e;
    display: grid;
    gap: clamp(50px, 8vw, 130px);
    grid-template-columns: .85fr 1.15fr;
    padding: clamp(90px, 10vw, 150px) clamp(24px, 8vw, 130px);
}

.destination-inline-booking > div > p:last-child {
    color: #000;
    font-size: 1.8rem;
    font-weight: 500;
    line-height: 1.65;
    margin-top: 28px;
}

.destination-inline-booking form {
    background: #f0bea3;
    border: 3px solid #76520f;
    border-radius: 18px;
    box-shadow: 0 28px 60px rgba(65, 34, 17, .25);
    display: grid;
    gap: 24px;
    padding: clamp(30px, 5vw, 60px);
}

.destination-inline-booking label {
    color: #000;
    display: grid;
    font-size: 1.45rem;
    font-weight: 800;
    gap: 10px;
}

.destination-inline-booking input,
.destination-inline-booking select,
.destination-inline-booking textarea {
    background: #e8ad8e;
    border: 3px solid #76520f;
    border-radius: 8px;
    color: #000;
    font: inherit;
    min-height: 68px;
    padding: 14px 16px;
    width: 100%;
}

.destination-inline-booking textarea { min-height: 190px; }
.destination-inline-booking small { color: #000; font-size: 1.15rem; font-weight: 600; }
.destination-form-row { display: grid; gap: 18px; grid-template-columns: 1fr 1fr; }

@media (max-width: 1150px) {
    .destination-story-intro { grid-template-columns: 1fr 1.4fr; }
    .destination-story-intro > p:last-child { grid-column: 1 / -1; }
    .destination-experience-card { grid-template-columns: 1fr; }
    .destination-experience-card img { max-height: 440px; }
}

@media (max-width: 760px) {
    .destination-story-hero-copy { padding-bottom: 210px; }
    .destination-best-for { bottom: 24px; left: 20px; right: 20px; }
    .destination-story-intro,
    .destination-experience-grid,
    .destination-highlights,
    .destination-inline-booking { grid-template-columns: 1fr; }
    .destination-gallery { grid-auto-rows: 250px; grid-template-columns: 1fr 1fr; }
    .destination-highlight-grid,
    .destination-form-row { grid-template-columns: 1fr; }
    .destination-story-hero-copy > p:not(.section-kicker),
    .destination-story-intro > p:last-child,
    .destination-experience-card p,
    .destination-inline-booking > div > p:last-child { font-size: 1.4rem; }
}

/* Glossy metallic-black treatment for major destination headings */
.destination-story-hero-copy h1,
.destination-story-hero-copy h2,
.destination-story-intro h2,
.destination-story-intro h2 em,
.destination-experience-card h3,
.destination-highlights h2,
.destination-highlights h2 em,
.destination-inline-booking h2,
.retreat-page h1,
.retreat-page h1 em,
.retreat-page h2,
.retreat-page h2 em,
.retreat-page h3,
.wellness-philosophy h2,
.wellness-philosophy h2 em,
.wellness-values h3,
.wellness-treatment-section h2,
.wellness-treatment-section h2 em,
.wellness-treatment-copy h3,
.wellness-care-section h2,
.wellness-care-section h2 em {
    background: linear-gradient(
        180deg,
        #020202 0%,
        #171717 18%,
        #777777 34%,
        #080808 47%,
        #a4a4a4 53%,
        #242424 64%,
        #000000 82%,
        #484848 100%
    );
    background-clip: text;
    -webkit-background-clip: text;
    color: transparent;
    -webkit-text-fill-color: transparent;
    -webkit-text-stroke: .55px #000000;
    filter: drop-shadow(0 2px 0 rgba(255, 226, 195, .5)) drop-shadow(0 5px 4px rgba(35, 18, 9, .25));
    paint-order: stroke fill;
}

.destination-story-hero-copy h1,
.destination-story-hero-copy h2,
.destination-story-intro h2,
.destination-highlights h2,
.destination-inline-booking h2,
.retreat-page h1,
.retreat-page h2,
.wellness-philosophy h2,
.wellness-treatment-section h2,
.wellness-care-section h2 {
    background-size: 100% 135%;
}

/* Nairobi Airbnb and serviced-stays landing page */
.airbnb-page { background: #e8ad8e; color: #000; }
.airbnb-hero { min-height: min(980px, 95vh); overflow: hidden; position: relative; }
.airbnb-hero > img { height: 100%; inset: 0; object-fit: cover; position: absolute; width: 100%; }
.airbnb-hero-veil { background: linear-gradient(90deg, rgba(236,174,141,.97), rgba(236,174,141,.84) 47%, rgba(236,174,141,.1) 80%); inset: 0; position: absolute; }
.airbnb-hero-copy { max-width: 1050px; padding: clamp(150px,17vw,240px) clamp(24px,8vw,130px) 300px; position: relative; z-index: 1; }
.airbnb-page .section-kicker { color: #000; font-size: 1.5rem; font-weight: 800; }
.airbnb-hero-copy h1,
.airbnb-intro h2,
.airbnb-location-section h2,
.airbnb-stay-types h2,
.airbnb-reservation h2,
.airbnb-location-card h3,
.airbnb-type-grid h3 {
    background: linear-gradient(180deg,#020202 0%,#171717 18%,#777 34%,#080808 47%,#a4a4a4 53%,#242424 64%,#000 82%,#484848 100%);
    background-clip: text;
    -webkit-background-clip: text;
    color: transparent;
    -webkit-text-fill-color: transparent;
    -webkit-text-stroke: .55px #000;
    filter: drop-shadow(0 2px 0 rgba(255,226,195,.5)) drop-shadow(0 5px 4px rgba(35,18,9,.22));
    paint-order: stroke fill;
}
.airbnb-hero-copy h1 { font-family: "Playfair Display",serif; font-size: clamp(4.8rem,9vw,10rem); line-height: .86; margin: 25px 0 32px; }
.airbnb-hero-copy h1 em { font-weight: inherit; }
.airbnb-hero-copy > p:not(.section-kicker) { color: #000; font-size: clamp(1.7rem,2.2vw,2.5rem); font-weight: 600; line-height: 1.5; max-width: 900px; }
.airbnb-quick-search { align-items: end; background: #f0bea3; border: 3px solid #74500e; bottom: 30px; box-shadow: 0 8px 0 #6b490c,0 22px 45px rgba(0,0,0,.25); display: grid; gap: 16px; grid-template-columns: 1.5fr .8fr .55fr auto; left: clamp(24px,8vw,130px); padding: 24px; position: absolute; right: clamp(24px,8vw,130px); z-index: 2; }
.airbnb-quick-search label,
.airbnb-reservation label { color: #000; display: grid; font-size: 1.15rem; font-weight: 800; gap: 8px; }
.airbnb-quick-search input,
.airbnb-quick-search select,
.airbnb-reservation input,
.airbnb-reservation select,
.airbnb-reservation textarea { background: #e8ad8e; border: 3px solid #74500e; border-radius: 7px; color: #000; font: inherit; min-height: 62px; padding: 12px 14px; width: 100%; }
.airbnb-quick-search .btn,
.airbnb-reservation .btn { background: #000; border: 3px solid #d7ab4b; box-shadow: inset 0 2px rgba(255,238,170,.35),inset 0 -4px #604008,0 5px #785512; color: #f3ca6d; font-size: 1.15rem; font-weight: 800; min-height: 65px; }
.airbnb-intro { align-items: center; background: #f0bea3; display: grid; gap: 65px; grid-template-columns: .5fr 1fr 1fr; padding: clamp(80px,10vw,145px) clamp(24px,8vw,130px); }
.airbnb-intro h2,
.airbnb-location-section h2,
.airbnb-stay-types h2,
.airbnb-reservation h2 { font-family: "Playfair Display",serif; font-size: clamp(3rem,5.5vw,6rem); line-height: 1; }
.airbnb-intro > div p { color: #000; font-size: 1.7rem; font-weight: 500; line-height: 1.65; }
.airbnb-intro > div p + p { margin-top: 22px; }
.airbnb-location-section { padding: clamp(80px,10vw,145px) clamp(24px,6vw,100px); }
.airbnb-location-section > header { margin-bottom: 65px; }
.airbnb-location-grid { display: grid; gap: 26px; grid-template-columns: repeat(2,minmax(0,1fr)); }
.airbnb-location-card { background: #f0bea3; border: 2px solid #77520e; display: grid; grid-template-columns: .9fr 1.1fr; min-height: 430px; overflow: hidden; }
.airbnb-location-card img { height: 100%; min-height: 430px; object-fit: cover; width: 100%; }
.airbnb-location-card > div { padding: clamp(28px,3.5vw,52px); }
.airbnb-location-card span { color: #000; font-size: 1.1rem; font-weight: 800; letter-spacing: .07em; text-transform: uppercase; }
.airbnb-location-card h3 { font-family: "Playfair Display",serif; font-size: clamp(2.4rem,3.4vw,4rem); line-height: 1; margin: 20px 0; }
.airbnb-location-card p { color: #000; font-size: 1.45rem; font-weight: 500; line-height: 1.6; }
.airbnb-location-card a { color: #000; display: inline-block; font-size: 1.2rem; font-weight: 800; margin-top: 25px; text-decoration: underline; text-underline-offset: 5px; }
.airbnb-more-areas { background: #000; border: 3px solid #d7ab4b; color: #f3ca6d !important; font-size: 1.35rem; font-weight: 700; line-height: 1.65; margin-top: 32px; padding: 25px 30px; }
.airbnb-stay-types { background: #f0bea3; display: grid; gap: 75px; grid-template-columns: .75fr 1.25fr; padding: clamp(85px,10vw,150px) clamp(24px,8vw,130px); }
.airbnb-type-grid { display: grid; gap: 22px; grid-template-columns: repeat(2,1fr); }
.airbnb-type-grid article { background: linear-gradient(180deg,#f3d37d,#be8e28 62%,#e5bd59); border: 2px solid #62430d; border-radius: 12px; box-shadow: inset 0 2px rgba(255,255,255,.6),inset 0 -4px rgba(83,48,3,.35),0 5px #6b490c; padding: 25px; }
.airbnb-type-grid span { color: #000; font-weight: 800; }
.airbnb-type-grid h3 { font-family: "Playfair Display",serif; font-size: 2rem; margin: 10px 0; }
.airbnb-type-grid p { color: #000; font-size: 1.25rem; font-weight: 500; line-height: 1.55; }
.airbnb-gallery { display: grid; gap: 12px; grid-auto-rows: 350px; grid-template-columns: repeat(4,1fr); padding: 12px; }
.airbnb-gallery figure { overflow: hidden; }
.airbnb-gallery img { height: 100%; object-fit: cover; transition: transform .6s ease; width: 100%; }
.airbnb-gallery figure:hover img { transform: scale(1.04); }
.airbnb-gallery-wide { grid-column: span 2; }
.airbnb-service-strip { background: #000; border-bottom: 3px solid #d7ab4b; border-top: 3px solid #d7ab4b; padding: 50px clamp(24px,8vw,130px); }
.airbnb-service-strip .section-kicker { color: #f3ca6d; }
.airbnb-service-strip > div { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 22px; }
.airbnb-service-strip span { border: 2px solid #d7ab4b; border-radius: 999px; color: #f3ca6d; font-size: 1.15rem; font-weight: 700; padding: 10px 17px; }
.airbnb-reservation { display: grid; gap: clamp(50px,8vw,130px); grid-template-columns: .8fr 1.2fr; padding: clamp(90px,10vw,150px) clamp(24px,8vw,130px); }
.airbnb-reservation > div > p:last-child { color: #000; font-size: 1.7rem; font-weight: 500; line-height: 1.65; margin-top: 28px; }
.airbnb-reservation form { background: #f0bea3; border: 3px solid #74500e; border-radius: 18px; box-shadow: 0 25px 55px rgba(65,34,17,.25); display: grid; gap: 23px; padding: clamp(30px,5vw,60px); }
.airbnb-reservation label { font-size: 1.4rem; }
.airbnb-reservation textarea { min-height: 190px; }
.airbnb-form-row { display: grid; gap: 18px; grid-template-columns: 1fr 1fr; }
.airbnb-reservation small { color: #000; font-size: 1.1rem; font-weight: 600; }

@media (max-width: 1100px) {
    .airbnb-quick-search { grid-template-columns: 1fr 1fr; }
    .airbnb-intro { grid-template-columns: 1fr 1.4fr; }
    .airbnb-intro > div { grid-column: 1/-1; }
    .airbnb-location-card { grid-template-columns: 1fr; }
    .airbnb-location-card img { max-height: 420px; }
}

@media (max-width: 760px) {
    .airbnb-hero { min-height: 1250px; }
    .airbnb-hero-copy { padding-bottom: 550px; }
    .airbnb-quick-search { bottom: 25px; grid-template-columns: 1fr; left: 20px; right: 20px; }
    .airbnb-intro,
    .airbnb-location-grid,
    .airbnb-stay-types,
    .airbnb-reservation { grid-template-columns: 1fr; }
    .airbnb-type-grid,
    .airbnb-form-row { grid-template-columns: 1fr; }
    .airbnb-gallery { grid-auto-rows: 250px; grid-template-columns: 1fr 1fr; }
    .airbnb-hero-copy > p:not(.section-kicker),
    .airbnb-intro > div p,
    .airbnb-location-card p,
    .airbnb-reservation > div > p:last-child { font-size: 1.35rem; }
}

/* Long-form illustrated About page */
.about-story-page { background: #e8ad8e; color: #000; }
.about-story-hero { min-height: min(980px,95vh); overflow: hidden; position: relative; }
.about-story-hero > img { height: 100%; inset: 0; object-fit: cover; position: absolute; width: 100%; }
.about-story-veil { background: linear-gradient(90deg,rgba(236,174,141,.97),rgba(236,174,141,.84) 47%,rgba(236,174,141,.08) 82%); inset: 0; position: absolute; }
.about-story-hero-copy { max-width: 1150px; padding: clamp(150px,17vw,245px) clamp(24px,8vw,130px) 130px; position: relative; z-index: 1; }
.about-story-page .section-kicker { color: #000; font-size: 1.5rem; font-weight: 800; }
.about-story-hero h1,
.about-opening h2,
.about-editorial-copy h2,
.about-promise h2,
.about-process h2,
.about-universe h2,
.about-discretion h2,
.about-final-cta h2,
.about-promise h3,
.about-process h3 {
    background: linear-gradient(180deg,#020202 0%,#171717 18%,#777 34%,#080808 47%,#a4a4a4 53%,#242424 64%,#000 82%,#484848 100%);
    background-clip: text;
    -webkit-background-clip: text;
    color: transparent;
    -webkit-text-fill-color: transparent;
    -webkit-text-stroke: .55px #000;
    filter: drop-shadow(0 2px 0 rgba(255,226,195,.48)) drop-shadow(0 5px 4px rgba(35,18,9,.22));
    paint-order: stroke fill;
}
.about-story-hero h1 { font-family: "Playfair Display",serif; font-size: clamp(4.4rem,8.5vw,9.5rem); line-height: .9; margin: 28px 0 34px; }
.about-story-hero h1 em { font-weight: inherit; }
.about-story-hero-copy > p:not(.section-kicker) { color: #000; font-size: clamp(1.7rem,2.3vw,2.6rem); font-weight: 600; line-height: 1.5; max-width: 980px; }
.about-hero-actions { align-items: center; display: flex; flex-wrap: wrap; gap: 28px; margin-top: 42px; }
.about-hero-actions .btn,
.about-final-cta .btn { background: #000; border: 3px solid #d7ab4b; box-shadow: inset 0 2px rgba(255,238,170,.35),inset 0 -4px #604008,0 5px #785512; color: #f3ca6d; font-size: 1.2rem; font-weight: 800; }
.about-hero-actions > a:not(.btn) { color: #000; font-size: 1.25rem; font-weight: 800; text-decoration: underline; text-underline-offset: 6px; }
.about-hero-signature { background: #e8ad8e; border: 3px solid #74500e; bottom: 40px; box-shadow: 0 6px #6b490c,0 18px 36px rgba(0,0,0,.25); display: grid; padding: 20px 28px; position: absolute; right: clamp(24px,6vw,100px); z-index: 1; }
.about-hero-signature span { color: #000; font-size: 1rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.about-hero-signature strong { color: #000; font-family: "Playfair Display",serif; font-size: 1.8rem; }
.about-hero-signature small { color: #000; font-size: 1rem; font-weight: 600; }
.about-opening { align-items: start; background: #f0bea3; display: grid; gap: clamp(45px,7vw,100px); grid-template-columns: .45fr 1fr 1fr; padding: clamp(85px,10vw,150px) clamp(24px,8vw,130px); }
.about-opening h2,
.about-promise h2,
.about-process h2,
.about-universe h2,
.about-discretion h2,
.about-final-cta h2 { font-family: "Playfair Display",serif; font-size: clamp(3rem,5.5vw,6rem); line-height: 1; }
.about-opening > div p { color: #000; font-size: 1.55rem; font-weight: 500; line-height: 1.72; }
.about-opening > div p + p { margin-top: 24px; }
.about-editorial-story { display: grid; grid-template-columns: 1.05fr .95fr; }
.about-editorial-image img { height: 100%; object-fit: cover; width: 100%; }
.about-editorial-image-main { min-height: 720px; }
.about-editorial-copy { background: #e8ad8e; padding: clamp(45px,7vw,100px); }
.about-editorial-copy > span { color: #000; font-size: 1.2rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.about-editorial-copy h2 { font-family: "Playfair Display",serif; font-size: clamp(3rem,5vw,5.5rem); line-height: 1; margin: 28px 0; }
.about-editorial-copy p { color: #000; font-size: 1.45rem; font-weight: 500; line-height: 1.7; }
.about-editorial-copy p + p { margin-top: 22px; }
.about-editorial-image-secondary { grid-column: 1/-1; height: 520px; }
.about-promise { background: #f0bea3; padding: clamp(85px,10vw,150px) clamp(24px,8vw,130px); }
.about-promise > header { margin-bottom: 65px; max-width: 1100px; }
.about-promise-grid { display: grid; gap: 24px; grid-template-columns: repeat(3,1fr); }
.about-promise-grid article { background: linear-gradient(180deg,#f3d37d,#be8e28 62%,#e5bd59); border: 2px solid #62430d; border-radius: 12px; box-shadow: inset 0 2px rgba(255,255,255,.6),inset 0 -4px rgba(83,48,3,.35),0 5px #6b490c; padding: clamp(26px,3vw,42px); }
.about-promise-grid span { color: #000; font-weight: 800; }
.about-promise-grid h3 { font-family: "Playfair Display",serif; font-size: 2rem; margin: 13px 0; }
.about-promise-grid p { color: #000; font-size: 1.2rem; font-weight: 500; line-height: 1.6; }
.about-process { display: grid; gap: clamp(55px,8vw,130px); grid-template-columns: .8fr 1.2fr; padding: clamp(90px,10vw,155px) clamp(24px,8vw,130px); }
.about-process-heading { position: sticky; top: calc(var(--header-height) + 30px); align-self: start; }
.about-process-heading > p:last-child { color: #000; font-size: 1.45rem; font-weight: 500; line-height: 1.65; margin-top: 28px; }
.about-process-list { list-style: none; }
.about-process-list li { border-top: 2px solid #795514; display: grid; gap: 28px; grid-template-columns: 70px 1fr; padding: 30px 0; }
.about-process-list > li > span { color: #000; font-size: 1.2rem; font-weight: 800; }
.about-process-list h3 { font-family: "Playfair Display",serif; font-size: 2.2rem; margin-bottom: 10px; }
.about-process-list p { color: #000; font-size: 1.3rem; font-weight: 500; line-height: 1.6; }
.about-universe { background: #f0bea3; padding: clamp(85px,10vw,150px) clamp(24px,6vw,100px); }
.about-universe > header { margin-bottom: 65px; }
.about-universe-grid { display: grid; gap: 18px; grid-template-columns: repeat(3,1fr); }
.about-universe-grid a { min-height: 520px; overflow: hidden; position: relative; }
.about-universe-grid img { height: 100%; object-fit: cover; transition: transform .65s ease; width: 100%; }
.about-universe-grid a:hover img { transform: scale(1.04); }
.about-universe-grid a::after { background: linear-gradient(0deg,rgba(0,0,0,.9),rgba(0,0,0,.05) 70%); content: ""; inset: 0; position: absolute; }
.about-universe-grid span { bottom: 28px; display: grid; left: 28px; position: absolute; right: 28px; z-index: 1; }
.about-universe-grid small { color: #f3ca6d; font-size: 1rem; font-weight: 700; text-transform: uppercase; }
.about-universe-grid strong { color: #fff; font-family: "Playfair Display",serif; font-size: 2.4rem; }
.about-discretion { align-items: stretch; display: grid; grid-template-columns: 1fr 1fr; }
.about-discretion-image { min-height: 760px; }
.about-discretion-image img { height: 100%; object-fit: cover; width: 100%; }
.about-discretion-copy { background: #e8ad8e; padding: clamp(55px,7vw,105px); }
.about-discretion-copy > p:not(.section-kicker),
.about-discretion-copy li { color: #000; font-size: 1.45rem; font-weight: 500; line-height: 1.7; }
.about-discretion-copy > p:not(.section-kicker) { margin-top: 24px; }
.about-discretion-copy ul { margin-top: 28px; padding-left: 25px; }
.about-belief { background: #000; padding: clamp(90px,12vw,180px) clamp(24px,12vw,190px); text-align: center; }
.about-belief .section-kicker { color: #f3ca6d; }
.about-belief blockquote { color: #f3ca6d; font-family: "Playfair Display",serif; font-size: clamp(3rem,6vw,6.8rem); line-height: 1.08; margin: 40px auto; max-width: 1500px; }
.about-belief > p:last-child { color: #fff; font-size: 1.5rem; line-height: 1.65; margin: auto; max-width: 950px; }
.about-final-cta { min-height: 780px; overflow: hidden; position: relative; }
.about-final-cta > img { height: 100%; inset: 0; object-fit: cover; position: absolute; width: 100%; }
.about-final-cta > span { background: linear-gradient(90deg,rgba(233,171,138,.95),rgba(233,171,138,.62),rgba(0,0,0,.2)); inset: 0; position: absolute; }
.about-final-cta > div { max-width: 1050px; padding: clamp(120px,15vw,220px) clamp(24px,8vw,130px); position: relative; z-index: 1; }
.about-final-cta p:not(.section-kicker) { color: #000; font-size: 1.6rem; font-weight: 600; line-height: 1.6; margin: 28px 0; }

@media (max-width: 1050px) {
    .about-opening { grid-template-columns: 1fr 1.4fr; }
    .about-opening > div { grid-column: 1/-1; }
    .about-promise-grid,
    .about-universe-grid { grid-template-columns: repeat(2,1fr); }
}

@media (max-width: 760px) {
    .about-story-hero-copy { padding-bottom: 260px; }
    .about-hero-signature { bottom: 25px; left: 20px; right: 20px; }
    .about-opening,
    .about-editorial-story,
    .about-process,
    .about-discretion { grid-template-columns: 1fr; }
    .about-promise-grid,
    .about-universe-grid { grid-template-columns: 1fr; }
    .about-process-heading { position: static; }
    .about-editorial-image-main,
    .about-discretion-image { min-height: 480px; }
    .about-editorial-image-secondary { height: 350px; }
    .about-universe-grid a { min-height: 430px; }
    .about-story-hero-copy > p:not(.section-kicker),
    .about-opening > div p,
    .about-editorial-copy p,
    .about-discretion-copy > p:not(.section-kicker),
    .about-discretion-copy li { font-size: 1.35rem; }
}

/* Metallic-blue secondary title system */
.about-story-page h1 em,
.about-story-page h2 em,
.airbnb-page h1 em,
.airbnb-page h2 em,
.retreat-page h1 em,
.retreat-page h2 em,
.destination-story-page h2 em,
.destination-story-hero-copy h2,
.wellness-philosophy h2 em,
.wellness-treatment-section h2 em,
.wellness-care-section h2 em,
.wellness-brand-heading > small {
    background: linear-gradient(
        180deg,
        #001433 0%,
        #063f82 18%,
        #45a7eb 34%,
        #052c63 47%,
        #c4edff 53%,
        #1687d5 66%,
        #002353 83%,
        #70c8f4 100%
    );
    background-clip: text;
    -webkit-background-clip: text;
    color: transparent;
    display: inline-block;
    -webkit-text-fill-color: transparent;
    -webkit-text-stroke: .65px #001b43;
    filter: drop-shadow(0 2px 0 rgba(207, 241, 255, .5)) drop-shadow(0 5px 5px rgba(0, 28, 70, .28));
    paint-order: stroke fill;
    text-shadow: none;
}

.destination-story-hero-copy h2,
.wellness-brand-heading > small {
    background-size: 100% 135%;
}

/* Metallic-crimson medium heading system */
.page h3,
.feature-title,
.about-universe-grid strong {
    background: linear-gradient(
        180deg,
        #3a0008 0%,
        #8f0018 16%,
        #ff3652 32%,
        #720010 45%,
        #ffe0e4 52%,
        #f01836 63%,
        #61000e 81%,
        #ff7185 100%
    );
    background-clip: text;
    -webkit-background-clip: text;
    color: transparent;
    -webkit-text-fill-color: transparent;
    -webkit-text-stroke: .65px #3d0009;
    filter: drop-shadow(0 1px 0 rgba(255, 224, 228, .68)) drop-shadow(0 4px 5px rgba(74, 0, 13, .42));
    paint-order: stroke fill;
    text-shadow: none;
}

.feature-title,
.about-universe-grid strong {
    display: inline-block;
}

/* Preserve original card backgrounds; only the heading lettering is crimson */
.page h3,
.feature-title,
.about-universe-grid strong {
    margin-left: 0;
    margin-right: 0;
}

/* Compact clear-glass backing for prominent headings */
.page h3,
.feature-title,
.about-universe-grid strong {
    display: inline-block;
    isolation: isolate;
    max-width: 100%;
    position: relative;
    z-index: 1;
}

.page h3::before,
.feature-title::before,
.about-universe-grid strong::before {
    backdrop-filter: blur(16px) saturate(135%);
    -webkit-backdrop-filter: blur(16px) saturate(135%);
    background:
        linear-gradient(135deg, rgba(255, 255, 255, .62) 0%, rgba(255, 255, 255, .25) 48%, rgba(220, 235, 255, .16) 100%);
    border: 1px solid rgba(255, 255, 255, .92);
    border-radius: 10px;
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 1),
        inset 1px 0 0 rgba(255, 255, 255, .55),
        0 1px 0 rgba(255, 255, 255, .55),
        0 8px 24px rgba(20, 42, 76, .18);
    content: "";
    inset: -8px -12px;
    position: absolute;
    z-index: -1;
}

.page h3,
.feature-title,
.about-universe-grid strong {
    margin-left: 12px;
    margin-right: 12px;
}

/* Clean high-definition royal-blue treatment */
.page h3,
.feature-title,
.about-universe-grid strong {
    background: none;
    color: #003dcc;
    font-weight: 900 !important;
    letter-spacing: .012em;
    -webkit-text-fill-color: #003dcc;
    -webkit-text-stroke: .35px rgba(255, 255, 255, .72);
    filter: none;
    paint-order: stroke fill;
    text-shadow:
        0 .5px 0 rgba(255, 255, 255, .48),
        0 2px 0 rgba(0, 42, 145, .72),
        0 4px 5px rgba(0, 24, 86, .34);
}

/* Cultural exchange landing page */
.cultural-page {
    --cultural-ink: #101622;
    --cultural-blue: #063fae;
    --cultural-gold: #c89a3d;
    --cultural-cream: #f5ead8;
    background: #f2dfc8;
    color: var(--cultural-ink);
    overflow: hidden;
}

.cultural-page p,
.cultural-page li,
.cultural-page label,
.cultural-page small {
    color: var(--cultural-ink);
    font-size: clamp(1.05rem, 1.18vw, 1.35rem);
    line-height: 1.72;
}

.cultural-page .section-kicker {
    color: #5b3700;
    font-size: clamp(.9rem, 1vw, 1.08rem);
    font-weight: 900;
    letter-spacing: .18em;
    text-transform: uppercase;
}

.cultural-page h1,
.cultural-page h2 {
    color: #080b10;
    font-family: Georgia, "Times New Roman", serif;
    font-weight: 800;
    letter-spacing: -.035em;
    line-height: .98;
}

.cultural-page h2 { font-size: clamp(2.8rem, 5.5vw, 6.5rem); }
.cultural-page h1 em,
.cultural-page h2 em { color: var(--cultural-blue); font-weight: 700; }

.cultural-hero {
    min-height: min(880px, 92vh);
    position: relative;
}

.cultural-hero > img {
    height: 100%;
    inset: 0;
    object-fit: cover;
    position: absolute;
    width: 100%;
}

.cultural-hero-shade {
    background: linear-gradient(90deg, rgba(5, 13, 27, .9) 0%, rgba(5, 13, 27, .68) 43%, rgba(5, 13, 27, .08) 76%), linear-gradient(0deg, rgba(5, 13, 27, .55), transparent 45%);
    inset: 0;
    position: absolute;
}

.cultural-hero-copy {
    color: #fff;
    max-width: 900px;
    padding: clamp(8rem, 15vh, 11rem) clamp(1.5rem, 7vw, 8rem) 7rem;
    position: relative;
    z-index: 2;
}

.cultural-hero-copy .detail-back-link,
.cultural-hero-copy .section-kicker,
.cultural-hero-copy p,
.cultural-hero-copy h1 { color: #fff; }
.cultural-hero-copy h1 { font-size: clamp(4rem, 8vw, 8.8rem); margin: 1.2rem 0 1.8rem; }
.cultural-hero-copy h1 em { color: #f5bd52; }
.cultural-hero-copy > p:not(.section-kicker) { font-size: clamp(1.25rem, 1.65vw, 1.72rem); max-width: 760px; }
.cultural-hero-actions { align-items: center; display: flex; flex-wrap: wrap; gap: 1.5rem; margin-top: 2.2rem; }
.cultural-hero-actions > a:not(.btn) { color: #fff; font-size: 1.08rem; font-weight: 800; }

.cultural-hero-stamp {
    backdrop-filter: blur(14px);
    -webkit-backdrop-filter: blur(14px);
    background: rgba(255,255,255,.2);
    border: 1px solid rgba(255,255,255,.68);
    bottom: 2.5rem;
    color: #fff;
    display: grid;
    padding: 1.3rem 1.6rem;
    position: absolute;
    right: clamp(1.5rem, 5vw, 6rem);
    z-index: 2;
}
.cultural-hero-stamp span { font-size: .8rem; font-weight: 800; letter-spacing: .15em; text-transform: uppercase; }
.cultural-hero-stamp strong { font-family: Georgia, serif; font-size: 2.2rem; }
.cultural-hero-stamp small { color: #fff; font-size: .78rem; }

.cultural-purpose,
.cultural-programmes,
.cultural-care,
.cultural-booking { padding: clamp(5rem, 9vw, 10rem) clamp(1.5rem, 6vw, 7rem); }

.cultural-purpose { display: grid; gap: 3.5rem; grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); }
.cultural-purpose-copy { padding-top: 2.2rem; }
.cultural-purpose-copy p:first-child { font-size: clamp(1.3rem, 1.7vw, 1.8rem); font-weight: 650; }
.cultural-values { display: grid; gap: 1rem; grid-column: 1 / -1; grid-template-columns: repeat(3, 1fr); }
.cultural-values article {
    background: rgba(255,255,255,.42);
    border: 1px solid rgba(255,255,255,.9);
    box-shadow: 0 12px 30px rgba(76,43,16,.1);
    padding: 2rem;
}
.cultural-values span,
.cultural-care-grid span { color: #704400; display: block; font-weight: 900; letter-spacing: .12em; margin-bottom: .8rem; }
.cultural-values strong { color: var(--cultural-blue); font-family: Georgia, serif; font-size: 2rem; }

.cultural-programmes { background: #0b213d; }
.cultural-programmes header { margin-bottom: 3.2rem; max-width: 980px; }
.cultural-programmes header .section-kicker,
.cultural-programmes header h2,
.cultural-programmes header > p { color: #fff; }
.cultural-programmes header h2 em { color: #efb94e; }
.cultural-programme-grid { display: grid; gap: 1.4rem; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.cultural-programme-card { background: #f4e5d3; border: 1px solid #d1a34d; display: grid; grid-template-columns: .88fr 1.12fr; min-height: 390px; }
.cultural-programme-card > img { height: 100%; min-height: 390px; object-fit: cover; width: 100%; }
.cultural-programme-card > div { align-self: center; padding: clamp(1.5rem, 3vw, 3rem); }
.cultural-programme-card span { color: #704400; font-size: .8rem; font-weight: 900; letter-spacing: .15em; text-transform: uppercase; }
.cultural-programme-card h3 { margin: 1.35rem 0; }
.cultural-programme-card a { color: #002d96; display: inline-block; font-size: 1.02rem; font-weight: 900; margin-top: .8rem; }
.cultural-programme-card li { font-size: 1rem; }
.cultural-programme-featured { grid-column: 1 / -1; grid-template-columns: 1.05fr .95fr; min-height: 560px; }
.cultural-programme-featured > img { min-height: 560px; }

.cultural-flow { display: grid; grid-template-columns: 1fr 1fr; }
.cultural-flow-image img { height: 100%; min-height: 850px; object-fit: cover; width: 100%; }
.cultural-flow-copy { background: #f8eddf; padding: clamp(4rem, 8vw, 9rem) clamp(2rem, 6vw, 7rem); }
.cultural-flow-copy ol { list-style: none; margin: 3rem 0 0; padding: 0; }
.cultural-flow-copy li { border-top: 1px solid rgba(16,22,34,.2); display: grid; gap: 1.2rem; grid-template-columns: 54px 1fr; padding: 1.5rem 0; }
.cultural-flow-copy li > span { color: #815000; font-weight: 900; }
.cultural-flow-copy strong { color: var(--cultural-blue); font-size: 1.45rem; }

.cultural-story-wall { background: #d5a05e; display: grid; gap: .7rem; grid-template-columns: 1fr 1.2fr 1.15fr; grid-template-rows: 330px 330px; padding: .7rem; }
.cultural-story-wall figure { margin: 0; overflow: hidden; }
.cultural-story-wall img { height: 100%; object-fit: cover; transition: transform .6s ease; width: 100%; }
.cultural-story-wall figure:hover img { transform: scale(1.035); }
.cultural-wall-tall { grid-row: span 2; }
.cultural-wall-quote { align-content: center; background: #0b213d; color: #fff; display: grid; padding: clamp(1.5rem, 3vw, 3.5rem); }
.cultural-wall-quote span { color: #efb94e; font-size: .82rem; font-weight: 900; letter-spacing: .16em; text-transform: uppercase; }
.cultural-wall-quote blockquote { font-family: Georgia, serif; font-size: clamp(1.5rem, 2.6vw, 3.2rem); line-height: 1.18; margin: 1rem 0 0; }

.cultural-care { background: #e8be87; }
.cultural-care-grid { display: grid; gap: 1rem; grid-template-columns: repeat(4, 1fr); margin-top: 3.5rem; }
.cultural-care-grid article { background: rgba(255,255,255,.4); border-top: 4px solid #0b3d9f; padding: 2rem; }

.cultural-booking { background: #081a31; display: grid; gap: clamp(3rem, 7vw, 8rem); grid-template-columns: .85fr 1.15fr; }
.cultural-booking-intro .section-kicker,
.cultural-booking-intro h2,
.cultural-booking-intro > p { color: #fff; }
.cultural-booking-intro h2 { font-size: clamp(3rem, 5vw, 5.8rem); margin: 1rem 0 2rem; }
.cultural-booking-intro > div { display: flex; flex-wrap: wrap; gap: .7rem; margin-top: 2rem; }
.cultural-booking-intro > div span { border: 1px solid rgba(255,255,255,.45); color: #fff; font-weight: 800; padding: .7rem 1rem; }
.cultural-booking-form {
    backdrop-filter: blur(18px);
    -webkit-backdrop-filter: blur(18px);
    background: rgba(255,255,255,.96);
    border: 1px solid #fff;
    box-shadow: 0 28px 60px rgba(0,0,0,.35);
    display: grid;
    gap: 1.2rem;
    padding: clamp(1.5rem, 4vw, 3.5rem);
}
.cultural-booking-form label { color: #070b12; display: grid; font-size: 1.05rem; font-weight: 900; gap: .45rem; }
.cultural-booking-form input,
.cultural-booking-form select,
.cultural-booking-form textarea { background: #fff; border: 2px solid #a67527; color: #05070a; font: inherit; min-height: 58px; padding: .85rem 1rem; width: 100%; }
.cultural-booking-form textarea { min-height: 150px; resize: vertical; }
.cultural-form-row { display: grid; gap: 1rem; grid-template-columns: 1fr 1fr; }
.cultural-submit { background: #05070b; border-color: #d7a847; box-shadow: inset 0 0 0 1px #f4d28b, 0 5px 0 #8e671c; color: #fff; font-size: 1.1rem; font-weight: 900; min-height: 62px; }
.cultural-booking-form small { font-size: .9rem; }

@media (max-width: 1050px) {
    .cultural-programme-grid { grid-template-columns: 1fr; }
    .cultural-programme-featured { grid-column: auto; }
    .cultural-care-grid { grid-template-columns: repeat(2, 1fr); }
    .cultural-purpose,
    .cultural-booking { grid-template-columns: 1fr; }
}

@media (max-width: 760px) {
    .cultural-hero { min-height: 820px; }
    .cultural-hero-shade { background: linear-gradient(0deg, rgba(5,13,27,.94), rgba(5,13,27,.28)); }
    .cultural-hero-copy { padding-top: 8rem; }
    .cultural-hero-stamp { bottom: 1.2rem; left: 1.5rem; right: auto; }
    .cultural-values,
    .cultural-care-grid,
    .cultural-form-row { grid-template-columns: 1fr; }
    .cultural-programme-card,
    .cultural-programme-featured { grid-template-columns: 1fr; }
    .cultural-programme-card > img,
    .cultural-programme-featured > img { min-height: 300px; }
    .cultural-flow { grid-template-columns: 1fr; }
    .cultural-flow-image img { min-height: 480px; }
    .cultural-story-wall { grid-template-columns: 1fr 1fr; grid-template-rows: repeat(3, 280px); }
    .cultural-wall-tall { grid-row: auto; }
    .cultural-wall-quote { grid-column: 1 / -1; }
}

@media (max-width: 520px) {
    .cultural-page h2 { font-size: 2.8rem; }
    .cultural-hero-copy h1 { font-size: 3.7rem; }
    .cultural-story-wall { grid-template-columns: 1fr; grid-template-rows: repeat(5, 300px); }
    .cultural-wall-quote { grid-column: auto; }
}

/* Luxury resort reservations */
.resort-page {
    --resort-ink: #090d15;
    --resort-navy: #071a33;
    --resort-blue: #053fb5;
    --resort-gold: #d2a84a;
    background: #e8b28f;
    color: var(--resort-ink);
    overflow: hidden;
}

.resort-page p,
.resort-page li,
.resort-page label,
.resort-page small { color: var(--resort-ink); font-size: clamp(1.05rem, 1.18vw, 1.34rem); line-height: 1.7; }
.resort-page .section-kicker { color: #573400; font-size: clamp(.88rem, 1vw, 1.08rem); font-weight: 900; letter-spacing: .18em; text-transform: uppercase; }
.resort-page h1,
.resort-page h2 { color: #070a0f; font-family: Georgia, "Times New Roman", serif; font-weight: 800; letter-spacing: -.04em; line-height: .98; }
.resort-page h2 { font-size: clamp(2.9rem, 5.6vw, 6.6rem); }
.resort-page h1 em,
.resort-page h2 em { color: var(--resort-blue); font-weight: 700; }

.resort-hero { min-height: min(900px, 94vh); position: relative; }
.resort-hero > img { height: 100%; inset: 0; object-fit: cover; position: absolute; width: 100%; }
.resort-hero-shade { background: linear-gradient(90deg, rgba(2,10,23,.93) 0%, rgba(2,10,23,.69) 42%, rgba(2,10,23,.05) 78%), linear-gradient(0deg, rgba(2,10,23,.52), transparent 48%); inset: 0; position: absolute; }
.resort-hero-copy { max-width: 980px; padding: clamp(8rem, 15vh, 11rem) clamp(1.5rem, 7vw, 8rem) 7rem; position: relative; z-index: 2; }
.resort-hero-copy .detail-back-link,
.resort-hero-copy .section-kicker,
.resort-hero-copy > p,
.resort-hero-copy h1 { color: #fff; }
.resort-hero-copy h1 { font-size: clamp(4.1rem, 8vw, 9rem); margin: 1.2rem 0 1.8rem; }
.resort-hero-copy h1 em { color: #f4c461; }
.resort-hero-copy > p:not(.section-kicker) { font-size: clamp(1.25rem, 1.65vw, 1.75rem); max-width: 780px; }
.resort-hero-actions { align-items: center; display: flex; flex-wrap: wrap; gap: 1.5rem; margin-top: 2.2rem; }
.resort-hero-actions > a:not(.btn) { color: #fff; font-size: 1.08rem; font-weight: 900; }
.resort-hero-card { backdrop-filter: blur(16px); -webkit-backdrop-filter: blur(16px); background: rgba(255,255,255,.22); border: 1px solid rgba(255,255,255,.75); bottom: 2.5rem; color: #fff; display: grid; max-width: 380px; padding: 1.35rem 1.7rem; position: absolute; right: clamp(1.5rem, 5vw, 6rem); z-index: 2; }
.resort-hero-card span { font-size: .8rem; font-weight: 900; letter-spacing: .15em; text-transform: uppercase; }
.resort-hero-card strong { font-family: Georgia, serif; font-size: 2.25rem; }
.resort-hero-card small { color: #fff; font-size: .8rem; }

.resort-intro,
.resort-collection,
.resort-signatures,
.resort-booking { padding: clamp(5rem, 9vw, 10rem) clamp(1.5rem, 6vw, 7rem); }
.resort-intro { display: grid; gap: clamp(3rem, 7vw, 8rem); grid-template-columns: 1fr 1fr; }
.resort-intro > div:last-child { padding-top: 2.4rem; }
.resort-intro > div:last-child p:first-child { font-size: clamp(1.3rem, 1.7vw, 1.8rem); font-weight: 650; }

.resort-collection { background: var(--resort-navy); }
.resort-collection > header { margin-bottom: 3.5rem; }
.resort-collection > header .section-kicker,
.resort-collection > header h2 { color: #fff; }
.resort-collection > header h2 em { color: #f2c15c; }
.resort-feature { background: #f2dfca; border: 1px solid #d5aa53; display: grid; grid-template-columns: 1.12fr .88fr; margin-bottom: 1.5rem; min-height: 640px; }
.resort-feature > img { height: 100%; min-height: 640px; object-fit: cover; width: 100%; }
.resort-feature > div { align-self: center; padding: clamp(2rem, 4vw, 5rem); }
.resort-feature span,
.resort-card span { color: #624000; font-size: .8rem; font-weight: 900; letter-spacing: .15em; text-transform: uppercase; }
.resort-feature h3 { font-size: clamp(2rem, 3vw, 3.5rem); margin: 1.4rem 0; }
.resort-feature a,
.resort-card a { color: #002c95; display: inline-block; font-size: 1.05rem; font-weight: 900; margin-top: 1rem; }
.resort-grid { display: grid; gap: 1.4rem; grid-template-columns: repeat(2, minmax(0,1fr)); }
.resort-card { background: #f5e5d3; border: 1px solid #cda049; display: grid; grid-template-columns: .9fr 1.1fr; min-height: 420px; }
.resort-card > img { height: 100%; min-height: 420px; object-fit: cover; width: 100%; }
.resort-card > div { align-self: center; padding: clamp(1.5rem, 3vw, 3rem); }
.resort-card h3 { margin: 1.25rem 0; }

.resort-promise { display: grid; grid-template-columns: 1fr 1fr; }
.resort-promise-copy { align-content: center; background: #f6e7d6; display: grid; padding: clamp(4rem, 7vw, 8rem); }
.resort-promise > img { height: 100%; min-height: 900px; object-fit: cover; width: 100%; }
.resort-promise-grid { display: grid; gap: .8rem; margin-top: 2.4rem; }
.resort-promise-grid article { border-top: 1px solid rgba(9,13,21,.22); display: grid; grid-template-columns: 50px 1fr; padding-top: 1.2rem; }
.resort-promise-grid span { color: #6c4300; font-weight: 900; grid-row: span 2; }
.resort-promise-grid strong { color: var(--resort-blue); font-size: 1.4rem; }

.resort-signatures { background: #dfa26f; }
.resort-signatures > div { display: grid; gap: 1rem; grid-template-columns: repeat(3,1fr); margin-top: 3.5rem; }
.resort-signatures article { background: rgba(255,255,255,.42); border: 1px solid rgba(255,255,255,.82); border-top: 4px solid #083ca4; padding: 2rem; }
.resort-signatures article > span { color: #694100; font-weight: 900; }

.resort-gallery { background: #b98542; display: grid; gap: .7rem; grid-template-columns: 1.25fr .75fr 1fr; grid-template-rows: 360px 360px; padding: .7rem; }
.resort-gallery figure { margin: 0; overflow: hidden; }
.resort-gallery img { height: 100%; object-fit: cover; transition: transform .6s ease; width: 100%; }
.resort-gallery figure:hover img { transform: scale(1.035); }
.resort-gallery-wide { grid-row: span 2; }
.resort-gallery-quote { align-content: center; background: #061a32; color: #fff; display: grid; grid-row: span 2; padding: clamp(1.5rem,3vw,3.5rem); }
.resort-gallery-quote span { color: #efbf59; font-size: .82rem; font-weight: 900; letter-spacing: .16em; text-transform: uppercase; }
.resort-gallery-quote blockquote { font-family: Georgia,serif; font-size: clamp(1.7rem,2.8vw,3.5rem); line-height: 1.16; margin: 1rem 0 0; }

.resort-booking { background: #06172c; display: grid; gap: clamp(3rem,7vw,8rem); grid-template-columns: .85fr 1.15fr; }
.resort-booking-intro .section-kicker,
.resort-booking-intro h2,
.resort-booking-intro > p { color: #fff; }
.resort-booking-intro h2 { font-size: clamp(3rem,5vw,5.8rem); margin: 1rem 0 2rem; }
.resort-booking-intro > div { display: flex; flex-wrap: wrap; gap: .7rem; margin-top: 2rem; }
.resort-booking-intro > div span { border: 1px solid rgba(255,255,255,.46); color: #fff; font-weight: 800; padding: .7rem 1rem; }
.resort-booking-form { backdrop-filter: blur(18px); -webkit-backdrop-filter: blur(18px); background: rgba(255,255,255,.96); border: 1px solid #fff; box-shadow: 0 28px 60px rgba(0,0,0,.35); display: grid; gap: 1.2rem; padding: clamp(1.5rem,4vw,3.5rem); }
.resort-booking-form label { color: #070b12; display: grid; font-size: 1.05rem; font-weight: 900; gap: .45rem; }
.resort-booking-form input,
.resort-booking-form select,
.resort-booking-form textarea { background: #fff; border: 2px solid #a67527; color: #05070a; font: inherit; min-height: 58px; padding: .85rem 1rem; width: 100%; }
.resort-booking-form textarea { min-height: 150px; resize: vertical; }
.resort-form-row { display: grid; gap: 1rem; grid-template-columns: 1fr 1fr; }
.resort-submit { background: #05070b; border-color: #d7a847; box-shadow: inset 0 0 0 1px #f4d28b,0 5px 0 #8e671c; color: #fff; font-size: 1.1rem; font-weight: 900; min-height: 62px; }
.resort-booking-form small { font-size: .9rem; }

@media (max-width: 1050px) {
    .resort-intro,
    .resort-booking { grid-template-columns: 1fr; }
    .resort-grid { grid-template-columns: 1fr; }
    .resort-signatures > div { grid-template-columns: repeat(2,1fr); }
}

@media (max-width: 760px) {
    .resort-hero { min-height: 840px; }
    .resort-hero-shade { background: linear-gradient(0deg,rgba(2,10,23,.94),rgba(2,10,23,.25)); }
    .resort-hero-copy { padding-top: 8rem; }
    .resort-hero-card { bottom: 1.2rem; left: 1.5rem; right: auto; }
    .resort-feature,
    .resort-card,
    .resort-promise { grid-template-columns: 1fr; }
    .resort-feature > img,
    .resort-card > img { min-height: 320px; }
    .resort-promise > img { min-height: 520px; }
    .resort-signatures > div,
    .resort-form-row { grid-template-columns: 1fr; }
    .resort-gallery { grid-template-columns: 1fr 1fr; grid-template-rows: repeat(2,320px); }
    .resort-gallery-wide,
    .resort-gallery-quote { grid-row: auto; }
    .resort-gallery-quote { grid-column: 1 / -1; }
}

@media (max-width: 520px) {
    .resort-page h2 { font-size: 2.8rem; }
    .resort-hero-copy h1 { font-size: 3.7rem; }
    .resort-gallery { grid-template-columns: 1fr; grid-template-rows: repeat(4,300px); }
    .resort-gallery-quote { grid-column: auto; }
}

/* Premium concierge service landings */
.premium-service-page {
    --service-ink: #070b12;
    --service-navy: #061a34;
    --service-blue: #0643bd;
    --service-gold: #d5a94c;
    --service-ground: #e9b18e;
    background: var(--service-ground);
    color: var(--service-ink);
    overflow: hidden;
}
.service-airport { --service-blue: #064fc8; --service-ground: #e5b496; }
.service-chef { --service-blue: #173f9d; --service-ground: #dba57d; }
.premium-service-page p,
.premium-service-page li,
.premium-service-page label,
.premium-service-page small { color: var(--service-ink); font-size: clamp(1.05rem,1.18vw,1.34rem); line-height: 1.72; }
.premium-service-page .section-kicker { color: #5d3800; font-size: clamp(.88rem,1vw,1.08rem); font-weight: 900; letter-spacing: .18em; text-transform: uppercase; }
.premium-service-page h1,
.premium-service-page h2 { color: #070a0f; font-family: Georgia,"Times New Roman",serif; font-weight: 800; letter-spacing: -.04em; line-height: .98; }
.premium-service-page h2 { font-size: clamp(2.9rem,5.5vw,6.5rem); }
.premium-service-page h1 em,
.premium-service-page h2 em { color: var(--service-blue); font-weight: 700; }

.premium-service-hero { min-height: min(900px,94vh); position: relative; }
.premium-service-hero > img { height: 100%; inset: 0; object-fit: cover; position: absolute; width: 100%; }
.premium-service-hero-shade { background: linear-gradient(90deg,rgba(2,9,21,.93) 0%,rgba(2,9,21,.7) 43%,rgba(2,9,21,.03) 78%),linear-gradient(0deg,rgba(2,9,21,.48),transparent 45%); inset: 0; position: absolute; }
.premium-service-hero-copy { max-width: 1000px; padding: clamp(8rem,15vh,11rem) clamp(1.5rem,7vw,8rem) 7rem; position: relative; z-index: 2; }
.premium-service-hero-copy .detail-back-link,
.premium-service-hero-copy .section-kicker,
.premium-service-hero-copy > p,
.premium-service-hero-copy h1 { color: #fff; }
.premium-service-hero-copy h1 { font-size: clamp(4rem,7.7vw,8.8rem); margin: 1.2rem 0 1.8rem; }
.premium-service-hero-copy h1 em { color: #f4c35c; }
.premium-service-hero-copy > p:not(.section-kicker) { font-size: clamp(1.25rem,1.65vw,1.75rem); max-width: 780px; }
.premium-service-hero-copy > div { align-items: center; display: flex; flex-wrap: wrap; gap: 1.5rem; margin-top: 2.2rem; }
.premium-service-hero-copy > div a:not(.btn) { color: #fff; font-size: 1.08rem; font-weight: 900; }
.premium-service-hero-note { backdrop-filter: blur(16px); -webkit-backdrop-filter: blur(16px); background: rgba(255,255,255,.2); border: 1px solid rgba(255,255,255,.76); bottom: 2.5rem; color: #fff; display: grid; max-width: 430px; padding: 1.35rem 1.7rem; position: absolute; right: clamp(1.5rem,5vw,6rem); z-index: 2; }
.premium-service-hero-note span { font-size: .8rem; font-weight: 900; letter-spacing: .15em; text-transform: uppercase; }
.premium-service-hero-note strong { font-family: Georgia,serif; font-size: 2.15rem; }
.premium-service-hero-note small { color: #fff; font-size: .8rem; }

.premium-service-intro,
.premium-service-experience,
.premium-service-rhythm,
.premium-service-moments,
.premium-service-booking { padding: clamp(5rem,9vw,10rem) clamp(1.5rem,6vw,7rem); }
.premium-service-intro { display: grid; gap: clamp(3rem,7vw,8rem); grid-template-columns: 1fr 1fr; }
.premium-service-intro > div:last-child { padding-top: 2.3rem; }
.premium-service-intro > div:last-child p:first-child { font-size: clamp(1.3rem,1.7vw,1.8rem); font-weight: 650; }

.premium-service-experience { background: var(--service-navy); }
.premium-service-experience header { margin-bottom: 3.5rem; }
.premium-service-experience header .section-kicker,
.premium-service-experience header h2 { color: #fff; }
.premium-service-experience header h2 em { color: #f1bf59; }
.premium-service-offers { display: grid; gap: 1rem; grid-template-columns: repeat(3,1fr); }
.premium-service-offers article { background: #f3dfca; border: 1px solid #d2a64d; min-height: 350px; padding: clamp(1.6rem,3vw,3rem); }
.premium-service-offers article > span { color: #6b4300; font-size: .8rem; font-weight: 900; letter-spacing: .14em; text-transform: uppercase; }
.premium-service-offers h3 { margin: 1.5rem 0 1rem; }
.premium-service-offers a { color: #002e9a; display: inline-block; font-weight: 900; margin-top: .8rem; }

.premium-service-feature { display: grid; grid-template-columns: 1.08fr .92fr; }
.premium-service-feature > img { height: 100%; min-height: 760px; object-fit: cover; width: 100%; }
.premium-service-feature > div { align-content: center; background: #f7e9da; display: grid; padding: clamp(3rem,7vw,8rem); }
.premium-service-feature h2 { font-size: clamp(2.8rem,4.8vw,5.5rem); margin: 1rem 0 2rem; }
.premium-service-feature .btn { justify-self: start; margin-top: 1.3rem; }

.premium-service-rhythm { background: #dfa475; }
.premium-service-rhythm > div { display: grid; gap: 1rem; grid-template-columns: repeat(4,1fr); margin-top: 3.5rem; }
.premium-service-rhythm article { background: rgba(255,255,255,.42); border: 1px solid rgba(255,255,255,.82); border-top: 4px solid var(--service-blue); padding: 2rem; }
.premium-service-rhythm article > span { color: #664000; font-weight: 900; }

.premium-service-moments { align-items: center; background: #f4dfca; display: grid; gap: clamp(3rem,7vw,8rem); grid-template-columns: .8fr 1.2fr; }
.premium-service-tags { display: flex; flex-wrap: wrap; gap: .8rem; }
.premium-service-tags span { background: rgba(255,255,255,.7); border: 2px solid #b5842f; box-shadow: 0 4px 0 rgba(93,58,0,.25); color: #071a34; font-size: 1.05rem; font-weight: 900; padding: .9rem 1.15rem; }

.premium-service-gallery { background: #b7813f; display: grid; gap: .7rem; grid-template-columns: 1.2fr .8fr 1fr; grid-template-rows: 360px 360px; padding: .7rem; }
.premium-service-gallery figure { margin: 0; overflow: hidden; }
.premium-service-gallery img { height: 100%; object-fit: cover; transition: transform .6s ease; width: 100%; }
.premium-service-gallery figure:hover img { transform: scale(1.035); }
.premium-service-gallery-main { grid-row: span 2; }
.premium-service-gallery-quote { align-content: center; background: var(--service-navy); color: #fff; display: grid; grid-row: span 2; padding: clamp(1.5rem,3vw,3.5rem); }
.premium-service-gallery-quote span { color: #f0be59; font-size: .82rem; font-weight: 900; letter-spacing: .16em; text-transform: uppercase; }
.premium-service-gallery-quote blockquote { font-family: Georgia,serif; font-size: clamp(1.7rem,2.8vw,3.4rem); line-height: 1.16; margin: 1rem 0 0; }

.premium-service-booking { background: #05162a; display: grid; gap: clamp(3rem,7vw,8rem); grid-template-columns: .85fr 1.15fr; }
.premium-service-booking-intro .section-kicker,
.premium-service-booking-intro h2,
.premium-service-booking-intro > p { color: #fff; }
.premium-service-booking-intro h2 { font-size: clamp(3rem,5vw,5.8rem); margin: 1rem 0 2rem; }
.premium-service-booking-intro > div { display: flex; flex-wrap: wrap; gap: .7rem; margin-top: 2rem; }
.premium-service-booking-intro > div span { border: 1px solid rgba(255,255,255,.46); color: #fff; font-weight: 800; padding: .7rem 1rem; }
.premium-service-booking-form { backdrop-filter: blur(18px); -webkit-backdrop-filter: blur(18px); background: rgba(255,255,255,.96); border: 1px solid #fff; box-shadow: 0 28px 60px rgba(0,0,0,.35); display: grid; gap: 1.2rem; padding: clamp(1.5rem,4vw,3.5rem); }
.premium-service-booking-form label { color: #070b12; display: grid; font-size: 1.05rem; font-weight: 900; gap: .45rem; }
.premium-service-booking-form input,
.premium-service-booking-form select,
.premium-service-booking-form textarea { background: #fff; border: 2px solid #a67527; color: #05070a; font: inherit; min-height: 58px; padding: .85rem 1rem; width: 100%; }
.premium-service-booking-form textarea { min-height: 150px; resize: vertical; }
.premium-service-form-row { display: grid; gap: 1rem; grid-template-columns: 1fr 1fr; }
.premium-service-submit { background: #05070b; border-color: #d7a847; box-shadow: inset 0 0 0 1px #f4d28b,0 5px 0 #8e671c; color: #fff; font-size: 1.1rem; font-weight: 900; min-height: 62px; }
.premium-service-booking-form small { font-size: .9rem; }

@media (max-width: 1050px) {
    .premium-service-intro,
    .premium-service-moments,
    .premium-service-booking { grid-template-columns: 1fr; }
    .premium-service-offers { grid-template-columns: repeat(2,1fr); }
    .premium-service-rhythm > div { grid-template-columns: repeat(2,1fr); }
}
@media (max-width: 760px) {
    .premium-service-hero { min-height: 850px; }
    .premium-service-hero-shade { background: linear-gradient(0deg,rgba(2,9,21,.95),rgba(2,9,21,.22)); }
    .premium-service-hero-copy { padding-top: 8rem; }
    .premium-service-hero-note { bottom: 1.2rem; left: 1.5rem; right: auto; }
    .premium-service-offers,
    .premium-service-rhythm > div,
    .premium-service-form-row { grid-template-columns: 1fr; }
    .premium-service-feature { grid-template-columns: 1fr; }
    .premium-service-feature > img { min-height: 480px; }
    .premium-service-gallery { grid-template-columns: 1fr 1fr; grid-template-rows: repeat(2,320px); }
    .premium-service-gallery-main,
    .premium-service-gallery-quote { grid-row: auto; }
    .premium-service-gallery-quote { grid-column: 1 / -1; }
}
@media (max-width: 520px) {
    .premium-service-page h2 { font-size: 2.8rem; }
    .premium-service-hero-copy h1 { font-size: 3.6rem; }
    .premium-service-gallery { grid-template-columns: 1fr; grid-template-rows: repeat(4,300px); }
    .premium-service-gallery-quote { grid-column: auto; }
}

/* Final Cultural Exchange card geometry — must follow general card rules */
.feature-card.cultural-exchange-card img {
    bottom: auto;
    height: 56%;
    inset: 0 0 auto;
    object-fit: cover;
    object-position: center center;
    width: 100%;
}

.feature-card.cultural-exchange-card .feature-card-content {
    align-self: flex-end;
    flex: none;
    height: 44%;
    overflow: hidden;
    width: 100%;
}

.feature-card.cultural-exchange-card .feature-title {
    font-size: clamp(1.45rem, 1.75vw, 1.75rem);
    overflow-wrap: normal;
    width: auto;
}


/* Elite Companions page: dedicated premium first row */
.page-hero-models + .companion-rates-section + .content-section {
    align-items: start;
}

.elite-featured-profiles {
    display: grid;
    gap: clamp(28px, 3.2vw, 46px);
    grid-column: 1 / -1;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    margin-top: clamp(8px, 1.5vw, 18px);
    max-width: 1320px;
    width: 100%;
}

.elite-featured-card {
    aspect-ratio: 0.76;
    border: 2px solid rgba(240, 202, 112, 0.82);
    border-radius: 18px;
    box-shadow:
        0 28px 60px rgba(0, 0, 0, 0.44),
        0 0 0 8px rgba(224, 191, 111, 0.045);
    min-height: 560px;
    isolation: isolate;
}

.elite-featured-card::after {
    border: 1px solid rgba(255, 229, 158, 0.28);
    border-radius: 12px;
    content: "";
    inset: 12px;
    pointer-events: none;
    position: absolute;
    z-index: 4;
}

.elite-featured-card:hover,
.elite-featured-card:focus-visible {
    border-color: #f4d47e;
    box-shadow:
        0 34px 72px rgba(0, 0, 0, 0.52),
        0 0 30px rgba(224, 191, 111, 0.18);
    transform: translateY(-8px);
}

.elite-featured-card,
.elite-featured-card:hover,
.elite-featured-card:focus-visible {
    transition: border-color .35s ease, box-shadow .35s ease, transform .35s ease;
}

.elite-featured-card .feature-card-content {
    gap: 12px;
    padding: 86px 34px 34px;
}

.elite-featured-card .feature-title {
    font-size: clamp(2rem, 2.5vw, 3.15rem);
}

.elite-featured-card .feature-copy {
    font-size: 1rem;
    -webkit-line-clamp: 4;
}

.elite-featured-badge {
    background: linear-gradient(135deg, #f6dd96, #bd811f);
    border: 1px solid rgba(255, 240, 193, 0.82);
    border-radius: 999px;
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.34);
    color: #071b3a;
    font-size: .68rem;
    font-weight: 800;
    left: 24px;
    letter-spacing: .15em;
    padding: 10px 15px;
    position: absolute;
    text-transform: uppercase;
    top: 24px;
    z-index: 6;
}

.elite-standard-heading {
    border-top: 1px solid rgba(224, 191, 111, 0.28);
    grid-column: 1 / -1;
    margin-top: clamp(36px, 5vw, 72px);
    padding-top: clamp(28px, 3vw, 42px);
    width: 100%;
}

.elite-standard-grid {
    grid-column: 1 / -1;
    margin-top: 20px;
    width: 100%;
}

@media (max-width: 1100px) {
    .elite-featured-profiles {
        gap: 26px;
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .elite-featured-card {
        min-height: 540px;
    }
}

@media (max-width: 700px) {
    .elite-featured-profiles {
        grid-template-columns: 1fr;
    }

    .elite-featured-card {
        aspect-ratio: .82;
        min-height: 500px;
    }

    .elite-featured-card .feature-card-content {
        padding: 76px 26px 28px;
    }
}

/* Keep the five homepage companion cards within their own grid tracks at every viewport size. */
.content-section.homepage-feature-combination > .feature-grid {
    grid-template-columns: repeat(auto-fit, minmax(min(100%, 220px), 1fr));
}

.content-section.homepage-feature-combination > .feature-grid .feature-card {
    min-width: 0;
    width: 100%;
}

@media (max-width: 700px) {
    .content-section.homepage-feature-combination > .feature-grid {
        grid-template-columns: 1fr;
    }

    .content-section.homepage-feature-combination > .feature-grid .feature-card {
        aspect-ratio: 0.82;
        min-height: 420px;
    }
}

/* Compact hero typography: reveal the following content in the first viewport. */
.hero {
    min-height: min(620px, 62vh);
    padding-bottom: 34px;
    padding-top: calc(var(--header-height) + var(--admin-strip-height) + 24px);
}
.hero-content {
    align-items: center;
    display: grid;
    gap: clamp(38px, 6vw, 100px);
    grid-template-columns: minmax(360px, 1fr) minmax(390px, 520px);
    max-width: 1680px;
    width: 100%;
}
.hero-intro { max-width: 690px; }
.hero h1 {
    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px);
    background: rgba(5, 23, 51, .28);
    border-radius: 14px;
    border: 1px solid rgba(241, 204, 117, .72);
    box-shadow: 0 8px 24px rgba(0, 0, 0, .2);
    font-size: clamp(2.3rem, 3.6vw, 4rem);
    line-height: 1.05;
    max-width: 680px;
    padding: .38em .65em .44em;
    white-space: normal;
}
.hero-kicker { margin-bottom: 14px; }
.hero-copy {
    font-size: clamp(.95rem, 1.05vw, 1.1rem);
    line-height: 1.45;
    margin: 16px 0 22px;
    max-width: 540px;
}
.hero-experience-rail { justify-self: end; width: 100%; }
.hero-experience-heading { align-items: center; display: flex; justify-content: flex-end; margin-bottom: 12px; }
.hero-experience-heading .hero-kicker { margin: 0; text-align: right; }
.hero-experience-heading > span { color: rgba(255,255,255,.62); font-size: .62rem; letter-spacing: .12em; margin-left: 14px; text-transform: uppercase; }
.hero-experience-cards { height: 296px; overflow: hidden; touch-action: pan-x; }
.hero-experience-track { display: grid; gap: 10px; transform: translateY(0); will-change: transform; }
.hero-experience-track.is-shifting { pointer-events: none; }
.hero-experience-card {
    align-items: center;
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
    background: rgba(5, 23, 51, .48);
    border: 1px solid rgba(241, 204, 117, .58);
    border-radius: 13px;
    box-shadow: 0 10px 28px rgba(0, 0, 0, .24);
    color: #fff;
    display: grid;
    gap: 14px;
    grid-template-columns: 92px 1fr auto;
    min-height: 92px;
    overflow: hidden;
    padding: 8px 15px 8px 8px;
    transition: background .25s ease, border-color .25s ease, transform .25s ease;
}
.hero-experience-card:hover,
.hero-experience-card:focus-visible {
    background: rgba(9, 41, 82, .72);
    border-color: #f1cc75;
    transform: translateX(-6px);
}
.hero-experience-card img { border-radius: 9px; height: 76px; object-fit: cover; width: 92px; }
.hero-experience-card-copy { display: grid; min-width: 0; }
.hero-experience-card-copy small { color: #f1cc75; font-size: .62rem; letter-spacing: .16em; }
.hero-experience-card-copy strong { color: #fff; font-family: "Playfair Display", serif; font-size: 1.05rem; }
.hero-experience-card-copy > span { color: rgba(255,255,255,.78); font-size: .72rem; line-height: 1.35; margin-top: 3px; }
.hero-experience-arrow { color: #f1cc75; font-size: 1.35rem; }

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

.page-hero,
.experience-detail-hero,
.wellness-landing-hero,
.destination-story-hero,
.airbnb-hero,
.about-story-hero,
.cultural-hero,
.resort-hero,
.premium-service-hero,
.retreat-hero { min-height: min(680px, 68vh); }

.page-hero h1,
.dashboard-hero h1,
.profile-intro h1,
.banner-exchange-hero h1,
.legal-hero h1 { font-size: clamp(1rem, 2vw, 2.2rem); }

.experience-detail-hero .page-hero-content h1,
.wellness-landing-hero h1,
.retreat-hero-copy h1,
.cultural-hero-copy h1,
.resort-hero-copy h1,
.premium-service-hero-copy h1 { font-size: clamp(1.25rem, 2.67vw, 2.95rem); }

.destination-story-hero-copy h1,
.airbnb-hero-copy h1,
.about-story-hero h1 { font-size: clamp(1.6rem, 3.34vw, 3.67rem); }

@media (max-width: 700px) {
    .hero,
    .page-hero,
    .experience-detail-hero,
    .wellness-landing-hero,
    .destination-story-hero,
    .airbnb-hero,
    .about-story-hero,
    .cultural-hero,
    .resort-hero,
    .premium-service-hero,
    .retreat-hero { min-height: min(600px, 68vh); }

    .hero {
        min-height: min(560px, 68vh);
        padding-bottom: 26px;
        padding-top: calc(var(--header-height) + var(--admin-strip-height) + 18px);
    }

    .hero h1 { font-size: clamp(2.2rem, 10vw, 3.1rem); }

    .hero-content { display: grid; gap: 28px; grid-template-columns: 1fr; }
    .hero-experience-rail { justify-self: stretch; }
    .hero-experience-heading { justify-content: flex-start; }
    .hero-experience-heading .hero-kicker { text-align: left; }
    .hero-experience-card { grid-template-columns: 76px 1fr auto; min-height: 84px; }
    .hero-experience-card img { height: 68px; width: 76px; }
    .hero-experience-cards { height: 272px; }
}

@media (min-width: 701px) and (max-width: 1100px) {
    .hero-content { gap: 28px; grid-template-columns: minmax(300px, 1fr) minmax(330px, 420px); }
    .hero-experience-card-copy > span { display: none; }
}
