/* Inflatable Zone booking surfaces only. Keep Astra and unrelated WooCommerce pages untouched. */
body.page-id-23, body.postid-34, body.postid-424{
  --iz-booking-blue: #2e3192;
  --iz-booking-red: #ED1C24;
  --iz-booking-ink: #333333;
  --iz-booking-muted: #bbbbbb;
  --iz-booking-white: #ffffff;
}body.page-id-23 .booking-nav, body.postid-34 .booking-nav, body.postid-424 .booking-nav, body.woocommerce-cart .booking-nav, body.woocommerce-checkout .booking-nav{
  display: flex;
  clear: both;
  width: 100%;
  gap: 10px;
  margin: 0 0 28px;
  padding: 0;
  border-bottom: 4px solid var(--iz-booking-blue);
  list-style: none;
}body.page-id-23 .booking-nav li, body.postid-34 .booking-nav li, body.postid-424 .booking-nav li, body.woocommerce-cart .booking-nav li, body.woocommerce-checkout .booking-nav li{
  display: block;
  flex: 1 1 0;
  max-width: 170px;
  margin: 0 !important;
  padding: 16px 20px;
  color: var(--iz-booking-white);
  background: var(--iz-booking-red);
  font-size: 18px;
  font-weight: 700;
  line-height: 22px;
  text-align: center;
  text-transform: uppercase;
  white-space: nowrap;
}body.page-id-23 .booking-nav li.active, body.postid-34 .booking-nav li.active, body.postid-424 .booking-nav li.active, body.woocommerce-cart .booking-nav li.active, body.woocommerce-checkout .booking-nav li.active{
  background: var(--iz-booking-blue);
}

/* IZ-T168297: make the whole tab clickable. The li carries the padding, so the
   anchor is pulled out over it with negative margins. Rendered height is
   unchanged at 54px; only the hit area grows from 22px to the full tab. */
body.page-id-23 .booking-nav li > a, body.postid-34 .booking-nav li > a, body.postid-424 .booking-nav li > a{
  display: block;
  margin: -16px -20px !important;
  padding: 16px 20px;
  color: inherit;
  text-decoration: none;
}

body.page-id-23 .entry-content > h3{
  margin: 0 0 20px;
  color: var(--iz-booking-blue);
  font-size: clamp(22px, 2.5vw, 30px);
  text-transform: uppercase;
}

body.page-id-23 .booking-box{
  position: relative;
  display: flow-root;
  width: 100%;
  box-sizing: border-box;
  margin: 24px 0 0;
  padding: 26px 30px 30px;
  color: var(--iz-booking-white);
  background: var(--iz-booking-blue);
  border-radius: 2px;
}

body.page-id-23 .booking-box h3{
  max-width: calc(100% - 190px);
  margin: 0 0 12px;
  color: var(--iz-booking-white);
  font-size: clamp(22px, 2.5vw, 30px);
  line-height: 1.15;
  text-transform: uppercase;
}

body.page-id-23 .booking-box > a{
  float: right;
  min-width: 150px;
  margin: 0 0 16px 34px;
  padding: 14px 24px;
  color: var(--iz-booking-white);
  background: var(--iz-booking-red);
  border-radius: 4px;
  font-size: 18px;
  font-weight: 700;
  line-height: 22px;
  text-align: center;
  text-decoration: none;
  text-transform: uppercase;
}

body.page-id-23 .booking-box > a:hover, body.page-id-23 .booking-box > a:focus-visible{
  color: var(--iz-booking-red);
  background: var(--iz-booking-white);
}

body.postid-34 .woocommerce-breadcrumb, body.postid-424 .woocommerce-breadcrumb, body.postid-34 form.variations_form, body.postid-424 form.variations_form, body.postid-34 .woocommerce-product-gallery, body.postid-424 .woocommerce-product-gallery, body.postid-34 .single-product-category, body.postid-424 .single-product-category, body.postid-34 .product_meta, body.postid-424 .product_meta, body.postid-34 .woocommerce-tabs, body.postid-424 .woocommerce-tabs, body.postid-34 .related.products, body.postid-424 .related.products{
  display: none !important;
}

body.postid-34 .site-main div.product, body.postid-424 .site-main div.product{
  display: block !important;
  width: 100% !important;
  margin: 0 !important;
}

body.postid-34 .site-main div.product .summary, body.postid-424 .site-main div.product .summary{
  clear: both;
  float: none !important;
  width: 100% !important;
  max-width: 1200px;
  box-sizing: border-box;
  margin: 0 auto !important;
}

body.postid-34 .product_title, body.postid-424 .product_title{
  margin: 0 0 24px;
  color: var(--iz-booking-blue);
  font-size: clamp(38px, 5vw, 64px);
  font-weight: 700;
  line-height: 1;
  text-transform: uppercase;
}

body.postid-34 .DOPBSPCalendar-wrapper, body.postid-424 .DOPBSPCalendar-wrapper{
  display: flow-root;
  width: 100%;
  margin: 20px auto 36px;
}

body.postid-34 .DOPBSPCalendar-wrapper .DOPBSPCalendar-container, body.postid-424 .DOPBSPCalendar-wrapper .DOPBSPCalendar-container{
  min-width: 0;
  width: 67% !important;
}

body.postid-34 .DOPBSPCalendar-wrapper .DOPBSPCalendar-sidebar, body.postid-424 .DOPBSPCalendar-wrapper .DOPBSPCalendar-sidebar{
  float: right !important;
  min-width: 0;
  width: 30% !important;
  box-sizing: border-box;
  margin: 0 0 0 3% !important;
  overflow: visible !important;
}

body.postid-34 .DOPBSPCalendar-sidebar .dopbsp-cart-wrapper, body.postid-424 .DOPBSPCalendar-sidebar .dopbsp-cart-wrapper{
  margin-right: 0 !important;
  margin-left: 0 !important;
}

body.postid-34 .DOPBSPCalendar-sidebar .dopbsp-cart tr.dopbsp-total td.dopbsp-value, body.postid-424 .DOPBSPCalendar-sidebar .dopbsp-cart tr.dopbsp-total td.dopbsp-value{
  overflow: visible !important;
  white-space: nowrap;
}

body.postid-34 .DOPBSPCalendar-sidebar > h3, body.postid-424 .DOPBSPCalendar-sidebar > h3, body.postid-34 .DOPBSPCalendar-hours > h3, body.postid-424 .DOPBSPCalendar-hours > h3{
  margin: 0 0 18px;
  padding: 13px 14px;
  color: var(--iz-booking-white);
  background: var(--iz-booking-blue);
  font-size: 20px;
  font-weight: 700;
  line-height: 24px;
  text-align: center;
  text-transform: uppercase;
}

