
.bf-calendar-wrap{
  width:100%;
  max-width:760px;
  box-sizing:border-box;
  border:1px solid #cfe3d5;
  border-radius:12px;
  padding:18px;
  background:#f6fbf7;
  color:#000;
  box-shadow:0 2px 8px rgba(35,88,52,.08);
}
.bf-calendar-wrap *,
.bf-calendar-wrap *::before,
.bf-calendar-wrap *::after{box-sizing:border-box}

.bf-calendar-wrap .bf-calendar-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  width:100%;
  margin:0 0 16px;
  color:#000;
}
.bf-calendar-wrap .bf-calendar-head .bf-title{
  flex:1;
  text-align:center;
  margin:0;
  color:#000!important;
  font-weight:700;
}
.bf-calendar-wrap .bf-calendar-head button{
  flex:0 0 42px;
  width:42px;
  height:38px;
  padding:0;
  margin:0;
  border:1px solid #b7d5bf!important;
  border-radius:7px!important;
  background:#fff!important;
  color:#000!important;
  font-size:24px;
  line-height:1;
  cursor:pointer;
}
.bf-calendar-wrap .bf-calendar-head button:disabled{
  opacity:.5;
  cursor:not-allowed;
}

.bf-calendar-wrap .bf-calendar-grid{
  display:grid!important;
  grid-template-columns:repeat(7,minmax(0,1fr))!important;
  gap:5px!important;
  width:100%!important;
  margin:0!important;
  padding:0!important;
}

.bf-calendar-wrap .bf-weekdays{
  margin-bottom:5px!important;
}

.bf-calendar-wrap .bf-weekday{
  min-width:0;
  padding:8px 2px;
  text-align:center;
  color:#000!important;
  font-weight:700;
  line-height:1.2;
  background:transparent;
}

.bf-calendar-wrap .bf-day,
.bf-calendar-wrap .bf-empty{
  min-width:0;
  width:100%;
  min-height:48px;
  margin:0!important;
  padding:6px!important;
}

.bf-calendar-wrap .bf-day{
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  border:1px solid #c9ddd0!important;
  border-radius:7px!important;
  background:#fff!important;
  color:#000!important;
  font:inherit;
  font-weight:600;
  line-height:1!important;
  text-align:center;
  text-shadow:none!important;
  cursor:pointer;
}
.bf-calendar-wrap .bf-day.is-possible{
  background:#3f914f!important;
  border-color:#347c43!important;
  color:#fff!important;
  font-weight:700;
}
.bf-calendar-wrap .bf-day.is-possible:hover{
  background:#347c43!important;
  color:#fff!important;
}
.bf-calendar-wrap .bf-day:disabled{
  background:#edf3ee!important;
  border-color:#dce6de!important;
  color:#777!important;
  opacity:1!important;
  cursor:not-allowed;
}
.bf-calendar-wrap .bf-empty{
  display:block;
}
.bf-calendar-wrap .bf-calendar-legend,
.bf-calendar-wrap .bf-tour-results,
.bf-calendar-wrap .bf-tour-results *{
  color:#000!important;
}
.bf-calendar-wrap .bf-calendar-legend{margin-top:16px;font-size:14px}
.bf-calendar-wrap .bf-dot{
  display:inline-block;
  width:12px;
  height:12px;
  margin-right:6px;
  border-radius:50%;
  background:#3f914f!important;
  vertical-align:-1px;
}
.bf-calendar-wrap .bf-tour-results{
  margin-top:16px;
  padding:10px 12px;
  border-left:4px solid #3f914f;
  border-radius:5px;
  background:#edf7ef;
}
@media (max-width:520px){
  .bf-calendar-wrap{padding:12px}
  .bf-calendar-wrap .bf-calendar-grid{gap:3px!important}
  .bf-calendar-wrap .bf-day,
  .bf-calendar-wrap .bf-empty{min-height:40px;padding:4px!important}
  .bf-calendar-wrap .bf-weekday{font-size:13px;padding:6px 1px}
}

/* Tour cards under calendar */
.bf-calendar-wrap .bf-tour-results{margin-top:22px;padding:0;border:0;background:transparent}
.bf-calendar-wrap .bf-tour-results-title{font-size:1.25rem;font-weight:700;margin:0 0 12px;color:#111!important}
.bf-calendar-wrap .bf-tour-results-loading,.bf-calendar-wrap .bf-tour-results-empty,.bf-calendar-wrap .bf-tour-results-error{background:#fff;border:1px solid #d9d9d9;border-radius:10px;padding:16px;color:#111!important}
.bf-calendar-wrap .bf-tour-card{background:#fff;border:1px solid #d9d9d9;border-radius:12px;padding:18px;margin:0 0 14px;box-shadow:0 2px 8px rgba(0,0,0,.06);color:#111!important}
.bf-calendar-wrap .bf-tour-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}
.bf-calendar-wrap .bf-tour-heading h3{margin:0 0 7px;color:#111!important;font-size:1.18rem;line-height:1.25}
.bf-calendar-wrap .bf-tour-status{display:inline-block;font-size:.85rem;font-weight:700;border-radius:999px;padding:4px 10px}
.bf-calendar-wrap .bf-tour-status.is-going{background:#e8f5e9;color:#1b5e20!important}.bf-calendar-wrap .bf-tour-status.not-going{background:#eee;color:#555!important}
.bf-calendar-wrap .bf-tour-request{border:0;border-radius:8px;padding:10px 17px;background:#777!important;color:#fff!important;font-weight:700;cursor:not-allowed;opacity:.65;white-space:nowrap}
.bf-calendar-wrap .bf-tour-facts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:17px 0}.bf-calendar-wrap .bf-tour-facts>div{border:1px solid #e5e5e5;border-radius:8px;padding:10px 12px;background:#fafafa}.bf-calendar-wrap .bf-tour-facts span{display:block;font-size:.84rem;color:#555!important}.bf-calendar-wrap .bf-tour-facts strong{display:block;margin-top:3px;color:#111!important;font-size:1rem}
.bf-calendar-wrap .bf-capacity-label{display:flex;justify-content:space-between;gap:12px;margin-bottom:7px;font-size:.86rem;color:#555!important}.bf-calendar-wrap .bf-capacity-bar{height:12px;width:100%;background:#e6e6e6;border-radius:999px;overflow:hidden}.bf-calendar-wrap .bf-capacity-filled{height:100%;background:#3f914f!important;border-radius:999px}.bf-calendar-wrap .bf-day.bf-selected{outline:3px solid #111;outline-offset:-3px}
@media(max-width:640px){.bf-calendar-wrap .bf-tour-card-head{flex-direction:column}.bf-calendar-wrap .bf-tour-request{width:100%}.bf-calendar-wrap .bf-tour-facts{grid-template-columns:1fr}.bf-calendar-wrap .bf-capacity-label{flex-direction:column;gap:2px}}
