/* ====================================================
   VILLAR — WooCommerce templates skin
   Loaded after style.css. Styles every WC page on-brand.
==================================================== */

/* === Page banner (above every WC page) === */
.villar-page-banner {
  background:
    linear-gradient(90deg, #0a0a0a 0%, rgba(10,10,10,.7) 60%, rgba(10,10,10,.4) 100%),
    var(--villar-bg-2);
  background-size: cover; background-position: center;
  padding: 56px 0 48px; position: relative; overflow: hidden;
  border-bottom: 1px solid #1a1a1a;
}
.villar-page-banner::before {
  content: ""; position: absolute; left: -40px; top: 0; bottom: 0; width: 320px;
  background-image: repeating-linear-gradient(60deg, transparent 0 22px, rgba(230,0,35,.06) 22px 23px);
  pointer-events: none;
}
.villar-page-banner__inner { position: relative; z-index: 2; }
.villar-page-banner__crumbs {
  font-size: 12px; color: var(--villar-text-mute); letter-spacing: 1px; text-transform: uppercase;
  margin-bottom: 10px;
}
.villar-page-banner__crumbs a { color: var(--villar-text-mute); }
.villar-page-banner__crumbs a:hover { color: var(--villar-red); }
.villar-page-banner__crumbs .sep { color: #444; margin: 0 8px; }
.villar-page-banner__title {
  margin: 0; font-family: "Oswald", var(--villar-font-display); font-weight: 700;
  font-size: clamp(36px, 4.5vw, 56px); letter-spacing: 1px; text-transform: uppercase; color: #fff;
}
.villar-page-banner__title::after {
  content: ""; display: block; width: 56px; height: 4px; background: var(--villar-red); margin-top: 12px;
}
.villar-page-banner__desc { color: var(--villar-text-mute); margin-top: 8px; max-width: 600px; font-size: 14px; }

/* === Main WooCommerce wrapper === */
.villar-wc {
  background: var(--villar-bg); padding: 40px 0 64px; color: #fff;
}
.villar-wc__inner {
  max-width: var(--villar-shell); margin: 0 auto; padding: 0 24px;
  display: grid; grid-template-columns: 240px 1fr; gap: 36px;
}
.villar-wc--no-sidebar .villar-wc__inner { grid-template-columns: 1fr; }

/* Override WooCommerce default page wrapper if used */
.woocommerce-products-header { display: none; }
.woocommerce-notices-wrapper { color: #fff; }

/* === Sidebar (categories filter) === */
.villar-wc-sidebar {
  background: var(--villar-bg-2); padding: 24px 20px; border-radius: var(--villar-radius);
  border: 1px solid #1f1f1f; align-self: start; position: sticky; top: 110px;
}
.villar-wc-sidebar h3 {
  margin: 0 0 14px; font-family: "Oswald"; font-size: 14px; font-weight: 700;
  letter-spacing: 2px; text-transform: uppercase; color: #fff;
  display: flex; align-items: center; gap: 10px;
}
.villar-wc-sidebar h3::before {
  content: ""; width: 3px; height: 14px; background: var(--villar-red);
}
.villar-wc-sidebar ul { list-style: none; padding: 0; margin: 0; }
.villar-wc-sidebar li { margin: 0; }
.villar-wc-sidebar li a {
  display: flex; justify-content: space-between; align-items: center;
  padding: 8px 0; border-bottom: 1px solid #222; color: #ccc;
  font-size: 13px; transition: color .2s;
}
.villar-wc-sidebar li a:hover, .villar-wc-sidebar li.current-cat > a { color: var(--villar-red); }
.villar-wc-sidebar li.current-cat > a { font-weight: 700; }
.villar-wc-sidebar li .count { color: #666; font-size: 11px; }
.villar-wc-sidebar li:last-child a { border-bottom: none; }
.villar-wc-sidebar__price {
  margin-top: 22px; padding-top: 18px; border-top: 1px solid #222;
}
.villar-wc-sidebar__cta {
  margin-top: 22px; padding: 16px;
  background: linear-gradient(135deg, #c20020 0%, #5c0010 100%);
  border-radius: var(--villar-radius); text-align: center;
}
.villar-wc-sidebar__cta strong {
  display: block; font-family: "Oswald"; font-size: 22px; letter-spacing: 2px; color: #fff;
}
.villar-wc-sidebar__cta small { display: block; color: rgba(255,255,255,.85); font-size: 11px; letter-spacing: 1px; margin-top: 4px; }

/* === Toolbar (sort + count) === */
.villar-wc-toolbar {
  display: flex; justify-content: space-between; align-items: center;
  padding: 0 0 18px; margin-bottom: 18px; border-bottom: 1px solid #222;
}
.villar-wc-toolbar .villar-wc-count { color: var(--villar-text-mute); font-size: 13px; }
.villar-wc-toolbar form { margin: 0; }
.villar-wc-toolbar select {
  background: var(--villar-bg-2); color: #fff; border: 1px solid #2a2a2a;
  padding: 8px 14px; border-radius: 4px; font-size: 13px; cursor: pointer;
}
.woocommerce ul.products, .woocommerce-page ul.products { display: contents !important; }

/* === Product grid (overrides WC default) === */
.villar-wc .products,
.woocommerce ul.products.columns-4 {
  display: grid !important;
  grid-template-columns: repeat(4, 1fr) !important;
  gap: 18px !important;
  list-style: none; padding: 0; margin: 0;
}
.villar-wc .products li.product,
.woocommerce ul.products li.product {
  width: auto !important; margin: 0 !important; padding: 0 !important;
  background: #fafafa !important; border-radius: var(--villar-radius); overflow: hidden;
  transition: transform .25s, box-shadow .25s; float: none !important;
  display: flex; flex-direction: column; position: relative;
}
.villar-wc .products li.product:hover,
.woocommerce ul.products li.product:hover { transform: translateY(-3px); box-shadow: 0 14px 28px rgba(230,0,35,.22); }
.villar-wc .products li.product a.woocommerce-LoopProduct-link { display: block; color: inherit; }
.villar-wc .products li.product img,
.woocommerce ul.products li.product img {
  width: 100% !important; aspect-ratio: 1/1; object-fit: cover; margin: 0 !important; display: block;
  background: #eaeaea;
}
.villar-wc .products li.product .woocommerce-loop-product__title,
.woocommerce ul.products li.product .woocommerce-loop-product__title {
  padding: 14px 14px 4px !important; margin: 0 !important;
  font-size: 12px !important; font-weight: 700 !important; letter-spacing: 1px;
  text-transform: uppercase; color: #111 !important; line-height: 1.3;
}
.villar-wc .products li.product .price,
.woocommerce ul.products li.product .price {
  padding: 0 14px 6px !important; margin: 0 !important;
  font-size: 16px !important; font-weight: 800 !important; color: var(--villar-red) !important;
}
.villar-wc .products li.product .star-rating,
.woocommerce ul.products li.product .star-rating {
  margin: 0 14px 12px !important; font-size: 12px !important; color: var(--villar-yellow);
}
.villar-wc .products li.product .button,
.woocommerce ul.products li.product .button {
  margin: 0 14px 14px !important; width: calc(100% - 28px);
  background: #0a0a0a !important; color: #fff !important;
  text-align: center; padding: 10px 16px !important;
  font-size: 11px !important; letter-spacing: 1.5px; text-transform: uppercase;
  border-radius: 4px; transition: background .2s;
}
.villar-wc .products li.product .button:hover,
.woocommerce ul.products li.product .button:hover { background: var(--villar-red) !important; }
.villar-wc .products li.product .added_to_cart {
  margin: 0 14px 14px !important; background: var(--villar-red) !important; color: #fff !important;
  padding: 8px 14px; text-align: center; border-radius: 4px; font-size: 11px;
  letter-spacing: 1.5px; text-transform: uppercase; display: inline-block; width: calc(100% - 28px);
}
.villar-wc .products li.product .onsale,
.woocommerce span.onsale {
  background: var(--villar-red) !important; color: #fff !important;
  border-radius: 4px !important; min-height: 26px; min-width: 50px;
  font-size: 11px !important; line-height: 26px !important; padding: 0 8px;
  position: absolute; top: 10px; left: 10px; right: auto !important; margin: 0 !important;
  font-weight: 700; letter-spacing: 1px;
}

/* === Pagination === */
.woocommerce nav.woocommerce-pagination { padding: 28px 0 0; }
.woocommerce nav.woocommerce-pagination ul { border: none !important; display: flex; gap: 6px; justify-content: center; }
.woocommerce nav.woocommerce-pagination ul li { border: none !important; margin: 0; }
.woocommerce nav.woocommerce-pagination ul li span,
.woocommerce nav.woocommerce-pagination ul li a {
  padding: 8px 14px !important; background: var(--villar-bg-2) !important; color: #fff !important;
  border-radius: 4px !important; font-weight: 700; min-width: 36px; text-align: center;
  border: 1px solid #222 !important;
}
.woocommerce nav.woocommerce-pagination ul li span.current,
.woocommerce nav.woocommerce-pagination ul li a:hover {
  background: var(--villar-red) !important; color: #fff !important; border-color: var(--villar-red) !important;
}

/* ====================================================
   SINGLE PRODUCT
==================================================== */
.woocommerce div.product { padding: 0; }
.woocommerce-page.single-product .villar-wc { padding-top: 40px; }
.woocommerce div.product .product_title {
  font-family: "Oswald", var(--villar-font-display) !important;
  font-size: 38px !important; font-weight: 700; letter-spacing: 1px; line-height: 1.1;
  text-transform: uppercase; color: #fff; margin: 0 0 12px !important;
}
.woocommerce div.product .woocommerce-product-rating { margin: 0 0 14px !important; color: var(--villar-yellow); }
.woocommerce div.product .woocommerce-product-rating .star-rating { color: var(--villar-yellow); }
.woocommerce div.product .woocommerce-product-rating a { color: var(--villar-text-mute); font-size: 12px; }

.woocommerce div.product p.price,
.woocommerce div.product span.price {
  color: var(--villar-red) !important; font-size: 32px !important; font-weight: 800 !important;
  font-family: var(--villar-font); margin: 0 0 18px !important;
}
.woocommerce div.product p.price del,
.woocommerce div.product span.price del { color: #777 !important; font-size: 20px !important; opacity: .8; }
.woocommerce div.product p.price ins,
.woocommerce div.product span.price ins { background: transparent !important; text-decoration: none !important; }

.woocommerce div.product div.summary {
  padding: 8px 0;
}
.woocommerce div.product .woocommerce-product-details__short-description {
  color: var(--villar-text-mute); line-height: 1.6; margin: 14px 0 24px; font-size: 14px;
}
.woocommerce div.product .woocommerce-product-details__short-description p { margin: 0 0 10px; }

/* Add-to-cart form */
.woocommerce div.product form.cart {
  display: flex; gap: 14px; align-items: center; flex-wrap: wrap; padding: 18px 0;
  border-top: 1px solid #222; border-bottom: 1px solid #222; margin: 20px 0;
}
.woocommerce div.product form.cart .quantity {
  display: inline-flex; align-items: center; background: var(--villar-bg-2); border: 1px solid #2a2a2a;
  border-radius: 4px; overflow: hidden;
}
.woocommerce div.product form.cart .quantity input.qty {
  background: transparent !important; color: #fff !important; border: none !important;
  width: 60px !important; height: 44px; text-align: center; font-weight: 700; font-size: 15px;
}
.woocommerce div.product form.cart .quantity input.qty::-webkit-inner-spin-button,
.woocommerce div.product form.cart .quantity input.qty::-webkit-outer-spin-button { -webkit-appearance: none; margin: 0; }
.woocommerce div.product form.cart .single_add_to_cart_button {
  background: var(--villar-red) !important; color: #fff !important;
  padding: 14px 36px !important; font-size: 13px !important; letter-spacing: 2px;
  text-transform: uppercase; border-radius: 4px !important; font-weight: 700;
  transition: background .2s;
}
.woocommerce div.product form.cart .single_add_to_cart_button:hover {
  background: var(--villar-red-hover) !important;
}

/* Variations table */
.woocommerce div.product form.cart .variations { width: 100%; margin: 0 0 12px; }
.woocommerce div.product form.cart .variations tr { display: block; margin-bottom: 10px; }
.woocommerce div.product form.cart .variations label {
  color: #fff; font-weight: 700; font-size: 12px; letter-spacing: 1.5px; text-transform: uppercase;
}
.woocommerce div.product form.cart .variations select {
  background: var(--villar-bg-2); color: #fff; border: 1px solid #2a2a2a;
  padding: 10px 14px; border-radius: 4px; width: 100%; max-width: 300px;
}

.woocommerce div.product .product_meta {
  border-top: 1px solid #222; padding-top: 16px; font-size: 12px; color: var(--villar-text-mute);
}
.woocommerce div.product .product_meta > span { display: block; margin-bottom: 6px; }
.woocommerce div.product .product_meta a { color: #fff; }
.woocommerce div.product .product_meta a:hover { color: var(--villar-red); }

/* Product images / gallery */
.woocommerce div.product div.images {
  width: 50% !important; margin-bottom: 0;
}
.woocommerce div.product div.summary {
  width: 46% !important;
}
@media (max-width: 768px) {
  .woocommerce div.product div.images,
  .woocommerce div.product div.summary { width: 100% !important; }
}
.woocommerce div.product div.images img {
  border-radius: var(--villar-radius); background: #fafafa;
}
.flex-control-thumbs li {
  width: 25% !important; padding: 5px;
}
.flex-control-thumbs li img {
  border: 2px solid transparent; border-radius: 4px; transition: border-color .2s;
}
.flex-control-thumbs li img.flex-active,
.flex-control-thumbs li img:hover { border-color: var(--villar-red); }

/* Product tabs */
.woocommerce div.product .woocommerce-tabs { margin-top: 40px; clear: both; padding-top: 40px; border-top: 1px solid #222; }
.woocommerce div.product .woocommerce-tabs ul.tabs {
  border: none !important; padding: 0 !important; margin: 0 0 24px !important;
  display: flex; gap: 0; border-bottom: 1px solid #222 !important;
}
.woocommerce div.product .woocommerce-tabs ul.tabs li {
  background: transparent !important; border: none !important; border-radius: 0 !important;
  padding: 0 !important; margin: 0 !important;
}
.woocommerce div.product .woocommerce-tabs ul.tabs li::before,
.woocommerce div.product .woocommerce-tabs ul.tabs li::after { display: none !important; }
.woocommerce div.product .woocommerce-tabs ul.tabs li a {
  color: var(--villar-text-mute) !important; padding: 14px 26px !important;
  font-size: 12px; letter-spacing: 2px; text-transform: uppercase; font-weight: 700;
  border-bottom: 2px solid transparent !important; transition: all .2s;
}
.woocommerce div.product .woocommerce-tabs ul.tabs li.active a,
.woocommerce div.product .woocommerce-tabs ul.tabs li a:hover {
  color: #fff !important; border-bottom-color: var(--villar-red) !important;
}
.woocommerce div.product .woocommerce-Tabs-panel {
  color: #d0d0d0; line-height: 1.7;
}
.woocommerce div.product .woocommerce-Tabs-panel h2 {
  color: #fff; font-family: "Oswald"; font-size: 22px; letter-spacing: 1px; text-transform: uppercase;
}

/* Related / Upsells / Cross-sells */
.related.products, .upsells.products, .cross-sells {
  margin-top: 56px !important; clear: both; padding-top: 32px;
  border-top: 1px solid #222;
  display: block !important; width: 100% !important;
}
.related.products > h2, .upsells.products > h2, .cross-sells > h2 {
  font-family: "Oswald"; font-size: 22px; letter-spacing: 2px; text-transform: uppercase;
  color: #fff; margin: 0 0 24px !important; display: inline-flex; align-items: center; gap: 14px;
  font-weight: 700;
}
.related.products > h2::before, .upsells.products > h2::before, .cross-sells > h2::before {
  content: ""; width: 4px; height: 18px; background: var(--villar-red);
}

/* Force grid on related products lists (WC uses ul.products.columns-N) */
.related.products ul.products,
.upsells.products ul.products,
.cross-sells ul.products,
.woocommerce ul.products.columns-1,
.woocommerce ul.products.columns-2,
.woocommerce ul.products.columns-3,
.woocommerce ul.products.columns-4,
.woocommerce ul.products.columns-5,
.woocommerce ul.products.columns-6 {
  display: grid !important;
  grid-template-columns: repeat(4, 1fr) !important;
  gap: 18px !important;
  list-style: none !important;
  padding: 0 !important;
  margin: 0 !important;
  width: 100% !important;
}
.related.products ul.products li.product,
.upsells.products ul.products li.product,
.cross-sells ul.products li.product {
  width: auto !important; margin: 0 !important; padding: 0 !important;
  float: none !important; clear: none !important;
  background: #fafafa !important; border-radius: var(--villar-radius); overflow: hidden;
  display: flex !important; flex-direction: column;
}

/* Make sure single-product container clears around its halves before related */
.woocommerce div.product { display: flow-root; }
.woocommerce div.product .woocommerce-tabs { clear: both; width: 100%; }
.woocommerce div.product .related,
.woocommerce div.product .upsells {
  clear: both; width: 100%;
}
@media (max-width: 1100px) {
  .related.products ul.products,
  .upsells.products ul.products,
  .cross-sells ul.products,
  .woocommerce ul.products.columns-4 { grid-template-columns: repeat(3, 1fr) !important; }
}
@media (max-width: 720px) {
  .related.products ul.products,
  .upsells.products ul.products,
  .cross-sells ul.products,
  .woocommerce ul.products.columns-4 { grid-template-columns: repeat(2, 1fr) !important; }
}

/* ====================================================
   CART  —  v2 redesigned layout
==================================================== */
.woocommerce-cart .villar-wc { color: #fff; padding: 40px 0 80px; }

/* Two-column grid: items on left, totals on right (sticky) */
.woocommerce-cart .woocommerce {
  display: grid !important;
  grid-template-columns: 1fr 380px;
  gap: 32px;
  align-items: start;
  max-width: 100% !important;
  padding: 0 !important;
}
.woocommerce-cart .woocommerce > * { min-width: 0; }
.woocommerce-cart form.woocommerce-cart-form { margin: 0; }

/* Cart table styled as a card */
.woocommerce-cart .shop_table.cart {
  background: var(--villar-bg-2) !important;
  border: 1px solid #222 !important;
  border-radius: var(--villar-radius);
  overflow: hidden;
  border-collapse: collapse !important;
  width: 100% !important;
  margin: 0 !important;
}
.woocommerce-cart .shop_table.cart thead { display: none; }
.woocommerce-cart .shop_table.cart tbody { display: block; }
.woocommerce-cart .shop_table.cart tr.cart_item {
  display: grid !important;
  grid-template-columns: 110px 1fr auto;
  gap: 22px;
  align-items: center;
  padding: 22px;
  border-bottom: 1px solid #222 !important;
}
.woocommerce-cart .shop_table.cart tr.cart_item:last-child { border-bottom: none !important; }
.woocommerce-cart .shop_table.cart tr.cart_item td {
  background: transparent !important;
  border: none !important;
  padding: 0 !important;
  display: block;
}
.woocommerce-cart .shop_table.cart tr.cart_item td.product-remove { display: none; }
.woocommerce-cart .shop_table.cart .product-thumbnail {
  position: relative;
}
.woocommerce-cart .shop_table.cart .product-thumbnail img {
  width: 110px !important; height: 110px !important;
  object-fit: cover; border-radius: 6px; background: #fafafa;
  display: block;
}
.woocommerce-cart .shop_table.cart .product-name {
  display: flex !important;
  flex-direction: column;
  gap: 6px;
}
.woocommerce-cart .shop_table.cart .product-name::before {
  content: attr(data-title);
  display: none;
}
.woocommerce-cart .shop_table.cart .product-name a {
  color: #fff !important; font-weight: 700; font-size: 14px;
  text-transform: uppercase; letter-spacing: .8px; line-height: 1.3;
}
.woocommerce-cart .shop_table.cart .product-name a:hover { color: var(--villar-red) !important; }
.woocommerce-cart .shop_table.cart .product-name dl.variation {
  color: var(--villar-text-mute); font-size: 12px; margin: 4px 0 0;
}

/* Inline price + qty + delete + subtotal under product name */
.woocommerce-cart .shop_table.cart .product-price,
.woocommerce-cart .shop_table.cart .product-subtotal {
  font-weight: 800; font-size: 18px; color: var(--villar-red) !important;
  text-align: right;
}
.woocommerce-cart .shop_table.cart .product-price { display: none; }

/* Qty stepper - reskin WC default */
.woocommerce-cart .shop_table.cart .product-quantity {
  display: inline-flex !important;
  background: #0a0a0a; border: 1px solid #2a2a2a; border-radius: 4px;
  overflow: hidden; height: 40px;
  position: absolute; left: 132px; bottom: 22px;
}
.woocommerce-cart .shop_table.cart .product-quantity .quantity { display: contents; }
.woocommerce-cart .shop_table.cart .product-quantity input.qty {
  background: transparent !important; color: #fff !important; border: none !important;
  width: 50px !important; height: 40px !important; text-align: center;
  font-weight: 700; font-size: 14px; padding: 0 !important;
  -moz-appearance: textfield;
}
.woocommerce-cart .shop_table.cart .product-quantity input.qty::-webkit-inner-spin-button,
.woocommerce-cart .shop_table.cart .product-quantity input.qty::-webkit-outer-spin-button {
  -webkit-appearance: none; margin: 0;
}
/* Wrap each item in a grid that gives us a footer row with qty + delete */
.woocommerce-cart .shop_table.cart tr.cart_item {
  position: relative; padding-bottom: 80px !important;
}
.woocommerce-cart .shop_table.cart .product-thumbnail { grid-row: 1; }
.woocommerce-cart .shop_table.cart .product-name { grid-row: 1; }
.woocommerce-cart .shop_table.cart .product-subtotal { grid-row: 1; }

/* Inject delete button via JS below name */
.villar-cart-row-actions {
  position: absolute; left: 22px; bottom: 22px; right: 22px;
  display: flex; align-items: center; justify-content: space-between;
  padding-left: 132px;
}
.villar-cart-row-actions .villar-cart-remove {
  color: var(--villar-text-mute); font-size: 12px; letter-spacing: 1.5px;
  text-transform: uppercase; font-weight: 700; cursor: pointer;
  background: none; border: none; padding: 8px 0;
  display: inline-flex; align-items: center; gap: 6px;
}
.villar-cart-row-actions .villar-cart-remove:hover { color: var(--villar-red); }
.villar-cart-row-actions .villar-cart-remove::before {
  content: ""; width: 14px; height: 14px;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round'%3E%3Cpath d='M3 6h18M8 6V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2M19 6l-1 14a2 2 0 0 1-2 2H8a2 2 0 0 1-2-2L5 6'/%3E%3C/svg%3E") no-repeat center / contain;
}

/* Hide the default 'remove' X link (we replace with our footer button) */
.woocommerce-cart .shop_table.cart .product-thumbnail a.remove,
.woocommerce-cart .shop_table.cart a.remove {
  display: none !important;
}

/* Update cart + coupon row */
.woocommerce-cart .shop_table.cart .actions {
  display: flex !important; align-items: center; gap: 14px;
  padding: 18px 22px !important; background: #0a0a0a;
  border-top: 1px solid #222;
}
.woocommerce-cart .shop_table.cart .actions .coupon {
  display: inline-flex; gap: 8px; flex: 1; max-width: 380px;
}
.woocommerce-cart .shop_table.cart .actions .coupon input.input-text {
  flex: 1; background: var(--villar-bg-2) !important; color: #fff !important;
  border: 1px solid #2a2a2a !important; padding: 11px 14px !important; border-radius: 4px !important;
  min-height: 40px;
}
.woocommerce-cart .shop_table.cart .actions .coupon button {
  background: transparent !important; color: #fff !important;
  border: 2px solid rgba(255,255,255,.25) !important;
  padding: 9px 18px !important; font-size: 11px !important; letter-spacing: 1.5px;
  font-weight: 700; text-transform: uppercase; border-radius: 4px !important;
}
.woocommerce-cart .shop_table.cart .actions .coupon button:hover {
  border-color: var(--villar-red) !important; color: var(--villar-red) !important;
}
.woocommerce-cart .shop_table.cart .actions button[name="update_cart"] {
  background: transparent !important; color: #fff !important;
  border: 1px dashed rgba(255,255,255,.25) !important;
  padding: 9px 18px !important; font-size: 11px !important; letter-spacing: 1.5px;
  font-weight: 700; text-transform: uppercase; border-radius: 4px !important;
}
.woocommerce-cart .shop_table.cart .actions button[name="update_cart"]:hover {
  border-color: var(--villar-red) !important; color: var(--villar-red) !important;
}
.woocommerce-cart .shop_table.cart .actions button[name="update_cart"]:disabled {
  opacity: .35;
}

/* Trust strip below cart */
.villar-cart-trust {
  background: var(--villar-bg-2); border: 1px solid #222; border-radius: var(--villar-radius);
  margin-top: 18px; padding: 18px 22px;
  display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px;
}
.villar-cart-trust__item {
  display: flex; align-items: center; gap: 12px;
  font-size: 12px; color: var(--villar-text-mute);
}
.villar-cart-trust__item strong { color: #fff; display: block; font-size: 12px; letter-spacing: 1px; text-transform: uppercase; margin-bottom: 2px; }
.villar-cart-trust__item svg { width: 28px; height: 28px; stroke: var(--villar-red); fill: none; flex-shrink: 0; }

/* Cart totals sidebar — sticky right column */
.woocommerce-cart .cart-collaterals {
  position: sticky; top: 110px;
  width: auto !important; float: none !important; margin: 0 !important;
}
.woocommerce-cart .cart-collaterals .cart_totals {
  background: var(--villar-bg-2); padding: 28px; border-radius: var(--villar-radius);
  border: 1px solid #222; width: 100% !important; float: none !important;
}
.woocommerce-cart .cart-collaterals .cart_totals h2 {
  font-family: "Oswald"; font-size: 18px; letter-spacing: 2px; text-transform: uppercase;
  color: #fff; margin: 0 0 20px; padding-bottom: 14px; border-bottom: 1px solid #222;
  display: flex; align-items: center; gap: 12px;
}
.woocommerce-cart .cart-collaterals .cart_totals h2::before {
  content: ""; width: 3px; height: 14px; background: var(--villar-red);
}
.woocommerce-cart .cart-collaterals .cart_totals table {
  background: transparent !important; border: none !important; margin: 0;
}
.woocommerce-cart .cart-collaterals .cart_totals table tr {
  display: flex; justify-content: space-between; align-items: center;
  padding: 10px 0; border-bottom: 1px solid #1f1f1f;
}
.woocommerce-cart .cart-collaterals .cart_totals table tr:last-of-type { border-bottom: none; }
.woocommerce-cart .cart-collaterals .cart_totals table th,
.woocommerce-cart .cart-collaterals .cart_totals table td {
  background: transparent !important; border: none !important; padding: 0 !important;
  color: #fff !important; font-weight: 500;
}
.woocommerce-cart .cart-collaterals .cart_totals table th { font-size: 12px; letter-spacing: 1px; text-transform: uppercase; color: var(--villar-text-mute) !important; }
.woocommerce-cart .cart-collaterals .cart_totals table td { font-weight: 700; }
.woocommerce-cart .cart-collaterals .cart_totals .order-total th { color: #fff !important; font-size: 14px; font-weight: 700; }
.woocommerce-cart .cart-collaterals .cart_totals .order-total td { color: var(--villar-red) !important; font-size: 24px !important; font-weight: 800 !important; }

.wc-proceed-to-checkout {
  margin-top: 20px !important; padding: 0 !important;
}
.wc-proceed-to-checkout a.checkout-button {
  background: var(--villar-red) !important; color: #fff !important;
  padding: 16px 24px !important; font-weight: 700 !important; letter-spacing: 2px;
  text-transform: uppercase; text-align: center; border-radius: 4px;
  font-size: 13px; display: block; width: 100%; margin: 0 !important;
  transition: all .2s;
}
.wc-proceed-to-checkout a.checkout-button:hover {
  background: var(--villar-red-hover) !important;
  transform: translateY(-1px);
  box-shadow: 0 8px 20px rgba(230,0,35,.4);
}

/* Continue shopping below proceed */
.villar-continue-shopping {
  display: block; text-align: center; margin-top: 14px;
  color: var(--villar-text-mute); font-size: 12px; letter-spacing: 1px;
  text-transform: uppercase; font-weight: 700;
}
.villar-continue-shopping:hover { color: var(--villar-red); }
.villar-continue-shopping::before { content: "\2190"; margin-right: 6px; }

/* Payment trust mini */
.villar-cart-pay-trust {
  margin-top: 22px; padding-top: 18px; border-top: 1px solid #222;
  text-align: center;
}
.villar-cart-pay-trust h4 {
  font-size: 11px; letter-spacing: 1.5px; text-transform: uppercase;
  color: var(--villar-text-mute); margin: 0 0 12px; font-weight: 600;
}
.villar-cart-pay-trust__row {
  display: flex; gap: 6px; justify-content: center; flex-wrap: wrap;
}
.villar-cart-pay-trust__row span {
  background: #fff; color: #111;
  padding: 4px 8px; font-size: 10px; font-weight: 800; letter-spacing: .5px;
  border-radius: 3px; min-height: 20px; display: inline-flex; align-items: center;
}
.villar-cart-pay-trust__row span.amex { background: #2671b8; color: #fff; }
.villar-cart-pay-trust__row span.ipse { background: #003a70; color: #fff; }
.villar-cart-pay-trust__row span.nequi { background: #ff007f; color: #fff; }

/* Cross-sells under cart */
.cross-sells {
  grid-column: 1 / -1; margin-top: 48px !important;
}

/* Notices on cart */
.woocommerce-cart .woocommerce-notices-wrapper {
  grid-column: 1 / -1;
}
.woocommerce-cart .woocommerce-message,
.woocommerce-cart .woocommerce-info {
  background: var(--villar-bg-2) !important; color: #fff !important;
  border-top: 3px solid var(--villar-red) !important;
  padding: 14px 20px !important;
}

/* Empty cart */
.cart-empty.woocommerce-info {
  background: var(--villar-bg-2) !important; color: #fff !important;
  border-top: 3px solid var(--villar-red) !important;
  text-align: center; padding: 60px 24px !important;
  font-size: 18px;
}
.cart-empty + .return-to-shop, .return-to-shop {
  text-align: center; padding: 16px 0 !important;
}
.return-to-shop a.button {
  background: var(--villar-red) !important; color: #fff !important;
  padding: 14px 28px !important; letter-spacing: 1.5px; text-transform: uppercase;
}

@media (max-width: 880px) {
  .woocommerce-cart .woocommerce { grid-template-columns: 1fr !important; }
  .woocommerce-cart .cart-collaterals { position: relative; top: 0; }
  .villar-cart-trust { grid-template-columns: 1fr; }
}
@media (max-width: 520px) {
  .woocommerce-cart .shop_table.cart tr.cart_item {
    grid-template-columns: 80px 1fr; padding: 16px !important; padding-bottom: 72px !important;
  }
  .woocommerce-cart .shop_table.cart .product-thumbnail img { width: 80px !important; height: 80px !important; }
  .woocommerce-cart .shop_table.cart .product-subtotal { grid-column: 2; font-size: 16px !important; }
  .villar-cart-row-actions { padding-left: 96px; left: 16px; right: 16px; bottom: 16px; }
}

/* ====================================================
   CHECKOUT  —  v2 redesigned
==================================================== */
.woocommerce-checkout .villar-wc { color: #fff; padding: 40px 0 80px; }

/* Override default WC checkout layout — 2 columns */
.woocommerce-checkout form.checkout {
  display: grid !important;
  grid-template-columns: 1fr 400px;
  grid-template-areas:
    "details review-h"
    "details review-b";
  gap: 12px 32px;
  align-items: start;
}
.woocommerce-checkout form.checkout > #customer_details {
  grid-area: details;
  background: var(--villar-bg-2);
  padding: 28px;
  border-radius: var(--villar-radius);
  border: 1px solid #222;
  margin: 0 !important;
}
.woocommerce-checkout form.checkout > h3#order_review_heading {
  grid-area: review-h;
  margin: 0 !important;
}
.woocommerce-checkout form.checkout > #order_review {
  grid-area: review-b;
  margin: 0 !important;
  position: sticky; top: 110px;
}
.woocommerce-checkout #customer_details .col-1,
.woocommerce-checkout #customer_details .col-2 {
  width: 100% !important; float: none !important; margin: 0 0 24px !important;
}
.woocommerce-checkout #customer_details .col-2:last-child { margin-bottom: 0 !important; }
.woocommerce-checkout form.checkout > h3,
.woocommerce-checkout form.checkout .woocommerce-billing-fields > h3,
.woocommerce-checkout form.checkout .woocommerce-shipping-fields > h3,
.woocommerce-checkout form.checkout .woocommerce-additional-fields > h3 {
  font-family: "Oswald", var(--villar-font-display) !important;
  font-size: 18px !important; font-weight: 700 !important;
  letter-spacing: 2px; text-transform: uppercase; color: #fff !important;
  margin: 0 0 18px !important; padding-bottom: 12px;
  border-bottom: 1px solid #222 !important;
  display: flex; align-items: center; gap: 12px;
}
.woocommerce-checkout form.checkout > h3::before,
.woocommerce-checkout form.checkout .woocommerce-billing-fields > h3::before,
.woocommerce-checkout form.checkout .woocommerce-shipping-fields > h3::before,
.woocommerce-checkout form.checkout .woocommerce-additional-fields > h3::before {
  content: ""; width: 3px; height: 14px; background: var(--villar-red);
}

/* Customer details section — first column */
.woocommerce-checkout #customer_details {
  background: var(--villar-bg-2);
  padding: 28px;
  border-radius: var(--villar-radius);
  border: 1px solid #222;
}
.woocommerce-checkout #customer_details .col-1,
.woocommerce-checkout #customer_details .col-2 {
  width: 100% !important; float: none !important;
}
.woocommerce-checkout .woocommerce-billing-fields,
.woocommerce-checkout .woocommerce-shipping-fields,
.woocommerce-checkout .woocommerce-additional-fields {
  margin: 0 0 28px;
}
.woocommerce-checkout .woocommerce-billing-fields:last-child,
.woocommerce-checkout .woocommerce-additional-fields:last-child {
  margin-bottom: 0;
}
.woocommerce-checkout .woocommerce-billing-fields__field-wrapper {
  display: grid; grid-template-columns: 1fr 1fr; gap: 12px 14px;
}
.woocommerce-checkout .form-row {
  margin: 0 0 6px !important; padding: 0 !important;
  width: 100% !important; float: none !important;
}
.woocommerce-checkout .form-row-first { grid-column: 1; }
.woocommerce-checkout .form-row-last { grid-column: 2; }
.woocommerce-checkout .form-row-wide { grid-column: 1 / -1; }

/* Form inputs */
.woocommerce form .form-row label {
  color: var(--villar-text-mute) !important; font-weight: 600 !important;
  font-size: 11px !important; letter-spacing: 1px !important; text-transform: uppercase !important;
  margin-bottom: 6px !important; display: block;
}
.woocommerce form .form-row label .required { color: var(--villar-red); }
.woocommerce form .form-row input.input-text,
.woocommerce form .form-row textarea,
.woocommerce form .form-row select,
.select2-container--default .select2-selection--single {
  background: #0a0a0a !important; color: #fff !important;
  border: 1px solid #2a2a2a !important; padding: 11px 14px !important;
  border-radius: 4px !important; min-height: 44px;
  font-size: 14px;
  transition: border-color .2s, box-shadow .2s;
}
.woocommerce form .form-row input.input-text:focus,
.woocommerce form .form-row textarea:focus,
.woocommerce form .form-row select:focus {
  border-color: var(--villar-red) !important;
  box-shadow: 0 0 0 3px rgba(230,0,35,.15) !important;
  outline: none;
}
.select2-container--default.select2-container--focus .select2-selection--single {
  border-color: var(--villar-red) !important;
}
.select2-container--default .select2-selection--single .select2-selection__rendered {
  color: #fff !important; line-height: 22px !important; padding-left: 0 !important;
}
.select2-container--default .select2-selection--single .select2-selection__arrow b {
  border-color: #fff transparent transparent transparent !important;
}
.select2-dropdown { background: var(--villar-bg-2) !important; color: #fff !important; border-color: #2a2a2a !important; }
.select2-results__option { color: #fff !important; padding: 8px 12px; }
.select2-container--default .select2-results__option--highlighted[aria-selected],
.select2-container--default .select2-results__option--highlighted {
  background: var(--villar-red) !important; color: #fff !important;
}
.select2-search--dropdown .select2-search__field {
  background: #0a0a0a !important; color: #fff !important; border-color: #2a2a2a !important;
}

/* "Pay as guest" note */
.woocommerce-checkout #customer_details .woocommerce-account-fields {
  background: rgba(230,0,35,.06); border: 1px dashed rgba(230,0,35,.2);
  padding: 10px 14px; border-radius: 4px; margin-bottom: 14px;
  color: var(--villar-text-mute); font-size: 12px;
}

/* Right column — order review */
.woocommerce-checkout .woocommerce-checkout-review-order {
  position: sticky; top: 110px;
  display: flex; flex-direction: column; gap: 16px;
}
.woocommerce-checkout #order_review_heading {
  color: #fff;
  font-family: "Oswald";
  font-size: 18px;
  letter-spacing: 2px;
  text-transform: uppercase;
  margin: 0 !important; padding: 22px 24px 18px;
  background: linear-gradient(180deg, var(--villar-bg-2) 0%, #181818 100%);
  border: 1px solid #222; border-bottom: none;
  border-radius: var(--villar-radius) var(--villar-radius) 0 0;
  display: flex; align-items: center; gap: 12px;
  font-weight: 700;
}
.woocommerce-checkout #order_review_heading::before {
  content: ""; width: 3px; height: 14px; background: var(--villar-red);
}
.woocommerce-checkout #order_review {
  background: var(--villar-bg-2) !important;
  border: 1px solid #222 !important;
  border-top: none !important;
  border-radius: 0 0 var(--villar-radius) var(--villar-radius);
  padding: 0 !important; margin: 0 !important;
}
.woocommerce-checkout #order_review .shop_table {
  background: transparent !important; border: none !important;
  border-collapse: collapse !important; margin: 0 !important;
  width: 100% !important;
}
.woocommerce-checkout #order_review .shop_table thead { display: none; }
.woocommerce-checkout #order_review .shop_table tbody tr {
  display: grid; grid-template-columns: 60px 1fr auto;
  gap: 12px; align-items: center; padding: 14px 24px;
  border-bottom: 1px solid #1f1f1f;
}
.woocommerce-checkout #order_review .shop_table tbody tr td {
  background: transparent !important; border: none !important;
  padding: 0 !important; color: #fff !important;
}
/* Inject thumbnail via :before only when WC outputs no image — fallback */
.woocommerce-checkout #order_review .product-name {
  font-size: 13px; font-weight: 700; text-transform: uppercase; letter-spacing: .8px; line-height: 1.3;
}
.woocommerce-checkout #order_review .product-name strong.product-quantity {
  display: inline-block; color: var(--villar-red); font-weight: 800;
  font-size: 12px; margin-left: 4px;
}
.woocommerce-checkout #order_review .product-total .amount,
.woocommerce-checkout #order_review .product-total {
  color: var(--villar-red) !important; font-weight: 800; font-size: 14px;
}
.woocommerce-checkout #order_review .shop_table tfoot tr {
  display: flex; justify-content: space-between; padding: 10px 24px;
  border-bottom: 1px solid #1f1f1f;
}
.woocommerce-checkout #order_review .shop_table tfoot tr:last-child { border-bottom: none; }
.woocommerce-checkout #order_review .shop_table tfoot tr th,
.woocommerce-checkout #order_review .shop_table tfoot tr td {
  background: transparent !important; border: none !important; padding: 0 !important;
  font-size: 13px;
}
.woocommerce-checkout #order_review .shop_table tfoot tr.cart-subtotal th,
.woocommerce-checkout #order_review .shop_table tfoot tr.cart-subtotal td { color: var(--villar-text-mute) !important; }
.woocommerce-checkout #order_review .shop_table tfoot tr.order-total {
  background: #0a0a0a !important; padding: 14px 24px !important;
}
.woocommerce-checkout #order_review .shop_table tfoot tr.order-total th {
  color: #fff !important; font-size: 14px; font-weight: 700;
  letter-spacing: 1.5px; text-transform: uppercase;
}
.woocommerce-checkout #order_review .shop_table tfoot tr.order-total td {
  color: var(--villar-red) !important; font-size: 22px !important; font-weight: 800 !important;
}

