/* ==========================================================================
   EMJOY SHOP PAGE
   ========================================================================== */

.em-shop {
    padding: var(--sp-8) 0 var(--sp-16);
}

/* ==========================================================================
   SHOP HEADER
   ========================================================================== */

.em-shop__header {
    margin-bottom: var(--sp-5);
}

.em-shop__title {
    font-family: var(--font-display);
    font-size: clamp(30px, 3.2vw, 44px);
    font-weight: var(--fw-bold);
    color: var(--text-strong);
    margin: var(--sp-3) 0 var(--sp-2);
}

.em-shop__term-description {
    position: relative;
    margin-top: var(--sp-12);
    padding: clamp(24px, 4vw, 42px);
    border: 1px solid var(--border-subtle);
    border-radius: var(--r-xl);
    background: var(--surface-card);
    color: var(--text-body);
    line-height: var(--lh-loose);
}

.em-shop__term-description h2 { margin: 0 0 var(--sp-5); color: var(--text-strong); font-size: var(--fs-h3); }
.em-shop__term-description-content { position: relative; overflow: hidden; transition: max-height .35s ease; }
.em-shop__term-description[data-collapsed="true"] .em-shop__term-description-content { max-height: 150px; }
.em-shop__term-description[data-collapsed="true"] .em-shop__term-description-content::after { position: absolute; right: 0; bottom: 0; left: 0; height: 72px; background: linear-gradient(transparent, var(--surface-card)); content: ""; pointer-events: none; }
.em-shop__term-description[data-collapsed="false"] .em-shop__term-description-content { max-height: 5000px; }
.em-shop__term-description-content > :first-child { margin-top: 0; }
.em-shop__term-description-content > :last-child { margin-bottom: 0; }
.em-shop__term-description-toggle { display: inline-flex; align-items: center; gap: 7px; margin-top: var(--sp-4); padding: 8px 14px; border: 1px solid var(--surface-brand); border-radius: var(--r-pill); background: transparent; color: var(--surface-brand); font: inherit; font-size: var(--fs-body-sm); font-weight: var(--fw-semibold); cursor: pointer; }
.em-shop__term-description-toggle svg { width: 16px; height: 16px; fill: none; stroke: currentColor; stroke-width: 2; transition: transform .2s ease; }
.em-shop__term-description-toggle .is-less { display: none; }
.em-shop__term-description[data-collapsed="false"] .em-shop__term-description-toggle .is-more { display: none; }
.em-shop__term-description[data-collapsed="false"] .em-shop__term-description-toggle .is-less { display: inline; }
.em-shop__term-description[data-collapsed="false"] .em-shop__term-description-toggle svg { transform: rotate(180deg); }

.em-shop__term-header .em-breadcrumb { display: flex; align-items: center; gap: 8px; margin: 0; color: var(--text-muted); font-size: 13px; }
.em-shop__term-header .em-breadcrumb a { color: var(--text-muted); text-decoration: none; }
.em-shop__term-header .em-breadcrumb a:hover { color: var(--surface-brand); }
.em-shop__term-header .em-breadcrumb__separator { color: var(--border-strong, #aaa); font-size: 18px; line-height: 1; }
.em-shop__toolbar .woocommerce-result-count { margin: 0; color: var(--text-muted); font-size: var(--fs-body-sm); }

@media (max-width: 767px) {
    .em-shop__title { font-size: 32px; }
    .em-shop__term-description { margin-top: var(--sp-8); padding: 22px 18px; }
}

/* ==========================================================================
   SHOP TOOLBAR
   ========================================================================== */

.em-shop__toolbar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--sp-4);
    padding: var(--sp-4) 0;
    border-bottom: 1px solid var(--border-subtle);
    margin-bottom: var(--sp-6);
}

.em-shop__toolbar-left {
    font-size: var(--fs-body-sm);
    color: var(--text-muted);
}

