/* ============================================================
   EireSafe — WooCommerce brand skin
   ------------------------------------------------------------
   Paste into: Appearance → Customise → Additional CSS
   (or your child theme's style.css)

   Restyles Shop archives, single product, cart, checkout and
   account pages to the EireSafe identity: deep green, orange
   accents, Oswald headings, Barlow body.

   Everything is scoped under WooCommerce's own classes, so it
   cannot leak into the rest of the site.
   ============================================================ */

@import url('https://fonts.googleapis.com/css2?family=Anton&family=Oswald:wght@300;400;500;600&family=Barlow:ital,wght@0,400;0,500;0,600;0,700;1,400&display=swap');

:root {
  --es-green: #004D2C;
  --es-green-dark: #003620;
  --es-green-mid: #00603a;
  --es-green-pale: #e8f2ed;
  --es-orange: #F8991D;
  --es-orange-dk: #e08410;
  --es-off-white: #F7F8F6;
  --es-white: #fff;
  --es-text: #444;
  --es-muted: #666;
  --es-border: #E2E5E0;
  --es-radius: 8px;
}

/* ---------- Typography ---------- */
.woocommerce h1,
.woocommerce h2,
.woocommerce h3,
.woocommerce .product_title,
.woocommerce div.product .woocommerce-tabs h2,
.woocommerce-account h2,
.woocommerce-cart h2,
.woocommerce-checkout h2,
.woocommerce-checkout h3 {
  font-family: 'Oswald', sans-serif !important;
  text-transform: uppercase;
  letter-spacing: .02em;
  color: var(--es-green);
}
.woocommerce .product_title { font-family: 'Anton', sans-serif !important; font-weight: 400; color: var(--es-green-dark); }
.woocommerce, .woocommerce p, .woocommerce li, .woocommerce label,
.woocommerce .woocommerce-breadcrumb, .woocommerce table { font-family: 'Barlow', sans-serif; }

/* ---------- Buttons ---------- */
.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button,
.woocommerce #respond input#submit,
.woocommerce a.button.alt,
.woocommerce button.button.alt,
.woocommerce input.button.alt,
.woocommerce .single_add_to_cart_button,
.woocommerce #place_order,
.woocommerce .checkout-button,
.woocommerce .cart .button,
.woocommerce .cart input.button {
  background: var(--es-orange) !important;
  color: #fff !important;
  border: none !important;
  border-radius: var(--es-radius) !important;
  font-family: 'Oswald', sans-serif !important;
  font-size: 15px !important;
  font-weight: 400 !important;
  letter-spacing: .08em;
  text-transform: uppercase;
  padding: 13px 28px !important;
  transition: background .2s ease, transform .15s ease;
}
.woocommerce a.button:hover,
.woocommerce button.button:hover,
.woocommerce input.button:hover,
.woocommerce .single_add_to_cart_button:hover,
.woocommerce #place_order:hover,
.woocommerce .checkout-button:hover {
  background: var(--es-orange-dk) !important;
  transform: translateY(-1px);
}
.woocommerce a.button.secondary,
.woocommerce button.button.secondary,
.woocommerce .cart .button[type="submit"],
.woocommerce .button.wc-backward,
.woocommerce .woocommerce-form-login .button,
.woocommerce .woocommerce-form-register .button {
  background: var(--es-green) !important;
}
.woocommerce a.button.secondary:hover,
.woocommerce .cart .button[type="submit"]:hover { background: var(--es-green-dark) !important; }
.woocommerce #place_order { width: 100%; font-size: 16px !important; padding: 16px 28px !important; }

/* ---------- Prices & badges ---------- */
.woocommerce .price, .woocommerce div.product p.price,
.woocommerce div.product span.price {
  font-family: 'Barlow', sans-serif !important;
  font-weight: 700;
  color: var(--es-green) !important;
  font-size: 1.3em;
}
.woocommerce del { color: #999 !important; font-weight: 400; }
.woocommerce ins { text-decoration: none; }
.woocommerce span.onsale {
  background: var(--es-orange) !important;
  border-radius: 50%;
  font-family: 'Oswald', sans-serif;
  text-transform: uppercase;
  letter-spacing: .04em;
  min-height: 44px; min-width: 44px;
  line-height: 44px;
}

/* ---------- Product grids (shop + related) ---------- */
.woocommerce ul.products li.product {
  background: var(--es-white);
  border: 1px solid var(--es-border);
  border-radius: 16px;
  overflow: hidden;
  padding: 0 0 18px !important;
  transition: transform .2s ease, box-shadow .2s ease;
}
.woocommerce ul.products li.product:hover {
  transform: translateY(-3px);
  box-shadow: 0 12px 30px rgba(0,0,0,.09);
}
.woocommerce ul.products li.product .woocommerce-loop-product__title {
  font-family: 'Oswald', sans-serif !important;
  font-size: 14px !important;
  font-weight: 400;
  text-transform: uppercase;
  color: var(--es-green) !important;
  padding: 14px 16px 0 !important;
  line-height: 1.4;
}
.woocommerce ul.products li.product .price {
  font-size: 1.05em !important;
  padding: 6px 16px 0;
}
/* Card CTAs: the "Add to cart" / "Request a quote" button sits directly
   above "Add to quote" and shares its exact width, height and shape. */
body.woocommerce ul.products li.product .button,
body.woocommerce ul.products li.product .es-add-quote {
  display: flex !important;
  align-items: center;
  justify-content: center;
  width: calc(100% - 32px) !important;
  min-height: 44px !important;
  box-sizing: border-box !important;
  margin: 10px 16px 0 !important;
  padding: 10px 14px !important;
  border-radius: 8px !important;
  font-family: 'Oswald', sans-serif !important;
  font-size: 11.5px !important;
  font-weight: 400 !important;
  line-height: 1.5 !important;
  letter-spacing: .08em !important;
  text-transform: uppercase;
  text-align: center;
}
body.woocommerce ul.products li.product .button {
  border: 1px solid transparent !important;
}
.woocommerce ul.products li.product img { border-radius: 0; aspect-ratio: 1/1; object-fit: contain; background: var(--es-off-white); padding: 10px; }

/* ---------- Single product ---------- */
.woocommerce div.product .product_title { font-size: clamp(26px, 3.4vw, 40px); line-height: 1.05; margin-bottom: 8px; }
.woocommerce div.product p.price { margin: 10px 0 16px; }
.woocommerce div.product .woocommerce-product-details__short-description {
  color: var(--es-muted);
  font-size: 15px;
  line-height: 1.7;
  margin-bottom: 20px;
}
.woocommerce div.product form.cart {
  border-top: 1px solid var(--es-border);
  padding-top: 20px;
  display: flex;
  align-items: center;
  gap: 12px;
  flex-wrap: wrap;
}
.woocommerce div.product form.cart .quantity .qty {
  width: 76px !important;
  border: 1px solid var(--es-border) !important;
  border-radius: var(--es-radius);
  padding: 12px 8px !important;
  font-family: 'Oswald', sans-serif;
  font-size: 16px;
  text-align: center;
}
.woocommerce div.product form.cart .single_add_to_cart_button { flex: 1; min-width: 200px; padding: 15px 28px !important; }
.woocommerce div.product .product_meta { margin-top: 16px; font-size: 13px; color: var(--es-muted); }
.woocommerce div.product .product_meta a { color: var(--es-green); }
.woocommerce div.product .woocommerce-tabs ul.tabs { padding: 0 !important; margin-bottom: 0 !important; }
.woocommerce div.product .woocommerce-tabs ul.tabs::before { border-color: var(--es-border); }
.woocommerce div.product .woocommerce-tabs ul.tabs li {
  background: transparent !important;
  border: none !important;
  border-radius: 0 !important;
  margin: 0 6px 0 0 !important;
  padding: 0 !important;
}
.woocommerce div.product .woocommerce-tabs ul.tabs li a {
  font-family: 'Oswald', sans-serif !important;
  text-transform: uppercase;
  letter-spacing: .06em;
  font-size: 13px;
  color: var(--es-muted) !important;
  padding: 10px 16px !important;
  border-bottom: 3px solid transparent;
}
.woocommerce div.product .woocommerce-tabs ul.tabs li.active a {
  color: var(--es-green) !important;
  border-bottom-color: var(--es-orange);
}
.woocommerce div.product .woocommerce-tabs .panel {
  border: 1px solid var(--es-border);
  border-radius: 0 12px 12px 12px;
  padding: 24px !important;
  font-size: 15px;
  color: var(--es-text);
}
.woocommerce div.product .related > h2 { font-size: 22px; margin: 28px 0 16px; }

/* ---------- Cart ---------- */
.woocommerce-cart table.shop_table,
.woocommerce-checkout table.shop_table,
.woocommerce-account table.shop_table {
  border: 1px solid var(--es-border) !important;
  border-radius: 12px;
  overflow: hidden;
}
.woocommerce table.shop_table th {
  background: var(--es-green-pale);
  font-family: 'Oswald', sans-serif;
  text-transform: uppercase;
  font-size: 12px;
  letter-spacing: .08em;
  color: var(--es-green);
}
.woocommerce table.shop_table td { font-size: 15px; }
.woocommerce-cart .cart-collaterals .cart_totals {
  border: 1px solid var(--es-border);
  border-radius: 12px;
  overflow: hidden;
}
.woocommerce-cart .cart-collaterals .cart_totals > h2 {
  background: var(--es-green);
  color: #fff;
  font-size: 16px;
  margin: 0;
  padding: 14px 20px;
}
.woocommerce-cart .cart-collaterals .cart_totals table { margin: 0 !important; }
.woocommerce-cart .cart-collaterals .cart_totals table td,
.woocommerce-cart .cart-collaterals .cart_totals table th { padding: 14px 20px !important; }
.woocommerce .cart_totals .order-total .amount { color: var(--es-green); font-weight: 700; }

/* ---------- Checkout ---------- */
.woocommerce-checkout .col2-set .col-1,
.woocommerce-checkout .col2-set .col-2 { border: 0; }
.woocommerce form .form-row input.input-text,
.woocommerce form .form-row textarea,
.woocommerce form .form-row select,
.woocommerce .select2-container .select2-selection {
  border: 1px solid var(--es-border) !important;
  border-radius: var(--es-radius) !important;
  padding: 12px 14px !important;
  font-family: 'Barlow', sans-serif;
  font-size: 15px !important;
  background: #fff;
}
.woocommerce form .form-row input.input-text:focus { border-color: var(--es-orange) !important; outline: none; }
.woocommerce-checkout #order_review {
  border: 1px solid var(--es-border);
  border-radius: 12px;
  overflow: hidden;
  background: #fff;
}
.woocommerce-checkout #order_review_heading { font-size: 16px; background: var(--es-green); color: #fff !important; margin: 0; padding: 14px 20px; }
.woocommerce-checkout #payment {
  background: #fff !important;
  border-radius: 0 !important;
}
.woocommerce-checkout #payment div.payment_box { background: var(--es-off-white) !important; border-radius: 8px; }
.woocommerce-checkout #payment div.payment_box::before { display: none; }

/* ---------- Notices ---------- */
.woocommerce-message,
.woocommerce-info,
.woocommerce-error {
  border-radius: 10px;
  font-family: 'Barlow', sans-serif;
  border-top-width: 3px;
}
.woocommerce-message { border-top-color: var(--es-green); background: var(--es-green-pale); color: var(--es-green-dark); }
.woocommerce-info { border-top-color: var(--es-orange); }