body.postid-34 .DOPBSPCalendar-sidebar .dopbsp-input-wrapper, body.postid-424 .DOPBSPCalendar-sidebar .dopbsp-input-wrapper{
  clear: both;
  width: 100%;
  margin: 0 0 13px;
}

body.postid-34 .DOPBSPCalendar-sidebar .dopbsp-input-wrapper > label, body.postid-424 .DOPBSPCalendar-sidebar .dopbsp-input-wrapper > label, body.postid-34 .DOPBSPCalendar-sidebar .ja_age_check .iz-age-title, body.postid-424 .DOPBSPCalendar-sidebar .ja_age_check .iz-age-title{
  display: block;
  width: 100%;
  margin: 0 0 5px;
  color: var(--iz-booking-ink);
  font-size: 14px;
  font-weight: 700;
  line-height: 18px;
  text-transform: uppercase;
}

body.postid-34 .DOPBSPCalendar-sidebar .DOPSelect, body.postid-424 .DOPBSPCalendar-sidebar .DOPSelect, body.postid-34 .DOPBSPCalendar-sidebar .dopselect-select, body.postid-424 .DOPBSPCalendar-sidebar .dopselect-select{
  width: 100% !important;
  box-sizing: border-box;
}

body.postid-34 .DOPBSPCalendar-sidebar .dopselect-select, body.postid-424 .DOPBSPCalendar-sidebar .dopselect-select{
  min-height: 44px;
}

body.postid-34 #DOPBSPCalendar-no-items-wrapper1, body.postid-424 #DOPBSPCalendar-no-items-wrapper1{
  display: none !important;
}

body.postid-34 .DOPBSPCalendar-sidebar .ja_age_check, body.postid-424 .DOPBSPCalendar-sidebar .ja_age_check{
  display: grid;
  grid-template-columns: 24px minmax(0, 1fr);
  gap: 10px;
  align-items: start;
  margin: 0 0 16px;
  color: var(--iz-booking-ink);
  font-size: 14px;
  line-height: 20px;
}

body.postid-34 .DOPBSPCalendar-sidebar #cbAgeCheck, body.postid-424 .DOPBSPCalendar-sidebar #cbAgeCheck{
  width: 20px !important;
  height: 20px;
  margin: 2px 0 0;
  accent-color: var(--iz-booking-blue);
}

body.postid-34 .DOPBSPCalendar-sidebar .iz-age-copy, body.postid-424 .DOPBSPCalendar-sidebar .iz-age-copy, body.postid-34 .DOPBSPCalendar-sidebar #iz-age-description, body.postid-424 .DOPBSPCalendar-sidebar #iz-age-description{
  display: block;
}

body.postid-34 .dopbsp-add-to-cart-wrapper input, body.postid-424 .dopbsp-add-to-cart-wrapper input{
  width: 100% !important;
  min-height: 48px;
  box-sizing: border-box;
  border: 0;
  border-radius: 4px;
  color: var(--iz-booking-white);
  background: var(--iz-booking-red);
  font-size: 18px;
  font-weight: 700;
  text-transform: uppercase;
}

body.postid-34 #fakeBookButton, body.postid-424 #fakeBookButton{
  background: #666666;
}

body.postid-34 .footnote, body.postid-424 .footnote{
  display: block;
  width: 100%;
  box-sizing: border-box;
  padding-top: 6px;
  color: #707070;
  font-size: 13px;
  line-height: 18px;
  text-align: right;
  overflow-wrap: anywhere;
  white-space: normal;
}

body.page-id-23 a:focus-visible, body.postid-34 button:focus-visible, body.postid-34 input:focus-visible, body.postid-34 a:focus-visible, body.postid-424 button:focus-visible, body.postid-424 input:focus-visible, body.postid-424 a:focus-visible{
  outline: 3px solid var(--iz-booking-blue);
  outline-offset: 3px;
}

@media (max-width: 960px) {
  body.postid-34 .DOPBSPCalendar-wrapper .DOPBSPCalendar-container, body.postid-424 .DOPBSPCalendar-wrapper .DOPBSPCalendar-container, body.postid-34 .DOPBSPCalendar-wrapper .DOPBSPCalendar-sidebar, body.postid-424 .DOPBSPCalendar-wrapper .DOPBSPCalendar-sidebar{
    float: none !important;
    width: 100% !important;
    margin: 0 !important;
  }

  body.postid-34 .DOPBSPCalendar-wrapper .DOPBSPCalendar-sidebar, body.postid-424 .DOPBSPCalendar-wrapper .DOPBSPCalendar-sidebar{
    padding-top: 24px;
  }
}

@media (max-width: 600px) {body.page-id-23 .booking-nav, body.postid-34 .booking-nav, body.postid-424 .booking-nav, body.woocommerce-cart .booking-nav, body.woocommerce-checkout .booking-nav{
    gap: 4px;
  }body.page-id-23 .booking-nav li, body.postid-34 .booking-nav li, body.postid-424 .booking-nav li, body.woocommerce-cart .booking-nav li, body.woocommerce-checkout .booking-nav li{
    flex: 1 1 0;
    padding: 12px 6px;
    font-size: 13px;
    text-align: center;
  }body.page-id-23 .booking-nav li > a, body.postid-34 .booking-nav li > a, body.postid-424 .booking-nav li > a, body.woocommerce-cart .booking-nav li > a, body.woocommerce-checkout .booking-nav li > a{
    margin: -12px -6px !important;
    padding: 12px 6px;
  }

  body.page-id-23 .booking-box{
    padding: 22px 20px 24px;
  }

  body.page-id-23 .booking-box h3{
    max-width: none;
  }

  body.page-id-23 .booking-box > a{
    float: none;
    display: block;
    width: 100%;
    box-sizing: border-box;
    margin: 0 0 18px;
  }

  body.postid-34 .product_title, body.postid-424 .product_title{
    font-size: 38px;
  }
}


/* DreamIT scope finish 2026-08-17: restore booking headings and hide stray Woo controls on party request */
body.postid-34 h1.product_title, body.postid-424 h1.product_title{
  display: block !important;
}

body.postid-424 .summary > p.price, body.postid-424 .summary > form.cart, body.postid-424 .summary > .quantity, body.postid-424 .summary > .single_add_to_cart_button{
  display: none !important;
}


/* DreamIT scope finish 2026-08-17: suppress staging promo popup on booking/cart/checkout surfaces */
html.pum-open, html.pum-open body{
  overflow: auto !important;
}

body.page-id-23 .pum-overlay, body.page-id-23 .popmake, body.postid-34 .pum-overlay, body.postid-34 .popmake, body.postid-424 .pum-overlay, body.postid-424 .popmake, body.woocommerce-cart .pum-overlay, body.woocommerce-cart .popmake, body.woocommerce-checkout .pum-overlay, body.woocommerce-checkout .popmake{
  display: none !important;
}

