/*
 * pcbr-commerce.css — generated by scripts/build-css.sh. Do not edit.
 * Edit the sources in assets/css/src/ and re-run the script.
 */

/* == src/commerce.css == */
/**
 * Cart, reservation summary and thank-you (design v2, plan steps V5 and V6).
 * Only what the commerce markup adds on top of the shared primitives: the cart's two columns,
 * the promoted pickup block, the order-item meta list, and the confirmation page.
 * Checkout sections live in checkout.css; woo-scope.css stays last in the bundle.
 */

/* -- Cart ---------------------------------------------------------------- */
.pcbr-commerce-content { min-width: 0; }
@media (min-width: 1024px) {
  .pcbr-cart { grid-template-columns: minmax(0, 1fr) var(--pcbr-commerce-col); gap: var(--pcbr-commerce-gap); }
}
.pcbr-cart__items { gap: var(--pcbr-space-6); }
.pcbr-cart__form, .pcbr-cart__aside { display: grid; gap: var(--pcbr-space-4); min-width: 0; }
.pcbr-cart__totals { gap: var(--pcbr-space-4); }
.pcbr-cart__coupon { padding: 0; }
.pcbr-cart__update { display: none; }
.pcbr-cart__empty {
  max-width: 544px; margin-inline: auto; justify-items: center; text-align: center;
  gap: var(--pcbr-space-3); padding: var(--pcbr-space-9) var(--pcbr-space-5) var(--pcbr-space-6);
}
.pcbr-cart__empty p { margin: 0; color: var(--pcbr-ink-2); }
@media (max-width: 1023.98px) {
  .pcbr-cart { padding-bottom: 88px; }
  .pcbr-cart__aside { order: 0; }
  .woocommerce-cart .pcbr-footer { padding-bottom: calc(64px + var(--pcbr-safe-bottom) + var(--pcbr-space-6)); }
  html:has(> body.woocommerce-cart) { scroll-padding-bottom: calc(64px + var(--pcbr-safe-bottom) + var(--pcbr-space-4)); }
  .pcbr-cart__bar .pcbr-bar__total { display: inline-flex; align-items: center; min-height: var(--pcbr-touch); }
  .pcbr-cart__bar .pcbr-bar__cta { flex-shrink: 1; }
}
@media (min-width: 1024px) { .pcbr-cart__aside { top: var(--pcbr-sticky-top); } }

/* -- Reservation summary ------------------------------------------------- */
.pcbr-summary__headtext { display: grid; gap: var(--pcbr-space-1); flex: 1 1 auto; min-width: 0; }
.pcbr-summary__meta { margin: 0; font-size: var(--pcbr-fs-small); line-height: var(--pcbr-lh-small); color: var(--pcbr-ink-2); }
.pcbr-summary__pickup {
  display: grid; gap: var(--pcbr-space-1); padding: var(--pcbr-space-3);
  border-radius: var(--pcbr-r-surface); background: var(--pcbr-surface-2);
}
.pcbr-summary__pickupvalue { margin: 0; font-size: var(--pcbr-fs-body); line-height: var(--pcbr-lh-body); font-weight: var(--pcbr-weight-strong); color: var(--pcbr-ink); }
.pcbr-summary__actions { align-items: center; min-height: var(--pcbr-touch); gap: var(--pcbr-space-5); }
.pcbr-summary__actions .pcbr-link, .pcbr-summary__foot .pcbr-link { display: inline-flex; align-items: center; min-height: var(--pcbr-touch); padding-inline: 0; }
.pcbr-cosec__edit { min-height: var(--pcbr-touch); }
.pcbr-summary__remove { color: var(--pcbr-ink-3); }
.pcbr-summary__remove:hover { color: var(--pcbr-ink); }
.pcbr .woocommerce a.remove.pcbr-summary__remove {
  display: inline-flex; align-items: center; width: auto; height: auto; min-height: var(--pcbr-touch);
  padding: 0; border-radius: 0; background: none;
  font-size: var(--pcbr-fs-small); line-height: var(--pcbr-lh-small); font-weight: var(--pcbr-weight-medium);
  text-decoration: underline;
}
.pcbr .woocommerce a.remove.pcbr-summary__remove:hover { background: none; }
.pcbr-summary__toggle {
  flex: 0 0 auto; width: auto; min-height: var(--pcbr-touch); padding-left: var(--pcbr-space-3);
  font-size: var(--pcbr-fs-small); font-weight: var(--pcbr-weight-strong); color: var(--pcbr-accent);
}
.pcbr-summary--collapsed .pcbr-summary__title { font-size: var(--pcbr-fs-small); line-height: var(--pcbr-lh-small); }

/* Six labelled rows inside receipts, My Account and the order emails. */
.pcbr-itemmeta { display: grid; gap: var(--pcbr-space-2); margin: var(--pcbr-space-2) 0 0; padding: 0; list-style: none; }
.pcbr-itemmeta li, .pcbr-itemmeta > div { display: grid; gap: 2px; margin: 0; }
.pcbr-itemmeta .meta-label, .pcbr-itemmeta dt {
  font-size: var(--pcbr-fs-caption); line-height: var(--pcbr-lh-caption);
  font-weight: var(--pcbr-weight-strong); letter-spacing: var(--pcbr-tracking-label);
  text-transform: uppercase; color: var(--pcbr-ink-3);
}
.pcbr-itemmeta .meta-data, .pcbr-itemmeta dd { margin: 0; font-size: var(--pcbr-fs-body); line-height: var(--pcbr-lh-body); color: var(--pcbr-ink); }
.pcbr-itemmeta .meta-data p, .pcbr-itemmeta dd p { display: inline; margin: 0; }

