/* =============================================================================
   WOOCOMMERCE OVERRIDES
   All colours driven by CSS custom properties set via the Customizer.
   ============================================================================= */

/* ── Add to Cart button inside booking card ──────────────────────────────── */
/* Kept for WC single product page and cart notices */
.pb-booking-card .button.add_to_cart_button,
.pb-booking-card .single_add_to_cart_button,
.pb-slot-row .button.add_to_cart_button {
    display:         inline-flex;
    align-items:     center;
    justify-content: center;
    padding:         .625rem 1.25rem;
    background:      var(--pb-button-bg);
    color:           var(--pb-button-text);
    font-family:     var(--pb-body-font);
    font-size:       .78rem;
    font-weight:     800;
    letter-spacing:  .08em;
    text-transform:  uppercase;
    border:          none;
    border-radius:   var(--pb-radius);
    cursor:          pointer;
    transition:      background var(--pb-transition), color var(--pb-transition), transform var(--pb-transition);
    white-space:     nowrap;
    text-decoration: none;
}
.pb-booking-card .button.add_to_cart_button:hover {
    background: var(--pb-button-hover-bg);
    color:      var(--pb-button-hover-text);
    transform:  translateY(-1px);
}
.pb-booking-card .button.add_to_cart_button.added {
    background: #16a34a;
    color:      #fff;
}
.pb-booking-card .button.added_to_cart {
    display:         inline-flex;
    align-items:     center;
    gap:             .35rem;
    font-size:       .75rem;
    font-weight:     700;
    letter-spacing:  .06em;
    text-transform:  uppercase;
    color:           #16a34a;
    padding:         .5rem .75rem;
    border:          2px solid #16a34a;
    border-radius:   var(--pb-radius);
    background:      transparent;
    text-decoration: none;
}

/* ── Slot row CTA label and price ────────────────────────────────────────── */
.pb-slot-row__cta {
    display:        inline-block;
    padding:        .5rem 1rem;
    background:     var(--pb-button-bg);
    color:          var(--pb-button-text);
    font-family:    var(--pb-body-font);
    font-size:      .78rem;
    font-weight:    800;
    letter-spacing: .08em;
    text-transform: uppercase;
    border-radius:  var(--pb-radius);
    transition:     background var(--pb-transition), color var(--pb-transition);
    white-space:    nowrap;
}
.pb-slot-row:hover .pb-slot-row__cta {
    background: var(--pb-button-hover-bg);
    color:      var(--pb-button-hover-text);
}

/* ── Price inside slot row ───────────────────────────────────────────────── */
.pb-slot-row__price .woocommerce-Price-amount {
    font-family:    var(--pb-heading-font);
    font-size:      1.75rem;
    letter-spacing: .02em;
    color:          var(--pb-card-text);
}
.pb-slot-row__price del { font-size: 1.1rem; opacity: .4; margin-right: .25rem; }
.pb-slot-row__price ins { text-decoration: none; }

/* ── Price inside booking card (kept for single product page) ────────────── */
.pb-booking-card__price .woocommerce-Price-amount {
    font-family:    var(--pb-heading-font);
    font-size:      2rem;
    letter-spacing: .02em;
    color:          var(--pb-card-text);
}
.pb-booking-card__price del {
    font-size:    1.2rem;
    opacity:      .45;
    margin-right: .3rem;
}
.pb-booking-card__price ins { text-decoration: none; }

