/* ==========================================================================
   The Real Deal Boat Tours: v2 design layer (client handoff, September 2026)
   Primary brand colour #0249A2. Georgia headings, Arial body (approved preview).
   Loaded last; it retunes the existing tokens so every page shares one palette,
   and styles the new header, homepage, booking pages, policy and footer.
   ========================================================================== */

:root {
  /* Brand */
  --rd-primary: #0249A2;
  --rd-primary-700: #013B85;
  --rd-primary-900: #012C63;
  --rd-tint: #EEF4FC;
  --rd-tint-2: #E1ECFA;
  /* Neutrals */
  --rd-ink: #10293F;
  --rd-text: #3E5367;
  --rd-muted: #5A6E80;
  --rd-line: #D6E2EF;
  --rd-white: #FFFFFF;
  --rd-on-blue: #C6DAF5;
  /* Feedback (forms only) */
  --rd-error: #B3261E;
  --rd-success: #146C43;
  /* Type */
  --rd-serif: Georgia, "Times New Roman", Times, serif;
  --rd-sans: Arial, "Helvetica Neue", Helvetica, sans-serif;
  /* Shape and rhythm */
  --rd-r-btn: 4px;
  --rd-r-field: 8px;
  --rd-r-card: 12px;
  --rd-shadow: 0 12px 28px rgba(1, 44, 99, 0.08);
  --rd-shadow-lg: 0 22px 55px rgba(1, 30, 70, 0.22);
  --rd-wrap: 1220px;
  --rd-gutter: 34px;
  --rd-section: 76px;
  --rd-header-h: 80px;

  /* Retune the existing design-system tokens (tokens.css, components.css) */
  --rdbt-bg: #FFFFFF;
  --rdbt-surface: var(--rd-tint);
  --rdbt-deep: var(--rd-primary-700);
  --rdbt-ink: var(--rd-ink);
  --rdbt-ink-muted: var(--rd-muted);
  --rdbt-line: var(--rd-line);
  --rdbt-accent: var(--rd-primary);
  --rdbt-accent-ink: var(--rd-primary-700);
  --rdbt-cta: var(--rd-primary);
  --rdbt-cta-hover: var(--rd-primary-700);
  --rdbt-on-deep: var(--rd-on-blue);
  --rdbt-scrim: 1, 30, 70;
  --rdbt-font-display: var(--rd-serif);
  --rdbt-font-body: var(--rd-sans);
  --rdbt-overlay: linear-gradient(180deg, rgba(1, 30, 70, 0) 0%, rgba(1, 30, 70, 0.28) 45%, rgba(1, 30, 70, 0.72) 100%);
  --rdbt-shadow-navy: 0 18px 40px -24px rgba(1, 44, 99, 0.35);
  /* One content width for the header, the new sections and the older page sections */
  --rdbt-wide: var(--rd-wrap);
  --rdbt-gutter: var(--rd-gutter);
}
@media (max-width: 1099px) { :root { --rd-header-h: 68px; } }
@media (max-width: 650px) { :root { --rd-gutter: 20px; --rd-section: 56px; } }

/* ---------- Base ---------- */
.rdbt2-header, .rdbt2-header *, .rdbt2-drawer, .rdbt2-drawer *, .rdbt2-wa-float, .rdbt2-btn,
.rdbk, .rdbk *, .rdbk *::before, .rdbk *::after, .rdbk-policy, .rdbk-policy *,
.elementor .e-con[class*="rdbt2-"], .elementor .e-con[class*="rdbk-"] { box-sizing: border-box; }
body.rdbt-v2 {
  margin: 0;
  font-family: var(--rd-sans);
  line-height: 1.65; /* unitless: the kit's 1.65em is inherited as a fixed 28px by small text */
  color: var(--rd-text);
  background: #FFFFFF;
  -webkit-font-smoothing: antialiased;
  overflow-x: clip;
}
body.rdbt-v2 h1, body.rdbt-v2 h2 { font-family: var(--rd-serif); font-weight: 400; color: var(--rd-ink); }
body.rdbt-v2 a { color: var(--rd-primary); }
body.rdbt-v2 a:hover { color: var(--rd-primary-700); }
body.rdbt-v2 :focus-visible { outline: 3px solid var(--rd-primary); outline-offset: 3px; }
html.rdbt2-menu-open, html.rdbt2-menu-open body { overflow: hidden; }
.rdbt2-main { display: block; }
.rdbt2-main:focus { outline: none; }
/* Links inside running text are underlined so they do not rely on colour alone */
body.rdbt-v2 .elementor-widget-text-editor p a:not(.elementor-button), body.rdbt-v2 .rdbk-privacy a, body.rdbt-v2 .rdbk-fine a { text-decoration: underline; text-underline-offset: 3px; }
.screen-reader-text:focus, .skip-link:focus {
  position: fixed !important; top: 8px; left: 8px; z-index: 100001; width: auto; height: auto; clip: auto; clip-path: none;
  padding: 12px 18px; background: #FFFFFF; color: var(--rd-primary); font-weight: 700; border-radius: var(--rd-r-btn); box-shadow: var(--rd-shadow);
}

/* Neutralise Elementor container/widget spacing on v2 components (layout comes from this file). */
.elementor .e-con[class*="rdbt2-"], .elementor .e-con[class*="rdbk-"] {
  --padding-top: 0px; --padding-bottom: 0px; --padding-left: 0px; --padding-right: 0px;
  --gap: 0px; --row-gap: 0px; --column-gap: 0px; --margin-top: 0px; --margin-bottom: 0px;
  --width: auto; --container-max-width: none; --content-width: none;
  padding: 0; margin: 0; gap: 0; min-height: 0;
}
.elementor .elementor-widget[class*="rdbt2-"], .elementor .elementor-widget[class*="rdbk-"] { margin: 0; --kit-widget-spacing: 0px; }
.elementor .elementor-widget[class*="rdbt2-"] .elementor-widget-container { margin: 0; padding: 0; }
.elementor [class*="rdbt2-"] .elementor-heading-title { margin: 0; }

