/* Approved San Francisco visual system, September 2026.
 * Shared by the production theme and inactive-theme staging preview. This file
 * is already in both asset graphs; no intake or deployment runtime is changed.
 */
html body {
  --ink:#102b50; --ink-2:#304b68; --muted:#51657e; --paper:#fff;
  --blue:#0874ba; --blue-dark:#075799; --blue-soft:#edf5fb;
  --red:#ee1425; --red-dark:#cf1222; --navy:#0b2148;
  --line:#dbe5ef; --shadow-sm:0 5px 16px rgb(16 43 80 / 6%);
  background:#fff; color:var(--ink); font-family:Arial,"Helvetica Neue",sans-serif;
  font-size:16px; font-weight:400; line-height:1.6;
}
html body .fx-site-header { background:#fff; backdrop-filter:none; }
html body .fx-site-header-inner { max-width:1540px; min-height:80px; }
html body .fx-wordmark { font-family:Arial,"Helvetica Neue",sans-serif; font-weight:900; letter-spacing:-.065em; }
html body .fx-wordmark-blue { color:#006caf; }
html body .fx-wordmark-red { color:#ee1425; }
html body .fx-request-cta { min-height:48px; border-radius:12px; padding-inline:26px; background:#ec1223; color:#fff; font-weight:750; box-shadow:none; }
html body :is(.fx-primary,.fx-page-hero-action .fx-secondary-button) { background:#df1021; color:#fff; font-weight:750; box-shadow:0 8px 18px rgb(222 16 33 / 10%); }
html body :is(.fx-primary,.fx-request-cta):hover { background:#bd1020; }
html body .fx-eyebrow { color:#31567e; font-size:12px; font-weight:750; letter-spacing:.2em; }
html body :is(.fx-page-hero,.fx-hero-home) { background:linear-gradient(115deg,#edf5fc 0%,#fff 75%); border-color:#e7eef5; }
html body :is(.fx-hero-home,.fx-page-hero)::before,html body .fx-page-hero::after { content:none; }
html body :is(.fx-hero h1,.fx-page-hero h1,.fx-article-hero h1,.fx-contact-hero h1) { color:#0b2148; font-size:clamp(38px,4.5vw,68px); font-weight:750; line-height:1.08; letter-spacing:-.045em; text-wrap:balance; }
html body :is(.fx-page-section-heading h2,.fx-page-section .fx-section-heading h2,.fx-page-narrative h2,.fx-visual-story h2,.fx-feature-copy h2,.fx-section-heading h2,.fx-trust h2) { color:#102b50; font-size:clamp(29px,3vw,44px); line-height:1.15; letter-spacing:-.035em; font-weight:700; text-wrap:balance; }
html body :is(.fx-lede,.fx-page-hero-copy .fx-lede) { color:#51657e; font-size:18px; line-height:1.65; }
html body :is(.fx-page-section-heading p,.fx-page-narrative-copy p,.fx-page-card p,.fx-feature-copy>p:not(.fx-eyebrow),.fx-visual-story-copy>p:not(.fx-eyebrow)) { color:#51657e; font-weight:400; font-size:16px; line-height:1.7; }
html body .fx-page-hero-image { transform:none; border-radius:20px; box-shadow:var(--shadow-sm); }
html body :is(.fx-page-card,.fx-support-card,.fx-service-card,.fx-article-card) { border:1px solid #dbe5ef; border-radius:17px; box-shadow:var(--shadow-sm); background:#fff; }
html body :is(.fx-page-card h3,.fx-card-body strong) { color:#103a68; font-size:21px; font-weight:700; }
html body .fx-page-narrative { background:#f2f7fc; box-shadow:none; border-color:#e3edf5; border-radius:22px; }
html body .fx-page-section { padding-block:76px; }
html body .fx-page-section+.fx-page-section { padding-top:0; }
html body .fx-page-card-grid { gap:20px; }
html body .fx-intake-card { border-radius:22px; box-shadow:0 12px 36px rgb(16 43 80 / 8%); }
html body .fx-proof-home { box-shadow:0 6px 22px rgb(16 43 80 / 7%); }
html body .fx-site-footer { background:#f0f6fb; color:#173b62; border-top:1px solid #dbe5ef; }
html body .fx-footer-grid nav strong { color:#12345b; }
html body :is(.fx-footer-brand p,.fx-footer-grid nav a,.fx-footer-legal) { color:#506681; }
html body .fx-footer-start { color:#075799; }
html body .fx-footer-grid nav a:hover { color:#075799; text-decoration:underline; }
html body .fx-footer-legal { border-color:#d8e4ef; }
html body .fx-made-in-sf { display:block; margin-top:14px; color:#183c65; font-size:22px; font-weight:400; line-height:1.15; letter-spacing:-.025em; transform:rotate(-1deg); transform-origin:left center; }
html body .fx-made-in-sf span { display:inline-block; margin-left:2px; color:#df1021; font-family:Arial,"Helvetica Neue",sans-serif; font-size:.78em; font-weight:400; transform:rotate(7deg); }

/* Service-area composition: editorial left column, useful actions on the right. */
html body .fx-area-section { display:grid; grid-template-columns:minmax(0,.38fr) minmax(0,.62fr); gap:0; max-width:1600px; margin:0 auto 72px; padding:0; background:linear-gradient(110deg,#eef6fd,#fff 64%); border-block:1px solid #e5edf5; overflow:hidden; }
.fx-area-section * { min-width:0; }
.fx-area-section .fx-area-story { display:flex; flex-direction:column; }
.fx-area-section .fx-area-story-copy { padding:48px 36px 0 clamp(24px,4vw,64px); }
html body .fx-area-section .fx-area-story h2 { margin:18px 0 14px; color:#091e45; font-size:clamp(40px,4.1vw,66px); line-height:1.08; letter-spacing:-.055em; font-weight:800; }
.fx-area-section .fx-area-story h2 span { color:#e01024; font-size:.88em; }
.fx-area-section .fx-area-story-copy>p:last-child { color:#50627a; font-size:19px; line-height:1.55; margin:0; max-width:450px; }
.fx-area-section .fx-area-photo { position:relative; margin:26px 0 0; flex:1; min-height:330px; overflow:hidden; }
.fx-area-section .fx-area-photo::after { content:""; position:absolute; inset:0; background:linear-gradient(#f1f7fc 0%,transparent 24%,transparent 78%,rgb(241 247 252 / 18%)); pointer-events:none; }
.fx-area-section .fx-area-photo img { display:block; width:100%; height:100%; min-height:330px; position:absolute; inset:0; object-fit:cover; object-position:42% center; }
.fx-area-section .fx-area-photo figcaption { position:absolute; z-index:1; right:24px; bottom:24px; padding:8px 14px; border-radius:18px; background:rgb(246 250 253 / 90%); color:#0c2b50; font-family:"Segoe Print","Bradley Hand",cursive; font-size:27px; line-height:1.25; transform:rotate(-8deg); }
.fx-area-section .fx-area-photo figcaption span { color:#d61329; font-family:Arial,sans-serif; font-size:40px; }
.fx-area-section .fx-area-content { padding:42px clamp(24px,3.5vw,58px) 30px 24px; }
.fx-area-section .fx-area-overview { display:grid; grid-template-columns:minmax(0,1fr) 190px; gap:14px; align-items:start; }
.fx-area-section .fx-area-overview .fx-eyebrow span { color:#ed1728; margin-right:7px; }
html body .fx-area-section .fx-area-overview h3 { color:#102b50; margin:0 0 14px; font-size:clamp(23px,2.1vw,31px); letter-spacing:-.04em; line-height:1.18; font-weight:700; }
.fx-area-section .fx-area-overview-copy>p:last-child { color:#51657e; font-size:15px; line-height:1.75; margin:0; }
.fx-area-section .fx-area-map { position:static; min-height:0; margin:-20px -22px 0 0; border:0; background:transparent; }
.fx-area-section .fx-area-map svg { position:static; display:block; width:100%; height:auto; border-radius:0 0 0 35px; }
.fx-area-section .fx-area-map figcaption { text-align:center; color:#526980; font-size:10px; margin-top:6px; }
.fx-area-section .fx-area-guides { margin-top:30px; }
html body .fx-area-section .fx-area-guides>.fx-eyebrow { margin:0 0 16px; }
.fx-area-section .fx-area-cards { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:16px; }
.fx-area-section .fx-area-card { padding:0; min-height:0; display:block; overflow:hidden; background:#fff; border:1px solid #d5e3ef; border-radius:14px; box-shadow:0 4px 12px rgb(15 49 84 / 6%); transition:transform .18s,box-shadow .18s; }
.fx-area-section .fx-area-card:hover { transform:translateY(-3px); box-shadow:0 9px 22px rgb(15 49 84 / 12%); }
.fx-area-section .fx-area-card img { border-radius:0; display:block; width:100%; height:auto; aspect-ratio:1.85; object-fit:cover; background:#dae9f4; }
.fx-area-section .fx-area-card>span { display:block; position:relative; padding:12px 23px 13px 13px; }
.fx-area-section .fx-area-card strong { display:block; color:#075799; font-size:16px; line-height:1.25; letter-spacing:-.03em; }
.fx-area-section .fx-area-card small { display:block; color:#244d7d; font-size:9px; letter-spacing:.15em; font-weight:700; margin-top:5px; }
.fx-area-section .fx-area-card b { position:absolute; right:9px; top:17px; font-size:27px; color:#075799; font-weight:400; line-height:1; }
.fx-area-section .fx-area-guide-note { margin:12px 0 0; color:#54677e; font-size:12px; line-height:1.5; }
.fx-area-section .fx-area-checker { display:block; margin-top:25px; padding:24px; border-radius:18px; background:#eaf2f8; scroll-margin-top:96px; }
.fx-area-section .fx-area-checker-heading { display:flex; align-items:flex-start; gap:16px; }
.fx-area-section .fx-area-checker-heading svg { width:27px; height:35px; flex-shrink:0; color:#075799; }
html body .fx-area-section .fx-area-checker h3 { margin:0; color:#084b89; font-size:20px; font-weight:700; letter-spacing:-.03em; }
.fx-area-section .fx-area-checker-heading p { margin:3px 0 0; color:#51657e; font-size:14px; line-height:1.5; }
.fx-area-section .fx-area-checker form { margin-top:16px; }
.fx-area-section .fx-area-checker form[hidden] { display:none; }
.fx-area-section .fx-area-checker label { display:block; font-size:12px; font-weight:700; color:#244d72; margin-bottom:6px; }
.fx-area-section .fx-area-address-row { display:flex; gap:10px; }
.fx-area-section .fx-area-address-row input { flex:1; width:100%; min-height:52px; border:1px solid #d2e0ed; border-radius:11px; padding:12px 15px; background:#fff; color:#173b62; font-size:16px; }
.fx-area-section .fx-area-address-row input::placeholder { color:#62758a; opacity:1; }
.fx-area-section .fx-area-address-row button { min-height:52px; flex-shrink:0; padding:12px 18px; border:0; border-radius:11px; background:#df1021; color:#fff; font-size:14px; font-weight:700; cursor:pointer; }
.fx-area-section .fx-area-address-row button:hover { background:#bd1020; }
.fx-area-section .fx-area-checker #fx-area-address-help { font-size:12px; color:#51657e; margin:10px 0 0; }
.fx-area-section .fx-area-feedback { color:#173b62; font-size:14px; margin-bottom:0; }
.fx-area-section .fx-area-feedback:empty { display:none; }
.fx-area-section .fx-area-bottom { display:grid; grid-template-columns:1fr 1fr; gap:25px; margin-top:25px; }
.fx-area-section .fx-area-bottom>div+div { border-left:1px solid #dae5ee; padding-left:25px; }
html body .fx-area-section .fx-area-bottom h3 { margin:0 0 6px; color:#104981; font-size:17px; line-height:1.3; letter-spacing:-.025em; }
.fx-area-section .fx-area-bottom p { margin:0 0 8px; color:#51657e; font-size:14px; line-height:1.5; }
.fx-area-section .fx-area-bottom a { display:inline-flex; min-height:36px; align-items:center; color:#075799; font-size:14px; font-weight:700; margin-right:12px; }
.fx-area-section .fx-area-credits { margin-top:12px; color:#526980; font-size:11px; }
.fx-area-section .fx-area-credits summary { cursor:pointer; min-height:32px; padding-top:6px; }
.fx-area-section .fx-area-credits a { text-decoration:underline; }
@media(min-width:1600px) { html body .fx-area-section { border-radius:24px; } }
@media(max-width:1150px) {
  html body .fx-area-section { grid-template-columns:minmax(0,.35fr) minmax(0,.65fr); }
  .fx-area-section .fx-area-story-copy { padding:36px 22px 0; }
  html body .fx-area-section .fx-area-story h2 { font-size:44px; }
  .fx-area-section .fx-area-story-copy>p:last-child { font-size:17px; }
  .fx-area-section .fx-area-overview { grid-template-columns:minmax(0,1fr) 140px; }
  .fx-area-section .fx-area-content { padding:36px 24px 28px 14px; }
  .fx-area-section .fx-area-cards { gap:10px; }
  .fx-area-section .fx-area-card strong { font-size:14px; }
  .fx-area-section .fx-area-address-row { flex-direction:column; }
}
@media(max-width:820px) {
  html body .fx-area-section { display:block; }
  .fx-area-section .fx-area-story { display:grid; grid-template-columns:1fr 1fr; }
  .fx-area-section .fx-area-story-copy { padding:36px 24px; }
  .fx-area-section .fx-area-photo { min-height:300px; margin:0; }
  .fx-area-section .fx-area-photo img { min-height:300px; }
  .fx-area-section .fx-area-content { padding:30px 24px; }
  .fx-area-section .fx-area-overview { grid-template-columns:minmax(0,1fr) 190px; }
  .fx-area-section .fx-area-map { margin:0; }
  .fx-area-section .fx-area-card strong { font-size:16px; }
  .fx-area-section .fx-area-address-row { flex-direction:row; }
}
@media(max-width:600px) {
  html body .fx-site-header-inner { min-height:68px; gap:10px; padding-inline:14px; }
  html body .fx-request-cta { display:inline-flex; min-height:40px; font-size:12px; padding-inline:12px; border-radius:10px; }
  html body .fx-wordmark { font-size:24px; }
  html body :is(.fx-hero h1,.fx-page-hero h1,.fx-article-hero h1,.fx-contact-hero h1) { font-size:clamp(34px,10vw,46px); }
  html body .fx-page-section { padding-block:54px; }
  html body .fx-page-card-grid { gap:14px; }
  html body .fx-page-narrative { border-radius:18px; }
  html body .fx-area-section { margin-bottom:52px; }
  .fx-area-section .fx-area-story { display:block; }
  .fx-area-section .fx-area-story-copy { padding:30px 20px 0; }
  html body .fx-area-section .fx-area-story h2 { font-size:39px; }
  .fx-area-section .fx-area-story-copy>p:last-child { font-size:16px; }
  .fx-area-section .fx-area-photo { min-height:285px; margin-top:22px; }
  .fx-area-section .fx-area-photo img { min-height:285px; }
  .fx-area-section .fx-area-photo figcaption { right:14px; bottom:18px; font-size:22px; }
  .fx-area-section .fx-area-content { padding:28px 20px; }
  .fx-area-section .fx-area-overview { display:block; }
  .fx-area-section .fx-area-map { width:210px; margin:8px auto 0; }
  .fx-area-section .fx-area-cards { display:flex; gap:12px; overflow-x:auto; padding:2px 20px 12px 0; scroll-snap-type:x mandatory; }
  .fx-area-section .fx-area-card { min-width:190px; scroll-snap-align:start; }
  .fx-area-section .fx-area-address-row { flex-direction:column; }
  .fx-area-section .fx-area-bottom { display:block; }
  .fx-area-section .fx-area-bottom>div+div { border-left:0; border-top:1px solid #dae5ee; padding:18px 0 0; margin-top:16px; }
}
