/* ────────────────────────────────────────────────────────────
   AVIVA AMINO — WooCommerce Element styling
   Shop loop, single product (hybrid spec-sheet), cart, checkout, my-account.
   ──────────────────────────────────────────────────────────── */

.aviva-woo-content { padding: 48px 24px 88px; }

/* Kill WC's clearfix pseudos that become grid items */
.aviva ul.products::before, .aviva ul.products::after,
.woocommerce::before, .woocommerce::after {
    display: none !important; content: none !important;
}

/* ── Shop loop grid (4 cols matching home featured) ── */
.aviva .woocommerce ul.products {
    list-style: none; padding: 0; margin: 0;
    display: grid; grid-template-columns: repeat(4, 1fr); gap: 24px;
}
.aviva .woocommerce ul.products.columns-3 { grid-template-columns: repeat(3, 1fr); }
.aviva .woocommerce ul.products.columns-2 { grid-template-columns: repeat(2, 1fr); }
.aviva .woocommerce ul.products li.product {
    width: auto !important; margin: 0 !important; float: none !important;
    background: var(--aviva-paper);
    border: 1px solid var(--aviva-line-strong);
    padding: 0;
    transition: border-color var(--aviva-transition);
}
.aviva .woocommerce ul.products li.product:hover { border-color: var(--aviva-ink); }
.aviva .woocommerce ul.products li.product .woocommerce-loop-product__link {
    display: block; text-decoration: none; color: inherit;
}
.aviva .woocommerce ul.products li.product img {
    width: 100% !important; height: auto;
    aspect-ratio: 1/1; object-fit: cover;
    border-bottom: 1px solid var(--aviva-line);
    margin: 0 !important;
}
.aviva .woocommerce ul.products li.product .woocommerce-loop-product__title {
    font-family: var(--aviva-font-display);
    font-weight: 600; font-size: 1.02rem;
    line-height: 1.3; letter-spacing: -0.01em;
    padding: 14px 18px 4px !important;
    margin: 0 !important;
    color: var(--aviva-ink);
}
.aviva .woocommerce ul.products li.product .price {
    font-family: var(--aviva-font-mono);
    font-size: 0.95rem; font-weight: 500;
    padding: 0 18px 6px !important;
    margin: 0 !important;
    color: var(--aviva-ink) !important;
}
.aviva .woocommerce ul.products li.product .price del { color: var(--aviva-muted-soft); font-weight: 400; margin-right: 6px; }
.aviva .woocommerce ul.products li.product .price ins { text-decoration: none; color: var(--aviva-accent); }
.aviva .woocommerce ul.products li.product .button {
    margin: 8px 18px 18px !important;
    background: var(--aviva-accent) !important;
    color: var(--aviva-paper) !important;
    border-radius: 0 !important;
    font-family: var(--aviva-font-display);
    font-weight: 600; font-size: 0.82rem;
    letter-spacing: 0.04em;
    padding: 11px 16px !important;
    transition: all var(--aviva-transition);
}
.aviva .woocommerce ul.products li.product .button:hover {
    background: var(--aviva-accent-hover) !important;
}
.aviva .woocommerce ul.products li.product .onsale {
    background: var(--aviva-accent) !important;
    color: #fff !important;
    border-radius: 0 !important;
    font-family: var(--aviva-font-mono);
    font-size: 0.66rem; letter-spacing: 0.18em;
    text-transform: uppercase;
    padding: 4px 10px;
    top: 12px; right: 12px; left: auto;
    min-height: auto; min-width: auto;
    line-height: 1.3;
}

/* WC pagination */
.aviva .woocommerce nav.woocommerce-pagination {
    margin-top: 48px; text-align: center;
}
.aviva .woocommerce nav.woocommerce-pagination ul {
    border: 1px solid var(--aviva-ink) !important;
    display: inline-flex;
}
.aviva .woocommerce nav.woocommerce-pagination ul li {
    border-right: 1px solid var(--aviva-ink) !important;
    margin: 0;
}
.aviva .woocommerce nav.woocommerce-pagination ul li:last-child { border-right: 0; }
.aviva .woocommerce nav.woocommerce-pagination ul li a,
.aviva .woocommerce nav.woocommerce-pagination ul li span {
    padding: 10px 16px !important;
    font-family: var(--aviva-font-mono);
    font-size: 0.85rem;
    background: var(--aviva-paper);
}
.aviva .woocommerce nav.woocommerce-pagination ul li span.current {
    background: var(--aviva-ink) !important; color: var(--aviva-paper) !important;
}

/* WC result count + sorting */
.aviva .woocommerce .woocommerce-result-count {
    font-family: var(--aviva-font-mono);
    font-size: 0.78rem; letter-spacing: 0.16em;
    text-transform: uppercase; color: var(--aviva-muted);
}
.aviva .woocommerce .woocommerce-ordering select {
    border: 1px solid var(--aviva-ink); border-radius: 0;
    padding: 8px 12px;
    font-family: var(--aviva-font-mono);
    font-size: 0.85rem; background: var(--aviva-paper);
}

/* ── Single product (hybrid spec-sheet + sticky buy) ── */
.aviva-single-product .aviva-woo-content { padding-top: 32px; }

.aviva-sp-meta {
    display: flex; justify-content: space-between; align-items: center;
    gap: 16px;
    padding-bottom: 14px;
    margin-bottom: 28px;
    border-bottom: 1px solid var(--aviva-ink);
}
.aviva-sp-cat-no {
    font-family: var(--aviva-font-mono);
    font-size: 0.75rem; font-weight: 500;
    letter-spacing: 0.22em; text-transform: uppercase;
    color: var(--aviva-ink); margin: 0;
}
.aviva-sp-stock {
    font-family: var(--aviva-font-mono);
    font-size: 0.7rem; letter-spacing: 0.16em;
    text-transform: uppercase;
}
.aviva-sp-stock.in  { color: var(--aviva-accent); }
.aviva-sp-stock.out { color: var(--aviva-error); }
.aviva-sp-stock::before {
    content: '●'; margin-right: 6px;
}

.aviva-sp-grid {
    display: grid; grid-template-columns: 1.1fr 1fr;
    gap: 56px;
}
.aviva-sp-gallery { float: none !important; width: 100% !important; }
.aviva-sp-summary { float: none !important; width: 100% !important; }
.aviva .woocommerce div.product {
    display: block; /* override WC default — children use our grid */
}
.aviva .woocommerce div.product .woocommerce-product-gallery {
    width: 100% !important; float: none !important; margin: 0 !important;
}
.aviva .woocommerce div.product .summary {
    width: 100% !important; float: none !important; margin: 0 !important;
}

/* Gallery thumb strip — Flexslider sets inline width on li/img to fill the
   column. Hard-cap with !important so 100px crops don't stretch to 150px+. */