/* ticket-182030-cart-checkout-heading: Elementor hides every page title site-wide via :root{--page-title-display:none}.
   Cart and Checkout are not Elementor pages, so they lose their heading entirely.
   Re-enable Elementor's own variable for those two page types only.
   order-received is excluded: live shows ORDER RECEIVED there, not CHECKOUT. */
body.woocommerce-cart, body.woocommerce-checkout:not(.woocommerce-order-received){--page-title-display:block}
body.woocommerce-cart h1.entry-title, body.woocommerce-checkout:not(.woocommerce-order-received) h1.entry-title{text-transform:uppercase}


/* Ticket 182030 item 7: stock checkout/form-shipping.php emits
   <h3>Additional information</h3> whenever the cart needs no shipping,
   which is always true for bookings. Live hides this heading so BOOKING
   NOTES reads as the field label. order-received excluded to stay
   consistent with the page-title rule above. */
body.woocommerce-checkout:not(.woocommerce-order-received) .woocommerce-additional-fields > h3{display:none}


/* Ticket 182030 item 8: the order-received endpoint is excluded from the
   checkout heading rule above so it never reads CHECKOUT. Live shows
   ORDER RECEIVED, so give it its own rule. The title text itself comes from
   CheckoutHooks::filterOrderReceivedTitle(). */
body.woocommerce-order-received{--page-title-display:block}
body.woocommerce-order-received h1.entry-title{text-transform:uppercase}


/* ---------------------------------------------------------------------------
   IZ-T168297 cart parity with live.
   Live (jumpabout) keeps WooCommerce's own cart table in the DOM and hides it,
   then renders a booking band in its place. Same approach here, so WooCommerce's
   cart update / coupon / remove handlers keep working.
   Font family is deliberately inherited from the permanent Saira stack.
   --------------------------------------------------------------------------- */

body.woocommerce-cart.iz-cart-all-bookings form.woocommerce-cart-form table.shop_table, body.woocommerce-cart.iz-cart-all-bookings .cart-collaterals, body.woocommerce-cart.iz-cart-all-bookings .woocommerce-message{
  display: none !important;
}

body.woocommerce-cart .entry-title{
  color: var(--iz-booking-blue);
  font-size: 56px;
  line-height: 51px;
  margin: 0 0 20px;
  text-transform: uppercase;
  font-weight: 700;
}

body.woocommerce-cart .jaCart, body.woocommerce-checkout .jaCart{
  float: left;
  width: 100%;
  border-top: 4px solid var(--iz-booking-blue);
  margin-top: 24px;
  padding-top: 24px;
}

body.woocommerce-cart .jaCart h3, body.woocommerce-checkout .jaCart h3, body.woocommerce-cart .jaSummary h3, body.woocommerce-checkout .jaSummary h3{
  color: var(--iz-booking-ink);
  font-size: 25px;
  line-height: normal;
  margin: 0 0 20px;
  text-transform: uppercase;
  font-weight: 700;
}

body.woocommerce-cart .jaCart .ja_headings, body.woocommerce-checkout .jaCart .ja_headings{
  float: left;
  width: 100%;
  padding-bottom: 10px;
}

body.woocommerce-cart .jaCart .ja_headings > div, body.woocommerce-checkout .jaCart .ja_headings > div{
  color: var(--iz-booking-red);
  font-size: 20px;
  line-height: 21px;
  text-transform: uppercase;
  font-weight: 700;
}

body.woocommerce-cart .jaCart .ja_data, body.woocommerce-checkout .jaCart .ja_data{
  float: left;
  width: 100%;
  border-bottom: 4px solid var(--iz-booking-blue);
  margin-bottom: 24px;
  padding-bottom: 20px;
}

body.woocommerce-cart .jaCart .ja_data > div, body.woocommerce-checkout .jaCart .ja_data > div{
  color: var(--iz-booking-ink);
  font-size: 20px;
  line-height: 22px;
  font-weight: 700;
  text-transform: uppercase;
}

body.woocommerce-cart .jaCart .ja_reservation, body.woocommerce-checkout .jaCart .ja_reservation{ float: left; width: 18%; text-align: left; }
body.woocommerce-cart .jaCart .ja_date, body.woocommerce-checkout .jaCart .ja_date{ float: left; width: 18%; text-align: left; }
body.woocommerce-cart .jaCart .ja_time, body.woocommerce-checkout .jaCart .ja_time{ float: left; width: 18%; text-align: left; }
body.woocommerce-cart .jaCart .ja_details, body.woocommerce-checkout .jaCart .ja_details{ float: left; width: 34%; text-align: left; }
body.woocommerce-cart .jaCart .ja_total, body.woocommerce-checkout .jaCart .ja_total{ float: left; width: 12%; text-align: right; }

body.woocommerce-cart .jaCart .ja_reservation_mob, body.woocommerce-checkout .jaCart .ja_reservation_mob, body.woocommerce-cart .jaCart .ja_date_mob, body.woocommerce-checkout .jaCart .ja_date_mob, body.woocommerce-cart .jaCart .ja_time_mob, body.woocommerce-checkout .jaCart .ja_time_mob, body.woocommerce-cart .jaCart .ja_details_mob, body.woocommerce-checkout .jaCart .ja_details_mob, body.woocommerce-cart .jaCart .ja_total_mob, body.woocommerce-checkout .jaCart .ja_total_mob{
  display: none;
}

body.woocommerce-cart .jaCart .ja_reservation a.remove, body.woocommerce-checkout .jaCart .ja_reservation a.remove{
  display: inline-block;
  margin-right: 10px;
  vertical-align: middle;
  text-decoration: none;
}

body.woocommerce-cart .jaSummary, body.woocommerce-checkout .jaSummary{ float: left; width: 100%; }
body.woocommerce-cart .jaSummary .ja_coupon, body.woocommerce-checkout .jaSummary .ja_coupon{ float: left; width: 60%; }
body.woocommerce-cart .jaSummary .ja_coupon_helper, body.woocommerce-checkout .jaSummary .ja_coupon_helper{
  float: left;
  width: 40%;
  padding-right: 20px;
  box-sizing: border-box;
}
body.woocommerce-cart .jaSummary .ja_coupon_form, body.woocommerce-checkout .jaSummary .ja_coupon_form{ float: left; width: 60%; }
body.woocommerce-cart .jaSummary .ja_coupon_form input, body.woocommerce-checkout .jaSummary .ja_coupon_form input{
  float: left;
  width: 48%;
  margin-right: 2%;
  padding: 15px 10px;
  box-sizing: border-box;
}

body.woocommerce-cart .jaSummary .ja_checkout_total_row, body.woocommerce-checkout .jaSummary .ja_checkout_total_row{
  float: left;
  width: 40%;
  color: var(--iz-booking-ink);
  font-size: 25px;
  line-height: normal;
  font-weight: 700;
  text-transform: uppercase;
  text-align: right;
  margin-bottom: 30px;
}

