/* ═══════════════════════════════════════════════════════════
   Sydney Ironing — Checkout
   ═══════════════════════════════════════════════════════════ */

/* page.php no longer renders a title on checkout (see page.php), so only
   the article wrapper's own spacing needs resetting here. */
body.woocommerce-checkout article.page { padding: 0 !important; margin: 0 !important; }

/* Overrides global.css's ".woocommerce { max-width: 1200px !important; }"
   (desktop) for the checkout context only — width is controlled by
   .co-container below instead. */
body.woocommerce-checkout .woocommerce { max-width: 100% !important; }

/* ── Page shell ── */
.co-page {
    background: #FFFFFF;
    min-height: 70vh;
    padding-bottom: 5rem;
}

.co-container {
    max-width: 1100px;
    margin: 0 auto;
    padding: 1.5rem 1.25rem 0;
}

/* Pay for Order — single-column card stack, narrower than the two-column
   checkout grid (no address form, just order summary + payment). */
.co-pay-container {
    max-width: 640px;
    padding-top: 2.5rem;
    padding-bottom: 2.5rem;
}

.co-pay-container .co-page-hd { justify-content: center; text-align: center; }

/* ── Breadcrumb ── */
.co-breadcrumb {
    display: flex;
    align-items: center;
    gap: 5px;
    font-size: 12px;
    color: #605D6A;
    margin-bottom: 1.25rem;
    flex-wrap: wrap;
}

.co-breadcrumb a {
    color: #4A4756;
    text-decoration: none;
    font-weight: 600;
    transition: color .15s;
}

.co-breadcrumb a:hover { color: var(--primary); }
.co-breadcrumb span { color: var(--primary); font-weight: 600; }

/* ── Page header ── */
.co-page-hd {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 1.75rem;
    flex-wrap: wrap;
    gap: 10px;
}

.co-title {
    font-family: 'Poppins', sans-serif;
    font-size: clamp(22px, 3vw, 28px);
    font-weight: 700;
    color: #1E1B2E;
    margin: 0;
}

.co-add-more {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-size: 12.5px;
    font-weight: 600;
    color: var(--primary);
    text-decoration: none;
    border: 1.5px solid #CDEAE8;
    background: #E3F5F4;
    padding: 8px 14px;
    border-radius: 9px;
    transition: all .18s;
}

.co-add-more:hover {
    background: #E3F5F4;
    border-color: var(--primary);
    color: #0369A1;
}

/* ── Two-column grid (Bootstrap row/col-lg-7/col-lg-5 in markup) ── */
.co-right { position: relative; }

.co-summary-wrap {
    position: sticky;
    top: 88px;
    display: flex;
    flex-direction: column;
    gap: 12px;
}

/* ═══════════════════════════════════════════════════════════
   Cards
   ═══════════════════════════════════════════════════════════ */
.co-card {
    background: #fff;
    border: 1px solid #E3F5F4;
    border-radius: 16px;
    padding: 22px 24px 24px;
    margin-bottom: 16px;
    box-shadow: 0 1px 3px rgba(0,0,0,.04);
}

.co-card:last-child { margin-bottom: 0; }

.co-order-card { margin-bottom: 0; }

/* Card header row */
.co-card-hd {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-bottom: 1.25rem;
    padding-bottom: .9rem;
    border-bottom: 1.5px solid #E3F5F4;
}

.co-card-icon {
    width: 32px;
    height: 32px;
    background: #CDEAE8;
    border-radius: 8px;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

.co-card-title {
    font-family: 'Poppins', sans-serif;
    font-size: 14px;
    font-weight: 700;
    color: #1E1B2E;
    margin: 0;
}

/* ═══════════════════════════════════════════════════════════
   WooCommerce billing fields
   ═══════════════════════════════════════════════════════════ */
.woocommerce-billing-fields h3 { display: none; }

.woocommerce-billing-fields .form-row,
.woocommerce-address-fields .form-row {
    margin-bottom: 20px !important;
    padding: 0 !important;
    clear: none !important;
}

.woocommerce-billing-fields .form-row label,
.woocommerce-address-fields .form-row label {
    font-size: 13px;
    font-weight: 600;
    color: #1E1B2E;
    margin-bottom: 6px;
    display: block;
    letter-spacing: .01em;
}

.woocommerce-billing-fields .form-row .required,
.woocommerce-address-fields .form-row .required {
    color: #F43F5E;
    margin-left: 2px;
    text-decoration: none;
}

.woocommerce-billing-fields input.input-text,
.woocommerce-address-fields input.input-text,
.woocommerce-billing-fields select,
.woocommerce-address-fields select {
    border: 1.5px solid #CDEAE8 !important;
    border-radius: 12px !important;
    padding: 13px 16px !important;
    font-family: 'Mulish', sans-serif !important;
    font-size: 15.5px !important;
    color: #1E1B2E !important;
    background: #fff !important;
    width: 100% !important;
    outline: none !important;
    transition: border-color .16s, box-shadow .16s, background .16s !important;
    height: auto !important;
    box-shadow: 0 1px 2px rgba(15,23,42,.03) !important;
    line-height: 1.5 !important;
}

.woocommerce-billing-fields input.input-text:hover,
.woocommerce-address-fields input.input-text:hover,
.woocommerce-billing-fields select:hover,
.woocommerce-address-fields select:hover {
    border-color: #CDEAE8 !important;
}

.woocommerce-billing-fields input.input-text:focus,
.woocommerce-address-fields input.input-text:focus,
.woocommerce-billing-fields select:focus,
.woocommerce-address-fields select:focus {
    border-color: var(--primary) !important;
    box-shadow: 0 0 0 4px rgba(15,118,110,.12) !important;
    background: #fff !important;
}

.woocommerce-billing-fields input.input-text::placeholder,
.woocommerce-address-fields input.input-text::placeholder {
    color: #605D6A !important;
}

.woocommerce-billing-fields .form-row.woocommerce-invalid input.input-text,
.woocommerce-billing-fields .form-row.woocommerce-invalid select {
    border-color: #F43F5E !important;
    box-shadow: 0 0 0 3px rgba(244,63,94,.08) !important;
}

/* ═══════════════════════════════════════════════════════════
   Icon-prefixed inputs
   ═══════════════════════════════════════════════════════════ */
#billing_first_name_field input.input-text,
#billing_last_name_field input.input-text {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2394A3B8' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 21v-2a4 4 0 0 0-4-4H8a4 4 0 0 0-4 4v2'/%3E%3Ccircle cx='12' cy='7' r='4'/%3E%3C/svg%3E") !important;
}

