:root{
  --gib-blue:#0a7aa4;
  --gib-blue-dark:#0a6788;
  --gib-green:#36b84a;
  --gib-green-dark:#2d983d;
  --gib-teal:#129485;
  --gib-navy:#0c2140;
  --gib-ink:#142944;
  --gib-muted:#5e7188;
  --gib-soft:#f4fafb;
  --gib-soft-2:#f7fbfb;
  --gib-line:#d7e6ec;
  --gib-white:#ffffff;
  --gib-shadow:0 18px 42px rgba(9,27,56,.10);
  --gib-shadow-lg:0 24px 64px rgba(9,27,56,.16);
}

#gib-quienes-somos,
#gib-quienes-somos *{box-sizing:border-box}

#gib-quienes-somos{
  width:100vw;
  max-width:100vw;
  margin-left:calc(50% - 50vw);
  font-family:inherit;
  color:var(--gib-ink);
  background:#fff;
  line-height:1.68;
  overflow:hidden;
}

#gib-quienes-somos svg{
  width:1em;
  height:1em;
  fill:none;
  stroke:currentColor;
  stroke-width:1.8;
  stroke-linecap:round;
  stroke-linejoin:round;
}

#gib-quienes-somos .gib-shell{
  width:min(1240px,calc(100vw - 48px));
  margin:0 auto;
}

#gib-quienes-somos .gib-section{padding:96px 0}

#gib-quienes-somos .gib-reveal{
  opacity:0;
  transform:translateY(28px);
  transition:opacity .8s ease, transform .8s ease;
}

#gib-quienes-somos .gib-reveal.is-visible{
  opacity:1;
  transform:none;
}

#gib-quienes-somos .gib-hero{
  position:relative;
  padding:84px 0 56px;
  background:
    radial-gradient(circle at top right, rgba(54,184,74,.15), transparent 32%),
    radial-gradient(circle at left 15%, rgba(10,122,164,.10), transparent 28%),
    linear-gradient(120deg,#f3fbff 0%, #f7fcfb 60%, #effbef 100%);
  isolation:isolate;
}

#gib-quienes-somos .gib-hero:before{
  content:"";
  position:absolute;
  inset:0;
  background-image:
    linear-gradient(rgba(9,122,164,.08) 1px, transparent 1px),
    linear-gradient(90deg, rgba(9,122,164,.08) 1px, transparent 1px);
  background-size:54px 54px;
  opacity:.35;
  z-index:-1;
}

#gib-quienes-somos .gib-hero-grid{
  display:grid;
  grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);
  gap:62px;
  align-items:center;
}

#gib-quienes-somos .gib-kicker,
#gib-quienes-somos .gib-eyebrow{
  display:inline-flex;
  align-items:center;
  gap:10px;
  text-transform:uppercase;
  letter-spacing:.09em;
  font-size:.78rem;
  font-weight:800;
  color:#0b769b;
}

#gib-quienes-somos .gib-kicker{
  padding:9px 14px;
  border:1px solid rgba(10,122,164,.16);
  border-radius:999px;
  background:rgba(255,255,255,.78);
  box-shadow:0 6px 18px rgba(9,27,56,.04);
}

#gib-quienes-somos .gib-dot{
  width:10px;
  height:10px;
  border-radius:50%;
  background:var(--gib-green);
  box-shadow:0 0 0 5px rgba(54,184,74,.14);
}

#gib-quienes-somos .gib-hero h1{
  margin:24px 0 18px;
  max-width:790px;
  color:var(--gib-navy);
  font-size:clamp(2.9rem,5vw,5.35rem);
  line-height:.96;
  letter-spacing:-.055em;
  text-wrap:balance;
}

#gib-quienes-somos .gib-lead{
  margin:0;
  max-width:720px;
  color:var(--gib-muted);
  font-size:1.14rem;
}

#gib-quienes-somos .gib-actions{
  display:flex;
  flex-wrap:wrap;
  gap:14px;
  margin-top:34px;
}

#gib-quienes-somos .gib-btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:10px;
  min-height:54px;
  padding:0 24px;
  border-radius:999px;
  text-decoration:none !important;
  font-size:.96rem;
  font-weight:800;
  transition:transform .22s ease, box-shadow .22s ease, background .22s ease, border-color .22s ease;
}

#gib-quienes-somos .gib-btn:hover{
  transform:translateY(-3px);
}

