/* ============================================================
   AQUARUBIN — checkout.css
   Clear two-column checkout over the dashboard coral.
   Left: customer/address data · Right: review, shipping, payment and submit.
   All WooCommerce and Germanized functionality remains untouched.
   ============================================================ */

/* ---- WooCommerce blockUI overlay (during update_checkout AJAX) — dark, with spinner ---- */
.woocommerce-checkout .blockUI.blockOverlay {
    background: var(--clr-bg) !important;
    opacity: 0.55 !important;
}
.woocommerce-checkout .blockUI.blockOverlay::before {
    content: '';
    position: absolute;
    top: 50%;
    left: 50%;
    width: 28px;
    height: 28px;
    margin: -14px 0 0 -14px;
    border: 2px solid rgba(255, 255, 255, 0.15);
    border-top-color: var(--clr-blue-light);
    border-radius: 50%;
    animation: aq-checkout-spin 0.7s linear infinite;
}
@keyframes aq-checkout-spin { to { transform: rotate(360deg); } }

/* Accessibility helper */
.aq-visually-hidden {
    position: absolute !important;
    width: 1px; height: 1px;
    padding: 0; margin: -1px;
    overflow: hidden; clip: rect(0 0 0 0);
    white-space: nowrap; border: 0;
}

/* ============================================================
   PAGE STAGE + CORAL BACKGROUND
   Checkout renders through page.php:
   .page-main > .container > article.page-content > .page-body.entry-content
   > .woocommerce > .aq-checkout. Strip that page chrome (title + card frame)
   so .aq-checkout owns the stage over the coral background.
   ============================================================ */
.wc-main--checkout {
    padding-block: clamp(var(--space-6), 4vw, var(--space-10)) var(--space-20);
    padding-inline: clamp(var(--space-4), 3vw, var(--space-8));
    position: relative;
    overflow: visible;
    isolation: isolate;
}

body.woocommerce-checkout .page-header { display: none !important; }
body.woocommerce-checkout .page-main {
    position: relative;
    z-index: 1;
    padding-block: clamp(var(--space-6), 4vw, var(--space-10)) var(--space-20);
}
body.woocommerce-checkout .page-main > .container {
    max-width: none;
    padding-inline: clamp(var(--space-4), 3vw, var(--space-8));
}
body.woocommerce-checkout .page-content,
body.woocommerce-checkout .page-body,
body.woocommerce-checkout .page-body > .woocommerce {
    max-width: 100%;
    margin: 0;
    padding: 0;
    background: transparent;
    border: 0;
    box-shadow: none;
}
/* Neutralise the theme's ruby .entry-content link underline for checkout links
   that aren't meant to look like body links (progress steps). */
.aq-checkout-steps a.aq-checkout-steps__link,
.aq-checkout-steps a.aq-checkout-steps__link:hover { text-decoration: none !important; }

.aq-checkout__bg {
    position: fixed;
    inset: 0;
    z-index: 0;
    pointer-events: none;
}
.aq-checkout__bg img {
    width: 100% !important;
    height: 100% !important;
    max-width: none !important;
    object-fit: cover !important;
    object-position: center;
    display: block;
}
.aq-checkout__bg::after {
    content: "";
    position: absolute;
    inset: 0;
    background:
        radial-gradient(130% 100% at 50% 0%, rgba(10,8,22,0.42) 0%, rgba(10,8,22,0.66) 55%, rgba(8,6,18,0.80) 100%),
        linear-gradient(180deg, rgba(8,6,18,0.50) 0%, rgba(8,6,18,0.78) 100%);
}

/* ============================================================
   RESPONSIVE CHECKOUT GRID
   Desktop: details left, summary right. Tablet/mobile: natural stacked flow.
   The checkout <form> is display:contents so its wrappers + the separate
   returning-customer login <form> all join this grid directly.
   ============================================================ */
.aq-checkout {
    position: relative;
    z-index: 1;
    width: 100%;
    max-width: 1180px;
    margin-inline: auto;
    display: grid;
    grid-template-columns: minmax(0, 1.35fr) minmax(360px, 0.85fr);
    grid-template-areas:
        "intro intro"
        "prog prog"
        "sw right"
        "left right";
    gap: clamp(var(--space-4), 2vw, var(--space-6));
    column-gap: clamp(var(--space-5), 2.5vw, var(--space-8));
    align-items: start;
}

form.woocommerce-checkout { display: contents; }

.aq-checkout__intro  { grid-area: intro; }
.aq-checkout-steps   { grid-area: prog; }
.aq-checkout__switch { grid-area: sw; }
.aq-checkout__left   { grid-area: left; }
.aq-checkout__login  { grid-area: left; }
.aq-checkout__right  { grid-area: right; }

body.logged-in .aq-checkout {
    grid-template-areas:
        "intro intro"
        "prog prog"
        "left right";
}

/* Lift everything above the fixed coral */
.aq-checkout__intro,
.aq-checkout-steps,
.aq-checkout__switch,
.aq-checkout__card { position: relative; z-index: 1; }

/* Login mode: collapse to a focused centred column, hide the checkout sections */
.aq-checkout.is-login {
    grid-template-columns: minmax(0, 1fr);
    grid-template-areas: "intro" "prog" "sw" "left";
    max-width: 640px;
}
.aq-checkout.is-login .aq-checkout__left,
.aq-checkout.is-login .aq-checkout__right { display: none; }

.aq-checkout__intro {
    max-width: 48rem;
    padding-top: var(--space-2);
}
.aq-checkout__eyebrow {
    margin: 0 0 var(--space-2);
    color: #8fc8ff;
    font-size: 0.76rem;
    font-weight: 750;
    letter-spacing: 0.11em;
    text-transform: uppercase;
}
.aq-checkout__title {
    margin: 0;
    color: #fff;
    font-size: clamp(2rem, 4vw, 3.15rem);
    font-weight: 850;
    letter-spacing: -0.045em;
    line-height: 1.05;
    text-wrap: balance;
}
.aq-checkout__intro-text {
    max-width: 58ch;
    margin: var(--space-3) 0 0;
    color: var(--clr-text-muted);
    font-size: clamp(0.95rem, 1.4vw, 1.05rem);
    line-height: 1.65;
    text-wrap: pretty;
}

/* ============================================================
   GLASS CARD (shared)
   ============================================================ */
.aq-checkout__card {
    width: 100%;
    min-width: 0;
    max-width: 100%;
    background: rgba(16, 18, 40, 0.78);
    backdrop-filter: blur(24px) saturate(125%);
    -webkit-backdrop-filter: blur(24px) saturate(125%);
    border: 1px solid rgba(142, 188, 255, 0.14);
    border-radius: var(--radius-2xl);
    box-shadow:
        0 24px 70px rgba(3, 6, 24, 0.42),
        inset 0 1px 0 rgba(255,255,255,0.07);
    padding: clamp(var(--space-5), 2.6vw, var(--space-8));
    box-sizing: border-box;
    overflow: hidden;
}

.aq-checkout,
.aq-checkout *,
.aq-checkout *::before,
.aq-checkout *::after {
    box-sizing: border-box;
}
.aq-checkout img,
.aq-checkout svg,
.aq-checkout iframe {
    max-width: 100%;
}
.aq-checkout p,
.aq-checkout li,
.aq-checkout label,
.aq-checkout th,
.aq-checkout td {
    overflow-wrap: anywhere;
}

