/* ==========================================================================
   GrowthBridge+  |  Landing Page Styles
   Brand : Gold #C1A370  ·  Navy #2C2A51
   ========================================================================== */

:root{
  --gold:#C1A370;
  --gold-soft:#D8C297;
  --gold-dark:#A5874F;
  --navy:#2C2A51;
  --navy-deep:#1D1B3A;
  --navy-ink:#141329;
  --cream:#FAF7F2;
  --line:rgba(193,163,112,.35);
  --body:#4A4860;
  --radius:18px;
  --shadow:0 22px 60px rgba(28,26,58,.12);
}

*{ -webkit-tap-highlight-color:transparent; }

html{ scroll-behavior:smooth; scroll-padding-top:80px; }

body{
  font-family:'Jost',system-ui,-apple-system,'Segoe UI',sans-serif;
  color:var(--body);
  background:#fff;
  font-weight:400;
  font-size:1.02rem;
  line-height:1.75;
  overflow-x:hidden;
}

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

/* ---------- Logo lockup -------------------------------------------------- */
.gb-logo{
  display:inline-flex;
  align-items:center;
  gap:.12em;
  line-height:1;
  white-space:nowrap;
}
.gb-logo-text{
  font-family:'Playfair Display',Georgia,serif;
  font-weight:600;
  letter-spacing:-.015em;
  color:var(--gold);
  font-size:1.55rem;
}
.gb-logo-mark{
  width:.72em;
  height:.72em;
  font-size:1.55rem;
  overflow:visible;
  fill:none;
  stroke:var(--gold);
  stroke-width:7;
  stroke-linecap:round;
  transform:translateY(-.06em);
}
.gb-logo-xl .gb-logo-text{ font-size:clamp(2.6rem,8vw,5.4rem); }
.gb-logo-xl .gb-logo-mark{ font-size:clamp(2.6rem,8vw,5.4rem); stroke-width:6; }
.gb-logo-sm .gb-logo-text{ font-size:1.3rem; }
.gb-logo-sm .gb-logo-mark{ font-size:1.3rem; }

/* ---------- Buttons ------------------------------------------------------ */
.btn{
  font-weight:500;
  letter-spacing:.04em;
  border-radius:100px;
  padding:.7rem 1.7rem;
  border-width:1.5px;
  transition:all .3s ease;
}
.btn-lg{ padding:.85rem 2.2rem; font-size:1rem; }
.btn-sm{ padding:.5rem 1.3rem; font-size:.85rem; }

.btn-gold{
  background:var(--gold);
  border-color:var(--gold);
  color:#fff;
}
.btn-gold:hover,.btn-gold:focus{
  background:var(--gold-dark);
  border-color:var(--gold-dark);
  color:#fff;
  transform:translateY(-2px);
  box-shadow:0 12px 28px rgba(193,163,112,.35);
}
.btn-outline-light-gold{
  background:transparent;
  border-color:rgba(255,255,255,.45);
  color:#fff;
}
.btn-outline-light-gold:hover{
  background:rgba(255,255,255,.08);
  border-color:var(--gold);
  color:var(--gold-soft);
  transform:translateY(-2px);
}
.btn-outline-navy{
  background:transparent;
  border-color:rgba(44,42,81,.25);
  color:var(--navy);
}
.btn-outline-navy:hover{
  background:var(--navy);
  border-color:var(--navy);
  color:#fff;
}

