/*!
Theme Name: Luck Dragon
Theme URI: http://rsdesignuk.com/
Author: rsdesignuk.com
Author URI: http://rsdesignuk.com/
Description: Description
Version: 1.0.0
Tested up to: 5.4
Requires PHP: 5.6
License: GNU General Public License v2 or later
License URI: LICENSE
Text Domain: luck-dragon
Tags: custom-background, custom-logo, custom-menu, featured-images, threaded-comments, translation-ready

This theme, like WordPress, is licensed under the GPL.
Use it to make something cool, have fun, and share what you've learned.

Luck Dragon is based on Underscores https://underscores.me/, (C) 2012-2020 Automattic, Inc.
Underscores is distributed under the terms of the GNU GPL v2 or later.

Normalizing styles have been helped along thanks to the fine work of
Nicolas Gallagher and Jonathan Neal https://necolas.github.io/normalize.css/
*/
.rs-team .sub-title, .bistly-about-sec .sub-title {
    color: var(--text-color);
}
.rs-team .sub-title:after, .rs-team .sub-title:before, .bistly-about-sec .sub-title:after, .bistly-about-sec .sub-title:before {
    content: "";
    background-color: var(--text-color);
}

.wpcf7-form span{
    display: block !important;
}

/* Smooth Scroll Behavior */
html {
    scroll-behavior: smooth;
}

@media (prefers-reduced-motion: reduce) {
    html {
        scroll-behavior: auto;
    }
}

/* Center the calendar picker popup */
.picker.picker--opened {
    position: fixed !important;
    top: 55% !important;
    left: 50% !important;
    transform: translate(-50%, -50%) !important;
    margin: 0 !important;
    width: auto !important;
}

.picker.picker--opened .picker__holder {
    position: relative !important;
    transform: none !important;
    max-height: none !important;
    opacity: 1 !important;
    border-radius: 5px !important;
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.15) !important;
    border-top-width: 1px !important;
    border-bottom-width: 1px !important;
    min-width: 300px;
    max-width: 400px;
}

.picker.picker--opened .picker__frame {
    position: relative !important;
    transform: none !important;
    top: auto !important;
    bottom: auto !important;
    left: auto !important;
    right: auto !important;
    margin: 0 !important;
}

/* Add overlay background when picker is open */
body.picker--opened::before {
    content: '';
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: rgba(0, 0, 0, 0.5);
    z-index: 1;
    animation: fadeIn 0.2s ease-in-out;
}

@keyframes fadeIn {
    from {
        opacity: 0;
    }
    to {
        opacity: 1;
    }
}

/* Datepicker Theme Colors - Using Brand Colors */
:root {
    --primary-black-color: #cc2b32;
    --primary-color: #f9ee12;
}

.picker.picker--opened .picker__holder {
    background: #ffffff !important;
    border: 1px solid #e0e0e0 !important;
    box-shadow: 0 8px 32px rgba(0, 0, 0, 0.12) !important;
}

/* Header Styling */
.picker.picker--opened .picker__header {
    background: var(--primary-black-color);
    color: #ffffff;
    padding: 20px 15px;
    margin: -1px -1px 0 -1px;
    border-radius: 5px 5px 0 0;
}

.picker.picker--opened .picker__month,
.picker.picker--opened .picker__year {
    color: #ffffff;
    font-weight: 600;
    font-size: 18px;
}

.picker.picker--opened .picker__month {
    margin-right: 8px;
}

/* Navigation Arrows */
.picker.picker--opened .picker__nav--prev,
.picker.picker--opened .picker__nav--next {
    width: 36px;
    height: 36px;
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.2);
    transition: all 0.3s ease;
    cursor: pointer;
}

.picker.picker--opened .picker__nav--prev:hover,
.picker.picker--opened .picker__nav--next:hover {
    background: rgba(255, 255, 255, 0.3);
    transform: scale(1.1);
}

.picker.picker--opened .picker__nav--prev:before {
    border-right-color: #ffffff;
}

.picker.picker--opened .picker__nav--next:before {
    border-left-color: #ffffff;
}

.picker.picker--opened .picker__nav--disabled {
    opacity: 0.4;
    cursor: not-allowed;
}

.picker.picker--opened .picker__nav--disabled:hover {
    transform: none;
    background: rgba(255, 255, 255, 0.2);
}

