.plbs-success-message {
    background: #08763d;
    color: #fff;
    padding: 20px;
    margin: 20px 0;
    border-radius: 6px;
}

.plbs-success-message p {margin:0;}

.plbs-error-message {
    background: #c31d1d;
    color: #fff;
    padding: 20px;
    margin: 20px 0;
    border-radius: 6px;
}

.plbs-error-message p {margin:0;}

.plbs-locked-dates-wrapper {
    background:#0084ff;
    padding:20px;
    color:#fff;
    margin:0 0 2rem;
}

.plbs-locked-dates-wrapper h3 {
    font-weight:bold;color:#ffffff;font-size:1.6rem;text-align:center;text-transform:uppercase;
}

.plbs-locked-dates-wrapper h4 {
    font-weight:bold;color:#ffffff;font-size:1.2rem;
}

.plbs-locked-dates-wrapper h4 {width:200px;margin-right:20px;}

.plbs-locked-dates {display:flex;flex-wrap:wrap;align-items:center;}
.plbs-locked-dates:not(:last-of-type) {border-bottom:1px solid rgba(255,255,255,0.25);padding-bottom:10px;margin-bottom:10px;}
.plbs-locked-dates p {margin:0;}
.plbs-locked-date {display:flex;flex-wrap:wrap;align-items:center;}
.plbs-locked-date:not(:last-of-type) {margin:0 10px 0 0;}
.plbs-locked-date:not(:last-of-type):after {content:"|";margin:0 0 0 10px;}
.plbs-locked-date p:not(:last-of-type) {margin:0 10px 0 0;}

.single-product .related.products {display:none;}
.booking-cta-image {display:block;border:1px solid #ccc !important;}

#plbs-booking-system-title {
    font-size: 1.75rem;
    text-transform: uppercase;
    font-weight: bold;
    text-align:center;
    background:#0084ff;
    color:#fff;
    padding: 0.75rem;
    margin:100px 0 0;
    clear:both;
}

#plbs-booking-system-title span {display:block;}
#plbs-booking-system-title small {display:block;font-size:0.5em !important;color:#efefef;margin:0 0 15px;line-height:1 !important;}

#plbs-global-svg {
    position: relative;
    clear:both;
    margin:0 0 10px;
}

#plbs-global-svg .plbs-pitches-container {
    /*
    position: absolute;
    top: 10px;
    left: 10px;
    */
    background: #fff;
    border: 1px solid #e0e0e0;
}

#plbs-global-svg .plbs-pitches-container h3 {
    width: 100%;
    font-size: 1.2em;
    padding: 10px;
    border-bottom: 1px solid #e0e0e0;
    margin: 0;
    font-weight: bold;
}


#plbs-global-svg .plbs-pitches-container ul {
    display:flex;
    flex-wrap:wrap;
    list-style: none;
    padding: 10px;
    margin: 0;
}

#plbs-global-svg .plbs-pitches-container li {margin: 0;font-size: 0.8em;font-weight: bold;}
#plbs-global-svg .plbs-pitches-container li:not(:last-of-type):after {content: "|";margin: 0 5px;}

#plbs-global-svg svg {
    width: 100%;
    height: auto;
}

#plbs-global-svg #Numbers > g > * {
    cursor:pointer;
    -webkit-animation: pulsate 3s ease-out;
    -webkit-animation-iteration-count: infinite; 
    opacity: 0.5;
}

@-webkit-keyframes pulsate {
    0% { 
        opacity: 0.5;
    }
    50% { 
        opacity: 1.0;
    }
    100% { 
        opacity: 0.5;
    }
}

/* Modal container styling */
#plbs-booking-modal {
    background: #fff;
    border: 1px solid #ccc;
    padding: 20px;
    max-width: 960px;
    margin: 0 auto;
    box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);
    position: fixed;
    top:5%;right:0;bottom:5%;left:0;
    z-index:999999;
}

/* Popup content styling */
.plbs-popup-content {
    font-family: Arial, sans-serif;
    color: #333;
}

.plbs-popup-content h2 {
    font-size: 1.8em;
    margin-bottom: 10px;
}

.plbs-popup-content p {
    margin-bottom: 10px;
    line-height: 1.5;
}

.plbs-popup-content label {
    font-weight: bold;
}

/* Calendar styling */
.plbs-calendar {
    width: 100%;
    border-collapse: collapse;
    margin-top: 10px;
}

.plbs-calendar th,
.plbs-calendar td {
    border: 1px solid #ddd;
    padding: 8px;
    text-align: center;
    width: 14.28%;
}

.plbs-calendar th {
    background-color: #f4f4f4;
    font-weight: bold;
}

.plbs-month-button {
    display:flex;
    align-items:center;
    padding:7px 5px !important;
    line-height:1;
    margin:0 !important;
}

.plbs-month-button svg {
    width: 20px;
    height: 20px;
    margin: 0;
}

