/* =========================================================
   Check Availability page — Sunrise-style flow, ERT styling
   ========================================================= */
:root{
  --ca-bg:#0e2b28;
  --ca-bg2:#0b2321;
  --ca-surface:rgba(246,242,234,.05);
  --ca-surface-2:rgba(246,242,234,.09);
  --ca-ink:#f6f2ea;
  --ca-ink-soft:#d8d2c4;
  --ca-muted:#9aa69b;
  --ca-line:rgba(236,229,213,.16);
  --ca-gold:#c69a3d;
  --ca-gold-deep:#b0872f;
  /* White dates sat at 2.86:1 on the old #01aba2. Deepened to 4.8:1 so the
     day numbers on a bookable tile are actually legible. */
  --ca-available:#068078;
  --ca-offer:#cb4335;
  --ca-demand:#932691;
  --ca-radius:16px;
}

body.is_check_availability{background:var(--ca-bg)!important;color:var(--ca-ink);
  font-family:"Jost",-apple-system,"Helvetica Neue",Arial,sans-serif}
body.is_check_availability .header-margin{display:none!important}
body.is_check_availability .bravo_wrap{background:var(--ca-bg)}

.ca-page{background:var(--ca-bg);min-height:70vh;padding-bottom:70px}
.ca-container{max-width:1060px;margin:0 auto;padding:0 24px}

/* ---------- head ---------- */
.ca-head{background:linear-gradient(180deg,var(--ca-bg2),var(--ca-bg));
  border-bottom:1px solid var(--ca-line);padding:130px 0 34px}
.ca-head-inner{display:flex;justify-content:space-between;align-items:flex-end;gap:24px;flex-wrap:wrap}
.ca-eyebrow{font-size:11px;letter-spacing:.22em;text-transform:uppercase;color:var(--ca-gold);margin-bottom:10px}
.ca-title{margin:0;font-weight:400;font-size:clamp(1.8rem,4vw,2.8rem);line-height:1.1;color:#fbf6ec}
.ca-sub{margin-top:10px;color:var(--ca-ink-soft);font-size:15px}
.ca-sub span+span:before{content:"·";margin:0 8px;color:var(--ca-muted)}
.ca-head-price{display:flex;flex-direction:column;align-items:flex-end;gap:2px;text-align:right}
.ca-head-price .k{font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--ca-muted)}
.ca-head-price .v{font-size:30px;font-weight:600;color:var(--ca-gold)}
.ca-back{display:inline-block;margin-top:18px;color:var(--ca-ink-soft);font-size:14px;text-decoration:none}
.ca-back:hover{color:var(--ca-gold)}

