/* About and shared footer: a calm, structured extension of the brand. */
[data-page="about"].about-editorial{ padding:76px 0 64px; background:#f7f9fc; }
.about-story{ display:grid; grid-template-columns:1.05fr 1fr; gap:64px; align-items:center; }
.about-kicker{ margin:0 0 18px; color:#256b9c; font-size:11px; font-weight:700; letter-spacing:.14em; text-transform:uppercase; }
.about-story h2{ font-size:clamp(32px,3.5vw,48px); line-height:1.16; margin:0 0 24px; color:#102c49; }
.about-story h2 em{ color:#2378b6; font-weight:inherit; }
.about-story-copy > p:not(.about-kicker){ color:#52677c; line-height:1.8; font-size:15px; margin:0 0 18px; }
.about-story-copy > p.about-lead{ color:#243f59; font-size:18px; line-height:1.7; }
.about-editorial .about-action{ display:inline-flex; justify-content:space-between; gap:20px; align-items:center; min-height:56px; margin-top:10px; padding:12px 14px 12px 22px; color:#fff; background:linear-gradient(115deg,#176bb0,#104a7c); font-size:14px; line-height:1.5; font-weight:600; border:1px solid #155990; border-radius:12px; box-shadow:0 7px 16px -10px #104a7c80; transition:background .2s,box-shadow .2s; }
.about-action span{ display:grid; place-items:center; flex:0 0 32px; width:32px; height:32px; border-radius:50%; background:#ffffff18; transition:background .2s; }
.about-action svg{ display:block; }
.about-editorial .about-action:hover{ color:#fff; background:linear-gradient(115deg,#125b98,#0d3c66); box-shadow:0 9px 20px -10px #104a7c90; }
.about-action:hover span{ background:#ffffff2b; }
.about-story-photo{ position:relative; min-width:0; align-self:stretch; min-height:460px; border-radius:24px; overflow:hidden; background:#dbe4ec; box-shadow:0 24px 50px -30px #233f60; }
.about-story-photo > img{ display:block; width:100%; height:100%; position:absolute; inset:0; object-fit:cover; object-position:50% 45%; }
.about-story-photo::after{ content:""; position:absolute; inset:50% 0 0; background:linear-gradient(transparent,rgba(5,26,45,.82)); pointer-events:none; }
.about-experience{ position:absolute; z-index:1; left:26px; bottom:66px; display:flex; align-items:center; gap:18px; color:#fff; }
.about-experience > strong{ font-size:64px; font-weight:600; line-height:1; letter-spacing:-.06em; }
.about-experience strong span{ color:#90d0ef; font-size:38px; vertical-align:top; }
.about-experience > span{ font-size:13px; line-height:1.6; padding-left:18px; border-left:1px solid #ffffff70; }
.about-photo-caption{ position:absolute; bottom:26px; left:26px; right:26px; z-index:1; color:#e2edf7; font-size:12px; }
.about-focus{ display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); margin:48px 0 72px; padding:26px 0; border-block:1px solid #dce5ee; }
.about-focus > div{ padding:0 30px; border-left:1px solid #dce5ee; }
.about-focus > div:first-child{ padding-left:0; border:0; }
.about-focus-label{ display:block; color:#6e8193; font-size:11px; text-transform:uppercase; letter-spacing:.1em; margin-bottom:8px; }
.about-focus strong{ font-size:16px; font-weight:600; color:#163853; }
.about-section-head{ display:flex; justify-content:space-between; align-items:end; gap:36px; margin-bottom:28px; }
.about-section-head .about-kicker{ margin-bottom:12px; }
.about-section-head h2{ font-size:34px; line-height:1.2; margin:0; color:#12314e; }
.about-section-head > p{ max-width:420px; margin:0; font-size:14px; line-height:1.75; color:#5d7185; }
.about-principle-grid{ display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:20px; }
.about-principle-grid article{ padding:30px; background:#fff; border:1px solid #e0e8ef; border-radius:18px; box-shadow:0 12px 28px -24px #33516a; }
.about-principle-number{ font-family:var(--font-mono,monospace); font-size:10px; letter-spacing:.1em; color:#237ab5; }
.about-principle-grid h3{ color:#153650; font-size:21px; line-height:1.3; margin:30px 0 14px; }
.about-principle-grid p{ font-size:14px; line-height:1.8; color:#5d7185; margin:0; }
.about-closing{ display:flex; align-items:center; gap:30px; margin-top:36px; padding:28px 30px; border-radius:18px; background:#eaf1f7; }
.about-closing > span{ color:#173c5d; font-weight:700; font-size:18px; white-space:nowrap; }
.about-closing .about-bridge{ color:#288ac2; margin:0 8px; }
.about-closing p{ margin:0; font-size:14px; line-height:1.7; color:#566f86; }
.about-closing strong{ color:#183c5c; font-weight:600; }
.about-closing a{ margin-left:auto; display:flex; gap:18px; align-items:center; min-height:44px; color:#175d93; font-size:13px; font-weight:700; }
footer.site, .home-v3 footer.site{ padding:0 0 24px; margin-top:0; border-radius:0; border-top:1px solid #203d55; background:radial-gradient(ellipse at 100% 0%,#153d59 0%,transparent 55%),#0a2236; }
footer.site::before, footer.site::after, footer.site > .wrap::before{ display:none; }
footer.site .footer-connect{ display:flex; gap:40px; align-items:center; justify-content:space-between; padding:48px 0 38px; margin-bottom:38px; border-bottom:1px solid #ffffff26; }
footer.site .footer-kicker{ margin:0 0 12px; color:#85c5e7; font-size:10px; font-weight:700; text-transform:uppercase; letter-spacing:.18em; }
footer.site .footer-connect h2{ margin:0 0 12px; color:#fff; font-size:clamp(25px,2.8vw,36px); line-height:1.2; }
footer.site .footer-connect p:not(.footer-kicker){ margin:0; color:#b4c6d5; font-size:14px; line-height:1.7; }
footer.site .footer-connect-btn{ display:inline-flex; flex-shrink:0; align-items:center; justify-content:space-between; gap:30px; min-height:54px; padding:15px 22px; border-radius:10px; color:#103b5a; background:#e3f3fc; font-size:14px; font-weight:700; transition:background .2s,transform .2s; }
footer.site .footer-connect-btn span{ font-size:22px; line-height:1; }
footer.site .footer-connect-btn:hover{ background:#fff; transform:translateY(-2px); }
footer.site .footer-grid{ display:grid; grid-template-columns:1.35fr .65fr 1fr 1.15fr; gap:36px; margin:0; }
footer.site .footer-brand{ grid-column:auto; padding:0; background:none; border:0; border-radius:0; box-shadow:none; backdrop-filter:none; }
footer.site .footer-brand::before, footer.site .footer-brand::after{ display:none; }
footer.site .footer-brand-row{ display:flex; align-items:center; gap:12px; }
footer.site .footer-brand .name{ font-size:19px; white-space:normal; color:#fff; }
footer.site .footer-brand p{ font-size:13px; line-height:1.8; margin:18px 0 0; max-width:32ch; color:#afc2d2; }
footer.site .footer-grid > div:not(.footer-brand){ padding-top:4px; }
footer.site .footer-grid h5{ font-size:10px; letter-spacing:.14em; margin:0 0 16px; padding:0; color:#91b7cf; }
footer.site .footer-grid h5::after{ display:none; }
footer.site .footer-grid ul li{ margin-bottom:7px; }
footer.site .footer-grid ul li:not(.email,.phone,.reviews){ padding-left:0; }
footer.site .footer-grid ul li:not(.email,.phone,.reviews)::before{ display:none; }
footer.site .footer-grid ul li a{ font-size:13px; color:#d9e4ed; line-height:1.6; }
footer.site .footer-grid ul li:not(.reviews) a{ display:inline-block; padding-block:4px; }
footer.site .footer-grid ul li.email, footer.site .footer-grid ul li.phone{ padding:0; background:none; border:0; }
footer.site .footer-grid ul li.email::before, footer.site .footer-grid ul li.phone::before{ display:none; }
footer.site .footer-grid .reviews{ margin-top:14px; }
footer.site .footer-grid .reviews a{ padding:9px 12px; border-radius:8px; font-size:12px; }
footer.site .footer-offices{ display:grid; grid-template-columns:1fr 1fr; gap:18px; margin-top:32px; }
footer.site .footer-office{ padding:20px 24px; border-radius:12px; border:1px solid #ffffff18; background:#ffffff04; }
footer.site .footer-office-label{ color:#e9f2f9; font-size:11px; letter-spacing:.11em; margin-bottom:8px; }
footer.site .footer-office-addr, footer.site .footer-office-phone{ color:#b4c6d5; font-size:12px; line-height:1.8; }
footer.site .footer-office-phone a{ color:#dbeaf5; }
footer.site .notice-box{ margin-top:24px; padding:20px 0; gap:16px; background:none; border:0; border-bottom:1px solid #ffffff20; border-radius:0; }
footer.site .notice-box::after{ display:none; }
footer.site .nb-icon{ width:32px; height:32px; background:#ffffff08; color:#9fbaca; border:1px solid #ffffff20; }
footer.site .nb-icon svg{ width:16px; height:16px; }
footer.site .nb-title{ color:#b5c9d8; font-size:9px; letter-spacing:.12em; margin:0 0 6px; }
footer.site .notice-box .disclaimer{ color:#97aebe; font-size:11px; line-height:1.8; max-width:none; }
footer.site .footer-bottom{ border:0; padding-top:0; margin-top:20px; font-size:11px; color:#97aebe; }
footer.site a:focus-visible, .about-editorial a:focus-visible{ outline:2px solid #55b1e9; outline-offset:5px; }
@media(max-width:1000px){
 .about-story{ gap:32px; }
 .about-principle-grid article{ padding:24px; }
 footer.site .footer-grid{ grid-template-columns:1fr 1fr 1fr; gap:28px; }
 footer.site .footer-brand{ grid-column:1/-1; }
 footer.site .footer-brand p{ max-width:60ch; }
}
@media(max-width:767px){
 [data-page="about"].about-editorial{ padding:36px 0; }
 .about-story{ grid-template-columns:1fr; gap:28px; }
 .about-kicker{ font-size:9px; letter-spacing:.1em; margin-bottom:14px; }
 .about-story h2{ font-size:34px; margin-bottom:20px; }
 .about-story-copy > p.about-lead{ font-size:16px; }
 .about-story-copy > p:not(.about-kicker){ font-size:14px; }
 .about-editorial .about-action{ width:100%; font-size:13px; gap:12px; padding:12px 12px 12px 16px; text-align:left; }
 .about-story-photo{ min-height:340px; border-radius:18px; }
 .about-story-photo > img{ object-position:50% 40%; }
 .about-experience{ left:22px; bottom:60px; }
 .about-experience > strong{ font-size:56px; }
 .about-photo-caption{ left:22px; bottom:22px; font-size:10px; }
 .about-focus{ margin:28px 0 38px; padding:0; grid-template-columns:1fr; }
 .about-focus > div, .about-focus > div:first-child{ padding:16px 0; border:0; display:flex; align-items:center; justify-content:space-between; gap:12px; }
 .about-focus > div + div{ border-top:1px solid #dce5ee; }
 .about-focus-label{ font-size:9px; margin:0; }
 .about-focus strong{ font-size:12px; text-align:right; }
 .about-section-head{ display:block; margin-bottom:22px; }
 .about-section-head h2{ font-size:28px; }
 .about-section-head > p{ margin-top:16px; font-size:13px; }
 .about-principle-grid{ grid-template-columns:1fr; gap:14px; }
 .about-principle-grid article{ padding:24px; border-radius:14px; }
 .about-principle-grid h3{ font-size:21px; margin:16px 0 10px; }
 .about-principle-grid p{ font-size:13px; }
 .about-closing{ flex-wrap:wrap; gap:14px; padding:24px; margin-top:24px; border-radius:14px; }
 .about-closing > span{ font-size:15px; }
 .about-closing p{ flex-basis:100%; font-size:13px; }
 .about-closing a{ margin-left:0; font-size:12px; }
 footer.site .footer-connect{ display:block; padding:34px 0 28px; margin-bottom:28px; }
 footer.site .footer-connect h2{ font-size:28px; max-width:16ch; }
 footer.site .footer-connect p:not(.footer-kicker){ font-size:13px; }
 footer.site .footer-connect-btn{ display:flex; margin-top:22px; width:100%; min-height:52px; font-size:13px; }
 footer.site .footer-grid{ grid-template-columns:1fr 1fr; gap:28px 22px; }
 footer.site .footer-grid > .footer-brand, footer.site .footer-grid > div:last-child{ grid-column:1/-1; }
 footer.site .footer-brand .name{ font-size:20px; }
 footer.site .footer-brand p{ font-size:13px; max-width:40ch; margin-top:14px; }
 footer.site .footer-grid ul li{ margin-bottom:2px; }
 footer.site .footer-grid ul li:not(.reviews) a{ padding-block:10px; }
 footer.site .footer-grid h5{ margin-bottom:12px; }
 footer.site .footer-offices{ grid-template-columns:1fr; margin-top:26px; gap:12px; }
 footer.site .footer-office{ padding:18px 20px; }
 footer.site .notice-box{ grid-template-columns:auto minmax(0,1fr); gap:12px; margin-top:20px; }
 footer.site .footer-bottom{ align-items:flex-start; gap:10px; text-align:left; }
}
@media(prefers-reduced-motion:reduce){ .about-editorial .about-action, .about-action span{ transition:none; } }
footer.site .footer-connect-btn, .about-editorial .about-action, .about-editorial .about-closing a{ text-decoration:none; }

/* Mobile footer: contact first, compact navigation and expandable details. */
@media(max-width:767px){
 footer.site, .home-v3 footer.site{ background:#0b2439; padding-bottom:22px; }
 footer.site > .wrap{ padding-inline:20px; }
 footer.site .footer-connect{ margin:24px 0 28px; padding:24px; border:1px solid #ffffff1c; border-radius:16px; background:linear-gradient(125deg,#174a6a,#11344f); }
 footer.site .footer-connect h2{ font-size:25px; letter-spacing:-.025em; max-width:18ch; margin-bottom:10px; }
 footer.site .footer-kicker{ font-size:9px; margin-bottom:12px; }
 footer.site .footer-connect p:not(.footer-kicker){ font-size:12px; line-height:1.65; }
 footer.site .footer-connect-btn{ min-height:48px; margin-top:18px; padding:12px 16px; border-radius:9px; font-size:12px; background:#e4f3fc; }
 footer.site .footer-grid{ gap:22px 24px; }
 footer.site .footer-brand{ order:0; }
 footer.site .footer-brand-row{ gap:11px; }
 footer.site .footer-brand-row .brand-mark{ width:42px; height:42px; padding:4px; border-radius:12px; box-shadow:none; background:#f0f7fc; }
 footer.site .footer-brand .name{ font-size:19px; font-weight:700; letter-spacing:-.025em; }
 footer.site .footer-brand p{ margin-top:12px; font-size:12px; line-height:1.7; max-width:none; }
 footer.site .footer-grid > div:last-child{ order:1; padding:0 0 22px; border-bottom:1px solid #ffffff20; }
 footer.site .footer-grid > div:nth-child(2), footer.site .footer-grid > div:nth-child(3){ order:2; padding:0; }
 footer.site .footer-grid > div:last-child h5{ display:none; }
 footer.site .footer-grid > div:last-child ul{ display:grid; grid-template-columns:1fr 1fr; gap:8px; }
 footer.site .footer-grid > div:last-child li:not(.email,.phone,.reviews){ display:none; }
 footer.site .footer-grid > div:last-child li.email,
 footer.site .footer-grid > div:last-child li.phone{ margin:0; border:1px solid #ffffff26; border-radius:8px; }
 footer.site .footer-grid > div:last-child li.email a,
 footer.site .footer-grid > div:last-child li.phone a{ display:flex; align-items:center; justify-content:center; min-height:44px; padding:8px 5px; font-size:11px; color:#e3eff7; }
 footer.site .footer-grid .reviews{ grid-column:1/-1; margin:4px 0 0; }
 footer.site .footer-grid .reviews a{ display:flex; align-items:center; gap:6px; width:fit-content; min-height:38px; padding:5px 0; border:0; background:none; box-shadow:none; font-size:11px; }
 footer.site .footer-grid .reviews a br{ display:none; }
 footer.site .footer-grid .reviews a small{ font-size:10px; }
 footer.site .footer-grid h5{ font-size:10px; color:#90b9d1; margin-bottom:8px; }
 footer.site .footer-grid ul li:not(.reviews) a{ min-height:42px; padding-block:10px; font-size:12px; }
 footer.site .footer-grid ul li{ margin:0; }
 footer.site .footer-mobile-panel{ border-top:1px solid #ffffff20; }
 footer.site .footer-grid + .footer-mobile-panel{ margin-top:22px; }
 footer.site .footer-mobile-panel summary{ display:flex; flex-wrap:wrap; align-items:center; gap:3px 10px; position:relative; padding:17px 28px 17px 0; list-style:none; cursor:pointer; color:#dceaf4; font-size:12px; font-weight:600; min-height:56px; }
 footer.site .footer-mobile-panel summary::-webkit-details-marker{ display:none; }
 footer.site .footer-mobile-panel summary small{ font-size:10px; font-weight:400; color:#9eb7c9; }
 footer.site .footer-mobile-panel summary::after{ content:""; position:absolute; right:4px; top:23px; width:6px; height:6px; border-right:1.5px solid #99bed7; border-bottom:1.5px solid #99bed7; transform:rotate(45deg); }
 footer.site .footer-mobile-panel[open] summary::after{ transform:rotate(225deg); top:26px; }
 footer.site .footer-mobile-panel summary:focus-visible{ outline:2px solid #55b1e9; outline-offset:2px; }
 footer.site .footer-mobile-panel .footer-offices{ margin:0 0 18px; gap:10px; }
 footer.site .footer-mobile-panel .footer-office{ padding:16px; border-radius:10px; background:#ffffff04; }
 footer.site .footer-mobile-panel .notice-box{ display:block; padding:0 0 18px; margin:0; border:0; }
 footer.site .footer-mobile-panel .nb-icon, footer.site .footer-mobile-panel .nb-title{ display:none; }
 footer.site .footer-mobile-panel .disclaimer{ font-size:11px; }
 footer.site .footer-bottom{ margin-top:0; padding-top:20px; border-top:1px solid #ffffff20; font-size:10px; line-height:1.8; }
 footer.site .footer-bottom-end{ width:100%; justify-content:space-between; }
 footer.site .to-top, .home-v3 footer.site .to-top{ width:36px; height:36px; border:1px solid #ffffff30; background:#ffffff0a; color:#b5d8ef; box-shadow:none; }
}
@media(max-width:359px){
 footer.site .footer-connect{ padding:20px; }
 footer.site .footer-connect h2{ font-size:23px; }
 footer.site .footer-grid > div:last-child ul{ grid-template-columns:1fr; }
}

/* Give the CPA credential a legible, dedicated space in the shared header. */
header.site nav.primary .nav-cpa-badge{
  flex:none;
  display:block;
  width:128px;
  height:76px;
  max-width:none;
  max-height:none;
  margin-left:12px;
  padding:0;
  object-fit:contain;
  background:transparent;
  border:0;
  border-radius:0;
  box-shadow:none;
}
@media(min-width:901px) and (max-width:1100px){
  header.site .nav-row{ gap:14px; }
  header.site nav.primary{ gap:2px; }
  header.site nav.primary a{ font-size:13px; padding-inline:9px; }
  header.site nav.primary .nav-cpa-badge{ width:116px; height:72px; margin-left:6px; padding:0; }
}
@media(max-width:900px){
  header.site nav.primary .nav-cpa-badge{ width:148px; height:94px; max-width:100%; margin:12px auto 0; padding:0; align-self:center; justify-self:center; }
}

/* Cinematic header photos: move the image while the overlay and text stay still. */
.page-banner.page-banner-photo{ background:#0b2e4c; }
.page-banner.page-banner-photo::before{
  content:"";
  position:absolute;
  inset:0;
  z-index:0;
  opacity:1;
  background:var(--banner-photo) var(--banner-position) / cover no-repeat;
  -webkit-mask:none;
  mask:none;
  transform:scale(1.04) translate3d(-.5%,0,0);
  transform-origin:65% 45%;
  pointer-events:none;
}
.page-banner.page-banner-photo::after{
  content:"";
  display:block;
  position:absolute;
  inset:0;
  height:auto;
  z-index:1;
  background:linear-gradient(90deg,rgba(9,43,73,.98),rgba(9,43,73,.87) 30%,rgba(9,43,73,.56) 58%,rgba(6,27,48,.30));
  pointer-events:none;
}
.page-banner.page-banner-photo > .wrap{ position:relative; z-index:2; }
.page-banner.page-banner-photo::before{ animation:banner-camera-drift 22s ease-in-out infinite alternate; }
@keyframes banner-camera-drift{
  from{ transform:scale(1.04) translate3d(-.5%,0,0); }
  to{ transform:scale(1.16) translate3d(1%,-.7%,0); }
}
@media(max-width:767px){
  .page-banner.page-banner-photo::after{ background:linear-gradient(90deg,rgba(9,43,73,.92),rgba(9,43,73,.72)); }
  .page-banner.page-banner-photo::before{ animation-name:banner-camera-drift-mobile; animation-duration:26s; }
}
@keyframes banner-camera-drift-mobile{
  from{ transform:scale(1.03) translate3d(-.3%,0,0); }
  to{ transform:scale(1.09) translate3d(.5%,-.3%,0); }
}
@media(prefers-reduced-motion:reduce){
  .page-banner.page-banner-photo::before{ animation:none; transform:none; }
}

/* The supplied mark includes a white canvas; keep its presentation consistent. */
header.site .brand-mark, footer.site .footer-brand-row .brand-mark{ background:#fff; border-radius:9px; }