body.woocommerce-cart .jaSummary .ja_checkout_total_row strong, body.woocommerce-checkout .jaSummary .ja_checkout_total_row strong{
  display: inline-block;
  min-width: 120px;
}

body.woocommerce-cart .jaSummary .footnote, body.woocommerce-checkout .jaSummary .footnote{
  float: left;
  width: 100%;
  display: block;
  text-align: right;
  font-size: 14px;
  font-weight: 400;
  padding-top: 4px;
  text-transform: none;
  color: var(--iz-booking-muted);
}

body.woocommerce-cart .jaSummary .ja_checkout_proceed, body.woocommerce-checkout .jaSummary .ja_checkout_proceed{
  float: left;
  width: 100%;
  text-align: right;
}

body.woocommerce-cart .jaSummary a.button, body.woocommerce-checkout .jaSummary a.button, body.woocommerce-cart .jaSummary input.button, body.woocommerce-checkout .jaSummary input.button, body.woocommerce-cart .jaSummary button.button, body.woocommerce-checkout .jaSummary button.button{
  color: var(--iz-booking-white);
  background-color: var(--iz-booking-red);
  padding: 15px 30px;
  border-radius: 4px;
  line-height: 20px;
  text-transform: uppercase;
  font-weight: 700;
}

body.woocommerce-cart .jaSummary a.button:hover, body.woocommerce-checkout .jaSummary a.button:hover, body.woocommerce-cart .jaSummary input.button:hover, body.woocommerce-checkout .jaSummary input.button:hover, body.woocommerce-cart .jaSummary button.button:hover, body.woocommerce-checkout .jaSummary button.button:hover{
  color: var(--iz-booking-white);
  background-color: var(--iz-booking-blue);
}

@media (max-width: 600px) {
  body.woocommerce-cart .entry-title{ font-size: 34px; line-height: 32px; }

  body.woocommerce-cart .jaCart .ja_headings, body.woocommerce-checkout .jaCart .ja_headings{ display: none; }

  body.woocommerce-cart .jaCart .ja_reservation, body.woocommerce-checkout .jaCart .ja_reservation, body.woocommerce-cart .jaCart .ja_date, body.woocommerce-checkout .jaCart .ja_date, body.woocommerce-cart .jaCart .ja_time, body.woocommerce-checkout .jaCart .ja_time, body.woocommerce-cart .jaCart .ja_details, body.woocommerce-checkout .jaCart .ja_details, body.woocommerce-cart .jaCart .ja_total, body.woocommerce-checkout .jaCart .ja_total{
    width: 100%;
    text-align: left;
    padding-bottom: 6px;
  }

  body.woocommerce-cart .jaCart .ja_reservation_mob, body.woocommerce-checkout .jaCart .ja_reservation_mob, body.woocommerce-cart .jaCart .ja_date_mob, body.woocommerce-checkout .jaCart .ja_date_mob, body.woocommerce-cart .jaCart .ja_time_mob, body.woocommerce-checkout .jaCart .ja_time_mob, body.woocommerce-cart .jaCart .ja_details_mob, body.woocommerce-checkout .jaCart .ja_details_mob, body.woocommerce-cart .jaCart .ja_total_mob, body.woocommerce-checkout .jaCart .ja_total_mob{
    display: block;
    color: var(--iz-booking-red);
    font-size: 14px;
    line-height: 18px;
    text-transform: uppercase;
    font-weight: 700;
    padding-top: 10px;
  }

  body.woocommerce-cart .jaSummary .ja_coupon, body.woocommerce-checkout .jaSummary .ja_coupon, body.woocommerce-cart .jaSummary .ja_coupon_helper, body.woocommerce-checkout .jaSummary .ja_coupon_helper, body.woocommerce-cart .jaSummary .ja_coupon_form, body.woocommerce-checkout .jaSummary .ja_coupon_form{
    width: 100%;
    padding-right: 0;
  }

  body.woocommerce-cart .jaSummary .ja_coupon_form, body.woocommerce-checkout .jaSummary .ja_coupon_form{ padding-top: 8px; }

  body.woocommerce-cart .jaSummary .ja_checkout_total_row, body.woocommerce-checkout .jaSummary .ja_checkout_total_row{
    width: 100%;
    padding-top: 20px;
  }

  body.woocommerce-cart .jaSummary .ja_checkout_proceed, body.woocommerce-checkout .jaSummary .ja_checkout_proceed{ padding-top: 10px; }
}

/* IZ-T168297: the booking custom properties are declared only for the booking
   pages. The cart and checkout consume the same tokens, so declare them here
   too. Without this every var() above resolves to nothing and the colours,
   backgrounds and borders silently drop out. */
body.woocommerce-cart, body.woocommerce-checkout{
  --iz-booking-blue: #2e3192;
  --iz-booking-red: #ED1C24;
  --iz-booking-ink: #333333;
  --iz-booking-muted: #bbbbbb;
  --iz-booking-white: #ffffff;
}

/* IZ-T168297: the tab labels are anchors on cart/checkout, so Astra's link
   colour wins over the colour set on the li. The booking pages only avoided
   this because page 23 carries an inline override. Force the tab text to the
   tab foreground colour here instead. */
body.woocommerce-cart .booking-nav li > a, body.woocommerce-checkout .booking-nav li > a{
  color: var(--iz-booking-white) !important;
  text-decoration: none !important;
}

body.woocommerce-cart .booking-nav li > a:hover, body.woocommerce-cart .booking-nav li > a:focus, body.woocommerce-checkout .booking-nav li > a:hover, body.woocommerce-checkout .booking-nav li > a:focus{
  color: var(--iz-booking-white) !important;
  text-decoration: none !important;
}

/* IZ-T168297: remove control on the booking band.
   Live is a near-black disc with a white glyph, taking its circle from
   WooCommerce core defaults. Astra restyles those defaults, so set the shape
   explicitly here and centre it against the reservation number with flex
   rather than live's float. */
body.woocommerce-cart .jaCart .ja_reservation, body.woocommerce-checkout .jaCart .ja_reservation{
  display: flex;
  align-items: center;
  gap: 10px;
}

body.woocommerce-cart .jaCart .ja_reservation a.remove, body.woocommerce-checkout .jaCart .ja_reservation a.remove{
  flex: 0 0 auto;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 24px;
  height: 24px;
  margin: 0;
  padding: 0;
  border: 0;
  border-radius: 50%;
  background: #191919;
  color: var(--iz-booking-white) !important;
  font-size: 18px;
  line-height: 1;
  font-weight: 700;
  text-decoration: none !important;
}