#billing_address_1_field input.input-text {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2394A3B8' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M21 10c0 7-9 13-9 13s-9-6-9-13a9 9 0 0 1 18 0z'/%3E%3Ccircle cx='12' cy='10' r='3'/%3E%3C/svg%3E") !important;
}

#billing_address_2_field input.input-text {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2394A3B8' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='4' y='3' width='16' height='18' rx='1'/%3E%3Cpath d='M9 21v-5a1 1 0 0 1 1-1h4a1 1 0 0 1 1 1v5'/%3E%3Cpath d='M9 7h1'/%3E%3Cpath d='M14 7h1'/%3E%3Cpath d='M9 11h1'/%3E%3Cpath d='M14 11h1'/%3E%3C/svg%3E") !important;
}

#billing_city_field input.input-text {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2394A3B8' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M1 6v16l7-4 8 4 7-4V2l-7 4-8-4-7 4z'/%3E%3Cline x1='8' y1='2' x2='8' y2='18'/%3E%3Cline x1='16' y1='6' x2='16' y2='22'/%3E%3C/svg%3E") !important;
}

#billing_postcode_field input.input-text {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2394A3B8' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cline x1='4' y1='9' x2='20' y2='9'/%3E%3Cline x1='4' y1='15' x2='20' y2='15'/%3E%3Cline x1='10' y1='3' x2='8' y2='21'/%3E%3Cline x1='16' y1='3' x2='14' y2='21'/%3E%3C/svg%3E") !important;
}

#billing_phone_field input.input-text {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2394A3B8' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M22 16.92v3a2 2 0 0 1-2.18 2 19.79 19.79 0 0 1-8.63-3.07 19.5 19.5 0 0 1-6-6 19.79 19.79 0 0 1-3.07-8.67A2 2 0 0 1 4.11 2h3a2 2 0 0 1 2 1.72c.13.96.36 1.9.7 2.81a2 2 0 0 1-.45 2.11L8.09 9.91a16 16 0 0 0 6 6l1.27-1.27a2 2 0 0 1 2.11-.45c.91.34 1.85.57 2.81.7A2 2 0 0 1 22 16.92z'/%3E%3C/svg%3E") !important;
}

#billing_email_field input.input-text {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2394A3B8' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 4h16c1.1 0 2 .9 2 2v12c0 1.1-.9 2-2 2H4c-1.1 0-2-.9-2-2V6c0-1.1.9-2 2-2z'/%3E%3Cpolyline points='22 6 12 13 2 6'/%3E%3C/svg%3E") !important;
}

#billing_first_name_field input.input-text,
#billing_last_name_field input.input-text,
#billing_address_1_field input.input-text,
#billing_address_2_field input.input-text,
#billing_city_field input.input-text,
#billing_postcode_field input.input-text,
#billing_phone_field input.input-text,
#billing_email_field input.input-text {
    background-repeat: no-repeat !important;
    background-position: 14px center !important;
    background-size: 16px 16px !important;
    padding-left: 42px !important;
}

/* Billing fields grid layout */
.woocommerce-billing-fields__field-wrapper {
    display: grid !important;
    grid-template-columns: repeat(12, 1fr) !important;
    gap: 0 16px !important;
}

/* Default: full width */
.woocommerce-billing-fields__field-wrapper .form-row {
    grid-column: span 12 !important;
    float: none !important;
    width: auto !important;
    margin-right: 0 !important;
}

/* First / Last name — 6 each */
.woocommerce-billing-fields__field-wrapper .form-row-first,
.woocommerce-billing-fields__field-wrapper .form-row-last {
    grid-column: span 6 !important;
}

/* Suburb — 6, Postcode — 6 */
#billing_city_field    { grid-column: span 6 !important; }
#billing_postcode_field { grid-column: span 6 !important; }

/* Phone — 6, Email — 6 */
#billing_phone_field { grid-column: span 6 !important; order: 1 !important; }
#billing_email_field { grid-column: span 6 !important; order: 2 !important; }

