@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:wght@500;600;700&family=DM+Sans:wght@400;500;600;700;800&display=swap');

body.page-id-8667 {
    --life-exp-black:#080603;
    --life-exp-ink:#241d17;
    --life-exp-cream:#f8f1e6;
    --life-exp-cream-light:#fffaf3;
    --life-exp-sand:#eadcc8;
    --life-exp-sand-soft:#f3e9da;
    --life-exp-gold:#d99a42;
    --life-exp-gold-light:#e7b568;
    --life-exp-gold-dark:#b87528;
    --life-exp-muted:#74695f;
    --life-exp-line:rgba(36,29,23,.12);
    --life-exp-line-strong:rgba(36,29,23,.18);
    --life-exp-serif:"Cormorant Garamond",Georgia,serif;
    --life-exp-sans:"DM Sans",Arial,Helvetica,sans-serif;
}

/* Experiences is a managed page. Uncap only this page so the editorial
   shortcode can own the canvas without 100vw/negative-margin tricks. */
body.page-id-8667 .site-content,
body.page-id-8667 .site-content > .ast-container,
body.page-id-8667 .ast-container,
body.page-id-8667 #primary,
body.page-id-8667 .site-main,
body.page-id-8667 .entry-content,
body.page-id-8667 .fl-builder-content-8667,
body.page-id-8667 .fl-builder-content-8667 > .fl-row,
body.page-id-8667 .fl-builder-content-8667 > .fl-row > .fl-row-content-wrap,
body.page-id-8667 .fl-builder-content-8667 .fl-row-content,
body.page-id-8667 .fl-builder-content-8667 .fl-col-group,
body.page-id-8667 .fl-builder-content-8667 .fl-col,
body.page-id-8667 .fl-builder-content-8667 .fl-col-content,
body.page-id-8667 .fl-builder-content-8667 .fl-module,
body.page-id-8667 .fl-builder-content-8667 .fl-module-content {
    width:100% !important;
    max-width:none !important;
    margin-left:0 !important;
    margin-right:0 !important;
    padding-left:0 !important;
    padding-right:0 !important;
}

.life-exp-editorial,
.life-exp-editorial *,
.life-exp-editorial *::before,
.life-exp-editorial *::after { box-sizing:border-box; }

.life-exp-editorial {
    width:100%;
    overflow-x:clip;
    background:var(--life-exp-cream-light);
    color:var(--life-exp-ink);
    font-family:var(--life-exp-sans);
    -webkit-font-smoothing:antialiased;
}

.life-exp-editorial img { display:block; max-width:100%; }
.life-exp-editorial a { text-decoration:none !important; }

.life-exp-editorial__shell {
    width:min(1440px,calc(100% - 48px));
    margin:0 auto;
}

.life-exp-editorial__eyebrow {
    display:inline-flex;
    align-items:center;
    gap:13px;
    margin:0 0 15px;
    color:var(--life-exp-gold-dark);
    font-size:9px;
    line-height:1;
    font-weight:900;
    letter-spacing:.22em;
    text-transform:uppercase;
}
.life-exp-editorial__eyebrow::before { content:""; width:34px; height:1px; background:currentColor; }

.life-exp-editorial__title {
    margin:0 !important;
    color:var(--life-exp-ink) !important;
    font-family:var(--life-exp-serif) !important;
    font-size:clamp(48px,5.1vw,78px) !important;
    line-height:.94 !important;
    font-weight:600 !important;
    letter-spacing:-.04em !important;
    text-wrap:balance;
    word-break:normal !important;
    overflow-wrap:normal !important;
    hyphens:none !important;
}
.life-exp-editorial__title span { color:var(--life-exp-gold-dark); }

/* ============================================================
   HERO
   ============================================================ */
