/* ===========================
   HOME mobile layout (<=768px)
   =========================== */

/* Desktop: keep existing layout */
.home-mobile-layout{ display:none; }

@media (max-width: 768px){
  /* Mobile header: hide top navigation links ("Головна/Контакти") */
  .topbar-nav{ display:none; }

 /* Mobile home: show mobile accordions, but keep shared content only once */
body.home .home-mobile-layout{
  display:block;
  padding: 12px 12px 20px;
}

body.home .home-content-layout{
  display:block;
  padding: 0 12px 20px !important;
  margin-bottom: 40px;
}

body.home .home-desktop-sidebar{
  display:none;
}

body.home .home-shared-content{
  width: 100%;
}

  body.home .home-mobile-layout .hm-block{ margin-bottom: 12px; }

  /* Contacts card */
  body.home .hm-contacts-inner{
    padding: 12px 14px;
    border-radius: 18px;
    background: rgba(255,255,255,.18);
    backdrop-filter: blur(16px);
    box-shadow: 0 10px 30px rgba(15, 23, 42, 0.12);
  }
  body.home .hm-contacts-title{ font-weight: 700; margin-bottom: 6px; }
  body.home .hm-contacts-phones{ display:flex; flex-direction:column; gap: 4px; }
  body.home .hm-contacts-phones .hm-phone{ font-size: 13px; font-weight: 600; }
  body.home .hm-contacts-actions{ margin-top: 10px; display:flex; flex-direction:column; gap: 8px; }
  body.home .hm-call-btn{ border-radius: 999px; text-align:center; padding: 10px 12px; }
  body.home .hm-mail-link{ font-size: 13px; text-decoration: underline; opacity: .95; }

/* Accordions */
body.home .hm-accordion{
  margin-bottom: 10px;
  position: relative;
  border-radius: 0;
  overflow: visible;
}

/* сховаємо стару іконку, будемо малювати стрілку псевдоелементом */
body.home .hm-acc-icon{
  display: none;
}

/* 1. ЗАКРИТИЙ стан – біла таблетка (аналог .sidebar-toggle) */
body.home .hm-acc-header{
  width: 100%;
  padding: 11px 40px 11px 20px;

  border-radius: 999px;
  border: 1px solid rgba(0,184,148,0.18);

  font-size: 16px;          /* як .sidebar-toggle */
  font-weight: 600;         /* як .sidebar-toggle */
  text-align: left;
  cursor: pointer;

  background: rgba(255,255,255,0.96);
  color: var(--vtr-text);
  box-shadow: 0 6px 14px rgba(0,0,0,0.10);

  position: relative;
  outline: none;

  display:flex;
  align-items:center;
  justify-content: space-between;

  transition: background 0.2s ease, color 0.2s ease,
              box-shadow 0.2s ease, transform 0.12s ease;
}

body.home .hm-acc-title{
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}

/* стрілочка як у sidebar-toggle */
body.home .hm-acc-header::after{
  content: "▾";
  position: absolute;
  right: 16px;
  top: 50%;
  transform: translateY(-50%);
  font-size: 14px;
  color: inherit;
  transition: transform 0.2s ease, color 0.2s ease;
}

/* 2. ВІДКРИТИЙ блок – зелений градієнт + біла карточка (1:1 як sidebar) */

/* біла картка з тінню навколо всього блоку */
body.home .hm-accordion.is-open{
  background: #ffffff;
  border-radius: 18px;
  box-shadow: 0 16px 40px rgba(0, 0, 0, 0.12);
  padding: 0 0 12px;
  overflow: hidden;
}

/* шапка у відкритому стані – точна копія .sidebar-toggle:not(.sidebar-toggle--collapsed) */
body.home .hm-accordion.is-open .hm-acc-header{
  margin: 0;
  width: 100%;
  border-radius: 18px;
  border: none;
  box-shadow: none;

  background: linear-gradient(90deg, #00b894, #00cec9);
  color: #ffffff;
}

/* стрілочка вверх і біла */
body.home .hm-accordion.is-open .hm-acc-header::after{
  color: #ffffff;
  transform: translateY(-50%) rotate(180deg);
}

/* 3. Тіло акордеона – список як .sidebar-list */

body.home .hm-acc-body{
  max-height: 0;
  overflow: hidden;
  transition: none; 
  background: transparent;
}

/* відкритий – даємо висоту + скрол всередині, як було в твоєму JS */
body.home .hm-accordion.is-open .hm-acc-body{
  max-height: 70vh;
  overflow: auto;
  -webkit-overflow-scrolling: touch;
}

/* ul всередині – аналог .sidebar-list */
body.home .hm-acc-list{
  list-style: none;
  margin-top: 0;
  padding: 2px 16px 6px;
  background: transparent;
  box-shadow: none;
  border-radius: 0;
  border: none;
}

/* li – аналог .sidebar-list li */
body.home .hm-acc-item{
  margin: 0;
  padding: 0;
  background: transparent;
  border: none;
  box-shadow: none;
}

body.home .hm-acc-item a{
  display: block;
  padding: 8px 16px;

  font-family: 'Manrope', system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  font-size: 15px;
  line-height: 1.5;
  font-weight: 400;

  color: var(--vtr-text);
  text-decoration: none;

  border-bottom: none;           
  border-radius: 0;
  transition: background 0.18s ease, color 0.18s ease;
}

body.home .hm-acc-item:last-child a{
  border-bottom: none;
}

body.home .hm-acc-item a:hover,
body.home .hm-acc-item a:focus{
  background: rgba(0,184,148,0.08);
  color: #155a86;
}

/* якщо захочеш додати active-клас */
body.home .hm-acc-item a.active{
  background: rgba(0,184,148,0.08);
  border-left: 3px solid #00b894;
  padding-left: 13px; /* компенсація border */
}

/* Випадок для Новин – просто таблетка-лінк, без тіла */
body.home .hm-accordion.hm-accordion--link{
  border-radius: 999px;
  box-shadow: 0 10px 24px rgba(15, 23, 42, 0.12);
}

body.home .hm-accordion.hm-accordion--link .hm-acc-header{
  border-radius: 999px;
}

  /* Link-only variant (e.g. Новини) */
  body.home .hm-accordion.hm-accordion--link .hm-acc-header{
    padding: 12px 18px;
  }

  /* Reused top-sales: reduce outer spacing for mobile */
  body.home .hm-top-sales .top-sales{ margin-top: 0; }
}

@media (max-width: 1040px){
   .room-toprow{
    flex-direction: row;          /* в ряд */
    align-items: center;          /* вертикальне вирівнювання */
    justify-content: space-between;
    gap: 12px;
  }

  .room-book-inline{
    align-self: center;
    margin-top: 0;
  }

}

.site-footer{
  background: linear-gradient(135deg, #2ca58d, #1f8a78);
  color: #ffffff;
  padding: 22px 0;  
  border-radius: 0;
}

.footer-inner{
  max-width: 1200px;    
  margin: 0 auto;
  padding: 0 20px;      
  
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 20px;
  flex-wrap: wrap;
  font-size: 14px;
}

.footer-inner a{
  color: #ffffff;
  text-decoration: none;
  font-weight: 500;
  transition: opacity .2s ease;
}

.footer-inner a:hover{
  opacity: 0.75;
}

.footer-separator{
  margin: 0 8px;
  opacity: .6;
}

.footer-right{
  opacity: .85;
}

@media (max-width: 768px){
  .footer-inner{
    flex-direction: column;
    text-align: center;
    gap: 8px;
  }
}

.footer-left{
  white-space: nowrap;
}

@media (max-width: 900px){
  .footer-left{
    white-space: normal;
  }
}

.gradient-text {
    font-family: "Manrope", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    font-size: 26px;
    font-weight: 800;
    line-height: 1.08;
    letter-spacing: -0.02em;
    text-decoration: none;
    display: inline-block;

    background: linear-gradient(
        90deg,
        #009dff 0%,
        #00c8ff 35%,
        #00e0ff 65%,
        #00f0d0 100%
    );

    -webkit-background-clip: text;
    background-clip: text;
    color: transparent;

    /* легке світіння */
    text-shadow:
        0 0 8px rgba(0, 200, 255, 0.4);
}

.topbar .logo {
  display: flex;
  align-items: center;
}

/* посилання-обгортка */
.logo-link {
  display: inline-flex;
  align-items: center;
}

/* саме зображення лого */
.logo img {
  height: 80px;
  width: auto;
  display: block;
}

/* старі елементи, щоб випадково не світилися десь ще */
.logo-icon,
.logo-text {
  display: none;
}

/* Prevent underline for header call button */
.btn-call, .btn-call:hover, .btn-call:focus, .btn-call:active {
  text-decoration: none !important;
}


/* ================================
   Mobile tuning: rooms layout
   ================================ */
@media (max-width: 768px){
  /* трохи ширше контент на мобільній */
  .single-sanatorium-page .container{
    padding-left: 14px;
    padding-right: 14px;
  }

  /* картки номерів ближче до країв */
  .rooms-tab{
    gap: 20px;
  }

  .rooms-tab .room-block{
    padding: 14px;
    border-radius: 20px;
  }

  /* фото номера майже на всю ширину картки */
  .rooms-tab .room-gallery{
    margin-left: -14px;
    margin-right: -14px;
    border-radius: 20px 20px 0 0;
    height: auto;
  }

  .rooms-tab .room-gallery .swiper,
  .rooms-tab .room-gallery .swiper-wrapper,
  .rooms-tab .room-gallery .swiper-slide{
    height: auto;
  }

  .rooms-tab .room-gallery img{
    width: 100%;
    height: auto;
    border-radius: 20px 20px 0 0;
  }

  /* приховати нижню карусель-превʼю на мобілці */
  .rooms-tab .room-thumbs,
  .rooms-tab .room-thumbs-wrap,
  .rooms-tab .swiper-thumbs{
    display: none !important;
  }
}

@media (max-width: 768px){
  .rooms-tab .room-layout{
    grid-template-columns: 1fr !important;
    gap: 14px;
  }
}


/* ================================
   Mobile: room card as single solid card
   ================================ */
@media (max-width: 768px){
  .rooms-tab .room-block{
    padding: 0;
    border-radius: 22px;
    overflow: hidden;
  }

  .rooms-tab .room-layout{
    grid-template-columns: 1fr !important;
    gap: 0;
  }

  .rooms-tab .room-gallery{
    margin: 0;
    border-radius: 0;
    height: auto;
  }

  .rooms-tab .room-gallery .swiper,
  .rooms-tab .room-gallery .swiper-wrapper,
  .rooms-tab .room-gallery .swiper-slide{
    height: auto;
  }

  .rooms-tab .room-gallery img{
    display: block;
    width: 100%;
    height: auto;
    border-radius: 0;
  }

  .rooms-tab .room-info{
    padding: 16px 16px 20px;
  }
}


/* =========================================
   Mobile polish: room card spacing & header
   ========================================= */
@media (max-width: 768px){
  .rooms-tab{
    gap: 18px;
  }

  .rooms-tab .room-block{
    background: rgba(255,255,255,0.96);
  }

  .rooms-tab .room-info{
    padding: 16px 18px 22px !important;
    background: transparent;
  }

  .rooms-tab .room-info > *:first-child{
    margin-top: 0;
  }

  .rooms-tab .room-info > *:last-child{
    margin-bottom: 0;
  }
}


/* =========================================
   MOBILE: final single-column room card UI
   ========================================= */
@media (max-width: 768px){
  .rooms-tab{
    gap: 20px;
  }

  .rooms-tab .room-block{
    padding: 0 !important;
    border-radius: 24px;
    overflow: hidden;
  }

  .rooms-tab .room-layout{
    display: block;
    grid-template-columns: 1fr !important;
    gap: 0 !important;
  }

  .rooms-tab .room-gallery{
    margin: 0 !important;
    height: auto !important;
  }

  .rooms-tab .room-gallery .swiper,
  .rooms-tab .room-gallery .swiper-wrapper,
  .rooms-tab .room-gallery .swiper-slide{
    height: auto !important;
  }

  .rooms-tab .room-gallery img{
    display: block;
    width: 100%;
    height: auto;
  }

  .rooms-tab .room-info{
    padding: 16px 18px 22px !important;
  }
}


/* =========================================
   MOBILE: unify room card background
   ========================================= */
@media (max-width: 768px){
  .rooms-tab .room-block{
    background: rgba(255,255,255,0.96);
    box-shadow:
      0 20px 60px rgba(0,0,0,0.15),
      inset 0 1px 0 rgba(255,255,255,0.5);
    border-radius: 24px;
    overflow: hidden;
  }

  .rooms-tab .room-info{
    padding: 16px 18px 22px !important;
    background: transparent !important;
    border: none !important;
    box-shadow: none !important;
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
  }
}

/* =========================================
   MOBILE: remove outer glass container in rooms tab
   ========================================= */
@media (max-width: 768px){

  /* сам контейнер вкладки */
  .rooms-tab{
    background: transparent !important;
  }

  .tab-content:has(.rooms-tab){
    background: transparent !important;
    box-shadow: none !important;
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
 }
}

@media (max-width: 768px){
  body.single-sanatorium .rooms-tab .room-block{
    margin-left: 0;
    margin-right: 0;
    padding-left: 16px;
    padding-right: 16px;
  }
}

@media (max-width: 1040px){
  .room-toprow .room-book-inline{
    align-self: center;
    width: auto;
    min-width: 0 !important;
    max-width: 100% !important;
    white-space: nowrap;
  }
}

@media (max-width: 1040px){

  #tab-rooms .room-info:not(.is-open) .room-amenities-list{
    max-height: 64px;       
    overflow: hidden;
    position: relative;
  }

  #tab-rooms .room-info:not(.is-open) .room-amenities-list::after{
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    height: 22px;            /* м’який градієнт, не з'їдає текст */
    background: linear-gradient(
      to bottom,
      transparent,
      rgba(255,255,255,0.98)
    );
  }

  /* Відкритий стан: повністю показуємо весь список без градієнта */
  #tab-rooms .room-info.is-open .room-amenities-list{
    max-height: 900px;
  }

  #tab-rooms .room-info.is-open .room-amenities-list::after{
    display: none;
  }
}