.em-shop__toolbar-right {
    display: flex;
    align-items: center;
    gap: var(--sp-4);
}

/* View Toggle */
.em-shop__view-toggle {
    display: flex;
    gap: var(--sp-1);
    padding: var(--sp-1);
    background: var(--surface-card);
    border-radius: var(--r-md);
    border: 1px solid var(--border-subtle);
}

.em-shop__view-btn {
    width: auto;
    min-width: 66px;
    height: 36px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: transparent;
    border: none;
    border-radius: var(--r-sm);
    cursor: pointer;
    color: var(--text-muted);
    transition: all var(--dur-fast);
    gap: 7px;
    padding: 0 11px;
    font-family: var(--font-display);
    font-size: 13px;
    font-weight: var(--fw-semibold);
}

.em-shop__view-btn:hover {
    color: var(--text-body);
}

.em-shop__view-btn.is-active {
    background: var(--surface-brand);
    color: var(--em-white);
}

.em-shop__view-btn .em-icon {
    width: 18px;
    height: 18px;
    fill: none;
    stroke: currentColor;
}

@media (max-width: 640px) {
    .em-shop__view-btn {
        min-width: 36px;
        padding: 0 9px;
    }

    .em-shop__view-btn span {
        display: none;
    }
}

/* ==========================================================================
   SHOP LAYOUT
   ========================================================================== */

.em-shop__layout {
    display: grid;
    grid-template-columns: 248px minmax(0, 1fr);
    gap: var(--sp-8);
    align-items: start;
}

@media (max-width: 1023px) {
    .em-shop__layout {
        grid-template-columns: 1fr;
    }
}

/* ==========================================================================
   SHOP SIDEBAR
   ========================================================================== */

.em-shop__sidebar {
    position: sticky;
    top: calc(var(--sp-16) + var(--sp-4));
    background: var(--surface-card);
    border-radius: var(--r-lg);
    overflow: hidden;
}

@media (max-width: 1023px) {
    .em-shop__sidebar {
        position: fixed;
        top: 0;
        left: 0;
        width: 320px;
        max-width: 100%;
        height: 100vh;
        z-index: 200;
        border-radius: 0;
        transform: translateX(-100%);
        transition: transform var(--dur-slow) var(--ease-out);
        overflow-y: auto;
    }

    .em-shop__sidebar.is-open {
        transform: translateX(0);
    }
}

.em-shop__sidebar-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: var(--sp-4) var(--sp-5);
    border-bottom: 1px solid var(--border-subtle);
}

.em-shop__sidebar-title {
    display: flex;
    align-items: center;
    gap: var(--sp-2);
    font-family: var(--font-display);
    font-size: var(--fs-body);
    font-weight: var(--fw-semibold);
    color: var(--text-strong);
    margin: 0;
}

.em-shop__sidebar-title .em-icon {
    width: 18px;
    height: 18px;
}

.em-shop__sidebar-content {
    padding: var(--sp-4) var(--sp-5);
}

.em-shop__sidebar-content .widget {
    margin-bottom: var(--sp-6);
    padding-bottom: var(--sp-6);
    border-bottom: 1px solid var(--border-subtle);
}

.em-shop__sidebar-content .widget:last-child {
    margin-bottom: 0;
    padding-bottom: 0;
    border-bottom: none;
}

.em-shop__sidebar-content .widget-title {
    font-family: var(--font-display);
    font-size: var(--fs-body-sm);
    font-weight: var(--fw-semibold);
    color: var(--text-strong);
    margin: 0 0 var(--sp-3);
}

.em-shop__sidebar-footer {
    padding: var(--sp-4) var(--sp-5);
    border-top: 1px solid var(--border-subtle);
    display: none;
}

@media (max-width: 1023px) {
    .em-shop__sidebar-footer {
        display: block;
    }
}

/* Filter Overlay */
.em-shop__filter-overlay {
    display: none;
}

