/* ===== Сайт: календарь свободных дат, подбор номера ===== */

/* ---------- календарь ---------- */
.rp{user-select:none}
.rp-months{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:22px}
.rp-head{display:grid;grid-template-columns:34px 1fr 34px;align-items:center;margin-bottom:8px}
.rp-head b{text-align:center;font-family:var(--font-head);font-weight:800;color:var(--ink);font-size:1rem}
.rp-nav{width:34px;height:34px;border-radius:50%;border:1px solid var(--line);background:#fff;cursor:pointer;
  font-size:1.2rem;line-height:1;color:var(--ink);display:flex;align-items:center;justify-content:center;transition:.15s}
.rp-nav:hover{background:var(--sea-100);border-color:var(--sea-300)}
.rp-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:3px 0}
.rp-wd{text-align:center;font-size:.72rem;font-weight:700;color:var(--muted);padding:4px 0;text-transform:uppercase}
.rp-wd.is-we{color:var(--gold-600)}
.rp-day{position:relative;height:40px;border:0;background:none;font:inherit;font-size:.92rem;font-weight:600;color:var(--ink);
  cursor:pointer;border-radius:10px;transition:background .12s,color .12s}
.rp-day:hover{background:var(--sea-100)}
.rp-day.is-we{color:#b5651d}
.rp-day.is-today::after{content:"";position:absolute;left:50%;bottom:5px;width:4px;height:4px;margin-left:-2px;border-radius:50%;background:var(--gold-600)}
.rp-day.is-past{color:#c3ccce;cursor:default;background:none}
.rp-day.is-busy{color:#c0392b;cursor:not-allowed;background:repeating-linear-gradient(135deg,#fdeeee 0 5px,#fff 5px 10px);
  text-decoration:line-through;font-weight:500;opacity:.85}
.rp-day.in-range{background:var(--sea-100);border-radius:0;color:var(--sea-800)}
.rp-day.is-start,.rp-day.is-end{background:var(--sea-700);color:#fff}
.rp-day.is-start{border-radius:10px 0 0 10px}
.rp-day.is-end{border-radius:0 10px 10px 0}
.rp-day.is-start:not(.is-end):last-child{border-radius:10px}

.dates-field{margin:4px 0 14px}
.dates-label{display:block;font-size:.88rem;font-weight:600;color:var(--ink);margin-bottom:8px}
.dates-field .rp{border:1px solid var(--line);border-radius:16px;padding:12px 12px 8px;background:#fff}
.dates-summary{margin:10px 0 0;font-size:.9rem;color:var(--muted);min-height:1.4em}
.dates-summary.is-ok{color:#15803d;font-weight:600}
.dates-summary.is-bad{color:#b42318;font-weight:600}
.form-row-guests{margin-top:2px}

/* свободные номера в окне заявки */
.free-rooms{margin-top:10px}
.free-title{font-size:.85rem;font-weight:700;color:var(--ink);margin:0 0 8px}
.free-none{font-size:.88rem;color:#b42318;background:#fdeeee;border-radius:10px;padding:10px 12px;margin:0}
.free-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:8px}
.free-room{display:flex;align-items:center;gap:8px;text-align:left;border:1.5px solid var(--line);background:#fff;border-radius:12px;
  padding:6px;cursor:pointer;font:inherit;transition:.15s}
.free-room:hover{border-color:var(--gold);box-shadow:0 6px 16px rgba(6,49,60,.08)}
.free-room img{width:46px;height:46px;object-fit:cover;border-radius:8px;flex:0 0 46px}
.free-room span{display:flex;flex-direction:column;font-size:.8rem;line-height:1.25}
.free-room b{color:var(--ink);font-size:.84rem}
.free-room em{font-style:normal;color:var(--muted);font-size:.74rem}

/* ---------- календарь на странице номера ---------- */
.room-calendar{background:#fff;border:1px solid var(--line);border-radius:var(--radius-lg);padding:26px 28px;
  box-shadow:var(--shadow-sm);margin:0 0 48px}
.rc-head{display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;align-items:flex-end;margin-bottom:16px}
.rc-head h2{margin-bottom:.2em;font-size:clamp(1.3rem,1.1rem + .8vw,1.7rem)}
.rc-head p{margin:0;max-width:40em}
.rc-legend{display:flex;gap:14px;font-size:.82rem;color:var(--muted);flex-wrap:wrap}
.rc-legend span{display:inline-flex;align-items:center;gap:6px}
.rc-dot{width:14px;height:14px;border-radius:4px;display:inline-block}
.rc-free{background:#fff;box-shadow:inset 0 0 0 1px var(--line)}
.rc-busy{background:repeating-linear-gradient(135deg,#fdeeee 0 3px,#f5c2bf 3px 5px)}
.rc-sel{background:var(--sea-700)}
.rp-wide .rp-months{gap:36px}
.rc-foot{display:flex;justify-content:space-between;align-items:center;gap:14px;flex-wrap:wrap;margin-top:14px;
  padding-top:14px;border-top:1px solid var(--line)}
.rc-foot .dates-summary{margin:0}
.rc-foot .btn[disabled]{opacity:.5;cursor:not-allowed;box-shadow:none}

/* ---------- подбор номера ---------- */
.finder{display:grid;grid-template-columns:1.4fr 1fr 1fr .7fr auto;gap:12px;align-items:end;background:#fff;
  border:1px solid var(--line);border-radius:var(--radius-lg);padding:18px 20px;box-shadow:var(--shadow);margin:-70px 0 34px;
  position:relative;z-index:2}
.finder label{font-size:.82rem;font-weight:600;color:var(--ink);display:flex;flex-direction:column;gap:5px;margin:0}
.finder input,.finder select{border:1.5px solid var(--line);border-radius:10px;padding:10px 12px;font:inherit;font-size:.95rem;
  color:var(--ink);background:#fff;width:100%}
.finder input:focus,.finder select:focus{outline:none;border-color:var(--sea-600)}
.finder-title{display:flex;flex-direction:column;align-self:center}
.finder-title b{font-family:var(--font-head);font-weight:800;color:var(--ink);font-size:1.05rem;line-height:1.2}
.finder-title span{font-size:.84rem;color:var(--muted)}
.finder-msg{grid-column:1/-1;margin:0;font-size:.92rem;color:var(--muted);min-height:0}
.finder-msg:empty{display:none}
.finder-msg.is-ok{color:#15803d;font-weight:600}
.finder-msg.is-bad{color:#b42318;font-weight:600}
.room-card.is-busy{opacity:.55}
.room-card.is-busy:hover{opacity:.85}
.room-card.is-free{box-shadow:0 0 0 2px #22a35a,var(--shadow)}
.room-badge{position:absolute;left:12px;top:12px;z-index:2;font-size:.78rem;font-weight:700;padding:5px 11px;border-radius:99px;
  background:#22a35a;color:#fff;box-shadow:0 4px 12px rgba(0,0,0,.15)}
.room-card.is-busy .room-badge{background:#6b7c82}

@media (max-width:980px){
  .finder{grid-template-columns:1fr 1fr;margin-top:-50px}
  .finder-title{grid-column:1/-1}
}
@media (max-width:760px){
  .finder{grid-template-columns:1fr 1fr;padding:16px;margin-top:-40px}
  .finder .btn{grid-column:1/-1}
  .room-calendar{padding:18px 16px}
  .rp-day{height:42px}
  .free-list{grid-template-columns:1fr 1fr}
}
