/* ==========================================================================
   HERO
   ========================================================================== */
.gc-hero{position:relative;overflow:hidden;background:var(--gc-secondary)}
.gc-hero__track{position:relative}
.gc-hero__slide{position:absolute;inset:0;display:flex;align-items:center;
  opacity:0;visibility:hidden;transition:opacity .9s var(--gc-ease),visibility .9s;
  isolation:isolate}
.gc-hero__slide:first-child{position:relative;min-height:860px}
.gc-hero__slide.is-active{opacity:1;visibility:visible;z-index:2}
.gc-hero__bg{position:absolute;inset:0;z-index:-2;background:center/cover no-repeat;
  transform:scale(1.08);transition:transform 7s linear}
.gc-hero__slide.is-active .gc-hero__bg{transform:scale(1)}
.gc-hero__overlay{position:absolute;inset:0;z-index:-1;
  background:linear-gradient(90deg,rgba(var(--gc-secondary-rgb),.88) 0%,rgba(var(--gc-secondary-rgb),.55) 55%,rgba(var(--gc-secondary-rgb),.3) 100%)}
.gc-hero__inner{position:relative;width:100%;max-width:var(--gc-container);
  padding-top:80px;padding-bottom:80px}
.gc-hero__label{margin:0 0 18px;font-family:var(--gc-font-heading);font-weight:500;
  font-size:14px;line-height:24px;letter-spacing:.5px;text-transform:uppercase;
  color:var(--gc-global);opacity:0;transform:translateY(24px)}
.gc-hero__title{max-width:900px;margin:0 0 34px;font-family:var(--gc-font-heading);
  font-weight:600;font-size:clamp(38px,5vw,76px);line-height:1.06;letter-spacing:-2px;
  color:var(--gc-white);opacity:0;transform:translateY(30px)}
.gc-hero__accent{color:var(--gc-global);font-style:italic}
.gc-hero__btn{opacity:0;transform:translateY(24px)}
.gc-hero__features{display:flex;flex-wrap:wrap;gap:16px 40px;margin:44px 0 0;padding:0;
  list-style:none;opacity:0;transform:translateY(24px)}
.gc-hero__feature{display:flex;align-items:center;gap:12px;
  font-family:var(--gc-font-heading);font-weight:600;font-size:16px;color:var(--gc-white)}
.gc-hero__tick{width:22px;height:22px;flex:0 0 auto;display:grid;place-items:center;
  border-radius:50%;background:var(--gc-global);position:relative}
.gc-hero__tick::after{content:"";width:9px;height:5px;border-left:2px solid var(--gc-secondary);
  border-bottom:2px solid var(--gc-secondary);transform:rotate(-45deg) translate(1px,-1px)}

/* Entrance animation, staggered */
.gc-hero__slide.is-active .gc-hero__label,
.gc-hero__slide.is-active .gc-hero__title,
.gc-hero__slide.is-active .gc-hero__btn,
.gc-hero__slide.is-active .gc-hero__features{
  animation:gcHeroIn .9s var(--gc-ease) forwards}
.gc-hero__slide.is-active .gc-hero__label{animation-delay:.15s}
.gc-hero__slide.is-active .gc-hero__title{animation-delay:.3s}
.gc-hero__slide.is-active .gc-hero__btn{animation-delay:.5s}
.gc-hero__slide.is-active .gc-hero__features{animation-delay:.65s}
@keyframes gcHeroIn{to{opacity:1;transform:translateY(0)}}

/* Hero controls */
.gc-hero__nav{position:absolute;right:40px;bottom:50px;z-index:5;display:flex;gap:12px}
.gc-hero__arrow{width:56px;height:56px;padding:0;display:grid;place-items:center;
  border-radius:50%;background:transparent;color:var(--gc-white);
  border:1px solid rgba(var(--gc-white-rgb),.35);font-size:18px}
.gc-hero__arrow:hover{background:var(--gc-global);color:var(--gc-secondary);border-color:var(--gc-global)}
.gc-hero__arrow--prev .gc-icon{transform:rotate(180deg)}
.gc-hero__dots{position:absolute;left:40px;bottom:50px;z-index:5;display:flex;gap:18px}
.gc-hero__dot{padding:0;background:transparent;color:rgba(var(--gc-white-rgb),.45);
  font-family:var(--gc-font-heading);font-weight:700;font-size:16px;position:relative}
.gc-hero__dot:hover{background:transparent;color:var(--gc-white)}
.gc-hero__dot.is-active{color:var(--gc-global)}
.gc-hero__dot.is-active::after{content:"";position:absolute;left:0;right:0;bottom:-8px;
  height:2px;background:var(--gc-global)}

/* ==========================================================================
   SERVICES
   ========================================================================== */
.gc-services__head{display:grid;grid-template-columns:1.1fr 1fr;gap:50px;align-items:end;
  margin-bottom:60px}
.gc-services__intro{margin:0;padding-bottom:6px}
.gc-services__list{margin:0;padding:0;list-style:none;border-top:1px solid var(--gc-border)}
.gc-service{border-bottom:1px solid var(--gc-border)}
.gc-service__link{position:relative;display:grid;grid-template-columns:90px 1fr auto;
  align-items:center;gap:30px;padding:34px 10px;color:var(--gc-heading);overflow:hidden}
.gc-service__link::before{content:"";position:absolute;inset:0;z-index:0;
  background:var(--gc-secondary);transform:scaleY(0);transform-origin:bottom;
  transition:transform .45s var(--gc-ease)}
.gc-service__link:hover::before{transform:scaleY(1)}
.gc-service__link>*{position:relative;z-index:1}
.gc-service__num{font-family:var(--gc-font-heading);font-weight:600;font-size:16px;
  color:var(--gc-body);transition:color var(--gc-dur) var(--gc-ease)}
.gc-service__title{font-family:var(--gc-font-heading);font-weight:600;
  font-size:clamp(24px,2.6vw,38px);line-height:1.15;letter-spacing:-.6px;
  transition:color var(--gc-dur) var(--gc-ease),transform .45s var(--gc-ease)}
.gc-service__arrow{width:54px;height:54px;display:grid;place-items:center;border-radius:50%;
  background:var(--gc-light-bg);color:var(--gc-heading);font-size:18px;
  transition:background var(--gc-dur) var(--gc-ease),color var(--gc-dur) var(--gc-ease),transform var(--gc-dur) var(--gc-ease)}
.gc-service__link:hover .gc-service__num{color:rgba(var(--gc-white-rgb),.55)}
.gc-service__link:hover .gc-service__title{color:var(--gc-white);transform:translateX(12px)}
.gc-service__link:hover .gc-service__arrow{background:var(--gc-global);color:var(--gc-secondary);transform:rotate(-45deg)}
.gc-service__hover{position:absolute;top:50%;right:14%;z-index:1;width:200px;height:150px;
  border-radius:var(--gc-radius);overflow:hidden;pointer-events:none;
  opacity:0;transform:translateY(-50%) scale(.75) rotate(-6deg);
  transition:opacity .45s var(--gc-ease),transform .45s var(--gc-ease)}
.gc-service__hover img{width:100%;height:100%;object-fit:cover}
.gc-service__link:hover .gc-service__hover{opacity:1;transform:translateY(-50%) scale(1) rotate(0)}
.gc-services__foot{display:flex;align-items:center;justify-content:space-between;gap:30px;
  flex-wrap:wrap;margin-top:50px}
.gc-services__note{margin:0;font-size:18px}
.gc-services__note strong{color:var(--gc-heading);font-family:var(--gc-font-heading)}

/* ==========================================================================
   ABOUT
   ========================================================================== */
.gc-about__grid{display:grid;grid-template-columns:1fr 1.05fr;gap:80px;align-items:center}
.gc-about__media{position:relative;padding-bottom:40px}
.gc-about__img{display:block;width:100%;max-width:470px;border-radius:var(--gc-radius)}
.gc-about__img--2{position:absolute;right:0;bottom:0;width:46%;max-width:330px;
  border-radius:var(--gc-radius)}
.gc-about__badge{position:absolute;left:0;bottom:0;max-width:260px;padding:22px 26px;
  border-radius:var(--gc-radius);background:var(--gc-global);color:var(--gc-secondary);
  box-shadow:var(--gc-shadow)}
.gc-about__badge-title{display:block;font-family:var(--gc-font-heading);font-weight:700;
  font-size:19px;line-height:26px}
.gc-about__badge-desc{display:block;margin-top:6px;font-size:14px;
  color:rgba(var(--gc-secondary-rgb),.75)}
.gc-about__list{display:grid;grid-template-columns:repeat(2,1fr);gap:14px 30px;
  margin:34px 0 38px;padding:0;list-style:none}
.gc-about__list-item{display:flex;align-items:center;gap:12px;
  font-family:var(--gc-font-heading);font-weight:600;font-size:16px;color:var(--gc-heading)}
.gc-about__tick{width:20px;height:20px;flex:0 0 auto;display:grid;place-items:center;
  border-radius:50%;background:rgba(var(--gc-global-rgb),.18);position:relative}
.gc-about__tick::after{content:"";width:8px;height:4px;border-left:2px solid var(--gc-global);
  border-bottom:2px solid var(--gc-global);transform:rotate(-45deg) translate(1px,-1px)}