@media (max-width: 1023px) {
    .em-shop__filter-overlay {
        display: block;
        position: fixed;
        top: 0;
        left: 0;
        width: 100%;
        height: 100vh;
        background: rgba(22, 21, 19, 0.5);
        z-index: 199;
        opacity: 0;
        visibility: hidden;
        transition: all var(--dur-base);
    }

    .em-shop__filter-overlay.is-open {
        opacity: 1;
        visibility: visible;
    }
}

/* Active Filters */
.em-shop__active-filters {
    display: flex;
    flex-wrap: wrap;
    gap: var(--sp-2);
    margin-bottom: var(--sp-4);
}

.em-badge--filter {
    display: inline-flex;
    align-items: center;
    gap: var(--sp-1);
    padding: var(--sp-1) var(--sp-3);
    background: var(--surface-brand-soft);
    color: var(--text-link);
    border-radius: var(--r-pill);
    font-size: var(--fs-caption);
    text-decoration: none;
    transition: background-color var(--dur-fast);
}

.em-badge--filter:hover {
    background: var(--surface-brand);
    color: var(--em-white);
}

.em-badge--filter .em-icon {
    width: 12px;
    height: 12px;
}

/* ==========================================================================
   SHOP CONTENT
   ========================================================================== */

.em-shop__content {
    min-height: 400px;
    min-width: 0;
}

/* Products Grid */
.woocommerce ul.products {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: var(--sp-6);
    list-style: none;
    padding: 0;
    margin: 0;
}

@media (min-width: 641px) and (max-width: 1024px) {
    .woocommerce ul.products {
        grid-template-columns: repeat(2, 1fr);
    }
}

@media (max-width: 640px) {
    .woocommerce ul.products {
        grid-template-columns: 1fr;
        gap: var(--sp-4);
    }
}

/* Products List View */
.woocommerce ul.products.em-list-view {
    grid-template-columns: 1fr;
    gap: var(--sp-4);
}

.woocommerce ul.products.em-list-view .em-product-card {
    display: grid;
    grid-template-columns: 240px 1fr;
}

.woocommerce ul.products.em-list-view .em-product-card__thumbnail {
    aspect-ratio: 1;
}

.woocommerce ul.products.em-list-view .em-product-card__content {
    padding: var(--sp-4);
}

/* ==========================================================================
   CART PAGE
   ========================================================================== */

.em-cart-page {
    padding: var(--sp-8) 0 var(--sp-16);
}

.em-cart-page__header {
    display: flex;
    align-items: baseline;
    gap: var(--sp-3);
    margin-bottom: var(--sp-8);
}

.em-cart-page__title {
    font-family: var(--font-display);
    font-size: var(--fs-h1);
    font-weight: var(--fw-bold);
    color: var(--text-strong);
    margin: 0;
}

.em-cart-page__count {
    font-size: var(--fs-body);
    color: var(--text-muted);
}

/* Cart Layout */
.em-cart-page__layout {
    display: grid;
    grid-template-columns: 1fr 380px;
    gap: var(--sp-8);
    align-items: start;
}

@media (max-width: 1023px) {
    .em-cart-page__layout {
        grid-template-columns: 1fr;
    }
}

/* Cart Items */
.em-cart-page__items {
    background: var(--surface-card);
    border-radius: var(--r-lg);
    padding: var(--sp-5);
}

.em-cart-item {
    display: grid;
    grid-template-columns: 120px 1fr;
    gap: var(--sp-5);
    padding: var(--sp-5) 0;
    border-bottom: 1px solid var(--border-subtle);
}

.em-cart-item:first-child {
    padding-top: 0;
}

.em-cart-item:last-child {
    border-bottom: none;
    padding-bottom: 0;
}

.em-cart-item__image {
    aspect-ratio: 1;
    border-radius: var(--r-md);
    overflow: hidden;
    background: var(--surface-brand-soft);
}

