/* ════════════════════════════════════════════════════════════
   Gestiova · Premium Visual Layer (high-end-visual-design)
   Overlay que eleva las páginas al lenguaje "agencia $150k":
   fuentes premium, nav isla flotante, botones magnéticos,
   tarjetas double-bezel, sombras difusas y motion cubic-bezier.
   Cargar SIEMPRE después del <style> inline de la página
   (insertado justo antes de </head>) para ganar la cascada.
   ════════════════════════════════════════════════════════════ */

:root{
  --ease:cubic-bezier(.32,.72,0,1);
  --ease-out:cubic-bezier(.16,1,.3,1);
  --shadow-soft:0 18px 50px -22px rgba(30,95,163,.30), 0 4px 14px -8px rgba(12,45,82,.10);
  --shadow-lift:0 34px 70px -24px rgba(30,95,163,.40), 0 10px 26px -12px rgba(12,45,82,.16);
  --shadow-blue:0 22px 50px -16px rgba(30,95,163,.55);
  --hairline:rgba(12,45,82,.08);
  --hi:inset 0 1px 1px rgba(255,255,255,.65);
  --hi-d:inset 0 1px 1px rgba(255,255,255,.16);
}

/* ── tipografía premium (Inter prohibida) ── */
body{ font-family:'Plus Jakarta Sans',sans-serif; -webkit-font-smoothing:antialiased; text-rendering:optimizeLegibility; }
.font-b{ font-family:'Plus Jakarta Sans',sans-serif !important; }
.font-h, h1, h2, h3{ letter-spacing:-.022em; }
::-webkit-scrollbar{ width:5px; }
::-webkit-scrollbar-thumb{ background:#2d74c0; border-radius:8px; }
::selection{ background:#d6e5f7; color:#0c2d52; }

/* ── reveal: fade-up + blur ── */
.rv{ opacity:0; transform:translateY(34px); filter:blur(10px);
  transition:opacity .9s var(--ease-out), transform .9s var(--ease-out), filter .9s var(--ease-out); }
.rv.in{ opacity:1; transform:none; filter:blur(0); }
@media (prefers-reduced-motion:reduce){ .rv{ transition:none; filter:none; transform:none; opacity:1; } }

/* ── NAV: isla flotante de cristal (sobre markup original) ── */
#nav{ background:transparent !important; border:none !important; box-shadow:none !important;
  -webkit-backdrop-filter:none !important; backdrop-filter:none !important;
  padding:12px 12px 0 !important; transition:padding .5s var(--ease); }
@media (min-width:640px){ #nav{ padding:16px 16px 0 !important; } }

#nav > div:first-of-type{
  display:flex; align-items:center; justify-content:space-between;
  max-width:72rem; margin-left:auto; margin-right:auto;
  height:60px !important; padding-left:1.25rem; padding-right:.75rem;
  border-radius:999px;
  background:rgba(255,255,255,.72);
  -webkit-backdrop-filter:blur(20px) saturate(160%); backdrop-filter:blur(20px) saturate(160%);
  border:1px solid rgba(255,255,255,.7);
  box-shadow:var(--shadow-soft), var(--hi);
  transition:box-shadow .5s var(--ease), background .5s var(--ease); }
#nav.scrolled > div:first-of-type{ background:rgba(255,255,255,.92); box-shadow:var(--shadow-lift), var(--hi); }

/* menú móvil como tarjeta flotante */
#mmenu{ margin:.5rem .75rem 0 !important; border-radius:1.75rem !important;
  border:1px solid rgba(255,255,255,.7) !important; border-top:1px solid rgba(255,255,255,.7) !important;
  background:rgba(255,255,255,.92) !important;
  -webkit-backdrop-filter:blur(16px); backdrop-filter:blur(16px);
  box-shadow:var(--shadow-soft); transition:max-height .55s var(--ease) !important; }

