.yello {
background-color:#fcffcc;
}

.green-block {
background-color:#ccffd3;
display:block;
float:left;
height:15px;
width:58px;
border:1px solid #45b0ff;
margin-right:10px;
}

.yellow-block {
background-color:#fcffcc;
display:block;
float:left;
height:15px;
width:58px;
border:1px solid #45b0ff;
margin-right:10px;
}

.red-block {
background-color:#efb5c1;
display:block;
float:left;
height:15px;
width:58px;
border:1px solid #45b0ff;
margin-right:10px;
}

div#head {
width:100%;
height:112px;
background-color:var(--color-brand);
}

div#logo {
display:block;
width:330px;
float:left;
}

div#logo .logo {
float:left;
margin-left:30px;
margin-top:9px;
border:none;
}

div#top_banner {
display:block;
float:left;
text-align:center;
}

div#top_banner .top_banner_img {
text-align:center;
border:none;
margin:10px auto 0;
}

div#top_contacts {
display:block;
width:316px;
float:right;
margin:10px 10px 0 0;
}

div#top_contacts .tic_text {
float:right;
font-family:Tahoma, arial;
font-size:16px;
color:#fff;
text-align:right;
margin-right:10px;
}

div#top_contacts .tic_text_small {
float:right;
font-family:Tahoma, arial;
font-size:12px;
color:#fff;
text-align:right;
margin:2px 5px 0 0;
}

div#top_contacts .tic_logo {
float:right;
width:auto;
}

a img {
border:none;
text-decoration:none;
}

.underline {
text-decoration:none;
border-bottom:1px solid;
}

u,ins {
text-decoration:none;
}

#top_menu_s {
border-bottom:1px solid var(--color-brand);
border-top:1px solid var(--color-brand);
padding-bottom: 10px;
}

#top_menu {
width:100%;
height:18px;
overflow: hidden;

padding-top:2px;
border-spacing:0;
margin:0;
text-align: center;
padding-top: 10px;
font-weight: bold;
}

#top_menu tbody {
height:25px;
border-spacing:0;
margin:0;
padding:0;
}

#top_menu td.top_middle {
height:25px;
width:14%;
text-align:center;
}

#top_menu .top_container {
height:25px;
float: left;
margin: 4px 5px 2px;
}

#top_menu a {
font-family:Tahoma, arial;
font-size:13px;
color:var(--color-brand);
text-decoration:underline;
margin: 0 4px;
}

#top_menu a:hover {
color:#00678c;
text-decoration:none !important;
}

h2.medh {
font-size:14px;
color:#FFF;
background:url(/images/left_h2_bg.jpg) no-repeat transparent top left;
padding:5px;
}

h3.medh {
font-size:12px;
color:#FFF;
background:url(/images/left_h2_bg.jpg) no-repeat transparent top left;
padding:5px;
}

/* -------------------------------------------------------------------------
   Enext typography (hotel skin) + colors.
   Color source of truth (custom template, NOT stock enext/colors.css #6639b6):
     www/только для примера/custom.css — .btn-buy #00416c, link toggles
     www/только для примера/hotel/style.css — .scu-text-toggle-link, room titles
     www/только для примера/styles.css — offer-slider accents
   Typography: body/headings/room titles → Source Sans Pro (300/400/500);
   prices → Museo Sans Cyrl 700. Base enext/colors.css is generic purple skin.
   ------------------------------------------------------------------------- */

/* Live mta24 colors.min.css: Museo files registered as "Source Sans Pro" (300→Cyrl-300,
   400→Cyrl-500). Also register 500→Cyrl-500 so UI font-weight:500 hits Museo Medium locally.
   Named Museo 300/500/700 faces kept for rules that select by family name (e.g. .navigation-title).
   All faces are local — no Google Fonts CDN. */

@font-face {
  font-display: swap;
  font-family: "Source Sans Pro";
  font-style: normal;
  font-weight: 300;
  src: local("Source Sans Pro"), local("MuseoSansCyrl-300"),
       url("/themes/navigatorV2026/fonts/MuseoSansCyrl-300.woff2") format("woff2"),
       url("/themes/navigatorV2026/fonts/MuseoSansCyrl-300.woff") format("woff"),
       url("/themes/navigatorV2026/fonts/MuseoSansCyrl-300.ttf") format("truetype");
}

@font-face {
  font-display: swap;
  font-family: "Source Sans Pro";
  font-style: normal;
  font-weight: 400;
  src: local("Source Sans Pro"), local("MuseoSansCyrl-500"),
       url("/themes/navigatorV2026/fonts/MuseoSansCyrl-500.woff2") format("woff2"),
       url("/themes/navigatorV2026/fonts/MuseoSansCyrl-500.woff") format("woff"),
       url("/themes/navigatorV2026/fonts/MuseoSansCyrl-500.ttf") format("truetype");
}

@font-face {
  font-display: swap;
  font-family: "Source Sans Pro";
  font-style: normal;
  font-weight: 500;
  src: local("Source Sans Pro"), local("MuseoSansCyrl-500"),
       url("/themes/navigatorV2026/fonts/MuseoSansCyrl-500.woff2") format("woff2"),
       url("/themes/navigatorV2026/fonts/MuseoSansCyrl-500.woff") format("woff"),
       url("/themes/navigatorV2026/fonts/MuseoSansCyrl-500.ttf") format("truetype");
}

@font-face {
  font-display: swap;
  font-family: "Museo Sans Cyrl 300";
  font-style: normal;
  font-weight: 300;
  src: local("Museo Sans Cyrl 300"), local("MuseoSansCyrl-300"),
       url("/themes/navigatorV2026/fonts/MuseoSansCyrl-300.woff2") format("woff2"),
       url("/themes/navigatorV2026/fonts/MuseoSansCyrl-300.woff") format("woff"),
       url("/themes/navigatorV2026/fonts/MuseoSansCyrl-300.ttf") format("truetype");
}

@font-face {
  font-display: swap;
  font-family: "Museo Sans Cyrl 500";
  font-style: normal;
  font-weight: 400;
  src: local("Museo Sans Cyrl 500"), local("MuseoSansCyrl-500"),
       url("/themes/navigatorV2026/fonts/MuseoSansCyrl-500.woff2") format("woff2"),
       url("/themes/navigatorV2026/fonts/MuseoSansCyrl-500.woff") format("woff"),
       url("/themes/navigatorV2026/fonts/MuseoSansCyrl-500.ttf") format("truetype");
}

/* Museo Sans Cyrl 700 — accent / price / mobile .navigation-title (family name, not weight) */
@font-face {
  font-display: swap;
  font-family: "Museo Sans Cyrl 700";
  font-style: normal;
  font-weight: 400;
  src: local("Museo Sans Cyrl 700"), local("MuseoSansCyrl-700"),
       url("/themes/navigatorV2026/fonts/MuseoSansCyrl-700.woff2") format("woff2"),
       url("/themes/navigatorV2026/fonts/MuseoSansCyrl-700.woff") format("woff"),
       url("/themes/navigatorV2026/fonts/MuseoSansCyrl-700.ttf") format("truetype");
}

/* -------------------------------------------------------------------------
   Base typography — Enext hotel scale (Source Sans Pro 16/19, weight 300).
   html  → 100% (≈16px) so rem stays predictable
   body  → --font-size-base (16px)
   ------------------------------------------------------------------------- */
:root {
  /* Enext base surfaces (hotel/style.css) */
  --enext-ink: #263238;
  --enext-muted: #78909c;
  --enext-icon: #b2c7cb;
  --enext-surface: #f1f6f7;
  --enext-border: #ced9db;
  --enext-border-soft: #e3ecef;
  --enext-white: #fff;
  /* Custom template accents (custom.css + hotel/style.css — not #6639b6) */
  --enext-brand-navy: #003F6A;
  --enext-btn: #00416c;
  --enext-btn-hover: #00416c;
  --color-brand-rgb: 0, 65, 108;
  --color-accent-rgb: 0, 65, 108;

  /* Semantic tokens — navy CTAs/links, not stock Enext purple */
  --color-brand: var(--enext-btn);
  --color-accent: var(--enext-btn-hover);
  /* Enext hotel .scu-text-toggle-link / .description-text-toggle-link */
  --color-link: #00416c;
  --color-link-hover: #00416c;

  /* Font stacks — Source Sans Pro body/UI; Museo 700 accents/prices */
  --font-family-base: "Source Sans Pro", sans-serif;
  --font-family-heading: "Source Sans Pro", sans-serif;
  --font-family-light: var(--font-family-base);
  --font-family-medium: var(--font-family-base);
  --font-family-bold: "Museo Sans Cyrl 700", sans-serif;
  --font-family-accent: var(--font-family-bold);

  --font-size-base: 16px; /* Enext body / .scu-text-content */
  --font-size-body: var(--font-size-base);
  --font-size-small: 14px; /* Enext meta: .scu-characteristic, .scu-amenity, toggles */
  --font-size-tiny: 11px;
  --font-size-side: 12px;
  --font-size-caption: 13px; /* Enext .month-name */
  --font-size-room-title: 18px; /* Enext .product-item-detail-scu-item-title */
  --font-size-room-price: 20px; /* Enext .product-item-detail-scu-item-price-current */
  --line-height-body: 1.1875; /* Enext 19/16 */
  --line-height-heading: 1.2;
  --font-weight-body: 300;
  --color-text: var(--enext-ink);
  --color-heading: var(--enext-ink);
  --color-muted: var(--enext-muted);
  --color-control-border: var(--enext-border);
  --color-placeholder: var(--enext-muted);
  /* Page shell (#mainLayout / body / .site-body) — pre-Enext navigator wash */
  --page-content-max: 1320px;
  --color-page-bg: #f0f2f4;
  --color-panel-bg: var(--enext-white);
  --color-panel-border: var(--enext-border-soft);
  --color-panel-muted: var(--enext-surface);
  --radius-panel: 12px;
  --radius-panel-lg: 16px;
  --shadow-panel: 0 1px 2px rgba(0, 0, 0, 0.04), 0 4px 14px rgba(var(--color-brand-rgb), 0.06);
  --shadow-panel-soft: 0 1px 3px rgba(0, 0, 0, 0.05);
  /* Headings — h2/h3 distinct; Source Sans Pro @500 + template_styles pad */
  --font-size-h1: 36px;
  --font-size-h2: 24px;
  --font-size-h3: 20px; /* must stay below h2 */
  --font-size-h4: 18px;
  --line-height-h1: 44px;
  --line-height-h2: 29px;
  --line-height-h3: 1.2;
  --line-height-h4: 1.1;
  /* Bootstrap h1–h6 font-weight:500 → Source Sans Pro @500 face (= Museo 500 glyphs) */
  --font-weight-heading: 500;
  --font-weight-heading-strong: 500;
  /* template_styles.css — margin 0, vertical padding on h1/h2 only */
  --padding-h1: 24px 0;
  --padding-h2: 18px 0;
  --margin-h3: 20px 0 10px; /* Bootstrap h1–h3 margins (h1/h2 reset to 0) */
  --margin-h4: 10px 0; /* Bootstrap h4–h6 */
  --margin-p-bottom: 1.125em; /* Enext p padding-bottom 18px */
}

html {
  font-size: 100%; /* rem root ≈16px — do NOT set to --font-size-base */
  -webkit-text-size-adjust: 100%;
  text-size-adjust: 100%;
}

body {
font-family: "Source Sans Pro", sans-serif;
font-size: var(--font-size-base);
font-weight: var(--font-weight-body);
line-height: var(--line-height-body);
color: var(--color-text);
width:100%;
margin:0;
padding:0;
background-color: var(--color-page-bg);
}

p {
margin: 0 0 var(--margin-p-bottom);
padding: 0;
font-size: var(--font-size-base);
font-weight: var(--font-weight-body);
line-height: 1.55;
color: var(--color-text);
text-align: justify;
text-indent: 0;
}

/* Inherit by default — many spans are UI chrome / titles, not body copy.
   Utility classes (.small etc.) MUST set absolute px so they beat this. */
span {
font-size: inherit;
line-height: inherit;
color: inherit;
font-family: inherit;
}

h1, h2, h3, h4 {
font-family: var(--font-family-heading); /* hotel colors.css: "Source Sans Pro" */
font-weight: var(--font-weight-heading); /* Bootstrap 500 → Museo 500 face */
color: var(--color-heading); /* #263238 */
margin: 0;
padding: 0;
}

h1 {
font-size: var(--font-size-h1);
line-height: var(--line-height-h1);
padding: var(--padding-h1);
/* Enext does NOT center plain h1 — only .navigation-title on ≤1042px */
}

h2 {
font-size: var(--font-size-h2);
line-height: var(--line-height-h2);
padding: var(--padding-h2);
}

h3 {
font-size: var(--font-size-h3);
line-height: var(--line-height-h3);
margin: var(--margin-h3);
}

h4 {
font-size: var(--font-size-h4);
line-height: var(--line-height-h4);
margin: var(--margin-h4);
}

/* Narrow viewports — step down h2/h3 while keeping h1 > h2 > h3 */
@media (max-width: 1042px) {
  :root {
    --font-size-h1: 28px;
    --font-size-h2: 20px;
    --font-size-h3: 18px;
    --line-height-h1: 34px;
    --line-height-h2: 24px;
    --line-height-h3: 1.2;
  }
}

/* Content panels — never larger than base */
.mainText {
font-family: "Source Sans Pro", sans-serif;
font-size: var(--font-size-base);
line-height: var(--line-height-body);
color: var(--color-text);
}

li {
color: var(--color-text);
}

a:hover {
color: var(--color-link-hover);
}

hr.hr_adv {
border:1px solid var(--color-brand);
width:220px;
}

a.black {
color:#0772a1;
text-decoration:none;
border:0 dashed #000;
font-weight:700;
}

a.black:hover {
color:#0772a1;
text-decoration:none;
border:1px dashed #000;
font-weight:700;
}

a.navLink {
color:var(--color-brand)!important;
text-decoration:none;
border-bottom:1px solid;
font-weight:700;
}

a:hover.navLink {
color:var(--color-accent)!important;
text-decoration:none;
font-weight:700;
}

/* PHP-Fusion link class «white» (showsublinks / admin nav) — brand tokens after Enext */
a.white {
font-size: var(--font-size-side);
color: var(--color-link);
text-decoration: none;
}

a:hover.white {
color: var(--color-link);
text-decoration: none;
border-bottom: 1px solid var(--color-link);
}

/* Breadcrumb links — base; bar typography in .titleOpen.titleOpen--breadcrumb (after .titleOpen span) */
/* Enext .navigation-breadcrumb__item > a */
a.hotel-zagolovok {
font-family: var(--font-family-base);
font-size: var(--font-size-small);
font-weight: var(--font-weight-body);
line-height: 17px;
color: var(--color-muted) !important;
text-decoration: none;
border-bottom: none;
}

a.h2link {
font-size:15px;
color:var(--color-brand);
text-decoration:none;
border-bottom:1px solid;
font-weight:700;
}

a.h1link {
font-size:100%;
color:var(--color-brand);
text-decoration:none;
border-bottom:1px solid;
font-weight:700;
}

form {
margin:3px;
}

.vsego_gost {
    color: var(--color-accent)!important;
    font-size: 10px;
    margin: 3px 0px 5px 7px;
}

.cat-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 12px 16px;
    width: 100%;
}

.cat-card {
    display: flex;
    align-items: flex-start;
    gap: 8px;
    font-size: 16px; /* base only — children set explicit px */
    color: #000;
    background-color: #fff;
    font-weight: 400;
    padding: 4px;
}

.cat-card__media {
    flex: 0 0 auto;
    max-width: 45%;
}

.cat-card__media img {
    max-width: 100%;
    height: auto;
    display: block;
}

.cat-card__body {
    flex: 1 1 auto;
    min-width: 0;
    color: #949596;
}

.cat-card__title {
    font-size: 15px; /* primary — was 13px, smaller than inherited 14px subs */
    font-weight: 700;
}

.cat-card__subs,
.cat-card__subs li,
.cat-card__subs li a {
    font-size: 14px;
    font-weight: 300;
}

.cat-card__subs {
    margin: 0;
    padding-left: 18px;
}

.hotel-type-filters {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px;
    box-sizing: border-box;
    width: 100%;
    max-width: 100%;
    min-width: 0;
    clear: both;
    margin: 10px 0 16px;
}

.hotel-type-filters a {
    display: inline-flex;
    flex: 0 1 auto;
    align-items: center;
    justify-content: center;
    box-sizing: border-box;
    max-width: 100%;
    padding: 8px 12px;
    background: #f0f3f5;
    color: var(--color-brand);
    text-decoration: none;
    border: 1px solid #d7dee3;
    border-radius: 6px;
    font-size: 13px;
    font-weight: 500;
    line-height: 1.3;
}

/* Beat global a:hover { color: var(--color-link-hover) !important } */
.hotel-type-filters a:hover,
.hotel-type-filters a.is-active {
    background: var(--color-brand);
    border-color: var(--color-brand);
    color: #fff !important;
}

.mainText:has(.hotel-list-toolbar) > h1,
.mainText:has(.hotel-list-toolbar) h1 {
    text-align: left;
}

.hotel-list-sortbar {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px 12px;
    margin: 0;
}

.hotel-list-toolbar {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 12px 20px;
    box-sizing: border-box;
    width: 100%;
    max-width: 100%;
    min-width: 0;
    margin: 0 0 12px;
}

.hotel-list-sortbar__label {
    font-size: 14px;
    font-weight: 500;
    color: var(--color-brand);
}

.hotel-list-sortbar__select {
    min-width: 220px;
    max-width: 100%;
    padding: 6px 10px;
    border: 1px solid #d7dee3;
    border-radius: 6px;
    background: #fff;
    color: var(--color-brand);
    font-size: 13px;
    line-height: 1.3;
}

.hotel-view-switch {
    display: inline-flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px;
}

.hotel-view-switch__label {
    font-size: 14px;
    font-weight: 500;
    color: var(--color-brand);
}

.hotel-view-switch__btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 6px 12px;
    border: 1px solid #d7dee3;
    border-radius: 6px;
    background: #f0f3f5;
    color: var(--color-brand);
    font-size: 13px;
    font-weight: 500;
    text-decoration: none;
    line-height: 1.3;
}

.hotel-view-switch__btn:hover,
.hotel-view-switch__btn.is-active {
    background: var(--color-brand);
    border-color: var(--color-brand);
    color: #fff;
}

.hotel-cards {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    align-items: stretch;
    gap: 16px;
    width: 100%;
}

.hotel-card {
    box-sizing: border-box;
    width: calc(25% - 12px);
    min-width: 160px;
    max-width: 240px;
    display: flex;
    flex-direction: column;
    align-items: stretch;
    overflow: hidden;
    border: 1px solid #e6ebef;
    border-radius: 10px;
    background: #fff;
    text-align: left;
    transition: border-color 0.15s ease, box-shadow 0.15s ease;
}

.hotel-card:hover {
    border-color: #c5d3dc;
    box-shadow: 0 4px 14px rgba(var(--color-brand-rgb), 0.08);
}

.hotel-card--featured {
    background: #f3f7f9;
    border-color: var(--color-accent);
    box-shadow: 0 2px 10px rgba(var(--color-accent-rgb), 0.18);
}

.hotel-card--featured:hover {
    border-color: #5aa9bc;
    box-shadow: 0 4px 14px rgba(var(--color-brand-rgb), 0.12);
}

.hotel-card__media {
    display: block;
    width: 100%;
    line-height: 0;
    overflow: hidden;
    background: #eef2f5;
}

.hotel-card__media-inner {
    display: block;
    position: relative;
    overflow: hidden;
    aspect-ratio: 3 / 2;
}

.hotel-card__media picture {
    display: contents;
}

.hotel-card__media img {
    position: absolute;
    inset: -3px;
    display: block;
    width: calc(100% + 6px);
    height: calc(100% + 6px);
    max-width: none;
    object-fit: cover;
}

.hotel-card__body {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 4px;
    width: 100%;
    min-height: 130px;
    padding: 20px;
    box-sizing: border-box;
}

.hotel-card__title {
    display: inline;
    color: var(--color-brand);
    font-size: 14px;
    font-weight: 700;
    text-decoration: none;
    border-bottom: none;
    line-height: 1.35;
}

.hotel-card__title:hover {
    color: var(--color-accent);
}

.hotel-card__off {
    display: block;
    font-size: 12px;
    color: #8a949c;
    line-height: 1.3;
}

.hotel-card__addr {
    margin: 2px 0 0;
    width: max-content;
    max-width: 100%;
    align-self: flex-start;
    text-align: left;
    font-size: 12px;
    color: #8a949c;
    line-height: 1.35;
}

.hotel-card__meta {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 6px;
    margin-top: auto;
    padding-top: 8px;
    width: 100%;
}

.hotel-list {
    --hotel-list-flag-w: 40px;
    --hotel-list-cols: minmax(0, 1fr) minmax(0, 0.48fr) var(--hotel-list-flag-w) var(--hotel-list-flag-w) var(--hotel-list-flag-w) var(--hotel-list-flag-w);
    --hotel-list-border: #e6ebef;
    --hotel-list-head-bg: var(--color-brand);
    --hotel-list-muted: #8a949c;
    display: grid;
    grid-template-columns: var(--hotel-list-cols);
    box-sizing: border-box;
    width: 100%;
    max-width: 100%;
    min-width: 0;
    border: 1px solid var(--hotel-list-border);
    border-radius: 8px;
    /* visible so a.tooltip hover previews are not clipped */
    overflow: visible;
    background: #fff;
}

.hotel-list__head,
.hotel-list__row {
    display: contents;
}

.hotel-list__head .hotel-list__cell {
    position: sticky;
    top: 0;
    z-index: 2;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 10px 12px;
    border-bottom: 1px solid rgba(255, 255, 255, 0.12);
    background: var(--hotel-list-head-bg);
    color: #fff;
    font-size: 12px;
    font-weight: 500;
    letter-spacing: 0.02em;
    text-align: center;
    line-height: 1.25;
}

.hotel-list__head .hotel-list__flag {
    padding: 8px 2px;
    font-size: 11px;
    line-height: 1.15;
    white-space: normal;
    overflow-wrap: break-word;
    word-break: normal;
}

.hotel-list__head .hotel-list__flag .hotel-list__sort {
    display: inline-flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    max-width: 100%;
    text-align: center;
}

.hotel-list__head .hotel-list__flag .hotel-list__sort::after {
    content: "↕";
    font-size: 10px;
    line-height: 1;
}

.hotel-list__head .hotel-list__flag .hotel-list__sort.is-asc::after {
    content: "↑";
}

.hotel-list__head .hotel-list__flag .hotel-list__sort.is-desc::after {
    content: "↓";
}

.hotel-list__sort {
    color: #fff;
    text-decoration: none;
    cursor: pointer;
}

.hotel-list__sort::after {
    content: " ↕";
    font-weight: 400;
    opacity: 0.45;
    letter-spacing: 0;
}

.hotel-list__head .hotel-list__addr,
.hotel-list__head .hotel-list__addr .hotel-list__sort,
.hotel-list__head .hotel-list__sort,
.hotel-list__head .hotel-list__sort:hover,
.hotel-list__head .hotel-list__sort.is-active,
.hotel-list__head .hotel-list__sort.is-active.is-desc,
.hotel-list__head .hotel-list__sort.is-active.is-asc {
    color: #fff;
}

.hotel-list__sort:hover {
    opacity: 0.85;
    text-decoration: none;
}

.hotel-list__sort:hover::after {
    opacity: 0.7;
}

.hotel-list__sort.is-active {
    text-decoration: underline;
    text-underline-offset: 3px;
}

.hotel-list__sort.is-active::after {
    font-weight: 500;
    opacity: 1;
}

.hotel-list__sort.is-asc::after {
    content: " ↑";
}

.hotel-list__sort.is-desc::after {
    content: " ↓";
}

.hotel-list__head .hotel-list__name,
.hotel-list__head .hotel-list__addr {
    justify-content: flex-start;
}

/* Round corners on edge cells (replaces overflow:hidden clipping) */
.hotel-list__head .hotel-list__name {
    border-top-left-radius: 8px;
}

.hotel-list__head .hotel-list__cell:last-child {
    border-top-right-radius: 8px;
}

.hotel-list__row:last-child .hotel-list__name {
    border-bottom-left-radius: 8px;
}

.hotel-list__row:last-child .hotel-list__cell:last-child {
    border-bottom-right-radius: 8px;
}

.hotel-list__name,
.hotel-list__addr {
    min-width: 0;
    overflow-wrap: break-word;
    word-break: break-word;
}

.hotel-list__row .hotel-list__cell {
    position: relative;
    box-sizing: border-box;
    min-width: 0;
    padding: 10px 12px;
    border-bottom: 1px solid var(--hotel-list-border);
    background: #fff;
    font-size: 13px;
    color: #2a333a;
    line-height: 1.4;
}

/* Lift hovered name cell above later columns/rows so tooltip image stacks on top */
.hotel-list__name:hover,
.hotel-list__name:focus-within {
    z-index: 30;
}

.hotel-list__row:hover .hotel-list__cell {
    background: #f7f9fb;
}

.hotel-list__row--vid1 .hotel-list__name,
.hotel-list__row--vid1 .hotel-list__addr {
    background: #f3f7f9;
}

.hotel-list__row--vid1:hover .hotel-list__name,
.hotel-list__row--vid1:hover .hotel-list__addr {
    background: #eef4f7;
}

.hotel-list__row .hotel-list__flag {
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 8px 2px;
    font-size: 12px;
    font-weight: 500;
    text-align: center;
    white-space: nowrap;
    box-sizing: border-box;
}

.hotel-list__name a {
    color: var(--color-brand);
    text-decoration: none;
    font-weight: 500;
    border-bottom: 1px solid transparent;
}

.hotel-list__name a:hover {
    color: var(--color-accent);
    border-bottom-color: var(--color-accent);
}

.hotel-list__off {
    font-weight: 400;
    color: var(--hotel-list-muted);
}

.hotel-list__flag.is-empty {
    background: transparent;
    color: var(--hotel-list-muted);
}

.hotel-list__flag.is-otz,
.hotel-list__flag.is-foto,
.hotel-list__flag.is-price,
.hotel-list__flag.is-pool {
    background: #e1eff6;
    color: var(--color-brand);
    border-radius: 4px;
    margin: 6px 4px;
    padding: 4px 8px;
}

.hotel-list .hotel-list__row .hotel-list__flag.is-otz,
.hotel-list .hotel-list__row .hotel-list__flag.is-foto,
.hotel-list .hotel-list__row .hotel-list__flag.is-price,
.hotel-list .hotel-list__row .hotel-list__flag.is-pool {
    margin: 4px 2px;
    padding: 2px 0;
}

@media (max-width: 991px) {
    .hotel-type-filters {
        gap: 7px;
    }
}

@media (max-width: 767px) {
    .hotel-type-filters {
        gap: 6px;
    }

    .hotel-type-filters a {
        padding: 8px 10px;
    }

    .hotel-list__head .hotel-list__cell {
        padding: 8px 8px;
    }

    .hotel-list__row .hotel-list__cell {
        padding: 8px 8px;
    }

    .hotel-list__head .hotel-list__flag,
    .hotel-list__row .hotel-list__flag {
        padding: 8px 1px;
    }
}

@media (max-width: 479px) {
    .hotel-type-filters a {
        padding: 7px 9px;
        font-size: 12px;
    }
}

.hotel-preview-list {
    display: flex;
    flex-direction: column;
    gap: 16px;
}

.hotel-preview {
    display: flex;
    gap: 0;
    align-items: center;
    overflow: hidden;
    border: 1px solid #e6ebef;
    border-radius: 10px;
    background: #fff;
    box-shadow: 0 1px 2px rgba(var(--color-brand-rgb), 0.04);
    transition: border-color 0.15s ease, box-shadow 0.15s ease;
}

.hotel-preview:hover {
    border-color: #c5d3dc;
    box-shadow: 0 4px 14px rgba(var(--color-brand-rgb), 0.08);
}

.hotel-preview--featured {
    background: #f3f7f9;
    border-color: var(--color-accent);
    box-shadow: 0 2px 10px rgba(var(--color-accent-rgb), 0.18);
}

.hotel-preview--featured:hover {
    border-color: #5aa9bc;
    box-shadow: 0 4px 14px rgba(var(--color-brand-rgb), 0.12);
}

.hotel-preview__media {
    display: block;
    flex: 0 0 240px;
    width: 240px;
    max-width: 42%;
    background: transparent;
    line-height: 0;
    overflow: visible;
}

.hotel-preview__media-inner {
    display: block;
    position: relative;
    overflow: hidden;
    height: 160px;
    margin: 16px 0 16px 16px;
    border-radius: 10px;
    background: #eef2f5;
}

.hotel-preview__media picture {
    display: contents;
}

.hotel-preview__media img {
    position: absolute;
    inset: -3px;
    display: block;
    width: calc(100% + 6px);
    height: calc(100% + 6px);
    max-width: none;
    object-fit: cover;
    border-radius: 0;
}

.hotel-preview__body {
    flex: 1 1 auto;
    min-width: 0;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 8px;
    padding: 16px 18px;
}

.hotel-preview__body .short_opisanie,
.hotel-preview__desc {
    margin: 0;
    padding-left: 0;
    font-size: 13px;
    line-height: 1.5;
    color: #334;
    text-align: left;
}

.hotel-preview__title {
    font-size: 17px;
    font-weight: 700;
    line-height: 1.35;
    color: var(--color-brand);
    text-decoration: none;
}

.hotel-preview__title:hover {
    color: var(--color-accent);
}

.hotel-preview__addr {
    margin: 0;
    font-size: 13px;
    color: #8a949c;
    line-height: 1.4;
}

.hotel-preview__meta {
    flex: 0 0 auto;
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    justify-content: center;
    gap: 8px;
    padding: 16px 18px 16px 8px;
}

.hotel-preview__meta .hotel-list__flag,
.hotel-card__meta .hotel-list__flag {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 4px;
    margin: 0;
}

.hotel-preview__meta .hotel-list__flag img,
.hotel-card__meta .hotel-list__flag img {
    display: block;
    width: 16px;
    height: 16px;
}

.hotel-preview__meta .is-pool,
.hotel-card__meta .is-pool {
    min-width: 28px;
    min-height: 28px;
    padding: 4px;
}

.hotel-preview-more {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 8px;
    margin: 16px 0 4px;
}

.hotel-preview-more[hidden] {
    display: none;
}

.hotel-preview-more__btn {
    appearance: none;
    cursor: pointer;
    padding: 10px 18px;
    border: 1px solid var(--color-brand);
    border-radius: 8px;
    background: var(--color-brand);
    color: #fff;
    font-size: 14px;
    font-weight: 500;
    line-height: 1.3;
}

.hotel-preview-more__btn:hover {
    background: var(--color-accent);
    border-color: var(--color-accent);
}

.hotel-preview-more.is-loading .hotel-preview-more__btn {
    opacity: 0.65;
    cursor: default;
}

.hotel-preview-more__status {
    margin: 0;
    font-size: 13px;
    color: #8a949c;
}

.hotel-preview-more.is-error .hotel-preview-more__status {
    color: #b42318;
}

/* Admin: download categories (download_cats.php) */
.adm-cats-form {
    width: 100%;
    max-width: none;
    margin: 8px 0;
    display: flex;
    flex-direction: column;
    gap: 10px;
    box-sizing: border-box;
}

.adm-cats-form__row {
    display: grid;
    grid-template-columns: 150px minmax(0, 1fr);
    gap: 6px 14px;
    align-items: start;
}

.adm-cats-form__label {
    font-size: 14px;
    font-weight: 700;
    color: #000;
    white-space: nowrap;
    padding-top: 5px;
}

.adm-cats-form__field {
    min-width: 0;
}

.adm-cats-form__field--inline {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 6px 8px;
}

.adm-cats-form__sep {
    color: #666;
}

.adm-cats-form__input {
    width: 100%;
    max-width: 280px;
    box-sizing: border-box;
}

.adm-cats-form__textarea {
    width: 100%;
    max-width: 360px;
    box-sizing: border-box;
    resize: vertical;
}

.adm-cats-form__select {
    width: 100%;
    max-width: 220px;
    box-sizing: border-box;
}

.adm-cats-form__actions {
    text-align: left;
    padding: 4px 0 2px;
    padding-left: calc(150px + 14px);
}

.adm-cats-list {
    width: 100%;
    max-width: none;
    margin: 8px 0;
    border: 1px solid #d7e0e6;
    border-radius: 6px;
    background: #fff;
    box-sizing: border-box;
    overflow: hidden;
}

.adm-cats-list__head,
.adm-cats-list__row {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 140px 120px;
    gap: 8px 12px;
    align-items: center;
    padding: 10px 14px;
    border: 0;
    box-sizing: border-box;
}

.adm-cats-list__head {
    font-size: 12px;
    font-weight: 700;
    color: #1a3a4a;
    background: #f0f4f7;
    border-bottom: 1px solid #c5d0d8;
}

.adm-cats-list__row {
    font-size: 12px;
    background: #fff;
    border-bottom: 1px solid #e8eef2;
}

.adm-cats-list__row:nth-child(even) {
    background: #fafbfc;
}

.adm-cats-list__row:last-child {
    border-bottom: 0;
}

/* Kill legacy table cell borders/padding from .tbl1/.tbl2 on these rows */
.adm-cats-list__row.tbl1,
.adm-cats-list__row.tbl2 {
    border: 0;
    border-bottom: 1px solid #e8eef2;
    padding: 10px 14px;
    background: #fff;
}

.adm-cats-list__row.tbl1:nth-child(even),
.adm-cats-list__row.tbl2:nth-child(even) {
    background: #fafbfc;
}

.adm-cats-list__row.tbl1:last-child,
.adm-cats-list__row.tbl2:last-child {
    border-bottom: 0;
}

.adm-cats-list__name {
    min-width: 0;
    font-weight: 700;
}

.adm-cats-list__name .small {
    font-weight: 400;
    color: #555;
}

.adm-cats-list__access,
.adm-cats-list__actions {
    text-align: center;
    white-space: nowrap;
}

.adm-cats-list__empty {
    text-align: center;
    padding: 16px 12px;
    font-size: 12px;
    color: #666;
}

.sub-header {
font-family:Verdana, Arial, Helvetica, sans-serif;
font-size:10px;
color:#000;
background-color:#888;
border-top:1px solid #000;
border-bottom:1px solid #000;
padding:5px;
}