/* ═══════════════════════════════════════════════════════════
   Pickup preferences (injected via hook)
   ═══════════════════════════════════════════════════════════ */
.co-pickup-section {
    background: #fff;
    border: 1px solid #E3F5F4;
    border-radius: 16px;
    padding: 22px 24px 24px;
    margin-bottom: 16px;
    box-shadow: 0 1px 3px rgba(0,0,0,.04);
}

.co-section-title {
    display: flex;
    align-items: center;
    gap: 10px;
    font-family: 'Poppins', sans-serif;
    font-size: 14px;
    font-weight: 700;
    color: #1E1B2E;
    margin: 0 0 1.25rem;
    padding-bottom: .9rem;
    border-bottom: 1.5px solid #E3F5F4;
}

.co-field-group {
    display: flex;
    flex-direction: column;
    gap: 6px;
    margin-bottom: 16px;
}

.co-field-group:last-of-type { margin-bottom: 0; }

.co-field-group > label {
    font-size: 13px;
    font-weight: 600;
    color: #1E1B2E;
    letter-spacing: .01em;
}

/* ── Create-account checkbox (WooCommerce's own field, shown when
   "Allow customers to create an account during checkout" is enabled) ── */
.woocommerce-account-fields {
    margin-top: 16px;
    padding-top: 16px;
    border-top: 1.5px solid #E3F5F4;
}

.woocommerce-account-fields .create-account { margin: 0; }

.woocommerce-account-fields label.checkbox {
    display: flex;
    align-items: center;
    gap: 9px;
    font-size: 13.5px;
    font-weight: 600;
    color: #1E1B2E;
    cursor: pointer;
}

.woocommerce-account-fields input[type="checkbox"] {
    accent-color: var(--primary);
    width: 17px;
    height: 17px;
    cursor: pointer;
}

.co-account-note {
    margin: 8px 0 0 26px;
    font-size: 12px;
    color: #4A4756;
    line-height: 1.5;
}

