
/* 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);
}
.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-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}
.option-card{display:grid;grid-template-columns:minmax(250px,340px) 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;min-height:220px;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}.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}.price{font-size:31px;font-weight:900;color:#0f1411}.price span{font-size:15px;color:#687168;font-weight:400;display:block;margin-top:4px}.total-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)}.free-cancel{margin-top:10px;color:#1b6b3c;font-size:14px;text-align:center;width:100%}.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{background:#f7f3ea;border:1px solid var(--w-border);border-radius:14px;padding:13px;margin:12px 0 16px}.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-badge{display:inline-flex;margin-top:12px}.search-form{grid-template-columns:1fr 1fr}.search-btn{grid-column:1/-1;height:58px}.option-card{grid-template-columns:1fr}.option-photo{height:260px}.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-photo{height:220px}.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{min-width:0}.option-main,.option-side{min-width:0}.option-main h3,.option-desc,.stay-dates span,.amenity,.feature,.price,.total-price{overflow-wrap:anywhere}.option-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{grid-template-columns:1fr}.option-photo{min-height:0;height:250px}.option-side{align-items:flex-start;text-align:left}.choose-btn{max-width:320px}.request-actions .choose-btn{max-width:none}}
@media(max-width:560px){.option-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{font-size:18px}.price{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}}

.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}}


/* H16.2: пошаговый экран бронирования — поиск → анкета → подтверждение */
.booking-step-hidden{display:none!important}
.booking-results .booking-confirmation{max-width:760px;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}
@media(max-width:700px){.booking-cancel-row{grid-template-columns:1fr}.booking-cancel-row .outline-btn{width:100%}}
