/*----------------------------------------- 3440+ MD+TD -----------------------------------------*/
@media screen and (min-width: 3440px){

  :root{
    --mq3440-container-max: 3200px;
    --mq3440-container-pad: 120px;
    --mq3440-free-right-gap: 16px; /* как в исходнике: -16px */
      
    --pages-eq-cap: clamp(2140px, 90vh, 2300px);
    --pages-eq-cap: clamp(2140px, 90dvh, 2300px);
  }

  /* ===================== ОСНОВНЫЕ КОНТЕЙНЕРЫ ===================== */
  .container1p,
  .container2p,
  .container3p,
  .container4p{
    max-width: var(--mq3440-container-max);
    margin-left: auto;
    margin-right: auto;
    padding-left: var(--mq3440-container-pad);
    padding-right: var(--mq3440-container-pad);
  }

  /* ===================== PAGE 1 — WELCOME ===================== */
  .main{
    background-image: url(background/main1-3440.webp);
    background-size: cover;
    background-position: right bottom;
    background-repeat: no-repeat;
    background-attachment: scroll;

    min-height: var(--page-min-h);
    min-height: var(--page-min-h-dyn);
      
    height: auto;
    overflow: visible;
      
    position: relative; /* якорь для .right-side-main */
  }

  .main .topic1p-top{
    gap: 24px;
    padding: 100px 0; /* как в responsive 1024 ready.css (3440+) */
    align-items: center;
    flex-wrap: nowrap;
    justify-content: flex-start;
  }

    .main .top-text-title{
      font-size: clamp(30px, 1.03vw, 39px);
      padding-left: 0;
      margin-left: auto;
      padding-top: 0;
    }

  .main .top-text-title span{
    font-size: clamp(23px, 0.86vw, 30px);
  }

  .main .header-logo{
    transform: scale(1.5);
    transform-origin: left center;
  }

  /* иконки контактов — base без hover */
    .main .top-whatsapp,
    .main .top-viber,
    .main .top-telegram,
    .main .top-phone,
    .main .top-email{
      margin-top: 14px;
      width: 160px;
      height: auto;
      margin-right: 0;

      border: 3px solid transparent;
      border-radius: 10px;
      padding: 8px;
      display: inline-flex;

      transition: background-color .25s ease, border-color .25s ease, transform .15s ease;
      align-self: center;
    }

  .main .top-whatsapp a,
  .main .top-viber a,
  .main .top-telegram a,
  .main .top-phone a,
  .main .top-email a{
    display: block;
    width: 100%;
    transform-origin: center;
    will-change: transform;
  }

  .main .top-whatsapp a:active,
  .main .top-viber a:active,
  .main .top-telegram a:active,
  .main .top-phone a:active,
  .main .top-email a:active{
    transform: scale(0.98);
  }

  .main .top-whatsapp img,
  .main .top-viber img,
  .main .top-telegram img,
  .main .top-phone img,
  .main .top-email img{
    width: 100%;
    height: auto;
    max-width: none; /* разрешаем upscale */
  }

  .main .topic1p-middle{
    min-height: 0;
    flex-direction: column;
    justify-content: space-between;
  }

  .main .left-side-main{
    flex: 1;
    flex-direction: column;
    justify-content: flex-start;
    padding-top: clamp(110px, 9vh, 190px);
  }

  /* PAGE 1: текст +15% (как в исходнике 3440+) */
  .main .main-left-one{
    font-size: clamp(106px, 3.1vw, 152px);
    line-height: 1.08;
  }

  .main .main-left-two{
    font-size: clamp(39px, 1.45vw, 60px);
    line-height: 1.25;
    max-width: 56ch;
  }

  /* правый нижний блок */
  .main .right-side-main{
    position: absolute;

    /* правый отступ "внутри контентной колонки" */
    --free-right: calc(
      (100vw - var(--mq3440-container-max)) / 2
      + var(--mq3440-container-pad)
      - var(--mq3440-free-right-gap)
    );

    /* для 3440+ привязываем ближе к краю контента:
       убираем влияние container-pad, иначе блок уезжает слишком влево */
    right: calc(var(--free-right) - var(--mq3440-container-pad) - 124px);
    transform: none;

    bottom: clamp(32px, 3vh, 56px);
    width: clamp(1100px, 38vw, 1500px);

    --padX: clamp(32px, 1.4vw, 72px);
    --padShift: clamp(22px, 0.95vw, 54px);

    padding-top: 0;
    padding-right: calc(var(--padX) - var(--padShift));
    padding-bottom: clamp(8px, 1.5vh, 16px);
    padding-left: calc(var(--padX) + var(--padShift));

    text-align: left;
    box-sizing: border-box;
  }

    .main .bottom-half-wrapper{
      display: flex;
      justify-content: flex-end;
      align-items: flex-end;
      padding: 0 12px 10px;
    }

    .main .main-title-2{
      width: fit-content;
      max-width: 100%;
      margin-left: auto;

      /* привязка к контентной сетке 2960, без лишнего оффсета */
    margin-right: clamp(60px, calc((100vw - 2960px) / 2), 320px);

      text-align: left;
      margin-top: 0;
      transform: none;
    }

  /* PAGE 1: правый текст +15% (без !important, но с более спец. селектором) */
  .main .right-side-main .main-right-one,
  .main .right-side-main .main-right-two{
    padding-left: 0;
    text-align: left;
    margin: 0 0 18px 0;
    width: 100%;
    max-width: none;

    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    overflow-wrap: normal;
    hyphens: manual;

    font-size: clamp(41px, 1.15vw, 55px);
    font-weight: 600;
    line-height: 1.28;
    letter-spacing: -0.35px;
  }

  .main .right-side-main .main-right-two{
    font-size: clamp(38px, 1.03vw, 48px);
  }

  /* ===================== PAGE 2 — ROOMS & PHOTOS ===================== */
  .hotel{
    background-image: url(background/main2-3440.webp);
    background-size: cover;
    background-position: right bottom;
    background-repeat: no-repeat;
    background-attachment: scroll;

    min-height: var(--page-min-h);
    min-height: var(--page-min-h-dyn);
      
    height: auto;
    overflow: visible;
  }

  .hotel .topic2p-title-top{
    font-size: clamp(74px, 3.68vw, 126px);
  }

  .hotel .slideshow-container{
    max-width: 2200px;
    aspect-ratio: 16 / 9;
    height: auto;
    margin: 0 auto;
    border-radius: 12px;
    overflow: hidden;
  }

  .hotel .mySlides{
    height: 100% !important;
  }

  /* PAGE 2: текст +15% */
  .hotel .details2p p{
    font-size: clamp(37px, 1.2vw, 44px);
    line-height: 1.7;
  }

  .hotel .details2p{
    font-size: clamp(32px, 1.03vw, 39px);
    line-height: 1.65;
  }

  .hotel .details2p h3{
    font-size: clamp(46px, 1.27vw, 58px);
    margin-top: 24px;
    margin-bottom: 14px;
  }

  .hotel .topic2p-suptitle,
  .hotel .topic2p-suptitle li{
    font-size: clamp(32px, 1.03vw, 39px);
  }

  /* ===================== PAGE 3 — LOCATION ===================== */
  .location{
    background-image: url(background/main3-3440.webp);
    background-size: cover;
    background-position: right bottom;
    background-repeat: no-repeat;
    background-attachment: scroll;

    min-height: var(--page-min-h);
    min-height: var(--page-min-h-dyn);
      
    height: auto;
    overflow: visible;
  }

  /* PAGE 3: текст +15% */
  .location .details3p p{
    font-size: clamp(37px, 1.2vw, 44px);
    line-height: 1.7;
  }

  .location .details3p{
    font-size: clamp(32px, 1.03vw, 39px);
    line-height: 1.65;
  }

  .location .details3p h3{
    font-size: clamp(46px, 1.27vw, 58px);
    margin-top: 24px;
    margin-bottom: 14px;
  }

  .location .details3p ul li{
    font-size: clamp(32px, 1.03vw, 39px);
    margin-bottom: 10px;
    padding-left: 22px;
  }

  .location .map iframe{
    height: clamp(820px, 65vh, 1100px);
    max-height: 1200px;
    border-radius: 12px;
  }

  /* ===================== PAGE 4 — CONTACTS ===================== */
  .contacts{
    background-image: url(background/main4-3440.webp);
    background-size: cover;
    background-position: right bottom;
    background-repeat: no-repeat;
    background-attachment: scroll;

    min-height: var(--page-min-h);
    min-height: var(--page-min-h-dyn);
      
    height: auto;
    overflow: visible;
  }

  .contacts .content4p{
    max-width: 2200px;
    padding: 110px 140px;
    gap: 110px;
  }

  /* ===================== FORM SCALE (safe) — как в исходнике 3440+ ===================== */

  .contacts .right-side-contacts .topic-text{
    font-size: 50px;
    margin-bottom: 26px;
  }

  .contacts .right-side-contacts > p{
    font-size: 26px;
    margin-bottom: 34px;
    line-height: 1.6;
  }

  .contacts .form > .input-box,
  .contacts .form > .guests-group,
  .contacts .form > .phone-group,
  .contacts .form > .button{
    margin-bottom: 48px;
  }

  .contacts .form > .button{
    margin-bottom: 0;
  }

  .contacts .form .input-box input,
  .contacts .form .input-box textarea,
  .contacts .form .input-box #country_search,
  .contacts .form .input-box select{
    width: 100%;
    padding: 24px 26px;
    border-radius: 13px;
    font-size: 26px;
  }

  .contacts .form .input-box label{
    top: 24px;
    left: 26px;
    font-size: 26px;
  }

  .contacts .form .input-box input:focus + label,
  .contacts .form .input-box input:not(:placeholder-shown) + label,
  .contacts .form .input-box textarea:focus + label,
  .contacts .form .input-box textarea:not(:placeholder-shown) + label,
  .contacts .form .input-box #country_search:focus + label,
  .contacts .form .input-box #country_search:not(:placeholder-shown) + label,
  .contacts .form .input-box select:focus + label,
  .contacts .form .input-box select:valid + label,
  .contacts .form .input-box #adults:invalid + label,
  .contacts .form .input-box :where(#user_name, #user_email, #country_search, #user_phone, #user_message) + label,
  .contacts .form .input-box input[type="date"]:focus + label,
  .contacts .form .input-box input[type="date"]:valid + label{
    top: -17px;
    left: 20px;
    font-size: 20px;
    padding: 0 10px;
  }

  .contacts .guests-group{
    gap: 25px;
  }

  .contacts .phone-group{
    gap: 17px;
  }

  .contacts .form .message-box textarea{
    min-height: 220px;
  }

  .contacts .button button{
    font-size: 24px;
    padding: 22px 54px;
  }

  .contacts .button button::after{
    font-size: 26px;
  }

  .contacts .error-message{
    font-size: 16px;
  }

  /* левая колонка контактов — крупнее */
  .contacts .left-side-contacts .topic4p{
    font-size: 34px;
    margin-bottom: 14px;
  }

  .contacts .left-side-contacts .text-one-4p,
  .contacts .left-side-contacts .text-two-4p{
    font-size: 26px;
    line-height: 1.6;
  }

  .contacts .left-side-contacts a{
    font-size: inherit;
  }

  .contacts .left-side-contacts .details4p{
    margin-bottom: 54px;
  }

  /* даты + Adults/Children — компактнее */
  .contacts #check_in,
  .contacts #check_out,
  .contacts #adults,
  .contacts #children{
    padding: 18px 20px;
    font-size: 22px;
    border-radius: 11px;
  }

  .contacts #check_in + label,
  .contacts #check_out + label,
  .contacts #adults + label,
  .contacts #children + label{
    top: 18px;
    left: 20px;
    font-size: 22px;
  }

  .contacts #check_in:focus + label,
  .contacts #check_in:valid + label,
  .contacts #check_out:focus + label,
  .contacts #check_out:valid + label,
  .contacts #adults:focus + label,
  .contacts #adults:invalid + label,
  .contacts #adults:valid + label,
  .contacts #children:focus + label,
  .contacts #children:valid + label{
    top: -14px;
    left: 16px;
    font-size: 17px;
    padding: 0 8px;
  }

  /* ===================== LIGHTBOX (3440+) ===================== */
  .lightbox{
    --lb-gutter: clamp(140px, 6vw, 280px);
    --lb-max-width: none;
    --lb-media-vh: 92vh;
    --lb-ui-reserve: 180px;
    --lb-arrow-offset: 20px;
    --lb-arrow-size: 72px;
  }

  .lightbox .progress--lightbox{
    max-width: none;
  }
    
  /* ===================== CAPTIONS — SLIDERBOX ===================== */
  .hotel .slide-caption{
    font-size: clamp(28px, 0.783vw, 36px);
  }

  /* ===================== CAPTIONS — LIGHTBOX ===================== */
  .lightbox .lightbox-caption{
    font-size: clamp(40px, 1.3vw, 58px);
  }
    
}

/*-------------------------------------- 3440+ DESKTOP ONLY -----------------------------------------*/
@media screen and (min-width: 3440px) and (hover: hover) and (pointer: fine){

  /* контейнеры чуть “богаче” по полям на десктопе */
  .container1p,
  .container2p,
  .container3p,
  .container4p{
    padding-left: 140px;
    padding-right: 140px;
  }

  /* фиксированные фоны только для desktop-only */
  .main,
  .hotel,
  .location,
  .contacts{
    background-attachment: fixed;
  }

  /* hover-эффект иконок только для desktop-only */
  .main .top-whatsapp:hover,
  .main .top-viber:hover,
  .main .top-telegram:hover,
  .main .top-phone:hover,
  .main .top-email:hover{
    border-color: whitesmoke;
    transform: translateY(-1px);
  }
}

