/* CSS mejorado para Lethuan Booking System */

#lbs-booking-form {
    max-width: 500px;
    margin: 40px auto; /* centra el formulario */
    padding: 25px;
    border: 1px solid #ddd;
    border-radius: 12px;
    background-color: #f9f9f9;
    box-shadow: 0px 4px 10px rgba(0,0,0,0.1);
    font-family: Arial, sans-serif;
}

#lbs-booking-form label {
    display: block;
    margin-bottom: 8px;
    font-weight: bold;
    color: #333;
}

#lbs-booking-form input[type="text"],
#lbs-booking-form input[type="email"],
#lbs-booking-form input[type="date"],
#lbs-booking-form select {
    width: 100%;
    padding: 10px 12px;
    margin-bottom: 18px;
    border: 1px solid #ccc;
    border-radius: 8px;
    box-sizing: border-box;
    font-size: 14px;
    transition: border-color 0.3s;
}

#lbs-booking-form input[type="text"]:focus,
#lbs-booking-form input[type="email"]:focus,
#lbs-booking-form input[type="date"]:focus,
#lbs-booking-form select:focus {
    border-color: #0073aa;
    outline: none;
}

#lbs-booking-form input[type="submit"] {
    background-color: #0073aa;
    color: white;
    padding: 12px 20px;
    border: none;
    border-radius: 8px;
    cursor: pointer;
    font-size: 16px;
    transition: background-color 0.3s;
}

#lbs-booking-form input[type="submit"]:hover {
    background-color: #005f8d;
}

#lbs-booking-form p {
    text-align: center;
    font-weight: bold;
    color: green;
}

/* === Estilos para Formularios AJAX (Login/Registro) === */

.lbs-form-container {
    max-width: 400px;
    margin: 40px auto;
    padding: 25px;
    border: 1px solid #ddd;
    border-radius: 12px;
    background-color: #f9f9f9;
    box-shadow: 0px 4px 10px rgba(0,0,0,0.1);
    font-family: Arial, sans-serif;
}

.lbs-form-container h3 {
    text-align: center;
    margin-top: 0;
    margin-bottom: 20px;
    color: #333;
}

.lbs-form-row {
    margin-bottom: 15px;
}

.lbs-form-row label {
    display: block;
    margin-bottom: 5px;
    font-weight: bold;
    color: #555;
}

.lbs-form-row input.input {
    width: 100%;
    padding: 10px 12px;
    border: 1px solid #ccc;
    border-radius: 8px;
    box-sizing: border-box;
    font-size: 14px;
    transition: border-color 0.3s;
}

.lbs-form-row input.input:focus {
    border-color: #0073aa;
    outline: none;
}

.lbs-form-row-remember label {
    font-weight: normal;
    display: inline-block;
}
.lbs-form-row-remember input {
    margin-right: 5px;
}

.lbs-form-row .button {
    width: 100%;
    background-color: #0073aa;
    color: white;
    padding: 12px 20px;
    border: none;
    border-radius: 8px;
    cursor: pointer;
    font-size: 16px;
    transition: background-color 0.3s;
}

.lbs-form-row .button:hover {
    background-color: #005f8d;
}

.lbs-form-row .button:disabled {
    background-color: #ccc;
    cursor: not-allowed;
}

.lbs-form-message {
    margin-top: 15px;
    padding: 10px;
    border-radius: 8px;
    text-align: center;
    font-weight: bold;
}

.lbs-form-message.error {
    background-color: #f8d7da;
    color: #721c24;
    border: 1px solid #f5c6cb;
}

.lbs-form-message.success {
    background-color: #d4edda;
    color: #155724;
    border: 1px solid #c3e6cb;
}

/* === Estilos para Mensaje de Contenido Privado === */

.lbs-private-content-message {
    padding: 20px;
    margin: 20px 0;
    background-color: #fffbe6;
    border: 1px solid #ffe58f;
    border-radius: 8px;
    text-align: center;
    font-size: 16px;
}

.lbs-private-content-message a {
    font-weight: bold;
    color: #0073aa;
    text-decoration: none;
}

.lbs-private-content-message a:hover {
    text-decoration: underline;
}

/* === Nuevos Estilos para el Formulario de Reservas (Aceternity UI) === */

#lbs-booking-form .lbs-aceternity-form-wrapper {
    background-color: #ffffff; /* bg-white */
    padding: 2rem; /* p-8 */
    border-radius: 1.5rem; /* rounded-2xl */
    box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05); /* shadow-input */
    max-width: 448px; /* max-w-md */
    width: 100%;
    margin: 40px auto;
    position: relative;
    overflow: hidden;
}

#lbs-booking-form .lbs-aceternity-form-wrapper::before {
    content: '';
    position: absolute;
    left: var(--x);
    top: var(--y);
    transform: translate(-50%, -50%);
    width: 800px; /* size of the gradient circle */
    height: 800px;
    background-image: radial-gradient(circle, rgba(14, 165, 233, 0.15), transparent 80%);
    border-radius: 50%;
    pointer-events: none; /* Make sure it doesn't interfere with mouse events */
    z-index: 0;
}