body.woocommerce-cart .jaCart .ja_reservation a.remove:hover, body.woocommerce-cart .jaCart .ja_reservation a.remove:focus, body.woocommerce-checkout .jaCart .ja_reservation a.remove:hover, body.woocommerce-checkout .jaCart .ja_reservation a.remove:focus{
  background: var(--iz-booking-red);
  color: var(--iz-booking-white) !important;
}

/* IZ-T168297: a.remove inherits opacity 0.5 from the theme/WooCommerce, which
   turns the near-black disc grey. Live never hits this because its theme does
   not dim the control. Force full opacity so #191919 renders as intended. */
body.woocommerce-cart .jaCart .ja_reservation a.remove, body.woocommerce-checkout .jaCart .ja_reservation a.remove, body.woocommerce-cart .jaCart .ja_reservation a.remove:hover, body.woocommerce-cart .jaCart .ja_reservation a.remove:focus, body.woocommerce-checkout .jaCart .ja_reservation a.remove:hover, body.woocommerce-checkout .jaCart .ja_reservation a.remove:focus{
  opacity: 1 !important;
}

/* IZ-T168297: mobile stacked labels.
   The base rule .jaCart .ja_data > div (0,3,2) outranks a plain
   .jaCart .ja_reservation_mob (0,3,1), so only display:block was getting
   through and the labels inherited the dark body colour at full size. Live
   qualifies these as .ja_data > div.<name>_mob to win on specificity; match
   that, and match live by leaving the label size alone. */
@media (max-width: 600px){
  body.woocommerce-cart .jaCart .ja_data > div.ja_reservation_mob, body.woocommerce-cart .jaCart .ja_data > div.ja_date_mob, body.woocommerce-cart .jaCart .ja_data > div.ja_time_mob, body.woocommerce-cart .jaCart .ja_data > div.ja_details_mob, body.woocommerce-cart .jaCart .ja_data > div.ja_total_mob, body.woocommerce-checkout .jaCart .ja_data > div.ja_reservation_mob, body.woocommerce-checkout .jaCart .ja_data > div.ja_date_mob, body.woocommerce-checkout .jaCart .ja_data > div.ja_time_mob, body.woocommerce-checkout .jaCart .ja_data > div.ja_details_mob, body.woocommerce-checkout .jaCart .ja_data > div.ja_total_mob{
    display: block;
    color: var(--iz-booking-red);
    padding-top: 10px;
  }
}

/* IZ-T168297: centre the remove glyph exactly.
   The line box is centred correctly, but the multiplication-sign glyph's ink
   sits ~6.5px above the baseline with an 8x8 ink box inside a 24px disc, so it
   reads as high and left. That offset is a property of the font, and the
   control falls back to the system sans stack rather than Saira, so a nudge
   would be fragile. Draw the cross instead: geometry is exact and font
   independent. The character stays in the DOM for assistive tech, sized to
   zero rather than removed. */
body.woocommerce-cart .jaCart .ja_reservation a.remove, body.woocommerce-checkout .jaCart .ja_reservation a.remove{
  position: relative;
  font-size: 0 !important;
  line-height: 0 !important;
}

body.woocommerce-cart .jaCart .ja_reservation a.remove::before, body.woocommerce-cart .jaCart .ja_reservation a.remove::after, body.woocommerce-checkout .jaCart .ja_reservation a.remove::before, body.woocommerce-checkout .jaCart .ja_reservation a.remove::after{
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  width: 11px;
  height: 2px;
  border-radius: 1px;
  background: var(--iz-booking-white);
}

body.woocommerce-cart .jaCart .ja_reservation a.remove::before, body.woocommerce-checkout .jaCart .ja_reservation a.remove::before{
  transform: translate(-50%, -50%) rotate(45deg);
}

body.woocommerce-cart .jaCart .ja_reservation a.remove::after, body.woocommerce-checkout .jaCart .ja_reservation a.remove::after{
  transform: translate(-50%, -50%) rotate(-45deg);
}

/* IZ-T168297: Astra draws the remove control's ring with
   .woocommerce-js a.remove::before{ inset:0; border:1px solid ...; }
   Our bar rule wins on size and background but inherited that 1px border, so
   ::before rendered as a dark stroke while ::after stayed white. Clear the
   border and Astra's inset, and kill its transition so the cross cannot
   animate on hover. */
body.woocommerce-cart .jaCart .ja_reservation a.remove::before, body.woocommerce-cart .jaCart .ja_reservation a.remove::after, body.woocommerce-checkout .jaCart .ja_reservation a.remove::before, body.woocommerce-checkout .jaCart .ja_reservation a.remove::after{
  inset: auto;
  top: 50%;
  left: 50%;
  right: auto;
  bottom: auto;
  border: 0 !important;
  border-radius: 1px;
  transition: none !important;
  background: var(--iz-booking-white);
}

body.woocommerce-cart .jaCart .ja_reservation a.remove:hover::before, body.woocommerce-cart .jaCart .ja_reservation a.remove:hover::after, body.woocommerce-checkout .jaCart .ja_reservation a.remove:hover::before, body.woocommerce-checkout .jaCart .ja_reservation a.remove:hover::after{
  border-color: transparent !important;
  background: var(--iz-booking-white);
}

/* IZ-T168297: match live's heavier cross weight. Live draws it as a 24px bold
   glyph; our bars were 2px, which read thinner. 3px on an 11px arm is the
   closest match without the cross crowding the 24px disc. */
body.woocommerce-cart .jaCart .ja_reservation a.remove::before, body.woocommerce-cart .jaCart .ja_reservation a.remove::after, body.woocommerce-checkout .jaCart .ja_reservation a.remove::before, body.woocommerce-checkout .jaCart .ja_reservation a.remove::after{
  width: 12px;
  height: 3px;
  border-radius: 1.5px;
}

/* --- Karla 182427: checkout heading parity --- */
body.woocommerce-checkout:not(.woocommerce-order-received) h1.entry-title{
    font-size: 34px;
}
body.woocommerce-checkout:not(.woocommerce-order-received) .woocommerce-billing-fields > h3{
    text-transform: uppercase;
}
body.woocommerce-checkout:not(.woocommerce-order-received) .iz-whos-coming h2{
    font-size: 26px !important;
    line-height: normal !important;
}
body.woocommerce-checkout:not(.woocommerce-order-received) .woocommerce-form-coupon-toggle{
    display: none;
}
body.woocommerce-checkout:not(.woocommerce-order-received) .ja_checkout_legals h1{
    display: none;
}