/* ---------- Navbar ------------------------------------------------------- */
.gb-nav{
  padding:1.1rem 0;
  background:transparent;
  transition:background .35s ease,padding .35s ease,box-shadow .35s ease;
}
.gb-nav.scrolled{
  background:rgba(29,27,58,.96);
  backdrop-filter:blur(12px);
  padding:.6rem 0;
  box-shadow:0 8px 30px rgba(0,0,0,.25);
}
.gb-nav .nav-link{
  color:rgba(255,255,255,.78);
  font-size:.95rem;
  letter-spacing:.03em;
  padding:.5rem 1rem !important;
  position:relative;
}
.gb-nav .nav-link::after{
  content:'';
  position:absolute;
  left:1rem; right:1rem; bottom:.25rem;
  height:1.5px;
  background:var(--gold);
  transform:scaleX(0);
  transform-origin:left;
  transition:transform .3s ease;
}
.gb-nav .nav-link:hover,.gb-nav .nav-link.active{ color:#fff; }
.gb-nav .nav-link:hover::after,.gb-nav .nav-link.active::after{ transform:scaleX(1); }
.navbar-toggler{
  border:1px solid rgba(255,255,255,.3);
  color:#fff;
  font-size:1.4rem;
  padding:.15rem .6rem;
}
.navbar-toggler:focus{ box-shadow:none; }
@media (max-width:991.98px){
  .gb-nav .navbar-collapse{
    background:rgba(20,19,41,.98);
    margin-top:.9rem;
    border-radius:14px;
    padding:1rem 0;
    border:1px solid rgba(193,163,112,.2);
  }
}

/* ---------- Hero --------------------------------------------------------- */
.gb-hero{
  position:relative;
  min-height:100svh;
  display:flex;
  align-items:center;
  padding:8rem 0 5rem;
  background:
    radial-gradient(120% 80% at 50% 0%,#3A3766 0%,transparent 60%),
    radial-gradient(90% 70% at 80% 100%,rgba(193,163,112,.16) 0%,transparent 60%),
    var(--navy-deep);
  overflow:hidden;
  text-align:center;
}
.gb-hero::after{
  content:'';
  position:absolute;
  inset:auto 0 0 0;
  height:120px;
  background:linear-gradient(to top,rgba(20,19,41,.85),transparent);
  pointer-events:none;
}
.gb-bridge{
  position:absolute;
  left:50%;
  bottom:0;
  width:140%;
  max-width:1600px;
  transform:translateX(-50%);
  opacity:.22;
  fill:none;
  stroke:var(--gold);
  pointer-events:none;
}
.gb-bridge .deck{ stroke-width:2; opacity:.55; }
.gb-bridge .cable{ stroke-width:2.5; }
.gb-bridge .hangers path{ stroke-width:1; opacity:.5; }
.gb-bridge .tower{ stroke-width:3; opacity:.8; }

.gb-hero-logo{ margin-bottom:1.2rem; }
.gb-tagline{
  color:rgba(255,255,255,.72);
  font-size:clamp(.72rem,2.2vw,1rem);
  letter-spacing:.2em;
  font-weight:300;
  margin-bottom:2.4rem;
}
.gb-hero-title{
  font-family:'Playfair Display',Georgia,serif;
  color:#fff;
  font-weight:500;
  font-size:clamp(1.55rem,4vw,2.8rem);
  line-height:1.35;
  margin-bottom:1.4rem;
}
.gold{ color:var(--gold); }
.gb-hero-sub{
  color:rgba(255,255,255,.7);
  font-weight:300;
  font-size:clamp(1rem,2.2vw,1.15rem);
  max-width:640px;
  margin:0 auto 2.4rem;
}
.gb-hero-cta{
  display:flex;
  flex-wrap:wrap;
  gap:.9rem;
  justify-content:center;
}
.gb-stay-tuned{
  margin-top:3rem;
  display:inline-flex;
  align-items:center;
  gap:.6rem;
  color:var(--gold-soft);
  font-size:.78rem;
  letter-spacing:.28em;
  border:1px solid rgba(193,163,112,.35);
  border-radius:100px;
  padding:.45rem 1.3rem;
  background:rgba(193,163,112,.07);
}
.pulse{
  width:7px;height:7px;border-radius:50%;
  background:var(--gold);
  box-shadow:0 0 0 0 rgba(193,163,112,.7);
  animation:pulse 2.2s infinite;
}
@keyframes pulse{
  70%{ box-shadow:0 0 0 12px rgba(193,163,112,0); }
  100%{ box-shadow:0 0 0 0 rgba(193,163,112,0); }
}
.gb-scroll{
  position:absolute;
  left:50%; bottom:1.5rem;
  transform:translateX(-50%);
  color:rgba(255,255,255,.45);
  font-size:1.3rem;
  z-index:2;
  animation:float 2.4s ease-in-out infinite;
  text-decoration:none;
}
.gb-scroll:hover{ color:var(--gold); }
@keyframes float{ 0%,100%{ transform:translate(-50%,0); } 50%{ transform:translate(-50%,8px); } }

/* ---------- Section shell ------------------------------------------------ */
.gb-section{ padding:clamp(4rem,9vw,7rem) 0; position:relative; }
.gb-section-cream{ background:var(--cream); }

.gb-eyebrow{
  display:inline-block;
  font-size:.75rem;
  letter-spacing:.24em;
  text-transform:uppercase;
  color:var(--gold-dark);
  font-weight:500;
  margin-bottom:1rem;
  padding-bottom:.5rem;
  border-bottom:1.5px solid var(--line);
}
.gb-eyebrow.light{ color:var(--gold); border-color:rgba(193,163,112,.4); }

.gb-h2{
  font-family:'Playfair Display',Georgia,serif;
  color:var(--navy);
  font-weight:600;
  font-size:clamp(1.6rem,3.4vw,2.45rem);
  line-height:1.3;
  margin-bottom:1.3rem;
}
.gb-lead{ font-size:1.08rem; color:var(--navy); font-weight:400; }
.gb-lead strong{ color:var(--gold-dark); font-weight:600; }
.gb-body{ color:var(--body); font-weight:300; }

.gb-signature{ margin-top:2rem; padding-left:1.1rem; border-left:2px solid var(--gold); }
.gb-sign-name{ font-family:'Playfair Display',serif; font-size:1.2rem; color:var(--navy); font-weight:600; }
.gb-sign-role{ font-size:.85rem; letter-spacing:.1em; color:var(--gold-dark); text-transform:uppercase; }

/* ---------- About card --------------------------------------------------- */
.gb-about-card{
  position:relative;
  background:linear-gradient(160deg,var(--navy) 0%,var(--navy-deep) 100%);
  border-radius:var(--radius);
  padding:clamp(1.8rem,4vw,3rem);
  box-shadow:var(--shadow);
  overflow:hidden;
}
.gb-about-card-inner{ position:relative; z-index:2; }
.gb-quote-mark{
  font-family:'Playfair Display',serif;
  font-size:5rem;
  line-height:.6;
  color:var(--gold);
  opacity:.5;
}
.gb-quote{
  font-family:'Playfair Display',serif;
  color:#fff;
  font-size:clamp(1.6rem,4vw,2.2rem);
  margin:.6rem 0 .6rem;
}
.gb-quote-sub{ color:rgba(255,255,255,.6); font-weight:300; font-size:.98rem; }
.gb-mini-stats{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(130px,1fr));
  gap:1.2rem;
  margin-top:2.2rem;
  padding-top:1.8rem;
  border-top:1px solid rgba(255,255,255,.12);
}
.gb-mini-stats .num{
  display:block;
  font-family:'Playfair Display',serif;
  font-size:1.6rem;
  color:var(--gold);
  line-height:1;
  margin-bottom:.45rem;
}
.gb-mini-stats .lbl{
  display:block;
  font-size:.82rem;
  line-height:1.5;
  color:rgba(255,255,255,.72);
  letter-spacing:.04em;
}
/* business-card style swoosh */
.gb-swoosh{
  position:absolute;
  right:-30%;
  bottom:-60%;
  width:90%;
  aspect-ratio:1/1;
  border-radius:50%;
  border:22px solid rgba(255,255,255,.07);
  border-right-color:rgba(193,163,112,.22);
  pointer-events:none;
}
.gb-swoosh.dark{
  border-color:rgba(44,42,81,.06);
  border-right-color:rgba(193,163,112,.3);
}

/* ---------- Service cards ------------------------------------------------ */
.gb-card{
  position:relative;
  background:#fff;
  border:1px solid rgba(44,42,81,.07);
  border-radius:var(--radius);
  padding:2.3rem 1.9rem;
  overflow:hidden;
  transition:transform .35s ease,box-shadow .35s ease,border-color .35s ease;
}
.gb-card::before{
  content:'';
  position:absolute;
  left:0; top:0; bottom:0;
  width:3px;
  background:var(--gold);
  transform:scaleY(0);
  transform-origin:top;
  transition:transform .4s ease;
}
.gb-card:hover{
  transform:translateY(-8px);
  box-shadow:var(--shadow);
  border-color:transparent;
}
.gb-card:hover::before{ transform:scaleY(1); }
.gb-card-icon{
  width:56px;height:56px;
  display:grid;place-items:center;
  border-radius:14px;
  background:rgba(193,163,112,.12);
  color:var(--gold-dark);
  font-size:1.5rem;
  margin-bottom:1.3rem;
  transition:background .35s ease,color .35s ease;
}
.gb-card:hover .gb-card-icon{ background:var(--navy); color:var(--gold); }
.gb-card h3{
  font-family:'Playfair Display',serif;
  font-size:1.25rem;
  color:var(--navy);
  font-weight:600;
  margin-bottom:.8rem;
}
.gb-card p{ font-size:.96rem; font-weight:300; margin-bottom:0; }
.gb-card-no{
  position:absolute;
  right:1.2rem; top:.6rem;
  font-family:'Playfair Display',serif;
  font-size:3.2rem;
  color:rgba(44,42,81,.05);
  line-height:1;
}

/* ---------- Approach ----------------------------------------------------- */
.gb-approach{
  background:
    radial-gradient(80% 60% at 50% 0%,#38355F 0%,transparent 70%),
    var(--navy-deep);
  color:#fff;
}
.gb-steps{ position:relative; }
.gb-steps-line{
  display:none;
  position:absolute;
  left:16.66%; right:16.66%;
  top:26px;
  height:1.5px;
  background:linear-gradient(90deg,transparent,var(--gold),transparent);
}
@media (min-width:992px){ .gb-steps-line{ display:block; } }
.gb-step{ text-align:center; padding:0 1.2rem; position:relative; }
.gb-step-dot{
  width:54px;height:54px;
  margin:0 auto 1.4rem;
  display:grid;place-items:center;
  border-radius:50%;
  background:var(--navy-deep);
  border:1.5px solid var(--gold);
  color:var(--gold);
  font-family:'Playfair Display',serif;
  font-size:1.05rem;
  position:relative;
  z-index:2;
  transition:background .35s ease,color .35s ease,transform .35s ease;
}
.gb-step:hover .gb-step-dot{ background:var(--gold); color:var(--navy-deep); transform:translateY(-4px); }
.gb-step h4{
  font-family:'Playfair Display',serif;
  color:#fff;
  font-size:1.3rem;
  margin-bottom:.7rem;
}
.gb-step p{ color:rgba(255,255,255,.62); font-weight:300; font-size:.95rem; margin-bottom:0; }

/* ---------- Contact ------------------------------------------------------ */
.gb-contact{ background:var(--cream); }
.gb-contact-list{ list-style:none; padding:0; margin:0; }
.gb-contact-list li{
  display:flex;
  gap:1rem;
  align-items:flex-start;
  padding:1rem 0;
  border-bottom:1px solid rgba(44,42,81,.08);
}
.gb-contact-list li:last-child{ border-bottom:0; }
.gb-contact-list .ic{
  flex:0 0 42px;
  width:42px;height:42px;
  display:grid;place-items:center;
  border-radius:50%;
  background:var(--navy);
  color:var(--gold);
  font-size:1rem;
}
.gb-contact-list small{
  display:block;
  font-size:.72rem;
  letter-spacing:.16em;
  text-transform:uppercase;
  color:var(--gold-dark);
  margin-bottom:.1rem;
}
.gb-contact-list a{
  color:var(--navy);
  font-size:1.05rem;
  text-decoration:none;
  font-weight:500;
  transition:color .25s ease;
  word-break:break-word;
}
.gb-contact-list a:hover{ color:var(--gold-dark); }
.gb-contact-list address{
  color:var(--navy);
  font-size:.98rem;
  font-weight:300;
  line-height:1.6;
  font-style:normal;
}

.gb-contact-card{
  position:relative;
  background:#fff;
  border-radius:var(--radius);
  box-shadow:var(--shadow);
  overflow:hidden;
}
.gb-cc-top{
  background:var(--navy);
  padding:1.6rem 1.9rem;
  text-align:right;
}
.gb-cc-body{ padding:clamp(1.6rem,4vw,2.4rem); position:relative; z-index:2; }
.gb-cc-name{
  font-family:'Jost',sans-serif;
  font-size:1.6rem;
  font-weight:600;
  color:var(--navy);
  line-height:1.2;
}
.gb-cc-role{ color:#8A879E; font-size:1rem; font-weight:300; }
.gb-cc-rule{ display:block; width:64px; height:2px; background:var(--navy); margin:1rem 0 1.2rem; }
.gb-cc-note{ font-weight:300; font-size:.97rem; margin-bottom:1.6rem; }
.gb-cc-actions .btn{ border-radius:12px; }

/* ---------- Footer ------------------------------------------------------- */
.gb-footer{ background:var(--navy-deep); color:rgba(255,255,255,.7); }
.gb-footer-main{ padding:3rem 0 2.4rem; }
.gb-footer-tag{
  color:rgba(255,255,255,.55);
  font-size:.85rem;
  letter-spacing:.18em;
  margin-top:.6rem;
  font-weight:300;
}
.gb-footer-links{ display:flex; gap:.7rem; justify-content:center; margin-bottom:.9rem; }
@media (min-width:768px){ .gb-footer-links{ justify-content:flex-end; } }
.gb-footer-links a{
  width:40px;height:40px;
  display:grid;place-items:center;
  border-radius:50%;
  border:1px solid rgba(193,163,112,.35);
  color:var(--gold);
  text-decoration:none;
  transition:all .3s ease;
}
.gb-footer-links a:hover{ background:var(--gold); color:var(--navy-deep); transform:translateY(-3px); }
.gb-footer-addr{ font-size:.85rem; font-weight:300; color:rgba(255,255,255,.5); }
.gb-footer-bar{
  background:var(--gold);
  color:#fff;
  padding:.7rem 0;
  font-size:.85rem;
  letter-spacing:.06em;
}

/* ---------- Floating WhatsApp ------------------------------------------- */
.gb-float{
  position:fixed;
  right:18px; bottom:18px;
  width:52px;height:52px;
  display:grid;place-items:center;
  border-radius:50%;
  background:var(--gold);
  color:#fff;
  font-size:1.4rem;
  text-decoration:none;
  box-shadow:0 10px 26px rgba(193,163,112,.45);
  z-index:1030;
  transition:transform .3s ease,background .3s ease;
}
.gb-float:hover{ background:var(--navy); color:var(--gold); transform:scale(1.08); }

/* ---------- Reveal on scroll -------------------------------------------- */
.reveal{ opacity:0; transform:translateY(26px); transition:opacity .7s ease,transform .7s ease; }
.reveal.is-visible{ opacity:1; transform:none; }
@media (prefers-reduced-motion:reduce){
  .reveal{ opacity:1; transform:none; transition:none; }
  .pulse,.gb-scroll{ animation:none; }
  html{ scroll-behavior:auto; }
}