.aviva-sp-gallery .flex-control-nav.flex-control-thumbs,
.woocommerce-product-gallery .flex-control-nav.flex-control-thumbs {
    display: flex !important;
    flex-wrap: wrap !important;
    gap: 8px !important;
    margin: 12px 0 0 !important;
    padding: 0 !important;
    list-style: none !important;
}
.aviva-sp-gallery .flex-control-thumbs li,
.woocommerce-product-gallery .flex-control-thumbs li {
    width: auto !important;
    flex: 0 0 auto !important;
    margin: 0 !important;
    padding: 0 !important;
    list-style: none !important;
    float: none !important;
}
.aviva-sp-gallery .flex-control-thumbs li img,
.woocommerce-product-gallery .flex-control-thumbs li img {
    width: 56px !important;
    height: 56px !important;
    max-width: 56px !important;
    object-fit: cover !important;
    cursor: pointer !important;
    opacity: 0.55;
    border: 1px solid var(--aviva-line);
    transition: opacity var(--aviva-transition), border-color var(--aviva-transition);
    display: block !important;
}
.aviva-sp-gallery .flex-control-thumbs li img:hover,
.aviva-sp-gallery .flex-control-thumbs li img.flex-active,
.woocommerce-product-gallery .flex-control-thumbs li img:hover,
.woocommerce-product-gallery .flex-control-thumbs li img.flex-active {
    opacity: 1;
    border-color: var(--aviva-teal-deep);
}
@media (max-width: 720px) {
    .aviva-sp-gallery .flex-control-thumbs li img,
    .woocommerce-product-gallery .flex-control-thumbs li img {
        width: 48px !important; height: 48px !important; max-width: 48px !important;
    }
}

.aviva .woocommerce div.product .product_title {
    font-family: var(--aviva-font-display);
    font-weight: 700;
    font-size: clamp(1.8rem, 3.4vw, 2.4rem);
    letter-spacing: -0.025em;
    line-height: 1.1;
    margin: 0 0 14px;
    color: var(--aviva-ink);
}
.aviva .woocommerce div.product .summary .product_meta { display: none; }
.aviva .woocommerce div.product .price {
    font-family: var(--aviva-font-mono);
    font-size: 1.4rem; font-weight: 500;
    color: var(--aviva-ink) !important;
    margin: 0 0 18px;
}
.aviva .woocommerce div.product .price del { color: var(--aviva-muted-soft); font-weight: 400; margin-right: 8px; }
.aviva .woocommerce div.product .price ins { text-decoration: none; color: var(--aviva-accent); }

.aviva .woocommerce div.product .woocommerce-product-details__short-description {
    font-size: 0.98rem; line-height: 1.55;
    color: var(--aviva-ink-soft);
    margin: 0 0 28px;
    padding: 18px 0;
    border-top: 1px solid var(--aviva-line);
    border-bottom: 1px solid var(--aviva-line);
}

/* Spec sheet block (full-width below the gallery+summary grid) */
.aviva-spec-sheet {
    border: 1px solid var(--aviva-teal-deep);
    margin: 48px 0 28px;
}
.aviva-spec-sheet-header {
    background: var(--aviva-teal-deep); color: var(--aviva-paper);
    padding: 12px 18px;
    display: flex; justify-content: space-between; align-items: center;
    gap: 16px;
}
.aviva-spec-eyebrow {
    font-family: var(--aviva-font-mono);
    font-size: 0.7rem; letter-spacing: 0.28em;
    text-transform: uppercase;
}
.aviva-spec-cat-mono {
    font-family: var(--aviva-font-mono);
    font-size: 0.78rem; letter-spacing: 0.22em;
    color: rgba(255,255,255,0.85); font-weight: 500;
}
.aviva-spec-rows { background: var(--aviva-paper); }
.aviva-spec-row {
    display: grid; grid-template-columns: 200px 1fr;
    gap: 24px;
    padding: 14px 18px;
    border-bottom: 1px solid var(--aviva-line);
    font-family: var(--aviva-font-mono);
    font-size: 0.9rem;
}
.aviva-spec-row:last-child { border-bottom: 0; }
.aviva-spec-row .k {
    color: var(--aviva-muted);
    font-size: 0.72rem; letter-spacing: 0.2em;
    text-transform: uppercase;
    align-self: center;
}
.aviva-spec-row .v { color: var(--aviva-ink); font-weight: 500; }
.aviva-spec-sheet-footer {
    background: var(--aviva-paper-soft);
    padding: 12px 18px;
    border-top: 1px solid var(--aviva-line);
}
.aviva-spec-disclaimer {
    font-family: var(--aviva-font-mono);
    font-size: 0.66rem; letter-spacing: 0.2em;
    text-transform: uppercase; color: var(--aviva-muted);
    margin: 0;
}

/* Sticky Buy bar */
.aviva-sticky-buy {
    position: fixed; left: 0; right: 0; bottom: 0;
    background: var(--aviva-teal-deep); color: var(--aviva-paper);
    border-top: 1px solid var(--aviva-teal-deep);
    padding: 14px 0;
    transform: translateY(100%);
    transition: transform 320ms cubic-bezier(0.22, 0.61, 0.36, 1);
    z-index: 90;
}
.aviva-sticky-buy.is-visible { transform: translateY(0); }
.aviva-sticky-buy-inner {
    display: flex; justify-content: space-between; align-items: center;
    gap: 24px;
}
.aviva-sticky-buy-info { display: flex; align-items: baseline; gap: 18px; min-width: 0; }
.aviva-sticky-buy-cat {
    font-family: var(--aviva-font-mono);
    font-size: 0.72rem; letter-spacing: 0.2em;
    color: rgba(255,255,255,0.75); white-space: nowrap;
}
.aviva-sticky-buy-title {
    font-family: var(--aviva-font-display);
    font-weight: 600; font-size: 1rem;
    color: #fff;
    white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
    min-width: 0;
}
.aviva-sticky-buy-actions { display: flex; align-items: center; gap: 16px; flex-shrink: 0; }
.aviva-sticky-buy-price {
    font-family: var(--aviva-font-mono);
    font-size: 1rem; font-weight: 500; color: #fff;
}
.aviva-sticky-buy-price del { color: rgba(255,255,255,0.5); margin-right: 6px; font-weight: 400; }
.aviva-sticky-buy-price ins { text-decoration: none; color: var(--aviva-accent); }
.aviva-sticky-buy-cta { padding: 10px 18px; font-size: 0.82rem; }
@media (max-width: 720px) {
    .aviva-sticky-buy-title { display: none; }
}

/* ── Variation form (variable products) ── */
.aviva .woocommerce div.product form.variations_form {
    display: block;
    margin-bottom: 24px;
}
.aviva .woocommerce div.product table.variations {
    border-collapse: collapse;
    margin: 0 0 18px;
    width: 100%;
    background: var(--aviva-paper-soft);
    border: 1px solid var(--aviva-line);
}
.aviva .woocommerce div.product table.variations th,
.aviva .woocommerce div.product table.variations td {
    padding: 14px 18px;
    border: none;
    vertical-align: middle;
}
.aviva .woocommerce div.product table.variations th.label,
.aviva .woocommerce div.product table.variations label {
    font-family: var(--aviva-font-mono);
    font-size: 0.72rem; letter-spacing: 0.22em;
    text-transform: uppercase; color: var(--aviva-muted);
    font-weight: 500; min-width: 110px;
    padding-right: 0;
    background: transparent;
}
.aviva .woocommerce div.product table.variations td.value { width: auto; }
.aviva .woocommerce div.product table.variations td.value::before { display: none; }
.aviva .woocommerce div.product table.variations select {
    width: 100%;
    border: 2px solid var(--aviva-ink) !important;
    border-radius: 0 !important;
    background: var(--aviva-paper);
    font-family: var(--aviva-font-mono);
    font-size: 0.92rem;
    color: var(--aviva-ink);
    padding: 12px 36px 12px 14px !important;
    outline: none;
    appearance: none; -webkit-appearance: none; -moz-appearance: none;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 8' fill='none' stroke='%230a0a0a' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='1 2 6 7 11 2'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right 14px center;
    background-size: 12px 8px;
    cursor: pointer;
    transition: border-color var(--aviva-transition);
}
.aviva .woocommerce div.product table.variations select:focus { border-color: var(--aviva-accent) !important; }
.aviva .woocommerce .reset_variations {
    display: inline-block;
    margin: 6px 0 0;
    font-family: var(--aviva-font-mono);
    font-size: 0.72rem; letter-spacing: 0.16em;
    text-transform: uppercase;
    color: var(--aviva-muted);
    border-bottom: 1px solid var(--aviva-line);
    padding-bottom: 2px;
    visibility: visible;
}
.aviva .woocommerce .reset_variations:hover { color: var(--aviva-accent); border-color: var(--aviva-accent); }