.bok-header {
background-image:url(images/bheader.png);
background-repeat:repeat-x;
background-position:right top;
}

.podskaz {
font-size:10px;
color:#aaa79a;
text-align:left;
}

.panel-zel {
font-size:10px;
color:#000;
background-color:#e5fff1;
padding:4px;
}

.panel-sin {
font-size:12px;
color:#000;
background-color:#e5f8ff;
padding:4px;
}

.main-bg {
color:#000;
padding:8px 12px;
text-align: left;
flex: 1 1 auto;
min-width: 0;
max-width: 100%;
width: auto;
box-sizing: border-box;
font-size: var(--font-size-base);
line-height: var(--line-height-body);
background-color: transparent;
}

.main-bg-adm {
color:#000;
padding:5px 0px;
text-align: left;
flex: 1 1 auto;
min-width: 0;
max-width: 100%;
width: auto;
box-sizing: border-box;
font-size: var(--font-size-base);
line-height: var(--line-height-body);
}

.border {
border:1px solid #e1e1e1;
}

.border1 {
border:1px solid #3B1910;
padding:0 0 0 10px;
}

.side-border-left {
    padding: 8px 12px;
    margin: 0;
    text-align: left;
    flex: 0 0 240px;
    width: 240px;
    max-width: 260px;
    box-sizing: border-box;
    background-color: transparent;
    border-radius: var(--radius-panel);
}

.side-border-right {
padding:15px 10px 5px;
margin: 0;
text-align: left;
flex: 0 0 240px;
width: 240px;
max-width: 260px;
box-sizing: border-box;
}

.label {
color:#000;
padding:0 0 0 8px;
}

.news-footer {
font-size:11px;
color:#949596;
background-color:#fff;
border-top:2px solid #27a8df;
padding:3px 4px 4px;
}

.panel {
font-family:Verdana, Arial, Helvetica, sans-serif;
font-size:11px;
color:#5e2600;
background-color:#f4faf0;
padding:2px 0 4px;
}

.paneltitle {
font-family:Verdana, Arial, Helvetica, sans-serif;
font-size:11px;
font-weight:700;
color:#73332a;
background-color:#F9F0CF;
text-align:center;
padding:2px 0 4px;
}

.scapmain {
background-image:url(images/sin-zagf.jpg);
background-repeat:repeat-x;
background-position:right top;
font-family:Arial;
font-size:18px;
color:#fff;
background-color:#e5f8ff;
text-align:center;
font-weight:700;
padding:0;
}

.scapmainZ {
background-image:url(images/zel-zagf.jpg);
background-repeat:repeat-x;
background-position:right top;
font-family:Arial;
font-size:18px;
color:#fff;
text-align:center;
font-weight:700;
padding:0;
}

.opis-border {
text-align: left;
font-family: "Source Sans Pro", sans-serif;
font-size: 16px;
line-height: 19px;
color: #263238;
background-color: #fff;
padding: 4px;
}

.tbl {
font-size:14px;
color:#000;
background-color:#fff;
border:0 solid #0B4C6A;
font-weight:700;
padding:4px;
}

.ceni {
font-size:11px;
color:#000;
background-color:#fff;
padding:2px;
}

.hotel {
font-size:15px;
color:#000;
background-color:#fff;
padding:10px 10px;
}

.dobHotel {
font-size:11px;
color:#000;
background-color:#fff;
border-top:2px solid #0B4862;
border-bottom:1px solid #0B4862;
padding:5px 10px;
}

.bron1 {
font-size:13px;
color:#000;
background-color:#fff;
padding:8px 8px;
border-bottom: 1px solid #0B4862;
border-left: 1px solid #0B4862;
}

.bron2 {
font-size:11px;
color:#000;
background-color:#fff;
border-bottom:1px solid #0B4862;
border-left:1px solid #0B4862;
border-right:1px solid #0B4862;
padding:3px 5px;
}

.forum-caption {
font-size:11px;
font-weight:700;
color:#949596;
background-color:#fff;
border-left:1px solid #0B4862;
border-right:1px solid #0B4862;
border-bottom:1px solid #0B4862;
padding:2px 4px 4px;
}

.quote {
font-size:11px;
color:#555;
background-color:#f8f8f8;
border:1px solid #bbb;
margin:0 20px;
padding:4px;
}

.poll {
height:12px;
border:1px solid #bbb;
}

.comment-name {
font-weight:700;
color:#059;
}

.shoutboxname {
font-weight:700;
color:#059;
background-color:#f6f6f6;
}

.shoutbox {
color:#777;
background-color:#f6f6f6;
}

.shoutboxdate {
font-size:10px;
color:#888;
background-color:#f6f6f6;
}

/* Absolute px — must beat span{font-size:inherit} and inflated .mainText parents */
.mainText span.small,
span.small,
.small {
font-family:Arial, Helvetica, sans-serif;
font-size: var(--font-size-small); /* 12px — legacy fixed size, not em */
line-height: 1.35;
color:#246d97;
}

.mainText span.small2,
span.small2,
.small2 {
font-size: var(--font-size-tiny); /* 10px */
font-weight:400;
line-height: 1.35;
color:#838383;
}

.mainText span.side-small,
span.side-small,
.side-small {
font-size: var(--font-size-tiny); /* 10px */
font-weight:400;
line-height: 1.35;
color:#555;
background-color:#f6f6f6;
}

.side-label {
font-size: var(--font-size-side); /* 12px */
color:#555;
background-color:#f1f1f1;
padding:2px 2px 3px;
}

.bron1vid1 {
font-size:13px;
color:#000;
background-color:#e5f8ff;
border-bottom:1px solid #0B4862;
border-left:1px solid #0B4862;
font-weight:700;
padding:3px 5px;
}

.bron2vid1 {
font-size:11px;
color:#000;
background-color:#e5f8ff;
border-bottom:1px solid #0B4862;
border-left:1px solid #0B4862;
border-right:1px solid #0B4862;
font-weight:700;
padding:3px 5px;
}

.login-zel {
font-family:Calibri, Arial;
color:#006837;
font-size:16px;
border-width:0;
padding:2px 0 2px 10px;
}

.login-zel-bok {
color:#006837;
font-size:11px;
border-width:0;
padding:2px 0 2px 10px;
}

.scrit-block {
display:none;
background-color:#E2FFB2;
color:#000;
padding:2px;
}

.kont-box {
font-family:Verdana, Arial, Helvetica, sans-serif;
font-size:11px;
color:#000;
background-color:#C9C9C9;
padding:2px;
}

.videl {
background-color:#FFE542;
}

.novidel {
background-color:#FFF;
}

.crosstext {
font-family:Verdana, Arial, Helvetica, sans-serif;
font-size:18px;
color:#000;
background-color:#F2F2F2;
border-top:1px solid #606060;
border-left:1px solid #606060;
border-right:1px solid #A8A8A8;
border-bottom:1px solid #A8A8A8;
}

.textvid {
font-family:Verdana, Arial, Helvetica, sans-serif;
font-size:18px;
color:#000;
background-color:#FFFF71;
border-top:1px solid #0E8278;
border-left:1px solid #0E8278;
border-right:1px solid #70FFF3;
border-bottom:1px solid #70FFF3;
}

#banerFloat {
width:195px;
height:230px;
text-align:center;
border:1px solid #ccc;
border-radius:5px;
float:left;
box-shadow:1px 1px 5px rgba(170,170,170,0.56);
margin:0 10px 10px 0;
}

#banerFloat:hover {
box-shadow:1px 1px 5px rgba(59,59,59,1);
}

.poisk2-cities {
width: 100%;
flex-basis: 100%;
text-align: left;
margin: 0 0 12px;
padding: 8px 10px;
box-sizing: border-box;
border-bottom: 1px solid #e6e6e6;
}
.poisk2-cities-title,
.poisk2-hotels-title {
font-weight: 700;
font-size: 16px;
color: #000;
margin-bottom: 6px;
}
.poisk2-hotels-title {
width: 100%;
flex-basis: 100%;
text-align: left;
box-sizing: border-box;
padding: 0 10px;
}
.poisk2-city-link {
display: inline-block;
margin: 0 12px 4px 0;
font-weight: 700;
color: var(--color-brand);
text-decoration: none;
border-bottom: 1px solid var(--color-brand);
}
.poisk2-city-link:hover {
color: #005a9e;
border-bottom-color: #005a9e;
}

/* special_hot: same grid as hotel-cards; card chrome from .hotel-card when both present */
div:has(> .special_hot) {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    align-items: stretch;
    gap: 16px;
    width: 100%;
}

/* Standalone special_hot (no hotel-card class) mirrors hotel-card look */
.special_hot:not(.hotel-card) {
    box-sizing: border-box;
    width: calc(25% - 12px);
    min-width: 160px;
    max-width: 240px;
    display: flex;
    flex-direction: column;
    align-items: stretch;
    overflow: hidden;
    border: 1px solid #e6ebef;
    border-radius: 10px;
    background: #fff;
    text-align: left;
    margin: 0;
    padding: 0;
    gap: 0;
    transition: border-color 0.15s ease, box-shadow 0.15s ease;
}

.special_hot:not(.hotel-card):hover {
    border-color: #c5d3dc;
    box-shadow: 0 4px 14px rgba(var(--color-brand-rgb), 0.08);
}

.special_hot:not(.hotel-card) > a:first-child {
    display: block;
    width: 100%;
    line-height: 0;
    overflow: hidden;
    background: #eef2f5;
}

.special_hot:not(.hotel-card) > a:first-child img {
    display: block;
    width: 100%;
    height: auto;
    aspect-ratio: 3 / 2;
    object-fit: cover;
    margin: 0;
    border-radius: 0;
}

.special_hot:not(.hotel-card) > b {
    display: block;
    padding: 20px 20px 0;
    margin: 0;
    box-sizing: border-box;
}

.special_hot:not(.hotel-card) > b > a {
    color: var(--color-brand);
    font-size: 16px;
    font-weight: 700;
    text-decoration: none;
    border-bottom: none !important;
    line-height: 1.35;
}

.special_hot:not(.hotel-card) > b > a:hover {
    color: var(--color-accent);
}

.special_hot:not(.hotel-card) > b + * {
    margin: 2px 0 0;
    padding: 0 20px 20px;
    width: max-content;
    max-width: 100%;
    align-self: flex-start;
    text-align: left;
    font-size: 12px;
    color: #8a949c;
    line-height: 1.35;
    box-sizing: border-box;
}

div.mainBody {
display: block;
width: 100%;
max-width: 100%;
box-sizing: border-box;
padding: 12px;
border: 1px solid var(--color-panel-border);
border-radius: var(--radius-panel);
box-shadow: var(--shadow-panel-soft);
margin: 0 0 12px 0;
background-color: var(--color-panel-bg);
}

div.mainBody_center {
box-sizing: border-box;
padding: 12px;
border: 1px solid var(--color-panel-border);
border-radius: var(--radius-panel);
box-shadow: var(--shadow-panel-soft);
margin: 0 0 12px 0;
background-color: var(--color-panel-bg);
}

div.mainBody div.titleOpen {
height: auto;
min-height: 0;
padding: 0 4px 12px;
}

div.mainBody div.titleOpen span {
font-family: var(--font-family-heading);
font-weight: var(--font-weight-heading);
font-size: var(--font-size-h2);
line-height: var(--line-height-h2);
padding: var(--padding-h2);
color: var(--color-heading);
position: static;
top: auto;
left: auto;
}

/* Breadcrumb bar (opentable with .hotel-zagolovok) — Enext .navigation-breadcrumb */
div.mainBody div.titleOpen.titleOpen--breadcrumb {
    display: flow-root;
}

div.mainBody div.titleOpen.titleOpen--breadcrumb span {
font-family: var(--font-family-base);
font-weight: var(--font-weight-body);
font-size: var(--font-size-small);
line-height: 17px;
padding: 0;
color: var(--color-heading);
position: static;
top: auto;
left: auto;
}

div.mainBody div.titleOpen.titleOpen--breadcrumb .hotel-breadcrumb-current {
color: var(--color-heading);
}

div.mainBody div.rLeft {
background-repeat:no-repeat;
background-position:bottom;
width:4px;
height:4px;
position:relative;
left:-1px;
}

.main-bg .mainText,
div.mainBody div.mainText {
text-align:left;
margin:5px;
font-size: var(--font-size-base);
line-height: var(--line-height-body);
color: var(--color-text);
}

div.mainBody div.mainText a.news {
color:#000;
display:block;
border-bottom:1px solid #000;
height:24px;
text-decoration:none;
font-size:1em;
font-weight:700;
line-height:2.5;
float:right;
text-indent:0;
}

div.mainBody div.mainText a.news:hover {
color:var(--color-brand);
border-bottom:1px solid var(--color-brand);
}

div.mainBodySide {
max-width: 240px;
padding: 5px;
border: 1px solid var(--color-panel-border);
border-radius: var(--radius-panel);
box-shadow: var(--shadow-panel-soft);
margin: 0 0 12px 0;
background-color: var(--color-panel-bg);
box-sizing: border-box;
}

/* PHP-Fusion style «white» — solid white card (pre-Enext navigator side panels) */
div.mainBodySide.mainBodySide--white {
background-color: #fff;
border: 1px solid #cdcfd1;
box-shadow: 0 15px 15px -15px #a7a8aa;
padding: 10px;
}

div.mainBodySide div.titleOpenSide {
margin: 0 0 0.75em;
text-align: center;
}

div.mainBodySide div.titleOpenSide span {
font-family: var(--font-family-heading);
font-weight: var(--font-weight-heading);
/* Sidebar chrome — not global h3 (Bootstrap 24px); keep compact panel title */
font-size: 20px;
line-height: 24px;
color: var(--color-heading);
position: static;
top: auto;
}

div.mainBodySide.mainBodySide--white div.titleOpenSide span {
color: #74BACC;
font-size: 18px;
line-height: 22px;
}

/* Admin «Навигация» uses a.white (not side-nav) — match 14px white style */
div.mainBodySide.mainBodySide--white div.mainText a.white {
font-size: 14px;
color: var(--color-link);
text-decoration: none;
}

div.mainBodySide.mainBodySide--white div.mainText a.white:hover {
color: var(--color-link);
border-bottom: 1px solid var(--color-link);
}

div.mainBodySide div.rLeftSide {
background-repeat:no-repeat;
background-position:bottom;
width:4px;
height:4px;
position:relative;
left:-1px;
clear:both;
}

div.mainBodySide div.mainText {
margin:0px 10px 10px;
/* Side panels historically denser than main content (body was 12–13px) */
font-size: var(--font-size-side); /* 12px */
line-height: 1.4;
color: var(--color-text);
}

/* Legacy <center> in side panels — keep at panel size, not browser default */
div.mainBodySide div.mainText center {
font-size: inherit;
line-height: inherit;
}

div.mainBodySide div.mainText ul {
/* Beat inline font-size:10px from DB panels (e.g. «Новые» panel_id 14) */
font-size: 12px !important;
list-style: disc;
list-style-position: outside;
margin: 0;
padding-left: 1.25em;
}

div.mainBodySide div.mainText ul li::marker {
color: var(--color-brand);
}

/* navigation_panel — site links only (not DB «Новые» etc.) */
div.mainBodySide div.mainText ul.side-nav {
font-size: 14px !important;
list-style: none;
margin: 0;
padding: 0;
}

div.mainBodySide div.mainText ul li {
margin: 5px 0;
}

div.mainBodySide div.mainText .label {
font-size: 12px;
font-weight: 500;
color: var(--color-heading);
margin: 8px 0 4px;
padding: 0;
}

div.mainBodySide div.mainText .label b {
font-weight: inherit;
}

div.mainBodySide div.mainText hr.side-hr {
margin: 8px 0;
border: 0;
border-top: 1px solid var(--color-panel-border);
}

/* Sidebar list links — Enext muted default / navy hover (cf. breadcrumb .hotel-zagolovok) */
div.mainBodySide div.mainText ul li a,
div.mainBodySide div.mainText ul li a:link,
div.mainBodySide div.mainText ul li a:visited {
font-size: 12px !important;
font-weight: 300 !important;
color: var(--color-muted) !important;
text-decoration: none !important;
border-bottom: none !important;
}

div.mainBodySide div.mainText ul li a:hover,
div.mainBodySide div.mainText ul li a:focus-visible {
color: var(--color-link) !important;
text-decoration: none !important;
font-weight: 300 !important;
outline: none;
}

/* DB panels use class navLink + inline font-weight — override global a.navLink (700/border) */
div.mainBodySide div.mainText a.navLink,
div.mainBodySide div.mainText ul li a.navLink,
div.mainBodySide div.mainText ul li a.navLink:link,
div.mainBodySide div.mainText ul li a.navLink:visited {
font-size: 12px !important;
font-weight: 300 !important;
color: var(--color-link) !important;
text-decoration: none !important;
border-bottom: none !important;
}

div.mainBodySide div.mainText a.navLink:hover,
div.mainBodySide div.mainText a.navLink:focus-visible,
div.mainBodySide div.mainText ul li a.navLink:hover,
div.mainBodySide div.mainText ul li a.navLink:focus-visible {
color: var(--color-muted) !important;
text-decoration: none !important;
font-weight: 300 !important;
}

/* navigation_panel links — 14px (scoped; other side panels stay 12px) */
div.mainBodySide div.mainText ul.side-nav li a,
div.mainBodySide div.mainText ul.side-nav li a:link,
div.mainBodySide div.mainText ul.side-nav li a:visited,
div.mainBodySide div.mainText ul.side-nav li a.navLink,
div.mainBodySide div.mainText ul.side-nav li a.navLink:link,
div.mainBodySide div.mainText ul.side-nav li a.navLink:visited {
font-size: 14px !important;
font-weight: 300 !important;
color: var(--color-muted) !important;
text-decoration: none !important;
border: 1px solid transparent;
border-radius: 6px;
padding: 2px 6px;
margin-left: -6px;
box-sizing: border-box;
display: inline-block;
max-width: 100%;
}

/* Style «white» — readable navy links on white card (not Enext muted gray) */
div.mainBodySide.mainBodySide--white div.mainText ul.side-nav li a,
div.mainBodySide.mainBodySide--white div.mainText ul.side-nav li a:link,
div.mainBodySide.mainBodySide--white div.mainText ul.side-nav li a:visited,
div.mainBodySide.mainBodySide--white div.mainText ul.side-nav li a.navLink,
div.mainBodySide.mainBodySide--white div.mainText ul.side-nav li a.navLink:link,
div.mainBodySide.mainBodySide--white div.mainText ul.side-nav li a.navLink:visited {
font-size: 14px !important;
font-weight: 300 !important;
color: var(--color-link) !important;
text-decoration: none !important;
border: 1px solid transparent;
border-radius: 6px;
padding: 2px 6px;
margin-left: -6px;
box-sizing: border-box;
display: inline-block;
max-width: 100%;
}

/* Style «white» hover — navy border on white (Навигация panel) */
div.mainBodySide.mainBodySide--white div.mainText ul.side-nav li a:hover,
div.mainBodySide.mainBodySide--white div.mainText ul.side-nav li a:focus-visible,
div.mainBodySide.mainBodySide--white div.mainText ul.side-nav li a.navLink:hover,
div.mainBodySide.mainBodySide--white div.mainText ul.side-nav li a.navLink:focus-visible {
color: var(--color-link) !important;
background: #fff;
border: 1px solid var(--enext-btn);
font-weight: 300 !important;
text-decoration: none !important;
outline: none;
}

a.tooltip {
position:relative;
text-decoration: none;
z-index: 1;
}

/* Preview image only — not nested labels like .hotel-list__off */
a.tooltip > span.tooltip-preview {
margin-left:-999em;
position:absolute;
margin-top:-170px;
pointer-events: none;
}

a.tooltip:hover > span.tooltip-preview {
font-family:Calibri, Tahoma, Geneva, sans-serif;
position:absolute;
left:1em;
top:2em;
z-index: 1000;
margin-left:0;
width:250px;
}

a.tooltip:hover {
z-index: 1000;
}

a.tooltip:hover img {
border:0;
float:left;
position:absolute;
margin:-10px 0 0 -55px;
}

.tooltip:hover em {
font-family:Candara, Tahoma, Geneva, sans-serif;
font-size:1.2em;
font-weight:700;
display:block;
padding:.2em 0 .6em;
}

div.dfooter {
background-color:var(--color-brand);
border:0 solid #ccc;
font-family:Verdana, Arial, Helvetica, sans-serif;
font-size:10px;
color:#fff;
clear:both;
padding:4px;
}

a.live {
float:left;
}

.tooltip5 {
position:absolute;
z-index:999;
left:-9999px;
border:3px solid #c2c6c8;
}

.tooltip5 img {
width:500px;
margin:0;
padding:0;
}

.mainImag {
background-position:center;
background-repeat:no-repeat;
background-size:cover;
border:1px solid #FFF;
margin-top:1px;
}

.mainImagSmall {
background-position:center;
background-repeat:no-repeat;
background-size:cover;
margin-left:1px;
margin-top:1px;
}

.mainImagBigSmall {
position:static;
background-position:center;
background-repeat:no-repeat;
width:50px;
height:50px;
background-size:cover;
border:1px solid #c2c6c8;
}

table .hotel-table {
width:100%;
font-family:Arial, Helvetica, sans-serif;
color:#696767;
font-size:12px;
background:#fcfcfc;
border-collapse:separate;
-moz-border-radius:3px;
-webkit-border-radius:3px;
border-radius:3px;
box-shadow:0 2px 7px #D7D7D7;
margin:0 0 20px;
}

table table .hotel-table {
width:100%;
font-family:Arial, Helvetica, sans-serif;
color:#191919;
font-size:12px;
background:#fcfcfc;
border-collapse:separate;
-moz-border-radius:3px;
-webkit-border-radius:3px;
border-radius:3px;
box-shadow: 0 20px 25px -20px #D7D7D7;
margin: 0 0 25px;
}

table .hotel-table tr.even td {
background:0;
}

table .hotel-table tr:hover td {
background: #f5f5f5;
}

.contact-table {
width:100%;
font-family: var(--font-family-base);
font-size:16px;
line-height: 1.35;
margin: 30px 0;
border-radius: 20px;
border: 1px solid #f0f0f0;
padding: 15px;
background-color: #fff;
box-shadow: 0px 15px 35px -25px #aaa;
box-sizing: border-box;
}

.contact-table__row {
display: block;
text-align: center;
padding: 10px 0;
border-bottom: 1px solid #f0f0f0;
font-size: 16px;
line-height: 1.35;
}

.contact-table__row:last-child {
border-bottom: 0;
}

.contact-table__row--muted {
background: #f7f8f9;
border-radius: 8px;
padding: 10px;
margin: 4px 0;
border-bottom: 0;
}

.contact-table__row--split {
display: flex;
flex-wrap: wrap;
gap: 8px 12px;
align-items: center;
justify-content: space-between;
}

.contact-table__row--split .contact-table__cell {
flex: 1 1 140px;
}

.contact-table__row--divider {
border-bottom: 1px solid grey;
}

.contact-table__cell {
padding: 4px 6px;
font-size: 16px;
line-height: 1.35;
}

.contact-table__cell--left {
text-align: left;
}

.contact-table__cell--center {
text-align: center;
}

.contact-table__cell--right {
text-align: right;
}

.contact-table__note,
.contact-table__center {
display: block;
text-align: center;
}

.contact-table__note {
font-size: 13px;
line-height: 1.35;
}

.contact-table__icons {
display: flex;
flex-wrap: wrap;
align-items: center;
gap: 4px;
}

.contact-table_top_right {
width:50px;
font-family:Arial, Helvetica, sans-serif;
color:#696767;
font-size:12px;
background:#eaebec;
border-collapse:separate;
-moz-border-radius:3px;
-webkit-border-radius:3px;
border-radius:3px;
float:right;
margin:0 0 5px;
}

.pay_text {
font-size: var(--font-size-base); /* was 1em — avoid parent compounding */
}

span.pay_text_sm {
color:grey;
font-size: var(--font-size-small); /* was .9em — absolute 12px */
}

#YMapsID {
width:100%;
height:400px;
background:#eaebec;
}

.form-search {
width:100%;
height:25px;
background:#e5e5e5;
border:solid 1px #f1f4f5;
border-radius:5px;
box-shadow:inset 0 1px 3px rgba(0,0,0,0.1);
min-height:2.6em;
font-size:1em;
text-indent:.5em;
transition:all .3s ease;
-webkit-transition:all .3s ease;
-moz-transition:all .3s ease;
margin:7px 0 10px;
}

/* Top search (site-header) */

.site-header__search-form {
    position: relative;
    width: 100%;
    max-width: 640px;
    margin: 0 auto;
}

.form-top-box {
    display: flex;
    align-items: center;
    width: 100%;
    min-width: 0;
    gap: 0;
    background: #fff;
    border: 1px solid rgba(var(--color-brand-rgb), 0.22);
    border-radius: 8px;
    overflow: hidden;
    box-shadow: 0 1px 2px rgba(var(--color-brand-rgb), 0.06);
    transition: border-color .2s ease, box-shadow .2s ease;
}

.form-top-box:focus-within {
    border-color: var(--color-accent);
    box-shadow: 0 0 0 3px rgba(var(--color-accent-rgb), 0.35);
}

.form-search-top {
    flex: 1 1 auto;
    width: 100%;
    min-width: 0;
    height: 44px;
    min-height: 44px;
    box-sizing: border-box;
    background: transparent;
    border: 0;
    border-radius: 0;
    box-shadow: none;
    font-family: var(--font-family-base);
    font-size: var(--font-size-base);
    color: #000;
    text-indent: .85em;
    padding: 0;
    margin: 0;
    outline: none;
}

.form-search-top:focus {
    border: 0;
    box-shadow: none;
}

.submit-search-button-top {
    flex: 0 0 48px;
    width: 48px;
    height: 44px;
    border-radius: 0;
    background: var(--color-brand) url(images/search_icon.svg) center / 22px no-repeat;
    color: #fff;
    border: 0;
    padding: 0;
    margin: 0;
    cursor: pointer;
    transition: background-color .2s ease;
}

.submit-search-button-top:hover,
.submit-search-button-top:active {
    background-color: var(--color-accent);
    background-image: url(images/search_icon.svg);
    background-size: 22px;
    background-position: center;
    background-repeat: no-repeat;
}

.foundList-top {
    top: calc(100% + 4px);
    left: 0;
    right: 0;
    width: 100%;
    max-width: none;
    padding: 0;
    list-style: none;
    background: #fff;
    border: 1px solid #e5e5e5;
    position: absolute;
    text-align: left;
    border-radius: 4px;
    z-index: 999;
    display: none;
    box-sizing: border-box;
}

.foundList-top li {
    width: 100%;
    margin: 0;
    padding: 0;
}

.foundList-top li a {
    width: auto;
    padding: 8px 10px;
    display: block;
    text-decoration: none;
    color: var(--color-brand);
    box-sizing: border-box;
}
.foundList-top li a:hover {
    color: var(--color-brand) !important;
}

.foundList-top li:hover {
    background: #f3f3f3;
}

.foundList-top li.searchList-city a,
.foundList li.searchList-city a,
#searchList li.searchList-city a {
    font-weight: 700;
}

.foundList-top li.searchList-all,
.foundList li.searchList-all,
#searchList li.searchList-all {
    border-top: 1px solid #e6e6e6;
}

.foundList-top li.searchList-all a,
.foundList li.searchList-all a,
#searchList li.searchList-all a {
    font-weight: 500;
    color: #005a9e;
}

/* end search */

.submit-search-button {
position:relative;
left:175px;
font-size:1.5em;
font-weight:300;
font-family:arial;
width:151px;
border-radius:7px;
background:var(--color-brand);
outline:none;
color:#fff;
border:solid 1px var(--color-brand);
margin:5px 0 15px -150px;
padding:5px 0;
}

.submit-search-button:hover,.submit-search-button:active {
color:var(--color-brand);
cursor:pointer;
outline:none;
background:none;
border:solid 1px var(--color-brand);
}


.form-input {
width:100%;
background:#e5e5e5;
border:solid 1px #f1f4f5;
border-radius:5px;
box-shadow:inset 0 1px 3px rgba(0,0,0,0.1);
min-height:2em;
font-size:1.5em;
text-indent:.5em;
transition:all .3s ease;
-webkit-transition:all .3s ease;
-moz-transition:all .3s ease;
margin:5px 0 10px;
}

.submit-button {
position:relative;
left:50%;
font-size:1.2em;
font-weight:300;
width:300px;
border-radius:7px;
background:none;
outline:none;
color:var(--color-brand);
border:solid 1px var(--color-brand);
margin:15px 0 15px -150px;
padding:1em 0;
}

.oplata_link {
font-size:16px;
font-family:PT Sans, Arial, sans-serif;
color:var(--color-brand);
vertical-align:middle;
margin:10px auto;
padding:25px 0;
}

.oplata_button {
font-size:1.5em;
font-weight:300;
width:150px;
border-radius:7px;
outline:none;
color:var(--color-brand);
border:solid 1px var(--color-brand);
height:30px;
text-align:center;
margin:0 auto 15px;
padding:7px 0 0;
background-color: white;
}

#top_menu td.top_first,#top_menu td.top_last {
height:25px;
width:15%;
text-align:center;
}

H1 + P,H1 + H2,H2 + H2,H2 + P,P + H2,P + P {
margin-top:-5px;
}

a:link,a:visited {
color: var(--color-link);
text-decoration: underline;
-webkit-transition: color 0.15s ease, border-color 0.15s ease, background-color 0.15s ease;
transition: color 0.15s ease, border-color 0.15s ease, background-color 0.15s ease;
}

a:hover {
    color: var(--color-link-hover) !important;
    text-decoration: none;
}

/* Breadcrumb links — Enext #78909c default / custom #00416c hover (not #6639b6) */
div.mainBody div.titleOpen.titleOpen--breadcrumb a.hotel-zagolovok,
div.mainBody div.titleOpen.titleOpen--breadcrumb a.hotel-zagolovok:link,
div.mainBody div.titleOpen.titleOpen--breadcrumb a.hotel-zagolovok:visited {
color: var(--color-muted) !important;
text-decoration: none;
border-bottom: none;
}

div.mainBody div.titleOpen.titleOpen--breadcrumb a.hotel-zagolovok:hover,
div.mainBody div.titleOpen.titleOpen--breadcrumb a.hotel-zagolovok:focus-visible {
color: var(--color-link) !important;
text-decoration: none;
border-bottom: none;
}

.tbl a {
    text-decoration: none;

}

a.side,
a:hover.side,
.mainText a.side,
.mainText a:hover.side {
font-size: var(--font-size-side); /* 12px absolute — was inheriting inflated .mainText */
color:#0772a1;
text-decoration:none;
border-bottom:1px solid;
font-weight:400;
line-height: 1.35;
}

td,pre {
font-family:Verdana, Arial, Helvetica, sans-serif;
font-size:13px;
}

.room,.room2 {
font-size:11px;
color:#000;
background-color:#fff;
padding:5px 10px;
}

.tbl1,.tbl2 {
font-size:12px;
color:#000;
background-color:#fff;
border-bottom:1px solid #0B4862;
padding:4px;
}

a.footerBloc,a:hover.footerBloc {
color:#000;
text-decoration:none;
border-bottom:1px solid;
}

a.vid1,a:hover.vid1 {
color:#008906;
text-decoration:none;
border-bottom:1px solid;
font-weight:700;
}

.textbox,.textbox2,.textbox3 {
font-family:Verdana, Arial, Helvetica, sans-serif;
font-size:13px;
color:#000;
background-color:#f3f3f3;
}

.text_center {
    text-align: center;
}

div.mainBody div.titleClose,div.mainBodySide div.titleCloseSide {
width:6px;
height:40px;
background-repeat:no-repeat;
float:right;
margin-right:-1px;
margin-top:-40px;
}

div.mainBody div.rRight,div.mainBodySide div.rRightSide {
background-repeat:no-repeat;
background-position:right bottom;
height:4px;
margin-right:-1px;
clear:both;
}

table .hotel-table th,.contact-table th {
font-weight:700;
font-size:13px;
background:var(--color-brand);
color:#FFF;
padding:15px 2.5px 15px;
}

table .hotel-table th:first-child,.contact-table th:first-child {
text-align:left;
padding-left:10px;
}

table .hotel-table tr:first-child th:first-child,.contact-table tr:first-child th:first-child {
-moz-border-radius-topleft:3px;
-webkit-border-top-left-radius:3px;
border-top-left-radius:3px;
}

table .hotel-table tr:first-child th:last-child,.contact-table tr:first-child th:last-child {
-moz-border-radius-topright:3px;
-webkit-border-top-right-radius:3px;
border-top-right-radius:3px;
}

table .hotel-table tr,.contact-table tr {
text-align:center;
padding-left:20px;
}

table .hotel-table tr:nth-child(odd) > td,.contact-table tr:nth-child(odd) > td {

}

table .hotel-table tr td:first-child,.contact-table tr td:first-child {
text-align:center;
padding-left:10px;
border-left:0;
font-weight:700;
}

table .hotel-table tr td,.contact-table tr td {
background:0;
padding:10px 10px;
border-bottom: 1px solid rgb(238, 238, 238);
}

table .hotel-table tr:last-child td,.contact-table tr:last-child td {
border-bottom:0;
}

table .hotel-table tr:last-child td:first-child,.contact-table tr:last-child td:first-child {
-moz-border-radius-bottomleft:3px;
-webkit-border-bottom-left-radius:3px;
border-bottom-left-radius:3px;
}

table .hotel-table tr:last-child td:last-child,.contact-table tr:last-child td:last-child {
-moz-border-radius-bottomright:3px;
-webkit-border-bottom-right-radius:3px;
border-bottom-right-radius:3px;
}

.form-search:focus,.form-input:focus {
background:#fff;
border:solid 1px #999;
box-shadow:none;
outline:none;
}

.submit-button:hover,.submit-button:active,.oplata_button:hover,.oplata_button:active {
color:#fff;
cursor:pointer;
outline:none;
background:var(--color-brand);
border:solid 1px var(--color-brand);
}

#mainLayout,
#mainTable {
    width: 100%;
    max-width: 100%;
    background-color: var(--color-page-bg);
}

