/* ============================================================
   ChemRexn — WooCommerce skin ("Precision Lab")
   Loaded only on WooCommerce pages (see functions.php).
   Styles WC's own markup — no template overrides.
   ============================================================ */

:root {
    --rx-ink:#0A1F44; --rx-navy:#0C3570; --rx-blue:#1E4F9C; --rx-blue-2:#2E63B8;
    --rx-blue-soft:#E9F0FB; --rx-green:#1B5E20; --rx-green-soft:#E8F1E4;
    --rx-paper:#FBFBF8; --rx-paper-2:#F1F2EC; --rx-line:rgba(10,31,68,.10);
    --rx-line-2:rgba(10,31,68,.06); --rx-muted:#5A6473; --rx-muted-2:#8A93A3;
    --rx-serif:'Fraunces','Iowan Old Style',Georgia,serif;
    --rx-sans:'Hanken Grotesk',-apple-system,BlinkMacSystemFont,sans-serif;
    --rx-mono:'IBM Plex Mono','SFMono-Regular',Menlo,monospace;
    --rx-ease:cubic-bezier(.22,1,.36,1);
}

/* ---- page frame ---- */
.woocommerce, .woocommerce-page {
    font-family: var(--rx-sans);
    color: var(--rx-ink);
}
.woocommerce-page .site-main,
.woocommerce .site-main { background: var(--rx-paper); }

/* constrain + pad WC content */
.woocommerce-page > .site-main,
body.woocommerce > .site-main {
    max-width: 1180px; margin: 0 auto; padding: 2.5rem 2rem 4rem;
}

/* headings */
.woocommerce h1, .woocommerce h2, .woocommerce h3,
.woocommerce-page h1, .woocommerce-page h2 {
    font-family: var(--rx-serif); font-weight: 400; letter-spacing: -.015em; color: var(--rx-ink);
}
.woocommerce-products-header__title,
.woocommerce .product_title {
    font-family: var(--rx-serif); font-weight: 400;
    font-size: clamp(28px,4vw,42px); line-height: 1.1; letter-spacing: -.02em;
}

/* result count + ordering */
.woocommerce .woocommerce-result-count {
    font-family: var(--rx-mono); font-size: 12px; letter-spacing: .04em; color: var(--rx-muted);
}
.woocommerce .woocommerce-ordering select,
.woocommerce select.orderby {
    font-family: var(--rx-sans); font-size: 13px; padding: .6em 2em .6em .9em;
    border: 1px solid var(--rx-line); border-radius: 3px; background: #fff; color: var(--rx-ink);
}

/* ============================================================
   PRODUCT GRID (shop / archive)
   ============================================================ */
.woocommerce ul.products,
.woocommerce-page ul.products {
    display: grid !important;
    grid-template-columns: repeat(3, 1fr);
    gap: 1.5rem; margin: 2rem 0 0; padding: 0; list-style: none;
}
.woocommerce ul.products::before,
.woocommerce ul.products::after { content: none !important; display: none !important; }

.woocommerce ul.products li.product,
.woocommerce-page ul.products li.product {
    width: auto !important; margin: 0 !important; padding: 0 !important; float: none !important;
    background: var(--rx-paper); border: 1px solid var(--rx-line); border-radius: 5px;
    overflow: hidden; display: flex; flex-direction: column;
    transition: transform .3s var(--rx-ease), box-shadow .3s var(--rx-ease), border-color .3s;
    text-align: left;
}
.woocommerce ul.products li.product:hover {
    transform: translateY(-4px); box-shadow: 0 22px 44px -26px rgba(10,31,68,.4);
    border-color: rgba(30,79,156,.4);
}
.woocommerce ul.products li.product a.woocommerce-LoopProduct-link { display: flex; flex-direction: column; flex: 1; }

/* product image area */
.woocommerce ul.products li.product .attachment-woocommerce_thumbnail,
.woocommerce ul.products li.product img {
    margin: 0 0 0 0 !important; width: 100%; aspect-ratio: 5/3; object-fit: cover;
    background: var(--rx-paper-2);
}

/* title / price inside card body */
.woocommerce ul.products li.product .woocommerce-loop-product__title {
    font-family: var(--rx-serif); font-weight: 400; font-size: 19px; line-height: 1.2;
    letter-spacing: -.01em; color: var(--rx-ink);
    padding: 1rem 1.2rem 0; margin: 0;
}
.woocommerce ul.products li.product .price {
    padding: .4rem 1.2rem 0; color: var(--rx-ink) !important; font-weight: 700; font-size: 16px;
    display: block;
}
.woocommerce ul.products li.product .price del { color: var(--rx-muted-2); font-weight: 400; }
.woocommerce ul.products li.product .price ins { text-decoration: none; }

