/**
 * WooCommerce overrides — My Account, checkout, cart, thank you.
 *
 * @package CPM_Theme
 */

/* ============================================================
   MY ACCOUNT
   ============================================================ */

.woocommerce-account .woocommerce {
    display: flex;
    flex-direction: column;
    gap: var(--cpm-space-xl);
}

/* --- Nav Wrapper (avatar + nav in one card) --- */
.cpm-account-nav-wrapper {
    background: var(--cpm-white);
    border-radius: var(--cpm-radius-md);
    box-shadow: var(--cpm-shadow-sm);
    overflow: hidden;
}

/* --- Avatar Block --- */
.cpm-account-avatar {
    display: flex;
    align-items: center;
    gap: var(--cpm-space-md);
    padding: var(--cpm-space-lg);
    border-bottom: 1px solid var(--cpm-gray-200);
}

.cpm-account-avatar__circle {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 44px;
    height: 44px;
    border-radius: 50%;
    background: var(--cpm-primary);
    color: var(--cpm-white);
    font-weight: 700;
    font-size: var(--cpm-font-size-md);
    flex-shrink: 0;
    letter-spacing: 0.02em;
}

.cpm-account-avatar__name {
    font-weight: 600;
    font-size: var(--cpm-font-size-base);
    color: var(--cpm-text-primary);
    line-height: var(--cpm-line-height-tight);
}

/* --- Navigation --- */
.woocommerce-MyAccount-navigation {
    overflow: hidden;
}

/* Remove standalone card styling when inside wrapper */
.cpm-account-nav-wrapper .woocommerce-MyAccount-navigation {
    background: none;
    border-radius: 0;
    box-shadow: none;
}

.woocommerce-MyAccount-navigation ul {
    list-style: none;
    margin: 0;
    padding: 0;
}

.woocommerce-MyAccount-navigation li {
    margin: 0;
    border-bottom: 1px solid var(--cpm-gray-200);
}

.woocommerce-MyAccount-navigation li:last-child {
    border-bottom: none;
}

.woocommerce-MyAccount-navigation a {
    display: flex;
    align-items: center;
    gap: var(--cpm-space-sm);
    padding: var(--cpm-space-md) var(--cpm-space-lg);
    color: var(--cpm-text-primary);
    text-decoration: none;
    font-weight: 500;
    transition: background-color var(--cpm-transition-fast), color var(--cpm-transition-fast);
    border-left: 3px solid transparent;
}

.woocommerce-MyAccount-navigation a:hover {
    background: var(--cpm-gray-50);
    color: var(--cpm-primary);
    text-decoration: none;
}

.woocommerce-MyAccount-navigation .is-active a,
.woocommerce-MyAccount-navigation a[aria-current="page"] {
    background: var(--cpm-primary-light);
    color: var(--cpm-primary);
    border-left-color: var(--cpm-primary);
    font-weight: 600;
}

/* Prescriptions item highlight (red accent to stand out) */
.woocommerce-MyAccount-navigation .woocommerce-MyAccount-navigation-link--prescriptions a {
    color: var(--cpm-accent);
    font-weight: 600;
}

.woocommerce-MyAccount-navigation .woocommerce-MyAccount-navigation-link--prescriptions a:hover {
    background: var(--cpm-accent-light);
    color: var(--cpm-accent);
}

.woocommerce-MyAccount-navigation .woocommerce-MyAccount-navigation-link--prescriptions.is-active a {
    background: var(--cpm-accent-light);
    border-left-color: var(--cpm-accent);
    color: var(--cpm-accent);
}

.woocommerce-MyAccount-navigation .woocommerce-MyAccount-navigation-link--prescriptions .wc-nav-icon,
.woocommerce-MyAccount-navigation .woocommerce-MyAccount-navigation-link--prescriptions.is-active .wc-nav-icon {
    color: var(--cpm-accent);
}

/* Nav icons */
.wc-nav-icon {
    display: flex;
    align-items: center;
    flex-shrink: 0;
    color: var(--cpm-gray-500);
}

.is-active .wc-nav-icon,
a[aria-current="page"] .wc-nav-icon {
    color: var(--cpm-primary);
}

/* Logout link */
.woocommerce-MyAccount-navigation-link--customer-logout a {
    color: var(--cpm-text-secondary);
}

.woocommerce-MyAccount-navigation-link--customer-logout a:hover {
    color: var(--cpm-danger);
}

/* --- My Account content area --- */
.woocommerce-MyAccount-content {
    background: var(--cpm-white);
    border-radius: var(--cpm-radius-md);
    box-shadow: var(--cpm-shadow-sm);
    padding: var(--cpm-space-lg);
}