/*----------------------------------------- 2560-3439 MD+TD -----------------------------------------*/
@media screen and (min-width: 2560px) and (max-width: 3439.98px){

  :root{
    --mq2560-container-max: 2400px;
    --mq2560-container-pad: 100px;
    --mq2560-free-right-gap: 8px;
      
    --pages-eq-cap: clamp(1690px, 90vh, 1900px);
    --pages-eq-cap: clamp(1690px, 90dvh, 1900px);
  }

  /* ===================== ОСНОВНЫЕ КОНТЕЙНЕРЫ ===================== */
  .container1p,
  .container2p,
  .container3p,
  .container4p{
    max-width: var(--mq2560-container-max);
    margin-left: auto;
    margin-right: auto;
    padding-left: var(--mq2560-container-pad);
    padding-right: var(--mq2560-container-pad);
  }

  /* ===================== PAGE 1 — WELCOME ===================== */
  .main{
    background-image: url(background/main1-2560.webp);
    background-size: cover;
    background-position: right bottom;
    background-repeat: no-repeat;
    background-attachment: scroll;

    min-height: var(--page-min-h);
    min-height: var(--page-min-h-dyn);
      
    height: auto;
    overflow: visible;
      
    position: relative; /* якорь для .right-side-main */
  }

  .main .topic1p-top{
    gap: 20px;
    padding: 30px 0;
    align-items: center;
    flex-wrap: nowrap;
    justify-content: flex-start;
  }

  /* иконки контактов — размеры (base без hover) */
  .main .top-whatsapp,
  .main .top-viber,
  .main .top-telegram,
  .main .top-phone,
  .main .top-email{
    margin-top: 12px;
    width: 120px;
    height: auto;
    margin-right: 0;

    border: 3px solid transparent;
    border-radius: 10px;
    padding: 7px;
    display: inline-flex;

    transition: background-color .25s ease, border-color .25s ease, transform .15s ease;
    align-self: center;
  }

  /* tap feedback */
  .main .top-whatsapp a,
  .main .top-viber a,
  .main .top-telegram a,
  .main .top-phone a,
  .main .top-email a{
    display: block;
    width: 100%;
    transform-origin: center;
    will-change: transform;
  }

  .main .top-whatsapp a:active,
  .main .top-viber a:active,
  .main .top-telegram a:active,
  .main .top-phone a:active,
  .main .top-email a:active{
    transform: scale(0.98);
  }

  .main .top-whatsapp img,
  .main .top-viber img,
  .main .top-telegram img,
  .main .top-phone img,
  .main .top-email img{
    width: 100%;
    height: auto;
    max-width: none;
  }

  /* “Direct connection” */
  .main .top-text-title{
    font-size: clamp(24px, 1.1vw, 30px);
    margin-left: auto; /* уводит top-text-title + все следующие иконки вправо */
  }

  .main .top-text-title span{
    font-size: clamp(18px, 0.9vw, 24px);
  }

  .main .topic1p-middle{
    min-height: 0;
    flex-direction: column;
    justify-content: space-between;
  }

  /* левый блок */
  .main .left-side-main{
    flex: 1;
    flex-direction: column;
    justify-content: flex-start;
    padding-top: clamp(90px, 9vh, 160px);
  }

  /* правый нижний блок */
    .main .right-side-main{
    position: absolute;

    --free-right: calc(
      (100vw - var(--mq2560-container-max)) / 2
      + var(--mq2560-container-pad)
      - var(--mq2560-free-right-gap)
    );

    /* поправка: сильнее на 2560, слабее к 3439 */
    --right-nudge: clamp(40px, calc(340px - 10vw), 120px);

    right: calc(var(--free-right) - var(--right-nudge));
    transform: none;

    bottom: clamp(32px, 3vh, 56px);
    width: clamp(1200px, 50vw, 1500px);

    --padX: clamp(28px, 2vw, 64px);
    --padShift: clamp(16px, 1.2vw, 44px);

    padding-top: 0;
    padding-right: calc(var(--padX) - var(--padShift));
    padding-bottom: clamp(8px, 1.5vh, 16px);
    padding-left: calc(var(--padX) + var(--padShift));

    text-align: left;
    box-sizing: border-box;
  }

  .main .bottom-half-wrapper{
    justify-content: flex-start;
    align-items: flex-end;
    padding: 0;
  }

    .main .main-title-2{
      width: fit-content;
      max-width: 100%;
      margin-left: auto;

      /* 2560 → 110px, 3439 → 160px */
    margin-right: clamp(
      60px,
      calc(110px - (50 * (100vw - 2560px) / 879)),
      110px
    );

      text-align: left;
      transform: none;
    }

  .main .right-side-main .main-right-one,
  .main .right-side-main .main-right-two{
    padding-left: 0;
    text-align: left;
    margin: 0 0 16px 0;
    width: 100%;
    max-width: none;

    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    overflow-wrap: normal;

    font-weight: 600;
    line-height: 1.28;
    letter-spacing: -0.35px;

    font-size: clamp(31px, 1.25vw, 41px);
  }

  .main .right-side-main .main-right-two{
    font-size: clamp(29px, 1.12vw, 36px);
  }

  /* ====== PAGE 1: +20% к тексту (Welcome → нижний блок) ====== */
  .main .main-left-one{
    font-size: clamp(77px, 3.4vw, 110px);
    line-height: 1.08;
  }

  .main .main-left-two{
    font-size: clamp(29px, 1.62vw, 43px);
    line-height: 1.25;
    max-width: 56ch;
  }

  /* ===================== PAGE 2 — ROOMS & PHOTOS ===================== */
  .hotel{
    background-image: url(background/main2-2560.webp);
    background-size: cover;
    background-position: right bottom;
    background-repeat: no-repeat;
    background-attachment: scroll;

    min-height: var(--page-min-h);
    min-height: var(--page-min-h-dyn);
      
    height: auto;
    overflow: visible;
  }

  .hotel .topic2p-title-top{
    font-size: clamp(56px, 3.6vw, 92px);
  }

  .hotel .topic2p-middle{
    align-items: flex-start;
  }

  .hotel .right-side-photo{
    margin-top: 0;
    padding-top: 0;
  }

  /* Слайдер: 16:9 */
  .hotel .slideshow-container{
    max-width: 1800px;
    aspect-ratio: 16 / 9;
    height: auto;
    margin: 0 auto;
    border-radius: 12px;
    overflow: hidden;
  }

  .hotel .mySlides{
    height: 100% !important;
  }

  /* ====== УВЕЛИЧЕНИЕ ТЕКСТА: PAGE 2 ====== */
  .hotel .details2p p{
    font-size: clamp(28px, 1.2vw, 33px);
    line-height: 1.7;
  }

  .hotel .details2p{
    font-size: clamp(24px, 1.03vw, 29px);
    line-height: 1.65;
  }

  .hotel .details2p h3{
    font-size: clamp(34px, 1.28vw, 41px);
    margin-top: 22px;
    margin-bottom: 14px;
  }

  .hotel .topic2p-suptitle{
    font-size: clamp(24px, 1.03vw, 29px);
  }

  .hotel .topic2p-suptitle li{
    font-size: clamp(24px, 1.03vw, 29px);
    margin-bottom: 9px;
    padding-left: 22px;
  }

  /* ===================== PAGE 3 — LOCATION ===================== */
  .location{
    background-image: url(background/main3-2560.webp);
    background-size: cover;
    background-position: right bottom;
    background-repeat: no-repeat;
    background-attachment: scroll;

    min-height: var(--page-min-h);
    min-height: var(--page-min-h-dyn);
      
    height: auto;
    overflow: visible;
  }

  /* ====== УВЕЛИЧЕНИЕ ТЕКСТА: PAGE 3 ====== */
  .location .details3p p{
    font-size: clamp(28px, 1.2vw, 33px);
    line-height: 1.7;
  }

  .location .details3p{
    font-size: clamp(24px, 1.03vw, 29px);
    line-height: 1.65;
  }

  .location .details3p h3{
    font-size: clamp(34px, 1.28vw, 41px);
    margin-top: 22px;
    margin-bottom: 14px;
  }

  .location .details3p ul li{
    font-size: clamp(24px, 1.03vw, 29px);
    margin-bottom: 9px;
    padding-left: 22px;
  }

  .location .map iframe{
    height: clamp(720px, 65vh, 950px);
    max-height: 1050px;
    border-radius: 12px;
  }

  /* ===================== PAGE 4 — CONTACTS ===================== */
  .contacts{
    background-image: url(background/main4-2560.webp);
    background-size: cover;
    background-position: right bottom;
    background-repeat: no-repeat;
    background-attachment: scroll;

    min-height: var(--page-min-h);
    min-height: var(--page-min-h-dyn);
      
    height: auto;
    overflow: visible;
  }

  .contacts .content4p{
    max-width: 1900px;
    padding: 90px 120px;
    gap: 90px;
  }

  /* ===================== LIGHTBOX (2560–3439) ===================== */
  .lightbox{
    --lb-gutter: clamp(110px, 6vw, 220px);
    --lb-max-width: none;
    --lb-media-vh: 90vh;
    --lb-ui-reserve: 170px;
    --lb-arrow-offset: 18px;
    --lb-arrow-size: 64px;
  }

  .lightbox .progress--lightbox{
    max-width: none;
  }
    
    
    /* ===================== CAPTIONS — SLIDERBOX ===================== */
    .hotel .slide-caption{
      font-size: clamp(clamp(28px, 0.783vw, 36px));
    }

    /* ===================== CAPTIONS — LIGHTBOX ===================== */
    .lightbox .lightbox-caption{
      font-size: clamp(32px, 1.3vw, 40px);
    }
}

/*----------------------------------------- 2560-3439 DESKTOP ONLY -----------------------------------------*/
@media screen and (min-width: 2560px) and (max-width: 3439.98px) and (hover: hover) and (pointer: fine){

  /* контейнеры чуть “богаче” по полям на десктопе */
  .container1p,
  .container2p,
  .container3p,
  .container4p{
    padding-left: 110px;
    padding-right: 110px;
  }

  /* фиксированные фоны только для desktop-only */
  .main,
  .hotel,
  .location,
  .contacts{
    background-attachment: fixed;
  }

  /* hover-эффект иконок только для desktop-only */
  .main .top-whatsapp:hover,
  .main .top-viber:hover,
  .main .top-telegram:hover,
  .main .top-phone:hover,
  .main .top-email:hover{
    border-color: whitesmoke;
    transform: translateY(-1px);
  }
}

/*---------------------------------------- 1920-2559 MD+TD -----------------------------------------*/
@media screen and (min-width: 1920px) and (max-width: 2559.98px){

  :root{
    --mq1920-container-max: 1900px;
    --mq1920-container-pad: 80px;
    --mq1920-free-right-gap: 8px;
      
    --pages-eq-cap: clamp(1400px, 90vh, 1600px);
    --pages-eq-cap: clamp(1400px, 90dvh, 1600px);
  }

  /* ===================== ОСНОВНЫЕ КОНТЕЙНЕРЫ ===================== */
  .container1p,
  .container2p,
  .container3p,
  .container4p{
    max-width: var(--mq1920-container-max);
    margin-left: auto;
    margin-right: auto;
    padding-left: var(--mq1920-container-pad);
    padding-right: var(--mq1920-container-pad);
  }

  /* ===================== PAGE 1 — WELCOME ===================== */
  .main{
    background-image: url(background/main1-1920.webp);
    background-size: cover;
    background-position: right bottom;
    background-repeat: no-repeat;
    background-attachment: scroll;

    min-height: var(--page-min-h);
    min-height: var(--page-min-h-dyn);
      
    height: auto;
    overflow: visible;
      
    position: relative; /* якорь для .right-side-main */
  }

  .main .topic1p-top{
    gap: 18px;
    padding: 26px 0;
    align-items: center;
    flex-wrap: nowrap;
    justify-content: flex-start;
  }

  /* иконки контактов — размеры (base без hover) */
  .main .top-whatsapp,
  .main .top-viber,
  .main .top-telegram,
  .main .top-phone,
  .main .top-email{
    margin-top: 10px;
    width: 100px;
    height: auto;
    margin-right: 0;

    border: 3px solid transparent;
    border-radius: 10px;
    padding: 6px;
    display: inline-flex;

    transition: background-color .25s ease, border-color .25s ease, transform .15s ease;
    align-self: center;
  }

  /* tap feedback */
  .main .top-whatsapp a,
  .main .top-viber a,
  .main .top-telegram a,
  .main .top-phone a,
  .main .top-email a{
    display: block;
    width: 100%;
    transform-origin: center;
    will-change: transform;
  }

  .main .top-whatsapp a:active,
  .main .top-viber a:active,
  .main .top-telegram a:active,
  .main .top-phone a:active,
  .main .top-email a:active{
    transform: scale(0.98);
  }

  .main .top-whatsapp img,
  .main .top-viber img,
  .main .top-telegram img,
  .main .top-phone img,
  .main .top-email img{
    width: 100%;
    height: auto;
    max-width: none;
  }

  .main .top-text-title{
    font-size: clamp(22px, 1.3vw, 28px);
    margin-left: auto; /* уводит top-text-title + все следующие иконки вправо */
  }

  .main .top-text-title span{
    font-size: clamp(16px, 1vw, 22px);
  }

  .main .topic1p-middle{
    min-height: 0;
    flex-direction: column;
    justify-content: space-between;
  }

  .main .left-side-main{
    flex: 1;
    flex-direction: column;
    justify-content: flex-start;
    padding-top: clamp(80px, 9vh, 140px);
  }

  .main .main-left-one{
    font-size: clamp(56px, 3.2vw, 78px);
    line-height: 1.08;
  }

  .main .main-left-two{
    font-size: clamp(22px, 1.6vw, 34px);
    line-height: 1.25;
    max-width: 52ch;
  }

.main .right-side-main{
    position: absolute;

    --free-right: calc(
      (100vw - var(--mq1920-container-max)) / 2
      + var(--mq1920-container-pad)
      - var(--mq1920-free-right-gap)
    );

    right: calc(var(--free-right) - 90px);
    transform: none;

    bottom: clamp(32px, 3vh, 56px);
    width: clamp(960px, 52vw, 1200px);

    --padX: clamp(24px, 2vw, 56px);
    --padShift: clamp(14px, 1.2vw, 36px);

    padding-top: 0;
    padding-right: calc(var(--padX) - var(--padShift));
    padding-bottom: clamp(8px, 1.5vh, 16px);
    padding-left: calc(var(--padX) + var(--padShift));

    text-align: left;
    box-sizing: border-box;
  }

  .main .bottom-half-wrapper{
    justify-content: flex-start;
    align-items: flex-end;
    padding: 0;
  }

    .main .main-title-2{
      width: fit-content;
      max-width: 100%;
      margin-left: auto;

      /* TEST: 1920 → 60px, 2559 → 140px */
      margin-right: clamp(
        60px,
        calc(60px + (80 * (100vw - 1920px) / 639)),
        140px
      );

      text-align: left;
      transform: none;
    }

  .main .right-side-main .main-right-one,
  .main .right-side-main .main-right-two{
    padding-left: 0;
    text-align: left;
    margin: 0 0 16px 0;
    width: 100%;
    max-width: 100%;

    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    overflow-wrap: normal;
    hyphens: manual;

    font-size: clamp(24px, 1.3vw, 32px);
    font-weight: 600;
    line-height: 1.28;
    letter-spacing: -0.35px;
  }

  .main .right-side-main .main-right-two{
    font-size: clamp(22px, 1.15vw, 28px);
  }

  /* ===================== PAGE 2 — ROOMS & PHOTOS ===================== */
  .hotel{
    background-image: url(background/main2-1920.webp);
    background-size: cover;
    background-position: right bottom;
    background-repeat: no-repeat;
    background-attachment: scroll;

    min-height: var(--page-min-h);
    min-height: var(--page-min-h-dyn);
      
    height: auto;
    overflow: visible;
  }

  .hotel .topic2p-title-top{
    font-size: clamp(50px, 4.5vw, 80px);
  }

  .hotel .topic2p-middle{
    align-items: flex-start;
  }

  .hotel .right-side-photo{
    margin-top: 0;
    padding-top: 0;
  }

  /* Слайдер: 16:9 */
  .hotel .slideshow-container{
    max-width: 1400px;
    aspect-ratio: 16 / 9;
    height: auto;

    margin: 0 auto 40px;
    border-radius: 12px;
    overflow: hidden;
  }

  /* перебиваем базовую высоту 500px у .mySlides из style.css */
  .hotel .mySlides{
    height: 100% !important;
  }

  .hotel .details2p p{
    font-size: clamp(23px, 1.2vw, 30px);
    line-height: 1.7;
  }

  /* ===================== PAGE 3 — LOCATION ===================== */
  .location{
    background-image: url(background/main3-1920.webp);
    background-size: cover;
    background-position: right bottom;
    background-repeat: no-repeat;
    background-attachment: scroll;

    min-height: var(--page-min-h);
    min-height: var(--page-min-h-dyn);
      
    height: auto;
    overflow: visible;
  }

  .location .details3p p{
    font-size: clamp(23px, 1.2vw, 30px);
    line-height: 1.7;
  }

  .location .map iframe{
    height: clamp(600px, 65vh, 800px);
    max-height: 900px;
    border-radius: 12px;
  }

  /* ===================== PAGE 4 — CONTACTS ===================== */
  .contacts{
    background-image: url(background/main4-1920.webp);
    background-size: cover;
    background-position: right bottom;
    background-repeat: no-repeat;
    background-attachment: scroll;

    min-height: var(--page-min-h);
    min-height: var(--page-min-h-dyn);
      
    height: auto;
    overflow: visible;
  }

  .contacts .content4p{
    max-width: 1600px;
    padding: 80px 100px;
    gap: 80px;
  }

  /* ===================== LIGHTBOX (1920–2559) ===================== */
  .lightbox{
    --lb-gutter: clamp(80px, 6vw, 160px);
    --lb-max-width: none;
    --lb-media-vh: 88vh;
    --lb-ui-reserve: 160px;
    --lb-arrow-offset: 16px;
    --lb-arrow-size: 56px;
  }

  .lightbox .progress--lightbox{
    max-width: none;
  }
}

