/*! tailwindcss v4.2.1 | MIT License | https://tailwindcss.com */
@layer properties;
@layer theme, base, components, utilities;
@layer theme {
  :root, :host {
    --font-sans: ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji",
      "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
    --font-mono: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono",
      "Courier New", monospace;
    --spacing: 0.25rem;
    --text-xs: 0.75rem;
    --text-sm: 0.875rem;
    --text-base: 1rem;
    --text-lg: 1.125rem;
    --radius-sm: 0.25rem;
    --radius-md: 0.375rem;
    --default-transition-duration: 150ms;
    --default-transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
    --default-font-family: var(--font-sans);
    --default-mono-font-family: var(--font-mono);
  }
}
@layer base {
  *,
  ::after,
  ::before,
  ::backdrop,
  ::file-selector-button {
    box-sizing: border-box;
    margin: 0;
    padding: 0;
    border: 0 solid;
  }
  html,
  :host {
    line-height: 1.5;
    -webkit-text-size-adjust: 100%;
    tab-size: 4;
    font-family: var(--default-font-family, ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");
    font-feature-settings: var(--default-font-feature-settings, normal);
    font-variation-settings: var(--default-font-variation-settings, normal);
    -webkit-tap-highlight-color: transparent;
  }
  hr {
    height: 0;
    color: inherit;
    border-top-width: 1px;
  }
  abbr:where([title]) {
    -webkit-text-decoration: underline dotted;
    text-decoration: underline dotted;
  }
  h1,
  h2,
  h3,
  h4,
  h5,
  h6 {
    font-size: inherit;
    font-weight: inherit;
  }
  a {
    color: inherit;
    -webkit-text-decoration: inherit;
    text-decoration: inherit;
  }
  b,
  strong {
    font-weight: bolder;
  }
  code,
  kbd,
  samp,
  pre {
    font-family: var(--default-mono-font-family, ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);
    font-feature-settings: var(--default-mono-font-feature-settings, normal);
    font-variation-settings: var(--default-mono-font-variation-settings, normal);
    font-size: 1em;
  }
  small {
    font-size: 80%;
  }
  sub,
  sup {
    font-size: 75%;
    line-height: 0;
    position: relative;
    vertical-align: baseline;
  }
  sub {
    bottom: -0.25em;
  }
  sup {
    top: -0.5em;
  }
  table {
    text-indent: 0;
    border-color: inherit;
    border-collapse: collapse;
  }
  :-moz-focusring {
    outline: auto;
  }
  progress {
    vertical-align: baseline;
  }
  summary {
    display: list-item;
  }
  ol,
  ul,
  menu {
    list-style: none;
  }
  img,
  svg,
  video,
  canvas,
  audio,
  iframe,
  embed,
  object {
    display: block;
    vertical-align: middle;
  }
  img,
  video {
    max-width: 100%;
    height: auto;
  }
  button,
  input,
  select,
  optgroup,
  textarea,
  ::file-selector-button {
    font: inherit;
    font-feature-settings: inherit;
    font-variation-settings: inherit;
    letter-spacing: inherit;
    color: inherit;
    border-radius: 0;
    background-color: transparent;
    opacity: 1;
  }
  :where(select:is([multiple], [size])) optgroup {
    font-weight: bolder;
  }
  :where(select:is([multiple], [size])) optgroup option {
    padding-inline-start: 20px;
  }
  ::file-selector-button {
    margin-inline-end: 4px;
  }
  ::placeholder {
    opacity: 1;
  }
  @supports (not (-webkit-appearance: -apple-pay-button))  or
    (contain-intrinsic-size: 1px) {
    ::placeholder {
      color: currentcolor;
      @supports (color: color-mix(in lab, red, red)) {
        color: color-mix(in oklab, currentcolor 50%, transparent);
      }
    }
  }
  textarea {
    resize: vertical;
  }
  ::-webkit-search-decoration {
    -webkit-appearance: none;
  }
  ::-webkit-date-and-time-value {
    min-height: 1lh;
    text-align: inherit;
  }
  ::-webkit-datetime-edit {
    display: inline-flex;
  }
  ::-webkit-datetime-edit-fields-wrapper {
    padding: 0;
  }
  ::-webkit-datetime-edit,
  ::-webkit-datetime-edit-year-field,
  ::-webkit-datetime-edit-month-field,
  ::-webkit-datetime-edit-day-field,
  ::-webkit-datetime-edit-hour-field,
  ::-webkit-datetime-edit-minute-field,
  ::-webkit-datetime-edit-second-field,
  ::-webkit-datetime-edit-millisecond-field,
  ::-webkit-datetime-edit-meridiem-field {
    padding-block: 0;
  }
  ::-webkit-calendar-picker-indicator {
    line-height: 1;
  }
  :-moz-ui-invalid {
    box-shadow: none;
  }
  button,
  input:where([type="button"], [type="reset"], [type="submit"]),
  ::file-selector-button {
    appearance: button;
  }
  ::-webkit-inner-spin-button,
  ::-webkit-outer-spin-button {
    height: auto;
  }
  [hidden]:where(:not([hidden="until-found"])) {
    display: none !important;
  }
}
@layer utilities {
  .invisible {
    visibility: hidden;
  }
  .visible {
    visibility: visible;
  }
  .absolute {
    position: absolute;
  }
  .fixed {
    position: fixed;
  }
  .relative {
    position: relative;
  }
  .static {
    position: static;
  }
  .sticky {
    position: sticky;
  }
  .start {
    inset-inline-start: var(--spacing);
  }
  .end {
    inset-inline-end: var(--spacing);
  }
  .container {
    width: 100%;
    @media (width >= 40rem) {
      max-width: 40rem;
    }
    @media (width >= 48rem) {
      max-width: 48rem;
    }
    @media (width >= 64rem) {
      max-width: 64rem;
    }
    @media (width >= 80rem) {
      max-width: 80rem;
    }
    @media (width >= 96rem) {
      max-width: 96rem;
    }
  }
  .block {
    display: block;
  }
  .contents {
    display: contents;
  }
  .flex {
    display: flex;
  }
  .grid {
    display: grid;
  }
  .hidden {
    display: none;
  }
  .inline {
    display: inline;
  }
  .table {
    display: table;
  }
  .transform {
    transform: var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,);
  }
  .resize {
    resize: both;
  }
  .rounded {
    border-radius: 0.25rem;
  }
  .border {
    border-style: var(--tw-border-style);
    border-width: 1px;
  }
  .shadow {
    --tw-shadow: 0 1px 3px 0 var(--tw-shadow-color, rgb(0 0 0 / 0.1)), 0 1px 2px -1px var(--tw-shadow-color, rgb(0 0 0 / 0.1));
    box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
  }
  .outline {
    outline-style: var(--tw-outline-style);
    outline-width: 1px;
  }
  .filter {
    filter: var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,);
  }
  .transition {
    transition-property: color, background-color, border-color, outline-color, text-decoration-color, fill, stroke, --tw-gradient-from, --tw-gradient-via, --tw-gradient-to, opacity, box-shadow, transform, translate, scale, rotate, filter, -webkit-backdrop-filter, backdrop-filter, display, content-visibility, overlay, pointer-events;
    transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));
    transition-duration: var(--tw-duration, var(--default-transition-duration));
  }
}
:root {
  --est-blue: #2f5f88;
  --est-blue-deep: #183a56;
  --est-blue-soft: #dce8f0;
  --north-sea: #6f8999;
  --mist: #eef2f3;
  --snow: #f8faf9;
  --peat: #413f38;
  --forest: #30463b;
  --moss: #65705b;
  --sand: #d8d0bf;
  --reed: #b6ad8c;
  --ink: #172027;
  --ink-soft: #4d5960;
  --line: #d7dee1;
  --white: #fff;
  --success: #416b57;
  --warning: #8a6833;
  --danger: #934b47;
  --page-max: 1280px;
  --content-max: 1040px;
  --article-max: 760px;
  --gutter: clamp(1.125rem, 4vw, 3.25rem);
  --space-1: .25rem;
  --space-2: .5rem;
  --space-3: .75rem;
  --space-4: 1rem;
  --space-5: 1.5rem;
  --space-6: 2rem;
  --space-7: 3rem;
  --space-8: 4rem;
  --space-9: 5rem;
  --radius-sm: 4px;
  --radius-md: 8px;
  --radius-lg: 12px;
  --text-xs: .78rem;
  --text-sm: .9rem;
  --text-base: 1rem;
  --text-lg: 1.18rem;
  --h4: clamp(1.15rem, 1vw + .9rem, 1.35rem);
  --h3: clamp(1.35rem, 1.5vw + 1rem, 1.75rem);
  --h2: clamp(1.8rem, 2.5vw + 1rem, 2.65rem);
  --h1: clamp(2.25rem, 5vw, 4.35rem);
}
*, *::before, *::after {
  box-sizing: border-box;
}
html {
  scroll-behavior: smooth;
}
body, h1, h2, h3, h4, p, ul, ol, dl, dd, figure {
  margin: 0;
}
ul, ol {
  padding: 0;
}
img, svg {
  display: block;
  max-width: 100%;
}
button, input, summary {
  font: inherit;
}
button, summary {
  cursor: pointer;
}
a {
  color: inherit;
  text-decoration: none;
}
details > summary {
  list-style: none;
}
details > summary::-webkit-details-marker {
  display: none;
}
body {
  --font-display: var(--font-body);
  --sticky-header-clearance: calc(102px + var(--space-4));
  background: var(--snow);
  color: var(--ink);
  font-family: var(--font-body), "Segoe UI", sans-serif;
  font-size: var(--text-base);
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
}
@media (max-width: 760px) {
  body {
    --sticky-header-clearance: calc(58px + var(--space-4));
  }
}
h1, h2, h3, h4, .wordmark, .button {
  font-family: var(--font-display), "Segoe UI", sans-serif;
}
h1 {
  font-size: var(--h1);
  line-height: 1.05;
  letter-spacing: -.025em;
}
h2 {
  font-size: var(--h2);
  line-height: 1.14;
  letter-spacing: -.02em;
}
h3 {
  font-size: var(--h3);
  line-height: 1.22;
  letter-spacing: -.012em;
}
p {
  color: var(--ink-soft);
}
a, button, summary, input {
  -webkit-tap-highlight-color: transparent;
}
a:focus-visible, button:focus-visible, summary:focus-visible, input:focus-visible, select:focus-visible, [tabindex]:focus-visible {
  outline: 3px solid #d89f23;
  outline-offset: 3px;
}
::selection {
  background: var(--est-blue-soft);
  color: var(--ink);
}
.skip-link {
  position: fixed;
  left: var(--space-4);
  top: var(--space-4);
  z-index: 1000;
  background: var(--white);
  color: var(--ink);
  padding: var(--space-3) var(--space-4);
  transform: translateY(-180%);
  border: 2px solid var(--ink);
}
.skip-link:focus {
  transform: translateY(0);
}
.icon {
  flex: 0 0 auto;
}
@media (prefers-reduced-motion: reduce) {
  html {
    scroll-behavior: auto;
  }
  *, *::before, *::after {
    scroll-behavior: auto !important;
    transition-duration: .01ms !important;
    animation-duration: .01ms !important;
    animation-iteration-count: 1 !important;
  }
}
.site-header {
  position: sticky;
  top: 0;
  z-index: 100;
  background: var(--white);
  box-shadow: 0 1px 0 rgba(23, 32, 39, .08);
}
.utility-bar {
  min-height: 34px;
  background: var(--est-blue-deep);
  color: rgba(255,255,255,.88);
}
.utility-inner, .main-header, .footer-inner, .footer-bottom {
  width: min(100%, var(--page-max));
  margin-inline: auto;
  padding-inline: var(--gutter);
}
.utility-inner {
  min-height: 34px;
  display: flex;
  align-items: stretch;
  justify-content: space-between;
}
.main-header {
  height: 68px;
  display: flex;
  align-items: center;
  gap: var(--space-6);
  border-bottom: 1px solid var(--line);
}
.brand-link {
  min-width: 185px;
}
.desktop-navigation {
  display: flex;
  align-items: center;
  gap: clamp(1rem, 2vw, 1.9rem);
  margin-left: auto;
  height: 100%;
  font-family: var(--font-display), sans-serif;
  font-size: .9rem;
  font-weight: 650;
  white-space: nowrap;
}
.desktop-navigation > details {
  display: flex;
  align-items: center;
  height: 100%;
}
.desktop-navigation > a, .desktop-navigation > details > summary {
  height: 100%;
  display: flex;
  align-items: center;
  min-height: 44px;
  border-bottom: 2px solid transparent;
}
.desktop-navigation > a:hover, .desktop-navigation > details > summary:hover, .desktop-navigation > details[open] > summary {
  border-bottom-color: var(--est-blue);
  color: var(--est-blue);
}
.header-actions {
  display: flex;
  align-items: center;
  gap: var(--space-3);
}
.search-link {
  width: 44px;
  min-height: 44px;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  font-family: var(--font-display), sans-serif;
  font-size: var(--text-sm);
  font-weight: 650;
}
.search-link:hover {
  background: var(--mist);
}
.find-stay-button {
  min-height: 44px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: var(--space-2);
  padding-inline: var(--space-4);
  background: var(--est-blue-deep);
  color: var(--white);
  font-family: var(--font-display), sans-serif;
  font-size: var(--text-sm);
  font-weight: 720;
  white-space: nowrap;
}
.find-stay-button:hover {
  background: var(--ink);
}
.mobile-stay-label {
  display: none;
}
.mobile-navigation {
  display: none;
}
.site-footer {
  background: var(--est-blue-deep);
  color: var(--white);
}
.footer-inner {
  display: grid;
  grid-template-columns: 1.45fr repeat(5, 1fr);
  gap: var(--space-6);
  padding-block: var(--space-8);
}
.footer-intro p {
  color: rgba(255,255,255,.68);
  margin-top: var(--space-4);
  max-width: 16rem;
}
.footer-group {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: .6rem;
}
.footer-group h2 {
  color: rgba(255,255,255,.55);
  font-size: .72rem;
  letter-spacing: .13em;
  text-transform: uppercase;
  margin-bottom: var(--space-2);
}
.footer-group a {
  font-size: var(--text-sm);
  min-height: 30px;
}
.footer-group a:hover {
  text-decoration: underline;
  text-underline-offset: 4px;
}
.footer-bottom {
  display: flex;
  justify-content: space-between;
  gap: var(--space-6);
  padding-block: var(--space-5);
  border-top: 1px solid rgba(255,255,255,.18);
}
.footer-bottom p {
  color: rgba(255,255,255,.62);
  font-size: var(--text-xs);
  max-width: 52rem;
}
.section, .page-shell {
  width: min(100%, var(--page-max));
  margin-inline: auto;
  padding-inline: var(--gutter);
}
.section {
  padding-block: var(--space-9);
}
.page-shell {
  padding-top: var(--space-6);
  padding-bottom: var(--space-9);
}
.section-intro {
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: var(--space-7);
  margin-bottom: var(--space-7);
}
.section-intro h2 {
  max-width: 690px;
}
.section-intro > p {
  max-width: 36rem;
  font-size: var(--text-lg);
}
@media (max-width: 1050px) {
  .desktop-navigation {
    gap: .8rem;
  }
  .desktop-navigation .secondary-nav-link {
    display: none;
  }
  .footer-inner {
    grid-template-columns: repeat(3, 1fr);
  }
  .footer-intro {
    grid-column: 1 / -1;
  }
}
@media (max-width: 760px) {
  .utility-bar {
    display: none;
  }
  .main-header {
    height: 58px;
  }
  .brand-link {
    min-width: 0;
  }
  .brand-link .wordmark i {
    width: 26px;
  }
  .desktop-navigation, .find-stay-button {
    display: none;
  }
  .header-actions {
    margin-left: auto;
    gap: 0;
  }
  .search-link {
    display: flex;
  }
  .mobile-navigation {
    display: block;
  }
  .mobile-navigation > summary {
    width: 44px;
    min-height: 44px;
    display: flex;
    align-items: center;
    justify-content: center;
  }
  .mobile-navigation > summary .menu-label {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
  }
  .mobile-navigation[open]::before {
    content: "";
    position: fixed;
    inset: 0;
    z-index: 190;
    background: rgba(12, 28, 39, .48);
  }
  .mobile-drawer {
    position: fixed;
    inset: 0 0 0 auto;
    width: min(90vw, 380px);
    z-index: 200;
    background: var(--snow);
    padding: max(var(--space-4), env(safe-area-inset-top)) var(--space-5) max(var(--space-5), env(safe-area-inset-bottom));
    overflow-y: auto;
    overscroll-behavior: contain;
    box-shadow: -18px 0 50px rgba(12, 28, 39, .18);
  }
  .mobile-navigation[open] > summary {
    position: fixed;
    right: var(--space-4);
    top: max(7px, env(safe-area-inset-top));
    z-index: 210;
    background: var(--snow);
  }
  .mobile-navigation[open] > summary .menu-icon, .mobile-navigation:not([open]) > summary .close-icon {
    display: none;
  }
  .drawer-top {
    min-height: 44px;
    display: flex;
    align-items: center;
    border-bottom: 1px solid var(--line);
    padding-right: 3.5rem;
  }
  .drawer-brand {
    min-height: 44px;
    display: inline-flex;
    align-items: center;
    width: max-content;
  }
  .drawer-kicker {
    margin-top: var(--space-6);
    color: var(--est-blue);
    font-family: var(--font-display), sans-serif;
    font-size: .68rem;
    font-weight: 750;
    letter-spacing: .14em;
    text-transform: uppercase;
  }
  .mobile-drawer nav {
    display: grid;
    padding-block: var(--space-3) var(--space-5);
  }
  .mobile-drawer nav a {
    min-height: 52px;
    border-bottom: 1px solid var(--line);
    display: flex;
    align-items: center;
    justify-content: space-between;
    font-family: var(--font-display), sans-serif;
    font-size: 1.12rem;
    font-weight: 680;
  }
  .mobile-drawer nav a:first-child {
    border-top: 1px solid var(--line);
  }
  .drawer-secondary {
    display: flex;
    flex-wrap: wrap;
    gap: .45rem 1rem;
    padding-bottom: var(--space-5);
  }
  .drawer-secondary a {
    min-height: 36px;
    display: inline-flex;
    align-items: center;
    gap: .4rem;
    color: var(--ink-soft);
    font-size: var(--text-sm);
  }
  .drawer-secondary a:hover {
    color: var(--est-blue);
  }
  .drawer-stay-link {
    min-height: 48px;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: var(--space-2);
    background: var(--est-blue-deep);
    color: var(--white);
    font-family: var(--font-display), sans-serif;
    font-weight: 720;
  }
  .drawer-edition {
    display: flex;
    justify-content: space-between;
    gap: var(--space-4);
    margin-top: var(--space-5);
    color: var(--ink-soft);
    font-size: var(--text-xs);
  }
  .drawer-meta {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0 var(--space-4);
    margin-top: var(--space-5);
    padding-top: var(--space-4);
    border-top: 1px solid var(--line);
  }
  .drawer-meta h2 {
    margin-top: var(--space-3);
    color: var(--ink-soft);
    font-size: .68rem;
    letter-spacing: .12em;
    text-transform: uppercase;
  }
  .drawer-meta a {
    min-height: 44px;
    display: flex;
    align-items: center;
    color: var(--est-blue);
    font-size: var(--text-sm);
  }
  .drawer-language-list {
    display: grid;
  }
  .drawer-language-list .unavailable-language {
    min-height: 44px;
    padding: .45rem 0;
    border-bottom: 1px solid var(--line);
    font-size: var(--text-sm);
  }
  .drawer-language-list .unavailable-language small {
    color: var(--ink-soft);
    font-size: .68rem;
  }
  .footer-inner {
    grid-template-columns: 1fr 1fr;
  }
  .footer-intro {
    grid-column: 1 / -1;
  }
  .footer-bottom {
    flex-direction: column;
  }
  .section {
    padding-block: var(--space-7);
  }
  .section-intro {
    display: grid;
    gap: var(--space-5);
  }
}
body.menu-open {
  overflow: hidden;
}
@media (max-width: 430px) {
  .footer-inner {
    grid-template-columns: 1fr;
  }
  .footer-intro {
    grid-column: auto;
  }
  .drawer-meta {
    grid-template-columns: 1fr;
  }
}
.wordmark {
  display: inline-flex;
  align-items: center;
  color: var(--ink);
  font-size: 1.28rem;
  letter-spacing: -.035em;
  line-height: 1;
  white-space: nowrap;
}
.wordmark span {
  font-weight: 500;
}
.wordmark strong {
  font-weight: 780;
}
.wordmark i {
  width: clamp(32px, 4vw, 62px);
  height: 1px;
  background: currentColor;
  margin-left: .7rem;
}
.wordmark-inverse {
  color: var(--white);
}
.switcher {
  position: relative;
  font-size: var(--text-xs);
}
.switcher > summary {
  min-height: 34px;
  display: flex;
  align-items: center;
  gap: .45rem;
  padding-inline: var(--space-2);
}
.current-dot {
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: #a7c7db;
  box-shadow: 0 0 0 3px rgba(255,255,255,.12);
}
.menu-chevron {
  width: .4rem;
  height: .4rem;
  margin: -.2rem 0 0 .2rem;
  border: solid currentColor;
  border-width: 0 1.5px 1.5px 0;
  opacity: .72;
  transform: rotate(45deg);
  transition: transform .16s ease, margin .16s ease;
}
details[open] > summary .menu-chevron {
  margin-top: .2rem;
  transform: rotate(225deg);
}
.switcher-panel {
  position: absolute;
  top: calc(100% + 1px);
  min-width: 260px;
  padding: var(--space-4);
  background: var(--white);
  color: var(--ink);
  border: 1px solid var(--line);
  box-shadow: 0 8px 30px rgba(23,32,39,.08);
  z-index: 150;
}
.country-switcher .switcher-panel {
  left: 0;
}
.language-switcher .switcher-panel {
  right: 0;
  min-width: 210px;
}
.switcher-panel > p {
  font-size: .68rem;
  letter-spacing: .12em;
  text-transform: uppercase;
  border-bottom: 1px solid var(--line);
  padding-bottom: var(--space-3);
  margin-bottom: var(--space-2);
}
.switcher-panel > a, .unavailable-language {
  display: flex;
  align-items: center;
  gap: var(--space-3);
  padding: .65rem .25rem;
  min-height: 48px;
}
.switcher-panel > a > span:last-child, .unavailable-language {
  flex-direction: column;
  align-items: flex-start;
  gap: 0;
}
.language-panel > a {
  display: grid;
  grid-template-columns: 1.5rem 1fr;
  align-items: center;
  gap: var(--space-3);
}
.language-copy {
  min-width: 0;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
}
.language-flag {
  width: 1.35rem;
  height: .9rem;
  display: block;
  flex: 0 0 1.35rem;
  overflow: hidden;
  border-radius: 2px;
  box-shadow: 0 0 0 1px rgba(23,32,39,.16);
}
.drawer-language-list a {
  gap: var(--space-2);
}
.switcher-panel small {
  color: var(--ink-soft);
  font-size: .72rem;
}
.switcher-panel .active strong {
  color: var(--est-blue);
}
.unavailable-language {
  opacity: .55;
  border-bottom: 1px solid var(--line);
}
.nav-dropdown {
  position: relative;
  height: 100%;
}
.nav-dropdown > summary {
  gap: .4rem;
}
.mega-menu {
  position: absolute;
  top: 68px;
  left: -135px;
  width: 430px;
  display: grid;
  gap: var(--space-4);
  padding: var(--space-5);
  background: var(--white);
  border: 1px solid var(--line);
  box-shadow: 0 12px 34px rgba(23,32,39,.1);
}
.mega-menu > p {
  text-transform: uppercase;
  font-size: .66rem;
  letter-spacing: .13em;
  padding-bottom: var(--space-3);
  border-bottom: 1px solid var(--line);
}
.mega-destination-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 2px var(--space-4);
}
.mega-destination-grid a {
  min-height: 38px;
  display: flex;
  align-items: center;
  padding-inline: var(--space-2);
}
.mega-destination-grid a:hover {
  background: var(--mist);
  color: var(--est-blue);
}
.mega-menu .mega-all {
  min-height: 44px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  border-top: 1px solid var(--line);
  padding: var(--space-3) var(--space-2) 0;
  color: var(--est-blue);
}
.section-label {
  display: flex;
  align-items: center;
  gap: var(--space-4);
  margin-bottom: var(--space-5);
  color: var(--ink-soft);
  font-family: var(--font-display), sans-serif;
  font-size: .72rem;
  font-weight: 700;
  letter-spacing: .13em;
  text-transform: uppercase;
}
.section-label i {
  flex: 1;
  height: 1px;
  background: var(--line);
  transform-origin: left;
  transition: transform .2s ease;
}
.section-label-inverse {
  color: rgba(255,255,255,.7);
}
.section-label-inverse i {
  background: rgba(255,255,255,.25);
}
.button {
  min-height: 48px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: var(--space-4);
  padding: .75rem 1.1rem;
  border: 1px solid transparent;
  font-size: var(--text-sm);
  font-weight: 720;
}
.primary-button {
  background: var(--est-blue-deep);
  color: var(--white);
}
.primary-button:hover {
  background: var(--ink);
}
.text-button {
  border-color: var(--line);
  background: var(--white);
}
.text-button:hover {
  border-color: var(--est-blue);
  color: var(--est-blue);
}
.inline-link, .official-link {
  display: inline-flex;
  align-items: center;
  gap: var(--space-3);
  color: var(--est-blue);
  font-weight: 700;
  min-height: 44px;
}
.inline-link:hover, .official-link:hover {
  text-decoration: underline;
  text-underline-offset: 4px;
}
.route-line {
  list-style: none;
  display: grid;
  grid-template-columns: repeat(var(--route-count, 4), 1fr);
  gap: 0;
}
.route-line li {
  position: relative;
  min-width: 0;
  padding-top: var(--space-5);
}
.route-line li::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 11px;
  height: 11px;
  border: 2px solid var(--est-blue);
  border-radius: 50%;
  background: var(--snow);
  z-index: 2;
}
.route-line li::after {
  content: "";
  position: absolute;
  top: 5px;
  left: 11px;
  right: 0;
  height: 1px;
  background: var(--est-blue);
}
.route-line li:last-child::after {
  display: none;
}
.route-line a, .route-line strong {
  display: inline-block;
  font-family: var(--font-display), sans-serif;
  font-weight: 720;
}
.route-line a:hover {
  color: var(--est-blue);
}
.route-line li > span {
  display: block;
  color: var(--ink-soft);
  font-size: var(--text-sm);
  margin-top: .2rem;
  padding-right: var(--space-4);
}
.breadcrumbs {
  display: flex;
  align-items: center;
  gap: var(--space-2);
  color: var(--ink-soft);
  font-size: var(--text-xs);
  margin-bottom: var(--space-7);
}
.breadcrumbs a {
  color: var(--est-blue);
  min-height: 32px;
  display: inline-flex;
  align-items: center;
}
.article-header {
  max-width: 980px;
  padding-bottom: var(--space-7);
}
.article-header h1 {
  max-width: 900px;
}
.article-deck {
  max-width: 760px;
  font-size: clamp(1.1rem, 2vw, 1.35rem);
  line-height: 1.55;
  margin-top: var(--space-5);
}
.fact-tags {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-2);
  margin-top: var(--space-5);
}
.fact-tags span {
  border: 1px solid var(--line);
  background: var(--white);
  border-radius: var(--radius-sm);
  padding: .45rem .65rem;
  font-size: var(--text-xs);
  color: var(--ink-soft);
}
.editorial-date {
  font-size: var(--text-xs);
  margin-top: var(--space-4);
}
.next-guide {
  margin-top: var(--space-8);
  border-top: 1px solid var(--ink);
  border-bottom: 1px solid var(--ink);
  padding-block: var(--space-6);
  display: grid;
  grid-template-columns: .6fr 1.3fr auto;
  gap: var(--space-6);
  align-items: center;
}
.next-guide > span {
  text-transform: uppercase;
  letter-spacing: .13em;
  font-size: .68rem;
  color: var(--ink-soft);
}
.next-guide h2 {
  font-size: var(--h3);
}
.next-guide a {
  min-height: 48px;
  display: flex;
  align-items: center;
  gap: var(--space-3);
  color: var(--est-blue);
  font-weight: 700;
}
@media (max-width: 760px) {
  .route-line {
    display: block;
  }
  .route-line li {
    min-height: 78px;
    padding: 0 0 var(--space-5) var(--space-6);
  }
  .route-line li::before {
    top: 5px;
  }
  .route-line li::after {
    top: 16px;
    left: 5px;
    bottom: 0;
    width: 1px;
    height: auto;
  }
  .route-line li:last-child {
    min-height: 0;
  }
  .next-guide {
    grid-template-columns: 1fr;
    gap: var(--space-3);
  }
}
.home-hero {
  width: min(100%, var(--page-max));
  margin-inline: auto;
  padding: var(--space-6) var(--gutter) 0;
  display: grid;
  grid-template-columns: repeat(12, 1fr);
}
.home-hero-copy {
  grid-column: 1 / 7;
  grid-row: 1;
  z-index: 2;
  align-self: center;
  min-height: 470px;
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: clamp(2.5rem, 4vw, 4.4rem);
  background: var(--est-blue-deep);
  color: var(--white);
}
.home-hero .kicker {
  color: #9fc3d4;
  text-transform: uppercase;
  letter-spacing: .14em;
  font-family: var(--font-display), sans-serif;
  font-size: .7rem;
  font-weight: 730;
}
.home-hero h1 {
  max-width: 590px;
  margin-top: var(--space-5);
  font-size: clamp(3rem, 4.5vw, 4.45rem);
  line-height: .98;
  letter-spacing: -.045em;
}
.home-hero .hero-summary {
  max-width: 520px;
  margin-top: var(--space-5);
  color: rgba(255,255,255,.76);
  font-size: clamp(1rem, 1.3vw, 1.18rem);
  line-height: 1.65;
}
.home-hero-actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--space-5);
  margin-top: var(--space-6);
}
.home-hero-actions a {
  min-height: 48px;
  display: inline-flex;
  align-items: center;
  gap: var(--space-3);
  font-weight: 740;
}
.home-hero-primary {
  padding-inline: var(--space-5);
  background: var(--white);
  color: var(--est-blue-deep);
}
.home-hero-secondary {
  color: var(--white);
  border-bottom: 1px solid rgba(255,255,255,.55);
}
.home-hero-route {
  display: flex;
  align-items: center;
  gap: .7rem;
  margin-top: var(--space-7);
  color: rgba(255,255,255,.68);
  font-size: .72rem;
  letter-spacing: .04em;
  white-space: nowrap;
}
.home-hero-route i {
  width: clamp(20px, 3vw, 52px);
  height: 1px;
  background: rgba(255,255,255,.38);
}
.home-hero-photo {
  grid-column: 6 / -1;
  grid-row: 1;
  position: relative;
  min-height: 620px;
  margin: 0;
  overflow: hidden;
  background: var(--sand);
}
.home-hero-photo::after {
  content: "";
  position: absolute;
  inset: auto 0 0;
  height: 24%;
  background: linear-gradient(transparent, rgba(12,28,39,.66));
  pointer-events: none;
}
.home-hero-photo picture {
  display: block;
  width: 100%;
  height: 100%;
}
.home-hero-photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: 50% 50%;
}
.home-hero-photo figcaption {
  position: absolute;
  z-index: 1;
  left: 0;
  right: 0;
  bottom: 0;
  display: flex;
  justify-content: space-between;
  gap: var(--space-4);
  padding: var(--space-4) var(--space-5);
  color: var(--white);
  font-size: var(--text-xs);
}
.localized-home-hero {
  padding: 0;
}
.localized-hero-shortcuts {
  grid-column: 1 / -1;
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  border-top: 1px solid var(--ink);
  border-bottom: 1px solid var(--line);
}
.localized-hero-shortcuts a {
  min-height: 58px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding-inline: var(--space-4);
  border-right: 1px solid var(--line);
  font-family: var(--font-display), sans-serif;
  font-size: var(--text-xs);
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .08em;
}
.localized-hero-shortcuts a::after {
  content: "→";
  color: var(--est-blue);
}
.localized-hero-shortcuts a:last-child {
  border-right: 0;
}
.hero-shortcuts {
  grid-column: 1 / -1;
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  border-top: 1px solid var(--ink);
  border-bottom: 1px solid var(--line);
}
.hero-shortcuts a {
  min-height: 58px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding-inline: var(--space-4);
  border-right: 1px solid var(--line);
  font-family: var(--font-display), sans-serif;
  font-size: var(--text-xs);
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .08em;
}
.hero-shortcuts a::after {
  content: "→";
  color: var(--est-blue);
}
.hero-shortcuts a:last-child {
  border-right: 0;
}
.home-journey-nav {
  grid-column: 1 / -1;
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  border: 1px solid var(--line);
  border-top: 0;
  background: var(--white);
}
.home-journey-nav a {
  min-height: 106px;
  display: grid;
  grid-template-columns: auto 1fr auto;
  grid-template-rows: auto auto;
  column-gap: var(--space-3);
  padding: var(--space-5);
  border-right: 1px solid var(--line);
}
.home-journey-nav a:last-child {
  border-right: 0;
}
.home-journey-nav a > span {
  grid-row: 1 / 3;
  color: var(--est-blue);
  font-family: var(--font-display), sans-serif;
  font-weight: 740;
}
.home-journey-nav small {
  color: var(--ink-soft);
  font-size: .66rem;
  letter-spacing: .12em;
  text-transform: uppercase;
}
.home-journey-nav strong {
  align-self: end;
  font-family: var(--font-display), sans-serif;
  font-size: .94rem;
}
.home-journey-nav .icon {
  grid-column: 3;
  grid-row: 1 / 3;
  align-self: center;
  color: var(--est-blue);
}
.home-journey-nav a:hover {
  background: var(--mist);
}
.home-stay-search {
  margin-top: var(--space-8);
}
.home-stay-search-section {
  padding-top: var(--space-8);
}
.trust-links {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-3) var(--space-5);
  margin-top: var(--space-5);
}
.trust-links a {
  min-height: 44px;
  display: inline-flex;
  align-items: center;
  color: var(--est-blue);
  border-bottom: 1px solid var(--est-blue);
}
.route-selector .route-line {
  --route-count: 4;
  margin-top: var(--space-7);
}
.destination-feature {
  display: grid;
  grid-template-columns: 1.05fr 1fr;
  gap: var(--space-7);
}
.primary-destination {
  display: grid;
  grid-template-columns: 1fr auto;
  align-items: end;
}
.primary-destination img {
  grid-column: 1 / -1;
  width: 100%;
  aspect-ratio: 16 / 10;
  object-fit: cover;
  border-radius: var(--radius-md);
  margin-bottom: var(--space-5);
  transition: transform .2s ease;
}
.primary-destination > span {
  grid-column: 1 / -1;
  text-transform: uppercase;
  letter-spacing: .12em;
  color: var(--est-blue);
  font-size: .7rem;
}
.primary-destination h3 {
  margin-top: var(--space-2);
  font-size: var(--h2);
}
.primary-destination p {
  grid-column: 1 / -1;
  max-width: 34rem;
  margin-top: var(--space-2);
}
.primary-destination > strong {
  grid-column: 1 / -1;
  display: flex;
  align-items: center;
  gap: var(--space-3);
  color: var(--est-blue);
  margin-top: var(--space-4);
}
.primary-destination:hover img {
  transform: scale(1.008);
}
.destination-rows {
  border-top: 1px solid var(--ink);
}
.destination-rows a {
  min-height: 91px;
  display: grid;
  grid-template-columns: 110px 1fr auto;
  gap: var(--space-4);
  align-items: center;
  border-bottom: 1px solid var(--line);
}
.destination-rows a > strong {
  font-family: var(--font-display), sans-serif;
  font-size: 1.05rem;
}
.destination-rows a > span {
  color: var(--ink-soft);
  font-size: var(--text-sm);
}
.destination-rows a:hover strong {
  color: var(--est-blue);
}
.landscape-section {
  background: var(--forest);
  color: var(--white);
  padding-block: var(--space-8);
}
.landscape-heading {
  width: min(100%, var(--page-max));
  margin-inline: auto;
  padding-inline: var(--gutter);
}
.landscape-heading h2 {
  max-width: 670px;
}
.landscape-grid {
  width: min(100%, var(--page-max));
  margin: var(--space-7) auto 0;
  padding-inline: var(--gutter);
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  min-height: 370px;
}
.landscape-panel {
  position: relative;
  display: flex;
  flex-direction: column;
  justify-content: end;
  gap: .2rem;
  padding: var(--space-5);
  border-right: 1px solid rgba(255,255,255,.35);
  background-size: cover;
  background-position: center;
  overflow: hidden;
}
.landscape-panel::before {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(transparent 25%, rgba(23,32,39,.82));
}
.landscape-panel > * {
  position: relative;
  z-index: 1;
}
.landscape-panel span {
  text-transform: uppercase;
  letter-spacing: .13em;
  font-size: .68rem;
  color: rgba(255,255,255,.72);
}
.landscape-panel strong {
  font-family: var(--font-display), sans-serif;
}
.landscape-panel.city {
  background-image: url('/images/tallinn-768.webp');
}
.landscape-panel.sea {
  background-image: url('/images/saaremaa-768.webp');
}
.landscape-panel.forest {
  background-image: url('/images/hero-bog-768.webp');
}
.landscape-panel.bog {
  background: linear-gradient(160deg, #879b88, #413f38);
}
.landscape-panel.lake {
  background: linear-gradient(160deg, #9bb1bd, #2f5f88);
}
.landscape-panel:hover {
  outline: 2px solid var(--white);
  outline-offset: -2px;
}
.choice-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  border-top: 1px solid var(--ink);
}
.choice-grid article {
  padding: var(--space-6);
  border-bottom: 1px solid var(--line);
}
.choice-grid article:first-child {
  border-right: 1px solid var(--line);
}
.choice-code {
  text-transform: uppercase;
  letter-spacing: .12em;
  color: var(--est-blue);
  font-size: .7rem;
  margin-bottom: var(--space-4);
}
.choice-grid ul {
  list-style: none;
  margin-block: var(--space-5);
}
.choice-grid li {
  padding: .6rem 0 .6rem 1.3rem;
  border-bottom: 1px solid var(--line);
  color: var(--ink-soft);
  position: relative;
}
.choice-grid li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 1.2rem;
  width: 7px;
  height: 1px;
  background: var(--est-blue);
}
.choice-grid a {
  display: inline-flex;
  gap: var(--space-3);
  align-items: center;
  color: var(--est-blue);
  font-weight: 700;
}
.season-strip {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  border-top: 1px solid var(--ink);
}
.season-strip article {
  padding: var(--space-5);
  border-right: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
}
.season-strip article:last-child {
  border-right: 0;
}
.season-strip h3 {
  font-size: var(--h4);
}
.season-strip p {
  margin-top: var(--space-3);
  font-size: var(--text-sm);
}
.current-panel {
  background: var(--est-blue-deep);
  color: var(--white);
  padding: var(--space-8) max(var(--gutter), calc((100vw - var(--page-max)) / 2 + var(--gutter)));
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: var(--space-8);
}
.current-links {
  display: grid;
  border-top: 1px solid rgba(255,255,255,.3);
}
.current-links a {
  min-height: 58px;
  display: flex;
  justify-content: space-between;
  align-items: center;
  border-bottom: 1px solid rgba(255,255,255,.22);
}
.current-links p {
  color: rgba(255,255,255,.63);
  font-size: var(--text-xs);
  margin-top: var(--space-4);
}
.baltic-section .baltic-route {
  --route-count: 3;
  margin-top: var(--space-7);
}
.editorial-section {
  width: min(100%, var(--page-max));
  margin-inline: auto;
  padding: var(--space-8) var(--gutter);
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: var(--space-8);
  border-top: 1px solid var(--line);
}
.editorial-copy > p {
  font-size: var(--text-lg);
}
.editorial-copy dl {
  margin-top: var(--space-6);
}
.editorial-copy dl div {
  display: flex;
  justify-content: space-between;
  gap: var(--space-4);
  padding-block: var(--space-3);
  border-bottom: 1px solid var(--line);
}
.editorial-copy dt {
  color: var(--ink-soft);
}
.editorial-copy dd {
  font-weight: 700;
  text-align: right;
}
.photo-credits {
  grid-column: 1 / -1;
  border-top: 1px solid var(--line);
  padding-top: var(--space-4);
}
.photo-credits summary {
  min-height: 44px;
  display: flex;
  align-items: center;
  font-weight: 700;
}
.photo-credits p {
  max-width: 85ch;
  font-size: var(--text-xs);
}
@media (max-width: 900px) {
  .home-hero {
    grid-template-columns: 1fr;
  }
  .home-hero-copy {
    grid-column: 1;
    grid-row: 1;
    min-height: auto;
  }
  .home-hero-photo {
    grid-column: 1;
    grid-row: 2;
    min-height: 430px;
  }
  .home-journey-nav {
    grid-column: 1;
    grid-row: 3;
    grid-template-columns: 1fr 1fr;
  }
  .home-journey-nav a:nth-child(2) {
    border-right: 0;
  }
  .home-journey-nav a:nth-child(-n+2) {
    border-bottom: 1px solid var(--line);
  }
  .destination-feature {
    grid-template-columns: 1fr;
  }
  .landscape-grid {
    grid-template-columns: repeat(3, 1fr);
  }
  .landscape-panel {
    min-height: 260px;
  }
  .editorial-section {
    grid-template-columns: 1fr;
  }
  .photo-credits {
    grid-column: auto;
  }
}
@media (max-width: 650px) {
  .home-hero {
    padding: 0;
  }
  .home-hero-copy {
    padding: var(--space-7) var(--gutter);
  }
  .home-hero h1 {
    font-size: clamp(2.55rem, 11vw, 3.35rem);
  }
  .home-hero-route {
    white-space: normal;
  }
  .home-hero-photo {
    min-height: 330px;
  }
  .home-hero-photo figcaption span:last-child {
    display: none;
  }
  .home-journey-nav {
    border-inline: 0;
  }
  .home-journey-nav a {
    min-height: 112px;
    padding: var(--space-4);
  }
  .hero-shortcuts {
    grid-template-columns: 1fr 1fr;
  }
  .localized-hero-shortcuts {
    grid-template-columns: 1fr 1fr;
  }
  .localized-hero-shortcuts a:nth-child(2) {
    border-right: 0;
  }
  .localized-hero-shortcuts a:nth-child(-n+2) {
    border-bottom: 1px solid var(--line);
  }
  .hero-shortcuts a:nth-child(2) {
    border-right: 0;
  }
  .hero-shortcuts a:nth-child(-n+2) {
    border-bottom: 1px solid var(--line);
  }
  .destination-rows a {
    grid-template-columns: 85px 1fr auto;
  }
  .landscape-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
  }
  .landscape-panel {
    min-height: 210px;
  }
  .landscape-panel:last-child {
    grid-column: 1 / -1;
  }
  .choice-grid, .current-panel, .editorial-section {
    grid-template-columns: 1fr;
  }
  .choice-grid article:first-child {
    border-right: 0;
  }
  .season-strip {
    grid-template-columns: 1fr 1fr;
  }
  .season-strip article:nth-child(2) {
    border-right: 0;
  }
}
.article-hero-image {
  margin-bottom: var(--space-8);
}
.decision-band + .article-hero-image {
  margin-top: var(--space-7);
}
.article-hero-image img {
  width: 100%;
  aspect-ratio: 16 / 7;
  object-fit: cover;
  border-radius: var(--radius-md);
}
.article-hero-image figcaption {
  color: var(--ink-soft);
  font-size: var(--text-xs);
  margin-top: var(--space-2);
}
.decision-band {
  display: grid;
  grid-template-columns: .75fr 1.35fr;
  gap: var(--space-8);
  padding-block: var(--space-7);
  border-top: 1px solid var(--ink);
  border-bottom: 1px solid var(--line);
}
.decision-band dl div {
  display: grid;
  grid-template-columns: 130px 1fr;
  gap: var(--space-4);
  padding-block: .65rem;
  border-bottom: 1px solid var(--line);
}
.decision-band dt {
  color: var(--ink-soft);
}
.decision-band dd {
  font-weight: 650;
}
.article-layout {
  display: grid;
  grid-template-columns: 210px minmax(0, var(--article-max));
  gap: clamp(3rem, 8vw, 7rem);
  align-items: start;
  padding-top: var(--space-8);
}
.article-layout.no-article-toc {
  grid-template-columns: minmax(0, var(--article-max));
}
.article-toc {
  position: sticky;
  top: var(--sticky-header-clearance);
  border-top: 1px solid var(--ink);
  padding-top: var(--space-4);
}
.article-toc > p {
  text-transform: uppercase;
  letter-spacing: .13em;
  font-size: .68rem;
  margin-bottom: var(--space-3);
}
.article-toc nav {
  display: grid;
}
.article-toc a {
  min-height: 37px;
  display: flex;
  align-items: center;
  color: var(--ink-soft);
  font-size: var(--text-sm);
  border-left: 1px solid var(--line);
  padding-left: var(--space-3);
}
.article-toc a:hover {
  border-left: 4px solid var(--est-blue);
  color: var(--est-blue);
}
.article-body {
  max-width: var(--article-max);
}
.article-body > section {
  scroll-margin-top: var(--sticky-header-clearance);
  margin-bottom: var(--space-8);
}
.thin-content-expansion {
  border-top: 1px solid var(--line);
  padding-top: var(--space-6);
}
.thin-content-expansion > section {
  scroll-margin-top: var(--sticky-header-clearance);
  margin-bottom: var(--space-8);
}
.thin-content-expansion .fact-checked {
  color: var(--ink-soft);
  font-size: var(--text-xs);
}
.thin-content-sources {
  border-top: 1px solid var(--line);
  margin-bottom: var(--space-8);
  padding-top: var(--space-4);
}
.thin-content-sources h3 {
  font-size: var(--text-sm);
  letter-spacing: .08em;
  text-transform: uppercase;
}
.thin-content-sources ul {
  padding-left: 1.2rem;
}
.thin-content-sources li {
  margin-bottom: var(--space-2);
}
.thin-content-sources a {
  color: var(--est-blue);
  text-decoration: underline;
  text-underline-offset: 3px;
}
.article-body h2 {
  margin-bottom: var(--space-5);
}
.article-body h3 {
  margin: var(--space-6) 0 var(--space-3);
  font-size: var(--h4);
}
.article-body p {
  line-height: 1.68;
  margin-bottom: var(--space-4);
}
.fit-check {
  background: var(--mist);
  padding: var(--space-6);
  border-left: 3px solid var(--est-blue);
}
.fit-check > div {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: var(--space-6);
}
.fit-check ul {
  list-style: none;
}
.fit-check li {
  padding: .45rem 0 .45rem 1.3rem;
  position: relative;
  color: var(--ink-soft);
}
.fit-check li::before {
  content: "✓";
  position: absolute;
  left: 0;
  color: var(--success);
}
.fit-check > div > div:last-child li::before {
  content: "→";
  color: var(--est-blue);
}
.travel-note {
  border: 1px solid var(--line);
  border-left: 3px solid var(--warning);
  padding: var(--space-5);
  margin-block: var(--space-5);
}
.travel-note p {
  margin: var(--space-2) 0 0;
}
.stay-areas {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  border-top: 1px solid var(--ink);
}
.stay-areas article {
  padding: var(--space-4);
  border-right: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
}
.stay-areas article:last-child {
  border-right: 0;
}
.stay-areas p {
  font-size: var(--text-sm);
}
.article-body .route-line {
  --route-count: 3;
  margin-block: var(--space-6);
}
.source-list {
  border-top: 1px solid var(--ink);
  padding-top: var(--space-5);
}
.source-list ul {
  padding-left: 1.2rem;
}
.source-list li {
  margin-bottom: var(--space-3);
}
.source-list a {
  color: var(--est-blue);
  text-decoration: underline;
  text-underline-offset: 3px;
}
.source-list > p {
  font-size: var(--text-xs);
  margin-top: var(--space-5);
}
.destination-stay-areas {
  grid-template-columns: repeat(2, 1fr);
}
.destination-stay-areas article:nth-child(2n) {
  border-right: 0;
}
.affiliate-inline, .editorial-dates {
  margin-top: var(--space-4);
  font-size: var(--text-xs);
}
.guide-highlight {
  padding-bottom: var(--space-3);
  border-bottom: 1px solid var(--line);
}
.onward-links {
  display: grid;
  border-top: 1px solid var(--ink);
}
.onward-links a {
  min-height: 74px;
  display: grid;
  grid-template-columns: 120px 1fr auto;
  gap: var(--space-4);
  align-items: center;
  border-bottom: 1px solid var(--line);
}
.onward-links a strong {
  color: var(--est-blue);
}
.onward-links a span {
  color: var(--ink-soft);
  font-size: var(--text-sm);
}
.guide-bullets {
  padding-left: 1.2rem;
  margin-block: var(--space-4);
}
.guide-bullets li {
  margin-bottom: var(--space-2);
}
.editorial-layout {
  padding-top: var(--space-5);
}
.editorial-guide-page .article-header {
  border-bottom: 1px solid var(--ink);
}
.category-trust .article-body > section {
  margin-bottom: var(--space-7);
}
.destination-explorer {
  display: grid;
  grid-template-columns: 1.08fr .92fr;
  gap: var(--space-8);
  padding-block: var(--space-7);
  border-top: 1px solid var(--ink);
}
.map-panel {
  position: sticky;
  top: var(--sticky-header-clearance);
  align-self: start;
}
.map-panel > h2 {
  margin-bottom: var(--space-5);
}
.estonia-map {
  position: relative;
  background: var(--est-blue-soft);
  border: 1px solid var(--line);
  border-radius: var(--radius-md);
  overflow: hidden;
}
.estonia-map > img {
  width: 100%;
  opacity: .72;
  filter: saturate(.35) hue-rotate(150deg);
}
.map-marker {
  position: absolute;
  display: flex;
  align-items: center;
  gap: .35rem;
  font-size: .66rem;
  font-weight: 750;
  padding: .25rem .4rem;
  background: rgba(248,250,249,.9);
  border: 1px solid var(--line);
  border-radius: var(--radius-sm);
}
.map-marker span {
  width: 7px;
  height: 7px;
  background: var(--est-blue-deep);
  border-radius: 50%;
}
.map-marker:hover {
  background: var(--est-blue-deep);
  color: var(--white);
}
.map-marker.tallinn {
  left: 59%;
  top: 14%;
}
.map-marker.tartu {
  left: 64%;
  top: 62%;
}
.map-marker.parnu {
  left: 34%;
  top: 63%;
}
.map-marker.saaremaa {
  left: 8%;
  top: 60%;
}
.map-marker.haapsalu {
  left: 25%;
  top: 37%;
}
.map-marker.narva {
  right: 2%;
  top: 31%;
}
.map-marker.viljandi {
  left: 47%;
  top: 65%;
}
.map-marker.hiiumaa {
  left: 6%;
  top: 35%;
}
.map-marker.lahemaa {
  left: 69%;
  top: 18%;
}
.map-source {
  font-size: .7rem;
  margin-top: var(--space-2);
}
.destination-index {
  border-top: 1px solid var(--ink);
}
.destination-index > .section-label {
  margin-top: var(--space-4);
}
.destination-index article {
  padding-block: var(--space-5);
  border-bottom: 1px solid var(--line);
  display: grid;
  grid-template-columns: 1fr auto;
  gap: var(--space-4);
}
.destination-index article span {
  color: var(--est-blue);
  text-transform: uppercase;
  letter-spacing: .12em;
  font-size: .66rem;
}
.destination-index article h2 {
  font-size: var(--h3);
  margin-block: .2rem;
}
.destination-index article p {
  font-size: var(--text-sm);
  max-width: 30rem;
}
.destination-index-actions {
  align-self: end;
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: var(--space-2);
}
.destination-index-actions a {
  min-height: 44px;
  display: inline-flex;
  align-items: center;
  gap: var(--space-2);
  padding: .5rem .7rem;
  border: 1px solid var(--line);
  color: var(--est-blue);
  font-size: var(--text-sm);
  font-weight: 700;
}
.destination-index-actions a:last-child {
  background: var(--est-blue-deep);
  color: var(--white);
  border-color: var(--est-blue-deep);
}
.regions-block {
  padding-block: var(--space-8);
  border-top: 1px solid var(--line);
}
.regions-block > p {
  max-width: 48rem;
  margin-top: var(--space-4);
}
.region-lines {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  margin-top: var(--space-7);
}
.region-lines article {
  padding: var(--space-4);
  border-right: 1px solid var(--line);
}
.region-lines article:last-child {
  border-right: 0;
}
.region-signature {
  display: block;
  height: 48px;
  border-top: 2px solid var(--est-blue);
  position: relative;
}
.region-signature::after {
  content: "";
  position: absolute;
  left: 25%;
  right: 10%;
  top: 13px;
  height: 1px;
  background: var(--moss);
}
.region-signature.south::after {
  transform: rotate(-4deg);
}
.region-signature.islands::after {
  left: 10%;
  right: 55%;
  box-shadow: 60px 8px 0 var(--moss);
}
.region-signature.east::after {
  height: 12px;
  background: var(--est-blue-soft);
  border-bottom: 1px solid var(--est-blue);
}
.region-lines h3 {
  font-size: var(--h4);
}
.region-lines p {
  font-size: var(--text-sm);
  margin-top: var(--space-2);
}
.itinerary-route {
  --route-count: 3;
  padding: var(--space-6);
  background: var(--mist);
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
  margin-bottom: var(--space-8);
}
.itinerary-summary {
  margin-bottom: var(--space-7);
}
.itinerary-summary > h2 {
  margin-bottom: var(--space-5);
}
.table-wrap {
  overflow-x: auto;
  border: 1px solid var(--line);
}
.table-wrap table {
  width: 100%;
  min-width: 640px;
  border-collapse: collapse;
  background: var(--white);
}
.table-wrap caption {
  text-align: left;
  padding: var(--space-4);
  color: var(--ink-soft);
  font-size: var(--text-sm);
}
.table-wrap th, .table-wrap td {
  padding: .75rem var(--space-4);
  text-align: left;
  border-top: 1px solid var(--line);
}
.table-wrap thead th {
  background: var(--mist);
  font-size: var(--text-xs);
  letter-spacing: .08em;
  text-transform: uppercase;
}
.table-wrap tfoot {
  font-weight: 750;
}
.itinerary-layout {
  display: grid;
  grid-template-columns: 1.3fr .7fr;
  gap: var(--space-8);
  align-items: start;
}
.day-timeline > h2 {
  margin-bottom: var(--space-6);
}
.day-timeline article {
  display: grid;
  grid-template-columns: 85px 1fr;
  gap: var(--space-5);
  padding-block: var(--space-5);
  border-top: 1px solid var(--line);
  position: relative;
}
.day-timeline article > span {
  color: var(--est-blue);
  font-family: var(--font-display), sans-serif;
  font-size: var(--text-sm);
  font-weight: 750;
}
.day-timeline article h3 {
  font-size: var(--h4);
  margin-bottom: var(--space-2);
}
.route-decisions {
  background: var(--mist);
  padding: var(--space-6);
  position: sticky;
  top: var(--sticky-header-clearance);
}
.route-decisions h2 {
  font-size: var(--h3);
  margin-bottom: var(--space-5);
}
.route-decisions dl div {
  padding-block: var(--space-4);
  border-top: 1px solid var(--line);
}
.route-decisions dt {
  font-weight: 750;
}
.route-decisions dd {
  color: var(--ink-soft);
  font-size: var(--text-sm);
  margin-top: var(--space-2);
}
.route-warning {
  background: var(--peat);
  color: var(--white);
  margin: var(--space-8) calc(var(--gutter) * -1) 0;
  padding: var(--space-7) var(--gutter);
}
.route-warning h2 {
  max-width: 760px;
}
.route-warning p {
  color: rgba(255,255,255,.72);
  max-width: 720px;
  margin-top: var(--space-4);
}
.route-warning a {
  color: var(--white);
  display: inline-flex;
  gap: var(--space-3);
  align-items: center;
  margin-top: var(--space-5);
  text-decoration: underline;
  text-underline-offset: 4px;
}
.planning-sequence {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  border-top: 1px solid var(--ink);
  margin-block: var(--space-7) var(--space-9);
}
.planning-sequence article {
  padding: var(--space-5);
  border-right: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
}
.planning-sequence article:last-child {
  border-right: 0;
}
.planning-sequence article > span {
  color: var(--est-blue);
  font-weight: 750;
}
.planning-sequence h2 {
  font-size: var(--h4);
  margin-block: var(--space-4);
}
.planning-sequence p {
  font-size: var(--text-sm);
}
.planning-section {
  max-width: var(--content-max);
  display: grid;
  grid-template-columns: .55fr 1fr;
  gap: var(--space-8);
  padding-block: var(--space-7);
  border-top: 1px solid var(--line);
}
.planning-section > .section-label {
  align-self: start;
}
.planning-section > div > p {
  font-size: var(--text-lg);
  margin-top: var(--space-4);
}
.official-links {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-3);
  margin-top: var(--space-5);
}
.official-links a {
  min-height: 44px;
  display: inline-flex;
  align-items: center;
  gap: var(--space-2);
  padding: .5rem .75rem;
  border: 1px solid var(--line);
  color: var(--est-blue);
}
.search-page {
  max-width: var(--content-max);
}
.search-page header {
  padding-bottom: var(--space-7);
}
.search-page header h1 {
  margin-block: var(--space-3);
}
.search-page form {
  border-top: 1px solid var(--ink);
  border-bottom: 1px solid var(--line);
  padding-block: var(--space-5);
  margin-bottom: var(--space-7);
}
.search-page form label {
  display: block;
  font-weight: 700;
  margin-bottom: var(--space-2);
}
.search-page form > div {
  display: grid;
  grid-template-columns: 1fr auto;
}
.search-page input {
  min-height: 50px;
  border: 1px solid var(--line);
  border-right: 0;
  padding-inline: var(--space-4);
  background: var(--white);
  color: var(--ink);
}
.search-page button {
  min-height: 50px;
  display: flex;
  align-items: center;
  gap: var(--space-2);
  border: 0;
  background: var(--est-blue-deep);
  color: var(--white);
  padding-inline: var(--space-5);
}
.search-page section > h2 {
  font-size: var(--h3);
  margin-bottom: var(--space-5);
}
.search-categories {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-2);
  margin: calc(var(--space-5) * -1) 0 var(--space-7);
}
.search-categories a {
  min-height: 44px;
  display: inline-flex;
  align-items: center;
  padding-inline: .8rem;
  border: 1px solid var(--line);
  color: var(--est-blue);
  text-transform: capitalize;
  font-size: var(--text-sm);
}
.search-categories a:hover {
  border-color: var(--est-blue);
  background: var(--white);
}
.search-results {
  border-top: 1px solid var(--line);
}
.search-results article {
  display: grid;
  grid-template-columns: 130px 1fr auto;
  gap: var(--space-5);
  padding-block: var(--space-5);
  border-bottom: 1px solid var(--line);
  align-items: center;
}
.search-results article > span {
  color: var(--est-blue);
  text-transform: uppercase;
  letter-spacing: .11em;
  font-size: .66rem;
}
.search-results article h3 {
  font-size: var(--h4);
}
.search-results article p {
  grid-column: 2;
  font-size: var(--text-sm);
}
.search-results article small {
  grid-column: 2;
  color: var(--ink-soft);
}
.search-results article > a:last-child {
  grid-column: 3;
  grid-row: 1 / 3;
  display: flex;
  align-items: center;
  gap: var(--space-2);
  color: var(--est-blue);
}
.empty-state {
  background: var(--mist);
  padding: var(--space-7);
}
.empty-state p {
  margin-block: var(--space-3) var(--space-5);
}
.empty-state a {
  display: inline-flex;
  gap: var(--space-2);
  align-items: center;
  color: var(--est-blue);
  font-weight: 700;
}
.not-found {
  min-height: 55vh;
  width: min(100%, var(--content-max));
  margin-inline: auto;
  padding: var(--space-9) var(--gutter);
}
.not-found > p:first-child {
  text-transform: uppercase;
  color: var(--est-blue);
  letter-spacing: .13em;
  font-size: .7rem;
}
.not-found h1 {
  margin-top: var(--space-4);
}
.not-found-line {
  height: 1px;
  background: var(--ink);
  margin-block: var(--space-6);
}
.not-found > div:last-child {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-4);
  margin-top: var(--space-6);
}
.not-found a {
  min-height: 44px;
  display: inline-flex;
  align-items: center;
  gap: var(--space-2);
  border-bottom: 1px solid var(--ink);
}
@media (max-width: 900px) {
  .article-layout {
    grid-template-columns: 1fr;
  }
  .article-toc {
    position: static;
  }
  .article-toc nav {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-2);
  }
  .article-toc a {
    border: 1px solid var(--line);
    padding-inline: var(--space-3);
  }
  .destination-explorer, .itinerary-layout {
    grid-template-columns: 1fr;
  }
  .map-panel, .route-decisions {
    position: static;
  }
  .region-lines {
    grid-template-columns: 1fr 1fr;
  }
  .planning-sequence {
    grid-template-columns: 1fr 1fr;
  }
  .planning-sequence article:nth-child(2) {
    border-right: 0;
  }
}
@media (max-width: 650px) {
  .table-wrap table {
    min-width: 0;
    table-layout: fixed;
  }
  .table-wrap th, .table-wrap td {
    padding: .6rem .45rem;
    font-size: .78rem;
    overflow-wrap: anywhere;
  }
  .article-hero-image img {
    aspect-ratio: 4 / 3;
  }
  .decision-band, .planning-section {
    grid-template-columns: 1fr;
    gap: var(--space-5);
  }
  .fit-check > div, .stay-areas, .destination-stay-areas {
    grid-template-columns: 1fr;
  }
  .stay-areas article {
    border-right: 0;
  }
  .region-lines, .planning-sequence {
    grid-template-columns: 1fr;
  }
  .region-lines article, .planning-sequence article {
    border-right: 0;
  }
  .estonia-map {
    min-height: 350px;
  }
  .estonia-map > img {
    height: 350px;
    object-fit: cover;
  }
  .map-marker {
    font-size: 0;
  }
  .map-marker span {
    width: 12px;
    height: 12px;
  }
  .destination-index article {
    grid-template-columns: 1fr;
  }
  .destination-index-actions {
    justify-content: flex-start;
  }
  .day-timeline article {
    grid-template-columns: 64px 1fr;
  }
  .search-page form > div {
    grid-template-columns: 1fr;
  }
  .search-page input {
    border-right: 1px solid var(--line);
  }
  .search-results article {
    grid-template-columns: 1fr;
    gap: var(--space-2);
  }
  .search-results article p, .search-results article > a:last-child {
    grid-column: 1;
    grid-row: auto;
  }
  .search-results article small {
    grid-column: 1;
  }
  .onward-links a {
    grid-template-columns: 1fr auto;
    gap: var(--space-2);
    padding-block: var(--space-3);
  }
  .onward-links a span {
    grid-column: 1 / -1;
  }
}
.stay-search-shell {
  width: min(100%, var(--page-max));
  margin-inline: auto;
  padding: var(--space-5) 0;
}
.stay-search-panel {
  overflow: hidden;
  padding: clamp(1.1rem, 2.6vw, 1.7rem);
  border: 1px solid var(--line);
  border-top: 4px solid var(--est-blue);
  border-radius: 6px;
  background: var(--white);
  box-shadow: 0 16px 38px rgba(24,58,86,.09);
}
.stay-search-heading {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: var(--space-5);
  padding-bottom: var(--space-4);
  border-bottom: 1px solid var(--line);
}
.stay-search-eyebrow {
  display: block;
  margin-bottom: .35rem;
  color: var(--est-blue);
  font-size: .68rem;
  font-weight: 780;
  letter-spacing: .12em;
  text-transform: uppercase;
}
.stay-search-heading h2 {
  margin: 0;
  color: var(--est-blue-deep);
  font-size: clamp(1.45rem, 2.5vw, 2rem);
  line-height: 1.15;
}
.stay-search-heading p {
  max-width: 680px;
  margin-top: .5rem;
  color: var(--ink-soft);
  font-size: var(--text-sm);
  line-height: 1.55;
}
.stay-search-secure {
  min-height: 34px;
  display: inline-flex;
  flex: 0 0 auto;
  align-items: center;
  gap: .4rem;
  margin-top: .35rem;
  padding: .4rem .75rem;
  border: 1px solid rgba(24,58,86,.2);
  border-radius: 999px;
  background: var(--est-blue-soft);
  color: var(--est-blue-deep);
  font-size: .75rem;
  font-weight: 780;
  white-space: nowrap;
}
.stay-search-secure > span {
  width: 18px;
  height: 18px;
  display: inline-grid;
  place-items: center;
  border: 1px solid rgba(24,58,86,.32);
  border-radius: 50%;
  font-size: .65rem;
}
.stay-search {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: .8rem;
  margin-top: var(--space-4);
}
.stay-directory-search {
  grid-template-columns: repeat(6, minmax(0, 1fr));
}
.stay-field {
  min-width: 0;
  display: grid;
  align-content: center;
  gap: .35rem;
}
.stay-destination-field {
  grid-column: span 2;
}
.stay-field > span {
  color: #52616b;
  font-size: .64rem;
  font-weight: 750;
  letter-spacing: .08em;
  text-transform: uppercase;
}
.stay-field input, .stay-field select {
  min-width: 0;
  width: 100%;
  min-height: 46px;
  padding: .68rem .75rem;
  border: 1px solid #c8d2d8;
  border-radius: 4px;
  background: #fbfcfc;
  color: var(--ink);
  font: inherit;
  font-size: .88rem;
  font-weight: 650;
}
.stay-field input:hover, .stay-field select:hover {
  border-color: #82949f;
}
.stay-field input:focus, .stay-field select:focus {
  border-color: var(--est-blue);
  outline: 3px solid rgba(44,104,146,.14);
  outline-offset: 1px;
}
.stay-search-submit {
  min-height: 46px;
  align-self: end;
  grid-column: span 2;
  border: 1px solid var(--est-blue-deep);
  border-radius: 4px;
  padding-inline: var(--space-4);
  display: flex;
  align-items: center;
  justify-content: center;
  gap: var(--space-2);
  background: var(--est-blue-deep);
  color: var(--white);
  font-weight: 750;
}
.stay-search-submit:hover {
  background: #102d45;
}
.stay-directory-search .stay-provider-field {
  grid-column: span 2;
}
.stay-directory-search .stay-search-submit {
  grid-column: span 4;
}
.stay-search-note {
  margin-top: .8rem;
  color: #65727a;
  font-size: .74rem;
  line-height: 1.5;
}
.stay-search-error {
  margin-top: .75rem;
  padding: .65rem .75rem;
  border-left: 3px solid var(--danger);
  color: var(--danger);
  background: #fff7f6;
  font-size: var(--text-sm);
}
.stay-search-compact {
  padding-inline: 0;
  background: transparent;
}
.stay-search-compact .stay-search-panel {
  box-shadow: none;
}
.stay-hub-page {
  padding-top: 0;
}
.stay-hub-page > .breadcrumbs {
  margin: var(--space-4) 0;
}
.stay-hub-hero {
  display: grid;
  grid-template-columns: minmax(0, .82fr) minmax(420px, 1.18fr);
  gap: clamp(1.5rem, 3vw, 3rem);
  align-items: start;
  padding-block: 0 var(--space-6);
  border-bottom: 1px solid var(--ink);
}
.stay-hub-hero-copy {
  padding-block: clamp(1.5rem, 3vw, 2.5rem);
}
.stay-hero-kicker {
  color: var(--est-blue);
  font-family: var(--font-display), sans-serif;
  font-size: .75rem;
  font-weight: 780;
  letter-spacing: .13em;
  text-transform: uppercase;
}
.stay-hub-hero h1 {
  max-width: 560px;
  margin-top: var(--space-3);
  font-size: clamp(2.6rem, 4vw, 3.55rem);
  line-height: 1.05;
}
.stay-hero-deck {
  max-width: 560px;
  margin-top: var(--space-4);
  color: #46545d;
  font-size: clamp(1rem, 1.25vw, 1.17rem);
  line-height: 1.6;
}
.stay-hub-hero-photo {
  margin: 0;
}
.stay-hub-hero-photo > img {
  width: 100%;
  aspect-ratio: 3 / 2;
  object-fit: cover;
  object-position: 50% 45%;
}
.stay-hub-hero-photo > figcaption {
  max-width: 580px;
  margin-top: .65rem;
  color: var(--ink-soft);
  font-size: .72rem;
  line-height: 1.5;
}
.stay-hub-search {
  margin: var(--space-7) auto var(--space-8);
  scroll-margin-top: var(--sticky-header-clearance);
}
.stay-results-directory {
  margin-top: var(--space-6);
  scroll-margin-top: var(--sticky-header-clearance);
}
.stay-results-header {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: var(--space-6);
  padding: var(--space-5) 0;
  border-top: 1px solid var(--ink);
  border-bottom: 1px solid var(--line);
}
.stay-results-header h2 {
  font-size: clamp(1.65rem, 3vw, 2.35rem);
}
.stay-results-header [data-stay-status] {
  margin-top: .45rem;
  color: var(--ink-soft);
  font-size: var(--text-sm);
}
.stay-results-source {
  max-width: 720px;
  margin-top: .55rem;
  padding-left: .65rem;
  border-left: 2px solid var(--est-blue);
  color: #65727a;
  font-size: .72rem;
  line-height: 1.5;
}
.stay-sort-field {
  min-width: min(240px, 100%);
  display: grid;
  gap: .35rem;
}
.stay-sort-field > span {
  color: #52616b;
  font-size: .64rem;
  font-weight: 750;
  letter-spacing: .08em;
  text-transform: uppercase;
}
.stay-sort-field select {
  min-height: 44px;
  padding: .62rem .75rem;
  border: 1px solid #c8d2d8;
  border-radius: 4px;
  background: var(--white);
  color: var(--ink);
  font: inherit;
  font-size: .86rem;
  font-weight: 650;
}
.stay-sort-field select:focus {
  border-color: var(--est-blue);
  outline: 3px solid rgba(44,104,146,.14);
  outline-offset: 1px;
}
.stay-results-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--space-5);
  padding-block: var(--space-5);
}
.stay-result-card {
  min-width: 0;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  border: 1px solid var(--line);
  border-radius: 5px;
  background: var(--white);
  box-shadow: 0 9px 24px rgba(24,58,86,.07);
}
.stay-result-photo {
  margin: 0;
  background: var(--mist);
}
.stay-result-photo img {
  width: 100%;
  aspect-ratio: 3 / 2;
  display: block;
  object-fit: cover;
}
.stay-result-body {
  flex: 1;
  display: flex;
  flex-direction: column;
  padding: var(--space-4);
}
.stay-result-meta {
  display: flex;
  flex-wrap: wrap;
  gap: .35rem;
  margin-bottom: .65rem;
}
.stay-result-meta span {
  padding: .28rem .48rem;
  border-radius: 999px;
  font-size: .66rem;
  font-weight: 750;
  line-height: 1.2;
}
.stay-result-provider {
  background: var(--est-blue-soft);
  color: var(--est-blue-deep);
}
.stay-result-cancellation {
  background: #edf7ef;
  color: #245f35;
}
.stay-result-card h3 {
  font-size: clamp(1.08rem, 1.7vw, 1.3rem);
  line-height: 1.28;
}
.stay-result-address {
  margin-top: .45rem;
  color: var(--ink-soft);
  font-size: .76rem;
  line-height: 1.45;
}
.stay-result-rating {
  margin-top: .55rem;
  color: #40505a;
  font-size: .76rem;
  font-weight: 680;
}
.stay-result-price-row {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: var(--space-3);
  margin-top: auto;
  padding-top: var(--space-4);
  border-top: 1px solid var(--line);
}
.stay-result-price {
  display: grid;
  min-width: 0;
}
.stay-result-price strong {
  color: var(--est-blue-deep);
  font-size: 1rem;
}
.stay-result-price > span {
  color: var(--ink-soft);
  font-size: .7rem;
}
.stay-result-action {
  min-height: 42px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: .55rem .7rem;
  border: 1px solid var(--est-blue-deep);
  border-radius: 4px;
  background: var(--est-blue-deep);
  color: var(--white);
  font-size: .72rem;
  font-weight: 750;
  line-height: 1.2;
  text-align: center;
}
.stay-result-action:hover {
  background: #102d45;
}
.stay-pagination {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  align-items: center;
  gap: .4rem;
  padding-block: var(--space-4) var(--space-5);
}
.stay-pagination button {
  min-width: 42px;
  min-height: 42px;
  padding: .45rem .7rem;
  border: 1px solid #b8c5cc;
  border-radius: 4px;
  background: var(--white);
  color: var(--est-blue-deep);
  font: inherit;
  font-size: .8rem;
  font-weight: 720;
}
.stay-pagination button:hover:not(:disabled), .stay-pagination button.is-current {
  border-color: var(--est-blue-deep);
  background: var(--est-blue-deep);
  color: var(--white);
}
.stay-pagination button:disabled {
  cursor: not-allowed;
  opacity: .45;
}
.stay-page-gap {
  padding-inline: .2rem;
  color: var(--ink-soft);
}
.stay-results-disclosure {
  padding: var(--space-4);
  border-left: 3px solid var(--est-blue);
  background: var(--mist);
  color: var(--ink-soft);
  font-size: .75rem;
  line-height: 1.55;
}
.destination-results-module, .locale-stay-directory {
  margin-block: var(--space-8);
  padding-block: var(--space-5);
  border-top: 1px solid var(--ink);
  border-bottom: 1px solid var(--line);
}
.destination-results-module .stay-search-shell, .locale-stay-directory .stay-search-shell {
  padding-top: 0;
}
.popular-stays {
  width: min(100%, var(--page-max));
  margin-inline: auto;
  padding: var(--space-8) var(--gutter);
}
.stay-decision-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  column-gap: var(--space-8);
  border-bottom: 1px solid var(--line);
}
.stay-decision-card {
  min-width: 0;
  padding: var(--space-6) 0;
  border-top: 1px solid var(--ink);
  background: transparent;
  display: grid;
  grid-template-columns: minmax(150px, .75fr) minmax(0, 1.25fr);
  column-gap: var(--space-5);
}
.stay-card-heading > span {
  color: var(--est-blue);
  font-size: .68rem;
  font-weight: 750;
  letter-spacing: .12em;
  text-transform: uppercase;
}
.stay-card-heading h3 {
  margin-top: .25rem;
  font-size: var(--h3);
}
.stay-card-heading p {
  margin-top: var(--space-3);
  color: var(--ink-soft);
  font-size: var(--text-sm);
  line-height: 1.55;
}
.stay-decision-card dl {
  margin: 0;
}
.stay-decision-card dl div {
  display: grid;
  grid-template-columns: 90px 1fr;
  gap: var(--space-3);
  padding-block: .45rem;
  border-bottom: 1px solid var(--line);
}
.stay-decision-card dl div:first-child {
  padding-top: 0;
}
.stay-decision-card dt {
  color: var(--ink-soft);
  font-size: var(--text-xs);
}
.stay-decision-card dd {
  font-size: var(--text-sm);
  font-weight: 620;
}
.stay-decision-card dd {
  min-width: 0;
  overflow-wrap: anywhere;
}
.stay-card-actions {
  grid-column: 2;
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-4);
  margin-top: var(--space-4);
}
.stay-card-actions a {
  display: inline-flex;
  align-items: center;
  gap: .35rem;
  color: var(--est-blue-deep);
  font-size: .82rem;
  font-weight: 720;
  text-decoration: underline;
  text-decoration-color: rgba(24,58,86,.35);
  text-underline-offset: 4px;
}
.stay-card-actions a:hover {
  text-decoration-color: currentColor;
}
.stay-action-row a {
  min-height: 42px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: var(--space-2);
  padding: .55rem .75rem;
  font-size: .82rem;
  font-weight: 720;
}
.base-by-trip {
  background: var(--est-blue-deep);
  color: var(--white);
}
.base-by-trip-inner {
  width: min(100%, var(--page-max));
  margin-inline: auto;
  padding: var(--space-8) var(--gutter);
}
.base-by-trip-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  margin-top: var(--space-6);
  border-top: 1px solid rgba(255,255,255,.4);
}
.base-by-trip-grid article {
  padding: var(--space-5);
  border-right: 1px solid rgba(255,255,255,.2);
  border-bottom: 1px solid rgba(255,255,255,.2);
}
.base-by-trip-grid article:nth-child(3n) {
  border-right: 0;
}
.base-by-trip-grid span {
  color: rgba(255,255,255,.65);
  font-size: .68rem;
  letter-spacing: .12em;
  text-transform: uppercase;
}
.base-by-trip-grid h3 {
  font-size: var(--h4);
  margin-block: var(--space-2);
}
.base-by-trip-grid p {
  color: rgba(255,255,255,.72);
  font-size: var(--text-sm);
}
.base-by-trip-grid div {
  display: flex;
  gap: var(--space-4);
  margin-top: var(--space-4);
}
.base-by-trip-grid a {
  min-height: 44px;
  display: inline-flex;
  align-items: center;
  color: var(--white);
  text-decoration: underline;
  text-underline-offset: 4px;
}
.stay-hub-intro {
  display: grid;
  grid-template-columns: .8fr 1.2fr;
  gap: var(--space-8);
  padding-block: var(--space-7);
  margin-bottom: var(--space-8);
  border-top: 1px solid var(--ink);
  border-bottom: 1px solid var(--line);
}
.stay-hub-intro > p {
  font-size: var(--text-lg);
}
.stay-filter-links {
  display: flex;
  flex-wrap: wrap;
  gap: .7rem 1.2rem;
  margin-top: var(--space-5);
}
.stay-filter-links a {
  color: var(--est-blue-deep);
  font-size: .82rem;
  font-weight: 680;
  text-decoration: underline;
  text-decoration-color: rgba(24,58,86,.35);
  text-underline-offset: 4px;
}
.stay-filter-links a:hover {
  text-decoration-color: currentColor;
}
.stay-type-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  border-top: 1px solid var(--ink);
}
.stay-type-grid article {
  padding: var(--space-5);
  border-right: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
}
.stay-type-grid article:nth-child(4n) {
  border-right: 0;
}
.stay-type-grid h3 {
  font-size: var(--h4);
}
.stay-type-grid p {
  margin-top: var(--space-2);
  font-size: var(--text-sm);
}
.destination-stay-module {
  margin-block: var(--space-7);
  padding: var(--space-6);
  background: var(--mist);
  border-top: 1px solid var(--ink);
}
.destination-stay-module h2 {
  max-width: 680px;
}
.stay-area-quicklist {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  border-top: 1px solid var(--line);
  margin-top: var(--space-5);
}
.stay-area-quicklist div {
  padding: var(--space-4);
  border-right: 1px solid var(--line);
}
.stay-area-quicklist div:last-child {
  border-right: 0;
}
.stay-area-quicklist dt {
  color: var(--ink-soft);
  font-size: var(--text-xs);
}
.stay-area-quicklist dd {
  font-weight: 720;
  margin-top: .2rem;
}
.stay-action-row {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-3);
  margin-top: var(--space-5);
}
.area-comparison-wrap {
  overflow-x: auto;
  margin-block: var(--space-5) var(--space-7);
  border: 1px solid var(--line);
}
.area-comparison {
  width: 100%;
  min-width: 760px;
  border-collapse: collapse;
  background: var(--white);
}
.area-comparison th, .area-comparison td {
  padding: .85rem 1rem;
  border-bottom: 1px solid var(--line);
  text-align: left;
  vertical-align: top;
}
.area-comparison th {
  background: var(--mist);
  font-size: var(--text-xs);
  letter-spacing: .06em;
  text-transform: uppercase;
}
.area-comparison td {
  font-size: var(--text-sm);
}
.area-choice-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  border-top: 1px solid var(--ink);
}
.area-choice-card {
  padding: var(--space-6);
  border-right: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
}
.area-choice-card:nth-child(2n) {
  border-right: 0;
}
.area-choice-card > span {
  color: var(--est-blue);
  font-size: .68rem;
  letter-spacing: .12em;
  text-transform: uppercase;
}
.area-choice-card h2 {
  font-size: var(--h3);
  margin-block: var(--space-2) var(--space-4);
}
.area-choice-card dl div {
  margin-top: var(--space-3);
}
.area-choice-card dt {
  color: var(--ink-soft);
  font-size: var(--text-xs);
}
.area-choice-card dd {
  font-weight: 650;
}
.orientation-diagram {
  margin-block: var(--space-7);
  padding: var(--space-6);
  background: var(--est-blue-soft);
  border: 1px solid var(--line);
  text-align: center;
}
.orientation-line {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: var(--space-3);
  margin-block: var(--space-3);
  font-family: var(--font-display), sans-serif;
  font-weight: 720;
}
.orientation-line i {
  width: clamp(22px, 5vw, 80px);
  height: 1px;
  background: var(--est-blue);
}
.orientation-diagram small {
  color: var(--ink-soft);
}
.stay-trust-panel {
  display: grid;
  grid-template-columns: .75fr 1.25fr;
  gap: var(--space-8);
  padding-block: var(--space-7);
  margin-top: var(--space-8);
  border-top: 1px solid var(--ink);
  border-bottom: 1px solid var(--line);
}
.stay-trust-panel p {
  color: var(--ink-soft);
}
.stay-trust-panel a {
  color: var(--est-blue-deep);
  text-decoration: underline;
  text-underline-offset: 4px;
}
.affiliate-note {
  font-size: var(--text-sm);
  padding: var(--space-4);
  border-left: 3px solid var(--est-blue);
  background: var(--mist);
}
.route-stays {
  margin-block: var(--space-8);
}
.route-stay-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  border-top: 1px solid var(--ink);
}
.route-stay-grid article {
  padding: var(--space-5);
  border-right: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
}
.route-stay-grid article:last-child {
  border-right: 0;
}
.route-stay-grid span {
  color: var(--est-blue);
  font-size: .68rem;
  letter-spacing: .12em;
  text-transform: uppercase;
}
.route-stay-grid h3 {
  font-size: var(--h3);
  margin-block: var(--space-2);
}
.route-stay-grid p {
  margin-bottom: var(--space-4);
}
.route-stay-total {
  display: flex;
  justify-content: space-between;
  padding: var(--space-4) var(--space-5);
  background: var(--mist);
  font-weight: 750;
}
.accommodation-intent {
  margin-bottom: var(--space-7);
  padding: var(--space-5);
  border: 1px solid var(--est-blue);
  background: var(--est-blue-soft);
}
.accommodation-intent > h2 {
  font-size: var(--h3);
}
.accommodation-intent > p {
  margin-top: var(--space-2);
}
.accommodation-intent .stay-search-shell {
  padding-bottom: 0;
}
.mobile-stay-bar {
  display: none;
}
@media (max-width: 1050px) {
  .stay-decision-grid {
    grid-template-columns: repeat(2, 1fr);
  }
  .stay-hub-hero {
    grid-template-columns: 1fr 1fr;
  }
}
@media (max-width: 900px) {
  .stay-search {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .stay-directory-search .stay-provider-field, .stay-directory-search .stay-search-submit {
    grid-column: span 1;
  }
  .stay-results-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .stay-decision-grid {
    grid-template-columns: 1fr;
  }
}
@media (max-width: 760px) {
  .stay-hub-page {
    padding-inline: 0;
  }
  .stay-hub-page > .breadcrumbs {
    padding-inline: var(--gutter);
  }
  .stay-hub-hero {
    grid-template-columns: 1fr;
    gap: var(--space-5);
    padding: 0 var(--gutter) var(--space-6);
  }
  .stay-hub-hero-copy {
    padding: var(--space-5) 0 0;
  }
  .stay-hub-hero h1 {
    font-size: clamp(2.45rem, 11vw, 3.45rem);
  }
  .stay-hero-deck {
    margin-top: var(--space-4);
  }
  .stay-hub-search {
    width: calc(100% - 2 * var(--gutter));
    margin-block: var(--space-6) var(--space-8);
  }
  .stay-search-shell {
    padding: var(--space-4) 0;
  }
  .stay-search-heading {
    align-items: flex-start;
    flex-direction: column;
    gap: .65rem;
  }
  .stay-search-secure {
    margin-top: 0;
  }
  .stay-search-submit {
    min-height: 50px;
  }
  .stay-results-header {
    align-items: stretch;
    flex-direction: column;
    gap: var(--space-4);
  }
  .stay-sort-field {
    min-width: 0;
  }
  .stay-decision-grid, .base-by-trip-grid, .stay-type-grid, .route-stay-grid {
    grid-template-columns: 1fr;
  }
  .base-by-trip-grid article, .stay-type-grid article, .route-stay-grid article {
    border-right: 0;
  }
  .stay-decision-card {
    grid-template-columns: minmax(125px, .7fr) minmax(0, 1.3fr);
  }
  .stay-hub-intro, .stay-trust-panel {
    grid-template-columns: 1fr;
    gap: var(--space-5);
  }
  .stay-hub-intro {
    margin-inline: var(--gutter);
    padding-block: var(--space-6);
  }
  .stay-hub-page > section:not(.stay-hub-hero):not(.stay-hub-intro), .stay-hub-page > aside {
    width: auto;
    margin-inline: var(--gutter);
    padding-inline: 0;
  }
  .stay-area-quicklist, .area-choice-grid {
    grid-template-columns: 1fr;
  }
  .stay-area-quicklist div, .area-choice-card {
    border-right: 0;
    border-bottom: 1px solid var(--line);
  }
  .mobile-stay-bar {
    position: fixed;
    left: var(--space-3);
    right: var(--space-3);
    bottom: max(var(--space-3), env(safe-area-inset-bottom));
    z-index: 90;
    min-height: 58px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--space-3);
    padding: .55rem .6rem .55rem var(--space-4);
    color: var(--white);
    background: var(--est-blue-deep);
    box-shadow: 0 8px 30px rgba(23,32,39,.24);
  }
  .mobile-stay-bar span {
    min-width: 0;
    display: grid;
  }
  .mobile-stay-bar small {
    color: rgba(255,255,255,.72);
    white-space: nowrap;
  }
  .mobile-stay-bar a {
    min-height: 44px;
    display: inline-flex;
    align-items: center;
    padding-inline: var(--space-4);
    background: var(--white);
    color: var(--est-blue-deep);
    font-weight: 750;
    white-space: nowrap;
  }
}
@media (max-width: 480px) {
  .stay-search {
    grid-template-columns: 1fr;
  }
  .stay-destination-field, .stay-search-submit, .stay-directory-search .stay-provider-field, .stay-directory-search .stay-search-submit {
    grid-column: 1;
  }
  .stay-results-grid {
    grid-template-columns: 1fr;
  }
  .stay-result-price-row {
    align-items: stretch;
    flex-direction: column;
  }
  .stay-result-action {
    width: 100%;
  }
  .stay-decision-card {
    grid-template-columns: 1fr;
  }
  .stay-decision-card dl {
    margin-top: var(--space-5);
  }
  .stay-card-actions {
    grid-column: 1;
  }
}
[hidden] {
  display: none !important;
}
@media print {
  .site-header, .site-footer, .article-toc, .next-guide, .button, .photo-credits {
    display: none !important;
  }
  body {
    background: #fff;
    color: #000;
    font-size: 11pt;
  }
  .page-shell {
    width: 100%;
    padding: 0;
  }
  a {
    color: #000;
    text-decoration: underline;
  }
  a[href^="http"]::after {
    content: " (" attr(href) ")";
    font-size: 9pt;
    overflow-wrap: anywhere;
  }
  .article-hero-image {
    display: none;
  }
  .route-line, .itinerary-route {
    break-inside: avoid;
  }
  .day-timeline article, .planning-section, .source-list {
    break-inside: avoid;
  }
}
@property --tw-rotate-x {
  syntax: "*";
  inherits: false;
}
@property --tw-rotate-y {
  syntax: "*";
  inherits: false;
}
@property --tw-rotate-z {
  syntax: "*";
  inherits: false;
}
@property --tw-skew-x {
  syntax: "*";
  inherits: false;
}
@property --tw-skew-y {
  syntax: "*";
  inherits: false;
}
@property --tw-border-style {
  syntax: "*";
  inherits: false;
  initial-value: solid;
}
@property --tw-shadow {
  syntax: "*";
  inherits: false;
  initial-value: 0 0 #0000;
}
@property --tw-shadow-color {
  syntax: "*";
  inherits: false;
}
@property --tw-shadow-alpha {
  syntax: "<percentage>";
  inherits: false;
  initial-value: 100%;
}
@property --tw-inset-shadow {
  syntax: "*";
  inherits: false;
  initial-value: 0 0 #0000;
}
@property --tw-inset-shadow-color {
  syntax: "*";
  inherits: false;
}
@property --tw-inset-shadow-alpha {
  syntax: "<percentage>";
  inherits: false;
  initial-value: 100%;
}
@property --tw-ring-color {
  syntax: "*";
  inherits: false;
}
@property --tw-ring-shadow {
  syntax: "*";
  inherits: false;
  initial-value: 0 0 #0000;
}
@property --tw-inset-ring-color {
  syntax: "*";
  inherits: false;
}
@property --tw-inset-ring-shadow {
  syntax: "*";
  inherits: false;
  initial-value: 0 0 #0000;
}
@property --tw-ring-inset {
  syntax: "*";
  inherits: false;
}
@property --tw-ring-offset-width {
  syntax: "<length>";
  inherits: false;
  initial-value: 0px;
}
@property --tw-ring-offset-color {
  syntax: "*";
  inherits: false;
  initial-value: #fff;
}
@property --tw-ring-offset-shadow {
  syntax: "*";
  inherits: false;
  initial-value: 0 0 #0000;
}
@property --tw-outline-style {
  syntax: "*";
  inherits: false;
  initial-value: solid;
}
@property --tw-blur {
  syntax: "*";
  inherits: false;
}
@property --tw-brightness {
  syntax: "*";
  inherits: false;
}
@property --tw-contrast {
  syntax: "*";
  inherits: false;
}
@property --tw-grayscale {
  syntax: "*";
  inherits: false;
}
@property --tw-hue-rotate {
  syntax: "*";
  inherits: false;
}
@property --tw-invert {
  syntax: "*";
  inherits: false;
}
@property --tw-opacity {
  syntax: "*";
  inherits: false;
}
@property --tw-saturate {
  syntax: "*";
  inherits: false;
}
@property --tw-sepia {
  syntax: "*";
  inherits: false;
}
@property --tw-drop-shadow {
  syntax: "*";
  inherits: false;
}
@property --tw-drop-shadow-color {
  syntax: "*";
  inherits: false;
}
@property --tw-drop-shadow-alpha {
  syntax: "<percentage>";
  inherits: false;
  initial-value: 100%;
}
@property --tw-drop-shadow-size {
  syntax: "*";
  inherits: false;
}
@layer properties {
  @supports ((-webkit-hyphens: none) and (not (margin-trim: inline))) or ((-moz-orient: inline) and (not (color:rgb(from red r g b)))) {
    *, ::before, ::after, ::backdrop {
      --tw-rotate-x: initial;
      --tw-rotate-y: initial;
      --tw-rotate-z: initial;
      --tw-skew-x: initial;
      --tw-skew-y: initial;
      --tw-border-style: solid;
      --tw-shadow: 0 0 #0000;
      --tw-shadow-color: initial;
      --tw-shadow-alpha: 100%;
      --tw-inset-shadow: 0 0 #0000;
      --tw-inset-shadow-color: initial;
      --tw-inset-shadow-alpha: 100%;
      --tw-ring-color: initial;
      --tw-ring-shadow: 0 0 #0000;
      --tw-inset-ring-color: initial;
      --tw-inset-ring-shadow: 0 0 #0000;
      --tw-ring-inset: initial;
      --tw-ring-offset-width: 0px;
      --tw-ring-offset-color: #fff;
      --tw-ring-offset-shadow: 0 0 #0000;
      --tw-outline-style: solid;
      --tw-blur: initial;
      --tw-brightness: initial;
      --tw-contrast: initial;
      --tw-grayscale: initial;
      --tw-hue-rotate: initial;
      --tw-invert: initial;
      --tw-opacity: initial;
      --tw-saturate: initial;
      --tw-sepia: initial;
      --tw-drop-shadow: initial;
      --tw-drop-shadow-color: initial;
      --tw-drop-shadow-alpha: 100%;
      --tw-drop-shadow-size: initial;
    }
  }
}