/* Single variation price + buy row (after a variation is selected) */
.aviva .woocommerce div.product .single_variation_wrap {
    padding-top: 4px;
    margin-bottom: 12px;
}
.aviva .woocommerce div.product .single_variation_wrap .woocommerce-variation-price {
    margin: 0 0 14px;
}
.aviva .woocommerce div.product .single_variation_wrap .woocommerce-variation-price .price {
    font-family: var(--aviva-font-mono);
    font-size: 1.35rem; font-weight: 500;
    color: var(--aviva-ink);
}
.aviva .woocommerce div.product .single_variation_wrap .woocommerce-variation-add-to-cart {
    display: flex; gap: 8px; align-items: stretch;
}
.aviva .woocommerce div.product .woocommerce-variation-availability {
    font-family: var(--aviva-font-mono);
    font-size: 0.75rem; letter-spacing: 0.12em;
    color: var(--aviva-accent);
    margin: 0 0 12px;
}

/* Add to cart form */
.aviva .woocommerce div.product form.cart {
    margin-bottom: 24px;
    display: flex; gap: 8px;
}
.aviva .woocommerce div.product form.cart .quantity .qty {
    border: 2px solid var(--aviva-ink); border-radius: 0;
    padding: 10px 12px;
    font-family: var(--aviva-font-mono);
    width: 70px; text-align: center;
}
.aviva .woocommerce div.product form.cart .single_add_to_cart_button {
    background: var(--aviva-accent) !important;
    color: var(--aviva-paper) !important;
    border-radius: 0 !important;
    font-family: var(--aviva-font-display);
    font-weight: 600; font-size: 0.9rem;
    letter-spacing: 0.05em;
    padding: 13px 28px !important;
    border: 2px solid var(--aviva-accent) !important;
    flex: 1;
    text-transform: uppercase;
    transition: all var(--aviva-transition);
}
.aviva .woocommerce div.product form.cart .single_add_to_cart_button:hover {
    background: var(--aviva-accent-hover) !important; border-color: var(--aviva-accent-hover) !important;
}
.aviva .woocommerce div.product form.cart.variations_form { display: block; }
.aviva .woocommerce div.product form.cart .woocommerce-variation-add-to-cart {
    display: flex; gap: 8px; margin-top: 14px;
}

/* WC tabs */
.aviva .woocommerce div.product .woocommerce-tabs {
    grid-column: 1 / -1;
    margin-top: 56px;
    border-top: 1px solid var(--aviva-line);
    padding-top: 32px;
}
.aviva .woocommerce div.product .woocommerce-tabs ul.tabs {
    border-bottom: 1px solid var(--aviva-ink) !important;
    padding: 0 !important; margin: 0 0 24px !important;
    display: flex; gap: 0;
}
.aviva .woocommerce div.product .woocommerce-tabs ul.tabs::before,
.aviva .woocommerce div.product .woocommerce-tabs ul.tabs::after { display: none !important; }
.aviva .woocommerce div.product .woocommerce-tabs ul.tabs li {
    border: 1px solid var(--aviva-line); border-bottom: 0;
    background: transparent !important; padding: 0 !important; margin: 0 !important;
    border-radius: 0 !important;
}
.aviva .woocommerce div.product .woocommerce-tabs ul.tabs li::after,
.aviva .woocommerce div.product .woocommerce-tabs ul.tabs li::before { display: none !important; }
.aviva .woocommerce div.product .woocommerce-tabs ul.tabs li.active {
    border-color: var(--aviva-ink) !important;
}
.aviva .woocommerce div.product .woocommerce-tabs ul.tabs li a {
    font-family: var(--aviva-font-mono);
    font-size: 0.78rem; letter-spacing: 0.18em;
    text-transform: uppercase;
    padding: 12px 22px !important;
    color: var(--aviva-muted);
    font-weight: 500;
}
.aviva .woocommerce div.product .woocommerce-tabs ul.tabs li.active a { color: var(--aviva-ink); }

/* ════════════════════════════════════════════════════════════════
   CART PAGE — Element redesign (template override @ woocommerce/cart/*)
   ════════════════════════════════════════════════════════════════ */

.aviva-cart-page { padding: 36px 0 96px; }

.aviva-cart-spec-bar {
    display: flex; flex-wrap: wrap; align-items: center; gap: 10px;
    font-family: var(--aviva-font-mono);
    font-size: 0.72rem; letter-spacing: 0.18em;
    text-transform: uppercase;
    color: var(--aviva-muted);
    padding-bottom: 18px;
    margin-bottom: 32px;
    border-bottom: 1px solid var(--aviva-line);
}
.aviva-cart-spec-label { color: var(--aviva-ink); font-weight: 600; }
.aviva-cart-spec-sep { color: var(--aviva-muted-soft); }
.aviva-cart-spec-step { color: var(--aviva-muted); text-decoration: none; }
.aviva-cart-spec-step:hover { color: var(--aviva-accent); }
.aviva-cart-spec-step.is-active { color: var(--aviva-ink); font-weight: 600; }

.aviva-cart-grid {
    display: grid; grid-template-columns: 1.6fr 1fr; gap: 40px;
    align-items: start;
}

.aviva-cart-card {
    background: var(--aviva-paper);
    border: 1px solid var(--aviva-ink);
}
.aviva-cart-card-head {
    display: flex; justify-content: space-between; align-items: baseline;
    padding: 22px 28px;
    border-bottom: 1px solid var(--aviva-ink);
    background: var(--aviva-paper);
}
.aviva-cart-card-title {
    font-family: var(--aviva-font-display);
    font-weight: 700; font-size: 1.7rem;
    letter-spacing: -0.025em;
    margin: 0; color: var(--aviva-ink);
}
.aviva-cart-card-count {
    font-family: var(--aviva-font-mono);
    font-size: 0.78rem; letter-spacing: 0.2em;
    text-transform: uppercase; color: var(--aviva-muted);
    margin: 0;
}