/* Content column */
.elementor .e-con.rdbt2-wrap { width: 100%; max-width: calc(var(--rd-wrap) + 2 * var(--rd-gutter)); margin-inline: auto; padding-inline: var(--rd-gutter); }
.elementor .e-con.rdbt2-section { width: 100%; max-width: none; padding-block: var(--rd-section); background: #FFFFFF; }
.elementor .e-con.rdbt2-section--pale { background: var(--rd-tint); }

/* ---------- Type components ---------- */
.elementor .rdbt2-kicker .elementor-heading-title, .rdbt2-kicker-text {
  font-family: var(--rd-sans); font-size: 0.75rem; line-height: 1.4; font-weight: 700;
  letter-spacing: 0.2em; text-transform: uppercase; color: var(--rd-primary);
}
.elementor .rdbt2-kicker--light .elementor-heading-title { color: var(--rd-on-blue); }
.elementor .rdbt2-h2 .elementor-heading-title {
  font-family: var(--rd-serif); font-weight: 400; font-size: clamp(2rem, 3.4vw, 3rem); line-height: 1.1; letter-spacing: -0.01em; color: var(--rd-ink);
}
.elementor .e-con.rdbt2-intro { display: flex; flex-direction: column; align-items: center; text-align: center; gap: 12px; width: 100%; max-width: 820px; margin: 0 auto 40px; }
.elementor .rdbt2-intro .elementor-widget { width: 100%; }
.elementor .rdbt2-lead, .elementor .rdbt2-lead p { font-size: 1.0625rem; line-height: 1.6; color: var(--rd-muted); margin: 0; }

/* ---------- Buttons ---------- */
.rdbt2-btn,
.elementor .elementor-widget-button[class*="rdbt2-w-"] .elementor-button {
  display: inline-flex; align-items: center; justify-content: center; gap: 8px;
  min-height: 48px; padding: 14px 24px; border: 2px solid transparent; border-radius: var(--rd-r-btn);
  font-family: var(--rd-sans); font-weight: 700; font-size: 0.8125rem; line-height: 1.2; letter-spacing: 0.1em; text-transform: uppercase;
  text-decoration: none; cursor: pointer; text-align: center;
  transition: background-color 160ms ease, color 160ms ease, border-color 160ms ease, transform 160ms ease;
}
.elementor .elementor-widget-button[class*="rdbt2-w-"] .elementor-button .elementor-button-text { text-decoration: none; }
/* Primary: #0249A2 */
.rdbt2-btn--primary,
.elementor .elementor-widget-button.rdbt2-w-primary .elementor-button { background: var(--rd-primary); border-color: var(--rd-primary); color: #FFFFFF; }
.rdbt2-btn--primary:hover, .rdbt2-btn--primary:focus-visible,
.elementor .elementor-widget-button.rdbt2-w-primary .elementor-button:hover,
.elementor .elementor-widget-button.rdbt2-w-primary .elementor-button:focus-visible { background: var(--rd-primary-700); border-color: var(--rd-primary-700); color: #FFFFFF; }
/* Inverse: primary on brand-blue grounds */
.rdbt2-btn--inverse,
.elementor .elementor-widget-button.rdbt2-w-inverse .elementor-button { background: #FFFFFF; border-color: #FFFFFF; color: var(--rd-primary); }
.rdbt2-btn--inverse:hover, .rdbt2-btn--inverse:focus-visible,
.elementor .elementor-widget-button.rdbt2-w-inverse .elementor-button:hover,
.elementor .elementor-widget-button.rdbt2-w-inverse .elementor-button:focus-visible { background: var(--rd-tint-2); border-color: var(--rd-tint-2); color: var(--rd-primary-900); }
/* Outline on light grounds */
.rdbt2-btn--outline,
.elementor .elementor-widget-button.rdbt2-w-outline .elementor-button { background: transparent; border-color: var(--rd-primary); color: var(--rd-primary); }
.rdbt2-btn--outline:hover, .rdbt2-btn--outline:focus-visible,
.elementor .elementor-widget-button.rdbt2-w-outline .elementor-button:hover,
.elementor .elementor-widget-button.rdbt2-w-outline .elementor-button:focus-visible { background: var(--rd-primary); border-color: var(--rd-primary); color: #FFFFFF; }
/* Ghost on brand-blue grounds */
.rdbt2-btn--ghost,
.elementor .elementor-widget-button.rdbt2-w-ghost .elementor-button { background: rgba(1, 30, 70, 0.22); border-color: rgba(255, 255, 255, 0.9); color: #FFFFFF; }
.rdbt2-btn--ghost:hover, .rdbt2-btn--ghost:focus-visible,
.elementor .elementor-widget-button.rdbt2-w-ghost .elementor-button:hover,
.elementor .elementor-widget-button.rdbt2-w-ghost .elementor-button:focus-visible { background: #FFFFFF; border-color: #FFFFFF; color: var(--rd-primary); }
.rdbt2-btn:active, .elementor .elementor-widget-button[class*="rdbt2-w-"] .elementor-button:active { transform: translateY(1px); }
/* Link buttons: outrank the global link colour (body.rdbt-v2 a) so labels stay readable */
body.rdbt-v2 a.rdbt2-btn--primary, body.rdbt-v2 a.rdbt2-btn--primary:hover, body.rdbt-v2 a.rdbt2-btn--primary:focus-visible { color: #FFFFFF; }
body.rdbt-v2 a.rdbt2-btn--inverse { color: var(--rd-primary); }
body.rdbt-v2 a.rdbt2-btn--inverse:hover, body.rdbt-v2 a.rdbt2-btn--inverse:focus-visible { color: var(--rd-primary-900); }
body.rdbt-v2 a.rdbt2-btn--outline { color: var(--rd-primary); }
body.rdbt-v2 a.rdbt2-btn--outline:hover, body.rdbt-v2 a.rdbt2-btn--outline:focus-visible { color: #FFFFFF; }
body.rdbt-v2 a.rdbt2-btn--ghost { color: #FFFFFF; }
body.rdbt-v2 a.rdbt2-btn--ghost:hover, body.rdbt-v2 a.rdbt2-btn--ghost:focus-visible { color: var(--rd-primary); }
/* Focus on blue grounds must be white to stay visible. */
.rdbt2-header :focus-visible, .rdbt2-hero :focus-visible, .rdbt2-feature :focus-visible, .rdbt2-footer-cta :focus-visible, .rdbt2-footer :focus-visible { outline-color: #FFFFFF !important; }

/* Existing Elementor buttons on inner pages pick up the brand colour through the retuned tokens. */
.elementor .elementor-widget-button.rdbt-w-bookline .elementor-button { border-color: var(--rd-primary); color: var(--rd-primary); }

/* ==========================================================================
   Header
   ========================================================================== */
.rdbt2-header {
  position: sticky; top: var(--wp-admin--admin-bar--height, 0px); z-index: 1000;
  background: var(--rd-primary); color: #FFFFFF;
  box-shadow: 0 1px 0 rgba(255, 255, 255, 0.08);
  transition: box-shadow 200ms ease;
}
html.rdbt-scrolled .rdbt2-header { box-shadow: 0 10px 26px -14px rgba(1, 30, 70, 0.55); }
.rdbt2-header__bar {
  display: flex; align-items: center; justify-content: space-between; gap: 20px;
  max-width: calc(var(--rd-wrap) + 2 * var(--rd-gutter)); min-height: var(--rd-header-h);
  margin: 0 auto; padding: 0 var(--rd-gutter);
}
.rdbt2-brand { flex: 0 0 auto; display: inline-flex; align-items: center; padding: 6px 12px; background: #FFFFFF; border-radius: 8px; line-height: 0; }
.rdbt2-brand__img { display: block; width: auto; height: 44px; max-width: none; }
.rdbt2-nav { flex: 1 1 auto; display: flex; justify-content: flex-end; }
.rdbt2-nav__list { display: flex; align-items: center; gap: clamp(14px, 1.7vw, 26px); margin: 0; padding: 0; list-style: none; }
.rdbt2-nav__list li { margin: 0; padding: 0; }
.rdbt2-nav__list a {
  position: relative; display: inline-flex; align-items: center; min-height: 44px; padding: 0 2px;
  font-family: var(--rd-sans); font-size: 0.8125rem; font-weight: 700; letter-spacing: 0.09em; text-transform: uppercase;
  color: #FFFFFF !important; text-decoration: none; white-space: nowrap;
}
.rdbt2-nav__list a::after {
  content: ""; position: absolute; left: 0; right: 0; bottom: 8px; height: 2px; background: #FFFFFF;
  transform: scaleX(0); transform-origin: left; transition: transform 160ms ease;
}
.rdbt2-nav__list a:hover::after, .rdbt2-nav__list a:focus-visible::after, .rdbt2-nav__list .current-menu-item > a::after, .rdbt2-nav__list a[aria-current="page"]::after { transform: scaleX(1); }
.rdbt2-header__actions { flex: 0 0 auto; display: flex; align-items: center; gap: 14px; }
.rdbt2-social { display: flex; align-items: center; gap: 8px; }
.rdbt2-social__link { display: inline-flex; align-items: center; justify-content: center; width: 36px; height: 36px; border-radius: 9px; color: #FFFFFF !important; text-decoration: none; transition: transform 150ms ease, opacity 150ms ease; }
.rdbt2-social__link svg { width: 19px; height: 19px; fill: currentColor; }
.rdbt2-social__link--facebook { background: #3B5998; }
.rdbt2-social__link--instagram { background: #262626; }
.rdbt2-social__link:hover { transform: translateY(-2px); opacity: 0.9; }
.rdbt2-header__book { min-height: 46px; padding: 12px 20px; }
.rdbt2-burger { display: none; }

@media (max-width: 1239px) { .rdbt2-header__social { display: none; } }
@media (max-width: 1099px) {
  .rdbt2-nav { display: none; }
  .rdbt2-brand__img { height: 38px; }
  .rdbt2-brand { padding: 5px 10px; }
  .rdbt2-burger {
    display: inline-flex; align-items: center; gap: 8px; min-height: 44px; min-width: 44px; padding: 0 12px;
    background: transparent; border: 2px solid rgba(255, 255, 255, 0.85); border-radius: var(--rd-r-btn);
    color: #FFFFFF; font: 700 0.75rem/1 var(--rd-sans); letter-spacing: 0.1em; text-transform: uppercase; cursor: pointer;
  }
  .rdbt2-burger:focus { background: transparent; color: #FFFFFF; }
  .rdbt2-burger:hover { background: rgba(255, 255, 255, 0.12); color: #FFFFFF; }
  .rdbt2-burger__icon { position: relative; display: inline-flex; flex-direction: column; justify-content: space-between; width: 18px; height: 13px; }
  .rdbt2-burger__icon span { display: block; height: 2px; background: currentColor; border-radius: 2px; transition: transform 180ms ease, opacity 180ms ease; }
  .rdbt2-burger[aria-expanded="true"] .rdbt2-burger__icon span:nth-child(1) { transform: translateY(5.5px) rotate(45deg); }
  .rdbt2-burger[aria-expanded="true"] .rdbt2-burger__icon span:nth-child(2) { opacity: 0; }
  .rdbt2-burger[aria-expanded="true"] .rdbt2-burger__icon span:nth-child(3) { transform: translateY(-5.5px) rotate(-45deg); }
}
@media (max-width: 480px) {
  .rdbt2-header__bar { gap: 10px; padding: 0 14px; }
  .rdbt2-brand__img { height: 30px; }
  .rdbt2-brand { padding: 5px 8px; }
  .rdbt2-header__actions { gap: 8px; }
  .rdbt2-header__book { min-height: 44px; padding: 10px 12px; font-size: 0.75rem; letter-spacing: 0.06em; }
  .rdbt2-burger { padding: 0 10px; }
  .rdbt2-burger__label { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
}
@media (max-width: 359px) { .rdbt2-brand__img { height: 24px; } .rdbt2-header__book { padding: 10px; } }

/* Drawer (mobile / tablet menu) */
.rdbt2-drawer {
  position: fixed; left: 0; right: 0; bottom: 0;
  top: calc(var(--wp-admin--admin-bar--height, 0px) + var(--rd-header-h));
  z-index: 999; overflow-y: auto; overscroll-behavior: contain;
  background: #FFFFFF; color: var(--rd-ink);
  padding: 12px var(--rd-gutter) 32px;
  opacity: 0; transform: translateY(-6px); transition: opacity 180ms ease, transform 180ms ease;
}
.rdbt2-drawer.is-open { opacity: 1; transform: none; }
.rdbt2-drawer[hidden] { display: none; }
.rdbt2-drawer__list { margin: 0 auto; padding: 0; list-style: none; max-width: 640px; }
.rdbt2-drawer__list li { margin: 0; border-bottom: 1px solid var(--rd-line); }
.rdbt2-drawer__list a {
  display: flex; align-items: center; min-height: 56px; padding: 6px 4px;
  font-family: var(--rd-sans); font-size: 1rem; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase;
  color: var(--rd-ink) !important; text-decoration: none;
}
.rdbt2-drawer__list .current-menu-item > a, .rdbt2-drawer__list a[aria-current="page"] { color: var(--rd-primary) !important; box-shadow: inset 4px 0 0 var(--rd-primary); padding-left: 14px; }
.rdbt2-drawer__actions { display: flex; flex-direction: column; gap: 12px; max-width: 640px; margin: 22px auto 0; }
.rdbt2-drawer__book { width: 100%; min-height: 54px; font-size: 0.875rem; }
.rdbt2-drawer__link { display: inline-flex; align-items: center; justify-content: center; gap: 10px; min-height: 50px; border: 2px solid var(--rd-line); border-radius: var(--rd-r-btn); color: var(--rd-primary) !important; font-weight: 700; text-decoration: none; }
.rdbt2-drawer__link svg { width: 22px; height: 22px; color: #1FA855; }
@media (min-width: 1100px) { .rdbt2-drawer { display: none !important; } }

/* Floating WhatsApp */
.rdbt2-wa-float {
  position: fixed; right: 18px; bottom: 18px; z-index: 990;
  display: inline-flex; align-items: center; gap: 8px; min-height: 52px; padding: 0 18px 0 14px;
  background: #107C41; color: #FFFFFF !important; border-radius: 999px; text-decoration: none; /* darker WhatsApp green: 5.3:1 with white text */
  font: 700 0.875rem/1 var(--rd-sans); box-shadow: 0 10px 24px rgba(0, 0, 0, 0.22);
  transition: transform 150ms ease, background-color 150ms ease;
}
.rdbt2-wa-float svg { width: 26px; height: 26px; }
.rdbt2-wa-float:hover { background: #0B6E38; transform: translateY(-2px); }
.rdbt2-wa-float:focus-visible { outline: 3px solid var(--rd-primary) !important; outline-offset: 3px; }
html.rdbt2-menu-open .rdbt2-wa-float { display: none; }
html.rdbt2-wa-panel .rdbt2-wa-float { opacity: 0; visibility: hidden; transform: translateY(12px); transition: transform 200ms ease, opacity 200ms ease, visibility 0s linear 200ms; }
@media (max-width: 860px) {
  /* Keeps clear of the sticky BOOK NOW bar on booking pages, and of the hero buttons until the visitor scrolls */
  body.rdbt-booking-page .rdbt2-wa-float { bottom: 84px; }
  .rdbt2-wa-float { transition: transform 200ms ease, opacity 200ms ease, visibility 0s linear 0s; }
  html.rdbt-js:not(.rdbt2-wa-show) .rdbt2-wa-float { opacity: 0; visibility: hidden; transform: translateY(12px); transition: transform 200ms ease, opacity 200ms ease, visibility 0s linear 200ms; }
}
@media (max-width: 650px) {
  .rdbt2-wa-float { right: 14px; bottom: 14px; width: 54px; min-height: 54px; padding: 0; justify-content: center; }
  .rdbt2-wa-float__text { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
  body.rdbt-booking-page .rdbt2-wa-float { bottom: 84px; }
}

/* The previous Elementor header template is replaced by the theme header while v2 is on. */
body.rdbt-v2 .rdbt-mobile-bar { display: none !important; }
@media (max-width: 767px) { body.rdbt-v2 { padding-bottom: 0; } } /* that bar's reserved space is no longer needed */

/* ==========================================================================
   Homepage
   ========================================================================== */
/* Hero: split layout on brand blue */
.elementor .e-con.rdbt2-hero {
  width: 100%; max-width: none; overflow: hidden;
  padding: 58px 0 67px;
  background: linear-gradient(125deg, var(--rd-primary-900) 0%, var(--rd-primary) 55%, #0A5CBF 100%);
  color: #FFFFFF;
}
.elementor .e-con.rdbt2-hero__layout { display: grid; grid-template-columns: minmax(0, 48fr) minmax(0, 52fr); gap: 20px; align-items: center; }
.elementor .e-con.rdbt2-hero__copy { display: flex; flex-direction: column; align-items: flex-start; }
.elementor .rdbt2-hero__title .elementor-heading-title {
  margin: 17px 0 !important; font-family: var(--rd-serif); font-weight: 400;
  font-size: clamp(2.44rem, 3.55vw, 3.625rem); line-height: 1.11; letter-spacing: -0.024em; color: #FFFFFF; max-width: 640px;
}
.elementor .rdbt2-hero__lede p { max-width: 550px; margin: 0 0 30px; font-size: 1.0625rem; line-height: 1.7; color: rgba(255, 255, 255, 0.95); }
.elementor .e-con.rdbt2-actions { display: flex; flex-direction: row; flex-wrap: wrap; gap: 12px; width: auto; }
.elementor .rdbt2-hero .rdbt2-actions .elementor-button { min-height: 52px; padding: 16px 24px; font-size: 0.8125rem; }
.elementor .rdbt2-hero__proof p { margin: 26px 0 0; font-size: 0.75rem; letter-spacing: 0.04em; line-height: 1.8; color: var(--rd-on-blue); }
.elementor .rdbt2-hero__proof span { margin: 0 6px; color: #E4B069; }
.elementor .e-con.rdbt2-hero__frame {
  position: relative; aspect-ratio: 1.12; overflow: hidden; border-radius: var(--rd-r-card) 0 0 var(--rd-r-card);
  background: var(--rd-primary-700); box-shadow: var(--rd-shadow-lg); transform: translateX(15px);
}
.elementor .rdbt2-hero__img, .elementor .rdbt2-hero__img img { width: 100%; height: 100%; }
.elementor .rdbt2-hero__img img { display: block; object-fit: cover; object-position: center 54%; }
.elementor .elementor-widget.rdbt2-hero__caption { position: absolute; left: 0; right: 0; bottom: 0; }
.elementor .rdbt2-hero__caption p { margin: 0; padding: 22px 24px 17px; background: linear-gradient(transparent, rgba(1, 25, 60, 0.88)); color: #FFFFFF; font-size: 0.8125rem; font-weight: 700; letter-spacing: 0.06em; }
@media (max-width: 850px) {
  .elementor .rdbt2-hero__title br { display: none; }
  .elementor .e-con.rdbt2-hero { padding: 24px 0 48px; }
  .elementor .e-con.rdbt2-hero__layout { grid-template-columns: 1fr; gap: 24px; }
  .elementor .e-con.rdbt2-hero__frame { order: -1; transform: none; border-radius: 9px; aspect-ratio: 1.36; }
  .elementor .rdbt2-hero__title .elementor-heading-title { font-size: clamp(2.3rem, 6vw, 3.75rem); }
}
@media (max-width: 650px) {
  .elementor .e-con.rdbt2-hero__frame { aspect-ratio: 1.26; }
  .elementor .rdbt2-hero__img img { object-position: center 56%; }
  .elementor .rdbt2-hero__title .elementor-heading-title { font-size: 2.3rem; line-height: 1.12; }
  .elementor .rdbt2-hero .e-con.rdbt2-actions { width: 100%; }
  .elementor .rdbt2-hero .rdbt2-actions > .elementor-widget { flex: 1 1 100%; }
  .elementor .rdbt2-hero .rdbt2-actions .elementor-button { width: 100%; }
  .elementor .rdbt2-hero__caption p { font-size: 0.6875rem; padding: 16px 16px 12px; }
}

/* Proof strip */
.elementor .e-con.rdbt2-proof { width: 100%; max-width: none; background: #FFFFFF; border-bottom: 1px solid var(--rd-line); }
.elementor .e-con.rdbt2-proof__grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); padding-block: 22px; }
.elementor .rdbt2-proof__item { padding: 8px 18px; border-right: 1px solid var(--rd-line); }
.elementor .rdbt2-proof__item:first-child { padding-left: 0; }
.elementor .rdbt2-proof__item:last-child { border-right: 0; }
.elementor .rdbt2-proof__item p { margin: 0; font-size: 0.8125rem; line-height: 1.45; color: var(--rd-muted); }
.elementor .rdbt2-proof__item strong { display: block; margin-bottom: 5px; font-size: 0.875rem; color: var(--rd-primary); }
@media (max-width: 850px) {
  .elementor .e-con.rdbt2-proof__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px 0; }
  .elementor .rdbt2-proof__item:nth-child(2) { border-right: 0; }
  .elementor .rdbt2-proof__item:nth-child(3) { padding-left: 0; }
}

/* Experience cards */
.elementor .e-con.rdbt2-cards { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 25px; width: 100%; max-width: 1120px; margin: 0 auto; }
.elementor .e-con.rdbt2-card {
  display: flex; flex-direction: column; overflow: hidden;
  background: #FFFFFF; border: 1px solid var(--rd-line); border-radius: var(--rd-r-card); box-shadow: var(--rd-shadow);
}
.elementor .rdbt2-card__photo { width: 100%; height: 255px; overflow: hidden; background: var(--rd-tint-2); }
.elementor .rdbt2-card__photo a, .elementor .rdbt2-card__photo img { display: block; width: 100%; height: 100%; }
.elementor .rdbt2-card__photo img { object-fit: cover; object-position: center; transition: transform 500ms ease; }
.elementor .e-con.rdbt2-card:hover .rdbt2-card__photo img { transform: scale(1.03); }
.elementor .rdbt2-card__photo--top img { object-position: center 40%; }
.elementor .e-con.rdbt2-card__body { display: flex; flex-direction: column; flex: 1 1 auto; padding: 26px 30px 29px; }
.elementor .rdbt2-card__title .elementor-heading-title { margin: 0 0 12px; font-family: var(--rd-serif); font-weight: 400; font-size: 1.8rem; line-height: 1.12; color: var(--rd-ink); }
.elementor .rdbt2-card__title a { color: inherit; text-decoration: none; }
.elementor .rdbt2-card__title a:hover { color: var(--rd-primary); text-decoration: underline; text-underline-offset: 4px; }
.elementor .rdbt2-card__desc p { margin: 0 0 16px; max-width: 46ch; font-size: 0.9375rem; line-height: 1.6; color: var(--rd-text); }
.elementor .rdbt2-card__meta { margin-top: auto; padding-top: 14px; border-top: 1px solid var(--rd-line); }
.elementor .rdbt2-card__meta p { margin: 0; font-size: 0.875rem; line-height: 1.65; color: var(--rd-ink); }
.elementor .rdbt2-card__meta .rdbt2-price { margin-top: 3px; font-size: 1.125rem; font-weight: 700; color: var(--rd-ink); }
.elementor .rdbt2-card__meta .rdbt2-extra { color: var(--rd-muted); }
.elementor .rdbt2-card__details details { margin-top: 14px; padding-top: 11px; border-top: 1px solid var(--rd-line); font-size: 0.875rem; color: var(--rd-text); }
.elementor .rdbt2-card__details summary { min-height: 32px; display: flex; align-items: center; gap: 8px; cursor: pointer; font-weight: 700; color: var(--rd-primary); list-style: none; }
.elementor .rdbt2-card__details summary::-webkit-details-marker { display: none; }
.elementor .rdbt2-card__details summary::before { content: ""; width: 8px; height: 8px; border-right: 2px solid currentColor; border-bottom: 2px solid currentColor; transform: rotate(-45deg); transition: transform 150ms ease; }
.elementor .rdbt2-card__details details[open] summary::before { transform: rotate(45deg); }
.elementor .rdbt2-card__details details p { margin: 9px 0 0; line-height: 1.6; }
.elementor .rdbt2-card .elementor-widget-button { margin-top: 20px; align-self: flex-start; }
@media (max-width: 850px) {
  .elementor .rdbt2-card__photo { height: 215px; }
  .elementor .e-con.rdbt2-card__body { padding: 22px; }
}
@media (max-width: 650px) {
  .elementor .e-con.rdbt2-cards { grid-template-columns: 1fr; gap: 20px; }
  .elementor .rdbt2-card__photo { height: 235px; }
  .elementor .rdbt2-card__title .elementor-heading-title { font-size: 1.65rem; }
  .elementor .rdbt2-card .elementor-widget-button { align-self: stretch; }
  .elementor .rdbt2-card .elementor-widget-button .elementor-button { width: 100%; }
}

/* Booking strip on the homepage (entry to the five booking tabs) */
.elementor .e-con.rdbt2-bookbar {
  display: flex; flex-direction: column; align-items: center; gap: 14px; width: 100%; max-width: 1120px; margin: 34px auto 0; padding: 24px;
  background: #FFFFFF; border: 1px solid var(--rd-line); border-radius: var(--rd-r-card); text-align: center;
}
.elementor .rdbt2-bookbar__label p { margin: 0; font-weight: 700; color: var(--rd-ink); }

/* Cruise guests */
.elementor .e-con.rdbt2-cruise { width: 100%; max-width: none; padding-block: 62px; background: linear-gradient(120deg, #EAF2FC, #FAFCFF); border-bottom: 1px solid var(--rd-line); }
.elementor .e-con.rdbt2-cruise__grid { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(0, 0.75fr); gap: 66px; align-items: center; }
.elementor .rdbt2-cruise__eyebrow p { display: flex; align-items: center; gap: 10px; margin: 0; font-size: 0.75rem; font-weight: 700; letter-spacing: 0.18em; text-transform: uppercase; color: var(--rd-primary); }
.elementor .rdbt2-cruise__eyebrow svg { width: 34px; height: 34px; flex: none; }
.elementor .rdbt2-cruise__title .elementor-heading-title { margin: 18px 0 19px !important; max-width: 650px; font-family: var(--rd-serif); font-weight: 400; font-size: clamp(2.1rem, 3.65vw, 3.25rem); line-height: 1.08; color: var(--rd-primary-900); }
.elementor .rdbt2-cruise__body p { max-width: 670px; margin: 0 0 14px; font-size: 0.9375rem; line-height: 1.7; color: var(--rd-text); }
.elementor .e-con.rdbt2-cruise__options { display: flex; flex-direction: column; gap: 12px; margin-top: 22px; max-width: 640px; }
.elementor .e-con.rdbt2-cruise__option {
  display: flex; flex-direction: row; align-items: center; justify-content: space-between; gap: 16px;
  padding: 14px 16px 14px 20px; background: #FFFFFF; border: 1px solid var(--rd-line); border-radius: 10px;
}
.elementor .rdbt2-cruise__option-text p { margin: 0; font-size: 0.875rem; color: var(--rd-muted); line-height: 1.45; }
.elementor .rdbt2-cruise__option-text strong { display: block; font-size: 0.9375rem; color: var(--rd-ink); }
.elementor .rdbt2-cruise__option .elementor-widget-button { flex: 0 0 auto; }
.elementor .e-con.rdbt2-cruise__card { padding: 26px 28px; background: #FFFFFF; border: 1px solid var(--rd-line); border-radius: var(--rd-r-card); box-shadow: 0 18px 40px rgba(1, 44, 99, 0.09); }
.elementor .rdbt2-cruise__card-title p { margin: 0 0 13px; font-size: 1.0625rem; font-weight: 700; color: var(--rd-primary-900); }
.elementor .rdbt2-cruise__points ol { margin: 0; padding: 0; list-style: none; }
.elementor .rdbt2-cruise__points li { display: flex; gap: 16px; align-items: flex-start; padding: 15px 0; border-top: 1px solid var(--rd-line); }
.elementor .rdbt2-cruise__points b { font-family: var(--rd-serif); font-size: 1.45rem; font-weight: 400; line-height: 1; color: var(--rd-primary); }
.elementor .rdbt2-cruise__points strong { display: block; margin: 2px 0 4px; font-size: 0.875rem; color: var(--rd-primary-900); }
.elementor .rdbt2-cruise__points small { display: block; font-size: 0.8125rem; line-height: 1.5; color: var(--rd-muted); }
@media (max-width: 850px) {
  .elementor .e-con.rdbt2-cruise { padding-block: 46px; }
  .elementor .e-con.rdbt2-cruise__grid { grid-template-columns: 1fr; gap: 25px; }
}
@media (max-width: 520px) {
  .elementor .e-con.rdbt2-cruise__option { flex-direction: column; align-items: stretch; }
  .elementor .rdbt2-cruise__option .elementor-button { width: 100%; }
  .elementor .e-con.rdbt2-cruise__card { padding: 20px; }
}

/* Owner */
.elementor .e-con.rdbt2-owner__grid { display: grid; grid-template-columns: minmax(0, 39fr) minmax(0, 61fr); gap: 30px 45px; align-items: center; }
.elementor .rdbt2-owner__photo { overflow: hidden; border-radius: var(--rd-r-card); max-height: 575px; }
.elementor .rdbt2-owner__photo img { display: block; width: 100%; height: 100%; object-fit: cover; }
.elementor .e-con.rdbt2-owner__text { padding: 20px 25px; display: flex; flex-direction: column; align-items: flex-start; }
.elementor .rdbt2-owner__title .elementor-heading-title { margin: 15px 0 !important; font-family: var(--rd-serif); font-weight: 400; font-size: clamp(2.4rem, 4vw, 3.6rem); line-height: 1.08; color: var(--rd-ink); }
.elementor .rdbt2-owner__body p { max-width: 67ch; margin: 0 0 14px; font-size: 0.9375rem; line-height: 1.7; color: var(--rd-text); }
.elementor .rdbt2-owner__text .elementor-widget-button { margin-top: 12px; }
@media (max-width: 850px) {
  .elementor .e-con.rdbt2-owner__grid { grid-template-columns: 1fr; }
  .elementor .rdbt2-owner__photo { max-height: 440px; }
  .elementor .e-con.rdbt2-owner__text { padding: 10px 0; }
}
@media (max-width: 650px) { .elementor .rdbt2-owner__photo { max-height: 380px; } }

/* Reviews */
.elementor .rdbt2-reviews__widget { min-height: 230px; }
.elementor .rdbt2-reviews__more p { margin: 22px 0 0; text-align: center; font-size: 0.875rem; }
.elementor .rdbt2-reviews__more a { font-weight: 700; text-decoration: underline; text-underline-offset: 3px; }

/* Gallery */
.elementor .e-con.rdbt2-gallery { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; }
.elementor .rdbt2-gallery__item, .elementor .rdbt2-gallery__item img { width: 100%; }
.elementor .rdbt2-gallery__item img { display: block; height: 245px; object-fit: cover; border-radius: 8px; }
.elementor .rdbt2-gallery__item--up img { object-position: center 36%; }
@media (max-width: 900px) { .elementor .e-con.rdbt2-gallery { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 650px) { .elementor .e-con.rdbt2-gallery { gap: 8px; } .elementor .rdbt2-gallery__item img { height: 150px; } }

/* Why choose us */
.elementor .e-con.rdbt2-why { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 18px; }
.elementor .rdbt2-why__item { padding: 25px; background: #FFFFFF; border: 1px solid var(--rd-line); border-radius: 9px; }
.elementor .rdbt2-why__item .rdbt2-why__icon { display: grid; place-items: center; width: 42px; height: 42px; border-radius: 50%; background: var(--rd-tint-2); color: var(--rd-primary); font-size: 1.35rem; line-height: 1; }
.elementor .rdbt2-why__item h3 { margin: 12px 0; font-family: var(--rd-serif); font-weight: 400; font-size: 1.45rem; line-height: 1.2; color: var(--rd-ink); }
.elementor .rdbt2-why__item p { margin: 0; font-size: 0.875rem; line-height: 1.6; color: var(--rd-text); }
@media (max-width: 900px) { .elementor .e-con.rdbt2-why { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 650px) { .elementor .e-con.rdbt2-why { grid-template-columns: 1fr; } }

/* Feature band: "Make the day yours." */
.elementor .e-con.rdbt2-feature { display: grid; grid-template-columns: 1fr 1fr; width: 100%; max-width: none; background: var(--rd-primary); color: #FFFFFF; }
.elementor .rdbt2-feature__img { min-height: 440px; overflow: hidden; }
.elementor .rdbt2-feature__img img { display: block; width: 100%; height: 440px; object-fit: cover; object-position: center 26%; }
.elementor .e-con.rdbt2-feature__copy { display: flex; flex-direction: column; align-items: flex-start; justify-content: center; padding: 72px clamp(35px, 6vw, 105px); }
.elementor .rdbt2-feature__title .elementor-heading-title { margin: 15px 0 !important; font-family: var(--rd-serif); font-weight: 400; font-size: clamp(2.4rem, 3.4vw, 2.9rem); line-height: 1.08; color: #FFFFFF; }
.elementor .rdbt2-feature__body p { margin: 0 0 22px; max-width: 520px; font-size: 0.9375rem; line-height: 1.7; color: #EAF2FE; }
@media (max-width: 650px) {
  .elementor .e-con.rdbt2-feature { grid-template-columns: 1fr; }
  .elementor .rdbt2-feature__img, .elementor .rdbt2-feature__img img { min-height: 0; height: 340px; }
  .elementor .rdbt2-feature__img img { object-position: center 22%; }
  .elementor .e-con.rdbt2-feature__copy { padding: 40px 22px; }
}

/* FAQ */
.elementor .e-con.rdbt2-faq { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.6fr); gap: 60px; }
.elementor .e-con.rdbt2-faq__head { display: flex; flex-direction: column; gap: 12px; align-items: flex-start; }
.elementor .rdbt2-faq__head .rdbt2-h2 .elementor-heading-title { font-size: clamp(2rem, 3.2vw, 2.75rem); }
.elementor .rdbt2-faq__head p { margin: 0; font-size: 1rem; line-height: 1.6; color: var(--rd-text); }
.elementor .rdbt2-faq__list details { border-bottom: 1px solid var(--rd-line); }
.elementor .rdbt2-faq__list details:first-child { border-top: 1px solid var(--rd-line); }
.elementor .rdbt2-faq__list summary {
  display: flex; align-items: center; justify-content: space-between; gap: 16px; min-height: 56px; padding: 14px 0;
  cursor: pointer; list-style: none; font-size: 1rem; font-weight: 700; line-height: 1.4; color: var(--rd-primary-900);
}
.elementor .rdbt2-faq__list summary::-webkit-details-marker { display: none; }
.elementor .rdbt2-faq__list summary::after { content: "+"; flex: 0 0 auto; font-size: 1.5rem; font-weight: 400; line-height: 1; color: var(--rd-primary); }
.elementor .rdbt2-faq__list details[open] summary::after { content: "–"; }
.elementor .rdbt2-faq__list details p { margin: 0 0 18px; max-width: 70ch; font-size: 0.9375rem; line-height: 1.65; color: var(--rd-text); }
@media (max-width: 850px) { .elementor .e-con.rdbt2-faq { grid-template-columns: 1fr; gap: 22px; } }

/* ==========================================================================
   Footer (Elementor template 81)
   ========================================================================== */
.elementor .e-con.rdbt2-footer-cta { width: 100%; max-width: none; padding-block: 52px; background: var(--rd-primary); color: #FFFFFF; }
.elementor .e-con.rdbt2-footer-cta__grid { display: flex; flex-direction: row; align-items: center; justify-content: space-between; gap: 24px 40px; flex-wrap: wrap; }
.elementor .rdbt2-footer-cta .rdbt2-h2 .elementor-heading-title { margin-top: 10px; color: #FFFFFF; font-size: clamp(2rem, 3vw, 2.5rem); }
.elementor .e-con.rdbt2-footer-cta__actions { display: flex; flex-direction: column; align-items: flex-start; gap: 14px; }
.elementor .rdbt2-footer-cta__contact p { margin: 0; font-size: 1rem; color: #FFFFFF; }
.elementor .rdbt2-footer-cta__contact a { color: #FFFFFF; font-weight: 700; text-decoration: none; border-bottom: 1px solid rgba(255, 255, 255, 0.5); }
.elementor .rdbt2-footer-cta__contact a:hover { border-bottom-color: #FFFFFF; }
.elementor .rdbt2-footer-cta .e-con.rdbt2-actions { gap: 12px; }

.elementor .e-con.rdbt2-footer { width: 100%; max-width: none; padding-block: 44px 28px; background: var(--rd-primary-700); color: #E3EEFC; }
.elementor .e-con.rdbt2-footer__grid { display: grid; grid-template-columns: minmax(0, 2fr) minmax(0, 1.2fr) minmax(0, 1fr) minmax(0, 1.4fr); gap: 28px; }
.elementor .rdbt2-footer__logo { display: inline-block; align-self: flex-start; width: auto; padding: 8px 12px; background: #FFFFFF; border-radius: 8px; line-height: 0; }
.elementor .rdbt2-footer__logo img { display: block; width: 220px; max-width: 100%; height: auto; }
.elementor .rdbt2-footer__blurb p { margin: 16px 0 0; max-width: 42ch; font-size: 0.875rem; line-height: 1.7; color: #E3EEFC; }
.elementor .rdbt2-footer__social .rdbt2-social { margin-top: 18px; gap: 10px; }
.elementor .rdbt2-footer__social .rdbt2-social__link { width: 42px; height: 42px; }
.elementor .rdbt2-footer__social .rdbt2-social__link svg { width: 22px; height: 22px; }
.elementor .rdbt2-social__link--tripadvisor { background: #00AA6C; }
.elementor .rdbt2-social__link--whatsapp { background: #1FA855; }
.elementor .rdbt2-footer__title .elementor-heading-title { margin: 0 0 12px; font-family: var(--rd-sans); font-size: 0.8125rem; font-weight: 700; letter-spacing: 0.16em; text-transform: uppercase; color: #FFFFFF; }
.elementor .rdbt2-footer__links ul { margin: 0; padding: 0; list-style: none; }
.elementor .rdbt2-footer__links li { margin: 0; }
.elementor .rdbt2-footer__links li { display: block; margin: 0; padding: 5px 0; font-size: 0.875rem; line-height: 1.5; color: #E3EEFC; }
.elementor .rdbt2-footer__links a { display: inline-block; padding: 2px 0; color: #E3EEFC; text-decoration: none; }
.elementor .rdbt2-footer__links a:hover, .elementor .rdbt2-footer__links a:focus-visible { color: #FFFFFF; text-decoration: underline; text-underline-offset: 4px; }
.elementor .e-con.rdbt2-footer__bottom { display: flex; flex-direction: row; flex-wrap: wrap; justify-content: space-between; gap: 10px 24px; margin-top: 30px; padding-top: 20px; border-top: 1px solid rgba(255, 255, 255, 0.18); }
.elementor .rdbt2-footer__legal p, .elementor .rdbt2-footer__policy p { margin: 0; font-size: 0.8125rem; color: #D2E2F8; }
.elementor .rdbt2-footer__policy a { color: #FFFFFF; font-weight: 700; text-decoration: underline; text-underline-offset: 3px; }
.elementor .rdbt2-footer__policy span { margin: 0 8px; color: rgba(255, 255, 255, 0.5); }
@media (max-width: 900px) { .elementor .e-con.rdbt2-footer__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 650px) {
  .elementor .e-con.rdbt2-footer-cta__grid { flex-direction: column; align-items: flex-start; }
  .elementor .rdbt2-footer-cta .e-con.rdbt2-actions { width: 100%; }
  .elementor .rdbt2-footer-cta .rdbt2-actions > .elementor-widget, .elementor .rdbt2-footer-cta .rdbt2-actions .elementor-button { width: 100%; }
  .elementor .e-con.rdbt2-footer__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 26px 18px; }
  .elementor .e-con.rdbt2-footer__brand { grid-column: 1 / -1; }
  .elementor .e-con.rdbt2-footer { padding-bottom: 90px; }
}

/* ==========================================================================
   Booking pages
   ========================================================================== */
.elementor .e-con.rdbk-intro { width: 100%; max-width: calc(var(--rd-wrap) + 2 * var(--rd-gutter)); margin: 0 auto; padding: 34px var(--rd-gutter) 18px; display: flex; flex-direction: column; gap: 8px; }
.elementor .rdbk-intro__eyebrow .elementor-heading-title { font-family: var(--rd-sans); font-size: 0.6875rem; font-weight: 700; letter-spacing: 0.17em; text-transform: uppercase; color: var(--rd-primary); }
.elementor .rdbk-intro__title .elementor-heading-title { margin: 0; font-family: var(--rd-serif); font-weight: 400; font-size: clamp(1.9rem, 4vw, 2.875rem); line-height: 1.12; color: var(--rd-ink); }
.elementor .rdbk-intro__sub p { margin: 0; max-width: 760px; font-size: 1rem; line-height: 1.6; color: var(--rd-muted); }
.elementor .elementor-widget.rdbk-host { width: 100%; }
body.rdbt-booking-page { background: #F6F9FD; }

.rdbk { max-width: calc(var(--rd-wrap) + 2 * var(--rd-gutter)); margin: 0 auto; padding: 0 var(--rd-gutter) 40px; scroll-margin-top: calc(var(--rd-header-h) + 12px); color: var(--rd-ink); font-family: var(--rd-sans); line-height: 1.5; }
.rdbk-tabs { margin: 0 0 18px; }
.rdbk-tabs__list { display: flex; flex-wrap: wrap; gap: 8px; margin: 0; padding: 0; list-style: none; }
.rdbk-tabs__list li { margin: 0; }
.rdbk-tab {
  display: inline-flex; align-items: center; min-height: 44px; padding: 10px 18px;
  background: #FFFFFF; border: 1px solid #C9D8EA; border-radius: 30px;
  color: var(--rd-primary-900) !important; font-size: 0.8125rem; font-weight: 700; line-height: 1.25; text-decoration: none; white-space: nowrap;
  transition: background-color 150ms ease, border-color 150ms ease, color 150ms ease;
}
.rdbk-tab:hover { border-color: var(--rd-primary); color: var(--rd-primary) !important; }
.rdbk-tab.is-active { background: var(--rd-primary); border-color: var(--rd-primary); color: #FFFFFF !important; }
.rdbk-swipe { display: none; }
.rdbk-tabs--home { margin: 0; }
.rdbk-tabs--home .rdbk-tabs__list { justify-content: center; }

.rdbk-layout { display: grid; grid-template-columns: minmax(0, 1.43fr) minmax(310px, 0.85fr); gap: 22px; align-items: start; }
.rdbk-card, .rdbk-panel { background: #FFFFFF; border: 1px solid var(--rd-line); border-radius: 17px; box-shadow: 0 6px 24px rgba(1, 44, 99, 0.06); }
.rdbk-card { overflow: hidden; }
.rdbk-photo { position: relative; height: 255px; overflow: hidden; background: var(--rd-tint-2); }
.rdbk-photo__img { display: block; width: 100%; height: 100%; object-fit: cover; }
.rdbk[data-tour="cruise"] .rdbk-photo__img { object-position: center 72%; }
.rdbk-photo__label { position: absolute; right: 15px; bottom: 13px; padding: 6px 10px; border-radius: 5px; background: rgba(1, 44, 99, 0.85); color: #FFFFFF; font-size: 0.6875rem; font-weight: 700; }
.rdbk-details { padding: 27px 30px 30px; }
.rdbk-eyebrow { margin: 0; font-size: 0.6875rem; font-weight: 700; letter-spacing: 0.17em; text-transform: uppercase; color: var(--rd-primary); }
.rdbk .rdbk-title { margin: 4px 0 8px; font-family: var(--rd-serif); font-weight: 400; font-size: 1.95rem; line-height: 1.12; color: var(--rd-ink); }
.rdbk-trust { margin: 10px 0 5px; font-size: 0.8125rem; font-weight: 700; color: var(--rd-primary); }
.rdbk-desc { margin: 8px 0; font-size: 1rem; line-height: 1.6; color: var(--rd-text); }
.rdbk-jump { display: inline-flex; align-items: center; min-height: 44px; margin: 14px 0 2px; padding: 10px 16px; border-radius: 8px; background: var(--rd-primary); color: #FFFFFF !important; font-size: 0.875rem; font-weight: 700; letter-spacing: 0.04em; text-decoration: none; }
.rdbk-jump:hover { background: var(--rd-primary-700); }
.rdbk-chips { display: flex; flex-wrap: wrap; gap: 8px; margin: 15px 0 0; padding: 0; list-style: none; }
.rdbk-chips li { margin: 0; padding: 6px 11px; border-radius: 50px; background: var(--rd-tint-2); color: var(--rd-primary-900); font-size: 0.75rem; font-weight: 700; }
.rdbk .rdbk-rule { height: 0; margin: 22px 0; border: 0; border-top: 1px solid var(--rd-line); }
.rdbk .rdbk-subtitle, .rdbk .rdbk-extra h3 { margin: 18px 0 8px; font-family: var(--rd-sans); font-size: 1rem; font-weight: 700; line-height: 1.35; letter-spacing: 0; color: var(--rd-ink); }
.rdbk .rdbk-subtitle { margin-top: 0; }
.rdbk-ticks { display: grid; grid-template-columns: 1fr 1fr; gap: 6px 14px; margin: 8px 0; padding: 0; list-style: none; }
.rdbk-ticks li { position: relative; margin: 0; padding-left: 24px; font-size: 0.9375rem; line-height: 1.5; color: var(--rd-text); }
.rdbk-ticks li::before { content: "✓"; position: absolute; left: 0; top: 0; color: var(--rd-primary); font-weight: 700; }
.rdbk-extra p { margin: 0; font-size: 0.9375rem; line-height: 1.6; color: var(--rd-text); }
.rdbk-note { margin: 18px 0 0; padding: 13px 16px; border-left: 3px solid var(--rd-primary); background: var(--rd-tint); color: var(--rd-text); font-size: 0.875rem; line-height: 1.55; }

.rdbk-panel { position: sticky; top: calc(var(--wp-admin--admin-bar--height, 0px) + var(--rd-header-h) + 14px); padding: 26px; scroll-margin-top: calc(var(--rd-header-h) + 12px); }
.rdbk .rdbk-panel__title { margin: 4px 0; font-family: var(--rd-serif); font-weight: 400; font-size: 1.55rem; line-height: 1.15; color: var(--rd-ink); }
.rdbk-price { margin: 9px 0 0; font-size: 1.8rem; font-weight: 700; line-height: 1.2; color: var(--rd-primary-900); }
.rdbk-price small { display: block; margin-top: 3px; font-size: 0.75rem; font-weight: 400; color: var(--rd-muted); }
.rdbk-fields { display: grid; grid-template-columns: 1fr 1fr; gap: 13px; margin: 19px 0; }
@media (min-width: 861px) and (max-width: 1180px) { .rdbk-fields, .rdbk-contact { grid-template-columns: 1fr; } }
.rdbk-field { display: flex; flex-direction: column; gap: 5px; min-width: 0; }
.rdbk-wide { grid-column: 1 / -1; }
.rdbk-contact { display: grid; grid-template-columns: 1fr 1fr; gap: 13px; }
.rdbk-contact[hidden] { display: none; }
.rdbk-field label { font-size: 0.8125rem; font-weight: 700; color: var(--rd-ink); }
.rdbk-req { font-weight: 400; color: var(--rd-muted); }
.rdbk-field input, .rdbk-field select, .rdbk-field textarea {
  width: 100%; min-width: 0; min-height: 48px; margin: 0; padding: 11px 12px;
  border: 1px solid #B9CBE0 !important; border-radius: var(--rd-r-field) !important; background: #FFFFFF; color: var(--rd-ink) !important;
  font-family: var(--rd-sans) !important; font-size: 1rem; line-height: 1.3; box-shadow: none;
}
.rdbk-field select { appearance: auto; }
.rdbk-field textarea { min-height: 84px; resize: vertical; }
.rdbk-field input:focus, .rdbk-field select:focus, .rdbk-field textarea:focus { border-color: var(--rd-primary) !important; outline: 3px solid rgba(2, 73, 162, 0.25); outline-offset: 0; }
.rdbk-field.has-error input, .rdbk-field.has-error select, .rdbk-field.has-error textarea { border-color: var(--rd-error) !important; }
.rdbk-error { margin: 0; font-size: 0.8125rem; font-weight: 700; line-height: 1.4; color: var(--rd-error); }
.rdbk-error[hidden] { display: none; }
.rdbk-hint { font-size: 0.75rem; color: var(--rd-muted); }
.rdbk-status:empty { display: none; }
.rdbk-status { padding: 10px 12px; border-radius: 8px; font-size: 0.8125rem; line-height: 1.45; background: var(--rd-tint); color: var(--rd-primary-900); }
.rdbk-status.is-ok { background: #EAF6EF; color: var(--rd-success); font-weight: 700; }
.rdbk-status.is-warn { background: #FFF6E5; color: #7A4B00; }
.rdbk-status a { font-weight: 700; }
.rdbk-hp { position: absolute !important; left: -9999px !important; width: 1px; height: 1px; overflow: hidden; }
.rdbk-summary { padding: 13px 15px; border-radius: 9px; background: var(--rd-tint); font-size: 0.8125rem; color: var(--rd-ink); }
.rdbk-sumrow { display: flex; justify-content: space-between; gap: 15px; margin: 4px 0; }
.rdbk-sumrow--total { margin-top: 9px; padding-top: 9px; border-top: 1px solid #C7D8EE; font-size: 1.0625rem; font-weight: 700; }
.rdbk-fine { margin: 8px 0; font-size: 0.75rem; line-height: 1.5; color: var(--rd-muted); }
.rdbk-fine[hidden], .rdbk-payment[hidden], .rdbk-form[hidden], .rdbk-success[hidden] { display: none; }
.rdbk-cta {
  width: 100%; min-height: 56px; margin-top: 14px; padding: 17px 20px; border: 0; border-radius: 8px;
  background: var(--rd-primary); color: #FFFFFF; font-family: var(--rd-sans); font-size: 1.0625rem; font-weight: 700; letter-spacing: 0.06em; text-transform: uppercase;
  box-shadow: 0 7px 18px rgba(2, 73, 162, 0.28); cursor: pointer; transition: background-color 150ms ease;
}
.rdbk-cta:hover, .rdbk-cta:focus { background: var(--rd-primary-700); color: #FFFFFF; }
.rdbk-cta:disabled { opacity: 0.75; cursor: progress; }
.rdbk-actionnote { margin: 8px 0 3px; text-align: center; font-size: 0.8125rem; color: var(--rd-muted); }
.rdbk-form-error { margin-top: 10px; padding: 12px 14px; border-radius: 8px; background: #FDECEA; color: var(--rd-error); font-size: 0.875rem; }
.rdbk-form-error p { margin: 0; }
.rdbk-form-error[hidden] { display: none; }
.rdbk-before { margin-top: 13px; padding: 12px 14px; border: 1px solid var(--rd-line); border-radius: 8px; background: #F8FBFF; font-size: 0.8125rem; }
.rdbk-before__title { margin: 0 0 4px; font-weight: 700; color: var(--rd-ink); }
.rdbk-before p { margin: 4px 0; line-height: 1.5; color: var(--rd-muted); }
.rdbk-before a { display: inline-block; margin-top: 4px; font-weight: 700; text-decoration: underline; text-underline-offset: 3px; }
.rdbk-payment { margin-top: 12px; padding: 14px 16px; border: 1px solid var(--rd-line); border-radius: 10px; background: #FFFFFF; }
.rdbk-payment summary { min-height: 28px; cursor: pointer; font-size: 0.875rem; font-weight: 700; color: var(--rd-primary-900); }
.rdbk-payment__body { padding-top: 10px; }
.rdbk-payment__body p { margin: 6px 0; font-size: 0.8125rem; line-height: 1.5; color: var(--rd-muted); }
.rdbk-paysteps { display: flex; flex-wrap: wrap; gap: 7px; margin: 8px 0; padding: 0; list-style: none; }
.rdbk-paysteps li { margin: 0; padding: 6px 8px; border-radius: 5px; background: var(--rd-tint); color: var(--rd-primary-900); font-size: 0.75rem; }
.rdbk-secondary { margin: 6px 0 0; text-align: center; }
.rdbk-secondary a { display: inline-flex; align-items: center; min-height: 44px; font-size: 0.875rem; font-weight: 700; }
.rdbk-success { padding: 8px 2px; }
.rdbk-success:focus { outline: none; }
.rdbk .rdbk-success__title { margin: 6px 0 10px; font-family: var(--rd-serif); font-weight: 400; font-size: 1.6rem; line-height: 1.2; color: var(--rd-success); }
.rdbk-success p { margin: 8px 0; font-size: 0.9375rem; line-height: 1.6; color: var(--rd-text); }
.rdbk-mobile { display: none; }

@media (max-width: 860px) {
  .rdbk { padding-bottom: 95px; }
  .rdbk-layout { grid-template-columns: 1fr; }
  .rdbk-panel { position: static; padding: 23px; }
  .rdbk-photo { height: 210px; }
  .rdbk-details { padding: 22px; }
  .rdbk-ticks { grid-template-columns: 1fr; }
  .rdbk-tabs { margin-inline: calc(-1 * var(--rd-gutter)); }
  .rdbk-tabs__list { flex-wrap: nowrap; overflow-x: auto; padding: 0 var(--rd-gutter) 6px; scroll-padding-inline: var(--rd-gutter); scroll-snap-type: x proximity; scrollbar-width: thin; -webkit-overflow-scrolling: touch; }
  .rdbk-tabs__list li { flex: 0 0 auto; scroll-snap-align: start; }
  .rdbk-tabs--home { margin-inline: 0; }
  .rdbk-tabs--home .rdbk-tabs__list { justify-content: flex-start; padding: 0 0 6px; }
  .rdbk-swipe { display: block; margin: -11px 0 15px; font-size: 0.75rem; color: var(--rd-muted); }
  .rdbk-mobile {
    display: block; position: fixed; left: 0; right: 0; bottom: 0; z-index: 980;
    padding: 15px 20px calc(15px + env(safe-area-inset-bottom, 0px)); background: var(--rd-primary); color: #FFFFFF !important;
    text-align: center; font-weight: 700; letter-spacing: 0.06em; text-decoration: none; box-shadow: 0 -3px 15px rgba(1, 30, 70, 0.3);
    transition: transform 200ms ease;
  }
  .rdbk-mobile.is-hidden, .rdbk-mobile[hidden] { transform: translateY(110%); visibility: hidden; transition: transform 200ms ease, visibility 0s linear 200ms; } /* hidden bar is not focusable */
  body.rdbt-booking-page .elementor .e-con.rdbt2-footer { padding-bottom: 96px; }
  html.rdbt2-menu-open .rdbk-mobile { display: none; }
}
@media (max-width: 520px) {
  .elementor .e-con.rdbk-intro { padding-top: 24px; padding-bottom: 14px; }
  .rdbk-fields, .rdbk-contact { grid-template-columns: 1fr; }
  .rdbk .rdbk-title { font-size: 1.7rem; }
}

/* Policy */
.rdbk-policy { max-width: var(--rd-wrap); margin: 40px auto 48px; padding: 30px 34px; line-height: 1.65; background: #FFFFFF; border: 1px solid var(--rd-line); border-radius: 12px; scroll-margin-top: calc(var(--rd-header-h) + 16px); color: var(--rd-text); }
.rdbk-policy .rdbk-policy__title { margin: 6px 0 14px; font-family: var(--rd-serif); font-weight: 400; font-size: clamp(1.6rem, 2.6vw, 2.1rem); line-height: 1.15; color: var(--rd-ink); }
.rdbk-policy h3, .rdbk-policy h2:not(.rdbk-policy__title) { margin: 22px 0 6px; font-family: var(--rd-sans); font-size: 1.0625rem; font-weight: 700; line-height: 1.35; letter-spacing: 0; color: var(--rd-ink); }
.elementor-kit-4 .rdbk-policy h3, .elementor-kit-4 .rdbk-policy h2:not(.rdbk-policy__title) { font-family: var(--rd-sans); font-size: 1.0625rem; line-height: 1.35; }
.rdbk-policy p { margin: 9px 0; max-width: 82ch; font-size: 1rem; line-height: 1.65; }
.rdbk-policy strong { color: var(--rd-ink); }
.rdbk-policy a { text-decoration: underline; text-underline-offset: 3px; }
.elementor .elementor-widget.rdbk-policy-host { width: 100%; padding: 0 var(--rd-gutter); }
.elementor .e-con.rdbk-intro + .rdbk-policy-host .rdbk-policy { margin-top: 8px; } /* policy page: the box follows the page eyebrow */
@media (max-width: 650px) { .rdbk-policy { margin-top: 28px; padding: 22px 18px; } }

/* ==========================================================================
   Inner pages (layouts awaiting client mockups): brand colours only.
   The theme header now sits in the page flow, so heroes no longer need the
   extra top padding the old floating header required.
   ========================================================================== */
body.rdbt-v2 .elementor .e-con.rdbt-hero { min-height: min(78svh, 760px); padding-top: clamp(72px, 11vh, 120px); }
@media (max-width: 767px) { body.rdbt-v2 .elementor .e-con.rdbt-hero { min-height: min(86svh, 640px); padding-top: 64px; } }
body.rdbt-v2 .elementor .e-con.rdbt-hero.rdbt-hero--tour { min-height: min(72svh, 700px); }
body.rdbt-v2 .elementor .rdbt-trust__item .elementor-icon { color: var(--rd-primary); fill: var(--rd-primary); }
body.rdbt-v2 .elementor .rdbt-diff__item .elementor-icon { color: var(--rd-primary); fill: var(--rd-primary); }
body.rdbt-v2 .elementor .rdbt-faq__list .e-n-accordion-item-title-icon { color: var(--rd-primary); }
body.rdbt-v2 .elementor .rdbt-kicker .elementor-heading-title { color: var(--rd-primary); }
body.rdbt-v2 .elementor .rdbt-ground-deep .rdbt-kicker .elementor-heading-title,
body.rdbt-v2 .elementor .rdbt-charter .rdbt-kicker .elementor-heading-title { color: var(--rd-on-blue); }
body.rdbt-v2 .elementor .e-con.rdbt-charter { background: var(--rd-primary); }
body.rdbt-v2 .elementor .rdbt-link a, body.rdbt-v2 .elementor .rdbt-body a { color: var(--rd-primary); }
/* Points list is styled for blue bands; on the cruise page it sits on white */
body.rdbt-v2 .elementor .rdbt-section > .elementor-widget.rdbt-points li { color: var(--rd-text); }
body.rdbt-v2 .elementor .rdbt-section > .elementor-widget.rdbt-points li::before { background: var(--rd-primary); }
body.rdbt-v2 .elementor .rdbt-section > .elementor-widget.rdbt-points--links a { color: var(--rd-primary); text-decoration-color: rgba(2, 73, 162, 0.45); }
/* BOOK NOW inside a blue band uses the white button */
body.rdbt-v2 .elementor .rdbt-charter .elementor-widget-button.rdbt-w-book .elementor-button { background: #FFFFFF; border-color: #FFFFFF; color: var(--rd-primary); }
body.rdbt-v2 .elementor .rdbt-charter .elementor-widget-button.rdbt-w-book .elementor-button:hover,
body.rdbt-v2 .elementor .rdbt-charter .elementor-widget-button.rdbt-w-book .elementor-button:focus-visible { background: var(--rd-tint-2); border-color: var(--rd-tint-2); color: var(--rd-primary-900); }
/* Hero label sits above the H1 (it used to be inside it) */
.elementor .e-con .elementor-widget.rdbt-hero__eyebrow-w { width: 100%; margin: 0; --kit-widget-spacing: 0px; }
.elementor .elementor-widget.rdbt-hero__eyebrow-w .elementor-heading-title {
  display: block; margin: 0 0 24px; font-family: var(--rdbt-font-body); font-weight: 700; font-size: 0.875rem; line-height: 1.3;
  letter-spacing: 0.18em; text-transform: uppercase; color: var(--rdbt-on-deep); text-shadow: 0 1px 12px rgba(var(--rdbt-scrim), 0.7);
}
/* Enquiry form submit in the brand colour */
body.rdbt-v2 .elementor .rdbt-message__form .wpforms-container { --wpforms-button-background-color: var(--rd-primary); --wpforms-button-border-color: var(--rd-primary); --wpforms-label-error-color: var(--rd-error); }
body.rdbt-v2 .elementor .rdbt-message__form button.wpforms-submit, body.rdbt-v2 .elementor .rdbt-message__form button[type=submit] { background: var(--rd-primary) !important; border-color: var(--rd-primary); }
body.rdbt-v2 .elementor .rdbt-message__form button.wpforms-submit:hover, body.rdbt-v2 .elementor .rdbt-message__form button.wpforms-submit:focus,
body.rdbt-v2 .elementor .rdbt-message__form button.wpforms-submit:focus-visible { background: var(--rd-primary-700) !important; border-color: var(--rd-primary-700); }
/* Gallery: the last photo closes the grid (no empty cell) */
body.rdbt-v2 .elementor .e-con.rdbt-gallery > .elementor-widget.rdbt-gallery__item:last-child:not(.rdbt-span-2):not(.rdbt-span-2x2) { grid-column: span 2; }
/* Owner photo keeps the page gutter on small screens (its frame sits 28px to the right) */
@media (max-width: 900px) { body.rdbt-v2 .elementor .elementor-widget.rdbt-owner__photo { width: calc(100% - 28px); } }
/* Pages on the default template (Privacy Policy) follow the site grid */
body.rdbt-v2:not(.elementor-page) .site-main { width: 100%; max-width: calc(var(--rd-wrap) + 2 * var(--rd-gutter)); margin: 0 auto; padding: 48px var(--rd-gutter) 72px; }
body.rdbt-v2:not(.elementor-page) .site-main .page-header { margin: 0 0 20px; }
body.rdbt-v2:not(.elementor-page) .site-main .entry-title { margin: 0; font-family: var(--rd-serif); font-weight: 400; font-size: clamp(2rem, 4vw, 2.875rem); line-height: 1.12; color: var(--rd-ink); }
body.rdbt-v2:not(.elementor-page) .site-main .page-content { max-width: 82ch; font-size: 1rem; line-height: 1.65; color: var(--rd-text); }

/* Motion off for people who ask for less of it */
@media (prefers-reduced-motion: reduce) {
  .rdbt2-drawer, .rdbt2-nav__list a::after, .rdbk-mobile, .rdbt2-wa-float, .elementor .rdbt2-card__photo img { transition: none !important; }
  .elementor .e-con.rdbt2-card:hover .rdbt2-card__photo img { transform: none; }
}

/* Legal pages (Terms, Privacy): lists and the "draft for review" note */
.rdbk-policy ul { margin: 8px 0 12px; padding-left: 1.25em; max-width: 80ch; }
.rdbk-policy li { margin: 4px 0; font-size: 1rem; line-height: 1.6; }
.rdbk-policy .rdbt-legal-draft { margin: 14px 0 18px; padding: 12px 16px; max-width: 82ch; background: #FFF7E6; border: 1px solid #EFD39A; border-left: 4px solid #A86A12; border-radius: 8px; color: var(--rd-ink); }
.rdbk-policy .rdbt-legal-draft p { margin: 4px 0; }
.rdbk-policy .rdbt-legal-draft ul { margin: 6px 0 4px; }
/* Footer policy links wrap cleanly on small screens */
.elementor .rdbt2-footer__policy p { display: flex; flex-wrap: wrap; align-items: baseline; row-gap: 6px; }
@media (max-width: 650px) { .elementor .rdbt2-footer__policy p { column-gap: 18px; } .elementor .rdbt2-footer__policy span { display: none; } }
/* Existing blog articles: same colours and type as the rest of the site */
body.rdbt-v2.single-post .rdbt2-main .elementor .e-con.hostinger-ai-background-video { --min-height: 280px; background-color: var(--rd-primary-900); }
body.rdbt-v2.single-post .rdbt2-main .elementor .e-con.hostinger-ai-background-video::before { background-color: transparent; opacity: 0; }
body.rdbt-v2.single-post .rdbt2-main .elementor .hostinger-ai-title .elementor-heading-title { font-family: var(--rd-serif); font-weight: 400; letter-spacing: 0; }
body.rdbt-v2.single-post .rdbt2-main .elementor .hostinger-ai-background-video .hostinger-ai-title .elementor-heading-title { font-family: var(--rd-serif); font-weight: 400; font-size: clamp(1.9rem, 4vw, 2.875rem); line-height: 1.15; letter-spacing: 0; color: #FFFFFF; }
body.rdbt-v2.single-post .rdbt2-main .elementor .elementor-widget-text-editor, body.rdbt-v2.single-post .rdbt2-main .elementor .elementor-widget-text-editor p, body.rdbt-v2.single-post .rdbt2-main .elementor .elementor-widget-text-editor li { font-family: var(--rd-sans); font-size: 1.0625rem; line-height: 1.7; color: var(--rd-text); }
body.rdbt-v2.single-post .rdbt2-main .elementor .elementor-widget-text-editor ul { margin-bottom: 14px; }
/* Booking panel at tablet-landscape widths: contact fields stack (the base .rdbk-contact rule sits later than the older media query) */
@media (min-width: 861px) and (max-width: 1180px) { .rdbk .rdbk-contact { grid-template-columns: 1fr; } }
/* Phones: keep the floating WhatsApp button clear of the footer's last line */
@media (max-width: 767px) { body.rdbt-v2 .elementor .rdbt2-footer__bottom, body.rdbt-v2 .elementor .e-con.rdbt2-footer__bottom { padding-bottom: 76px; } }
@media (max-width: 860px) { .rdbk-swipe--home { margin: 4px 0 0; } }
/* Approved high-resolution logo (wider artwork, 3.4:1): sized to match the approved mockup */
.rdbt2-brand__img { height: 50px; }
@media (max-width: 1099px) { .rdbt2-brand__img { height: 42px; } }
@media (max-width: 480px) { .rdbt2-brand__img { height: 34px; } }
@media (max-width: 359px) { .rdbt2-brand__img { height: 28px; } }

/* 30 Sep 2026 revisions: cruise pickup callout and boat capacity note */
.rdbk-callout, .elementor .rdbt2-callout {
  margin: 14px 0 0; padding: 12px 14px; background: #EAF2FC; border-left: 4px solid var(--rd-primary, #0249A2);
  border-radius: 8px; color: #0B2545; font-weight: 700; line-height: 1.45;
}
.rdbk-panel .rdbk-callout { margin: 0 0 4px; }
.rdbk .rdbk-guests-note { margin: -4px 0 2px; font-size: 13px; line-height: 1.45; color: #4A5A70; }
.elementor .rdbt2-callout { display: block; max-width: 640px; }
/* Header button fits "REQUEST BOOKING" (Soufrière page) on small phones */
@media (max-width: 400px) { .rdbt2-header .rdbt2-header__book { padding-left: 10px; padding-right: 10px; letter-spacing: 0.03em; white-space: nowrap; } .rdbt2-header .rdbt2-header__actions { gap: 8px; } }
@media (max-width: 359px) { .rdbt2-header .rdbt2-header__book { padding-left: 8px; padding-right: 8px; font-size: 0.68rem; letter-spacing: 0.01em; } .rdbt2-header .rdbt2-header__actions { gap: 6px; } }
.elementor .rdbt2-callout, .elementor .rdbt2-callout strong { color: #0B2545 !important; }
/* Direct FareHarbor booking panel (1 Oct revisions) */
.rdbk-steps { margin: 14px 0 4px; padding: 0 0 0 20px; color: var(--rd-ink); font-size: 0.9375rem; line-height: 1.55; }
.rdbk-steps li { margin: 4px 0; }
a.rdbk-cta { display: flex; align-items: center; justify-content: center; text-align: center; text-decoration: none; box-sizing: border-box; }
.rdbk-checkout .rdbk-before { margin-top: 14px; }

/* ---- 1 Oct 2026 revisions ---- */
/* BOOK NOW links in the booking panel: keep the label white (it was inheriting the link colour). */
.rdbk a.rdbk-cta, .rdbk a.rdbk-cta:visited, .rdbk a.rdbk-cta:hover, .rdbk a.rdbk-cta:focus { color: #FFFFFF !important; text-decoration: none; }
/* "How booking and payment work": chevron instead of the browser's play-style triangle. */
.rdbk-payment summary { display: flex; align-items: center; gap: 8px; list-style: none; }
.rdbk-payment summary::-webkit-details-marker { display: none; }
.rdbk-payment summary::marker { content: ""; }
.rdbk-payment summary::before { content: ""; flex: 0 0 auto; width: 7px; height: 7px; border-right: 2px solid currentColor; border-bottom: 2px solid currentColor; transform: rotate(-45deg); transition: transform 150ms ease; }
.rdbk-payment[open] summary::before { transform: rotate(45deg); }
.rdbk-subtitle[hidden] { display: none; }
.rdbk-callout strong { color: var(--rd-primary-900); }
/* Airport Transfers — On Request (smaller section below the tour cards) */
.rdbt2-onrequest { display: grid; grid-template-columns: 200px minmax(0, 1fr) auto; align-items: center; gap: 22px; width: 100%; max-width: 1120px; margin: 28px auto 0; padding: 16px 22px 16px 16px; border: 1px solid var(--rd-line); border-radius: 12px; background: #FFFFFF; box-sizing: border-box; }
.rdbt2-onrequest__media { line-height: 0; }
.rdbt2-onrequest__img { display: block; width: 100%; height: 120px; object-fit: cover; object-position: center 60%; border-radius: 8px; }
.rdbt2-onrequest__title { margin: 0 0 6px; font-family: var(--rd-serif); font-weight: 400; font-size: 1.35rem; line-height: 1.25; color: var(--rd-primary-900); }
.rdbt2-onrequest__copy p { margin: 0; font-size: 0.9375rem; line-height: 1.55; color: var(--rd-text); }
.rdbt2-onrequest__btn { display: inline-flex; align-items: center; justify-content: center; min-height: 48px; padding: 0 20px; border: 2px solid var(--rd-primary); border-radius: var(--rd-r-btn, 6px); color: var(--rd-primary) !important; font-size: 0.8125rem; font-weight: 700; letter-spacing: 0.06em; text-decoration: none !important; white-space: nowrap; }
.rdbt2-onrequest__btn:hover, .rdbt2-onrequest__btn:focus-visible { background: var(--rd-primary); color: #FFFFFF !important; }
@media (max-width: 860px) {
  .rdbt2-onrequest { grid-template-columns: 1fr; gap: 14px; padding: 14px; }
  .rdbt2-onrequest__img { height: 160px; }
  .rdbt2-onrequest__btn { width: 100%; white-space: normal; text-align: center; }
}
/* Whale and Dolphin booking photo: keep the leaping dolphins in frame. */
.rdbk[data-tour="whale"] .rdbk-photo .rdbk-photo__img { height: 100% !important; object-fit: cover; object-position: center 62%; }

/* --------------------------------------------------------------------------
   Boat choice (3 Oct 2026 revisions): 28ft Bowen or 37ft Dakota on the
   Half-Day Snorkelling and Soufrière tours. One selectable card per boat.
   -------------------------------------------------------------------------- */
.rdbk-boats { min-width: 0; margin: 18px 0 6px; padding: 0; border: 0; }
.rdbk .rdbk-boats__legend { display: block; width: 100%; margin: 0 0 10px; padding: 0; font-family: var(--rd-sans); font-size: 1rem; font-weight: 700; line-height: 1.35; color: var(--rd-ink); }
.rdbk-boat { position: relative; display: block; margin: 0 0 12px; border: 2px solid var(--rd-line); border-radius: 12px; background: #FFFFFF; overflow: hidden; cursor: pointer; transition: border-color 150ms ease, box-shadow 150ms ease; }
.rdbk-boat:hover { border-color: #8FB2E2; }
.rdbk-boat.is-selected { border-color: var(--rd-primary); box-shadow: 0 8px 22px rgba(1, 44, 99, 0.12); }
.rdbk-boat__input { position: absolute; top: 0; left: 0; width: 1px; height: 1px; margin: 0; opacity: 0; }
.rdbk-boat:has(.rdbk-boat__input:focus-visible) { outline: 3px solid var(--rd-primary); outline-offset: 3px; }
@supports not selector(:has(*)) { .rdbk-boat:focus-within { outline: 3px solid var(--rd-primary); outline-offset: 3px; } }
.rdbk-boat__media { display: block; background: var(--rd-tint-2); }
.rdbk-boat .rdbk-boat__img { display: block; width: 100%; height: auto; }
.rdbk-boat__body { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; gap: 4px 14px; align-items: center; padding: 13px 16px 14px; }
.rdbk-boat__mark { width: 22px; height: 22px; border: 2px solid #8AA3BF; border-radius: 50%; background: #FFFFFF; box-shadow: inset 0 0 0 4px #FFFFFF; }
.rdbk-boat.is-selected .rdbk-boat__mark { border-color: var(--rd-primary); background: var(--rd-primary); }
.rdbk-boat__text { display: block; min-width: 0; }
.rdbk-boat__name { display: block; font-family: var(--rd-serif); font-size: 1.3rem; line-height: 1.2; color: var(--rd-ink); }
.rdbk-boat__desc { display: block; margin-top: 3px; font-size: 0.875rem; line-height: 1.45; color: var(--rd-text); }
.rdbk-boat__price { display: block; text-align: right; font-size: 0.8125rem; line-height: 1.4; color: var(--rd-muted); }
.rdbk-boat__price strong { font-size: 1.35rem; line-height: 1.15; color: var(--rd-primary-900); }
.rdbk-boat__price > span { display: block; }
.rdbk-boat__price > strong + span { display: inline-block; white-space: nowrap; }
.rdbk-boats__note { margin: -2px 0 0; font-size: 0.75rem; font-style: italic; color: var(--rd-muted); }
.rdbk-checkout[hidden], .rdbk-field[hidden] { display: none; }
@media (max-width: 560px) {
  .rdbk-boat__body { grid-template-columns: auto minmax(0, 1fr); padding: 12px 14px 13px; }
  .rdbk-boat__price { grid-column: 2; margin-top: 4px; text-align: left; }
}
@media (prefers-reduced-motion: reduce) { .rdbk-boat { transition: none; } }

/* --------------------------------------------------------------------------
   Pre-launch QA (7 Oct 2026)
   -------------------------------------------------------------------------- */
/* Tour photo always fills its frame. Elementor's ".elementor img { height: auto }" outranked the
   base rule, so a wide photo left an empty band under it on phones (cruise, sunset). */
.rdbk .rdbk-photo .rdbk-photo__img { height: 100% !important; object-fit: cover; }
.rdbk[data-tour="soufriere"] .rdbk-photo .rdbk-photo__img,
.rdbk[data-tour="sunset"] .rdbk-photo .rdbk-photo__img { object-position: center top; }

/* Home headline: keep "Private St. Lucia Boat Tours" on one line on wide screens. */
@media (min-width: 1441px) {
  .elementor .rdbt2-hero__title .elementor-heading-title { font-size: 3.2rem; }
}

/* Contact form: the tour dropdown shows an arrow and lines up with the text fields. */
body.rdbt-v2 .elementor .rdbt-message__form .wpforms-container select {
  padding: 0 44px 0 14px;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='9' viewBox='0 0 14 9'%3E%3Cpath d='M1 1.5l6 6 6-6' fill='none' stroke='%2310293F' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  background-repeat: no-repeat; background-position: right 16px center; background-size: 14px 9px;
}

/* Blog post "What We Offer": each photo sits with its own title on phones. */
@media (max-width: 767px) {
  .elementor-400 .elementor-element.elementor-element-1df258c3 > .elementor-widget-heading { margin-bottom: 14px; }
  .elementor-400 .elementor-element-1df258c3 { grid-template-rows: none !important; grid-auto-rows: auto; }
  .elementor-400 .elementor-element-1df258c3 > :nth-child(1) { order: 1; }
  .elementor-400 .elementor-element-1df258c3 > :nth-child(5) { order: 2; }
  .elementor-400 .elementor-element-1df258c3 > :nth-child(2) { order: 3; }
  .elementor-400 .elementor-element-1df258c3 > :nth-child(6) { order: 4; }
  .elementor-400 .elementor-element-1df258c3 > :nth-child(3) { order: 5; }
  .elementor-400 .elementor-element-1df258c3 > :nth-child(7) { order: 6; }
  .elementor-400 .elementor-element-1df258c3 > :nth-child(4) { order: 7; }
  .elementor-400 .elementor-element-1df258c3 > :nth-child(8) { order: 8; }
}

/* Reviews widget: its own "What our customers say" title repeated the section heading above it. */
[class*="elfsight-app"] .es-widget-title-container { display: none !important; }

/* Home "Make the day yours" photo: show both guests down to the bow (it was cropped at chest height on desktop). */
@media (min-width: 651px) {
  .elementor .rdbt2-feature__img { min-height: 0; aspect-ratio: 8 / 7; }
  .elementor .rdbt2-feature__img img { height: 100%; min-height: 100%; object-position: center 69%; }
}
@media (min-width: 651px) and (max-width: 1100px) {
  .elementor .e-con.rdbt2-feature { grid-template-columns: 1fr; }
  .elementor .e-con.rdbt2-feature__copy { padding: 48px clamp(28px, 6vw, 64px); }
}