/* Desktop: sidebar layout */
@media (min-width: 768px) {
    .woocommerce-account .woocommerce {
        flex-direction: row;
        gap: var(--cpm-space-xl);
    }

    .cpm-account-nav-wrapper {
        flex: 0 0 260px;
        align-self: flex-start;
        position: sticky;
        top: calc(var(--cpm-header-height) + 4px + var(--cpm-space-lg));
    }

    .woocommerce-MyAccount-content {
        flex: 1;
        min-width: 0;
    }
}

/* Mobile: sticky horizontal tab bar replaces sidebar */
@media (max-width: 767px) {

    /* Compact avatar row */
    .cpm-account-avatar {
        padding: var(--cpm-space-md);
    }
    .cpm-account-avatar__circle {
        width: 36px;
        height: 36px;
        font-size: var(--cpm-font-size-sm);
    }
    .cpm-account-avatar__name {
        font-size: var(--cpm-font-size-sm);
    }

    /* Stick the entire nav wrapper to the top so it is always reachable */
    .cpm-account-nav-wrapper {
        position: sticky;
        top: 0;
        z-index: 100;
        border-radius: 0;
        box-shadow: 0 2px 8px rgba(0,0,0,.10);
    }

    /* Convert nav list to a single horizontal scrollable row */
    .woocommerce-MyAccount-navigation ul {
        display: flex;
        flex-direction: row;
        overflow-x: auto;
        white-space: nowrap;
        -webkit-overflow-scrolling: touch;
        scrollbar-width: none;           /* Firefox */
        gap: 0;
        padding: 0;
        margin: 0;
        border-top: 1px solid var(--cpm-gray-200);
    }
    .woocommerce-MyAccount-navigation ul::-webkit-scrollbar {
        display: none;                   /* Chrome/Safari */
    }

    /* Each tab item */
    .woocommerce-MyAccount-navigation li {
        flex: 0 0 auto;
        border-bottom: none;
        border-right: 1px solid var(--cpm-gray-200);
    }
    .woocommerce-MyAccount-navigation li:last-child {
        border-right: none;
    }

    /* Tab links */
    .woocommerce-MyAccount-navigation a {
        display: flex;
        flex-direction: column;
        align-items: center;
        gap: 2px;
        padding: var(--cpm-space-sm) var(--cpm-space-md);
        font-size: 11px;
        white-space: nowrap;
    }

    /* Active tab underline indicator */
    .woocommerce-MyAccount-navigation .is-active a,
    .woocommerce-MyAccount-navigation a[aria-current="page"] {
        border-bottom: 3px solid var(--cpm-primary);
        color: var(--cpm-primary);
    }

    /* Prescriptions tab stays red on mobile too */
    .woocommerce-MyAccount-navigation .woocommerce-MyAccount-navigation-link--prescriptions a {
        color: var(--cpm-accent);
    }
    .woocommerce-MyAccount-navigation .woocommerce-MyAccount-navigation-link--prescriptions.is-active a {
        border-bottom-color: var(--cpm-accent);
    }

    /* Hide nav icons on mobile to save space */
    .woocommerce-MyAccount-navigation .wc-nav-icon {
        display: none;
    }
}

/* ============================================================
   FORMS (login, edit account, addresses)
   ============================================================ */

.woocommerce form .form-row {
    margin-bottom: var(--cpm-space-md);
}

.woocommerce form .form-row label {
    display: block;
    margin-bottom: var(--cpm-space-xs);
    font-weight: 500;
    font-size: var(--cpm-font-size-sm);
    color: var(--cpm-text-primary);
}

.woocommerce form .form-row input.input-text,
.woocommerce form .form-row textarea,
.woocommerce form .form-row select {
    width: 100%;
    padding: var(--cpm-space-sm) var(--cpm-space-md);
    border: 1px solid var(--cpm-gray-300);
    border-radius: var(--cpm-radius-sm);
    font-size: var(--cpm-font-size-base);
    color: var(--cpm-text-primary);
    background: var(--cpm-white);
    transition: border-color var(--cpm-transition-fast), box-shadow var(--cpm-transition-fast);
    min-height: 44px;
}

.woocommerce form .form-row input.input-text:focus,
.woocommerce form .form-row textarea:focus,
.woocommerce form .form-row select:focus {
    border-color: var(--cpm-primary);
    box-shadow: 0 0 0 3px var(--cpm-primary-light);
    outline: none;
}

/* --- Buttons --- */
.woocommerce .button,
.woocommerce button.button,
.woocommerce input.button,
.woocommerce a.button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: var(--cpm-space-sm);
    padding: var(--cpm-space-sm) var(--cpm-space-lg);
    min-height: 44px;
    font-size: var(--cpm-font-size-sm);
    font-weight: 600;
    color: var(--cpm-white);
    background: var(--cpm-primary);
    border: none;
    border-radius: var(--cpm-radius-sm);
    cursor: pointer;
    text-decoration: none;
    transition: background-color var(--cpm-transition-fast);
    white-space: nowrap;
}