/* Calendar Table */
.picker.picker--opened .picker__table {
    margin: 15px 0;
    padding: 0 10px;
}

/* Weekday Labels */
.picker.picker--opened .picker__weekday {
    color: var(--primary-black-color);
    font-weight: 600;
    font-size: 13px;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    padding: 10px 0 8px 0;
}

/* Day Cells */
.picker.picker--opened .picker__day {
    border-radius: 50%;
    transition: all 0.2s ease;
    font-weight: 500;
    color: #333333;
    margin: 2px;
    width: 36px;
    height: 36px;
    line-height: 36px;
}

/* Today Indicator */
.picker.picker--opened .picker__day--today {
    background: #fff9d0;
    color: var(--primary-black-color);
    font-weight: 700;
    border: 2px solid var(--primary-black-color);
}

.picker.picker--opened .picker__day--today:before {
    border-top-color: var(--primary-black-color);
}

/* Hover State */
.picker.picker--opened .picker__day--infocus:hover,
.picker.picker--opened .picker__day--outfocus:hover {
    background: var(--primary-color);
    color: var(--primary-black-color);
    transform: scale(1.1);
    cursor: pointer;
    font-weight: 600;
}

/* Selected Day */
.picker.picker--opened .picker__day--selected,
.picker.picker--opened .picker__day--selected:hover,
.picker.picker--opened .picker--focused .picker__day--selected {
    background: var(--primary-black-color);
    color: #ffffff;
    font-weight: 700;
    box-shadow: 0 4px 12px rgba(204, 43, 50, 0.4);
}

/* Highlighted Day */
.picker.picker--opened .picker__day--highlighted {
    border-color: var(--primary-black-color);
    background: #fff9d0;
}

.picker.picker--opened .picker__day--highlighted:hover,
.picker.picker--opened .picker--focused .picker__day--highlighted {
    background: var(--primary-color);
    color: var(--primary-black-color);
}

/* Disabled Days */
.picker.picker--opened .picker__day--disabled,
.picker.picker--opened .picker__day--disabled:hover {
    background: #f5f5f5;
    color: #cccccc;
    cursor: not-allowed;
    opacity: 0.5;
}

.picker.picker--opened .picker__day--disabled:before {
    border-top-color: #cccccc;
}

/* Out of Focus Days (Previous/Next Month) */
.picker.picker--opened .picker__day--outfocus {
    color: #cccccc;
}

/* Footer Buttons */
.picker.picker--opened .picker__footer {
    padding: 15px;
    background: #f8f9fa;
    border-top: 1px solid #e0e0e0;
    border-radius: 0 0 5px 5px;
    display: flex;
    justify-content: space-between;
    gap: 10px;
}

.picker.picker--opened .picker__button--today,
.picker.picker--opened .picker__button--clear,
.picker.picker--opened .picker__button--close {
    flex: 1;
    padding: 10px 15px;
    border: none;
    border-radius: 5px;
    font-weight: 600;
    font-size: 14px;
    cursor: pointer;
    transition: all 0.3s ease;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

.picker.picker--opened .picker__button--today {
    background: var(--primary-black-color);
    color: #ffffff;
}

.picker.picker--opened .picker__button--today:hover {
    background: #b0252b;
    transform: translateY(-2px);
    box-shadow: 0 4px 12px rgba(204, 43, 50, 0.3);
}

.picker.picker--opened .picker__button--clear {
    background: #ff6b6b;
    color: #ffffff;
}

.picker.picker--opened .picker__button--clear:hover {
    background: #ee5a5a;
    transform: translateY(-2px);
    box-shadow: 0 4px 12px rgba(255, 107, 107, 0.3);
}

.picker.picker--opened .picker__button--close {
    background: #6c757d;
    color: #ffffff;
}

.picker.picker--opened .picker__button--close:hover {
    background: #5a6268;
    transform: translateY(-2px);
    box-shadow: 0 4px 12px rgba(108, 117, 125, 0.3);
}

/* Responsive adjustments */
@media (max-width: 768px) {
    .picker.picker--opened .picker__holder {
        min-width: 280px;
        max-width: 90vw;
    }
    
    .picker.picker--opened .picker__day {
        width: 32px;
        height: 32px;
        line-height: 32px;
        font-size: 14px;
    }
    
    .picker.picker--opened .picker__header {
        padding: 15px 10px;
    }
    
    .picker.picker--opened .picker__month,
    .picker.picker--opened .picker__year {
        font-size: 16px;
    }
}

/* Book a Table Form Styling with Brand Colors */
.qrr-booking-form {
    max-width: 600px;
    margin: 0 auto;
    padding: 30px;
    background: #bd2126;
    border-radius: 10px;
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.08);
}

