/* ============================================================
   Lomitro — WooCommerce & page styling (matches the theme tokens)
   ============================================================ */

.site-main{ padding: clamp(28px,5vw,64px) 0 clamp(56px,7vw,96px); min-height:50vh; }
.site-main .wrap{ width:100%; }
.page-title{ font-family:"Archivo Expanded","Archivo",sans-serif; font-weight:800; text-transform:uppercase; letter-spacing:-.01em; line-height:.98; font-size:clamp(32px,5vw,60px); margin:0 0 26px; }

/* Breadcrumb */
.woocommerce-breadcrumb{ font-size:12px; color:var(--muted); font-weight:500; letter-spacing:.02em; margin:0 0 20px; }
.woocommerce-breadcrumb a{ color:var(--muted); }
.woocommerce-breadcrumb a:hover{ color:var(--ink); }

/* Shop header / result count / ordering */
.woocommerce-products-header__title.page-title,
.woocommerce-products-header .page-title{ margin-bottom:18px; }
.woocommerce-result-count{ color:var(--muted); font-size:12.5px; margin:0 0 18px; }
.woocommerce-ordering select,
.woocommerce .select2-container .select2-selection,
select.orderby{ font-family:inherit; font-size:12.5px; font-weight:600; text-transform:uppercase; letter-spacing:.04em; padding:11px 14px; border:1px solid var(--ink); border-radius:0; background:var(--card); color:var(--ink); cursor:pointer; }
.woocommerce .woocommerce-ordering{ margin-bottom:26px; }

/* ---------- Product grid (shop, category, homepage, related) ---------- */
ul.products{ list-style:none; margin:0; padding:0; display:grid; gap:clamp(16px,1.8vw,26px); grid-template-columns:repeat(4,1fr); }
ul.products.columns-3{ grid-template-columns:repeat(3,1fr); }
ul.products.columns-2{ grid-template-columns:repeat(2,1fr); }
ul.products li.product{ width:auto!important; margin:0!important; float:none!important; text-align:left; position:relative; display:flex; flex-direction:column; }
ul.products li.product a.woocommerce-LoopProduct-link{ display:flex; flex-direction:column; gap:0; color:inherit; }
ul.products li.product .woocommerce-loop-product__link img,
ul.products li.product img{ width:100%; aspect-ratio:4/5; object-fit:cover; border:1px solid var(--line); border-radius:0; margin:0 0 14px; background:var(--paper-2); transition:transform .5s cubic-bezier(.2,.7,.2,1); }
ul.products li.product:hover img{ transform:translateY(-4px); }
ul.products li.product .woocommerce-loop-category__title,
ul.products li.product .woocommerce-loop-product__title,
ul.products li.product h2.woocommerce-loop-product__title{ font-family:"Archivo",sans-serif; font-weight:700; font-size:15px; line-height:1.25; letter-spacing:-.005em; padding:0; margin:0 0 5px; color:var(--ink); }
ul.products li.product .price{ color:var(--ink); font-weight:700; font-size:14px; margin:0 0 10px; display:block; }
ul.products li.product .price del{ color:var(--muted); font-weight:400; margin-right:6px; }
ul.products li.product .price ins{ color:var(--sale); text-decoration:none; }
ul.products li.product .star-rating{ margin:0 0 8px; font-size:12px; color:var(--ink); }

/* Sale flash */
span.onsale{ position:absolute; top:10px; left:10px; z-index:2; background:var(--sale); color:#fff; border-radius:0; min-height:auto; min-width:auto; line-height:1; padding:5px 9px; font-size:10px; font-weight:700; letter-spacing:.1em; text-transform:uppercase; margin:0; }

/* Add to cart button (loop) + all WooCommerce buttons */
.woocommerce a.button, .woocommerce button.button, .woocommerce input.button,
.woocommerce #respond input#submit, .woocommerce .button, .wc-block-components-button,
ul.products li.product .button, .woocommerce #place_order, a.added_to_cart{
  display:inline-flex; align-items:center; justify-content:center; gap:9px;
  background:var(--ink); color:var(--paper); border:1px solid var(--ink); border-radius:0;
  font-family:"Archivo",sans-serif; font-weight:700; font-size:12px; letter-spacing:.06em; text-transform:uppercase;
  padding:14px 22px; line-height:1; cursor:pointer; transition:transform .2s, background .2s, color .2s;
}
.woocommerce a.button:hover, .woocommerce button.button:hover, .woocommerce input.button:hover,
.woocommerce .button:hover, ul.products li.product .button:hover, .woocommerce #place_order:hover,
.woocommerce #respond input#submit:hover, a.added_to_cart:hover{ transform:translateY(-2px); background:#000; color:#fff; }
ul.products li.product .button{ width:100%; margin-top:auto; }
.woocommerce a.button.loading{ opacity:.7; }
a.added_to_cart{ margin-top:8px; background:var(--paper); color:var(--ink); }

