/* Inicio v2: estructura tipo ColdHosting con colores NubeGuard */
:root { --ng-navy:#0b0a2c; --ng-blue:#113072; --ng-blue2:#1a2aa8; --ng-accent:#1062fe; --ng-cyan:#22d3ff; --ng-text:#5b6185; --ng-title:#0c1066; }
.ng2-hero { position: relative; padding: 210px 0 120px; background: radial-gradient(circle at 80% 40%, rgba(34,211,255,.18) 0, rgba(34,211,255,0) 40%), linear-gradient(135deg, #0b0a2c 0%, #16135a 55%, #1a2aa8 100%); overflow: hidden; }
.ng2-hero::after { content:""; position:absolute; left:0; right:0; bottom:-1px; height:80px; background: #fff; clip-path: ellipse(70% 100% at 50% 100%); }
.ng2-kicker { display:inline-flex; align-items:center; gap:10px; color:#cfe6ff; background:rgba(255,255,255,.08); border:1px solid rgba(255,255,255,.15); padding:8px 16px; border-radius:30px; font-size:14px; margin-bottom:22px; }
.ng2-dot { width:8px; height:8px; border-radius:50%; background:#25d366; box-shadow:0 0 0 4px rgba(37,211,102,.25); }
.ng2-title { color:#fff; font-size:58px; line-height:1.1; font-weight:700; margin-bottom:20px; }
.ng2-title span { background: linear-gradient(90deg,#4ea1ff,#22d3ff); -webkit-background-clip:text; background-clip:text; color:transparent; }
.ng2-lead { color:rgba(255,255,255,.8); font-size:18px; line-height:1.7; max-width:560px; margin-bottom:30px; }
.ng2-search { position:relative; display:flex; align-items:center; background:#fff; border-radius:14px; padding:8px; max-width:600px; box-shadow:0 20px 40px rgba(0,0,0,.25); }
.ng2-search .fa-search { color:#8a90b5; font-size:18px; margin:0 12px 0 14px; }
.ng2-search input[type=search] { flex:1; border:0; outline:0; font-size:16px; height:48px; background:transparent; color:#0c1066; }
.ng2-search input[type=submit] { border:0; background:var(--ng-accent); color:#fff; font-weight:600; padding:0 26px; height:48px; border-radius:10px; cursor:pointer; }
.ng2-chips { list-style:none; padding:0; margin:24px 0 0; display:flex; flex-wrap:wrap; gap:10px 22px; }
.ng2-chips li { color:#dbe7ff; font-size:15px; display:inline-flex; align-items:center; gap:8px; }
.ng2-chips .fa { color:var(--ng-cyan); }
.ng2-hero-img { position:relative; }
.ng2-hero-img > img:first-child { width:100%; }
.ng2-sec { padding:100px 0; background:#fff; }
.ng2-alt { background:#f5f7ff; }
.ng2-dark { background: linear-gradient(135deg,#0b0a2c 0%,#113072 100%); }
.ng2-head { text-align:center; max-width:720px; margin:0 auto 55px; }
.ng2-sub { display:inline-block; color:var(--ng-accent); font-weight:600; font-size:14px; letter-spacing:1.5px; text-transform:uppercase; margin-bottom:10px; }
.ng2-head h2 { color:var(--ng-title); font-size:40px; font-weight:700; margin-bottom:14px; }
.ng2-head h2 span { color:var(--ng-accent); }
.ng2-head p { color:var(--ng-text); font-size:17px; line-height:1.7; margin:0; }
.ng2-dark .ng2-head h2 { color:#fff; } .ng2-dark .ng2-head h2 span { color:var(--ng-cyan); } .ng2-dark .ng2-head p { color:rgba(255,255,255,.75); } .ng2-dark .ng2-sub { color:var(--ng-cyan); }
.ng2-svc { position:relative; background:#fff; border:1px solid #e6e9f7; border-radius:18px; padding:36px 32px; height:100%; margin-bottom:30px; box-shadow:0 10px 30px rgba(12,16,102,.06); transition:transform .25s, box-shadow .25s; display:flex; flex-direction:column; }
.ng2-svc:hover { transform:translateY(-6px); box-shadow:0 20px 45px rgba(12,16,102,.12); }
.ng2-svc-hl { border:2px solid var(--ng-accent); }
.ng2-tag { position:absolute; top:-13px; right:26px; background:var(--ng-accent); color:#fff; font-size:12px; font-weight:600; padding:5px 12px; border-radius:20px; }
.ng2-ico { width:60px; height:60px; border-radius:16px; background:linear-gradient(135deg,#1062fe,#22d3ff); color:#fff; font-size:26px; display:flex; align-items:center; justify-content:center; margin-bottom:22px; }
.ng2-svc h3 { color:var(--ng-title); font-size:22px; font-weight:700; margin-bottom:10px; }
.ng2-svc p { color:var(--ng-text); font-size:15px; line-height:1.7; }
.ng2-svc ul { list-style:none; padding:0; margin:6px 0 22px; }
.ng2-svc li { color:#3b4170; font-size:15px; padding:6px 0 6px 26px; position:relative; }
.ng2-svc li::before { content:"\f00c"; font-family:FontAwesome; position:absolute; left:0; color:#25b864; }
.ng2-price { color:var(--ng-title); font-size:32px; font-weight:700; margin-top:auto; margin-bottom:18px; }
.ng2-price small { font-size:14px; color:var(--ng-text); font-weight:500; }
.ng2-price-q { font-size:26px; }
.ng2-btn { display:inline-flex; align-items:center; justify-content:center; gap:8px; background:var(--ng-accent); color:#fff !important; font-weight:600; padding:13px 26px; border-radius:10px; transition:background .2s; }
.ng2-btn:hover { background:#0a4fd6; }
.ng2-btn-wa { background:#25d366; } .ng2-btn-wa:hover { background:#1eb257; }
.ng2-why { display:flex; gap:18px; background:#fff; border-radius:16px; padding:28px 26px; margin-bottom:30px; height:calc(100% - 30px); border:1px solid #e6e9f7; }
.ng2-why-ico { flex:none; width:52px; height:52px; border-radius:14px; background:rgba(16,98,254,.1); color:var(--ng-accent); font-size:22px; display:flex; align-items:center; justify-content:center; }
.ng2-why h3 { color:var(--ng-title); font-size:19px; font-weight:700; margin-bottom:6px; }
.ng2-why p { color:var(--ng-text); font-size:15px; line-height:1.65; margin:0; }
.ng2-cta-mini { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:20px; margin-top:20px; padding:30px 36px; border-radius:18px; background:linear-gradient(120deg,#0b0a2c,#1a2aa8); }
.ng2-cta-mini h3 { color:#fff; font-size:24px; font-weight:700; margin-bottom:4px; }
.ng2-cta-mini p { color:rgba(255,255,255,.75); margin:0; }
.ng2-panel { background:rgba(255,255,255,.06); border:1px solid rgba(255,255,255,.12); border-radius:18px; padding:32px; margin-bottom:30px; height:calc(100% - 30px); }
.ng2-panel h3 { color:#fff; font-size:20px; font-weight:700; margin-bottom:18px; display:flex; align-items:center; gap:12px; }
.ng2-panel h3 .fa { color:var(--ng-cyan); }
.ng2-spec { list-style:none; padding:0; margin:0; }
.ng2-spec li { display:flex; justify-content:space-between; gap:15px; padding:13px 0; border-bottom:1px solid rgba(255,255,255,.1); }
.ng2-spec li:last-child { border-bottom:0; }
.ng2-spec span { color:rgba(255,255,255,.65); font-size:15px; }
.ng2-spec b { color:#fff; font-size:15px; font-weight:600; text-align:right; }
.ng2-tech { display:flex; align-items:center; flex-wrap:wrap; gap:14px; justify-content:center; margin-top:10px; }
.ng2-tech-t { color:rgba(255,255,255,.7); font-size:14px; }
.ng2-tech ul { list-style:none; padding:0; margin:0; display:flex; flex-wrap:wrap; gap:10px; justify-content:center; }
.ng2-tech li { color:#fff; font-size:14px; font-weight:500; padding:8px 16px; border-radius:30px; background:rgba(255,255,255,.08); border:1px solid rgba(255,255,255,.15); }
.ng2-map { position:relative; border-radius:24px; padding:30px; background:linear-gradient(135deg,#0b0a2c,#113072); overflow:hidden; }
.ng2-map > img, .ng2-map-area > img { width:100%; opacity:.18; display:block; }
.ng2-route { position:absolute; inset:30px; width:calc(100% - 60px); height:calc(100% - 60px); }
.ng2-route path { fill:none; stroke:#22d3ff; stroke-width:.35; stroke-dasharray:1.2 1; vector-effect:non-scaling-stroke; stroke-width:2.5; }
.ng2-pin { position:absolute; transform:translate(-50%,-50%); z-index:2; }
.ng2-pin i { display:block; width:16px; height:16px; border-radius:50%; background:#22d3ff; box-shadow:0 0 0 8px rgba(34,211,255,.25), 0 0 25px #22d3ff; }
.ng2-pin-pe i { background:#25d366; box-shadow:0 0 0 8px rgba(37,211,102,.25), 0 0 25px #25d366; }
.ng2-pin b { position:absolute; left:26px; top:50%; transform:translateY(-50%); white-space:nowrap; background:#fff; color:#0c1066; font-size:13px; font-weight:700; padding:6px 12px; border-radius:20px; box-shadow:0 8px 20px rgba(0,0,0,.3); }
.ng2-map-card { position:absolute; right:40px; bottom:40px; display:flex; gap:30px; background:rgba(255,255,255,.08); border:1px solid rgba(255,255,255,.15); backdrop-filter:blur(6px); border-radius:16px; padding:20px 26px; }
.ng2-map-card b { display:block; color:#fff; font-size:20px; font-weight:700; }
.ng2-map-card span { color:rgba(255,255,255,.7); font-size:13px; }
.ng2-partners { padding:70px 0; }
.ng2-partners .ng2-head { margin-bottom:30px; }
.ng2-logos { list-style:none; padding:0; margin:0; display:flex; flex-wrap:wrap; justify-content:center; gap:18px; }
.ng2-logos li { color:#3b4170; font-size:20px; font-weight:700; letter-spacing:.5px; padding:18px 30px; background:#fff; border:1px solid #e6e9f7; border-radius:14px; min-width:150px; text-align:center; }
#planes .xs-heading { margin-bottom:40px; }
@media (max-width: 991px) {
  .ng2-hero { padding:170px 0 100px; } .ng2-title { font-size:40px; } .ng2-hero-img { margin-top:40px; }
  .ng2-head h2 { font-size:30px; } .ng2-map-card { position:static; margin-top:20px; flex-wrap:wrap; gap:16px; }
  .ng2-search input[type=submit] { padding:0 14px; }
}
.ng2-hero .domain-search-form.ng2-search { width:100%; max-width:600px; margin:0; height:auto; }
.ng2-hero .domain-search-form.ng2-search input[type=search] { width:auto; flex:1; height:48px; padding:0 8px 0 0; border:0; border-radius:0; box-shadow:none; background:transparent; }
.ng2-hero .domain-search-form.ng2-search input[type=submit] { border-radius:10px; padding:0 26px; height:48px; background:#1062fe; }
.ng2-actions { display:flex; flex-wrap:wrap; gap:14px; }
.ng2-btn-ghost { background:transparent; border:1px solid rgba(255,255,255,.6); }
.ng2-btn-ghost:hover { background:rgba(255,255,255,.1); }
.ng2-hero { padding-bottom:170px; }
.ng2-hero::after { display:none; }
.ng2-hero + .xs-domain-search { margin-top:-100px; position:relative; z-index:3; }
.ng2-col { margin-bottom:30px; }
.ng2-col .ng2-svc { margin-bottom:0; }
.ng2-svc ul { margin-bottom:24px; }
.ng2-tag-soon { background:#ff7a45; }
.ng2-intro { text-align:center; color:#5b6185; font-size:18px; line-height:1.75; max-width:860px; margin:0 auto 45px; }
.ng2-mb { margin-bottom:10px; }
.ng2-panel-light { background:#fff; border:1px solid #e6e9f7; box-shadow:0 10px 30px rgba(12,16,102,.06); }
.ng2-panel-light h3 { color:#0c1066; } .ng2-panel-light h3 .fa { color:#1062fe; }
.ng2-panel-light .ng2-spec li { border-bottom-color:#eef0f8; }
.ng2-panel-light .ng2-spec span { color:#6b7196; } .ng2-panel-light .ng2-spec b { color:#0c1066; }
.ng2-offer p { margin-bottom:20px; }
.ng2-pin-vps i { width:12px; height:12px; background:#8b7bff; box-shadow:0 0 0 6px rgba(139,123,255,.25), 0 0 18px #8b7bff; }
.ng2-pin b.ng2-lb-l { left:auto; right:26px; }
.ng2-pin b.ng2-lb-t { left:50%; top:auto; bottom:24px; transform:translateX(-50%); }
.ng2-legend { position:absolute; left:40px; bottom:40px; display:flex; gap:22px; background:rgba(255,255,255,.08); border:1px solid rgba(255,255,255,.15); border-radius:12px; padding:12px 18px; }
.ng2-legend span { color:#fff; font-size:13px; display:inline-flex; align-items:center; gap:8px; }
.ng2-legend i { width:10px; height:10px; border-radius:50%; display:inline-block; }
.ng2-dot-dc { background:#22d3ff; } .ng2-dot-vps { background:#8b7bff; } .ng2-dot-pe { background:#25d366; }
@media (max-width: 991px) { .ng2-legend { position:static; margin-top:16px; flex-wrap:wrap; } }
.ng2-map-card { bottom:auto; top:40px; }

/* ===== Mapa animado: pines que laten y señales que viajan desde Perú ===== */
.ng2-route { inset:0; width:100%; height:100%; z-index:1; pointer-events:none; }
.ng2-route path { fill:none; vector-effect:non-scaling-stroke; }
.ng2-route .ng2-r-base { stroke:rgba(139,123,255,.35); stroke-width:1.5; stroke-dasharray:1.2 1.6; }
.ng2-route .ng2-r-base.ng2-r-dc { stroke:rgba(34,211,255,.55); stroke-width:2; }
.ng2-route .ng2-r-flow { stroke:#b9b0ff; stroke-width:3; stroke-linecap:round; stroke-dasharray:7 93; stroke-dashoffset:100;
  filter:drop-shadow(0 0 4px #8b7bff); animation:ng2-flow 3.2s linear infinite; }
.ng2-route .ng2-r-flow.ng2-r-dc { stroke:#7ee8ff; filter:drop-shadow(0 0 5px #22d3ff); animation-duration:2.4s; }
@keyframes ng2-flow { from { stroke-dashoffset:100; } to { stroke-dashoffset:0; } }
.ng2-pin i { position:relative; }
.ng2-pin i::after { content:""; position:absolute; inset:0; border-radius:50%; background:inherit; animation:ng2-pulse 2.2s ease-out infinite; }
.ng2-pin:nth-of-type(2n) i::after { animation-delay:.7s; }
.ng2-pin:nth-of-type(3n) i::after { animation-delay:1.4s; }
@keyframes ng2-pulse { 0% { transform:scale(1); opacity:.8; } 100% { transform:scale(3.6); opacity:0; } }
.ng2-pin i { animation:ng2-glow 2.2s ease-in-out infinite; }
@keyframes ng2-glow { 50% { filter:brightness(1.35); } }

/* ===== Carrusel de tecnologías con colores de marca ===== */
.ng2-marquee { overflow:hidden; -webkit-mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent); mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent); }
.ng2-logos.ng2-track { display:flex; flex-wrap:nowrap; justify-content:flex-start; width:max-content; gap:18px; animation:ng2-marq 32s linear infinite; }
.ng2-marquee:hover .ng2-track { animation-play-state:paused; }
.ng2-logos.ng2-track li { color:var(--c); display:inline-flex; align-items:center; gap:10px; min-width:0; flex:0 0 auto; border-color:color-mix(in srgb, var(--c) 25%, #e6e9f7); }
.ng2-logos.ng2-track li i { width:12px; height:12px; border-radius:4px; background:var(--c); display:inline-block; }
@keyframes ng2-marq { from { transform:translateX(0); } to { transform:translateX(calc(-50% - 9px)); } }

@media (prefers-reduced-motion: reduce) {
  .ng2-route .ng2-r-flow, .ng2-pin i, .ng2-pin i::after, .ng2-logos.ng2-track { animation:none; }
}

/* Carrusel estilo tarjeta: fondo del color de la marca. Si existe el logo oficial en
   assets/images/tecnologias/<nombre>.svg se muestra el logo en lugar del nombre. */
.ng2-logos.ng2-cards li { background:var(--c); border:0; color:#fff; min-width:190px; height:96px; padding:0 28px; justify-content:center;
  border-radius:16px; box-shadow:0 10px 24px color-mix(in srgb, var(--c) 30%, transparent); font-size:21px; font-weight:800; letter-spacing:.3px; }
.ng2-logos.ng2-cards li i { display:none; }
.ng2-logos.ng2-cards li img { max-height:56px; max-width:150px; display:none; }
.ng2-logos.ng2-cards li.ng2-has-logo img { display:block; }
.ng2-logos.ng2-cards li.ng2-has-logo span { display:none; }
.ng2-logos.ng2-cards li img { display:block; }
.ng2-logos.ng2-cards li.ng2-icon { gap:12px; }
.ng2-logos.ng2-cards li.ng2-icon img { height:46px; width:auto; max-width:none; }
.ng2-logos.ng2-cards li.ng2-has-logo img { max-width:160px; width:auto; max-height:none; }
.ng2-logos.ng2-cards li.ng2-light { background:#fff; box-shadow:0 10px 24px rgba(20,30,90,.10); border:2px solid color-mix(in srgb, var(--c) 35%, #fff); }

/* ===== Servicios: fila de accesos rápidos + 3 tarjetas principales ===== */
.ng2-quick-sec { padding-bottom:60px; }
.ng2-quick { display:flex; flex-wrap:wrap; justify-content:center; gap:22px 38px; margin-top:10px; }
.ng2-quick a { display:flex; flex-direction:column; align-items:center; gap:10px; color:#3b4170; font-size:14px; font-weight:600; text-decoration:none; width:96px; text-align:center; }
.ng2-quick a span { width:58px; height:58px; border-radius:16px; background:#fff; border:1px solid #e3e7f6; box-shadow:0 8px 20px rgba(20,30,90,.06);
  display:flex; align-items:center; justify-content:center; font-size:22px; color:#1468ff; transition:transform .2s, box-shadow .2s, background .2s, color .2s; }
.ng2-quick a:hover span { transform:translateY(-4px); background:#1468ff; color:#fff; box-shadow:0 12px 26px rgba(20,104,255,.3); }
.ng2-main { position:relative; height:100%; background:#fff; border:1px solid #e6e9f7; border-radius:22px; padding:34px 30px; box-shadow:0 14px 34px rgba(20,30,90,.06); display:flex; flex-direction:column; }
.ng2-main h3 { font-size:22px; font-weight:800; color:#0c1066; margin:18px 0 8px; }
.ng2-main p { color:#5b6285; font-size:15px; margin:0 0 18px; }
.ng2-main .ng2-price { font-size:30px; font-weight:800; color:#0c1066; margin:0 0 18px; }
.ng2-main .ng2-price small { font-size:13px; font-weight:500; color:#7a81a6; }
.ng2-main ul { list-style:none; padding:0; margin:0 0 26px; flex:1; }
.ng2-main li { position:relative; padding-left:26px; margin-bottom:12px; color:#3b4170; font-size:15px; }
.ng2-main li::before { content:"\f00c"; font-family:FontAwesome; position:absolute; left:0; top:0; color:#22c55e; }
.ng2-main .ng2-btn { width:100%; justify-content:center; text-align:center; }
.ng2-main-hl { background:linear-gradient(160deg,#0b0a2c,#113072); border-color:transparent; transform:translateY(-12px); box-shadow:0 24px 50px rgba(12,16,102,.35); }
.ng2-main-hl h3, .ng2-main-hl .ng2-price { color:#fff; }
.ng2-main-hl p, .ng2-main-hl li, .ng2-main-hl .ng2-price small { color:rgba(255,255,255,.78); }
.ng2-main-hl li::before { color:#22d3ff; }
.ng2-main .ng2-tag { position:absolute; top:-13px; left:50%; transform:translateX(-50%); }
@media (max-width:991px) { .ng2-main-hl { transform:none; } }
.ng2-main .ng2-tag { width:auto; right:auto; white-space:nowrap; text-align:center; padding:6px 18px; }

/* Iconos 3D y coloridos en la fila de accesos */
.ng2-quick { gap:26px 40px; perspective:600px; }
.ng2-quick a { width:104px; }
.ng2-quick a span { position:relative; width:70px; height:70px; border-radius:20px; border:0; font-size:28px; color:#fff;
  background:linear-gradient(145deg,var(--c1),var(--c2));
  box-shadow: inset 0 3px 0 rgba(255,255,255,.45), inset 0 -6px 0 rgba(0,0,0,.18), 0 7px 0 color-mix(in srgb,var(--c2) 70%,#000), 0 16px 26px color-mix(in srgb,var(--c2) 45%,transparent);
  transform:rotateX(14deg); transition:transform .25s, box-shadow .25s; }
.ng2-quick a span::before { content:""; position:absolute; left:8px; right:8px; top:6px; height:42%; border-radius:14px 14px 30px 30px; background:linear-gradient(rgba(255,255,255,.45),rgba(255,255,255,0)); }
.ng2-quick a span i { position:relative; text-shadow:0 3px 0 rgba(0,0,0,.2); }
.ng2-quick a:hover span { background:linear-gradient(145deg,var(--c1),var(--c2)); color:#fff; transform:rotateX(0) translateY(-6px);
  box-shadow: inset 0 3px 0 rgba(255,255,255,.45), inset 0 -6px 0 rgba(0,0,0,.18), 0 11px 0 color-mix(in srgb,var(--c2) 70%,#000), 0 24px 34px color-mix(in srgb,var(--c2) 50%,transparent); }
.ng2-quick { gap:26px 28px; flex-wrap:wrap; } .ng2-quick a { width:100px; }

/* Opción elegida: cuadros blancos con icono de color (estilo limpio) */
.ng2-quick { perspective:none; }
.ng2-quick a span { background:#fff; color:var(--c2); transform:none; border:1px solid #eef0f8; box-shadow:0 10px 24px rgba(20,30,90,.10); }
.ng2-quick a span::before { display:none; }
.ng2-quick a span i { text-shadow:none; }
.ng2-quick a:hover span { background:linear-gradient(145deg,var(--c1),var(--c2)); color:#fff; transform:translateY(-5px); box-shadow:0 14px 28px color-mix(in srgb,var(--c2) 40%,transparent); }
.ng2-quick a span { border:1px solid #e3e7f3; box-shadow:0 2px 4px rgba(20,30,90,.08), 0 10px 22px rgba(20,30,90,.16), 0 0 0 4px rgba(255,255,255,.6); }
.ng2-quick a span { border:0; box-shadow:0 1px 3px rgba(0,0,0,.10), 0 4px 14px rgba(0,0,0,.13); }

/* Carrusel más ancho y sin neblina a los costados */
.ng2-partners .container { max-width:1320px; }
.ng2-marquee { -webkit-mask-image:none; mask-image:none; padding:10px 0 18px; }
.ng2-logos.ng2-cards li { min-width:172px; height:86px; padding:0 22px; }
.ng2-logos.ng2-track { gap:16px; animation-duration:38s; }
@keyframes ng2-marq { from { transform:translateX(0); } to { transform:translateX(calc(-50% - 8px)); } }
.ng2-marquee { width:100vw; margin-left:calc(50% - 50vw); padding:12px 0 24px; } .ng2-logos.ng2-cards li { width:200px; min-width:200px; padding:0 18px; }
body { overflow-x:hidden; }

/* Carrusel en gris, solo letras de cada marca (estilo "socios de confianza") */
.ng2-logos.ng2-cards.ng2-mono li, .ng2-logos.ng2-cards.ng2-mono li.ng2-light { background:transparent; border:0; box-shadow:none; width:auto; min-width:0; height:70px; padding:0 34px; }
.ng2-logos.ng2-cards.ng2-mono li img { filter:brightness(0); opacity:.45; transition:opacity .25s; }
.ng2-logos.ng2-cards.ng2-mono li span { color:#000; opacity:.45; font-size:24px; font-weight:800; transition:opacity .25s; }
.ng2-logos.ng2-cards.ng2-mono li:hover img, .ng2-logos.ng2-cards.ng2-mono li:hover span { opacity:.8; }
.ng2-logos.ng2-track.ng2-mono { gap:28px; }
.ng2-marquee { width:auto; margin-left:0; max-width:1320px; margin:0 auto; overflow:hidden; } .ng2-partners .container { max-width:1320px; }
.ng2-net .container { max-width:1320px; }
@media (min-width:1200px) { .ng2-net .ng2-map > img, .ng2-net .ng2-map-area > img, .ng2-map-area > img { height:619px; width:100%; object-fit:fill; } }
@media (min-width:1200px) { .ng2-net .ng2-map > img, .ng2-net .ng2-map-area > img, .ng2-map-area > img { height:560px; } }

/* Opiniones de clientes (sin reseñas todavía: invitación a dejar la primera) */
.ng2-reviews { padding-top:70px; }
.ng2-rev-empty { max-width:620px; margin:0 auto; text-align:center; background:#fff; border:1px solid #e6e9f7; border-radius:20px; padding:34px 30px; box-shadow:0 14px 34px rgba(20,30,90,.06); }
.ng2-rev-stars { color:#f5b301; font-size:20px; letter-spacing:4px; margin-bottom:12px; }
.ng2-rev-empty h3 { font-size:22px; font-weight:800; color:#0c1066; margin:0 0 8px; }
.ng2-rev-empty p { color:#5b6285; font-size:15px; margin:0 0 20px; }
.ng2-reviews { padding-bottom:40px; }
/* Fila de servicios: iconos un poco más chicos y repartidos de forma pareja a lo ancho */
.ng2-quick-sec .container { max-width:1240px; }
.ng2-quick { display:grid; grid-template-columns:repeat(8,1fr); gap:20px 10px; justify-items:center; }
.ng2-quick a { width:auto; font-size:13.5px; }
.ng2-quick a span { width:60px; height:60px; border-radius:17px; font-size:24px; }
@media (max-width:991px) { .ng2-quick { grid-template-columns:repeat(4,1fr); } }
/* Título grande sobre el mapa */
.ng2-net-head h2 { font-size:56px; font-weight:900; letter-spacing:1px; line-height:1.1; }
.ng2-net-head h2 span { background:linear-gradient(90deg,#22d3ff,#1468ff 55%,#7c5cff); -webkit-background-clip:text; background-clip:text; color:transparent; }
.ng2-net-head p { font-size:18px; max-width:760px; margin:14px auto 0; }
@media (max-width:767px) { .ng2-net-head h2 { font-size:34px; } }
.ng2-quick a { font-size:14px; } .ng2-quick { gap:20px 6px; }
.ng2-quick a span { width:65px; height:65px; border-radius:18px; font-size:26px; }
.ng2-quick-sec .container { max-width:1420px; }

/* Cabecera y portada más anchas, de lado a lado (como ColdHosting) */
@media (min-width:1400px) {
  .xs-top-bar .container, .xs-header .container, .ng2-hero .container, .xs-domain-search .container { max-width:1400px; }
}
.ng2-partners .ng2-head p, .ng2-reviews .ng2-head p { font-size:18px; }
.ng2-partners .ng2-head h2 { font-weight:500; }
.ng2-reviews .ng2-head h2 { font-size:44px; }
/* Carrusel en escala de grises con variedad de tonos (gris claro y gris oscuro, como ColdHosting) */
.ng2-logos.ng2-cards.ng2-mono li img { filter:grayscale(1) contrast(1.05); opacity:.72; }
.ng2-logos.ng2-cards.ng2-mono li.ng2-inv img { filter:invert(1) grayscale(1) contrast(1.1); opacity:.72; }
.ng2-logos.ng2-cards.ng2-mono li:hover img { opacity:1; }
/* Logos del carrusel 1.5 veces más grandes */
.ng2-logos.ng2-cards.ng2-mono li, .ng2-logos.ng2-cards.ng2-mono li.ng2-light { height:105px; padding:0 58px; }
.ng2-logos.ng2-cards.ng2-mono li img { transform:scale(1.5); }
.ng2-logos.ng2-cards.ng2-mono li span { font-size:36px; }
/* Ajuste: logos 1.25 veces (entre el tamaño original y el 1.5) */
.ng2-logos.ng2-cards.ng2-mono li, .ng2-logos.ng2-cards.ng2-mono li.ng2-light { height:90px; padding:0 46px; }
.ng2-logos.ng2-cards.ng2-mono li img { transform:scale(1.25); }
.ng2-logos.ng2-cards.ng2-mono li span { font-size:30px; }

/* ===== Responsive: celular y tablet ===== */
.ng2-map-area { display:contents; }
@media (max-width:991px) {
  .ng2-map { padding:0 0 18px; }
  .ng2-map-area { display:block; position:relative; padding:18px 14px; }
  .ng2-map-area > img { height:auto !important; }
  .ng2-net .ng2-legend, .ng2-net .ng2-map-card { position:static; margin:6px 18px 0; justify-content:center; }
  .ng2-net .ng2-map-card { margin-top:12px; justify-content:space-around; text-align:center; }
}
@media (max-width:767px) {
  .ng2-map { border-radius:16px; }
  .ng2-map-area { padding:12px 8px; }
  .ng2-pin i, .ng2-pin-vps i { width:8px; height:8px; box-shadow:0 0 0 3px rgba(139,123,255,.3), 0 0 8px #8b7bff; }
  .ng2-pin-dc i { box-shadow:0 0 0 3px rgba(34,211,255,.3), 0 0 8px #22d3ff; }
  .ng2-pin-pe i { box-shadow:0 0 0 3px rgba(37,211,102,.3), 0 0 8px #25d366; }
  .ng2-pin b { font-size:9px; padding:2px 6px; left:11px; box-shadow:0 3px 8px rgba(0,0,0,.3); }
  .ng2-pin b.ng2-lb-l { right:11px; left:auto; }
  .ng2-net .ng2-legend { gap:10px 14px; padding:10px 12px; margin:6px 12px 0; }
  .ng2-net .ng2-legend span { font-size:12px; }
  .ng2-net .ng2-map-card { gap:10px; padding:14px 10px; margin:12px 12px 0; flex-wrap:nowrap; }
  .ng2-net .ng2-map-card b { font-size:15px; }
  .ng2-net .ng2-map-card span { font-size:11px; }
}
@media (max-width:575px) {
  .ng2-hero .ng2-title { font-size:34px; line-height:1.15; }
  .ng2-actions .xs-btn, .ng2-actions a { flex:1 1 0; text-align:center; padding-left:10px; padding-right:10px; }
}
@media (max-width:380px) { .ng2-hero .ng2-title { font-size:30px; } }
