/* ===== Top bar ===== */
.gc-topbar{background:var(--gc-secondary);color:rgba(var(--gc-white-rgb),.72);
  font-size:15px;line-height:1.6}
.gc-topbar__inner{display:flex;align-items:center;justify-content:space-between;
  gap:30px;min-height:50px;flex-wrap:wrap}
.gc-topbar__left,.gc-topbar__right{display:flex;align-items:center;gap:26px;flex-wrap:wrap}
.gc-topbar__message{color:rgba(var(--gc-white-rgb),.72)}
.gc-topbar__cta{display:inline-flex;align-items:center;gap:8px;color:var(--gc-global);
  font-family:var(--gc-font-heading);font-weight:600;font-size:14px}
.gc-topbar__cta:hover{color:var(--gc-white)}
.gc-topbar__item{display:inline-flex;align-items:center;gap:9px}
.gc-topbar__item a{color:rgba(var(--gc-white-rgb),.72)}
.gc-topbar__item a:hover{color:var(--gc-global)}
.gc-topbar .gc-icon{color:var(--gc-global)}

/* ===== Navbar ===== */
.gc-navbar{background:var(--gc-white);border-bottom:1px solid rgba(var(--gc-secondary-rgb),.07)}
.gc-navbar__inner{display:flex;align-items:center;gap:40px;min-height:100px}
.gc-navbar__brand{flex:0 0 auto}
.gc-logo{display:inline-flex;align-items:center}
.gc-logo img,.custom-logo{max-height:46px;width:auto}
.gc-logo--text{font-family:var(--gc-font-heading);font-weight:700;font-size:28px;
  color:var(--gc-heading);letter-spacing:-.5px}
.gc-navbar__nav{flex:1 1 auto}
.gc-navbar__actions{display:flex;align-items:center;gap:22px;flex:0 0 auto}

/* Menu */
.gc-menu{display:flex;align-items:center;gap:34px;margin:0;padding:0;list-style:none}
.gc-menu__item{position:relative}
.gc-menu__link{display:inline-flex;align-items:center;gap:6px;padding:38px 0;
  font-family:var(--gc-font-heading);font-weight:600;font-size:16px;color:var(--gc-heading);
  white-space:nowrap}
.gc-menu__link:hover,.gc-menu__item.current-menu-item>.gc-menu__link,
.gc-menu__item.current-menu-ancestor>.gc-menu__link{color:var(--gc-global)}
.gc-menu__item--has-children>.gc-menu__link::after{content:"";width:7px;height:7px;
  border-right:2px solid currentColor;border-bottom:2px solid currentColor;
  transform:rotate(45deg) translateY(-2px);transition:transform var(--gc-dur) var(--gc-ease)}
.gc-menu__item--has-children:hover>.gc-menu__link::after{transform:rotate(-135deg) translateY(-2px)}

/* Desktop dropdowns */
.gc-submenu{position:absolute;top:100%;left:-24px;z-index:200;min-width:250px;margin:0;
  padding:14px 0;list-style:none;background:var(--gc-white);border-radius:var(--gc-radius);
  box-shadow:var(--gc-shadow);opacity:0;visibility:hidden;transform:translateY(14px);
  transition:opacity var(--gc-dur) var(--gc-ease),transform var(--gc-dur) var(--gc-ease),visibility var(--gc-dur)}
.gc-menu__item:hover>.gc-submenu,.gc-menu__item:focus-within>.gc-submenu,
.gc-menu__item.is-open>.gc-submenu{opacity:1;visibility:visible;transform:translateY(0)}
.gc-submenu .gc-menu__link{display:block;padding:10px 24px;font-size:15px;font-weight:500}
.gc-submenu .gc-menu__item--has-children>.gc-menu__link::after{
  position:absolute;right:24px;top:50%;transform:rotate(-45deg) translateY(-50%)}
.gc-submenu--nested{top:-14px;left:100%}
.gc-menu:not(.gc-menu--mobile) .gc-menu__toggle{display:none}

/* Actions */
.gc-navbar__phone{display:flex;flex-direction:column;line-height:1.3}
.gc-navbar__phone-label{font-size:13px;color:var(--gc-body)}
.gc-navbar__phone-number{font-family:var(--gc-font-heading);font-weight:700;font-size:17px;
  color:var(--gc-heading)}
.gc-navbar__icon{display:inline-flex;align-items:center;justify-content:center;
  width:46px;height:46px;padding:0;border-radius:50%;background:var(--gc-light-bg);
  color:var(--gc-heading);position:relative}