/* Outline button variant (continue shopping etc.) */
.woocommerce .button.wc-backward{ background:var(--paper); color:var(--ink); }
.woocommerce .button.wc-backward:hover{ background:var(--ink); color:var(--paper); }

/* ---------- Single product ---------- */
.single-product div.product{ display:grid; grid-template-columns:1.05fr .95fr; gap:clamp(26px,4vw,60px); align-items:start; }
.single-product div.product .woocommerce-product-gallery{ width:100%!important; float:none; margin:0; }
.single-product div.product .woocommerce-product-gallery img{ border:1px solid var(--line); }
.single-product div.product .summary{ margin:0!important; width:auto!important; float:none!important; display:flex; flex-direction:column; gap:16px; }
.single-product div.product .product_title{ font-family:"Archivo Expanded","Archivo",sans-serif; font-weight:800; text-transform:uppercase; letter-spacing:-.01em; line-height:1; font-size:clamp(28px,3.6vw,48px); margin:0; }
.single-product div.product p.price, .single-product div.product span.price{ font-size:25px; font-weight:700; color:var(--ink); margin:0; }
.single-product div.product p.price del{ color:var(--muted); font-weight:400; font-size:18px; }
.single-product div.product p.price ins{ color:var(--sale); text-decoration:none; }
.woocommerce-product-details__short-description{ color:var(--ink-2); font-weight:300; line-height:1.7; font-size:14.5px; }
.single-product .quantity input.qty{ width:68px; padding:13px 10px; border:1px solid var(--line); border-radius:0; text-align:center; font-family:inherit; background:var(--paper); color:var(--ink); }
.single-product form.cart{ display:flex; gap:12px; align-items:stretch; flex-wrap:wrap; margin:4px 0; }
.single-product form.cart .button{ flex:1; min-width:180px; padding:16px; }
.single-product .variations{ width:100%; border-collapse:collapse; }
.single-product .variations td, .single-product .variations th{ padding:6px 0; }
.single-product .variations select{ padding:12px 14px; border:1px solid var(--line); border-radius:0; font-family:inherit; background:var(--paper); color:var(--ink); }
.single-product .product_meta{ font-size:12.5px; color:var(--muted); border-top:1px solid var(--line); padding-top:14px; }
.single-product .woocommerce-tabs{ grid-column:1 / -1; margin-top:clamp(30px,4vw,56px); }
.woocommerce-tabs ul.tabs{ display:flex; gap:24px; border-bottom:1px solid var(--line); padding:0; margin:0 0 20px; list-style:none; }
.woocommerce-tabs ul.tabs li{ margin:0; }
.woocommerce-tabs ul.tabs li a{ font-weight:700; font-size:12px; letter-spacing:.08em; text-transform:uppercase; color:var(--muted); padding:12px 0; display:inline-block; border-bottom:2px solid transparent; }
.woocommerce-tabs ul.tabs li.active a{ color:var(--ink); border-bottom-color:var(--ink); }
.related.products, .upsells.products{ grid-column:1 / -1; margin-top:clamp(36px,5vw,72px); }
.related.products > h2, .upsells.products > h2, .cross-sells > h2{ font-family:"Archivo Expanded","Archivo",sans-serif; font-weight:800; text-transform:uppercase; font-size:clamp(24px,3vw,40px); margin:0 0 24px; }

/* ---------- Cart ---------- */
.woocommerce table.shop_table{ border:1px solid var(--line); border-radius:0; border-collapse:collapse; width:100%; }
.woocommerce table.shop_table th{ font-size:11px; letter-spacing:.1em; text-transform:uppercase; color:var(--muted); font-weight:700; padding:16px; border-bottom:1px solid var(--line); text-align:left; }
.woocommerce table.shop_table td{ padding:16px; border-top:1px solid var(--line); vertical-align:middle; }
.woocommerce table.shop_table img{ width:72px; height:auto; border:1px solid var(--line); }
.woocommerce table.cart td.product-name a{ font-weight:700; color:var(--ink); }
.woocommerce .cart-collaterals .cart_totals, .woocommerce-cart .cart-collaterals{ width:100%; }
.cart_totals h2, .cross-sells h2{ font-family:"Archivo Expanded","Archivo",sans-serif; font-weight:800; text-transform:uppercase; font-size:22px; margin:0 0 16px; }
.woocommerce-cart .wc-proceed-to-checkout a.checkout-button{ width:100%; padding:17px; font-size:13px; }
.woocommerce .coupon input.input-text{ padding:13px 15px; border:1px solid var(--line); border-radius:0; background:var(--paper); color:var(--ink); font-family:inherit; }
td.actions .coupon{ display:flex; gap:10px; flex-wrap:wrap; }