.aviva-cart-items { display: flex; flex-direction: column; }
.aviva-cart-item {
    display: grid;
    grid-template-columns: 110px 1fr 160px 140px 32px;
    gap: 24px; align-items: center;
    padding: 22px 28px;
    border-bottom: 1px solid var(--aviva-line);
}
.aviva-cart-item:last-child { border-bottom: 0; }
.aviva-cart-item-thumb {
    border: 1px solid var(--aviva-line-strong);
    background: var(--aviva-paper-soft);
    overflow: hidden;
}
.aviva-cart-item-thumb img,
.aviva-cart-item-thumb a img {
    display: block; width: 100% !important; height: auto; aspect-ratio: 1/1; object-fit: cover; margin: 0 !important;
}
.aviva-cart-item-cat {
    font-family: var(--aviva-font-mono);
    font-size: 0.7rem; letter-spacing: 0.22em;
    text-transform: uppercase;
    color: var(--aviva-accent);
    margin: 0 0 6px;
}
.aviva-cart-item-title {
    font-family: var(--aviva-font-display);
    font-weight: 600; font-size: 1.05rem;
    line-height: 1.3; letter-spacing: -0.01em;
    margin: 0 0 8px; color: var(--aviva-ink);
}
.aviva-cart-item-title a { color: inherit; text-decoration: none; }
.aviva-cart-item-title a:hover { color: var(--aviva-accent); }
.aviva-cart-item-meta {
    font-family: var(--aviva-font-mono);
    font-size: 0.72rem; letter-spacing: 0.08em;
    color: var(--aviva-muted);
    margin: 0 0 8px;
}
.aviva-cart-item-meta p { margin: 0; }
.aviva-cart-item-backorder {
    font-family: var(--aviva-font-mono);
    font-size: 0.7rem; letter-spacing: 0.14em;
    color: var(--aviva-error);
    text-transform: uppercase;
    margin: 0 0 8px;
}
.aviva-cart-item-unit {
    font-family: var(--aviva-font-mono);
    font-size: 0.78rem;
    color: var(--aviva-muted);
    margin: 0;
}
.aviva-cart-item-unit-label {
    font-size: 0.66rem; letter-spacing: 0.2em;
    text-transform: uppercase;
    margin-right: 8px;
    color: var(--aviva-muted-soft);
}
.aviva-cart-item-unit-price { color: var(--aviva-ink); font-weight: 500; }
.aviva-cart-item-unit-price del { color: var(--aviva-muted-soft); margin-right: 6px; }
.aviva-cart-item-unit-price ins { text-decoration: none; color: var(--aviva-accent); }

.aviva-cart-item-qty .quantity {
    display: inline-flex; align-items: stretch;
    border: 2px solid var(--aviva-ink);
}
.aviva-cart-item-qty input.qty,
.aviva-cart-item-qty .aviva-cart-qty-input {
    border: 0 !important;
    border-radius: 0 !important;
    background: var(--aviva-paper);
    font-family: var(--aviva-font-mono);
    font-size: 0.95rem; font-weight: 500;
    width: 58px; min-width: 58px;
    padding: 9px 0 !important;
    text-align: center;
    color: var(--aviva-ink);
    -moz-appearance: textfield;
}
.aviva-cart-item-qty input.qty::-webkit-outer-spin-button,
.aviva-cart-item-qty input.qty::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
.aviva-cart-item-qty .quantity .plus,
.aviva-cart-item-qty .quantity .minus,
.aviva-cart-item-qty .quantity button {
    background: var(--aviva-paper-soft);
    border: 0 !important;
    border-radius: 0 !important;
    color: var(--aviva-ink);
    font-family: var(--aviva-font-mono);
    font-size: 1rem; font-weight: 500;
    cursor: pointer;
    width: 36px;
    padding: 0 !important;
    transition: background var(--aviva-transition);
}
.aviva-cart-item-qty .quantity .plus { border-left: 1px solid var(--aviva-line-strong) !important; }
.aviva-cart-item-qty .quantity .minus { border-right: 1px solid var(--aviva-line-strong) !important; }
.aviva-cart-item-qty .quantity .plus:hover,
.aviva-cart-item-qty .quantity .minus:hover { background: var(--aviva-accent-soft); }

.aviva-cart-item-subtotal {
    text-align: right;
    font-family: var(--aviva-font-mono);
}
.aviva-cart-item-subtotal-label {
    display: block;
    font-size: 0.66rem; letter-spacing: 0.2em;
    text-transform: uppercase;
    color: var(--aviva-muted);
    margin-bottom: 4px;
}
.aviva-cart-item-subtotal-amount {
    font-size: 1.05rem; font-weight: 500;
    color: var(--aviva-ink);
}
.aviva-cart-item-subtotal-amount del { color: var(--aviva-muted-soft); margin-right: 6px; }
.aviva-cart-item-subtotal-amount ins { text-decoration: none; color: var(--aviva-accent); }

.aviva-cart-remove {
    display: inline-flex; align-items: center; justify-content: center;
    width: 32px; height: 32px;
    border: 1px solid var(--aviva-line-strong);
    background: var(--aviva-paper);
    color: var(--aviva-muted);
    text-decoration: none;
    transition: all var(--aviva-transition);
}
.aviva-cart-remove:hover {
    border-color: var(--aviva-error);
    color: var(--aviva-error);
    background: var(--aviva-paper);
}

.aviva-cart-actions {
    display: flex; justify-content: space-between; align-items: center;
    padding: 18px 28px;
    border-top: 1px solid var(--aviva-line);
    background: var(--aviva-paper-soft);
    gap: 16px; flex-wrap: wrap;
}
.aviva-cart-continue {
    font-family: var(--aviva-font-mono);
    font-size: 0.75rem; letter-spacing: 0.16em;
    text-transform: uppercase;
    color: var(--aviva-ink);
    text-decoration: none;
    border-bottom: 1px solid transparent;
    transition: border-color var(--aviva-transition), color var(--aviva-transition);
}
.aviva-cart-continue:hover { color: var(--aviva-accent); border-color: var(--aviva-accent); }
.aviva-cart-update-btn {
    background: transparent;
    border: 2px solid var(--aviva-ink);
    color: var(--aviva-ink);
    font-family: var(--aviva-font-display);
    font-weight: 600; font-size: 0.82rem;
    letter-spacing: 0.05em;
    padding: 10px 22px;
    border-radius: 0;
    cursor: pointer;
    transition: all var(--aviva-transition);
}
.aviva-cart-update-btn:hover {
    background: var(--aviva-ink); color: var(--aviva-paper);
}

/* Sidebar ────────────────────────────────────────────────────── */
.aviva-cart-sidebar { position: sticky; top: 96px; }
.aviva-cart-summary {
    background: var(--aviva-paper);
    border: 1px solid var(--aviva-ink);
}
.aviva-cart-summary-head {
    padding: 22px 26px 18px;
    border-bottom: 1px solid var(--aviva-line);
}
.aviva-cart-summary-eyebrow {
    font-family: var(--aviva-font-mono);
    font-size: 0.7rem; letter-spacing: 0.22em;
    text-transform: uppercase;
    color: var(--aviva-muted);
    margin: 0 0 6px;
}
.aviva-cart-summary-title {
    font-family: var(--aviva-font-display);
    font-weight: 700; font-size: 1.5rem;
    letter-spacing: -0.025em;
    margin: 0; color: var(--aviva-ink);
}

.aviva-cart-ship-bar {
    padding: 18px 26px;
    border-bottom: 1px solid var(--aviva-line);
    background: var(--aviva-paper-soft);
}
.aviva-cart-ship-msg {
    font-family: var(--aviva-font-mono);
    font-size: 0.78rem; letter-spacing: 0.04em;
    color: var(--aviva-ink);
    margin: 0 0 10px;
}
.aviva-cart-ship-msg strong { color: var(--aviva-teal-hover); font-weight: 600; }
.aviva-cart-ship-track {
    height: 4px; background: var(--aviva-line-strong);
    overflow: hidden;
}
.aviva-cart-ship-fill {
    height: 100%;
    background: var(--aviva-teal);
    transition: width var(--aviva-transition);
}

