/* ==========================================================================
   Halfmoon — checkout.css (cart, checkout, my account, order received)
   Classic Woo shortcodes + Coderockz delivery/pickup fields + TC EPO meta.
   ========================================================================== */

.hm-checkout-layout .entry {
  padding-bottom: var(--space-9);
}
.hm-checkout-layout .entry-content.prose {
  max-width: none;
}
.hm-checkout-layout .prose > * + * {
  margin-top: 0;
}
.hm-checkout-layout .page-header {
  padding-bottom: var(--space-5);
}
.hm-checkout-layout .entry h2,
.hm-checkout-layout .entry h3 {
  font-size: var(--text-xl);
  margin: 0 0 var(--space-4);
}
.hm-checkout-layout .prose a {
  text-decoration: none;
}

/* Card shell shared by totals / order review / account panels */
.cart_totals,
.woocommerce-checkout-review-order,
.woocommerce-MyAccount-content,
.woocommerce-form-login,
.woocommerce-form-register,
.woocommerce-ResetPassword,
.woocommerce-order {
  background: var(--surface);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-lg);
  padding: var(--space-5);
}

/* ---------- Tables (cart, review, orders) ---------- */
.shop_table {
  width: 100%;
  border-collapse: collapse;
  font-size: var(--text-base);
}
.shop_table th,
.shop_table td {
  padding: var(--space-3) 0;
  border-bottom: 1px solid var(--color-border);
  text-align: left;
  vertical-align: top;
}
.shop_table thead th {
  font-size: var(--text-xs);
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--color-muted);
}
.shop_table tfoot th,
.shop_table tfoot td {
  border-bottom: 0;
  padding: 6px 0;
}
.shop_table .order-total th,
.shop_table .order-total td {
  padding-top: var(--space-3);
  border-top: 1px solid var(--color-border);
  font-family: var(--font-display);
  font-size: var(--text-lg);
  color: var(--ink-900);
}
.shop_table .order-total .amount {
  color: var(--red-600);
  font-weight: 800;
}
.shop_table td:last-child,
.shop_table th:last-child {
  text-align: right;
}
.shop_table .product-name a {
  font-weight: 700;
  color: var(--ink-900);
}
.shop_table .product-quantity {
  font-weight: 600;
}

/* Item meta: TC EPO options, variation attributes */
dl.variation,
.wc-item-meta {
  margin: 6px 0 0;
  padding: 0;
  list-style: none;
  font-size: var(--text-sm);
  color: var(--color-muted);
  line-height: 1.5;
}
dl.variation dt,
dl.variation dd,
.wc-item-meta li,
.wc-item-meta p {
  display: inline;
  margin: 0;
}
dl.variation dt,
.wc-item-meta .wc-item-meta-label {
  font-weight: 600;
  color: var(--ink-700);
}
dl.variation dd p {
  display: inline;
  margin: 0;
}
dl.variation dd::after,
.wc-item-meta li::after {
  content: "";
  display: block;
}
.tm-cart-edit-options {
  display: inline-block;
  margin-top: 4px;
  font-size: var(--text-xs);
  font-weight: 700;
  color: var(--red-600);
  text-transform: uppercase;
  letter-spacing: 0.06em;
}

