/*
Theme Name: Budva Tours
Theme URI: https://budvatours.com
Author: Budva Tours
Description: Bespoke, lightweight theme for private boat experiences on the Budva Riviera.
Version: 1.4.14
Requires at least: 6.0
Requires PHP: 8.0
Text Domain: budvatours
*/

:root {
  --ink: #082c34;
  --ink-deep: #041d23;
  --sea: #0d7f88;
  --sea-bright: #34c6bd;
  --sky: #d9f5ef;
  --sand: #f3ead8;
  --coral: #ff7a59;
  --sun: #ffc96b;
  --paper: #fbfaf6;
  --white: #fff;
  --muted: #5c6f70;
  --line: rgba(8, 44, 52, 0.13);
  --shadow: 0 24px 80px rgba(4, 29, 35, 0.13);
  --radius-sm: 16px;
  --radius-md: 28px;
  --radius-lg: 44px;
  --container: min(1180px, calc(100vw - 40px));
  --section-space: 32px;
  --section-heading-space: 20px;
}

* { box-sizing: border-box; }

html {
  scroll-behavior: smooth;
  scroll-padding-top: 100px;
}

body {
  margin: 0;
  color: var(--ink);
  background: var(--paper);
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  font-size: 16px;
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
}

body.nav-open { overflow: hidden; }

img { display: block; max-width: 100%; }
a { color: inherit; text-decoration: none; }
button, input, textarea, select { font: inherit; }
button { color: inherit; }

:focus-visible { outline: 3px solid var(--sun); outline-offset: 4px; }

.skip-link {
  position: fixed;
  z-index: 100;
  top: 10px;
  left: 10px;
  padding: 10px 16px;
  color: white;
  background: var(--ink-deep);
  border-radius: 999px;
  transform: translateY(-150%);
  transition: transform .2s ease;
}
.skip-link:focus { transform: translateY(0); }

::selection { color: var(--ink-deep); background: var(--sun); }

.container { width: var(--container); margin-inline: auto; }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }

.site-header {
  position: fixed;
  z-index: 50;
  top: 0;
  left: 0;
  width: 100%;
  padding: 18px 0;
  transition: background .35s ease, padding .35s ease, box-shadow .35s ease;
}

.site-header.is-scrolled {
  padding: 10px 0;
  background: rgba(251, 250, 246, .9);
  box-shadow: 0 10px 36px rgba(4, 29, 35, .09);
  backdrop-filter: blur(18px);
}

.nav-wrap { display: flex; align-items: center; justify-content: space-between; gap: 26px; }
.header-actions { display: flex; align-items: center; gap: 8px; flex-shrink: 0; position: relative; z-index: 3; }
.social-icon { display: inline-flex; align-items: center; justify-content: center; flex-shrink: 0; width: 44px; height: 44px; border: 1px solid rgba(255,255,255,.4); border-radius: 50%; color: white; background: rgba(255,255,255,.1); transition: color .2s ease, background .2s ease, border-color .2s ease; }
.social-icon svg { flex-shrink: 0; width: 20px; height: 20px; }
.site-header.is-scrolled .header-instagram { color: var(--ink); border-color: var(--line); background: white; }
.site-header .header-instagram:hover, .footer-instagram:hover .social-icon { color: var(--ink); border-color: var(--sun); background: var(--sun); }
.nav-open .site-header .header-instagram { color: white; border-color: rgba(255,255,255,.4); background: rgba(255,255,255,.1); }
.site-header .brand { min-width: 0; }
.site-header .brand-mark { flex-shrink: 0; }
.site-header .brand-copy { min-width: 0; }

.brand { display: inline-flex; align-items: center; gap: 12px; position: relative; z-index: 3; }
.brand-mark {
  position: relative;
  display: grid;
  place-items: center;
  width: 46px;
  aspect-ratio: 1;
  flex-shrink: 0;
  color: white;
  border: 1px solid rgba(255,255,255,.56);
  border-radius: 50%;
  background: rgba(255,255,255,.15);
  backdrop-filter: blur(12px);
  transition: border-color .3s, background .3s;
}
.brand-symbol { position: absolute; inset: 0; display: block; width: 100%; height: 100%; }
.brand-copy { display: grid; line-height: 1; color: white; }
.brand-name { font-family: Georgia, "Times New Roman", serif; font-size: 23px; letter-spacing: -.4px; }
.brand-tag { margin-top: 5px; font-size: 9px; font-weight: 800; letter-spacing: 1.7px; text-transform: uppercase; opacity: .73; }

.site-header.is-scrolled .brand-copy { color: var(--ink); }
.site-header.is-scrolled .brand-mark { color: var(--ink); background: var(--sky); border-color: rgba(8,44,52,.12); }

.desktop-nav { display: flex; align-items: center; gap: 30px; margin-left: auto; color: white; font-size: 13px; font-weight: 750; }
.desktop-nav > a:not(.nav-cta) { position: relative; padding: 10px 0; }
.desktop-nav > a:not(.nav-cta)::after { content: ""; position: absolute; right: 0; bottom: 4px; left: 0; height: 1px; background: currentColor; transform: scaleX(0); transform-origin: right; transition: transform .3s ease; }
.desktop-nav > a:hover::after { transform: scaleX(1); transform-origin: left; }
.desktop-nav > a[aria-current="page"]::after { transform: scaleX(1); }
.site-header.is-scrolled .desktop-nav { color: var(--ink); }

.nav-cta,
.button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  min-height: 52px;
  padding: 0 23px;
  border: 0;
  border-radius: 999px;
  font-size: 13px;
  font-weight: 850;
  letter-spacing: .2px;
  cursor: pointer;
  transition: transform .25s ease, box-shadow .25s ease, background .25s ease;
}
.nav-cta { min-height: 46px; color: var(--ink) !important; background: var(--sun); box-shadow: 0 12px 34px rgba(255,201,107,.25); }
.nav-cta:hover, .button:hover { transform: translateY(-2px); }
.button-primary { color: var(--ink-deep); background: var(--sun); box-shadow: 0 16px 42px rgba(255,201,107,.25); }
.button-secondary { color: white; border: 1px solid rgba(255,255,255,.46); background: rgba(255,255,255,.1); backdrop-filter: blur(10px); }
.button-dark { color: white; background: var(--ink); box-shadow: 0 14px 36px rgba(4,29,35,.18); }
.button-arrow { font-size: 18px; line-height: 1; transition: transform .25s; }
.button:hover .button-arrow { transform: translateX(3px); }

.nav-toggle { display: none; position: relative; z-index: 3; width: 46px; height: 46px; padding: 0; border: 1px solid rgba(255,255,255,.4); border-radius: 50%; color: white; background: rgba(255,255,255,.12); }
.nav-toggle span:not(.sr-only) { position: absolute; left: 13px; width: 18px; height: 1.5px; background: currentColor; transition: transform .25s, top .25s; }
.nav-toggle span:nth-child(2) { top: 18px; }
.nav-toggle span:nth-child(3) { top: 26px; }
.nav-open .nav-toggle span:nth-child(2) { top: 22px; transform: rotate(45deg); }
.nav-open .nav-toggle span:nth-child(3) { top: 22px; transform: rotate(-45deg); }
.site-header.is-scrolled .nav-toggle { color: var(--ink); border-color: var(--line); background: white; }

.language-switch {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 4px;
  border: 1px solid rgba(255,255,255,.3);
  border-radius: 999px;
  background: rgba(255,255,255,.1);
}
.language-switch button { width: 34px; height: 30px; padding: 0; border: 0; border-radius: 999px; color: inherit; background: transparent; font-size: 10px; font-weight: 900; cursor: pointer; }
.language-switch button.active { color: var(--ink); background: white; }
.site-header.is-scrolled .language-switch { border-color: var(--line); background: rgba(8,44,52,.04); }

.hero, .tours-page-hero { min-height: 760px; height: auto; }

.hero {
  position: relative;
  display: flex;
  align-items: flex-end;
  overflow: hidden;
  isolation: isolate;
  color: white;
  background: var(--ink-deep);
}
.hero-bg { position: absolute; z-index: -3; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: center 44%; animation: hero-in 1.8s cubic-bezier(.2,.7,.2,1) both; }
.hero::before { content: ""; position: absolute; z-index: -2; inset: 0; background: linear-gradient(90deg, rgba(3,25,30,.89) 0%, rgba(4,29,35,.54) 42%, rgba(4,29,35,.12) 72%), linear-gradient(0deg, rgba(3,25,30,.8) 0%, transparent 48%); }
.hero::after { content: ""; position: absolute; z-index: -1; width: 620px; height: 620px; top: -280px; right: -140px; border-radius: 50%; border: 1px solid rgba(255,255,255,.22); box-shadow: 0 0 0 90px rgba(255,255,255,.035), 0 0 0 180px rgba(255,255,255,.025); }

@keyframes hero-in { from { transform: scale(1.06); opacity: .4; } to { transform: scale(1); opacity: 1; } }

.hero-content { position: relative; width: var(--container); margin: 0 auto; padding: 180px 0 88px; display: grid; grid-template-columns: minmax(0, 720px) 1fr; gap: 80px; align-items: end; }
.eyebrow { display: inline-flex; align-items: center; gap: 10px; margin: 0 0 22px; color: var(--sea-bright); font-size: 11px; font-weight: 900; letter-spacing: 2.4px; text-transform: uppercase; }
.eyebrow::before { content: ""; width: 32px; height: 1px; background: currentColor; }
.hero .eyebrow { color: var(--sun); }
.hero h1 { max-width: 790px; margin: 0; font-family: Georgia, "Times New Roman", serif; font-size: clamp(64px, 8.2vw, 126px); font-weight: 400; line-height: .83; letter-spacing: -5px; }
.hero h1 em { display: block; padding-left: .7em; color: var(--sky); font-weight: 400; }
.hero-sub { max-width: 570px; margin: 28px 0 0; color: rgba(255,255,255,.78); font-size: clamp(17px, 1.6vw, 21px); line-height: 1.55; }
.hero-actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 32px; }
.hero-aside { display: grid; gap: 18px; justify-items: end; }
.hero-note { width: 210px; padding: 20px; border: 1px solid rgba(255,255,255,.2); border-radius: 22px; background: rgba(255,255,255,.1); backdrop-filter: blur(14px); }
.hero-note strong { display: block; font-family: Georgia, serif; font-size: 26px; font-weight: 400; }
.hero-note span { color: rgba(255,255,255,.66); font-size: 12px; }
.hero-location { display: block; transition: border-color .2s ease, background .2s ease; }
.hero-location:hover, .hero-location:focus-visible { border-color: var(--sun); background: rgba(255,255,255,.16); }
.hero-location > span { font-size: 14px; color: rgba(255,255,255,.82); }
.hero-location .hero-location-map { display: flex; justify-content: space-between; align-items: center; margin-top: 12px; color: var(--sun); font-weight: 700; }
.hero-location-map span { color: inherit; font-size: 18px; }
.hero-location-mobile { display: none; }
.scroll-cue { display: flex; align-items: center; gap: 12px; color: rgba(255,255,255,.6); font-size: 10px; font-weight: 850; letter-spacing: 1.8px; text-transform: uppercase; writing-mode: vertical-rl; }
.scroll-cue::after { content: ""; width: 1px; height: 72px; background: linear-gradient(white, transparent); }