@media (max-width: 767px){
  #tab-rooms .room-info{
    height: auto !important;
    min-height: 0;
    overflow: visible !important;
  }

  #tab-rooms .room-info .room-desc-wrapper{
    overflow: visible !important;
  }
}

@media (max-width: 768px){
  .object-tabs{
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    justify-content: center;
  }

  .object-tabs .tab{
    flex: 0 0 calc(25% - 6px);  
    text-align: center;
    padding: 8px 6px;
    font-size: 13px;
    white-space: normal;        
  }
}

@media (max-width: 768px){
  .object-tabs .tab,
  .object-tabs .tab:focus,
  .object-tabs .tab:active,
  .object-tabs .tab:focus-visible{
    border-radius: 999px;
    outline: none !important;
    box-shadow: none !important;
    -webkit-tap-highlight-color: transparent;
    appearance: none;
    -webkit-appearance: none;
    background-clip: padding-box;
  }

  .object-tabs .tab::before,
  .object-tabs .tab::after{
    border-radius: 999px;
  }
}

@media (max-width: 768px){
  .object-swiper-thumbs{
    display: none !important;
  }
}

@media (max-width: 768px){

  .single-sanatorium-page .object-top,
  body.single-sanatorium .object-top{
    grid-template-columns: 1fr !important;
    gap: 14px;
  }

  /* Опис під фото */
  .single-sanatorium-page .object-meta,
  body.single-sanatorium .object-meta{
    margin-top: 10px;
  }

  /* Блок "Бронювання номерів" ще нижче */
  .single-sanatorium-page .booking-box,
  body.single-sanatorium .booking-box{
    margin-top: 12px;
  }

  /* На мобілці без стіккі-ефекту, щоб усе було просто вниз */
  .single-sanatorium-page .object-sidebar,
  body.single-sanatorium .object-sidebar{
    position: static !important;
    width: 100% !important;
    max-width: 100% !important;
  }
}

/* MOBILE: ховаємо каскад маленьких фото (thumbs) */
@media (max-width: 768px){
  .object-swiper-thumbs{
    display: none !important;
  }
}

/* Не даємо сторінці розкладатися по горизонталі */
body.single-sanatorium{
  overflow-x: hidden;
}

/* Контейнер галереї: не виходимо за екран */
body.single-sanatorium .object-gallery{
  max-width: 100%;
  overflow: hidden;
}

@media (max-width: 768px) {
  body.single-sanatorium .object-gallery{
    width: calc(100% + 32px);
    max-width: none;
    margin-left: -16px;
    margin-right: -16px;
  }
}

body.single-sanatorium .object-swiper-main,
body.single-sanatorium .object-swiper-main .swiper-wrapper,
body.single-sanatorium .object-swiper-main .swiper-slide{
  width: 100% !important;
  max-width: 100% !important;
  box-sizing: border-box;
  background: transparent !important;
}

/* Картинка заповнює слайд і точно видима */
body.single-sanatorium .object-swiper-main .swiper-slide img{
  display: block !important;
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  opacity: 1 !important;
  visibility: visible !important;
}

/* =========================================
   VTR: ширина + групування опису й бронювання
   тільки для сторінки санаторію
   ========================================= */

/* трішки виносимо картки за паддінги content-main */
body.single-sanatorium .object-meta,
body.single-sanatorium .booking-box{
  margin-left: -16px;
  margin-right: -16px;

  border-radius: 22px;
  box-shadow: 0 14px 34px rgba(0,0,0,0.10);
}

/* зменшуємо відстань між цими двома картками,
   щоб читалось як один блок */
body.single-sanatorium .object-meta{
  margin-bottom: 14px;
}

body.single-sanatorium .booking-box{
  margin-top: 0;
}

/* на ширших екранах можна трохи сильніше розтягнути */
@media (min-width: 768px){
  body.single-sanatorium .object-meta,
  body.single-sanatorium .booking-box{
    margin-left: -16px;
    margin-right: -16px;
  }
}

@media (max-width: 1200px){
  .object-meta__row{
    grid-template-columns: 1fr !important;
  }
}

@media (max-width: 768px){
  .object-meta__row{
    display: grid !important;
    grid-template-columns: 1fr 1fr !important;
    column-gap: 18px;
    row-gap: 16px;
  }
}

.object-meta__row .meta-item{
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
}

@media (max-width: 991px){

  .single-object-layout .accordion-wrapper {
    width: 100%;
    max-width: 680px;     /* щоб не було надто розтягнуто */
    margin: 0 auto 20px;  /* центрування */
  }

  .single-object-layout .accordion-toggle {
    width: 100%;
  }
}

@media (max-width: 768px) {
  body.single-sanatorium .sidebar {
    max-width: 370px;
    width: 100%;
    margin: 18px auto 24px;
  }

  body.single-sanatorium .sidebar-section {
    margin-bottom: 12px;
  }

  body.single-sanatorium .sidebar-section:last-child {
    margin-bottom: 0;
  }

  body.single-sanatorium .sidebar-toggle {
    padding-left: 18px;
    padding-right: 18px;
  }

  body.single-sanatorium .sidebar-list {
    padding-left: 18px;
    padding-right: 18px;
  }
}

@media (max-width: 768px) {
  .single-sanatorium .object-tabs-wrap {
    width: calc(100% + 32px);
    margin-left: -16px;
    margin-right: -16px;
    max-width: none;
  }
}