.site-body {
    display: flex;
    flex-direction: row;
    flex-wrap: nowrap;
    align-items: flex-start;
    gap: 0;
    width: 100%;
    max-width: var(--page-content-max);
    margin-left: auto;
    margin-right: auto;
    box-sizing: border-box;
    padding: 8px 12px 20px;
    background-color: transparent;
}

.site-header,
.site-footer {
    width: 100%;
}


:focus{outline: 0;}

.leftnewForm {
    float: left;
    width: 400px;
}

.newForm {
    margin: 10px auto;
    background: var(--color-brand);
    border-radius: 10px;
    padding: 1.5em 1.5em 0.5em;
    width: 750px;
    color: #fff;
    box-shadow: 0 0 3px #888;
}

.clr {
    clear: both;
}

.formInput {
    width:472px;
    padding-left: 5px;
    border-radius: 5px;
    height: 40px;
    background: #FFFFFF;
    border: 1px solid #1C3659;
    margin-bottom: 10px;
}
.formInput:hover{
    border: 1px solid #33A8F4;
    box-shadow: 0 0 7px #009fe3;
}

.forInput {
    font-size: 16px;
}
.forInput2 {
    vertical-align: top;
    font-size: 16px;
}

.forInput a, .forInput a:link, .forInput a:visited {
    color: #fff;
}

.txareaInput {
    padding: 5px;
    border-radius: 5px;
    width: 468px;
    height: 80px;
    background: #FFFFFF;
    border: 1px solid #1C3659;
    margin-bottom: 10px;
}

.stepTo {
    float: left;
    margin-left: 10px;
    margin-bottom: 10px;
    display: block;
    padding: 5px;
    padding-top: 10px;
    background: #fff;
    width: 200px;
    height: 36px;
    text-decoration: none;
    border-radius: 5px;
    font-size: 14px;
    text-align: center;
    font-weight: bold;
}

.stepTo2 {
    float: left;
    margin-left: 10px;
    margin-bottom: 10px;
    display: block;
    padding: 5px;
    padding-top: 4px;
    background: #fff;
    width: 200px;
    height: 40px;
    border: 0;
    text-decoration: none;
    border-radius: 5px;
    font-size: 14px;
    text-align: center;
    font-weight: bold;
}

.hotelTitle {
    font-size: 16px;
    padding:0 0 15px;
    font-weight: bold;
}

.usp-block-header {
    width: 400px;
    font-size: 20px;
    font-weight: bold;
    margin-left: 95px;
}

.usps-hor {
    list-style: none;
}

.usps-hor-container img {
    float: left;
    margin: 10px;
}

.pp {
    line-height: 20px;
    margin-left: 58px;
    color: #000000;
    font-size: 12px;
    width: 400px;
    border-bottom: 1px dotted #B2BBD0;
}

#hotel_gorod_name {
    width: 230px;
}


.foundList {
    padding: 0;
    list-style: none;
    display: block;
    background: #fff;
    border: 1px solid #e5e5e5;
    position: absolute;
    top: 41px;
    left: 5px;
    text-align: left;
    width: 220px;
    border-radius: 4px;
    z-index: 999;
    display: none;
}

.foundList li {
    width: 220px;
    margin: 1px 0px;
    padding: 7px 0px;
}

.foundList li a {
    width: 210px;
    padding: 5px;
    display: block;
    text-decoration: none;
}

.foundList li a:hover {
    background: #e5e5e5;
}

.down_pod_title {
    font-family: Arial;
    color: var(--color-brand);
    font-size: 16px;
    font-weight: bold;
}

/* Enext .description-text-content — hotel detail prose */
.full_opisanie,
.hotel-detail__opisanie .description-text-content {
    margin: 0;
    padding: 0;
    font-family: "Source Sans Pro", sans-serif;
    font-size: 16px;
    font-weight: 300;
    line-height: 1.4;
    color: #263238;
    overflow-wrap: break-word;
    position: relative;
    overflow: hidden;
    transition: max-height 1s ease;
}

.hotel-detail__opisanie .description-text-wrapper {
    position: relative;
}

.full_opisanie.truncated,
.hotel-detail__opisanie .description-text-content.truncated {
    max-height: 20em;
}

.full_opisanie.truncated::after,
.hotel-detail__opisanie .description-text-content.truncated::after {
    content: "";
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    height: 2em;
    background: linear-gradient(to bottom, rgba(255, 255, 255, 0), rgba(255, 255, 255, 1));
    pointer-events: none;
}

.hotel-detail__opisanie .description-text-toggle-link,
.hotel-opisanie__toggle {
    margin-top: 4px;
    padding: 0;
    border: 0;
    background: none;
    color: #00416c;
    font-family: inherit;
    font-size: 14px;
    line-height: 1.4;
    text-decoration: underline;
    cursor: pointer;
    display: inline-block;
}

.hotel-detail__opisanie .description-text-toggle-link:hover,
.hotel-opisanie__toggle:hover,
.hotel-detail__opisanie .description-text-toggle-link:focus-visible,
.hotel-opisanie__toggle:focus-visible {
    color: var(--color-link-hover);
    text-decoration: none;
    outline: none;
}

.short_opisanie {
    text-align: justify;
    color: #263238;
    font-size: 12px;
    padding-left: 230px;
}

.short_opisanie p {
    margin: 0;
    padding: 0;
}

/* Inline subheads inside hotel description prose — layout only; sizes/weight from global h2–h4 */
.full_opisanie h2,
.full_opisanie h3,
.full_opisanie h4 {
    display: inline;
    margin-top: 15px;
    margin-bottom: 0;
    padding: 0;
    text-align: inherit;
}

.zatrud {
    font-size: 20px;
    color: var(--color-brand);
    text-align: center;
    margin: 30px 0;
}

/* Buttons */

.allhot {
width: 25%;
height: 35px;
font-size: 1.4em;
text-align: center;
border: solid 1px var(--color-brand);
border-radius: 8px;
color:#fff;
background: var(--color-brand);
outline: none;
text-decoration: none;
margin: 5px 0px 5px 7px;
}

.allhot:hover {
    background-color: #005e9f;
}

.button_hotel {
    box-sizing: border-box;
    float: left;
    width: 24%;
    max-width: 175px;
    min-height: 42px;
    margin: 5px 0 5px 7px;
    font-family: "Source Sans Pro", sans-serif;
    font-size: 16px;
    font-weight: 300;
    line-height: 19px;
    text-align: center;
    border: 1px solid #00416c;
    border-radius: 4px;
    background: #00416c;
    outline: none;
    text-decoration: none;
    transition: all 0.15s ease 0s;
}

/* Beat global a:hover { color: var(--color-link-hover) !important } — keep white on filled navy CTAs */
.button_hotel a:link,
.button_hotel a:visited,
.button_hotel a:hover,
.button_hotel a:focus,
.button_hotel a:focus-visible,
.button_hotel a:active {
    color: #fff !important;
    text-decoration: none;
    outline: none;
    background: transparent;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    min-height: 40px;
    padding: 0 16px;
    box-sizing: border-box;
    line-height: 19px;
    text-align: center;
    border-radius: 3px;
    transition: color 0.15s ease, background-color 0.15s ease;
}

.button_hotel:hover,
.button_hotel:focus-within {
    background: #007eb9;
    border-color: #007eb9;
}

.button_hotel:focus-within {
    outline: 2px solid rgba(0, 126, 185, 0.35);
    outline-offset: 2px;
}

.contact-table .contact_icon {
    max-width: 35px;
margin: 5px 10px;
}

a.contact_icon_link {
    text-decoration: none;
}

/* --- voprosi admin (questions / applications) --- */
.voprosi-nav {
    display: flex;
    flex-direction: column;
    gap: 10px;
    width: 100%;
}

.voprosi-nav__group {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.voprosi-nav__link,
.voprosi-nav__link:link,
.voprosi-nav__link:visited,
.voprosi-nav__link:hover,
.voprosi-nav__link:focus,
.voprosi-nav__link:focus-visible,
.voprosi-nav__link:active,
.voprosi-nav__link.is-active {
    text-decoration: none;
}

.voprosi-nav__link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 8px 12px;
    background: #f0f3f5;
    color: var(--color-brand);
    border: 1px solid #d7dee3;
    border-radius: 6px;
    font-size: 13px;
    font-weight: 500;
    line-height: 1.3;
}

/* Beat global a:hover { color: var(--color-link-hover) !important } */
.voprosi-nav__link:hover,
.voprosi-nav__link:focus-visible,
.voprosi-nav__link.is-active {
    background: var(--color-brand);
    border-color: var(--color-brand);
    color: #fff !important;
}

.voprosi-list {
    display: flex;
    flex-direction: column;
    gap: 12px;
    width: 100%;
}

.voprosi-card {
    padding: 14px 16px;
    background: #fff;
    border: 1px solid #d7dee3;
    border-radius: 6px;
    box-shadow: 0 2px 8px rgba(var(--color-brand-rgb), 0.12);
}

.voprosi-card__meta {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    gap: 8px 16px;
    margin: 0 0 10px;
}

.voprosi-card__id {
    font-size: 14px;
    font-weight: 700;
    color: var(--color-brand);
}

.voprosi-date {
    color: var(--color-accent);
    font-weight: 700;
    font-size: 13px;
}

.voprosi-card__subject {
    margin: 0 0 10px;
    font-size: 16px;
    line-height: 1.45;
    color: #222;
    word-break: break-word;
}

/* Label/value blocks converted from legacy <table> in subject HTML */
.voprosi-fields {
    display: flex;
    flex-direction: column;
    margin: 8px 0 0;
    border: 1px solid #d7dee3;
    border-radius: 6px;
    overflow: hidden;
    background: #fff;
}

.voprosi-field {
    display: grid;
    grid-template-columns: minmax(120px, 38%) minmax(0, 1fr);
    gap: 6px 14px;
    padding: 8px 12px;
    border-top: 1px solid #e8eef1;
    font-size: 13px;
    line-height: 1.4;
}

.voprosi-field:first-child {
    border-top: none;
}

.voprosi-field__label {
    color: #000;
    font-weight: 500;
}

.voprosi-field__label b,
.voprosi-field__label strong {
    font-weight: 500;
}

.voprosi-field__value {
    color: #222;
    word-break: break-word;
}

.voprosi-field--full {
    grid-template-columns: 1fr;
}

.voprosi-card__form {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.voprosi-card__label {
    display: block;
    font-size: 13px;
    font-weight: 500;
    color: var(--color-brand);
}

.voprosi-card__textarea {
    display: block;
    width: 100%;
    max-width: 100%;
    box-sizing: border-box;
    margin: 0;
    padding: 10px 12px;
    min-height: 72px;
    border: 1px solid #d7dee3;
    border-radius: 6px;
    background: #fff;
    color: #333;
    font-size: 16px;
    line-height: 1.45;
    font-family: inherit;
    resize: vertical;
    transition: border-color 0.15s ease, box-shadow 0.15s ease;
}

.voprosi-card__textarea:hover {
    border-color: var(--color-accent);
}

.voprosi-card__textarea:focus {
    outline: none;
    border-color: var(--color-brand);
    box-shadow: 0 0 0 2px rgba(var(--color-accent-rgb), 0.35);
}

.voprosi-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    margin: 0;
    padding: 7px 14px;
    border: 1px solid #d7dee3;
    border-radius: 6px;
    background: #f0f3f5;
    color: var(--color-brand);
    font-size: 13px;
    font-weight: 500;
    font-family: inherit;
    line-height: 1.3;
    text-decoration: none;
    cursor: pointer;
    appearance: none;
    -webkit-appearance: none;
    transition: background 0.15s ease, border-color 0.15s ease, color 0.15s ease;
}

.voprosi-btn:hover {
    text-decoration: none;
}

/* Beat global a:hover { color: var(--color-link-hover) !important } */
.voprosi-btn--primary {
    background: var(--color-brand);
    border-color: var(--color-brand);
    color: #fff !important;
}

.voprosi-btn--primary:hover,
.voprosi-btn--primary:focus,
.voprosi-btn--primary:focus-visible,
.voprosi-btn--primary:active {
    background: var(--color-accent);
    border-color: var(--color-accent);
    color: #fff !important;
}

.voprosi-btn--danger {
    background: #fff;
    border-color: #d7dee3;
    color: #8a3a3a;
}

.voprosi-btn--danger:hover {
    background: #faf5f5;
    border-color: #c07070;
    color: #7a2e2e;
}

.voprosi-card__note {
    margin: 0 0 10px;
    font-size: 14px;
    line-height: 1.45;
    color: #333;
    word-break: break-word;
}

.voprosi-card__actions {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 10px 14px;
    margin-top: 4px;
}

.voprosi-card__link {
    color: var(--color-brand);
    font-size: 13px;
    font-weight: 500;
    text-decoration: none;
}

.voprosi-card__link:hover {
    color: var(--color-accent);
    text-decoration: underline;
}

.voprosi-card__danger {
    color: #a33;
    font-size: 13px;
    font-weight: 500;
    text-decoration: none;
}

.voprosi-card__danger:hover {
    text-decoration: underline;
}

.voprosi-flash {
    margin: 8px 0;
    padding: 10px 12px;
    background: #f0f7fa;
    border: 1px solid var(--color-accent);
    border-radius: 6px;
    color: var(--color-brand);
    font-size: 14px;
}

.voprosi-search {
    display: flex;
    flex-direction: column;
    gap: 8px;
    margin: 0 0 14px;
    padding: 12px 14px;
    background: #fff;
    border: 1px solid #d7dee3;
    border-radius: 6px;
    box-shadow: 0 2px 8px rgba(var(--color-brand-rgb), 0.08);
    max-width: 100%;
    box-sizing: border-box;
}

.voprosi-search__label {
    font-size: 13px;
    font-weight: 500;
    color: #000;
}

.voprosi-search__row {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px;
    min-width: 0;
}

.voprosi-search__input {
    flex: 1 1 200px;
    min-width: 0;
    max-width: 100%;
    box-sizing: border-box;
    margin: 0;
    padding: 10px 12px;
    border: 1px solid #b4b4b4;
    border-radius: 6px;
    background: #fbfbfb;
    color: #333;
    font-size: 16px;
    line-height: 1.3;
    font-family: inherit;
}

.voprosi-search__input:hover {
    border-color: var(--color-accent);
}

.voprosi-search__input:focus {
    outline: none;
    border-color: var(--color-brand);
    box-shadow: 0 0 0 2px rgba(var(--color-accent-rgb), 0.35);
}

.voprosi-pager {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 10px 14px;
    margin: 14px 0 4px;
    max-width: 100%;
}

.voprosi-pager__info {
    font-size: 13px;
    font-weight: 500;
    color: var(--color-brand);
}

.voprosi-pager__links {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    min-width: 0;
}

.voprosi-pager__link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 36px;
    min-height: 36px;
    padding: 6px 10px;
    box-sizing: border-box;
    background: #f0f3f5;
    color: var(--color-brand);
    text-decoration: none;
    border: 1px solid #d7dee3;
    border-radius: 6px;
    font-size: 13px;
    font-weight: 500;
    line-height: 1.2;
}

.voprosi-pager__link:hover,
.voprosi-pager__link:focus-visible {
    background: var(--color-accent);
    border-color: var(--color-accent);
    color: #fff !important;
    text-decoration: none;
}

.voprosi-pager__link.is-active {
    background: var(--color-brand);
    border-color: var(--color-brand);
    color: #fff !important;
}

.comment-date {
    margin-bottom: 5px;
}

/* ---Mobile--- */
@media(max-width: 991px){
    .voprosi-card__meta {
        flex-direction: column;
        gap: 4px;
    }

    .voprosi-field {
        grid-template-columns: 1fr;
        gap: 2px;
    }

    .cat-grid {
        grid-template-columns: 1fr;
    }

    .hotel-list,
    .hotel-list--admin {
        --hotel-list-flag-w: 36px;
        --hotel-list-cols: minmax(0, 1fr) minmax(0, 0.4fr) var(--hotel-list-flag-w) var(--hotel-list-flag-w) var(--hotel-list-flag-w) var(--hotel-list-flag-w);
        overflow: visible;
    }

    @media (max-width: 767px) {
        .hotel-list,
        .hotel-list--admin {
            --hotel-list-flag-w: 34px;
        }
    }

    @media (max-width: 576px) {
        .hotel-list,
        .hotel-list--admin {
            --hotel-list-flag-w: 32px;
            --hotel-list-cols: minmax(0, 1fr) var(--hotel-list-flag-w) var(--hotel-list-flag-w) var(--hotel-list-flag-w) var(--hotel-list-flag-w);
        }

        .hotel-list__head .hotel-list__addr,
        .hotel-list__row .hotel-list__addr {
            display: none;
        }
    }

    .hotel-card,
    .special_hot:not(.hotel-card) {
        width: calc(50% - 12px);
        max-width: none;
    }

    .hotel-preview {
        flex-direction: column;
        align-items: stretch;
    }

    .hotel-preview__media {
        flex-basis: auto;
        width: 100%;
        max-width: none;
    }

    .hotel-preview__media-inner {
        height: 160px;
        margin: 16px 16px 0;
    }

    .hotel-preview__meta {
        flex-direction: row;
        justify-content: flex-end;
        padding: 0 18px 16px;
    }

    .adm-cats-form__row {
        grid-template-columns: 1fr;
        gap: 4px;
    }

    .adm-cats-form__label {
        white-space: normal;
        padding-top: 0;
    }

    .adm-cats-form__input,
    .adm-cats-form__textarea,
    .adm-cats-form__select {
        max-width: 100%;
    }

    .adm-cats-form__actions {
        padding-left: 0;
    }

    .adm-cats-list__head,
    .adm-cats-list__row {
        grid-template-columns: minmax(0, 1fr) auto;
        grid-template-areas:
            "name name"
            "access actions";
        padding: 10px 12px;
    }

    .adm-cats-list__row.tbl1,
    .adm-cats-list__row.tbl2 {
        padding: 10px 12px;
    }

    .adm-cats-list__name { grid-area: name; }
    .adm-cats-list__access { grid-area: access; text-align: left; }
    .adm-cats-list__actions { grid-area: actions; text-align: right; }


    .site-body {
        display: block;
        padding: 8px 10px 16px;
    }

    .side-border-left,
    .side-border-right,
    td.side-border-left,
    td.side-border-right {
        display: none !important;
    }
    
    .main-bg,
    .main-bg-adm,
    td.main-bg,
    td.main-bg-adm {
        display: block;
        width: 100%;
        max-width: 100%;
        flex: none;
        box-sizing: border-box;
    }
    .opis-border {
        font-size: 16px;
        line-height: 19px;
        display: block;
    }
    
    a.h2link {
        font-size:17px;
        font-weight:400;
    }
    
    .contact-table,
    .contact-table__cell {
    font-size:17px;
    }
    
    .short_opisanie {
        text-justify: left;
    }
    .full_opisanie,
    .hotel-detail__opisanie .description-text-content {
        font-size: 16px;
        line-height: 1.4;
    }
    .opis-border .full_opisanie b {
        font-size: 16px!important;
    }
    
    .full_opisanie p,
    .opis-border .full_opisanie p,
    .hotel-detail__opisanie .description-text-content p {
        font-size: 16px;
        line-height: 1.4;
    } 
    
    .zatrud {
        font-size: 23px;
        color: var(--color-brand);
        text-align: center;
        margin: 30px 0;
    }
    .opis-border p {
        font-size: 16px;
        line-height: 19px;
    }
    .opis-border td {
        font-size: 26px;
    }
    .tbl1,.tbl2 {
        font-size: 17px;
    }
    
    table .hotel-table th {
        font-size:23px;
    }
    table .hotel-table {
        font-size:23px;
    }
    
    table .hotel-table tr td,.contact-table,.contact-table__cell {
        font-size:23px;
    }
    
    .allhot {
        float: none;
        font-size: 2em;
        width: 50%!important;
        margin: 10px 0;
        height: 50px;
    }
    .button_hotel {
        float: none;
        width: 100% !important;
        max-width: 100%;
        min-height: 40px;
        margin: 0;
        font-size: 13px;
    }

    .button_hotel a:link,
    .button_hotel a:visited {
        min-height: 38px;
        padding: 10px 13px;
    }

    #ssylki .button_hotel {
        flex: 1 1 100%;
        max-width: 100%;
        min-width: 0;
    }
    .contact-table .contact_icon {
    width: 35px;
    height: 35px;
    max-width: 35px !important;
    margin: 5px 10px;
    }
}

/* =========================================
   PRICE PAGE
   ========================================= */

.navigator-price {
    max-width: 850px;
    margin: 20px auto 30px;
    color: #333;
    font-size: 15px;
    line-height: 1.5;
    background: transparent;
}

.navigator-price-title {
    text-align: center;
    margin: 0 0 25px;
    padding: 0;
    background: transparent !important;
}

.navigator-price-title h1 {
    margin: 0;
    padding: 0;
    color: #000000;
    font-size: 25px;
    line-height: 1.35;
    font-weight: normal;
    background: transparent !important;
}

.navigator-price-table {
    width: 100%;
    border-collapse: separate;
    border-spacing: 0;
    background: #fff;
    border-radius: 8px;
    overflow: hidden;
    box-shadow: -1px 6px 7px 0px rgb(0 0 0 / 8%);
}

.navigator-price-table th {
    padding: 15px 20px;
    background: #0e537b;
    color: #fff;
    font-size: 14px;
    font-weight: bold;
    text-align: left;
}

.navigator-price-table th:last-child {
    width: 180px;
    text-align: right;
}

.navigator-price-table td {
    padding: 16px 20px;
    border-bottom: 1px solid #edf0f2;
    background: #fff;
    vertical-align: middle;
}

.navigator-price-table tr:last-child td {
    border-bottom: 0;
}

.navigator-price-table tr:hover td {
    background: #fff;
}

.navigator-price-value {
    text-align: right;
    white-space: nowrap;
    color: #000000;
    font-size: 18px;
    font-weight: bold;
}

.navigator-price-rub {
    font-size: 14px;
    font-weight: normal;
}

.navigator-price-partner {
    margin-top: 25px;
    padding: 24px 28px;
    background: #fbfbfb;
    border-radius: 8px;
    box-shadow: -1px 6px 7px 0px rgb(0 0 0 / 8%);
}

.navigator-price-partner-title {
    margin: 0 0 10px;
    padding: 0;
    color: #000000;
    font-size: 19px;
    line-height: 1.4;
    font-weight: bold;
    background: transparent !important;
}

.navigator-price-partner-percent {
    margin: 5px 0 15px;
    padding: 0;
    color: #3090c7;
    font-size: 18px;
    line-height: 1.4;
    font-weight: bold;
    background: transparent !important;
}

.navigator-price-partner p {
    margin: 8px 0;
    padding: 0;
    background: transparent !important;
}

.navigator-price-partner ul {
    margin: 10px 0 0 20px;
    padding: 0;
    background: transparent !important;
}

.navigator-price-partner li {
    margin: 5px 0;
    padding: 0;
    background: transparent !important;
}

.navigator-price-contacts {
    margin-top: 25px;
    padding: 5px 10px;
    text-align: center;
    color: #555;
    background: transparent !important;
}

.navigator-price-contacts a {
    color: #3090c7;
    text-decoration: none;
    background: transparent !important;
}

.navigator-price-contacts a:hover {
    color: var(--color-brand);
    text-decoration: underline;
}


/* =========================================
   МОБИЛЬНАЯ ВЕРСИЯ
   ========================================= */

@media screen and (max-width: 600px) {

    .navigator-price {
        margin: 15px 10px 25px;
    }

    .navigator-price-title h1 {
        font-size: 21px;
    }

    .navigator-price-table th,
    .navigator-price-table td {
        padding: 12px 10px;
    }

    .navigator-price-table th:last-child {
        width: 120px;
    }

    .navigator-price-value {
        font-size: 16px;
    }

    .navigator-price-partner {
        padding: 18px 15px;
    }

    .navigator-price-partner-title {
        font-size: 18px;
    }

    .navigator-price-partner-percent {
        font-size: 17px;
    }

}


/* =========================================
   Merged from /newdiz/style.css
   (site template no longer loads /newdiz/style.css)
   ========================================= */

.111 {
padding: 0;
border: 0.5px solid #cdcfd1;
box-shadow: 0px 1px 2px #a7a8aa;
margin: 10px 0;
background-color: white;
}

/* site-header — light bar (logo | nav | cabinet); full-width search band below */
.site-header {
    position: relative;
    background: #fff;
    color: var(--color-brand);
    border-bottom: 1px solid rgba(var(--color-brand-rgb), 0.12);
}

.site-header__bar {
    display: flex;
    flex-wrap: nowrap;
    align-items: center;
    justify-content: space-between;
    gap: 12px 20px;
    width: 100%;
    max-width: var(--page-content-max);
    margin: 0 auto;
    padding: 12px 24px;
    box-sizing: border-box;
    background: #fff;
    color: var(--color-brand);
}

.site-header__logo {
    flex: 0 0 auto;
    order: 1;
    line-height: 0;
}

.site-header__logo a {
    display: inline-block;
    line-height: 0;
    padding: 0;
    background: transparent;
    border-radius: 0;
}

.nw_logo {
    display: block;
    max-width: 240px;
    width: 100%;
    height: auto;
}

.site-header__search {
    width: 100%;
    margin: 0;
    padding: 12px 24px 14px;
    box-sizing: border-box;
    border-top: 1px solid rgba(var(--color-brand-rgb), 0.12);
    background: #f7f7f7;
}

.site-header__search .site-header__search-form {
    max-width: 640px;
    margin: 0 auto;
}

@media (min-width: 1200px) {
  .site-header__bar {
    padding-left: 32px;
    padding-right: 32px;
  }

  .site-header__search {
    padding-left: 32px;
    padding-right: 32px;
  }
}

.site-header__cabinet {
    flex: 0 0 auto;
    order: 5;
    margin-left: 0;
}

.site-header__cabinet-link,
.site-header__cabinet-link:link,
.site-header__cabinet-link:visited {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 0;
    color: var(--color-brand);
    text-decoration: none;
    font-size: var(--font-size-small);
    line-height: 1.2;
    border: 0;
    border-radius: 0;
    background: none;
    transition: color .15s ease;
}

.site-header__cabinet-link:hover,
.site-header__cabinet-link:focus {
    color: var(--color-accent);
    background: none;
    border: 0;
}

.site-header__cabinet-icon {
    display: block;
    flex: 0 0 28px;
    width: 28px;
    height: 28px;
    color: inherit;
}

.site-header__cabinet-text {
    max-width: 7.5em;
    color: inherit;
}

.nw_tic {
    color:var(--color-brand);
}

.nw_tel a {
    color: #fff;
    text-decoration: none;
}

.nw_tel a:visited {
    color: var(--color-brand);
}

.nw_tel a:link {
    color: var(--color-brand);
}

.nw_tel a:hover {
    color: var(--color-accent);
    text-decoration: underline;
}

.nw_login {
    text-decoration: none;
    font-size: 12px;
    color: var(--color-brand) !important;
}

.nw_login:hover {
    color: var(--color-accent) !important;
}

.nw_bline {
    height: 1px;
    width: 100%;
    background: #40cdf7;
    margin-top: 30px;
}

.site-header__nav,
.nw_topmenu {
    display: flex;
    flex: 1 1 auto;
    flex-wrap: nowrap;
    justify-content: center;
    align-items: center;
    gap: 2px 4px;
    order: 2;
    min-width: 0;
    margin: 0;
    padding: 0 4px;
    box-sizing: border-box;
    text-align: center;
    overflow: hidden;
}

.site-header__nav a,
.nw_topmenu a {
    display: inline-block;
    margin: 0;
    padding: 8px 12px;
    text-decoration: none;
    font-size: var(--font-size-small);
    font-weight: 400;
    color: var(--color-brand) !important;
    border-radius: 6px;
    border: 1px solid transparent;
    white-space: nowrap;
    transition: color .15s ease, background-color .15s ease, border-color .15s ease;
    box-sizing: border-box;
}

.site-header__nav a:hover,
.nw_topmenu a:hover {
    color: var(--color-link) !important;
    background: #fff;
    border: 1px solid var(--enext-btn);
}

.site-header__menu-toggle {
    display: none;
    flex: 0 0 auto;
    order: 4;
    align-items: center;
    justify-content: center;
    width: 44px;
    height: 44px;
    margin: 0;
    padding: 0;
    border: 1px solid transparent;
    border-radius: 8px;
    background: transparent;
    color: var(--color-brand);
    cursor: pointer;
    box-sizing: border-box;
    transition: color .15s ease, background-color .15s ease, border-color .15s ease;
}

.site-header__menu-toggle:hover,
.site-header__menu-toggle:focus {
    color: var(--color-brand);
    background: rgba(var(--color-brand-rgb), 0.06);
    border-color: rgba(var(--color-brand-rgb), 0.2);
    outline: none;
}

.site-header__menu-toggle:focus-visible {
    outline: 2px solid var(--color-accent);
    outline-offset: 2px;
}

.site-header__menu-toggle-box {
    position: relative;
    display: block;
    width: 22px;
    height: 16px;
}

.site-header__menu-toggle-bar {
    position: absolute;
    left: 0;
    display: block;
    width: 100%;
    height: 2px;
    border-radius: 1px;
    background: currentColor;
    transition: transform .2s ease, opacity .15s ease, top .2s ease;
}

.site-header__menu-toggle-bar:nth-child(1) { top: 0; }
.site-header__menu-toggle-bar:nth-child(2) { top: 7px; }
.site-header__menu-toggle-bar:nth-child(3) { top: 14px; }

.site-header.is-nav-open .site-header__menu-toggle-bar:nth-child(1) {
    top: 7px;
    transform: rotate(45deg);
}

.site-header.is-nav-open .site-header__menu-toggle-bar:nth-child(2) {
    opacity: 0;
}

.site-header.is-nav-open .site-header__menu-toggle-bar:nth-child(3) {
    top: 7px;
    transform: rotate(-45deg);
}

.site-header__nav-backdrop {
    display: none;
}

/* Desktop ≥992: bar space-between; overflow → is-nav-compact hamburger */
@media (min-width: 992px) {
  .site-header__bar {
    flex-wrap: nowrap;
    justify-content: space-between;
    gap: 16px 20px;
  }

  .site-header__nav,
  .nw_topmenu {
    flex: 1 1 auto;
    justify-content: center;
  }

  .site-header.is-nav-compact {
    z-index: 40;
  }

  .site-header.is-nav-compact .site-header__bar {
    position: relative;
    z-index: 42;
  }

  .site-header.is-nav-compact .site-header__menu-toggle {
    display: inline-flex;
  }

  .site-header.is-nav-compact .site-header__nav,
  .site-header.is-nav-compact .nw_topmenu {
    display: none;
    position: absolute;
    top: 100%;
    left: 0;
    right: 0;
    z-index: 41;
    flex: none;
    flex-direction: column;
    flex-wrap: nowrap;
    align-items: stretch;
    justify-content: flex-start;
    gap: 0;
    order: 0;
    margin: 0;
    padding: 8px 24px 12px;
    min-width: 0;
    overflow: visible;
    background: #fff;
    border-bottom: 1px solid rgba(var(--color-brand-rgb), 0.12);
    box-shadow: 0 12px 28px rgba(var(--color-brand-rgb), 0.12);
    text-align: left;
    box-sizing: border-box;
  }

  .site-header.is-nav-compact.is-nav-open .site-header__nav,
  .site-header.is-nav-compact.is-nav-open .nw_topmenu {
    display: flex;
  }

  .site-header.is-nav-compact .site-header__nav a,
  .site-header.is-nav-compact .nw_topmenu a {
    display: block;
    flex: none;
    width: 100%;
    margin: 0;
    padding: 12px 10px;
    font-size: 14px;
    white-space: normal;
    border-radius: 6px;
    border-bottom: 1px solid rgba(var(--color-brand-rgb), 0.1);
    box-sizing: border-box;
  }

  .site-header.is-nav-compact .site-header__nav a:last-child,
  .site-header.is-nav-compact .nw_topmenu a:last-child {
    border-bottom: none;
  }

  .site-header.is-nav-compact .site-header__nav-backdrop {
    display: block;
    position: fixed;
    inset: 0;
    z-index: 39;
    background: rgba(0, 20, 40, 0.28);
  }

  .site-header.is-nav-compact .site-header__nav-backdrop[hidden] {
    display: none !important;
  }

  html.is-header-nav-open,
  html.is-header-nav-open body {
    overflow: hidden;
  }
}

/* site-footer — full-width modern footer */
.site-footer {
    width: 100%;
    margin: 0;
    padding: 0;
    background: var(--color-brand);
    color: #e8f2f7;
    box-sizing: border-box;
}

.site-footer a {
    color: #e8f2f7;
    text-decoration: none;
}

.site-footer a:hover,
.site-footer a:focus {
    color: var(--color-accent);
}

.site-footer__main {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-start;
    justify-content: space-between;
    gap: 28px 40px;
    width: 100%;
    max-width: var(--page-content-max);
    margin: 0 auto;
    padding: 36px 24px 28px;
    box-sizing: border-box;
}

.site-footer__brand {
    flex: 0 1 240px;
    min-width: 180px;
    max-width: 280px;
}

.site-footer__logo-link {
    display: inline-block;
    line-height: 0;
    padding: 10px 12px;
    background: #fff;
    border-radius: 8px;
}

.site-footer__logo {
    display: block;
    max-width: 180px;
    width: 100%;
    height: auto;
}

.site-footer__tagline {
    margin: 12px 0 0;
    padding: 0;
    font-size: 12px;
    line-height: 1.45;
    color: rgba(232, 242, 247, 0.78);
}

.site-footer__menus {
    display: flex;
    flex: 1 1 auto;
    flex-wrap: wrap;
    justify-content: center;
    gap: 24px 40px;
    min-width: 0;
}

.site-footer__col,
.site-footer__contacts {
    flex: 0 1 auto;
    min-width: 140px;
}

.site-footer__contacts {
    flex: 0 1 220px;
}

.site-footer__col-title {
    margin: 0 0 12px;
    font-size: 13px;
    font-weight: 700;
    letter-spacing: 0.02em;
    color: #fff;
}

.site-footer__list {
    list-style: none;
    margin: 0;
    padding: 0;
}

.site-footer__list li {
    margin: 0 0 8px;
    padding: 0;
    font-size: 13px;
    line-height: 1.35;
}

.site-footer__list--contacts li span {
    color: rgba(232, 242, 247, 0.85);
}