.woocommerce .button:hover,
.woocommerce button.button:hover,
.woocommerce input.button:hover,
.woocommerce a.button:hover {
    background: var(--cpm-primary-dark);
    color: var(--cpm-white);
    text-decoration: none;
}

.woocommerce .button:focus-visible,
.woocommerce button.button:focus-visible {
    outline: 2px solid var(--cpm-primary);
    outline-offset: 2px;
}

.woocommerce .button.alt,
.woocommerce button.button.alt {
    background: var(--cpm-primary);
}

.woocommerce .button.alt:hover,
.woocommerce button.button.alt:hover {
    background: var(--cpm-primary-dark);
}

/* ============================================================
   CHECKOUT
   ============================================================ */

.woocommerce-checkout {
    max-width: var(--cpm-container-narrow);
    margin: 0 auto;
}

.woocommerce-checkout .col2-set {
    display: grid;
    grid-template-columns: 1fr;
    gap: var(--cpm-space-lg);
}

@media (min-width: 768px) {
    .woocommerce-checkout .col2-set {
        grid-template-columns: 1fr 1fr;
    }
}

.woocommerce-checkout h3 {
    font-size: var(--cpm-font-size-md);
    margin-bottom: var(--cpm-space-md);
    padding-bottom: var(--cpm-space-sm);
    border-bottom: 2px solid var(--cpm-gray-200);
}

/* Order review / payment */
#order_review_heading {
    font-size: var(--cpm-font-size-md);
    margin-top: var(--cpm-space-xl);
}

.woocommerce-checkout-review-order-table {
    width: 100%;
    border-collapse: collapse;
    margin-bottom: var(--cpm-space-lg);
}

.woocommerce-checkout-review-order-table th,
.woocommerce-checkout-review-order-table td {
    padding: var(--cpm-space-sm) var(--cpm-space-md);
    text-align: left;
    border-bottom: 1px solid var(--cpm-gray-200);
}

.woocommerce-checkout-review-order-table th {
    font-weight: 600;
    font-size: var(--cpm-font-size-sm);
    color: var(--cpm-text-secondary);
    background: var(--cpm-gray-50);
}

/* Payment methods */
.woocommerce-checkout #payment {
    background: var(--cpm-white);
    border-radius: var(--cpm-radius-md);
    box-shadow: var(--cpm-shadow-sm);
    padding: var(--cpm-space-lg);
    margin-top: var(--cpm-space-lg);
}

.woocommerce-checkout #payment ul.payment_methods {
    list-style: none;
    padding: 0;
    margin: 0 0 var(--cpm-space-lg) 0;
}

.woocommerce-checkout #payment ul.payment_methods li {
    margin-bottom: var(--cpm-space-sm);
    padding: var(--cpm-space-md);
    border: 1px solid var(--cpm-gray-200);
    border-radius: var(--cpm-radius-sm);
}

.woocommerce-checkout #payment ul.payment_methods li label {
    font-weight: 500;
    cursor: pointer;
}

#place_order {
    width: 100%;
    padding: var(--cpm-space-md);
    font-size: var(--cpm-font-size-md);
    min-height: 52px;
}

/* Security message */
.woocommerce-checkout::after {
    content: none;
}

/* ============================================================
   CART — Layout & Container
   ============================================================ */

.woocommerce-cart .cpm-container {
    max-width: var(--cpm-container-max);
}

/* Desktop: two-column layout (items | totals) */
@media (min-width: 768px) {
    .woocommerce-cart .woocommerce {
        display: grid;
        grid-template-columns: 1fr 400px;
        gap: var(--cpm-space-xl);
        align-items: start;
    }
}

/* ============================================================
   CART — Items Container
   ============================================================ */

.woocommerce-cart-form {
    margin-bottom: var(--cpm-space-xl);
}

.woocommerce-cart-form table {
    width: 100%;
    border-collapse: separate;
    border-spacing: 0 var(--cpm-space-md);
}

/* Hide table header on all devices — we're using card-style rows */
.woocommerce-cart-form thead {
    display: none;
}

/* ============================================================
   CART — Individual Cart Item (Desktop)
   ============================================================ */

.woocommerce-cart-form tbody tr {
    background: var(--cpm-white);
    border-radius: var(--cpm-radius-md);
    box-shadow: var(--cpm-shadow-sm);
    transition: box-shadow var(--cpm-transition-normal);
    position: relative;
}

.woocommerce-cart-form tbody tr:hover {
    box-shadow: var(--cpm-shadow-md);
}

