/* Shared navigation. Content keeps its existing layout; only the compact menu floats. */
.gn-header,.gn-dialog,.gn-toggle{--gn-ink:#161a18;--gn-green:var(--green,#1d7d63);box-sizing:border-box;color:var(--gn-ink);font-family:inherit}
.gn-header{position:relative;z-index:90;display:flex;align-items:center;justify-content:space-between;gap:24px;height:104px;padding:22px var(--page,4vw);background:#fff}
.gn-header.site-header{position:absolute;inset:0 0 auto;height:var(--header,104px)}
.gn-brand{display:block;flex:0 0 176px;text-decoration:none}
.gn-brand img{display:block;width:100%;height:auto}
.gn-brand>span{display:block;margin-top:7px;font:700 8px/1.3 var(--font-site);text-align:center;letter-spacing:.19em}
.gn-desktop{display:flex;align-items:center;gap:26px;margin-left:auto;white-space:nowrap;font-size:14px;font-weight:700;line-height:1.5}
.gn-desktop>a{display:flex;align-items:center;min-height:44px;text-decoration:none}
.gn-desktop>a:hover,.gn-desktop>a[aria-current],.gn-business-trigger:hover,.gn-business-trigger.is-current{color:var(--gn-green)}
.gn-business{position:relative}
.gn-business-trigger{display:flex;align-items:center;gap:6px;min-height:44px;border:0;padding:0;background:none;color:inherit;font:inherit;cursor:pointer}
.gn-business-trigger>svg{width:18px;height:18px;transition:transform .2s}
.gn-business-trigger[aria-expanded=true]>svg{transform:rotate(180deg)}
.gn-dropdown{position:absolute;top:calc(100% + 15px);left:-26px;width:580px;padding:26px;background:#fff;border:1px solid #161a181a;border-radius:18px;box-shadow:0 18px 50px #161a1824;white-space:normal;animation:gn-appear .2s ease-out}
.gn-dropdown::before{content:"";position:absolute;left:0;right:0;top:-20px;height:20px}
.gn-dropdown-heading{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:20px}
.gn-dropdown-heading>span{font:700 11px/1.4 var(--font-site);letter-spacing:.1em;color:var(--gn-green)}
.gn-dropdown-heading>a{display:flex;align-items:center;gap:8px;min-height:32px;font-size:13px}
.gn-dropdown-heading svg{width:20px;height:20px}
.gn-services{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.gn-service{display:grid;grid-template-columns:22px minmax(0,1fr) 20px;align-items:center;gap:9px;min-height:104px;padding:17px 13px;background:#f4f5f4;border-radius:10px;text-decoration:none;transition:background .18s}
.gn-service:hover,.gn-service[aria-current]{background:#ddf6ed}
.gn-service-number{align-self:start;padding-top:3px;font:700 11px/1.3 var(--font-site);color:var(--gn-green)}
.gn-service small{display:block;margin-bottom:6px;font:700 9px/1.4 var(--font-site);letter-spacing:.025em;color:#58645e}
.gn-service strong{display:block;font-size:15px;font-weight:700;line-height:1.65;overflow-wrap:anywhere}
.gn-service strong>span{display:inline-block;white-space:nowrap}
.gn-service>svg{width:20px;height:20px;color:var(--gn-green);transition:transform .2s}
.gn-service:hover>svg{transform:translateX(3px)}
.gn-actions{display:flex;align-items:center;gap:14px;flex-shrink:0}
.gn-header .gn-motion{display:grid;place-items:center;width:36px;height:36px;min-height:0;padding:0;border:1px solid #161a18;border-radius:50%;background:#fff;font:700 12px/1 var(--font-site);box-shadow:none;flex-shrink:0}
.gn-contact{display:flex;align-items:center;gap:20px;min-height:44px;padding:6px 7px 6px 19px;border:1px solid #161a18;border-radius:50px;font-size:13px;font-weight:700;line-height:1.4;text-decoration:none;box-shadow:2px 2px 0 #161a18}
.gn-contact>span{display:grid;place-items:center;width:30px;height:30px;border-radius:50%;background:var(--gn-green);color:#fff}
.gn-contact svg{width:20px;height:20px}
.gn-toggle,.gn-close{display:flex;align-items:center;justify-content:center;gap:10px;min-height:48px;padding:10px 16px;border:1.5px solid #161a18;border-radius:50px;background:#fff;font:700 12px/1 var(--font-site);letter-spacing:.04em;cursor:pointer}
.gn-toggle svg,.gn-close svg{width:24px;height:24px;flex-shrink:0}
.gn-header .gn-toggle,.gn-dialog .gn-close,button.gn-floating-toggle{border-radius:50px}
.gn-header-toggle{display:none}
.gn-floating-toggle{position:fixed;z-index:95;top:max(20px,env(safe-area-inset-top));right:max(24px,env(safe-area-inset-right));box-shadow:0 4px 16px #161a181a;animation:gn-appear .2s ease-out}
.gn-toggle:hover,.gn-close:hover{background:#ddf6ed}
.gn-header a:focus-visible,.gn-header button:focus-visible,.gn-dialog a:focus-visible,.gn-dialog button:focus-visible,.gn-toggle:focus-visible{outline:3px solid var(--green,#1d7d63);outline-offset:4px}
.gn-dropdown[hidden],.gn-toggle[hidden]{display:none!important}
html.gn-menu-open{overflow:hidden}
.gn-dialog{position:fixed;inset:0 0 0 auto;width:min(680px,100%);max-width:100%;height:100%;height:100dvh;max-height:none;margin:0;padding:0;border:0;border-radius:0;background:#fff;box-shadow:-20px 0 70px #0002;overflow-y:auto;overscroll-behavior:contain;font-size:16px;line-height:1.6}
.gn-dialog:not([open]){display:none}
.gn-dialog[open]{animation:gn-drawer-in .24s ease-out}
.gn-dialog::backdrop{background:#14221c66;backdrop-filter:blur(4px)}
.gn-dialog-top{position:sticky;top:0;z-index:1;display:flex;align-items:center;justify-content:space-between;gap:20px;padding:24px 36px 18px;background:#fff}
.gn-dialog-top>span{font:700 13px/1.4 var(--font-site);letter-spacing:.12em;color:var(--gn-green)}
.gn-close{padding:8px 13px;min-height:44px;border:0}
.gn-dialog-nav{padding:0 36px 36px}
.gn-section-link{display:flex;align-items:center;justify-content:space-between;min-height:50px;margin-bottom:10px;font-size:22px;font-weight:700}
.gn-section-link svg{width:25px;height:25px}
.gn-dialog .gn-services{gap:12px}
.gn-dialog .gn-service{min-height:108px}
.gn-main-links{display:grid;grid-template-columns:1fr 1fr;gap:6px 24px;margin-top:24px}
.gn-main-links>a{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:58px;font-size:18px;font-weight:700;text-decoration:none}
.gn-main-links svg{width:20px;height:20px}
.gn-main-links>a:hover,.gn-extra-links>a:hover{color:var(--gn-green)}
.gn-extra-links{display:flex;flex-wrap:wrap;gap:6px 24px;margin-top:14px}
.gn-extra-links>a{display:flex;align-items:center;min-height:44px;font-size:14px;font-weight:700}
.gn-dialog-contact{display:flex;align-items:center;justify-content:space-between;gap:20px;min-height:72px;margin-top:24px;padding:18px 24px;border-radius:12px;background:var(--gn-green);color:white;font-size:22px;font-weight:700;text-decoration:none}
.gn-dialog-contact svg{width:28px;height:28px}
.gn-dialog-contact:hover{background:#008c66}
@keyframes gn-appear{from{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)}}
@keyframes gn-drawer-in{from{opacity:0;transform:translateX(30px)}to{opacity:1;transform:translateX(0)}}
@media(min-width:1101px) and (max-width:1250px){.gn-desktop{gap:18px;font-size:13px}.gn-header{gap:20px}.gn-brand{flex-basis:155px}.gn-actions{gap:10px}.gn-contact{gap:12px}.gn-dropdown{left:-65px;width:560px}}
@media(max-width:1100px){.gn-desktop{display:none}.gn-header-toggle{display:flex}.gn-actions{margin-left:auto}}
@media(max-width:600px){
 .gn-header,.gn-header.site-header{height:82px;padding:17px var(--page,22px);gap:12px}
 .gn-brand{flex-basis:120px}.gn-brand>span{font-size:6px;margin-top:5px}
 .gn-actions{gap:10px}.gn-header .gn-motion{width:32px;height:32px}.gn-contact{display:none}
 .gn-toggle{gap:7px;padding:9px 12px;font-size:11px;min-height:44px}.gn-toggle svg{width:21px;height:21px}
 .gn-floating-toggle{top:max(14px,env(safe-area-inset-top));right:16px}
 .gn-dialog-top{padding:16px 22px 10px}.gn-dialog-nav{padding:0 22px max(28px,env(safe-area-inset-bottom))}
 .gn-section-link{font-size:21px;min-height:44px;margin-bottom:12px}
 .gn-dialog .gn-services{grid-template-columns:1fr;gap:8px}
 .gn-dialog .gn-service{min-height:78px;padding:14px 15px;grid-template-columns:24px minmax(0,1fr) 22px;gap:12px}
 .gn-service small{font-size:9px;margin-bottom:3px}.gn-service strong{font-size:16px;line-height:1.5}
 .gn-main-links{gap:0 15px;margin-top:20px}.gn-main-links>a{font-size:15px;min-height:52px}
 .gn-extra-links{margin-top:6px;gap:6px 20px}.gn-extra-links>a{font-size:13px}
 .gn-dialog-contact{font-size:21px;min-height:65px;margin-top:18px;padding:15px 20px}
}
@media(prefers-reduced-motion:reduce){.gn-dropdown,.gn-floating-toggle,.gn-dialog[open]{animation:none}.gn-service,.gn-service>svg,.gn-business-trigger>svg{transition:none}}

/* The desktop links gather toward the same corner as the compact menu. */
.gn-header .gn-desktop,.gn-header .gn-actions{transition:opacity .24s ease,transform .45s cubic-bezier(.22,1,.36,1),visibility 0s;transform-origin:right center}
.gn-header.is-condensed .gn-desktop,.gn-header.is-condensed .gn-actions{opacity:0;transform:translate(16px,-8px) scale(.94);pointer-events:none;visibility:hidden;transition-delay:0s,0s,.24s}
.gn-floating-toggle{animation:none;width:52px;overflow:hidden;opacity:0;visibility:hidden;pointer-events:none;transform:translate(18px,-8px) scale(.76);transform-origin:100% 50%;transition:width .48s cubic-bezier(.22,1,.36,1),transform .48s cubic-bezier(.22,1,.36,1),opacity .25s ease,visibility 0s .48s}
.gn-floating-toggle>span{display:block;overflow:hidden;max-width:0;opacity:0;white-space:nowrap;transform:translateX(8px);transition:max-width .4s cubic-bezier(.22,1,.36,1),opacity .2s ease,transform .4s cubic-bezier(.22,1,.36,1)}
.gn-floating-toggle>svg{transform:rotate(-30deg) scale(.7);transition:transform .48s cubic-bezier(.22,1,.36,1)}
.gn-floating-toggle.is-visible{width:108px;opacity:1;visibility:visible;pointer-events:auto;transform:translate(0,0) scale(1);transition-delay:.04s,.04s,.04s,0s}
.gn-floating-toggle.is-visible>span{max-width:44px;opacity:1;transform:translateX(0);transition-delay:.1s}
.gn-floating-toggle.is-visible>svg{transform:rotate(0) scale(1)}
@media(max-width:600px){.gn-floating-toggle.is-visible{width:94px}}
@media(prefers-reduced-motion:reduce){.gn-header .gn-desktop,.gn-header .gn-actions,.gn-floating-toggle,.gn-floating-toggle>span,.gn-floating-toggle>svg{transition:none}}
body.no-motion .gn-header .gn-desktop,body.no-motion .gn-header .gn-actions,body.no-motion .gn-floating-toggle,body.no-motion .gn-floating-toggle>span,body.no-motion .gn-floating-toggle>svg{transition:none}