.site-footer__bottom {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 12px 24px;
    width: 100%;
    max-width: none;
    margin-left: 0;
    margin-right: 0;
    padding: 14px 24px 18px;
    padding-left: max(24px, calc((100% - var(--page-content-max)) / 2 + 24px));
    padding-right: max(24px, calc((100% - var(--page-content-max)) / 2 + 24px));
    box-sizing: border-box;
    border-top: 1px solid rgba(var(--color-accent-rgb), 0.35);
    background: rgba(0, 0, 0, 0.12);
}

.site-footer__legal {
    display: flex;
    flex-wrap: wrap;
    gap: 8px 20px;
    font-size: 12px;
}

.site-footer__legal a {
    color: rgba(232, 242, 247, 0.85);
}

.site-footer__copy {
    font-size: 12px;
    color: rgba(232, 242, 247, 0.7);
    white-space: nowrap;
}

@media (min-width: 1200px) {
  .site-footer__main {
    padding-left: 52px;
    padding-right: 52px;
  }

  .site-footer__bottom {
    padding-left: max(52px, calc((100% - var(--page-content-max)) / 2 + 52px));
    padding-right: max(52px, calc((100% - var(--page-content-max)) / 2 + 52px));
  }
}

.pageContent {
    padding: 10px 0 0;
}

#searchList2 {
    width: 200px;
    top: 28px;
    left: 0px;
}

#searchList2 li {
    width: 200px;
}

#searchList2 li a {
    width: 190px;
}

.top_poisk {
    width: 230px;
    background: #3090c7;
    border-radius: 5px;
    margin-bottom: 10px;
}

.tp_title {
    color: #fff;
    font-size: 12px;
    font-weight: bold;
    padding: 10px 0 0 40px;
}

.top_poisk label {
    color: #fff;
    font-size: 12px;
}

.ssb {
    top: 2px;
    left: 178px;
    background: #fff;
    color: #3090c7;
}

.ssb:hover {
    color: #fff;
    background: #40cdf7;
}

.fs {
    background: #f5f5f5;
    margin-left: 5px;
}

.sHotel {
    margin: 4px 5px;
    padding: 5px;
    clear: both;
    border: 1px solid #bec8d2;
    border-radius: 5px;
}

.sHotel:hover {
    background: #f2f4f8;
}

.sFoto {
    float: left;
    width: 200px;
    height: 150px;
    margin-right: 10px;
}

.sTitle {
    margin: 5px 0;
    font-size: 16px;
    font-weight: bold;
}

.sTitle a {
    color: #3090c7;
}

.sTitle a:hover {
    color: #40cdf7;
}

.sGorod {
    font-size: 12px;
    font-weight: bold;
    color: #0772a1;
    margin-bottom: 5px;
}

.sText {
    height: 40px;
    overflow: hidden;
    color: #696969;
    margin-bottom: 5px;
}

.typeNomer {
    font-size: 11px;
    color: #003580;
}

.sType {
    position: relative;
    border-radius: 5px;
    text-align: center;
    margin-left: 210px;
    width: 120px;
    height: 15px;
    background: #56ce1a;
    padding: 2px;
    color: #fff;
    font-size: 11px;
    font-weight: bold;
}

.sType:after {
    content: '.';
    text-indent: -9999999px;
    position: absolute;
    bottom: -6px;
    left: 8px;
    width: 0;
    height: 0;
    border-style: solid;
    border-width: 8px 8px 0 8px;
    border-color: #56ce1a transparent transparent transparent;
}

.sPrice {
    text-align: center;
    width: 200px;
    margin-left: 120px;
    margin-top: 8px;
    color: #003580;
    font-size: 16px;
    font-weight: bold;
}

.sLink {
    float: right;
    position: relative;
    text-align: center;
    margin-right: 10px;
    margin-top: -20px;
    width: 120px;
    height: 19px;
    background: #0896ff;
    padding: 2px;
    color: #fff;
    font-size: 14px;
    font-weight: bold;
    border: 2px solid #fff;
    box-shadow: 0 0 4px #a0a0a0;
}

.sLink:hover {
    background: #003580;
}

.sLink a {
    color: #fff;
    text-decoration: none;
}

.sOstalos {
    float: right;
    margin: -14px 10px 0 0;
    font-size: 12px;
    font-weight: bold;
    color: red;
}

.dialog-confirm {
    display: none;
}

.deleteNomer {
    visibility: hidden;    
    margin-right: 2px;
    float: right;
    background: url(images/delete.gif) 0 0 no-repeat;
    display: inline-block;
    width: 16px;
    height: 16px;
    text-indent: -99999999px;
}

.deleteNomer2 {
    visibility: visible;
}

.uTable thead {
    font-weight: bold;
}

.uTable thead tr {
    background: yellow;
}

.uTable thead tr td {
    height: 20px;
    font-size: 12px;
    vertical-align: middle;
    text-align: center;
}

.uTable tbody tr {
    cursor: pointer;
    background: #fbfbfb;
}

.uTable tbody tr:hover {
    background: #ceeaff;
}

.uTable tbody tr td {
    height: 20px;
    vertical-align: middle;
    text-align: center;
}

.rowOfdays tr {
    background: #fff;
}

.rowOfdays tr:hover {
    background: #fff !important;
}

.rowOfdays tr td {
    width: 30px !important;
    border: 1px solid #555;
}

.curBGday {
    background: #333333;
    color: #fff;
}

.rowOfdays tr {
    background: none !important;
}

.rowOfdays tr:hover {
    background: none !important;
}

.rowOfdays2 {
    background: transparent !important;
}

.rowOfdays2 tr {
    background: transparent !important;
}

.rowOfdays2 tr td {
    width: 30px !important;
    border: 1px solid #f0f0f0;
}

.rowOfdays2 tr td:hover {
    background: #f0f0f0;
    color: red;
}

.ajax_text {
    display: block;
    width: 350px;
    margin: 0 auto;
}

#n_m_prev {
    float: left;
    margin-left: 5px;
}

#n_m_next {
    float: right;
    margin-right: 5px;
}

.n_type {
    float: left;
    padding-left: 5px;
}

.dTable thead {
    vertical-align: middle;
    background: #3090c7;
    color: #fff;
    font-weight: bold;
}

.dTable thead tr {
    height: 30px;
}

.dTable thead tr td {
    font-size: 12px;
    padding-left: 5px;
}

.dTable tbody tr {
    height: 50px;
    background: #fbfbfb;
}

.dTable tbody tr:hover {
    background: #ceeaff;
}

.dTable tbody tr td {
    padding-left: 5px;
}

.d_bronirivat {
    width: 100px;
    margin: 0 auto;
    text-decoration: none;
    display: block;
    padding: 3px 5px 4px;
    text-align: center;
    background: #3090c7;
    border: 1px solid #3090c7;
    color: #fff !important;
    font-weight: bold;
    font-size: 12px;
}

.d_bronirivat:hover {
    background: #fff;
    color: #3090c7 !important;
}

.hotelOrder-head {
    width: 960px;
    margin: 10px auto;
    height: 125px;
}

.hotelOrder-left {
    width: 678px;
    height: 116px;
    padding: 9px 0 0 12px;
    float: left;
    background: #f2f2f2;
    border-right: 1px solid #769150;
    border-top-left-radius: 5px;
    position: relative;
}

.hotelOrder-right {
    width: 217px;
    height: 103px;
    padding: 11px 25px;
    float: left;
    background: #edf6d9;
    border-left: 1px solid #fff;
    border-top-right-radius: 5px;
}

.hotelOrder-img {
    float: left;
    width: 110px;
    height: 110px;
    margin-right: 10px;
}

.ho-name {
    font-weight: bold;
    font-size: 16px;
    color: #045398;
}

.ho-name a {
    color: #045398;
}

.ho-name a:hover {
    color: #000;
}

.ho-adres {
    color: #555;
    font-style: italic;
}

.hotelOrder-nomerType {
    margin-top: 5px;
    font-weight: bold;
    font-size: 12px;
}

.hotelOrder-period {
    font-size: 15px;
    font-weight: bold;
    color: #4b6f17;
    margin-top: 5px;
}

.hotelOrder-itogPrice-title {
    font-size: 12px;
    font-weight: bold;
}

.hotelOrder-itogPrice {
    font-size: 20px;
    font-weight: bold;
    margin: 5px 0;
}

.hotelOrder-itogPrice-pred {
    width: 198px;
    font-size: 12px;
    border-bottom: 1px dashed;
    cursor: pointer;
}

.hotelOrder-itogPrice-pravila {
    margin-top: 5px;
}

.hotelOrder-body {
    width: 940px;
    margin: 10px auto;
    background: #f2f2f2;
    border-bottom-left-radius: 5px;
    border-bottom-right-radius: 5px;
    padding: 10px;
}

.hotelOrder-input {
    margin: 5px;
}

.hotelOrder-input label {
    margin-left: 5px;
}

.hotelOrder-input-submit {
    font-size: 1.5em;
    font-weight: 300;
    font-family: arial;
    width: 151px;
    border-radius: 7px;
    background: #3090c7;
    outline: none;
    color: #fff;
    border: solid 1px #3090c7;
    margin: 5px;
    padding: 5px 0;
    cursor: pointer;
}

.hotelOrder-full {
    width: 960px;
    margin: 10px auto;
    background: #f2f2f2;
    border-radius: 5px;
    padding: 10px;
}

.wo-border {
    border: 0;
}

.hotelOrder-id-zakaza {
    font-size: 14px;
    font-weight: bold;
    padding: 10px;
}

.priezd-ico {
    width: 22px;
    height: 15px;
    display: inline-block;
    background: url(images/ico22x15.png) top left no-repeat;
    margin: 0px 5px 0 0;
}

.uezd-ico {
    width: 22px;
    height: 15px;
    display: inline-block;
    background: url(images/ico22x15.png) top right no-repeat;
    margin: 0px 5px 0 0;
}

.hotelOrder-hr {
    width: 100%;
    height: 1px;
    border-bottom: solid 1px #ccc;
    margin: 10px 0;
}

.hotelOrder-info {
    padding: 10px;
}

.hotelOrder-info2 {
    padding: 0;
}

.delete-bron {
    float: right;
    margin-right: 0px;
}

.delete-bron:hover {
    color: #ff0000;
}

.hotelOrder-table-info {
    width: 700px;
    margin: 0px auto;
}

.hotelOrder-price-title {
    font-size: 14px;
}

.hotelOrder-price-cena {
    font-weight: bold;
    margin-bottom: 10px;
}

.hotelOrder-price-cena-zanomer {
    margin: 5px 0;
}

.hotelOrder-price-komissia {
    margin: 5px 0;
}

#change-dates {
    font-size: 12px;
}

#change-dates-primenit {
    display: block;
    padding: 8px 10px 10px;
    background: #97d2e4;
    width: 75px;
    text-decoration: none;
    margin-left: 8px;
    border-radius: 5px;
}

#change-dates-primenit:hover {
    color: #fff;
    background: #548ca5;
}

.hotelOrder-izmenit {
    width: 180px;
    padding: 5px;
    background: #f3f3f3;
    float: right;
    margin: 5px 10px 0 0;
    border-radius: 5px;
    box-shadow: 0px 0px 2px #999;
}

.bron-ul {
    list-style: decimal;
}

.bron-ul li {
    height: 20px;
    margin: 2px 0;
}

.hotelOrder-button {
    text-decoration: none;
    padding: 2px 5px 4px;
    border-radius: 2px;
    text-align: center;
    border: 1px solid #333;
    color: #333;
    font-weight: bold;
}

.hotelOrder-button:hover {
    color: #4b6f17;
    border: 1px solid #4b6f17;
}

.from-zakazDate {
    color: #b17049;
    font-size: 11px;
}

.ps-relative {
    position: relative;
}

.obrab_overlay {
    top: 50%;
    left: 50%;
    margin: -220px 0 0 -271px;
    position: absolute;
    width: 542px;
    height: 413px;
    background: url(images/obrabot.png) 0 0 no-repeat;
}

.uplImgs {
    margin: 5px 18px;
}

.fImgs {
    margin: 0 2px;
    width: 60px;
}

.td-sType {
    cursor: pointer;
}

.fOpisanie {
    font-weight: bold;
}

.fl {
    float: left;
}

.fr {
    float: right;
}

.pageView p {
    font-size: 15px;
}

.pageView h2 {
    text-align: center;
}

.pslide {
    display: block;
    margin: 0 auto;
    width: 500px;
    text-align: center;
}

.clear {
    clear: both;
}

.pImg p {
    padding-top: 15px;
}

.tright {
    text-align: right;
}

.pImg {
    margin-left: 30px;
}

.pImgUl img {
    width: 50px;
}

#zakazatSait {
    width: 170px;
    margin: 0 auto 20px;
    display: block;
    left: 0;
}

.di_input {
    outline: none;
    width: 250px;
    background: #fff;
    margin: 5px 0;
    height: 24px;
    border: 1px solid #00c7fc;
}

.empty_field {
    border-color: red;
}

#slider,
.hotel-slider {
    width: 100%;
    max-width: 100%;
    margin: 0;
    padding: 0;
}

.hotel-slider__stage {
    position: relative;
    width: 100%;
    max-width: 100%;
    margin: 0 0 8px 0;
}

#photos,
.hotel-slider__photos {
    position: relative;
    /* Trap xfade slide z-indexes (N…1) so they cannot cover sibling nav buttons */
    z-index: 0;
    width: 100%;
    margin: 0;
    padding: 0;
    aspect-ratio: 4 / 3;
    max-height: 500px;
    min-height: 220px;
    overflow: hidden;
    background: #f3f6f8;
    border-radius: 12px;
}

/* Circular prev/next over main photo (room gallery chevrons → circle chrome) */
.hotel-slider__nav {
    position: absolute;
    top: 50%;
    /* Above #photos stacking context (must beat trapped slide z-indexes) */
    z-index: 2;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 44px;
    height: 44px;
    margin: 0;
    padding: 0;
    border: 1px solid rgba(255, 255, 255, 0.85);
    border-radius: 50%;
    background: transparent;
    color: #fff;
    font-size: 0;
    line-height: 0;
    cursor: pointer;
    box-sizing: border-box;
    appearance: none;
    -webkit-appearance: none;
    transform: translateY(-50%);
    transition: background 0.15s ease, border-color 0.15s ease, color 0.15s ease;
    -webkit-tap-highlight-color: transparent;
    outline: none;
}

/* Glyph via ::before — same ‹› as .offer-slider-left/right; avoids font-metric drift in the circle */
.hotel-slider__nav::before {
    content: "\2039";
    display: block;
    font-family: Arial, Helvetica, sans-serif;
    font-size: 22px;
    font-weight: 400;
    line-height: 1;
    /* ‹› sit low in the em-box; nudge to optical center */
    transform: translateY(-0.06em);
}

.hotel-slider__nav--prev {
    left: 12px;
}

.hotel-slider__nav--next {
    right: 12px;
}

.hotel-slider__nav--next::before {
    content: "\203A";
}

/* Match .button_hotel — never browser/Bootstrap blue or cyan #74BACC fill */
.hotel-slider__nav:hover,
.hotel-slider__nav:focus-visible {
    background: rgba(0, 126, 185, 0.95);
    border-color: #fff;
    color: #fff;
    outline: none;
}

.hotel-slider__nav:focus-visible {
    box-shadow: 0 0 0 2px rgba(0, 126, 185, 0.35);
}

#photos li,
.hotel-slider__slide {
    list-style: none;
    margin: 0;
    padding: 0;
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    box-sizing: border-box;
}

#photos li:first-child {
    position: absolute;
    z-index: 1;
}

#photos li a,
.hotel-slider__slide a {
    display: block;
    width: 100%;
    height: 100%;
}

#photos li a picture,
.hotel-slider__slide a picture {
    display: block;
    width: 100%;
    height: 100%;
}

#photos li img,
.hotel-slider__img {
    width: 100% !important;
    height: 100% !important;
    max-width: none;
    max-height: none;
    object-fit: cover;
    object-position: center;
    display: block;
}

#thumbs,
.hotel-slider__thumbs {
    width: 100%;
    max-width: 100%;
    margin: 0;
    padding: 0;
    display: flex;
    flex-wrap: wrap;
}

#thumbs li:not(.hotel-slider__thumb-more) {
    list-style: none;
    display: block;
    width: 70px;
    height: 50px;
    float: left;
    margin: 1px;
    opacity: 0.7;
}

#thumbs li.hotel-slider__thumb-more,
.hotel-slider__thumbs > li.hotel-slider__thumb-more {
    opacity: 1;
}

.hotel-slider__thumb {
    width: 70px;
    height: 50px;
    object-fit: cover;
    display: block;
}

.hotel-slider__thumb-card {
    width: 70px;
    height: 50px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 4px;
    border: 1px solid #b4b4b4;
    border-radius: 6px;
    background: #fbfbfb;
    color: var(--color-brand);
    text-decoration: none;
    box-sizing: border-box;
    padding: 4px;
    text-align: center;
}

.hotel-slider__thumb-play {
    font-size: 16px;
    line-height: 1;
}

.hotel-slider__thumb-service {
    font-size: 11px;
    line-height: 1.1;
    font-weight: 700;
}

.hotel-slider__slide--video {
    background: #eef3f7;
}

.hotel-slider__video-wrap {
    width: 100%;
    height: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    background: #0f2940;
}

.hotel-slider__video-player,
.hotel-slider__video-wrap iframe {
    width: 100%;
    height: 100%;
    border: 0;
    display: block;
}

#thumbs li picture,
.hotel-slider__thumbs picture {
    display: block;
    width: 70px;
    height: 50px;
}

.hotel-slider__thumb-more {
    display: none;
    list-style: none;
}

.hotel-slider__thumb-more-btn {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
    width: 100%;
    height: 100%;
    min-height: 44px;
    margin: 0;
    padding: 0;
    border: 0;
    border-radius: 0;
    background: #003F6A;
    color: #fff;
    font-family: "Source Sans Pro", sans-serif;
    font-size: 16px;
    font-weight: 300;
    line-height: 1.2;
    cursor: pointer;
    box-sizing: border-box;
    appearance: none;
    -webkit-appearance: none;
    outline: none;
    box-shadow: none;
    transition: color 0.15s ease;
    -webkit-tap-highlight-color: transparent;
}

.hotel-slider__thumb-more-btn picture,
.hotel-slider__thumb-more-btn img,
.hotel-slider__thumb-more-img {
    position: absolute;
    inset: 0;
    z-index: 0;
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    pointer-events: none;
}

.hotel-slider__thumb-more-btn::after {
    content: "";
    position: absolute;
    inset: 0;
    z-index: 1;
    pointer-events: none;
    background: rgba(0, 63, 106, 0.4);
    transition: background 0.15s ease;
}

.hotel-slider__thumb-more-label {
    position: relative;
    z-index: 2;
}

.hotel-slider__thumb-more-btn:hover,
.hotel-slider__thumb-more-btn:focus,
.hotel-slider__thumb-more-btn:focus-visible,
.hotel-slider__thumb-more-btn:active {
    background: #003F6A;
    border: 0;
    color: #fff;
    outline: none;
    box-shadow: none;
}

.hotel-slider__thumb-more-btn:hover::after,
.hotel-slider__thumb-more-btn:focus-visible::after {
    background: rgba(0, 63, 106, 0.26);
}

.hotel-slider__clear {
    margin-bottom: 8px;
}

/* Hotel photo lightbox */
.hotel-slider__photos--zoomable,
.hotel-slider__photos--zoomable a,
.hotel-slider__photos--zoomable picture,
.hotel-slider__photos--zoomable img {
    cursor: zoom-in;
}

body.hotel-lightbox-open {
    overflow: hidden;
}

.hotel-lightbox {
    position: fixed;
    inset: 0;
    z-index: 10050;
    display: none;
    align-items: center;
    justify-content: center;
    padding: 16px;
    box-sizing: border-box;
}

.hotel-lightbox.is-open,
.hotel-lightbox:not([hidden]) {
    display: flex;
}

.hotel-lightbox[hidden] {
    display: none !important;
}

.hotel-lightbox__backdrop {
    position: absolute;
    inset: 0;
    background: rgba(240, 243, 246, 0.92);
}

.hotel-lightbox__panel {
    position: relative;
    z-index: 1;
    display: flex;
    flex-direction: column;
    align-items: stretch;
    justify-content: center;
    gap: 12px;
    width: min(96vw, 1200px);
    height: min(92vh, 920px);
    max-width: 100%;
    max-height: 100%;
    padding: 48px 56px 16px;
    box-sizing: border-box;
    background: #f7f8fa;
    border: 0;
    border-radius: 6px;
    box-shadow: none;
}

.hotel-lightbox__figure {
    margin: 0;
    flex: 1 1 auto;
    min-height: 0;
    width: 100%;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 8px;
}

.hotel-lightbox__img {
    display: block;
    max-width: 100%;
    max-height: calc(92vh - 180px);
    width: auto;
    height: auto;
    object-fit: contain;
    border-radius: 2px;
    background: #eef1f4;
}

.hotel-lightbox__picture {
    display: block;
    line-height: 0;
    max-width: 100%;
}

.hotel-lightbox__counter {
    color: var(--color-brand);
    font: 13px/1.3 Verdana, Geneva, sans-serif;
    text-align: center;
    letter-spacing: 0.02em;
}

.hotel-lightbox__thumbs {
    display: flex;
    flex-wrap: nowrap;
    align-items: center;
    gap: 8px;
    overflow-x: auto;
    overflow-y: hidden;
    -webkit-overflow-scrolling: touch;
    scroll-snap-type: x proximity;
    padding: 4px 2px 6px;
    max-width: 100%;
}

.hotel-lightbox__thumb {
    flex: 0 0 auto;
    width: 64px;
    height: 48px;
    padding: 0;
    margin: 0;
    border: 2px solid #c5ced6;
    border-radius: 3px;
    background: #fff;
    cursor: pointer;
    overflow: hidden;
    scroll-snap-align: center;
    line-height: 0;
}

.hotel-lightbox__thumb img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.hotel-lightbox__thumb picture {
    display: block;
    width: 100%;
    height: 100%;
}

.hotel-lightbox__thumb:hover,
.hotel-lightbox__thumb:focus {
    border-color: var(--color-brand);
    outline: none;
}

.hotel-lightbox__thumb.is-active {
    border-color: var(--color-brand);
    box-shadow: inset 0 0 0 1px var(--color-brand);
}

.hotel-lightbox__close {
    position: absolute;
    z-index: 2;
    top: 8px;
    right: 8px;
    width: 40px;
    height: 40px;
    border: 0;
    cursor: pointer;
    color: #fff;
    background: var(--color-brand);
    font-family: Verdana, Geneva, sans-serif;
    font-size: 26px;
    line-height: 1;
    padding: 0;
    border-radius: 3px;
}

.hotel-lightbox__close:hover,
.hotel-lightbox__close:focus {
    background: #002a48;
    outline: 2px solid var(--color-brand);
    outline-offset: 2px;
}

/* Match .hotel-slider__nav — circular, transparent, button_hotel hover */
.hotel-lightbox__nav {
    position: absolute;
    z-index: 2;
    top: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 44px;
    height: 44px;
    margin: 0;
    padding: 0;
    border: 1px solid rgba(255, 255, 255, 0.85);
    border-radius: 50%;
    background: transparent;
    color: #fff;
    font-size: 0;
    line-height: 0;
    cursor: pointer;
    box-sizing: border-box;
    appearance: none;
    -webkit-appearance: none;
    transform: translateY(-50%);
    transition: background 0.15s ease, border-color 0.15s ease, color 0.15s ease;
    -webkit-tap-highlight-color: transparent;
    outline: none;
}

.hotel-lightbox__nav::before {
    content: "\2039";
    display: block;
    font-family: Arial, Helvetica, sans-serif;
    font-size: 22px;
    font-weight: 400;
    line-height: 1;
    transform: translateY(-0.06em);
}

.hotel-lightbox__next::before {
    content: "\203A";
}

.hotel-lightbox__nav:hover,
.hotel-lightbox__nav:focus-visible {
    background: rgba(0, 126, 185, 0.95);
    border-color: #fff;
    color: #fff;
    outline: none;
}

.hotel-lightbox__nav:focus-visible {
    box-shadow: 0 0 0 2px rgba(0, 126, 185, 0.35);
}

.hotel-lightbox__prev {
    left: 12px;
}

.hotel-lightbox__next {
    right: 12px;
}

@media (max-width: 767px) {
    /* Circular nav: 24px (desktop 44px); glyph ~12px keeps ‹› optically centered */
    .hotel-slider__nav {
        width: 24px;
        height: 24px;
        min-width: 24px;
        min-height: 24px;
    }

    .hotel-slider__nav--prev {
        left: 8px;
    }

    .hotel-slider__nav--next {
        right: 8px;
    }

    .hotel-slider__nav::before {
        font-size: 12px;
    }

    /* Mobile strip: 4 cols — row1 items 1–4, row2 items 5–7 + optional +N */
    #thumbs,
    .hotel-slider__thumbs {
        display: grid;
        grid-template-columns: repeat(4, minmax(0, 1fr));
        gap: 4px;
        flex-wrap: unset;
    }

    /*
     * Same cell chrome for every thumb (incl. +N).
     * Must match/beat #thumbs li:not(.hotel-slider__thumb-more) {70×50}
     * — that selector is (1,1,1); plain #thumbs > li is only (1,0,1) and lost,
     * so photo thumbs stayed 70×50 while +N stretched to the grid track.
     */
    #thumbs li:not(.hotel-slider__thumb-more),
    #thumbs li.hotel-slider__thumb-more,
    .hotel-slider__thumbs > li {
        position: relative;
        min-width: 0;
        min-height: 0;
        width: auto;
        height: auto;
        margin: 0;
        aspect-ratio: 7 / 5;
        float: none;
        overflow: hidden;
        border: 0;
        border-radius: 0;
        box-sizing: border-box;
    }

    #thumbs > li:nth-child(n + 8):not(.hotel-slider__thumb-more),
    .hotel-slider__thumbs > li:nth-child(n + 8):not(.hotel-slider__thumb-more) {
        display: none;
    }

    #thumbs > li.hotel-slider__thumb-more,
    .hotel-slider__thumbs > li.hotel-slider__thumb-more {
        display: block;
        opacity: 1;
    }

    /* Absolute fill so % height resolves against aspect-ratio cells */
    #thumbs > li > a,
    .hotel-slider__thumbs > li > a,
    .hotel-slider__thumb-more-btn {
        position: absolute;
        inset: 0;
        width: 100%;
        height: 100%;
        min-height: 0;
        margin: 0;
        box-sizing: border-box;
    }

    #thumbs li picture,
    .hotel-slider__thumbs picture,
    .hotel-slider__thumb,
    .hotel-slider__thumb-card,
    .hotel-slider__thumb-more-btn picture,
    .hotel-slider__thumb-more-btn img {
        width: 100%;
        height: 100%;
        box-sizing: border-box;
    }

    .hotel-slider__thumb {
        object-fit: cover;
        border: 0;
        border-radius: 0;
    }

    .hotel-slider__thumb-more-btn {
        display: flex;
        align-items: center;
        justify-content: center;
        border: 0;
        border-radius: 0;
        outline: none;
        box-shadow: none;
        font-size: clamp(13px, 3.6vw, 16px);
    }

    .hotel-lightbox {
        padding: 0;
    }

    .hotel-lightbox__panel {
        width: 100%;
        height: 100%;
        max-height: 100vh;
        border-radius: 0;
        border: 0;
        padding: 44px 12px 12px;
        gap: 10px;
    }

    .hotel-lightbox__img {
        max-height: calc(100vh - 160px);
    }

    .hotel-lightbox__thumb {
        width: 56px;
        height: 42px;
    }

    .hotel-lightbox__close {
        top: 6px;
        right: 6px;
        width: 36px;
        height: 36px;
        font-size: 22px;
    }

    .hotel-lightbox__nav {
        width: 24px;
        height: 24px;
        min-width: 24px;
        min-height: 24px;
    }

    .hotel-lightbox__nav::before {
        font-size: 12px;
    }

    .hotel-lightbox__prev {
        left: 8px;
    }

    .hotel-lightbox__next {
        right: 8px;
    }
}

/* Hotel detail: gallery + contacts side by side */
.hotel-detail {
    width: 100%;
    max-width: 100%;
    box-sizing: border-box;
    display: flex;
    flex-direction: column;
    gap: 14px;
}

div.mainBody:has(.hotel-detail) > .mainText {
    margin: 0px 5px;
}

/* Enext .navigation-title (template_styles + colors.css h1 / mobile override) */
.hotel-detail__title {
    text-align: center;
    margin: 20px;
    padding: 0;
    box-sizing: border-box;
}

.hotel-detail__title h1 {
    margin: 0;
    padding: 0; /* Enext .navigation-title overrides h1 padding 24px 0 */
    font-family: var(--font-family-heading); /* hotel colors.css h1: Source Sans Pro */
    font-weight: var(--font-weight-heading); /* Bootstrap 500 → Museo 500 face */
    font-size: 30px;
    line-height: 36px;
    color: var(--color-heading); /* #263238 */
    text-align: center;
}

/* Enext colors.css @media(max-width:1042px) .navigation-title */
@media (max-width: 1042px) {
    .hotel-detail__title h1 {
        font-family: var(--font-family-bold); /* "Museo Sans Cyrl 700" */
        font-weight: 400; /* family carries weight; @font-face is 400 */
        font-size: 18px;
        line-height: 22px;
        color: var(--color-heading);
        text-align: center;
    }
}

.hotel-detail__top {
    display: flex;
    flex-wrap: nowrap;
    align-items: flex-start;
    gap: 16px;
    width: 100%;
    margin: 0;
    box-sizing: border-box;
    /* Sticky contacts need a non-clipping ancestor */
    overflow: visible;
}

.hotel-detail__gallery {
    flex: 0 1 65%;
    min-width: 0;
    width: auto;
    box-sizing: border-box;
    overflow: hidden;
}

.hotel-detail__sidebar {
    flex: 0 0 350px;
    width: auto;
    max-width: 360px;
    min-width: 240px;
    margin: 0 auto;
    display: flex;
    flex-direction: column;
    gap: 12px;
    box-sizing: border-box;
}

.hotel-detail__contacts.contact-table,
.hotel-detail__top .contact-table {
    flex: 0 0 auto;
    width: 100%;
    max-width: 100%;
    min-width: 0;
    margin: 0;
    /* Match contact body (beat global h2·h2link 15px in the narrow column) */
    font-size: 16px;
    line-height: 1.35;
}

/* Stick sidebar (contacts + map) under viewport top while scrolling alongside gallery */
@media (min-width: 992px) {
    .hotel-detail__sidebar {
        position: sticky;
        top: 16px;
        z-index: 2;
        align-self: flex-start;
    }

    .hotel-detail__contacts.contact-table,
    .hotel-detail__top .contact-table {
        background: #fff;
    }
}

.hotel-detail__map {
    position: relative;
    width: 100%;
    min-height: 100px;
    border-radius: 16px;
    border: 1px solid #e4e8eb;
    overflow: hidden;
    background: #e8eef2 center/cover no-repeat;
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.05);
    box-sizing: border-box;
    display: flex;
    flex-direction: column;
}

.hotel-detail__map::before {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(to bottom, rgba(255, 255, 255, 0.22), rgba(255, 255, 255, 0.34));
    pointer-events: none;
}

.hotel-detail__map-inner {
    position: relative;
    z-index: 1;
    flex: 1 1 auto;
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 100px;
    padding: 14px 16px;
    text-align: center;
    box-sizing: border-box;
}

.hotel-detail__map .button_hotel.hotel-detail__map-btn {
    float: none;
    width: auto;
    max-width: 150px;
    min-height: 33px;
    margin: 0;
    font-size: 13px;
    font-family: inherit;
    font-weight: 500;
    background: #fff;
    border: 1px solid var(--color-brand);
    transition: background-color 0.25s ease, border-color 0.25s ease;
}

.hotel-detail__map .button_hotel.hotel-detail__map-btn:hover,
.hotel-detail__map .button_hotel.hotel-detail__map-btn:focus-within {
    background: var(--color-brand);
    outline: 2px solid var(--color-accent);
    outline-offset: 2px;
}

.hotel-detail__map-toggle {
    width: 100%;
    margin: 0;
    padding: 7px 10px;
    min-height: 31px;
    border: none;
    border-radius: 7px;
    background: transparent;
    color: var(--color-brand);
    font-size: inherit;
    font-weight: inherit;
    line-height: 1.35;
    text-align: center;
    cursor: pointer;
    outline: none;
    transition: color 0.25s ease;
}

.hotel-detail__map .button_hotel.hotel-detail__map-btn:hover .hotel-detail__map-toggle,
.hotel-detail__map .button_hotel.hotel-detail__map-btn:focus-within .hotel-detail__map-toggle {
    color: #fff !important;
    background: transparent;
}

.hotel-detail__contacts .contact-table__row,
.hotel-detail__contacts .contact-table__cell,
.hotel-detail__top .contact-table .contact-table__row,
.hotel-detail__top .contact-table .contact-table__cell {
    font-size: 16px;
    line-height: 1.35;
    text-align: center;
}

.hotel-detail__contacts b:has(.contact-table__address-icon),
.hotel-detail__top .contact-table b:has(.contact-table__address-icon) {
    display: inline-flex;
    align-items: center;
    gap: 6px;
}

.hotel-detail__contacts .contact-table__address-icon,
.hotel-detail__top .contact-table .contact-table__address-icon {
    display: block;
    flex-shrink: 0;
    width: 18px;
    height: auto;
    object-fit: contain;
    filter: brightness(0) saturate(100%) invert(57%) sepia(21%) saturate(1338%) hue-rotate(143deg) brightness(93%) contrast(86%);
}

/* Labels / values stay at body size; bold only via markup */
.hotel-detail__contacts b,
.hotel-detail__contacts strong,
.hotel-detail__top .contact-table b,
.hotel-detail__top .contact-table strong {
    font-size: 16px;
}

/* Contact links match block body; global a.h2link is 15px — too large in the narrow column */
.hotel-detail__contacts a.h2link,
.hotel-detail__top .contact-table a.h2link {
    font-size: 16px;
    font-weight: 700;
    line-height: 1.35;
}

.hotel-detail__contacts a.h1link,
.hotel-detail__top .contact-table a.h1link {
    font-size: 16px;
    font-weight: 700;
    line-height: 1.35;
}