.plbs-month-button:first-of-type svg {margin:0 5px 0 0;}
.plbs-month-button:last-of-type svg {margin:0 0 0 5px;}

@media all and (max-width: 768px) {
    .plbs-month-button:first-of-type svg {margin:0;}
    .plbs-month-button:last-of-type svg {margin:0;}
    .plbs-month-label {display:none;}
}

.plbs-month-button span {font-size:0.75rem;text-transform:uppercase;font-weight:bold;letter-spacing:1px;line-height:1;}

.plbs-calendar td {
    cursor: pointer;
}

.plbs-calendar td:hover {
    background-color: #e0e0e0;
}

.plbs-calendar td.selected {
    background-color: #0084ff;
    color: #fff;
}

.plbs-calendar-day.disabled {
    background-color: #ccc;
    color: #999;
    pointer-events: none;
    cursor: not-allowed;
}  

/* Form elements inside the popup */
#plbs-booking-modal input[type="text"],
#plbs-booking-modal input[type="number"],
#plbs-booking-modal input[type="date"],
#plbs-booking-modal input[type="time"] {
    padding: 5px;
    width: 90%;
    margin-top: 5px;
    margin-bottom: 10px;
    border: 1px solid #ccc;
    border-radius: 3px;
}

/* Button styling */
.button {
    background-color: #0084ff;
    border: none;
    color: #fff;
    padding: 8px 12px;
    cursor: pointer;
    font-size: 1em;
    margin-top: 10px;
    border-radius: 3px;
}

.button:hover {
    background-color: #005177;
}

.plbs-calendar-day.selected-range {
    background-color: #0084ff;
    color: #fff;
  }

.plbs-field-row {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 10px;
}

.plbs-field-row input {margin: 0 !important;width: 100% !important;}

.plbs-add-to-basket {
    display: flex;
    align-items: center;
    background: #efefef;
    border: 1px solid #cccccc;
    padding: 10px;
    min-width: 280px;
    margin:0 20px 0 0;
    border-radius: 6px;
}

.plbs-add-to-basket .plbs-button {min-width:150px;}

.plbs-add-to-basket input[type="number"] {
    width: 50px !important;
    margin: 0 5px 0 0 !important;
}

.plbs-add-to-basket label {
    padding:9px;
}

.plbs-button {
    background: #0084ff !important;
    color: #fff !important;
    border: none !important;
    padding: 8px 14px !important;
    cursor: pointer;
    margin: 0 !important;
}

.plbs-popup-content h2 {
    font-weight:bold;
}

#plbs-electric-hookup-checkbox {margin-right:20px;}

.plbs-booking-group-total {
    font-size: 1.5em;
    font-weight: bold;
    margin-top: 30px;
}

#plbs-calendar-container {margin:0 0 40px;}