/*----------------------------------------- 1920-2559 DESKTOP ONLY -----------------------------------------*/
@media screen and (min-width: 1920px) and (max-width: 2559.98px) and (hover: hover) and (pointer: fine){

  /* контейнеры чуть “богаче” по полям на десктопе */
  .container1p,
  .container2p,
  .container3p,
  .container4p{
    padding-left: 90px;
    padding-right: 90px;
  }

  /* фиксированные фоны только для desktop-only */
  .main,
  .hotel,
  .location,
  .contacts{
    background-attachment: fixed;
  }

  /* hover-эффект иконок только для desktop-only */
  .main .top-whatsapp:hover,
  .main .top-viber:hover,
  .main .top-telegram:hover,
  .main .top-phone:hover,
  .main .top-email:hover{
    border-color: whitesmoke;
    transform: translateY(-1px);
  }
}

/*----------------------------------------- 1536-1919 MD+TD -----------------------------------------*/
@media screen and (min-width: 1536px) and (max-width: 1919.98px){

  :root{
    --mq1536-container-max: 1500px;
    --mq1536-container-pad: 70px;
    --mq1536-free-right-gap: 8px;
      
    --pages-eq-cap: clamp(1400px, 90vh, 1600px);
    --pages-eq-cap: clamp(1400px, 90dvh, 1600px);
  }

  /* ===================== ОСНОВНЫЕ КОНТЕЙНЕРЫ ===================== */
  .container1p,
  .container2p,
  .container3p,
  .container4p{
    max-width: var(--mq1536-container-max);
    margin-left: auto;
    margin-right: auto;
    padding-left: var(--mq1536-container-pad);
    padding-right: var(--mq1536-container-pad);
  }

  /* ===================== PAGE 1 — WELCOME ===================== */
  .main{
    background-image: url(background/main1-1536.webp);
    background-size: cover;
    background-position: right bottom;
    background-repeat: no-repeat;
    background-attachment: scroll;

    min-height: var(--page-min-h);
    min-height: var(--page-min-h-dyn);
      
    height: auto;
    overflow: visible;
      
    position: relative; /* якорь для .right-side-main */
  }

  .main .header-logo{
    transform: scale(0.85);
    transform-origin: left center;
  }

  .main .topic1p-top{
    gap: 16px;
    padding: 22px 0;
    align-items: center;

    flex-wrap: nowrap;
    justify-content: flex-start;
  }

  /* иконки контактов (без hover в base) */
  .main .top-whatsapp,
  .main .top-viber,
  .main .top-telegram,
  .main .top-phone,
  .main .top-email{
    margin-top: 8px;
    width: 90px;
    height: auto;
    margin-right: 0;

    border: 3px solid transparent;
    border-radius: 10px;
    padding: 5px;
    display: inline-flex;

    transition: background-color .25s ease, border-color .25s ease, transform .15s ease;
    align-self: center;
  }

  /* tap feedback */
  .main .top-whatsapp a,
  .main .top-viber a,
  .main .top-telegram a,
  .main .top-phone a,
  .main .top-email a{
    display: block;
    width: 100%;
    transform-origin: center;
    will-change: transform;
  }

  .main .top-whatsapp a:active,
  .main .top-viber a:active,
  .main .top-telegram a:active,
  .main .top-phone a:active,
  .main .top-email a:active{
    transform: scale(0.98);
  }

  .main .top-whatsapp img,
  .main .top-viber img,
  .main .top-telegram img,
  .main .top-phone img,
  .main .top-email img{
    width: 100%;
    height: auto;
    max-width: none;
  }

  .main .top-text-title{
    font-size: clamp(20px, 1.35vw, 26px);
    margin-left: auto; /* уводит top-text-title + все следующие иконки вправо */
  }

  .main .top-text-title span{
    font-size: clamp(15px, 1.05vw, 20px);
  }

  .main .topic1p-middle{
    min-height: 0;
    flex-direction: column;
    justify-content: space-between;
  }

  .main .left-side-main{
    flex: 1;
    flex-direction: column;
    justify-content: flex-start;
    padding-top: clamp(70px, 9vh, 120px);
  }

  .main .main-left-one{
    font-size: clamp(46px, 3.1vw, 66px);
    line-height: 1.08;
  }

  .main .main-left-two{
    font-size: clamp(20px, 1.6vw, 30px);
    line-height: 1.25;
    max-width: 52ch;
  }

.main .right-side-main{
  position: absolute;

  /* привязка к правому краю контентной колонки (1536–1919) */
  --free-right: calc(
    (100vw - var(--mq1536-container-max)) / 2
    + var(--mq1536-container-pad)
    - var(--mq1536-free-right-gap)
  );

  right: calc(var(--free-right) - 20px);
  transform: none;

  bottom: clamp(32px, 3vh, 56px);
  width: clamp(820px, 54vw, 1050px);

  display: flex;
  flex-direction: column;
  align-items: flex-end;
  text-align: right;
}

  .main .bottom-half-wrapper{
    justify-content: flex-start;
    align-items: flex-end;
    padding: 0;
  }

    .main .main-title-2{
      width: fit-content;
      max-width: 100%;
      margin-left: auto;
      margin-right: 30px;
      text-align: left;
      transform: none;
    }

  .main .right-side-main .main-right-one,
  .main .right-side-main .main-right-two{
    padding-left: 0;
    text-align: left;
    margin: 0 0 14px 0;
    width: 100%;
    max-width: 100%;

    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    overflow-wrap: normal;
    hyphens: manual;

    font-size: clamp(20px, 1.25vw, 28px);
    font-weight: 600;
    line-height: 1.28;
    letter-spacing: -0.25px;
  }

  .main .right-side-main .main-right-two{
    font-size: clamp(18px, 1.1vw, 24px);
  }

  /* ===================== PAGE 2 — ROOMS & PHOTOS ===================== */
  .hotel{
    background-image: url(background/main2-1536.webp);
    background-size: cover;
    background-position: right bottom;
    background-repeat: no-repeat;
    background-attachment: scroll;

    min-height: var(--page-min-h);
    min-height: var(--page-min-h-dyn);
      
    height: auto;
    overflow: visible;
  }

  .hotel .topic2p-title-top{
    font-size: clamp(44px, 4.2vw, 68px);
  }

  .hotel .topic2p-middle{
    align-items: flex-start;
  }

  .hotel .right-side-photo{
    margin-top: 0;
    padding-top: 0;
  }

  /* Слайдер: 16:9 */
  .hotel .slideshow-container{
    max-width: 1150px;
    aspect-ratio: 16 / 9;
    height: auto;
    margin: 0 auto;
    border-radius: 12px;
    overflow: hidden;
  }

  .hotel .mySlides{
    height: 100% !important;
  }

  .hotel .details2p p{
    font-size: clamp(20px, 1.2vw, 24px);
    line-height: 1.7;
  }

  .hotel .details2p{
    font-size: clamp(18px, 1.05vw, 22px);
    line-height: 1.65;
  }

  .hotel .details2p h3{
    font-size: clamp(26px, 1.25vw, 32px);
    margin-top: 22px;
    margin-bottom: 14px;
  }

  .hotel .topic2p-suptitle,
  .hotel .topic2p-suptitle li{
    font-size: clamp(18px, 1.05vw, 22px);
  }

  .hotel .topic2p-suptitle li{
    margin-bottom: 9px;
    padding-left: 20px;
  }

  /* ===================== PAGE 3 — LOCATION ===================== */
  .location{
    background-image: url(background/main3-1536.webp);
    background-size: cover;
    background-position: right bottom;
    background-repeat: no-repeat;
    background-attachment: scroll;

    min-height: var(--page-min-h);
    min-height: var(--page-min-h-dyn);
      
    height: auto;
    overflow: visible;
  }

  .location .details3p p{
    font-size: clamp(20px, 1.2vw, 24px);
    line-height: 1.7;
  }

  .location .details3p{
    font-size: clamp(18px, 1.05vw, 22px);
    line-height: 1.65;
  }

  .location .details3p h3{
    font-size: clamp(26px, 1.25vw, 32px);
    margin-top: 22px;
    margin-bottom: 14px;
  }

  .location .details3p ul li{
    font-size: clamp(18px, 1.05vw, 22px);
    margin-bottom: 9px;
    padding-left: 20px;
  }

  .location .map iframe{
    height: clamp(520px, 65vh, 720px);
    max-height: 780px;
    border-radius: 12px;
  }

  /* ===================== PAGE 4 — CONTACTS ===================== */
  .contacts{
    background-image: url(background/main4-1536.webp);
    background-size: cover;
    background-position: right bottom;
    background-repeat: no-repeat;
    background-attachment: scroll;

    min-height: var(--page-min-h);
    min-height: var(--page-min-h-dyn);
      
    height: auto;
    overflow: visible;
  }

  .contacts .content4p{
    max-width: 1400px;
    padding: 70px 90px;
    gap: 70px;
  }

  /* ===================== LIGHTBOX (1536–1919) ===================== */
  .lightbox{
    --lb-gutter: clamp(60px, 6vw, 120px);
    --lb-max-width: none;
    --lb-media-vh: 86vh;
    --lb-ui-reserve: 160px;
    --lb-arrow-offset: 14px;
    --lb-arrow-size: 52px;
  }

  .lightbox .progress--lightbox{
    max-width: none;
  }
}

/*----------------------------------------- 1536-1919 DESKTOP ONLY -----------------------------------------*/
@media screen and (min-width: 1536px) and (max-width: 1919.98px) and (hover: hover) and (pointer: fine){

  /* контейнеры чуть “богаче” по полям на десктопе */
  .container1p,
  .container2p,
  .container3p,
  .container4p{
    padding-left: 80px;
    padding-right: 80px;
  }

  /* фиксированные фоны только для desktop-only */
  .main,
  .hotel,
  .location,
  .contacts{
    background-attachment: fixed;
  }

  /* hover-эффект иконок только для desktop-only */
  .main .top-whatsapp:hover,
  .main .top-viber:hover,
  .main .top-telegram:hover,
  .main .top-phone:hover,
  .main .top-email:hover{
    border-color: whitesmoke;
    transform: translateY(-1px);
  }
}

/*----------------------------------------- 1280-1535 MD+TD -----------------------------------------*/
@media screen and (min-width: 1280px) and (max-width: 1535.98px){

  :root{
    --mq1280-container-max: 1240px;
    --mq1280-container-pad: 60px;
    --mq1280-free-right-gap: 8px;
      
    --pages-eq-cap: clamp(1340px, 90vh, 1540px);
    --pages-eq-cap: clamp(1340px, 90dvh, 1540px);
  }

  /* ===================== ОСНОВНЫЕ КОНТЕЙНЕРЫ ===================== */
  .container1p,
  .container2p,
  .container3p,
  .container4p{
    max-width: var(--mq1280-container-max);
    margin-left: auto;
    margin-right: auto;
    padding-left: var(--mq1280-container-pad);
    padding-right: var(--mq1280-container-pad);
  }

  /* ===================== PAGE 1 — WELCOME ===================== */
  .main{
    background-image: url(background/main1-1280.webp);
    background-size: cover;
    background-position: right bottom;
    background-repeat: no-repeat;
    background-attachment: scroll;

    min-height: var(--page-min-h);
    min-height: var(--page-min-h-dyn);
      
    height: auto;
    overflow: visible;
      
    position: relative; /* якорь для absolute-детей */
  }

    .main .header-logo{
      /* убрали transform, чтобы не оставалось “пустого” места в layout */
      transform: none;

      /* фиксируем реальную ширину в потоке */
      width: 337px;
      flex: 0 0 337px;
      max-width: 337px;
    }

    .main .header-logo img{
      width: 100%;
      height: auto;
      display: block;
    }
    
  .main .topic1p-top{
    gap: 14px;
    padding: 20px 0;
    align-items: center;

    flex-wrap: nowrap;
    justify-content: flex-start;
  }

  /* иконки контактов (без hover в base) */
  .main .top-whatsapp,
  .main .top-viber,
  .main .top-telegram,
  .main .top-phone,
  .main .top-email{
    margin-top: 8px;
    width: 82px;
    height: auto;
    margin-right: 0;

    border: 3px solid transparent;
    border-radius: 10px;
    padding: 5px;

    display: inline-flex;
    transition: background-color .25s ease, border-color .25s ease, transform .15s ease;

    align-self: center;
  }

  /* tap feedback */
  .main .top-whatsapp a,
  .main .top-viber a,
  .main .top-telegram a,
  .main .top-phone a,
  .main .top-email a{
    display: block;
    width: 100%;
    transform-origin: center;
    will-change: transform;
  }

  .main .top-whatsapp a:active,
  .main .top-viber a:active,
  .main .top-telegram a:active,
  .main .top-phone a:active,
  .main .top-email a:active{
    transform: scale(0.98);
  }

  .main .top-whatsapp img,
  .main .top-viber img,
  .main .top-telegram img,
  .main .top-phone img,
  .main .top-email img{
    width: 100%;
    height: auto;
    max-width: none;
  }
    .main .top-text-title{
      font-size: clamp(18px, 1.35vw, 24px);
      padding-left: 0;

      /* как в 1920: уводит title + все следующие иконки вправо */
      margin-left: auto;

      /* строго 2 строки (без 2+1) */
      white-space: nowrap;

      /* страховка от X-scroll/переполнений в flex-строке */
      min-width: 0;
      overflow: hidden;
    }

  .main .top-text-title span{
    font-size: clamp(14px, 1.05vw, 19px);
  }

  .main .topic1p-middle{
    min-height: 0;
    flex-direction: column;
    justify-content: space-between;
  }
    
  .main .left-side-main{
    flex: 1;
    flex-direction: column;
    justify-content: flex-start;
    padding-top: clamp(60px, 9vh, 110px);
  }

  .main .main-left-one{
    font-size: clamp(42px, 3.2vw, 60px);
    line-height: 1.08;
  }

  .main .main-left-two{
    font-size: clamp(19px, 1.6vw, 28px);
    line-height: 1.25;
    max-width: 52ch;
  }
 
      .main .right-side-main{
        position: absolute;

        --free-right: calc(
          (100vw - var(--mq1280-container-max)) / 2
          + var(--mq1280-container-pad)
          - var(--mq1280-free-right-gap)
        );

        /* 1280 → -110px, 1535 → -150px */
        right: calc(
          var(--free-right)
          + 90.784314px
          - 15.6862745vw
        );
        transform: none;

        bottom: clamp(32px, 3vh, 56px);
        width: clamp(720px, 56vw, 930px);

        --padX: clamp(18px, 2vw, 44px);
        --padShift: clamp(10px, 1.2vw, 26px);

        padding-top: 0;
        padding-right: calc(var(--padX) - var(--padShift));
        padding-bottom: clamp(8px, 1.5vh, 16px);
        padding-left: calc(var(--padX) + var(--padShift));

        text-align: left;
        box-sizing: border-box;
      }
    
  .main .bottom-half-wrapper{
    justify-content: flex-start;
    align-items: flex-end;
    padding: 0;
  }

    .main .main-title-2{
      width: fit-content;
      max-width: 100%;
      margin-left: auto;

      /* 1280: 110px, 1535: 150px (подгонишь +/-, потом зафиксируем) */
      margin-right: clamp(110px, calc(110px + (40 * (100vw - 1280px) / 255)), 150px);

      text-align: left;
      transform: none;
    }

  .main .right-side-main .main-right-one,
  .main .right-side-main .main-right-two{
    padding-left: 0;
    text-align: left;
    margin: 0 0 12px 0;
    width: 100%;
    max-width: 100%;

    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    overflow-wrap: normal;
    hyphens: manual;

    font-size: clamp(19px, 1.28vw, 26px);
    font-weight: 600;
    line-height: 1.28;
    letter-spacing: -0.2px;
  }

  .main .right-side-main .main-right-two{
    font-size: clamp(17px, 1.12vw, 22px);
  }

  /* ===================== PAGE 2 — ROOMS & PHOTOS ===================== */
  .hotel{
    background-image: url(background/main2-1280.webp);
    background-size: cover;
    background-position: right bottom;
    background-repeat: no-repeat;
    background-attachment: scroll;

    min-height: var(--page-min-h);
    min-height: var(--page-min-h-dyn);
      
    height: auto;
    overflow: visible;
  }

  .hotel .topic2p-title-top{
    font-size: clamp(40px, 4.6vw, 62px);
  }

  .hotel .topic2p-middle{
    align-items: flex-start;
  }

  .hotel .right-side-photo{
    margin-top: 0;
    padding-top: 0;
  }

  /* Слайдер: 16:9 */
  .hotel .slideshow-container{
    max-width: 980px;
    aspect-ratio: 16 / 9;
    height: auto;
    margin: 0 auto;
    border-radius: 12px;
    overflow: hidden;
  }

  .hotel .mySlides{
    height: 100% !important;
  }

  .hotel .details2p p{
    font-size: clamp(18px, 1.25vw, 22px);
    line-height: 1.7;
  }

  .hotel .details2p{
    font-size: clamp(16px, 1.1vw, 20px);
    line-height: 1.65;
  }

  .hotel .details2p h3{
    font-size: clamp(24px, 1.3vw, 30px);
    margin-top: 20px;
    margin-bottom: 12px;
  }

  .hotel .topic2p-suptitle,
  .hotel .topic2p-suptitle li{
    font-size: clamp(16px, 1.1vw, 20px);
  }

  .hotel .topic2p-suptitle li{
    margin-bottom: 8px;
    padding-left: 20px;
  }

  /* ===================== PAGE 3 — LOCATION ===================== */
  .location{
    background-image: url(background/main3-1280.webp);
    background-size: cover;
    background-position: right bottom;
    background-repeat: no-repeat;
    background-attachment: scroll;

    min-height: var(--page-min-h);
    min-height: var(--page-min-h-dyn);
      
    height: auto;
    overflow: visible;
  }

  .location .details3p p{
    font-size: clamp(18px, 1.25vw, 22px);
    line-height: 1.7;
  }

  .location .details3p{
    font-size: clamp(16px, 1.1vw, 20px);
    line-height: 1.65;
  }

  .location .details3p h3{
    font-size: clamp(24px, 1.3vw, 30px);
    margin-top: 20px;
    margin-bottom: 12px;
  }

  .location .details3p ul li{
    font-size: clamp(16px, 1.1vw, 20px);
    margin-bottom: 8px;
    padding-left: 20px;
  }

  .location .map iframe{
    height: clamp(480px, 65vh, 680px);
    max-height: 720px;
    border-radius: 12px;
  }

  /* ===================== PAGE 4 — CONTACTS ===================== */
  .contacts{
    background-image: url(background/main4-1280.webp);
    background-size: cover;
    background-position: right bottom;
    background-repeat: no-repeat;
    background-attachment: scroll;

    min-height: var(--page-min-h);
    min-height: var(--page-min-h-dyn);
      
    height: auto;
    overflow: visible;
  }

  /* Контейнер: форма сверху, контакты снизу (как в 1024–1279) */
  .contacts .content4p{
    flex-direction: column;
    flex-wrap: nowrap;

    max-width: 1200px;
    padding: 62px 78px;
    gap: 62px;
  }

  /* Правая колонка (форма) — первой */
  .contacts .right-side-contacts{
    order: 1;
    flex: 0 0 auto;
  }

  /* Левая колонка (Address/Phone/E-mail) — вниз под формой */
  .contacts .left-side-contacts{
    order: 2;
    flex: 0 0 auto;

    padding-right: 0;
    position: static;

    display: flex;
    flex-direction: row;
    flex-wrap: nowrap;
    justify-content: center;
    align-items: stretch;
    gap: 26px;

    text-align: center;
  }

  .contacts .left-side-contacts::before{
    content: none;
  }

  .contacts .left-side-contacts .details4p{
    margin-bottom: 0;

    flex: 1 1 0;
    min-width: 0;

    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: flex-start;

    text-align: center;
    gap: 0;
    row-gap: 0;
  }

  .contacts .left-side-contacts a{
    text-decoration: none;
  }

  /* ===================== LIGHTBOX (1280–1535) ===================== */
  .lightbox{
    --lb-gutter: clamp(52px, 6vw, 110px);
    --lb-max-width: none;
    --lb-media-vh: 85vh;
    --lb-ui-reserve: 160px;
    --lb-arrow-offset: 12px;
    --lb-arrow-size: 50px;
  }

  .lightbox .progress--lightbox{
    max-width: none;
  }
}

