
:root {
  --mtt-safe-top: env(safe-area-inset-top, 0px);
  --mtt-safe-bottom: env(safe-area-inset-bottom, 0px);
  --mtt-safe-left: env(safe-area-inset-left, 0px);
  --mtt-safe-right: env(safe-area-inset-right, 0px);
  --mtt-touch: 44px;
  --mtt-visible-height: 100vh;
  --mtt-bottom-space: 0px;
}@supports (height: 100dvh) { :root { --mtt-visible-height: 100dvh; } }@media screen {
  .footer-brand .navbar-brand,.footer-brand .navbar-brand>span { max-width:100%; min-width:0; white-space:normal; overflow-wrap:anywhere; }
  .page-shell, .site-footer { padding-inline: var(--mtt-safe-left) var(--mtt-safe-right); }
  html { scroll-padding-top: calc(var(--mtt-header-height, 0px) + 16px); }
  body:has(dialog:modal), body.mtt-overlay-locked { overflow: hidden; }
  :where(main, section, article, aside, form, fieldset, label) { min-inline-size: 0; }
  :where(input, select, textarea) { max-inline-size: 100%; }
  
  .page-shell select,.tr-main select,.bo-main select { overflow: hidden; text-overflow: ellipsis; }
  .mtt-select-full-value { display: block; grid-column: 1 / -1; min-width: 0; font-size: 13px; line-height: 1.45; overflow-wrap: anywhere; margin-block: 4px 8px; }
  .mtt-select-full-value[hidden] { display: none; }
  .currency-select-wrap .mtt-select-full-value { padding-inline: 8px; }
  :where(button, .button, .button-link, .btn) { overflow-wrap: anywhere; }
  :where(h1, h2, h3, h4, p, dd, .errorlist, [role="alert"]) { overflow-wrap: anywhere; }
  :where(input, select, textarea, button, summary, a[href]):focus-visible {
    outline: 2px solid #2169cc;
    outline-offset: 3px;
  }
  :where([id], input, select, textarea, button, summary, a[href]) {
    scroll-margin-block: calc(var(--mtt-header-height, 0px) + 16px) calc(var(--mtt-bottom-space) + 20px);
  }
  dialog {
    box-sizing: border-box;
    max-inline-size: calc(100% - 24px);
    max-block-size: calc(var(--mtt-visible-height) - 24px);
    overflow-y: auto;
    overscroll-behavior-y: contain;
  }
  dialog :where(form, div, section) { min-inline-size: 0; }
  .mtt-keyboard-open dialog[open] {
    inset-block-start: var(--mtt-visual-top, 0px);
    inset-block-end: auto;
    margin-block: 12px;
    max-block-size: calc(var(--mtt-visible-height) - 24px);
  }
  .mtt-table-scroll { max-inline-size: 100%; overflow-x: auto; overscroll-behavior-x: contain; }
  .mtt-table-scroll:focus-visible { outline: 2px solid #2169cc; outline-offset: 3px; }
  .mtt-drawer-close { flex: 0 0 auto; min-width: var(--mtt-touch); min-height: var(--mtt-touch); }
  .mtt-drawer-heading { display: flex; align-items: center; justify-content: space-between; gap: 16px; }
  .mtt-drawer-heading h2 { margin: 0; font-size: 22px; }
  .mtt-skip-link { position: fixed; inset: 8px auto auto 8px; transform: translateY(-180%); z-index: 1100; padding: 12px 16px; background: white; }
  .mtt-skip-link:focus { transform: none; }

}@media screen and (max-width: 1199.98px), screen and (any-pointer: coarse) {
  
  :where(select:not([multiple]):not([size]), select[size="1"]) {
    height: var(--mtt-touch);
    min-height: var(--mtt-touch);
  }
  :where(button, .button, .button-link, .btn, summary) { min-block-size: var(--mtt-touch); }
  :where(button, .button, .button-link, .btn) { white-space: normal; }
  .page-shell :is(input:not([type=checkbox]):not([type=radio]):not([type=range]), select, textarea),
  .tr-main :is(input:not([type=checkbox]):not([type=radio]):not([type=range]), select, textarea) { font-size: 16px; }
  .page-shell :is(input[type=checkbox], input[type=radio]) { width: 20px; height: 20px; flex: 0 0 20px; }
  .page-shell label:has(> input[type=checkbox]), .page-shell label:has(> input[type=radio]) { min-height: 44px; }
  .tr-main summary, .passport-rank-page th button { min-width: 44px; }
  .bo-table :is(input[type=checkbox], input[type=radio]) { width: 24px; height: 24px; }
  :where(input:not([type=checkbox]):not([type=radio]):not([type=range]), select, textarea) { font-size: 16px; }
  :where(label:has(input[type=checkbox]), label:has(input[type=radio])) { min-block-size: var(--mtt-touch); }
}@media screen and (max-width: 760px) {
  .page-shell { padding-top: var(--mtt-header-height, 72px); }
  .traveler-save-strip { font-size: 12px; margin-block: 10px; }
  .traveler-save-strip p { margin: 0; }
  
  .mtt-page .mtt-page-hero { position: relative; display: block; padding: 20px 16px 0; margin-bottom: 24px; }
  .mtt-page .mtt-page-hero .bh-hero-copy { width: 100%; margin: 0; padding: 0; }
  .mtt-page .mtt-page-hero h1 { font-size: clamp(1.7rem, 6.5vw, 2.2rem); margin-bottom: 12px; text-wrap: pretty; }
  .mtt-page .mtt-page-hero p:not(.eyebrow) { margin-bottom: 16px; font-size: 1rem; }
  .mtt-page .mtt-page-hero .eyebrow { max-width: calc(100% - 60px); margin-bottom: 12px; font-size: .7rem; }
  .mtt-page .mtt-page-hero-art { position: absolute; width: 64px; height: 44px; top: 8px; right: 12px; padding: 0; pointer-events: none; }
  .mtt-page .mtt-page-hero-art .mtt-travel-art { height: 100%; }
  .mtt-page .mtt-page-hero .bh-button { min-height: 44px; padding: 10px 16px; }
  .country-code-actions a { min-width: 0; max-width: 100%; white-space: normal; text-align: center; overflow-wrap: anywhere; }
  .mtt-page :is(.country-code-directory__head, .country-codes-toolbar, .section-heading) { flex-wrap: wrap; }
  .schengen-rule-presets { flex-wrap:wrap; min-width:0; }
  .cms-content :is(pre, table) { max-inline-size: 100%; }
  body:has(.tr-mobile) { --mtt-bottom-space: calc(65px + var(--mtt-safe-bottom)); }
  .mtt-keyboard-open .tr-mobile { display: none; }
  .mtt-keyboard-open body { --mtt-bottom-space: 0px; }
}@media screen and (min-width: 761px) and (max-width: 1199.98px) {
  .mtt-page .mtt-page-hero { grid-template-columns:minmax(0,1fr) 160px; gap:24px; padding:28px 24px; }
  .mtt-page .mtt-page-hero .bh-hero-copy { width:100%; margin:0; padding:0; }
  .mtt-page .mtt-page-hero h1 { font-size:2rem; margin-bottom:12px; }
  .mtt-page .mtt-page-hero p:not(.eyebrow) { margin-bottom:16px; }
  .mtt-page .mtt-page-hero-art { padding:0; }
}@media screen and (max-width:1199.98px) {
  .page-shell>.hero.compact { display:flow-root; padding:24px; border:0; box-shadow:none; background:none; }
  .page-shell>.hero.compact>.mtt-travel-art { float:right; width:64px; height:64px; margin:0 0 12px 16px; }
  .page-shell>.hero.compact h1 { font-size:clamp(1.75rem,4vw,2.25rem); }
  .page-shell>.hero.compact .lead { font-size:1rem; }
}@media screen and (max-height: 500px) and (max-width: 1199.98px) {
  .mtt-page .mtt-page-hero-art { display: none; }
  .planner-day-focus, .planner-workspace-head, .tr-sticky { position: static; }
  dialog { max-block-size: calc(var(--mtt-visible-height) - 16px); }
}@media screen and (prefers-reduced-motion: reduce) {
  
  html, *, *::before, *::after { scroll-behavior: auto !important; }
  :is(.mtt-nav-panel, .tr-menu, .planner-drawer-panel, dialog, .st-mobile-tools) { animation: none; transition: none; }
}@media screen and (max-width:1199.98px) {
  .tr-header{padding-inline:max(16px,var(--mtt-safe-left)) max(16px,var(--mtt-safe-right))}
  .tr-main:not(:has(.st-editor)),.tr-footer{padding-inline:max(16px,var(--mtt-safe-left)) max(16px,var(--mtt-safe-right))}
  .st-editor{padding-inline:var(--mtt-safe-left) var(--mtt-safe-right)}
}