.gc-navbar__icon:hover{background:var(--gc-global);color:var(--gc-secondary)}
.gc-navbar__cart-count{position:absolute;top:-4px;right:-4px;min-width:20px;height:20px;
  display:grid;place-items:center;border-radius:50%;background:var(--gc-global);
  color:var(--gc-secondary);font-size:11px;font-weight:700;font-family:var(--gc-font-heading)}
.gc-navbar__burger{display:none;width:46px;height:46px;padding:0;background:var(--gc-light-bg);
  border-radius:var(--gc-radius);color:var(--gc-heading)}
.gc-burger{display:grid;gap:5px;width:20px;margin:0 auto}
.gc-burger i{display:block;height:2px;background:currentColor;border-radius:2px;
  transition:transform var(--gc-dur) var(--gc-ease),opacity var(--gc-dur) var(--gc-ease)}

/* Sticky */
.gc-header--sticky.is-stuck .gc-navbar{position:fixed;top:0;left:0;right:0;z-index:900;
  box-shadow:0 6px 30px rgba(var(--gc-secondary-rgb),.1);animation:gcSlideDown .45s var(--gc-ease)}
@keyframes gcSlideDown{from{transform:translateY(-100%)}to{transform:translateY(0)}}
.gc-header--sticky.is-stuck .gc-menu__link{padding-top:28px;padding-bottom:28px}

/* ===== Search overlay ===== */
/* display must not be set unconditionally here: it would outrank the [hidden]
   attribute and leave an invisible full-viewport layer swallowing every click. */
.gc-search-overlay{position:fixed;inset:0;z-index:1000;place-items:center;
  background:rgba(var(--gc-secondary-rgb),.97);opacity:0;transition:opacity var(--gc-dur) var(--gc-ease)}
.gc-search-overlay:not([hidden]){display:grid}
.gc-search-overlay.is-open{opacity:1}
.gc-search-overlay__inner{width:min(720px,90vw)}
.gc-search-overlay__close{position:absolute;top:36px;right:40px;width:52px;height:52px;
  padding:0;background:transparent;color:#fff;border:1px solid rgba(var(--gc-white-rgb),.3);
  border-radius:50%}