/* category badge via the existing rating/cat? use add-to-cart row */
.woocommerce ul.products li.product .button,
.woocommerce ul.products li.product .added_to_cart {
    margin: 1rem 1.2rem 1.2rem; align-self: flex-start;
    font-family: var(--rx-sans); font-size: 13px; font-weight: 600;
    padding: .6em 1.1em; border-radius: 2px;
    background: var(--rx-green-soft); color: var(--rx-green); border: 1px solid var(--rx-green-soft);
    transition: background .2s, color .2s; cursor: pointer; display: inline-block;
}
.woocommerce ul.products li.product .button:hover,
.woocommerce ul.products li.product .added_to_cart:hover { background: var(--rx-green); color: #fff; }
.woocommerce ul.products li.product .added_to_cart { margin-top: 0; }

/* sale flash */
.woocommerce span.onsale {
    font-family: var(--rx-mono); font-size: 9.5px; letter-spacing: .14em; text-transform: uppercase;
    background: var(--rx-green); color: #fff; border-radius: 2px; min-height: 0; min-width: 0;
    padding: .35em .7em; top: 12px; left: 12px; margin: 0; line-height: 1;
}

/* ============================================================
   SINGLE PRODUCT
   ============================================================ */
.woocommerce div.product { margin-top: 1rem; }
.woocommerce div.product div.images { margin-bottom: 2rem; }
.woocommerce div.product div.images img {
    border: 1px solid var(--rx-line); border-radius: 6px; background: var(--rx-paper-2);
}
.woocommerce div.product div.summary { padding-left: .5rem; }

.woocommerce div.product .product_title { margin-bottom: .6rem; }
.woocommerce div.product p.price,
.woocommerce div.product span.price {
    color: var(--rx-ink); font-size: 26px; font-weight: 700; font-family: var(--rx-sans);
    margin: .4rem 0 1.2rem;
}
.woocommerce div.product .woocommerce-product-rating { margin-bottom: 1rem; }

.woocommerce div.product .woocommerce-product-details__short-description {
    font-size: 15px; line-height: 1.7; color: var(--rx-muted); margin-bottom: 1.5rem;
}
.woocommerce div.product .woocommerce-product-details__short-description p { margin: 0; }

/* SKU / meta */
.woocommerce div.product .product_meta {
    font-family: var(--rx-mono); font-size: 12px; color: var(--rx-muted);
    border-top: 1px solid var(--rx-line); margin-top: 1.5rem; padding-top: 1.2rem;
}
.woocommerce div.product .product_meta > span { display: block; margin-bottom: .4rem; }
.woocommerce div.product .product_meta a { color: var(--rx-blue); }

/* quantity + add to cart */
.woocommerce div.product form.cart { margin: 1.5rem 0; display: flex; gap: .8rem; align-items: stretch; flex-wrap: wrap; }
.woocommerce .quantity .qty {
    font-family: var(--rx-mono); font-size: 15px; width: 5em; padding: .7em .5em; text-align: center;
    border: 1px solid var(--rx-line); border-radius: 3px; background: #fff; color: var(--rx-ink);
}
.woocommerce div.product form.cart .button,
.woocommerce div.product form.cart button {
    font-family: var(--rx-sans); font-size: 14px; font-weight: 600; letter-spacing: .01em;
    padding: .85em 1.8em; border-radius: 2px; background: var(--rx-green); color: #fff;
    border: 1px solid var(--rx-green); cursor: pointer;
    transition: transform .25s var(--rx-ease), box-shadow .25s;
}
.woocommerce div.product form.cart .button:hover {
    transform: translateY(-2px); box-shadow: 0 12px 28px -12px rgba(27,94,32,.55);
}

/* tabs */
.woocommerce div.product .woocommerce-tabs ul.tabs {
    border-bottom: 1px solid var(--rx-line); padding: 0; margin-bottom: 1.5rem;
}
.woocommerce div.product .woocommerce-tabs ul.tabs::before { border-color: var(--rx-line); }
.woocommerce div.product .woocommerce-tabs ul.tabs li {
    background: transparent; border: none; border-radius: 0; margin: 0 1.5rem 0 0; padding: 0;
}
.woocommerce div.product .woocommerce-tabs ul.tabs li::before,
.woocommerce div.product .woocommerce-tabs ul.tabs li::after { content: none; border: none; }
.woocommerce div.product .woocommerce-tabs ul.tabs li a {
    font-family: var(--rx-mono); font-size: 12px; letter-spacing: .08em; text-transform: uppercase;
    color: var(--rx-muted); padding: .9rem 0; display: block; position: relative;
}
.woocommerce div.product .woocommerce-tabs ul.tabs li.active a { color: var(--rx-blue); }
.woocommerce div.product .woocommerce-tabs ul.tabs li.active a::after {
    content: ""; position: absolute; left: 0; right: 0; bottom: -1px; height: 2px; background: var(--rx-blue);
}
.woocommerce div.product .woocommerce-tabs .panel {
    font-size: 15px; line-height: 1.7; color: var(--rx-muted);
}
.woocommerce div.product .woocommerce-tabs .panel h2 { font-size: 22px; color: var(--rx-ink); margin-bottom: 1rem; }

/* attributes table (specs) */
.woocommerce table.shop_attributes {
    border: 1px solid var(--rx-line); border-collapse: collapse;
}
.woocommerce table.shop_attributes th,
.woocommerce table.shop_attributes td {
    border-bottom: 1px solid var(--rx-line-2); padding: .8em 1em; font-size: 14px;
}
.woocommerce table.shop_attributes th {
    font-family: var(--rx-mono); font-size: 11px; letter-spacing: .08em; text-transform: uppercase;
    color: var(--rx-blue); background: var(--rx-blue-soft); font-weight: 500; width: 30%;
}
.woocommerce table.shop_attributes td { color: var(--rx-ink); font-style: normal; }

/* related / upsells */
.woocommerce .related > h2, .woocommerce .upsells > h2 {
    font-size: 26px; margin-bottom: 1.5rem; padding-top: 2rem; border-top: 1px solid var(--rx-line);
}

/* ============================================================
   CART
   ============================================================ */
.woocommerce table.shop_table {
    border: 1px solid var(--rx-line); border-radius: 5px; border-collapse: separate; border-spacing: 0;
}
.woocommerce table.shop_table th {
    font-family: var(--rx-mono); font-size: 11px; letter-spacing: .1em; text-transform: uppercase;
    color: var(--rx-muted); background: var(--rx-paper-2); padding: 1rem; font-weight: 500;
}
.woocommerce table.shop_table td { padding: 1rem; border-top: 1px solid var(--rx-line-2); }
.woocommerce a.remove {
    color: var(--rx-muted) !important; font-weight: 400; border: 1px solid var(--rx-line);
}
.woocommerce a.remove:hover { background: #B3261E !important; color: #fff !important; border-color: #B3261E; }
.woocommerce .product-name a { color: var(--rx-ink); font-weight: 500; }
.woocommerce .product-name a:hover { color: var(--rx-blue); }

.woocommerce .cart-collaterals .cart_totals h2,
.woocommerce-cart .cart-collaterals .cart_totals > h2 {
    font-size: 22px; margin-bottom: 1rem;
}
.woocommerce .cart_totals table { font-size: 14px; }

/* coupon + update buttons */
.woocommerce .actions .button,
.woocommerce #content table.cart td.actions .button {
    font-family: var(--rx-sans); font-weight: 600; font-size: 13px;
    background: var(--rx-ink); color: #fff; border: 1px solid var(--rx-ink); border-radius: 2px;
    padding: .8em 1.4em;
}
.woocommerce .actions .button:hover { background: var(--rx-navy); border-color: var(--rx-navy); }
.woocommerce #coupon_code { border: 1px solid var(--rx-line); border-radius: 3px; padding: .7em 1em; }

/* ============================================================
   CHECKOUT
   ============================================================ */
.woocommerce-checkout h3 { font-size: 22px; margin-bottom: 1rem; }
.woocommerce form .form-row label,
.woocommerce-checkout .form-row label {
    font-family: var(--rx-mono); font-size: 11px; letter-spacing: .08em; text-transform: uppercase;
    color: var(--rx-blue); margin-bottom: .4rem;
}
.woocommerce form .form-row input.input-text,
.woocommerce form .form-row textarea,
.woocommerce form .form-row select,
.woocommerce-checkout input.input-text,
.select2-container--default .select2-selection--single {
    font-family: var(--rx-sans); font-size: 15px; padding: .8em 1em;
    border: 1px solid var(--rx-line) !important; border-radius: 3px; background: #fff; color: var(--rx-ink);
}
.woocommerce form .form-row input.input-text:focus,
.woocommerce form .form-row textarea:focus {
    outline: none; border-color: var(--rx-blue) !important; box-shadow: 0 0 0 3px var(--rx-blue-soft);
}
.select2-container--default .select2-selection--single { height: auto; padding: .35em .5em; }

.woocommerce-checkout #payment {
    background: var(--rx-paper-2); border: 1px solid var(--rx-line); border-radius: 5px;
}
.woocommerce-checkout #payment ul.payment_methods { border-bottom-color: var(--rx-line); }
.woocommerce-checkout #payment div.payment_box {
    background: #fff; border: 1px solid var(--rx-line);
}
.woocommerce-checkout #payment div.payment_box::before { border-bottom-color: #fff; }

