/* ===================================================================
   GEOMIDA :: Modern Redesign Layer
   Color line preserved: gold #ffc000 / navy #002e5b, #0a1a2f, #272d33, #3a5371
   Layered on top of existing bootstrap/style.css — nothing removed.
   =================================================================== */

:root{
  --gm-gold:#ffc000;
  --gm-gold-soft:#ffd34d;
  --gm-gold-deep:#c98f00;
  --gm-navy:#002e5b;
  --gm-navy-deep:#0a1a2f;
  --gm-slate:#272d33;
  --gm-steel:#3a5371;
  --gm-ink:#0b1622;
  --gm-mist:#eef2f7;
  --gm-line:rgba(255,255,255,.12);
  --gm-glow:0 0 40px rgba(255,192,0,.35);
  --gm-shadow:0 24px 60px -18px rgba(0,20,45,.55);
  --gm-font:'Segoe UI',Roboto,'Helvetica Neue',Arial,sans-serif;
  --gm-radius:18px;
}

*{ -webkit-font-smoothing:antialiased; }

html,body{ font-family:var(--gm-font); }
body{ background:#0a1422; color:#1b2733; overflow-x:hidden; }

/* ---------- Preloader ---------- */
.preload{
  position:fixed; inset:0; z-index:99999; background:#060c16;
  display:flex; align-items:center; justify-content:center; flex-direction:column;
  transition:opacity .6s ease, visibility .6s ease;
}
.preload.done{ opacity:0; visibility:hidden; }
.preload .gm-preload-wrap{ position:relative; text-align:center; }
.preload .gm-pre-globe{ width:64px; height:64px; margin:0 auto 16px; position:relative; animation:gmPreSpin 2.6s linear infinite; }
.preload .gm-pre-globe svg{ display:block; }
.preload .gm-pre-globe::after{ content:""; position:absolute; inset:-20px; border-radius:50%;
  background:radial-gradient(circle,rgba(255,192,0,.22),transparent 70%); z-index:-1; animation:gmPrePulse 1.6s ease-in-out infinite; }
@keyframes gmPrePulse{ 0%,100%{ opacity:.7; } 50%{ opacity:1; } }
@keyframes gmPreSpin{ to{ transform:rotate(360deg); } }
.preload .gm-pre-brand{
  font-size:13px; letter-spacing:.45em; color:var(--gm-gold);
  font-weight:700; text-transform:uppercase;
}
.preload .gm-pre-bar{
  margin-top:14px; width:160px; height:3px; background:rgba(255,255,255,.1); border-radius:3px; overflow:hidden;
}
.preload .gm-pre-bar span{ display:block; height:100%; width:0; background:linear-gradient(90deg,var(--gm-gold),#fff); }

/* ---------- Top bar (gold, slim) ---------- */
#top-bar.top-bar{
  background:linear-gradient(90deg,#ffc000,#ffd870 50%,#ffc000);
  color:#0a1a2f; border-bottom:1px solid rgba(10,26,47,.14);
  position:relative; z-index:60; font-size:12px;
}
.gm-topbar{ display:flex; align-items:center; justify-content:space-between; gap:14px; padding:6px 0; flex-wrap:wrap; }
.gm-topbar-info{ display:flex; align-items:center; gap:22px; flex-wrap:wrap; }
.gm-topbar-item{ display:inline-flex; align-items:center; gap:7px; color:#0a1a2f; text-decoration:none; font-weight:600; transition:color .25s ease; }
.gm-topbar-item .ic{ width:20px; height:20px; border-radius:50%; display:inline-flex; align-items:center; justify-content:center;
  background:rgba(10,26,47,.12); color:#0a1a2f; font-size:10px; transition:all .25s ease; }
.gm-topbar-item:hover{ color:#3a5371; }
.gm-topbar-item:hover .ic{ background:#0a1a2f; color:#ffc000; transform:translateY(-1px); }
.gm-topbar-right{ display:flex; align-items:center; gap:14px; }
.gm-topbar-loc{ color:#3a4654; font-size:11px; letter-spacing:.04em; white-space:nowrap; }
.gm-topbar-loc .fa{ color:#0a1a2f; margin-right:5px; }
.gm-topbar-soc{ width:26px; height:26px; border-radius:50%; border:1px solid rgba(10,26,47,.25);
  display:inline-flex; align-items:center; justify-content:center; color:#0a1a2f; transition:all .25s ease; font-size:12px; }
.gm-topbar-soc:hover{ background:#0a1a2f; color:#ffc000; border-color:#0a1a2f; }
@media (max-width:640px){
  .gm-topbar-loc{ display:none; }
  .gm-topbar-info{ gap:14px; }
}
/* neutralize original style.css top-bar container (white triangle + extra padding) */
#top-bar.top-bar .container{ padding:0 !important; background:transparent !important; }
#top-bar.top-bar .container:before{ display:none !important; }

/* ---------- Header ---------- */
#header.header{
  background:rgba(255,255,255,.95); backdrop-filter:blur(16px) saturate(1.2); -webkit-backdrop-filter:blur(16px) saturate(1.2);
  border-bottom:1px solid #e6ebf2; transition:all .35s ease; z-index:55;
}
#header.navbar-fixed{ background:rgba(255,255,255,.98); box-shadow:0 12px 34px -14px rgba(0,30,60,.22); }
/* keep logo + nav on the same row (flex, no float-drop) */
.header .container > .row{ display:flex; align-items:center; justify-content:space-between; flex-wrap:nowrap; gap:12px; }
.header .navbar-header{ flex:0 0 auto; float:none; margin:0; }
.header .site-nav-inner{ flex:1 1 auto; display:flex; justify-content:flex-end; align-items:center; }
.header .site-nav-inner > nav.navbar-collapse{ flex:0 0 auto; float:none; padding:0; }
.header .logo img{ height:40px; width:auto; transition:transform .4s ease; }
.header .logo:hover img{ transform:scale(1.04); }
.site-nav-inner .nav.navbar-nav{ display:flex; align-items:center; gap:0; }
.site-nav-inner .nav.navbar-nav > li > a{
  color:#0a1a2f; font-weight:600; font-size:14px; letter-spacing:.02em;
  padding:20px 9px; position:relative; transition:color .25s ease; background:transparent;
}
.site-nav-inner .nav.navbar-nav > li > a:hover,
.site-nav-inner .nav.navbar-nav > li.active > a,
.site-nav-inner .nav.navbar-nav > li.active > a:hover{ color:var(--gm-gold-deep); background:transparent; }
.site-nav-inner .nav.navbar-nav > li > a::after{
  content:""; position:absolute; left:15px; right:15px; bottom:10px; height:2px;
  background:linear-gradient(90deg,var(--gm-gold),var(--gm-gold-deep)); transform:scaleX(0); transform-origin:left; transition:transform .3s ease;
}
.site-nav-inner .nav.navbar-nav > li:hover > a::after,
.site-nav-inner .nav.navbar-nav > li.active > a::after{ transform:scaleX(1); }
.site-nav-inner .nav.navbar-nav > li > a .fa-angle-down{ font-size:11px; margin-left:4px; opacity:.55; transition:transform .3s, opacity .3s; }
.site-nav-inner .nav.navbar-nav > li:hover > a .fa-angle-down{ transform:rotate(180deg); opacity:1; }
/* Contáctenos — impressive animated gold pill */
@property --gmcta{ syntax:'<angle>'; initial-value:0deg; inherits:false; }
.site-nav-inner .nav.navbar-nav > li.gm-nav-cta{ position:relative; margin-left:12px; }
.site-nav-inner .nav.navbar-nav > li.gm-nav-cta::before{
  content:""; position:absolute; inset:-5px; border-radius:50px; z-index:0;
  background:conic-gradient(from var(--gmcta), rgba(255,255,255,0), rgba(255,255,255,.85) 14%, rgba(255,192,0,0) 30%, rgba(255,211,77,.8) 58%, rgba(255,255,255,0) 78%, rgba(255,255,255,0));
  filter:blur(7px); opacity:.6;
  animation:gmCtaSpin 3s linear infinite;
}
@keyframes gmCtaSpin{ to{ --gmcta:360deg; } }
.site-nav-inner .nav.navbar-nav > li.gm-nav-cta > a{
  position:relative; z-index:1; padding:10px 22px !important; border-radius:50px; color:#0a1a2f !important;
  overflow:hidden;
  background:linear-gradient(120deg,#ffd970,#ffc000 30%,#e0a800 55%,#ffc000 75%,#ffd970);
  background-size:280% 100%;
  box-shadow:0 8px 22px -10px rgba(255,192,0,.6);
  animation:gmCtaFlow 4s linear infinite, gmCtaGlow 2.6s ease-in-out infinite;
  transition:transform .3s ease, filter .3s ease;
}
@keyframes gmCtaFlow{ to{ background-position:280% 0; } }
@keyframes gmCtaGlow{ 0%,100%{ box-shadow:0 8px 22px -10px rgba(255,192,0,.5); } 50%{ box-shadow:0 12px 32px -8px rgba(255,192,0,.95); } }
.site-nav-inner .nav.navbar-nav > li.gm-nav-cta > a::after{
  content:""; position:absolute; top:0; bottom:auto; left:-160%; right:auto; width:50%; height:100%;
  background:linear-gradient(120deg,transparent,rgba(255,255,255,.85),transparent); transform:skewX(-18deg);
  animation:gmCtaShine 3.4s ease-in-out infinite;
}
@keyframes gmCtaShine{ 0%{ left:-160%; } 55%,100%{ left:160%; } }
.site-nav-inner .nav.navbar-nav > li.gm-nav-cta > a:hover{ transform:translateY(-2px) scale(1.04); filter:brightness(1.08); }
.site-nav-inner .nav.navbar-nav > li.gm-nav-cta > a .fa-paper-plane{ transition:transform .4s ease; }
.site-nav-inner .nav.navbar-nav > li.gm-nav-cta > a:hover .fa-paper-plane{ transform:scale(1.12); }
/* nav link icons */
.gm-nav > li > a .fa-home, .gm-nav > li > a .fa-folder-open-o{ font-size:13px; margin-right:7px; opacity:.55; }
.navbar-toggle{ border-color:var(--gm-navy-deep); }
.navbar-toggle .icon-bar{ background:var(--gm-navy-deep); }
/* Dropdown — animated, hover-bridged (no auto-hide) */
.site-nav-inner .nav.navbar-nav > li.gm-has-dd{ position:relative; }
.site-nav-inner .nav.navbar-nav > li.gm-has-dd > .dropdown-menu{
  display:block !important; opacity:0; visibility:hidden; transform:translateY(10px) scale(.97);
  transition:opacity .28s ease, transform .28s ease, visibility .2s;
  margin-top:0 !important; padding:8px; min-width:250px; border-radius:14px !important;
  background:#fff; border:none; border-top:3px solid var(--gm-gold);
  box-shadow:0 26px 54px -20px rgba(0,30,60,.32);
}
.site-nav-inner .nav.navbar-nav > li.gm-has-dd > .dropdown-menu::before{
  content:""; position:absolute; top:-16px; left:0; right:0; height:16px;
}
.site-nav-inner .nav.navbar-nav > li.gm-has-dd:hover > .dropdown-menu,
.site-nav-inner .nav.navbar-nav > li.gm-has-dd.open > .dropdown-menu,
.site-nav-inner .nav.navbar-nav > li.gm-has-dd:focus-within > .dropdown-menu{
  opacity:1; visibility:visible; transform:translateY(0) scale(1);
}
.gm-dd-head{ pointer-events:none; }
.gm-dd-head span{ display:flex; align-items:center; gap:9px; padding:4px 14px 10px; font-size:11px; font-weight:700;
  letter-spacing:.14em; text-transform:uppercase; color:var(--gm-gold-deep); border-bottom:1px solid #f0ece0; margin-bottom:6px; }
.gm-dropdown > li > a{
  color:#2a3a4c; font-family:inherit; font-size:14px; font-weight:500; padding:10px 16px 10px 22px;
  border-bottom:none; border-radius:9px; transition:all .2s ease; display:flex; align-items:center; position:relative;
}
.gm-dropdown > li > a::before{ content:""; position:absolute; left:9px; top:50%; transform:translateY(-50%) scaleY(0);
  width:3px; height:16px; border-radius:3px; background:var(--gm-gold); transition:transform .2s ease; }
.gm-dropdown > li > a::after{ content:"\f105"; font-family:FontAwesome; margin-left:auto; color:var(--gm-gold);
  font-size:12px; opacity:0; transition:opacity .2s, transform .2s; }
.gm-dropdown > li > a:hover{ color:#0a1a2f; background:#fff7d6; padding-left:28px; }
.gm-dropdown > li > a:hover::before{ transform:translateY(-50%) scaleY(1); }
.gm-dropdown > li > a:hover::after{ opacity:1; transform:translateX(3px); }

/* ---------- Buttons ---------- */
.gm-btn{
  display:inline-flex; align-items:center; gap:10px; padding:13px 28px; border-radius:50px;
  font-weight:600; font-size:13px; letter-spacing:.06em; text-transform:uppercase;
  position:relative; overflow:hidden; transition:all .35s cubic-bezier(.2,.8,.2,1); cursor:pointer;
  border:none;
}
.gm-btn-gold{ background:linear-gradient(135deg,var(--gm-gold),var(--gm-gold-deep)); color:#0a1a2f; box-shadow:0 10px 26px -12px rgba(255,192,0,.55); }
.gm-btn-navy{ background:linear-gradient(135deg,#0a1a2f,#002e5b); color:#fff; box-shadow:0 10px 26px -12px rgba(0,46,91,.55); }
.gm-btn-ghost{ background:transparent; color:#fff; border:1.5px solid rgba(255,255,255,.4); }
.gm-btn-ghost:hover{ border-color:var(--gm-gold); color:var(--gm-gold); }
.gm-btn-gold:hover{ color:#0a1a2f; transform:translateY(-2px); box-shadow:0 16px 34px -12px rgba(255,192,0,.7); }
.gm-btn-navy:hover{ color:#fff; transform:translateY(-2px); box-shadow:0 16px 34px -12px rgba(0,46,91,.7); }
.gm-btn .shine{ position:absolute; top:0; left:-120%; width:60%; height:100%;
  background:linear-gradient(120deg,transparent,rgba(255,255,255,.5),transparent); transform:skewX(-20deg); }
.gm-btn:hover .shine{ animation:gmShine .8s ease; }
@keyframes gmShine{ to{ left:120%; } }
.gm-btn .fa{ transition:transform .3s ease; }
.gm-btn:hover .fa-arrow-right{ transform:translateX(4px); }
/* on the space hero, ghost button is light */
.gm-hero .gm-btn-ghost{ color:#fff; border-color:rgba(255,255,255,.42); }
.gm-hero .gm-btn-ghost:hover{ border-color:var(--gm-gold); color:var(--gm-gold); }

/* ---------- Hero (space background) ---------- */
.gm-hero{ position:relative; min-height:100vh; display:flex; align-items:center; overflow:hidden;
  background: radial-gradient(circle at 50% 22%, #1a3a5e 0%, #0a1626 44%, #04070e 100%);
  color:#eaf1fb; }
.gm-hero .gm-hero-veil{ position:absolute; inset:0; z-index:1;
  background:
    radial-gradient(ellipse 55% 75% at 16% 50%, rgba(0,0,0,.55), transparent 62%),
    radial-gradient(circle at 80% 38%, rgba(45,130,185,.20), transparent 55%); }
#gm-earth-canvas{ position:absolute !important; top:0; left:0; width:100% !important; height:100% !important; display:block; z-index:2; }
.gm-hero .gm-hero-content{ position:relative; z-index:5; width:100%; pointer-events:none; }
.gm-hero-panel{ position:relative; max-width:460px; padding:0; margin:0 auto; text-align:center; will-change:transform; pointer-events:auto; }
.gm-hero-panel .gm-title{ text-shadow:0 2px 34px rgba(0,0,0,.55); }
.gm-hero-panel .gm-sub{ text-shadow:0 1px 16px rgba(0,0,0,.45); }
.gm-hero-chips{ display:flex; gap:10px; flex-wrap:wrap; margin-top:26px; justify-content:center; }
.gm-chip{ display:inline-flex; align-items:center; gap:8px; padding:8px 15px; border-radius:50px;
  background:rgba(255,255,255,.08); border:1px solid rgba(255,255,255,.22); color:#fff; font-size:11.5px; font-weight:600;
  text-decoration:none; letter-spacing:.02em; transition:all .25s ease; }
.gm-chip .fa{ font-size:11px; }
.gm-chip:hover{ background:var(--gm-gold); color:#0a1a2f; border-color:var(--gm-gold); transform:translateY(-2px); }
.gm-chip:hover .fa{ color:#0a1a2f; }
.gm-hero-hint{ display:inline-flex; align-items:center; gap:8px; margin-top:18px; font-size:10.5px; letter-spacing:.12em;
  text-transform:uppercase; color:rgba(255,255,255,.62); font-weight:600; }
.gm-hero-hint .fa{ color:var(--gm-gold); }
.gm-eyebrow{ display:inline-flex; align-items:center; gap:12px; color:var(--gm-gold); font-weight:700;
  letter-spacing:.34em; text-transform:uppercase; font-size:11px; margin-bottom:22px; }
.gm-eyebrow .dot{ width:8px; height:8px; border-radius:50%; background:var(--gm-gold); box-shadow:0 0 12px var(--gm-gold); }
.gm-eyebrow .line{ width:54px; height:1px; background:linear-gradient(90deg,var(--gm-gold),transparent); }
.gm-section.light .gm-eyebrow{ color:var(--gm-navy-deep); }
.gm-section.light .gm-eyebrow .dot{ background:var(--gm-navy-deep); box-shadow:0 0 12px rgba(0,46,91,.4); }
.gm-section.light .gm-eyebrow .line{ background:linear-gradient(90deg,var(--gm-navy-deep),transparent); }
.gm-hero h1.gm-title{ font-size:clamp(2.9rem,7.2vw,6.2rem); font-weight:800; line-height:1.15; color:#fff;
  letter-spacing:-.02em; margin:0 0 18px; }
.gm-hero h1.gm-title .gm-grad{ background:linear-gradient(120deg,#ffffff,#cfe6ff 50%,#ffc000);
  -webkit-background-clip:text; background-clip:text; -webkit-text-fill-color:transparent; position:relative; }
.gm-hero h1.gm-title .gm-grad::after{ content:""; position:absolute; left:6%; right:6%; bottom:.06em; height:5px;
  background:linear-gradient(90deg,#ffc000,#3a5371); border-radius:3px; opacity:.9; }
.gm-hero h1.gm-title .gm-word{ display:inline-block; transition:transform .3s ease, filter .3s ease; cursor:default; }
.gm-hero h1.gm-title .gm-word:hover{ transform:translateY(-6px) rotate(-1deg); filter:drop-shadow(0 6px 12px rgba(255,192,0,.5)); }
.gm-hero .gm-sub{ font-size:clamp(1.05rem,2vw,1.35rem); color:#c3d0e2; max-width:540px; margin:0 auto 34px; font-weight:300; }
.gm-hero .gm-cta{ display:flex; gap:16px; flex-wrap:wrap; justify-content:center; }
.gm-hero .gm-scroll-cue{ position:absolute; bottom:26px; left:50%; transform:translateX(-50%); z-index:6;
  color:rgba(255,255,255,.6); font-size:10px; letter-spacing:.3em; text-transform:uppercase; text-align:center; pointer-events:none; }
.gm-hero .gm-scroll-cue .mouse{ width:22px; height:36px; border:1.5px solid rgba(255,255,255,.4); border-radius:12px;
  margin:0 auto 8px; position:relative; }
.gm-hero .gm-scroll-cue .mouse::before{ content:""; position:absolute; top:7px; left:50%; transform:translateX(-50%);
  width:3px; height:7px; border-radius:3px; background:var(--gm-gold); animation:gmWheel 1.6s infinite; }
@keyframes gmWheel{ 0%{opacity:0;transform:translate(-50%,0)} 40%{opacity:1} 80%{opacity:0;transform:translate(-50%,12px)} 100%{opacity:0} }

/* hero stats strip */
.gm-stats{ position:relative; z-index:6; background:#0a1a2f;
  border-top:1px solid rgba(255,255,255,.06); border-bottom:1px solid rgba(255,255,255,.06); }
.gm-stats .gm-stat{ text-align:center; padding:34px 12px; }
.gm-stats .gm-stat .num{ font-size:clamp(2rem,4vw,3rem); font-weight:800; color:var(--gm-gold); line-height:1; }
.gm-stats .gm-stat .lbl{ font-size:11px; letter-spacing:.2em; text-transform:uppercase; color:#aebbd0; margin-top:8px; }

/* ---------- Section base ---------- */
.gm-section{ padding:104px 0; position:relative; }
.gm-section.dark{ background:#070d18; color:#dbe4f0; }
.gm-section.navy{ background:linear-gradient(160deg,#0a1a2f,#070d18); color:#dbe4f0; }
.gm-section.light{ background:#f5f7fa; color:#1b2733; }
.gm-section-head{ text-align:center; max-width:760px; margin:0 auto 60px; }
.gm-section-head .gm-eyebrow{ justify-content:center; }
.gm-section-head h2{ font-size:clamp(1.9rem,4vw,2.9rem); font-weight:800; margin:0 0 16px; }
.gm-section.dark h2,.gm-section.navy h2{ color:#fff; }
.gm-section.light h2{ color:var(--gm-navy-deep); }
.gm-section-head p{ font-size:1.05rem; opacity:.8; font-weight:300; }
.gm-section.dark .gm-section-head p,.gm-section.navy .gm-section-head p{ color:#9fb0c8; }
.gm-divider{ width:80px; height:3px; margin:18px auto 0; background:var(--gm-gold); border-radius:3px; }

/* ---------- Service cards ---------- */
.gm-service{ position:relative; border-radius:var(--gm-radius); padding:42px 30px 34px; overflow:hidden;
  background:rgba(255,255,255,.03); border:1px solid var(--gm-line); height:100%;
  transition:transform .4s cubic-bezier(.2,.8,.2,1), border-color .4s, background .4s; }
.gm-service::before{ content:""; position:absolute; top:-50%; right:-30%; width:70%; height:80%;
  background:radial-gradient(circle,rgba(255,192,0,.18),transparent 60%); opacity:0; transition:opacity .4s; }
.gm-service:hover{ transform:translateY(-6px); border-color:rgba(255,192,0,.45); background:rgba(255,255,255,.06); }
.gm-service:hover::before{ opacity:1; }
.gm-service .gm-svc-ic{ width:74px; height:74px; border-radius:16px; display:flex; align-items:center; justify-content:center;
  margin-bottom:22px; background:linear-gradient(135deg,rgba(255,192,0,.18),rgba(0,46,91,.18));
  border:1px solid rgba(255,192,0,.25); }
.gm-service .gm-svc-ic .fa{ font-size:30px; color:var(--gm-gold); }
.gm-service h3{ font-size:1.3rem; font-weight:700; margin:0 0 12px; color:#fff; }
.gm-service p{ color:#9fb0c8; font-size:.96rem; font-weight:300; margin:0 0 20px; }
.gm-service .gm-svc-link{ color:var(--gm-gold); font-weight:700; font-size:13px; letter-spacing:.06em; text-transform:uppercase;
  display:inline-flex; align-items:center; gap:8px; }
.gm-service .gm-svc-link .fa{ transition:transform .3s; }
.gm-service:hover .gm-svc-link .fa{ transform:translateX(5px); }
.gm-service .gm-svc-num{ position:absolute; top:18px; right:24px; font-size:14px; font-weight:800; color:rgba(255,192,0,.25); letter-spacing:.1em; }

/* ---------- Vision / intro ---------- */
.gm-vision-imgs{ position:relative; display:flex; gap:16px; }
.gm-vision-imgs figure{ flex:1; margin:0; border-radius:14px; overflow:hidden; position:relative; box-shadow:var(--gm-shadow); }
.gm-vision-imgs figure img{ width:100%; height:260px; object-fit:cover; transition:transform .6s ease; }
.gm-vision-imgs figure:hover img{ transform:scale(1.08); }
.gm-vision-imgs figure::after{ content:""; position:absolute; inset:0; background:linear-gradient(180deg,transparent 50%,rgba(0,46,91,.7)); }
.gm-vision-badge{ position:absolute; left:24px; bottom:18px; z-index:2; background:var(--gm-gold); color:#0a1a2f;
  padding:10px 18px; border-radius:50px; font-weight:700; font-size:12px; letter-spacing:.06em; text-transform:uppercase; box-shadow:var(--gm-glow); }
.gm-feature-list .gm-feat{ display:flex; gap:16px; padding:18px 0; border-bottom:1px solid rgba(255,255,255,.08); }
.gm-feature-list .gm-feat .ic{ flex:0 0 46px; width:46px; height:46px; border-radius:12px; background:rgba(255,192,0,.12);
  border:1px solid rgba(255,192,0,.25); display:flex; align-items:center; justify-content:center; color:var(--gm-gold); font-size:18px; }
.gm-feature-list .gm-feat h4{ margin:0 0 4px; font-size:1.05rem; font-weight:700; color:#fff; }
.gm-feature-list .gm-feat p{ margin:0; color:#9fb0c8; font-size:.92rem; font-weight:300; }
.gm-tabs .gm-tab-btns{ display:flex; gap:10px; margin-bottom:24px; flex-wrap:wrap; }
.gm-tabs .gm-tab-btn{ padding:10px 22px; border-radius:50px; border:1px solid rgba(255,255,255,.18); background:transparent;
  color:#cfd8e3; font-weight:600; font-size:13px; cursor:pointer; transition:all .3s; }
.gm-tabs .gm-tab-btn.active{ background:var(--gm-gold); color:#0a1a2f; border-color:var(--gm-gold); }

/* ---------- Call to action ---------- */
.gm-cta-band{ position:relative; overflow:hidden; background:linear-gradient(120deg,#002e5b,#0a1a2f); }
.gm-cta-band .gm-cta-bg{ position:absolute; inset:0; opacity:.12; background-size:cover; background-position:center; }
.gm-cta-band h3{ font-size:clamp(1.4rem,3vw,2.1rem); font-weight:800; color:#fff; margin:0; }

/* ---------- Portfolio teaser / gallery ---------- */
.gm-grid{ column-count:3; column-gap:18px; }
.gm-grid .gm-grid-item{ break-inside:avoid; margin-bottom:18px; position:relative; border-radius:14px; overflow:hidden;
  box-shadow:var(--gm-shadow); }
.gm-grid .gm-grid-item img{ width:100%; display:block; transition:transform .6s ease; }
.gm-grid .gm-grid-item:hover img{ transform:scale(1.06); }
.gm-grid .gm-grid-item .ov{ position:absolute; inset:0; background:linear-gradient(180deg,transparent 40%,rgba(5,10,19,.85));
  opacity:0; transition:opacity .4s; display:flex; align-items:flex-end; padding:22px; }
.gm-grid .gm-grid-item:hover .ov{ opacity:1; }
.gm-grid .gm-grid-item .ov span{ color:var(--gm-gold); font-weight:700; font-size:12px; letter-spacing:.1em; text-transform:uppercase; }

/* ---------- Clients ---------- */
.gm-clients{ display:grid; grid-template-columns:repeat(8,1fr); gap:14px; }
.gm-clients .gm-client{ position:relative; border-radius:12px; overflow:hidden; aspect-ratio:1/1;
  box-shadow:0 8px 20px -12px rgba(0,0,0,.35); border:1px solid rgba(0,46,91,.08); background:#fff; }
.gm-clients .gm-client img{ width:100%; height:100%; object-fit:cover; filter:grayscale(1) brightness(.92);
  transition:filter .45s ease, transform .45s ease; }
.gm-clients .gm-client:hover img{ filter:grayscale(0) brightness(1); transform:scale(1.06); }
@media (max-width:768px){ .gm-clients{ grid-template-columns:repeat(4,1fr); } }

/* ---------- Banner (inner pages) ---------- */
.gm-banner{ position:relative; min-height:42vh; display:flex; align-items:center; overflow:hidden; color:#0a1a2f;
  background: linear-gradient(120deg,#ffd34d 0%,#ffc000 45%,#e0a800 100%); }
.gm-banner .gm-banner-bg{ display:none; }
.gm-banner .gm-banner-veil{ position:absolute; inset:0;
  background: radial-gradient(ellipse at 82% 50%, rgba(8,18,34,.22), transparent 60%); }
.gm-banner .gm-banner-content{ position:relative; z-index:2; }
.gm-banner h1{ font-size:clamp(2rem,5vw,3.3rem); font-weight:800; margin:0 0 10px; color:#0a1a2f; letter-spacing:-.01em; }
.gm-banner .gm-crumb{ display:flex; gap:10px; align-items:center; font-size:11px; letter-spacing:.16em; text-transform:uppercase; color:#3a4654; font-weight:600; }
.gm-banner .gm-crumb a{ color:#0a1a2f; }
.gm-banner .gm-banner-side{ position:absolute; right:6%; top:50%; transform:translateY(-50%); z-index:1;
  width:300px; height:300px; opacity:.45; }

/* ---------- Cards / forms ---------- */
.gm-card{ background:#fff; border-radius:var(--gm-radius); padding:34px; box-shadow:var(--gm-shadow); border:1px solid #eef0f4; }
.gm-section.light .gm-card{ background:#fff; }
.gm-contact-info .ci-item{ display:flex; gap:16px; padding:18px 0; border-bottom:1px solid #e9edf3; }
.gm-contact-info .ci-item .ic{ flex:0 0 48px; width:48px; height:48px; border-radius:12px; background:linear-gradient(135deg,#002e5b,#0a1a2f);
  color:var(--gm-gold); display:flex; align-items:center; justify-content:center; font-size:18px; }
.gm-contact-info .ci-item h4{ margin:0 0 2px; font-size:1rem; font-weight:700; color:var(--gm-navy-deep); }
.gm-contact-info .ci-item p{ margin:0; color:#5a6b80; font-size:.95rem; }
.gm-form .form-control{ border-radius:10px; border:1px solid #dde3ec; padding:13px 16px; height:auto; font-size:14px;
  transition:border-color .25s, box-shadow .25s; }
.gm-form .form-control:focus{ border-color:var(--gm-gold); box-shadow:0 0 0 4px rgba(255,192,0,.15); border-color:var(--gm-gold); }
.gm-form label{ font-weight:600; font-size:13px; color:var(--gm-navy-deep); letter-spacing:.03em; }
.gm-field-group{ position:relative; }
.gm-field-group .gm-field-line{ position:absolute; left:0; bottom:0; height:2px; width:0; background:var(--gm-gold); transition:width .4s; }
.gm-field-group:focus-within .gm-field-line{ width:100%; }

/* ---------- Isotope portfolio ---------- */
.gm-iso-nav{ display:flex; justify-content:center; gap:12px; flex-wrap:wrap; margin-bottom:40px; }
.gm-iso-nav a{ padding:9px 22px; border-radius:50px; border:1px solid #d8dee8; color:#3a5371; font-weight:700;
  font-size:13px; letter-spacing:.04em; text-transform:uppercase; transition:all .3s; cursor:pointer; }
.gm-iso-nav a.active,.gm-iso-nav a:hover{ background:var(--gm-navy-deep); color:#fff; border-color:var(--gm-navy-deep); }
.gm-iso-item .gm-iso-card{ position:relative; border-radius:14px; overflow:hidden; box-shadow:var(--gm-shadow); margin-bottom:26px; }
.gm-iso-item .gm-iso-card img{ width:100%; height:260px; object-fit:cover; transition:transform .6s ease; }
.gm-iso-item .gm-iso-card:hover img{ transform:scale(1.08); }
.gm-iso-item .gm-iso-card .gm-iso-ov{ position:absolute; inset:0; padding:22px; display:flex; flex-direction:column;
  justify-content:flex-end; opacity:0; transition:opacity .4s;
  background:linear-gradient(180deg,transparent 35%,rgba(5,10,19,.9)); }
.gm-iso-item .gm-iso-card:hover .gm-iso-ov{ opacity:1; }
.gm-iso-item .gm-iso-card .gm-iso-ov h3{ margin:0 0 4px; color:#fff; font-size:1.15rem; font-weight:700; }
.gm-iso-item .gm-iso-card .gm-iso-ov .cat{ color:var(--gm-gold); font-size:11px; letter-spacing:.12em; text-transform:uppercase; }
.gm-iso-item .gm-iso-card .gm-zoom{ position:absolute; top:16px; right:16px; width:38px; height:38px; border-radius:50%;
  background:var(--gm-gold); color:#0a1a2f; display:flex; align-items:center; justify-content:center;
  transform:scale(0) rotate(-90deg); transition:transform .4s; }
.gm-iso-item .gm-iso-card:hover .gm-zoom{ transform:scale(1) rotate(0); }

/* ---------- Service detail ---------- */
.gm-detail-title{ font-size:clamp(1.8rem,4vw,2.6rem); font-weight:800; color:var(--gm-navy-deep); margin:0 0 8px; }
.gm-detail-rubro{ color:var(--gm-gold-deep); font-weight:700; letter-spacing:.08em; text-transform:uppercase; font-size:13px; }
.gm-detail-img{ border-radius:var(--gm-radius); overflow:hidden; box-shadow:var(--gm-shadow); position:relative; }
.gm-detail-img img{ width:100%; display:block; transition:transform .8s ease; }
.gm-detail-img:hover img{ transform:scale(1.05); }
.gm-detail-img::after{ content:""; position:absolute; inset:0; box-shadow:inset 0 0 0 1px rgba(255,192,0,.25); border-radius:var(--gm-radius); pointer-events:none; }

/* ---------- Footer ---------- */
.footer.bg-overlay{ background:#060c16; color:#9fb0c8; }
.footer .footer-top{ background:linear-gradient(90deg,#0a1a2f,#002e5b); border-bottom:1px solid var(--gm-line); padding:50px 0; }
.footer .footer-top h3{ color:#fff; }
.footer .footer-top .action-box-icon{ color:var(--gm-gold); }
.footer .footer-main{ padding:64px 0 40px; }
.footer .footer-widget h3.widget-title{ color:#fff; font-size:1rem; font-weight:700; letter-spacing:.06em; text-transform:uppercase;
  margin-bottom:22px; position:relative; padding-bottom:12px; }
.footer .footer-widget h3.widget-title::after{ content:""; position:absolute; left:0; bottom:0; width:38px; height:2px; background:var(--gm-gold); }
.footer .footer-about p{ color:#9fb0c8; font-weight:300; }
.footer .footer-logo{ filter:drop-shadow(0 4px 14px rgba(255,192,0,.25)); margin-bottom:18px; }
.footer .footer-social a{ width:40px; height:40px; border-radius:50%; border:1px solid rgba(255,255,255,.15);
  display:inline-flex; align-items:center; justify-content:center; color:#cfd8e3; transition:all .3s; }
.footer .footer-social a:hover{ background:var(--gm-gold); color:#0a1a2f; border-color:var(--gm-gold); transform:translateY(-3px); }
.footer .working-hours{ color:#9fb0c8; font-weight:300; line-height:1.9; }
.footer .list-arrow li a{ color:#9fb0c8; font-weight:300; transition:color .25s,padding-left .25s; }
.footer .list-arrow li{ margin-bottom:6px; }
.footer .list-arrow li:before{ color:var(--gm-gold); }
.footer .list-arrow li a:hover{ color:#fff; padding-left:6px; }
.footer .instagram-widget{ display:grid; grid-template-columns:repeat(4,1fr); gap:8px; }
.footer .instagram-widget a img{ width:100%; height:62px; object-fit:cover; border-radius:8px; transition:transform .3s,filter .3s; }
.footer .instagram-widget a:hover img{ transform:scale(1.08); filter:brightness(1.1); }
.footer .copyright{ border-top:1px solid var(--gm-line); padding:18px 0; background:#040810; color:#7e8ea6; }
.footer .copyright a{ color:var(--gm-gold); }

/* back to top — clean circular gold button */
#back-to-top, #back-to-top.affix{ right:24px; bottom:24px; top:auto; z-index:90; width:50px; height:50px; }
#back-to-top .btn.btn-primary{
  width:50px !important; height:50px !important; line-height:50px !important; padding:0 !important;
  border:none !important; border-radius:50% !important;
  background:linear-gradient(135deg,#ffc000,#c98f00) !important; color:#0a1a2f !important;
  font-size:20px; font-weight:700;
  box-shadow:0 10px 26px -8px rgba(255,192,0,.6), inset 0 0 0 1px rgba(255,255,255,.25);
  transition:transform .25s ease, box-shadow .25s ease;
}
#back-to-top .btn.btn-primary:hover{
  transform:translateY(-3px); color:#0a1a2f !important;
  box-shadow:0 16px 32px -8px rgba(255,192,0,.78), inset 0 0 0 1px rgba(255,255,255,.3);
}

/* ---------- SVG topo decoration ---------- */
.gm-topo-svg{ position:absolute; pointer-events:none; z-index:1; opacity:.55; }
.gm-topo-svg path{ fill:none; stroke:#0a1a2f; stroke-width:1.1; opacity:.2; }
.gm-topo-svg.is-draw path{ stroke-dasharray:1200; stroke-dashoffset:1200; }
.gm-section.dark .gm-topo-svg path, .gm-section.navy .gm-topo-svg path{ stroke:var(--gm-gold); opacity:.42; }
.gm-section.light .gm-topo-svg path{ stroke:rgba(0,46,91,.2); }

/* ---------- reveal helper ---------- */
.gm-reveal{ opacity:0; transform:translateY(34px); }
.gm-reveal-x{ opacity:0; transform:translateX(40px); }

/* ---------- responsive ---------- */
@media (max-width:991px){
  .gm-vision-imgs{ flex-wrap:wrap; }
  .gm-vision-imgs figure{ flex:1 1 45%; }
  .gm-grid{ column-count:2; }
  .gm-banner .gm-banner-side{ display:none; }
  #gm-earth-canvas{ opacity:.5; }
  .site-nav-inner .navbar-collapse{ background:rgba(255,255,255,.99); padding:14px; border-radius:12px; border:1px solid #e6ebf2; }
}
@media (max-width:560px){
  .gm-grid{ column-count:1; }
  .gm-vision-imgs figure{ flex:1 1 100%; }
  .gm-hero{ min-height:auto; padding:120px 0 60px; }
  #gm-earth-canvas{ opacity:.45; }
  .gm-section{ padding:64px 0; }
}