.gc-marquee--about{margin-top:90px;padding:26px 0;
  border-top:1px solid var(--gc-border);border-bottom:1px solid var(--gc-border)}
.gc-marquee--about .gc-marquee__item{color:var(--gc-heading);font-size:26px;
  letter-spacing:-.5px;text-transform:none}
.gc-marquee__star{width:16px;height:16px;background:var(--gc-global);flex:0 0 auto;
  clip-path:polygon(50% 0,61% 35%,98% 35%,68% 57%,79% 91%,50% 70%,21% 91%,32% 57%,2% 35%,39% 35%)}

/* ==========================================================================
   PROCESS
   ========================================================================== */
.gc-process__list{display:grid;grid-template-columns:repeat(4,1fr);gap:30px;
  margin:0;padding:0;list-style:none;counter-reset:gc-step}
.gc-process__item{position:relative;padding:44px 34px;border-radius:var(--gc-radius);
  background:var(--gc-white);text-align:center;
  transition:transform var(--gc-dur) var(--gc-ease),box-shadow var(--gc-dur) var(--gc-ease)}
.gc-process__item:hover{transform:translateY(-8px);box-shadow:var(--gc-shadow)}
.gc-process__item::after{content:"";position:absolute;top:56px;right:-19px;width:38px;height:2px;
  background:repeating-linear-gradient(90deg,var(--gc-global) 0 6px,transparent 6px 12px)}
.gc-process__item:last-child::after{display:none}
.gc-process__icon{display:grid;place-items:center;width:92px;height:92px;margin:0 auto 24px;
  border-radius:50%;background:rgba(var(--gc-global-rgb),.12);overflow:hidden}
.gc-process__icon img{width:52px;height:52px;object-fit:contain;mix-blend-mode:multiply}
.gc-process__num{position:absolute;top:26px;left:30px;font-family:var(--gc-font-heading);
  font-weight:700;font-size:44px;line-height:1;color:rgba(var(--gc-secondary-rgb),.07)}
.gc-process__title{margin:0 0 12px;font-size:22px;line-height:30px}
.gc-process__desc{margin:0;font-size:16px}

/* ==========================================================================
   STATISTICS
   ========================================================================== */
.gc-stats__grid{display:grid;grid-template-columns:1fr 1fr;gap:80px;align-items:center}
.gc-stats__chart{display:block;margin-top:34px;max-width:360px}
.gc-stats__list{display:grid;gap:30px;margin:0;padding:0;list-style:none}
.gc-stat{padding:38px 40px;border-radius:var(--gc-radius);background:var(--gc-light-bg);
  transition:background var(--gc-dur) var(--gc-ease)}
.gc-stat:hover{background:var(--gc-secondary)}
.gc-stat:hover .gc-stat__title,.gc-stat:hover .gc-stat__desc{color:var(--gc-white)}
.gc-stat__value{display:block;margin-bottom:10px;font-family:var(--gc-font-heading);
  font-weight:700;font-size:64px;line-height:1;color:var(--gc-global);letter-spacing:-2px}
.gc-stat__title{margin:0 0 10px;font-size:24px;line-height:32px;
  transition:color var(--gc-dur) var(--gc-ease)}
.gc-stat__desc{margin:0;font-size:16px;transition:color var(--gc-dur) var(--gc-ease)}

/* ==========================================================================
   CTA BAND
   ========================================================================== */
.gc-cta{padding:90px 0}
.gc-cta__inner{display:flex;align-items:center;justify-content:space-between;gap:50px;
  flex-wrap:wrap}
.gc-cta__body{max-width:760px}
.gc-cta__label{display:inline-block;margin-bottom:14px;font-family:var(--gc-font-heading);
  font-weight:600;font-size:12px;letter-spacing:1px;text-transform:uppercase;
  color:var(--gc-global)}
.gc-cta__title{margin:0 0 14px;font-size:var(--gc-h2-size);line-height:var(--gc-h2-lh);
  letter-spacing:-.96px;color:var(--gc-white)}
.gc-cta__desc{margin:0;color:rgba(var(--gc-white-rgb),.7)}

/* ==========================================================================
   RESPONSIVE
   ========================================================================== */
@media (max-width:1399px){
  .gc-hero__slide:first-child{min-height:720px}
  .gc-about__grid,.gc-stats__grid,.gc-testimonials__grid{gap:50px}
}
@media (max-width:1199px){
  .gc-news__grid{grid-template-columns:repeat(2,1fr)}
  .gc-news__item--lead{grid-column:span 2;grid-row:auto}
  .gc-process__list{grid-template-columns:repeat(2,1fr)}
  .gc-process__item:nth-child(2n)::after{display:none}
}
@media (max-width:1024px){
  .gc-hero__slide:first-child{min-height:600px}
  .gc-hero__inner{padding-top:60px;padding-bottom:110px}
  .gc-hero__nav{right:20px;bottom:30px}
  .gc-hero__dots{left:20px;bottom:38px}
  .gc-about__grid,.gc-stats__grid,.gc-testimonials__grid{grid-template-columns:1fr}
  .gc-services__head{grid-template-columns:1fr;gap:24px;align-items:start}
  .gc-service__link{grid-template-columns:60px 1fr auto;gap:18px;padding:26px 6px}
  .gc-service__hover{display:none}
  .gc-testimonial{padding:38px 34px}
  .gc-stat__value{font-size:52px}
}
@media (max-width:767px){
  .gc-hero__slide:first-child{min-height:520px}
  .gc-hero__title{letter-spacing:-1px}
  .gc-hero__features{gap:12px 24px;margin-top:32px}
  .gc-hero__feature{font-size:14px}
  .gc-hero__arrow{width:44px;height:44px}
  .gc-about__list{grid-template-columns:1fr}
  .gc-about__img--2{position:static;width:100%;max-width:100%;margin-top:16px}
  .gc-about__badge{position:static;max-width:100%;margin-top:18px}
  .gc-about__media{padding-bottom:0}
  .gc-marquee--about{margin-top:56px}
  .gc-marquee--about .gc-marquee__item{font-size:20px}
  .gc-process__list{grid-template-columns:1fr}
  .gc-process__item::after{display:none}
  .gc-news__grid{grid-template-columns:1fr}
  .gc-news__item--lead{grid-column:auto}
  .gc-news__item--lead .gc-news__title{font-size:24px;line-height:32px}
  .gc-testimonial__quote{font-size:70px;top:14px;right:24px}
  .gc-testimonial__text{font-size:18px;line-height:29px}
  .gc-clients__list{gap:40px}
  .gc-cta{padding:60px 0}
}

/* ==========================================================================
   Reference-exact hero metrics
   Slide 847px tall; title 80/80/700 ls -1.6px; label Be Vietnam Pro 16px grey;
   white button radius 5px; slide numbers stacked on the right edge.
   ========================================================================== */
.gc-hero__slide:first-child{min-height:847px}
.gc-hero__inner{padding-left:37px;padding-right:37px;max-width:100%}
.gc-hero__label{font-family:var(--gc-font-body);font-weight:400;font-size:16px;
  line-height:30px;letter-spacing:0;text-transform:none;color:var(--gc-body)}
.gc-hero__title{max-width:720px;font-weight:700;font-size:80px;line-height:80px;
  letter-spacing:-1.6px;margin-bottom:40px}
.gc-hero__accent{font-style:normal}
.gc-hero__btn{background:var(--gc-white);color:var(--gc-secondary);
  padding:13px 15px 14px 25px;min-height:60px;border-radius:5px;line-height:33px}
.gc-hero__btn:hover{background:var(--gc-global);color:var(--gc-secondary)}
.gc-hero__btn .gc-icon{width:32px;height:32px;padding:8px;border-radius:50%;
  background:var(--gc-global);color:var(--gc-secondary);box-sizing:border-box}
.gc-hero__btn:hover .gc-icon{background:var(--gc-secondary);color:var(--gc-global)}

/* Slide numbers: vertical stack, right edge */
.gc-hero__dots{left:auto;right:40px;top:50%;bottom:auto;transform:translateY(-50%);
  flex-direction:column;gap:22px;align-items:flex-end}
.gc-hero__dot.is-active::after{left:auto;right:0;bottom:-6px;width:22px}
.gc-hero__nav{right:40px;bottom:60px}

@media (max-width:1439px){
  .gc-hero__title{font-size:68px;line-height:70px}
}
@media (max-width:1199px){
  .gc-hero__slide:first-child{min-height:700px}
  .gc-hero__inner{padding-top:90px}
  .gc-hero__title{font-size:56px;line-height:60px}
}
@media (max-width:767px){
  .gc-hero__slide:first-child{min-height:560px}
  .gc-hero__inner{padding-left:15px;padding-right:15px;padding-top:60px}
  .gc-hero__title{font-size:36px;line-height:42px;letter-spacing:-.8px;margin-bottom:28px}
  .gc-hero__dots{right:14px;gap:14px}
  .gc-hero__nav{display:none}
}

/* ==========================================================================
   Services - reference uses a Swiper of 440x540 image cards with the
   title overlaid at the bottom, not a plain list.
   ========================================================================== */
.gc-services__carousel{position:relative;margin-top:10px}
.gc-services__viewport{overflow:hidden}
.gc-services__track{display:flex;gap:30px;transition:transform .6s var(--gc-ease);
  will-change:transform;margin:0;padding:0;list-style:none}