.em-cart-item__image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.em-cart-item__details {
    display: flex;
    flex-direction: column;
    gap: var(--sp-3);
}

.em-cart-item__header {
    display: flex;
    justify-content: space-between;
    gap: var(--sp-4);
}

.em-cart-item__title {
    font-family: var(--font-display);
    font-size: var(--fs-body);
    font-weight: var(--fw-semibold);
    color: var(--text-strong);
    margin: 0;
}

.em-cart-item__title a {
    color: inherit;
    text-decoration: none;
}

.em-cart-item__title a:hover {
    color: var(--text-link);
}

.em-cart-item__remove {
    color: var(--text-muted);
    flex-shrink: 0;
}

.em-cart-item__remove:hover {
    color: var(--color-error);
}

.em-cart-item__embroidery {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--sp-2);
    padding: var(--sp-2) var(--sp-3);
    background: var(--surface-brand-soft);
    border-radius: var(--r-sm);
    font-size: var(--fs-caption);
}

.em-cart-item__embroidery-label {
    display: flex;
    align-items: center;
    gap: var(--sp-1);
    color: var(--text-muted);
}

.em-cart-item__embroidery-label .em-icon {
    width: 14px;
    height: 14px;
}

.em-cart-item__embroidery-text {
    color: var(--text-link);
    font-style: italic;
}

.em-cart-item__embroidery-fee {
    color: var(--price-color);
    font-weight: var(--fw-semibold);
}

.em-cart-item__stock {
    display: flex;
    align-items: center;
    gap: var(--sp-2);
    font-size: var(--fs-caption);
}

.em-cart-item__stock--out {
    color: var(--color-error);
}

.em-cart-item__stock .em-icon {
    width: 14px;
    height: 14px;
}

.em-cart-item__footer {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--sp-4);
    margin-top: auto;
}

.em-cart-item__price {
    font-family: var(--font-display);
    font-size: var(--fs-h4);
    font-weight: var(--fw-bold);
    color: var(--price-color);
}

.em-cart-item__quantity .quantity {
    display: flex;
    align-items: center;
    border: 1px solid var(--border-subtle);
    border-radius: var(--r-sm);
}

.em-cart-item__quantity .qty {
    width: 50px;
    text-align: center;
    border: none;
    background: transparent;
    font-size: var(--fs-body);
    padding: var(--sp-2);
}

.em-cart-item__actions {
    display: flex;
    justify-content: space-between;
    gap: var(--sp-4);
    margin-top: var(--sp-6);
    padding-top: var(--sp-6);
    border-top: 1px solid var(--border-subtle);
}

/* Cart Summary */
.em-cart-page__summary {
    position: sticky;
    top: calc(var(--sp-16) + var(--sp-4));
}

.em-cart-summary {
    background: var(--surface-card);
    border-radius: var(--r-lg);
    padding: var(--sp-6);
}

.em-cart-summary__title {
    font-family: var(--font-display);
    font-size: var(--fs-h4);
    font-weight: var(--fw-bold);
    color: var(--text-strong);
    margin: 0 0 var(--sp-5);
}

/* WooCommerce Cart Totals */
.em-cart-summary .woocommerce-cart_totals {
    width: 100%;
}

.em-cart-summary .woocommerce-cart_totals table {
    width: 100%;
    border-collapse: collapse;
}

.em-cart-summary .woocommerce-cart_totals td,
.em-cart-summary .woocommerce-cart_totals th {
    padding: var(--sp-3) 0;
    border-bottom: 1px solid var(--border-subtle);
}

.em-cart-summary .woocommerce-cart_totals th {
    font-size: var(--fs-body-sm);
    font-weight: var(--fw-normal);
    color: var(--text-muted);
    text-align: left;
}

.em-cart-summary .woocommerce-cart_totals td {
    text-align: right;
    font-family: var(--font-display);
    font-weight: var(--fw-semibold);
    color: var(--text-strong);
}