.aq-checkout__card-title {
    margin: 0 0 var(--space-2);
    font-size: clamp(1.15rem, 2vw, 1.35rem);
    font-weight: 800;
    letter-spacing: -0.025em;
    line-height: 1.2;
    color: #fff;
    text-wrap: balance;
}

.aq-checkout__subheading {
    display: block;
    margin: var(--space-6) 0 var(--space-4);
    color: #d9e9ff;
    font-size: 0.9rem;
    font-weight: 750;
    letter-spacing: -0.01em;
}

.aq-checkout__card-desc {
    margin: 0;
    font-size: 0.9rem;
    line-height: 1.6;
    color: var(--clr-text-muted);
    text-wrap: pretty;
}

.aq-checkout__card-head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: var(--space-4);
    margin-bottom: var(--space-6);
}
.aq-checkout__card-head > * { min-width: 0; }
.aq-checkout__edit-cart {
    flex: 0 0 auto;
    display: inline-flex;
    align-items: center;
    min-height: 38px;
    padding: 0 var(--space-3);
    border: 1px solid rgba(127, 196, 255, 0.24);
    border-radius: var(--radius-md);
    color: #a9d5ff !important;
    font-size: 0.78rem;
    font-weight: 700;
    line-height: 1.25;
    text-align: center;
    text-decoration: none !important;
    transition: background 0.2s, border-color 0.2s, color 0.2s, transform 0.15s;
}
.aq-checkout__edit-cart:hover {
    background: rgba(64, 170, 255, 0.09);
    border-color: rgba(127, 196, 255, 0.46);
    color: #fff !important;
}
.aq-checkout__edit-cart:active { transform: translateY(1px); }
.aq-checkout__edit-cart:focus-visible {
    outline: 2px solid var(--clr-blue-light);
    outline-offset: 2px;
}

/* ============================================================
   COMPACT PROGRESS RAIL (dynamic: checkout.js toggles states)
   ============================================================ */
.aq-checkout-steps {
    padding: var(--space-4) clamp(var(--space-4), 2vw, var(--space-6));
    border-radius: var(--radius-xl);
    background: rgba(14, 17, 38, 0.72);
    backdrop-filter: blur(18px) saturate(120%);
    -webkit-backdrop-filter: blur(18px) saturate(120%);
    border: 1px solid rgba(142, 188, 255, 0.12);
    overflow: hidden;
}

.aq-checkout-steps__title {
    display: block;
    margin-bottom: var(--space-3);
    color: var(--clr-text-muted);
    font-size: 0.76rem;
    font-weight: 700;
    letter-spacing: 0.04em;
}

.aq-checkout-steps__list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    align-items: flex-start;
    width: 100%;
}
.aq-checkout-steps__step {
    position: relative;
    min-width: 0;
}
/* Connector line from this marker to the next marker. */
.aq-checkout-steps__step::after {
    content: "";
    position: absolute;
    top: 16px;
    left: calc(50% + 22px);
    right: calc(-50% + 22px);
    height: 2px;
    border-radius: 2px;
    background: rgba(255,255,255,0.11);
    z-index: 0;
}
.aq-checkout-steps__step:last-child::after { display: none; }
.aq-checkout-steps__step.is-done::after {
    background: #3298ef;
}

.aq-checkout-steps__link {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.45rem;
    min-width: 0;
    color: inherit;
    text-decoration: none;
    text-align: center;
}
a.aq-checkout-steps__link { cursor: pointer; }
a.aq-checkout-steps__link:focus-visible { outline: none; }
a.aq-checkout-steps__link:focus-visible .aq-checkout-steps__marker {
    outline: 2px solid var(--clr-blue-light);
    outline-offset: 2px;
}

.aq-checkout-steps__marker {
    position: relative;
    z-index: 1;
    flex: 0 0 auto;
    width: 34px;
    height: 34px;
    border-radius: 10px;
    overflow: hidden;
    background: #1c2548;
    border: 1px solid rgba(255,255,255,0.16);
    color: var(--clr-text-faint);
    font-size: 0.8rem;
    font-weight: 800;
    transition: background 0.25s, border-color 0.25s, color 0.25s, box-shadow 0.25s;
}
/* Number + check stacked dead-centre, swapped by opacity (never both visible) */
.aq-checkout-steps__num,
.aq-checkout-steps__check {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    line-height: 1;
}
.aq-checkout-steps__check { width: 16px; height: 16px; opacity: 0; }
.aq-checkout-steps__num { opacity: 1; }

.aq-checkout-steps__label {
    max-width: 100%;
    padding-inline: 0.25rem;
    font-size: 0.76rem;
    font-weight: 650;
    color: var(--clr-text-faint);
    line-height: 1.3;
    overflow-wrap: anywhere;
    transition: color 0.25s;
}

/* Done */
.aq-checkout-steps__step.is-done .aq-checkout-steps__marker {
    background: #277fca;
    border-color: rgba(111, 196, 255, 0.42);
    color: #fff;
}
.aq-checkout-steps__step.is-done .aq-checkout-steps__num { opacity: 0; }
.aq-checkout-steps__step.is-done .aq-checkout-steps__check { opacity: 1; }
.aq-checkout-steps__step.is-done .aq-checkout-steps__label { color: var(--clr-text-muted); }

