.inner-page { background:#f5f0ec; color:#0c244c; }
/* Header layout is governed by style.css so all pages (incl. destinations.html which
   loads only style.css) share an identical nav position, separators and states. */
.inner-hero { position:relative; min-height:580px; display:grid; place-items:center; text-align:center; color:#fff; background:center/cover no-repeat; overflow:hidden; }
.inner-hero::after { content:''; position:absolute; inset:0; z-index:1; background:linear-gradient(180deg,rgba(0,0,0,.3),rgba(0,0,0,.12) 50%,rgba(0,0,0,.65) 85%); }
.inner-hero__slider { position:absolute; inset:0; z-index:0; }
.inner-hero__slide { position:absolute; inset:0; background:center/cover no-repeat; opacity:0; transition:opacity 1.5s ease-in-out; }
.inner-hero__slide--active { opacity:1; }
.inner-hero__content { position:relative; z-index:2; padding:100px 24px 20px; }
.inner-hero__dots { position:absolute; bottom:20px; left:50%; transform:translateX(-50%); display:flex; gap:8px; z-index:2; }
.inner-hero__dot { width:8px; height:8px; border-radius:50%; border:1px solid rgba(255,255,255,.6); background:transparent; cursor:pointer; padding:0; transition:var(--transition); }
.inner-hero__dot--active { background:var(--white); border-color:var(--white); }

/* Data overlay inside banner */
.inner-hero__data { position:absolute; left:0; right:0; bottom:62px; z-index:2; display:grid; grid-template-columns:30% 30% 30%; justify-content:space-between; max-width:1100px; margin:0 auto; padding:18px 40px; }
.inner-hero__data-item { display:flex; flex-direction:column; align-items:center; text-align:center; gap:4px; padding:0 20px; }
.inner-hero__data-item + .inner-hero__data-item { border-left:1px solid rgba(255,255,255,.35); }
.inner-hero__data-label { font-size:1.35rem; font-weight:300; letter-spacing:.06em; font-family:var(--font-display); }
.inner-hero__data-value { font-size:.95rem; opacity:.9; line-height:1.45; }

.inner-hero h1 { font-size:clamp(2rem,4vw,3.5rem); font-weight:400; margin-bottom:0; letter-spacing:.03em; }
.inner-main { max-width:1680px; margin:auto; padding:70px 40px; }
.inner-intro { max-width:1450px; margin:0 auto 55px; font-size:1rem; line-height:1.9; }
.inner-intro--lead { font-size:1.25rem; line-height:2; text-align:justify; margin:0 0 55px; max-width:none; }
.destination-facts { display:grid; grid-template-columns:repeat(5,1fr); gap:18px; margin:0 0 55px; padding:24px 0; border-top:1px solid #9ba2aa; border-bottom:1px solid #9ba2aa; }
.destination-facts__item { min-width:0; display:flex; flex-direction:column; gap:8px; }
.destination-facts__item span { color:#8b8f95; font-size:.9rem; letter-spacing:.04em; }
.destination-facts__item strong { color:#0c244c; font-size:1.05rem; font-weight:400; line-height:1.5; word-break:break-word; }
.destination-facts__item--wide { grid-column:span 2; }
.destination-facts { display:none !important; }
.hotel-data-panel { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:0 34px; margin:0 0 55px; padding:24px 0; border-top:1px solid #9ba2aa; border-bottom:1px solid #9ba2aa; }
.hotel-data-panel__item { min-width:0; padding:14px 0; border-bottom:1px solid rgba(155,162,170,.45); }
.hotel-data-panel__label { display:block; margin-bottom:6px; color:#8b8f95; font-size:.9rem; }
.hotel-data-panel__value { display:block; color:#0c244c; font-size:1rem; line-height:1.6; word-break:break-word; white-space:pre-wrap; }
.hotel-data-panel__value--wide { grid-column:1 / -1; }
.inner-title { font-size:clamp(2rem,3.5vw,3.4rem); font-weight:400; border-bottom:1px solid #9ba2aa; padding-bottom:14px; margin:50px 0 28px; color:#0c244c; }
.inner-title small { color:#b88b69; font-size:.45em; vertical-align:top; }
.inner-title small img.title-star, .inner-title small svg.title-star { width:0.8rem; height:0.8rem; vertical-align:middle; margin-left:0.35em; display:inline-block; }
.photo-card__badge img.badge-star { width:0.95em; height:0.95em; vertical-align:middle; margin-right:0.3em; }
.inner-subtitle { font-size:1.5rem; font-weight:400; color:#0c244c; margin:-12px 0 50px; font-family:var(--font-display); }

/* Safari page: enlarge text & left-align the intro paragraph */
.safari-page { font-size:1.05em; }
.safari-page .inner-title { margin:60px 0 16px; }
.safari-page .inner-subtitle { margin:0 0 20px; }
.safari-page .inner-intro { font-size:1.3rem; line-height:1.9; text-align:left; margin:0 0 55px; max-width:none; }
/* Shrink the gap between the hero banner and the first SPOTLIGHT title on ITINERARY */
.safari-page .inner-main { padding-top:38px; }
.safari-page .inner-main > .inner-title:first-child { margin-top:22px; }
@media (min-width:1920px){
  .safari-page .inner-intro { white-space:nowrap; line-height:1.5; }
}
.country-grid { display:grid; grid-template-columns:repeat(5,1fr); gap:18px; }
.country-grid .photo-card { aspect-ratio:1; min-height:auto; }
.country-grid .photo-card img { min-height:auto; }
.country-grid--sa .photo-card span { font-size:1.15rem; }
.country-grid--poi .photo-card--extra { display:none; }
.country-grid--poi.is-expanded .photo-card--extra { display:block; }
.photo-card { position:relative; min-height:190px; overflow:hidden; color:#fff; }
.photo-card__media { position:relative; display:block; overflow:hidden; }
.photo-card img, .hotel-card img, .destinations__card img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; display:block; transition:transform .5s; cursor:pointer; }
.photo-card:hover img { transform:scale(1.04); }
.photo-card::after { content:''; position:absolute; inset:35% 0 0; background:linear-gradient(transparent,rgba(0,0,0,.8)); }
.photo-card span { position:absolute; z-index:1; left:16px; right:10px; bottom:14px; font-size:1rem; }
.feature-grid .photo-card > span:not(.photo-card__badge) { font-size:1.25rem; line-height:1.3; }
.feature-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:26px; }
.feature-grid .photo-card { min-height:420px; }
.feature-grid .photo-card img { min-height:420px; }
.feature-grid .destination-empty { grid-column:1 / -1; margin:0; padding:72px 20px; border:1px solid rgba(15,43,82,.18); color:rgba(15,43,82,.68); text-align:center; font-family:var(--font-title); font-size:1.2rem; }
.split-feature { display:grid; grid-template-columns:1.1fr 1fr; gap:40px; align-items:center; margin:0 0 55px; }
.split-feature.reverse .split-feature__image { order:2; }
.split-feature__image { position:relative; min-height:360px; overflow:hidden; }
.split-feature__tag { position:absolute; bottom:18px; left:18px; color:#fff; font-size:1.05rem; z-index:2; }
.split-feature__image img { width:100%; height:100%; max-height:470px; object-fit:cover; display:block; }
.split-feature__image::after { content:''; position:absolute; inset:0; background:linear-gradient(180deg,transparent 55%,rgba(0,0,0,.55) 100%); pointer-events:none; }
.split-feature__copy { display:flex; flex-direction:column; justify-content:center; padding-left:20px; }
.split-feature__copy p { line-height:1.9; margin-bottom:20px; }
.feature-list { list-style:none; padding:0; margin:0 0 25px; }
.feature-list li { position:relative; padding-left:18px; margin-bottom:12px; line-height:1.6; color:#0c244c; }
.feature-list li::before { content:'•'; position:absolute; left:0; top:0; color:#0c244c; }
.hotel-grid { display:grid; grid-template-columns:repeat(5,1fr); align-items:center; }
.hotel-card { position:relative; height:159px; box-sizing:border-box; padding:15%; display:flex; justify-content:center; align-items:center; }
.hotel-card:not(:nth-child(5n))::after { content:''; position:absolute; right:0; top:50%; transform:translateY(-50%); width:1px; height:45px; background:#ddd; }
.hotel-card img { max-width:100%; max-height:45px; height:auto; object-fit:contain; }
.hotel-card h3 { font-size:1.15rem; font-weight:400; margin-top:10px; }
.hotel-card p { color:#777; font-size:.85rem; }
.hotel-page .inner-main { padding-top:70px; }
.hotel-brand-wall { position:relative; left:50%; width:100vw; transform:translateX(-50%); display:grid; margin:-46px 0 0; border-top:1px solid rgba(12,36,76,.16); border-bottom:1px solid rgba(12,36,76,.16); background:rgba(255,255,255,.22); }
.hotel-brand-wall__row { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); min-height:clamp(76px,6vw,96px); }
.hotel-brand-wall__row + .hotel-brand-wall__row { border-top:1px solid rgba(12,36,76,.1); }
.hotel-brand-wall__item { display:flex; min-width:0; align-items:center; justify-content:center; padding:10px 24px; }
.hotel-brand-wall__item + .hotel-brand-wall__item { border-left:1px solid rgba(12,36,76,.1); }
.hotel-brand-wall__item img { display:block; max-width:100%; max-height:clamp(36px,2.8vw,46px); width:auto; height:auto; object-fit:contain; }
.hotel-brand-wall__link { display:flex; width:100%; height:100%; align-items:center; justify-content:center; border-radius:2px; transition:opacity .2s ease, transform .2s ease; }
.hotel-brand-wall__link:hover { opacity:.78; transform:scale(1.04); }
.hotel-brand-wall__link:focus-visible { outline:2px solid #b88b69; outline-offset:4px; }
.hotel-brand-wall + .inner-title { margin-top:10px; }
.map-box { min-height:350px; background:#0c2b59; display:grid; place-items:center; color:#fff; margin:30px 0 55px; }
.map-box span { font-size:2rem; }
.detail-tabs { position:sticky; top:90px; z-index:40; display:flex; justify-content:center; align-items:stretch; gap:0; padding:16px 0; margin:0 0 30px; background:var(--white,#fff); border-bottom:1px solid #ececec; }
.detail-tabs .detail-tab { flex:1 1 25%; width:25%; text-align:center; color:#0c244c; font-size:1.5rem; font-weight:600; letter-spacing:0.02em; padding:0 12px; position:relative; cursor:pointer; transition:color var(--transition); border:none; background:none; text-decoration:none; display:flex; align-items:center; justify-content:center; }
.detail-tabs .detail-tab:not(:last-child)::after { content:'|'; position:absolute; right:0; top:50%; transform:translateY(-50%); color:#ccc; font-weight:300; pointer-events:none; }
/* Label pill — keeps the hover/active background hugging the text instead of stretching across the full cell */
.detail-tabs .detail-tab__label { display:inline-block; padding:10px 26px; border-radius:999px; transition:background .25s ease, color .25s ease; }
.detail-tabs .detail-tab:hover .detail-tab__label { background:none; color:#b88b69; }
.detail-tabs .detail-tab.active { color:#0c244c; font-weight:700; }
.detail-tabs .detail-tab.active .detail-tab__label { background:none; color:#ddb496; }
.hotel-detail-tabs .detail-tab { font-size:clamp(.82rem,1.35vw,1.35rem); }
.hotel-detail-tabs .detail-tab.active { color:#b88b69; }
.hotel-detail-tabs + .tab-panels { min-height:240px; }
.hotel-tab-empty { margin:18px 0; padding:42px 24px; border:1px solid rgba(12,36,76,.16); color:rgba(12,36,76,.72); text-align:center; line-height:1.7; background:rgba(255,255,255,.22); }
.hotel-accommodation-overview:not([hidden]) { display:grid; grid-template-columns:minmax(0,1.2fr) minmax(0,.8fr); gap:28px 48px; margin:28px 0; padding:30px; border:1px solid rgba(12,36,76,.16); background:rgba(255,255,255,.22); }
.hotel-accommodation-overview[hidden] { display:none !important; }
.hotel-accommodation-overview__section h3 { margin:0 0 12px; color:#0c244c; font-family:var(--font-title); font-size:1.2rem; font-weight:400; }
.hotel-accommodation-overview__section p { margin:0; color:rgba(12,36,76,.82); line-height:1.75; }
.hotel-accommodation-overview__section ul { display:flex; flex-wrap:wrap; gap:8px; margin:0; padding:0; list-style:none; }
.hotel-accommodation-overview__section li { padding:7px 12px; border:1px solid rgba(12,36,76,.15); color:#0c244c; font-size:.88rem; }
.room-grid:empty { display:none; }
.room-grid:not(:empty) ~ .hotel-tab-empty,
.promo-grid:not(:empty) + .hotel-tab-empty,
.hotel-getting-here:not(:empty) + .hotel-tab-empty,
.review-grid:not(:empty) + .hotel-tab-empty { display:none; }
.room-filter[hidden], #hotel-promotions-action[hidden] { display:none !important; }
.hotel-detail-tabs ~ .tab-panels .promo-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:0; }
.hotel-detail-tabs ~ .tab-panels .promo-card { padding:0 48px 0 0; border:0; background:transparent; }
.hotel-detail-tabs ~ .tab-panels .promo-card + .promo-card { padding:0 0 0 48px; border-left:1px solid #0c244c; }
.hotel-detail-tabs ~ .tab-panels .promo-card__body { padding:0; }
.hotel-detail-tabs ~ .tab-panels .promo-card__title { font-size:clamp(1.35rem,2vw,2rem); line-height:1.12; margin-bottom:34px; }
.hotel-detail-tabs ~ .tab-panels .promo-card__meta { color:#0c244c; font-size:1rem; margin-bottom:26px; }
.hotel-detail-tabs ~ .tab-panels .promo-card__desc { color:#0c244c; font-size:.98rem; line-height:1.55; margin-bottom:18px; }
.hotel-tab-action { margin:42px 0 0; text-align:center; }
#overview, #itinerary, #stays, #dates-price { scroll-margin-top:165px; }
.detail-columns { display:grid; grid-template-columns:1fr 280px; gap:40px; }
.detail-copy { line-height:1.8; }
.detail-copy h2 { font-size:1.6rem; font-weight:400; margin:30px 0 15px; }
.detail-copy img { width:100%; max-height:420px; object-fit:cover; margin:20px 0; }
.price-box { border-left:1px solid #aaa; padding-left:25px; line-height:2; }
.price-box strong { font-size:1.4rem; }
.inner-page .btn-outline { border:1px solid #0c244c; color:#0c244c; background:transparent; padding:13px 44px; font-size:.78rem; letter-spacing:.12em; text-transform:uppercase; cursor:pointer; transition:all .3s ease; }
.inner-page .btn-outline:hover { background:#0c244c; color:#fff; }
.split-feature .btn-outline { align-self:flex-start; border-color:#b88b69; color:#b88b69; background:transparent; padding:10px 28px; font-size:.9rem; letter-spacing:normal; text-transform:none; }
.split-feature .btn-outline:hover { background:#b88b69; color:#fff; }
.inner-page .footer { margin-top:0; }
.inner-page .footer__columns { border-top:1px solid rgba(221,180,150,.18); }
.inner-page .footer__columns::before { content:'WHY CHOOSE ?'; display:block; max-width:1680px; margin:0 auto; padding:18px 40px 0; color:#777; font-size:1rem; letter-spacing:.08em; }
.inner-page .footer__bottom .container { display:flex; align-items:center; min-height:100px; }
.inner-page .footer__bottom .container img { width:130px; height:auto; }
.inner-page .footer__col h4 { color:#ddb496; }

/* Keep text consistent without overriding SVG/icon elements. */
.inner-page .inner-main {
  font-family: var(--font-display);
}
.inner-page .inner-main p,
.inner-page .inner-main h1,
.inner-page .inner-main h2,
.inner-page .inner-main h3,
.inner-page .inner-main h4,
.inner-page .inner-main li,
.inner-page .inner-main a,
.inner-page .inner-main button,
.inner-page .inner-main span {
  font-family: inherit;
}

/* ===========================
   Login Split Layout
   =========================== */
.login-page { min-height:100vh; display:flex; background:#f5f0ec; overflow:hidden; }
.login-split { display:flex; width:100%; min-height:100vh; }
.login-split__image { flex:0 0 50%; position:relative; overflow:hidden; }
.login-split__image img { width:100%; height:100%; object-fit:cover; display:block; }
.login-split__image::after { content:''; position:absolute; inset:0; background:linear-gradient(135deg,rgba(180,120,60,0.2),rgba(12,36,76,0.15)); }
.login-curve { position:absolute; top:0; bottom:0; left:50%; width:60px; transform:translateX(-50%); pointer-events:none; z-index:2; }
.login-curve svg { width:100%; height:100%; }
.login-split__form { flex:1; display:flex; flex-direction:column; align-items:center; justify-content:center; padding:60px 48px; position:relative; }
.login-split__form .login-logo { margin-bottom:32px; }
.login-split__form .login-logo img { width:140px; height:auto; }
.login-split__form h1 { font-family:var(--font-title); font-size:1.4rem; font-weight:400; color:#0c244c; margin-bottom:28px; letter-spacing:0.04em; }
.login-form { width:100%; max-width:360px; }
.login-form .login-select { width:100%; padding:12px 0; border:none; border-bottom:1px solid #c5b8a8; background:transparent; font-family:var(--font-body); font-size:0.85rem; color:#333; outline:none; cursor:pointer; appearance:none; -webkit-appearance:none; background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6' fill='%230c244c'%3E%3Cpath d='M1 1l4 4 4-4'/%3E%3C/svg%3E"); background-repeat:no-repeat; background-position:right 0 center; margin-bottom:20px; }
.login-form .form-input--underline { margin-bottom:20px; }
.login-form__row { display:flex; justify-content:space-between; align-items:center; margin-bottom:24px; }
.login-form__check { display:flex; align-items:center; gap:8px; font-size:0.72rem; color:#888; cursor:pointer; }
.login-form__check input { accent-color:#0c244c; }
.login-form__forgot { font-size:0.72rem; color:#0c244c; text-decoration:underline; }
.login-form .btn--navy-solid { width:100%; text-align:center; margin-bottom:20px; }
.login-split__form .login-links { font-size:0.8rem; color:#666; }
.login-split__form .login-links a { color:#0c244c; text-decoration:underline; }

/* ===========================
   Data Bar (Itinerary Detail)
   =========================== */
.data-bar { display:flex; background:#0c244c; color:#ddb496; padding:20px 40px; }
.data-bar__item { flex:1; display:flex; flex-direction:column; align-items:center; text-align:center; gap:4px; }
.data-bar__item + .data-bar__item { border-left:1px solid rgba(221,180,150,0.25); }
.data-bar__label { font-size:0.65rem; letter-spacing:0.14em; text-transform:uppercase; opacity:0.7; }
.data-bar__value { font-family:var(--font-title); font-size:1.05rem; }

/* ===========================
   Tab Panel System
   =========================== */
.tab-panel { display:none; }
.tab-panel--active { display:block; animation:tabFadeIn 0.3s ease; }
@keyframes tabFadeIn { from { opacity:0; transform:translateY(8px); } to { opacity:1; transform:translateY(0); } }
/* detail-tab styles moved to .detail-tabs block above */

/* ===========================
   Hotel Info Bar
   =========================== */
.hotel-info-bar { display:flex; flex-wrap:wrap; gap:0; padding:18px 0; border-bottom:1px solid #e0d8cc; margin-bottom:30px; }
.hotel-info-bar__item { display:flex; align-items:center; gap:8px; padding:0 20px; font-size:0.78rem; color:#0c244c; }
.hotel-info-bar__item + .hotel-info-bar__item { border-left:1px solid #e0d8cc; }
.hotel-info-bar__item:first-child { padding-left:0; }
.hotel-info-bar__icon { width:16px; height:16px; flex-shrink:0; opacity:0.6; }

/* ===========================
   Travelers Receive
   =========================== */
.travelers-receive { margin-bottom:40px; }
.travelers-receive__grid { display:grid; grid-template-columns:1fr auto; gap:40px; align-items:start; }
.travelers-receive__copy h3 { font-family:var(--font-title); font-size:1.1rem; color:#0c244c; margin-bottom:14px; font-weight:400; }
.travelers-receive__copy ul { list-style:disc; padding-left:20px; margin-bottom:18px; }
.travelers-receive__copy li { font-size:0.82rem; color:#0c244c; line-height:1.7; }
.travelers-receive__copy p { font-size:0.78rem; color:#0c244c; font-style:italic; line-height:1.6; }
.travelers-receive__actions { display:flex; flex-direction:column; gap:12px; }
.travelers-receive__actions .btn-outline { min-width:140px; }
.tab-intro { font-family:var(--font-title); font-size:1rem; color:#0c244c; margin-bottom:22px; line-height:1.6; }

/* ===========================
   Room Cards (Accommodation Tab)
   =========================== */
.room-filter { display:flex; gap:12px; margin-bottom:28px; }
.room-filter__btn { padding:8px 20px; border:1px solid #ccc; background:transparent; font-size:0.78rem; color:#666; cursor:pointer; transition:all var(--transition); letter-spacing:0.04em; }
.room-filter__btn--active, .room-filter__btn:hover { background:#0c244c; color:#ddb496; border-color:#0c244c; }
.room-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:24px; }
.room-card { border:1px solid #e0d8cc; background:#fff; overflow:hidden; }
.room-card__img { width:100%; height:200px; object-fit:cover; display:block; }
.room-card__body { padding:20px; }
.room-card__name { font-family:var(--font-title); font-size:1.05rem; font-weight:400; color:#0c244c; margin-bottom:6px; }
.room-card__desc { font-size:0.78rem; color:#888; line-height:1.6; margin-bottom:14px; }
.room-card__actions { display:flex; gap:8px; }
.room-card__btn { flex:1; padding:8px 0; text-align:center; font-size:0.7rem; letter-spacing:0.08em; text-transform:uppercase; border:1px solid #0c244c; color:#0c244c; background:transparent; cursor:pointer; transition:all var(--transition); }
.room-card__btn--primary { background:#0c244c; color:#fff; }
.room-card__btn:hover { background:#0c244c; color:#ddb496; }
.room-card__btn--primary:hover { background:#b88b69; border-color:#b88b69; color:#fff; }

/* ===========================
   Promotions Tab
   =========================== */
.promo-grid { display:grid; grid-template-columns:1fr 1fr; gap:30px; }
.promo-card { border:1px solid #e0d8cc; background:#fff; overflow:hidden; }
.promo-card__img { width:100%; height:220px; object-fit:cover; display:block; }
.promo-card__body { padding:24px; }
.promo-card__title { font-family:var(--font-title); font-size:1.2rem; color:#0c244c; margin-bottom:10px; }
.promo-card__desc { font-size:0.82rem; color:#666; line-height:1.7; margin-bottom:16px; }
.promo-card__meta { font-size:0.75rem; color:#b88b69; margin-bottom:14px; }

/* ===========================
   Reviews Tab
   =========================== */
.reviews-header { display:flex; align-items:center; gap:12px; margin-bottom:24px; }
.reviews-header h3 { font-family:var(--font-title); font-size:1.3rem; color:#0c244c; font-weight:400; }
.reviews-header .star-rating { display:flex; gap:2px; }
.reviews-header .star-rating span { color:#c5a55a; font-size:1rem; }
.review-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:20px; }
.review-card { padding:22px; background:#b88b69; color:#fff; }
.review-card__top { display:flex; align-items:center; justify-content:space-between; margin-bottom:14px; }
.review-card__label { font-size:0.75rem; letter-spacing:0.04em; }
.review-card__date { font-size:0.7rem; opacity:0.8; }
.review-card__rating { display:flex; gap:2px; }
.review-card__rating span { color:#fff; font-size:0.85rem; }
.review-card__title { font-family:var(--font-title); font-size:1.2rem; margin-bottom:6px; line-height:1.25; }
.review-card__author { font-size:0.78rem; opacity:0.85; margin-bottom:14px; }
.review-card__text { font-size:0.8rem; line-height:1.7; opacity:0.95; }

/* ===========================
   Day-by-Day Itinerary
   =========================== */
.day-by-day { display:grid; grid-template-columns:200px 1fr; gap:30px; margin:30px 0; }
.day-list { display:flex; flex-direction:column; gap:0; border-right:1px solid #e0d8cc; }
.day-list__item { padding:14px 20px; font-family:var(--font-title); font-size:0.9rem; color:#888; cursor:pointer; border-right:3px solid transparent; transition:all var(--transition); }
.day-list__item--active { color:#0c244c; border-right-color:#b88b69; background:rgba(184,139,105,0.05); }
.day-list__item:hover { color:#0c244c; }
.day-content { min-height:300px; }
.day-content__title { font-family:var(--font-title); font-size:1.4rem; color:#0c244c; margin-bottom:16px; }
.day-content__time { font-size:0.72rem; color:#b88b69; letter-spacing:0.1em; text-transform:uppercase; margin-bottom:12px; }
.day-content__text { font-size:0.88rem; color:#555; line-height:1.8; margin-bottom:20px; }
.day-content__img { width:100%; max-height:300px; object-fit:cover; margin-bottom:16px; }

/* ===========================
   Stays Large Cards
   =========================== */
.stay-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:24px; margin:30px 0; }
.stay-card--large { overflow:hidden; border-radius:4px; cursor:pointer; }
.stay-card--large img { width:100%; height:280px; object-fit:cover; transition:transform 0.6s ease; }
.stay-card--large:hover img { transform:scale(1.04); }
.stay-card--large__body { padding:16px 4px; }
.stay-card--large__region { font-size:0.7rem; color:#b88b69; letter-spacing:0.12em; text-transform:uppercase; margin-bottom:4px; }
.stay-card--large__name { font-family:var(--font-title); font-size:1.1rem; color:#0c244c; }

/* ===========================
   Dates & Price Table
   =========================== */
.dates-price-table { width:100%; border-collapse:collapse; margin:20px 0; }
.dates-price-table th { text-align:left; padding:12px 16px; background:#0c244c; color:#ddb496; font-size:0.75rem; letter-spacing:0.08em; text-transform:uppercase; font-weight:400; }
.dates-price-table td { padding:14px 16px; border-bottom:1px solid #e0d8cc; font-size:0.85rem; color:#555; }
.dates-price-table tr:hover td { background:rgba(184,139,105,0.04); }
.dates-price-table .price { color:#0c244c; font-weight:500; }

/* ===========================
   Itinerary Detail Layout
   =========================== */
.itinerary-intro { display:block; margin-bottom:30px; }
.itinerary-intro p { font-size:1.15rem; color:#0c244c; line-height:1.9; text-align:justify; margin:0; }
.highlights-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:30px 40px; margin-bottom:55px; }
.highlight-item { display:flex; align-items:flex-start; gap:14px; }
.highlight-icon { width:22px; height:22px; flex-shrink:0; margin-top:3px; }
.highlight-item p { margin:0; font-size:0.95rem; line-height:1.75; color:#0c244c; }
.highlight-actions { display:flex; align-items:flex-end; gap:12px; }
.btn-solid { background:#B68B6A; color:#fff; border:none; padding:13px 30px; font-size:0.78rem; letter-spacing:0.12em; text-transform:uppercase; cursor:pointer; transition:background 0.3s ease; }
.btn-solid:hover { background:#9a7355; }
.btn-outline-solid { background:transparent; color:#B68B6A; border:1px solid #B68B6A; }
.btn-outline-solid:hover { background:#B68B6A; color:#fff; }
.tab-section-title { font-family:var(--font-title); font-size:1.6rem; color:#0c244c; font-weight:400; text-align:center; margin-bottom:28px; }
.dates-price-layout { display:grid; grid-template-columns:1fr 1fr; gap:50px; }
.inclusions-title { font-family:var(--font-title); font-size:1.4rem; color:#0c244c; font-weight:400; margin-bottom:22px; }
.inclusions-list { list-style:none; padding:0; margin:0; }
.inclusions-list li { display:flex; align-items:flex-start; gap:12px; margin-bottom:16px; font-size:0.82rem; color:#555; line-height:1.6; }
.inclusions-list li svg { width:18px; height:18px; flex-shrink:0; color:#0c244c; margin-top:2px; }
.inclusions-list li strong { color:#0c244c; display:block; margin-bottom:2px; }
.dates-price__year { font-family:var(--font-title); font-size:1.6rem; color:#0c244c; font-weight:400; margin-bottom:8px; }
.dates-price__year small { color:#b88b69; font-size:0.5em; vertical-align:top; }
.dates-price__note { font-size:0.78rem; color:#777; margin-bottom:18px; }
.dates-price__summary { margin-top:18px; padding-top:18px; border-top:1px solid #e0d8cc; }
.dates-price__summary-row { display:flex; justify-content:space-between; font-size:0.85rem; color:#555; margin-bottom:8px; }
.dates-price__summary-row .price { color:#0c244c; font-weight:500; }
.dates-price__new { display:inline-block; color:#b88b69; font-weight:600; margin-right:8px; }
.similar-tours { display:grid; grid-template-columns:repeat(4,1fr); gap:26px; align-items:start; margin-top:60px; }
.similar-tours__intro { grid-column:1; }
.similar-tours__intro .inner-title { margin-top:0; border-bottom:none; padding-bottom:0; }
.similar-tours .feature-grid { grid-column:2 / -1; grid-template-columns:repeat(3,1fr); }
@media(max-width:900px){
  .similar-tours { grid-template-columns:1fr; }
  .similar-tours .feature-grid { grid-column:auto; grid-template-columns:repeat(2,1fr); }
}
@media(max-width:600px){
  .similar-tours .feature-grid { grid-template-columns:1fr; }
}
@media(max-width:900px){
  .highlights-grid { grid-template-columns:1fr; gap:22px; }
  .highlight-actions { justify-content:flex-start; }
}
@media(max-width:600px){
  .highlight-actions { flex-direction:column; align-items:stretch; }
  .btn-solid { width:100%; }
}
@media(max-width:900px){
  .inclusions-prices { grid-template-columns:1fr; gap:40px; }
}

/* ===========================
   SVG Map (Country Page)
   =========================== */
.map-wrapper { position:relative; width:100%; height:450px; background:#0c2b59; overflow:hidden; border-radius:4px; }
.map-svg { width:100%; height:100%; display:block; }
.map-region { fill:#3a5a7a; stroke:#5a7a9a; stroke-width:0.5; transition:fill 0.3s; }
.map-region:hover { fill:#4a6a8a; }
.map-itinerary-overlay { fill:none; stroke:#e8442c; stroke-width:2.5; stroke-dasharray:6 4; opacity:0.8; }
.map-marker { cursor:pointer; }
.map-marker circle { fill:#e8442c; stroke:#fff; stroke-width:2; transition:r 0.3s; }
.map-marker:hover circle { r:10; }
.map-marker text { fill:#fff; font-size:10px; font-family:var(--font-body); text-anchor:middle; dominant-baseline:central; pointer-events:none; }
.map-marker__label { position:absolute; background:#0c244c; color:#fff; padding:4px 10px; font-size:0.72rem; white-space:nowrap; pointer-events:none; opacity:0; transition:opacity 0.2s; border-radius:2px; z-index:10; }
.map-marker:hover .map-marker__label { opacity:1; }
.map-controls { position:absolute; right:16px; bottom:16px; display:flex; flex-direction:column; gap:6px; z-index:5; }
.map-controls button { width:36px; height:36px; border-radius:4px; background:rgba(12,36,76,0.85); color:#ddb496; border:1px solid rgba(221,180,150,0.3); font-size:1.1rem; cursor:pointer; display:flex; align-items:center; justify-content:center; transition:all var(--transition); }
.map-controls button:hover { background:#0c244c; color:#fff; }
.hotel-map-section { margin:50px 0; }
.itinerary-card--highlight { border:2px solid #e8442c !important; }
.itinerary-card--highlight::before { content:'YEARNING'; position:absolute; top:-1px; left:-1px; background:#e8442c; color:#fff; font-size:0.6rem; padding:2px 8px; letter-spacing:0.1em; z-index:3; }

/* ===========================
   AMAN Page
   =========================== */
.aman-hero { position:relative; min-height:500px; display:flex; flex-direction:column; align-items:center; justify-content:center; text-align:center; color:#fff; background:center/cover no-repeat; }
.aman-hero::after { content:''; position:absolute; inset:0; background:rgba(0,0,0,0.35); }
.aman-hero__content { position:relative; z-index:1; padding:120px 24px 60px; }
.aman-brand-title { font-family:var(--font-title); font-size:clamp(3rem,6vw,5rem); font-weight:400; letter-spacing:0.2em; margin-bottom:16px; }
.aman-hero__sub { font-family:var(--font-title); font-size:clamp(1rem,1.8vw,1.4rem); letter-spacing:0.04em; opacity:0.9; }

/* AMAN page — bigger banner */
body.inner-page .dest-hero { min-height:720px; }

/* AMAN brand partnership section — per screenshot */
.aman-partnership { max-width:1680px; margin:20px auto 50px; padding:0 40px; }
.aman-partnership__title { font-family:var(--font-title); font-size:clamp(1.3rem,2.4vw,2.1rem); font-weight:400; color:#0c244c; letter-spacing:0.02em; margin-bottom:20px; line-height:1.3; text-align:left; white-space:nowrap; }
.aman-partnership__text { font-size:1.05rem; line-height:1.9; color:#0c244c; text-align:justify; }
.aman-partnership__text strong { color:#0c244c; font-weight:600; }

/* AMAN Properties Gallery — 2 rows × 3 columns */
.aman-gallery { display:grid; grid-template-columns:repeat(3,1fr); gap:12px; margin:50px auto 25px; max-width:1680px; padding:0 40px; }
.aman-gallery--flush { max-width:none; padding:0; }
.aman-gallery__card { position:relative; display:block; overflow:hidden; aspect-ratio:4/3; border-radius:4px; }
.aman-gallery__card img { width:100%; height:100%; object-fit:cover; display:block; transition:transform .5s; }
.aman-gallery__card:hover img { transform:scale(1.04); }
.aman-gallery__card::after { content:''; position:absolute; inset:0; background:linear-gradient(to top, rgba(0,0,0,.55) 0%, transparent 55%); pointer-events:none; }
.aman-gallery__info { position:absolute; left:16px; bottom:14px; right:16px; z-index:1; color:#fff; display:flex; flex-direction:column; gap:2px; }
.aman-gallery__info small { font-size:0.72rem; opacity:.8; letter-spacing:0.02em; }
.aman-gallery__info strong { font-size:0.95rem; font-weight:600; letter-spacing:0.01em; }

@media(max-width:900px){ .aman-gallery { grid-template-columns:repeat(2,1fr); } }
@media(max-width:768px){ .aman-gallery { grid-template-columns:1fr; gap:8px; padding:0 20px; } }

.aman-intro { display:none; }
.sort-bar { display:flex; justify-content:flex-end; align-items:center; padding:0 40px 20px; max-width:1680px; margin:0 auto; }
.sort-bar__label { font-size:0.75rem; color:#888; margin-right:10px; letter-spacing:0.06em; }
.sort-bar__select { padding:6px 28px 6px 12px; border:1px solid #ccc; background:#fff; font-family:var(--font-body); font-size:0.78rem; color:#333; outline:none; cursor:pointer; appearance:none; -webkit-appearance:none; background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6' fill='%230c244c'%3E%3Cpath d='M1 1l4 4 4-4'/%3E%3C/svg%3E"); background-repeat:no-repeat; background-position:right 8px center; }
.aman-grid, .hotel-group-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:24px; max-width:1680px; margin:0 auto 50px; padding:0 40px; }
.aman-grid .hotel-card, .hotel-group-grid .hotel-card { overflow:hidden; cursor:pointer; }
.aman-grid .hotel-card img, .hotel-group-grid .hotel-card img { width:100%; height:280px; object-fit:cover; transition:transform 0.6s; }
.aman-grid .hotel-card:hover img, .hotel-group-grid .hotel-card:hover img { transform:scale(1.04); }
.aman-seasonal { background:#f5f0ec; padding:60px 80px; max-width:1680px; margin:-40px auto 0; }
.aman-seasonal__title { font-family:var(--font-title); font-size:clamp(1.6rem,3vw,2.4rem); font-weight:400; color:#0c244c; text-align:center; margin-bottom:36px; }
.aman-seasonal__grid { display:grid; grid-template-columns:repeat(3,1fr); gap:12px; max-width:100%; margin:0 auto; }
.aman-seasonal__card { position:relative; overflow:hidden; cursor:pointer; }
.aman-seasonal__card img { width:100%; height:300px; object-fit:cover; transition:transform 0.6s; }
.aman-seasonal__card:hover img { transform:scale(1.04); }
.aman-seasonal__card::after { content:''; position:absolute; inset:50% 0 0; background:linear-gradient(transparent,rgba(0,0,0,0.7)); }
.aman-seasonal__card span { position:absolute; bottom:20px; left:20px; right:20px; z-index:1; color:#fff; font-family:var(--font-title); font-size:1.1rem; }

/* ===========================
   Hotel Group Page
   =========================== */
.brand-hero--rosewood { position:relative; min-height:480px; display:flex; flex-direction:column; align-items:center; justify-content:center; text-align:center; color:#fff; background:center/cover no-repeat; }
.brand-hero--rosewood::after { content:''; position:absolute; inset:0; background:rgba(0,0,0,0.3); }
.brand-hero--rosewood__content { position:relative; z-index:1; padding:120px 24px 60px; }
.brand-hero--rosewood h1 { font-family:var(--font-title); font-size:clamp(2rem,4vw,3.5rem); font-weight:400; margin-bottom:12px; }
.brand-hero--rosewood p { font-size:clamp(0.9rem,1.4vw,1.2rem); opacity:0.9; }
.spotlight-split { max-width:1680px; margin:0 auto; padding:0 40px 60px; }
.spotlight-split__title { font-family:var(--font-title); font-size:1.4rem; color:#0c244c; margin-bottom:30px; padding-bottom:16px; border-bottom:1px solid #ccc; }
.spotlight-split__item { display:grid; grid-template-columns:1fr 1fr; gap:40px; align-items:center; margin-bottom:40px; }
.spotlight-split__item.reverse .spotlight-split__img { order:2; }
.spotlight-split__img img { width:100%; height:300px; object-fit:cover; }
.spotlight-split__copy h3 { font-family:var(--font-title); font-size:1.3rem; color:#b88b69; margin-bottom:16px; }
.spotlight-split__copy p { font-size:0.88rem; line-height:1.8; color:#555; margin-bottom:16px; }

/* ===========================
   AMAN Itineraries Page
   =========================== */
.aman-winter-hero { position:relative; min-height:480px; display:flex; flex-direction:column; align-items:center; justify-content:center; text-align:center; color:#fff; background:center/cover no-repeat; }
.aman-winter-hero::after { content:''; position:absolute; inset:0; background:rgba(0,0,0,0.3); }
.aman-winter-hero__content { position:relative; z-index:1; padding:120px 24px 60px; }
.aman-winter-hero h1 { font-family:var(--font-title); font-size:clamp(2rem,4vw,3.5rem); font-weight:400; margin-bottom:12px; }
.ski-destinations { display:grid; grid-template-columns:repeat(2,1fr); gap:30px; max-width:1400px; margin:40px auto; padding:0 40px; }
.ski-destinations__card { overflow:hidden; cursor:pointer; }
.ski-destinations__card img { width:100%; height:320px; object-fit:cover; transition:transform 0.6s; }
.ski-destinations__card:hover img { transform:scale(1.03); }
.ski-destinations__card h3 { font-family:var(--font-title); font-size:1.2rem; color:#0c244c; margin-top:14px; }
.featured-experience { max-width:1400px; margin:50px auto; padding:0 40px; display:grid; grid-template-columns:1fr 1fr; gap:50px; align-items:center; }
.featured-experience__img img { width:100%; height:400px; object-fit:cover; }
.featured-experience__copy h2 { font-family:var(--font-title); font-size:1.6rem; color:#b88b69; margin-bottom:20px; }
.featured-experience__copy p { font-size:0.9rem; line-height:1.9; color:#555; margin-bottom:16px; }
.aman-cta-bar { background:#0c244c; padding:50px 40px; text-align:center; }
.aman-cta-bar h2 { font-family:var(--font-title); font-size:1.6rem; color:#ddb496; margin-bottom:24px; }
.aman-cta-bar__btns { display:flex; gap:16px; justify-content:center; }

/* ===========================
   Messages Page
   =========================== */
.concierge-header { background:#0c244c; color:#ddb496; padding:16px 40px; text-align:center; font-family:var(--font-title); font-size:1rem; letter-spacing:0.04em; }
.message-layout { display:grid; grid-template-columns:320px 1fr; height:calc(100vh - 56px); }
.conversation-list { border-right:1px solid #e0d8cc; overflow-y:auto; background:#fff; }
.conversation-list__item { display:flex; align-items:center; gap:12px; padding:16px 20px; border-bottom:1px solid #f0ebe5; cursor:pointer; transition:background var(--transition); }
.conversation-list__item:hover, .conversation-list__item--active { background:rgba(184,139,105,0.06); }
.conversation-list__avatar { width:40px; height:40px; border-radius:50%; background:#0c244c; color:#ddb496; display:flex; align-items:center; justify-content:center; font-size:0.85rem; flex-shrink:0; }
.conversation-list__name { font-size:0.85rem; color:#0c244c; font-weight:500; }
.conversation-list__preview { font-size:0.72rem; color:#999; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.chat-panel { display:flex; flex-direction:column; background:#f5f0ec; }
.chat-panel__header { padding:16px 24px; border-bottom:1px solid #e0d8cc; display:flex; align-items:center; gap:12px; background:#fff; }
.chat-panel__messages { flex:1; overflow-y:auto; padding:24px; display:flex; flex-direction:column; gap:16px; }
.message-bubble { max-width:60%; padding:12px 18px; font-size:0.85rem; line-height:1.6; }
.message-bubble--bot { background:#fff; color:#333; border-radius:4px 4px 4px 0; align-self:flex-start; box-shadow:0 1px 4px rgba(0,0,0,0.06); }
.message-bubble--user { background:#0c244c; color:#fff; border-radius:4px 4px 0 4px; align-self:flex-end; }
.message-bubble__time { font-size:0.65rem; color:#aaa; margin-top:4px; }
.quick-actions { display:flex; flex-wrap:wrap; gap:8px; padding:0 24px 16px; }
.quick-actions__btn { padding:8px 16px; border:1px solid #0c244c; background:transparent; color:#0c244c; font-size:0.75rem; cursor:pointer; transition:all var(--transition); border-radius:2px; }
.quick-actions__btn:hover { background:#0c244c; color:#ddb496; }
.chat-input-bar { display:flex; align-items:center; gap:10px; padding:16px 24px; border-top:1px solid #e0d8cc; background:#fff; }
.chat-input-bar input { flex:1; padding:10px 16px; border:1px solid #e0d8cc; background:#f9f7f3; font-size:0.85rem; outline:none; border-radius:2px; }
.chat-input-bar input:focus { border-color:#b88b69; }
.chat-input-bar button { width:36px; height:36px; border:none; background:transparent; color:#0c244c; cursor:pointer; display:flex; align-items:center; justify-content:center; font-size:1.2rem; }

/* ===========================
   Filter Page
   =========================== */
.filter-page .header { position:relative; background:var(--cream); }
.filter-page .header__nav-link { color:#0c244c; }
.filter-page .header__nav-link:hover { color:#b88b69; }
.filter-page .header__nav-link--active { color:#b88b69; }
.filter-page .header__nav-sep { color:rgba(12,36,76,0.25); }
.filter-page .header__lang { color:#0c244c; border-bottom-color:#0c244c; }
.filter-page .header__lang:hover { color:#b88b69; border-bottom-color:#b88b69; }
.filter-page .header__search-box { border-color:rgba(12,36,76,0.25); background:rgba(12,36,76,0.03); }
.filter-page .header__search-box:focus-within { border-color:#0c244c; }
.filter-page .header__search-icon { stroke:#0c244c; opacity:0.7; }
.filter-page .header__search-input { color:#0c244c; }
.filter-page .header__search-input::placeholder { color:rgba(12,36,76,0.45); }
.filter-page .header__enquire { background:#0c244c; color:#ddb496; }
.filter-page .header__enquire:hover { background:#b88b69; color:#fff; }
.filter-page .header__burger span { background:#0c244c; }
.filter-layout { display:grid; grid-template-columns:30% 70%; gap:0; max-width:1680px; margin:0 auto; background:var(--cream); }
.filter-sidebar { padding:30px 24px; border-right:1px solid #e0d8cc; background:#fff; position:sticky; top:100px; align-self:start; z-index:30; }
.filter-section { margin-bottom:28px; }
.filter-section__title { font-family:var(--font-title); font-size:0.9rem; color:#0c244c; margin-bottom:12px; letter-spacing:0.04em; }
.filter-sidebar__toggle { display:none; width:100%; align-items:center; justify-content:space-between; padding:14px 18px; border:1px solid #e0d8cc; background:#fff; font-family:var(--font-title); font-size:0.95rem; color:#0c244c; cursor:pointer; letter-spacing:0.06em; }
.filter-sidebar__arrow { transition:transform .25s ease; font-size:0.8rem; }
.filter-sidebar--open .filter-sidebar__arrow { transform:rotate(180deg); }
.load-more { display:none; margin:30px auto 0; min-width:200px; height:46px; padding:0 28px; border:1px solid #b88b69; background:none; color:#b88b69; font-family:var(--font-title); font-size:0.85rem; letter-spacing:0.08em; cursor:pointer; border-radius:2px; transition:all var(--transition); }
.load-more:hover { background:#b88b69; color:#fff; }

@media (max-width:768px) {
  .filter-layout { grid-template-columns:1fr; }
  .filter-sidebar { position:static; top:auto; align-self:auto; border-right:none; border-bottom:1px solid #e0d8cc; padding:0 0 18px; background:transparent; z-index:auto; }
  .filter-sidebar__toggle { display:flex; }
  .filter-sidebar__body { display:none; padding-top:18px; }
  .filter-sidebar--open .filter-sidebar__body { display:block; }
  .results-grid__cards { grid-template-columns:repeat(2,1fr); }
  .load-more { display:block; }
}
.filter-chips { display:flex; flex-wrap:wrap; gap:6px; }
.filter-chip { padding:5px 12px; border:1px solid #ddd; background:#fff; font-size:0.72rem; color:#666; cursor:pointer; transition:all var(--transition); border-radius:2px; }
.filter-chip--active { background:none; color:#b88b69; border-color:#b88b69; font-weight:600; }
.filter-chip:hover { background:none; color:#b88b69; border-color:#b88b69; }

.results-grid { padding:30px 40px; }
.results-grid__title { font-family:var(--font-title); font-size:1.3rem; color:#0c244c; margin-bottom:24px; }
.results-grid__cards { display:grid; grid-template-columns:repeat(3,1fr); gap:20px; }
.results-grid__cards .photo-card img { width:100%; height:100%; min-height:0; object-fit:cover; display:block; }
.custom-trip-card { display:flex; flex-direction:column; align-items:center; justify-content:center; min-height:320px; border:2px solid #b58c6e; background:#b58c6e; cursor:pointer; transition:all var(--transition); text-decoration:none; }
.custom-trip-card:hover { background:#a87d61; border-color:#a87d61; }
.custom-trip-card__icon { font-size:2rem; color:#fff; margin-bottom:12px; }
.custom-trip-card__title { font-family:var(--font-title); font-size:1rem; color:#fff; text-align:center; padding:0 20px; line-height:1.5; }
.custom-trip-card__sub { font-size:0.72rem; color:#999; margin-top:6px; }
.results-grid__cards .photo-card { position:relative; text-decoration:none; display:block; min-height:320px; }

.results-grid__cards .photo-card::after { inset:40% 0 0; }
.photo-card .photo-card__badge { position:absolute; top:14px; right:14px; left:auto; bottom:auto; z-index:1; font-family:var(--font-title); font-size:0.85rem; color:#fff; letter-spacing:0.02em; text-shadow:0 1px 3px rgba(0,0,0,0.5); text-align:right; }
.similar-tours .photo-card__badge { font-size:0.72rem; font-weight:500; letter-spacing:0.08em; }
.photo-card__title { position:absolute; left:16px; right:14px; bottom:14px; z-index:1; font-family:var(--font-title); font-size:1.15rem; color:#fff; line-height:1.25; }
.photo-card__price { position:absolute; left:16px; right:14px; bottom:14px; z-index:1; font-family:var(--font-title); font-size:0.78rem; color:rgba(255,255,255,0.9); }
.photo-card__price ~ .photo-card__title { bottom:36px; }
.custom-trip-card { position:relative; }
.custom-trip-card__top { position:absolute; top:14px; right:14px; font-family:var(--font-title); font-size:0.8rem; color:rgba(255,255,255,0.85); letter-spacing:0.04em; text-align:right; }

/* ===========================
   Safari Custom Trip Card
   =========================== */
.safari-custom { display:flex; flex-direction:column; align-items:center; justify-content:center; min-height:420px; border:2px dashed #b88b69; background:rgba(184,139,105,0.04); cursor:pointer; transition:all var(--transition); text-decoration:none; }
.safari-custom:hover { background:rgba(184,139,105,0.1); }
.safari-custom__icon { font-size:2.5rem; color:#b88b69; margin-bottom:16px; }
.safari-custom__title { font-family:var(--font-title); font-size:1.2rem; color:#0c244c; text-align:center; }
.safari-custom__sub { font-size:0.78rem; color:#888; margin-top:8px; }

/* ===========================
   Safari Sample Itineraries
   =========================== */
.safari-itineraries { margin-top:60px; }
.safari-itineraries__layout { display:grid; grid-template-columns:1fr 2fr; gap:40px; align-items:start; }

/* ===========================
   Continent Cruises & Hotels
   =========================== */
.cruises-section { margin:50px 0; }
.cruises-section .feature-grid { grid-template-columns:repeat(4,1fr); }
.continent-hotels { margin:50px 0; }
.continent-hotels .hotels__grid { grid-template-columns:repeat(3,1fr); gap:18px; }
.continent-hotels .hotels__card { text-decoration:none; color:inherit; }
.detail-stays { margin-top:90px; margin-bottom:70px; }
.detail-stays .inner-title { text-align:center; border-bottom:none; padding-bottom:0; }
.detail-stays .hotels__grid { display:grid; grid-template-columns:repeat(3,1fr); gap:18px; margin-top:24px; }
.detail-stays .hotels__card { text-decoration:none; color:inherit; }
.detail-stays .hotels__card-name,
.detail-stays .hotels__card-loc { text-align:left; }
.detail-stays .hotels__card-name { font-size:1rem; }

/* Inclusions & Offers / Dates & Prices */
.inclusions-prices { display:grid; grid-template-columns:1fr 1fr; gap:60px; margin:70px 0; }
.inclusions-prices .inner-title { border-bottom:none; padding-bottom:0; margin-bottom:30px; text-align:left; font-size:1.4rem; }
.inclusions-col .inclusions-list { list-style:none; padding:0; margin:0; }
.inclusions-col .inclusions-list li { display:flex; align-items:flex-start; gap:14px; margin-bottom:28px; font-size:1.05rem; line-height:1.7; color:#0c244c; }
.inclusions-col .inclusions-list li strong { display:block; font-weight:600; margin-bottom:2px; }
.inclusion-icon { width:22px; height:22px; flex-shrink:0; margin-top:2px; }
.dates-year { font-family:var(--font-title); font-size:1.8rem; color:#0c244c; margin-bottom:8px; }
.dates-year small { display:inline-block; margin-left:4px; vertical-align:middle; }
.dates-year .title-star { width:18px; height:18px; margin-left:0; }
.dates-note { font-size:1rem; color:#0c244c; margin:0 0 20px; padding-bottom:16px; border-bottom:1px dashed #ccc; }
.dates-list { list-style:none; padding:0; margin:0 0 16px; }
.dates-list li { display:grid; grid-template-columns:minmax(0, 1fr) auto auto; gap:12px; align-items:center; padding:12px 0; border-bottom:1px dashed #ccc; font-size:0.9rem; color:#0c244c; }
.dates-list li:has(.new-tag) { grid-template-columns:auto minmax(0, 1fr) auto auto; }
.dates-list .dates-range { min-width:0; white-space:nowrap; }
.offer-tag { color:#B68B6A; font-weight:500; }
.new-tag { color:#B68B6A; font-weight:600; text-transform:uppercase; letter-spacing:0.05em; }
.dates-price { font-weight:500; text-align:right; }
.dates-new-row { grid-template-columns:auto 1fr auto auto; }
.dates-meta { margin-bottom:16px; }
.dates-meta-row { display:flex; justify-content:space-between; padding:12px 0; border-bottom:1px dashed #ccc; font-size:0.9rem; color:#0c244c; }
.dates-meta-row strong { font-weight:500; }
.dates-col .btn-outline { display:block; margin:24px auto 0; min-width:140px; text-align:center; }
.continent-hotels .inner-title--star-mid small { vertical-align:middle; }

/* ===========================
   Cities Spotlight
   =========================== */
.spotlight-title { display:flex; align-items:baseline; gap:16px; margin-bottom:30px; }
.spotlight-title__main { font-family:var(--font-title); font-size:clamp(2rem,3.5vw,3rem); font-weight:400; color:#0c244c; }
.spotlight-city { font-family:var(--font-title); font-size:1.2rem; color:#b88b69; }

/* ===========================
   Responsive for inner pages
   =========================== */
@media(max-width:1024px){ .room-grid{grid-template-columns:repeat(2,1fr)} .promo-grid{grid-template-columns:1fr} .aman-grid,.hotel-group-grid,.aman-seasonal__grid{grid-template-columns:repeat(2,1fr)} .ski-destinations{grid-template-columns:1fr} .featured-experience{grid-template-columns:1fr;gap:25px} .day-by-day{grid-template-columns:1fr} .day-list{flex-direction:row;overflow-x:auto;border-right:none;border-bottom:1px solid #e0d8cc} .day-list__item{border-right:none;border-bottom:3px solid transparent;white-space:nowrap} .day-list__item--active{border-bottom-color:#b88b69} .message-layout{grid-template-columns:240px 1fr} .results-grid__cards{grid-template-columns:repeat(2,1fr)} .filter-layout{grid-template-columns:220px 1fr} .stay-grid{grid-template-columns:repeat(2,1fr)} .review-grid{grid-template-columns:1fr} .travelers-receive__grid{grid-template-columns:1fr} .travelers-receive__actions{flex-direction:row} .safari-itineraries__layout{grid-template-columns:1fr} .aman-partnership__title{white-space:normal} .detail-itinerary__date{white-space:normal} }
@media(max-width:768px){
  .hotel-detail-tabs { justify-content:flex-start; overflow-x:auto; }
  .hotel-detail-tabs .detail-tab { flex:0 0 auto; width:auto; min-height:48px; padding:0 14px; white-space:nowrap; font-size:.88rem; }
  .hotel-accommodation-overview:not([hidden]) { grid-template-columns:1fr; gap:24px; padding:22px; }
  .hotel-detail-tabs ~ .tab-panels .promo-grid { grid-template-columns:1fr; gap:24px; }
  .hotel-detail-tabs ~ .tab-panels .promo-card { padding:0; }
  .hotel-detail-tabs ~ .tab-panels .promo-card + .promo-card { padding:24px 0 0; border-left:0; border-top:1px solid #0c244c; }
}
@media(max-width:640px){ .login-page{display:block}.login-split{flex-direction:column}.login-split__image{flex:none;height:200px}.login-curve{display:none}.login-split__form{padding:40px 24px} .room-grid,.aman-grid,.hotel-group-grid,.aman-seasonal__grid,.stay-grid,.review-grid{grid-template-columns:1fr} .promo-grid{grid-template-columns:1fr} .spotlight-split__item{grid-template-columns:1fr} .message-layout{grid-template-columns:1fr;height:auto} .conversation-list{display:none} .results-grid__cards{grid-template-columns:1fr} .filter-layout{grid-template-columns:1fr} .filter-sidebar{border-right:none;border-bottom:1px solid #e0d8cc} .data-bar{flex-direction:column;gap:12px} .data-bar__item + .data-bar__item{border-left:none;border-top:1px solid rgba(221,180,150,0.25)} .hotel-info-bar{flex-direction:column;gap:8px} .hotel-info-bar__item + .hotel-info-bar__item{border-left:none;border-top:1px solid #e0d8cc;padding-left:0} .aman-cta-bar__btns{flex-direction:column} }
@media(max-width:600px){ .inner-page .footer__columns::before{padding-left:20px;padding-right:20px}.inner-page .footer__bottom .container{justify-content:center} }
@media(max-width:900px){ .country-grid{grid-template-columns:repeat(3,1fr)} .feature-grid{grid-template-columns:repeat(2,1fr)} .split-feature{grid-template-columns:1fr;gap:25px}.split-feature.reverse .split-feature__image{order:0}.detail-columns{grid-template-columns:1fr}.price-box{border-left:0;border-top:1px solid #aaa;padding:20px 0} }
@media(max-width:600px){ .inner-main{padding:45px 20px}.country-grid,.feature-grid,.hotel-grid{grid-template-columns:1fr 1fr;gap:12px}.photo-card,.photo-card img,.feature-grid .photo-card,.feature-grid .photo-card img{min-height:180px}.destination-facts{grid-template-columns:1fr 1fr;gap:16px 12px}.destination-facts__item--wide{grid-column:span 2}.detail-tabs{font-size:.75rem}.inner-hero{min-height:480px}.inner-hero__data{grid-template-columns:1fr;max-width:none;gap:16px;padding:20px 24px 28px}.inner-hero__data-item + .inner-hero__data-item{border-left:none;border-top:1px solid rgba(255,255,255,.35);padding-top:16px}.inner-hero__data-label{font-size:1.1rem}.inner-hero__dots{bottom:auto;top:calc(100% - 130px)} }
@media(max-width:600px){ .hotel-data-panel{grid-template-columns:1fr;gap:0}.hotel-data-panel__value--wide{grid-column:auto} }
/* 移动端收窄行程详情页 tab 标签内边距，避免标签撑出视口 */
@media(max-width:640px){
  .detail-tabs { padding: 12px 0; }
  .detail-tabs .detail-tab { padding: 0 2px; }
  .detail-tabs .detail-tab__label { padding: 8px 10px; }
}

/* ===========================
   Landscape trio (25% / 50% / 25%)
   =========================== */
.landscape-trio { display:grid; grid-template-columns:1fr 2fr 1fr; gap:16px; margin:34px 0 46px; }
.landscape-trio__item { position:relative; display:block; height:460px; overflow:hidden; text-decoration:none; }
.landscape-trio__item img { width:100%; height:100%; object-fit:cover; display:block; transition:transform .5s; }
.landscape-trio__item:hover img { transform:scale(1.04); }

/* ===========================
   Detail Itinerary Module
   =========================== */
.detail-itinerary { margin-top:70px; }
.detail-itinerary__header { display:flex; justify-content:space-between; align-items:flex-start; margin-bottom:0; gap:24px; flex-wrap:wrap; }
.detail-itinerary__name { font-family:var(--font-display); font-size:1.9rem; font-weight:400; color:#0c244c; line-height:1.25; margin:0 0 6px; }
.detail-itinerary__subtitle { font-family:var(--font-display); font-size:1.3rem; color:#0c244c; line-height:1.6; font-weight:400; margin:20px 0 0; padding-bottom:26px; border-bottom:2px solid #0c244c; }
.detail-itinerary__date { font-family:var(--font-display); font-size:1.05rem; color:#0c244c; white-space:nowrap; padding-top:4px; }

/* Body: content 90% (left) + day nav 10% (right) */
.detail-itinerary__body { display:grid; grid-template-columns:9fr 1fr; gap:40px; align-items:start; }
.detail-itinerary__content { min-width:0; }

/* Day panels — all visible by default */
.detail-itinerary__panels { position:relative; }
.detail-itinerary__panel { display:block; margin-bottom:42px; scroll-margin-top:180px; }
.detail-itinerary__panel:not(:first-child) { border-top:1px solid #0c244c; padding-top:40px; }
.detail-itinerary__panel:first-child { padding-top:30px; }
.detail-itinerary__panel-date { font-family:var(--font-display); font-size:1.05rem; color:#0c244c; margin:0 0 18px; font-weight:400; letter-spacing:.02em; text-align:right; }

/* Panel inner: text (left) + photo (right) */
.detail-itinerary__main { display:grid; grid-template-columns:minmax(0, 5fr) minmax(0, 7fr); gap:28px; align-items:start; }
.detail-itinerary__text { min-width:0; padding-top:0; }
.detail-itinerary__activity { display:flex; align-items:center; gap:0; font-family:var(--font-display); font-size:1.3rem; font-weight:600; color:#0c244c; margin:0 0 18px; }
.detail-itinerary__activity .detail-itinerary__icon { margin-right:8px; }
.detail-itinerary__icon { flex-shrink:0; color:#0c244c; stroke-width:2.2; }
.detail-itinerary__desc { font-family:var(--font-display); font-size:.95rem; color:#0c244c; line-height:1.85; margin:0; text-align:justify; }
.detail-itinerary__desc--accent { color:#0c244c; }

.detail-itinerary__photo { width:100%; aspect-ratio:4 / 3; overflow:hidden; align-self:start; background:#e9e4df; }
.detail-itinerary__photo img { width:100%; height:100%; min-height:0; max-height:none; object-fit:cover; display:block; }

/* Day nav — right sidebar, vertical, dashed separators */
.detail-itinerary__days { display:flex; flex-direction:column; align-items:flex-start; gap:0; padding-top:4px; padding-left:24px; border-left:2px solid #0c244c; position:sticky; top:180px; z-index:30; }
.detail-itinerary__day { display:block; background:none; border:none; padding:12px 8px 12px 14px; font-size:1.3rem; color:#0c244c; font-weight:400; text-align:left; cursor:pointer; transition:var(--transition); border-bottom:1px dashed #0c244c; font-family:inherit; }
.detail-itinerary__day:last-child { border-bottom:none; }
.detail-itinerary__day:hover { color:#ddb496; }
.detail-itinerary__day.active { color:#ddb496; font-weight:600; }

@media(max-width:1024px){
  .detail-itinerary__body{grid-template-columns:1fr;gap:28px}
  .detail-itinerary__days{flex-direction:row;flex-wrap:wrap;border-left:none;padding-left:0;position:static;top:auto}
  .detail-itinerary__day{border-bottom:none;border-left:1px dashed #0c244c;padding:8px 14px;font-size:1.2rem}
  .detail-itinerary__day.active{color:#ddb496;font-weight:600}
  .detail-itinerary__main{grid-template-columns:1fr}
   .detail-itinerary__photo img{min-height:0}
}
@media(max-width:600px){
  .detail-itinerary__header{flex-direction:column;gap:6px}
  .detail-itinerary__name{font-size:1.5rem}
  .detail-itinerary__activity{font-size:1.1rem}
  .detail-itinerary__desc{font-size:.88rem}
  .detail-itinerary__subtitle{white-space:normal}
}
@media(max-width:768px){ .landscape-trio{grid-template-columns:1fr;gap:12px} .landscape-trio__item{height:300px} }
@media(max-width:600px){
  .hotel-page .inner-main { padding-top:48px; }
  .hotel-brand-wall { margin-top:-32px; }
  .hotel-brand-wall__row:first-child { display:flex; flex-wrap:wrap; justify-content:center; }
  .hotel-brand-wall__row:not(:first-child) { display:none; }
  .hotel-brand-wall__item { flex:0 0 33.333%; min-height:56px; padding:10px 12px; border-left:0 !important; }
  .hotel-brand-wall__item:nth-child(4) { border-left:0 !important; }
  .hotel-brand-wall__item:nth-child(5) { border-left:1px solid rgba(12,36,76,.1) !important; }
  .hotel-brand-wall__item img { max-height:29px; }
  .hotel-brand-wall + .inner-title { margin-top:8px; }
}
