
        @font-face {
            font-family: Fraunces;
            src: url('/assets/lemala/fonts/fraunces-latin-300-normal.woff2') format('woff2');
            font-weight: 300;
            font-display: swap;
        }
        
        @font-face {
            font-family: Inter;
            src: url('/assets/lemala/fonts/inter-latin-300-normal.woff2') format('woff2');
            font-weight: 300;
            font-display: swap;
        }
        
        @font-face {
            font-family: Garamond;
            src: url('/assets/lemala/fonts/eb-garamond-latin-400-normal.woff2') format('woff2');
            font-weight: 400;
            font-display: swap;
        }
        
         :root {
            color-scheme: light;
            --cream: #f7f5f0;
            --ink: #23211c;
            --soft: #4a453d;
            --green: #5f514b;
            --stone: #cfc9bf;
            --sand: #efece4;
            --brown: #5f514b;
            --green-deep: #5f514b;
        }
        
        * {
            box-sizing: border-box;
        }
        
        @media (prefers-reduced-motion: no-preference) {
            html {
                scroll-behavior: smooth;
            }
        }
        
        body {
            margin: 0;
            background: var(--cream);
            color: #0C0B0A;
            font-family: Inter, Arial, sans-serif;
            font-weight: 300;
        }
        
        a {
            color: #0C0B0A;
            text-underline-offset: .25em;
        }
        
        a:hover {
            color: #0C0B0A;
        }
        
        a:focus-visible,
        summary:focus-visible {
            outline: 3px solid var(--green);
            outline-offset: 5px;
        }
        
        .skip-link {
            position: absolute;
            z-index: 5;
            top: 12px;
            left: 24px;
            padding: 12px;
            background: var(--cream);
            transform: translateY(-200%);
        }
        
        .skip-link:focus {
            transform: translateY(0);
        }
        
        header {
            position: absolute;
            inset: 0 0 auto;
            z-index: 3;
            display: grid;
            grid-template-columns: 1fr auto 1fr;
            align-items: center;
            gap: 16px;
            padding: 26px clamp(24px, 4vw, 64px);
        }
        
        .brand {
            display: block;
            justify-self: center;
        }
        
        .brand img {
            display: block;
            width: 170px;
            height: auto;
        }
        
        .header-email {
            justify-self: start;
        }
        
        .header-phone {
            justify-self: end;
        }
        
        .header-pill {
            display: inline-flex;
            align-items: center;
            gap: 9px;
            padding: 12px 24px;
            background: #f2ece1;
            color: #0C0B0A;
            border-radius: 999px;
            font-family: Garamond, Georgia, serif;
            font-size: 17px;
            font-weight: 400;
            text-decoration: none;
            white-space: nowrap;
            transition: background-color .2s, color .2s;
        }
        
        .header-pill svg {
            flex: none;
        }
        
        .header-pill:hover {
            background: #322b1e;
            color: #f2ece1;
        }
        
        @media (max-width: 700px) {
            .header-email {
                display: none;
            }
            header {
                display: flex;
                justify-content: center;
            }
            .brand {
                justify-self: unset;
            }
            .header-phone {
                display: none;
            }
        }
        
        .hero-cta {
            display: inline-flex;
            align-items: center;
            gap: 12px;
            font-family: Garamond, Georgia, serif;
            font-weight: 400;
            letter-spacing: .12em;
            text-transform: uppercase;
            padding: 0 0 10px;
            background: transparent;
            border: 0;
            border-bottom: 1px solid var(--cream);
            border-radius: 0;
            color: var(--cream);
            font-size: 15px;
            line-height: 1.5;
            text-decoration: none;
            cursor: pointer;
            transition: opacity .2s;
        }
        
        .hero-cta:hover {
            opacity: .7;
        }
        
        header a:focus-visible,
        .intro a:focus-visible {
            outline-color: var(--cream);
        }
        
        main>section {
            padding: 80px clamp(24px, 6vw, 96px);
        }
        
        main>.intro {
            position: relative;
            isolation: isolate;
            overflow: hidden;
            height: 90vh;
            min-height: 580px;
            display: flex;
            justify-content: center;
            align-items: center;
            padding: 112px 24px 88px;
            color: var(--cream);
            background: var(--ink);
        }
        
        .hero-image {
            position: absolute;
            inset: 0;
            z-index: -2;
            width: 100%;
            height: 100%;
            object-fit: cover;
            object-position: center 62%;
            animation: cinematic-arrival 2.4s ease-out both;
        }
        
        .intro::before {
            content: '';
            position: absolute;
            inset: 0;
            z-index: -1;
            background: radial-gradient(60% 50% at 50% 55%, rgba(24, 22, 18, .55), rgba(24, 22, 18, 0) 100%), linear-gradient(180deg, rgba(24, 22, 18, .58), rgba(24, 22, 18, .4) 30%, rgba(24, 22, 18, .45) 65%, rgba(24, 22, 18, .25));
        }
        
        .hero-inner {
            width: 100%;
            text-align: center;
            animation: text-arrival 1.1s ease-out both;
        }
        
        h1 {
            margin: 0 auto;
            max-width: 1000px;
            text-wrap: balance;
            font-family: Garamond, Georgia, serif;
            font-weight: 400;
            font-size: clamp(36px, 4.5vw, 64px);
            line-height: 1.1;
            letter-spacing: -.01em;
            text-shadow: 0 2px 30px rgba(24, 22, 18, .45);
        }
        
        .hero-cta {
            margin-top: 28px;
        }
        
        .hero-description {
            max-width: 660px;
            margin: 24px auto 0;
            font-size: 18px;
            line-height: 1.8;
            text-wrap: balance;
            text-shadow: 0 1px 16px rgba(24, 22, 18, .6);
        }
        
        .intro>.credibilities {
            position: absolute;
            left: 50%;
            bottom: 0;
            transform: translateX(-50%);
            z-index: 2;
            width: min(calc(100% - 24px), 700px);
            margin: 0;
            padding: 16px 24px;
            background: #fcffee;
            border: 0;
            border-top: 1px solid rgba(35, 33, 28, .08);
            border-radius: 5px 5px 0 0;
            box-shadow: none;
        }
        
        .credibility-inner {
            min-height: 56px;
            margin: auto;
            display: flex;
            align-items: center;
            justify-content: center;
            gap: 20px;
        }
        
        .credibility-inner img {
            display: block;
            width: 100%;
            height: auto;
        }
        
        .credibility-inner>*+* {
            padding-left: 20px;
            border-left: 1px solid rgba(35, 33, 28, .14);
        }
        
        .credibility-company {
            flex: 0 1 220px;
            min-width: 0;
        }
        
        .credibility-reviews {
            flex: 0 1 280px;
            min-width: 0;
        }
        
        .eyebrow {
            margin: 0 0 28px;
            color: #0C0B0A;
            font-size: 14px;
            letter-spacing: .16em;
            text-transform: uppercase;
        }
        
        .planning {
            background: var(--sand);
        }
        
        main>.welcome {
            padding: clamp(32px, 4vw, 56px) 24px clamp(80px, 9vw, 128px);
            background: #fcffee;
        }
        
        .welcome-inner {
            max-width: 1120px;
            margin: auto;
            display: grid;
            grid-template-columns: minmax(0, .9fr) minmax(0, 1.3fr);
            gap: clamp(32px, 6vw, 96px);
            align-items: start;
        }
        
        .welcome h2 {
            margin: 0;
            max-width: none;
            text-align: left;
            font-family: Garamond, Georgia, serif;
            font-weight: 400;
            font-size: clamp(30px, 3vw, 42px);
            line-height: 1.3;
            letter-spacing: -.005em;
            color: #0C0B0A;
        }
        
        .welcome-copy {
            padding-left: clamp(28px, 4vw, 56px);
            border-left: 1px solid #867045;
        }
        
        .welcome p {
            max-width: 560px;
            margin: 0;
            text-align: left;
            font-family: Inter, Arial, sans-serif;
            font-size: 17px;
            line-height: 1.9;
            color: #0C0B0A;
            text-wrap: pretty;
        }
        
        .welcome p+p {
            margin-top: 22px;
        }
        
        .content {
            max-width: 1120px;
            margin-inline: auto;
        }
        
        h2,
        h3 {
            font-family: Fraunces, Georgia, serif;
            font-weight: 300;
            text-wrap: balance;
        }
        
        h2 {
            margin: 0 0 32px;
            font-size: clamp(30px, 3.4vw, 48px);
            line-height: 1.2;
        }
        
        h3 {
            font-size: 26px;
            line-height: 1.3;
        }
        
        .columns {
            display: grid;
            grid-template-columns: repeat(3, minmax(0, 1fr));
            gap: 36px;
            margin-top: 36px;
        }
        
        .columns article {
            border-top: 1px solid var(--stone);
        }
        
        .content p {
            color: #0C0B0A;
            font-size: 17px;
            line-height: 1.8;
            max-width: 720px;
        }
        
        details {
            border-top: 1px solid var(--stone);
            padding: 24px 0;
        }
        
        summary {
            cursor: pointer;
            font-size: 18px;
            line-height: 1.5;
        }
        
        footer {
            padding: 56px clamp(24px, 6vw, 96px);
            background: var(--brown);
            color: var(--cream);
        }
        
        footer p {
            font-size: 17px;
            line-height: 1.8;
            max-width: 640px;
        }
        
        footer a,
        footer a:hover {
            color: var(--cream);
        }
        
        footer a:focus-visible {
            outline-color: var(--cream);
        }
        
        @keyframes cinematic-arrival {
            from {
                transform: scale(1.035);
            }
            to {
                transform: scale(1);
            }
        }
        
        @keyframes text-arrival {
            from {
                opacity: 0;
                transform: translateY(12px);
            }
            to {
                opacity: 1;
                transform: translateY(0);
            }
        }
        
        @media(max-width:760px) {
            header {
                justify-content: center;
                padding: 28px 24px;
            }
            .brand img {
                width: 145px;
            }
            main>.intro {
                height: 90vh;
                min-height: 660px;
                padding: 106px 20px 120px;
            }
            h1 {
                font-size: clamp(34px, 7vw, 48px);
            }
            .hero-description {
                font-size: 16px;
                max-width: 490px;
                margin-top: 20px;
            }
            .hero-image {
                object-position: 47% center;
            }
            .hero-cta {
                margin-top: 28px;
            }
            .columns {
                grid-template-columns: 1fr;
                gap: 20px;
            }
            .credibility-inner {
                flex-direction: column;
                gap: 10px;
                min-height: 0;
            }
            .credibility-company {
                flex: none;
                width: min(100%, 320px);
            }
            .credibility-reviews {
                flex: none;
                width: min(100%, 260px);
            }
            .intro>.credibilities {
                left: 0;
                width: 100%;
                margin: 0;
                padding: 16px 20px;
                border-radius: 0;
                transform: none;
            }
            main>.welcome {
                padding: 32px 24px 64px;
            }
            .welcome-inner {
                grid-template-columns: 1fr;
                gap: 28px;
            }
            .welcome-copy {
                padding-left: 0;
                padding-top: 24px;
                border-left: 0;
                border-top: 1px solid #867045;
            }
        }
        
        @media(max-width:480px) {
            main>section {
                padding: 56px 24px;
            }
        }
        
        @media(prefers-reduced-motion:reduce) {
            .hero-image,
            .hero-inner {
                animation: none;
            }
            .hero-cta {
                transition: none;
            }
        }
        
        main>.family-discoveries {
            padding-top: clamp(72px, 9vw, 112px);
            padding-bottom: clamp(72px, 9vw, 112px);
            background: var(--cream);
        }
        
        .family-discoveries .content {
            max-width: 1160px;
        }
        
        .family-discoveries-layout {
            display: block;
        }
        
        .family-discoveries-heading {
            max-width: 620px;
            margin: 0 auto clamp(48px, 6vw, 72px);
            text-align: center;
        }
        
        .family-discoveries h2 {
            margin: 0;
            color: #0C0B0A;
            font-family: Garamond, Georgia, serif;
            font-weight: 400;
            font-size: clamp(32px, 3.4vw, 46px);
            line-height: 1.25;
            letter-spacing: -.01em;
            text-align: center;
        }
        
        .family-discoveries-grid {
            display: grid;
            grid-template-columns: repeat(2, minmax(0, 1fr));
            gap: 1px;
            background: #e3ddcf;
            border: 1px solid #e3ddcf;
        }
        
        .family-discoveries-grid article {
            display: block;
            background: var(--cream);
            padding: clamp(36px, 4vw, 56px);
            text-align: left;
        }
        
        .discovery-number {
            display: block;
            margin: 0 0 20px;
            font-family: Garamond, Georgia, serif;
            font-size: 13px;
            letter-spacing: .22em;
            color: #867045;
        }
        
        .family-discoveries-grid h3 {
            margin: 0 0 14px;
            font-family: Garamond, Georgia, serif;
            font-weight: 400;
            font-size: clamp(24px, 2.2vw, 28px);
            line-height: 1.3;
            color: #0C0B0A;
        }
        
        .family-discoveries-grid p {
            margin: 0;
            font-size: 16px;
            line-height: 1.85;
        }
        
        @media (max-width: 760px) {
            .family-discoveries-grid {
                grid-template-columns: 1fr;
            }
            .family-discoveries-grid article {
                padding: 32px clamp(20px, 5vw, 36px);
            }
        }
        
        main>.planning {
            padding: clamp(48px, 6vw, 88px) clamp(24px, 4vw, 64px);
        }
        
        .planning-cta {
            display: inline-block;
            margin-top: 20px;
            padding: 16px 28px;
            border: 1px solid var(--ink);
            border-radius: 15px;
            background: var(--ink);
            color: var(--cream);
            font-family: Fraunces, Georgia, serif;
            font-size: 16px;
            font-weight: 300;
            letter-spacing: .04em;
            line-height: 1.5;
            text-decoration: none;
            cursor: pointer;
            text-align: center;
            transition: background-color .2s, color .2s;
        }
        
        .planning-cta:hover {
            background: var(--cream);
            color: #0C0B0A;
        }
        
        @media (prefers-reduced-motion: reduce) {
            .planning-cta {
                transition: none;
            }
        }
        
        main>.family-safari-guide {
            padding: clamp(72px, 9vw, 120px) clamp(24px, 4vw, 64px);
            background: var(--cream);
        }
        
        .family-guide-inner {
            max-width: 1240px;
            margin: 0 auto;
            display: flex;
            flex-direction: column;
            gap: clamp(72px, 9vw, 120px);
        }
        
        .family-guide-topic {
            display: grid;
            grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
            gap: clamp(40px, 6vw, 88px);
            align-items: center;
        }
        
        .family-guide-topic-media {
            aspect-ratio: 4 / 5;
            overflow: hidden;
        }
        
        .family-guide-topic-media img {
            display: block;
            width: 100%;
            height: 100%;
            object-fit: cover;
        }
        
        .family-guide-topic-mark {
            display: block;
            width: 32px;
            height: 1px;
            margin-bottom: 22px;
            background: #867045;
        }
        
        .family-guide-topic h2 {
            margin: 0 0 24px;
            color: #0C0B0A;
            font-family: Garamond, Georgia, serif;
            font-weight: 400;
            font-size: clamp(28px, 3vw, 40px);
            line-height: 1.25;
            letter-spacing: -.005em;
        }
        
        .family-guide-topic p {
            margin: 0 0 18px;
            font-size: 16px;
            line-height: 1.9;
            color: #0C0B0A;
        }
        
        .family-guide-topic p:last-child {
            margin-bottom: 0;
        }
        
        .family-guide-journeys {
            margin-top: 32px;
        }
        
        .family-guide-journeys>div+div {
            margin-top: 28px;
        }
        
        .family-guide-journeys h3 {
            margin: 0 0 12px;
            font-size: 25px;
            line-height: 1.3;
        }
        
        .family-guide-cta {
            margin-top: 36px;
        }
        
        @media (max-width: 760px) {
            .family-guide-inner {
                gap: 48px;
            }
            .family-guide-topic {
                grid-template-columns: 1fr;
                gap: 24px;
            }
            .family-guide-topic p {
                font-size: 16px;
                line-height: 1.85;
            }
        }
        
        main>.family-packages {
            padding: clamp(72px, 9vw, 120px) clamp(24px, 4vw, 64px);
            background: #0c0b0a;
        }
        
        .family-packages-inner {
            max-width: 1400px;
            margin: auto;
        }
        
        .family-packages-heading {
            max-width: 800px;
            margin: 0 auto 56px;
            text-align: center;
        }
        
        .family-packages-heading h2 {
            margin-bottom: 20px;
            color: #f2ece1;
            font-family: Garamond, Georgia, serif;
            font-weight: 400;
        }
        
        .family-packages-heading p {
            margin: 0;
            font-size: 17px;
            line-height: 1.8;
            color: #dec99c;
        }
        
        .family-packages-grid {
            display: grid;
            grid-template-columns: repeat(3, minmax(0, 1fr));
            gap: clamp(24px, 3vw, 48px);
        }
        
        .family-package {
            display: flex;
            flex-direction: column;
            min-width: 0;
            background: #322b1e;
            border: 1px solid rgba(222, 201, 156, .22);
        }
        
        .family-package-media {
            overflow: hidden;
            aspect-ratio: 1 / 1;
            background: var(--stone);
        }
        
        .family-package-media img {
            display: block;
            width: 100%;
            height: 100%;
            object-fit: cover;
            transition: transform 1.1s ease;
        }
        
        .family-package:first-child img {
            object-position: center bottom;
        }
        
        .family-package:nth-child(2) img {
            object-position: center bottom;
        }
        
        .family-package:hover img {
            transform: scale(1.04);
        }
        
        .family-package-body {
            display: flex;
            flex: 1;
            flex-direction: column;
            padding: 24px 26px 28px;
        }
        
        .family-package-duration {
            margin: 0 0 24px;
            font-size: 13px;
            letter-spacing: .1em;
            line-height: 1.5;
            text-transform: uppercase;
            color: #dec99c;
        }
        
        .family-package h3 {
            margin: 0 0 10px;
            font-family: Garamond, Georgia, serif;
            font-size: clamp(26px, 2.4vw, 36px);
            line-height: 1.2;
            font-weight: 400;
            color: #f2ece1;
        }
        
        .family-package-audience {
            margin: 0 0 14px;
            color: rgba(242, 236, 225, .7);
            font-size: 15px;
            line-height: 1.6;
        }
        
        .family-package-details {
            margin: 0 0 24px;
        }
        
        .family-package-details div+div {
            margin-top: 26px;
        }
        
        .family-package-details dt {
            font-family: Garamond, Georgia, serif;
            font-size: 25px;
            line-height: 1.3;
            color: #f2ece1;
        }
        
        .family-package-details dd {
            margin: 6px 0 0;
            font-size: 16px;
            line-height: 1.65;
            color: rgba(242, 236, 225, .75);
        }
        
        .family-package-details .family-package-price dd {
            margin: 0;
            color: #f2ece1;
        }
        
        .family-package-price-line {
            display: flex;
            flex-direction: column;
            gap: 4px;
        }
        
        .family-package-price-from {
            font-family: Inter, Arial, sans-serif;
            font-size: 11px;
            font-weight: 700;
            letter-spacing: .14em;
            text-transform: uppercase;
            color: #867045;
        }
        
        .family-package-price-amount {
            font-family: Garamond, Georgia, serif;
            font-size: clamp(20px, 1.6vw, 24px);
            font-weight: 400;
            line-height: 1.2;
            white-space: nowrap;
            color: #dec99c;
        }
        
        .family-package-price-basis {
            display: block;
            margin-top: 6px;
            font-family: Inter, Arial, sans-serif;
            font-size: 13px;
            line-height: 1.5;
            color: rgba(242, 236, 225, .6);
        }
        
        .family-package-price dt {
            position: absolute;
            width: 1px;
            height: 1px;
            padding: 0;
            overflow: hidden;
            clip-path: inset(50%);
            white-space: nowrap;
        }
        
        .family-package-button {
            display: inline-flex;
            align-items: center;
            justify-content: space-between;
            gap: 16px;
            width: 100%;
            margin-top: auto;
            padding: 14px 0;
            border: 0;
            border-bottom: 1px solid rgba(222, 201, 156, .3);
            border-radius: 0;
            background: transparent;
            color: #dec99c;
            font-family: Garamond, Georgia, serif;
            font-size: 16px;
            text-align: left;
            text-decoration: none;
            transition: opacity .2s;
        }
        
        .family-package-button:hover {
            opacity: .7;
        }
        
        .family-package-button:disabled {
            cursor: not-allowed;
            opacity: .65;
        }
        
        .family-packages-note {
            max-width: 850px;
            margin: 48px auto 0;
            font-size: 15px;
            line-height: 1.8;
            color: rgba(242, 236, 225, .6);
            text-align: center;
        }
        
        @media (max-width: 700px) {
            .family-packages-grid {
                grid-template-columns: 1fr;
                gap: 48px;
            }
            .family-package h3 {
                font-size: 32px;
            }
            .family-package-duration {
                margin-bottom: 18px;
            }
        }
        
        @media (prefers-reduced-motion: reduce) {
            .family-package-media img {
                transition: none;
            }
        }
        
        main>.guest-reviews {
            padding: clamp(72px, 9vw, 120px) clamp(24px, 4vw, 64px);
            background: #0c0b0a;
        }
        
        .guest-reviews-inner {
            max-width: 1400px;
            margin: auto;
        }
        
        .guest-reviews-heading {
            display: flex;
            align-items: end;
            justify-content: space-between;
            gap: 24px;
            margin-bottom: 48px;
        }
        
        .guest-reviews-eyebrow {
            font-size: 12px;
            letter-spacing: .2em;
            text-transform: uppercase;
            color: #867045;
            margin: 0 0 16px;
        }
        
        .guest-reviews-heading h2 {
            margin: 0 0 12px;
            color: #f2ece1;
            font-family: Garamond, Georgia, serif;
            font-weight: 400;
        }
        
        .guest-reviews-heading p:last-child {
            margin: 0;
            color: #dec99c;
        }
        
        .guest-reviews-controls {
            display: flex;
            gap: 10px;
        }
        
        .guest-reviews-controls[hidden] {
            display: none;
        }
        
        .guest-reviews-controls button {
            width: 46px;
            height: 46px;
            border-radius: 50%;
            border: 1px solid rgba(222, 201, 156, .35);
            background: transparent;
            color: #dec99c;
            font-size: 23px;
            cursor: pointer;
        }
        
        .guest-reviews-controls button:hover {
            background: #dec99c;
            color: #0c0b0a;
        }
        
        .guest-reviews-controls button:disabled {
            opacity: .35;
            cursor: default;
        }
        
        .guest-reviews-track {
            display: grid;
            grid-auto-flow: column;
            grid-auto-columns: calc((100% - 48px) / 3);
            gap: 24px;
            overflow-x: auto;
            scroll-snap-type: x mandatory;
            padding: 2px 2px 20px;
            scrollbar-width: thin;
            scrollbar-color: rgba(222, 201, 156, .35) transparent;
        }
        
        .guest-review {
            min-width: 0;
            display: flex;
            flex-direction: column;
            scroll-snap-align: start;
            background: transparent;
            border: 0;
            border-top: 1px solid #867045;
            border-radius: 0;
            padding: 28px 0 0;
        }
        
        .guest-review-person {
            display: flex;
            gap: 12px;
            align-items: center;
        }
        
        .guest-review-avatar {
            flex: 0 0 42px;
            height: 42px;
            display: grid;
            place-items: center;
            border-radius: 50%;
            border: 1px solid rgba(222, 201, 156, .4);
            background: transparent;
            color: #dec99c;
            font-family: Garamond, Georgia, serif;
            font-size: 15px;
        }
        
        .guest-review-name {
            margin: 0;
            font-size: 15px;
            font-weight: 400;
            font-family: Garamond, Georgia, serif;
            color: #f2ece1;
            line-height: 1.4;
        }
        
        .guest-review-context {
            margin: 4px 0 0;
            font-size: 12px;
            color: #a89778;
            line-height: 1.5;
        }
        
        .guest-review-meta {
            display: flex;
            flex-wrap: wrap;
            align-items: center;
            gap: 10px;
            margin: 22px 0 18px;
            font-size: 12px;
            color: #a89778;
        }
        
        .guest-review-rating {
            display: inline-flex;
            gap: 3px;
        }
        
        .guest-review-rating span {
            width: 6px;
            height: 6px;
            border-radius: 50%;
            background: #dec99c;
        }
        
        .guest-review h3 {
            font-family: Garamond, Georgia, serif;
            font-size: 20px;
            font-weight: 400;
            line-height: 1.4;
            margin: 0 0 12px;
            color: #f2ece1;
        }
        
        .guest-review blockquote {
            padding: 0;
            margin: 0 0 24px;
            border: 0;
        }
        
        .guest-review blockquote p {
            font-family: Garamond, Georgia, serif;
            font-style: italic;
            margin: 0;
            font-size: 16px;
            line-height: 1.8;
            color: rgba(242, 236, 225, .82);
        }
        
        .guest-review-source {
            margin-top: auto;
            padding-top: 18px;
            font-size: 13px;
            font-weight: 400;
            font-family: Garamond, Georgia, serif;
            color: #dec99c;
            text-decoration: none;
            border-bottom: 1px solid transparent;
            text-underline-offset: 4px;
            width: fit-content;
        }
        
        .guest-review-source:hover {
            border-bottom-color: #dec99c;
        }
        
        .guest-reviews-all {
            display: inline-flex;
            align-items: center;
            justify-content: center;
            gap: 12px;
            width: fit-content;
            max-width: 100%;
            box-sizing: border-box;
            margin: 48px auto 0;
            padding: 16px 30px;
            border: 1px solid #dec99c;
            border-radius: 999px;
            background: transparent;
            font-family: Garamond, Georgia, serif;
            font-size: 15px;
            line-height: 1.5;
            color: #dec99c;
            text-align: center;
            text-decoration: none;
            transition: background .2s ease, color .2s ease;
        }
        
        .guest-reviews-all:hover {
            background: #dec99c;
            color: #0c0b0a;
        }
        
        .guest-reviews-all:focus-visible,
        .guest-reviews-controls button:focus-visible {
            outline-color: #dec99c;
        }
        
        .guest-reviews :focus-visible {
            outline: 2px solid #dec99c;
            outline-offset: 4px;
        }
        
        @media (max-width: 1050px) {
            .guest-reviews-track {
                grid-auto-columns: calc((100% - 24px) / 2);
            }
        }
        
        @media (max-width: 650px) {
            .guest-reviews-track {
                grid-auto-columns: 92%;
                gap: 16px;
            }
            .guest-review {
                padding: 22px 0 0;
            }
            .guest-reviews-heading {
                align-items: start;
                flex-direction: column;
            }
        }
        
        main>.family-stays {
            background: #f2ece1;
            padding: clamp(72px, 9vw, 120px) clamp(24px, 4vw, 64px);
        }
        
        .family-stays-inner {
            max-width: 1180px;
            margin: auto;
        }
        
        .family-stays-header {
            max-width: 680px;
            margin: 0 auto clamp(48px, 6vw, 72px);
            text-align: center;
        }
        
        .family-stays-eyebrow {
            margin: 0 0 18px;
            font-size: 12px;
            letter-spacing: .2em;
            text-transform: uppercase;
            color: #867045;
        }
        
        .family-stays-header h2 {
            margin: 0 0 24px;
            color: #0C0B0A;
            font-family: Garamond, Georgia, serif;
            font-weight: 400;
            font-size: clamp(32px, 3.4vw, 46px);
            line-height: 1.25;
        }
        
        .family-stays p {
            margin: 0 0 18px;
            font-size: 16px;
            line-height: 1.9;
            color: #0C0B0A;
        }
        
        .family-stays p:last-child {
            margin-bottom: 0;
        }
        
        .family-stays-mosaic {
            display: grid;
            grid-template-columns: repeat(3, minmax(0, 1fr));
            grid-auto-rows: 190px;
            gap: 16px;
            margin-bottom: clamp(56px, 7vw, 88px);
        }
        
        .family-stays-photo {
            position: relative;
            margin: 0;
            overflow: hidden;
        }
        
        .family-stays-photo--large {
            grid-column: 1 / 3;
            grid-row: 1 / 3;
        }
        
        .family-stays-photo img {
            display: block;
            width: 100%;
            height: 100%;
            object-fit: cover;
        }
        
        .family-stays-photo figcaption {
            position: absolute;
            inset: auto 0 0 0;
            padding: 40px 20px 16px;
            background: linear-gradient(0deg, rgba(12, 11, 10, .75), rgba(12, 11, 10, 0));
            line-height: 1.4;
        }
        
        .family-stays-photo figcaption span:first-child {
            display: block;
            font-family: Garamond, Georgia, serif;
            font-size: 17px;
            color: #f2ece1;
        }
        
        .family-stays-photo figcaption span:last-child {
            display: block;
            margin-top: 3px;
            font-size: 12px;
            color: #dec99c;
        }
        
        .family-stays-topics {
            display: grid;
            grid-template-columns: repeat(3, minmax(0, 1fr));
            gap: clamp(28px, 4vw, 48px);
            padding-top: clamp(40px, 5vw, 56px);
            border-top: 1px solid #d8cfba;
        }
        
        .family-stays-topic-mark {
            display: block;
            width: 32px;
            height: 1px;
            margin-bottom: 20px;
            background: #867045;
        }
        
        .family-stays-topic h3 {
            margin: 0 0 12px;
            font-family: Garamond, Georgia, serif;
            font-size: clamp(21px, 1.9vw, 25px);
            line-height: 1.35;
            color: #0C0B0A;
            font-weight: 400;
        }
        
        .family-stays-action {
            padding-top: clamp(48px, 6vw, 64px);
            text-align: center;
        }
        
        .family-stays-cta {
            display: inline-flex;
            align-items: center;
            justify-content: center;
            gap: 16px;
            padding: 17px 30px;
            border: 1px solid #322b1e;
            border-radius: 999px;
            background: transparent;
            color: #0C0B0A;
            font-family: Garamond, Georgia, serif;
            font-size: 17px;
            line-height: 1.5;
            text-decoration: none;
            cursor: pointer;
            transition: background-color .2s, color .2s;
        }
        
        .family-stays-cta:hover {
            background: #322b1e;
            color: #f2ece1;
        }
        
        .family-stays-cta:focus-visible {
            outline: 2px solid #322b1e;
            outline-offset: 4px;
        }
        
        .family-stays .family-stays-note {
            max-width: 730px;
            margin: 0 auto 20px;
            font-size: 13px;
            line-height: 1.8;
        }
        
        @media (max-width: 700px) {
            .family-stays-mosaic {
                grid-template-columns: repeat(2, minmax(0, 1fr));
                grid-auto-rows: 150px;
            }
            .family-stays-photo--large {
                grid-column: 1 / 3;
                grid-row: 1 / 2;
            }
            .family-stays-topics {
                grid-template-columns: 1fr;
                gap: 32px;
            }
            .family-stays-cta {
                padding: 16px 24px;
                font-size: 16px;
            }
        }
        
        footer.family-footer {
            background: #0c0b0a;
            padding: clamp(64px, 8vw, 96px) clamp(24px, 5vw, 80px) 28px;
        }
        
        .family-footer-columns {
            max-width: 1400px;
            margin: auto;
            display: grid;
            grid-template-columns: 1.15fr 1fr 1.2fr;
            gap: clamp(30px, 5vw, 80px);
        }
        
        .family-footer-logo {
            width: 190px;
            max-width: 100%;
            height: auto;
        }
        
        .family-footer h2 {
            font-size: 22px;
            font-family: Garamond, Georgia, serif;
            font-weight: 400;
            line-height: 1.4;
            margin: 0 0 22px;
            color: #f2ece1;
        }
        
        .family-footer p {
            font-size: 14px;
            line-height: 1.9;
            color: rgba(242, 236, 225, .6);
        }
        
        .family-footer .family-footer-tagline {
            font-family: Garamond, Georgia, serif;
            font-weight: 400;
            font-size: 23px;
            line-height: 1.5;
            color: #dec99c;
            margin: 24px 0 14px;
        }
        
        .family-footer ul {
            list-style: none;
            padding: 0;
            margin: 0;
        }
        
        .family-footer li {
            margin-bottom: 14px;
            font-size: 14px;
        }
        
        .family-footer a {
            color: #dec99c;
            text-decoration: none;
            overflow-wrap: anywhere;
        }
        
        .family-footer a:hover {
            text-decoration: underline;
            text-underline-offset: 4px;
        }
        
        .family-footer address {
            font-style: normal;
        }
        
        .family-footer-bottom {
            max-width: 1400px;
            margin: 48px auto 0;
            padding-top: 24px;
            border-top: 1px solid rgba(222, 201, 156, .2);
            display: flex;
            flex-wrap: wrap;
            justify-content: space-between;
            gap: 18px 28px;
            align-items: center;
        }
        
        .family-footer-bottom p {
            font-size: 12px;
            margin: 0;
            color: rgba(242, 236, 225, .5);
        }
        
        .family-footer-bottom nav {
            display: flex;
            flex-wrap: wrap;
            gap: 16px;
            font-size: 12px;
        }
        
        [id] {
            scroll-margin-top: 32px;
        }
        
        @media (max-width: 800px) {
            .family-footer-columns {
                grid-template-columns: 1fr;
                gap: 36px;
            }
        }
        
        main>.family-enquiry {
            background: var(--sand);
            padding: 72px clamp(24px, 5vw, 80px);
        }
        
        .family-enquiry h2 {
            margin-top: 0;
            color: #0C0B0A;
        }
        
        .family-enquiry p {
            line-height: 1.8;
            color: #0C0B0A;
        }
        
        .family-enquiry-fields {
            display: grid;
            grid-template-columns: 1fr 1fr;
            gap: 20px;
        }
        
        .family-enquiry-fields label {
            display: flex;
            flex-direction: column;
            gap: 8px;
            font-size: 14px;
        }
        
        .family-enquiry-fields input,
        .family-enquiry-fields textarea {
            width: 100%;
            box-sizing: border-box;
            border: 1px solid var(--stone);
            padding: 12px;
            background: var(--cream);
            color: #0C0B0A;
            border-radius: 5px;
            font: inherit;
        }
        
        .family-enquiry-fields textarea {
            resize: vertical;
        }
        
        .family-enquiry-wide {
            grid-column: 1 / -1;
        }
        
        .family-enquiry-consent {
            display: flex;
            align-items: start;
            gap: 10px;
            margin: 22px 0;
            font-size: 13px;
            line-height: 1.7;
        }
        
        .family-enquiry button {
            cursor: pointer;
            border: 0;
        }
        
        .family-enquiry button:disabled {
            opacity: .6;
            cursor: wait;
        }
        
        .family-enquiry-fallback {
            font-size: 13px;
        }
        
        .family-enquiry a {
            color: #0C0B0A;
        }
        
        .family-enquiry :focus-visible {
            outline: 2px solid var(--green);
            outline-offset: 3px;
        }
        
        @media (max-width: 480px) {
            .family-enquiry-fields {
                grid-template-columns: 1fr;
            }
        }
        
        main>.family-questions {
            padding: clamp(60px, 7vw, 104px) clamp(24px, 5vw, 80px);
            background: var(--cream);
        }
        
        main>.enquiry-embed {
            padding: clamp(64px, 8vw, 112px) clamp(24px, 5vw, 80px);
            background: #fff;
            text-align: center;
        }
        
        .enquiry-embed-inner {
            max-width: 860px;
            margin: auto;
        }
        
        .enquiry-embed-inner h2 {
            margin: 0 0 14px;
            font-family: Fraunces, Georgia, serif;
            font-weight: 300;
            font-size: clamp(28px, 3vw, 40px);
            color: #0C0B0A;
        }
        
        .enquiry-embed-inner>p {
            margin: 0 0 36px;
            font-size: 17px;
            line-height: 1.8;
            color: #0C0B0A;
        }
        
        .family-faq-layout {
            max-width: 1180px;
            margin: auto;
        }
        
        .family-faq-overview {
            max-width: 680px;
            margin: 0 auto clamp(48px, 6vw, 72px);
            text-align: center;
        }
        
        .family-faq-eyebrow {
            margin: 0 0 18px;
            font-size: 12px;
            letter-spacing: .2em;
            text-transform: uppercase;
            line-height: 1.6;
            color: #867045;
        }
        
        .family-questions h2 {
            margin: 0 0 20px;
            color: #0C0B0A;
            font-family: Garamond, Georgia, serif;
            font-weight: 400;
            font-size: clamp(32px, 3.4vw, 46px);
            line-height: 1.25;
        }
        
        .family-faq-intro {
            margin: 0;
            font-size: 16px;
            line-height: 1.85;
            color: #0C0B0A;
        }
        
        .family-faq-list {
            display: grid;
            grid-template-columns: repeat(2, minmax(0, 1fr));
            column-gap: clamp(40px, 6vw, 72px);
        }
        
        .family-faq-list details {
            padding: 0;
            border: 0;
            border-bottom: 1px solid #d8cfba;
            border-radius: 0;
            background: transparent;
            overflow: hidden;
        }
        
        .family-faq-list details[open] {
            border-bottom-color: #867045;
        }
        
        .family-faq-list summary {
            display: grid;
            grid-template-columns: 34px minmax(0, 1fr) 20px;
            align-items: center;
            gap: 14px;
            padding: 22px 0;
            list-style: none;
            color: #0C0B0A;
            font-family: Garamond, Georgia, serif;
            font-size: 17px;
            line-height: 1.5;
            cursor: pointer;
        }
        
        .family-faq-list summary::-webkit-details-marker {
            display: none;
        }
        
        .family-faq-list summary::marker {
            content: '';
        }
        
        .family-faq-list summary:hover {
            color: #867045;
        }
        
        .family-faq-list summary:focus-visible {
            outline: 2px solid #867045;
            outline-offset: -4px;
        }
        
        .family-faq-number {
            font-family: Garamond, Georgia, serif;
            font-size: 15px;
            color: #867045;
        }
        
        .family-faq-toggle {
            width: 20px;
            height: 20px;
            position: relative;
        }
        
        .family-faq-toggle::before,
        .family-faq-toggle::after {
            content: '';
            position: absolute;
            background: #322b1e;
            left: 0;
            top: 9px;
            width: 20px;
            height: 1px;
        }
        
        .family-faq-toggle::after {
            transform: rotate(90deg);
        }
        
        details[open] .family-faq-toggle::before {
            background: #867045;
        }
        
        details[open] .family-faq-toggle::after {
            display: none;
        }
        
        .family-faq-answer {
            margin: 0 20px 26px 48px;
            padding-top: 0;
            border-top: 0;
        }
        
        .family-faq-answer p {
            margin: 0 0 14px;
            font-size: 15px;
            line-height: 1.85;
            color: #0C0B0A;
        }
        
        .family-faq-answer p:last-child {
            margin-bottom: 0;
        }
        
        .family-faq-action {
            max-width: 680px;
            margin: clamp(48px, 6vw, 72px) auto 0;
            padding-top: clamp(40px, 5vw, 56px);
            border-top: 1px solid #d8cfba;
            text-align: center;
        }
        
        .family-faq-action h3 {
            color: #0C0B0A;
            font-family: Garamond, Georgia, serif;
            font-weight: 400;
            margin: 0 0 14px;
            font-size: clamp(22px, 2.2vw, 28px);
            line-height: 1.35;
        }
        
        .family-faq-action p {
            margin: 0 auto 26px;
            color: #0C0B0A;
            font-size: 15px;
            line-height: 1.8;
            max-width: 560px;
        }
        
        @media (max-width: 760px) {
            .family-faq-list {
                grid-template-columns: 1fr;
            }
        }
        
        @media (max-width: 520px) {
            .family-faq-list summary {
                grid-template-columns: 26px minmax(0, 1fr) 18px;
                gap: 10px;
                font-size: 16px;
            }
            .family-faq-answer {
                margin: 0 14px 22px 38px;
            }
            .family-faq-eyebrow {
                letter-spacing: .12em;
            }
        }
        /* Responsive layout refinements: content can grow without clipping. */
        
        main>.intro {
            height: auto;
            min-height: max(580px, 90svh);
        }
        
        .hero-inner,
        .family-footer-columns>*,
        .guest-reviews-heading>*,
        .guest-review-person>div {
            min-width: 0;
        }
        
        .hero-cta,
        .planning-cta,
        .family-stays-cta {
            max-width: 100%;
            overflow-wrap: anywhere;
            text-align: center;
        }
        
        .guest-reviews-controls {
            flex-shrink: 0;
        }
        
        .guest-review-source,
        .guest-review-context,
        .family-stays-photo figcaption {
            overflow-wrap: anywhere;
        }
        
        .family-package-button {
            cursor: pointer;
            min-height: 48px;
        }
        
        .family-package-button:focus-visible {
            outline: 2px solid var(--green);
            outline-offset: 4px;
        }
        
        .family-footer nav a {
            display: inline-flex;
            align-items: center;
            min-height: 44px;
        }
        
        .family-footer li {
            margin-bottom: 4px;
        }
        
        .family-footer-bottom nav {
            gap: 4px 16px;
        }
        
        .guest-reviews-track {
            overscroll-behavior-x: contain;
        }
        
        @media (min-width: 701px) and (max-width: 1000px) {
            .family-packages-grid {
                grid-template-columns: repeat(2, minmax(0, 1fr));
                gap: 40px 28px;
            }
            .family-package:last-child {
                grid-column: 1 / -1;
                width: calc((100% - 28px) / 2);
                justify-self: center;
            }
            .family-stays-intro,
            .family-stays-topic {
                grid-template-columns: minmax(0, .8fr) minmax(0, 1.4fr);
                gap: 28px;
            }
        }
        
        @media (min-width: 761px) and (max-width: 1000px) {
            .family-discoveries-layout {
                gap: 32px;
            }
        }
        
        @media (min-width: 651px) and (max-width: 1000px) {
            .family-footer-columns {
                grid-template-columns: repeat(2, minmax(0, 1fr));
                gap: 32px 48px;
            }
            .family-footer-columns>div:first-child {
                grid-column: 1 / -1;
                max-width: 640px;
            }
        }
        
        @media (max-width: 760px) {
            main>.intro {
                height: auto;
                min-height: max(660px, 90svh);
                padding-top: 120px;
            }
            .family-package-media {
                max-height: 660px;
            }
        }
        
        @media (max-width: 550px) {
            .family-stays-cta {
                width: 100%;
            }
            .family-faq-action {
                padding: 24px 20px;
            }
            .family-faq-action .family-stays-cta {
                justify-self: stretch;
            }
        }
        
        @media (max-width: 360px) {
            footer.family-footer {
                padding-left: 20px;
                padding-right: 20px;
            }
            .guest-review {
                padding: 20px 16px;
            }
        }
    