/* Current */
.aq-checkout-steps__step.is-current .aq-checkout-steps__marker {
    background: #168ee3;
    border-color: #7bc9ff;
    color: #fff;
    box-shadow: 0 0 0 4px rgba(50, 152, 239, 0.16);
}
.aq-checkout-steps__step.is-current .aq-checkout-steps__label { color: #fff; }

a.aq-checkout-steps__link:hover .aq-checkout-steps__marker { border-color: rgba(90,150,255,0.6); }

@media (prefers-reduced-motion: reduce) {
    .aq-checkout-steps__marker,
    .aq-checkout-steps__label { transition: none; }
}

/* ============================================================
   SEGMENTED SWITCH (Gast / Bestandskunde)
   ============================================================ */
.aq-checkout__switch {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: var(--space-2);
    padding: var(--space-1);
    border-radius: var(--radius-xl);
    background: rgba(14, 17, 38, 0.72);
    backdrop-filter: blur(18px) saturate(150%);
    -webkit-backdrop-filter: blur(18px) saturate(150%);
    border: 1px solid rgba(142, 188, 255, 0.12);
    align-self: start;
}
.aq-switch__input {
    position: absolute;
    opacity: 0;
    pointer-events: none;
}
.aq-switch__label {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 48px;
    padding: var(--space-2) var(--space-3);
    border-radius: calc(var(--radius-xl) - var(--space-1));
    font-size: 0.84rem;
    font-weight: 700;
    color: var(--clr-text-muted);
    text-align: center;
    cursor: pointer;
    transition: background 0.2s, color 0.2s;
}
.aq-switch__label:hover { color: #eaf2ff; }
.aq-switch__input:checked + .aq-switch__label {
    background: rgba(35, 132, 210, 0.24);
    color: #fff;
    box-shadow: inset 0 1px 0 rgba(255,255,255,0.14);
}
.aq-switch__input:focus-visible + .aq-switch__label {
    outline: 2px solid var(--clr-blue-light);
    outline-offset: 2px;
}

/* ============================================================
   COLUMN 1 — guest intro + login card
   ============================================================ */
.aq-checkout__guest-intro {
    margin-bottom: var(--space-6);
    padding-bottom: var(--space-5);
    border-bottom: 1px solid rgba(255,255,255,0.07);
}
.aq-checkout__guest-badge {
    display: inline-flex;
    align-items: center;
    margin: var(--space-2) 0;
    padding: 0.3em 0.9em;
    border-radius: var(--radius-pill);
    background: linear-gradient(135deg, rgba(26,122,255,0.22), rgba(122,60,255,0.18));
    border: 1px solid rgba(90,150,255,0.32);
    color: #cfe1ff;
    font-size: 0.8rem;
    font-weight: 800;
    letter-spacing: 0.02em;
}
.aq-checkout__login-head { margin-bottom: var(--space-5); }

/* Returning-customer login form (WooCommerce woocommerce_login_form) — glass styling */
.aq-checkout__login form.woocommerce-form-login {
    display: flex;
    flex-direction: column;
    gap: var(--space-4);
    margin: 0;
    padding: 0;
    border: 0;
    background: transparent;
}
.aq-checkout__login .form-row {
    margin: 0 !important;
    padding: 0 !important;
    width: auto !important;
}
.aq-checkout__login label {
    display: block;
    font-size: 0.72rem !important;
    font-weight: 700 !important;
    letter-spacing: 0.06em !important;
    text-transform: uppercase !important;
    color: var(--clr-text-muted) !important;
    margin-bottom: var(--space-2) !important;
}
.aq-checkout__login input[type="text"],
.aq-checkout__login input[type="password"],
.aq-checkout__login input[type="email"],
.aq-checkout__login input.input-text {
    width: 100%;
    min-height: 48px;
    padding: 0 var(--space-4);
    background: rgba(255,255,255,0.06) !important;
    border: 1px solid var(--clr-border) !important;
    color: var(--clr-text) !important;
    border-radius: var(--radius-md);
    font-size: 0.95rem;
    font-family: var(--font-sans);
    box-shadow: none !important;
    -webkit-appearance: none;
    appearance: none;
    outline: none;
    box-sizing: border-box;
    transition: border-color 0.2s, box-shadow 0.2s, background 0.2s;
}
.aq-checkout__login input:focus {
    border-color: var(--clr-border-blue) !important;
    background: rgba(255,255,255,0.09) !important;
    box-shadow: 0 0 0 3px var(--clr-blue-glow) !important;
}
.aq-checkout__login .woocommerce-form-login__submit {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 50px;
    padding: 0 var(--space-6) !important;
    background: linear-gradient(135deg, #1a7aff 0%, #38a6ff 100%) !important;
    color: #fff !important;
    border: none !important;
    border-radius: var(--radius-md) !important;
    font-size: 0.98rem !important;
    font-weight: 800 !important;
    letter-spacing: 0.01em;
    cursor: pointer;
    box-shadow: 0 8px 26px rgba(0,128,255,0.42), inset 0 1px 0 rgba(255,255,255,0.28) !important;
    transition: filter 0.2s, transform 0.15s;
    width: 100%;
    float: none !important;
    margin: 0 !important;
}
.aq-checkout__login .woocommerce-form-login__submit:hover { filter: brightness(1.08); transform: translateY(-1px); }
.aq-checkout__login .woocommerce-form-login__rememberme {
    display: flex !important;
    align-items: center;
    gap: var(--space-2);
    font-size: 0.85rem !important;
    font-weight: 500 !important;
    text-transform: none !important;
    letter-spacing: 0 !important;
    color: var(--clr-text-muted) !important;
    margin: 0 !important;
    cursor: pointer;
}
.aq-checkout__login .woocommerce-form-login__rememberme input { width: 17px; height: 17px; accent-color: var(--clr-blue); margin: 0; }
.aq-checkout__login .lost_password { margin: 0; }
.aq-checkout__login .lost_password a { font-size: 0.85rem; color: var(--clr-blue-light); text-decoration: none; }
.aq-checkout__login .lost_password a:hover { text-decoration: underline; }
.aq-checkout__login input[type="password"]::-ms-reveal { display: none; }

/* ============================================================
   FORM SECTIONS (billing / shipping / additional) — flat inside the card
   ============================================================ */
.aq-checkout__left .woocommerce-billing-fields,
.aq-checkout__left .woocommerce-shipping-fields,
.aq-checkout__left .woocommerce-additional-fields {
    width: 100%;
    min-width: 0;
    max-width: 100%;
    background: transparent;
    border: 0;
    padding: 0;
}
.aq-checkout__left .woocommerce-billing-fields > h3,
.aq-checkout__left .woocommerce-shipping-fields > h3 {
    display: block;
    margin: 0 0 var(--space-4);
    color: #d9e9ff;
    font-size: 0.9rem;
    font-weight: 750;
    letter-spacing: -0.01em;
    text-transform: none;
}
/* subtle divider between billing and the shipping/additional blocks */
.aq-checkout__left .woocommerce-shipping-fields,
.aq-checkout__left .woocommerce-additional-fields {
    margin-top: var(--space-6);
    padding-top: var(--space-6);
    border-top: 1px solid rgba(255,255,255,0.08);
}

/* 2-column field grid */
.woocommerce-billing-fields__field-wrapper,
.woocommerce-shipping-fields__field-wrapper {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: var(--space-3) var(--space-4);
}
.woocommerce-billing-fields__field-wrapper > *,
.woocommerce-shipping-fields__field-wrapper > *,
.woocommerce-additional-fields__field-wrapper > *,
.aq-checkout #customer_details,
.aq-checkout .woocommerce-input-wrapper {
    min-width: 0;
    max-width: 100%;
}
.aq-checkout .woocommerce-input-wrapper {
    display: block;
    width: 100%;
}
.checkout .form-row {
    float: none !important;
    clear: none !important;
    padding: 0 !important;
    margin: 0 !important;
    width: auto !important;
}
.form-row-wide,
.woocommerce-billing-fields__field-wrapper .form-row-wide,
.woocommerce-shipping-fields__field-wrapper .form-row-wide { grid-column: 1 / -1; }
.form-row-first { grid-column: 1; }
.form-row-last  { grid-column: 2; }
.woocommerce-additional-fields__field-wrapper .form-row { grid-column: 1 / -1; }

/* ---- Labels ---- */
.aq-checkout__left .form-row label,
.aq-checkout__left label {
    display: block;
    font-size: 0.78rem;
    font-weight: 650;
    letter-spacing: 0.01em;
    text-transform: none;
    color: var(--clr-text-muted);
    margin-bottom: var(--space-2);
    line-height: 1.4;
}
.aq-checkout__left .form-row label .optional {
    color: var(--clr-text-faint);
    font-weight: 600;
    letter-spacing: 0;
    text-transform: none;
    margin-left: 3px;
}
.aq-checkout__left .form-row label abbr.required,
.aq-checkout__left .form-row label abbr[title] {
    color: var(--clr-blue-light);
    text-decoration: none;
    margin-left: 2px;
}

/* ---- Inputs / selects / textarea ---- */
.aq-checkout__left .form-row input[type="text"],
.aq-checkout__left .form-row input[type="email"],
.aq-checkout__left .form-row input[type="tel"],
.aq-checkout__left .form-row input[type="password"],
.aq-checkout__left .form-row input[type="number"],
.aq-checkout__left .form-row textarea,
.aq-checkout__left .form-row select,
.aq-checkout__left input.input-text,
.aq-checkout__login input.input-text,
.aq-checkout__left select {
    width: 100%;
    max-width: 100%;
    min-height: 48px;
    padding: 0 var(--space-4);
    background: rgba(255,255,255,0.06);
    border: 1px solid var(--clr-border);
    color: var(--clr-text);
    border-radius: var(--radius-md);
    font-size: 0.95rem;
    font-family: var(--font-sans);
    line-height: 1.4;
    box-shadow: none;
    appearance: none;
    -webkit-appearance: none;
    outline: none;
    box-sizing: border-box;
    transition: border-color 0.2s, box-shadow 0.2s, background 0.2s;
}
.aq-checkout__left .form-row textarea {
    min-height: 96px;
    padding: var(--space-3) var(--space-4);
    resize: vertical;
}
.aq-checkout__left .form-row select,
.aq-checkout__left select {
    padding-right: 2.5em;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%2340aaff' stroke-width='2.5'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right 0.9em center;
    cursor: pointer;
}
.aq-checkout__left input.input-text::placeholder,
.aq-checkout__left .form-row input::placeholder,
.aq-checkout__left .form-row textarea::placeholder { color: var(--clr-text-faint); }

.aq-checkout__left .form-row input:focus,
.aq-checkout__left .form-row select:focus,
.aq-checkout__left .form-row textarea:focus,
.aq-checkout__left input.input-text:focus,
.aq-checkout__login input.input-text:focus,
.aq-checkout__left select:focus {
    border-color: var(--clr-border-blue);
    background: rgba(255,255,255,0.09);
    box-shadow: 0 0 0 3px var(--clr-blue-glow);
}

/* Validation states (WooCommerce classes) — never colour-only: also a ring */
.aq-checkout__left .form-row.woocommerce-validated .input-text,
.aq-checkout__left .form-row.woocommerce-validated select {
    border-color: rgba(0, 200, 100, 0.55);
    box-shadow: 0 0 0 3px rgba(0, 200, 100, 0.12);
}
.aq-checkout__left .form-row.woocommerce-invalid .input-text,
.aq-checkout__left .form-row.woocommerce-invalid select {
    border-color: rgba(255, 70, 90, 0.7);
    box-shadow: 0 0 0 3px rgba(255, 70, 90, 0.14);
}
.aq-checkout__left .form-row .woocommerce-inline-message,
.aq-checkout__left .form-row em {
    display: block;
    font-size: 0.78rem;
    font-style: normal;
    color: #ffb4be;
    margin-top: var(--space-1);
    text-transform: none;
    letter-spacing: 0;
    font-weight: 600;
}

/* ---- Select2 (country) ---- */
.aq-checkout .select2-container { width: 100% !important; }
.aq-checkout .select2-container,
.aq-checkout .select2-selection,
.aq-checkout .select2-selection__rendered {
    max-width: 100% !important;
    min-width: 0 !important;
    box-sizing: border-box !important;
}
.select2-container--default .select2-selection--single {
    display: flex !important;
    align-items: center !important;
    background: rgba(255,255,255,0.06) !important;
    border: 1px solid var(--clr-border) !important;
    border-radius: var(--radius-md) !important;
    height: 48px !important;
}
.select2-container--default .select2-selection--single .select2-selection__rendered {
    color: var(--clr-text) !important;
    line-height: 46px !important;
    padding-left: var(--space-4) !important;
    padding-right: 2.5em !important;
    font-size: 0.95rem;
    font-family: var(--font-sans);
}
.select2-container--default .select2-selection--single .select2-selection__arrow { height: 46px !important; right: 8px !important; }
.select2-container--default .select2-selection--single .select2-selection__arrow b { border-top-color: var(--clr-blue-light) !important; }
.select2-container--default.select2-container--open .select2-selection--single {
    border-color: var(--clr-border-blue) !important;
    box-shadow: 0 0 0 3px var(--clr-blue-glow) !important;
}
.select2-dropdown {
    background: rgba(20, 18, 44, 0.98) !important;
    backdrop-filter: blur(20px) !important;
    -webkit-backdrop-filter: blur(20px) !important;
    border: 1px solid var(--clr-border-blue) !important;
    border-radius: var(--radius-md) !important;
    box-shadow: 0 12px 44px rgba(0,0,0,0.72) !important;
}
.select2-container--default .select2-results__option {
    color: var(--clr-text-muted) !important;
    font-family: var(--font-sans) !important;
    font-size: 0.9rem !important;
    padding: 0.55em var(--space-4) !important;
    background: transparent !important;
}
.select2-container--default .select2-results__option--highlighted[aria-selected] { background: rgba(0,128,255,0.18) !important; color: #eaf2ff !important; }
.select2-container--default .select2-results__option[aria-selected="true"] { background: rgba(0,128,255,0.24) !important; color: #cfe1ff !important; }
.select2-search--dropdown .select2-search__field {
    background: rgba(255,255,255,0.06) !important;
    border: 1px solid var(--clr-border) !important;
    border-radius: var(--radius-sm) !important;
    color: var(--clr-text) !important;
    font-family: var(--font-sans) !important;
    padding: 0.5em var(--space-3) !important;
}

/* ============================================================
   LIEFERADRESSE — radio cards
   ============================================================ */
.aq-ship-choice {
    display: grid;
    gap: var(--space-3);
    margin-bottom: var(--space-4);
}
.aq-ship-card {
    display: block;
    cursor: pointer;
    margin: 0;
    text-transform: none !important;
    letter-spacing: 0 !important;
}
.aq-ship-card__input {
    position: absolute;
    opacity: 0;
    pointer-events: none;
}
.aq-ship-card__body {
    display: flex;
    align-items: flex-start;
    gap: var(--space-3);
    min-height: 44px;
    padding: var(--space-4);
    border-radius: var(--radius-lg);
    background: rgba(255,255,255,0.04);
    border: 1px solid var(--clr-border);
    transition: border-color 0.2s, background 0.2s, box-shadow 0.2s;
}
.aq-ship-card__text {
    min-width: 0;
    overflow-wrap: anywhere;
}
.aq-ship-card:hover .aq-ship-card__body { border-color: var(--clr-border-blue); background: rgba(255,255,255,0.06); }
.aq-ship-card__check {
    flex: 0 0 auto;
    width: 20px;
    height: 20px;
    margin-top: 1px;
    border-radius: 50%;
    border: 2px solid var(--clr-text-faint);
    display: grid;
    place-items: center;
    transition: border-color 0.2s, background 0.2s;
}
.aq-ship-card__check::after {
    content: "";
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: #fff;
    transform: scale(0);
    transition: transform 0.15s var(--ease-out-expo);
}
.aq-ship-card__title {
    display: block;
    font-size: 0.92rem;
    font-weight: 700;
    color: #eaf2ff;
    text-transform: none;
    letter-spacing: 0;
}
.aq-ship-card__desc {
    display: block;
    margin-top: 2px;
    font-size: 0.82rem;
    font-weight: 500;
    color: var(--clr-text-muted);
    text-transform: none;
    letter-spacing: 0;
    line-height: 1.45;
}
/* Selected — border + filled dot + ring (not colour alone) */
.aq-ship-card__input:checked + .aq-ship-card__body {
    border-color: rgba(90,150,255,0.55);
    background: linear-gradient(135deg, rgba(26,122,255,0.16), rgba(122,60,255,0.12));
    box-shadow: inset 0 0 0 1px rgba(90,150,255,0.35);
}
.aq-ship-card__input:checked + .aq-ship-card__body .aq-ship-card__check {
    border-color: var(--clr-blue-light);
    background: var(--clr-blue-light);
}
.aq-ship-card__input:checked + .aq-ship-card__body .aq-ship-card__check::after { transform: scale(1); }
.aq-ship-card__input:focus-visible + .aq-ship-card__body {
    outline: 2px solid var(--clr-blue-light);
    outline-offset: 2px;
}

/* Reveal/hide of the different-address fields (JS toggles [hidden]) */
.shipping_address[hidden] { display: none !important; }
.shipping_address { margin-top: var(--space-2); }

/* ============================================================
   SHIPPING METHODS (native, inside the order-review table row)
   ============================================================ */
/* When shipping offers selectable methods, stack the row (label over the radios). */
#order_review table.shop_table tr.woocommerce-shipping-totals {
    grid-template-columns: 1fr !important;
    gap: var(--space-2) !important;
}
#order_review table.shop_table tr.woocommerce-shipping-totals td { text-align: left !important; }
#order_review #shipping_method {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    gap: var(--space-2);
    text-align: left;
}
#order_review #shipping_method li {
    display: flex;
    align-items: flex-start;
    gap: var(--space-2);
    padding: 0;
    min-width: 0;
}
#order_review #shipping_method li input[type="radio"] {
    accent-color: var(--clr-blue);
    width: 17px; height: 17px;
    flex-shrink: 0;
    cursor: pointer;
    margin: 0;
}
#order_review #shipping_method li label {
    margin: 0 !important;
    padding: 0 !important;
    font-size: 0.85rem !important;
    font-weight: 600 !important;
    color: var(--clr-text) !important;
    text-transform: none !important;
    letter-spacing: 0 !important;
    cursor: pointer;
    display: inline-flex;
    flex-wrap: wrap;
    align-items: baseline;
    gap: 0.4em;
    line-height: 1.4;
    min-width: 0;
    overflow-wrap: anywhere;
}
#order_review #shipping_method li label .amount { font-weight: 800; color: #eaf2ff; }
#order_review .woocommerce-shipping-destination { font-size: 0.78rem; color: var(--clr-text-faint); margin: var(--space-1) 0 0; }

