/* ==========================================================================
   JKTCO additions: logo swap, industries, offices, gallery + lightbox,
   grouped service grid, enquiry form, ICAI disclaimer, content helpers.
   Loaded on every page, after components.css.
   ========================================================================== */

/* ----- Header logo: light over the banner, regular when stuck ----- */
.gc-navbar__logo{display:inline-flex;align-items:center}
.gc-navbar__logo--dark{display:none}
.gc-header--overlay.is-stuck .gc-navbar__logo--light{display:none}
.gc-header--overlay.is-stuck .gc-navbar__logo--dark{display:inline-flex}
.gc-logo img[src$=".svg"]{width:auto;height:44px;max-height:none}
@media (max-width:767px){ .gc-logo img[src$=".svg"]{height:36px} }

/* ----- Industries ----- */
.gc-industries__head{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,440px);
  gap:30px 60px;align-items:end;margin-bottom:50px}
.gc-industries__intro{margin:0;color:var(--gc-body)}
.gc-industries__grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:1px;
  margin:0;padding:0;list-style:none;background:var(--gc-border);
  border:1px solid var(--gc-border);border-radius:var(--gc-radius);overflow:hidden}
.gc-industry{display:flex;flex-direction:column;align-items:flex-start;gap:18px;
  min-height:150px;padding:26px 22px;background:var(--gc-white);
  transition:background var(--gc-dur) var(--gc-ease)}
.gc-industry:hover{background:var(--gc-secondary)}
.gc-industry__icon{width:48px;height:48px;display:grid;place-items:center;flex:0 0 auto}
.gc-industry__icon img{width:48px;height:48px;object-fit:contain;
  transition:filter var(--gc-dur) var(--gc-ease)}
.gc-industry:hover .gc-industry__icon img{filter:brightness(0) invert(1)}
.gc-industry__mono{width:48px;height:48px;display:grid;place-items:center;border-radius:50%;
  background:var(--gc-light-bg);font-family:var(--gc-font-heading);font-weight:800;
  font-size:20px;color:var(--gc-secondary)}
.gc-industry:hover .gc-industry__mono{background:var(--gc-global)}
.gc-industry__name{font-family:var(--gc-font-heading);font-weight:700;font-size:16px;
  line-height:22px;color:var(--gc-heading);transition:color var(--gc-dur) var(--gc-ease)}
.gc-industry:hover .gc-industry__name{color:var(--gc-white)}
.gc-industries__foot{margin:40px 0 0}
@media (max-width:1199px){ .gc-industries__grid{grid-template-columns:repeat(4,minmax(0,1fr))} }
@media (max-width:767px){
  .gc-industries__head{grid-template-columns:1fr}
  .gc-industries__grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .gc-industry{min-height:120px;padding:20px 16px;gap:12px}
  .gc-industry__name{font-size:15px}
}

/* ----- Offices ----- */
.gc-offices__grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:30px;
  margin:0;padding:0;list-style:none}
.gc-office{display:flex;flex-direction:column;gap:14px;padding:38px 36px 40px;
  border:1px solid var(--gc-border);border-radius:var(--gc-radius);background:var(--gc-white)}
.gc-office--main{background:var(--gc-secondary);border-color:var(--gc-secondary)}
.gc-office__title{margin:0 0 6px;font-family:var(--gc-font-heading);font-weight:700;
  font-size:22px;line-height:28px;color:var(--gc-heading)}
.gc-office--main .gc-office__title{color:var(--gc-white)}
.gc-office__line{display:flex;gap:12px;margin:0;font-size:15px;line-height:24px;color:var(--gc-body)}
.gc-office__line .gc-icon{margin-top:4px;color:var(--gc-global);font-size:16px}
.gc-office__line a{color:var(--gc-heading)}
.gc-office__line a:hover{color:var(--gc-global)}
.gc-office--main .gc-office__line{color:rgba(var(--gc-white-rgb),.75)}
.gc-office--main .gc-office__line a{color:var(--gc-white)}
@media (max-width:1024px){ .gc-offices__grid{grid-template-columns:1fr} .gc-office{padding:30px 26px} }

/* ----- Gallery ----- */
.gc-gallery__head{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;
  gap:24px;margin-bottom:50px}
.gc-gallery__grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:20px;
  margin:0;padding:0;list-style:none}
.gc-gallery__link{position:relative;display:block;aspect-ratio:4/3;overflow:hidden;
  border-radius:var(--gc-radius);background:var(--gc-light-bg)}