.life-exp-editorial__hero {
    position:relative;
    min-height:max(650px,79svh);
    overflow:hidden;
    background:var(--life-exp-black);
    color:var(--life-exp-cream);
}
.life-exp-editorial__hero-image { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:center; }
.life-exp-editorial__hero-shade {
    position:absolute; inset:0;
    background:linear-gradient(90deg,rgba(8,6,3,.82) 0%,rgba(8,6,3,.46) 44%,rgba(8,6,3,.08) 76%),linear-gradient(0deg,rgba(8,6,3,.68),transparent 48%);
}
.life-exp-editorial__hero-inner {
    position:relative; z-index:2;
    width:min(1440px,calc(100% - 48px));
    min-height:max(650px,79svh);
    margin:0 auto;
    padding:158px 0 76px;
    display:flex;
    align-items:flex-end;
}
.life-exp-editorial__hero-content { width:min(850px,75%); }
.life-exp-editorial__hero .life-exp-editorial__eyebrow { color:rgba(248,241,230,.76); }
.life-exp-editorial__hero .life-exp-editorial__eyebrow::before { background:var(--life-exp-gold); }
.life-exp-editorial__hero h1 {
    max-width:9.2ch;
    margin:0 !important;
    color:var(--life-exp-cream) !important;
    font-family:var(--life-exp-serif) !important;
    font-size:clamp(64px,8.2vw,116px) !important;
    line-height:.82 !important;
    font-weight:600 !important;
    letter-spacing:-.05em !important;
}
.life-exp-editorial__hero h1 span { color:var(--life-exp-gold); }
.life-exp-editorial__hero p { max-width:570px; margin:24px 0 0 !important; color:rgba(248,241,230,.74) !important; font-size:clamp(15px,1.35vw,18px) !important; line-height:1.7 !important; }

/* ============================================================
   CHOOSE YOUR EXPERIENCE INTRO
   Compact and directly connected to the catalogue.
   ============================================================ */
.life-exp-editorial__intro {
    padding:clamp(58px,5.5vw,78px) 0 28px;
    background:var(--life-exp-cream-light);
}
.life-exp-editorial__intro-grid {
    display:grid;
    grid-template-columns:minmax(0,1fr) minmax(330px,.7fr);
    gap:clamp(30px,5vw,66px);
    align-items:start;
}
.life-exp-editorial__intro .life-exp-editorial__title { max-width:12ch; }
.life-exp-editorial__intro-copy {
    max-width:560px;
    margin:28px 0 0 !important;
    color:var(--life-exp-muted) !important;
    font-size:14px !important;
    line-height:1.7 !important;
}

/* ============================================================
   CATALOGUE
   ============================================================ */
.life-exp-editorial__catalogue-section {
    padding:20px 0 clamp(78px,7vw,104px);
    background:var(--life-exp-cream-light);
}
.life-exp-editorial__native {
    width:min(1440px,calc(100% - 48px));
    margin:0 auto;
}
.life-exp-editorial__native .life-exp-enhanced-grid {
    display:grid !important;
    grid-template-columns:repeat(2,minmax(0,1fr)) !important;
    column-gap:24px !important;
    row-gap:30px !important;
    width:100% !important;
    max-width:none !important;
    margin:0 !important;
    padding:0 !important;
    align-items:stretch !important;
}
.life-exp-editorial__native .life-exp-uncap {
    width:100% !important;
    max-width:none !important;
    margin-left:0 !important;
    margin-right:0 !important;
}

.life-exp-group-heading {
    grid-column:1/-1;
    display:grid;
    grid-template-columns:42px minmax(0,1fr) minmax(260px,.58fr);
    gap:18px;
    align-items:end;
    margin:8px 0 2px;
    padding:30px 0 22px;
    border-bottom:1px solid var(--life-exp-line-strong);
}
.life-exp-group-heading--resort {
    margin-top:30px;
    padding-top:38px;
    border-top:1px solid rgba(184,117,40,.25);
}
.life-exp-group-heading__number {
    padding-bottom:5px;
    color:var(--life-exp-gold-dark);
    font-family:var(--life-exp-serif);
    font-size:24px;
    line-height:1;
    font-weight:600;
}
.life-exp-group-heading__kicker {
    display:block;
    margin-bottom:8px;
    color:var(--life-exp-gold-dark);
    font-size:8px;
    line-height:1;
    font-weight:900;
    letter-spacing:.18em;
    text-transform:uppercase;
}
.life-exp-group-heading h2 {
    margin:0 !important;
    color:var(--life-exp-ink) !important;
    font-family:var(--life-exp-serif) !important;
    font-size:clamp(36px,3.8vw,54px) !important;
    line-height:.96 !important;
    font-weight:600 !important;
    letter-spacing:-.035em !important;
}
.life-exp-group-heading p {
    max-width:480px;
    margin:0 0 3px !important;
    color:var(--life-exp-muted) !important;
    font-size:12px !important;
    line-height:1.6 !important;
}