/* Desktop: table row layout */
@media (min-width: 768px) {
    .woocommerce-cart-form tbody tr {
        display: table-row;
    }

    .woocommerce-cart-form td {
        padding: var(--cpm-space-lg);
        vertical-align: middle;
        border: none;
        background: transparent;
    }

    .woocommerce-cart-form tbody tr td:first-child {
        border-radius: var(--cpm-radius-md) 0 0 var(--cpm-radius-md);
    }

    .woocommerce-cart-form tbody tr td:last-child {
        border-radius: 0 var(--cpm-radius-md) var(--cpm-radius-md) 0;
    }
}

/* ============================================================
   CART — Remove Button
   ============================================================ */

.woocommerce-cart-form .product-remove {
    width: 48px;
}

.woocommerce-cart-form .product-remove a.remove {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 32px;
    height: 32px;
    border-radius: 50%;
    font-size: 1.125rem;
    line-height: 1;
    color: var(--cpm-gray-500);
    background: var(--cpm-gray-100);
    text-decoration: none;
    transition: background-color var(--cpm-transition-fast), color var(--cpm-transition-fast), transform var(--cpm-transition-fast);
}

.woocommerce-cart-form .product-remove a.remove:hover {
    background: var(--cpm-accent-light);
    color: var(--cpm-danger);
    transform: scale(1.1);
}

.woocommerce-cart-form .product-remove a.remove:focus-visible {
    outline: 2px solid var(--cpm-danger);
    outline-offset: 2px;
}

/* ============================================================
   CART — Product Thumbnail
   ============================================================ */

.woocommerce-cart-form .product-thumbnail {
    width: 100px;
}

.woocommerce-cart-form .product-thumbnail img {
    width: 80px;
    height: 80px;
    object-fit: contain;
    border-radius: var(--cpm-radius-sm);
    background: var(--cpm-gray-50);
    border: 1px solid var(--cpm-gray-200);
}

/* ============================================================
   CART — Product Name & Variation
   ============================================================ */

.woocommerce-cart-form .product-name {
    min-width: 200px;
}

.woocommerce-cart-form .product-name a {
    color: var(--cpm-text-primary);
    text-decoration: none;
    font-weight: 600;
    font-size: var(--cpm-font-size-base);
    line-height: var(--cpm-line-height-tight);
    transition: color var(--cpm-transition-fast);
}

.woocommerce-cart-form .product-name a:hover {
    color: var(--cpm-primary);
}

/* Variation details */
.woocommerce-cart-form .product-name .variation,
.woocommerce-cart-form .product-name dl.variation {
    display: block;
    font-size: var(--cpm-font-size-xs);
    color: var(--cpm-text-secondary);
    margin-top: var(--cpm-space-xs);
    line-height: var(--cpm-line-height-normal);
}

.woocommerce-cart-form .product-name dl.variation {
    margin: var(--cpm-space-xs) 0 0;
}

.woocommerce-cart-form .product-name dl.variation dt,
.woocommerce-cart-form .product-name dl.variation dd {
    display: inline;
    font-size: var(--cpm-font-size-xs);
    color: var(--cpm-text-secondary);
    margin: 0;
    font-weight: 400;
}

.woocommerce-cart-form .product-name dl.variation dt {
    font-weight: 500;
}

/* ============================================================
   CART — Price
   ============================================================ */

.woocommerce-cart-form .product-price {
    width: 100px;
    text-align: center;
}

.woocommerce-cart-form .product-price .amount {
    font-weight: 600;
    font-size: var(--cpm-font-size-base);
    color: var(--cpm-text-primary);
}

/* ============================================================
   CART — Quantity Input
   ============================================================ */

.woocommerce-cart-form .product-quantity {
    width: 120px;
    text-align: center;
}

.woocommerce-cart-form .product-quantity .quantity {
    display: inline-flex;
}

.woocommerce-cart-form .product-quantity .quantity .qty {
    width: 72px;
    text-align: center;
    padding: var(--cpm-space-sm);
    min-height: 44px;
    border: 2px solid var(--cpm-gray-300);
    border-radius: var(--cpm-radius-sm);
    font-size: var(--cpm-font-size-base);
    font-weight: 600;
    color: var(--cpm-text-primary);
    background: var(--cpm-white);
    transition: border-color var(--cpm-transition-fast), box-shadow var(--cpm-transition-fast);
}

.woocommerce-cart-form .product-quantity .quantity .qty:focus {
    border-color: var(--cpm-primary);
    outline: none;
    box-shadow: 0 0 0 3px var(--cpm-primary-light);
}

.woocommerce-cart-form .product-quantity .quantity .qty:hover {
    border-color: var(--cpm-primary);
}

/* ============================================================
   CART — Subtotal
   ============================================================ */

.woocommerce-cart-form .product-subtotal {
    width: 120px;
    text-align: right;
}