/* -- Trip snapshot card (transfer lines in the cart and checkout cards) --
   The .pcbr-trip rules themselves live in summary.css (booking bundle), shared with the wizard's Review. */
.pcbr-summary--trip { gap: var(--pcbr-space-5); }
.pcbr-summary--trip .pcbr-summary__actions { margin-top: calc(-1 * var(--pcbr-space-2)); padding-top: 0; border-top: 0; min-height: 0; }
.pcbr-summary--trip .pcbr-summary__change { color: var(--pcbr-ink-2); font-weight: var(--pcbr-weight-medium); }
.pcbr-summary--trip .pcbr-trip__kind { margin-top: calc(-1 * var(--pcbr-space-3)); }
/* Checkout is a compact confirmation of what the traveller already reviewed: smaller stay line and pickup time. */
.pcbr-summary--trip .pcbr-trip__place .pcbr-trip__line--lead { font-size: var(--pcbr-fs-body); line-height: var(--pcbr-lh-body); }
.pcbr-summary--trip .pcbr-trip__place .pcbr-trip__line--lead .pcbr-trip__icon { margin-top: 3px; }
.pcbr-summary .pcbr-trip__line--time { font-size: var(--pcbr-fs-lead); line-height: var(--pcbr-lh-lead); }

/* -- Checkout aside ------------------------------------------------------ */
.pcbr-checkout__summary { display: grid; gap: var(--pcbr-space-4); }
.pcbr-checkout__prices { gap: var(--pcbr-space-4); }
.pcbr-checkout-mini__prices { display: grid; gap: var(--pcbr-space-3); margin-top: var(--pcbr-space-4); padding-top: var(--pcbr-space-4); border-top: 1px solid var(--pcbr-line); }
.pcbr-price__caption svg { width: 16px; height: 16px; vertical-align: -3px; color: var(--pcbr-success); }

/* -- The human line ------------------------------------------------------ */
.pcbr-human {
  display: flex; flex-wrap: wrap; align-items: center; gap: var(--pcbr-space-2); margin: 0;
  font-size: var(--pcbr-fs-small); line-height: var(--pcbr-lh-small); color: var(--pcbr-ink-2);
}
.pcbr-human svg { width: 20px; height: 20px; flex: 0 0 20px; color: var(--pcbr-ink-2); }
.pcbr-human a { display: inline-flex; align-items: center; min-height: var(--pcbr-touch); }

/* -- Help buttons (FB-13): WhatsApp, Email, Call ------------------------- */
.pcbr-help { display: grid; gap: var(--pcbr-space-3); }
.pcbr-help__title { margin: 0; font-size: var(--pcbr-fs-body); line-height: var(--pcbr-lh-body); font-weight: var(--pcbr-weight-strong); color: var(--pcbr-ink); }
.pcbr-help__grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--pcbr-space-3); }
.pcbr-help__btn {
  display: grid; justify-items: center; align-content: center; gap: var(--pcbr-space-1); min-height: 72px;
  padding: var(--pcbr-space-3) var(--pcbr-space-2); border: 1px solid var(--pcbr-line); border-radius: var(--pcbr-r-control);
  background: var(--pcbr-surface); color: var(--pcbr-ink); font-size: var(--pcbr-fs-small); line-height: var(--pcbr-lh-small); text-decoration: none;
}
.pcbr-help__btn:hover { border-color: var(--pcbr-ink-3); background: var(--pcbr-surface-2); color: var(--pcbr-ink); }
.pcbr-help__btn:focus-visible { outline: 0; box-shadow: var(--pcbr-ring-focus); }
.pcbr-help__icon { width: 22px; height: 22px; color: var(--pcbr-accent); }

/* -- Promo code at checkout (owner, 2026-10-19): a quiet text link under the payment options, above the terms and
   the button; the field opens beneath it. It replaced the accordion at the top of the page. ------------------- */
.pcbr-checkout__promo { margin: 0 0 var(--pcbr-space-4); }
.pcbr-checkout__promo-toggle {
  display: inline-flex; align-items: center; min-height: var(--pcbr-touch); padding: 0; background: none; border: 0; cursor: pointer;
  color: var(--pcbr-ink-2); font-size: var(--pcbr-fs-small); line-height: var(--pcbr-lh-small);
  text-decoration: underline; text-underline-offset: var(--pcbr-underline-offset);
}
.pcbr-checkout__promo-toggle:hover { color: var(--pcbr-ink); }
.pcbr-checkout__promo-toggle:focus-visible { outline: 0; border-radius: var(--pcbr-r-control); box-shadow: var(--pcbr-ring-focus); }
.pcbr-checkout__promo-body { padding-top: var(--pcbr-space-2); }
.pcbr-checkout__promo.is-busy .pcbr-checkout__promo-body { opacity: .6; }
.pcbr-checkout__coupon-row { display: flex; flex-wrap: wrap; align-items: end; gap: var(--pcbr-space-3); }
.pcbr-checkout__coupon-row .pcbr-field { flex: 1 1 220px; margin: 0; }
.pcbr-checkout__promo-msg { margin: var(--pcbr-space-2) 0 0; font-size: var(--pcbr-fs-small); line-height: var(--pcbr-lh-small); color: var(--pcbr-ink-2); }
.pcbr-checkout__promo-msg.is-error { color: var(--pcbr-error); }
.pcbr-checkout__promo-msg.is-success { color: var(--pcbr-success); }