/* --- Karla 182427: checkout booking summary replaces the stock review table --- */
body.woocommerce-checkout:has(.jaSummaryCheckout) #order_review_heading,
body.woocommerce-checkout:has(.jaSummaryCheckout) .woocommerce-checkout-review-order-table {
    display: none;
}
/* Ticket 168297: this full-width treatment belongs to every checkout carrying a
   booking, not only the ones where our own panel renders. A mixed cart (booking
   plus a gift card) keeps WooCommerce's own review table, while .iz-has-booking
   already makes #customer_details full width, so gating this on
   :has(.jaSummaryCheckout) stranded the order panel in Astra's 517px right
   float with the rest of the page empty beside it. .iz-has-booking is a
   superset of :has(.jaSummaryCheckout) on checkout, so the booking-only layout
   is unchanged and both paths now share one rule. */
body.woocommerce-checkout.iz-has-booking:not(.woocommerce-order-received) #order_review_heading,
body.woocommerce-checkout.iz-has-booking:not(.woocommerce-order-received) #order_review {
    float: none;
    width: 100%;
    clear: both;
}
/* Booking checkouts hide the review heading, so Astra's panel border has no
   top edge and its 2em inset has nothing to justify it. Remove both.
   !important is required: Astra's own rule carries two IDs and wins otherwise. */
body.woocommerce-checkout:has(.jaSummaryCheckout) #order_review {
    padding: 0 !important;
    border: 0 !important;
}
body.woocommerce-checkout:not(.woocommerce-order-received) #payment {
    clear: both;
}

/* Live parity (jumpabout-style.css:948, top level, not in a media query):
   the checkout total row spans the full width so the BOOKING TOTAL cluster
   sits flush right. The 40% base rule is correct for the cart only, where
   the coupon block occupies the other 60%. */
body.woocommerce-checkout #order_review .jaSummary .ja_checkout_total_row {
    width: 100%;
}


/* --- Karla 182427: make DOPBSP's legacy sprite next arrow round on test2 --- */
body.postid-34 .DOPBSPCalendar-navigation .dopbsp-next-btn,
body.postid-424 .DOPBSPCalendar-navigation .dopbsp-next-btn {
    box-sizing: border-box;
    width: 40px;
    height: 40px;
    background-image: none !important;
    background-color: transparent !important;
    background-repeat: no-repeat;
    border: 2px solid var(--iz-booking-white);
    border-radius: 50%;
}
body.postid-34 .DOPBSPCalendar-navigation .dopbsp-next-btn::after,
body.postid-424 .DOPBSPCalendar-navigation .dopbsp-next-btn::after {
    content: "";
    position: absolute;
    top: 50%;
    left: 50%;
    width: 10px;
    height: 10px;
    border-top: 2px solid var(--iz-booking-white);
    border-right: 2px solid var(--iz-booking-white);
    transform: translate(-60%, -50%) rotate(45deg);
}


/* --- Karla 182427: retain the full mobile home hero, including its navy info bar --- */
@media (max-width: 600px) {
    body.home .elementor-element.elementor-element-46a143f {
        height: auto !important;
        min-height: 0 !important;
        aspect-ratio: 1870 / 841 !important;
    }
}


/* --- Karla 182427: match the active DOPBSP previous-month control to next --- */
body.postid-34 .DOPBSPCalendar-navigation .dopbsp-previous-btn,
body.postid-424 .DOPBSPCalendar-navigation .dopbsp-previous-btn {
    box-sizing: border-box;
    width: 40px;
    height: 40px;
    background-image: none !important;
    background-color: transparent !important;
    background-repeat: no-repeat;
    border: 2px solid var(--iz-booking-white);
    border-radius: 50%;
}
body.postid-34 .DOPBSPCalendar-navigation .dopbsp-previous-btn::after,
body.postid-424 .DOPBSPCalendar-navigation .dopbsp-previous-btn::after {
    content: "";
    position: absolute;
    top: 50%;
    left: 50%;
    width: 10px;
    height: 10px;
    border-top: 2px solid var(--iz-booking-white);
    border-right: 2px solid var(--iz-booking-white);
    transform: translate(-40%, -50%) rotate(-135deg);
}


/* --- Karla 182427: desktop booking checkout form layout, matching live --- */
@media (min-width: 922px) {
    body.woocommerce-checkout.iz-has-booking form.checkout #customer_details {
        display: flex;
        float: none;
        width: 100%;
        gap: 4%;
    }

    body.woocommerce-checkout.iz-has-booking form.checkout #customer_details > .col-1,
    body.woocommerce-checkout.iz-has-booking form.checkout #customer_details > .col-2 {
        float: none;
        width: 48%;
    }

    body.woocommerce-checkout.iz-has-booking .woocommerce-billing-fields__field-wrapper > .form-row {
        clear: both;
        display: flex;
        align-items: flex-start;
        width: 100%;
    }

    body.woocommerce-checkout.iz-has-booking .woocommerce-billing-fields__field-wrapper > .form-row > label {
        box-sizing: border-box;
        flex: 0 0 40%;
        width: 40%;
        padding: 14px 4% 0 0;
        text-transform: uppercase;
    }

    body.woocommerce-checkout.iz-has-booking .woocommerce-billing-fields__field-wrapper > .form-row > .woocommerce-input-wrapper {
        flex: 0 0 56%;
        width: 56%;
    }

    body.woocommerce-checkout.iz-has-booking #customer_details .col-2 .woocommerce-additional-fields > h3 {
        display: none;
    }

    body.woocommerce-checkout.iz-has-booking #order_comments_field label {
        display: block;
        width: 100%;
        text-transform: uppercase;
    }

    body.woocommerce-checkout.iz-has-booking #order_comments_field textarea {
        box-sizing: border-box;
        width: 100%;
        height: 176px;
    }
}

body.woocommerce-checkout.iz-has-booking .iz-whos-coming,
body.woocommerce-checkout.iz-has-booking .ja_checkout_legals {
    clear: both;
    float: none;
    width: 100%;
}


/* --- Karla 168297: booking checkout eWAY desktop field layout, matching live --- */
@media (min-width: 922px) {
    body.woocommerce-checkout.iz-has-booking #payment,
    body.woocommerce-checkout.iz-has-booking #payment .payment_box {
        background: transparent;
    }

    body.woocommerce-checkout.iz-has-booking #payment ul.payment_methods {
        padding: 0;
        border-bottom: 0;
    }

    body.woocommerce-checkout.iz-has-booking #payment .payment_box {
        width: 100%;
        margin: 0;
        padding: 0;
    }

    body.woocommerce-checkout.iz-has-booking #payment .payment_box::before,
    body.woocommerce-checkout.iz-has-booking #payment .payment_box::after {
        display: none;
    }

    body.woocommerce-checkout.iz-has-booking #payment .payment_box fieldset,
    body.woocommerce-checkout.iz-has-booking #payment .payment_box .form-row {
        margin: 0 0 8px;
        padding: 0;
        border: 0;
    }

    body.woocommerce-checkout.iz-has-booking #payment .payment_box label {
        box-sizing: border-box;
        float: left;
        width: 170px;
        padding-top: 10px;
        text-transform: uppercase;
    }

    body.woocommerce-checkout.iz-has-booking #payment .payment_box input {
        box-sizing: border-box;
        float: left;
        width: 100%;
        max-width: 250px;
        margin-right: 0;
        border: solid 1px #cccccc;
    }

    body.woocommerce-checkout.iz-has-booking #payment .payment_box input.wc-credit-card-form-card-cvc,
    body.woocommerce-checkout.iz-has-booking #payment .payment_box input.wc-credit-card-form-card-expiry {
        max-width: 100px;
    }
}