.trust-strip { position: relative; z-index: 4; margin-top: -1px; color: var(--ink); background: var(--sky); }
.trust-inner { min-height: 88px; display: grid; grid-template-columns: repeat(4, 1fr); align-items: center; }
.trust-item { display: flex; align-items: center; justify-content: center; gap: 12px; min-height: 45px; padding: 0 24px; border-right: 1px solid rgba(8,44,52,.12); font-size: 12px; font-weight: 850; }
.trust-item:last-child { border-right: 0; }
.trust-item[href] { transition: background .25s ease; }
.trust-item[href]:hover { background: rgba(255,255,255,.4); }
.trust-icon { display: grid; place-items: center; width: 30px; height: 30px; border-radius: 50%; color: var(--white); background: var(--sea); font-size: 13px; }

.section { padding: var(--section-space) 0; }
/* Generic pages need fixed-header clearance even with compact section spacing. */
main.section { padding-top: calc(90px + var(--section-space)); }
.section-heading { display: flex; justify-content: space-between; gap: 24px 50px; align-items: end; margin-bottom: var(--section-heading-space); }
.section .eyebrow { margin-bottom: 14px; }
.section-heading h2 { max-width: 720px; margin: 0; font-family: Georgia, "Times New Roman", serif; font-size: clamp(43px, 5.7vw, 76px); font-weight: 400; line-height: .98; letter-spacing: -3px; }
.section-heading p { max-width: 400px; margin: 0 0 5px; color: var(--muted); }

.intro-grid { display: grid; grid-template-columns: 1.2fr .8fr; gap: 80px; align-items: center; }
.intro-copy h2 { margin: 0; font-family: Georgia, serif; font-size: clamp(46px, 5.7vw, 76px); font-weight: 400; line-height: 1; letter-spacing: -3px; }
.intro-copy .lead { max-width: 620px; margin: 28px 0 0; color: var(--muted); font-size: 18px; }
.signature { display: flex; align-items: center; gap: 16px; margin-top: 32px; }
.signature-line { width: 58px; height: 1px; background: var(--coral); }
.signature strong { display: block; font-family: Georgia, serif; font-size: 20px; font-weight: 400; }
.signature small { color: var(--muted); }
.intro-visual { position: relative; min-height: 470px; }
.intro-photo { width: 83%; height: 470px; margin-left: auto; border-radius: var(--radius-lg) var(--radius-lg) 10px var(--radius-lg); object-fit: cover; box-shadow: var(--shadow); }
.float-card { position: absolute; left: 0; bottom: 20px; width: 225px; padding: 24px; border-radius: 24px; background: var(--ink); color: white; box-shadow: var(--shadow); }
.float-card .number { display: block; color: var(--sun); font-family: Georgia, serif; font-size: 48px; line-height: 1; }
.float-card p { margin: 8px 0 0; color: rgba(255,255,255,.68); font-size: 12px; }

.experiences { overflow: hidden; color: white; background: var(--ink-deep); }
.experiences .eyebrow { color: var(--sea-bright); }
.experiences .section-heading p { color: rgba(255,255,255,.58); }
.tour-grid { display: grid; grid-template-columns: repeat(12, 1fr); gap: 20px; }
.tour-card { position: relative; grid-column: span 6; min-height: 510px; overflow: hidden; border-radius: var(--radius-md); isolation: isolate; }
.tour-card:nth-child(1), .tour-card:nth-child(4) { grid-column: span 7; }
.tour-card:nth-child(2), .tour-card:nth-child(3) { grid-column: span 5; }
.tour-card img { position: absolute; z-index: -2; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: transform .7s cubic-bezier(.2,.7,.2,1); }
.tour-card::before { content: ""; position: absolute; z-index: -1; inset: 0; background: linear-gradient(0deg, rgba(3,25,30,.94), rgba(3,25,30,.08) 70%); }
.tour-card:hover img { transform: scale(1.045); }
.tour-card-content { position: absolute; right: 0; bottom: 0; left: 0; padding: 34px; }
.tour-meta { display: flex; flex-wrap: wrap; gap: 9px; margin-bottom: 15px; }
.tour-meta span { padding: 7px 11px; border: 1px solid rgba(255,255,255,.28); border-radius: 999px; color: rgba(255,255,255,.82); background: rgba(4,29,35,.18); backdrop-filter: blur(9px); font-size: 10px; font-weight: 850; letter-spacing: .6px; text-transform: uppercase; }
.tour-card h3 { margin: 0; font-family: Georgia, serif; font-size: clamp(31px, 3vw, 46px); font-weight: 400; line-height: 1; }
.tour-bottom { display: flex; align-items: end; justify-content: space-between; gap: 30px; margin-top: 16px; }
.tour-bottom p { max-width: 440px; margin: 0; color: rgba(255,255,255,.66); font-size: 13px; }
.tour-meta .tour-price { color: var(--ink-deep); border-color: transparent; background: var(--sun); }
.tour-meta .tour-promo { color: white; border-color: transparent; background: var(--coral); }
.tour-link { flex: 0 0 auto; display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-height: 44px; padding: 0 17px; border-radius: 999px; color: var(--ink); background: var(--sun); font-size: 11px; font-weight: 900; transition: transform .3s, box-shadow .3s; }
.tour-link span:last-child { font-size: 17px; line-height: 1; }
.tour-card:hover .tour-link { transform: translateY(-2px); box-shadow: 0 12px 28px rgba(4,29,35,.2); }
.tour-extras { display: flex; align-items: center; justify-content: space-between; gap: 28px; margin-top: 28px; padding-top: 28px; border-top: 1px solid rgba(255,255,255,.14); }
.tour-extras p { display: flex; flex-wrap: wrap; gap: 10px; margin: 0; color: rgba(255,255,255,.58); font-size: 12px; }
.tour-extras p strong { color: var(--sea-bright); letter-spacing: 1px; text-transform: uppercase; }
.tour-extras p span { padding-left: 10px; border-left: 1px solid rgba(255,255,255,.2); }

.booking-section { position: relative; overflow: hidden; scroll-margin-top: 72px; background: var(--sky); isolation: isolate; }
/* These neighboring blocks share one background; don't double their gap. */
.booking-section + .onboard { padding-top: 0; }
.booking-section::before { content: ""; position: absolute; z-index: -1; width: 640px; height: 640px; left: -330px; bottom: -360px; border: 1px solid rgba(8,44,52,.12); border-radius: 50%; box-shadow: 0 0 0 80px rgba(255,255,255,.18), 0 0 0 160px rgba(255,255,255,.13); }
.booking-shell { display: grid; grid-template-columns: .82fr 1.18fr; gap: clamp(55px, 8vw, 110px); align-items: start; }
.booking-shell.booking-shell-paused { grid-template-columns: minmax(0, 760px); }
.booking-copy { position: sticky; top: 130px; }
.booking-title-mobile { display: none; }
.booking-copy h2 { max-width: 610px; margin: 0; font-family: Georgia, serif; font-size: clamp(48px, 5.8vw, 78px); font-weight: 400; line-height: .96; letter-spacing: -3px; }
.booking-lead { max-width: 570px; margin: 26px 0 0; color: var(--muted); font-size: 17px; }
.booking-steps { display: grid; gap: 0; margin-top: 34px; border-top: 1px solid rgba(8,44,52,.13); }
.booking-steps > div { display: grid; grid-template-columns: 42px 1fr; gap: 15px; align-items: center; padding: 16px 0; border-bottom: 1px solid rgba(8,44,52,.13); }
.booking-steps > div > span { display: grid; width: 34px; height: 34px; place-items: center; border-radius: 50%; color: white; background: var(--sea); font-size: 9px; font-weight: 900; }
.booking-steps p { display: grid; margin: 0; }
.booking-steps strong { font-family: Georgia, serif; font-size: 19px; font-weight: 400; }
.booking-steps small { color: var(--muted); }
.booking-calendar-note { display: flex; align-items: center; gap: 13px; margin-top: 26px; }
.calendar-pulse { flex: 0 0 auto; width: 11px; height: 11px; border-radius: 50%; background: var(--coral); box-shadow: 0 0 0 7px rgba(255,122,89,.14); }
.calendar-pulse.is-connected { background: var(--sea); box-shadow: 0 0 0 7px rgba(13,127,136,.14); }
.booking-calendar-note p { display: grid; margin: 0; }
.booking-calendar-note strong { font-size: 12px; }
.booking-calendar-note small { max-width: 440px; color: var(--muted); }

