*{box-sizing:border-box}:root{--black:#050505;--white:#fff;--gold:#d6a84f;--green:#0d5c2f;--red:#b00020;--soft-red:#fff5f5;--grey:#f7f7f7}body{margin:0;font-family:Arial,Helvetica,sans-serif;background:repeating-linear-gradient(90deg,#0b0b0b 0,#0b0b0b 70px,#fff 70px,#fff 140px);color:var(--black)}.page-overlay{min-height:100vh;background:rgba(255,255,255,.9)}header{background:var(--black);color:var(--white);border-bottom:6px solid var(--gold)}.topbar{max-width:1100px;margin:0 auto;padding:18px 20px;display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap}.brand{display:flex;align-items:center;gap:16px}.logo-box{width:92px;height:92px;border-radius:14px;background:var(--white);border:3px solid var(--gold);display:grid;place-items:center;overflow:hidden;padding:4px}.club-logo{width:100%;height:100%;object-fit:contain}.brand h1{margin:0;font-size:34px}.brand p{margin:4px 0 0;color:#ddd}.contact-line{margin:4px 0 0;font-size:14px}.contact-line a{color:var(--gold);font-weight:bold}.main-nav{max-width:1100px;margin:0 auto;padding:0 20px 20px;display:flex;gap:10px;flex-wrap:wrap}.main-nav button{border:1px solid var(--white);background:transparent;color:var(--white);padding:10px 14px;border-radius:999px;cursor:pointer;font-weight:bold}.main-nav button.active,.main-nav button:hover{background:var(--white);color:var(--black)}.hero{max-width:1100px;margin:0 auto;padding:44px 20px}.hero-card{background:linear-gradient(135deg,rgba(0,0,0,.86),rgba(42,42,42,.9));border:1px solid rgba(255,255,255,.25);border-radius:22px;padding:30px;box-shadow:0 12px 40px rgba(0,0,0,.3)}.hero h2{margin:0 0 10px;font-size:38px;color:var(--white)}.hero p{margin:0;font-size:18px;color:#eee}main{max-width:1100px;margin:0 auto;padding:26px 20px 50px}.page{display:none}.page.active{display:block}.grid{display:grid;grid-template-columns:1.2fr .8fr;gap:24px}.card{background:var(--white);border-radius:18px;padding:26px;box-shadow:0 12px 30px rgba(0,0,0,.16);border:1px solid #ececec}h2,h3{margin-top:0;color:var(--black)}.price-strip{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:18px 0}.mini-card{background:var(--black);color:var(--white);padding:16px;border-radius:14px;border-bottom:4px solid var(--gold)}.mini-card strong{display:block;font-size:22px;margin-top:6px}form{display:grid;gap:13px}label{font-weight:bold}input,select,textarea{width:100%;padding:13px;border:1px solid #c9c9c9;border-radius:10px;font-size:16px;background:#fff}.two-col{display:grid;grid-template-columns:1fr 1fr;gap:14px}.availability-status,.form-status{font-size:14px;margin:8px 0 0;color:#555}.availability-status.ok,.form-status.ok{color:var(--green);font-weight:bold}.availability-status.warning{color:#8a5a00;font-weight:bold}.availability-status.error,.form-status.error{color:var(--red);font-weight:bold}.summary{background:var(--grey);border-left:6px solid var(--black);padding:16px;border-radius:12px}.summary p{margin:7px 0}.total{font-size:24px;font-weight:900}.agreement-box{background:#f8f8f8;border:2px solid #111;border-radius:14px;padding:18px}.agreement-box ul{margin:10px 0 16px;padding-left:22px}.agreement-box li{margin-bottom:8px}.checkbox-label{display:flex;align-items:flex-start;gap:10px;font-weight:bold;background:#fff;padding:12px;border-radius:10px;border:1px solid #d0d0d0;margin-bottom:14px}.checkbox-label input{width:auto;margin-top:4px}button.submit-btn{display:inline-block;border:none;background:var(--black);color:var(--white);padding:14px 18px;border-radius:12px;text-align:center;font-size:16px;font-weight:bold;cursor:pointer}.full-width{width:100%}.required{color:var(--red);font-weight:bold}.field-help{margin:-6px 0 4px;font-size:13px;color:#666}.input-error{border:2px solid var(--red)!important;background:var(--soft-red)!important}.field-error-message{margin:-6px 0 4px;color:var(--red);font-size:13px;font-weight:bold}.notice{background:#fff8e8;border:1px solid #efd28e;padding:14px;border-radius:12px;font-size:14px;color:#4b3b13}.calendar-table-wrap{overflow-x:auto;margin-top:16px}.calendar-table{width:100%;border-collapse:collapse}.calendar-table th,.calendar-table td{padding:12px;border-bottom:1px solid #ddd;text-align:left}.calendar-table th{background:var(--black);color:var(--white)}footer{text-align:center;padding:28px 20px;background:var(--black);color:var(--white);border-top:5px solid var(--gold)}@media(max-width:800px){.grid,.two-col,.price-strip{grid-template-columns:1fr}.brand h1{font-size:28px}.hero h2{font-size:30px}}

.calendar-picker {
  display: grid;
  gap: 10px;
}

.month-controls {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-top: 4px;
}

.month-controls button {
  border: 1px solid #050505;
  background: #050505;
  color: #ffffff;
  padding: 10px 12px;
  border-radius: 10px;
  cursor: pointer;
  font-weight: bold;
}

.month-controls button:hover {
  background: #2a2a2a;
}

.month-calendar {
  display: grid;
  grid-template-columns: repeat(7, 1fr);
  gap: 6px;
  background: #f7f7f7;
  border: 1px solid #dddddd;
  border-radius: 14px;
  padding: 10px;
}

.calendar-weekday {
  text-align: center;
  font-size: 13px;
  font-weight: bold;
  color: #333333;
  padding: 6px 0;
}

.calendar-day {
  min-height: 42px;
  border: 1px solid #d0d0d0;
  background: #ffffff;
  border-radius: 10px;
  cursor: pointer;
  font-weight: bold;
}

.calendar-day:hover {
  border-color: #050505;
  box-shadow: 0 0 0 2px rgba(5,5,5,0.12);
}

.calendar-day.selected {
  background: #050505;
  color: #ffffff;
  border-color: #050505;
}

.calendar-day.today {
  border: 2px solid #d6a84f;
}

.calendar-day:disabled {
  background: #e5e5e5;
  color: #888888;
  cursor: not-allowed;
  box-shadow: none;
}

.calendar-empty {
  min-height: 42px;
}

@media (max-width: 600px) {
  .month-calendar {
    gap: 4px;
    padding: 8px;
  }

  .calendar-day {
    min-height: 38px;
    font-size: 13px;
  }

  .month-controls {
    align-items: stretch;
  }
}


.overview-controls {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin: 16px 0;
}

.overview-controls button {
  border: 1px solid #050505;
  background: #050505;
  color: #ffffff;
  padding: 10px 12px;
  border-radius: 10px;
  cursor: pointer;
  font-weight: bold;
}

.overview-controls button:hover {
  background: #2a2a2a;
}

.overview-calendar {
  display: grid;
  grid-template-columns: repeat(7, 1fr);
  gap: 6px;
  margin-top: 14px;
}

.overview-weekday {
  font-weight: bold;
  text-align: center;
  background: #050505;
  color: #ffffff;
  border-radius: 8px;
  padding: 8px 4px;
  font-size: 13px;
}

.overview-day {
  min-height: 105px;
  background: #ffffff;
  border: 1px solid #d6d6d6;
  border-radius: 10px;
  padding: 8px;
  overflow: hidden;
}

.overview-day.today {
  border: 2px solid #d6a84f;
}

.overview-day.empty {
  background: #f1f1f1;
  border-color: transparent;
}

.overview-day-number {
  display: inline-block;
  font-weight: bold;
  margin-bottom: 6px;
}

.overview-event {
  display: block;
  background: #050505;
  color: #ffffff;
  padding: 4px 6px;
  border-radius: 7px;
  font-size: 12px;
  line-height: 1.25;
  margin-bottom: 4px;
  word-break: break-word;
}

.overview-event-time {
  color: #d6a84f;
  font-weight: bold;
}

.overview-more {
  font-size: 12px;
  color: #555555;
  font-weight: bold;
}

@media (max-width: 700px) {
  .overview-calendar {
    grid-template-columns: 1fr;
  }

  .overview-weekday {
    display: none;
  }

  .overview-day.empty {
    display: none;
  }

  .overview-day {
    min-height: auto;
  }
}


.calendar-day.has-booking {
  border: 2px solid #b00020;
  background: #fff5f5;
  position: relative;
}

.calendar-day.has-booking.selected {
  background: #050505;
  color: #ffffff;
  border-color: #b00020;
}

.calendar-day-number {
  display: block;
  font-weight: bold;
}

.calendar-day-booked {
  display: block;
  margin-top: 3px;
  font-size: 10px;
  line-height: 1.1;
  color: #b00020;
  font-weight: bold;
}

.calendar-day.has-booking.selected .calendar-day-booked {
  color: #d6a84f;
}

.booking-dot {
  display: inline-block;
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: #b00020;
  margin-right: 3px;
  vertical-align: middle;
}

.overview-day.has-booking {
  border: 2px solid #b00020;
  background: #fffafa;
}

.overview-day.has-booking .overview-day-number::after {
  content: " Booked";
  display: inline-block;
  margin-left: 6px;
  padding: 2px 6px;
  border-radius: 999px;
  background: #b00020;
  color: #ffffff;
  font-size: 11px;
  font-weight: bold;
}
