/* Shared site chrome. Keep the original page styles and content independent. */
.gs-site-header, .gs-site-footer { font-family: var(--font-primary), sans-serif; font-size:16px; line-height:24px; }
.gs-site-header *, .gs-site-footer * { box-sizing:border-box; }
.gs-site-header a, .gs-site-footer a { color:inherit; text-decoration:none; }
.gs-site-header button, .gs-site-footer button { font:inherit; color:inherit; border:0; background:none; cursor:pointer; }
.gs-site-header img, .gs-site-footer img { display:block; }
.gs-site-header [hidden], .gs-site-footer [hidden] { display:none!important; }
.gs-site-header :is(a,button):focus-visible, .gs-site-footer :is(a,button):focus-visible { outline:2px solid #0077fd; outline-offset:4px; }
.gs-site-header { position:fixed; z-index:50; top:16px; left:50%; transform:translateX(-50%); width:min(1200px,calc(100% - 32px)); color:#111; }
.gs-nav { position:relative; isolation:isolate; padding:14px 20px; border-radius:32px; display:grid; grid-template-columns:230px minmax(0,1fr) 230px; align-items:center; }
.gs-nav::before { content:""; position:absolute; inset:0; z-index:-1; border-radius:inherit; pointer-events:none; }
.gs-site-header.gs-scrolled .gs-nav::before, .gs-site-header.gs-menu-open .gs-nav::before, .gs-submenu-surface {
  background:rgb(255 255 255 / 80%); border:1px solid #0000000d; backdrop-filter:blur(16px); -webkit-backdrop-filter:blur(16px);
  box-shadow:0 12px 16px -4px #11111114,0 4px 6px -2px #11111108,0 2px 2px -1px #1111110a;
}
.gs-brand-row { display:flex; align-items:center; justify-content:space-between; height:40px; }
.gs-logo { display:block; width:94px; flex-shrink:0; }
.gs-navigation { display:flex; align-items:center; justify-content:center; gap:40px; list-style:none; margin:0; padding:0; }
.gs-navigation>li { margin:0; padding:0; }
.gs-nav-link { display:flex; align-items:center; white-space:nowrap; padding:8px 0; font-weight:600!important; line-height:24px; }
.gs-nav-link:hover { color:#0077fd; }
.gs-disclosure { position:relative; }
.gs-resources-heading { display:flex; align-items:center; justify-content:space-between; }
.gs-mobile-toggle, .gs-resources-toggle, .gs-mobile-arrow { display:none!important; }
.gs-contact { justify-self:end; display:flex; align-items:center; gap:12px; }
.gs-site-header .gs-login-button { display:flex; align-items:center; justify-content:center; min-width:88px; height:40px; padding:0 16px; border:1px solid #4b5f75; border-radius:999px; background:transparent; color:#222e3d; font-weight:600; white-space:nowrap; }
.gs-site-header .gs-login-button:hover { color:#0077fd; border-color:#0077fd; }
.gs-contact-button { display:flex; align-items:center; justify-content:center; height:40px; padding:0 16px; border-radius:999px; white-space:nowrap; font-weight:600; color:#fff!important; background:linear-gradient(to bottom in oklab,#4b5f75,#222e3d); box-shadow:0 4px 6px -1px #1111111a,0 2px 4px -2px #1111110f; }
.gs-contact-button:hover { filter:brightness(1.08); }
.gs-submenu { position:absolute; top:100%; left:50%; transform:translateX(-50%); padding-top:20px; width:360px; }
.gs-submenu-surface { padding:8px; border-radius:8px; }
.gs-product { display:flex; align-items:center; gap:12px; padding:12px 16px; min-height:84px; border-radius:2px; font-weight:400; }
.gs-product[href]:hover { background:#f2f4f7; }
.gs-product-icon { width:40px; height:40px; flex:0 0 40px; }
.gs-product-copy { min-width:0; display:flex; flex-direction:column; gap:1px; }
.gs-product-title { display:flex; align-items:center; flex-wrap:wrap; gap:7px; font-size:16px; line-height:24px; font-weight:500; color:#111; }
.gs-product-subtitle { font-size:12px; line-height:18px; color:#787878; }
.gs-badge { display:inline-block; width:max-content; white-space:nowrap; font-size:11px; line-height:18px; padding:0 7px; border-radius:999px; background:#4b5f7510; border:1px solid #4b5f7525; color:#657282; font-weight:500; }
.gs-unreleased { cursor:default; }
/* Footer: approved compact layout with circular social links. */
.gs-site-footer { width:100%; background:#0e131a; color:#fff; padding:48px 24px 24px; }
.gs-footer-container { max-width:1200px; margin:0 auto; }
.gs-footer-main { display:grid; grid-template-columns:280px 1fr; gap:72px; margin-bottom:36px; }
.gs-brand-contact { display:flex; flex-direction:column; align-items:flex-start; }
.gs-social-round { display:flex; gap:10px; margin-top:20px; }
.gs-social-round a { display:flex; align-items:center; justify-content:center; width:36px; height:36px; border:1px solid #ffffff24; border-radius:50%; background:#ffffff0d; }
.gs-social-round a:hover { background:#ffffff18; border-color:#ffffff40; }
.gs-social-round img { width:20px; height:20px; }
.gs-company-address { margin-top:24px; }
.gs-company-name { font-size:14px; line-height:22px; font-weight:500; }
.gs-address { font-size:14px; line-height:24px; color:#787878; margin-top:4px; max-width:290px; }
.gs-site-footer address { margin-top:16px; display:flex; flex-direction:column; font-size:16px; line-height:24px; font-weight:500; font-style:italic; }
.gs-site-footer address span { font-size:14px; line-height:22px; color:#787878; margin-bottom:4px; }
.gs-sitemap { display:grid; grid-template-columns:1fr 1.2fr 1fr 1fr; gap:32px; align-content:start; }
.gs-sitemap h2 { font-size:14px; line-height:22px; font-weight:500; color:#8c919a; margin:0 0 22px; }
.gs-sitemap a, .gs-footer-canvas { display:block; font-size:16px; line-height:24px; margin:0 0 18px; }
.gs-sitemap a:hover { color:#82b9ff; }
.gs-external { font-size:13px; color:#929aa5; }
.gs-footer-canvas { display:flex; flex-direction:column; align-items:flex-start; gap:7px; color:#b5bac2; }
.gs-footer-canvas .gs-badge { background:#ffffff0b; border-color:#ffffff20; color:#a6afbc; }
.gs-footer-bottom { border-top:1px solid #ffffff1a; padding-top:24px; display:flex; align-items:center; gap:28px; font-size:14px; }
.gs-legal { display:flex; gap:32px; color:#787878; }
.gs-legal a { text-decoration:underline; }
.gs-language { position:relative; margin-left:auto; }
.gs-site-footer .gs-language-trigger { display:flex; align-items:center; gap:10px; padding:0 16px; height:40px; border:1px solid #ffffff24; border-radius:999px; background:#ffffff0f; color:#f3f4f6; font-size:14px; line-height:22px; }
.gs-language-trigger svg { width:16px; height:16px; }
.gs-language-trigger svg:last-child { width:14px; }
.gs-site-footer .gs-language-trigger:hover { background:#ffffff18; }
.gs-language-options { position:absolute; bottom:48px; left:0; width:100%; border-radius:16px; background:#ffffffed; backdrop-filter:blur(16px); padding:6px; box-shadow:0 8px 24px #0003; }
.gs-site-footer .gs-language-options a { display:flex; justify-content:space-between; width:100%; border-radius:12px; padding:7px 10px; color:#222e3d; font-size:14px; }
.gs-site-footer .gs-language-options a:hover { background:#f2f4f7; }
.gs-copyright { color:#787878; white-space:nowrap; font-size:14px; }
@media(max-width:1100px) {
  .gs-footer-main { grid-template-columns:260px 1fr; gap:36px; }
  .gs-sitemap { gap:24px; }
  .gs-footer-bottom { gap:20px; flex-wrap:wrap; }
}
/* Match the site's existing desktop / mobile navigation breakpoint. */
@media(max-width:1279px) {
  .gs-nav { display:block; max-height:calc(100vh - 32px); max-height:calc(100dvh - 32px); overflow-y:auto; overscroll-behavior:contain; scrollbar-width:thin; scrollbar-color:#4b5f7580 transparent; }
  /* Keep the glass on the scroll container, so short screens retain it
     behind the bottom links when the mobile menu scrolls internally. */
  .gs-nav::before { content:none; }
  .gs-site-header.gs-scrolled .gs-nav, .gs-site-header.gs-menu-open .gs-nav {
    background:rgb(255 255 255 / 80%); backdrop-filter:blur(16px); -webkit-backdrop-filter:blur(16px);
    box-shadow:inset 0 0 0 1px #0000000d,0 12px 16px -4px #11111114,0 4px 6px -2px #11111108,0 2px 2px -1px #1111110a;
  }
  .gs-brand-row { height:36px; }
  .gs-mobile-toggle { display:flex!important; align-items:center; justify-content:center; width:44px; height:44px; margin-right:-10px; padding:0; }
  .gs-close-icon { display:none!important; }
  .gs-menu-open .gs-close-icon { display:block!important; }
  .gs-menu-open .gs-menu-icon { display:none!important; }
  .gs-navigation, .gs-contact { display:none; }
  .gs-menu-open .gs-navigation { display:flex; flex-direction:column; align-items:stretch; gap:0; margin-top:14px; }
  .gs-menu-open .gs-contact { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1.55fr); width:100%; justify-self:stretch; margin-top:12px; }
  .gs-site-header .gs-login-button, .gs-contact-button { min-width:0; height:44px; }
  .gs-nav-link { min-height:40px; width:100%; padding:0; font-weight:500!important; justify-content:space-between; }
  .gs-mobile-arrow { display:block!important; }
  .gs-resources-heading .gs-nav-link { width:auto; flex:1; }
  .gs-resources-toggle { display:flex!important; align-items:center; justify-content:center; width:44px; height:40px; margin-right:-10px; padding:0; }
  .gs-submenu { position:static; transform:none; padding:0; width:100%; }
  .gs-submenu-surface { background:none; border:0; border-radius:0; padding:0; backdrop-filter:none; -webkit-backdrop-filter:none; box-shadow:none; }
  .gs-product { min-height:70px; padding:6px 0; }
  .gs-badge { font-size:10px; }
  .gs-contact-button { width:100%; }
}
@media(max-width:767px) {
  .gs-site-footer { padding:32px 24px 24px; }
  .gs-footer-main { display:flex; flex-direction:column; gap:32px; margin-bottom:28px; }
  .gs-brand-contact { width:100%; }
  .gs-social-round { gap:12px; }
  .gs-social-round a { width:40px; height:40px; }
  .gs-sitemap { grid-template-columns:1fr 1fr; gap:28px 24px; }
  .gs-sitemap h2 { margin-bottom:16px; }
  .gs-sitemap a, .gs-footer-canvas { margin-bottom:14px; }
  .gs-sitemap a { min-height:30px; }
  .gs-footer-bottom { align-items:flex-start; gap:20px; }
  .gs-legal { gap:18px; width:100%; font-size:13px; flex-wrap:wrap; }
  .gs-language { margin-left:0; }
  .gs-copyright { width:100%; font-size:13px; white-space:normal; }
  .gs-footer-canvas .gs-badge { font-size:11px; }
}
@media(prefers-reduced-motion:no-preference) {
  .gs-social-round a { transition:background .15s,border-color .15s; }
}

.gs-language-options { min-width:150px; }
.gs-language-options a { gap:12px; white-space:nowrap; }