.gc-gallery__link img{width:100%;height:100%;object-fit:cover;
  transition:transform .8s var(--gc-ease)}
.gc-gallery__link:hover img{transform:scale(1.06)}
.gc-gallery__link:focus-visible{outline:3px solid var(--gc-global);outline-offset:3px}
.gc-gallery__caption{position:absolute;left:0;right:0;bottom:0;padding:40px 18px 16px;
  font-family:var(--gc-font-heading);font-weight:600;font-size:15px;line-height:20px;
  color:var(--gc-white);background:linear-gradient(transparent,rgba(var(--gc-secondary-rgb),.85))}
@media (max-width:1024px){ .gc-gallery__grid{grid-template-columns:repeat(2,minmax(0,1fr))} }
@media (max-width:480px){ .gc-gallery__grid{grid-template-columns:1fr} }

.gc-lightbox{width:min(1100px,94vw);max-width:none;max-height:92vh;padding:0;border:0;
  background:transparent;overflow:visible}
.gc-lightbox::backdrop{background:rgba(var(--gc-secondary-rgb),.92)}
.gc-lightbox__figure{margin:0;text-align:center}
.gc-lightbox__img{max-width:100%;max-height:80vh;margin:0 auto;border-radius:6px}
.gc-lightbox__caption{margin-top:14px;font-family:var(--gc-font-heading);font-weight:600;color:var(--gc-white)}
.gc-lightbox__close,.gc-lightbox__nav{position:absolute;display:grid;place-items:center;
  width:48px;height:48px;min-height:0;padding:0;border:0;border-radius:50%;
  background:var(--gc-white);color:var(--gc-secondary);font-size:18px;z-index:2}
.gc-lightbox__close:hover,.gc-lightbox__nav:hover{background:var(--gc-global)}
.gc-lightbox__close{top:-60px;right:0}
.gc-lightbox__nav{top:calc(40vh - 24px)}
.gc-lightbox__nav--prev{left:-64px}
.gc-lightbox__nav--prev .gc-icon{transform:rotate(180deg)}
.gc-lightbox__nav--next{right:-64px}
@media (max-width:1240px){ .gc-lightbox__nav--prev{left:8px} .gc-lightbox__nav--next{right:8px} }

/* ----- Services page: grouped grid ----- */
.gc-service-grid__group{scroll-margin-top:120px}
.gc-service-grid__group + .gc-service-grid__group{margin-top:80px}
.gc-service-grid__head{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,520px);
  gap:16px 60px;align-items:end;padding-bottom:26px;margin-bottom:34px;
  border-bottom:1px solid var(--gc-border)}
.gc-service-grid__title{margin:0;font-family:var(--gc-font-heading);font-weight:700;
  font-size:var(--gc-h4-size);line-height:var(--gc-h4-lh);color:var(--gc-heading)}
.gc-service-grid__desc{margin:0;color:var(--gc-body)}
.gc-service-grid__list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:30px;
  margin:0;padding:0;list-style:none}
.gc-service-grid .gc-service{flex:none;border:0}
.gc-service-grid .gc-service__link{height:460px;border-radius:var(--gc-radius);overflow:hidden;
  background:var(--gc-secondary)}
.gc-service__excerpt{display:block;margin-top:10px;font-size:15px;line-height:23px;
  color:rgba(var(--gc-white-rgb),.78);font-weight:400}
.gc-service-grid .gc-service__body{display:block}
.gc-service-grid .gc-service__arrow{position:absolute;right:0;top:-64px}
@media (max-width:1024px){
  .gc-service-grid__head{grid-template-columns:1fr}
  .gc-service-grid__list{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:767px){
  .gc-service-grid__list{grid-template-columns:1fr}
  .gc-service-grid .gc-service__link{height:400px}
}

/* ----- Enquiry form ----- */
.gc-enquiry{padding:40px;border-radius:var(--gc-radius);background:var(--gc-light-bg)}
.gc-enquiry__title{margin:0 0 6px;font-family:var(--gc-font-heading);font-weight:700;
  font-size:26px;line-height:32px;color:var(--gc-heading)}
.gc-enquiry__note{margin:0 0 24px;color:var(--gc-body)}
.gc-enquiry__grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px 20px}
.gc-enquiry__field{display:flex;flex-direction:column;gap:7px;margin:0}
.gc-enquiry__field--full{grid-column:1/-1}
.gc-enquiry__field label{font-family:var(--gc-font-heading);font-weight:600;font-size:14px;
  color:var(--gc-heading)}