/* ============================================================
   EXPERIENCE CARDS
   ============================================================ */
.life-exp-editorial__native .life-exp-card {
    position:relative !important;
    min-width:0 !important;
    min-height:300px !important;
    margin:0 !important;
    padding:0 !important;
    overflow:hidden !important;
    border:1px solid var(--life-exp-line) !important;
    border-radius:15px !important;
    background:#fffdf9 !important;
    color:var(--life-exp-ink) !important;
    box-shadow:0 12px 34px rgba(36,29,23,.045) !important;
    transition:transform .25s ease,border-color .25s ease,box-shadow .25s ease !important;
}
.life-exp-editorial__native .life-exp-card:hover {
    transform:translateY(-3px);
    border-color:rgba(184,117,40,.28) !important;
    box-shadow:0 22px 54px rgba(36,29,23,.085) !important;
}
.life-exp-editorial__native .life-exp-card--resort {
    background:#fffaf3 !important;
    border-color:rgba(184,117,40,.18) !important;
}
.life-exp-editorial__native .life-exp-card--booking-open {
    grid-column:1/-1 !important;
    transform:none !important;
    border-color:rgba(184,117,40,.30) !important;
    box-shadow:0 22px 60px rgba(36,29,23,.09) !important;
}

/* Native experience image remains the image. We only define its frame. */
.life-exp-editorial__native .life-exp-card > img,
.life-exp-editorial__native .life-exp-card picture > img,
.life-exp-editorial__native .life-exp-card [class*="image"] > img,
.life-exp-editorial__native .life-exp-card [class*="media"] > img {
    display:block !important;
    width:100% !important;
    max-width:100% !important;
    height:auto !important;
    aspect-ratio:16/8.5;
    margin:0 !important;
    object-fit:cover !important;
    object-position:center !important;
    border:0 !important;
    border-radius:0 !important;
}

/* Card content spacing is added to the native content wrapper by JS when it
   can identify one. If not, text elements retain safe individual margins. */
