.gn-site .hero-media .elementor-widget-container,.gn-site .hero-media .gn-image img { width:100%; height:100%; }
.gn-site .hero-media .gn-decoration video { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.gn-site .ph-bg .gn-image,.gn-site .service-media .gn-image,.gn-site .pc-media .gn-image { width:100%; height:100%; }
.gn-site .logo-tile .gn-image { width:auto; height:auto; }
.gn-site .logo-tile .gn-image img { width:auto; height:auto; }
.gn-site .brand .gn-image { width:auto; flex:none; }
.gn-site .brand .gn-image img { width:auto; height:40px; }
.gn-site .site-header.is-solid .brand .gn-image img { height:34px; }
.gn-site .service-media,.gn-site .pc-media,.gn-site .ph-bg { position:relative; }
.gn-site .service-icon .gn-decoration { width:100%; }
.gn-site .gn-node.gn-h1,.gn-site .gn-node.gn-h2,.gn-site .gn-node.gn-h3,.gn-site .gn-node.gn-h4 { font-family:var(--font-head); }
.gn-site .gn-node .elementor-button-content-wrapper { font:inherit; }
.gn-site .gn-icon-link .elementor-button-text { position:absolute; width:1px; height:1px; overflow:hidden; clip-path:inset(50%); }
.gn-site .gn-node.gn-link { --container-widget-width:auto; --align-self:auto; }
.gn-site.gn-site.gn-site .gn-node .elementor-button { background:transparent; border:0; border-radius:inherit; color:inherit; font:inherit; padding:0; }
.gn-site.gn-site.gn-site .gn-node.gn-canvas { position:absolute; inset:0; width:100%; height:100%; pointer-events:none; }
.gn-site.gn-site.gn-site .hero-tags .gn-li::before { position:static; height:7px; }
.gn-site.gn-site.gn-site .stat + .stat::before { height:auto; }
.gn-site.gn-site.gn-site .cs-meta { margin-block-end:17px; }
.gn-site.gn-site.gn-site .stats { margin-block:17px; }
.gn-site.gn-site.gn-site .breadcrumb .gn-li { display:inline-flex; align-items:baseline; }
.gn-site.gn-site.gn-site .breadcrumb .gn-li + .gn-li::before { position:static; width:auto; height:auto; flex:none; background:none; }
.gn-site.gn-site.gn-site .gn-link:not(.btn) .elementor-button { justify-content:flex-start; text-align:start; }
.gn-site.gn-site.gn-site .gn-link:not(.btn) .elementor-button-content-wrapper { justify-content:flex-start; }
.gn-site.gn-site.gn-site .svc-media .frame > .gn-image { position:absolute; inset:0; width:100%; height:100%; }
.gn-site.elementor-editor-active .svc-media .frame::after,.gn-site.elementor-editor-active .svc-media .big-num { pointer-events:none; }
.gn-site.gn-site.gn-site .cs-toc .elementor-button-content-wrapper,.gn-site.gn-site.gn-site .cs-toc .elementor-button-text { font:inherit; color:inherit; text-align:start; }
.gn-site.gn-site.gn-site .cs-toc .gn-link-prefix { font-family:var(--font-mono); font-size:12px; color:var(--brand-light); }
.gn-site.gn-site.gn-site .cs-toc .gn-link .elementor-button { padding:8px 10px; }
.gn-site.gn-site.gn-site .subnav .gn-link-prefix { font-family:var(--font-mono); font-size:12px; color:var(--brand-light); }
.gn-site.gn-site.gn-site .subnav .gn-link { line-height:1.65; }
.gn-site.gn-site.gn-site .subnav .gn-link .elementor-button { padding:10px 16px; border:1px solid transparent; border-radius:999px; font:600 14.5px/1.65 var(--font-body); color:var(--text-2); }
.gn-site.gn-site.gn-site .subnav .gn-ul > .gn-li { flex:0 0 auto; }
.gn-site.gn-site.gn-site .subnav .gn-link .elementor-button-content-wrapper,
.gn-site.gn-site.gn-site .subnav .gn-link .elementor-button-text { font:inherit; color:inherit; }
.gn-site.gn-site.gn-site .subnav .elementor-button:hover { border-color:var(--line); }
.gn-site.gn-site.gn-site .subnav .elementor-button.is-active { background:var(--brand-deep); color:white; }
.gn-site.gn-site.gn-site .subnav .elementor-button.is-active .gn-link-prefix { color:var(--brand-pale); }
/* Elementor's container overlay height must not override the inset accent. */
.gn-site.gn-site.gn-site .cap::before { block-size:auto; pointer-events:none; }
.gn-site.gn-site.gn-site .footer-brand .f-logo { width:fit-content; }
.gn-site.gn-site.gn-site .footer-brand .f-logo img { width:auto; height:44px; }
.gn-site.gn-site.gn-site.admin-bar .drawer { top:32px; height:calc(100% - 32px); }
@media(max-width:782px){.gn-site.gn-site.gn-site.admin-bar .drawer{top:46px;height:calc(100% - 46px)}}
.gn-site .gn-node.gn-p p:last-child { margin-bottom:0; }
.gn-site.gn-site.gn-site .gn-node :is(.elementor-heading-title) { margin:0; padding:0; font:inherit; color:inherit; letter-spacing:inherit; line-height:inherit; max-inline-size:none; }
.gn-site.gn-site.gn-site .gn-node > .elementor-widget-container > :is(p,ul,ol,dt,dd),.gn-site.gn-site.gn-site .gn-node.gn-p > p { margin:0; padding:0; font:inherit; color:inherit; }
.gn-site .gn-node.gn-decoration:has(>.elementor-widget-container>.video-toggle),.gn-site .gn-node.gn-decoration:has(>.video-toggle),.gn-site .gn-node.gn-decoration:has(>.scroll-cue) { position:static; }
.gn-site .intro-media .gn-image img { height:100%; aspect-ratio:inherit; }
.gn-site .gn-link.stretched { position:static; }
.gn-site.gn-site.gn-site .gn-feature-list { display:grid; gap:28px; }
.gn-site.elementor-editor-active .stretched::after,.gn-site.elementor-editor-active .stretched a::after { pointer-events:none; }
.gn-site.elementor-editor-active [data-reveal],.gn-site.elementor-editor-active .fade-in,.gn-site.elementor-editor-active .hero h1 .line>span { opacity:1; transform:none; clip-path:none; animation:none; }
.gn-site.elementor-editor-active .gn-node { position:relative; min-height:10px; }
.gn-site.elementor-editor-active .gn-container { min-height:10px; }
.gn-site .wpcf7 form p { margin:0; }
.gn-site .gn-form-notice { padding:18px 20px; margin-bottom:24px; background:#edf6fc; border-inline-start:4px solid #085c9c; border-radius:8px; color:#0b1a33; line-height:1.6; }
.gn-site .gn-form-notice a { color:#085c9c; text-decoration:underline; }
.gn-site .wpcf7 input[type="submit"]:disabled { opacity:.55; cursor:not-allowed; }
.gn-site .wpcf7-form-control-wrap { display:block; }
.gn-site.gn-site.gn-site .wpcf7 .hp { position:absolute; inset-inline-start:0; inset-inline-end:auto; width:1px; height:1px; overflow:hidden; clip-path:inset(50%); }
.gn-site .wpcf7-not-valid-tip { color:#a32727; font-size:14px; margin-top:6px; }
.gn-site .wpcf7-response-output { border-radius:10px; padding:16px; font-size:16px; }
.gn-site .wpcf7-acceptance label { display:flex; align-items:flex-start; gap:10px; }
.gn-site .wpcf7-acceptance input { margin-top:5px; }
.gn-site .wpcf7-list-item { margin:0; }
.gn-site .gn-cv-field { position:relative; }
.gn-site.gn-site.gn-site .field input.gn-cv-input { position:absolute; inline-size:1px; block-size:1px; padding:0; border:0; overflow:hidden; clip-path:inset(50%); }
.gn-site .gn-cv-field:focus-within .file-drop { outline:3px solid var(--brand-light); outline-offset:3px; }
.gn-site .gn-submit { position:relative; flex:none; }
.gn-site .gn-submit input.btn { padding-inline-end:54px; }
.gn-site .gn-submit>.icon { position:absolute; inset-inline-end:22px; top:50%; transform:translateY(-50%); color:white; pointer-events:none; }
.gn-site .gn-submit .wpcf7-spinner { position:absolute; inset-inline-start:0; top:calc(100% + 6px); margin:0; }
.gn-site.gn-site.gn-site.admin-bar .site-header { top:32px; }
@media(max-width:782px){.gn-site.gn-site.gn-site.admin-bar .site-header{top:46px}}
@media(max-width:767px){.gn-site .brand .gn-image img,.gn-site .site-header.is-solid .brand .gn-image img{height:30px}}
@media(max-width:600px){.gn-site.gn-site.gn-site .intro-grid[style*="grid-template-columns"]{grid-template-columns:1fr!important}}
@media(min-width:601px) and (max-width:980px){.gn-site.gn-site.gn-site .fact{grid-template-columns:minmax(100px,1.2fr) minmax(0,1fr)}}
@media(prefers-reduced-motion:reduce){.gn-site .marquee-track{animation:none}}

/* Let the approved hover motion win after a card has finished entering the viewport. */
/* Clip only at the viewport edge; retain all slide distances and card shadows inside it. */
html:has(.gn-site) { overflow-x:clip; }
.js .gn-site.gn-site.gn-site :is(.service-card,.program-card)[data-reveal].is-in:hover { transform:translateY(-8px); }
.js .gn-site.gn-site.gn-site :is(.value-card,.feature-case)[data-reveal].is-in:hover { transform:translateY(-6px); }
.js .gn-site.gn-site.gn-site :is(.serve-tile,.logo-tile)[data-reveal].is-in:hover { transform:translateY(-4px); }
.js .gn-site.gn-site.gn-site :is(.cap,.info-card)[data-reveal].is-in:hover { transform:translateY(-3px); }
.js .gn-site.gn-site.gn-site .challenge[data-reveal].is-in:hover { transform:translateX(calc(4px * var(--dir))); }
.js .gn-site.gn-site.gn-site :is(.service-card,.value-card,.serve-tile,.logo-tile,.cap,.info-card,.challenge)[data-reveal].is-in:hover { transition:transform .35s var(--ease-out),box-shadow .35s,border-color .35s,background-color .3s; transition-delay:0s; }
.js .gn-site.gn-site.gn-site :is(.program-card,.feature-case)[data-reveal].is-in:hover { transition:transform .4s var(--ease-out),box-shadow .4s; transition-delay:0s; }

/* The WordPress toolbar must not overlap sticky navigation or anchored content. */
.gn-site.gn-site.gn-site.admin-bar #wpadminbar { position:fixed; }
.gn-site.gn-site.gn-site.admin-bar .subnav { top:102px; }
.gn-site.gn-site.gn-site.admin-bar .cs-aside { top:142px; }
html:has(.gn-site.admin-bar) { scroll-padding-top:132px; }
html:has(.gn-site .subnav) { scroll-padding-top:170px; }
html:has(.gn-site.admin-bar .subnav) { scroll-padding-top:202px; }
@media(max-width:782px){
  .gn-site.gn-site.gn-site.admin-bar .subnav { top:116px; }
  html:has(.gn-site.admin-bar) { scroll-padding-top:146px; }
  html:has(.gn-site.admin-bar .subnav) { scroll-padding-top:216px; }
}
@media(max-width:767px){.gn-site.gn-site.gn-site.admin-bar .subnav { top:114px; }}

/* Use the drawer at the client's reviewed 1115px viewport and below. */
@media(max-width:1115px){
  .gn-site.gn-site.gn-site .site-header .nav { display:none; }
  .gn-site.gn-site.gn-site .menu-toggle { display:inline-flex; }
  .gn-site.gn-site.gn-site .header-cta { margin-inline-start:auto; }
}
@media(min-width:1116px) and (max-width:1199px){
  .gn-site.gn-site.gn-site .site-header .bar { gap:16px; }
  .gn-site.gn-site.gn-site .site-header .nav a { padding-inline:8px; font-size:14px; white-space:nowrap; }
  .gn-site.gn-site.gn-site .site-header .nav a::after { inset-inline:8px; }
}

/* Match the HTML drawer controls without inheriting Hello's button padding. */
.gn-site.gn-site.gn-site :is(.menu-toggle,.drawer-close) {
  padding:0; flex:none; line-height:1; font-family:Arial,sans-serif;
  align-items:center; justify-content:center;
}
.gn-site.gn-site.gn-site .menu-toggle svg { width:20px; height:20px; max-width:none; flex:none; }
.gn-site.gn-site.gn-site .drawer-close { display:inline-flex; }
.gn-site.gn-site.gn-site .drawer-top > .gn-decoration { flex:none; width:44px; height:44px; }
.gn-site.gn-site.gn-site .drawer .btn .elementor-button { min-height:0; }
html:has(.gn-site .drawer.open) { overflow:hidden; }
/* The nested Elementor drawer must remain fixed to the viewport after scrolling. */
.gn-site.gn-site.gn-site .site-header:has(.drawer.open) { backdrop-filter:none; }

/* About facts: put supporting text below the number at the reviewed tablet width. */
@media(max-width:950px){
  .gn-site.gn-site.gn-site .facts .fact { grid-template-columns:1fr; gap:8px; }
}

/* Keep the case sidebar attached to document scrolling, not a non-scrolling body. */
body.gn-site.gn-site.gn-site { overflow-x:clip; }
.gn-site.gn-site.gn-site .cs-card .chips :is(li,.gn-li):hover {
  background:var(--brand-deep); border-color:var(--brand-deep); color:#fff;
}
@media(min-width:1181px){
  .gn-site.gn-site.gn-site .cs-aside { max-height:calc(100dvh - 130px); overflow-y:auto; }
  .gn-site.gn-site.gn-site.admin-bar .cs-aside { max-height:calc(100dvh - 162px); }
}

/* Icon-only social buttons retain the source's centered box and hover motion. */
.gn-site.gn-site.gn-site .social .gn-icon-link .elementor-button {
  display:grid; place-items:center; justify-content:center;
  width:42px; height:42px; border:1px solid rgba(255,255,255,.14);
  border-radius:10px; color:#fff; background:transparent;
}
.gn-site.gn-site.gn-site .social .gn-icon-link .elementor-button-content-wrapper { justify-content:center; }
.gn-site.gn-site.gn-site .social .gn-icon-link .elementor-button:hover {
  background:var(--brand-deep); border-color:var(--brand-deep); transform:translateY(-3px);
}
.gn-site.gn-site.gn-site .social .gn-icon-link svg { transform:none; }
/* Keep primary editing links visible without plugin shortcuts wrapping over the header. */
@media(min-width:783px) and (max-width:1180px){
  .gn-site #wpadminbar :is(#wp-admin-bar-updates,#wp-admin-bar-comments,#wp-admin-bar-wpseo-menu,#wp-admin-bar-epc_purge_menu,#wp-admin-bar-wp-mail-smtp-menu) { display:none; }
}