/* --- Karla 168297: stack expiry and CVC rows in live payment order --- */
@media (min-width: 922px) {
    body.woocommerce-checkout.iz-has-booking #payment .payment_box .form-row-first,
    body.woocommerce-checkout.iz-has-booking #payment .payment_box .form-row-last {
        clear: both;
        float: left;
        width: 100%;
    }
}

/* ---------------------------------------------------------------------------
   ticket-168297-applied-coupon: the all-bookings rule above hides
   .cart-collaterals, taking WooCommerce's applied-coupon row and its [Remove]
   link with it, so an applied voucher changed the total with no confirmation.
   BookingSummaryRenderer re-emits that row inside .jaSummary. Hidden by
   default and revealed only on .iz-cart-all-bookings, so a mixed cart, where
   the native totals box is visible, never shows the coupon twice.
   --------------------------------------------------------------------------- */
body.woocommerce-cart .jaSummary .ja_coupon_applied{ display: none; }

body.woocommerce-cart.iz-cart-all-bookings .jaSummary .ja_coupon_applied{
  display: block;
  clear: both;
  float: left;
  width: 100%;
  margin-bottom: 20px;
  color: var(--iz-booking-ink);
  font-size: 20px;
  line-height: normal;
  font-weight: 700;
  text-transform: uppercase;
  text-align: right;
}

body.woocommerce-cart.iz-cart-all-bookings .jaSummary .ja_coupon_applied a{
  margin-left: 8px;
  font-size: 16px;
  font-weight: 400;
  text-transform: none;
}


/* --- Ticket 168297: brand WooCommerce's own order review on a MIXED cart ------
   A mixed cart (booking plus a gift card) keeps WooCommerce's review table,
   which otherwise renders as stock Astra beside a fully branded page. These
   rules restyle that table in the language of .jaCart: 4px blue rules, red
   uppercase column headings, bold ink values.

   Scoped with :not(:has(.jaSummaryCheckout)) so it can only match a mixed
   cart. A booking-only checkout renders our own panel and hides this table,
   and a gift-card-only checkout carries no .iz-has-booking, so neither is
   touched.

   Body cells are deliberately NOT uppercased. The band can uppercase its
   values because they are a reservation number, a date and a time; this table
   also carries the gift card recipient's name and email, and rendering an
   address as DAMIEN@DREAMIT.AU looks like a defect on the customer's own data.
   ------------------------------------------------------------------------- */
/* border-top and font-size need !important, measured rather than assumed.
   font-size loses to an inline rule "body.woocommerce h3 { font-size:26px
   !important }", which no amount of specificity beats. border-top loses to an
   inline rule "form #order_review_heading:not(.elementor-widget-woocommerce-
   checkout-page #order_review_heading)", which carries two IDs to this rule's
   one. Neither competitor is Astra. Every other declaration here wins on
   specificity and is deliberately left without !important. */
body.woocommerce-checkout.iz-has-booking:not(:has(.jaSummaryCheckout)) #order_review_heading {
    border-top: 4px solid var(--iz-booking-blue) !important;
    margin-top: 24px;
    padding-top: 24px;
    margin-bottom: 20px;
    color: var(--iz-booking-ink);
    font-size: 25px !important;
    line-height: normal;
    text-transform: uppercase;
    font-weight: 700;
}

body.woocommerce-checkout.iz-has-booking:not(:has(.jaSummaryCheckout)) #order_review .woocommerce-checkout-review-order-table > thead > tr > th {
    color: var(--iz-booking-red);
    font-size: 20px;
    line-height: 21px;
    text-transform: uppercase;
    font-weight: 700;
    border: 0;
    padding: 0 0 10px;
}

body.woocommerce-checkout.iz-has-booking:not(:has(.jaSummaryCheckout)) #order_review .woocommerce-checkout-review-order-table > tbody > tr > td {
    color: var(--iz-booking-ink);
    font-size: 20px;
    line-height: 22px;
    font-weight: 700;
    border: 0;
    padding: 14px 0;
}

body.woocommerce-checkout.iz-has-booking:not(:has(.jaSummaryCheckout)) #order_review .woocommerce-checkout-review-order-table > tbody > tr:last-child > td {
    border-bottom: 4px solid var(--iz-booking-blue);
    padding-bottom: 20px;
}

body.woocommerce-checkout.iz-has-booking:not(:has(.jaSummaryCheckout)) #order_review .woocommerce-checkout-review-order-table > tfoot > tr > th {
    color: var(--iz-booking-ink);
    font-size: 20px;
    line-height: 22px;
    text-transform: uppercase;
    font-weight: 700;
    border: 0;
    padding: 12px 0;
}

body.woocommerce-checkout.iz-has-booking:not(:has(.jaSummaryCheckout)) #order_review .woocommerce-checkout-review-order-table > tfoot > tr > td {
    color: var(--iz-booking-ink);
    font-size: 20px;
    line-height: 22px;
    font-weight: 700;
    text-align: right;
    border: 0;
    padding: 12px 0;
}

body.woocommerce-checkout.iz-has-booking:not(:has(.jaSummaryCheckout)) #order_review .woocommerce-checkout-review-order-table > tfoot > tr.order-total > th,
body.woocommerce-checkout.iz-has-booking:not(:has(.jaSummaryCheckout)) #order_review .woocommerce-checkout-review-order-table > tfoot > tr.order-total > td {
    font-size: 25px;
    line-height: normal;
    padding-top: 18px;
}


/* --- Ticket 168297: brand WooCommerce's own cart table on a NON booking-only
   cart ------------------------------------------------------------------------
   A booking-only cart hides the native table (line ~349) and renders .jaCart in
   its place. Every other cart, a mixed booking-plus-gift-card one or a
   gift-card-only one, keeps the native table, which otherwise renders as stock
   Astra inside a fully branded page. These rules restyle it in the language of
   .jaCart: 4px blue rules, red uppercase column headings, bold ink values.

   Child combinators throughout. The booking row embeds its own nested tables
   for Booking Date / Start at / Attendees, and a descendant selector reaches
   into them, which on the checkout page painted 4px blue rules across the
   middle of that block before it was caught.

   Body cells are deliberately NOT uppercased: this table carries the gift card
   recipient's name and email, and rendering an address as DAMIEN@DREAMIT.AU
   looks like a defect on the customer's own data.

   The "Have a coupon code?" heading and its helper sentence are markup that
   summaryMarkup() emits, not something WooCommerce renders, so they do not
   appear here. Adding them would be a PHP change, not a CSS one.
   ------------------------------------------------------------------------- */
