/* Typography and UX polish for the English version.
   The light/aqua design remains separate; only the typographic language is unified. */
:root {
  --font-display: 'Playfair Display', Georgia, 'Times New Roman', serif;
  --font-body: 'Raleway', 'Segoe UI', Arial, sans-serif;
  --radius: 10px;
}

html {
  -webkit-text-size-adjust: 100%;
}

body {
  font-family: var(--font-body);
  font-size: 16px;
  font-weight: 400;
  line-height: 1.7;
  letter-spacing: 0;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

.page-hero h1,
.inner-hero h1,
.tour-card-body h2,
.tour-card-body h3,
.service-card h3,
.activity-card h3,
.day-title,
.contact-info-block h3,
.contact-form h3,
.empty-state h2,
.footer-logo {
  font-family: var(--font-display);
}

/* Legacy markup uses h2 elements for long descriptive paragraphs. */
.page-content > h2,
.day-block h2,
.activity-card h2 {
  font-family: var(--font-body) !important;
  font-size: 16px !important;
  font-style: normal !important;
  font-weight: 400 !important;
  line-height: 1.75 !important;
  letter-spacing: 0 !important;
  text-transform: none !important;
  text-wrap: pretty;
}

.page-content > h2 {
  margin: 0 0 18px !important;
}

.page-content > h3 {
  font-family: var(--font-display);
  font-size: clamp(20px, 2.4vw, 27px);
  font-weight: 700;
  line-height: 1.3;
  letter-spacing: 0;
  text-transform: none;
}

.page-content > p,
.page-content > ul,
.page-content > ol,
.page-content p,
.page-content li,
.day-block p,
.activity-card p,
.service-card p,
.service-card li,
.tour-card-body p,
.contact-item span,
.empty-state p {
  font-family: var(--font-body);
  font-weight: 400 !important;
  line-height: 1.75;
}

.page-content > p,
.page-content > h2,
.page-content > ul,
.page-content > ol,
.intro-inner p,
.tour-card-body p,
.service-card p {
  max-width: 72ch;
}

.page-content > h2,
.day-block h2,
.activity-card h2,
.inner-hero h1,
.tour-card-body h2,
.service-note,
.note-small {
  font-style: normal !important;
}

.main-nav li a,
.mobile-nav li a,
button,
input,
textarea,
select,
.btn-aqua,
.btn-outline,
[class*="btn-"] {
  font-family: var(--font-body);
}

.main-nav li a {
  min-height: 44px;
  display: flex;
  align-items: center;
}

.hamburger {
  min-width: 44px;
  min-height: 44px;
  align-items: center;
  justify-content: center;
}

.mobile-nav {
  max-height: calc(100dvh - var(--nav-h));
  overflow-y: auto;
  overscroll-behavior: contain;
  box-shadow: 0 18px 40px rgba(24,49,59,.24);
}

.mobile-nav li a {
  min-height: 48px;
  display: flex;
  align-items: center;
}

button,
input,
textarea,
select {
  font: inherit;
}

input,
textarea,
.form-group input,
.form-group textarea {
  font-size: 16px !important;
}

button,
.btn-aqua,
.btn-outline,
[class*="btn-"] {
  min-height: 44px;
}

:where(a, button, input, textarea, select):focus-visible {
  outline: 3px solid var(--rt-aqua, #78cfd8);
  outline-offset: 3px;
}

img[loading="lazy"] {
  content-visibility: auto;
}

@media (max-width: 600px) {
  body {
    font-size: 15.5px;
    line-height: 1.7;
  }

  .page-content {
    padding-left: 18px !important;
    padding-right: 18px !important;
  }

  .page-content > h2,
  .day-block h2,
  .activity-card h2 {
    font-size: 15.5px !important;
    line-height: 1.72 !important;
  }
}

@media (prefers-reduced-motion: reduce) {
  html {
    scroll-behavior: auto !important;
  }

  *, *::before, *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;
  }

  .reveal {
    opacity: 1 !important;
    transform: none !important;
  }
}


/* Home page hero alignment, navigation pills and slider dots */
.slide-text {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
}

.slide-actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: 14px;
  margin-top: 4px;
}

.slide-actions-primary {
  max-width: 980px;
  margin-left: auto;
  margin-right: auto;
}

.slide-tagline {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 56px;
  padding: 14px 28px;
  border-radius: 18px;
  background: rgba(255,255,255,0.88);
  color: var(--rt-bg-dark, #1f3a44);
  font-size: clamp(14px, 1.8vw, 17px);
  font-weight: 500;
  text-align: center;
  backdrop-filter: blur(6px);
  -webkit-backdrop-filter: blur(6px);
  box-shadow: 0 10px 26px rgba(0,0,0,0.18);
  transition: transform var(--trans, .28s ease), box-shadow var(--trans, .28s ease), background var(--trans, .28s ease);
}

.slide-tagline:hover {
  transform: translateY(-2px);
  box-shadow: 0 14px 36px rgba(0,0,0,0.22);
  background: rgba(255,255,255,0.94);
}

.slide-subtitle-plain {
  max-width: 680px;
  margin-left: auto;
  margin-right: auto;
}

.dot {
  -webkit-appearance: none;
  appearance: none;
  display: block;
  width: 10px !important;
  height: 10px !important;
  min-width: 10px;
  min-height: 10px;
  padding: 0;
  line-height: 0;
  font-size: 0;
  border-radius: 50%;
  border: none;
  box-shadow: none;
}

@media (max-width: 900px) {
  .slide-actions,
  .slide-actions-primary {
    gap: 12px;
  }

  .slide-tagline {
    width: min(100%, 420px);
  }
}

@media (max-width: 640px) {
  .slide-tagline,
  .slide-btn {
    width: min(100%, 320px);
  }
}


/* v4: cache-safe final alignment and AI media overrides */
#slider { display:block !important; visibility:visible !important; opacity:1 !important; }
#slider .slide-content,
#slider .slide-text,
#slider .slide-actions,
#intro_section,
#intro_section .intro-inner,
#video .video-content-inner,
#our-clients { text-align:center !important; }
#slider .slide-text,
#intro_section .intro-inner,
#video .video-content-inner {
  margin-left:auto !important;
  margin-right:auto !important;
  align-items:center !important;
  justify-content:center !important;
}
#intro_section .intro-inner { display:flex; flex-direction:column; width:min(100%,760px); }
#intro_section .intro-inner > * { margin-left:auto !important; margin-right:auto !important; }
#intro_section .intro-inner p { width:min(100%,680px); text-align:center !important; }
#slider .slide-text { width:min(100%,900px); }
#slider .slide-title,
#slider .slide-eyebrow,
#slider .slide-subtitle,
#slider .slide-subtitle-plain { text-align:center !important; margin-left:auto !important; margin-right:auto !important; }


/* V5: hero action panels were intentionally removed; YouTube background remains active. */
#slider .slide-text { text-align:center !important; margin-inline:auto !important; }
#slider .slide-title, #slider .slide-eyebrow, #slider .slide-subtitle-plain { text-align:center !important; margin-left:auto !important; margin-right:auto !important; }