/* ---------- Breadcrumb ---------- */
.woocommerce .woocommerce-breadcrumb {
  font-size: 12px;
  letter-spacing: .04em;
  color: var(--es-muted);
  padding: 0 0 12px;
}
.woocommerce .woocommerce-breadcrumb a { color: var(--es-green); }

/* ---------- Account ---------- */
.woocommerce-account .woocommerce-MyAccount-navigation ul li a {
  font-family: 'Oswald', sans-serif;
  text-transform: uppercase;
  font-size: 13px;
  letter-spacing: .05em;
}
.woocommerce-account .woocommerce-MyAccount-navigation ul li.is-active a { color: var(--es-green); }

/* ---------- Trust row added under Add to Cart (PHP snippet) ---------- */
.es-woo-trust {
  display: flex;
  flex-wrap: wrap;
  gap: 10px 22px;
  margin: 18px 0 4px;
  padding: 14px 16px;
  background: var(--es-off-white, #F7F8F6);
  border: 1px solid var(--es-border, #E2E5E0);
  border-radius: 10px;
  list-style: none;
}
.es-woo-trust li {
  display: flex; align-items: center; gap: 7px;
  font-family: 'Barlow', sans-serif; font-size: 13px; color: #555;
}
.es-woo-trust li i { color: var(--es-orange, #F8991D); font-size: 14px; }
.es-woo-advice {
  margin-top: 14px;
  font-family: 'Barlow', sans-serif;
  font-size: 14px;
  color: #666;
}
.es-woo-advice a { color: var(--es-green, #004D2C); font-weight: 600; }

/* ---------- Mobile ---------- */
@media (max-width: 768px) {
  .woocommerce ul.products li.product .woocommerce-loop-product__title { font-size: 12px !important; }
  .woocommerce div.product form.cart .single_add_to_cart_button { width: 100%; }
  .woocommerce table.shop_table_responsive tr td, .woocommerce-page table.shop_table_responsive tr td { font-size: 14px; }
  .es-woo-trust { gap: 8px 14px; }
}

/* ============================================================
   V2 — full page design: shop hero, product layout,
   cart page, checkout page, order received
   ============================================================ */

/* ---------- Branded hero band (injected by woocommerce-skin.php) ---------- */
.es-woo-hero{
  background:linear-gradient(135deg,#003820 0%,#004D2C 55%,#00603a 100%);
  color:#fff;padding:64px 24px 58px;margin:0 0 44px;position:relative;overflow:hidden;
}
.es-woo-hero::before{
  content:'';position:absolute;inset:0;pointer-events:none;
  background-image:repeating-linear-gradient(-45deg,rgba(255,255,255,.02) 0px,rgba(255,255,255,.02) 1px,transparent 1px,transparent 40px);
}
.es-woo-hero-inner{position:relative;z-index:1;max-width:1200px;margin:0 auto;}
.es-woo-hero .es-eyebrow{
  font-family:'Oswald',sans-serif;font-size:11px;letter-spacing:.14em;text-transform:uppercase;
  color:#F8991D;display:inline-flex;align-items:center;gap:10px;margin-bottom:12px;
}
.es-woo-hero .es-eyebrow::before{content:'';width:26px;height:2px;background:#F8991D;display:inline-block;}
.es-woo-hero h1{
  font-family:'Anton',sans-serif !important;font-weight:400;text-transform:uppercase;
  font-size:clamp(30px,4.6vw,54px);line-height:1.05;color:#fff;margin:0 0 12px;
}
.es-woo-hero p{font-family:'Oswald',sans-serif;font-weight:300;font-size:16px;line-height:1.7;color:rgba(255,255,255,.72);max-width:640px;margin:0 0 18px;}
.es-woo-hero ul{display:flex;flex-wrap:wrap;gap:8px 24px;list-style:none;margin:0;padding:0;}
.es-woo-hero li{font-family:'Barlow',sans-serif;font-size:13.5px;color:rgba(255,255,255,.85);display:flex;align-items:center;gap:8px;}
.es-woo-hero li i{color:#F8991D;font-size:12px;}

/* ---------- Single product page ---------- */
.woocommerce div.product{max-width:1200px;margin:0 auto;}
.woocommerce div.product div.images{background:#fff;border:1px solid var(--es-border);border-radius:16px;padding:18px;}
.woocommerce div.product div.images .flex-control-thumbs{gap:8px;display:flex;flex-wrap:wrap;margin-top:10px;}
.woocommerce div.product div.images .flex-control-thumbs li{width:70px !important;border-radius:8px;overflow:hidden;border:1px solid var(--es-border);}
.woocommerce div.product .summary{padding-top:4px;}
.woocommerce div.product .price{font-size:1.6em !important;}
.woocommerce div.product .woocommerce-review-link{font-size:13px;color:var(--es-muted);}
.woocommerce div.product .product_meta{padding-top:14px;border-top:1px solid var(--es-border);}
.woocommerce div.product .stock.in-stock{color:var(--es-green);font-weight:600;font-family:'Barlow',sans-serif;}
.woocommerce div.product .related ul.products{margin-top:8px;}

/* payment / delivery strip under add-to-cart */
.es-woo-paystrip{display:flex;flex-wrap:wrap;gap:10px 20px;margin:12px 0 0;padding:0;list-style:none;}
.es-woo-paystrip li{font-family:'Barlow',sans-serif;font-size:12.5px;color:#666;display:flex;align-items:center;gap:7px;}
.es-woo-paystrip i{color:var(--es-green);}

/* ---------- Cart page ---------- */
body.woocommerce-cart .woocommerce{max-width:1200px;margin:0 auto;}
/* Cart layout: 2 columns, generous totals card */
body.woocommerce-cart .woocommerce{
  display:grid !important;
  grid-template-columns:minmax(0,1fr) minmax(400px,440px) !important;
  gap:0 36px !important;
  align-items:start !important;
}
body.woocommerce-cart .woocommerce > *{grid-column:1 / -1;}
body.woocommerce-cart .woocommerce > .woocommerce-cart-form{grid-column:1 !important;float:none !important;width:auto !important;margin:0 !important;}
body.woocommerce-cart .woocommerce > .cart-collaterals{grid-column:2 !important;float:none !important;width:100% !important;min-width:400px !important;margin:0 !important;}
@media (min-width:1000px){
  body.woocommerce-cart .cart-collaterals{position:sticky;top:96px;}
}
@media (max-width:999px){
  body.woocommerce-cart .woocommerce{grid-template-columns:1fr;gap:0;}
  body.woocommerce-cart .cart-collaterals{margin-top:26px !important;}
}
.woocommerce table.cart img{width:84px;border-radius:10px;background:var(--es-off-white);padding:6px;}
.woocommerce table.cart td.product-name a{font-family:'Oswald',sans-serif;font-size:15px;text-transform:uppercase;color:var(--es-green);}
.woocommerce table.cart td.product-price,
.woocommerce table.cart td.product-subtotal{font-family:'Barlow',sans-serif;font-weight:600;color:var(--es-green-dark);}
.woocommerce .cart .quantity .qty{width:72px;border:1px solid var(--es-border);border-radius:8px;padding:10px 6px;text-align:center;font-family:'Oswald',sans-serif;}
.woocommerce table.cart td.actions{padding:16px !important;}
.woocommerce table.cart td.actions .coupon .input-text{width:180px;border:1px solid var(--es-border);border-radius:8px;padding:11px 14px;font-size:14px;}
.woocommerce .cart_totals .wc-proceed-to-checkout a{font-size:16px !important;padding:16px 24px !important;}

/* free delivery progress (injected by PHP) */
.es-freeship{margin:0 0 22px;padding:18px 22px;background:#fff;border:1px solid var(--es-border);border-radius:12px;font-family:'Barlow',sans-serif;font-size:14px;color:#555;}
.es-freeship strong{color:var(--es-green);font-weight:600;}
.es-freeship-bar{height:8px;background:var(--es-green-pale);border-radius:99px;margin-top:10px;overflow:hidden;}
.es-freeship-bar span{display:block;height:100%;background:var(--es-orange);border-radius:99px;transition:width .4s ease;}
.es-freeship.done{background:var(--es-green-pale);border-color:#bfe0cc;color:var(--es-green-dark);}

/* cart cross-sells / empty cart */
.woocommerce .cart-empty{font-family:'Oswald',sans-serif;font-size:20px;text-transform:uppercase;color:var(--es-green);background:#fff;border:1px solid var(--es-border);border-radius:12px;padding:40px 24px;text-align:center;}
.woocommerce .return-to-shop .button{margin-top:18px;}

/* ---------- Checkout page ---------- */
body.woocommerce-checkout .woocommerce{max-width:1200px;margin:0 auto;}
body.woocommerce-checkout form.checkout{display:grid;grid-template-columns:1.15fr .85fr;gap:44px;align-items:start;}
body.woocommerce-checkout #customer_details{width:100% !important;float:none !important;}
body.woocommerce-checkout #customer_details .col-1,
body.woocommerce-checkout #customer_details .col-2{width:100% !important;float:none !important;padding:0 !important;}
body.woocommerce-checkout #customer_details h3{
  font-family:'Oswald',sans-serif;font-size:15px;text-transform:uppercase;letter-spacing:.05em;
  color:var(--es-green);margin:0 0 14px;padding-bottom:10px;border-bottom:2px solid var(--es-green-pale);
}
body.woocommerce-checkout #order_review_heading{
  margin:0;padding:16px 22px;background:var(--es-green);color:#fff !important;font-size:15px;
  border-radius:12px 12px 0 0;text-transform:uppercase;letter-spacing:.05em;
}
body.woocommerce-checkout #order_review{
  width:100% !important;float:none !important;border-radius:0 0 12px 12px;position:sticky;top:20px;
}
body.woocommerce-checkout #order_review table.shop_table{margin:0;border:none;}
body.woocommerce-checkout #order_review table.shop_table th,
body.woocommerce-checkout #order_review table.shop_table td{padding:12px 22px;}
body.woocommerce-checkout #order_review .order-total .amount{color:var(--es-green);font-size:1.15em;}
body.woocommerce-checkout #payment{background:#fff !important;}
body.woocommerce-checkout #payment ul.payment_methods{padding:18px 22px;border-bottom:1px solid var(--es-border);}
body.woocommerce-checkout #payment div.form-row{padding:18px 22px;}
body.woocommerce-checkout #place_order{font-size:17px !important;padding:17px 24px !important;}
.es-checkout-trust{display:flex;flex-wrap:wrap;gap:10px 18px;justify-content:center;margin:0 22px 18px;padding:0;list-style:none;}
.es-checkout-trust li{font-family:'Barlow',sans-serif;font-size:12px;color:#666;display:flex;align-items:center;gap:6px;}
.es-checkout-trust i{color:var(--es-green);}

/* ---------- Order received / thank you ---------- */
.woocommerce-order .woocommerce-thankyou-order-received{
  font-family:'Oswald',sans-serif;font-size:20px;text-transform:uppercase;color:var(--es-green);
  background:var(--es-green-pale);border:1px solid #bfe0cc;border-radius:12px;padding:22px 26px;margin-bottom:24px;
}
.woocommerce-order ul.woocommerce-order-overview{border:1px solid var(--es-border);border-radius:12px;padding:16px 20px;margin-bottom:28px;}
.woocommerce-order ul.woocommerce-order-overview li{font-family:'Barlow',sans-serif;font-size:13px;color:#666;border-right:1px solid var(--es-border);}
.woocommerce-order ul.woocommerce-order-overview li strong{display:block;font-family:'Oswald',sans-serif;color:var(--es-green);font-size:15px;margin-top:4px;}

/* ---------- Mobile: single column flows ---------- */
@media (max-width:999px){
  body.woocommerce-checkout form.checkout{grid-template-columns:1fr;gap:0;}
  body.woocommerce-checkout #order_review{position:static;margin-top:26px;}
  body.woocommerce-cart .woocommerce > .woocommerce-cart-form,
  body.woocommerce-cart .woocommerce > .cart-collaterals{float:none;width:100%;}
  .woocommerce-cart .cart-collaterals{margin-top:24px;}
  .es-woo-hero{padding:44px 20px 40px;margin-bottom:32px;}
  .woocommerce div.product div.images{padding:10px;margin-bottom:18px;}
}

/* ---------- V2.1 table + checkout button precision ---------- */
.woocommerce table.cart .product-remove{width:36px;}
.woocommerce table.cart .product-thumbnail{width:104px;}
.woocommerce table.cart .product-thumbnail img{width:84px;height:84px;object-fit:contain;display:block;margin:0 auto;}
.woocommerce table.cart td.product-name{text-align:left;}
.woocommerce table.cart td.product-price,
.woocommerce table.cart td.product-quantity,
.woocommerce table.cart td.product-subtotal{text-align:center;}
.woocommerce .cart_totals .wc-proceed-to-checkout{padding:16px 20px 20px;}
.woocommerce .cart_totals .wc-proceed-to-checkout a{display:block;width:100%;text-align:center;box-sizing:border-box;margin:0;}
.woocommerce .cart_totals table th{text-align:right;padding-right:8px;}
.woocommerce .cart_totals table td{text-align:right;padding-left:8px;}
.woocommerce-cart table.cart td.actions .coupon .input-text{height:44px;}

/* ---------- V2.2 checkout layout (matches real Woo markup) ---------- */
body.woocommerce-checkout form.checkout{
  display:grid;
  grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);
  grid-template-areas:"details reviewhead" "details review";
  gap:0 44px;
  align-items:start;
}
body.woocommerce-checkout #customer_details{grid-area:details;float:none;width:100%;}
body.woocommerce-checkout #customer_details .col2-set{display:block !important;}
body.woocommerce-checkout #customer_details .col-1,
body.woocommerce-checkout #customer_details .col-2{float:none !important;width:100% !important;max-width:100%;}
body.woocommerce-checkout #customer_details .col-2{margin-top:6px;}
body.woocommerce-checkout #order_review_heading{
  grid-area:reviewhead;position:relative;top:auto;margin-bottom:0 !important;border-radius:12px 12px 0 0;
}
body.woocommerce-checkout #order_review{grid-area:review;position:sticky;top:18px;margin-top:0;border-radius:0 0 12px 12px;}

/* form fields: clean stacked labels */
body.woocommerce-checkout .woocommerce form .form-row{
  display:flex;flex-direction:column;gap:6px;margin:0 0 14px !important;padding:0 !important;
}
body.woocommerce-checkout .woocommerce form .form-row label{
  font-family:'Oswald',sans-serif;font-size:11.5px;font-weight:400;
  text-transform:uppercase;letter-spacing:.07em;color:#6a6a6a;margin:0;
}
body.woocommerce-checkout .woocommerce form .form-row input.input-text,
body.woocommerce-checkout .woocommerce form .form-row select,
body.woocommerce-checkout .woocommerce form .form-row textarea,
body.woocommerce-checkout .woocommerce .select2-container{
  width:100% !important;max-width:100%;float:none !important;
}
body.woocommerce-checkout .woocommerce form .form-row.woocommerce-invalid input.input-text,
body.woocommerce-checkout .woocommerce form .form-row.woocommerce-invalid select{border-color:#c0392b !important;}
body.woocommerce-checkout .woocommerce form .form-row.woocommerce-validated input.input-text{border-color:#7ec69a !important;}
body.woocommerce-checkout #order_comments{min-height:90px;}
@media (max-width:999px){
  body.woocommerce-checkout form.checkout{grid-template-columns:1fr;grid-template-areas:"details" "reviewhead" "review";}
  body.woocommerce-checkout #order_review{position:static;}
}

/* ============================================================
   V3 — FunnelKit checkout (wfacp) + payment gateways + polish
   Applies to /checkouts/checkout/ (FunnelKit) as well as the
   standard WooCommerce checkout.
   ============================================================ */

/* ---------- Page shell ---------- */
body.wfacp_checkout-template .wfacp-template-container,
body.wfacp_checkout-template .wfacp_main_form{
  max-width:1200px;margin:0 auto;
}
body.wfacp_checkout-template .wfacp-section{
  background:#fff !important;border:1px solid var(--es-border) !important;border-radius:14px !important;
  padding:24px 26px !important;margin-bottom:20px !important;
}
body.wfacp_checkout-template .wfacp-comm-title h4,
body.wfacp_checkout-template .wfacp-comm-title h2,
body.wfacp_checkout-template .wfacp-section-title,
body.wfacp_checkout-template .wfacp-comm-title span{
  font-family:'Oswald',sans-serif !important;text-transform:uppercase;
  letter-spacing:.05em;font-size:15px !important;color:var(--es-green) !important;
  margin:0 0 10px;padding-bottom:10px;border-bottom:2px solid var(--es-green-pale);
  display:block;
}

/* ---------- Field labels + controls ---------- */
body.wfacp_checkout-template .wfacp-form-control-label,
body.wfacp_checkout-template label.wfacp-form-control-label{
  font-family:'Oswald',sans-serif !important;font-size:11.5px !important;font-weight:400;
  text-transform:uppercase;letter-spacing:.07em;color:#6a6a6a !important;margin-bottom:6px;
}
body.wfacp_checkout-template .wfacp-form-control,
body.wfacp_checkout-template .wfacp-form-control-wrapper input.input-text,
body.wfacp_checkout-template .wfacp-form-control-wrapper select,
body.wfacp_checkout-template .wfacp-form-control-wrapper textarea{
  border:1px solid var(--es-border) !important;border-radius:8px !important;
  padding:12px 14px !important;font-family:'Barlow',sans-serif !important;
  font-size:15px !important;color:var(--es-text) !important;background:#fff !important;
  width:100% !important;box-shadow:none !important;
}
body.wfacp_checkout-template .wfacp-form-control:focus{
  border-color:var(--es-orange) !important;outline:none !important;
  box-shadow:0 0 0 3px rgba(248,153,29,.15) !important;
}
body.wfacp_checkout-template .wfacp-form-control-wrapper{margin-bottom:14px;}

/* ---------- Order summary card ---------- */
body.wfacp_checkout-template .wfacp_order_summary_container,
body.wfacp_checkout-template .wfacp-oder-detail{
  background:#fff !important;border:1px solid var(--es-border) !important;border-radius:14px !important;overflow:hidden;
}
body.wfacp_checkout-template .wfacp-order-summary-label{
  display:block;background:var(--es-green);color:#fff !important;
  font-family:'Oswald',sans-serif !important;text-transform:uppercase;letter-spacing:.05em;
  font-size:14px;padding:14px 20px !important;margin:0 !important;
}
body.wfacp_checkout-template .wfacp_order_summary_container table.shop_table{
  margin:0;border:none;
}
body.wfacp_checkout-template .wfacp_order_summary_container table.shop_table th,
body.wfacp_checkout-template .wfacp_order_summary_container table.shop_table td{
  padding:12px 20px;font-family:'Barlow',sans-serif;
}
body.wfacp_checkout-template .wfacp_order_summary_container .order-total .amount{
  color:var(--es-green);font-size:1.12em;
}
/* sticky on desktop */
@media (min-width:1000px){
  body.wfacp_checkout-template .wfacp-oder-detail,
  body.wfacp_checkout-template .wfacp_order_summary_container{position:sticky;top:20px;}
}

/* ---------- Express / smart payment buttons ---------- */
body.wfacp_checkout-template .wfacp_smart_button_container{
  margin:0 0 18px;padding:14px 16px;background:var(--es-off-white);
  border:1px dashed #cfd8d2;border-radius:10px;
}
body.wfacp_checkout-template .wfacp_smart_button_container #wc-stripe-payment-request-wrapper,
body.wfacp_checkout-template .wfacp_smart_button_container #wcpay-express-checkout-element,
body.wfacp_checkout-template .wfacp_smart_button_container #wcpay-woopay-button,
body.wfacp_checkout-template .wfacp_smart_button_container .wc-stripe-payment-request-button,
body.wfacp_checkout-template .wfacp_smart_button_container .wcpay-express-checkout-button{
  width:100% !important;margin:0 0 8px !important;border-radius:8px !important;
}
body.wfacp_checkout-template .wfacp_smart_button_container::before{
  content:'Express checkout';display:block;font-family:'Oswald',sans-serif;
  font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:#8a8a8a;margin-bottom:8px;
}

/* ---------- Payment methods (Woo / Stripe / WooPayments / FunnelKit) ---------- */
.woocommerce-checkout ul.wc_payment_methods,
body.wfacp_checkout-template ul.wc_payment_methods{
  list-style:none !important;margin:0 !important;padding:18px 20px !important;
  display:flex;flex-direction:column;gap:10px;
}
.woocommerce-checkout ul.wc_payment_methods li.wc_payment_method,
body.wfacp_checkout-template ul.wc_payment_methods li.wc_payment_method{
  border:1px solid var(--es-border);border-radius:10px;padding:14px 16px;
  background:#fff;transition:border-color .2s,box-shadow .2s;
}
.woocommerce-checkout ul.wc_payment_methods li.wc_payment_method:hover,
body.wfacp_checkout-template ul.wc_payment_methods li.wc_payment_method:hover{
  border-color:#bcd6c6;
}
.woocommerce-checkout ul.wc_payment_methods li.wc_payment_method > label,
body.wfacp_checkout-template ul.wc_payment_methods li.wc_payment_method > label{
  font-family:'Oswald',sans-serif !important;font-size:13.5px !important;
  letter-spacing:.04em;text-transform:uppercase;color:var(--es-text) !important;
  display:flex;align-items:center;gap:10px;margin:0 !important;
}
.woocommerce-checkout ul.wc_payment_methods li.wc_payment_method input[type="radio"],
body.wfacp_checkout-template ul.wc_payment_methods li.wc_payment_method input[type="radio"]{
  accent-color:var(--es-green);width:18px;height:18px;margin:0;
}
.woocommerce-checkout #payment div.payment_box,
body.wfacp_checkout-template #payment div.payment_box{
  background:var(--es-off-white) !important;border-radius:8px;
  font-family:'Barlow',sans-serif;font-size:13.5px;color:#5c5c5c;margin-top:12px;
}
.woocommerce-checkout #payment div.payment_box::before,
body.wfacp_checkout-template #payment div.payment_box::before{display:none !important;}
.woocommerce-checkout #payment .woocommerce-terms-and-conditions-wrapper,
body.wfacp_checkout-template #payment .woocommerce-terms-and-conditions-wrapper{
  font-size:13px;color:#666;margin-bottom:14px;
}

/* ---------- Place order ---------- */
body.wfacp_checkout-template .wfacp-order-place-btn-wrap{padding:16px 20px 20px;}
body.wfacp_checkout-template .wfacp-order-place-btn-wrap #place_order,
body.wfacp_checkout-template .wfacp-order-place-btn-wrap .button.alt{
  width:100% !important;font-size:17px !important;padding:17px 24px !important;
  background:var(--es-orange) !important;border-radius:8px !important;
}
body.wfacp_checkout-template .wfacp-order-place-btn-wrap #place_order:hover{background:var(--es-orange-dk) !important;}

/* ---------- Coupon + continue shopping ---------- */
body.wfacp_checkout-template .wfacp-coupon-section{
  margin:0 0 18px;padding:0;border:none;background:none;
}
body.wfacp_checkout-template .wfacp-coupon-page .wfacp_coupon_field_box,
body.wfacp_checkout-template .wfacp-coupon-section .wfacp_coupon_field_box{
  background:#fff;border:1px solid var(--es-border);border-radius:10px;padding:8px 10px;
}
body.wfacp_checkout-template .wfacp-coupon-page .wfacp_coupon_code{
  border:none !important;background:transparent !important;box-shadow:none !important;
  font-family:'Barlow',sans-serif;font-size:14px;padding:8px !important;
}
body.wfacp_checkout-template .wfacp-coupon-page .wfacp-coupon-field-btn{
  background:var(--es-green) !important;color:#fff !important;border-radius:6px !important;
  font-family:'Oswald',sans-serif !important;font-size:12px !important;text-transform:uppercase;
  letter-spacing:.06em;padding:9px 16px !important;border:none !important;
}
body.wfacp_checkout-template .wfacp_continue_shopping{
  font-family:'Barlow',sans-serif;font-size:13.5px;color:#666;
}
body.wfacp_checkout-template .wfacp_continue_shopping a{color:var(--es-green);font-weight:600;}

/* ---------- Order bumps / upsells (defensive) ---------- */
body.wfacp_checkout-template .wfacp_bump_section,
body.wfacp_checkout-template .wfacp_bump_product,
body.wfacp_checkout-template .wfacp_upsell_section,
body.wfacp_checkout-template .wfocu-offer{
  background:#fff8ee !important;border:1px solid #f2d9b3 !important;
  border-radius:12px !important;padding:16px 18px !important;margin:14px 0 !important;
}
body.wfacp_checkout-template .wfacp_bump_section label,
body.wfacp_checkout-template .wfacp_bump_title,
body.wfacp_checkout-template .wfocu-offer-title{
  font-family:'Oswald',sans-serif !important;text-transform:uppercase;
  letter-spacing:.04em;color:#8a5a12 !important;
}

/* ============================================================
   V3.1 — general polish: shop toolbar, pagination, ratings,
   notices, focus, small screens
   ============================================================ */
.woocommerce .woocommerce-result-count{font-family:'Oswald',sans-serif;font-size:13px;color:#777;text-transform:uppercase;letter-spacing:.04em;}
.woocommerce .woocommerce-ordering select{
  border:1px solid var(--es-border);border-radius:8px;padding:10px 14px;
  font-family:'Barlow',sans-serif;font-size:14px;background:#fff;color:var(--es-text);
}
.woocommerce nav.woocommerce-pagination ul{border:none;display:flex;gap:6px;justify-content:center;margin-top:36px;}
.woocommerce nav.woocommerce-pagination ul li{border:none;}
.woocommerce nav.woocommerce-pagination ul li a,
.woocommerce nav.woocommerce-pagination ul li span{
  display:flex;align-items:center;justify-content:center;min-width:40px;height:40px;
  border:1px solid var(--es-border);border-radius:8px;background:#fff;
  font-family:'Oswald',sans-serif;font-size:14px;color:var(--es-text) !important;text-decoration:none;
}
.woocommerce nav.woocommerce-pagination ul li span.current,
.woocommerce nav.woocommerce-pagination ul li a:hover{
  background:var(--es-green);border-color:var(--es-green);color:#fff !important;
}
.woocommerce .star-rating span::before,
.woocommerce .star-rating::before{color:#F8991D;}
.woocommerce div.product .woocommerce-product-rating{margin-bottom:12px;}
.woocommerce a:focus-visible, .woocommerce button:focus-visible,
.woocommerce input:focus-visible, .woocommerce select:focus-visible{
  outline:3px solid #F8991D !important;outline-offset:2px;border-radius:4px;
}
@media (prefers-reduced-motion: reduce){
  .woocommerce *, .woocommerce *::before, .woocommerce *::after{
    transition-duration:.01ms !important;animation-duration:.01ms !important;
  }
}

/* ---------- V3.2 sticky mobile buy bar ---------- */
.es-sticky-atc{
  position:fixed;left:0;right:0;bottom:0;z-index:9998;display:none;
  align-items:center;gap:12px;padding:10px 14px calc(10px + env(safe-area-inset-bottom));
  background:#fff;border-top:1px solid var(--es-border);
  box-shadow:0 -6px 24px rgba(0,0,0,.10);transform:translateY(110%);transition:transform .28s ease;
}
.es-sticky-atc.show{transform:translateY(0);}
.es-sticky-atc .es-sa-name{
  font-family:'Oswald',sans-serif;font-size:11px;font-weight:400;text-transform:uppercase;
  letter-spacing:.04em;color:var(--es-green);line-height:1.25;flex:1;min-width:0;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;
}
.es-sticky-atc .es-sa-price{font-family:'Barlow',sans-serif;font-weight:700;color:var(--es-green-dark);font-size:15px;white-space:nowrap;}
.es-sticky-atc .es-sa-btn{
  flex:0 0 auto;background:var(--es-orange);color:#fff !important;border:none;border-radius:8px;
  font-family:'Oswald',sans-serif;font-size:13px;letter-spacing:.08em;text-transform:uppercase;
  padding:12px 18px;text-decoration:none;display:inline-flex;align-items:center;gap:8px;
}
.es-sticky-atc .es-sa-btn:active{background:var(--es-orange-dk);}
@media (max-width:768px){
  .es-sticky-atc{display:flex;}
  body.single-product{padding-bottom:76px;}
}

/* ============================================================
   Cart page — branded empty state + suggested products
   ============================================================ */
body.woocommerce-cart .woocommerce{padding:0 20px;}
body.woocommerce-checkout .woocommerce{padding:0 20px;}
.woocommerce-info::before{display:none !important;}

/* hide Woo's bare empty message — replaced by our own card */
body.woocommerce-cart .wc-empty-cart-message,
body.woocommerce-cart .return-to-shop{display:none !important;}

.es-cart-empty-extra{max-width:1200px;margin:28px auto 8px;padding:0 20px;}
.es-cart-empty-card{
  background:#fff;border:1px solid var(--es-border);border-radius:16px;
  padding:40px 30px;text-align:center;
}
.es-cart-empty-card h2{
  font-family:'Oswald',sans-serif;text-transform:uppercase;letter-spacing:.04em;
  font-size:22px;color:var(--es-green);margin:0 0 10px;
}
.es-cart-empty-card p{
  font-family:'Barlow',sans-serif;font-size:15px;line-height:1.65;color:#666;
  max-width:540px;margin:0 auto 22px;
}
.es-cart-empty-actions{display:flex;gap:12px;justify-content:center;flex-wrap:wrap;}
.es-cart-empty-actions a{
  display:inline-flex;align-items:center;justify-content:center;min-width:200px;
  font-family:'Oswald',sans-serif;font-size:14px;letter-spacing:.08em;text-transform:uppercase;
  text-decoration:none;border-radius:8px;padding:14px 26px;border:2px solid transparent;
}
.es-cart-empty-actions a:first-child{background:var(--es-orange);color:#fff;}
.es-cart-empty-actions a:first-child:hover{background:var(--es-orange-dk);}
.es-cart-empty-actions a:last-child{background:#fff;border-color:var(--es-green);color:var(--es-green);}
.es-cart-empty-actions a:last-child:hover{background:var(--es-green-pale);}
.es-cart-popular{max-width:1200px;margin:44px auto 70px;padding:0 20px;}
.es-cart-popular h2{
  font-family:'Oswald',sans-serif;text-transform:uppercase;letter-spacing:.05em;
  font-size:20px;color:var(--es-green);margin:0 0 22px;
}
.es-cart-popular ul.products{
  display:flex !important;flex-wrap:wrap;gap:18px !important;
  list-style:none;margin:0 !important;padding:0 !important;
  width:100% !important;
}
.es-cart-popular ul.products li.product{
  flex:1 1 calc(25% - 18px);max-width:calc(25% - 18px);min-width:0;
  float:none !important;margin:0 !important;clear:none !important;
  background:#fff;border:1px solid var(--es-border);border-radius:16px;overflow:hidden;
}
@media(max-width:1024px){
  .es-cart-popular ul.products li.product{flex:1 1 calc(50% - 18px);max-width:calc(50% - 18px);}
}
@media(max-width:560px){
  .es-cart-popular ul.products li.product{flex:1 1 100%;max-width:100%;}
}
.es-cart-popular ul.products li.product img{width:100% !important;height:auto;display:block;background:var(--es-off-white);}
.es-cart-popular ul.products li.product .woocommerce-loop-product__title{
  font-family:'Oswald',sans-serif !important;font-size:13px !important;text-transform:uppercase;
  color:var(--es-green) !important;padding:12px 14px 0 !important;line-height:1.35;
}
.es-cart-popular ul.products li.product .price{display:block;padding:6px 14px 0;font-weight:600;color:var(--es-green);}
.es-cart-popular ul.products li.product .button{margin:10px 14px 14px !important;font-size:11px !important;padding:9px 14px !important;}
@media(max-width:900px){.es-cart-popular ul.products{grid-template-columns:repeat(2,1fr);}}
@media(max-width:520px){.es-cart-popular ul.products{grid-template-columns:1fr;}}


/* Express payment buttons (Apple Pay / Google Pay / Link / WooPay) */
.cart_totals .wc-proceed-to-checkout{margin-bottom:8px;}
.cart_totals #wc-stripe-payment-request-wrapper,
.cart_totals #wc-stripe-payment-request-button-separator,
.cart_totals .wcpay-express-checkout-wrapper,
.cart_totals #wcpay-express-checkout-element,
.cart_totals .wcpay-payment-request-wrapper,
.cart_totals .wc-stripe-payment-request-button-separator,
.woocommerce-checkout #wc-stripe-payment-request-wrapper,
.woocommerce-checkout .wcpay-express-checkout-wrapper,
.woocommerce-checkout #wcpay-express-checkout-element{
  display:block !important;width:100% !important;max-width:100% !important;
  margin:8px 0 0 !important;padding:0 20px 12px;box-sizing:border-box;
}
.cart_totals iframe,
.woocommerce-checkout #payment iframe{max-width:100% !important;}
.cart_totals .wc-stripe-payment-request-button,
.cart_totals .wcpay-express-checkout-button,
.woocommerce-checkout .wc-stripe-payment-request-button,
.woocommerce-checkout .wcpay-express-checkout-button{
  width:100% !important;border-radius:8px !important;
}


/* ---------- Cart totals: full-width express pay, no clipping ---------- */
body.woocommerce-cart .cart-collaterals .cart_totals{width:100% !important;min-width:0 !important;}
body.woocommerce-cart .cart_totals{overflow:visible;}
body.woocommerce-cart .cart_totals .wc-proceed-to-checkout{padding:16px 20px 8px !important;}
body.woocommerce-cart .cart_totals .wc-proceed-to-checkout a{width:100%;text-align:center;}
body.woocommerce-cart .cart_totals #wc-stripe-payment-request-wrapper,
body.woocommerce-cart .cart_totals #wc-stripe-payment-request-button-separator,
body.woocommerce-cart .cart_totals .wcpay-express-checkout-wrapper,
body.woocommerce-cart .cart_totals .wcpay-payment-request-wrapper,
body.woocommerce-cart .cart_totals #wcpay-express-checkout-element,
body.woocommerce-cart .cart_totals .wc-stripe-payment-request-button{
  display:block !important;
  width:100% !important;max-width:100% !important;
  box-sizing:border-box !important;
  margin:8px 0 0 !important;
  padding:0 20px 14px !important;
  float:none !important;clear:both;
}
body.woocommerce-cart .cart_totals iframe,
body.woocommerce-cart .cart_totals #link-authentication-form,
body.woocommerce-cart .cart_totals #wc-stripe-payment-request-wrapper iframe,
body.woocommerce-cart .cart_totals .wcpay-express-checkout-wrapper iframe{
  width:100% !important;max-width:100% !important;display:block;
}
body.woocommerce-cart .cart_totals .p-ExpressCheckoutButton,
body.woocommerce-cart .cart_totals .p-LinkButton{
  width:100% !important;max-width:100% !important;
}

/* ============================================================
   WooCommerce BLOCKS fallback (cart & checkout blocks)
   Styles the block engine in case the page uses blocks instead
   of the classic shortcode. Classic remains the recommended path.
   ============================================================ */
.wc-block-cart, .wc-block-checkout{font-family:'Barlow',sans-serif;max-width:1200px;margin:0 auto;}

.wc-block-components-sidebar-layout{display:grid;grid-template-columns:minmax(0,1fr) 380px;gap:0 40px;align-items:start;}
.wc-block-components-sidebar{position:sticky;top:96px;}
.wc-block-components-title{
  font-family:'Oswald',sans-serif !important;font-weight:400;text-transform:uppercase;
  letter-spacing:.04em;color:#004D2C !important;
}
.wc-block-components-text-input label,
.wc-block-components-address-form label,
.wc-block-components-country-input label,
.wc-block-components-select label{
  font-family:'Oswald',sans-serif !important;font-size:11px !important;font-weight:400 !important;
  text-transform:uppercase;letter-spacing:.07em;color:#6a6a6a !important;
}
.wc-block-components-text-input input,
.wc-block-components-select__select,
.wc-block-components-country-input input,
.wc-block-components-state-input input,
.wc-block-components-address-form input,
.wc-block-components-address-form select{
  border:1px solid #E2E5E0 !important;border-radius:8px !important;
  padding:12px 14px !important;font-family:'Barlow',sans-serif !important;
  font-size:15px !important;background:#fff !important;width:100% !important;
  box-shadow:none !important;
}
.wc-block-components-text-input input:focus,
.wc-block-components-select__select:focus{
  border-color:#F8991D !important;outline:none !important;box-shadow:0 0 0 3px rgba(248,153,29,.15) !important;
}
.wc-block-components-order-summary{
  background:#fff;border:1px solid #E2E5E0;border-radius:14px;padding:20px;
}
.wc-block-components-order-summary .wc-block-components-totals-item__label{
  font-family:'Barlow',sans-serif;color:#555;
}
.wc-block-components-totals-wrapper .wc-block-components-totals-item__value{
  font-weight:600;color:#004D2C;
}
.wc-block-components-checkout-place-order-button,
.wc-block-components-cart-checkout-button,
.wc-block-components-checkout-return-to-cart-button{
  background:#F8991D !important;color:#fff !important;
  font-family:'Oswald',sans-serif !important;font-size:15px !important;font-weight:400 !important;
  letter-spacing:.08em !important;text-transform:uppercase !important;
  padding:15px 24px !important;border-radius:8px !important;width:100% !important;
}
.wc-block-components-checkout-place-order-button:hover{background:#e08410 !important;}
.wc-block-components-panel__button{
  font-family:'Oswald',sans-serif !important;text-transform:uppercase;letter-spacing:.05em;
  color:#004D2C !important;font-size:13px !important;
}
.wc-block-components-radio-control .wc-block-components-radio-control__input:checked{
  accent-color:#004D2C;
}
.wc-block-components-order-summary .wc-block-components-product-name{
  font-family:'Oswald',sans-serif;font-size:13.5px;text-transform:uppercase;color:#004D2C;
}
@media(max-width:860px){
  .wc-block-components-sidebar-layout{grid-template-columns:1fr;gap:24px;}
  .wc-block-components-sidebar{position:static;}
}

/* ============================================================
   Checkout & cart — layout hardening (post-FunnelKit)
   ============================================================ */

/* Stop anything clipping the order summary / payment box */
.woocommerce-checkout #order_review,
.woocommerce-checkout #order_review_heading,
.woocommerce-checkout #payment,
.woocommerce-cart .cart_totals,
.woocommerce-cart .cart-collaterals{ overflow: visible !important; }

/* Two-column checkout: details left, order review right (classic markup) */
body.woocommerce-checkout form.checkout{
  display:grid !important;
  grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr) !important;
  grid-template-areas:"details review" "details review" !important;
  gap:0 44px !important;
  align-items:start !important;
}
body.woocommerce-checkout #customer_details{grid-area:details;width:100% !important;float:none !important;}
body.woocommerce-checkout #order_review_heading{grid-area:review;width:100% !important;margin:0 0 0 !important;border-radius:12px 12px 0 0 !important;position:static !important;}
body.woocommerce-checkout #order_review{grid-area:review;width:100% !important;float:none !important;margin:0 !important;border-radius:0 0 12px 12px !important;position:static !important;}
body.woocommerce-checkout .woocommerce-notices-wrapper,
body.woocommerce-checkout .woocommerce-NoticeGroup,
body.woocommerce-checkout .woocommerce-error,
body.woocommerce-checkout .woocommerce-info{grid-column:1 / -1 !important;}

/* Payment methods: simple, full-width, never cut off */
#payment ul.wc_payment_methods,
.woocommerce-checkout #payment ul.wc_payment_methods{
  display:block !important;
  margin:0 !important;
  padding:14px 20px !important;
  list-style:none !important;
}
#payment ul.wc_payment_methods li.wc_payment_method,
.woocommerce-checkout #payment ul.wc_payment_methods li.wc_payment_method{
  display:block !important;
  width:100% !important;
  margin:0 0 8px !important;
  padding:13px 15px !important;
  border:1px solid #E2E5E0 !important;
  border-radius:10px !important;
  background:#fff !important;
  box-sizing:border-box !important;
}
#payment ul.wc_payment_methods li > label,
.woocommerce-checkout #payment ul.wc_payment_methods li > label{
  display:flex !important;
  align-items:center !important;
  gap:10px !important;
  width:100% !important;
  margin:0 !important;
  font-family:'Oswald',sans-serif !important;
  font-size:13.5px !important;
  letter-spacing:.03em !important;
  text-transform:uppercase !important;
  color:#333 !important;
}
#payment ul.wc_payment_methods li input[type="radio"]{
  flex:0 0 auto !important;
  width:18px !important;
  height:18px !important;
  margin:0 !important;
  accent-color:#004D2C !important;
}
#payment div.payment_box{
  width:100% !important;
  margin:10px 0 0 !important;
  padding:14px 16px !important;
  background:#F7F8F6 !important;
  border-radius:8px !important;
  box-sizing:border-box !important;
  position:static !important;
  float:none !important;
}
#payment div.payment_box::before{display:none !important;}

/* Express / hosted card element: full width, contained */
#payment iframe,
#payment .wcpay-express-checkout-wrapper iframe,
#payment #wc-stripe-payment-request-wrapper iframe,
.woocommerce-checkout .wcpay-payment-request-wrapper iframe,
.woocommerce-checkout #wcpay-express-checkout-element iframe,
.woocommerce-checkout .stripe-card-element,
.woocommerce-checkout .StripeElement,
.woocommerce-checkout #wc-stripe-card-element,
.woocommerce-checkout .wcpay-card-element{
  width:100% !important;
  max-width:100% !important;
  display:block !important;
}
#payment .wc-stripe-payment-request-button,
#payment .wcpay-express-checkout-button,
#payment #wc-stripe-payment-request-wrapper,
#payment .wcpay-express-checkout-wrapper,
#payment .wcpay-payment-request-wrapper{
  width:100% !important;
  max-width:100% !important;
  position:static !important;
  float:none !important;
  clear:both !important;
  margin:8px 0 0 !important;
}
#payment .form-row.place-order{width:100% !important;margin:0 !important;padding:16px 20px !important;}
#payment .form-row.place-order #place_order,
.woocommerce-checkout #place_order{width:100% !important;display:block !important;}

/* Cart totals card: contained */
body.woocommerce-cart .cart-collaterals{position:static !important;}
body.woocommerce-cart .cart_totals iframe,
body.woocommerce-cart .cart_totals .wc-stripe-payment-request-button,
body.woocommerce-cart .cart_totals .wcpay-express-checkout-button{
  width:100% !important;max-width:100% !important;display:block !important;position:static !important;
}

@media(max-width:860px){
  body.woocommerce-checkout form.checkout{
    grid-template-columns:1fr !important;
    grid-template-areas:"details" "review" !important;
    gap:24px !important;
  }
}


/* Shop / category archive container */

/* WooCommerce core (woocommerce-layout.css) adds a clearfix ::before/::after
   to ul.products (content:" "; display:table). Once the list becomes a grid
   or flex container those pseudo-elements are treated as real items, so the
   first product is pushed into the second column and a blank card-sized cell
   appears at the start of every row (shop listing + related products).
   Remove them so cards start flush at the left with even spacing. */
.woocommerce ul.products::before,
.woocommerce ul.products::after,
.woocommerce-page ul.products::before,
.woocommerce-page ul.products::after,
body.woocommerce ul.products::before,
body.woocommerce ul.products::after{
  content:none !important;
  display:none !important;
}

body.woocommerce ul.products{
  display:grid !important;
  grid-template-columns:repeat(4,1fr) !important;
  grid-auto-rows:1fr;
  gap:18px !important;
  list-style:none !important;
  margin:0 !important;
  padding:0 !important;
}
body.woocommerce ul.products li.product{
  float:none !important;width:100% !important;margin:0 !important;clear:none !important;
  /* Equal-height cards: the product link grows to fill the card so the
     CTA pair always sits at the bottom, however much text is above it. */
  display:flex !important;
  flex-direction:column;
}
body.woocommerce ul.products li.product .woocommerce-LoopProduct-link{
  flex:1 1 auto;
}
body.woocommerce ul.products li.product img{
  width:100%;height:230px;object-fit:contain;background:var(--es-off-white,#F7F8F6);padding:12px;display:block;
}
@media(max-width:1024px){body.woocommerce ul.products{grid-template-columns:repeat(3,1fr) !important;}}
@media(max-width:768px){body.woocommerce ul.products{grid-template-columns:repeat(2,1fr) !important;}}
@media(max-width:480px){body.woocommerce ul.products{grid-template-columns:1fr !important;}}


/* Block cart sidebar: keep it wide enough */
.wc-block-cart .wc-block-components-sidebar{min-width:400px;}

/* ============================================================
   Mobile cart & checkout — decisive single-column reset
   (overrides every desktop !important rule above)
   ============================================================ */
@media (max-width: 860px){
  /* Cart: one column, totals below, full width */
  body.woocommerce-cart .woocommerce{
    display:grid !important;
    grid-template-columns:1fr !important;
    gap:0 !important;
  }
  body.woocommerce-cart .woocommerce > *{grid-column:1 !important;}
  body.woocommerce-cart .cart-collaterals,
  body.woocommerce-cart .cart_totals{
    grid-column:1 !important;width:100% !important;min-width:0 !important;
    margin-top:26px !important;position:static !important;float:none !important;
  }
  body.woocommerce-cart .cart_totals iframe,
  body.woocommerce-cart .cart_totals .wc-stripe-payment-request-button,
  body.woocommerce-cart .cart_totals .wcpay-express-checkout-button{width:100% !important;}

  /* Checkout: block flow, summary below details */
  body.woocommerce-checkout form.checkout{
    display:block !important;
    grid-template-columns:none !important;
    grid-template-areas:none !important;
  }
  body.woocommerce-checkout #customer_details,
  body.woocommerce-checkout #order_review_heading,
  body.woocommerce-checkout #order_review{
    width:100% !important;float:none !important;position:static !important;
    margin:0 0 24px !important;border-radius:12px !important;
  }
  body.woocommerce-checkout #order_review_heading{margin-bottom:0 !important;}

  /* Block cart/checkout: single column */
  .wc-block-cart .wc-block-components-sidebar-layout,
  .wc-block-checkout .wc-block-components-sidebar-layout{grid-template-columns:1fr !important;gap:24px !important;}
  .wc-block-cart .wc-block-components-sidebar,
  .wc-block-checkout .wc-block-components-sidebar{min-width:0 !important;position:static !important;}

  /* Payment methods full width, unclipped */
  #payment ul.wc_payment_methods li,
  .woocommerce-checkout #payment ul.wc_payment_methods li{width:100% !important;margin:0 0 8px !important;}
}

/* ============================================================
   Mobile product pages & shop — functional polish
   ============================================================ */
@media (max-width: 768px){
  /* Gallery and summary stack */
  .woocommerce div.product div.images,
  .woocommerce div.product div.summary{
    width:100% !important;float:none !important;margin:0 0 24px !important;
  }
  .woocommerce div.product .product_title{font-size:clamp(24px,7vw,34px) !important;}

  /* Quantity + add-to-cart stack full width */
  .woocommerce div.product form.cart{flex-direction:column !important;align-items:stretch !important;gap:12px !important;}
  .woocommerce div.product form.cart .quantity{width:100% !important;}
  .woocommerce div.product form.cart .quantity .qty{width:100% !important;min-height:48px !important;}
  .woocommerce div.product form.cart .single_add_to_cart_button{width:100% !important;min-width:0 !important;min-height:52px !important;}

  /* Tabs: horizontal scroll instead of wrap */
  .woocommerce div.product .woocommerce-tabs ul.tabs{
    display:flex !important;flex-wrap:nowrap !important;overflow-x:auto !important;
    white-space:nowrap !important;-webkit-overflow-scrolling:touch;
  }
  .woocommerce div.product .woocommerce-tabs ul.tabs li{flex:0 0 auto !important;}

  /* Trust row: one per line */
  .es-woo-trust{flex-direction:column !important;gap:8px !important;}
  .es-woo-trust li{width:100% !important;}

  /* Breadcrumb wraps */
  .woocommerce .woocommerce-breadcrumb{font-size:11px !important;line-height:1.5;}
}

/* Tappable buttons + no iOS zoom on inputs */
.woocommerce a.button,
.woocommerce button.button,
.woocommerce .single_add_to_cart_button{min-height:44px;}
.woocommerce div.product form.cart .quantity .qty,
.woocommerce form .form-row input.input-text,
.woocommerce form .form-row select,
.woocommerce form .form-row textarea{font-size:16px !important;}

/* Shop cards: keep the CTA pair on the same 16px gutter on phones */
@media (max-width:480px){
  body.woocommerce ul.products li.product .button{width:calc(100% - 32px) !important;text-align:center;}
  body.woocommerce ul.products li.product .woocommerce-loop-product__title{font-size:12.5px !important;}
}

/* ============================================================
   Mobile cart — card-per-product layout, no sideways scroll
   ============================================================ */
@media (max-width: 640px){
  body.woocommerce-cart .woocommerce{overflow-x:hidden;}
  body.woocommerce-cart table.shop_table,
  body.woocommerce-cart table.shop_table tbody,
  body.woocommerce-cart table.shop_table tr{display:block !important;}
  body.woocommerce-cart table.shop_table thead{display:none !important;}
  body.woocommerce-cart table.shop_table tbody tr{
    position:relative;background:#fff;border:1px solid #E2E5E0;
    border-radius:14px;margin:0 0 16px;padding:14px;
  }
  body.woocommerce-cart table.shop_table td{
    display:flex !important;justify-content:space-between;align-items:center;
    gap:12px;border:none !important;padding:7px 0 !important;text-align:right !important;
  }
  body.woocommerce-cart table.shop_table td::before{
    content:attr(data-title);font-family:'Oswald',sans-serif;
    font-size:10px;letter-spacing:.08em;text-transform:uppercase;color:#999;
    flex:0 0 auto;text-align:left;
  }
  body.woocommerce-cart table.shop_table td.product-thumbnail::before,
  body.woocommerce-cart table.shop_table td.product-remove::before{content:'' !important;}
  body.woocommerce-cart table.shop_table td.product-thumbnail{display:block !important;text-align:center !important;padding:6px 0 2px !important;}
  body.woocommerce-cart table.shop_table td.product-remove{
    position:absolute;top:8px;right:10px;padding:0 !important;
  }
  body.woocommerce-cart table.shop_table td.product-name a{text-align:left;font-size:14px;}
  body.woocommerce-cart table.cart img{width:72px;height:72px;}
  body.woocommerce-cart td.actions{display:block !important;text-align:center !important;}
  body.woocommerce-cart td.actions .coupon{display:flex !important;flex-direction:column;gap:8px;float:none !important;}
  body.woocommerce-cart td.actions .coupon .input-text{width:100% !important;}
  body.woocommerce-cart td.actions .button[name="update_cart"]{width:100% !important;margin-top:8px;}
}

/* ============================================================
   Prevent sideways scroll on cart/checkout (any breakpoint)
   ============================================================ */
body.woocommerce-cart,
body.woocommerce-checkout{overflow-x:hidden !important;}
body.woocommerce-cart .woocommerce,
body.woocommerce-checkout .woocommerce{max-width:100% !important;}
body.woocommerce-cart table.shop_table,
body.woocommerce-cart .cart-collaterals,
body.woocommerce-cart .cart_totals{min-width:0 !important;max-width:100% !important;}
@media (max-width:640px){
  body.woocommerce-cart table.shop_table,
  body.woocommerce-cart .woocommerce,
  body.woocommerce-checkout .woocommerce{width:100% !important;min-width:0 !important;}
  #wc-stripe-payment-request-wrapper,
  #wc-stripe-payment-request-wrapper iframe,
  .wcpay-express-checkout-wrapper,
  .wcpay-express-checkout-wrapper iframe,
  .wc-stripe-payment-request-button,
  .wcpay-express-checkout-button,
  body.woocommerce-cart .cart_totals iframe{
    width:100% !important;max-width:100% !important;min-width:0 !important;
  }
}

/* ============================================================
   FINAL cart/checkout mobile fixes (loaded last, wins)
   ============================================================ */
body.woocommerce-cart, body.woocommerce-checkout{overflow-x:hidden !important;}

/* ---- 1. Single-column cart on mobile ---- */
@media (max-width: 860px){
  body.woocommerce-cart .woocommerce{
    display:flex !important;
    flex-direction:column !important;
    grid-template-columns:none !important;
    gap:0 !important;
  }
  body.woocommerce-cart .woocommerce > .woocommerce-cart-form,
  body.woocommerce-cart .woocommerce > .cart-collaterals{
    width:100% !important;
    min-width:0 !important;
    max-width:100% !important;
    float:none !important;
    margin:0 0 24px !important;
    position:static !important;
  }
  body.woocommerce-cart .cart-collaterals{order:2 !important;}
  body.woocommerce-cart .cart_totals{width:100% !important;min-width:0 !important;}
}

/* ---- 2. Totals / buttons / express full width, nothing cropped ---- */
body.woocommerce-cart .cart_totals,
body.woocommerce-cart .cart-collaterals{max-width:100% !important;min-width:0 !important;}
body.woocommerce-cart .wc-proceed-to-checkout a,
body.woocommerce-cart .cart_totals .wc-proceed-to-checkout a{
  width:100% !important;box-sizing:border-box !important;text-align:center !important;
}
body.woocommerce-cart .cart_totals iframe,
body.woocommerce-cart .cart_totals #wc-stripe-payment-request-wrapper,
body.woocommerce-cart .cart_totals .wcpay-express-checkout-wrapper,
body.woocommerce-cart .cart_totals .wc-stripe-payment-request-button,
body.woocommerce-cart .cart_totals .wcpay-express-checkout-button,
body.woocommerce-cart .cart_totals .p-LinkButton,
body.woocommerce-cart .cart_totals .p-ExpressCheckoutButton{
  width:100% !important;max-width:100% !important;min-width:0 !important;
  display:block !important;position:static !important;float:none !important;
}

/* ---- 3. Block cart single column ---- */
.wc-block-cart .wc-block-components-sidebar-layout,
.wc-block-checkout .wc-block-components-sidebar-layout{max-width:100%;}
@media (max-width:860px){
  .wc-block-cart .wc-block-components-sidebar-layout,
  .wc-block-checkout .wc-block-components-sidebar-layout{grid-template-columns:1fr !important;}
  .wc-block-cart .wc-block-components-sidebar,
  .wc-block-checkout .wc-block-components-sidebar{min-width:0 !important;width:100% !important;}
}

/* ---- 4. Product rows: thumbnail + remove + quantity ---- */
@media (max-width:640px){
  body.woocommerce-cart table.cart td.product-thumbnail{display:block !important;text-align:center !important;}
  body.woocommerce-cart table.cart td.product-thumbnail img{width:76px !important;height:76px !important;border-radius:8px !important;}
  body.woocommerce-cart table.cart td.product-remove{
    position:absolute !important;top:10px !important;right:12px !important;
    width:36px !important;height:36px !important;
  }
  body.woocommerce-cart table.cart td.product-remove a{
    width:34px !important;height:34px !important;line-height:32px !important;
    font-size:18px !important;background:#f6f6f6 !important;border-radius:50% !important;
    display:block !important;text-align:center !important;
  }
  body.woocommerce-cart table.cart .quantity .qty{width:72px !important;min-height:44px !important;font-size:16px !important;}
}

/* ---- 5. Coupon: full-width, side by side ---- */
body.woocommerce-cart td.actions .coupon{
  display:flex !important;flex-wrap:wrap !important;gap:8px !important;
  float:none !important;width:100% !important;margin:0 0 8px !important;
}
body.woocommerce-cart td.actions .coupon .input-text{
  flex:1 1 auto !important;width:auto !important;min-width:140px !important;
}
body.woocommerce-cart td.actions .coupon button,
body.woocommerce-cart td.actions .coupon .button{white-space:nowrap !important;}

/* ---- 6. "Need installation?" info box: clean left-align ---- */
body.woocommerce-cart .woocommerce-info{
  padding:14px 16px !important;text-align:left !important;line-height:1.6 !important;
  border-left:4px solid #F8991D !important;margin:0 0 20px !important;
}
body.woocommerce-cart .woocommerce-info a,
body.woocommerce-cart .es-freeship a,
body.woocommerce-cart .woocommerce-message a{
  color:#004D2C !important;text-decoration:underline !important;text-underline-offset:2px;
}

/* ---- 7. Update cart button legible ---- */
body.woocommerce-cart button[name="update_cart"],
body.woocommerce-cart .button[name="update_cart"]{
  opacity:1 !important;color:#fff !important;background:#004D2C !important;
  border:none !important;font-family:'Oswald',sans-serif !important;
  text-transform:uppercase !important;letter-spacing:.06em !important;
}

/* ---- 8. Free delivery bar math is correct: threshold €300 ---- */

/* ============================================================
   Checkout — single-column layout (reliable, no grid-area bugs)
   Express buttons top → billing/shipping → order summary → pay.
   ============================================================ */
body.woocommerce-checkout form.checkout{
  display:block !important;
  grid-template-columns:none !important;
  grid-template-areas:none !important;
  max-width:820px !important;
  margin:0 auto !important;
}
body.woocommerce-checkout #customer_details,
body.woocommerce-checkout #customer_details .col2-set,
body.woocommerce-checkout #customer_details .col-1,
body.woocommerce-checkout #customer_details .col-2{
  width:100% !important;
  float:none !important;
  padding:0 !important;
  margin:0 0 8px !important;
}
/* Express checkout buttons: full width, at the very top */
body.woocommerce-checkout #wc-stripe-payment-request-wrapper,
body.woocommerce-checkout .wc-stripe-payment-request-wrapper,
body.woocommerce-checkout #wcpay-express-checkout-element,
body.woocommerce-checkout .wcpay-express-checkout-wrapper{
  width:100% !important;
  max-width:100% !important;
  margin:0 0 8px !important;
  position:static !important;
  float:none !important;
  clear:both !important;
}
body.woocommerce-checkout #wc-stripe-payment-request-button-separator,
body.woocommerce-checkout .wc-stripe-payment-request-button-separator{
  display:flex !important;
  align-items:center !important;
  gap:10px !important;
  color:#999 !important;
  margin:12px 0 16px !important;
  font-family:'Oswald',sans-serif !important;
  text-transform:uppercase !important;
  font-size:11px !important;
  letter-spacing:.1em !important;
}
body.woocommerce-checkout #wc-stripe-payment-request-button-separator::before,
body.woocommerce-checkout #wc-stripe-payment-request-button-separator::after{
  content:'' !important;flex:1 !important;height:1px !important;background:#e2e5e0 !important;
}
/* Order summary below the fields, full width */
body.woocommerce-checkout #order_review_heading{
  width:100% !important;
  float:none !important;
  margin:28px 0 0 !important;
  border-radius:12px 12px 0 0 !important;
  position:static !important;
}
body.woocommerce-checkout #order_review{
  width:100% !important;
  float:none !important;
  position:static !important;
  margin:0 !important;
  border-radius:0 0 12px 12px !important;
}

/* ============================================================
   Cart actions (coupon + update) — clean mobile stack
   ============================================================ */
@media (max-width: 767px){
  .woocommerce-cart-form .coupon{
    display:flex !important;
    flex-direction:column !important;
    gap:12px !important;
    width:100% !important;
    float:none !important;
    margin:0 !important;
  }
  .woocommerce-cart-form .coupon input,
  .woocommerce-cart-form .coupon button,
  .woocommerce-cart-form button[name="update_cart"],
  .woocommerce-cart-form .button[name="update_cart"]{
    width:100% !important;
    box-sizing:border-box !important;
    white-space:nowrap !important;
    float:none !important;
    margin:0 !important;
    min-height:48px !important;
  }
}

/* Update Cart: grey out when disabled (nothing changed), green when active */
.woocommerce-cart button[name="update_cart"]:disabled,
.woocommerce-cart .button[name="update_cart"]:disabled{
  background:#d5d5d5 !important;
  color:#7a7a7a !important;
  opacity:.7 !important;
  cursor:not-allowed !important;
}
.woocommerce-cart button[name="update_cart"]:not(:disabled),
.woocommerce-cart .button[name="update_cart"]:not(:disabled){
  background:#004D2C !important;
  color:#fff !important;
  opacity:1 !important;
}

/* ============================================================
   Checkout coupon banner alignment + cart action stack
   ============================================================ */
/* Desktop: coupon banner matches the centred checkout column (820px) */
.woocommerce-form-coupon-toggle,
.woocommerce-form-coupon-toggle .woocommerce-info,
form.checkout_coupon{
  max-width:820px !important;
  margin-left:auto !important;
  margin-right:auto !important;
  box-sizing:border-box !important;
  padding-left:20px !important;
}

/* OR divider: breathe below it */
#wc-stripe-payment-request-button-separator,
.wc-stripe-payment-request-button-separator{
  margin:12px 0 24px !important;
}

/* Mobile: coupon input + Apply + Update Cart all full width, stacked */
@media (max-width: 767px){
  .woocommerce-cart-form td.actions .coupon{
    float:none !important;
    width:100% !important;
    display:flex !important;
    flex-direction:column !important;
    gap:12px !important;
    margin:0 !important;
  }
  .woocommerce-cart-form td.actions .coupon .input-text,
  .woocommerce-cart-form td.actions .coupon input.input-text{
    width:100% !important;
    float:none !important;
    margin:0 !important;
    box-sizing:border-box !important;
  }
  .woocommerce-cart-form td.actions button[name="update_cart"],
  .woocommerce-cart-form td.actions .button[name="update_cart"]{
    float:none !important;
    display:block !important;
    width:100% !important;
    margin:12px 0 0 !important;
    box-sizing:border-box !important;
  }
}

/* ============================================================
   Cart td.actions — force single column on mobile (final)
   ============================================================ */
@media (max-width: 767px){
  .woocommerce-cart-form td.actions{
    display:flex !important;
    flex-direction:column !important;
    gap:12px !important;
    padding:16px !important;
    box-sizing:border-box !important;
  }
  .woocommerce-cart-form td.actions .coupon{
    display:flex !important;
    flex-direction:column !important;
    gap:12px !important;
    width:100% !important;
    max-width:100% !important;
    float:none !important;
    margin:0 !important;
  }
  .woocommerce-cart-form td.actions .coupon input.input-text,
  .woocommerce-cart-form td.actions .coupon button,
  .woocommerce-cart-form td.actions > button[name="update_cart"],
  .woocommerce-cart-form td.actions > .button[name="update_cart"]{
    width:100% !important;
    max-width:100% !important;
    margin:0 !important;
    float:none !important;
    box-sizing:border-box !important;
    min-height:48px !important;
  }
}

/* Product card category label + quote button */
.es-prod-cat{
  display:block;font-family:'Oswald',sans-serif;font-size:10px;font-weight:400;
  letter-spacing:.12em;text-transform:uppercase;color:#F8991D;
  margin:2px 0 4px;
}
.woocommerce ul.products li.product .es-prod-cat{padding:0 14px;}
.product_type_quote{background:#003620 !important;}
.es-quote-btn{background:#003620 !important;color:#fff !important;}

/* ============================================================
   Shop layout + sidebar filters (in-house, no plugin)
   ============================================================ */
.es-shop-layout{display:grid;grid-template-columns:260px minmax(0,1fr);gap:36px;max-width:1200px;margin:0 auto;}
.es-shop-sidebar{background:#fff;border:1px solid #E2E5E0;border-radius:14px;padding:20px;align-self:start;position:sticky;top:96px;}
.es-filter-toggle{display:none;width:100%;border:1px solid #E2E5E0;background:#fff;border-radius:8px;font-family:'Oswald',sans-serif;text-transform:uppercase;letter-spacing:.06em;font-size:13px;padding:12px;cursor:pointer;color:#004D2C;}
.es-filter-h{font-family:'Oswald',sans-serif;font-size:12px;font-weight:500;letter-spacing:.08em;text-transform:uppercase;color:#004D2C;margin:0 0 10px;padding-bottom:8px;border-bottom:1px solid #eef1ef;}
.es-filter-block{margin-bottom:22px;}
.es-filter-block:last-child{margin-bottom:0;}
.es-filter-list{list-style:none;margin:0;padding:0;}
.es-filter-list li a{display:flex;justify-content:space-between;gap:10px;align-items:center;font-family:'Barlow',sans-serif;font-size:14px;color:#555;text-decoration:none;padding:6px 0;border-bottom:1px solid #f4f6f5;}
.es-filter-list li:last-child a{border-bottom:none;}
.es-filter-list li a:hover,.es-filter-list li a.is-active{color:#004D2C;font-weight:600;}
.es-filter-list li a span{color:#999;font-size:12px;}

.es-active-filters{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:0 0 18px;}
.es-active-filters .es-chip{display:inline-flex;align-items:center;gap:6px;background:#e8f2ed;color:#004D2C;font-family:'Barlow',sans-serif;font-size:12.5px;padding:6px 11px;border-radius:99px;}
.es-active-filters .es-chip a{color:#004D2C;text-decoration:none;font-weight:700;}
.es-active-filters .es-clear{font-family:'Barlow',sans-serif;font-size:12.5px;color:#b32d2e;}

/* stock line on cards */
.es-prod-stock{display:block;font-family:'Oswald',sans-serif;font-size:10.5px;letter-spacing:.08em;text-transform:uppercase;margin:4px 0 2px;}
.es-prod-stock.in{color:#166534;}
.es-prod-stock.out{color:#b32d2e;}

@media (max-width: 900px){
  .es-shop-layout{grid-template-columns:1fr;gap:20px;}
  .es-shop-sidebar{position:static;padding:14px;}
  .es-filter-toggle{display:block;}
  .es-shop-filters{display:none;}
  .es-shop-sidebar.open .es-shop-filters{display:block;}
  .es-shop-sidebar.open .es-filter-toggle span{transform:rotate(180deg);}
}

/* ============================================================
   Quote basket + AJAX filter + type-ahead (in-house)
   ============================================================ */
.es-add-quote{
  display:block;width:calc(100% - 32px);margin:10px 16px 0;text-align:center;
  font-family:'Oswald',sans-serif;font-size:11.5px;letter-spacing:.08em;text-transform:uppercase;
  color:#004D2C;border:1px solid #004D2C;border-radius:8px;padding:10px 14px;text-decoration:none;
  box-sizing:border-box;
}
.es-add-quote:hover{background:#004D2C;color:#fff;}
.es-add-quote.added{background:#e8f2ed;border-color:#9ec6b0;color:#166534;cursor:default;}
.es-add-quote-single{display:inline-block;width:auto;margin-left:0;}

#esQuoteBar{
  position:fixed;left:0;right:0;bottom:0;z-index:9998;
  background:#003620;color:#fff;box-shadow:0 -4px 18px rgba(0,0,0,.2);
  display:none;align-items:center;justify-content:center;padding:12px 16px;
  font-family:'Barlow',sans-serif;font-size:14px;
}
#esQuoteBar .es-quotebar-inner{display:flex;align-items:center;gap:16px;flex-wrap:wrap;justify-content:center;}
.es-quotebar-btn{
  background:#F8991D;color:#fff;text-decoration:none;font-family:'Oswald',sans-serif;
  text-transform:uppercase;letter-spacing:.06em;font-size:12.5px;padding:10px 18px;border-radius:8px;
}

.es-search-suggest{
  position:absolute;top:100%;left:0;right:0;margin-top:6px;background:#fff;border:1px solid #E2E5E0;
  border-radius:10px;box-shadow:0 12px 30px rgba(0,0,0,.12);overflow:hidden;z-index:60;
}
.es-suggest-item{display:flex;gap:10px;align-items:center;padding:10px 14px;text-decoration:none;border-bottom:1px solid #f2f4f3;}
.es-suggest-item:last-child{border-bottom:none;}
.es-suggest-item:hover{background:#f6faf8;}
.es-suggest-item img{width:44px;height:44px;object-fit:contain;border-radius:6px;background:#f4f4f4;}
.es-suggest-item span{display:flex;flex-direction:column;gap:2px;}
.es-suggest-item strong{font-family:'Oswald',sans-serif;font-size:13px;text-transform:uppercase;color:#004D2C;line-height:1.3;}
.es-suggest-item small{font-family:'Barlow',sans-serif;font-size:12.5px;color:#666;}
.es-suggest-none{padding:12px 14px;font-family:'Barlow',sans-serif;font-size:13px;color:#999;}

body.es-filtering #esShopProducts{opacity:.5;transition:opacity .15s;}

/* Quote basket (contact page) */
.es-quote-basket{
  background:#e8f2ed;border:1px solid #bfe0cc;border-radius:12px;padding:16px 18px;margin:0 0 18px;
  font-family:'Barlow',sans-serif;
}
.es-quote-basket h3{font-family:'Oswald',sans-serif;font-size:13px;text-transform:uppercase;letter-spacing:.05em;color:#004D2C;margin:0 0 10px;}
.es-quote-basket ul{margin:0 0 8px;padding-left:18px;}
.es-quote-basket li{font-size:14px;color:#2c3338;margin-bottom:3px;}
.es-quote-basket-note{font-size:12px;color:#5b6368;margin:0;}

/* Product page — spec table + datasheet */
.es-spec-table{width:100%;border-collapse:collapse;margin:8px 0 0;}
.es-spec-table th,.es-spec-table td{border:1px solid #E2E5E0;padding:11px 14px;font-size:14.5px;text-align:left;}
.es-spec-table th{background:#e8f2ed;font-family:'Oswald',sans-serif;text-transform:uppercase;font-size:12px;letter-spacing:.05em;color:#004D2C;width:38%;}
.es-spec-table td{font-family:'Barlow',sans-serif;color:#444;}
.es-datasheet-btn{
  display:inline-flex;align-items:center;gap:8px;margin-top:12px;
  font-family:'Oswald',sans-serif;font-size:13px;letter-spacing:.06em;text-transform:uppercase;
  color:#004D2C;border:1px solid #004D2C;border-radius:8px;padding:11px 18px;text-decoration:none;
}
.es-datasheet-btn:hover{background:#004D2C;color:#fff;}

/* Compare */
.es-compare{display:block;width:calc(100% - 32px);margin:6px 16px 0;text-align:center;font-family:'Oswald',sans-serif;font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:#666;border:1px dashed #c8d0cb;border-radius:8px;padding:9px 12px;text-decoration:none;box-sizing:border-box;}
.es-compare:hover,.es-compare.on{border-color:#004D2C;color:#004D2C;}
.es-compare.on{background:#e8f2ed;}
.es-compare-single{display:inline-block;width:auto;margin-left:8px;padding:9px 16px;}
.es-compare-table-wrap{overflow-x:auto;}
.es-compare-table{width:100%;border-collapse:collapse;min-width:640px;}
.es-compare-table th,.es-compare-table td{border:1px solid #E2E5E0;padding:12px 14px;text-align:center;font-size:14px;vertical-align:top;}
.es-compare-table thead th{background:#004D2C;color:#fff;font-family:'Oswald',sans-serif;text-transform:uppercase;font-size:13px;letter-spacing:.04em;}
.es-compare-table thead th:first-child{background:#003620;}
.es-compare-table tbody th{background:#e8f2ed;font-family:'Oswald',sans-serif;text-transform:uppercase;font-size:11px;letter-spacing:.06em;color:#004D2C;text-align:left;width:20%;}
.es-compare-table img{width:120px;height:auto;display:block;margin:0 auto 6px;border-radius:8px;}
.es-compare-name{display:block;font-family:'Oswald',sans-serif;font-size:13px;color:#004D2C;text-decoration:none;line-height:1.3;}
.es-compare-empty{max-width:640px;margin:0 auto;text-align:center;font-family:'Barlow',sans-serif;color:#666;padding:30px;}
.es-compare-empty p{margin:0 0 16px;}
.es-compare-empty .btn{display:inline-block;background:#F8991D;color:#fff;font-family:'Oswald',sans-serif;text-transform:uppercase;letter-spacing:.06em;padding:12px 22px;border-radius:8px;text-decoration:none;}

/* Delivery estimate */
.es-delivery{display:flex;align-items:center;gap:8px;font-family:'Barlow',sans-serif;font-size:13.5px;color:#166534;margin:6px 0 2px;}
.es-delivery i{color:#F8991D;}
.es-eircode{display:flex;flex-direction:column;gap:6px;font-family:'Barlow',sans-serif;font-size:13px;color:#555;margin-top:12px;max-width:360px;}
.es-eircode input{border:1px solid #E2E5E0;border-radius:8px;padding:11px 14px;font-size:16px;}
.es-eircode-result{font-size:12.5px;color:#166534;}

/* Wishlist + recently viewed */
.es-wish{display:inline-flex;align-items:center;gap:6px;width:calc(100% - 32px);margin:6px 16px 0;font-family:'Oswald',sans-serif;font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:#666;border:1px dashed #c8d0cb;border-radius:8px;padding:9px 12px;text-decoration:none;justify-content:center;box-sizing:border-box;}
.es-wish:hover,.es-wish.on{border-color:#d13b6b;color:#d13b6b;}
.es-wish.on{background:#fbeef2;}
.es-wish-single{display:inline-flex;width:auto;margin:8px 8px 0 0;padding:9px 16px;}
.es-wish-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;}
.es-viewed{margin-top:48px;}
.es-viewed h3{font-family:'Oswald',sans-serif;font-size:16px;text-transform:uppercase;letter-spacing:.05em;color:#004D2C;margin:0 0 16px;}
.es-viewed-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:12px;}
@media(max-width:900px){.es-wish-grid{grid-template-columns:repeat(2,1fr);}.es-viewed-grid{grid-template-columns:repeat(3,1fr);}}
@media(max-width:560px){.es-wish-grid{grid-template-columns:1fr;}.es-viewed-grid{grid-template-columns:repeat(2,1fr);}}

/* Compare controls + states */
.es-compare{outline:none;}
.es-compare:focus-visible{outline:3px solid #F8991D;outline-offset:2px;}
.es-compare-bar{display:flex;justify-content:space-between;align-items:center;gap:12px;font-family:'Barlow',sans-serif;font-size:14px;color:#444;margin:0 0 16px;flex-wrap:wrap;}
.es-clear-compare{color:#b32d2e;text-decoration:none;font-size:13px;}
.es-remove-compare{display:inline-block;margin-top:8px;background:none;border:1px solid #e0c0c4;color:#b32d2e;font-family:'Oswald',sans-serif;font-size:10.5px;letter-spacing:.06em;text-transform:uppercase;border-radius:6px;padding:5px 10px;cursor:pointer;}
.es-remove-compare:hover{background:#b32d2e;color:#fff;}

/* Product card alignment: stock + category share the same 16px gutter as title/buttons */
.es-prod-cat{display:block;padding:0 16px;margin:6px 0 2px;}
.es-prod-stock{display:block;padding:0 16px;}

/* Shop overflow hardening: allow grids to shrink, no fixed widths escape */
body.woocommerce ul.products,
body.woocommerce ul.products li.product,
.es-shop-layout,
.es-shop-products,
.es-shop-sidebar{min-width:0 !important;max-width:100% !important;}
body.woocommerce ul.products li.product .woocommerce-loop-product__title,
.es-compare-name{overflow-wrap:anywhere;}
body.woocommerce ul.products li.product .button,
.es-add-quote,.es-compare,.es-wish{max-width:100%;box-sizing:border-box;}

/* Compare modal */
.es-quotebar-clear{color:#ffb;text-decoration:none;font-size:13px;margin-left:4px;}
#esCompareModal{position:fixed;inset:0;background:rgba(0,0,0,.55);z-index:99990;display:none;align-items:flex-start;justify-content:center;padding:40px 16px;overflow-y:auto;}
.es-compare-modal-inner{background:#fff;border-radius:16px;max-width:1100px;width:100%;margin:0 auto;box-shadow:0 24px 60px rgba(0,0,0,.3);}
.es-cm-head{display:flex;justify-content:space-between;align-items:center;padding:16px 22px;border-bottom:1px solid #eef1ef;font-family:'Oswald',sans-serif;font-size:15px;text-transform:uppercase;letter-spacing:.05em;color:#004D2C;}
.es-cm-head button{background:none;border:none;font-size:26px;line-height:1;color:#666;cursor:pointer;}
#esCompareBody{padding:20px 22px;overflow-x:auto;}
.es-cm-empty,.es-cm-loading{padding:30px;text-align:center;font-family:'Barlow',sans-serif;color:#777;}
.es-compare-table-wrap{overflow-x:auto;}
.es-compare-table{width:100%;border-collapse:collapse;min-width:480px;}
.es-compare-table th,.es-compare-table td{border:1px solid #E2E5E0;padding:11px 12px;text-align:center;font-size:13.5px;vertical-align:top;}
.es-compare-table thead th{background:#004D2C;color:#fff;font-family:'Oswald',sans-serif;text-transform:uppercase;font-size:12.5px;}
.es-compare-table thead th:first-child{background:#003620;}
.es-compare-table tbody th{background:#e8f2ed;text-align:left;font-family:'Oswald',sans-serif;font-size:11px;text-transform:uppercase;letter-spacing:.05em;color:#004D2C;width:16%;}
.es-compare-table img{width:90px;height:auto;display:block;margin:0 auto 6px;border-radius:6px;}
.es-compare-name{display:block;font-family:'Oswald',sans-serif;font-size:12.5px;color:#004D2C;line-height:1.3;min-height:2.6em;}
.es-remove-compare{display:inline-block;margin-top:8px;background:none;border:1px solid #e0c0c4;color:#b32d2e;font-family:'Oswald',sans-serif;font-size:10px;letter-spacing:.06em;text-transform:uppercase;border-radius:6px;padding:5px 10px;cursor:pointer;}
.es-remove-compare:hover{background:#b32d2e;color:#fff;}

/* Quote basket view/edit */
.es-quotebar-view{color:#ffd;text-decoration:none;font-size:13px;border:1px solid rgba(255,255,255,.35);border-radius:6px;padding:6px 12px;}
.es-q-item{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:10px 0;border-bottom:1px solid #f2f4f3;font-family:'Barlow',sans-serif;font-size:14.5px;color:#2c3338;}
.es-q-item:last-child{border-bottom:none;}
.es-q-remove{background:none;border:1px solid #e0c0c4;color:#b32d2e;font-family:'Oswald',sans-serif;font-size:11px;letter-spacing:.06em;text-transform:uppercase;border-radius:6px;padding:6px 10px;cursor:pointer;flex-shrink:0;}
.es-q-remove:hover{background:#b32d2e;color:#fff;}
.es-q-empty{padding:20px;text-align:center;font-family:'Barlow',sans-serif;color:#777;}
