/* Responsive layout shared by phones, tablets and desktop screens. */
:root {
  --hotel-header-height: 80px;
  --hotel-gutter: clamp(16px, 3vw, 32px);
  --hotel-ink: #303547;
  --hotel-muted: #565f6d;
}
html { scroll-padding-top: calc(var(--hotel-header-height) + 20px); }
.responsive-container { width: min(1200px, calc(100% - var(--hotel-gutter) * 2)); margin-inline: auto; }
.page-home .knsl-banner { border-bottom: 0; }
.page-home .knsl-banner .knsl-banner-content {
  height: auto;
  min-height: min(760px, 88svh);
  padding: 140px 0 110px;
}
.page-home .knsl-main-title--h { font-size: clamp(38px, 5.5vw, 78px); line-height: 1.12; }
.page-home .knsl-main-title--d { font-size: clamp(17px, 2vw, 24px) !important; line-height: 1.5; }
.page-home .knsl-main-title--d span { display: block; max-width: 38ch; margin-inline: auto; }
.page-home .knsl-banner .knsl-scroll-hint-frame { display: none; }
.page-home .knsl-banner .knsl-cover-frame video {
  display: block !important;
  position: absolute !important;
  inset: 0 !important;
  top: 0 !important;
  width: 100% !important;
  height: 100% !important;
  object-fit: cover;
}
.home-search { position: relative; z-index: 20; margin-top: -42px; }
.home-search #block-search.block-search--main {
  position: relative !important;
  inset: auto !important;
  transform: none !important;
  width: 100% !important;
  max-width: none;
  margin: 0 !important;
  background: #f0fdfd;
  border: 1px solid #d7edef;
  border-radius: 16px;
  box-shadow: 0 10px 28px rgb(20 66 70 / 9%);
}
.home-search .tl-container { padding: 12px 20px; }
.home-quick-benefits { display: block; padding: 28px 0 64px; scroll-margin-top: 100px; }
.quick-benefits-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; padding: 0; margin: 0; list-style: none; }
.quick-benefit { display: flex; align-items: center; gap: 16px; min-width: 0; padding: 24px 20px; border: 1px solid #dcecef; border-radius: 14px; background: #f3fbfc; }
.quick-benefit img { flex: 0 0 48px; width: 48px !important; height: 48px !important; object-fit: contain; }
.quick-benefit p { margin: 0; color: var(--hotel-ink); font-size: 16px; line-height: 1.4; font-weight: 600; letter-spacing: 0; }
.home-advantages { padding: 0 0 72px; }
.responsive-section-title { max-width: 32ch; margin: 0 auto 32px; color: var(--hotel-ink); font-size: clamp(26px, 3vw, 40px); font-weight: 700; line-height: 1.2; text-align: center; text-wrap: balance; }
.advantages-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 28px; }
.advantage-card { min-width: 0; overflow: hidden; border-radius: 16px; background: #fff; border: 1px solid #e3ebed; box-shadow: 0 10px 28px rgb(29 55 62 / 6%); }
.advantage-card .advantage-image { display: block; width: 100%; height: auto; aspect-ratio: 4 / 3; object-fit: cover; object-position: center 42%; margin: 0; }
.advantage-body { padding: 28px; }
.advantage-body h3 { margin: 0 0 14px; color: var(--hotel-ink); font-size: clamp(22px, 2vw, 28px); line-height: 1.25; letter-spacing: 0; }
.advantage-body p { height: auto; max-height: none; margin: 0; color: var(--hotel-muted); font-size: 16px; line-height: 1.65; letter-spacing: 0; overflow: visible; }
.mphb-room-type h2.mphb-room-type-title { height: auto !important; min-height: 2.5em; line-height: 1.3; overflow-wrap: normal; }
.mphb-room-type .room-details-link { max-width: 100%; min-height: 48px; height: auto; padding: 13px 20px; line-height: 1.4; text-align: center; display: inline-flex; align-items: center; justify-content: center; }
.knsl-slider-nav-panel { gap: 16px; flex-wrap: wrap; }
.footer-legal { overflow-wrap: anywhere; }
.cbm__dialog { max-height: calc(100dvh - 32px); overflow-y: auto; }
.cbm__input { font-size: 16px; }
body #cookie-banner { z-index: 20000 !important; }
body .tl-widgets-container { z-index: 10010 !important; }
body .cbm { z-index: 13000; }
body .lightboxOverlay, body .mfp-bg { z-index: 30000; }
body .lightbox, body .mfp-wrap { z-index: 30001; }
@media (min-width: 1200px) {
  .header-navigation .menu-item.is-expanded > .sub-menu { opacity: 1; visibility: visible; pointer-events: auto; transform: none; }
}
@media (max-width: 1199px) {
  :root { --hotel-header-height: 76px; }
  body { font-size: 16px; line-height: 1.6; letter-spacing: .015em; }
  .header_top > .container.hide-mob { display: none !important; }
  #bottommenu { display: none !important; }
  #mobile-menu-fix { position: fixed !important; top: 0 !important; left: 0; width: 100%; height: var(--hotel-header-height); z-index: 12000; background: #fff; border-radius: 0 0 12px 12px; }
  .header-layout { height: 100%; }
  .header-row { position: relative; height: 100%; width: 100%; max-width: none; padding: 0 var(--hotel-gutter); gap: 12px; }
  .header-logo { width: auto; min-width: 0; flex: 1 1 auto; padding: 0; }
  .header-layout .header-logo img { display: block; width: clamp(112px, 24vw, 148px) !important; height: auto !important; max-height: 66px; object-fit: contain; }
  .header-actions { flex: 0 0 auto; width: auto; padding: 0; gap: 8px; margin: 0; }
  .header-actions > .knsl-btn { display: none !important; }
  .header-actions > .knsl-btn-1 { display: inline-flex !important; align-items: center; justify-content: center; height: 44px; max-width: none; margin: 0; padding: 0 14px; font-size: 14px; font-weight: 600; line-height: 1.2; letter-spacing: 0; white-space: nowrap; }
  .header-actions .knsl-menu-btn { display: flex !important; align-items: center; justify-content: center; width: 44px; height: 44px; margin: 0; padding: 0; position: relative; top: auto; }
  .header-layout .header-navigation { position: absolute !important; top: 100%; left: 0; right: 0; display: none; flex-direction: column; align-items: stretch; width: 100% !important; max-height: calc(100dvh - var(--hotel-header-height) - 16px); margin: 0 !important; padding: 12px 20px 20px; border-top: 1px solid #e7eff0; border-radius: 0 0 14px 14px; background: #fff; overflow-y: auto; opacity: 1; pointer-events: auto; transform: none; z-index: 1; box-shadow: 0 14px 22px rgb(31 60 68 / 12%); }
  .header-layout .header-navigation.knsl-active { display: flex; left: 0; width: 100% !important; margin-left: 0 !important; transform: none; }
  .header-navigation > .knsl-btn { display: none !important; }
  .header-navigation .knsl-menu { width: 100%; min-width: 0; margin: 0; }
  .header-navigation nav > ul { display: flex; flex-direction: column; align-items: stretch; justify-content: flex-start; width: 100%; margin: 0; padding: 0; }
  .header-navigation nav ul li { position: relative; display: block; width: 100%; height: auto !important; margin: 0; float: none; }
  .header-navigation nav > ul > li > a { display: flex; align-items: center; height: auto !important; min-height: 48px; padding: 12px 38px 12px 8px !important; font-size: 15px !important; line-height: 1.5; letter-spacing: .02em; }
  .header-navigation nav ul li > .sub-menu { position: static !important; inset: auto !important; min-width: 0; width: 100%; padding: 0 8px 12px 16px; border: 0; border-radius: 0; box-shadow: none; opacity: 1; visibility: visible; pointer-events: auto; transform: none; }
  .header-navigation nav ul li:not(.is-expanded) > .sub-menu { display: none !important; }
  .header-navigation nav ul li.is-expanded > .sub-menu { display: block !important; }
  .header-navigation nav .sub-menu li a { display: block; height: auto !important; min-height: 44px; padding: 10px 12px !important; white-space: normal; font-size: 14px !important; line-height: 1.5; }
  .header-layout .header-navigation .knsl-menu nav ul li.menu-item-has-children > i { display: block !important; position: absolute !important; top: 10px !important; right: 2px !important; left: auto !important; width: 28px !important; height: 28px !important; line-height: 28px; text-align: center; margin: 0 !important; }
  .header-navigation .menu-item-has-children > i::before { transform: rotate(90deg); }
  .header-navigation .menu-item-has-children.is-expanded > i::before { transform: rotate(-90deg); }
  html.navigation-open { overflow: hidden; }
  .page-home .knsl-banner .knsl-banner-content { min-height: 580px; padding: calc(var(--hotel-header-height) + 64px) 0 100px; }
  .page-home .knsl-banner .knsl-main-title { margin-top: 0; }
  .home-search { margin-top: -36px; }
  .quick-benefit { flex-direction: column; text-align: center; align-items: center; padding: 20px 14px; gap: 12px; }
  .knsl-banner-simple h1.knsl-h1-inner { font-size: clamp(28px, 4.3vw, 44px) !important; line-height: 1.2; height: auto; text-wrap: balance; overflow-wrap: normal; }
  .knsl-banner-simple { min-height: 270px; padding: 44px 0; }
  .knsl-banner-simple .knsl-title-frame { padding: 0; margin: 0; }
  .knsl-banner-simple .knsl-title-frame p:empty { display: none; }
  #block-search.block-search--inner { width: calc(100% - var(--hotel-gutter) * 2); max-width: 1200px; margin: calc(var(--hotel-header-height) + 24px) auto 24px; }
  .knsl-sticky, .knsl-stycky-right { position: static !important; top: auto !important; width: auto !important; transform: none !important; }
  .knsl-about-card .knsl-about-text { padding: 24px; }
  .knsl-text, .knsl-text-light, .single-post-text p, .knsl-about-text p { font-size: 16px; line-height: 1.65; }
  .knsl-title-frame h2.knsl-title--h { font-size: clamp(26px, 3.5vw, 38px); line-height: 1.25; height: auto; text-wrap: balance; }
  .knsl-mb-100 { margin-bottom: 36px !important; }
  .knsl-mb-80, .knsl-mb-60 { margin-bottom: 32px !important; }
  .page-booking .main-calc-div { padding-top: 0 !important; }
  .page-booking .room-search { width: 100%; margin: 0; padding: calc(var(--hotel-header-height) + 32px) var(--hotel-gutter) 48px; }
  .page-booking .room-search h1 { font-size: clamp(28px, 4.3vw, 44px) !important; height: auto; min-height: 0; line-height: 1.25; margin: 0 0 24px; }
  .page-booking #tl-booking-form { width: 100%; margin: 0 auto; }
}
@media (max-width: 1024px) {
  .layout-row { flex-wrap: wrap; }
  .layout-column.layout-col-66, .layout-column.layout-col-33 { width: 100%; }
  .layout-gap-default > .layout-column { padding: 10px; }
  .knsl-rd-slider-2 { max-width: 100%; }
}
@media (max-width: 767px) {
  :root { --hotel-gutter: 16px; --hotel-header-height: 72px; }
  .page-home .knsl-banner .knsl-banner-content { min-height: 510px; padding: 126px 0 64px; }
  .page-home .knsl-main-title--h { font-size: clamp(36px, 9.5vw, 52px); }
  .page-home .knsl-main-title--d { font-size: 18px !important; }
  .page-home .knsl-main-title--d.knsl-mb-30 { margin-bottom: 24px !important; }
  .home-search { margin-top: 20px; }
  .home-search .tl-container { padding: 12px; }
  .home-quick-benefits { padding: 24px 0 48px; }
  .quick-benefits-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
  .quick-benefit { padding: 20px 12px; min-height: 150px; }
  .quick-benefit p { font-size: 15px; line-height: 1.4; }
  .home-advantages { padding-bottom: 48px; }
  .responsive-section-title { margin-bottom: 24px; }
  .advantages-grid { grid-template-columns: 1fr; gap: 24px; }
  .advantage-body { padding: 22px; }
  .advantage-body h3 { font-size: 23px; }
  .advantage-body p { font-size: 16px; line-height: 1.65; }
  .knsl-btn, .knsl-btn:focus { min-height: 48px; height: auto; padding: 13px 20px; line-height: 1.4; letter-spacing: .02em; white-space: normal; text-align: center; }
  .knsl-main-title .knsl-btn { min-width: min(280px, 100%); }
  .mphb-room-type { padding: 22px !important; }
  .mphb-room-type .mphb-regular-price, .mphb-room-type .mphb-to-book-btn-wrapper { float: none; width: 100%; text-align: left; }
  .mphb-room-type .mphb-regular-price { margin-bottom: 18px; }
  .mphb-room-type .room-details-link { display: flex; width: 100%; }
  .mphb-room-type .mphb-price-period { display: block; font-size: 14px; line-height: 1.5; }
  .mphb-room-type .mphb-loop-room-thumbnail { margin: -12px -12px 22px; }
  .knsl-p-0-100, .knsl-p-0-80 { padding-bottom: 40px; }
  .knsl-banner-simple { min-height: 230px; padding: 34px 0; }
  .knsl-about-card .knsl-about-text { padding: 22px; }
  .single-post-text { overflow-wrap: anywhere; }
  .single-post-text table { display: block; max-width: 100%; overflow-x: auto; }
  .footer-legal, .footer-brand { font-size: 14px; line-height: 1.65; padding: 16px; }
  .footer-details { padding-bottom: calc(32px + env(safe-area-inset-bottom)); }
  body .cb-float2 { right: 16px; bottom: calc(20px + env(safe-area-inset-bottom)); }
  body .tl-widgets-container { bottom: calc(12px + env(safe-area-inset-bottom)) !important; }
  body .cb-float2__icon, body .cb-float2::before, body .cb-float2::after { width: 56px; height: 56px; }
  body #cookie-banner { bottom: calc(12px + env(safe-area-inset-bottom)) !important; left: 12px !important; right: 12px !important; padding: 14px 16px !important; font-size: 13px !important; line-height: 1.5; max-height: 45svh; overflow-y: auto; z-index: 20000 !important; }
  #cookie-banner a { color: #80e3e8 !important; }
  #cookie-accept { min-height: 44px; font-size: 14px; }
  body .cbm__dialog { width: calc(100% - 32px); max-height: calc(100dvh - 32px); padding: 22px 18px; }
  body .cbm__input { min-height: 48px; font-size: 16px; }
  body .cbm__btn { min-height: 48px; }
}
@media (max-width: 359px) {
  :root { --hotel-gutter: 12px; }
  .header-layout .header-logo img { width: 104px !important; }
  .header-actions > .knsl-btn-1 { font-size: 12px; padding-inline: 10px; }
  .header-row { gap: 6px; }
  .quick-benefit { padding-inline: 8px; }
  .advantage-body { padding: 20px; }
}
@media (max-width: 1199px) and (max-height: 550px) and (orientation: landscape) {
  .page-home .knsl-banner .knsl-banner-content { min-height: 440px; padding-top: 112px; padding-bottom: 48px; }
  .header-layout .header-navigation { max-height: calc(100dvh - var(--hotel-header-height)); }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .knsl-scroll-animation { opacity: 1 !important; transform: none !important; }
  .cb-float2::before, .cb-float2::after { animation: none; }
}