/* ---------- Cart ---------- */
.woocommerce-cart .woocommerce {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 380px;
  gap: var(--space-6);
  align-items: start;
}
.woocommerce-cart .woocommerce > .woocommerce-notices-wrapper,
.woocommerce-cart .woocommerce > .wc-empty-cart-message,
.woocommerce-cart .woocommerce > .return-to-shop,
.woocommerce-cart .woocommerce > .cart-empty {
  grid-column: 1 / -1;
}
.woocommerce-cart-form {
  background: var(--surface);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-lg);
  padding: var(--space-2) var(--space-5);
}
.woocommerce-cart-form__contents thead {
  display: none;
}
.woocommerce-cart-form__cart-item {
  display: grid;
  grid-template-columns: 88px minmax(0, 1fr) auto;
  grid-template-areas:
    "thumb name remove"
    "thumb qty subtotal";
  gap: var(--space-2) var(--space-4);
  padding: var(--space-4) 0;
  border-bottom: 1px solid var(--color-border);
}
.woocommerce-cart-form__cart-item td {
  padding: 0;
  border: 0;
  text-align: left !important;
}
.woocommerce-cart-form__cart-item .product-thumbnail {
  grid-area: thumb;
}
.woocommerce-cart-form__cart-item .product-thumbnail img {
  width: 88px;
  height: 88px;
  object-fit: cover;
  border-radius: var(--radius-md);
  background: var(--ink-100);
}
.woocommerce-cart-form__cart-item .product-name {
  grid-area: name;
}
.woocommerce-cart-form__cart-item .product-price {
  display: none;
}
.woocommerce-cart-form__cart-item .product-quantity {
  grid-area: qty;
  align-self: end;
}
.woocommerce-cart-form__cart-item .product-subtotal {
  grid-area: subtotal;
  align-self: end;
  text-align: right !important;
  font-family: var(--font-display);
  font-weight: 800;
  font-size: var(--text-lg);
  color: var(--ink-900);
}
.woocommerce-cart-form__cart-item .product-remove {
  grid-area: remove;
  text-align: right !important;
}
.woocommerce-cart-form__cart-item .remove {
  display: inline-grid;
  place-items: center;
  width: 30px;
  height: 30px;
  border-radius: 50%;
  background: var(--ink-100);
  color: var(--ink-500);
  font-size: 20px;
  line-height: 1;
}
.woocommerce-cart-form__cart-item .remove:hover {
  background: var(--red-600);
  color: #fff;
}
.woocommerce-cart-form__cart-item div.quantity {
  height: 44px;
}
.woocommerce-cart-form__cart-item .qty-btn {
  width: 34px;
  height: 34px;
}
.woocommerce-cart-form td.actions {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-3);
  justify-content: space-between;
  align-items: center;
  padding: var(--space-4) 0 var(--space-3);
  border: 0;
  text-align: left;
}
.woocommerce-cart-form .coupon {
  display: flex;
  gap: var(--space-2);
  flex: 1;
  max-width: 420px;
}
.woocommerce-cart-form .coupon label {
  display: none;
}
.woocommerce-cart-form .coupon .button,
.woocommerce-checkout .checkout_coupon .button {
  background: var(--ink-900);
  flex: none;
}
/* Quantities update automatically (checkout.js) */
.woocommerce-cart-form [name="update_cart"] {
  display: none;
}
.no-js .woocommerce-cart-form [name="update_cart"] {
  display: inline-flex;
}
.cart-collaterals {
  position: sticky;
  top: calc(var(--header-h) + 24px);
  display: grid;
  gap: var(--space-5);
}
.cart_totals h2 {
  font-size: var(--text-xl);
}
.cart_totals .shop_table th {
  font-weight: 600;
  color: var(--ink-700);
}
.wc-proceed-to-checkout {
  margin-top: var(--space-4);
}
.wc-proceed-to-checkout .checkout-button {
  width: 100%;
  padding: 18px;
  font-size: 1.0625rem;
}
.woocommerce-shipping-methods {
  list-style: none;
  margin: 0;
  padding: 0;
  text-align: right;
}
.woocommerce-shipping-methods li + li {
  margin-top: 6px;
}
.woocommerce-shipping-destination,
.woocommerce-shipping-calculator {
  font-size: var(--text-sm);
  color: var(--color-muted);
}
.shipping-calculator-button {
  color: var(--red-600);
  font-weight: 600;
}
.shipping-calculator-form p {
  margin: var(--space-2) 0 0;
}
.cross-sells {
  grid-column: 1;
  margin-top: var(--space-4);
}
.cross-sells .prod-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}
.cart-empty.woocommerce-info {
  justify-content: center;
  font-size: var(--text-lg);
  padding: var(--space-7) var(--space-5);
  border-left-width: 1px;
}
.return-to-shop {
  text-align: center;
}

/* ---------- Checkout ---------- */
.woocommerce-checkout form.checkout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 420px;
  column-gap: var(--space-6);
  align-items: start;
}
/* Everything the form holds (Coderockz block, customer details, plugin extras) stacks in column 1;
   the order summary sits in column 2 alongside it. */
.woocommerce-checkout form.checkout > * {
  grid-column: 1;
}
.woocommerce-checkout form.checkout > .woocommerce-NoticeGroup {
  grid-column: 1 / -1;
}
#order_review_heading {
  grid-column: 2 !important;
  grid-row: 1;
  margin-bottom: var(--space-3);
}
#order_review {
  grid-column: 2 !important;
  grid-row: 1 / span 20;
  margin-top: 44px; /* sits under the "Your order" heading, which shares row 1 */
  position: sticky;
  top: calc(var(--header-h) + 24px);
}
.woocommerce-checkout .col2-set,
.woocommerce-checkout .col2-set .col-1,
.woocommerce-checkout .col2-set .col-2 {
  width: 100%;
  float: none;
}