.aviva-cart-totals { padding: 22px 26px 0; }
.aviva-cart-totals-rows {
    list-style: none; margin: 0; padding: 0;
}
.aviva-cart-totals-row {
    display: flex; justify-content: space-between; align-items: baseline;
    gap: 16px;
    padding: 12px 0;
    border-bottom: 1px solid var(--aviva-line);
    font-family: var(--aviva-font-mono);
    font-size: 0.92rem;
}
.aviva-cart-totals-row .k {
    color: var(--aviva-muted);
    font-size: 0.72rem; letter-spacing: 0.18em;
    text-transform: uppercase;
}
.aviva-cart-totals-row .v {
    color: var(--aviva-ink); font-weight: 500;
    text-align: right;
}
.aviva-cart-totals-row .v del { color: var(--aviva-muted-soft); margin-right: 6px; }
.aviva-cart-totals-row .v ins { text-decoration: none; color: var(--aviva-accent); }
.aviva-cart-totals-row-block {
    flex-direction: column; align-items: stretch;
}
.aviva-cart-totals-row-block .k { margin-bottom: 8px; }
.aviva-cart-totals-row-block .v ul,
.aviva-cart-totals-row .aviva-shipping-cell ul {
    list-style: none; margin: 0; padding: 0;
    text-align: left;
    font-size: 0.85rem;
}
.aviva-cart-totals-row-block .v ul li,
.aviva-cart-totals-row .aviva-shipping-cell ul li {
    padding: 6px 0;
    border-bottom: 1px dashed var(--aviva-line);
}
.aviva-cart-totals-row-block .v ul li:last-child,
.aviva-cart-totals-row .aviva-shipping-cell ul li:last-child { border-bottom: 0; }
.aviva-cart-totals-row-block .v ul li label,
.aviva-cart-totals-row .aviva-shipping-cell ul li label {
    cursor: pointer;
    display: flex; gap: 8px; align-items: center;
}

.aviva-cart-totals-row.order-total {
    padding: 18px 0 6px;
    border-bottom: 0;
}
.aviva-cart-totals-row.order-total .k {
    color: var(--aviva-ink);
    font-size: 0.8rem; letter-spacing: 0.18em;
}
.aviva-cart-totals-row.order-total .v {
    font-size: 1.4rem; font-weight: 600;
    color: var(--aviva-ink);
}

.aviva-cart-coupon-form {
    padding: 0 26px 22px;
    margin: 4px 0 0;
    border-bottom: 1px solid var(--aviva-line);
    padding-bottom: 22px;
}
.aviva-cart-coupon-label {
    display: block;
    font-family: var(--aviva-font-mono);
    font-size: 0.7rem; letter-spacing: 0.22em;
    text-transform: uppercase; color: var(--aviva-muted);
    margin-bottom: 8px;
}
.aviva-cart-coupon-row {
    display: flex; gap: 8px;
}
.aviva-cart-coupon-row input.input-text {
    flex: 1;
    border: 1.5px solid var(--aviva-line-strong) !important;
    border-radius: 0 !important;
    padding: 10px 12px !important;
    font-family: var(--aviva-font-mono);
    background: var(--aviva-paper);
}
.aviva-cart-coupon-row input.input-text:focus {
    border-color: var(--aviva-ink) !important;
    outline: none;
}
.aviva-cart-coupon-apply {
    background: var(--aviva-paper);
    border: 1.5px solid var(--aviva-ink);
    color: var(--aviva-ink);
    font-family: var(--aviva-font-display);
    font-weight: 600; font-size: 0.78rem;
    letter-spacing: 0.05em;
    padding: 10px 18px;
    border-radius: 0;
    cursor: pointer;
    transition: all var(--aviva-transition);
}
.aviva-cart-coupon-apply:hover { background: var(--aviva-ink); color: var(--aviva-paper); }

.aviva-cart-checkout-wrap { padding: 22px 26px 26px; }
.aviva-cart-checkout-wrap a.checkout-button,
.aviva-cart-checkout-wrap button {
    display: block; width: 100%;
    background: var(--aviva-accent) !important;
    color: #fff !important;
    border: 0 !important;
    border-radius: 0 !important;
    font-family: var(--aviva-font-display);
    font-weight: 600; font-size: 0.95rem;
    letter-spacing: 0.05em;
    padding: 16px 22px !important;
    text-align: center;
    text-decoration: none;
    transition: background var(--aviva-transition);
}
.aviva-cart-checkout-wrap a.checkout-button:hover,
.aviva-cart-checkout-wrap button:hover {
    background: var(--aviva-accent-hover) !important;
}

.aviva-cart-assurance {
    list-style: none; margin: 18px 0 0; padding: 18px 0 0;
    border-top: 1px solid var(--aviva-line);
}
.aviva-cart-assurance li {
    display: grid; grid-template-columns: 70px 1fr;
    gap: 14px;
    padding: 8px 0;
    font-family: var(--aviva-font-mono);
    font-size: 0.8rem;
    color: var(--aviva-muted);
}
.aviva-cart-assurance li .k {
    font-size: 0.66rem; letter-spacing: 0.22em;
    text-transform: uppercase;
    color: var(--aviva-accent);
    font-weight: 600;
}

/* Empty cart ─────────────────────────────────────────────────── */
.aviva-cart-empty { padding: 96px 0; }
.aviva-cart-empty-card {
    max-width: 520px; margin: 0 auto;
    text-align: center;
    border: 1px solid var(--aviva-ink);
    padding: 56px 36px;
    background: var(--aviva-paper);
}
.aviva-cart-empty-eyebrow {
    font-family: var(--aviva-font-mono);
    font-size: 0.74rem; letter-spacing: 0.22em;
    text-transform: uppercase;
    color: var(--aviva-muted);
    margin: 0 0 14px;
}
.aviva-cart-empty-title {
    font-family: var(--aviva-font-display);
    font-weight: 700; font-size: 2rem;
    letter-spacing: -0.025em;
    margin: 0 0 12px;
}
.aviva-cart-empty-sub {
    font-size: 0.98rem;
    color: var(--aviva-muted);
    margin: 0 0 28px;
}
.aviva-cart-empty-cta { display: inline-block; }
.aviva-cart-empty-spec {
    display: grid; grid-template-columns: repeat(3, 1fr);
    gap: 16px;
    margin-top: 36px;
    padding-top: 28px;
    border-top: 1px solid var(--aviva-line);
}
.aviva-cart-empty-spec > div {
    font-family: var(--aviva-font-mono);
    font-size: 0.78rem;
}
.aviva-cart-empty-spec .k {
    display: block;
    font-size: 0.66rem; letter-spacing: 0.22em;
    text-transform: uppercase;
    color: var(--aviva-muted);
    margin-bottom: 4px;
}
.aviva-cart-empty-spec .v { color: var(--aviva-ink); }

/* Suppress legacy WC cart-form classes ───────────────────────── */
.aviva .woocommerce-cart .cart-collaterals { display: none; } /* sidebar is in our markup */

/* ════════════════════════════════════════════════════════════════
   CHECKOUT — Element redesign
   ════════════════════════════════════════════════════════════════ */

.aviva-checkout-page { padding: 36px 0 96px; }

.aviva-checkout-spec-bar {
    display: flex; flex-wrap: wrap; align-items: center; gap: 10px;
    font-family: var(--aviva-font-mono);
    font-size: 0.72rem; letter-spacing: 0.18em;
    text-transform: uppercase;
    color: var(--aviva-muted);
    padding-bottom: 18px;
    margin-bottom: 32px;
    border-bottom: 1px solid var(--aviva-line);
}