.hotel-detail__contacts h2,
.hotel-detail__top .contact-table h2 {
    font-size: 16px;
    margin: 0;
    line-height: 1.35;
    color: inherit;
}

.hotel-detail__contacts .contact-table__note,
.hotel-detail__top .contact-table .contact-table__note {
    font-size: 13px;
    line-height: 1.35;
}

.hotel-detail__contacts big,
.hotel-detail__top .contact-table big,
.hotel-detail__contacts font[size="+1"],
.hotel-detail__top .contact-table font[size="+1"] {
    font-size: 15px;
}

.hotel-detail__contacts font,
.hotel-detail__top .contact-table font {
    font-size: inherit;
}

.hotel-detail__top--contacts-only .hotel-detail__sidebar,
.hotel-detail__top--contacts-only .contact-table {
    flex: 1 1 100%;
    max-width: 100%;
}

.hotel-detail__opisanie {
    width: 100%;
    margin: 0;
    padding: 0;
    box-sizing: border-box;
    font-family: "Source Sans Pro", sans-serif;
}

.hotel-detail__opisanie.opis-border,
.hotel-detail__opisanie .opis-border {
    background: transparent;
    padding: 0;
    margin: 30px 0 0;
}

.hotel-detail__facts {
    width: 100%;
    max-width: 100%;
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 20px;
    margin: 28px 0 0;
    padding: 14px 0 0;
    border-top: 1px solid #e4e8eb;
    box-sizing: border-box;
}

.hotel-detail__facts--admin {
    margin-top: 8px;
    gap: 4px;
}

.hotel-detail__fact {
    width: 100%;
    max-width: 100%;
    min-width: 0;
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

.hotel-detail__fact p {
    margin: 0;
}

.hotel-detail__price-table .opis-border {
    max-width: 100%;
    overflow: hidden;
}

.hotel-detail__fact .opis-border {
    background: transparent;
    padding: 0;
}

.hotel-detail__fact--split {
    display: flex;
    flex-wrap: wrap;
    gap: 12px 24px;
}

.hotel-detail__fact--split > * {
    flex: 1 1 200px;
}

.hotel-detail__fact-icon,
.hotel-detail__distance-icon {
    display: inline-block;
    width: 18px;
    height: 18px;
    margin-right: 6px;
    vertical-align: -3px;
}

.hotel-detail__fact--labeled {
    display: grid;
    grid-template-columns: minmax(120px, 270px) 1fr;
    gap: 8px 16px;
    align-items: start;
}

.hotel-detail__fact--labeled .opis-border.hotel-detail__fact-label {
    width: 270px;
    max-width: 100%;
    box-sizing: border-box;
}

.hotel-table-scroll {
    width: 100%;
    max-width: 100%;
    margin: 12px 0 4px;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    border: 1px solid var(--color-panel-border);
    border-radius: 8px;
    background: #fff;
    box-sizing: border-box;
}

.hotel-table-scroll .hotel-table,
.hotel-detail .hotel-table-scroll .hotel-table,
.hotel-detail__facts .hotel-table-scroll .hotel-table,
.opis-border .hotel-table-scroll .hotel-table {
    width: max-content;
    min-width: 100%;
    margin: 0;
    border: 0;
    border-radius: 0;
    box-shadow: none;
    overflow: visible;
}

.hotel-detail .hotel-table,
.hotel-detail__facts .hotel-table,
.hotel-table-scroll .hotel-table,
.opis-border .hotel-table {
    width: 100%;
    max-width: 100%;
    margin: 12px 0 4px;
    border-collapse: separate;
    border-spacing: 0;
    font-family: var(--font-family-base);
    font-size: 12px;
    line-height: var(--line-height-body);
    color: var(--color-text);
    background: #fff;
    border: 1px solid var(--color-panel-border);
    border-radius: 8px;
    box-shadow: none;
    overflow: hidden;
    box-sizing: border-box;
}

.hotel-detail .hotel-table th,
.hotel-detail__facts .hotel-table th,
.hotel-table-scroll .hotel-table th,
.opis-border .hotel-table th {
    padding: 10px 12px;
    background: var(--color-brand);
    color: #fff;
    font-size: 12px;
    font-weight: var(--font-weight-heading);
    line-height: var(--line-height-heading);
    text-align: center;
    vertical-align: middle;
    border: 0;
    border-radius: 0;
}

.hotel-detail .hotel-table th:first-child,
.hotel-detail__facts .hotel-table th:first-child,
.hotel-table-scroll .hotel-table th:first-child,
.opis-border .hotel-table th:first-child {
    text-align: left;
}

.hotel-detail .hotel-table td,
.hotel-detail__facts .hotel-table td,
.hotel-table-scroll .hotel-table td,
.opis-border .hotel-table td {
    padding: 9px 12px;
    text-align: center;
    vertical-align: top;
    font-weight: 400;
    font-size: 12px;
    background: #fff;
    border: 0;
    border-bottom: 1px solid #edf0f2;
    border-radius: 0;
}

.hotel-detail .hotel-table td:first-child,
.hotel-detail__facts .hotel-table td:first-child,
.hotel-table-scroll .hotel-table td:first-child,
.opis-border .hotel-table td:first-child {
    text-align: left;
    font-weight: 400;
    border-left: 0;
}

.hotel-detail .hotel-table tr:nth-child(even) > td,
.hotel-detail__facts .hotel-table tr:nth-child(even) > td,
.hotel-table-scroll .hotel-table tr:nth-child(even) > td,
.opis-border .hotel-table tr:nth-child(even) > td {
    background: var(--color-panel-muted);
}

.hotel-detail .hotel-table tr:hover > td,
.hotel-detail__facts .hotel-table tr:hover > td,
.hotel-table-scroll .hotel-table tr:hover > td,
.opis-border .hotel-table tr:hover > td {
    background: #eef5f7;
}

.hotel-detail .hotel-table tr:last-child > td,
.hotel-detail__facts .hotel-table tr:last-child > td,
.hotel-table-scroll .hotel-table tr:last-child > td,
.opis-border .hotel-table tr:last-child > td {
    border-bottom: 0;
}

.hotel-detail .hotel-table td:not(:first-child),
.hotel-detail .hotel-table th:not(:first-child),
.hotel-detail__facts .hotel-table td:not(:first-child),
.hotel-detail__facts .hotel-table th:not(:first-child),
.hotel-table-scroll .hotel-table td:not(:first-child),
.hotel-table-scroll .hotel-table th:not(:first-child),
.opis-border .hotel-table td:not(:first-child),
.opis-border .hotel-table th:not(:first-child) {
    white-space: nowrap;
}

/* Sticky «Категория номера» while scrolling month columns */
.hotel-table-scroll .hotel-table th:first-child,
.hotel-table-scroll .hotel-table td:first-child {
    position: sticky;
    left: 0;
    z-index: 2;
    min-width: 180px;
    max-width: 240px;
    background: #fff;
    box-shadow: 2px 0 4px rgba(var(--color-brand-rgb), 0.1);
}

.hotel-table-scroll .hotel-table th:first-child {
    z-index: 3;
    background: var(--color-brand);
    box-shadow: 2px 0 4px rgba(0, 0, 0, 0.12);
}

.hotel-table-scroll .hotel-table tr:nth-child(even) > td:first-child {
    background: var(--color-panel-muted);
}

.hotel-table-scroll .hotel-table tr:hover > td:first-child {
    background: #eef5f7;
}

.hotel-detail__stat {
    text-align: right;
}

.hotel-reviews + .hotel-detail__stat {
    margin-top: 20px;
}

/* --- Hotel reviews (#otziv) --- */
.hotel-reviews {
    width: 100%;
    margin: 20px 0 8px;
    padding: 0;
    box-sizing: border-box;
    text-align: left;
    line-height: var(--line-height-body);
}

.hotel-reviews__list,
#otziv {
    width: 100%;
    margin: 0 0 14px;
    padding: 0;
    box-sizing: border-box;
    text-align: left;
}

/* Nested opentable from showComment.php — flatten chrome, keep soft panel */
#otziv > .mainBody {
    margin: 0;
    border: 1px solid var(--color-panel-border);
    border-radius: var(--radius-panel);
    background: var(--color-panel-bg);
    box-shadow: var(--shadow-panel-soft);
    overflow: hidden;
}

#otziv > .mainBody > .titleOpen {
    margin: 0;
    min-height: 0;
    padding: 12px 16px 10px;
    background: var(--color-panel-muted);
    border-left: none;
    border-bottom: 1px solid var(--color-panel-border);
}

#otziv > .mainBody > .titleOpen.hotel-reviews__head {
    display: flex;
    flex-wrap: nowrap;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
}

#otziv > .mainBody > .titleOpen span {
    color: var(--color-heading);
    font-size: 16px;
    font-weight: 700;
    line-height: var(--line-height-heading);
    padding: 0;
    position: static;
    top: auto;
    left: auto;
    flex: 1 1 auto;
    text-align: left;
}

.hotel-reviews__close {
    flex: 0 0 auto;
    margin: 0 0 0 auto;
    padding: 4px;
    border: none;
    background: transparent;
    cursor: pointer;
    line-height: 0;
    color: var(--color-heading);
}

.hotel-reviews__close-icon {
    width: 20px;
    height: 20px;
    display: block;
}

.hotel-reviews__close-icon line {
    stroke: currentColor;
    stroke-width: 2;
    stroke-linecap: round;
}

.hotel-reviews__close:hover {
    opacity: 0.75;
}

#otziv > .mainBody > .mainText {
    padding: 12px 16px 16px;
    margin: 0;
}

#otziv > .mainBody > .rRight {
    display: none;
}

.otziv-list {
    display: flex;
    flex-direction: column;
    gap: 0;
    width: 100%;
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

.otziv-item {
    display: block;
    margin: 0;
    padding: 14px 0;
    border-bottom: 1px solid var(--color-panel-border);
    background: transparent;
    box-sizing: border-box;
}

.otziv-item:first-child {
    padding-top: 4px;
}

.otziv-item:last-child {
    border-bottom: none;
    padding-bottom: 4px;
}

.otziv-item__meta {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    gap: 6px 14px;
    margin: 0 0 8px;
}

#otziv .comment-name,
.otziv-item .comment-name {
    font-weight: 700;
    font-size: var(--font-size-base);
    line-height: var(--line-height-heading);
    color: var(--color-heading);
}

.otziv-item__date,
#otziv .otziv-item__date.small {
    font-family: Arial, Helvetica, sans-serif;
    font-size: 12px;
    line-height: 1.4;
    color: #6a737a;
    font-weight: 400;
}

.otziv-item__body {
    font-size: 15px;
    line-height: 1.35;
    color: var(--color-text);
    text-align: left;
    word-wrap: break-word;
    overflow-wrap: break-word;
}

.otziv-item__body p {
    margin: 0 0 0.6em;
    text-align: left;
}

.otziv-item__body p:last-child {
    margin-bottom: 0;
}

.otziv-list__empty,
.hotel-reviews__empty {
    margin: 8px 0 12px;
    padding: 0;
    color: #555;
    text-align: center;
}

.otziv-list__admin {
    margin-top: 10px;
    padding-top: 10px;
    border-top: 1px solid var(--color-panel-border);
    text-align: right;
    font-size: 12px;
}

.otziv-pager {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    align-items: center;
    gap: 4px 6px;
    margin: 12px 0 0;
    padding: 10px 0 0;
    border-top: 1px solid var(--color-panel-border);
    text-align: center;
    line-height: 1.4;
}

.otziv-pager a.pages,
#otziv a.pages {
    display: inline-block;
    min-width: 1.75em;
    padding: 4px 8px;
    margin: 0;
    border: 1px solid var(--color-panel-border);
    border-radius: 6px;
    background: var(--color-panel-muted);
    color: var(--color-heading);
    text-decoration: none;
    font-size: 12px;
    line-height: 1.3;
    box-sizing: border-box;
}

.otziv-pager a.pages:hover,
#otziv a.pages:hover {
    border-color: var(--color-accent);
    color: var(--color-brand);
    background: #fff;
}

.otziv-pager a.pages b,
#otziv a.pages b {
    color: inherit;
}

.hotel-reviews__toolbar {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    align-items: center;
    gap: 10px 18px;
    margin: 0;
    padding: 4px 0 2px;
    text-align: center;
}

.hotel-reviews__toggle {
    cursor: pointer;
    color: var(--color-heading);
    font-weight: 700;
    font-size: var(--font-size-base);
    line-height: var(--line-height-heading);
    text-decoration: underline;
    text-underline-offset: 2px;
}

.hotel-reviews__toggle:hover {
    color: var(--color-accent);
}

.hotel-reviews__add.h1link,
.hotel-reviews a.h1link.hotel-reviews__add {
    font-size: var(--font-size-base);
    font-weight: 700;
    line-height: var(--line-height-heading);
    color: var(--color-brand);
}

.hotel-reviews__add.h1link:hover,
.hotel-reviews a.h1link.hotel-reviews__add:hover {
    color: var(--color-accent) !important;
}

@media (max-width: 991px) {
    .hotel-detail {
        gap: 12px;
    }

    .hotel-detail__top {
        flex-direction: column;
        flex-wrap: wrap;
        gap: 12px;
    }

    .hotel-detail__gallery,
    .hotel-detail__sidebar,
    .hotel-detail__contacts.contact-table,
    .hotel-detail__top .contact-table {
        flex: 1 1 100%;
        width: 100%;
        max-width: 100%;
        min-width: 0;
        /* Stacked layout: natural flow, no sticky */
        position: static;
        top: auto;
    }

    .hotel-detail__map-inner {
        padding: 12px 14px;
    }

    .hotel-detail__map .button_hotel.hotel-detail__map-btn {
        width: auto !important;
        max-width: 158px;
        min-height: 37px;
        font-size: 13px !important;
        margin: 0;
    }

    .hotel-detail__map-toggle {
        min-height: 35px;
        padding: 8px 12px;
    }

    .hotel-detail__fact--labeled {
        grid-template-columns: 1fr;
    }

    .hotel-detail__fact--labeled .opis-border.hotel-detail__fact-label {
        width: auto;
        max-width: none;
    }

    .hotel-table-scroll {
        margin: 10px 0 4px;
    }

    .hotel-detail .hotel-table th,
    .hotel-detail .hotel-table td,
    .hotel-detail__facts .hotel-table th,
    .hotel-detail__facts .hotel-table td,
    .hotel-table-scroll .hotel-table th,
    .hotel-table-scroll .hotel-table td,
    .opis-border .hotel-table th,
    .opis-border .hotel-table td {
        padding: 8px 10px;
        font-size: 12px;
    }

    .hotel-table-scroll .hotel-table th:first-child,
    .hotel-table-scroll .hotel-table td:first-child {
        min-width: 130px;
        max-width: 140px;
    }

    .hotel-table-scroll .hotel-table th:first-child {
        white-space: normal;
        line-height: 1.25;
        word-break: break-word;
    }

    #photos,
    .hotel-slider__photos {
        max-height: 360px;
        min-height: 180px;
    }

    .hotel-reviews {
        margin-top: 16px;
    }

    #otziv > .mainBody > .titleOpen,
    #otziv > .mainBody > .mainText {
        padding-left: 12px;
        padding-right: 12px;
    }

    .otziv-item {
        padding: 12px 0;
    }

    .otziv-item__meta {
        flex-direction: column;
        align-items: flex-start;
        gap: 2px;
    }

    .hotel-reviews__toolbar {
        flex-direction: column;
        gap: 8px;
    }
}

@media (max-width: 767px) {
    .hotel-detail__map-inner {
        padding: 12px 14px;
    }
}

@media (max-width: 479px) {
    .hotel-table-scroll .hotel-table th:first-child,
    .hotel-table-scroll .hotel-table td:first-child {
        min-width: 112px;
        max-width: 124px;
    }
}

#ssylki {
    min-width: 0;
    max-width: 900px;
    width: 100%;
    margin: 20px auto 0;
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    justify-content: center;
    align-items: stretch;
}

.hotel-detail__actions {
    max-width: 900px;
    margin: 24px auto 12px;
    padding: 0;
    border-top: none;
}

#ssylki .button_hotel {
    float: none;
    flex: 1 1 calc(25% - 10px);
    min-width: 123px;
    max-width: 175px;
    width: auto;
    margin: 0;
}

.button_hotel_a {
    margin-bottom: 10px !important;
    margin-left: 222px !important;
    text-decoration: none !important;
}

.button_hotel_a a {
    text-decoration: none !important;
}

/* =========================================
   navigatorV2026 responsive shell
   ========================================= */

img, video, iframe {
  max-width: 100%;
  height: auto;
}

#mainLayout,
#mainTable {
  width: 100% !important;
  max-width: 100%;
  background-color: var(--color-page-bg);
}

.site-body {
  display: flex;
  flex-direction: row;
  flex-wrap: nowrap;
  align-items: flex-start;
  gap: 0;
  width: 100%;
  max-width: var(--page-content-max);
  margin-left: auto;
  margin-right: auto;
  box-sizing: border-box;
  padding: 8px 12px 20px;
  background-color: transparent;
}

.site-header__bar,
.site-footer__main {
  width: 100%;
  max-width: var(--page-content-max);
  margin-left: auto;
  margin-right: auto;
}

.site-footer__bottom {
  width: 100%;
  max-width: none;
  margin-left: 0;
  margin-right: 0;
}

.site-center-panels {
  display: flex;
  flex-direction: row;
  flex-wrap: wrap;
  align-items: stretch;
  gap: 12px;
  width: 100%;
  max-width: 100%;
  box-sizing: border-box;
  margin: 0 0 12px;
}

.site-center-panels > .mainBodySide {
  width: auto;
  max-width: none;
  min-width: 0;
  margin-bottom: 0;
  box-sizing: border-box;
}

.site-center-panels > .mainBodySide:not(:has(.user-info-panel)) {
  flex: 1 1 0;
  max-width: 25%;
}

.site-center-panels > .mainBodySide:has(.user-info-panel) {
  flex: 3 1 0;
  max-width: 75%;
}

.user-info-panel {
  min-width: 0;
}

.user-info-panel__head {
  display: flex;
  flex-direction: row;
  flex-wrap: nowrap;
  align-items: center;
  justify-content: flex-start;
  gap: 10px 12px;
  margin: 0 0 10px;
}

.user-info-panel__avatar {
  flex: 0 0 48px;
  width: 48px;
  height: 48px;
  max-width: 48px;
  object-fit: cover;
  border-radius: 50%;
  border: 1px solid #e6ebef;
  background: #eef2f5;
}

.user-info-panel__hello {
  flex: 0 1 auto;
  min-width: 0;
  max-width: 100%;
  text-align: left;
}

.user-info-panel__msgs {
  margin: 0;
  width: fit-content;
  max-width: 100%;
  font-size: 14px;
  line-height: 1.4;
  color: #000;
  text-align: left;
}

.user-info-panel__msgs a,
.user-info-panel__msgs a:link,
.user-info-panel__msgs a:visited {
  color: var(--color-link);
  text-decoration: none;
  border-bottom: 1px solid rgba(var(--color-brand-rgb), 0.35);
}

.user-info-panel__msgs a:hover,
.user-info-panel__msgs a:focus-visible {
  color: var(--color-link-hover);
  border-bottom-color: var(--color-link-hover);
}

.user-info-panel__limit {
  display: inline-block;
  margin-left: 8px;
  color: var(--color-muted);
  font-size: 13px;
}

.user-info-panel__groups {
  display: flex;
  flex-direction: row;
  flex-wrap: wrap;
  align-items: flex-start;
  gap: 12px 28px;
}

.user-info-panel__group {
  flex: 1 1 166px;
  min-width: 0;
}

.user-info-panel__group-title {
  margin: 0 0 6px;
  font-size: 13px;
  font-weight: 500;
  line-height: 1.3;
  color: var(--color-brand);
}

.user-info-panel__links {
  display: flex;
  flex-wrap: wrap;
  gap: 4px 16px;
  align-items: baseline;
}

.user-info-panel__links a,
.user-info-panel__links a:link,
.user-info-panel__links a:visited {
  display: inline;
  min-height: 0;
  padding: 0;
  border: none;
  border-radius: 0;
  background: none;
  color: var(--color-link);
  font-size: 14px;
  font-weight: 400;
  line-height: 1.45;
  text-decoration: none;
  border-bottom: 1px solid rgba(var(--color-brand-rgb), 0.35);
}

.user-info-panel__links a:hover,
.user-info-panel__links a:focus-visible {
  background: none;
  border-color: transparent;
  color: var(--color-link-hover);
  border-bottom-color: var(--color-link-hover);
}

.user-info-panel__links a:focus-visible {
  outline: none;
  box-shadow: 0 0 0 2px rgba(116, 186, 204, 0.35);
}

.user-info-panel__ip {
  margin: 8px 0 0;
  font-size: 12px;
  line-height: 1.35;
  color: var(--color-muted);
}

.user-info-panel__ip a,
.user-info-panel__ip a:link,
.user-info-panel__ip a:visited {
  color: var(--color-link);
  text-decoration: none;
}

.user-info-panel__ip a:hover,
.user-info-panel__ip a:focus-visible {
  color: var(--color-link-hover);
}

.user-info-panel__login {
  display: flex;
  flex-direction: column;
  gap: 8px;
  max-width: 240px;
}

.user-info-panel__login label {
  display: flex;
  flex-direction: column;
  gap: 4px;
  font-size: 13px;
  color: #000;
}

.user-info-panel__login .textbox {
  width: 100%;
  max-width: 100%;
  box-sizing: border-box;
}

.user-info-panel__remember {
  flex-direction: row !important;
  align-items: center;
  gap: 8px;
}

.user-info-panel__login-extra {
  margin: 8px 0 0;
  font-size: 13px;
}

@media (max-width: 991px) {
  .site-center-panels {
    flex-direction: column;
  }

  .site-center-panels > .mainBodySide:not(:has(.user-info-panel)),
  .site-center-panels > .mainBodySide:has(.user-info-panel) {
    flex: 1 1 auto;
    width: 100%;
    max-width: none;
  }

  .user-info-panel__links {
    flex-direction: column;
    flex-wrap: wrap;
    align-items: flex-start;
  }

  .user-info-panel__links a,
  .user-info-panel__links a:link,
  .user-info-panel__links a:visited {
    min-height: 0;
    display: inline;
    align-items: unset;
  }
}

@media (max-width: 991px) {
  .site-header {
    position: relative;
    z-index: 40;
  }

  .site-header__bar {
    position: relative;
    z-index: 42;
    padding: 10px 16px;
    gap: 10px 12px;
    align-items: center;
  }

  .site-header__logo {
    flex: 0 0 auto;
    order: 1;
    min-width: 0;
  }

  .nw_logo {
    max-width: 150px;
  }

  .site-header__menu-toggle {
    display: inline-flex;
    order: 2;
    margin-left: auto;
  }

  .site-header__cabinet {
    flex: 0 0 auto;
    order: 3;
    margin-left: 0;
  }

  .site-header__cabinet-text {
    display: none;
  }

  /* Full-width search band below bar */
  .site-header__search {
    width: 100%;
    padding: 12px 16px 14px;
  }

  .site-header__search-form {
    max-width: none;
  }

  .site-header__nav,
  .nw_topmenu {
    display: none;
    position: absolute;
    top: 100%;
    left: 0;
    right: 0;
    z-index: 41;
    flex: none;
    flex-direction: column;
    flex-wrap: nowrap;
    align-items: stretch;
    justify-content: flex-start;
    gap: 0;
    order: 0;
    margin: 0;
    padding: 8px 16px 12px;
    min-width: 0;
    overflow: visible;
    background: #fff;
    border-bottom: 1px solid rgba(var(--color-brand-rgb), 0.12);
    box-shadow: 0 12px 28px rgba(var(--color-brand-rgb), 0.12);
    text-align: left;
    box-sizing: border-box;
  }

  .site-header.is-nav-open .site-header__nav,
  .site-header.is-nav-open .nw_topmenu {
    display: flex;
  }

  .site-header__nav a,
  .nw_topmenu a {
    display: block;
    flex: none;
    width: 100%;
    margin: 0;
    padding: 12px 10px;
    font-size: 14px;
    white-space: normal;
    border-radius: 6px;
    border-bottom: 1px solid rgba(var(--color-brand-rgb), 0.1);
    box-sizing: border-box;
  }

  .site-header__nav a:last-child,
  .nw_topmenu a:last-child {
    border-bottom: none;
  }

  .site-header__nav-backdrop {
    display: block;
    position: fixed;
    inset: 0;
    z-index: 39;
    background: rgba(0, 20, 40, 0.28);
  }

  .site-header__nav-backdrop[hidden] {
    display: none !important;
  }

  html.is-header-nav-open,
  html.is-header-nav-open body {
    overflow: hidden;
  }

  .site-footer__main {
    flex-direction: column;
    gap: 24px;
    padding: 28px 16px 22px;
  }

  .site-footer__brand {
    max-width: none;
    flex: 1 1 auto;
  }

  .site-footer__menus {
    width: 100%;
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 20px 24px;
  }

  .site-footer__contacts {
    flex: 1 1 auto;
    width: 100%;
  }

  .site-footer__bottom {
    flex-direction: column;
    align-items: flex-start;
    padding: 14px 16px 18px;
    padding-left: max(16px, calc((100% - var(--page-content-max)) / 2 + 16px));
    padding-right: max(16px, calc((100% - var(--page-content-max)) / 2 + 16px));
  }

  .side-border-left,
  .side-border-right,
  td.side-border-left,
  td.side-border-right {
    display: none !important;
  }

  .site-body {
    display: block;
    padding: 8px 10px 16px;
  }

  .main-bg,
  .main-bg-adm,
  td.main-bg,
  td.main-bg-adm {
    display: block;
    width: 100% !important;
    max-width: 100%;
    padding: 8px !important;
    box-sizing: border-box;
  }

  .form-search,
  .form-search-top,
  .textbox,
  input[type="text"],
  input[type="email"],
  input[type="tel"],
  select,
  textarea {
    max-width: 100%;
    box-sizing: border-box;
  }

  table.hotel-table,
  .hotel-table-scroll,
  .contact-table,
  .navigator-price-table {
    display: block;
    width: 100%;
    max-width: 100%;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
  }

  .hotel-table-scroll .hotel-table {
    display: table;
    width: max-content;
    min-width: 100%;
  }

  #map,
  #YMapsID,
  div[id^="YMaps"] {
    width: 100% !important;
    max-width: 100% !important;
    height: 280px !important;
  }
}

@media (max-width: 576px) {
  .nw_logo {
    max-width: 140px;
  }

  .site-header__cabinet-icon {
    width: 26px;
    height: 26px;
  }

  .site-footer__menus {
    grid-template-columns: 1fr;
  }

  .site-footer__logo {
    max-width: 170px;
  }

  .button_hotel,
  .allhot,
  .submit-search-button {
    width: 100% !important;
    max-width: 100%;
  }

  .button_hotel {
    min-height: 38px;
    font-size: 12px;
  }

  .button_hotel a:link,
  .button_hotel a:visited {
    min-height: 36px;
    padding: 9px 12px;
  }

  .hotel-detail__map .button_hotel.hotel-detail__map-btn {
    width: auto !important;
    max-width: min(158px, 88%);
    font-size: 12px !important;
    min-height: 33px;
  }
}

/* Admin mobile: center sidebar panels above main (like public site-center-panels) */
@media (max-width: 991px) {
  .site-body:has(> .main-bg-adm) {
    display: flex;
    flex-direction: column;
    gap: 0;
  }

  .site-body:has(> .main-bg-adm) > .side-border-left {
    display: flex !important;
    flex-direction: column;
    align-items: center;
    order: 0;
    width: 100%;
    max-width: 100%;
    flex: none;
    gap: 12px;
    padding: 0 0 10px;
    box-sizing: border-box;
  }

  .site-body:has(> .main-bg-adm:has(.adm-index)) > .side-border-left > .mainBodySide--white {
    display: none !important;
  }

  .site-body:has(> .main-bg-adm) > .side-border-left > .mainBodySide {
    width: 100%;
    max-width: min(100%, 280px);
    margin: 0 auto;
    box-sizing: border-box;
  }

  .site-body:has(> .main-bg-adm) > .side-border-left > .mainBodySide:has(.user-info-panel) {
    max-width: min(100%, calc(var(--page-content-max) * 0.75));
  }

  .site-body:has(> .main-bg-adm) > .main-bg-adm {
    order: 1;
  }
}

@media (max-width: 767px) {
  .site-body:has(> .main-bg-adm) > .side-border-left {
    padding: 0 0 8px;
  }

  .site-body:has(> .main-bg-adm) .user-info-panel__groups {
    flex-direction: column;
    gap: 10px;
  }
}

/* Admin: breadcrumbs back to index tiles */
.adm-crumbs {
    width: 100%;
    max-width: 100%;
    min-width: 0;
    box-sizing: border-box;
    margin: 4px 0 12px;
    padding: 8px 12px;
    background: #fff;
    border: 1px solid #d7e0e6;
    border-radius: 6px;
    box-shadow: 0 2px 8px rgba(0, 63, 106, 0.12);
}

.adm-crumbs__list {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 4px 0;
    margin: 0;
    padding: 0;
    list-style: none;
    max-width: 100%;
    min-width: 0;
}

.adm-crumbs__item {
    display: inline-flex;
    flex-wrap: wrap;
    align-items: center;
    min-width: 0;
    max-width: 100%;
    font-size: var(--font-size-small);
    line-height: 1.4;
}

.adm-crumbs__item:not(:last-child)::after {
    content: "›";
    margin: 0 8px;
    color: #8aa0ad;
}

.adm-crumbs__link,
.adm-crumbs__link:link,
.adm-crumbs__link:visited {
    color: #00416c !important;
    text-decoration: none;
    word-break: break-word;
}

.adm-crumbs__link:hover,
.adm-crumbs__link:focus-visible {
    color: #00416c !important;
    text-decoration: underline;
}

.adm-crumbs__link:focus-visible {
    outline: none;
    box-shadow: 0 0 0 2px rgba(116, 186, 204, 0.35);
    border-radius: 2px;
}

.adm-crumbs__current {
    color: #000;
    word-break: break-word;
}

@media (max-width: 479px) {
    .adm-crumbs {
        padding: 8px 10px;
    }
}

/* Admin: index dashboard (administration/index.php) */
.adm-index {
    width: 100%;
    max-width: 100%;
    margin: 8px 0;
    border: 1px solid #d7e0e6;
    border-radius: 6px;
    background: #fff;
    box-sizing: border-box;
    overflow: hidden;
}

.adm-index__tabs {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 0;
    border-bottom: 1px solid #e9e9e9;
}

.adm-index__tab {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 44px;
    padding: 8px 10px;
    font-size: 16px;
    line-height: 1.3;
    text-align: center;
    color: #000;
    text-decoration: none;
    background: #fff;
    border-right: 1px solid #e9e9e9;
    border-bottom: 1px solid #e9e9e9;
    box-sizing: border-box;
}

.adm-index__tab:last-child {
    border-right: 0;
}

.adm-index__tab:hover,
.adm-index__tab:focus-visible {
    color: var(--color-link);
    text-decoration: none;
}

.adm-index__tab--active {
    font-weight: 700;
    background: #fff;
    border-right-color: #e9e9e9;
    border-bottom-color: #e9e9e9;
}

.adm-index__body {
    padding: 12px;
    box-sizing: border-box;
}

.adm-index__body a {
    text-decoration: none;
}

.adm-index__grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 8px;
}

.adm-index__item {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: flex-start;
    min-height: 44px;
    padding: 10px 8px;
    font-size: 12px;
    font-weight: 700;
    line-height: 1.35;
    color: #000;
    text-align: center;
    text-decoration: none;
    background: #fff;
    border: 1px solid #e8eef2;
    border-radius: 6px;
    box-sizing: border-box;
}

a.adm-index__item:link,
a.adm-index__item:visited {
    text-decoration: none;
}

a.adm-index__item:hover,
a.adm-index__item:focus-visible {
    color: var(--color-link);
    border-color: #b0b0b0;
    /* box-shadow: 0 0 0 2px rgba(116, 186, 204, 0.2); */
    text-decoration: none;
}

.adm-index__icon {
    display: block;
    width: auto;
    max-width: 100%;
    height: auto;
    margin: 0 auto 6px;
    border: 0;
}

.adm-index__label {
    display: block;
    min-width: 0;
    word-break: break-word;
}

.adm-index__label--bullet {
    display: flex;
    align-items: flex-start;
    gap: 6px;
    text-align: left;
    font-weight: 400;
}

.adm-index__empty {
    margin: 16px 0;
    text-align: center;
    font-size: 12px;
    color: #666;
}

.adm-index-stats {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 12px 16px;
    width: 100%;
    max-width: 100%;
    margin: 8px 0;
    box-sizing: border-box;
}

.adm-index-stats__col {
    display: flex;
    flex-direction: column;
    gap: 6px;
    min-width: 0;
}

.adm-index-stats__row {
    font-size: 12px;
    line-height: 1.45;
    color: #000;
    word-break: break-word;
}