/*----------------------------------------- 1280-1535 DESKTOP ONLY -----------------------------------------*/
@media screen and (min-width: 1280px) and (max-width: 1535.98px) and (hover: hover) and (pointer: fine){

  /* контейнеры чуть “богаче” по полям на десктопе */
  :root{
    --mq1280-container-pad: 70px;
  }

  /* фиксированные фоны только для desktop-only */
  .main,
  .hotel,
  .location,
  .contacts{
    background-attachment: fixed;
  }

  /* hover-эффект иконок только для desktop-only */
  .main .top-whatsapp:hover,
  .main .top-viber:hover,
  .main .top-telegram:hover,
  .main .top-phone:hover,
  .main .top-email:hover{
    border-color: whitesmoke;
    transform: translateY(-1px);
  }
}

/*----------------------------------------- 1024-1279 MD+TD -----------------------------------------*/
@media screen and (min-width: 1024px) and (max-width: 1279.98px) {

  :root{
    --mq1024-container-max: 980px;
    --mq1024-container-pad: 50px;
    --mq1024-free-right-gap: 8px;
      
    --pages-eq-cap: clamp(1440px, 90vh, 1600px);
    --pages-eq-cap: clamp(1440px, 90dvh, 1600px);
  }

  /* ===================== ОБЩИЕ КОНТЕЙНЕРЫ ===================== */
  .container1p,
  .container2p,
  .container3p,
  .container4p{
    max-width: var(--mq1024-container-max);
    margin-left: auto;
    margin-right: auto;
    padding-left: var(--mq1024-container-pad);
    padding-right: var(--mq1024-container-pad);
  }

  /* ===================== PAGE 1 — WELCOME ===================== */
  .main{
    background-image: url(background/main1-1024.webp);
    background-size: cover;
    background-position: right bottom;
    background-repeat: no-repeat;
    background-attachment: scroll;

    min-height: var(--page-min-h);
    min-height: var(--page-min-h-dyn);
      
    height: auto;
    overflow: visible;
      
    position: relative; /* якорь для absolute-детей */
  }

  .main .header-logo{
    transform: none;
    display: flex;
    align-items: center;
    flex: 0 0 auto;
  }

  .main .header-logo img{
    width: clamp(260px, 25vw, 270px);
    height: auto;
    display: block;
  }

  .main .topic1p-top{
    gap: 8px;
    padding: 18px 0;
    align-items: center;

    flex-wrap: nowrap;
    justify-content: flex-start;
  }

  /* иконки контактов (box) */
  .main .top-whatsapp,
  .main .top-viber,
  .main .top-telegram,
  .main .top-phone,
  .main .top-email{
    margin-top: 0;
    width: 72px;
    height: auto;
    margin-right: 0;

    border: 3px solid transparent;
    border-radius: 10px;
    padding: 5px;

    display: inline-flex;
    transition: background-color .25s ease, border-color .25s ease, transform .15s ease;

    align-self: center;
  }

  /* иконки контактов (tap feedback) */
  .main .top-whatsapp a,
  .main .top-viber a,
  .main .top-telegram a,
  .main .top-phone a,
  .main .top-email a{
    display: block;
    width: 100%;
    transform-origin: center;
    will-change: transform;
  }

  .main .top-whatsapp a:active,
  .main .top-viber a:active,
  .main .top-telegram a:active,
  .main .top-phone a:active,
  .main .top-email a:active{
    transform: scale(0.98);
  }

  .main .top-whatsapp img,
  .main .top-viber img,
  .main .top-telegram img,
  .main .top-phone img,
  .main .top-email img{
    width: 100%;
    height: auto;
    max-width: none; /* разрешаем upscale */
  }

    .main .top-text-title{
      font-size: clamp(17px, 1.55vw, 22px);
      padding-left: 0;
      padding-top: 0;
      padding-bottom: 0;

      margin-left: auto;
      margin-right: clamp(16px, 1.6vw, 26px);

      display: flex;
      flex-direction: column;
      align-items: flex-start;

      flex: 0 1 auto;
      min-width: 0;

      line-height: 1.18;
    }

  .main .top-text-title span{
    font-size: clamp(13px, 1.18vw, 18px);
    margin-top: 3px;

    white-space: nowrap;
    line-height: 1.18;
  }

     .main .topic1p-middle{
      min-height: 0;          /* оставляем */
      display: flex;
      flex-direction: column;
      justify-content: space-between;
    }
    
  .main .left-side-main{
    flex: 1;
    flex-direction: column;
    justify-content: flex-start;
    padding-top: clamp(50px, 9vh, 95px);
  }

  .main .main-left-one{
    font-size: clamp(38px, 3.6vw, 54px);
    line-height: 1.08;

    /* опустить Welcome ниже на ~250px */
    margin-top: 250px;
  }

  .main .main-left-two{
    font-size: clamp(18px, 1.85vw, 26px);
    line-height: 1.25;
    max-width: 52ch;
  }

.main .right-side-main{
  position: absolute;

  --free-right: calc(
    (100vw - var(--mq1024-container-max)) / 2
    + var(--mq1024-container-pad)
    - var(--mq1024-free-right-gap)
  );

    /* альтенатива
right: calc(
  var(--free-right)
  - 90px
  + ((1279px - 100vw) * 0.352941176)
);
    */
    
  right: calc(var(--free-right) + 361.411764px - 35.2941176vw);  
  transform: none;

  bottom: clamp(32px, 3vh, 56px);
  padding-bottom: clamp(8px, 1.5vh, 16px);

  display: flex;
  flex-direction: column;
  gap: clamp(12px, 1.5vh, 20px);
}

  .main .bottom-half-wrapper{
    justify-content: flex-start;
    align-items: flex-end;
    padding: 0;
  }

    .main .main-title-2{
      width: fit-content;
      max-width: 100%;
      margin-left: auto;
      margin-right: clamp(
          10px,
          calc(10px + (100 * (100vw - 1024px) / 255)),
          110px
        );
      text-align: left;
      transform: none;
  }
    
  .main .right-side-main .main-right-one,
  .main .right-side-main .main-right-two{
    padding-left: 0;
    text-align: left;
    margin: 0 0 10px 0;
    width: 100%;
    max-width: 100%;

    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    overflow-wrap: normal;
    hyphens: manual;

    font-size: clamp(17px, 1.45vw, 22px);
    font-weight: 600;
    line-height: 1.28;
    letter-spacing: -0.15px;
  }

  .main .right-side-main .main-right-two{
    font-size: clamp(16px, 1.28vw, 20px);
  }

  /* ===================== PAGE 2 — ROOMS & PHOTOS ===================== */
  .hotel{
    background-image: url(background/main2-1024.webp);
    background-size: cover;
    background-position: right bottom;
    background-repeat: no-repeat;
    background-attachment: scroll;

    min-height: var(--page-min-h);
    min-height: var(--page-min-h-dyn);
      
    height: auto;
    overflow: visible;
  }

  .hotel .topic2p-middle{
    flex-direction: column;
    flex-wrap: nowrap;
    gap: 28px;
    align-items: flex-start;
  }

  .hotel .left-side-description,
  .hotel .right-side-photo{
    flex: 0 0 auto;
    width: 100%;
    min-width: 0;
  }

  .hotel .topic2p-title-top{
    font-size: clamp(36px, 5vw, 56px);
  }

  .hotel .right-side-photo{
    margin-top: 0;
    padding-top: 0;
  }

  /* Слайдер: 16:9 */
  .hotel .slideshow-container{
    max-width: 860px;
    aspect-ratio: 16 / 9;
    height: auto;
    margin: 0 auto;
    border-radius: 12px;
    overflow: hidden;
  }

  .hotel .mySlides{
    height: 100% !important;
  }

  /* Текст Page2 */
  .hotel .details2p p{
    font-size: clamp(17px, 1.55vw, 20px);
    line-height: 1.7;
  }

  .hotel .details2p{
    font-size: clamp(15px, 1.35vw, 18px);
    line-height: 1.65;
  }

  .hotel .details2p h3{
    font-size: clamp(22px, 1.7vw, 28px);
    margin-top: 18px;
    margin-bottom: 12px;
  }

  .hotel .topic2p-suptitle,
  .hotel .topic2p-suptitle li{
    font-size: clamp(15px, 1.35vw, 18px);
  }

  .hotel .topic2p-suptitle li{
    margin-bottom: 8px;
    padding-left: 20px;
  }

  /* ===================== PAGE 3 — LOCATION ===================== */
  .location{
    background-image: url(background/main3-1024.webp);
    background-size: cover;
    background-position: right bottom;
    background-repeat: no-repeat;
    background-attachment: scroll;

    min-height: var(--page-min-h);
    min-height: var(--page-min-h-dyn);
      
    height: auto;
    overflow: visible;
  }

  .location .topic3p-middle{
    flex-direction: column;
    flex-wrap: nowrap;
    gap: 28px;
  }

  .location .left-side-legend,
  .location .right-side-map{
    flex: 0 0 auto;
    width: 100%;
    min-width: 0;
  }

  .location .details3p p{
    font-size: clamp(17px, 1.55vw, 20px);
    line-height: 1.7;
  }

  .location .details3p{
    font-size: clamp(15px, 1.35vw, 18px);
    line-height: 1.65;
  }

  .location .details3p h3{
    font-size: clamp(22px, 1.7vw, 28px);
    margin-top: 18px;
    margin-bottom: 12px;
  }

  .location .details3p ul li{
    font-size: clamp(15px, 1.35vw, 18px);
    margin-bottom: 8px;
    padding-left: 20px;
  }

  .location .map iframe{
    height: clamp(330px, 22vh, 420px);
    max-height: 660px;
    border-radius: 12px;
  }

  /* ===================== PAGE 4 — CONTACTS ===================== */
  .contacts{
    background-image: url(background/main4-1024.webp);
    background-size: cover;
    background-position: right bottom;
    background-repeat: no-repeat;
    background-attachment: scroll;

    min-height: var(--page-min-h);
    min-height: var(--page-min-h-dyn);
      
    height: auto;
    overflow: visible;
  }

  /* Контейнер: форма сверху, контакты снизу */
  .contacts .content4p{
    flex-direction: column;
    flex-wrap: nowrap;
  }

  /* Правая колонка (форма) — первой */
  .contacts .right-side-contacts{
    order: 1;
    flex: 0 0 auto;
  }

  /* Левая колонка (Address/Phone/E-mail) — вниз под формой */
  .contacts .left-side-contacts{
    order: 2;
    flex: 0 0 auto;

    padding-right: 0;
    position: static;

    display: flex;
    flex-direction: row;
    flex-wrap: nowrap;
    justify-content: center;
    align-items: stretch;
    gap: 26px;

    text-align: center;
  }

  .contacts .left-side-contacts::before{
    content: none;
  }

  .contacts .left-side-contacts .details4p{
    margin-bottom: 0;

    flex: 1 1 0;
    min-width: 0;

    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: flex-start;

    text-align: center;
    gap: 0;
    row-gap: 0;
  }

  .contacts .left-side-contacts .details4p img{
    width: clamp(50px, 5vw, 65px);
    height: auto;
    max-width: 100%;
    display: block;
    margin: 0 auto 10px;
  }

  .contacts .left-side-contacts .topic4p{
    text-align: center;
    margin: 0 0 6px 0;
  }

  .contacts .left-side-contacts .text-one-4p,
  .contacts .left-side-contacts .text-two-4p{
    text-align: center;
    margin: 0;

    line-height: 1.25;

    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    max-width: 100%;
  }

  .contacts .left-side-contacts a{
    font-size: inherit;
    color: inherit;
    text-decoration: none;

    display: inline-block;
    max-width: 100%;

    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
  }

  /* ===================== LIGHTBOX (1024–1279) ===================== */
  .lightbox{
    --lb-gutter: clamp(40px, 6vw, 90px);
    --lb-max-width: none;
    --lb-media-vh: 84vh;
    --lb-ui-reserve: 160px;
    --lb-arrow-offset: 10px;
    --lb-arrow-size: 46px;
  }

  .lightbox .progress--lightbox{
    max-width: none;
  }
}