.life-exp-editorial__native .life-exp-card-content {
    padding:clamp(26px,2.8vw,38px) !important;
}
.life-exp-editorial__native .life-exp-card-title {
    max-width:18ch !important;
    margin:0 !important;
    color:var(--life-exp-ink) !important;
    font-family:var(--life-exp-serif) !important;
    font-size:clamp(36px,3.25vw,49px) !important;
    line-height:.96 !important;
    font-weight:600 !important;
    letter-spacing:-.035em !important;
    word-break:normal !important;
    overflow-wrap:normal !important;
    hyphens:none !important;
}
.life-exp-editorial__native .life-exp-status {
    display:inline-flex !important;
    align-items:center;
    width:max-content;
    max-width:100%;
    min-height:28px;
    margin:0 0 14px !important;
    padding:0 10px !important;
    border:1px solid rgba(184,117,40,.18);
    border-radius:999px !important;
    background:rgba(217,154,66,.09);
    color:var(--life-exp-gold-dark) !important;
    font-family:var(--life-exp-sans) !important;
    font-size:7px !important;
    line-height:1 !important;
    font-weight:900 !important;
    letter-spacing:.15em !important;
    text-transform:uppercase !important;
}
.life-exp-editorial__native .life-exp-price {
    display:block !important;
    margin:13px 0 0 !important;
    color:var(--life-exp-ink) !important;
    font-family:var(--life-exp-serif) !important;
    font-size:23px !important;
    line-height:1 !important;
    font-weight:600 !important;
}
.life-exp-editorial__native .life-exp-description {
    max-width:62ch;
    margin:17px 0 0 !important;
    color:var(--life-exp-muted) !important;
    font-family:var(--life-exp-sans) !important;
    font-size:12px !important;
    line-height:1.65 !important;
}
.life-exp-editorial__native .life-exp-primary-cta {
    display:flex !important;
    width:100% !important;
    min-height:50px !important;
    margin-top:22px !important;
    padding:0 20px !important;
    align-items:center !important;
    justify-content:center !important;
    border:1px solid var(--life-exp-gold-dark) !important;
    border-radius:8px !important;
    background:var(--life-exp-gold-dark) !important;
    color:#fffaf1 !important;
    box-shadow:none !important;
    font-family:var(--life-exp-sans) !important;
    font-size:9px !important;
    line-height:1 !important;
    font-weight:900 !important;
    letter-spacing:.11em !important;
    text-transform:uppercase !important;
    transition:background .2s ease,border-color .2s ease,transform .2s ease !important;
}
.life-exp-editorial__native .life-exp-primary-cta:hover {
    transform:translateY(-1px);
    border-color:var(--life-exp-gold) !important;
    background:var(--life-exp-gold) !important;
    color:#211508 !important;
}

/* ============================================================
   EXPERIENCE BOOKING / REQUEST FORM
   This deliberately styles the form now. It does not change names,
   values, actions, validation, hidden inputs or server-side logic.
   ============================================================ */
.life-exp-editorial__native .life-exp-booking-form {
    position:relative !important;
    width:100% !important;
    max-width:none !important;
    margin:24px 0 0 !important;
    padding:clamp(22px,2.5vw,32px) !important;
    border:1px solid rgba(184,117,40,.18) !important;
    border-radius:12px !important;
    background:
        linear-gradient(135deg,rgba(217,154,66,.08),transparent 42%),
        var(--life-exp-sand-soft) !important;
    box-shadow:none !important;
    color:var(--life-exp-ink) !important;
    font-family:var(--life-exp-sans) !important;
}
.life-exp-editorial__native .life-exp-booking-form::before {
    content:"Choose your details";
    display:block;
    margin:0 0 18px;
    color:var(--life-exp-gold-dark);
    font-size:8px;
    line-height:1;
    font-weight:900;
    letter-spacing:.18em;
    text-transform:uppercase;
}
.life-exp-editorial__native .life-exp-booking-form fieldset {
    min-width:0 !important;
    margin:0 !important;
    padding:0 !important;
    border:0 !important;
}
.life-exp-editorial__native .life-exp-booking-form label,
.life-exp-editorial__native .life-exp-booking-label {
    display:block;
    margin:0 0 7px !important;
    color:#756759 !important;
    font-family:var(--life-exp-sans) !important;
    font-size:8px !important;
    line-height:1.25 !important;
    font-weight:900 !important;
    letter-spacing:.14em !important;
    text-transform:uppercase !important;
}

