:root { --font-brand:Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; --navy:#071a38; --blue:#075fe4; --orange:#f26a21; --purple:#7b22ce; --ink:#111827; --muted:#637083; --line:#dfe5ef; --soft:#f5f8fc; }
* { box-sizing: border-box; }
button, input, select, textarea { font-family:inherit; }
html { overflow-x:clip; }
body { margin:0; overflow-x:hidden; color:var(--ink); font-family:var(--font-brand); }
a { color:inherit; text-decoration:none; }
.skip-link { position:fixed; z-index:1000; top:8px; left:8px; transform:translateY(-160%); border-radius:8px; padding:12px 16px; color:#fff; background:var(--navy); font-weight:900; }
.skip-link:focus { transform:translateY(0); }
.topbar { position:sticky; top:0; z-index:20; display:flex; align-items:center; justify-content:space-between; gap:22px; padding:14px 6vw; background:rgba(255,255,255,.97); border-bottom:1px solid rgba(223,229,239,.82); box-shadow:0 10px 34px rgba(7,26,56,.06); backdrop-filter:blur(18px); }
.brand { display:grid; gap:2px; color:var(--navy); font-size:11px; font-weight:850; min-width:132px; align-items:center; text-decoration:none; }
.brand img { width:154px; max-width:34vw; display:block; object-fit:contain; }
.brand span { color:var(--navy); font-size:11px; font-weight:800; line-height:1; padding-left:3px; }
nav { display:flex; align-items:center; flex-wrap:wrap; gap:20px; font-weight:850; font-size:13px; }
nav a { position:relative; padding:6px 0; color:var(--navy); }
nav a::after { content:""; position:absolute; left:0; right:0; bottom:0; height:2px; border-radius:999px; background:transparent; transition:background .16s ease; }
nav a:hover::after, nav a:focus-visible::after { background:var(--blue); }
nav a.active::after { background:var(--blue); }
.admin-sidebar, .admin-sidebar-toggle { display:none; }
html[data-admin-portal="true"] { scroll-padding-top:92px; }
html[data-admin-portal="true"] body { background:#f4f7fb; }
html[data-admin-portal="true"] .topbar { z-index:32; min-height:82px; padding:12px 28px; }
html[data-admin-portal="true"] .topbar nav [data-internal] { display:none; }
html[data-admin-portal="true"] .topbar nav { gap:16px; }
html[data-admin-portal="true"] .admin-sidebar { position:fixed; z-index:30; top:82px; bottom:0; left:0; width:280px; display:flex; flex-direction:column; overflow-y:auto; border-right:1px solid #d9e2ef; padding:22px 18px; color:#fff; background:linear-gradient(180deg,#071a38 0%,#0b2852 62%,#12396e 100%); box-shadow:16px 0 42px rgba(7,26,56,.08); }
html[data-admin-portal="true"] main { margin-left:280px; }
html[data-admin-portal="true"] .site-footer { margin-left:280px; }
.admin-sidebar-brand { display:grid; gap:4px; border-bottom:1px solid rgba(255,255,255,.16); padding:0 8px 20px; }
.admin-sidebar-brand span { color:#ffad73; font-size:11px; font-weight:950; letter-spacing:.12em; text-transform:uppercase; }
.admin-sidebar-brand strong { font-size:19px; line-height:1.25; }
.admin-sidebar-brand small { color:rgba(255,255,255,.66); font-weight:750; }
.admin-sidebar-nav { display:grid; align-items:stretch; gap:22px; padding:22px 0; font-size:13px; }
.admin-sidebar-nav section { display:grid; gap:4px; }
.admin-sidebar-nav p { margin:0 8px 7px; color:#9eb9dd; font-size:10px; font-weight:950; letter-spacing:.11em; line-height:1.25; text-transform:uppercase; }
.admin-sidebar-nav a { min-height:38px; display:flex; align-items:center; border-radius:8px; padding:8px 10px; color:rgba(255,255,255,.84); font-weight:800; }
.admin-sidebar-nav a::after { display:none; }
.admin-sidebar-nav a:hover, .admin-sidebar-nav a:focus-visible { color:#fff; background:rgba(255,255,255,.1); }
.admin-sidebar-nav a.active { color:#fff; background:linear-gradient(90deg,#075fe4,#2c78ea); box-shadow:0 9px 22px rgba(0,0,0,.2); }
.admin-public-link { min-height:42px; display:flex; align-items:center; justify-content:center; margin-top:auto; border:1px solid rgba(255,255,255,.3); border-radius:8px; padding:8px 12px; color:#fff; font-size:12px; font-weight:900; }
.admin-sidebar-session-actions { display:grid; gap:8px; margin-top:auto; }
.admin-sidebar-session-actions .admin-public-link { margin-top:0; }
.admin-sidebar-signout { min-height:42px; border:1px solid rgba(255,255,255,.3); background:rgba(255,255,255,.09); color:#fff; }
.admin-sidebar-signout:hover, .admin-sidebar-signout:focus-visible { background:rgba(255,255,255,.16); }
html[data-admin-portal="true"] main > .section[data-internal] { max-width:1500px; margin-inline:auto; }
html[data-admin-portal="true"] .admin-login-section { background:linear-gradient(145deg,#eef4ff,#fff); }
.more-menu { position:relative; }
.more-menu summary { list-style:none; cursor:pointer; color:var(--navy); padding:6px 0; font-weight:900; }
.more-menu summary::-webkit-details-marker { display:none; }
.more-menu summary::after { content:""; display:inline-block; width:7px; height:7px; margin-left:7px; border-right:2px solid currentColor; border-bottom:2px solid currentColor; transform:translateY(-2px) rotate(45deg); }
.more-menu[open] summary::after { transform:translateY(2px) rotate(225deg); }
.more-menu-panel { position:absolute; right:0; top:calc(100% + 14px); min-width:230px; display:grid; gap:2px; border:1px solid var(--line); border-radius:8px; padding:10px; background:#fff; box-shadow:0 24px 60px rgba(7,26,56,.16); }
.more-menu-panel a { padding:10px 12px; border-radius:6px; color:var(--navy); }
.more-menu-panel a:hover, .more-menu-panel a:focus-visible { background:#f4f8ff; }
.more-menu-panel a::after { display:none; }
.public-review-nav { display:none; border:1px solid #c7d8fb; border-radius:999px; padding:6px 10px; color:var(--blue); background:#f2f7ff; }
[data-public-review="true"] .public-review-nav { display:inline-flex; }
.public-review-nav::after { display:none; }
.hero { position:relative; min-height:690px; display:block; overflow:hidden; padding:0 6vw 42px; color:#fff; background:#071a38; }
.hero-carousel { position:absolute; inset:0; z-index:0; max-width:none; }
.hero-slide { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; opacity:0; transform:scale(1.02); transition:opacity .7s ease, transform 5s ease; }
.hero-slide.active { opacity:1; transform:scale(1); }
.hero::before { content:""; position:absolute; inset:0; z-index:1; background:linear-gradient(90deg,rgba(3,13,28,.88) 0%,rgba(3,13,28,.62) 43%,rgba(3,13,28,.12) 78%); }
.hero-content { position:relative; z-index:2; max-width:640px; padding-top:82px; }
.hero-content h1, #homeHeroCopy { opacity:1; transform:translateY(0); transition:opacity .35s ease, transform .35s ease; }
.hero-content.hero-copy-changing h1, .hero-content.hero-copy-changing #homeHeroCopy { opacity:0; transform:translateY(8px); }
.eyebrow { margin:0 0 10px; color:var(--orange); font-size:12px; font-weight:950; letter-spacing:.08em; text-transform:uppercase; }
h1 { margin:0; font-size:clamp(42px,5vw,72px); line-height:1.01; letter-spacing:0; }
h2 { margin:0 0 18px; color:var(--navy); font-size:clamp(28px,4vw,42px); }
p { line-height:1.65; }
button { min-height:42px; border:0; border-radius:8px; padding:0 18px; color:#fff; background:var(--blue); font-weight:900; cursor:pointer; }
.secondary-button { border:1px solid var(--line); color:var(--navy); background:#fff; }
.outline-button { border:1px solid var(--blue); color:var(--blue); background:#fff; }
.button-link, .ghost-button { min-height:42px; display:inline-flex; align-items:center; justify-content:center; border-radius:8px; padding:0 18px; color:#fff; background:var(--blue); font-weight:900; }
.ghost-button { border:1px solid rgba(255,255,255,.72); background:rgba(255,255,255,.08); }
.button-link.compact { min-height:36px; width:100%; font-size:12px; }
.button-link.purple { background:var(--purple); }
.button-link.orange { background:var(--orange); }
.ghost-button.light { min-height:34px; color:#fff; border-color:rgba(255,255,255,.62); }
.hero-actions { display:flex; flex-wrap:wrap; gap:14px; margin-top:28px; }
.hero-badges { display:flex; flex-wrap:wrap; gap:10px; margin-top:22px; }
.hero-badges span { border:1px solid rgba(255,255,255,.38); border-radius:999px; padding:8px 11px; background:rgba(6,24,50,.48); font-size:12px; font-weight:900; }
.hero-rating { position:absolute; z-index:3; right:6vw; top:34px; width:168px; border-radius:14px; padding:14px; color:var(--ink); background:rgba(255,255,255,.94); box-shadow:0 20px 60px rgba(0,0,0,.18); }
.hero-rating b, .hero-rating span, .hero-rating small { display:block; }
.hero-rating b { color:var(--navy); font-size:24px; }
.hero-rating span { font-weight:950; }
.hero-rating small { color:var(--muted); }
.whatsapp-float { position:fixed; z-index:32; right:max(20px,env(safe-area-inset-right)); bottom:max(20px,env(safe-area-inset-bottom)); min-height:56px; display:flex; align-items:center; gap:10px; border:1px solid rgba(255,255,255,.28); border-radius:999px; padding:10px 16px 10px 11px; color:#fff; background:#168c4b; box-shadow:0 16px 42px rgba(2,13,30,.28); font-size:13px; font-weight:900; line-height:1; transition:transform .18s ease,box-shadow .18s ease,background .18s ease; }
.whatsapp-float svg { width:34px; height:34px; fill:currentColor; flex:0 0 auto; }
.whatsapp-float:hover { color:#fff; background:#10763e; text-decoration:none; transform:translateY(-2px); box-shadow:0 20px 48px rgba(2,13,30,.34); }
.whatsapp-float:focus-visible { color:#fff; outline:3px solid #fff; outline-offset:3px; text-decoration:none; }
html[data-admin-portal="true"] .whatsapp-float { display:none; }
body:has(.approved-package-page) .whatsapp-float { bottom:max(118px,calc(118px + env(safe-area-inset-bottom))); }
.hero-booking-panel { position:relative; z-index:4; display:grid; grid-template-columns:1.15fr 1.15fr 1fr .78fr; gap:0; margin-top:52px; border:1px solid rgba(255,255,255,.62); border-radius:8px; color:var(--ink); background:rgba(255,255,255,.98); box-shadow:0 28px 80px rgba(2,13,30,.24); padding:14px; max-width:1120px; }
.hero-booking-panel article { border-right:1px solid var(--line); padding:12px 24px 14px; }
.hero-booking-panel article:last-child { border-right:0; }
@media (prefers-reduced-motion: reduce) {
html { scroll-behavior:auto; }
.hero-slide, .hero-content h1, #homeHeroCopy { transition:none; animation:none; }
}
.hero-booking-panel h3 { margin:0 0 10px; color:var(--navy); font-size:15px; }
.hero-booking-panel p { margin:0 0 10px; }
.mini-fields { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:6px; margin-bottom:10px; }
.mini-fields span { min-height:34px; border:1px solid var(--line); border-radius:6px; display:flex; align-items:center; padding:0 8px; color:var(--muted); background:#fbfdff; font-size:12px; font-weight:850; }
.plan-card { border-radius:10px; color:#fff; background:linear-gradient(145deg,#071a38,#173872); }
.plan-card h3, .plan-card .eyebrow { color:#fff; }
.plan-card p { color:rgba(255,255,255,.82); }
.section { padding:76px 5vw; scroll-margin-top:86px; }
.alt { background:var(--soft); }
.section-head { display:flex; align-items:end; justify-content:space-between; gap:18px; margin-bottom:18px; }
.compact-head { align-items:center; margin-bottom:12px; }
.compact-head h3 { margin:0; color:var(--navy); font-size:22px; }
.review-mode-actions { display:flex; flex-wrap:wrap; gap:12px; align-items:center; justify-content:flex-end; }
.preview-jump-row { display:flex; flex-wrap:wrap; gap:8px; margin:0 0 18px; }
.preview-jump-row a { min-height:34px; display:inline-flex; align-items:center; border:1px solid #d8e6ff; border-radius:999px; padding:0 12px; color:var(--blue); background:#f6f9ff; font-size:12px; font-weight:950; }
.preview-jump-row a:hover, .preview-jump-row a:focus-visible { border-color:var(--blue); background:#fff; }
.grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; }
.hub-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:14px; }
.metric, .wide-panel { border:1px solid var(--line); border-radius:8px; background:#fff; padding:16px; }
.metric b { display:block; color:var(--navy); font-size:32px; line-height:1; }
.metric span { color:var(--muted); font-size:13px; font-weight:850; }
.wide-panel { grid-column:span 2; }
.package-catalogue-panel { grid-column:1 / -1; min-width:0; }
.wide-panel h3 { margin:0 0 10px; color:var(--navy); }
.preview-inspection-section { display:none; background:linear-gradient(180deg,#f7faff 0%,#fff 100%); border-top:1px solid var(--line); border-bottom:1px solid var(--line); }
[data-public-review="true"] .preview-inspection-section { display:block; }
.preview-inspection-layout { display:grid; grid-template-columns:minmax(0,1fr) 360px; gap:18px; align-items:start; }
.preview-inspection-card { border:1px solid var(--line); border-radius:8px; background:#fff; padding:18px; box-shadow:0 16px 38px rgba(7,26,56,.07); }
.preview-inspection-card h3 { margin:0 0 8px; color:var(--navy); }
.preview-feedback-list { display:grid; gap:10px; margin-top:14px; }
.preview-feedback-item { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:12px; align-items:center; border:1px solid #dfe8f6; border-radius:8px; padding:12px; background:#fbfdff; }
.preview-feedback-item p { margin:4px 0 0; color:var(--muted); font-size:13px; }
.preview-feedback-title { color:var(--blue); font-weight:950; }
.preview-feedback-meta { display:grid; gap:6px; justify-items:end; color:var(--muted); font-size:12px; font-weight:900; white-space:nowrap; }
.status-chip { display:inline-flex; align-items:center; min-height:26px; border:1px solid #c7d8fb; border-radius:999px; padding:0 10px; color:#075fe4; background:#f2f7ff; font-size:12px; font-weight:950; }
.status-chip.needs-work { border-color:#ffd7b8; color:#b84f11; background:#fff6ed; }
.status-chip.approved { border-color:#b9e8c9; color:#137a3a; background:#effaf3; }
.status-chip.deferred { border-color:#d6dce8; color:#59667a; background:#f5f7fa; }
.clean-list { margin:12px 0; padding-left:18px; color:var(--navy); }
.clean-list li { margin:8px 0; line-height:1.5; }
.section-cinematic-hero { position:relative; min-height:330px; display:grid; grid-template-columns:minmax(0,720px) auto; align-items:end; gap:24px; overflow:hidden; border-radius:8px; margin:-10px 0 28px; padding:58px 5vw 44px; color:#fff; background:#071a38 center/cover no-repeat; box-shadow:0 22px 70px rgba(7,26,56,.18); }
.section-cinematic-hero::before { content:""; position:absolute; inset:0; z-index:0; background:linear-gradient(90deg,rgba(3,13,28,.86) 0%,rgba(3,13,28,.62) 46%,rgba(3,13,28,.16) 100%); }
.section-cinematic-hero > * { position:relative; z-index:1; }
.section-cinematic-hero h2 { max-width:720px; margin:8px 0 12px; color:#fff; font-size:clamp(36px,4.4vw,58px); line-height:1.03; letter-spacing:0; }
.section-cinematic-hero p:not(.eyebrow) { max-width:680px; margin:0; color:#eef5ff; font-size:17px; line-height:1.55; font-weight:650; }
.section-cinematic-hero .eyebrow { color:#ffb36d; }
.section-cinematic-hero .button-link, .section-cinematic-hero button { align-self:end; min-width:178px; box-shadow:0 16px 40px rgba(0,0,0,.2); }
.cinematic-badges { display:flex; flex-wrap:wrap; gap:10px; margin-top:24px; }
.cinematic-badges span { border:1px solid rgba(255,255,255,.32); border-radius:999px; padding:8px 12px; color:#fff; background:rgba(4,20,44,.46); font-size:12px; font-weight:950; backdrop-filter:blur(10px); }
.stays-cinematic-hero { background-image:url("./assets/hero-carousel/bali-luxury-african-travellers.jpg"); background-position:center 58%; }
.experiences-cinematic-hero { background-image:url("./assets/hero-carousel/zanzibar-luxury-african-travellers.jpg"); background-position:center 46%; }
.mice-cinematic-hero { background-image:url("./assets/hero-carousel/doha-luxury-african-travellers.jpg"); background-position:center 48%; }
.medical-cinematic-hero { min-height:430px; max-width:1320px; margin:0 auto 28px; align-items:end; background-image:image-set(url("./assets/generated/medical-travel-hero-photo.webp") type("image/webp"), url("./assets/generated/medical-travel-hero-photo.png") type("image/png")); background-position:center 50%; background-size:cover; }
.review-cinematic-hero { background-image:url("./assets/hero-carousel/zanzibar-luxury-african-travellers.jpg"); background-position:center 42%; }
.medical-cinematic-hero::before { background:linear-gradient(90deg,rgba(47,28,116,.9) 0%,rgba(66,44,137,.72) 45%,rgba(47,28,116,.18) 100%); }
.medical-cinematic-hero h2 { max-width:700px; font-size:clamp(42px,5vw,68px); }
.medical-cinematic-hero .button-link { min-width:min(520px,100%); justify-self:end; background:var(--blue); }
.stays-section .stay-search-panel, .experiences-section .experience-search-panel { position:relative; z-index:2; margin-top:-56px; margin-bottom:26px; box-shadow:0 26px 70px rgba(7,26,56,.14); }
.gateway-panel h3 { margin-bottom:6px; }
.mini-timeline { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:10px; margin:14px 0; }
.mini-timeline div { border:1px solid var(--line); border-radius:8px; padding:12px; background:#f8fbff; }
.mini-timeline b, .mini-timeline span, .mini-timeline small { display:block; }
.mini-timeline span { margin:6px 0; color:var(--blue); font-weight:950; }
.mini-timeline small { color:var(--muted); font-weight:850; line-height:1.45; }
.card { overflow:hidden; border:1px solid var(--line); border-radius:8px; background:#fff; box-shadow:0 14px 34px rgba(7,26,56,.06); transition:transform .16s ease, box-shadow .16s ease; }
.package-card { display:flex; flex-direction:column; }
.card img { width:100%; aspect-ratio:16/10; height:auto; object-fit:cover; display:block; background:#eef3f7; }
.card div { padding:16px; }
.muted { color:var(--muted); }
.pill { display:inline-flex; margin:0 0 10px; border:1px solid var(--line); border-radius:999px; padding:5px 10px; color:var(--navy); background:#fff; font-size:12px; font-weight:900; }
.text-link, .ghost-link { color:var(--blue); font-weight:900; }
.market-selector { display:flex; flex-wrap:wrap; gap:8px; justify-content:flex-end; }
.market-selector button { min-height:38px; border:1px solid var(--line); background:#fff; color:var(--ink); }
.market-selector button.active { border-color:var(--navy); background:var(--navy); color:#fff; }
.stays-section { background:linear-gradient(180deg,#fff 0%,#f7faff 100%); }
.cruises-section { background:#fff; }
.cruise-search-panel { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:12px; border:1px solid var(--line); border-radius:8px; padding:16px; background:#f8fbff; box-shadow:0 16px 38px rgba(7,26,56,.07); }
.cruise-search-panel label { display:grid; gap:6px; color:var(--navy); font-size:12px; font-weight:950; }
.cruise-search-panel input, .cruise-search-panel select { min-height:46px; border:1px solid #cfd8e6; border-radius:8px; padding:0 12px; color:var(--navy); background:#fff; font:inherit; }
.cruise-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(260px,1fr)); gap:18px; margin-top:22px; }
.cruise-card { min-height:360px; display:grid; align-content:space-between; gap:18px; border:1px solid #dfe8f6; border-radius:8px; padding:20px; color:var(--navy); background:linear-gradient(180deg,#fff 0%,#f7fbff 100%); box-shadow:0 18px 42px rgba(7,26,56,.08); }
.cruise-card h3 { margin:0 0 8px; color:var(--navy); font-size:25px; line-height:1.1; }
.cruise-itinerary { display:grid; gap:7px; color:#536786; font-size:13px; font-weight:800; }
.cruise-itinerary span { border-left:3px solid #cfd8e6; padding-left:9px; }
.cruise-visual-shell { --cruise-navy:var(--hotel-navy,#061742); --cruise-blue:var(--hotel-blue,#2255f4); --cruise-orange:var(--hotel-orange,#f26a21); --cruise-gold:var(--hotel-gold,#d8a33c); --cruise-soft:#f4f8fd; --cruise-line:var(--hotel-line,#dce4f0); --cruise-shadow:0 24px 70px rgba(7,26,56,.12); padding:0; color:var(--cruise-navy); background:#fff; font-family:Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; }
.cruise-visual-shell h1, .cruise-visual-shell h2, .cruise-visual-shell h3 { font-family:Georgia,"Times New Roman",serif; letter-spacing:0; }
.cruise-visual-shell button { border-radius:8px; }
html[data-cruise-card-one="true"] .topbar { min-height:116px; padding:18px 4.1vw 16px; box-shadow:none; border-bottom:1px solid rgba(223,229,239,.72); background:rgba(255,255,255,.985); }
html[data-cruise-card-one="true"] .brand img { width:238px; max-width:24vw; }
html[data-cruise-card-one="true"] .brand span { color:var(--navy); font-size:0; line-height:0; }
html[data-cruise-card-one="true"] .topbar nav { gap:34px; font-size:16px; font-weight:650; }
html[data-cruise-card-one="true"] .topbar nav a, html[data-cruise-card-one="true"] .topbar nav .more-menu { display:inline-flex; }
html[data-cruise-card-one="true"] .topbar nav a[data-primary-nav="cruises"] { color:var(--blue); font-weight:850; }
html[data-cruise-card-one="true"] .topbar nav a[data-primary-nav="cruises"]::after { height:4px; bottom:-10px; background:var(--orange); }
.cruise-hero { position:relative; min-height:calc(100vh - 116px); display:grid; align-content:end; overflow:hidden; padding:118px 4vw 42px; color:#fff; background:#071a38; }
.cruise-video { position:absolute; inset:0; z-index:0; overflow:hidden; background:url("./assets/cruises/hero/lery-hago-cruise-hero-poster.jpg") center/cover no-repeat; }
.cruise-video video { position:absolute; inset:0; width:100%; height:100%; border:0; object-fit:cover; object-position:center; pointer-events:none; }
.cruise-video::after { content:""; position:absolute; inset:0; background:linear-gradient(90deg,rgba(5,17,42,.72) 0%,rgba(5,17,42,.44) 36%,rgba(5,17,42,.08) 72%),linear-gradient(0deg,rgba(5,17,42,.58),transparent 46%); }
.cruise-hero-copy, .cruise-search-bar, .cruise-trust-row { position:relative; z-index:1; }
.cruise-hero-copy { max-width:760px; align-self:end; margin-bottom:58px; }
.cruise-hero-copy .eyebrow { color:#fff; font-size:15px; font-weight:950; letter-spacing:.44em; }
.cruise-hero-copy .eyebrow::after { content:""; display:inline-block; width:78px; height:3px; margin-left:16px; vertical-align:middle; background:var(--cruise-gold); }
.cruise-hero-copy h1 { max-width:760px; margin:24px 0 14px; color:#fff; font-size:clamp(58px,5.8vw,96px); line-height:.98; font-weight:700; }
.cruise-hero-copy h1 span { color:#ffd75e; font-style:italic; font-weight:700; }
.cruise-hero-copy p:not(.eyebrow) { max-width:720px; margin:0 0 28px; color:#f4f8ff; font-size:clamp(20px,1.55vw,28px); line-height:1.25; font-weight:500; }
.cruise-ghost { display:inline-flex; align-items:center; gap:12px; min-height:57px; border:1.5px solid rgba(255,255,255,.86); border-radius:999px; padding:0 28px; color:#fff; background:rgba(7,26,56,.16); font-size:16px; font-weight:850; }
.cruise-ghost::before { content:""; width:32px; height:32px; border:2px solid rgba(255,255,255,.72); border-radius:50%; background:radial-gradient(circle at 54% 50%,#fff 0 4px,transparent 5px); }
.cruise-search-bar { width:min(1500px,92vw); display:grid; grid-template-columns:1.1fr 1fr .92fr .8fr 1.1fr; align-items:center; gap:0; margin-top:48px; border:1px solid rgba(255,255,255,.8); border-radius:14px; padding:14px; color:var(--cruise-navy); background:rgba(255,255,255,.98); box-shadow:0 28px 80px rgba(3,13,28,.26); }
.cruise-search-bar button { min-height:72px; display:grid; grid-template-columns:34px minmax(0,1fr) 18px; justify-items:start; align-items:center; align-content:center; border-right:1px solid var(--cruise-line); color:var(--cruise-navy); background:#fff; text-align:left; }
.cruise-search-bar button i { grid-row:1 / span 2; display:grid; place-items:center; width:28px; height:28px; border-radius:50%; color:var(--cruise-blue); background:#eef5ff; font-style:normal; }
.cruise-search-bar button i::before { color:var(--cruise-blue); font-size:22px; line-height:1; }
.cruise-search-bar button i[data-cruise-icon="pin"]::before { content:"⌖"; }
.cruise-search-bar button i[data-cruise-icon="ship"]::before { content:"♙"; }
.cruise-search-bar button i[data-cruise-icon="calendar"]::before { content:"▣"; }
.cruise-search-bar button i[data-cruise-icon="guests"]::before { content:"♧"; }
.cruise-search-bar button span { color:#6b7890; font-size:12px; font-weight:900; }
.cruise-search-bar button b { font-size:15px; }
.cruise-search-bar button em { grid-row:1 / span 2; align-self:center; color:var(--cruise-blue); font-style:normal; }
.cruise-search-bar .cruise-cta { justify-items:center; border-right:0; color:#fff; background:linear-gradient(135deg,#ff7a28,#e93619); text-align:center; }
.cruise-card-one-search { width:min(1640px,92vw); grid-template-columns:1.12fr 1.04fr .96fr .82fr 1.08fr; margin:0 auto 24px; border-color:rgba(255,255,255,.82); border-radius:14px; padding:24px 22px; background:rgba(255,255,255,.985); box-shadow:0 22px 62px rgba(3,13,28,.16); }
.cruise-card-one-search button { min-height:72px; grid-template-columns:48px minmax(0,1fr) 22px; border-right:1px solid #d7deea; border-radius:0; background:transparent; }
.cruise-card-one-search button i { grid-column:1; grid-row:1 / span 2; position:relative; width:34px; height:34px; background:transparent; }
.cruise-card-one-search button i::before { font-size:31px; }
.cruise-card-one-search button span { grid-column:2; grid-row:1; color:#1f2d4a; font-size:16px; line-height:1.1; font-weight:650; }
.cruise-card-one-search button b { grid-column:2; grid-row:2; color:#465a79; font-size:16px; line-height:1.2; font-weight:500; }
.cruise-card-one-search button em { grid-column:3; grid-row:1 / span 2; justify-self:end; }
.cruise-card-one-search .cruise-cta { min-height:76px; grid-template-columns:1fr auto; justify-items:center; column-gap:14px; border-radius:999px; background:linear-gradient(135deg,#ff7134,#e93717); font-size:20px; font-weight:850; }
.cruise-card-one-search .cruise-cta span { grid-column:1; grid-row:1; justify-self:end; color:#fff; }
.cruise-card-one-search .cruise-cta em { grid-column:2; grid-row:1; justify-self:start; color:#fff; font-size:28px; }
.cruise-trust-row { display:flex; flex-wrap:wrap; align-items:center; gap:18px; min-height:54px; color:#fff; font-weight:750; }
.cruise-trust-row span { border:0; border-radius:0; padding:0; background:transparent; }
.cruise-trust-row span:first-child { min-height:52px; display:inline-flex; align-items:center; border:1.5px solid rgba(255,255,255,.82); border-radius:999px; padding:0 24px; background:rgba(7,26,56,.2); font-weight:850; }
.cruise-trust-row span:nth-child(2) { opacity:.95; }
.cruise-editorial-section, .cruise-destination-editorial, .cruise-onboard, .cruise-inclusions, .cruise-results, .cruise-lead-footer, .cruise-detail > section, .cruise-detail-tabs, .cruise-booking { padding:58px 5vw; }
.cruise-section-head { display:flex; align-items:end; justify-content:space-between; gap:18px; margin-bottom:22px; }
.cruise-section-head h2, .cruise-destination-editorial h2, .cruise-onboard h2, .cruise-inclusions h2, .cruise-detail h2, .cruise-booking h1 { margin:0; color:var(--cruise-navy); font-size:clamp(34px,5vw,62px); line-height:1; }
.cruise-in-more { padding:72px 5vw 78px; background:linear-gradient(180deg,#fff 0%,#fffaf2 100%); }
.cruise-in-more h2 { margin:0 auto 54px; max-width:1180px; color:#040811; font-family:Inter,Arial,sans-serif; font-size:clamp(42px,5.2vw,74px); font-weight:950; line-height:1.04; text-align:center; letter-spacing:0; }
.cruise-in-more-grid { width:min(1760px,100%); display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:28px; margin:0 auto; }
.cruise-in-more-card { min-height:710px; border-radius:28px; overflow:hidden; background:#071832; box-shadow:0 22px 58px rgba(7,26,56,.14); }
.cruise-in-more-card button,
.cruise-in-more-card a { position:relative; width:100%; height:100%; min-height:710px; display:flex; align-items:flex-start; justify-content:flex-start; border:0; border-radius:0; padding:40px 44px; color:#fff; text-align:left; text-decoration:none; background:var(--bg) var(--photo-pos,center)/cover no-repeat; transition:transform .18s ease, filter .18s ease; }
.cruise-in-more-label { position:relative; z-index:1; color:#101a2b; font-size:clamp(30px,2.8vw,44px); line-height:1; font-weight:950; letter-spacing:0; text-shadow:0 1px 18px rgba(255,255,255,.45); }
.cruise-in-more-card button:hover,
.cruise-in-more-card a:hover { transform:scale(1.01); filter:saturate(1.04) contrast(1.02); }
.cruise-in-more-card button:focus-visible,
.cruise-in-more-card a:focus-visible { outline:4px solid rgba(7,95,228,.55); outline-offset:-8px; }
.cruise-sr-only { position:absolute !important; width:1px !important; height:1px !important; overflow:hidden !important; clip:rect(1px,1px,1px,1px) !important; clip-path:inset(50%) !important; white-space:nowrap !important; }
.cruise-package-showcase { padding:44px 5vw 68px; background:#fff; }
.cruise-package-grid { width:min(1580px,100%); display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:34px; margin:0 auto; }
.cruise-package-grid + .cruise-package-grid { margin-top:36px; }
.cruise-package-card { display:grid; grid-template-rows:auto 1fr auto; overflow:hidden; border-radius:6px; background:#fff; color:#151923; box-shadow:0 12px 34px rgba(4,18,42,.14); border:1px solid rgba(8,25,58,.08); }
.cruise-package-photo { position:relative; min-height:190px; overflow:hidden; background:#d9e8f8; }
.cruise-package-photo img { width:100%; height:100%; min-height:190px; display:block; object-fit:cover; object-position:center; }
.cruise-package-badge { position:absolute; top:18px; left:18px; display:inline-flex; align-items:center; gap:10px; min-height:48px; border-radius:7px; padding:0 18px; color:#fff; background:#183a91; box-shadow:0 8px 18px rgba(6,22,68,.18); font-size:21px; font-weight:900; line-height:1; }
.cruise-package-badge i { display:inline-grid; place-items:center; width:30px; height:30px; border:1px solid rgba(255,255,255,.55); border-radius:8px; font-style:normal; font-size:20px; }
.cruise-package-body { display:grid; align-content:start; padding:24px 28px 20px; }
.cruise-package-body h3 { min-height:112px; margin:0 0 18px; color:#092b83; font-family:Inter,Arial,sans-serif; font-size:clamp(24px,1.75vw,31px); font-weight:950; line-height:1.18; letter-spacing:0; }
.cruise-package-meta { display:grid; gap:13px; margin:0; padding:0; list-style:none; color:#323846; font-size:21px; line-height:1.24; }
.cruise-package-meta li { display:grid; grid-template-columns:34px minmax(0,1fr); gap:14px; align-items:start; }
.cruise-package-meta span { color:#222; font-size:26px; line-height:1; transform:translateY(-1px); }
.cruise-package-itinerary { justify-self:start; min-height:auto; margin:8px 0 24px 48px; border:0; border-radius:0; padding:0; color:#082b83; background:transparent; box-shadow:inset 0 -2px 0 currentColor; font-size:21px; font-weight:900; line-height:1.1; }
.cruise-package-brand { display:flex; align-items:center; gap:13px; margin-top:auto; color:#082b83; letter-spacing:.14em; font-size:18px; font-weight:950; }
.cruise-package-brand span { display:inline-grid; place-items:center; width:48px; height:48px; color:#082b83; font-size:42px; line-height:1; }
.cruise-package-price { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,.92fr); gap:8px 18px; align-items:end; border-top:1px solid rgba(8,25,58,.13); padding:22px 22px 18px; background:#fff; }
.cruise-package-price > div:first-child span { display:block; margin-bottom:2px; color:#3d4149; font-size:20px; line-height:1.2; }
.cruise-package-price strong { display:block; color:#082b83; font-size:clamp(42px,3vw,56px); font-weight:950; line-height:.95; letter-spacing:-.02em; }
.cruise-package-secondary-prices { display:grid; gap:5px; align-self:center; color:#343943; font-size:18px; line-height:1.15; }
.cruise-package-secondary-prices span { display:block; }
.cruise-package-secondary-prices b { color:#082b83; font-weight:950; }
.cruise-package-price button { grid-column:1 / -1; width:100%; min-height:64px; margin-top:14px; border:0; border-radius:4px; color:#082b83; background:#ffde29; box-shadow:none; font-size:20px; font-weight:950; }
.cruise-package-detail { background:#f7f9fd; color:#111827; }
.cruise-package-back { margin:34px 5vw 0; min-height:44px; border:1px solid rgba(8,25,58,.16); border-radius:999px; padding:0 20px; color:#082b83; background:#fff; box-shadow:0 8px 22px rgba(7,26,56,.08); font-size:15px; font-weight:900; }
.cruise-package-detail-hero { min-height:620px; display:grid; grid-template-columns:minmax(0,1fr) minmax(320px,420px); gap:28px; align-items:end; margin-top:18px; padding:86px 5vw 56px; color:#fff; background:linear-gradient(90deg,rgba(4,16,41,.88),rgba(4,16,41,.48) 48%,rgba(4,16,41,.16)),var(--package-bg) center/cover; }
.cruise-package-detail-copy { max-width:880px; display:grid; justify-items:start; gap:18px; }
.cruise-package-detail-copy .cruise-package-badge { position:static; box-shadow:0 12px 30px rgba(2,10,30,.28); }
.cruise-package-detail-copy h1 { max-width:980px; margin:0; color:#fff; font-family:Georgia,"Times New Roman",serif; font-size:clamp(42px,5.4vw,86px); line-height:.98; letter-spacing:0; }
.cruise-package-detail-copy p:not(.eyebrow) { max-width:720px; margin:0; color:#eef5ff; font-size:clamp(18px,1.6vw,24px); line-height:1.42; }
.cruise-package-detail-facts { display:flex; flex-wrap:wrap; gap:12px; margin-top:6px; }
.cruise-package-detail-facts span { border:1px solid rgba(255,255,255,.34); border-radius:999px; padding:10px 14px; color:#fff; background:rgba(6,22,48,.42); font-weight:900; }
.cruise-package-detail-price { display:grid; gap:10px; border-radius:8px; padding:28px; color:#08204c; background:rgba(255,255,255,.96); box-shadow:0 22px 60px rgba(2,10,30,.26); }
.cruise-package-detail-price > span { color:#303948; font-size:18px; font-weight:750; }
.cruise-package-detail-price strong { display:block; color:#082b83; font-size:clamp(44px,4vw,64px); font-weight:950; line-height:.92; }
.cruise-package-detail-price button { min-height:58px; margin-top:8px; border:0; border-radius:4px; color:#082b83; background:#ffde29; font-size:19px; font-weight:950; }
.cruise-package-detail-price small { color:#4d5664; font-size:14px; line-height:1.45; }
.cruise-package-detail-fares { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:8px; margin:4px 0; color:#263142; font-size:15px; }
.cruise-package-detail-fares span { display:grid; gap:2px; border-radius:6px; padding:10px; background:#f5f8ff; }
.cruise-package-detail-fares b { color:#082b83; }
.cruise-package-detail-main { display:grid; grid-template-columns:minmax(0,1.08fr) minmax(320px,.92fr); gap:28px; padding:54px 5vw 26px; }
.cruise-package-detail-main figure { min-height:420px; margin:0; overflow:hidden; border-radius:8px; background:#d7e5f7; box-shadow:0 20px 58px rgba(7,26,56,.12); }
.cruise-package-detail-main img { width:100%; height:100%; min-height:420px; display:block; object-fit:cover; }
.cruise-package-detail-summary { display:grid; align-content:center; border:1px solid rgba(8,25,58,.1); border-radius:8px; padding:34px; background:#fff; box-shadow:0 16px 42px rgba(7,26,56,.08); }
.cruise-package-detail-summary h2,
.cruise-package-detail-itinerary h2 { margin:0; color:#061842; font-family:Georgia,"Times New Roman",serif; font-size:clamp(34px,4vw,58px); line-height:1; }
.cruise-package-detail-summary p { color:#3c4656; font-size:18px; line-height:1.58; }
.cruise-package-detail-itinerary { display:grid; grid-template-columns:minmax(260px,.45fr) minmax(0,1fr); gap:30px; padding:34px 5vw; background:#fff; }
.cruise-package-detail-itinerary ol { display:grid; grid-template-columns:repeat(auto-fit,minmax(170px,1fr)); gap:12px; margin:0; padding:0; list-style:none; }
.cruise-package-detail-itinerary li { min-height:116px; display:grid; align-content:start; gap:10px; border:1px solid rgba(8,25,58,.12); border-radius:8px; padding:18px; background:#fbfdff; box-shadow:0 10px 26px rgba(7,26,56,.06); }
.cruise-package-detail-itinerary li b { width:36px; height:36px; display:grid; place-items:center; border-radius:50%; color:#fff; background:#183a91; }
.cruise-package-detail-itinerary li span { color:#172033; font-weight:900; line-height:1.25; }
.cruise-package-detail-guard { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:14px; padding:28px 5vw 68px; }
.cruise-package-detail-guard article { border:1px solid rgba(8,25,58,.1); border-radius:8px; padding:22px; background:#fff; box-shadow:0 12px 34px rgba(7,26,56,.07); }
.cruise-package-detail-guard h3 { margin:0 0 8px; color:#082b83; font-size:20px; }
.cruise-package-detail-guard p { margin:0; color:#445064; line-height:1.48; }
.cruise-planning { background:#f7f9fd; color:#111827; }
.cruise-planning-hero { display:grid; grid-template-columns:minmax(0,1fr) minmax(280px,390px); gap:28px; align-items:end; margin-top:18px; padding:72px 5vw 46px; color:#fff; background:linear-gradient(120deg,#061842 0%,#0c2b66 54%,#153a8a 100%); }
.cruise-planning-hero > div { max-width:920px; display:grid; justify-items:start; gap:16px; }
.cruise-planning-hero .cruise-package-badge { position:static; box-shadow:0 12px 30px rgba(2,10,30,.24); }
.cruise-planning-hero h1 { max-width:880px; margin:0; color:#fff; font-family:Georgia,"Times New Roman",serif; font-size:clamp(42px,5vw,78px); line-height:1; letter-spacing:0; }
.cruise-planning-hero p:not(.eyebrow) { max-width:760px; margin:0; color:#e9f2ff; font-size:clamp(18px,1.5vw,23px); line-height:1.46; }
.cruise-planning-hero aside { display:grid; gap:8px; border:1px solid rgba(255,255,255,.22); border-radius:8px; padding:26px; background:rgba(255,255,255,.95); color:#08204c; box-shadow:0 22px 60px rgba(2,10,30,.2); }
.cruise-planning-hero aside span { color:#3f4b5d; font-weight:800; }
.cruise-planning-hero aside strong { color:#082b83; font-size:clamp(42px,4vw,60px); font-weight:950; line-height:.95; }
.cruise-planning-hero aside small { color:#4b5567; line-height:1.45; }
.cruise-planning-shell { display:grid; grid-template-columns:270px minmax(0,1fr) 340px; gap:24px; padding:34px 5vw 72px; }
.cruise-planning-steps,
.cruise-planning-summary,
.cruise-planning-panel { border:1px solid rgba(8,25,58,.1); border-radius:8px; background:#fff; box-shadow:0 14px 36px rgba(7,26,56,.08); }
.cruise-planning-steps { align-self:start; display:grid; gap:8px; padding:14px; position:sticky; top:112px; }
.cruise-planning-steps button { min-height:58px; display:grid; grid-template-columns:34px minmax(0,1fr); gap:12px; align-items:center; border:1px solid transparent; border-radius:7px; padding:10px 12px; color:#344053; background:transparent; text-align:left; font-weight:850; }
.cruise-planning-steps b { width:32px; height:32px; display:grid; place-items:center; border-radius:50%; color:#082b83; background:#eef5ff; }
.cruise-planning-steps button.active { border-color:rgba(8,43,131,.22); color:#082b83; background:#f4f8ff; }
.cruise-planning-steps button.active b,
.cruise-planning-steps button.done b { color:#fff; background:#183a91; }
.cruise-planning-steps button.done { color:#102a63; }
.cruise-planning-panel { min-height:560px; padding:34px; }
.cruise-planning-panel section { display:grid; gap:20px; }
.cruise-planning-panel h2 { max-width:760px; margin:0; color:#061842; font-family:Georgia,"Times New Roman",serif; font-size:clamp(34px,4vw,58px); line-height:1; }
.cruise-planning-panel p { max-width:720px; margin:0; color:#445064; font-size:18px; line-height:1.55; }
.cruise-planning-choice-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; margin-top:4px; }
.cruise-planning-choice-grid label,
.cruise-planning-choice-grid button { min-height:104px; display:grid; align-content:start; gap:8px; border:1px solid rgba(8,25,58,.12); border-radius:8px; padding:18px; color:#172033; background:#fbfdff; text-align:left; box-shadow:0 10px 26px rgba(7,26,56,.05); font:inherit; }
.cruise-planning-choice-grid button.selected { border-color:#183a91; background:#f3f7ff; box-shadow:0 0 0 2px rgba(24,58,145,.08),0 12px 30px rgba(7,26,56,.08); }
.cruise-planning-choice-grid label.selected { border-color:#183a91; background:#f3f7ff; box-shadow:0 0 0 2px rgba(24,58,145,.08),0 12px 30px rgba(7,26,56,.08); }
.cruise-planning-choice-grid span,
.cruise-planning-choice-grid strong { color:#082b83; font-weight:950; }
.cruise-planning-choice-grid small { color:#526075; line-height:1.35; }
.cruise-planning-choice-grid input { width:18px; height:18px; accent-color:#183a91; }
.cruise-planning-guard-note,
.cruise-planning-confirmation { border:1px solid rgba(234,153,18,.24); border-radius:8px; padding:20px; background:#fff8e6; color:#49360d; }
.cruise-planning-guard-note h3,
.cruise-planning-confirmation h3 { margin:0 0 6px; color:#082b83; }
.cruise-planning-form { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; }
.cruise-planning-form label { display:grid; gap:8px; color:#172033; font-weight:850; }
.cruise-planning-form label.wide { grid-column:1 / -1; }
.cruise-planning-form input,
.cruise-planning-form select,
.cruise-planning-form textarea { width:100%; border:1px solid rgba(8,25,58,.16); border-radius:6px; padding:14px 13px; color:#172033; background:#fff; font:inherit; }
.cruise-planning-review { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:14px; }
.cruise-planning-review article { border:1px solid rgba(8,25,58,.12); border-radius:8px; padding:20px; background:#fbfdff; }
.cruise-planning-review h3 { margin:0 0 8px; color:#082b83; }
.cruise-planning-review strong { color:#061842; }
.cruise-planning-validation,
.cruise-planning-status { border:1px solid rgba(8,43,131,.16); border-radius:8px; padding:18px 20px; background:#f4f8ff; color:#102a63; }
.cruise-planning-validation { border-color:rgba(190,92,19,.28); background:#fff8e8; color:#67410a; }
.cruise-planning-validation strong,
.cruise-planning-status h3 { margin:0 0 6px; color:#082b83; }
.cruise-planning-validation p,
.cruise-planning-status p { margin:0; font-size:16px; line-height:1.48; }
.cruise-planning-field-error { color:#b45309; font-weight:850; line-height:1.35; }
.cruise-planning-status.success { border-color:rgba(34,134,80,.28); background:#eefaf3; color:#154d2f; }
.cruise-planning-status.success h3 { color:#146c43; }
.cruise-planning-status.error { border-color:rgba(185,28,28,.26); background:#fff1f1; color:#7f1d1d; }
.cruise-planning-status.error h3 { color:#b91c1c; }
.cruise-planning-status strong { display:inline-block; margin-top:10px; color:#082b83; }
.cruise-planning-reference-summary { display:grid; gap:5px; margin-top:14px; padding-top:14px; border-top:1px solid rgba(20,108,67,.18); color:#173b28; }
.cruise-planning-reference-summary b { color:#0c3f25; }
.cruise-planning-reference-summary span { font-size:15px; line-height:1.42; }
.cruise-planning-next-step { margin-top:12px !important; }
.cruise-planning-submit-row { display:flex; flex-wrap:wrap; gap:12px; align-items:center; }
.cruise-planning-submit-row button { min-height:50px; border:0; border-radius:4px; padding:0 24px; color:#082b83; background:#ffde29; font-weight:950; }
.cruise-planning-submit-row button[data-back-to-cruises] { border:1px solid rgba(8,25,58,.18); color:#172033; background:#fff; }
.cruise-planning-submit-row button:disabled { cursor:wait; opacity:.68; }
.cruise-planning-summary { align-self:start; overflow:hidden; position:sticky; top:112px; }
.cruise-planning-summary img { width:100%; height:190px; display:block; object-fit:cover; }
.cruise-planning-summary > :not(img) { margin-left:22px; margin-right:22px; }
.cruise-planning-summary .eyebrow { margin-top:22px; }
.cruise-planning-summary h2 { margin-top:4px; color:#061842; font-size:25px; line-height:1.18; }
.cruise-planning-summary dl { display:grid; gap:12px; margin-top:18px; margin-bottom:20px; }
.cruise-planning-summary div { display:grid; gap:3px; border-top:1px solid rgba(8,25,58,.1); padding-top:10px; }
.cruise-planning-summary dt { color:#617086; font-size:13px; font-weight:850; text-transform:uppercase; letter-spacing:.08em; }
.cruise-planning-summary dd { margin:0; color:#172033; font-weight:850; line-height:1.35; }
.cruise-planning-safe-note { margin-bottom:22px; border-radius:6px; padding:14px; color:#4b3810; background:#fff8e6; font-size:14px; line-height:1.45; }
.cruise-planning-confirmation > button { justify-self:start; min-height:50px; border:0; border-radius:4px; padding:0 24px; color:#082b83; background:#ffde29; font-weight:950; }
.cruise-destination-grid article { min-height:280px; display:grid; align-content:end; overflow:hidden; border-radius:8px; padding:22px; color:#fff; background:linear-gradient(0deg,rgba(2,12,32,.78),rgba(2,12,32,.08)),var(--bg) center/cover; box-shadow:var(--cruise-shadow); transition:transform .18s ease, box-shadow .18s ease; }
.cruise-destination-grid article:hover { transform:translateY(-4px); box-shadow:0 28px 80px rgba(7,26,56,.18); }
.cruise-destination-grid h3 { margin:0; color:#fff; font-size:30px; line-height:1.05; }
.cruise-destination-grid p { margin:8px 0 14px; color:#f3f7ff; }
.cruise-destination-grid button { width:max-content; color:#fff; background:transparent; padding:0; min-height:28px; }
.cruise-destination-editorial { position:relative; background:linear-gradient(90deg,rgba(5,17,42,.86),rgba(5,17,42,.18)),var(--feature) center/cover; color:#fff; }
.cruise-destination-editorial::after { content:""; position:absolute; left:0; right:0; bottom:0; height:36%; background:linear-gradient(180deg,transparent,#fff); pointer-events:none; }
.cruise-destination-editorial > * { position:relative; z-index:1; }
.cruise-destination-editorial h2, .cruise-destination-editorial > div:first-child p { color:#fff; }
.cruise-destination-editorial > div:first-child { max-width:760px; margin-bottom:180px; }
.cruise-destination-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:18px; }
.cruise-tabs { display:grid; grid-template-columns:repeat(auto-fit,minmax(130px,1fr)); gap:0; margin:22px 0; border:1px solid var(--cruise-line); border-radius:8px; overflow:hidden; background:#fff; }
.cruise-tabs button { border-radius:0; color:var(--cruise-navy); background:#fff; border-right:1px solid var(--cruise-line); }
.cruise-tabs button.active { color:#fff; background:var(--cruise-navy); }
.cruise-split-feature, .cruise-inclusions, .cruise-ship, .cruise-itinerary-overview, .cruise-included-upgrades { display:grid; grid-template-columns:1.15fr .85fr; gap:22px; align-items:stretch; }
.cruise-split-feature > div, .cruise-inclusions > div, .cruise-ship > div, .cruise-included-upgrades > div, .api-guard, .review-grid article { border:1px solid var(--cruise-line); border-radius:8px; padding:28px; background:#fff; }
.cruise-split-feature img, .cruise-ship img { width:100%; min-height:360px; border-radius:8px; object-fit:cover; object-position:top center; }
.cruise-inclusions { background:linear-gradient(180deg,#fff,#f8fbff); }
.cruise-icon-list { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; padding:0; margin:18px 0 0; list-style:none; }
.cruise-icon-list li { min-height:46px; display:flex; align-items:center; border:1px solid #edf2f8; border-radius:8px; padding:10px 12px; background:#fbfdff; font-weight:850; }
.cruise-icon-list li::before { content:""; width:10px; height:10px; flex:0 0 10px; margin-right:10px; border-radius:50%; background:var(--cruise-gold); }
.cruise-chip-row { display:flex; flex-wrap:wrap; gap:10px; margin-bottom:20px; }
.cruise-chip-row span, .cruise-chip-row button { min-height:34px; display:inline-flex; align-items:center; border:1px solid #c7d8fb; border-radius:999px; padding:0 12px; color:var(--cruise-blue); background:#fff; font-weight:900; }
.cruise-result-list { display:grid; gap:16px; }
.cruise-result-card { display:grid; grid-template-columns:minmax(260px,.8fr) minmax(0,1fr) 220px; gap:0; overflow:hidden; border:1px solid var(--cruise-line); border-radius:8px; background:#fff; box-shadow:0 18px 46px rgba(7,26,56,.08); }
.cruise-result-card img { width:100%; height:100%; min-height:240px; object-fit:cover; }
.cruise-result-card div, .cruise-result-card aside { padding:24px; }
.cruise-result-card h3 { margin:0 0 10px; color:var(--cruise-navy); font-size:32px; }
.cruise-result-card aside { display:grid; align-content:center; gap:8px; border-left:1px solid var(--cruise-line); }
.cruise-result-card aside strong { font-family:Georgia,"Times New Roman",serif; color:var(--cruise-navy); font-size:34px; }
.cruise-result-card aside button:last-child, .cruise-next, .cruise-lead-footer button { background:linear-gradient(135deg,#f7bd55,#ee8b25); color:var(--cruise-navy); }
.cruise-detail-hero { min-height:560px; display:grid; grid-template-columns:minmax(0,1fr) 340px; gap:24px; align-items:end; padding:110px 5vw 52px; color:#fff; background:linear-gradient(90deg,rgba(4,16,41,.86),rgba(4,16,41,.2)),url("./assets/hero-carousel/bali-luxury-african-travellers.jpg") center/cover; }
.cruise-detail-hero h1 { color:#fff; font-size:clamp(46px,6vw,78px); }
.cruise-detail-hero aside { border-radius:8px; padding:28px; color:var(--cruise-navy); background:#fff; box-shadow:0 22px 55px rgba(0,0,0,.2); }
.cruise-detail-hero aside strong { display:block; font-family:Georgia,"Times New Roman",serif; font-size:44px; }
.cruise-facts { display:flex; flex-wrap:wrap; gap:12px; margin-top:22px; }
.cruise-facts span { border:1px solid rgba(255,255,255,.34); border-radius:999px; padding:9px 12px; background:rgba(4,20,44,.38); font-weight:900; }
.cruise-detail-tabs { position:sticky; top:70px; z-index:9; display:flex; flex-wrap:wrap; gap:20px; border-bottom:1px solid var(--cruise-line); background:#fff; }
.cruise-itinerary-overview { grid-template-columns:360px minmax(0,1fr) 360px; }
.cruise-itinerary-overview > div:first-child { display:grid; gap:8px; }
.cruise-itinerary-overview button { display:grid; justify-items:start; min-height:70px; color:var(--cruise-navy); background:#f8fbff; border:1px solid var(--cruise-line); }
.route-map { min-height:430px; display:flex; flex-wrap:wrap; align-content:center; justify-content:center; gap:14px; border-radius:8px; padding:26px; background:linear-gradient(145deg,#dff5ff,#a9dbf5); }
.route-map span { border-radius:999px; padding:9px 13px; color:#fff; background:var(--cruise-navy); font-weight:900; }
.cruise-story div, .cruise-gallery, .cruise-mini-grid, .cruise-cabins > div, .room-grid, .addons-grid, .review-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(220px,1fr)); gap:16px; }
.cruise-story article, .cruise-gallery article, .cruise-mini-grid article, .cruise-cabins article, .room-grid article, .addons-grid label { border:1px solid var(--cruise-line); border-radius:8px; padding:14px; background:#fff; }
.cruise-story img, .cruise-gallery img { width:100%; aspect-ratio:16/10; border-radius:7px; object-fit:cover; }
.cruise-gallery .large { grid-column:span 2; grid-row:span 2; }
.cruise-cabins article.selected { border-color:var(--cruise-blue); box-shadow:0 0 0 2px rgba(7,95,228,.14); }
.cruise-journey { background:var(--cruise-soft); }
.cruise-journey div { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:12px; margin:20px 0; }
.cruise-journey button { color:var(--cruise-navy); background:#fff; border:1px solid var(--cruise-line); }
.cruise-lead-footer { display:grid; grid-template-columns:1fr 1fr; gap:24px; color:#fff; background:#050b12; }
.cruise-lead-footer h2 { color:#fff; }
.cruise-lead-footer form { display:grid; gap:12px; align-content:center; }
.cruise-lead-footer input { min-height:46px; border:1px solid rgba(255,255,255,.25); border-radius:8px; padding:0 12px; background:#101b26; color:#fff; }
.cruise-lead-footer footer { grid-column:1 / -1; display:flex; flex-wrap:wrap; gap:18px; align-items:center; border-top:1px solid rgba(255,255,255,.16); padding-top:24px; }
.cruise-lead-footer img { width:150px; }

.cruise-destination-editorial.card06-featured { position:relative; overflow:visible; padding:0 0 44px; background:#fff; color:var(--cruise-navy); }
.cruise-destination-editorial.card06-featured::after { content:none; display:none; }
.cruise-destination-editorial.card06-featured > * { position:relative; z-index:auto; }
.cruise-destination-editorial.card06-featured > div.cruise-dest-hero { max-width:none; margin-bottom:0; }
.card06-hero { position:relative; min-height:clamp(400px,28.5vw,474px); display:grid; grid-template-columns:minmax(380px,520px) minmax(220px,1fr); align-items:start; gap:32px; overflow:hidden; padding:50px clamp(42px,4.4vw,72px); color:#fff; background:#071a38; }
.card06-hero-photo { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:50% 46%; }
.card06-hero-shade { position:absolute; inset:0; background:linear-gradient(90deg,rgba(2,13,31,.82) 0%,rgba(2,13,31,.58) 28%,rgba(2,13,31,.18) 58%,rgba(2,13,31,.04) 100%); }
.card06-hero-copy { position:relative; z-index:1; max-width:520px; }
.card06-hero .eyebrow { margin-bottom:18px; color:#ffcf49; letter-spacing:.38em; }
.card06-hero h2 { max-width:480px; margin:0; color:#fff; font-size:clamp(50px,4.8vw,74px); line-height:.94; letter-spacing:0; }
.card06-hero p:not(.eyebrow) { max-width:470px; margin:14px 0 0; color:#fff; font-size:19px; line-height:1.36; }
.card06-hero button { min-height:44px; margin-top:20px; border:1px solid rgba(255,255,255,.88); border-radius:999px; padding:0 20px; color:#fff; background:rgba(4,16,41,.22); box-shadow:none; }
.card06-hero blockquote, .card06-script { display:none; }
.cruise-editorial-destination-grid.card06-grid { width:min(1760px,calc(100% - 88px)); display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:22px 24px; margin:22px auto 0; padding:0; }
.cruise-editorial-destination-grid.card06-grid .card06-destination-card { position:relative; min-height:286px; aspect-ratio:1.96 / 1; display:block; overflow:hidden; border-radius:8px; padding:0; color:#fff; background:#061734; box-shadow:none; transform:none; }
.cruise-editorial-destination-grid.card06-grid .card06-destination-card:nth-child(n) { min-height:286px; }
.cruise-editorial-destination-grid.card06-grid .card06-destination-card:hover { transform:translateY(-2px); box-shadow:0 18px 46px rgba(7,26,56,.14); }
.cruise-editorial-destination-grid.card06-grid .card06-destination-card:focus-within { outline:3px solid rgba(7,95,228,.42); outline-offset:3px; }
.card06-card-photo { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:var(--photo-pos,50% 50%); }
.card06-card-scrim { position:absolute; inset:0; background:linear-gradient(180deg,rgba(4,16,41,.04) 0%,rgba(4,16,41,.2) 42%,rgba(4,16,41,.78) 100%); }
.card06-card-copy { position:absolute; z-index:1; left:26px; right:210px; bottom:20px; display:grid; align-content:end; min-height:58%; }
.card06-card-copy span { color:#d7e8ff; font-size:11px; font-weight:900; letter-spacing:.21em; line-height:1.3; text-transform:uppercase; }
.card06-card-copy h3 { margin:64px 0 6px; color:#fff; font-size:clamp(28px,2.45vw,42px); line-height:.98; letter-spacing:0; }
.card06-card-copy p { max-width:330px; margin:0 0 12px; color:#f4f8ff; font-size:16px; line-height:1.34; }
.card06-card-copy button { width:max-content; min-height:28px; padding:0; color:#fff; background:transparent; border:0; border-radius:0; box-shadow:inset 0 -1px 0 rgba(255,255,255,.85); font-weight:850; }
.card06-card-copy small { margin-top:12px; color:#fff; font-size:13px; font-weight:850; }
.card06-card-copy small::before { content:""; display:inline-block; width:16px; height:16px; margin-right:9px; vertical-align:-3px; border:1.8px solid currentColor; border-radius:4px; transform:rotate(45deg); opacity:.88; }
.card06-inset-photo { position:absolute; z-index:2; right:18px; bottom:18px; width:min(34%,178px); aspect-ratio:1.36 / 1; border:4px solid rgba(255,255,255,.92); border-radius:8px; object-fit:cover; object-position:var(--inset-pos,50% 50%); box-shadow:0 14px 34px rgba(0,0,0,.26); }
.cruise-destination-assurance { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)) auto; align-items:center; gap:18px; margin:14px 3vw 0; border-radius:8px; padding:18px 22px; background:linear-gradient(90deg,#fff,#f4f8ff); box-shadow:0 12px 28px rgba(7,26,56,.08); }
.cruise-destination-assurance span { display:grid; grid-template-columns:42px minmax(0,1fr); align-items:center; column-gap:12px; color:var(--cruise-gold); font-size:30px; }
.cruise-destination-assurance b, .cruise-destination-assurance small { grid-column:2; color:var(--cruise-navy); font-size:15px; }
.cruise-destination-assurance small { color:#536786; font-weight:600; }
.cruise-destination-assurance button { white-space:nowrap; color:var(--cruise-navy); background:#fff; border:1px solid var(--cruise-navy); }

@media (max-width: 1320px) and (min-width: 1025px) {
.cruise-editorial-destination-grid.card06-grid { width:calc(100% - 56px); gap:12px 14px; }
.card06-card-copy { left:22px; right:164px; }
.card06-card-copy h3 { font-size:32px; }
.card06-card-copy p { font-size:15px; }
.card06-inset-photo { width:146px; right:14px; }
}

.cruise-onboard { padding:0 3vw 34px; background:#fff; }
.cruise-onboard-hero { min-height:360px; display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:center; margin:0 -3vw; padding:56px 5vw 72px; color:#fff; background:linear-gradient(90deg,rgba(6,23,66,.76),rgba(6,23,66,.34) 42%,rgba(6,23,66,.08)),var(--feature) 62% 46%/cover no-repeat; }
.cruise-onboard-hero h2 { max-width:780px; margin:0; color:#fff; font-size:clamp(58px,6.6vw,94px); line-height:.92; }
.cruise-onboard-hero p:not(.eyebrow) { max-width:780px; color:#fff; font-size:20px; line-height:1.42; }
.cruise-onboard-hero > span { align-self:start; min-width:150px; padding-top:18px; color:#fff; font-weight:800; line-height:1.32; text-align:left; }
.cruise-onboard .cruise-tabs { position:relative; z-index:2; margin:-30px 0 16px; border-radius:8px; box-shadow:0 14px 34px rgba(7,26,56,.12); }
.cruise-onboard .cruise-tabs button { min-height:70px; background:#fff; }
.cruise-onboard .cruise-tabs button.active { color:var(--cruise-blue); background:#fff; box-shadow:inset 0 -3px 0 var(--cruise-blue); }
.cruise-onboard-feature { grid-template-columns:minmax(0,1fr) minmax(330px,420px); gap:20px; align-items:stretch; }
.cruise-onboard-feature > article { min-height:430px; display:grid; align-content:center; border-radius:8px; overflow:hidden; padding:48px; color:#fff; background:linear-gradient(90deg,rgba(5,17,42,.72),rgba(5,17,42,.31) 48%,rgba(5,17,42,.06)),var(--bg) var(--feature-pos,center center)/cover no-repeat; }
.cruise-onboard-feature > article h3 { max-width:560px; color:#fff; font-size:clamp(42px,4.6vw,68px); line-height:.98; }
.cruise-onboard-feature > article p { max-width:520px; color:#fff; font-size:18px; }
.cruise-onboard-feature > article button { width:max-content; color:#fff; background:rgba(3,13,28,.28); border:1px solid rgba(255,255,255,.78); }
.cruise-onboard-feature aside { display:grid; align-content:center; gap:16px; border:0; border-radius:8px; padding:34px; background:#f7f9fc; overflow:hidden; }
.cruise-onboard-feature aside h3 { margin:0; font-size:32px; line-height:1.05; }
.cruise-onboard-detail-row { display:grid; grid-template-columns:minmax(0,1fr) 112px; align-items:center; gap:18px; }
.cruise-onboard-feature aside .cruise-onboard-detail-row img { width:100%; min-height:132px; max-height:150px; border-radius:7px; object-fit:cover; object-position:50% 56%; background:#e9eef6; }
.cruise-onboard-script { display:block; color:var(--cruise-blue); font-family:Georgia,serif; font-size:22px; font-style:italic; font-weight:500; line-height:1.05; transform:rotate(-5deg); }
.cruise-onboard-feature aside .cruise-onboard-benefits { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:10px; color:var(--cruise-navy); font-size:12px; font-weight:850; }
.cruise-onboard-proof { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:16px; margin-top:16px; border-radius:8px; padding:20px; background:#fbfcff; }
.cruise-onboard-proof span { display:grid; gap:3px; font-weight:850; color:var(--cruise-navy); }
.cruise-onboard-proof small { color:#536786; font-weight:600; }

.cruise-inclusions { display:block; padding:0; background:#fff; }
.cruise-inclusions-hero { position:relative; min-height:430px; display:grid; grid-template-columns:minmax(0,760px) 220px; align-content:start; justify-content:space-between; gap:24px; padding:54px 5vw 125px; overflow:hidden; background-image:linear-gradient(90deg,rgba(255,255,255,.94) 0%,rgba(255,255,255,.76) 34%,rgba(255,255,255,.12) 62%),var(--feature); background-position:center,63% 46%; background-size:cover,cover; background-repeat:no-repeat; }
.cruise-inclusions-hero h2 { max-width:740px; margin:0; font-size:clamp(46px,5vw,72px); line-height:.95; }
.cruise-inclusions-hero h2 em { color:var(--cruise-blue); font-style:italic; }
.cruise-inclusions-hero p { max-width:610px; color:#243956; font-size:18px; line-height:1.45; }
.cruise-inclusions-hero aside { justify-self:end; display:grid; justify-items:end; gap:8px; color:var(--cruise-navy); font-weight:750; }
.cruise-inclusions-hero aside img { width:176px; }
.cruise-inclusions-hero > span { position:absolute; right:7vw; bottom:56px; color:#fff; font-family:"Segoe Script","Brush Script MT",cursive; font-size:31px; line-height:.95; text-align:center; text-shadow:0 2px 12px rgba(5,17,42,.38); transform:rotate(-7deg); }
.cruise-inclusion-panels { position:relative; z-index:2; display:grid; grid-template-columns:1fr 1fr; gap:12px; padding:0 3vw 14px; transform:translateY(-72px); }
.cruise-inclusion-card, .cruise-difference-card { overflow:hidden; border:1px solid rgba(198,214,236,.82); border-radius:8px; padding:28px; background:rgba(255,255,255,.94); box-shadow:0 18px 44px rgba(7,26,56,.1); }
.cruise-inclusion-card { background:linear-gradient(180deg,rgba(245,251,255,.94),rgba(255,255,255,.96)); }
.cruise-difference-card { background:linear-gradient(135deg,#fff,#fff8eb); border-color:rgba(232,211,170,.9); }
.cruise-panel-image { width:calc(100% + 56px); height:172px; margin:-28px -28px 24px; object-fit:cover; object-position:50% 46%; }
.cruise-difference-head { display:grid; grid-template-columns:minmax(0,1fr) 230px; gap:18px; align-items:start; margin-bottom:20px; }
.cruise-difference-head img { width:100%; height:138px; border-radius:0 0 0 56px; object-fit:cover; object-position:58% 44%; }
.cruise-inclusion-card h3, .cruise-difference-card h3 { margin:0; color:var(--cruise-navy); font-size:clamp(31px,3vw,42px); line-height:1.05; }
.cruise-inclusion-card > div:not(.cruise-difference-head), .cruise-difference-card > div:not(.cruise-difference-head) { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; margin-top:24px; }
.cruise-inclusion-card section, .cruise-difference-card section { display:grid; grid-template-columns:48px minmax(0,1fr); gap:4px 12px; align-items:start; border-radius:8px; padding:16px; background:rgba(248,251,255,.92); }
.cruise-difference-card section { background:rgba(255,255,255,.74); }
.cruise-inclusion-card i, .cruise-difference-card i { grid-row:1 / span 2; display:grid; place-items:center; width:42px; height:42px; border-radius:50%; color:var(--cruise-navy); background:#e5f5ff; font-style:normal; font-size:21px; }
.cruise-difference-card i { color:#bd7900; background:#fff0d2; }
.cruise-inclusion-card b, .cruise-difference-card b { color:var(--cruise-navy); }
.cruise-inclusion-card span, .cruise-difference-card span { color:#536786; font-size:14px; line-height:1.34; }
.cruise-inclusion-card small { display:grid; grid-template-columns:34px minmax(0,1fr); align-items:center; gap:12px; margin-top:18px; border-radius:8px; padding:14px 16px; color:#48617f; background:#edf6ff; }
.cruise-inclusion-card small i { width:28px; height:28px; background:#fff; font-size:16px; }
.cruise-inclusion-band { display:grid; grid-template-columns:1.25fr repeat(3,minmax(0,1fr)) auto; align-items:center; gap:18px; margin-top:-72px; padding:30px 5vw; color:#fff; background-image:linear-gradient(90deg,rgba(3,13,28,.86),rgba(5,32,56,.76)),var(--feature); background-position:center,center; background-size:cover,cover; background-repeat:no-repeat; }
.cruise-inclusion-band span { font-family:"Segoe Script","Brush Script MT",cursive; font-size:27px; line-height:1; }
.cruise-inclusion-band b { display:grid; gap:4px; font-size:17px; }
.cruise-inclusion-band small { color:#d9e7f6; font-size:13px; font-weight:600; }
.cruise-inclusion-band button { color:#fff; background:linear-gradient(135deg,#ff7a28,#e93619); }

.cruise-lead-footer { display:block; padding:0; color:#fff; background:#050b12; overflow:hidden; }
.cruise-lead-hero { position:relative; min-height:560px; display:grid; grid-template-columns:minmax(0,720px) minmax(170px,220px); gap:32px; align-content:center; justify-content:space-between; padding:64px 5vw; background-position:center,64% 50%; background-size:cover,cover; background-repeat:no-repeat; }
.cruise-lead-copy { position:relative; z-index:1; }
.cruise-lead-hero h2 { max-width:760px; margin:0; color:#fff; font-size:clamp(54px,5.65vw,88px); line-height:.94; letter-spacing:0; }
.cruise-lead-hero p { max-width:610px; color:#fff; font-size:18px; line-height:1.45; }
.cruise-lead-hero ul { display:flex; flex-wrap:wrap; gap:18px 26px; padding:0; margin:26px 0; list-style:none; }
.cruise-lead-hero li { display:inline-flex; gap:8px; align-items:center; color:#fff; font-size:14px; font-weight:850; }
.cruise-lead-hero li::before { content:""; width:18px; height:18px; border:1.5px solid var(--cruise-gold); border-radius:50%; }
.cruise-lead-actions { display:flex; flex-wrap:wrap; gap:14px; }
.cruise-lead-actions button { min-height:48px; padding-inline:24px; color:#fff; background:linear-gradient(135deg,#ff7a28,#e94a22); }
.cruise-lead-hero .ghost, .cruise-newsletter .ghost { border:1px solid rgba(255,255,255,.72); color:#fff; background:transparent; }
.cruise-lead-brand { position:relative; z-index:1; justify-self:end; align-self:start; display:grid; justify-items:end; gap:8px; color:#fff; font-weight:850; }
.cruise-lead-brand img { width:154px; background:rgba(255,255,255,.9); border-radius:3px; padding:6px; }
.cruise-lead-script { position:absolute; z-index:1; color:#fff; font-family:"Segoe Script","Brush Script MT",cursive; font-size:28px; line-height:1.05; text-shadow:0 2px 12px rgba(0,0,0,.34); }
.cruise-lead-script::after { content:""; display:block; width:70px; height:3px; margin-top:10px; background:var(--cruise-gold); }
.cruise-lead-script.script-left { left:5vw; bottom:36px; }
.cruise-lead-script.script-right { right:5vw; bottom:56px; text-align:right; }
.cruise-lead-script.script-right::after { margin-left:auto; }
.cruise-more-links { padding:42px 3.6vw 34px; color:var(--cruise-navy); background:#fff; }
.cruise-more-links > div:first-child { display:grid; grid-template-columns:1fr minmax(260px,560px); gap:32px; align-items:end; margin-bottom:26px; }
.cruise-more-links h2 { margin:0; font-size:clamp(32px,3.1vw,46px); line-height:1.05; }
.cruise-more-links > div:last-child { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:16px; }
.cruise-more-links button { min-height:252px; display:grid; align-content:end; justify-items:start; border:0; border-radius:8px; padding:22px; color:#fff; text-align:left; background-position:center; background-size:cover; background-repeat:no-repeat; }
.cruise-more-links button b { font-family:Georgia,"Times New Roman",serif; font-size:28px; line-height:1; }
.cruise-more-links button span { max-width:220px; color:#fff; }
.cruise-more-links button i { justify-self:end; display:grid; place-items:center; width:40px; height:40px; border:1px solid var(--cruise-gold); border-radius:50%; color:var(--cruise-gold); font-style:normal; }
.cruise-newsletter { position:relative; display:grid; grid-template-columns:minmax(0,1fr) minmax(380px,640px); gap:56px; padding:52px 5vw 58px; border-bottom:1px solid rgba(255,255,255,.14); background:radial-gradient(circle at 84% 18%,rgba(31,92,122,.28),transparent 36%),linear-gradient(180deg,#07111a,#04080d); }
.cruise-newsletter h2 { max-width:690px; margin:0; color:#fff; font-size:clamp(34px,3.4vw,52px); line-height:1.04; }
.cruise-newsletter p { color:#d9e4f2; }
.cruise-newsletter form { display:grid; grid-template-columns:minmax(0,1fr) 170px; align-content:start; gap:14px; padding-bottom:48px; }
.cruise-newsletter label:first-child { display:grid; }
.cruise-newsletter label:first-child span { position:absolute; width:1px; height:1px; overflow:hidden; }
.cruise-newsletter input[type="email"] { min-height:56px; border:1px solid rgba(255,255,255,.25); border-radius:999px; padding-inline:22px; color:#fff; background:#07111d; }
.cruise-newsletter .check, .cruise-newsletter em, .cruise-newsletter .ghost { grid-column:1 / -1; }
.cruise-newsletter .check { display:flex; gap:10px; align-items:center; color:#dce8f4; font-size:13px; font-weight:650; }
.cruise-newsletter em { justify-self:center; position:relative; width:100%; color:#fff; font-style:normal; text-align:center; }
.cruise-newsletter em::before, .cruise-newsletter em::after { content:""; position:absolute; top:50%; width:43%; height:1px; background:rgba(255,255,255,.22); }
.cruise-newsletter em::before { left:0; }
.cruise-newsletter em::after { right:0; }
.cruise-newsletter-script { position:absolute; right:7vw; bottom:24px; color:#fff; font-family:"Segoe Script","Brush Script MT",cursive; font-size:24px; line-height:1.05; transform:rotate(-8deg); opacity:.82; pointer-events:none; }
.cruise-approved-footer { padding:72px 2vw 78px; color:#fff; background:#fff; }
.cruise-approved-footer-panel { width:min(1608px,100%); display:grid; grid-template-columns:minmax(280px,.95fr) minmax(0,2.75fr); gap:72px; margin:0 auto; border-radius:34px; padding:92px min(6vw,100px) 58px; background:radial-gradient(circle at 18% 0%,rgba(25,50,96,.42),transparent 38%),linear-gradient(135deg,#08101d 0%,#0b1730 58%,#08101d 100%); box-shadow:0 24px 62px rgba(5,15,34,.18); }
.cruise-approved-footer-logo img { width:min(320px,100%); height:auto; display:block; filter:none; }
.cruise-approved-footer-links { display:grid; grid-template-columns:repeat(4,minmax(130px,1fr)); gap:56px; align-items:start; }
.cruise-approved-footer-links nav { display:grid; gap:18px; align-content:start; }
.cruise-approved-footer-links h3 { margin:0 0 8px; color:#fff; font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif; font-size:23px; line-height:1.1; font-weight:950; }
.cruise-approved-footer-links button { width:max-content; min-height:28px; border:0; border-radius:0; padding:0; color:#fff; background:transparent; box-shadow:none; font-size:22px; line-height:1.2; font-weight:500; text-align:left; white-space:normal; }
.cruise-approved-footer-bottom { grid-column:1 / -1; display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:center; gap:24px; border-top:1px solid rgba(255,255,255,.38); margin-top:44px; padding-top:54px; }
.cruise-approved-footer-bottom small { color:#fff; font-size:18px; line-height:1.35; }
.cruise-approved-social { display:flex; align-items:center; gap:24px; }
.cruise-approved-social button { width:34px; height:34px; min-height:34px; display:grid; place-items:center; border:0; border-radius:6px; padding:0; color:#0b1730; background:#fff; box-shadow:none; font-size:21px; font-weight:950; line-height:1; text-transform:none; }
.cruise-approved-social button:first-child { border-radius:999px; font-family:Georgia,serif; font-size:26px; }
.cruise-approved-social button:nth-child(2) { border-radius:9px; font-size:24px; }
.cruise-approved-social button:nth-child(3) { width:38px; border-radius:8px; font-size:18px; }
.cruise-modal-backdrop { position:fixed; inset:0; z-index:60; display:grid; place-items:center; padding:24px; background:rgba(5,12,24,.66); }
.cruise-modal { width:min(1220px,94vw); max-height:88vh; overflow:auto; border:1px solid rgba(255,255,255,.7); border-radius:12px; padding:34px; background:linear-gradient(135deg,#fff 0%,#fff 58%,#f4f9ff 100%); box-shadow:0 34px 90px rgba(0,0,0,.28); }
.cruise-modal-close { float:right; min-width:44px; color:var(--cruise-blue); background:#eef5ff; font-size:26px; }
.cruise-modal-body { display:grid; gap:14px; }
.cruise-modal-body section { display:grid; gap:10px; align-items:center; border-bottom:1px solid var(--cruise-line); padding-bottom:14px; }
.cruise-modal-body button, .date-grid button { color:var(--cruise-navy); background:#fff; border:1px solid #aebfe0; }
.selector-hero { min-height:120px; display:grid; align-content:center; justify-content:end; margin:-8px 0 18px; padding:22px; border-radius:8px; color:#0a3a83; background:linear-gradient(90deg,rgba(255,255,255,.88),rgba(255,255,255,.38)),url("./assets/cruises/approved/Card_02_Destination_Selector_Open.png") right top/auto 180px no-repeat; text-align:right; }
.selector-hero span, .selector-selected span { color:#667691; font-size:12px; font-weight:900; text-transform:uppercase; letter-spacing:.16em; }
.selector-hero strong { display:block; font-family:Georgia,"Times New Roman",serif; font-size:30px; line-height:1; }
.selector-tabs, .date-mode-row { display:flex; gap:10px; border-bottom:1px solid var(--cruise-line); padding-bottom:12px; }
.selector-tabs button.active, .date-mode-row button.active { color:#fff; background:var(--cruise-navy); border-color:var(--cruise-navy); }
.selector-featured { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:12px; }
.selector-featured button { min-height:100px; align-content:end; justify-items:start; color:#fff; background:linear-gradient(0deg,rgba(4,18,44,.72),rgba(4,18,44,.08)),var(--bg) center/cover; }
.selector-chip-grid { display:flex; flex-wrap:wrap; gap:10px; }
.selector-chip-grid button, .selector-port-groups button { border-radius:999px; padding:0 18px; }
.selector-featured button.selected, .selector-chip-grid button.selected, .selector-port-groups button.selected, .date-month-row button.selected { border-color:var(--cruise-orange); box-shadow:0 0 0 2px rgba(240,90,40,.18); }
.selector-port-groups { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:18px; }
.selector-port-groups section { align-content:start; padding:16px; border:1px solid var(--cruise-line); border-radius:8px; background:#fff; }
.selector-port-groups p { min-height:34px; color:#667691; }
.selector-port-groups section button { margin:5px; }
.selector-selected { display:flex; flex-wrap:wrap; align-items:center; gap:10px; margin-top:8px; border-top:1px solid var(--cruise-line); padding-top:16px; }
.selector-selected b { border-radius:999px; padding:9px 14px; color:#fff; background:var(--cruise-orange); }
.date-selector-layout { display:grid; gap:16px; }
.selector-trip-context { display:none; }
.selector-trip-context img { width:100%; border-radius:8px; object-fit:cover; }
.date-month-row { display:grid; grid-template-columns:repeat(6,minmax(0,1fr)); gap:10px; }
.date-grid { display:grid; grid-template-columns:repeat(7,minmax(0,1fr)); gap:8px; }
.date-grid button { min-height:74px; background:#eef5fb; }
.date-grid button.unavailable { color:#8c99ad; background:#edf0f4; }
.date-grid button.special { color:#bd5600; background:#ffe4c6; border-color:#ffc17a; }
.guest-selector { display:grid; gap:14px; }
.guest-selector section { grid-template-columns:1fr; border:1px solid var(--cruise-line); border-radius:8px; padding:18px; background:#fff; }
.guest-selector section div { display:grid; grid-template-columns:1fr 44px 64px 44px; gap:8px; align-items:center; padding:10px 0; }
.guest-selector b { display:grid; place-items:center; min-height:44px; border:1px solid var(--cruise-line); border-radius:8px; }
.cruise-modal-open { overflow:hidden; }
.cruise-modal-backdrop { align-items:start; padding-top:104px; background:rgba(5,12,24,.54); backdrop-filter:blur(3px); }
.cruise-modal { position:relative; width:min(1210px,86vw); max-height:calc(100vh - 128px); display:grid; grid-template-rows:auto auto minmax(0,1fr) auto; overflow:hidden; border-radius:12px; padding:32px 38px 0; color:var(--cruise-navy); background:linear-gradient(135deg,#fff 0%,#fff 72%,#f3f8ff 100%); box-shadow:0 34px 90px rgba(0,0,0,.28); }
.cruise-modal::before { content:""; position:absolute; top:18px; right:156px; width:236px; height:112px; opacity:.16; background:url("./assets/cruises/approved/Card_02_Destination_Selector_Open.png") center/cover no-repeat; pointer-events:none; }
.cruise-modal h2 { position:relative; z-index:1; max-width:calc(100% - 360px); margin:6px 0 8px; color:var(--cruise-navy); font-size:clamp(42px,4.3vw,56px); line-height:.98; }
.cruise-modal > .eyebrow { position:relative; z-index:1; color:var(--cruise-navy); font-size:12px; letter-spacing:.38em; }
.cruise-modal > .eyebrow::after { content:""; display:inline-block; width:58px; height:2px; margin-left:12px; vertical-align:middle; background:var(--cruise-gold); }
.cruise-modal-close { position:absolute; z-index:2; top:24px; right:26px; min-width:48px; min-height:48px; border:0; color:#075fe4; background:transparent; font-size:40px; line-height:1; }
.cruise-modal-body { min-height:0; overflow-y:auto; overflow-x:hidden; padding:0 0 24px; gap:18px; }
.cruise-modal-body h3 { margin:0; color:var(--cruise-navy); font-size:27px; line-height:1.08; }
.cruise-modal-body p { margin:0; color:#5d6b86; }
.cruise-modal-body button:focus-visible,
.cruise-modal-body input:focus-visible,
.cruise-modal-body select:focus-visible,
.cruise-modal-actions button:focus-visible,
.cruise-modal-close:focus-visible { outline:3px solid rgba(34,85,244,.32); outline-offset:3px; }
.selector-header-art { position:absolute; top:58px; right:160px; z-index:1; color:#075fe4; font-family:"Segoe Script","Brush Script MT",cursive; font-size:28px; transform:rotate(-7deg); pointer-events:none; }
.selector-header-art span::after { content:""; display:block; width:112px; height:5px; margin-top:4px; background:#f25323; transform:rotate(-6deg); }
.selector-search-row label { max-width:520px; display:grid; gap:8px; margin:12px 0 4px; color:#536786; font-size:13px; font-weight:800; }
.selector-search-row input { min-height:48px; border:1px solid #cbd8ec; border-radius:12px; padding:0 18px; color:var(--cruise-navy); background:#fff; font:inherit; }
.selector-tabs { gap:30px; border-bottom:1px solid #dce4f0; padding:0; }
.selector-tabs button { position:relative; min-height:52px; border:0; border-radius:0; padding:0 18px; color:#667691; background:transparent; font-size:18px; font-weight:750; }
.selector-tabs button.active { color:#075fe4; background:transparent; border-color:transparent; }
.selector-tabs button.active::after { content:""; position:absolute; left:0; right:0; bottom:-1px; height:3px; background:#075fe4; }
.selector-block { display:grid; gap:10px; }
.selector-featured { grid-template-columns:repeat(4,minmax(0,1fr)); gap:14px; }
.selector-featured button { min-height:108px; overflow:hidden; border:1px solid #ccd9ef; border-radius:999px; padding:0 20px; align-content:end; justify-items:start; color:#071a38; background:linear-gradient(0deg,rgba(255,255,255,.82),rgba(255,255,255,.16)),var(--bg) center/cover; font-weight:900; }
.selector-featured button small { display:none; }
.selector-featured button span { max-width:100%; border-radius:999px; padding:8px 16px; background:rgba(255,255,255,.78); overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.selector-featured button.selected,
.selector-chip-grid button.selected,
.selector-port-groups button.selected { border-color:#f25323; color:#fff; background:#f25323; box-shadow:0 0 0 3px rgba(242,83,35,.16); }
.selector-featured button.selected span { color:var(--cruise-navy); background:rgba(255,255,255,.84); }
.selector-featured button.selected span::before,
.selector-chip-grid button.selected::before,
.selector-port-groups button.selected::before { content:"✓"; display:inline-grid; place-items:center; width:24px; height:24px; margin-right:8px; border-radius:50%; color:#fff; background:#f25323; }
.selector-chip-grid { gap:12px; }
.selector-chip-grid button,
.selector-port-groups button { min-height:44px; border:1px solid #9fb8e9; border-radius:999px; padding:0 24px; color:#082a77; background:#fff; font-weight:750; }
.selector-port-groups { grid-template-columns:repeat(3,minmax(0,1fr)); gap:28px 34px; }
.selector-port-groups section { border:0; padding:0; background:transparent; }
.port-group-title { display:flex; align-items:flex-start; gap:14px; margin-bottom:12px; }
.port-group-title > span { min-width:38px; color:#1f66d8; font-size:31px; line-height:1; }
.port-group-title h3 { font-size:22px; }
.port-group-title p { min-height:auto; margin-top:3px; font-size:13px; line-height:1.25; }
.selector-port-groups section button { margin:5px 5px 8px 0; }
.selector-selected { position:sticky; z-index:2; bottom:0; margin:0 -38px; border-top:1px solid #dce4f0; padding:16px 38px; background:rgba(255,255,255,.96); box-shadow:0 -16px 40px rgba(7,26,56,.08); }
.selector-selected b { min-height:42px; display:inline-flex; align-items:center; border-radius:999px; padding:0 20px; color:#fff; background:#f25323; font-size:14px; }
.cruise-modal-actions { position:relative; z-index:3; margin:0 -38px; border-top:1px solid #dce4f0; padding:14px 24px; background:rgba(255,255,255,.98); }
.cruise-modal-actions button { min-width:126px; min-height:52px; border:1px solid #9fb8e9; border-radius:8px; color:#075fe4; background:#fff; font-weight:850; }
.cruise-modal-actions .selector-apply { min-width:132px; border-color:#f25323; border-radius:999px; color:#fff; background:linear-gradient(135deg,#ff7134,#e93717); }
.date-modal { width:min(1160px,88vw); grid-template-columns:330px minmax(0,1fr); column-gap:28px; }
.date-modal > .eyebrow,
.date-modal > h2,
.date-modal > .cruise-modal-close { grid-column:2; }
.date-modal h2 { max-width:620px; margin:2px 0 8px; font-size:clamp(38px,4vw,48px); line-height:1; }
.date-modal > .eyebrow { font-size:11px; }
.date-modal .cruise-modal-body { grid-column:1 / -1; }
.date-selector-shell { display:grid; grid-template-columns:300px minmax(0,1fr); gap:26px; }
.selector-trip-context { display:grid; align-content:start; gap:20px; border-right:1px solid #dce4f0; padding-right:24px; }
.selector-trip-context img { width:100%; aspect-ratio:16/8.6; border-radius:12px; object-fit:cover; }
.selector-trip-context dl { display:grid; gap:0; margin:0; }
.selector-trip-context div { display:grid; grid-template-columns:34px minmax(0,1fr) auto; align-items:center; gap:12px; border-bottom:1px solid #dce4f0; padding:15px 0; }
.selector-trip-context div::before { content:"⌖"; color:#082a77; font-size:24px; }
.selector-trip-context div.active { border-radius:10px; border-bottom:0; padding:15px 14px; background:#edf7ff; }
.selector-trip-context dt { color:#5d6b86; font-size:13px; }
.selector-trip-context dd { margin:0; color:var(--cruise-navy); font-weight:850; }
.date-mode-row { display:grid; grid-template-columns:1fr 1fr; gap:0; border:1px solid #dce4f0; border-radius:8px; overflow:hidden; padding:0; }
.date-mode-row button { min-height:50px; border:0; border-radius:0; color:var(--cruise-navy); background:#fff; font-weight:850; }
.date-mode-row button.active { color:var(--cruise-navy); background:#fff; box-shadow:inset 0 0 0 2px #075fe4; }
.date-month-row { grid-template-columns:repeat(6,minmax(0,1fr)); }
.date-month-row button { min-height:82px; border:1px solid #dce4f0; border-radius:10px; color:var(--cruise-navy); background:#fff; }
.date-month-row button.selected { border-color:#075fe4; box-shadow:0 0 0 2px rgba(7,95,228,.14); }
.date-month-row span { display:block; margin-top:8px; color:#667691; font-size:13px; }
.calendar-head { display:grid; grid-template-columns:44px 1fr 44px; align-items:center; margin-top:6px; }
.calendar-head h3 { text-align:left; }
.calendar-head button { min-height:44px; border:0; color:#082a77; background:transparent; font-size:34px; }
.date-weekdays,
.date-grid { display:grid; grid-template-columns:repeat(7,minmax(0,1fr)); gap:8px; }
.date-weekdays span { text-align:center; color:#071a38; font-size:13px; font-weight:850; }
.date-grid button { min-height:54px; border:0; border-radius:9px; background:#eef5fb; color:var(--cruise-navy); }
.date-grid button span { display:block; margin-top:5px; color:#425777; font-size:12px; font-weight:650; }
.date-grid button.selected { background:#ffe7ca; color:#b85000; box-shadow:inset 0 0 0 2px #f25323; }
.date-grid button.unavailable { color:#8c99ad; background:linear-gradient(135deg,#eef1f5,#dfe3e9); cursor:not-allowed; }
.date-grid button.unavailable span { color:#8c99ad; }
.date-selector-layout .api-note { border-radius:10px; padding:14px 18px; color:#667691; background:#eef5fb; }
.guest-modal { width:min(960px,86vw); }
.guest-selector { gap:16px; }
.selector-help { border-radius:12px; padding:14px 18px; background:#eef5fb; }
.guest-selector section { display:grid; gap:12px; border:1px solid #dce4f0; border-radius:12px; padding:20px; background:#fff; }
.room-head { display:flex; align-items:center; justify-content:space-between; gap:12px; }
.room-head h3 { font-size:26px; }
.room-head button { min-height:38px; color:#b54824; background:#fff5ee; border-color:#ffd2bf; }
.guest-counter { display:grid; grid-template-columns:1fr 44px 58px 44px; gap:10px; align-items:center; padding:10px 0; }
.guest-counter span { display:block; color:var(--cruise-navy); font-weight:850; }
.guest-counter small { color:#667691; }
.guest-counter button { min-height:44px; border:1px solid #cbd8ec; border-radius:10px; color:#075fe4; background:#fff; font-size:22px; }
.guest-counter b { min-height:44px; border:1px solid #dce4f0; border-radius:10px; }
.child-age-row { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; }
.child-age-row label { display:grid; gap:6px; color:#536786; font-size:13px; font-weight:850; }
.child-age-row select { min-height:44px; border:1px solid #cbd8ec; border-radius:10px; padding:0 12px; background:#fff; font:inherit; }
.guest-add-room { justify-self:start; min-height:48px; border:1px solid #9fb8e9; border-radius:10px; color:#075fe4; background:#fff; font-weight:850; }
.guest-access { border:1px solid #dce4f0; border-radius:12px; padding:16px; background:#fff; }
.cruise-results-hero { padding:70px 5vw 0; background:linear-gradient(90deg,rgba(5,17,42,.84),rgba(5,17,42,.16)),url("./assets/cruises/approved/Card_10_Cruise_Search_Results.png") center/cover; color:#fff; }
.cruise-results-hero h1 { max-width:850px; margin:0; color:#fff; font-size:clamp(46px,7vw,86px); line-height:.98; }
.cruise-results-hero p:not(.eyebrow) { max-width:760px; color:#fff; font-size:20px; }
.cruise-modal-actions { display:flex; justify-content:flex-end; gap:12px; margin-top:24px; }
.cruise-booking { display:grid; grid-template-columns:320px minmax(0,1fr); gap:24px; background:#f6fbff; }
.cruise-booking-summary { position:sticky; top:90px; align-self:start; border:1px solid var(--cruise-line); border-radius:8px; padding:18px; background:#fff; }
.cruise-booking-summary img { width:100%; aspect-ratio:16/10; border-radius:8px; object-fit:cover; }
.cruise-stepper { display:grid; grid-template-columns:repeat(7,minmax(0,1fr)); gap:8px; margin-bottom:24px; }
.cruise-stepper button { color:var(--cruise-navy); background:#fff; border:1px solid var(--cruise-line); }
.cruise-stepper button.active { color:#fff; background:var(--cruise-navy); }
.cruise-stepper button.done { color:var(--cruise-blue); background:#eef5ff; }
.cruise-stepper span { display:block; font-size:11px; }
.cruise-booking main > section { border:1px solid var(--cruise-line); border-radius:8px; padding:30px; background:#fff; }
.party-controls { display:grid; grid-template-columns:48px 70px 48px 48px 70px 48px; gap:8px; align-items:center; margin:22px 0; }
.party-controls b { display:grid; place-items:center; min-height:48px; border:1px solid var(--cruise-line); border-radius:8px; }
.guest-form { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; }
.guest-form label, .cruise-lead-footer label { display:grid; gap:7px; font-weight:850; }
.guest-form input { min-height:44px; border:1px solid var(--cruise-line); border-radius:8px; padding:0 12px; }
.check { display:flex !important; grid-template-columns:auto 1fr; align-items:center; gap:10px; }
.api-note { grid-column:1 / -1; color:#536786; }
.cruise-next { width:min(520px,100%); margin-top:24px; color:var(--cruise-navy); }
@media (prefers-reduced-motion: reduce) {
.cruise-video video { display:none; }
}
@media (max-width: 1280px) {
html[data-cruise-card-one="true"] .topbar { min-height:96px; padding-inline:4vw; }
html[data-cruise-card-one="true"] .brand img { width:196px; }
html[data-cruise-card-one="true"] .topbar nav { gap:22px; font-size:14px; }
.cruise-hero { min-height:calc(100vh - 96px); padding:82px 4vw 34px; }
.cruise-hero-copy { margin-bottom:44px; }
.cruise-hero-copy h1 { font-size:clamp(54px,5.7vw,82px); }
.cruise-card-one-search { padding:18px; grid-template-columns:1.1fr 1fr .9fr .8fr 1fr; }
.cruise-card-one-search button { grid-template-columns:40px minmax(0,1fr) 18px; }
.cruise-card-one-search .cruise-cta { font-size:18px; }
.cruise-package-showcase { padding-inline:4vw; }
.cruise-package-grid { gap:22px; }
.cruise-package-body { padding:22px 22px 18px; }
.cruise-package-body h3 { min-height:122px; font-size:25px; }
.cruise-package-meta { font-size:18px; }
.cruise-package-itinerary { margin-left:44px; font-size:18px; }
.cruise-package-price { grid-template-columns:1fr; }
.cruise-package-secondary-prices { grid-template-columns:repeat(3,minmax(0,1fr)); gap:8px 12px; font-size:16px; }
.cruise-package-detail-hero { grid-template-columns:minmax(0,1fr) 360px; padding-inline:4vw; }
.cruise-package-detail-main { padding-inline:4vw; }
.cruise-package-detail-guard { grid-template-columns:repeat(2,minmax(0,1fr)); padding-inline:4vw; }
.cruise-planning-hero { grid-template-columns:minmax(0,1fr) 340px; padding-inline:4vw; }
.cruise-planning-shell { grid-template-columns:230px minmax(0,1fr); padding-inline:4vw; }
.cruise-planning-summary { grid-column:1 / -1; position:static; display:grid; grid-template-columns:280px minmax(0,1fr); align-items:start; }
.cruise-planning-summary img { height:100%; min-height:230px; }
.cruise-approved-footer-panel { grid-template-columns:minmax(220px,.7fr) minmax(0,2fr); gap:48px; padding:74px 58px 48px; }
.cruise-approved-footer-logo img { width:250px; }
.cruise-approved-footer-links { gap:34px; }
.cruise-approved-footer-links button { font-size:20px; }
}
@media (max-width: 1080px) {
html[data-cruise-card-one="true"] .topbar { min-height:86px; }
html[data-cruise-card-one="true"] .brand img { width:172px; }
html[data-cruise-card-one="true"] .topbar nav { gap:16px; font-size:13px; }
.cruise-hero { min-height:calc(100vh - 86px); padding-top:70px; }
.cruise-card-one-search { grid-template-columns:1fr 1fr; gap:0; border-radius:16px; padding:18px; }
.cruise-card-one-search button { border-right:0; border-bottom:1px solid var(--cruise-line); padding:8px 4px; }
.cruise-card-one-search button:nth-child(odd) { border-right:1px solid var(--cruise-line); }
.cruise-card-one-search button:nth-child(3), .cruise-card-one-search button:nth-child(4) { border-bottom:0; }
.cruise-card-one-search .cruise-cta { grid-column:1 / -1; margin-top:16px; }
}
@media (max-width: 900px) {
html[data-cruise-card-one="true"] .topbar { display:flex; min-height:74px; padding:10px 18px; }
html[data-cruise-card-one="true"] .brand img { width:142px; max-width:42vw; }
html[data-cruise-card-one="true"] .topbar nav { justify-content:flex-end; gap:18px; overflow:visible; padding:0; }
html[data-cruise-card-one="true"] .topbar nav a[data-primary-nav="cruises"]::after { bottom:-7px; }
.cruise-hero { min-height:calc(100vh - 74px); padding:52px 18px 22px; }
.cruise-video video { object-position:58% center; }
.cruise-video::after { background:linear-gradient(180deg,rgba(5,17,42,.5),rgba(5,17,42,.18) 40%,rgba(5,17,42,.75)); }
.cruise-hero-copy { margin-bottom:30px; }
.cruise-hero-copy .eyebrow { font-size:12px; letter-spacing:.32em; }
.cruise-hero-copy h1 { max-width:500px; font-size:clamp(46px,11vw,64px); }
.cruise-hero-copy p:not(.eyebrow) { font-size:19px; }
.cruise-ghost { min-height:50px; padding-inline:20px; }
.cruise-card-one-search { position:relative; bottom:auto; grid-template-columns:1fr 1fr; gap:0; width:100%; border-radius:18px; padding:16px; }
.cruise-card-one-search button { min-height:62px; border:0; border-bottom:1px solid var(--cruise-line); border-radius:0; grid-template-columns:38px minmax(0,1fr) 18px; }
.cruise-card-one-search button:nth-child(odd) { border-right:1px solid var(--cruise-line); }
.cruise-card-one-search button span, .cruise-card-one-search button b { font-size:14px; }
.cruise-card-one-search .cruise-cta { grid-column:1 / -1; min-height:64px; margin-top:14px; border-radius:999px; }
.cruise-trust-row { display:none; }
.cruise-style-grid, .cruise-destination-grid, .cruise-split-feature, .cruise-inclusions, .cruise-ship, .cruise-itinerary-overview, .cruise-included-upgrades, .cruise-result-card, .cruise-detail-hero, .cruise-lead-footer, .cruise-booking { grid-template-columns:1fr; }
.cruise-editorial-section, .cruise-destination-editorial, .cruise-onboard, .cruise-inclusions, .cruise-results, .cruise-lead-footer, .cruise-detail > section, .cruise-detail-tabs, .cruise-booking { padding:42px 18px; }
.cruise-result-card aside { border-left:0; border-top:1px solid var(--cruise-line); }
.cruise-detail-hero { padding:96px 18px 32px; }
.cruise-detail-tabs { top:66px; overflow:auto; flex-wrap:nowrap; }
.cruise-journey div, .date-grid, .cruise-stepper, .guest-form { grid-template-columns:1fr; }
.cruise-modal-backdrop { align-items:end; padding:0; }
.cruise-modal { width:100%; max-height:82vh; border-radius:18px 18px 0 0; padding:24px 18px; }
.cruise-modal-body section { grid-template-columns:1fr; }
.cruise-booking-summary { position:static; }
.cruise-booking main > section { padding-bottom:104px; }
.cruise-next { position:fixed; z-index:30; left:18px; right:18px; bottom:16px; width:auto; box-shadow:0 14px 35px rgba(7,26,56,.22); }
.cruise-package-showcase { padding:34px 18px 48px; }
.cruise-package-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:22px; }
.cruise-package-body h3 { min-height:auto; }
.cruise-package-secondary-prices { grid-template-columns:1fr; }
.cruise-package-back { margin:24px 18px 0; }
.cruise-package-detail-hero,
.cruise-package-detail-main,
.cruise-package-detail-itinerary { grid-template-columns:1fr; }
.cruise-package-detail-hero { min-height:auto; margin-top:14px; padding:74px 18px 34px; }
.cruise-package-detail-copy h1 { font-size:clamp(40px,10vw,62px); }
.cruise-package-detail-price { max-width:none; }
.cruise-package-detail-main { padding:34px 18px 18px; }
.cruise-package-detail-main figure,
.cruise-package-detail-main img { min-height:320px; }
.cruise-package-detail-itinerary { padding:30px 18px; }
.cruise-package-detail-guard { grid-template-columns:1fr 1fr; padding:22px 18px 48px; }
.cruise-planning-hero,
.cruise-planning-shell { grid-template-columns:1fr; }
.cruise-planning-hero { margin-top:14px; padding:62px 18px 34px; }
.cruise-planning-steps { position:static; grid-template-columns:repeat(3,minmax(0,1fr)); }
.cruise-planning-steps button { grid-template-columns:1fr; justify-items:center; text-align:center; font-size:14px; }
.cruise-planning-shell { padding:24px 18px 52px; }
.cruise-planning-panel { min-height:auto; padding:26px; }
.cruise-planning-summary { grid-template-columns:1fr; }
.cruise-planning-summary img { height:240px; min-height:0; }
.cruise-planning-review { grid-template-columns:1fr; }
.cruise-approved-footer { padding:42px 18px 52px; }
.cruise-approved-footer-panel { grid-template-columns:1fr; gap:34px; border-radius:24px; padding:46px 28px 34px; }
.cruise-approved-footer-logo img { width:240px; }
.cruise-approved-footer-links { grid-template-columns:repeat(2,minmax(0,1fr)); gap:34px 42px; }
.cruise-approved-footer-bottom { margin-top:18px; padding-top:30px; }
}
@media (max-width: 520px) {
.cruise-hero { padding-inline:14px; }
.cruise-video video { object-position:63% center; }
.cruise-hero-copy { margin-bottom:24px; }
.cruise-hero-copy .eyebrow::after { width:42px; }
.cruise-hero-copy h1 { font-size:clamp(42px,13vw,56px); }
.cruise-hero-copy p:not(.eyebrow) { font-size:17px; }
.cruise-card-one-search { grid-template-columns:1fr; padding:14px; }
.cruise-card-one-search { width:auto; max-width:100%; margin-inline:0; }
.cruise-card-one-search button:nth-child(odd) { border-right:0; }
.cruise-card-one-search button:nth-child(3) { border-bottom:1px solid var(--cruise-line); }
.cruise-card-one-search button { min-height:58px; }
.cruise-card-one-search .cruise-cta { font-size:18px; }
.cruise-package-grid { grid-template-columns:1fr; }
.cruise-package-grid + .cruise-package-grid { margin-top:22px; }
.cruise-package-card { border-radius:8px; }
.cruise-package-photo,
.cruise-package-photo img { min-height:174px; }
.cruise-package-badge { top:14px; left:14px; min-height:42px; padding-inline:14px; font-size:18px; }
.cruise-package-detail-copy .cruise-package-badge { position:static; }
.cruise-package-detail-fares { grid-template-columns:1fr; }
.cruise-package-detail-guard { grid-template-columns:1fr; }
.cruise-package-detail-summary { padding:26px; }
.cruise-planning-hero h1 { font-size:clamp(38px,10vw,54px); }
.cruise-planning-steps { grid-template-columns:1fr 1fr; }
.cruise-planning-choice-grid,
.cruise-planning-form { grid-template-columns:1fr; }
.cruise-planning-panel h2 { font-size:34px; }
.cruise-package-body { padding:22px 20px 18px; }
.cruise-package-body h3 { font-size:24px; }
.cruise-package-meta { font-size:17px; }
.cruise-package-price { padding:20px; }
.cruise-package-price strong { font-size:42px; }
.cruise-approved-footer { padding:32px 14px 42px; }
.cruise-approved-footer-panel { border-radius:22px; padding:38px 22px 30px; }
.cruise-approved-footer-links { grid-template-columns:1fr; gap:28px; }
.cruise-approved-footer-links nav { gap:14px; }
.cruise-approved-footer-links h3 { font-size:22px; }
.cruise-approved-footer-links button { font-size:20px; }
.cruise-approved-footer-bottom { grid-template-columns:1fr; justify-items:start; gap:22px; }
.cruise-approved-social { gap:18px; }
}
html[data-cruise-card-one="true"] body .topbar nav > a,
html[data-cruise-card-one="true"] body .topbar nav > .more-menu { display:inline-flex !important; }
html[data-cruise-card-one="true"] body .topbar nav > a[data-primary-nav="cruises"] { color:var(--blue); font-weight:850; }
html[data-cruise-card-one="true"],
html[data-cruise-card-one="true"] body { overflow-x:hidden; }

@media (max-width:900px) {
html[data-cruise-card-one="true"] body .cruise-card-one-search { box-sizing:border-box; width:100%; max-width:100%; min-width:0; grid-template-columns:minmax(0,1fr); justify-self:center; }
html[data-cruise-card-one="true"] body .cruise-card-one-search button { grid-template-columns:38px minmax(0,1fr) 18px; width:100%; border-right:0; border-bottom:1px solid var(--cruise-line); }
html[data-cruise-card-one="true"] body .cruise-card-one-search button:nth-child(odd) { border-right:0; }
html[data-cruise-card-one="true"] body .cruise-card-one-search button:nth-child(4) { border-bottom:0; }
html[data-cruise-card-one="true"] body .cruise-card-one-search button span,
html[data-cruise-card-one="true"] body .cruise-card-one-search button b { max-width:100%; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
}

@media (max-width:520px) {
html[data-cruise-card-one="true"] body .cruise-hero { padding-inline:14px; }
html[data-cruise-card-one="true"] body .cruise-card-one-search { margin-inline:auto; }
}

@media (max-width:1280px) {
.cruise-in-more { padding:62px 4vw 66px; }
.cruise-in-more-grid { gap:20px; }
.cruise-in-more-card,
.cruise-in-more-card button,
.cruise-in-more-card a { min-height:620px; }
.cruise-in-more-card button,
.cruise-in-more-card a { padding:34px 32px; }
}

@media (max-width:1024px) {
.cruise-in-more-grid { grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; }
.cruise-in-more-card,
.cruise-in-more-card button,
.cruise-in-more-card a { min-height:520px; }
.cruise-in-more-card button,
.cruise-in-more-card a { padding:28px 24px; }
.cruise-in-more-label { font-size:clamp(24px,2.8vw,32px); }
}

@media (max-width:760px) {
.cruise-in-more { padding:48px 18px 54px; }
.cruise-in-more h2 { margin-bottom:28px; font-size:clamp(36px,10vw,48px); }
.cruise-in-more-grid { grid-template-columns:1fr; gap:18px; }
.cruise-in-more-card,
.cruise-in-more-card button,
.cruise-in-more-card a { min-height:560px; }
.cruise-in-more-card { border-radius:22px; }
.cruise-in-more-card button,
.cruise-in-more-card a { padding:34px 32px; }
.cruise-in-more-label { font-size:36px; }
}

@media (max-width:430px) {
.cruise-in-more-card,
.cruise-in-more-card button,
.cruise-in-more-card a { min-height:500px; }
.cruise-in-more-card button,
.cruise-in-more-card a { padding:30px 28px; }
}
/* Keep the Cruises visual build on the standard public route shell. */
html[data-cruise-public-route="true"] body > main > :not(#cruises) {
display: none !important;
}

html[data-cruise-public-route="true"] body > .topbar [data-internal] {
display: none !important;
}

html[data-cruise-public-route="true"],
html[data-cruise-public-route="true"] body {
overflow-x: hidden;
}

html[data-cruise-public-route="true"] .cruise-video video {
width: 100%;
min-width: 100%;
}

html[data-cruise-public-route="true"] body > .topbar {
min-height: 68px;
padding: 14px 6vw;
box-shadow: 0 10px 34px rgba(7, 26, 56, .06);
border-bottom: 1px solid rgba(223, 229, 239, .82);
background: rgba(255, 255, 255, .97);
}

html[data-cruise-public-route="true"] body > .topbar .brand img {
width: 140px;
max-width: 160px;
}

html[data-cruise-public-route="true"] body > .topbar nav {
gap: 18px;
font-size: 14px;
font-weight: 800;
}

html[data-cruise-public-route="true"] body > .topbar nav > a,
html[data-cruise-public-route="true"] body > .topbar nav > .more-menu {
display: inline-flex !important;
}

html[data-cruise-public-route="true"] body > .topbar nav > a[data-primary-nav="cruises"] {
color: var(--blue);
font-weight: 900;
}

html[data-cruise-public-route="true"] .whatsapp-float svg {
display: block;
flex: 0 0 22px;
width: 22px;
height: 22px;
}

@media (max-width: 900px) {
html[data-cruise-public-route="true"] body > .topbar nav > a,
html[data-cruise-public-route="true"] body > .topbar nav > .more-menu {
display: inline-flex !important;
}
}
.hotels-phase-one { --hotel-navy:#061742; --hotel-blue:#2255f4; --hotel-orange:#f26a21; --hotel-gold:#ad7b22; --hotel-ash:#5f6f8d; --hotel-line:#dce4f0; --hotel-display:"Cormorant Garamond",Georgia,"Times New Roman",serif; --hotel-sans:Manrope,Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif; padding:0 0 96px; overflow:hidden; color:var(--hotel-navy); background:#fff; font-family:var(--hotel-sans); font-weight:500; }
.hotels-phase-one .eyebrow { color:var(--hotel-orange); letter-spacing:.22em; font-family:var(--hotel-sans); font-size:12px; font-weight:800; }
.hotels-phase-one h1, .hotels-phase-one h2, .hotels-phase-one h3 { font-family:var(--hotel-display); letter-spacing:0; font-weight:600; }
.hotels-landing-hero { position:relative; min-height:590px; display:grid; align-items:center; overflow:visible; padding:78px 6vw 170px; color:#fff; background:#071a38; }
.hotels-hero-media { position:absolute; inset:0; z-index:0; overflow:hidden; background:image-set(url("./assets/hero-carousel/doha-luxury-african-travellers.jpg") type("image/jpeg")) center 54%/cover no-repeat; transform:scale(1.01); }
.hotels-hero-media iframe { position:absolute; top:50%; left:50%; width:177.78vh; min-width:100%; height:100vh; min-height:100%; border:0; pointer-events:none; transform:translate(-50%,-50%); }
.hotels-hero-media::after { content:""; position:absolute; inset:0; background:radial-gradient(circle at 72% 28%,rgba(255,166,84,.2),transparent 28%), linear-gradient(90deg,rgba(4,16,41,.86) 0%,rgba(4,16,41,.58) 42%,rgba(4,16,41,.18) 76%); }
.hotels-hero-overlay { position:absolute; inset:auto 0 0; z-index:1; height:42%; background:linear-gradient(180deg,transparent,rgba(255,255,255,.94)); pointer-events:none; }
.hotels-hero-content { position:relative; z-index:2; max-width:720px; min-width:0; }
.hotels-hero-content h1 { margin:18px 0 18px; color:#f8fbff; font-size:clamp(46px,5.3vw,76px); line-height:1.02; font-weight:600; }
.hotels-hero-content p:not(.eyebrow) { max-width:620px; margin:0; color:#f2f6fb; font-size:clamp(18px,1.55vw,23px); line-height:1.42; font-weight:500; }
.hotels-concierge-card { position:absolute; z-index:3; right:5vw; top:52%; min-width:292px; display:grid; grid-template-columns:48px minmax(0,1fr) 22px; align-items:center; column-gap:12px; border:1px solid rgba(255,255,255,.7); border-radius:16px; padding:14px 18px; color:#fff; background:rgba(21,21,35,.58); box-shadow:0 22px 55px rgba(0,0,0,.22); backdrop-filter:blur(12px); }
.packages-section { padding-top:0; }
.packages-video-hero { position:relative; min-height:590px; margin:0 -5vw 76px; overflow:hidden; background:#071a38 image-set(url("./assets/hero-carousel/doha-luxury-african-travellers.jpg") type("image/jpeg")) center 54%/cover no-repeat; }
.packages-video-hero video { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:center; pointer-events:none; }
.hotels-concierge-card::after { content:"›"; grid-column:3; grid-row:1 / span 2; font-size:34px; line-height:1; }
.hotels-concierge-card span { grid-row:1 / span 2; display:grid; place-items:center; width:44px; height:44px; border:1px solid rgba(255,255,255,.75); border-radius:12px; font-size:25px; }
.hotels-concierge-card strong { font-family:var(--hotel-sans); font-size:16px; line-height:1.1; font-weight:800; }
.hotels-concierge-card small { color:rgba(255,255,255,.86); font-weight:600; }
.hotels-search-wrap { position:relative; z-index:4; width:min(1460px,88vw); margin:-118px auto 0; }
.hotels-phase-one .stay-search-panel { width:100%; min-width:0; box-sizing:border-box; border-radius:16px; padding:26px 32px; box-shadow:0 32px 82px rgba(7,26,56,.16); }
.hotels-phase-one .stay-search-primary { grid-template-columns:minmax(280px,1.4fr) minmax(340px,1.2fr) minmax(220px,.9fr) minmax(180px,.7fr); gap:14px; }
.hotels-phase-one .stay-search-primary > * { min-width:0; }
.hotels-phase-one .stay-date-range { min-width:0; }
.hotels-phase-one .stay-search-panel label { color:var(--hotel-navy); font-family:var(--hotel-sans); font-size:12px; font-weight:800; }
.hotels-phase-one .stay-search-panel input, .hotels-phase-one .stay-search-panel select { min-height:54px; border-color:#cfd8e6; border-radius:9px; color:var(--hotel-navy); }
.hotels-phase-one .stay-search-panel button { min-height:54px; border-radius:9px; font-family:var(--hotel-sans); font-weight:800; }
.hotels-phase-one .stay-search-primary > #applyStayFilters { color:#fff; background:var(--hotel-blue); }
.hotels-phase-one .stay-guests-control > button { color:var(--hotel-navy); background:#fff; border-color:#cfd8e6; text-align:left; }
.hotels-phase-one .stay-guests-popover > button { color:#fff; background:var(--hotel-navy); }
.hotels-phase-one .stay-search-advanced { border-top:1px solid var(--hotel-line); margin-top:8px; padding-top:16px; }
.hotels-phase-one .search-readiness-note { width:min(1460px,88vw); margin:16px auto 58px; }
.hotels-phase-one .search-readiness-note[hidden] { display:none; }
.hotels-phase-one .hotel-discovery { width:min(1488px,90vw); margin:0 auto; padding:56px 0 0; }
.hotels-property-section { padding-top:58px; }
.hotels-phase-one .hotel-discovery-head { align-items:center; margin-bottom:32px; }
.hotels-phase-one .hotel-discovery-head h2 { margin:0; color:var(--hotel-navy); font-size:clamp(36px,4vw,56px); line-height:1.06; }
.hotels-phase-one .hotel-discovery-head p:not(.eyebrow) { color:var(--hotel-ash); font-size:18px; font-weight:500; }
.hotels-phase-one .hotel-carousel-controls button { width:50px; min-height:50px; color:var(--hotel-navy); border-color:#cfd8e6; background:#fff; font-size:25px; font-weight:700; box-shadow:none; }
.hotels-phase-one .property-type-carousel { grid-auto-columns:calc((100% - 48px) / 3); gap:24px; padding:0 2px 38px; scroll-padding-inline:2px; }
.hotels-phase-one .property-type-card { border:1px solid #e4eaf3; border-radius:8px; padding:0; overflow:hidden; box-shadow:0 18px 42px rgba(7,26,56,.08); }
.hotels-phase-one .property-type-card img { height:442px; width:100%; object-fit:cover; }
.hotels-phase-one .property-type-card span { position:relative; min-height:112px; display:grid; gap:4px; align-content:center; padding:20px 76px 22px 28px; color:var(--hotel-navy); background:#fff; }
.hotels-phase-one .property-type-card span::after, .hotels-destination-section .hotel-destination-card span::after { content:"→"; position:absolute; right:28px; top:50%; width:46px; height:46px; display:grid; place-items:center; border-radius:50%; color:var(--hotel-navy); background:#eef4ff; transform:translateY(-50%); font-family:var(--hotel-sans); font-size:22px; font-weight:700; }
.hotels-phase-one .property-type-card b { font-family:var(--hotel-display); font-size:29px; line-height:1.06; font-weight:600; }
.hotels-phase-one .property-type-card small { color:#465a79; font-size:17px; font-weight:500; line-height:1.32; }
.hotels-service-pillars { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:0; margin:18px calc(50% - 50vw) 108px; padding:50px max(5vw,calc((100vw - 1488px)/2)) 42px; background:linear-gradient(180deg,#fcf9f4,#fff); border-top:1px solid #f0e9df; border-bottom:1px solid #f0e9df; }
.hotels-service-pillars article { display:grid; grid-template-columns:74px minmax(0,1fr); gap:22px; align-items:start; padding:8px 44px; border-left:1px solid #dbe2ed; }
.hotels-service-pillars article:first-child { border-left:0; }
.hotels-service-pillars b { color:var(--hotel-gold); font-family:Georgia,"Times New Roman",serif; font-size:44px; line-height:1; font-weight:400; }
.hotels-service-pillars h3 { margin:0 0 6px; color:var(--hotel-navy); font-size:24px; line-height:1.16; }
.hotels-service-pillars p { margin:0; color:#465a79; font-size:16px; line-height:1.5; }
.hotels-destination-section { position:relative; padding-bottom:54px; }
.hotels-destination-section::after { content:""; position:absolute; right:-8vw; bottom:20px; width:300px; height:300px; border:1px solid rgba(207,216,230,.7); border-radius:52% 48% 45% 55%; opacity:.5; pointer-events:none; }
.hotels-destination-section .hotel-destination-mosaic { position:relative; z-index:1; grid-template-columns:repeat(6,minmax(0,1fr)); gap:16px; }
.hotels-destination-section .hotel-destination-card { grid-column:span 2; min-height:0; border:1px solid #e4eaf3; border-radius:8px; color:var(--hotel-navy); background:#fff; box-shadow:0 16px 38px rgba(7,26,56,.07); }
.hotels-destination-section .hotel-destination-card.destination-wide { grid-column:span 2; transform:translateX(50%); }
.hotels-destination-section .hotel-destination-card img { position:static; width:100%; height:313px; object-fit:cover; opacity:1; transform:none; }
.hotels-destination-section .hotel-destination-card.destination-wide img { height:299px; }
.hotels-destination-section .hotel-destination-card::after { display:none; }
.hotels-destination-section .hotel-destination-card span { position:relative; inset:auto; min-height:90px; display:grid; grid-template-columns:minmax(0,1fr) auto; grid-template-rows:auto auto; align-content:center; padding:17px 84px 18px 22px; color:var(--hotel-navy); background:#fff; }
.hotels-destination-section .hotel-destination-card b { font-family:var(--hotel-display); font-size:30px; line-height:1.06; font-weight:600; }
.hotels-destination-section .hotel-destination-card small { grid-column:1; color:#536786; font-size:16px; font-weight:500; }
.hotels-destination-section .hotel-destination-card em { grid-column:2; grid-row:1 / span 2; align-self:center; color:var(--hotel-navy); font-style:normal; font-family:var(--hotel-sans); font-size:14px; font-weight:800; }
.hotels-editorial-feature { scroll-margin-top:118px; width:min(1888px,calc(100% - 60px)); margin:72px auto 128px; display:grid; grid-template-columns:minmax(360px,.78fr) minmax(0,1.22fr); overflow:hidden; border:1px solid #f0e8dd; border-radius:8px; background:#fbf7f1; box-shadow:0 18px 60px rgba(7,26,56,.06); }
.hotels-editorial-copy { display:grid; align-content:center; justify-items:start; padding:72px clamp(44px,5.2vw,96px); }
.hotels-editorial-copy h2 { max-width:500px; margin:18px 0 24px; color:var(--hotel-navy); font-size:clamp(42px,4.1vw,66px); line-height:1.05; }
.hotels-editorial-copy p:not(.eyebrow) { max-width:540px; margin:0 0 34px; color:var(--hotel-ash); font-size:clamp(17px,1.35vw,21px); line-height:1.58; font-weight:500; }
.hotels-editorial-copy .button-link { min-width:min(100%,330px); min-height:52px; display:inline-flex; align-items:center; justify-content:space-between; gap:18px; padding-inline:24px; font-family:var(--hotel-sans); font-size:16px; font-weight:800; }
.hotels-editorial-copy .button-link::after { content:"→"; }
.hotels-editorial-feature > img { width:100%; height:100%; min-height:620px; object-fit:cover; }
.hotels-collections-section { scroll-margin-top:118px; padding:8px 0 84px; }
.hotels-collections-head { text-align:center; max-width:930px; margin:0 auto 26px; }
.hotels-collections-head h2 { margin:14px 0 12px; color:var(--hotel-navy); font-size:clamp(40px,4vw,58px); line-height:1.06; }
.hotels-collections-head p:not(.eyebrow) { margin:0; color:var(--hotel-ash); font-size:18px; line-height:1.55; font-weight:500; }
.hotels-collection-tabs { justify-content:center; gap:12px; margin:30px 0 34px; }
.hotels-collection-tabs button { min-width:150px; min-height:44px; border-color:#cfd8e6; color:var(--hotel-navy); font-family:var(--hotel-sans); font-size:14px; font-weight:800; }
.hotels-collection-tabs button.active { border-color:var(--hotel-navy); color:#fff; background:var(--hotel-navy); }
.hotels-collection-cards { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:14px; }
.hotels-collection-card { overflow:hidden; border:1px solid #e4eaf3; border-radius:8px; background:#fff; box-shadow:0 18px 42px rgba(7,26,56,.08); }
.hotels-collection-card[hidden] { display:none; }
.hotels-collection-card img { width:100%; height:386px; object-fit:cover; }
.hotels-collection-card div { position:relative; min-height:194px; padding:24px 82px 28px 26px; }
.hotels-collection-card div::after { content:"→"; position:absolute; right:26px; bottom:28px; width:46px; height:46px; display:grid; place-items:center; border-radius:50%; color:var(--hotel-navy); background:#eef4ff; font-size:22px; font-weight:700; }
.hotels-collection-card h3 { margin:0 0 8px; color:var(--hotel-navy); font-size:30px; line-height:1.08; }
.hotels-collection-card p { margin:0 0 24px; color:#465a79; font-size:17px; line-height:1.45; }
.hotels-collection-card button { min-height:auto; padding:0; color:var(--hotel-navy); background:transparent; font-family:var(--hotel-sans); font-size:15px; font-weight:800; }
.hotels-collection-card button::after { content:" →"; }
.hotels-collection-note { max-width:720px; margin:22px auto 0; color:#5f6f8d; text-align:center; }
.hotels-collection-note[hidden] { display:none; }
.hotels-planning-feature { width:min(1760px,96vw); margin:72px auto 106px; display:grid; grid-template-columns:1.12fr .88fr; overflow:hidden; border-radius:8px; background:#fbf7f1; }
.hotels-planning-feature > img { width:100%; height:100%; min-height:700px; object-fit:cover; }
.hotels-planning-copy { display:grid; align-content:center; padding:76px clamp(44px,6vw,78px); }
.hotels-planning-copy h2 { max-width:600px; margin:18px 0 24px; color:var(--hotel-navy); font-size:clamp(42px,4.2vw,64px); line-height:1.06; }
.hotels-planning-copy p:not(.eyebrow) { max-width:640px; margin:0 0 36px; color:var(--hotel-ash); font-size:clamp(17px,1.35vw,21px); line-height:1.58; font-weight:500; }
.hotels-planning-actions { display:flex; flex-wrap:wrap; gap:18px; margin-bottom:42px; }
.hotels-planning-actions button, .hotels-planning-actions .secondary-button, .hotels-concierge-gallery button { min-height:52px; display:inline-flex; align-items:center; justify-content:center; gap:16px; border-radius:8px; padding:0 24px; font-family:var(--hotel-sans); font-size:16px; font-weight:800; }
.hotels-planning-actions button, .hotels-concierge-gallery button { background:var(--hotel-navy); }
.hotels-planning-actions button::after, .hotels-concierge-gallery button::after { content:"→"; font-size:24px; }
.hotels-planning-actions .secondary-button { border:1px solid var(--hotel-navy); color:var(--hotel-navy); background:transparent; }
.hotels-enquiry-pills { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:0; border-top:1px solid #d9e1eb; padding-top:22px; }
.hotels-enquiry-pills span { min-height:58px; display:grid; place-items:center; border-top:1px solid #d9e1eb; color:#334766; text-align:center; font-weight:700; line-height:1.2; }
.hotels-enquiry-pills span:nth-child(-n+2) { border-top:0; }
.hotels-enquiry-pills span:nth-child(even) { border-left:1px solid #d9e1eb; }
.hotels-concierge-gallery { width:min(1500px,90vw); margin:0 auto 88px; text-align:center; }
.hotels-concierge-gallery .hotels-collections-head { margin-bottom:30px; }
.hotels-concierge-gallery .hotels-collections-head p:not(.eyebrow) { max-width:900px; margin-inline:auto; }
.hotels-concierge-gallery .hotels-collections-head button { margin-top:28px; }
.hotels-lifestyle-gallery { display:grid; grid-template-columns:1.04fr .98fr 1.02fr 1.04fr; align-items:end; gap:22px; margin-top:34px; }
.hotels-lifestyle-gallery figure { margin:0; }
.hotels-lifestyle-gallery figure:nth-child(2) { padding-top:70px; }
.hotels-lifestyle-gallery figure:nth-child(3) { padding-bottom:34px; }
.hotels-lifestyle-gallery figure:nth-child(4) { padding-top:66px; }
.hotels-lifestyle-gallery img { width:100%; height:clamp(360px,32vw,520px); object-fit:cover; }
.hotels-lifestyle-gallery figcaption { margin-top:16px; color:#526684; font-size:16px; font-weight:600; }
.hotels-results-workspace[hidden] { display:none; }
.reviewer-demo-banner { padding:20px; background:#eef4ff; color:#17234a; display:flex; flex-wrap:wrap; gap:16px; }
.reviewer-customer-demo .topbar,.reviewer-customer-demo .whatsapp-float { display:none !important; }
.reviewer-customer-demo .hotels-concierge-card,.reviewer-customer-demo .hotels-planning-actions,.reviewer-customer-demo [data-hotel-concierge],.reviewer-customer-demo .hotels-footer-treatment { display:none !important; }
.hotels-results-screen > :not(.hotels-search-wrap):not(#staySearchReadiness):not(#hotelSearchResults) { display:none !important; }
.hotels-results-screen .hotels-search-wrap { margin:32px auto 0; }
#clearStayFilters { background:#fff; color:#173b70; border:1px solid #cbd5e1; }
.reviewer-customer-demo #stay-detail a[href="#crm"] { display:none; }
.hotels-results-screen #hotelSearchResults { margin-top:24px; border:0; padding:0; box-shadow:none; }
.hotels-results-workspace { width:min(1500px,92vw); margin:96px auto 92px; padding:42px; border:1px solid #dfe6f1; border-radius:8px; color:var(--hotel-navy); background:#fff; box-shadow:0 24px 70px rgba(7,26,56,.08); scroll-margin-top:112px; }
.hotels-results-intro { display:grid; gap:8px; max-width:760px; margin:0 0 26px; }
.hotels-results-intro h2 { margin:0; color:var(--hotel-navy); font-size:clamp(34px,3.4vw,48px); line-height:1.08; }
.hotels-results-intro p:not(.eyebrow) { margin:0; color:var(--hotel-ash); font-size:17px; line-height:1.5; }
.hotels-footer-treatment { width:min(1500px,92vw); margin:76px auto 0; padding:60px 0 36px; border-top:1px solid #cfd8e6; border-bottom:1px solid #cfd8e6; color:var(--hotel-navy); background:#fff; }
.hotels-footer-main { display:grid; grid-template-columns:minmax(320px,.62fr) minmax(0,1fr); gap:54px; align-items:start; }
.hotels-footer-newsletter { padding-right:42px; border-right:1px solid #dbe2ed; }
.hotels-footer-newsletter h2 { margin:14px 0 12px; color:var(--hotel-navy); font-size:clamp(38px,3.8vw,56px); line-height:1.04; }
.hotels-footer-newsletter p:not(.eyebrow) { max-width:520px; margin:0 0 26px; color:var(--hotel-ash); font-size:18px; line-height:1.45; }
.hotels-footer-newsletter form { display:grid; grid-template-columns:minmax(220px,1fr) 170px; gap:14px; align-items:end; }
.hotels-footer-newsletter label { display:grid; gap:8px; color:var(--hotel-navy); font-size:12px; font-weight:950; }
.hotels-footer-newsletter input { min-height:54px; border:1px solid #cfd8e6; border-radius:8px; padding:0 16px; color:var(--hotel-navy); background:#f8fafc; }
.hotels-footer-newsletter button { min-height:54px; border-radius:8px; background:var(--hotel-navy); opacity:.65; cursor:not-allowed; }
.hotels-footer-status { margin-top:18px !important; font-size:14px !important; }
.hotels-footer-links { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:28px; text-align:left; }
.hotels-footer-links h3 { margin:0 0 18px; color:var(--hotel-navy); font-family:var(--hotel-display); font-size:21px; line-height:1.12; font-weight:560; }
.hotels-footer-links a, .hotels-footer-links span { display:block; margin:0 0 14px; color:#506484; font-size:15px; line-height:1.35; font-weight:650; }
.hotels-footer-links span { color:#7c8ca5; }
.hotels-footer-links a:hover, .hotels-footer-links a:focus-visible { color:var(--hotel-blue); text-decoration:underline; }
.hotels-footer-bottom { display:flex; flex-wrap:wrap; align-items:center; gap:16px 24px; margin-top:58px; padding-top:28px; border-top:1px solid #cfd8e6; color:#506484; font-size:14px; }
.hotels-footer-bottom .footer-brand { display:flex; align-items:center; gap:12px; margin-right:8px; }
.hotels-footer-bottom .footer-brand img { width:148px; margin:0; border-radius:0; }
.hotels-footer-bottom .footer-brand p { margin:0; color:var(--hotel-navy); font-size:12px; font-weight:950; }
.stay-search-panel { display:grid; gap:14px; position:relative; z-index:5; width:min(1180px,calc(100% - 32px)); margin:-42px auto 14px; border:1px solid var(--line); border-radius:18px; padding:22px; background:#fff; box-shadow:0 18px 48px rgba(7,26,56,.16); }
.stay-search-primary { display:grid; grid-template-columns:minmax(260px,1.55fr) minmax(320px,1.35fr) minmax(180px,.75fr) minmax(138px,.55fr); gap:10px; align-items:end; }
.stay-search-panel label { display:grid; gap:6px; color:var(--navy); font-size:12px; font-weight:950; }
.stay-search-panel input, .stay-search-panel select { width:100%; min-height:42px; border:1px solid var(--line); border-radius:8px; padding:0 12px; background:#fff; font:inherit; font-weight:800; }
.stay-date-range { display:grid; grid-template-columns:1fr 1fr; gap:0; border:1px solid var(--line); border-radius:10px; }
.stay-date-range label { padding:7px 10px; }
.stay-date-range label+label { border-left:1px solid var(--line); }
.stay-date-range input { min-height:28px; border:0; padding:0; }
.stay-control-label { display:block; margin-bottom:6px; color:var(--navy); font-size:12px; font-weight:950; }
.stay-guests-control { position:relative; }
.stay-guests-control>button { width:100%; min-height:58px; border:1px solid var(--line); border-radius:10px; color:var(--navy); background:#fff; text-align:left; }
.stay-guests-popover { position:absolute; z-index:45; top:calc(100% + 8px); right:0; width:min(460px,90vw); border:1px solid var(--line); border-radius:16px; padding:16px; background:#fff; box-shadow:0 20px 50px #13213d30; }
.stay-guests-popover>button { width:100%; margin-top:12px; }
.stay-search-primary>#applyStayFilters { min-height:58px; border-radius:10px; }
.stay-search-validation { margin:0; border-left:4px solid #b42318; padding:9px 12px; color:#7a271a; background:#fef3f2; }
.stay-destination-input { position:relative; display:flex; align-items:center; }
.stay-destination-input input { min-height:58px; padding-right:42px; }
.stay-destination-input button { position:absolute; right:7px; width:34px; min-height:34px; border:0; color:var(--muted); background:transparent; font-size:22px; }
.stay-search-advanced { border-top:1px solid var(--line); padding-top:12px; }
.stay-search-advanced summary { width:max-content; cursor:pointer; color:var(--navy); font-weight:950; }
.stay-search-advanced-grid { display:grid; grid-template-columns:minmax(240px,1.1fr) minmax(360px,1.6fr) minmax(290px,1.2fr); gap:16px; align-items:end; padding-top:12px; }
.stay-segment-field { min-width:0; border:0; margin:0; padding:0; }
.stay-segment-field legend { margin-bottom:6px; color:var(--navy); font-size:12px; font-weight:950; }
.stay-segments { display:flex; min-height:42px; overflow:visible; border:1px solid var(--line); border-radius:10px; }
.stay-segments label { position:relative; flex:1; display:grid; place-items:center; cursor:pointer; }
.stay-segments label+label { border-left:1px solid var(--line); }
.stay-segments input { position:absolute; width:1px; height:1px; min-height:0; opacity:0; }
.stay-segments span { display:grid; width:100%; height:100%; min-height:40px; place-items:center; padding:0 8px; color:var(--navy); background:#fff; font-size:13px; font-weight:900; }
.stay-segments label:first-child span { border-radius:9px 0 0 9px; }
.stay-segments label:last-child span { border-radius:0 9px 9px 0; }
.stay-segments input:checked+span { color:#fff; background:var(--blue); }
.stay-segments input:focus-visible+span { outline:3px solid rgba(13,96,255,.35); outline-offset:2px; }
.stay-meal-option::after { content:attr(data-tooltip); position:absolute; z-index:50; bottom:calc(100% + 8px); left:50%; width:max-content; max-width:220px; transform:translate(-50%,4px); border-radius:8px; padding:7px 9px; color:#fff; background:var(--navy); font-size:12px; font-weight:800; opacity:0; pointer-events:none; transition:.15s; }
.stay-meal-option:hover::after,.stay-meal-option:focus-within::after { opacity:1; transform:translate(-50%,0); }
.stay-meal-explanation { grid-column:1/-1; min-height:18px; margin:7px 0 0; color:var(--muted); font-size:12px; font-weight:800; }
.stay-search-panel .stay-checkbox { display:flex; min-height:42px; align-items:center; gap:9px; border:1px solid var(--line); border-radius:8px; padding:0 12px; }
.stay-search-panel .stay-checkbox input { width:18px; min-height:18px; accent-color:var(--blue); }
.search-readiness-note { margin:-12px 0 18px; color:var(--muted); font-size:13px; font-weight:800; }
.hotel-discovery { margin:34px 0; }
.hotel-discovery-head { display:flex; align-items:end; justify-content:space-between; gap:16px; margin-bottom:14px; }
.hotel-discovery-head h3 { margin:0; color:var(--navy); font-size:clamp(24px,3vw,34px); }
.hotel-discovery-head p:not(.eyebrow) { margin:6px 0 0; color:var(--muted); }
.hotel-carousel-controls { display:flex; gap:8px; }
.hotel-carousel-controls button { width:42px; min-height:42px; border:1px solid var(--line); border-radius:50%; color:var(--navy); background:#fff; }
.property-type-carousel { display:grid; grid-auto-flow:column; grid-auto-columns:clamp(210px,22vw,280px); gap:14px; overflow-x:auto; padding:2px 2px 12px; scroll-snap-type:x mandatory; scrollbar-width:thin; }
.property-type-card { scroll-snap-align:start; overflow:hidden; display:grid; gap:10px; min-height:0; border:0; padding:0 0 10px; color:var(--navy); background:#fff; text-align:left; box-shadow:0 10px 28px rgba(7,26,56,.08); }
.property-type-card img { width:100%; height:190px; object-fit:cover; }
.property-type-card span { padding:0 14px; font-size:18px; font-weight:950; }
.hotel-destination-mosaic { display:grid; grid-template-columns:repeat(6,minmax(0,1fr)); gap:14px; }
.hotel-destination-card { position:relative; overflow:hidden; grid-column:span 2; min-height:230px; border:0; padding:0; color:#fff; background:var(--navy); text-align:left; }
.hotel-destination-card.featured { grid-column:span 3; min-height:300px; }
.hotel-destination-card::after { content:""; position:absolute; inset:0; background:linear-gradient(180deg,transparent 40%,rgba(7,26,56,.86)); }
.hotel-destination-card img { width:100%; height:100%; object-fit:cover; transition:transform .35s ease; }
.hotel-destination-card:hover img { transform:scale(1.035); }
.hotel-destination-card span { position:absolute; z-index:1; left:20px; bottom:18px; display:grid; gap:2px; }
.hotel-destination-card b { font-size:25px; }
.hotel-destination-card small { color:rgba(255,255,255,.85); font-weight:850; }
.hotel-trip-planner { border-radius:12px; padding:24px; background:linear-gradient(135deg,#eef5ff,#fff6ef); }
.hotel-style-row { display:flex; flex-wrap:wrap; gap:9px; }
.hotel-style-row button { border:1px solid #c9dcfb; color:var(--navy); background:#fff; }
.hotel-style-row button:hover,.hotel-style-row button:focus-visible { border-color:var(--blue); color:#fff; background:var(--blue); }
.stay-category-row { display:flex; flex-wrap:wrap; gap:8px; margin:0 0 22px; }
.stay-category-row button { min-height:36px; border:1px solid var(--line); color:var(--navy); background:#fff; font-size:12px; }
.stay-results-toolbar { display:flex; align-items:end; justify-content:space-between; gap:18px; margin:30px 0 16px; }
.stay-results-toolbar h3 { margin:0; color:var(--navy); font-size:28px; }
.stay-results-actions { display:flex; align-items:end; gap:12px; }
.stay-results-actions label { display:grid; gap:5px; color:var(--navy); font-size:12px; font-weight:950; }
.stay-results-actions select { min-height:40px; border:1px solid var(--line); border-radius:8px; padding:0 34px 0 10px; color:var(--navy); background:#fff; font:inherit; font-weight:850; }
.stay-view-switcher { display:flex; overflow:hidden; border:1px solid var(--line); border-radius:8px; }
.stay-view-switcher button { min-height:40px; border:0; border-left:1px solid var(--line); border-radius:0; color:var(--navy); background:#fff; }
.stay-view-switcher button:first-child { border-left:0; }
.stay-view-switcher button.active { color:#fff; background:var(--navy); }
.stays-results-layout { display:grid; grid-template-columns:245px minmax(0,1fr); gap:18px; align-items:start; }
.stays-results-layout[data-view="split"] { grid-template-columns:220px minmax(440px,1fr) minmax(340px,.85fr); }
.stays-results-layout[data-view="map"] { grid-template-columns:245px minmax(0,1fr); }
.stays-results-layout[data-view="map"] .stay-results-list { display:none; }
.stays-results-layout[data-view="list"] .stay-map-panel { display:none; }
.stay-filter-sidebar { position:sticky; top:90px; display:grid; gap:16px; border:1px solid var(--line); border-radius:10px; padding:16px; background:#fff; box-shadow:0 12px 30px rgba(7,26,56,.06); }
.stay-filter-heading { display:flex; align-items:center; justify-content:space-between; gap:10px; }
.stay-filter-heading h3 { margin:0; color:var(--navy); }
.stay-filter-sidebar>label { display:grid; gap:6px; color:var(--navy); font-size:13px; font-weight:900; }
.stay-filter-sidebar input[type="text"],.stay-filter-sidebar>label input { width:100%; min-height:40px; border:1px solid var(--line); border-radius:8px; padding:0 10px; font:inherit; }
.stay-filter-sidebar fieldset { display:grid; gap:9px; border:0; border-top:1px solid var(--line); margin:0; padding:15px 0 0; }
.stay-filter-sidebar legend { margin-bottom:9px; color:var(--navy); font-weight:950; }
.stay-filter-sidebar fieldset label { display:flex; align-items:flex-start; gap:8px; color:var(--ink); font-size:13px; font-weight:800; }
.stay-filter-sidebar fieldset input { flex:0 0 auto; width:17px; height:17px; accent-color:var(--blue); }
.stay-grid { display:grid; grid-template-columns:1fr; gap:16px; }
.stay-card { overflow:hidden; border:1px solid var(--line); border-radius:8px; background:#fff; box-shadow:0 14px 35px rgba(7,26,56,.06); transition:transform .16s ease, box-shadow .16s ease; }
.stay-results-list .stay-card { display:grid; grid-template-columns:minmax(220px,36%) minmax(0,1fr); }
.stay-card:hover, .experience-card:hover, .qatar-package-card:hover, .card:hover { transform:translateY(-2px); box-shadow:0 18px 42px rgba(7,26,56,.1); }
.stay-image-wrap { position:relative; min-height:210px; background:#eef3f7; }
.stay-image-wrap img { width:100%; aspect-ratio:16/10; height:auto; min-height:220px; display:block; object-fit:cover; }
.stay-image-placeholder,.hotel-detail-image-placeholder { min-height:220px; display:grid; place-content:center; gap:8px; padding:24px; text-align:center; background:linear-gradient(135deg,#eef3f7,#f8fafc); color:var(--navy); }
.stay-image-wrap .stay-image-placeholder span,.hotel-detail-image-placeholder span { position:static; padding:0; color:#526173; background:none; font-size:13px; font-weight:700; }
.stay-image-disclosure { margin:8px 0 0; color:#526173; font-size:12px; font-weight:750; }
.detail-image-disclosure { margin:10px 0 20px; }
.stay-image-wrap span { position:absolute; left:12px; top:12px; border-radius:999px; padding:6px 10px; color:#fff; background:var(--orange); font-size:12px; font-weight:950; }
.stay-card-body { display:grid; gap:12px; padding:16px; }
.stay-card-body h3 { margin:0 0 4px; color:var(--navy); font-size:20px; }
.stay-tags { display:flex; flex-wrap:wrap; gap:6px; }
.stay-tags span, .amenity-grid span { border:1px solid #d8e6ff; border-radius:999px; padding:5px 9px; color:#075fe4; background:#f5f9ff; font-size:12px; font-weight:900; }
.stay-card-footer { display:flex; align-items:center; justify-content:space-between; gap:12px; border-top:1px solid var(--line); padding-top:12px; }
.stay-card-footer div { display:grid; gap:2px; }
.stay-card-footer span, .stay-card-footer small { color:var(--muted); font-size:12px; font-weight:850; }
.stay-card-footer b { color:var(--navy); font-size:20px; }
.stay-result-rating { display:flex; align-items:center; justify-content:space-between; gap:12px; }
.stay-result-rating strong { display:inline-grid; place-items:center; min-width:46px; min-height:46px; border-radius:8px 8px 8px 0; color:#fff; background:var(--blue); font-size:18px; }
.stay-result-rating small { color:var(--muted); font-weight:850; }
.stay-room-preview { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:12px; border-radius:8px; padding:11px; background:#f7f9fc; }
.stay-room-preview p { margin:0; }
.stay-room-preview strong { color:var(--navy); }
.stay-map-panel { position:sticky; top:90px; border:1px solid #cfe0f5; border-radius:12px; padding:15px; background:#fff; box-shadow:0 16px 38px rgba(7,26,56,.1); }
.stay-map-head { display:flex; align-items:start; justify-content:space-between; gap:10px; margin-bottom:12px; }
.stay-map-head h3 { margin:0; color:var(--navy); }
.stay-map-canvas { position:relative; overflow:hidden; min-height:520px; border-radius:10px; background-color:#ddecf6; background-image:linear-gradient(28deg,transparent 45%,rgba(255,255,255,.85) 46% 49%,transparent 50%),linear-gradient(118deg,transparent 48%,rgba(255,255,255,.9) 49% 52%,transparent 53%),radial-gradient(circle at 75% 25%,#b9def3 0 22%,transparent 23%),linear-gradient(135deg,#dcefd5,#edf5e7); }
.stay-map-canvas::before { content:""; position:absolute; inset:0; background:repeating-linear-gradient(12deg,transparent 0 44px,rgba(7,95,228,.12) 45px 47px,transparent 48px 82px); }
.stay-map-marker { position:absolute; z-index:1; transform:translate(-50%,-50%); min-height:34px; border:2px solid #fff; border-radius:999px; padding:5px 9px; color:#fff; background:var(--navy); box-shadow:0 5px 16px rgba(7,26,56,.3); font-size:12px; }
.stay-map-marker:hover,.stay-map-marker.active { background:var(--orange); transform:translate(-50%,-50%) scale(1.08); }
.stay-map-empty { position:absolute; z-index:1; inset:45% 18px auto; border-radius:8px; padding:12px; color:var(--navy); background:rgba(255,255,255,.9); text-align:center; font-weight:900; }
.stay-pagination { display:flex; align-items:center; justify-content:center; gap:14px; margin:22px 0 8px; }
.stay-pagination span { color:var(--navy); font-weight:900; }
.stay-pagination button:disabled { cursor:not-allowed; opacity:.45; }
.stay-empty-state { grid-column:1/-1; display:grid; justify-items:center; gap:10px; min-height:300px; align-content:center; border:1px dashed #b9cae0; border-radius:12px; padding:32px; background:#fff; text-align:center; }
.stay-empty-state span { color:var(--blue); font-size:48px; }
.stay-empty-state h3,.stay-empty-state p { margin:0; }
.stay-empty-state h3 { color:var(--navy); }
.stay-card-skeleton { pointer-events:none; }
.skeleton-block { border-radius:8px; background:linear-gradient(90deg,#edf1f5 25%,#f8fafc 45%,#edf1f5 65%); background-size:240% 100%; animation:stay-skeleton 1.35s ease-in-out infinite; }
.skeleton-image { min-height:245px; border-radius:0; }
.skeleton-line { width:68%; height:18px; }
.skeleton-line.wide { width:88%; height:25px; }
.skeleton-line.short { width:42%; }
.skeleton-room { width:100%; height:68px; }
@keyframes stay-skeleton { from { background-position:100% 0; } to { background-position:-100% 0; } }
@media (prefers-reduced-motion:reduce){.skeleton-block{animation:none}.stay-map-marker,.hotel-destination-card img{transition:none}}
.trip-builder-card { position:sticky; top:92px; border-radius:8px; padding:20px; color:#fff; background:linear-gradient(145deg,#071a38,#0d438f); box-shadow:0 18px 46px rgba(7,26,56,.18); }
.trip-builder-card h3 { margin:0 0 12px; font-size:23px; line-height:1.25; }
.trip-builder-card ul { display:grid; gap:9px; margin:0 0 18px; padding-left:20px; }
.trip-builder-card .eyebrow { color:#fff; }
.amenity-grid { display:flex; flex-wrap:wrap; gap:8px; margin:0 0 12px; }
.room-list { margin-top:22px; border:1px solid var(--line); border-radius:8px; background:#fff; padding:18px; }
.room-row { display:flex; align-items:center; justify-content:space-between; gap:18px; border-top:1px solid var(--line); padding:14px 0; }
.room-row:first-of-type { border-top:0; }
.room-row h3 { margin:0 0 4px; color:var(--navy); }
.room-row strong, .room-row span { display:block; text-align:right; }
.room-row strong { color:var(--navy); font-size:20px; }
.room-row span { color:var(--muted); font-weight:900; }
.experiences-section { background:#fff; }
.experiences-section { padding:0; overflow:hidden; }
html[data-public-review="true"].experiences-view .topbar { display:flex; }
html[data-public-review="true"].experiences-view main { padding-top:0; }
.tours-layout-one { margin:0; color:#071a38; background:#fff; font-family:Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; }
.tours-video-hero { position:relative; min-height:636px; display:grid; align-content:center; overflow:hidden; padding:34px 5.9vw 78px; color:#fff; background:#071a38; isolation:isolate; }
.tours-hero-poster, .tours-hero-video { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:center 49%; pointer-events:none; }
.tours-hero-poster { z-index:-4; display:block; }
.tours-hero-video { z-index:-3; }
.tours-hero-video-mobile { display:none; }
.tours-hero-shade { position:absolute; inset:0; z-index:-1; background:linear-gradient(90deg,rgba(1,12,31,.64) 0%,rgba(1,19,42,.36) 42%,rgba(1,14,32,.5) 100%),linear-gradient(180deg,rgba(1,9,20,.34) 0%,rgba(1,9,20,.04) 36%,rgba(1,9,20,.42) 100%); pointer-events:none; }
.tours-hero-header { position:absolute; left:5.9vw; right:5.9vw; top:38px; z-index:2; display:flex; align-items:center; justify-content:space-between; gap:28px; }
.tours-hero-logo { display:inline-flex; align-items:center; }
.tours-hero-logo img { width:218px; max-width:28vw; height:auto; display:block; }
.tours-hero-controls { display:flex; align-items:center; justify-content:flex-end; gap:18px; color:#fff; font-size:16px; font-weight:850; }
.tours-hero-controls button, .tours-hero-controls a { min-height:44px; display:inline-flex; align-items:center; justify-content:center; gap:8px; border:0; padding:0; color:#fff; background:transparent; font:inherit; text-decoration:none; white-space:nowrap; }
.tours-hero-controls button:focus-visible, .tours-hero-controls a:focus-visible, .tours-hero-search input:focus-visible, .tours-hero-search button:focus-visible { outline:3px solid rgba(255,255,255,.92); outline-offset:3px; }
.tours-control-separator { width:1px; height:32px; background:rgba(255,255,255,.42); }
.tours-hero-controls a span { width:20px; height:20px; display:inline-flex; align-items:center; justify-content:center; border:2px solid currentColor; border-radius:50%; font-size:13px; line-height:1; }
.tours-sign-in { min-width:104px; border:2px solid rgba(255,255,255,.9) !important; border-radius:10px; padding:0 24px !important; }
.tours-hero-copy { width:min(760px,100%); margin-top:86px; }
.tours-hero-copy h2 { margin:0 0 12px; color:#fff; font-size:64px; line-height:1.04; font-weight:950; letter-spacing:0; text-shadow:0 2px 12px rgba(0,0,0,.24); }
.tours-hero-copy p { max-width:790px; margin:0 0 36px; color:#f6fbff; font-size:25px; line-height:1.25; font-weight:500; text-shadow:0 2px 10px rgba(0,0,0,.25); }
.tours-hero-search { width:min(625px,100%); height:70px; display:grid; grid-template-columns:minmax(0,1fr) 70px; align-items:center; border:1px solid rgba(255,255,255,.72); border-radius:11px; background:#fff; box-shadow:0 18px 46px rgba(2,12,32,.18); overflow:hidden; }
.tours-hero-search input { width:100%; height:100%; border:0; padding:0 0 0 28px; color:#101b35; background:#fff; font:inherit; font-size:20px; font-weight:550; outline:0; }
.tours-hero-search input::placeholder { color:#697083; opacity:1; }
.tours-hero-search button { width:70px; height:70px; border:0; color:#061532; background:#fff; }
.tours-hero-search svg { width:32px; height:32px; fill:none; stroke:currentColor; stroke-width:2.1; stroke-linecap:round; stroke-linejoin:round; }
.tours-confidence-strip { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); align-items:center; min-height:170px; padding:44px 5.9vw 40px; background:#fff; box-shadow:0 -1px 0 rgba(220,228,240,.85); }
.tours-confidence-strip article { min-height:80px; display:grid; grid-template-columns:74px minmax(0,1fr); gap:22px; align-items:center; padding:0 32px; border-left:1px solid #d8dfeb; }
.tours-confidence-strip article:first-child { border-left:0; padding-left:0; }
.tours-confidence-strip h3 { margin:0 0 7px; color:#061532; font-size:19px; line-height:1.2; font-weight:950; letter-spacing:0; }
.tours-confidence-strip p { margin:0; color:#687287; font-size:16px; line-height:1.35; font-weight:600; }
.tours-icon { width:70px; height:70px; display:inline-flex; align-items:center; justify-content:center; border-radius:50%; }
.tours-icon svg { width:34px; height:34px; fill:none; stroke:currentColor; stroke-width:2.15; stroke-linecap:round; stroke-linejoin:round; }
.tours-icon-blue { color:#065ca7; background:#eaf2ff; }
.tours-icon-green { color:#0b745e; background:#e7f8f0; }
.tours-icon-orange { color:#d9550c; background:#fff0e8; }
.tours-icon-purple { color:#4a2aa0; background:#f0eafd; }
.tours-discovery-panels { width:min(100%,1792px); display:grid; gap:28px; margin:0 auto; padding:96px 32px 76px; background:#fff; }
.tours-carousel-panel { overflow:hidden; border-radius:12px; padding:28px 22px 22px; color:#071a38; }
.tours-carousel-panel-peach { background:#fff4e9; }
.tours-carousel-panel-lavender { background:#f2ecff; }
.tours-carousel-head { display:grid; grid-template-columns:58px minmax(0,1fr) auto; align-items:center; gap:18px; margin-bottom:18px; }
.tours-panel-badge { width:46px; height:46px; display:inline-flex; align-items:center; justify-content:center; border-radius:13px; color:#fff; box-shadow:0 10px 24px rgba(34,20,91,.12); }
.tours-panel-badge svg { width:29px; height:29px; fill:currentColor; stroke:currentColor; stroke-width:1.4; stroke-linecap:round; stroke-linejoin:round; }
.tours-panel-badge-camera { background:linear-gradient(135deg,#ff7a26,#f14321); }
.tours-panel-badge-star { border-radius:50%; background:linear-gradient(135deg,#9d60ff,#6234df); }
.tours-carousel-head h2 { margin:0; color:#071a38; font-size:30px; line-height:1.05; font-weight:950; letter-spacing:0; }
.tours-carousel-head p { margin:6px 0 0; color:#14264a; font-size:18px; line-height:1.22; font-weight:600; }
.tours-carousel-actions { display:flex; align-items:center; justify-content:flex-end; gap:14px; }
.tours-see-all { min-height:44px; display:inline-flex; align-items:center; gap:8px; border:0; color:#1200ff; background:transparent; font:inherit; font-size:16px; font-weight:950; white-space:nowrap; cursor:pointer; }
.tours-see-all span { font-size:28px; line-height:1; transform:translateY(-1px); }
.tours-carousel-button { width:50px; height:50px; display:inline-flex; align-items:center; justify-content:center; border:0; border-radius:50%; color:#071a38; background:#fff; font-size:34px; line-height:1; font-weight:800; box-shadow:0 10px 26px rgba(22,33,64,.08); cursor:pointer; }
.tours-carousel-button:disabled { opacity:.42; cursor:default; }
.tours-see-all:focus-visible, .tours-carousel-button:focus-visible, .tours-card-track:focus-visible { outline:3px solid rgba(18,0,255,.34); outline-offset:3px; }
.tours-card-track { --tours-card-gap:12px; display:grid; grid-auto-flow:column; grid-auto-columns:calc((100% - (var(--tours-card-gap) * 4)) / 5); gap:var(--tours-card-gap); overflow-x:auto; scroll-snap-type:x mandatory; scroll-behavior:smooth; scrollbar-width:none; }
.tours-card-track::-webkit-scrollbar { display:none; }
.tours-feature-card { min-width:0; overflow:hidden; scroll-snap-align:start; border-radius:8px; background:#fff; box-shadow:0 8px 22px rgba(32,45,72,.06); }
.tours-feature-card img { width:100%; height:176px; display:block; object-fit:cover; object-position:center; background:#d8e4ef; }
.tours-feature-card div { min-height:196px; display:grid; align-content:start; padding:13px 16px 15px; }
.tours-feature-card h3 { min-height:50px; margin:0 0 8px; color:#071a38; font-size:17px; line-height:1.18; font-weight:950; letter-spacing:0; }
.tours-rating { display:flex; align-items:center; gap:5px; margin:0 0 8px; color:#f59b13; font-size:15px; line-height:1; font-weight:950; }
.tours-rating span:last-child { color:#53617a; font-weight:700; }
.tours-meta { display:flex; align-items:center; gap:8px; flex-wrap:wrap; margin:0 0 12px; color:#53617a; font-size:13px; line-height:1.25; font-weight:750; }
.tours-meta > span[aria-hidden="true"] { color:#53617a; }
.tours-cancel { display:inline-flex; align-items:center; gap:5px; color:#53617a; }
.tours-cancel span { width:15px; height:15px; display:inline-flex; align-items:center; justify-content:center; border-radius:50%; color:#fff; background:#35b66b; font-size:10px; font-weight:950; }
.tours-price { margin:auto 0 0; color:#071a38; font-size:20px; line-height:1.08; font-weight:950; }
.tours-price span { display:block; margin-bottom:3px; color:#53617a; font-size:14px; font-weight:650; }
.tours-effortless-section { width:min(100%,1792px); margin:0 auto; padding:32px 32px 94px; color:#071a38; background:#fff; }
.tours-effortless-section > h2 { margin:0 0 32px 4px; color:#071a38; font-size:42px; line-height:1.12; font-weight:950; letter-spacing:0; }
.tours-effortless-card { min-height:565px; display:grid; grid-template-columns:47% 53%; overflow:hidden; border-radius:22px; box-shadow:0 18px 48px rgba(18,35,54,.08); }
.tours-effortless-copy { position:relative; display:grid; align-content:center; padding:70px 54px 64px; color:#fff; background:radial-gradient(circle at 82% 18%,rgba(22,152,132,.38),transparent 42%),linear-gradient(135deg,#002f31 0%,#045c58 47%,#003434 100%); }
.tours-effortless-slide { max-width:690px; transition:opacity .22s ease, transform .22s ease; }
.tours-effortless-slide h3 { margin:0 0 28px; color:#fff; font-size:49px; line-height:1.18; font-weight:950; letter-spacing:0; }
.tours-effortless-slide p { margin:0; color:rgba(255,255,255,.92); font-size:29px; line-height:1.32; font-weight:500; letter-spacing:0; }
.tours-effortless-controls { position:absolute; left:54px; bottom:62px; display:flex; align-items:center; gap:26px; }
.tours-effortless-controls button { width:60px; height:60px; display:inline-flex; align-items:center; justify-content:center; border:0; border-radius:50%; color:#fff; background:rgba(255,255,255,.13); font-size:44px; line-height:1; cursor:pointer; }
.tours-effortless-controls span { min-width:64px; color:#fff; font-size:27px; line-height:1; font-weight:950; text-align:center; }
.tours-effortless-controls button:focus-visible, .tours-effortless-mini-card a:focus-visible { outline:3px solid rgba(255,255,255,.9); outline-offset:4px; }
.tours-effortless-visual { position:relative; min-height:565px; overflow:hidden; background:#d9edfb; }
.tours-effortless-visual > img { width:100%; height:100%; display:block; object-fit:cover; object-position:center; }
.tours-effortless-mini-card { position:absolute; top:56px; right:52px; width:min(438px,52%); min-height:150px; display:grid; grid-template-columns:120px minmax(0,1fr) 58px; gap:18px; align-items:center; padding:20px 20px; border-radius:14px; background:rgba(255,255,255,.95); box-shadow:0 18px 50px rgba(11,24,42,.18); backdrop-filter:blur(10px); }
.tours-effortless-mini-card > img { width:120px; height:92px; border-radius:10px; object-fit:cover; }
.tours-effortless-mini-card h3 { margin:0 0 8px; color:#071a38; font-size:22px; line-height:1.15; font-weight:950; letter-spacing:0; }
.tours-effortless-mini-card p { margin:0 0 7px; display:flex; align-items:center; gap:8px; color:#263650; font-size:16px; line-height:1.12; font-weight:750; }
.tours-effortless-rating span:first-child { color:#ff9b00; font-size:25px; line-height:1; }
.tours-effortless-rating span:last-child { color:#526079; font-weight:700; }
.tours-effortless-mini-card a { width:58px; height:58px; display:inline-flex; align-items:center; justify-content:center; border-radius:50%; color:#003734; background:#d9f2e5; font-size:31px; font-weight:900; text-decoration:none; }
.tours-final-footer { width:min(100%,1792px); margin:0 auto; padding:82px 42px 86px; color:#101d3a; background:#fff; }
.tours-final-confidence { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:0; padding:0 0 40px; border-bottom:1px solid #d9dee8; }
.tours-final-confidence article { min-height:118px; display:grid; grid-template-columns:78px minmax(0,1fr); align-items:start; gap:22px; padding:0 26px; border-left:1px solid #d9dee8; }
.tours-final-confidence article:first-child { border-left:0; padding-left:0; }
.tours-final-confidence h3 { margin:7px 0 9px; color:#071a38; font-size:20px; line-height:1.18; font-weight:950; letter-spacing:0; }
.tours-final-confidence p { margin:0; color:#263650; font-size:16px; line-height:1.44; font-weight:500; letter-spacing:0; }
.tours-final-icon { width:72px; height:72px; display:inline-flex; align-items:center; justify-content:center; border-radius:50%; }
.tours-final-icon svg { width:38px; height:38px; fill:none; stroke:currentColor; stroke-width:2.25; stroke-linecap:round; stroke-linejoin:round; }
.tours-final-icon-green { color:#1f7c38; background:#e9f4eb; }
.tours-final-icon-cream { color:#0e7b67; background:#fff3e7; }
.tours-final-icon-blue { color:#075263; background:#e7f8ff; }
.tours-final-icon-gold { color:#1f7c38; background:#fff0cf; }
.tours-footer-main { display:grid; grid-template-columns:minmax(235px,1.14fr) minmax(132px,.62fr) minmax(142px,.64fr) minmax(162px,.72fr) minmax(178px,.7fr); gap:58px; padding:58px 32px 54px; border-bottom:1px solid #d9dee8; }
.tours-footer-brand { align-self:start; }
.tours-footer-brand img { width:300px; max-width:100%; display:block; margin:0; }
.tours-footer-nav, .tours-footer-social { display:grid; align-content:start; gap:0; }
.tours-footer-nav h3, .tours-footer-social h3, .tours-footer-app h3 { margin:0 0 18px; color:#071a38; font-size:22px; line-height:1.18; font-weight:950; letter-spacing:0; }
.tours-footer-nav a, .tours-footer-nav span, .tours-footer-social span { min-height:30px; display:flex; align-items:center; gap:14px; margin:0 0 10px; color:#263650; font-size:18px; line-height:1.25; font-weight:500; text-decoration:none; }
.tours-footer-nav span, .tours-footer-social span[aria-disabled="true"], .tours-footer-legal span[aria-disabled="true"] { cursor:default; }
.tours-footer-nav a:hover, .tours-footer-nav a:focus-visible { color:#071a38; text-decoration:underline; text-underline-offset:4px; }
.tours-footer-nav a:focus-visible { outline:3px solid rgba(13,113,82,.26); outline-offset:4px; border-radius:4px; }
.tours-footer-social svg { width:24px; height:24px; flex:0 0 auto; color:#142442; fill:none; stroke:currentColor; stroke-width:2; stroke-linecap:round; stroke-linejoin:round; }
.tours-footer-social span:nth-of-type(2) svg, .tours-footer-social span:nth-of-type(4) svg { fill:#142442; stroke:#142442; }
.tours-footer-legal { display:grid; grid-template-columns:minmax(260px,1fr) minmax(480px,1.35fr) minmax(310px,.58fr); align-items:center; gap:34px; padding:28px 32px 0; }
.tours-footer-legal p { margin:0; color:#263650; font-size:16px; line-height:1.4; font-weight:500; }
.tours-footer-legal nav { display:flex; align-items:center; justify-content:flex-start; gap:28px; color:#263650; font-size:16px; line-height:1.4; font-weight:500; }
.tours-footer-legal nav span[aria-hidden="true"] { width:1px; height:22px; display:inline-block; background:#cbd3df; }
.tours-footer-app { min-height:72px; display:grid; grid-template-columns:72px minmax(0,1fr); align-items:center; gap:20px; padding-left:54px; border-left:1px solid #d9dee8; }
.tours-footer-app h3 { margin:0 0 4px; font-size:20px; }
.tours-footer-app p { margin:0; color:#08712d; font-size:16px; line-height:1.2; font-weight:700; }
.experiences-catalogue-shell { padding:58px 5vw 72px; }
.sr-only { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
.experience-search-panel { display:grid; grid-template-columns:1.35fr 1fr 1fr 1fr auto; gap:12px; align-items:end; margin:0 0 14px; border:1px solid var(--line); border-radius:8px; padding:14px; background:#fff; box-shadow:0 14px 40px rgba(242,106,33,.08); }
.experience-search-panel label { display:grid; gap:6px; color:var(--navy); font-size:12px; font-weight:950; }
.experience-search-panel input, .experience-search-panel select { width:100%; min-height:42px; border:1px solid var(--line); border-radius:8px; padding:0 12px; background:#fff; font:inherit; font-weight:800; }
.experience-category-row { display:flex; flex-wrap:wrap; gap:8px; margin:0 0 22px; }
.experience-category-row button { min-height:36px; border:1px solid #ffd6bf; color:#b24807; background:#fff8f3; font-size:12px; }
.experiences-layout { display:grid; grid-template-columns:minmax(0,1fr) 330px; gap:22px; align-items:start; }
.experience-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; }
.experience-card { overflow:hidden; border:1px solid var(--line); border-radius:8px; background:#fff; box-shadow:0 14px 35px rgba(7,26,56,.06); transition:transform .16s ease, box-shadow .16s ease; }
.experience-image-wrap { position:relative; min-height:210px; background:#eef3f7; }
.experience-image-wrap img { width:100%; aspect-ratio:16/10; height:auto; min-height:220px; display:block; object-fit:cover; }
.experience-image-wrap span { position:absolute; left:12px; top:12px; border-radius:999px; padding:6px 10px; color:#fff; background:var(--orange); font-size:12px; font-weight:950; }
.experience-card-body { display:grid; gap:12px; padding:16px; }
.experience-card-body h3 { margin:0 0 4px; color:var(--navy); font-size:20px; }
.experience-support-card { position:sticky; top:92px; display:grid; gap:14px; border-radius:8px; padding:20px; color:#fff; background:linear-gradient(145deg,#071a38,#bd4c0a); box-shadow:0 18px 46px rgba(7,26,56,.18); }
.experience-support-card h3 { margin:0; font-size:23px; line-height:1.25; }
.experience-support-card p { margin:0; color:rgba(255,255,255,.84); }
.experience-support-card .eyebrow { color:#fff; }
.tours-journey-section { padding:0; background:#fff; color:#071a38; }
.tours-journey-shell { width:min(100%,1560px); margin:0 auto; padding:38px 5vw 78px; }
html[data-public-review="true"].tours-results-view,
html[data-public-review="true"].tours-detail-view,
html[data-public-review="true"].tours-checkout-view { overflow-x:hidden; }
html[data-public-review="true"].tours-results-view body,
html[data-public-review="true"].tours-detail-view body,
html[data-public-review="true"].tours-checkout-view body { overflow-x:hidden; }
html[data-public-review="true"].tours-results-view .tours-journey-section,
html[data-public-review="true"].tours-detail-view #experience-detail,
html[data-public-review="true"].tours-checkout-view #tours-checkout-preview { max-width:100vw; overflow-x:hidden; }
html[data-public-review="true"].tours-detail-view #experience-detail .tours-detail-shell { width:100vw; max-width:100vw; box-sizing:border-box; }
html[data-public-review="true"].tours-results-view *,
html[data-public-review="true"].tours-detail-view *,
html[data-public-review="true"].tours-checkout-view * { box-sizing:border-box; }
.tours-breadcrumbs { display:flex; align-items:center; gap:9px; margin:0 0 24px; color:#526079; font-size:14px; font-weight:700; }
.tours-breadcrumbs a { color:#263650; text-decoration:none; }
.tours-breadcrumbs a:hover, .tours-breadcrumbs a:focus-visible { color:#071a38; text-decoration:underline; text-underline-offset:4px; }
.tours-results-head { display:flex; align-items:end; justify-content:space-between; gap:24px; margin-bottom:24px; }
.tours-results-head h2 { margin:0 0 8px; color:#071a38; font-size:42px; line-height:1.08; font-weight:950; letter-spacing:0; }
.tours-results-head p { max-width:780px; margin:0; }
.tours-data-chip { flex:0 0 auto; min-height:34px; display:inline-flex; align-items:center; border:1px solid #cfe7dc; border-radius:999px; padding:0 13px; color:#0b5d45; background:#eefaf5; font-size:12px; font-weight:950; }
.tours-results-search { position:sticky; top:0; z-index:8; display:grid; grid-template-columns:minmax(240px,1.4fr) minmax(160px,.55fr) minmax(150px,.5fr) 132px; gap:0; align-items:end; margin:0 0 18px; border:1px solid #d9dee8; border-radius:10px; background:#fff; box-shadow:0 18px 42px rgba(7,26,56,.08); overflow:hidden; }
.tours-results-search label { min-height:72px; display:grid; align-content:center; gap:4px; padding:11px 18px; border-right:1px solid #d9dee8; color:#071a38; font-size:13px; font-weight:950; }
.tours-results-search label span { color:#071a38; }
.tours-results-search input, .tours-results-search select { width:100%; min-height:30px; border:0; padding:0; color:#101b35; background:#fff; font:inherit; font-size:17px; font-weight:650; outline:0; }
.tours-results-search button { height:72px; border:0; border-radius:0; color:#fff; background:#0d6b55; font-size:16px; font-weight:950; cursor:pointer; }
.tours-results-search input:focus-visible, .tours-results-search select:focus-visible, .tours-results-search button:focus-visible, .tours-filter-chips button:focus-visible, .tours-sort-control select:focus-visible, .tours-result-card a:focus-visible { outline:3px solid rgba(13,107,85,.28); outline-offset:3px; }
.tours-results-toolbar { display:flex; align-items:center; justify-content:space-between; gap:18px; margin:0 0 20px; }
.tours-filter-chips { display:flex; align-items:center; gap:10px; overflow-x:auto; padding:2px 2px 8px; scrollbar-width:thin; }
.tours-filter-chips button { min-height:42px; flex:0 0 auto; border:1px solid #d9dee8; border-radius:999px; padding:0 18px; color:#263650; background:#fff; font:inherit; font-weight:850; cursor:pointer; }
.tours-filter-chips button.active { border-color:#0d6b55; color:#fff; background:#0d6b55; }
.tours-sort-control { flex:0 0 220px; display:flex; align-items:center; justify-content:flex-end; gap:10px; color:#526079; font-size:14px; font-weight:800; }
.tours-sort-control select { min-height:40px; border:1px solid #d9dee8; border-radius:8px; padding:0 10px; color:#071a38; background:#fff; font:inherit; font-weight:850; }
.tours-results-meta { display:flex; align-items:center; justify-content:space-between; gap:18px; margin:0 0 18px; }
.tours-results-meta h3 { margin:0; color:#071a38; font-size:19px; line-height:1.2; font-weight:900; }
.tours-results-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:24px; }
.tours-results-notice { grid-column:1/-1; display:flex; align-items:center; justify-content:space-between; gap:14px; border:1px solid #cfe7dc; border-radius:8px; padding:14px 16px; color:#0d513f; background:#eefaf5; }
.tours-results-notice b { color:#071a38; }
.tours-results-notice span { color:#263650; line-height:1.4; }
.tours-result-card { position:relative; min-width:0; overflow:hidden; border:1px solid #d9dee8; border-radius:8px; background:#fff; box-shadow:0 12px 30px rgba(7,26,56,.06); transition:transform .16s ease, box-shadow .16s ease; }
.tours-result-card:hover { transform:translateY(-2px); box-shadow:0 18px 36px rgba(7,26,56,.1); }
.tours-result-card a { display:grid; min-height:100%; color:inherit; text-decoration:none; }
.tours-result-image { position:relative; overflow:hidden; background:#eef3f7; }
.tours-result-image img { width:100%; height:205px; display:block; object-fit:cover; }
.tours-result-badge { position:absolute; left:12px; top:12px; border-radius:999px; padding:6px 10px; color:#0d513f; background:rgba(238,250,245,.96); font-size:12px; font-weight:950; box-shadow:0 8px 18px rgba(7,26,56,.12); }
.tours-save-button { position:absolute; top:12px; right:12px; width:42px; height:42px; display:inline-flex; align-items:center; justify-content:center; border:0; border-radius:50%; color:#071a38; background:rgba(255,255,255,.94); font-size:24px; font-weight:900; box-shadow:0 8px 20px rgba(7,26,56,.12); cursor:pointer; }
.tours-save-button.saved { color:#0d6b55; }
.tours-result-body { display:grid; gap:8px; padding:15px 16px 17px; }
.tours-result-rating { margin:0; color:#0d9b72; font-size:14px; font-weight:950; }
.tours-result-rating span:last-child { color:#53617a; font-weight:750; }
.tours-result-body h3 { min-height:56px; margin:0; color:#071a38; font-size:18px; line-height:1.18; font-weight:950; letter-spacing:0; }
.tours-result-body p { margin:0; color:#263650; font-size:14px; line-height:1.35; }
.tours-result-footer { display:flex; align-items:end; justify-content:space-between; gap:14px; margin-top:6px; }
.tours-result-footer span { color:#53617a; font-size:12px; font-weight:800; }
.tours-result-footer b { color:#071a38; font-size:18px; line-height:1.1; text-align:right; }
.tours-results-pagination { display:flex; align-items:center; justify-content:center; gap:12px; margin:34px 0 48px; }
.tours-results-pagination button { min-width:42px; min-height:42px; border:1px solid #d9dee8; border-radius:999px; color:#0d6b55; background:#fff; font:inherit; font-weight:900; cursor:pointer; }
.tours-results-pagination button.active { color:#fff; background:#0d6b55; border-color:#0d6b55; }
.tours-results-pagination button:disabled { opacity:.45; cursor:not-allowed; }
.tours-result-skeleton { min-height:365px; display:grid; gap:14px; padding:0 0 16px; box-shadow:none; }
.tours-result-skeleton span, .tours-result-skeleton div { display:block; margin-inline:16px; border-radius:8px; background:linear-gradient(90deg,#eef3f7,#f8fafc,#eef3f7); background-size:220% 100%; animation:toursSkeleton 1.25s ease-in-out infinite; }
.tours-result-skeleton span { height:205px; margin:0; border-radius:0; }
.tours-result-skeleton div { height:18px; }
.tours-result-skeleton div:nth-child(2) { width:70%; }
.tours-result-skeleton div:nth-child(3) { width:90%; height:42px; }
.tours-result-skeleton div:nth-child(4) { width:45%; }
@keyframes toursSkeleton { 0%{background-position:100% 0} 100%{background-position:-100% 0} }
.tours-results-module { margin-top:42px; padding-top:38px; border-top:1px solid #d9dee8; }
.tours-module-head { display:flex; align-items:center; justify-content:space-between; gap:18px; margin-bottom:20px; }
.tours-results-module h3 { margin:0; color:#071a38; font-size:30px; line-height:1.15; font-weight:950; letter-spacing:0; }
.tours-module-head a { color:#071a38; font-weight:900; text-decoration:none; }
.tours-module-head a:hover, .tours-module-head a:focus-visible { text-decoration:underline; text-underline-offset:4px; }
.tours-module-actions { display:flex; align-items:center; gap:8px; }
.tours-module-actions button { width:42px; height:42px; border:1px solid #d9dee8; border-radius:50%; color:#071a38; background:#fff; font-size:24px; font-weight:900; cursor:pointer; box-shadow:0 8px 20px rgba(7,26,56,.08); }
.tours-mustdo-grid, .tours-review-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:24px; }
.tours-mustdo-card { position:relative; min-height:360px; overflow:hidden; border-radius:8px; background:#071a38; color:#fff; box-shadow:0 16px 36px rgba(7,26,56,.12); }
.tours-mustdo-card img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; opacity:.78; filter:saturate(.96); }
.tours-mustdo-card::after { content:""; position:absolute; inset:0; background:linear-gradient(180deg,rgba(7,26,56,.05),rgba(7,26,56,.82)); }
.tours-mustdo-card div { position:relative; z-index:1; min-height:100%; display:grid; align-content:end; gap:9px; padding:22px; }
.tours-score { width:max-content; border-radius:999px; padding:4px 10px; color:#fff; background:rgba(13,107,85,.78); font-weight:950; }
.tours-mustdo-card h4, .tours-review-card h4, .tours-recent-card h4 { margin:0; font-size:22px; line-height:1.14; font-weight:950; letter-spacing:0; }
.tours-mustdo-card p { margin:0; color:rgba(255,255,255,.86); }
.tours-mustdo-card button, .tours-review-card button { width:max-content; min-height:42px; border:0; border-radius:7px; padding:0 18px; color:#fff; background:#0d6b55; font:inherit; font-weight:950; cursor:pointer; }
.tours-mustdo-card b { position:absolute; right:22px; bottom:28px; color:#fff; font-size:18px; }
.tours-review-card { min-height:300px; display:grid; align-content:start; gap:12px; border:1px solid #d9dee8; border-radius:8px; padding:22px; background:#fff; box-shadow:0 10px 26px rgba(7,26,56,.05); }
.tours-review-card p { margin:0; color:#263650; line-height:1.45; }
.tours-review-card span { color:#526079; font-size:13px; font-weight:800; }
.tours-review-card button { align-self:end; width:100%; margin-top:8px; }
.tours-recent-grid { display:grid; grid-template-columns:repeat(2,minmax(0,360px)); gap:22px; }
.tours-recent-card { overflow:hidden; border:1px solid #d9dee8; border-radius:8px; background:#fff; box-shadow:0 12px 30px rgba(7,26,56,.06); cursor:pointer; transition:transform .16s ease, box-shadow .16s ease; }
.tours-recent-card:hover { transform:translateY(-2px); box-shadow:0 18px 36px rgba(7,26,56,.1); }
.tours-recent-card img { width:100%; height:188px; object-fit:cover; display:block; }
.tours-recent-card div { display:grid; gap:8px; padding:15px 16px 18px; }
.tours-recent-card b { color:#071a38; font-size:17px; }
.tours-related-tabs { display:flex; flex-wrap:wrap; gap:12px; margin-top:18px; }
.tours-related-tabs button { min-height:42px; border:1px solid #d9dee8; border-radius:999px; padding:0 17px; color:#263650; background:#fff; font:inherit; font-weight:850; cursor:pointer; }
.tours-related-tabs button:hover, .tours-related-tabs button:focus-visible { border-color:#0d6b55; color:#0d6b55; }
.tours-detail-shell { width:min(100%,1560px); margin:0 auto; padding:36px 5vw 82px; color:#071a38; overflow-x:hidden; }
.tours-detail-alert { margin:0 0 22px; border-left:5px solid #d66c2f; border-radius:6px; padding:14px 18px; color:#071a38; background:#fff1ea; font-weight:850; overflow-wrap:anywhere; }
.tours-detail-head { display:flex; align-items:end; justify-content:space-between; gap:22px; margin:0 0 22px; }
.tours-detail-head h2 { max-width:1050px; margin:0 0 10px; color:#071a38; font-size:40px; line-height:1.08; font-weight:950; letter-spacing:0; overflow-wrap:anywhere; }
.tours-detail-layout { display:grid; grid-template-columns:minmax(0,1fr) 390px; gap:28px; align-items:start; }
.tours-detail-main { min-width:0; }
.tours-gallery { display:grid; grid-template-columns:142px minmax(0,1fr); gap:20px; max-width:100%; min-width:0; }
.tours-gallery-rail { display:grid; gap:12px; }
.tours-gallery-rail button { height:104px; overflow:hidden; border:2px solid transparent; border-radius:8px; padding:0; background:#eef3f7; cursor:pointer; }
.tours-gallery-rail button.active, .tours-gallery-rail button:hover, .tours-gallery-rail button:focus-visible { border-color:#0d6b55; outline:0; }
.tours-gallery-rail img { width:100%; height:100%; display:block; object-fit:cover; }
.tours-gallery-hero { position:relative; display:block; width:100%; min-height:520px; aspect-ratio:16/9; overflow:hidden; border:0; border-radius:8px; padding:0; background:#eef3f7; cursor:pointer; }
.tours-gallery-hero img { position:absolute; inset:0; width:100%; height:100%; display:block; object-fit:cover; }
.tours-gallery-hero span { position:absolute; left:18px; bottom:18px; border-radius:999px; padding:8px 13px; color:#fff; background:rgba(7,26,56,.72); font-size:13px; font-weight:900; }
.tours-gallery-hero:focus-visible { outline:3px solid rgba(13,107,85,.35); outline-offset:3px; }
.tours-detail-facts { display:flex; flex-wrap:wrap; gap:18px; margin:22px 0 0; padding:18px 0; border-bottom:1px solid #d9dee8; color:#0d6b55; font-weight:900; }
.tours-detail-facts span { display:inline-flex; align-items:center; min-height:28px; }
.tours-detail-tabs { position:sticky; top:0; z-index:7; display:flex; gap:0; margin:24px 0; border-bottom:1px solid #d9dee8; background:#fff; overflow-x:auto; }
.tours-detail-tabs button { flex:1 0 auto; min-height:54px; display:inline-flex; align-items:center; justify-content:center; border:0; border-bottom:4px solid transparent; padding:0 18px; color:#071a38; background:#fff; font:inherit; font-weight:900; cursor:pointer; }
.tours-detail-tabs button:hover, .tours-detail-tabs button:focus-visible { border-bottom-color:#071a38; }
.tours-detail-copy { padding:28px 0; border-bottom:1px solid #d9dee8; }
.tours-detail-copy h3 { margin:0 0 16px; color:#071a38; font-size:30px; line-height:1.15; font-weight:950; letter-spacing:0; }
.tours-detail-copy p, .tours-detail-copy li { color:#263650; font-size:17px; line-height:1.55; }
.tours-detail-copy ul { margin:16px 0 0; padding-left:22px; }
.tours-inclusion-grid { display:grid; grid-template-columns:1fr 1fr; gap:24px; }
.tours-pickup-card { display:grid; gap:12px; border:1px solid #d9dee8; border-radius:8px; padding:20px; background:#fff; }
.tours-pickup-card span { color:#526079; }
.tours-pickup-card input { min-height:48px; border:1px solid #d9dee8; border-radius:7px; padding:0 14px; font:inherit; }
.tours-itinerary { display:grid; gap:18px; margin:0; padding-left:28px; }
.tours-itinerary li { padding-left:8px; }
.tours-itinerary span { display:block; margin-top:5px; color:#526079; }
.tours-policy-grid { display:grid; grid-template-columns:1fr 1fr; gap:16px; }
.tours-policy-grid article { display:grid; gap:8px; border:1px solid #d9dee8; border-radius:8px; padding:18px; background:#fff; }
.tours-policy-grid b { color:#071a38; }
.tours-policy-grid span { color:#526079; line-height:1.45; }
.tours-photo-grid { display:grid; grid-template-columns:2fr 1fr 1fr; grid-auto-rows:150px; gap:10px; }
.tours-photo-grid button { min-width:0; overflow:hidden; border:0; border-radius:8px; padding:0; background:#eef3f7; cursor:pointer; }
.tours-photo-grid button:first-child { grid-row:span 2; }
.tours-photo-grid img { width:100%; height:100%; display:block; object-fit:cover; }
.tours-photo-grid button:hover, .tours-photo-grid button:focus-visible { outline:3px solid rgba(13,107,85,.28); outline-offset:2px; }
.tours-review-list { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:14px; margin-top:18px; }
.tours-review-list article { display:grid; gap:8px; border:1px solid #d9dee8; border-radius:8px; padding:16px; background:#fff; }
.tours-review-list b { color:#071a38; }
.tours-review-list span { color:#5fc69b; letter-spacing:1px; }
.tours-review-list p { margin:0; font-size:15px; }
.tours-similar-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:14px; }
.tours-similar-card { display:grid; gap:8px; min-width:0; border:1px solid #d9dee8; border-radius:9px; padding:0 0 14px; overflow:hidden; color:#071a38; background:#fff; text-align:left; cursor:pointer; box-shadow:0 12px 28px rgba(7,26,56,.05); }
.tours-similar-card:hover { transform:translateY(-2px); box-shadow:0 18px 36px rgba(7,26,56,.1); }
.tours-similar-card:focus-visible { outline:3px solid rgba(13,107,85,.28); outline-offset:3px; }
.tours-similar-card img { width:100%; height:170px; object-fit:cover; display:block; }
.tours-similar-card span, .tours-similar-card b, .tours-similar-card small, .tours-similar-card strong { margin-inline:14px; }
.tours-similar-card span { color:#0d6b55; font-weight:900; }
.tours-similar-card b { font-size:16px; line-height:1.25; }
.tours-similar-card small { color:#526079; line-height:1.35; }
.tours-similar-card strong { margin-top:6px; font-size:17px; }
.tours-rating-summary { display:flex; align-items:center; gap:18px; border-radius:8px; padding:20px; background:#f5fbf8; }
.tours-rating-summary b { color:#0d6b55; font-size:46px; line-height:1; }
.tours-availability-card { position:sticky; top:18px; display:grid; gap:14px; border:1px solid #d9dee8; border-radius:10px; padding:22px; background:#fff; box-shadow:0 18px 45px rgba(7,26,56,.08); }
.tours-availability-card h3 { margin:0; color:#071a38; font-size:29px; line-height:1.12; font-weight:950; letter-spacing:0; }
.tours-availability-card label { display:grid; gap:7px; color:#071a38; font-size:13px; font-weight:950; }
.tours-availability-card input, .tours-availability-card select { min-height:48px; border:1px solid #d9dee8; border-radius:7px; padding:0 12px; color:#071a38; background:#fff; font:inherit; font-weight:800; }
.tours-availability-card button:not(.outline-button) { min-height:52px; border:0; border-radius:7px; color:#fff; background:#0d6b55; font:inherit; font-weight:950; cursor:pointer; }
.tours-price-preview { display:flex; align-items:center; justify-content:space-between; gap:12px; border-top:1px solid #d9dee8; border-bottom:1px solid #d9dee8; padding:13px 0; color:#526079; font-weight:850; }
.tours-price-preview b { color:#071a38; font-size:24px; line-height:1; }
.tours-pay-later-option { display:flex !important; grid-template-columns:none !important; align-items:center; gap:10px !important; border:1px solid #d9dee8; border-radius:8px; padding:12px 14px; color:#071a38 !important; background:#f9fbff; font-size:14px !important; }
.tours-pay-later-option input { width:18px; min-height:18px; flex:0 0 auto; }
.tours-availability-note { display:grid; gap:6px; border-radius:8px; padding:14px; color:#0d513f; background:#eaf8f3; }
.tours-availability-note span { color:#263650; line-height:1.4; }
.tours-availability-selection { display:grid; gap:5px; border:1px solid #cfe9df; border-radius:8px; padding:13px; color:#0d513f; background:#f5fbf8; }
.tours-availability-selection[hidden] { display:none; }
.tours-availability-selection span { color:#263650; line-height:1.4; }
.tours-mobile-sticky-cta { display:none; }
.tours-gallery-modal { position:fixed; inset:0; z-index:90; display:grid; grid-template-columns:64px minmax(0,1fr) 64px; align-items:center; gap:12px; padding:5vw; background:rgba(7,26,56,.9); }
.tours-gallery-modal[hidden] { display:none; }
.tours-gallery-modal img { width:100%; max-height:84vh; object-fit:contain; border-radius:8px; background:#071a38; }
.tours-gallery-modal button { border:0; color:#071a38; background:#fff; box-shadow:0 12px 28px rgba(0,0,0,.2); cursor:pointer; }
.tours-gallery-modal-close { position:absolute; top:24px; right:24px; width:44px; height:44px; border-radius:50%; font-size:30px; line-height:1; }
.tours-gallery-modal-nav { width:52px; height:52px; border-radius:50%; font-size:38px; line-height:1; }
.tours-gallery-modal button:focus-visible { outline:3px solid rgba(95,198,155,.7); outline-offset:3px; }
.tours-checkout-section { background:#f6f7f9; }
.tours-checkout-head { display:flex; align-items:end; justify-content:space-between; gap:22px; margin:0 0 22px; }
.tours-checkout-head h2 { margin:0 0 8px; color:#071a38; font-size:38px; line-height:1.12; font-weight:950; letter-spacing:0; }
.tours-checkout-head p { max-width:780px; margin:0; color:#526079; line-height:1.5; }
.tours-checkout-layout { display:grid; grid-template-columns:minmax(0,1fr) 390px; gap:28px; align-items:start; }
.tours-checkout-flow { display:grid; gap:18px; }
.tours-checkout-progress { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:1px; border:1px solid #d9dee8; border-radius:10px; overflow:hidden; background:#d9dee8; }
.tours-checkout-progress span { min-height:46px; display:flex; align-items:center; justify-content:center; padding:0 12px; color:#526079; background:#fff; font-size:13px; font-weight:950; text-align:center; }
.tours-checkout-progress span.active { color:#071a38; background:#eaf8f3; }
.tours-checkout-step, .tours-checkout-summary { border:1px solid #d9dee8; border-radius:10px; padding:24px; background:#fff; }
.tours-checkout-step.locked { opacity:.58; pointer-events:none; }
.tours-checkout-step.complete { border-color:#cfe9df; background:#fbfefd; }
.tours-checkout-step-head { display:flex; align-items:center; justify-content:space-between; gap:14px; margin:0 0 12px; }
.tours-checkout-step h3 { display:flex; align-items:center; gap:12px; margin:0 0 12px; color:#071a38; font-size:24px; line-height:1.15; font-weight:950; letter-spacing:0; }
.tours-checkout-step-head h3 { margin:0; }
.tours-checkout-step h3 span { width:32px; height:32px; display:inline-flex; align-items:center; justify-content:center; border-radius:50%; color:#fff; background:#071a38; font-size:16px; }
.tours-checkout-step p { margin:0 0 16px; color:#526079; }
.tours-checkout-grid { display:grid; grid-template-columns:1fr 1fr; gap:14px; }
.tours-checkout-step label { display:grid; gap:7px; color:#071a38; font-weight:900; }
.tours-checkout-step input, .tours-checkout-step textarea { width:100%; min-height:48px; border:1px solid #d9dee8; border-radius:8px; padding:0 13px; color:#071a38; background:#fff; font:inherit; }
.tours-checkout-step input:focus, .tours-checkout-step textarea:focus { outline:3px solid rgba(13,107,85,.18); border-color:#0d6b55; }
.tours-checkout-step input[aria-invalid="true"], .tours-checkout-step textarea[aria-invalid="true"] { border-color:#b93b3b; box-shadow:0 0 0 3px rgba(185,59,59,.1); }
.tours-checkout-step input:disabled { color:#526079; background:#f2f5f8; cursor:not-allowed; }
.tours-checkout-step textarea { min-height:112px; padding-top:13px; resize:vertical; }
.tours-checkout-step small { color:#526079; font-weight:800; text-align:right; }
.tours-checkout-step fieldset { display:grid; gap:12px; margin:0 0 16px; border:0; padding:0; }
.tours-checkout-step legend { margin:0 0 8px; color:#071a38; font-weight:950; }
.tours-checkout-activity, .tours-radio-card, .tours-payment-guard { display:grid; gap:8px; border:1px solid #d9dee8; border-radius:8px; padding:16px; background:#f9fbff; }
.tours-checkout-activity { grid-template-columns:96px minmax(0,1fr); align-items:center; }
.tours-checkout-activity img { width:96px; height:72px; border-radius:7px; object-fit:cover; background:#e6eaf0; }
.tours-radio-card { grid-template-columns:auto 1fr; align-items:center; }
.tours-radio-card input[placeholder] { grid-column:1 / -1; margin-left:28px; width:calc(100% - 28px); }
.tours-payment-guard { border-color:#cfe9df; background:#eaf8f3; }
.tours-payment-guard b, .tours-checkout-activity b { color:#071a38; }
.tours-payment-guard span, .tours-checkout-activity span { color:#526079; line-height:1.45; }
.tours-payment-option { grid-template-columns:auto minmax(0,1fr) auto; align-items:center; border:1px solid #d9dee8; border-radius:8px; padding:14px; background:#fff; }
.tours-payment-option span { grid-column:2 / -1; color:#526079; font-weight:800; }
.tours-payment-option strong { color:#071a38; }
.tours-payment-shell { display:grid; gap:12px; border:1px solid #d9dee8; border-radius:8px; padding:16px; background:#fff; }
.tours-pay-later-option { display:flex!important; flex-direction:row; align-items:flex-start; gap:10px!important; margin-top:14px; color:#263650!important; font-weight:850!important; line-height:1.45; }
.tours-pay-later-option input { width:20px!important; min-height:20px!important; flex:0 0 20px; margin-top:2px; }
.tours-checkout-step button { min-height:54px; border:0; border-radius:7px; color:#fff; background:#0d6b55; font:inherit; font-weight:950; cursor:pointer; }
.tours-checkout-step button:focus-visible, .tours-promo-shell:focus-visible, .tours-checkout-edit:focus-visible { outline:3px solid rgba(13,107,85,.25); outline-offset:3px; }
.tours-checkout-edit { min-height:38px!important; border:1px solid #d9dee8!important; padding:0 14px; color:#071a38!important; background:#fff!important; }
.tours-checkout-complete-note { border:1px solid #cfe9df; border-radius:8px; padding:12px; color:#0d6b55; background:#eaf8f3; font-weight:900; }
.tours-checkout-errors { display:grid; gap:6px; margin:12px 0; }
.tours-checkout-errors:empty { display:none; }
.tours-checkout-errors span { border-left:4px solid #b93b3b; padding:8px 10px; color:#7f1d1d; background:#fff1f1; font-weight:850; }
.tours-book-preview-button { background:#103f34!important; }
.tours-checkout-summary { position:sticky; top:18px; display:grid; gap:14px; box-shadow:0 18px 45px rgba(7,26,56,.08); }
.tours-checkout-summary > b { border-radius:8px; padding:12px; color:#784040; background:#f4d9d9; text-align:center; }
.tours-checkout-summary h3 { margin:0; color:#071a38; font-size:22px; line-height:1.2; font-weight:950; letter-spacing:0; }
.tours-checkout-summary p { margin:0; color:#526079; line-height:1.45; }
.tours-checkout-summary p b, .tours-checkout-summary p span { display:block; }
.tours-checkout-summary p b { margin-bottom:4px; color:#071a38; }
.tours-checkout-summary div { display:flex; align-items:center; justify-content:space-between; gap:12px; border-top:1px solid #e6eaf0; border-bottom:1px solid #e6eaf0; padding:14px 0; color:#526079; font-weight:850; }
.tours-checkout-summary strong { color:#071a38; font-size:24px; }
.tours-promo-shell { min-height:46px; border:1px solid #d9dee8; border-radius:7px; color:#071a38; background:#fff; font:inherit; font-weight:950; cursor:pointer; text-align:left; padding:0 13px; }
.tours-results-support { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:1px; margin-top:40px; border:1px solid #d9dee8; border-radius:10px; overflow:hidden; background:#d9dee8; }
.tours-results-support article { display:grid; gap:5px; padding:20px; background:#f9fbff; }
.tours-results-support b { color:#071a38; font-size:17px; }
.tours-results-support span { color:#526079; line-height:1.4; }
@media (max-width:1100px){
.tours-results-search{grid-template-columns:1fr 1fr;position:static}
.tours-results-search label:nth-of-type(2){border-right:0}
.tours-results-search button{grid-column:1/-1;height:58px}
.tours-results-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
.tours-mustdo-grid,.tours-review-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
.tours-detail-layout{grid-template-columns:1fr}
.tours-availability-card{position:static}
.tours-similar-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
.tours-review-list{grid-template-columns:1fr}
.tours-checkout-layout{grid-template-columns:1fr}
.tours-checkout-summary{position:static}
.tours-results-support{grid-template-columns:1fr}
}
@media (max-width:760px){
html[data-public-review="true"] .topbar{max-width:100vw;overflow-x:clip}
html[data-public-review="true"] .topbar nav{max-width:100%;overflow-x:auto;overscroll-behavior-x:contain;scrollbar-width:thin;flex-wrap:nowrap}
html[data-public-review="true"] .topbar nav a{flex:0 0 auto;white-space:nowrap}
.tours-journey-shell{padding:30px 5vw 68px}
.tours-breadcrumbs{overflow-x:auto;padding-bottom:4px;font-size:13px;white-space:nowrap}
.tours-results-head{display:grid;gap:14px;margin-bottom:18px}
.tours-results-head h2{font-size:31px;line-height:1.12}
.tours-data-chip{width:max-content;max-width:100%}
.tours-results-search{grid-template-columns:1fr;border-radius:9px}
.tours-results-search label{min-height:64px;border-right:0;border-bottom:1px solid #d9dee8;padding:10px 14px}
.tours-results-search button{height:56px}
.tours-results-toolbar{display:grid;gap:10px}
.tours-filter-chips{margin-inline:-5vw;padding-inline:5vw}
.tours-sort-control{justify-content:space-between;flex-basis:auto;min-width:0}
.tours-sort-control select{min-width:0;max-width:100%}
.tours-results-meta{display:grid}
.tours-results-grid{grid-template-columns:1fr;gap:16px}
.tours-results-notice{display:grid}
.tours-result-image img{height:215px}
.tours-result-body h3{min-height:0}
.tours-results-pagination{justify-content:flex-start;overflow-x:auto;margin:26px 0 34px;padding-bottom:4px}
.tours-results-module{margin-top:32px;padding-top:28px}
.tours-module-head{align-items:flex-start}
.tours-results-module h3{font-size:25px}
.tours-mustdo-grid,.tours-review-grid,.tours-recent-grid{grid-template-columns:1fr;gap:16px}
.tours-mustdo-card{min-height:320px}
.tours-module-actions{display:none}
.tours-related-tabs{flex-wrap:nowrap;overflow-x:auto;margin-inline:-5vw;padding:0 5vw 6px}
.tours-related-tabs button{flex:0 0 auto}
.tours-detail-shell{padding:30px 5vw 70px}
.tours-detail-head{display:grid;gap:14px}
.tours-detail-head h2{max-width:100%;font-size:29px;line-height:1.12}
.tours-result-rating{max-width:100%;overflow-wrap:anywhere}
.tours-gallery{grid-template-columns:minmax(0,1fr)}
.tours-gallery-rail{display:flex;order:2;max-width:100%;overflow-x:auto;padding-bottom:4px}
.tours-gallery-rail button{height:72px;flex:0 0 82px}
.tours-gallery-hero{min-height:280px}
.tours-gallery-hero span{left:12px;bottom:12px;max-width:calc(100% - 24px);white-space:normal;font-size:12px}
.tours-detail-facts{display:grid;gap:10px}
.tours-detail-tabs{margin-inline:-5vw;padding-inline:5vw}
.tours-detail-tabs button{min-height:48px}
.tours-detail-copy h3{font-size:25px}
.tours-inclusion-grid{grid-template-columns:1fr;gap:8px}
.tours-policy-grid,.tours-similar-grid{grid-template-columns:1fr}
.tours-photo-grid{grid-template-columns:1fr 1fr;grid-auto-rows:128px}
.tours-photo-grid button:first-child{grid-column:1/-1;grid-row:auto;height:230px}
.tours-availability-card{padding:18px}
.tours-availability-card h3{font-size:24px}
.tours-mobile-sticky-cta{position:fixed;left:0;right:0;bottom:0;z-index:20;display:flex;align-items:center;justify-content:space-between;gap:12px;border-top:1px solid #d9dee8;padding:10px 5vw calc(10px + env(safe-area-inset-bottom));background:#fff;box-shadow:0 -12px 28px rgba(7,26,56,.12)}
.tours-mobile-sticky-cta span{display:grid;gap:2px;color:#071a38}
.tours-mobile-sticky-cta b{font-size:18px;line-height:1}
.tours-mobile-sticky-cta small{color:#526079;font-size:11px;font-weight:850}
.tours-mobile-sticky-cta button{min-height:46px;border:0;border-radius:7px;padding:0 18px;color:#fff;background:#0d6b55;font:inherit;font-weight:950;cursor:pointer}
.tours-gallery-modal{grid-template-columns:44px minmax(0,1fr) 44px;padding:18vw 4vw}
.tours-gallery-modal-nav{width:42px;height:42px;font-size:30px}
.tours-gallery-modal-close{top:14px;right:14px}
.tours-checkout-head{display:grid}
.tours-checkout-head h2{font-size:30px}
.tours-checkout-grid{grid-template-columns:1fr}
.tours-checkout-step,.tours-checkout-summary{padding:18px}
.tours-radio-card input[placeholder]{margin-left:0;width:100%}
.tours-results-support{margin-top:28px}
}
.plan-trip-section { background:linear-gradient(180deg,#f7faff 0%,#fff 100%); }
.plan-trip-layout { display:grid; grid-template-columns:minmax(0,1fr) 340px; gap:22px; align-items:start; }
.plan-step-panel { display:grid; gap:16px; border:1px solid var(--line); border-radius:8px; background:#fff; padding:18px; box-shadow:0 14px 35px rgba(7,26,56,.05); }
.plan-step-panel h3 { margin:0; color:var(--navy); }
.plan-step-panel label { display:grid; gap:6px; color:var(--navy); font-size:13px; font-weight:900; }
.plan-step-panel input, .plan-step-panel textarea { width:100%; border:1px solid var(--line); border-radius:8px; padding:10px 12px; font:inherit; }
.choice-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:10px; }
.choice-card { min-height:132px; display:grid; align-content:start; gap:8px; border:1px solid var(--line); border-radius:8px; padding:14px; color:var(--navy); background:#fff; text-align:left; box-shadow:0 10px 24px rgba(7,26,56,.04); }
.choice-card.active { border-color:var(--blue); background:#f2f7ff; box-shadow:0 0 0 2px rgba(7,95,228,.12); }
.choice-card b, .choice-card span, .choice-card strong { display:block; }
.choice-card span { color:var(--muted); font-size:12px; line-height:1.45; }
.choice-card small { color:#526987; font-weight:800; line-height:1.4; }
.choice-card strong { color:var(--blue); font-size:13px; }
.origin-market-section { scroll-margin-top:84px; }
.origin-layout { display:grid; grid-template-columns:minmax(0,1fr) 360px; gap:22px; align-items:start; }
.origin-filter-bar { margin-bottom:18px; }
.origin-market-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:14px; margin-bottom:22px; }
.origin-market-card { min-height:178px; border:1px solid var(--line); border-radius:8px; padding:18px; background:#fff; text-align:left; display:grid; gap:10px; box-shadow:0 12px 28px rgba(7,26,56,.05); color:var(--navy); }
.origin-market-card.active { border-color:var(--blue); background:#f2f7ff; box-shadow:0 0 0 2px rgba(7,95,228,.12); }
.origin-market-card b, .origin-market-card span, .origin-market-card small, .origin-market-card strong { display:block; }
.origin-market-card span, .origin-market-card small { color:var(--muted); line-height:1.45; }
.origin-market-card strong { color:var(--blue); }
.origin-benefit-grid { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:12px; }
.origin-benefit-grid article { border:1px solid var(--line); border-radius:8px; padding:14px; background:#fff; display:grid; gap:6px; }
.origin-benefit-grid b { color:var(--navy); }
.origin-benefit-grid span { color:var(--muted); font-size:12px; line-height:1.4; }
.qatar-escapes-section { scroll-margin-top:84px; }
.qatar-hero-panel { border-radius:8px; min-height:220px; color:#fff; padding:28px; display:grid; grid-template-columns:minmax(0,1fr) 420px; gap:22px; align-items:end; background:linear-gradient(90deg,rgba(5,18,44,.9),rgba(5,18,44,.35)),url("./assets/hero-carousel/doha-luxury-african-travellers.jpg") center/cover; box-shadow:0 18px 45px rgba(7,26,56,.18); margin-bottom:18px; }
.qatar-hero-panel h3 { font-size:30px; margin:8px 0; }
.qatar-hero-panel p { max-width:720px; }
.qatar-route-strip { display:grid; grid-template-columns:1fr; gap:10px; }
.qatar-route-strip article { border:1px solid rgba(255,255,255,.32); border-radius:8px; background:rgba(255,255,255,.14); padding:12px; display:grid; gap:4px; }
.qatar-route-strip span { font-size:12px; opacity:.86; }
.qatar-filter-bar { margin:18px 0; }
.qatar-collection-row { position:relative; display:flex; gap:10px; overflow:auto; padding:0 22px 10px 0; margin-bottom:16px; scrollbar-width:thin; }
.qatar-collection-row::after { content:""; position:sticky; right:0; flex:0 0 28px; align-self:stretch; pointer-events:none; background:linear-gradient(90deg,rgba(255,255,255,0),#fff); }
.qatar-collection-row button { white-space:nowrap; min-height:36px; border:1px solid var(--line); background:#fff; color:var(--navy); }
.qatar-layout { display:grid; grid-template-columns:minmax(0,1fr) 340px; gap:22px; align-items:start; }
.qatar-package-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; }
.qatar-package-card { border:1px solid var(--line); border-radius:8px; background:#fff; overflow:hidden; box-shadow:0 14px 34px rgba(7,26,56,.08); display:grid; transition:transform .16s ease, box-shadow .16s ease; }
.qatar-package-card img { width:100%; height:170px; object-fit:cover; background:#eef3f7; display:block; }
.qatar-package-card > div { padding:16px; display:grid; gap:10px; }
.qatar-meta-row, .qatar-action-row { display:flex; gap:10px; justify-content:space-between; align-items:center; flex-wrap:wrap; }
.qatar-meta-row span { color:var(--muted); font-size:12px; }
.qatar-meta-row b { color:var(--purple); }
.full-width { width:100%; justify-content:center; }
.add-on-grid .choice-card { min-height:150px; }
.concierge-choice-card.active, .add-on-choice-card.active { border-color:var(--orange); background:#fff7ef; box-shadow:0 0 0 2px rgba(245,112,25,.14); }
.concierge-addons-section { scroll-margin-top:84px; }
.concierge-layout { display:grid; grid-template-columns:minmax(0,1fr) 340px; gap:22px; align-items:start; }
.comparison-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:14px; }
.comparison-card { border:1px solid var(--line); border-radius:8px; background:#fff; padding:16px; display:grid; gap:10px; box-shadow:0 12px 28px rgba(7,26,56,.05); }
.comparison-card.active { border-color:var(--orange); background:#fff8f1; }
.comparison-card h4, .comparison-card p { margin:0; }
.comparison-card strong { color:var(--blue); font-size:18px; }
.comparison-card ul { margin:0; padding-left:18px; color:var(--muted); line-height:1.7; }
.process-list { display:grid; gap:10px; }
.process-list span { border:1px solid var(--line); border-radius:8px; padding:10px 12px; color:var(--navy); font-weight:900; background:#f8fbff; }
.mice-section { scroll-margin-top:84px; }
.mice-layout { display:grid; grid-template-columns:minmax(0,1fr) 380px; gap:22px; align-items:start; }
.mice-hero-panel { border:1px solid #c7d8fb; border-radius:8px; padding:22px; background:linear-gradient(135deg,#071a38,#133d7a); color:#fff; display:grid; gap:14px; margin-bottom:22px; }
.mice-hero-panel h3, .mice-hero-panel p { margin:0; }
.mice-hero-panel .process-list span { background:rgba(255,255,255,.12); border-color:rgba(255,255,255,.22); color:#fff; }
.mice-solution-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:14px; margin-bottom:22px; }
.mice-card { border:1px solid var(--line); border-radius:8px; background:#fff; padding:16px; box-shadow:0 12px 28px rgba(7,26,56,.05); }
.mice-card h3, .mice-card p { margin:0 0 8px; }
.mice-program-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; }
.mice-program-card { border:1px solid var(--line); border-radius:8px; overflow:hidden; background:#fff; box-shadow:0 14px 30px rgba(7,26,56,.07); }
.mice-program-card img { width:100%; height:150px; object-fit:cover; display:block; background:#eef3f7; }
.mice-program-card div { padding:14px; display:grid; gap:8px; }
.mice-program-card h3, .mice-program-card p { margin:0; }
.mice-program-card strong { color:var(--blue); }

html[data-route-styles-loading] main { visibility:hidden; }
html:not(.events-flow-view) .events-footer { display:none; }