/* -- Thank-you ----------------------------------------------------------- */
.pcbr-thanks { display: grid; gap: var(--pcbr-space-7); max-width: 720px; margin-inline: auto; }
.woocommerce-order-received .pcbr-page__title { max-width: 720px; margin-inline: auto; }
.woocommerce-order-pay :is(.pcbr-commerce-content, .pcbr-page__title) { max-width: 720px; margin-inline: auto; }
.pcbr-thanks .pcbr-status { font-size: var(--pcbr-fs-body); }
.pcbr-thanks .pcbr-status svg { width: 20px; height: 20px; flex: 0 0 20px; color: var(--pcbr-success); }
.pcbr-thanks__ref { display: flex; flex-wrap: wrap; align-items: center; gap: var(--pcbr-space-3); margin: 0; }
.pcbr-thanks__ref .pcbr-chip {
  height: var(--pcbr-touch); background: var(--pcbr-surface-2);
  font-family: var(--font-mono); font-variant-numeric: tabular-nums; letter-spacing: .02em;
}
.pcbr-thanks__ref .pcbr-chip::after {
  content: ""; width: 16px; height: 16px; flex: 0 0 16px;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20' fill='none' stroke='%234A4744' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='7' y='7' width='9.5' height='9.5' rx='2'/%3E%3Cpath d='M13 7V5.5a2 2 0 0 0-2-2H5.5a2 2 0 0 0-2 2V11a2 2 0 0 0 2 2H7'/%3E%3C/svg%3E") center / 16px no-repeat;
}
.pcbr-thanks__ref .pcbr-hint { font-size: var(--pcbr-fs-caption); line-height: var(--pcbr-lh-caption); }
.pcbr-thanks__next, .pcbr-thanks__bring, .pcbr-thanks__share { gap: var(--pcbr-space-3); }
.pcbr-thanks__bring p, .pcbr-thanks__share p { color: var(--pcbr-ink-2); }
.pcbr-thanks__share { padding: var(--pcbr-space-5); border-radius: var(--pcbr-r-surface); background: var(--pcbr-surface-2); }
.pcbr-steps { display: grid; gap: var(--pcbr-space-3); margin: 0; padding: 0; list-style: none; }
.pcbr-steps__item {
  position: relative; padding-left: var(--pcbr-space-5);
  font-size: var(--pcbr-fs-small); line-height: var(--pcbr-lh-small); color: var(--pcbr-ink-2);
}
.pcbr-steps__item::before {
  content: ""; position: absolute; left: 0; top: 6px; width: 8px; height: 8px;
  border-radius: var(--pcbr-r-full); background: var(--pcbr-accent);
}
.pcbr-steps__item strong { color: var(--pcbr-ink); font-weight: var(--pcbr-weight-strong); }

/* The receipt accordion holds Woo's own order table; it reads as plain hairline rows. */
.pcbr-thanks__receipt .pcbr-acc__btn { min-height: var(--pcbr-touch); }
.pcbr-thanks__receipt { max-width: 720px; margin: var(--pcbr-space-7) auto 0; }
.pcbr-thanks__receipt .pcbr-acc__btn .pcbr-hint { font-weight: var(--pcbr-weight-body); }
.pcbr .pcbr-thanks__receipt section.woocommerce-order-details { border: 0; padding: 0; }
.pcbr .pcbr-thanks__receipt table.shop_table {
  margin: 0; border: 0; border-radius: 0; background: none;
  font-size: var(--pcbr-fs-small); line-height: var(--pcbr-lh-small);
}
.pcbr .pcbr-thanks__receipt table.shop_table th, .pcbr .pcbr-thanks__receipt table.shop_table td {
  padding: var(--pcbr-space-2) 0; border-top: 1px solid var(--pcbr-line); vertical-align: top;
}
.pcbr .pcbr-thanks__receipt table.shop_table thead th { border-top: 0; }
.pcbr .pcbr-thanks__receipt table.shop_table .order-total th, .pcbr .pcbr-thanks__receipt table.shop_table .order-total td {
  font-size: var(--pcbr-fs-body); line-height: var(--pcbr-lh-body); font-weight: var(--pcbr-weight-strong);
}

/* Item titles inside the reservation summary are links; keep them in ink, not link blue. */
.pcbr-summary__headtext a, .pcbr-thanks .pcbr-summary a:not(.pcbr-btn) { color: var(--pcbr-ink); text-decoration: none; }

/* == src/checkout.css == */
/**
 * Checkout sections (design v2, plan step V5): the numbered .pcbr-cosec cards, WooCommerce's own
 * fields inside them, and the payment step as option cards.
 * pcbr-checkout.js owns .is-open / .is-complete and builds the Continue and Edit buttons, so every
 * state here is a class it can set. No important flag: the payment rules carry #payment instead.
 */