body.woocommerce-cart:not(.iz-cart-all-bookings) form.woocommerce-cart-form table.shop_table {
    border: 0;
    border-top: 4px solid var(--iz-booking-blue);
    border-collapse: collapse;
    margin-top: 24px;
    padding-top: 24px;
}

body.woocommerce-cart:not(.iz-cart-all-bookings) form.woocommerce-cart-form table.shop_table > thead > tr > th {
    color: var(--iz-booking-red);
    font-size: 20px;
    line-height: 21px;
    text-transform: uppercase;
    font-weight: 700;
    border: 0;
    padding: 24px 0 10px;
}

body.woocommerce-cart:not(.iz-cart-all-bookings) form.woocommerce-cart-form table.shop_table > tbody > tr.cart_item > td {
    color: var(--iz-booking-ink);
    font-size: 20px;
    line-height: 22px;
    font-weight: 700;
    border: 0;
    padding: 14px 0;
}

/* The closing rule under the cart items rides on the actions row, not on the
   last item. tr.cart_item:last-of-type matches nothing at all: :last-of-type
   filters by element type rather than class, and WooCommerce places the
   td.actions row last inside the same tbody, so the last tr is never a cart
   item. Measured as a missing border before this was corrected. */
body.woocommerce-cart:not(.iz-cart-all-bookings) form.woocommerce-cart-form table.shop_table > tbody > tr > td.actions {
    border: 0;
    border-top: 4px solid var(--iz-booking-blue);
    padding: 24px 0 0;
}

body.woocommerce-cart:not(.iz-cart-all-bookings) form.woocommerce-cart-form table.shop_table > tbody > tr > td.actions .coupon input.input-text {
    padding: 15px 10px;
    box-sizing: border-box;
}

body.woocommerce-cart:not(.iz-cart-all-bookings) form.woocommerce-cart-form table.shop_table > tbody > tr > td.actions button.button {
    background: var(--iz-booking-red);
    color: var(--iz-booking-white);
    text-transform: uppercase;
    font-weight: 700;
    border: 0;
    padding: 15px 26px;
}

body.woocommerce-cart:not(.iz-cart-all-bookings) .cart-collaterals .cart_totals > table.shop_table > tbody > tr > th {
    color: var(--iz-booking-ink);
    font-size: 20px;
    line-height: 22px;
    text-transform: uppercase;
    font-weight: 700;
    border: 0;
    padding: 12px 0;
}

body.woocommerce-cart:not(.iz-cart-all-bookings) .cart-collaterals .cart_totals > table.shop_table > tbody > tr > td {
    color: var(--iz-booking-ink);
    font-size: 20px;
    line-height: 22px;
    font-weight: 700;
    text-align: right;
    border: 0;
    padding: 12px 0;
}

body.woocommerce-cart:not(.iz-cart-all-bookings) .cart-collaterals .cart_totals > table.shop_table > tbody > tr.order-total > th,
body.woocommerce-cart:not(.iz-cart-all-bookings) .cart-collaterals .cart_totals > table.shop_table > tbody > tr.order-total > td {
    font-size: 25px;
    line-height: normal;
    padding-top: 18px;
}


/* Ticket 168297: the Cart totals panel is the last stock element on a non
   booking-only cart. The frame and the grey band live on the h2 itself
   (measured: background rgb(251,251,251), padding 30px 43px, blue 43px), so
   the heading is restyled to match .jaCart h3 and the wrapper chrome removed.
   Both .cart-collaterals and .cart_totals are neutralised because the outer
   border sits on one of them; clearing both is harmless and avoids guessing. */
body.woocommerce-cart:not(.iz-cart-all-bookings) .cart-collaterals,
body.woocommerce-cart:not(.iz-cart-all-bookings) .cart-collaterals .cart_totals {
    border: 0;
    background: transparent;
}

/* font-size needs !important, measured not assumed: an inline rule
   "body.woocommerce h2, body.woocommerce-page h2, body.page-id-23 h2
   { font-size:43px !important }" wins, and !important beats any specificity.
   Every other declaration in this rule wins on its own and is left alone. */
body.woocommerce-cart:not(.iz-cart-all-bookings) .cart-collaterals .cart_totals h2 {
    color: var(--iz-booking-ink);
    font-size: 25px !important;
    line-height: normal;
    text-transform: uppercase;
    font-weight: 700;
    background: transparent;
    padding: 0;
    margin: 0 0 20px;
}

body.woocommerce-cart:not(.iz-cart-all-bookings) .wc-proceed-to-checkout a.checkout-button {
    background: var(--iz-booking-red);
    color: var(--iz-booking-white);
    text-transform: uppercase;
    font-weight: 700;
}


/* --- Ticket 168297: label for the native coupon field on a non booking-only
   cart ------------------------------------------------------------------------
   No cart-type predicate in these selectors on purpose. renderCartCouponIntro()
   emits this row only when it should exist, so the PHP gate is the single
   source of truth and there is no second condition that can drift out of step
   with it. That exact drift, between a PHP test and a CSS test meant to agree,
   caused every fault fixed earlier in this ticket.
   ------------------------------------------------------------------------- */
form.woocommerce-cart-form table.shop_table > tbody > tr.iz-coupon-intro > td {
    border: 0;
    border-top: 4px solid var(--iz-booking-blue);
    padding: 24px 0 0;
}

form.woocommerce-cart-form table.shop_table > tbody > tr.iz-coupon-intro .iz-coupon-intro-title {
    display: block;
    color: var(--iz-booking-ink);
    font-size: 25px;
    line-height: normal;
    text-transform: uppercase;
    font-weight: 700;
    margin-bottom: 8px;
}

form.woocommerce-cart-form table.shop_table > tbody > tr.iz-coupon-intro .iz-coupon-intro-help {
    display: block;
    color: var(--iz-booking-ink);
    font-size: 16px;
    line-height: 22px;
    font-weight: 400;
}

/* The 4px rule closes the item list. With this row present it belongs here, so
   the actions row drops its own. With the row absent (hook removed, plugin
   disabled) the existing rule on td.actions still draws it, which is the
   fail-open half of the design. */
body.woocommerce-cart:not(.iz-cart-all-bookings) form.woocommerce-cart-form table.shop_table > tbody > tr.iz-coupon-intro + tr > td.actions {
    border-top: 0;
    padding-top: 16px;
}