/*----------------------------------------- 1024-1279 DESKTOP ONLY -----------------------------------------*/
@media screen and (min-width: 1024px) and (max-width: 1279.98px) and (hover: hover) and (pointer: fine) {

  /* контейнеры чуть “богаче” по полям на десктопе */
  .container1p,
  .container2p,
  .container3p,
  .container4p{
    padding-left: 60px;
    padding-right: 60px;
  }

  /* фиксированные фоны только для desktop-only */
  .main,
  .hotel,
  .location,
  .contacts{
    background-attachment: fixed;
  }

  /* hover-эффект иконок только для desktop-only */
  .main .top-whatsapp:hover,
  .main .top-viber:hover,
  .main .top-telegram:hover,
  .main .top-phone:hover,
  .main .top-email:hover{
    border-color: whitesmoke;
    transform: translateY(-1px);
  }
}

/*----------------------------------------- 768-1023 MD+TD -----------------------------------------*/
@media screen and (min-width: 768px) and (max-width: 1023.98px) {

  :root{
  --pages-eq-cap: clamp(1520px, 100vh, 1680px);
  --pages-eq-cap: clamp(1520px, 100dvh, 1680px);
  }
    
  /* ===================== ОСНОВНЫЕ КОНТЕЙНЕРЫ ===================== */
  .container1p,
  .container2p,
  .container3p,
  .container4p{
    max-width: 720px;
    margin-left: auto;
    margin-right: auto;
    padding-left: 32px;
    padding-right: 32px;
  }

  /* ===================== PAGE 1 — WELCOME ===================== */
  .main{
    background-image: url(background/main1-768.webp);
    background-size: cover;
    background-position: right bottom;
    background-repeat: no-repeat;
    background-attachment: scroll;

    padding-bottom: 0;

    min-height: var(--page-min-h);
    min-height: var(--page-min-h-dyn);

    height: auto;
    overflow: visible;
    position: relative;
  }

  /* Page1 потоковая колонка: контент сверху, контакты снизу */
  .main .container1p{
    min-height: inherit;
    display: flex;
    flex-direction: column;
    padding-bottom: clamp(16px, 3vh, 32px);
  }
    
  .main .topic1p-middle{
    order: 1;
    flex: 1 1 auto;

    display: flex;
    flex-direction: column;
    justify-content: flex-start;

    align-items: center;
    text-align: center;

    position: relative;
    padding-bottom: clamp(18px, 3vh, 28px);
  }

  .main .left-side-main{
    flex: 0 0 auto;

    display: flex;
    flex-direction: column;
    justify-content: flex-start;

    align-items: center;
    text-align: center;

    padding-top: clamp(160px, calc(12vh + 70px), 250px);
  }

  .main .main-left-one{
    font-size: clamp(40px, 5.0vw, 58px);
    line-height: 1.08;
  }

  .main .main-left-two{
    font-size: clamp(18px, 2.45vw, 26px);
    line-height: 1.25;
    max-width: 48ch;
    margin-top: 14px;
  }

  .main .right-side-main{
    width: 100%;
    padding: 0;
    position: static;
    transform: none;

    margin-top: clamp(144px, calc(12vh + 80px), 250px);
  }

  .main .bottom-half-wrapper{
    display: flex;
    justify-content: center;
    align-items: flex-end;
    padding: 0 16px 10px;
  }

  .main .main-title-2{
    width: min(720px, 96%);
    text-align: center;
  }

  .main .main-right-one,
  .main .main-right-two{
    margin: 0 auto;
    padding-left: 0 !important;
    text-align: center !important;

    white-space: normal !important;

    font-weight: 600;
    line-height: 1.35;
  }

  .main .main-right-one{
    font-size: clamp(17px, 2.15vw, 23px);
    margin-bottom: 8px;
  }

  .main .main-right-two{
    font-size: clamp(15px, 1.95vw, 21px);
  }

  /* Нижний блок контактов — в потоке, прижат вниз */
  .main .topic1p-top{
    order: 2;
    margin-top: auto;

    position: static;
    z-index: 20;

    display: flex;
    flex-wrap: wrap;

    justify-content: center;
    align-items: center;

    gap: 8px 12px;
    padding: 0 0 calc(12px + env(safe-area-inset-bottom));
    width: 100%;
  }

  .main .header-logo{
    order: 1;
    flex: 0 0 100%;
    display: flex;
    justify-content: center;

    transform: scale(0.74);
    transform-origin: center bottom;
  }

  .main .top-text-title{
    order: 2;
    flex: 0 0 100%;

    padding: 0;
    margin: 6px 0 2px;

    display: flex;
    flex-direction: column;
    align-items: center;

    text-align: center;

    font-size: clamp(14px, 1.75vw, 16px);
    font-weight: 600;
  }

  .main .top-text-title span{
    margin-top: 3px;
    font-size: clamp(13px, 1.6vw, 15px);
    white-space: nowrap;
    opacity: 0.95;
  }

  .main .top-whatsapp,
  .main .top-viber,
  .main .top-telegram,
  .main .top-phone,
  .main .top-email{
    order: 3;
    margin-top: 0;

    width: clamp(88px, 10.5vw, 112px);

    height: auto;
    margin-right: 0;

    border: 3px solid transparent;
    border-radius: 10px;
    padding: 4px;

    display: inline-flex;

    transition: background-color .25s ease, border-color .25s ease, transform .15s ease;
  }

  .main .top-whatsapp a,
  .main .top-viber a,
  .main .top-telegram a,
  .main .top-phone a,
  .main .top-email a{
    display: block;
    width: 100%;
  }

  .main .top-whatsapp img,
  .main .top-viber img,
  .main .top-telegram img,
  .main .top-phone img,
  .main .top-email img{
    width: 100%;
    height: auto;
    max-width: none;
  }

  /* ===================== PAGE 2 — ROOMS & PHOTOS ===================== */
  .hotel{
    background-image: url(background/main2-768.webp);
    background-size: cover;
    background-position: right bottom;
    background-repeat: no-repeat;
    background-attachment: scroll;

    padding-bottom: calc(clamp(18px, 4vh, 30px) + env(safe-area-inset-bottom));

    min-height: var(--page-min-h);
    min-height: var(--page-min-h-dyn);

    height: auto;
    overflow: visible;
  }

  .hotel .topic2p-middle{
    flex-direction: column;
    flex-wrap: nowrap;
    gap: 24px;
  }

  .hotel .left-side-description,
  .hotel .right-side-photo{
    flex: 0 0 auto;
    width: 100%;
    min-width: 0;
  }

  .hotel .topic2p-title-top{
    font-size: clamp(32px, 4.6vw, 52px);
  }

  .hotel .slideshow-container{
    max-width: 720px;
    aspect-ratio: 16 / 9;
    height: auto;
    margin: 0 auto;
    border-radius: 12px;
    overflow: hidden;
  }

  .hotel .mySlides{
    height: 100% !important;
  }

  .hotel .details2p p{
    font-size: clamp(16px, 2.0vw, 19px);
    line-height: 1.7;
  }

  .hotel .details2p{
    font-size: clamp(14px, 1.8vw, 17px);
    line-height: 1.65;
  }

  .hotel .details2p h3{
    font-size: clamp(20px, 2.2vw, 26px);
    margin-top: 18px;
    margin-bottom: 12px;
  }

  .hotel .topic2p-suptitle{
    padding-left: 0;
    margin-left: 0;
  }

  .hotel .topic2p-suptitle,
  .hotel .topic2p-suptitle li{
    font-size: clamp(14px, 1.8vw, 17px);
  }

  .hotel .topic2p-suptitle li{
    margin-bottom: 8px;
    padding-left: 20px;
  }

  /* ===================== PAGE 3 — LOCATION ===================== */
  .location{
    background-image: url(background/main3-768.webp);
    background-size: cover;
    background-position: right bottom;
    background-repeat: no-repeat;
    background-attachment: scroll;

    padding-bottom: calc(clamp(18px, 4vh, 30px) + env(safe-area-inset-bottom));

    min-height: var(--page-min-h);
    min-height: var(--page-min-h-dyn);

    height: auto;
    overflow: visible;
  }

  .location .topic3p-middle{
    flex-direction: column;
    flex-wrap: nowrap;
    gap: 24px;
  }

  .location .left-side-legend,
  .location .right-side-map{
    flex: 0 0 auto;
    width: 100%;
    min-width: 0;
  }

  .location .topic3p-title-top{
    font-size: clamp(32px, 4.6vw, 52px);
  }

  .location .details3p p{
    font-size: clamp(16px, 2.0vw, 19px);
    line-height: 1.7;
  }

  .location .details3p{
    font-size: clamp(14px, 1.8vw, 17px);
    line-height: 1.65;
  }

  .location .details3p h3{
    font-size: clamp(20px, 2.2vw, 26px);
    margin-top: 18px;
    margin-bottom: 12px;
  }

  .location .details3p ul{
    padding-left: 0;
    margin: 10px 0 0;
  }

  .location .details3p ul li{
    font-size: clamp(14px, 1.8vw, 17px);
    margin-bottom: 8px;
    padding-left: 20px;
  }

  /* легче, чем “65vh”: чтобы Page 3 не раздувалась */
  .location .map iframe{
    height: clamp(326px, 18vh, 370px);
    max-height: 370px;
    border-radius: 12px;
  }

  /* ===================== PAGE 4 — CONTACTS ===================== */
  .contacts{
    background-image: url(background/main4-768.webp);
    background-size: cover;
    background-position: right bottom;
    background-repeat: no-repeat;
    background-attachment: scroll;

    padding-bottom: calc(clamp(18px, 4vh, 30px) + env(safe-area-inset-bottom));

    min-height: var(--page-min-h);
    min-height: var(--page-min-h-dyn);

    height: auto;
    overflow: visible;
  }

  .contacts .content4p{
    flex-direction: column;
    flex-wrap: nowrap;

    max-width: 720px;
    padding: 44px 40px;
    gap: 26px;
  }

  .contacts .right-side-contacts{
    order: 1;
    flex: 0 0 auto;
  }

  /* 3 карточки в один ряд: 30/30/40 */
  .contacts .left-side-contacts{
    order: 2;
    flex: 0 0 auto;

    padding-right: 0;
    position: static;

    display: flex;
    flex-direction: row;
    flex-wrap: nowrap;
    justify-content: center;
    align-items: stretch;

    gap: 14px; /* 2 промежутка = 28px */
    text-align: center;
  }

  .contacts .left-side-contacts::before{
    content: none;
  }

  .contacts .left-side-contacts .details4p{
    margin-bottom: 0;

    flex: 0 1 auto;
    max-width: none;
    min-width: 0;

    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: flex-start;
    text-align: center;

    padding: 12px 10px;
  }

  .contacts .left-side-contacts .address-4p.details4p{
    flex: 0 0 calc((100% - 28px) * 0.30);
    max-width: calc((100% - 28px) * 0.30);
  }

  .contacts .left-side-contacts .phone-4p.details4p{
    flex: 0 0 calc((100% - 28px) * 0.30);
    max-width: calc((100% - 28px) * 0.30);
  }

  .contacts .left-side-contacts .email-4p.details4p{
    flex: 0 0 calc((100% - 28px) * 0.40);
    max-width: calc((100% - 28px) * 0.40);
  }

  .contacts .left-side-contacts .details4p img{
    width: clamp(44px, 5.4vw, 60px);
    height: auto;
    max-width: 100%;
    display: block;
    margin: 0 auto 8px;
  }

  .contacts .left-side-contacts .topic4p{
    text-align: center;
    margin: 0 0 6px 0;
    font-size: clamp(16px, 1.8vw, 18px);
  }

  .contacts .left-side-contacts .text-one-4p,
  .contacts .left-side-contacts .text-two-4p{
    text-align: center;
    margin: 0;

    line-height: 1.25;
    font-size: clamp(13px, 1.55vw, 15.5px);

    white-space: normal;
    overflow: visible;
    text-overflow: clip;
    word-break: break-word;
    overflow-wrap: anywhere;
    max-width: 100%;
  }

  .contacts .left-side-contacts a{
    font-size: inherit;
    color: inherit;

    text-decoration: underline;
    text-underline-offset: 2px;

    display: inline;
    max-width: 100%;

    white-space: normal;
    overflow: visible;
    text-overflow: clip;
    word-break: break-word;
    overflow-wrap: anywhere;
  }

  .contacts .form > .input-box,
  .contacts .form > .guests-group,
  .contacts .form > .phone-group,
  .contacts .form > .button{
    margin-bottom: 26px;
  }

  .contacts .button button{
    min-height: 44px;
    line-height: 1.2;
  }

  /* ===================== LIGHTBOX (768–1023 base) ===================== */
  .lightbox{
    --lb-gutter: clamp(24px, 5.5vw, 70px);
    --lb-max-width: none;
    --lb-media-vh: 84vh;
    --lb-ui-reserve: 160px;

    --lb-arrow-offset: 10px;
    --lb-arrow-size: 44px;
  }

  .lightbox .progress--lightbox{
    max-width: none;
  }
}

/*----------------------------------------- 768-1023 DESKTOP ONLY -----------------------------------------*/
@media screen and (min-width: 768px) and (max-width: 1023.98px) and (hover: hover) and (pointer: fine) {

  /* контейнеры чуть “богаче” по полям на десктопе */
  .container1p,
  .container2p,
  .container3p,
  .container4p{
    padding-left: 40px;
    padding-right: 40px;
  }

  /* фиксированные фоны только для desktop-only */
  .main,
  .hotel,
  .location,
  .contacts{
    background-attachment: fixed;
  }

  /* hover-эффект иконок только для desktop-only */
  .main .top-whatsapp:hover,
  .main .top-viber:hover,
  .main .top-telegram:hover,
  .main .top-phone:hover,
  .main .top-email:hover{
    border-color: whitesmoke;
    transform: translateY(-1px);
  }
}

/*----------------------------------------- mobile devices and devices with touchpads -----------------------------------------*/