.gc-service{flex:0 0 calc((100% - 60px)/3);min-width:0}
.gc-service__link{position:relative;display:block;height:537px;padding:0;
  border-radius:5px;overflow:hidden;color:var(--gc-white)}
.gc-service__link::before{display:none}
.gc-service__media{position:absolute;inset:0}
.gc-service__media img{width:100%;height:100%;object-fit:cover;
  transition:transform .8s var(--gc-ease)}
.gc-service__link:hover .gc-service__media img{transform:scale(1.07)}
.gc-service__shade{position:absolute;inset:0;
  background:linear-gradient(180deg,rgba(var(--gc-secondary-rgb),0) 35%,rgba(var(--gc-secondary-rgb),.85) 100%)}
.gc-service__icon{position:absolute;top:40px;left:40px;width:56px;height:56px;
  color:var(--gc-global)}
.gc-service__icon img,.gc-service__icon svg{width:100%;height:100%;object-fit:contain}
.gc-service__body{position:absolute;left:40px;right:40px;bottom:44px;
  display:flex;align-items:center;justify-content:space-between;gap:16px}
.gc-service__title{font-family:var(--gc-font-heading);font-weight:600;font-size:24px;
  line-height:30px;letter-spacing:0;color:var(--gc-white);transform:none}
.gc-service__link:hover .gc-service__title{color:var(--gc-white);transform:none}
.gc-service__num{position:absolute;top:40px;right:40px;font-size:14px;
  color:rgba(var(--gc-white-rgb),.6)}
.gc-service__arrow{width:44px;height:44px;flex:0 0 auto;background:var(--gc-global);
  color:var(--gc-secondary);opacity:0;transform:translateX(-10px);
  transition:opacity var(--gc-dur) var(--gc-ease),transform var(--gc-dur) var(--gc-ease)}
.gc-service__link:hover .gc-service__arrow{opacity:1;transform:translateX(0);
  background:var(--gc-global);color:var(--gc-secondary)}
.gc-service__hover{display:none}
.gc-services__nav{display:flex;gap:12px;margin-top:40px}

@media (max-width:1199px){ .gc-service{flex:0 0 calc((100% - 30px)/2)} }
@media (max-width:1024px){ .gc-service{flex:0 0 calc((100% - 30px)/2)}
  .gc-service__link{height:460px} }
@media (max-width:767px){ .gc-service{flex:0 0 100%}
  .gc-service__link{height:420px}
  .gc-service__body,.gc-service__icon{left:26px;right:26px}
  .gc-service__icon{top:26px}
  .gc-service__num{top:26px;right:26px} }

/* Testimonial body copy matches the reference: Be Vietnam Pro 20/35 regular */
.gc-testimonial__text{font-family:var(--gc-font-body);font-weight:400;font-size:20px;
  line-height:35px;color:var(--gc-secondary)}

/* ==========================================================================
   Hero - measured against the reference at 1440px.
   Offsets from the top of the hero: label 265, title 310, button 585,
   features 707. Label is PJS 14/600 uppercase ls 1.12px white with a rule.
   ========================================================================== */
.gc-hero__inner{padding-top:213px;padding-bottom:100px}

.gc-hero__label{display:inline-block;margin:0 0 8px;padding-bottom:0;
  font-family:var(--gc-font-heading);font-weight:600;font-size:14px;line-height:30px;
  letter-spacing:1.12px;text-transform:uppercase;color:var(--gc-white);
  border-bottom:1px solid rgba(var(--gc-white-rgb),.45)}
.gc-hero__title{margin:0 0 42px}
.gc-hero__btn{padding:13px 15px 13px 25px;gap:20px}
.gc-hero__features{margin-top:62px;gap:16px 40px}
.gc-hero__feature{font-family:var(--gc-font-heading);font-weight:500;font-size:18px;
  line-height:28px}

/* Slide numbers: plain white, the active one sits in a soft disc */
.gc-hero__dot{width:44px;height:44px;display:grid;place-items:center;border-radius:50%;
  color:var(--gc-white);font-weight:400;font-size:16px;
  transition:background var(--gc-dur) var(--gc-ease)}
.gc-hero__dot.is-active{background:rgba(var(--gc-white-rgb),.18);color:var(--gc-white)}
.gc-hero__dot.is-active::after{display:none}
.gc-hero__dot:hover{background:rgba(var(--gc-white-rgb),.1)}
.gc-hero__dots{gap:8px}

@media (max-width:1199px){
  .gc-hero__inner{padding-top:180px;padding-bottom:70px}
  .gc-hero__features{margin-top:40px}
}
@media (max-width:767px){
  .gc-hero__inner{padding-top:110px;padding-bottom:60px}
  .gc-hero__label{font-size:12px;letter-spacing:.9px}
  .gc-hero__features{margin-top:30px}
  .gc-hero__feature{font-size:15px}
}

/* ==========================================================================
   Services - measured against the reference at 1440px.
   Section pad 115/90. Heading left, description right at x687 w488.
   Cards 438x537, 30px gutter, title inset 56px, max 147px wide.
   Footer is one centred line: gold pill + running copy + plain link.
   ========================================================================== */
.gc-services{padding-top:115px;padding-bottom:90px}
.gc-services__head{grid-template-columns:auto 488px;justify-content:space-between;
  align-items:start;gap:40px;margin-bottom:51px}
.gc-services__intro{margin:0;padding-top:60px;font-size:17px;line-height:27.2px;
  color:var(--gc-body)}
.gc-services__head .gc-heading{margin-bottom:0;max-width:660px}
.gc-services__head .gc-heading__title{font-size:48px;line-height:53px;letter-spacing:-.96px}

.gc-services__track{gap:30px}
.gc-service__link{height:537px;border-radius:0}
.gc-service__body{left:56px;right:56px;bottom:44px;display:block}
.gc-service__title{max-width:150px;font-size:24px;line-height:30px}
.gc-service__num,.gc-service__icon{display:none}
.gc-service__arrow{position:absolute;right:0;bottom:6px;opacity:0}
.gc-service__link:hover .gc-service__arrow{opacity:1}

.gc-services__foot{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;
  gap:8px;margin:0;padding-top:40px;font-family:var(--gc-font-heading);font-weight:500;
  font-size:16px;line-height:30px;color:var(--gc-heading);text-align:center}
.gc-services__pill{display:inline-block;padding:0 16px 4px;border-radius:50px;
  background:var(--gc-global);color:var(--gc-white);font-weight:700;font-size:16px;
  line-height:30px}
.gc-services__link{font-family:var(--gc-font-heading);font-weight:500;font-size:16px;
  color:var(--gc-secondary);text-decoration:underline;text-underline-offset:4px}
.gc-services__link:hover{color:var(--gc-global)}

@media (max-width:1199px){
  .gc-services{padding-top:80px;padding-bottom:70px}
  .gc-services__head{grid-template-columns:1fr;gap:20px;margin-bottom:40px}
  .gc-services__intro{padding-top:0}
}
@media (max-width:767px){
  .gc-service__body{left:26px;right:26px;bottom:30px}
  .gc-services__foot{gap:6px;font-size:15px}
}

/* Services offset corrections */
.gc-services{padding-bottom:76px}
.gc-services__head{grid-template-columns:minmax(0,672px) 488px;justify-content:start;gap:0}
.gc-service__title{margin:0}
.gc-service__body{bottom:30px}
.gc-services__foot{margin-top:34px}

/* ==========================================================================
   About - measured against the reference at 1440px.
   Light ground, section pad 115. Columns 431 | 458 | 214 at x15/555/1176.
   Images overlap: 431x432 at y+0, 327x302 offset 138px right and 317px down.
   Bottom feature row starts at the middle column.
   ========================================================================== */
.gc-about{padding-top:115px;padding-bottom:100px}
.gc-about__grid{display:grid;grid-template-columns:431px minmax(0,458px) 214px;
  gap:0 109px;align-items:start}
.gc-about__grid>.gc-about__features{margin-left:54px}

.gc-about__media{position:relative;padding-bottom:0;min-height:619px}
.gc-about__img{display:block;border-radius:5px;max-width:none}
.gc-about__img--1{width:431px;height:432px;object-fit:cover}
.gc-about__img--2{position:absolute;left:138px;top:317px;width:327px;height:302px;
  object-fit:cover}

.gc-about__body{padding-top:65px}
.gc-about__body .gc-heading{margin-bottom:0}
.gc-about__body .gc-heading__title{font-size:48px;line-height:53px;letter-spacing:-.96px}
.gc-about__desc{margin:24px 0 0;max-width:458px;font-size:17px;line-height:27.2px}
.gc-about__btn{margin-top:36px}

.gc-about__features{display:grid;gap:71px;margin:129px 0 0;padding:0;list-style:none}
.gc-about__features .gc-ihbox__title{max-width:214px}

.gc-about__row{display:flex;flex-wrap:wrap;gap:40px 70px;margin:60px 0 0 540px;
  padding:0;list-style:none}

/* Marquee band */
.gc-marquee-band{padding:33px 0;border-top:1px solid var(--gc-border);
  border-bottom:1px solid var(--gc-border);overflow:hidden}
.gc-marquee-band .gc-marquee__item{font-family:var(--gc-font-heading);font-weight:600;
  font-size:26px;line-height:33px;letter-spacing:-.26px;color:var(--gc-secondary);
  text-transform:none}