@media (max-width: 1023px){
  body:not(.home) .sidebar-section{
    background: transparent;
    box-shadow: none;
    padding: 0;
    overflow: visible;
  }
  
  body:not(.home) .sidebar{
    width: min(370px, calc(100vw - 32px));
    max-width: 370px;
    margin: 18px auto 24px;
  }

  body:not(.home) .sidebar .sidebar-toggle{
    background: rgba(255,255,255,0.96);
    color: var(--vtr-text);
    box-shadow: 0 6px 14px rgba(0,0,0,0.10);
  }

  body:not(.home) .sidebar .sidebar-toggle::after{
    color: inherit;
    transform: translateY(-50%);
  }

  body:not(.home) .sidebar .sidebar-list{
    display: none;
  }

  body:not(.home) .sidebar .sidebar-list:not(.is-collapsed){
    display: block;
  }

  body:not(.home) .sidebar .sidebar-toggle:not(.sidebar-toggle--collapsed){
    background: linear-gradient(90deg, #00b894, #00cec9);
    color: #fff;
    box-shadow: none;
    border-radius: 18px;
  }

  body:not(.home) .sidebar .sidebar-toggle:not(.sidebar-toggle--collapsed)::after{
    color: #fff;
    transform: translateY(-50%) rotate(180deg);
  }

  body:not(.home) .sidebar-section.sidebar-open{
    background: #ffffff;
    border-radius: 18px;
    box-shadow: 0 16px 40px rgba(0,0,0,0.12);
    padding: 0 0 12px;
    overflow: hidden;
  }
}

.topbar-menu-toggle{
  display: none; 
}


@media (max-width: 1023px){
  html,
  body{
    overflow-x: hidden;
  }

  .topbar,
  .topbar.is-compact{
    padding: 10px 0;
    background: transparent;
    box-shadow: none;
    backdrop-filter: none;
    -webkit-backdrop-filter: none;
  }

  .topbar-inner{
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: nowrap;
    gap: 12px;
    min-width: 0;
  }

  .topbar-nav,
  .topbar-phones,
  .btn-call{
    display: none !important;
  }

  .topbar-left{
    display: flex;
    align-items: center;
    gap: 12px;
    min-width: 0;
    flex: 1 1 auto;
    overflow: hidden;
  }

  .logo,
  .logo-link{
    display: inline-flex;
    align-items: center;
    flex: 0 0 auto;
  }

  .logo-img,
  .logo img{
    width: 118px;
    height: auto;
    max-width: 100%;
    display: block;
  }

  .lang-switch{
    display: flex;
    align-items: center;
    gap: 4px;
    font-size: 13px;
    line-height: 1;
    white-space: nowrap;
    flex: 0 0 auto;
  }

  .topbar-right{
    margin-left: auto;
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 8px;
    flex: 0 0 auto;
    min-width: auto;
  }

  .topbar-menu-toggle{
    display: inline-flex;
    flex-direction: column;
    justify-content: space-between;
    width: 26px;
    height: 18px;
    padding: 0;
    border: none;
    background: transparent;
    cursor: pointer;
    flex-shrink: 0;
  }

  .topbar-menu-toggle span{
    display: block;
    width: 100%;
    height: 3px;
    border-radius: 999px;
    background: #05a69b;
    transition: transform .2s ease, opacity .2s ease;
  }

  .mobile-menu{
    display: flex;
    position: fixed;
    inset: 0;
    z-index: 99999;
    min-height: 100dvh;
    height: 100dvh;
    overflow: hidden;
  }

  body:not(.home) .sidebar-section{
    background: transparent;
    box-shadow: none;
    padding: 0;
    overflow: visible;
  }

  body:not(.home) .sidebar{
    width: min(370px, calc(100vw - 32px));
    max-width: 370px;
    margin: 18px auto 24px;
  }

  body:not(.home) .sidebar .sidebar-list{
    display: none;
  }

  body:not(.home) .sidebar .sidebar-list:not(.is-collapsed){
    display: block;
  }

  .mobile-menu,
  .mobile-menu-panel{
    max-width: 100vw;
  }
}

@media (max-width: 1023px){

  .topbar-phones,
  .btn-call{
    display: none;
  }

  .topbar-right{
    margin-left: auto;
    gap: 8px;
  }

  /* кнопка-бургер */
    .topbar-menu-toggle{
      display: inline-flex;
      flex-direction: column;
      justify-content: space-between;
      width: 26px;
      height: 18px;
      padding: 0;
      border: none;
      background: transparent;
      cursor: pointer;
      flex-shrink: 0;
    }
    
    .topbar-menu-toggle span{
      display: block;
      width: 100%;
      height: 3px;
      border-radius: 999px;
      background: #05a69b;
      transition: transform .2s ease, opacity .2s ease;
    }

  /* анімація "хрестика" при відкритті */
  .topbar-menu-toggle.is-open span:nth-child(1){
    transform: translateY(7px) rotate(45deg);
  }
  .topbar-menu-toggle.is-open span:nth-child(2){
    opacity: 0;
  }
  .topbar-menu-toggle.is-open span:nth-child(3){
    transform: translateY(-7px) rotate(-45deg);
  }
}
 
/* За замовчуванням (десктоп) мобільне меню сховане */
.mobile-menu{
  display: none;
}

/* ======================
   MOBILE: full-screen меню
   ====================== */
@media (max-width: 1023px){

.mobile-menu{
  display: flex;
  position: fixed;
  inset: 0;
  z-index: 99999;
  min-height: 100dvh;
  height: 100dvh;
  overflow: hidden;

  background: linear-gradient(
    90deg,
    #0fa79d 0%,
    #11a39f 40%,
    #1497a9 70%,
    #1798b3 100%
  );

  color: #ffffff;
  opacity: 0;
  pointer-events: none;
  transition: opacity .25s ease;
}

.mobile-menu::before{
  content: "";
  position: absolute;
  inset: 0;
  background: rgba(255,255,255,0.03);
  pointer-events: none;
}

.mobile-menu.is-open{
  opacity: 1;
  pointer-events: auto;
}

.mobile-menu-panel{
  position: relative;
  width: 100%;
  height: 100%;
  min-height: 100dvh;
  box-sizing: border-box;
  padding: 12px 14px calc(16px + env(safe-area-inset-bottom, 0px));
  display: flex;
  flex-direction: column;
  gap: 12px;

  overflow-y: auto;
  overflow-x: hidden;
  -webkit-overflow-scrolling: touch;
  overscroll-behavior: contain;

  border-radius: 0 !important;
  box-shadow: none !important;
  background: transparent !important;
}

/* верхня картка з логотипом */
.mm-header{
  display: flex;
  align-items: center;
  justify-content: space-between;
  background: rgba(255,255,255,0.96);
  border-radius: 12px;
  padding: 6px 10px;
  gap: 10px;
}

.mm-logo{
  flex-shrink: 0;
}

.mm-logo img{
  height: 42px;
  width: auto;
  display: block;
}

.mm-lang-switch{
  display: flex;
  align-items: center;
  gap: 4px;
  font-size: 12px;
  color: #0f766e;
}

.mm-lang{
  text-decoration: none;
  color: #0f766e;
  font-weight: 600;
  opacity: 0.7;
}

.mm-lang.is-active{
  opacity: 1;
}

.mm-lang-sep{
  opacity: 0.5;
}

.mobile-menu-close{
  width: 38px;
  height: 38px;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 999px;
  border: none;
  background: rgba(15,118,110,0.12);
  font-size: 22px;
  font-weight: 700;
  line-height: 1;
  color: #0f766e;
  cursor: pointer;
  transition: background .2s ease, transform .15s ease;
}

.mobile-menu-close:active{
  transform: scale(0.92);
  background: rgba(15,118,110,0.2);
}

/* телефони */
.mm-contacts{
  background: rgba(255,255,255,0.08);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);

  border-radius: 16px;
  padding: 12px 14px;
  display: flex;
  flex-direction: column;
  gap: 12px;

  box-shadow: 0 8px 25px rgba(0,0,0,0.15);
}

.mm-contacts-row{
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
}

.mm-phone-number{
  display: flex;
  flex-direction: column;
  gap: 2px;
  font-size: 13px;
}

.mm-phone-number a{
  color: #ffffff;
  font-weight: 600;
  text-decoration: none;
}

.mm-phone-label{
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: .08em;
  opacity: .8;
}

.mm-messengers{
  display: flex;
  gap: 6px;
}

.mm-messengers .ms{
  width: 36px;
  height: 36px;
  border-radius: 999px;
  background: rgba(255,255,255,0.18);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  transition: transform .2s ease, background .2s ease;
}

.mm-messengers .ms:active{
  transform: scale(0.92);
  background: rgba(255,255,255,0.28);
}

.mm-messengers svg{
  width: 18px;
  height: 18px;
  fill: #ffffff;
}

.mm-divider,
.mm-divider--strong{
  position: relative;
  height: 8px;
  margin: 8px 0;
  background: transparent;
}

/* власне сама тонка лінія + розмиття */
.mm-divider::before,
.mm-divider--strong::before{
  content: "";
  position: absolute;
  top: 50%;
  left: 5%;
  right: 5%;
  height: 1px;
  transform: translateY(-50%);

  background: linear-gradient(
    90deg,
    rgba(20,184,166,0) 0%,
    rgba(20,184,166,0.85) 15%,
    rgba(45,185,212,0.7) 50%,
    rgba(20,184,166,0.85) 85%,
    rgba(20,184,166,0) 100%
  );

  border-radius: 999px;

  box-shadow:
    0 0 14px rgba(20,184,166,0.55),
    0 0 6px rgba(20,184,166,0.4);
}

.mobile-menu-panel .mm-divider:last-of-type{
  margin-top: 8px;
  margin-bottom: 8px;
}

/* навігація */
.mobile-menu-nav{
  flex: 1 1 auto;
  min-height: 0;

  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  text-align: center;

  gap: 6px;
  padding: 12px 18px;

  background: rgba(255,255,255,0.08);
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);

  border-radius: 20px;

  box-shadow:
    0 12px 35px rgba(0,0,0,0.25),
    inset 0 1px 0 rgba(255,255,255,0.2);
}

.mobile-menu-nav a{
  width: 100%;
  padding: 7px 0;
  text-decoration: none;
  font-size: 18px;
  font-weight: 600;
  color: #ffffff;
  text-align: center;
}

/* при наведенні тільки колір, БЕЗ підкреслення */
.mobile-menu-nav a:hover{
  text-decoration: none;
  color: #c1f3ec;
}

.mm-callback-wrap{
  position: relative;
  width: 100%;
  margin-top: 8px;
  margin-bottom: 0;

  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 10px;
  flex: 0 0 auto;
}

.mm-callback-btn{
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  max-width: 420px;
  min-height: 56px;
  margin: 0 auto;
  padding: 14px 18px;

  border: none;
  border-radius: 999px;

  background: #ffffff;
  color: #0b8c82;
  font-weight: 700;
  font-size: 16px;
  text-decoration: none;

  box-shadow: 0 10px 30px rgba(0,0,0,0.18);
  transition: transform .15s ease, box-shadow .15s ease;

  -webkit-appearance: none;
  appearance: none;
  cursor: pointer;
}

.mm-callback-btn:hover{
  background: #ffffff;
}

.mm-callback-btn:active{
  transform: translateY(2px);
  box-shadow: 0 6px 15px rgba(0,0,0,0.14);
}

.mm-callback-form[hidden]{
  display: none !important;
}

.mm-callback-form{
  width: 100%;
  max-width: 420px;
  padding: 14px;
  border-radius: 18px;
  background: rgba(255,255,255,0.12);
  box-shadow: 0 8px 24px rgba(0,0,0,0.16);
  box-sizing: border-box;
}

.mm-callback-form__inner{
  display: flex;
  flex-direction: column;
  gap: 10px;
  width: 100%;
}

.mm-callback-form .callback-input{
  width: 100%;
  min-height: 44px;
  box-sizing: border-box;
  border: none;
  border-radius: 14px;
  padding: 0 14px;
}

.mm-callback-form .callback-btn{
  width: 100%;
  min-height: 44px;
  box-sizing: border-box;
  border: none;
  border-radius: 14px;
}
}

body.mobile-menu-open{
  overflow: hidden;
}

@media (max-width: 1023px){

  .mobile-menu.is-callback-open .mobile-menu-panel{
    justify-content: flex-start;
  }

  .mobile-menu.is-callback-open .mobile-menu-nav{
  flex: 0 0 auto;
  min-height: auto;
  justify-content: flex-start;

  gap: 6px;
  padding: 12px 18px;
}

  .mobile-menu.is-callback-open .mobile-menu-nav a{
  padding: 6px 0;
  font-size: 16px;
}

  .mobile-menu.is-callback-open .mm-callback-wrap{
    margin-top: 6px;
    gap: 8px;
  }

  .mobile-menu.is-callback-open .mm-callback-btn{
    display: none;
  }

  .mobile-menu.is-callback-open .mm-callback-form{
    padding: 12px;
  }

}