/* ============================================================
   COLUMN 2 — payment
   ============================================================ */
#payment {
    background: rgba(9, 7, 24, 0.28) !important;
    border: 1px solid rgba(255,255,255,0.08) !important;
    border-radius: var(--radius-lg) !important;
    overflow: hidden;
    padding: 0 !important;
    box-shadow: none !important;
}
#payment ul.payment_methods {
    list-style: none !important;
    margin: 0 !important;
    padding: 0 !important;
    border: none !important;
    background: transparent !important;
}
#payment ul.payment_methods li {
    padding: var(--space-4) var(--space-5) !important;
    border-bottom: 1px solid rgba(255,255,255,0.06) !important;
    transition: background 0.2s;
}
#payment ul.payment_methods li,
#payment ul.payment_methods li > * {
    min-width: 0;
    max-width: 100%;
    box-sizing: border-box;
}
#payment ul.payment_methods li:last-child { border-bottom: none !important; }
#payment ul.payment_methods li:hover,
#payment ul.payment_methods li.selected { background: rgba(0,128,255,0.08) !important; }
#payment ul.payment_methods li label {
    display: flex !important;
    align-items: center !important;
    flex-wrap: wrap;
    gap: var(--space-3) !important;
    cursor: pointer;
    color: var(--clr-text) !important;
    font-size: 0.9rem !important;
    font-weight: 600 !important;
    text-transform: none !important;
    letter-spacing: 0 !important;
    margin: 0 !important;
    min-width: 0;
    overflow-wrap: anywhere;
}
#payment ul.payment_methods li label img {
    width: auto !important;
    max-width: min(9rem, 42%) !important;
    max-height: 1.6rem !important;
    margin: 0 0 0 auto !important;
    object-fit: contain;
}
#payment ul.payment_methods li input[type="radio"] {
    accent-color: var(--clr-blue);
    width: 18px; height: 18px;
    cursor: pointer;
    flex-shrink: 0;
}
#payment .payment_box {
    padding: var(--space-3) var(--space-5) var(--space-4) !important;
    background: rgba(0,128,255,0.06) !important;
    border-top: 1px solid rgba(0,128,255,0.10) !important;
    font-size: 0.84rem !important;
    color: var(--clr-text-muted) !important;
    line-height: 1.6 !important;
    overflow-wrap: anywhere;
}
#payment .payment_box p:last-child { margin-bottom: 0; }
#payment .payment_box::before { border-bottom-color: rgba(0,128,255,0.06) !important; }