.em-cart-summary .woocommerce-cart_totals .order-total th,
.em-cart-summary .woocommerce-cart_totals .order-total td {
    font-size: var(--fs-h4);
    font-weight: var(--fw-bold);
    color: var(--price-color);
    padding-top: var(--sp-4);
    border-bottom: none;
}

.em-cart-summary .woocommerce-cart_totals .shipping .woocommerce-Price-amount {
    font-size: var(--fs-body-sm);
    color: var(--text-muted);
}

/* Coupon */
.em-cart-summary__coupon {
    margin-top: var(--sp-5);
    padding-top: var(--sp-5);
    border-top: 1px solid var(--border-subtle);
}

.em-cart-summary__coupon-title {
    display: flex;
    align-items: center;
    gap: var(--sp-2);
    font-family: var(--font-display);
    font-size: var(--fs-body-sm);
    font-weight: var(--fw-semibold);
    color: var(--text-strong);
    margin: 0 0 var(--sp-3);
}

.em-cart-summary__coupon-title .em-icon {
    width: 16px;
    height: 16px;
}

.em-coupon-form__row {
    display: flex;
    gap: var(--sp-2);
}

.em-coupon-form__input {
    flex: 1;
}

/* Trust */
.em-cart-summary__trust {
    display: flex;
    flex-direction: column;
    gap: var(--sp-2);
    margin-top: var(--sp-5);
    padding-top: var(--sp-5);
    border-top: 1px solid var(--border-subtle);
}

.em-cart-summary__trust-item {
    display: flex;
    align-items: center;
    gap: var(--sp-2);
    font-size: var(--fs-caption);
    color: var(--text-muted);
}

.em-cart-summary__trust-item .em-icon {
    width: 14px;
    height: 14px;
    color: var(--surface-brand);
}

.em-cart-page__continue {
    margin-top: var(--sp-4);
    text-align: center;
}

.em-cart-page__continue-link {
    display: inline-flex;
    align-items: center;
    gap: var(--sp-2);
    font-size: var(--fs-body-sm);
    color: var(--text-muted);
    text-decoration: none;
    transition: color var(--dur-fast);
}

.em-cart-page__continue-link:hover {
    color: var(--text-link);
}

.em-cart-page__continue-link .em-icon {
    width: 16px;
    height: 16px;
}

/* Empty Cart */
.em-cart-page__empty {
    text-align: center;
    padding: var(--sp-16) 0;
}

.em-cart-page__empty-icon {
    width: 80px;
    height: 80px;
    margin: 0 auto var(--sp-6);
    display: flex;
    align-items: center;
    justify-content: center;
    background: var(--surface-brand-soft);
    border-radius: var(--r-pill);
    color: var(--surface-brand);
}

.em-cart-page__empty-icon .em-icon {
    width: 40px;
    height: 40px;
}

.em-cart-page__empty-title {
    font-family: var(--font-display);
    font-size: var(--fs-h3);
    font-weight: var(--fw-bold);
    color: var(--text-strong);
    margin: 0 0 var(--sp-3);
}

.em-cart-page__empty-text {
    font-size: var(--fs-body);
    color: var(--text-muted);
    margin: 0 0 var(--sp-6);
}

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

.em-checkout-page {
    padding: var(--sp-6) 0 var(--sp-16);
    background: var(--surface-page);
}

.em-checkout-page__header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--sp-6);
    padding: var(--sp-4) 0;
    margin-bottom: var(--sp-8);
    border-bottom: 1px solid var(--border-subtle);
}

.em-checkout-page__logo img {
    height: 40px;
    filter: brightness(0) invert(0.2);
}

.em-checkout-page__steps {
    display: flex;
    align-items: center;
    gap: var(--sp-4);
}

.em-checkout-page__step {
    display: flex;
    align-items: center;
    gap: var(--sp-2);
    color: var(--text-muted);
}

.em-checkout-page__step.is-active {
    color: var(--text-link);
}