#place_order,
.woocommerce #place_order {
    font-family: var(--rx-sans) !important; font-size: 15px !important; font-weight: 600 !important;
    background: var(--rx-green) !important; color: #fff !important; border: 1px solid var(--rx-green) !important;
    border-radius: 2px !important; padding: 1em 2em !important; width: 100%;
    transition: transform .25s var(--rx-ease), box-shadow .25s;
}
#place_order:hover { transform: translateY(-2px); box-shadow: 0 12px 28px -12px rgba(27,94,32,.55); }

.woocommerce-checkout-review-order-table tfoot th { font-family: var(--rx-mono); font-size: 12px; }
.woocommerce-checkout-review-order-table .order-total .amount { color: var(--rx-ink); font-size: 18px; }

/* ============================================================
   ACCOUNT
   ============================================================ */
.woocommerce-account .woocommerce-MyAccount-navigation ul { border: 1px solid var(--rx-line); border-radius: 5px; overflow: hidden; }
.woocommerce-account .woocommerce-MyAccount-navigation li { border-bottom: 1px solid var(--rx-line-2); }
.woocommerce-account .woocommerce-MyAccount-navigation li a {
    padding: .9em 1.2em; display: block; font-size: 14px; color: var(--rx-muted);
}
.woocommerce-account .woocommerce-MyAccount-navigation li.is-active a { color: var(--rx-blue); background: var(--rx-blue-soft); font-weight: 500; }
.woocommerce-account .woocommerce-MyAccount-content { font-size: 15px; line-height: 1.7; }

