/* ==========================================================================
   Basket, checkout, order payment and order received
   ========================================================================== */

/* ---------- Frame and progress ---------- */
.flow { padding: clamp(28px, 4vw, 48px) 0 clamp(56px, 7vw, 100px); background: linear-gradient(180deg, var(--aqua-50), var(--white) 520px); }
.flow__head { display: flex; align-items: flex-end; justify-content: space-between; gap: 20px 32px; flex-wrap: wrap; margin-bottom: clamp(24px, 3vw, 36px); }
.flow__head h1 { font-size: clamp(2.4rem, 4.4vw, 3.6rem); color: var(--navy-800); line-height: 1; }
.flow__head p { margin-top: 8px; display: flex; align-items: center; gap: 6px; color: var(--muted); font-size: 15px; font-weight: 600; }
.flow__head p i { color: var(--aqua-500); }
.flow-steps { display: flex; align-items: center; gap: 6px; list-style: none; margin: 0; padding: 0; }
.flow-steps li { display: flex; align-items: center; gap: 6px; }
.flow-steps li + li::before { content: ""; width: clamp(14px, 2.4vw, 34px); height: 2px; border-radius: 2px; background: rgba(43,61,88,0.14); }
.flow-steps li.is-done + li::before, .flow-steps li.is-current::before { background: var(--aqua-500); }
.flow-steps a, .flow-steps span { display: inline-flex; align-items: center; gap: 8px; font-size: 13.5px; font-weight: 800; color: var(--muted); white-space: nowrap; }
.flow-steps b { width: 30px; height: 30px; border-radius: 50%; display: grid; place-items: center; font-size: 13px; background: var(--white); border: 1.5px solid rgba(43,61,88,0.16); color: var(--muted); }
.flow-steps .is-done b { background: var(--aqua-500); border-color: var(--aqua-500); color: var(--white); }
.flow-steps .is-current b { background: var(--navy-800); border-color: var(--navy-800); color: var(--white); box-shadow: 0 0 0 5px rgba(43,61,88,0.1); }
.flow-steps .is-current span, .flow-steps .is-done a { color: var(--navy-800); }
.flow-steps a:hover { color: var(--aqua-600); }