/* Field cards. Billing + "create an account" share one card (.col-1);
   delivery address and order notes are separate cards in .col-2. */
.woocommerce-checkout .col2-set .col-1,
.woocommerce-shipping-fields,
.woocommerce-additional-fields,
#coderockz_woo_delivery_setting_wrapper {
  background: var(--surface);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-lg);
  padding: var(--space-5) var(--space-5) var(--space-2);
}
.woocommerce-checkout form.checkout > #coderockz_woo_delivery_setting_wrapper,
.woocommerce-checkout #customer_details {
  margin: 0 0 var(--space-5);
}
.woocommerce-checkout .col2-set .col-2 {
  display: grid;
  gap: var(--space-5);
  margin-top: var(--space-5);
}
.woocommerce-checkout .col2-set .col-2:not(:has(> :not(.is-empty))) {
  display: none;
}
.woocommerce-checkout .is-empty {
  display: none !important;
}
.woocommerce-account-fields {
  padding: var(--space-3) 0 var(--space-3);
  border-top: 1px solid var(--color-border);
}
.woocommerce form .woocommerce-account-fields .form-row {
  margin-bottom: 0;
}
.woocommerce form .woocommerce-account-fields .create-account .form-row {
  margin-top: var(--space-4);
}
.woocommerce-checkout .entry h3,
#coderockz_woo_delivery_setting_wrapper h3,
#ship-to-different-address {
  font-size: var(--text-xl);
  margin: 0 0 var(--space-5);
  line-height: 1.2;
}
.woocommerce-checkout .woocommerce-billing-fields__field-wrapper,
.woocommerce-checkout .woocommerce-shipping-fields__field-wrapper,
.woocommerce-address-fields__field-wrapper,
.woocommerce-EditAccountForm,
.woocommerce-checkout .col2-set .form-row-wrap {
  display: flex;
  flex-wrap: wrap;
  gap: 0 var(--space-4);
}
/* Fields are <p class="form-row">; scope under .woocommerce form so page .prose rules don't zero the spacing. */
.form-row,
.woocommerce form .form-row {
  width: 100%;
  margin: 0 0 var(--space-5);
  padding: 0;
}
.form-row-first,
.form-row-last,
.woocommerce form .form-row-first,
.woocommerce form .form-row-last {
  width: calc(50% - var(--space-4) / 2);
}
.form-row label {
  display: block;
  font-size: var(--text-sm);
  line-height: 1.3;
  margin-bottom: 8px;
}
.form-row label.checkbox,
.form-row .woocommerce-form__label-for-checkbox {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-weight: 500;
  cursor: pointer;
}
.form-row .optional {
  color: var(--color-muted);
  font-weight: 400;
}
.form-row.woocommerce-invalid input.input-text,
.form-row.woocommerce-invalid select,
.form-row.woocommerce-invalid .select2-selection {
  border-color: var(--red-600);
}
.form-row.woocommerce-validated input.input-text {
  border-color: var(--green-500);
}
.woocommerce-input-wrapper {
  display: block;
}
#ship-to-different-address {
  font-family: var(--font-body);
  font-size: var(--text-base);
}
#ship-to-different-address label {
  display: block;
  margin: 0;
  font-family: var(--font-display);
  font-size: var(--text-xl);
  font-weight: 700;
  color: var(--ink-900);
  cursor: default;
}
#ship-to-different-address input {
  position: absolute;
  opacity: 0;
  pointer-events: none;
}
.woocommerce-form-coupon-toggle .woocommerce-info,
.woocommerce-form-login-toggle .woocommerce-info {
  margin-bottom: var(--space-4);
}
.woocommerce-info a.showcoupon,
.woocommerce-info a.showlogin {
  color: var(--red-600);
  font-weight: 700;
}
.checkout_coupon,
.woocommerce-checkout .woocommerce-form-login {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-3);
  align-items: flex-end;
  margin-bottom: var(--space-5);
  background: var(--surface);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-lg);
  padding: var(--space-4);
}
.checkout_coupon p:first-child {
  flex-basis: 100%;
  margin: 0;
}
.woocommerce form.checkout_coupon .form-row {
  margin: 0;
  width: auto;
  flex: 1;
}
.checkout_coupon .form-row-last {
  flex: none;
}

