:root { --header-height: 88px; }
.site-icon { flex: none; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.public-header { min-height: var(--header-height); color: #18362f; background: rgba(255, 255, 255, .98); border-bottom: 1px solid #e1e8e5; transition: box-shadow 220ms ease, background-color 220ms ease; }
.public-header.is-scrolled { background: rgba(255, 255, 255, .96); box-shadow: 0 6px 24px rgb(22 57 49 / 9%); }
@supports (backdrop-filter: blur(12px)) {
  .public-header.is-scrolled { backdrop-filter: blur(12px); }
}
.public-header .header-inner { width: min(1440px, calc(100% - 64px)); min-height: var(--header-height); grid-template-columns: auto 1fr auto; gap: 26px; }
.site-brand { width: auto; display: inline-flex; align-items: center; gap: 10px; justify-self: start; flex: none; color: #122d2a; }
.site-brand .brand-mark { width: 60px; height: 60px; object-fit: contain; mix-blend-mode: multiply; }
.brand-name { display: grid; gap: 2px; line-height: 1.15; text-align: start; }
.brand-name strong { font-size: 23px; font-weight: 800; }
.brand-name > span { color: #667b73; font-size: 11px; font-weight: 650; }
.public-header .site-navigation { position: static; display: flex; flex-wrap: nowrap; justify-content: center; align-items: center; gap: 26px; padding: 0; background: transparent; font-size: 14px; }
.public-header .site-navigation > a, .nav-disclosure > summary { min-height: 48px; padding: 12px 0; display: inline-flex; align-items: center; gap: 7px; white-space: nowrap; font-weight: 650; cursor: pointer; }
.public-header .site-navigation a::after { bottom: 6px; background: #247b6a; height: 2px; }
.public-header .site-navigation a[aria-current="page"] { color: #176755; }
.public-header .site-navigation a[aria-current="page"]::after { transform: scaleX(1); }
.nav-disclosure { position: relative; }
.nav-disclosure > summary { list-style: none; }
.nav-disclosure > summary::-webkit-details-marker { display: none; }
.nav-disclosure > summary .site-icon { width: 16px; height: 16px; transition: transform 180ms ease; }
.nav-disclosure[open] > summary .site-icon { transform: rotate(180deg); }
.nav-disclosure[open] > summary, .nav-disclosure.has-current > summary { color: #176755; }
.nav-dropdown { position: absolute; inset-block-start: calc(100% + 8px); inset-inline-start: -20px; width: 300px; padding: 10px; background: #fff; border: 1px solid #dce7e2; border-radius: 8px; box-shadow: 0 20px 48px rgb(22 57 49 / 14%); }
.public-header .nav-dropdown a { display: block; white-space: normal; padding: 12px 16px; border-radius: 4px; transition: background-color 160ms ease, color 160ms ease; }
.public-header .nav-dropdown a::after { display: none; }
.nav-dropdown a:hover, .nav-dropdown a:focus-visible, .nav-dropdown a[aria-current="page"] { background: #edf6f2; color: #176755; }
.public-header .site-header-actions { display: flex; gap: 14px; align-items: center; }
.public-header .header-cta { display: inline-flex; gap: 10px; min-height: 46px; padding: 10px 16px; font-size: 14px; background: #194e43; color: #fff; border-color: #194e43; border-radius: 6px; }
.public-header .header-cta:hover { background: #256b5b; border-color: #256b5b; }
.public-header .guide-language { font-size: 13px; font-weight: 650; text-decoration: none; padding: 9px 0; border-bottom: 1px solid #a6bcb2; }
.public-header .guide-language:hover { color: #247b6a; border-color: currentColor; }
.site-menu-toggle, .public-header .site-navigation .nav-mobile-cta { display: none; }
.site-menu-toggle { width: 44px; height: 44px; padding: 0; flex: none; place-items: center; border: 1px solid #ccdad3; border-radius: 6px; background: #fff; color: #194e43; cursor: pointer; }
.site-menu-toggle .site-icon { width: 22px; height: 22px; }
.site-menu-toggle .menu-close-icon { display: none; }
.site-menu-toggle[aria-expanded="true"] .menu-open-icon { display: none; }
.site-menu-toggle[aria-expanded="true"] .menu-close-icon { display: block; }
.site-reading-track { position: absolute; inset: auto 0 -1px; height: 2px; overflow: hidden; pointer-events: none; }
.site-reading-track span { display: block; height: 100%; background: #c59b49; transform: scaleX(0); transform-origin: left; }
html[dir="rtl"] .site-reading-track span { transform-origin: right; }
.public-header [hidden] { display: none !important; }
.footer-main .footer-brand { color: #fff; width: fit-content; }
.footer-brand .brand-mark { filter: invert(1); mix-blend-mode: screen; }
.footer-brand .brand-name > span { color: #d6c398; }
.site-footer .guide-photo-credit { background: none; padding: 16px 0 0; margin-top: 20px; border-top: 1px solid #ffffff24; font-size: 11px; line-height: 1.7; color: #a6b8c5; }
.site-footer .guide-photo-credit a { color: #c8d7e1; text-underline-offset: 3px; }
.hero { min-height: min(620px, calc(100svh - 150px)); height: calc(85svh - var(--header-height)); max-height: 740px; }
.guide-page .guide-hero-content h1, .guide-page .guide-section-heading h2 { text-wrap: balance; }
.guide-breadcrumb { padding-block: 20px; }
.cruise-offer, .cruise-detail-grid figure, .cruise-home-posters > a { transition: box-shadow 220ms ease, border-color 220ms ease; }
.cruise-offer:hover { border-color: #a3c6bb; box-shadow: 0 14px 32px rgb(28 77 65 / 8%); }
.cruise-poster .cruise-zoom { transition: background-color 180ms ease, color 180ms ease; }
.cruise-poster:hover .cruise-zoom { color: #fff; background: #194e43; }
@media (hover: hover) and (prefers-reduced-motion: no-preference) {
  .button:hover, .public-header .header-cta:hover { transform: translateY(-2px); }
  .cruise-home-posters > a:hover { box-shadow: 0 12px 30px rgb(28 77 65 / 12%); }
}
@media (max-width: 1250px) {
  .public-header .header-inner { gap: 18px; width: calc(100% - 40px); }
  .public-header .site-navigation { gap: 18px; }
  .public-header .header-cta { padding-inline: 12px; }
  .brand-name strong { font-size: 21px; }
  .site-brand .brand-mark { width: 54px; height: 54px; }
}
@media (max-width: 1120px) {
  :root { --header-height: 76px; }
  .public-header .header-inner { grid-template-columns: 1fr auto; gap: 12px; }
  .public-header .site-header-actions { grid-column: 2; grid-row: 1; gap: 16px; }
  .public-header .header-cta { display: none; }
  .public-header .site-navigation { grid-column: 1 / -1; grid-row: 2; display: grid; gap: 0; justify-content: stretch; padding-bottom: 16px; }
  .public-header.navigation-ready .site-menu-toggle { display: grid; }
  .public-header.navigation-ready .site-navigation { position: absolute; inset: var(--header-height) 0 auto; max-height: calc(100dvh - var(--header-height) - 16px); overflow-y: auto; background: #fff; padding: 16px 24px 24px; border-bottom: 1px solid #dce7e2; box-shadow: 0 16px 28px rgb(22 57 49 / 12%); overscroll-behavior: contain; }
  .public-header .site-navigation > a, .nav-disclosure > summary { width: 100%; min-height: 52px; padding: 14px 0; justify-content: space-between; border-bottom: 1px solid #e7eeea; white-space: normal; font-size: 16px; }
  .public-header .site-navigation > a::after { display: none; }
  .nav-dropdown { position: static; width: 100%; padding: 4px 10px 10px; box-shadow: none; border: 0; border-inline-start: 2px solid #c9dfd4; border-radius: 0; }
  .public-header .nav-dropdown a { padding: 11px 14px; font-size: 15px; }
  .public-header .site-navigation .nav-mobile-cta { display: flex; justify-content: center; gap: 12px; margin-top: 16px; background: #194e43; color: #fff; border-radius: 6px; border: 0; }
}
@media (max-width: 580px) {
  :root { --header-height: 72px; }
  .public-header .header-inner { width: calc(100% - 32px); gap: 8px; }
  .site-brand { gap: 7px; }
  .site-brand .brand-mark { width: 48px; height: 48px; }
  .brand-name strong { font-size: 19px; }
  .brand-name > span { font-size: 10px; }
  .public-header .site-header-actions { gap: 12px; }
  .public-header .guide-language { font-size: 12px; }
  .site-footer .footer-brand .brand-mark { width: 56px; height: 56px; }
  .site-footer .footer-brand .brand-name strong { font-size: 23px; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation: none !important; transition: none !important; }
}