.life-exp-editorial__native .life-exp-booking-form input:not([type="hidden"]):not([type="submit"]):not([type="button"]):not([type="checkbox"]):not([type="radio"]),
.life-exp-editorial__native .life-exp-booking-form select,
.life-exp-editorial__native .life-exp-booking-form textarea {
    width:100% !important;
    max-width:100% !important;
    min-height:52px !important;
    margin:0 !important;
    padding:0 15px !important;
    border:1px solid rgba(36,29,23,.14) !important;
    border-radius:8px !important;
    outline:0 !important;
    background:#fffdf9 !important;
    color:var(--life-exp-ink) !important;
    box-shadow:none !important;
    font-family:var(--life-exp-serif) !important;
    font-size:17px !important;
    line-height:1.25 !important;
    font-weight:600 !important;
    transition:border-color .2s ease,box-shadow .2s ease,background .2s ease !important;
}
.life-exp-editorial__native .life-exp-booking-form textarea {
    min-height:112px !important;
    padding-top:13px !important;
    resize:vertical;
}
.life-exp-editorial__native .life-exp-booking-form select {
    padding-right:42px !important;
    appearance:none;
    background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18' viewBox='0 0 24 24' fill='none' stroke='%23b87528' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E") !important;
    background-repeat:no-repeat !important;
    background-position:right 14px center !important;
    background-size:18px !important;
}
.life-exp-editorial__native .life-exp-booking-form input[type="date"] {
    color-scheme:light;
}
.life-exp-editorial__native .life-exp-booking-form input:not([type="hidden"]):not([type="submit"]):not([type="button"]):not([type="checkbox"]):not([type="radio"]):focus,
.life-exp-editorial__native .life-exp-booking-form select:focus,
.life-exp-editorial__native .life-exp-booking-form textarea:focus {
    border-color:rgba(184,117,40,.58) !important;
    background:#fff !important;
    box-shadow:0 0 0 3px rgba(217,154,66,.10) !important;
}
.life-exp-editorial__native .life-exp-booking-form input::placeholder,
.life-exp-editorial__native .life-exp-booking-form textarea::placeholder {
    color:#9a8c7e !important;
    opacity:1 !important;
}
.life-exp-editorial__native .life-exp-booking-form input[type="checkbox"],
.life-exp-editorial__native .life-exp-booking-form input[type="radio"] {
    accent-color:var(--life-exp-gold-dark);
}
.life-exp-editorial__native .life-exp-booking-form button[type="submit"],
.life-exp-editorial__native .life-exp-booking-form input[type="submit"],
.life-exp-editorial__native .life-exp-booking-submit {
    display:inline-flex !important;
    align-items:center !important;
    justify-content:center !important;
    min-height:52px !important;
    margin-top:8px !important;
    padding:0 22px !important;
    border:1px solid var(--life-exp-gold-dark) !important;
    border-radius:8px !important;
    background:var(--life-exp-gold-dark) !important;
    color:#fffaf1 !important;
    box-shadow:none !important;
    font-family:var(--life-exp-sans) !important;
    font-size:9px !important;
    line-height:1 !important;
    font-weight:900 !important;
    letter-spacing:.12em !important;
    text-transform:uppercase !important;
    cursor:pointer;
}
.life-exp-editorial__native .life-exp-booking-form button[type="submit"]:hover,
.life-exp-editorial__native .life-exp-booking-form input[type="submit"]:hover,
.life-exp-editorial__native .life-exp-booking-submit:hover {
    border-color:var(--life-exp-gold) !important;
    background:var(--life-exp-gold) !important;
    color:#211508 !important;
}

/* Field wrappers are classified by JS, but their native hierarchy remains in
   place. This just normalises breathing room instead of rebuilding the form. */
.life-exp-editorial__native .life-exp-booking-field {
    min-width:0 !important;
    margin-bottom:13px !important;
}
.life-exp-editorial__native .life-exp-booking-field:last-child {
    margin-bottom:0 !important;
}

/* Common totals / availability messages, only when JS identifies them by text. */
.life-exp-editorial__native .life-exp-booking-summary {
    margin:16px 0 0 !important;
    padding:15px 0 0 !important;
    border-top:1px solid rgba(36,29,23,.12) !important;
    color:var(--life-exp-muted) !important;
    font-size:11px !important;
    line-height:1.6 !important;
}
.life-exp-editorial__native .life-exp-booking-summary strong,
.life-exp-editorial__native .life-exp-booking-summary b {
    color:var(--life-exp-ink) !important;
    font-family:var(--life-exp-serif) !important;
    font-size:22px !important;
    font-weight:600 !important;
}
.life-exp-editorial__native .life-exp-booking-error {
    margin:12px 0 0 !important;
    padding:11px 13px !important;
    border:1px solid rgba(168,84,54,.18) !important;
    border-radius:7px !important;
    background:rgba(168,84,54,.06) !important;
    color:#8d452f !important;
    font-size:11px !important;
    line-height:1.5 !important;
}