#gib-quienes-somos .gib-btn svg,
#gib-quienes-somos .gib-text-link svg{width:18px;height:18px}

#gib-quienes-somos .gib-btn-primary{
  color:#fff !important;
  background:linear-gradient(90deg,var(--gib-blue),var(--gib-green));
  box-shadow:0 14px 34px rgba(11,131,149,.26);
}

#gib-quienes-somos .gib-btn-primary:hover{
  box-shadow:0 18px 40px rgba(11,131,149,.32);
}

#gib-quienes-somos .gib-btn-secondary{
  color:#0b4d74 !important;
  background:#fff;
  border:1px solid #c8dce6;
}

#gib-quienes-somos .gib-trust-row{
  display:flex;
  flex-wrap:wrap;
  gap:14px 24px;
  margin-top:28px;
  color:#4d677d;
  font-size:.88rem;
  font-weight:700;
}

#gib-quienes-somos .gib-trust-row span{
  display:inline-flex;
  align-items:center;
  gap:7px;
}

#gib-quienes-somos .gib-trust-row svg{color:var(--gib-green)}

#gib-quienes-somos .gib-hero-panel{position:relative}

#gib-quienes-somos .gib-panel-glow{
  position:absolute;
  right:0;
  top:-20px;
  width:260px;
  height:260px;
  border-radius:50%;
  background:radial-gradient(circle, rgba(54,184,74,.16), transparent 72%);
  filter:blur(4px);
}

#gib-quienes-somos .gib-hero-card{
  position:relative;
  padding:18px;
  border-radius:34px;
  background:rgba(255,255,255,.72);
  border:1px solid rgba(192,221,229,.8);
  box-shadow:var(--gib-shadow-lg);
  backdrop-filter:blur(12px);
}

#gib-quienes-somos .gib-card-topline{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:16px;
  padding:6px 8px 16px;
  color:#4b6377;
  font-size:.82rem;
  font-weight:700;
}

#gib-quienes-somos .gib-card-topline span{display:inline-flex;align-items:center;gap:7px}

#gib-quienes-somos .gib-badge-soft{
  padding:8px 12px;
  border-radius:999px;
  background:#ecf8f7;
  color:#117a78;
}

#gib-quienes-somos .gib-map-svg{
  display:block;
  width:100%;
  height:auto;
  border-radius:28px;
}

#gib-quienes-somos .gib-floating{
  position:absolute;
  max-width:220px;
  border-radius:20px;
  padding:14px 16px;
  background:rgba(255,255,255,.95);
  border:1px solid rgba(12,33,64,.07);
  box-shadow:var(--gib-shadow);
  animation:gibFloat 6s ease-in-out infinite;
}

#gib-quienes-somos .gib-floating strong{
  display:block;
  margin-bottom:4px;
  color:var(--gib-navy);
  font-size:1rem;
  line-height:1.2;
}

#gib-quienes-somos .gib-floating span{
  display:block;
  color:var(--gib-muted);
  font-size:.84rem;
  line-height:1.45;
}

#gib-quienes-somos .gib-floating-a{left:-14px;bottom:86px}
#gib-quienes-somos .gib-floating-b{right:-16px;top:84px;animation-delay:1.2s}
#gib-quienes-somos .gib-floating-c{left:52%;bottom:-12px;transform:translateX(-50%);animation-delay:2.1s}

#gib-quienes-somos .gib-signal-band{
  position:relative;
  margin-top:-10px;
  padding-bottom:20px;
}

#gib-quienes-somos .gib-signal-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:16px;
}

#gib-quienes-somos .gib-signal-grid article{
  display:flex;
  gap:16px;
  align-items:flex-start;
  padding:22px 22px;
  border-radius:22px;
  background:#fff;
  border:1px solid var(--gib-line);
  box-shadow:0 14px 32px rgba(9,27,56,.07);
}

#gib-quienes-somos .gib-icon-box,
#gib-quienes-somos .gib-icon{
  display:grid;
  place-items:center;
  flex:0 0 auto;
}

#gib-quienes-somos .gib-icon-box{
  width:48px;
  height:48px;
  border-radius:14px;
  background:#eaf8f5;
  color:var(--gib-teal);
  font-size:1.3rem;
}

#gib-quienes-somos .gib-signal-grid strong{
  display:block;
  margin-bottom:4px;
  color:var(--gib-navy);
  font-size:1rem;
}