.woocommerce form.login, .woocommerce form.register {
    border: 1px solid var(--rx-line); border-radius: 5px; padding: 2rem;
}

/* ============================================================
   NOTICES
   ============================================================ */
.woocommerce-message, .woocommerce-info, .woocommerce-error,
.woocommerce-noreviews, .woocommerce p.no-comments {
    border-top: none; border-left: 3px solid var(--rx-green); border-radius: 3px;
    font-size: 14px; padding: 1em 1.5em 1em 2em; background: var(--rx-green-soft); color: #14501A;
}
.woocommerce-message::before, .woocommerce-info::before { color: var(--rx-green); }
.woocommerce-info { border-left-color: var(--rx-blue); background: var(--rx-blue-soft); color: #0C447C; }
.woocommerce-info::before { color: var(--rx-blue); }
.woocommerce-error { border-left-color: #B3261E; background: #FDECEC; color: #B3261E; }
.woocommerce-error::before { color: #B3261E; }

.woocommerce-message .button, .woocommerce-info .button {
    font-family: var(--rx-sans); font-weight: 600; font-size: 12px; background: var(--rx-green);
    color: #fff; border-radius: 2px; padding: .5em 1em; border: none;
}
.woocommerce-info .button { background: var(--rx-blue); }

/* breadcrumb */
.woocommerce-breadcrumb {
    font-family: var(--rx-mono); font-size: 11px; letter-spacing: .04em; color: var(--rx-muted-2);
    margin-bottom: 1.5rem;
}
.woocommerce-breadcrumb a { color: var(--rx-blue); }

/* pagination */
.woocommerce nav.woocommerce-pagination ul { border: 1px solid var(--rx-line); border-radius: 3px; }
.woocommerce nav.woocommerce-pagination ul li a,
.woocommerce nav.woocommerce-pagination ul li span {
    font-family: var(--rx-mono); font-size: 13px; color: var(--rx-muted); padding: .6em 1em;
}
.woocommerce nav.woocommerce-pagination ul li span.current { background: var(--rx-blue); color: #fff; }

/* ============================================================
   RESPONSIVE
   ============================================================ */
@media (max-width: 1000px) {
    .woocommerce ul.products, .woocommerce-page ul.products { grid-template-columns: repeat(2, 1fr); }
    .woocommerce div.product div.images, .woocommerce div.product div.summary { width: 100% !important; float: none !important; }
}
@media (max-width: 600px) {
    .woocommerce ul.products, .woocommerce-page ul.products { grid-template-columns: 1fr; }
    .woocommerce-page > .site-main, body.woocommerce > .site-main { padding: 1.5rem 1.25rem 3rem; }
    .woocommerce div.product form.cart { flex-direction: column; align-items: stretch; }
    .woocommerce .quantity .qty { width: 100%; }
}