/* ============================================================
   CLOSING
   ============================================================ */
.life-exp-editorial__closing { padding:clamp(62px,6.5vw,88px) 0; background:var(--life-exp-black); }
.life-exp-editorial__closing-inner { text-align:center; }
.life-exp-editorial__closing .life-exp-editorial__eyebrow { color:var(--life-exp-gold); }
.life-exp-editorial__closing h2 { max-width:840px; margin:0 auto !important; color:var(--life-exp-cream) !important; font-family:var(--life-exp-serif) !important; font-size:clamp(46px,5.6vw,80px) !important; line-height:.92 !important; font-weight:600 !important; letter-spacing:-.044em !important; }
.life-exp-editorial__closing h2 span { color:var(--life-exp-gold); }
.life-exp-editorial__closing p { max-width:52ch; margin:20px auto 0 !important; color:rgba(248,241,230,.58) !important; font-size:14px !important; line-height:1.72 !important; }
.life-exp-editorial__button { display:inline-flex; min-height:50px; margin-top:27px; padding:0 23px; align-items:center; justify-content:center; border:1px solid var(--life-exp-gold-dark); border-radius:8px; background:var(--life-exp-gold-dark); color:#fffaf1 !important; font-size:9px; line-height:1; font-weight:900; letter-spacing:.13em; text-transform:uppercase; }

.life-exp-editorial-error { margin:30px auto; width:min(900px,calc(100% - 40px)); padding:20px; border:1px solid #c44; background:#fff; color:#600; }

@media (max-width:960px) {
    .life-exp-editorial__intro-grid { grid-template-columns:1fr; gap:18px; }
    .life-exp-editorial__intro-copy { margin-top:0 !important; }
    .life-exp-group-heading { grid-template-columns:40px minmax(0,1fr); }
    .life-exp-group-heading > p,
    .life-exp-group-heading > div:last-child > p { grid-column:2; }
}

@media (max-width:700px) {
    .life-exp-editorial__shell,
    .life-exp-editorial__hero-inner,
    .life-exp-editorial__native { width:calc(100% - 28px); }
    .life-exp-editorial__hero,
    .life-exp-editorial__hero-inner { min-height:650px; }
    .life-exp-editorial__hero-inner { padding:138px 0 68px; }
    .life-exp-editorial__hero-content { width:100%; }
    .life-exp-editorial__hero h1 { max-width:8.5ch; font-size:clamp(58px,18vw,82px) !important; }
    .life-exp-editorial__native .life-exp-enhanced-grid { grid-template-columns:1fr !important; gap:18px !important; }
    .life-exp-group-heading { grid-template-columns:28px minmax(0,1fr); gap:9px; padding:24px 0 16px; }
    .life-exp-group-heading--resort { margin-top:24px; }
    .life-exp-group-heading__number { font-size:18px; }
    .life-exp-group-heading h2 { font-size:37px !important; }
    .life-exp-editorial__native .life-exp-card { min-height:0 !important; border-radius:12px !important; }
    .life-exp-editorial__native .life-exp-card-content { padding:22px !important; }
    .life-exp-editorial__native .life-exp-card-title { font-size:35px !important; }
    .life-exp-editorial__native .life-exp-card--booking-open { grid-column:auto !important; }
    .life-exp-editorial__native .life-exp-booking-form { margin-top:19px !important; padding:20px !important; border-radius:10px !important; }
    .life-exp-editorial__native .life-exp-booking-form input:not([type="hidden"]):not([type="submit"]):not([type="button"]):not([type="checkbox"]):not([type="radio"]),
    .life-exp-editorial__native .life-exp-booking-form select,
    .life-exp-editorial__native .life-exp-booking-form textarea { min-height:50px !important; font-size:16px !important; }
    .life-exp-editorial__native .life-exp-booking-form button[type="submit"],
    .life-exp-editorial__native .life-exp-booking-form input[type="submit"] { width:100% !important; }
}