.woocommerce-cart-form .product-subtotal .amount {
    font-weight: 700;
    font-size: var(--cpm-font-size-md);
    color: var(--cpm-primary);
}

/* ============================================================
   CART — Actions Row (Coupon + Update Cart)
   ============================================================ */

.woocommerce-cart-form .actions {
    padding: var(--cpm-space-lg);
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--cpm-space-md);
    flex-wrap: wrap;
    background: var(--cpm-gray-50);
    border-radius: var(--cpm-radius-md);
    margin-top: var(--cpm-space-md);
}

.woocommerce-cart-form .coupon {
    display: flex;
    align-items: center;
    gap: var(--cpm-space-sm);
    flex-wrap: wrap;
}

.woocommerce-cart-form .coupon label {
    display: none;
}

.woocommerce-cart-form .coupon #coupon_code {
    padding: var(--cpm-space-sm) var(--cpm-space-md);
    min-height: 44px;
    border: 1px solid var(--cpm-gray-300);
    border-radius: var(--cpm-radius-sm);
    font-size: var(--cpm-font-size-sm);
    color: var(--cpm-text-primary);
    background: var(--cpm-white);
    width: 180px;
    transition: border-color var(--cpm-transition-fast), box-shadow var(--cpm-transition-fast);
}

.woocommerce-cart-form .coupon #coupon_code:focus {
    border-color: var(--cpm-primary);
    outline: none;
    box-shadow: 0 0 0 3px var(--cpm-primary-light);
}

.woocommerce-cart-form .coupon #coupon_code::placeholder {
    color: var(--cpm-gray-500);
}

.woocommerce-cart-form .coupon .button {
    min-height: 44px;
    padding: var(--cpm-space-sm) var(--cpm-space-lg);
    font-size: var(--cpm-font-size-sm);
    background: var(--cpm-white);
    color: var(--cpm-primary);
    border: 1px solid var(--cpm-primary);
}

.woocommerce-cart-form .coupon .button:hover {
    background: var(--cpm-primary);
    color: var(--cpm-white);
}

.woocommerce-cart-form .actions > .button {
    margin-left: auto;
    background: transparent;
    color: var(--cpm-text-secondary);
    border: 1px solid var(--cpm-gray-300);
    font-size: var(--cpm-font-size-sm);
}

.woocommerce-cart-form .actions > .button:hover {
    background: var(--cpm-gray-100);
    color: var(--cpm-text-primary);
    border-color: var(--cpm-gray-400);
}

/* ============================================================
   CART — Totals Panel
   ============================================================ */

.cart_totals {
    max-width: 100%;
}

.cart_totals > h2 {
    font-size: var(--cpm-font-size-md);
    font-weight: 600;
    margin-bottom: var(--cpm-space-md);
    color: var(--cpm-text-primary);
}

.cart_totals .shop_table {
    background: var(--cpm-white);
    border-radius: var(--cpm-radius-md);
    box-shadow: var(--cpm-shadow-md);
    overflow: hidden;
    width: 100%;
    border-collapse: collapse;
    margin-bottom: var(--cpm-space-lg);
}

.cart_totals .shop_table th,
.cart_totals .shop_table td {
    padding: var(--cpm-space-md) var(--cpm-space-lg);
    border-bottom: 1px solid var(--cpm-gray-200);
}

.cart_totals .shop_table tr:last-child th,
.cart_totals .shop_table tr:last-child td {
    border-bottom: none;
}

.cart_totals .shop_table th {
    font-size: var(--cpm-font-size-sm);
    font-weight: 500;
    color: var(--cpm-text-secondary);
    text-align: left;
    width: 50%;
}

.cart_totals .shop_table td {
    text-align: right;
    font-weight: 600;
    font-size: var(--cpm-font-size-base);
    color: var(--cpm-text-primary);
}

/* Order total row — emphasize */
.cart_totals .order-total th {
    font-size: var(--cpm-font-size-base);
    font-weight: 600;
    color: var(--cpm-text-primary);
    padding-top: var(--cpm-space-md);
}

.cart_totals .order-total td {
    padding-top: var(--cpm-space-md);
}

.cart_totals .order-total .amount {
    font-size: var(--cpm-font-size-xl);
    font-weight: 700;
    color: var(--cpm-primary);
}

/* ============================================================
   CART — Proceed to Checkout Button
   ============================================================ */

.cart_totals .wc-proceed-to-checkout {
    padding: 0;
}

.cart_totals .wc-proceed-to-checkout .checkout-button {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    min-height: 56px;
    font-size: var(--cpm-font-size-md);
    font-weight: 700;
    color: var(--cpm-white);
    background: var(--cpm-primary);
    border: none;
    border-radius: var(--cpm-radius-sm);
    cursor: pointer;
    text-decoration: none;
    text-transform: uppercase;
    letter-spacing: 0.02em;
    box-shadow: 0 2px 8px rgba(7, 96, 169, 0.2);
    transition: background-color var(--cpm-transition-fast), box-shadow var(--cpm-transition-fast), transform var(--cpm-transition-fast);
}

