/* Shared language control; all other rules are scoped to the international edition. */
.language-picker { position: relative; flex: 0 0 auto; color: inherit; }
.language-picker summary { display: flex; align-items: center; justify-content: center; gap: 6px; min-width: 48px; min-height: 44px; padding: 8px; font: 600 14px/1.2 var(--font-body, sans-serif); cursor: pointer; list-style: none; border-radius: 4px; }
.language-picker summary::-webkit-details-marker { display: none; }
.language-picker summary::after { content: ''; width: 6px; height: 6px; border: solid currentColor; border-width: 0 1.5px 1.5px 0; transform: rotate(45deg) translateY(-2px); }
.language-picker[open] summary { background: #edf4f4; color: #102b2d; }
.language-picker nav { position: absolute; right: 0; top: calc(100% + 8px); width: max-content; min-width: 210px; max-width: min(290px, calc(100vw - 32px)); max-height: calc(100dvh - 100px); overflow-y: auto; padding: 8px; background: #fff; color: #102b2d; box-shadow: 0 8px 32px #102b2d24; border: 1px solid #d5dfe0; border-radius: 6px; z-index: 150; }
.language-picker nav a { display: flex; align-items: center; gap: 10px; min-height: 44px; padding: 10px 12px; font-size: 15px; line-height: 1.4; text-decoration: none; }
.language-picker nav a > span { min-width: 0; }
.language-picker .language-flag { display: block; flex: 0 0 24px; width: 24px; height: 16px; overflow: hidden; border-radius: 2px; box-shadow: 0 0 0 1px #102b2d18; }
.language-picker .language-code { display: none; }
.language-picker .language-selected { margin-left: auto; font-weight: 700; }
@media (max-width: 1399px) {
  .language-picker .language-name { display: none; }
  .language-picker .language-code { display: inline; }
}
@media (max-width: 479px) {
  .language-picker .language-code { display: none; }
  .site-header .language-picker nav { position: fixed; right: max(16px, env(safe-area-inset-right)); top: calc(85px + env(safe-area-inset-top)); }
}
.language-picker nav a:hover, .language-picker nav a[aria-current] { background: #edf4f4; }
.language-picker :focus-visible { outline: 2px solid #176378; outline-offset: 3px; }
.has-immersive-home:not(.menu-open) .site-header:not(.is-scrolled) .language-picker:not([open]) summary { color: #fff; }
@media (max-width: 1250px) { .site-header .header-cta { display: none; } }

.international-page { background: #fff; color: #102b2d; }
.international-page [hidden] { display: none !important; }
.international-page .shell { width: min(1280px, calc(100% - 64px)); margin-inline: auto; }
.international-page main { overflow: clip; padding-top: calc(77px + env(safe-area-inset-top)); }
.international-page .site-header { position: relative; width: 100%; margin: 0; top: 0; left: 0; right: 0; background: #fff; color: #102b2d; }
.international-page [data-site-shell="header"] { display: block; position: fixed; inset: 0 0 auto; z-index: 100; background: #fff; }
.international-page .desktop-nav { gap: 20px; }
.international-page .desktop-nav > a, .international-page .nav-menu > button { font-size: 14px; }
.international-page .brand-name small { letter-spacing: .09em; font-size: 10px; }
.international-page .header-search svg { width: 22px; height: 22px; fill: none; stroke: currentColor; stroke-width: 1.7; }
.international-page h1, .international-page h2, .international-page h3 { font-family: inherit; text-wrap: balance; letter-spacing: -.035em; line-height: 1.1; }
.international-page h1 { font-size: clamp(36px, 5vw, 64px); max-width: 18ch; margin: 8px 0 20px; }
.international-page h2 { font-size: clamp(28px, 3.3vw, 42px); margin: 0 0 24px; }
.international-page h3 { font-size: 24px; margin: 14px 0 12px; }
.international-page p { font-size: 16px; line-height: 1.65; margin: 0 0 18px; }
.international-page .button { min-height: 46px; padding: 13px 20px; white-space: normal; line-height: 1.35; font-size: 15px; text-align: center; }
.international-page .button::after { display: none; }
.intl-hero { padding: 52px 0 32px; }
.intl-hero--photo { position: relative; display: flex; align-items: end; min-height: 470px; padding: 54px 0; background: #183f43; color: #fff; isolation: isolate; }
.intl-hero--home { min-height: 550px; }
.intl-hero--photo > .intl-photo { position: absolute; inset: 0; z-index: 0; height: 100%; margin: 0; }
.intl-hero--photo > .intl-photo picture, .intl-hero--photo > .intl-photo img { display: block; width: 100%; height: 100%; object-fit: cover; }
.intl-hero--photo::after { content: ''; position: absolute; inset: 0; z-index: 1; background: linear-gradient(90deg, #061f27c7, #061f2730 90%); pointer-events: none; }
.intl-hero-copy { position: relative; z-index: 2; }
.intl-prose { max-width: 78ch; }
.intl-prose h2 { margin-top: 32px; font-size: 25px; }
.intl-hero-copy > p { max-width: 680px; font-size: 18px; color: inherit; }
.intl-hero-copy .eyebrow { font-size: 13px; color: inherit; }
.intl-hero-copy h1 { color: inherit; }
.intl-hero--photo .button { background: #fff; color: #102b2d; border-color: #fff; }
.intl-hero--photo .button-secondary { background: transparent; color: #fff; }
.intl-actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 20px; }
.intl-credit { font-size: 12px; color: #526366; padding-block: 10px; }
.intl-credit summary { cursor: pointer; min-height: 28px; display: list-item; }
.intl-credit a { display: inline-block; padding-block: 8px; }
.intl-section { padding-block: 34px; }
.intl-section > p { max-width: 85ch; }
.intl-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 28px; margin-block: 24px 30px; }
.intl-grid--four, .intl-grid--places { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.intl-grid > * { min-width: 0; }
.intl-card { display: flex; flex-direction: column; background: #fff; min-width: 0; overflow-wrap: anywhere; }
.intl-card > a:not(.button) { color: inherit; text-decoration: none; }
.intl-card > a > h3 { margin-top: 18px; }
.intl-card p { color: #4c6163; }
.intl-photo { margin: 0; min-width: 0; }
.intl-photo picture { display: block; }
.intl-card .intl-photo img { display: block; width: 100%; height: auto; aspect-ratio: 16/10; object-fit: cover; border-radius: 5px; }
.intl-photo figcaption { font-size: 11px; line-height: 1.45; color: #536467; padding-block: 7px; }
.intl-photo figcaption a { text-decoration: underline !important; color: inherit; }
.intl-card-body { flex: 1; display: flex; flex-direction: column; padding-block: 14px 8px; }
.intl-card small { font-size: 12px; color: #526366; }
.intl-card .intl-booking { margin-top: auto; }
.intl-details { margin-block: 0 18px; }
.intl-details summary { font-size: 14px; font-weight: 600; padding-block: 12px; min-height: 44px; cursor: pointer; }
.intl-details[open] summary { margin-bottom: 8px; }
.intl-details p, .intl-details li { font-size: 14px; }
.intl-gallery { display: flex; gap: 8px; overflow-x: auto; scroll-snap-type: x mandatory; margin-bottom: 16px; overscroll-behavior-x: contain; }
.intl-gallery img { flex: 0 0 88%; width: 88%; height: 190px; object-fit: cover; scroll-snap-align: start; border-radius: 4px; }
.intl-secondary-link, .intl-reading-link { display: inline-flex; align-items: center; gap: 8px; flex-wrap: wrap; min-height: 44px; padding-block: 8px; font-size: 14px; font-weight: 600; }
.intl-reading-link small { display: block; width: 100%; font-size: 12px; font-weight: 400; color: #536467; }
.intl-facts { display: flex; flex-wrap: wrap; gap: 14px 24px; margin: 0 0 12px; }
.intl-facts dt { font-size: 12px; color: #526366; }
.intl-facts dd { font-size: 14px; margin: 2px 0; }
.international-page .intl-note { font-size: 13px; line-height: 1.6; color: #4c6163; margin-block: 16px 24px; max-width: 95ch; }
.intl-consent { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 28px; background: #f0f6f6; padding: 20px; border: 0; border-radius: 5px; }
.intl-consent > div { flex: 1 1 300px; }
.intl-consent p { font-size: 13px; margin: 6px 0 0; }
.intl-consent > [role="status"] { width: 100%; }
.intl-consent > button { width: auto; }
.intl-filters, .intl-planner { display: flex; flex-wrap: wrap; align-items: end; gap: 14px; padding: 22px; background: #f2f6f6; border-radius: 5px; margin-block: 24px; }
.intl-filters label, .intl-planner label { display: grid; gap: 8px; flex: 1 1 180px; min-width: 0; font-size: 13px; font-weight: 600; }
.international-page input, .international-page select { width: 100%; min-width: 0; min-height: 46px; padding: 10px 12px; font: inherit; font-size: 16px; color: #102b2d; border: 1px solid #bbcacc; border-radius: 3px; background-color: white; }
.intl-filters button, [data-intl-locate] { min-height: 44px; padding: 10px 14px; color: #155963; background: #fff; border: 1px solid #bbcacc; border-radius: 3px; cursor: pointer; }
.intl-resource-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px 40px; margin: 26px 0; }
.intl-resource-list article { min-width: 0; padding-block: 8px 14px; overflow-wrap: anywhere; }
.intl-resource-list h3 { font-size: 22px; }
.intl-resource-list h3 a, .intl-secondary-link { color: #155963; text-decoration: underline; text-underline-offset: 4px; }
.intl-search-form { max-width: 760px; }
.intl-search-form > div { display: flex; gap: 10px; margin: 12px 0; }
.intl-map { height: 410px; min-width: 0; border-radius: 5px; background: #e7eff1; z-index: 1; }
.intl-map-section { margin-block: 26px 32px; }
.intl-map-section > p { font-size: 14px; }
.intl-map .leaflet-popup-content { width: min(260px, calc(100vw - 110px)) !important; }
.intl-map .leaflet-popup-content img { width: 100%; height: 140px; object-fit: cover; border-radius: 3px; }
.intl-map .leaflet-popup-content h3 { font-size: 20px; margin-block: 8px; }
.intl-map .leaflet-popup-content p { font-size: 13px; line-height: 1.5; margin: 8px 0; }
.intl-map .leaflet-popup-content small { font-size: 11px; }
.intl-map .leaflet-popup-content a { display: block; min-height: 36px; padding-block: 8px; }
.intl-map .leaflet-control-zoom a { min-width: 44px; min-height: 44px; line-height: 44px; }
.intl-plan-result { padding: 24px; border-radius: 5px; background: #f0f6f6; margin-bottom: 24px; scroll-margin-top: 100px; }
.intl-plan-result h3 { margin-top: 0; }
.intl-footer-grid { display: grid; grid-template-columns: 2fr repeat(3, minmax(0, 1fr)); gap: 28px; }
.intl-footer-grid p { max-width: 32ch; margin-top: 18px; font-size: 14px; }
.intl-footer-grid nav { display: flex; flex-direction: column; }
.intl-footer-grid nav a { display: flex; align-items: center; min-height: 44px; font-size: 14px; }
.international-page .footer-bottom { flex-wrap: wrap; gap: 12px 24px; }
.international-page .footer-bottom button { min-height: 44px; background: transparent; border: 0; color: inherit; text-decoration: underline; cursor: pointer; }
@media (max-width: 1150px) {
  .international-page .desktop-nav { display: none; }
  .international-page .menu-button { display: grid; background: #102b2d; }
  .international-page .header-actions { margin-left: auto; }
  .international-page .mobile-menu { display: block; }
  .intl-grid--places { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 800px) {
  .international-page .shell { width: calc(100% - 40px); }
  .intl-grid, .intl-grid--places, .intl-grid--four { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px 20px; }
  .intl-footer-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .intl-hero--photo { min-height: 420px; padding-block: 40px; }
}
@media (max-width: 37.99rem) { .international-page main { padding-top: calc(70px + env(safe-area-inset-top)); } }
@media (max-width: 540px) {
  .international-page .shell { width: calc(100% - 32px); }
  .international-page .site-header { gap: 6px; padding-inline: 16px; }
  .international-page .brand-name { font-size: 16px; }
  .international-page .brand-name small { font-size: 8px; letter-spacing: .035em; }
  .international-page .header-actions { gap: 0; }
  .international-page .header-search { display: none; }
  .international-page h3 { font-size: 23px; }
  .intl-section { padding-block: 24px; }
  .intl-hero-copy > p { font-size: 16px; }
  .intl-hero--photo { min-height: 440px; }
  .intl-hero--photo::after { background: linear-gradient(0deg, #061f27e8, #061f2738); }
  .intl-grid, .intl-grid--places, .intl-resource-list { grid-template-columns: minmax(0, 1fr); gap: 24px; }
  .intl-grid--four { grid-template-columns: minmax(0, 1fr); }
  .intl-filters, .intl-planner { padding: 16px; }
  .intl-filters label, .intl-planner label { flex-basis: 100%; }
  .intl-consent { padding: 16px; }
  .intl-consent > button { width: 100%; }
  .intl-map { height: 360px; }
  .intl-footer-grid { grid-template-columns: minmax(0, 1fr); gap: 18px; }
}