@media (max-width: 991px) {
    .adm-index__tabs {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .adm-index__tab:nth-child(2n) {
        border-right: 0;
    }

    .adm-index__tab:nth-child(-n+2) {
        border-bottom: 1px solid #e9e9e9;
    }

    .adm-index__grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .adm-index-stats {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 767px) {
    .adm-index__tabs {
        grid-template-columns: 1fr;
    }

    .adm-index__tab {
        border-right: 0;
        border-bottom: 1px solid #e9e9e9;
        justify-content: flex-start;
        text-align: left;
    }

    .adm-index__tab:last-child {
        border-bottom: 0;
    }

    .adm-index__body {
        padding: 10px;
    }

    .adm-index__grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
        gap: 8px;
    }

    .adm-index__item {
        padding: 12px 10px;
    }

    .adm-index-stats {
        grid-template-columns: 1fr;
        gap: 14px;
    }

    .adm-index-stats__row {
        font-size: 14px;
    }
}

/* Admin: downloads hotel form (administration/downloads.php) */
.adm-download-form,
.adm-download-tools,
.adm-download-sticky-save,
.adm-download-anchors {
    font-family: var(--font-family-base);
    font-size: var(--font-size-base);
    font-weight: 300;
    line-height: var(--line-height-body);
    color: var(--color-text);
}

.adm-download-form {
    width: 100%;
    max-width: 100%;
    min-width: 0;
    margin: 8px 0;
    display: flex;
    flex-direction: column;
    gap: 18px;
    box-sizing: border-box;
}

.adm-download-form .textbox,
.adm-download-form .textbox2,
.adm-download-form .textbox3 {
    font-family: var(--font-family-base);
    font-weight: 300;
}

.adm-download-form__section {
    display: flex;
    flex-direction: column;
    gap: 25px;
    padding: 12px 0 4px;
    border-top: 1px solid #d7e0e6;
    max-width: 100%;
    min-width: 0;
    box-sizing: border-box;
}

.adm-download-form__section:first-child {
    border-top: 0;
    padding-top: 0;
}

.adm-download-form__section-title {
    margin: 0 0 2px;
    font-size: 16px;
    font-weight: 700;
    color: #000;
    line-height: 1.3;
}

.adm-download-form__section--contacts,
.adm-download-form__section--service,
.adm-download-form__section--photos,
.adm-download-form__section--videos {
    margin: 100px 0;
    padding: 18px 18px 16px;
    border: 1px solid rgba(var(--color-brand-rgb), 0.14);
    border-top: 1px solid rgba(var(--color-brand-rgb), 0.14);
    border-radius: 12px;
    background: #fff;
    box-shadow: 0 1px 2px rgba(var(--color-brand-rgb), 0.04), 0 6px 16px rgba(var(--color-brand-rgb), 0.06);
    max-width: 100%;
    min-width: 0;
    box-sizing: border-box;
}

.adm-download-form__section--contacts .adm-download-form__section-title,
.adm-download-form__section--service .adm-download-form__section-title,
.adm-download-form__section--photos .adm-download-form__section-title,
.adm-download-form__section--videos .adm-download-form__section-title,
.adm-download-form__section--room .adm-download-form__section-title {
    margin: 0 0 6px;
    padding-bottom: 10px;
    border-bottom: 2px solid var(--color-accent);
    color: var(--color-brand);
    font-size: 17px;
    letter-spacing: 0.01em;
}

.adm-download-form__section--room .adm-download-form__section-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin: 0 0 6px;
    padding-bottom: 10px;
    border-bottom: 2px solid var(--color-accent);
}

.adm-download-form__section--room .adm-download-form__section-head .adm-download-form__section-title {
    margin: 0;
    padding-bottom: 0;
    border-bottom: 0;
    flex: 1;
    min-width: 0;
}

.adm-download-form__row {
    display: grid;
    grid-template-columns: 1fr;
    gap: 6px;
    align-items: start;
    max-width: 100%;
    min-width: 0;
    box-sizing: border-box;
}

.adm-download-form__label {
    font-size: 14px;
    font-weight: 400;
    color: #000;
}

.adm-download-form__field {
    min-width: 0;
}

.adm-download-form__field--inline {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px 12px;
}

.adm-download-form__inline-label {
    font-size: 14px;
    font-weight: 300;
    color: #333;
    white-space: nowrap;
}

@media (max-width: 767px) {
    .adm-download-form__field--distances {
        display: flex;
        flex-direction: column;
        align-items: stretch;
        gap: 8px;
    }

    .adm-download-form__field--distances .adm-download-form__inline-label {
        display: block;
    }

    .adm-download-form__field--distances .adm-download-form__select {
        width: 100%;
        min-width: 0;
        max-width: 100%;
    }
}

.adm-download-form__control,
.adm-download-form__input,
.adm-download-form__select {
    width: 100%;
    max-width: 100%;
    min-width: 0;
    box-sizing: border-box;
    border: 1px solid #b4b4b4;
}

.adm-download-form textarea.adm-download-form__control,
.adm-download-form textarea {
    display: block;
    min-height: 2.75em;
    padding: 8px 10px;
    border: 1px solid #b4b4b4;
    border-radius: 6px;
    background-color: #fbfbfb;
    color: #1a1a1a;
    font: inherit;
    font-size: 14px;
    font-weight: 300;
    line-height: 1.45;
    resize: vertical;
    transition: border-color 0.15s ease, box-shadow 0.15s ease;
}

.adm-download-form textarea.adm-download-form__control:hover {
    border-color: var(--color-accent);
}

.adm-download-form textarea.adm-download-form__control:focus {
    outline: none;
    border-color: var(--color-brand);
    box-shadow: 0 0 0 2px rgba(var(--color-accent-rgb), 0.35);
}

.adm-download-form input.adm-download-form__control,
.adm-download-form__input {
    display: block;
    height: 2.75em;
    padding: 8px 10px;
    border: 1px solid #b4b4b4;
    border-radius: 6px;
    background: #fff;
    color: #1a1a1a;
    font: inherit;
    font-size: 14px;
    font-weight: 300;
    line-height: 1.45;
    transition: border-color 0.15s ease, box-shadow 0.15s ease;
}

.adm-download-form input.adm-download-form__control:hover,
.adm-download-form__input:hover {
    border-color: var(--color-accent);
}

.adm-download-form input.adm-download-form__control:focus,
.adm-download-form__input:focus {
    outline: none;
    border-color: var(--color-brand);
    box-shadow: 0 0 0 2px rgba(var(--color-accent-rgb), 0.35);
}

.adm-download-form__select,
.adm-download-form select.adm-download-form__control {
    display: block;
    height: 2.75em;
    padding: 8px 36px 8px 10px;
    border: 1px solid #b4b4b4;
    border-radius: 6px;
    background-color: #fbfbfb;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath fill='%23003F6A' d='M1.4.6L6 5.2 10.6.6 12 2 6 8 0 2z'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right 12px center;
    background-size: 12px 8px;
    color: #1a1a1a;
    font: inherit;
    font-size: 14px;
    font-weight: 300;
    line-height: 1.45;
    cursor: pointer;
    appearance: none;
    -webkit-appearance: none;
    -moz-appearance: none;
    transition: border-color 0.15s ease, box-shadow 0.15s ease;
}

.adm-download-form__select:hover,
.adm-download-form select.adm-download-form__control:hover {
    border-color: var(--color-accent);
}

.adm-download-form__select:focus,
.adm-download-form select.adm-download-form__control:focus {
    outline: none;
    border-color: var(--color-brand);
    box-shadow: 0 0 0 2px rgba(var(--color-accent-rgb), 0.35);
}

.adm-download-form__select::-ms-expand,
.adm-download-form select.adm-download-form__control::-ms-expand {
    display: none;
}

.adm-download-form__field--inline .adm-download-form__select,
.adm-download-form__field--inline select.adm-download-form__control {
    width: auto;
    min-width: 7.5em;
}

.adm-download-form__field--inline .adm-download-form__input,
.adm-download-form__field--inline input.adm-download-form__control {
    width: auto;
    min-width: 7em;
    max-width: 12em;
}

.adm-download-form__field--inline .adm-download-form__tool-btn {
    white-space: nowrap;
}

.adm-download-form__geocode-status {
    flex-basis: 100%;
    margin: 0;
}

.adm-download-form__geocode-status.is-error {
    color: #a33;
}

.adm-download-form__checks {
    display: flex;
    flex-direction: column;
    gap: 10px;
    padding-top: 4px;
    position: relative;
}

.adm-download-form__checks--inline {
    flex-direction: row;
    flex-wrap: wrap;
    align-items: center;
    gap: 10px 20px;
}

.adm-download-form__checks--inline .adm-download-form__check {
    min-height: 44px;
}

@media (max-width: 479px) {
    .adm-download-form__checks--inline {
        flex-direction: column;
        align-items: flex-start;
    }

    .adm-download-form__checks--inline .adm-download-form__check {
        min-height: 24px;
    }
}

.adm-download-price-flag {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    clip-path: inset(50%);
    white-space: nowrap;
    border: 0;
    pointer-events: none;
}

.adm-download-form__check {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    min-height: 1.75em;
    font-size: 14px;
    font-weight: 300;
    line-height: 1.4;
    color: #1a1a1a;
    cursor: pointer;
    user-select: none;
}

.adm-download-form__check input[type="checkbox"],
.adm-download-form__check input[type="radio"] {
    appearance: none;
    -webkit-appearance: none;
    width: 1.25em;
    height: 1.25em;
    margin: 0;
    flex-shrink: 0;
    box-sizing: border-box;
    border: 1.5px solid #b4b4b4;
    background-color: #fff;
    background-repeat: no-repeat;
    background-position: center;
    cursor: pointer;
    transition: border-color 0.15s ease, background-color 0.15s ease, box-shadow 0.15s ease;
}

.adm-download-form__check input[type="checkbox"] {
    border-radius: 4px;
}

.adm-download-form__check input[type="radio"] {
    border-radius: 50%;
}

.adm-download-form__check:hover input[type="checkbox"],
.adm-download-form__check:hover input[type="radio"] {
    border-color: var(--color-accent);
}

.adm-download-form__check input[type="checkbox"]:checked,
.adm-download-form__check input[type="radio"]:checked {
    border-color: var(--color-brand);
    background-color: var(--color-brand);
}

.adm-download-form__check input[type="checkbox"]:checked {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='none' stroke='%23fff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' d='M2.5 6.2L5 8.7 9.5 3.5'/%3E%3C/svg%3E");
    background-size: 0.75em;
}

.adm-download-form__check input[type="radio"]:checked {
    background-image: radial-gradient(circle, #fff 0 35%, transparent 37%);
}

.adm-download-form__check input[type="checkbox"]:focus-visible,
.adm-download-form__check input[type="radio"]:focus-visible {
    outline: none;
    border-color: var(--color-brand);
    box-shadow: 0 0 0 2px rgba(var(--color-accent-rgb), 0.35);
}

.adm-download-form__file {
    display: block;
    max-width: 100%;
    margin-top: 8px;
    padding: 8px 10px;
    border: 1px dashed var(--color-accent);
    border-radius: 6px;
    background: #f4fafb;
    color: var(--color-brand);
    font: inherit;
    font-size: 13px;
    font-weight: 300;
    box-sizing: border-box;
    cursor: pointer;
}

.adm-download-form__file:hover {
    border-color: var(--color-brand);
    background: #e8f5f8;
}

.adm-download-form__actions {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 14px;
    padding: 8px 0 4px;
}

.adm-download-form__check--datestamp {
    font-weight: 300;
    color: var(--color-brand);
}

.adm-download-form__submit {
    min-height: 2.75em;
    padding: 8px 20px;
    border: 1px solid var(--color-brand);
    border-radius: 6px;
    background: var(--color-brand);
    color: #fff;
    font: inherit;
    font-size: 14px;
    font-weight: 700;
    cursor: pointer;
    transition: background-color 0.15s ease, border-color 0.15s ease;
}

.adm-download-form__submit:hover {
    background: var(--color-accent);
    border-color: var(--color-accent);
}

.adm-download-form__submit--proxy {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
    opacity: 0;
    pointer-events: none;
}

.adm-download-tools {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 16px;
    width: 100%;
    margin: 16px 0 8px;
    clear: both;
    box-sizing: border-box;
}

.adm-download-form--tools {
    margin: 0;
    max-width: none;
    gap: 0;
}

.adm-download-form__section--tools,
.adm-download-form__section--tools:first-child {
    margin: 0;
    height: 100%;
    padding: 18px 18px 16px;
    border: 1px solid rgba(var(--color-brand-rgb), 0.14);
    border-radius: 12px;
    background: #fff;
    box-shadow: 0 1px 2px rgba(var(--color-brand-rgb), 0.04), 0 6px 16px rgba(var(--color-brand-rgb), 0.06);
}

.adm-download-form__input--qty {
    width: 4.5em !important;
    min-width: 4.5em !important;
    max-width: 6em !important;
    min-height: 2.5em;
    font-size: 16px !important;
    font-weight: 300;
    text-align: center;
    resize: none;
}

.adm-download-form__section--room,
.adm-download-form__section--room:first-child {
    margin: 0;
    padding: 18px 18px 16px;
    border: 1px solid rgba(var(--color-brand-rgb), 0.14);
    border-top: 1px solid rgba(var(--color-brand-rgb), 0.14);
    border-radius: 12px;
    background: #fff;
    box-shadow: 0 2px 8px rgba(var(--color-brand-rgb), 0.12);
    max-width: 100%;
    min-width: 0;
    box-sizing: border-box;
}

#adm-download-room-cards {
    display: flex;
    flex-direction: column;
    gap: 16px;
}

#adm-download-room-cards + #adm-download-rooms-form {
    margin-top: 16px;
}

.adm-download-sticky-save {
    position: fixed;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 120;
    width: 100%;
    max-width: 100%;
    padding: 10px 16px calc(10px + env(safe-area-inset-bottom, 0px));
    background: rgba(255, 255, 255, 0.96);
    border-top: 1px solid rgba(var(--color-brand-rgb), 0.14);
    box-shadow: 0 -4px 20px rgba(var(--color-brand-rgb), 0.12);
    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px);
    box-sizing: border-box;
}

.adm-download-sticky-save__inner {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 10px;
    max-width: 960px;
    margin: 0 auto;
}

.adm-download-sticky-save__submit,
.adm-download-sticky-save__delete {
    min-width: 9em;
}

.adm-download-sticky-save__submit[hidden],
.adm-download-sticky-save__delete[hidden] {
    display: none !important;
}

.adm-download-sticky-save__delete {
    min-height: 2.75em;
    padding: 8px 20px;
    border: 1px solid var(--color-brand);
    border-radius: 6px;
    background: var(--color-brand);
    color: #fff;
    font: inherit;
    font-size: 14px;
    font-weight: 700;
    line-height: inherit;
    cursor: pointer;
    transition: background-color 0.15s ease, border-color 0.15s ease;
}

.adm-download-sticky-save__delete:hover {
    background: var(--color-accent);
    border-color: var(--color-accent);
}

.adm-download-sticky-save__delete:focus-visible {
    outline: none;
    border-color: var(--color-brand);
    box-shadow: 0 0 0 2px rgba(var(--color-accent-rgb), 0.35);
}

.adm-download-anchors {
    position: sticky;
    top: 0;
    z-index: 115;
    width: 100%;
    max-width: 100%;
    min-width: 0;
    margin: 0 0 12px;
    padding: calc(8px + env(safe-area-inset-top, 0px)) 0 8px;
    background: rgba(255, 255, 255, 0.96);
    border-bottom: 1px solid rgba(var(--color-brand-rgb), 0.14);
    box-shadow: 0 4px 16px rgba(var(--color-brand-rgb), 0.08);
    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px);
    box-sizing: border-box;
}

.adm-download-anchors__list {
    display: flex;
    flex-wrap: nowrap;
    align-items: center;
    gap: 0;
    width: 100%;
    max-width: 100%;
    min-width: 0;
    margin: 0;
    padding: 0 2px 4px;
    overflow-x: auto;
    overflow-y: hidden;
    -webkit-overflow-scrolling: touch;
    overscroll-behavior-x: contain;
    box-sizing: border-box;
}

.adm-download-anchors__link,
.adm-download-anchors__link:link,
.adm-download-anchors__link:visited {
    flex: 0 0 auto;
    display: inline-flex;
    align-items: center;
    min-height: 44px;
    padding: 8px 2px;
    border: 0;
    border-radius: 0;
    background: none;
    color: var(--color-link);
    font: inherit;
    font-size: 14px;
    font-weight: 400;
    line-height: 1.2;
    text-decoration: none;
    white-space: nowrap;
    box-sizing: border-box;
}

.adm-download-anchors__link + .adm-download-anchors__link::before {
    content: "·";
    display: inline-block;
    margin: 0 10px 0 8px;
    color: rgba(var(--color-brand-rgb), 0.4);
    font-weight: 400;
    pointer-events: none;
}

.adm-download-anchors__link:hover,
.adm-download-anchors__link:focus {
    background: none;
    color: var(--color-link-hover) !important;
    text-decoration: underline;
}

.adm-download-anchors__link:focus-visible {
    outline: none;
    border-radius: 2px;
    box-shadow: 0 0 0 2px rgba(116, 186, 204, 0.35);
}

[id^="adm-download-sec-"] {
    scroll-margin-top: calc(4.75rem + env(safe-area-inset-top, 0px));
    scroll-margin-bottom: calc(72px + env(safe-area-inset-bottom, 0px));
}

.mainBody:has(.adm-download-saved-banner) {
    position: relative;
}

.mainBody:has(.adm-download-saved-banner) .titleOpen {
    padding-right: 52px;
}

.adm-download-saved-banner {
    position: static;
    display: block;
    width: 100%;
    max-width: 100%;
    min-width: 0;
    margin: 0;
    padding: 4px 0;
    border: 0;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
    box-sizing: border-box;
    text-align: left;
}

.adm-download-saved-banner[hidden] {
    display: none !important;
}

.mainBody[hidden] {
    display: none !important;
}

.adm-download-saved-banner__body {
    display: flex;
    flex-wrap: nowrap;
    align-items: center;
    justify-content: space-between;
    gap: 10px 16px;
    width: 100%;
    max-width: 100%;
    min-width: 0;
    box-sizing: border-box;
    text-align: left;
}

.adm-download-saved-banner__text {
    margin: 0;
    flex: 1 1 auto;
    min-width: 0;
    font-size: 15px;
    font-weight: 400;
    line-height: 1.4;
    color: var(--color-brand);
    text-align: left;
}

.adm-download-saved-banner__link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 auto;
    margin-left: auto;
    min-width: 0;
    max-width: 100%;
    white-space: nowrap;
    text-align: center;
    text-decoration: none !important;
    box-sizing: border-box;
}

a.adm-download-saved-banner__link:link,
a.adm-download-saved-banner__link:visited {
    color: var(--color-brand);
}

a.adm-download-saved-banner__link:hover,
a.adm-download-saved-banner__link:focus,
a.adm-download-saved-banner__link:focus-visible {
    color: #fff !important;
}

.adm-download-saved-banner__link:focus-visible {
    outline: none;
    box-shadow: 0 0 0 2px rgba(var(--color-accent-rgb), 0.35);
}

.adm-download-saved-banner__dismiss {
    position: absolute;
    top: 8px;
    right: 8px;
    z-index: 1;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 44px;
    height: 44px;
    margin: 0;
    padding: 0;
    border: 1px solid transparent;
    border-radius: 6px;
    background: transparent;
    color: var(--color-brand);
    font: inherit;
    font-size: 22px;
    font-weight: 700;
    line-height: 1;
    cursor: pointer;
    transition: background-color 0.15s ease, border-color 0.15s ease, color 0.15s ease;
}

.adm-download-saved-banner__dismiss:hover {
    background: transparent;
    border-color: var(--color-brand);
    color: var(--color-brand);
}

.adm-download-unsaved-modal {
    position: fixed;
    inset: 0;
    z-index: 1300;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 16px;
    box-sizing: border-box;
}

.adm-download-unsaved-modal[hidden] {
    display: none !important;
}

.adm-download-unsaved-modal__backdrop {
    position: absolute;
    inset: 0;
    background: rgba(var(--color-brand-rgb), 0.35);
}

.adm-download-unsaved-modal__dialog {
    position: relative;
    z-index: 1;
    width: 100%;
    max-width: 420px;
    min-width: 0;
    padding: 20px 18px 16px;
    border: 1px solid rgba(var(--color-brand-rgb), 0.14);
    border-radius: 10px;
    background: #fff;
    box-shadow: 0 2px 8px rgba(var(--color-brand-rgb), 0.12), 0 12px 32px rgba(var(--color-brand-rgb), 0.18);
    display: flex;
    flex-direction: column;
    gap: 12px;
    box-sizing: border-box;
}

.adm-download-unsaved-modal__title {
    margin: 0;
    font-size: 18px;
    font-weight: 700;
    color: var(--color-brand);
    line-height: 1.3;
}

.adm-download-unsaved-modal__text {
    margin: 0;
    font-size: 14px;
    line-height: 1.45;
    color: #000;
}

.adm-download-unsaved-modal__actions {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    justify-content: flex-end;
}

.adm-download-unsaved-modal__actions .button {
    min-height: 44px;
}

body.adm-download-unsaved-open {
    overflow: hidden;
}

@media (max-width: 479px) {
    .adm-download-unsaved-modal__actions {
        flex-direction: column-reverse;
        align-items: stretch;
    }

    .adm-download-unsaved-modal__actions .button {
        width: 100%;
    }
}

.adm-download-saved-banner__dismiss:focus-visible {
    outline: none;
    border-color: var(--color-brand);
    box-shadow: 0 0 0 2px rgba(var(--color-accent-rgb), 0.35);
}

@media (max-width: 767px) {
    .adm-download-saved-banner {
        max-width: 100%;
        padding: 2px 0;
    }

    .adm-download-saved-banner__body {
        flex-direction: column;
        flex-wrap: wrap;
        align-items: flex-start;
        justify-content: flex-start;
        gap: 10px;
    }

    .adm-download-saved-banner__link {
        width: auto;
        max-width: 100%;
        margin-left: 0;
        white-space: normal;
    }

    .adm-download-saved-banner__dismiss {
        top: 8px;
        right: 8px;
    }
}

.adm-download-has-sticky-save {
    padding-bottom: calc(4.25rem + env(safe-area-inset-bottom, 0px));
}

#adm-download-form,
#adm-download-form #adm-download-sec-rooms {
    scroll-margin-bottom: calc(72px + env(safe-area-inset-bottom, 0px));
}

.adm-download-form__room-photos {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(min(180px, 100%), 1fr));
    gap: 10px;
    max-width: 100%;
    min-width: 0;
}

.adm-download-room-photos {
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.adm-download-room-photos__bulk {
    margin-bottom: 0;
}

.adm-download-room-photos__bulk.is-dragover,
.adm-download-form__room-photos.is-dragover {
    border-color: var(--color-brand);
    background: #e8f5f8;
}

.adm-download-room-photos__select-all {
    margin: 0;
}

.adm-download-room-photos__bar[hidden] {
    display: none;
}

.adm-download-form__room-photos .adm-download-photo__check {
    align-self: flex-start;
    min-height: auto;
    gap: 0;
}

.adm-download-form__room-photos .adm-download-photo:has(.adm-download-photo__del:checked) {
    border-color: var(--color-brand);
}

.adm-download-form__room-photos .adm-download-photo__check[hidden] {
    display: none;
}

/* Room gallery matches hotel slots 1–30: checkbox bulk delete only, no per-slot remove */
.adm-download-form__room-photos .adm-download-photo__remove {
    display: none !important;
}

.adm-download-room-photos__bulk input[type="file"] {
    position: absolute;
    inset: 0;
    opacity: 0;
    cursor: pointer;
}

.adm-download-form__room-photos.is-dragover {
    outline: 2px dashed var(--color-accent);
    outline-offset: 4px;
    border-radius: 6px;
}

.adm-download-form__room-photos .adm-download-photo.is-dragover .adm-download-photo__drop {
    border-color: var(--color-brand);
    background: rgba(var(--color-accent-rgb), 0.2);
}

.adm-download-form__control--room-number,
.adm-download-form__section--room input[name^="room_number_"] {
    max-width: 60px;
    width: 60px;
}

.adm-download-form__row--room-places {
    grid-template-columns: 1fr;
}

.adm-download-form__field--room-places {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 14px 20px;
}

.adm-download-form__place-item {
    display: flex;
    flex-direction: column;
    gap: 6px;
    min-width: 0;
}

.adm-download-form__place-item .adm-download-form__select {
    width: 100%;
}

.adm-download-form__field--inline.adm-download-form__field--room-checks {
    display: grid;
}

.adm-download-form__field--room-checks {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(112px, 1fr));
    gap: 10px;
    width: 100%;
}

.adm-download-form__field--room-checks .adm-download-form__check--amenity {
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: flex-start;
    gap: 6px;
    padding: 28px 8px 10px;
    min-height: 0;
    text-align: center;
    border: 1px solid rgba(var(--color-brand-rgb), 0.14);
    border-radius: 8px;
    background: #fbfbfb;
}

.adm-download-form__field--room-checks .adm-download-form__check--amenity:hover {
    border-color: var(--color-accent);
    background: #fff;
}

.adm-download-form__check--amenity input[type="checkbox"] {
    position: absolute;
    top: 8px;
    left: 8px;
}

.adm-download-form__check--amenity img {
    width: 24px;
    height: 24px;
    object-fit: contain;
    display: block;
    flex-shrink: 0;
}

.adm-download-form__amenity-label {
    font-size: 12px;
    font-weight: 300;
    line-height: 1.25;
    color: var(--color-brand);
    word-break: break-word;
    hyphens: auto;
}

.adm-download-form__check--amenity:has(input:checked) {
    border-color: var(--color-brand);
    background: #fff;
    box-shadow: 0 0 0 1px rgba(var(--color-brand-rgb), 0.12);
}

.adm-room-prices {
    display: flex;
    flex-direction: column;
    gap: 20px;
}

.adm-hotel-price-table {
    display: flex;
    flex-direction: column;
    gap: 14px;
    margin-bottom: 12px;
    width: 100%;
    max-width: 100%;
    min-width: 0;
    box-sizing: border-box;
}

.adm-hotel-price-table__show {
    margin: 0;
}

.adm-hotel-price-table__panel {
    display: flex;
    flex-direction: column;
    gap: 14px;
    width: 100%;
    max-width: 100%;
    min-width: 0;
    box-sizing: border-box;
}

.adm-hotel-price-table__scroll {
    width: 100%;
    max-width: 100%;
    min-width: 0;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    box-sizing: border-box;
}

.adm-hotel-price-table__grid {
    width: 100%;
    max-width: 100%;
    min-width: 0;
    box-sizing: border-box;
    font-size: 13px;
    font-weight: 300;
}

.adm-hotel-price-table__remove-text {
    display: none !important;
}

.adm-hotel-price-table__body {
    display: flex;
    flex-direction: column;
    gap: 12px;
    width: 100%;
    min-width: 0;
}

.adm-hotel-price-table__row {
    position: relative;
    display: flex;
    flex-direction: column;
    gap: 10px;
    width: 100%;
    max-width: 100%;
    min-width: 0;
    padding: 12px;
    border: 1px solid rgba(0, 63, 106, 0.12);
    border-radius: 8px;
    background: #fff;
    box-shadow: 0 2px 8px rgba(0, 63, 106, 0.12);
    box-sizing: border-box;
}

.adm-hotel-price-table__row.adm-hotel-price-table__row--head {
    display: none;
}

.adm-hotel-price-table__row-head {
    display: flex;
    align-items: flex-end;
    gap: 8px;
    width: 100%;
    min-width: 0;
}

.adm-hotel-price-table__cell {
    display: flex;
    min-width: 0;
    box-sizing: border-box;
}

.adm-hotel-price-table__col-name {
    flex: 1 1 auto;
    flex-direction: column;
    align-items: stretch;
    gap: 6px;
}

.adm-hotel-price-table__name-line {
    display: flex;
    flex-wrap: nowrap;
    align-items: center;
    gap: 6px;
    width: 100%;
    min-width: 0;
}

.adm-hotel-price-table__grid .adm-hotel-price-table__name-line .adm-download-form__control {
    flex: 1 1 auto;
    width: auto;
    min-width: 0;
}

.adm-hotel-price-table__name-label,
.adm-hotel-price-table__month-label {
    display: block;
    font-weight: 400;
    color: #000;
    line-height: 1.3;
}

.adm-hotel-price-table__name-label {
    font-size: 14px;
}

.adm-hotel-price-table__month-label {
    font-size: 12px;
    line-height: 1.25;
}

.adm-hotel-price-table__months {
    display: grid;
    grid-template-columns: repeat(6, minmax(0, 1fr));
    gap: 8px 10px;
    width: 100%;
    max-width: 100%;
    min-width: 0;
    box-sizing: border-box;
}

.adm-hotel-price-table__col-month {
    flex-direction: column;
    align-items: stretch;
    justify-content: flex-start;
    gap: 4px;
}

.adm-hotel-price-table__grid .adm-download-form__control {
    width: 100%;
    min-width: 0;
    box-sizing: border-box;
    padding: 8px 10px;
    font-size: 13px;
}

.adm-download-form input.adm-download-form__control.adm-hotel-price-table__price {
    text-align: center;
    background: #fbfbfb;
}

.adm-download-form__control.adm-hotel-price-table__price::placeholder,
.adm-download-form__control.adm-hotel-price-table__price::-webkit-input-placeholder {
    color: transparent;
    opacity: 0;
}

.adm-hotel-price-table__remove {
    display: inline-flex;
    flex: 0 0 auto;
    align-items: center;
    justify-content: center;
    align-self: stretch;
    width: 32px;
    height: auto;
    min-width: 32px;
    min-height: 32px;
    padding: 0;
    border: none;
    background: transparent;
    color: #8a2432;
    font-size: 22px;
    font-weight: 400;
    line-height: 1;
    cursor: pointer;
    border-radius: 0;
    appearance: none;
    -webkit-appearance: none;
    box-shadow: none;
    box-sizing: border-box;
}

.adm-hotel-price-table__remove-icon {
    display: block;
}

.adm-hotel-price-table__remove:hover {
    background: transparent;
    color: #003F6A;
}

.adm-hotel-price-table__remove:focus-visible {
    outline: none;
    box-shadow: 0 0 0 2px rgba(116, 186, 204, 0.35);
}

@media (max-width: 991px) {
    .adm-hotel-price-table__months {
        grid-template-columns: repeat(6, minmax(0, 1fr));
        gap: 8px;
    }
}