/* Order review */
.woocommerce-checkout-review-order-table .product-name {
  font-weight: 600;
  color: var(--ink-900);
}
.woocommerce-checkout-review-order-table .product-total {
  white-space: nowrap;
}
.wc_payment_methods,
.prose .wc_payment_methods {
  list-style: none;
  margin: var(--space-5) 0 0;
  padding: 0;
  display: grid;
  gap: var(--space-2);
}
.wc_payment_method {
  border: 1.5px solid var(--ink-200);
  border-radius: var(--radius-md);
  padding: var(--space-3) var(--space-4);
}
.wc_payment_method:has(input:checked) {
  border-color: var(--red-600);
  background: var(--red-50);
}
.wc_payment_method > label {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  cursor: pointer;
}
.wc_payment_method > input {
  margin-right: 8px;
  vertical-align: middle;
}
.wc_payment_method img {
  display: inline-block;
  max-height: 24px;
  width: auto;
}
.payment_box {
  margin-top: var(--space-2);
  font-size: var(--text-sm);
  color: var(--color-muted);
}
.payment_box p {
  margin: 0;
}
.woocommerce-terms-and-conditions-wrapper {
  font-size: var(--text-sm);
  color: var(--color-muted);
  margin: var(--space-4) 0;
}
.woocommerce-privacy-policy-text p {
  margin: 0;
}
.woocommerce-terms-and-conditions-wrapper a {
  color: var(--red-600);
}
#place_order {
  width: 100%;
  padding: 18px;
  font-size: 1.0625rem;
}
.blockUI.blockOverlay {
  background: rgba(250, 246, 240, 0.7) !important;
  border-radius: var(--radius-lg);
}

/* ---------- select2 / selectWoo (country, state, Coderockz delivery/pickup) ---------- */
.select2-container {
  width: 100% !important;
  font-size: 1rem;
}
.select2-container .select2-selection--single {
  height: 48px;
  border: 1.5px solid var(--ink-200);
  border-radius: var(--radius-md);
  background: #fff;
  display: flex;
  align-items: center;
}
.select2-container .select2-selection--single .select2-selection__rendered {
  padding: 0 40px 0 14px;
  line-height: 1.3;
  color: var(--ink-900);
}
.select2-container .select2-selection--single .select2-selection__clear {
  order: 2;
  margin: 0 4px 0 auto;
  padding: 0 6px;
  font-size: 18px;
  color: var(--ink-300);
}
.select2-container .select2-selection--single .select2-selection__clear:hover {
  color: var(--red-600);
}
.select2-container .select2-selection--single .select2-selection__arrow {
  height: 100%;
  right: 10px;
}
.select2-container--open .select2-selection--single,
.select2-container--focus .select2-selection--single {
  border-color: var(--ink-900);
  box-shadow: 0 0 0 3px rgba(255, 176, 32, 0.35);
}
.select2-dropdown {
  border: 1.5px solid var(--ink-900);
  border-radius: var(--radius-md);
  overflow: hidden;
}
.select2-results__option {
  padding: 10px 14px;
}
.select2-container--default .select2-results__option--highlighted[aria-selected],
.select2-container--default .select2-results__option--highlighted[data-selected] {
  background: var(--red-600);
}
.select2-search--dropdown .select2-search__field {
  min-height: 40px;
  border-radius: var(--radius-sm);
}

/* Coderockz delivery/pickup + date/time fields */
#coderockz_woo_delivery_setting_wrapper,
.coderockz-woo-delivery-fields,
[id^="coderockz_woo_delivery"] {
  font-size: var(--text-base);
}
#coderockz_woo_delivery_setting_wrapper_internal > * {
  margin-top: 0;
}
#coderockz_woo_delivery_setting_wrapper .form-row {
  float: none;
  width: 100%;
}
.flatpickr-input {
  background: #fff;
}

/* WPC order tip */
.wpcot-tips,
.wpcot-wrapper {
  margin: var(--space-4) 0;
}
.wpcot-tips .wpcot-tip,
.wpcot-tip-item {
  border-radius: var(--radius-pill) !important;
}