.pcbr-cosec {
  gap: var(--pcbr-space-4); padding: var(--pcbr-space-5);
  border: 1px solid var(--pcbr-line); border-radius: var(--pcbr-r-surface); background: var(--pcbr-surface);
}
/* Keep Woo's form and fragment hooks; replace Bootstrap's negative-margin columns at the composition boundary. */
.pcbr .woocommerce-checkout > .row {
  display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--pcbr-space-6); margin: 0; align-items: start;
}
.pcbr .woocommerce-checkout > .row::before, .pcbr .woocommerce-checkout > .row::after { display: none; }
.pcbr .woocommerce-checkout > .row > :is(.col-sm-8, .col-sm-4) { float: none; width: auto; min-width: 0; padding: 0; }
.pcbr .woocommerce-billing-fields__field-wrapper { display: grid; gap: var(--pcbr-space-4); }
@media (max-width: 1023.98px) { .pcbr .woocommerce-checkout > .row > .col-sm-4 { display: none; } }
@media (min-width: 1024px) {
  .pcbr .woocommerce-checkout > .row { grid-template-columns: minmax(0, 1fr) var(--pcbr-commerce-col); gap: var(--pcbr-commerce-gap); }
  .pcbr .woocommerce-checkout > .row > .col-sm-4 { position: sticky; top: var(--pcbr-sticky-top); }
  .pcbr .woocommerce-billing-fields__field-wrapper { gap: var(--pcbr-space-6); }
}
.pcbr-cosec__head { display: flex; align-items: center; gap: var(--pcbr-space-3); }
.pcbr-cosec__head .pcbr-section__title {
  display: flex; align-items: center; gap: var(--pcbr-space-3); flex: 1 1 auto; min-width: 0;
  font-size: var(--pcbr-fs-body); line-height: var(--pcbr-lh-body);
}
.pcbr-cosec__num {
  display: inline-flex; align-items: center; justify-content: center; position: relative;
  width: 28px; height: 28px; flex: 0 0 28px; border-radius: var(--pcbr-r-full);
  background: var(--pcbr-surface-2); color: var(--pcbr-ink-2);
  font-size: var(--pcbr-fs-caption); line-height: var(--pcbr-lh-caption); font-weight: var(--pcbr-weight-strong);
}
.pcbr-cosec__edit { flex: 0 0 auto; margin-left: auto; }
.pcbr-cosec__summary { margin: 0; padding-left: 40px; font-size: var(--pcbr-fs-small); line-height: var(--pcbr-lh-small); color: var(--pcbr-ink-2); }
.pcbr-cosec__lead { margin: 0; font-weight: var(--pcbr-weight-strong); }
.pcbr-cosec__body { display: grid; gap: var(--pcbr-space-4); }
.pcbr-cosec__body[hidden] { display: none; }
.pcbr-cosec__next { width: 100%; }

.pcbr-cosec.is-open { border-color: var(--pcbr-ink); }
.pcbr-cosec.is-complete .pcbr-cosec__num { background: var(--pcbr-accent-soft); color: transparent; }
.pcbr-cosec.is-complete .pcbr-cosec__num::after {
  content: ""; position: absolute; top: 7px; left: 10px; width: 6px; height: 11px;
  border: 2px solid var(--pcbr-accent); border-top: 0; border-left: 0; transform: rotate(45deg);
}
.pcbr-cosec.is-upcoming { background: var(--pcbr-surface-2); }
.pcbr-cosec.is-upcoming .pcbr-cosec__lead { display: none; }
.pcbr-cosec.is-upcoming .pcbr-section__title, .pcbr-cosec.is-upcoming .pcbr-cosec__lead { color: var(--pcbr-ink-3); }

/* The parent's "Billing details" heading duplicates section 1's own title: hidden from the first paint (the script used to remove it after load, which moved the form up). */
.pcbr .woocommerce-billing-fields > h3 { display: none; }

/* Woo's fields: the section body owns the rhythm, so the form-row's own margin goes. */
/* Woo's own `.form-row-first/last { width: 47%; float: left }` is for its two-column layout; the section body's grid
   places the columns from 600px, so under it every field is full width (iOS showed half-width name fields). */