.aviva-checkout-grid {
    display: grid; grid-template-columns: 1.4fr 1fr; gap: 40px;
    align-items: start;
}

.aviva-checkout-main {
    background: var(--aviva-paper);
    border: 1px solid var(--aviva-ink);
    padding: 32px 36px;
}

.aviva-checkout-section { display: block; }
.aviva-checkout-billing,
.aviva-checkout-shipping {
    margin-bottom: 32px;
}
.aviva-checkout-billing:last-child,
.aviva-checkout-shipping:last-child { margin-bottom: 0; }

/* Section headings (Billing/Shipping/etc.) */
.aviva .woocommerce-checkout h3 {
    font-family: var(--aviva-font-display);
    font-weight: 700; font-size: 1.35rem;
    letter-spacing: -0.02em;
    margin: 0 0 6px;
    padding: 0;
    border: 0;
    color: var(--aviva-ink);
}
.aviva .woocommerce-checkout h3#ship-to-different-address {
    display: flex; align-items: center; gap: 12px;
    margin-top: 32px;
    padding-top: 28px;
    border-top: 1px solid var(--aviva-line);
}
.aviva .woocommerce-checkout h3#ship-to-different-address label {
    font-family: var(--aviva-font-display);
    font-size: inherit; letter-spacing: -0.02em;
    color: var(--aviva-ink);
    text-transform: none;
    font-weight: 700;
}

/* Form fields — Element style */
.aviva .woocommerce form .form-row {
    margin-bottom: 16px;
    padding: 0;
}
.aviva .woocommerce form .form-row label {
    font-family: var(--aviva-font-mono);
    font-size: 0.7rem; letter-spacing: 0.22em;
    text-transform: uppercase;
    color: var(--aviva-muted);
    font-weight: 500;
    margin-bottom: 6px;
    display: block;
}
.aviva .woocommerce form .form-row label .required,
.aviva .woocommerce form .form-row label .optional { color: var(--aviva-accent); text-decoration: none; }
.aviva .woocommerce form .form-row input.input-text,
.aviva .woocommerce form .form-row textarea,
.aviva .woocommerce form .form-row select,
.aviva .woocommerce form .form-row .select2-selection {
    width: 100%;
    border: 1.5px solid var(--aviva-line-strong) !important;
    border-radius: 0 !important;
    padding: 12px 14px !important;
    font-family: var(--aviva-font-sans);
    font-size: 0.95rem;
    background: var(--aviva-paper);
    color: var(--aviva-ink);
    transition: border-color var(--aviva-transition);
    line-height: 1.4;
    min-height: auto;
    box-shadow: none;
}
.aviva .woocommerce form .form-row input.input-text:focus,
.aviva .woocommerce form .form-row textarea:focus,
.aviva .woocommerce form .form-row select:focus {
    border-color: var(--aviva-ink) !important;
    outline: none;
}
.aviva .woocommerce form .form-row .select2-selection {
    height: auto !important;
    padding: 8px 14px !important;
}
.aviva .woocommerce form .form-row .select2-selection__rendered {
    padding: 0 !important;
    line-height: 1.6 !important;
    color: var(--aviva-ink) !important;
}
.aviva .woocommerce form .form-row .select2-selection__arrow { top: 50% !important; transform: translateY(-50%); }
.aviva .select2-dropdown {
    border-radius: 0 !important;
    border-color: var(--aviva-ink) !important;
}
.aviva .select2-container--default .select2-results__option--highlighted[aria-selected] {
    background: var(--aviva-accent) !important;
}

/* Honor row-first/last from WC */
.aviva .woocommerce form .form-row-first,
.aviva .woocommerce form .form-row-last { width: 48%; }
.aviva .woocommerce form .form-row-wide { width: 100%; }

/* Checkbox styling (terms, login, etc.) */
.aviva .woocommerce form .form-row .woocommerce-form__input-checkbox,
.aviva .woocommerce-form__input-checkbox {
    accent-color: var(--aviva-accent);
    width: 16px; height: 16px;
    margin-right: 8px;
    vertical-align: middle;
}
.aviva .woocommerce-form__label-for-checkbox {
    font-family: var(--aviva-font-sans) !important;
    font-size: 0.92rem !important;
    letter-spacing: 0 !important;
    text-transform: none !important;
    color: var(--aviva-ink) !important;
    cursor: pointer;
}

/* Login + coupon prompts at the top of checkout */
.aviva .woocommerce-form-login-toggle,
.aviva .woocommerce-form-coupon-toggle {
    margin-bottom: 18px;
}
/* checkout info/message banner spacing (main styles in WC notices block below) */
.aviva .woocommerce-info,
.aviva .woocommerce-message {
    color: var(--aviva-ink);
}

/* Sidebar / review ───────────────────────────────────────────── */
.aviva-checkout-sidebar { position: sticky; top: 96px; }
.aviva-checkout-review {
    background: var(--aviva-paper);
    border: 1px solid var(--aviva-ink);
}
.aviva-checkout-review-head {
    padding: 22px 26px 16px;
    border-bottom: 1px solid var(--aviva-line);
}
.aviva-checkout-review-eyebrow {
    font-family: var(--aviva-font-mono);
    font-size: 0.7rem; letter-spacing: 0.22em;
    text-transform: uppercase;
    color: var(--aviva-muted);
    margin: 0 0 6px;
}
.aviva-checkout-review-title {
    font-family: var(--aviva-font-display);
    font-weight: 700; font-size: 1.5rem;
    letter-spacing: -0.025em;
    margin: 0; color: var(--aviva-ink);
}
.aviva-checkout-review-body { padding: 0; }

.aviva-co-review-items {
    padding: 18px 26px;
    border-bottom: 1px solid var(--aviva-line);
    max-height: 360px;
    overflow-y: auto;
}
.aviva-co-line {
    display: grid;
    grid-template-columns: 64px 1fr auto;
    gap: 14px; align-items: start;
    padding: 12px 0;
    border-bottom: 1px solid var(--aviva-line);
}
.aviva-co-line:last-child { border-bottom: 0; }
.aviva-co-line-thumb {
    position: relative;
    width: 64px; height: 64px;
    border: 1px solid var(--aviva-line-strong);
    background: var(--aviva-paper-soft);
    overflow: hidden;
}
.aviva-co-line-thumb img {
    width: 100% !important; height: 100% !important;
    object-fit: cover; display: block; margin: 0 !important;
}
.aviva-co-line-qty {
    position: absolute; top: -6px; right: -6px;
    background: var(--aviva-teal-deep);
    color: var(--aviva-paper);
    font-family: var(--aviva-font-mono);
    font-size: 0.7rem; font-weight: 600;
    min-width: 22px; height: 22px;
    display: inline-flex; align-items: center; justify-content: center;
    padding: 0 6px;
    line-height: 1;
}
.aviva-co-line-cat {
    font-family: var(--aviva-font-mono);
    font-size: 0.66rem; letter-spacing: 0.22em;
    text-transform: uppercase;
    color: var(--aviva-accent);
    margin: 0 0 2px;
}
.aviva-co-line-title {
    font-family: var(--aviva-font-display);
    font-size: 0.92rem; font-weight: 600;
    line-height: 1.3;
    color: var(--aviva-ink);
    margin: 0;
}
.aviva-co-line-meta {
    font-family: var(--aviva-font-mono);
    font-size: 0.7rem;
    color: var(--aviva-muted);
    margin-top: 4px;
}
.aviva-co-line-meta p { margin: 0; }
.aviva-co-line-amt {
    font-family: var(--aviva-font-mono);
    font-size: 0.9rem; font-weight: 500;
    color: var(--aviva-ink);
    text-align: right;
    white-space: nowrap;
}