/* Fieldsets */
.qrr-booking-form fieldset {
    border: 2px solid var(--primary-black-color);
    border-radius: 8px;
    padding: 25px;
    margin-top: 25px;
    background: #bd2126;
    transition: all 0.3s ease;
}

.qrr-booking-form fieldset:hover {
    border-color: var(--primary-black-color);
    box-shadow: 0 2px 10px rgba(204, 43, 50, 0.1);
}

.qrr-booking-form fieldset legend {
    padding: 0 15px;
    font-weight: 700;
    font-size: 20px;
    color: var(--primary-color);
    text-transform: uppercase;
    letter-spacing: 1px;
}

/* Form Labels */
.qrr-booking-form .qrr-text label {
    display: block;
    margin-top: 25px;
    margin-bottom: 8px;
    font-weight: 600;
    font-size: 15px;
    color: #333333;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

.qrr-booking-form .qrr-text label:first-child {
    margin-top: 0;
    color: #ffffff;
}

.qrr-booking-form label .fa,
.qrr-booking-form label i {
    color: var(--primary-color);
    margin-right: 10px;
    font-size: 16px;
    width: 20px;
    text-align: center;
}

/* Input Fields */
.qrr-booking-form input[type="text"],
.qrr-booking-form input[type="email"],
.qrr-booking-form input[type="tel"],
.qrr-booking-form textarea {
    width: 100%;
    min-width: 200px;
    padding: 12px 18px;
    background: #ffffff;
    border: 2px solid #e0e0e0;
    border-radius: 6px;
    font-size: 15px;
    color: #333333;
    transition: all 0.3s ease;
    box-sizing: border-box;
}

.qrr-booking-form input[type="text"]:focus,
.qrr-booking-form input[type="email"]:focus,
.qrr-booking-form input[type="tel"]:focus,
.qrr-booking-form textarea:focus {
    outline: none;
    border-color: var(--primary-black-color);
    box-shadow: 0 0 0 3px rgba(204, 43, 50, 0.1);
    background: #fffef9;
}

.qrr-booking-form input[type="text"]::placeholder,
.qrr-booking-form input[type="email"]::placeholder,
.qrr-booking-form textarea::placeholder {
    color: #999999;
}

/* Select Dropdowns */
.qrr-booking-form select {
    width: 100%;
    min-width: 200px;
    padding: 12px 18px;
    background: #ffffff;
    border: 2px solid #e0e0e0;
    border-radius: 6px;
    font-size: 15px;
    color: #333333;
    cursor: pointer;
    transition: all 0.3s ease;
    appearance: none;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%23cc2b32' d='M6 9L1 4h10z'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right 15px center;
    padding-right: 40px;
}

.qrr-booking-form select:focus {
    outline: none;
    border-color: var(--primary-black-color);
    box-shadow: 0 0 0 3px rgba(204, 43, 50, 0.1);
    background-color: #fffef9;
}

/* Nice Select Styling */
.qrr-booking-form .nice-select {
    width: 100%;
    min-width: 200px;
    padding: 12px 18px;
    background: #ffffff;
    border: 2px solid #e0e0e0;
    border-radius: 6px;
    font-size: 15px;
    color: #333333;
    transition: all 0.3s ease;
}

.qrr-booking-form .nice-select:focus,
.qrr-booking-form .nice-select.open {
    border-color: var(--primary-black-color);
    box-shadow: 0 0 0 3px rgba(204, 43, 50, 0.1);
}

.qrr-booking-form .nice-select .current {
    color: #333333;
}

.qrr-booking-form .nice-select .list {
    border: 2px solid var(--primary-black-color);
    border-radius: 6px;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
        width: 100%;
    height: 300px;
    overflow-y: scroll;
}

.qrr-booking-form .nice-select .list li:hover,
.qrr-booking-form .nice-select .list li.selected {
    background: var(--primary-color);
    color: var(--primary-black-color);
    font-weight: 600;
}

/* Date Input Styling */
.qrr-booking-form .qrr-date input[type="text"] {
    cursor: pointer;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 16 16'%3E%3Cpath fill='%23cc2b32' d='M3 2h1v1H3V2zm9 0h1v1h-1V2zM2 4h12v10H2V4zm1-2a1 1 0 0 0-1 1v11a1 1 0 0 0 1 1h10a1 1 0 0 0 1-1V3a1 1 0 0 0-1-1H3zm1 3v1h1V5H4zm2 0v1h1V5H6zm2 0v1h1V5H8zm2 0v1h1V5h-1zm2 0v1h1V5h-1zM4 7v1h1V7H4zm2 0v1h1V7H6zm2 0v1h1V7H8zm2 0v1h1V7h-1zm2 0v1h1V7h-1zM4 9v1h1V9H4zm2 0v1h1V9H6zm2 0v1h1V9H8zm2 0v1h1V9h-1zm2 0v1h1V9h-1z'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right 15px center;
    padding-right: 45px;
}

/* Submit Button */
.qrr-booking-form .qrr-submit {
    margin-top: 35px;
    text-align: center;
}

.qrr-booking-form .qrr-submit button {
    background: var(--primary-black-color);
    color: #ffffff;
    border: none;
    padding: 15px 40px;
    font-size: 16px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 1px;
    border-radius: 6px;
    cursor: pointer;
    transition: all 0.3s ease;
    box-shadow: 0 4px 15px rgba(204, 43, 50, 0.3);
    min-width: 200px;
}

.qrr-booking-form .qrr-submit button:hover {
    background: #b0252b;
    transform: translateY(-2px);
    box-shadow: 0 6px 20px rgba(204, 43, 50, 0.4);
}

.qrr-booking-form .qrr-submit button:active {
    transform: translateY(0);
    box-shadow: 0 2px 10px rgba(204, 43, 50, 0.3);
}

/* Loading Spinner */
.qrr-booking-form .spinner {
    width: 30px;
    height: 30px;
    display: inline-block;
    vertical-align: middle;
}

/* Error Messages */
.qrr-booking-form .qrr-error-valid {
    color: var(--primary-black-color);
    font-size: 13px;
    font-weight: 600;
    margin-top: 5px;
    display: block;
}

.qrr-booking-form .form-error {
    display: none;
}

.qrr-booking-form .qrr-field-error {
    background: #fff0f0;
    border: 2px solid var(--primary-black-color) !important;
    padding: 12px 18px;
}

/* Success Message */
.qrr-booking-form .form-submitted {
    background: #f0fff4;
    color: #2d5016;
    padding: 20px;
    border-radius: 6px;
    border-left: 4px solid #4caf50;
    margin-top: 20px;
    font-weight: 600;
    text-align: center;
}

/* Description Text */
.qrr-booking-form .description {
    font-size: 13px;
    font-style: italic;
    color: #666666;
    margin-top: 5px;
}

/* Disabled State */
.qrr-booking-form input:disabled,
.qrr-booking-form select:disabled {
    background: #f5f5f5;
    color: #999999;
    cursor: not-allowed;
    opacity: 0.6;
}

/* Responsive Design */
@media (max-width: 768px) {
    .qrr-booking-form {
        padding: 20px;
    }
    
    .qrr-booking-form fieldset {
        padding: 20px;
    }
    
    .qrr-booking-form input[type="text"],
    .qrr-booking-form input[type="email"],
    .qrr-booking-form input[type="tel"],
    .qrr-booking-form select,
    .qrr-booking-form textarea {
        width: 100%;
        padding: 12px 15px;
    }
    
    .qrr-booking-form .qrr-submit button {
        width: 100%;
        padding: 15px;
    }
}

/* Reservation Section Styling */
.rs-reservation-section {
    background:var(--primary-black-color);
    padding: 80px 0;
}

.rs-reservation-section .sub-title,.rs-reservation-section .section-title {
    color: #fff !important;
}

.rs-reservation-section .reservation-content {
    padding-right: 40px;
}

.rs-reservation-section .sub-title {
    display: inline-block;
    color: var(--primary-black-color);
    font-size: 16px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 2px;
    margin-bottom: 15px;
    position: relative;
    padding-left: 20px;
}

.rs-reservation-section .sub-title:before {
    content: '';
    position: absolute;
    left: 0;
    top: 50%;
    transform: translateY(-50%);
    width: 4px;
    height: 20px;
    background: var(--primary-color);
}

.rs-reservation-section .section-title {
    font-size: 42px;
    font-weight: 700;
    color: #333333;
    margin-bottom: 30px;
    line-height: 1.2;
}

.rs-reservation-section .opening-time {
    margin-top: 30px;
}

.rs-reservation-section .opening-time-content {
    background: #ffffff;
    padding: 25px 30px;
    border-radius: 8px;
    box-shadow: 0 4px 15px rgba(0, 0, 0, 0.08);
    border-left: 4px solid var(--primary-black-color);
    margin-top: 20%;
}

.rs-reservation-section .opening-time-title {
    color: var(--primary-black-color);
    font-size: 20px;
    font-weight: 700;
    margin: 0 0 20px 0;
    padding-bottom: 15px;
    border-bottom: 2px solid #f0f0f0;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

.rs-reservation-section .opening-time-list {
    list-style: none;
    padding: 0;
    margin: 0;
}

.rs-reservation-section .opening-time-list li {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 12px 0;
    border-bottom: 1px solid #f0f0f0;
    transition: all 0.3s ease;
}

.rs-reservation-section .opening-time-list li:last-child {
    border-bottom: none;
}

.rs-reservation-section .opening-time-list li:hover {
    background-color: #fafafa;
    padding-left: 10px;
    padding-right: 10px;
    margin-left: -10px;
    margin-right: -10px;
    border-radius: 4px;
}

.rs-reservation-section .opening-time-list .days {
    font-weight: 600;
    color: #333333;
    font-size: 16px;
    flex: 0 0 auto;
    min-width: 120px;
}

.rs-reservation-section .opening-time-list .time {
    color: var(--primary-black-color);
    font-weight: 600;
    font-size: 16px;
    text-align: right;
    flex: 1;
}

.rs-reservation-section .opening-time-list .time.closed {
    color: #999999;
    font-weight: 500;
    font-style: italic;
}

/* Responsive adjustments for opening time */
@media (max-width: 768px) {
    .rs-reservation-section .opening-time-content {
        padding: 20px;
    }
    
    .rs-reservation-section .opening-time-title {
        font-size: 18px;
        margin-bottom: 15px;
        padding-bottom: 12px;
    }
    
    .rs-reservation-section .opening-time-list li {
        flex-direction: column;
        align-items: flex-start;
        padding: 10px 0;
    }
    
    .rs-reservation-section .opening-time-list .days {
        margin-bottom: 5px;
        min-width: auto;
    }
    
    .rs-reservation-section .opening-time-list .time {
        text-align: left;
    }
}

/* .rs-reservation-section .reservation-form-wrapper {
    background: #ffffff;
    padding: 30px;
    border-radius: 10px;
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.1);
} */

.rs-reservation-section .reservation-form {
    width: 100%;
}

/* Responsive Design for Reservation Section */
@media (max-width: 991px) {
    .rs-reservation-section .reservation-content {
        padding-right: 0;
        margin-bottom: 40px;
    }
    
    .rs-reservation-section .section-title {
        font-size: 32px;
    }
}

@media (max-width: 767px) {
    .rs-reservation-section {
        padding: 60px 0;
    }
    
    .rs-reservation-section .section-title {
        font-size: 28px;
    }
    
    .rs-reservation-section .reservation-form-wrapper {
        padding: 20px;
    }
}

.opening-hours-content th{
    text-transform: uppercase;
    color: #8d8484;
}

.hours-section h5{
    text-transform: uppercase;
    color: #8d8484;
}

.days-column{
    text-transform: uppercase;
    color: var(--primary-black-color);
    font-family: "Marcellus", serif;
}

.bistly-contact-sec .sub-title{
    color: var(--primary-black-color);
}

.bistly-contact-sec  .sub-title:after, .bistly-contact-sec .sub-title:before{
    background: var(--primary-black-color);
}

.theme-nav-menu.menu-on{
    background: var(--primary-black-color);
}

.theme-nav-menu.menu-on #menu-primary-navigation a{
    color:#FFF !important;
}

.blog-details-wrapper .blog-post .content p a{
    color: var(--primary-black-color);
    font-weight: 600;
    text-decoration: underline;
}

@media (max-width: 992px) {
    body.picker--opened::before {
         z-index: 0;
    }
}

