/* ==========================================================================
   Verde Maquinaria – capa «Esmeralda y naranja»
   Se carga la última: redefine la paleta, redondea y anima.
   ========================================================================== */

:root {
  --color-bg: #FFFFFF;
  --color-primary: #0F7A4A;
  --color-primary-hover: #0B6139;
  --color-secondary: #13965B;
  --color-accent: #D9480F;
  --color-accent-hover: #B83C0B;
  --color-accent-ink: #FFFFFF;
  --color-eco: #13965B;
  --color-text: #13231B;
  --color-text-muted: #5A6B62;
  --color-section-alt: #F1F6F3;
  --color-surface: #FFFFFF;
  --color-border: #E0EAE4;
  --color-stock: #0F7A4A;
  --vm-deep: #0A4D30;
  --vm-mint: #E3F4EB;
  --vm-orange-soft: #FFE6D8;
  --font-heading: "Outfit", system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif;
  --font-body: "Inter", system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif;
  --border-radius-sm: 10px;
  --border-radius-md: 14px;
  --border-radius-lg: 20px;
  --border-radius-btn: 999px;
  --shadow-subtle: 0 1px 2px rgba(10, 77, 48, .06);
  --shadow-card: 0 2px 10px rgba(10, 77, 48, .06);
  --shadow-hover: 0 18px 40px rgba(10, 77, 48, .14);
  --vm-ease: cubic-bezier(.2, .75, .2, 1);
}

::selection { background: var(--vm-orange-soft); color: var(--color-text); }
:focus-visible { outline-color: var(--color-accent); }
h1, h2, h3, h4, h5, h6 { font-weight: 700; letter-spacing: -.02em; }
.vmq-eyebrow, .vm-kicker {
  display: inline-flex; align-items: center; gap: 8px;
  font: 600 12px/1 var(--font-body); letter-spacing: .1em; text-transform: uppercase;
  color: var(--color-primary); background: var(--vm-mint);
  padding: 7px 12px; border-radius: 999px; margin-bottom: 14px;
}

