
:root{
  --blue:#0b5cff;--blue-dark:#0048d9;--navy:#07152f;--text:#101828;--muted:#667085;
  --line:#e4e7ec;--line-strong:#d0d5dd;--bg:#f5f7fb;--white:#fff;--green:#12b76a;
  --danger:#d92d20;--warning:#f79009;--radius:20px;--shadow:0 14px 38px rgba(16,24,40,.08);
  --container:1180px
}
*{box-sizing:border-box}
html.ro-hotel-boot{background:#fff}
html.ro-hotel-boot body{transition:opacity .14s ease}
html.ro-hotel-boot-pending body{visibility:hidden!important;opacity:0!important}
html.ro-hotel-boot-ready body{visibility:visible;opacity:1}
@media(prefers-reduced-motion:reduce){html.ro-hotel-boot body{transition:none}}
html{scroll-behavior:smooth}
body{margin:0;font-family:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--text);background:var(--bg);line-height:1.45}
a{color:inherit;text-decoration:none}
button,input,select,textarea{font:inherit}
img{display:block;max-width:100%}
.container{width:min(var(--container),calc(100% - 32px));margin:auto}
.header{position:sticky;top:0;z-index:40;background:rgba(255,255,255,.96);backdrop-filter:blur(14px);border-bottom:1px solid var(--line)}
.header-inner{height:72px;display:flex;align-items:center;justify-content:space-between;gap:24px}
.logo{display:flex;align-items:center;gap:10px;font-weight:850;letter-spacing:-.02em}
.logo img{width:34px;height:34px}
.nav{display:flex;gap:22px;font-size:14px}
.nav a{color:#344054}
.header-actions{display:flex;gap:10px}
.btn,.btn-outline,.btn-ghost{border:0;border-radius:12px;padding:13px 18px;font-weight:750;cursor:pointer;transition:.2s ease}
.btn{background:var(--blue);color:#fff}
.btn:hover{background:var(--blue-dark);transform:translateY(-1px)}
.btn-outline{background:#fff;border:1px solid var(--line-strong)}
.btn-ghost{background:#f2f4f7}
.btn-block{width:100%}
.steps{background:#fff;border-bottom:1px solid var(--line)}
.steps-inner{display:grid;grid-template-columns:repeat(5,1fr);gap:10px;padding:14px 0}
.step{position:relative;font-size:13px;color:#98a2b3;text-align:center;padding:7px 8px;border-radius:10px}
.step.active{color:var(--blue);background:#eef4ff;font-weight:800}
.page{padding:34px 0 72px}
.page-head{display:flex;justify-content:space-between;align-items:end;gap:20px;margin-bottom:24px}
.page-title{font-size:36px;line-height:1.12;letter-spacing:-.035em;margin:0 0 8px}
.subtitle{color:var(--muted);margin:0}
.card{background:#fff;border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow)}
.hero{min-height:420px;background:linear-gradient(90deg,rgba(4,15,38,.8),rgba(4,15,38,.18)),url('assets/hero.jpg') center/cover;border-radius:28px;padding:54px;color:#fff;display:flex;align-items:end;margin-bottom:22px}
.hero h1{font-size:52px;line-height:1.02;letter-spacing:-.045em;max-width:700px;margin:0 0 14px}
.hero p{font-size:18px;max-width:560px;opacity:.92;margin:0}
.trust-strip{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:16px 0 22px}
.trust-item{padding:16px 18px;display:flex;gap:12px;align-items:center}
.trust-icon{width:38px;height:38px;border-radius:12px;background:#eef4ff;display:grid;place-items:center;font-size:18px}
.search-card{padding:22px;display:grid;grid-template-columns:1.15fr 1.15fr 1fr .9fr auto;gap:12px;align-items:end}
.field label{display:block;font-size:12px;color:var(--muted);margin:0 0 8px;font-weight:650}
.field input,.field select,.field textarea{width:100%;border:1px solid var(--line-strong);border-radius:12px;padding:13px 14px;background:#fff;outline:none;min-height:48px}
.field input:focus,.field select:focus,.field textarea:focus{border-color:#84adff;box-shadow:0 0 0 4px #eef4ff}
.field textarea{min-height:130px;resize:vertical}
.layout{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:24px;align-items:start}
.sidebar{position:sticky;top:110px;padding:22px}
.sidebar h3{margin:0 0 14px}
.summary-row{display:flex;justify-content:space-between;gap:16px;padding:11px 0;border-bottom:1px solid var(--line)}
.summary-row span{color:var(--muted)}
.summary-row b{text-align:right}
.summary-row:last-child{border:0}
.summary-total{font-size:23px;font-weight:850}
.filter-bar{display:grid;grid-template-columns:1.2fr .9fr .9fr auto;gap:12px;padding:18px;margin-bottom:18px}
.room-list{display:grid;gap:18px}
.room-card{display:grid;grid-template-columns:300px minmax(0,1fr) 190px;overflow:hidden;min-height:250px}
.room-media{position:relative}
.room-card img{width:100%;height:100%;object-fit:cover;min-height:250px}
.discount{position:absolute;left:14px;top:14px;background:#d92d20;color:#fff;border-radius:999px;padding:7px 10px;font-size:12px;font-weight:800}
.room-body{padding:22px}
.room-body h2{margin:0 0 8px;font-size:23px}
.room-meta{color:var(--muted)}
.badges{display:flex;flex-wrap:wrap;gap:8px;margin:14px 0}
.badge{padding:7px 10px;background:#f2f4f7;border-radius:999px;font-size:12px}
.availability{font-size:13px;color:var(--green);font-weight:700}
.room-price{padding:22px;border-left:1px solid var(--line);display:flex;flex-direction:column;justify-content:center;text-align:right}
.price{font-size:25px;font-weight:850;margin:6px 0;letter-spacing:-.03em}
.old{text-decoration:line-through;color:#98a2b3}
.gallery{display:grid;grid-template-columns:2fr 1fr;gap:10px;height:510px;margin-bottom:24px}
.gallery-main,.gallery-side img{width:100%;height:100%;object-fit:cover;border-radius:18px}
.gallery-side{display:grid;gap:10px}
.info-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
.info-item{padding:18px}
.info-item small{color:var(--muted)}
.rate-list{display:grid;gap:16px}
.rate-card{padding:22px;display:grid;grid-template-columns:1fr 220px;gap:24px;align-items:center}
.rate-card h3{margin:0 0 6px}
.rate-features{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}
.form-card{padding:28px}
.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.section-title{font-size:24px;letter-spacing:-.025em;margin:0 0 18px}
.guest-block{border-top:1px solid var(--line);padding-top:22px;margin-top:22px}
.guest-block:first-child{border-top:0;padding-top:0;margin-top:0}
.notice{background:#f2f4f7;border-radius:16px;padding:18px;margin-bottom:20px}
.notice.blue{background:#eef4ff}
.check{display:flex;gap:10px;align-items:flex-start;margin:14px 0}
.check input{margin-top:4px}
.radio-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;margin-bottom:20px}
.radio-card{border:1px solid var(--line-strong);border-radius:14px;padding:16px;cursor:pointer}
.radio-card:has(input:checked){border-color:var(--blue);background:#eef4ff}
.inline-note{font-size:13px;color:var(--muted)}
.success{text-align:center;padding:56px}
.success-mark{width:78px;height:78px;border-radius:50%;background:#dcfae6;color:var(--green);display:grid;place-items:center;font-size:38px;margin:0 auto 20px}
.guest-pop{position:absolute;background:#fff;border:1px solid var(--line);border-radius:16px;padding:16px;box-shadow:0 18px 45px rgba(16,24,40,.15);width:330px;display:none;z-index:50}
.guest-pop.open{display:block}
.counter{display:flex;justify-content:space-between;align-items:center;padding:10px 0}
.counter-controls{display:flex;align-items:center;gap:12px}
.counter-controls button{width:34px;height:34px;border-radius:50%;border:1px solid var(--line);background:#fff;font-weight:800}
.relative{position:relative}
.footer{padding:32px 0;border-top:1px solid var(--line);background:#fff;color:var(--muted);font-size:14px}
.two-col{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.divider{height:1px;background:var(--line);margin:24px 0}
@media(max-width:980px){
  .nav{display:none}.layout{grid-template-columns:1fr}.sidebar{position:static}.search-card{grid-template-columns:1fr 1fr}
  .room-card{grid-template-columns:1fr}.room-card img{height:260px}.room-price{border-left:0;border-top:1px solid var(--line);text-align:left}
  .gallery{height:auto;grid-template-columns:1fr}.gallery-main{height:360px}.gallery-side{grid-template-columns:1fr 1fr}.gallery-side img{height:180px}
  .info-grid{grid-template-columns:1fr 1fr}.rate-card{grid-template-columns:1fr}.filter-bar{grid-template-columns:1fr 1fr}
  .steps-inner{overflow:auto;grid-template-columns:repeat(5,140px)}
}
@media(max-width:640px){
  .container{width:min(100% - 20px,var(--container))}.header-inner{height:60px}.header-actions .btn-outline{display:none}
  .page{padding-top:22px}.page-title{font-size:29px}.page-head{align-items:start;flex-direction:column}
  .hero{min-height:360px;padding:26px}.hero h1{font-size:38px}
  .trust-strip,.search-card,.form-grid,.info-grid,.radio-grid,.two-col,.filter-bar{grid-template-columns:1fr}
  .room-card img{height:225px}.gallery-main{height:290px}.guest-pop{position:fixed;left:10px;right:10px;bottom:10px;width:auto;top:auto}
  .form-card{padding:20px}.sidebar{padding:20px}
}


/* V11 — первая страница полностью помещается в экран */
body.home-page{
  min-height:100svh;
  overflow-x:hidden;
}
.home-page .header-inner{
  height:clamp(54px,7vh,66px);
}
.home-page .steps-inner{
  padding:clamp(7px,1.2vh,11px) 0;
}
.home-page .step{
  padding:5px 7px;
}
.home-page .page{
  padding:clamp(10px,1.6vh,18px) 0;
}
.home-screen{
  min-height:calc(100svh - clamp(54px,7vh,66px) - 49px - clamp(20px,3.2vh,36px));
  display:grid;
  grid-template-rows:minmax(180px,1fr) auto auto;
  gap:clamp(10px,1.5vh,16px);
}
.home-page .hero{
  min-height:0;
  height:100%;
  max-height:clamp(250px,43vh,390px);
  margin:0;
  padding:clamp(22px,4vh,44px);
  border-radius:24px;
}
.home-page .hero h1{
  font-size:clamp(32px,5vw,52px);
  margin-bottom:8px;
}
.home-page .hero p{
  font-size:clamp(14px,1.7vw,18px);
}
.home-page .trust-strip{
  margin:0;
  gap:10px;
}
.home-page .trust-item{
  padding:clamp(9px,1.4vh,14px) 14px;
  min-height:58px;
}
.home-page .trust-icon{
  width:34px;
  height:34px;
  flex:0 0 34px;
}
.home-page .trust-item small{
  font-size:12px;
}
.home-page .search-card{
  padding:clamp(12px,1.8vh,18px);
  gap:10px;
}
.home-page .field label{
  margin-bottom:5px;
}
.home-page .field input,
.home-page .field select{
  min-height:44px;
  padding:10px 12px;
}
.home-page .search-card .btn{
  min-height:44px;
}
.home-page .footer{
  display:none;
}

@media (max-height:760px) and (min-width:901px){
  .home-page .hero{
    max-height:32vh;
  }
  .home-page .hero h1{
    font-size:40px;
  }
  .home-page .trust-item{
    padding:8px 12px;
  }
  .home-page .search-card{
    padding:12px;
  }
}

@media (max-width:980px){
  .home-screen{
    min-height:auto;
    grid-template-rows:auto auto auto;
  }
  .home-page .hero{
    height:auto;
    min-height:clamp(210px,35vh,320px);
  }
  .home-page .search-card{
    grid-template-columns:1fr 1fr;
  }
  .home-page .search-card .btn{
    grid-column:1/-1;
  }
}

@media (max-width:640px){
  body.home-page{
    overflow-y:auto;
  }
  .home-page .steps{
    display:none;
  }
  .home-page .page{
    min-height:calc(100svh - 60px);
    padding:10px 0;
  }
  .home-screen{
    min-height:calc(100svh - 80px);
    grid-template-rows:minmax(150px,28vh) auto auto;
    gap:8px;
  }
  .home-page .hero{
    min-height:150px;
    max-height:none;
    height:100%;
    padding:18px;
    border-radius:18px;
  }
  .home-page .hero h1{
    font-size:clamp(27px,9vw,36px);
    line-height:1.02;
    margin-bottom:6px;
  }
  .home-page .hero p{
    font-size:13px;
    max-width:95%;
  }
  .home-page .trust-strip{
    grid-template-columns:repeat(3,1fr);
    gap:6px;
  }
  .home-page .trust-item{
    min-height:0;
    padding:8px 6px;
    display:block;
    text-align:center;
  }
  .home-page .trust-icon{
    width:28px;
    height:28px;
    margin:0 auto 4px;
    font-size:14px;
  }
  .home-page .trust-item b{
    display:block;
    font-size:11px;
    line-height:1.15;
  }
  .home-page .trust-item small{
    display:none;
  }
  .home-page .search-card{
    grid-template-columns:1fr 1fr;
    padding:10px;
    gap:8px;
    border-radius:16px;
  }
  .home-page .search-card .field:nth-child(3),
  .home-page .search-card .field:nth-child(4),
  .home-page .search-card .btn{
    grid-column:1/-1;
  }
  .home-page .field label{
    font-size:10px;
    margin-bottom:3px;
  }
  .home-page .field input,
  .home-page .field select{
    min-height:40px;
    padding:8px 10px;
    font-size:13px;
  }
  .home-page .search-card .btn{
    min-height:42px;
    padding:10px 14px;
  }
}

@media (max-width:390px), (max-height:690px) and (max-width:640px){
  .home-page .header-inner{
    height:54px;
  }
  .home-page .page{
    min-height:calc(100svh - 54px);
    padding:7px 0;
  }
  .home-screen{
    min-height:calc(100svh - 68px);
    grid-template-rows:minmax(125px,23vh) auto auto;
    gap:6px;
  }
  .home-page .hero{
    min-height:125px;
    padding:14px;
  }
  .home-page .hero h1{
    font-size:26px;
  }
  .home-page .hero p{
    font-size:12px;
  }
  .home-page .trust-item{
    padding:6px 4px;
  }
  .home-page .trust-icon{
    width:24px;
    height:24px;
  }
  .home-page .search-card{
    padding:8px;
    gap:6px;
  }
  .home-page .field input,
  .home-page .field select{
    min-height:36px;
    padding:7px 9px;
  }
  .home-page .search-card .btn{
    min-height:38px;
  }
}


/* V12 — полная страница данных гостей */
.guest-complete-form{display:grid;gap:20px}
.guest-complete-layout{grid-template-columns:minmax(0,1fr) 340px}
.booking-overview-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
.booking-overview-grid>div{border:1px solid var(--line);border-radius:14px;padding:14px;background:#fafbfc}
.booking-overview-grid span{display:block;color:var(--muted);font-size:12px;margin-bottom:5px}
.booking-overview-grid b{display:block;font-size:15px}
.room-info-line{font-size:17px;margin:-4px 0 20px}
.section-description{font-size:16px;color:#344054;max-width:760px;margin:-6px 0 22px}
.contact-alert{display:flex;gap:16px;align-items:flex-start;padding:20px;background:#f4f5f7;border:1px solid #e4e7ec;border-radius:16px;margin-bottom:22px}
.contact-alert-icon{font-size:38px;line-height:1;font-weight:500}
.contact-alert b{font-size:16px}
.contact-alert p{margin:5px 0 0;color:#344054}
.legal-check{font-size:15px}
.legal-link{text-decoration:underline;font-weight:750}
.final-booking-btn{margin-top:22px;min-height:56px;font-size:18px}
.guest-sidebar{top:100px}
.guest-block h3{font-size:22px;font-weight:500;margin-bottom:16px}

@media(max-width:980px){
  .guest-complete-layout{grid-template-columns:1fr}
  .guest-sidebar{position:static}
  .booking-overview-grid{grid-template-columns:repeat(2,1fr)}
}
@media(max-width:640px){
  .guest-complete-form{gap:14px}
  .booking-overview-card{display:none}
  .booking-overview-grid{grid-template-columns:1fr}
  .guest-complete-form .form-card{padding:20px}
  .guest-complete-form .form-grid{grid-template-columns:1fr}
  .guest-complete-form .section-title{font-size:28px;line-height:1.15}
  .guest-complete-form .guest-block{padding-top:20px;margin-top:20px}
  .guest-complete-form .guest-block h3{font-size:20px}
  .contact-alert{padding:16px;gap:12px}
  .contact-alert-icon{font-size:32px}
  .final-booking-btn{min-height:54px}
}


/* V13 — двойной календарь выбора периода */
.date-range-field{position:relative;grid-column:span 2}
.date-range-trigger{
  width:100%;min-height:48px;border:1px solid var(--line-strong);border-radius:12px;
  background:#fff;padding:8px 13px;display:flex;align-items:center;gap:11px;text-align:left;cursor:pointer
}
.date-range-trigger:hover{border-color:#84adff}
.date-range-trigger.active{border-color:var(--blue);box-shadow:0 0 0 4px #eef4ff}
.date-range-icon{font-size:20px}
.date-range-text{display:flex;flex-direction:column;min-width:0}
.date-range-text b{font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.date-range-text small{color:var(--muted);font-size:11px}

.range-calendar{
  position:absolute;left:0;top:calc(100% + 10px);z-index:100;width:min(760px,calc(100vw - 30px));
  background:#fff;border:1px solid var(--line);border-radius:20px;box-shadow:0 24px 70px rgba(16,24,40,.22);
  padding:18px;display:none
}
.range-calendar.open{display:block}
.range-calendar-head{display:flex;align-items:flex-start;justify-content:space-between;border-bottom:1px solid var(--line);padding-bottom:14px}
.range-calendar-head small{display:block;color:var(--muted);margin-top:3px}
.calendar-close{width:34px;height:34px;border:0;border-radius:50%;background:#f2f4f7;font-size:24px;cursor:pointer}
.calendar-nav{display:flex;align-items:center;justify-content:space-between;margin:13px 0 4px;position:relative}
.calendar-nav button{width:38px;height:38px;border:1px solid var(--line);border-radius:10px;background:#fff;font-size:25px;cursor:pointer}
.calendar-nav button:disabled{opacity:.3;cursor:not-allowed}
.calendar-mobile-title{display:none;font-weight:800}
.double-calendar{display:grid;grid-template-columns:1fr 1fr;gap:24px}
.calendar-month h3{text-align:center;font-size:16px;margin:0 0 12px;text-transform:capitalize}
.weekdays,.calendar-days{display:grid;grid-template-columns:repeat(7,1fr);gap:3px}
.weekdays span{text-align:center;color:#98a2b3;font-size:11px;font-weight:750;padding:5px 0}
.calendar-day{
  aspect-ratio:1;border:0;background:transparent;border-radius:10px;cursor:pointer;position:relative;
  font-size:13px;display:grid;place-items:center;color:var(--text)
}
.calendar-day:hover:not(:disabled){background:#eef4ff;color:var(--blue)}
.calendar-day:disabled{color:#d0d5dd;cursor:not-allowed;text-decoration:line-through}
.calendar-day.empty{pointer-events:none}
.calendar-day.today:not(.selected){box-shadow:inset 0 0 0 1px var(--blue);color:var(--blue);font-weight:800}
.calendar-day.in-range{background:#eef4ff;border-radius:0;color:#1849a9}
.calendar-day.range-start{border-radius:10px 0 0 10px}
.calendar-day.range-end{border-radius:0 10px 10px 0}
.calendar-day.selected,.calendar-day.range-start.selected,.calendar-day.range-end.selected{
  background:var(--blue);color:#fff;border-radius:10px;font-weight:850
}
.calendar-footer{
  margin-top:16px;padding-top:15px;border-top:1px solid var(--line);
  display:flex;align-items:center;justify-content:space-between;gap:16px
}
.calendar-selection{display:flex;align-items:center;gap:14px}
.calendar-selection span:not(.calendar-arrow){display:flex;flex-direction:column}
.calendar-selection small{font-size:11px;color:var(--muted)}
.calendar-selection b{font-size:14px}
.calendar-arrow{color:#98a2b3}
.calendar-footer .btn:disabled{opacity:.45;cursor:not-allowed;transform:none}

@media(max-width:980px){
  .date-range-field{grid-column:1/-1}
}
@media(max-width:640px){
  .range-calendar{
    position:fixed;left:0;right:0;bottom:0;top:auto;width:100%;max-height:88svh;overflow:auto;
    border-radius:24px 24px 0 0;padding:16px
  }
  .double-calendar{grid-template-columns:1fr}
  .calendar-month-right{display:none}
  .calendar-mobile-title{display:block}
  .calendar-month h3{display:none}
  .calendar-day{min-height:42px;aspect-ratio:auto}
  .calendar-footer{position:sticky;bottom:-16px;background:#fff;padding:14px 0 16px}
  .calendar-selection{gap:8px}
  .calendar-selection b{font-size:12px}
}


/* V14 — классический вид двух полей, единый выбор периода */
.date-picker-anchor{position:relative}
.classic-date-input{
  width:100%;
  min-height:48px;
  border:1px solid var(--line-strong);
  border-radius:12px;
  padding:13px 14px;
  background:#fff;
  color:var(--text);
  text-align:left;
  cursor:pointer;
  outline:none;
}
.classic-date-input:hover{border-color:#84adff}
.classic-date-input.active{
  border-color:#84adff;
  box-shadow:0 0 0 4px #eef4ff;
}
.home-page .classic-date-input{
  min-height:44px;
  padding:10px 12px;
}
@media(max-width:640px){
  .home-page .classic-date-input{
    min-height:40px;
    padding:8px 10px;
    font-size:13px;
  }
}


/* V15 — активные фотогалереи */
.room-photo-button{
  width:100%;height:100%;padding:0;border:0;background:transparent;cursor:pointer;position:relative;display:block
}
.room-photo-button img{transition:transform .35s ease}
.room-photo-button:hover img{transform:scale(1.035)}
.photo-count{
  position:absolute;right:12px;bottom:12px;background:rgba(7,21,47,.78);color:#fff;
  border-radius:999px;padding:7px 10px;font-size:12px;font-weight:800;backdrop-filter:blur(8px)
}

.active-gallery button{padding:0;border:0;background:transparent;cursor:pointer;overflow:hidden;position:relative}
.active-gallery button img{transition:transform .35s ease}
.active-gallery button:hover img{transform:scale(1.025)}
.gallery-main-button{width:100%;height:100%;border-radius:18px}
.gallery-side button{width:100%;height:100%;border-radius:18px}
.gallery-open-label{
  position:absolute;left:18px;bottom:18px;background:rgba(7,21,47,.8);color:#fff;
  border-radius:999px;padding:10px 14px;font-size:13px;font-weight:800;backdrop-filter:blur(8px)
}

.photo-lightbox{position:fixed;inset:0;z-index:300;display:none}
.photo-lightbox.open{display:block}
.photo-lightbox-backdrop{position:absolute;inset:0;background:rgba(3,8,20,.86);backdrop-filter:blur(8px)}
.photo-lightbox-dialog{
  position:relative;z-index:1;width:min(1100px,calc(100% - 32px));height:min(820px,calc(100svh - 32px));
  margin:16px auto;background:#0b1220;border-radius:22px;display:grid;grid-template-rows:auto 1fr auto;
  overflow:hidden;box-shadow:0 30px 90px rgba(0,0,0,.45)
}
.photo-lightbox-head{display:flex;align-items:center;justify-content:space-between;padding:16px 18px;color:#fff}
.photo-lightbox-head small{display:block;color:#98a2b3;margin-top:2px}
.photo-lightbox-close{
  width:42px;height:42px;border:0;border-radius:50%;background:rgba(255,255,255,.12);
  color:#fff;font-size:28px;cursor:pointer
}
.photo-lightbox-stage{position:relative;display:grid;place-items:center;min-height:0;padding:0 64px}
.photo-lightbox-stage img{max-width:100%;max-height:100%;object-fit:contain;border-radius:12px}
.photo-nav{
  position:absolute;top:50%;transform:translateY(-50%);width:48px;height:48px;border:0;border-radius:50%;
  background:rgba(255,255,255,.14);color:#fff;font-size:34px;cursor:pointer;backdrop-filter:blur(8px)
}
.photo-prev{left:12px}.photo-next{right:12px}
.photo-thumbs{display:flex;gap:8px;overflow-x:auto;padding:12px 18px 16px}
.photo-thumb{width:86px;height:58px;flex:0 0 86px;border:2px solid transparent;border-radius:9px;padding:0;background:transparent;overflow:hidden;cursor:pointer}
.photo-thumb img{width:100%;height:100%;object-fit:cover}
.photo-thumb.active{border-color:#fff}
body.lightbox-open{overflow:hidden}

@media(max-width:640px){
  .photo-lightbox-dialog{width:100%;height:100svh;margin:0;border-radius:0}
  .photo-lightbox-stage{padding:0 44px}
  .photo-nav{width:38px;height:38px;font-size:26px}
  .photo-prev{left:6px}.photo-next{right:6px}
  .gallery-open-label{left:12px;bottom:12px;padding:8px 11px;font-size:12px}
}


/* V16 — премиальная визуальная полировка и единая сетка полей */
:root{
  --radius:18px;
  --shadow:0 12px 34px rgba(16,24,40,.07);
}
body{background:#f6f8fc}
.card{box-shadow:var(--shadow)}
.page{padding-top:30px}
.page-head{margin-bottom:22px}
.page-title{font-weight:800}

.field{
  min-width:0;
  display:flex;
  flex-direction:column;
}
.field label{
  min-height:18px;
  display:flex;
  align-items:center;
  margin-bottom:7px;
  font-size:12px;
  line-height:1.2;
  font-weight:700;
  color:#475467;
}
.field input,
.field select,
.field textarea,
.classic-date-input{
  width:100%;
  border:1px solid #d0d5dd;
  border-radius:12px;
  background:#fff;
  color:#101828;
  font-size:15px;
  box-shadow:none;
  transition:border-color .2s ease,box-shadow .2s ease,background .2s ease;
}
.field input,
.field select,
.classic-date-input{
  height:50px;
  min-height:50px;
  padding:0 14px;
}
.field textarea{
  min-height:132px;
  padding:14px;
  line-height:1.45;
}
.field input:hover,
.field select:hover,
.field textarea:hover,
.classic-date-input:hover{
  border-color:#98a2b3;
}
.field input:focus,
.field select:focus,
.field textarea:focus,
.classic-date-input:focus{
  border-color:#5b8def;
  box-shadow:0 0 0 4px rgba(11,92,255,.10);
  outline:none;
}
.field input::placeholder,
.field textarea::placeholder{color:#98a2b3}
.form-grid{
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:18px 16px;
  align-items:start;
}
.form-card{padding:28px}
.btn,.btn-outline,.btn-ghost{
  min-height:48px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border-radius:12px;
}
.btn-block{width:100%}
.search-card{
  grid-template-columns:1fr 1fr 1fr .9fr auto;
  align-items:end;
}
.search-card .field{height:100%}
.search-card .btn{height:50px;white-space:nowrap}

.hero{
  background-image:linear-gradient(90deg,rgba(4,15,38,.78),rgba(4,15,38,.18)),url('assets/hero-premium.jpg');
  background-position:center;
  background-size:cover;
}
.room-card{
  min-height:270px;
  border-color:#e7eaf0;
}
.room-card img{
  min-height:270px;
  image-rendering:auto;
}
.room-body{padding:24px}
.room-price{padding:24px}
.room-price .btn{margin-top:12px}
.gallery{height:520px}
.gallery-main,.gallery-side img{
  image-rendering:auto;
}
.info-item{min-height:92px}
.rate-card{padding:24px}
.sidebar{border-color:#e7eaf0}

.check{
  line-height:1.45;
}
.check input{
  width:20px;
  height:20px;
  flex:0 0 20px;
  accent-color:var(--blue);
}

@media(max-width:980px){
  .search-card{grid-template-columns:1fr 1fr}
  .search-card .btn{grid-column:1/-1;width:100%}
}
@media(max-width:640px){
  .page{padding-top:18px}
  .form-card{padding:20px}
  .form-grid{grid-template-columns:1fr;gap:14px}
  .field input,
  .field select,
  .classic-date-input{height:48px;min-height:48px}
  .field textarea{min-height:120px}
  .search-card{grid-template-columns:1fr 1fr}
  .search-card .field:nth-child(3),
  .search-card .field:nth-child(4),
  .search-card .btn{grid-column:1/-1}
  .room-card{min-height:0}
  .room-card img{min-height:230px}
  .gallery{height:auto}
}


/* V17 — мобильная «Моя бронь», верхняя сводка и компактные тарифы */
.top-booking-summary{
  padding:18px 20px;
  margin-bottom:20px;
  box-shadow:0 10px 28px rgba(16,24,40,.06);
}
.top-booking-heading{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  margin-bottom:14px;
}
.top-booking-heading h2{
  margin:2px 0 0;
  font-size:21px;
  letter-spacing:-.025em;
}
.top-booking-kicker{
  color:var(--blue);
  font-size:12px;
  font-weight:800;
}
.top-booking-edit{
  flex:0 0 auto;
  padding:9px 12px;
  border:1px solid var(--line);
  border-radius:10px;
  color:var(--blue);
  font-size:13px;
  font-weight:750;
}
.top-booking-grid{
  display:grid;
  grid-template-columns:repeat(6,minmax(0,1fr));
  gap:10px;
}
.top-booking-grid>div{
  min-width:0;
  padding:11px 12px;
  border-radius:12px;
  background:#f7f9fc;
  border:1px solid #edf0f4;
}
.top-booking-grid span{
  display:block;
  margin-bottom:4px;
  color:var(--muted);
  font-size:11px;
}
.top-booking-grid b{
  display:block;
  overflow:hidden;
  text-overflow:ellipsis;
  font-size:13px;
  white-space:nowrap;
}
.success-booking-summary{
  max-width:760px;
  margin:24px auto;
  border:1px solid var(--line);
  text-align:left;
}

/* Тарифы подняты выше и стали компактнее */
.tariff-layout{
  grid-template-columns:minmax(0,1fr);
}
.tariff-sidebar{
  display:none;
}
.tariff-layout .gallery{
  height:390px;
  margin-bottom:16px;
}
.tariff-layout .page-head{
  margin-bottom:14px;
}
.tariff-layout .page-title{
  font-size:31px;
}
.tariff-layout .info-grid{
  gap:9px;
}
.tariff-layout .info-item{
  padding:13px 15px;
}
.tariff-layout .form-card{
  margin-top:12px !important;
  padding:20px;
}
.tariff-layout .form-card .section-title{
  font-size:20px;
  margin-bottom:10px;
}
.tariff-layout .form-card p{
  margin-top:5px;
  margin-bottom:12px;
}
.tariff-layout .divider{
  margin:16px 0;
}
.tariff-layout > section > .page-title{
  margin-top:20px !important;
  margin-bottom:12px !important;
  font-size:27px !important;
}
.tariff-layout .rate-list{
  gap:11px;
}
.tariff-layout .rate-card{
  min-height:0;
  padding:16px 18px;
  grid-template-columns:minmax(0,1fr) 190px;
  gap:16px;
}
.tariff-layout .rate-card h3{
  font-size:18px;
  margin-bottom:3px;
}
.tariff-layout .rate-card p{
  margin:0;
  font-size:13px;
  color:var(--muted);
}
.tariff-layout .rate-features{
  margin-top:8px;
  gap:6px;
}
.tariff-layout .badge{
  padding:5px 8px;
  font-size:11px;
}
.tariff-layout .price{
  font-size:22px;
  margin:3px 0 8px;
}

/* На мобильном кнопка «Моя бронь» всегда видна */
@media(max-width:640px){
  .header-actions{
    display:flex;
    flex:0 0 auto;
  }
  .header-actions .btn-outline{
    display:inline-flex !important;
    align-items:center;
    justify-content:center;
    min-height:36px;
    padding:8px 11px;
    border-radius:10px;
    font-size:12px;
    white-space:nowrap;
  }
  .header-inner{
    gap:10px;
  }
  .logo{
    min-width:0;
    font-size:15px;
  }
  .logo img{
    width:29px;
    height:29px;
  }

  .top-booking-summary{
    padding:15px;
    margin-bottom:14px;
  }
  .top-booking-heading{
    margin-bottom:10px;
  }
  .top-booking-heading h2{
    font-size:18px;
  }
  .top-booking-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:7px;
  }
  .top-booking-grid>div{
    padding:9px 10px;
  }
  .top-booking-grid b{
    white-space:normal;
    line-height:1.25;
  }

  .tariff-layout .gallery{
    height:auto;
    margin-bottom:12px;
  }
  .tariff-layout .gallery-main{
    height:260px;
  }
  .tariff-layout .gallery-side img{
    height:115px;
  }
  .tariff-layout .page-title{
    font-size:27px;
  }
  .tariff-layout .info-grid{
    grid-template-columns:repeat(3,1fr);
  }
  .tariff-layout .info-item{
    padding:10px 8px;
    text-align:center;
  }
  .tariff-layout .info-item b{
    font-size:13px;
  }
  .tariff-layout .info-item small{
    font-size:10px;
  }
  .tariff-layout .form-card{
    padding:16px;
  }
  .tariff-layout .rate-card{
    grid-template-columns:1fr;
    padding:15px;
    gap:10px;
  }
  .tariff-layout .rate-card>div:last-child{
    display:grid;
    grid-template-columns:1fr auto;
    align-items:end;
    gap:10px;
  }
  .tariff-layout .rate-card .old{
    grid-column:1;
  }
  .tariff-layout .rate-card .price{
    grid-column:1;
    margin:0;
  }
  .tariff-layout .rate-card .btn{
    grid-column:2;
    grid-row:1/3;
    width:auto;
    min-width:124px;
    align-self:center;
  }

  .guest-complete-layout{
    display:block;
  }
  .guest-sidebar{
    display:none;
  }
}

/* Очень узкие телефоны */
@media(max-width:370px){
  .logo{
    font-size:13px;
  }
  .header-actions .btn-outline{
    padding:7px 8px;
    font-size:11px;
  }
  .top-booking-grid{
    grid-template-columns:1fr 1fr;
  }
}


/* Резервное изображение: управляемый баннер заменяет его inline-стилем. */
.hero{
  --ro-hero-image:url('assets/hero-clean.jpg');
  background-image:
    linear-gradient(90deg,rgba(4,15,38,.70),rgba(4,15,38,.08)),
    var(--ro-hero-image);
  background-position:center 48%;
  image-rendering:auto;
}
.room-card img,
.gallery img,
.photo-lightbox-stage img,
.photo-thumb img{
  image-rendering:auto;
  backface-visibility:hidden;
}
.room-card img{
  object-position:center;
}
.room-photo-button::after,
.gallery-main-button::after,
.gallery-side button::after{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(180deg,transparent 72%,rgba(7,21,47,.10));
  opacity:0;
  transition:opacity .22s ease;
  pointer-events:none;
}
.room-photo-button:hover::after,
.gallery-main-button:hover::after,
.gallery-side button:hover::after{
  opacity:1;
}
.photo-count,
.gallery-open-label{
  display:none !important;
}
.gallery-main,
.gallery-side img{
  object-fit:cover;
  object-position:center;
}
.photo-lightbox-stage{
  background:#050914;
}
.photo-lightbox-stage img{
  width:auto;
  height:auto;
  max-width:100%;
  max-height:100%;
}
@media(max-width:640px){
  .hero{
    background-position:center;
  }
}


/* V19 — футер на главной странице */
.home-page .footer{
  display:block !important;
  padding:14px 0;
  margin-top:10px;
  background:#fff;
  border-top:1px solid var(--line);
  font-size:13px;
}
@media(max-width:640px){
  .home-page .footer{
    padding:12px 0;
    margin-top:8px;
    text-align:center;
    font-size:12px;
  }
}


/* V20 — календарь выбора периода в стиле travel.yandex.ru */
.booking-date-field{display:flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:2px}
.date-field-label{font-size:10px;color:var(--muted);font-weight:600}
.booking-date-field b{font-size:14px;font-weight:700}
.yandex-calendar{width:min(720px,calc(100vw - 28px));padding:0;overflow:hidden;border-radius:18px}
.yandex-calendar-top{display:flex;align-items:stretch;border-bottom:1px solid var(--line);background:#fff}
.calendar-date-tabs{display:grid;grid-template-columns:1fr 1fr;flex:1}
.calendar-date-tab{min-height:72px;padding:12px 18px;border:0;border-right:1px solid var(--line);background:#fff;text-align:left;cursor:pointer}
.calendar-date-tab small{display:block;margin-bottom:5px;color:var(--muted);font-size:11px}
.calendar-date-tab b{font-size:16px}
.calendar-date-tab.active{box-shadow:inset 0 -3px 0 #f2c900;background:#fffdf2}
.yandex-calendar-top .calendar-close{margin:18px;flex:0 0 auto}
.yandex-calendar-body{display:grid;grid-template-columns:165px 1fr;min-height:410px;background:#fff}
.calendar-month-list{padding:14px 10px;border-right:1px solid var(--line);background:#fafafa;overflow-y:auto;max-height:430px}
.calendar-month-link{width:100%;padding:9px 12px;border:0;border-radius:9px;background:transparent;text-align:left;text-transform:capitalize;color:#667085;cursor:pointer}
.calendar-month-link:hover{background:#f2f4f7}
.calendar-month-link.active{background:#fff3a8;color:#101828;font-weight:800}
.calendar-main-panel{padding:18px 20px 14px}
.calendar-main-head{display:grid;grid-template-columns:38px 1fr 38px;align-items:center;gap:10px;margin-bottom:12px}
.calendar-main-head h3{margin:0;text-align:center;font-size:20px;text-transform:capitalize}
.calendar-arrow-btn{width:38px;height:38px;border:1px solid var(--line);border-radius:10px;background:#fff;font-size:24px;cursor:pointer}
.calendar-arrow-btn:disabled{opacity:.3;cursor:not-allowed}
.yandex-weekdays{gap:6px;margin-bottom:5px}
.yandex-weekdays span{font-size:12px;color:#667085}
.yandex-weekdays .weekend,.yandex-day.weekend{color:#d92d20}
.yandex-days{gap:6px}
.yandex-day{min-height:42px;aspect-ratio:auto;border-radius:10px;font-size:15px}
.yandex-day.in-range{background:#fff4ad;color:#101828;border-radius:0}
.yandex-day.selected{background:#f2c900;color:#101828;font-weight:900;border-radius:12px}
.yandex-day.range-start{border-radius:12px 0 0 12px}
.yandex-day.range-end{border-radius:0 12px 12px 0}
.yandex-day.today:not(.selected){box-shadow:inset 0 0 0 2px #f2c900;color:#101828}
.yandex-day:disabled{color:#d0d5dd!important;text-decoration:none}
.calendar-legend{display:flex;gap:18px;margin-top:15px;color:#667085;font-size:11px}
.calendar-legend span{display:flex;align-items:center;gap:6px}
.calendar-legend i{width:14px;height:14px;border-radius:4px;display:inline-block}
.legend-today{border:2px solid #f2c900}
.legend-range{background:#fff4ad}
.yandex-calendar-footer{margin:0;padding:14px 18px;background:#fff}
.calendar-clear{border:0;background:transparent;color:#667085;font-weight:700;cursor:pointer}
.calendar-footer-actions{display:flex;align-items:center;gap:14px}
.calendar-footer-actions span{color:#667085;font-size:13px}
.yandex-calendar-footer .btn{min-width:120px;background:#f2c900;color:#101828}
.yandex-calendar-footer .btn:hover{background:#e3bb00}

@media(max-width:640px){
  .yandex-calendar{max-height:92svh}
  .yandex-calendar-body{grid-template-columns:1fr;min-height:0}
  .calendar-month-list{display:flex;gap:6px;max-height:none;overflow-x:auto;border-right:0;border-bottom:1px solid var(--line);padding:10px}
  .calendar-month-link{width:auto;flex:0 0 auto;white-space:nowrap;padding:8px 11px}
  .calendar-main-panel{padding:14px 12px 10px}
  .calendar-date-tab{min-height:64px;padding:10px 12px}
  .calendar-date-tab b{font-size:14px}
  .yandex-days{gap:4px}
  .yandex-day{min-height:40px}
  .calendar-legend{display:none}
  .calendar-footer-actions span{display:none}
  .yandex-calendar-footer .btn{min-width:105px}
}


/* V21 — компактный календарь сверху в общем стиле сайта */
.compact-top-calendar{
  position:fixed !important;
  top:82px !important;
  left:50% !important;
  right:auto !important;
  bottom:auto !important;
  transform:translateX(-50%);
  width:min(520px,calc(100vw - 24px)) !important;
  max-height:calc(100svh - 100px);
  overflow:auto;
  padding:0 !important;
  border:1px solid var(--line) !important;
  border-radius:20px !important;
  background:#fff;
  box-shadow:0 28px 80px rgba(16,24,40,.24) !important;
  z-index:500 !important;
}
body.calendar-open::before{
  content:"";
  position:fixed;
  inset:0;
  background:rgba(15,23,42,.28);
  backdrop-filter:blur(3px);
  z-index:490;
}
.compact-calendar-header{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:16px;
  padding:18px 20px 14px;
  border-bottom:1px solid var(--line);
}
.calendar-kicker{
  display:block;
  margin-bottom:3px;
  color:var(--blue);
  font-size:11px;
  font-weight:800;
}
.compact-calendar-header h3{
  margin:0;
  font-size:18px;
  letter-spacing:-.02em;
}
.compact-calendar-header .calendar-close{
  flex:0 0 auto;
  width:34px;
  height:34px;
  margin:0;
}
.compact-range-values{
  display:grid;
  grid-template-columns:1fr auto 1fr;
  align-items:center;
  gap:10px;
  padding:14px 20px;
  background:#f8fafc;
  border-bottom:1px solid var(--line);
}
.compact-range-value{
  min-width:0;
  padding:10px 12px;
  border:1px solid var(--line-strong);
  border-radius:12px;
  background:#fff;
  text-align:left;
  cursor:pointer;
}
.compact-range-value small{
  display:block;
  margin-bottom:3px;
  color:var(--muted);
  font-size:10px;
}
.compact-range-value b{
  display:block;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  font-size:13px;
}
.compact-range-value.active{
  border-color:var(--blue);
  box-shadow:0 0 0 3px rgba(11,92,255,.10);
}
.compact-range-divider{
  color:#98a2b3;
  font-weight:800;
}
.compact-calendar-nav{
  display:grid;
  grid-template-columns:34px 1fr 34px;
  align-items:center;
  gap:10px;
  padding:14px 20px 8px;
}
.compact-calendar-nav h3{
  margin:0;
  text-align:center;
  text-transform:capitalize;
  font-size:16px;
}
.compact-calendar-nav .calendar-arrow-btn{
  width:34px;
  height:34px;
  font-size:22px;
}
.compact-weekdays{
  padding:0 20px;
  gap:4px;
}
.compact-weekdays span{
  padding:4px 0 6px;
  color:#98a2b3;
  font-size:10px;
}
.compact-calendar-days{
  padding:0 20px 14px;
  gap:4px;
}
.compact-day{
  min-height:38px !important;
  aspect-ratio:auto !important;
  border-radius:9px;
  font-size:13px;
}
.compact-day:hover:not(:disabled){
  background:#eef4ff;
  color:var(--blue);
}
.compact-day.in-range{
  background:#eaf2ff !important;
  color:#1849a9 !important;
  border-radius:0;
}
.compact-day.selected{
  background:var(--blue) !important;
  color:#fff !important;
  border-radius:10px;
}
.compact-day.range-start{
  border-radius:10px 0 0 10px;
}
.compact-day.range-end{
  border-radius:0 10px 10px 0;
}
.compact-day.today:not(.selected){
  box-shadow:inset 0 0 0 1px var(--blue);
  color:var(--blue);
}
.compact-calendar-footer{
  display:grid;
  grid-template-columns:auto 1fr auto;
  align-items:center;
  gap:12px;
  padding:13px 20px 16px;
  border-top:1px solid var(--line);
}
.compact-calendar-footer .calendar-clear{
  color:var(--muted);
}
.compact-calendar-footer>span{
  text-align:center;
  color:var(--muted);
  font-size:12px;
}
.compact-calendar-footer .btn{
  min-width:104px;
  min-height:40px;
  padding:10px 16px;
  background:var(--blue);
  color:#fff;
}

@media(max-width:640px){
  .compact-top-calendar{
    top:64px !important;
    width:calc(100vw - 16px) !important;
    max-height:calc(100svh - 76px);
    border-radius:18px !important;
  }
  .compact-calendar-header{
    padding:15px 16px 12px;
  }
  .compact-range-values{
    padding:12px 16px;
  }
  .compact-calendar-nav{
    padding:12px 16px 6px;
  }
  .compact-weekdays,
  .compact-calendar-days{
    padding-left:16px;
    padding-right:16px;
  }
  .compact-day{
    min-height:36px !important;
  }
  .compact-calendar-footer{
    padding:12px 16px 14px;
    grid-template-columns:auto 1fr;
  }
  .compact-calendar-footer>span{
    display:none;
  }
  .compact-calendar-footer .btn{
    justify-self:end;
  }
}


/* V22 — блок «Взрослые / Дети» всплывает сверху, как календарь */
.guest-pop-top{
  position:fixed !important;
  top:82px !important;
  left:50% !important;
  right:auto !important;
  bottom:auto !important;
  transform:translateX(-50%);
  width:min(430px,calc(100vw - 24px)) !important;
  max-height:calc(100svh - 100px);
  overflow:auto;
  padding:0 !important;
  border:1px solid var(--line) !important;
  border-radius:20px !important;
  background:#fff;
  box-shadow:0 28px 80px rgba(16,24,40,.24) !important;
  z-index:520 !important;
}
body.guest-pop-open::before{
  content:"";
  position:fixed;
  inset:0;
  background:rgba(15,23,42,.28);
  backdrop-filter:blur(3px);
  z-index:510;
}
.guest-pop-header{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:16px;
  padding:18px 20px 14px;
  border-bottom:1px solid var(--line);
}
.guest-pop-kicker{
  display:block;
  margin-bottom:3px;
  color:var(--blue);
  font-size:11px;
  font-weight:800;
}
.guest-pop-header h3{
  margin:0;
  font-size:18px;
  letter-spacing:-.02em;
}
.guest-pop-close{
  width:34px;
  height:34px;
  flex:0 0 34px;
  border:0;
  border-radius:50%;
  background:#f2f4f7;
  color:#344054;
  font-size:24px;
  line-height:1;
  cursor:pointer;
}
.guest-pop-content{
  padding:6px 20px 14px;
}
.guest-pop-top .counter{
  padding:16px 0;
  border-bottom:1px solid var(--line);
}
.guest-pop-top .counter:last-of-type{
  border-bottom:0;
}
.guest-pop-top .counter>div:first-child b{
  font-size:15px;
}
.guest-pop-top .counter small{
  color:var(--muted);
  font-size:11px;
}
.guest-pop-top .counter-controls{
  gap:14px;
}
.guest-pop-top .counter-controls button{
  width:38px;
  height:38px;
  border:1px solid var(--line-strong);
  background:#fff;
  color:var(--blue);
  font-size:20px;
}
.guest-pop-top .counter-controls button:hover{
  background:#eef4ff;
  border-color:#84adff;
}
.guest-pop-top .counter-controls>b{
  min-width:22px;
  text-align:center;
  font-size:16px;
}
.child-ages-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:10px;
  padding-top:12px;
}
.child-ages-grid .field label{
  min-height:auto;
}
.child-ages-grid .field select{
  height:44px;
  min-height:44px;
}
.guest-pop-footer{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  padding:13px 20px 16px;
  border-top:1px solid var(--line);
}
.guest-clear-btn{
  border:0;
  background:transparent;
  color:var(--muted);
  font-weight:700;
  cursor:pointer;
}
.guest-pop-footer .btn{
  min-width:112px;
  min-height:40px;
  padding:10px 16px;
}

@media(max-width:640px){
  .guest-pop-top{
    top:64px !important;
    left:50% !important;
    right:auto !important;
    bottom:auto !important;
    width:calc(100vw - 16px) !important;
    max-height:calc(100svh - 76px);
    border-radius:18px !important;
  }
  .guest-pop-header{
    padding:15px 16px 12px;
  }
  .guest-pop-content{
    padding:4px 16px 12px;
  }
  .guest-pop-footer{
    padding:12px 16px 14px;
  }
  .child-ages-grid{
    grid-template-columns:1fr;
  }
}


/* V23 — список месяцев слева и выбор периода без дополнительных действий */
.month-list-calendar{
  position:fixed !important;
  top:82px !important;
  left:50% !important;
  right:auto !important;
  bottom:auto !important;
  transform:translateX(-50%);
  width:min(650px,calc(100vw - 24px)) !important;
  max-height:calc(100svh - 100px);
  overflow:hidden;
  padding:0 !important;
  border:1px solid var(--line) !important;
  border-radius:20px !important;
  background:#fff;
  box-shadow:0 28px 80px rgba(16,24,40,.24) !important;
  z-index:500 !important;
}
.month-list-calendar-header{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:16px;
  padding:17px 20px 13px;
  border-bottom:1px solid var(--line);
}
.month-list-calendar-header h3{
  margin:0;
  font-size:18px;
  letter-spacing:-.02em;
}
.selected-period-line{
  display:grid;
  grid-template-columns:1fr auto 1fr auto;
  align-items:center;
  gap:12px;
  padding:12px 20px;
  background:#f8fafc;
  border-bottom:1px solid var(--line);
}
.selected-period-line>div{
  min-width:0;
}
.selected-period-line small{
  display:block;
  margin-bottom:2px;
  color:var(--muted);
  font-size:10px;
}
.selected-period-line b{
  display:block;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  font-size:13px;
}
.selected-period-line>span{
  color:#98a2b3;
}
.selected-period-line em{
  color:var(--blue);
  font-size:12px;
  font-style:normal;
  font-weight:700;
}
.month-list-calendar-body{
  display:grid;
  grid-template-columns:150px 1fr;
  min-height:365px;
}
.month-list-calendar .calendar-month-list{
  display:block;
  max-height:365px;
  padding:10px;
  overflow-y:auto;
  border-right:1px solid var(--line);
  background:#fafbfc;
}
.month-list-calendar .calendar-month-link{
  width:100%;
  padding:8px 10px;
  border:0;
  border-radius:9px;
  background:transparent;
  color:#667085;
  text-align:left;
  text-transform:capitalize;
  cursor:pointer;
}
.month-list-calendar .calendar-month-link:hover{
  background:#f2f4f7;
}
.month-list-calendar .calendar-month-link.active{
  background:#eef4ff;
  color:var(--blue);
  font-weight:800;
}
.compact-month-panel{
  padding:0;
}
.month-list-calendar .compact-calendar-nav{
  padding:13px 18px 7px;
}
.month-list-calendar .compact-weekdays{
  padding:0 18px;
}
.month-list-calendar .compact-calendar-days{
  padding:0 18px 14px;
}
.month-list-calendar-footer{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:14px;
  padding:12px 20px 14px;
  border-top:1px solid var(--line);
}
.month-list-calendar-footer span{
  color:var(--muted);
  font-size:11px;
  text-align:right;
}
.month-list-calendar .compact-day{
  min-height:38px !important;
}
.month-list-calendar .compact-day.in-range{
  background:#eaf2ff !important;
  color:#1849a9 !important;
}
.month-list-calendar .compact-day.selected{
  background:var(--blue) !important;
  color:#fff !important;
}

@media(max-width:640px){
  .month-list-calendar{
    top:64px !important;
    width:calc(100vw - 16px) !important;
    max-height:calc(100svh - 76px);
    overflow:auto;
    border-radius:18px !important;
  }
  .selected-period-line{
    grid-template-columns:1fr auto 1fr;
    padding:10px 14px;
  }
  .selected-period-line em{
    grid-column:1/-1;
    text-align:center;
  }
  .month-list-calendar-body{
    grid-template-columns:1fr;
    min-height:0;
  }
  .month-list-calendar .calendar-month-list{
    display:flex;
    gap:6px;
    max-height:none;
    overflow-x:auto;
    overflow-y:hidden;
    border-right:0;
    border-bottom:1px solid var(--line);
    padding:9px 10px;
  }
  .month-list-calendar .calendar-month-link{
    width:auto;
    flex:0 0 auto;
    white-space:nowrap;
  }
  .month-list-calendar .compact-calendar-nav{
    padding:11px 14px 6px;
  }
  .month-list-calendar .compact-weekdays,
  .month-list-calendar .compact-calendar-days{
    padding-left:14px;
    padding-right:14px;
  }
  .month-list-calendar-footer{
    padding:11px 14px 13px;
  }
  .month-list-calendar-footer span{
    display:none;
  }
}


/* V25 — «Моя бронь» как верхнее всплывающее окно */
.my-booking-popup{
  display:none;
  position:fixed;
  top:82px;
  left:50%;
  transform:translateX(-50%);
  width:min(440px,calc(100vw - 24px));
  max-height:calc(100svh - 100px);
  overflow:auto;
  background:#fff;
  border:1px solid var(--line);
  border-radius:20px;
  box-shadow:0 28px 80px rgba(16,24,40,.24);
  z-index:540;
}
.my-booking-popup.open{display:block}
body.my-booking-open::before{
  content:"";
  position:fixed;
  inset:0;
  background:rgba(15,23,42,.28);
  backdrop-filter:blur(3px);
  z-index:530;
}
.my-booking-header{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:16px;
  padding:18px 20px 14px;
  border-bottom:1px solid var(--line);
}
.my-booking-header h3{
  margin:0;
  font-size:18px;
  letter-spacing:-.02em;
}
.my-booking-form{padding:18px 20px 0}
.my-booking-field{margin-bottom:14px}
.my-booking-field label{
  display:block;
  margin-bottom:6px;
  color:#344054;
  font-size:12px;
  font-weight:700;
}
.my-booking-field input{
  width:100%;
  min-height:48px;
  padding:12px 14px;
  border:1px solid var(--line-strong);
  border-radius:12px;
  background:#fff;
  color:#101828;
  font:inherit;
  outline:none;
}
.my-booking-field input:focus{
  border-color:var(--blue);
  box-shadow:0 0 0 3px rgba(11,92,255,.10);
}
.my-booking-note{
  margin:2px 0 16px;
  color:var(--muted);
  font-size:11px;
  line-height:1.45;
}
.my-booking-footer{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  margin:0 -20px;
  padding:13px 20px 16px;
  border-top:1px solid var(--line);
}
.my-booking-footer .btn{
  min-width:130px;
  min-height:40px;
  padding:10px 16px;
}

/* Исправление мобильного блока гостей */
@media(max-width:640px){
  .my-booking-popup{
    top:64px;
    width:calc(100vw - 16px);
    max-height:calc(100svh - 76px);
    border-radius:18px;
  }
  .my-booking-header{padding:15px 16px 12px}
  .my-booking-form{padding:14px 16px 0}
  .my-booking-footer{
    margin:0 -16px;
    padding:12px 16px 14px;
  }

  .guest-pop-top{
    top:64px !important;
    width:min(360px,calc(100vw - 16px)) !important;
    max-height:calc(100svh - 76px) !important;
    overflow:auto !important;
    transform:translateX(-50%) scale(1) !important;
  }
  .guest-pop-header{
    padding:12px 14px 10px !important;
  }
  .guest-pop-header h3{
    font-size:16px !important;
  }
  .guest-pop-kicker{
    font-size:10px !important;
  }
  .guest-pop-close{
    width:30px !important;
    height:30px !important;
    flex-basis:30px !important;
    font-size:21px !important;
  }
  .guest-pop-content{
    padding:2px 14px 8px !important;
  }
  .guest-pop-top .counter{
    padding:11px 0 !important;
  }
  .guest-pop-top .counter>div:first-child b{
    font-size:14px !important;
  }
  .guest-pop-top .counter small{
    font-size:10px !important;
  }
  .guest-pop-top .counter-controls{
    gap:9px !important;
  }
  .guest-pop-top .counter-controls button{
    width:34px !important;
    height:34px !important;
    min-width:34px !important;
    padding:0 !important;
    font-size:18px !important;
    touch-action:manipulation;
  }
  .guest-pop-top .counter-controls>b{
    min-width:18px !important;
    font-size:14px !important;
  }
  .child-ages-grid{
    grid-template-columns:repeat(2,minmax(0,1fr)) !important;
    gap:8px !important;
    padding-top:8px !important;
  }
  .child-ages-grid .field{
    margin:0 !important;
  }
  .child-ages-grid .field label{
    margin-bottom:4px !important;
    font-size:10px !important;
  }
  .child-ages-grid .field select{
    width:100% !important;
    height:38px !important;
    min-height:38px !important;
    padding:7px 9px !important;
    font-size:12px !important;
  }
  .guest-pop-footer{
    position:sticky;
    bottom:0;
    padding:10px 14px 12px !important;
    background:#fff;
  }
  .guest-pop-footer .btn{
    min-width:100px !important;
    min-height:38px !important;
    padding:8px 14px !important;
  }
}

/* Не допускаем масштабирование формы Safari при фокусе */
@media(max-width:640px){
  .guest-pop-top input,
  .guest-pop-top select,
  .my-booking-popup input{
    font-size:16px !important;
  }
}


/* V27 — полное исправление мобильных всплывающих окон */
.guest-pop-top,
.my-booking-popup,
.month-list-calendar{
  box-sizing:border-box;
}
.guest-pop-top *,
.my-booking-popup *,
.month-list-calendar *{
  box-sizing:border-box;
}

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

  body.calendar-open,
  body.guest-pop-open,
  body.my-booking-open{
    overflow:hidden;
    touch-action:none;
  }

  /* Единая геометрия всех верхних окон */
  .guest-pop-top,
  .my-booking-popup,
  .month-list-calendar{
    top:calc(58px + env(safe-area-inset-top, 0px)) !important;
    left:8px !important;
    right:8px !important;
    bottom:auto !important;
    width:auto !important;
    max-width:none !important;
    transform:none !important;
    max-height:calc(
      100dvh - 74px - env(safe-area-inset-top, 0px) - env(safe-area-inset-bottom, 0px)
    ) !important;
    margin:0 !important;
    overflow:auto !important;
    border-radius:18px !important;
    overscroll-behavior:contain;
    -webkit-overflow-scrolling:touch;
  }

  /* Блок гостей */
  .guest-pop-top{
    display:none;
  }
  .guest-pop-top.open{
    display:block;
  }

  .guest-pop-header{
    position:sticky;
    top:0;
    z-index:3;
    padding:12px 14px 10px !important;
    background:#fff;
  }

  .guest-pop-content{
    width:100%;
    padding:0 14px 8px !important;
    overflow:hidden;
  }

  .guest-pop-top .counter{
    display:grid !important;
    grid-template-columns:minmax(0,1fr) auto;
    align-items:center;
    gap:10px;
    width:100%;
    min-width:0;
    padding:12px 0 !important;
  }

  .guest-pop-top .counter > div:first-child{
    min-width:0;
    overflow:hidden;
  }

  .guest-pop-top .counter > div:first-child b{
    display:block;
    font-size:15px !important;
    line-height:1.2;
  }

  .guest-pop-top .counter small{
    display:block;
    margin-top:4px;
    font-size:11px !important;
    line-height:1.2;
  }

  .guest-pop-top .counter-controls{
    display:grid !important;
    grid-template-columns:34px 24px 34px;
    align-items:center;
    justify-content:end;
    gap:7px !important;
    min-width:106px;
    flex:0 0 auto;
  }

  .guest-pop-top .counter-controls button{
    display:flex !important;
    align-items:center;
    justify-content:center;
    width:34px !important;
    min-width:34px !important;
    max-width:34px !important;
    height:34px !important;
    min-height:34px !important;
    padding:0 !important;
    margin:0 !important;
    border-radius:50% !important;
    font-size:19px !important;
    line-height:1 !important;
    touch-action:manipulation;
  }

  .guest-pop-top .counter-controls > b{
    display:block;
    min-width:24px !important;
    width:24px;
    text-align:center;
    font-size:15px !important;
    line-height:34px;
  }

  .child-ages-grid{
    display:grid !important;
    grid-template-columns:repeat(2,minmax(0,1fr)) !important;
    gap:8px !important;
    width:100%;
    padding-top:8px !important;
  }

  .child-ages-grid .field{
    min-width:0;
    margin:0 !important;
  }

  .child-ages-grid .field select{
    width:100% !important;
    min-width:0 !important;
    height:40px !important;
    min-height:40px !important;
  }

  .guest-pop-footer{
    position:sticky !important;
    left:0;
    right:0;
    bottom:0;
    z-index:4;
    display:grid !important;
    grid-template-columns:minmax(0,1fr) minmax(0,1.25fr);
    gap:8px !important;
    width:100%;
    margin:0 !important;
    padding:10px 14px calc(10px + env(safe-area-inset-bottom, 0px)) !important;
    background:#fff;
    border-top:1px solid var(--line);
  }

  .guest-pop-footer .guest-clear-btn,
  .guest-pop-footer .btn{
    width:100% !important;
    min-width:0 !important;
    max-width:none !important;
    height:44px !important;
    min-height:44px !important;
    margin:0 !important;
    padding:0 10px !important;
    border-radius:12px !important;
    font-size:15px !important;
    white-space:nowrap;
  }

  .guest-pop-footer .guest-clear-btn{
    border:1px solid var(--line) !important;
    background:#fff !important;
    color:#667085 !important;
  }

  /* «Моя бронь» */
  .my-booking-header{
    position:sticky;
    top:0;
    z-index:3;
    padding:12px 14px 10px !important;
    background:#fff;
  }

  .my-booking-form{
    width:100%;
    padding:12px 14px 0 !important;
  }

  .my-booking-field input{
    width:100% !important;
    min-width:0 !important;
    height:46px !important;
    min-height:46px !important;
  }

  .my-booking-footer{
    position:sticky;
    bottom:0;
    z-index:3;
    display:grid !important;
    grid-template-columns:minmax(0,1fr) minmax(0,1.25fr);
    gap:8px !important;
    width:auto !important;
    margin:0 -14px !important;
    padding:10px 14px calc(10px + env(safe-area-inset-bottom, 0px)) !important;
    background:#fff;
  }

  .my-booking-footer button{
    width:100% !important;
    min-width:0 !important;
    height:44px !important;
    min-height:44px !important;
    margin:0 !important;
    padding:0 10px !important;
    border-radius:12px !important;
    white-space:nowrap;
  }

  /* Календарь */
  .month-list-calendar-header{
    position:sticky;
    top:0;
    z-index:5;
    padding:12px 14px 10px !important;
    background:#fff;
  }

  .selected-period-line{
    grid-template-columns:minmax(0,1fr) auto minmax(0,1fr) !important;
    gap:8px !important;
    padding:10px 12px !important;
  }

  .month-list-calendar-body{
    width:100%;
    min-width:0;
  }

  .month-list-calendar .calendar-month-list{
    width:100%;
    max-width:100%;
  }

  .compact-month-panel,
  .compact-calendar-days,
  .compact-weekdays{
    width:100%;
    min-width:0;
  }

  .month-list-calendar-footer{
    position:sticky;
    bottom:0;
    z-index:4;
    padding:10px 14px calc(10px + env(safe-area-inset-bottom, 0px)) !important;
    background:#fff;
  }

  /* Safari не увеличивает страницу при фокусе */
  .guest-pop-top input,
  .guest-pop-top select,
  .my-booking-popup input{
    font-size:16px !important;
  }
}

@media(max-width:380px){
  .guest-pop-top .counter-controls{
    grid-template-columns:32px 22px 32px;
    min-width:100px;
    gap:6px !important;
  }

  .guest-pop-top .counter-controls button{
    width:32px !important;
    min-width:32px !important;
    max-width:32px !important;
    height:32px !important;
    min-height:32px !important;
  }

  .guest-pop-footer,
  .my-booking-footer{
    grid-template-columns:1fr 1.15fr;
  }
}


/* V28 — фиксированная ширина мобильного окна гостей через visual viewport */
@media(max-width:640px){
  :root{
    --mobile-viewport-width:100dvw;
    --mobile-viewport-left:0px;
  }

  html{
    width:100%;
    max-width:100%;
    overflow-x:clip !important;
  }

  body{
    width:100%;
    max-width:100%;
    min-width:0 !important;
    overflow-x:clip !important;
  }

  #guestPop.guest-pop-top{
    position:fixed !important;
    top:calc(58px + env(safe-area-inset-top, 0px)) !important;
    left:calc(var(--mobile-viewport-left) + 8px) !important;
    right:auto !important;
    width:calc(var(--mobile-viewport-width) - 16px) !important;
    min-width:0 !important;
    max-width:calc(var(--mobile-viewport-width) - 16px) !important;
    transform:none !important;
    margin:0 !important;
    padding:0 !important;
    contain:layout paint;
    overflow-x:hidden !important;
  }

  #guestPop,
  #guestPop .guest-pop-header,
  #guestPop .guest-pop-content,
  #guestPop .guest-pop-footer,
  #guestPop .counter,
  #guestPop .counter-controls{
    max-width:100% !important;
    min-width:0 !important;
  }

  #guestPop .guest-pop-content{
    overflow-x:hidden !important;
  }

  #guestPop .counter{
    grid-template-columns:minmax(0,1fr) 102px !important;
    column-gap:8px !important;
  }

  #guestPop .counter-controls{
    width:102px !important;
    min-width:102px !important;
    max-width:102px !important;
    grid-template-columns:32px 22px 32px !important;
    gap:8px !important;
    justify-self:end;
  }

  #guestPop .counter-controls button{
    width:32px !important;
    min-width:32px !important;
    max-width:32px !important;
    height:32px !important;
    min-height:32px !important;
  }

  #guestPop .counter-controls > b{
    width:22px !important;
    min-width:22px !important;
    max-width:22px !important;
    line-height:32px !important;
  }

  #guestPop .guest-pop-footer{
    grid-template-columns:minmax(0,1fr) minmax(0,1fr) !important;
    width:100% !important;
    max-width:100% !important;
    overflow:hidden !important;
  }

  #guestPop .guest-pop-footer button{
    width:100% !important;
    min-width:0 !important;
    max-width:100% !important;
    overflow:hidden;
    text-overflow:ellipsis;
  }
}


/* V29 — фон страницы больше не масштабируется при открытии гостей */
@media(max-width:640px){
  #guestLabel,
  #guestPop,
  #guestPop button,
  #guestPop select{
    touch-action:manipulation !important;
  }

  #guestLabel{
    -webkit-user-select:none;
    user-select:none;
  }

  body.guest-pop-open{
    position:fixed !important;
    left:0 !important;
    right:0 !important;
    width:100% !important;
    max-width:100% !important;
    overflow:hidden !important;
  }

  #guestPop.guest-pop-top{
    left:8px !important;
    right:8px !important;
    width:auto !important;
    max-width:none !important;
    min-width:0 !important;
    transform:none !important;
  }

  #guestPop.guest-pop-top.open{
    display:block !important;
  }
}


/* V30 — блок гостей реализован по той же модели, что календарь */
body.guest-pop-open{
  position:static !important;
  left:auto !important;
  right:auto !important;
  top:auto !important;
  width:auto !important;
  max-width:none !important;
  overflow:auto !important;
}

.guest-pop-top{
  display:none;
  position:fixed !important;
  top:82px !important;
  left:50% !important;
  right:auto !important;
  bottom:auto !important;
  transform:translateX(-50%) !important;
  width:min(430px,calc(100vw - 24px)) !important;
  max-width:calc(100vw - 24px) !important;
  min-width:0 !important;
  max-height:calc(100svh - 100px) !important;
  overflow:auto !important;
  margin:0 !important;
  padding:0 !important;
  border:1px solid var(--line) !important;
  border-radius:20px !important;
  background:#fff !important;
  box-shadow:0 28px 80px rgba(16,24,40,.24) !important;
  z-index:520 !important;
}

.guest-pop-top.open{
  display:block !important;
}

body.guest-pop-open::before{
  content:"";
  position:fixed;
  inset:0;
  background:rgba(15,23,42,.28);
  backdrop-filter:blur(3px);
  z-index:510;
}

@media(max-width:640px){
  body.guest-pop-open{
    position:static !important;
    width:auto !important;
    overflow:auto !important;
  }

  #guestPop.guest-pop-top{
    top:64px !important;
    left:8px !important;
    right:8px !important;
    width:auto !important;
    max-width:none !important;
    min-width:0 !important;
    transform:none !important;
    max-height:calc(100svh - 76px) !important;
    margin:0 !important;
    overflow:auto !important;
    border-radius:18px !important;
  }

  #guestPop .counter{
    display:grid !important;
    grid-template-columns:minmax(0,1fr) 110px !important;
    align-items:center !important;
    gap:8px !important;
    width:100% !important;
  }

  #guestPop .counter-controls{
    display:grid !important;
    grid-template-columns:34px 26px 34px !important;
    gap:8px !important;
    width:110px !important;
    min-width:110px !important;
    max-width:110px !important;
    justify-self:end !important;
  }

  #guestPop .counter-controls button{
    width:34px !important;
    min-width:34px !important;
    max-width:34px !important;
    height:34px !important;
    min-height:34px !important;
    padding:0 !important;
  }

  #guestPop .counter-controls>b{
    width:26px !important;
    min-width:26px !important;
    max-width:26px !important;
    text-align:center !important;
    line-height:34px !important;
  }

  #guestPop .guest-pop-footer{
    display:grid !important;
    grid-template-columns:1fr 1fr !important;
    gap:8px !important;
    width:100% !important;
    margin:0 !important;
  }

  #guestPop .guest-pop-footer button{
    width:100% !important;
    min-width:0 !important;
    max-width:none !important;
  }
}


/* V31 — единая архитектура календаря и выбора гостей */
.guest-trigger{
  width:100%;
  text-align:left;
  cursor:pointer;
}

.guest-calendar-modal{
  display:none;
  position:fixed !important;
  top:82px !important;
  left:50% !important;
  right:auto !important;
  bottom:auto !important;
  transform:translateX(-50%) !important;
  width:min(430px,calc(100vw - 24px)) !important;
  max-width:calc(100vw - 24px) !important;
  min-width:0 !important;
  max-height:calc(100svh - 100px) !important;
  padding:0 !important;
  overflow:auto !important;
  border:1px solid var(--line) !important;
  border-radius:20px !important;
  background:#fff !important;
  box-shadow:0 28px 80px rgba(16,24,40,.24) !important;
  z-index:520 !important;
  box-sizing:border-box !important;
}

.guest-calendar-modal.open{
  display:block !important;
}

.guest-calendar-modal *,
.guest-trigger *{
  box-sizing:border-box;
}

body.guest-pop-open{
  position:static !important;
  width:auto !important;
  max-width:none !important;
  overflow:auto !important;
}

body.guest-pop-open::before{
  content:"";
  position:fixed;
  inset:0;
  background:rgba(15,23,42,.28);
  backdrop-filter:blur(3px);
  z-index:510;
}

.guest-modal-header{
  padding:17px 20px 13px;
}

.guest-modal-header h3{
  margin:0;
  font-size:18px;
}

.guest-modal-content{
  padding:4px 20px 12px;
}

.guest-calendar-modal .counter{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  align-items:center;
  gap:16px;
  width:100%;
  padding:16px 0;
  border-bottom:1px solid var(--line);
}

.guest-calendar-modal .counter-controls{
  display:grid;
  grid-template-columns:38px 26px 38px;
  align-items:center;
  gap:10px;
}

.guest-calendar-modal .counter-controls button{
  display:flex;
  align-items:center;
  justify-content:center;
  width:38px;
  min-width:38px;
  height:38px;
  padding:0;
  border:1px solid var(--line-strong);
  border-radius:50%;
  background:#fff;
  color:var(--blue);
  font-size:20px;
}

.guest-calendar-modal .counter-controls>b{
  width:26px;
  text-align:center;
}

.guest-modal-footer{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:10px;
  padding:12px 20px 14px;
  background:#fff;
}

.guest-modal-footer button{
  width:100%;
  min-width:0;
  height:42px;
  min-height:42px;
  margin:0;
}

@media(max-width:640px){
  html,
  body{
    width:100%;
    max-width:100%;
    overflow-x:hidden !important;
  }

  .guest-calendar-modal{
    top:64px !important;
    left:8px !important;
    right:8px !important;
    width:auto !important;
    max-width:none !important;
    min-width:0 !important;
    transform:none !important;
    max-height:calc(100svh - 76px) !important;
    border-radius:18px !important;
  }

  .guest-modal-header{
    position:sticky;
    top:0;
    z-index:3;
    padding:12px 14px 10px !important;
    background:#fff;
  }

  .guest-modal-content{
    padding:0 14px 8px !important;
  }

  .guest-calendar-modal .counter{
    grid-template-columns:minmax(0,1fr) 106px !important;
    gap:8px !important;
    padding:12px 0 !important;
  }

  .guest-calendar-modal .counter-controls{
    grid-template-columns:32px 26px 32px !important;
    gap:8px !important;
    width:106px !important;
    min-width:106px !important;
  }

  .guest-calendar-modal .counter-controls button{
    width:32px !important;
    min-width:32px !important;
    height:32px !important;
    min-height:32px !important;
    font-size:18px !important;
  }

  .guest-calendar-modal .counter-controls>b{
    width:26px !important;
    min-width:26px !important;
    line-height:32px !important;
  }

  .guest-modal-footer{
    position:sticky;
    bottom:0;
    z-index:4;
    grid-template-columns:1fr 1fr !important;
    gap:8px !important;
    width:100% !important;
    margin:0 !important;
    padding:10px 14px calc(10px + env(safe-area-inset-bottom,0px)) !important;
  }

  .guest-modal-footer button{
    width:100% !important;
    min-width:0 !important;
    max-width:none !important;
    height:44px !important;
  }
}


/* V33 — режим iframe */
html[data-booking-mode="iframe"],
html[data-booking-mode="iframe"] body{
  background:#fff !important;
}

html[data-booking-mode="iframe"] body{
  min-height:auto !important;
}

html[data-booking-mode="iframe"] .site-header,
html[data-booking-mode="iframe"] .header,
html[data-booking-mode="iframe"] .hero,
html[data-booking-mode="iframe"] .trust-row{
  display:none !important;
}

html[data-booking-mode="iframe"] main,
html[data-booking-mode="iframe"] .container,
html[data-booking-mode="iframe"] .booking-shell{
  width:100% !important;
  max-width:none !important;
  margin:0 !important;
}

html[data-booking-mode="iframe"] .booking-shell{
  padding:12px !important;
  border-radius:0 !important;
  box-shadow:none !important;
  border:0 !important;
}

/* Кнопка «Моя бронь» остаётся доступной в iframe */
html[data-booking-mode="iframe"] .my-booking-trigger,
html[data-booking-mode="iframe"] #myBookingBtn{
  display:inline-flex !important;
}

/* Служебный режим для модального виджета */
html[data-booking-mode="widget"] .site-header,
html[data-booking-mode="widget"] .hero,
html[data-booking-mode="widget"] .trust-row{
  display:none !important;
}

html[data-booking-mode="widget"] body{
  background:#fff !important;
}

html[data-booking-mode="widget"] .booking-shell{
  margin:0 !important;
  border-radius:0 !important;
  box-shadow:none !important;
}

/* Автоматическая высота iframe */
html[data-booking-mode="iframe"]{
  overflow:hidden!important;
}
html[data-booking-mode="iframe"] body{
  overflow-x:hidden!important;
  overflow-y:hidden!important;
}

/* V91.71 — компактная вставка: в iframe остаются шкала шагов,
   форма поиска и строка преимуществ. */
html[data-booking-mode="iframe"] body.home-page{
  margin:0 !important;
  min-height:0 !important;
  overflow:visible !important;
  background:transparent !important;
}

html[data-booking-mode="iframe"] body.home-page .header,
html[data-booking-mode="iframe"] body.home-page .hero,
html[data-booking-mode="iframe"] body.home-page .ro-banner-slot,
html[data-booking-mode="iframe"] body.home-page .all-hotels-link,
html[data-booking-mode="iframe"] body.home-page .footer{
  display:none !important;
}

html[data-booking-mode="iframe"] body.home-page .steps{
  display:block !important;
  position:static !important;
  width:100% !important;
  margin:0 !important;
  border-top:1px solid var(--line) !important;
  border-bottom:1px solid var(--line) !important;
  background:#fff !important;
}

html[data-booking-mode="iframe"] body.home-page .steps-inner{
  width:100% !important;
  max-width:none !important;
  margin:0 !important;
  padding:10px !important;
  display:grid !important;
  grid-template-columns:repeat(5,minmax(0,1fr)) !important;
  gap:8px !important;
  overflow:hidden !important;
}

html[data-booking-mode="iframe"] body.home-page main.page{
  width:100% !important;
  min-height:0 !important;
  margin:0 !important;
  padding:0 !important;
}

html[data-booking-mode="iframe"] body.home-page .home-screen{
  width:100% !important;
  max-width:none !important;
  min-height:0 !important;
  margin:0 !important;
  padding:10px !important;
  display:grid !important;
  grid-template-rows:auto auto !important;
  gap:12px !important;
}

html[data-booking-mode="iframe"] body.home-page .home-screen > :not(#searchForm):not(.trust-strip){
  display:none !important;
}

html[data-booking-mode="iframe"] body.home-page #searchForm,
html[data-booking-mode="iframe"] body.home-page .trust-strip{
  margin:0 !important;
}

@media(max-width:640px){
  html[data-booking-mode="iframe"] body.home-page .steps-inner{
    padding:6px !important;
    gap:3px !important;
  }
  html[data-booking-mode="iframe"] body.home-page .step{
    min-width:0 !important;
    padding:6px 3px !important;
    font-size:10px !important;
    white-space:nowrap !important;
    overflow:hidden !important;
    text-overflow:ellipsis !important;
  }
  html[data-booking-mode="iframe"] body.home-page .home-screen{
    padding:6px !important;
    gap:8px !important;
  }
}


/* V34 / 1C live categories and tariffs */
.live-results-title{margin:0 0 20px}
.live-results-title h1{margin:0 0 6px}
.live-room-card{position:relative;flex-wrap:wrap}
.live-room-card .live-tariffs{
  width:100%;
  padding:0 20px 20px;
  border-top:1px solid rgba(148,163,184,.2);
}
.live-tariff-heading{padding:20px 0 8px}
.live-tariff-heading h3{margin:0 0 6px}
.live-tariff-heading p{margin:0;color:#64748b}
.live-tariff-card{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:20px;
  padding:18px;
  margin-top:12px;
  border:1px solid rgba(148,163,184,.24);
  border-radius:18px;
  background:#fff;
}
.live-tariff-card p{margin:6px 0 0;color:#64748b}
.live-tariff-price{
  display:flex;
  align-items:center;
  gap:16px;
  white-space:nowrap;
}
@media(max-width:700px){
  .live-tariff-card,.live-tariff-price{align-items:stretch;flex-direction:column}
  .live-tariff-price{white-space:normal}
}


/* Resort Online V34 Live */
.live-loading-card,.live-inline-loading{
  display:flex;align-items:center;gap:16px;padding:24px;
}
.live-loading-card h2,.live-loading-card p{margin:0}
.live-loading-card p{margin-top:5px;color:#667085}
.live-spinner{
  width:28px;height:28px;flex:0 0 auto;border-radius:50%;
  border:3px solid rgba(15,23,42,.12);border-top-color:currentColor;
  animation:roSpin .8s linear infinite;
}
@keyframes roSpin{to{transform:rotate(360deg)}}
.live-room-card{display:grid;grid-template-columns:260px minmax(0,1fr) 190px;overflow:hidden}
.live-room-card .room-media img{width:100%;height:100%;min-height:220px;object-fit:cover}
.live-room-card .room-body{padding:22px}
.live-room-card .room-price{padding:22px;display:flex;flex-direction:column;justify-content:center}
.live-room-card .live-tariffs{
  grid-column:1/-1;padding:0 22px 22px;border-top:1px solid rgba(15,23,42,.08)
}
.live-tariff-heading{padding-top:20px}
.live-tariff-heading h3,.live-tariff-heading p{margin:0}
.live-tariff-heading p{margin-top:5px;color:#667085}
.live-tariff-card{
  margin-top:12px;padding:18px;border:1px solid rgba(15,23,42,.1);
  border-radius:18px;background:#fff;display:flex;align-items:center;
  justify-content:space-between;gap:20px;
}
.live-tariff-copy{flex:1;min-width:0}
.live-tariff-card p{margin:6px 0 0;color:#667085}
.live-tariff-card .live-rate-description{max-width:760px;color:#475467;line-height:1.48}
.live-rate-description span{font-weight:700;color:#344054}
.live-rate-description a{color:var(--hotel-button-color,var(--blue,#18aee8));font-weight:700;text-decoration:underline;text-underline-offset:3px}
.live-rate-description a:hover{text-decoration-thickness:2px}
.live-rate-description-links{display:inline-flex;flex-wrap:wrap;gap:5px 9px;margin-top:3px}
.live-tariff-card .live-rate-conditions{max-width:760px;font-size:13px;line-height:1.45;color:#667085}
.live-rate-conditions span{font-weight:700;color:#475467}
.live-tariff-price{display:flex;align-items:center;gap:16px;white-space:nowrap}
.live-tariff-price-stack{display:flex;flex-direction:column;align-items:flex-end;min-width:0}
.live-price-benefit{display:flex;align-items:center;gap:7px;margin-bottom:4px;font-size:13px;line-height:1.2;white-space:nowrap}
.live-price-old{color:#667085;text-decoration:line-through;text-decoration-thickness:1.5px}
.live-price-divider{color:#98a2b3}
.live-price-discount{color:#d92d20;font-weight:800}
.live-price-saving{margin-bottom:6px;color:#16834a;font-size:13px;font-weight:800;line-height:1.2;white-space:nowrap}
.live-tariff-current-price{font-size:22px;line-height:1.15;color:#101828}
.room-price .live-price-benefit{margin-bottom:6px}
.live-empty{padding:28px}
.live-empty strong{font-size:20px}
.live-empty p{color:#667085}
.live-empty-error{color:#b42318}
.room-info-link{display:inline-block;margin-bottom:10px}
.live-api-error{
  position:fixed;right:20px;bottom:20px;z-index:10000;max-width:440px;
  background:#fff;border:1px solid #f2b8b5;border-radius:18px;padding:18px;
  box-shadow:0 18px 50px rgba(15,23,42,.18);color:#b42318
}
.live-api-error p{margin:6px 0 0}
@media(max-width:850px){
  .live-room-card{grid-template-columns:1fr}
  .live-room-card .room-media img{height:230px}
  .live-room-card .live-tariffs{grid-column:1}
  .live-tariff-card,.live-tariff-price{align-items:stretch;flex-direction:column;white-space:normal}
  .live-tariff-price-stack{align-items:flex-start}
}

.all-hotels-link{
  display:block;width:max-content;max-width:calc(100% - 32px);margin:22px auto;
  padding:10px 14px;border-radius:999px;background:#fff;color:#344054;
  text-decoration:none;font-size:14px;font-weight:700;
  border:1px solid rgba(15,23,42,.10)
}
.all-hotels-link:hover{background:#f8fafc}


/* V43 — фотографии категорий номеров из админки */
.live-room-gallery-open{
  position:relative;display:block;width:100%;height:100%;padding:0;border:0;background:none;cursor:pointer
}
.live-room-gallery-open img{display:block;width:100%;height:100%;object-fit:cover}
.live-photo-count{
  position:absolute;right:12px;bottom:12px;padding:7px 10px;border-radius:999px;
  background:rgba(15,23,42,.78);color:#fff;font-size:13px;font-weight:700
}
.live-room-gallery-modal{
  position:fixed;inset:0;z-index:20000;display:flex;align-items:center;justify-content:center;
  padding:24px;background:rgba(2,6,23,.88);backdrop-filter:blur(8px)
}
.live-room-gallery-dialog{
  position:relative;width:min(1100px,100%);height:min(760px,88vh);display:flex;align-items:center;justify-content:center
}
.live-gallery-image{max-width:100%;max-height:100%;object-fit:contain;border-radius:16px}
.live-gallery-close,.live-gallery-prev,.live-gallery-next{
  position:absolute;z-index:2;border:0;border-radius:999px;background:rgba(255,255,255,.92);
  color:#101828;cursor:pointer;box-shadow:0 10px 30px rgba(0,0,0,.25)
}
.live-gallery-close{right:0;top:0;width:44px;height:44px;font-size:28px}
.live-gallery-prev,.live-gallery-next{top:50%;transform:translateY(-50%);width:48px;height:48px;font-size:34px}
.live-gallery-prev{left:0}.live-gallery-next{right:0}
.live-gallery-counter{
  position:absolute;left:50%;bottom:12px;transform:translateX(-50%);
  background:rgba(15,23,42,.72);color:#fff;padding:7px 11px;border-radius:999px;font-weight:700
}

/* V44 */
@media (min-width: 901px){
  .home-screen .hero{margin-bottom:14px}
  .home-screen .search-card{margin-top:0;margin-bottom:18px;position:relative;z-index:3}
  .home-screen .trust-strip{margin-top:0}
}
.live-rate-meal{display:inline-flex;margin:7px 0 3px;padding:5px 8px;border-radius:999px;background:#f2f4f7;color:#344054;font-size:12px;font-weight:700}


/* V46 — индивидуальные цвета кнопок отеля */
:root{
  --hotel-button-color:#111827;
  --hotel-button-text-color:#ffffff;
  --hotel-button-hover-color:#000000;
}

button[type="submit"],
.primary-button,
.btn-primary,
.search-button,
.booking-button,
.js-live-room,
.live-rate-select,
.live-booking-submit,
.my-booking-button,
.hotel-action,
a.primary-button{
  background:var(--hotel-button-color)!important;
  color:var(--hotel-button-text-color)!important;
  border-color:var(--hotel-button-color)!important;
}

button[type="submit"]:hover,
.primary-button:hover,
.btn-primary:hover,
.search-button:hover,
.booking-button:hover,
.js-live-room:hover,
.live-rate-select:hover,
.live-booking-submit:hover,
.my-booking-button:hover,
a.primary-button:hover{
  background:var(--hotel-button-hover-color)!important;
  border-color:var(--hotel-button-hover-color)!important;
  color:var(--hotel-button-text-color)!important;
}

button[type="submit"]:disabled,
.primary-button:disabled,
.search-button:disabled,
.booking-button:disabled{
  opacity:.62;
  cursor:not-allowed;
}


/* V47 — поисковый блок непосредственно под баннером */
.home-page .home-screen{
  min-height:auto;
  display:grid;
  grid-template-rows:auto auto auto;
  align-content:start;
  gap:14px;
}

.home-page .hero{
  height:auto;
  min-height:clamp(260px,38vh,390px);
  max-height:none;
  margin:0;
}

.home-page .search-card{
  margin:0;
  position:relative;
  z-index:3;
}

.home-page .trust-strip{
  margin:0;
}

@media (min-width:981px){
  .home-page .page{
    padding-top:14px;
  }

  .home-page .home-screen{
    gap:12px;
  }

  .home-page .hero{
    min-height:clamp(250px,36vh,370px);
  }

  .home-page .search-card{
    transform:none;
  }
}

@media (max-height:760px) and (min-width:981px){
  .home-page .hero{
    min-height:230px;
    max-height:290px;
  }
}

@media (max-width:980px){
  .home-page .home-screen{
    gap:12px;
  }

  .home-page .hero{
    min-height:clamp(210px,34vh,310px);
  }
}

@media (max-width:640px){
  .home-page .home-screen{
    gap:10px;
  }

  .home-page .hero{
    min-height:210px;
  }
}


/* V51 — единая цветовая тема конкретного отеля */
:root{
  --brand-color:var(--hotel-button-color,#111827);
  --brand-hover-color:var(--hotel-button-hover-color,#000000);
  --brand-text-color:var(--hotel-button-text-color,#ffffff);
  --brand-soft:color-mix(in srgb,var(--brand-color) 10%,#ffffff);
  --brand-soft-strong:color-mix(in srgb,var(--brand-color) 18%,#ffffff);
  --brand-border:color-mix(in srgb,var(--brand-color) 52%,#ffffff);
  --brand-shadow:color-mix(in srgb,var(--brand-color) 24%,transparent);
}

/* Все основные кнопки, в том числе созданные JavaScript после загрузки страницы */
.btn,
button.btn,
a.btn,
.primary-button,
.btn-primary,
.search-button,
.booking-button,
.js-live-room,
.js-live-rate,
.live-rate-select,
.live-booking-submit,
.final-booking-btn,
.my-booking-button,
.guest-pop-footer .btn,
.guest-modal-footer .btn,
.compact-calendar-footer .btn,
.my-booking-footer .btn{
  background:var(--brand-color)!important;
  border-color:var(--brand-color)!important;
  color:var(--brand-text-color)!important;
  box-shadow:0 8px 20px var(--brand-shadow);
}

.btn:hover,
button.btn:hover,
a.btn:hover,
.primary-button:hover,
.btn-primary:hover,
.search-button:hover,
.booking-button:hover,
.js-live-room:hover,
.js-live-rate:hover,
.live-rate-select:hover,
.live-booking-submit:hover,
.final-booking-btn:hover,
.my-booking-button:hover,
.guest-pop-footer .btn:hover,
.guest-modal-footer .btn:hover,
.compact-calendar-footer .btn:hover,
.my-booking-footer .btn:hover{
  background:var(--brand-hover-color)!important;
  border-color:var(--brand-hover-color)!important;
  color:var(--brand-text-color)!important;
}

/* Состояния загрузки и disabled сохраняют фирменный цвет */
.btn:disabled,
button.btn:disabled,
.js-live-room:disabled,
.js-live-rate:disabled,
.live-rate-select:disabled,
.booking-button:disabled,
button[type="submit"]:disabled{
  background:var(--brand-color)!important;
  border-color:var(--brand-color)!important;
  color:var(--brand-text-color)!important;
  opacity:.58;
}

/* Акцентные элементы интерфейса также используют цвет отеля */
.step.active,
.calendar-day.today,
.calendar-day.selected,
.compact-day.today,
.compact-day.selected,
.guest-pop-top .counter-controls button,
.guest-calendar-modal .counter-controls button,
.counter-controls button:hover,
.live-room-card a,
.live-tariff-heading h3{
  color:var(--brand-color);
}

.step.active,
.calendar-day.selected,
.compact-day.selected,
.radio-card:has(input:checked),
.notice.blue,
.trust-icon{
  background:var(--brand-soft)!important;
}

.radio-card:has(input:checked),
.field input:focus,
.field select:focus,
.field textarea:focus,
.classic-date-input:focus,
.booking-date-field:focus{
  border-color:var(--brand-border)!important;
  box-shadow:0 0 0 4px var(--brand-soft)!important;
}

.calendar-day.selected,
.compact-day.selected{
  background:var(--brand-color)!important;
  color:var(--brand-text-color)!important;
}

.calendar-day.in-range,
.compact-day.in-range{
  background:var(--brand-soft-strong)!important;
}

.live-spinner{
  border-top-color:var(--brand-color)!important;
}

/* Вторичные контурные кнопки остаются светлыми, но получают фирменный акцент */
.btn-outline:hover,
.calendar-clear:hover,
.guest-clear-btn:hover{
  border-color:var(--brand-border)!important;
  color:var(--brand-color)!important;
  background:var(--brand-soft)!important;
}


/* V61 — результат поиска «Моя бронь» из системы выбранного отеля */
.my-booking-result{
  margin-top:16px;
}

.my-booking-success,
.my-booking-error{
  border-radius:16px;
  padding:16px;
}

.my-booking-success{
  background:var(--brand-soft,#f4f7fb);
  border:1px solid var(--brand-border,#d8e0ea);
}

.my-booking-error{
  background:#fff4f2;
  border:1px solid #ffc9c2;
  color:#a22b1f;
  font-weight:650;
}

.my-booking-success-head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:14px;
  margin-bottom:14px;
}

.my-booking-success-head span{
  display:block;
  color:#667085;
  font-size:12px;
  margin-bottom:3px;
}

.my-booking-success-head h4{
  margin:0;
  font-size:20px;
  line-height:1.2;
}

.my-booking-status{
  border-radius:999px;
  padding:7px 10px;
  background:var(--brand-color,#111827);
  color:var(--brand-text-color,#fff);
  font-size:12px;
  font-weight:750;
  white-space:nowrap;
}

.my-booking-summary{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:9px;
}

.my-booking-detail{
  min-width:0;
  padding:11px 12px;
  background:rgba(255,255,255,.86);
  border-radius:12px;
}

.my-booking-detail span{
  display:block;
  margin-bottom:4px;
  color:#7b8493;
  font-size:11px;
}

.my-booking-detail strong{
  display:block;
  overflow-wrap:anywhere;
  color:#151922;
  font-size:13px;
  line-height:1.35;
}

.my-booking-reservation{
  margin-top:12px;
  padding-top:12px;
  border-top:1px solid rgba(17,24,39,.09);
}

.my-booking-reservation-title{
  margin-bottom:9px;
  font-weight:750;
  font-size:13px;
}

.my-booking-empty{
  margin:12px 0 0;
  color:#667085;
  font-size:13px;
  line-height:1.45;
}

@media(max-width:560px){
  .my-booking-summary{
    grid-template-columns:1fr;
  }

  .my-booking-success-head{
    flex-direction:column;
  }
}


/* V62 — нижний блок © 2026 у нижнего края экрана на всех устройствах */
html{
  min-height:100%;
  min-height:100svh;
  min-height:100dvh;
}

body{
  min-height:100%;
  min-height:100svh;
  min-height:100dvh;
  display:flex;
  flex-direction:column;
}

body > main,
body > .main,
body > .page-main,
body > .booking-main{
  flex:1 0 auto;
}

.footer{
  flex:0 0 auto;
  margin-top:auto!important;
  width:100%;
}

/* Результат поиска заменяет форму, а не открывает второе окно */
.my-booking-popup.showing-result .my-booking-field,
.my-booking-popup.showing-result .my-booking-note,
.my-booking-popup.showing-result .my-booking-footer{
  display:none!important;
}

.my-booking-popup.showing-result .my-booking-form{
  padding-bottom:18px;
}

.my-booking-popup.showing-result .my-booking-result{
  margin-top:0;
}

.my-booking-result-actions{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  margin:16px -16px -16px;
  padding:13px 16px 0;
  border-top:1px solid rgba(17,24,39,.09);
}

.my-booking-result-actions .btn{
  min-width:118px;
}

@media(max-width:560px){
  .my-booking-result-actions{
    position:sticky;
    bottom:-16px;
    background:#fff;
    padding-bottom:max(0px,env(safe-area-inset-bottom,0px));
  }
}


/* V63 — полноразмерная информативная «Моя бронь» */
.my-booking-popup.showing-result{
  position:fixed!important; inset:20px!important; width:auto!important; max-width:1180px!important;
  height:calc(100dvh - 40px)!important; max-height:none!important; margin:auto!important;
  overflow:auto!important; border-radius:26px!important;
}
.my-booking-popup.showing-result .my-booking-header{position:sticky;top:0;z-index:5;background:rgba(255,255,255,.96);backdrop-filter:blur(16px)}
.my-booking-popup.showing-result .my-booking-form{padding:0 28px 28px!important}
.my-booking-page{display:grid;gap:22px}
.my-booking-page-hero{display:flex;justify-content:space-between;align-items:flex-start;gap:20px;padding:26px;border-radius:22px;background:linear-gradient(135deg,#f4f7fb,#fff);border:1px solid rgba(17,24,39,.08)}
.my-booking-page-hero h2{font-size:30px;margin:5px 0 4px}.my-booking-page-hero p{margin:0;color:#667085}
.my-booking-room-card{display:flex;justify-content:space-between;gap:24px;padding:22px;border:1px solid rgba(17,24,39,.11);border-radius:20px;background:#fff}
.my-booking-room-main{display:flex;gap:16px}.my-booking-room-index{display:grid;place-items:center;width:40px;height:40px;border-radius:12px;background:var(--blue);color:#fff;font-weight:800;flex:none}
.my-booking-room-card h3{margin:0 0 10px;font-size:20px}.my-booking-room-card p{margin:6px 0;color:#475467}.my-booking-room-price{font-size:23px;white-space:nowrap}
.my-booking-two-columns{display:grid;grid-template-columns:1fr 360px;gap:22px}.my-booking-info-card,.my-booking-totals,.my-booking-rules,.my-booking-payment{padding:22px;border:1px solid rgba(17,24,39,.11);border-radius:20px;background:#fff}
.my-booking-info-card h3,.my-booking-rules h3,.my-booking-payment h3{margin:0 0 14px}.my-booking-info-card p{margin:5px 0}.my-booking-totals .my-booking-detail{font-size:16px}.my-booking-totals .my-booking-detail:last-child{font-size:19px;font-weight:800}
.my-booking-rules div{line-height:1.62;color:#344054;white-space:normal}.my-booking-payment{display:grid;grid-template-columns:1fr 1.2fr;align-items:center;gap:24px;background:#f8fafc}.my-booking-payment p{color:#667085}
.my-booking-payment-options{display:grid;grid-template-columns:1fr 1fr;gap:14px}.payment-option{display:flex;flex-direction:column;gap:7px;padding:18px;border-radius:17px;border:1px solid rgba(17,24,39,.12);background:#fff;text-decoration:none;color:#101828;transition:.2s}.payment-option:hover{transform:translateY(-2px);box-shadow:0 12px 30px rgba(17,24,39,.10)}.payment-option strong{font-size:22px}.payment-option em{font-style:normal;font-weight:800;color:var(--blue)}.payment-option.primary{background:var(--blue);color:#fff;border-color:var(--blue)}.payment-option.primary em{color:#fff}
@media(max-width:800px){.my-booking-popup.showing-result{inset:0!important;height:100dvh!important;border-radius:0!important}.my-booking-popup.showing-result .my-booking-form{padding:0 16px calc(20px + env(safe-area-inset-bottom,0px))!important}.my-booking-page-hero,.my-booking-room-card{border-radius:16px}.my-booking-two-columns,.my-booking-payment{grid-template-columns:1fr}.my-booking-payment-options{grid-template-columns:1fr}.my-booking-room-card{flex-direction:column}.my-booking-room-price{padding-left:56px}.my-booking-page-hero h2{font-size:25px}}


/* V64 — календарь активный, чёткий и выше затемняющего слоя */
body.calendar-open{
  overflow:hidden;
}

body.calendar-open::before{
  content:"";
  position:fixed;
  inset:0;
  z-index:2147482000!important;
  background:rgba(15,23,42,.36)!important;
  -webkit-backdrop-filter:none!important;
  backdrop-filter:none!important;
  filter:none!important;
  pointer-events:auto!important;
}

#rangeCalendar.month-list-calendar{
  position:fixed!important;
  top:82px!important;
  left:50%!important;
  right:auto!important;
  bottom:auto!important;
  z-index:2147483000!important;
  transform:translateX(-50%) translateZ(0)!important;
  -webkit-transform:translateX(-50%) translateZ(0)!important;
  opacity:1!important;
  visibility:visible!important;
  filter:none!important;
  -webkit-filter:none!important;
  -webkit-backdrop-filter:none!important;
  backdrop-filter:none!important;
  pointer-events:auto!important;
  isolation:isolate;
  background:#fff!important;
}

#rangeCalendar.month-list-calendar:not(.open){
  display:none!important;
}

#rangeCalendar.month-list-calendar.open{
  display:block!important;
}

#rangeCalendar,
#rangeCalendar *,
#rangeCalendar button,
#rangeCalendar .calendar-day,
#rangeCalendar .calendar-month-link{
  pointer-events:auto!important;
}

#rangeCalendar .calendar-day:not(.empty):not(:disabled),
#rangeCalendar .calendar-month-link,
#rangeCalendar .calendar-arrow-btn,
#rangeCalendar .calendar-close,
#rangeCalendar .calendar-clear{
  cursor:pointer!important;
}

#rangeCalendar .compact-day{
  opacity:1!important;
  filter:none!important;
}

#rangeCalendar .compact-day:disabled,
#rangeCalendar .compact-day.past{
  opacity:.34!important;
  cursor:not-allowed!important;
}

#rangeCalendar .compact-day:not(:disabled):not(.past){
  color:#101828!important;
  font-weight:650;
}

#rangeCalendar .compact-day:hover:not(:disabled):not(.past){
  background:#eef4ff!important;
}

@media(max-width:640px){
  #rangeCalendar.month-list-calendar{
    top:8px!important;
    bottom:8px!important;
    width:calc(100vw - 16px)!important;
    max-height:none!important;
    height:calc(100svh - 16px)!important;
    overflow:auto!important;
  }
}


/* V65 — окончательное исправление неактивного календаря */
body.calendar-open::before{
  content:none!important;
  display:none!important;
  pointer-events:none!important;
}

.range-calendar-overlay{
  display:none;
  position:fixed;
  inset:0;
  z-index:2147483000;
  background:rgba(15,23,42,.36);
  pointer-events:auto;
  -webkit-backdrop-filter:none;
  backdrop-filter:none;
}

.range-calendar-overlay.open{
  display:block;
}

body > #rangeCalendar.month-list-calendar{
  z-index:2147483001!important;
  pointer-events:auto!important;
  opacity:1!important;
  filter:none!important;
  -webkit-filter:none!important;
  -webkit-backdrop-filter:none!important;
  backdrop-filter:none!important;
}

body > #rangeCalendar.month-list-calendar.open,
body > #rangeCalendar.month-list-calendar.open *{
  pointer-events:auto!important;
}

body > #rangeCalendar.month-list-calendar button:disabled{
  pointer-events:none!important;
}


/* V66 — «Моя бронь» на полноценной странице подтверждения */
.mbc-page{width:min(1240px,calc(100% - 32px));margin:30px auto 80px}
.mbc-toolbar{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:16px;color:#667085;font-size:14px}
.mbc-back{color:inherit;text-decoration:none;font-weight:700}
.mbc-header{display:flex;justify-content:space-between;gap:28px;padding:30px;background:#f7f8fa;border-radius:22px;margin-bottom:24px}
.mbc-eyebrow{display:block;margin-bottom:8px;color:var(--blue,#2563eb);font-size:13px;font-weight:800;text-transform:uppercase;letter-spacing:.05em}
.mbc-header h1{margin:0 0 8px;font-size:clamp(28px,4vw,44px);line-height:1.05}
.mbc-header p{margin:0;color:#667085}
.mbc-total-top{min-width:190px;text-align:right}.mbc-total-top span{display:block;margin-bottom:5px;color:#667085}.mbc-total-top strong{font-size:30px}
.mbc-grid{display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:24px;align-items:start}
.mbc-content{display:grid;gap:20px}
.mbc-room-card,.mbc-section,.mbc-payment-card,.mbc-empty{border:1px solid #e4e7ec;border-radius:20px;background:#fff;box-shadow:0 10px 34px rgba(16,24,40,.055)}
.mbc-room-card{display:flex;justify-content:space-between;gap:24px;padding:24px}
.mbc-room-index,.mbc-section span,.mbc-contact-grid span{color:#667085;font-size:13px}
.mbc-room-card h2,.mbc-section h2,.mbc-payment-card h2{margin:5px 0 16px}
.mbc-room-meta{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 24px}
.mbc-guests{display:flex;flex-wrap:wrap;gap:8px;margin-top:18px}.mbc-guests span{padding:7px 10px;border-radius:999px;background:#f2f4f7}
.mbc-room-price{white-space:nowrap;font-size:24px}
.mbc-section,.mbc-empty{padding:24px}
.mbc-contact-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.mbc-contact-grid strong{display:block;margin-top:5px;overflow-wrap:anywhere}
.mbc-rules div{color:#475467;line-height:1.65}
.mbc-payment-card{position:sticky;top:24px;padding:24px}
.mbc-payment-row{display:flex;justify-content:space-between;gap:20px;padding:11px 0;border-bottom:1px solid #eaecf0}
.mbc-balance{margin-bottom:18px;font-size:18px}
.mbc-payment-options{display:grid;gap:10px;margin-bottom:16px}
.mbc-payment-option{display:flex;align-items:center;gap:12px;padding:14px;border:1px solid #d0d5dd;border-radius:14px;cursor:pointer}
.mbc-payment-option.active{border-color:var(--blue,#2563eb);box-shadow:0 0 0 3px color-mix(in srgb,var(--blue,#2563eb) 14%,transparent)}
.mbc-payment-option span,.mbc-payment-option small{display:block}.mbc-payment-option small{margin-top:3px;color:#667085}
.mbc-pay-button{width:100%;min-height:48px}.mbc-payment-note{margin:12px 0 0;color:#667085;font-size:12px;text-align:center}
@media(max-width:900px){.mbc-grid{grid-template-columns:1fr}.mbc-payment-card{position:static}}
@media(max-width:640px){.mbc-page{width:min(100% - 20px,1240px);margin-top:12px}.mbc-header,.mbc-room-card{flex-direction:column}.mbc-total-top{text-align:left}.mbc-room-meta,.mbc-contact-grid{grid-template-columns:1fr}.mbc-room-price{font-size:22px}}


/* V67 — прежний вид «Моя бронь» на странице подтверждения */
.my-booking-confirmation-wrap{
  padding-top:24px;
  padding-bottom:70px;
}

.my-booking-confirmation-top{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:16px;
  margin-bottom:16px;
  color:#667085;
  font-size:14px;
}

.my-booking-confirmation-top a{
  color:inherit;
  text-decoration:none;
  font-weight:700;
}

.my-booking-confirmation-title{
  display:flex;
  justify-content:space-between;
  gap:24px;
  padding:24px;
  margin-bottom:20px;
  border:1px solid #e4e7ec;
  border-radius:18px;
  background:#f8f9fb;
}

.my-booking-confirmation-title > div > span{
  color:var(--blue,#2563eb);
  font-size:13px;
  font-weight:800;
}

.my-booking-confirmation-title h1{
  margin:6px 0;
  font-size:32px;
}

.my-booking-confirmation-title p{
  margin:0;
  color:#667085;
}

.my-booking-confirmation-total{
  text-align:right;
}

.my-booking-confirmation-total span{
  display:block;
  margin-bottom:5px;
  color:#667085;
}

.my-booking-confirmation-total strong{
  font-size:28px;
}

.my-booking-confirmation-layout{
  display:grid;
  grid-template-columns:minmax(0,1fr) 340px;
  gap:20px;
  align-items:start;
}

.my-booking-confirmation-main{
  display:grid;
  gap:16px;
}

.my-booking-confirm-card,
.my-booking-confirm-payment{
  padding:22px;
  border:1px solid #e4e7ec;
  border-radius:18px;
  background:#fff;
  box-shadow:0 8px 28px rgba(16,24,40,.05);
}

.my-booking-confirm-card h2,
.my-booking-confirm-payment h2{
  margin:0 0 16px;
  font-size:20px;
}

.my-booking-confirm-card-head{
  display:flex;
  justify-content:space-between;
  gap:20px;
  margin-bottom:18px;
}

.my-booking-confirm-card-head span{
  color:#667085;
  font-size:13px;
}

.my-booking-confirm-card-head h2{
  margin:4px 0 0;
}

.my-booking-confirm-card-head > strong{
  white-space:nowrap;
  font-size:24px;
}

.my-booking-confirm-details,
.my-booking-confirm-contact{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:14px;
}

.my-booking-confirm-details div,
.my-booking-confirm-contact div{
  padding:12px;
  border-radius:12px;
  background:#f8f9fb;
}

.my-booking-confirm-details span,
.my-booking-confirm-contact span{
  display:block;
  margin-bottom:4px;
  color:#667085;
  font-size:12px;
}

.my-booking-confirm-guests{
  margin-top:18px;
  padding-top:18px;
  border-top:1px solid #eaecf0;
}

.my-booking-confirm-guests > span{
  display:block;
  margin-bottom:10px;
  color:#667085;
  font-size:13px;
}

.my-booking-confirm-guests > div{
  display:flex;
  justify-content:space-between;
  gap:16px;
  padding:10px 0;
  border-top:1px solid #f0f2f5;
}

.my-booking-confirm-rules{
  color:#475467;
  line-height:1.65;
}

.my-booking-confirm-payment{
  position:sticky;
  top:20px;
}

.my-booking-confirm-payment-line{
  display:flex;
  justify-content:space-between;
  gap:16px;
  padding:10px 0;
  border-bottom:1px solid #eaecf0;
}

.my-booking-confirm-payment-line.balance{
  margin-bottom:16px;
  font-size:17px;
}

.my-booking-confirm-pay-option{
  display:flex;
  gap:10px;
  align-items:center;
  padding:13px;
  margin-bottom:10px;
  border:1px solid #d0d5dd;
  border-radius:13px;
  cursor:pointer;
}

.my-booking-confirm-pay-option.active{
  border-color:var(--blue,#2563eb);
  box-shadow:0 0 0 3px rgba(37,99,235,.1);
}

.my-booking-confirm-pay-option span,
.my-booking-confirm-pay-option small{
  display:block;
}

.my-booking-confirm-pay-option small{
  margin-top:3px;
  color:#667085;
}

.my-booking-confirm-pay-button{
  width:100%;
  min-height:48px;
  margin-top:4px;
}

@media(max-width:900px){
  .my-booking-confirmation-layout{
    grid-template-columns:1fr;
  }

  .my-booking-confirm-payment{
    position:static;
  }
}

@media(max-width:620px){
  .my-booking-confirmation-title,
  .my-booking-confirm-card-head{
    flex-direction:column;
  }

  .my-booking-confirmation-total{
    text-align:left;
  }

  .my-booking-confirm-details,
  .my-booking-confirm-contact{
    grid-template-columns:1fr;
  }
}


/* V68 — полная информация «Моя бронь» из 1С:Отеля */
.one-c-booking-page{padding-top:24px;padding-bottom:80px}
.one-c-booking-nav{display:flex;justify-content:flex-end;gap:18px;margin-bottom:18px;font-weight:700}
.one-c-booking-nav a{color:inherit;text-decoration:none}
.one-c-hotel-card{display:grid;grid-template-columns:320px 1fr;gap:28px;padding:28px;margin-bottom:22px;background:#f2f3f5;border-radius:4px}
.one-c-hotel-card>div>span{font-size:13px;color:#667085}
.one-c-hotel-card h1{margin:6px 0;font-size:30px}
.one-c-stars{font-size:21px;letter-spacing:2px}
.one-c-hotel-details p{margin:7px 0}
.one-c-hotel-details a{color:inherit}
.one-c-booking-number{margin:20px 8px;font-size:27px}
.one-c-booking-room,.one-c-booking-section{margin:0 8px 28px;padding:22px;border:1px solid color-mix(in srgb,var(--blue,#98602f) 65%,#d0d5dd);border-radius:7px;background:#fff}
.one-c-booking-room-top{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:22px;align-items:start}
.one-c-booking-room-top img{width:130px;height:112px;object-fit:cover}
.one-c-booking-room-info>span{font-size:12px;color:#667085}
.one-c-booking-room-info h2{margin:3px 0 8px;font-size:21px}
.one-c-booking-room-info p{margin:5px 0}
.one-c-booking-room-price{text-align:right}.one-c-booking-room-price strong{display:block;font-size:27px}.one-c-booking-room-price span{font-size:13px;font-weight:700}
.one-c-booking-guests{margin:18px 0 0;padding-left:152px}
.one-c-booking-guests>div{display:grid;grid-template-columns:120px 1fr;gap:10px;padding:14px 0;border-top:1px solid #d0d5dd}
.one-c-booking-guests span{font-size:13px}.one-c-booking-guests b{display:block}.one-c-booking-guests small{grid-column:2;color:#667085}
.one-c-inline-services{margin:14px 0 0 152px;padding-top:14px;border-top:1px solid #eaecf0}.one-c-inline-services span{display:block;margin-top:6px}
.one-c-booking-contact{margin:32px 8px;padding:0}.one-c-booking-contact h2{font-size:20px}.one-c-booking-contact b,.one-c-booking-contact span{display:block;margin:3px 0}
.one-c-rules div{line-height:1.55}
.one-c-totals{width:max-content;min-width:370px;margin:32px 8px;padding:16px 22px;border:1px solid color-mix(in srgb,var(--blue,#98602f) 65%,#d0d5dd);border-radius:7px;font-size:21px}
.one-c-totals div{display:flex;justify-content:space-between;gap:24px}
.one-c-services-list>div{display:flex;justify-content:space-between;padding:11px 0;border-top:1px solid #eaecf0}
.one-c-payment-section{margin-top:36px;padding-top:20px;border-top:1px solid #d0d5dd}
.one-c-payment-section h2{font-size:26px}
.one-c-payment-option{display:flex;align-items:center;gap:12px;padding:15px 18px;border-top:1px solid #d0d5dd;background:#f3f4f6;cursor:pointer}
.one-c-payment-option:last-of-type{border-bottom:1px solid #d0d5dd}
.one-c-payment-option.active{box-shadow:inset 4px 0 0 var(--blue,#98602f)}
.one-c-payment-option span,.one-c-payment-option small{display:block}.one-c-payment-option small{margin-top:3px}
.one-c-pay-button{margin:14px 0 0 18px}
@media(max-width:760px){
 .one-c-hotel-card{grid-template-columns:1fr}
 .one-c-booking-room-top{grid-template-columns:1fr}
 .one-c-booking-room-top img{width:100%;height:190px}
 .one-c-booking-room-price{text-align:left}
 .one-c-booking-guests,.one-c-inline-services{margin-left:0;padding-left:0}
 .one-c-booking-guests>div{grid-template-columns:100px 1fr}
 .one-c-totals{width:auto;min-width:0}
}


/* V69 — защита от вечной загрузки «Моя бронь» */
html.my-booking-booting main.page{
  opacity:1!important;
  filter:none!important;
  pointer-events:auto!important;
}
.one-c-booking-load-error{
  max-width:680px;
  margin:80px auto;
  padding:34px;
  border:1px solid #e4e7ec;
  border-radius:20px;
  background:#fff;
  text-align:center;
  box-shadow:0 14px 40px rgba(16,24,40,.08);
}
.one-c-booking-load-error h1{margin:0 0 12px;font-size:28px}
.one-c-booking-load-error p{margin:0 auto 22px;max-width:520px;color:#667085;line-height:1.6}
body.one-c-booking-mode .booking-loading,
body.one-c-booking-mode .loading-overlay,
body.one-c-booking-mode [data-booking-loading]{display:none!important}


/* V70 — бронь создаётся в 1С до страницы оплаты */
.created-booking-summary{margin-bottom:24px}.created-booking-status{display:flex;align-items:center;gap:14px;padding:16px;margin-bottom:20px;border-radius:14px;background:#edf9f0}.created-booking-status>span{display:grid;place-items:center;width:38px;height:38px;border-radius:50%;background:#34a853;color:#fff;font-size:22px}.created-booking-status small,.created-booking-grid span{display:block;color:#667085;font-size:12px}.created-booking-status b{display:block;margin-top:3px;font-size:18px}.created-booking-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.created-booking-grid>div{padding:13px;border-radius:12px;background:#f8f9fb}.created-booking-grid b{display:block;margin-top:5px}.created-booking-contact{color:#475467}.created-booking-rules{margin-top:16px;border-top:1px solid #e4e7ec;padding-top:14px}.created-booking-rules summary{cursor:pointer;font-weight:700}.created-booking-rules div{padding-top:12px;line-height:1.55;color:#475467}.created-pay-option{display:flex;align-items:center;gap:12px;padding:16px;margin-bottom:10px;border:1px solid #d0d5dd;border-radius:14px;cursor:pointer}.created-pay-option.active{border-color:var(--blue,#2563eb);box-shadow:0 0 0 3px rgba(37,99,235,.1)}.created-pay-option span,.created-pay-option small{display:block}.created-pay-option small{margin-top:4px;color:#667085}@media(max-width:600px){.created-booking-grid{grid-template-columns:1fr}}


/* V79 — страница по алгоритму старого рабочего модуля */
.legacy-booking-page{padding-top:24px;padding-bottom:80px}
.legacy-top-nav{display:flex;justify-content:flex-end;gap:18px;margin-bottom:18px;font-weight:700}
.legacy-top-nav a{color:inherit;text-decoration:none}
.legacy-hotel{display:grid;grid-template-columns:300px 1fr;gap:28px;padding:28px;background:#f1f2f4;margin-bottom:22px}
.legacy-hotel h1{margin:6px 0;font-size:30px}
.legacy-hotel>div>span{font-size:13px;color:#667085}
.legacy-hotel p{margin:7px 0}
.legacy-booking-number{font-size:27px;margin:22px 8px 10px}
.legacy-status{display:inline-flex;margin:0 8px 18px;padding:7px 12px;border-radius:999px;background:#ecfdf3;color:#027a48;font-weight:700}
.legacy-booking-room,.legacy-card{margin:0 8px 26px;padding:22px;border:1px solid color-mix(in srgb,var(--blue,#8c5a32) 65%,#d0d5dd);border-radius:7px;background:#fff}
.legacy-room-head{display:flex;justify-content:space-between;gap:22px}
.legacy-room-head h2{margin:4px 0 8px}
.legacy-room-head small{color:#667085}
.legacy-room-head p{margin:5px 0}
.legacy-room-price{text-align:right;white-space:nowrap}
.legacy-room-price strong{display:block;font-size:26px}
.legacy-room-price span{font-size:13px;font-weight:700}
.legacy-guests{margin-top:18px;padding-top:8px;border-top:1px solid #d0d5dd}
.legacy-guests article{display:grid;grid-template-columns:120px 1fr;gap:5px 15px;padding:12px 0;border-bottom:1px solid #eaecf0}
.legacy-guests article>span{font-size:13px;color:#667085}
.legacy-guests article>small{grid-column:2;color:#667085}
.legacy-row-services{margin-top:18px;padding-top:14px;border-top:1px solid #d0d5dd}
.legacy-row-services>div,.legacy-service{display:flex;justify-content:space-between;gap:20px;padding:9px 0;border-top:1px solid #eaecf0}

/* V91.68 — выбор дополнительных услуг гостиницы */
.booking-services-section[hidden]{display:none!important}.booking-services-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:18px}.booking-services-heading .section-description{margin-bottom:14px}.booking-services-count{flex:0 0 auto;border-radius:999px;background:#eef6fa;color:#23627a;padding:6px 11px;font-size:12px;font-weight:700}.booking-services-list{display:grid;gap:10px}.booking-service-card{position:relative;display:grid;grid-template-columns:24px minmax(0,1fr) auto;align-items:center;gap:12px;border:1px solid #dce3e8;border-radius:12px;padding:14px 16px;background:#fff;cursor:pointer;transition:border-color .16s ease,box-shadow .16s ease,background .16s ease}.booking-service-card:hover{border-color:var(--hotel-button-color,var(--blue));box-shadow:0 5px 18px rgba(15,23,42,.08)}.booking-service-card input{position:absolute;opacity:0;pointer-events:none}.booking-service-check{display:flex;width:24px;height:24px;align-items:center;justify-content:center;border:2px solid #bcc7cf;border-radius:7px;color:transparent;font-size:15px;font-weight:900}.booking-service-card.is-selected{border-color:var(--hotel-button-color,var(--blue));background:color-mix(in srgb,var(--hotel-button-color,var(--blue)) 5%,#fff)}.booking-service-card.is-selected .booking-service-check{border-color:var(--hotel-button-color,var(--blue));background:var(--hotel-button-color,var(--blue));color:var(--hotel-button-text-color,#fff)}.booking-service-copy{min-width:0}.booking-service-copy b,.booking-service-copy small,.booking-service-copy em{display:block}.booking-service-copy b{font-size:15px;color:var(--text)}.booking-service-copy small{margin-top:4px;color:var(--muted);line-height:1.45}.booking-service-copy em{margin-top:5px;color:#667085;font-size:12px;font-style:normal}.booking-service-card>strong{white-space:nowrap;font-size:15px;color:var(--text)}.booking-service-card.is-disabled{opacity:.58;background:#f5f6f7;cursor:not-allowed}.booking-service-card.is-disabled:hover{border-color:#dce3e8;box-shadow:none}.booking-services-note{margin-top:12px;padding:10px 12px;border-radius:9px;background:#fff8e8;color:#7a5a12;font-size:12px;line-height:1.45}@media(max-width:620px){.booking-services-heading{display:block}.booking-services-count{display:inline-flex;margin-bottom:12px}.booking-service-card{grid-template-columns:24px minmax(0,1fr)}.booking-service-card>strong{grid-column:2;margin-top:2px}}
.my-booking-services,.ro-doc-services{margin-top:18px;padding:20px;border:1px solid #e3e8ec;border-radius:14px;background:#fff}.my-booking-services h3,.ro-doc-services h2{margin-top:0}.my-booking-services article,.ro-doc-services-list article{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:11px 0;border-top:1px solid #edf0f2}.my-booking-services article:first-child,.ro-doc-services-list article:first-child{border-top:0}.my-booking-services article small,.ro-doc-services-list article small{display:block;margin-top:3px;color:#667085}.my-booking-services article strong,.ro-doc-services-list article strong{white-space:nowrap}.ro-doc-services>p{margin:12px 0 0;color:#7a5a12;font-size:13px}.ro-doc-services .ro-doc-section-heading{margin-bottom:8px}@media(max-width:600px){.my-booking-services article,.ro-doc-services-list article{align-items:flex-start;flex-direction:column;gap:5px}}
.legacy-contact{margin:34px 8px 26px}
.legacy-contact b,.legacy-contact span,.legacy-contact a{display:block;margin:3px 0}
.legacy-rule{padding:10px 0;border-top:1px solid #eaecf0}
.legacy-rule:first-of-type{border-top:0}
.legacy-rule p{line-height:1.6;color:#475467}
.legacy-totals{width:max-content;min-width:390px;margin:30px 8px;padding:16px 22px;border:1px solid color-mix(in srgb,var(--blue,#8c5a32) 65%,#d0d5dd);border-radius:7px;font-size:20px}
.legacy-totals div{display:flex;justify-content:space-between;gap:30px}
.legacy-payment{margin:38px 0 0;padding-top:22px;border-top:1px solid #d0d5dd}
.legacy-pay-option{display:flex;align-items:center;gap:12px;padding:15px 18px;border-top:1px solid #d0d5dd;background:#f3f4f6;cursor:pointer}
.legacy-pay-option:last-of-type{border-bottom:1px solid #d0d5dd}
.legacy-pay-option.active{box-shadow:inset 4px 0 0 var(--blue,#8c5a32)}
.legacy-pay-option span,.legacy-pay-option small{display:block}
.legacy-pay-option small{margin-top:3px}
.legacy-pay-button{margin:14px 0 0 18px}
.legacy-payment-codes{margin-left:18px;color:#667085;font-size:12px}
.legacy-print{margin-top:26px;border:0;background:transparent;text-decoration:underline;cursor:pointer}
@media(max-width:700px){
 .legacy-hotel{grid-template-columns:1fr}
 .legacy-room-head{flex-direction:column}
 .legacy-room-price{text-align:left}
 .legacy-guests article{grid-template-columns:1fr}
 .legacy-guests article>small{grid-column:1}
 .legacy-totals{width:auto;min-width:0}
}
@media print{
 .header,.steps,.footer,.all-hotels-link,.legacy-top-nav,.legacy-payment,.legacy-print{display:none!important}
 .legacy-booking-page{padding:0}
}


/* V81 — подтверждение бронирования в едином дизайне Resort Online */
html.ro-booking-document,
body.ro-booking-document{
  background:#f7f7f8;
}
body.ro-booking-document main.page{
  padding:0;
  min-height:100vh;
}
.ro-doc-shell{
  width:min(1120px,calc(100% - 32px));
  margin:0 auto;
  padding:40px 0 80px;
}
.ro-doc-hero{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:24px;
  padding:4px 0 28px;
}
.ro-doc-eyebrow{
  display:block;
  margin-bottom:8px;
  color:#7b7f8a;
  font-size:12px;
  line-height:1.2;
  font-weight:800;
  letter-spacing:.08em;
  text-transform:uppercase;
}
.ro-doc-hero h1{
  margin:0;
  font-size:clamp(30px,4vw,46px);
  line-height:1.08;
  letter-spacing:-.035em;
}
.ro-doc-status{
  display:inline-flex;
  margin-top:14px;
  padding:7px 11px;
  border-radius:999px;
  background:color-mix(in srgb,var(--blue,#8c5a32) 10%,#fff);
  color:var(--blue,#8c5a32);
  font-size:13px;
  font-weight:800;
}
.ro-doc-print{
  display:inline-flex;
  align-items:center;
  gap:8px;
  min-height:44px;
  padding:0 16px;
  border:1px solid #dedfe3;
  border-radius:12px;
  background:#fff;
  color:#202124;
  font:inherit;
  font-weight:700;
  cursor:pointer;
  transition:.2s ease;
}
.ro-doc-print:hover{
  border-color:var(--blue,#8c5a32);
  transform:translateY(-1px);
}
.ro-doc-payment,
.ro-doc-hotel,
.ro-doc-contact,
.ro-doc-rules,
.ro-doc-summary{
  margin-bottom:24px;
  border:1px solid #e4e5e8;
  border-radius:20px;
  background:#fff;
  box-shadow:0 8px 28px rgba(16,24,40,.045);
}
.ro-doc-payment{
  padding:26px;
}
.ro-doc-section-heading{
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
  gap:24px;
  margin-bottom:18px;
}
.ro-doc-section-heading h2,
.ro-doc-hotel h2,
.ro-doc-contact h2,
.ro-doc-rules h2{
  margin:0;
  font-size:24px;
  line-height:1.2;
  letter-spacing:-.02em;
}
.ro-doc-payment-balance{
  text-align:right;
}
.ro-doc-payment-balance span{
  display:block;
  color:#7b7f8a;
  font-size:13px;
  font-weight:700;
}
.ro-doc-payment-balance strong{
  display:block;
  margin-top:4px;
  font-size:24px;
}
.ro-doc-pay-options{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:12px;
}
.ro-doc-pay-option{
  position:relative;
  display:grid;
  grid-template-columns:auto 1fr auto;
  align-items:center;
  gap:12px;
  padding:17px;
  border:1px solid #e0e1e4;
  border-radius:14px;
  background:#fafafa;
  cursor:pointer;
  transition:.2s ease;
}
.ro-doc-pay-option:hover,
.ro-doc-pay-option.is-selected{
  border-color:var(--blue,#8c5a32);
  background:color-mix(in srgb,var(--blue,#8c5a32) 4%,#fff);
}
.ro-doc-pay-option input{
  position:absolute;
  opacity:0;
  pointer-events:none;
}
.ro-doc-radio{
  width:20px;
  height:20px;
  border:2px solid #c7c9cf;
  border-radius:50%;
  box-shadow:inset 0 0 0 5px #fff;
}
.ro-doc-pay-option.is-selected .ro-doc-radio{
  border-color:var(--blue,#8c5a32);
  background:var(--blue,#8c5a32);
}
.ro-doc-pay-copy b,
.ro-doc-pay-copy small{
  display:block;
}
.ro-doc-pay-copy small{
  margin-top:3px;
  color:#7b7f8a;
}
.ro-doc-pay-option>strong{
  white-space:nowrap;
  font-size:17px;
}
.ro-doc-pay-button{
  margin-top:16px;
  min-width:210px;
}
.ro-doc-hotel{
  display:grid;
  grid-template-columns:minmax(220px,.75fr) minmax(0,1.25fr);
  gap:38px;
  padding:26px;
}
.ro-doc-hotel-contacts{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:18px 28px;
}
.ro-doc-hotel-contacts p{
  margin:0;
}
.ro-doc-hotel-contacts span{
  display:block;
  margin-bottom:3px;
  color:#7b7f8a;
  font-size:12px;
  font-weight:700;
}
.ro-doc-hotel-contacts b,
.ro-doc-hotel-contacts a{
  color:inherit;
  font-size:14px;
  line-height:1.45;
  text-decoration:none;
}
.ro-doc-section{
  margin:34px 0 24px;
}
.ro-doc-rooms{
  display:grid;
  gap:16px;
}
.ro-doc-room{
  display:grid;
  grid-template-columns:220px minmax(0,1fr);
  overflow:hidden;
  border:1px solid #e4e5e8;
  border-radius:20px;
  background:#fff;
  box-shadow:0 8px 28px rgba(16,24,40,.045);
}
.ro-doc-room-media{
  min-height:220px;
  background:#efeff1;
}
.ro-doc-room-media img{
  width:100%;
  height:100%;
  object-fit:cover;
}
.ro-doc-room-placeholder{
  display:grid;
  place-items:center;
  width:100%;
  height:100%;
  min-height:220px;
  color:#92959d;
  font-size:14px;
  font-weight:700;
}
.ro-doc-room-content{
  padding:24px;
}
.ro-doc-room-title{
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
  gap:24px;
}
.ro-doc-room-title h2{
  margin:0;
  font-size:23px;
  line-height:1.25;
}
.ro-doc-room-price{
  text-align:right;
  white-space:nowrap;
}
.ro-doc-room-price strong{
  display:block;
  font-size:24px;
}
.ro-doc-room-price small{
  display:block;
  margin-top:4px;
  color:#7b7f8a;
}
.ro-doc-room-facts{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:14px 24px;
  margin-top:22px;
  padding-top:18px;
  border-top:1px solid #ececef;
}
.ro-doc-room-facts span{
  display:block;
  margin-bottom:3px;
  color:#7b7f8a;
  font-size:12px;
  font-weight:700;
}
.ro-doc-room-facts b{
  font-size:14px;
  line-height:1.45;
}
.ro-doc-guests{
  margin-top:20px;
}
.ro-doc-subtitle{
  display:block;
  margin-bottom:9px;
  font-size:13px;
  font-weight:800;
}
.ro-doc-guest{
  display:flex;
  align-items:flex-start;
  gap:10px;
  padding:9px 0;
  border-top:1px solid #f0f0f2;
}
.ro-doc-guest-index{
  display:grid;
  place-items:center;
  flex:0 0 26px;
  width:26px;
  height:26px;
  border-radius:50%;
  background:color-mix(in srgb,var(--blue,#8c5a32) 10%,#fff);
  color:var(--blue,#8c5a32);
  font-size:12px;
  font-weight:800;
}
.ro-doc-guest b,
.ro-doc-guest small{
  display:block;
}
.ro-doc-guest small{
  margin-top:2px;
  color:#7b7f8a;
}
.ro-doc-contact,
.ro-doc-rules{
  padding:26px;
}
.ro-doc-contact-links{
  display:flex;
  flex-wrap:wrap;
  gap:10px 18px;
  margin-top:10px;
}
.ro-doc-contact-links a{
  color:var(--blue,#8c5a32);
  font-weight:700;
  text-decoration:none;
}
.ro-doc-rules p{
  margin:14px 0 0;
  color:#545862;
  font-size:14px;
  line-height:1.7;
}
.ro-doc-summary{
  width:min(520px,100%);
  margin-left:auto;
  padding:20px 24px;
}
.ro-doc-summary>div{
  display:flex;
  justify-content:space-between;
  gap:28px;
  padding:8px 0;
}
.ro-doc-summary span{
  color:#686c75;
}
.ro-doc-summary strong{
  white-space:nowrap;
  font-size:18px;
}
.ro-doc-summary .is-accent{
  margin-top:8px;
  padding-top:16px;
  border-top:1px solid #e6e7ea;
}
.ro-doc-summary .is-accent span,
.ro-doc-summary .is-accent strong{
  color:var(--blue,#8c5a32);
  font-weight:800;
}
.ro-doc-empty-card,
.ro-doc-empty{
  padding:28px;
  border:1px solid #e4e5e8;
  border-radius:20px;
  background:#fff;
}
@media(max-width:760px){
  .ro-doc-shell{
    width:min(100% - 20px,1120px);
    padding:22px 0 48px;
  }
  .ro-doc-hero{
    align-items:center;
  }
  .ro-doc-hero h1{
    font-size:30px;
  }
  .ro-doc-print{
    width:44px;
    padding:0;
    justify-content:center;
    font-size:0;
  }
  .ro-doc-print span{
    font-size:20px;
  }
  .ro-doc-pay-options{
    grid-template-columns:1fr;
  }
  .ro-doc-section-heading{
    display:block;
  }
  .ro-doc-payment-balance{
    margin-top:12px;
    text-align:left;
  }
  .ro-doc-hotel{
    grid-template-columns:1fr;
    gap:20px;
  }
  .ro-doc-hotel-contacts{
    grid-template-columns:1fr;
  }
  .ro-doc-room{
    grid-template-columns:1fr;
  }
  .ro-doc-room-media,
  .ro-doc-room-placeholder{
    min-height:190px;
    max-height:230px;
  }
  .ro-doc-room-title{
    display:block;
  }
  .ro-doc-room-price{
    margin-top:14px;
    text-align:left;
  }
  .ro-doc-room-facts{
    grid-template-columns:1fr;
  }
  .ro-doc-pay-button{
    width:100%;
  }
}
@media print{
  html.ro-booking-document,
  body.ro-booking-document{
    background:#fff!important;
  }
  .ro-doc-shell{
    width:100%;
    padding:0;
  }
  .ro-doc-print,
  .ro-doc-payment{
    display:none!important;
  }
  .ro-doc-hero,
  .ro-doc-hotel,
  .ro-doc-room,
  .ro-doc-contact,
  .ro-doc-rules,
  .ro-doc-summary{
    box-shadow:none!important;
    break-inside:avoid;
  }
}


/* V82 — вариант №2 страницы «Моя бронь» */
html.ro-booking-document,
body.ro-booking-document{
  background:#fff;
}
body.ro-booking-document .header{
  display:block;
  border-bottom:1px solid #e7edf4;
  box-shadow:0 2px 14px rgba(16,56,92,.05);
}
body.ro-booking-document .footer{
  display:block;
  margin-top:0;
}
body.ro-booking-document main.page{
  background:#fff;
}
.ro-doc-shell{
  width:min(1180px,calc(100% - 40px));
  padding:32px 0 64px;
}
.ro-doc-hero{
  padding:0 0 22px;
}
.ro-doc-hero h1{
  color:#123f69;
  font-size:36px;
}
.ro-doc-booking-number{
  margin:8px 0 0;
  color:#607087;
  font-size:20px;
}
.ro-doc-booking-number b{
  color:#123f69;
}
.ro-doc-eyebrow{
  color:#66809a;
}
.ro-doc-status{
  background:#eef6fc;
  color:#0d4f7f;
}
.ro-doc-print{
  border-color:#c8dceb;
  color:#0d4f7f;
}
.ro-doc-payment,
.ro-doc-hotel,
.ro-doc-contact,
.ro-doc-rules,
.ro-doc-summary,
.ro-doc-room{
  border-color:#cfe0ed;
  border-radius:12px;
  box-shadow:none;
}
.ro-doc-payment{
  background:#f8fbfe;
}
.ro-doc-pay-option{
  border-color:#d5e2ec;
  border-radius:10px;
  background:#fff;
}
.ro-doc-pay-option:hover,
.ro-doc-pay-option.is-selected{
  border-color:#0e5686;
  background:#f3f9fd;
}
.ro-doc-pay-option.is-selected .ro-doc-radio{
  border-color:#0e5686;
  background:#0e5686;
}
.ro-doc-pay-button{
  background:#0d4f7f;
}
.ro-doc-payment-balance strong,
.ro-doc-room-price strong{
  color:#0b3152;
}
.ro-doc-hotel{
  grid-template-columns:250px 1fr;
}
.ro-doc-hotel h2,
.ro-doc-section-heading h2,
.ro-doc-contact h2,
.ro-doc-rules h2{
  color:#123f69;
}
.ro-doc-room-title h2{
  color:#123f69;
}
.ro-doc-room{
  grid-template-columns:230px minmax(0,1fr);
}
.ro-doc-room-media{
  padding:18px;
  background:#fff;
}
.ro-doc-room-media img,
.ro-doc-room-placeholder{
  border-radius:8px;
}
.ro-doc-room-placeholder{
  background:#edf4f8;
}
.ro-doc-guest-index{
  background:#edf6fc;
  color:#0d4f7f;
}
.ro-doc-contact{
  padding:22px 24px;
}
.ro-doc-contact h2{
  margin-bottom:18px;
}
.ro-doc-contact-grid{
  display:grid;
  grid-template-columns:1.25fr 1fr 1.1fr;
}
.ro-doc-contact-field{
  min-width:0;
  padding:0 24px;
  border-left:1px solid #dce8f1;
}
.ro-doc-contact-field:first-child{
  padding-left:0;
  border-left:0;
}
.ro-doc-contact-field span{
  display:block;
  margin-bottom:8px;
  color:#6a7d91;
  font-size:13px;
}
.ro-doc-contact-field b,
.ro-doc-contact-field a{
  display:block;
  overflow-wrap:anywhere;
  color:#101820;
  font-size:16px;
  font-weight:700;
  text-decoration:none;
}
.ro-doc-rules p{
  color:#33485c;
}
.ro-doc-summary{
  width:100%;
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:0;
  padding:0;
  overflow:hidden;
}
.ro-doc-summary>div{
  display:block;
  padding:20px 24px;
  border-left:1px solid #dce8f1;
}
.ro-doc-summary>div:first-child{
  border-left:0;
}
.ro-doc-summary span{
  display:block;
  margin-bottom:7px;
  color:#64778a;
  font-size:13px;
}
.ro-doc-summary strong{
  color:#123f69;
  font-size:22px;
}
.ro-doc-summary .is-accent{
  margin:0;
  border-top:0;
  background:#f2f8fc;
}
.ro-doc-summary .is-accent span,
.ro-doc-summary .is-accent strong{
  color:#0d4f7f;
}
@media(max-width:760px){
  .ro-doc-shell{
    width:min(100% - 20px,1180px);
  }
  .ro-doc-hero h1{
    font-size:28px;
  }
  .ro-doc-booking-number{
    font-size:17px;
  }
  .ro-doc-hotel{
    grid-template-columns:1fr;
  }
  .ro-doc-room{
    grid-template-columns:1fr;
  }
  .ro-doc-contact-grid{
    grid-template-columns:1fr;
  }
  .ro-doc-contact-field,
  .ro-doc-contact-field:first-child{
    padding:14px 0;
    border-left:0;
    border-top:1px solid #dce8f1;
  }
  .ro-doc-contact-field:first-child{
    padding-top:0;
    border-top:0;
  }
  .ro-doc-summary{
    grid-template-columns:1fr;
  }
  .ro-doc-summary>div,
  .ro-doc-summary>div:first-child{
    border-left:0;
    border-top:1px solid #dce8f1;
  }
  .ro-doc-summary>div:first-child{
    border-top:0;
  }
}
@media print{
  body.ro-booking-document .header,
  body.ro-booking-document .footer{
    display:none!important;
  }
}


/* V86 — галерея категории номера, до 6 фото из CMS */
.ro-room-gallery{
  width:100%;
}
.ro-room-gallery-stage{
  position:relative;
  overflow:hidden;
  width:100%;
  aspect-ratio:4/3;
  border-radius:10px;
  background:#edf3f7;
}
.ro-room-gallery-stage>[data-gallery-image]{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
  opacity:0;
  transition:opacity .24s ease;
}
.ro-room-gallery-stage>[data-gallery-image].is-active{
  opacity:1;
}
.ro-room-gallery-prev,
.ro-room-gallery-next{
  position:absolute;
  top:50%;
  z-index:2;
  display:grid;
  place-items:center;
  width:34px;
  height:34px;
  padding:0;
  border:0;
  border-radius:50%;
  background:rgba(255,255,255,.9);
  color:#123f69;
  font-size:25px;
  line-height:1;
  cursor:pointer;
  transform:translateY(-50%);
  box-shadow:0 4px 16px rgba(13,49,82,.16);
}
.ro-room-gallery-prev{left:10px}
.ro-room-gallery-next{right:10px}
.ro-room-gallery-counter{
  position:absolute;
  right:10px;
  bottom:10px;
  z-index:2;
  padding:5px 9px;
  border-radius:999px;
  background:rgba(11,38,62,.72);
  color:#fff;
  font-size:12px;
  font-weight:700;
}
.ro-room-gallery-thumbs{
  display:grid;
  grid-template-columns:repeat(6,minmax(0,1fr));
  gap:5px;
  margin-top:7px;
}
.ro-room-gallery-thumbs button{
  overflow:hidden;
  aspect-ratio:1/1;
  padding:0;
  border:2px solid transparent;
  border-radius:6px;
  background:#eef3f6;
  cursor:pointer;
}
.ro-room-gallery-thumbs button.is-active{
  border-color:var(--blue,#0d4f7f);
}
.ro-room-gallery-thumbs img{
  width:100%;
  height:100%;
  object-fit:cover;
}
.ro-doc-room-media .ro-room-gallery-stage{
  min-height:0;
}
@media(max-width:760px){
  .ro-room-gallery-thumbs{
    grid-template-columns:repeat(6,48px);
    overflow-x:auto;
    padding-bottom:3px;
  }
}
@media print{
  .ro-room-gallery-prev,
  .ro-room-gallery-next,
  .ro-room-gallery-counter,
  .ro-room-gallery-thumbs{
    display:none!important;
  }
}

/* v88: embedded acquiring widget */
.ro-payment-layout{align-items:start}.ro-payment-amounts{margin:22px 0}.ro-bank-note{font-size:14px;line-height:1.55;color:#667085;background:#f7f8fa;border-radius:14px;padding:14px 16px;margin:14px 0 18px}.ro-payment-widget{min-height:0;margin-top:20px;overflow:hidden;border-radius:18px}.ro-payment-widget:not(:empty){min-height:520px}.created-booking-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:18px 0}.created-booking-grid>div{background:#f7f8fa;border-radius:14px;padding:13px}.created-booking-grid span{display:block;font-size:12px;color:#7b8494;margin-bottom:5px}.created-pay-option{display:block;border:1px solid #e1e5eb;border-radius:16px;padding:14px 16px;margin:10px 0;cursor:pointer}.created-pay-option.active{border-color:var(--accent,#1677ff);box-shadow:0 0 0 1px var(--accent,#1677ff)}.created-pay-option input{margin-right:10px}.created-pay-option span{display:inline-flex;width:calc(100% - 30px);justify-content:space-between;gap:16px}.created-pay-option small{font-size:15px;font-weight:700}@media(max-width:760px){.created-booking-grid{grid-template-columns:1fr}.ro-payment-widget:not(:empty){min-height:600px}}

/* V91.9 — простой выбор даты рождения с отдельным годом */
.birth-date-field{grid-column:auto}
.birth-date-selects{display:grid;grid-template-columns:.8fr 1.35fr 1fr;gap:8px}
.birth-date-selects select{min-width:0;padding:0 10px}
@media(max-width:560px){
  .birth-date-field{grid-column:1/-1}
  .birth-date-selects{grid-template-columns:.82fr 1.28fr 1fr;gap:6px}
  .birth-date-selects select{font-size:14px;padding:0 8px}
}
\n\n/* Resort Online V91.13 — bestseller badge and room amenity icons. */\n.live-room-card .room-media{position:relative;min-width:0}\n.live-room-card .live-room-gallery-open{position:relative;display:block;width:100%;height:100%;border:0;padding:0;background:transparent;overflow:hidden;text-align:left}\n.room-bestseller-badge{position:absolute;top:12px;left:12px;z-index:3;display:inline-flex;align-items:center;gap:6px;padding:7px 11px;border-radius:999px;background:var(--primary,#18aee8);color:#fff;font-size:13px;font-weight:700;box-shadow:0 6px 18px rgba(0,0,0,.16)}\n.room-amenity-strip{position:absolute;top:12px;right:12px;z-index:3;display:flex;align-items:center;gap:5px;max-width:calc(100% - 28px);padding:5px 7px;border-radius:999px;background:rgba(255,255,255,.92);backdrop-filter:blur(8px);box-shadow:0 6px 18px rgba(0,0,0,.12)}\n.room-bestseller-badge + .room-amenity-strip{max-width:55%}\n.room-amenity-icon{display:inline-grid;place-items:center;width:24px;height:24px;border-radius:50%;font-size:15px;line-height:1;color:#344054}\n.room-meta-line{margin:7px 0 9px;color:#667085;font-size:14px;font-weight:600}\n.room-amenities-more{margin:10px 0 0;padding:0;border:0;background:transparent;color:var(--primary,#18aee8);font:inherit;font-weight:700;cursor:pointer}\n@media(max-width:760px){\n .room-amenity-strip .room-amenity-icon:nth-child(n+6){display:none}\n .room-bestseller-badge{top:10px;left:10px;font-size:12px;padding:6px 9px}\n .room-amenity-strip{top:10px;right:10px}\n .room-bestseller-badge + .room-amenity-strip{top:48px;left:10px;right:auto;max-width:calc(100% - 20px)}\n}\n

/* Resort Online V91.14 — compact one-page A4 print for “Моя бронь”. */
@media print {
  @page { size: A4 portrait; margin: 7mm; }

  html.ro-booking-document,
  body.ro-booking-document {
    width: 210mm !important;
    min-height: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    background: #fff !important;
    color: #111 !important;
    font-size: 8.5pt !important;
    line-height: 1.18 !important;
    -webkit-print-color-adjust: exact;
    print-color-adjust: exact;
  }

  body.ro-booking-document main.page,
  body.ro-booking-document .container,
  .ro-doc-shell {
    width: 100% !important;
    max-width: none !important;
    margin: 0 !important;
    padding: 0 !important;
  }

  body.ro-booking-document .header,
  body.ro-booking-document .footer,
  .ro-doc-print,
  .ro-doc-pay-options,
  .ro-doc-pay-button,
  .ro-doc-payment-balance,
  .ro-room-gallery-prev,
  .ro-room-gallery-next,
  .ro-room-gallery-counter,
  .ro-room-gallery-thumbs,
  .all-hotels-link,
  .my-booking-popup {
    display: none !important;
  }

  .ro-doc-hero {
    display: grid !important;
    grid-template-columns: 1fr auto !important;
    align-items: start !important;
    gap: 5mm !important;
    margin: 0 0 3mm !important;
    padding: 0 0 2.5mm !important;
    border-bottom: 1px solid #cfd8e3 !important;
  }

  .ro-doc-hero h1 {
    margin: 0 0 1mm !important;
    font-size: 16pt !important;
    line-height: 1.05 !important;
  }

  .ro-doc-booking-number {
    margin: 0 !important;
    font-size: 10pt !important;
  }

  .ro-doc-status {
    display: inline-block !important;
    margin-top: 1mm !important;
    padding: 1mm 2mm !important;
    font-size: 7.5pt !important;
  }

  .ro-doc-eyebrow {
    font-size: 7pt !important;
    line-height: 1 !important;
  }

  .ro-doc-payment,
  .ro-doc-hotel,
  .ro-doc-contact,
  .ro-doc-rules,
  .ro-doc-summary,
  .ro-doc-room,
  .ro-doc-section {
    margin: 0 0 2.5mm !important;
    padding: 2.5mm !important;
    border: 1px solid #d7dee7 !important;
    border-radius: 2mm !important;
    box-shadow: none !important;
    break-inside: avoid !important;
    page-break-inside: avoid !important;
  }

  .ro-doc-payment {
    display: block !important;
    background: #fff !important;
  }

  .ro-doc-payment .ro-doc-section-heading {
    margin: 0 !important;
  }

  .ro-doc-payment h2,
  .ro-doc-hotel h2,
  .ro-doc-section-heading h2,
  .ro-doc-contact h2,
  .ro-doc-rules h2,
  .ro-doc-room-title h2 {
    margin: 0 !important;
    font-size: 10pt !important;
    line-height: 1.1 !important;
  }

  .ro-doc-summary {
    display: grid !important;
    grid-template-columns: repeat(3, 1fr) !important;
    padding: 0 !important;
    overflow: hidden !important;
  }

  .ro-doc-summary > div {
    padding: 2mm 2.5mm !important;
  }

  .ro-doc-summary span {
    margin-bottom: .6mm !important;
    font-size: 7pt !important;
  }

  .ro-doc-summary strong {
    font-size: 11pt !important;
  }

  .ro-doc-hotel {
    display: grid !important;
    grid-template-columns: 1fr 2.3fr !important;
    gap: 3mm !important;
  }

  .ro-doc-hotel-contacts {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0,1fr)) !important;
    gap: 1mm 3mm !important;
  }

  .ro-doc-hotel-contacts p,
  .ro-doc-rules p {
    margin: 0 0 1mm !important;
    font-size: 7.5pt !important;
    line-height: 1.15 !important;
  }

  .ro-doc-section-heading {
    margin: 0 0 1.5mm !important;
  }

  .ro-doc-rooms {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 2mm !important;
  }

  .ro-doc-room {
    display: block !important;
    padding: 2.5mm !important;
  }

  .ro-doc-room-media {
    display: none !important;
  }

  .ro-doc-room-content {
    padding: 0 !important;
  }

  .ro-doc-room-title {
    display: grid !important;
    grid-template-columns: 1fr auto !important;
    gap: 3mm !important;
    margin-bottom: 1.5mm !important;
  }

  .ro-doc-room-price strong {
    font-size: 10pt !important;
  }

  .ro-doc-room-price small,
  .ro-doc-guest small,
  .ro-doc-subtitle {
    font-size: 7pt !important;
  }

  .ro-doc-room-facts {
    display: grid !important;
    grid-template-columns: repeat(3, minmax(0,1fr)) !important;
    gap: 1mm 3mm !important;
    margin: 0 0 1.5mm !important;
  }

  .ro-doc-room-facts > div,
  .ro-doc-contact-field {
    padding: 0 !important;
    border: 0 !important;
  }

  .ro-doc-room-facts span,
  .ro-doc-contact-field span {
    margin-bottom: .5mm !important;
    font-size: 6.8pt !important;
  }

  .ro-doc-room-facts b,
  .ro-doc-contact-field b,
  .ro-doc-contact-field a {
    font-size: 7.8pt !important;
    line-height: 1.12 !important;
  }

  .ro-doc-guests {
    margin-top: 1mm !important;
  }

  .ro-doc-guest {
    display: inline-grid !important;
    grid-template-columns: 5mm auto !important;
    align-items: center !important;
    gap: 1mm !important;
    width: calc(50% - 2mm) !important;
    margin: 0 2mm 1mm 0 !important;
    vertical-align: top !important;
  }

  .ro-doc-guest-index {
    width: 4.5mm !important;
    height: 4.5mm !important;
    font-size: 6.5pt !important;
  }

  .ro-doc-guest b {
    font-size: 7.7pt !important;
  }

  .ro-doc-contact {
    padding: 2.5mm !important;
  }

  .ro-doc-contact h2 {
    margin-bottom: 1.5mm !important;
  }

  .ro-doc-contact-grid {
    display: grid !important;
    grid-template-columns: 1.25fr 1fr 1.15fr !important;
    gap: 3mm !important;
  }

  .ro-doc-rules {
    max-height: 26mm !important;
    overflow: hidden !important;
  }

  .ro-doc-rules p {
    display: -webkit-box !important;
    -webkit-line-clamp: 3 !important;
    -webkit-box-orient: vertical !important;
    overflow: hidden !important;
  }

  a {
    color: inherit !important;
    text-decoration: none !important;
  }
}

/* Resort Online V91.17 — clean room-card photo overlays. */
.live-room-card{position:relative;isolation:isolate;overflow:hidden;border:1px solid rgba(17,24,39,.10);border-radius:20px;background:#fff;box-shadow:0 10px 30px rgba(16,24,40,.06);transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease}
.live-room-card:hover{transform:translateY(-2px);box-shadow:0 16px 38px rgba(16,24,40,.10)}
.live-room-card.is-bestseller{border:2px solid #ff9d00;box-shadow:0 12px 34px rgba(255,157,0,.18)}
.live-room-card .room-media{position:relative;overflow:hidden;background:#eef2f6}
.live-room-card .live-room-gallery-open{position:relative;display:block;width:100%;height:100%;min-height:240px;overflow:hidden;border:0;padding:0;background:transparent}
.live-room-card .live-room-gallery-open>img{display:block;width:100%;height:100%;min-height:240px;object-fit:cover;transition:transform .35s ease}
.live-room-card:hover .live-room-gallery-open>img{transform:scale(1.015)}
.room-bestseller-badge{position:absolute!important;top:14px!important;left:14px!important;right:auto!important;bottom:auto!important;z-index:5!important;display:inline-flex!important;align-items:center!important;gap:7px!important;padding:9px 14px!important;border-radius:9px!important;background:linear-gradient(135deg,#ff7a00,#ffad16)!important;color:#fff!important;font-size:12px!important;font-weight:900!important;line-height:1!important;letter-spacing:.025em!important;text-transform:uppercase!important;box-shadow:0 8px 22px rgba(255,111,0,.38),0 0 0 1px rgba(255,255,255,.22) inset!important;text-shadow:0 1px 1px rgba(0,0,0,.18)!important}
.room-bestseller-trophy{font-size:15px;line-height:1;filter:saturate(0) brightness(3)}
.room-amenity-strip{position:absolute!important;left:14px!important;right:14px!important;bottom:14px!important;top:auto!important;z-index:4!important;display:flex!important;align-items:center!important;gap:8px!important;max-width:none!important;width:auto!important;padding:0!important;border-radius:0!important;background:transparent!important;box-shadow:none!important;backdrop-filter:none!important;overflow:hidden!important}
.room-amenity-icon{display:inline-flex!important;align-items:center!important;justify-content:center!important;flex:0 0 40px!important;width:40px!important;height:40px!important;border-radius:999px!important;background:rgba(255,255,255,.96)!important;color:#172033!important;box-shadow:0 5px 16px rgba(0,0,0,.22)!important;border:1px solid rgba(255,255,255,.78)!important;font-size:0!important;line-height:1!important}
.room-amenity-icon svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.live-photo-count{z-index:6!important;top:auto!important;right:14px!important;bottom:14px!important}
.room-meta-line{display:flex;flex-wrap:wrap;gap:7px 12px;margin:8px 0 10px;color:#667085;font-size:14px;font-weight:600}
.room-amenities-more{display:none!important}
@media(max-width:760px){
 .live-room-card .live-room-gallery-open,.live-room-card .live-room-gallery-open>img{min-height:220px;height:220px}
 .room-bestseller-badge{top:10px!important;left:10px!important;padding:8px 11px!important;font-size:11px!important}
 .room-amenity-strip{left:10px!important;right:10px!important;bottom:10px!important;gap:6px!important}
 .room-amenity-icon{flex-basis:36px!important;width:36px!important;height:36px!important}
 .room-amenity-icon svg{width:20px;height:20px}
 .room-amenity-strip .room-amenity-icon:nth-child(n+6){display:none!important}
 .live-photo-count{right:10px!important;bottom:10px!important}
}


/* V91.19 — панель поиска сверху и категории на всю ширину */
.rooms-search-summary{
  display:grid;
  grid-template-columns:minmax(190px,.95fr) minmax(270px,1.25fr) minmax(100px,.55fr) minmax(160px,.75fr) auto;
  gap:0;
  align-items:stretch;
  margin:0 0 20px;
  padding:0;
  overflow:hidden;
}
.rooms-search-summary__title,
.rooms-search-summary__item,
.rooms-search-summary__action{min-width:0;padding:18px 20px;display:flex;justify-content:center;flex-direction:column}
.rooms-search-summary__title h3{margin:0 0 4px;font-size:18px}
.rooms-search-summary__title span,.rooms-search-summary__item span{font-size:12px;color:var(--muted,#667085)}
.rooms-search-summary__item{border-left:1px solid #e8ebef}
.rooms-search-summary__item b{margin-top:5px;font-size:15px;line-height:1.25;overflow-wrap:anywhere}
.rooms-search-summary__item--dates b{font-size:16px;white-space:nowrap;overflow-wrap:normal}
.rooms-search-summary__action{margin:12px 14px;align-items:center;text-align:center;white-space:nowrap}
.room-list--wide{width:100%;max-width:none}
.room-list--wide .room-card{width:100%;grid-template-columns:minmax(280px,38%) minmax(0,1fr) minmax(190px,220px)}
.room-list--wide .room-photo,.room-list--wide .room-card-media{min-width:0}
@media(max-width:900px){
  .rooms-search-summary{grid-template-columns:1fr 1fr}
  .rooms-search-summary__title{grid-column:1/-1;border-bottom:1px solid #e8ebef}
  .rooms-search-summary__item{border-left:0;border-right:1px solid #e8ebef;border-bottom:1px solid #e8ebef}
  .rooms-search-summary__item--dates{grid-column:1/-1;border-right:0}
  .rooms-search-summary__item:nth-of-type(4){border-right:0}
  .rooms-search-summary__action{grid-column:1/-1}
  .room-list--wide .room-card{grid-template-columns:minmax(220px,42%) minmax(0,1fr)}
  .room-list--wide .room-card-price,.room-list--wide .room-price-col{grid-column:2}
}
@media(max-width:620px){
  .rooms-search-summary{grid-template-columns:1fr 1fr}
  .rooms-search-summary__title,.rooms-search-summary__item{padding:14px 15px}
  .rooms-search-summary__item:nth-of-type(4){border-right:0}
  .room-list--wide .room-card{display:block}
  .room-list--wide .room-photo,.room-list--wide .room-card-media{width:100%;min-height:220px}
}

/* V91.32: единая геометрия главного баннера для всех гостиниц и фотографий */
.home-page .hero,
.hero {
  border-radius:24px !important;
  overflow:hidden !important;
  background-clip:padding-box !important;
  background-size:cover !important;
  background-repeat:no-repeat !important;
}
.home-page .hero > *,
.hero > * {
  position:relative;
  z-index:1;
}


/* Resort Online V91.35 — unified recommended cards, one-line actions and inline search editor. */
.live-room-card.is-bestseller{
  border:2px solid var(--hotel-button-color,var(--blue,#18aee8))!important;
  box-shadow:0 12px 34px color-mix(in srgb,var(--hotel-button-color,var(--blue,#18aee8)) 22%,transparent)!important;
}
.room-bestseller-badge{background:var(--hotel-button-color,var(--blue,#18aee8))!important;color:var(--hotel-button-text-color,#fff)!important}
.live-room-card .room-price .btn,.live-tariff-card .btn{white-space:nowrap;min-width:170px;padding-left:18px;padding-right:18px}
.room-short-description{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;line-height:1.48;color:#475467}
.room-info-link.room-description-open{padding:0;border:0;background:transparent;font:inherit;font-weight:700;color:var(--hotel-button-color,var(--blue,#18aee8));cursor:pointer;text-decoration:underline;text-underline-offset:3px}
.room-description-modal,.edit-search-modal{position:fixed;inset:0;z-index:10050;display:flex;align-items:flex-start;justify-content:center;padding:34px 18px;background:rgba(15,23,42,.46);backdrop-filter:blur(8px);overflow:auto}
.room-description-dialog,.edit-search-dialog{width:min(760px,100%);margin:auto 0;background:#fff;border-radius:24px;box-shadow:0 28px 80px rgba(15,23,42,.24);overflow:hidden}
.room-description-header,.edit-search-header{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;padding:24px 26px 18px;border-bottom:1px solid #eaecf0}
.room-description-header span,.edit-search-header span{font-size:12px;color:#667085;text-transform:uppercase;letter-spacing:.06em;font-weight:700}
.room-description-header h2,.edit-search-header h2{margin:5px 0 0;font-size:25px}
.room-description-close,.edit-search-close{width:40px;height:40px;border:1px solid #e4e7ec;border-radius:50%;background:#fff;font-size:25px;cursor:pointer}
.room-description-content{padding:24px 26px;font-size:16px;line-height:1.7;color:#344054;max-height:55vh;overflow:auto}
.room-description-footer,.edit-search-footer{display:flex;justify-content:flex-end;gap:12px;padding:18px 26px 24px;border-top:1px solid #eaecf0}
.edit-search-form{padding:24px 26px 0}
.edit-search-dates{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-bottom:18px}
.edit-search-dates label,.edit-search-ages label{display:flex;flex-direction:column;gap:7px;color:#344054;font-weight:700}
.edit-search-dates input,.edit-search-ages select{width:100%;height:52px;border:1px solid #d0d5dd;border-radius:14px;padding:0 14px;font:inherit;background:#fff}
.edit-search-guests{border:1px solid #e4e7ec;border-radius:18px;overflow:hidden}
.edit-search-counter{display:flex;justify-content:space-between;align-items:center;gap:18px;padding:16px 18px;border-bottom:1px solid #eaecf0}
.edit-search-counter>div:first-child{display:flex;flex-direction:column;gap:3px}.edit-search-counter span{font-size:13px;color:#667085}
.edit-search-counter>div:last-child{display:flex;align-items:center;gap:12px}.edit-search-counter button{width:38px;height:38px;border:1px solid #d0d5dd;border-radius:50%;background:#fff;font-size:22px;cursor:pointer}.edit-search-counter b{min-width:24px;text-align:center}
.edit-search-ages{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;padding:16px 18px}
.edit-search-error{margin:14px 0 0;padding:12px 14px;border-radius:12px;background:#fff1f0;color:#b42318;font-weight:700}
.room-description-opened,.edit-search-opened{overflow:hidden}
@media(max-width:760px){
 .live-room-card .room-price .btn,.live-tariff-card .btn{width:100%;min-width:0}
 .room-description-modal,.edit-search-modal{padding:0;align-items:flex-start}
 .room-description-dialog,.edit-search-dialog{width:100%;min-height:100dvh;border-radius:0;margin:0}
 .edit-search-dates,.edit-search-ages{grid-template-columns:1fr}
 .room-description-header,.edit-search-header{padding:18px 16px}.room-description-content,.edit-search-form{padding-left:16px;padding-right:16px}.room-description-footer,.edit-search-footer{padding:16px;position:sticky;bottom:0;background:#fff}
}

/* Resort Online V91.36 — единые кнопки и увеличенная кнопка выбора категории. */
.my-booking-button,
.my-booking-trigger,
button[data-my-booking],
a[data-my-booking]{
  min-height:48px!important;
  padding:0 22px!important;
  border-radius:12px!important;
  background:var(--hotel-button-color,var(--brand-color,#111827))!important;
  border:1px solid var(--hotel-button-color,var(--brand-color,#111827))!important;
  color:var(--hotel-button-text-color,var(--brand-text-color,#fff))!important;
  font-weight:700!important;
  white-space:nowrap!important;
}
.my-booking-button:hover,
.my-booking-trigger:hover,
button[data-my-booking]:hover,
a[data-my-booking]:hover{
  background:var(--hotel-button-hover-color,var(--brand-hover-color,#000))!important;
  border-color:var(--hotel-button-hover-color,var(--brand-hover-color,#000))!important;
}
.live-room-card .room-price .btn,
.live-room-card .js-live-room,
button[data-room-select]{
  min-width:210px!important;
  min-height:50px!important;
  padding-left:24px!important;
  padding-right:24px!important;
  white-space:nowrap!important;
}
@media(max-width:760px){
  .live-room-card .room-price .btn,.live-room-card .js-live-room,button[data-room-select]{width:100%!important;min-width:0!important}
}


/* Resort Online V91.37 — логотип выбранной гостиницы без названия. */
.logo.hotel-logo-only{display:inline-flex;align-items:center;min-width:0;font-size:0!important;line-height:0!important}
.logo.hotel-logo-only img{display:block;width:auto;max-width:190px;height:48px;max-height:48px;object-fit:contain}
@media(max-width:620px){.logo.hotel-logo-only img{max-width:145px;height:40px;max-height:40px}}

/* V91.41 — компактный баннер поиска: высота уменьшена примерно вдвое */
.home-page .hero{min-height:210px!important;padding:28px 36px!important;}
@media(max-width:980px){.home-page .hero{min-height:180px!important;padding:24px 28px!important;}}
@media(max-width:720px){.home-page .hero{min-height:120px!important;padding:18px 20px!important;border-radius:20px!important}.home-page .hero h1{font-size:28px!important;margin-bottom:6px!important}.home-page .hero p{font-size:14px!important;line-height:1.35!important}}

/* V91.41 — единый календарь в окне изменения поиска */
.edit-search-date-fields{display:grid;grid-template-columns:1fr 1fr;gap:12px}.edit-search-date-button{width:100%;text-align:left;border:1px solid #dfe5ec;background:#fff;border-radius:14px;padding:12px 14px;cursor:pointer}.edit-search-date-button span{display:block;font-size:12px;color:#667085;margin-bottom:4px}.edit-search-date-button b{font-size:16px;color:#111827}.edit-search-calendar{position:relative!important;inset:auto!important;transform:none!important;width:100%!important;max-width:none!important;display:block!important;opacity:1!important;pointer-events:auto!important;filter:none!important;margin-top:14px;box-shadow:none!important;border:1px solid rgba(17,24,39,.09)!important}.edit-search-calendar .month-list-calendar-body{max-height:390px}.edit-search-calendar .calendar-month-list{max-height:330px}.edit-search-dialog{max-width:760px!important}.edit-search-dialog .edit-search-form{max-height:calc(100vh - 150px);overflow:auto;padding-right:3px}@media(max-width:720px){.edit-search-date-fields{grid-template-columns:1fr}.edit-search-calendar .calendar-month-list{display:none}.edit-search-calendar .month-list-calendar-body{grid-template-columns:1fr}.edit-search-dialog{max-width:calc(100% - 20px)!important}}

/* V91.42 — компактный календарь в окне «Изменить поиск» */
.edit-search-modal{
  padding:18px 14px!important;
  align-items:flex-start!important;
}
.edit-search-dialog{
  width:min(680px,100%)!important;
  max-width:680px!important;
  margin:0 auto!important;
  border-radius:20px!important;
  max-height:calc(100dvh - 36px)!important;
  overflow:hidden!important;
}
.edit-search-header{
  padding:14px 18px 12px!important;
  align-items:center!important;
}
.edit-search-header span{font-size:10px!important}
.edit-search-header h2{font-size:20px!important;margin-top:2px!important}
.edit-search-close{width:34px!important;height:34px!important;font-size:22px!important}
.edit-search-dialog .edit-search-form{
  max-height:calc(100dvh - 102px)!important;
  overflow:auto!important;
  padding:14px 18px 0!important;
}
.edit-search-date-fields{gap:8px!important}
.edit-search-date-button{padding:9px 12px!important;border-radius:11px!important}
.edit-search-date-button span{font-size:10px!important;margin-bottom:2px!important}
.edit-search-date-button b{font-size:14px!important}
.edit-search-calendar{
  margin-top:10px!important;
  border-radius:16px!important;
}
.edit-search-calendar .month-list-calendar-header{
  padding:10px 14px 8px!important;
}
.edit-search-calendar .calendar-kicker{font-size:9px!important}
.edit-search-calendar .month-list-calendar-header h3{
  margin:2px 0 0!important;
  font-size:15px!important;
}
.edit-search-calendar .selected-period-line{
  padding:8px 14px!important;
  min-height:0!important;
  gap:10px!important;
}
.edit-search-calendar .selected-period-line small{font-size:9px!important}
.edit-search-calendar .selected-period-line b{font-size:12px!important}
.edit-search-calendar .selected-period-line em{font-size:10px!important}
.edit-search-calendar .month-list-calendar-body{
  max-height:292px!important;
  min-height:0!important;
  grid-template-columns:128px 1fr!important;
}
.edit-search-calendar .calendar-month-list{
  max-height:292px!important;
  padding:8px 6px!important;
}
.edit-search-calendar .calendar-month-link{
  padding:6px 8px!important;
  border-radius:7px!important;
  font-size:11px!important;
}
.edit-search-calendar .calendar-main-panel{
  padding:10px 12px 8px!important;
}
.edit-search-calendar .compact-calendar-nav{
  margin-bottom:7px!important;
  min-height:30px!important;
}
.edit-search-calendar .compact-calendar-nav h3{font-size:15px!important}
.edit-search-calendar .calendar-arrow-btn{
  width:30px!important;
  height:30px!important;
  border-radius:8px!important;
  font-size:20px!important;
}
.edit-search-calendar .compact-weekdays,
.edit-search-calendar .compact-calendar-days{
  gap:2px!important;
}
.edit-search-calendar .weekdays span{font-size:9px!important;padding:2px 0!important}
.edit-search-calendar .calendar-day,
.edit-search-calendar .compact-day{
  min-height:30px!important;
  height:30px!important;
  aspect-ratio:auto!important;
  border-radius:7px!important;
  font-size:11px!important;
}
.edit-search-calendar .month-list-calendar-footer{
  padding:7px 12px!important;
  min-height:0!important;
}
.edit-search-calendar .month-list-calendar-footer span,
.edit-search-calendar .calendar-clear{font-size:10px!important}
.edit-search-guests{margin-top:10px!important;border-radius:14px!important}
.edit-search-counter{padding:10px 13px!important}
.edit-search-counter span{font-size:11px!important}
.edit-search-counter>div:last-child{gap:8px!important}
.edit-search-counter>div:last-child button{width:31px!important;height:31px!important;font-size:18px!important}
.edit-search-ages{padding:10px 13px!important;gap:8px!important}
.edit-search-ages label{gap:4px!important;font-size:11px!important}
.edit-search-ages select{height:38px!important;border-radius:10px!important}
.edit-search-footer{
  padding:10px 18px 14px!important;
  gap:8px!important;
}
.edit-search-footer .btn,
.edit-search-footer .btn-outline{min-height:40px!important;padding:0 17px!important}

@media(max-width:720px){
  .edit-search-modal{padding:8px!important;align-items:flex-start!important}
  .edit-search-dialog{
    width:100%!important;
    max-width:100%!important;
    min-height:0!important;
    max-height:calc(100dvh - 16px)!important;
    border-radius:16px!important;
    margin:0!important;
  }
  .edit-search-header{padding:11px 13px 9px!important}
  .edit-search-dialog .edit-search-form{
    max-height:calc(100dvh - 78px)!important;
    padding:10px 12px 0!important;
  }
  .edit-search-date-fields{grid-template-columns:1fr 1fr!important}
  .edit-search-calendar .month-list-calendar-body{
    grid-template-columns:1fr!important;
    max-height:none!important;
  }
  .edit-search-calendar .calendar-month-list{display:none!important}
  .edit-search-calendar .calendar-main-panel{padding:8px 9px 6px!important}
  .edit-search-calendar .calendar-day,
  .edit-search-calendar .compact-day{height:34px!important;min-height:34px!important;font-size:12px!important}
  .edit-search-calendar .selected-period-line{padding:7px 10px!important}
  .edit-search-calendar .selected-period-line em{display:none!important}
  .edit-search-calendar .month-list-calendar-footer span{display:none!important}
  .edit-search-guests{margin-top:8px!important}
  .edit-search-counter{padding:8px 11px!important}
  .edit-search-footer{position:sticky!important;bottom:0!important;padding:9px 12px 11px!important;background:#fff!important}
}

/* V91.44.1: название гостиницы на странице подтверждения занимает одну строку. */
.ro-doc-hotel{
  grid-template-columns:minmax(0,1fr);
  gap:18px;
}
.ro-doc-hotel>div:first-child{
  min-width:0;
}
.ro-doc-hotel h2{
  display:block;
  width:100%;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  font-size:clamp(16px,2.4vw,24px);
}
.ro-doc-hotel-contacts{
  grid-template-columns:repeat(4,minmax(0,1fr));
}
@media(max-width:900px){
  .ro-doc-hotel-contacts{grid-template-columns:repeat(2,minmax(0,1fr));}
}
@media(max-width:560px){
  .ro-doc-hotel h2{font-size:clamp(14px,4.6vw,20px);}
  .ro-doc-hotel-contacts{grid-template-columns:1fr;}
}
@media print{
  .ro-doc-hotel{grid-template-columns:1fr!important;}
  .ro-doc-hotel h2{
    overflow:visible!important;
    text-overflow:clip!important;
    white-space:nowrap!important;
    font-size:9pt!important;
  }
  .ro-doc-hotel-contacts{grid-template-columns:repeat(4,minmax(0,1fr))!important;}
}

/* V91.46: календарь «Изменить поиск» целиком помещается без прокрутки. */
.edit-search-modal{
  align-items:center!important;
  padding:8px!important;
  overflow:hidden!important;
}
.edit-search-dialog{
  display:flex!important;
  flex-direction:column!important;
  width:min(660px,calc(100vw - 16px))!important;
  max-width:660px!important;
  min-height:0!important;
  max-height:calc(100dvh - 16px)!important;
  margin:auto!important;
  border-radius:16px!important;
  overflow:hidden!important;
}
.edit-search-header{
  flex:0 0 auto!important;
  padding:9px 13px 7px!important;
}
.edit-search-header span{font-size:9px!important}
.edit-search-header h2{margin-top:1px!important;font-size:18px!important}
.edit-search-close{width:30px!important;height:30px!important;font-size:20px!important}
.edit-search-dialog .edit-search-form{
  display:grid!important;
  flex:1 1 auto!important;
  grid-template-rows:auto auto auto auto auto!important;
  gap:5px!important;
  min-height:0!important;
  max-height:none!important;
  padding:7px 10px 8px!important;
  overflow:hidden!important;
}
.edit-search-date-fields{
  grid-template-columns:1fr 1fr!important;
  gap:6px!important;
}
.edit-search-date-button{
  min-height:36px!important;
  padding:5px 9px!important;
  border-radius:9px!important;
}
.edit-search-date-button span{font-size:9px!important;margin-bottom:0!important}
.edit-search-date-button b{font-size:12px!important;line-height:1.15!important}
.edit-search-calendar{
  min-height:0!important;
  margin:0!important;
  border-radius:12px!important;
  overflow:hidden!important;
}
.edit-search-calendar .month-list-calendar-header,
.edit-search-calendar .selected-period-line{
  display:none!important;
}
.edit-search-calendar .month-list-calendar-body{
  display:block!important;
  min-height:0!important;
  max-height:none!important;
}
.edit-search-calendar .calendar-month-list{display:none!important}
.edit-search-calendar .calendar-main-panel{padding:5px 8px 3px!important}
.edit-search-calendar .compact-calendar-nav{
  min-height:24px!important;
  margin:0 0 2px!important;
}
.edit-search-calendar .compact-calendar-nav h3{font-size:13px!important}
.edit-search-calendar .calendar-arrow-btn{
  width:25px!important;
  height:25px!important;
  border-radius:7px!important;
  font-size:18px!important;
}
.edit-search-calendar .compact-weekdays,
.edit-search-calendar .compact-calendar-days{gap:2px!important}
.edit-search-calendar .weekdays span{padding:0!important;font-size:8px!important}
.edit-search-calendar .calendar-day,
.edit-search-calendar .compact-day{
  height:clamp(22px,3.6dvh,28px)!important;
  min-height:22px!important;
  aspect-ratio:auto!important;
  border-radius:6px!important;
  font-size:10px!important;
  line-height:1!important;
}
.edit-search-calendar .month-list-calendar-footer{
  min-height:22px!important;
  padding:3px 8px 4px!important;
}
.edit-search-calendar .month-list-calendar-footer span{display:none!important}
.edit-search-calendar .calendar-clear{font-size:9px!important;line-height:1!important}
.edit-search-guests{
  display:grid!important;
  grid-template-columns:1fr 1fr!important;
  margin:0!important;
  border-radius:11px!important;
}
.edit-search-counter{
  min-width:0!important;
  padding:6px 8px!important;
  gap:6px!important;
  border-bottom:0!important;
}
.edit-search-counter:first-child{border-right:1px solid #eaecf0!important}
.edit-search-counter strong{font-size:11px!important}
.edit-search-counter span{font-size:9px!important}
.edit-search-counter>div:last-child{gap:5px!important}
.edit-search-counter>div:last-child button{
  width:27px!important;
  height:27px!important;
  min-height:27px!important;
  font-size:16px!important;
}
.edit-search-counter b{min-width:16px!important;font-size:11px!important}
.edit-search-ages{
  grid-column:1/-1!important;
  grid-template-columns:repeat(3,minmax(0,1fr))!important;
  gap:5px!important;
  padding:5px 7px!important;
  border-top:1px solid #eaecf0!important;
}
.edit-search-ages:empty{display:none!important}
.edit-search-ages label{gap:2px!important;font-size:9px!important}
.edit-search-ages select{
  height:30px!important;
  min-height:30px!important;
  padding:0 7px!important;
  border-radius:8px!important;
  font-size:12px!important;
}
.edit-search-error{margin:0!important;padding:6px 9px!important;border-radius:8px!important;font-size:11px!important}
.edit-search-footer{
  position:static!important;
  min-height:36px!important;
  padding:5px 0 0!important;
  gap:6px!important;
  border-top:0!important;
}
.edit-search-footer .btn,
.edit-search-footer .btn-outline{
  min-height:34px!important;
  padding:0 13px!important;
  border-radius:9px!important;
  font-size:12px!important;
}

/* Низкие экраны и телефоны в альбомной ориентации: календарь и гости рядом. */
@media(max-height:620px) and (min-width:560px){
  .edit-search-dialog{width:min(900px,calc(100vw - 12px))!important;max-width:900px!important;max-height:calc(100dvh - 12px)!important}
  .edit-search-header{padding:5px 10px 4px!important}
  .edit-search-header span{display:none!important}
  .edit-search-header h2{font-size:16px!important}
  .edit-search-dialog .edit-search-form{
    grid-template-columns:minmax(0,1.45fr) minmax(245px,.75fr)!important;
    grid-template-rows:auto 1fr auto auto!important;
    grid-template-areas:"dates guests" "calendar guests" "error guests" "footer footer"!important;
    gap:4px 7px!important;
    padding:5px 7px 6px!important;
  }
  .edit-search-date-fields{grid-area:dates!important}
  .edit-search-calendar{grid-area:calendar!important}
  .edit-search-guests{grid-area:guests!important;display:block!important}
  .edit-search-counter:first-child{border-right:0!important;border-bottom:1px solid #eaecf0!important}
  .edit-search-ages{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  .edit-search-error{grid-area:error!important}
  .edit-search-footer{grid-area:footer!important}
  .edit-search-calendar .calendar-day,
  .edit-search-calendar .compact-day{height:clamp(20px,5.2dvh,25px)!important;min-height:20px!important}
}

@media(max-width:559px){
  .edit-search-modal{padding:5px!important}
  .edit-search-dialog{width:calc(100vw - 10px)!important;max-height:calc(100dvh - 10px)!important;border-radius:13px!important}
  .edit-search-header{padding:7px 9px 5px!important}
  .edit-search-dialog .edit-search-form{padding:5px 7px 6px!important;gap:4px!important}
  .edit-search-counter{padding:5px 6px!important}
  .edit-search-counter span{display:none!important}
}

@media(max-height:520px) and (max-width:559px){
  .edit-search-header span{display:none!important}
  .edit-search-header h2{font-size:15px!important}
  .edit-search-close{width:27px!important;height:27px!important}
  .edit-search-date-button{min-height:31px!important;padding:3px 7px!important}
  .edit-search-calendar .calendar-main-panel{padding:3px 6px 2px!important}
  .edit-search-calendar .calendar-day,
  .edit-search-calendar .compact-day{height:20px!important;min-height:20px!important;font-size:9px!important}
  .edit-search-calendar .month-list-calendar-footer{display:none!important}
  .edit-search-counter>div:last-child button{width:24px!important;height:24px!important;min-height:24px!important}
  .edit-search-ages select{height:27px!important;min-height:27px!important}
  .edit-search-footer{min-height:31px!important;padding-top:2px!important}
  .edit-search-footer .btn,.edit-search-footer .btn-outline{min-height:30px!important}
}

@media(max-width:339px){
  .edit-search-calendar .calendar-day,
  .edit-search-calendar .compact-day{height:20px!important;min-height:20px!important}
  .edit-search-calendar .month-list-calendar-footer{min-height:18px!important;padding:1px 6px 2px!important}
  .edit-search-ages label span{font-size:0!important;white-space:nowrap!important}
  .edit-search-ages label span::after{font-size:8px!important}
  .edit-search-ages label:nth-child(1) span::after{content:"Ребёнок 1"}
  .edit-search-ages label:nth-child(2) span::after{content:"Ребёнок 2"}
  .edit-search-ages label:nth-child(3) span::after{content:"Ребёнок 3"}
  .edit-search-ages label:nth-child(4) span::after{content:"Ребёнок 4"}
  .edit-search-ages label:nth-child(5) span::after{content:"Ребёнок 5"}
  .edit-search-ages label:nth-child(6) span::after{content:"Ребёнок 6"}
}

@media(max-height:420px) and (min-width:560px){
  .edit-search-modal{padding:6px!important}
  .edit-search-calendar .month-list-calendar-footer{display:none!important}
}

/* V91.47: двухцветные линейные иконки и настраиваемые плашки категорий. */
.room-badge-stack{
  position:absolute!important;
  top:14px!important;
  left:14px!important;
  right:14px!important;
  z-index:6!important;
  display:flex!important;
  flex-wrap:wrap!important;
  align-items:flex-start!important;
  gap:6px!important;
  pointer-events:none!important;
}
.room-promo-badge{
  display:inline-flex!important;
  align-items:center!important;
  gap:6px!important;
  min-height:30px!important;
  padding:6px 10px!important;
  border:1px solid rgba(255,255,255,.42)!important;
  border-radius:9px!important;
  background:var(--room-badge-color,#ff7a00)!important;
  color:#fff!important;
  font-size:11px!important;
  font-weight:900!important;
  line-height:1!important;
  letter-spacing:.035em!important;
  text-transform:uppercase!important;
  box-shadow:0 7px 18px rgba(22,34,38,.24),0 0 0 1px rgba(0,0,0,.06) inset!important;
  text-shadow:0 1px 2px rgba(0,0,0,.28)!important;
}
.room-promo-badge__icon{font-size:14px!important;line-height:1!important}
.live-room-card.has-room-badges{
  border:3px solid var(--room-badge-color,#ff7a00)!important;
  box-shadow:0 0 0 1px var(--room-badge-color,#ff7a00),0 16px 40px rgba(16,24,40,.16)!important;
}
.live-room-card.has-room-badges:hover{
  box-shadow:0 0 0 3px var(--room-badge-color,#ff7a00),0 22px 48px rgba(16,24,40,.2)!important;
}
.room-amenity-strip{
  align-items:flex-end!important;
  gap:7px!important;
}
.room-amenity-icon{
  position:relative!important;
  flex:0 0 42px!important;
  width:42px!important;
  height:42px!important;
  border-radius:11px!important;
  background:rgba(249,253,252,.96)!important;
  color:#527675!important;
  border:1px solid rgba(167,207,202,.9)!important;
  box-shadow:0 5px 15px rgba(23,52,55,.2)!important;
}
.room-amenity-icon::after{
  content:""!important;
  position:absolute!important;
  top:6px!important;
  right:6px!important;
  width:6px!important;
  height:6px!important;
  border-radius:50%!important;
  background:#ef9486!important;
  box-shadow:0 0 0 2px rgba(239,148,134,.17)!important;
}
.room-amenity-icon:nth-child(3n)::after{background:#59c8c2!important;box-shadow:0 0 0 2px rgba(89,200,194,.18)!important}
.room-amenity-icon svg{
  width:24px!important;
  height:24px!important;
  fill:none!important;
  stroke:currentColor!important;
  stroke-width:1.55!important;
  stroke-linecap:round!important;
  stroke-linejoin:round!important;
}
@media(max-width:760px){
  .room-badge-stack{top:10px!important;left:10px!important;right:10px!important;gap:5px!important}
  .room-promo-badge{min-height:27px!important;padding:5px 8px!important;font-size:10px!important}
  .room-amenity-icon{flex-basis:37px!important;width:37px!important;height:37px!important;border-radius:10px!important}
  .room-amenity-icon svg{width:21px!important;height:21px!important}
}

/* V91.77: связный переход от выбранного тарифа к данным гостей. */
.ro-page-leaving{overflow:hidden}
.ro-page-leaving main,.ro-page-leaving .steps{
  opacity:.72;
  transition:opacity .2s ease;
}
.ro-booking-transition{
  position:fixed;
  inset:0;
  z-index:20000;
  display:grid;
  place-items:center;
  padding:20px;
  background:rgba(9,22,39,.28);
  opacity:0;
  backdrop-filter:blur(3px);
  transition:opacity .2s ease;
}
.ro-booking-transition.is-visible{opacity:1}
.ro-booking-transition__panel{
  display:grid;
  grid-template-columns:52px minmax(0,1fr);
  align-items:center;
  gap:15px;
  width:min(460px,100%);
  padding:22px;
  border:1px solid rgba(255,255,255,.65);
  border-radius:20px;
  background:#fff;
  box-shadow:0 28px 80px rgba(8,20,35,.24);
  transform:translateY(10px) scale(.98);
  transition:transform .24s ease;
}
.ro-booking-transition.is-visible .ro-booking-transition__panel{transform:none}
.ro-booking-transition__mark{
  display:grid;
  place-items:center;
  width:52px;
  height:52px;
  border-radius:50%;
  background:color-mix(in srgb,var(--hotel-button-color,var(--blue)) 12%,#fff);
  color:var(--hotel-button-color,var(--blue));
  font-size:25px;
  font-weight:900;
}
.ro-booking-transition__panel strong,.ro-booking-transition__panel small{display:block}
.ro-booking-transition__panel strong{margin-top:2px;font-size:18px;line-height:1.28;color:#101828}
.ro-booking-transition__panel small{margin-top:5px;color:#667085}
.ro-booking-transition__kicker{color:var(--hotel-button-color,var(--blue));font-size:11px;font-weight:850;text-transform:uppercase;letter-spacing:.07em}
.ro-booking-transition__total{display:block;margin-top:8px;color:#101828;font-size:16px}
@media(max-width:640px){
  .ro-booking-transition__panel{grid-template-columns:44px minmax(0,1fr);padding:18px;border-radius:17px}
  .ro-booking-transition__mark{width:44px;height:44px;font-size:21px}
  .ro-booking-transition__panel strong{font-size:16px}
}
@media(prefers-reduced-motion:reduce){
  .ro-booking-transition,.ro-booking-transition__panel,.ro-page-leaving main,.ro-page-leaving .steps{transition:none}
}

/* V91.56: единый вывод управляемых баннеров на всех этапах бронирования. */
.ro-banner-slot{display:block;width:100%;margin:0 0 22px}
.ro-banner-slot[hidden]{display:none!important}
.ro-runtime-banner{
  position:relative;
  display:flex;
  align-items:center;
  width:100%;
  overflow:hidden;
  padding:clamp(24px,4vw,48px);
  box-sizing:border-box;
  color:#fff;
  isolation:isolate;
  box-shadow:0 14px 34px rgba(17,32,51,.14);
}
.ro-runtime-banner::after{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none}
.ro-banner-content{position:relative;z-index:1;width:100%}
.ro-banner-label{margin:0 0 9px;font-size:12px;font-weight:850;line-height:1.2;letter-spacing:.09em;text-transform:uppercase;opacity:.92}
.ro-runtime-banner h1,.ro-runtime-banner h2{max-width:none!important;margin:0 0 12px!important;color:inherit!important;font-size:clamp(27px,3.2vw,44px)!important;line-height:1.08!important;letter-spacing:-.035em!important}
.ro-runtime-banner p{max-width:720px!important;margin:0 0 18px!important;color:inherit!important;font-size:clamp(14px,1.5vw,18px)!important;line-height:1.48!important;opacity:.94!important}
.ro-runtime-banner[style*="text-align: center"] p{margin-left:auto!important;margin-right:auto!important}
.ro-runtime-banner[style*="text-align: right"] p{margin-left:auto!important}
.ro-banner-button{margin-top:2px;text-decoration:none!important}
.ro-banner-button--outline{background:transparent!important;color:inherit!important;border:2px solid currentColor!important;box-shadow:none!important}
.ro-banner-button--white{background:#fff!important;color:#17202a!important;border-color:#fff!important}
.ro-banner-button--link{min-height:auto!important;padding:6px 0!important;background:transparent!important;color:inherit!important;border:0!important;border-bottom:1px solid currentColor!important;border-radius:0!important;box-shadow:none!important}
.ro-runtime-banner--compact{padding:18px 20px!important;box-shadow:none}
.ro-runtime-banner--compact h2{font-size:21px!important;margin-bottom:7px!important}
.ro-runtime-banner--compact p{font-size:13px!important;margin-bottom:10px!important}
.ro-runtime-banner--compact .ro-banner-label{font-size:10px;margin-bottom:6px}
.ro-runtime-banner--compact .ro-banner-button{min-height:36px!important;padding:0 14px!important;font-size:12px!important}
.ro-banner-slot--my-booking{margin:0 0 14px;padding:0 2px}
.hero.ro-runtime-banner--hero{overflow:hidden!important;background-repeat:no-repeat!important;background-clip:padding-box!important}
@media(max-width:720px){
  .ro-banner-slot{margin-bottom:16px}
  .ro-runtime-banner{padding:22px 20px!important}
  .ro-runtime-banner h1,.ro-runtime-banner h2{font-size:27px!important;margin-bottom:8px!important}
  .ro-runtime-banner p{font-size:14px!important;margin-bottom:14px!important}
  .ro-runtime-banner--compact{padding:15px!important}
  .ro-runtime-banner--compact h2{font-size:18px!important}
}

/* V91.78: единая верхняя шапка и шкала этапов на всех страницах. */
html[data-booking-mode="standalone"] body.home-page .header-inner{height:72px}
html[data-booking-mode="standalone"] body.home-page .steps-inner{padding:14px 0}
html[data-booking-mode="standalone"] body.home-page .step{padding:7px 8px}
body.ro-booking-document .header{
  position:sticky;
  top:0;
  z-index:40;
  display:block;
  background:rgba(255,255,255,.96);
  backdrop-filter:blur(14px);
  border-bottom:1px solid var(--line);
  box-shadow:none;
}
@media(max-width:640px){
  html[data-booking-mode="standalone"] body.home-page .header-inner{height:60px}
}

/* V91.79: форма гостей во всю ширину без повторной боковой сводки. */
.guest-complete-layout{
  grid-template-columns:minmax(0,1fr);
  gap:0;
}
.guest-complete-form,
.guest-complete-form .form-card{
  width:100%;
  min-width:0;
}
.guest-sidebar{display:none!important}

/* V91.80: в iframe нет перехода к каталогу и служебного подвала. */
html[data-booking-mode="iframe"] .all-hotels-link,
html[data-booking-mode="iframe"] .footer,
html[data-booking-mode="iframe"] .home-fixed-footer{
  display:none!important;
}
