:root{
  --bg:#FFFFFF;
  --surface:#F5F7FA;
  --surface-2:#EAEEF4;
  --border:#DDE2EA;
  --text:#212529;
  --text-dim:#5C636B;
  --blue:#0D6EFD;
  --blue-soft:rgba(13,110,253,.10);
  --coral:#E0532C;
  --mint:#1C9E73;
  --gold:#B8790A;
  --font-display:'Space Grotesk', sans-serif;
  --font-body:'Inter', sans-serif;
  --font-mono:'IBM Plex Mono', monospace;
}

*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  background:var(--bg);
  color:var(--text);
  font-family:var(--font-body);
  line-height:1.6;
  overflow-x:hidden;
}

::selection{background:var(--blue); color:#fff;}

/* ---------- Reveal on scroll ---------- */
[data-reveal]{
  opacity:0;
  transform:translateY(18px);
  transition:opacity .6s ease, transform .6s ease;
}
[data-reveal].is-visible{
  opacity:1;
  transform:translateY(0);
}
@media (prefers-reduced-motion: reduce){
  [data-reveal]{opacity:1; transform:none; transition:none;}
}

/* ---------- Nav ---------- */
.gb-nav{
  background:rgba(255,255,255,.86);
  backdrop-filter:blur(10px);
  border-bottom:1px solid var(--border);
  padding:.75rem 0;
}
.gb-nav .navbar-toggler{border-color:var(--border);}
.gb-nav .navbar-toggler-icon{
  filter:invert(0.2);
}
.gb-brand{
  font-family:var(--font-display);
  font-weight:700;
  font-size:1.25rem;
  color:var(--text) !important;
  letter-spacing:-.02em;
}
.gb-brand span{color:var(--blue);}
.gb-nav .nav-link{
  color:var(--text-dim);
  font-weight:500;
  font-size:.95rem;
}
.gb-nav .nav-link:hover{color:var(--text);}
.btn-close-white{filter:none;}
.gb-btn-nav{
  background:var(--blue);
  color:#fff !important;
  border-radius:8px;
  padding:.5rem 1.1rem;
  font-weight:600;
  font-size:.9rem;
}
.gb-btn-nav:hover{background:#4a6ce8;}

/* ---------- Buttons ---------- */
.gb-btn-primary{
  background:var(--blue);
  border:none;
  color:#fff;
  font-family:var(--font-display);
  font-weight:600;
  border-radius:10px;
  padding:.85rem 1.75rem;
  transition:transform .15s ease, background .15s ease;
}
.gb-btn-primary:hover{background:#4a6ce8; transform:translateY(-2px); color:#fff;}
.gb-btn-outline{
  border:1px solid var(--border);
  color:var(--text);
  font-family:var(--font-display);
  font-weight:600;
  border-radius:10px;
  padding:.85rem 1.75rem;
  background:transparent;
}
.gb-btn-outline:hover{border-color:var(--blue); color:var(--blue);}

/* ---------- Type ---------- */
.gb-eyebrow{
  font-family:var(--font-mono);
  color:var(--blue);
  letter-spacing:.12em;
  font-size:.78rem;
  font-weight:600;
  margin-bottom:.9rem;
  text-transform:uppercase;
}
.gb-h1{
  font-family:var(--font-display);
  font-weight:700;
  font-size:clamp(2.1rem, 4vw, 3.3rem);
  line-height:1.12;
  letter-spacing:-.02em;
  margin-bottom:1.25rem;
}
.gb-h2{
  font-family:var(--font-display);
  font-weight:700;
  font-size:clamp(1.7rem, 3vw, 2.35rem);
  line-height:1.2;
  letter-spacing:-.015em;
  margin-bottom:1rem;
}
.gb-lead{
  color:var(--text-dim);
  font-size:1.1rem;
  max-width:560px;
}
.gb-body-lead{
  color:var(--text-dim);
  font-size:1.05rem;
  max-width:640px;
}

/* ---------- Sections ---------- */
.gb-section{padding:5.5rem 0;}
.gb-section-alt{background:var(--surface);}

/* ---------- Hero ---------- */
.gb-hero{
  position:relative;
  padding:6.5rem 0 5rem;
  background:radial-gradient(ellipse 80% 60% at 30% 0%, rgba(13,110,253,.10), transparent 60%), var(--bg);
  overflow:hidden;
}
.gb-grid-overlay{
  position:absolute; inset:0;
  background-image:
    linear-gradient(rgba(13,110,253,.06) 1px, transparent 1px),
    linear-gradient(90deg, rgba(13,110,253,.06) 1px, transparent 1px);
  background-size:42px 42px;
  mask-image:linear-gradient(to bottom, rgba(0,0,0,.9), transparent 75%);
}

.gb-hero-card{
  background:var(--bg);
  border:1px solid var(--border);
  border-radius:16px;
  padding:1.4rem 1.5rem 1.7rem;
  box-shadow:0 30px 60px -20px rgba(13,20,40,.16);
}
.gb-hero-card-head{
  display:flex;
  align-items:center;
  gap:.4rem;
  border-bottom:1px solid var(--border);
  padding-bottom:.9rem;
  margin-bottom:1.2rem;
}
.gb-dot{width:9px; height:9px; border-radius:50%; display:inline-block;}
.gb-dot-red{background:#FF6B4A;}
.gb-dot-amber{background:#F2B84B;}
.gb-dot-green{background:#34D399;}
.gb-hero-card-title{
  font-family:var(--font-mono);
  font-size:.78rem;
  color:var(--text-dim);
  margin-left:.5rem;
}
.gb-metric-label{
  font-family:var(--font-mono);
  font-size:.75rem;
  color:var(--text-dim);
  text-transform:uppercase;
  letter-spacing:.06em;
}
.gb-metric-row{
  display:flex;
  align-items:baseline;
  gap:.6rem;
  margin:.5rem 0 .5rem;
}
.gb-metric-old{
  font-family:var(--font-mono);
  font-size:1.6rem;
  color:var(--text-dim);
  text-decoration:line-through;
  text-decoration-color:var(--coral);
}
.gb-metric-arrow{color:var(--text-dim);}
.gb-metric-new{
  font-family:var(--font-mono);
  font-size:2.6rem;
  font-weight:600;
  color:var(--mint);
}
.gb-metric-tag{
  display:inline-block;
  background:rgba(52,211,153,.12);
  color:var(--mint);
  font-family:var(--font-mono);
  font-size:.8rem;
  padding:.25rem .6rem;
  border-radius:6px;
}
.gb-hero-subgrid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:1rem;
  margin-top:1.4rem;
  padding-top:1.2rem;
  border-top:1px solid var(--border);
}
.gb-submetric-val{
  font-family:var(--font-mono);
  font-size:1.5rem;
  font-weight:600;
  color:var(--gold);
}
.gb-submetric-suf{
  font-family:var(--font-mono);
  font-size:1.1rem;
  color:var(--gold);
}
.gb-submetric-label{
  display:block;
  font-size:.82rem;
  color:var(--text-dim);
  margin-top:.15rem;
}

/* ---------- Problem cards ---------- */
.gb-problem-card{
  background:var(--surface);
  border:1px solid var(--border);
  border-radius:12px;
  padding:1.1rem 1.2rem;
  height:100%;
  display:flex;
  gap:.8rem;
  align-items:flex-start;
  transition:border-color .2s ease, transform .2s ease;
}
.gb-problem-card:hover{border-color:var(--coral); transform:translateY(-3px);}
.gb-problem-card p{margin:0; color:var(--text-dim); font-size:.95rem;}
.gb-problem-x{
  color:var(--coral);
  font-family:var(--font-mono);
  font-weight:600;
  font-size:1.1rem;
  line-height:1;
  flex-shrink:0;
}

/* ---------- Approach pills ---------- */
.gb-approach-grid{
  display:flex;
  flex-wrap:wrap;
  gap:.6rem;
}
.gb-approach-pill{
  border:1px solid var(--border);
  background:var(--bg);
  color:var(--text);
  font-size:.88rem;
  font-family:var(--font-mono);
  padding:.5rem 1rem;
  border-radius:999px;
  transition:border-color .2s ease, color .2s ease;
}
.gb-approach-pill:hover{border-color:var(--blue); color:var(--blue);}

/* ---------- Quote section ---------- */
.gb-quote-section{background:var(--surface);}
.gb-quote-card{
  border-radius:14px;
  padding:2rem 1.7rem;
  height:100%;
  border:1px solid var(--border);
}
.gb-quote-wrong{background:rgba(255,107,74,.06); border-color:rgba(255,107,74,.3);}
.gb-quote-right{background:rgba(91,127,255,.08); border-color:rgba(91,127,255,.4);}
.gb-quote-label{
  font-family:var(--font-mono);
  font-size:.75rem;
  text-transform:uppercase;
  letter-spacing:.08em;
  color:var(--text-dim);
  display:block;
  margin-bottom:.7rem;
}
.gb-quote-wrong .gb-quote-label{color:var(--coral);}
.gb-quote-right .gb-quote-label{color:var(--blue);}
.gb-quote-text{
  font-family:var(--font-display);
  font-size:1.35rem;
  font-weight:600;
  margin:0;
}

/* ---------- Case study chart ---------- */
.gb-chart-card{
  background:var(--surface);
  border:1px solid var(--border);
  border-radius:16px;
  padding:1.8rem;
}
.gb-chart-head{
  display:flex;
  justify-content:space-between;
  align-items:center;
  font-family:var(--font-mono);
  font-size:.82rem;
  color:var(--text-dim);
  margin-bottom:1.4rem;
}
.gb-chart-badge{
  background:var(--blue-soft);
  color:var(--blue);
  padding:.2rem .6rem;
  border-radius:6px;
}
.gb-bars{
  display:flex;
  align-items:flex-end;
  gap:2.5rem;
  height:180px;
  padding:0 1rem;
  border-bottom:1px solid var(--border);
  margin-bottom:1rem;
}
.gb-bar-col{
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:.5rem;
  flex:1;
}
.gb-bar{
  width:100%;
  max-width:90px;
  height:4px;
  border-radius:8px 8px 0 0;
  transition:height 1.1s cubic-bezier(.2,.8,.2,1);
}
.gb-bar-before{background:linear-gradient(180deg, #6b7590, #414a63);}
.gb-bar-after{background:linear-gradient(180deg, var(--mint), #1c9e73);}
.gb-bar-val{
  font-family:var(--font-mono);
  font-weight:600;
  font-size:1.1rem;
  order:-1;
}
.gb-bar-label{font-size:.8rem; color:var(--text-dim);}
.gb-case-stats{border-top:1px solid var(--border); padding-top:1.2rem;}
.gb-case-stat-val{
  font-family:var(--font-mono);
  font-size:1.4rem;
  font-weight:600;
  color:var(--gold);
}
.gb-case-stat-label{font-size:.78rem; color:var(--text-dim); margin-top:.1rem;}

/* ---------- Checklist grid ---------- */
.gb-check-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:.9rem 1.2rem;
}
.gb-check-grid-4{grid-template-columns:repeat(2,1fr);}
@media (min-width:768px){
  .gb-check-grid-4{grid-template-columns:repeat(4,1fr);}
}
.gb-check-item{
  display:flex;
  align-items:center;
  gap:.6rem;
  font-size:.95rem;
  color:var(--text);
}
.gb-check-mark{
  color:var(--mint);
  font-weight:700;
  flex-shrink:0;
}

/* ---------- Services ---------- */
.gb-service-card{
  background:var(--surface);
  border:1px solid var(--border);
  border-radius:14px;
  padding:1.6rem 1.5rem;
  height:100%;
  transition:border-color .2s ease, transform .2s ease;
}
.gb-service-card:hover{border-color:var(--blue); transform:translateY(-4px);}
.gb-service-num{
  font-family:var(--font-mono);
  color:var(--blue);
  font-size:.85rem;
  font-weight:600;
}
.gb-service-card h3{
  font-family:var(--font-display);
  font-size:1.15rem;
  margin:.6rem 0 .5rem;
}
.gb-service-card p{color:var(--text-dim); font-size:.92rem; margin:0;}

/* ---------- Results ---------- */
.gb-results-section{background:var(--surface);}
.gb-result-card{
  background:var(--bg);
  border:1px solid var(--border);
  border-radius:14px;
  padding:1.8rem 1.2rem;
  text-align:center;
}
.gb-result-range{
  font-family:var(--font-mono);
  font-size:2rem;
  font-weight:600;
  color:var(--mint);
}
.gb-result-label{color:var(--text-dim); font-size:.9rem; margin-top:.4rem;}
.gb-results-tags{display:flex; flex-wrap:wrap; gap:.6rem;}
.gb-results-tags span{
  border:1px solid var(--border);
  border-radius:999px;
  padding:.4rem .9rem;
  font-size:.85rem;
  color:var(--text-dim);
}

/* ---------- Industries ---------- */
.gb-industry-grid{
  display:flex;
  flex-wrap:wrap;
  gap:.6rem;
}
.gb-industry-tag{
  border:1px solid var(--border);
  background:var(--bg);
  border-radius:8px;
  padding:.55rem 1rem;
  font-size:.88rem;
  color:var(--text);
}

/* ---------- Goal line ---------- */
.gb-goal-line{
  border-left:3px solid var(--blue);
  padding-left:1.2rem;
  font-size:1.15rem;
  color:var(--text);
  max-width:760px;
}

/* ---------- FAQ ---------- */
.gb-accordion .accordion-item{
  background:transparent;
  border:1px solid var(--border);
  border-radius:12px !important;
  margin-bottom:.8rem;
  overflow:hidden;
}
.gb-accordion .accordion-button{
  background:var(--surface);
  color:var(--text);
  font-family:var(--font-display);
  font-weight:600;
  font-size:1.02rem;
  box-shadow:none;
}
.gb-accordion .accordion-button:not(.collapsed){
  background:var(--surface-2);
  color:var(--blue);
}
.gb-accordion .accordion-button:focus{box-shadow:none;}
.gb-accordion .accordion-body{
  background:var(--bg);
  color:var(--text-dim);
  font-size:.95rem;
}

/* ---------- CTA ---------- */
.gb-cta-section{
  padding:6rem 0;
  background:radial-gradient(ellipse 70% 70% at 50% 100%, rgba(13,110,253,.10), transparent 65%), var(--bg);
  border-top:1px solid var(--border);
}

/* ---------- Footer ---------- */
.gb-footer{
  background:var(--surface);
  border-top:1px solid var(--border);
  padding:1.8rem 0;
}
.gb-footer-text{color:var(--text-dim); font-size:.85rem;}

/* ---------- Responsive ---------- */
@media (max-width:767px){
  .gb-hero{padding:5rem 0 3rem;}
  .gb-section{padding:3.5rem 0;}
  .gb-check-grid{grid-template-columns:1fr;}
}