.gc-marquee-band .gc-marquee__track{gap:34px}

@media (max-width:1199px){
  .gc-about__grid{grid-template-columns:1fr 1fr;gap:40px}
  .gc-about__grid>.gc-about__features{grid-column:1/-1;margin-left:0;margin-top:20px;
    grid-template-columns:repeat(3,1fr);display:grid;gap:30px}
  .gc-about__row{margin-left:0}
  .gc-about__body{padding-top:0}
}
@media (max-width:767px){
  .gc-about{padding-top:60px;padding-bottom:60px}
  .gc-about__grid{grid-template-columns:1fr}
  .gc-about__media{min-height:0}
  .gc-about__img--1{width:100%;height:auto}
  .gc-about__img--2{position:static;width:70%;height:auto;margin:-40px 0 0 auto}
  .gc-about__grid>.gc-about__features{grid-template-columns:1fr;gap:22px}
  .gc-about__row{gap:22px}
  .gc-marquee-band .gc-marquee__item{font-size:20px}
}

/* About offset corrections (measured pass 2) */
.gc-about{padding-bottom:99px}
.gc-about__media{grid-row:1 / span 2}
.gc-about__desc{margin-top:39px}
.gc-about__features{margin-top:72px;gap:15px}
.gc-about__features .gc-ihbox{flex-direction:column;align-items:flex-start;gap:16px}
.gc-about__features .gc-ihbox__icon{width:40px;height:40px;font-size:18px}
.gc-about__features .gc-ihbox__title{max-width:214px;width:214px}
.gc-about__row{grid-column:2 / -1;margin:103px 0 0;gap:0 70px}
.gc-marquee-band .gc-marquee{padding:0}

@media (max-width:1199px){
  .gc-about__media{grid-row:auto}
  .gc-about__row{grid-column:1/-1;margin-top:40px}
  .gc-about__features .gc-ihbox{flex-direction:row;align-items:center}
  .gc-about__features .gc-ihbox__title{width:auto}
}

/* Bottom feature row: icon gap 6px and 67px between items keeps all three
   on one line at the reference's x605 / x915 / x1155. */
.gc-ihbox--inline{gap:6px}
.gc-about__row{margin-top:94px;gap:0 67px;flex-wrap:nowrap}
@media (max-width:1199px){ .gc-about__row{flex-wrap:wrap;gap:22px 40px} }

/* ==========================================================================
   Working Process - measured against the reference at 1440px.
   Centred heading, four plain columns (no card, no number), 218px round
   image, 24/30 title, 16/26 copy in a 276px column.
   ========================================================================== */
.gc-process{padding-top:120px;padding-bottom:185px}
.gc-process .gc-heading{margin-bottom:107px}
.gc-process .gc-heading__title{font-size:48px;line-height:53px;letter-spacing:-.96px}
.gc-process__list{grid-template-columns:repeat(4,276px);justify-content:center;
  gap:80px;padding:0}
.gc-process__item{padding:0;background:none;border-radius:0;text-align:center;
  width:276px}
.gc-process__item:hover{transform:none;box-shadow:none}
.gc-process__item::after{display:none}
.gc-process__num{display:none}
.gc-process__icon{display:block;width:218px;height:218px;margin:0 auto 55px;
  border-radius:50%;overflow:hidden;background:none}
.gc-process__icon img{width:218px;height:218px;object-fit:cover;mix-blend-mode:normal;
  border-radius:50%}
.gc-process__title{margin:0 0 15px;font-size:24px;line-height:30px;font-weight:600}
.gc-process__desc{margin:0;padding:0 25px;font-size:16px;line-height:26px}

@media (max-width:1399px){
  .gc-process__list{grid-template-columns:repeat(4,1fr);gap:30px}
  .gc-process__item{width:auto}
}
@media (max-width:1199px){
  .gc-process{padding-top:80px;padding-bottom:90px}
  .gc-process .gc-heading{margin-bottom:60px}
  .gc-process__list{grid-template-columns:repeat(2,1fr);gap:50px 30px}
}
@media (max-width:767px){
  .gc-process__list{grid-template-columns:1fr}
  .gc-process__icon{width:160px;height:160px;margin-bottom:28px}
  .gc-process__icon img{width:160px;height:160px}
}

/* ==========================================================================
   Statistics - dark 412px band. Heading left, two 308px counter columns at
   x699 / x1102. Numbers 60/50 700 ls -1.2px; titles 20/30 600; copy 17/27.2
   at 70% white. Chip is gold here.
   ========================================================================== */
.gc-stats{padding:110px 0;background:var(--gc-secondary)}
.gc-stats__grid{display:grid;grid-template-columns:minmax(0,640px) 308px 308px;
  gap:0 95px;align-items:start}
.gc-stats__intro .gc-heading{margin-bottom:0}
.gc-stats__intro .gc-heading__title{font-size:48px;line-height:53px;letter-spacing:-.96px;
  color:var(--gc-white)}
.gc-heading--gold-chip .gc-heading__subtitle{background:var(--gc-global);
  color:var(--gc-white)}
.gc-stats__list{display:contents;margin:0;padding:0;list-style:none}
.gc-stat{padding:0;background:none;border-radius:0;width:308px}
.gc-stat:hover{background:none}
.gc-stat__value{margin:0 0 27px;font-family:var(--gc-font-heading);font-weight:700;
  font-size:60px;line-height:50px;letter-spacing:-1.2px;color:var(--gc-white)}
.gc-stat__suffix{font-size:60px;font-weight:700}
.gc-stat__title{margin:0 0 13px;font-size:20px;line-height:30px;font-weight:600;
  color:var(--gc-white)}
.gc-stat__desc{margin:0;font-size:17px;line-height:27.2px;
  color:rgba(var(--gc-white-rgb),.7)}
.gc-stats__chart{display:none}

/* ==========================================================================
   Business CTA - chart, 64/70 headline, white button, centred closing line.
   ========================================================================== */
.gc-cta{padding:62px 0 60px;background:var(--gc-secondary)}
.gc-cta__chart{display:block;width:334px;height:235px;object-fit:contain;margin:0 0 50px}
.gc-cta__main{display:flex;align-items:flex-end;justify-content:space-between;
  gap:40px;flex-wrap:wrap}
.gc-cta__title{margin:0;max-width:880px;font-family:var(--gc-font-heading);
  font-weight:700;font-size:64px;line-height:70px;letter-spacing:-1.28px;
  color:var(--gc-white)}
.gc-cta__btn{flex:0 0 auto}
.gc-cta__foot{margin:100px 0 0;text-align:center;font-family:var(--gc-font-heading);
  font-weight:500;font-size:18px;line-height:30px;color:var(--gc-white)}
.gc-cta__link{color:var(--gc-white);text-decoration:underline;text-underline-offset:4px}
.gc-cta__link:hover{color:var(--gc-global)}
.gc-cta__label,.gc-cta__desc,.gc-cta__inner{display:none}

@media (max-width:1199px){
  .gc-stats{padding:80px 0}
  .gc-stats__grid{grid-template-columns:1fr 1fr;gap:40px}
  .gc-stats__intro{grid-column:1/-1}
  .gc-stat{width:auto}
  .gc-cta__title{font-size:44px;line-height:52px}
  .gc-cta__foot{margin-top:60px}
}
@media (max-width:767px){
  .gc-stats__grid{grid-template-columns:1fr}
  .gc-cta{padding:50px 0}
  .gc-cta__chart{width:100%;height:auto;margin-bottom:34px}
  .gc-cta__title{font-size:32px;line-height:40px;letter-spacing:-.6px}
  .gc-cta__main{align-items:flex-start}
  .gc-cta__foot{margin-top:40px;font-size:16px}
}

/* ==========================================================================
   Fresh News - measured against the reference at 1440px.
   Two 445x410 feature cards (content panel inset 51px, overlapping 34px) and
   a right column of three 150x115 compact items 181px apart.
   ========================================================================== */
.gc-news{padding-top:110px;padding-bottom:163px}
.gc-news__head{display:flex;align-items:center;justify-content:space-between;
  gap:40px;flex-wrap:wrap;margin-bottom:96px}
.gc-news__head .gc-heading{margin-bottom:0;max-width:820px}
.gc-news__head .gc-heading__title{font-size:48px;line-height:53px;letter-spacing:-.96px}

.gc-news__layout{display:grid;grid-template-columns:920px minmax(0,1fr);gap:30px}
.gc-news__features{display:grid;grid-template-columns:repeat(2,445px);gap:30px}

.gc-news__feature{position:relative}
.gc-news__media{display:block;border-radius:5px;overflow:hidden}
.gc-news__media img{display:block;width:445px;height:410px;object-fit:cover;
  transition:transform .7s var(--gc-ease)}
.gc-news__feature:hover .gc-news__media img{transform:scale(1.05)}
.gc-news__cat{position:absolute;top:20px;right:20px;padding:1px 15px;border-radius:50px;
  background:var(--gc-global);color:var(--gc-white);font-family:var(--gc-font-body);
  font-weight:400;font-size:13px;line-height:28px;letter-spacing:.78px}