.cart_totals .wc-proceed-to-checkout .checkout-button:hover {
    background: var(--cpm-primary-dark);
    color: var(--cpm-white);
    text-decoration: none;
    box-shadow: 0 4px 12px rgba(7, 96, 169, 0.3);
    transform: translateY(-1px);
}

.cart_totals .wc-proceed-to-checkout .checkout-button:active {
    transform: translateY(0);
}

.cart_totals .wc-proceed-to-checkout .checkout-button:focus-visible {
    outline: 2px solid var(--cpm-primary);
    outline-offset: 2px;
}

/* ============================================================
   CART — Empty State
   ============================================================ */

.cart-empty {
    text-align: center;
    padding: var(--cpm-space-3xl) var(--cpm-space-xl);
    color: var(--cpm-text-secondary);
    font-size: var(--cpm-font-size-md);
    background: var(--cpm-white);
    border-radius: var(--cpm-radius-md);
    box-shadow: var(--cpm-shadow-sm);
}

.return-to-shop {
    margin-top: var(--cpm-space-lg);
}

.return-to-shop .button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 48px;
    padding: var(--cpm-space-sm) var(--cpm-space-2xl);
    font-size: var(--cpm-font-size-base);
    font-weight: 600;
}

/* ============================================================
   CART — Undo / Restore Notice
   ============================================================ */

.woocommerce-message {
    background: var(--cpm-primary-light);
    border-left: 4px solid var(--cpm-primary);
    padding: var(--cpm-space-md) var(--cpm-space-lg);
    border-radius: var(--cpm-radius-sm);
    margin-bottom: var(--cpm-space-lg);
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--cpm-space-md);
}

.woocommerce-message a.restore-item {
    color: var(--cpm-primary);
    font-weight: 600;
    text-decoration: underline;
    white-space: nowrap;
}

.woocommerce-message a.restore-item:hover {
    color: var(--cpm-primary-dark);
}

/* ============================================================
   CART — Mobile Responsive
   ============================================================ */

@media (max-width: 767px) {
    /* Mobile: card-based stacked items */
    .woocommerce-cart-form tbody tr {
        display: flex;
        flex-direction: column;
        padding: var(--cpm-space-md);
        margin-bottom: 0;
    }

    .woocommerce-cart-form td {
        padding: 0;
        width: 100%;
        border: none;
    }

    /* Product header: image, name, remove */
    .woocommerce-cart-form .product-thumbnail,
    .woocommerce-cart-form .product-name,
    .woocommerce-cart-form .product-remove {
        display: flex;
        align-items: flex-start;
    }

    .woocommerce-cart-form tbody tr {
        position: relative;
    }

    /* Top row: thumbnail + name */
    .woocommerce-cart-form .product-thumbnail {
        width: auto;
        margin-bottom: var(--cpm-space-md);
    }

    .woocommerce-cart-form .product-thumbnail img {
        width: 72px;
        height: 72px;
    }

    .woocommerce-cart-form .product-name {
        flex: 1;
        margin-left: var(--cpm-space-md);
        margin-bottom: var(--cpm-space-md);
        min-width: 0;
    }

    .woocommerce-cart-form .product-name a {
        font-size: var(--cpm-font-size-sm);
    }

    /* Remove button: top-right corner */
    .woocommerce-cart-form .product-remove {
        position: absolute;
        top: var(--cpm-space-md);
        right: var(--cpm-space-md);
        width: auto;
    }

    .woocommerce-cart-form .product-remove a.remove {
        width: 28px;
        height: 28px;
        font-size: 1rem;
    }

    /* Rearrange: thumbnail and name in one flex row */
    .woocommerce-cart-form tbody tr {
        display: grid;
        grid-template-columns: auto 1fr;
        grid-template-rows: auto auto auto;
        gap: var(--cpm-space-md);
        position: relative;
    }

    .woocommerce-cart-form .product-thumbnail {
        grid-column: 1;
        grid-row: 1;
        margin: 0;
    }

    .woocommerce-cart-form .product-name {
        grid-column: 2;
        grid-row: 1;
        margin: 0;
        padding-right: 40px;
    }

    /* Price row */
    .woocommerce-cart-form .product-price {
        grid-column: 1 / 3;
        grid-row: 2;
        width: 100%;
        text-align: left;
        display: flex;
        align-items: center;
        justify-content: space-between;
        padding: var(--cpm-space-sm) 0;
        border-top: 1px solid var(--cpm-gray-200);
    }

    .woocommerce-cart-form .product-price::before {
        content: 'Precio:';
        font-size: var(--cpm-font-size-sm);
        color: var(--cpm-text-secondary);
        font-weight: 500;
    }

    .woocommerce-cart-form .product-price .amount {
        font-size: var(--cpm-font-size-base);
    }

    /* Quantity + Subtotal row */
    .woocommerce-cart-form .product-quantity,
    .woocommerce-cart-form .product-subtotal {
        grid-column: 1 / 3;
        grid-row: 3;
        width: 100%;
        text-align: left;
        padding: var(--cpm-space-sm) 0;
        border-top: 1px solid var(--cpm-gray-200);
    }

    .woocommerce-cart-form .product-quantity {
        display: flex;
        align-items: center;
        justify-content: space-between;
        padding-bottom: 0;
        border-top: none;
    }

    .woocommerce-cart-form .product-quantity::before {
        content: 'Cantidad:';
        font-size: var(--cpm-font-size-sm);
        color: var(--cpm-text-secondary);
        font-weight: 500;
    }

    .woocommerce-cart-form .product-quantity .quantity .qty {
        width: 64px;
        min-height: 44px;
        font-size: var(--cpm-font-size-base);
    }

    .woocommerce-cart-form .product-subtotal {
        display: flex;
        align-items: center;
        justify-content: space-between;
    }

    .woocommerce-cart-form .product-subtotal::before {
        content: 'Subtotal:';
        font-size: var(--cpm-font-size-sm);
        color: var(--cpm-text-secondary);
        font-weight: 600;
    }

    .woocommerce-cart-form .product-subtotal .amount {
        font-size: var(--cpm-font-size-lg);
    }

    /* Actions: stack vertically */
    .woocommerce-cart-form .actions {
        flex-direction: column;
        align-items: stretch;
        padding: var(--cpm-space-md);
    }

    .woocommerce-cart-form .coupon {
        width: 100%;
        flex-direction: row;
    }

    .woocommerce-cart-form .coupon #coupon_code {
        flex: 1;
        width: auto;
    }

    .woocommerce-cart-form .actions > .button {
        width: 100%;
        margin-left: 0;
        justify-content: center;
    }

    /* Cart totals: full width */
    .cart_totals {
        max-width: none;
    }

    .cart_totals .order-total .amount {
        font-size: var(--cpm-font-size-lg);
    }
}