@media (max-width: 767px) {
    .adm-hotel-price-table__scroll {
        overflow-x: auto;
    }

    .adm-hotel-price-table__grid {
        font-size: 14px;
    }

    .adm-hotel-price-table__row {
        gap: 8px;
    }

    .adm-hotel-price-table__row-head {
        align-items: stretch;
    }

    .adm-hotel-price-table__months {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .adm-hotel-price-table__grid .adm-download-form__control {
        min-height: 44px;
        padding: 8px 10px;
        font-size: 14px;
    }

    .adm-hotel-price-table__remove {
        width: 44px;
        height: auto;
        min-width: 44px;
        min-height: 44px;
        padding: 0;
        border: none;
        background: transparent;
        color: #8a2432;
        font-size: 26px;
        font-weight: 400;
        line-height: 1;
        border-radius: 0;
        box-shadow: none;
    }

    .adm-hotel-price-table__remove-icon {
        display: block;
    }

    .adm-hotel-price-table__remove:hover {
        background: transparent;
        color: #003F6A;
    }
}

@media (max-width: 479px) {
    .adm-hotel-price-table__row {
        gap: 8px;
        padding: 10px;
    }

    .adm-hotel-price-table__grid .adm-download-form__control {
        font-size: 13px;
        padding: 8px 8px;
    }

    .adm-hotel-price-table__month-label {
        font-size: 11px;
    }
}

.adm-hotel-price-table__add {
    align-self: flex-start;
}

.adm-room-prices__unit,
.adm-room-prices__toolbar,
.adm-room-prices__modes,
.adm-room-prices__panel,
.adm-room-prices__legacy {
    margin: 0;
}

.adm-room-prices__unit {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 10px 14px;
}

.adm-room-prices__unit .adm-download-form__select {
    width: auto;
    min-width: 10em;
}

.adm-room-prices__modes {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
}

.adm-download-form__tool-btn.adm-room-prices__mode.is-active,
.adm-download-form__tool-btn.adm-room-prices__mode.is-active:hover {
    background: var(--color-brand);
    border-color: var(--color-brand);
    color: #fff;
}

.adm-room-prices__panel {
    display: flex;
    flex-direction: column;
    gap: 14px;
    padding: 14px;
    border: 1px solid rgba(var(--color-brand-rgb), 0.14);
    border-radius: 10px;
    background: #fbfbfb;
}

.adm-room-prices__panel[hidden] {
    display: none !important;
}

.adm-room-prices__toolbar {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 10px 14px;
}

.adm-room-prices__year,
.adm-room-prices__price,
.adm-room-prices__cal-price {
    width: 7em;
    max-width: 100%;
}

.adm-room-prices__toolbar .adm-room-prices__year.adm-download-form__select {
    width: auto;
    min-width: 7em;
}

.adm-room-prices__months {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
}

@media (min-width: 640px) {
    .adm-room-prices__months {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}

@media (min-width: 900px) {
    .adm-room-prices__months {
        grid-template-columns: repeat(4, minmax(0, 1fr));
    }
}

.adm-room-prices__month-card {
    display: flex;
    flex-direction: column;
    gap: 8px;
    padding: 12px;
    border: 1px solid rgba(var(--color-brand-rgb), 0.14);
    border-radius: 8px;
    background: #fff;
    box-sizing: border-box;
}

.adm-room-prices__month-card.has-price {
    border-color: var(--color-accent);
    background: rgba(var(--color-accent-rgb), 0.12);
}

.adm-room-prices__month-name {
    font-size: 14px;
    font-weight: 700;
    color: var(--color-brand);
}

.adm-room-prices__month-price-wrap {
    display: flex;
    align-items: center;
    gap: 6px;
}

.adm-room-prices__month-price-label {
    font-size: 13px;
    font-weight: 300;
    color: #4a5a66;
}

.adm-room-prices__month-price {
    width: 100%;
    max-width: 100%;
}

.adm-room-prices__cal-label {
    display: block;
    margin: 0 0 10px;
    min-width: 0;
    text-align: center;
    font-weight: 300;
    color: var(--color-brand);
}

.adm-room-prices__cal-wrap {
    display: flex;
    align-items: stretch;
    gap: 8px;
}

.adm-room-prices__cal-main {
    flex: 1 1 auto;
    min-width: 0;
}

.adm-room-prices__cal-wrap .adm-room-prices__nav {
    flex: 0 0 auto;
    align-self: center;
    min-width: 2.5em;
    padding: 10px 8px;
    font-size: 22px;
    line-height: 1;
}

.adm-room-prices__cal-actions {
    display: flex;
    justify-content: flex-start;
}

.adm-room-prices__cal {
    display: grid;
    grid-template-columns: 1fr;
    gap: 16px;
}

@media (min-width: 720px) {
    .adm-room-prices__cal {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 18px;
    }
}

.adm-room-prices__modal {
    position: fixed;
    inset: 0;
    z-index: 1200;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 16px;
    box-sizing: border-box;
}

.adm-room-prices__modal[hidden] {
    display: none !important;
}

.adm-room-prices__modal-backdrop {
    position: absolute;
    inset: 0;
    background: rgba(var(--color-brand-rgb), 0.35);
}

.adm-room-prices__modal-dialog {
    position: relative;
    z-index: 1;
    width: 100%;
    max-width: 320px;
    padding: 18px 16px 14px;
    border: 1px solid rgba(var(--color-brand-rgb), 0.14);
    border-radius: 10px;
    background: #fff;
    box-shadow: 0 2px 8px rgba(var(--color-brand-rgb), 0.12), 0 12px 32px rgba(var(--color-brand-rgb), 0.18);
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.adm-room-prices__modal-range {
    margin: 0;
    font-size: 14px;
    font-weight: 700;
    color: var(--color-brand);
    text-align: center;
}

.adm-room-prices__modal-field {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: 6px;
    white-space: normal;
}

.adm-room-prices__modal-field .adm-room-prices__cal-price {
    width: 100%;
    max-width: 100%;
}

.adm-room-prices__modal-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    justify-content: flex-end;
}

.adm-room-prices__cal-month {
    min-width: 0;
    padding: 10px;
    border: 1px solid rgba(var(--color-brand-rgb), 0.12);
    border-radius: 8px;
    background: #fff;
}

.adm-room-prices__cal-month-title {
    margin: 0 0 10px;
    text-align: center;
    font-size: 14px;
    font-weight: 700;
    color: var(--color-brand);
}

.adm-room-prices__cal-dow,
.adm-room-prices__cal-grid {
    display: grid;
    grid-template-columns: repeat(7, minmax(0, 1fr));
    gap: 4px;
}

.adm-room-prices__cal-dow {
    margin-bottom: 4px;
    font-size: 12px;
    font-weight: 300;
    color: #4a5a66;
    text-align: center;
}

.adm-room-prices__day {
    min-height: 3.25em;
    padding: 4px 2px;
    border: 1px solid #b4b4b4;
    border-radius: 6px;
    background: #fff;
    color: #000;
    font: inherit;
    font-size: 12px;
    font-weight: 300;
    cursor: pointer;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 2px;
}

.adm-room-prices__day.is-empty {
    border: none;
    background: transparent;
    pointer-events: none;
}

.adm-room-prices__day.has-price {
    border-color: var(--color-accent);
}

.adm-room-prices__day.is-selected {
    border-color: #ff3f00;
    box-shadow: 0 0 0 2px rgba(255, 63, 0, 0.25);
}

.adm-room-prices__day-price {
    font-size: 10px;
    font-weight: 300;
    color: var(--color-brand);
}

.adm-room-prices__legacy {
    color: #8a5a00;
}

.hotel-room-price-from {
    text-align: center;
    font-size: 1.05em;
    font-weight: 700;
    color: var(--color-brand);
    margin: 8px 0 12px;
}

.adm-download-form__delete {
    flex-shrink: 0;
    color: var(--color-brand);
    font-size: 14px;
    font-weight: 300;
    text-decoration: none;
    white-space: nowrap;
    background: none;
    border: none;
    padding: 0;
    margin: 0;
    cursor: pointer;
    font-family: inherit;
    line-height: inherit;
}

.adm-download-form__delete:hover {
    color: var(--color-accent);
}

.adm-download-form__delete:focus-visible {
    outline: none;
    box-shadow: 0 0 0 2px rgba(116, 186, 204, 0.35);
    border-radius: 2px;
}

.adm-download-form__section--room.is-deleting {
    opacity: 0.55;
    pointer-events: none;
}

.adm-download-room-delete-status {
    margin: 0 0 12px;
    padding: 10px 14px;
    background: #fff;
    border: 1px solid rgba(0, 63, 106, 0.12);
    box-shadow: 0 2px 8px rgba(0, 63, 106, 0.12);
    border-radius: 6px;
    color: var(--color-brand);
    font-size: 14px;
}

.adm-download-room-delete-status.is-error {
    color: #8a1f1f;
    border-color: rgba(138, 31, 31, 0.2);
}

@media (max-width: 767px) {
    .adm-download-room-delete-status {
        font-size: 13px;
        padding: 8px 12px;
    }
}

.adm-download-form__section--tools .adm-download-form__section-title {
    margin: 0 0 6px;
    padding-bottom: 10px;
    border-bottom: 2px solid var(--color-accent);
    color: var(--color-brand);
    font-size: 17px;
    letter-spacing: 0.01em;
}

.adm-download-form__hint {
    margin: 0 0 12px;
    font-size: 13px;
    font-weight: 300;
    line-height: 1.45;
    color: #4a5a66;
}

.adm-download-form__tool-btn {
    min-height: 2.75em;
    padding: 8px 16px;
    border: 1px solid var(--color-brand);
    border-radius: 6px;
    background: #fff;
    color: var(--color-brand);
    font: inherit;
    font-size: 13px;
    font-weight: 700;
    cursor: pointer;
    transition: background-color 0.15s ease, border-color 0.15s ease, color 0.15s ease;
}

.adm-download-form__tool-btn:hover {
    background: var(--color-brand);
    color: #fff;
}

.adm-download-form__tool-btn--primary {
    background: var(--color-brand);
    color: #fff;
}

.adm-download-form__tool-btn--primary:hover {
    background: var(--color-accent);
    border-color: var(--color-accent);
    color: #fff;
}

.adm-download-form__position {
    gap: 8px 12px;
}

.adm-download-form__current {
    min-width: 2.5em;
    padding: 0 4px 0 0;
    color: var(--color-brand);
    font-size: 16px;
    font-weight: 300;
    line-height: 2.5em;
    white-space: nowrap;
}

.adm-download-form__stepper {
    display: inline-flex;
    align-items: center;
    gap: 4px;
}

.adm-download-form__step-btn {
    min-width: 2.5em;
    padding: 8px 10px;
}

.adm-download-form__position .adm-download-form__tool-btn:not(.adm-download-form__step-btn) {
    min-width: auto;
    padding: 8px 14px;
}

.adm-download-photos__help {
    margin: 0 0 8px;
    font-size: 12px;
    font-weight: 300;
    color: #555;
}

.adm-download-photos__bulk {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 48px;
    margin-bottom: 10px;
    padding: 10px 14px;
    border: 1px dashed var(--color-accent);
    border-radius: 6px;
    background: #f4fafb;
    color: var(--color-brand);
    font-size: 13px;
    font-weight: 300;
    cursor: pointer;
}

.adm-download-photos__bulk input[type="file"] {
    position: absolute;
    inset: 0;
    opacity: 0;
    cursor: pointer;
}

.adm-download-photos__bulk.is-dragover,
.adm-download-photos__grid.is-dragover,
.adm-download-photo.is-dragover {
    border-color: var(--color-brand);
    background: #e8f5f8;
}

.adm-download-photos__select-all {
    margin: 0 0 10px;
}

.adm-download-form__check input[type="checkbox"]:indeterminate {
    border-color: var(--color-brand);
    background-color: var(--color-brand);
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='none' stroke='%23fff' stroke-width='2' stroke-linecap='round' d='M2.5 6h7'/%3E%3C/svg%3E");
    background-size: 0.75em;
}

.adm-download-photos__grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(min(180px, 100%), 1fr));
    gap: 10px;
    max-width: 100%;
    min-width: 0;
}

.adm-download-photos__bar {
    position: sticky;
    bottom: 0;
    z-index: 8;
    display: flex;
    align-items: center;
    align-self: stretch;
    flex-shrink: 0;
    gap: 10px;
    margin-top: 0;
    padding: 10px 12px;
    box-sizing: border-box;
    background: #fff;
    border: 1px solid rgba(var(--color-brand-rgb), 0.14);
    border-radius: 6px;
    box-shadow: 0 2px 8px rgba(var(--color-brand-rgb), 0.12);
}

.adm-download-photos__bar[hidden] {
    display: none;
}

.adm-download-photos__main .adm-download-photo.is-filled {
    min-height: 240px;
    max-width: 300px;
}

.adm-download-photos__main .adm-download-photo.is-filled .adm-download-photo__drop {
    flex: 1 1 auto;
}

.adm-download-photo {
    position: relative;
    display: flex;
    flex-direction: column;
    gap: 6px;
    padding: 8px;
    border: 1px solid #d7e0e6;
    border-radius: 6px;
    background: #fff;
    box-sizing: border-box;
}

.adm-download-photo.is-filled {
    border-color: var(--color-accent);
}

.adm-download-photo.is-dragging {
    opacity: 0.45;
}

/* Insert-point stripe while reordering (not full-card highlight) */
.adm-download-photo.is-insert-before::before,
.adm-download-photo.is-insert-after::after {
    content: "";
    position: absolute;
    top: 4px;
    bottom: 4px;
    width: 3px;
    background: var(--color-brand);
    border-radius: 1px;
    pointer-events: none;
    z-index: 3;
}

.adm-download-photo.is-insert-before::before {
    left: -7px;
}

.adm-download-photo.is-insert-after::after {
    right: -7px;
}

.adm-download-photo__head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 6px;
}

.adm-download-photo__label {
    font-size: 12px;
    font-weight: 300;
    color: var(--color-brand);
}

.adm-download-photo__drag {
    color: var(--color-accent);
    cursor: grab;
    user-select: none;
    letter-spacing: -2px;
}

.adm-download-photo__drop {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 110px;
    border: 1px dashed #9bb8c4;
    border-radius: 4px;
    background: #f7fafb;
    cursor: pointer;
    overflow: hidden;
}

.adm-download-photo__file {
    position: absolute;
    inset: 0;
    opacity: 0;
    cursor: pointer;
    z-index: 2;
}

.adm-download-photo__hint {
    position: relative;
    z-index: 1;
    padding: 8px;
    text-align: center;
    font-size: 11px;
    font-weight: 300;
    color: #667;
    pointer-events: none;
}

.adm-download-photo__preview {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    z-index: 1;
    pointer-events: none;
    background: #fff;
}

.adm-download-photo.is-filled .adm-download-photo__hint {
    display: none;
}

.adm-download-photos__main .adm-download-photo__del {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
    pointer-events: none;
}

.adm-download-photos__grid .adm-download-photo__check {
    align-self: flex-start;
    min-height: auto;
    gap: 0;
}

.adm-download-photos__grid .adm-download-photo:has(.adm-download-photo__del:checked) {
    border-color: var(--color-brand);
}

.adm-download-photos__grid .adm-download-photo__check[hidden] {
    display: none;
}

.adm-download-photo__remove[hidden] {
    display: none !important;
}

.adm-download-photo__remove {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    align-self: flex-start;
    margin: 0;
    padding: 4px 10px;
    border: 1px solid var(--color-brand);
    border-radius: 6px;
    background: var(--color-brand);
    color: #fff;
    font: inherit;
    font-size: 12px;
    font-weight: 700;
    line-height: 1.2;
    cursor: pointer;
    user-select: none;
    width: auto;
    max-width: 100%;
    box-sizing: border-box;
    appearance: none;
    -webkit-appearance: none;
    transition: background-color 0.15s ease, border-color 0.15s ease;
}

.adm-download-photo__remove:hover {
    background: var(--color-accent);
    border-color: var(--color-accent);
}

.adm-download-photo__remove:focus-visible {
    outline: none;
    border-color: var(--color-brand);
    box-shadow: 0 0 0 2px rgba(var(--color-accent-rgb), 0.35);
}

.adm-download-video {
    display: grid;
    gap: 10px;
    padding: 14px;
    border: 1px solid rgba(var(--color-brand-rgb), 0.12);
    border-radius: 10px;
    background: #fbfbfb;
    max-width: 100%;
    min-width: 0;
    box-sizing: border-box;
}

.adm-download-video__mode .adm-download-form__select {
    max-width: 320px;
}

.adm-download-video__current a {
    word-break: break-all;
}

.adm-download-video__delete {
    margin-top: 2px;
}

.adm-download-dogovor__img {
    display: block;
    max-width: 200px;
    margin: 6px 0;
}

.adm-download-form--list {
    margin: 8px 0;
    gap: 0;
    max-width: 840px;
}

.adm-download-form__section--files,
.adm-download-form__section--files:first-child {
    margin: 0;
    padding: 18px 18px 16px;
    border: 1px solid rgba(var(--color-brand-rgb), 0.14);
    border-top: 1px solid rgba(var(--color-brand-rgb), 0.14);
    border-radius: 12px;
    background: #fff;
    box-shadow: 0 2px 8px rgba(var(--color-brand-rgb), 0.12);
    gap: 0;
    max-width: 100%;
    min-width: 0;
    box-sizing: border-box;
}

.adm-download-form__list-head,
.adm-download-form__list-item {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 8px 14px;
    align-items: center;
    padding: 8px 10px;
    box-sizing: border-box;
}

.adm-download-form__list-head {
    margin: 0 0 8px;
    font-size: 13px;
    font-weight: 500;
    color: #000;
    background: #fbfbfb;
    border: 1px solid #b4b4b4;
    border-radius: 6px;
}

.adm-download-form__list {
    display: flex;
    flex-direction: column;
}

.adm-download-form__list-cat {
    padding: 8px 10px;
    font-size: 14px;
    font-weight: 300;
    color: #000;
}

.adm-download-form__list-cat a {
    color: var(--color-brand);
    text-decoration: none;
}

.adm-download-form__list-cat a:hover {
    color: var(--color-accent);
}

.adm-download-form__list-cat--open {
    background: #f4fafb;
    border-radius: 6px;
}

.adm-download-form__list-hotels {
    display: flex;
    flex-direction: column;
    margin: 0 0 6px;
    padding-left: 8px;
}

.adm-download-form__list-item {
    font-size: 14px;
    font-weight: 300;
    border-bottom: 1px solid #e8eef2;
}

.adm-download-form__list-item:last-child {
    border-bottom: 0;
}

.adm-download-form__list-name {
    min-width: 0;
    color: #000;
}

.adm-download-form__list-name a {
    color: var(--color-brand);
    text-decoration: none;
}

.adm-download-form__list-name a:hover,
.adm-download-form__list-opts a:hover {
    color: var(--color-accent);
}

.adm-download-form__list-rank {
    margin-left: 0;
    font-size: 12px;
    font-weight: 300;
    color: #666;
}

.adm-download-form__list-opts {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: flex-end;
    gap: 6px;
    white-space: nowrap;
    font-size: 13px;
}

.adm-download-form__list-opts a {
    color: var(--color-brand);
    text-decoration: none;
    font-weight: 300;
}

.adm-download-form__list-pos {
    display: inline-flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 6px;
    margin: 0;
}

.adm-download-form__list-pos .adm-download-form__input--qty {
    width: 3.5em !important;
    min-width: 3.5em !important;
    max-width: 4.5em !important;
    min-height: 2.5em;
    background: #fbfbfb;
}

.adm-download-form__list-pos .adm-download-form__tool-btn {
    min-height: 2.5em;
    padding: 6px 12px;
}

.adm-download-form__list-empty {
    padding: 16px 10px;
    font-size: 14px;
    font-weight: 300;
    color: #000;
    text-align: center;
}

.adm-download-form__list-empty a {
    color: var(--color-brand);
    font-weight: 300;
}

.adm-download-form__list-empty a:hover {
    color: var(--color-accent);
}

@media (max-width: 720px) {
    .adm-download-form__field--room-places {
        grid-template-columns: 1fr;
    }
    .adm-download-anchors__link,
    .adm-download-anchors__link:link,
    .adm-download-anchors__link:visited {
        min-height: 44px;
        padding: 8px 2px;
        font-size: 13px;
    }
    .adm-download-anchors__link + .adm-download-anchors__link::before {
        margin: 0 8px 0 6px;
    }
    .adm-download-sticky-save__inner {
        justify-content: stretch;
    }
    .adm-download-sticky-save__submit,
    .adm-download-sticky-save__delete {
        flex: 1 1 auto;
        width: 100%;
    }
    .adm-download-tools {
        grid-template-columns: 1fr;
    }
    .adm-download-form__room-photos {
        grid-template-columns: repeat(auto-fill, minmax(min(150px, 100%), 1fr));
    }
    .adm-download-room-photos__bulk {
        min-height: 44px;
        padding: 8px 12px;
        font-size: 12px;
    }
    .adm-room-prices__cal {
        grid-template-columns: 1fr;
    }
    .adm-download-form__list-head,
    .adm-download-form__list-item {
        grid-template-columns: 1fr;
    }
    .adm-download-form__list-opts {
        justify-content: flex-start;
    }
}

/* Auth cards (login.php, register.php) — modifier so other .newForm pages stay unchanged */
.newForm.newForm--auth {
    width: 100%;
    max-width: 440px;
    margin: 16px auto 28px;
    padding: 28px 28px 24px;
    box-sizing: border-box;
    background: #fff;
    color: #222;
    border: 1px solid rgba(var(--color-brand-rgb), 0.12);
    border-radius: 16px;
    box-shadow: 0 1px 2px rgba(var(--color-brand-rgb), 0.05), 0 10px 28px rgba(var(--color-brand-rgb), 0.1);
    overflow: hidden;
}

.newForm.newForm--auth::before {
    content: "";
    display: block;
    height: 4px;
    margin: -28px -28px 22px;
    background: linear-gradient(90deg, var(--color-brand) 0%, var(--color-accent) 100%);
}

.newForm--auth .newForm__tabs {
    display: flex;
    gap: 4px;
    margin: 0 0 20px;
    padding: 4px;
    background: #f0f4f7;
    border-radius: 10px;
}

.newForm--auth .newForm__tab {
    flex: 1;
    margin: 0;
    padding: 9px 10px;
    border: 0;
    border-radius: 8px;
    background: transparent;
    color: var(--color-brand);
    font: inherit;
    font-size: 14px;
    font-weight: 700;
    line-height: 1.3;
    text-align: center;
    cursor: pointer;
    appearance: none;
    -webkit-appearance: none;
    transition: background 0.15s ease, color 0.15s ease;
}

.newForm--auth .newForm__tab:hover,
.newForm--auth .newForm__tab:focus {
    background: #e4eef2;
    color: var(--color-brand);
    outline: none;
}

.newForm--auth .newForm__tab.is-active,
.newForm--auth .newForm__tab.is-active:hover,
.newForm--auth .newForm__tab.is-active:focus {
    background: var(--color-brand);
    color: #fff;
}

.newForm--auth .newForm__panel[hidden] {
    display: none;
}

.newForm--auth .hotelTitle {
    margin: 0 0 6px;
    padding: 0;
    font-size: 22px;
    font-weight: 700;
    line-height: 1.3;
    color: var(--color-brand);
    text-align: center;
}

.newForm--auth .newForm__hint {
    margin: 0 0 22px;
    padding: 0;
    font-size: 13px;
    line-height: 1.4;
    color: #5a6b75;
    text-align: center;
}

.newForm--auth .partto {
    display: flex;
    flex-direction: column;
    gap: 14px;
}

.newForm--auth .newForm__field {
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.newForm--auth .forInput {
    display: block;
    margin: 0;
    font-size: 13px;
    font-weight: 700;
    line-height: 1.3;
    color: var(--color-brand);
}

.newForm--auth .formInput {
    display: block;
    width: 100%;
    max-width: 100%;
    height: 44px;
    margin: 0;
    padding: 8px 12px;
    box-sizing: border-box;
    border: 1px solid #c5d2da;
    border-radius: 8px;
    background: #fff;
    color: #1a1a1a;
    font: inherit;
    font-size: 14px;
    line-height: 1.45;
    transition: border-color 0.15s ease, box-shadow 0.15s ease;
}

.newForm--auth .formInput:hover {
    border-color: var(--color-accent);
    box-shadow: none;
}

.newForm--auth .formInput:focus {
    outline: none;
    border-color: var(--color-brand);
    box-shadow: 0 0 0 3px rgba(var(--color-accent-rgb), 0.35);
}

.newForm--auth .newForm__check {
    display: flex;
    align-items: center;
    gap: 8px;
}

.newForm--auth .newForm__check input[type="checkbox"] {
    width: 16px;
    height: 16px;
    margin: 0;
    flex-shrink: 0;
    accent-color: var(--color-brand);
    cursor: pointer;
}

.newForm--auth .newForm__check .forInput {
    font-weight: 500;
    color: #333;
    cursor: pointer;
}

.newForm--auth .newForm__ok {
    margin: 0;
    padding: 8px 12px;
    border: 1px solid var(--color-accent);
    border-radius: 8px;
    background: #f0f7fa;
    color: var(--color-brand);
    font-size: 13px;
    font-weight: 500;
    text-align: center;
}

.newForm--auth .newForm__captcha {
    display: flex;
    justify-content: center;
    max-width: 100%;
    overflow-x: auto;
}

.newForm--auth .g-recaptcha {
    margin: 2px 0 4px;
}

.newForm--auth .stepTo2 {
    float: none;
    display: block;
    width: 100%;
    height: 46px;
    margin: 4px 0 0;
    padding: 0 16px;
    border: 1px solid var(--color-brand);
    border-radius: 8px;
    background: var(--color-brand);
    color: #fff;
    font: inherit;
    font-size: 15px;
    font-weight: 700;
    line-height: 44px;
    text-align: center;
    cursor: pointer;
    appearance: none;
    -webkit-appearance: none;
    transition: background 0.15s ease, border-color 0.15s ease;
}

.newForm--auth .stepTo2:hover,
.newForm--auth .stepTo2:focus {
    background: var(--color-accent);
    border-color: var(--color-accent);
    color: #fff;
}

.newForm--auth .newForm__footer {
    margin: 2px 0 0;
    padding: 0;
    font-size: 13px;
    line-height: 1.4;
    color: #5a6b75;
    text-align: center;
}

.newForm--auth .newForm__footer a,
.newForm--auth .newForm__footer a:link,
.newForm--auth .newForm__footer a:visited {
    color: var(--color-brand);
    font-weight: 700;
    text-decoration: none;
}

.newForm--auth .newForm__footer a:hover {
    color: var(--color-accent);
    text-decoration: underline;
}

@media (max-width: 576px) {
    .newForm.newForm--auth {
        margin: 8px 0 20px;
        padding: 22px 16px 18px;
        border-radius: 12px;
    }

    .newForm.newForm--auth::before {
        margin: -22px -16px 18px;
    }

    .newForm--auth .hotelTitle {
        font-size: 20px;
    }

    .newForm--auth .newForm__tab {
        font-size: 13px;
        padding: 8px 6px;
    }
}

/* jQuery UI datepicker — shared skin (.nav-datepicker), matches .adm-room-prices__cal-month */
/* Public theme loads jquery-ui.js 1.12 (no jquery-ui.css). v1.12 dpDiv lacks ui-helper-hidden-accessible;
   _updateDatepicker (e.g. minDate/maxDate on init) fills #ui-datepicker-div in document flow unless hidden.
   No !important — jQuery .show() / inline display must win when the popup is open. */
#ui-datepicker-div {
    display: none;
}

.nav-datepicker.ui-datepicker.ui-widget.ui-widget-content {
    box-sizing: border-box;
    width: min(496px, calc(100vw - 24px));
    min-width: 0;
    padding: 10px;
    border: 1px solid rgba(var(--color-brand-rgb), 0.12);
    border-radius: 8px;
    background: #fff;
    color: #000;
    font-family: inherit;
    font-size: 12px;
    line-height: 1.4;
    z-index: 1200;
}

#ui-datepicker-div.nav-datepicker {
    z-index: 1200;
}

/* Header row — mirrors .adm-room-prices__cal-month-title + .adm-room-prices__nav */
.nav-datepicker.ui-widget .ui-datepicker-header.ui-widget-header {
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    position: static;
    padding: 0 0 10px;
    margin: 0;
    border: 0;
    border-radius: 0;
    background: transparent;
    color: var(--color-brand);
    font-weight: 700;
}

.nav-datepicker .ui-datepicker-title {
    flex: 1 1 auto;
    order: 2;
    min-width: 0;
    margin: 0;
    line-height: 1.4;
    text-align: center;
    font-size: 14px;
    font-weight: 700;
    color: var(--color-brand);
}

.nav-datepicker .ui-datepicker-title select.ui-datepicker-month,
.nav-datepicker .ui-datepicker-title select.ui-datepicker-year {
    display: none !important;
}

/* Nav buttons — layout only; chrome from .adm-download-form__tool-btn .adm-room-prices__nav */
.nav-datepicker .ui-datepicker-prev,
.nav-datepicker .ui-datepicker-next {
    position: static;
    top: auto;
    left: auto;
    right: auto;
    flex: 0 0 auto;
    order: 1;
    box-sizing: border-box;
    width: auto;
    height: auto;
    margin: 0;
    text-decoration: none;
    display: flex;
    align-items: center;
    justify-content: center;
}

.nav-datepicker .ui-datepicker-next {
    order: 3;
}

.nav-datepicker .adm-room-prices__nav {
    min-width: 2.5em;
    padding: 10px 8px;
    font-size: 22px;
    line-height: 1;
    font-weight: 400;
}

/* jQuery UI theme (admin) — match .adm-download-form__tool-btn / .adm-room-prices__nav */
.nav-datepicker.ui-widget .ui-datepicker-header a.ui-datepicker-prev.adm-download-form__tool-btn.adm-room-prices__nav:not(.ui-state-disabled),
.nav-datepicker.ui-widget .ui-datepicker-header a.ui-datepicker-next.adm-download-form__tool-btn.adm-room-prices__nav:not(.ui-state-disabled) {
    border: 1px solid var(--color-brand);
    background: #fff;
    background-image: none;
    color: var(--color-brand);
    font-weight: 700;
    cursor: pointer;
}

.nav-datepicker.ui-widget .ui-datepicker-header a.ui-datepicker-prev.adm-download-form__tool-btn.adm-room-prices__nav:not(.ui-state-disabled):hover,
.nav-datepicker.ui-widget .ui-datepicker-header a.ui-datepicker-next.adm-download-form__tool-btn.adm-room-prices__nav:not(.ui-state-disabled):hover,
.nav-datepicker.ui-widget .ui-datepicker-header a.ui-datepicker-prev.adm-download-form__tool-btn.adm-room-prices__nav:not(.ui-state-disabled).ui-state-hover,
.nav-datepicker.ui-widget .ui-datepicker-header a.ui-datepicker-next.adm-download-form__tool-btn.adm-room-prices__nav:not(.ui-state-disabled).ui-state-hover,
.nav-datepicker.ui-widget .ui-datepicker-header a.ui-datepicker-prev.adm-download-form__tool-btn.adm-room-prices__nav:not(.ui-state-disabled).ui-datepicker-prev-hover,
.nav-datepicker.ui-widget .ui-datepicker-header a.ui-datepicker-next.adm-download-form__tool-btn.adm-room-prices__nav:not(.ui-state-disabled).ui-datepicker-next-hover,
.nav-datepicker.ui-widget .ui-datepicker-header a.ui-datepicker-prev.adm-download-form__tool-btn.adm-room-prices__nav:not(.ui-state-disabled):focus-visible,
.nav-datepicker.ui-widget .ui-datepicker-header a.ui-datepicker-next.adm-download-form__tool-btn.adm-room-prices__nav:not(.ui-state-disabled):focus-visible {
    border-color: var(--color-brand);
    background: var(--color-brand);
    background-image: none;
    color: #fff;
}

.nav-datepicker .ui-datepicker-prev.ui-datepicker-prev-hover,
.nav-datepicker .ui-datepicker-next.ui-datepicker-next-hover {
    top: auto;
    left: auto;
    right: auto;
}

.nav-datepicker.ui-widget .ui-datepicker-header a.ui-datepicker-prev.ui-state-disabled,
.nav-datepicker.ui-widget .ui-datepicker-header a.ui-datepicker-next.ui-state-disabled,
.nav-datepicker.ui-widget .ui-datepicker-header a.ui-datepicker-prev.ui-state-disabled:hover,
.nav-datepicker.ui-widget .ui-datepicker-header a.ui-datepicker-next.ui-state-disabled:hover,
.nav-datepicker.ui-widget .ui-datepicker-header a.ui-datepicker-prev.ui-state-disabled.ui-state-hover,
.nav-datepicker.ui-widget .ui-datepicker-header a.ui-datepicker-next.ui-state-disabled.ui-state-hover {
    opacity: 0.45;
    cursor: default;
    pointer-events: none;
    border-color: var(--color-brand);
    background: #fff;
    background-image: none;
    color: var(--color-brand);
}

.nav-datepicker .ui-datepicker-prev span,
.nav-datepicker .ui-datepicker-next span,
.nav-datepicker .ui-datepicker-prev .ui-icon,
.nav-datepicker .ui-datepicker-next .ui-icon {
    filter: none;
    background: none;
    background-image: none;
    text-indent: 0;
    overflow: visible;
    width: auto;
    height: auto;
    margin: 0;
    padding: 0;
    position: static;
    inset: auto;
    display: block;
    font-size: inherit;
    line-height: inherit;
    font-weight: inherit;
    color: inherit;
}

/* Day grid — .adm-room-prices__cal-dow + .adm-room-prices__cal-grid + .adm-room-prices__day */
.nav-datepicker .ui-datepicker-calendar {
    width: 100%;
    margin: 0;
    border-collapse: separate;
    border-spacing: 4px;
    table-layout: fixed;
    font-size: 12px;
}

.nav-datepicker .ui-datepicker-calendar th {
    padding: 0 0 4px;
    border: 0;
    color: #4a5a66;
    font-size: 12px;
    font-weight: 400;
    text-align: center;
}

.nav-datepicker.ui-widget .ui-datepicker-calendar td {
    padding: 0;
    border: 0;
}

.nav-datepicker.ui-widget .ui-datepicker-calendar td a.ui-state-default,
.nav-datepicker.ui-widget .ui-datepicker-calendar td span.ui-state-default {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 3.25em;
    padding: 4px 2px;
    border: 1px solid #b4b4b4;
    border-radius: 6px;
    background: #fff;
    color: #000;
    font-size: 12px;
    font-weight: 400;
    text-align: center;
    text-decoration: none;
    box-sizing: border-box;
}

.nav-datepicker.ui-widget .ui-datepicker-calendar td a.ui-state-default.ui-state-hover {
    border-color: var(--color-accent);
    background: rgba(var(--color-accent-rgb), 0.12);
    color: var(--color-brand);
}

.nav-datepicker.ui-widget .ui-datepicker-calendar td a.ui-state-default.ui-state-highlight {
    border-color: var(--color-accent);
    background: rgba(var(--color-accent-rgb), 0.12);
    color: var(--color-brand);
    font-weight: 700;
}

.nav-datepicker.ui-widget .ui-datepicker-calendar td a.ui-state-default.ui-state-active {
    border-color: var(--color-brand);
    background: var(--color-brand);
    color: #fff;
    font-weight: 700;
}

.nav-datepicker .ui-datepicker-calendar td.ui-datepicker-other-month .ui-state-default {
    border: none;
    background: transparent;
    color: transparent;
    pointer-events: none;
}

.nav-datepicker .ui-datepicker-buttonpane {
    display: none;
}

/* Shared public date range picker (.nav-date-range) — Sutochno-style */
.nav-date-range {
    position: relative;
    min-width: 0;
}

.nav-date-range__trigger {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    width: 100%;
    min-height: 2.75em;
    padding: 8px 12px;
    border: 1px solid #b4b4b4;
    border-radius: 6px;
    background: #fbfbfb;
    color: #1a1a1a;
    font: inherit;
    font-size: 14px;
    line-height: 1.45;
    text-align: left;
    cursor: pointer;
    transition: border-color 0.15s ease, box-shadow 0.15s ease;
    box-sizing: border-box;
}

.nav-date-range__trigger:hover {
    border-color: var(--color-accent);
}

.nav-date-range__trigger:focus {
    outline: none;
    border-color: var(--color-brand);
    box-shadow: 0 0 0 2px rgba(var(--color-accent-rgb), 0.35);
}

.nav-date-range__trigger-text {
    flex: 1 1 auto;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.nav-date-range__trigger-icon {
    flex: 0 0 auto;
    width: 18px;
    height: 18px;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18' viewBox='0 0 18 18' fill='none'%3E%3Crect x='2' y='3.5' width='14' height='12.5' rx='1.5' stroke='%23003F6A' stroke-width='1.4'/%3E%3Cpath d='M2 7h14M6 2v3M12 2v3' stroke='%23003F6A' stroke-width='1.4' stroke-linecap='round'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: center;
    background-size: contain;
}

.nav-date-range__popover {
    position: fixed;
    inset: 0;
    z-index: 12000;
    pointer-events: none;
}

.nav-date-range__popover:not([hidden]) {
    pointer-events: auto;
}

.nav-date-range__backdrop {
    position: absolute;
    inset: 0;
    background: rgba(0, 32, 56, 0.35);
    opacity: 0;
    transition: opacity 0.2s ease;
}

.nav-date-range__popover:not([hidden]) .nav-date-range__backdrop {
    opacity: 1;
}

.nav-date-range__popover:not(.nav-date-range__popover--sheet) .nav-date-range__backdrop {
    background: transparent;
    pointer-events: none;
}

.nav-date-range__panel {
    position: absolute;
    z-index: 1;
    box-sizing: border-box;
    width: min(560px, calc(100vw - 24px));
    padding: 14px 16px 12px;
    border: 1px solid #d8e4ea;
    border-radius: 10px;
    background: #fff;
    box-shadow: 0 8px 28px rgba(0, 63, 106, 0.18);
    color: #1a1a1a;
}

.nav-date-range__months {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px 18px;
}

.nav-date-range__month-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    margin-bottom: 8px;
}

.nav-date-range__month-title {
    flex: 1 1 auto;
    min-width: 0;
    text-align: center;
    font-size: 15px;
    font-weight: 700;
    color: var(--color-brand);
}

.nav-date-range__nav {
    flex: 0 0 auto;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2.25em;
    height: 2.25em;
    padding: 0;
    border: 1px solid #b4b4b4;
    border-radius: 6px;
    background: #fbfbfb;
    color: var(--color-brand);
    font-size: 18px;
    line-height: 1;
    cursor: pointer;
    transition: border-color 0.15s ease, background-color 0.15s ease;
}

.nav-date-range__nav:hover,
.nav-date-range__nav:focus {
    border-color: var(--color-accent);
    background: #fff;
    outline: none;
    box-shadow: 0 0 0 2px rgba(var(--color-accent-rgb), 0.35);
}

.nav-date-range__weekdays {
    display: grid;
    grid-template-columns: repeat(7, 1fr);
    gap: 2px;
    margin-bottom: 4px;
}

.nav-date-range__weekday {
    text-align: center;
    font-size: 11px;
    font-weight: 600;
    color: #6b7c87;
    padding: 2px 0;
}