.co-account-note strong { color: #1E1B2E; }

.co-authorize-card {
    display: flex;
    align-items: center;
    gap: 12px;
    border: 1px solid #CDEAE8;
    border-radius: 10px;
    padding: 16px;
    margin-bottom: 20px;
    transition: border-color .2s;
}
.co-authorize-card:has(input:checked) {
    border-color: var(--primary-dark, #0B4F4A);
}

.co-authorize-card:hover {
    border-color: black;
}

.co-authorize-row {
    display: flex;
    flex-direction: column;
    gap: 4px;
    flex: 1;
    cursor: pointer;
}

.co-authorize-eyebrow {
    font-family: 'Poppins', sans-serif;
    font-size: 14px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .04em;
    color: var(--text);
}

.co-authorize-text {
    font-size: 13px;
    color: #4A4756;
    line-height: 1.5;
}

.co-authorize-text a {
    color: var(--primary);
    font-weight: 600;
    text-decoration: underline;
}
.co-authorize-text a:hover { color: var(--primary-dark, #0B4F4A); }

.co-authorize-checkbox {
    position: relative;
    flex-shrink: 0;
    width: 22px;
    height: 22px;
}
.co-authorize-checkbox input[type="checkbox"] {
    position: absolute;
    inset: 0;
    opacity: 0;
    margin: 0;
    width: 100%;
    height: 100%;
    cursor: pointer;
    z-index: 1;
}
.co-authorize-checkbox-box {
    display: block;
    width: 22px;
    height: 22px;
    border: 2px solid #CDEAE8;
    border-radius: 6px;
    background: #fff;
    transition: background .15s, border-color .15s;
}
.co-authorize-checkbox input:checked + .co-authorize-checkbox-box {
    background: var(--primary);
    border-color: var(--primary);
}
.co-authorize-checkbox input:checked + .co-authorize-checkbox-box::after {
    content: '';
    display: block;
    width: 6px;
    height: 11px;
    margin: 2px auto 0;
    border: 2px solid #fff;
    border-top: none;
    border-left: none;
    transform: rotate(45deg) translate(-1px, -1px);
}
.co-authorize-checkbox input:focus-visible + .co-authorize-checkbox-box {
    box-shadow: 0 0 0 3px rgba(15,118,110,.25);
}

@media (max-width: 480px) {
    .co-authorize-card { flex-wrap: wrap; }
}

.co-field-group abbr {
    text-decoration: none;
    color: #F43F5E;
    margin-left: 2px;
}

.co-optional {
    color: #605D6A;
    font-weight: 500;
    font-size: 11px;
}

.co-input {
    border: 1.5px solid #CDEAE8;
    border-radius: 12px;
    padding: 13px 16px;
    font-family: 'Mulish', sans-serif;
    font-size: 15.5px;
    color: #1E1B2E;
    background: #fff;
    outline: none;
    transition: border-color .16s, box-shadow .16s;
    width: 100%;
    line-height: 1.5;
    box-shadow: 0 1px 2px rgba(15,23,42,.03);
}

.co-input:hover { border-color: #CDEAE8; }

.co-input:focus,
.co-input.co-input--focus {
    border-color: var(--primary);
    box-shadow: 0 0 0 4px rgba(15,118,110,.12);
    background: #fff;
}

/* Stripe Card Element wrapper — the iframe fills this div, so padding/height
   live here rather than on the (inaccessible) input inside it */
#si-stripe-card-element {
    display: flex;
    align-items: center;
    padding: 13px 16px;
    min-height: 46px;
}

#si_pickup_date.co-input {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2394A3B8' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='4' width='18' height='18' rx='2'/%3E%3Cline x1='16' y1='2' x2='16' y2='6'/%3E%3Cline x1='8' y1='2' x2='8' y2='6'/%3E%3Cline x1='3' y1='10' x2='21' y2='10'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: 14px center;
    background-size: 16px 16px;
    padding-left: 42px;
}

.co-textarea {
    border: 1.5px solid #CDEAE8;
    border-radius: 12px;
    padding: 13px 16px;
    font-family: 'Mulish', sans-serif;
    font-size: 15.5px;
    color: #1E1B2E;
    background: #fff;
    outline: none;
    resize: vertical;
    min-height: 84px;
    width: 100%;
    transition: border-color .16s, box-shadow .16s;
    line-height: 1.6;
    box-shadow: 0 1px 2px rgba(15,23,42,.03);
}

.co-textarea:hover { border-color: #CDEAE8; }

.co-textarea:focus {
    border-color: var(--primary);
    box-shadow: 0 0 0 4px rgba(15,118,110,.12);
    background: #fff;
}

.co-field-error {
    font-size: 12px;
    color: #BE123C;
    background: #FFF1F2;
    border: 1px solid #FECDD3;
    border-radius: 8px;
    padding: 9px 13px;
    margin-top: 10px;
}

/* ── Inline field-level validation (billing/address form) ── */
.woocommerce-billing-fields .form-row.co-field-invalid input.input-text,
.woocommerce-address-fields .form-row.co-field-invalid input.input-text {
    border-color: #F43F5E !important;
    box-shadow: 0 0 0 3px rgba(244,63,94,.08) !important;
}

.co-inline-error {
    display: block;
    font-size: 11.5px;
    font-weight: 600;
    color: #E11D48;
    margin-top: 5px;
}

/* ═══════════════════════════════════════════════════════════
   WC order review table
   ═══════════════════════════════════════════════════════════ */
.woocommerce-checkout-review-order-table {
    width: 100%;
    border-collapse: collapse;
    font-size: 13px;
    color: #1E1B2E;
}

.woocommerce-checkout-review-order-table th,
.woocommerce-checkout-review-order-table td {
    padding: 9px 0;
    border-bottom: 1px solid #E3F5F4;
    vertical-align: middle;
}

.woocommerce-checkout-review-order-table thead th {
    font-size: 14px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .07em;
    color: #605D6A;
    border-bottom: 1.5px solid #E3F5F4;
    padding-bottom: 10px;
}

.woocommerce-checkout-review-order-table thead th.product-total {
    text-align: right;
}

.woocommerce-checkout-review-order-table .product-name {
    font-size: 14px;
    font-weight: 400;
    color: #1E1B2E;
}

.woocommerce-checkout-review-order-table .product-name .product-quantity {
    font-size: 14px;
    font-weight: 400;
    color: #1E1B2E;
}

.woocommerce-checkout-review-order-table .product-total {
    text-align: right;
    font-weight: 600;
}

.woocommerce-checkout-review-order-table .cart-subtotal th,
.woocommerce-checkout-review-order-table .shipping th {
    font-size: 12px;
    font-weight: 600;
    color: #4A4756;
}

.woocommerce-checkout-review-order-table .cart-subtotal td,
.woocommerce-checkout-review-order-table .shipping td {
    font-size: 12px;
    color: #4A4756;
    text-align: right;
}

.woocommerce-checkout-review-order-table .order-total th,
.woocommerce-checkout-review-order-table .order-total td {
    font-weight: 700;
    font-size: 15px;
    color: #1E1B2E;
    border-bottom: none;
    padding-top: 14px;
    border-top: 1.5px solid #E3F5F4;
}

.woocommerce-checkout-review-order-table .order-total td {
    text-align: right;
}

.woocommerce-checkout-review-order-table .order-total .amount {
    color: var(--primary);
    font-family: 'Poppins', sans-serif;
    font-size: 17px;
}

/* ═══════════════════════════════════════════════════════════
   Payment section
   ═══════════════════════════════════════════════════════════ */
#payment {
    background: transparent !important;
    border-radius: 0 !important;
    padding: 0 !important;
    margin-top: 1rem;
}

#payment ul.payment_methods {
    list-style: none;
    padding: 0 !important;
    margin: 0 0 12px;
    display: flex;
    flex-direction: column;
    gap: 8px;
    border: none !important;
    background: transparent !important;
}

#payment ul.payment_methods li {
    background: #FAFAF8;
    border: 1.5px solid #CDEAE8;
    border-radius: 11px;
    padding: 13px 15px;
    transition: border-color .18s, background .18s;
    margin: 0 !important;
}

#payment ul.payment_methods li:has(input:checked) {
    border-color: var(--primary);
    background: #E3F5F4;
}

.co-pm-row {
    display: flex;
    align-items: flex-start;
    gap: 10px;
}

#payment ul.payment_methods input[type="radio"] {
    accent-color: var(--primary);
    width: 16px;
    height: 16px;
    flex-shrink: 0;
    cursor: pointer;
    margin-top: 3px;
}

