
.tys-booking{margin-top:34px}
.tb-step{background:rgba(255,255,255,.62);border:1px solid #d9d4c9;border-radius:22px;padding:22px}
.tb-title{display:flex;align-items:center;gap:10px;margin-bottom:10px}
.tb-title span{display:grid;place-items:center;width:28px;height:28px;border-radius:50%;background:#5f6d45;color:#fff;font-weight:900}
.tb-title strong{font-family:Georgia,serif;font-size:1.35rem}
.tb-hint{margin:0 0 14px;color:#70776c;font-size:.82rem}

.tb-packages{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
.tb-package{position:relative;background:#fff;border:1px solid #d7d2c7;border-radius:15px;padding:18px 12px;cursor:pointer;color:#33412e}
.tb-package strong{display:block;font-family:Georgia,serif;font-size:1.25rem}
.tb-package small{display:block;margin-top:8px;line-height:1.5}
.tb-package em{position:absolute;top:-10px;left:50%;transform:translateX(-50%);font-style:normal;font-size:.62rem;background:#5f6d45;color:#fff;padding:5px 10px;border-radius:999px}
.tb-package.selected{outline:2px solid #5f6d45;background:#f7f8f1}

.tb-columns{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-top:18px}
.tb-calendar-head{display:flex;align-items:center;justify-content:space-between;margin:10px 0}
.tb-calendar-head button{border:0;background:none;font-size:1.5rem;color:#4d5f3f;cursor:pointer}
.tb-month-label{font-family:Georgia,serif;font-size:1.2rem}
.tb-weekdays,.tb-calendar{display:grid;grid-template-columns:repeat(7,1fr);gap:5px}
.tb-weekdays span{text-align:center;font-size:.7rem;color:#6d7469;padding:5px}

.tb-day,.tb-empty{aspect-ratio:1;display:grid;place-items:center;border-radius:9px}
.tb-day{border:1px solid #dedad0;background:#fff;color:#35422f;cursor:pointer;position:relative;z-index:1}
.tb-day:hover{border-color:#5f6d45}
.tb-day.past{opacity:.28;pointer-events:none}
.tb-day.full{color:#aaa;background:#f1f0ed;pointer-events:none}
.tb-day.full:after{content:"×";position:absolute;color:#9ba19e;font-size:1.2rem}
.tb-day.full span{opacity:0}

.tb-day.limited:before{
  content:"";
  position:absolute;
  right:5px;
  bottom:5px;
  width:6px;
  height:6px;
  border-radius:50%;
  background:#d98236
}

.tb-day.special-price:after{
  content:"";
  position:absolute;
  left:5px;
  bottom:5px;
  width:7px;
  height:7px;
  border-radius:50%;
  background:#b58b31;
  box-shadow:0 0 0 2px rgba(181,139,49,.13)
}

.tb-day.full.special-price:after{
  content:"×";
  left:auto;
  bottom:auto;
  width:auto;
  height:auto;
  border-radius:0;
  background:transparent;
  box-shadow:none;
  position:absolute;
  color:#9ba19e;
  font-size:1.2rem
}

.tb-day.in-range{background:#dfe5d6;border-color:#c5cfb9;border-radius:3px}
.tb-day.range-start,.tb-day.range-end{background:#5f6d45;color:#fff;border-color:#5f6d45;font-weight:900}
.tb-day.range-start{border-radius:10px 3px 3px 10px}
.tb-day.range-end{border-radius:3px 10px 10px 3px}
.tb-day.range-start.range-end{border-radius:10px}

.tb-calendar-note{font-size:.72rem;color:#6a7268;margin:12px 0 6px}
.tb-legend{display:flex;gap:18px;flex-wrap:wrap;font-size:.7rem;color:#687066}
.tb-legend i{display:inline-block;margin-right:5px}
.dot.limited{width:8px;height:8px;border-radius:50%;background:#d98236}
.dot.special{width:8px;height:8px;border-radius:50%;background:#b58b31}
.range-demo{width:14px;height:8px;border-radius:3px;background:#dfe5d6;border:1px solid #c5cfb9}
.cross{font-style:normal;font-size:1rem}
.tb-selection{margin-top:12px;font-weight:800;color:#46573e;min-height:22px}

.tb-form{display:grid;gap:11px}
.tb-form label{font-size:.76rem;font-weight:750;color:#42523c}
.tb-form input,.tb-form textarea{display:block;width:100%;margin-top:5px;border:1px solid #d7d2c7;border-radius:10px;padding:12px;background:#fff;font:inherit;color:#27352a}
.tb-consent{display:flex;align-items:flex-start;gap:8px;font-weight:500!important;line-height:1.35}
.tb-consent input{width:auto;margin:2px 0 0}
.tb-summary{font-size:.88rem;font-weight:800;color:#46573e;min-height:20px}
.tb-submit{border:0;background:#5f6d45;color:#fff;border-radius:999px;min-height:50px;font:inherit;font-weight:850;cursor:pointer}
.tb-submit:disabled{opacity:.5}
.tb-message{font-size:.86rem}
.tb-message.success{color:#2f6e40}
.tb-message.error{color:#a13a31}

@media(max-width:760px){
  .tb-package{padding:14px 7px}
  .tb-package strong{font-size:1rem}
  .tb-package small{font-size:.68rem}
  .tb-columns{grid-template-columns:1fr}
  .tb-step{padding:16px}
  .tb-legend{flex-direction:column;gap:4px}
}

.tb-consent span{display:block}
.tb-consent a{color:#46573e;text-decoration:underline;text-underline-offset:2px}
.tb-consent a:hover{opacity:.78}

.tb-contract-consent{display:grid;gap:8px}
.tb-contract-actions{display:flex;gap:10px;flex-wrap:wrap;margin-left:28px}
.tb-contract-link{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:38px;
  padding:8px 14px;
  border:1px solid #65764f;
  border-radius:999px;
  color:#46573e!important;
  background:#fff;
  font-size:.78rem;
  font-weight:800;
  text-decoration:none!important;
  cursor:pointer;
  pointer-events:auto;
  position:relative;
  z-index:3;
}
.tb-contract-link:hover{background:#f1f4ea;opacity:1}
.tb-contract-download{background:#65764f;color:#fff!important}
.tb-contract-download:hover{background:#566744}
@media(max-width:760px){
  .tb-contract-actions{margin-left:0}
  .tb-contract-link{flex:1 1 160px}
}