/* Payment methods as cards */
.woocommerce-checkout #payment {
  background: transparent !important; border: none !important;
  border-radius: 0 !important; padding: 18px 24px !important;
  border-top: 1px solid #1f1f1f !important;
}
.woocommerce-checkout #payment ul.payment_methods {
  background: transparent !important; border: none !important;
  padding: 0 !important; margin: 0 0 18px !important;
  display: flex; flex-direction: column; gap: 10px;
}
.woocommerce-checkout #payment ul.payment_methods li {
  background: #0a0a0a !important;
  border: 2px solid #1f1f1f !important; border-radius: 6px;
  padding: 14px 16px !important; list-style: none; margin: 0 !important;
  transition: border-color .2s, background .2s;
  position: relative;
}
.woocommerce-checkout #payment ul.payment_methods li:has(input:checked),
.woocommerce-checkout #payment ul.payment_methods li.checked {
  border-color: var(--villar-red) !important;
  background: linear-gradient(180deg, rgba(230,0,35,.06) 0%, transparent 100%) !important;
}
.woocommerce-checkout #payment ul.payment_methods li input[type="radio"] {
  position: absolute; opacity: 0; pointer-events: none;
}
.woocommerce-checkout #payment ul.payment_methods li label {
  display: flex !important; align-items: center; gap: 12px;
  cursor: pointer; padding: 0 !important; margin: 0 !important;
  font-weight: 700; font-size: 13px; letter-spacing: .8px;
  text-transform: uppercase; color: #fff !important;
  width: 100%;
}
.woocommerce-checkout #payment ul.payment_methods li label::before {
  content: ""; width: 18px; height: 18px; border-radius: 50%;
  border: 2px solid #555; flex-shrink: 0; transition: all .2s;
  position: relative;
}
.woocommerce-checkout #payment ul.payment_methods li:has(input:checked) label::before,
.woocommerce-checkout #payment ul.payment_methods li.checked label::before {
  border-color: var(--villar-red);
  box-shadow: inset 0 0 0 4px var(--villar-red);
}
.woocommerce-checkout #payment ul.payment_methods li img {
  max-height: 22px; width: auto; margin-left: auto !important; float: none !important;
}
.woocommerce-checkout #payment div.payment_box {
  background: rgba(0,0,0,.3) !important; color: var(--villar-text-mute) !important;
  border-radius: 4px; padding: 12px 14px !important; margin: 12px 0 0 !important;
  font-size: 12px; line-height: 1.5;
}
.woocommerce-checkout #payment div.payment_box::before {
  display: none !important;
}