#payment ul.payment_methods label.co-pm-label {
    font-size: 16px;
    font-weight: 700;
    color: #1E1B2E;
    cursor: pointer;
    display: flex;
    align-items: flex-start;
    gap: 11px;
    margin: 0;
    flex: 1;
    min-width: 0;
}

.co-pm-icon {
    flex-shrink: 0;
    width: 36px;
    height: 36px;
    border-radius: 9px;
    background: #E3F5F4;
    color: var(--primary);
    display: flex;
    align-items: center;
    justify-content: center;
    transition: background .18s, color .18s;
}

#payment ul.payment_methods li:has(input:checked) .co-pm-icon {
    background: var(--primary);
    color: #fff;
}

.co-pm-body {
    display: flex;
    flex-direction: column;
    gap: 2px;
    padding-top: 1px;
}

.co-pm-name {
    font-size: 15px;
    font-weight: 700;
    color: #1E1B2E;
    line-height: 1.3;
}

.co-pm-desc {
    font-size: 12px;
    font-weight: 500;
    color: #4A4756;
    line-height: 1.4;
}

#payment .payment_box {
    padding: 12px 0 2px;
    font-size: 12px;
    color: #4A4756;
    line-height: 1.6;
    width: 100%;
}

#si-stripe-payment-element {
    margin-bottom: 10px;
}

.si-stripe-note {
    display: flex;
    align-items: flex-start;
    gap: 6px;
    font-size: 11.5px;
    color: #4A4756;
    margin: 4px 0 0;
    line-height: 1.5;
}

.si-stripe-note svg {
    flex-shrink: 0;
    margin-top: 2px;
    color: var(--primary);
}

/* ── Place order button ── */
#payment .place-order { padding: 0; margin: 0; }

/* Hide WooCommerce's default terms-and-conditions block — superseded by
   the custom .co-authorize-card checkbox. */
.woocommerce-terms-and-conditions-wrapper { display: none; }

/* Remove WooCommerce core's default 1em padding on #payment form rows
   (woocommerce-layout.css: "#payment div.form-row { padding: 1em }"). */
#add_payment_method #payment div.form-row,
.woocommerce-cart #payment div.form-row,
.woocommerce-checkout #payment div.form-row {
    padding: 0 !important;
}

.co-authorize-row {
    display: flex !important;
}

#payment #place_order {
    background: #C63D22 !important;
    color: #fff !important;
    border: none !important;
    border-radius: 12px !important;
    padding: 15px 24px !important;
    font-family: 'Mulish', sans-serif !important;
    font-size: 15px !important;
    font-weight: 800 !important;
    letter-spacing: .01em !important;
    width: 100% !important;
    cursor: pointer !important;
    transition: background .18s, box-shadow .18s !important;
    margin-top: 12px !important;
    box-shadow: 0 2px 10px rgba(198,61,34,.22) !important;
    display: flex;
    align-items: center;
    justify-content: center;
}

#payment #place_order:hover {
    background: #B93815 !important;
    box-shadow: 0 4px 16px rgba(198,61,34,.30) !important;
}

/* ── Trust strip ── */
.co-trust-strip {
    display: flex;
    border: 1px solid #E3F5F4;
    border-radius: 12px;
    overflow: hidden;
    background: #fff;
}

.co-trust-item {
    flex: 1;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 5px;
    font-size: 10.5px;
    font-weight: 600;
    color: #4A4756;
    padding: 12px 6px;
    border-right: 1px solid #E3F5F4;
    text-align: center;
    line-height: 1.3;
}

.co-trust-item:last-child { border-right: none; }

/* ── Coupon form ── */
.woocommerce-form-coupon,
form.checkout_coupon {
    display: flex;
    gap: 10px;
    align-items: center;
    flex-wrap: wrap;
    margin: 12px 0 !important;
    padding: 0 !important;
    border: none !important;
}

.woocommerce-form-coupon input#coupon_code,
form.checkout_coupon input[name="coupon_code"] {
    flex: 1;
    min-width: 180px;
    border: 1.5px solid #CDEAE8 !important;
    border-radius: 10px !important;
    padding: 10px 14px !important;
    font-family: 'Mulish', sans-serif !important;
    font-size: 13.5px !important;
    color: #1E1B2E !important;
    background: #FAFAF8 !important;
    outline: none !important;
    transition: border-color .18s, box-shadow .18s !important;
    box-shadow: none !important;
    height: auto !important;
}

.woocommerce-form-coupon input#coupon_code:focus,
form.checkout_coupon input[name="coupon_code"]:focus {
    border-color: var(--primary) !important;
    box-shadow: 0 0 0 3px rgba(15,118,110,.1) !important;
    background: #fff !important;
}

.woocommerce-form-coupon .button,
form.checkout_coupon .button[name="apply_coupon"] {
    background: var(--primary) !important;
    color: #fff !important;
    border: none !important;
    border-radius: 10px !important;
    padding: 10px 18px !important;
    font-family: 'Mulish', sans-serif !important;
    font-size: 13px !important;
    font-weight: 700 !important;
    cursor: pointer !important;
    transition: background .18s !important;
    white-space: nowrap;
    height: auto !important;
}

.woocommerce-form-coupon .button:hover,
form.checkout_coupon .button[name="apply_coupon"]:hover {
    background: #0B4F4A !important;
}