@media (max-width: 768px) {

  body.home .home-mobile-layout .hm-contacts {
    display: none !important;
  }

  .top-sales-info {
    display: none !important;
  }
}

@media (max-width: 768px) {

  .home-mobile-layout .hm-top-sales .top-sales-left {
    padding: 24px 20px;
    margin: 18px 0px 0px;

    background: #ffffff;

    border-radius: 28px;

    box-shadow:
      0 8px 20px rgba(15, 23, 42, 0.08);
  }

}

@media (max-width: 960px){
  body.home .hm-about-inner{
    padding: 14px 16px 18px;
    border-radius: 18px;
    background: #ffffff;
    box-shadow: 0 8px 20px rgba(15, 23, 42, 0.08);
  }

  body.home .hm-about-resort .section-about-resort-title{
    margin-bottom: 8px;
    font-size: 18px;
    font-weight: 700;
  }

  body.home .hm-about-resort .section-about-resort-text{
    font-size: 14px;
    line-height: 1.6;
    opacity: .95;
  }
}

/* Fix GLightbox image centering */
.glightbox-container .gslide,
.glightbox-container .gslide-inner-content,
.glightbox-container .ginner-container {
  display: flex;
  align-items: center;
  justify-content: center;
}

.glightbox-container .gslide-image {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
}

.glightbox-container .gslide-image img {
  display: block;
  width: auto !important;
  max-width: 100% !important;
  max-height: 92vh !important;
  margin: 0 auto !important;
  object-fit: contain;
  transform: none;
}


@media (max-width: 768px) {

  body {
    background: none;
  }

  body::before {
    content: "";
    position: fixed;
    inset: 0;
    z-index: -1;
    pointer-events: none;

    background-image: url("/wp-content/uploads/2026/03/bg-truskavets.webp");
    background-size: cover;
    background-position: 50% 20%;
    background-repeat: no-repeat;

    transform: translateZ(0);
    will-change: transform;
  }

}

.mm-callback-form__inner{
  position: relative;
}

.callback-close--inline{
  align-self: flex-end;
  width: 36px;
  height: 36px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: none;
  border-radius: 999px;
  background: rgba(255,255,255,0.16);
  color: #ffffff;
  font-size: 24px;
  line-height: 1;
  cursor: pointer;
}

.callback-close--inline:focus-visible{
  outline: 2px solid rgba(193,243,236,0.95);
  outline-offset: 2px;
}

/* swiper arrows (rooms) */
#tab-rooms .swiper-button-next,
#tab-rooms .swiper-button-prev{
  -webkit-tap-highlight-color: transparent;
  outline: none;
}

/* тільки клікабельні картинки */
#tab-rooms .room-gallery a{
  -webkit-tap-highlight-color: transparent;
}

/* lightbox trigger */
#tab-rooms .glightbox{
  -webkit-tap-highlight-color: transparent;
}

.logo-link{
  -webkit-tap-highlight-color: transparent;
}

