:root{--bg:#f6f7f8;--surface:#fff;--surface-2:#eef1f4;--text:#17202a;--muted:#64748b;--line:#dbe2ea;--brand:#1f2937;--accent:#0f766e;--accent-dark:#115e59;--danger:#b42318;--success:#027a48;--shadow:0 18px 45px rgba(15,23,42,.08);--radius:22px}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--text);font-family:Roboto,system-ui,-apple-system,Segoe UI,sans-serif;padding-top:78px}.container{width:min(1180px,92%);margin:0 auto}a{color:inherit;text-decoration:none}img{max-width:100%;display:block}.site-header{position:fixed;inset:0 0 auto 0;height:78px;background:rgba(255,255,255,.94);backdrop-filter:blur(14px);border-bottom:1px solid var(--line);z-index:50}.header-inner{height:100%;display:flex;align-items:center;gap:22px}.brand{display:flex;align-items:center;gap:12px;font-weight:900;font-size:1.08rem;letter-spacing:-.02em;margin-right:auto}.brand-logo{width:44px;height:44px}.main-nav{display:flex;align-items:center;gap:8px}.main-nav a{padding:10px 16px;border-radius:999px;color:var(--muted);font-weight:700}.main-nav a:hover{background:var(--surface-2);color:var(--text)}.social-links{display:flex;gap:8px}.social-links a{width:36px;height:36px;border:1px solid var(--line);border-radius:999px;display:grid;place-items:center;background:#fff;font-weight:900}.menu-toggle{display:none;width:42px;height:42px;border:1px solid var(--line);border-radius:12px;background:#fff;align-items:center;justify-content:center;flex-direction:column;gap:5px}.menu-toggle span{width:20px;height:2px;background:var(--text);border-radius:4px}.mobile-panel{position:fixed;top:78px;left:0;width:280px;max-width:80vw;height:calc(100vh - 78px);background:#fff;z-index:60;transform:translateX(-105%);transition:.25s ease;box-shadow:var(--shadow);padding:22px}.mobile-panel.open{transform:translateX(0)}.mobile-panel nav{display:grid;gap:10px}.mobile-panel a{padding:14px 12px;border-radius:14px;font-weight:800;background:var(--surface-2)}.overlay{position:fixed;inset:78px 0 0;background:rgba(15,23,42,.35);z-index:55;display:none}.overlay.open{display:block}.hero{background:linear-gradient(135deg,#fff 0%,#eef3f6 100%);border-bottom:1px solid var(--line)}.hero-grid{min-height:430px;display:grid;grid-template-columns:1.25fr .75fr;align-items:center;gap:32px;padding:54px 0}.eyebrow{display:inline-flex;align-items:center;width:max-content;padding:8px 12px;border-radius:999px;background:#e6fffb;color:var(--accent-dark);font-weight:900;font-size:.82rem;text-transform:uppercase;letter-spacing:.05em}.hero h1{font-size:clamp(2.2rem,5vw,4.8rem);line-height:.98;margin:18px 0;letter-spacing:-.06em}.hero p,.section-head p,.site-footer p{color:var(--muted);line-height:1.65;font-size:1.02rem}.hero-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:24px}.btn{display:inline-flex;padding:14px 18px;border-radius:14px;font-weight:900}.btn.primary{background:var(--accent);color:#fff}.btn.secondary{background:#fff;border:1px solid var(--line)}.hero-card{background:#111827;color:#fff;border-radius:var(--radius);padding:28px;box-shadow:var(--shadow);min-height:230px;display:flex;flex-direction:column;justify-content:flex-end;background-image:radial-gradient(circle at top right,rgba(20,184,166,.45),transparent 45%)}.hero-card strong{font-size:1.45rem}.hero-card p{color:#d1d5db}.hero-card span{color:#a7f3d0;font-weight:800}.alert{margin-top:22px;padding:14px 16px;border-radius:14px;font-weight:800}.alert.success{background:#ecfdf3;color:var(--success)}.alert.error{background:#fef3f2;color:var(--danger)}.catalog-section{padding:56px 0}.section-head{display:flex;justify-content:space-between;gap:24px;align-items:flex-end;margin-bottom:24px}.section-head h2{font-size:clamp(1.7rem,3vw,2.7rem);margin:12px 0 4px;letter-spacing:-.04em}.catalog-tools{display:flex;gap:10px;flex-wrap:wrap;justify-content:flex-end}.catalog-tools input,.catalog-tools select,.contact-form input,.contact-form textarea{width:100%;border:1px solid var(--line);border-radius:14px;background:#fff;padding:13px 14px;font:inherit;color:var(--text);outline:none}.catalog-tools input{width:240px}.catalog-tools select{width:210px}.product-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}.product-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;box-shadow:0 8px 24px rgba(15,23,42,.05);transition:.2s ease}.product-card:hover{transform:translateY(-4px);box-shadow:var(--shadow)}.product-image-wrap{position:relative;background:linear-gradient(135deg,#f8fafc,#e5e7eb);padding:24px;height:220px;display:grid;place-items:center}.product-image-wrap img{height:155px}.badge{position:absolute;top:16px;left:16px;background:#111827;color:#fff;border-radius:999px;padding:7px 10px;font-size:.78rem;font-weight:900}.product-body{padding:20px}.category{color:var(--accent);font-weight:900;font-size:.82rem;text-transform:uppercase}.product-body h3{font-size:1.25rem;margin:8px 0 8px;letter-spacing:-.02em}.product-body p{color:var(--muted);line-height:1.5;min-height:48px}.price-box{display:grid;grid-template-columns:1fr;gap:8px;margin:18px 0}.price-box div{display:flex;justify-content:space-between;gap:10px;padding:12px;border-radius:14px;background:var(--surface-2)}.price-box small{color:var(--muted);font-weight:800}.price-box strong{text-align:right}.quote-link{display:flex;justify-content:center;align-items:center;border-radius:14px;background:var(--accent);color:#fff;padding:12px 14px;font-weight:900}.empty-state{display:none;text-align:center;background:#fff;border:1px dashed var(--line);padding:22px;border-radius:18px;color:var(--muted);font-weight:800}.site-footer{background:#111827;color:#fff;padding-top:46px}.footer-grid{display:grid;grid-template-columns:1fr 1fr;gap:34px}.site-footer h2{font-size:2rem;margin:0 0 10px}.contact-list{padding:0;margin:22px 0 0;list-style:none;display:grid;gap:10px;color:#d1d5db}.contact-form{background:#fff;color:var(--text);border-radius:var(--radius);padding:22px;display:grid;gap:13px;margin-bottom:34px}.contact-form label{display:grid;gap:7px;font-weight:900}.contact-form textarea{resize:vertical}.contact-form button{border:0;background:var(--accent);color:#fff;border-radius:14px;padding:14px;font:inherit;font-weight:900;cursor:pointer}.contact-form small{color:var(--muted);line-height:1.4}.hidden-field{position:absolute;left:-9999px}.footer-bottom{border-top:1px solid rgba(255,255,255,.1);text-align:center;padding:18px;color:#9ca3af}.whatsapp-float{position:fixed;right:18px;bottom:18px;z-index:80;background:#16a34a;color:#fff;border-radius:999px;padding:14px 17px;font-weight:900;box-shadow:0 14px 30px rgba(22,163,74,.3)}@media (max-width:900px){body{padding-top:70px}.site-header{height:70px}.main-nav{display:none}.menu-toggle{display:flex}.social-links{margin-left:0}.mobile-panel{top:70px;height:calc(100vh - 70px)}.overlay{inset:70px 0 0}.hero-grid{grid-template-columns:1fr;padding:38px 0}.hero-card{min-height:180px}.section-head{display:grid;align-items:start}.catalog-tools{justify-content:stretch}.catalog-tools input,.catalog-tools select{width:100%}.product-grid{grid-template-columns:repeat(2,1fr)}.footer-grid{grid-template-columns:1fr}}@media (max-width:620px){.header-inner{gap:10px}.brand span{font-size:.98rem}.social-links a{width:32px;height:32px}.hero h1{font-size:2.25rem}.product-grid{grid-template-columns:1fr}.product-image-wrap{height:190px}.whatsapp-float span{font-size:0}.whatsapp-float:before{content:'☏';font-size:1.3rem}.footer-grid{gap:16px}}

.header-socials {
  display: flex;
  align-items: center;
  gap: 12px;
}

.social-btn {
  width: 46px;
  height: 46px;
  border-radius: 16px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: #ffffff;
  text-decoration: none;
  box-shadow: 0 10px 22px rgba(15, 23, 42, 0.12);
  transition: transform 0.2s ease, box-shadow 0.2s ease, filter 0.2s ease;
}

.social-btn svg {
  width: 22px;
  height: 22px;
  fill: currentColor;
}

.social-btn:hover {
  transform: translateY(-3px) scale(1.04);
  box-shadow: 0 16px 28px rgba(15, 23, 42, 0.18);
  filter: brightness(1.05);
}

.social-facebook {
  background: #1877f2;
}

.social-instagram {
  background: radial-gradient(circle at 30% 107%, #fdf497 0%, #fdf497 8%, #fd5949 45%, #d6249f 62%, #285aeb 90%);
}

.social-tiktok {
  background: #111111;
  position: relative;
}

.social-tiktok::before {
  content: "";
  position: absolute;
  inset: 0;
  border-radius: 16px;
  background: linear-gradient(135deg, rgba(37, 244, 238, 0.55), rgba(254, 44, 85, 0.55));
  opacity: 0;
  transition: opacity 0.2s ease;
}

.social-tiktok:hover::before {
  opacity: 1;
}

.social-tiktok svg {
  position: relative;
  z-index: 1;
}

@media (max-width: 768px) {
  .header-socials {
    gap: 8px;
  }

  .social-btn {
    width: 42px;
    height: 42px;
    border-radius: 14px;
  }

  .social-btn svg {
    width: 20px;
    height: 20px;
  }
}

.whatsapp-float {
  position: fixed;
  right: 24px;
  bottom: 24px;
  width: 66px;
  height: 66px;
  border-radius: 22px;
  z-index: 1000;

  display: inline-flex;
  align-items: center;
  justify-content: center;

  color: #ffffff;
  text-decoration: none;

  background:
    radial-gradient(circle at 30% 25%, rgba(255,255,255,0.35), transparent 28%),
    linear-gradient(145deg, #35e36f 0%, #20c65a 42%, #119c43 100%);

  box-shadow:
    0 18px 28px rgba(17, 156, 67, 0.36),
    0 8px 0 #0b7d35,
    inset 0 2px 4px rgba(255, 255, 255, 0.38),
    inset 0 -5px 8px rgba(0, 0, 0, 0.16);

  transform: translateY(0);
  transition:
    transform 0.22s ease,
    box-shadow 0.22s ease,
    filter 0.22s ease;
  overflow: hidden;
}

.whatsapp-float::after {
  content: "";
  position: absolute;
  inset: 5px;
  border-radius: 18px;
  border: 1px solid rgba(255, 255, 255, 0.28);
  pointer-events: none;
}

.whatsapp-float__shine {
  position: absolute;
  top: -45%;
  left: -70%;
  width: 55%;
  height: 190%;
  background: linear-gradient(
    115deg,
    transparent 0%,
    rgba(255, 255, 255, 0.45) 45%,
    transparent 75%
  );
  transform: rotate(18deg);
  transition: left 0.55s ease;
}

.whatsapp-float__icon {
  position: relative;
  z-index: 2;
  width: 36px;
  height: 36px;
  fill: currentColor;
  filter: drop-shadow(0 2px 2px rgba(0, 0, 0, 0.22));
}

.whatsapp-float:hover {
  transform: translateY(-5px) scale(1.04);
  filter: brightness(1.04);
  box-shadow:
    0 24px 34px rgba(17, 156, 67, 0.42),
    0 11px 0 #0b7d35,
    inset 0 2px 4px rgba(255, 255, 255, 0.42),
    inset 0 -5px 8px rgba(0, 0, 0, 0.18);
}

.whatsapp-float:hover .whatsapp-float__shine {
  left: 125%;
}

.whatsapp-float:active {
  transform: translateY(3px) scale(0.98);
  box-shadow:
    0 10px 18px rgba(17, 156, 67, 0.32),
    0 4px 0 #0b7d35,
    inset 0 2px 4px rgba(255, 255, 255, 0.32),
    inset 0 -4px 8px rgba(0, 0, 0, 0.2);
}

@media (max-width: 768px) {
  .whatsapp-float {
    right: 18px;
    bottom: 18px;
    width: 60px;
    height: 60px;
    border-radius: 20px;
  }

  .whatsapp-float::after {
    border-radius: 16px;
  }

  .whatsapp-float__icon {
    width: 33px;
    height: 33px;
  }
}
/* Optimización catálogo extenso */
.catalog-summary {
  margin: 0 0 18px;
  color: var(--muted);
  font-weight: 800;
  font-size: .95rem;
}

.product-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 7px;
  margin: 10px 0 12px;
}

.product-meta span {
  background: #f1f5f9;
  border: 1px solid var(--line);
  color: #334155;
  border-radius: 999px;
  padding: 6px 9px;
  font-size: .78rem;
  font-weight: 800;
}

.pagination {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  margin-top: 26px;
  flex-wrap: wrap;
}

.pagination button {
  min-width: 42px;
  height: 42px;
  border: 1px solid var(--line);
  border-radius: 13px;
  background: #fff;
  color: var(--text);
  font: inherit;
  font-weight: 900;
  cursor: pointer;
  box-shadow: 0 6px 16px rgba(15, 23, 42, .05);
}

.pagination button.active {
  background: var(--accent);
  color: #fff;
  border-color: var(--accent);
}

.pagination button:disabled {
  opacity: .45;
  cursor: not-allowed;
}

.pagination-dots {
  color: var(--muted);
  font-weight: 900;
  padding: 0 3px;
}

@media (max-width: 620px) {
  .catalog-section {
    padding: 34px 0;
  }

  .product-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
  }

  .product-card {
    border-radius: 16px;
  }

  .product-image-wrap {
    height: 112px;
    padding: 12px;
  }

  .product-image-wrap img {
    height: 70px;
  }

  .badge {
    top: 8px;
    left: 8px;
    max-width: calc(100% - 16px);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    padding: 5px 7px;
    font-size: .62rem;
  }

  .product-body {
    padding: 12px;
  }

  .category {
    font-size: .64rem;
    line-height: 1.2;
    display: block;
    min-height: 24px;
  }

  .product-body h3 {
    font-size: .86rem;
    line-height: 1.18;
    min-height: 42px;
    margin: 6px 0;
    display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden;
  }

  .product-body p {
    display: none;
  }

  .product-meta {
    gap: 5px;
    margin: 7px 0;
  }

  .product-meta span {
    font-size: .62rem;
    padding: 4px 6px;
  }

  .price-box {
    gap: 6px;
    margin: 10px 0 0;
  }

  .price-box div {
    display: grid;
    gap: 2px;
    padding: 8px;
    border-radius: 10px;
  }

  .price-box small {
    font-size: .62rem;
  }

  .price-box strong {
    text-align: left;
    font-size: .72rem;
  }

  .pagination button {
    min-width: 38px;
    height: 38px;
    border-radius: 11px;
  }
}

/* Fichas técnicas e imágenes reales de catálogo */
.product-preview-trigger {
  border: 0;
  background: transparent;
  padding: 0;
  width: 100%;
  height: 100%;
  display: grid;
  place-items: center;
  cursor: zoom-in;
}

.product-image-wrap .product-preview-trigger img {
  width: 100%;
  max-width: 100%;
  height: 165px;
  object-fit: contain;
  border-radius: 14px;
  filter: drop-shadow(0 10px 18px rgba(15, 23, 42, .12));
}

.tech-badge {
  position: absolute;
  right: 14px;
  bottom: 14px;
  border-radius: 999px;
  background: rgba(15, 118, 110, .95);
  color: #fff;
  padding: 7px 10px;
  font-size: .72rem;
  font-weight: 900;
  box-shadow: 0 8px 18px rgba(15, 118, 110, .22);
}

.tech-link {
  width: 100%;
  border: 1px solid rgba(15, 118, 110, .24);
  background: #ecfdf5;
  color: var(--accent-dark);
  border-radius: 12px;
  padding: 10px 12px;
  font: inherit;
  font-weight: 900;
  cursor: zoom-in;
  margin: 2px 0 4px;
  transition: transform .18s ease, background .18s ease;
}

.tech-link:hover {
  transform: translateY(-1px);
  background: #d1fae5;
}

.modal-open {
  overflow: hidden;
}

.image-modal {
  position: fixed;
  inset: 0;
  z-index: 2000;
  display: none;
  align-items: center;
  justify-content: center;
  padding: 22px;
}

.image-modal.open {
  display: flex;
}

.image-modal__backdrop {
  position: absolute;
  inset: 0;
  background: rgba(15, 23, 42, .68);
  backdrop-filter: blur(8px);
}

.image-modal__content {
  position: relative;
  width: min(980px, 96vw);
  max-height: 92vh;
  background: #fff;
  border-radius: 24px;
  box-shadow: 0 28px 80px rgba(0,0,0,.28);
  overflow: hidden;
  display: grid;
  grid-template-rows: auto minmax(0, 1fr);
}

.image-modal__close {
  position: absolute;
  top: 14px;
  right: 14px;
  z-index: 2;
  width: 42px;
  height: 42px;
  border: 0;
  border-radius: 14px;
  background: #111827;
  color: #fff;
  font-size: 1.7rem;
  line-height: 1;
  cursor: pointer;
}

.image-modal__header {
  padding: 22px 74px 16px 24px;
  border-bottom: 1px solid var(--line);
}

.image-modal__header span {
  display: inline-flex;
  width: max-content;
  border-radius: 999px;
  background: #e6fffb;
  color: var(--accent-dark);
  padding: 7px 11px;
  font-size: .78rem;
  font-weight: 900;
}

.image-modal__header h2 {
  margin: 10px 0 4px;
  font-size: clamp(1.2rem, 2.3vw, 2rem);
  letter-spacing: -.03em;
}

.image-modal__header p {
  margin: 0;
  color: var(--muted);
  line-height: 1.45;
}

.image-modal__body {
  min-height: 0;
  overflow: auto;
  padding: 20px;
  background: #f8fafc;
}

.image-modal__body img {
  width: 100%;
  max-width: 100%;
  height: auto;
  object-fit: contain;
  border-radius: 16px;
  background: #fff;
  box-shadow: 0 10px 28px rgba(15, 23, 42, .08);
}

@media (max-width: 620px) {
  .product-image-wrap .product-preview-trigger img {
    height: 78px;
    border-radius: 10px;
  }

  .tech-badge {
    right: 8px;
    bottom: 8px;
    padding: 4px 6px;
    font-size: .56rem;
  }

  .tech-link {
    padding: 7px 8px;
    border-radius: 9px;
    font-size: .68rem;
  }

  .image-modal {
    padding: 10px;
  }

  .image-modal__content {
    width: 100%;
    max-height: 94vh;
    border-radius: 18px;
  }

  .image-modal__header {
    padding: 16px 58px 12px 16px;
  }

  .image-modal__body {
    padding: 12px;
  }

  .image-modal__close {
    top: 10px;
    right: 10px;
    width: 38px;
    height: 38px;
    border-radius: 12px;
  }
}

/* ============================================================
   POPUP PROMOCIONAL
============================================================ */

.promo-popup {
  position: fixed;
  inset: 0;
  z-index: 99999;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 24px;
  opacity: 1;
  visibility: visible;
  transition: opacity .28s ease, visibility .28s ease;
}

.promo-popup__backdrop {
  position: absolute;
  inset: 0;
  background: radial-gradient(circle at center, rgba(15,23,42,.48), rgba(15,23,42,.84));
  backdrop-filter: blur(5px);
  -webkit-backdrop-filter: blur(5px);
}

.promo-popup__container {
  position: relative;
  z-index: 2;
  width: auto;
  max-width: min(820px, 92vw);
  max-height: 90vh;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 24px;
  animation: promoPopupEntrance .45s ease;
}

.promo-popup__image,
.promo-popup__image-link {
  display: block;
  max-width: 100%;
  border-radius: 20px;
}

.promo-popup__image {
  width: auto;
  height: auto;
  max-height: 86vh;
  object-fit: contain;
  box-shadow: 0 30px 80px rgba(0,0,0,.45), 0 10px 30px rgba(0,0,0,.25);
  user-select: none;
  -webkit-user-drag: none;
}

.promo-popup__image-link {
  line-height: 0;
  transition: transform .25s ease;
}

.promo-popup__image-link:hover {
  transform: scale(1.008);
}

.promo-popup__close {
  position: absolute;
  top: -18px;
  right: -18px;
  z-index: 3;
  width: 48px;
  height: 48px;
  border: 0;
  border-radius: 50%;
  background: linear-gradient(145deg, #fff, #e9eef4);
  box-shadow: 0 12px 30px rgba(0,0,0,.3), inset 0 1px 0 rgba(255,255,255,.8);
  cursor: pointer;
  transition: transform .2s ease, box-shadow .2s ease;
}

.promo-popup__close:hover {
  transform: scale(1.1) rotate(4deg);
  box-shadow: 0 15px 35px rgba(0,0,0,.35);
}

.promo-popup__close span {
  position: absolute;
  top: 50%;
  left: 50%;
  width: 21px;
  height: 2px;
  background: #172033;
  border-radius: 3px;
}

.promo-popup__close span:first-child {
  transform: translate(-50%, -50%) rotate(45deg);
}

.promo-popup__close span:last-child {
  transform: translate(-50%, -50%) rotate(-45deg);
}

.promo-popup.is-closing {
  opacity: 0;
  visibility: hidden;
}

body.promo-popup-open {
  overflow: hidden;
}

@keyframes promoPopupEntrance {
  from { opacity: 0; transform: translateY(25px) scale(.94); }
  to { opacity: 1; transform: translateY(0) scale(1); }
}

@media (max-width: 900px) {
  .promo-popup { padding: 20px; }
  .promo-popup__container { max-width: 94vw; }
  .promo-popup__image { max-height: 84vh; }
}

@media (max-width: 600px) {
  .promo-popup { padding: 14px; }
  .promo-popup__container {
    width: 100%;
    max-width: calc(100vw - 28px);
    max-height: 92vh;
  }
  .promo-popup__image,
  .promo-popup__image-link {
    width: 100%;
  }
  .promo-popup__image {
    height: auto;
    max-height: 84vh;
    border-radius: 16px;
  }
  .promo-popup__close {
    top: -14px;
    right: -8px;
    width: 44px;
    height: 44px;
  }
}

@media (max-height: 500px) and (orientation: landscape) {
  .promo-popup { padding: 10px; }
  .promo-popup__image { max-height: 90vh; width: auto; }
}