/* ============================================================
   THANK YOU PAGE
   ============================================================ */

.cpm-thankyou {
    max-width: var(--cpm-container-narrow);
    margin: 0 auto;
}

.cpm-thankyou__success {
    text-align: center;
    padding: var(--cpm-space-2xl) 0 var(--cpm-space-xl);
}

.cpm-thankyou__check {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 80px;
    height: 80px;
    border-radius: 50%;
    background: #E8F5E9;
    color: var(--cpm-success);
    margin-bottom: var(--cpm-space-lg);
}

.cpm-thankyou__title {
    font-size: var(--cpm-font-size-xl);
    color: var(--cpm-text-primary);
}

.cpm-thankyou__details {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
    gap: var(--cpm-space-md);
    background: var(--cpm-white);
    border-radius: var(--cpm-radius-md);
    box-shadow: var(--cpm-shadow-sm);
    padding: var(--cpm-space-lg);
    margin-bottom: var(--cpm-space-xl);
}

.cpm-thankyou__detail-item {
    display: flex;
    flex-direction: column;
    gap: var(--cpm-space-xs);
}

.cpm-thankyou__label {
    font-size: var(--cpm-font-size-xs);
    color: var(--cpm-text-secondary);
    text-transform: uppercase;
    letter-spacing: 0.05em;
}

/* Next steps */
.cpm-thankyou__next-steps {
    background: var(--cpm-white);
    border-radius: var(--cpm-radius-md);
    box-shadow: var(--cpm-shadow-sm);
    padding: var(--cpm-space-lg);
}

.cpm-thankyou__next-steps h3 {
    margin-bottom: var(--cpm-space-lg);
}

.cpm-thankyou__steps {
    list-style: none;
    padding: 0;
    margin: 0;
    counter-reset: step;
}

.cpm-thankyou__steps li {
    counter-increment: step;
    display: flex;
    flex-direction: column;
    padding-left: var(--cpm-space-2xl);
    padding-bottom: var(--cpm-space-lg);
    margin-bottom: var(--cpm-space-lg);
    border-bottom: 1px solid var(--cpm-gray-200);
    position: relative;
}

.cpm-thankyou__steps li:last-child {
    border-bottom: none;
    padding-bottom: 0;
    margin-bottom: 0;
}

.cpm-thankyou__steps li::before {
    content: counter(step);
    position: absolute;
    left: 0;
    top: 0;
    width: 28px;
    height: 28px;
    background: var(--cpm-primary);
    color: var(--cpm-white);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: var(--cpm-font-size-sm);
    font-weight: 700;
}