/* Terms + legal (Germanized) */
.aq-checkout__right .woocommerce-terms-and-conditions-wrapper,
#payment .woocommerce-terms-and-conditions-wrapper {
    margin-top: var(--space-4);
    padding: var(--space-4) var(--space-5);
    background: rgba(255,255,255,0.04);
    border: 1px solid rgba(255,255,255,0.07);
    border-radius: var(--radius-md);
    font-size: 0.84rem;
    color: var(--clr-text-muted);
    line-height: 1.6;
    overflow-wrap: anywhere;
}
#payment .wc-gzd-checkbox-placeholder,
.woocommerce-checkout .checkbox,
#payment label.checkbox {
    display: flex;
    align-items: flex-start;
    gap: var(--space-2);
    font-size: 0.85rem;
    color: var(--clr-text-muted);
    text-transform: none;
    letter-spacing: 0;
    line-height: 1.5;
    min-width: 0;
    overflow-wrap: anywhere;
}
#payment .wc-gzd-checkbox-placeholder,
#payment .wc-gzd-checkbox-placeholder p,
#payment .woocommerce-privacy-policy-text,
#payment .place-order,
#payment .wc-gzd-place-order,
#payment .wc-gzd-order-submit {
    width: 100%;
    min-width: 0;
    max-width: 100%;
    margin-left: 0;
    margin-right: 0;
    box-sizing: border-box;
}
#payment .wc-gzd-checkbox-placeholder p,
#payment .woocommerce-privacy-policy-text p {
    margin-top: 0;
}
#payment .wc-gzd-checkbox-placeholder p:last-child,
#payment .woocommerce-privacy-policy-text p:last-child {
    margin-bottom: 0;
}
#payment input[type="checkbox"],
.woocommerce-checkout .checkbox input[type="checkbox"] {
    accent-color: var(--clr-blue);
    width: 18px; height: 18px;
    flex-shrink: 0;
    margin-top: 1px;
    cursor: pointer;
}
.aq-checkout__right a,
#payment a { color: var(--clr-blue-light); text-underline-offset: 2px; }