.em-checkout-page__step-number {
    width: 28px;
    height: 28px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: var(--border-subtle);
    border-radius: var(--r-full);
    font-family: var(--font-display);
    font-size: var(--fs-body-sm);
    font-weight: var(--fw-semibold);
}

.em-checkout-page__step.is-active .em-checkout-page__step-number {
    background: var(--surface-brand);
    color: var(--em-white);
}

.em-checkout-page__step-label {
    font-size: var(--fs-body-sm);
}

.em-checkout-page__step-divider {
    color: var(--border-subtle);
}

/* Checkout Layout */
.em-checkout-page__layout {
    display: grid;
    grid-template-columns: 1fr 420px;
    gap: var(--sp-8);
    align-items: start;
}

@media (max-width: 1023px) {
    .em-checkout-page__layout {
        grid-template-columns: 1fr;
    }
}

/* Checkout Form */
.em-checkout-page__form {
    background: var(--surface-card);
    border-radius: var(--r-lg);
    padding: var(--sp-6);
}

.woocommerce-billing-fields__field-wrapper,
.woocommerce-shipping-fields__field-wrapper {
    display: grid;
    gap: var(--sp-4);
}

.woocommerce-billing-fields h3,
.woocommerce-shipping-fields h3,
.woocommerce-additional-fields h3 {
    font-family: var(--font-display);
    font-size: var(--fs-h4);
    font-weight: var(--fw-bold);
    color: var(--text-strong);
    margin: 0 0 var(--sp-5);
    padding-bottom: var(--sp-4);
    border-bottom: 1px solid var(--border-subtle);
}

.form-row {
    display: flex;
    flex-direction: column;
    gap: var(--sp-2);
}

.form-row label {
    font-family: var(--font-display);
    font-size: var(--fs-body-sm);
    font-weight: var(--fw-semibold);
    color: var(--text-strong);
}

.form-row label .required {
    color: var(--color-error);
}

/* Checkout Summary */
.em-checkout-page__summary {
    position: sticky;
    top: calc(var(--sp-16) + var(--sp-4));
}

.em-checkout-summary {
    background: var(--surface-card);
    border-radius: var(--r-lg);
    padding: var(--sp-6);
}

.em-checkout-summary__title {
    display: flex;
    align-items: center;
    justify-content: space-between;
    font-family: var(--font-display);
    font-size: var(--fs-h4);
    font-weight: var(--fw-bold);
    color: var(--text-strong);
    margin: 0 0 var(--sp-5);
}

.em-checkout-summary__toggle {
    display: none;
}

/* Checkout Items */
.em-checkout-summary__items {
    display: flex;
    flex-direction: column;
    gap: var(--sp-4);
    padding-bottom: var(--sp-4);
    border-bottom: 1px solid var(--border-subtle);
}

.em-checkout-item {
    display: grid;
    grid-template-columns: 60px 1fr auto;
    gap: var(--sp-3);
    align-items: start;
}

.em-checkout-item__image {
    position: relative;
    aspect-ratio: 1;
    border-radius: var(--r-sm);
    overflow: hidden;
    background: var(--surface-brand-soft);
}

.em-checkout-item__image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.em-checkout-item__quantity {
    position: absolute;
    top: -6px;
    right: -6px;
    width: 20px;
    height: 20px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: var(--text-muted);
    color: var(--em-white);
    font-size: 10px;
    font-weight: var(--fw-bold);
    border-radius: var(--r-full);
}

.em-checkout-item__details {
    display: flex;
    flex-direction: column;
    gap: var(--sp-1);
}

.em-checkout-item__name {
    font-family: var(--font-display);
    font-size: var(--fs-body-sm);
    font-weight: var(--fw-semibold);
    color: var(--text-strong);
    margin: 0;
}

.em-checkout-item__embroidery {
    font-size: var(--fs-caption);
    color: var(--text-muted);
    font-style: italic;
}