.cpm-thankyou__steps span {
    font-size: var(--cpm-font-size-sm);
    color: var(--cpm-text-secondary);
    margin-top: var(--cpm-space-xs);
}

/* Alerts */
.cpm-thankyou__alert {
    display: flex;
    gap: var(--cpm-space-md);
    padding: var(--cpm-space-lg);
    border-radius: var(--cpm-radius-md);
    margin-bottom: var(--cpm-space-xl);
}

.cpm-thankyou__alert--error {
    background: var(--cpm-accent-light);
    color: var(--cpm-danger);
    border: 1px solid var(--cpm-danger);
}

.cpm-thankyou__alert--info {
    background: var(--cpm-primary-light);
    color: var(--cpm-primary);
    border: 1px solid var(--cpm-primary);
}

.cpm-thankyou__alert svg {
    flex-shrink: 0;
    margin-top: 2px;
}

/* ============================================================
   NOTICES
   ============================================================ */

.woocommerce-message,
.woocommerce-info {
    padding: var(--cpm-space-md) var(--cpm-space-lg);
    background: var(--cpm-primary-light);
    color: var(--cpm-primary-dark);
    border-left: 4px solid var(--cpm-primary);
    border-radius: var(--cpm-radius-sm);
    margin-bottom: var(--cpm-space-lg);
}

.woocommerce-error {
    padding: var(--cpm-space-md) var(--cpm-space-lg);
    background: var(--cpm-accent-light);
    color: var(--cpm-danger);
    border-left: 4px solid var(--cpm-danger);
    border-radius: var(--cpm-radius-sm);
    margin-bottom: var(--cpm-space-lg);
    list-style: none;
}

/* ============================================================
   TABLES (orders, downloads)
   ============================================================ */

.woocommerce table.shop_table {
    width: 100%;
    border-collapse: collapse;
}

.woocommerce table.shop_table th,
.woocommerce table.shop_table td {
    padding: var(--cpm-space-sm) var(--cpm-space-md);
    text-align: left;
    border-bottom: 1px solid var(--cpm-gray-200);
    font-size: var(--cpm-font-size-sm);
}

.woocommerce table.shop_table th {
    font-weight: 600;
    color: var(--cpm-text-secondary);
    font-size: var(--cpm-font-size-xs);
    text-transform: uppercase;
    letter-spacing: 0.05em;
}

/* Responsive table: stack on mobile */
@media (max-width: 767px) {
    .woocommerce table.shop_table thead {
        display: none;
    }

    .woocommerce table.shop_table tr {
        display: block;
        padding: var(--cpm-space-md) 0;
        border-bottom: 1px solid var(--cpm-gray-200);
    }

    .woocommerce table.shop_table td {
        display: flex;
        justify-content: space-between;
        padding: var(--cpm-space-xs) 0;
        border-bottom: none;
        font-size: var(--cpm-font-size-sm);
    }

    .woocommerce table.shop_table td::before {
        content: attr(data-title);
        font-weight: 600;
        color: var(--cpm-text-secondary);
    }
}

/* ============================================================
   PRESCRIPTION REQUIREMENT NOTICE
   ============================================================ */

/* Single product prescription notice */
.cpm-rx-notice {
    background: var(--cpm-accent-light);
    border: 2px solid var(--cpm-accent);
    border-radius: var(--cpm-radius-md);
    padding: var(--cpm-space-xl);
    text-align: center;
    margin: var(--cpm-space-xl) 0;
}

.cpm-rx-notice h3 {
    color: var(--cpm-accent);
    font-size: var(--cpm-font-size-lg);
    font-weight: 700;
    margin: 0 0 var(--cpm-space-md) 0;
}

.cpm-rx-notice p {
    color: var(--cpm-text-primary);
    font-size: var(--cpm-font-size-base);
    margin: 0 0 var(--cpm-space-lg) 0;
    line-height: var(--cpm-line-height-normal);
}

.cpm-rx-notice .button {
    background: var(--cpm-accent);
    color: var(--cpm-white);
    font-size: var(--cpm-font-size-base);
    font-weight: 600;
    padding: var(--cpm-space-md) var(--cpm-space-2xl);
    min-height: 48px;
    text-transform: uppercase;
    letter-spacing: 0.02em;
}

.cpm-rx-notice .button:hover {
    background: #C51B1F;
    color: var(--cpm-white);
}

/* Shop archive prescription button */
.cpm-rx-required-btn {
    background: transparent;
    color: var(--cpm-accent);
    border: 2px solid var(--cpm-accent);
}

.cpm-rx-required-btn:hover {
    background: var(--cpm-accent);
    color: var(--cpm-white);
}
