/*
 * Shared header refinements.
 *
 * The primary navigation contains ten items, so the desktop row needs more room
 * than the legacy 1080px breakpoint allowed.  The drawer now takes over through
 * 1399px so common 1366px laptops and zoomed or translated navigation stay clear
 * before labels can collide. The existing accessible buttons and links stay
 * unchanged. The menu surface also receives the same restrained blue/sand
 * treatment on desktop and mobile.
 */

html{
  scroll-padding-top:104px;
}

.fg-header{
  isolation:isolate;
}

.fg-header-main,
.fg-header-main-inner,
.fg-header-nav,
.fg-header-nav-list,
.fg-header-actions{
  min-width:0;
}

.fg-header-nav-link,
.fg-header-menu-toggle,
.fg-header-icon-action,
.fg-header-contact-button,
.fg-header-mobile-toggle,
.fg-header-mobile-close,
.fg-header-mega a{
  -webkit-tap-highlight-color:transparent;
}

/* Modern, calm desktop menu surface. */
.fg-header-mega{
  width:min(620px,calc(100vw - 32px))!important;
  padding:10px!important;
  border:1px solid rgba(57,119,184,.24)!important;
  border-radius:22px!important;
  background:
    radial-gradient(circle at 92% 2%,rgba(90,167,255,.27),transparent 38%),
    radial-gradient(circle at 2% 100%,rgba(236,190,92,.22),transparent 40%),
    linear-gradient(140deg,#edf7ff 0%,#f9fbff 54%,#fff7e7 100%)!important;
  box-shadow:0 28px 70px rgba(7,35,68,.19),0 8px 22px rgba(7,35,68,.08)!important;
  backdrop-filter:blur(18px) saturate(1.12)!important;
  -webkit-backdrop-filter:blur(18px) saturate(1.12)!important;
}

.fg-header-nav-item:first-child .fg-header-mega{
  left:0!important;
  transform:translateY(12px)!important;
}

.fg-header-nav-item:first-child:hover .fg-header-mega,
.fg-header-nav-item:first-child:focus-within .fg-header-mega,
.fg-header-nav-item:first-child.is-open .fg-header-mega{
  transform:translateY(0)!important;
}

.fg-header-nav-item:first-child .fg-header-mega::before{
  left:28px!important;
  transform:rotate(45deg)!important;
}

.fg-header-mega-head{
  gap:16px!important;
  padding:11px 12px 15px!important;
  border-bottom:0!important;
  background:transparent!important;
}

.fg-header-mega-heading{
  display:inline-flex!important;
  align-items:center;
  gap:9px;
  color:#0a2748!important;
  font-size:15px!important;
  line-height:1.3;
  letter-spacing:-.01em;
}

.fg-header-mega-heading::before{
  content:"";
  width:9px;
  height:9px;
  flex:0 0 9px;
  border-radius:999px;
  background:linear-gradient(135deg,#2d8cff,#d7a94b);
  box-shadow:0 0 0 5px rgba(45,140,255,.09);
}

.fg-header-mega-all{
  min-height:38px!important;
  border:1px solid rgba(36,113,205,.12);
  background:rgba(255,255,255,.72)!important;
  box-shadow:0 7px 18px rgba(21,72,126,.07);
}

.fg-header-mega-all:hover,
.fg-header-mega-all:focus-visible{
  border-color:transparent;
  background:linear-gradient(135deg,#1677ff,#075fd5)!important;
  color:#fff!important;
  outline:3px solid rgba(22,119,255,.18);
  outline-offset:2px;
}

.fg-header-mega-links{
  gap:8px!important;
  padding:2px!important;
  background:transparent!important;
}

.fg-header-mega-links a{
  position:relative;
  min-height:50px!important;
  padding:11px 14px 11px 38px!important;
  border:1px solid rgba(72,112,156,.12);
  border-radius:13px;
  background:rgba(255,255,255,.78)!important;
  box-shadow:0 5px 15px rgba(10,45,82,.045);
  transition:transform .2s ease,border-color .2s ease,background .2s ease,box-shadow .2s ease,color .2s ease!important;
}

.fg-header-mega-links a::before{
  content:"";
  position:absolute;
  left:16px;
  top:50%;
  width:8px;
  height:8px;
  border-radius:999px;
  background:linear-gradient(135deg,#4c9cf7,#d8ab42);
  box-shadow:0 0 0 4px rgba(76,156,247,.08);
  transform:translateY(-50%);
}

.fg-header-mega-links a:hover,
.fg-header-mega-links a:focus-visible{
  z-index:1;
  border-color:rgba(42,126,224,.24);
  background:linear-gradient(120deg,rgba(237,246,255,.98),rgba(255,249,237,.98))!important;
  box-shadow:0 10px 24px rgba(24,83,145,.1);
  color:#075fd5!important;
  outline:3px solid rgba(22,119,255,.16);
  outline-offset:1px;
  transform:translateY(-1px);
}

.fg-header-nav-link:focus-visible,
.fg-header-menu-toggle:focus-visible,
.fg-header-icon-action:focus-visible,
.fg-header-contact-button:focus-visible,
.fg-header-mobile-toggle:focus-visible,
.fg-header-mobile-close:focus-visible{
  outline:3px solid rgba(22,119,255,.22)!important;
  outline-offset:2px;
}

/* A consistent, responsive interaction language for every desktop control. */
@media (min-width:1400px){
  .fg-header-main-inner{
    grid-template-columns:156px minmax(0,1fr) auto!important;
    gap:18px!important;
  }

  .fg-header-brand img{
    width:132px!important;
    height:71px!important;
  }

  .fg-header-nav{
    justify-self:stretch!important;
    max-width:100%!important;
  }

  .fg-header-nav-list{
    justify-content:flex-start!important;
    gap:0!important;
  }

  .fg-header-nav-link{
    padding-left:6px!important;
    padding-right:4px!important;
    font-size:12.5px!important;
  }

  .fg-header-nav-link::after{
    left:6px!important;
    right:4px!important;
  }

  .fg-header-menu-toggle{
    width:24px!important;
    margin-right:0!important;
  }

  .fg-header-actions{
    gap:8px!important;
  }

  .fg-header-contact-button{
    padding-left:14px!important;
    padding-right:14px!important;
  }

  .fg-header-mega-links a{
    background:rgba(255,255,255,.82)!important;
  }

  .fg-header-brand img{
    transition:transform .24s ease,filter .24s ease;
    transform-origin:left center;
  }

  .fg-header-brand:hover img,
  .fg-header-brand:focus-visible img{
    filter:drop-shadow(0 8px 13px rgba(8,42,94,.13));
    transform:translateY(-1px) scale(1.025);
  }

  .fg-header-nav-control{
    border:1px solid transparent;
    border-radius:12px;
    transition:background .18s ease,border-color .18s ease,box-shadow .2s ease,transform .18s ease;
  }

  .fg-header-nav-item:hover>.fg-header-nav-control,
  .fg-header-nav-item:focus-within>.fg-header-nav-control,
  .fg-header-nav-item.is-open>.fg-header-nav-control{
    border-color:rgba(56,125,202,.11);
    background:linear-gradient(135deg,rgba(236,246,255,.96),rgba(255,248,234,.96));
    box-shadow:0 8px 22px rgba(8,42,94,.08);
    transform:translateY(-1px);
  }

  .fg-header-nav-item:hover>.fg-header-nav-control .fg-header-nav-link,
  .fg-header-nav-item:focus-within>.fg-header-nav-control .fg-header-nav-link,
  .fg-header-nav-item.is-open>.fg-header-nav-control .fg-header-nav-link{
    color:#075fd5!important;
  }

  .fg-header-menu-toggle i{
    transition:transform .2s ease,color .2s ease;
  }

  .fg-header-nav-item:hover>.fg-header-nav-control .fg-header-menu-toggle i,
  .fg-header-nav-item:focus-within>.fg-header-nav-control .fg-header-menu-toggle i,
  .fg-header-nav-item.is-open>.fg-header-nav-control .fg-header-menu-toggle i{
    color:#075fd5;
  }

  .fg-header-nav-item.is-open>.fg-header-nav-control .fg-header-menu-toggle i{
    transform:rotate(180deg);
  }

  .fg-google-language,
  .fg-header-icon-action,
  .fg-header-contact-button{
    transition:transform .2s ease,border-color .2s ease,background .2s ease,box-shadow .2s ease,color .2s ease;
  }

  .fg-google-language:hover,
  .fg-google-language:focus-within,
  .fg-header-icon-action:hover,
  .fg-header-contact-button:hover{
    border-color:rgba(22,119,255,.25)!important;
    box-shadow:0 10px 24px rgba(8,42,94,.1)!important;
    transform:translateY(-2px);
  }
}

/* Keep the native language list readable at every width. */
.fg-google-language{
  width:auto!important;
  min-width:162px!important;
  flex:0 0 auto!important;
  overflow:visible!important;
}

#google_translate_element{
  min-width:120px!important;
  flex:1 1 auto!important;
  overflow:visible!important;
}

.fg-google-language-status{
  max-width:none!important;
  overflow:visible!important;
  text-overflow:clip!important;
}

#google_translate_element .goog-te-combo{
  width:120px!important;
  min-width:120px!important;
  max-width:100%!important;
  box-sizing:border-box!important;
  text-overflow:clip!important;
}

@media (min-width:1081px) and (max-width:1600px){
  .fg-google-language{width:132px!important;min-width:132px!important}
  #google_translate_element,
  #google_translate_element .goog-te-combo{width:122px!important;min-width:122px!important}
}

/*
 * Use the existing navigation drawer on tablets and narrow laptops. Keeping
 * this later than the minified header rules intentionally extends the original
 * 1080px breakpoint without duplicating or changing the menu markup.
 */
@media (max-width:1399px){
  html{scroll-padding-top:88px}
  html,body{overflow-x:hidden;overflow-x:clip}
  body.fg-header-lock{overflow:hidden;overscroll-behavior:none}

  .fg-header-topbar-inner{min-height:34px;gap:10px;overflow:hidden}
  .fg-header-topbar-group{min-width:0;gap:18px}
  .fg-header-topbar-address{display:none!important}
  .fg-header-topbar-link{min-height:34px}

  .fg-header-main{z-index:999}
  .fg-header-main-inner{
    min-height:76px!important;
    grid-template-columns:minmax(100px,1fr) auto!important;
    gap:12px!important;
  }
  .fg-header-brand img{width:118px!important;height:62px!important}
  .fg-header.is-sticky .fg-header-sticky-space{height:76px!important}

  .fg-header-actions{gap:7px!important}
  .fg-header-contact-button{display:none!important}
  .fg-header-mobile-toggle{display:grid!important}
  .fg-header-icon-action,
  .fg-header-mobile-toggle{width:44px;min-width:44px;height:44px;flex:0 0 44px}

  .fg-header-nav{
    position:fixed!important;
    z-index:1000!important;
    top:0!important;
    right:0!important;
    bottom:auto!important;
    width:min(400px,92vw)!important;
    height:100vh;
    height:100dvh;
    display:flex!important;
    flex-direction:column;
    padding:0!important;
    overflow:hidden!important;
    overscroll-behavior:contain;
    background:
      radial-gradient(circle at 100% 0%,rgba(79,154,239,.17),transparent 30%),
      radial-gradient(circle at 0% 100%,rgba(226,185,93,.13),transparent 28%),
      linear-gradient(155deg,#f7fbff,#fffdf8 76%)!important;
    box-shadow:-24px 0 60px rgba(2,18,37,.24)!important;
    visibility:hidden;
    pointer-events:none;
    transform:translate3d(105%,0,0)!important;
    transition:transform .32s cubic-bezier(.22,.8,.25,1),visibility 0s linear .32s!important;
    will-change:transform;
  }

  .fg-header.mobile-open .fg-header-nav{
    visibility:visible;
    pointer-events:auto;
    transform:translate3d(0,0,0)!important;
    transition-delay:0s!important;
  }

  .fg-header-mobile-head{
    position:relative!important;
    top:auto!important;
    z-index:5;
    flex:0 0 auto;
    min-height:76px;
    display:flex!important;
    align-items:center;
    justify-content:space-between;
    gap:15px;
    margin:0!important;
    padding:max(10px,env(safe-area-inset-top)) max(16px,env(safe-area-inset-right)) 10px max(16px,env(safe-area-inset-left))!important;
    border-bottom:1px solid rgba(98,129,163,.16)!important;
    background:rgba(249,252,255,.9)!important;
    box-shadow:0 8px 24px rgba(7,26,53,.06);
    backdrop-filter:blur(16px);
  }
  .fg-header-mobile-head img{width:104px!important;height:56px!important;object-fit:contain}
  .fg-header-mobile-close{
    width:44px!important;
    min-width:44px;
    height:44px!important;
    display:grid!important;
    place-items:center;
    padding:0;
    border:1px solid rgba(76,115,159,.17)!important;
    border-radius:13px!important;
    background:rgba(255,255,255,.88)!important;
    box-shadow:0 7px 18px rgba(9,40,74,.07);
    color:#071a35;
    cursor:pointer;
  }

  .fg-header-nav-list{
    flex:1 1 auto;
    min-height:0;
    display:block!important;
    margin:0!important;
    padding:5px 16px 16px!important;
    overflow:hidden auto!important;
    overscroll-behavior:contain;
    scrollbar-width:thin;
    scrollbar-color:#b9c9dc transparent;
  }
  .fg-header-nav-item{border-bottom:1px solid rgba(91,126,165,.15)!important}
  .fg-header-nav-control{
    min-height:56px!important;
    justify-content:space-between;
    border-radius:0!important;
    background:transparent!important;
  }
  .fg-header-nav-link{
    flex:1 1 auto;
    min-width:0;
    min-height:56px!important;
    padding:0 4px!important;
    font-size:15px!important;
    line-height:1.25;
  }
  .fg-header-nav-link::after{display:none!important}
  .fg-header-nav-item.is-active>.fg-header-nav-control .fg-header-nav-link{color:#075fd5!important}
  .fg-header-menu-toggle{
    width:44px!important;
    min-width:44px;
    height:44px!important;
    flex:0 0 44px;
    margin-right:0!important;
    border:1px solid rgba(76,115,159,.15)!important;
    background:linear-gradient(145deg,#edf5ff,#fffaf0)!important;
  }

  .fg-header-mega,
  .fg-header-nav-item:first-child .fg-header-mega,
  .fg-header-nav-item--align-right .fg-header-mega{
    position:static!important;
    width:100%!important;
    max-height:0;
    margin:0!important;
    padding:0 6px!important;
    border:0!important;
    border-radius:15px!important;
    box-shadow:none!important;
    opacity:1!important;
    visibility:visible!important;
    pointer-events:none;
    overflow:hidden!important;
    background:transparent!important;
    transform:none!important;
    transition:max-height .36s cubic-bezier(.22,.8,.25,1)!important;
  }
  .fg-header-mega::before{display:none!important}
  .fg-header-nav-item.is-open .fg-header-mega{
    max-height:820px;
    padding-bottom:12px!important;
    pointer-events:auto;
  }
  .fg-header-mega-head{gap:12px!important;padding:11px 2px 10px!important}
  .fg-header-mega-heading{font-size:13.5px!important}
  .fg-header-mega-all{min-height:38px!important;padding:8px 10px!important}
  .fg-header-mega-links{
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    gap:6px!important;
    margin:0!important;
    padding:6px!important;
    border:1px solid rgba(78,119,164,.14)!important;
    border-radius:15px!important;
    background:linear-gradient(145deg,rgba(234,245,255,.72),rgba(255,248,232,.66))!important;
  }
  .fg-header-mega-links a{
    min-height:46px!important;
    padding:9px 10px 9px 32px!important;
    border-radius:11px;
    font-size:11.5px!important;
  }
  .fg-header-mega-links a::before{left:13px;width:7px;height:7px}

  .fg-header-mobile-contact{
    position:relative;
    z-index:3;
    flex:0 0 auto;
    display:grid!important;
    grid-template-columns:1fr 1fr;
    gap:9px;
    padding:12px max(16px,env(safe-area-inset-right)) max(12px,env(safe-area-inset-bottom)) max(16px,env(safe-area-inset-left))!important;
    border-top:1px solid rgba(90,125,165,.16);
    background:rgba(249,252,255,.94);
    box-shadow:0 -10px 28px rgba(7,26,53,.08);
    backdrop-filter:blur(14px);
  }
  .fg-header-mobile-contact a{
    min-height:48px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:7px;
    padding:10px;
    border-radius:13px;
    box-shadow:0 9px 20px rgba(7,26,53,.1);
    font-size:12px;
    font-weight:850;
  }
  .fg-header-mobile-contact a:first-child{background:#16a85c;color:#fff!important}
  .fg-header-mobile-contact a:last-child{background:#1677ff;color:#fff!important}

  .fg-header-overlay{padding:0;border:0;pointer-events:none}
  .fg-header.mobile-open .fg-header-overlay{pointer-events:auto}
}

@media (max-width:1080px){
  html,body{overflow-x:hidden;overflow-x:clip}
  .fg-google-language{width:118px!important;min-width:118px!important}
  .fg-google-language-icon{display:none!important}
  #google_translate_element,
  #google_translate_element .goog-te-combo{width:108px!important;min-width:108px!important}
}

@media (max-width:640px){
  html{scroll-padding-top:76px}
  .fg-header-main-inner{min-height:68px!important;gap:8px!important}
  .fg-header-brand img{width:104px!important;height:56px!important}
  .fg-header.is-sticky .fg-header-sticky-space{height:68px!important}
  .fg-header-actions{gap:6px!important}
  .fg-header-nav{width:min(390px,94vw)!important}
  .fg-header-nav-list{padding-right:12px!important;padding-left:12px!important}
  .fg-header-mega-links{grid-template-columns:1fr!important}
  .fg-header-mobile-head,
  .fg-header-mobile-contact{
    padding-right:max(12px,env(safe-area-inset-right))!important;
    padding-left:max(12px,env(safe-area-inset-left))!important;
  }
  .fg-google-language{width:108px!important;min-width:108px!important;flex-basis:108px!important;padding-right:4px!important;padding-left:4px!important}
  #google_translate_element,
  #google_translate_element .goog-te-combo{width:100px!important;min-width:100px!important}
  #google_translate_element .goog-te-combo{padding-right:18px!important;padding-left:4px!important;font-size:11px!important}
}

@media (max-width:340px){
  .fg-header-brand img{width:88px!important;height:50px!important}
  .fg-header-actions{gap:4px!important}
  .fg-header-icon-action,
  .fg-header-mobile-toggle{width:40px;min-width:40px;height:40px;flex-basis:40px}
  .fg-google-language{width:104px!important;min-width:104px!important;flex-basis:104px!important}
  #google_translate_element,
  #google_translate_element .goog-te-combo{width:96px!important;min-width:96px!important}
}

@media (max-width:1399px) and (hover:hover) and (pointer:fine){
  .fg-header-nav-control:hover{
    background:linear-gradient(135deg,rgba(233,245,255,.88),rgba(255,247,230,.8))!important;
    box-shadow:inset 0 0 0 1px rgba(65,127,195,.11);
  }
  .fg-header-mobile-close:hover,
  .fg-header-menu-toggle:hover{
    border-color:rgba(22,119,255,.28)!important;
    background:linear-gradient(145deg,#e5f2ff,#fff5df)!important;
    color:#075fd5;
    transform:translateY(-1px);
  }
  .fg-header-mobile-contact a:hover{
    box-shadow:0 13px 28px rgba(7,26,53,.17);
    transform:translateY(-2px);
  }
}

.fg-header-icon-action:active,
.fg-header-contact-button:active,
.fg-header-mobile-toggle:active,
.fg-header-mobile-close:active,
.fg-header-menu-toggle:active,
.fg-header-mobile-contact a:active{
  transform:translateY(1px) scale(.98)!important;
}

@media (prefers-reduced-motion:reduce){
  .fg-header *,
  .fg-header *::before,
  .fg-header *::after{
    scroll-behavior:auto!important;
    transition-duration:.01ms!important;
    animation-duration:.01ms!important;
    animation-iteration-count:1!important;
  }
}
