/* ============================================================
   GSERVERONLINE — Custom styles (más allá de las utilidades de Tailwind)
   ============================================================ */

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { font-family: 'Inter', sans-serif; }

::selection { background: #00e5d422; }
::-webkit-scrollbar { width: 9px; height: 9px; }
::-webkit-scrollbar-thumb { background: #22364f; border-radius: 20px; }
::-webkit-scrollbar-track { background: transparent; }

/* ── background grid + canvas ── */
.bg-grid{
  background-image: linear-gradient(#0ff1e01a 1px, transparent 1px), linear-gradient(90deg, #0ff1e01a 1px, transparent 1px);
  background-size: 42px 42px;
  -webkit-mask-image: radial-gradient(ellipse 80% 60% at 50% 20%, black 0%, transparent 75%);
  mask-image: radial-gradient(ellipse 80% 60% at 50% 20%, black 0%, transparent 75%);
}
#particles-canvas{ opacity:.4; }
#circuit-canvas{ opacity:.85; }

/* ── glass / glow utilities ── */
.glass{
  background: linear-gradient(160deg, #0d1826cc, #111f34cc);
  backdrop-filter: blur(18px);
  -webkit-backdrop-filter: blur(18px);
  border: 1px solid #22364f;
  border-radius: 16px;
}
.grad-text{
  background: linear-gradient(120deg, #00e5d4, #0091ff 60%, #00ff9d);
  -webkit-background-clip: text; background-clip: text; color: transparent;
}
.logo-mark{
  background: linear-gradient(150deg, #0d2c33, #061218);
  border: 1px solid #00e5d466;
  box-shadow: 0 0 20px -4px #00e5d466;
}

/* ── eyebrow badge ── */
.eyebrow{
  font-family:'JetBrains Mono', monospace; font-size: 11.5px; letter-spacing:.14em; text-transform:uppercase;
  color:#00e5d4; display:inline-flex; align-items:center; gap:9px; margin-bottom:16px;
  padding:6px 14px; border:1px solid #00e5d466; border-radius:20px; background:#00e5d422;
  width: max-content;
}
.pulse-dot{ width:6px; height:6px; border-radius:50%; background:#00ff9d; box-shadow:0 0 8px #00ff9d; animation:pulse 1.6s ease-in-out infinite; }
@keyframes pulse{0%,100%{opacity:1;}50%{opacity:.3;}}
.rec-dot{ width:6px; height:6px; border-radius:50%; background:#fb2c36; animation:pulse 1.2s infinite; display:inline-block; }

/* ── section spacing ── */
.section{ padding:96px 0; }
@media(max-width:720px){ .section{ padding:56px 0; } }
.section-head{ max-width:640px; margin:0 auto 52px; text-align:center; }

/* ── buttons ── */
.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:9px;
  padding:15px 28px; border-radius:32px; font-weight:700; font-size:13.5px;
  font-family:'Sora',sans-serif; transition:.25s; white-space:nowrap;
  text-transform:uppercase; letter-spacing:.02em;
  box-shadow:0 10px 24px -8px rgba(0,0,0,.4);
}
.btn-cyan{ background:linear-gradient(135deg,#00e5d4,#0091ff); color:#02110f; box-shadow:0 10px 26px -8px rgba(0,229,212,.55); }
.btn-cyan:hover{ transform:translateY(-3px); box-shadow:0 16px 34px -8px rgba(0,229,212,.7); }
.btn-green{ background:linear-gradient(135deg,#7cff5a,#00c853); color:#02110f; box-shadow:0 10px 26px -8px rgba(0,200,83,.55); }
.btn-green:hover{ transform:translateY(-3px); box-shadow:0 16px 34px -8px rgba(0,200,83,.7); }
.btn-blue{ background:linear-gradient(135deg,#0091ff,#005fb3); color:#fff; box-shadow:0 10px 26px -8px rgba(0,145,255,.55); }
.btn-blue:hover{ transform:translateY(-3px); box-shadow:0 16px 34px -8px rgba(0,145,255,.7); }
.btn-outline{ background:#0d1826; border:1.5px solid #22364f; color:#f2f6fb; box-shadow:0 8px 20px -8px rgba(0,0,0,.4); }
.btn-outline:hover{ border-color:#00e5d4; color:#00e5d4; transform:translateY(-3px); }
.btn-wa{
  background:#25D366; color:#fff; padding:11px 22px; border-radius:30px; font-weight:700; font-size:13px;
  display:inline-flex; align-items:center; gap:8px; font-family:'Sora',sans-serif; transition:.25s;
  box-shadow:0 10px 24px -8px rgba(37,211,102,.55);
}
.btn-wa:hover{ filter:brightness(1.08); transform:translateY(-3px); box-shadow:0 16px 32px -8px rgba(37,211,102,.7); }

/* ── nav ── */
.nav-link{ font-size:12.5px; color:#8fa2bd; font-weight:600; text-transform:uppercase; letter-spacing:.03em; transition:.15s; }
.nav-link:hover{ color:#00e5d4; }
.nav-links.open{ display:flex !important; position:fixed; top:74px; left:16px; right:16px; flex-direction:column; align-items:flex-start; padding:18px; gap:14px; background:#0d1826; border:1px solid #22364f; border-radius:14px; z-index:59; }
.social-mini-btn{ width:30px; height:30px; border-radius:8px; background:#ffffff08; border:1px solid #22364f; display:flex; align-items:center; justify-content:center; color:#8fa2bd; transition:.15s; }
.social-mini-btn:hover{ color:#00e5d4; border-color:#00e5d4; }

/* ── hero ── */
.hero-grid{ display:grid; grid-template-columns:1fr 1.35fr .62fr; gap:22px; align-items:start; width:100%; }
@media(max-width:1180px){ .hero-grid{ grid-template-columns:1fr; } }
.hero-title{ font-size: clamp(30px, 6.5vw, 44px); }
@media(max-width:520px){ .hero-title{ font-size: clamp(24px, 8vw, 32px); } }
.golden-text{
  font-size: 0.72em;
  margin-top: .15em;
  background: linear-gradient(120deg, #ffd76b, #ffb300 55%, #e69500);
  -webkit-background-clip: text; background-clip: text; color: transparent;
  text-shadow: 0 0 24px rgba(255,179,0,.35);
}
.repair-text{
  font-size: 0.4em;
  margin-top: .1em;
  letter-spacing: .3em;
  color: #7a9faa;
}
.trust-item{ display:flex; align-items:center; gap:8px; font-size:12px; color:#8fa2bd; font-weight:500; }

.hero-carousel{ position:relative; }
.hc-clip{ position:relative; border-radius:16px; overflow:hidden; aspect-ratio:16/10; box-shadow:0 30px 70px -26px #000c; }
@media(max-width:1180px){ .hc-clip{ aspect-ratio:16/9; } }
@media(max-width:520px){ .hc-clip{ aspect-ratio:4/3; } }
.hc-live{ position:absolute; top:12px; left:12px; z-index:6; display:flex; align-items:center; gap:6px; background:#000a; border:1px solid #22364f; padding:5px 11px; border-radius:20px; font-family:'JetBrains Mono',monospace; font-size:10px; letter-spacing:.05em; }
.hc-swiper{ height:100%; }
.hc-swiper .swiper-slide{ position:relative; }
.hc-swiper .swiper-slide img, .hc-swiper .swiper-slide video{ width:100%; height:100%; object-fit:cover; }
.hc-empty{ display:flex !important; flex-direction:column; align-items:center; justify-content:center; gap:10px; color:#526480; text-align:center; padding:30px; height:100%; font-size:13px; }
.hc-prev, .hc-next{ position:absolute; top:50%; transform:translateY(-50%); z-index:6; width:34px; height:34px; border-radius:50%; background:#000a; border:1px solid #ffffff22; color:#fff; display:flex; align-items:center; justify-content:center; cursor:pointer; font-size:13px; }
.hc-prev{ left:10px; } .hc-next{ right:10px; }
.hc-pagination{ position:absolute !important; bottom:12px !important; z-index:6; }
.hc-pagination .swiper-pagination-bullet{ background:#ffffff44; opacity:1; }
.hc-pagination .swiper-pagination-bullet-active{ background:#00e5d4; width:16px; border-radius:4px; }

.hero-side{ display:flex; flex-direction:column; gap:10px; }
@media(max-width:1180px){ .hero-side{ flex-direction:row; overflow-x:auto; } }
.hs-item{ display:flex; align-items:center; gap:10px; padding:8px; border-radius:12px; cursor:pointer; transition:.15s; flex-shrink:0; border:1px solid #22364f; background:linear-gradient(160deg, #0d1826cc, #111f34cc); }
.hs-item:hover{ border-color:#00e5d4; }
.hs-item.active{ border-color:#00e5d4; background:#00e5d422; }
.hs-item .thumb{ width:50px; height:50px; border-radius:9px; object-fit:cover; background:#0d1826; flex-shrink:0; }
.hs-item .lbl{ font-size:11.5px; font-weight:500; line-height:1.3; }

.float-cta{ position:absolute; z-index:8; bottom:-18px; right:6%; padding:14px 18px; display:flex; align-items:center; gap:12px; border:1px solid #00e5d466; transform:rotate(-3deg); box-shadow:0 20px 40px -16px #000c; max-width:230px; }
@media(max-width:1180px){ .float-cta{ position:relative; bottom:auto; right:auto; margin:14px auto 0; transform:none; max-width:none; } }
.float-cta .ic{ width:38px; height:38px; border-radius:10px; background:#00e5d422; display:flex; align-items:center; justify-content:center; color:#00e5d4; flex-shrink:0; font-size:16px; }
.float-cta b{ font-size:12.5px; display:block; font-family:'Sora',sans-serif; }
.float-cta span{ font-size:11px; color:#526480; }

/* ── trust strip ── */
.trust-strip{ display:grid; grid-template-columns:repeat(5,1fr); gap:0; padding:18px 8px; }
@media(max-width:760px){ .trust-strip{ grid-template-columns:repeat(2,1fr); gap:16px; padding:18px; } }
.ts-item{ display:flex; align-items:center; gap:11px; padding:0 16px; border-right:1px solid #22364f; }
.ts-item:last-child{ border-right:none; }
@media(max-width:760px){ .ts-item{ border-right:none; border-bottom:1px solid #22364f; padding-bottom:14px; } }
.ts-item .ic{ width:38px; height:38px; border-radius:10px; background:#00e5d422; display:flex; align-items:center; justify-content:center; color:#00e5d4; flex-shrink:0; }
.ts-item b{ font-family:'JetBrains Mono',monospace; font-size:16px; display:block; }
.ts-item span{ font-size:11px; color:#526480; }

/* ── services ── */
.svc-card{ padding:26px; position:relative; overflow:hidden; transition:.25s; }
.svc-card:hover{ transform:translateY(-5px); }
.svc-icon{ width:46px; height:46px; border-radius:12px; display:flex; align-items:center; justify-content:center; margin-bottom:18px; font-size:19px; }
.svc-list{ list-style:none; margin-bottom:16px; padding:0; }
.svc-list li{ font-size:12.5px; color:#8fa2bd; padding:4px 0 4px 16px; position:relative; }
.svc-list li::before{ content:''; position:absolute; left:0; top:11px; width:5px; height:5px; border-radius:50%; background:#00e5d4; }
.svc-tag{ display:inline-flex; align-items:center; gap:6px; font-family:'JetBrains Mono',monospace; font-size:10px; padding:4px 10px; border-radius:20px; margin-bottom:14px; }
.svc-tag-green{ background:#00ff9d22; color:#00ff9d; }
.svc-tag-amber{ background:#f7e30022; color:#f7e300; }
.svc-tag-cyan{ background:#00e5d422; color:#00e5d4; border:1px solid #00e5d455; }
.svc-photo{ height:76px; border-radius:10px; margin-bottom:14px; position:relative; overflow:hidden; display:flex; align-items:center; justify-content:center; font-size:26px;
  background: repeating-linear-gradient(90deg, #ffffff08 0 1px, transparent 1px 22px), repeating-linear-gradient(0deg, #ffffff08 0 1px, transparent 1px 22px), linear-gradient(135deg,#0d1826,#081018);
  border:1px solid #22364f; color:#ffffff33;
}
.svc-more{ display:flex; align-items:center; justify-content:center; gap:8px; font-size:12px; font-weight:700; text-transform:uppercase; letter-spacing:.02em; padding:11px 15px; border-radius:9px; transition:.15s; font-family:'Sora',sans-serif; }
.svc-more:hover{ filter:brightness(1.1); transform:translateY(-1px); }
.svc-cyan .svc-more, .svc-card:nth-child(5) .svc-more{ background:linear-gradient(135deg,#00e5d4,#00a99a); color:#02110f; }
.svc-green .svc-more{ background:linear-gradient(135deg,#7cff5a,#00c853); color:#02110f; }
.svc-blue .svc-more{ background:linear-gradient(135deg,#0091ff,#005fb3); color:#fff; }
.svc-amber .svc-more{ background:linear-gradient(135deg,#f7e300,#c9b900); color:#02110f; }

.svc-cyan{ border-color:#00e5d466 !important; box-shadow:0 0 24px -12px #00e5d488; }
.svc-cyan .svc-icon{ background:#00e5d422; color:#00e5d4; }
.svc-cyan .svc-photo{ box-shadow: inset 0 0 40px -10px #00e5d455; }
.svc-green{ border-color:#00ff9d66 !important; box-shadow:0 0 24px -12px #00ff9d88; }
.svc-green .svc-icon{ background:#00ff9d22; color:#00ff9d; }
.svc-green .svc-photo{ box-shadow: inset 0 0 40px -10px #00ff9d55; }
.svc-blue{ border-color:#0091ff66 !important; box-shadow:0 0 24px -12px #0091ff88; }
.svc-blue .svc-icon{ background:#0091ff22; color:#0091ff; }
.svc-blue .svc-photo{ box-shadow: inset 0 0 40px -10px #0091ff55; }
.svc-amber{ border-color:#f7e30066 !important; box-shadow:0 0 24px -12px #f7e30088; }
.svc-amber .svc-icon{ background:#f7e30022; color:#f7e300; }
.svc-amber .svc-photo{ box-shadow: inset 0 0 40px -10px #f7e30055; }

/* ── stats ── */
.stats-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:0; padding:26px 10px; }
@media(max-width:760px){ .stats-grid{ grid-template-columns:repeat(2,1fr); gap:24px; padding:26px 18px; } }
.stat-box{ padding:10px 20px; text-align:center; display:flex; flex-direction:column; align-items:center; gap:8px; }
.stat-box .sic{ width:44px; height:44px; border-radius:12px; background:#00e5d422; border:1px solid #00e5d466; display:flex; align-items:center; justify-content:center; color:#00e5d4; font-size:17px; }
.stat-box .num{ font-family:'JetBrains Mono',monospace; font-size:30px; font-weight:700; background:linear-gradient(120deg,#00e5d4,#0091ff); -webkit-background-clip:text; background-clip:text; color:transparent; }
.stat-box .lbl{ font-size:11.5px; color:#8fa2bd; text-transform:uppercase; letter-spacing:.04em; }

/* ── search / chips ── */
.search-box{ display:flex; align-items:center; gap:9px; padding:11px 16px; width:100%; max-width:360px; }
.search-box input{ background:none; border:none; outline:none; color:#f2f6fb; font-size:13.5px; width:100%; font-family:'Inter',sans-serif; }
.search-box input::placeholder{ color:#526480; }
.chip-row{ display:flex; gap:9px; flex-wrap:wrap; justify-content:center; margin-bottom:32px; }
.cat-chip{ padding:8px 16px; border-radius:20px; font-size:12.5px; color:#8fa2bd; font-weight:500; transition:.15s; border:1px solid #22364f; background:#ffffff06; cursor:pointer; }
.cat-chip:hover{ border-color:#00e5d4; color:#00e5d4; }
.cat-chip.active{ background:#00e5d4; border-color:#00e5d4; color:#02110f; font-weight:700; }

/* ── product cards ── */
.p-card{ overflow:hidden; transition:.2s; border-radius:16px; }
.p-card:hover{ transform:translateY(-4px); box-shadow:0 24px 48px -22px #00e5d444; }
.p-media{ aspect-ratio:1; background:linear-gradient(160deg,#0d1826,#081018); position:relative; overflow:hidden; padding:10px; display:flex; align-items:center; justify-content:center; }
.p-media img{ width:100%; height:100%; object-fit:contain; transition:transform .4s; }
.p-card:hover .p-media img{ transform:scale(1.06); }
.p-badge{ position:absolute; top:8px; right:8px; font-family:'JetBrains Mono',monospace; font-size:10px; background:#000a; border:1px solid #22364f; padding:3px 9px; border-radius:20px; color:#f7e300; }
.p-body{ padding:15px 16px 17px; }
.p-cat{ font-family:'JetBrains Mono',monospace; font-size:10px; color:#00e5d4; text-transform:uppercase; letter-spacing:.06em; margin-bottom:5px; }
.p-name{ font-weight:600; font-size:14px; margin-bottom:10px; line-height:1.3; min-height:36px; }
.p-price{ font-family:'JetBrains Mono',monospace; font-size:16px; color:#00e5d4; font-weight:600; }
.p-price-row{ display:flex; flex-direction:column; gap:10px; }
.p-price-row .p-price{ margin:0; }
.p-price-row .p-buy{ width:100%; }
@media(min-width:480px){
  .p-price-row{ flex-direction:row; align-items:center; justify-content:space-between; gap:8px; flex-wrap:wrap; }
  .p-price-row .p-price{ flex:1; min-width:0; font-size:15px; }
  .p-price-row .p-buy{ width:auto; flex-shrink:0; }
}
@media(min-width:1024px){
  .p-price-row{ flex-direction:column; align-items:stretch; }
  .p-price-row .p-buy{ width:100%; }
}
.p-buy{ padding:9px 18px; border-radius:24px; background:#0d1826; border:1.5px solid #22364f; font-size:12px; font-weight:700; transition:.2s; color:#e8f0fc; box-shadow:0 8px 18px -8px rgba(0,0,0,.4); }
.p-buy:hover{ background:#00e5d4; color:#02110f; border-color:#00e5d4; transform:translateY(-2px); box-shadow:0 12px 24px -8px rgba(0,229,212,.5); }
.digi-card{
  padding:16px; display:flex; gap:13px; align-items:center; border-radius:14px;
  background:linear-gradient(160deg,#0c1826,#0a1220) !important;
  border:2px solid rgba(0,229,212,.55) !important;
  box-shadow:0 0 30px -4px rgba(0,229,212,.6), inset 0 0 24px -12px rgba(0,229,212,.35);
  transition:.25s; position:relative; z-index:1;
}
.digi-card:hover{ border-color:rgba(0,255,157,.85) !important; box-shadow:0 0 42px -2px rgba(0,255,157,.7), inset 0 0 24px -10px rgba(0,255,157,.4); transform:translateY(-4px); }
.digi-card b{ color:#ffffff !important; font-weight:800 !important; text-shadow:0 0 12px rgba(0,229,212,.4); }
.digi-thumb{ width:52px; height:52px; border-radius:9px; background:#0d1826; flex-shrink:0; object-fit:cover; border:1.5px solid rgba(0,229,212,.5); box-shadow:0 0 14px -4px rgba(0,229,212,.6); }
.empty-note{ color:#526480; font-size:13.5px; font-family:'JetBrains Mono',monospace; padding:30px 0; text-align:center; grid-column:1/-1; }
.loading-note{ color:#526480; font-family:'JetBrains Mono',monospace; font-size:13px; padding:20px 0; text-align:center; grid-column:1/-1; }

/* ── gallery ── */
.g-item{ border-radius:14px; overflow:hidden; border:1px solid #22364f; cursor:zoom-in; background:linear-gradient(160deg, #0d1826cc, #111f34cc); }
.g-item .g-media{ position:relative; aspect-ratio:4/3; overflow:hidden; }
.g-item .g-media img, .g-item .g-media video{ width:100%; height:100%; object-fit:cover; transition:.3s; }
.g-item:hover .g-media img, .g-item:hover .g-media video{ transform:scale(1.06); }
.g-item .g-tag{ padding:12px 14px; }
.g-item .g-tag b{ font-size:13px; display:block; }
.g-item .g-tag span{ font-size:11px; color:#526480; }
.g-play{ position:absolute; inset:0; display:flex; align-items:center; justify-content:center; background:#0006; color:#fff; font-size:32px; }
.gal-arrow{ position:absolute; top:50%; transform:translateY(-50%); z-index:5; width:38px; height:38px; border-radius:50%; background:#0d1826; border:1px solid #22364f; color:#f2f6fb; display:flex; align-items:center; justify-content:center; cursor:pointer; transition:.15s; }
.gal-arrow:hover{ border-color:#00e5d4; color:#00e5d4; }
.gal-arrow-l{ left:-18px; } .gal-arrow-r{ right:-18px; }
@media(max-width:900px){ .gal-arrow{ display:none; } }

/* ── testimonials ── */
.testi-card{ padding:26px; text-align:left; }
.testi-quote-ic{ width:34px; height:34px; border-radius:9px; background:#00e5d422; display:flex; align-items:center; justify-content:center; color:#00e5d4; margin-bottom:14px; font-size:15px; }
.testi-stars{ color:#f7e300; font-size:13px; margin-bottom:12px; letter-spacing:2px; }
.testi-card p{ font-size:14px; color:#8fa2bd; margin-bottom:18px; line-height:1.6; }
.testi-who{ display:flex; align-items:center; gap:10px; }
.testi-avatar{ width:38px; height:38px; border-radius:50%; background:linear-gradient(140deg,#00e5d4,#0091ff); display:flex; align-items:center; justify-content:center; font-family:'Sora',sans-serif; font-weight:700; color:#02110f; font-size:14px; flex-shrink:0; }
.testi-who b{ font-size:13px; display:block; }
.testi-who span{ font-size:11.5px; color:#526480; }

/* ── cta ── */
.cta-strip{ padding:52px; text-align:center; position:relative; overflow:hidden; }
.cta-strip::before{ content:''; position:absolute; inset:0; background:radial-gradient(ellipse at 50% 0%, #00e5d422, transparent 60%); pointer-events:none; }

/* ── footer ── */
.foot-grid{ display:grid; grid-template-columns:1.3fr 1fr 1fr 1fr 1.1fr; gap:26px; margin-bottom:20px; }
@media(max-width:1080px){ .foot-grid{ grid-template-columns:1fr 1fr 1fr; } }
@media(max-width:600px){ .foot-grid{ grid-template-columns:1fr 1fr; } }
.foot-h4{ font-size:12px; text-transform:uppercase; letter-spacing:.06em; color:#526480; margin-bottom:14px; font-family:'Sora',sans-serif; }
.foot-link{ font-size:13px; color:#8fa2bd; display:block; margin-bottom:10px; transition:.15s; }
.foot-link:hover{ color:#00e5d4; }
.foot-input{ width:100%; background:#ffffff08; border:1px solid #22364f; border-radius:8px; padding:10px 12px; color:#f2f6fb; font-size:13px; outline:none; font-family:inherit; }
.foot-input:focus{ border-color:#00e5d4; }
.map-embed{ border-radius:12px; overflow:hidden; border:1px solid #22364f; margin-top:10px; height:140px; }
.map-embed iframe{ width:100%; height:100%; border:0; filter:grayscale(.3) invert(.92) contrast(.9); }
.pay-chip{ font-family:'JetBrains Mono',monospace; font-size:10px; padding:5px 9px; border:1px solid #22364f; border-radius:6px; color:#8fa2bd; }

/* ── whatsapp float ── */
.wa-float{ position:fixed; bottom:22px; right:22px; z-index:70; width:58px; height:58px; border-radius:50%; background:#25D366; display:flex; align-items:center; justify-content:center; box-shadow:0 14px 30px -8px #000a; color:#fff; font-size:27px; animation:wafloat 2.4s ease-in-out infinite; }
@keyframes wafloat{0%,100%{transform:translateY(0);}50%{transform:translateY(-6px);}}

/* ── modals ── */
.modal-overlay{ position:fixed; inset:0; background:#020509dd; backdrop-filter:blur(5px); display:none; align-items:center; justify-content:center; z-index:100; padding:20px; }
.modal-overlay.active{ display:flex; }
.modal{ width:100%; max-width:460px; max-height:90vh; overflow-y:auto; border-radius:18px; }
.modal-head{ padding:18px 22px; border-bottom:1px solid #22364f; display:flex; align-items:center; justify-content:space-between; }
.modal-head button{ color:#8fa2bd; font-size:20px; }
.modal-body{ padding:20px 22px; }
.modal-body img.pv{ width:100%; border-radius:10px; margin-bottom:14px; aspect-ratio:1.4; object-fit:cover; background:#0d1826; }
.modal-price{ font-family:'JetBrains Mono',monospace; font-size:22px; color:#00e5d4; margin-bottom:16px; }
.field{ margin-bottom:12px; }
.field label{ display:block; font-size:12px; color:#8fa2bd; margin-bottom:6px; }
.field input{ width:100%; padding:10px 12px; border-radius:8px; background:#ffffff08; border:1px solid #22364f; color:#f2f6fb; font-size:13.5px; outline:none; }
.field input:focus{ border-color:#00e5d4; }
.pay-note{ font-size:11.5px; color:#526480; text-align:center; margin-top:10px; line-height:1.5; }
.lightbox-overlay{ position:fixed; inset:0; background:#000e; display:none; align-items:center; justify-content:center; z-index:110; padding:30px; }
.lightbox-overlay.active{ display:flex; }
.lightbox-overlay img, .lightbox-overlay video{ max-width:100%; max-height:90vh; border-radius:10px; }

/* ── toasts ── */
.toast{ background:#0d1826; border:1px solid #22364f; border-left:3px solid #00e5d4; padding:12px 16px; border-radius:8px; font-size:12.5px; box-shadow:0 10px 30px -10px #000a; max-width:280px; }
.toast.err{ border-left-color:#fb2c36; }
.toast.ok{ border-left-color:#00ff9d; }

@media(prefers-reduced-motion: reduce){ *{ animation:none !important; transition:none !important; } }

/* ============================================================
   ✨ PREMIUM UPGRADE — capa visual adicional (no toca IDs/JS)
   ============================================================ */

/* ── fondo con más profundidad ── */
body{ position:relative; }
body::before{
  content:''; position:fixed; inset:0; z-index:-21; pointer-events:none;
  background:
    radial-gradient(60% 45% at 15% -5%, #00e5d422, transparent 65%),
    radial-gradient(50% 40% at 100% 10%, #0091ff1f, transparent 60%),
    radial-gradient(55% 45% at 50% 105%, #00ff9d18, transparent 65%);
}
.hero-section{ position:relative; }
.hero-section::before{
  content:''; position:absolute; top:-10%; left:-6%; width:46%; height:60%; z-index:-1; pointer-events:none;
  background:radial-gradient(circle, #00e5d42e, transparent 70%); filter:blur(40px);
  animation:auroraShift 9s ease-in-out infinite alternate;
}
.hero-section::after{
  content:''; position:absolute; top:5%; right:-8%; width:40%; height:55%; z-index:-1; pointer-events:none;
  background:radial-gradient(circle, #00ff9d26, transparent 70%); filter:blur(46px);
  animation:auroraShift 11s ease-in-out infinite alternate-reverse;
}
@keyframes auroraShift{ 0%{ transform:translate(0,0) scale(1); } 100%{ transform:translate(4%,3%) scale(1.08); } }

/* ── glass: borde con degradado + brillo interior ── */
.glass{
  position:relative;
  box-shadow: 0 1px 0 0 #ffffff0d inset, 0 24px 48px -28px #000d;
  transition: box-shadow .25s, border-color .25s, transform .25s;
}

/* ── botones con barrido de luz ── */
.btn, .btn-wa{ position:relative; overflow:hidden; }
.btn::after{
  content:''; position:absolute; top:0; left:-60%; width:40%; height:100%;
  background:linear-gradient(120deg, transparent, #ffffff55, transparent);
  transform:skewX(-20deg); transition:left .55s ease;
}
.btn:hover::after{ left:130%; }
.btn-cyan:hover, .btn-green:hover, .btn-blue:hover{ filter:saturate(1.15); }

/* ── tarjetas de servicio: halo animado en hover ── */
.svc-card{ border-radius:20px; }
.svc-card::before{
  content:''; position:absolute; inset:0; border-radius:20px; padding:1px; z-index:-1;
  background:linear-gradient(135deg, #ffffff22, transparent 40%, transparent 60%, #ffffff14);
  -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
  -webkit-mask-composite: xor; mask-composite: exclude;
  opacity:0; transition:opacity .3s;
}
.svc-card:hover::before{ opacity:1; }
.svc-card:hover{ transform:translateY(-7px) scale(1.012); }
.svc-icon{ transition:transform .3s; }
.svc-card:hover .svc-icon{ transform:scale(1.1) rotate(-4deg); }

/* ── tarjetas de producto: profundidad premium ── */
.p-card{ border-radius:18px; }
.p-card:hover{ transform:translateY(-6px); }
.p-badge{ backdrop-filter:blur(6px); }
.p-buy{ transition:background .2s, color .2s, border-color .2s, transform .15s, box-shadow .2s; }

/* ── stats: brillo respirando detrás del número ── */
.stat-box{ position:relative; }
.stat-box .num{ position:relative; }
.stat-box:hover .sic{ transform:translateY(-2px); box-shadow:0 0 22px -4px #00e5d488; }
.stat-box .sic{ transition:transform .25s, box-shadow .25s; }

/* ── separadores de sección con línea degradada ── */
.section-pad{ position:relative; }
.section-pad::before{
  content:''; position:absolute; top:0; left:50%; transform:translateX(-50%);
  width:min(560px,70%); height:1px;
  background:linear-gradient(90deg, transparent, #00e5d466, transparent);
}

/* ── testimonios y galería: hover más vivo ── */
.testi-card{ transition:transform .25s, box-shadow .25s; }
.testi-card:hover{ transform:translateY(-4px); box-shadow:0 20px 40px -22px #00e5d444; }
.g-item{ transition:transform .25s, box-shadow .25s, border-color .25s; }
.g-item:hover{ transform:translateY(-4px); border-color:#00e5d466; box-shadow:0 20px 40px -22px #00e5d444; }

/* ── whatsapp flotante con halo pulsante ── */
.wa-float{ box-shadow:0 14px 30px -8px #000a, 0 0 0 0 #25d36666; animation:wafloat 2.4s ease-in-out infinite, waring 2.4s ease-out infinite; }
@keyframes waring{ 0%{ box-shadow:0 14px 30px -8px #000a, 0 0 0 0 #25d36666; } 70%{ box-shadow:0 14px 30px -8px #000a, 0 0 0 14px #25d36600; } 100%{ box-shadow:0 14px 30px -8px #000a, 0 0 0 0 #25d36600; } }

/* ── logo: pulso suave ── */
.logo-mark{ transition:box-shadow .3s; }
.logo-mark:hover{ box-shadow:0 0 28px -2px #00e5d499; }

@media(prefers-reduced-motion: reduce){
  .hero-section::before, .hero-section::after, .wa-float{ animation:none !important; }
}