.gc-enquiry__field label span{color:var(--gc-global)}
.gc-enquiry input,.gc-enquiry select,.gc-enquiry textarea{width:100%;margin:0;padding:13px 16px;
  font:inherit;font-size:15px;color:var(--gc-heading);background:var(--gc-white);
  border:1px solid var(--gc-border);border-radius:5px;
  transition:border-color .2s var(--gc-ease),box-shadow .2s var(--gc-ease)}
.gc-enquiry textarea{resize:vertical;min-height:110px}
.gc-enquiry input:focus,.gc-enquiry select:focus,.gc-enquiry textarea:focus{outline:0;
  border-color:var(--gc-global);box-shadow:0 0 0 3px rgba(var(--gc-global-rgb),.25)}
.gc-enquiry .is-invalid{border-color:#c0392b;box-shadow:0 0 0 3px rgba(192,57,43,.15)}
.gc-enquiry__hp{position:absolute!important;left:-9999px;width:1px;height:1px;overflow:hidden}
.gc-enquiry__submit{margin-top:24px}
.gc-enquiry__submit[disabled]{opacity:.6;cursor:progress}
.gc-enquiry__status{min-height:24px;margin:14px 0 0;font-size:15px}
.gc-enquiry__status.is-success{color:#1e7e45;font-weight:600}
.gc-enquiry__status.is-error{color:#c0392b}
.gc-enquiry--compact{padding:30px 26px}
.gc-enquiry--compact .gc-enquiry__grid{grid-template-columns:1fr}
.gc-enquiry--compact .gc-enquiry__title{font-size:22px;line-height:28px}
.gc-widget--enquiry{margin-bottom:30px}
@media (max-width:600px){ .gc-enquiry{padding:28px 20px} .gc-enquiry__grid{grid-template-columns:1fr} }

/* ----- ICAI disclaimer ----- */
.gc-disclaimer{position:fixed;inset:0;z-index:2000;display:grid;place-items:center;padding:20px;
  background:rgba(var(--gc-secondary-rgb),.72);opacity:0;transition:opacity .25s var(--gc-ease)}
.gc-disclaimer[hidden]{display:none}
.gc-disclaimer.is-open{opacity:1}
.gc-disclaimer__box{width:min(640px,100%);max-height:88vh;overflow:auto;padding:40px 42px;
  border-radius:var(--gc-radius);background:var(--gc-white);border-top:5px solid var(--gc-global);
  box-shadow:0 30px 80px rgba(0,0,0,.3);transform:translateY(12px);transition:transform .25s var(--gc-ease)}
.gc-disclaimer.is-open .gc-disclaimer__box{transform:none}
.gc-disclaimer__title{margin:0 0 16px;font-family:var(--gc-font-heading);font-weight:700;
  font-size:28px;line-height:34px;color:var(--gc-heading)}
.gc-disclaimer__text{font-size:15px;line-height:25px;color:var(--gc-body)}
.gc-disclaimer__text p{margin:0 0 14px}
.gc-disclaimer__btn{margin-top:10px}
.gc-disclaimer-open body{overflow:hidden}
@media (max-width:600px){ .gc-disclaimer__box{padding:30px 22px} .gc-disclaimer__title{font-size:23px} }

/* ----- Content helpers used by imported pages ----- */
.gc-entry__content--narrow{max-width:900px}
.gc-section--intro{padding-bottom:0}
.gc-values{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:30px;margin:50px 0 0}
.gc-values__item{padding:34px 32px;border-radius:var(--gc-radius);background:var(--gc-light-bg)}
.gc-values__item:first-child{background:var(--gc-secondary);color:rgba(var(--gc-white-rgb),.78)}
.gc-values__item:first-child h3,.gc-values__item:first-child strong{color:var(--gc-white)}
.gc-values__item h3{margin-top:0}
.gc-values__item ul{margin:0;padding-left:20px}
.gc-values__item li{margin-bottom:6px}
@media (max-width:1024px){ .gc-values{grid-template-columns:1fr} }
.gc-chip-list{display:flex;flex-wrap:wrap;gap:10px;padding:0!important;list-style:none}
.gc-chip-list li{margin:0!important;padding:8px 16px;border-radius:40px;background:var(--gc-light-bg);
  font-family:var(--gc-font-heading);font-weight:600;font-size:14px;color:var(--gc-heading)}
.gc-chip-list li::before{display:none}
.gc-footer-contact{margin:0;padding:0;list-style:none}
.gc-footer-contact li{margin-bottom:10px}

/* Six menu items + phone + search + button do not fit below 1600px */
@media (max-width:1599px){ .gc-navbar__phone{display:none} }
@media (max-width:1320px){ .gc-menu{gap:22px} .gc-navbar__inner{gap:24px} }

/* Stats: heading left, counters in a 2 x 2 grid on the right */
@media (min-width:1025px){
  .gc-stats__grid{grid-template-columns:minmax(0,1fr) minmax(0,1.15fr);gap:40px 80px;align-items:start}
  .gc-stats__list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:44px 50px}
}
@media (min-width:768px) and (max-width:1024px){
  .gc-stats__list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:40px;grid-column:1/-1}
}

/* Services page: groups of 3 or 4 fill the row; tighter gap after the intro */
@media (min-width:1025px){
  .gc-service-grid__list{grid-template-columns:repeat(auto-fit,minmax(280px,1fr))}
}
.gc-section + .gc-service-grid{padding-top:20px}

/* Long-form page copy: readable line length, calmer subheadings */
.gc-entry__content > p,.gc-entry__content > h2,.gc-entry__content > h3,
.gc-entry__content > ul:not(.gc-chip-list){max-width:900px}
.gc-entry__content > p{font-size:17px;line-height:1.75}
.gc-entry__content > h2{margin-bottom:24px}
.gc-entry__content > h3,.gc-service-single .gc-entry__content h3{margin:34px 0 12px;
  font-size:24px;line-height:30px}
.gc-values__item h3{font-size:24px;line-height:30px;margin-bottom:16px}

/* Mobile/tablet: the top bar is hidden, so the overlay header must not
   reserve its 60px; the nav bar then sits directly on the banner. */
@media (max-width:1024px){ .gc-header--overlay{height:0} }
@media (max-width:1024px){
  .gc-hero__inner{padding-top:130px}
}
/* Mobile drawer: one toggle per row, no desktop chevrons */
.gc-menu--mobile .gc-submenu .gc-menu__item--has-children>.gc-menu__link::after{display:none}
.gc-menu--mobile .gc-submenu .gc-menu__toggle{top:0}

/* ==========================================================================
   Home section navigator (fixed, right edge)
   ========================================================================== */
.gc-anchor{scroll-margin-top:90px}
.gc-secnav{--gc-secnav-ink:var(--gc-heading);--gc-secnav-muted:rgba(var(--gc-secondary-rgb),.35);
  --gc-secnav-bg:rgba(var(--gc-white-rgb),.92);
  position:fixed;right:28px;top:50%;z-index:450;transform:translateY(-50%);
  opacity:0;pointer-events:none;transition:opacity .35s var(--gc-ease)}
.gc-secnav.is-ready{opacity:1;pointer-events:auto}
.gc-secnav.is-dark{--gc-secnav-ink:var(--gc-white);--gc-secnav-muted:rgba(var(--gc-white-rgb),.45);
  --gc-secnav-bg:rgba(var(--gc-secondary-rgb),.85)}
.gc-mega-open .gc-secnav,.gc-disclaimer-open .gc-secnav{opacity:0;pointer-events:none}

.gc-secnav__list{position:relative;margin:0;padding:0;list-style:none;display:flex;
  flex-direction:column;gap:30px}
.gc-secnav__link{display:flex;align-items:center;justify-content:flex-end;gap:16px;
  min-height:22px;text-decoration:none}
.gc-secnav__label{padding:3px 10px;border-radius:4px;font-family:var(--gc-font-heading);
  font-weight:600;font-size:14px;line-height:18px;color:var(--gc-secnav-ink);white-space:nowrap;
  transition:opacity .25s var(--gc-ease),transform .25s var(--gc-ease),color .25s,background .25s}
.gc-secnav__dot{position:relative;z-index:1;width:18px;height:18px;flex:0 0 auto;border-radius:50%;
  border:2px solid var(--gc-secnav-muted);background:var(--gc-secnav-bg);
  transition:border-color .25s var(--gc-ease),transform .25s var(--gc-ease)}
.gc-secnav__dot::after{content:"";position:absolute;inset:3px;border-radius:50%;
  background:var(--gc-global);transform:scale(0);transition:transform .25s var(--gc-ease)}
.gc-secnav__link:hover .gc-secnav__dot{border-color:var(--gc-global)}
.gc-secnav__link.is-active .gc-secnav__dot{border-color:var(--gc-global);transform:scale(1.12)}
.gc-secnav__link.is-active .gc-secnav__dot::after{transform:scale(1)}
.gc-secnav__link.is-active .gc-secnav__label{color:var(--gc-global);font-weight:700}
.gc-secnav__link:focus-visible{outline:none}
.gc-secnav__link:focus-visible .gc-secnav__dot{box-shadow:0 0 0 3px rgba(var(--gc-global-rgb),.5)}

/* Rail through the dot centres, filled up to the active item */
.gc-secnav__rail{position:absolute;right:8px;top:11px;bottom:11px;width:2px;
  background:var(--gc-secnav-muted)}
.gc-secnav__fill{position:absolute;left:0;top:0;width:100%;height:var(--gc-secnav-progress,0%);
  background:var(--gc-global);transition:height .4s var(--gc-ease)}

/* Past the banner: only the active label, others appear on hover/focus */
.gc-secnav:not(.is-expanded) .gc-secnav__label{opacity:0;transform:translateX(8px);
  background:var(--gc-secnav-bg)}
.gc-secnav:not(.is-expanded) .gc-secnav__link.is-active .gc-secnav__label,
.gc-secnav:not(.is-expanded) .gc-secnav__link:hover .gc-secnav__label,
.gc-secnav:not(.is-expanded) .gc-secnav__link:focus-visible .gc-secnav__label{opacity:1;transform:none}
.gc-secnav:not(.is-expanded) .gc-secnav__list{gap:22px}

/* The navigator replaces the banner's arrows (the tab bar still switches slides) */
@media (min-width:1200px){
  .gc-has-secnav .gc-hero__nav{display:none}
  .gc-has-secnav .gc-hero__tabs-inner{padding-right:90px}
}
@media (max-width:1199px){ .gc-secnav{display:none} }
@media (prefers-reduced-motion:reduce){ .gc-secnav__fill{transition:none} }
.gc-secnav:not(.is-expanded):not(.is-dark) .gc-secnav__label{box-shadow:0 4px 14px rgba(var(--gc-secondary-rgb),.12)}
@media (max-width:1439px){ .gc-secnav{right:16px} }

/* ==========================================================================
   Header logo sizing and banner treatment
   The reference CSS fixes the logo at 146px wide, which squeezes wide logos
   with a tagline. Size by height instead (Customizer > Logo height).
   ========================================================================== */
.gc-navbar .gc-logo,.gc-navbar .custom-logo-link{display:inline-flex;align-items:center}
.gc-navbar .gc-logo img,.gc-navbar .custom-logo{width:auto;height:var(--gc-logo-h,56px);
  max-height:none;max-width:280px;object-fit:contain}
.gc-header--sticky.is-stuck .gc-navbar .gc-logo img,
.gc-header--sticky.is-stuck .gc-navbar .custom-logo{height:calc(var(--gc-logo-h,56px) * .85)}
@media (max-width:1024px){
  .gc-navbar .gc-logo img,.gc-navbar .custom-logo{height:calc(var(--gc-logo-h,56px) * .75);max-width:200px}
}

/* White badge: keeps a dark / coloured logo readable on the banner */
.gc-navbar__logo--badge .gc-logo,.gc-navbar__logo--badge .custom-logo-link{
  padding:8px 14px;border-radius:8px;background:var(--gc-white);
  box-shadow:0 6px 24px rgba(0,0,0,.18)}
@media (max-width:1024px){
  .gc-navbar__logo--badge .gc-logo,.gc-navbar__logo--badge .custom-logo-link{padding:6px 10px;border-radius:6px}
}
/* Solid white version of the logo */
.gc-navbar__logo--white img{filter:brightness(0) invert(1)}

/* ==========================================================================
   Section navigator: keep clear of the header on short screens
   ========================================================================== */
.gc-secnav{top:calc(50% + 70px)}
.gc-secnav:not(.is-expanded){top:calc(50% + 40px)}
@media (max-height:900px){
  .gc-secnav__list{gap:22px}
  .gc-secnav:not(.is-expanded) .gc-secnav__list{gap:16px}
}
@media (max-height:760px){
  .gc-secnav__list,.gc-secnav:not(.is-expanded) .gc-secnav__list{gap:12px}
  .gc-secnav__dot{width:16px;height:16px}
  .gc-secnav__rail{right:7px}
  .gc-secnav__label{font-size:13px}
}
@media (max-height:620px){ .gc-secnav{display:none} }
