
/* Booking availability block for Wollen v5 */
:root{
  --w-bg:#F7F3EA; --w-card:#FFFCF6; --w-text:#26322B; --w-head:#1F3B2D;
  --w-green:#1F5B36; --w-green-2:#3F6B4A; --w-water:#4F8FA3; --w-gold:#D8A24A;
  --w-border:#DDD0B8; --w-soft:#F2EFE7; --w-danger:#9B2E2E; --w-ok:#0F6B38;
  --w-shadow:0 18px 45px rgba(31,59,45,.10);
}
.page-hero-bar{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:22px}
.page-hero-bar .breadcrumbs{margin-bottom:0}
.page-hero-actions{display:flex;justify-content:flex-end}
.booking-top-link{display:inline-flex;align-items:center;justify-content:center;min-height:44px;border:1px solid rgba(31,91,54,.22);background:rgba(255,252,246,.82);border-radius:999px;padding:10px 16px;color:var(--w-green);font-weight:800;box-shadow:0 10px 24px rgba(31,59,45,.08);white-space:nowrap}
.booking-top-link:hover{filter:brightness(1.02)}
.booking-search-section{padding:36px 0 70px;background:linear-gradient(180deg,var(--w-bg),#fffaf1)}
.booking-widget{max-width:1180px;margin:0 auto;color:var(--w-text)}
.booking-widget *{box-sizing:border-box}.booking-widget button,.booking-widget input,.booking-widget select,.booking-widget textarea{font:inherit}
.search-panel{background:rgba(255,252,246,.94);border:1px solid rgba(221,208,184,.9);border-radius:22px;padding:18px;box-shadow:var(--w-shadow);backdrop-filter:blur(8px)}
.search-title{display:flex;justify-content:space-between;gap:20px;align-items:flex-end;margin:0 0 16px}.search-title h2{font-size:clamp(26px,4vw,42px);line-height:1.05;margin:0;color:var(--w-head)}.search-title p{margin:8px 0 0;color:#5c675e;font-size:17px;line-height:1.45}.booking-title-actions{display:flex;gap:10px;align-items:center;justify-content:flex-end;flex-wrap:wrap}.booking-badge{border:1px solid var(--w-border);border-radius:999px;padding:9px 14px;background:#fff;color:var(--w-green);font-weight:700;white-space:nowrap}
.search-form{display:grid;grid-template-columns:1fr 1fr .75fr .75fr minmax(220px,.95fr);gap:10px;align-items:stretch}.search-field{position:relative;background:#fff;border:1px solid #d9d3c8;border-radius:14px;padding:10px 14px;min-height:66px}.search-field label{display:block;font-size:13px;color:#72786f;margin-bottom:6px}.search-field input,.search-field select{width:100%;border:0;background:transparent;color:#111;font-size:19px;font-weight:700;outline:0}.search-btn{border:0;border-radius:14px;background:linear-gradient(180deg,#21623b,#164428);color:white;font-weight:800;font-size:18px;cursor:pointer;box-shadow:0 10px 24px rgba(31,91,54,.22)}.search-btn:hover{filter:brightness(1.04)}.search-btn:disabled{opacity:.7;cursor:wait}
.search-chips{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}.chip{display:inline-flex;align-items:center;gap:8px;border:1px solid #ded7c9;background:#fff;border-radius:10px;padding:7px 10px;font-size:14px;color:#3d473f}.chip strong{color:var(--w-head)}
.results-area{margin-top:18px}.status-box{display:flex;gap:14px;align-items:center;padding:15px 18px;border-radius:16px;margin:0 0 14px;border:1px solid #cbded0;background:linear-gradient(90deg,#f2fbf5,#fff)}.status-box.warn{border-color:#ead08c;background:linear-gradient(90deg,#fff8df,#fffaf2)}.status-icon{width:42px;height:42px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:var(--w-ok);color:#fff;font-size:22px;flex:0 0 auto}.status-box.warn .status-icon{background:var(--w-gold);color:#3a2e09}.status-text strong{display:block;color:var(--w-head);font-size:18px;margin-bottom:2px}.status-text span{color:#4f5c55}
.options-heading{margin:18px 0 8px;color:var(--w-head);font-size:22px;line-height:1.2}.option-card{display:grid;grid-template-columns:minmax(120px,150px) 1fr minmax(190px,240px);gap:20px;background:#fff;border:1px solid #e5ded2;border-radius:18px;padding:12px;margin:12px 0;box-shadow:0 10px 30px rgba(38,50,43,.08);overflow:hidden}.option-photo{position:relative;aspect-ratio:5/4;border-radius:13px;overflow:hidden;background:#e7e0d0}.option-photo img{width:100%;height:100%;object-fit:cover;display:block}.photo-count{position:absolute;right:10px;bottom:10px;background:rgba(0,0,0,.6);color:#fff;border-radius:9px;padding:5px 10px;font-weight:700}.heart{position:absolute;right:10px;top:10px;width:40px;height:40px;border:2px solid rgba(255,255,255,.85);border-radius:50%;display:flex;align-items:center;justify-content:center;color:#fff;background:rgba(0,0,0,.18);font-size:24px}.option-main{padding:6px 0}.option-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;flex-wrap:wrap}.option-index{display:inline-flex;border:1px solid #e1d6c6;background:#fffaf1;color:#687168;border-radius:999px;padding:4px 9px;font-size:12px;font-weight:800;white-space:nowrap}.availability-label{display:inline-flex;border:1px solid #80af8d;color:#1b6b3c;background:#f4fbf6;border-radius:7px;padding:3px 9px;font-weight:700;font-size:13px}.alternative-label{border-color:#d3a941;color:#8a6512;background:#fff7dc}.option-main h3{margin:10px 0 6px;font-size:23px;line-height:1.18;color:#172219}.option-desc{color:#46524a;font-size:15.5px;line-height:1.45;margin:0 0 12px}.stay-dates{display:flex;flex-wrap:wrap;gap:8px;margin:10px 0 12px}.stay-dates span{display:inline-flex;align-items:center;border:1px solid #ded7c9;background:#fffaf1;border-radius:9px;padding:7px 10px;color:#3d473f;font-size:14px}.stay-dates strong{color:var(--w-head);margin-left:4px}
.amenities{display:flex;flex-wrap:wrap;gap:10px 16px;margin:12px 0;color:#222}.amenity{display:inline-flex;gap:7px;align-items:center;font-size:14.5px;white-space:nowrap}.amenity svg{width:18px;height:18px;stroke:#16251b}.feature-row{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}.feature{border:1px solid #d8e8dd;background:#f5fbf7;color:#245c39;border-radius:9px;padding:7px 10px;font-size:14px}.option-side{border-left:1px solid #eee6da;padding:8px 0 8px 20px;display:flex;flex-direction:column;align-items:flex-end;justify-content:space-between;text-align:right}.rating{display:flex;gap:10px;align-items:center;justify-content:flex-end}.rating-num{background:var(--w-green);color:#fff;padding:8px 9px;border-radius:8px;font-weight:800}.rating small{display:block;color:#677067;margin-top:2px}.total-price{font-size:31px;font-weight:900;color:#0f1411}.total-price span{font-size:15px;color:#687168;font-weight:400;display:block;margin-top:4px}.price{margin-top:8px;color:#687168;font-size:15px}.choose-btn{width:100%;border:0;border-radius:10px;background:linear-gradient(180deg,#21623b,#164428);color:#fff;padding:13px 16px;font-weight:800;cursor:pointer}.choose-btn:hover{filter:brightness(1.06)}.no-results{padding:22px;border:1px solid var(--w-border);border-radius:16px;background:#fff;color:#4a554e}.no-results strong{color:var(--w-head)}
.trust-row{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-top:18px}.trust-item{display:flex;gap:12px;align-items:flex-start;background:#fff;border:1px solid #e5ded2;border-radius:14px;padding:14px}.trust-ico{font-size:27px}.trust-item strong{display:block;color:var(--w-head);margin-bottom:3px}.trust-item span{color:#5a645c;font-size:14px;line-height:1.35}
.request-panel{display:none;margin-top:18px;background:#fff;border:1px solid #e5ded2;border-radius:18px;padding:18px;box-shadow:var(--w-shadow)}.request-panel.show{display:block}.request-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.request-grid .full{grid-column:1/-1}.request-panel label{display:block;font-size:13px;color:#687168;margin-bottom:6px}.request-panel input,.request-panel textarea{width:100%;border:1px solid #d9d3c8;border-radius:12px;padding:12px 13px;background:#fff;font-size:16px;outline:0}.request-panel textarea{min-height:96px;resize:vertical}.selected-summary{margin:14px 0 18px}.selected-stay-card{display:grid;grid-template-columns:minmax(220px,300px) 1fr minmax(170px,220px);gap:18px;background:linear-gradient(180deg,#fffdf8,#fbf5ea);border:1px solid #e5ded2;border-radius:18px;padding:12px;box-shadow:0 10px 30px rgba(38,50,43,.08)}.selected-stay-photo{min-height:205px;border-radius:14px;overflow:hidden;background:#e7e0d0}.selected-stay-photo img{width:100%;height:100%;object-fit:cover;display:block}.selected-stay-main{padding:6px 0}.selected-stay-main h3{margin:10px 0 6px;font-size:21px;line-height:1.18;color:#172219}.selected-amenities{margin-bottom:0}.selected-stay-side{display:flex;flex-direction:column;justify-content:space-between;align-items:flex-end;gap:14px;padding-left:18px;border-left:1px solid #eee6da;text-align:right}.selected-stay-total{font-size:30px;font-weight:900;color:#111}.selected-stay-caption{color:#687168;font-size:14px}.request-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:14px}.request-actions .choose-btn{width:auto;min-width:210px}.outline-btn{border:1px solid var(--w-green);background:#fff;color:var(--w-green);border-radius:10px;padding:13px 16px;font-weight:800;cursor:pointer}.error-line{color:var(--w-danger);font-weight:700;margin-top:10px}.success-line{color:var(--w-ok);font-weight:700;margin-top:10px}
@media (max-width:1100px){.search-form{grid-template-columns:1fr 1fr 1fr}.search-btn{grid-column:1/-1;height:58px}}
@media (max-width:900px){.search-title{display:block}.booking-title-actions{justify-content:flex-start;margin-top:12px}.booking-badge{display:inline-flex}.search-form{grid-template-columns:1fr 1fr}.search-btn{grid-column:1/-1;height:58px}.option-card{grid-template-columns:1fr}.option-photo{grid-row:auto}.option-side{border-left:0;border-top:1px solid #eee6da;padding:14px 0 0;align-items:stretch;text-align:left}.rating{justify-content:flex-start}.price{text-align:left}.trust-row{grid-template-columns:1fr 1fr}}
@media (max-width:560px){.booking-search-section{padding:18px 0 48px}.search-panel{border-radius:18px;padding:14px}.search-form{grid-template-columns:1fr}.search-field input,.search-field select{font-size:17px}.option-card{padding:9px;border-radius:16px}.option-main h3{font-size:20px}.amenities{gap:9px}.option-side{padding:12px 0 0}.price{font-size:28px}.trust-row{grid-template-columns:1fr}.request-grid{grid-template-columns:1fr}.request-actions .choose-btn,.outline-btn{width:100%}}


/* Wollen booking block v5.4 fixes */
.search-field span{display:block;font-size:12px;color:#72786f;margin-bottom:5px}.booking-results{margin-top:18px}.option-card,.selected-stay-card{min-width:0}.option-main,.option-side,.selected-stay-main,.selected-stay-side{min-width:0}.option-main h3,.selected-stay-main h3,.option-desc,.stay-dates span,.amenity,.feature,.price,.total-price,.selected-stay-total{overflow-wrap:anywhere}.option-photo img,.selected-stay-photo img{max-width:100%}.request-panel h2{font-size:clamp(22px,3vw,32px);line-height:1.15;margin:0 0 8px}.request-panel p{margin:0;color:#566159}.booking-badge span{display:block;font-size:12px;color:#637167;font-weight:600;margin-top:2px}.search-title h2{font-size:clamp(24px,3.6vw,36px)}.search-title p{font-size:15.5px}.option-main h3{font-size:20px}.option-desc{font-size:14.5px}.amenity{font-size:13.5px}.feature{font-size:13.5px}.price{font-size:28px}.trust-item{min-width:0}.trust-item span{overflow-wrap:anywhere}
@media(max-width:900px){.option-card,.selected-stay-card{grid-template-columns:1fr}.selected-stay-photo{min-height:0;height:250px}.option-side,.selected-stay-side{align-items:flex-start;text-align:left;border-left:0;border-top:1px solid #eee6da;padding:14px 0 0}.choose-btn{max-width:320px}.request-actions .choose-btn{max-width:none}}
@media(max-width:560px){.page-hero-bar{display:block}.page-hero-actions{margin-top:10px;justify-content:flex-start}.booking-top-link{width:100%}.selected-stay-photo{height:210px}.status-box{align-items:flex-start}.status-text strong{font-size:16px}.status-text span{font-size:14px}.stay-dates span{font-size:13px}.choose-btn{max-width:none}.booking-badge{white-space:normal}.search-chips span,.search-chips .chip{font-size:13px}.option-main h3,.selected-stay-main h3{font-size:18px}.total-price,.selected-stay-total{font-size:24px}}

/* Wollen booking block v5.6: compact extra options and optional request fields */
.more-options-wrap{margin:14px 0 0}.show-more-options{display:inline-flex;align-items:center;justify-content:center;margin:4px 0 10px}.more-options{display:none;border:1px solid #e5ded2;background:#fff;border-radius:16px;padding:12px;margin-top:8px}.more-options.show{display:block}.more-options h3{margin:0 0 10px;font-size:18px;color:var(--w-head)}.compact-option{display:grid;grid-template-columns:1fr auto auto;gap:12px;align-items:center;border-top:1px solid #eee6da;padding:12px 0}.compact-option:first-of-type{border-top:0}.compact-option strong{display:block;color:var(--w-head);line-height:1.25}.compact-option span{display:block;color:#566159;font-size:14px;margin-top:4px}.compact-price{font-weight:900;color:#111;white-space:nowrap}.compact-option .outline-btn{padding:10px 13px}.request-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;grid-column:1/-1;margin-top:2px}.request-check{display:flex!important;align-items:center;gap:9px;border:1px solid #d9d3c8;border-radius:12px;padding:11px 12px;background:#fff;color:#26322B!important;font-size:14px!important;margin:0!important}.request-check input{width:auto!important;margin:0}.request-panel .hint{font-size:13px;color:#687168;margin-top:6px}.request-panel input:not([required]):not([type="checkbox"]),.request-panel textarea:not([required]){background:#fffdf8}
@media(max-width:700px){.compact-option{grid-template-columns:1fr}.compact-price{white-space:normal}.compact-option .outline-btn{width:100%}.request-options{grid-template-columns:1fr}}

.hold-status{margin-top:10px;width:100%;text-align:left}
.hold-status .status-box{align-items:flex-start;margin:0;padding:10px;border-radius:12px}
.hold-status .status-icon{width:30px;height:30px;font-size:16px}
.hold-status .status-text strong{font-size:14px}
.hold-status .status-text span{font-size:12px}
.frozen-options{margin:18px 0 0;border:1px solid #ecd39a;background:#fff9e8;border-radius:16px;padding:14px}
.frozen-options h3{margin:0 0 8px;color:#7c5a12;font-size:18px}
.frozen-option{opacity:.82}
.frozen-option span:first-of-type{display:inline-flex;width:max-content;border:1px solid #dfbb60;background:#fff2c4;color:#7c5a12;border-radius:999px;padding:3px 9px;font-weight:900}
.outline-btn:disabled,.choose-btn:disabled{opacity:.62;cursor:not-allowed;filter:none}

.booking-confirmation{
  border:1px solid rgba(47,77,55,.18);
  background:#f7f2e7;
  border-radius:18px;
  padding:18px;
  color:#26362b;
}
.booking-confirmation h3{margin:0 0 8px;font-size:22px;line-height:1.2}
.booking-confirmation .confirm-number{margin:0 0 12px;color:#516154}
.booking-confirmation dl{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:0 0 12px}
.booking-confirmation dl div{background:#fff;border:1px solid rgba(47,77,55,.10);border-radius:12px;padding:10px}
.booking-confirmation dt{font-size:12px;text-transform:uppercase;letter-spacing:.04em;color:#71806f;margin:0 0 4px}
.booking-confirmation dd{margin:0;font-weight:600}
.booking-confirmation p{margin:0;color:#516154}
@media (max-width:640px){.booking-confirmation dl{grid-template-columns:1fr}}

.loading-box .status-icon{animation:pulseWait 1.1s ease-in-out infinite}
.loading-progress{height:7px;margin-top:10px;border-radius:999px;background:#dfe8e1;overflow:hidden}
.loading-progress span{display:block;width:42%;height:100%;border-radius:999px;background:linear-gradient(90deg,#1f5b36,#d8a24a,#1f5b36);animation:loadingSweep 1.25s ease-in-out infinite}
@keyframes loadingSweep{0%{transform:translateX(-110%)}100%{transform:translateX(250%)}}
@keyframes pulseWait{0%,100%{transform:scale(1);opacity:.85}50%{transform:scale(1.06);opacity:1}}

.booking-voucher{max-width:920px;margin:0 auto;border:1px solid #cbd4cd;background:#fff;border-radius:18px;overflow:hidden;box-shadow:0 18px 45px rgba(31,59,45,.10);color:#1f2e27}
.voucher-head{display:flex;justify-content:space-between;gap:22px;align-items:flex-start;padding:22px 24px;border-bottom:1px solid #d9dedb;background:linear-gradient(90deg,#fff,#f4f8f5)}
.voucher-brand{font-size:38px;line-height:1;font-weight:950;letter-spacing:-.03em;color:#173528}
.voucher-head p{margin:6px 0 0;color:#657168}
.voucher-head strong{font-size:21px;line-height:1.25;color:#173528;text-align:right;max-width:360px}
.voucher-grid{display:grid;grid-template-columns:1fr .76fr}
.voucher-panel{padding:22px 24px}
.voucher-contact{border-left:1px solid #d9dedb;background:#fbf8f0}
.voucher-main h3,.voucher-contact h4{margin:0 0 14px;color:#173528;line-height:1.2}
.voucher-main h3{font-size:24px}.voucher-contact h4{font-size:19px}
.voucher-row{display:grid;grid-template-columns:minmax(150px,.72fr) 1fr;gap:12px;border-top:1px solid #e3e8e4;padding:11px 0}
.voucher-row:first-child{border-top:0}
.voucher-row dt{color:#607067;font-weight:800}
.voucher-row dd{margin:0;text-align:right;font-weight:700;color:#15251b;overflow-wrap:anywhere}
.voucher-contact p{margin:8px 0;color:#34443a;font-weight:700}
.voucher-note{margin-top:18px;border:1px solid #d6e4d9;border-radius:12px;background:#f1f8f3;padding:12px;color:#415148;line-height:1.45}
.voucher-actions{display:flex;gap:14px;align-items:center;justify-content:space-between;flex-wrap:wrap;padding:16px 24px;border-top:1px solid #d9dedb;background:#fffaf1}
.voucher-actions .choose-btn{width:auto;min-width:180px}
.voucher-actions span{color:#66736a;font-size:14px}
@media(max-width:760px){.voucher-head,.voucher-grid{display:block}.voucher-head strong{text-align:left;display:block;margin-top:12px}.voucher-contact{border-left:0;border-top:1px solid #d9dedb}.voucher-row{grid-template-columns:1fr}.voucher-row dd{text-align:left}.voucher-actions .choose-btn{width:100%}}


/* H16.2: пошаговый экран бронирования — поиск → анкета → подтверждение */
.booking-step-hidden{display:none!important}
.booking-results .booking-confirmation,.booking-results .booking-voucher{max-width:920px;margin:0 auto}


/* H16.3: форма отмены бронирования по номеру брони */
.booking-cancel-section{padding:0 0 54px;background:#faf7ef}
.booking-cancel-card{background:#fff;border:1px solid #e5ded2;border-radius:18px;padding:18px;box-shadow:var(--w-shadow)}
.booking-cancel-card h2{font-size:clamp(22px,3vw,30px);line-height:1.15;margin:4px 0 8px;color:var(--w-head)}
.booking-cancel-card p{margin:0 0 14px;color:#566159;max-width:760px}
.booking-cancel-row{display:grid;grid-template-columns:1fr auto;gap:12px;align-items:end}
.booking-cancel-row label{display:block;font-size:13px;color:#687168;margin:0}
.booking-cancel-row label span{display:block;margin-bottom:6px}
.booking-cancel-row input{width:100%;border:1px solid #d9d3c8;border-radius:12px;padding:12px 13px;background:#fff;font-size:16px;outline:0;text-transform:uppercase}
.booking-cancel-card .success-line,.booking-cancel-card .error-line{margin-top:12px}
.booking-cancel-standalone{padding-bottom:72px}
@media(max-width:700px){.booking-cancel-row{grid-template-columns:1fr}.booking-cancel-row .outline-btn{width:100%}}


/* H17: booking pages in the house-card reference style */
.booking-visual-hero{
  position:relative;
  min-height:340px;
  display:flex;
  align-items:flex-end;
  overflow:hidden;
  color:#fff;
  background:
    linear-gradient(90deg,rgba(13,27,20,.46) 0%,rgba(13,27,20,.22) 45%,rgba(13,27,20,.06) 100%),
    var(--hero-img) center/cover no-repeat;
}
.booking-visual-hero:after{
  content:"";
  position:absolute;
  inset:auto 0 0;
  height:42%;
  background:linear-gradient(180deg,rgba(255,255,255,0),rgba(247,243,234,.92));
  pointer-events:none;
}
.booking-visual-hero .container{
  position:relative;
  z-index:1;
  padding-top:118px;
  padding-bottom:34px;
}
.booking-visual-hero .kicker{
  color:rgba(255,255,255,.82);
  border-color:rgba(255,255,255,.28);
  background:rgba(18,42,29,.28);
  backdrop-filter:blur(8px);
}
.booking-visual-hero h1{
  margin:16px 0 0;
  font-family:Georgia,"Times New Roman",serif;
  font-weight:400;
  font-size:clamp(54px,8vw,96px);
  line-height:.92;
  letter-spacing:0;
  color:#fff;
  text-shadow:0 14px 34px rgba(0,0,0,.34);
}
.booking-visual-hero .script-line{
  margin:8px 0 0;
  font-family:Georgia,"Times New Roman",serif;
  font-style:italic;
  font-size:clamp(26px,4vw,44px);
  color:#f7e2ba;
  text-shadow:0 12px 28px rgba(0,0,0,.34);
}
.booking-search-section{
  padding:32px 0 78px;
  background:
    radial-gradient(circle at 18% 0%,rgba(216,162,74,.08),transparent 35%),
    linear-gradient(180deg,#fffaf3 0%,#f7f3ea 72%,#fffaf3 100%);
}
.booking-search-section .container{
  max-width:1240px;
}
.search-title{
  display:grid;
  grid-template-columns:1fr auto;
  align-items:end;
  gap:24px;
  max-width:1180px;
  margin:0 auto 20px;
}
.search-title h2{
  font-family:Georgia,"Times New Roman",serif;
  font-weight:400;
  font-size:clamp(30px,4.2vw,52px);
  line-height:1.02;
  color:#173528;
}
.search-title p{
  max-width:720px;
  color:#3f4b43;
  font-size:17px;
}
.booking-title-actions{
  align-items:flex-end;
}
.booking-top-link{
  border-radius:10px;
  min-height:46px;
  padding:10px 18px;
  background:#fffdf8;
  color:#173528;
  border-color:rgba(23,53,40,.44);
  box-shadow:none;
}
.booking-badge{
  border-radius:10px;
  background:#fffdf8;
  box-shadow:0 8px 18px rgba(37,48,40,.07);
}
.search-panel{
  max-width:1180px;
  margin:0 auto;
  padding:18px;
  border-radius:20px;
  background:#fffdf8;
  border:1px solid rgba(218,207,188,.9);
  box-shadow:0 18px 46px rgba(37,48,40,.10);
}
.search-form{
  grid-template-columns:1fr 1fr .72fr .72fr minmax(210px,.78fr);
  gap:12px;
}
.search-field{
  min-height:68px;
  border-radius:12px;
  border-color:#d9d0c1;
  background:#fff;
}
.search-field span,
.search-field label{
  font-size:12px;
  letter-spacing:0;
  color:#77756d;
}
.search-field input,
.search-field select{
  font-size:18px;
  font-weight:700;
  color:#172219;
}
.search-btn,
.choose-btn{
  border-radius:10px;
  background:linear-gradient(180deg,#194d2d,#0f351f);
  box-shadow:0 12px 22px rgba(15,53,31,.18);
}
.search-chips{
  justify-content:center;
  margin-top:14px;
}
.search-chips span,
.search-chips .chip{
  border:1px solid rgba(23,53,40,.14);
  background:#fbf7ef;
  color:#435047;
  border-radius:999px;
  padding:8px 12px;
}
.booking-results{
  max-width:1180px;
  margin:24px auto 0;
}
.status-box{
  border-radius:18px;
  background:#fffdf8;
  box-shadow:0 12px 30px rgba(37,48,40,.07);
}
.options-heading{
  font-family:Georgia,"Times New Roman",serif;
  font-weight:400;
  font-size:clamp(26px,3vw,34px);
  margin:24px 0 12px;
}
.option-card{
  display:grid;
  grid-template-columns:minmax(200px,240px) minmax(0,1fr);
  gap:24px;
  padding:14px;
  margin:18px 0;
  border-radius:22px;
  background:#fff;
  border:1px solid rgba(218,207,188,.86);
  box-shadow:0 18px 46px rgba(37,48,40,.10);
}
.option-photo{
  grid-row:1 / span 2;
  align-self:start;
  aspect-ratio:5/4;
  border-radius:16px;
}
.option-photo:after{
  content:"";
  position:absolute;
  right:14px;
  bottom:14px;
  width:46px;
  height:46px;
  border-radius:50%;
  border:1px solid rgba(255,255,255,.82);
  background:
    radial-gradient(circle at 48% 45%,transparent 0 9px,#fff 10px 11px,transparent 12px),
    linear-gradient(45deg,transparent 57%,#fff 58% 63%,transparent 64%),
    rgba(8,24,16,.66);
  box-shadow:0 8px 22px rgba(0,0,0,.22);
}
.option-main{
  min-width:0;
  padding:10px 4px 0 0;
}
.option-head{
  margin-bottom:8px;
}
.availability-label{
  border-radius:999px;
  border-color:rgba(31,91,54,.26);
  background:#f3fbf6;
  color:#1b5a35;
}
.option-index{
  background:#fffaf1;
}
.option-main h3{
  margin:8px 0 8px;
  font-family:Georgia,"Times New Roman",serif;
  font-weight:400;
  font-size:clamp(28px,3vw,39px);
  line-height:1.03;
  color:#173528;
}
.option-desc{
  margin-bottom:14px;
  color:#243229;
  font-size:15.5px;
  line-height:1.48;
}
.stay-dates{
  gap:8px;
  margin:12px 0 14px;
}
.stay-dates span{
  border-radius:999px;
  background:#fbf7ef;
  border-color:rgba(23,53,40,.14);
  color:#435047;
}
.amenities{
  display:grid;
  grid-template-columns:repeat(5,minmax(70px,1fr));
  gap:14px 10px;
  margin:16px 0 8px;
}
.amenity{
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:flex-start;
  gap:7px;
  min-width:0;
  white-space:normal;
  text-align:center;
  font-size:12px;
  line-height:1.15;
  color:#4a4038;
}
.amenity svg{
  width:28px;
  height:28px;
  stroke:#6c5d50;
  flex:0 0 auto;
}
.feature-row{
  margin-top:14px;
}
.feature{
  border-radius:999px;
  border-color:rgba(31,91,54,.18);
  background:#f7fbf5;
}
.option-side{
  grid-column:2;
  border-left:0;
  border-top:1px solid #eee6da;
  padding:16px 4px 2px 0;
  display:grid;
  grid-template-columns:1fr auto;
  gap:14px;
  align-items:end;
  text-align:left;
}
.rating{
  justify-content:flex-start;
}
.rating-num{
  border-radius:8px;
  background:#173528;
}
.price{
  text-align:right;
  font-size:15px;
  color:#687168;
}
.total-price{
  text-align:right;
  font-size:30px;
  font-weight:900;
  color:#0f1411;
}
.option-actions-wrap{
  grid-column:1/-1;
}
.option-actions{
  display:flex;
  justify-content:flex-end;
  gap:12px;
}
.option-actions .outline-btn,
.option-actions .choose-btn{
  min-width:176px;
  width:auto;
  text-align:center;
}
.detail-btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border-color:#80776c;
  color:#2b302c;
  background:#fff;
}
.more-options,
.frozen-options,
.trust-item,
.booking-cancel-card,
.request-panel{
  border-radius:20px;
  background:#fffdf8;
  box-shadow:0 14px 36px rgba(37,48,40,.08);
}
.request-panel{
  max-width:1180px;
  margin:24px auto 0;
  padding:20px;
  border-color:rgba(218,207,188,.86);
}
.request-panel h2{
  font-family:Georgia,"Times New Roman",serif;
  font-weight:400;
  font-size:clamp(30px,3.5vw,44px);
  color:#173528;
}
.selected-stay-card{
  grid-template-columns:minmax(420px,.92fr) minmax(0,1fr);
  border-radius:20px;
  background:#fff;
}
.selected-stay-photo{
  grid-row:1 / span 2;
  min-height:310px;
  border-radius:16px;
}
.selected-stay-main h3{
  font-family:Georgia,"Times New Roman",serif;
  font-weight:400;
  font-size:clamp(26px,3vw,36px);
  color:#173528;
}
.selected-stay-side{
  grid-column:2;
  flex-direction:row;
  align-items:flex-end;
  justify-content:space-between;
  border-left:0;
  border-top:1px solid #eee6da;
  padding:16px 0 0;
  text-align:left;
}
.request-grid{
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:14px;
}
.request-panel input,
.request-panel textarea,
.request-check{
  border-radius:12px;
  border-color:#d9d0c1;
}
.request-actions{
  justify-content:space-between;
  align-items:center;
}
.request-actions .choose-btn,
.request-actions .outline-btn{
  min-height:48px;
}
@media(max-width:1100px){
  .search-form{grid-template-columns:1fr 1fr 1fr}
  .option-card,.selected-stay-card{grid-template-columns:1fr}
  .option-photo{grid-row:auto}
  .selected-stay-photo{grid-row:auto;min-height:320px}
  .option-side,.selected-stay-side{grid-column:auto}
}
@media(max-width:820px){
  .booking-visual-hero{min-height:300px}
  .booking-visual-hero .container{padding-top:94px;padding-bottom:28px}
  .search-title{grid-template-columns:1fr}
  .booking-title-actions{justify-content:flex-start}
  .search-form{grid-template-columns:1fr 1fr}
  .amenities{grid-template-columns:repeat(3,minmax(72px,1fr))}
  .option-side{grid-template-columns:1fr}
  .price,.total-price{text-align:left}
  .option-actions{justify-content:flex-start}
  .selected-stay-side{display:block}
}
@media(max-width:560px){
  .booking-visual-hero{min-height:260px}
  .booking-visual-hero .container{padding-top:86px;padding-bottom:24px}
  .booking-search-section{padding:22px 0 56px}
  .search-panel,.request-panel{padding:14px;border-radius:18px}
  .search-form,.request-grid{grid-template-columns:1fr}
  .booking-title-actions,.option-actions,.request-actions{display:grid;grid-template-columns:1fr;width:100%}
  .option-card{padding:10px;border-radius:18px}
  .selected-stay-photo{height:240px;min-height:0}
  .option-main h3,.selected-stay-main h3{font-size:25px}
  .amenities{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 8px}
  .option-actions .outline-btn,.option-actions .choose-btn{width:100%;min-width:0}
  .total-price{font-size:24px}
}

/* ================= Табличний вивід варіантів ================= */
.bk-topline{display:flex;align-items:center;gap:12px;margin:0 0 16px}
.bk-back{width:44px;height:44px;flex-shrink:0;background:#173528;color:#fff;border:none;border-radius:11px;font-size:22px;font-weight:700;display:flex;align-items:center;justify-content:center;cursor:pointer;box-shadow:0 4px 10px rgba(23,53,40,.28)}
/* Сборка 17.1: подписанная кнопка возврата к выбору дат */
.bk-change-dates{flex-shrink:0;min-height:44px;padding:10px 18px;background:#fff;color:#173528;border:1px solid #173528;border-radius:11px;font-size:15px;font-weight:750;cursor:pointer}
.bk-change-dates:hover{background:#f2f6f1}
.bk-req{background:#fff;border:1px solid #e4dcc9;border-radius:11px;padding:11px 18px;display:flex;align-items:center;gap:10px;font-size:16px;flex-wrap:wrap}
.bk-req-ic{font-size:17px}
.bk-req b{font-weight:700}
.bk-req-dot{color:#6e7a6c}

.bk-table{width:100%;border-collapse:separate;border-spacing:0;border:1px solid #e4dcc9;border-radius:16px;overflow:hidden;background:#fff;box-shadow:0 12px 34px rgba(30,40,30,.08)}
.bk-table thead th{background:#254b34;color:#fff;font-size:15px;font-weight:700;text-align:left;padding:15px 18px;vertical-align:top}
.bk-table thead th.bk-th-price{background:#2f6b45}
.bk-table td{padding:16px 18px;border-top:1px solid #e4dcc9;vertical-align:top}
.bk-grp td{background:#fbf7ee;padding:16px 18px;font-weight:800;color:#2c6b45;font-size:18px;border-top:10px solid #f5f0e4;box-shadow:inset 0 2px 0 #e4dcc9}

/* карусель */
.bk-carousel{width:200px;float:left;margin:0 16px 8px 0}
.bk-cframe{position:relative;width:200px;height:150px;border-radius:12px;overflow:hidden;background:#dfe4d8}
.bk-cframe img{width:100%;height:100%;object-fit:cover;display:none}
.bk-cframe img.on{display:block}
.bk-cnav{position:absolute;top:50%;transform:translateY(-50%);width:30px;height:30px;border-radius:50%;background:rgba(0,0,0,.42);color:#fff;border:none;display:flex;align-items:center;justify-content:center;cursor:pointer;font-size:17px;z-index:2}
.bk-cnav.l{left:6px}.bk-cnav.r{right:6px}
.bk-cdots{position:absolute;left:0;right:0;bottom:7px;display:flex;justify-content:center;gap:4px;z-index:2;flex-wrap:wrap;padding:0 8px}
.bk-cdots i{width:14px;height:3px;border-radius:2px;background:rgba(255,255,255,.55);cursor:pointer}
.bk-cdots i.on{background:#d8a24a}
.bk-ccount{position:absolute;right:7px;top:7px;background:rgba(0,0,0,.5);color:#fff;font-size:11px;padding:2px 7px;border-radius:10px;z-index:2}

.bk-hname{color:#2c6b45;font-family:Georgia,serif;font-size:20px;font-weight:700;text-decoration:none;line-height:1.15;display:block;margin-bottom:6px}
.bk-hname:hover{text-decoration:underline}
.bk-altnote{display:inline-block;background:#fff4e0;color:#9a6a1e;border:1px solid #ecd9b0;font-size:12px;font-weight:600;padding:3px 9px;border-radius:8px;margin-bottom:8px}
/* Сборка 17.2: удобства карточки — тонкие иконки с подписями вместо текстовых капсул */
.bk-tags{display:flex;flex-wrap:wrap;gap:6px 16px;clear:both;margin-top:9px}
.bk-tags .bk-tag-ico{display:inline-flex;align-items:center;gap:7px;border:0;padding:0;font-size:13.5px;color:#33473c;font-weight:650}
.bk-tags .bk-tag-ico svg{width:17px;height:17px;flex-shrink:0;color:#4b6a58}

.bk-price .bk-tot{font-size:26px;font-weight:900;line-height:1;color:#1b2a20}
.bk-price .bk-per{font-size:13px;color:#6e7a6c;margin-top:6px}

.bk-incl ul{margin:0;padding:0}
.bk-incl li{list-style:none;display:flex;gap:9px;align-items:flex-start;margin-bottom:10px;font-size:15px;line-height:1.35}
.bk-incl .bk-ok{color:#2c6b45;font-weight:900;flex-shrink:0}
.bk-incl b{font-weight:700}
.bk-incl .bk-warn-ico{color:#b23a2e;font-weight:900;flex-shrink:0;width:15px;text-align:center}
.bk-incl .bk-warn-txt{color:#b23a2e}

.bk-act{width:230px}
.bk-act .choose-btn{display:block;width:100%;background:#173528;color:#fff;border:none;border-radius:12px;padding:13px;font-size:16px;font-weight:700;cursor:pointer;text-align:center}
.bk-act .detail-btn{display:block;width:100%;text-align:center;background:#fff;color:#1b2a20;border:1px solid #c7cbbf;border-radius:12px;margin-top:8px;font-size:14px;padding:10px;text-decoration:none}

/* мобільний: 2 пропозиції на екран */
@media(max-width:820px){
  .bk-table thead{display:none}
  .bk-table,.bk-table tbody,.bk-table tr,.bk-table td{display:block;width:100%}
  .bk-table{border:none;border-radius:0;background:transparent;box-shadow:none;overflow:visible}
  .bk-table tr{background:#fff;border:1px solid #e4dcc9;border-radius:14px;margin-bottom:10px;box-shadow:0 6px 18px rgba(30,40,30,.06);overflow:hidden}
  .bk-table td{border-top:none;padding:10px}
  .bk-grp{background:transparent;border:none;box-shadow:none;margin:6px 0}
  .bk-grp td{background:transparent;box-shadow:none;border:none;padding:8px 2px;font-size:16px}
  .bk-carousel{width:104px;margin:0 10px 0 0}
  .bk-cframe{width:104px;height:104px}
  .bk-cnav{width:22px;height:22px;font-size:13px}
  .bk-ccount{font-size:10px;padding:1px 5px}
  .bk-house{display:flex;flex-wrap:wrap}
  .bk-hname{font-size:16px;margin-bottom:3px}
  .bk-tags{width:100%;gap:5px 13px}
  .bk-tags .bk-tag-ico{font-size:12px}
  .bk-tags .bk-tag-ico svg{width:15px;height:15px}
  .bk-price{display:flex;align-items:baseline;gap:8px;padding-top:0!important}
  .bk-price .bk-tot{font-size:20px}
  .bk-incl{display:none}
  /* Сборка 17.1: главная кнопка «Забронировать» — основная и полноширинная, «Подробнее» — второстепенная */
  .bk-act{width:auto;display:flex;gap:8px}
  .bk-act .choose-btn{padding:12px 16px;font-size:15px;min-height:44px;flex:1.4}
  .bk-act .detail-btn{margin-top:0;flex:1;min-height:44px;display:flex;align-items:center;justify-content:center}
}

.bk-more-actions{display:flex;justify-content:center;margin:20px 0 4px}.bk-more-actions .outline-btn{min-width:240px}

/* Build 17.0: cards without a table header; dates and availability belong to each card */
.bk-table{border:0;border-collapse:separate;border-spacing:0 14px;border-radius:0;overflow:visible;background:transparent;box-shadow:none}
.bk-table tbody tr:not(.bk-grp){background:#fff;box-shadow:0 12px 34px rgba(30,40,30,.08)}
.bk-table tbody tr:not(.bk-grp)>td:first-child{border-left:1px solid #e4dcc9;border-radius:16px 0 0 16px}
.bk-table tbody tr:not(.bk-grp)>td:last-child{border-right:1px solid #e4dcc9;border-radius:0 16px 16px 0}
.bk-table td{border-top:1px solid #e4dcc9;border-bottom:1px solid #e4dcc9}
.bk-card-dates{display:flex;align-items:center;gap:10px;clear:both;margin:-2px 0 12px;padding:0 0 11px;border-bottom:1px solid #ece4d4;color:#304a3d;font-size:14px;line-height:1.35}
.bk-card-dates strong{font-weight:850;color:#173528}
.bk-last-studio{display:flex;align-items:center;width:max-content;max-width:100%;gap:8px;margin:0 0 12px;padding:7px 11px;border:1px solid #e8b45c;border-radius:9px;background:#fff6e7;color:#975b1e;font-size:13px;font-weight:800}
.hold-only-message,.price-unavailable-message{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:14px;margin:16px 0}
.hold-only-message .status-box,.price-unavailable-message .status-box{margin:0}
.hold-only-message time{display:block;margin-top:5px;color:#875a25;font-weight:750}
.bk-act .choose-btn:disabled{cursor:not-allowed;opacity:.45}

@media(max-width:820px){
  .bk-table{border-spacing:0}
  .bk-table tbody tr:not(.bk-grp)>td:first-child,
  .bk-table tbody tr:not(.bk-grp)>td:last-child{border-left:0;border-right:0;border-radius:0}
  .bk-table td{border-top:0;border-bottom:0}
  .bk-card-dates{order:-3;width:100%;gap:6px;margin:0 0 9px;padding:0 0 8px;font-size:12px}
  .bk-last-studio{order:-2;width:100%;margin:0 0 9px;padding:6px 9px;font-size:12px}
  .hold-only-message,.price-unavailable-message{grid-template-columns:1fr}
  .hold-only-message .outline-btn,.price-unavailable-message .outline-btn{width:100%}
}

@media(max-width:480px){
  .bk-card-dates{display:grid;grid-template-columns:auto 16px auto;justify-content:start}
  .bk-card-dates span:last-child{grid-column:1/-1}
}


/* ===== Сборка 17.4: карточка варианта — строгая сетка, цена над кнопками ===== */
.bk-body{display:grid;grid-template-columns:170px minmax(0,1fr);gap:16px;align-items:start;clear:both}
.bk-body .bk-carousel{float:none;width:170px;margin:0}
.bk-body .bk-cframe{width:100%;height:auto;aspect-ratio:4/3}
.bk-info{display:flex;flex-direction:column;align-items:flex-start;gap:9px;min-width:0}
.bk-info .bk-hname{margin:0}
.bk-info .bk-altnote{margin:0}
.bk-info .bk-last-studio{margin:0}
.bk-act .bk-pricebox{margin:0 0 12px;text-align:left}
.bk-act .bk-pricebox .bk-tot{font-size:19px;font-weight:900;color:#173528;line-height:1.25}
.bk-act .bk-pricebox .bk-per{margin-top:3px;font-size:13.5px;color:#6a746e}
/* иконки удобств — стиль «уверенная линия» */
.bk-tags .bk-tag-ico svg{color:#173528}
.bk-tags .bk-tag-ico svg *{stroke-width:2.2}
.detail-meta-item svg{color:#173528}
.detail-meta-item svg *{stroke-width:2.2}
@media(max-width:820px){
  .bk-body{grid-template-columns:132px minmax(0,1fr);gap:12px}
  .bk-body .bk-carousel{width:132px}
  .bk-act .bk-pricebox{margin:0 0 10px}
}
@media(max-width:560px){
  .bk-body{grid-template-columns:1fr}
  .bk-body .bk-carousel{width:100%}
}
/* примечание «есть похожие» перед кнопкой доп. вариантов */
.bk-more-note{margin:18px 0 4px;text-align:center;color:#33473c;font-weight:750}

/* ===== Сборка 17.4: шапка бронирования — контраст и умеренный масштаб ===== */
.booking-visual-hero .hero-media::before{background:linear-gradient(90deg,rgba(9,23,17,.74) 0%,rgba(9,23,17,.44) 46%,rgba(9,23,17,.16) 100%),linear-gradient(0deg,rgba(9,23,17,.58),transparent 62%)}
.booking-visual-hero h1{font-size:clamp(2.1rem,4.6vw,3.4rem)!important;text-shadow:0 2px 18px rgba(0,0,0,.35)}
.booking-visual-hero .script-line{font-size:clamp(1.05rem,2vw,1.5rem)!important;color:#f5dfad;text-shadow:0 1px 12px rgba(0,0,0,.45)}
.booking-visual-hero .kicker{text-shadow:0 1px 8px rgba(0,0,0,.4)}
.search-title h2{font-size:clamp(22px,3vw,32px)}