.pcbr .woocommerce form .pcbr-cosec .form-row { display: grid; gap: var(--pcbr-space-2); width: auto; float: none; margin: 0; padding: 0; }
.pcbr .woocommerce form .pcbr-cosec .form-row label { line-height: var(--pcbr-lh-small); }
.pcbr .woocommerce form .pcbr-cosec .form-row .description::before,
.pcbr .woocommerce form .pcbr-cosec .form-row .description::after { display: none; }
.pcbr .woocommerce form .pcbr-cosec .form-row .pcbr-hint { display: block; margin: 0; padding: 0; background: none; color: var(--pcbr-ink-3); font-size: var(--pcbr-fs-small); line-height: var(--pcbr-lh-small); }
@media (min-width: 600px) {
  .pcbr-cosec__body { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .pcbr-cosec__body > * { grid-column: 1 / -1; }
  .pcbr-cosec__body > .form-row-first { grid-column: 1; }
  .pcbr-cosec__body > .form-row-last { grid-column: 2; }
}

/* -- Payment timing (PCA pattern, 2026-10-19): Pay now / Reserve now as two option cards, then the methods ------ */
.pcbr-timing { margin: 0 0 var(--pcbr-space-5); }
.pcbr-timing__options { grid-template-columns: 1fr; gap: var(--pcbr-space-3); }
.pcbr-timing__option { min-height: 0; }
/* The cards are <label>s inside the WooCommerce form, whose label rule would embolden the description. */
.pcbr .woocommerce form .pcbr-timing__option { font-weight: var(--pcbr-weight-body); line-height: var(--pcbr-lh-body); }
.pcbr-timing__option .pcbr-option__title { font-weight: var(--pcbr-weight-strong); }
.pcbr-timing__option .pcbr-option__meta { font-weight: var(--pcbr-weight-body); color: var(--pcbr-ink-2); }
.pcbr-timing__note { margin: 0 0 var(--pcbr-space-4); font-size: var(--pcbr-fs-small); line-height: var(--pcbr-lh-small); color: var(--pcbr-ink-2); }
.pcbr-timing__methods-heading { margin: 0 0 var(--pcbr-space-3); font-size: var(--pcbr-fs-body); line-height: var(--pcbr-lh-body); font-weight: var(--pcbr-weight-strong); color: var(--pcbr-ink); }
@media (min-width: 480px) { .pcbr-timing__options { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.pcbr-checkout__secure { margin: var(--pcbr-space-3) 0 0; text-align: center; font-size: var(--pcbr-fs-small); line-height: var(--pcbr-lh-small); color: var(--pcbr-ink-3); }

/* -- Payment: the gateways as a stack of option cards -------------------- */
#payment ul.payment_methods.pcbr-options { display: grid; gap: var(--pcbr-space-3); margin: 0; padding: 0; list-style: none; border: 0; }
#payment ul.payment_methods li.wc_payment_method.pcbr-option {
  display: grid; grid-template-columns: 20px minmax(0, 1fr); gap: 0 var(--pcbr-space-3);
  align-items: start; min-height: 0; line-height: var(--pcbr-lh-body); text-align: left;
}
#payment ul.payment_methods li.wc_payment_method.pcbr-option > input {
  grid-column: 1; grid-row: 1;
  position: static; inset: auto; width: 20px; height: 20px; margin: 2px 0 0;
  opacity: 1; accent-color: var(--pcbr-accent); cursor: pointer;
}
#payment ul.payment_methods li.wc_payment_method.pcbr-option > label {
  grid-column: 2; grid-row: 1; display: grid; gap: var(--pcbr-space-1); margin: 0; cursor: pointer;
  font-size: var(--pcbr-fs-body); line-height: var(--pcbr-lh-body);
  font-weight: var(--pcbr-weight-strong); color: var(--pcbr-ink);
}
#payment ul.payment_methods li.wc_payment_method.pcbr-option > label .pcbr-option__meta {
  font-size: var(--pcbr-fs-small); line-height: var(--pcbr-lh-small);
  font-weight: var(--pcbr-weight-body); color: var(--pcbr-ink-2);
}
#payment ul.payment_methods li.wc_payment_method .payment_box {
  grid-column: 1 / -1; width: auto; margin: var(--pcbr-space-4) 0 0; padding: 0;
  border-radius: 0; background: none; color: var(--pcbr-ink-2);
  font-size: var(--pcbr-fs-small); line-height: var(--pcbr-lh-small);
}
#payment ul.payment_methods li.wc_payment_method .payment_box::before { display: none; }
#payment ul.payment_methods li.wc_payment_method::before,
#payment ul.payment_methods li.wc_payment_method::after { display: none; }
#payment .wc-payment-form { min-width: 0; margin: 0; padding: 0; border: 0; }
#payment :is(.wc-stripe-gateway-container, .wc-stripe_cc-container) { min-width: 0; }
#payment .payment_box label { font-size: var(--pcbr-fs-small); line-height: var(--pcbr-lh-small); font-weight: var(--pcbr-weight-medium); }
#payment :is(#reservenow-card-element, #wc-stripe-card-element) { min-height: var(--pcbr-control-h); min-width: 0; }
#payment #reservenow-card-element {
  padding: var(--pcbr-space-3) 14px; margin-top: var(--pcbr-space-2);
  border: 1px solid var(--pcbr-ink-3); border-radius: var(--pcbr-r-control); background: var(--pcbr-surface);
}
#payment ul.payment_methods li.wc_payment_method .payment_box .form-row { margin: 0 0 var(--pcbr-space-3); }
#payment ul.payment_methods li.wc_payment_method .payment_box :is(input, select, textarea) {
  position: static; inset: auto; width: 100%; height: auto; opacity: 1;
}