/* ── WC notices — single consolidated style for error/message/info ── */
.co-container .woocommerce-error,
.co-container .woocommerce-message,
.co-container .woocommerce-info {
    display: flex !important;
    align-items: center !important;
    gap: 10px !important;
    border-radius: 0 5px 5px 0 !important;
    border-style: solid !important;
    border-width: 0px 0px 0px 4px !important;
    padding: 11px 16px !important;
    font-size: 13px !important;
    margin-bottom: 12px !important;
    list-style: none !important;
    max-width: 100% !important;
}

.co-container .woocommerce-error::before,
.co-container .woocommerce-message::before,
.co-container .woocommerce-info::before {
    display: none !important;
}

/* Suppress add-to-cart notices on the checkout page */
body.woocommerce-checkout .woocommerce-notices-wrapper .woocommerce-message {
    display: none !important;
}

/* ── Responsive ── */
@media (max-width: 991.98px) {
    .co-summary-wrap { position: static; }
}

@media (max-width: 600px) {
    .co-container { padding: .75rem .9rem 0; }
    .co-page-hd { margin-bottom: 1.25rem; }
    .co-card { padding: 16px; }
    .co-pickup-section { padding: 16px; }

    .woocommerce-billing-fields .form-row-first,
    .woocommerce-billing-fields .form-row-last {
        width: 100% !important;
        float: none !important;
        margin-right: 0 !important;
    }
}

/* ═══════════════════════════════════════════════════════════
   Order Received (Thank You) page
   ═══════════════════════════════════════════════════════════ */
body.woocommerce-order-received .site-content {
    background: #FFFFFF;
    min-height: 70vh;
    padding: 2.5rem 1.25rem 5rem;
}

body.woocommerce-order-received .woocommerce {
    max-width: 880px;
    margin: 0 auto;
}

/* ── Reading order: Hero (full width) → one row, two columns. Left:
   Customer Summary + Pickup & delivery stacked. Right: a single tall
   Order details card (stretches to match the left column's height). ── */
body.woocommerce-order-received .woocommerce-order {
    display: flex;
    flex-direction: column;
    gap: 16px;
    width: 1200px;
    margin: auto;
}

body.woocommerce-order-received .woocommerce-thankyou-order-received { margin: 0; }

body.woocommerce-order-received .or-row-2col {
    display: grid;
    grid-template-columns: 8fr 4fr;
    gap: 16px;
    align-items: stretch;
}

body.woocommerce-order-received .or-left-col {
    display: flex;
    flex-direction: column;
    gap: 16px;
}

body.woocommerce-order-received .or-details-card--tall {
    display: flex;
    flex-direction: column;
}

/* ── Success banner — bold & celebratory, compact ── */
body.woocommerce-order-received .woocommerce-thankyou-order-received {
    display: block;
    position: relative;
    overflow: hidden;
    text-align: center;
    background:
        radial-gradient(circle at 12% 22%, rgba(255,255,255,.35) 4px, transparent 4px),
        radial-gradient(circle at 88% 18%, rgba(255,255,255,.28) 3px, transparent 3px),
        radial-gradient(circle at 22% 85%, rgba(255,255,255,.3) 3.5px, transparent 3.5px),
        radial-gradient(circle at 78% 88%, rgba(255,255,255,.22) 3px, transparent 3px),
        radial-gradient(circle at 50% 94%, rgba(255,255,255,.25) 2.5px, transparent 2.5px),
        radial-gradient(circle at 93% 55%, rgba(255,255,255,.2) 3px, transparent 3px),
        radial-gradient(circle at 6% 60%, rgba(255,255,255,.2) 3px, transparent 3px),
        linear-gradient(135deg, #0F766E 0%, #C63D22 45%, #C63D22 100%);
    border-radius: 20px;
    padding: 32px 28px 28px;
    color: #fff;
    box-shadow: 0 10px 26px rgba(15,118,110,.26);
}

body.woocommerce-order-received .or-hero-headline {
    display: block;
    font-family: 'Poppins', sans-serif;
    font-size: 22px;
    font-weight: 700;
    margin-bottom: 8px;
}

body.woocommerce-order-received .or-hero-meta {
    display: inline-block;
    font-size: 12.5px;
    font-weight: 600;
    letter-spacing: .02em;
    color: #fff;
    background: rgba(255,255,255,.18);
    border-radius: 999px;
    padding: 5px 14px;
    margin-bottom: 12px;
}

body.woocommerce-order-received .or-hero-sub {
    display: block;
    font-size: 14px;
    font-weight: 500;
    line-height: 1.5;
    color: rgba(255,255,255,.9);
    max-width: 360px;
    margin: 0 auto;
}

body.woocommerce-order-received .woocommerce-thankyou-order-received::before {
    content: '';
    display: block;
    width: 60px;
    height: 60px;
    margin: 0 auto 14px;
    border-radius: 50%;
    background-color: #fff;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2322C55E' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='20 6 9 17 4 12'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: center;
    background-size: 28px 28px;
    box-shadow: 0 8px 20px rgba(15,23,42,.2);
    animation: orCheckPop .55s cubic-bezier(.34,1.56,.64,1) both;
}

@keyframes orCheckPop {
    0%   { transform: scale(0); opacity: 0; }
    60%  { transform: scale(1.12); opacity: 1; }
    100% { transform: scale(1); opacity: 1; }
}

@media (prefers-reduced-motion: reduce) {
    body.woocommerce-order-received .woocommerce-thankyou-order-received::before {
        animation: none;
    }
}

/* ── Card chrome shared by all three cards: Customer Summary, Pickup &
   delivery, and Order details. ── */
body.woocommerce-order-received .or-summary-card,
body.woocommerce-order-received .or-details-card,
body.woocommerce-order-received .or-delivery-card {
    background: #fff;
    border: 1px solid #E3F5F4;
    border-radius: 16px;
    padding: 20px 24px 24px;
    box-shadow: 0 1px 3px rgba(0,0,0,.04);
}

body.woocommerce-order-received .or-merged-divider,
body.woocommerce-account .or-merged-divider {
    height: 1.5px;
    background: #E3F5F4;
    margin: 22px 0;
}

/* ── Customer Summary card: name + order # on the left, total on the
   right, then a Payment/Order Date/Phone/Email 2x2 grid. ── */
body.woocommerce-order-received .or-summary-header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 16px;
}