/* ---- Place order (Germanized "Zahlungspflichtig bestellen") ---- */
#place_order,
.wc-gzd-order-submit button[type="submit"],
button#place_order {
    display: block !important;
    width: 100% !important;
    position: relative;
    overflow: hidden;
    min-height: 52px;
    background: linear-gradient(135deg, #1a7aff 0%, #38a6ff 100%) !important;
    color: #fff !important;
    border: none !important;
    border-radius: var(--radius-md) !important;
    padding: 0.9em 1.5em !important;
    font-size: 1.02rem !important;
    font-weight: 800 !important;
    font-family: var(--font-sans) !important;
    letter-spacing: 0.01em !important;
    cursor: pointer !important;
    box-shadow: 0 8px 26px rgba(0,128,255,0.45), inset 0 1px 0 rgba(255,255,255,0.28) !important;
    transition: filter 0.2s, transform 0.15s, box-shadow 0.2s !important;
    margin-top: var(--space-5) !important;
    text-align: center !important;
    line-height: 1.35 !important;
    white-space: normal !important;
    overflow-wrap: anywhere;
}
#place_order:hover { filter: brightness(1.08); transform: translateY(-1px); box-shadow: 0 12px 34px rgba(0,128,255,0.55), inset 0 1px 0 rgba(255,255,255,0.32) !important; }
#place_order:active { transform: translateY(0); }
#place_order:focus-visible { outline: 2px solid var(--clr-blue-light) !important; outline-offset: 3px; }

/* ============================================================
   COLUMN 3 — order review
   ============================================================ */
#order_review {
    width: 100%;
    min-width: 0;
    max-width: 100%;
    background: transparent !important;
    border: 0 !important;
    padding: 0 !important;
    box-shadow: none !important;
    overflow: visible;
}
#order_review table.shop_table {
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 0 var(--space-4) !important;
    border: 0 !important;
    border-collapse: separate !important;
    background: transparent !important;
}
#order_review table.shop_table thead,
#order_review table.shop_table tbody,
#order_review table.shop_table tfoot {
    display: block !important;
    width: 100% !important;
    min-width: 0;
    max-width: 100%;
}
#order_review table.shop_table tr {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) auto !important;
    gap: var(--space-3) var(--space-4) !important;
    align-items: center !important;
    width: 100% !important;
    min-width: 0;
    max-width: 100%;
    padding: var(--space-3) 0 !important;
    border-bottom: 1px solid rgba(255,255,255,0.07) !important;
    box-sizing: border-box;
}
#order_review table.shop_table thead tr { padding-top: 0 !important; }
#order_review table.shop_table th {
    font-size: 0.65rem !important;
    font-weight: 700 !important;
    letter-spacing: 0.1em !important;
    text-transform: uppercase !important;
    color: var(--clr-text-faint) !important;
    text-align: left !important;
    display: block !important;
    padding: 0 !important;
    border: 0 !important;
    background: transparent !important;
    min-width: 0;
    max-width: 100%;
    overflow-wrap: anywhere;
}
#order_review table.shop_table td {
    display: block !important;
    padding: 0 !important;
    border: 0 !important;
    background: transparent !important;
    font-size: 0.88rem !important;
    color: var(--clr-text-muted) !important;
    text-align: right !important;
    min-width: 0;
    max-width: 100%;
    overflow-wrap: anywhere;
}
#order_review table.shop_table .product-name {
    text-align: left !important;
    font-weight: 600 !important;
    color: #eaf2ff !important;
}
.aq-checkout-item-title { display: block !important; font-weight: 600; color: #eaf2ff; }
#order_review table.shop_table .product-total {
    display: flex !important;
    align-items: center;
    justify-content: flex-end;
    gap: var(--space-3);
    font-weight: 700;
    color: #eaf2ff !important;
    white-space: nowrap;
    min-width: max-content;
}
.aq-checkout-item-qty-badge {
    display: inline-flex;
    align-items: center;
    flex-shrink: 0;
    padding: 0.12em 0.6em;
    background: rgba(0, 128, 255, 0.12);
    border: 1px solid rgba(0, 128, 255, 0.22);
    border-radius: var(--radius-pill);
    font-size: 0.72rem;
    font-weight: 700;
    color: #9fd0ff;
}
/* Product meta (delivery time, variations) */
#order_review table.shop_table .wc-item-meta,
#order_review table.shop_table dl.variation {
    display: block !important;
    overflow: hidden;
    margin: var(--space-1) 0 0 !important;
    font-size: 0.8rem;
    color: var(--clr-text-faint);
    overflow-wrap: anywhere;
}
#order_review table.shop_table dl.variation dt,
#order_review table.shop_table dl.variation dd { display: inline !important; float: none !important; margin: 0 !important; }

#order_review table.shop_table tfoot tr { border-bottom: 1px solid rgba(255,255,255,0.06) !important; }
#order_review table.shop_table tfoot th {
    text-transform: none !important;
    font-size: 0.85rem !important;
    letter-spacing: 0 !important;
    color: var(--clr-text-muted) !important;
    font-weight: 600 !important;
}
#order_review table.shop_table .order-total { border-bottom: 0 !important; padding-top: var(--space-4) !important; }
#order_review table.shop_table .order-total th { font-size: 1rem !important; font-weight: 800 !important; color: #fff !important; }
#order_review table.shop_table .order-total td { font-size: 1.15rem !important; font-weight: 900 !important; }
#order_review table.shop_table .order-total td .woocommerce-Price-amount,
#order_review table.shop_table .order-total td bdi {
    background: linear-gradient(90deg, #7fc4ff 0%, #d88cff 58%, #f2b6ee 100%);
    -webkit-background-clip: text;
    background-clip: text;
    color: transparent;
    -webkit-text-fill-color: transparent;
    font-weight: 900;
}
#order_review table.shop_table .includes_tax,
#order_review table.shop_table small { color: var(--clr-text-faint) !important; font-size: 0.78rem !important; }

