/**
 * WooCommerce-specific styles for RosyStoreTheme
 */

/* Layout wrapper */
.rs-wc-wrap { display: grid; grid-template-columns: 1fr; gap: 32px; padding: 48px 24px; }
.rs-wc-wrap:has(.rs-wc-sidebar) { grid-template-columns: 260px 1fr; }
.rs-wc-sidebar { order: -1; }

.woocommerce-breadcrumb { font-size: 13px; color: var(--rs-text-soft); margin-bottom: 24px; }
.woocommerce-breadcrumb a { color: var(--rs-text-soft); }
.woocommerce-breadcrumb a:hover { color: var(--rs-primary); }

/* Page title */
.woocommerce-products-header__title, .woocommerce-Address-title h2, .woocommerce-MyAccount-content h2 {
    font-family: var(--rs-font-serif);
    font-size: clamp(28px, 4vw, 44px);
    margin-bottom: 24px;
}

/* Product grid */
ul.products {
    display: grid !important;
    grid-template-columns: repeat(4, 1fr);
    gap: 28px;
    list-style: none;
    margin: 32px 0 0 !important;
    padding: 0 !important;
}
ul.products li.product {
    width: 100% !important;
    margin: 0 !important;
    float: none !important;
    background: #fff;
    border-radius: var(--rs-radius-lg);
    padding: 16px !important;
    transition: all var(--rs-transition);
    box-shadow: var(--rs-shadow-sm);
    position: relative;
}
ul.products li.product:hover { transform: translateY(-4px); box-shadow: var(--rs-shadow-md); }
ul.products li.product img { border-radius: var(--rs-radius); margin-bottom: 16px !important; }
ul.products li.product .woocommerce-loop-product__title {
    font-family: var(--rs-font-serif) !important;
    font-size: 17px !important;
    padding: 0 !important;
    margin: 4px 0 8px !important;
    color: var(--rs-text);
    font-weight: 500 !important;
}
ul.products li.product .price {
    color: var(--rs-text) !important;
    font-weight: 700;
    font-size: 18px;
}
ul.products li.product .price del { color: var(--rs-text-soft); font-weight: 400; font-size: 14px; }
ul.products li.product .price ins { background: none; color: var(--rs-primary); }
ul.products li.product .star-rating { margin: 8px 0; color: var(--rs-accent); }

ul.products li.product .button,
.woocommerce a.added_to_cart,
.woocommerce #respond input#submit,
.woocommerce button.button,
.woocommerce input.button,
.woocommerce-page button.button {
    background: var(--rs-primary) !important;
    color: #fff !important;
    border-radius: var(--rs-radius-pill) !important;
    padding: 10px 20px !important;
    font-weight: 600 !important;
    font-size: 13px !important;
    text-transform: uppercase !important;
    letter-spacing: 0.04em !important;
    transition: all var(--rs-transition) !important;
    border: 0 !important;
}
ul.products li.product .button:hover,
.woocommerce a.button:hover,
.woocommerce button.button:hover {
    background: var(--rs-primary-dark) !important;
    color: #fff !important;
    transform: translateY(-2px);
}

.woocommerce span.onsale {
    background: var(--rs-primary) !important;
    color: #fff !important;
    border-radius: var(--rs-radius-pill) !important;
    padding: 6px 14px !important;
    font-weight: 700 !important;
    font-size: 12px !important;
    min-height: 0 !important;
    line-height: 1 !important;
    top: 12px !important;
    left: 12px !important;
    right: auto !important;
}

/* Single product */
.woocommerce div.product .product_title { font-family: var(--rs-font-serif); font-size: clamp(28px, 3.5vw, 42px); }
.woocommerce div.product p.price, .woocommerce div.product span.price { color: var(--rs-text); font-size: 28px; font-weight: 700; }
.woocommerce div.product p.price ins, .woocommerce div.product span.price ins { color: var(--rs-primary); }

/* Tabs */
.woocommerce div.product .woocommerce-tabs ul.tabs { padding: 0 !important; border-bottom: 1px solid var(--rs-border); }
.woocommerce div.product .woocommerce-tabs ul.tabs li { background: transparent !important; border: 0 !important; border-radius: 0 !important; padding: 0 !important; margin-right: 24px !important; }
.woocommerce div.product .woocommerce-tabs ul.tabs li a { padding: 14px 0 !important; color: var(--rs-text-soft) !important; font-weight: 600; text-transform: uppercase; letter-spacing: 0.04em; }
.woocommerce div.product .woocommerce-tabs ul.tabs li.active a { color: var(--rs-primary) !important; border-bottom: 2px solid var(--rs-primary); }
.woocommerce div.product .woocommerce-tabs ul.tabs li::before,
.woocommerce div.product .woocommerce-tabs ul.tabs li::after { display: none !important; }

/* Cart & Checkout */
.woocommerce table.shop_table { border-radius: var(--rs-radius-lg); overflow: hidden; border: 1px solid var(--rs-border); }
.woocommerce table.shop_table th { background: var(--rs-bg-soft); }
.woocommerce-cart .cart-collaterals .cart_totals h2 { font-family: var(--rs-font-serif); }
.woocommerce form .form-row input.input-text, .woocommerce form .form-row textarea { border: 1px solid var(--rs-border) !important; border-radius: var(--rs-radius) !important; padding: 12px 14px !important; }

/* My Account */
.woocommerce-MyAccount-navigation ul {
    list-style: none;
    padding: 0;
    margin: 0;
}
.woocommerce-MyAccount-navigation ul li {
    border-bottom: 1px solid var(--rs-border);
}
.woocommerce-MyAccount-navigation ul li a {
    display: block;
    padding: 14px 0;
    color: var(--rs-text);
    font-weight: 500;
}
.woocommerce-MyAccount-navigation ul li.is-active a,
.woocommerce-MyAccount-navigation ul li a:hover {
    color: var(--rs-primary);
    padding-left: 8px;
}

/* Login/Register */
.woocommerce-form-login, .woocommerce-form-register {
    max-width: 480px;
    background: #fff;
    padding: 40px;
    border-radius: var(--rs-radius-lg);
    box-shadow: var(--rs-shadow-sm);
    border: 1px solid var(--rs-border);
}
.woocommerce form.checkout_coupon, .woocommerce form.login, .woocommerce form.register {
    border: 0 !important;
    padding: 0 !important;
}

@media (max-width: 1024px) {
    ul.products { grid-template-columns: repeat(3, 1fr); }
    .rs-wc-wrap:has(.rs-wc-sidebar) { grid-template-columns: 1fr; }
}
@media (max-width: 768px) {
    ul.products { grid-template-columns: repeat(2, 1fr); gap: 16px; }
}
@media (max-width: 480px) {
    ul.products { grid-template-columns: 1fr; }
}