#gib-quienes-somos .gib-signal-grid p{
  margin:0;
  color:var(--gib-muted);
  font-size:.94rem;
}

#gib-quienes-somos .gib-two-col{
  display:grid;
  grid-template-columns:.82fr 1.18fr;
  gap:82px;
}

#gib-quienes-somos .gib-section h2{
  margin:14px 0 0;
  color:var(--gib-navy);
  font-size:clamp(2rem,3.5vw,3.7rem);
  line-height:1.08;
  letter-spacing:-.04em;
  text-wrap:balance;
}

#gib-quienes-somos .gib-richtext{
  color:#4d647a;
  font-size:1.08rem;
}

#gib-quienes-somos .gib-richtext p:first-child{margin-top:0}
#gib-quienes-somos .gib-richtext strong{color:var(--gib-navy)}

#gib-quienes-somos .gib-problem{background:var(--gib-soft)}

#gib-quienes-somos .gib-section-head{
  display:flex;
  justify-content:space-between;
  align-items:flex-end;
  gap:40px;
  margin-bottom:44px;
}

#gib-quienes-somos .gib-section-head.gib-centered{
  display:block;
  text-align:center;
  max-width:860px;
  margin:0 auto 44px;
}

#gib-quienes-somos .gib-section-head.gib-centered p{
  margin:18px auto 0;
  max-width:760px;
  color:var(--gib-muted);
  font-size:1.08rem;
}

#gib-quienes-somos .gib-problem-grid{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:18px;
}

#gib-quienes-somos .gib-problem-card,
#gib-quienes-somos .gib-service-card,
#gib-quienes-somos .gib-principles-grid article{
  border-radius:22px;
  transition:transform .26s ease, box-shadow .26s ease, border-color .26s ease;
}

#gib-quienes-somos .gib-problem-card{
  min-height:238px;
  padding:28px;
  border:1px solid #deebef;
  background:#fff;
  box-shadow:0 12px 28px rgba(9,27,56,.05);
}

#gib-quienes-somos .gib-problem-card:hover,
#gib-quienes-somos .gib-service-card:hover,
#gib-quienes-somos .gib-principles-grid article:hover{
  transform:translateY(-6px);
  box-shadow:var(--gib-shadow);
}

#gib-quienes-somos .gib-number{
  color:var(--gib-teal);
  font-size:.8rem;
  font-weight:900;
  letter-spacing:.12em;
}

#gib-quienes-somos .gib-problem-card h3,
#gib-quienes-somos .gib-service-card h3,
#gib-quienes-somos .gib-pillars h3{
  margin:34px 0 10px;
  color:var(--gib-navy);
  font-size:1.16rem;
  line-height:1.25;
}

#gib-quienes-somos .gib-problem-card p,
#gib-quienes-somos .gib-service-card p,
#gib-quienes-somos .gib-pillars p{
  margin:0;
  color:var(--gib-muted);
}

#gib-quienes-somos .gib-problem-card-accent{
  border-color:transparent;
  background:linear-gradient(140deg,var(--gib-blue-dark),var(--gib-teal) 58%, var(--gib-green));
}

#gib-quienes-somos .gib-problem-card-accent .gib-number,
#gib-quienes-somos .gib-problem-card-accent h3,
#gib-quienes-somos .gib-problem-card-accent p{color:#fff}

#gib-quienes-somos .gib-text-link{
  display:inline-flex;
  align-items:center;
  gap:9px;
  color:#087aa4 !important;
  text-decoration:none !important;
  font-weight:850;
  white-space:nowrap;
}

#gib-quienes-somos .gib-cards-five{
  display:grid;
  grid-template-columns:repeat(5,1fr);
  gap:16px;
}

#gib-quienes-somos .gib-service-card{
  padding:25px 21px;
  border:1px solid var(--gib-line);
  background:#fff;
  box-shadow:0 10px 26px rgba(9,27,56,.04);
}

#gib-quienes-somos .gib-icon{
  width:50px;
  height:50px;
  border-radius:15px;
  background:#eaf8f5;
  color:var(--gib-teal);
  font-size:1.45rem;
}

#gib-quienes-somos .gib-service-card h3{margin-top:22px}

#gib-quienes-somos .gib-escazu{
  position:relative;
  background:linear-gradient(135deg,#082140 0%, #0a6f90 58%, #0b9f85 100%);
  color:#fff;
}