/* ── WC notices ──────────────────────────────────────────────────────────── */
.woocommerce-message,
.woocommerce-info,
.woocommerce-error {
    padding:       1rem 1.25rem 1rem 1.5rem;
    margin-bottom: 1.5rem;
    border-radius: var(--pb-radius);
    font-size:     .9rem;
    font-weight:   500;
    display:       flex;
    align-items:   center;
    gap:           1rem;
    list-style:    none;
}
.woocommerce-message { background: #f0fdf4; border-left: 4px solid #16a34a; color: #166534; }
.woocommerce-info    { background: #eff6ff; border-left: 4px solid #3b82f6; color: #1e40af; }
.woocommerce-error   { background: #fef2f2; border-left: 4px solid #dc2626; color: #991b1b; }

.woocommerce-message .button,
.woocommerce-info .button {
    margin-left:     auto;
    padding:         .4rem 1rem;
    background:      var(--pb-button-bg);
    color:           var(--pb-button-text);
    font-size:       .78rem;
    font-weight:     700;
    letter-spacing:  .06em;
    text-transform:  uppercase;
    border-radius:   var(--pb-radius);
    border:          none;
    cursor:          pointer;
    transition:      background var(--pb-transition), color var(--pb-transition);
    text-decoration: none;
    white-space:     nowrap;
}
.woocommerce-message .button:hover,
.woocommerce-info .button:hover {
    background: var(--pb-button-hover-bg);
    color:      var(--pb-button-hover-text);
}

/* ── Cart / Checkout page shared ─────────────────────────────────────────── */
.pb-wc-page h1,
.pb-wc-page h2 {
    font-family:   var(--pb-heading-font);
    font-size:     clamp(2rem, 4vw, 3.5rem);
    margin-bottom: 1.75rem;
}

.pb-wc-page table.shop_table {
    width:           100%;
    border-collapse: collapse;
    margin-bottom:   2rem;
    font-size:       .9rem;
}
.pb-wc-page table.shop_table th {
    padding:        .75rem 1rem;
    background:     var(--pb-button-bg);
    color:          var(--pb-button-text);
    font-family:    var(--pb-body-font);
    font-size:      .72rem;
    font-weight:    700;
    letter-spacing: .08em;
    text-transform: uppercase;
    text-align:     left;
}
.pb-wc-page table.shop_table td {
    padding:        .875rem 1rem;
    border-bottom:  1px solid rgba(0,0,0,.07);
    vertical-align: middle;
}
.pb-wc-page table.shop_table tr:last-child td { border-bottom: none; }

/* Cart / Checkout buttons */
.pb-wc-page .button,
.pb-wc-page input[type="submit"],
.pb-wc-page button[type="submit"] {
    padding:         .75rem 1.75rem;
    background:      var(--pb-button-bg);
    color:           var(--pb-button-text);
    font-family:     var(--pb-body-font);
    font-size:       .82rem;
    font-weight:     800;
    letter-spacing:  .08em;
    text-transform:  uppercase;
    border:          none;
    border-radius:   var(--pb-radius);
    cursor:          pointer;
    transition:      background var(--pb-transition), color var(--pb-transition);
    text-decoration: none;
    display:         inline-block;
}
.pb-wc-page .button:hover,
.pb-wc-page input[type="submit"]:hover,
.pb-wc-page button[type="submit"]:hover {
    background: var(--pb-button-hover-bg);
    color:      var(--pb-button-hover-text);
}

/* Prominent checkout button uses primary colours */
.pb-wc-page .button.checkout-button {
    background:  var(--pb-button-hover-bg);
    color:       var(--pb-button-hover-text);
    font-size:   .9rem;
    padding:     .875rem 2rem;
    display:     block;
    text-align:  center;
}
.pb-wc-page .button.checkout-button:hover {
    background: var(--pb-button-bg);
    color:      var(--pb-button-text);
}

/* Form fields */
.pb-wc-page .form-row label {
    font-size:      .82rem;
    font-weight:    700;
    letter-spacing: .04em;
    text-transform: uppercase;
    display:        block;
    margin-bottom:  .35rem;
    color:          var(--pb-text);
}
.pb-wc-page .form-row input[type="text"],
.pb-wc-page .form-row input[type="email"],
.pb-wc-page .form-row input[type="tel"],
.pb-wc-page .form-row select,
.pb-wc-page .form-row textarea {
    width:         100%;
    padding:       .6rem .875rem;
    border:        2px solid rgba(0,0,0,.12);
    border-radius: var(--pb-radius);
    font-family:   var(--pb-body-font);
    font-size:     .9rem;
    color:         var(--pb-text);
    background:    var(--pb-card-bg);
    transition:    border-color var(--pb-transition);
}
.pb-wc-page .form-row input:focus,
.pb-wc-page .form-row select:focus,
.pb-wc-page .form-row textarea:focus {
    outline:      none;
    border-color: var(--pb-button-bg);
}

/* Order totals */
.pb-wc-page .cart-subtotal th,
.pb-wc-page .order-total th {
    font-family:    var(--pb-body-font);
    font-size:      .85rem;
    font-weight:    700;
    letter-spacing: .04em;
    text-transform: uppercase;
    padding:        .5rem 0;
    color:          var(--pb-text);
}
.pb-wc-page .order-total .amount {
    font-family: var(--pb-heading-font);
    font-size:   1.75rem;
    color:       var(--pb-text);
}