@media (hover: none) and (pointer: coarse){
  body.home .hm-acc-item a,
  body.home .hm-acc-header,
  body.home .hm-accordion.hm-accordion--link .hm-acc-header{
    -webkit-tap-highlight-color: transparent;
    outline: none;
  }

  body.home .hm-acc-item a:focus,
  body.home .hm-acc-item a:active,
  body.home .hm-acc-header:focus,
  body.home .hm-acc-header:active,
  body.home .hm-accordion.hm-accordion--link .hm-acc-header:focus,
  body.home .hm-accordion.hm-accordion--link .hm-acc-header:active{
    background: transparent;
    color: inherit;
    outline: none;
    box-shadow: none;
  }

  body.home .hm-accordion.is-open .hm-acc-header:focus,
  body.home .hm-accordion.is-open .hm-acc-header:active{
    background: linear-gradient(90deg, #00b894, #00cec9);
    color: #fff;
    box-shadow: none;
  }
}

/* ===== V5 tablet fix: single object must never push page horizontally ===== */
@media (min-width: 769px) and (max-width: 1023px){
  body.single-sanatorium,
  body.single-sanatorium-page{
    overflow-x: hidden;
  }

  body.single-sanatorium .content-main,
  body.single-sanatorium-page .content-main{
    padding-left: 16px !important;
    padding-right: 16px !important;
    overflow: hidden;
  }

  body.single-sanatorium .object-top,
  body.single-sanatorium-page .object-top{
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 14px !important;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
  }

  body.single-sanatorium .object-left,
  body.single-sanatorium-page .object-left,
  body.single-sanatorium .object-sidebar,
  body.single-sanatorium-page .object-sidebar,
  body.single-sanatorium .object-gallery,
  body.single-sanatorium-page .object-gallery,
  body.single-sanatorium .object-swiper-main,
  body.single-sanatorium-page .object-swiper-main,
  body.single-sanatorium .object-swiper-thumbs,
  body.single-sanatorium-page .object-swiper-thumbs,
  body.single-sanatorium .object-meta,
  body.single-sanatorium-page .object-meta,
  body.single-sanatorium .booking-box,
  body.single-sanatorium-page .booking-box{
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
    box-sizing: border-box !important;
  }

  body.single-sanatorium .object-sidebar,
  body.single-sanatorium-page .object-sidebar{
    position: static !important;
    top: auto !important;
  }

  body.single-sanatorium .object-swiper-main .swiper-wrapper,
  body.single-sanatorium-page .object-swiper-main .swiper-wrapper,
  body.single-sanatorium .object-swiper-main .swiper-slide,
  body.single-sanatorium-page .object-swiper-main .swiper-slide{
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
  }

  body.single-sanatorium .object-swiper-main img,
  body.single-sanatorium-page .object-swiper-main img{
    width: 100% !important;
    max-width: 100% !important;
    height: auto !important;
    aspect-ratio: 16 / 9;
    object-fit: cover !important;
    display: block;
  }
}

/* =========================================
   GLOBAL TOUCH PRESS FIX
   прибирає синій/блакитний pressed state
   на мобілці і планшеті
========================================= */
@media (max-width: 1023px){

  /* 1) всі інтерактивні елементи: прибрати tap highlight / outline */
  a,
  button,
  input,
  textarea,
  select,
  summary,
  [role="button"],
  [tabindex],
  .btn,
  .button,
  .wp-element-button,
  .menu-toggle,
  .mobile-menu-toggle,
  .burger,
  .hm-acc-header,
  .sidebar-toggle,
  .tab-btn,
  .object-tabs button,
  .swiper-button-next,
  .swiper-button-prev,
  .glightbox,
  .callback-btn,
  .booking-box .btn,
  .booking-box a,
  .booking-box button,
  .wpcf7-submit,
  input[type="submit"],
  input[type="button"],
  input[type="reset"]{
    -webkit-tap-highlight-color: transparent;
    outline: none;
  }

  /* 2) прибрати browser pressed/focus glow */
  a:focus,
  a:active,
  a:focus-visible,
  button:focus,
  button:active,
  button:focus-visible,
  input:focus,
  input:active,
  input:focus-visible,
  textarea:focus,
  textarea:active,
  textarea:focus-visible,
  select:focus,
  select:active,
  select:focus-visible,
  summary:focus,
  summary:active,
  summary:focus-visible,
  [role="button"]:focus,
  [role="button"]:active,
  [role="button"]:focus-visible,
  [tabindex]:focus,
  [tabindex]:active,
  [tabindex]:focus-visible,
  .btn:focus,
  .btn:active,
  .btn:focus-visible,
  .button:focus,
  .button:active,
  .button:focus-visible,
  .wp-element-button:focus,
  .wp-element-button:active,
  .wp-element-button:focus-visible,
  .menu-toggle:focus,
  .menu-toggle:active,
  .menu-toggle:focus-visible,
  .mobile-menu-toggle:focus,
  .mobile-menu-toggle:active,
  .mobile-menu-toggle:focus-visible,
  .burger:focus,
  .burger:active,
  .burger:focus-visible,
  .hm-acc-header:focus,
  .hm-acc-header:active,
  .hm-acc-header:focus-visible,
  .sidebar-toggle:focus,
  .sidebar-toggle:active,
  .sidebar-toggle:focus-visible,
  .tab-btn:focus,
  .tab-btn:active,
  .tab-btn:focus-visible,
  .object-tabs button:focus,
  .object-tabs button:active,
  .object-tabs button:focus-visible,
  .swiper-button-next:focus,
  .swiper-button-next:active,
  .swiper-button-next:focus-visible,
  .swiper-button-prev:focus,
  .swiper-button-prev:active,
  .swiper-button-prev:focus-visible,
  .glightbox:focus,
  .glightbox:active,
  .glightbox:focus-visible,
  .callback-btn:focus,
  .callback-btn:active,
  .callback-btn:focus-visible,
  .booking-box .btn:focus,
  .booking-box .btn:active,
  .booking-box .btn:focus-visible,
  .booking-box a:focus,
  .booking-box a:active,
  .booking-box a:focus-visible,
  .booking-box button:focus,
  .booking-box button:active,
  .booking-box button:focus-visible,
  .wpcf7-submit:focus,
  .wpcf7-submit:active,
  .wpcf7-submit:focus-visible,
  input[type="submit"]:focus,
  input[type="submit"]:active,
  input[type="submit"]:focus-visible,
  input[type="button"]:focus,
  input[type="button"]:active,
  input[type="button"]:focus-visible,
  input[type="reset"]:focus,
  input[type="reset"]:active,
  input[type="reset"]:focus-visible{
    outline: none;
    box-shadow: none;
  }

  /* 3) links/buttons не повинні синіти від браузера */
  a:active,
  a:focus,
  a:focus-visible,
  button:active,
  button:focus,
  button:focus-visible,
  input[type="submit"]:active,
  input[type="submit"]:focus,
  input[type="submit"]:focus-visible,
  input[type="button"]:active,
  input[type="button"]:focus,
  input[type="button"]:focus-visible{
    text-decoration: none;
  }

  /* 4) home accordion */
  body.home .hm-accordion:not(.is-open) .hm-acc-header,
  body.home .hm-accordion:not(.is-open) .hm-acc-header:focus,
  body.home .hm-accordion:not(.is-open) .hm-acc-header:active,
  body.home .hm-accordion:not(.is-open) .hm-acc-header:focus-visible{
    background: #fff;
    color: var(--vtr-text);
    box-shadow: 0 6px 14px rgba(0,0,0,0.10);
  }

  body.home .hm-accordion.is-open .hm-acc-header,
  body.home .hm-accordion.is-open .hm-acc-header:focus,
  body.home .hm-accordion.is-open .hm-acc-header:active,
  body.home .hm-accordion.is-open .hm-acc-header:focus-visible{
    background: linear-gradient(90deg, #00b894, #00cec9);
    color: #fff;
    box-shadow: none;
  }

  /* 5) sidebar toggle */
  body:not(.home) .sidebar .sidebar-toggle.sidebar-toggle--collapsed,
  body:not(.home) .sidebar .sidebar-toggle.sidebar-toggle--collapsed:focus,
  body:not(.home) .sidebar .sidebar-toggle.sidebar-toggle--collapsed:active,
  body:not(.home) .sidebar .sidebar-toggle.sidebar-toggle--collapsed:focus-visible{
    background: rgba(255,255,255,0.96);
    color: var(--vtr-text);
    box-shadow: 0 6px 14px rgba(0,0,0,0.10);
  }

  body:not(.home) .sidebar .sidebar-toggle:not(.sidebar-toggle--collapsed),
  body:not(.home) .sidebar .sidebar-toggle:not(.sidebar-toggle--collapsed):focus,
  body:not(.home) .sidebar .sidebar-toggle:not(.sidebar-toggle--collapsed):active,
  body:not(.home) .sidebar .sidebar-toggle:not(.sidebar-toggle--collapsed):focus-visible{
    background: linear-gradient(90deg, #00b894, #00cec9);
    color: #fff;
    box-shadow: none;
  }

  /* 6) object tabs */
  .object-tabs .tab-btn:not(.active),
  .object-tabs .tab-btn:not(.active):focus,
  .object-tabs .tab-btn:not(.active):active,
  .object-tabs .tab-btn:not(.active):focus-visible,
  .object-tabs button:not(.active),
  .object-tabs button:not(.active):focus,
  .object-tabs button:not(.active):active,
  .object-tabs button:not(.active):focus-visible{
    background: rgba(255,255,255,0.92);
    color: #2d2d2d;
    box-shadow: none;
  }

  .object-tabs .tab-btn.active,
  .object-tabs .tab-btn.active:focus,
  .object-tabs .tab-btn.active:active,
  .object-tabs .tab-btn.active:focus-visible,
  .object-tabs button.active,
  .object-tabs button.active:focus,
  .object-tabs button.active:active,
  .object-tabs button.active:focus-visible{
    background: linear-gradient(90deg, #00b894, #00cec9);
    color: #fff;
    box-shadow: none;
  }

  /* 7) primary CTA buttons */
  .btn-primary,
  .btn-primary:focus,
  .btn-primary:active,
  .btn-primary:focus-visible,
  .booking-box .btn,
  .booking-box .btn:focus,
  .booking-box .btn:active,
  .booking-box .btn:focus-visible,
  .callback-btn,
  .callback-btn:focus,
  .callback-btn:active,
  .callback-btn:focus-visible,
  .wpcf7-submit,
  .wpcf7-submit:focus,
  .wpcf7-submit:active,
  .wpcf7-submit:focus-visible,
  input[type="submit"],
  input[type="submit"]:focus,
  input[type="submit"]:active,
  input[type="submit"]:focus-visible{
    box-shadow: none;
  }

  /* 8) swiper arrows */
  .swiper-button-next,
  .swiper-button-next:focus,
  .swiper-button-next:active,
  .swiper-button-next:focus-visible,
  .swiper-button-prev,
  .swiper-button-prev:focus,
  .swiper-button-prev:active,
  .swiper-button-prev:focus-visible{
    box-shadow: none;
  }
}

/* ===== SAFE tablet single object layout fix (768-1023px) ===== */
@media (min-width: 768px) and (max-width: 1023px){
  body.single-sanatorium .content-main,
  body.single-sanatorium-page .content-main{
    padding-left: 16px !important;
    padding-right: 16px !important;
  }

  body.single-sanatorium .object-top,
  body.single-sanatorium-page .object-top{
    display: grid !important;
    grid-template-columns: minmax(0, 1.18fr) minmax(280px, 0.82fr) !important;
    gap: 14px !important;
    align-items: start !important;
  }

  body.single-sanatorium .object-left,
  body.single-sanatorium-page .object-left{
    min-width: 0 !important;
    align-self: start !important;
  }

  body.single-sanatorium .object-sidebar,
  body.single-sanatorium-page .object-sidebar{
    display: contents !important;
    position: static !important;
    top: auto !important;
    width: auto !important;
    max-width: none !important;
    margin: 0 !important;
    padding: 0 !important;
  }

  body.single-sanatorium .object-meta,
  body.single-sanatorium-page .object-meta{
    grid-column: 2 !important;
    align-self: start !important;
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 !important;
    padding: 18px 20px !important;
    box-sizing: border-box !important;
    border-radius: 22px !important;
  }

  body.single-sanatorium .booking-box,
  body.single-sanatorium-page .booking-box{
    grid-column: 1 / -1 !important;
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 !important;
    padding: 18px 20px !important;
    box-sizing: border-box !important;
    border-radius: 22px !important;
  }

  body.single-sanatorium .booking-box h3,
  body.single-sanatorium-page .booking-box h3{
    margin-bottom: 16px !important;
  }

  body.single-sanatorium .booking-btn,
  body.single-sanatorium .booking-link,
  body.single-sanatorium-page .booking-btn,
  body.single-sanatorium-page .booking-link{
    width: 100% !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
  }

  body.single-sanatorium .object-gallery,
  body.single-sanatorium-page .object-gallery,
  body.single-sanatorium .object-swiper-main,
  body.single-sanatorium-page .object-swiper-main,
  body.single-sanatorium .object-swiper-thumbs,
  body.single-sanatorium-page .object-swiper-thumbs{
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
  }

  body.single-sanatorium .object-swiper-main,
  body.single-sanatorium-page .object-swiper-main{
    margin-bottom: 12px !important;
  }

  body.single-sanatorium .object-swiper-main img,
  body.single-sanatorium-page .object-swiper-main img{
    width: 100% !important;
    height: auto !important;
    aspect-ratio: 4 / 3 !important;
    object-fit: cover !important;
    display: block !important;
  }
}

/* ===== iPad Mini exact fix (768px only) ===== */
@media (min-width: 768px) and (max-width: 768px){
  body.single-sanatorium .content-main,
  body.single-sanatorium-page .content-main{
    padding-left: 16px !important;
    padding-right: 16px !important;
  }

  body.single-sanatorium .object-top,
  body.single-sanatorium-page .object-top{
    display: grid !important;
    grid-template-columns: minmax(0, 1.06fr) minmax(0, 0.94fr) !important;
    gap: 14px !important;
    align-items: start !important;
  }

  /* cancel mobile overflow hack exactly at 768px */
  body.single-sanatorium .object-gallery,
  body.single-sanatorium-page .object-gallery{
    width: 100% !important;
    max-width: 100% !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
    overflow: hidden !important;
  }

  body.single-sanatorium .object-left,
  body.single-sanatorium-page .object-left,
  body.single-sanatorium .object-sidebar,
  body.single-sanatorium-page .object-sidebar,
  body.single-sanatorium .object-meta,
  body.single-sanatorium-page .object-meta,
  body.single-sanatorium .booking-box,
  body.single-sanatorium-page .booking-box{
    min-width: 0 !important;
  }

  /* keep thumbs visible on iPad Mini */
  body.single-sanatorium .object-swiper-thumbs,
  body.single-sanatorium-page .object-swiper-thumbs{
    display: block !important;
    width: 100% !important;
    margin-top: 12px !important;
  }

  body.single-sanatorium .object-swiper-thumbs .swiper-slide,
  body.single-sanatorium-page .object-swiper-thumbs .swiper-slide{
    height: 64px !important;
    aspect-ratio: auto !important;
    border-radius: 12px !important;
    overflow: hidden !important;
  }

  body.single-sanatorium .object-meta,
  body.single-sanatorium-page .object-meta{
    margin: 0 !important;
    padding: 18px 18px !important;
    border-radius: 22px !important;
  }

  body.single-sanatorium .booking-box,
  body.single-sanatorium-page .booking-box{
    grid-column: 1 / -1 !important;
    margin: 0 !important;
    padding: 18px 18px !important;
    border-radius: 22px !important;
  }

  body.single-sanatorium .object-meta__row,
  body.single-sanatorium-page .object-meta__row{
    grid-template-columns: 1fr 1fr !important;
    gap: 12px 14px !important;
  }

  body.single-sanatorium .meta-item .meta-val,
  body.single-sanatorium-page .meta-item .meta-val{
    word-break: break-word;
  }
}

@media (min-width: 768px) and (max-width: 780px) {

  body.home .hm-accordion {
    max-width: 370px;
    margin-left: auto;
    margin-right: auto;
  }
}

/* =========================================
   ROOMS TAB CLEANUP: tablet (768–1023)
   - thumbs removed
   - one clear block for 768–799
   - one clear block for 800–1023
   ========================================= */
#tab-rooms .room-swiper-thumbs,
#tab-rooms .room-thumbs,
#tab-rooms .room-gallery-thumbs,
#tab-rooms .room-thumbs-slider,
#tab-rooms .room-thumbs-wrap{
  display:none !important;
}

#tab-rooms .room-block{
  padding:24px !important;
}

@media (min-width: 768px) and (max-width: 799px){
  #tab-rooms .room-layout{
    display:grid !important;
    grid-template-columns:minmax(0, 1.06fr) minmax(0, 0.86fr) !important;
    gap:18px !important;
    align-items:stretch !important;
  }

  #tab-rooms .room-gallery{
    min-width:0 !important;
    height:380px !important;
    overflow:hidden !important;
    border-radius:22px !important;
  }

  #tab-rooms .room-gallery .swiper,
  #tab-rooms .room-gallery .swiper-wrapper,
  #tab-rooms .room-gallery .swiper-slide,
  #tab-rooms .room-gallery a,
  #tab-rooms .room-swiper-main,
  #tab-rooms .room-main-swiper,
  #tab-rooms .room-main-slider{
    height:100% !important;
    min-height:0 !important;
  }

  #tab-rooms .room-gallery img{
    width:100% !important;
    height:100% !important;
    display:block !important;
    object-fit:cover !important;
    border-radius:22px !important;
  }

  #tab-rooms .room-info,
  #tab-rooms .room-info:not(.is-open){
    position:static !important;
    display:flex !important;
    flex-direction:column !important;
    min-width:0 !important;
    height:380px !important;
    min-height:380px !important;
    margin:0 !important;
    padding:20px 20px 18px !important;
    border-radius:22px !important;
    background:rgba(255,255,255,0.56) !important;
    border:none !important;
    box-shadow:0 8px 24px rgba(15,23,42,.07), inset 0 0 0 1px rgba(255,255,255,.28) !important;
    overflow:hidden !important;
  }

  #tab-rooms .room-info.is-open{
    height:auto !important;
    min-height:300px !important;
    overflow:visible !important;
  }

  #tab-rooms .room-title{
    margin:0 0 10px !important;
    font-size:16px !important;
    line-height:1.28 !important;
  }

  #tab-rooms .room-toprow{
    display:flex !important;
    align-items:center !important;
    justify-content:space-between !important;
    gap:10px !important;
    margin:0 0 12px !important;
    flex-wrap:nowrap !important;
  }

  #tab-rooms .room-price{
    flex:1 1 auto !important;
    min-width:0 !important;
    font-size:13px !important;
    line-height:1.35 !important;
    white-space:nowrap !important;
  }

  #tab-rooms .room-book-inline,
  #tab-rooms .room-book-btn{
    flex:0 0 auto !important;
    min-height:36px !important;
    min-width:0 !important;
    width:auto !important;
    max-width:100% !important;
    padding:0 14px !important;
    font-size:12px !important;
    line-height:1.2 !important;
    white-space:nowrap !important;
  }

  #tab-rooms .room-desc-wrapper{
    flex:1 1 auto !important;
    min-height:0 !important;
    overflow:hidden !important;
  }

  #tab-rooms .room-info.is-open .room-desc-wrapper{
    overflow:visible !important;
  }

  #tab-rooms .room-desc p{
    display:-webkit-box !important;
    -webkit-box-orient:vertical !important;
    -webkit-line-clamp: 6 !important;
    overflow:hidden !important;
    font-size:14px !important;
    line-height:1.5 !important;
    margin:0 0 8px !important;
  }

  #tab-rooms .room-info.is-open .room-desc p{
    display:block !important;
    -webkit-line-clamp:unset !important;
    overflow:visible !important;
  }

  #tab-rooms .room-amenities{
    margin:0 !important;
  }

  #tab-rooms .room-amenities-title{
    margin:0 0 6px !important;
    font-size:14px !important;
    line-height:1.35 !important;
  }

  #tab-rooms ul.room-amenities-list{
    margin:0 !important;
    padding-left:18px !important;
    overflow:hidden !important;
  }

  #tab-rooms ul.room-amenities-list li{
    font-size:14px !important;
    line-height:1.35 !important;
    margin-bottom:3px !important;
  }

  #tab-rooms .room-info:not(.is-open) ul.room-amenities-list li:nth-child(n+5){
    display:none !important;
  }

  #tab-rooms .room-info.is-open ul.room-amenities-list li{
    display:list-item !important;
  }

  #tab-rooms .room-more-btn{
    flex:0 0 auto !important;
    margin-top:10px !important;
    align-self:flex-start !important;
    font-size:14px !important;
    line-height:1.3 !important;
  }
}

