/* ==========================================================
   === ESTILOS ESPECÍFICOS PARA TENIS (Reservas) ============
   ========================================================== */

   /* --- HERO BANNER ESPECÍFICO --- */
   .tennis-hero {
       background: linear-gradient(rgba(145, 79, 38, 0.7), rgba(195, 106, 51, 0.7)), url('assets/imagenes/tenis-bg.jpg') center/cover;
       background-color: #a15f36; /* Fallback color sólido */
       color: white;
       text-align: center;
       padding: 6rem 1.25rem;
       margin-bottom: 3.75rem;
       box-shadow: 0 4px 15px rgba(0, 0, 0, 0.1);
   }
   
   .tennis-hero-content {
       max-width: 50rem;
       margin: 0 auto;
   }
   
   .tennis-hero-content h2 {
       font-size: 2.8rem;
       font-weight: 700;
       margin-bottom: 0.9375rem;
       text-shadow: 0 2px 5px rgba(0,0,0,0.5);
   }
   
   .tennis-hero-content p {
       font-size: 1.2rem;
       color: #ffd8ba;
       text-shadow: 0 1px 3px rgba(0,0,0,0.5);
       margin-bottom: 2rem;
   }
   
   .btn-back {
       display: inline-block;
       background: transparent;
       color: white;
       border: 2px solid white;
       text-decoration: none;
       padding: 0.6em 1.5em;
       border-radius: 30px;
       font-weight: 600;
       transition: all 0.3s ease;
   }
   
   .btn-back:hover {
       background: white;
       color: #914f26;
       transform: scale(1.05);
   }
   
   /* --- SECCIÓN DE RESERVAS / HORARIOS --- */
   .booking-section {
       padding: 0 1.25rem 4rem;
   }
   
   .booking-container {
       max-width: 55rem;
       margin: 0 auto;
       background: white;
       border-radius: 12px;
       box-shadow: 0 10px 40px rgba(0,0,0,0.08);
       padding: 2.5rem;
       border: 1px solid #f2e9e4;
   }
   
   .booking-header {
       text-align: center;
       margin-bottom: 2.5rem;
       border-bottom: 2px solid #f2e9e4;
       padding-bottom: 1.5rem;
   }
   
   .booking-header h3 {
       color: #914f26;
       font-size: 2rem;
       margin-bottom: 0.5rem;
   }
   
   .booking-subtitle {
       color: #666;
       font-size: 1.1rem;
   }
   
   /* Grid de Turnos */
   .schedule-grid {
       display: grid;
       grid-template-columns: 1fr 1fr;
       gap: 2.5rem;
       margin-bottom: 2.5rem;
   }
   
   @media (max-width: 768px) {
       .schedule-grid {
           grid-template-columns: 1fr; /* Una columna en móviles */
       }
   }
   
   .time-block {
       background: #fdfbf9;
       border-radius: 8px;
       padding: 1.5rem;
       border: 1px solid #f2e9e4;
   }
   
   .block-title {
       color: #c36a33;
       font-size: 1.3rem;
       margin-bottom: 1.5rem;
       text-transform: uppercase;
       letter-spacing: 1px;
       display: flex;
       align-items: center;
       gap: 0.5rem;
   }
   
   /* Icono decorativo mediante pseudoelemento */
   .morning .block-title::before { content: "☀️"; }
   .afternoon .block-title::before { content: "🌙"; }
   
   /* Contenedor de ranuras funcionales */
   .slots-container {
       display: flex;
       flex-direction: column;
       gap: 1rem;
   }
   
   /* Botón de franja horaria */
   .time-slot {
       display: flex;
       justify-content: space-between;
       align-items: center;
       padding: 1rem 1.25rem;
       background: white;
       border: 2px solid #e2e8f0;
       border-radius: 8px;
       cursor: pointer;
       transition: all 0.2s ease;
       width: 100%;
       text-align: left;
       font-family: 'Inter', sans-serif;
   }
   
   /* Estado Disponible */
   .time-slot.available:hover {
       border-color: #c36a33;
       box-shadow: 0 4px 10px rgba(195, 106, 51, 0.15);
       transform: translateY(-2px);
   }
   
   /* Estado Seleccionado */
   .time-slot.selected {
       background: #fff5eb;
       border-color: #914f26;
       box-shadow: 0 0 0 2px #914f26 inset;
   }
   
   .time-slot.selected .time { color: #914f26; }
   .time-slot.selected .status { 
       color: #fff;
       background-color: #914f26;
   }
   
   /* Texto de hora y estado */
   .time-slot .time {
       font-size: 1.1rem;
       font-weight: 600;
       color: #333;
   }
   
   .time-slot .status {
       font-size: 0.85rem;
       padding: 0.3rem 0.8rem;
       border-radius: 20px;
       background: #f1f5f9;
       color: #64748b;
       font-weight: 500;
       transition: all 0.2s ease;
   }
   
   .time-slot.available .status {
       color: #10b981; /* Verde éxito */
       background: #d1fae5;
   }
   
   /* Estado Deshabilitado (Pasada) */
   .time-slot.disabled {
       background: #f8fafc;
       border-color: #e2e8f0;
       cursor: not-allowed;
       opacity: 0.6;
   }
   
   .time-slot.disabled .time {
       color: #94a3b8;
   }
   
   .time-slot.disabled .status {
       background: #e2e8f0;
       color: #64748b;
   }
   
   .time-slot.disabled:hover {
       transform: none;
       box-shadow: none;
       border-color: #e2e8f0;
   }
   
   /* Acciones finales */
   .booking-actions {
       text-align: center;
       padding-top: 1.5rem;
       border-top: 2px solid #f2e9e4;
   }
   
   .btn-confirm-booking {
       background: linear-gradient(135deg, #2ecc71 0%, #27ae60 100%);
       color: white;
       border: none;
       padding: 1rem 2.5rem;
       font-size: 1.2rem;
       font-weight: 600;
       border-radius: 30px;
       cursor: pointer;
       transition: all 0.3s ease;
       box-shadow: 0 4px 15px rgba(46, 204, 113, 0.4);
   }
   
   .btn-confirm-booking:hover:not(:disabled) {
       transform: scale(1.05);
       box-shadow: 0 6px 20px rgba(46, 204, 113, 0.6);
   }
   
   /* Estado deshabilitado del botón de confirmación */
   .btn-confirm-booking:disabled {
       background: #cbd5e1;
       box-shadow: none;
       cursor: not-allowed;
       transform: none;
       color: #94a3b8;
   }

   /* ==========================================================
      === SELECCIÓN DE DÍAS Y HORA LOCAL =======================
      ========================================================== */
   .day-selector-container {
       display: flex;
       flex-direction: column;
       align-items: center;
       margin-bottom: 2rem;
       gap: 1rem;
   }
   
   .local-time-badge {
       display: inline-flex;
       align-items: center;
       gap: 0.5rem;
       background: #f8fafc;
       color: #475569;
       padding: 0.5rem 1rem;
       border-radius: 20px;
       font-size: 0.9rem;
       font-weight: 500;
       border: 1px solid #e2e8f0;
       box-shadow: 0 2px 5px rgba(0,0,0,0.02);
   }
   
   .local-time-badge::before {
       content: "📍";
   }
   
   .day-selector {
       display: flex;
       gap: 0.8rem;
       background: #f1f5f9;
       padding: 0.5rem;
       border-radius: 12px;
   }
   
   .day-btn {
       background: transparent;
       border: none;
       padding: 0.8rem 1.5rem;
       border-radius: 8px;
       color: #64748b;
       font-weight: 600;
       font-size: 1rem;
       cursor: pointer;
       transition: all 0.3s ease;
       display: flex;
       flex-direction: column;
       align-items: center;
       gap: 0.2rem;
   }
   
   .day-btn .day-name {
       font-size: 1.1rem;
       color: #334155;
   }
   
   .day-btn .day-date {
       font-size: 0.8rem;
       opacity: 0.8;
   }
   
   .day-btn:hover {
       background: #e2e8f0;
   }
   
   .day-btn.active {
       background: #914f26;
       color: white;
       box-shadow: 0 4px 10px rgba(145, 79, 38, 0.2);
   }
   
   .day-btn.active .day-name, .day-btn.active .day-date {
       color: white;
   }
   
   /* ==========================================================
      === HERO BANNERS PÁDEL (Reutilizando estilos de Tenis) ===
      ========================================================== */
   .padel-cubierta-hero {
       background: linear-gradient(rgba(145, 79, 38, 0.7), rgba(195, 106, 51, 0.7)), url('assets/imagenes/padel-bg.jpg') center/cover;
       background-color: #a15f36; 
       color: white;
       text-align: center;
       padding: 6rem 1.25rem;
       margin-bottom: 3.75rem;
       box-shadow: 0 4px 15px rgba(0, 0, 0, 0.1);
   }
   
   .padel-descubierta-hero {
       background: linear-gradient(rgba(145, 79, 38, 0.7), rgba(195, 106, 51, 0.7)), url('assets/imagenes/padel-outdoor-bg.jpg') center/cover;
       background-color: #a15f36; 
       color: white;
       text-align: center;
       padding: 6rem 1.25rem;
       margin-bottom: 3.75rem;
       box-shadow: 0 4px 15px rgba(0, 0, 0, 0.1);
   }
   
   .padel-cubierta-hero .tennis-hero-content,
   .padel-descubierta-hero .tennis-hero-content {
       max-width: 50rem;
       margin: 0 auto;
   }
   
   .padel-cubierta-hero h2,
   .padel-descubierta-hero h2 {
       font-size: 2.8rem;
       font-weight: 700;
       margin-bottom: 0.9375rem;
       text-shadow: 0 2px 5px rgba(0,0,0,0.5);
   }
   
   .padel-cubierta-hero p,
   .padel-descubierta-hero p {
       font-size: 1.2rem;
       color: #ffd8ba;
       text-shadow: 0 1px 3px rgba(0,0,0,0.5);
       margin-bottom: 2rem;
   }