#gib-quienes-somos .gib-escazu:before{
  content:"";
  position:absolute;
  inset:0;
  background:
    radial-gradient(circle at 20% 20%, rgba(255,255,255,.08), transparent 25%),
    radial-gradient(circle at 85% 75%, rgba(255,255,255,.08), transparent 22%);
  pointer-events:none;
}

#gib-quienes-somos .gib-escazu-grid{
  display:grid;
  grid-template-columns:1.08fr .92fr;
  gap:78px;
  align-items:center;
}

#gib-quienes-somos .gib-kicker-light{
  color:#fff;
  background:rgba(255,255,255,.08);
  border-color:rgba(255,255,255,.18);
}

#gib-quienes-somos .gib-escazu h2{color:#fff}

#gib-quienes-somos .gib-escazu-copy>p{
  color:rgba(255,255,255,.84);
  font-size:1.08rem;
}

#gib-quienes-somos .gib-escazu blockquote{
  margin:32px 0 0;
  padding:22px 24px;
  border-left:4px solid #86e861;
  border-radius:18px;
  background:rgba(255,255,255,.12);
  color:#ffffff;
  font-size:1.04rem;
  font-weight:700;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.12);
}

#gib-quienes-somos .gib-pillars{display:grid;gap:14px}

#gib-quienes-somos .gib-pillars article{
  display:flex;
  gap:16px;
  padding:20px;
  border-radius:20px;
  background:rgba(255,255,255,.10);
  border:1px solid rgba(255,255,255,.14);
  backdrop-filter:blur(8px);
}

#gib-quienes-somos .gib-pillars h3{margin:0 0 6px;color:#fff}
#gib-quienes-somos .gib-pillars p{color:rgba(255,255,255,.78)}

#gib-quienes-somos .gib-icon-light{
  flex:0 0 50px;
  width:50px;
  height:50px;
  border-radius:15px;
  background:rgba(255,255,255,.14);
  color:#fff;
}

#gib-quienes-somos .gib-principles-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:18px;
}

#gib-quienes-somos .gib-principles-grid article{
  padding:26px;
  background:#f8fbfc;
  border-left:4px solid #18a680;
  box-shadow:0 10px 24px rgba(9,27,56,.04);
}

#gib-quienes-somos .gib-principles-grid strong{
  display:block;
  margin-bottom:8px;
  color:var(--gib-navy);
  font-size:1.08rem;
}

#gib-quienes-somos .gib-principles-grid p{margin:0;color:var(--gib-muted)}

#gib-quienes-somos .gib-audience{background:linear-gradient(180deg,#f5fbfa 0%, #ffffff 100%)}

#gib-quienes-somos .gib-audience-grid{
  display:grid;
  grid-template-columns:1fr 1.1fr;
  gap:70px;
  align-items:center;
}

#gib-quienes-somos .gib-audience p{
  color:var(--gib-muted);
  font-size:1.06rem;
}

#gib-quienes-somos .gib-tags{display:flex;flex-wrap:wrap;gap:12px}

#gib-quienes-somos .gib-tags span{
  padding:11px 16px;
  border-radius:999px;
  background:#fff;
  border:1px solid #d7e5e9;
  box-shadow:0 8px 18px rgba(9,27,56,.05);
  font-weight:750;
  color:#2f5169;
}

#gib-quienes-somos .gib-team-placeholder{
  display:grid;
  grid-template-columns:.84fr 1.16fr;
  gap:54px;
  align-items:center;
  padding:40px;
  border-radius:30px;
  background:#f5faf9;
  border:1px solid #dcebea;
}

#gib-quienes-somos .gib-team-visual{
  position:relative;
  min-height:270px;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:18px;
  border-radius:24px;
  overflow:hidden;
  background:linear-gradient(135deg,#0b6f9d 0%, #15a486 62%, #53bc48 100%);
}

#gib-quienes-somos .gib-team-visual:before,
#gib-quienes-somos .gib-team-visual:after{
  content:"";
  position:absolute;
  border-radius:50%;
  border:1px solid rgba(255,255,255,.26);
}

#gib-quienes-somos .gib-team-visual:before{width:286px;height:286px}
#gib-quienes-somos .gib-team-visual:after{width:204px;height:204px}

#gib-quienes-somos .gib-team-visual span{
  position:relative;
  z-index:2;
  width:74px;
  height:74px;
  border-radius:50%;
  display:grid;
  place-items:center;
  background:#fff;
  color:#087aa4;
  font-size:1.8rem;
  box-shadow:0 14px 28px rgba(0,0,0,.14);
}