@media (min-width: 800px) and (max-width: 1023px){
  #tab-rooms .room-layout{
    display:grid !important;
    grid-template-columns:minmax(0, 1.14fr) 300px !important;
    gap:18px !important;
    align-items:stretch !important;
  }

  #tab-rooms .room-gallery{
    min-width:0 !important;
    height:420px !important;
    overflow:hidden !important;
    border-radius:22px !important;
  }

  #tab-rooms .room-gallery .swiper,
  #tab-rooms .room-gallery .swiper-wrapper,
  #tab-rooms .room-gallery .swiper-slide,
  #tab-rooms .room-gallery a,
  #tab-rooms .room-swiper-main,
  #tab-rooms .room-main-swiper,
  #tab-rooms .room-main-slider{
    height:100% !important;
    min-height:0 !important;
  }

  #tab-rooms .room-gallery img{
    width:100% !important;
    height:100% !important;
    display:block !important;
    object-fit:cover !important;
    border-radius:22px !important;
  }

  #tab-rooms .room-info,
  #tab-rooms .room-info:not(.is-open){
    position:static !important;
    display:flex !important;
    flex-direction:column !important;
    min-width:0 !important;
    height:420px !important;
    min-height:420px !important;
    margin:0 !important;
    padding:22px 20px 18px !important;
    border-radius:22px !important;
    background:rgba(255,255,255,0.56) !important;
    border:none !important;
    box-shadow:0 8px 24px rgba(15,23,42,.07), inset 0 0 0 1px rgba(255,255,255,.28) !important;
    overflow:hidden !important;
  }

  #tab-rooms .room-info.is-open{
    height:auto !important;
    min-height:320px !important;
    overflow:visible !important;
  }

  #tab-rooms .room-title{
    margin:0 0 10px !important;
    font-size:20px !important;
    line-height:1.25 !important;
  }

  #tab-rooms .room-toprow{
    display:flex !important;
    align-items:center !important;
    justify-content:space-between !important;
    gap:12px !important;
    margin:0 0 12px !important;
    flex-wrap:nowrap !important;
  }

  #tab-rooms .room-price{
    flex:1 1 auto !important;
    min-width:0 !important;
    white-space:nowrap !important;
    font-size:14px !important;
    line-height:1.35 !important;
  }

  #tab-rooms .room-book-inline,
  #tab-rooms .room-book-btn{
    flex:0 0 auto !important;
    min-height:38px !important;
    min-width:0 !important;
    width:auto !important;
    max-width:100% !important;
    padding:0 16px !important;
    font-size:14px !important;
    line-height:1.2 !important;
    white-space:nowrap !important;
  }

  #tab-rooms .room-desc-wrapper{
    flex:1 1 auto !important;
    min-height:0 !important;
    overflow:hidden !important;
  }

  #tab-rooms .room-info.is-open .room-desc-wrapper{
    overflow:visible !important;
  }

  #tab-rooms .room-desc p{
    display:-webkit-box !important;
    -webkit-box-orient:vertical !important;
    -webkit-line-clamp:6 !important;
    overflow:hidden !important;
    font-size:14px !important;
    line-height:1.55 !important;
    margin:0 0 10px !important;
  }

  #tab-rooms .room-info.is-open .room-desc p{
    display:block !important;
    -webkit-line-clamp:unset !important;
    overflow:visible !important;
  }

  #tab-rooms .room-amenities{
    margin:0 !important;
  }

  #tab-rooms .room-amenities-title{
    margin:0 0 8px !important;
    font-size:14px !important;
    line-height:1.35 !important;
  }

  #tab-rooms ul.room-amenities-list{
    margin:0 !important;
    padding-left:18px !important;
    overflow:hidden !important;
  }

  #tab-rooms ul.room-amenities-list li{
    font-size:14px !important;
    line-height:1.4 !important;
    margin-bottom:4px !important;
  }

  #tab-rooms .room-info:not(.is-open) ul.room-amenities-list li:nth-child(n+5){
    display:none !important;
  }

  #tab-rooms .room-info.is-open ul.room-amenities-list li{
    display:list-item !important;
  }

  #tab-rooms .room-more-btn{
    flex:0 0 auto !important;
    margin-top:10px !important;
    align-self:flex-start !important;
    font-size:14px !important;
    line-height:1.3 !important;
  }
}

@media (max-width: 767px){
  #tab-rooms .room-layout{
    grid-template-columns:1fr !important;
    gap:16px !important;
    align-items:start !important;
  }

  /* Мобільна галерея: висоту задаємо тільки viewport, не всьому swiper-ланцюжку */
  #tab-rooms .room-gallery{
    height:auto !important;
    overflow:hidden !important;
    border-radius:22px 22px 0 0 !important;
  }

  #tab-rooms .room-swiper-main,
  #tab-rooms .room-gallery > .swiper,
  #tab-rooms .room-main-swiper,
  #tab-rooms .room-main-slider{
    width:100% !important;
    aspect-ratio:4 / 3 !important;
    height:auto !important;
    min-height:0 !important;
  }

  #tab-rooms .room-gallery .swiper-wrapper{
    align-items:stretch !important;
  }

  #tab-rooms .room-gallery .swiper-slide{
    display:flex !important;
    align-items:stretch !important;
    justify-content:stretch !important;
    height:auto !important;
  }

  #tab-rooms .room-gallery a{
    display:block !important;
    width:100% !important;
    height:100% !important;
  }

  #tab-rooms .room-gallery img{
    display:block !important;
    width:100% !important;
    height:100% !important;
    aspect-ratio:4 / 3 !important;
    object-fit:cover !important;
    border-radius:0 !important;
  }

  #tab-rooms .room-info,
  #tab-rooms .room-info:not(.is-open),
  #tab-rooms .room-info.is-open{
    height:auto !important;
    min-height:0 !important;
  }
}

@media (min-width: 1024px) and (max-width: 1200px){
  body.single-sanatorium .object-top,
  body.single-sanatorium-page .object-top{
    display:grid !important;
    grid-template-columns:minmax(0, 1.24fr) minmax(280px, 0.76fr) !important;
    gap:20px !important;
    align-items:stretch !important;
  }

  body.single-sanatorium .object-left,
  body.single-sanatorium-page .object-left{
    min-width:0 !important;
    align-self:stretch !important;
  }

  body.single-sanatorium .object-sidebar,
  body.single-sanatorium-page .object-sidebar{
    display:contents !important;
    position:static !important;
    top:auto !important;
    width:auto !important;
    max-width:none !important;
    margin:0 !important;
    padding:0 !important;
  }

  body.single-sanatorium .object-gallery,
  body.single-sanatorium-page .object-gallery{
    min-width:0 !important;
    margin:0 !important;
  }

  body.single-sanatorium .object-swiper-main,
  body.single-sanatorium-page .object-swiper-main{
    height:430px !important;
    margin-bottom:10px !important;
  }

  body.single-sanatorium .object-swiper-main .swiper-slide img,
  body.single-sanatorium-page .object-swiper-main .swiper-slide img{
    height:100% !important;
  }

  body.single-sanatorium .object-meta,
  body.single-sanatorium-page .object-meta{
    grid-column:2 !important;
    align-self:stretch !important;
    display:flex !important;
    flex-direction:column !important;
    justify-content:flex-start !important;
    height:100% !important;
    margin:0 !important;
    padding:18px 20px !important;
    border-radius:22px !important;
  }

  body.single-sanatorium .object-meta__row,
  body.single-sanatorium-page .object-meta__row{
    grid-template-columns:1fr !important;
    gap:10px !important;
  }

  body.single-sanatorium .booking-box,
  body.single-sanatorium-page .booking-box{
    grid-column:1 / -1 !important;
    width:100% !important;
    margin:0 !important;
    padding:18px 20px !important;
    border-radius:22px !important;
  }

  #tab-rooms .room-layout{
    align-items:start !important;
  }

  #tab-rooms .room-info,
  #tab-rooms .room-info:not(.is-open),
  #tab-rooms .room-info.is-open{
    align-self:start !important;
    justify-content:flex-start !important;
    padding-top:2px !important;
  }
}