/*----------------------------------------- 640-767 MD+TD -----------------------------------------*/
@media screen and (min-width: 640px) and (max-width: 767.98px) {

    :root{
      --pages-eq-cap: clamp(1200px, 100vh, 1500px);
      --pages-eq-cap: clamp(1200px, 100dvh, 1500px);
    }

  /* ===================== ОСНОВНЫЕ КОНТЕЙНЕРЫ ===================== */
  .container1p,
  .container2p,
  .container3p,
  .container4p{
    max-width: 680px;
    margin-left: auto;
    margin-right: auto;
    padding-left: 24px;
    padding-right: 24px;
  }

  /* ===================== PAGE 1 — WELCOME ===================== */
  .main{
    background-image: url(background/main1-640.webp);
    background-size: cover;
    background-position: right bottom;
    background-repeat: no-repeat;
    background-attachment: scroll;

    padding-bottom: 0;

    min-height: var(--page-min-h);
    min-height: var(--page-min-h-dyn);

    height: auto;
    overflow: visible;
    position: relative;
  }

  /* Page1 потоковая колонка: контент сверху, контакты снизу */
  .main .container1p{
    min-height: inherit;
    display: flex;
    flex-direction: column;
    padding-bottom: clamp(16px, 3vh, 32px);
  }

  .main .topic1p-middle{
    order: 1;
    flex: 1 1 auto;

    display: flex;
    flex-direction: column;
    justify-content: flex-start;

    align-items: center;
    text-align: center;

    position: relative;
    padding-bottom: clamp(16px, 3vh, 26px);
  }

  .main .left-side-main{
    flex: 0 0 auto;

    display: flex;
    flex-direction: column;
    justify-content: flex-start;

    align-items: center;
    text-align: center;

    padding-top: clamp(220px, calc(14vh + 150px), 340px);
  }

  .main .main-left-one{
    font-size: clamp(38px, 5.8vw, 54px);
    line-height: 1.08;
  }

  .main .main-left-two{
    font-size: clamp(17px, 2.8vw, 24px);
    line-height: 1.25;
    max-width: 46ch;
    margin-top: 12px;
  }

  .main .right-side-main{
    width: 100%;
    padding: 0;
    position: static;
    transform: none;

    margin-top: clamp(44px, 12vh, 130px);
  }

  .main .bottom-half-wrapper{
    display: flex;
    justify-content: center;
    align-items: flex-end;
    padding: 0 14px 10px;
  }

  .main .main-title-2{
    width: min(640px, 96%);
    text-align: center;
  }

  .main .main-right-one,
  .main .main-right-two{
    margin: 0 auto;
    padding-left: 0 !important;
    text-align: center !important;

    white-space: normal !important;

    font-weight: 600;
    line-height: 1.35;
  }

  .main .main-right-one{
    font-size: clamp(16px, 2.6vw, 22px);
    margin-bottom: 8px;
  }

  .main .main-right-two{
    font-size: clamp(14px, 2.3vw, 20px);
  }

  /* Нижний блок контактов — в потоке, прижат вниз */
  .main .topic1p-top{
    order: 2;
    margin-top: auto;

    position: static;
    z-index: 20;

    display: flex;
    flex-wrap: wrap;

    justify-content: center;
    align-items: center;

    gap: 8px 12px;
    padding: 0 0 calc(12px + env(safe-area-inset-bottom));
    width: 100%;
  }

  .main .header-logo{
    order: 1;
    flex: 0 0 100%;
    display: flex;
    justify-content: center;

    transform: scale(0.70);
    transform-origin: center bottom;
  }

  .main .top-text-title{
    order: 2;
    flex: 0 0 100%;

    padding: 0;
    margin: 6px 0 2px;

    display: flex;
    flex-direction: column;
    align-items: center;

    text-align: center;

    font-size: clamp(14px, 2.15vw, 16px);
    font-weight: 600;
  }

  .main .top-text-title span{
    margin-top: 3px;
    font-size: clamp(13px, 1.95vw, 15px);
    white-space: nowrap;
    opacity: 0.95;
  }

  .main .top-whatsapp,
  .main .top-viber,
  .main .top-telegram,
  .main .top-phone,
  .main .top-email{
    order: 3;
    margin-top: 0;

    width: clamp(84px, 13.5vw, 104px);

    height: auto;
    margin-right: 0;

    border: 3px solid transparent;
    border-radius: 10px;
    padding: 4px;

    display: inline-flex;

    transition: background-color .25s ease, border-color .25s ease, transform .15s ease;
  }

  .main .top-whatsapp a,
  .main .top-viber a,
  .main .top-telegram a,
  .main .top-phone a,
  .main .top-email a{
    display: block;
    width: 100%;
  }

  .main .top-whatsapp img,
  .main .top-viber img,
  .main .top-telegram img,
  .main .top-phone img,
  .main .top-email img{
    width: 100%;
    height: auto;
    max-width: none;
  }

  /* ===================== PAGE 2 — ROOMS & PHOTOS ===================== */
  .hotel{
    background-image: url(background/main2-640.webp);
    background-size: cover;
    background-position: right bottom;
    background-repeat: no-repeat;
    background-attachment: scroll;

    padding-bottom: calc(clamp(18px, 4vh, 28px) + env(safe-area-inset-bottom));

    min-height: var(--page-min-h);
    min-height: var(--page-min-h-dyn);

    height: auto;
    overflow: visible;
  }

  .hotel .topic2p-middle{
    flex-direction: column;
    flex-wrap: nowrap;
    gap: 22px;
  }

  .hotel .topic2p-suptitle{
    padding-left: 0;
    margin-left: 0;
  }

  .hotel .left-side-description,
  .hotel .right-side-photo{
    flex: 0 0 auto;
    width: 100%;
    min-width: 0;
  }

  .hotel .topic2p-title-top{
    font-size: clamp(30px, 5.6vw, 46px);
  }

  .hotel .slideshow-container{
    max-width: 620px;
    aspect-ratio: 16 / 9;
    height: auto;
    margin: 0 auto;
    border-radius: 12px;
    overflow: hidden;
  }

  .hotel .mySlides{
    height: 100% !important;
  }

  .hotel .prev,
  .hotel .next{
    background-color: rgba(0,0,0,0.18);
  }

  .hotel .details2p p{
    font-size: clamp(15px, 2.15vw, 18px);
    line-height: 1.7;
  }

  .hotel .details2p{
    font-size: clamp(13.5px, 1.95vw, 16px);
    line-height: 1.65;
  }

  .hotel .details2p h3{
    font-size: clamp(18px, 2.35vw, 24px);
    margin-top: 16px;
    margin-bottom: 10px;
  }

  .hotel .topic2p-suptitle,
  .hotel .topic2p-suptitle li{
    font-size: clamp(13.5px, 1.95vw, 16px);
  }

  .hotel .topic2p-suptitle li{
    margin-bottom: 8px;
    padding-left: 20px;
  }

  /* ===================== PAGE 3 — LOCATION ===================== */
  .location{
    background-image: url(background/main3-640.webp);
    background-size: cover;
    background-position: right bottom;
    background-repeat: no-repeat;
    background-attachment: scroll;

    padding-bottom: calc(clamp(18px, 4vh, 28px) + env(safe-area-inset-bottom));

    min-height: var(--page-min-h);
    min-height: var(--page-min-h-dyn);

    height: auto;
    overflow: visible;
  }

  .location .topic3p-middle{
    flex-direction: column;
    flex-wrap: nowrap;
    gap: 22px;
  }

  .location .left-side-legend,
  .location .right-side-map{
    flex: 0 0 auto;
    width: 100%;
    min-width: 0;
  }

  .location .topic3p-title-top{
    font-size: clamp(30px, 5.6vw, 46px);
  }

  .location .details3p p{
    font-size: clamp(15px, 2.15vw, 18px);
    line-height: 1.7;
  }

  .location .details3p{
    font-size: clamp(13.5px, 1.95vw, 16px);
    line-height: 1.65;
  }

  .location .details3p h3{
    font-size: clamp(18px, 2.35vw, 24px);
    margin-top: 16px;
    margin-bottom: 10px;
  }

  .location .details3p ul{
    padding-left: 0;
    margin: 10px 0 0;
  }

  .location .details3p ul li{
    font-size: clamp(13.5px, 1.95vw, 16px);
    margin-bottom: 8px;
    padding-left: 20px;
  }

  /* чуть “полегче”, чем было, чтобы Page 3 не раздувалась */
  .location .map iframe{
    height: clamp(300px, 50vh, 440px);
    max-height: 440px;
    border-radius: 12px;
  }

  /* ===================== PAGE 4 — CONTACTS ===================== */
  .contacts{
    background-image: url(background/main4-640.webp);
    background-size: cover;
    background-position: right bottom;
    background-repeat: no-repeat;
    background-attachment: scroll;

    padding-bottom: calc(clamp(18px, 4vh, 28px) + env(safe-area-inset-bottom));

    min-height: var(--page-min-h);
    min-height: var(--page-min-h-dyn);

    height: auto;
    overflow: visible;
  }

  .contacts .content4p{
    flex-direction: column;
    flex-wrap: nowrap;

    max-width: 680px;
    padding: 38px 32px;
    gap: 22px;
  }

  .contacts .right-side-contacts{
    order: 1;
    flex: 0 0 auto;
  }

  /* 3 карточки (Address + Phone + Email) в один ряд */
  .contacts .left-side-contacts{
    order: 2;
    flex: 0 0 auto;

    padding-right: 0;
    position: static;

    display: flex;
    flex-direction: row;
    flex-wrap: nowrap; /* один ряд */
    justify-content: center;
    align-items: stretch;

    gap: 12px;         /* 2 промежутка = 24px */
    text-align: center;
  }

  .contacts .left-side-contacts::before{
    content: none;
  }

  /* Общие карточки */
  .contacts .left-side-contacts .details4p{
    margin-bottom: 0;

    flex: 0 1 auto;
    max-width: none;
    min-width: 0;

    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: flex-start;
    text-align: center;

    padding: 12px 10px;
  }

  /* Ширины в одном ряду: (100% - 24px) * ratio */
    .contacts .left-side-contacts .address-4p.details4p{
      flex: 0 0 calc((100% - 24px) * 0.30);
      max-width: calc((100% - 24px) * 0.30);

      padding: 10px 10px;
    }

    .contacts .left-side-contacts .phone-4p.details4p{
      flex: 0 0 calc((100% - 24px) * 0.30);
      max-width: calc((100% - 24px) * 0.30);
    }

    .contacts .left-side-contacts .email-4p.details4p{
      flex: 0 0 calc((100% - 24px) * 0.40);
      max-width: calc((100% - 24px) * 0.40);
    }

  .contacts .left-side-contacts .details4p img{
    width: clamp(40px, 6.2vw, 54px);
    height: auto;
    max-width: 100%;
    display: block;
    margin: 0 auto 8px;
  }

  .contacts .left-side-contacts .topic4p{
    text-align: center;
    margin: 0 0 6px 0;
    font-size: clamp(15px, 2.2vw, 17px);
  }

  .contacts .left-side-contacts .address-4p.details4p img{
    margin: 0 auto 6px;
  }

  .contacts .left-side-contacts .address-4p.details4p .topic4p{
    margin: 0 0 4px 0;
  }

  .contacts .left-side-contacts .address-4p .text-one-4p,
  .contacts .left-side-contacts .address-4p .text-two-4p{
    line-height: 1.18;
  }

  .contacts .left-side-contacts .text-one-4p,
  .contacts .left-side-contacts .text-two-4p{
    text-align: center;
    margin: 0;

    line-height: 1.25;
    font-size: clamp(12.5px, 1.85vw, 14.5px);

    white-space: normal;
    overflow: visible;
    text-overflow: clip;
    word-break: break-word;
    overflow-wrap: anywhere;
    max-width: 100%;
  }

  .contacts .left-side-contacts a{
    font-size: inherit;
    color: inherit;

    text-decoration: underline;
    text-underline-offset: 2px;

    display: inline;
    max-width: 100%;

    white-space: normal;
    overflow: visible;
    text-overflow: clip;
    word-break: break-word;
    overflow-wrap: anywhere;
  }

  /* Форма — чуть компактнее по вертикали */
  .contacts .form > .input-box,
  .contacts .form > .guests-group,
  .contacts .form > .phone-group,
  .contacts .form > .button{
    margin-bottom: 24px;
  }

  .contacts .button button{
    min-height: 44px;
    line-height: 1.2;
  }

  /* ===================== LIGHTBOX (640–767) ===================== */
  .lightbox{
    --lb-gutter: clamp(18px, 6vw, 50px);
    --lb-max-width: none;
    --lb-media-vh: 84vh;
    --lb-ui-reserve: 160px;

    --lb-arrow-offset: 10px;
    --lb-arrow-size: 40px;
  }

  .lightbox .lightbox-prev,
  .lightbox .lightbox-next{
    background-color: rgba(0,0,0,0.18);
  }

  .lightbox .progress--lightbox{
    max-width: none;
  }
}