/* ── botones: física de press magnético ── */
.btn-blue{ position:relative; background:linear-gradient(180deg,#2d74c0,#1e5fa3); color:#fff;
  font-family:'Bricolage Grotesque',sans-serif; font-weight:700; border-radius:999px;
  display:inline-flex; align-items:center; gap:10px; box-shadow:var(--shadow-blue), var(--hi-d);
  transition:transform .5s var(--ease), box-shadow .5s var(--ease), filter .5s var(--ease); }
.btn-blue:hover{ transform:translateY(-2px); filter:saturate(1.1);
  box-shadow:0 30px 60px -16px rgba(30,95,163,.65), var(--hi-d); }
.btn-blue:active{ transform:scale(.975) translateY(0); }
.btn-line{ position:relative; border:1.5px solid rgba(30,95,163,.35); color:#1e5fa3;
  background:rgba(255,255,255,.4); font-family:'Bricolage Grotesque',sans-serif; font-weight:700;
  border-radius:999px; display:inline-flex; align-items:center; gap:10px;
  transition:transform .5s var(--ease), background .5s var(--ease), border-color .5s var(--ease); }
.btn-line:hover{ background:#eef4fc; border-color:#1e5fa3; transform:translateY(-2px); }
.btn-line:active{ transform:scale(.975) translateY(0); }

/* button-in-button trailing icon */
.btn-ico{ width:30px; height:30px; border-radius:999px; background:rgba(255,255,255,.18);
  display:inline-flex; align-items:center; justify-content:center; margin:-2px -8px -2px 2px;
  transition:transform .5s var(--ease), background .5s var(--ease); }
.btn-line .btn-ico{ background:rgba(30,95,163,.10); }
.btn-blue:hover .btn-ico, .btn-line:hover .btn-ico{ transform:translate(3px,-2px) scale(1.08); }

/* ── tag pill ── */
.tag{ display:inline-flex; align-items:center; gap:7px; font-family:'Bricolage Grotesque',sans-serif;
  font-size:.66rem; font-weight:700; letter-spacing:.2em; text-transform:uppercase;
  padding:6px 15px; border-radius:999px; background:rgba(255,255,255,.55); color:#1e5fa3;
  border:1px solid rgba(30,95,163,.14); box-shadow:var(--hi); }
.tag::before{ content:''; width:6px; height:6px; border-radius:50%; background:#2d74c0;
  box-shadow:0 0 0 4px rgba(45,116,192,.16); }

/* ── hero gradient + mesh orb ── */
.hero-bg{ position:relative;
  background:radial-gradient(ellipse 90% 60% at 80% 25%, #d6e5f7 0%, transparent 62%),
             radial-gradient(ellipse 55% 55% at 8% 85%, #eef4fc 0%, transparent 58%),
             linear-gradient(180deg,#f7faff,#fff); }
.hero-bg::after{ content:''; position:absolute; inset:0; pointer-events:none;
  background:radial-gradient(circle at 78% 18%, rgba(45,116,192,.16), transparent 42%); filter:blur(40px); }

/* ── stat card ── */
.stat-card{ background:#fff; border:1px solid var(--hairline); border-radius:22px; text-align:center;
  padding:28px 24px; box-shadow:var(--shadow-soft);
  transition:box-shadow .6s var(--ease), transform .6s var(--ease); }
.stat-card:hover{ box-shadow:var(--shadow-lift); transform:translateY(-5px); }

/* ── tarjeta double-bezel (bandeja maquinada vía ::before) ── */
.bcard{ background:#fff; border:1px solid var(--hairline); border-radius:22px; padding:30px;
  position:relative; box-shadow:var(--shadow-soft), var(--hi);
  transition:box-shadow .6s var(--ease), transform .6s var(--ease), border-color .6s var(--ease); }
.bcard::before{ content:''; position:absolute; inset:-7px; border-radius:29px;
  background:rgba(30,95,163,.045); border:1px solid var(--hairline); box-shadow:var(--hi);
  z-index:-1; transition:background .6s var(--ease); }
.bcard:hover{ transform:translateY(-7px); box-shadow:var(--shadow-lift); border-color:rgba(30,95,163,.16); }
.bcard:hover::before{ background:rgba(30,95,163,.08); }
.bcard.blue{ background:linear-gradient(135deg,#1e5fa3 0%,#2d74c0 100%); border-color:transparent;
  color:#fff; box-shadow:var(--shadow-blue), var(--hi-d); }
.bcard.blue::before{ background:rgba(30,95,163,.12); }
.bcard.blue:hover{ box-shadow:var(--shadow-blue); }
.bcard-num{ font-family:'Bricolage Grotesque',sans-serif; font-size:3.8rem; font-weight:800; line-height:1;
  color:rgba(30,95,163,.07); position:absolute; bottom:18px; right:24px; pointer-events:none; z-index:1; }
.bcard.blue .bcard-num{ color:rgba(255,255,255,.13); }
.bcard-icon{ width:48px; height:48px; border-radius:14px; background:#eef4fc; display:flex;
  align-items:center; justify-content:center; margin-bottom:18px; box-shadow:var(--hi);
  transition:background .6s var(--ease), transform .6s var(--ease); }
.bcard:hover .bcard-icon{ background:#d6e5f7; transform:scale(1.05); }
.bcard.blue .bcard-icon{ background:rgba(255,255,255,.15); }
.bcard-img{ transition:transform .7s var(--ease-out); }
.bcard:hover .bcard-img{ transform:scale(1.08); }

/* ── filas de contacto ── */
.crow{ display:flex; align-items:center; gap:16px; padding:20px; border-radius:18px;
  border:1px solid var(--hairline); background:#fff; box-shadow:var(--shadow-soft);
  transition:box-shadow .6s var(--ease), transform .6s var(--ease); }
.crow:hover{ box-shadow:var(--shadow-lift); transform:translateY(-3px); }
.crow-icon{ width:46px; height:46px; flex-shrink:0; border-radius:14px; background:#eef4fc;
  display:flex; align-items:center; justify-content:center; transition:background .5s var(--ease); }
.crow:hover .crow-icon{ background:#1e5fa3; }
.crow-icon svg{ color:#1e5fa3; transition:color .5s var(--ease); }
.crow:hover .crow-icon svg{ color:#fff; }

/* ── inputs ── */
.fi{ width:100%; border:1.5px solid #e6edf6; border-radius:14px; padding:14px 16px;
  font-family:'Plus Jakarta Sans',sans-serif; color:#1e293b; background:#fbfdff; outline:none;
  box-shadow:var(--hi); transition:border-color .4s var(--ease), box-shadow .4s var(--ease), background .4s var(--ease); }
.fi:focus{ border-color:#2d74c0; background:#fff; box-shadow:0 0 0 4px rgba(45,116,192,.12); }
.fi::placeholder{ color:#94a3b8; }

/* ── marquee clientes ── */
.mtrack{ animation-duration:28s; }
.cli{ filter:grayscale(1) opacity(.4); transition:filter .5s var(--ease); }
.cli:hover{ filter:none; }

/* ── map / tarjetas glass hero ── */
.map-wrap{ border-radius:24px; overflow:hidden; border:1px solid var(--hairline); }
.hcard{ background:rgba(255,255,255,.7); border:1px solid rgba(255,255,255,.8); border-radius:26px;
  box-shadow:var(--shadow-lift), var(--hi); -webkit-backdrop-filter:blur(14px); backdrop-filter:blur(14px);
  padding:24px; }
.hcard2{ background:linear-gradient(135deg,#1e5fa3,#2d74c0); border-radius:18px; padding:16px 20px;
  box-shadow:var(--shadow-blue), var(--hi-d); color:#fff; }

/* ── scroll progress ── */
#progress{ background:linear-gradient(90deg,#1e5fa3,#2d74c0,#7caee4) !important; }

/* ════════ CANONICAL NAV (inyectado por premium.js en páginas interiores) ════════ */
.pnav-logo{ display:inline-flex; align-items:center; }
.pnav-desktop{ display:none; align-items:center; gap:22px; }
@media (min-width:1024px){ .pnav-desktop{ display:flex; } .pham{ display:none !important; } }

.pnav-link{ font-family:'Bricolage Grotesque',sans-serif; font-weight:600; font-size:.875rem; color:#475569; text-decoration:none; transition:color .25s var(--ease); white-space:nowrap; }
.pnav-link:hover{ color:#1e5fa3; }

.pnav-cta{ padding:9px 9px 9px 18px; font-size:.875rem; }
.pnav-cta .btn-ico svg{ width:14px; height:14px; }

/* iconos rápidos (WhatsApp · email · monitor) — visibles desde xl */
.pnav-icons{ display:none; align-items:center; gap:8px; }
@media (min-width:1280px){ .pnav-icons{ display:flex; } }
.pnav-ico{ width:36px; height:36px; border-radius:10px; border:1px solid rgba(12,45,82,.12); display:flex; align-items:center; justify-content:center; color:#64748b; transition:color .25s var(--ease), border-color .25s var(--ease), background .25s var(--ease); }
.pnav-ico:hover{ color:#1e5fa3; border-color:rgba(30,95,163,.4); background:#eef4fc; }

/* dropdown Servicios */
.svc-dd{ position:relative; }
.svc-trigger{ background:none; border:none; cursor:pointer; font-family:'Bricolage Grotesque',sans-serif; font-weight:600; font-size:.875rem; color:#475569; display:inline-flex; align-items:center; gap:6px; padding:0; transition:color .25s var(--ease); }
.svc-dd:hover .svc-trigger, .svc-dd:focus-within .svc-trigger{ color:#1e5fa3; }
.svc-trigger svg{ transition:transform .3s var(--ease); }
.svc-dd:hover .svc-trigger svg, .svc-dd:focus-within .svc-trigger svg{ transform:rotate(180deg); }
.svc-panel{ position:absolute; left:50%; top:100%; transform:translateX(-50%) translateY(8px); padding-top:14px; opacity:0; visibility:hidden; transition:opacity .3s var(--ease), transform .3s var(--ease); z-index:60; }
.svc-dd:hover .svc-panel, .svc-dd:focus-within .svc-panel{ opacity:1; visibility:visible; transform:translateX(-50%) translateY(0); }
.svc-card{ width:20rem; background:rgba(255,255,255,.97); -webkit-backdrop-filter:blur(20px); backdrop-filter:blur(20px); border:1px solid rgba(255,255,255,.7); border-radius:18px; box-shadow:var(--shadow-lift), var(--hi); padding:8px; }
.svc-item{ display:flex; align-items:flex-start; gap:12px; padding:10px; border-radius:12px; text-decoration:none; transition:background .25s var(--ease); }
.svc-item:hover{ background:#eef4fc; }
.svc-ico{ width:32px; height:32px; border-radius:9px; background:#eef4fc; display:flex; align-items:center; justify-content:center; flex-shrink:0; margin-top:2px; }
.svc-ico svg{ color:#1e5fa3; }
.svc-txt b{ display:block; font-family:'Bricolage Grotesque',sans-serif; font-weight:700; color:#1e293b; font-size:.875rem; line-height:1.2; }
.svc-txt span{ display:block; font-size:.75rem; color:#94a3b8; margin-top:1px; }
.svc-all{ display:flex; align-items:center; justify-content:center; gap:6px; padding:11px; margin-top:4px; border-top:1px solid #eef2f7; color:#1e5fa3; font-family:'Bricolage Grotesque',sans-serif; font-weight:700; font-size:.8rem; text-decoration:none; border-radius:12px; }
.svc-all:hover{ background:#eef4fc; }

/* hamburger */
.pham{ display:inline-flex; flex-direction:column; gap:5px; align-items:flex-end; justify-content:center; width:30px; height:30px; background:none; border:none; cursor:pointer; padding:0; }
.pham span{ display:block; height:2px; width:24px; background:#334155; border-radius:2px; transition:transform .35s var(--ease), opacity .25s var(--ease), width .35s var(--ease); transform-origin:center; }
.pham span:nth-child(3){ width:16px; }
#nav.mopen .pham span:nth-child(1){ transform:translateY(7px) rotate(45deg); }
#nav.mopen .pham span:nth-child(2){ opacity:0; }
#nav.mopen .pham span:nth-child(3){ transform:translateY(-7px) rotate(-45deg); width:24px; }

/* mobile menu (canonical) */
#mmenu{ overflow:hidden; max-height:0; }
#nav.mopen #mmenu{ max-height:85vh; overflow-y:auto; }
@media (min-width:1024px){ #mmenu{ display:none !important; } }
.pmm-inner{ padding:22px 24px; display:flex; flex-direction:column; gap:16px; }
.pmm-label{ font-family:'Bricolage Grotesque',sans-serif; font-size:10px; font-weight:700; letter-spacing:.2em; text-transform:uppercase; color:#94a3b8; }
.pmm-link{ font-family:'Bricolage Grotesque',sans-serif; font-weight:600; font-size:.92rem; color:#334155; text-decoration:none; transition:color .25s var(--ease); }
.pmm-link:hover{ color:#1e5fa3; }
.pmm-div{ height:1px; background:#eef2f7; }
