:root {
  --gold:      #d79a3d;
  --gold-deep: #d79a3d;
  --gold-soft: #f5e0b8;
  --cream:     #FFFFFF;
  --cream-2:   #FFFFFF;
  --ink:       #141414;
  --ink-soft:  #5a5a5a;
  --navy:      #141414;
  --dark:      #122840;
  --white:     #FAF5F0;
  --maxw:      1200px;
}
*, *::before, *::after { margin:0; padding:0; box-sizing:border-box; }
html { scroll-behavior:smooth; overflow-x:clip; width:100%; }
body { font-family:'DM Sans',sans-serif; color:var(--ink); background:var(--cream); -webkit-font-smoothing:antialiased; overflow-x:clip; width:100%; }
html.nav-locked { overflow:hidden; height:100%; }
body.nav-locked { position:fixed; width:100%; overflow:hidden; touch-action:none; }
/* Desktop-only scroll lock (used for the hotel "See Images" panel on
   desktop): plain overflow:hidden, no position:fixed, so it doesn't disturb
   position:sticky elements like the page-nav tab bar. */
html.desktop-scroll-locked, body.desktop-scroll-locked { overflow:hidden; }
h1,h2,h3,h4 { font-family:'Playfair Display',serif; color:var(--navy); }
img { max-width:100%; display:block; }
a { color:inherit; text-decoration:none; }
ul { list-style:none; }