#plbs-calendar-title {font-weight:bold;letter-spacing:3px;}
#plbs-calendar-nav {padding:10px 0;border-top:1px solid rgba(000,000,000,0.1);border-bottom:1px solid rgba(000,000,000,0.1);margin:20px 0 !important;}
.plbs-close-btn {background:#333;font-size:14px;position:absolute;top:20px;right:20px;padding:5px 10px;color:#fff;border:none;cursor:pointer;text-transform:uppercase;}
.plbs-border-title {border-top:1px solid #e0e0e0;border-bottom:1px solid #e0e0e0;}

#plbs-surcharges-container {display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;}
#plbs-surcharges-container > *:not(:nth-last-child(-n+2)) {margin-bottom:5px;}

/* Solo Traveller Option */
#plbs-solo-traveller-wrapper {width:100%;margin-bottom:10px;padding-bottom:10px;border-bottom:1px solid #e0e0e0;}
#plbs-solo-traveller-wrapper label {display:flex;align-items:center;cursor:pointer;}
#plbs-solo-traveller-wrapper input[type="checkbox"] {width:auto !important;margin-right:10px !important;}
#plbs-solo-traveller-wrapper span {font-weight:bold;color:#0084ff;}

.product .entry-title {font-size:1.5em;padding:0.8rem;background: #0084ff;margin:15px 0;color: #fff;}
.plbs-surcharge-item:nth-child(2n+1) {padding-right:10px;}
.plbs-surcharge-item {display:flex;justify-content:space-between;align-items:center;}
.plbs-surcharge-item label {display:flex;width:100%;align-items:center;}
.plbs-surcharge-item label input[type="checkbox"] {width:auto !important;margin-right:10px !important;}
.plbs-surcharge-item input[type="number"] {width:40px !important;height:30px;margin-left:10px !important;}
.plbs-surcharge-item span {display:block;line-height:1;}
#plbs-group-title {padding:0 30px 0 0;line-height:1;font-size:1.25rem;}

#floating-cart-sidebar-wrapper {
    position: fixed;
    right: 0;
    top: 200px;
    z-index: 9999;
    background:#0084ff;
}

#floating-cart-sidebar-wrapper button {margin:0 !important;}
#floating-cart-sidebar-wrapper .wc-block-mini-cart__icon, #floating-cart-sidebar-wrapper .wc-block-mini-cart__icon path, #floating-cart-sidebar-wrapper .wc-block-mini-cart__icon circle {fill:#ffffff !important;}

.woocommerce-cart #floating-cart-sidebar-wrapper, .woocommerce-checkout #floating-cart-sidebar-wrapper  {display:none;}

.wc-block-components-product-metadata__description {
    display: none;
}

.woocommerce-order-received .wc-item-meta {
    display: none;
}

.woocommerce-table__product-name.product-name {
    font-size:1.2rem;
}

.plbs-booking-info {margin:20px 0 0;}
.plbs-booking-info p:not(:last-of-type) {margin:0;}
.plbs-booking-info p:last-of-type {margin:0;}
#plbs-join-booking-form {display:flex;justify-content:space-between;align-items:center;padding:10px;background:#f8f8f8;border:1px solid #ccc;border-radius:6px;margin:20px 0 0;}
#plbs-join-booking-form input[type="text"] {margin:0 10px 0 0;}
#plbs-join-booking-form label {line-height:1;margin:0;}
#plbs-join-booking-form button {min-width:200px;padding:10px 20px;line-height:1;margin:0;}
section.container {min-height: 70vh;}
#plbs-join-booking-details {margin:20px 0 0;}
.plbs-join-dates {display:flex;justify-content:center;align-items:center;margin:0 0 20px;}
.plbs-join-dates p {margin:0;}
.plbs-join-seperator {margin:0 10px !important;}
.plbs-join-surcharges {display:flex;justify-content:space-between;align-items:center;padding:10px;background:#f8f8f8;border:1px solid #ccc;border-radius:6px;margin:20px 0 0;}
.plbs-join-surcharges p {display:flex;align-items:center;margin:0;}
.plbs-join-surcharges p label {font-size:0.75rem;line-height:1;}
.plbs-join-surcharges p input[type="number"] {max-width:50px;margin:0;}
.plbs-join-surcharges p label .remaining {margin:0 3px 0 0;}
.plbs-join-booking-title {font-size:1.5rem;text-align:center;margin:0 0 20px;}
.plbs-join-title {font-size:1.5rem;font-weight:bold;text-align:center;margin:0 0 20px;}
.plbs-booking-total {margin:20px 0;}
.plbs-join-add-to-cart {display:flex;justify-content:center;align-items:center;margin:20px 0 0;}
.plbs-join-add-to-cart p {margin:0;}
.plbs-join-add-to-cart button {margin:0 0 0 10px;}
.plbs-calendar-day.disabled {
    background-color: #eee;
    color: #999;
}

.wc-block-components-quantity-selector {display:none !important;}

  /* Desktop: disable interaction so custom calendar is used */
.plbs-date-field {
    pointer-events: none;
    background-color: #f5f5f5;
}
  
/* Mobile: allow native datepicker */
@media (max-width: 768px) {
    .plbs-date-field-wrap {display:none;}
    /*
    .plbs-date-field {
        pointer-events: auto;
    }
        */
    #plbs-booking-modal {top:0 !important;bottom:0 !important;padding:7px !important;}
    .plbs-booking-group-total {margin-top:10px !important;}
    #plbs-calendar-nav {margin:3px 0 !important;}
    #footer-links {flex-wrap:wrap;}
    #footer-links span {display:none !important;}
    #footer-links a:not(:last-of-type) {margin:0 5px 0 0 !important;}
    #copyright-info {padding:5px 0 !important;font-size:0.75rem !important;text-align:center !important;} 
    .plbs-close-btn {top:7px !important;right:7px !important;}
}

@media (max-width: 480px) {
    .plbs-date-field {
        pointer-events: auto;
    }

    .plbs-action-row {
        display: flex;
        justify-content: space-between;
        align-items: center;
        flex-wrap: wrap;
    }
    .plbs-surcharge-wrapper {order:1;}
    .plbs-add-to-basket {order:2;}

    #floating-cart-sidebar-wrapper {
        top: auto;
        right:auto;
        left: auto;
        bottom:50px;
        margin:0 auto;
    }

    .plbs-add-to-basket {margin-top:20px;}
    #plbs-calendar-container {margin-bottom:10px;}
    .plbs-date-selection p {margin:0;}
    #plbs-booking-modal {top:0 !important;bottom:0 !important;}
    #plbs-group-title {font-size:1rem !important;}
    .plbs-date-selection > p:not(.plbs-date-field-wrap) {line-height:1;font-size:0.8rem;}
    .plbs-border-title, .plbs-surcharge-item span {font-size:0.8rem;}
    .plbs-surcharge-item {width:100%;margin:0 0 5px !important;padding:0 !important;}
}