/* Terms checkbox + place order */
.woocommerce-checkout #payment .woocommerce-terms-and-conditions-wrapper {
  margin: 14px 0; font-size: 12px; color: var(--villar-text-mute);
}
.woocommerce-checkout #payment .form-row.place-order { padding: 0 !important; margin: 14px 0 0 !important; }
.woocommerce-checkout #payment #place_order {
  background: var(--villar-red) !important; color: #fff !important;
  padding: 16px 24px !important; font-weight: 700 !important; letter-spacing: 2px;
  text-transform: uppercase; text-align: center; border-radius: 4px;
  font-size: 13px; width: 100%; display: block; margin: 0 !important;
  border: none !important; cursor: pointer; transition: all .2s;
}
.woocommerce-checkout #payment #place_order:hover {
  background: var(--villar-red-hover) !important;
  box-shadow: 0 8px 22px rgba(230,0,35,.4);
  transform: translateY(-1px);
}

/* Secure checkout badge below place order */
.villar-checkout-trust {
  background: var(--villar-bg-2); border: 1px solid #222;
  border-radius: var(--villar-radius); padding: 18px 22px;
  display: flex; flex-direction: column; gap: 12px;
  font-size: 12px;
}
.villar-checkout-trust__row {
  display: flex; align-items: center; gap: 12px; color: var(--villar-text-mute);
}
.villar-checkout-trust__row svg { width: 20px; height: 20px; stroke: var(--villar-red); fill: none; flex-shrink: 0; stroke-width: 1.7; }
.villar-checkout-trust__row strong { color: #fff; }

/* Coupon link above form */
.woocommerce-checkout .woocommerce-form-coupon-toggle .woocommerce-info {
  background: rgba(230,0,35,.06) !important;
  border: 1px dashed rgba(230,0,35,.3) !important;
  border-top: 1px dashed rgba(230,0,35,.3) !important;
  color: #fff !important; padding: 12px 16px !important;
  border-radius: 4px;
}
.woocommerce-checkout .woocommerce-form-coupon {
  background: var(--villar-bg-2); padding: 16px;
  border: 1px solid #222; border-radius: var(--villar-radius); margin-bottom: 18px;
}
.woocommerce-checkout .woocommerce-form-coupon p { margin: 0 0 10px; color: var(--villar-text-mute); font-size: 13px; }
.woocommerce-checkout .woocommerce-form-coupon .form-row-first { display: inline-block; width: calc(100% - 130px) !important; }
.woocommerce-checkout .woocommerce-form-coupon .form-row-last { display: inline-block; width: 120px !important; vertical-align: middle; margin-left: 8px !important; }
.woocommerce-checkout .woocommerce-form-coupon button {
  background: var(--villar-red) !important; color: #fff !important;
  padding: 11px 16px !important; font-size: 11px !important; letter-spacing: 1.5px;
  font-weight: 700; text-transform: uppercase; border-radius: 4px !important;
  width: 100%;
}

/* Login form on checkout */
.woocommerce-checkout .woocommerce-form-login-toggle .woocommerce-info,
.woocommerce-checkout .woocommerce-form-login {
  background: var(--villar-bg-2) !important; color: #fff !important;
  border-top: 3px solid var(--villar-red) !important;
}

/* Notices */
.woocommerce-info, .woocommerce-message, .woocommerce-error {
  background: var(--villar-bg-2) !important; color: #fff !important;
  border-top: 3px solid var(--villar-red) !important;
  padding: 14px 20px !important;
}
.woocommerce-info::before, .woocommerce-message::before, .woocommerce-error::before { color: var(--villar-red) !important; }
.woocommerce-info a, .woocommerce-message a, .woocommerce-error a { color: var(--villar-red) !important; }

@media (max-width: 980px) {
  .woocommerce-checkout form.checkout { grid-template-columns: 1fr !important; }
  .woocommerce-checkout .woocommerce-checkout-review-order { position: relative; top: 0; }
  .woocommerce-checkout .woocommerce-billing-fields__field-wrapper { grid-template-columns: 1fr; }
  .woocommerce-checkout .form-row-first, .woocommerce-checkout .form-row-last { grid-column: 1 / -1; }
}

/* ====================================================
   MY ACCOUNT
==================================================== */
.woocommerce-account .villar-wc__inner { grid-template-columns: 240px 1fr; }
.woocommerce-account .woocommerce-MyAccount-navigation {
  width: auto !important; float: none !important; padding: 0 !important;
}
.woocommerce-account .woocommerce-MyAccount-navigation ul {
  list-style: none; padding: 0; margin: 0;
  background: var(--villar-bg-2); border-radius: var(--villar-radius); border: 1px solid #222; overflow: hidden;
}
.woocommerce-account .woocommerce-MyAccount-navigation ul li { border-bottom: 1px solid #222; }
.woocommerce-account .woocommerce-MyAccount-navigation ul li:last-child { border-bottom: none; }
.woocommerce-account .woocommerce-MyAccount-navigation ul li a {
  display: block; padding: 14px 18px; color: #ccc; font-size: 13px;
  font-weight: 700; letter-spacing: 1px; text-transform: uppercase;
}
.woocommerce-account .woocommerce-MyAccount-navigation ul li.is-active a,
.woocommerce-account .woocommerce-MyAccount-navigation ul li a:hover {
  color: #fff; background: var(--villar-red);
}
.woocommerce-account .woocommerce-MyAccount-content {
  width: auto !important; float: none !important;
  background: var(--villar-bg-2); padding: 28px; border-radius: var(--villar-radius); border: 1px solid #222;
}
.woocommerce-account .woocommerce-MyAccount-content p { color: #d0d0d0; }
.woocommerce-account .woocommerce-MyAccount-content a { color: var(--villar-red); }

/* Login / register forms */
.woocommerce-account .u-columns > .u-column1,
.woocommerce-account .u-columns > .u-column2 {
  width: 100% !important; max-width: 460px; margin: 0 auto; float: none !important;
}
.woocommerce-form-login, .woocommerce-form-register {
  background: var(--villar-bg-2); padding: 28px; border-radius: var(--villar-radius); border: 1px solid #222; color: #fff;
}
.woocommerce-form-login button, .woocommerce-form-register button {
  background: var(--villar-red) !important; color: #fff !important;
  padding: 12px 24px !important; font-weight: 700; letter-spacing: 2px; text-transform: uppercase;
}
.lost_password a { color: var(--villar-red); }

/* ====================================================
   GENERAL HELPERS
==================================================== */
.villar-search-bar {
  position: fixed; top: 0; left: 0; right: 0; padding: 24px;
  background: rgba(0,0,0,.95); z-index: 100; transform: translateY(-100%);
  transition: transform .25s ease; backdrop-filter: blur(8px);
}
body.villar-search-open .villar-search-bar { transform: translateY(0); }
.villar-search-bar form { display: flex; max-width: 720px; margin: 0 auto; }
.villar-search-bar input {
  flex: 1; background: transparent; border: none; border-bottom: 2px solid var(--villar-red);
  color: #fff; padding: 14px 0; font-size: 18px; outline: none;
}
.villar-search-bar input::placeholder { color: #999; }
.villar-search-bar button {
  background: var(--villar-red); color: #fff; padding: 10px 24px;
  font-size: 12px; letter-spacing: 2px; text-transform: uppercase; font-weight: 700;
  border-radius: 4px;
}

/* ====================================================
   SIDE CART DRAWER
==================================================== */
.villar-cart-drawer-backdrop {
  position: fixed; inset: 0; z-index: 200;
  background: rgba(0, 0, 0, .6);
  opacity: 0; visibility: hidden;
  transition: opacity .25s ease, visibility .25s ease;
  backdrop-filter: blur(2px);
}
body.villar-cart-open .villar-cart-drawer-backdrop {
  opacity: 1; visibility: visible;
}

.villar-cart-drawer {
  position: fixed; top: 0; right: 0; bottom: 0;
  width: 420px; max-width: 92vw;
  background: #0f0f0f;
  border-left: 1px solid #1a1a1a;
  z-index: 210;
  transform: translateX(100%);
  transition: transform .35s cubic-bezier(.22,.61,.36,1);
  display: flex; flex-direction: column;
  box-shadow: -20px 0 50px rgba(0,0,0,.5);
  color: #fff;
}
body.villar-cart-open .villar-cart-drawer { transform: translateX(0); }
body.villar-cart-open { overflow: hidden; }

.villar-cart-drawer__head {
  display: flex; justify-content: space-between; align-items: center;
  padding: 22px 24px; border-bottom: 1px solid #1f1f1f;
  background: linear-gradient(180deg, #1a1a1a 0%, #0f0f0f 100%);
}
.villar-cart-drawer__head h3 {
  margin: 0; font-family: "Oswald", var(--villar-font-display);
  font-size: 18px; font-weight: 700; letter-spacing: 3px; text-transform: uppercase;
  display: inline-flex; align-items: center; gap: 12px;
}
.villar-cart-drawer__head h3::before {
  content: ""; width: 4px; height: 18px; background: var(--villar-red);
}
.villar-cart-drawer__close {
  width: 36px; height: 36px; border-radius: 50%;
  background: #1a1a1a; color: #fff;
  font-size: 26px; line-height: 1; cursor: pointer;
  display: inline-flex; align-items: center; justify-content: center;
  transition: background .2s;
}
.villar-cart-drawer__close:hover { background: var(--villar-red); }

.villar-cart-drawer__body {
  flex: 1; overflow-y: auto; padding: 0;
  scrollbar-width: thin; scrollbar-color: #333 transparent;
}
.villar-cart-drawer__body::-webkit-scrollbar { width: 6px; }
.villar-cart-drawer__body::-webkit-scrollbar-thumb { background: #333; border-radius: 3px; }

/* WC mini cart inside drawer */
.villar-cart-drawer__body .woocommerce-mini-cart {
  padding: 12px 22px; list-style: none; margin: 0;
}
.villar-cart-drawer__body .woocommerce-mini-cart__empty-message,
.villar-cart-drawer__body .cart_list.empty,
.villar-cart-drawer__body p:first-child {
  text-align: center; padding: 60px 24px;
  color: var(--villar-text-mute); font-size: 14px;
}
.villar-cart-drawer__body .woocommerce-mini-cart-item,
.villar-cart-drawer__body li.mini_cart_item {
  display: block !important;
  padding: 16px 30px 16px 86px !important;
  border-bottom: 1px solid #1f1f1f !important;
  position: relative;
  margin: 0 !important;
  min-height: 88px;
  list-style: none !important;
}
.villar-cart-drawer__body .woocommerce-mini-cart-item a:not(.remove),
.villar-cart-drawer__body li.mini_cart_item a:not(.remove) {
  color: #fff !important; font-weight: 700; font-size: 12px !important;
  text-transform: uppercase; letter-spacing: .5px;
  line-height: 1.3; padding: 0 !important;
  display: block;
  text-decoration: none;
}
.villar-cart-drawer__body .woocommerce-mini-cart-item a:not(.remove):hover,
.villar-cart-drawer__body li.mini_cart_item a:not(.remove):hover { color: var(--villar-red) !important; }
.villar-cart-drawer__body .woocommerce-mini-cart-item img,
.villar-cart-drawer__body li.mini_cart_item img {
  position: absolute !important;
  top: 16px; left: 0;
  width: 70px !important; height: 70px !important;
  object-fit: cover; border-radius: 4px;
  margin: 0 !important; padding: 0 !important;
  float: none !important;
  background: #fafafa;
}
.villar-cart-drawer__body li.mini_cart_item .quantity {
  display: block; color: var(--villar-red) !important;
  font-size: 13px; font-weight: 700; margin-top: 6px;
}
.villar-cart-drawer__body li.mini_cart_item .quantity .amount {
  color: var(--villar-red) !important;
}
.villar-cart-drawer__body li.mini_cart_item .quantity .woocommerce-Price-amount { color: var(--villar-red) !important; }
.villar-cart-drawer__body a.remove,
.villar-cart-drawer__body a.remove_from_cart_button {
  position: absolute !important;
  top: 14px; right: 0;
  width: 24px; height: 24px;
  border-radius: 50%;
  background: #1a1a1a !important;
  color: #ccc !important;
  font-size: 16px !important; line-height: 22px !important;
  text-align: center; display: inline-flex !important;
  align-items: center; justify-content: center;
  text-decoration: none !important;
  transition: all .2s;
}
.villar-cart-drawer__body a.remove:hover,
.villar-cart-drawer__body a.remove_from_cart_button:hover {
  background: var(--villar-red) !important; color: #fff !important;
}

.villar-cart-drawer__body .woocommerce-mini-cart__total,
.villar-cart-drawer__body p.woocommerce-mini-cart__total {
  display: flex; justify-content: space-between; align-items: center;
  padding: 18px 22px !important; margin: 0 !important;
  background: #0a0a0a;
  border-top: 1px solid #1f1f1f;
  font-size: 14px; letter-spacing: 1px;
  text-transform: uppercase; color: #fff; font-weight: 700;
}
.villar-cart-drawer__body .woocommerce-mini-cart__total strong {
  color: #fff; font-weight: 700;
}
.villar-cart-drawer__body .woocommerce-mini-cart__total .amount,
.villar-cart-drawer__body .woocommerce-mini-cart__total .woocommerce-Price-amount {
  color: var(--villar-red) !important;
  font-size: 22px !important; font-weight: 800 !important;
  font-family: var(--villar-font);
}

.villar-cart-drawer__body .woocommerce-mini-cart__buttons,
.villar-cart-drawer__body p.woocommerce-mini-cart__buttons,
.villar-cart-drawer__body .buttons {
  display: flex !important;
  flex-direction: column !important;
  flex-wrap: nowrap !important;
  gap: 10px !important;
  padding: 18px 22px 24px !important; margin: 0 !important;
  background: #0a0a0a;
  border-top: 1px solid #1f1f1f;
  width: 100%;
}
.villar-cart-drawer__body .woocommerce-mini-cart__buttons a,
.villar-cart-drawer__body .woocommerce-mini-cart__buttons a.button,
.villar-cart-drawer__body .woocommerce-mini-cart__buttons .button,
.villar-cart-drawer__body .buttons a,
.villar-cart-drawer__body .buttons .button {
  display: block !important;
  width: 100% !important;
  flex: 0 0 auto !important;
  padding: 14px 20px !important;
  font-size: 13px !important; font-weight: 700 !important;
  letter-spacing: 2px !important; text-transform: uppercase;
  text-align: center !important;
  border-radius: 4px !important; margin: 0 !important;
  box-sizing: border-box;
  transition: all .2s;
  text-decoration: none;
}
/* Checkout = solid red (first/top) */
.villar-cart-drawer__body .woocommerce-mini-cart__buttons a.checkout,
.villar-cart-drawer__body .buttons a.checkout {
  background: var(--villar-red) !important;
  color: #fff !important;
  border: 2px solid var(--villar-red) !important;
  order: 1;
}
.villar-cart-drawer__body .woocommerce-mini-cart__buttons a.checkout:hover,
.villar-cart-drawer__body .buttons a.checkout:hover {
  background: var(--villar-red-hover) !important;
  border-color: var(--villar-red-hover) !important;
  color: #fff !important;
}
/* View cart = ghost outline (second/bottom) */
.villar-cart-drawer__body .woocommerce-mini-cart__buttons a:not(.checkout),
.villar-cart-drawer__body .buttons a:not(.checkout) {
  background: transparent !important;
  color: #fff !important;
  border: 2px solid rgba(255,255,255,.3) !important;
  order: 2;
}
.villar-cart-drawer__body .woocommerce-mini-cart__buttons a:not(.checkout):hover,
.villar-cart-drawer__body .buttons a:not(.checkout):hover {
  background: rgba(255,255,255,.06) !important;
  border-color: #fff !important;
  color: #fff !important;
}

/* Empty state */
.villar-cart-drawer__body .cart_list li.empty,
.villar-cart-drawer__body p.woocommerce-mini-cart__empty-message {
  padding: 80px 24px !important; text-align: center;
  color: var(--villar-text-mute); font-size: 14px;
  border: none !important;
}
.villar-cart-drawer__body .woocommerce-mini-cart__buttons:empty,
.villar-cart-drawer__body .woocommerce-mini-cart__total:empty { display: none !important; }

@media (max-width: 520px) {
  .villar-cart-drawer { width: 100vw; max-width: 100vw; }
}

/* WP default search results */
.search-results .villar-search-results { padding: 40px 24px; max-width: var(--villar-shell); margin: 0 auto; }
.search-results .villar-search-results article {
  border-bottom: 1px solid #222; padding: 18px 0; color: #fff;
}
.search-results .villar-search-results article a { color: var(--villar-red); }

@media (max-width: 880px) {
  .villar-wc__inner { grid-template-columns: 1fr !important; }
  .villar-wc-sidebar { position: relative; top: 0; }
  .villar-wc .products, .woocommerce ul.products.columns-4 { grid-template-columns: repeat(2, 1fr) !important; }
}