body.woocommerce-order-received .or-summary-name {
    font-family: 'Poppins', sans-serif;
    font-size: 17px;
    font-weight: 600;
    color: #1E1B2E;
    margin-bottom: 3px;
}

body.woocommerce-order-received .or-summary-order-num {
    font-size: 12px;
    font-weight: 500;
    color: #605D6A;
}

body.woocommerce-order-received .or-summary-total {
    text-align: right;
    flex-shrink: 0;
}

body.woocommerce-order-received .or-summary-total span {
    display: block;
    font-size: 10.5px;
    font-weight: 600;
    color: #605D6A;
    text-transform: uppercase;
    letter-spacing: .06em;
    margin-bottom: 3px;
}

body.woocommerce-order-received .or-summary-total strong {
    font-family: 'Poppins', sans-serif;
    font-size: 17px;
    font-weight: 600;
    color: #0F766E;
    white-space: nowrap;
}

body.woocommerce-order-received .or-summary-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    row-gap: 18px;
}

body.woocommerce-order-received .or-summary-grid .or-pickup-field {
    padding-right: 16px;
}

/* The nested Order details section / Customer Details no longer need
   their own card chrome — they sit inside .or-details-card / .or-delivery-card
   on the thank-you page. The same order/order-details.php template also
   renders on My Account → Orders → View, so these selectors cover both
   contexts to guarantee the two pages look identical. ── */
body.woocommerce-order-received .woocommerce-order-details__title,
body.woocommerce-order-received .woocommerce-column__title,
body.woocommerce-order-received .or-card-title,
body.woocommerce-account .woocommerce-order-details__title,
body.woocommerce-account .woocommerce-column__title,
body.woocommerce-account .or-card-title {
    display: flex;
    align-items: center;
    gap: 9px;
    font-family: 'Poppins', sans-serif;
    font-size: 14px;
    font-weight: 700;
    color: #1E1B2E;
    margin: 0 0 1.1rem;
    padding-bottom: .9rem;
    border-bottom: 1.5px solid #E3F5F4;
}

/* Order details table — reuse the checkout review-order table look.
   Headings (th) are intentionally sized larger than body cells (td). ── */
body.woocommerce-order-received .woocommerce-table--order-details,
body.woocommerce-account .woocommerce-table--order-details {
    width: 100%;
    border-collapse: collapse;
    color: #1E1B2E;
}

/* Overrides WooCommerce core's default ".woocommerce table.shop_table"
   border (border: 1px solid color-mix(in srgb, currentColor 20%, transparent)) —
   this table draws its own row/cell borders instead (see below). */
body.woocommerce-order-received .woocommerce-table--order-details,
body.woocommerce-account .woocommerce-table--order-details {
    border: none !important;
}

body.woocommerce-order-received .woocommerce-table--order-details tr,
body.woocommerce-order-received .woocommerce-table--order-details th,
body.woocommerce-order-received .woocommerce-table--order-details td,
body.woocommerce-account .woocommerce-table--order-details tr,
body.woocommerce-account .woocommerce-table--order-details th,
body.woocommerce-account .woocommerce-table--order-details td {
    padding: 9px 0;
    border: none !important;
    vertical-align: middle;
}

body.woocommerce-order-received .woocommerce-table--order-details td,
body.woocommerce-account .woocommerce-table--order-details td {
    font-size: 13px;
    font-weight: 400;
}

body.woocommerce-order-received .woocommerce-table--order-details th,
body.woocommerce-account .woocommerce-table--order-details th {
    font-size: 15px;
    font-weight: 700;
    color: #1E1B2E;
}

body.woocommerce-order-received .woocommerce-table--order-details thead th,
body.woocommerce-account .woocommerce-table--order-details thead th {
    font-size: 15px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .04em;
    color: #4A4756;
    padding-bottom: 10px;
}

/* Column headers ("Product"/"Total") aren't shown visually — the card
   title already gives context — but stay in the DOM for screen readers. */
body.woocommerce-order-received .woocommerce-table--order-details thead,
body.woocommerce-account .woocommerce-table--order-details thead {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}

body.woocommerce-order-received .woocommerce-table--order-details thead th.product-total,
body.woocommerce-order-received .woocommerce-table--order-details td.product-total,
body.woocommerce-account .woocommerce-table--order-details thead th.product-total,
body.woocommerce-account .woocommerce-table--order-details td.product-total {
    text-align: right;
}