/* ---------- Order received ---------- */
.woocommerce-order {
  max-width: 820px;
}
.woocommerce-thankyou-order-received {
  font-family: var(--font-display);
  font-size: var(--text-2xl);
  font-weight: 800;
  color: var(--ink-900);
  border: 0;
  padding: 0;
  margin-bottom: var(--space-5);
}
.woocommerce-order-overview {
  list-style: none;
  margin: 0 0 var(--space-6);
  padding: 0;
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
  gap: var(--space-3);
}
.woocommerce-order-overview li {
  padding: var(--space-3) var(--space-4);
  background: var(--ink-100);
  border-radius: var(--radius-md);
  font-size: var(--text-xs);
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: var(--color-muted);
}
.woocommerce-order-overview li strong {
  display: block;
  margin-top: 2px;
  font-size: var(--text-base);
  text-transform: none;
  letter-spacing: 0;
  color: var(--ink-900);
}
.woocommerce-order-details,
.woocommerce-customer-details {
  margin-top: var(--space-6);
}
.woocommerce-customer-details address {
  font-style: normal;
  line-height: 1.7;
}

/* ---------- My account ---------- */
.woocommerce-account .woocommerce {
  display: grid;
  grid-template-columns: 240px minmax(0, 1fr);
  gap: var(--space-6);
  align-items: start;
}
.woocommerce-account .woocommerce > .woocommerce-notices-wrapper {
  grid-column: 1 / -1;
}
.woocommerce-MyAccount-navigation ul {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 4px;
}
.woocommerce-MyAccount-navigation a {
  display: block;
  padding: 11px 16px;
  border-radius: var(--radius-md);
  font-weight: 600;
  color: var(--ink-700);
}
.woocommerce-MyAccount-navigation a:hover {
  background: var(--ink-100);
}
.woocommerce-MyAccount-navigation .is-active a {
  background: var(--ink-900);
  color: #fff;
}
.woocommerce-MyAccount-content > p:first-child {
  margin-top: 0;
}
.woocommerce-MyAccount-content a:not(.button) {
  color: var(--red-600);
  font-weight: 600;
}
.woocommerce-Addresses {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--space-5);
}
.woocommerce-Address-title {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
}
.woocommerce-orders-table .button {
  padding: 8px 14px;
  font-size: var(--text-sm);
}
/* Logged-out: login + register side by side */
.woocommerce-account:not(.logged-in) .woocommerce {
  display: block;
}
.woocommerce-account #customer_login {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--space-6);
}
.woocommerce-account #customer_login .u-column1,
.woocommerce-account #customer_login .u-column2 {
  width: auto;
  float: none;
}
.woocommerce-form-login,
.woocommerce-form-register,
.woocommerce-ResetPassword {
  max-width: 520px;
}
.woocommerce-form-login__rememberme {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-weight: 500;
  margin-right: var(--space-4);
}
.woocommerce-LostPassword a {
  color: var(--red-600);
  font-weight: 600;
}
.woocommerce-password-strength {
  font-size: var(--text-sm);
  margin-top: 6px;
}

/* ---------- Responsive ---------- */
@media (max-width: 1000px) {
  .woocommerce-cart .woocommerce,
  .woocommerce-checkout form.checkout {
    grid-template-columns: 1fr;
  }
  #order_review_heading,
  #order_review {
    grid-column: 1 !important;
    grid-row: auto;
    margin-top: 0;
  }
  .cart-collaterals,
  #order_review {
    position: static;
  }
  #order_review_heading {
    margin-top: var(--space-6);
  }
}
@media (max-width: 760px) {
  .woocommerce-account .woocommerce,
  .woocommerce-account #customer_login,
  .woocommerce-Addresses {
    grid-template-columns: 1fr;
  }
  .woocommerce-MyAccount-navigation ul {
    display: flex;
    overflow-x: auto;
    gap: 6px;
  }
  .woocommerce-MyAccount-navigation a {
    white-space: nowrap;
    padding: 9px 14px;
  }
}
@media (max-width: 680px) {
  .form-row-first,
  .form-row-last,
  .woocommerce form .form-row-first,
  .woocommerce form .form-row-last {
    width: 100%;
  }
  .woocommerce-cart-form,
  .cart_totals,
  .woocommerce-checkout-review-order {
    padding: var(--space-4);
  }
  .woocommerce-checkout .col2-set .col-1,
  .woocommerce-shipping-fields,
  .woocommerce-additional-fields,
  #coderockz_woo_delivery_setting_wrapper {
    padding: var(--space-4) var(--space-4) var(--space-1);
  }
  .woocommerce-cart-form__cart-item {
    grid-template-columns: 64px minmax(0, 1fr) auto;
  }
  .woocommerce-cart-form__cart-item .product-thumbnail img {
    width: 64px;
    height: 64px;
  }
  .cross-sells .prod-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