/* WooCommerce's notices, in the theme's style */
.flow .woocommerce-notices-wrapper:empty { display: none; }
.flow .woocommerce-error, .flow .woocommerce-message, .flow .woocommerce-info { list-style: none; margin: 0 0 18px; padding: 16px 20px !important; border: 0; border-left: 4px solid var(--aqua-500); border-radius: var(--r-md); background: var(--white); color: var(--navy-800); font-size: 15px; font-weight: 600; box-shadow: 0 20px 40px -32px rgba(43,61,88,0.45); }
.flow .woocommerce-error { border-left-color: var(--pink-500); background: #FFF5F9; }
.flow .woocommerce-error::before, .flow .woocommerce-message::before, .flow .woocommerce-info::before { display: none; }
.flow .woocommerce-error li + li { margin-top: 6px; }
.flow .woocommerce-message .button, .flow .woocommerce-info .button { float: none; margin-left: 10px; padding: 0; background: none; color: var(--aqua-600); font-weight: 800; }
.flow .woocommerce-info a, .flow .woocommerce-message a { color: var(--aqua-600); font-weight: 800; }

/* ---------- Quantity box with + and - ---------- */
.flow .quantity { display: inline-flex; align-items: center; border: 1.5px solid rgba(43,61,88,0.16); border-radius: var(--r-pill); background: var(--white); overflow: hidden; }
.flow .quantity input.qty { width: 44px; height: 44px; border: 0; text-align: center; font: inherit; font-weight: 800; font-size: 16px; color: var(--navy-900); background: transparent; -moz-appearance: textfield; }
.flow .quantity input.qty::-webkit-outer-spin-button, .flow .quantity input.qty::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
.flow .qty-step { width: 40px; height: 44px; display: grid; place-items: center; border: 0; background: none; color: var(--navy-800); font-size: 16px; cursor: pointer; transition: background-color 200ms, color 200ms; }
.flow .qty-step:hover { background: var(--aqua-50); color: var(--aqua-600); }

/* ---------- Basket ---------- */
.aq-cart { display: grid; grid-template-columns: minmax(0, 1fr) 400px; gap: clamp(20px, 3vw, 36px); align-items: start; }
.aq-lines { display: grid; gap: 14px; }
.aq-line { position: relative; display: grid; grid-template-columns: 112px minmax(0, 1fr) auto auto 40px; grid-template-areas: "img info qty total remove"; align-items: center; gap: 18px 22px; padding: 16px 18px 16px 16px; border-radius: var(--r-xl); background: var(--white); border: 1px solid var(--line); box-shadow: 0 30px 60px -50px rgba(43,61,88,0.5); transition: opacity 300ms; }
.aq-line__img { grid-area: img; }
.aq-line__img img { display: block; width: 112px; height: 112px; object-fit: cover; border-radius: var(--r-lg); background: var(--aqua-500); }
.aq-line__info { grid-area: info; min-width: 0; }
.aq-line__name { font-size: 1.7rem; line-height: 1; }
.aq-line__name a { color: var(--navy-800); }
.aq-line__name a:hover { color: var(--aqua-600); }
.aq-line__option { display: inline-block; margin-top: 8px; padding: 5px 12px; border-radius: var(--r-pill); background: var(--aqua-50); border: 1px solid rgba(0,184,255,0.22); font-size: 13px; font-weight: 700; color: var(--navy-800); }
.aq-line__price { margin-top: 10px; display: flex; align-items: baseline; gap: 6px; flex-wrap: wrap; font-size: 15px; font-weight: 700; color: var(--navy-900); }
.aq-line__price del { color: var(--muted); font-weight: 500; }
.aq-line__price ins { text-decoration: none; color: var(--pink-600); }
.aq-line__each { font-size: 13px; font-weight: 500; color: var(--muted); }
.aq-line__qty { grid-area: qty; }
.aq-line__total { grid-area: total; min-width: 96px; text-align: right; font-family: var(--font-display); font-weight: 700; font-size: 1.6rem; color: var(--navy-900); }
.aq-line__total small { display: block; font-family: var(--font-body); font-size: 11.5px; font-weight: 500; color: var(--muted); }
.aq-line__remove { grid-area: remove; }
.aq-line__remove a.remove { width: 40px !important; height: 40px !important; display: grid !important; place-items: center; border-radius: 50%; background: var(--aqua-50); color: var(--muted) !important; font-size: 18px !important; transition: background-color 200ms, color 200ms; }
.aq-line__remove a.remove:hover { background: #FFE3EE !important; color: var(--pink-600) !important; }
.woocommerce-cart-form.processing .aq-line { opacity: 0.55; }

.aq-cart__actions { display: flex; align-items: center; justify-content: space-between; gap: 14px; flex-wrap: wrap; padding: 6px 4px 0; }
.aq-cart__back { display: inline-flex; align-items: center; gap: 8px; font-weight: 800; font-size: 15px; color: var(--navy-800); }
.aq-cart__back:hover { color: var(--aqua-600); }
.aq-coupon summary { list-style: none; display: inline-flex; align-items: center; gap: 8px; cursor: pointer; font-weight: 700; font-size: 15px; color: var(--aqua-600); }
.aq-coupon summary::-webkit-details-marker { display: none; }
.aq-coupon[open] summary { margin-bottom: 10px; }
.aq-coupon .coupon { display: flex; gap: 8px; }
.aq-coupon .input-text { min-width: 0; width: 200px; height: 46px; padding: 0 16px; border-radius: var(--r-pill); border: 1.5px solid rgba(43,61,88,0.16); background: var(--white); font: inherit; font-size: 15px; }
.aq-coupon .input-text:focus { outline: none; border-color: var(--aqua-500); box-shadow: 0 0 0 4px rgba(0,184,255,0.15); }
.flow .aq-coupon .button { height: 46px; padding: 0 22px; border: 0; border-radius: var(--r-pill); background: var(--navy-800); color: var(--white); font: inherit; font-weight: 800; font-size: 14.5px; cursor: pointer; }
.flow .aq-cart__update { height: 46px; padding: 0 22px; border: 1.5px solid rgba(43,61,88,0.18); border-radius: var(--r-pill); background: var(--white); color: var(--navy-800); font: inherit; font-weight: 800; cursor: pointer; }
.aq-js .flow .aq-cart__update { display: none !important; }

.aq-cart__notes { margin-top: 24px; display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.aq-note { display: flex; gap: 14px; padding: 20px; border-radius: var(--r-lg); background: var(--white); border: 1px solid var(--line); }
.aq-note > i { flex-shrink: 0; width: 44px; height: 44px; border-radius: 50%; display: grid; place-items: center; background: var(--aqua-100); color: var(--aqua-600); font-size: 21px; }
.aq-note b { display: block; font-family: var(--font-display); font-size: 1.2rem; letter-spacing: 0.02em; text-transform: uppercase; color: var(--navy-800); }
.aq-note p { margin-top: 4px; font-size: 14px; color: var(--muted); }

/* Order summary (basket and checkout) */
.flow .cart-collaterals, .flow .cart-collaterals .cart_totals { float: none; width: auto; }
.flow .aq-cart .woocommerce-cart-form, .flow .aq-checkout .col2-set { width: auto; float: none; }
.aq-cart__side, .aq-checkout__side { position: sticky; top: 104px; }
.aq-summary { padding: clamp(22px, 3vw, 30px); border-radius: var(--r-xl); background: var(--navy-900); color: rgba(255,255,255,0.8); box-shadow: 0 40px 80px -50px rgba(28,42,62,0.8); }
.flow .aq-summary h2, .flow .aq-summary #order_review_heading { margin: 0 0 8px; font-size: 1.9rem; color: var(--white); }
.flow .aq-summary table { width: 100%; border-collapse: collapse; margin: 0; border: 0; }
.flow .aq-summary th, .flow .aq-summary td { padding: 13px 0; border: 0; border-bottom: 1px solid rgba(255,255,255,0.1); background: none; color: rgba(255,255,255,0.82); font-size: 15px; font-weight: 600; text-align: left; vertical-align: middle; }
.flow .aq-summary td { text-align: right; color: var(--white); }
.flow .aq-summary tr.order-total th, .flow .aq-summary tr.order-total td { border-bottom: 0; padding-top: 18px; font-family: var(--font-display); font-weight: 700; font-size: 1.5rem; letter-spacing: 0.02em; text-transform: uppercase; color: var(--white); }
.flow .aq-summary tr.order-total td strong, .flow .aq-summary tr.order-total td .amount { font-size: 2.3rem; color: var(--aqua-400); }
.flow .aq-summary tr.order-total td .includes_tax, .flow .aq-summary tr.order-total td small { display: block; font-family: var(--font-body); font-size: 12px; font-weight: 500; letter-spacing: 0; text-transform: none; color: rgba(255,255,255,0.6); }
.flow .aq-summary tr.order-total td .includes_tax .amount { font-size: 12px; color: rgba(255,255,255,0.7); }
.flow .aq-summary .aq-saving th, .flow .aq-summary .aq-saving td { color: #FF9BC6; }
.flow .aq-summary .aq-saving i { margin-right: 4px; }
.flow .aq-summary .cart-discount td a { color: var(--aqua-300); font-size: 13px; }
.flow .aq-summary #shipping_method { list-style: none; margin: 0; padding: 0; }
.flow .aq-summary #shipping_method li { margin: 0; }
.flow .aq-summary #shipping_method label { font-weight: 700; color: var(--white); }
.flow .aq-summary .woocommerce-shipping-destination, .flow .aq-summary .shipping-calculator-button { display: block; margin-top: 4px; font-size: 12.5px; font-weight: 500; color: rgba(255,255,255,0.6); }
.flow .aq-summary .shipping-calculator-button { color: var(--aqua-300); }
.flow .aq-summary .shipping-calculator-form { margin-top: 10px; text-align: left; }
.aq-grant-hint { margin-top: 16px; display: flex; gap: 12px; align-items: flex-start; padding: 14px 16px; border-radius: var(--r-md); background: rgba(0,184,255,0.12); border: 1px solid rgba(0,184,255,0.3); font-size: 14px; }
.aq-grant-hint i { font-size: 24px; color: var(--aqua-400); }
.aq-grant-hint b { color: var(--white); }
.flow .wc-proceed-to-checkout { margin-top: 20px; padding: 0; }
.flow .wc-proceed-to-checkout .checkout-button { width: 100%; margin: 0; justify-content: center; min-height: 62px; font-size: 17px; border-radius: var(--r-pill); }
.flow .wc-proceed-to-checkout > * + * { margin-top: 12px; }
.aq-summary__assure { margin-top: 20px; display: grid; gap: 9px; font-size: 14px; font-weight: 600; }
.aq-summary__assure i, .aq-checkout-assure i { margin-right: 8px; font-size: 18px; color: var(--aqua-400); vertical-align: -3px; }
.aq-summary__pay { display: block; width: 100%; margin-top: 18px; padding: 10px 14px; border-radius: var(--r-md); background: var(--white); }

/* ---------- Empty basket ---------- */
.aq-empty { max-width: 640px; margin: clamp(12px, 3vw, 32px) auto 0; padding: clamp(32px, 5vw, 56px); text-align: center; border-radius: var(--r-xl); background: var(--white); box-shadow: 0 40px 80px -60px rgba(43,61,88,0.5); }
.aq-empty__icon { width: 96px; height: 96px; margin: 0 auto; border-radius: 50%; display: grid; place-items: center; background: var(--aqua-100); color: var(--aqua-600); font-size: 44px; }
.aq-empty h2 { margin-top: 18px; font-size: clamp(2rem, 3.6vw, 2.8rem); color: var(--navy-800); }
.aq-empty p { margin-top: 8px; color: var(--muted); }
.aq-empty__btns { margin-top: 24px; display: flex; flex-wrap: wrap; justify-content: center; gap: 12px; }
.aq-empty__picks { margin-top: clamp(32px, 5vw, 56px); display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px; }
.aq-pick { display: grid; gap: 4px; padding: 14px 14px 18px; border-radius: var(--r-xl); background: var(--white); border: 1px solid var(--line); text-align: center; transition: transform 400ms var(--ease-soft), box-shadow 400ms; }
.aq-pick:hover { transform: translateY(-4px); box-shadow: 0 30px 50px -36px rgba(43,61,88,0.55); }
.aq-pick img { width: 100%; aspect-ratio: 1; object-fit: cover; border-radius: var(--r-lg); background: var(--aqua-500); margin-bottom: 8px; }
.aq-pick b { font-family: var(--font-display); font-size: 1.5rem; color: var(--navy-800); }
.aq-pick span { font-size: 14px; color: var(--muted); }

/* ---------- Checkout ---------- */
.aq-checkout { display: grid; grid-template-columns: minmax(0, 1fr) 420px; gap: clamp(20px, 3vw, 36px); align-items: start; }
.aq-checkout__main { display: grid; gap: 18px; min-width: 0; }
#customer_details { display: grid; gap: 18px; }
.aq-step { padding: clamp(22px, 3vw, 32px); border-radius: var(--r-xl); background: var(--white); border: 1px solid var(--line); box-shadow: 0 30px 60px -50px rgba(43,61,88,0.5); }
.aq-step__head { display: grid; grid-template-columns: auto 1fr; column-gap: 14px; align-items: center; margin-bottom: 22px; }
.aq-step__num { grid-row: span 2; width: 40px; height: 40px; border-radius: 50%; display: grid; place-items: center; background: var(--navy-800); color: var(--white); font-family: var(--font-display); font-weight: 700; font-size: 1.2rem; }
.aq-step__head h2 { font-size: 1.9rem; line-height: 1; color: var(--navy-800); }
.aq-step__head p { display: flex; align-items: center; gap: 6px; margin-top: 4px; font-size: 14px; color: var(--muted); }
.aq-step__head p i { color: var(--aqua-500); }
.aq-checkout .woocommerce-billing-fields > h3, .aq-checkout .woocommerce-additional-fields > h3 { display: none; }

/* Fields */
.aq-checkout .woocommerce-billing-fields__field-wrapper, .aq-checkout .woocommerce-shipping-fields__field-wrapper { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.aq-checkout .form-row { margin: 0; padding: 0; width: auto !important; float: none !important; }
.aq-checkout .form-row-wide, .aq-checkout #billing_address_1_field, .aq-checkout #billing_address_2_field, .aq-checkout #billing_country_field, .aq-checkout #shipping_address_1_field, .aq-checkout #shipping_address_2_field, .aq-checkout #shipping_country_field { grid-column: 1 / -1; }
.aq-checkout .woocommerce-billing-fields__field-wrapper > * { order: 5; }
.aq-checkout #billing_email_field { order: 1; }
.aq-checkout #billing_phone_field { order: 2; }
.aq-checkout #billing_first_name_field, .aq-checkout #billing_last_name_field { order: 3; }
.aq-checkout #billing_country_field { order: 4; }
.aq-checkout #billing_vat_field, .aq-checkout #billing_vat_number_field { order: 20; grid-column: 1 / -1; }
.aq-checkout #billing_email_field, .aq-checkout #billing_phone_field { grid-column: auto; }
.aq-checkout .form-row label { display: block; margin-bottom: 7px; font-size: 13.5px; font-weight: 800; color: var(--navy-800); line-height: 1.3; }
.aq-checkout .form-row .required { color: var(--pink-500); text-decoration: none; border: 0; }
.aq-checkout .form-row .optional { font-weight: 500; color: var(--muted); }
.aq-checkout .input-text, .aq-checkout select, .aq-checkout textarea, .aq-checkout .select2-container .select2-selection--single {
  width: 100%; min-height: 54px; padding: 14px 16px; border-radius: 14px; border: 1.5px solid rgba(43,61,88,0.16); background: var(--white); font: inherit; font-size: 16px; color: var(--navy-900); box-shadow: none; transition: border-color 200ms, box-shadow 200ms;
}
.aq-checkout textarea { min-height: 110px; }
.aq-checkout .input-text::placeholder, .aq-checkout textarea::placeholder { color: rgba(85,101,125,0.7); }
.aq-checkout .input-text:hover, .aq-checkout select:hover, .aq-checkout textarea:hover { border-color: rgba(43,61,88,0.3); }
.aq-checkout .input-text:focus, .aq-checkout select:focus, .aq-checkout textarea:focus, .aq-checkout .select2-container--focus .select2-selection--single, .aq-checkout .select2-container--open .select2-selection--single { outline: none; border-color: var(--aqua-500); box-shadow: 0 0 0 4px rgba(0,184,255,0.15); }
.aq-checkout .woocommerce-invalid .input-text, .aq-checkout .woocommerce-invalid select, .aq-checkout .woocommerce-invalid .select2-selection { border-color: var(--pink-500) !important; }
.aq-checkout .woocommerce-validated .input-text:not(:focus) { border-color: rgba(0,184,255,0.45); }
.aq-checkout .select2-container .select2-selection--single { display: flex; align-items: center; padding: 0 16px; }
.aq-checkout .select2-container .select2-selection__rendered { padding: 0 !important; line-height: 1.4 !important; color: var(--navy-900) !important; }
.aq-checkout .select2-container .select2-selection__arrow { top: 50% !important; right: 12px !important; transform: translateY(-50%); }
.aq-checkout .woocommerce-input-wrapper .description { display: block; margin-top: 6px; padding: 8px 12px; border-radius: 10px; background: var(--aqua-50); color: var(--muted); font-size: 13px; }
.aq-checkout .checkout-inline-error-message { margin-top: 6px; font-size: 13px; font-weight: 600; color: var(--pink-600); }

/* Deliver somewhere else, and order notes */
.aq-checkout #ship-to-different-address { margin: 0 0 4px; font-family: var(--font-body); font-size: 15px; text-transform: none; letter-spacing: 0; }
.aq-checkout #ship-to-different-address label { display: flex; align-items: center; gap: 12px; padding: 14px 16px; border-radius: var(--r-md); background: var(--aqua-50); font-weight: 700; color: var(--navy-800); cursor: pointer; }
.aq-checkout #ship-to-different-address input { width: 20px; height: 20px; margin: 0; accent-color: var(--aqua-500); }
.aq-checkout .shipping_address { margin-top: 18px; }
.aq-checkout .woocommerce-additional-fields { margin-top: 18px; }

/* Payment: each method a selectable card */
.aq-checkout #payment { background: none; border-radius: 0; }
.aq-checkout #payment ul.payment_methods { list-style: none; margin: 0; padding: 0; border: 0; display: grid; gap: 10px; }
.aq-checkout #payment ul.payment_methods::before, .aq-checkout #payment ul.payment_methods::after { display: none; }
.aq-checkout #payment li.wc_payment_method { margin: 0; padding: 0; border-radius: var(--r-lg); border: 1.5px solid rgba(43,61,88,0.14); background: var(--white); transition: border-color 200ms, background-color 200ms, box-shadow 200ms; }
.aq-checkout #payment li.wc_payment_method:hover { border-color: rgba(43,61,88,0.3); }
.aq-checkout #payment li.wc_payment_method:has(> input:checked) { border-color: var(--aqua-500); background: var(--aqua-50); box-shadow: 0 0 0 4px rgba(0,184,255,0.12); }
.aq-checkout #payment li.wc_payment_method > input { position: absolute; opacity: 0; pointer-events: none; }
.aq-checkout #payment li.wc_payment_method > label { position: relative; display: flex; align-items: center; flex-wrap: wrap; gap: 10px; min-height: 60px; margin: 0; padding: 14px 16px 14px 52px; font-weight: 800; font-size: 15.5px; color: var(--navy-900); cursor: pointer; }
.aq-checkout #payment li.wc_payment_method > label::before { content: ""; position: absolute; left: 16px; top: 50%; width: 22px; height: 22px; margin-top: -11px; border-radius: 50%; border: 2px solid rgba(43,61,88,0.3); background: var(--white); transition: border 200ms; }
.aq-checkout #payment li.wc_payment_method > input:checked + label::before { border: 7px solid var(--aqua-500); }
.aq-checkout #payment li.wc_payment_method > input:focus-visible + label { outline: 2px solid var(--aqua-500); outline-offset: 2px; border-radius: var(--r-lg); }
.aq-checkout #payment li.wc_payment_method > label img { max-height: 24px; width: auto; margin: 0 0 0 auto; }
.aq-checkout #payment div.payment_box { width: auto; box-sizing: border-box; margin: 0 14px 14px; padding: 16px; border-radius: var(--r-md); background: var(--white); color: var(--navy-800); font-size: 14.5px; box-shadow: inset 0 0 0 1px var(--line); }
.aq-checkout #payment div.payment_box::before { display: none; }
.aq-checkout #payment div.payment_box p:last-child { margin-bottom: 0; }
.aq-checkout #payment .woocommerce-notice, .aq-checkout #payment .woocommerce-info { margin: 0; }
.aq-checkout #payment div.form-row.place-order { margin-top: 18px; padding: 0; }
.aq-checkout .woocommerce-terms-and-conditions-wrapper { margin-bottom: 16px; font-size: 13.5px; color: var(--muted); }
.aq-checkout .woocommerce-terms-and-conditions-wrapper a { color: var(--aqua-600); font-weight: 700; }
.aq-checkout .woocommerce-form__label-for-checkbox { display: flex !important; align-items: flex-start; gap: 10px; font-weight: 600 !important; }
.aq-checkout .woocommerce-form__label-for-checkbox input { width: 18px; height: 18px; margin-top: 2px; accent-color: var(--aqua-500); }
.aq-checkout #place_order { position: relative; width: 100%; min-height: 64px; float: none; border: 0; border-radius: var(--r-pill); background: var(--pink-500); color: var(--white); font: inherit; font-weight: 800; font-size: 17.5px; letter-spacing: 0.01em; box-shadow: 0 16px 40px -14px rgba(240,89,154,0.8); cursor: pointer; transition: transform 400ms var(--ease-soft), background-color 250ms, box-shadow 400ms; }
.aq-checkout #place_order::before { content: "\e2fe"; font-family: "Phosphor-Fill"; font-weight: normal; margin-right: 10px; font-size: 18px; vertical-align: -2px; }
.aq-checkout #place_order:hover { background: var(--pink-600); transform: translateY(-2px); box-shadow: 0 22px 46px -16px rgba(240,89,154,0.85); }
.aq-checkout #place_order:disabled, .aq-checkout.processing #place_order { opacity: 0.7; cursor: wait; transform: none; }

/* Checkout order summary */
.flow .aq-review tbody td { padding: 12px 0; }
.aq-review__item { display: flex; align-items: center; gap: 14px; text-align: left; }
.aq-review__img { position: relative; flex-shrink: 0; }
.aq-review__img img { display: block; width: 58px !important; height: 58px !important; border-radius: 12px; object-fit: cover; background: var(--aqua-500); }
.aq-review__qty { position: absolute; top: -7px; right: -7px; min-width: 22px; height: 22px; padding: 0 6px; border-radius: 11px; display: grid; place-items: center; background: var(--pink-500); color: var(--white); font-size: 12px; font-weight: 800; box-shadow: 0 0 0 2px var(--navy-900); }
.aq-review__text b { display: block; font-family: var(--font-display); font-size: 1.25rem; letter-spacing: 0.02em; text-transform: uppercase; color: var(--white); }
.aq-review__text small { display: block; margin-top: 2px; font-size: 13px; color: var(--aqua-300); }
.flow .aq-review .product-total { white-space: nowrap; }
.flow .aq-review .product-total small { display: block; font-size: 11.5px; color: rgba(255,255,255,0.55); }
.flow .aq-summary .aq-grant-row td { border: 0; padding: 12px 14px; text-align: left; border-radius: var(--r-md); background: rgba(0,184,255,0.12); font-size: 13.5px; font-weight: 500; color: rgba(255,255,255,0.85); }
.flow .aq-summary .aq-grant-row i { font-size: 18px; color: var(--aqua-400); vertical-align: -3px; margin-right: 4px; }
.flow .aq-summary .aq-grant-row b, .flow .aq-summary .aq-grant-row .amount { color: var(--white); }
.aq-checkout-assure { margin: 18px 0 0; padding: 16px 0 0; display: grid; gap: 9px; list-style: none; border-top: 1px solid rgba(255,255,255,0.1); font-size: 14px; font-weight: 600; color: rgba(255,255,255,0.86); }
.aq-summary-toggle { display: none; }

/* The coupon and returning-customer boxes above the checkout */
.flow .woocommerce-form-coupon-toggle .woocommerce-info, .flow .woocommerce-form-login-toggle .woocommerce-info { display: flex; align-items: center; gap: 8px; border-left-color: var(--aqua-500); }
.flow form.checkout_coupon, .flow form.woocommerce-form-login { margin: 0 0 18px; padding: 20px; border: 1px solid var(--line); border-radius: var(--r-lg); background: var(--white); }
.flow form.checkout_coupon { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; }
.flow form.checkout_coupon p { margin: 0; }
.flow form.checkout_coupon > p:first-child { flex-basis: 100%; font-size: 14px; color: var(--muted); }
.flow form.checkout_coupon .form-row-first { flex: 1; width: auto; float: none; }
.flow form.checkout_coupon .form-row-last { width: auto; float: none; }
.flow form.checkout_coupon .input-text { width: 100%; height: 48px; padding: 0 16px; border-radius: var(--r-pill); border: 1.5px solid rgba(43,61,88,0.16); font: inherit; }
.flow form.checkout_coupon .button, .flow form.woocommerce-form-login .button { height: 48px; padding: 0 24px; border: 0; border-radius: var(--r-pill); background: var(--navy-800); color: var(--white); font: inherit; font-weight: 800; cursor: pointer; }

/* ---------- Order payment page (order-pay) ---------- */
.flow form#order_review:not(.aq-checkout) { max-width: 760px; margin: 0 auto; padding: clamp(22px, 3vw, 32px); border-radius: var(--r-xl); background: var(--white); border: 1px solid var(--line); box-shadow: 0 30px 60px -50px rgba(43,61,88,0.5); }
.flow form#order_review:not(.aq-checkout) table.shop_table { width: 100%; border-collapse: collapse; border: 0; margin-bottom: 20px; }
.flow form#order_review:not(.aq-checkout) th, .flow form#order_review:not(.aq-checkout) td { padding: 12px 0; border: 0; border-bottom: 1px solid var(--line); text-align: left; }
.flow form#order_review:not(.aq-checkout) #place_order { width: 100%; min-height: 62px; border: 0; border-radius: var(--r-pill); background: var(--pink-500); color: var(--white); font: inherit; font-weight: 800; font-size: 17px; cursor: pointer; }

/* ---------- Order received ---------- */
.aq-thanks { max-width: 920px; margin: 0 auto; }
.aq-thanks__hero { display: flex; align-items: center; gap: clamp(18px, 3vw, 32px); padding: clamp(26px, 4vw, 44px); border-radius: var(--r-xl); background: var(--navy-900); color: rgba(255,255,255,0.82); box-shadow: 0 40px 80px -50px rgba(28,42,62,0.8); position: relative; overflow: hidden; }
.aq-thanks__hero::after { content: ""; position: absolute; right: -100px; top: -140px; width: 380px; height: 380px; border-radius: 50%; background: radial-gradient(circle, rgba(0,184,255,0.25), transparent 65%); pointer-events: none; }
.aq-thanks__icon { position: relative; flex-shrink: 0; width: 92px; height: 92px; border-radius: 50%; display: grid; place-items: center; background: var(--aqua-500); color: var(--white); font-size: 46px; box-shadow: 0 0 0 10px rgba(0,184,255,0.18); animation: aq-pop 700ms var(--ease-soft) both; }
.aq-thanks__hero--failed .aq-thanks__icon { background: var(--pink-500); box-shadow: 0 0 0 10px rgba(240,89,154,0.2); }
@keyframes aq-pop { from { transform: scale(0.4); opacity: 0; } to { transform: scale(1); opacity: 1; } }
.flow .aq-thanks__hero h2 { margin: 0; padding: 0; border: 0; background: none; font-size: clamp(2.2rem, 4vw, 3.2rem); color: var(--white); }
.flow .aq-thanks__hero h2::before { display: none; }
.aq-thanks__hero p { margin-top: 8px; }
.aq-thanks__hero p b { color: var(--white); }
.flow .aq-thanks__hero .woocommerce-notice { margin: 8px 0 0; padding: 0; border: 0; background: none; color: rgba(255,255,255,0.82); box-shadow: none; }
.aq-thanks__btns { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 18px !important; }
.flow ul.aq-thanks__facts { margin: 18px 0 0; padding: 0; list-style: none; display: grid; grid-template-columns: repeat(auto-fit, minmax(170px, 1fr)); gap: 12px; }
.flow ul.aq-thanks__facts li { margin: 0; padding: 16px 18px; border: 0; border-radius: var(--r-lg); background: var(--white); box-shadow: 0 24px 50px -44px rgba(43,61,88,0.6); font-size: 12px; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; color: var(--muted); float: none; }
.flow ul.aq-thanks__facts strong { display: block; margin-top: 6px; font-size: 16px; letter-spacing: 0; text-transform: none; color: var(--navy-900); }
.aq-next { margin-top: 18px; padding: clamp(22px, 3vw, 32px); border-radius: var(--r-xl); background: var(--white); border: 1px solid var(--line); }
.aq-next h3 { font-size: 1.8rem; color: var(--navy-800); }
.aq-next ol { margin-top: 16px; display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; counter-reset: next; }
.aq-next li { display: grid; gap: 6px; padding: 18px; border-radius: var(--r-lg); background: var(--aqua-50); }
.aq-next li i { font-size: 30px; color: var(--aqua-500); }
.aq-next li b { font-family: var(--font-display); font-size: 1.3rem; letter-spacing: 0.02em; text-transform: uppercase; color: var(--navy-800); }
.aq-next li span { font-size: 14px; color: var(--muted); }
.aq-next li a { color: var(--aqua-600); font-weight: 700; }
.flow .aq-thanks .woocommerce-order-details, .flow .aq-thanks .woocommerce-customer-details { margin-top: 18px; padding: clamp(22px, 3vw, 32px); border-radius: var(--r-xl); background: var(--white); border: 1px solid var(--line); }
.flow .aq-thanks .woocommerce-order-details__title, .flow .aq-thanks .woocommerce-column__title { font-size: 1.8rem; color: var(--navy-800); margin-bottom: 12px; }
.flow .aq-thanks table.order_details { width: 100%; border-collapse: collapse; border: 0; margin: 0; }
.flow .aq-thanks table.order_details th, .flow .aq-thanks table.order_details td { padding: 12px 0; border: 0; border-bottom: 1px solid var(--line); text-align: left; font-size: 15px; }
.flow .aq-thanks table.order_details td:last-child, .flow .aq-thanks table.order_details th:last-child { text-align: right; }
.flow .aq-thanks table.order_details tfoot tr:last-child th, .flow .aq-thanks table.order_details tfoot tr:last-child td { border-bottom: 0; font-family: var(--font-display); font-size: 1.4rem; color: var(--navy-900); }
.flow .aq-thanks table.order_details a { color: var(--navy-800); font-weight: 800; }
.flow .aq-thanks .wc-item-meta { list-style: none; margin: 4px 0 0; padding: 0; font-size: 13px; color: var(--muted); }
.flow .aq-thanks .wc-item-meta p { display: inline; }
.flow .aq-thanks .woocommerce-columns--addresses { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.flow .aq-thanks .woocommerce-column { width: auto; float: none; }
.flow .aq-thanks address { padding: 16px 18px; border: 0; border-radius: var(--r-lg); background: var(--aqua-50); font-style: normal; line-height: 1.6; color: var(--navy-800); }
.aq-thanks__help { margin-top: 24px; text-align: center; color: var(--muted); font-size: 15px; }
.aq-thanks__help a { color: var(--aqua-600); font-weight: 800; }

/* ---------- Tablets and phones ---------- */
@media (max-width: 1080px) {
  .aq-cart { grid-template-columns: minmax(0, 1fr) 360px; }
  .aq-line { grid-template-columns: 96px minmax(0, 1fr) auto 40px; grid-template-areas: "img info info remove" "img qty total total"; }
  .aq-line__img img { width: 96px; height: 96px; }
}
@media (max-width: 960px) {
  .aq-cart, .aq-checkout { grid-template-columns: 1fr; }
  .aq-cart__side, .aq-checkout__side { position: static; }
  .aq-checkout__side { order: -1; }
  .aq-summary-toggle { display: flex; width: 100%; align-items: center; justify-content: space-between; gap: 12px; padding: 16px 18px; border: 1px solid var(--line); border-radius: var(--r-lg); background: var(--white); font: inherit; font-weight: 800; color: var(--navy-800); cursor: pointer; }
  .aq-summary-toggle > span { display: inline-flex; align-items: center; gap: 8px; color: var(--aqua-600); }
  .aq-summary-toggle b { font-family: var(--font-display); font-size: 1.4rem; color: var(--navy-900); }
  .aq-summary-toggle b small, .aq-summary-toggle b .includes_tax { display: none; }
  .aq-checkout__side .aq-summary--checkout { display: none; margin-top: 10px; }
  .aq-checkout__side.is-open .aq-summary--checkout { display: block; }
  .aq-checkout__side.is-open .aq-summary-toggle .ph-caret-down { transform: rotate(180deg); }
  .aq-next ol { grid-template-columns: 1fr; }
}
@media (max-width: 640px) {
  .flow__head { align-items: flex-start; }
  .flow-steps span, .flow-steps a { font-size: 0; gap: 0; }
  .flow-steps b { font-size: 13px; }
  .flow-steps .is-current span { font-size: 13px; gap: 8px; }
  .aq-line { grid-template-columns: 76px minmax(0, 1fr) 40px; grid-template-areas: "img info remove" "qty qty total"; gap: 12px 14px; padding: 14px; }
  .aq-line__img img { width: 76px; height: 76px; }
  .aq-line__name { font-size: 1.4rem; }
  .aq-line__total { text-align: right; }
  .aq-cart__notes { grid-template-columns: 1fr; }
  .aq-cart__actions { flex-direction: column; align-items: stretch; }
  .aq-coupon .input-text { width: 100%; flex: 1; }
  .aq-checkout .woocommerce-billing-fields__field-wrapper, .aq-checkout .woocommerce-shipping-fields__field-wrapper { grid-template-columns: 1fr; }
  .aq-empty__picks { grid-template-columns: 1fr 1fr; }
  .aq-thanks__hero { flex-direction: column; align-items: flex-start; }
  .flow .aq-thanks .woocommerce-columns--addresses { grid-template-columns: 1fr; }
}

/* WooCommerce's own button colours stay out of the basket's checkout button */
.flow .wc-proceed-to-checkout a.checkout-button.button.alt { display: flex; align-items: center; justify-content: center; gap: 14px; padding: 0 12px 0 30px; background: var(--pink-500); color: var(--white); font-weight: 800; box-shadow: 0 16px 40px -14px rgba(240,89,154,0.8); }
.flow .wc-proceed-to-checkout a.checkout-button.button.alt:hover { background: var(--pink-600); color: var(--white); }
.flow .wc-proceed-to-checkout a.checkout-button .btn-ic { margin-left: auto; }
.flow .wc-proceed-to-checkout a.checkout-button::after { content: none; }
.flow .aq-summary th { white-space: nowrap; padding-right: 12px; }
/* Delivery is Malta only, so the basket doesn't ask where to. */
.flow .aq-cart .woocommerce-shipping-destination, .flow .aq-cart .shipping-calculator-button, .flow .aq-cart .woocommerce-shipping-calculator, .flow .aq-cart .woocommerce-shipping-totals td > p { display: none; }

/* "Verify your email" (a guest opening their order from another browser) */
.flow--done .woocommerce > .woocommerce-notice, .flow--done .woocommerce > p.woocommerce-thankyou-order-received { max-width: 560px; margin: 0 auto 14px; font-family: var(--font-display); font-size: 1.6rem; text-transform: uppercase; color: var(--navy-800); text-align: center; }
.flow form.woocommerce-verify-email { max-width: 560px; margin: 0 auto; padding: clamp(24px, 4vw, 36px); border-radius: var(--r-xl); background: var(--white); border: 1px solid var(--line); box-shadow: 0 40px 80px -60px rgba(43,61,88,0.5); display: grid; gap: 14px; }
.flow form.woocommerce-verify-email p { margin: 0; color: var(--muted); }
.flow form.woocommerce-verify-email label { display: block; margin-bottom: 7px; font-size: 13.5px; font-weight: 800; color: var(--navy-800); }
.flow form.woocommerce-verify-email .required { color: var(--pink-500); text-decoration: none; }
.flow form.woocommerce-verify-email .input-text { width: 100%; min-height: 54px; padding: 14px 16px; border-radius: 14px; border: 1.5px solid rgba(43,61,88,0.16); font: inherit; font-size: 16px; }
.flow form.woocommerce-verify-email .input-text:focus { outline: none; border-color: var(--aqua-500); box-shadow: 0 0 0 4px rgba(0,184,255,0.15); }
.flow form.woocommerce-verify-email .button { width: 100%; min-height: 56px; border: 0; border-radius: var(--r-pill); background: var(--pink-500); color: var(--white); font: inherit; font-weight: 800; font-size: 16px; cursor: pointer; }
.flow form.woocommerce-verify-email .button:hover { background: var(--pink-600); color: var(--white); }
.flow ul.aq-thanks__facts::before, .flow ul.aq-thanks__facts::after { display: none; }
.aq-next ol { padding: 0; list-style: none; }
.flow .aq-thanks .order-actions--heading + td .button { margin: 0 0 0 8px; padding: 8px 16px; border-radius: var(--r-pill); background: var(--aqua-50); color: var(--navy-800); font-weight: 800; }
.flow-steps b i { font-size: 15px; }
@media (max-width: 960px) {
  .aq-summary-toggle > span { white-space: nowrap; }
}
@media (max-width: 640px) {
  .aq-line { grid-template-columns: 76px minmax(0, 1fr) 40px; grid-template-areas: "img info remove" "qty qty qty"; }
  .aq-line__total { position: absolute; right: 18px; bottom: 22px; min-width: 0; font-size: 1.45rem; }
}
/* Basket: items, then the summary, then the notes (on phones the summary comes straight after the items) */
.aq-cart { grid-template-areas: "main side" "notes side"; grid-template-rows: auto 1fr; }
.aq-cart > .woocommerce-cart-form { grid-area: main; }
.aq-cart > .aq-cart__side { grid-area: side; }
.aq-cart > .aq-cart__notes { grid-area: notes; margin-top: 0; }
@media (max-width: 960px) { .aq-cart { grid-template-areas: "main" "side" "notes"; } }
