:root {
  --ev-navy: #14224f;
  --ev-navy-2: #1d3274;
  --ev-blue: #2847a0;
  --ev-orange: #ef7d13;
  --ev-orange-dark: #d96800;
  --ev-green: #16845b;
  --ev-red: #c43b4d;
  --ev-ink: #17213b;
  --ev-muted: #6b7590;
  --ev-line: #dfe5f0;
  --ev-bg: #f4f6fb;
  --ev-card: #ffffff;
  --ev-radius: 18px;
  --ev-radius-sm: 12px;
  --ev-shadow: 0 14px 36px rgba(20, 34, 79, .09);
  --ev-shadow-sm: 0 7px 18px rgba(20, 34, 79, .08);
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body.store-body,
body.auth-body {
  margin: 0;
  min-height: 100vh;
  color: var(--ev-ink);
  background:
    radial-gradient(circle at 90% 0%, rgba(40, 71, 160, .08), transparent 30rem),
    var(--ev-bg);
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  -webkit-font-smoothing: antialiased;
}
a { color: var(--ev-blue); }
a:hover { color: var(--ev-navy); }

/* ===== Navegación ===== */
.store-top-strip {
  background: #0e1838;
  color: rgba(255,255,255,.78);
  font-size: .79rem;
}
.store-top-strip .container {
  min-height: 32px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
}
.store-top-strip strong { color: #fff; }
.store-navbar {
  position: sticky;
  top: 0;
  z-index: 1030;
  background: rgba(255,255,255,.96);
  border-bottom: 1px solid rgba(20,34,79,.09);
  box-shadow: 0 7px 22px rgba(20,34,79,.06);
  backdrop-filter: blur(14px);
}
.store-navbar .navbar { min-height: 76px; }
.store-brand {
  display: inline-flex;
  align-items: center;
  gap: .72rem;
  color: var(--ev-navy) !important;
  text-decoration: none;
  min-width: max-content;
}
.store-brand-mark {
  width: 44px;
  height: 44px;
  border-radius: 13px;
  display: grid;
  place-items: center;
  color: #fff;
  font-size: 1.12rem;
  background: linear-gradient(145deg, var(--ev-navy-2), var(--ev-blue));
  box-shadow: 0 8px 18px rgba(40,71,160,.25);
}
.store-brand-copy { line-height: 1.05; }
.store-brand-name {
  display: block;
  font-size: 1.08rem;
  font-weight: 800;
  letter-spacing: -.02em;
}
.store-brand-subtitle {
  display: block;
  margin-top: .22rem;
  color: var(--ev-muted);
  font-size: .69rem;
  font-weight: 600;
}
.store-nav-links { gap: .3rem; }
.store-nav-link {
  display: inline-flex;
  align-items: center;
  gap: .48rem;
  min-height: 42px;
  padding: .55rem .78rem;
  border-radius: 11px;
  color: #46516d !important;
  text-decoration: none;
  font-size: .9rem;
  font-weight: 650;
  transition: .2s ease;
}
.store-nav-link:hover,
.store-nav-link.active {
  color: var(--ev-navy) !important;
  background: #eef2fb;
}
.store-nav-action {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .48rem;
  min-height: 43px;
  padding: .56rem .82rem;
  border: 1px solid var(--ev-line);
  border-radius: 12px;
  color: var(--ev-navy) !important;
  background: #fff;
  text-decoration: none;
  font-size: .88rem;
  font-weight: 750;
  box-shadow: 0 4px 12px rgba(20,34,79,.04);
  transition: .2s ease;
}
.store-nav-action:hover {
  border-color: #c6d1e8;
  transform: translateY(-1px);
  box-shadow: var(--ev-shadow-sm);
}
.store-nav-action.cart-action {
  color: #fff !important;
  border-color: var(--ev-navy);
  background: var(--ev-navy);
}
.store-cart-count {
  min-width: 21px;
  height: 21px;
  padding: 0 .35rem;
  display: inline-grid;
  place-items: center;
  border-radius: 999px;
  color: #fff;
  background: var(--ev-orange);
  font-size: .69rem;
  font-weight: 800;
}
.store-user-menu .dropdown-menu {
  min-width: 230px;
  padding: .55rem;
  border: 1px solid var(--ev-line);
  border-radius: 14px;
  box-shadow: var(--ev-shadow);
}
.store-user-menu .dropdown-item {
  padding: .68rem .75rem;
  border-radius: 9px;
  font-size: .9rem;
}
.store-user-menu .dropdown-item:hover { background: #f1f4fa; }
.store-navbar .navbar-toggler {
  border: 1px solid var(--ev-line);
  border-radius: 11px;
  box-shadow: none;
}
.store-mobile-actions { display: none; }

/* ===== Contenedor, títulos y héroe ===== */
.store-main { min-height: calc(100vh - 190px); }
.store-main > .container,
.store-main.container,
body.store-body > .container {
  padding-top: 2rem !important;
  padding-bottom: 2.5rem !important;
}
.store-hero {
  position: relative;
  overflow: hidden;
  padding: clamp(1.5rem, 3vw, 2.35rem);
  margin-bottom: 1.5rem;
  border-radius: 24px;
  color: #fff;
  background:
    radial-gradient(circle at 92% 18%, rgba(255,255,255,.18), transparent 13rem),
    linear-gradient(125deg, var(--ev-navy), var(--ev-blue));
  box-shadow: 0 18px 42px rgba(20,34,79,.2);
}
.store-hero::after {
  content: "";
  position: absolute;
  width: 220px;
  height: 220px;
  right: -70px;
  bottom: -110px;
  border-radius: 50%;
  border: 34px solid rgba(255,255,255,.07);
}
.store-eyebrow {
  margin-bottom: .52rem;
  color: #ffc98e;
  font-size: .76rem;
  font-weight: 850;
  letter-spacing: .12em;
  text-transform: uppercase;
}
.store-hero h1,
.store-page-title {
  margin: 0;
  font-weight: 850;
  letter-spacing: -.035em;
}
.store-hero h1 { font-size: clamp(1.8rem, 4vw, 3rem); }
.store-hero p {
  max-width: 710px;
  margin: .65rem 0 0;
  color: rgba(255,255,255,.8);
  font-size: .98rem;
}
.store-hero-meta {
  display: flex;
  flex-wrap: wrap;
  gap: .55rem;
  margin-top: 1.15rem;
}
.store-hero-chip {
  display: inline-flex;
  align-items: center;
  gap: .4rem;
  min-height: 34px;
  padding: .4rem .7rem;
  border: 1px solid rgba(255,255,255,.18);
  border-radius: 999px;
  color: #fff;
  background: rgba(255,255,255,.1);
  font-size: .79rem;
  font-weight: 650;
}
.store-page-header {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 1rem;
  margin-bottom: 1.25rem;
}
.store-page-kicker {
  color: var(--ev-orange-dark);
  font-size: .72rem;
  font-weight: 850;
  letter-spacing: .11em;
  text-transform: uppercase;
}
.store-page-title { font-size: clamp(1.65rem, 3vw, 2.25rem); }
.store-page-subtitle { margin-top: .32rem; color: var(--ev-muted); }

/* ===== Componentes Bootstrap homologados ===== */
.store-body .card {
  border: 1px solid var(--ev-line);
  border-radius: var(--ev-radius);
  background: var(--ev-card);
  box-shadow: var(--ev-shadow-sm) !important;
}
.store-body .card-header {
  padding: 1rem 1.2rem;
  border-bottom: 1px solid var(--ev-line);
  border-radius: var(--ev-radius) var(--ev-radius) 0 0 !important;
  background: #fff !important;
}
.store-body .card-body { padding: 1.2rem; }
.store-body .form-label {
  margin-bottom: .42rem;
  color: #35405b;
  font-size: .82rem;
  font-weight: 750;
}
.store-body .form-control,
.store-body .form-select,
.auth-body .form-control,
.auth-body .form-select {
  min-height: 47px;
  border: 1px solid #d4dceb;
  border-radius: 11px;
  color: var(--ev-ink);
  background-color: #fff;
  box-shadow: none;
}
.store-body .form-control:focus,
.store-body .form-select:focus,
.auth-body .form-control:focus,
.auth-body .form-select:focus {
  border-color: #7890ca;
  box-shadow: 0 0 0 .22rem rgba(40,71,160,.12);
}
.store-body .btn,
.auth-body .btn {
  min-height: 43px;
  border-radius: 11px;
  font-weight: 750;
  box-shadow: none;
}
.store-body .btn-primary,
.auth-body .btn-primary {
  border-color: var(--ev-navy);
  background: var(--ev-navy);
}
.store-body .btn-primary:hover,
.auth-body .btn-primary:hover {
  border-color: var(--ev-blue);
  background: var(--ev-blue);
}
.store-body .btn-success { border-color: var(--ev-green); background: var(--ev-green); }
.store-body .btn-warning { border-color: var(--ev-orange); background: var(--ev-orange); color: #fff; }
.store-body .btn-danger { border-color: var(--ev-red); background: var(--ev-red); }
.store-body .btn-outline-primary { color: var(--ev-navy); border-color: #aab7d4; }
.store-body .btn-outline-primary:hover { color: #fff; border-color: var(--ev-navy); background: var(--ev-navy); }
.store-body .btn-outline-secondary { color: #56617b; border-color: #cbd3e3; }
.store-body .alert {
  border: 0;
  border-left: 4px solid currentColor;
  border-radius: 12px;
  box-shadow: 0 5px 14px rgba(20,34,79,.06);
}
.store-body .badge { border-radius: 999px; font-weight: 750; }
.store-body .table { color: var(--ev-ink); }
.store-body .table thead th {
  padding: .86rem .9rem;
  border-bottom: 1px solid var(--ev-line);
  color: #66708a;
  background: #f7f9fc;
  font-size: .72rem;
  font-weight: 850;
  letter-spacing: .045em;
  text-transform: uppercase;
}
.store-body .table tbody td { padding: .92rem .9rem; border-color: #edf0f6; }
.store-body .table-striped > tbody > tr:nth-of-type(odd) > * { --bs-table-accent-bg: #fafbfe; }
.store-body .progress { overflow: hidden; border-radius: 999px; background: #e9edf5; }
.store-body .progress-bar { background: linear-gradient(90deg, var(--ev-blue), var(--ev-orange)); }

/* ===== Catálogo ===== */
.catalog-filter-card {
  position: relative;
  z-index: 2;
  margin-top: -3.1rem;
  margin-bottom: 1.5rem !important;
  border: 0 !important;
  box-shadow: 0 18px 36px rgba(20,34,79,.13) !important;
}
.catalog-toolbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  margin-bottom: 1rem;
}
.catalog-result-count { color: var(--ev-muted); font-size: .86rem; }
.catalog-grid > [class*="col-"] { display: flex; }
.card-product {
  width: 100%;
  overflow: hidden;
  border: 1px solid #e0e6f1 !important;
  border-radius: 17px !important;
  box-shadow: 0 8px 20px rgba(20,34,79,.06) !important;
  transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease;
}
.card-product:hover {
  transform: translateY(-4px);
  border-color: #c7d2e8 !important;
  box-shadow: 0 16px 30px rgba(20,34,79,.12) !important;
}
.card-product .card-body { padding: 1rem !important; }
.product-card-topline {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: .65rem;
}
.product-sku {
  color: var(--ev-navy);
  font-size: .76rem;
  font-weight: 850;
  letter-spacing: .035em;
}
.product-media {
  height: 176px;
  display: grid;
  place-items: center;
  margin: .35rem 0 .85rem;
  border-radius: 14px;
  background: linear-gradient(145deg, #f7f9fc, #eef2f8);
  overflow: hidden;
}
.product-media img,
.product-img-clickable {
  max-width: 92% !important;
  max-height: 158px !important;
  object-fit: contain !important;
  transition: transform .28s ease !important;
}
.card-product:hover .product-media img,
.card-product:hover .product-img-clickable { transform: scale(1.045); }
.product-title {
  min-height: 2.7em;
  margin-bottom: .35rem;
  color: var(--ev-ink);
  font-size: .94rem;
  font-weight: 800;
  line-height: 1.35;
}
.desc-clamp {
  min-height: 2.6em !important;
  color: var(--ev-muted);
  font-size: .8rem;
  -webkit-line-clamp: 2 !important;
}
.product-price { color: var(--ev-navy); font-size: 1.28rem; font-weight: 900; letter-spacing: -.025em; }
.product-price small { color: var(--ev-muted); font-size: .66rem; font-weight: 600; }
.product-stock {
  display: inline-flex;
  align-items: center;
  gap: .32rem;
  padding: .32rem .54rem;
  border-radius: 999px;
  font-size: .68rem;
  font-weight: 800;
}
.product-stock.in-stock { color: #0d6b48; background: #e4f5ed; }
.product-stock.on-demand { color: #93510a; background: #fff0dd; }
.quantity-single { margin-bottom: .55rem !important; }
.quantity-single-input,
.quantity-single-input-sm {
  min-height: 41px;
  max-width: none !important;
  border-color: #d5ddea !important;
  border-radius: 10px !important;
  background: #f9fafc;
}
.add-to-cart-btn {
  min-height: 43px;
  border-radius: 11px !important;
  background: var(--ev-navy) !important;
  font-weight: 800;
  transition: .2s ease;
}
.add-to-cart-btn:hover { background: var(--ev-blue) !important; transform: translateY(-1px); }
.badge-soft { padding: .38rem .58rem; font-size: .65rem; }
.badge-unidad { background: #eef2f8 !important; color: #53607a !important; }
.sidebar-section {
  padding: 1rem !important;
  border: 1px solid var(--ev-line);
  border-radius: 17px !important;
  background: #fff !important;
  box-shadow: var(--ev-shadow-sm);
}
.sidebar-title {
  padding-bottom: .72rem !important;
  border-bottom: 1px solid var(--ev-line) !important;
  color: var(--ev-navy);
  font-size: .96rem !important;
  text-align: left !important;
}
.sidebar-title i { color: var(--ev-orange) !important; }
.sidebar-item {
  align-items: stretch !important;
  padding: .75rem !important;
  border: 1px solid #e5eaf3;
  border-radius: 13px !important;
  box-shadow: none !important;
  text-align: left !important;
}
.sidebar-item-img {
  width: 100% !important;
  height: 105px !important;
  object-fit: contain !important;
  background: #f6f8fb;
}
.sidebar-item-precio { color: var(--ev-navy) !important; }
.pagination .page-link {
  min-width: 40px;
  min-height: 40px;
  display: grid;
  place-items: center;
  margin: 0 .16rem;
  border: 1px solid var(--ev-line);
  border-radius: 10px !important;
  color: var(--ev-navy);
}
.pagination .page-item.active .page-link { border-color: var(--ev-navy); background: var(--ev-navy); }

/* ===== Detalle de producto ===== */
.product-detail-shell > .card { overflow: hidden; }
.product-detail-shell .producto-carousel-wrapper {
  max-width: 440px !important;
  padding: 1rem;
}
.product-detail-shell .producto-carousel-wrapper .carousel-item img {
  width: 100%;
  min-height: 350px;
  max-height: 430px !important;
  object-fit: contain;
  border-radius: 16px !important;
  background: #f6f8fb !important;
}
.product-detail-shell .custom-indicator.active { background-color: var(--ev-orange) !important; }
.product-detail-shell .cantidad-wrapper {
  width: fit-content;
  padding: .3rem;
  border: 1px solid var(--ev-line);
  border-radius: 12px;
  background: #f8fafc;
}
.product-detail-shell .cantidad-input { min-height: 38px; border: 0; background: transparent; }
.product-detail-shell .btn-cantidad { border: 0; border-radius: 9px; background: #e9eef8; }
.product-detail-shell .btn-cantidad:hover { background: #dce4f3; }

/* ===== Carrito y checkout ===== */
.cart-item-img,
.cart-item-icon {
  width: 72px !important;
  height: 72px !important;
  border-radius: 13px !important;
  background: #f5f7fb !important;
  object-fit: contain !important;
}
.cart-summary {
  position: sticky;
  top: 102px;
  border: 0 !important;
  border-radius: 20px !important;
  background: linear-gradient(145deg, var(--ev-navy), var(--ev-blue)) !important;
  box-shadow: 0 18px 36px rgba(20,34,79,.22) !important;
}
.nivel-info {
  display: inline-flex;
  align-items: center;
  gap: .45rem;
  padding: .5rem .72rem !important;
  border: 1px solid #dbe2ef;
  border-radius: 999px !important;
  color: #53607a;
  background: #f7f9fc !important;
  font-size: .8rem;
}
.quantity-control { gap: .45rem !important; }
.quantity-input { min-height: 41px; border-radius: 10px !important; }
.table-calculations { border: 1px solid var(--ev-line); background: #f8fafc !important; }
.checkout-step {
  display: flex;
  align-items: center;
  gap: .7rem;
  margin-bottom: 1rem;
}
.checkout-step-number {
  width: 35px;
  height: 35px;
  display: grid;
  place-items: center;
  border-radius: 11px;
  color: #fff;
  background: var(--ev-navy);
  font-weight: 850;
}

/* ===== Pedidos / cuenta ===== */
.order-summary-card { overflow: hidden; }
.order-status-guide li { margin-bottom: .42rem; }
.account-side-card { position: sticky; top: 102px; }
.store-body .list-group-item { border-color: var(--ev-line); }

/* ===== Login y contraseña ===== */
.auth-body {
  display: grid;
  place-items: center;
  padding: 1.5rem;
  background:
    radial-gradient(circle at 15% 10%, rgba(239,125,19,.18), transparent 24rem),
    linear-gradient(135deg, #0e1838 0%, #1b2e69 55%, #2847a0 100%);
}
.auth-shell {
  width: min(1020px, 100%);
  display: grid;
  grid-template-columns: 1.08fr .92fr;
  overflow: hidden;
  border: 1px solid rgba(255,255,255,.12);
  border-radius: 26px;
  background: #fff;
  box-shadow: 0 28px 70px rgba(5,12,35,.34);
}
.auth-visual {
  position: relative;
  min-height: 600px;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  padding: clamp(2rem, 5vw, 3.5rem);
  color: #fff;
  background:
    radial-gradient(circle at 85% 18%, rgba(255,255,255,.16), transparent 12rem),
    linear-gradient(145deg, var(--ev-navy), var(--ev-blue));
}
.auth-visual::after {
  content: "";
  position: absolute;
  right: -90px;
  bottom: -90px;
  width: 260px;
  height: 260px;
  border: 42px solid rgba(255,255,255,.07);
  border-radius: 50%;
}
.auth-brand { display: flex; align-items: center; gap: .8rem; position: relative; z-index: 1; }
.auth-brand-mark {
  width: 48px;
  height: 48px;
  display: grid;
  place-items: center;
  border-radius: 14px;
  color: var(--ev-navy);
  background: #fff;
  font-size: 1.18rem;
}
.auth-brand strong { display: block; font-size: 1.08rem; }
.auth-brand span { color: rgba(255,255,255,.66); font-size: .76rem; }
.auth-copy { position: relative; z-index: 1; max-width: 440px; }
.auth-copy h1 { font-size: clamp(2rem, 4vw, 3.15rem); font-weight: 900; letter-spacing: -.045em; }
.auth-copy p { margin-top: .8rem; color: rgba(255,255,255,.72); }
.auth-points { display: grid; gap: .65rem; margin-top: 1.4rem; }
.auth-point { display: flex; align-items: center; gap: .65rem; color: rgba(255,255,255,.86); font-size: .88rem; }
.auth-point i { color: #ffc98e; }
.auth-panel { display: grid; place-items: center; padding: clamp(2rem, 5vw, 3.5rem); }
.auth-card { width: min(390px, 100%); }
.auth-kicker { color: var(--ev-orange-dark); font-size: .72rem; font-weight: 850; letter-spacing: .12em; text-transform: uppercase; }
.auth-card h2 { margin: .45rem 0 .4rem; color: var(--ev-ink); font-size: 2rem; font-weight: 900; letter-spacing: -.035em; }
.auth-card .auth-subtitle { margin-bottom: 1.45rem; color: var(--ev-muted); }
.auth-input-wrap { position: relative; }
.auth-input-wrap .form-control { padding-left: 2.75rem; }
.auth-input-icon { position: absolute; left: .95rem; top: 50%; transform: translateY(-50%); color: #8a94aa; z-index: 2; }
.auth-password-toggle {
  position: absolute;
  right: .6rem;
  top: 50%;
  transform: translateY(-50%);
  width: 34px;
  height: 34px;
  border: 0;
  border-radius: 8px;
  color: #6e7891;
  background: transparent;
}
.auth-password-toggle:hover { background: #eef2f8; }
.auth-help {
  margin-top: 1rem;
  padding: .75rem .85rem;
  border-radius: 11px;
  color: #64708a;
  background: #f4f6fa;
  font-size: .79rem;
}
.auth-back { display: inline-flex; align-items: center; gap: .45rem; margin-top: 1.1rem; color: var(--ev-muted); text-decoration: none; font-size: .84rem; }

/* ===== Footer ===== */
.store-footer {
  margin-top: 2rem;
  color: rgba(255,255,255,.72);
  background: #0e1838;
}
.store-footer-main { padding: 2rem 0; }
.store-footer-title { color: #fff; font-size: .95rem; font-weight: 800; }
.store-footer p { margin: .45rem 0 0; font-size: .82rem; }
.store-footer-links { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: .45rem 1rem; }
.store-footer a { color: rgba(255,255,255,.75); text-decoration: none; font-size: .82rem; }
.store-footer a:hover { color: #fff; }
.store-footer-bottom { padding: .8rem 0; border-top: 1px solid rgba(255,255,255,.1); font-size: .74rem; }

/* ===== Responsivo ===== */
@media (max-width: 991.98px) {
  .store-top-strip { display: none; }
  .store-navbar .navbar { min-height: 68px; }
  .store-navbar .navbar-collapse {
    margin-top: .8rem;
    padding: .8rem;
    border: 1px solid var(--ev-line);
    border-radius: 14px;
    background: #fff;
    box-shadow: var(--ev-shadow-sm);
  }
  .store-nav-links { align-items: stretch !important; }
  .store-nav-link { width: 100%; }
  .store-desktop-actions { display: none !important; }
  .store-mobile-actions { display: grid; grid-template-columns: 1fr 1fr; gap: .55rem; margin-top: .65rem; }
  .catalog-filter-card { margin-top: -1.15rem; }
  .auth-shell { grid-template-columns: 1fr; }
  .auth-visual { min-height: 270px; }
  .auth-copy h1 { font-size: 2.15rem; }
  .auth-points { display: none; }
  .cart-summary,
  .account-side-card { position: static; }
  .store-footer-links { justify-content: flex-start; margin-top: 1rem; }
}

@media (max-width: 767.98px) {
  .store-brand-subtitle { display: none; }
  .store-brand-mark { width: 40px; height: 40px; }
  .store-main > .container,
  .store-main.container,
  body.store-body > .container { padding-top: 1.25rem !important; }
  .store-hero { padding: 1.35rem; border-radius: 18px; }
  .store-page-header { align-items: flex-start; flex-direction: column; }
  .catalog-toolbar { align-items: flex-start; flex-direction: column; }
  .card-product .card-body { padding: .85rem !important; }
  .product-media { height: 145px; }
  .product-media img,
  .product-img-clickable { max-height: 132px !important; }
  .store-body .table-responsive { border-radius: 14px; }
  .auth-body { padding: .75rem; }
  .auth-shell { border-radius: 20px; }
  .auth-visual { min-height: 220px; padding: 1.5rem; }
  .auth-copy h1 { font-size: 1.8rem; }
  .auth-panel { padding: 1.5rem; }
  .producto-info { align-items: flex-start !important; }
}

@media (max-width: 575.98px) {
  .store-brand-name { font-size: .95rem; }
  .store-hero-meta { display: none; }
  .store-body .card-body { padding: 1rem; }
  .store-mobile-actions { grid-template-columns: 1fr; }
  .auth-visual { display: none; }
  .auth-panel { min-height: calc(100vh - 1.5rem); }
}

/* Ajustes finales de checkout */
.forma-pago-card {
  margin: 1rem;
  padding: 1rem !important;
  border: 1px solid var(--ev-line);
  border-radius: 16px !important;
  background: #f8fafc !important;
}
.forma-pago-card h5 { color: var(--ev-navy); font-weight: 850; }
.forma-pago-option {
  height: 100%;
  margin-bottom: 0 !important;
  border: 1px solid #d9e0ed !important;
  border-radius: 13px !important;
  background: #fff;
  transition: .2s ease !important;
}
.forma-pago-option:hover {
  border-color: #9cacd0 !important;
  background: #f4f7fc !important;
  transform: translateY(-1px);
}
.forma-pago-option.selected {
  border-color: var(--ev-green) !important;
  background: #eaf7f1 !important;
  box-shadow: 0 0 0 3px rgba(22,132,91,.09);
}
.summary-card {
  margin: 1rem !important;
  padding: 1.25rem !important;
  border-radius: 17px !important;
  background: linear-gradient(145deg, var(--ev-navy), var(--ev-blue)) !important;
  box-shadow: 0 15px 30px rgba(20,34,79,.2);
}
.summary-card h5 { font-weight: 850; }
.precio-nivel { color: #66708a !important; }
.precio-sin-iva { color: var(--ev-green) !important; }

/* Filas del carrito más limpias */
.store-body [data-carrito-id] {
  margin-left: 0;
  margin-right: 0;
  padding: .9rem .25rem 1.15rem;
}
.store-body [data-carrito-id]:last-child { border-bottom: 0 !important; }
.store-body .btn-link.text-danger { text-decoration: none; font-weight: 700; }
.store-body .btn-link.text-danger:hover { text-decoration: underline; }

@media (max-width: 767.98px) {
  .store-body [data-carrito-id] > [class*="col-md-"] {
    margin-bottom: .75rem;
  }
  .store-body [data-carrito-id] .text-end { text-align: left !important; }
  .store-body [data-carrito-id] .quantity-control { justify-content: flex-start; }
  .forma-pago-card,
  .summary-card { margin: .75rem !important; }
}

/* ===== EVSA 1.3: área amplia y navegación de catálogo ===== */
.store-wide-container,
.store-top-strip .container,
.store-navbar .container,
.store-footer .container,
.store-main > .container,
.store-main.container,
body.store-body > .container {
  width: min(96vw, 1660px) !important;
  max-width: 1660px !important;
}

.catalog-pagination {
  display: flex;
  justify-content: center;
  margin: .9rem 0 1.15rem;
}
.catalog-pagination .pagination {
  gap: .28rem;
  padding: .36rem;
  border: 1px solid var(--ev-line);
  border-radius: 14px;
  background: #fff;
  box-shadow: var(--ev-shadow-sm);
}
.catalog-pagination .page-link {
  min-width: 38px;
  height: 38px;
  display: grid;
  place-items: center;
  padding: 0 .65rem;
  border: 0;
  border-radius: 9px !important;
  color: var(--ev-navy);
  background: transparent;
  font-size: .86rem;
  font-weight: 800;
}
.catalog-pagination .page-link:hover { background: #eef2fb; }
.catalog-pagination .page-item.active .page-link {
  color: #fff;
  background: var(--ev-navy);
  box-shadow: 0 5px 12px rgba(20,34,79,.2);
}
.catalog-pagination .page-item.disabled .page-link {
  color: #aab2c4;
  background: transparent;
}

@media (min-width: 1400px) {
  .catalog-grid > .col-xl-9 { width: 78%; }
  .catalog-grid > aside.col-xl-3 { width: 22%; }
}

@media (max-width: 767.98px) {
  .store-wide-container,
  .store-top-strip .container,
  .store-navbar .container,
  .store-footer .container,
  .store-main > .container,
  .store-main.container,
  body.store-body > .container {
    width: 100% !important;
    padding-left: 1rem !important;
    padding-right: 1rem !important;
  }
  .catalog-pagination .pagination { gap: .12rem; padding: .25rem; }
  .catalog-pagination .page-link { min-width: 34px; height: 34px; padding: 0 .42rem; }
}

/* ===== EVSA 1.3.0: catálogo de ancho completo ===== */
.store-wide-container,
.store-top-strip .container,
.store-navbar .container,
.store-footer .container,
.store-main > .container,
.store-main.container,
body.store-body > .container {
  width: min(98vw, 1880px) !important;
  max-width: 1880px !important;
}

/* El selector anterior convertía también el lateral en una fila flexible. */
.catalog-grid > .catalog-main-column,
.catalog-grid > .catalog-sidebar-column {
  display: block !important;
}
.catalog-main-column { width: calc(100% - 310px); }
.catalog-sidebar-column { width: 310px; }
.catalog-sidebar-column .sidebar-section { width: 100%; }
.catalog-sidebar-column .sidebar-section + .sidebar-section { margin-top: 1rem; }
.add-to-cart-btn:disabled {
  cursor: not-allowed;
  opacity: .62;
  transform: none !important;
}

@media (max-width: 1199.98px) {
  .catalog-main-column,
  .catalog-sidebar-column { width: 100%; }
  .catalog-sidebar-column {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1rem;
    margin-top: 1rem;
  }
  .catalog-sidebar-column .sidebar-section + .sidebar-section { margin-top: 0; }
}

@media (max-width: 767.98px) {
  .catalog-sidebar-column { grid-template-columns: 1fr; }
  .store-wide-container,
  .store-top-strip .container,
  .store-navbar .container,
  .store-footer .container,
  .store-main > .container,
  .store-main.container,
  body.store-body > .container {
    width: 100% !important;
  }
}

/* ===== EVSA 1.3.1: formulario robusto para agregar al carrito ===== */
.js-add-to-cart-form {
  display: block;
  width: 100%;
  margin: 0;
}
.js-add-to-cart-form .quantity-single,
.js-add-to-cart-form .quantity-single-sm {
  width: 100%;
}
.js-add-to-cart-form input[name="cantidad"]:invalid {
  border-color: #dc3545 !important;
}
.js-add-to-cart-form .add-to-cart-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .4rem;
  width: 100%;
}
.js-add-to-cart-form .add-to-cart-btn i {
  margin-right: 0;
}