/* BUTTONS */
.btn-lux { display:inline-flex; align-items:center; gap:10px; font-family:'DM Sans',sans-serif; font-weight:400; font-size:.8rem; letter-spacing:.14em; text-transform:uppercase; padding:15px 36px; border:1px solid rgba(20,20,20,.4); background:transparent; color:var(--ink); cursor:pointer; position:relative; overflow:hidden; transition:color .35s; }
.btn-lux::after { content:''; position:absolute; inset:0; background:var(--ink); transform:scaleX(0); transform-origin:left; transition:transform .4s cubic-bezier(.77,0,.175,1); z-index:0; }
.btn-lux:hover::after { transform:scaleX(1); }
.btn-lux span { position:relative; z-index:1; transition:color .35s; }
.btn-lux:hover span { color:#fff; }
.btn-solid { background:var(--gold); color:#fff; border-color:var(--gold); }
.btn-solid span { color:#fff; }
.btn-solid::after { background:var(--gold-deep); }

/* NAV */
header.nav { position:fixed; top:0; left:0; right:0; z-index:100; padding:30px 0; transition:padding .4s, background .4s, border-color .4s; border-bottom:none; background:transparent; }
/* Keep the top nav bar visible above the hotel panel's dark overlay (the
   overlay only darkens the page content behind it, not the header). */
header.nav.above-modal { z-index:1200; }
header.nav.scrolled { padding:16px 0; background:var(--cream); backdrop-filter:blur(14px); border-bottom:none; }
.nav-inner { display:flex; align-items:center; max-width:1120px; margin:0 auto; padding:0 52px; }
.nav-logo-center { text-align:left; flex-shrink:0; }
@media (min-width:761px) { .nav-logo-center { margin-right:44px; } }
.logo-lux { font-family:'Playfair Display',serif; font-weight:500; font-size:1.5rem; letter-spacing:8px; text-transform:uppercase; color:#fff; transition:color .3s; }
header.nav.scrolled .logo-lux { color:#141414; }
.logo-lux .nav-logo-img { display: block; height: 38px; width: auto; }
.nav-left { display:flex; align-items:center; flex-wrap:nowrap; }
@media (min-width:761px) { .nav-left { gap:26px; margin-left:auto; } }
.nav-links { display:flex; align-items:center; gap:0; max-width:0; margin-right:0; overflow:hidden; opacity:0; flex-wrap:nowrap; transform:translateX(16px); transition:max-width .42s cubic-bezier(.77,0,.175,1), opacity .3s ease, transform .42s cubic-bezier(.77,0,.175,1), gap .42s, margin-right .42s; }
.nav-links.open { max-width:640px; opacity:1; transform:translateX(0); gap:26px; margin-right:20px; }
.mobile-nav-panel, .nav-overlay { display:none; }
.nav-links a { font-family:'DM Sans',sans-serif; font-weight:300; font-size:.95rem; letter-spacing:.01em; text-transform:none; display:inline-flex; flex-direction:column; align-items:center; color:rgba(255,255,255,.85); transition:color .2s; position:relative; white-space:nowrap; flex-shrink:0; }
.nav-links a::before { content:attr(data-text); font-weight:500; height:0; overflow:hidden; visibility:hidden; display:block; pointer-events:none; }
.nav-links a:hover { color:#fff; font-weight:400; }
header.nav.scrolled .nav-links a { color:var(--ink-soft); }
header.nav.scrolled .nav-links a:hover { color:var(--ink); }
.nav-cta { font-family:'DM Sans',sans-serif; font-size:.8rem; letter-spacing:.14em; text-transform:uppercase; color:#fff; padding:12px 28px; border:1px solid rgba(255,255,255,.5); border-radius:0; position:relative; overflow:hidden; transition:color .35s, border-color .35s; white-space:nowrap; flex-shrink:0; text-decoration:none; }
.nav-cta::after { content:''; position:absolute; inset:0; background:var(--ink); transform:scaleX(0); transform-origin:left; transition:transform .4s cubic-bezier(.77,0,.175,1); z-index:0; }
.nav-cta span { position:relative; z-index:1; }
.nav-cta:hover { color:#fff; border-color:var(--ink); }
.nav-cta:hover::after { transform:scaleX(1); }
header.nav.scrolled .nav-cta { color:var(--ink); border-color:rgba(20,20,20,.4); }
header.nav.scrolled .nav-cta:hover { color:#fff; }
.nav-right { display:flex; align-items:center; gap:24px; justify-content:flex-end; flex-wrap:nowrap; }
.hamburger { display:block; background:none; border:none; cursor:pointer; padding:8px; z-index:120; }
.hamburger span { display:block; width:22px; height:1px; background:#fff; margin:6px 0; transition:.3s; }
header.nav.scrolled .hamburger span { background:var(--ink); }
.nav-back, .nav-share-btn { display:none; background:none; border:none; cursor:pointer; padding:8px; color:#fff; align-items:center; justify-content:center; transition:color .3s; }
.nav-back svg, .nav-share-btn svg { width:20px; height:20px; stroke:currentColor; fill:none; }
header.nav.scrolled .nav-back, header.nav.scrolled .nav-share-btn { color:var(--ink); }

/* HERO GALLERY */
.hero-gallery { position:relative; width:100%; aspect-ratio:16/7; min-height:260px; max-height:80vh; overflow:hidden; }
.hero-slides { display:flex; height:100%; transition:transform .85s cubic-bezier(.77,0,.175,1); }
.hero-slide { flex-shrink:0; width:100%; height:100%; }
.hero-slide-bg { width:100%; height:100%; background-size:cover; background-position:center; transition:transform 9s ease-out; }
.hero-slide-bg.zoomed { transform:scale(1.07); }
.hero-overlay { position:absolute; inset:0; background:linear-gradient(to bottom,rgba(18,40,64,.2) 0%,rgba(18,40,64,.08) 45%,rgba(18,40,64,.65) 100%); pointer-events:none; }
.hero-dots { display:none; }
.hero-dot { width:7px; height:7px; border-radius:50%; background:rgba(255,255,255,.4); border:1px solid rgba(255,255,255,.55); cursor:pointer; transition:.3s; }
.hero-dot.active { background:var(--gold); border-color:var(--gold); transform:scale(1.25); }

/* PAGE LAYOUT */
.page-layout { max-width:1120px; margin:0 auto; padding:0 52px 120px; display:grid; grid-template-columns:1fr 288px; gap:52px; align-items:start; }
.content-col { min-width:0; }
.sidebar-col { position:sticky; top:130px; padding-top:50px; }

/* BREADCRUMB */
.breadcrumb { padding:72px 0 0; font-family:'DM Sans',sans-serif; font-size:.85rem; color:var(--ink-soft); }
.breadcrumb a { color:var(--gold); transition:color .2s; }
.breadcrumb a:hover { color:var(--gold-deep); }
.breadcrumb .sep { margin:0 8px; opacity:.4; }

/* TRIP HEADER */
.trip-header { padding:50px 0 0; }
.trip-label { font-family:'DM Sans',sans-serif; font-size:.75rem; letter-spacing:4px; text-transform:uppercase; color:var(--gold); margin-bottom:10px; display:flex; align-items:center; gap:10px; flex-wrap:wrap; }
.trip-label .pipe { color:rgba(215,154,61,.35); }
.trip-title { font-family:'Playfair Display',serif; font-weight:400; font-size:clamp(1.85rem,3.2vw,2.75rem); line-height:1.1; color:var(--navy); margin-bottom:14px; }
.trip-title em { font-style:normal; color:var(--navy); }
.trip-meta { display:flex; flex-wrap:wrap; gap:6px 20px; margin-bottom:16px; }
.trip-meta-item { display:flex; align-items:center; gap:7px; font-family:'DM Sans',sans-serif; font-size:.92rem; color:var(--ink-soft); }
.trip-meta-item svg { width:14px; height:14px; stroke:var(--gold); fill:none; flex-shrink:0; }
.trip-tagline { font-family:'DM Sans',sans-serif; font-weight:300; font-size:.925rem; line-height:1.85; color:var(--ink-soft); padding-bottom:0; }

/* PAGE NAV */
.page-nav { background:#FFFFFF; position:fixed; top:65px; left:0; right:0; width:100%; z-index:49; padding:0; pointer-events:none; opacity:0; transform:translateY(-110%); transition:transform .32s cubic-bezier(.4,0,.2,1), opacity .32s ease; box-shadow:0 3px 10px rgba(0,0,0,.04); border-top:1px solid rgba(20,20,20,.06); }
.page-nav.nav-visible { transform:translateY(0); opacity:1; pointer-events:auto; }
.page-nav-inner { display:flex; overflow-x:auto; scrollbar-width:none; justify-content:space-between; max-width:1120px; margin:0 auto; width:100%; padding:0 calc(52px + 288px + 52px) 0 52px; box-sizing:border-box; }
.page-nav-inner::-webkit-scrollbar { display:none; }
.page-nav-tab { font-family:'DM Sans',sans-serif; font-size:.9rem; letter-spacing:.3px; text-transform:none; font-weight:300; color:var(--ink-soft); padding:15px 20px; border-bottom:2px solid transparent; margin-bottom:-1px; white-space:nowrap; cursor:pointer; transition:.2s; flex:0 0 auto; text-align:center; }
.page-nav-inner .page-nav-tab:first-child { padding-left:0; }
.page-nav-tab:hover { color:var(--gold); }
.page-nav-tab.active { color:var(--gold); border-bottom:3px solid var(--gold); }

/* SECTION HELPERS */
.sec-label { font-family:'DM Sans',sans-serif; font-size:.75rem; letter-spacing:4px; text-transform:uppercase; color:var(--gold); margin-bottom:8px; }
.sec-title { font-family:'Playfair Display',serif; font-weight:400; font-size:1.675rem; line-height:1.1; color:var(--navy); margin-bottom:16px; }
.sec-title em { font-style:italic; color:var(--gold); }
.lux-reveal { opacity:0; transform:translateY(28px); transition:opacity .9s cubic-bezier(.215,.61,.355,1),transform .9s cubic-bezier(.215,.61,.355,1); }
.lux-reveal.in { opacity:1; transform:none; }

/* DESTINATION PHOTO */
.dest-photo { width:100%; height:420px; background-size:cover; background-position:center; border-radius:0; margin-top:24px; overflow:hidden; }

/* HIGHLIGHTS */
.highlights-sec { padding:48px 0; }
.highlight-list { display:grid; grid-template-columns:1fr 1fr; gap:12px; margin-top:22px; }
.highlight-item { padding:12px 0; background:transparent; display:flex; align-items:center; gap:12px; }
.h-icon { width:95px; height:95px; flex-shrink:0; object-fit:contain; }
.h-city { display:none; }
.h-line { font-family:'DM Sans',sans-serif; font-weight:300; font-size:.925rem; color:#141414; line-height:1.5; }
@media(max-width:640px) { .highlight-list { grid-template-columns:1fr; gap:2px; } .highlight-item { padding:8px 0; } }

/* ITINERARY — TIMELINE */
.itinerary-sec { padding:48px 0; }
.tl-list { position:relative; margin-top:32px; padding-left:36px; }
.tl-item:not(:last-child)::after { content:''; position:absolute; left:-20.5px; top:22px; height:calc(100% + 12px); width:1px; background:var(--gold); }
.tl-item { position:relative; margin-bottom:12px; }
.tl-item:last-child .tl-body-wrap { border-bottom:none; }
.tl-dot { position:absolute; left:-25px; top:16px; width:10px; height:10px; border-radius:50%; background:var(--gold); border:2px solid #fff; box-shadow:0 0 0 1.5px var(--gold); z-index:2; transition:background .2s; }
.tl-item.open .tl-dot { background:var(--gold); box-shadow:0 0 0 2px var(--gold); }
.tl-hd { display:flex; align-items:center; justify-content:space-between; padding:14px 0 14px 36px; margin-left:-36px; cursor:pointer; user-select:none; }
.tl-hd:hover .tl-day-title { color:var(--gold-deep); }
.tl-dot { cursor:pointer; }
.tl-day-label { font-family:'DM Sans',sans-serif; font-size:.74rem; letter-spacing:2.5px; text-transform:uppercase; color:#141414; font-weight:600; margin-bottom:3px; }
.tl-day-title { font-family:'Playfair Display',serif; font-weight:400; font-size:1.2rem; color:#141414; transition:color .2s; line-height:1.25; }
.tl-day-meta { display:flex; gap:14px; flex-wrap:wrap; margin-top:5px; }
.tl-meta-it { display:flex; align-items:center; gap:2px; font-family:'DM Sans',sans-serif; font-size:14.4px; font-weight:300; color:#666; }
.tl-meta-it svg { width:12px; height:12px; stroke:var(--gold); fill:none; }
.tl-meta-it img { width:14px; height:14px; object-fit:contain; flex-shrink:0; filter:brightness(0) opacity(0.6); }
.tl-toggle { font-size:1rem; color:var(--gold); flex-shrink:0; padding-left:16px; transition:transform .28s; }
.tl-item.open .tl-toggle { transform:rotate(180deg); }
.tl-arr { display:inline-block; font-size:.7rem; transition:transform .3s; }
.tl-item.open .tl-arr { transform:rotate(180deg); }
.tl-body-wrap { border-bottom:1px solid rgba(20,20,20,.12); }
.tl-body { max-height:0; overflow:hidden; transition:max-height 2.2s ease; }
.tl-item.open .tl-body { max-height:900px; }
.tl-inner { padding:20px 0 28px; }
.tl-img { width:100%; height:340px; background-size:cover; background-position:center; border-radius:0; margin-bottom:18px; background-color:var(--cream-2); }
.tl-desc { font-family:'DM Sans',sans-serif; font-weight:300; font-size:.925rem; line-height:1.55; color:rgba(20,20,20,.6); margin-bottom:16px; }
.tl-stops { display:flex; flex-wrap:wrap; gap:7px; margin-bottom:18px; }
.tl-stop { font-family:'DM Sans',sans-serif; font-size:.84rem; color:var(--gold-deep); background:rgba(215,154,61,.12); border:none; border-radius:0; padding:6px 11px; display:inline-flex; align-items:center; gap:6px; }
.tl-stop::before { content:''; display:inline-block; width:12px; height:12px; flex-shrink:0; background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%23d79a3d' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M21 10c0 7-9 13-9 13s-9-6-9-13a9 9 0 0 1 18 0z'/%3E%3Ccircle cx='12' cy='10' r='3'/%3E%3C/svg%3E"); background-repeat:no-repeat; background-size:contain; }
@media(max-width:640px) { .tl-list { padding-left:28px; } }

/* INCLUDED / EXCLUDED */
.included-sec { padding:48px 0; }
.inc-pill-wrap { display:flex; margin-bottom:28px; }
.inc-pill { display:flex; background:rgba(20,20,20,.08); border-radius:999px; padding:4px; gap:2px; }
.inc-pill-btn { font-family:'DM Sans',sans-serif; font-size:.82rem; font-weight:500; color:var(--ink-soft); padding:8px 22px; border-radius:999px; cursor:pointer; border:none; background:transparent; transition:background .2s, color .2s; white-space:nowrap; }
.inc-pill-btn.active { background:var(--navy); color:#fff; }
.inc-pill-btn .pill-check { margin-right:5px; font-size:.78rem; }
.inc-panel { display:none; }
.inc-panel.active { display:block; }
.inc-acc-item { border-bottom:1px solid rgba(20,20,20,.05); }
.inc-acc-hd { display:flex; align-items:center; justify-content:space-between; padding:14px 16px; margin:0 -16px; cursor:pointer; font-family:'DM Sans',sans-serif; font-size:1rem; font-weight:300; color:var(--ink); user-select:none; }
.inc-acc-arr { font-size:1rem; color:var(--gold); transition:transform .25s; }
.inc-acc-item.open .inc-acc-arr { transform:rotate(180deg); }
.inc-acc-body { max-height:0; overflow:hidden; transition:max-height 2.2s ease; }
.inc-acc-item.open .inc-acc-body { max-height:300px; }
.inc-items { display:flex; flex-direction:column; gap:7px; padding:0 0 14px 4px; }
.inc-it { display:flex; align-items:flex-start; gap:10px; font-family:'DM Sans',sans-serif; font-size:.95rem; font-weight:300; color:var(--ink-soft); line-height:1.6; }
.ic-y { color:var(--gold-deep); flex-shrink:0; font-size:.78rem; margin-top:3px; }
.ic-n { color:#b0392b; flex-shrink:0; font-size:.78rem; margin-top:3px; }

/* ADD-ONS */
.addons-sec { padding:48px 0; }
.addon-list { display:grid; grid-template-columns:1fr 1fr; gap:0; margin-top:22px; }
.addon-item { display:flex; align-items:center; gap:8px; padding:14px 16px 14px 0; }
@media(max-width:600px) { .addon-list { grid-template-columns:1fr 1fr; } }
.addon-icon-wrap { width:52px; height:52px; border-radius:0; background:var(--cream-2);  display:flex; align-items:center; justify-content:center; flex-shrink:0; font-size:1.4rem; }
.addon-icon-wrap img { width:39px; height:39px; object-fit:contain; }
.addon-text { flex:1; }
.addon-title { font-family:'DM Sans',sans-serif; font-weight:300; font-size:1rem; color:var(--navy); margin-bottom:3px; }
.addon-desc { font-family:'DM Sans',sans-serif; font-weight:300; font-size:.82rem; color:var(--ink-soft); line-height:1.55; }
.addons-note { font-family:'DM Sans',sans-serif; font-weight:300; font-size:.925rem; color:var(--ink-soft); line-height:1.75; margin-top:20px; font-style:italic; }

/* YOU MIGHT LIKE THIS */
.similar-sec { padding:48px 0; }
.similar-list { display:flex; gap:18px; margin-top:22px; overflow-x:auto; -webkit-overflow-scrolling:touch; scroll-snap-type:x mandatory; padding-bottom:8px; scrollbar-width:none; } .similar-list::-webkit-scrollbar { display:none; }
.similar-card { display:block; text-decoration:none; flex:0 0 280px; scroll-snap-align:start; }
.similar-img { width:100%; height:110px; background-size:cover; background-position:center; }
.similar-body { padding:12px 0 16px; }
.similar-eyebrow { font-family:'DM Sans',sans-serif; font-size:.68rem; letter-spacing:2.5px; text-transform:uppercase; color:var(--gold); margin-bottom:6px; }
.similar-title { font-family:'Playfair Display',serif; font-weight:400; font-size:1rem; line-height:1.3; color:var(--navy); }
.similar-card { opacity:1; filter:none; transition:opacity .25s,filter .25s; }
.similar-nav { display:flex; gap:9px; margin-top:18px; }
.similar-nav-dash { width:24px; height:.5px; background:rgba(20,20,20,.3); transition:background .25s ease,width .25s ease,height .25s ease; cursor:pointer; }
.similar-nav-dash.is-active { width:32px; height:1px; background:var(--gold); }
@media(max-width:640px) { .similar-card { flex:0 0 82%; } .similar-img { height:140px; } .similar-card.is-dim { opacity:.45; filter:grayscale(60%); } }

/* ACCOMMODATION */
.accom-sec { padding:48px 0; }
.accom-list { display:flex; flex-direction:column; gap:8px; margin-top:24px; }
.accom-card { display:flex; gap:0; background:#fff; border:1px solid rgba(20,20,20,.12); border-radius:0; overflow:hidden; }
.accom-img { width:140px; flex-shrink:0; background-size:cover; background-position:center; align-self:stretch; }
.accom-body { padding:10px 14px; display:flex; flex-direction:column; justify-content:center; gap:5px; flex:1; }
.accom-stars-row { display:flex; align-items:center; justify-content:space-between; gap:8px; }
.accom-stars { color:var(--gold); font-size:.9rem; letter-spacing:1px; line-height:1; }
.accom-name { font-family:'Playfair Display',serif; font-weight:400; font-size:1.1rem; color:var(--navy); line-height:1.15; }
.accom-location { font-family:'DM Sans',sans-serif; font-weight:500; font-size:.8rem; color:var(--gold); display:flex; align-items:center; gap:5px; line-height:1; }
.accom-location svg { width:11px; height:11px; stroke:var(--gold); fill:none; flex-shrink:0; }
.accom-highlights { font-family:'DM Sans',sans-serif; font-weight:300; font-size:.88rem; color:var(--ink-soft); line-height:1.3; }
.accom-highlights .sep { color:var(--gold); font-weight:600; margin:0 2px; }
.accom-btn { display:inline-block; font-family:'DM Sans',sans-serif; font-size:.78rem; font-weight:400; letter-spacing:.12em; text-transform:uppercase; color:var(--ink); border:1px solid rgba(20,20,20,.4); border-radius:0; padding:6px 16px; background:transparent; cursor:pointer; transition:border-color .2s,color .2s; text-decoration:none; align-self:flex-start; }
.accom-btn:hover { border-color:var(--gold); color:var(--gold); }
.accom-badge { display:inline-flex; align-items:center; gap:3px; font-family:'DM Sans',sans-serif; font-size:.65rem; font-weight:400; color:var(--ink-soft); letter-spacing:.2px; }
.accom-badge::before { content:'✦'; color:var(--gold); font-size:.55rem; flex-shrink:0; }
.accom-note { font-family:'DM Sans',sans-serif; font-weight:300; font-size:.925rem; color:var(--ink-soft); line-height:1.75; margin-top:20px; font-style:italic; }

/* HOTEL MODAL */
.hotel-overlay { position:fixed; inset:0; background:rgba(18,40,64,.5); z-index:1010; opacity:0; pointer-events:none; transition:opacity .35s ease; }
.hotel-overlay.open { opacity:1; pointer-events:all; }
.hotel-panel { position:fixed; bottom:0; left:0; right:0; background:#fff; border-radius:0; z-index:1011; max-height:85vh; overflow-y:auto; -webkit-overflow-scrolling:touch; touch-action:pan-y; transform:translateY(100%); transition:transform .4s cubic-bezier(.32,.72,0,1); }
.hotel-panel.open { transform:translateY(0); }
.hotel-panel-inner { padding:0 0 48px; }
.hotel-panel-handle { width:40px; height:4px; background:rgba(20,20,20,.12); border-radius:999px; margin:14px auto 0; }
.hotel-panel-hd { padding:20px 28px 16px; border-bottom:1px solid rgba(20,20,20,.12); }
.hotel-panel-stars { color:var(--gold); font-size:.85rem; margin-bottom:5px; }
.hotel-panel-name { font-family:'Playfair Display',serif; font-size:1.3rem; color:var(--navy); font-weight:400; margin-bottom:3px; }
.hotel-panel-loc { font-family:'DM Sans',sans-serif; font-size:.82rem; color:var(--ink-soft); font-weight:300; }
.hotel-panel-close { position:absolute; top:18px; right:20px; width:34px; height:34px; border-radius:50%; border:1px solid rgba(20,20,20,.15); background:#fff; cursor:pointer; font-size:1rem; color:var(--ink-soft); display:flex; align-items:center; justify-content:center; }
.mshare-overlay { position:fixed; inset:0; background:rgba(18,40,64,.5); z-index:500; opacity:0; pointer-events:none; transition:opacity .35s ease; }
.mshare-overlay.open { opacity:1; pointer-events:all; }
.mshare-panel { position:fixed; bottom:0; left:0; right:0; background:#fff; border-radius:0; z-index:501; max-height:80vh; overflow-y:auto; transform:translateY(100%); transition:transform .4s cubic-bezier(.32,.72,0,1); padding:0 0 calc(20px + env(safe-area-inset-bottom)); }
.mshare-panel.open { transform:translateY(0); }
.mshare-panel-handle { width:40px; height:4px; background:rgba(20,20,20,.12); border-radius:999px; margin:14px auto 0; }
.mshare-panel-title { font-family:'Playfair Display',serif; font-size:1.1rem; color:var(--navy); font-weight:400; text-align:center; padding:14px 20px 6px; }
.mshare-list { padding:6px 16px 0; display:flex; flex-direction:column; gap:2px; }
.mshare-list a { display:flex; align-items:center; gap:14px; padding:13px 12px; border-radius:0; text-decoration:none; color:var(--navy); font-family:'DM Sans',sans-serif; font-size:.92rem; font-weight:500; transition:background .15s; }
.mshare-list a:active { background:#f5f0ea; }
.hotel-photos { display:flex; gap:10px; overflow-x:auto; padding:20px 28px 4px; scrollbar-width:none; }
.hotel-photos::-webkit-scrollbar { display:none; }
.hotel-photo { flex:0 0 240px; height:160px; border-radius:0; background-size:cover; background-position:center; background-color:var(--cream-2); }
.hotel-details { padding:20px 28px 0; display:grid; grid-template-columns:1fr 1fr; gap:10px; }
.hotel-detail-chip { background:var(--cream); border:1px solid rgba(20,20,20,.12); border-radius:0; padding:10px 13px; }
.hotel-detail-chip .hdc-lbl { font-family:'DM Sans',sans-serif; font-size:.58rem; letter-spacing:2px; text-transform:uppercase; color:var(--gold); margin-bottom:3px; }
.hotel-detail-chip .hdc-val { font-family:'DM Sans',sans-serif; font-size:.82rem; color:var(--ink); }
.hotel-panel-desc { display:none; font-family:'DM Sans',sans-serif; font-weight:300; font-size:.925rem; line-height:1.8; color:var(--ink-soft); padding:16px 28px 0; }

/* FAQ */
.faq-sec { padding:48px 0; }
.faq-list { display:flex; flex-direction:column; margin-top:24px; }
.faq-item { border-bottom:1px solid rgba(20,20,20,.05); }
.faq-item:first-child { border-top:1px solid rgba(20,20,20,.05); }
.faq-q { width:100%; background:none; border:none; cursor:pointer; padding:20px 0; font-family:'DM Sans',sans-serif; font-size:1rem; font-weight:300; color:var(--navy); display:flex; justify-content:space-between; align-items:center; gap:14px; text-align:left; transition:color .2s; }
.faq-q .ic { font-size:1rem; color:var(--gold); flex-shrink:0; transition:transform .28s; font-style:normal; font-family:'DM Sans',sans-serif; border:none; width:auto; height:auto; display:inline; }
.faq-item.open .faq-q .ic { transform:rotate(180deg); }
.faq-a { max-height:0; overflow:hidden; transition:max-height .32s ease; }
.faq-a p { padding:0 0 20px; font-family:'DM Sans',sans-serif; font-weight:300; font-size:.925rem; line-height:1.85; color:var(--ink-soft); }

/* BOOKING WIDGET */
.booking-widget { background:#fff; border:1px solid rgba(20,20,20,.12); border-radius:0; overflow:visible; }
.bw-header { background:#fff; padding:20px 22px; border-radius:0; border-bottom:1px solid rgba(20,20,20,.12); }
.bw-lbl { font-family:'DM Sans',sans-serif; font-size:.6rem; letter-spacing:3px; text-transform:uppercase; color:var(--gold); margin-bottom:3px; }
.bw-price { font-family:'Playfair Display',serif; font-size:1.45rem; color:#141414; line-height:1.2; }
.bw-price-per { font-family:'DM Sans',sans-serif; font-size:.77rem; font-weight:300; color:rgba(20,20,20,.55); margin-top:3px; }
.bw-body { padding:20px 22px; }
.bw-inc { display:flex; flex-direction:column; gap:9px; margin-bottom:20px; }
.bw-inc-it { display:flex; align-items:center; gap:9px; font-family:'DM Sans',sans-serif; font-size:.8rem; color:var(--ink-soft); }
.bw-inc-it svg { width:14px; height:14px; stroke:var(--gold); fill:none; flex-shrink:0; }
.bw-div { height:1px; background:rgba(215,154,61,.12); margin:16px 0; }
.bw-cta { width:100%; display:block; text-align:center; font-family:'DM Sans',sans-serif; font-weight:400; letter-spacing:.14em; text-transform:uppercase; font-size:.8rem; background:var(--gold); color:#fff; padding:15px; border:none; border-radius:0; cursor:pointer; position:relative; overflow:hidden; transition:color .35s; }
.bw-cta::after { content:''; position:absolute; inset:0; background:var(--gold-deep); transform:scaleX(0); transform-origin:left; transition:transform .4s cubic-bezier(.77,0,.175,1); z-index:0; }
.bw-cta:hover span { color:#fff !important; }
.bw-cta:hover::after { transform:scaleX(1); }
.bw-cta span { position:relative; z-index:1; }
.bw-badges { display:flex; flex-direction:column; gap:8px; margin-top:16px; }
.bw-badge { display:flex; align-items:center; gap:8px; font-family:'DM Sans',sans-serif; font-size:.73rem; color:var(--ink-soft); font-weight:300; }
.bw-badge svg { width:13px; height:13px; stroke:var(--gold); fill:none; flex-shrink:0; }

/* BOOKING CONFIDENCE */
.bw-confidence { margin-top:14px; padding:14px 16px; border:1px solid rgba(215,154,61,.15); border-radius:0; background:var(--cream); }
.bw-conf-title { font-family:'DM Sans',sans-serif; font-size:.62rem; letter-spacing:2.5px; text-transform:uppercase; color:var(--gold); margin-bottom:10px; }
.bw-conf-item { font-family:'DM Sans',sans-serif; font-size:.78rem; font-weight:300; color:var(--ink-soft); margin-bottom:5px; display:flex; align-items:flex-start; gap:7px; line-height:1.55; }
.bw-conf-item::before { content:'✓'; color:var(--gold); flex-shrink:0; }
.bw-share { display:flex; align-items:center; justify-content:center; gap:0; padding:14px 0 2px; border-top:1px solid rgba(215,154,61,.1); margin-top:14px; }
.bw-share a, .bw-share-btn { font-family:'DM Sans',sans-serif; font-size:.78rem; color:var(--ink-soft); text-decoration:none; background:transparent; border:none; cursor:pointer; padding:0 14px; transition:color .2s; white-space:nowrap; }
.bw-share a:hover, .bw-share-btn:hover { color:var(--gold); }
.bw-share-sep { width:1px; height:12px; background:rgba(20,20,20,.2); flex-shrink:0; }

/* TRUST */
.wrap { width: 100%; max-width: var(--maxw); margin: 0 auto; padding: 0 52px; }
.benefits-lux { background: rgba(20,20,20,.0175); padding: 70px 0; }
.benefits-head { max-width: 560px; margin: 0 auto 40px; text-align: center; }
.benefits-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 18px;
  max-width: 1280px;
  margin: 0 auto;
}
.benefit-card {
  background: #fff;
  border-radius: 0;
  padding: 28px 22px 26px;
  text-align: left;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  transition: transform .25s ease;
}
.benefit-card:hover { transform: translateY(-3px); }
.benefit-icon {
  width: 44px;
  height: 44px;
  margin: 0 0 14px;
  display: grid;
  place-items: center;
  flex-shrink: 0;
}
.benefit-icon img { width: 100%; height: 100%; object-fit: contain; }
.benefit-title {
  font-family: 'Playfair Display', serif;
  font-weight: 400;
  font-size: 1.15rem;
  color: var(--ink);
  margin: 0 0 6px;
}
.benefit-desc {
  font-family: 'DM Sans', sans-serif;
  font-weight: 300;
  font-size: .88rem;
  line-height: 1.6;
  color: rgba(20,20,20,.6);
  margin: 0;
}

/* PRIVATE CTA */
.private-cta { background:var(--cream-2); padding:70px 0; }
.private-inner { max-width:var(--maxw); margin:0 auto; padding:0 52px; display:grid; grid-template-columns:1fr 1fr; gap:52px; align-items:center; }
.private-text .sec-title { margin-bottom:14px; }
.private-text p { font-family:'DM Sans',sans-serif; font-weight:300; font-size:.925rem; line-height:1.85; color:var(--ink-soft); margin-bottom:26px; }
.private-img { height:320px; border-radius:0; background-size:cover; background-position:center; background-color:var(--cream-2); }


/* HERO CTA */

/* MID-PAGE CTA BANNER */
.midpage-cta { background:var(--navy); border-radius:0; padding:28px 32px; display:flex; align-items:center; gap:24px; margin:48px 0; }
@media(max-width:560px) { .midpage-cta { flex-direction:column; align-items:flex-start; } }
.midpage-cta-body { flex:1; }
.midpage-cta-title { font-family:'Playfair Display',serif; font-size:1.2rem; color:#fff; font-weight:400; margin-bottom:5px; }
.midpage-cta-title em { color:var(--gold-soft); font-style:italic; }
.midpage-cta-sub { font-family:'DM Sans',sans-serif; font-weight:300; font-size:.82rem; color:rgba(255,255,255,.6); line-height:1.6; }
.midpage-cta-btn { background:var(--gold); color:#fff; font-family:'DM Sans',sans-serif; font-size:.82rem; font-weight:500; border:none; border-radius:0; padding:13px 24px; cursor:pointer; white-space:nowrap; transition:background .2s; flex-shrink:0; }
.midpage-cta-btn:hover { background:var(--gold-deep); }

/* FOOTER */
footer.foot { background:#FFFFFF; color:#141414; padding:88px 0 36px; border-top:1px solid rgba(0,0,0,.12); }
.foot-wrap { max-width:var(--maxw); margin:0 auto; padding:0 52px; }
.foot-grid { display:grid; grid-template-columns:1.6fr 1fr 1fr; gap:64px; margin-bottom:64px; }
.foot-logo { font-family:'Playfair Display',serif; font-size:1.7rem; letter-spacing:8px; text-transform:uppercase; font-weight:400; color:#141414; margin-bottom:22px; display:block; height:34px; width:auto; }
.foot-p { font-weight:300; font-size:.94rem; color:rgba(20,20,20,.6); line-height:1.85; max-width:290px; }
.foot h4 { font-family:'DM Sans',sans-serif; font-size:.72rem; letter-spacing:3px; text-transform:uppercase; color:var(--gold); margin-bottom:26px; font-weight:500; }
.foot ul { list-style:none; }
.foot ul li { margin-bottom:13px; }
.foot ul li a { font-weight:300; font-size:.92rem; color:rgba(20,20,20,.6); transition:color .2s; }
.foot ul li a:hover { color:var(--gold); }
.foot-socials { display:flex; gap:12px; margin-top:30px; }
.foot-socials a { width:36px; height:36px; border:1px solid rgba(20,20,20,.12); display:grid; place-items:center; transition:.25s; }
.foot-socials a:hover { border-color:var(--gold); }
.foot-socials svg { width:15px; height:15px; fill:rgba(20,20,20,.5); transition:fill .25s; }
.foot-socials a:hover svg { fill:var(--gold); }
.foot-trust-row { border-top:1px solid rgba(20,20,20,.12); padding:28px 0 24px; display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:16px; }
.foot-trust-badges { display:flex; align-items:center; gap:20px; flex-wrap:wrap; }
.foot-trust-badge { display:flex; align-items:center; gap:7px; font-family:'DM Sans',sans-serif; font-size:.75rem; font-weight:300; color:rgba(20,20,20,.5); letter-spacing:.02em; }
.foot-trust-badge svg { flex-shrink:0; opacity:.45; }
.foot-trust-privacy { font-family:'DM Sans',sans-serif; font-size:.72rem; font-weight:300; color:rgba(20,20,20,.4); letter-spacing:.02em; }
.foot-bottom { border-top:1px solid rgba(20,20,20,.12); padding-top:22px; display:flex; justify-content:space-between; flex-wrap:wrap; gap:10px; font-family:'DM Sans',sans-serif; font-size:.65rem; letter-spacing:2px; text-transform:uppercase; color:rgba(20,20,20,.4); }
@media(max-width:760px) {
  .foot-grid { grid-template-columns:1fr; gap:44px; }
  /* Mobile footer only shows the logo/tagline/socials column — link
     columns, trust strip, and bottom bar are hidden to match the homepage. */
  .foot-grid > div:not(:first-child),
  .foot-trust-row,
  .foot-bottom {
    display: none !important;
  }
  .foot-grid { margin-bottom: 0; }
  /* Extra bottom padding so the social icons row clears the fixed
     #float-cta bar (two stacked rows + safe-area inset on mobile). */
  footer.foot { padding-bottom: 130px; }
}

/* RESPONSIVE */
/* Float CTA — desktop hidden (sidebar handles it), mobile only */
@media(min-width:861px) {
  #float-cta { display:none !important; }
}

@media(max-width:1024px) {
  .private-inner,.foot-wrap { padding-left:36px; padding-right:36px; }
  .page-nav-inner { padding:0 36px; justify-content:space-between; }
}
@media(max-width:860px) {
  .page-layout { grid-template-columns:1fr; gap:0; max-width:640px; }
  .sidebar-col { display:none; }
  .accom-card { flex:0 0 240px; }
  .private-inner { grid-template-columns:1fr; gap:32px; }
  .private-img { height:220px; }
}
@media(max-width:640px) {
  /* === GLOBAL MOBILE CONTAINMENT === */
  .private-inner,.foot-wrap { padding-left:16px; padding-right:16px; }
  .page-layout { padding-bottom:90px; max-width:100%; width:100%; padding-left:20px; padding-right:20px; }
  .wrap { padding-left:20px; padding-right:20px; }
  img, video, iframe { max-width:100%; height:auto; }

  /* === TRUST / OUR PROMISE === */

  /* === NAV — mobile side panel === */
  /* Hide the desktop inline-expand links entirely on mobile; a dedicated,
     DOM-level-sibling-of-<body> panel below is used instead so it can never
     get trapped inside an ancestor's box (fixed-position containing-block
     gotchas with filter/backdrop-filter/transform on parents). */
  .nav-links { display:none !important; }
  .nav-overlay {
    display:block;
    position:fixed; inset:0; background:rgba(18,40,64,.55);
    opacity:0; pointer-events:none; transition:opacity .35s ease;
    z-index:1000;
  }
  .nav-overlay.open { opacity:1; pointer-events:auto; }
  .mobile-nav-panel {
    position:fixed; top:0; right:0; bottom:0; left:auto;
    width:min(78vw,300px); height:100%;
    background:#FFFFFF;
    display:flex; flex-direction:column; align-items:flex-start; justify-content:flex-start;
    padding:90px 32px 32px;
    transform:translateX(110%);
    transition:transform .4s cubic-bezier(.77,0,.175,1);
    z-index:1001;
  }
  .mobile-nav-panel.open { transform:translateX(0); }
  .mobile-nav-panel a {
    display:block; width:100%;
    color:#141414; font-family:'DM Sans',sans-serif;
    font-size:1.05rem;
    padding:14px 0; border-bottom:1px solid rgba(20,20,20,.1);
  }
  .mobile-nav-panel a:hover { color:var(--gold-deep); }
  .mobile-nav-panel a.mobile-nav-cta {
    margin-top: 24px; border: 1px solid rgba(20,20,20,.4); border-bottom: 1px solid rgba(20,20,20,.4);
    border-radius:0; text-align: center;
    color: var(--ink); font-weight: 400; letter-spacing: .14em; text-transform: uppercase; font-size: .8rem;
    transition: background .25s, color .25s;
  }
  .mobile-nav-panel a.mobile-nav-cta:hover { background: var(--ink); color: #fff; }
  .nav-cta { display:none !important; }
  .hamburger { display:block !important; flex-shrink:0; min-width:40px; min-height:40px; }
  .nav-back, .nav-share-btn { display:flex !important; flex-shrink:0; }
  .nav-right { flex-wrap:nowrap; }
  .nav-share-btn { margin-right:2px; }
  .nav-inner { display:flex !important; align-items:center; justify-content:flex-start !important; padding:0 20px; }
  header.nav { padding:21px 0; }
  header.nav.scrolled { padding:11px 0; }
  .nav-left { order:1; }
  .nav-logo-center { order:2; text-align:left !important; font-size:1.2rem !important; letter-spacing:5px !important; margin-left:4px; }
  .nav-right { order:3; margin-left:auto !important; }

  /* === HERO === */
  .hero-gallery { aspect-ratio:5/4; }

  /* === PAGE NAV === */
  .page-nav { top:58px; }
  .page-nav-inner { padding:0 16px; gap:6px; }
  .page-nav-inner { justify-content:flex-start; overflow-x:auto; -webkit-overflow-scrolling:touch; }
  .page-nav-tab { flex:0 0 auto; padding:22px 16px 13px; font-size:.88rem; letter-spacing:.2px; }
  .page-nav-inner .page-nav-tab:first-child { padding-left:0; }
  .page-nav::after { content:''; position:absolute; top:0; right:0; bottom:0; width:40px; background:linear-gradient(to right,transparent,#FFFFFF); pointer-events:none; z-index:1; }

  /* === TRIP HEADER === */
  .trip-title { font-size:clamp(1.5rem,6.5vw,2rem); word-break:break-word; }
  .trip-tagline { word-break:break-word; padding-bottom:0; margin-bottom:0; font-size:.925rem; }

  /* === SECTIONS === */
  .sec-title { word-break:break-word; font-size:1.675rem; }
  .lux-reveal { opacity:1 !important; transform:none !important; }
  .dest-photo { height:320px; }

  /* === HIGHLIGHTS === */
  .highlight-list { grid-template-columns:1fr; }

  /* === ITINERARY === */
  .tl-list { padding-left:26px; overflow:hidden; }
  .tl-hd { padding-left:0; margin-left:0; }
  .tl-item:not(:last-child)::after { left:-13.5px; width:1px; }
  .tl-dot { left:-18px; width:10px; height:10px; box-shadow:0 0 0 1.5px var(--gold); border:2px solid #fff; }
  .tl-img { height:260px; }

  /* === INCLUSIONS === */
  .inc-pill-wrap { justify-content:center; }
  .inc-pill { width:100%; justify-content:center; }
  .inc-pill-btn { flex:1; text-align:center; }
  .inc-panel.active { grid-template-columns:1fr; }
  .inc-acc-hd { margin:0; padding:14px 0; word-break:break-word; }

  /* === ACCOMMODATION === */
  .accom-list { width:100%; flex-direction:column; overflow:visible; }
  .accom-card { width:100%; flex:unset; max-height:unset !important; height:auto !important; flex-direction:row; }
  .accom-img { width:38%; min-height:130px; height:auto !important; flex-shrink:0; }
  .accom-body { height:auto !important; overflow:visible; padding:12px; }
  .accom-stars-row { flex-direction:column; align-items:flex-start; gap:2px; }

  /* === ADD-ONS === */
  .addon-list { grid-template-columns:1fr 1fr; }
  .addon-icon-wrap { flex-shrink:0; }
  .addon-title { font-size:.82rem; }

  /* === FAQ === */
  .faq-q, .faq-a { word-break:break-word; overflow-wrap:break-word; }

  /* === TRUST / OUR PROMISE === */

  /* === HOTEL MODAL === */
  .hotel-panel-hd { padding:16px 18px 12px; }
  .hotel-panel-desc { padding:12px 18px 0; }
  .hotel-photos { padding:16px 18px 4px; }
  .hotel-details { grid-template-columns:1fr 1fr; padding:14px 18px 0; }

  /* === FOOTER === */
  .foot-grid { grid-template-columns:1fr; gap:36px; }
  .foot-bottom { flex-direction:column; gap:4px; }

  /* === FLOAT CTA mobile === */
  #float-cta {
    left:0 !important; right:0 !important; bottom:0 !important;
    transform:none !important; border-radius:0 !important;
    border:none !important; border-top:1px solid rgba(20,20,20,.12) !important;
    padding:10px 16px calc(8px + env(safe-area-inset-bottom)) !important; gap:10px !important; width:100% !important;
    background:rgba(255,255,255,.97) !important; backdrop-filter:blur(12px);
    box-shadow:0 -2px 12px rgba(0,0,0,.08), 0 20px 0 0 rgba(255,255,255,.97) !important;
  }
  #float-cta > span { display:none; }
  #float-cta .cta-btn { flex:1 !important; text-align:center !important; padding:11px 0 !important; font-size:.85rem !important; border-radius:0 !important; }
  #float-cta button.cta-btn { font-weight:400 !important; letter-spacing:.12em !important; text-transform:uppercase !important; }
  #float-cta .cta-secondary-row { margin-top:0 !important; padding-top:8px !important; }
  #enquire-menu { left:16px !important; right:16px !important; transform:none !important; min-width:unset !important; }
}
  @media (max-width: 1100px) { .benefits-grid { grid-template-columns: repeat(3, 1fr); } }
  @media (max-width: 900px) { .benefits-grid { grid-template-columns: repeat(2, 1fr); } }
  @media (max-width: 600px) {
    .benefits-grid { grid-template-columns: 1fr 1fr; gap: 10px; }
    .benefits-lux { padding: 56px 0; }
    .benefit-card { padding: 16px; gap: 10px; }
    .benefit-title { font-size: 1rem; margin-bottom: 6px; }
    .benefit-desc { font-size: .925rem; line-height: 1.5; }
  }
