/* ============================================================
   Ciclo Vida — Dark Theme
   Bike shop storefront, Coyoacán CDMX.
   Loads AFTER storefront.css + valdi-theme.css to override the
   old (dental) light look with a sleek dark, yellow-accent design
   inspired by https://ecommerce-cliclovida.vercel.app
   ============================================================ */

/* ============================================================
   Contraste global de páginas de contenido (carrito, checkout,
   pedidos, confirmación, login/registro, detalle de producto).
   storefront.css incluye un tema oscuro con buen contraste pero
   está encerrado tras @media(prefers-color-scheme:dark)+.dark-mode,
   que nunca se activa -> el texto salía oscuro sobre fondo oscuro.
   Aquí re-mapeamos esos tokens SIEMPRE dentro de la tienda.
   ============================================================ */
body.store-body{
  --bg-body:#0a0a0a;
  --bg-card:#111111;
  --bg-input:#0a0a0a;
  --gray-50:#141414;
  --gray-100:#1a1a1a;
  --text-primary:#f1f5f9;
  --text-secondary:#9ca3af;
  --text-heading:#ffffff;
  --border-color:rgba(255,255,255,.12);
  --border-light:rgba(255,255,255,.08);
}
/* Paneles que en el tema claro eran blancos -> superficie oscura */
body.store-body .cart-summary,
body.store-body .cart-items,
body.store-body .checkout-section,
body.store-body .checkout-summary,
body.store-body .checkout-guest__card,
body.store-body .confirmation__section,
body.store-body .order-card,
body.store-body .orders-cards,
body.store-body .orders-table,
body.store-body .auth-card,
body.store-body .auth-form{
  background:#111111 !important;
  border-color:rgba(255,255,255,.10) !important;
  color:#e5e7eb;
}
/* Nombres, precios y subtotales del carrito legibles */
body.store-body .cart-item__name,
body.store-body .cart-item__subtotal,
body.store-body .cart-summary__title,
body.store-body .cart-summary__row--total,
body.store-body .store-page-title{ color:#ffffff !important; }
body.store-body .cart-item__sku,
body.store-body .cart-item__unit-price,
body.store-body .cart-summary__row,
body.store-body .store-breadcrumb,
body.store-body .cart-coupon__label{ color:#cbd5e1 !important; }
/* Campos de formulario oscuros (cupón, checkout, login/registro) */
body.store-body .cart-coupon__input,
body.store-body input[type=text],
body.store-body input[type=email],
body.store-body input[type=tel],
body.store-body input[type=number],
body.store-body input[type=password],
body.store-body input[type=search],
body.store-body textarea,
body.store-body select{
  background:#0a0a0a !important;
  color:#fff !important;
  border-color:rgba(255,255,255,.15) !important;
}
body.store-body .cart-coupon__input::placeholder,
body.store-body input::placeholder,
body.store-body textarea::placeholder{ color:#6b7280 !important; }
/* Botones de cantidad del carrito en oscuro */
body.store-body .cart-item__qty-btn,
body.store-body .cart-item__qty-input{
  background:#0a0a0a !important;
  color:#fff !important;
  border-color:rgba(255,255,255,.15) !important;
}

/* Miniatura de categoría como ÍCONO de marca (catálogo) */
.store-sidebar__thumb--icon{
  width:40px;height:40px;flex-shrink:0;
  display:flex;align-items:center;justify-content:center;
  border-radius:12px;
  background:#0a0a0a;
  border:1px solid rgba(234,179,8,.35);
  color:#eab308;
  font-size:18px;
  transition:background .15s ease,border-color .15s ease,color .15s ease;
}
.store-sidebar__link-enhanced:hover .store-sidebar__thumb--icon,
.store-sidebar__link-enhanced.active .store-sidebar__thumb--icon{
  background:#eab308;color:#0a0a0a;border-color:#eab308;
}

:root {
  /* ---- Palette ---- */
  --cv-ink:        #0a0a0a;   /* page background */
  --cv-surface:    #111111;   /* card bg */
  --cv-surface-2:  #1a1a1a;   /* raised card bg */
  --cv-surface-3:  #0d0d0d;   /* deep panel */
  --cv-white:      #ffffff;
  --cv-muted:      #9ca3af;   /* muted gray */
  --cv-muted-2:    #d1d5db;   /* lighter gray */
  --cv-accent:     #eab308;   /* yellow */
  --cv-accent-hov: #ca8a04;
  --cv-accent-lt:  #fde047;
  --cv-green:      #16a34a;   /* success / price */
  --cv-green-hov:  #15803d;
  --cv-whatsapp:   #25D366;
  --cv-border:     rgba(255,255,255,.08);
  --cv-border-2:   rgba(255,255,255,.12);
  --cv-radius:     1rem;      /* 16px cards */
  --cv-radius-sm:  .75rem;
  --cv-container:  1280px;

  /* Re-map the storefront/valdi variables so inherited components go dark */
  --valdi-primary:         #eab308;
  --valdi-primary-light:   #fde047;
  --valdi-primary-dark:    #ca8a04;
  --valdi-primary-darkest: #0a0a0a;
  --valdi-accent:          #eab308;
  --valdi-success:         #16a34a;
  --valdi-white:           #0a0a0a;
  --valdi-neutral-100:     #1a1a1a;
  --valdi-neutral-200:     rgba(255,255,255,.12);
  --valdi-neutral-300:     #9ca3af;
  --valdi-neutral-400:     #9ca3af;
  --valdi-neutral-500:     #d1d5db;
  --valdi-neutral-600:     #ffffff;
  --valdi-neutral-700:     #ffffff;

  --color-primary:    #eab308;
  --color-primary-dark:#ca8a04;
  --color-accent:     #eab308;
  --color-text:       #ffffff;
  --color-text-muted: #9ca3af;
  --color-bg:         #0a0a0a;
  --color-bg-soft:    #111111;
  --color-border:     rgba(255,255,255,.10);
}

/* ============================================================
   BASE
   ============================================================ */
body,
body.store-body {
  background: var(--cv-ink) !important;
  color: var(--cv-white) !important;
  font-family: 'Inter', system-ui, -apple-system, 'Segoe UI', sans-serif !important;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

h1, h2, h3, h4, h5, h6,
.valdi-section__title, .valdi-vhero__title,
.cv-title, .cv-hero__title {
  font-family: 'Poppins', system-ui, sans-serif !important;
  color: var(--cv-white);
}

a { color: inherit; }

/* Dark custom scrollbar */
* { scrollbar-color: var(--cv-accent) #111; scrollbar-width: thin; }
::-webkit-scrollbar { width: 11px; height: 11px; }
::-webkit-scrollbar-track { background: #111; }
::-webkit-scrollbar-thumb { background: var(--cv-accent); border-radius: 8px; border: 2px solid #111; }
::-webkit-scrollbar-thumb:hover { background: var(--cv-accent-hov); }

.cv-container { max-width: var(--cv-container); margin: 0 auto; padding: 0 1.5rem; }

/* ============================================================
   TOPBAR
   ============================================================ */
.valdi-topbar {
  background: #000 !important;
  border-bottom: 1px solid var(--cv-border) !important;
  color: var(--cv-muted) !important;
}
.valdi-topbar__inner { max-width: var(--cv-container) !important; }
.valdi-topbar__msg,
.valdi-topbar__phone,
.valdi-topbar a, .valdi-topbar a:link, .valdi-topbar a:visited,
.valdi-topbar i { color: var(--cv-muted-2) !important; }
.valdi-topbar__phone:hover,
.valdi-topbar__social a:hover,
.valdi-topbar a:hover { color: var(--cv-accent) !important; }
.valdi-topbar__social a { color: var(--cv-muted) !important; }

/* ============================================================
   HEADER
   ============================================================ */
.valdi-header {
  background: rgba(10,10,10,.85) !important;
  backdrop-filter: saturate(150%) blur(12px);
  -webkit-backdrop-filter: saturate(150%) blur(12px);
  border-bottom: 1px solid var(--cv-border) !important;
  box-shadow: none !important;
  position: sticky; top: 0; z-index: 900;
}
.valdi-header__inner { max-width: var(--cv-container) !important; }
.valdi-header__logo-text { color: var(--cv-white) !important; font-family: 'Poppins', sans-serif !important; font-weight: 800 !important; }
.valdi-header__nav a,
.valdi-header__menu > li > a {
  color: var(--cv-muted-2) !important;
  font-weight: 500 !important;
  transition: color .2s ease;
}
.valdi-header__menu > li > a:hover,
.valdi-header__menu > li.is-active > a { color: var(--cv-accent) !important; }
.valdi-header__caret { color: inherit !important; }

.valdi-header__iconbtn { color: var(--cv-muted-2) !important; }
.valdi-header__iconbtn:hover { color: var(--cv-accent) !important; background: rgba(255,255,255,.06) !important; }

.valdi-header__search,
.store-header__search-form {
  background: var(--cv-surface-2) !important;
  border: 1px solid var(--cv-border) !important;
}
.valdi-header__search-input,
.store-header__search-input {
  background: transparent !important;
  color: var(--cv-white) !important;
}
.valdi-header__search-input::placeholder,
.store-header__search-input::placeholder { color: var(--cv-muted) !important; }
.valdi-header__search-btn,
.store-header__search-btn { color: var(--cv-muted-2) !important; }
.valdi-header__search-btn:hover { color: var(--cv-accent) !important; }

.store-header__cart-badge,
.bottom-nav__badge { background: var(--cv-accent) !important; color: #0a0a0a !important; }

.store-header__mobile-search { background: var(--cv-surface) !important; border-bottom: 1px solid var(--cv-border) !important; }

/* ============================================================
   MEGAMENU (Catálogo dropdown)
   ============================================================ */
.valdi-header__dropdown,
.valdi-megamenu {
  background: var(--cv-surface) !important;
  border: 1px solid var(--cv-border-2) !important;
  box-shadow: 0 24px 60px rgba(0,0,0,.6) !important;
  border-radius: var(--cv-radius) !important;
}
.valdi-megamenu__head { border-bottom: 1px solid var(--cv-border) !important; }
.valdi-megamenu__eyebrow { color: var(--cv-accent) !important; letter-spacing: .08em; }
.valdi-megamenu__view-all { color: var(--cv-muted-2) !important; }
.valdi-megamenu__view-all:hover { color: var(--cv-accent) !important; }
.valdi-megamenu__item { border: 1px solid transparent !important; border-radius: .75rem !important; }
.valdi-megamenu__item:hover { background: var(--cv-surface-2) !important; border-color: var(--cv-accent) !important; }
.valdi-megamenu__thumb { background: #000 !important; border: 1px solid var(--cv-border) !important; }
.valdi-megamenu__name { color: var(--cv-white) !important; }
.valdi-megamenu__count { color: var(--cv-muted) !important; }

/* ============================================================
   MOBILE NAV DRAWER
   ============================================================ */
.store-nav-drawer { background: var(--cv-surface) !important; color: var(--cv-white) !important; }
.store-nav-drawer__header { border-bottom: 1px solid var(--cv-border) !important; }
.store-nav-drawer__title { color: var(--cv-white) !important; }
.store-nav-drawer__list a { color: var(--cv-muted-2) !important; }
.store-nav-drawer__list a:hover { color: var(--cv-accent) !important; background: rgba(255,255,255,.05) !important; }
.store-nav-drawer__list a i { color: var(--cv-accent) !important; }
.store-nav-drawer__section { color: var(--cv-muted) !important; }
.store-nav-drawer__close { color: var(--cv-white) !important; }
.store-nav-drawer__footer { border-top: 1px solid var(--cv-border) !important; }
.store-nav-drawer__footer a { color: var(--cv-muted-2) !important; }
.valdi-drawer-cat { background: var(--cv-surface-2) !important; border: 1px solid var(--cv-border) !important; color: var(--cv-white) !important; }
.valdi-drawer-cat__name { color: var(--cv-white) !important; }
.valdi-drawer-cat__count { color: var(--cv-muted) !important; background: rgba(234,179,8,.15) !important; }

/* ============================================================
   BUTTONS  (valdi + cv)
   ============================================================ */
.valdi-btn, .cv-btn {
  display: inline-flex; align-items: center; gap: .5rem;
  border-radius: 9999px !important;
  font-weight: 600 !important;
  padding: .75rem 1.5rem !important;
  border: 2px solid transparent;
  cursor: pointer; text-decoration: none;
  transition: background .2s, color .2s, border-color .2s, transform .1s;
  line-height: 1;
}
.valdi-btn:active, .cv-btn:active { transform: scale(.95); }

.valdi-btn--primary, .cv-btn--primary,
.valdi-vhero .valdi-btn--primary {
  background: var(--cv-accent) !important;
  color: #0a0a0a !important;
  border-color: var(--cv-accent) !important;
}
.valdi-btn--primary:hover, .cv-btn--primary:hover,
.valdi-vhero .valdi-btn--primary:hover {
  background: var(--cv-accent-hov) !important;
  border-color: var(--cv-accent-hov) !important;
  color: #0a0a0a !important;
}

.valdi-btn--ghost, .valdi-btn--ghost-light,
.valdi-vhero .valdi-btn--ghost-light,
.cv-btn--outline {
  background: transparent !important;
  color: var(--cv-white) !important;
  border: 2px solid var(--cv-white) !important;
}
.valdi-btn--ghost:hover, .valdi-btn--ghost-light:hover,
.valdi-vhero .valdi-btn--ghost-light:hover,
.cv-btn--outline:hover {
  background: var(--cv-white) !important;
  color: #0a0a0a !important;
}

.cv-btn--green { background: var(--cv-green) !important; color: #fff !important; border-color: var(--cv-green) !important; }
.cv-btn--green:hover { background: var(--cv-green-hov) !important; border-color: var(--cv-green-hov) !important; }
.cv-btn--wa { background: var(--cv-whatsapp) !important; color: #05331b !important; border-color: var(--cv-whatsapp) !important; }
.cv-btn--wa:hover { filter: brightness(1.08); color: #05331b !important; }
.cv-btn--lg { padding: .95rem 2rem !important; font-size: 1.0625rem; }

/* Generic storefront button fallbacks */
.store-btn--primary { background: var(--cv-accent) !important; color: #0a0a0a !important; border-color: var(--cv-accent) !important; }
.store-btn--primary:hover { background: var(--cv-accent-hov) !important; }

/* ============================================================
   SECTIONS / TITLES
   ============================================================ */
.valdi-section,
.valdi-catslider-wrap,
.valdi-features,
.cv-section {
  background: var(--cv-ink) !important;
}
.valdi-section:nth-of-type(even) { background: var(--cv-surface-3) !important; }
.valdi-section__inner,
.cv-section__inner { max-width: var(--cv-container) !important; }

.valdi-section__title, .cv-title {
  color: var(--cv-white) !important;
  font-family: 'Poppins', sans-serif !important;
  font-weight: 700 !important;
  letter-spacing: -.025em !important;
}
.valdi-section__subtitle, .cv-sub {
  color: var(--cv-muted) !important;
}
.cv-eyebrow {
  display: inline-block;
  text-transform: uppercase;
  letter-spacing: .12em;
  font-size: .78rem;
  font-weight: 700;
  color: var(--cv-accent);
  margin-bottom: .6rem;
}
.cv-title .cv-accent, .cv-hero__title .cv-accent { color: var(--cv-accent); }

/* ============================================================
   PRODUCT CARDS  (index valdi cards + catalog JS cards)
   ============================================================ */
.valdi-product-card,
.product-card {
  background: var(--cv-surface) !important;
  border: 1px solid var(--cv-border) !important;
  border-radius: var(--cv-radius) !important;
  overflow: hidden;
  transition: border-color .25s, transform .25s, box-shadow .25s;
  color: var(--cv-white) !important;
}
.valdi-product-card:hover,
.product-card:hover {
  border-color: var(--cv-accent) !important;
  transform: translateY(-6px);
  box-shadow: 0 18px 40px rgba(0,0,0,.5) !important;
}
.valdi-product-card__img-wrap,
.product-card__image-wrap {
  background: #fff !important;
  aspect-ratio: 4 / 3;
  overflow: hidden;
}
.valdi-product-card__img-wrap img,
.product-card__image { transition: transform .4s ease; }
.valdi-product-card:hover .valdi-product-card__img-wrap img,
.product-card:hover .product-card__image { transform: scale(1.06); }

.valdi-product-card__name,
.product-card__name { color: var(--cv-white) !important; font-weight: 600 !important; }
.valdi-product-card__price,
.product-card__price-current {
  color: var(--cv-green) !important;
  font-weight: 700 !important;
}
.product-card__price-original { color: var(--cv-muted) !important; text-decoration: line-through; }
.product-card__badge--new { background: var(--cv-green) !important; color: #fff !important; }
.product-card__badge--sale, .product-card__save { background: var(--cv-accent) !important; color: #0a0a0a !important; }
.product-card__badge--featured { background: var(--cv-accent) !important; color: #0a0a0a !important; }
.product-card__qty-btn,
.product-card__add-btn,
.product-card__quick-add .store-btn {
  background: var(--cv-accent) !important; color: #0a0a0a !important; border-color: var(--cv-accent) !important;
}

/* ============================================================
   FEATURE COVER BANNERS (home 3-up) & catslider
   ============================================================ */
.valdi-feature-cover { border-radius: var(--cv-radius) !important; border: 1px solid var(--cv-border) !important; }
.valdi-feature-cover__title { font-family: 'Poppins', sans-serif !important; }
.valdi-catslider__title { color: var(--cv-white) !important; font-family: 'Poppins', sans-serif !important; }
.valdi-catslide { background: var(--cv-surface) !important; border: 1px solid var(--cv-border) !important; border-radius: var(--cv-radius) !important; }
.valdi-catslide:hover { border-color: var(--cv-accent) !important; }
.valdi-catslide__name { color: var(--cv-white) !important; }
.valdi-catslide__count { color: var(--cv-muted) !important; }
.valdi-catslide__body { background: var(--cv-surface) !important; }
.valdi-catslider__arrow { background: var(--cv-surface-2) !important; color: var(--cv-white) !important; border: 1px solid var(--cv-border-2) !important; }
.valdi-catslider__arrow:hover { background: var(--cv-accent) !important; color: #0a0a0a !important; }
.valdi-catslider__dot { background: rgba(255,255,255,.25) !important; }
.valdi-catslider__dot.is-active { background: var(--cv-accent) !important; }

/* ============================================================
   HERO (valdi video hero, restyled dark)
   ============================================================ */
.valdi-vhero__overlay {
  background: linear-gradient(180deg, rgba(10,10,10,.39) 0%, rgba(10,10,10,.53) 55%, rgba(10,10,10,.67) 100%) !important;
}
.valdi-vhero__title, .valdi-vhero__subtitle { color: var(--cv-white) !important; }
.valdi-vhero__dot { background: rgba(255,255,255,.35) !important; }
.valdi-vhero__dot.is-active { background: var(--cv-accent) !important; }

/* ============================================================
   CATALOG / SIDEBAR / FILTERS (dark)
   ============================================================ */
.store-layout, .store-catalog { background: var(--cv-ink) !important; }
.store-breadcrumb, .store-breadcrumb a { color: var(--cv-muted) !important; }
.store-breadcrumb a:hover { color: var(--cv-accent) !important; }
.store-sidebar, .store-filters {
  background: var(--cv-surface) !important;
  border: 1px solid var(--cv-border) !important;
  border-radius: var(--cv-radius) !important;
  color: var(--cv-white) !important;
}
.store-sidebar__title, .store-filters__label { color: var(--cv-white) !important; }
.store-sidebar__list a, .store-sidebar__link-enhanced { color: var(--cv-muted-2) !important; }
.store-sidebar__list a:hover, .store-sidebar__link-enhanced:hover,
.store-sidebar__list a.active { color: var(--cv-accent) !important; background: rgba(234,179,8,.1) !important; }
.store-sidebar__count { background: rgba(234,179,8,.15) !important; color: var(--cv-accent) !important; }
.store-filters__search-input, .store-filters__select, .store-filters__price-input {
  background: var(--cv-surface-2) !important; color: var(--cv-white) !important; border: 1px solid var(--cv-border) !important;
}
.store-filters__search-input::placeholder { color: var(--cv-muted) !important; }
.store-filters__chip, .store-filters__toggle-btn { background: var(--cv-surface-2) !important; color: var(--cv-muted-2) !important; border: 1px solid var(--cv-border) !important; }
.store-filters__chip.active, .store-filters__chip:hover { background: var(--cv-accent) !important; color: #0a0a0a !important; border-color: var(--cv-accent) !important; }
.store-filters__count { color: var(--cv-muted) !important; }
.store-pagination button, .store-pagination a { background: var(--cv-surface-2) !important; color: var(--cv-white) !important; border: 1px solid var(--cv-border) !important; }
.store-pagination .active, .store-pagination button:hover { background: var(--cv-accent) !important; color: #0a0a0a !important; }
.skeleton-card { background: var(--cv-surface) !important; border: 1px solid var(--cv-border) !important; }
.skeleton-card__image, .skeleton-card__line { background: linear-gradient(90deg,#1a1a1a,#242424,#1a1a1a) !important; }

/* ============================================================
   FOOTER (dark)
   ============================================================ */
.store-footer {
  background: #000 !important;
  color: var(--cv-muted-2) !important;
  border-top: 1px solid var(--cv-border) !important;
}
.store-footer__main { max-width: var(--cv-container) !important; }
.store-footer__col-title { color: var(--cv-white) !important; font-family: 'Poppins', sans-serif !important; font-weight: 700 !important; }
.store-footer__brand-desc { color: var(--cv-muted) !important; }
.store-footer a, .store-footer__links-list a, .store-footer__contact-item { color: var(--cv-muted-2) !important; }
.store-footer a:hover, .store-footer__links-list a:hover { color: var(--cv-accent) !important; }
.store-footer__col-title, .store-footer__links-list a i, .store-footer__contact-item i { color: var(--cv-accent) !important; }
.store-footer__social a {
  background: var(--cv-surface-2) !important;
  color: var(--cv-white) !important;
  border: 1px solid var(--cv-border) !important;
}
.store-footer__social a:hover { background: var(--cv-accent) !important; color: #0a0a0a !important; border-color: var(--cv-accent) !important; }
.store-footer__trust { background: var(--cv-surface-3) !important; border-top: 1px solid var(--cv-border) !important; border-bottom: 1px solid var(--cv-border) !important; }
.store-footer__trust-item { color: var(--cv-muted-2) !important; }
.store-footer__trust-item i { color: var(--cv-accent) !important; }
.store-footer__copyright { background: #000 !important; color: var(--cv-muted) !important; border-top: 1px solid var(--cv-border) !important; }
.store-footer__copyright a { color: var(--cv-muted-2) !important; }
.store-footer__copyright a:hover { color: var(--cv-accent) !important; }

/* Bottom mobile nav */
.bottom-nav { background: rgba(10,10,10,.95) !important; border-top: 1px solid var(--cv-border) !important; }
.bottom-nav__item { color: var(--cv-muted) !important; }
.bottom-nav__item.active, .bottom-nav__item:hover { color: var(--cv-accent) !important; }

/* ============================================================
   NEW REUSABLE CV COMPONENTS (for Taller / Contacto / Noticias)
   ============================================================ */
.cv-section { padding: 4.5rem 0; }
.cv-section--tight { padding: 3rem 0; }
.cv-section--alt { background: var(--cv-surface-3) !important; }
.cv-section__inner { max-width: var(--cv-container); margin: 0 auto; padding: 0 1.5rem; }
.cv-section__head { text-align: center; max-width: 720px; margin: 0 auto 2.75rem; }
.cv-title { font-size: clamp(1.8rem, 3.5vw, 2.6rem); line-height: 1.1; margin: 0 0 .75rem; }
.cv-title--sm { font-size: clamp(1.4rem, 2.6vw, 1.9rem); }
.cv-sub { font-size: 1.05rem; line-height: 1.6; margin: 0 auto; max-width: 640px; }

/* Hero */
.cv-hero {
  position: relative;
  background:
    radial-gradient(1200px 500px at 80% -10%, rgba(234,179,8,.16), transparent 60%),
    radial-gradient(900px 500px at 0% 110%, rgba(22,163,74,.12), transparent 55%),
    var(--cv-ink);
  border-bottom: 1px solid var(--cv-border);
  overflow: hidden;
}
.cv-hero__inner { max-width: var(--cv-container); margin: 0 auto; padding: 5rem 1.5rem 4rem; }
.cv-hero__title { font-size: clamp(2.2rem, 5vw, 3.5rem); font-weight: 800; line-height: 1.05; letter-spacing: -.02em; margin: .5rem 0 1rem; }
.cv-hero__sub { color: var(--cv-muted-2); font-size: 1.15rem; line-height: 1.6; max-width: 640px; margin: 0 0 1.75rem; }
.cv-hero__actions { display: flex; flex-wrap: wrap; gap: 1rem; }
.cv-hero--center .cv-hero__inner { text-align: center; }
.cv-hero--center .cv-hero__sub { margin-left: auto; margin-right: auto; }
.cv-hero--center .cv-hero__actions { justify-content: center; }

/* Trust / stat row */
.cv-trust-row { display: flex; flex-wrap: wrap; gap: 1.5rem 2.5rem; margin-top: 2rem; }
.cv-trust-item { display: flex; align-items: center; gap: .6rem; color: var(--cv-muted-2); font-weight: 500; font-size: .95rem; }
.cv-trust-item i { color: var(--cv-accent); font-size: 1.1rem; }

/* Grid helpers */
.cv-grid { display: grid; gap: 1.5rem; }
.cv-grid--2 { grid-template-columns: repeat(2, 1fr); }
.cv-grid--3 { grid-template-columns: repeat(3, 1fr); }
.cv-grid--4 { grid-template-columns: repeat(4, 1fr); }

/* Generic card */
.cv-card {
  background: var(--cv-surface);
  border: 1px solid var(--cv-border);
  border-radius: var(--cv-radius);
  padding: 1.75rem;
  transition: border-color .25s, transform .25s, box-shadow .25s;
}
.cv-card:hover { border-color: var(--cv-accent); transform: translateY(-4px); box-shadow: 0 16px 40px rgba(0,0,0,.5); }
.cv-card__icon {
  width: 3rem; height: 3rem; border-radius: .8rem;
  display: grid; place-items: center;
  background: rgba(234,179,8,.14); color: var(--cv-accent);
  font-size: 1.35rem; margin-bottom: 1rem;
}
.cv-card__title { font-family: 'Poppins', sans-serif; font-weight: 600; font-size: 1.15rem; color: var(--cv-white); margin: 0 0 .5rem; }
.cv-card__text { color: var(--cv-muted); line-height: 1.6; margin: 0; font-size: .95rem; }

/* Service card (taller) */
.cv-service-card {
  background: var(--cv-surface);
  border: 1px solid var(--cv-border);
  border-radius: var(--cv-radius);
  padding: 1.5rem;
  display: flex; flex-direction: column; gap: .5rem;
  transition: border-color .25s, transform .25s, box-shadow .25s;
}
.cv-service-card:hover { border-color: var(--cv-accent); transform: translateY(-4px); box-shadow: 0 16px 40px rgba(0,0,0,.5); }
.cv-service-card__name { font-family: 'Poppins', sans-serif; font-weight: 600; font-size: 1.1rem; color: var(--cv-white); margin: 0; }
.cv-service-card__desc { color: var(--cv-muted); line-height: 1.55; font-size: .92rem; margin: 0; flex: 1; }
.cv-service-card__meta { display: flex; align-items: center; justify-content: space-between; margin-top: .75rem; padding-top: .9rem; border-top: 1px solid var(--cv-border); }
.cv-service-card__price { color: var(--cv-green); font-weight: 800; font-size: 1.3rem; font-family: 'Poppins', sans-serif; }
.cv-service-card__time { color: var(--cv-muted); font-size: .85rem; display: inline-flex; align-items: center; gap: .35rem; }

/* Badge / chip */
.cv-badge {
  display: inline-flex; align-items: center; gap: .35rem;
  padding: .3rem .75rem; border-radius: 9999px;
  font-size: .78rem; font-weight: 600;
  background: rgba(234,179,8,.14); color: var(--cv-accent);
  border: 1px solid rgba(234,179,8,.25);
}
.cv-badge--green { background: rgba(22,163,74,.15); color: #34d399; border-color: rgba(22,163,74,.3); }
.cv-chip { display:inline-block; padding: .2rem .65rem; border-radius: 9999px; font-size: .72rem; font-weight: 600; text-transform: uppercase; letter-spacing: .05em; background: rgba(255,255,255,.06); color: var(--cv-muted-2); }

/* Stars */
.cv-stars { color: var(--cv-accent); font-size: .95rem; letter-spacing: .05em; }

/* Teaser band (home taller teaser / policies) */
.cv-band {
  background: linear-gradient(135deg, rgba(234,179,8,.10), rgba(22,163,74,.06)), var(--cv-surface);
  border: 1px solid var(--cv-border-2);
  border-radius: 1.25rem;
  padding: 2.5rem;
}
.cv-band__list { list-style: none; padding: 0; margin: 1.25rem 0; display: grid; gap: .65rem; }
.cv-band__list li { display: flex; align-items: flex-start; gap: .6rem; color: var(--cv-muted-2); line-height: 1.5; }
.cv-band__list li i { color: var(--cv-green); margin-top: .2rem; }

/* Testimonials */
.cv-testimonial {
  background: var(--cv-surface);
  border: 1px solid var(--cv-border);
  border-radius: var(--cv-radius);
  padding: 1.5rem;
  display: flex; flex-direction: column; gap: .85rem;
}
.cv-testimonial__text { color: var(--cv-muted-2); line-height: 1.6; font-size: .95rem; margin: 0; flex: 1; }
.cv-testimonial__author { display: flex; align-items: center; gap: .75rem; }
.cv-testimonial__avatar { width: 2.5rem; height: 2.5rem; border-radius: 50%; background: rgba(234,179,8,.16); color: var(--cv-accent); display: grid; place-items: center; font-weight: 700; }
.cv-testimonial__name { color: var(--cv-white); font-weight: 600; font-size: .95rem; margin: 0; }
.cv-testimonial__loc { color: var(--cv-muted); font-size: .82rem; margin: 0; }

/* Newsletter band */
.cv-newsletter {
  background: linear-gradient(135deg, var(--cv-accent), var(--cv-accent-hov));
  border-radius: 1.25rem;
  padding: 3rem 2rem;
  text-align: center;
  color: #0a0a0a;
}
.cv-newsletter__title { font-family: 'Poppins', sans-serif; font-weight: 800; font-size: clamp(1.5rem,3vw,2.1rem); color: #0a0a0a; margin: 0 0 .5rem; }
.cv-newsletter__sub { color: rgba(10,10,10,.8); margin: 0 0 1.5rem; font-weight: 500; }
.cv-newsletter__form { display: flex; gap: .75rem; max-width: 480px; margin: 0 auto; flex-wrap: wrap; }
.cv-newsletter__input { flex: 1; min-width: 220px; padding: .85rem 1.25rem; border-radius: 9999px; border: none; background: #0a0a0a; color: #fff; font-size: 1rem; }
.cv-newsletter__input::placeholder { color: var(--cv-muted); }
.cv-newsletter__btn { background: #0a0a0a !important; color: var(--cv-accent) !important; border-color: #0a0a0a !important; }
.cv-newsletter__btn:hover { background: #1a1a1a !important; color: var(--cv-accent-lt) !important; }

/* Category cards (home) */
.cv-cat-card {
  position: relative; display: block; overflow: hidden;
  border-radius: var(--cv-radius); border: 1px solid var(--cv-border);
  background: var(--cv-surface); aspect-ratio: 4/3;
  transition: border-color .25s, transform .25s;
}
.cv-cat-card:hover { border-color: var(--cv-accent); transform: translateY(-4px); }
.cv-cat-card__img { width: 100%; height: 100%; object-fit: cover; transition: transform .4s; }
.cv-cat-card:hover .cv-cat-card__img { transform: scale(1.06); }
.cv-cat-card__overlay { position: absolute; inset: 0; background: linear-gradient(0deg, rgba(0,0,0,.85), rgba(0,0,0,.1)); display: flex; flex-direction: column; justify-content: flex-end; padding: 1.25rem; }
.cv-cat-card__name { font-family: 'Poppins', sans-serif; font-weight: 700; color: #fff; font-size: 1.15rem; margin: 0; }
.cv-cat-card__count { color: var(--cv-accent-lt); font-size: .82rem; margin: .15rem 0 0; font-weight: 600; }

/* Product card (home rebuilt) */
.cv-product {
  background: var(--cv-surface); border: 1px solid var(--cv-border);
  border-radius: var(--cv-radius); overflow: hidden; display: flex; flex-direction: column;
  transition: border-color .25s, transform .25s, box-shadow .25s; text-decoration: none; color: inherit;
}
.cv-product:hover { border-color: var(--cv-accent); transform: translateY(-6px); box-shadow: 0 18px 40px rgba(0,0,0,.5); }
.cv-product__media { aspect-ratio: 4/3; background: #fff; overflow: hidden; }
.cv-product__media img { width: 100%; height: 100%; object-fit: contain; transition: transform .4s; }
.cv-product:hover .cv-product__media img { transform: scale(1.06); }
.cv-product__body { padding: 1rem 1.1rem 1.2rem; display: flex; flex-direction: column; gap: .4rem; flex: 1; }
.cv-product__name { font-weight: 600; color: var(--cv-white); font-size: 1rem; line-height: 1.35; margin: 0; }
.cv-product__price { color: var(--cv-green); font-weight: 800; font-size: 1.25rem; font-family: 'Poppins', sans-serif; margin-top: auto; }
.cv-product__compare { color: var(--cv-muted); text-decoration: line-through; font-size: .9rem; font-weight: 500; margin-left: .5rem; }

/* Forms */
.cv-form { display: grid; gap: 1.1rem; }
.cv-form__row { display: grid; gap: .4rem; }
.cv-label { font-size: .85rem; font-weight: 600; color: var(--cv-muted-2); }
.cv-input, .cv-textarea, .cv-select {
  width: 100%; padding: .8rem 1rem; border-radius: .7rem;
  background: var(--cv-surface-2); border: 1px solid var(--cv-border-2);
  color: var(--cv-white); font-size: 1rem; font-family: inherit;
  transition: border-color .2s, box-shadow .2s;
}
.cv-input::placeholder, .cv-textarea::placeholder { color: var(--cv-muted); }
.cv-input:focus, .cv-textarea:focus, .cv-select:focus {
  outline: none; border-color: var(--cv-accent); box-shadow: 0 0 0 3px rgba(234,179,8,.18);
}
.cv-textarea { min-height: 130px; resize: vertical; }
.cv-select { appearance: none; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%239ca3af' stroke-width='2'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E"); background-repeat: no-repeat; background-position: right 1rem center; background-size: 1.1rem; padding-right: 2.5rem; }

.cv-form__msg { padding: .85rem 1rem; border-radius: .7rem; font-weight: 500; }
.cv-form__msg--ok { background: rgba(22,163,74,.15); color: #34d399; border: 1px solid rgba(22,163,74,.35); }
.cv-form__msg--err { background: rgba(220,38,38,.15); color: #f87171; border: 1px solid rgba(220,38,38,.35); }

/* Info cards (contacto) */
.cv-info-card { display: flex; gap: 1rem; align-items: flex-start; background: var(--cv-surface); border: 1px solid var(--cv-border); border-radius: var(--cv-radius); padding: 1.25rem; }
.cv-info-card__icon { width: 2.75rem; height: 2.75rem; flex: 0 0 auto; border-radius: .7rem; display: grid; place-items: center; background: rgba(234,179,8,.14); color: var(--cv-accent); font-size: 1.2rem; }
.cv-info-card__label { color: var(--cv-white); font-weight: 600; margin: 0 0 .2rem; font-size: .98rem; }
.cv-info-card__value { color: var(--cv-muted); margin: 0; line-height: 1.5; font-size: .92rem; }
.cv-info-card__value a { color: var(--cv-muted-2); }
.cv-info-card__value a:hover { color: var(--cv-accent); }

.cv-map { width: 100%; height: 360px; border: 0; border-radius: var(--cv-radius); filter: grayscale(.2) invert(.9) hue-rotate(180deg) contrast(.9); }

/* Two column layout */
.cv-two-col { display: grid; grid-template-columns: 1.1fr .9fr; gap: 2rem; align-items: start; }

/* News card */
.cv-news-card {
  background: var(--cv-surface); border: 1px solid var(--cv-border); border-radius: var(--cv-radius);
  overflow: hidden; display: flex; flex-direction: column; text-decoration: none; color: inherit;
  transition: border-color .25s, transform .25s, box-shadow .25s;
}
.cv-news-card:hover { border-color: var(--cv-accent); transform: translateY(-4px); box-shadow: 0 16px 40px rgba(0,0,0,.5); }
.cv-news-card__media { aspect-ratio: 16/9; overflow: hidden; background: var(--cv-surface-2); }
.cv-news-card__media img { width: 100%; height: 100%; object-fit: cover; transition: transform .4s; }
.cv-news-card:hover .cv-news-card__media img { transform: scale(1.05); }
.cv-news-card__body { padding: 1.35rem; display: flex; flex-direction: column; gap: .55rem; flex: 1; }
.cv-news-card__date { color: var(--cv-accent); font-size: .8rem; font-weight: 600; text-transform: uppercase; letter-spacing: .05em; }
.cv-news-card__title { font-family: 'Poppins', sans-serif; font-weight: 700; color: var(--cv-white); font-size: 1.15rem; line-height: 1.3; margin: 0; }
.cv-news-card__excerpt { color: var(--cv-muted); line-height: 1.55; font-size: .92rem; margin: 0; }

/* Empty state */
.cv-empty { text-align: center; padding: 3rem 1rem; color: var(--cv-muted); }
.cv-empty i { font-size: 2.5rem; color: var(--cv-accent); margin-bottom: 1rem; display: block; }

/* Section-level anchor offset (sticky header) */
.cv-anchor { scroll-margin-top: 90px; }

/* Utility */
.cv-mt-1 { margin-top: .5rem; } .cv-mt-2 { margin-top: 1rem; } .cv-mt-3 { margin-top: 2rem; }
.cv-text-center { text-align: center; }
.cv-accent-txt { color: var(--cv-accent); }
.cv-green-txt { color: var(--cv-green); }

/* ============================================================
   RESPONSIVE
   ============================================================ */
@media (max-width: 1024px) {
  .cv-grid--4 { grid-template-columns: repeat(2, 1fr); }
  .cv-grid--3 { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 768px) {
  .cv-two-col { grid-template-columns: 1fr; }
  .cv-section { padding: 3rem 0; }
  .cv-hero__inner { padding: 3.5rem 1.25rem 2.75rem; }
}
@media (max-width: 640px) {
  .cv-grid--2, .cv-grid--3, .cv-grid--4 { grid-template-columns: 1fr; }
  .cv-hero__actions { flex-direction: column; }
  .cv-hero__actions .cv-btn { width: 100%; justify-content: center; }
  .cv-band { padding: 1.75rem; }
  .cv-newsletter__form { flex-direction: column; }
  .cv-newsletter__btn { width: 100%; justify-content: center; }
}
