/* FGLaw v2.7: editorial interface finishing; font family remains Astra-controlled. */
:root { --fg-reading: #B99C7E; }
/* Reading line: never blocks pointer events or the admin bar. */
/* Fixed to the viewport, including when Astra swaps header positioning. */
.fg-reading-progress {
  position: fixed; left: 0; top: 0; width: 100%; height: 3px;
  background: var(--fg-reading); z-index: 100100; pointer-events: none;
  transform: scaleX(var(--fg-reading-ratio, 0)); transform-origin: left center;
  transition: none;
}
/* WebKit and Firefox scrollbar enhancements, no layout-dependent hiding. */
html { scrollbar-color: #B99C7E #EDE8DF; scrollbar-width: thin; }
::-webkit-scrollbar { width: 9px; height: 9px; }
::-webkit-scrollbar-track { background: #EDE8DF; }
::-webkit-scrollbar-thumb { background: #B99C7E; border: 2px solid #EDE8DF; border-radius: 12px; }
::-webkit-scrollbar-thumb:hover { background: #512526; }
/* Editorial text control, not a floating round icon. */
.fg-back-top {
  position: fixed; right: clamp(1rem,3vw,2.5rem); bottom: clamp(1rem,3vw,2.25rem);
  display: inline-flex; align-items: center; gap: .75rem; min-height: 44px;
  padding: .72rem 1rem; border: 1px solid #B99C7E; border-radius: 0;
  background: #512526; color: #EDE8DF; box-shadow: 0 4px 22px rgba(36,17,17,.12);
  z-index: 800; cursor: pointer; font: inherit; font-size: .68rem; font-weight: 500;
  letter-spacing: .16em; line-height: 1.2; white-space: nowrap;
  opacity: 0; visibility: hidden; transform: translateY(12px);
  transition: opacity .25s, transform .25s, visibility .25s, background .2s, color .2s;
}
.fg-back-top.fg-back-top--visible { opacity: 1; visibility: visible; transform: none; }
.fg-back-top:hover { background: #683336; color: #EDE8DF; }
.fg-back-top:focus-visible { outline: 3px solid #B99C7E; outline-offset: 3px; }
.fg-back-top__arrow { font-size: 1.15rem; line-height: .7; letter-spacing: 0; }
@media(max-width:480px) { .fg-back-top { right: 1rem; bottom: 1rem; font-size: .63rem; padding: .75rem .85rem; } }
/* Legal tray is a body-level sibling of Astra's nested fixed layers. */
.fg-mobile-legal-tray[hidden] { display: none !important; }
@media (max-width: 921px) {
  body.fg-mobile-nav-open .ast-mobile-header-wrap .main-header-bar-navigation,
  body.fg-mobile-nav-open .ast-mobile-header-wrap .ast-builder-menu-mobile .main-navigation { padding-bottom: 10.5rem !important; }
  .fg-mobile-legal-tray:not([hidden]) { display: block; position: fixed; left: 0; bottom: 0; width: 100%; z-index: 100010; box-sizing: border-box; padding: 1.15rem clamp(1.5rem,7vw,3rem) max(1.25rem,env(safe-area-inset-bottom)); background: #512526; color: #EDE8DF; border-top: 1px solid rgba(237,232,223,.27); box-shadow: 0 -12px 30px rgba(25,8,8,.09); }
  .fg-mobile-legal-tray__links { display: flex; flex-wrap: wrap; gap: .45rem 1.1rem; }
  .fg-mobile-legal-tray__links a { color: #EDE8DF; font-size: .76rem; line-height: 1.5; text-decoration: none; background: none; }
  .fg-mobile-legal-tray__links a:hover, .fg-mobile-legal-tray__links a:focus-visible { color: #B99C7E; }
  .fg-mobile-legal-tray__links a:focus-visible { outline: 2px solid #B99C7E; outline-offset: 3px; }
  .fg-mobile-legal-tray__copy { margin: .75rem 0 0; font-size: .71rem; line-height: 1.5; color: #B99C7E; }
  body.fg-mobile-nav-open .fg-back-top { opacity: 0; visibility: hidden; }
}
@media (min-width: 922px) { .fg-mobile-legal-tray { display: none !important; } }

@media (prefers-reduced-motion: reduce) { .fg-back-top { transition: none; } html:focus-within { scroll-behavior: auto; } }
/* Regulatory metadata is information, not a second CTA. */
.fg-regulatory-meta { background: #EDE8DF; padding: clamp(1.75rem, 4vw, 3.5rem) 1rem; }
.fg-regulatory-meta .fg-container { width: min(100%, 950px); padding: 0; }
.fg-regulatory-meta__inner { border-top: 1px solid rgba(81,37,38,.27); padding-top: 1.35rem; display: grid; grid-template-columns: minmax(11rem, .32fr) minmax(0, 1fr); gap: clamp(1.5rem,5vw,5rem); }
.fg-regulatory-meta__eyebrow { color: #512526; text-transform: uppercase; letter-spacing: .17em; font-size: .68rem; margin: 0 0 .85rem; }
.fg-regulatory-meta__date { margin: 0; color: #512526; font-size: .92rem; line-height: 1.6; }
.fg-regulatory-meta__date span { display: block; font-size: .73rem; color: #80695c; letter-spacing: .06em; margin-bottom: .2rem; }
.fg-regulatory-meta__note { border-left: 1px solid #B99C7E; padding-left: clamp(1rem,2.5vw,2rem); color: #512526; font-size: clamp(.95rem,1.35vw,1.07rem); line-height: 1.7; }
.fg-regulatory-meta__note p { margin: 0 0 .75em; }
.fg-regulatory-meta__note p:last-child { margin-bottom: 0; }
.fg-regulatory-meta__disclaimer { grid-column: 2; font-size: .88rem; line-height: 1.65; }
@media (max-width: 650px) { .fg-regulatory-meta__inner { grid-template-columns: 1fr; gap: 1.25rem; } .fg-regulatory-meta__disclaimer { grid-column: 1; } }
/* Split-hero choreography only when JS is running, no layout shift. */
@media (prefers-reduced-motion: no-preference) {
  html.fg-js-motion .fg-split-hero-animate .fg-page-hero__media,
  html.fg-js-motion .fg-split-hero-animate .fg-es-hero__media { animation: fg-hero-image-in 1.6s cubic-bezier(.76,0,.24,1) both; }
  html.fg-js-motion .fg-split-hero-animate .fg-page-hero__content > *,
  html.fg-js-motion .fg-split-hero-animate .fg-es-hero__text-inner > * { animation: fg-hero-type-in .95s cubic-bezier(.22,1,.36,1) both; }
  html.fg-js-motion .fg-split-hero-animate .fg-page-hero__content > :nth-child(2),
  html.fg-js-motion .fg-split-hero-animate .fg-editorial-service__hero-copy > :nth-child(2) { animation-delay: .16s; }
  html.fg-js-motion .fg-split-hero-animate .fg-page-hero__content > :nth-child(n+3),
  html.fg-js-motion .fg-split-hero-animate .fg-editorial-service__hero-copy > :nth-child(n+3) { animation-delay: .28s; }
  @keyframes fg-hero-image-in { from { clip-path: inset(0 0 100% 0); transform: scale(1.045); } to { clip-path: inset(0 0 0 0); transform: scale(1); } }
  @keyframes fg-hero-type-in { from { opacity: 0; transform: translateY(24px); } to { opacity: 1; transform: none; } }
}