#lbs-booking-form .lbs-form-title,
#lbs-booking-form .lbs-form-subtitle,
#lbs-booking-form .lbs-form-aceternity {
    position: relative;
    z-index: 1; /* Ensure form content is on top of the gradient */
}

#lbs-booking-form .dark .lbs-aceternity-form-wrapper {
    background-color: #000000; /* dark:bg-black */
}

#lbs-booking-form .lbs-form-title {
    font-weight: 700; /* font-bold */
    font-size: 1.25rem; /* text-xl */
    color: #1a202c; /* text-neutral-800 */
}

#lbs-booking-form .dark .lbs-form-title {
    color: #edf2f7; /* dark:text-neutral-200 */
}

#lbs-booking-form .lbs-form-subtitle {
    font-size: 0.875rem; /* text-sm */
    max-width: 24rem; /* max-w-sm */
    margin-top: 0.5rem; /* mt-2 */
    color: #4a5568; /* text-neutral-600 */
}

#lbs-booking-form .dark .lbs-form-subtitle {
    color: #a0aec0; /* dark:text-neutral-300 */
}

#lbs-booking-form.lbs-form-aceternity {
    margin-top: 2rem; /* my-8 */
    margin-bottom: 2rem;
}

#lbs-booking-form .lbs-label-input-container {
    display: flex;
    flex-direction: column;
    width: 100%;
    margin-bottom: 1rem; /* mb-4 */
}

#lbs-booking-form .lbs-label-input-container label {
    font-size: 0.875rem; /* text-sm */
    margin-bottom: 0.5rem; /* space-y-2 */
}

#lbs-booking-form .lbs-label-input-container input:focus,
#lbs-booking-form .lbs-label-input-container select:focus {
    border-color: #6366f1; /* a nice indigo from the gradient */
    outline: none;
    box-shadow: 0 0 0 2px rgba(99, 102, 241, 0.2);
}

#lbs-booking-form .lbs-input-row {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
    margin-bottom: 1rem;
}

@media (min-width: 768px) {
    #lbs-booking-form .lbs-input-row {
        flex-direction: row;
        gap: 0.5rem;
    }
}

#lbs-booking-form .lbs-gradient-btn {
    position: relative;
    display: block;
    width: 100%;
    height: 2.5rem; /* h-10 */
    background-image: linear-gradient(to bottom right, #000000, #4a5568); /* bg-gradient-to-br from-black to-neutral-600 */
    border-radius: 0.375rem; /* rounded-md */
    font-weight: 500; /* font-medium */
    color: #ffffff; /* text-white */
    box-shadow: 0px 1px 0px 0px rgba(255, 255, 255, 0.25) inset, 0px -1px 0px 0px rgba(255, 255, 255, 0.25) inset;
    border: none;
    cursor: pointer;
    font-size: 1rem;
}

#lbs-booking-form .bottom-gradient {
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    height: 1px;
}

#lbs-booking-form .bottom-gradient .bottom-gradient-span-1 {
    position: absolute;
    left: 0;
    right: 0;
    bottom: -1px;
    display: block;
    width: 100%;
    height: 1px;
    background-image: linear-gradient(to right, transparent, #06b6d4, transparent);
    opacity: 0;
    transition: opacity 500ms;
}

#lbs-booking-form .lbs-gradient-btn:hover .bottom-gradient-span-1 {
    opacity: 1;
}

#lbs-booking-form .bottom-gradient .bottom-gradient-span-2 {
    position: absolute;
    left: 2.5rem;
    right: 2.5rem;
    bottom: -1px;
    margin-left: auto;
    margin-right: auto;
    display: block;
    height: 1px;
    width: 50%;
    background-image: linear-gradient(to right, transparent, #6366f1, transparent);
    opacity: 0;
    filter: blur(4px);
    transition: opacity 500ms;
}

#lbs-booking-form .lbs-gradient-btn:hover .bottom-gradient-span-2 {
    opacity: 1;
}

#lbs-booking-form .lbs-divider {
    height: 1px;
    width: 100%;
    background-image: linear-gradient(to right, transparent, #d1d5db, transparent);
    margin-top: 2rem;
    margin-bottom: 2rem;
}

#lbs-booking-form .lbs-social-buttons-container {
    display: flex;
    flex-direction: column;
    gap: 1rem; /* space-y-4 */
}

#lbs-booking-form .lbs-social-btn {
    position: relative;
    display: flex;
    height: 2.5rem; /* h-10 */
    width: 100%;
    align-items: center;
    justify-content: center;
    gap: 0.5rem; /* space-x-2 */
    border-radius: 0.375rem; /* rounded-md */
    background-color: #f3f4f6; /* bg-gray-50 */
    padding-left: 1rem; /* px-4 */
    padding-right: 1rem;
    font-weight: 500; /* font-medium */
    color: #000000; /* text-black */
    box-shadow: 0 0 0 1px #262626; /* custom shadow */
    border: none;
    cursor: pointer;
}

#lbs-booking-form .lbs-social-btn span {
    font-size: 0.875rem; /* text-sm */
    color: #374151; /* text-neutral-700 */
}