@media (min-width: 768px) and (max-width: 1200px){

  body.single-sanatorium .object-top,
  body.single-sanatorium-page .object-top{
    display:grid !important;
    grid-template-columns:minmax(0, 1.08fr) minmax(280px, 0.92fr) !important;
    gap:20px !important;
    align-items:stretch !important;
  }

  body.single-sanatorium .object-left,
  body.single-sanatorium-page .object-left,
  body.single-sanatorium .object-right,
  body.single-sanatorium-page .object-right{
    min-width:0 !important;
    align-self:stretch !important;
  }

  body.single-sanatorium .object-right,
  body.single-sanatorium-page .object-right{
    display:flex !important;
    flex-direction:column !important;
  }

  body.single-sanatorium .object-meta,
  body.single-sanatorium-page .object-meta{
    height:100% !important;
    min-height:100% !important;
    display:flex !important;
    flex-direction:column !important;
  }
}

/* =========================================
   Home FAQ accordion
========================================= */

.home-faq.vtr-tariff-card.vtr-card-decor {
  margin-top: 18px;
  padding: 20px 24px 20px !important;
}

.home-faq-title {
  margin: 0 0 14px !important;
  padding: 0 !important;

  font-size: 22px;
  line-height: 1.3;
  font-weight: 700;
  color: #0f172a;
}

.home-faq .vtr-faq {
  display: grid;
  gap: 8px;
}

.home-faq .vtr-faq-item {
  padding: 0;
  overflow: hidden;
  border-radius: 16px;
}

.home-faq .vtr-faq-q {
  width: 100%;
  min-height: 50px;
  padding: 13px 20px;

  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;

  border: 0;
  outline: 0;
  background: transparent;
  box-shadow: none;

  color: #0f172a;
  font-family: inherit;
  font-size: 15.5px;
  line-height: 1.35;
  font-weight: 700;
  text-align: left;

  cursor: pointer;
  appearance: none;
  -webkit-appearance: none;
}

.home-faq .vtr-faq-q:hover {
  color: #0f766e;
}

.home-faq .vtr-faq-q:focus-visible {
  outline: 2px solid rgba(20, 184, 166, 0.4);
  outline-offset: -4px;
}

/* Ховаємо старий плюсик */
.home-faq .vtr-faq-icon {
  display: none !important;
}

/* Стрілочка справа */
.home-faq .vtr-faq-q::after {
  content: "";
  flex: 0 0 auto;
  width: 8px;
  height: 8px;
  margin-left: 10px;

  border-right: 2px solid rgba(15, 23, 42, 0.55);
  border-bottom: 2px solid rgba(15, 23, 42, 0.55);

  transform: rotate(45deg);
  transition: transform 0.25s ease;
}

.home-faq .vtr-faq-item.is-open .vtr-faq-q::after {
  transform: rotate(-135deg);
}

.home-faq .vtr-faq-a {
  padding: 0 20px 16px;
  color: #334155;
  font-size: 15px;
  line-height: 1.6;
  border-top: 1px solid rgba(15, 23, 42, 0.08);
}

.home-faq .vtr-faq-a p {
  margin: 12px 0 0;
  color: #334155;
}

.home-faq .vtr-faq-item:not(.is-open) .vtr-faq-a {
  display: none;
}

.home-faq .vtr-faq-item.is-open .vtr-faq-a {
  display: block;
}

@media (max-width: 767px) {
  .home-faq.vtr-tariff-card.vtr-card-decor {
    margin-top: 16px;
    padding: 16px 14px 16px !important;
  }

  .home-faq-title {
    margin: 0 0 12px !important;
    padding: 0 !important;

    font-size: 18px;
    line-height: 1.28;
    font-weight: 700;
    color: #0f172a;
  }

  .home-faq .vtr-faq {
    gap: 8px;
  }

  .home-faq .vtr-faq-item {
    margin-bottom: 0 !important;
    border-radius: 16px;
  }

  .home-faq .vtr-faq-q {
    min-height: 46px;
    padding: 12px 16px;

    font-size: 15px;
    line-height: 1.35;
    font-weight: 700;
  }

  .home-faq .vtr-faq-a {
    padding: 0 16px 14px;
    font-size: 14.5px;
    line-height: 1.55;
  }

  .home-faq .vtr-faq-a p {
    margin: 10px 0 0;
  }
}

.vtr-faq-heading {
  margin: 0;
  padding: 0;
  font: inherit;
}

/* FAQ internal links */
.archive-faq .vtr-faq-a a {
  color: #0f766e;
  font-weight: 700;
  text-decoration: none;
  border-bottom: 1px solid rgba(20, 184, 166, 0.35);
  transition: color 0.2s ease, border-color 0.2s ease;
}

.archive-faq .vtr-faq-a a:hover {
  color: #14b8a6;
  border-bottom-color: rgba(20, 184, 166, 0.75);
}

.archive-faq .vtr-faq-a a:focus-visible {
  outline: 2px solid rgba(20, 184, 166, 0.45);
  outline-offset: 2px;
  border-radius: 4px;
}

/* ===== VTR Cloud Skin v2: global soft cloud style ===== */

.vtr-tariff-card,
.vtr-mini-card,
.vtr-prices .vtr-tariff-card,
.vtr-prices .vtr-mini-card,
.vtr-prices .vtr-tariff-card--accent,
#tab-actions .vtr-tariff-card,
#tab-treat .vtr-tariff-card,
#tab-faq .vtr-tariff-card,
#tab-faq .vtr-faq-item,
.home-faq.vtr-tariff-card.vtr-card-decor,
.home-faq .vtr-faq-item,
.archive-faq.vtr-tariff-card.vtr-card-decor,
.archive-faq .vtr-faq-item,
.archive-seo-box.vtr-tariff-card.vtr-card-decor,
body.single-post .vtr-blog-content .vtr-tariff-card.vtr-card-decor,
body.single-post .vtr-blog-advice.vtr-tariff-card.vtr-card-decor,
body.single-post .vtr-blog-eeat,
body.single-post .vtr-blog-quick,
body.single-post .vtr-blog-object-card,
body.single-post .vtr-blog-faq-item,
body.page .vtr-articles-index .vtr-article-card {
  position: relative !important;
  background: rgba(255, 255, 255, 0.90) !important;

  border: 1px solid rgba(15, 23, 42, 0.06) !important;
  border-top: 0 !important;

  box-shadow:
    inset 0 2px 0 #18c7bd,
    0 12px 28px rgba(15, 23, 42, 0.055) !important;

  overflow: hidden !important;
}

/* Прибираємо старі декоративні лінії/світіння */
.vtr-tariff-card::before,
.vtr-tariff-card::after,
.vtr-mini-card::before,
.vtr-mini-card::after,
.vtr-card-decor::before,
.vtr-card-decor::after,
.vtr-faq-item::before,
.vtr-faq-item::after,
.vtr-prices .vtr-tariff-card::before,
.vtr-prices .vtr-tariff-card::after,
.vtr-prices .vtr-mini-card::before,
.vtr-prices .vtr-mini-card::after,
#tab-actions .vtr-tariff-card::before,
#tab-actions .vtr-tariff-card::after,
#tab-treat .vtr-tariff-card::before,
#tab-treat .vtr-tariff-card::after,
#tab-faq .vtr-card-decor::before,
#tab-faq .vtr-card-decor::after,
.home-faq .vtr-card-decor::before,
.home-faq .vtr-card-decor::after,
.archive-faq .vtr-card-decor::before,
.archive-faq .vtr-card-decor::after,
body.single-post .vtr-blog-content .vtr-tariff-card.vtr-card-decor::before,
body.single-post .vtr-blog-content .vtr-tariff-card.vtr-card-decor::after,
body.single-post .vtr-blog-advice.vtr-card-decor::before,
body.single-post .vtr-blog-advice.vtr-card-decor::after,
body.page .vtr-articles-index .vtr-article-card::before,
body.page .vtr-articles-index .vtr-article-card::after,
body.page .vtr-articles-index .vtr-article-card.card::before,
body.page .vtr-articles-index .vtr-article-card.card::after {
  display: none !important;
  content: none !important;
  background: none !important;
  box-shadow: none !important;
}

/* Hover без стрибання, але з тим самим м’яким об’ємом */
.vtr-tariff-card:hover,
.vtr-tariff-card:focus-within,
.vtr-mini-card:hover,
.vtr-mini-card:focus-within,
.vtr-faq-item:hover,
.vtr-faq-item:focus-within,
body.single-post .vtr-blog-faq-item:hover,
body.single-post .vtr-blog-faq-item:focus-within,
body.page .vtr-articles-index .vtr-article-card:hover,
body.page .vtr-articles-index .vtr-article-card:focus-within,
body.page .vtr-articles-index .vtr-article-card.card:hover,
body.page .vtr-articles-index .vtr-article-card.card:focus-within {
  transform: none !important;
  box-shadow:
    inset 0 2px 0 #18c7bd,
    0 12px 28px rgba(15, 23, 42, 0.055) !important;
}

/* Mobile: трішки м’якші кути */
@media (max-width: 767px) {
  .vtr-tariff-card,
  .vtr-mini-card,
  .vtr-prices .vtr-tariff-card,
  .vtr-prices .vtr-mini-card,
  #tab-actions .vtr-tariff-card,
  #tab-treat .vtr-tariff-card,
  #tab-faq .vtr-tariff-card,
  #tab-faq .vtr-faq-item,
  .home-faq.vtr-tariff-card.vtr-card-decor,
  .home-faq .vtr-faq-item,
  .archive-faq.vtr-tariff-card.vtr-card-decor,
  .archive-faq .vtr-faq-item,
  .archive-seo-box.vtr-tariff-card.vtr-card-decor,
  body.single-post .vtr-blog-content .vtr-tariff-card.vtr-card-decor,
  body.single-post .vtr-blog-advice.vtr-tariff-card.vtr-card-decor,
  body.single-post .vtr-blog-eeat,
  body.single-post .vtr-blog-quick,
  body.single-post .vtr-blog-object-card,
  body.single-post .vtr-blog-faq-item,
  body.page .vtr-articles-index .vtr-article-card {
    border-radius: 22px !important;
  }
}

/* ===== VTR Cloud Skin v2: description tab cards ===== */

#tab-desc .san-card,
#tab-desc .san-seo-block {
  position: relative !important;

  background: rgba(255, 255, 255, 0.90) !important;

  border: 1px solid rgba(15, 23, 42, 0.06) !important;
  border-top: 0 !important;

  box-shadow:
    inset 0 2px 0 #18c7bd,
    0 12px 28px rgba(15, 23, 42, 0.055) !important;

  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;

  overflow: hidden !important;
}

#tab-desc .san-card::before,
#tab-desc .san-card::after,
#tab-desc .san-seo-block::before,
#tab-desc .san-seo-block::after {
  display: none !important;
  content: none !important;
  background: none !important;
  box-shadow: none !important;
}

#tab-desc .san-card:hover,
#tab-desc .san-card:focus-within,
#tab-desc .san-seo-block:hover,
#tab-desc .san-seo-block:focus-within {
  transform: none !important;
  box-shadow:
    inset 0 2px 0 #18c7bd,
    0 12px 28px rgba(15, 23, 42, 0.055) !important;
}