.aviva-co-coupon {
    padding: 14px 26px;
    border-bottom: 1px solid var(--aviva-line);
    background: var(--aviva-paper-soft);
}
.aviva-co-coupon .checkout_coupon { display: block !important; margin: 0; padding: 0; border: 0; background: transparent; }
.aviva-co-coupon .form-row { margin: 0 !important; }
.aviva-co-coupon .form-row-first,
.aviva-co-coupon .form-row-last { width: 100%; }
.aviva-co-coupon .form-row input.input-text {
    padding: 10px 12px !important;
    margin-bottom: 8px;
}
.aviva-co-coupon .form-row .button {
    background: var(--aviva-paper) !important;
    border: 1.5px solid var(--aviva-ink) !important;
    color: var(--aviva-ink) !important;
    border-radius: 0 !important;
    font-family: var(--aviva-font-display);
    font-weight: 600; font-size: 0.78rem;
    letter-spacing: 0.05em;
    padding: 10px 18px !important;
}
.aviva-co-coupon .form-row .button:hover {
    background: var(--aviva-ink) !important; color: var(--aviva-paper) !important;
}

.aviva-co-totals {
    list-style: none; margin: 0; padding: 18px 26px;
    border-bottom: 1px solid var(--aviva-line);
}
.aviva-co-totals-row {
    display: flex; justify-content: space-between; align-items: baseline;
    gap: 16px;
    padding: 8px 0;
    border-bottom: 1px solid var(--aviva-line);
    font-family: var(--aviva-font-mono);
    font-size: 0.9rem;
}
.aviva-co-totals-row:last-child { border-bottom: 0; }
.aviva-co-totals-row .k {
    color: var(--aviva-muted);
    font-size: 0.7rem; letter-spacing: 0.18em;
    text-transform: uppercase;
}
.aviva-co-totals-row .v { color: var(--aviva-ink); font-weight: 500; text-align: right; }
.aviva-co-totals-row .v del { color: var(--aviva-muted-soft); margin-right: 6px; }
.aviva-co-totals-row .v ins { text-decoration: none; color: var(--aviva-accent); }
.aviva-co-totals-row.aviva-co-totals-row-block { flex-direction: column; align-items: stretch; }
.aviva-co-totals-row.aviva-co-totals-row-block .k { margin-bottom: 6px; }
.aviva-co-totals-row.aviva-co-totals-row-block ul {
    list-style: none; margin: 0; padding: 0;
    text-align: left;
    font-size: 0.84rem;
}
.aviva-co-totals-row.aviva-co-totals-row-block ul li { padding: 4px 0; }
.aviva-co-totals-row.aviva-co-totals-row-block ul li label { cursor: pointer; }
.aviva-co-totals-row.order-total {
    padding: 14px 0 4px;
    margin-top: 6px;
    border-top: 2px solid var(--aviva-ink);
    border-bottom: 0;
}
.aviva-co-totals-row.order-total .k {
    color: var(--aviva-ink);
    font-size: 0.78rem;
}
.aviva-co-totals-row.order-total .v {
    font-size: 1.35rem; font-weight: 600;
    color: var(--aviva-ink);
}

/* Payment ────────────────────────────────────────────────────── */
.aviva-co-payment, .aviva-checkout-review .woocommerce-checkout-payment { padding: 22px 26px 26px; }
.aviva-co-payment, .aviva-checkout-review .woocommerce-checkout-payment ul.wc_payment_methods {
    list-style: none; margin: 0 0 22px; padding: 0;
}
.aviva-co-payment, .aviva-checkout-review .woocommerce-checkout-payment ul.wc_payment_methods li.wc_payment_method {
    border: 1.5px solid var(--aviva-line-strong);
    padding: 14px 16px;
    margin-bottom: 8px;
    background: var(--aviva-paper);
    transition: border-color var(--aviva-transition);
}
.aviva-co-payment, .aviva-checkout-review .woocommerce-checkout-payment ul.wc_payment_methods li.wc_payment_method:has(input:checked) {
    border-color: var(--aviva-ink);
}
.aviva-co-payment, .aviva-checkout-review .woocommerce-checkout-payment ul.wc_payment_methods li input[type="radio"] {
    accent-color: var(--aviva-accent);
    margin-right: 8px;
}
.aviva-co-payment, .aviva-checkout-review .woocommerce-checkout-payment ul.wc_payment_methods li label {
    font-family: var(--aviva-font-display) !important;
    font-size: 0.95rem !important;
    font-weight: 600 !important;
    letter-spacing: 0 !important;
    text-transform: none !important;
    color: var(--aviva-ink) !important;
    cursor: pointer;
    display: inline;
}
.aviva-co-payment, .aviva-checkout-review .woocommerce-checkout-payment .payment_box {
    background: var(--aviva-paper-soft);
    border: 1px solid var(--aviva-line);
    padding: 14px 16px;
    margin: 12px 0 0;
    font-family: var(--aviva-font-sans);
    font-size: 0.88rem;
    color: var(--aviva-muted);
}
.aviva-co-payment, .aviva-checkout-review .woocommerce-checkout-payment .payment_box::before { display: none !important; }

.aviva .woocommerce #place_order,
.aviva-co-place-order-btn {
    background: var(--aviva-accent) !important;
    color: #fff !important;
    border: 0 !important;
    border-radius: 0 !important;
    font-family: var(--aviva-font-display) !important;
    font-weight: 600 !important; font-size: 1rem !important;
    letter-spacing: 0.05em;
    padding: 18px 28px !important;
    width: 100%;
    text-transform: none;
    cursor: pointer;
    transition: background var(--aviva-transition);
    margin-top: 8px;
}
.aviva .woocommerce #place_order:hover,
.aviva-co-place-order-btn:hover { background: var(--aviva-accent-hover) !important; }

.aviva-checkout-trust {
    list-style: none; margin: 0; padding: 18px 26px 24px;
    background: var(--aviva-paper-soft);
    border-top: 1px solid var(--aviva-line);
}
.aviva-checkout-trust li {
    display: grid; grid-template-columns: 32px 1fr;
    gap: 12px; align-items: start;
    padding: 6px 0;
    font-family: var(--aviva-font-mono);
    font-size: 0.78rem;
    color: var(--aviva-muted);
}
.aviva-checkout-trust li .k {
    font-size: 0.66rem; letter-spacing: 0.2em;
    color: var(--aviva-accent);
    font-weight: 600;
    text-transform: uppercase;
}

/* Hide stray WC headings now rendered by our markup */
#order_review_heading { display: none; }

/* Responsive ─────────────────────────────────────────────────── */
@media (max-width: 980px) {
    .aviva-cart-grid,
    .aviva-checkout-grid { grid-template-columns: 1fr; }
    .aviva-cart-sidebar,
    .aviva-checkout-sidebar { position: static; }
}
@media (max-width: 720px) {
    .aviva-cart-item {
        grid-template-columns: 80px 1fr 32px;
        gap: 16px;
    }
    .aviva-cart-item-qty,
    .aviva-cart-item-subtotal { grid-column: 2 / 3; }
    .aviva-cart-item-qty { padding-top: 6px; }
    .aviva-cart-item-subtotal { text-align: left; }
    .aviva-cart-item-remove { grid-column: 3 / 4; grid-row: 1 / 2; }
    .aviva-cart-card-head { padding: 18px 20px; }
    .aviva-cart-card-title { font-size: 1.4rem; }
    .aviva-cart-item { padding: 18px 20px; }
    .aviva-cart-actions { padding: 16px 20px; }
    .aviva-checkout-main { padding: 22px 20px; }
    .aviva .woocommerce form .form-row-first,
    .aviva .woocommerce form .form-row-last { width: 100%; }
}