#gib-quienes-somos .gib-team-placeholder p{
  color:var(--gib-muted);
  font-size:1.04rem;
}

#gib-quienes-somos .gib-support{padding-top:20px}

#gib-quienes-somos .gib-support-card{
  display:grid;
  grid-template-columns:1.25fr .75fr;
  gap:60px;
  align-items:center;
  padding:54px;
  border-radius:32px;
  background:linear-gradient(125deg,#071f3c 0%, #087da1 58%, #16a981 100%);
  color:#fff;
  box-shadow:0 26px 60px rgba(9,27,56,.22);
}

#gib-quienes-somos .gib-support-card h2{color:#fff}

#gib-quienes-somos .gib-support-card p{
  color:rgba(255,255,255,.84);
  font-size:1.06rem;
}

#gib-quienes-somos .gib-support-card small{
  display:block;
  color:rgba(255,255,255,.66);
  line-height:1.6;
}

#gib-quienes-somos .gib-support-actions{display:grid;gap:12px}

#gib-quienes-somos .gib-btn-white{
  background:#fff;
  color:#086b92 !important;
}

#gib-quienes-somos .gib-btn-outline-light{
  color:#fff !important;
  background:transparent;
  border:1px solid rgba(255,255,255,.42);
}

@keyframes gibFloat{
  0%,100%{transform:translateY(0)}
  50%{transform:translateY(-8px)}
}

@media (prefers-reduced-motion: reduce){
  #gib-quienes-somos .gib-reveal,
  #gib-quienes-somos .gib-floating,
  #gib-quienes-somos .gib-btn,
  #gib-quienes-somos .gib-problem-card,
  #gib-quienes-somos .gib-service-card,
  #gib-quienes-somos .gib-principles-grid article{
    transition:none !important;
    animation:none !important;
    opacity:1 !important;
    transform:none !important;
  }
}

@media(max-width:1160px){
  #gib-quienes-somos .gib-hero-grid,
  #gib-quienes-somos .gib-escazu-grid,
  #gib-quienes-somos .gib-audience-grid,
  #gib-quienes-somos .gib-team-placeholder,
  #gib-quienes-somos .gib-support-card,
  #gib-quienes-somos .gib-two-col{grid-template-columns:1fr}

  #gib-quienes-somos .gib-hero-grid{gap:46px}
  #gib-quienes-somos .gib-hero-panel{max-width:720px;margin:0 auto}
  #gib-quienes-somos .gib-signal-grid{grid-template-columns:1fr}
  #gib-quienes-somos .gib-problem-grid{grid-template-columns:repeat(2,1fr)}
  #gib-quienes-somos .gib-cards-five{grid-template-columns:repeat(3,1fr)}
  #gib-quienes-somos .gib-principles-grid{grid-template-columns:repeat(2,1fr)}
}

@media(max-width:820px){
  #gib-quienes-somos .gib-shell{width:min(100vw - 26px, 1240px)}
  #gib-quienes-somos .gib-section{padding:72px 0}
  #gib-quienes-somos .gib-hero{padding:62px 0 44px}
  #gib-quienes-somos .gib-hero h1{font-size:clamp(2.5rem,13vw,4rem)}
  #gib-quienes-somos .gib-lead{font-size:1.03rem}
  #gib-quienes-somos .gib-section-head{display:block}
  #gib-quienes-somos .gib-section-head .gib-text-link{margin-top:16px}
  #gib-quienes-somos .gib-problem-grid,
  #gib-quienes-somos .gib-cards-five,
  #gib-quienes-somos .gib-principles-grid{grid-template-columns:1fr}
  #gib-quienes-somos .gib-floating{display:none}
  #gib-quienes-somos .gib-support-card{padding:34px 24px}
}

@media(max-width:560px){
  #gib-quienes-somos .gib-actions{display:grid}
  #gib-quienes-somos .gib-btn{width:100%}
  #gib-quienes-somos .gib-trust-row{display:grid;gap:8px}
  #gib-quienes-somos .gib-kicker{font-size:.69rem}
  #gib-quienes-somos .gib-team-placeholder{padding:24px}
  #gib-quienes-somos .gib-team-visual span{width:60px;height:60px}
  #gib-quienes-somos .gib-section h2{font-size:2.25rem}
}