.gc-search-overlay__close:hover{background:var(--gc-global);color:var(--gc-secondary)}
.gc-search-overlay .gc-search-form__field{padding:22px 60px 22px 0;background:transparent;
  border:0;border-bottom:2px solid rgba(var(--gc-white-rgb),.3);border-radius:0;
  font-size:26px;color:#fff}
.gc-search-overlay .gc-search-form__field::placeholder{color:rgba(var(--gc-white-rgb),.5)}

/* ===== Search form ===== */
.gc-search-form{position:relative;display:flex}
.gc-search-form__field{padding-right:60px}
.gc-search-form__submit{position:absolute;top:50%;right:6px;transform:translateY(-50%);
  width:44px;height:44px;padding:0;display:grid;place-items:center;background:transparent;
  color:var(--gc-heading);border-radius:50%}
.gc-search-form__submit:hover{background:var(--gc-global);color:var(--gc-secondary)}
.gc-search-overlay .gc-search-form__submit{right:0;color:#fff}

/* ===== Mobile panel ===== */
.gc-mobile-panel{position:fixed;inset:0;z-index:1000}
.gc-mobile-panel__backdrop{position:absolute;inset:0;background:rgba(var(--gc-secondary-rgb),.6);
  opacity:0;transition:opacity var(--gc-dur) var(--gc-ease)}
.gc-mobile-panel.is-open .gc-mobile-panel__backdrop{opacity:1}
.gc-mobile-panel__drawer{position:absolute;top:0;right:0;bottom:0;width:min(370px,86vw);
  display:flex;flex-direction:column;background:var(--gc-white);overflow-y:auto;
  transform:translateX(100%);transition:transform var(--gc-dur) var(--gc-ease)}
.gc-mobile-panel.is-open .gc-mobile-panel__drawer{transform:translateX(0)}
.gc-mobile-panel__head{display:flex;align-items:center;justify-content:space-between;
  padding:24px;border-bottom:1px solid var(--gc-border)}
.gc-mobile-panel__close{width:42px;height:42px;padding:0;background:var(--gc-light-bg);
  color:var(--gc-heading);border-radius:50%}
.gc-mobile-panel__nav{flex:1 1 auto;padding:10px 24px}
.gc-mobile-panel__foot{padding:24px;border-top:1px solid var(--gc-border);display:grid;gap:10px}
.gc-mobile-panel__contact{font-family:var(--gc-font-heading);font-weight:600;color:var(--gc-heading)}

/* Mobile menu list */
.gc-menu--mobile{flex-direction:column;align-items:stretch;gap:0}
.gc-menu--mobile .gc-menu__item{border-bottom:1px solid var(--gc-border)}
.gc-menu--mobile .gc-menu__link{padding:15px 0;font-size:17px}
.gc-menu--mobile .gc-menu__item--has-children>.gc-menu__link::after{display:none}
.gc-menu--mobile .gc-menu__toggle{position:absolute;top:6px;right:0;width:40px;height:40px;
  padding:0;background:transparent;color:var(--gc-heading)}
.gc-menu--mobile .gc-menu__toggle-icon{position:relative;display:block;width:12px;height:12px;margin:0 auto}
.gc-menu--mobile .gc-menu__toggle-icon::before,
.gc-menu--mobile .gc-menu__toggle-icon::after{content:"";position:absolute;background:currentColor;
  transition:transform var(--gc-dur) var(--gc-ease),opacity var(--gc-dur) var(--gc-ease)}
.gc-menu--mobile .gc-menu__toggle-icon::before{top:5px;left:0;width:12px;height:2px}
.gc-menu--mobile .gc-menu__toggle-icon::after{top:0;left:5px;width:2px;height:12px}
.gc-menu--mobile .gc-menu__toggle[aria-expanded=true] .gc-menu__toggle-icon::after{opacity:0}
.gc-menu--mobile .gc-submenu{position:static;opacity:1;visibility:visible;transform:none;
  box-shadow:none;border-radius:0;padding:0 0 10px 18px;display:none}
.gc-menu--mobile .gc-menu__item.is-open>.gc-submenu{display:block}
.gc-menu--mobile .gc-submenu .gc-menu__link{padding:10px 0}
.gc-menu--mobile .gc-submenu .gc-menu__item:last-child{border-bottom:0}

@media (max-width:1399px){
  .gc-menu{gap:24px}
  .gc-navbar__inner{gap:24px}
  .gc-navbar__phone{display:none}
}
@media (max-width:1199px){
  .gc-navbar__nav{display:none}
  .gc-navbar__burger{display:inline-flex;align-items:center;justify-content:center}
  .gc-navbar__inner{justify-content:space-between;min-height:84px}
}
@media (max-width:767px){
  .gc-topbar__right{display:none}
  .gc-topbar__inner{justify-content:center;min-height:44px;font-size:14px}
  .gc-navbar__btn{display:none}
  .gc-navbar__inner{min-height:72px}
  .gc-search-overlay__close{top:18px;right:18px}
  .gc-search-overlay .gc-search-form__field{font-size:20px}
}

/* ==========================================================================
   Reference-exact header geometry
   Top bar 60px solid #16222d; nav row 100px, transparent, 1px bottom rule.
   ========================================================================== */
.gc-header__row{width:100%;max-width:100%;padding-left:40px;padding-right:40px}
.gc-topbar__inner,.gc-navbar__inner{max-width:100%;padding-left:40px;padding-right:40px}
.gc-topbar__inner{min-height:60px;font-size:15px}
.gc-navbar__inner{min-height:100px}
.gc-menu__link{font-size:13px;font-weight:700;letter-spacing:.26px;text-transform:uppercase}
.gc-submenu .gc-menu__link{text-transform:capitalize;letter-spacing:0;font-size:15px;font-weight:500}
.gc-btn,.gc-navbar__btn,button,input[type=submit]{border-radius:5px}
.gc-navbar__btn{padding:14px 25px 13px;min-height:60px;align-items:center}
.gc-social--topbar{gap:16px;margin-left:8px}
.gc-social--topbar .gc-social__link{width:auto;height:auto;background:transparent;
  color:rgba(var(--gc-white-rgb),.72);font-size:15px}
.gc-social--topbar .gc-social__link:hover{background:transparent;color:var(--gc-global)}
.gc-topbar__cta{text-decoration:underline;text-underline-offset:4px;color:var(--gc-white)}
.gc-topbar__cta .gc-icon{display:none}

/* Overlay mode - header sits on top of the hero */
.gc-header--overlay{position:relative;z-index:500}
.gc-header--overlay .gc-navbar{position:absolute;top:60px;left:0;right:0;
  background:transparent;border-bottom:1px solid rgba(var(--gc-white-rgb),.27)}
.gc-header--overlay .gc-menu__link{color:var(--gc-white)}
.gc-header--overlay .gc-menu__link:hover,
.gc-header--overlay .gc-menu__item.current-menu-item>.gc-menu__link,
.gc-header--overlay .gc-menu__item.current-menu-ancestor>.gc-menu__link{color:var(--gc-global)}
.gc-header--overlay .gc-submenu .gc-menu__link{color:var(--gc-heading)}
.gc-header--overlay .gc-submenu .gc-menu__link:hover{color:var(--gc-global)}
.gc-header--overlay .gc-logo--text{color:var(--gc-white)}
.gc-header--overlay .gc-navbar__phone-label{color:var(--gc-white)}
.gc-header--overlay .gc-navbar__phone-number{color:var(--gc-white)}
.gc-header--overlay .gc-navbar__icon{background:transparent;color:var(--gc-white)}
.gc-header--overlay .gc-navbar__icon:hover{background:var(--gc-global);color:var(--gc-secondary)}
.gc-header--overlay .gc-navbar__burger{background:transparent;color:var(--gc-white)}
/* Sticky on an overlay header returns to the solid treatment */
.gc-header--overlay.is-stuck .gc-navbar{position:fixed;top:0;background:var(--gc-white);
  border-bottom-color:transparent}
.gc-header--overlay.is-stuck .gc-menu__link,
.gc-header--overlay.is-stuck .gc-logo--text,
.gc-header--overlay.is-stuck .gc-navbar__phone-number,
.gc-header--overlay.is-stuck .gc-navbar__icon,
.gc-header--overlay.is-stuck .gc-navbar__burger{color:var(--gc-heading)}
.gc-header--overlay.is-stuck .gc-navbar__phone-label{color:var(--gc-body)}
.gc-header--overlay.is-stuck .gc-navbar__icon{background:var(--gc-light-bg)}
/* The overlay header must not reserve space above the hero */
.gc-header--overlay.is-stuck{padding-bottom:0!important}

@media (max-width:1199px){
  .gc-topbar__inner,.gc-navbar__inner{padding-left:20px;padding-right:20px}
  .gc-header--overlay .gc-navbar{position:relative;top:0;background:rgba(var(--gc-secondary-rgb),.55)}
}
@media (max-width:767px){
  .gc-topbar__inner,.gc-navbar__inner{padding-left:15px;padding-right:15px}
  .gc-navbar__inner{min-height:72px}
}

/* Phone block with icon, and the arrow badge inside the header CTA */
.gc-navbar__phone{display:grid;grid-template-columns:auto 1fr;grid-template-rows:auto auto;
  column-gap:12px;align-items:center}
.gc-navbar__phone-icon{grid-row:1/3;display:grid;place-items:center;width:44px;height:44px;
  border-radius:50%;border:1px solid rgba(var(--gc-white-rgb),.28);color:var(--gc-global);
  font-size:18px}
.gc-header--overlay.is-stuck .gc-navbar__phone-icon{border-color:var(--gc-border)}
.gc-navbar__phone-label{font-size:12px;letter-spacing:.5px;text-transform:uppercase}
.gc-navbar__btn .gc-icon{width:32px;height:32px;padding:8px;border-radius:50%;
  background:var(--gc-secondary);color:var(--gc-global);box-sizing:border-box;
  transition:background var(--gc-dur) var(--gc-ease),color var(--gc-dur) var(--gc-ease)}
.gc-navbar__btn:hover .gc-icon{background:var(--gc-white);color:var(--gc-secondary)}

/* ==========================================================================
   Measured against the reference at 1440px - overrides everything above.
   Top-level nav: PJS 17px/400 uppercase, 28px line-height, 13px bottom pad,
   40px between items (li margin 0 20px). No dropdown caret on top level.
   ========================================================================== */
.gc-logo img,.custom-logo{max-height:45px;width:auto}
.gc-navbar__inner{gap:0}
.gc-navbar__brand{margin-right:100px}

.gc-menu{gap:0}
.gc-menu>.gc-menu__item{margin:0 20px}
.gc-menu>.gc-menu__item>.gc-menu__link{padding:0 0 13px;font-size:17px;font-weight:400;
  line-height:28px;letter-spacing:normal;text-transform:uppercase}
.gc-menu>.gc-menu__item--has-children>.gc-menu__link::after{display:none}
.gc-submenu{top:calc(100% + 13px);padding:18px 0}
.gc-submenu .gc-menu__link{font-size:17px;font-weight:400;line-height:28px;
  text-transform:uppercase;padding:6px 26px;color:var(--gc-heading)}
.gc-submenu .gc-menu__item--has-children>.gc-menu__link::after{display:block;
  content:"";width:6px;height:6px;border-right:2px solid currentColor;
  border-bottom:2px solid currentColor;position:absolute;right:26px;top:50%;
  transform:rotate(-45deg) translateY(-50%)}

/* Top bar type scale */
.gc-topbar__message{font-size:17px;color:rgba(var(--gc-white-rgb),.67)}
.gc-topbar__cta{font-family:var(--gc-font-body);font-weight:400;font-size:17px;
  color:var(--gc-white)}
.gc-topbar__item--address{font-size:15px;color:var(--gc-white)}
.gc-topbar__item--email,.gc-topbar__item--email a{font-size:17px;color:var(--gc-white)}
.gc-topbar__left{gap:18px}
.gc-topbar__right{gap:34px}

/* Phone block: 52px translucent disc, then a hairline divider before search */
.gc-navbar__actions{gap:18px}
.gc-navbar__phone-icon{width:52px;height:52px;font-size:22px;border:0;
  background:rgba(var(--gc-white-rgb),.12);color:var(--gc-global)}
.gc-header--overlay.is-stuck .gc-navbar__phone-icon,
.gc-header:not(.gc-header--overlay) .gc-navbar__phone-icon{background:var(--gc-light-bg)}
.gc-navbar__icon{width:auto;height:auto;background:transparent;font-size:25px}
.gc-navbar__icon:hover{background:transparent;color:var(--gc-global)}
.gc-navbar__icon.gc-search-open{position:relative;padding-left:26px;margin-left:8px}
.gc-navbar__icon.gc-search-open::before{content:"";position:absolute;left:0;top:50%;
  transform:translateY(-50%);width:1px;height:44px;background:rgba(var(--gc-white-rgb),.22)}
.gc-header--overlay.is-stuck .gc-navbar__icon.gc-search-open::before,
.gc-header:not(.gc-header--overlay) .gc-navbar__icon.gc-search-open::before{
  background:var(--gc-border)}

@media (max-width:1399px){
  .gc-navbar__brand{margin-right:40px}
  .gc-menu>.gc-menu__item{margin:0 12px}
  .gc-menu>.gc-menu__item>.gc-menu__link{font-size:15px}
}

/* Offset corrections from the 1440px measurement pass */
.gc-navbar__brand{margin-right:70px}
.gc-navbar__btn{padding:14px 15px 13px 25px;gap:18px}

/* Final geometry pass: reference gutters are 37px and the action cluster is
   460px wide; this keeps the whole row inside the content box. */
.gc-topbar__inner,.gc-navbar__inner{padding-left:37px;padding-right:37px}
.gc-navbar__actions{gap:10px}
.gc-navbar__brand{margin-right:80px}
.gc-logo img,.custom-logo{width:146px;height:auto;max-height:43px}
.gc-navbar__icon.gc-search-open{padding-left:24px;margin-left:16px}

/* Phone type matches the reference: label Be Vietnam Pro 13px ls .78px,
   number Plus Jakarta Sans 15px/600. */
.gc-navbar__phone-label{font-family:var(--gc-font-body);font-size:13px;line-height:21px;
  letter-spacing:.78px;text-transform:uppercase;color:var(--gc-white)}
.gc-navbar__phone-number{font-family:var(--gc-font-heading);font-weight:600;font-size:15px;
  line-height:24px}
.gc-header--overlay.is-stuck .gc-navbar__phone-label,
.gc-header:not(.gc-header--overlay) .gc-navbar__phone-label{color:var(--gc-body)}

/* Header CTA: white disc, dark glyph (reference) */
.gc-navbar__btn::after{background:var(--gc-white)}
.gc-navbar__btn .gc-icon{background-color:var(--gc-secondary)}
.gc-navbar__btn:hover::after{background:var(--gc-secondary)}
.gc-navbar__btn:hover .gc-icon{background-color:var(--gc-global)}
.gc-navbar__btn{padding:14px 60px 13px 25px;min-height:60px}

/* ==========================================================================
   Mobile header - measured against the reference at 375px.
   No top bar, no phone block, no CTA. Logo 109x32 at left 32; search icon
   and a 44px white rounded button holding a 2x2 dot grid on the right.
   ========================================================================== */
@media (max-width:1024px){
  .gc-topbar{display:none}
  .gc-navbar__phone,.gc-navbar__btn{display:none}

  .gc-header--overlay .gc-navbar{position:absolute;top:0;background:transparent;
    border-bottom:0}
  .gc-navbar{border-bottom:0}
  .gc-navbar__inner{min-height:76px;padding-left:32px;padding-right:32px;
    justify-content:space-between;gap:12px}
  .gc-navbar__brand{margin-right:0}
  .gc-logo img,.custom-logo{width:109px;height:auto;max-height:32px}

  .gc-navbar__actions{gap:14px}
  .gc-navbar__icon{font-size:24px}
  .gc-navbar__icon.gc-search-open{padding-left:0;margin-left:0}
  .gc-navbar__icon.gc-search-open::before{display:none}

  .gc-navbar__burger{display:inline-grid;place-items:center;width:44px;height:44px;
    padding:0;border-radius:8px;background:var(--gc-white);color:var(--gc-secondary)}
  .gc-header--overlay .gc-navbar__burger{background:var(--gc-white);
    color:var(--gc-secondary)}
  .gc-burger{display:grid;grid-template-columns:repeat(2,8px);gap:6px;width:auto;
    margin:0}
  .gc-burger i{width:8px;height:8px;border-radius:50%;background:currentColor}
}

/* Reference header CTA carries white label text on the accent ground */
.gc-navbar__btn,.gc-navbar__btn:hover{color:var(--gc-white)}
.gc-navbar__btn{padding:14px 60px 13px 25px}

/* Phone label, measured: Be Vietnam Pro 13px / 20.8, ls .78px, uppercase,
   full white. Scoped to beat the overlay-state rule above. */
.gc-header .gc-navbar__phone-label{font-family:var(--gc-font-body);font-weight:400;
  font-size:13px;line-height:20.8px;letter-spacing:.78px;text-transform:uppercase}
.gc-header--overlay .gc-navbar__phone-label{color:var(--gc-white)}
.gc-header--overlay.is-stuck .gc-navbar__phone-label,
.gc-header:not(.gc-header--overlay) .gc-navbar__phone-label{color:var(--gc-body)}

/* ==========================================================================
   Top bar icons - measured: all white, 21px. Socials are 21px white glyphs
   on a 36px pitch. Group gaps are 50px then 30px, not uniform.
   ========================================================================== */
.gc-topbar .gc-icon{color:var(--gc-white);width:21px;height:21px;font-size:21px}
.gc-topbar__item{gap:26px}
.gc-topbar__item .gc-icon{margin-right:0}
.gc-topbar__right{gap:50px}
.gc-social--topbar{gap:15px;margin-left:-20px}
.gc-social--topbar .gc-social__link{width:21px;height:21px;font-size:21px;
  color:var(--gc-white)}
.gc-social--topbar .gc-social__link .gc-icon{width:21px;height:21px;
  color:var(--gc-white)}
.gc-social--topbar .gc-social__link:hover,
.gc-social--topbar .gc-social__link:hover .gc-icon{color:var(--gc-global)}

/* Phone disc: 51px at 10% white, glyph in the accent colour */
.gc-navbar__phone-icon{width:51px;height:51px;
  background:rgba(var(--gc-white-rgb),.1)}

/* ==========================================================================
   Header typography - re-measured from the painted text nodes.
   My pass-2 read of 17px/400 came from the <a> box, not the glyphs; the
   reference nav is Plus Jakarta Sans 13px/28, w700, ls .26px, uppercase.
   ========================================================================== */
.gc-menu>.gc-menu__item>.gc-menu__link{font-size:13px;font-weight:700;
  line-height:28px;letter-spacing:.26px;text-transform:uppercase}
.gc-submenu .gc-menu__link{font-size:13px;font-weight:700;line-height:28px;
  letter-spacing:.26px;text-transform:uppercase}
.gc-navbar__brand{margin-right:87px}

/* Top bar: address and email are both 15px */
.gc-topbar__item--email,.gc-topbar__item--email a{font-size:15px;line-height:24px}
.gc-topbar__item--address{line-height:24px}

/* Phone glyph: filled white handset at 26px, 15px clear of the label.
   (Measured: svg fill rgb(255,255,255), 26x26, wrapper gap 15px.) */
.gc-navbar__phone-icon .gc-icon{width:26px;height:26px;color:var(--gc-white);
  background-color:var(--gc-white)}
.gc-navbar__phone-icon{font-size:26px;color:var(--gc-white)}
.gc-navbar__phone{column-gap:15px}
.gc-header--overlay.is-stuck .gc-navbar__phone-icon .gc-icon,
.gc-header:not(.gc-header--overlay) .gc-navbar__phone-icon .gc-icon{
  background-color:var(--gc-secondary)}

/* The overlay nav floats on whatever follows it, so nothing may reserve space
   for it in the flow. */
.gc-header--overlay{height:60px}
.gc-header--overlay .gc-topbar{position:relative;z-index:2}

/* ==========================================================================
   Dropdown panel - measured from the reference.
   250px wide, 10px radius, 0 0 60px rgba(53,57,69,.15), 10px/0 padding.
   Items 8px/25px; each carries a 4px gold dot that scales in on hover while
   the label shifts right.
   ========================================================================== */
.gc-submenu{min-width:250px;padding:10px 0;border-radius:10px;
  background:var(--gc-white);box-shadow:0 0 60px rgba(53,57,69,.15);border:0}
.gc-submenu .gc-menu__item{padding:0}
.gc-submenu .gc-menu__link{position:relative;display:block;padding:8px 25px;
  font-family:var(--gc-font-heading);font-weight:700;font-size:13px;line-height:28px;
  letter-spacing:.26px;text-transform:uppercase;color:var(--gc-secondary);
  transition:color .25s ease-in-out,padding-left .25s ease-in-out}
.gc-submenu .gc-menu__link::before{content:"";position:absolute;left:25px;top:50%;
  width:4px;height:4px;border-radius:20px;background:var(--gc-global);
  transform:translateY(-50%) scale(0);opacity:0;
  transition:transform .25s ease-in-out,opacity .25s ease-in-out}
.gc-submenu .gc-menu__link:hover,
.gc-submenu .gc-menu__item.current-menu-item>.gc-menu__link,
.gc-submenu .gc-menu__item.current-menu-ancestor>.gc-menu__link{
  color:var(--gc-global);padding-left:39px}
.gc-submenu .gc-menu__link:hover::before,
.gc-submenu .gc-menu__item.current-menu-item>.gc-menu__link::before,
.gc-submenu .gc-menu__item.current-menu-ancestor>.gc-menu__link::before{
  transform:translateY(-50%) scale(1);opacity:1}
.gc-submenu .gc-menu__item--has-children>.gc-menu__link::after{right:22px}

/* ==========================================================================
   Nav typography, settled against the reference's *computed* values with
   fonts confirmed loaded: Plus Jakarta Sans 17px / w400 / ls normal.
   (A 13px/700 rule exists in the reference CSS but does not win; the painted
   text measures 52px for "HOME", which only matches 17px/400.)
   ========================================================================== */
.gc-menu>.gc-menu__item>.gc-menu__link{font-size:17px;font-weight:400;
  line-height:28px;letter-spacing:normal;text-transform:uppercase;padding:0 0 13px}
.gc-menu>.gc-menu__item{margin:0 20px}
.gc-navbar__brand{margin-right:80px}

@media (max-width:1399px){
  .gc-menu>.gc-menu__item{margin:0 12px}
  .gc-menu>.gc-menu__item>.gc-menu__link{font-size:15px}
}

/* ==========================================================================
   Mega menu popup
   A top-level item with the class "gc-mega" opens a full-width panel under
   the nav bar on click: intro column | service list | details of the
   service that is hovered or focused.
   ========================================================================== */
.gc-navbar{position:relative}
.gc-menu__item--mega{position:static}
.gc-menu__item--mega.is-mega-open>.gc-menu__link{color:var(--gc-global)}

.gc-mega{position:absolute;left:0;right:0;top:100%;z-index:800;
  background:var(--gc-white);box-shadow:0 30px 60px rgba(var(--gc-secondary-rgb),.18);
  border-top:1px solid var(--gc-border);
  max-height:calc(100vh - 120px);overflow-y:auto;overscroll-behavior:contain;
  opacity:0;transform:translateY(-8px);
  transition:opacity .28s var(--gc-ease),transform .28s var(--gc-ease)}
.gc-mega.is-open{opacity:1;transform:translateY(0)}
.gc-mega[hidden]{display:none}

.gc-mega__inner{display:grid;grid-template-columns:330px minmax(0,1fr);
  max-width:100%;padding:0 40px}

/* Intro column */
.gc-mega__intro{position:relative;padding:44px 40px 44px 0;border-right:1px solid var(--gc-border)}
.gc-mega__title{margin:0 0 12px;font-family:var(--gc-font-heading);font-weight:700;
  font-size:30px;line-height:36px;letter-spacing:-.5px;color:var(--gc-heading)}
.gc-mega__text{margin:0 0 28px;font-size:15px;line-height:25px;color:var(--gc-body)}
.gc-mega__btn{background:var(--gc-secondary);color:var(--gc-white)}
.gc-mega__btn:hover{background:var(--gc-global);color:var(--gc-secondary)}
.gc-mega__close{position:absolute;left:0;bottom:30px;display:inline-flex;align-items:center;
  justify-content:center;width:40px;height:40px;min-height:0;padding:0;border:0;border-radius:50%;
  line-height:1;
  background:var(--gc-light-bg);color:var(--gc-heading);font-size:16px}
.gc-mega__close:hover{background:var(--gc-global);color:var(--gc-secondary)}

/* Body: list on the left, active pane on the right */
.gc-mega__body{position:relative;display:grid;grid-template-columns:300px minmax(0,1fr);
  min-height:360px}
.gc-mega__list{grid-column:1;margin:0;padding:30px 0;list-style:none;
  border-right:1px solid var(--gc-border)}
.gc-mega__item{margin:0}
.gc-mega__tab{position:relative;display:flex;align-items:center;justify-content:space-between;
  gap:12px;padding:13px 28px 13px 32px;font-family:var(--gc-font-heading);font-weight:600;
  font-size:16px;line-height:22px;color:var(--gc-heading);
  transition:color .2s var(--gc-ease),background .2s var(--gc-ease)}
.gc-mega__tab::before{content:"";position:absolute;left:0;top:10px;bottom:10px;width:3px;
  background:var(--gc-global);transform:scaleY(0);transition:transform .2s var(--gc-ease)}
.gc-mega__chev{width:7px;height:7px;flex:0 0 auto;border-right:2px solid currentColor;
  border-top:2px solid currentColor;transform:rotate(45deg);opacity:.35;
  transition:opacity .2s,transform .2s var(--gc-ease)}
.gc-mega__item.is-active>.gc-mega__tab{color:var(--gc-secondary);background:var(--gc-light-bg)}
.gc-mega__item.is-active>.gc-mega__tab::before{transform:scaleY(1)}
.gc-mega__item.is-active .gc-mega__chev{opacity:1;transform:rotate(45deg) translate(2px,-2px)}
.gc-mega__tab:focus-visible,.gc-mega__link:focus-visible,.gc-mega__more:focus-visible{
  outline:2px solid var(--gc-global);outline-offset:-2px}

.gc-mega__pane{position:absolute;top:0;left:300px;right:0;display:none;padding:44px 0 44px 48px}
.gc-mega__item.is-active>.gc-mega__pane{display:block;animation:gcMegaPane .25s var(--gc-ease)}
@keyframes gcMegaPane{from{opacity:0;transform:translateX(8px)}to{opacity:1;transform:none}}
.gc-mega__pane-title{margin:0 0 10px;font-family:var(--gc-font-heading);font-weight:700;
  font-size:24px;line-height:30px;color:var(--gc-heading)}
.gc-mega__pane-text{max-width:620px;margin:0 0 26px;font-size:15px;line-height:25px;color:var(--gc-body)}

.gc-mega__links{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px 32px;
  max-width:760px;margin:0 0 30px;padding:0;list-style:none}
.gc-mega__link{position:relative;display:block;padding:10px 0 10px 18px;font-size:15px;
  line-height:22px;color:var(--gc-heading);border-bottom:1px solid var(--gc-border)}
.gc-mega__link::before{content:"";position:absolute;left:0;top:50%;width:6px;height:6px;
  margin-top:-3px;border-radius:50%;background:var(--gc-global)}
.gc-mega__link:hover,.gc-mega__link[aria-current]{color:var(--gc-global)}

.gc-mega__more{display:inline-flex;align-items:center;gap:10px;font-family:var(--gc-font-heading);
  font-weight:700;font-size:15px;color:var(--gc-secondary);
  border-bottom:2px solid var(--gc-global);padding-bottom:4px}
.gc-mega__more:hover{color:var(--gc-global)}
.gc-mega__more .gc-icon{transition:transform .2s var(--gc-ease)}
.gc-mega__more:hover .gc-icon{transform:translateX(4px)}

/* Page dimmer behind the open popup */
.gc-mega-backdrop{position:fixed;inset:0;z-index:450;background:rgba(var(--gc-secondary-rgb),.45);
  opacity:0;transition:opacity .28s var(--gc-ease);pointer-events:none}
.gc-mega-open .gc-mega-backdrop{opacity:1;pointer-events:auto}
.gc-mega-open .gc-header{position:relative;z-index:960}

@media (max-width:1399px){
  .gc-mega__inner{grid-template-columns:270px minmax(0,1fr)}
  .gc-mega__body{grid-template-columns:260px minmax(0,1fr)}
  .gc-mega__pane{left:260px;padding-left:36px}
  .gc-mega__links{grid-template-columns:minmax(0,1fr)}
}
@media (max-width:1199px){
  .gc-mega,.gc-mega-backdrop{display:none!important}
}