.nav-date-range__days {
    display: grid;
    grid-template-columns: repeat(7, 1fr);
    gap: 0;
}

.nav-date-range__day {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    min-width: 0;
    min-height: 2.25em;
    margin: 1px 0;
    padding: 0;
    border: 0;
    border-radius: 0;
    background: transparent;
    color: #1a1a1a;
    font: inherit;
    font-size: 13px;
    cursor: pointer;
    transition: color 0.12s ease;
    z-index: 0;
}

.nav-date-range__day::before {
    content: '';
    position: absolute;
    inset: 2px 0;
    border-radius: 0;
    background: transparent;
    transition: background-color 0.12s ease;
    z-index: -1;
}

.nav-date-range__day.is-empty {
    visibility: hidden;
    pointer-events: none;
}

.nav-date-range__day.is-disabled,
.nav-date-range__day:disabled {
    color: #b8c4cc;
    cursor: not-allowed;
}

.nav-date-range__day:not(.is-disabled):not(:disabled):not(.is-edge):not(.is-in-range):hover::before {
    background: rgba(116, 186, 204, 0.2);
    border-radius: 6px;
    inset: 2px;
}

.nav-date-range__day:not(.is-disabled):not(:disabled):not(.is-edge):not(.is-in-range):hover {
    color: var(--color-brand);
}

.nav-date-range__day.is-today:not(.is-edge) {
    font-weight: 700;
    color: var(--color-brand);
}

.nav-date-range__day.is-in-range::before {
    background: rgba(116, 186, 204, 0.22);
}

.nav-date-range__day.is-in-range {
    color: var(--color-brand);
}

.nav-date-range__day.is-in-range.is-preview::before {
    background: rgba(116, 186, 204, 0.14);
}

.nav-date-range__day.is-in-range.is-preview {
    color: #2a6078;
}

.nav-date-range__day.is-edge::before {
    background: var(--color-brand);
    border-radius: 6px;
    inset: 2px;
}

.nav-date-range__day.is-edge {
    color: #fff;
    font-weight: 700;
}

.nav-date-range__day.is-edge.is-preview::before {
    background: rgba(0, 63, 106, 0.72);
}

.nav-date-range__day.is-checkin::before {
    border-radius: 6px 0 0 6px;
    right: 0;
}

.nav-date-range__day.is-checkout::before {
    border-radius: 0 6px 6px 0;
    left: 0;
}

.nav-date-range__day.is-checkin.is-checkout::before {
    border-radius: 6px;
    inset: 2px;
}

.nav-date-range__day.is-checkin:not(.is-checkout)::before {
    border-top-right-radius: 0;
    border-bottom-right-radius: 0;
}

.nav-date-range__day.is-checkout:not(.is-checkin)::before {
    border-top-left-radius: 0;
    border-bottom-left-radius: 0;
}

.nav-date-range__footer {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin-top: 12px;
    padding-top: 12px;
    border-top: 1px solid #e8eef2;
}

.nav-date-range__footer-nights {
    font-size: 14px;
    font-weight: 600;
    color: var(--color-brand);
}

.nav-date-range__apply {
    min-height: 2.5em;
    padding: 6px 18px;
    border: 1px solid var(--color-brand);
    border-radius: 6px;
    background: var(--color-brand);
    color: #fff;
    font: inherit;
    font-size: 14px;
    font-weight: 700;
    cursor: pointer;
    transition: background-color 0.15s ease, border-color 0.15s ease;
}

.nav-date-range__apply:hover:not(:disabled),
.nav-date-range__apply:focus:not(:disabled) {
    background: var(--color-accent);
    border-color: var(--color-accent);
    outline: none;
}

.nav-date-range__apply:disabled {
    opacity: 0.45;
    cursor: not-allowed;
}

body.nav-date-range-open {
    overflow: hidden;
}

@media (max-width: 767px) {
    .nav-date-range__popover--sheet .nav-date-range__panel {
        left: 0 !important;
        right: 0;
        bottom: 0;
        top: auto !important;
        width: 100%;
        max-width: none;
        margin: 0;
        border-radius: 14px 14px 0 0;
        padding: 16px 16px calc(16px + env(safe-area-inset-bottom, 0px));
        transform: translateY(0);
        animation: nav-date-range-sheet-in 0.22s ease;
    }

    .nav-date-range__months {
        grid-template-columns: 1fr;
    }

    .nav-date-range__apply {
        flex: 0 0 auto;
    }
}

@keyframes nav-date-range-sheet-in {
    from {
        transform: translateY(100%);
    }
    to {
        transform: translateY(0);
    }
}

/* Public hotel room listing (enext parity, navigatorV2026 colors) */
.hotel-rooms {
    margin: 44px 0 52px;
}

.hotel-rooms-filter {
    margin: 0 0 20px;
}

.hotel-rooms-filter__title {
    margin: 0 0 14px;
    font-size: 17px;
    font-weight: 700;
    color: var(--color-brand);
}

.hotel-rooms-filter__grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 12px 14px;
    align-items: end;
}

.hotel-rooms-filter__field--dates {
    grid-column: span 1;
}

.hotel-rooms-filter__field {
    min-width: 0;
}

.hotel-rooms-filter__label {
    display: block;
    margin: 0 0 6px;
    font-size: 13px;
    font-weight: 500;
    color: #000;
}

.hotel-rooms-filter__control {
    display: block;
    width: 100%;
    min-height: 2.75em;
    padding: 8px 12px;
    border: 1px solid #b4b4b4;
    border-radius: 6px;
    background: #fbfbfb;
    color: #1a1a1a;
    font: inherit;
    font-size: 14px;
    line-height: 1.45;
    transition: border-color 0.15s ease, box-shadow 0.15s ease;
}

.hotel-rooms-filter__select {
    padding-right: 36px;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath fill='%23003F6A' d='M1.4.6L6 5.2 10.6.6 12 2 6 8 0 2z'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right 12px center;
    background-size: 12px 8px;
    appearance: none;
    -webkit-appearance: none;
    cursor: pointer;
}

.hotel-rooms-filter__control:hover {
    border-color: var(--color-accent);
}

.hotel-rooms-filter__control:focus {
    outline: none;
    border-color: var(--color-brand);
    box-shadow: 0 0 0 2px rgba(var(--color-accent-rgb), 0.35);
}

.hotel-rooms-filter .nav-date-range__trigger {
    width: 100%;
}

.hotel-rooms-filter__actions {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px 16px;
    flex-wrap: wrap;
    margin-top: 14px;
}

.hotel-rooms-filter__submit {
    flex: 0 1 auto;
    min-height: 2.75em;
    padding: 8px 20px;
    border: 1px solid var(--color-brand);
    border-radius: 6px;
    background: var(--color-brand);
    color: #fff;
    font: inherit;
    font-size: 14px;
    font-weight: 700;
    cursor: pointer;
    transition: background-color 0.15s ease, border-color 0.15s ease;
}

.hotel-rooms-filter__submit:hover,
.hotel-rooms-filter__submit:focus {
    background: var(--color-accent);
    border-color: var(--color-accent);
    color: #fff;
    outline: none;
}

.hotel-rooms-filter__reset {
    margin-left: auto;
    color: var(--color-link);
    font-size: 14px;
    font-weight: 500;
    line-height: 1.45;
    text-decoration: underline;
    text-underline-offset: 2px;
    white-space: nowrap;
}

.hotel-rooms-filter__reset:hover,
.hotel-rooms-filter__reset:focus {
    color: var(--color-link-hover);
}

.hotel-rooms-filter__reset:focus-visible {
    outline: 0;
    border-radius: 4px;
    box-shadow: 0 0 0 2px rgba(var(--color-accent-rgb), 0.35);
}

.hotel-rooms__header {
    margin-bottom: 16px;
}

.hotel-rooms__title {
    margin: 0;
    color: var(--color-brand);
    font-size: var(--font-size-h2);
    font-weight: 400;
    line-height: var(--line-height-h2);
}

.hotel-rooms__list {
    width: 100%;
    display: flex;
    flex-direction: column;
}

.hotel-rooms__head,
.hotel-rooms__card {
    display: grid;
    grid-template-columns: minmax(0, 400px) minmax(0, 1fr) minmax(240px, max-content);
    align-items: start;
    width: 100%;
}

.hotel-rooms__item {
    width: 100%;
    min-width: 0;
    border-bottom: 1px solid #e3ecef;
}

.hotel-rooms__head .hotel-rooms__col {
    padding-top: 18px;
    padding-bottom: 18px;
    border-bottom: 1px solid #e3ecef;
    color: #8ea6ab;
    font-size: var(--font-size-body);
    font-weight: 500;
    vertical-align: middle;
}

.hotel-rooms__head .hotel-rooms__col--price {
    text-align: center;
}

.hotel-rooms__card .hotel-rooms__col {
    padding: 32px 0 32px 24px;
    vertical-align: top;
}

.hotel-rooms__card .hotel-rooms__col--gallery {
    padding-left: 0;
}

.hotel-rooms__col {
    min-width: 0;
    max-width: 100%;
}

.hotel-rooms__col--gallery {
    width: auto;
    min-width: 0;
}

.hotel-rooms__col--info {
    width: 100%;
}

.hotel-rooms__col--price {
    width: auto;
    min-width: 0;
    text-align: center;
}

/* Offer slider (room gallery) — enext: 400×265 main, 90×60 thumbs */
.hotel-rooms .offer-slider-container {
    position: relative;
    width: 100%;
    min-width: 0;
    max-width: 400px;
    margin: 0;
}

.hotel-rooms .offer-slider-block {
    position: relative;
    width: 100%;
    overflow: hidden;
    border-radius: 8px;
}

.hotel-rooms .offer-slider-images-container {
    position: relative;
    width: 100%;
    aspect-ratio: 400 / 265;
    max-height: 265px;
}

.hotel-rooms .offer-slider-image {
    transition: opacity 0.5s ease-in-out;
}

.hotel-rooms .offer-slider-image:not(.active) {
    opacity: 0;
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
}

.hotel-rooms .offer-slider-image.active {
    opacity: 1;
    position: relative;
}

.hotel-rooms .offer-slider-image img {
    display: block;
    width: 100%;
    height: 100%;
    max-height: 265px;
    object-fit: cover;
}

.hotel-rooms .offer-slider-left,
.hotel-rooms .offer-slider-right {
    display: flex;
    position: absolute;
    top: 0;
    bottom: 0;
    align-items: center;
    justify-content: center;
    padding: 0 16px;
    color: #fff;
    font-size: 22px;
    line-height: 1;
    cursor: pointer;
    z-index: 2;
    border: 0;
    background: transparent;
    transition: color 0.15s ease;
}

.hotel-rooms .offer-slider-left {
    left: 0;
}

.hotel-rooms .offer-slider-right {
    right: 0;
}

.hotel-rooms .offer-slider-left:hover,
.hotel-rooms .offer-slider-left:focus-visible,
.hotel-rooms .offer-slider-right:hover,
.hotel-rooms .offer-slider-right:focus-visible {
    color: var(--color-accent);
    outline: none;
}

.hotel-rooms .offer-slider-controls-block {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-top: 10px;
    justify-content: center;
}

.hotel-rooms .offer-slider-controls-image,
.hotel-rooms .offer-slider-controls-more,
.hotel-rooms .offer-slider-controls-more--inline-summary {
    position: relative;
    width: 90px;
    height: 60px;
    min-width: 0;
    max-width: 100%;
    padding: 0;
    border: 0;
    border-radius: 6px;
    overflow: hidden;
    cursor: pointer;
    background: #f3f6f8;
    box-sizing: border-box;
    appearance: none;
    -webkit-appearance: none;
    outline: none;
    box-shadow: none;
    -webkit-tap-highlight-color: transparent;
}

.hotel-rooms .offer-slider-controls-image:hover,
.hotel-rooms .offer-slider-controls-image:focus,
.hotel-rooms .offer-slider-controls-image:focus-visible,
.hotel-rooms .offer-slider-controls-image.active,
.hotel-rooms .offer-slider-controls-more:hover,
.hotel-rooms .offer-slider-controls-more:focus,
.hotel-rooms .offer-slider-controls-more:focus-visible,
.hotel-rooms .offer-slider-controls-more.active,
.hotel-rooms .offer-slider-controls-more--inline-summary:hover,
.hotel-rooms .offer-slider-controls-more--inline-summary:focus,
.hotel-rooms .offer-slider-controls-more--inline-summary:focus-visible,
.hotel-rooms .offer-slider-controls-more--inline-summary.active {
    border: 0;
    outline: none;
    box-shadow: none;
}

.hotel-rooms .offer-slider-controls-image img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.hotel-rooms .offer-slider-controls-more {
    display: flex;
    align-items: center;
    justify-content: center;
    background-color: #003F6A;
}

.hotel-rooms .offer-slider-controls-more img {
    position: absolute;
    inset: 0;
    z-index: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    pointer-events: none;
}

.hotel-rooms .offer-slider-controls-more::after {
    content: "";
    position: absolute;
    inset: 0;
    z-index: 1;
    pointer-events: none;
    background: rgba(0, 63, 106, 0.4);
    transition: background 0.15s ease;
}

.hotel-rooms .offer-slider-controls-more-inner {
    position: relative;
    z-index: 2;
    font-size: 23px;
    font-weight: 700;
    line-height: 1;
    color: #fff;
    user-select: none;
}

.hotel-rooms .offer-slider-controls-more:hover,
.hotel-rooms .offer-slider-controls-more:focus,
.hotel-rooms .offer-slider-controls-more:focus-visible {
    background-color: #003F6A;
}

.hotel-rooms .offer-slider-controls-more:hover::after,
.hotel-rooms .offer-slider-controls-more:focus-visible::after {
    background: rgba(0, 63, 106, 0.26);
}

.hotel-rooms .offer-slider-container:not(.offer-slider-full) .offer-slider-controls-thumb-inline-hidden {
    display: none !important;
}

.hotel-rooms__gallery-placeholder {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    min-width: 400px;
    max-width: 400px;
    min-height: 265px;
    margin: 0;
    border-radius: 8px;
    background: #f3f6f8;
    color: #78909c;
    font-size: 14px;
}

/* Enext hotel .product-item-detail-scu-item-title — 18px bold (#003F6A) */
.hotel-rooms__name {
    margin: 4px 0 8px;
    color: #003F6A;
    font-family: var(--font-family-base);
    font-size: var(--font-size-room-title);
    font-weight: 500;
    line-height: 22px;
}

.hotel-rooms .product-item-detail-scu-characteristics {
    display: flex;
    flex-wrap: wrap;
    gap: 16px;
    margin: 0 0 12px;
}

.hotel-rooms .scu-characteristic {
    display: flex;
    align-items: center;
    gap: 10px;
    color: #263238;
    font-size: var(--font-size-small);
    line-height: 1.4;
}

.hotel-rooms .scu-char-value {
    white-space: nowrap;
}

.hotel-rooms .scu-char-icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 20px;
    height: 20px;
    flex-shrink: 0;
}

.hotel-rooms .scu-char-icon svg,
.hotel-rooms .scu-char-icon img {
    display: block;
    width: 20px;
    height: 20px;
}

.hotel-rooms .scu-char-icon img {
    width: 100%;
    height: 100%;
    object-fit: contain;
    filter: brightness(0) saturate(100%) invert(57%) sepia(21%) saturate(1338%) hue-rotate(143deg) brightness(93%) contrast(86%);
}

.hotel-rooms .scu-char-icon svg {
    fill: var(--color-accent);
}

.hotel-rooms .product-item-detail-scu-text {
    padding-top: 15px;
}

.hotel-rooms .scu-text-title {
    display: block;
    margin-bottom: 5px;
    color: #263238;
    font-size: var(--font-size-body);
    font-weight: 400;
}

.hotel-rooms .scu-text-wrapper {
    position: relative;
}

.hotel-rooms .scu-text-content {
    overflow-wrap: break-word;
    position: relative;
    overflow: hidden;
    color: #263238;
    font-size: var(--font-size-body);
    line-height: var(--line-height-body);
    transition: max-height 1s ease;
}

.hotel-rooms .scu-text-content.truncated {
    max-height: 6em;
}

.hotel-rooms .scu-text-content.truncated::after {
    content: "";
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    height: 2em;
    background: linear-gradient(to bottom, rgba(255, 255, 255, 0), rgba(255, 255, 255, 1));
    pointer-events: none;
}

.hotel-rooms .scu-text-toggle-link,
.hotel-rooms .hotel-rooms__desc-toggle {
    margin-top: 4px;
    padding: 0;
    border: 0;
    background: none;
    color: var(--color-link);
    font-size: var(--font-size-small);
    line-height: 1.4;
    text-decoration: underline;
    cursor: pointer;
}

.hotel-rooms .scu-text-toggle-link:hover,
.hotel-rooms .hotel-rooms__desc-toggle:hover,
.hotel-rooms .scu-text-toggle-link:focus-visible,
.hotel-rooms .hotel-rooms__desc-toggle:focus-visible {
    color: var(--color-link-hover);
    text-decoration: none;
    outline: none;
}

.hotel-rooms .scu-in-room {
    margin-top: 15px;
}

.hotel-rooms .scu-in-room-title {
    display: block;
    margin-bottom: 5px;
    color: #263238;
    font-size: var(--font-size-body);
    font-weight: 400;
}

.hotel-rooms .scu-in-room-items {
    display: flex;
    flex-wrap: wrap;
    gap: 16px;
    line-height: 1.6;
    color: #263238;
}

.hotel-rooms .scu-amenity {
    display: flex;
    align-items: center;
    gap: 10px;
    font-size: var(--font-size-small);
    line-height: 1.4;
    color: #263238;
}

.hotel-rooms .scu-amenity-icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 20px;
    height: 20px;
    flex-shrink: 0;
}

.hotel-rooms .scu-amenity-icon img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: contain;
    filter: brightness(0) saturate(100%) invert(57%) sepia(21%) saturate(1338%) hue-rotate(143deg) brightness(93%) contrast(86%);
}

.hotel-rooms .scu-amenity-name {
    white-space: nowrap;
}

.hotel-rooms__pricing {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: 12px;
}

.hotel-rooms__price-pick {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 8px;
    text-align: center;
}

.hotel-rooms__price-pick[hidden],
.hotel-rooms__price-block[hidden],
.hotel-rooms__price-fixed[hidden],
.hotel-rooms__price-head[hidden] {
    display: none !important;
}

.hotel-rooms__price-pick-text {
    margin: 0;
    color: #666;
    font-size: var(--font-size-small);
    font-weight: 500;
    line-height: 1.4;
}

.hotel-rooms__price-pick-link {
    color: var(--color-link);
    font-size: var(--font-size-body);
    font-weight: 500;
    text-decoration: underline;
    text-underline-offset: 2px;
}

.hotel-rooms__price-pick-link:hover,
.hotel-rooms__price-pick-link:focus {
    color: var(--color-link-hover);
}

.hotel-rooms__price-pick-link:focus-visible {
    outline: 0;
    box-shadow: 0 0 0 2px rgba(var(--color-accent-rgb), 0.35);
    border-radius: 4px;
}

.hotel-rooms__price-head {
    margin: 0;
    color: #666;
    font-size: var(--font-size-small);
    font-weight: 500;
    text-align: center;
}

.hotel-rooms__price-block {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    justify-content: center;
    gap: 4px;
}

/* Enext hotel .product-item-detail-price-current uses Museo 700 */
.hotel-rooms__price-value {
    color: #000;
    font-family: var(--font-family-accent);
    font-size: var(--font-size-room-price);
    font-weight: 700;
    line-height: 1.2;
}

.hotel-rooms__price-measure,
.hotel-rooms__price-unit {
    color: #263238;
    font-size: var(--font-size-body);
    line-height: var(--line-height-body);
}

.hotel-rooms__price-value.is-request {
    color: #78909c;
    font-size: 16px;
    font-weight: 500;
}

.hotel-rooms__year-prices {
    width: 100%;
    min-width: 0;
    max-width: 100%;
    padding: 0 0 24px;
    box-sizing: border-box;
}

.hotel-rooms__year-prices-toggle {
    display: inline-flex;
    align-items: center;
    min-height: 44px;
    padding: 0;
    border: 0;
    background: transparent;
    color: var(--color-link);
    font: inherit;
    font-size: var(--font-size-body);
    font-weight: 500;
    text-decoration: underline;
    text-underline-offset: 2px;
    cursor: pointer;
}

.hotel-rooms__year-prices-toggle:hover,
.hotel-rooms__year-prices-toggle:focus {
    color: var(--color-link-hover);
}

.hotel-rooms__year-prices-toggle:focus-visible {
    outline: 0;
    box-shadow: 0 0 0 2px rgba(var(--color-accent-rgb), 0.35);
    border-radius: 4px;
}

.hotel-rooms__year-prices-panel {
    margin-top: 12px;
    min-width: 0;
}

.hotel-rooms__year-prices-year {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    margin-bottom: 12px;
    color: #666;
    font-size: 14px;
    font-weight: 500;
}

.hotel-rooms__year-prices-select {
    min-height: 2.25em;
    padding: 6px 28px 6px 10px;
    border: 1px solid #b4b4b4;
    border-radius: 6px;
    background: #fbfbfb url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath fill='%23003F6A' d='M1 1l5 5 5-5'/%3E%3C/svg%3E") no-repeat right 10px center;
    appearance: none;
    color: #000;
    font: inherit;
    font-size: 14px;
}

.hotel-rooms__year-prices-select:hover {
    border-color: var(--color-accent);
}

.hotel-rooms__year-prices-select:focus {
    border-color: var(--color-brand);
    outline: 0;
    box-shadow: 0 0 0 2px rgba(var(--color-accent-rgb), 0.35);
}

.hotel-rooms__year-prices .hotel-table-scroll {
    max-width: 100%;
}

.hotel-rooms__year-label {
    display: none;
}

.hotel-rooms__month-prices {
    display: none;
}

.hotel-rooms__month-grid {
    display: none;
}

.hotel-rooms__month-cell {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 12px 8px;
    border: 1px solid #e8edef;
    border-radius: 8px;
    background: #f8fafb;
    color: inherit;
    font: inherit;
    text-align: center;
    cursor: pointer;
    transition: border-color 0.15s ease, background-color 0.15s ease, box-shadow 0.15s ease, transform 0.15s ease;
}

.hotel-rooms__month-cell:hover {
    border-color: var(--color-accent);
    background: #fff;
    box-shadow: 0 2px 8px rgba(var(--color-brand-rgb), 0.08);
    transform: translateY(-2px);
}

.hotel-rooms__month-cell.is-selected {
    border-color: var(--color-brand);
    box-shadow: 0 0 0 1px var(--color-brand);
}

.hotel-rooms__month-cell.is-current,
.hotel-rooms__month-cell.current-month {
    border-color: var(--color-accent);
    background: #e8f5f8;
}

.hotel-rooms__month-cell.is-current .month-name,
.hotel-rooms__month-cell.current-month .month-name {
    color: var(--color-brand);
    font-weight: 500;
}

.hotel-rooms__month-cell.is-empty,
.hotel-rooms__month-cell.no-price {
    opacity: 0.6;
}

.hotel-rooms__month-cell .month-name {
    margin-bottom: 8px;
    color: #666;
    font-size: var(--font-size-caption);
    font-weight: 500;
    line-height: 1.2;
}

.hotel-rooms__month-cell .month-price {
    color: #000;
    font-size: var(--font-size-body);
    font-weight: 700;
    line-height: 1.2;
}

.hotel-rooms__month-cell .month-price-not-set {
    color: #999;
    font-size: var(--font-size-caption);
    font-style: italic;
    line-height: 1.2;
}

.hotel-rooms .btn {
    box-sizing: border-box;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    width: 100%;
    height: 42px;
    min-height: 42px;
    padding: 0 24px;
    border: 1px solid #e3ecef;
    border-radius: 4px;
    font-family: "Source Sans Pro", sans-serif;
    font-size: 16px;
    font-weight: 300;
    line-height: 19px;
    text-decoration: none;
    cursor: pointer;
    transition: all 0.15s ease 0s;
}

.hotel-rooms .btn[hidden] {
    display: none !important;
}

/* Enext .btn-default + site hover #00416c (user/custom Enext, not stock purple) */
.hotel-rooms .btn-default,
.hotel-rooms .hotel-rooms__request-btn {
    color: #263238;
    text-decoration: none;
    border-color: #e3ecef;
    background: none;
}

.hotel-rooms .btn-default:hover,
.hotel-rooms .btn-default:focus-visible,
.hotel-rooms .btn-default:active,
.hotel-rooms .hotel-rooms__request-btn:hover,
.hotel-rooms .hotel-rooms__request-btn:focus-visible,
.hotel-rooms .hotel-rooms__request-btn:active {
    /* Filled navy on hover — beat global a:hover link color */
    color: #fff !important;
    border-color: #00416c;
    background-color: #00416c;
    outline: none;
}

/* Match .button_hotel / Enext custom.css .btn-buy: #00416c → hover #007eb9; white text always.
   color !important beats global a:hover { color: var(--color-link-hover) !important }. */
a.btn.btn-buy,
a.btn-buy,
a.hotel-rooms__book-btn,
.hotel-rooms .btn-buy,
.hotel-rooms .hotel-rooms__book-btn {
    color: #fff !important;
    text-decoration: none;
    border-color: transparent;
    background: #00416c;
    box-shadow: none;
}

a.btn.btn-buy:hover,
a.btn.btn-buy:focus,
a.btn.btn-buy:focus-visible,
a.btn.btn-buy:active,
a.btn-buy:hover,
a.btn-buy:focus,
a.btn-buy:focus-visible,
a.btn-buy:active,
a.hotel-rooms__book-btn:hover,
a.hotel-rooms__book-btn:focus,
a.hotel-rooms__book-btn:focus-visible,
a.hotel-rooms__book-btn:active,
.hotel-rooms .btn-buy:hover,
.hotel-rooms .btn-buy:focus,
.hotel-rooms .btn-buy:focus-visible,
.hotel-rooms .btn-buy:active,
.hotel-rooms .hotel-rooms__book-btn:hover,
.hotel-rooms .hotel-rooms__book-btn:focus,
.hotel-rooms .hotel-rooms__book-btn:focus-visible,
.hotel-rooms .hotel-rooms__book-btn:active {
    color: #fff !important;
    text-decoration: none;
    border-color: #007eb9;
    background: #007eb9;
    outline: none;
}

.hotel-rooms .btn-buy,
.hotel-rooms .hotel-rooms__book-btn {
    height: 48px;
    min-height: 48px;
    font-size: 18px;
    font-weight: 400;
    line-height: 22px;
}

.hotel-rooms .product-item-detail-button-container {
    margin-top: 6px;
    position: relative;
}

.hotel-rooms .product-item-detail-button-container .btn {
    width: 100%;
    margin-top: 12px;
}

.hotel-rooms .product-item-detail-button-container .btn-buy,
.hotel-rooms .product-item-detail-button-container .btn-buy-ok {
    height: 48px;
    min-height: 48px;
    font-family: var(--font-family-base);
    font-size: 18px;
    font-weight: 400;
    line-height: 22px;
    color: #fff !important;
    text-decoration: none;
    border-color: transparent;
    background: #00416c;
    box-shadow: none;
}

.hotel-rooms .product-item-detail-button-container .btn-buy:hover,
.hotel-rooms .product-item-detail-button-container .btn-buy:focus,
.hotel-rooms .product-item-detail-button-container .btn-buy:focus-visible,
.hotel-rooms .product-item-detail-button-container .btn-buy:active,
.hotel-rooms .product-item-detail-button-container .btn-buy-ok:hover,
.hotel-rooms .product-item-detail-button-container .btn-buy-ok:focus,
.hotel-rooms .product-item-detail-button-container .btn-buy-ok:focus-visible,
.hotel-rooms .product-item-detail-button-container .btn-buy-ok:active {
    color: #fff !important;
    text-decoration: none;
    border-color: #007eb9;
    background: #007eb9;
    outline: none;
}

.hotel-rooms .offer-slider-images-container {
    cursor: zoom-in;
}

.hotel-rooms .offer-slider-controls-image {
    cursor: pointer;
}

.hotel-rooms__price-fixed {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 12px;
}

.hotel-rooms__price-request {
    display: flex;
    justify-content: center;
    width: 100%;
}

.hotel-rooms__price-request[hidden] {
    display: none !important;
}

.hotel-rooms .product-item-detail-amount,
.hotel-rooms__amount {
    display: table;
    margin: 0 auto;
    text-align: center;
}

.hotel-rooms .product-item-detail-amount-btn-minus,
.hotel-rooms .product-item-detail-amount-btn-plus,
.hotel-rooms .product-item-detail-amount-input,
.hotel-rooms .product-item-detail-amount-measure {
    display: table-cell;
    vertical-align: middle;
}

.hotel-rooms .product-item-detail-amount-btn-minus,
.hotel-rooms .product-item-detail-amount-btn-plus {
    width: 36px;
    min-width: 36px;
    height: 36px;
    border: 1px solid #b4b4b4;
    color: var(--color-brand);
    text-align: center;
    text-decoration: none;
    background: #fbfbfb;
    font-size: 18px;
    line-height: 1;
    cursor: pointer;
    transition: border-color 0.15s ease, background-color 0.15s ease, color 0.15s ease;
}

.hotel-rooms .product-item-detail-amount-btn-minus {
    border-radius: 6px 0 0 6px;
}

.hotel-rooms .product-item-detail-amount-btn-plus {
    border-radius: 0 6px 6px 0;
}

.hotel-rooms .product-item-detail-amount-btn-minus:not(.product-item-detail-amount-btn-disabled):hover,
.hotel-rooms .product-item-detail-amount-btn-minus:not(.product-item-detail-amount-btn-disabled):focus-visible,
.hotel-rooms .product-item-detail-amount-btn-plus:not(.product-item-detail-amount-btn-disabled):hover,
.hotel-rooms .product-item-detail-amount-btn-plus:not(.product-item-detail-amount-btn-disabled):focus-visible {
    border-color: var(--color-accent);
    background: #e8f5f8;
    color: var(--color-brand);
    outline: none;
}

.hotel-rooms .product-item-detail-amount-btn-disabled {
    color: #ced9db;
    cursor: default;
}

.hotel-rooms .product-item-detail-amount-input {
    width: 48px;
    height: 36px;
    padding: 0;
    border: 1px solid #b4b4b4;
    border-left: 0;
    border-right: 0;
    background: #fff;
    font: inherit;
    font-size: var(--font-size-body);
    color: #263238;
    text-align: center;
    line-height: 36px;
}

.hotel-rooms .product-item-detail-amount-input:focus {
    outline: none;
    box-shadow: inset 0 0 0 1px var(--color-accent);
}

.hotel-rooms .product-item-detail-amount-measure {
    width: 1px;
    padding-left: 12px;
    color: #263238;
    font-size: var(--font-size-body);
    white-space: nowrap;
}

.hotel-rooms[data-filter-active="1"] .hotel-rooms__amount {
    display: none;
}

@media (max-width: 991px) {
    .hotel-rooms__month-grid {
        grid-template-columns: repeat(4, 1fr);
    }
}

@media (max-width: 767px) {
    .hotel-rooms-filter__grid {
        grid-template-columns: 1fr;
    }

    .hotel-rooms-filter__actions {
        flex-wrap: nowrap;
        gap: 10px 12px;
    }

    .hotel-rooms-filter__submit {
        width: auto;
        max-width: calc(100% - 8.5em);
        min-width: 0;
        padding-left: 14px;
        padding-right: 14px;
    }

    .hotel-rooms-filter__reset {
        flex: 0 0 auto;
        font-size: 13px;
    }

    .hotel-rooms__list,
    .hotel-rooms__head,
    .hotel-rooms__card,
    .hotel-rooms__item,
    .hotel-rooms__col {
        display: block;
        width: 100%;
    }

    .hotel-rooms__head {
        display: none;
    }

    .hotel-rooms__card {
        display: block;
    }

    .hotel-rooms__card .hotel-rooms__col {
        padding: 16px 0;
        border-bottom: 0;
    }

    /* Enext hotel mobile: .product-item-detail-scu-item-title { margin-top: 9px } */
    .hotel-rooms__name {
        margin-top: 9px;
    }

    .hotel-rooms__card .hotel-rooms__col--price {
        padding-top: 20px;
        border-top: 1px solid #e3ecef;
    }

    .hotel-rooms__col--gallery {
        min-width: 0;
        width: 100%;
    }

    .hotel-rooms .offer-slider-container {
        min-width: 0;
        max-width: none;
        width: 100%;
    }

    .hotel-rooms .offer-slider-images-container {
        aspect-ratio: 3 / 2;
        max-height: none;
    }

    .hotel-rooms .offer-slider-image img {
        max-height: none;
    }

    .hotel-rooms__gallery-placeholder {
        min-width: 0;
        max-width: none;
        min-height: 220px;
        aspect-ratio: 3 / 2;
    }

    .hotel-rooms__year-prices {
        padding-bottom: 16px;
    }

    .hotel-rooms__month-grid {
        grid-template-columns: repeat(3, 1fr);
        gap: 8px;
    }

    .hotel-rooms__month-cell {
        padding: 10px 6px;
    }

    .hotel-rooms__month-cell .month-name {
        margin-bottom: 6px;
        font-size: 12px;
    }

    .hotel-rooms__month-cell .month-price {
        font-size: var(--font-size-small);
    }

    /* Enext hotel @767: .scu-characteristic stays 14px, tighter gaps */
    .hotel-rooms .product-item-detail-scu-characteristics {
        gap: 12px;
        margin-top: 8px;
        margin-bottom: 8px;
    }

    .hotel-rooms .scu-characteristic {
        font-size: var(--font-size-small);
    }
}

@media (min-width: 768px) and (max-width: 1024px) {
    .hotel-rooms-filter__grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .hotel-rooms-filter__field--dates {
        grid-column: 1 / -1;
    }
}

@media (min-width: 1025px) and (max-width: 1200px) {
    .hotel-rooms-filter__grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .hotel-rooms-filter__field--dates {
        grid-column: 1 / -1;
    }
}

@media (max-width: 479px) {
    .hotel-rooms .offer-slider-controls-image {
        width: 72px;
        height: 48px;
    }

    .hotel-rooms .offer-slider-controls-more-inner {
        font-size: 18px;
    }

    .hotel-rooms__month-grid {
        grid-template-columns: repeat(3, 1fr);
    }
}