/* -- Terms row and the place-order button -------------------------------- */
.pcbr .woocommerce .woocommerce-terms-and-conditions-wrapper { display: grid; gap: var(--pcbr-space-2); margin: 0; }
.pcbr .woocommerce .woocommerce-terms-and-conditions-wrapper a { text-decoration: underline; text-underline-offset: .15em; }
.pcbr .woocommerce form .woocommerce-terms-and-conditions-wrapper .form-row { margin: 0; }
.pcbr .woocommerce form .woocommerce-terms-and-conditions-wrapper label {
  display: block; position: relative; min-height: var(--pcbr-touch);
  margin: 0; padding: var(--pcbr-space-2) 0 var(--pcbr-space-2) var(--pcbr-space-7); cursor: pointer;
  font-size: var(--pcbr-fs-small); line-height: var(--pcbr-lh-small); font-weight: var(--pcbr-weight-body);
  letter-spacing: 0; text-transform: none; color: var(--pcbr-ink-2);
}
.pcbr .woocommerce form .woocommerce-terms-and-conditions-wrapper input[type="checkbox"] {
  position: absolute; inset-inline-start: 0; top: var(--pcbr-space-2);
  width: 20px; height: 20px; margin: 2px 0 0; accent-color: var(--pcbr-accent);
}
.pcbr .woocommerce #payment div.form-row.place-order { display: grid; gap: var(--pcbr-space-4); margin: var(--pcbr-space-6) 0 0; padding: 0; }
.pcbr .woocommerce #place_order { width: 100%; }
.pcbr-checkout__terms { padding-left: 0; }
.pcbr-terms__line { margin: 0; font-size: var(--pcbr-fs-small); line-height: var(--pcbr-lh-small); color: var(--pcbr-ink-2); }

/* Calm section hierarchy; WooCommerce still owns the fields and their validation. */
:where(.pcbr) .pcbr-cosec { border: 0; border-radius: 0; background: none; padding: var(--pcbr-space-5) 0; }
:where(.pcbr) .pcbr-cosec.is-upcoming { background: none; }
:where(.pcbr) .pcbr-cosec__summary { padding-left: 0; }
:where(.pcbr) .pcbr-cosec__num { background: var(--pcbr-surface-2); }
@keyframes pcbr-autofill { from { opacity: 1; } to { opacity: 1; } }
:where(.pcbr) input:autofill { animation-name: pcbr-autofill; animation-duration: 1ms; }
:where(.pcbr) input:-webkit-autofill { animation-name: pcbr-autofill; animation-duration: 1ms; }
@media (prefers-reduced-motion: no-preference) {
  :where(.pcbr) .pcbr-cosec__body:not([hidden]) { animation: pcbr-checkout-reveal 180ms ease-out; }
  @keyframes pcbr-checkout-reveal { from { opacity: .3; transform: translateY(4px); } to { opacity: 1; transform: translateY(0); } }
}

/* == src/woo-scope.css == */
/**
 * WooCommerce scope: cart, checkout and order-received on the parent's classic templates.
 * The only theme file allowed the important flag, and only where WooCommerce ships a rule we cannot
 * outrank by specificity alone (its button colours). Everything else is beaten with an ID or
 * an extra class. calendar.css carries five more, inherited from the port, against flatpickr's
 * inline positioning styles on mobile.
 */
.pcbr .woocommerce, .pcbr .woocommerce-page { color: var(--pcbr-ink); }
.woocommerce-cart .pcbr-main, .woocommerce-checkout .pcbr-main, .woocommerce-order-received .pcbr-main { padding-block: 0; }

.pcbr .woocommerce table.shop_table {
  border: 1px solid var(--pcbr-line); border-radius: var(--pcbr-r-surface);
  border-collapse: separate; border-spacing: 0; background: var(--pcbr-surface);
}
.pcbr .woocommerce table.shop_table th { font-size: var(--pcbr-fs-caption); letter-spacing: var(--pcbr-tracking-label); text-transform: uppercase; font-weight: var(--pcbr-weight-strong); color: var(--pcbr-ink-3); }
.pcbr .woocommerce table.shop_table td { border-top: 1px solid var(--pcbr-line); vertical-align: top; }
.pcbr .woocommerce table.shop_table .order-total td, .pcbr .woocommerce table.shop_table .order-total th { font-size: var(--pcbr-fs-money); line-height: var(--pcbr-lh-money); font-weight: var(--pcbr-weight-strong); color: var(--pcbr-ink); }
.pcbr .booking-item-description { margin: 2px 0; font-size: var(--pcbr-fs-small); line-height: var(--pcbr-lh-small); color: var(--pcbr-ink-2); }
.pcbr .booking-item-description strong, .pcbr .booking-cart-item-title { color: var(--pcbr-ink); font-weight: var(--pcbr-weight-strong); }
.pcbr .pcbr-cart-when { font-weight: var(--pcbr-weight-medium); }

.pcbr .woocommerce .cart_totals, .pcbr .woocommerce-order-received .woocommerce-order-details {
  border: 1px solid var(--pcbr-line); border-radius: var(--pcbr-r-surface); padding: var(--pcbr-space-4); background: var(--pcbr-surface);
}
.pcbr .woocommerce #order_review { padding: 0; margin-top: var(--pcbr-space-6); border: 0; background: none; position: static; }
.pcbr .woocommerce #payment { background: none; border-radius: 0; }

