/* All tokens and rules are scoped to the shared chrome; page/Elementor styles stay intact. */
@font-face {
  font-family: 'FG Manrope';
  src: url('../fonts/Manrope-variable.ttf') format('truetype');
  font-style: normal;
  font-weight: 200 800;
  font-display: swap;
}
.fg-header,
.fg-footer {
  --fg-ink: #001b13;
  --fg-forest: #003e29;
  --fg-night: #03120d;
  --fg-mint: #4df58a;
  --fg-white: #ffffff;
  --fg-muted: #bdcdc5;
  --fg-font: 'FG Manrope', Arial, sans-serif;
  --fg-gutter: clamp(1.25rem, 5vw, 5rem);
  --fg-max: 88rem;
  box-sizing: border-box;
  font-family: var(--fg-font);
  color: var(--fg-white);
  text-align: start;
  -webkit-font-smoothing: antialiased;
}
.fg-header *, .fg-footer * { box-sizing: border-box; }
.fg-header a, .fg-footer a { color: inherit; text-decoration: none; }
.fg-header a:focus-visible, .fg-footer a:focus-visible, .fg-header button:focus-visible {
  outline: 3px solid var(--fg-mint);
  outline-offset: 5px;
}
.fg-header {
  position: relative;
  z-index: 50;
  border: 0;
  padding: 0;
  background: var(--fg-night);
}
.fg-header--overlay {
  position: absolute;
  inset-inline: 0;
  /* Protect white navigation over bright imagery while retaining the cinematic overlay. */
  background: linear-gradient(180deg, rgb(0 12 8 / 94%), rgb(0 12 8 / 78%) 65%, transparent);
}
.fg-header--light {
  --fg-white: #001b13;
  --fg-muted: #475d51;
  background: #f7faf8;
}
.fg-header--light .fg-menu-toggle { color: var(--fg-ink); background: #f7faf8; }
.fg-header--light .fg-menu-toggle:hover, .fg-header--light .fg-menu-toggle:focus { background: #e1f2e7; }
.fg-header--light a:focus-visible, .fg-header--light button:focus-visible,
.fg-header--light a.fg-cta:focus-visible { outline-color: #00683e; }
.fg-header--light .fg-menu a::after { background: #00683e; }
body.admin-bar .fg-header--overlay { top: 32px; }
.fg-header__inner {
  max-width: var(--fg-max);
  margin-inline: auto;
  padding: 1rem var(--fg-gutter) 1.15rem;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: clamp(1.25rem, 3.5vw, 3.5rem);
}
.fg-brand { display: inline-flex; flex: 0 0 auto; align-items: center; line-height: 0; }
.fg-logo { display: block; width: clamp(11rem, 18vw, 16rem); max-width: 100%; height: auto; object-fit: contain; }
.fg-navigation { display: flex; flex: 1; align-items: center; justify-content: space-between; gap: clamp(1.5rem, 3.5vw, 3.8rem); }
.fg-menu { display: flex; align-items: center; gap: clamp(1.25rem, 2.5vw, 2.5rem); padding: 0; margin: 0; list-style: none; }
.fg-menu li { margin: 0; padding: 0; list-style: none; }
.fg-menu a, .fg-menu .fg-pending { position: relative; display: inline-block; padding-block: .6rem; font-size: .9rem; line-height: 1.4; font-weight: 600; white-space: nowrap; }
.fg-menu a::after { content: ''; position: absolute; inset-inline: 0; bottom: .15rem; height: 2px; background: var(--fg-mint); transform: scaleX(0); transform-origin: left; transition: transform .18s ease; }
.fg-menu a:hover::after, .fg-menu a[aria-current='page']::after, .fg-menu .current-menu-item > a::after { transform: scaleX(1); }
.fg-pending { color: var(--fg-muted); cursor: default; }
.fg-header .fg-cta, .fg-footer .fg-cta {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .6rem;
  padding: .8rem 1.65rem;
  min-height: 3.35rem;
  border: 1px solid transparent;
  border-radius: 999px;
  background: var(--fg-mint);
  color: var(--fg-ink);
  font: 800 .93rem/1.3 var(--fg-font);
  white-space: nowrap;
  text-decoration: none;
}
.fg-header a.fg-cta:hover { background: #82ffaa; }
.fg-header a.fg-cta:focus-visible { outline-color: white; }
.fg-menu-toggle { display: inline-flex; align-items: center; gap: .55rem; border: 1px solid #577c68; background: var(--fg-night); border-radius: 999px; padding: .7rem .95rem; color: white; font: 700 .85rem/1.4 var(--fg-font); cursor: pointer; }
.fg-menu-toggle:hover, .fg-menu-toggle:focus { background: var(--fg-forest); color: white; }
.fg-menu-toggle__icon, .fg-menu-toggle__icon::before, .fg-menu-toggle__icon::after { display: block; width: 1.05rem; height: 2px; background: currentColor; }
.fg-menu-toggle__icon { position: relative; }
.fg-menu-toggle__icon::before, .fg-menu-toggle__icon::after { position: absolute; content: ''; left: 0; }
.fg-menu-toggle__icon::before { top: -5px; }
.fg-menu-toggle__icon::after { top: 5px; }
.fg-menu-open .fg-menu-toggle__icon { background: transparent; }
.fg-menu-open .fg-menu-toggle__icon::before { top: 0; transform: rotate(45deg); }
.fg-menu-open .fg-menu-toggle__icon::after { top: 0; transform: rotate(-45deg); }
.fg-sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }
.fg-footer { padding: 0; border: 0; border-top: 1px solid #1b4934; background: radial-gradient(ellipse at top left, #073623, var(--fg-night) 65%); }
.fg-footer__inner { max-width: var(--fg-max); margin-inline: auto; padding: clamp(2.5rem, 5vw, 4.5rem) var(--fg-gutter) 1.5rem; }
.fg-footer__top { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); align-items: start; gap: 3rem; padding-bottom: 3rem; }
.fg-footer .fg-logo { width: 14rem; }
.fg-footer__links, .fg-footer__contact { min-width: 0; padding-top: .25rem; }
.fg-footer .fg-menu { flex-direction: column; align-items: flex-start; gap: .25rem; }
.fg-footer .fg-menu a, .fg-footer .fg-menu .fg-pending { padding-block: .25rem; }
.fg-footer__email { display: inline-block; margin: .25rem 0 0; font-size: .92rem; color: var(--fg-mint) !important; text-decoration: none !important; overflow-wrap: anywhere; }
.fg-footer__bottom { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 1rem 2rem; align-items: center; border-top: 1px solid #32533f; padding-top: 1.5rem; color: var(--fg-muted); font-size: .78rem; line-height: 1.6; }
.fg-footer__bottom p { margin: 0; }
.fg-legal { display: flex; flex-wrap: wrap; gap: .6rem 1.5rem; }
.fg-legal a:hover { color: white; text-decoration: underline; text-underline-offset: .2em; }
/* Keep hidden authoritative even where Elementor/parent styles set display. */
.fg-header [hidden] { display: none !important; }
@media (max-width: 1100px) {
  .fg-header__inner { flex-wrap: wrap; gap: 1rem; padding-block: .9rem; }
  .fg-logo { width: 11rem; }
  .fg-header--overlay.fg-menu-open { background: var(--fg-night); }
  .fg-header--overlay:not(.fg-navigation-ready) { position: relative; background: var(--fg-night); }
  .fg-navigation { flex-basis: 100%; display: flex; align-items: stretch; flex-direction: column; gap: 1rem; padding-block: 1rem .5rem; }
  .fg-navigation-ready .fg-navigation { max-height: calc(100dvh - 7rem); overflow-y: auto; }
  .fg-navigation .fg-menu { flex-direction: column; align-items: stretch; gap: .2rem; }
  .fg-navigation .fg-menu a, .fg-navigation .fg-menu .fg-pending { display: block; padding: .8rem .2rem; font-size: 1rem; }
  .fg-navigation .fg-menu a::after { inset-inline-end: auto; width: 2rem; bottom: .5rem; }
  .fg-header__action .fg-cta { width: 100%; min-height: 48px; }
  .fg-footer__top { gap: 2rem; }
}
@media (max-width: 767px) {
  .fg-footer__top { grid-template-columns: minmax(0, 1fr); }
  .fg-footer__bottom { flex-direction: column; align-items: flex-start; }
}
@media (max-width: 600px) {
  .fg-header__inner { padding-inline: 1.25rem; }
  .fg-header .fg-logo { width: 9.5rem; }
  .fg-footer__top { gap: 1.8rem; padding-bottom: 2rem; }
  .fg-footer__bottom { flex-direction: column; align-items: flex-start; }
}
@media (max-width: 782px) { body.admin-bar .fg-header--overlay { top: 46px; } }
/* Desktop only: preserve flow on interior pages and the original hero overlay. */
@media (min-width: 1101px) {
  html:has(.fg-header) { scroll-padding-top: calc(var(--fg-header-height, 120px) + 16px); }
  html:has(body.admin-bar .fg-header) { scroll-padding-top: calc(var(--fg-header-height, 120px) + 48px); }
  .fg-header { position: sticky; top: 0; z-index: 999; }
  .fg-header--overlay { position: fixed; background-color: transparent; transition: background-color .2s ease; }
  .fg-header--overlay.fg-header--scrolled { background-color: rgb(0 62 41 / 98%); }
  body.admin-bar .fg-header { top: 32px; }
}
@media (prefers-reduced-motion: reduce) { .fg-header, .fg-header *, .fg-footer * { transition: none !important; } }