.gc-news__cat:hover{background:var(--gc-secondary);color:var(--gc-white)}
.gc-news__panel{position:relative;margin:-34px 0 0 51px;padding:22px 26px 26px 0;
  background:var(--gc-white);border-radius:5px 0 0 0;max-width:394px}

.gc-news__meta{display:flex;align-items:center;gap:20px;margin-bottom:8px;
  font-family:var(--gc-font-body);font-weight:400;font-size:13px;line-height:28px;
  letter-spacing:.78px;color:var(--gc-body)}
.gc-news__meta a{color:var(--gc-body)}
.gc-news__meta a:hover{color:var(--gc-global)}
.gc-news__title{margin:0;font-family:var(--gc-font-heading);font-weight:600;
  font-size:22px;line-height:28px;letter-spacing:normal}
.gc-news__title a{color:var(--gc-secondary)}
.gc-news__title a:hover{color:var(--gc-global)}
.gc-news__title--sm{font-size:18px;line-height:28px}

.gc-news__list{display:grid;gap:66px;align-content:start}
.gc-news__item{display:grid;grid-template-columns:150px minmax(0,1fr);gap:27px;
  align-items:start}
.gc-news__thumb{display:block;border-radius:5px;overflow:hidden}
.gc-news__thumb img{display:block;width:150px;height:115px;object-fit:cover;
  transition:transform .7s var(--gc-ease)}
.gc-news__item:hover .gc-news__thumb img{transform:scale(1.06)}
.gc-news__body{padding-top:6px}

@media (max-width:1399px){
  .gc-news__layout{grid-template-columns:minmax(0,2fr) minmax(0,1fr)}
  .gc-news__features{grid-template-columns:repeat(2,minmax(0,1fr))}
  .gc-news__media img{width:100%}
}
@media (max-width:1024px){
  .gc-news{padding-top:80px;padding-bottom:80px}
  .gc-news__head{margin-bottom:50px}
  .gc-news__layout{grid-template-columns:1fr;gap:50px}
  .gc-news__list{gap:34px}
}
@media (max-width:767px){
  .gc-news{padding-bottom:60px}
  .gc-news__features{grid-template-columns:1fr;gap:34px}
  .gc-news__media img{height:auto}
  .gc-news__panel{margin-left:24px;max-width:none;padding-right:16px}
  .gc-news__item{grid-template-columns:110px minmax(0,1fr);gap:16px}
  .gc-news__thumb img{width:110px;height:90px}
}

/* ==========================================================================
   Testimonials + clients - measured against the reference at 1440px.
   One light section: 417x658 portrait at x36, quote column at x543 (787 wide),
   then the client marquee with its heading at x86 and logos from x405.
   ========================================================================== */
.gc-testimonials{padding-top:110px;padding-bottom:56px}
.gc-testimonials__grid{display:grid;grid-template-columns:417px minmax(0,787px);
  gap:0 90px;align-items:start;padding-left:21px}
.gc-testimonials__img{display:block;width:417px;height:658px;object-fit:contain;
  object-position:bottom}
.gc-testimonials__slider{padding-top:110px}
.gc-testimonials__slider .gc-heading{margin-bottom:45px}
.gc-testimonials__slider .gc-heading__title{font-size:48px;line-height:53px;
  letter-spacing:-.96px}

.gc-testimonial{margin:0;padding:0;background:none;border-radius:0}
.gc-testimonial__quote{display:none}
.gc-testimonial__text{margin:0 0 76px;padding:0;border:0;background:none;
  font-family:var(--gc-font-body);font-weight:400;font-size:20px;line-height:35px;
  color:var(--gc-secondary)}
.gc-testimonial__text p{margin:0}
.gc-testimonial__author{display:flex;align-items:center;gap:20px}
.gc-testimonial__avatar img{width:80px;height:80px;border-radius:50%;object-fit:cover;
  display:block}
.gc-testimonial__name{display:block;font-family:var(--gc-font-heading);font-weight:600;
  font-size:18px;line-height:30px;color:var(--gc-heading)}
.gc-testimonial__role{display:block;font-family:var(--gc-font-body);font-weight:400;
  font-size:13px;line-height:22px;letter-spacing:.78px;color:var(--gc-body)}
.gc-testimonials .gc-carousel__nav{display:none}

/* Client marquee */
.gc-clients{display:grid;grid-template-columns:242px minmax(0,1fr);gap:0 77px;
  align-items:center;margin-top:-3px;padding-left:71px}
.gc-clients__title{margin:0;font-family:var(--gc-font-heading);font-weight:600;
  font-size:18px;line-height:26px;color:var(--gc-heading)}
.gc-clients__slider{overflow:hidden}
.gc-clients__list{display:flex;align-items:center;gap:74px;margin:0;padding:0;
  list-style:none;animation:gcMarquee 34s linear infinite}
.gc-clients__slider:hover .gc-clients__list{animation-play-state:paused}
.gc-client__link{position:relative;display:grid;place-items:center;width:120px;height:40px}
.gc-client__logo{width:120px;height:40px;object-fit:contain;opacity:1;
  transition:opacity var(--gc-dur) var(--gc-ease)}
.gc-client__logo--hover{position:absolute;inset:0;opacity:0}
.gc-client__link:hover .gc-client__logo{opacity:0}
.gc-client__link:hover .gc-client__logo--hover{opacity:1}

@media (max-width:1399px){
  .gc-testimonials__grid{grid-template-columns:360px minmax(0,1fr);gap:0 50px;
    padding-left:0}
  .gc-testimonials__img{width:360px;height:auto}
  .gc-clients{padding-left:0}
}
@media (max-width:1024px){
  .gc-testimonials{padding-top:80px}
  .gc-testimonials__grid{grid-template-columns:1fr}
  .gc-testimonials__img{display:none}
  .gc-testimonials__slider{padding-top:0}
  .gc-clients{grid-template-columns:1fr;gap:26px;margin-top:50px}
}
@media (max-width:767px){
  .gc-testimonial__text{font-size:18px;line-height:30px;margin-bottom:40px}
  .gc-clients__list{gap:44px}
}

/* ==========================================================================
   Carousel core (shared by the services and testimonial sliders)
   ========================================================================== */
.gc-carousel__viewport{overflow:hidden}
.gc-carousel__track{display:flex;transition:transform .6s var(--gc-ease);
  will-change:transform;margin:0;padding:0;list-style:none}
.gc-carousel__slide{flex:0 0 100%;min-width:0}
.gc-carousel__nav{display:flex;gap:12px;margin-top:30px}
.gc-carousel__arrow{width:52px;height:52px;padding:0;display:grid;place-items:center;
  border-radius:50%;background:var(--gc-white);color:var(--gc-heading);
  box-shadow:0 6px 20px rgba(var(--gc-secondary-rgb),.08)}
.gc-carousel__arrow:hover{background:var(--gc-global);color:var(--gc-secondary)}
.gc-carousel__arrow:first-child .gc-icon{transform:rotate(180deg)}
.gc-services__track{display:flex}
.gc-services__track .gc-carousel__slide{flex:0 0 calc((100% - 60px)/3)}

/* Offset corrections, measured pass */
.gc-testimonials__slider .gc-heading{margin-bottom:60px}
.gc-news__head{margin-bottom:60px}
.gc-news__panel{padding-top:0}
.gc-news{padding-bottom:137px}

@media (max-width:1199px){ .gc-services__track .gc-carousel__slide{flex:0 0 calc((100% - 30px)/2)} }
@media (max-width:767px){ .gc-services__track .gc-carousel__slide{flex:0 0 100%} }

/* Final section-height reconciliation against the reference */
.gc-stats{padding:105px 0}
.gc-cta{padding:62px 0 35px}
.gc-testimonials{padding-bottom:84px}

/* ==========================================================================
   Pass 3 - remaining visual gaps found in the full-page comparison
   ========================================================================== */

/* Hero button: gold disc, dark glyph */
.gc-hero__btn{padding:13px 60px 13px 25px}
.gc-hero__btn::after{background:var(--gc-global)}
.gc-hero__btn .gc-icon{background-color:var(--gc-secondary)}
.gc-hero__btn:hover::after{background:var(--gc-secondary)}
.gc-hero__btn:hover .gc-icon{background-color:var(--gc-global)}

/* Services: description and arrows share the right column */
.gc-services__aside{display:flex;flex-direction:column;gap:26px;align-items:flex-start}
.gc-services__nav{margin-top:0}
.gc-services .gc-carousel__arrow{width:46px;height:46px;background:var(--gc-white);
  border:1px solid var(--gc-border);box-shadow:none}
.gc-services .gc-carousel__arrow:hover{background:var(--gc-global);
  border-color:var(--gc-global);color:var(--gc-secondary)}

/* About: side features and the bottom row are white cards in the reference */
.gc-about__features .gc-ihbox{flex-direction:row;align-items:center;gap:16px;
  padding:18px 20px;border-radius:5px;background:var(--gc-white)}
.gc-about__features .gc-ihbox__icon{width:44px;height:44px;border-radius:5px;
  background:var(--gc-light-bg);color:var(--gc-global);font-size:20px}
.gc-about__features .gc-ihbox__title{width:auto;max-width:150px;font-size:16px;
  line-height:22px}
.gc-about__features{gap:11px;margin-top:64px}
.gc-about__row{padding:22px 30px;border-radius:5px;background:var(--gc-white)}
.gc-about__row .gc-ihbox__icon{width:24px;height:24px;background:transparent;
  color:var(--gc-global);font-size:16px}