.booking-panel { padding: 28px; border: 1px solid rgba(8,44,52,.1); border-radius: var(--radius-lg); background: rgba(255,255,255,.9); box-shadow: var(--shadow); backdrop-filter: blur(16px); }
.booking-form { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 19px; }
.booking-field { display: grid; align-content: start; gap: 7px; }
.booking-field-wide { grid-column: 1 / -1; }
.booking-field label, .booking-field > label { color: var(--ink); font-size: 11px; font-weight: 900; letter-spacing: .7px; text-transform: uppercase; }
.booking-field label[for="booking-tour"] { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; border: 0; }
.booking-field input, .booking-field select, .booking-field textarea { width: 100%; min-height: 51px; padding: 12px 14px; border: 1px solid rgba(8,44,52,.16); border-radius: 13px; color: var(--ink); background: white; outline: none; transition: border-color .2s, box-shadow .2s; }
.booking-field textarea { min-height: 92px; resize: vertical; }
.booking-field input:focus, .booking-field select:focus, .booking-field textarea:focus { border-color: var(--sea); box-shadow: 0 0 0 4px rgba(13,127,136,.1); }
.booking-tour-route { margin-top: -5px; padding: 14px 16px; border: 1px solid rgba(8,44,52,.1); border-radius: 14px; background: rgba(13,127,136,.055); }
.booking-tour-route[hidden] { display: none; }
.booking-tour-route > summary { color: var(--sea); font-size: 9px; font-weight: 900; letter-spacing: 1.05px; text-transform: uppercase; list-style: none; }
.booking-tour-route > summary::-webkit-details-marker { display: none; }
.booking-tour-route p { margin: 7px 0 0; color: var(--muted); font-size: 11px; line-height: 1.55; }
.booking-extra > summary { display: none; }
.booking-price-summary { display: grid; gap: 8px; padding: 17px 18px; border: 1px solid rgba(8,44,52,.12); border-radius: 16px; color: white; background: var(--ink); box-shadow: 0 12px 30px rgba(4,29,35,.09); }
.booking-price-summary[hidden] { display: none; }
.booking-price-head { display: flex; align-items: center; justify-content: space-between; gap: 14px; }
.booking-price-head > span:first-child { color: var(--sea-bright); font-size: 9px; font-weight: 900; letter-spacing: 1.1px; text-transform: uppercase; }
.booking-price-badge { padding: 5px 9px; border-radius: 999px; color: var(--ink-deep); background: var(--sun); font-size: 8px; font-weight: 900; letter-spacing: .45px; text-transform: uppercase; }
.booking-price-value { display: flex; align-items: baseline; gap: 11px; }
.booking-price-value del { color: rgba(255,255,255,.44); font-size: 15px; }
.booking-price-value strong { color: white; font-family: Georgia, serif; font-size: 31px; font-weight: 400; line-height: 1; }
.booking-price-summary p { margin: 1px 0 0; color: rgba(255,255,255,.5); font-size: 9px; }
.booking-field select:disabled { color: #829091; background: #f3f5f3; cursor: wait; }
.booking-availability { display: flex; align-items: flex-start; gap: 10px; min-height: 42px; margin: -2px 0 1px; padding: 11px 13px; border-radius: 12px; color: var(--muted); background: rgba(8,44,52,.045); font-size: 11px; }
.booking-status-dot { flex: 0 0 auto; width: 8px; height: 8px; margin-top: 5px; border-radius: 50%; background: var(--sea); }
.booking-availability.is-loading .booking-status-dot { animation: booking-pulse 1s ease-in-out infinite; }
.booking-availability.is-error { color: #8b493c; background: rgba(255,122,89,.1); }
.booking-availability.is-error .booking-status-dot { background: var(--coral); }
.booking-availability.is-ready { color: #17655f; background: rgba(13,127,136,.09); }
@keyframes booking-pulse { 50% { opacity: .25; transform: scale(.72); } }
.booking-consent { display: flex; align-items: flex-start; gap: 10px; color: var(--muted); font-size: 11px; line-height: 1.45; }
.booking-consent input { flex: 0 0 auto; width: 17px; height: 17px; margin: 2px 0 0; accent-color: var(--sea); }
.booking-consent a { margin-left: 5px; border-bottom: 1px solid currentColor; color: var(--sea); font-weight: 800; }
.booking-submit { width: 100%; margin-top: 3px; }
.booking-submit:disabled { opacity: .48; cursor: wait; transform: none; }
.booking-fineprint { margin: -6px 0 0; color: var(--muted); font-size: 10px; text-align: center; }
.booking-honeypot { position: absolute !important; left: -10000px !important; width: 1px !important; height: 1px !important; overflow: hidden !important; }
.booking-response { display: flex; align-items: flex-start; gap: 14px; margin: 0 0 24px; padding: 17px; border-radius: 15px; }
.booking-response > span { display: grid; flex: 0 0 auto; width: 31px; height: 31px; place-items: center; border-radius: 50%; color: white; font-weight: 900; }
.booking-response strong { display: block; font-family: Georgia, serif; font-size: 19px; font-weight: 400; }
.booking-response p { margin: 4px 0 0; font-size: 12px; }
.booking-response.is-success { color: #165b55; background: rgba(13,127,136,.1); }
.booking-response.is-success > span { background: var(--sea); }
.booking-response.is-error { color: #803d30; background: rgba(255,122,89,.12); }
.booking-response.is-error > span { background: var(--coral); }

.route-album-section { position: relative; overflow: hidden; color: white; background: var(--ink-deep); }
.route-album-section::before { content: "TOURS"; position: absolute; top: -70px; right: -25px; color: rgba(255,255,255,.025); font-family: Georgia, serif; font-size: clamp(150px, 25vw, 360px); line-height: 1; letter-spacing: -16px; pointer-events: none; }
html[lang="sr-ME"] .route-album-section::before { content: "TURE"; }
.route-album-heading { position: relative; display: grid; grid-template-columns: 1.22fr .78fr; gap: 80px; align-items: end; margin-bottom: 42px; }
.route-album-heading h2 { max-width: 820px; margin: 0; font-family: Georgia, serif; font-size: clamp(50px, 6.5vw, 88px); font-weight: 400; line-height: .93; letter-spacing: -4px; }
.route-album-heading .eyebrow { color: var(--sea-bright); }
.route-album-heading-side { display: grid; gap: 30px; padding-bottom: 7px; }
.route-album-heading-side > p { max-width: 430px; margin: 0; color: rgba(255,255,255,.6); font-size: 15px; }
.route-album-count { display: flex; align-items: center; gap: 14px; width: 100%; max-width: 320px; }
.route-album-count strong { color: var(--sun); font-family: Georgia, serif; font-size: 34px; font-weight: 400; }
.route-album-count span { flex: 1; height: 1px; background: rgba(255,255,255,.22); }
.route-album-count small { color: rgba(255,255,255,.45); font-size: 11px; font-weight: 900; letter-spacing: 1px; }
.route-album { position: relative; }
.route-album-viewport { overflow-x: auto; border: 1px solid rgba(255,255,255,.12); border-radius: 34px; background: #08282f; box-shadow: 0 35px 90px rgba(0,0,0,.28); scroll-snap-type: x mandatory; scrollbar-width: none; outline: none; }
.route-album-viewport::-webkit-scrollbar { display: none; }
.route-album-viewport:focus-visible { box-shadow: 0 0 0 3px var(--sun), 0 35px 90px rgba(0,0,0,.28); }
.route-album-track { display: flex; }
.route-album-slide { display: grid; flex: 0 0 100%; grid-template-columns: minmax(0, 1.08fr) minmax(390px, .92fr); min-width: 100%; min-height: 690px; scroll-snap-align: start; scroll-snap-stop: always; }
.route-album-photo { position: relative; min-height: 690px; overflow: hidden; background: var(--ink); }
.route-album-photo::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(3,25,30,.04) 32%, rgba(3,25,30,.8)); }
.route-album-photo img { width: 100%; height: 100%; min-height: 690px; object-fit: cover; transform: scale(1.025); transition: transform 1s cubic-bezier(.2,.7,.2,1), filter .7s ease; }
.route-album-slide.is-active .route-album-photo img { transform: scale(1); }
.route-photo-number { position: absolute; z-index: 2; top: 20px; left: 32px; color: rgba(255,255,255,.86); font-family: Georgia, serif; font-size: clamp(88px, 11vw, 164px); line-height: 1; letter-spacing: -8px; mix-blend-mode: overlay; }
.route-photo-meta { position: absolute; z-index: 3; right: 30px; bottom: 26px; left: 30px; display: flex; flex-wrap: wrap; gap: 8px; }
.route-photo-meta span { padding: 9px 13px; border: 1px solid rgba(255,255,255,.2); border-radius: 999px; color: white; background: rgba(3,25,30,.52); backdrop-filter: blur(12px); font-size: 10px; font-weight: 850; letter-spacing: .65px; text-transform: uppercase; }
.route-album-content { display: flex; min-width: 0; flex-direction: column; justify-content: space-between; gap: 28px; padding: clamp(34px, 4.5vw, 62px); background: linear-gradient(145deg, #0b343c, #062329); }
.route-album-content .eyebrow { margin-bottom: 16px; color: var(--sea-bright); }
.route-album-content h3 { max-width: 560px; margin: 0; font-family: Georgia, serif; font-size: clamp(38px, 4vw, 60px); font-weight: 400; line-height: .96; letter-spacing: -2.5px; }
.route-album-intro { max-width: 590px; margin: 22px 0 0; color: rgba(255,255,255,.62); font-size: 14px; line-height: 1.72; }
.route-itinerary { padding: 20px; border: 1px solid rgba(255,255,255,.11); border-radius: 20px; background: rgba(255,255,255,.045); }
.route-itinerary-label { display: flex; align-items: baseline; justify-content: space-between; gap: 18px; padding-bottom: 14px; border-bottom: 1px solid rgba(255,255,255,.1); }
.route-itinerary-label > span { color: var(--sun); font-size: 10px; font-weight: 900; letter-spacing: 1.25px; text-transform: uppercase; }
.route-itinerary-label small { color: rgba(255,255,255,.35); font-size: 9px; }
.route-itinerary ol { display: flex; flex-wrap: wrap; gap: 8px; margin: 16px 0 0; padding: 0; list-style: none; }
.route-itinerary li { display: inline-flex; align-items: center; gap: 8px; padding: 7px 10px; border-radius: 999px; color: rgba(255,255,255,.76); background: rgba(255,255,255,.065); font-size: 10px; line-height: 1.2; }
.route-itinerary li > span:first-child { flex: 0 0 auto; width: 5px; height: 5px; border-radius: 50%; background: var(--coral); box-shadow: 0 0 0 3px rgba(255,122,89,.13); }
.route-album-action { display: flex; align-items: center; justify-content: space-between; gap: 24px; padding-top: 4px; }
.route-album-action > div { display: grid; gap: 3px; }
.route-album-action small { color: rgba(255,255,255,.4); font-size: 9px; font-weight: 850; letter-spacing: 1px; text-transform: uppercase; }
.route-album-action strong { color: white; font-family: Georgia, serif; font-size: 24px; font-weight: 400; }
.route-album-action .button { flex: 0 0 auto; }
.route-album-controls { display: grid; grid-template-columns: auto minmax(120px, 1fr) auto; gap: 22px; align-items: center; margin: 24px 2px 20px; }
.route-album-arrows { display: flex; gap: 8px; }
.route-album-arrows button { display: grid; width: 48px; height: 48px; padding: 0; place-items: center; border: 1px solid rgba(255,255,255,.18); border-radius: 50%; color: white; background: transparent; font: inherit; font-size: 19px; cursor: pointer; transition: color .2s ease, background .2s ease, border-color .2s ease, transform .2s ease; }
.route-album-arrows button:hover:not(:disabled) { border-color: var(--sun); color: var(--ink); background: var(--sun); transform: translateY(-2px); }
.route-album-arrows button:focus-visible { outline: 3px solid var(--sun); outline-offset: 3px; }
.route-album-arrows button:disabled { opacity: .25; cursor: default; }
.route-album-progress { height: 2px; overflow: hidden; background: rgba(255,255,255,.14); }
.route-album-progress span { display: block; height: 100%; background: linear-gradient(90deg, var(--sea-bright), var(--sun)); transition: width .45s cubic-bezier(.2,.7,.2,1); }
.route-swipe-hint { color: rgba(255,255,255,.4); font-size: 9px; font-weight: 850; letter-spacing: 1px; text-transform: uppercase; }
.route-album-thumbs { display: flex; gap: 10px; overflow-x: auto; padding: 2px 2px 10px; scrollbar-width: none; }
.route-album-thumbs::-webkit-scrollbar { display: none; }
.route-thumb { display: grid; flex: 0 0 192px; grid-template-columns: 58px 1fr; gap: 11px; align-items: center; min-height: 68px; padding: 8px; border: 1px solid rgba(255,255,255,.1); border-radius: 14px; color: rgba(255,255,255,.55); background: rgba(255,255,255,.035); font: inherit; text-align: left; cursor: pointer; transition: color .25s ease, background .25s ease, border-color .25s ease, transform .25s ease; }
.route-thumb:hover { color: white; border-color: rgba(255,255,255,.3); transform: translateY(-2px); }
.route-thumb:focus-visible { outline: 3px solid var(--sun); outline-offset: 2px; }
.route-thumb.is-active { border-color: white; color: var(--ink); background: white; box-shadow: 0 12px 30px rgba(0,0,0,.2); }
.route-thumb img { width: 58px; height: 50px; border-radius: 9px; object-fit: cover; filter: saturate(.78); }
.route-thumb.is-active img { filter: none; }
.route-thumb > span { display: grid; min-width: 0; gap: 4px; }
.route-thumb small { color: var(--sea-bright); font-size: 8px; font-weight: 900; letter-spacing: 1px; }
.route-thumb.is-active small { color: var(--sea); }
.route-thumb strong { overflow: hidden; font-family: Georgia, serif; font-size: 12px; font-weight: 400; line-height: 1.05; text-overflow: ellipsis; white-space: nowrap; }

.tours-page { overflow: hidden; background: var(--paper); }
.tours-page-hero { position: relative; display: flex; align-items: flex-end; overflow: hidden; color: white; background: var(--ink-deep); isolation: isolate; }
.tours-page-hero-bg { position: absolute; z-index: -3; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: center 52%; animation: hero-in 1.8s cubic-bezier(.2,.7,.2,1) both; }
.tours-page-hero::before { content: ""; position: absolute; z-index: -2; inset: 0; background: linear-gradient(90deg, rgba(3,25,30,.94) 0%, rgba(3,25,30,.7) 43%, rgba(3,25,30,.2) 76%), linear-gradient(0deg, rgba(3,25,30,.88), transparent 56%); }
.tours-page-hero::after { content: ""; position: absolute; z-index: -1; width: 580px; height: 580px; top: -270px; right: -80px; border: 1px solid rgba(255,255,255,.2); border-radius: 50%; box-shadow: 0 0 0 85px rgba(255,255,255,.035), 0 0 0 170px rgba(255,255,255,.022); }
.tours-page-hero-inner { display: grid; grid-template-columns: 1.25fr .75fr; gap: 90px; align-items: end; padding: 190px 0 88px; }
.tours-page-hero-copy { max-width: 810px; }
.tours-page-hero-copy .eyebrow { color: var(--sun); }
.tours-page-hero-copy h1 { max-width: 800px; margin: 0; font-family: Georgia, serif; font-size: clamp(68px, 8.4vw, 124px); font-weight: 400; line-height: .85; letter-spacing: -5px; }
.tours-page-hero-copy > p:not(.eyebrow) { max-width: 620px; margin: 27px 0 31px; color: rgba(255,255,255,.72); font-size: clamp(16px, 1.5vw, 20px); }
.tours-page-facts { justify-self: end; width: min(100%, 390px); margin: 0; border: 1px solid rgba(255,255,255,.2); border-radius: 26px; background: rgba(4,29,35,.37); backdrop-filter: blur(18px); }
.tours-page-facts > div { display: flex; align-items: center; justify-content: space-between; gap: 24px; min-height: 88px; padding: 18px 24px; border-bottom: 1px solid rgba(255,255,255,.13); }
.tours-page-facts > div:last-child { border-bottom: 0; }
.tours-page-facts dt { color: rgba(255,255,255,.52); font-size: 10px; font-weight: 900; letter-spacing: 1.2px; text-transform: uppercase; }
.tours-page-facts dd { margin: 0; color: var(--sun); font-family: Georgia, serif; font-size: 32px; line-height: 1; }
.tours-directory { position: relative; padding-bottom: var(--section-space); scroll-margin-top: 76px; background: var(--paper); }
.tours-directory::before { content: "TOURS"; position: absolute; top: 15px; right: -20px; color: rgba(8,44,52,.035); font-family: Georgia, serif; font-size: clamp(150px, 25vw, 360px); line-height: 1; letter-spacing: -17px; pointer-events: none; }
html[lang="sr-ME"] .tours-directory::before { content: "TURE"; }
.tours-directory-heading { position: relative; display: grid; grid-template-columns: 1.18fr .82fr; gap: 90px; align-items: end; margin-bottom: var(--section-heading-space); }
.tours-directory-heading h2 { max-width: 780px; margin: 0; font-family: Georgia, serif; font-size: clamp(48px, 6vw, 82px); font-weight: 400; line-height: .95; letter-spacing: -3.5px; }
.tours-directory-heading > p { max-width: 430px; margin: 0 0 6px; color: var(--muted); }
.tours-directory-carousel { position: relative; }
.section-anchor { position: absolute; top: 0; scroll-margin-top: 76px; }
.tours-directory-strip { position: relative; display: grid; grid-auto-columns: minmax(225px, 1fr); grid-auto-flow: column; gap: 13px; overflow-x: auto; overscroll-behavior-inline: contain; padding: 24px 8px 32px; scroll-padding-inline: 8px; scroll-snap-type: x mandatory; scrollbar-color: rgba(8,44,52,.22) transparent; scrollbar-width: thin; outline: none; }
.tours-directory-carousel.is-enhanced .tours-directory-strip { scrollbar-width: none; }
.tours-directory-carousel.is-enhanced .tours-directory-strip::-webkit-scrollbar { display: none; }
.tours-directory-strip:focus-visible { border-radius: 25px; box-shadow: 0 0 0 3px var(--sun); }
.tours-directory-card { position: relative; min-height: 370px; overflow: hidden; border-radius: 24px; color: white; background: var(--ink); scroll-snap-align: start; scroll-snap-stop: always; isolation: isolate; transition: transform .35s ease, box-shadow .35s ease; }
.tours-directory-card:nth-child(even) { transform: translateY(18px); }
.tours-directory-card:hover, .tours-directory-card.is-current { transform: translateY(-4px); box-shadow: 0 24px 55px rgba(4,29,35,.18); }
.tours-directory-card:nth-child(even):hover, .tours-directory-card:nth-child(even).is-current { transform: translateY(10px); }
.tours-directory-card.is-current { transform: translateY(-10px) scale(1.026); box-shadow: 0 0 0 2px rgba(255,201,107,.9), 0 30px 72px rgba(4,29,35,.28); }
.tours-directory-card:nth-child(even).is-current { transform: translateY(-10px) scale(1.026); }
.tours-directory-card:focus-visible { outline: 3px solid var(--coral); outline-offset: 4px; }
.tours-directory-card::after { content: ""; position: absolute; z-index: -1; inset: 0; background: linear-gradient(0deg, rgba(3,25,30,.95), rgba(3,25,30,.05) 75%); }
.tours-directory-card img { position: absolute; z-index: -2; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.tours-directory-number { position: absolute; top: 16px; left: 19px; color: rgba(255,255,255,.76); font-family: Georgia, serif; font-size: 58px; line-height: 1; letter-spacing: -3px; mix-blend-mode: overlay; }
.tours-directory-card.is-current .tours-directory-number { color: white; mix-blend-mode: normal; text-shadow: 0 3px 20px rgba(3,25,30,.42); }
.tours-directory-card-copy { position: absolute; right: 0; bottom: 0; left: 0; display: grid; gap: 7px; padding: 24px; }
.tours-directory-card-copy small { color: var(--sea-bright); font-size: 9px; font-weight: 900; letter-spacing: 1.2px; text-transform: uppercase; }
.tours-directory-card-copy strong { font-family: Georgia, serif; font-size: 25px; font-weight: 400; line-height: 1.02; }
.tours-directory-card-copy > span { display: flex; align-items: center; gap: 8px; margin-top: 5px; color: var(--sun); font-size: 9px; font-weight: 900; letter-spacing: 1px; text-transform: uppercase; }
.tours-directory-card-copy > span::after { content: "→"; display: grid; width: 24px; height: 24px; place-items: center; border: 1px solid rgba(255,201,107,.45); border-radius: 50%; }
.tours-directory-controls { display: none; grid-template-columns: auto minmax(120px, 1fr) auto auto; gap: 22px; align-items: center; margin: 12px 3px 0; }
.tours-directory-carousel.is-enhanced .tours-directory-controls { display: grid; }
.tours-directory-count { display: flex; align-items: baseline; gap: 8px; min-width: 88px; margin: 0; font-family: Georgia, serif; }
.tours-directory-count strong { font-size: 25px; font-weight: 400; letter-spacing: -.8px; }
.tours-directory-count span { color: var(--muted); font-size: 12px; }
.tours-directory-progress { position: relative; height: 2px; overflow: hidden; background: rgba(8,44,52,.12); }
.tours-directory-progress span { position: absolute; top: 0; bottom: 0; left: 0; width: 0; background: linear-gradient(90deg, var(--sea), var(--sea-bright)); transition: left .35s cubic-bezier(.2,.7,.2,1), width .35s cubic-bezier(.2,.7,.2,1); }
.tours-directory-swipe { color: var(--muted); font-size: 9px; font-weight: 850; letter-spacing: 1px; text-transform: uppercase; }
.tours-directory-arrows { display: flex; gap: 8px; }
.tours-directory-arrows button { display: grid; width: 48px; height: 48px; padding: 0; place-items: center; border: 1px solid rgba(8,44,52,.16); border-radius: 50%; color: var(--ink); background: rgba(255,255,255,.72); font-size: 19px; cursor: pointer; transition: color .2s ease, background .2s ease, border-color .2s ease, transform .2s ease; }
.tours-directory-arrows button:hover { border-color: var(--ink); color: white; background: var(--ink); transform: translateY(-2px); }
.tours-directory-arrows [data-tours-autoplay-toggle].is-paused { border-color: var(--sea); color: white; background: var(--sea); }
.tours-directory-arrows button:focus-visible { outline: 3px solid var(--sun); outline-offset: 3px; }
.tours-directory-arrows button:disabled { opacity: .3; cursor: default; transform: none; }
.tours-directory-arrows button[hidden] { display: none; }
.tours-directory-carousel.is-static .tours-directory-controls { display: none; }
/* The homepage uses the compact catalogue cards, with its original dark palette. */
.tours-directory-home { --muted: rgba(255,255,255,.68); overflow: hidden; padding-block: var(--section-space); color: white; background: var(--ink-deep); scroll-margin-top: 76px; }
.tours-directory-home::before { color: rgba(255,255,255,.025); }
.tours-directory-home .tours-directory-heading { gap: clamp(24px, 4vw, 56px); margin-bottom: var(--section-heading-space); }
.tours-directory-home .tours-directory-heading h2 { max-width: 640px; font-size: clamp(36px, 4.4vw, 58px); line-height: 1.04; letter-spacing: -2px; }
.tours-directory-home .tours-directory-heading > p { font-size: 16px; }
.tours-directory-home .tours-directory-count strong { color: var(--sun); }
.tours-directory-home .tours-directory-progress { background: rgba(255,255,255,.16); }
.tours-directory-home .tours-directory-strip { scrollbar-color: rgba(255,255,255,.3) transparent; }
.tours-directory-home .tours-directory-arrows button { border-color: rgba(255,255,255,.25); color: white; background: rgba(255,255,255,.06); }
.tours-directory-home .tours-directory-arrows button:hover { border-color: var(--sun); color: var(--ink); background: var(--sun); }
.tours-directory-home .tours-directory-arrows [data-tours-autoplay-toggle].is-paused { border-color: var(--sea-bright); background: var(--sea); }
.tours-directory-home .tours-directory-card-copy > span::after { content: "→"; }
.home-tours-action { display: flex; align-items: center; justify-content: space-between; gap: 24px; margin-top: 22px; padding-top: 20px; border-top: 1px solid rgba(255,255,255,.16); }
.home-tours-action p { max-width: 440px; margin: 0; color: rgba(255,255,255,.75); font-size: 16px; }
.home-tours-action .button { flex-shrink: 0; }
.tours-empty { position: relative; max-width: 760px; padding: 48px; border-radius: var(--radius-md); background: var(--sky); }
.tours-empty h2 { margin: 0; font-family: Georgia, serif; font-size: 42px; font-weight: 400; }
.tours-empty p { color: var(--muted); }
.tours-detail-list { background: var(--sand); }
.tours-detail { position: relative; scroll-margin-top: 72px; border-top: 1px solid rgba(8,44,52,.09); background: var(--sand); }
.tours-detail:nth-child(even) { color: white; background: var(--ink-deep); }
.tours-detail-shell { display: grid; grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); gap: clamp(55px, 8vw, 110px); align-items: center; }
.tours-detail:nth-child(even) .tours-detail-media { order: 2; }
.tours-detail-media { position: relative; min-height: 650px; overflow: hidden; border-radius: var(--radius-lg) var(--radius-lg) 12px var(--radius-lg); background: var(--ink); box-shadow: var(--shadow); }
.tours-detail:nth-child(even) .tours-detail-media { border-radius: var(--radius-lg) var(--radius-lg) var(--radius-lg) 12px; }
.tours-detail-media::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(3,25,30,.04) 35%, rgba(3,25,30,.78)); }
.tours-detail-media img { width: 100%; height: 650px; object-fit: cover; transition: transform .7s cubic-bezier(.2,.7,.2,1); }
.tours-detail-media:hover img { transform: scale(1.035); }
.tours-detail-number { position: absolute; z-index: 2; top: 20px; left: 28px; color: rgba(255,255,255,.75); font-family: Georgia, serif; font-size: clamp(88px, 10vw, 150px); line-height: 1; letter-spacing: -8px; mix-blend-mode: overlay; }
.tours-detail-media-meta { position: absolute; z-index: 2; right: 25px; bottom: 24px; left: 25px; display: flex; flex-wrap: wrap; gap: 8px; }
.tours-detail-media-meta span { padding: 8px 12px; border: 1px solid rgba(255,255,255,.24); border-radius: 999px; color: white; background: rgba(3,25,30,.5); backdrop-filter: blur(11px); font-size: 9px; font-weight: 850; letter-spacing: .65px; text-transform: uppercase; }
.tours-detail-copy { min-width: 0; }
.tours-detail-copy .eyebrow { margin-bottom: 15px; color: var(--sea); }
.tours-detail:nth-child(even) .tours-detail-copy .eyebrow { color: var(--sea-bright); }
.tours-detail-copy h2, .tours-detail-copy h1 { max-width: 710px; margin: 0; font-family: Georgia, serif; font-size: clamp(44px, 5.2vw, 72px); font-weight: 400; line-height: .95; letter-spacing: -3px; }
.tours-detail-lead { max-width: 720px; margin: 24px 0 0; color: var(--muted); font-size: 15px; line-height: 1.75; }
.tours-detail:nth-child(even) .tours-detail-lead { color: rgba(255,255,255,.62); }
.tours-detail-route { padding: 0; }
.tours-detail:nth-child(even) .tours-detail-route { border-color: rgba(255,255,255,.13); }
.tours-detail-label { display: flex; align-items: baseline; justify-content: space-between; gap: 20px; }
.tours-detail-label strong { color: var(--sea); font-size: 10px; letter-spacing: 1.2px; text-transform: uppercase; }
.tours-detail:nth-child(even) .tours-detail-label strong { color: var(--sun); }
.tours-detail-label small { color: var(--muted); font-size: 9px; }
.tours-detail:nth-child(even) .tours-detail-label small { color: rgba(255,255,255,.38); }
.tours-detail-route-note { margin: 0; padding: 0 18px; color: var(--muted); font-size: 12px; }
.tours-detail:nth-child(even) .tours-detail-route-note { color: rgba(255,255,255,.68); }
.tours-detail-route ol { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 22px; margin: 0; padding: 8px 18px 16px; list-style: none; }
.tours-detail-route ol li { display: grid; grid-template-columns: 27px 1fr; gap: 10px; align-items: start; padding: 8px 0; color: var(--ink); font-size: 14px; line-height: 1.45; }
.tours-detail:nth-child(even) .tours-detail-route li { color: rgba(255,255,255,.7); }
.tours-detail-route ol li > span:first-child { display: grid; width: 25px; height: 25px; place-items: center; border-radius: 50%; color: white; background: var(--sea); font-size: 12px; font-weight: 800; }
.tours-detail:nth-child(even) .tours-detail-route li > span:first-child { color: var(--ink); background: var(--sun); }
.tours-detail-included { margin-top: 18px; border: 1px solid rgba(8,44,52,.13); border-radius: 18px; background: rgba(255,255,255,.22); }
.tours-detail:nth-child(even) .tours-detail-included { border-color: rgba(255,255,255,.13); background: rgba(255,255,255,.04); }
.tours-detail-included summary { display: flex; align-items: center; justify-content: space-between; gap: 18px; padding: 14px 18px; cursor: pointer; list-style: none; font-size: 14px; font-weight: 800; letter-spacing: .4px; }
.tours-detail-included summary:focus-visible { outline: 3px solid var(--sea); outline-offset: 3px; border-radius: 18px; }
.tours-detail-included summary::-webkit-details-marker { display: none; }
.tours-detail-included summary > span:last-child { display: grid; flex: 0 0 auto; width: 28px; height: 28px; place-items: center; border-radius: 50%; color: white; background: var(--sea); font-size: 18px; font-weight: 400; transition: transform .25s ease; }
.tours-detail:nth-child(even) .tours-detail-included summary > span:last-child { color: var(--ink); background: var(--sun); }
.tours-detail-included[open] summary > span:last-child { transform: rotate(45deg); }
.tours-detail-included ul { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 9px 20px; margin: 0; padding: 0 18px 19px; list-style: none; }
.tours-detail-included ul li { display: flex; align-items: flex-start; gap: 9px; color: var(--muted); font-size: 14px; }
.tours-detail-included ul li > span:first-child { color: var(--sea); font-weight: 900; }
.tours-detail:nth-child(even) .tours-detail-included li { color: rgba(255,255,255,.62); }
.tours-detail:nth-child(even) .tours-detail-included ul li > span:first-child { color: var(--sea-bright); }
.tours-detail-cancellation > p { margin: 0; padding: 0 18px 18px; color: var(--muted); font-size: 14px; line-height: 1.6; }
.tours-detail:nth-child(even) .tours-detail-cancellation > p { color: rgba(255,255,255,.7); }
.tours-detail-action { display: flex; align-items: center; justify-content: space-between; gap: 24px; margin-top: 28px; }
.tours-detail-action > div { display: grid; gap: 3px; }
.tours-detail-action small { color: var(--muted); font-size: 9px; font-weight: 850; letter-spacing: 1px; text-transform: uppercase; }
.tours-detail:nth-child(even) .tours-detail-action small { color: rgba(255,255,255,.4); }
.tours-detail-action strong { font-family: Georgia, serif; font-size: 26px; font-weight: 400; }

.onboard { overflow: hidden; background: var(--sky); }
.onboard-shell { display: grid; grid-template-columns: 1fr 1fr; gap: 80px; align-items: center; }
.onboard-visual { position: relative; min-height: 650px; }
.onboard-visual::before { content: ""; position: absolute; width: 290px; height: 290px; left: -70px; bottom: -45px; border: 1px solid rgba(8,44,52,.12); border-radius: 50%; box-shadow: 0 0 0 50px rgba(255,255,255,.22), 0 0 0 100px rgba(255,255,255,.16); }
.onboard-visual img { position: relative; width: 100%; height: 650px; object-fit: cover; border-radius: var(--radius-lg) var(--radius-lg) var(--radius-lg) 12px; box-shadow: var(--shadow); }
.onboard-stamp { position: absolute; right: -24px; bottom: 46px; display: grid; width: 158px; aspect-ratio: 1; place-content: center; padding: 16px; border-radius: 50%; color: var(--ink); background: var(--sun); box-shadow: 0 16px 50px rgba(4,29,35,.2); text-align: center; transform: rotate(-7deg); }
.onboard-stamp span { font-size: 10px; font-weight: 900; letter-spacing: 1.4px; text-transform: uppercase; }
.onboard-stamp strong { max-width: 100px; font-family: Georgia, serif; font-size: 21px; font-weight: 400; line-height: 1.1; }
.onboard-copy h2 { margin: 0; font-family: Georgia, serif; font-size: clamp(46px, 5.8vw, 76px); font-weight: 400; line-height: .98; letter-spacing: -3px; }
.onboard-copy > p:not(.eyebrow) { max-width: 560px; margin: 26px 0 0; color: var(--muted); font-size: 16px; }
.amenity-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 0 24px; margin: 32px 0 0; padding: 0; list-style: none; }
.amenity-grid li { display: flex; align-items: center; gap: 10px; min-height: 48px; border-top: 1px solid rgba(8,44,52,.12); color: var(--ink); font-size: 13px; font-weight: 750; }
.amenity-grid li span:first-child { display: grid; flex: 0 0 auto; width: 23px; height: 23px; place-items: center; border-radius: 50%; color: white; background: var(--sea); font-size: 10px; }
.amenity-grid .wide { grid-column: 1/-1; }
.amenity-grid .wide span:first-child { color: var(--ink); background: var(--sun); }

.why { background: var(--sand); }
.single-tour-page { padding-top: 96px; }
.tour-breadcrumbs { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; padding-block: 8px; color: var(--muted); font-size: 14px; }
.tour-breadcrumbs a { display: inline-flex; min-height: 44px; align-items: center; color: var(--sea); }
.single-tour-detail .tours-detail { border-top: 0; background: var(--paper); }
.single-tour-detail .tours-detail-shell { align-items: start; gap: 40px; }
.single-tour-detail .tours-detail-media { min-height: 500px; height: 500px; }
.single-tour-detail .tours-detail-media img { min-height: 500px; height: 500px; }
.single-tour-detail .tours-detail-number { display: none; }
.single-tour-detail .tours-detail-copy { display: flex; flex-direction: column; }
.single-tour-detail .tours-detail-copy > header { order: 0; }
.single-tour-detail .tours-detail-action { order: 1; margin-top: 22px; }
.single-tour-detail .tours-detail-route { order: 2; margin-top: 22px; }
.single-tour-detail .tours-detail-included:not(.tours-detail-route):not(.tours-detail-cancellation) { order: 3; }
.single-tour-detail .tours-detail-cancellation { order: 4; }
.single-tour-detail .tours-detail-lead { font-size: 16px; }
.single-tour-detail .tours-detail-route li, .single-tour-detail .tours-detail-included li { font-size: 14px; }
.single-tour-detail .tours-detail-label strong, .single-tour-detail .tours-detail-label small { font-size: 12px; }
.tour-page-link a { display: inline-flex; align-items: center; min-height: 44px; color: var(--sea); border-bottom: 1px solid currentColor; font-size: 14px; }
@media (max-width: 980px) {
  .single-tour-detail .tours-detail-shell { gap: 24px; }
}
@media (max-width: 680px) {
  .single-tour-page { padding-top: 78px; }
  .tour-breadcrumbs { gap: 6px; padding-block: 0; font-size: 13px; }
  .tour-breadcrumbs > [aria-current], .tour-breadcrumbs > span:nth-last-child(2) { display: none; }
  .single-tour-detail .tours-detail-media { min-height: 240px; height: 240px; }
  .single-tour-detail .tours-detail-media img { min-height: 240px; height: 240px; }
  .single-tour-detail .tours-detail-shell { gap: 20px; }
  .single-tour-detail .tours-detail-copy h1 { font-size: clamp(34px, 9vw, 44px); line-height: 1.04; letter-spacing: -1.5px; }
  .single-tour-detail .tours-detail-copy .eyebrow { margin-bottom: 10px; }
  .single-tour-detail .tours-detail-lead { margin-top: 14px; line-height: 1.6; }
}
.why-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1px; border: 1px solid rgba(8,44,52,.12); border-radius: var(--radius-md); overflow: hidden; background: rgba(8,44,52,.12); }
.why-card { min-height: 0; padding: 24px; background: var(--sand); transition: background .3s; }
.why-card:hover { background: #f8f1e4; }
.why-icon { display: grid; place-items: center; width: 52px; height: 52px; margin-bottom: 18px; border-radius: 18px; color: white; background: var(--sea); font-size: 21px; }
.why-card:nth-child(2) .why-icon { color: var(--ink); background: var(--sun); }
.why-card:nth-child(3) .why-icon { background: var(--coral); }
.why-card:nth-child(4) .why-icon { background: var(--ink); }
.why-card h3 { margin: 0; font-family: Georgia, serif; font-size: 26px; font-weight: 400; }
.why-card p { margin: 11px 0 0; color: var(--muted); font-size: 13px; }

.guest-reviews { overflow: hidden; color: white; background: var(--ink); }
.guest-reviews-heading { display: grid; grid-template-columns: 1.25fr .75fr; gap: 60px; align-items: end; margin-bottom: var(--section-heading-space); }
.guest-reviews-heading .eyebrow { color: var(--sea-bright); }
.guest-reviews-heading h2 { max-width: 760px; margin: 0; font-family: Georgia, serif; font-size: clamp(48px, 6vw, 78px); font-weight: 400; line-height: .98; letter-spacing: -3px; }
.guest-reviews-source { justify-self: end; max-width: 330px; }
.guest-reviews-source p { margin: 0 0 14px; color: rgba(255,255,255,.62); font-size: 13px; }
.guest-reviews-source a { display: inline-block; padding-bottom: 4px; border-bottom: 1px solid var(--sun); color: var(--sun); font-size: 12px; font-weight: 850; }
.guest-review-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; }
.guest-review-card { display: flex; flex-direction: column; gap: 20px; min-height: 0; padding: 24px; border: 1px solid rgba(255,255,255,.13); border-radius: 24px; background: rgba(255,255,255,.055); }
.guest-review-card:nth-child(3n+2) { border-color: transparent; background: var(--sea); }
.guest-review-rating { display: flex; align-items: center; gap: 10px; color: var(--sun); }
.guest-review-rating small { color: rgba(255,255,255,.58); font-size: 10px; font-weight: 800; }
.guest-review-stars { position: relative; display: inline-block; color: rgba(255,255,255,.18); font-size: 14px; letter-spacing: 4px; line-height: 1; }
.guest-review-stars::before { content: "★★★★★"; }
.guest-review-stars > span { position: absolute; inset: 0 auto 0 0; overflow: hidden; color: var(--sun); white-space: nowrap; }
.guest-review-card blockquote { margin: 0; font-family: Georgia, serif; font-size: 23px; line-height: 1.3; }
.guest-review-card footer { display: flex; align-items: flex-end; justify-content: space-between; gap: 15px; }
.guest-review-card footer strong { color: var(--sun); font-size: 11px; letter-spacing: .8px; text-transform: uppercase; }
.guest-review-card footer span { color: rgba(255,255,255,.5); font-size: 10px; }

.instagram { overflow: hidden; padding-bottom: 0; background: var(--paper); }
.insta-row { display: grid; grid-template-columns: repeat(5, 1fr); gap: 10px; margin: 45px -5vw 0; transform: rotate(-1.7deg); }
.insta-tile { position: relative; aspect-ratio: 4/5; overflow: hidden; border-radius: 20px; background: var(--sky); }
.insta-tile:nth-child(even) { transform: translateY(28px); }
.insta-tile img { width: 100%; height: 100%; object-fit: cover; }

.faq-wrap { display: grid; grid-template-columns: .65fr 1.35fr; gap: 90px; align-items: start; }
.faq-intro { position: sticky; top: 130px; }
.faq-intro h2 { margin: 0; font-family: Georgia, serif; font-size: clamp(46px, 5vw, 68px); font-weight: 400; line-height: 1; letter-spacing: -3px; }
.faq-intro p { color: var(--muted); }
.faq-list { border-top: 1px solid var(--line); }
.faq-item { border-bottom: 1px solid var(--line); }
.faq-question { width: 100%; min-height: 44px; padding: 16px 0; border: 0; display: flex; align-items: center; justify-content: space-between; gap: 20px; text-align: left; background: transparent; cursor: pointer; font-family: Georgia, serif; font-size: 24px; }
.faq-plus { position: relative; width: 34px; height: 34px; flex: 0 0 auto; border: 1px solid var(--line); border-radius: 50%; }
.faq-plus::before, .faq-plus::after { content: ""; position: absolute; top: 50%; left: 50%; width: 12px; height: 1px; background: var(--ink); transform: translate(-50%,-50%); transition: transform .25s; }
.faq-plus::after { transform: translate(-50%,-50%) rotate(90deg); }
.faq-item.open .faq-plus::after { transform: translate(-50%,-50%) rotate(0); }
.faq-answer { display: grid; grid-template-rows: 0fr; transition: grid-template-rows .35s ease; }
.faq-answer > div { overflow: hidden; }
.faq-answer p { max-width: 650px; margin: 0; padding: 0 60px 24px 0; color: var(--muted); }
.faq-item.open .faq-answer { grid-template-rows: 1fr; }

.cta-section { padding: 0; }
.cta-box { position: relative; overflow: hidden; display: grid; grid-template-columns: 1.2fr .8fr; gap: 24px 60px; align-items: end; min-height: 0; padding: 32px; border-radius: var(--radius-lg) var(--radius-lg) 0 0; color: white; background: var(--sea); isolation: isolate; }
.cta-box::before { content: ""; position: absolute; z-index: -1; width: 520px; height: 520px; right: -160px; top: -210px; border-radius: 50%; border: 1px solid rgba(255,255,255,.18); box-shadow: 0 0 0 80px rgba(255,255,255,.045), 0 0 0 160px rgba(255,255,255,.03); }
.cta-box h2 { max-width: 720px; margin: 0; font-family: Georgia, serif; font-size: clamp(54px, 6.5vw, 90px); font-weight: 400; line-height: .92; letter-spacing: -4px; }
.cta-box p { max-width: 520px; color: rgba(255,255,255,.75); }
.cta-actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 28px; }
.cta-side { justify-self: end; text-align: right; }
.cta-side .big-time { display: block; color: var(--sun); font-family: Georgia, serif; font-size: 72px; line-height: 1; }
.cta-side small { color: rgba(255,255,255,.68); }

.site-footer { color: white; background: var(--ink-deep); }
.mobile-book { display: none; }
.footer-main { display: grid; grid-template-columns: 1.35fr repeat(2, .65fr); gap: 70px; padding: 32px 0 24px; }
.footer-brand .brand-copy { color: white; }
.footer-brand p { max-width: 400px; margin-top: 25px; color: rgba(255,255,255,.56); }
.footer-column h3 { margin: 0 0 20px; color: var(--sea-bright); font-size: 10px; letter-spacing: 2px; text-transform: uppercase; }
.footer-column a { display: block; width: fit-content; margin: 10px 0; color: rgba(255,255,255,.7); font-size: 14px; }
.footer-column a:hover { color: var(--sun); }
.footer-column .footer-instagram { display: inline-flex; align-items: center; gap: 12px; min-height: 44px; }
.footer-instagram-copy { display: grid; min-width: 0; }
.footer-instagram-copy small { font-size: 12px; overflow-wrap: anywhere; }
.footer-bottom { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 8px 25px; padding: 22px 0; border-top: 1px solid rgba(255,255,255,.1); color: rgba(255,255,255,.55); font-size: 12px; }
.footer-credit { min-width: 0; overflow-wrap: anywhere; }

.reveal { opacity: 0; transform: translateY(28px); transition: opacity .8s ease, transform .8s cubic-bezier(.2,.7,.2,1); }
.reveal.visible { opacity: 1; transform: translateY(0); }

@media (max-width: 980px) {
  :root { --section-space: 28px; }
  .nav-wrap { gap: 12px; }
  .desktop-nav { display: none; position: fixed; inset: 76px 0 0; height: calc(100vh - 76px); height: calc(100dvh - 76px); padding: 24px 24px max(28px, env(safe-area-inset-bottom)); gap: clamp(8px, 2vh, 20px); overflow-y: auto; overscroll-behavior: contain; flex-direction: column; align-items: flex-start; justify-content: flex-start; color: white !important; background: var(--ink-deep); font-family: Georgia, serif; font-size: clamp(28px, 5vh, 36px); }
  .desktop-nav > a { flex-shrink: 0; min-height: 44px; line-height: 1.3; }
  .nav-open .desktop-nav { display: flex; }
  /* A filtered header otherwise traps its fixed menu inside the header box. */
  .nav-open .site-header { height: 76px; backdrop-filter: none; -webkit-backdrop-filter: none; background: var(--ink-deep); box-shadow: none; }
  .nav-open .site-header .brand-copy { color: white; }
  .nav-open .site-header .brand-mark { color: white; border-color: rgba(255,255,255,.4); background: rgba(255,255,255,.1); }
  .nav-open .site-header .nav-toggle { color: white; border-color: rgba(255,255,255,.4); background: rgba(255,255,255,.1); }
  .nav-open .site-header .language-switch { color: white; border-color: rgba(255,255,255,.3); background: rgba(255,255,255,.1); }
  .nav-open .mobile-book { visibility: hidden; }
  .desktop-nav .nav-cta { width: 100%; margin-top: 14px; font-family: Inter, sans-serif; font-size: 14px; }
  .language-switch { position: static; flex-shrink: 0; font-family: Inter, sans-serif; font-size: 12px; }
  .nav-toggle { display: block; }
  .hero-content { grid-template-columns: 1fr; }
  .hero-aside { display: none; }
  .hero-location-mobile { position: absolute; left: 0; bottom: 7px; display: inline-flex; align-items: center; gap: 10px; min-height: 44px; color: var(--sky); font-size: 14px; font-weight: 700; text-decoration: underline; text-underline-offset: 4px; }
  .hero h1 { letter-spacing: -4px; }
  .trust-inner { grid-template-columns: repeat(2, 1fr); }
  .trust-item:nth-child(2) { border-right: 0; }
  .trust-item:nth-child(-n+2) { border-bottom: 1px solid rgba(8,44,52,.12); }
  .intro-grid, .faq-wrap, .booking-shell { grid-template-columns: 1fr; gap: 24px; }
  .booking-copy { position: static; }
  .route-album-heading { grid-template-columns: 1fr; gap: 28px; }
  .route-album-heading-side { display: flex; align-items: end; justify-content: space-between; gap: 35px; }
  .route-album-slide { grid-template-columns: 1fr; min-height: 0; }
  .route-album-photo, .route-album-photo img { min-height: 470px; height: 470px; }
  .route-album-content { min-height: 610px; }
  .tours-page-hero-inner { grid-template-columns: 1fr; gap: 48px; }
  .tours-page-facts { justify-self: start; display: grid; grid-template-columns: repeat(3, 1fr); width: 100%; max-width: none; }
  .tours-page-facts > div { display: grid; justify-content: start; border-right: 1px solid rgba(255,255,255,.13); border-bottom: 0; }
  .tours-page-facts > div:last-child { border-right: 0; }
  .tours-directory-heading { grid-template-columns: 1fr; gap: 24px; }
  .tours-detail-shell { grid-template-columns: 1fr; gap: 24px; }
  .tours-detail:nth-child(even) .tours-detail-media { order: 0; }
  .tours-detail-media, .tours-detail-media img { min-height: 560px; height: 560px; }
  .onboard-shell { grid-template-columns: 1fr; gap: 24px; }
  .guest-reviews-heading { grid-template-columns: 1fr; gap: 25px; }
  .guest-reviews-source { justify-self: start; }
  .guest-review-grid { grid-template-columns: repeat(2, 1fr); }
  .onboard-visual { min-height: 540px; }
  .onboard-visual img { height: 540px; }
  .why-grid { grid-template-columns: repeat(2, 1fr); }
  .section-heading { display: grid; }
  .faq-intro { position: static; }
  .cta-box { grid-template-columns: 1fr; }
  .cta-side { justify-self: start; text-align: left; }
}

@media (max-width: 680px) {
  :root { --container: min(100% - 28px, 1180px); --radius-lg: 30px; --radius-md: 22px; --section-space: 20px; --section-heading-space: 14px; }
  .site-header { padding-top: 12px; }
  .brand-mark { width: 42px; }
  .brand-name { font-size: 20px; }
  .hero, .tours-page-hero { min-height: 620px; height: auto; }
  /* Keep the upper photograph open; group the copy and one CTA at its foot. */
  .hero-content { padding: 290px 0 24px; }
  .hero-content > div:first-child { display: grid; grid-template-columns: minmax(0, 1fr) auto; column-gap: 18px; align-items: center; }
  .hero::before { background: linear-gradient(0deg, rgba(3,25,30,.97) 0%, rgba(3,25,30,.88) 24%, rgba(3,25,30,.15) 58%, rgba(3,25,30,.04) 78%, rgba(3,25,30,.28) 100%); }
  .hero::after, .hero .eyebrow { display: none; }
  .hero h1 { grid-column: 1 / -1; font-size: clamp(36px, 10vw, 44px); letter-spacing: -1.5px; line-height: 1.02; overflow-wrap: break-word; opacity: .82; }
  .hero h1 em { padding-left: 0; }
  .hero-sub { grid-column: 1 / -1; margin: 12px 0 18px; color: rgba(255,255,255,.88); font-size: 16px; line-height: 1.45; }
  .hero-actions { display: contents; }
  .hero-actions .button-primary { width: 100%; min-height: 48px; padding: 12px 16px; font-size: 14px; }
  /* Instagram remains available in the header and footer on mobile. */
  .hero-actions .button-secondary { display: none; }
  .hero .hero-location-mobile { position: static; min-height: 48px; gap: 6px; margin: 0; }
  .trust-inner { width: 100%; }
  .trust-item { padding: 10px 8px; font-size: 10px; text-align: center; }
  .trust-icon { display: none; }
  .section { padding: var(--section-space) 0; }
  main.section { padding-top: calc(76px + var(--section-space)); }
  .section .eyebrow { margin-bottom: 12px; }
  .section-heading { gap: 12px; margin-bottom: var(--section-heading-space); }
  .section-heading h2, .intro-copy h2, .faq-intro h2, .onboard-copy h2, .guest-reviews-heading h2 { font-size: clamp(32px, 8.8vw, 40px); line-height: 1.06; letter-spacing: -1.5px; }
  .intro-grid, .faq-wrap, .onboard-shell { gap: 20px; }
  .intro-copy .lead { margin-top: 16px; font-size: 16px; }
  .signature { margin-top: 16px; }
  .intro-visual { min-height: 240px; }
  .intro-photo { width: 100%; height: 240px; }
  .float-card { display: none; }
  .tour-grid { display: grid; grid-auto-flow: column; grid-auto-columns: 86%; grid-template-columns: none; overflow-x: auto; margin-right: calc((100vw - var(--container))/ -2); padding-right: 20px; scroll-snap-type: x mandatory; scrollbar-width: none; }
  .tour-grid::-webkit-scrollbar { display: none; }
  .tour-card, .tour-card:nth-child(n) { grid-column: auto; min-height: 540px; scroll-snap-align: start; }
  .tour-card-content { padding: 26px; }
  .tour-bottom p { font-size: 12px; }
  .tour-link { min-width: 44px; width: 44px; padding: 0; border-radius: 50%; }
  .tour-link span:first-child { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; }
  .tour-extras { align-items: stretch; flex-direction: column; }
  .tour-extras .button { width: 100%; }
  .booking-shell { grid-template-columns: minmax(0, 1fr); gap: 18px; }
  .booking-copy h2 { font-size: clamp(32px, 8.8vw, 40px); line-height: 1.06; letter-spacing: -1.5px; }
  .booking-title-desktop { display: none; }
  .booking-title-mobile { display: inline; }
  .booking-shell:not(.booking-shell-paused) .booking-copy > .eyebrow,
  .booking-shell:not(.booking-shell-paused) .booking-lead,
  .booking-steps, .booking-calendar-note { display: none; }
  .booking-panel { min-width: 0; padding: 20px 16px; border-radius: 22px; }
  .booking-form { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; scroll-margin-top: 90px; }
  .booking-field, .booking-field-wide { min-width: 0; grid-column: 1 / -1; }
  .booking-field-date, .booking-field-time { grid-column: auto; }
  .booking-field label { font-size: 12px; letter-spacing: .35px; }
  .booking-field input, .booking-field select, .booking-field textarea { min-width: 0; max-width: 100%; font-size: 16px; padding-inline: 10px; }
  .booking-tour-route { margin: 0; padding: 4px 12px; }
  .booking-tour-route > summary, .booking-extra > summary { display: flex; justify-content: space-between; align-items: center; gap: 12px; min-height: 44px; padding-block: 11px; color: var(--sea); font-size: 13px; line-height: 1.6; font-weight: 750; letter-spacing: 0; text-transform: none; list-style: none; cursor: pointer; }
  .booking-extra > summary::-webkit-details-marker { display: none; }
  .booking-tour-route > summary::after, .booking-extra > summary::after { content: "+"; flex: 0 0 auto; font-size: 20px; line-height: 1; }
  .booking-tour-route[open] > summary::after, .booking-extra[open] > summary::after { content: "−"; }
  .booking-tour-route p { margin: 0 0 10px; font-size: 13px; }
  .booking-extra .booking-field > label { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); }
  .booking-availability { padding: 9px 11px; font-size: 12px; }
  .booking-price-summary { grid-template-columns: 1fr auto; gap: 4px 12px; padding: 12px 14px; box-shadow: none; }
  .booking-price-head { align-items: flex-start; justify-content: center; flex-direction: column; }
  .booking-price-value { flex-wrap: wrap; justify-content: flex-end; }
  .booking-price-value strong { font-size: 25px; }
  .booking-price-summary p { grid-column: 1 / -1; }
  .booking-field { gap: 5px; }
  .booking-field input, .booking-field select { min-height: 46px; padding-block: 9px; }
  .route-album-section::before { top: 20px; right: -10px; font-size: 120px; letter-spacing: -8px; }
  .route-album-heading { margin-bottom: 28px; }
  .route-album-heading h2 { font-size: clamp(47px, 14vw, 66px); letter-spacing: -2.8px; }
  .route-album-heading-side { display: grid; gap: 22px; }
  .route-album-viewport { border-radius: 24px; }
  .route-album-photo, .route-album-photo img { min-height: 335px; height: 335px; }
  .route-photo-number { top: 18px; left: 20px; font-size: 96px; letter-spacing: -5px; }
  .route-photo-meta { right: 18px; bottom: 17px; left: 18px; }
  .route-album-content { min-height: 610px; gap: 25px; padding: 29px 21px; }
  .route-album-content h3 { font-size: clamp(37px, 11vw, 48px); letter-spacing: -2px; }
  .route-album-intro { font-size: 13px; }
  .route-itinerary { padding: 17px 14px; }
  .route-itinerary-label { display: grid; gap: 4px; }
  .route-itinerary li { font-size: 9px; }
  .route-album-action { align-items: stretch; flex-direction: column; }
  .route-album-action .button { width: 100%; }
  .route-album-controls { grid-template-columns: auto 1fr; gap: 16px; }
  .route-swipe-hint { display: none; }
  .route-thumb { flex-basis: 172px; }
  .tours-page-hero::before { background: linear-gradient(0deg, rgba(3,25,30,.96), rgba(3,25,30,.5) 72%, rgba(3,25,30,.25)); }
  .tours-page-hero-inner { gap: 24px; padding: 112px 0 40px; }
  .tours-page-hero-copy h1 { font-size: clamp(52px, 14vw, 68px); letter-spacing: -2.5px; }
  .tours-page-hero-copy > p:not(.eyebrow) { font-size: 15px; }
  .tours-page-hero-copy .button { width: 100%; }
  .tours-page-facts > div { min-height: 77px; padding: 13px 10px; }
  .tours-page-facts dt { font-size: 7px; letter-spacing: .65px; }
  .tours-page-facts dd { font-size: 21px; }
  .tours-directory { padding-bottom: var(--section-space); }
  .tours-directory::before { top: 40px; font-size: 125px; letter-spacing: -9px; }
  .tours-directory-heading { gap: 12px; margin-bottom: var(--section-heading-space); }
  .tours-directory-heading h2, .tours-directory-home .tours-directory-heading h2 { font-size: clamp(32px, 8.8vw, 40px); line-height: 1.06; letter-spacing: -1.5px; }
  .tours-directory-home .tours-directory-heading { gap: 12px; margin-bottom: var(--section-heading-space); }
  /* One complete tour per mobile slide, with room for the focus outline. */
  .tours-directory-strip { grid-auto-columns: 100%; gap: 16px; margin-right: 0; padding: 8px 8px 12px; scroll-padding-inline: 8px; }
  .tours-directory-card, .tours-directory-card:nth-child(even) { min-height: 350px; transform: none; border-radius: 20px; }
  .tours-directory-number { top: 18px; left: 20px; font-size: 42px; letter-spacing: -1px; }
  .tours-directory-card-copy { padding: 20px; gap: 8px; }
  .tours-directory-card-copy strong { font-size: clamp(26px, 7vw, 32px); line-height: 1.08; }
  .tours-directory-card-copy small, .tours-directory-card-copy > span { font-size: 12px; }
  .tours-directory-card:hover, .tours-directory-card:nth-child(even):hover { transform: none; }
  .tours-directory-card.is-current, .tours-directory-card:nth-child(even).is-current { transform: none; box-shadow: 0 0 0 2px rgba(255,201,107,.9); }
  .tours-directory-controls { grid-template-columns: 1fr auto; gap: 10px; margin-top: 4px; }
  .tours-directory-count { min-width: 74px; }
  .tours-directory-count strong { font-size: 21px; }
  .tours-directory-progress { grid-column: 1 / -1; grid-row: 2; }
  .tours-directory-swipe { display: none; }
  .tours-directory-arrows { grid-column: 2; grid-row: 1; justify-self: end; }
  .tours-directory-arrows button { width: 46px; height: 46px; }
  .home-tours-action { flex-direction: column; align-items: stretch; gap: 14px; margin-top: 18px; padding-top: 18px; }
  .home-tours-action p { font-size: 14px; }
  .home-tours-action .button { width: 100%; min-height: 50px; }
  .tours-empty { padding: 30px 22px; }
  .tours-detail { scroll-margin-top: 62px; }
  .tours-detail-shell { gap: 20px; }
  .tours-detail-media, .tours-detail-media img { min-height: 280px; height: 280px; }
  .tours-detail-number { top: 17px; left: 20px; font-size: 58px; letter-spacing: -2px; }
  .tours-detail-copy h2 { font-size: clamp(32px, 9vw, 40px); line-height: 1.06; letter-spacing: -1.5px; }
  .tours-detail-lead { margin-top: 14px; font-size: 16px; line-height: 1.6; }
  .tours-detail-included { margin-top: 12px; }
  .tours-detail-media-meta { right: 16px; bottom: 16px; left: 16px; }
  .tours-detail-media-meta span { font-size: 12px; padding: 6px 10px; letter-spacing: 0; }
  .tours-detail-label { display: grid; gap: 4px; }
  .tours-detail-route ol { grid-template-columns: 1fr; }
  .tours-detail-included ul { grid-template-columns: 1fr; }
  .tours-detail-cancellation { grid-template-columns: 1fr; gap: 4px; font-size: 12px; }
  .tours-detail-cancellation strong, .tours-detail-action small { font-size: 12px; }
  .tours-detail-action { align-items: center; gap: 16px; margin-top: 20px; }
  .tours-detail-action .button { flex: 1; padding-inline: 16px; font-size: 14px; }
  .onboard-visual { min-height: 240px; }
  .onboard-visual img { height: 240px; }
  .onboard-stamp { right: 12px; bottom: 12px; width: 96px; }
  .onboard-stamp strong { font-size: 16px; }
  .onboard-copy h2, .guest-reviews-heading h2 { letter-spacing: -2px; }
  .onboard-copy > p:not(.eyebrow) { margin-top: 16px; }
  .amenity-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 12px; margin-top: 20px; }
  .amenity-grid li { min-height: 44px; padding: 8px 0; gap: 7px; font-size: 14px; line-height: 1.35; }
  .amenity-grid .wide { grid-column: 1 / -1; }
  .why-grid { grid-template-columns: 1fr; }
  .why .section-heading > p { display: none; }
  .why-card { display: grid; grid-template-columns: 34px minmax(0, 1fr); gap: 5px 12px; min-height: auto; padding: 16px; }
  .why-icon { grid-row: 1 / 3; width: 34px; height: 34px; margin: 0; border-radius: 12px; font-size: 17px; }
  .why-card h3 { font-size: 22px; line-height: 1.2; }
  .why-card p { grid-column: 2; margin: 0; font-size: 14px; line-height: 1.45; }
  .guest-review-grid { display: grid; grid-auto-flow: column; grid-auto-columns: 88%; grid-template-columns: none; overflow-x: auto; margin-right: calc((100vw - var(--container))/ -2); padding-right: 20px; scroll-snap-type: x mandatory; scrollbar-width: none; }
  .guest-review-grid::-webkit-scrollbar { display: none; }
  .guest-review-card { min-height: 0; scroll-snap-align: start; }
  .insta-row { grid-template-columns: repeat(5, 70vw); overflow: hidden; margin-left: -35vw; margin-right: -100vw; }
  .faq-question { padding-block: 14px; font-size: 19px; }
  .faq-answer p { padding: 0 0 18px; }
  .cta-box { min-height: 0; gap: 20px; padding: 24px 20px; }
  .cta-box h2 { font-size: 38px; line-height: 1; letter-spacing: -1.5px; }
  .cta-side { display: none; }
  .cta-side .big-time { font-size: 58px; }
  .footer-main { grid-template-columns: minmax(0, 1fr); gap: 20px; padding: 24px 0 16px; }
  .footer-brand { grid-column: 1/-1; }
  .footer-brand p { max-width: 36em; margin: 14px 0 0; font-size: 14px; line-height: 1.55; }
  .footer-column { min-width: 0; }
  .footer-column h3 { margin: 0 0 10px; font-size: 12px; letter-spacing: 1.6px; }
  .footer-explore { display: flex; flex-wrap: wrap; gap: 0 22px; padding-bottom: 16px; border-bottom: 1px solid rgba(255,255,255,.12); }
  .footer-explore h3 { flex-basis: 100%; margin-bottom: 2px; }
  .footer-explore a { display: inline-flex; align-items: center; min-height: 44px; margin: 0; font-size: 14px; }
  .footer-contact > a { display: flex; align-items: center; justify-content: space-between; gap: 12px; width: 100%; min-height: 44px; margin: 0; padding: 10px 0; border-bottom: 1px solid rgba(255,255,255,.08); font-size: 14px; }
  .footer-contact > a:last-child { border-bottom: 0; }
  .footer-contact .footer-instagram { justify-content: flex-start; gap: 12px; margin-bottom: 8px; padding: 12px; border: 1px solid rgba(255,255,255,.12); border-radius: 16px; background: rgba(255,255,255,.04); }
  .footer-instagram .social-icon { flex-shrink: 0; }
  .footer-instagram-copy { gap: 2px; }
  .footer-instagram-copy small { font-size: 13px; line-height: 1.4; color: rgba(255,255,255,.6); }
  .footer-contact-line { flex-wrap: wrap; }
  .footer-contact-value { white-space: nowrap; font-variant-numeric: tabular-nums; }
  .footer-contact-separator { display: none; }
  .footer-contact-link::after { content: "↗"; flex-shrink: 0; color: var(--sea-bright); font-size: 18px; }
  .footer-contact-link:last-child::after { content: "↑"; }
  .footer-bottom { flex-direction: column; gap: 8px; padding: 16px 0 max(24px, env(safe-area-inset-bottom)); color: rgba(255,255,255,.55); font-size: 12px; }
  .mobile-book {
    position: fixed;
    z-index: 45;
    right: 14px;
    bottom: max(14px, env(safe-area-inset-bottom));
    left: 14px;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 11px;
    min-height: 56px;
    padding: 0 20px;
    border: 1px solid rgba(255,255,255,.15);
    border-radius: 999px;
    color: white;
    background: rgba(4,29,35,.93);
    box-shadow: 0 14px 38px rgba(4,29,35,.28);
    backdrop-filter: blur(16px);
    font-size: 13px;
    font-weight: 850;
    transition: opacity .25s ease, transform .25s ease;
  }
  .mobile-book-dot { width: 8px; height: 8px; border-radius: 50%; background: var(--sea-bright); box-shadow: 0 0 0 5px rgba(52,198,189,.14); }
  .mobile-book.is-hidden { opacity: 0; pointer-events: none; transform: translateY(24px); }
}

@media (min-width: 681px) {
  .tours-detail [data-mobile-tour-disclosure] { border: 0; border-radius: 0; background: transparent; }
  .tours-detail [data-mobile-tour-disclosure] > summary { cursor: default; padding: 0; color: var(--sea); font-size: 12px; letter-spacing: 1px; text-transform: uppercase; }
  .tours-detail [data-mobile-tour-disclosure] > summary > span:last-child { display: none; }
  .tours-detail .tours-detail-route { padding: 22px 0; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
  .tours-detail:nth-child(even) .tours-detail-route { border-color: rgba(255,255,255,.13); }
  .tours-detail:nth-child(even) .tours-detail-route > summary { color: var(--sun); }
  .tours-detail-route-note { padding: 4px 0 0; }
  .tours-detail-route ol { padding: 12px 0 0; }
  .tours-detail .tours-detail-cancellation > summary { color: var(--coral); }
  .tours-detail-cancellation > p { padding: 8px 0 0; font-size: 12px; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
  .reveal { opacity: 1; transform: none; }
}
