/* Booking & Calendar */
.booking-container{
  display:grid;grid-template-columns:1fr 440px;gap:24px;align-items:start;
}
.booking-form{
  background:var(--card);padding:20px;border-radius:16px;box-shadow:var(--shadow-md);
}
.form-group{margin-bottom:14px}
label{display:block;font-weight:700;margin-bottom:6px;color:#17202a}

input[type="text"],input[type="email"],input[type="date"],select,textarea{
  width:100%;padding:10px 12px;border-radius:10px;border:1px solid #e6eef0;background:#fbfbfb;
  font-size:.95rem;font-family:inherit;transition:border-color var(--transition);
}
input[type="text"]:focus,input[type="email"]:focus,input[type="date"]:focus,select:focus,textarea:focus{
  outline:none;border-color:var(--accent);
}
.form-row{display:flex;gap:12px}

.submit-btn{
  display:inline-block;width:100%;padding:12px 14px;border-radius:12px;
  background:linear-gradient(90deg,var(--accent-2),var(--accent));
  color:#fff;border:none;font-weight:800;cursor:pointer;font-size:1rem;transition:transform var(--transition);
}
.submit-btn:hover:not(:disabled){transform:translateY(-2px)}
.submit-btn:disabled{opacity:.6;cursor:not-allowed}
/* =========================
   FullCalendar — Calendar UI
   ========================= */

/* Wrapper card */
#calendar {
  max-width: 1100px;
  width: 100%;
  margin: 0 auto;
  background: var(--card, #fff);
  padding: 24px;
  border-radius: 16px;
  box-shadow: var(--shadow-md, 0 10px 30px rgba(15,23,42,.08));
  border: 1px solid rgba(0,0,0,0.06);
  transition: transform var(--transition, .24s ease), box-shadow var(--transition, .24s ease);
}
#calendar:hover {
  transform: translateY(-2px);
  box-shadow: 0 18px 40px rgba(15,23,42,.12);
}

/* Inline message bar (use show + type classes from JS) */
#calendar-message {
  display: none;
  max-width: 1100px;
  margin: 16px auto 24px;
  padding: 12px 16px;
  border-radius: 10px;
  font-size: .95rem;
  line-height: 1.35;
  border-left: 4px solid transparent;
  background: rgba(0,0,0,.04);
  color: #1a202c;
}
#calendar-message.show { display: block; }
#calendar-message.info    { border-left-color: #2563eb; background: rgba(37, 99, 235, .08); color: #0f172a; }
#calendar-message.success { border-left-color: #16a34a; background: rgba(22, 163, 74, .08); color: #052e16; }
#calendar-message.error   { border-left-color: #dc2626; background: rgba(220, 38, 38, .08); color: #450a0a; }

/* ===== FullCalendar chrome ===== */
.fc-theme-standard .fc-scrollgrid { border: none; border-radius: 12px; overflow: hidden; }
.fc-theme-standard td, 
.fc-theme-standard th { border-color: rgba(0,0,0,0.06); }

.fc .fc-col-header-cell {
  padding: 12px 6px;
  background: rgba(0,0,0,.03);
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .06em;
  color: #111827;
  font-size: .82rem;
}

/* Toolbar */
.fc .fc-toolbar-title {
  font-size: 1.5rem;
  font-weight: 800;
  color: var(--accent-2, #2f855a);
}
.fc .fc-button-primary {
  background: linear-gradient(90deg, var(--accent-2, #2f855a), var(--accent, #38a169));
  border: none;
  color: #fff;
  border-radius: 10px;
  padding: 8px 12px;
  box-shadow: 0 6px 12px rgba(56, 161, 105, .18);
  transition: transform var(--transition, .24s ease), box-shadow var(--transition, .24s ease);
}
.fc .fc-button-primary:hover { transform: translateY(-1px); box-shadow: 0 10px 18px rgba(56,161,105,.22); }
.fc .fc-button-primary:disabled { opacity: .7; box-shadow: none; transform: none; }

/* ===== Day cells ===== */
.fc .fc-daygrid-day {
  min-height: 80px;
  background: #fff;
  transition: background .18s ease, box-shadow .18s ease, transform .18s ease;
}
.fc .fc-daygrid-day-number {
  font-size: .95rem;
  font-weight: 700;
  color: #111827;
  padding: 6px;
  border-radius: 8px;
}

/* Hover (ενεργές μέρες μόνο) */
.fc .fc-daygrid-day:not(.fc-day-past):not(.blocked-date):hover {
  background: rgba(56,161,105,.06);
  cursor: pointer;
}

/* ===== Past dates (read-only) ===== */
.fc-daygrid-day.past-date,
.fc-daygrid-day.fc-day-past {
  background: rgba(0,0,0,.03);
  color: #6b7280;
  pointer-events: none;
}
.fc-daygrid-day.past-date .fc-daygrid-day-number,
.fc-daygrid-day.fc-day-past .fc-daygrid-day-number { color: #6b7280; }

/* ===== Blocked dates ===== */
.fc-daygrid-day.blocked-date {
  background:
    repeating-linear-gradient(
      45deg,
      rgba(220,53,69,.20) 0 6px,
      rgba(220,53,69,.10) 6px 12px
    );
  border: 1px solid rgba(220,53,69,.25);
  color: #7f1d1d;
  pointer-events: none;
}
.fc-daygrid-day.blocked-date .fc-daygrid-day-number { color: #7f1d1d; }

/* ===== Range preview (hover) ===== */
.fc-daygrid-day.preview-range {
  background: rgba(56,161,105,.10);
  outline: 2px dashed rgba(56,161,105,.5);
  outline-offset: -2px;
}

/* ===== Selected range ===== */
.fc-daygrid-day.range-day {
  background: rgba(56,161,105,.18);
  border-top: 1px solid rgba(56,161,105,.25);
  border-bottom: 1px solid rgba(56,161,105,.25);
}
.fc-daygrid-day.start-day,
.fc-daygrid-day.end-day {
  background: linear-gradient(90deg, var(--accent-2, #2f855a), var(--accent, #38a169));
  color: #fff;
  box-shadow: 0 10px 20px rgba(56,161,105,.25);
  z-index: 1;
}
.fc-daygrid-day.start-day .fc-daygrid-day-number,
.fc-daygrid-day.end-day .fc-daygrid-day-number { color: #fff; }

/* Στρογγυλέματα άκρων του range */
.fc-daygrid-day.start-day { border-top-left-radius: 12px; border-bottom-left-radius: 12px; }
.fc-daygrid-day.end-day   { border-top-right-radius: 12px; border-bottom-right-radius: 12px; }

/* ===== Background events (αν χρησιμοποιηθούν) ===== */
.fc-bg-event {
  background: rgba(220,53,69,.20) !important;
  opacity: 1 !important;
  border: none !important;
}

/* ===== Responsive ===== */
@media (max-width: 1024px) {
  #calendar { padding: 16px; }
  .fc .fc-daygrid-day { min-height: 72px; }
  .fc .fc-toolbar-title { font-size: 1.35rem; }
}
@media (max-width: 768px) {
  .fc .fc-toolbar-title { font-size: 1.2rem; }
  .fc .fc-button-primary { padding: 8px 10px; }
  .fc .fc-col-header-cell { font-size: .78rem; }
  .fc .fc-daygrid-day { min-height: 68px; }
}
@media (max-width: 480px) {
  #calendar { padding: 12px; border-radius: 12px; }
  .fc .fc-daygrid-day { min-height: 64px; }
  .fc .fc-daygrid-day-number { font-size: .9rem; }
}
