/* Accessibility and responsive refinements for the recovered T.SAG pages. */
html { scroll-behavior: auto; }
.button, .headerCta, .textLink, .mainNav, .formTabs button { font-size: max(.875rem, 14px); }
.kicker { font-size: .875rem; }
.capItem b, .commercialServiceRow>b, .textLink span { color: #276b8a; }
.darkSection .textLink span, .commercialServices .commercialServiceRow>b { color: #bfe9ff; }
a:focus-visible, button:focus-visible, summary:focus-visible { outline: 3px solid #237ca3; outline-offset: 4px; }
.siteHeader :focus-visible, .siteFooter :focus-visible { outline-color: #bfe9ff; }
.mainNav a[aria-current=page] { border-bottom-color: #bfe9ff; color: #bfe9ff; }
.preparedRequest { border-top: 2px solid #465564; padding-top: 2rem; margin-top: 1.5rem; }
.preparedRequest h2 { font-size: 1.75rem; }
.preparedRequest textarea { display:block; width:100%; margin-top:1rem; }
.leadForm small { display:block; font-size:.875rem; color:#465564; }
.leadForm input[disabled] { opacity: .6; cursor: not-allowed; }
@media (min-width: 821px) and (max-width: 1350px) {
  .mainNav { gap: 13px; }
  .siteHeader { padding-inline: 24px; }
  .headerCta { padding: 12px; }
}
@media (max-width: 1100px) {
  .siteHeader { position:relative; }
  .menuButton { display:block; }
  .mainNav { display:none; position:absolute; top:100%; left:0; right:0; flex-direction:column; align-items:stretch; gap:0; padding:20px 24px; background:#071a2f; box-shadow:0 12px 20px #0003; }
  .mainNav.open { display:flex; }
  .mainNav a { padding:12px 0; }
  .mainNav .headerCta { padding:12px; margin-top:10px; }
}
@media (max-width: 560px) {
  .utilityBar { height:auto; min-height:36px; flex-wrap:wrap; gap:8px; padding-block:8px; }
  .heroButtons { flex-wrap:wrap; }
  .homeHero { height:auto; min-height:650px; }
  .heroCopy { padding-bottom:130px; }
  .ctaActions { flex-wrap:wrap; }
  .ctaActions .button, .pairedCapabilityActions .button { font-size:.875rem; min-width:150px; }
  .pairedCapabilityActions { flex-wrap:wrap; }
  .formTabs { flex-wrap:wrap; }
}
@media (prefers-reduced-motion:reduce) { *, *::before, *::after { animation:none!important; transition:none!important; scroll-behavior:auto!important; } }

/* Shared T.SAG design language: precise rules, generous spacing, ice-blue accents. */
:root { --brand-navy:#071a2f; --brand-slate:#465564; --brand-ice:#bfe9ff; --fade-ease:cubic-bezier(.22,.61,.36,1); }
h1, h2 { text-wrap:balance; }
p { text-wrap:pretty; }
.pageHero, .commercialHero, .capStatementHero { border-bottom:3px solid var(--brand-ice); }
.pageHero h1, .commercialHero h1, .capStatementHero h1 { font-family:Georgia, 'Times New Roman', serif; font-weight:500; }
.button, .headerCta { border-radius:3px; line-height:1.45; text-align:center; }
.button, .headerCta, .mainNav a, .textLink, .siteFooter a, .capItem, .serviceTile, .serviceRow, .commercialServiceRow, .buyerGrid article {
  transition:background-color 140ms ease,color 140ms ease,border-color 140ms ease,box-shadow 140ms ease,opacity 140ms ease;
}
.button:hover, .headerCta:hover { box-shadow:0 4px 18px #071a2f18; }
.buyerGrid article:hover { background:#ffffff06; }
.sectionHead, .lightHead { border-bottom-color:#c4d9e3; }
.capItem:hover, .serviceTile:hover, .homeServiceGrid article:hover, .credentialGrid article:hover, .workCard:hover>img, .workCard:hover>.capGraphic, .logoLockup:hover .primaryLogo { transform:none; }
.serviceRow:hover { padding-left:22px; }
.commercialServiceRow:hover { padding-left:4px; }
.heroCopy, .pageHero>.container, .residentialOverlay, .capItem, .serviceTile, .homeServiceGrid article, .credentialGrid article { animation:none; }
.primaryLogo, .featureLogo, .scopeLogo, .workCard>img, .workCard>.capGraphic { transition:opacity 140ms ease,filter 140ms ease; }
.missionSection { background:var(--brand-navy); color:#fff; padding:90px 0; border-block:1px solid #bfe9ff36; }
.missionLayout { display:grid; grid-template-columns:.9fr 1.1fr; gap:80px; align-items:start; }
.missionSection .kicker { color:var(--brand-ice); }
.missionSection h2 { font-family:Georgia,'Times New Roman',serif; font-weight:400; font-size:clamp(2rem,3.4vw,3rem); margin-bottom:0; }
.missionStatement { color:#e0edf5; font-size:1.2rem; line-height:1.8; margin-bottom:30px; }
.missionPrinciples { display:flex; flex-wrap:wrap; gap:12px 22px; border-top:1px solid #bfe9ff40; padding-top:22px; }
.missionPrinciples span { color:var(--brand-ice); font-size:.875rem; font-weight:650; }
.ownerSection { display:grid; grid-template-columns:.9fr 1.1fr; gap:80px; padding-block:96px; }
.ownerHeading h2 { font-family:Georgia,'Times New Roman',serif; font-weight:400; font-size:clamp(2rem,3.4vw,3rem); }
.ownerSignature { border-left:3px solid #8fd8f7; padding-left:20px; margin-top:32px; }
.ownerSignature strong, .ownerSignature span { display:block; }
.ownerSignature strong { font-size:1.15rem; color:var(--brand-navy); }
.ownerSignature span { font-size:.875rem; color:var(--brand-slate); margin-top:4px; }
.ownerLetter { border-top:1px solid #b8cbd5; padding-top:28px; }
.ownerLetter p { color:var(--brand-slate); font-size:1.125rem; line-height:1.85; margin-bottom:22px; }
.ownerLetter .textLink { margin-top:8px; }
.footerBrand>p:first-of-type { color:var(--brand-ice); font-weight:650; }
[id] { scroll-margin-top:24px; }
@media (max-width:820px) {
  .missionLayout, .ownerSection { grid-template-columns:1fr; gap:34px; }
  .missionSection { padding-block:60px; }
  .ownerSection { padding-block:64px; }
}
@view-transition { navigation:auto; }
::view-transition-group(root) { animation-duration:180ms; }
::view-transition-old(root) { animation:quickFadeOut 180ms ease both; }
::view-transition-new(root) { animation:quickFadeIn 180ms ease both; }
@keyframes quickFadeOut { to { opacity:0; } }
@keyframes quickFadeIn { from { opacity:0; } }
@media (prefers-reduced-motion:reduce) {
  @view-transition { navigation:none; }
  ::view-transition-group(root), ::view-transition-old(root), ::view-transition-new(root) { animation:none!important; }
  *, *::before, *::after { animation:none!important; transition:none!important; scroll-behavior:auto!important; }
}
.requestPage .pageHero { padding-block:40px; }
.requestPage .pageHero h1 { font-size:clamp(2rem,4vw,3rem); max-width:900px; }
.requestPage .pageHero p:last-child { max-width:760px; margin-bottom:0; }
.requestPage .pageSection { padding-block:36px 70px; }
.schedulingNote { padding:16px 20px; margin:0 0 24px; border-left:3px solid #8fd8f7; background:#eef7fb; color:#25485e; font-size:.9375rem; }
.formTabs { flex-wrap:wrap; }
.formTabs button { flex:1 1 180px; min-height:48px; }

.formHoneypot { display:none!important; }
.formStatus { color:#465564; font-size:1rem; }
.leadForm button:disabled { opacity:.65; cursor:wait; }
.serviceCoverage { max-width:28rem; font-size:1rem; line-height:1.6; }
.siteFooter .serviceCoverage { color:#d8e6ef; }
.capabilityExamples { padding-block:72px; }
.capabilityExamples>h2 { font-family:Georgia,serif; font-size:clamp(2rem,3.2vw,2.8rem); font-weight:400; }
.exampleGrid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:32px; margin-top:32px; }
.exampleGrid article { border-top:3px solid #bfe9ff; padding-top:24px; }
.exampleGrid h3 { font-size:1.35rem; }
.exampleGrid p { font-size:1rem; line-height:1.7; color:#465564; }
.exampleNote { font-size:.9rem; color:#465564; margin-top:24px; }
@media(max-width:820px) { .exampleGrid { grid-template-columns:1fr; } .capabilityExamples { padding-block:48px; } }

/* Request controls and short opacity transitions. */
html, body { scroll-behavior:auto!important; }
.formGrid label { min-width:0; }
.formGrid input, .formGrid select { width:100%; min-width:0; min-height:46px; font-size:1rem; }
.formGrid select { background:#fff; color:#071a2f; border:1px solid #aabac5; border-radius:4px; padding:11px 12px; }
.formHelp { color:#465564; font-size:.9375rem; line-height:1.6; }
.credentialChoices { grid-column:1 / -1; min-width:0; margin:8px 0 16px; padding:20px; border:1px solid #b4c8d5; border-radius:4px; display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px 24px; }
.credentialChoices legend { color:#071a2f; font-weight:600; font-size:1rem; padding-inline:7px; }
.leadForm .credentialChoices label { display:flex; align-items:flex-start; gap:10px; margin:0; font-size:.9375rem; font-weight:400; line-height:1.5; }
.leadForm .credentialChoices input { flex:0 0 18px; width:18px; height:18px; min-height:18px; margin-top:3px; accent-color:#071a2f; }
.credentialChoices small { grid-column:1 / -1; }
.requestQuickLinks { display:flex; flex-wrap:wrap; gap:14px; margin-top:20px; }
@keyframes requestPageFade { from { opacity:.75; } to { opacity:1; } }
@media(prefers-reduced-motion:no-preference) { .pageHero,.capStatementHero,.commercialHero,.homeHero { animation:requestPageFade 180ms ease-out both; } }
@media(max-width:600px) { .credentialChoices { grid-template-columns:1fr; padding:16px; } .formTabs button { flex-basis:140px; } }
@media(prefers-reduced-motion:reduce) { .pageHero,.capStatementHero,.commercialHero,.homeHero { animation:none!important; } }