/*----------------------------------------- 480-639 MD+TD -----------------------------------------*/
@media screen and (min-width: 480px) and (max-width: 639.98px) {
    
  :root{
    --pages-eq-cap: clamp(1400px, 100vh, 1500px);
    --pages-eq-cap: clamp(1400px, 100dvh, 1500px);
  }

  /* ===================== ОСНОВНЫЕ КОНТЕЙНЕРЫ ===================== */
  .container1p,
  .container2p,
  .container3p,
  .container4p{
    max-width: 600px;
    margin-left: auto;
    margin-right: auto;
    padding-left: 20px;
    padding-right: 20px;
  }
  /* ===================== PAGE 1 — WELCOME ===================== */
  .main{
    background-image: url(background/main1-480.webp);
    background-size: cover;
    background-position: right bottom;
    background-repeat: no-repeat;
    background-attachment: scroll;

    padding-bottom: 0;

    min-height: var(--page-min-h);
    min-height: var(--page-min-h-dyn);

    height: auto;
    overflow: visible;
    position: relative;
  }

  .main .container1p{
    min-height: inherit;
    display: flex;
    flex-direction: column;
    padding-bottom: clamp(16px, 3vh, 32px);
  }

  .main .topic1p-middle{
    order: 1;
    flex: 1 1 auto;

    display: flex;
    flex-direction: column;
    justify-content: flex-start;

    align-items: center;
    text-align: center;

    position: relative;
    padding-bottom: clamp(14px, 3vh, 22px);
  }

  .main .left-side-main{
    flex: 0 0 auto;

    display: flex;
    flex-direction: column;
    justify-content: flex-start;

    align-items: center;
    text-align: center;

    padding-top: clamp(220px, calc(14vh + 170px), 360px);
  }

  .main .main-left-one{
    font-size: clamp(34px, 7.0vw, 50px);
    line-height: 1.08;
  }

  .main .main-left-two{
    font-size: clamp(16px, 3.25vw, 22px);
    line-height: 1.25;
    max-width: 44ch;
    margin-top: 12px;
  }

  .main .right-side-main{
    width: 100%;
    padding: 0;
    position: static;
    transform: none;

    margin-top: clamp(210px, calc(12vh + 180px), 360px);
  }

  .main .bottom-half-wrapper{
    display: flex;
    justify-content: center;
    align-items: flex-end;
    padding: 0 12px 10px;
  }

  .main .main-title-2{
    width: min(560px, 96%);
    text-align: center;
  }

  .main .main-right-one,
  .main .main-right-two{
    margin: 0 auto;
    padding-left: 0 !important;
    text-align: center !important;

    white-space: normal !important;

    font-weight: 600;
    line-height: 1.35;
  }

  .main .main-right-one{
    font-size: clamp(15px, 3.0vw, 21px);
    margin-bottom: 8px;
  }

  .main .main-right-two{
    font-size: clamp(13px, 2.7vw, 19px);
  }

  .main .topic1p-top{
    order: 2;
    margin-top: auto;

    position: static;
    z-index: 20;

    display: flex;
    flex-wrap: wrap;

    justify-content: center;
    align-items: center;

    gap: 8px 12px;
    padding: 0 0 calc(10px + env(safe-area-inset-bottom));
    width: 100%;
  }

  .main .header-logo{
    order: 1;
    flex: 0 0 100%;
    display: flex;
    justify-content: center;

    transform: scale(0.64);
    transform-origin: center bottom;
  }

  .main .top-text-title{
    order: 2;
    flex: 0 0 100%;

    padding: 0;
    margin: 6px 0 2px;

    display: flex;
    flex-direction: column;
    align-items: center;

    text-align: center;

    font-size: clamp(14px, 2.45vw, 16px);
    font-weight: 600;
  }

  .main .top-text-title span{
    margin-top: 3px;
    font-size: clamp(13px, 2.2vw, 15px);
    white-space: nowrap;
    opacity: 0.95;
  }

  .main .top-whatsapp,
  .main .top-viber,
  .main .top-telegram,
  .main .top-phone,
  .main .top-email{
    order: 3;
    margin-top: 0;

    width: clamp(76px, 15.5vw, 98px);

    height: auto;
    margin-right: 0;

    border: 3px solid transparent;
    border-radius: 10px;
    padding: 4px;

    display: inline-flex;

    transition: background-color .25s ease, border-color .25s ease, transform .15s ease;
  }

  .main .top-whatsapp a,
  .main .top-viber a,
  .main .top-telegram a,
  .main .top-phone a,
  .main .top-email a{
    display: block;
    width: 100%;
  }

  .main .top-whatsapp img,
  .main .top-viber img,
  .main .top-telegram img,
  .main .top-phone img,
  .main .top-email img{
    width: 100%;
    height: auto;
    max-width: none;
  }

  /* ===================== PAGE 2 — ROOMS & PHOTOS ===================== */
  .hotel{
    background-image: url(background/main2-480.webp);
    background-size: cover;
    background-position: right bottom;
    background-repeat: no-repeat;
    background-attachment: scroll;

    padding-bottom: calc(clamp(18px, 4vh, 28px) + env(safe-area-inset-bottom));

    min-height: var(--page-min-h);
    min-height: var(--page-min-h-dyn);

    height: auto;
    overflow: visible;
  }

  .hotel .topic2p-middle{
    flex-direction: column;
    flex-wrap: nowrap;
    gap: 20px;
  }

  .hotel .left-side-description,
  .hotel .right-side-photo{
    flex: 0 0 auto;
    width: 100%;
    min-width: 0;
  }

  .hotel .topic2p-title-top{
    font-size: clamp(28px, 6.2vw, 44px);
  }

  .hotel .slideshow-container{
    max-width: 560px;
    aspect-ratio: 16 / 9;
    height: auto;
    margin: 0 auto;
    border-radius: 12px;
    overflow: hidden;
  }

  .hotel .mySlides{
    height: 100% !important;
  }

  .hotel .slide-caption{
    font-size: clamp(10.5px, 2.15vw, 12.5px);
  }

  .hotel .prev,
  .hotel .next{
    padding: 10px;
    font-size: 22px;
    background-color: rgba(0,0,0,0.18);
  }

  .hotel .play-button{
    width: 74px;
    height: 74px;
  }

  .hotel .open-lightbox-btn{
    top: 6px;
    right: 6px;

    width: 28px;
    height: 28px;

    border-radius: 7px;
    border-width: 2px;
  }

  .hotel .open-lightbox-btn::before{
    transform: scale(0.72);
  }

  .hotel .details2p p{
    font-size: clamp(14.5px, 2.55vw, 17.5px);
    line-height: 1.7;
  }

  .hotel .details2p{
    font-size: clamp(13px, 2.25vw, 15.5px);
    line-height: 1.65;
  }

  .hotel .details2p h3{
    font-size: clamp(17px, 2.75vw, 23px);
    margin-top: 16px;
    margin-bottom: 10px;
  }

  .hotel .topic2p-suptitle{
    padding-left: 0;
    margin-left: 0;
  }

  .hotel .topic2p-suptitle,
  .hotel .topic2p-suptitle li{
    font-size: clamp(13px, 2.25vw, 15.5px);
  }

  .hotel .topic2p-suptitle li{
    margin-bottom: 8px;
    padding-left: 20px;
  }

  /* ===================== PAGE 3 — LOCATION ===================== */
  .location{
    background-image: url(background/main3-480.webp);
    background-size: cover;
    background-position: right bottom;
    background-repeat: no-repeat;
    background-attachment: scroll;

    padding-bottom: calc(clamp(18px, 4vh, 28px) + env(safe-area-inset-bottom));

    min-height: var(--page-min-h);
    min-height: var(--page-min-h-dyn);

    height: auto;
    overflow: visible;
  }

  .location .topic3p-middle{
    flex-direction: column;
    flex-wrap: nowrap;
    gap: 20px;
  }

  .location .left-side-legend,
  .location .right-side-map{
    flex: 0 0 auto;
    width: 100%;
    min-width: 0;
  }

  .location .topic3p-title-top{
    font-size: clamp(28px, 6.2vw, 44px);
  }

  .location .details3p p{
    font-size: clamp(14.5px, 2.55vw, 17.5px);
    line-height: 1.7;
  }

  .location .details3p{
    font-size: clamp(13px, 2.25vw, 15.5px);
    line-height: 1.65;
  }

  .location .details3p h3{
    font-size: clamp(17px, 2.75vw, 23px);
    margin-top: 16px;
    margin-bottom: 10px;
  }

  .location .details3p ul{
    padding-left: 0;
    margin: 10px 0 0;
  }

  .location .details3p ul li{
    font-size: clamp(13px, 2.25vw, 15.5px);
    margin-bottom: 8px;
    padding-left: 20px;
  }

  .location .map iframe{
    height: clamp(260px, 48vh, 380px);
    max-height: 380px;
    border-radius: 12px;
  }

  /* ===================== PAGE 4 — CONTACTS ===================== */
  .contacts{
    background-image: url(background/main4-480.webp);
    background-size: cover;
    background-position: right bottom;
    background-repeat: no-repeat;
    background-attachment: scroll;

    padding-bottom: calc(clamp(18px, 4vh, 28px) + env(safe-area-inset-bottom));

    min-height: var(--page-min-h);
    min-height: var(--page-min-h-dyn);

    height: auto;
    overflow: visible;
  }

  .contacts .content4p{
    flex-direction: column;
    flex-wrap: nowrap;

    max-width: 600px;
    padding: 34px 26px;
    gap: 18px;
  }

  .contacts .right-side-contacts{
    order: 1;
    flex: 0 0 auto;
  }

  .contacts .left-side-contacts{
    order: 2;
    flex: 0 0 auto;

    padding-right: 0;
    position: static;

    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
    justify-content: center;
    align-items: stretch;
    gap: 10px;

    text-align: center;
  }

  .contacts .left-side-contacts::before{
    content: none;
  }

  .contacts .left-side-contacts .details4p{
    margin-bottom: 0;

    flex: 1 1 calc((100% - 10px) / 2);
    max-width: calc((100% - 10px) / 2);
    min-width: 0;

    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: flex-start;
    text-align: center;

    padding: 10px 8px;
  }

  .contacts .left-side-contacts .details4p img{
    width: clamp(38px, 7vw, 52px);
    height: auto;
    max-width: 100%;
    display: block;
    margin: 0 auto 8px;
  }

  .contacts .left-side-contacts .topic4p{
    text-align: center;
    margin: 0 0 6px 0;
    font-size: clamp(14.5px, 2.55vw, 16.5px);
  }

  .contacts .left-side-contacts .email-4p.details4p{
    flex-basis: 100%;
    max-width: 100%;
  }

  .contacts .left-side-contacts .address-4p.details4p{
    flex: 0 0 calc((100% - 10px) * 0.56);
    max-width: calc((100% - 10px) * 0.56);
    padding: 8px 8px;
  }

  .contacts .left-side-contacts .phone-4p.details4p{
    flex: 0 0 calc((100% - 10px) * 0.44);
    max-width: calc((100% - 10px) * 0.44);
  }

  .contacts .left-side-contacts .address-4p.details4p img{
    margin: 0 auto 6px;
  }

  .contacts .left-side-contacts .address-4p.details4p .topic4p{
    margin: 0 0 4px 0;
  }

  .contacts .left-side-contacts .address-4p .text-one-4p,
  .contacts .left-side-contacts .address-4p .text-two-4p{
    line-height: 1.18;
  }

  .contacts .left-side-contacts .text-one-4p,
  .contacts .left-side-contacts .text-two-4p{
    text-align: center;
    margin: 0;
    line-height: 1.25;
    font-size: clamp(12px, 2.15vw, 14px);

    white-space: normal;
    overflow: visible;
    text-overflow: clip;
    word-break: break-word;
    overflow-wrap: anywhere;
    max-width: 100%;
  }

  .contacts .left-side-contacts a{
    font-size: inherit;
    color: inherit;

    text-decoration: underline;
    text-underline-offset: 2px;

    display: inline;
    max-width: 100%;

    white-space: normal;
    overflow: visible;
    text-overflow: clip;
    word-break: break-word;
    overflow-wrap: anywhere;
  }

  .contacts .form > .input-box,
  .contacts .form > .guests-group,
  .contacts .form > .phone-group,
  .contacts .form > .button{
    margin-bottom: 22px;
  }

/* 
  PHONE GROUP — строковый режим колонкой внутри 480–639.
*/
    
.contacts .phone-group{
  flex-direction: column;
  gap: 12px;
}

.contacts .phone-group > .country-select-wrapper,
.contacts .phone-group > .input-box{
  width: 100%;
  flex: 1 1 100%;
  min-width: 0;
}

.contacts #country_search,
.contacts #country_code,
.contacts #user_phone{
  width: 100%;
}
    
  /* ===================== LIGHTBOX (480–639) ===================== */

 .lightbox{
    --lb-gutter: clamp(18px, 6vw, 50px);
    --lb-max-width: none;
    --lb-media-vh: 84vh;
    --lb-ui-reserve: 160px;

    --lb-arrow-offset: 6px;
    --lb-arrow-size: 26px;
  }

  .lightbox .lightbox-caption{
    font-size: clamp(14px, 2.6vw, 16px);
  }

  .lightbox .lightbox-close{
    width: 40px;
    height: 40px;
    top: 10px;
    right: 10px;
    font-size: 28px;
  }

  .lightbox .lightbox-prev,
  .lightbox .lightbox-next{
    background-color: rgba(0,0,0,0.18);
    width: 40px;
    height: 40px;
    padding: 0;
    line-height: 40px;
    font-size: var(--lb-arrow-size);
  }

  .lightbox .progress--lightbox{
    max-width: none;
  }
}