/* ---- Free-shipping progress bar (fragment target) ---- */
.aq-freeship { margin: 0 0 var(--space-4); }
.aq-freeship--active {
    padding: var(--space-3) var(--space-4);
    border-radius: var(--radius-md);
    background: rgba(0,128,255,0.08);
    border: 1px solid rgba(0,128,255,0.18);
}
.aq-freeship__label { margin: 0 0 var(--space-2); font-size: 0.8rem; color: var(--clr-text-muted); }
.aq-freeship__label--reached { color: #7ff0b6; }
.aq-freeship__track { height: 6px; border-radius: var(--radius-pill); background: rgba(255,255,255,0.1); overflow: hidden; }
.aq-freeship__fill { display: block; height: 100%; border-radius: inherit; background: linear-gradient(90deg, #1a7aff, #7a3cff); transition: width 0.4s var(--ease-out-expo); }

/* ---- Trust row ---- */
.aq-checkout-trust {
    list-style: none;
    margin: var(--space-4) 0 0;
    padding: var(--space-4) 0 0;
    border-top: 1px solid rgba(255,255,255,0.08);
    display: flex;
    flex-direction: column;
    gap: var(--space-2);
}
.aq-checkout-trust__item { display: flex; align-items: center; gap: var(--space-2); font-size: 0.8rem; color: var(--clr-text-muted); }
.aq-checkout-trust__item span {
    min-width: 0;
    line-height: 1.45;
    overflow-wrap: anywhere;
}
.aq-checkout-trust__item svg { color: var(--clr-blue-light); flex-shrink: 0; }

/* ============================================================
   CHECKOUT NOTICES (validation errors above the block)
   ============================================================ */
.woocommerce-checkout .woocommerce-NoticeGroup,
.woocommerce-checkout .woocommerce-error,
.woocommerce-checkout .woocommerce-message,
.woocommerce-checkout .woocommerce-info {
    max-width: 1240px;
    margin-inline: auto;
    margin-bottom: var(--space-4);
    border-radius: var(--radius-md);
}

/* ============================================================
   RESPONSIVE
   ============================================================ */

/* Tablet: stack the sections in a predictable reading order. */
@media (max-width: 1020px) {
    .aq-checkout,
    body.logged-in .aq-checkout {
        max-width: 760px;
        grid-template-columns: minmax(0, 1fr);
        grid-template-areas:
            "intro"
            "prog"
            "sw"
            "left"
            "right";
    }
    body.logged-in .aq-checkout {
        grid-template-areas:
            "intro"
            "prog"
            "left"
            "right";
    }
}

@media (max-width: 620px) {
    .wc-main--checkout,
    body.woocommerce-checkout .page-main {
        padding-block: var(--space-5) var(--space-14);
    }
    .wc-main--checkout,
    body.woocommerce-checkout .page-main > .container {
        padding-inline: var(--space-3);
    }
    .aq-checkout { gap: var(--space-4); }
    .aq-checkout__title {
        font-size: clamp(1.8rem, 9vw, 2.35rem);
        letter-spacing: -0.035em;
    }
    .aq-checkout__intro-text { font-size: 0.92rem; }
    .aq-checkout__card {
        padding: var(--space-5);
        border-radius: var(--radius-xl);
    }
    .aq-checkout__card-head {
        flex-direction: column;
        margin-bottom: var(--space-5);
    }
    .aq-checkout__edit-cart { align-self: flex-start; }

    .woocommerce-billing-fields__field-wrapper,
    .woocommerce-shipping-fields__field-wrapper { grid-template-columns: 1fr; }
    .form-row-first, .form-row-last { grid-column: 1 / -1; }

    #order_review table.shop_table tr {
        grid-template-columns: minmax(0, 1fr) auto !important;
        gap: var(--space-2) var(--space-3) !important;
    }
    #order_review table.shop_table tr.woocommerce-shipping-totals {
        grid-template-columns: minmax(0, 1fr) !important;
    }
    #order_review table.shop_table .product-total {
        gap: var(--space-2);
        justify-content: flex-end;
    }

    .aq-checkout__switch { grid-template-columns: 1fr; }
    .aq-checkout-steps { padding: var(--space-3); }
    .aq-checkout-steps__title { margin-bottom: var(--space-2); }
    .aq-checkout-steps__marker {
        width: 30px;
        height: 30px;
        border-radius: 9px;
    }
    .aq-checkout-steps__step::after {
        top: 14px;
        left: calc(50% + 19px);
        right: calc(-50% + 19px);
    }
    .aq-checkout-steps__label {
        padding-inline: 0.1rem;
        font-size: 0.67rem;
    }

    #payment ul.payment_methods li { padding: var(--space-4) !important; }
    #payment .payment_box { padding: var(--space-3) var(--space-4) var(--space-4) !important; }
    .aq-checkout__right .woocommerce-terms-and-conditions-wrapper,
    #payment .woocommerce-terms-and-conditions-wrapper {
        padding: var(--space-4);
    }
}

@media (max-width: 390px) {
    .aq-checkout__card { padding: var(--space-4); }
    .aq-checkout-steps__label { font-size: 0.62rem; }
    .aq-checkout-item-qty-badge { display: none; }
    #place_order,
    .wc-gzd-order-submit button[type="submit"],
    button#place_order { padding-inline: var(--space-3) !important; }
}

/* ============================================================
   REDUCED MOTION
   ============================================================ */
@media (prefers-reduced-motion: reduce) {
    #place_order,
    .aq-checkout__left .form-row input,
    .aq-checkout__left .form-row select,
    .aq-ship-card__body,
    .aq-ship-card__check::after,
    .aq-shipping-method,
    .aq-switch__label,
    .aq-freeship__fill { transition: none !important; }
}

/* ============================================================
   THREE-SCREEN CHECKOUT
   Full-width, single-column stages with URL-backed navigation.
   ============================================================ */
.aq-checkout [hidden] {
    display: none !important;
}

.aq-checkout,
body.logged-in .aq-checkout,
.aq-checkout.is-login {
    width: 100%;
    max-width: none;
    grid-template-columns: minmax(0, 1fr);
    grid-template-areas:
        "intro"
        "prog"
        "sw"
        "left"
        "right";
    column-gap: 0;
}

body.logged-in .aq-checkout {
    grid-template-areas:
        "intro"
        "prog"
        "left"
        "right";
}

.aq-checkout.is-login .aq-checkout__left,
.aq-checkout.is-login .aq-checkout__right {
    display: none;
}

.aq-checkout__left,
.aq-checkout__right,
.aq-checkout__login {
    width: 100%;
    max-width: none;
}

/* Every form field gets its own row: no narrow or colliding half-fields. */
.aq-checkout .woocommerce-billing-fields__field-wrapper,
.aq-checkout .woocommerce-shipping-fields__field-wrapper {
    grid-template-columns: minmax(0, 1fr);
}

.aq-checkout .form-row-first,
.aq-checkout .form-row-last,
.aq-checkout .form-row-wide {
    grid-column: 1 / -1;
    width: 100% !important;
    min-width: 0;
}

.aq-checkout__stage-kicker {
    display: block;
    margin: 0 0 var(--space-2);
    color: #91caff;
    font-size: 0.7rem;
    font-weight: 800;
    letter-spacing: 0.12em;
    line-height: 1.2;
    text-transform: uppercase;
}

/* Compact progress card: three equal, keyboard-accessible steps. */
.aq-checkout-steps {
    padding: var(--space-4) clamp(var(--space-4), 3vw, var(--space-8));
}

.aq-checkout-steps__list {
    align-items: start;
}

.aq-checkout-steps__step {
    min-width: 0;
}

.aq-checkout-steps__link {
    width: 100%;
    appearance: none;
    border: 0;
    background: transparent;
    padding: 0;
    color: inherit;
    font: inherit;
    cursor: pointer;
}

.aq-checkout-steps__step.is-upcoming .aq-checkout-steps__link {
    cursor: pointer;
}

.aq-checkout-steps__step.is-current .aq-checkout-steps__link {
    cursor: default;
}

.aq-checkout-steps__link:focus-visible {
    outline: 2px solid #8fc8ff;
    outline-offset: 6px;
    border-radius: var(--radius-sm);
}

.aq-checkout-steps__step::after {
    height: 2px;
    background: rgba(255,255,255,0.12);
}