.pcbr .woocommerce .button, .pcbr .woocommerce button.button, .pcbr .woocommerce a.button, .pcbr .woocommerce #place_order {
  background: var(--pcbr-woo-btn, var(--pcbr-accent)) !important; /* Woo ships an inline-weighted background; --pcbr-woo-btn recolours one button without a second flag */
  color: #fff !important;
  min-height: var(--pcbr-control-h); padding: var(--pcbr-space-3) var(--pcbr-space-5); text-decoration: none; text-align: center; line-height: var(--pcbr-lh-body);
  display: inline-flex; align-items: center; justify-content: center;
  border: 0; border-radius: var(--pcbr-r-control);
  font-family: var(--pcbr-font); font-size: var(--pcbr-fs-body); font-weight: var(--pcbr-weight-strong);
}
.pcbr .woocommerce .button:hover, .pcbr .woocommerce button.button:hover, .pcbr .woocommerce #place_order:hover { background: var(--pcbr-woo-btn-hover, var(--pcbr-accent-hover)) !important; color: #fff; }
/* Readable final-action text in normal and hover states, using the approved accent palette (UX-009). */
.pcbr .woocommerce #place_order { --pcbr-woo-btn: var(--pcbr-accent); --pcbr-woo-btn-hover: var(--pcbr-accent-hover); }
.pcbr .woocommerce .button.alt, .pcbr .woocommerce button.button.alt, .pcbr .woocommerce #respond input#submit { background: var(--pcbr-accent); color: #fff; }
/* Woo forces red/white with important flags on remove links, including hover. */
.pcbr .woocommerce a.remove.pcbr-summary__remove { color: var(--pcbr-error) !important; }

.pcbr .woocommerce form .form-row { margin: 0 0 var(--pcbr-space-4); }
.pcbr .woocommerce form .form-row label { font-size: var(--pcbr-fs-small); line-height: var(--pcbr-lh-small); letter-spacing: 0; text-transform: none; font-weight: var(--pcbr-weight-medium); color: var(--pcbr-ink-2); }
.pcbr .woocommerce form .form-row input.input-text, .pcbr .woocommerce form .form-row select, .pcbr .woocommerce form .form-row textarea, .pcbr .woocommerce .select2-container .select2-selection--single {
  min-height: var(--pcbr-control-h); padding: 0 14px;
  border: 1px solid var(--pcbr-ink-3); border-radius: var(--pcbr-r-control);
  background: var(--pcbr-surface); color: var(--pcbr-ink);
  font-family: var(--pcbr-font); font-size: var(--pcbr-fs-body);
}
.pcbr .woocommerce form .form-row input.input-text:focus, .pcbr .woocommerce form .form-row select:focus, .pcbr .woocommerce form .form-row textarea:focus {
  outline: none; border-color: var(--pcbr-accent); box-shadow: var(--pcbr-ring-focus);
}
.pcbr .woocommerce form .form-row textarea { padding-block: var(--pcbr-space-3); }

.pcbr .woocommerce ul.payment_methods { margin: 0; padding: 0; list-style: none; border: 0; }
.pcbr .woocommerce ul.payment_methods li:not(.pcbr-option) { border-bottom: 1px solid var(--pcbr-line); padding: var(--pcbr-space-3) 0; }
.pcbr .woocommerce ul.payment_methods li label { font-weight: var(--pcbr-weight-strong); color: var(--pcbr-ink); }
.pcbr .woocommerce #payment div.payment_box { background: none; border-radius: 0; padding: 0; font-size: var(--pcbr-fs-small); color: var(--pcbr-ink-2); }
.pcbr .woocommerce #payment div.payment_box::before { display: none; }

.pcbr .woocommerce-message, .pcbr .woocommerce-info, .pcbr .woocommerce-error {
  border-top: 0; padding: var(--pcbr-space-4); border-radius: var(--pcbr-r-surface);
  background: var(--pcbr-surface-2); color: var(--pcbr-ink-2); font-size: var(--pcbr-fs-small); list-style: none;
}
.pcbr .woocommerce-error { background: var(--pcbr-error-soft); color: var(--pcbr-ink); }
.pcbr .woocommerce-message::before, .pcbr .woocommerce-info::before, .pcbr .woocommerce-error::before { display: none; }

/* A field Woo marks invalid keeps the error ring: the 48px rule above would otherwise repaint it. */
.pcbr .woocommerce form .form-row.woocommerce-invalid input.input-text,
.pcbr .woocommerce form .form-row.woocommerce-invalid select,
.pcbr .woocommerce form .form-row.woocommerce-invalid .select2-container .select2-selection {
  border-color: var(--pcbr-error); box-shadow: 0 0 0 3px var(--pcbr-error-soft);
}
.pcbr .woocommerce-NoticeGroup-checkout .woocommerce-error, .pcbr .woocommerce form .woocommerce-error {
  margin: 0 0 var(--pcbr-space-4); padding: var(--pcbr-space-4); border: 1px solid var(--pcbr-error);
  border-radius: var(--pcbr-r-surface); background: var(--pcbr-error-soft); color: var(--pcbr-ink);
}
.pcbr .woocommerce .select2-container .select2-selection--single .select2-selection__rendered { padding: 0; line-height: 46px; color: var(--pcbr-ink); }
.pcbr .woocommerce .select2-container .select2-selection--single .select2-selection__arrow { height: var(--pcbr-control-h); }

