/*
  WooCommerce checkout, order received and account pages in the camp design.
  Matches the registration form: white rounded card, 52px fields with a 2px navy border, pill buttons.
*/

.camp-woo__wrap { display: grid; gap: var(--camp-space-6); max-width: 920px; }
.camp-woo__head { display: grid; justify-items: start; gap: var(--camp-space-3); }
.camp-woo__el { width: 84px; height: auto; }
.camp-woo__card { padding: var(--camp-space-5); }
@media screen and (min-width: 750px) { .camp-woo__card { padding: var(--camp-space-7); } }

.camp-woo .woocommerce { color: var(--camp-navy); font-family: var(--camp-font); }
.camp-woo .woocommerce :is(h2, h3) { margin: 0 0 var(--camp-space-4); font-size: var(--camp-size-h3); line-height: var(--camp-leading-h3); font-weight: var(--camp-weight-bold); }
.camp-woo .woocommerce a { color: inherit; text-decoration-thickness: 2px; text-underline-offset: 3px; }

/* One column: parent details, then the order and payment */
.camp-woo .woocommerce form.checkout { display: grid; gap: var(--camp-space-6); }
.camp-woo .col2-set, .camp-woo .col2-set .col-1, .camp-woo .col2-set .col-2 { float: none; width: 100%; max-width: none; }
.camp-woo .col2-set::before, .camp-woo .col2-set::after { display: none; }
.camp-woo .woocommerce-billing-fields__field-wrapper { display: grid; gap: var(--camp-space-4); }
@media screen and (min-width: 750px) {
  .camp-woo .woocommerce-billing-fields__field-wrapper { grid-template-columns: 1fr 1fr; }
}
.camp-woo .woocommerce-billing-fields > h3 { display: none; } /* "Billing details" → our own "Parent details" title */
.camp-checkout__title { margin: 0 0 var(--camp-space-4); font-size: var(--camp-size-h3); }