/* ---------- Botones ---------- */
.btn, button.button, a.button, input[type="submit"] {
  border-radius: 999px !important;
  transition: background-color .2s ease, color .2s ease, border-color .2s ease, transform .25s var(--vm-ease), box-shadow .25s ease !important;
}
.btn:hover, a.button:hover, button.button:hover { transform: translateY(-2px); }
.btn-accent, .single_add_to_cart_button, .wc-block-components-checkout-place-order-button, .checkout-button {
  background: var(--color-accent) !important;
  border-color: var(--color-accent) !important;
  color: #fff !important;
}
.btn-accent:hover, .single_add_to_cart_button:hover, .checkout-button:hover {
  background: var(--color-accent-hover) !important;
  border-color: var(--color-accent-hover) !important;
  box-shadow: 0 10px 22px rgba(217, 72, 15, .28) !important;
}
.vm-btn {
  display: inline-flex; align-items: center; gap: 10px; min-height: 48px; padding: 0 22px;
  border-radius: 999px; border: 1.5px solid transparent; cursor: pointer; text-decoration: none;
  font: 600 15px/1 var(--font-body); transition: .25s var(--vm-ease);
}
.vm-btn--accent { background: var(--color-accent); color: #fff; }
.vm-btn--accent:hover { background: var(--color-accent-hover); color: #fff; transform: translateY(-2px); box-shadow: 0 10px 22px rgba(217, 72, 15, .28); }
.vm-btn--accent .vm-ico { transition: transform .25s var(--vm-ease); }
.vm-btn--accent:hover .vm-ico { transform: translateX(4px); }
.vm-btn--line { background: transparent; color: var(--color-primary); border-color: var(--color-border); }
.vm-btn--line:hover { border-color: var(--color-primary); }

/* ---------- Cabecera ---------- */
.vmq-top-bar { background: var(--vm-deep) !important; color: rgba(255, 255, 255, .85) !important; }
.vmq-top-bar a { color: #fff !important; }
.site-header { background: rgba(255, 255, 255, .96) !important; backdrop-filter: saturate(1.4) blur(10px); border-bottom: 1px solid var(--color-border) !important; }
.site-header.is-scrolled { box-shadow: 0 10px 30px rgba(10, 77, 48, .08) !important; }
.main-navigation a { transition: color .2s ease; }
.main-navigation > ul > li > a, #primary-menu > li > a { border-radius: 999px; }
#primary-menu > li > a:hover, #primary-menu > li.current-menu-item > a { color: var(--color-primary) !important; background: var(--vm-mint); }
#primary-menu .sub-menu { border-radius: 16px !important; box-shadow: var(--shadow-hover) !important; border: 1px solid var(--color-border) !important; overflow: hidden; }
.header-search-btn, .header-cart-btn {
  border-radius: 999px !important; background: var(--color-section-alt) !important; color: var(--color-primary) !important;
  transition: background .2s ease, color .2s ease, transform .25s var(--vm-ease) !important;
}
.header-search-btn:hover, .header-cart-btn:hover { background: var(--color-primary) !important; color: #fff !important; transform: translateY(-1px); }
.cart-count-badge { background: var(--color-accent) !important; color: #fff !important; }
.cart-count-badge.vm-bump { animation: vm-bump .6s var(--vm-ease); }
@keyframes vm-bump { 0% { transform: scale(1); } 35% { transform: scale(1.55); } 60% { transform: scale(.9); } 100% { transform: scale(1); } }
.header-search-input-wrap { border-radius: 999px !important; border: 2px solid var(--color-primary) !important; overflow: hidden; }
.header-search-submit { border-radius: 999px !important; background: var(--color-accent) !important; color: #fff !important; }

/* ---------- Slider en marco redondeado ---------- */
.vmq-slider { margin: 18px auto 0 !important; max-width: calc(100% - 36px); border-radius: 28px !important; overflow: hidden; isolation: isolate; }
/* Diapositivas sin imagen: círculos nítidos de tamaño fijo */
.vmq-slide-bg--1 { background: radial-gradient(circle at 80% 46%, #13965B 0 150px, transparent 151px), radial-gradient(circle at 80% 46%, rgba(255,255,255,.08) 0 230px, transparent 231px), var(--color-primary) !important; }
.vmq-slide-bg--2 { background: radial-gradient(circle at 80% 46%, var(--color-accent) 0 140px, transparent 141px), radial-gradient(circle at 80% 46%, rgba(255,255,255,.07) 0 220px, transparent 221px), var(--vm-deep) !important; }
.vmq-slide-bg--3 { background: radial-gradient(circle at 80% 46%, #13965B 0 150px, transparent 151px), radial-gradient(circle at 80% 46%, rgba(255,255,255,.07) 0 230px, transparent 231px), #0B3D28 !important; }
.vmq-slide-bg--4 { background: radial-gradient(circle at 80% 46%, #F07A3A 0 140px, transparent 141px), radial-gradient(circle at 80% 46%, rgba(255,255,255,.08) 0 220px, transparent 221px), var(--color-primary) !important; }
@media (max-width: 760px) { .vmq-slide-bg--plain { background-size: 0 0, 0 0, auto !important; } }
.vmq-slide::before { background: linear-gradient(90deg, rgba(6, 40, 25, .86) 0%, rgba(6, 40, 25, .55) 45%, rgba(6, 40, 25, 0) 80%) !important; }
.vmq-slide-kicker {
  display: inline-flex !important; align-items: center; gap: 8px;
  background: var(--color-accent); color: #fff !important; padding: 8px 14px; border-radius: 999px;
  font-weight: 600 !important; letter-spacing: .06em !important;
}
.vmq-slide-kicker::before { display: none !important; }
.vmq-slide-title { font-weight: 800 !important; letter-spacing: -.03em !important; line-height: 1.02 !important; }
.vmq-slide.is-active .vmq-slide-kicker,
.vmq-slide.is-active .vmq-slide-title,
.vmq-slide.is-active .vmq-slide-text,
.vmq-slide.is-active .vmq-slide-actions { animation: vm-rise .8s var(--vm-ease) both; }
.vmq-slide.is-active .vmq-slide-title { animation-delay: .1s; }
.vmq-slide.is-active .vmq-slide-text { animation-delay: .2s; }
.vmq-slide.is-active .vmq-slide-actions { animation-delay: .3s; }
@keyframes vm-rise { from { opacity: 0; transform: translateY(24px); } to { opacity: 1; transform: none; } }
.vmq-slider-bar { background: var(--vm-deep) !important; border-bottom: 0 !important; }
.vmq-slider-bar-inner { align-items: center !important; }
.vmq-slider-tab { border-radius: 0 !important; border-top: 3px solid rgba(255, 255, 255, .18) !important; color: rgba(255, 255, 255, .72) !important; }
.vmq-slider-tab:hover, .vmq-slider-tab.is-active { color: #fff !important; }
.vmq-slider-tab-num { color: rgba(255, 255, 255, .55) !important; }
.vmq-slider-tab.is-active .vmq-slider-tab-num { color: #FF9A5C !important; }
.vmq-slider-tab-progress { background: var(--color-accent) !important; }
.vmq-slider-arrow { background: rgba(255, 255, 255, .1) !important; border-color: rgba(255, 255, 255, .3) !important; color: #fff !important; }
.vmq-slider-arrow { border-radius: 50% !important; transition: background .2s ease, color .2s ease, transform .25s var(--vm-ease) !important; }
.vmq-slider-arrow:hover { background: var(--color-accent) !important; color: #fff !important; transform: scale(1.06); }
@media (max-width: 640px) { .vmq-slider { max-width: calc(100% - 20px); margin-top: 10px !important; border-radius: 20px !important; } }

/* ---------- Ventajas ---------- */
.vmq-usp-bar { background: transparent !important; border: 0 !important; padding: 22px 0 6px !important; }
.vmq-usp-list { gap: 14px !important; }
.vmq-usp-item { background: var(--color-section-alt); border-radius: 18px; padding: 16px 18px !important; transition: transform .3s var(--vm-ease), box-shadow .3s ease; }
.vmq-usp-item:hover { transform: translateY(-3px); box-shadow: var(--shadow-card); }
.vmq-usp-icon { background: #fff !important; color: var(--color-primary) !important; border-radius: 14px !important; }

/* ---------- Mosaico de categorías ---------- */
.vm-tiles { padding: 34px 0 10px; }
.vm-tiles__grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: 14px; }
.vm-tile {
  display: flex; flex-direction: column; align-items: center; text-align: center; gap: 6px;
  padding: 20px 14px 18px; border-radius: 22px; background: #fff; border: 1px solid var(--color-border);
  text-decoration: none; color: var(--color-text); position: relative; overflow: hidden;
  transition: transform .35s var(--vm-ease), box-shadow .35s ease, border-color .3s ease;
}
.vm-tile::after { content: ""; position: absolute; left: 50%; bottom: -60%; width: 140%; aspect-ratio: 1; border-radius: 50%; background: var(--vm-mint); transform: translateX(-50%) scale(.3); opacity: 0; transition: transform .5s var(--vm-ease), opacity .4s ease; z-index: 0; }
.vm-tile > * { position: relative; z-index: 1; }
.vm-tile:hover { transform: translateY(-5px); box-shadow: var(--shadow-hover); border-color: transparent; }
.vm-tile:hover::after { transform: translateX(-50%) scale(1); opacity: 1; }
.vm-tile__media { width: 76px; height: 76px; border-radius: 50%; display: grid; place-items: center; background: var(--color-section-alt); color: var(--color-primary); overflow: hidden; margin-bottom: 6px; transition: transform .4s var(--vm-ease), background .3s ease, color .3s ease; }
.vm-tile__media img { width: 100%; height: 100%; object-fit: cover; }
.vm-tile:hover .vm-tile__media { transform: scale(1.08) rotate(-4deg); background: var(--color-primary); color: #fff; }
.vm-tile__name { font: 700 15px/1.25 var(--font-heading); }
.vm-tile__count { font-size: 12px; color: var(--color-text-muted); }

/* ---------- Secciones de categoría ---------- */
.category-section { padding: 46px 0 !important; }
.category-section:nth-of-type(even) { background: var(--color-section-alt) !important; }
.category-header-wrap { border-bottom: 0 !important; }
.category-title-group h2 { font-size: clamp(24px, 3vw, 34px) !important; }
.category-link-more {
  border-radius: 999px !important; padding: 10px 16px !important; background: var(--vm-mint) !important;
  color: var(--color-primary) !important; text-decoration: none !important; transition: background .2s ease, color .2s ease !important;
}
.category-link-more:hover { background: var(--color-primary) !important; color: #fff !important; }
.category-link-more svg { transition: transform .25s var(--vm-ease); }
.category-link-more:hover svg { transform: translateX(4px); }

/* ---------- Tarjetas de producto (misma estructura, nuevo acabado) ---------- */
.vmq-product-card {
  border-radius: 20px !important; border: 1px solid var(--color-border) !important; overflow: hidden;
  background: #fff !important; box-shadow: none !important;
  transition: transform .35s var(--vm-ease), box-shadow .35s ease, border-color .3s ease !important;
}
.vmq-product-card:hover { transform: translateY(-6px); box-shadow: var(--shadow-hover) !important; border-color: transparent !important; }
.vmq-product-card .card-image-wrap { background: var(--color-section-alt) !important; border-radius: 16px; margin: 8px 8px 0; overflow: hidden; }
.vmq-product-card .card-image-link img { transition: transform .7s var(--vm-ease) !important; }
.vmq-product-card:hover .card-image-link img { transform: scale(1.07) !important; }
.card-sale-badge { background: var(--color-accent) !important; color: #fff !important; border-radius: 999px !important; }
.card-cat-name { color: var(--color-primary) !important; }
.spec-chip { border-radius: 999px !important; background: var(--color-section-alt) !important; border: 0 !important; }
.price-hero-line ins, .price-hero-line .price-current { color: var(--color-text) !important; }
.btn-card-primary { border-radius: 999px !important; }
.btn-card-cart {
  border-radius: 50% !important; background: var(--color-accent) !important; color: #fff !important; border-color: var(--color-accent) !important;
  transition: transform .3s var(--vm-ease), background .2s ease !important;
}
.btn-card-cart:hover { transform: scale(1.1) rotate(-6deg); background: var(--color-accent-hover) !important; }
.btn-card-cart.loading { opacity: .7; }
.btn-card-cart.vm-added { background: var(--color-primary) !important; border-color: var(--color-primary) !important; animation: vm-bump .6s var(--vm-ease); }
.added_to_cart.wc-forward { border-radius: 999px; }

/* ---------- Asistente ---------- */
.vm-assist { padding: 56px 0; }
.vm-assist__box {
  display: grid; grid-template-columns: .9fr 1.1fr; gap: clamp(24px, 4vw, 56px); align-items: center;
  background: var(--color-primary); color: #fff; border-radius: 32px; padding: clamp(26px, 4vw, 52px);
  position: relative; overflow: hidden; isolation: isolate;
}
.vm-assist__box::before { content: ""; position: absolute; width: 420px; aspect-ratio: 1; border-radius: 50%; background: #13965B; right: -120px; top: -160px; z-index: -1; animation: vm-float 12s ease-in-out infinite; }
.vm-assist__box::after { content: ""; position: absolute; width: 220px; aspect-ratio: 1; border-radius: 50%; background: var(--color-accent); left: -70px; bottom: -110px; z-index: -1; opacity: .9; animation: vm-float 9s ease-in-out infinite reverse; }
@keyframes vm-float { 50% { transform: translate(18px, 14px) scale(1.04); } }
.vm-assist__intro h2 { color: #fff; font-size: clamp(28px, 3.6vw, 44px); margin: 0 0 12px; }
.vm-assist__intro p { color: rgba(255, 255, 255, .82); font-size: 17px; }
.vm-assist .vm-kicker { background: rgba(255, 255, 255, .14); color: #fff; }
.vm-assist__dots { list-style: none; display: flex; gap: 8px; padding: 0; margin: 22px 0 0; }
.vm-assist__dots li { width: 34px; height: 5px; border-radius: 5px; background: rgba(255, 255, 255, .25); transition: background .3s ease; }
.vm-assist__dots li.is-on { background: #fff; }
.vm-assist__stage { background: #fff; color: var(--color-text); border-radius: 24px; padding: clamp(20px, 3vw, 30px); min-height: 280px; position: relative; }
.vm-assist__q { border: 0; margin: 0; padding: 0; min-width: 0; }
.vm-assist__q legend { font: 700 20px/1.25 var(--font-heading); color: var(--color-text); margin-bottom: 18px; padding: 0; display: flex; align-items: center; gap: 10px; }
.vm-assist__q legend span { font: 600 12px/1 var(--font-body); color: var(--color-accent); background: var(--vm-orange-soft); padding: 6px 9px; border-radius: 999px; }
.vm-assist__q.is-in, .vm-assist__result.is-in { animation: vm-slide .45s var(--vm-ease) both; }
@keyframes vm-slide { from { opacity: 0; transform: translateX(26px); } to { opacity: 1; transform: none; } }
.vm-assist__opts { display: grid; grid-template-columns: repeat(2, 1fr); gap: 10px; }
.vm-opt {
  display: flex; align-items: center; gap: 12px; text-align: left; padding: 16px; cursor: pointer;
  background: var(--color-section-alt); border: 2px solid transparent; border-radius: 16px;
  font: 600 15px/1.3 var(--font-body); color: var(--color-text);
  transition: border-color .2s ease, background .2s ease, transform .25s var(--vm-ease);
}
.vm-opt .vm-ico { color: var(--color-primary); flex: none; transition: transform .3s var(--vm-ease); }
.vm-opt:hover { border-color: var(--color-primary); background: #fff; transform: translateY(-2px); }
.vm-opt:hover .vm-ico { transform: scale(1.12) rotate(-6deg); }
.vm-opt.is-picked { border-color: var(--color-accent); background: var(--vm-orange-soft); }
.vm-opt.is-picked .vm-ico { color: var(--color-accent); }
.vm-assist__result .vm-kicker { background: var(--vm-orange-soft); color: var(--color-accent); }
.vm-assist__tip { font-size: 18px; line-height: 1.55; color: var(--color-text); margin: 0 0 22px; }
.vm-assist__actions { display: flex; flex-wrap: wrap; gap: 10px; }
.vm-assist__back { position: absolute; right: 22px; top: 22px; background: none; border: 0; color: var(--color-text-muted); cursor: pointer; font: 600 13px/1 var(--font-body); padding: 6px; }
.vm-assist__back:hover { color: var(--color-primary); }
.vm-assist [hidden] { display: none !important; }
@media (max-width: 900px) { .vm-assist__box { grid-template-columns: 1fr; } }
@media (max-width: 520px) { .vm-assist__opts { grid-template-columns: 1fr; } .vm-assist__box { border-radius: 24px; } }

/* ---------- Guía y banda de contacto ---------- */
.vmq-guide { background: var(--color-section-alt) !important; }
.vmq-guide-facts > div { background: #fff; border-radius: 18px; padding: 18px 20px !important; border: 0 !important; transition: transform .3s var(--vm-ease), box-shadow .3s ease; }
.vmq-guide-facts > div:hover { transform: translateY(-3px); box-shadow: var(--shadow-card); }
.vmq-guide-facts dt { color: var(--color-primary) !important; }
.vmq-contact-banner { background: var(--vm-deep) !important; border-radius: 28px; margin: 40px 18px !important; overflow: hidden; }

/* ---------- Pie ---------- */
.site-footer { background: #062A1B !important; border-radius: 32px 32px 0 0; }
.site-footer h4 { color: #fff !important; }
.site-footer a:hover { color: #FF9A5C !important; }
.vmq-back-to-top { border-radius: 50% !important; background: var(--color-accent) !important; color: #fff !important; }

/* ---------- Tienda, ficha y carrito ---------- */
.woocommerce-pagination .page-numbers li a, .woocommerce-pagination .page-numbers li span { border-radius: 999px !important; }
.woocommerce-pagination .page-numbers li span.current { background: var(--color-primary) !important; color: #fff !important; }
.widget, .vmq-shop-sidebar .widget { border-radius: 18px; }
.woocommerce-product-gallery, .woocommerce-product-gallery__image img { border-radius: 20px; }
.woocommerce-tabs ul.tabs li { border-radius: 999px 999px 0 0 !important; }
input[type="text"], input[type="email"], input[type="tel"], input[type="search"], input[type="number"], select, textarea { border-radius: 12px; }
.woocommerce-message, .woocommerce-info { border-radius: 14px; border-top-color: var(--color-primary) !important; }

/* ---------- Aparición al desplazarse ---------- */
.vm-anim [data-vm-reveal] { opacity: 0; transform: translateY(26px); transition: opacity .8s var(--vm-ease) var(--vm-delay, 0s), transform .8s var(--vm-ease) var(--vm-delay, 0s); }
.vm-anim [data-vm-reveal].is-in { opacity: 1; transform: none; }
.vm-anim .vmq-product-card[data-vm-reveal].is-in:hover { transform: translateY(-6px); transition-delay: 0s; }
.vm-anim .vm-tile[data-vm-reveal].is-in:hover { transform: translateY(-5px); transition-delay: 0s; }

@media (prefers-reduced-motion: reduce) {
  .vm-assist__box::before, .vm-assist__box::after { animation: none; }
  .vmq-slide.is-active .vmq-slide-kicker, .vmq-slide.is-active .vmq-slide-title,
  .vmq-slide.is-active .vmq-slide-text, .vmq-slide.is-active .vmq-slide-actions { animation: none; }
}