body.woocommerce-order-received .woocommerce-table--order-details tfoot th,
body.woocommerce-account .woocommerce-table--order-details tfoot th {
    text-align: left;
}

body.woocommerce-order-received .woocommerce-table--order-details tfoot td,
body.woocommerce-account .woocommerce-table--order-details tfoot td {
    text-align: right;
    color: #1E1B2E;
}

/* Subtotal (and any other non-grand-total footer row, e.g. discounts/shipping) —
   smaller than line items but bolder, distinct from the emphasized grand total. */
body.woocommerce-order-received .woocommerce-table--order-details tfoot tr:not(.or-grand-total-row) th,
body.woocommerce-order-received .woocommerce-table--order-details tfoot tr:not(.or-grand-total-row) td,
body.woocommerce-account .woocommerce-table--order-details tfoot tr:not(.or-grand-total-row) th,
body.woocommerce-account .woocommerce-table--order-details tfoot tr:not(.or-grand-total-row) td {
    font-size: 12px;
    font-weight: 700;
    color: #4A4756;
    border-bottom: 2px solid #E3F5F4 !important;
}

/* No borders between line items — a rule appears only above the grand total. */
body.woocommerce-order-received .woocommerce-table--order-details tfoot .or-grand-total-row th,
body.woocommerce-order-received .woocommerce-table--order-details tfoot .or-grand-total-row td,
body.woocommerce-account .woocommerce-table--order-details tfoot .or-grand-total-row th,
body.woocommerce-account .woocommerce-table--order-details tfoot .or-grand-total-row td {
    font-weight: 700;
    font-size: 14px;
    color: #1E1B2E;
    padding-top: 12px;
}

/* Payment status row appended next to the grand total on My Account →
   Orders → View — same palette as the admin Orders Board's Paid/Unpaid badge. */
.or-paid-badge {
    display: inline-flex;
    align-items: center;
    padding: 3px 10px;
    border-radius: 6px;
    font-size: 12px;
    font-weight: 700;
}
.or-paid-badge--paid { background: #D1FAE5; color: #065F46; }
.or-paid-badge--unpaid { background: #FEE2E2; color: #991B1B; }

body.woocommerce-checkout .woocommerce-Price-amount {
    font-weight: 800;
    font-size: 14px !important;
}

body.woocommerce-order-received .woocommerce-Price-currencySymbol,
body.woocommerce-account .woocommerce-Price-currencySymbol {
    display: inline-block !important;
    font-size: 12px;
}

/* ── Pickup block — Pickup Date / Pickup Address as inline "Label: value"
   lines, then Special Instructions as a stacked label-above-value field
   (see woocommerce/order/order-details-customer.php). Only headings are
   bold — labels and values use lighter weights. Same selectors cover
   body.woocommerce-account since My Account → Orders → View renders this
   template too (see functions.php's woocommerce_view_order hook), just
   without the order-received page's own card chrome — My Account already
   wraps everything in one .ma-content card, so a divider (below) separates
   this section from Order details instead of a second nested card. ── */
body.woocommerce-order-received .or-pickup-block,
body.woocommerce-account .or-pickup-block {
    display: flex;
    flex-direction: column;
}

body.woocommerce-order-received .or-pickup-inline,
body.woocommerce-account .or-pickup-inline {
    margin: 0 0 8px;
    font-family: 'Mulish', sans-serif;
    font-size: 13.5px;
    font-weight: 500;
    color: #1E1B2E;
    line-height: 1.5;
}

body.woocommerce-order-received .or-pickup-inline:last-of-type,
body.woocommerce-account .or-pickup-inline:last-of-type {
    margin-bottom: 0;
}

body.woocommerce-order-received .or-pickup-inline strong,
body.woocommerce-account .or-pickup-inline strong {
    font-weight: 600;
    color: #4A4756;
}

body.woocommerce-order-received .or-pickup-field span,
body.woocommerce-account .or-pickup-field span {
    display: block;
    font-size: 10.5px;
    font-weight: 600;
    color: #605D6A;
    text-transform: uppercase;
    letter-spacing: .06em;
    margin-bottom: 4px;
}

body.woocommerce-order-received .or-pickup-field p,
body.woocommerce-account .or-pickup-field p {
    margin: 0;
    font-family: 'Poppins', sans-serif;
    font-size: 14.5px;
    font-weight: 500;
    color: #1E1B2E;
    line-height: 1.5;
    word-break: break-word;
}

body.woocommerce-account .woocommerce-customer-details {
    display: block;
    margin-bottom: 24px;
    padding-bottom: 24px;
    border-bottom: 1.5px solid #E3F5F4;
}

/* Collapse the two-column split on narrow screens */
@media (max-width: 700px) {
    body.woocommerce-order-received .or-row-2col {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 560px) {
    body.woocommerce-order-received .or-summary-card,
    body.woocommerce-order-received .or-details-card,
    body.woocommerce-order-received .or-delivery-card {
        padding: 16px;
    }
    body.woocommerce-order-received .or-summary-grid {
        grid-template-columns: 1fr;
        row-gap: 14px;
    }
    body.woocommerce-order-received .or-summary-grid .or-pickup-field {
        border-right: none !important;
        padding-right: 0;
    }
}