/* ── My Account ── */
.aviva .woocommerce-account .woocommerce {
    display: grid; grid-template-columns: 260px 1fr; gap: 48px;
}
.aviva .woocommerce-account .woocommerce-MyAccount-navigation ul {
    list-style: none; margin: 0; padding: 0;
    border: 1px solid var(--aviva-ink);
}
.aviva .woocommerce-account .woocommerce-MyAccount-navigation ul li {
    border-bottom: 1px solid var(--aviva-line);
}
.aviva .woocommerce-account .woocommerce-MyAccount-navigation ul li:last-child { border-bottom: 0; }
.aviva .woocommerce-account .woocommerce-MyAccount-navigation ul li a {
    display: block; padding: 12px 18px;
    font-family: var(--aviva-font-mono);
    font-size: 0.82rem; letter-spacing: 0.12em;
    text-transform: uppercase;
    color: var(--aviva-ink);
}
.aviva .woocommerce-account .woocommerce-MyAccount-navigation ul li.is-active a {
    background: var(--aviva-ink); color: var(--aviva-paper);
}
.aviva .woocommerce-account .woocommerce-MyAccount-navigation ul li a:hover {
    background: var(--aviva-accent-soft); color: var(--aviva-ink);
}

/* WC notices */
.aviva .woocommerce-message, .aviva .woocommerce-info, .aviva .woocommerce-error {
    border-radius: 0 !important;
    border-top: 3px solid var(--aviva-accent) !important;
    background: var(--aviva-paper-soft) !important;
    font-family: var(--aviva-font-sans);
    padding: 14px 18px 14px 50px !important;
    position: relative;
    list-style: none !important;
    font-size: 0.9rem;
    line-height: 1.5;
    color: var(--aviva-ink);
    margin-bottom: 16px;
}
.aviva .woocommerce-message::before, .aviva .woocommerce-info::before, .aviva .woocommerce-error::before {
    position: absolute !important;
    left: 16px !important;
    top: 14px !important;
    float: none !important;
    margin: 0 !important;
    font-size: 1.1em;
    line-height: 1;
}
.aviva .woocommerce-error { border-top-color: var(--aviva-error) !important; }
.aviva .woocommerce-error li { list-style: none; }
.aviva ul.woocommerce-error { padding-left: 50px !important; }
.aviva ul.woocommerce-error li { padding: 4px 0; }
.aviva .woocommerce-message .button, .aviva .woocommerce-info .button {
    float: none !important;
    display: inline-block;
    margin-right: 12px;
    font-family: var(--aviva-font-display);
    font-weight: 600;
    font-size: 0.85rem;
    color: var(--aviva-accent);
    text-decoration: none;
    border: none; background: none; padding: 0;
}
.aviva .woocommerce-message .button:hover, .aviva .woocommerce-info .button:hover {
    color: var(--aviva-accent-hover);
}

/* Order received / Thank-you page */
.aviva-page--full .woocommerce-order {
    max-width: 820px;
    margin: 60px auto;
    padding: 0 24px;
    font-family: var(--aviva-font-sans);
}
.aviva-page--full .woocommerce-order .woocommerce-thankyou-order-received {
    font-family: var(--aviva-font-display);
    font-size: 1.6rem;
    font-weight: 700;
    letter-spacing: -0.02em;
    color: var(--aviva-ink);
    margin: 0 0 24px;
    text-align: center;
}
.aviva-page--full .woocommerce-order .woocommerce-order-overview {
    list-style: none;
    padding: 24px 0;
    margin: 0 0 32px;
    display: flex;
    flex-wrap: wrap;
    gap: 0;
    border-top: 2px solid var(--aviva-ink);
    border-bottom: 1px solid var(--aviva-line, #e5e5e5);
}
.aviva-page--full .woocommerce-order .woocommerce-order-overview li {
    flex: 1 1 auto;
    padding: 12px 20px;
    border-right: 1px solid var(--aviva-line, #e5e5e5);
    font-size: 0.85rem;
    color: var(--aviva-muted);
    text-transform: uppercase;
    letter-spacing: 0.04em;
    font-family: var(--aviva-font-mono);
}
.aviva-page--full .woocommerce-order .woocommerce-order-overview li:last-child {
    border-right: none;
}
.aviva-page--full .woocommerce-order .woocommerce-order-overview li strong {
    display: block;
    font-family: var(--aviva-font-display);
    font-size: 1rem;
    color: var(--aviva-ink);
    font-weight: 600;
    margin-top: 4px;
    text-transform: none;
    letter-spacing: -0.01em;
}
.aviva-page--full .woocommerce-order h2 {
    font-family: var(--aviva-font-display);
    font-size: 1.2rem;
    font-weight: 700;
    letter-spacing: -0.02em;
    color: var(--aviva-ink);
    margin: 32px 0 16px;
    padding-bottom: 10px;
    border-bottom: 2px solid var(--aviva-ink);
}
.aviva-page--full .woocommerce-order table.shop_table {
    width: 100%;
    border-collapse: collapse;
    font-size: 0.9rem;
    margin-bottom: 24px;
}
.aviva-page--full .woocommerce-order table.shop_table th {
    font-family: var(--aviva-font-mono);
    font-size: 0.75rem;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: var(--aviva-muted);
    padding: 10px 12px;
    border-bottom: 1px solid var(--aviva-line, #e5e5e5);
    text-align: left;
}
.aviva-page--full .woocommerce-order table.shop_table td {
    padding: 12px;
    border-bottom: 1px solid var(--aviva-line, #e5e5e5);
    color: var(--aviva-ink);
}
.aviva-page--full .woocommerce-order table.shop_table tfoot th {
    text-align: right;
}
.aviva-page--full .woocommerce-order .woocommerce-customer-details {
    margin-top: 32px;
}
.aviva-page--full .woocommerce-order address {
    font-style: normal;
    line-height: 1.7;
    color: var(--aviva-ink);
    font-size: 0.9rem;
    border: 1px solid var(--aviva-line, #e5e5e5);
    padding: 20px 24px;
}
@media (max-width: 600px) {
    .aviva-page--full .woocommerce-order { margin: 40px auto; }
    .aviva-page--full .woocommerce-order .woocommerce-order-overview { flex-direction: column; }
    .aviva-page--full .woocommerce-order .woocommerce-order-overview li { border-right: none; border-bottom: 1px solid var(--aviva-line, #e5e5e5); }
    .aviva-page--full .woocommerce-order .woocommerce-order-overview li:last-child { border-bottom: none; }
}

@media (max-width: 1024px) {
    .aviva .woocommerce ul.products { grid-template-columns: repeat(2, 1fr); }
    .aviva .woocommerce div.product { grid-template-columns: 1fr; }
    .aviva .woocommerce-account .woocommerce { grid-template-columns: 1fr; }
}
@media (max-width: 600px) {
    .aviva .woocommerce ul.products { grid-template-columns: 1fr; }
}