.em-checkout-item__price {
    font-family: var(--font-display);
    font-size: var(--fs-body-sm);
    font-weight: var(--fw-semibold);
    color: var(--text-strong);
}

/* Checkout Totals */
.em-checkout-summary__totals {
    padding: var(--sp-4) 0;
    border-bottom: 1px solid var(--border-subtle);
}

.em-checkout-summary__totals .woocommerce-checkout-review-order-table {
    width: 100%;
    border-collapse: collapse;
}

.em-checkout-summary__totals td,
.em-checkout-summary__totals th {
    padding: var(--sp-2) 0;
    font-size: var(--fs-body-sm);
}

.em-checkout-summary__totals th {
    font-weight: var(--fw-normal);
    color: var(--text-muted);
    text-align: left;
}

.em-checkout-summary__totals td {
    text-align: right;
}

.em-checkout-summary__totals .order-total th,
.em-checkout-summary__totals .order-total td {
    font-family: var(--font-display);
    font-size: var(--fs-h4);
    font-weight: var(--fw-bold);
    color: var(--price-color);
    padding-top: var(--sp-3);
}

/* Payment */
.em-checkout-summary__payment {
    padding: var(--sp-4) 0;
    border-bottom: 1px solid var(--border-subtle);
}

.em-checkout-summary__payment-title {
    display: flex;
    align-items: center;
    gap: var(--sp-2);
    font-family: var(--font-display);
    font-size: var(--fs-body-sm);
    font-weight: var(--fw-semibold);
    color: var(--text-strong);
    margin: 0 0 var(--sp-3);
}

.em-checkout-summary__payment-title .em-icon {
    width: 16px;
    height: 16px;
}

.em-checkout-summary__payment-icons {
    display: flex;
    gap: var(--sp-3);
}

.em-payment-method {
    display: flex;
    align-items: center;
    gap: var(--sp-1);
    padding: var(--sp-2) var(--sp-3);
    background: var(--surface-brand-soft);
    border-radius: var(--r-sm);
    font-size: var(--fs-caption);
    color: var(--text-body);
}

.em-payment-method .em-icon {
    width: 14px;
    height: 14px;
}

/* Trust */
.em-checkout-summary__trust {
    display: flex;
    flex-direction: column;
    gap: var(--sp-2);
    margin-top: var(--sp-4);
}

.em-checkout-summary__trust-item {
    display: flex;
    align-items: center;
    gap: var(--sp-2);
    font-size: var(--fs-caption);
    color: var(--text-muted);
}

.em-checkout-summary__trust-item .em-icon {
    width: 14px;
    height: 14px;
    color: var(--surface-brand);
}

.em-checkout-page__help {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: var(--sp-2);
    margin-top: var(--sp-4);
    font-size: var(--fs-body-sm);
    color: var(--text-muted);
}

.em-checkout-page__help .em-icon {
    width: 16px;
    height: 16px;
}

.em-checkout-page__help a {
    color: var(--text-link);
    font-weight: var(--fw-semibold);
}

/* Empty Checkout */
.em-checkout-page__empty {
    text-align: center;
    padding: var(--sp-16) 0;
}

.em-checkout-page__empty-icon {
    width: 80px;
    height: 80px;
    margin: 0 auto var(--sp-6);
    display: flex;
    align-items: center;
    justify-content: center;
    background: var(--surface-brand-soft);
    border-radius: var(--r-pill);
    color: var(--surface-brand);
}

.em-checkout-page__empty-icon .em-icon {
    width: 40px;
    height: 40px;
}

.em-checkout-page__empty-title {
    font-family: var(--font-display);
    font-size: var(--fs-h3);
    font-weight: var(--fw-bold);
    color: var(--text-strong);
    margin: 0 0 var(--sp-3);
}

.em-checkout-page__empty-text {
    font-size: var(--fs-body);
    color: var(--text-muted);
    margin: 0 0 var(--sp-6);
}