/* ---------- boxes ---------- */
.ca-body{padding-top:34px;display:flex;flex-direction:column;gap:22px}
.ca-box{background:var(--ca-surface);border:1px solid var(--ca-line);border-radius:var(--ca-radius);padding:26px 28px}
.ca-h3{margin:0 0 14px;font-size:20px;font-weight:600;color:#fbf6ec}
.ca-h4{margin:0 0 6px;font-size:16px;font-weight:600;color:var(--ca-ink)}
.ca-h4.ca-normal{text-transform:none;font-weight:500}
.ca-muted{color:var(--ca-muted);font-size:14px;margin:0 0 10px}
.ca-center{text-align:center}
.ca-strong{font-weight:600;color:var(--ca-ink)}
.ca-rich{color:var(--ca-ink-soft);font-size:15px;line-height:1.7}
/* The theme sets a global paragraph colour meant for light pages, which
   wins here and drops this text to 2.79:1. Restate the pane's own. */
.ca-rich,.ca-rich p,.ca-rich li,.ca-rich strong,.ca-rich span{color:var(--ca-ink-soft)}
.ca-rich p{margin:0 0 12px}
.ca-rich a{color:var(--ca-gold)}
.text-right{text-align:right}

/* ---------- legend ---------- */
.ca-legend{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-bottom:18px}
.ca-legend-item{padding:9px 6px;text-align:center;border-radius:8px;font-size:13px;font-weight:500;color:#fff}
.ca-legend-item.is-available{background:var(--ca-available)}
.ca-legend-item.is-not-available{background:#fff;color:#123f6a}
.ca-legend-item.is-offer{background:var(--ca-offer)}
.ca-legend-item.is-demand{background:var(--ca-demand)}

/* ---------- calendar ---------- */
.ca-calendar{border:1px solid var(--ca-line);border-radius:12px;overflow:hidden;background:var(--ca-bg2)}
.ca-cal-head{display:flex;align-items:center;justify-content:space-between;padding:14px 16px;
  border-bottom:1px solid var(--ca-line);background:var(--ca-surface-2)}
.ca-cal-title{font-size:17px;font-weight:600;color:#fbf6ec}
.ca-nav{width:36px;height:36px;border-radius:50%;border:1px solid var(--ca-line);background:transparent;
  color:var(--ca-ink);font-size:20px;line-height:1;cursor:pointer;transition:.2s}
.ca-nav:hover:not(:disabled){background:var(--ca-gold);border-color:var(--ca-gold);color:#0e2b28}
.ca-nav:disabled{opacity:.3;cursor:not-allowed}
.ca-cal-grid{display:grid;grid-template-columns:repeat(7,1fr)}
.ca-cal-dow{padding:10px 8px;font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--ca-muted);text-align:center}
.ca-cal-days{padding:8px;gap:6px}
.ca-cal-days.is-loading{opacity:.45;pointer-events:none}
.ca-day{min-height:66px;border-radius:10px;display:flex;flex-direction:column;align-items:center;
  justify-content:center;gap:3px;font-size:15px;border:1px solid transparent;transition:.15s}
.ca-day.is-empty{background:transparent}
.ca-day.is-available{background:var(--ca-available);color:#fff;cursor:pointer}
.ca-day.is-available:hover{transform:translateY(-2px);box-shadow:0 8px 18px rgba(0,0,0,.35)}
/* At .55 the date inside was 1.55:1 and unreadable. .85 still reads as
   unavailable next to the teal available tiles, at 4.9:1. */
.ca-day.is-not-available{background:rgba(255,255,255,.9);color:#123f6a;opacity:.85;cursor:not-allowed}
.ca-day.is-past{opacity:.25}
.ca-day.is-offer{background:var(--ca-offer)}
.ca-day.is-demand{background:var(--ca-demand)}
.ca-day.is-selected{border-color:var(--ca-gold);box-shadow:0 0 0 2px var(--ca-gold) inset}
.ca-day-num{font-weight:600}
.ca-day-price{font-size:11px;text-align:center;line-height:1.2}
.ca-day-price br{display:none}
.ca-cal-foot{display:flex;align-items:center;justify-content:space-between;gap:12px;
  padding:14px 16px;border-top:1px solid var(--ca-line);font-size:14px;color:var(--ca-ink-soft)}
.ca-clear{background:transparent;border:1px solid var(--ca-line);border-radius:8px;padding:6px 14px;
  color:var(--ca-ink-soft);cursor:pointer}
.ca-clear:hover{border-color:var(--ca-gold);color:var(--ca-gold)}

/* ---------- tables ---------- */
.ca-table{width:100%;border-collapse:collapse}
.ca-table th,.ca-table td{padding:14px 12px;border-bottom:1px solid var(--ca-line);font-size:15px;vertical-align:middle}
.ca-table thead th{font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:var(--ca-muted);font-weight:500}
.ca-table td{color:var(--ca-ink-soft)}
.ca-table-summary th{width:45%;text-align:left;color:var(--ca-muted);font-weight:500}
.ca-table-summary td{color:var(--ca-ink);text-align:right}
.ca-table tr.ca-total th,.ca-table tr.ca-total td{font-size:19px;color:var(--ca-gold);font-weight:600;border-bottom:none}

/* ---------- counter ---------- */
.ca-counter{display:inline-flex;align-items:center;border:1px solid var(--ca-line);border-radius:10px;overflow:hidden}
.ca-counter button{width:38px;height:38px;background:transparent;border:0;color:var(--ca-ink);font-size:18px;cursor:pointer}
.ca-counter button:hover{background:var(--ca-gold);color:#0e2b28}
.ca-counter input{width:56px;height:38px;text-align:center;background:transparent;border:0;
  border-left:1px solid var(--ca-line);border-right:1px solid var(--ca-line);color:var(--ca-ink)}

/* ---------- extras + select ---------- */
.ca-extra{margin-top:18px}
.ca-extra-item{display:flex;align-items:center;gap:12px;padding:10px 0;border-bottom:1px solid var(--ca-line);cursor:pointer}
.ca-extra-name{flex:1;color:var(--ca-ink-soft)}
.ca-extra-price{color:var(--ca-gold)}
.ca-select{width:100%;max-width:420px;padding:13px 16px;border-radius:10px;border:1px solid var(--ca-line);
  background:var(--ca-bg2);color:var(--ca-ink);font-size:15px}
.ca-select option{color:#123f6a;background:#fff}

/* ---------- actions ---------- */
.ca-alert{margin-top:14px;padding:12px 16px;border-radius:10px;background:rgba(203,67,53,.15);
  border:1px solid rgba(203,67,53,.4);color:#ffd7d2;font-size:14px}
.ca-alert.is-success{background:rgba(1,171,162,.15);border-color:rgba(1,171,162,.4);color:#c9f7f4}
.ca-note{margin-top:14px;color:var(--ca-ink-soft)}
.ca-actions{margin-top:20px;display:flex;justify-content:flex-end}
.ca-btn{display:inline-flex;align-items:center;gap:10px;padding:16px 42px;border-radius:12px;cursor:pointer;
  background:var(--ca-gold);color:#0e2b28;font-weight:600;font-size:16px;text-decoration:none;transition:.2s}
.ca-btn:hover{background:var(--ca-gold-deep);color:#0e2b28}
.ca-btn.is-disabled{opacity:.6;pointer-events:none}

[v-cloak]{display:none}

@media (max-width:768px){
  .ca-head{padding-top:110px}
  .ca-head-inner{align-items:flex-start}
  .ca-head-price{align-items:flex-start;text-align:left}
  .ca-legend{grid-template-columns:repeat(2,1fr)}
  .ca-box{padding:20px 16px}
  .ca-day{min-height:52px;font-size:13px}
  .ca-day-price{display:none}
  .ca-table thead{display:none}
  .ca-table tbody tr{display:grid;grid-template-columns:1fr auto;gap:4px;padding:12px 0;border-bottom:1px solid var(--ca-line)}
  .ca-table tbody td{border:0;padding:4px 0}
  .ca-table-summary tbody tr{grid-template-columns:1fr auto}
  .ca-actions{justify-content:stretch}
  .ca-btn{width:100%;justify-content:center}
}

/* =========================================================
   INLINE MODE — the Check Availability tab inside the light
   "cru-" tour detail page. Overrides the dark standalone
   palette so the pane matches the surrounding page.
   ========================================================= */
.ca-inline{--ca-dark:#12291f;--ca-gold:#c39b53;--ca-ink2:#20303a;--ca-cream:#f7f3ec;--ca-muted2:#7c8a86;--ca-line2:#ece4d8;}
.ca-inline .ca-container{max-width:none;padding:0}
.ca-inline .ca-body{padding-top:0;gap:18px}
.ca-inline .ca-box{background:#fff;border:1px solid var(--ca-line2);border-radius:14px;padding:24px;
  box-shadow:0 10px 30px rgba(0,0,0,.05)}
.ca-inline .ca-h3{font-family:'Playfair Display',serif;font-size:22px;font-weight:700;color:var(--ca-dark)}
.ca-inline .ca-h4{color:var(--ca-ink2)}
.ca-inline .ca-rich,.ca-inline .ca-table td{color:var(--ca-ink2)}
.ca-inline .ca-rich a{color:var(--ca-gold)}
.ca-inline .ca-muted{color:var(--ca-muted2)}
.ca-inline .ca-strong{color:var(--ca-dark)}

/* Fix: the "Check here before booking" info card must render crisp.
   It sits inside frosted rd-/cru- panels; never inherit their blur/filter,
   and keep the card solid + high-contrast. */
.ca-inline, .ca-inline *{
  -webkit-backdrop-filter:none !important;
  backdrop-filter:none !important;
  filter:none !important;
}
.ca-inline .ca-box{opacity:1;background:#fff}
.ca-inline .ca-rich,
.ca-inline .ca-rich p,
.ca-inline .ca-rich strong,
.ca-inline .ca-rich span{color:var(--ca-ink2)}

/* calendar */
.ca-inline .ca-calendar{background:#fff;border-color:var(--ca-line2)}
.ca-inline .ca-cal-head{background:var(--ca-cream);border-bottom-color:var(--ca-line2)}
.ca-inline .ca-cal-title{color:var(--ca-dark)}
.ca-inline .ca-nav{border-color:var(--ca-line2);color:var(--ca-ink2)}
.ca-inline .ca-nav:hover:not(:disabled){background:var(--ca-gold);border-color:var(--ca-gold);color:#fff}
.ca-inline .ca-cal-dow{color:var(--ca-muted2)}
.ca-inline .ca-day.is-not-available{background:var(--ca-cream);color:var(--ca-muted2);opacity:1}
.ca-inline .ca-day.is-selected{border-color:var(--ca-gold);box-shadow:0 0 0 2px var(--ca-gold) inset}
.ca-inline .ca-cal-foot{border-top-color:var(--ca-line2);color:var(--ca-ink2)}
.ca-inline .ca-clear{border-color:var(--ca-line2);color:var(--ca-muted2)}
.ca-inline .ca-clear:hover{border-color:var(--ca-gold);color:var(--ca-gold)}

/* tables + controls */
.ca-inline .ca-table th,.ca-inline .ca-table td{border-bottom-color:var(--ca-line2)}
.ca-inline .ca-table thead th{color:var(--ca-muted2)}
.ca-inline .ca-table-summary th{color:var(--ca-muted2)}
.ca-inline .ca-table-summary td{color:var(--ca-dark)}
.ca-inline .ca-table tr.ca-total th,.ca-inline .ca-table tr.ca-total td{color:var(--ca-gold)}
.ca-inline .ca-counter{border-color:var(--ca-line2)}
.ca-inline .ca-counter button{color:var(--ca-ink2)}
.ca-inline .ca-counter button:hover{background:var(--ca-gold);color:#fff}
.ca-inline .ca-counter input{color:var(--ca-ink2);border-color:var(--ca-line2)}
.ca-inline .ca-select{background:#fff;border-color:var(--ca-line2);color:var(--ca-ink2)}
.ca-inline .ca-extra-item{border-bottom-color:var(--ca-line2)}
.ca-inline .ca-extra-name{color:var(--ca-ink2)}
.ca-inline .ca-extra-price{color:var(--ca-gold)}
.ca-inline .ca-note{color:var(--ca-ink2)}

/* CTA */
.ca-inline .ca-btn{background:var(--ca-gold);color:#fff;letter-spacing:1.2px;text-transform:uppercase;
  font-size:14px;box-shadow:0 10px 26px rgba(195,155,83,.32)}
.ca-inline .ca-btn:hover{background:#b0863f;color:#fff}
.ca-inline .ca-alert{background:#fdeceb;border-color:#f3c5c0;color:#a03027}
.ca-inline .ca-alert.is-success{background:#e8f6f4;border-color:#b7e0da;color:#14655c}

/* ---------- sidebar: price + Check Availability ---------- */
.ca-side-price{text-align:center;padding-bottom:16px;margin-bottom:16px;border-bottom:1px solid #ece4d8}
.ca-side-price .k{display:block;font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:#7c8a86}
.ca-side-price .v{display:block;font-family:'Playfair Display',serif;font-size:34px;line-height:1.2;
  color:#c39b53;font-weight:700;margin:2px 0}
.ca-side-btn{display:block;width:100%;border:0;cursor:pointer;background:#c39b53;color:#fff;
  font-weight:600;letter-spacing:1.4px;text-transform:uppercase;font-size:13px;padding:15px 20px;
  border-radius:8px;transition:.2s;box-shadow:0 10px 26px rgba(195,155,83,.3)}
.ca-side-btn:hover{background:#b0863f;transform:translateY(-2px)}
.ca-side-wa{display:flex;align-items:center;justify-content:center;gap:8px;margin-top:10px;
  padding:13px 20px;border-radius:8px;border:1px solid #25d366;color:#1c9e4d;font-weight:600;
  font-size:14px;text-decoration:none;transition:.2s}
.ca-side-wa:hover{background:#25d366;color:#fff}

/* gold accent for the availability tab in the top bar */
.cru-tab--gold.is-on{color:#c39b53!important}

/* ---------- hotel: date range + room list ---------- */
.ca-legend--2{grid-template-columns:repeat(2,1fr)}
.mt-20{margin-top:20px}
.ca-actions--left{justify-content:flex-start;margin-top:18px}

/* ---- date-range selection: make the chosen days unmistakable ----
   A thin inset ring on an already-coloured tile is easy to miss, so the picked
   check-in / check-out days get a solid dark tile, white text, a lift and a
   ring, and the nights between them get a clearly tinted band. --------- */
.ca-day.is-in-range{
  background:rgba(1,171,162,.30);color:#0e2b28;
  border-radius:0;box-shadow:none;
}
.ca-day.is-selected{
  background:var(--ca-gold)!important;color:#0e2b28!important;
  border-color:transparent!important;
  box-shadow:0 0 0 3px rgba(198,154,61,.35),0 10px 22px rgba(0,0,0,.35)!important;
  transform:translateY(-2px);
  position:relative;z-index:2;font-weight:700;
}
.ca-day.is-selected .ca-day-num{font-size:17px;font-weight:800}
.ca-day.is-selected .ca-day-price{opacity:1}

/* light (inline) variant used on the detail pages */
.ca-inline .ca-day.is-in-range{
  background:rgba(195,155,83,.20);color:#20303a;
  border-radius:0;box-shadow:none;
}
.ca-inline .ca-day.is-selected{
  background:#12291f!important;color:#fff!important;
  border-color:transparent!important;
  box-shadow:0 0 0 3px rgba(195,155,83,.55),0 10px 22px rgba(18,41,31,.28)!important;
  transform:translateY(-2px);
  position:relative;z-index:2;
}
.ca-inline .ca-day.is-selected .ca-day-num{color:#fff}
.ca-inline .ca-day.is-selected .ca-day-price{color:#e8d9b6}

/* round only the outer ends of the range so it reads as one band */
.ca-day.is-selected.is-start{border-radius:10px 0 0 10px}
.ca-day.is-selected.is-end{border-radius:0 10px 10px 0}
.ca-day.is-selected.is-start.is-end{border-radius:10px}

/* small caption under the number, e.g. "Check in" / "Check out" */
.ca-day-tag{
  display:block;font-size:9px;line-height:1.1;margin-top:2px;
  text-transform:uppercase;letter-spacing:.06em;font-weight:700;opacity:.95;
}

/* hovering a day while choosing check-out previews the range */
.ca-day.is-available:hover{outline:2px solid rgba(255,255,255,.55);outline-offset:-2px}
.ca-inline .ca-day.is-available:hover{outline:2px solid rgba(18,41,31,.35);outline-offset:-2px}

.ca-rooms{display:flex;flex-direction:column;gap:16px;margin-top:6px}
.ca-room{display:grid;grid-template-columns:200px 1fr auto;gap:20px;align-items:center;
  background:#fff;border:1px solid #ece4d8;border-radius:14px;padding:16px;
  box-shadow:0 6px 20px rgba(29,43,38,.06)}
.ca-room__img{width:200px;height:140px;border-radius:10px;background-size:cover;background-position:center;
  background-color:#1e3a34;background-image:linear-gradient(135deg,#1e3a34,#0e2b28)}
.ca-room__info h4{font-family:'Playfair Display',serif;font-size:19px;color:#12291f;margin:0 0 10px}
.ca-room__meta{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:5px}
.ca-room__meta li{font-size:14px;color:#4a5b53}
.ca-room__meta i{color:#c39b53;margin-right:7px}
.ca-room__side{display:flex;flex-direction:column;gap:10px;align-items:flex-end;min-width:180px}
.ca-room__price{text-align:right}
.ca-room__price .lbl{display:block;font-size:11px;text-transform:uppercase;letter-spacing:.09em;color:#b9c4bb}
.ca-room__price strong{font-family:'Playfair Display',serif;font-size:24px;color:var(--ca-gold)}

/* dark standalone variant */
.ca-page .ca-room{background:var(--ca-surface);border-color:var(--ca-line)}
.ca-page .ca-room__info h4{color:var(--ca-ink)}
.ca-page .ca-room__meta li{color:var(--ca-ink-soft)}
.ca-page .ca-room__price .lbl{color:var(--ca-muted)}
.ca-page .ca-room__price strong{color:var(--ca-gold)}

@media (max-width:860px){
  .ca-room{grid-template-columns:1fr}
  .ca-room__img{width:100%}
  .ca-room__side{align-items:flex-start}
  .ca-room__price{text-align:left}
}

/* hint shown between the two clicks */
.ca-pickhint{
  margin:0 0 14px;padding:9px 14px;border-radius:8px;font-size:14px;font-weight:600;
  background:rgba(195,155,83,.14);border:1px solid rgba(195,155,83,.4);color:#8a6417;
}
.ca-page .ca-pickhint{background:rgba(198,154,61,.14);border-color:rgba(198,154,61,.4);color:#e8d9b6}

/* Photo strip moved directly under the tab bar: it now leads the page instead
   of closing it, so it needs top breathing room rather than a big bottom gap. */
.cru-strip--top{margin:22px auto 6px}
@media (max-width:860px){ .cru-strip--top{margin:16px auto 4px} }

/* =========================================================
   CRUISE — package list (detail page) and listing cards
   ========================================================= */
.cru-pkgs{display:flex;flex-direction:column;gap:16px}
.cru-pkg{display:grid;grid-template-columns:1fr 240px;gap:22px;background:#fff;
  border:1px solid #ece4d8;border-radius:14px;padding:20px;box-shadow:0 6px 20px rgba(29,43,38,.06)}
.cru-pkg__main h4{font-family:'Playfair Display',serif;font-size:21px;color:#12291f;margin:0 0 10px}
.cru-pkg__meta{list-style:none;margin:0 0 10px;padding:0;display:flex;flex-wrap:wrap;gap:8px 20px}
.cru-pkg__meta li{font-size:14px;color:#4a5b53}
.cru-pkg__meta i{color:#c39b53;margin-right:7px}
.cru-pkg__desc{font-size:15px;color:#4a5b53;margin-bottom:10px}
.cru-pkg__inc{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:1fr 1fr;gap:4px 18px}
.cru-pkg__inc li{font-size:14px;color:#4a5b53}
.cru-pkg__inc i{color:#c39b53;margin-right:6px}
.cru-pkg__side{border-left:1px solid #ece4d8;padding-left:20px;display:flex;flex-direction:column;
  justify-content:center;align-items:flex-end;gap:10px;text-align:right}
.cru-pkg__price .lbl{display:block;font-size:11px;text-transform:uppercase;letter-spacing:.1em;color:#7d8b83}
.cru-pkg__price del{display:block;font-size:14px;color:#9aa69b}
.cru-pkg__price strong{font-family:'Playfair Display',serif;font-size:28px;color:#c39b53;display:block}
.cru-pkg__price .per{font-size:12px;color:#7d8b83}
.cru-pkg__btn{border:0;cursor:pointer;background:#c39b53;color:#fff;font-weight:600;letter-spacing:1.2px;
  text-transform:uppercase;font-size:12px;padding:12px 22px;border-radius:8px;transition:.2s}
.cru-pkg__btn:hover{background:#b0863f}

/* package rows inside the Check Availability pane */
.ca-package.is-unavailable{opacity:.55}
/* Dimming the whole row drops its text under the 4.5:1 contrast floor, so the
   reason a row cannot be booked is kept legible. It is the one thing the guest
   most needs to read on an unavailable row. */
.ca-package.is-unavailable .ca-room__warn{opacity:1;color:#e88a7d}
.ca-package.is-chosen{border-color:#c39b53;box-shadow:0 0 0 2px rgba(195,155,83,.35),0 10px 26px rgba(29,43,38,.1)}
/* The pane is dark, so the old #a03027 sat at 1.89:1 against it and was
   effectively invisible. This reads at 5.4:1. */
.ca-room__warn{color:#e88a7d}
.ca-pkg-includes{list-style:none;margin:8px 0 0;padding:0;display:flex;flex-wrap:wrap;gap:4px 14px}
.ca-pkg-includes li{font-size:13px;color:#b9c4bb}
.ca-pkg-includes li:before{content:"•";margin-right:6px;color:#c39b53}
.ca-pkg-total{font-size:13px;color:#4a5b53}
.ca-pkg-total strong{color:#12291f}
.ca-pkg-btn{border:0;cursor:pointer;background:#12291f;color:#fff;font-weight:600;letter-spacing:1.1px;
  text-transform:uppercase;font-size:12px;padding:11px 20px;border-radius:8px;transition:.2s}
/* White on #c39b53 is 2.58:1, so the chosen package's own button was the least
   readable thing in the pane. The darker gold holds the accent at 5.03:1. */
.ca-pkg-btn:hover{background:#8a6a2a}
.ca-package.is-chosen .ca-pkg-btn{background:#8a6a2a}

/* tour service levels: Standard / Deluxe / Private.
   Named .ca-tierpack, not .ca-package: the cruise pane already owns that
   class for its wide .ca-room rows, and reusing it reshaped them. */
.ca-tierpacks{margin-bottom:24px}
.ca-tierpack-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:14px}
.ca-tierpack{display:flex;flex-direction:column;cursor:pointer;overflow:hidden;
  border:1px solid #e2e8e3;border-radius:12px;background:#fbfcfb;
  transition:border-color .2s,box-shadow .2s,background .2s}
.ca-tierpack:hover{border-color:#c39b53;background:#fff}
.ca-tierpack.is-chosen{border-color:#c39b53;background:#fff;box-shadow:0 0 0 2px rgba(195,155,83,.3)}
.ca-tierpack__img{height:104px;background:#eef1ee center/cover no-repeat}
/* These cards are light while the pane around them is dark, so the pane's
   cream text colour would be invisible on them (1.09:1). The card states
   its own ink for everything inside it. */
.ca-tierpack__body{padding:14px 16px;flex:1;color:#12291f}
.ca-tierpack__body h5,.ca-tierpack__body h5 *{margin:0 0 6px;font-family:'Playfair Display',serif;font-size:18px;color:#12291f!important}
.ca-tierpack__desc{margin:0 0 10px;font-size:13px;color:#5c6b62;line-height:1.5}
.ca-tierpack__inc{list-style:none;margin:0 0 10px;padding:0}
.ca-tierpack__inc li{font-size:12px;color:#5c6b62;padding:1px 0}
.ca-tierpack__inc li:before{content:"•";margin-right:6px;color:#c39b53}
.ca-tierpack__rates{list-style:none;margin:0;padding:10px 0 0;border-top:1px solid #eef1ee}
.ca-tierpack__rates li{display:flex;justify-content:space-between;align-items:baseline;gap:12px;font-size:13px;padding:2px 0}
.ca-tierpack__rates li span{color:#4a5b53}
/* These cards are light, where the pane's gold reads at only 2.5:1. A
   deeper gold keeps the brand colour at 4.9:1. */
.ca-tierpack__rates li b{color:#8a6a22;font-weight:700;white-space:nowrap}
.ca-tierpack__pick{padding:11px 16px;text-align:center;background:#12291f;color:#fff;
  font-size:12px;font-weight:600;letter-spacing:.08em;text-transform:uppercase}
.ca-tierpack.is-chosen .ca-tierpack__pick{background:#c39b53}

/* cabin categories inside a chosen package.
   .ca-room is a 3-column grid, so the cabin list must span all of it. */
.ca-cabins{grid-column:1/-1;width:100%;margin-top:16px;padding-top:16px;border-top:1px dashed #d8e0da}
.ca-cabins__title{margin:0 0 12px;font-size:13px;letter-spacing:.14em;text-transform:uppercase;color:#7d8b83}
.ca-cabin{display:flex;gap:16px;align-items:center;flex-wrap:wrap;cursor:pointer;
  border:1px solid #e2e8e3;border-radius:10px;padding:14px 16px;margin-bottom:10px;
  background:#fbfcfb;transition:border-color .2s,box-shadow .2s,background .2s}
.ca-cabin:hover{border-color:#c39b53;background:#fff}
.ca-cabin.is-chosen{border-color:#c39b53;background:#fff;box-shadow:0 0 0 2px rgba(195,155,83,.3)}
.ca-cabin.is-unavailable{opacity:.5;cursor:not-allowed}
.ca-cabin.is-unavailable:hover{border-color:#e2e8e3;background:#fbfcfb}
.ca-cabin__img{width:92px;height:68px;border-radius:8px;background:#eef1ee center/cover no-repeat;flex:0 0 auto}
.ca-cabin__info{flex:1 1 220px;min-width:0}
.ca-cabin__info h6{margin:0 0 6px;font-size:16px;color:#12291f;font-weight:600}
/* The cabin row's text colours were set against the pane's tinted background and
   never re-measured once the chosen row went white, leaving everything from the
   bed type to the price itself between 1.8:1 and 3.6:1 where AA asks 4.5:1. The
   hues below are the same, only dark enough to read. */
.ca-cabin__meta{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:4px 16px;font-size:13px;color:#55625a}
.ca-cabin__meta i{margin-right:4px;color:#c39b53}
.ca-cabin__amenities{list-style:none;margin:6px 0 0;padding:0;display:flex;flex-wrap:wrap;gap:4px 12px}
.ca-cabin__amenities li{font-size:12px;color:#55625a}
.ca-cabin__amenities li:before{content:"•";margin-right:5px;color:#c39b53}
.ca-cabin__side{display:flex;flex-direction:column;align-items:flex-end;gap:6px;min-width:150px;text-align:right}
.ca-cabin__price strong{font-family:'Playfair Display',serif;font-size:22px;color:#8a6a2a;display:block;line-height:1.2}
.ca-cabin__price .lbl{font-size:11px;text-transform:uppercase;letter-spacing:.1em;color:#55625a}
.ca-cabin__price del{display:block;font-size:13px;color:#5c6a60}
.ca-cabin__total{font-size:13px;color:#4a5b53}
.ca-cabin__total strong{color:#12291f}
.ca-cabin__pick{font-size:12px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:#12291f}
/* The confirmation that a cabin is chosen went gold on the white chosen row,
   which measures 2.58:1. Darker gold keeps the accent and reads at 5.03:1. */
.ca-cabin.is-chosen .ca-cabin__pick{color:#8a6a2a}
@media (max-width:767px){
  .ca-cabin__side{align-items:flex-start;text-align:left;min-width:0;flex-basis:100%}
}

/* ---------- cruise listing page ---------- */
.crl-wrap{background:#fff;color:#20303a;padding-bottom:70px}
.crl-container{max-width:1200px;margin:0 auto;padding:0 24px}
.crl-head{background:linear-gradient(180deg,#0e2b28,#12291f);padding:130px 0 40px;color:#fff;margin-bottom:30px}
.crl-eyebrow{font-size:12px;letter-spacing:.22em;text-transform:uppercase;color:#c39b53;margin-bottom:8px}
.crl-title{font-family:'Playfair Display',serif;font-size:clamp(2rem,4.5vw,3rem);margin:0;color:#fff}
.crl-sub{margin:12px 0 0;color:rgba(255,255,255,.8);font-size:16px;max-width:640px}

.crl-filter{display:flex;gap:12px;flex-wrap:wrap;margin-bottom:26px}
.crl-filter input,.crl-filter select{padding:12px 15px;border:1px solid #ece4d8;border-radius:9px;font-size:15px;min-width:180px}
.crl-filter button{border:0;cursor:pointer;background:#c39b53;color:#fff;font-weight:600;letter-spacing:1.1px;
  text-transform:uppercase;font-size:13px;padding:12px 28px;border-radius:9px}
.crl-filter button:hover{background:#b0863f}

.crl-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.crl-card{display:block;background:#fff;border:1px solid #ece4d8;border-radius:14px;overflow:hidden;
  text-decoration:none;color:inherit;box-shadow:0 8px 24px rgba(29,43,38,.07);transition:.2s}
.crl-card:hover{transform:translateY(-4px);box-shadow:0 16px 36px rgba(29,43,38,.13);color:inherit;text-decoration:none}
.crl-card__img{height:190px;background-size:cover;background-position:center;position:relative;
  background-color:#12291f;background-image:linear-gradient(135deg,#1e3a34,#0e2b28)}
.crl-card__tag{position:absolute;left:14px;top:14px;background:rgba(18,41,31,.85);color:#fff;
  font-size:11px;letter-spacing:.1em;text-transform:uppercase;padding:6px 12px;border-radius:20px}
.crl-card__body{padding:18px}
.crl-card__body h3{font-family:'Playfair Display',serif;font-size:20px;color:#12291f;margin:0 0 6px}
.crl-card__loc{font-size:13px;color:#7d8b83;margin-bottom:12px}
.crl-card__loc i{color:#c39b53;margin-right:5px}
.crl-card__pkgs{list-style:none;margin:0 0 14px;padding:0;border-top:1px solid #f2ece1}
.crl-card__pkgs li{display:flex;justify-content:space-between;gap:10px;padding:7px 0;border-bottom:1px solid #f7f3ec;font-size:13px;color:#4a5b53}
.crl-card__pkgs b{color:#c39b53;white-space:nowrap}
.crl-card__foot{display:flex;justify-content:space-between;align-items:flex-end;gap:10px}
.crl-card__foot .lbl{display:block;font-size:11px;text-transform:uppercase;letter-spacing:.1em;color:#7d8b83}
.crl-card__foot strong{font-family:'Playfair Display',serif;font-size:22px;color:#c39b53}
.crl-card__foot .per{font-size:12px;color:#7d8b83}
.crl-card__cta{font-size:13px;font-weight:600;color:#12291f}
.crl-empty{padding:60px 0;text-align:center;color:#7d8b83}
.crl-pager{margin-top:30px}

@media (max-width:1000px){ .crl-grid{grid-template-columns:1fr 1fr} }
@media (max-width:860px){
  .crl-grid{grid-template-columns:1fr}
  .crl-head{padding-top:110px}
  .cru-pkg{grid-template-columns:1fr}
  .cru-pkg__side{border-left:0;border-top:1px solid #ece4d8;padding-left:0;padding-top:16px;align-items:flex-start;text-align:left}
  .cru-pkg__inc{grid-template-columns:1fr}
}

/* --- room photo viewer ---
   The room thumbnail is a button that opens the room's whole gallery over the
   pane. Nothing navigates away, matching the rest of Check Availability.
   Contrast measured on the backdrop: caption 17.7:1, counter 11.2:1. */
.ca-room__img.is-clickable{cursor:pointer;position:relative}
.ca-room__img.is-clickable:hover{box-shadow:0 0 0 2px #8a6a2a}
.ca-room__img.is-clickable:focus-visible{outline:2px solid #c39b53;outline-offset:2px}
/* How many photos are behind the one on show, so it reads as openable. */
.ca-room__count{
  position:absolute;right:8px;bottom:8px;
  display:inline-flex;align-items:center;gap:5px;
  padding:3px 9px;border-radius:999px;
  background:rgba(18,41,31,.82);color:#fff;
  font-size:12px;font-weight:600;letter-spacing:.03em;
}
.ca-room__count i{font-size:13px}

.ca-lightbox{
  position:fixed;inset:0;z-index:100000;
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;
  padding:24px;background:rgba(9,20,16,.94);
}
.ca-lightbox__close{
  position:absolute;top:14px;right:20px;
  width:44px;height:44px;border:0;border-radius:50%;cursor:pointer;
  background:rgba(255,255,255,.12);color:#fff;font-size:30px;line-height:1;
}
.ca-lightbox__close:hover{background:rgba(255,255,255,.24)}
.ca-lightbox__close:focus-visible{outline:2px solid #c39b53;outline-offset:2px}

.ca-lightbox__stage{
  display:flex;align-items:center;gap:14px;
  width:100%;max-width:1100px;min-height:0;flex:1 1 auto;
}
.ca-lightbox__figure{
  margin:0;flex:1 1 auto;min-width:0;min-height:0;
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;
}
/* min-height:0 above plus these keeps a tall photo inside the window instead of
   pushing the thumbnails off the bottom. */
.ca-lightbox__figure img{
  max-width:100%;max-height:70vh;width:auto;height:auto;
  border-radius:10px;box-shadow:0 20px 60px rgba(0,0,0,.5);
}
.ca-lightbox__figure figcaption{
  display:flex;align-items:baseline;gap:12px;color:#fff;font-size:15px;text-align:center;
}
.ca-lightbox__figure figcaption span{color:#d8cdb4;font-size:13px}

.ca-lightbox__nav{
  flex:0 0 auto;width:46px;height:46px;border:0;border-radius:50%;cursor:pointer;
  background:rgba(255,255,255,.12);color:#fff;font-size:18px;line-height:1;
}
.ca-lightbox__nav:hover{background:#8a6a2a}
.ca-lightbox__nav:focus-visible{outline:2px solid #c39b53;outline-offset:2px}

.ca-lightbox__thumbs{
  /* Centred and inside the stage's own width, or a long strip runs out under
     whatever the page has at the edges. */
  display:flex;gap:8px;overflow-x:auto;padding:4px;flex:0 0 auto;
  width:100%;max-width:1100px;justify-content:center;margin:0 auto;
}
.ca-lightbox__thumb{
  flex:0 0 auto;width:72px;height:54px;border:2px solid transparent;border-radius:6px;
  cursor:pointer;background-size:cover;background-position:center;opacity:.6;
  transition:opacity .18s,border-color .18s;
}
.ca-lightbox__thumb:hover{opacity:1}
.ca-lightbox__thumb.is-on{opacity:1;border-color:#c39b53}
.ca-lightbox__thumb:focus-visible{outline:2px solid #c39b53;outline-offset:2px}

@media (max-width:767px){
  .ca-lightbox{padding:12px}
  .ca-lightbox__figure img{max-height:56vh}
  .ca-lightbox__nav{width:38px;height:38px}
  .ca-lightbox__thumb{width:56px;height:42px}
}