.camp-woo .form-row { display: grid; gap: 6px; float: none; width: auto; margin: 0; padding: 0; }
.camp-woo .form-row label { font-weight: var(--camp-weight-bold); font-size: 0.9375rem; line-height: 1.3; }
.camp-woo .form-row .required { color: var(--camp-berry); text-decoration: none; border: 0; }
.camp-woo .form-row :is(input.input-text, select, textarea),
.camp-woo .woocommerce form .form-row :is(input.input-text, select, textarea) {
  width: 100%; min-height: 52px; padding: 12px 14px;
  border: 2px solid rgb(0 57 115 / 0.2); border-radius: var(--camp-radius-sm);
  background: var(--camp-white); color: var(--camp-navy);
  font: var(--camp-weight-medium) 1rem/1.4 var(--camp-font);
}
.camp-woo .form-row :is(input, select, textarea):focus { border-color: var(--camp-navy); outline: 3px solid var(--camp-sun); outline-offset: 1px; }
.camp-woo .form-row.woocommerce-invalid :is(input, select) { border-color: var(--camp-berry); background: #fff5f8; }
.camp-woo #billing_phone, .camp-woo #billing_email { direction: ltr; text-align: start; }
[dir='rtl'] .camp-woo #billing_phone, [dir='rtl'] .camp-woo #billing_email { text-align: right; }

/* Order summary */
.camp-woo table.shop_table { width: 100%; border: 0; border-collapse: collapse; border-radius: 0; margin: 0; }
.camp-woo table.shop_table :is(th, td) { padding: 12px 0; border: 0; border-bottom: 1px solid rgb(0 57 115 / 0.12); text-align: start; background: none; font-weight: var(--camp-weight-medium); vertical-align: top; }
.camp-woo table.shop_table :is(th:last-child, td:last-child) { text-align: end; white-space: nowrap; }
.camp-woo table.shop_table .product-name { font-weight: var(--camp-weight-bold); }
.camp-woo table.shop_table .variation { margin: 4px 0 0; font-size: 0.875rem; font-weight: var(--camp-weight-medium); color: var(--camp-pine); }
.camp-woo table.shop_table .variation :is(dt, dd) { display: inline; margin: 0; float: none; }
.camp-woo table.shop_table .variation dd p { display: inline; margin: 0; }
.camp-woo table.shop_table .variation dd::after { content: ''; display: block; }
.camp-woo table.shop_table .fee :is(th, td) { color: var(--camp-pine); font-weight: var(--camp-weight-bold); }
.camp-woo table.shop_table .order-total :is(th, td) { border-bottom: 0; font-size: 1.25rem; font-weight: var(--camp-weight-bold); }

/* Payment */
.camp-woo #payment { background: var(--camp-cloud); border-radius: var(--camp-radius); padding: var(--camp-space-4); }
.camp-woo #payment ul.payment_methods { margin: 0; padding: 0; border: 0; list-style: none; }
.camp-woo #payment ul.payment_methods li { padding: 8px 0; font-weight: var(--camp-weight-bold); }
.camp-woo #payment div.payment_box { margin: 8px 0 0; padding: 12px 14px; border-radius: var(--camp-radius-sm); background: var(--camp-white); color: var(--camp-navy); font-size: 0.9375rem; }
.camp-woo #payment div.payment_box::before { display: none; }
.camp-woo #payment div.form-row { padding: var(--camp-space-4) 0 0; }

/* Buttons: the Register pink pill */
.camp-woo .woocommerce :is(button.button, a.button, input.button, #place_order) {
  display: inline-flex; align-items: center; justify-content: center; min-height: var(--camp-tap); padding: 0 var(--camp-space-6);
  border: 0; border-radius: var(--camp-radius-pill); background: var(--camp-cta-bg); color: var(--camp-cta-text);
  font: var(--camp-weight-bold) 1.0625rem/1 var(--camp-font); text-decoration: none; cursor: pointer;
}
.camp-woo .woocommerce :is(button.button, a.button, #place_order):hover { background: var(--camp-cta-bg-hover); color: var(--camp-cta-text); }
.camp-woo #place_order { width: 100%; min-height: 60px; font-size: 1.1875rem; }

/* Notices */
.camp-woo :is(.woocommerce-error, .woocommerce-info, .woocommerce-message) {
  margin: 0 0 var(--camp-space-4); padding: 14px 16px; border: 0; border-radius: var(--camp-radius-sm);
  background: var(--camp-butter); color: var(--camp-navy); font-weight: var(--camp-weight-medium); list-style: none;
}
.camp-woo .woocommerce-error { background: #fff0f4; color: var(--camp-berry-deep); }
.camp-woo :is(.woocommerce-error, .woocommerce-info, .woocommerce-message)::before { display: none; }
.camp-woo .woocommerce-form-coupon-toggle { display: none; } /* coupons are entered on the review step */

/* Order received */
.camp-woo .woocommerce-order-overview { display: grid; gap: 8px; margin: 0 0 var(--camp-space-5); padding: 0; list-style: none; }
.camp-woo .woocommerce-order-overview li { margin: 0; padding: 0; border: 0; float: none; font-size: 0.9375rem; text-transform: none; }
.camp-woo .woocommerce-thankyou-order-received { font-size: 1.125rem; font-weight: var(--camp-weight-bold); }
.camp-woo .woocommerce-customer-details address { padding: var(--camp-space-4); border: 0; border-radius: var(--camp-radius); background: var(--camp-cloud); font-style: normal; }
.camp-thanks-cards { margin-block: var(--camp-space-5); }

@media print {
  body * { visibility: hidden; }
  .camp-thanks-cards, .camp-thanks-cards * { visibility: visible; }
  .camp-thanks-cards { position: absolute; inset: 0 0 auto; }
  .camp-thanks-cards button { display: none; }
}

/* WooCommerce sizes first/last name at 47% with floats; the grid above does the layout instead */
.camp-woo .woocommerce form .form-row:is(.form-row-first, .form-row-last, .form-row-wide) { width: auto; float: none; }

/* My registrations: log in with a code, children and weeks, add a week (360 Camp plugin, inc/account.php) */
.camp-acct { display: grid; gap: var(--camp-space-4); }
.camp-acct__form { display: grid; gap: var(--camp-space-4); }
.camp-acct .camp-h2 { margin: 0; }
.camp-acct p { margin: 0; line-height: 1.55; }
.camp-acct .camp-field { display: grid; gap: 6px; font-weight: var(--camp-weight-bold); }
.camp-acct .camp-field input {
  width: 100%;
  min-height: 52px;
  padding: 0 var(--camp-space-4);
  border: 2px solid var(--camp-line, #d7e6ef);
  border-radius: var(--camp-radius-sm);
  background: #fff;
  color: var(--camp-navy);
  font: inherit;
  font-size: 1.0625rem;
}
.camp-acct .camp-field input:focus { outline: 3px solid var(--camp-sky); outline-offset: 1px; }
.camp-acct__code { max-width: 12ch; letter-spacing: 0.3em; text-align: center; font-variant-numeric: tabular-nums; }
.camp-acct .camp-btn { justify-self: start; }
.camp-acct__links { display: flex; flex-wrap: wrap; gap: var(--camp-space-4); }
.camp-acct__links button { padding: 0; border: 0; background: none; font: inherit; cursor: pointer; }
.camp-acct__who { color: var(--camp-ink-soft, inherit); font-size: 0.9375rem; }
.camp-acct__kids { display: grid; gap: var(--camp-space-4); margin: 0; padding: 0; list-style: none; }
.camp-acct__kid {
  display: grid;
  gap: var(--camp-space-3);
  padding: var(--camp-space-4);
  border-radius: var(--camp-radius);
  background: var(--camp-cloud);
}
.camp-acct__top { display: flex; flex-wrap: wrap; align-items: baseline; gap: var(--camp-space-2) var(--camp-space-3); }
.camp-acct__name { font-size: 1.125rem; }
.camp-acct__team {
  padding: 2px 10px;
  border-radius: var(--camp-radius-pill);
  background: #fff;
  font-size: 0.8125rem;
  font-weight: var(--camp-weight-bold);
}
.camp-acct__weeks { display: grid; gap: 4px; margin: 0; padding: 0; list-style: none; }
.camp-acct__weeks .is-booked { color: var(--camp-pine, #1d7a4d); font-weight: var(--camp-weight-bold); }
.camp-acct__add {
  display: flex;
  align-items: flex-start;
  gap: var(--camp-space-3);
  padding: var(--camp-space-3) var(--camp-space-4);
  border: 2px dashed var(--camp-sky);
  border-radius: var(--camp-radius-sm);
  background: #fff;
  cursor: pointer;
}
.camp-acct__add:has(input:checked) { border-style: solid; border-color: var(--camp-navy); }
.camp-acct__add input { flex: none; width: 24px; height: 24px; margin-block-start: 2px; accent-color: var(--camp-navy); }
.camp-acct__add > span { display: grid; gap: 2px; }
.camp-acct__price { font-weight: var(--camp-weight-bold); color: var(--camp-coral-deep, var(--camp-navy)); }
.camp-acct__add small, .camp-acct__closed { color: var(--camp-ink-soft, inherit); }
.camp-acct .camp-check { display: flex; align-items: flex-start; gap: var(--camp-space-3); font-weight: var(--camp-weight-medium); cursor: pointer; }
.camp-acct .camp-check input { flex: none; width: 24px; height: 24px; margin-block-start: 2px; accent-color: var(--camp-navy); }
.camp-acct__empty { display: grid; gap: var(--camp-space-3); }
.camp-acct__empty p:last-child { display: flex; flex-wrap: wrap; gap: var(--camp-space-3); }
/* WooCommerce's account columns and menu aren't used for parents */
.camp-woo .woocommerce-MyAccount-content { float: none; width: auto; }
.camp-woo .camp-acct a:is(.camp-btn--register, .camp-btn--whatsapp) { color: #fff; text-decoration: none; }

/* Checkout: the parent's details on one line when they came filled in from the registration */
.camp-woo .camp-checkout__summary {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 4px var(--camp-space-3);
  margin: 0 0 var(--camp-space-4);
  padding: var(--camp-space-3) var(--camp-space-4);
  border-radius: var(--camp-radius-sm);
  background: var(--camp-cloud);
  font-weight: var(--camp-weight-medium);
  overflow-wrap: anywhere;
}
.camp-woo .camp-checkout__summary[hidden],
.camp-woo .woocommerce-billing-fields__field-wrapper[hidden] { display: none; }
.camp-woo .camp-checkout__summary button { min-height: 44px; padding: 0 4px; border: 0; background: none; font: inherit; font-weight: var(--camp-weight-bold); cursor: pointer; }
.camp-acct__staff { padding: var(--camp-space-3) var(--camp-space-4); border-radius: var(--camp-radius-sm); background: var(--camp-butter); }
.camp-acct__staff a { display: inline; min-height: 0; font-weight: var(--camp-weight-bold); }