/* Account access uses Woo's own forms, with the same controls and a readable single-column measure. */
.woocommerce-account .woocommerce-ResetPassword { max-width: 720px; }
.pcbr .woocommerce:has(> .woocommerce-MyAccount-navigation) { display: grid; gap: var(--pcbr-space-6); align-items: start; }
.pcbr .woocommerce .woocommerce-MyAccount-navigation,
.pcbr .woocommerce .woocommerce-MyAccount-content { float: none; width: auto; min-width: 0; }
.pcbr .woocommerce .woocommerce-MyAccount-navigation ul { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--pcbr-space-1); list-style: none; margin: 0; padding: 0; }
.pcbr .woocommerce .woocommerce-MyAccount-navigation a {
  display: flex; align-items: center; min-height: var(--pcbr-touch); padding: var(--pcbr-space-2) var(--pcbr-space-3);
  border-radius: var(--pcbr-r-control); color: var(--pcbr-ink-2); font-size: var(--pcbr-fs-small); text-decoration: none;
}
.pcbr .woocommerce .woocommerce-MyAccount-navigation a:hover { background: var(--pcbr-surface-2); }
.pcbr .woocommerce .woocommerce-MyAccount-navigation .is-active a { background: var(--pcbr-accent-soft); color: var(--pcbr-accent); font-weight: var(--pcbr-weight-strong); }
.pcbr .woocommerce .woocommerce-MyAccount-content { display: grid; gap: var(--pcbr-space-4); }
.pcbr-account-order { display: grid; gap: var(--pcbr-space-4); }
.pcbr .woocommerce .woocommerce-customer-details .woocommerce-column__title { margin: 0 0 var(--pcbr-space-4); font-size: var(--pcbr-fs-h3); line-height: var(--pcbr-lh-h3); }
.pcbr .woocommerce .woocommerce-customer-details address { border: 1px solid var(--pcbr-line); border-radius: var(--pcbr-r-surface); padding: var(--pcbr-space-4); line-height: var(--pcbr-lh-body); }
@media (min-width: 900px) {
  .pcbr .woocommerce:has(> .woocommerce-MyAccount-navigation) { grid-template-columns: 200px minmax(0, 1fr); gap: var(--pcbr-commerce-gap); }
  .pcbr .woocommerce .woocommerce-MyAccount-navigation ul { grid-template-columns: 1fr; }
}
.pcbr .woocommerce form.woocommerce-form-login {
  max-width: 480px; padding: var(--pcbr-space-4); border: 1px solid var(--pcbr-line); border-radius: var(--pcbr-r-surface);
}
.pcbr .woocommerce form.woocommerce-form-login .form-row:last-of-type { display: grid; gap: var(--pcbr-space-3); }
.pcbr .woocommerce .woocommerce-form-login .woocommerce-form-login__submit { float: none; width: 100%; margin: 0; }
.pcbr .woocommerce .woocommerce-form-login label:has(#rememberme) { display: inline-flex; align-items: center; gap: var(--pcbr-space-3); min-height: var(--pcbr-touch); }
.pcbr .woocommerce #rememberme { width: 20px; height: 20px; margin: 0; accent-color: var(--pcbr-accent); }
.pcbr .woocommerce .password-input .show-password-input {
  display: inline-flex; align-items: center; justify-content: center; width: var(--pcbr-touch); height: var(--pcbr-touch);
  top: 2px; right: 2px; padding: 0; transform: none;
}
.pcbr .woocommerce form .password-input input.input-text { padding-right: calc(var(--pcbr-touch) + var(--pcbr-space-3)); }

.pcbr-checkout-terms { margin: var(--pcbr-space-4) 0; padding: var(--pcbr-space-4); border: 1px solid var(--pcbr-line); border-radius: var(--pcbr-r-surface); background: var(--pcbr-surface-2); font-size: var(--pcbr-fs-small); }
.pcbr-checkout-terms__date { margin: 0 0 var(--pcbr-space-2); color: var(--pcbr-ink); font-weight: var(--pcbr-weight-strong); }
.pcbr-next { margin: var(--pcbr-space-7) 0; padding: var(--pcbr-space-4); border: 1px solid var(--pcbr-line); border-radius: var(--pcbr-r-surface); }
.pcbr .woocommerce-order-overview { list-style: none; margin: 0 0 var(--pcbr-space-6); padding: 0; display: grid; gap: var(--pcbr-space-3); }
@media (min-width: 600px) { .pcbr .woocommerce-order-overview { grid-template-columns: repeat(auto-fit, minmax(160px, 1fr)); } }
.pcbr .woocommerce-order-overview li { border: 0; padding: 0; font-size: var(--pcbr-fs-caption); letter-spacing: var(--pcbr-tracking-label); text-transform: uppercase; color: var(--pcbr-ink-3); }
.pcbr .woocommerce-order-overview li strong { display: block; margin-top: 2px; font-size: var(--pcbr-fs-body); letter-spacing: 0; text-transform: none; color: var(--pcbr-ink); }

/* Coupon prompt link (Woo prints it in its own notice colour, below AA on the sand ground). */
.pcbr .woocommerce .woocommerce-form-coupon-toggle .showcoupon, .pcbr .woocommerce .woocommerce-info .showcoupon { color: var(--pcbr-accent); text-decoration: underline; }

/* The parent checkout template prints its own column heading above the review block. */
.pcbr .woocommerce .st-woo-heading { display: none; }