.aq-checkout-steps__step.is-done::after {
    background: linear-gradient(90deg, #38a6ff, #8c6dff);
}

.aq-checkout-steps__step.is-current .aq-checkout-steps__marker {
    box-shadow:
        0 0 0 4px rgba(26,122,255,0.14),
        0 8px 24px rgba(26,122,255,0.28);
}

.aq-checkout__step-error {
    margin: 0 0 var(--space-5);
    padding: var(--space-3) var(--space-4);
    border: 1px solid rgba(255, 104, 132, 0.42);
    border-radius: var(--radius-md);
    background: rgba(143, 20, 54, 0.22);
    color: #ffd8e1;
    font-size: 0.88rem;
    font-weight: 650;
    line-height: 1.5;
}

.aq-choice-invalid {
    border: 1px solid rgba(255, 104, 132, 0.62) !important;
    border-radius: var(--radius-md);
    box-shadow: 0 0 0 3px rgba(255, 70, 120, 0.12);
}

/* Stage navigation stays clearly separated from fields and legal controls. */
.aq-checkout__stage-actions {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--space-4);
    width: 100%;
    margin-top: var(--space-7);
    padding-top: var(--space-5);
    border-top: 1px solid rgba(255,255,255,0.08);
}

.aq-checkout__next,
.aq-checkout button.aq-checkout__next {
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    gap: var(--space-2);
    min-height: 50px;
    max-width: 100%;
    margin: 0 0 0 auto !important;
    padding: 0.82rem 1.35rem !important;
    border: 0 !important;
    border-radius: var(--radius-md) !important;
    background: linear-gradient(135deg, #1a7aff 0%, #6c55ff 100%) !important;
    color: #fff !important;
    box-shadow: 0 9px 28px rgba(26,122,255,0.3) !important;
    font: 800 0.94rem/1.3 var(--font-sans) !important;
    text-align: center;
    white-space: normal;
    cursor: pointer;
    transition: transform 0.18s, filter 0.18s, box-shadow 0.18s;
}

.aq-checkout__next:hover {
    filter: brightness(1.09);
    transform: translateY(-1px);
    box-shadow: 0 12px 34px rgba(26,122,255,0.4) !important;
}

.aq-checkout__next:focus-visible,
.aq-checkout__back-link:focus-visible {
    outline: 2px solid #9ed2ff !important;
    outline-offset: 3px;
}

.aq-checkout__back-link,
button.aq-checkout__back-link {
    display: inline-flex;
    align-items: center;
    gap: var(--space-2);
    min-height: 44px;
    max-width: 100%;
    margin: 0;
    padding: 0.5rem 0;
    border: 0;
    background: transparent;
    color: #a9c8e8;
    font: 700 0.88rem/1.35 var(--font-sans);
    text-align: left;
    text-decoration: none;
    cursor: pointer;
}

.aq-checkout__back-link:hover {
    color: #fff;
}

/* Step 2 shows only shipping calculations and gateway selection. */
.aq-checkout.is-step-payment #order_review,
.aq-checkout.is-step-review #order_review {
    display: flex !important;
    flex-direction: column;
}

.aq-checkout.is-step-payment #order_review table.shop_table,
.aq-checkout.is-step-review #order_review table.shop_table {
    order: 1;
}

.aq-checkout.is-step-payment #order_payment_heading {
    order: 2;
    margin: var(--space-2) 0 var(--space-3);
    color: #eef6ff;
    font-size: 1rem;
    line-height: 1.35;
}

.aq-checkout.is-step-payment #payment,
.aq-checkout.is-step-review #payment {
    order: 3;
}

.aq-checkout.is-step-payment .wc-gzd-order-submit,
.aq-checkout.is-step-review .wc-gzd-order-submit {
    order: 4;
}

.aq-checkout.is-step-review #order_review > .wc-gzd-checkbox-placeholder,
.aq-checkout.is-step-review #order_review > .woocommerce-privacy-policy-text {
    order: 3;
}

.aq-checkout.is-step-payment #order_review table.shop_table thead,
.aq-checkout.is-step-payment #order_review table.shop_table tbody,
.aq-checkout.is-step-payment #order_review table.shop_table tfoot > tr:not(.woocommerce-shipping-totals),
.aq-checkout.is-step-payment #payment .place-order,
.aq-checkout.is-step-payment #order_review > .wc-gzd-checkbox-placeholder,
.aq-checkout.is-step-payment #order_review > .woocommerce-privacy-policy-text,
.aq-checkout.is-step-payment .wc-gzd-order-submit {
    display: none !important;
}

.aq-checkout.is-step-payment #order_review table.shop_table {
    margin-bottom: var(--space-5) !important;
}

.aq-checkout.is-step-payment #order_review table.shop_table tfoot,
.aq-checkout.is-step-payment #order_review table.shop_table tfoot > tr.woocommerce-shipping-totals {
    display: block !important;
}

.aq-checkout.is-step-payment #order_review table.shop_table tfoot:empty,
.aq-checkout.is-step-payment #order_review table.shop_table:not(:has(.woocommerce-shipping-totals)) {
    margin: 0 !important;
}

/* Step 3 is read-only for choices; the summary and legal submit remain visible. */
.aq-checkout.is-step-review #order_review tr.woocommerce-shipping-totals,
.aq-checkout.is-step-review #order_payment_heading,
.aq-checkout.is-step-review #payment ul.payment_methods,
.aq-checkout.is-step-review #payment > .place-order {
    display: none !important;
}

.aq-checkout.is-step-review #payment {
    border: 0 !important;
    background: transparent !important;
    overflow: visible;
}

.aq-checkout__review-meta {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: var(--space-3);
    margin: 0 0 var(--space-5);
}

.aq-checkout__review-choice {
    min-width: 0;
    padding: var(--space-4);
    border: 1px solid rgba(108, 157, 255, 0.2);
    border-radius: var(--radius-md);
    background: linear-gradient(135deg, rgba(26,122,255,0.09), rgba(122,60,255,0.07));
}

.aq-checkout__review-choice-label {
    display: block;
    margin-bottom: var(--space-1);
    color: var(--clr-text-faint);
    font-size: 0.68rem;
    font-weight: 800;
    letter-spacing: 0.1em;
    text-transform: uppercase;
}

.aq-checkout__review-choice strong {
    display: block;
    color: #edf5ff;
    font-size: 0.9rem;
    line-height: 1.45;
    overflow-wrap: anywhere;
}

.aq-checkout.is-step-review .wc-gzd-order-submit {
    margin-top: var(--space-5);
}

.aq-checkout.is-step-review .aq-checkout__stage-actions--review {
    justify-content: flex-start;
    margin-top: var(--space-5);
}

@media (max-width: 620px) {
    .aq-checkout-steps {
        padding-inline: var(--space-3);
    }

    .aq-checkout-steps__label {
        font-size: 0.65rem;
        line-height: 1.25;
        overflow-wrap: anywhere;
    }

    .aq-checkout__stage-actions {
        align-items: stretch;
        flex-direction: column-reverse;
    }

    .aq-checkout__next,
    .aq-checkout button.aq-checkout__next {
        width: 100%;
        margin-left: 0 !important;
    }

    .aq-checkout__back-link,
    button.aq-checkout__back-link {
        align-self: flex-start;
    }

    .aq-checkout__review-meta {
        grid-template-columns: minmax(0, 1fr);
    }
}

@media (prefers-reduced-motion: reduce) {
    .aq-checkout__next {
        transition: none;
    }
}