/* Mobile */
@media (max-width: 767px) {
    .em-checkout-page__header {
        flex-direction: column;
        gap: var(--sp-4);
    }

    .em-checkout-page__steps {
        width: 100%;
        justify-content: center;
    }

    .em-checkout-page__step-label {
        display: none;
    }
}

/* ==========================================================================
   PRODUCT PAGINATION
   WooCommerce outputs a semantic ul.page-numbers. Reset its browser list
   styling and present it as touch-friendly controls on shop archives.
   ========================================================================== */

.em-shop .woocommerce-pagination,
.em-search-page .woocommerce-pagination {
    display: flex;
    justify-content: center;
    margin: var(--sp-10) 0 0;
    clear: both;
}

.em-shop .woocommerce-pagination ul.page-numbers,
.em-search-page .woocommerce-pagination ul.page-numbers {
    display: flex;
    align-items: center;
    justify-content: center;
    flex-wrap: wrap;
    gap: var(--sp-2);
    margin: 0;
    padding: 0;
    border: 0;
    list-style: none;
}

.em-shop .woocommerce-pagination ul.page-numbers li,
.em-search-page .woocommerce-pagination ul.page-numbers li {
    display: flex;
    margin: 0;
    padding: 0;
    border: 0;
    list-style: none;
}

.em-shop .woocommerce-pagination .page-numbers,
.em-search-page .woocommerce-pagination .page-numbers {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    box-sizing: border-box;
    min-width: 44px;
    height: 44px;
    margin: 0;
    padding: 0 var(--sp-3);
    border: 1px solid var(--border-subtle);
    border-radius: var(--r-md);
    background: var(--surface-card);
    color: var(--text-link);
    font-family: var(--font-display);
    font-size: var(--fs-body-sm);
    font-weight: var(--fw-bold);
    line-height: 1;
    text-decoration: none;
    transition: border-color var(--dur-fast), background-color var(--dur-fast), color var(--dur-fast), transform var(--dur-fast);
}

.em-shop .woocommerce-pagination a.page-numbers:hover,
.em-search-page .woocommerce-pagination a.page-numbers:hover {
    border-color: var(--surface-brand);
    background: var(--surface-brand-soft);
    color: var(--surface-brand);
    transform: translateY(-1px);
}

.em-shop .woocommerce-pagination .page-numbers.current,
.em-search-page .woocommerce-pagination .page-numbers.current {
    border-color: var(--surface-brand);
    background: var(--surface-brand);
    color: var(--text-on-brand);
}

.em-shop .woocommerce-pagination .page-numbers.dots,
.em-search-page .woocommerce-pagination .page-numbers.dots {
    min-width: auto;
    border-color: transparent;
    background: transparent;
    color: var(--text-muted);
}

.em-shop .woocommerce-pagination .page-numbers.prev,
.em-shop .woocommerce-pagination .page-numbers.next,
.em-search-page .woocommerce-pagination .page-numbers.prev,
.em-search-page .woocommerce-pagination .page-numbers.next {
    min-width: 52px;
    font-size: var(--fs-body-lg);
}

.em-shop .woocommerce-pagination a.page-numbers:focus-visible,
.em-search-page .woocommerce-pagination a.page-numbers:focus-visible {
    outline: 3px solid var(--focus-ring);
    outline-offset: 2px;
}

@media (max-width: 479px) {
    .em-shop .woocommerce-pagination,
    .em-search-page .woocommerce-pagination {
        margin-top: var(--sp-8);
    }

    .em-shop .woocommerce-pagination ul.page-numbers,
    .em-search-page .woocommerce-pagination ul.page-numbers {
        gap: var(--sp-1);
    }

    .em-shop .woocommerce-pagination .page-numbers,
    .em-search-page .woocommerce-pagination .page-numbers {
        min-width: 40px;
        height: 40px;
    }
}
