/* Two presentation shells, one set of content and form elements. */
.standard-header[hidden], .standard-viewer[hidden], .site-mode-notice[hidden] { display: none !important; }
.standard-hero-actions { display: none; }
.hero-video-toggle { position: fixed; bottom: 26px; left: 32px; z-index: 1500; display: flex; align-items: center; justify-content: center; gap: 8px; min-height: 44px; padding: 8px 14px; border: 1px solid #ffffff35; border-radius: 999px; background: #111113e8; color: #e5e5e8; font: 600 11px/1.2 Inter, sans-serif; cursor: pointer; }
.hero-video-toggle:hover { border-color: #ff5963; color: #fff; }
.hero-video-toggle:focus-visible { outline: 2px solid #ff5963; outline-offset: 3px; }
.hero-video-toggle svg { width: 16px; height: 16px; fill: none; stroke: currentColor; stroke-width: 2; }
.hero-video-toggle .video-play-icon, .hero-video-toggle[aria-pressed="true"] .video-pause-icon { display: none; }
.hero-video-toggle[aria-pressed="true"] .video-play-icon { display: initial; }
html[data-site-mode="standard"][data-standard-page="true"] .hero-video-toggle,
html[data-site-mode="signal"] .workspace-active .hero-video-toggle { display: none; }
.site-mode-switch { position: fixed; z-index: 1500; right: 108px; top: 38px; display: flex; padding: 4px; border: 1px solid #3b3b3f; border-radius: 999px; background: #111113; box-shadow: 0 6px 22px #0002; }
.site-mode-switch::before { content: ""; position: absolute; inset: 4px auto 4px 4px; width: calc((100% - 8px) / 2); border-radius: inherit; background: #d5010d; box-shadow: 0 2px 10px #d5010d20; transform: translateX(0); transition: transform 520ms cubic-bezier(.22, 1, .36, 1); pointer-events: none; }
html[data-site-mode="standard"] .site-mode-switch::before { transform: translateX(100%); }
.site-mode-switch button { position: relative; z-index: 1; flex: 1 0 72px; min-width: 72px; min-height: 36px; padding: 8px 12px; border: 0; border-radius: 999px; background: transparent; color: #b9b9bf; font: 600 11px/1.2 Inter, sans-serif; cursor: pointer; transition: color 320ms ease; }
.site-mode-switch button:hover { color: #fff; }
html[data-site-mode="signal"] .site-mode-switch [data-site-mode-choice="signal"],
html[data-site-mode="standard"] .site-mode-switch [data-site-mode-choice="standard"] { color: #fff; }
.site-mode-switch button:disabled { cursor: not-allowed; opacity: .45; }
.site-mode-switch button:focus-visible, .standard-header a:focus-visible, .standard-menu-toggle:focus-visible, .standard-text-link:focus-visible { outline: 2px solid #ff5963; outline-offset: 3px; }
.standard-header { position: fixed; z-index: 1400; inset: 16px 16px auto; min-height: 80px; display: flex; align-items: center; gap: 28px; padding: 18px 220px 18px 28px; background: #101012; border-bottom: 1px solid #ffffff21; }
.standard-brand { flex: 0 0 auto; width: 175px; }
.standard-brand img { display: block; width: 100%; height: auto; }
.standard-menu { margin-left: auto; display: flex; align-items: center; gap: clamp(18px, 2.8vw, 44px); }
.standard-menu a { position: relative; padding: 14px 0; white-space: nowrap; color: #c3c3c9; font-size: 12px; font-weight: 600; }
.standard-menu a::after { content: ""; position: absolute; bottom: 4px; left: 0; width: 100%; height: 2px; background: #d5010d; transform: scaleX(0); transform-origin: left; transition: transform 320ms ease; }
.standard-menu a:hover, .standard-menu a[aria-current="page"] { color: #fff; }
.standard-menu a:hover::after, .standard-menu a[aria-current="page"]::after { transform: scaleX(1); }
.standard-menu-toggle { display: none; }
.standard-viewer { position: fixed; inset: 96px 16px 16px; z-index: 100; background: #0e0e10; overflow: hidden; }
.standard-viewer:focus { outline: none !important; }
.standard-viewer .workspace-site-layer { visibility: visible; pointer-events: auto; transform: none; box-shadow: none; container-type: inline-size; }
.standard-viewer .viewer-page { margin: 0 auto !important; }
.standard-viewer .viewer-page-hero { padding-inline: max(40px, calc((100% - 1280px) / 2)); }
.standard-viewer .viewer-page-body > section { padding-inline: max(40px, calc((100% - 1280px) / 2)); }
.standard-viewer .viewer-page-footer { padding-inline: max(40px, calc((100% - 1280px) / 2)); }
.standard-viewer .viewer-page-hero h1 { max-width: 16ch; }
.standard-viewer .viewer-page-intro { max-width: 660px; }
.standard-viewer .viewer-service-card-badge { max-width: calc(100% - 92px); margin-bottom: 86px; font-size: 10px; letter-spacing: .1em; line-height: 1.5; }
.standard-viewer .viewer-service-card-copy { max-width: 100%; }
.standard-viewer .viewer-care-details > div:first-child { min-width: 0; container-type: inline-size; }
.standard-viewer .viewer-care-details h2 { max-width: none; font-size: clamp(36px, 12cqw, 68px); }
.standard-viewer .viewer-page-eyebrow { left: max(40px, calc((100% - 1280px) / 2)); }
.standard-viewer .viewer-page-hero .viewer-page-eyebrow { top: 42px; }
.site-mode-notice { position: fixed; z-index: 1600; bottom: 18px; left: 50%; transform: translateX(-50%); width: min(560px, calc(100% - 40px)); padding: 14px 20px; border: 1px solid #ff596366; border-radius: 10px; color: #eee; background: #191416; box-shadow: 0 8px 30px #0005; font-size: 13px; line-height: 1.6; }
html[data-site-mode="standard"] .foghorn-workspace,
html[data-site-mode="standard"] .workspace-direct-nav,
html[data-site-mode="standard"] .workspace-mobile-view-toggle,
html[data-site-mode="standard"] .conversation-dock,
html[data-site-mode="standard"] .signal-return-control,
html[data-site-mode="standard"] .signal-session-menu,
html[data-site-mode="standard"] .prompt-handoff-clone,
html[data-site-mode="standard"] .hero > .nav,
html[data-site-mode="standard"] .hero .ask-card,
html[data-site-mode="standard"] .hero .mobile-hero-nav,
html[data-site-mode="standard"] .hero .mobile-menu,
html[data-site-mode="standard"] .hero .menu-backdrop { display: none !important; }
html[data-site-mode="standard"] body.workspace-home { overflow: auto; }
html[data-site-mode="standard"] .hero { display: flex !important; visibility: visible !important; opacity: 1 !important; position: relative !important; min-height: calc(100svh - 32px); height: auto !important; margin: 16px; overflow: hidden; }
html[data-site-mode="standard"] .hero .hero-content.shell { display: flex; flex-direction: column; justify-content: center; min-height: calc(100svh - 32px); width: min(1280px, calc(100% - 80px)); padding: 140px 0 80px; margin: auto; transform: none !important; opacity: 1 !important; visibility: visible !important; }
html[data-site-mode="standard"] .hero :is(.hero-bg-video,.hero-video-fade,.hero-grid-glow,.hero-shade) { visibility: visible !important; }
html[data-site-mode="standard"] .hero .hero-bg-video.is-loop-active { opacity: 1 !important; }
html[data-site-mode="standard"] .hero .hero-bg-video.is-loop-inactive { opacity: 0 !important; }
html[data-site-mode="standard"] .hero .hero-shade { opacity: 1 !important; }
html[data-site-mode="standard"] .hero .hero-video-fade { opacity: 0 !important; }
html[data-site-mode="standard"] .hero .hero-system-veil { display: none; }
html[data-site-mode="standard"] .hero .hero-content > *,
html[data-site-mode="standard"] .hero .hero-char,
html[data-site-mode="standard"] .hero .hero-intro-line { opacity: 1 !important; transform: none !important; filter: none !important; visibility: visible !important; }
html[data-site-mode="standard"] .hero h1 { max-width: 1000px; }
html[data-site-mode="standard"] .hero .hero-intro-line { display: inline; }
html[data-site-mode="standard"] .standard-hero-actions { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 16px; margin-top: 38px; }
html .standard-hero-actions > a.foghorn-cta,
html .standard-hero-actions > a.standard-text-link { box-sizing: border-box; flex: 0 0 280px; width: 280px; min-width: 0; height: 56px; min-height: 56px; padding: 0 24px; border-radius: 999px; font-family: Inter, sans-serif; font-size: 13px; font-weight: 600; line-height: 1.2; letter-spacing: 0; text-transform: none; text-decoration: none; }
.standard-text-link { display: inline-flex; align-items: center; justify-content: center; border: 1px solid #ff596340; background: transparent; color: #eee; transition: border-color 280ms ease, background-color 280ms ease, color 280ms ease; }
.standard-text-link:is(:hover, :focus-visible) { border-color: #ff5963; background-color: #d5010d0a; color: #fff; text-decoration: none; }
@media (prefers-reduced-motion: reduce) { .standard-text-link { transition: none; } }
html[data-site-mode="standard"][data-standard-page="true"] .hero { display: none !important; }
.site-mode-notice button { display: block; padding: 8px 0 0; color: #ff8790; font-size: 12px; text-decoration: underline; cursor: pointer; }
@media (max-width: 1100px) {
  .standard-header { padding-right: 198px; gap: 20px; }
  .standard-brand { width: 145px; }
  .standard-menu { gap: 20px; }
}
@media (min-width: 901px) {
  .standard-viewer .viewer-about-team { padding-block: 24px; }
  .standard-viewer .viewer-about-team > h2 { max-width: 664px; margin-inline: auto; font-size: clamp(34px, 3vw, 42px); line-height: .98; }
  .standard-viewer .viewer-about-team-grid { max-width: 664px; margin: 24px auto 0; gap: 24px; align-items: start; }
  .standard-viewer .viewer-about-team article { background: #111113; border-color: rgba(255, 255, 255, .07); }
  .standard-viewer .viewer-team-portrait { display: block; height: clamp(230px, 31svh, 310px); aspect-ratio: auto; }
  .standard-viewer .viewer-team-portrait img { --portrait-scale: 1; --portrait-y: 0%; object-fit: cover; object-position: 50% 15%; }
  .standard-viewer .viewer-about-team h3 { padding: 20px 22px 10px; font-size: 18px; line-height: 1.2; letter-spacing: -.025em; }
  .standard-viewer .viewer-about-team .viewer-team-bio { padding: 0 22px 24px; }
  .standard-viewer .viewer-about-team .viewer-team-bio p { margin-bottom: 12px; font-size: 14px; line-height: 1.6; }
  .standard-viewer .viewer-about-team .viewer-team-bio p:last-child { margin-bottom: 0; }
  .standard-viewer .viewer-about-team .viewer-team-bio .viewer-team-role { margin-top: 0; margin-bottom: 14px; color: #ff4a55; font-size: 12px; font-weight: 500; line-height: 1.5; }
  .standard-header { min-height: 90px; padding-right: 280px; }
  .standard-viewer { top: 106px; }
  .hero > .nav.shell { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; gap: 20px; width: calc(100% - 32px); max-width: none; height: 90px; margin-top: 16px; padding: 0 280px 0 28px; }
  .hero > .nav .nav-links { position: absolute; left: 50%; top: 50%; transform: translate(-50%, -50%); gap: clamp(12px, 2vw, 28px); }
  .hero > .nav .nav-cta { grid-column: 3; }
  .standard-header .standard-menu { position: absolute; left: 50%; top: 50%; transform: translate(-50%, -50%); margin-left: 0; }
  .hero > .nav .nav-links,
  .standard-header .standard-menu { gap: clamp(12px, 2vw, 28px); }
  .hero > .nav .nav-links a,
  .standard-header .standard-menu a { font-family: Inter, Arial, sans-serif; font-size: 12px; font-weight: 600; line-height: 18px; letter-spacing: .11em; text-transform: uppercase; color: #ececed; padding: 31px 0 27px; }
  .hero > .nav .nav-links a::after,
  .standard-header .standard-menu a::after { bottom: 20px; }
  .hero > .nav .nav-links a:hover,
  .standard-header .standard-menu a:hover,
  .standard-header .standard-menu a[aria-current="page"] { color: #fff; }
}
@media (min-width: 901px) and (max-height: 800px) {
  .standard-viewer .viewer-about-team { padding-block: 20px; }
  .standard-viewer .viewer-about-team > h2 { font-size: 34px; }
  .standard-viewer .viewer-about-team-grid { margin-top: 20px; }
  .standard-viewer .viewer-team-portrait { height: 230px; }
}
@media (min-width: 901px) and (max-width: 1280px) {
  .hero > .nav.shell { gap: 12px; padding-left: 20px; }
  .hero > .nav .brand img { width: 130px; }
  .hero > .nav .nav-links { gap: 12px; font-size: 9px; }
  .standard-header .standard-menu { gap: 12px; }
  .hero > .nav .nav-links a,
  .standard-header .standard-menu a { font-size: 9px; line-height: 13.5px; padding: 28px 0 25px; }
  .hero > .nav .nav-links a::after,
  .standard-header .standard-menu a::after { bottom: 18px; }
  .hero > .nav .nav-cta { position: absolute; left: 168px; top: 50%; transform: translateY(-50%); width: 104px; }
  .hero > .nav .nav-cta:is(:hover, :focus-visible, :active) { transform: translateY(-50%); }
  .hero > .nav .nav-cta-label { font-size: 9px; }
}
@media (max-width: 900px) {
  html[data-site-mode="standard"] .hero-video-toggle { top: auto; bottom: 8px; left: 14px; right: auto; width: 44px; padding: 10px; }
  html[data-site-mode="signal"] .hero-video-toggle { bottom: 8px; left: 14px; width: 44px; padding: 10px; }
  html[data-site-mode="standard"] .hero-video-toggle span,
  html[data-site-mode="signal"] .hero-video-toggle span { display: none; }
  .standard-header { inset: 8px 8px auto; height: 72px; min-height: 0; padding: 14px 18px; justify-content: space-between; }
  .standard-brand { width: 152px; }
  .standard-menu-toggle { display: flex; align-items: center; gap: 14px; min-height: 44px; padding: 0 10px; border: 1px solid #ffffff29; border-radius: 4px; background: #1b1b1f; color: #eee; font-size: 12px; }
  .standard-menu-toggle span { color: #ff5963; font-size: 24px; transition: transform 250ms ease; }
  .standard-menu-toggle[aria-expanded="true"] span { transform: rotate(45deg); }
  .standard-menu { position: absolute; top: 100%; left: 0; right: 0; display: grid; margin: 0; gap: 0; padding: 10px 22px 20px; background: #141416; border-bottom: 1px solid #ffffff24; opacity: 0; visibility: hidden; transform: translateY(-8px); transition: opacity 220ms ease, transform 300ms var(--workspace-ease), visibility 0s linear 300ms; }
  .standard-menu.is-open { opacity: 1; visibility: visible; transform: none; transition-delay: 0s; }
  .standard-menu a { min-height: 48px; padding: 15px 0; border-bottom: 1px solid #ffffff13; }
  .site-mode-switch button { min-height: 36px; }
  .standard-viewer { inset: 80px 8px 60px; }
  .standard-viewer .viewer-page-hero, .standard-viewer .viewer-page-body > section, .standard-viewer .viewer-page-footer { padding-inline: 24px; }
  .standard-viewer .viewer-page-eyebrow { left: 24px; }
  html[data-site-mode="standard"] .hero { margin: 8px 8px 60px; min-height: calc(100svh - 68px); }
  html[data-site-mode="standard"] .hero .hero-content.shell { min-height: calc(100svh - 68px); width: calc(100% - 40px); padding: 112px 0 40px; }
  html[data-site-mode="standard"] .hero h1 { font-size: clamp(38px, 7.5vw, 66px); }
  html[data-site-mode="standard"] .site-mode-switch,
  html[data-site-mode="signal"] .site-mode-switch,
  html[data-site-mode="signal"] body:not(.workspace-active) .site-mode-switch { top: auto; right: auto; bottom: 8px; left: 50%; transform: translateX(-50%); }
  html[data-site-mode="signal"] .foghorn-workspace { bottom: 60px !important; }
  html[data-site-mode="signal"] .hero { bottom: 60px; overflow-y: auto; }
  html[data-site-mode="signal"] .hero .hero-content.shell { min-height: calc(100svh - 60px); padding-bottom: 15px; }
  html[data-site-mode="standard"] .site-frame,
  html[data-site-mode="signal"] .site-frame { bottom: 60px; }
}
/* Keep the mobile homepage recognisable when changing presentation modes. */
@media (max-width: 760px) {
  html[data-site-mode="standard"][data-standard-page="false"] .standard-header { display: none; }
  html[data-site-mode="standard"] .hero { position: fixed !important; inset: 0 0 60px; min-height: 0; margin: 0; overflow-y: auto; }
  html[data-site-mode="standard"] .hero > .nav.shell { display: flex !important; opacity: 1 !important; visibility: visible !important; transform: none !important; }
  html[data-site-mode="standard"] .hero .hero-content.shell { justify-content: flex-start; min-height: calc(100svh - 60px); width: min(100% - 30px, 520px); padding: 116px 0 15px; margin: 0 auto; }
  html[data-site-mode="standard"] .hero h1 { max-width: 390px; font-size: clamp(38px, 10.6vw, 46px); }
  html[data-site-mode="standard"] .hero .standard-hero-actions { display: none; }
  html[data-site-mode="standard"] .hero .mobile-hero-nav { display: grid !important; }
}
@media (max-width: 360px) {
  html[data-site-mode="standard"] .hero .hero-content.shell { padding-top: 104px; }
}
@media (max-width: 760px) and (max-height: 780px) {
  html[data-site-mode="standard"] .hero .hero-content.shell { padding-top: 86px; }
  html[data-site-mode="standard"] .hero h1 { font-size: clamp(35px, 9.7vw, 40px); }
}
@media (max-width: 760px) and (max-height: 620px) {
  html[data-site-mode="standard"] .hero .hero-content.shell { padding-top: 76px; }
  html[data-site-mode="standard"] .hero h1 { font-size: clamp(30px, 9vw, 36px); }
  html[data-site-mode="standard"] .hero .hero-intro { margin-block: 12px; }
}
/* Snapshot the outgoing view so a layout change becomes a soft crossfade.
   The switch has its own layer and remains responsive throughout. */
html.is-mode-crossfading .site-mode-switch { view-transition-name: mode-switch; }
html.is-mode-crossfading::view-transition { pointer-events: none; }
html.is-mode-crossfading::view-transition-group(root) { animation-duration: 600ms; }
html.is-mode-crossfading::view-transition-old(root) { animation: none; mix-blend-mode: normal; }
html.is-mode-crossfading::view-transition-new(root) { animation: mode-view-in 600ms cubic-bezier(.4, 0, .2, 1) both; mix-blend-mode: normal; }
html.is-mode-crossfading::view-transition-group(mode-switch) { animation-duration: 600ms; animation-timing-function: cubic-bezier(.22, 1, .36, 1); }
html.is-mode-crossfading::view-transition-old(mode-switch) { display: none; }
html.is-mode-crossfading::view-transition-new(mode-switch) { animation: none; }
@media (max-width: 760px) {
  html.is-mode-crossfading[data-standard-page="false"] .mobile-hero-nav { view-transition-name: mode-home-nav; }
  html.is-mode-crossfading::view-transition-group(mode-home-nav) { animation-duration: 600ms; animation-timing-function: cubic-bezier(.22, 1, .36, 1); }
  html.is-mode-crossfading::view-transition-old(mode-home-nav) { display: none; }
  html.is-mode-crossfading::view-transition-new(mode-home-nav) { animation: none; }
}
@keyframes mode-view-in { from { opacity: 0; } to { opacity: 1; } }
@media (prefers-reduced-motion: reduce) {
  .site-mode-switch::before, .site-mode-switch *, .standard-menu, .standard-menu *, .standard-menu-toggle * { transition: none; }
}
@media (max-width: 360px) {
  .standard-viewer .viewer-care-includes h2 { font-size: 36px; }
  .standard-viewer .viewer-care-includes > header { grid-template-columns: minmax(0, 1fr); }
}
