/* Shared layout rules for ET, RU and EN. Content keeps its natural reading order. */
html { scroll-padding-top: 160px; }
body { min-width: 0; }
h1,h2,h3,h4,p,li,label,figcaption { overflow-wrap: anywhere; }
h1,h2,h3 { text-wrap: balance; }
img,video,canvas { max-width: 100%; }
input,select,textarea { max-width: 100%; min-width: 0; }
button,.btn { max-width: 100%; }
.wrap>*,.two>*,.grid>*,.grid3>*,.hero-inner>*,.shop-layout>*,.future-plans>*,.foot-top>* { min-width: 0; }
.hr-lang { flex-shrink: 0; white-space: nowrap; }
.hr-lang button { min-height: 32px; }

/* The full desktop menu needs room for translated labels and the language picker. */
#hdr>.wrap { max-width: 1640px; }
#hdr .nav { height: auto; min-height: 80px; gap: 20px; padding-block: 12px; }
#hdr .brand { flex: 0 0 auto; white-space: nowrap; }
#hdr .nav-links { flex: 0 0 auto; gap: 18px; }
#hdr .nav-links li { flex: none; }
#hdr .nav-links a { display: inline-flex; align-items: center; min-height: 44px; white-space: nowrap; line-height: 1.35; }
#hdr .nav-right { flex: 0 0 auto; gap: 10px; }
#hdr .nav-right>.btn { white-space: nowrap; }
#hdr .music-toggle { flex: none; width: 44px; height: 44px; padding: 0; justify-content: center; }
#hdr .music-toggle .lbl,#hdr .music-toggle .bars { display: none; }
#hdr .share-btn { flex: none; width: 44px; height: 44px; }
#hdr .app-quickbar-buttons button { white-space: normal; line-height: 1.35; }

/* Collapse before labels have to wrap, rather than squeezing them into columns. */
@media (max-width: 1599px) {
  #hdr .nav { gap: 14px; }
  #hdr .nav-right { margin-left: auto; }
  #hdr .nav-right>.btn { display: none; }
  #hdr .burger { display: flex; flex: none; align-items: center; justify-content: center; width: 44px; min-width: 44px; min-height: 44px; }
  #hdr .nav-links { display: none; position: absolute; z-index: 100; top: 80px; left: 0; right: 0; max-height: calc(100dvh - 100px); overflow: auto; background: var(--paper); flex-direction: column; align-items: stretch; gap: 0; padding: 8px 24px 20px; border-bottom: 1px solid var(--line); box-shadow: 0 12px 30px -20px #0006; }
  #hdr .nav-links.show { display: flex; }
  #hdr .nav-links li { width: 100%; }
  #hdr .nav-links a { display: flex; width: 100%; padding: 13px 0; border-bottom: 1px solid var(--line); white-space: normal; font-size: 1rem; }
  #hdr .nav-links .mobile-quote { display: block; }
}
@media (min-width: 1600px) {
  #hdr .nav-links { display: flex; position: static; }
  #hdr .burger,#hdr .mobile-quote { display: none; }
}

/* The smaller page headers retain their navigation on phones as a second row. */
header:not(#hdr) .nav { height: auto; min-height: 72px; flex-wrap: wrap; gap: 12px 20px; padding-block: 12px; }
header:not(#hdr) .brand { flex-shrink: 0; white-space: nowrap; }
header:not(#hdr) .nav-links { display: flex; flex-wrap: wrap; gap: 8px 18px; min-width: 0; }
header:not(#hdr) .nav-links a { display: inline-flex; align-items: center; min-height: 36px; line-height: 1.4; }
header:not(#hdr)>.wrap { gap: 12px; flex-wrap: wrap; }
header:not(#hdr) nav:not(.nav) { flex-wrap: wrap; gap: 10px 18px; }
.top .wrap,.topnav { flex-wrap: wrap; gap: 12px; }
.top .wrap>a,.topnav>a { max-width: 100%; }
.topnav-brand { min-width: 0; }
.topnavl { display: flex; flex-wrap: wrap; gap: 8px 18px; min-width: 0; }
.topnavl>.hr-lang { flex-shrink: 0; }
.top .back,.back-home { white-space: normal; line-height: 1.4; }

.shop-image>span,.campaign-tag { max-width: calc(100% - 28px); white-space: normal; line-height: 1.4; }
.shop-price-line,.basket-title,.order-review-total { flex-wrap: wrap; }
.shop-price-line .shop-qty { width: 92px; }
.shop-price-line .shop-qty input { width: 100%; }
.order-review-row>span { min-width: 0; }
.order-review-row>strong { flex-shrink: 0; }
.order-steps { flex-wrap: wrap; line-height: 1.5; }
.order-dialog { max-width: calc(100vw - 16px); }
.shop-table-scroll,.table-scroll { max-width: 100%; overscroll-behavior-inline: contain; }
.booking-grid>*,.plans>*,.features>* { min-width: 0; }
.booking-grid label { overflow-wrap: anywhere; }
.tabs button { white-space: normal; line-height: 1.4; }
.chat-input input { min-width: 0; }
.chat-head .who { min-width: 0; }
.chat-head .status { flex-shrink: 0; }
.chips .chip { white-space: normal; line-height: 1.4; }

@media (max-width: 860px) {
  header:not(#hdr) .nav-links { flex-basis: 100%; order: 3; justify-content: flex-start; }
  header:not(#hdr) .nav>.hr-lang { margin-left: auto; }
}
@media (max-width: 600px) {
  .topnavl { flex-basis: 100%; justify-content: flex-start; }
  .btn { white-space: normal; line-height: 1.4; text-align: center; }
  .top .wrap { justify-content: space-between; }
  .chat-head { flex-wrap: wrap; gap: 10px; }
  .chat-head .who { flex: 1; }
  .chat-head .status { margin-left: 0; }
  .topnav .hr-lang { margin-left: auto; }
  #hdr .nav { gap: 8px; }
  #hdr .nav-right { gap: 4px; }
  #hdr .nav-right .music-toggle,#hdr .nav-right .share-btn { display: none; }
  #hdr .nav .brand { gap: 7px; font-size: 1.15rem; }
  #hdr .nav .brand-logo { width: 32px; height: 32px; }
  #hdr .nav-links { padding-inline: 18px; }
  #hdr .app-quickbar-inner { padding-inline: 12px; }
  #hdr .app-quickbar-buttons { width: 100%; }
  #hdr .app-quickbar-buttons button { flex: 1 1 0; min-width: 0; font-size: 12px; padding: 8px; }
  .future-plans { grid-template-columns: 1fr; }
  .future-plans a { min-width: 0; }
}
@media (max-width: 380px) {
  #hdr>.wrap { padding-inline: 12px; }
  #hdr .brand small { font-size: 8px; letter-spacing: .16em; }
  #hdr .nav .brand { font-size: 1.02rem; }
  #hdr .nav .brand-logo { width: 28px; height: 28px; }
  #hdr .burger { width: 40px; min-width: 40px; }
  .hr-lang button { padding-inline: 5px; }
}

/* Final accessibility pass: visible keyboard focus and a translated skip link. */
:where(a,button,input,select,textarea,summary,[tabindex]):focus-visible { outline: 3px solid #9a6c18; outline-offset: 4px; }
.hr-skip-link { position: fixed; z-index: 100000; top: 8px; left: 8px; padding: 12px 18px; background: #fff; color: #203b2c; border: 2px solid #203b2c; border-radius: 8px; transform: translateY(-200%); }
.hr-skip-link:focus { transform: translateY(0); }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto !important; } *,*::before,*::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; } }