/* ===== VTR Cloud Skin v2: prices top info cloud ===== */

#tab-price .vtr-info-top,
#tab-prices .vtr-info-top {
  position: relative !important;

  background: rgba(255, 255, 255, 0.90) !important;

  border: 1px solid rgba(15, 23, 42, 0.06) !important;
  border-top: 0 !important;

  box-shadow:
    inset 0 2px 0 #18c7bd,
    0 12px 28px rgba(15, 23, 42, 0.055) !important;

  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;

  overflow: hidden !important;
}

#tab-price .vtr-info-top::before,
#tab-price .vtr-info-top::after,
#tab-prices .vtr-info-top::before,
#tab-prices .vtr-info-top::after {
  display: none !important;
  content: none !important;
  background: none !important;
  box-shadow: none !important;
}

#tab-price .vtr-tariffs > article,
#tab-price .vtr-conditions .vtr-tariff-card,
#tab-price .vtr-conditions .vtr-mini-card,
#tab-price .vtr-conditions .vtr-info-card,
#tab-price .vtr-info-grid > *,
#tab-price .vtr-price-notes > *,
#tab-prices .vtr-tariffs > article,
#tab-prices .vtr-conditions .vtr-tariff-card,
#tab-prices .vtr-conditions .vtr-mini-card,
#tab-prices .vtr-conditions .vtr-info-card,
#tab-prices .vtr-info-grid > *,
#tab-prices .vtr-price-notes > * {
  position: relative !important;

  background: rgba(255, 255, 255, 0.90) !important;

  border: 1px solid rgba(15, 23, 42, 0.06) !important;
  border-top: 0 !important;

  box-shadow:
    inset 0 2px 0 #18c7bd,
    0 12px 28px rgba(15, 23, 42, 0.055) !important;

  border-radius: 22px !important;
  overflow: hidden !important;

  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
}

#tab-price .vtr-tariffs > article::before,
#tab-price .vtr-tariffs > article::after,
#tab-price .vtr-conditions .vtr-tariff-card::before,
#tab-price .vtr-conditions .vtr-tariff-card::after,
#tab-price .vtr-conditions .vtr-mini-card::before,
#tab-price .vtr-conditions .vtr-mini-card::after,
#tab-price .vtr-conditions .vtr-info-card::before,
#tab-price .vtr-conditions .vtr-info-card::after,
#tab-price .vtr-info-grid > *::before,
#tab-price .vtr-info-grid > *::after,
#tab-price .vtr-price-notes > *::before,
#tab-price .vtr-price-notes > *::after {
  display: none !important;
  content: none !important;
  background: none !important;
  box-shadow: none !important;
}

/* ===== VTR Cloud Skin v2: clearer text inside clouds ===== */

.vtr-tariff-card,
.vtr-mini-card,
.vtr-card-decor,
.vtr-info-top,
.vtr-info-card,
.vtr-faq-item,
#tab-price .vtr-tariff-card,
#tab-price .vtr-mini-card,
#tab-price .vtr-info-top,
#tab-price .vtr-info-grid > *,
#tab-price .vtr-info-bottom > *,
#tab-prices .vtr-tariff-card,
#tab-prices .vtr-mini-card,
#tab-prices .vtr-info-top,
#tab-prices .vtr-info-grid > *,
#tab-prices .vtr-info-bottom > *,
body.single-post .vtr-blog-content .vtr-tariff-card.vtr-card-decor,
body.single-post .vtr-blog-advice.vtr-tariff-card.vtr-card-decor {
  color: #1f2937 !important;
}

.vtr-tariff-card p,
.vtr-tariff-card li,
.vtr-mini-card p,
.vtr-mini-card li,
.vtr-card-decor p,
.vtr-card-decor li,
.vtr-info-top p,
.vtr-info-top li,
.vtr-info-card p,
.vtr-info-card li,
#tab-price .vtr-tariff-card p,
#tab-price .vtr-tariff-card li,
#tab-price .vtr-mini-card p,
#tab-price .vtr-mini-card li,
#tab-price .vtr-info-grid > * p,
#tab-price .vtr-info-grid > * li,
#tab-prices .vtr-tariff-card p,
#tab-prices .vtr-tariff-card li,
#tab-prices .vtr-mini-card p,
#tab-prices .vtr-mini-card li,
body.single-post .vtr-blog-content .vtr-tariff-card.vtr-card-decor p,
body.single-post .vtr-blog-content .vtr-tariff-card.vtr-card-decor li {
  color: #1f2937 !important;
}

.vtr-tariff-card h2,
.vtr-tariff-card h3,
.vtr-tariff-card h4,
.vtr-mini-card h2,
.vtr-mini-card h3,
.vtr-mini-card h4,
.vtr-card-decor h2,
.vtr-card-decor h3,
.vtr-card-decor h4,
.vtr-info-top h2,
.vtr-info-top h3,
.vtr-info-top h4,
.vtr-info-card h2,
.vtr-info-card h3,
.vtr-info-card h4,
#tab-price .vtr-tariff-card h2,
#tab-price .vtr-tariff-card h3,
#tab-price .vtr-tariff-card h4,
#tab-prices .vtr-tariff-card h2,
#tab-prices .vtr-tariff-card h3,
#tab-prices .vtr-tariff-card h4 {
  color: #0f172a !important;
}

.vtr-tariff-card strong,
.vtr-mini-card strong,
.vtr-card-decor strong,
.vtr-info-top strong,
.vtr-info-card strong,
#tab-price strong,
#tab-prices strong {
  color: #0f172a !important;
  font-weight: 800;
}

#booking {
  scroll-margin-top: 90px;
}

@media (max-width: 767px) {
  #booking {
    scroll-margin-top: 82px;
  }
}


@media (min-width: 768px) and (max-width: 1023px) {
  body.single-post .vtr-blog-object-card {
    grid-template-columns: 1fr !important;
    gap: 18px !important;
    padding: 20px 18px !important;
  }

  body.single-post .vtr-blog-object-media {
    order: -1 !important;
    width: 100% !important;
    height: auto !important;
    min-height: 0 !important;
    aspect-ratio: 16 / 9 !important;
    border-radius: 20px !important;
  }

  body.single-post .vtr-blog-object-media a {
    display: block !important;
    width: 100% !important;
    height: 100% !important;
  }

  body.single-post .vtr-blog-object-media img {
    display: block !important;
    width: 100% !important;
    height: 100% !important;
    min-height: 0 !important;
    object-fit: cover !important;
    object-position: center center !important;
  }

  body.single-post .vtr-blog-object-text {
    min-width: 0 !important;
  }

  body.single-post .vtr-blog-object-text h3 {
    font-size: 21px !important;
    line-height: 1.28 !important;
  }
}

body:not(.home) .sidebar-section.sidebar-open {
  background: rgba(255, 255, 255, 0.82) !important;
}

body:not(.home) .sidebar-section.sidebar-open .sidebar-list {
  background: transparent !important;
}

/* Home mobile accordion: match inner sidebar milky opened state */
@media (max-width: 767px) {
  body.home .home-mobile-layout .hm-accordion.is-open {
    background: rgba(255, 255, 255, 0.82) !important;
  }

  body.home .home-mobile-layout .hm-accordion.is-open .hm-acc-body,
  body.home .home-mobile-layout .hm-accordion.is-open .hm-acc-list,
  body.home .home-mobile-layout .hm-accordion.is-open .hm-acc-item,
  body.home .home-mobile-layout .hm-accordion.is-open .hm-acc-item a {
    background: transparent !important;
  }
}

/* Tablet reading pages: sidebar above article content only */
@media (min-width: 768px) and (max-width: 1023px) {
  body.single-post .vtr-blog-layout {
    display: flex !important;
    flex-direction: column !important;
    gap: 24px;
    align-items: stretch !important;
  }

  body.single-post .vtr-blog-layout .sidebar {
    order: 1;
    width: 100% !important;
    max-width: none !important;
    flex: 0 0 auto !important;
    position: static !important;
  }

  body.single-post .vtr-blog-layout .content-main {
    order: 2;
    width: 100% !important;
    max-width: none !important;
    flex: 1 1 auto !important;
  }

  body.single-post .vtr-blog-layout .vtr-blog-main,
  body.single-post .vtr-blog-layout .vtr-page,
  body.single-post .vtr-blog-layout .vtr-blog-post {
    width: 100% !important;
    max-width: none !important;
  }

  body.single-post .vtr-blog-layout .sidebar-section {
    width: 100%;
  }

  body.single-post .vtr-blog-layout .sidebar-toggle {
    width: 100%;
    white-space: normal;
    text-align: left;
  }

  body.single-post .vtr-blog-layout .sidebar-list {
    width: 100%;
  }
}

/* Tablet reading pages: keep top sidebar compact */
@media (min-width: 768px) and (max-width: 1023px) {
  body.single-post .vtr-blog-layout .sidebar {
    width: 370px !important;
    max-width: 370px !important;
    align-self: flex-start !important;
  }

  body.single-post .vtr-blog-layout .sidebar-section {
    width: 100%;
  }

  body.single-post .vtr-blog-layout .sidebar-toggle,
  body.single-post .vtr-blog-layout .sidebar-list {
    width: 100%;
  }

  body.single-post .vtr-blog-layout .content-main {
    width: 100% !important;
    max-width: none !important;
  }
}

/* Tablet articles page: compact cards like actions */
@media (min-width: 768px) and (max-width: 1023px) {
  body.page .vtr-page.vtr-page--articles .vtr-articles-index__grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 24px;
    align-items: stretch;
  }

  body.page .vtr-page.vtr-page--articles .vtr-article-card {
    width: 100%;
    max-width: none;
  }

  body.page .vtr-page.vtr-page--articles .vtr-article-card__link {
    display: flex;
    flex-direction: column;
    height: 100%;
  }

  body.page .vtr-page.vtr-page--articles .vtr-article-card__media {
    height: 175px;
    margin: 0 0 18px;
    border-radius: 18px;
    overflow: hidden;
  }

  body.page .vtr-page.vtr-page--articles .vtr-article-card__media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    border-radius: inherit;
  }

  body.page .vtr-page.vtr-page--articles .vtr-article-card__title {
    font-size: 21px;
    line-height: 1.22;
    margin-bottom: 10px;
  }

  body.page .vtr-page.vtr-page--articles .vtr-article-card__excerpt {
    font-size: 15px;
    line-height: 1.55;
    margin-bottom: 18px;
  }

  body.page .vtr-page.vtr-page--articles .vtr-article-card__more {
    margin-top: auto;
    align-self: flex-start;
  }
}

@media (hover: none) and (pointer: coarse), (max-width: 1024px) {
  *,
  *::before,
  *::after {
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
  }

  html, body {
    backface-visibility: hidden;
    -webkit-backface-visibility: hidden;
  }
}

