/* Selected-page overrides leave the detailed services and standalone studies alone. */
.has-fracture-hero > .site-header,
.fracture-hero,
.has-fracture-hero .service-overview,
.has-fracture-hero .overview-stage { background: var(--brand-yellow); color: var(--ink); }
.has-fracture-hero > .site-header { border-color: #ded8aa; }
.has-fracture-hero > .site-header .container,
.fracture-hero .container { max-width: 1440px; }
.has-fracture-hero .site-header .brand-dot { color: var(--green); }
.has-fracture-hero .site-header .header-contact { border-color: var(--ink); }
.has-fracture-hero .site-header .header-contact:hover { background: var(--green); color: #fff; }
.has-fracture-hero .site-header .header-contact .arrow { filter: none; }
.has-fracture-hero .site-header .header-contact:hover .arrow { filter: invert(1); }
.has-fracture-hero .language-switch a[aria-current] { border-color: var(--ink); }
.has-fracture-hero .language-switch a:hover { background: #fff; color: var(--ink); }
.has-fracture-hero .site-header a:focus-visible { outline-color: var(--green); }
.has-fracture-hero .overview-link { color: #f6faf7; }
.has-fracture-hero .overview-link:is(.is-active, :hover, :focus-visible) { color: var(--ink); }
.has-fracture-hero .overview-link:focus-visible { outline-color: var(--green); }
.fracture-hero a:focus-visible { outline-color: var(--green); }
.fracture-hero { position: relative; isolation: isolate; overflow: hidden; }
.fracture-inner { min-height: max(720px, calc(100svh - var(--header-height) - 70px)); position: relative; display: flex; align-items: center; padding-block: 64px 90px; pointer-events: none; }
.fracture-hero .frontpage-copy { width: 48%; max-width: 600px; position: relative; z-index: 2; pointer-events: auto; }
.fracture-hero h1 { font-size: 96px; line-height: 1.12; max-width: 760px; color: inherit; }
.fracture-hero .hero-lead { font-size: 28px; line-height: 1.35; margin-top: 28px; max-width: 610px; }
.fracture-hero .hero-text { font-size: 20px; line-height: 1.5; max-width: 550px; color: var(--muted); margin-top: 16px; }
.fracture-hero .hero-actions { margin-top: 30px; }
.fracture-hero .hero-lead, .fracture-hero .hero-text,
.fracture-hero .hero-actions { animation: none; }
.fracture-hero .secondary-link { display: inline-flex; align-items: center; gap: 10px; }
.fracture-hero .secondary-link .arrow { filter: none; }
.fracture-hero .button-primary { background: var(--green); border-color: var(--green); color: #fff; }
.fracture-hero .button-primary:hover { background: #246b45; border-color: #246b45; }
.fracture-hero .button-primary .arrow { filter: invert(1); }
.fracture-hero .scene { position: absolute; inset: 0; z-index: -1; }
.fracture-hero canvas { display: block; width: 100%; height: 100%; }
.fracture-hero .scene-fallback { position: absolute; right: 8%; top: 20%; width: 24%; height: auto; }
.has-fracture-hero[data-scene-ready] .scene-fallback { display: none; }
.fracture-hero .motion-control { position: absolute; right: 40px; bottom: 24px; display: inline-flex; align-items: center; gap: 8px; min-height: 44px; font-size: 14px; cursor: pointer; color: #111; }
.fracture-hero .motion-control[hidden] { display: none; }
.fracture-hero .motion-control input { width: 16px; height: 16px; accent-color: var(--green); cursor: pointer; }
.fracture-hero .motion-control input:focus-visible { outline: 2px solid var(--green); outline-offset: 5px; }
.has-fracture-hero .site-footer { background: var(--brand-yellow); color: var(--ink); border-top: 1px solid #c8c08d; }
.has-fracture-hero .site-footer p,
.has-fracture-hero .footer-legal { color: var(--muted); }
.has-fracture-hero .site-footer .footer-legal { border-color: #c8c08d; }
.has-fracture-hero .site-footer a:focus-visible { outline-color: var(--green); }
@media (min-width: 1600px) { .fracture-hero h1 { font-size: 112px; } }
@media (max-width: 1120px) {
  .fracture-hero h1 { font-size: 84px; }
  .fracture-hero .hero-lead { font-size: 26px; }
  .fracture-hero .hero-text { max-width: 470px; }
  .fracture-hero .motion-control { right: 28px; }
}
@media (max-width: 860px) {
  .has-fracture-hero .header-inner { padding-block: 14px 8px; }
  .fracture-inner { min-height: calc(100svh - var(--header-height) - 70px); padding-top: 290px; padding-bottom: 44px; }
  .fracture-hero .frontpage-copy { width: 100%; max-width: none; }
  .fracture-hero h1 { font-size: 72px; max-width: 700px; }
  .fracture-hero .hero-text { max-width: 610px; }
  .fracture-hero .scene-fallback { width: 160px; height: 160px; top: 25px; left: calc(50% - 80px); }
  .fracture-hero .motion-control { top: 8px; bottom: auto; }
}
@media (max-width: 600px) {
  .has-fracture-hero .header-inner { gap: 0; min-height: 93px; }
  .has-fracture-hero .primary-nav { margin-top: 4px; padding: 0; font-size: 15px; }
  .fracture-inner { padding-top: 238px; padding-bottom: 8px; }
  .fracture-hero h1 { font-size: 52px; }
  .fracture-hero .hero-lead { font-size: 22px; margin-top: 14px; }
  .fracture-hero .hero-text { font-size: 18px; margin-top: 12px; }
  .fracture-hero .hero-actions { gap: 6px 20px; margin-top: 14px; }
  .fracture-hero .hero-actions .button { font-size: 18px; }
  .fracture-hero .motion-control { right: 22px; }
}
@media (max-width: 380px) { .fracture-hero h1 { font-size: 46px; } }
@media (min-width: 861px) and (max-height: 760px) {
  .fracture-inner { min-height: calc(100svh - var(--header-height) - 64px); padding-block: 24px 40px; }
  .fracture-hero h1 { font-size: 52px; }
  .fracture-hero .hero-lead { font-size: 22px; margin-top: 16px; }
  .fracture-hero .hero-text { font-size: 18px; margin-top: 12px; }
  .fracture-hero .hero-actions { margin-top: 20px; }
  .fracture-hero .hero-actions .button { font-size: 18px; padding: 12px 16px; }
  .fracture-hero .motion-control { bottom: 12px; }
}
@media (max-width: 600px) and (max-height: 760px) {
  .fracture-hero { --scene-mobile-size: 140px; --scene-mobile-center: 78px; }
  .fracture-inner { padding-top: 140px; padding-bottom: 8px; }
  .fracture-hero h1 { font-size: 40px; }
  .fracture-hero .hero-lead { font-size: 20px; margin-top: 12px; }
  .fracture-hero .hero-text { font-size: 16px; margin-top: 10px; }
  .fracture-hero .hero-actions .button { min-height: 44px; padding-block: 10px; font-size: 16px; }
  .fracture-hero .scene-fallback { top: 14px; width: 124px; height: 124px; left: calc(50% - 62px); }
}
/* Mobile and touch-first devices get a text-only hero, including without JavaScript. */
@media (max-width: 860px), (pointer: coarse) {
  .fracture-hero .scene, .fracture-hero .motion-control { display: none; }
  .fracture-inner { min-height: calc(100svh - var(--header-height) - 70px); padding-block: 40px; }
  .fracture-hero .frontpage-copy { width: 100%; max-width: 760px; }
}
@media (max-width: 600px) {
  .fracture-inner { padding-block: 28px; }
}
@media print {
  .fracture-hero { background: white; color: black; }
  .fracture-hero .scene, .fracture-hero .motion-control { display: none; }
  .has-fracture-hero .site-footer { background: white; color: black; }
  .has-fracture-hero .site-footer p, .has-fracture-hero .footer-legal { color: black; }
  .fracture-inner { min-height: 0; padding-block: 30px; }
  .fracture-hero .frontpage-copy { width: 100%; }
  .fracture-hero .hero-text { color: black; }
}