/* Marquee band sits on the accent colour */
.gc-marquee-band{background:var(--gc-global);border:0;padding:34px 0}
.gc-marquee-band .gc-marquee__item{color:var(--gc-secondary)}
.gc-marquee-band .gc-marquee__star{background:var(--gc-white)}

/* Process: white cards with a hairline border and a corner badge */
.gc-process__item{position:relative;padding:50px 30px 44px;background:var(--gc-white);
  border:1px solid var(--gc-border);border-radius:5px}
.gc-process__item::after{display:block;content:"";position:absolute;top:26px;right:26px;
  width:34px;height:34px;border-radius:50%;background:var(--gc-light-bg);
  transition:background var(--gc-dur) var(--gc-ease)}
.gc-process__item:hover::after{background:var(--gc-global)}
.gc-process__item:hover{transform:translateY(-6px);box-shadow:var(--gc-shadow)}
.gc-process__icon{width:130px;height:130px;margin-bottom:34px}
.gc-process__icon img{width:130px;height:130px}
.gc-process__list{gap:30px;grid-template-columns:repeat(4,1fr)}
.gc-process__item{width:auto}

/* Statistics: gold rising-arrow before each number */
.gc-stat__value{display:flex;align-items:center;gap:0}
.gc-stat__value::before{content:"";width:26px;height:26px;flex:0 0 auto;margin-right:12px;
  background-color:var(--gc-global);
  -webkit-mask:var(--gc-arrow-up) center/contain no-repeat;
  mask:var(--gc-arrow-up) center/contain no-repeat}