/* ---------- Checkout ---------- */
.woocommerce-checkout h3{ font-family:"Archivo Expanded","Archivo",sans-serif; font-weight:800; text-transform:uppercase; letter-spacing:-.01em; font-size:20px; margin:0 0 16px; }
.woocommerce form .form-row label{ font-size:11px; letter-spacing:.06em; text-transform:uppercase; color:var(--muted); font-weight:600; margin-bottom:6px; display:block; }
.woocommerce form .form-row input.input-text,
.woocommerce form .form-row textarea,
.woocommerce .select2-container--default .select2-selection--single,
.woocommerce-checkout select, .woocommerce input[type=text], .woocommerce input[type=email],
.woocommerce input[type=tel], .woocommerce input[type=password], .woocommerce input[type=number]{
  padding:13px 15px; border:1px solid var(--line); border-radius:0; background:var(--paper); color:var(--ink); font-family:inherit; font-size:14px; width:100%;
}
.woocommerce form .form-row input.input-text:focus, .woocommerce input:focus, .woocommerce textarea:focus{ outline:none; border-color:var(--ink); }
#order_review, #order_review_heading{ margin-top:8px; }
.woocommerce-checkout #payment{ background:var(--paper-2); border:1px solid var(--line); border-radius:0; }
.woocommerce-checkout #payment ul.payment_methods{ border-bottom:1px solid var(--line); }
.woocommerce-checkout #payment div.payment_box{ background:var(--card); border:1px solid var(--line); }
.woocommerce-checkout #payment div.payment_box::before{ display:none; }
#place_order{ width:100%; padding:18px; font-size:13px; margin-top:12px; }

/* ---------- My account ---------- */
.woocommerce-account .woocommerce-MyAccount-navigation ul{ list-style:none; margin:0; padding:0; border:1px solid var(--line); }
.woocommerce-account .woocommerce-MyAccount-navigation li{ border-bottom:1px solid var(--line); }
.woocommerce-account .woocommerce-MyAccount-navigation li a{ display:block; padding:14px 16px; font-weight:600; font-size:13px; color:var(--ink-2); }
.woocommerce-account .woocommerce-MyAccount-navigation li.is-active a, .woocommerce-account .woocommerce-MyAccount-navigation li a:hover{ background:var(--ink); color:var(--paper); }
.woocommerce-account .woocommerce-MyAccount-content{ padding-left:clamp(0px,2vw,30px); }
.woocommerce-account .u-columns.col2-set .col-1, .woocommerce-account .u-columns.col2-set .col-2{ width:100%; }
.woocommerce form.login, .woocommerce form.register{ border:1px solid var(--line); border-radius:0; padding:clamp(20px,3vw,32px); }

/* ---------- WooCommerce messages ---------- */
.woocommerce-message, .woocommerce-info, .woocommerce-error, .woocommerce-noreviews, .wc-block-components-notice-banner{
  border:1px solid var(--line); border-radius:0; border-left:3px solid var(--ink); background:var(--card); padding:16px 18px; font-size:13.5px; list-style:none;
}
.woocommerce-message{ border-left-color:#2BA84A; }
.woocommerce-error{ border-left-color:var(--sale); }
.woocommerce-message .button, .woocommerce-info .button{ padding:9px 14px; font-size:11px; }

/* ---------- Homepage product wrap + empty state ---------- */
.wc-products-wrap ul.products{ margin:0; }
.empty-shop{ text-align:center; border:1px solid var(--line); border-radius:0; padding:clamp(40px,7vw,96px) 24px; background:var(--card); }
.empty-shop h2{ font-size:clamp(28px,4vw,48px); margin:0 0 12px; }
.empty-shop p{ color:var(--muted); max-width:46ch; margin:0 auto 24px; }
.empty-shop .btn{ display:inline-flex; }

/* ---------- Generic page content (About / Contact / policies) ---------- */
.entry-content{ max-width:70ch; font-size:16px; line-height:1.8; color:var(--ink-2); }
.entry-content h2{ font-family:"Archivo Expanded","Archivo",sans-serif; font-weight:800; text-transform:uppercase; font-size:clamp(22px,3vw,34px); margin:34px 0 14px; color:var(--ink); }
.entry-content h3{ font-weight:800; font-size:19px; margin:24px 0 10px; color:var(--ink); }
.entry-content a{ color:var(--ink); text-decoration:underline; text-underline-offset:3px; }
.entry-content img{ border:1px solid var(--line); }
.page-main.wide .entry-content, .woocommerce .entry-content{ max-width:none; }

/* Posts list fallback */
.post-list{ display:grid; gap:24px; }
.post-card{ border-bottom:1px solid var(--line); padding-bottom:20px; }
.post-card h2{ font-size:24px; margin:0 0 8px; }
.post-ex{ color:var(--muted); }

/* ---------- Responsive ---------- */
@media(max-width:1080px){ ul.products{ grid-template-columns:repeat(3,1fr); } .single-product div.product{ grid-template-columns:1fr; } }
@media(max-width:760px){ ul.products{ grid-template-columns:repeat(2,1fr); } }
@media(max-width:480px){ ul.products{ grid-template-columns:repeat(2,1fr); } }