.cookie-banner{position:fixed;bottom:18px;left:18px;max-width:620px;z-index:100;background:#fffaf0;border:1px solid var(--line);padding:20px;box-shadow:0 6px 40px #322b1e20;display:flex;align-items:center;gap:15px;font-size:11px;line-height:1.6}.cookie-banner[hidden],[hidden]{display:none!important}.cookie-banner button{background:none;border:1px solid var(--gold);padding:10px;color:#0C0B0A}.cookie-banner [data-consent=accepted]{background:var(--gold);color:white}.cookie-banner a,.privacy a{text-decoration:underline}dialog{border:1px solid var(--line);background:var(--paper);color:#0C0B0A;padding:42px;width:min(660px,calc(100% - 28px));max-height:90dvh;overflow:auto}dialog::backdrop{background:#17150fe0}body:has(dialog[open]){overflow:hidden}.dialog-close{display:block;margin:0 0 12px auto;border:0;background:none;color:#0C0B0A;font-size:11px;text-decoration:underline}dialog h2{font-size:44px;margin:15px 0}.dialog-intro{font-size:12px;line-height:1.8;margin-bottom:25px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.form-grid label{font-size:11px;display:grid;gap:8px}.form-grid .full{grid-column:1/-1}input,select,textarea{width:100%;min-width:0;border:1px solid var(--line);border-radius:0;background:#fffcf7;color:#0C0B0A;padding:13px 11px;font-size:12px}input:focus,select:focus,textarea:focus{outline:1px solid var(--gold)}.extra{font-size:11px;margin:20px 0}.extra summary{cursor:pointer;margin-bottom:15px}.submit{width:100%;margin-top:10px}.submit:disabled{opacity:.6}.privacy{font-size:9px;line-height:1.7;margin-top:13px}.form-status{font-size:12px;color:#943d29;line-height:1.6}.form-status.success{color:#376448}.dialog-wa{margin-top:20px;text-align:center}.honeypot{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}.skip{position:fixed;left:10px;top:-100px;background:white;padding:15px;z-index:200}.skip:focus{top:10px}.lumara-whatsapp-float{display:none!important}

.reviews{padding-block:65px 55px;border-top:1px solid var(--line);margin-top:25px}.reviews-heading{display:flex;justify-content:space-between;align-items:end;gap:40px;margin-bottom:38px}.reviews-heading h2{font-size:52px;line-height:1.05;letter-spacing:-.04em;margin-top:18px}.reviews-heading>p{font-size:12px;line-height:1.9;max-width:340px}.reviews-heading>p span{color:#0C0B0A}.review-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:32px}.review{display:flex;flex-direction:column;border-top:1px solid var(--gold);padding-top:24px}.review-source{font-size:9px;letter-spacing:.18em;color:var(--gold);margin-bottom:18px}.review h3{font-size:27px;line-height:1.15;min-height:63px;max-width:340px}.review-text{font-size:12px;line-height:1.9;margin:18px 0 25px}.review-author{margin-top:auto;display:grid;gap:8px}.review-author strong{font-size:12px;font-weight:500}.review-author span{font-size:10px;color:#0C0B0A;line-height:1.6}.review>a{display:flex;align-items:center;gap:20px;width:fit-content;font-size:11px;border-bottom:1px solid var(--line);padding-block:18px 8px}.review>a:hover{color:var(--gold)}.reviews-note{font-size:9px;line-height:1.8;color:#0C0B0A;margin-top:28px;max-width:740px}@media(max-width:760px){.reviews{padding-block:40px;margin-top:15px}.reviews-heading{display:block;margin-bottom:28px}.reviews-heading h2{font-size:40px}.reviews-heading>p{margin-top:20px}.review-grid{grid-template-columns:1fr;gap:32px}.review h3{min-height:0;font-size:29px}.review-text{font-size:13px;margin-bottom:20px}.reviews-note{font-size:10px}}


:root{--gold:#867045;--line:#c9bda5;--paper:#f7f5f0}.lumara-inclusions{display:flex;justify-content:space-around;gap:25px;padding:30px;font-family:Garamond,serif;font-size:20px}.lumara-inclusions span{text-align:center}.wrap{width:88%;max-width:1280px;margin-inline:auto}.reviews h2,.reviews h3,dialog h2{font-family:Fraunces,serif;font-weight:300}.icon{width:16px;height:16px;display:inline-block}.button{display:inline-flex;align-items:center;justify-content:center;gap:12px;padding:16px 22px;background:#5f514b;color:#fff;border:1px solid #5f514b;font:inherit;cursor:pointer}.button .icon{filter:invert(1)}dialog h2{font-size:36px}dialog p.eyebrow{font-size:10px;letter-spacing:.14em;text-transform:uppercase}.cookie-settings{background:none;border:0;color:inherit;text-decoration:underline;cursor:pointer}.enquiry-embed .planning-cta{margin:15px}.lumara-whatsapp-float{display:none!important}a:focus-visible,button:focus-visible{outline:2px solid #867045;outline-offset:4px}.reviews .eyebrow{font-size:10px;letter-spacing:.16em;text-transform:uppercase}@media(max-width:760px){.lumara-inclusions{padding:20px 14px;gap:12px;font-size:15px}.form-grid{grid-template-columns:1fr}.form-grid .full{grid-column:auto}dialog{padding:24px}.cookie-banner{left:12px;right:12px;flex-wrap:wrap}.cookie-banner p{width:100%}.enquiry-embed .planning-cta{display:flex}.reviews-heading h2{font-size:38px}}

.lumara-inclusions{color:#0C0B0A}dialog .extra summary{font-size:12px}dialog .extra{border:0;padding:0}dialog .form-status:empty{display:none}
/* User-selected brand cream surfaces. */
main > .intro > .credibilities,
main > .welcome,
main > #included { background-color: #F2ECE1; }
#included .family-discoveries-grid > article { background-color: #F2ECE1; }
/* Cream package information panels. */
.family-package .family-package-body { background: #F2ECE1; color: #0C0B0A; }
.family-package .family-package-body :is(h3,p,dt,dd,span,a) { color: #0C0B0A; }
.family-package .family-package-body .family-package-button { border-color: #867045; }
.family-package .family-package-body .family-package-button:hover { color: #0C0B0A; border-color: #322B1E; }
main > #safaris { background-color: #322B1E; }
/* One introduction and benefits section. */
main > .safari-overview { padding: 72px max(6vw,24px) 76px; background: #F2ECE1; }
.safari-overview .welcome-inner { max-width: 1200px; margin: 0 auto 42px; padding: 0; }
.safari-overview > .family-discoveries-grid { max-width: 1200px; margin: 0 auto; display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); border: 0; border-top: 1px solid #c9bda5; }
.safari-overview > .family-discoveries-grid > article { padding: 28px 24px 0; border: 0; border-right: 1px solid #c9bda5; background: transparent; display: block; }
.safari-overview > .family-discoveries-grid > article:first-child { padding-left: 0; }
.safari-overview > .family-discoveries-grid > article:last-child { border-right: 0; padding-right: 0; }
.safari-overview .discovery-number { display: block; margin-bottom: 18px; }
.safari-overview .discovery-copy h3 { font-size: 18px; line-height: 1.45; margin: 0 0 12px; }
.safari-overview .discovery-copy p { font-size: 13px; line-height: 1.85; margin: 0; }
@media(max-width:900px){.safari-overview > .family-discoveries-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:28px 0}.safari-overview > .family-discoveries-grid > article:nth-child(2){border-right:0;padding-right:0}.safari-overview > .family-discoveries-grid > article:nth-child(3){padding-left:0}}
@media(max-width:550px){main > .safari-overview{padding:45px 24px}.safari-overview .welcome-inner{margin-bottom:30px}.safari-overview > .family-discoveries-grid{grid-template-columns:1fr;gap:0}.safari-overview > .family-discoveries-grid > article{padding:24px 0!important;border-right:0;border-bottom:1px solid #c9bda5}.safari-overview > .family-discoveries-grid > article:last-child{border-bottom:0;padding-bottom:0!important}.safari-overview .discovery-number{margin-bottom:10px}}
/* Brand gold action buttons. */
.hero-cta,.planning-cta,.family-package .family-package-body .family-package-button,.family-stays-cta,.button,.cookie-banner button {
 background-color:#867045;color:#fff;border:1px solid #867045;
}
.hero-cta{padding:14px 24px;text-decoration:none}
.family-package .family-package-body .family-package-button{padding:14px 18px;text-align:center;justify-content:center}
.hero-cta:hover,.planning-cta:hover,.family-package .family-package-body .family-package-button:hover,.family-stays-cta:hover,.button:hover,.cookie-banner button:hover {
 background-color:#867045;color:#fff;border-color:#867045;filter:brightness(.92);
}
main > #experience { background-color: #F2ECE1; }

/* Editorial accommodation selector: Karatu, Ngorongoro, Serengeti. */
main > #family-stays.stays-editorial{background:#F2ECE1;color:#0C0B0A;padding:90px max(4.4vw,24px)}
.stays-shell{max-width:1280px;margin:auto}
.stays-heading{display:grid;grid-template-columns:1.6fr 1fr;gap:70px;align-items:end;margin-bottom:38px}
.stays-heading h2{font-size:clamp(36px,4vw,58px);line-height:1.08;letter-spacing:-.025em;margin:0}
.stays-kicker{font-size:10px!important;letter-spacing:.2em;text-transform:uppercase;color:#867045;margin:0 0 18px}
.stays-heading>p{font-size:14px;line-height:1.9;max-width:360px;margin:0 0 3px}
.stay-tabs{display:flex;gap:46px;border-top:1px solid #c9bda5;margin-bottom:34px}
.stay-tabs button{display:flex;align-items:center;gap:14px;border:0;border-bottom:2px solid transparent;background:transparent;color:#0C0B0A;padding:22px 0 17px;font-size:19px;cursor:pointer;border-radius:0}
.stay-tabs button span{font-size:10px;color:#867045}
.stay-tabs button[aria-selected=true]{border-bottom-color:#867045}
.stay-tabs button:hover{color:#867045}
.stay-panel{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(0,1fr);gap:clamp(30px,4.5vw,70px);align-items:center}
.stay-panel figure{margin:0;overflow:hidden;aspect-ratio:1.46}
.stay-panel figure img{display:block;width:100%;height:100%;object-fit:cover}
.stay-detail h3{font-family:var(--brand-heading)!important;font-size:clamp(30px,3.2vw,44px);font-weight:400;line-height:1.13;letter-spacing:-.02em;margin:0 0 24px}
.stay-tagline{font-size:13px;color:#867045;margin:0 0 10px}
.stay-description{font-size:14px;line-height:1.9;margin:0 0 28px}
.stay-detail .stay-enquire{display:inline-flex;justify-content:center;align-items:center;margin:0;padding:16px 22px;border-radius:0;font-size:12px;letter-spacing:.02em;min-height:50px}
.stay-disclaimer{font-size:10px!important;line-height:1.8;margin:22px 0 0;color:#0C0B0A;max-width:345px}
@media(max-width:760px){main > #family-stays.stays-editorial{padding:54px 24px}.stays-heading{grid-template-columns:1fr;gap:20px;margin-bottom:26px}.stays-heading>p{max-width:none;font-size:13px}.stay-tabs{gap:0;justify-content:space-between;margin-bottom:24px}.stay-tabs button{font-size:13px;gap:7px;padding:18px 0 14px}.stay-tabs button span{font-size:9px}.stay-panel{grid-template-columns:1fr;gap:28px}.stay-panel figure{aspect-ratio:1.4}.stay-detail h3{font-size:34px;max-width:380px;margin-bottom:18px}.stay-detail .stay-enquire{width:auto}.stay-disclaimer{max-width:none}}

/* Visible previous/next lodging controls, synchronized with destination tabs. */
.stay-navigation{display:flex;align-items:center;justify-content:space-between;gap:28px;border-top:1px solid #c9bda5;margin-bottom:34px}
.stay-navigation .stay-tabs{border:0;margin-bottom:0}
.stay-arrows{display:flex;align-items:center;gap:15px;flex-shrink:0}
.stay-arrow{display:grid;place-items:center;width:44px;height:44px;padding:0;border:1px solid #867045;background:transparent;color:#867045;border-radius:50%;cursor:pointer}
.stay-arrow svg{width:22px;height:22px}
.stay-arrow:hover{background:#867045;color:#fff}
.stay-position{font-size:11px;letter-spacing:.12em;white-space:nowrap;color:#867045;min-width:50px;text-align:center}
@media(max-width:760px){.stay-navigation{display:grid;gap:16px;margin-bottom:24px}.stay-navigation .stay-tabs{width:100%}.stay-arrows{justify-self:end;gap:12px}}
@media(max-width:760px){.stay-navigation{grid-template-columns:minmax(0,1fr);justify-content:normal}.stay-navigation .stay-tabs{justify-content:space-between}}
/* Tighter transition from safari experience into accommodation. */
main > #experience { padding-bottom: 32px; }
main > #family-stays.stays-editorial { padding-top: 32px; }
@media(max-width:760px){main > #experience{padding-bottom:24px}main > #family-stays.stays-editorial{padding-top:24px}}

/* Navigation follows the accommodation details. */
.stay-bottom-navigation{display:flex;justify-content:flex-end;margin-top:24px}
main > #family-stays.stays-editorial{padding-top:56px}
@media(max-width:760px){main > #family-stays.stays-editorial{padding-top:40px}.stay-bottom-navigation{margin-top:24px}}

/* Readable planning note above each lodging request button. */
#family-stays .stay-detail .stay-disclaimer{font-size:16px!important;line-height:1.9;color:#0C0B0A;max-width:none;border-left:2px solid #867045;padding:4px 0 4px 18px;margin:24px 0 28px}
#family-stays .stay-disclaimer span{display:block;font-weight:500}

#experience .family-guide-topic-copy strong{display:block;font-family:var(--brand-subheading);font-weight:500;color:#0C0B0A;margin-bottom:5px}
/* Consistent rounded action buttons, matching the experience CTA. */
.hero-cta,.planning-cta,.family-package .family-package-body .family-package-button,
.family-stays-cta,.stay-detail .stay-enquire,.button,.cookie-banner button {
 border-radius:15px;
}
/* Guest stories: complete Tripadvisor review collection. */
main > #reviews.guest-stories{padding:76px max(4.4vw,24px);background:#F2ECE1;color:#0C0B0A;margin:0;border:0;width:100%;max-width:none}
.stories-shell{max-width:1280px;margin:auto}
.stories-heading{display:flex;justify-content:space-between;align-items:center;gap:36px;margin-bottom:38px}
#reviews .stories-eyebrow{font-size:10px;letter-spacing:.2em;text-transform:uppercase;color:#867045;margin:0 0 20px}
#reviews h2{font-size:clamp(38px,4.1vw,60px);line-height:1.08;letter-spacing:-.025em;margin:0}
.tripadvisor-brand{display:grid;gap:10px;text-decoration:none;flex-shrink:0}
.tripadvisor-brand>span{display:flex;align-items:center;gap:9px;font-family:var(--brand-subheading);font-weight:500;font-size:26px;color:#002b11}
.tripadvisor-brand img{width:44px;height:30px;object-fit:contain}
.tripadvisor-brand small{font-size:13px;color:#867045}
.stories-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;align-items:start}
.story-card{display:flex;flex-direction:column;min-width:0;min-height:480px;padding:28px;border:1px solid #b9a785;border-radius:8px;background:transparent}
.story-author{display:flex;gap:14px;align-items:center;margin-bottom:25px}
.story-avatar{display:grid;place-items:center;flex-shrink:0;width:46px;height:46px;border-radius:50%;background:#867045;color:#fff;font-size:16px}
.story-author>div{display:grid;gap:4px}
.story-author strong{font-family:var(--brand-subheading);font-size:14px;font-weight:500}
.story-author>div>span{font-size:12px;color:#0C0B0A}
.story-platform{margin-left:auto;width:26px;height:18px;object-fit:contain}
#reviews .story-card h3{font-family:var(--brand-heading)!important;font-size:30px;line-height:1.12;letter-spacing:-.015em;font-weight:400;margin:0 0 18px;min-height:68px}
#reviews .story-summary{font-size:14px;line-height:1.85;margin:0 0 26px}
#reviews .story-full{border:0;padding:0;margin:auto 0 0}
#reviews .story-full summary{display:flex;justify-content:space-between;align-items:center;gap:10px;cursor:pointer;list-style:none;font-size:12px;color:#70592f;padding:8px 0 18px}
.story-full summary::-webkit-details-marker{display:none}
.story-full summary svg{width:18px;height:18px;flex-shrink:0}
.story-full[open] summary svg{transform:rotate(180deg)}
#reviews .story-original{padding:0 0 16px}
#reviews .story-original p{font-size:13px;line-height:1.8;margin:0 0 16px;overflow-wrap:anywhere}
#reviews .story-original .story-language{font-size:11px;color:#0C0B0A}
.story-source-link{display:flex;align-items:center;justify-content:space-between;gap:15px;padding-top:18px;border-top:1px solid #c9bda5;font-size:12px;color:#70592f;text-decoration:none}
.story-source-link svg{width:20px;height:20px;flex-shrink:0}
.story-source-link:hover{text-decoration:underline}
.stories-controls{display:flex;justify-content:space-between;align-items:center;gap:24px;margin-top:28px}
.stories-show-all{padding:14px 22px;min-height:48px;border:1px solid #867045;border-radius:15px;background:transparent;color:#70592f;font-size:12px;cursor:pointer}
.stories-show-all:hover{background:#867045;color:white}
.stories-pagination{display:flex;align-items:center;gap:18px}
.story-arrow{display:grid;place-items:center;width:44px;height:44px;padding:0;border:1px solid #867045;background:transparent;color:#867045;border-radius:50%;cursor:pointer}
.story-arrow svg{width:22px;height:22px}
.story-arrow:hover{background:#867045;color:white}
.stories-page{font-size:11px;letter-spacing:.12em;min-width:48px;text-align:center;color:#70592f}
#reviews .stories-note{font-size:10px;line-height:1.8;color:#0C0B0A;margin:24px 0 0;max-width:880px}
@media(min-width:761px) and (max-width:1050px){.stories-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.stories-heading{gap:24px}.tripadvisor-brand>span{font-size:22px}}
@media(max-width:760px){main > #reviews.guest-stories{padding:52px 24px}.stories-heading{display:block;margin-bottom:28px}#reviews h2{font-size:38px}.tripadvisor-brand{margin-top:26px;gap:5px;width:fit-content}.tripadvisor-brand>span{font-size:22px}.tripadvisor-brand small{font-size:12px}.stories-grid{grid-template-columns:1fr;gap:22px}.story-card{padding:24px;min-height:0}#reviews .story-card h3{min-height:0;font-size:30px}.stories-controls{flex-wrap:wrap;gap:20px}.stories-pagination{margin-left:auto}.story-author{gap:12px}#reviews .story-summary{font-size:14px}#reviews .stories-note{font-size:10px}}
/* User-selected brown review section with readable cream cards. */
main > #reviews.guest-stories{background:#322B1E;color:#F2ECE1}
#reviews .stories-heading h2{color:#F2ECE1}
#reviews .stories-eyebrow,#reviews .tripadvisor-brand small,#reviews .stories-note{color:#DEC99C}
#reviews .tripadvisor-brand>span{color:#F2ECE1}
#reviews .tripadvisor-brand img{filter:brightness(0) invert(1)}
#reviews .story-card{background:#F2ECE1;color:#0C0B0A}
#reviews .stories-show-all,#reviews .story-arrow,#reviews .stories-page{color:#DEC99C}
#reviews .stories-show-all,#reviews .story-arrow{border-color:#DEC99C}
#reviews .stories-show-all:hover,#reviews .story-arrow:hover{background:#867045;color:#fff;border-color:#867045}

/* Full Italian translations; long reviews disclose the remaining paragraphs. */
#reviews .story-translation p{font-size:14px;line-height:1.85;margin:0 0 18px}
#reviews .story-translation-complete{margin-bottom:auto}
#reviews .story-read-less{display:none}
#reviews .story-full[open] .story-read-more{display:none}
#reviews .story-full[open] .story-read-less{display:inline}
#reviews .story-original p{font-size:14px}
#reviews .story-card h3{min-height:0}
#reviews .stories-grid{align-items:stretch}

/* Equal review cards and bilingual full-review dialog. */
#reviews .story-card{height:500px;min-height:0;overflow:hidden}
#reviews .story-card h3{font-size:27px;line-height:1.18;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3;overflow:hidden;flex-shrink:0}
#reviews .story-excerpt{font-size:14px;line-height:1.85;margin:0 0 24px;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:6;overflow:hidden}
#reviews .story-open{margin-top:auto;width:100%;padding:14px 16px;border:1px solid #867045;border-radius:15px;background:#867045;color:#fff;font-size:12px;cursor:pointer;flex-shrink:0}
#reviews .story-open:hover{filter:brightness(.92)}
.review-dialog{width:min(780px,calc(100% - 32px));background:#F2ECE1;color:#0C0B0A;border:1px solid #c9bda5;border-radius:16px;padding:34px;max-height:88dvh}
.review-dialog-top{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:24px}
.review-dialog-author{font-size:13px;color:#70592f}
.review-dialog-close{display:flex;align-items:center;gap:12px;border:1px solid #867045;border-radius:15px;background:transparent;color:#0C0B0A;padding:10px 14px;cursor:pointer;font-size:12px;flex-shrink:0}
.review-dialog-close span{font-size:22px;line-height:1}
.review-language-tabs{display:flex;gap:24px;border-bottom:1px solid #c9bda5;margin-bottom:26px}
.review-language-tabs button{border:0;border-bottom:2px solid transparent;background:transparent;color:#0C0B0A;padding:12px 4px;font-size:14px;cursor:pointer}
.review-language-tabs button[aria-selected=true]{border-bottom-color:#867045;color:#70592f}
.review-dialog h2{font-size:36px;line-height:1.14;margin:0 0 24px}
.review-dialog [role=tabpanel] p{font-size:15px;line-height:1.85;margin:0 0 20px}
.review-dialog [role=tabpanel] .review-source-note{font-size:12px;color:#70592f;border-left:2px solid #867045;padding-left:14px}
@media(max-width:760px){#reviews .story-card{height:500px}.review-dialog{padding:24px;max-height:90dvh}.review-dialog h2{font-size:30px}.review-dialog-author{font-size:12px}.review-dialog-top{gap:12px}.review-dialog [role=tabpanel] p{font-size:14px}}
/* Reviews use the same type sizes as adjacent section headings, package titles and CTAs. */
#reviews h2{font-size:clamp(36px,4vw,58px);line-height:1.08}
#reviews .story-card{height:560px}
#reviews .story-card h3{font-size:clamp(21px,2vw,28px);line-height:1.4}
#reviews .story-excerpt{font-size:16px;line-height:1.9;-webkit-line-clamp:5}
#reviews .story-open,#reviews .stories-show-all{font-size:16px;line-height:1.5}
.review-dialog h2{font-size:40px;line-height:1.25}
.review-dialog [role=tabpanel] p{font-size:16px;line-height:1.9}
.review-dialog-close,.review-language-tabs button{font-size:16px;line-height:1.5}
@media(max-width:760px){#reviews h2{font-size:38px}#reviews .story-card h3{font-size:24px}#reviews .story-card{height:560px}.review-dialog h2{font-size:32px}.review-dialog [role=tabpanel] p{font-size:16px}}

/* Tripadvisor-style green rating bubbles, using verified individual scores. */
#reviews .story-author{margin-bottom:16px}
#reviews .story-rating{display:flex;align-items:center;gap:10px;color:#00875a;margin:0 0 16px;flex-shrink:0}
#reviews .story-rating svg{display:block;width:108px;height:20px}
#reviews .story-rating span{font-size:12px;line-height:20px}

/* Direct enquiry action after guest reviews. */
.stories-actions{display:flex;align-items:center;flex-wrap:wrap;gap:16px}
#reviews .stories-enquire{background:#867045;color:#fff;border:1px solid #867045;border-radius:15px;font-family:var(--brand-subheading);font-size:16px;line-height:1.5;padding:14px 22px;min-height:48px;text-align:center;text-decoration:none}
#reviews .stories-enquire:hover{filter:brightness(.92)}
@media(max-width:760px){.stories-actions{width:100%}#reviews .stories-enquire,#reviews .stories-show-all{width:100%}}

.review-dialog-action{margin-top:28px;padding-top:24px;border-top:1px solid #c9bda5}
.review-dialog .review-dialog-enquire{background:#867045;color:#fff;border:1px solid #867045;border-radius:15px;font-size:16px;line-height:1.5;padding:14px 22px;cursor:pointer}
.review-dialog .review-dialog-enquire:hover{filter:brightness(.92)}
@media(max-width:760px){.review-dialog .review-dialog-enquire{width:100%}}
/* More readable review translation note. */
#reviews .stories-note{font-size:13px;line-height:1.8}
/* Center the translation note at the foot of the review section. */
#reviews .stories-note{max-width:none;width:100%;text-align:center;margin:64px auto 0}

/* Safari inclusions: editorial cream and antique gold. */
.safari-details{background:#F2ECE1;color:#0C0B0A;padding:88px 5.8% 72px;}
.safari-details-shell{max-width:1280px;margin:auto;}
.safari-details-heading{display:flex;justify-content:space-between;align-items:flex-end;gap:48px;padding-bottom:40px;}
.safari-details .safari-details-eyebrow{font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:#867045;margin:0 0 20px;}
.safari-details h2{font-size:clamp(36px,4vw,58px);line-height:1.12;font-weight:400;margin:0;}
.safari-details-heading>p{max-width:330px;font-size:16px;line-height:1.9;margin:0;}
.safari-details-columns{display:grid;grid-template-columns:1fr 1fr;border-top:1px solid #86704566;padding:36px 0;}
.safari-details-column{padding-right:48px;}
.safari-details-column+.safari-details-column{border-left:1px solid #86704566;padding:0 0 0 48px;}
.safari-details h3{display:flex;align-items:center;gap:16px;font-size:28px;font-weight:400;margin:0 0 30px;}
.safari-details h3>span{display:grid;place-items:center;flex:0 0 36px;height:36px;border:1px solid #867045;border-radius:50%;color:#867045;font-size:22px;}
.safari-details ul{list-style:none;padding:0;margin:0;display:grid;gap:24px;}
.safari-details li{display:flex;gap:16px;}
.safari-detail-mark{color:#867045;font-size:18px;flex:0 0 20px;line-height:1.6;}
.safari-details h4{font-size:16px;line-height:1.6;margin:0 0 5px;font-weight:500;}
.safari-details li p,.safari-exclusions-content>p{font-size:16px;line-height:1.8;margin:0;color:#0C0B0A;}
.safari-details-footer{border-top:1px solid #86704566;padding-top:28px;display:flex;align-items:center;justify-content:space-between;gap:32px;}
.safari-details-footer p{font-size:14px;line-height:1.8;max-width:530px;margin:0;}
.safari-details-footer .button{background:#867045;color:white;border-radius:15px;font-size:16px;display:inline-flex;gap:24px;align-items:center;flex-shrink:0;}
@media(max-width:700px){.safari-details{padding:56px 24px;}.safari-details-heading{display:block;padding-bottom:28px;}.safari-details-heading>p{margin-top:24px;}.safari-details-columns{grid-template-columns:1fr;padding:28px 0;gap:32px;}.safari-details-column{padding:0;}.safari-details-column+.safari-details-column{border-left:0;border-top:1px solid #86704566;padding:28px 0 0;}.safari-details h3{font-size:24px;}.safari-details-footer{flex-direction:column;align-items:flex-start;gap:24px;}.safari-details-footer .button{white-space:normal;max-width:100%;font-size:16px;}}

.floating-whatsapp{position:fixed;right:24px;bottom:calc(24px + env(safe-area-inset-bottom,0px));z-index:90;display:flex;align-items:center;justify-content:center;width:58px;height:58px;border-radius:50%;background:#128c4a;border:1px solid #ffffff55;box-shadow:0 4px 16px #0002;transition:background .2s,transform .2s;}
.floating-whatsapp img{width:30px;height:30px;filter:brightness(0) invert(1);}
.floating-whatsapp:hover{background:#096c36;transform:translateY(-2px);}
.floating-whatsapp:focus-visible{outline:3px solid #867045;outline-offset:4px;}
body:has(.cookie-banner:not([hidden])) .floating-whatsapp{bottom:calc(116px + env(safe-area-inset-bottom,0px));}
@media(max-width:700px){.floating-whatsapp{right:16px;bottom:calc(16px + env(safe-area-inset-bottom,0px));width:54px;height:54px;}body:has(.cookie-banner:not([hidden])) .floating-whatsapp{bottom:calc(200px + env(safe-area-inset-bottom,0px));}}

/* The enquiry form lives in the page, below the FAQ. */
#quote.enquiry-embed{scroll-margin-top:32px;background:#F2ECE1;}
#quote .enquiry-embed-inner{max-width:1180px;margin-inline:auto;}
.inline-enquiry-form{max-width:none;width:100%;margin:40px auto 24px;text-align:left;}
.inline-enquiry-form>.privacy{font-size:13px;line-height:1.8;margin:20px 0 0;}
@media(max-width:700px){.inline-enquiry-form{margin-top:28px;}#quote.enquiry-embed{scroll-margin-top:16px;}}

#faq.family-questions{background:#F2ECE1;}

/* Compact transition from FAQ to enquiry. */
main>#faq.family-questions{padding-bottom:32px;}
main>#quote.enquiry-embed{padding-top:40px;}
@media(max-width:700px){main>#faq.family-questions{padding-bottom:24px;}main>#quote.enquiry-embed{padding-top:32px;}}

#safari-details .safari-details-footer a.button,
#safari-details .safari-details-footer a.button:hover,
#safari-details .safari-details-footer a.button:focus,
#safari-details .safari-details-footer a.button span{text-decoration:none;}