:root{--gc-arrow-up:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%23000' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round' d='M7 17 17 7M9 7h8v8'/%3E%3C/svg%3E")}

/* CTA: photographic ground with the reference's bottom-weighted scrim */
.gc-cta{position:relative;background:var(--gc-secondary) top center/cover no-repeat;
  isolation:isolate;padding:62px 0 0}
.gc-cta__overlay{position:absolute;inset:0;z-index:-1;
  background:linear-gradient(180deg,rgba(0,0,0,0) 35%,rgba(0,0,0,.5) 70%)}
.gc-cta__foot{margin:100px 0 0;padding:26px 0 30px}

/* Testimonials: white card, gold quote glyph, rating row */
.gc-testimonial{padding:50px 54px 44px;background:var(--gc-white);border-radius:5px}
.gc-testimonial__quote{display:block;position:absolute;top:40px;right:48px;width:52px;
  height:42px;background-color:rgba(var(--gc-global-rgb),.9);
  -webkit-mask:var(--gc-quote) center/contain no-repeat;
  mask:var(--gc-quote) center/contain no-repeat}
:root{--gc-quote:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 48 38'%3E%3Cpath d='M0 38V21C0 9.4 7.2 1.3 19 0l1.6 6.4C13.9 8 10 12 10 17h8v21zm28 0V21C28 9.4 35.2 1.3 47 0l1.6 6.4C41.9 8 38 12 38 17h8v21z'/%3E%3C/svg%3E")}
.gc-testimonial{position:relative}
.gc-testimonial__author{flex-wrap:wrap}
.gc-testimonial__rating{display:flex;gap:4px;margin-left:auto}
.gc-testimonials .gc-carousel__nav{display:flex;justify-content:flex-end;margin-top:26px}
.gc-testimonials .gc-carousel__arrow{width:46px;height:46px}

/* Clients: heading sits in a white card, logos read as wordmarks */
.gc-clients{padding:26px 30px;border-radius:5px;background:var(--gc-white);
  margin-top:40px;padding-left:30px;gap:0 60px}
.gc-clients__title{font-size:17px;line-height:24px}
.gc-client__link{width:150px;height:44px}
.gc-client__logo{width:150px;height:44px;filter:none}
.gc-clients__list{gap:60px}

@media (max-width:1024px){
  .gc-process__list{grid-template-columns:repeat(2,1fr)}
  .gc-about__features{margin-top:20px}
}
@media (max-width:767px){
  .gc-process__list{grid-template-columns:1fr}
  .gc-testimonial{padding:34px 26px 30px}
  .gc-testimonial__quote{width:38px;height:30px;top:26px;right:24px}
  .gc-clients{padding:22px}
}

/* About feature items: the measurements show the icon sits above a full-width
   214px title with no card, and the bottom row is plain. */
.gc-about__features .gc-ihbox{flex-direction:column;align-items:flex-start;gap:16px;
  padding:0;background:none;border-radius:0}
.gc-about__features .gc-ihbox__icon{width:40px;height:40px;border-radius:50%;
  background:var(--gc-global);color:var(--gc-white);font-size:18px}
.gc-about__features .gc-ihbox__title{width:214px;max-width:214px;font-size:18px;
  line-height:22px}
.gc-about__features{gap:15px;margin-top:72px}
.gc-about__row{padding:0;background:none;border-radius:0}
.gc-about__row .gc-ihbox__icon{width:44px;height:44px;background:var(--gc-global);
  color:var(--gc-white);font-size:20px}

@media (max-width:1199px){
  .gc-about__features .gc-ihbox{flex-direction:row;align-items:center}
  .gc-about__features .gc-ihbox__title{width:auto;max-width:none}
}

/* ==========================================================================
   Pass 4 - height reconciliation after the pass-3 component changes
   ========================================================================== */

/* Services head is three columns: heading, description, arrows on the right */
.gc-services__head{grid-template-columns:minmax(0,672px) 488px auto;
  justify-content:start;gap:0;align-items:end;margin-bottom:47px}
.gc-services__aside{display:contents}
.gc-services__intro{grid-column:2;padding-top:60px;align-self:start}
.gc-services__nav{grid-column:3;justify-self:end;align-self:end;margin:0 0 6px 40px}

/* Testimonials: card and marquee spacing tuned back to the reference height */
.gc-testimonials__slider{padding-top:60px}
.gc-testimonials .gc-carousel__nav{margin-top:26px}
.gc-clients{margin-top:5px}
.gc-testimonials{padding-bottom:30px}

/* Process / CTA trim */
.gc-process{padding-bottom:200px}
.gc-cta{padding-bottom:0}
.gc-cta__foot{padding-bottom:12px}

@media (max-width:1199px){
  .gc-services__head{grid-template-columns:1fr;gap:20px;align-items:start}
  .gc-services__aside{display:flex}
  .gc-services__intro,.gc-services__nav{grid-column:auto}
  .gc-services__nav{justify-self:start;margin:0}
}

/* Service card icon - line art, top-left of the card (reference) */
.gc-service__icon{display:block;position:absolute;top:40px;left:40px;width:56px;
  height:56px;z-index:1}
.gc-service__icon img{width:56px;height:56px;object-fit:contain;
  transition:transform var(--gc-dur) var(--gc-ease)}
.gc-service__link:hover .gc-service__icon img{transform:translateY(-4px)}
.gc-services .gc-carousel__arrow{width:56px;height:56px}
@media (max-width:767px){
  .gc-service__icon{top:26px;left:26px;width:44px;height:44px}
  .gc-service__icon img{width:44px;height:44px}
}

/* ==========================================================================
   Mobile hero - measured against the reference at 375px.
   Slide 499px; label 16/16; title 41.6/41.6 ls -1.6px capped at 315px;
   features, slide numbers and arrows are all hidden.
   ========================================================================== */
@media (max-width:1024px){
  .gc-hero__features{display:none}
  .gc-hero__dots,.gc-hero__nav{display:none}
}
@media (max-width:767px){
  .gc-hero__slide:first-child{min-height:499px}
  .gc-hero__inner{padding-left:32px;padding-right:32px;padding-top:165px;
    padding-bottom:0}
  .gc-hero__label{margin-bottom:14px;font-family:var(--gc-font-body);font-weight:400;
    font-size:16px;line-height:16px;letter-spacing:normal;padding-bottom:10px}
  .gc-hero__title{max-width:315px;font-size:41.6px;line-height:41.6px;
    letter-spacing:-1.6px;margin-bottom:25px}
  .gc-hero__btn{min-height:60px}
  .gc-hero__overlay{background:linear-gradient(180deg,rgba(var(--gc-secondary-rgb),.55) 0%,rgba(var(--gc-secondary-rgb),.75) 100%)}
}

/* Mobile hero offsets: reference puts the label at y165, title 207, button 357 */
@media (max-width:767px){
  .gc-hero__inner{padding-top:49px}
  .gc-hero__btn{padding:13px 60px 13px 25px;min-width:189px}
}

/* Fresh News button is dark with white 17px/400 label in the reference */
.gc-news__btn{background:var(--gc-secondary);color:var(--gc-white);
  font-family:var(--gc-font-heading);font-weight:400;font-size:17px;
  padding:13px 60px 14px 25px}
.gc-news__btn:hover{background:var(--gc-global);color:var(--gc-secondary)}
.gc-news__btn::after{background:var(--gc-global)}
.gc-news__btn .gc-icon{background-color:var(--gc-secondary)}
.gc-news__btn:hover::after{background:var(--gc-secondary)}
.gc-news__btn:hover .gc-icon{background-color:var(--gc-global)}

/* About + CTA buttons share the 60px metric */
.gc-about__btn{padding:14px 60px 13px 25px}
.gc-cta__btn{padding:14px 60px 13px 25px}

/* ==========================================================================
   Testimonial - corrected from the reference DOM.
   No card: the quote sits directly on the light ground. Slide is 867 wide
   with 80px trailing padding (quote 787). Stars sit inline after the name.
   Arrows are bare chevrons at the container's right edge, on the author row.
   ========================================================================== */
.gc-testimonial{padding:0;background:none;border-radius:0}
.gc-testimonials__grid{grid-template-columns:417px minmax(0,867px)}
.gc-testimonial__text{margin:0 0 76px;padding-right:80px}
.gc-testimonial__quote{top:0;right:80px;width:46px;height:38px}
.gc-testimonial__author{position:relative;flex-wrap:nowrap;gap:20px}
.gc-testimonial__line{display:flex;align-items:center;gap:15px}
.gc-testimonial__rating{display:flex;gap:4px;margin-left:0}
.gc-star{width:15px;height:15px}
.gc-testimonials .gc-carousel__nav{position:absolute;right:0;bottom:78px;margin:0;
  gap:18px;z-index:2}
.gc-testimonials .gc-carousel__arrow{width:27px;height:44px;background:transparent;
  box-shadow:none;border:0;color:var(--gc-secondary);font-size:20px}
.gc-testimonials .gc-carousel__arrow:hover{background:transparent;color:var(--gc-global)}
.gc-testimonials__slider{position:relative}

@media (max-width:1399px){
  .gc-testimonials__grid{grid-template-columns:360px minmax(0,1fr)}
}
@media (max-width:767px){
  .gc-testimonial__text{padding-right:0}
  .gc-testimonial__quote{right:0}
  .gc-testimonials .gc-carousel__nav{position:static;justify-content:flex-start;
    margin-top:24px}
  .gc-testimonial__line{flex-wrap:wrap;gap:8px}
}

/* Testimonial offsets: the 80px trailing gutter belongs to the slide, not the
   blockquote, and the arrows ride the author row. */
.gc-testimonial{padding-right:80px}
.gc-testimonial__text{padding-right:0}
.gc-testimonials__slider{padding-top:110px}
.gc-testimonials .gc-carousel__nav{bottom:6px;height:44px;align-items:center}
.gc-testimonials .gc-carousel__arrow{height:44px}
.gc-testimonials{padding-bottom:0}
@media (max-width:1024px){
  .gc-testimonial{padding-right:0}
  .gc-testimonials__slider{padding-top:0}
  .gc-testimonials{padding-bottom:40px}
}

/* Final testimonial / clients alignment */
.gc-testimonials .gc-carousel__arrow{min-height:44px;padding:0}
.gc-clients{padding-left:71px}
.gc-testimonials{padding-bottom:28px}
@media (max-width:1024px){ .gc-clients{padding-left:22px} }

/* Client logos are 120x40 with a 74px gap in the reference */
.gc-client__link{width:120px;height:40px}
.gc-client__logo{width:120px;height:40px}
.gc-clients__list{gap:74px}

/* ==========================================================================
   About features - corrected from the reference DOM (pass 8).
   Side items: 73x73 white icon card (radius 5, soft shadow) + 20px gap +
   214px title at 18/22; items 115px apart. Bottom row: 35px white circle
   with a gold glyph + 15px gap + 17/22 title, under a hairline rule.
   ========================================================================== */
.gc-about__features .gc-ihbox,.gc-about__features .gc-ihbox--card{
  flex-direction:row;align-items:center;gap:20px;padding:0;background:none;
  border-radius:0}
.gc-about__features .gc-ihbox__icon{width:73px;height:73px;border-radius:5px;
  background:var(--gc-white);box-shadow:0 5px 40px rgba(0,0,0,.1);
  display:grid;place-items:center}
.gc-about__features .gc-ihbox__icon img{width:45px;height:45px;object-fit:contain}
.gc-about__features .gc-ihbox__title{width:214px;max-width:214px;font-size:18px;
  line-height:22px}
.gc-about__features{gap:42px;margin-top:114px}

.gc-about__row{display:grid;grid-template-columns:repeat(3,1fr);gap:0;
  border-top:1px solid var(--gc-border);padding:40px 0 0;margin-top:54px}
.gc-about__row .gc-ihbox{gap:15px}
.gc-about__row .gc-ihbox__icon{width:35px;height:35px;border-radius:50%;
  background:var(--gc-white);box-shadow:0 5px 30px rgba(0,0,0,.1);
  color:var(--gc-global);font-size:18px}
.gc-about__row .gc-ihbox__title{font-size:17px;line-height:22px}

@media (max-width:1199px){
  .gc-about__features{gap:24px;margin-top:20px}
  .gc-about__features .gc-ihbox__title{width:auto;max-width:none}
}
@media (max-width:767px){
  .gc-about__row{grid-template-columns:1fr;gap:18px;padding-top:26px;margin-top:30px}
}

/* About columns: 431 media / 458 copy / 307 features, at x15 / x555 / x1083.
   Gaps differ (109 then 70), so they are margins rather than a grid gap. */
.gc-about__grid{grid-template-columns:431px 458px 307px;gap:0}
.gc-about__body{margin-left:109px}
.gc-about__grid>.gc-about__features{margin-left:70px}
.gc-about__row{margin-top:45px}

@media (max-width:1199px){
  .gc-about__grid{grid-template-columns:1fr 1fr;gap:40px}
  .gc-about__body,.gc-about__grid>.gc-about__features{margin-left:0}
}
@media (max-width:767px){
  .gc-about__grid{grid-template-columns:1fr}
}

/* About grid: explicit gutter columns so the content columns keep their full
   width (a margin on a grid item shrinks it instead of offsetting it). */
.gc-about__grid{grid-template-columns:431px 109px 458px 70px 307px;gap:0}
.gc-about__media{grid-column:1;grid-row:1 / span 2}
.gc-about__body{grid-column:3;margin-left:0}
.gc-about__grid>.gc-about__features{grid-column:5;margin-left:0}
.gc-about__row{grid-column:3 / -1}

@media (max-width:1199px){
  .gc-about__grid{grid-template-columns:1fr 1fr;gap:40px}
  .gc-about__media{grid-column:auto;grid-row:auto}
  .gc-about__body{grid-column:auto}
  .gc-about__grid>.gc-about__features{grid-column:1/-1}
  .gc-about__row{grid-column:1/-1}
}
@media (max-width:767px){
  .gc-about__grid{grid-template-columns:1fr}
}

/* Bottom row tracks are uneven in the reference: items start at 555/865/1105 */
.gc-about__row{grid-template-columns:310px 240px auto}
@media (max-width:1199px){ .gc-about__row{grid-template-columns:repeat(3,1fr)} }
@media (max-width:767px){ .gc-about__row{grid-template-columns:1fr} }

/* Fresh News button: dark ground, white disc, dark glyph */
.gc-news__btn::after{background:var(--gc-white)}
.gc-news__btn .gc-icon{background-color:var(--gc-secondary)}
.gc-news__btn:hover::after{background:var(--gc-secondary)}
.gc-news__btn:hover .gc-icon{background-color:var(--gc-global)}

/* ==========================================================================
   Hero slide bullets - measured: 60x60 hit area, 7px apart, 60px from the
   right edge, numbers in Be Vietnam Pro 16/400 white.
   ========================================================================== */
.gc-hero__dots{right:60px;gap:7px}
.gc-hero__dot{width:60px;height:60px;border-radius:50px;
  font-family:var(--gc-font-body);font-weight:400;font-size:16px;
  color:var(--gc-white)}
.gc-hero__dot.is-active{background:rgba(var(--gc-white-rgb),.2);color:var(--gc-white)}
.gc-hero__dot:hover{background:rgba(var(--gc-white-rgb),.12)}

@media (max-width:1199px){ .gc-hero__dots{right:24px} }

/* ==========================================================================
   Overlap fixes found by scanning every breakpoint
   ========================================================================== */
/* Testimonial arrows were still absolutely placed at 1024/768 and landed on
   the author's role line. Put them back in the flow below the card. */
@media (max-width:1024px){
  .gc-testimonials .gc-carousel__nav{position:static;justify-content:flex-start;
    margin-top:24px;bottom:auto;right:auto}
}

/* The services aside is display:contents on desktop, which cancelled the base
   column direction; restore it once the head collapses to one column so the
   copy cannot run under the arrows. */
@media (max-width:1199px){
  .gc-services__aside{display:flex;flex-direction:column;align-items:flex-start;
    gap:26px}
}

/* ==========================================================================
   Hero transition - matched to the reference's slider config:
   mainanimation crossfade, 600ms, easeOutQuad; bgAnimations disabled, so the
   background does not zoom. Layers animate after the crossfade ends
   (layerMode.inAnimation = mainInEnd).
   ========================================================================== */
.gc-hero__slide{transition:opacity .6s cubic-bezier(.25,.46,.45,.94),
  visibility .6s cubic-bezier(.25,.46,.45,.94)}
.gc-hero__bg{transform:none;transition:none}
.gc-hero__slide.is-active .gc-hero__bg{transform:none}

.gc-hero__slide.is-active .gc-hero__label{animation-delay:.6s}
.gc-hero__slide.is-active .gc-hero__title{animation-delay:.75s}
.gc-hero__slide.is-active .gc-hero__btn{animation-delay:.9s}
.gc-hero__slide.is-active .gc-hero__features{animation-delay:1.05s}

/* ==========================================================================
   Carousel motion - matched to the reference's Swiper settings.
   Services 3000ms/3000ms, testimonials 3000ms/3000ms, all looping, easing
   "ease". The transition is applied inline by the script so the seamless
   rewind can suppress it for one frame.
   ========================================================================== */
.gc-carousel__track{transition:none;will-change:transform;backface-visibility:hidden}
.gc-carousel__slide--clone{pointer-events:none}

/* Client row glides one logo per ~10s, linear, like the reference marquee */
.gc-clients__list{animation-duration:60s;animation-timing-function:linear}

/* ==========================================================================
   Working Process card - measured from the reference.
   White card, 50px/25px padding, 0 4px 40px rgba(0,0,0,.05), no border or
   radius. The arrow sits on the image's right edge as a 60px white ring
   holding a 45px disc, not a corner dot.
   ========================================================================== */
.gc-process__item{padding:50px 25px;background:var(--gc-white);border:0;
  border-radius:0;box-shadow:0 4px 40px rgba(0,0,0,.05);text-align:center}
.gc-process__item:hover{transform:none;box-shadow:0 4px 40px rgba(0,0,0,.09)}
.gc-process__item::after{display:none}

.gc-process__icon{position:relative;display:block;width:218px;height:218px;
  margin:0 auto 55px;border-radius:50%;overflow:visible;background:none}
.gc-process__icon img{width:218px;height:218px;border-radius:50%;object-fit:cover;
  mix-blend-mode:normal}
.gc-process__icon::before{content:"";position:absolute;top:50%;right:-27px;
  transform:translateY(-50%);width:60px;height:60px;border-radius:50%;
  background:var(--gc-white)}
.gc-process__badge{position:absolute;top:50%;right:-20px;transform:translateY(-50%);
  z-index:1;display:grid;place-items:center;width:45px;height:45px;border-radius:50%;
  background:var(--gc-light-bg);color:var(--gc-secondary);font-size:11px;
  transition:background var(--gc-dur) var(--gc-ease),color var(--gc-dur) var(--gc-ease)}
.gc-process__badge .gc-icon{width:14px;height:14px}
.gc-process__item:hover .gc-process__badge{background:var(--gc-global);
  color:var(--gc-secondary)}

@media (max-width:767px){
  .gc-process__item{padding:34px 20px}
  .gc-process__icon{width:170px;height:170px;margin-bottom:40px}
  .gc-process__icon img{width:170px;height:170px}
  .gc-process__icon::before{width:48px;height:48px;right:-20px}
  .gc-process__badge{width:36px;height:36px;right:-14px}
}

/* ==========================================================================
   Service card icon and arrow - measured from the reference.
   Icon 55x55 white at a 56px inset; the arrow is a plain 33px white glyph at
   the bottom right, always visible, with no disc behind it.
   ========================================================================== */
.gc-service__icon{top:58px;left:56px;width:55px;height:55px}
.gc-service__icon img{width:55px;height:55px}

.gc-service__arrow{position:absolute;right:34px;bottom:44px;width:46px;height:33px;
  background:none;border-radius:0;opacity:1;transform:none;
  display:grid;place-items:center;color:var(--gc-white)}
.gc-service__link:hover .gc-service__arrow{opacity:1;transform:translateX(6px);
  background:none;color:var(--gc-white)}
.gc-service__arrow .gc-icon{width:46px;height:33px;-webkit-mask-size:contain;
  mask-size:contain;background-color:var(--gc-white)}
.gc-service__body{display:block}

@media (max-width:767px){
  .gc-service__icon{top:26px;left:26px;width:44px;height:44px}
  .gc-service__icon img{width:44px;height:44px}
  .gc-service__arrow{right:24px;bottom:30px}
}

/* ==========================================================================
   Service card geometry - measured inside the reference's 438x537 card.
   Icon 55x55 at 45,45 · title 226x60 at x45 (44px from the card bottom) ·
   arrow 46x33 at right 45, vertically centred against the title.
   ========================================================================== */
.gc-service__icon{top:45px;left:45px;width:55px;height:55px}
.gc-service__icon img{width:55px;height:55px}

.gc-service__body{left:45px;right:45px;bottom:44px;display:flex;align-items:center;
  justify-content:space-between;gap:20px}
.gc-service__title{max-width:226px;margin:0}
.gc-service__arrow{position:static;flex:0 0 auto;width:46px;height:33px;right:auto;
  bottom:auto;background:none;border-radius:0;opacity:1;transform:none;
  display:grid;place-items:center;color:var(--gc-white)}
.gc-service__link:hover .gc-service__arrow{transform:translateX(6px)}

@media (max-width:767px){
  .gc-service__icon{top:26px;left:26px;width:44px;height:44px}
  .gc-service__icon img{width:44px;height:44px}
  .gc-service__body{left:26px;right:26px;bottom:30px}
}

/* Reference title box is a fixed 226px, which is what makes it wrap to the
   two lines the card is designed around. */
.gc-service__title{width:226px;max-width:226px}
@media (max-width:767px){ .gc-service__title{width:auto;max-width:none} }

/* The reference's title box is 226 wide but its inner link wraps at ~150,
   which is what puts "Business / Growth" on two lines. */
.gc-service__title{width:150px;max-width:150px}
@media (max-width:767px){ .gc-service__title{width:auto;max-width:none} }

/* ==========================================================================
   Hero - active-section tab bar
   One tab per slide along the bottom edge of the banner. The active tab is
   lit and its top rule fills over the autoplay interval, so visitors can see
   which section they are on and how long until the next one.
   ========================================================================== */
.gc-hero__dots{display:none}
.gc-hero--tabbed .gc-hero__inner{padding-bottom:190px}
.gc-hero--tabbed .gc-hero__nav{bottom:auto;top:50%;transform:translateY(-50%);
  flex-direction:column}

.gc-hero__tabs{position:absolute;left:0;right:0;bottom:0;z-index:5;
  background:rgba(var(--gc-secondary-rgb),.62);
  -webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);
  border-top:1px solid rgba(var(--gc-white-rgb),.14)}
.gc-hero__tabs-inner{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(0,1fr);
  padding:0 37px;overflow-x:auto;scrollbar-width:none}
.gc-hero__tabs-inner::-webkit-scrollbar{display:none}

.gc-hero__tab{position:relative;display:flex;flex-direction:column;align-items:flex-start;
  gap:4px;min-width:0;padding:28px 26px 30px;margin:0;border:0;border-radius:0;
  background:transparent;color:rgba(var(--gc-white-rgb),.55);text-align:left;cursor:pointer;
  transition:color var(--gc-dur) var(--gc-ease),background var(--gc-dur) var(--gc-ease)}
.gc-hero__tab + .gc-hero__tab{border-left:1px solid rgba(var(--gc-white-rgb),.1)}
.gc-hero__tab:hover{background:rgba(var(--gc-white-rgb),.04);color:var(--gc-white)}
.gc-hero__tab:focus-visible{outline:2px solid var(--gc-global);outline-offset:-2px}
.gc-hero__tab.is-active{color:var(--gc-white);background:rgba(var(--gc-white-rgb),.06)}

.gc-hero__tab-label{display:block;max-width:100%;font-family:var(--gc-font-heading);
  font-weight:700;font-size:17px;line-height:24px;white-space:nowrap;overflow:hidden;
  text-overflow:ellipsis}
.gc-hero__tab-desc{display:block;max-width:100%;font-size:14px;line-height:20px;
  color:rgba(var(--gc-white-rgb),.5);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.gc-hero__tab.is-active .gc-hero__tab-desc{color:rgba(var(--gc-white-rgb),.75)}

/* Progress rule on the top edge of the active tab */
.gc-hero__tab-progress{position:absolute;left:0;right:0;top:-1px;height:3px;
  background:transparent;overflow:hidden}
.gc-hero__tab-progress::before{content:"";position:absolute;inset:0;
  background:var(--gc-global);transform:scaleX(0);transform-origin:left center}
.gc-hero__tab.is-active .gc-hero__tab-progress::before{
  animation:gcHeroProgress var(--gc-hero-delay,8000ms) linear forwards}
.gc-hero.is-paused .gc-hero__tab.is-active .gc-hero__tab-progress::before{animation-play-state:paused}
@keyframes gcHeroProgress{to{transform:scaleX(1)}}
@media (prefers-reduced-motion:reduce){
  .gc-hero__tab.is-active .gc-hero__tab-progress::before{animation:none;transform:scaleX(1)}
}

@media (max-width:1199px){
  .gc-hero__tabs-inner{padding:0 20px}
  .gc-hero__tab{padding:22px 20px 24px}
  .gc-hero__tab-label{font-size:16px}
}
@media (max-width:767px){
  .gc-hero--tabbed .gc-hero__inner{padding-bottom:130px}
  .gc-hero--tabbed .gc-hero__nav{display:none}
  .gc-hero__tabs-inner{grid-auto-columns:max-content;padding:0;scroll-snap-type:x mandatory}
  .gc-hero__tab{padding:18px 20px 20px;scroll-snap-align:start}
  .gc-hero__tab-label{font-size:15px}
  .gc-hero__tab-desc{display:none}
}