/*----------------------------------------- 320-479 MD+TD -----------------------------------------*/
@media screen and (min-width: 320px) and (max-width: 479.98px) {

  :root{
    --pages-eq-cap: clamp(1400px, 100vh, 1600px);
    --pages-eq-cap: clamp(1400px, 100dvh, 1600px);
  }
    
  /* ===================== ОСНОВНЫЕ КОНТЕЙНЕРЫ ===================== */
  .container1p,
  .container2p,
  .container3p,
  .container4p {
    max-width: 440px;
    margin-left: auto;
    margin-right: auto;
    padding-left: 16px;
    padding-right: 16px;
  }

  /* ===================== PAGE 1 — WELCOME ===================== */
  .main{
    background-image: url(background/main1-320.webp);
    background-size: cover;
    background-position: right bottom;
    background-repeat: no-repeat;
    background-attachment: scroll;

    /* нижний блок теперь в потоке, поэтому резерв через padding-bottom не нужен */
    padding-bottom: 0;

    min-height: var(--page-min-h);
    min-height: var(--page-min-h-dyn);

    height: auto;
    overflow: visible;
    position: relative;
  }

  /* Page1 потоковая колонка: контент сверху, контакты снизу */
  .main .container1p{
    min-height: inherit;
    display: flex;
    flex-direction: column;
    padding-bottom: clamp(16px, 3vh, 32px);
  }

   /* Основной контент (Welcome + Ideal...) */
  .main .topic1p-middle{
    order: 1;
    flex: 1 1 auto;

    display: flex;
    flex-direction: column;
    justify-content: flex-start;

    /* расстояние между main-title-1 и main-title-2 */
    gap: clamp(44px, 5vh, 90px);

    align-items: center;
    text-align: center;

    position: relative;
    padding-bottom: clamp(14px, 3vh, 22px);
  }

  /* верхний текст: Welcome... */
  .main .left-side-main{
    flex: 0 0 auto;

    display: flex;
    flex-direction: column;
    justify-content: flex-start;

    align-items: center;
    text-align: center;

    padding-top: clamp(260px, calc(12vh + 180px), 420px);
    padding-bottom: clamp(48px, 8vh, 96px);
  }

  .main .main-left-one{
    font-size: clamp(34px, 8.2vw, 46px);
    line-height: 1.08;
  }

  .main .main-left-two{
    font-size: clamp(15px, 4.2vw, 20px);
    line-height: 1.25;
    max-width: 42ch;
    margin-top: 12px;
  }

  /* нижний текст: Ideal seafront... */
  .main .right-side-main{
    width: 100%;
    padding: 0;
    position: static;
    transform: none;
  }

  .main .bottom-half-wrapper{
    display: flex;
    justify-content: center;
    align-items: flex-end;
    padding: 0 12px 10px;
  }

  .main .main-title-2{
    width: min(440px, 96%);
    text-align: center;
    margin-top: 0;
  }

  .main .main-right-one,
  .main .main-right-two{
    margin: 0 auto;
    padding-left: 0 !important;
    text-align: center !important;

    white-space: normal !important;

    font-weight: 600;
    line-height: 1.35;
  }

  .main .main-right-one{
    font-size: clamp(15px, 4.1vw, 18px);
    margin-bottom: 10px;
  }

  .main .main-right-two{
    font-size: clamp(13px, 3.7vw, 16px);
    margin-top: 0;
  }

  /* Нижний блок контактов — в потоке, прижат вниз */
  .main .topic1p-top{
    order: 2;
    margin-top: auto;

    position: static;
    z-index: 20;

    display: flex;
    flex-wrap: wrap;

    justify-content: center;
    align-items: center;

    row-gap: 8px;
    column-gap: clamp(10px, 3.4vw, 16px);

    padding: 0 0 calc(10px + env(safe-area-inset-bottom));
    width: 100%;
  }

  .main .header-logo{
    order: 1;
    flex: 0 0 100%;
    display: flex;
    justify-content: center;

    transform: scale(0.80);
    transform-origin: center bottom;
  }

  .main .top-text-title{
    order: 2;
    flex: 0 0 100%;

    padding: 0;
    margin: 6px 0 2px;

    display: flex;
    flex-direction: column;
    align-items: center;

    text-align: center;

    font-size: clamp(14px, 4.0vw, 16px);
    font-weight: 600;
  }

  .main .top-text-title span{
    margin-top: 3px;
    font-size: clamp(13px, 3.6vw, 15px);
    white-space: nowrap;
    opacity: 0.95;
  }

  /* иконки: 3 в ряд, ниже 2 (по центру) */
  .main .top-whatsapp,
  .main .top-viber,
  .main .top-telegram,
  .main .top-phone,
  .main .top-email{
    order: 3;

    flex: 0 0 calc((100% - (2 * clamp(10px, 3.4vw, 16px))) / 3);
    width: auto;
    margin-top: 0;

    border: 2px solid transparent;
    border-radius: 10px;
    padding: 3px;

    display: flex;
    justify-content: center;
    align-items: center;
  }

  .main .top-whatsapp a,
  .main .top-viber a,
  .main .top-telegram a,
  .main .top-phone a,
  .main .top-email a{
    display: block;
    width: clamp(62px, 16.5vw, 78px);
    margin: 0 auto;
    min-width: 44px;
    min-height: 44px;
  }

  .main .top-whatsapp img,
  .main .top-viber img,
  .main .top-telegram img,
  .main .top-phone img,
  .main .top-email img{
    width: 100%;
    height: auto;
    max-width: none;
  }

  /* ===================== PAGE 2 — ROOMS & PHOTOS ===================== */
  .hotel {
    background-image: url(background/main2-320.webp);
    background-size: cover;
    background-position: right bottom;
    background-repeat: no-repeat;
    background-attachment: scroll;
    padding: clamp(18px, 4vh, 28px) 0; /* вместо 40px 0 */
    padding-bottom: calc(clamp(18px, 4vh, 28px) + env(safe-area-inset-bottom));
      
    min-height: var(--page-min-h);
    min-height: var(--page-min-h-dyn);
      
    height: auto;
    overflow: visible;
  }

  .hotel .topic2p-middle {
    flex-direction: column;
    flex-wrap: nowrap;
    gap: 18px;
  }

  .hotel .left-side-description,
  .hotel .right-side-photo {
    flex: 0 0 auto;
    width: 100%;
    min-width: 0;
  }

  .hotel .topic2p-title-top {
    font-size: clamp(26px, 5.8vw, 42px); /* было 28–44 */
    margin-bottom: clamp(14px, 3vh, 22px); /* вместо 40px */
  }

  .hotel .slideshow-container {
    max-width: 440px;
    aspect-ratio: 16 / 9;
    height: auto;
    margin: 0 auto;
    border-radius: 12px;
    overflow: hidden;
  }

  .hotel .mySlides {
    height: 100% !important;
  }

  .hotel .details2p p {
    font-size: clamp(14px, 2.45vw, 16.8px); /* было 14.5–17.5 */
    line-height: 1.7;
  }

  .hotel .details2p {
    font-size: clamp(12.5px, 2.15vw, 15px); /* было 13–15.5 */
    line-height: 1.65;
  }

  .hotel .details2p h3 {
    font-size: clamp(16px, 2.6vw, 22px); /* было 17–23 */
    margin-top: 14px;
    margin-bottom: 10px;
  }

  .hotel .topic2p-suptitle,
  .hotel .topic2p-suptitle li {
    font-size: clamp(12.5px, 2.15vw, 15px); /* было 13–15.5 */
  }

  .hotel .topic2p-suptitle{
    padding-left: 0;   /* было 30px в базе */
    margin-left: 0;
  }

  .hotel .topic2p-suptitle li{
    margin-bottom: 8px;
    padding-left: 15px;
  }

  .hotel .topic2p-suptitle li::before{
    left: 0px;
    font-size: clamp(14px, 3vw, 16px);
  }

  .hotel .prev,
  .hotel .next{
    padding: 10px;
    font-size: 22px;
    background-color: rgba(0,0,0,0.18);
  }

  .hotel .play-button{
    width: 74px;
    height: 74px;
  }

  .hotel .numbertext{
    font-size: clamp(7px, 2vw, 8px);
    padding: 5px 8px;
    top: 8px;
    left: 8px;
  }

  .hotel .slide-caption{
    font-size: clamp(9px, 2.6vw, 11px);
    line-height: 1.25;
    padding: 6px 10px;
    bottom: 18px;

    max-width: 92%;
    white-space: normal;
    text-align: center;
  }

  .hotel .open-lightbox-btn{
    top: 6px;
    right: 6px;

    width: 28px;
    height: 28px;

    border-radius: 7px;
    border-width: 2px;
  }
  .hotel .open-lightbox-btn::before{
    transform: scale(0.72);
    transform-origin: center;
  }

  /* ===================== PAGE 3 — LOCATION ===================== */
  .location {
    background-image: url(background/main3-320.webp);
    background-size: cover;
    background-position: right bottom;
    background-repeat: no-repeat;
    background-attachment: scroll;
    padding: clamp(18px, 4vh, 28px) 0; /* вместо 40px 0 */
    padding-bottom: calc(clamp(18px, 4vh, 28px) + env(safe-area-inset-bottom));
      
    min-height: var(--page-min-h);
    min-height: var(--page-min-h-dyn);
      
    height: auto;
    overflow: visible;
  }

  .location .topic3p-middle {
    flex-direction: column;
    flex-wrap: nowrap;
    gap: 18px;
  }

  .location .left-side-legend,
  .location .right-side-map {
    flex: 0 0 auto;
    width: 100%;
    min-width: 0;
  }

  .location .topic3p-title-top {
    font-size: clamp(26px, 5.8vw, 42px);
    margin-bottom: clamp(14px, 3vh, 22px); /* вместо 40px */
  }

  .location .details3p p {
    font-size: clamp(14px, 2.45vw, 16.8px);
    line-height: 1.7;
  }

  .location .details3p {
    font-size: clamp(12.5px, 2.15vw, 15px);
    line-height: 1.65;
  }

  .location .details3p h3 {
    font-size: clamp(16px, 2.6vw, 22px);
    margin-top: 14px;
    margin-bottom: 6px;
  }
    
  .location .details3p h3 + ul{
    margin-top: 0;
  }

  .location .details3p ul li {
    font-size: clamp(12.5px, 2.15vw, 15px);
    margin-bottom: 8px;
    padding-left: 15px;
  }

  .location .details3p ul{
    padding-left: 0;
    margin: 10px 0 0;
  }

  .location .details3p ul li::before{
    left: 0;
  }

  .location .map iframe {
    height: clamp(260px, 48vh, 380px);
    max-height: 480px;
    border-radius: 12px;
  }

  /* ===================== PAGE 4 — CONTACTS ===================== */
  .contacts { 
    background-image: url(background/main4-320.webp);
    background-size: cover;
    background-position: right bottom;
    background-repeat: no-repeat;
    background-attachment: scroll;

    padding: clamp(18px, 4vh, 28px) 0;
    padding-bottom: calc(clamp(18px, 4vh, 28px) + env(safe-area-inset-bottom));

    min-height: var(--page-min-h);
    min-height: var(--page-min-h-dyn);

    height: auto;
    overflow: visible; 
  }

  .contacts .content4p{
    flex-direction: column;
    flex-wrap: nowrap;

    max-width: 440px;
    padding: 28px 16px;
    gap: 18px;
  }

  .contacts .right-side-contacts{
    order: 1;
    flex: 0 0 auto;
    font-size: clamp(22px, 5.2vw, 28px);
    margin-bottom: 10px;
  }

  .contacts .right-side-contacts p{
    font-size: clamp(13px, 2.4vw, 15px);
    line-height: 1.6;
    margin-bottom: 16px;
  }
    
  .contacts .left-side-contacts{
    order: 2;
    flex: 0 0 auto;

    padding-right: 0;
    position: static;

    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
    justify-content: center;
    align-items: stretch;

    gap: 10px;
    text-align: center;
  }

  .contacts .left-side-contacts::before{
    content: none;
  }

  .contacts .left-side-contacts .details4p{
    margin-bottom: 0;

    flex: 1 1 calc((100% - 10px) / 2);
    max-width: calc((100% - 10px) / 2);
    min-width: 0;

    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: flex-start;
    text-align: center;

    padding: 9px 8px; /* было 10px 8px */
  }

  .contacts .left-side-contacts .email-4p.details4p{
    flex-basis: 100%;
    max-width: 100%;
  }

  .contacts .left-side-contacts .address-4p.details4p{
    flex: 0 0 calc((100% - 10px) * 0.48);
    max-width: calc((100% - 10px) * 0.48);
    padding: 8px 8px;
    text-align: center;
  }

  .contacts .left-side-contacts .phone-4p.details4p{
    flex: 0 0 calc((100% - 10px) * 0.52);
    max-width: calc((100% - 10px) * 0.52);
  }

  .contacts .left-side-contacts .details4p img{
    width: clamp(36px, 9vw, 50px);
    height: auto;
    max-width: 100%;
    display: block;
    margin: 0 auto 6px; /* было 0 auto 8px */
  }

  .contacts .left-side-contacts .address-4p.details4p img{
    margin: 0 auto 6px;
  }

    .contacts .left-side-contacts .topic4p{
      margin: 0 0 4px 0;
      font-size: clamp(14px, 3.4vw, 16px);
      line-height: 1.15;
    }

  .contacts .left-side-contacts .address-4p.details4p .topic4p{
    margin: 0 0 4px 0;
  }

  .contacts .left-side-contacts .address-4p .text-one-4p,
  .contacts .left-side-contacts .address-4p .text-two-4p{
    line-height: 1.18;
  }

  .contacts .left-side-contacts .text-one-4p,
  .contacts .left-side-contacts .text-two-4p{
    margin: 0;
    line-height: 1.18;
    font-size: clamp(12px, 3.2vw, 14px);

    white-space: normal;
    overflow: visible;
    text-overflow: clip;

    word-break: break-word;
    overflow-wrap: anywhere;
    max-width: 100%;
  }

  .contacts .left-side-contacts a{
    color: inherit;
    text-decoration: underline;
    text-underline-offset: 2px;

    white-space: normal;
    overflow: visible;
    text-overflow: clip;

    word-break: break-word;
    overflow-wrap: anywhere;
    max-width: 100%;
  }

  .contacts .form > .input-box,
  .contacts .form > .guests-group,
  .contacts .form > .phone-group,
  .contacts .form > .button{
    margin-bottom: 18px;
  }

  .contacts .form .input-box input,
  .contacts .form .input-box textarea,
  .contacts .form .input-box #country_search,
  .contacts .form .input-box select{
    padding: 12px 14px;
    font-size: 16px;
  }

  .contacts .form .input-box label{
    top: 12px;
    left: 14px;
    font-size: 14px;
  }

  .contacts .form .input-box input:focus + label,
  .contacts .form .input-box input:not(:placeholder-shown) + label,
  .contacts .form .input-box textarea:focus + label,
  .contacts .form .input-box textarea:not(:placeholder-shown) + label,
  .contacts .form .input-box #country_search:focus + label,
  .contacts .form .input-box #country_search:not(:placeholder-shown) + label,
  .contacts .form .input-box select:focus + label,
  .contacts .form .input-box select:valid + label,
  .contacts .form .input-box #adults:invalid + label,
  .contacts .form .input-box :where(#user_name, #user_email, #country_search, #user_phone, #user_message) + label,
  .contacts .form .input-box input[type="date"]:focus + label,
  .contacts .form .input-box input[type="date"]:valid + label{
    top: -9px;
    left: 10px;
    font-size: 11px;
  }

  .contacts .guests-group{
    flex-direction: column;
    gap: 12px;
  }

  .contacts .phone-group{
    flex-direction: column;
    gap: 12px;
  }

  .contacts .phone-group > div:first-child,
  .contacts .phone-group > div:last-child{
    flex: 1 1 100%;
    min-width: 0;
  }

  .contacts .guests-group > .input-box,
  .contacts .phone-group > .input-box,
  .contacts .phone-group > .country-select-wrapper{
    width: 100%;
    flex: 1 1 100%;
    min-width: 0;
  }

  .contacts #adults,
  .contacts #children,
  .contacts #country_search,
  .contacts #country_code,
  .contacts #user_phone{
    width: 100%;
  }
    
  .contacts .button button{
    width: 100%;
    justify-content: center;
    padding: 12px 22px;
    min-height: 44px;
    line-height: 1.2;
  }

  .contacts .phone-group label[for="user_phone"]{
    font-size: 14px;
    line-height: 1.1;
  }

  .contacts .phone-group #user_phone:focus + label,
  .contacts .phone-group #user_phone:not(:placeholder-shown) + label{
    font-size: 10px;
  }

  .contacts .error-message{
    font-size: 12.5px;
    line-height: 1.25;
  }

  /* ===================== LIGHTBOX (320–479) ===================== */
  .lightbox{
    --lb-gutter: clamp(14px, 5vw, 30px);
    --lb-max-width: none;
    --lb-media-vh: 84vh;
    --lb-ui-reserve: 140px;
    --lb-arrow-offset: 6px;
    --lb-arrow-size: 26px;
  }

  .lightbox .lightbox-caption{
    font-size: clamp(12px, 3.2vw, 14px);
    line-height: 1.2;
    margin-top: 12px;
    padding: 0 10px;
    max-width: 100%;
    white-space: normal;
  }

 .lightbox .lightbox-close{
    width: 40px;
    height: 40px;
    top: 10px;
    right: 10px;
    font-size: 28px;
  }

  .lightbox .lightbox-prev,
  .lightbox .lightbox-next{
    background-color: rgba(0,0,0,0.18);
    width: 40px;
    height: 40px;
    padding: 0;
    line-height: 40px;
    font-size: var(--lb-arrow-size);
  }

  .lightbox .progress--lightbox{
    height: 6px;
    margin-top: 10px;
    max-width: none;
  }

  .lightbox .lightbox-video-wrapper .play-button{
    width: 86px;
    height: 86px;
    font-size: 44px;
  }
  .lightbox .lightbox-video-wrapper .play-button::before{
    font-size: 44px;
  }
}

/* ======================================== ANTI-STICKY HOVER (TOUCH) ======================================== */
@media (hover: none) {

  /* Header icons (prevent sticky hover on touch devices) */
  .main .top-whatsapp:hover,
  .main .top-viber:hover,
  .main .top-telegram:hover,
  .main .top-phone:hover,
  .main .top-email:hover {
    background-color: transparent;
    border-color: transparent;
    transform: none;
  }

  .main .top-whatsapp:active,
  .main .top-viber:active,
  .main .top-telegram:active,
  .main .top-phone:active,
  .main .top-email:active {
    background-color: rgba(0, 0, 0, 0.18);
    border-color: rgba(255, 255, 255, 0.35);
    transform: scale(0.98);
  }

  /* Play button (prevent sticky hover)
     IMPORTANT: keep translate(-50%, -50%) to avoid shifting */
  .hotel .play-button:not(.hidden):hover,
  .lightbox .lightbox-video-wrapper .play-button:not(.hidden):hover {
    transform: translate(-50%, -50%);
    box-shadow: 0 4px 15px rgba(255, 255, 255, 0.3);
  }

  .hotel .play-button:not(.hidden):active,
  .lightbox .lightbox-video-wrapper .play-button:not(.hidden):active {
    transform: translate(-50%, -50%) scale(0.98);
    box-shadow: 0 6px 18px rgba(255, 255, 255, 0.36);
  }

  /* Slider arrows (prevent sticky hover)
     IMPORTANT: keep translateY(-50%) to avoid shifting */
  .hotel .slideshow-container .prev:hover,
  .hotel .slideshow-container .next:hover {
    background-color: rgba(0,0,0,0.5);
    transform: translateY(-50%);
  }

  .hotel .slideshow-container .prev:active,
  .hotel .slideshow-container .next:active {
    background-color: rgba(0, 0, 0, 0.7);
    transform: translateY(-50%) scale(0.98);
  }

  /* Lightbox arrows (prevent sticky hover)
     IMPORTANT: keep translateY(-50%) to avoid shifting */
  .lightbox .lightbox-prev:hover,
  .lightbox .lightbox-next:hover {
    background-color: rgba(0,0,0,0.18);
    transform: translateY(-50%);
  }

  .lightbox .lightbox-prev:active,
  .lightbox .lightbox-next:active {
    background-color: rgba(0,0,0,0.28);
    transform: translateY(-50%) scale(0.98);
  }

  /* Lightbox close button */
  .lightbox .lightbox-close:hover {
    background-color: rgba(0,0,0,0.18);
    transform: none;
  }

  .lightbox .lightbox-close:active {
    background-color: rgba(0,0,0,0.28);
    transform: scale(0.98);
  }

  /* Open lightbox button (on slider) */
  .hotel .open-lightbox-btn:hover {
    background-color: rgba(0,0,0,0.18);
    transform: none;
  }

  .hotel .open-lightbox-btn:active {
    background-color: rgba(0,0,0,0.28);
    transform: scale(0.98);
  }
}