
  :root{
    --navy:#005187; --navy-deep:#0a3b61; --navy-dark:#04283f; --navy-ink:#031c2d;
    --navy-lift:#1a6ba8; --teal:#004d69;
    --ground:#ffffff; --tint:#f5f7f9; --tint-warm:#faf8f5; --tint-2:#e8eef3;
    --ink:#191e26; --ink-soft:#48525f; --ink-faint:#63656a;
    --rule:#dae1e8; --rule-soft:#eaeff3; --hair:#c9d4de;
    --gold:#a3823f; --gold-soft:#bfa06a; --btn-fill:#005187; --btn-on:#ffffff;
    --on-navy:#eef4f9; --on-navy-soft:#a8c3d8;
    --sh-1:0 1px 2px rgba(3,28,45,.05), 0 2px 8px rgba(3,28,45,.04);
    --sh-2:0 2px 4px rgba(3,28,45,.06), 0 10px 26px rgba(3,28,45,.08);
    --sh-3:0 10px 24px rgba(3,28,45,.12), 0 30px 60px rgba(3,28,45,.16);
  }
  @media (prefers-color-scheme:dark){:root:not([data-theme="light"]){
    --navy:#5aa6dd; --navy-deep:#0b1a27; --navy-dark:#081521; --navy-ink:#050e17;
    --navy-lift:#7cc0ef; --teal:#63b0c8;
    --ground:#0d1219; --tint:#141b23; --tint-warm:#161c22; --tint-2:#1a232d;
    --ink:#e5ebf2; --ink-soft:#a3b0bf; --ink-faint:#7a8593;
    --rule:#253040; --rule-soft:#1b232d; --hair:#2f3c4c;
    --gold:#cba469; --gold-soft:#a2814f; --btn-fill:#5aa6dd; --btn-on:#08131c;
    --on-navy:#e5ebf2; --on-navy-soft:#9db4c9;
    --sh-1:0 1px 2px rgba(0,0,0,.4); --sh-2:0 2px 6px rgba(0,0,0,.45), 0 12px 28px rgba(0,0,0,.4);
    --sh-3:0 12px 30px rgba(0,0,0,.55), 0 30px 70px rgba(0,0,0,.5);
  }}
  :root[data-theme="dark"]{
    --navy:#5aa6dd; --navy-deep:#0b1a27; --navy-dark:#081521; --navy-ink:#050e17;
    --navy-lift:#7cc0ef; --teal:#63b0c8;
    --ground:#0d1219; --tint:#141b23; --tint-warm:#161c22; --tint-2:#1a232d;
    --ink:#e5ebf2; --ink-soft:#a3b0bf; --ink-faint:#7a8593;
    --rule:#253040; --rule-soft:#1b232d; --hair:#2f3c4c;
    --gold:#cba469; --gold-soft:#a2814f; --btn-fill:#5aa6dd; --btn-on:#08131c;
    --on-navy:#e5ebf2; --on-navy-soft:#9db4c9;
    --sh-1:0 1px 2px rgba(0,0,0,.4); --sh-2:0 2px 6px rgba(0,0,0,.45), 0 12px 28px rgba(0,0,0,.4);
    --sh-3:0 12px 30px rgba(0,0,0,.55), 0 30px 70px rgba(0,0,0,.5);
  }

  *{box-sizing:border-box;}
  html{scroll-behavior:smooth;}
  body{margin:0;background:var(--ground);color:var(--ink);
    font-family:"Public Sans","Segoe UI",system-ui,sans-serif;
    font-size:15.5px;line-height:1.72;letter-spacing:.002em;
    -webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;}
  .wrap{max-width:1160px;margin:0 auto;padding:0 26px;}
  h1,h2,h3,h4{font-family:"EB Garamond",Garamond,Georgia,serif;font-weight:500;
    letter-spacing:-.006em;text-wrap:balance;margin:0;
    font-variant-numeric:lining-nums;}
  p{margin:0 0 15px;}
  a{color:var(--navy);}
  .label{font-size:9.5px;font-weight:700;letter-spacing:.24em;
    text-transform:uppercase;color:var(--ink-faint);margin:0 0 11px;}
  .rule-gold{width:44px;height:2px;background:var(--gold);margin:0 0 18px;}
  .caps{font-family:"EB Garamond",serif;text-transform:uppercase;letter-spacing:.3em;}

  /* pills */
  .pill{display:inline-block;font-size:9.5px;font-weight:700;letter-spacing:.15em;
    text-transform:uppercase;padding:4px 10px;border:1px solid var(--hair);
    color:var(--ink-soft);border-radius:999px;white-space:nowrap;}
  .pill.solid{background:var(--navy);border-color:var(--navy);color:#fff;}
  .pill.gold{border-color:var(--gold);color:var(--gold);}
  .pills{display:flex;flex-wrap:wrap;gap:6px;}

  /* ---------- utility bar ---------- */
  .util{background:var(--navy-ink);color:var(--on-navy-soft);font-size:12.5px;}
  .util .wrap{display:flex;flex-wrap:wrap;gap:6px 26px;align-items:center;
    justify-content:space-between;padding:9px 26px;}
  .util a{color:var(--on-navy-soft);text-decoration:none;transition:color .18s;}
  .util a:hover{color:#fff;}
  .util .acts{display:flex;gap:22px;}
  .util .acts a{color:#fff;font-weight:600;}

  /* ---------- masthead ---------- */
  .mast{border-bottom:1px solid var(--rule);background:var(--ground);
    position:sticky;top:0;z-index:30;box-shadow:var(--sh-1);}
  .mast .wrap{display:flex;flex-wrap:wrap;gap:12px 30px;align-items:center;
    justify-content:space-between;padding-top:16px;padding-bottom:0;}
  .brand{display:block;line-height:0;background:none;border:none;padding:0 0 14px;cursor:pointer;}
  .brand img{height:34px;width:auto;display:block;transition:opacity .2s;}
  .brand:hover img{opacity:.72;}
  .brand .lite{display:none;}
  @media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .brand .dark{display:none;}
    :root:not([data-theme="light"]) .brand .lite{display:block;}}
  :root[data-theme="dark"] .brand .dark{display:none;}
  :root[data-theme="dark"] .brand .lite{display:block;}
  .tabs{display:flex;flex-wrap:wrap;gap:1px;}
  .tabs button{position:relative;font:inherit;font-size:12.5px;font-weight:700;
    letter-spacing:.09em;text-transform:uppercase;color:var(--ink-soft);
    background:none;border:none;padding:10px 13px 17px;cursor:pointer;transition:color .2s;}
  .tabs button::after{content:"";position:absolute;left:13px;right:13px;bottom:0;
    height:2px;background:var(--gold);transform:scaleX(0);transform-origin:left;
    transition:transform .28s cubic-bezier(.4,0,.2,1);}
  .tabs button:hover{color:var(--navy);}
  .tabs button:hover::after{transform:scaleX(1);}
  .tabs button[aria-current="page"]{color:var(--navy);}
  .tabs button[aria-current="page"]::after{transform:scaleX(1);}
  .tabs button:focus-visible{outline:2px solid var(--gold);outline-offset:-2px;}

  /* ---------- hero ---------- */
  .hero{position:relative;background:var(--navy-ink);color:#fff;overflow:hidden;}
  .hero .bg{position:absolute;inset:-3%;background-size:cover;background-position:58% 42%;
    opacity:.46;transform:scale(1);}
  .hero .veil{position:absolute;inset:0;
    background:linear-gradient(102deg,var(--navy-ink) 2%,rgba(0,81,135,.9) 44%,rgba(0,77,105,.55) 100%);}
  .hero .glow{position:absolute;inset:0;pointer-events:none;
    background:radial-gradient(120% 80% at 12% 40%,rgba(0,0,0,.35),transparent 62%);}
  .hero .wrap{position:relative;padding:120px 26px 112px;}
  .hero-inner{max-width:760px;}
  .hero-rule{width:74px;height:1px;background:var(--gold);opacity:.9;margin:0 0 28px;}
  .hero-actions{display:flex;flex-wrap:wrap;align-items:center;gap:22px 52px;
    margin-top:42px;padding-top:32px;border-top:1px solid rgba(255,255,255,.2);}
  .phone{display:grid;gap:1px;}
  .phone .plabel{font-size:9.5px;font-weight:700;letter-spacing:.24em;
    text-transform:uppercase;color:rgba(255,255,255,.58);}
  .phone a{font-family:"EB Garamond",Garamond,serif;font-size:30px;color:#fff;
    text-decoration:none;letter-spacing:.02em;line-height:1.25;transition:color .22s;}
  .phone a:hover{color:var(--gold);}
  .hero-logo{max-width:430px;width:100%;height:auto;margin-bottom:0;
    filter:drop-shadow(0 2px 12px rgba(0,0,0,.35));}
  .hero .est{font-family:"EB Garamond",Garamond,serif;font-size:10.5px;font-weight:400;
    letter-spacing:.26em;text-transform:uppercase;text-indent:.26em;
    color:rgba(255,255,255,.66);margin:22px 0 26px;white-space:nowrap;}
  @media (max-width:560px){.hero .est{white-space:normal;letter-spacing:.18em;}}
  .hero .tag{font-family:"EB Garamond",serif;font-style:italic;
    font-size:clamp(33px,5vw,54px);line-height:1.05;color:#fff;margin:0 0 18px;
    text-shadow:0 2px 20px rgba(0,0,0,.25);}
  .hero p{color:#d5e4ef;font-size:17.5px;max-width:50ch;}

  /* business card object */
  /* practice-area pills */
  .area-pills{display:flex;flex-wrap:wrap;gap:12px;}
  .area-pill{font-family:"EB Garamond",Garamond,serif;font-size:19px;line-height:1;
    color:var(--navy);background:none;border:1px solid var(--hair);border-radius:999px;
    padding:14px 28px;cursor:pointer;
    transition:background .26s,color .26s,border-color .26s,transform .26s,box-shadow .26s;}
  .area-pill:hover{background:var(--navy);border-color:var(--navy);color:#fff;
    transform:translateY(-2px);box-shadow:var(--sh-2);}
  .area-pill:focus-visible{outline:2px solid var(--gold);outline-offset:3px;}

  .cta{display:flex;flex-wrap:wrap;gap:12px;margin-top:30px;}
  .btn{display:inline-block;padding:13px 26px;font-size:12.5px;font-weight:700;
    letter-spacing:.1em;text-transform:uppercase;text-decoration:none;
    border:1px solid currentColor;cursor:pointer;font-family:inherit;
    transition:background .22s,color .22s,border-color .22s,transform .22s,box-shadow .22s;}
  .btn-gold{background:var(--gold);border-color:var(--gold);color:#fff;box-shadow:var(--sh-2);}
  .btn-gold:hover{filter:brightness(1.09);transform:translateY(-2px);}
  .btn-solid-w{background:#fff;border-color:#fff;color:#00436f;box-shadow:var(--sh-2);
    padding:15px 34px;letter-spacing:.14em;}
  .btn-solid-w:hover{background:#7a5f26;border-color:#7a5f26;color:#fff;
    transform:translateY(-2px);}
  .btn-ghost{color:#fff;}
  .btn-ghost:hover{background:rgba(255,255,255,.15);transform:translateY(-2px);}
  .btn-navy{background:var(--btn-fill);border-color:var(--btn-fill);color:var(--btn-on);
    box-shadow:var(--sh-1);}
  .btn-navy:hover{background:var(--navy-lift);border-color:var(--navy-lift);
    color:var(--btn-on);transform:translateY(-2px);}
  .btn-outline{color:var(--navy);}
  .btn-outline:hover{background:var(--tint);transform:translateY(-2px);}
  .btn:focus-visible{outline:2px solid var(--gold);outline-offset:3px;}

  /* ---------- credential strip ---------- */
  .creds{background:var(--tint-warm);border-bottom:1px solid var(--rule);}
  .creds .wrap{padding:22px 26px;display:flex;flex-wrap:wrap;gap:16px 40px;
    align-items:center;justify-content:space-between;}
  .creds p{margin:0;font-size:13.5px;color:var(--ink-soft);max-width:50ch;}
  .creds .marks{display:flex;flex-wrap:wrap;gap:32px;align-items:center;}
  .creds img{height:30px;width:auto;opacity:.72;filter:saturate(.35);
    transition:opacity .3s,filter .3s;}
  .creds img:hover{opacity:1;filter:saturate(1);}
  .creds img.cal{height:34px;}

  /* ---------- banner ---------- */
  .banner{background:linear-gradient(115deg,var(--navy-ink),var(--navy) 78%);
    color:#fff;position:relative;overflow:hidden;}
  .banner::after{content:"";position:absolute;right:-80px;top:-110px;width:360px;height:360px;
    border:1px solid rgba(255,255,255,.14);border-radius:50%;pointer-events:none;}
  .banner::before{content:"";position:absolute;right:30px;top:40px;width:180px;height:180px;
    border:1px solid rgba(255,255,255,.09);border-radius:50%;pointer-events:none;}
  .banner .wrap{padding:54px 26px 48px;position:relative;}
  .banner .label{color:var(--on-navy-soft);}
  .banner h1{font-size:clamp(34px,4.8vw,50px);line-height:1.06;color:#fff;}
  .banner p{color:#cfe1ee;max-width:60ch;font-size:17px;margin:12px 0 0;}

  section.pad{padding:70px 0;}
  .sec-head{max-width:64ch;margin-bottom:38px;}
  .sec-head h2{font-size:clamp(27px,3.4vw,37px);line-height:1.1;}
  .sec-head p{color:var(--ink-soft);font-size:17px;margin:10px 0 0;}

  /* ---------- pillars ---------- */
  .pillars{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(300px,100%),1fr));
    gap:26px 60px;max-width:940px;}
  .pillar{position:relative;padding-top:28px;border-top:1px solid var(--rule);
    transition:border-color .3s;}
  .pillar:hover{border-top-color:var(--gold);}
  .pillar .amp{font-family:"EB Garamond",serif;font-style:italic;font-size:38px;
    color:var(--gold);line-height:1;margin-bottom:10px;display:block;opacity:.85;}
  .pillar h3{font-size:24px;font-style:italic;line-height:1.24;margin-bottom:10px;color:var(--navy);}
  .pillar p{color:var(--ink-soft);font-size:15.5px;margin:0;}

  /* ---------- service cards ---------- */
  .svc-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(252px,100%),1fr));
    gap:1px;background:var(--rule);border:1px solid var(--rule);box-shadow:var(--sh-1);}
  .svc-card{position:relative;background:var(--ground);padding:30px 24px;display:flex;
    flex-direction:column;gap:9px;text-align:left;font:inherit;border:none;
    cursor:pointer;color:inherit;transition:background .25s,transform .25s,box-shadow .25s;}
  .svc-card::before{content:"";position:absolute;left:0;right:0;top:0;height:3px;
    background:var(--gold);transform:scaleX(0);transform-origin:left;
    transition:transform .32s cubic-bezier(.4,0,.2,1);}
  .svc-card:hover{background:var(--tint);z-index:2;box-shadow:var(--sh-2);}
  .svc-card:hover::before{transform:scaleX(1);}
  .svc-card:focus-visible{outline:2px solid var(--navy);outline-offset:-3px;}
  .svc-card .n{font-family:"EB Garamond",serif;font-size:15px;color:var(--gold);
    font-variant-numeric:tabular-nums;}
  .svc-card h3{font-size:23px;color:var(--navy);}
  .svc-card p{font-size:14.5px;color:var(--ink-soft);margin:0;}
  .svc-card .go{font-size:11px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;
    color:var(--navy);margin-top:auto;padding-top:10px;}
  .svc-card .go span{display:inline-block;transition:transform .28s;}
  .svc-card:hover .go span{transform:translateX(5px);}

  /* ---------- sub tabs ---------- */
  .subtabs{display:flex;flex-wrap:wrap;gap:1px;border-bottom:1px solid var(--rule);margin-bottom:42px;}
  .subtabs button{position:relative;font:inherit;font-size:13.5px;font-weight:600;
    color:var(--ink-soft);background:none;border:none;padding:12px 17px;cursor:pointer;
    transition:color .2s;}
  .subtabs button::after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:2px;
    background:var(--gold);transform:scaleX(0);transition:transform .3s cubic-bezier(.4,0,.2,1);}
  .subtabs button:hover{color:var(--navy);}
  .subtabs button[aria-selected="true"]{color:var(--navy);}
  .subtabs button[aria-selected="true"]::after{transform:scaleX(1);}
  .subtabs button:focus-visible{outline:2px solid var(--gold);outline-offset:-2px;}
  .svc-detail{display:grid;grid-template-columns:1fr 1.28fr;gap:56px;}
  .svc-detail h2{font-size:clamp(29px,3.7vw,41px);line-height:1.08;color:var(--navy);}
  .svc-detail .intro{color:var(--ink-soft);font-size:17px;margin-top:14px;}
  .svc-detail ul{margin:0;padding:0;list-style:none;border-top:2px solid var(--navy);}
  .svc-detail li{display:grid;grid-template-columns:auto 1fr;gap:14px;padding:13px 0;
    border-bottom:1px solid var(--rule-soft);font-size:15.5px;}
  .svc-detail li::before{content:"";width:6px;height:6px;background:var(--gold);
    border-radius:50%;margin-top:.58em;}
  .ul-label{font-size:10px;font-weight:700;letter-spacing:.18em;text-transform:uppercase;
    color:var(--ink-faint);margin-bottom:12px;}

  /* ---------- people ---------- */
  .people{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(282px,100%),1fr));gap:26px;}
  .person{position:relative;border:1px solid var(--rule);padding:30px 26px;
    background:var(--ground);box-shadow:var(--sh-1);
    transition:transform .3s cubic-bezier(.4,0,.2,1),box-shadow .3s,border-color .3s;}
  .person::before{content:"";position:absolute;left:-1px;right:-1px;top:-1px;height:3px;
    background:var(--navy);}
  .person:hover{transform:translateY(-5px);box-shadow:var(--sh-2);}
  .person .mono{width:58px;height:58px;background:var(--navy);color:#fff;
    display:flex;align-items:center;justify-content:center;font-family:"EB Garamond",serif;
    font-size:21px;letter-spacing:.03em;margin-bottom:18px;box-shadow:var(--sh-1);}
  .person h3{font-size:24px;margin-bottom:8px;}
  .person .pills{margin-bottom:14px;}
  .person p{font-size:14.5px;color:var(--ink-soft);}
  .person a.mail{font-size:13.5px;text-decoration:none;
    border-bottom:1px solid var(--rule);transition:border-color .2s;}
  .person a.mail:hover{border-bottom-color:var(--navy);}
  .person.slot{border-style:dashed;background:var(--tint);box-shadow:none;}
  .person.slot::before{background:var(--hair);}
  .person.slot:hover{transform:none;box-shadow:none;}
  .person.slot .mono{background:none;border:1px dashed var(--ink-faint);
    color:var(--ink-faint);box-shadow:none;}
  .person.slot h3{color:var(--ink-faint);font-style:italic;}

  /* ---------- resources ---------- */
  .res-layout{display:grid;grid-template-columns:1.5fr .9fr;gap:60px;align-items:start;}
  .sub-form{margin-top:38px;padding-top:26px;border-top:1px solid var(--rule);max-width:440px;}
  .sub-form label{display:block;font-size:10px;font-weight:700;letter-spacing:.18em;
    text-transform:uppercase;color:var(--ink-faint);margin-bottom:10px;}
  .sub-form .row{display:flex;flex-wrap:wrap;gap:10px;}
  .sub-form input{flex:1 1 200px;font:inherit;font-size:15px;padding:12px 13px;
    color:var(--ink);background:var(--ground);border:1px solid var(--rule);
    transition:border-color .2s,box-shadow .2s;}
  .sub-form input:focus{outline:none;border-color:var(--navy);
    box-shadow:0 0 0 3px rgba(0,81,135,.14);}
  .sub-form .sent{margin-top:12px;color:var(--navy);font-weight:600;font-size:14px;}
  .side{border-top:1px solid var(--ink);padding-top:22px;}
  .side a{display:grid;gap:2px;padding:15px 0;text-decoration:none;color:inherit;
    border-bottom:1px solid var(--rule-soft);transition:padding-left .28s;}
  .side a:hover{padding-left:7px;}
  .side a b{font-family:"EB Garamond",serif;font-weight:500;font-size:19px;color:var(--navy);}
  .side a span{font-size:13.5px;color:var(--ink-soft);}

  /* ---------- letterhead lockup ---------- */
  .lockup{text-align:center;padding:8px 0 30px;border-bottom:1px solid var(--ink);
    margin-bottom:38px;}
  .lockup img{max-width:400px;width:78%;height:auto;margin-bottom:14px;}
  .lockup .lines{font-family:"EB Garamond",serif;text-transform:uppercase;
    letter-spacing:.3em;font-size:10.5px;color:var(--ink-soft);line-height:2.1;text-indent:.3em;}

  /* ---------- timeline ---------- */
  .tl{border:none;}
  .tl div{display:grid;grid-template-columns:64px 1fr;gap:20px;padding:11px 0;
    border:none;font-size:15px;color:var(--ink-soft);line-height:1.6;}
  .tl b{font-family:"EB Garamond",serif;font-size:15px;color:var(--ink-faint);
    font-weight:400;font-variant-numeric:tabular-nums;letter-spacing:.06em;}
  .pull{font-family:"EB Garamond",serif;font-style:italic;font-size:23px;line-height:1.4;
    color:var(--navy);padding-left:0;margin:32px 0 0;opacity:.95;}

  /* ---------- contact ---------- */
  .contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:56px;}
  .field{display:grid;gap:6px;margin-bottom:16px;}
  .field label{font-size:10px;font-weight:700;letter-spacing:.16em;
    text-transform:uppercase;color:var(--ink-faint);}
  .field input,.field textarea{font:inherit;font-size:15px;padding:12px 13px;
    color:var(--ink);background:var(--ground);border:1px solid var(--rule);
    border-radius:0;transition:border-color .2s,box-shadow .2s;}
  .field input:hover,.field textarea:hover{border-color:var(--hair);}
  .field input:focus,.field textarea:focus{outline:none;border-color:var(--navy);
    box-shadow:0 0 0 3px rgba(0,81,135,.14);}
  .info{border-top:2px solid var(--navy);}
  .info div{padding:16px 0;border-bottom:1px solid var(--rule-soft);}
  .info .label{margin-bottom:5px;}
  .info a,.info p{font-size:16.5px;margin:0;color:var(--ink);text-decoration:none;}
  .info a:hover{color:var(--navy);}
  .note{background:var(--tint-2);border-left:3px solid var(--gold);
    padding:14px 18px;font-size:14px;color:var(--ink-soft);margin-top:22px;}

  /* ---------- strip + footer ---------- */
  .strip{background:var(--tint-warm);border-top:1px solid var(--rule);
    border-bottom:1px solid var(--rule);}
  .strip .wrap{padding:48px 26px;display:flex;flex-wrap:wrap;gap:22px;
    align-items:center;justify-content:space-between;}
  .strip h3{font-size:28px;color:var(--navy);}
  .strip p{color:var(--ink-soft);margin:6px 0 0;}
  footer{background:var(--navy-ink);color:var(--on-navy-soft);font-size:14px;}
  footer .wrap{padding:50px 26px 32px;display:grid;
    grid-template-columns:repeat(auto-fit,minmax(min(200px,100%),1fr));gap:32px;}
  footer img.fmark{height:26px;width:auto;margin-bottom:16px;}
  footer .fh{color:#fff;font-size:10px;font-weight:700;letter-spacing:.19em;
    text-transform:uppercase;font-family:"Public Sans",sans-serif;margin-bottom:12px;}
  footer a{color:var(--on-navy-soft);text-decoration:none;display:block;padding:3px 0;
    transition:color .2s,transform .2s;}
  footer a:hover{color:#fff;transform:translateX(3px);}
  footer p{margin:0;line-height:1.75;}
  .fline{border-top:1px solid rgba(255,255,255,.14);}
  .fline .wrap{display:block;text-align:center;padding:20px 26px 16px;}
  .fline span{font-family:"EB Garamond",serif;text-transform:uppercase;letter-spacing:.24em;
    font-size:10.5px;color:var(--on-navy-soft);line-height:2.2;text-indent:.24em;}
  .legal{border-top:1px solid rgba(255,255,255,.1);}
  .legal .wrap{display:flex;flex-wrap:wrap;gap:8px 26px;justify-content:space-between;
    padding:16px 26px 32px;font-size:12px;}

  [hidden]{display:none!important;}

  /* ---------- motion ---------- */
  @media (prefers-reduced-motion:no-preference){
    @keyframes rise{from{transform:translateY(13px);}to{transform:none;}}
    @keyframes drift{from{transform:scale(1.0);}to{transform:scale(1.09);}}
    main.enter > *{animation:rise .5s cubic-bezier(.22,.7,.3,1) backwards;}
    main.enter > *:nth-child(2){animation-delay:.07s;}
    main.enter > *:nth-child(3){animation-delay:.13s;}
    main.enter > *:nth-child(4){animation-delay:.19s;}
    #svcBody.swap .svc-detail > *{animation:rise .42s cubic-bezier(.22,.7,.3,1) backwards;}
    #svcBody.swap .svc-detail > *:nth-child(2){animation-delay:.08s;}
    .hero .bg{animation:drift 26s ease-out forwards;}
  }

  @media (max-width:920px){
    .hero .wrap,.svc-detail,.contact-grid,.res-layout{grid-template-columns:1fr;gap:38px;}
    .card-obj{margin-left:0;}
    .card-cap{text-align:left;}
    .hero .wrap{padding-top:66px;padding-bottom:62px;}
    .card-obj{max-width:340px;}
    .mast .wrap{padding-bottom:6px;}
    .brand img{height:auto;max-width:min(280px,60vw);}
  }
  /* ================= modern layer ================= */
  p{text-wrap:pretty;}

  .skip{position:fixed;top:-60px;left:12px;z-index:200;background:var(--navy);color:#fff;
    padding:11px 18px;font-size:13px;font-weight:700;letter-spacing:.1em;
    text-transform:uppercase;text-decoration:none;transition:top .2s;}
  .skip:focus{top:12px;}

  .progress{position:fixed;top:0;left:0;right:0;height:2px;z-index:60;pointer-events:none;}
  .progress i{display:block;height:100%;width:100%;background:var(--gold);
    transform:scaleX(0);transform-origin:0 50%;}

  .theme-btn{width:30px;height:16px;border-radius:999px;border:1px solid rgba(255,255,255,.35);
    background:rgba(255,255,255,.08);padding:0;cursor:pointer;position:relative;
    transition:background .25s,border-color .25s;}
  .theme-btn span{position:absolute;top:1px;left:1px;width:12px;height:12px;border-radius:50%;
    background:#fff;transition:transform .3s cubic-bezier(.4,0,.2,1);}
  .theme-btn:hover{border-color:rgba(255,255,255,.7);}
  .theme-btn:focus-visible{outline:2px solid var(--gold);outline-offset:3px;}
  :root[data-theme="dark"] .theme-btn span{transform:translateX(14px);}
  @media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .theme-btn span{transform:translateX(14px);}}

  /* banners stay clean: gradient only, no ornament */
  .banner::before,.banner::after{display:none;}

  /* film grain */
  .grain{position:absolute;inset:0;pointer-events:none;opacity:.055;mix-blend-mode:overlay;
    background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3'/%3E%3C/filter%3E%3Crect width='140' height='140' filter='url(%23n)'/%3E%3C/svg%3E");}

  /* duotone treatment on the hero photograph */
  .hero .bg{filter:grayscale(1) contrast(1.08) brightness(1.02);}

  /* services dropdown */
  .has-menu{position:relative;}
  .menu{position:absolute;top:calc(100% - 4px);left:0;min-width:min(238px,88vw);max-width:88vw;background:var(--ground);
    border:1px solid var(--rule);box-shadow:var(--sh-3);padding:8px 0;z-index:40;
    opacity:0;visibility:hidden;transform:translateY(-6px);
    transition:opacity .22s,transform .22s,visibility .22s;}
  .has-menu:hover .menu,.has-menu:focus-within .menu{opacity:1;visibility:visible;transform:none;}
  .menu button{display:block;width:100%;text-align:left;font:inherit;
    font-family:"EB Garamond",Garamond,serif;font-size:16px;letter-spacing:0;
    text-transform:none;color:var(--ink);background:none;border:none;
    padding:9px 20px;cursor:pointer;transition:background .18s,color .18s,padding-left .22s;}
  .menu button::after{display:none;}
  .menu button:hover{background:var(--tint);color:var(--navy);padding-left:25px;}
  .menu button:focus-visible{outline:2px solid var(--gold);outline-offset:-2px;}

  /* container queries on the people grid */
  .people{container-type:inline-size;}
  @container (max-width:640px){.person{padding:24px 20px;}}

  /* view transitions */
  @view-transition{navigation:auto;}

  /* scroll-driven reveals, progressively enhanced */
  @keyframes rise-in{from{transform:translateY(20px);}to{transform:none;}}
  @keyframes draw-x{from{transform:scaleX(0);}to{transform:scaleX(1);}}
  @keyframes fill-bar{from{transform:scaleX(0);}to{transform:scaleX(1);}}
  @keyframes vt-fade-out{to{opacity:0;transform:translateY(-8px);}}
  @keyframes vt-fade-in{from{opacity:0;transform:translateY(12px);}}

  @media (prefers-reduced-motion:no-preference){
    @supports (animation-timeline:view()){
      .reveal{animation:rise-in linear both;animation-timeline:view();
        animation-range:entry 2% cover 26%;}
      .draw{transform-origin:left center;animation:draw-x linear both;
        animation-timeline:view();animation-range:entry 8% cover 30%;}
    }
    @supports (animation-timeline:scroll()){
      .progress i{animation:fill-bar linear both;animation-timeline:scroll(root);}
    }
    ::view-transition-old(root){animation:vt-fade-out .22s cubic-bezier(.4,0,1,1) both;}
    ::view-transition-new(root){animation:vt-fade-in .36s cubic-bezier(0,0,.2,1) both;}
  }
  @media (prefers-reduced-motion:reduce){
    ::view-transition-old(root),::view-transition-new(root){animation:none;}
  }

  @media (prefers-contrast:more){
    :root{--ink-soft:#333b47;--rule:#9aa7b4;--hair:#7d8b99;}
  }

  /* print: a CPA firm's clients print things */
  @media print{
    .util,.tabs,.progress,.skip,.grain,.theme-btn,.strip,.hero .bg,.hero .veil,.hero .glow{display:none!important;}
    body{background:#fff;color:#000;font-size:11pt;}
    .hero,.banner{background:#fff!important;color:#000!important;}
    .hero .tag,.hero .est,.hero p,.banner h1,.banner p,.banner .label{color:#000!important;}
    .hero-logo{filter:invert(1);max-width:300px;}
    main[hidden]{display:block!important;}
    footer{background:#fff;color:#000;}
    a{color:#000;text-decoration:none;}
  }

  /* ================= accessibility ================= */
  .vh{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;
    overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0;}
  .hero-h1{margin:0;line-height:0;}
  :focus-visible{outline:2px solid var(--gold);outline-offset:3px;}
  .hero :focus-visible,.banner :focus-visible,footer :focus-visible,
  .util :focus-visible{outline-color:#fff;}
  /* 2.4.11 focus not obscured by the sticky masthead */
  a,button,input,textarea,summary,[tabindex]{scroll-margin-top:132px;}
  /* 2.5.8 target size */
  .theme-btn{width:44px;height:24px;}
  .theme-btn span{width:18px;height:18px;top:2px;left:2px;}
  :root[data-theme="dark"] .theme-btn span{transform:translateX(20px);}
  @media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .theme-btn span{transform:translateX(20px);}}
  .util .acts a,.util-info a{padding:4px 0;display:inline-block;}
  #svcBody:focus-visible{outline:2px solid var(--gold);outline-offset:6px;}
  /* ---------- static-site additions ---------- */
  /* The site renders in one palette. The theme switch was removed, and every
     dark rule is scoped to :root:not([data-theme="light"]) or [data-theme="dark"],
     so the data-theme="light" on <html> keeps the palette fixed. This declares
     the same thing to the browser so form controls, scrollbars and the address
     bar do not render dark around a light page. */
  :root{color-scheme:light;}
  /* these were <button> in the artifact and are <a> in the static build */
  a.area-pill{text-decoration:none;display:inline-flex;align-items:center;}
  .subnav{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:44px;
    padding-bottom:26px;border-bottom:1px solid var(--rule);}
  .subnav a{font-family:"EB Garamond",Garamond,serif;font-size:17px;line-height:1;
    color:var(--navy);background:transparent;border:1px solid var(--hair);
    border-radius:999px;padding:12px 22px;text-decoration:none;
    transition:background .24s,color .24s,border-color .24s,transform .24s,box-shadow .24s;}
  .subnav a:hover{border-color:var(--navy);background:var(--tint);transform:translateY(-1px);}
  .subnav a[aria-current="page"]{background:var(--btn-fill);border-color:var(--btn-fill);
    color:var(--btn-on);box-shadow:var(--sh-1);}
  .tabs a{position:relative;display:inline-block;font-size:12.5px;font-weight:700;
    letter-spacing:.09em;text-transform:uppercase;color:var(--ink-soft);text-decoration:none;
    padding:10px 13px 17px;transition:color .2s;}
  .tabs a::after{content:"";position:absolute;left:13px;right:13px;bottom:0;height:2px;
    background:var(--gold);transform:scaleX(0);transform-origin:left;
    transition:transform .28s cubic-bezier(.4,0,.2,1);}
  .tabs a:hover{color:var(--navy);}
  .tabs a:hover::after{transform:scaleX(1);}
  .tabs a[aria-current="page"]{color:var(--navy);}
  .tabs a[aria-current="page"]::after{transform:scaleX(1);}
  .menu a{display:block;width:100%;text-align:left;font-family:"EB Garamond",Garamond,serif;
    font-size:16px;letter-spacing:0;text-transform:none;color:var(--ink);text-decoration:none;
    padding:9px 20px;transition:background .18s,color .18s,padding-left .22s;}
  .menu a::after{display:none;}
  .menu a:hover{background:var(--tint);color:var(--navy);padding-left:25px;}
  .embed-wrap{border:1px solid var(--rule);background:var(--surface,#fff);
    box-shadow:var(--sh-1);margin-top:8px;}
  .embed-wrap iframe{display:block;width:100%;height:min(1100px,85vh);border:0;}
  .map-wrap{border:1px solid var(--rule);margin-top:22px;box-shadow:var(--sh-1);}
  .map-wrap iframe{display:block;width:100%;height:340px;border:0;filter:saturate(.9);}
  /* --- hero photograph ------------------------------------------------
     The tower sits center-left in the frame, which is exactly where the veil
     was heaviest, so only the streetlight and palms were reading. Lift the
     photo up to bring the tower top in, raise its opacity, and re-angle the
     veil so it stays dense behind the text and opens up across the building. */
  .hero .bg{background-image:url("assets/building.jpg");
    background-position:54% 14%;opacity:.55;}
  .hero .veil{background:linear-gradient(96deg,
    rgba(3,28,45,.97) 0%,
    rgba(0,67,111,.92) 24%,
    rgba(0,81,135,.60) 54%,
    rgba(0,77,105,.34) 100%);}
  .hero .glow{background:radial-gradient(130% 90% at 6% 45%,rgba(0,0,0,.42),transparent 58%);}

  /* --- hero lockup rebalance ---------------------------------------
     The wordmark must outrank the tagline. At 430px the lockup renders
     ~46px tall while the tagline was setting up to 54px, so the slogan
     was visually beating the brand. Enlarge the mark, reduce the tagline,
     and pull the two letterspaced small-caps lines apart. */
  .hero-logo{max-width:520px;}
  .hero .est{font-size:10px;letter-spacing:.3em;text-indent:.3em;
    color:rgba(255,255,255,.5);margin:34px 0 0;}
  .hero-rule{width:96px;margin:30px 0 30px;
    background:linear-gradient(90deg,var(--gold),transparent);}
  .hero .tag{font-size:clamp(26px,3.3vw,39px);line-height:1.14;margin:0 0 20px;}
  .hero p{font-size:17px;}
  @media (max-width:560px){.hero .est{font-size:9px;letter-spacing:.2em;}}
  .person.has-photo{padding-top:0;overflow:hidden;}
  .portrait{margin:0 -26px 20px;aspect-ratio:1/1;overflow:hidden;background:var(--tint);
    border-bottom:1px solid var(--rule);}
  .portrait img{width:100%;height:100%;object-fit:cover;object-position:50% 18%;display:block;
    transition:transform .6s cubic-bezier(.2,.7,.3,1);}
  .person.has-photo:hover .portrait img{transform:scale(1.035);}
  .person.has-photo h3{padding-top:2px;}

  .cpa-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(230px,100%),1fr));
    gap:1px;background:var(--rule);border:1px solid var(--rule);box-shadow:var(--sh-1);}
  .cpa{background:var(--ground);padding:24px 22px;display:grid;gap:9px;justify-items:start;
    align-content:start;transition:background .24s;}
  .cpa:hover{background:var(--tint);}
  .cmono{width:44px;height:44px;background:var(--btn-fill);color:var(--btn-on);
    display:flex;align-items:center;justify-content:center;font-family:"EB Garamond",serif;
    font-size:16px;letter-spacing:.03em;}
  .cname{font-family:"EB Garamond",Garamond,serif;font-size:21px;line-height:1.2;color:var(--ink);}
  @media (max-width:560px){.portrait{margin:0 -20px 18px;}}
  /* practice profile, filling the Who We Are left column */
  .profile{border-top:1px solid var(--rule);}
  .profile div{display:grid;grid-template-columns:118px 1fr;gap:18px;padding:11px 0;
    border-bottom:1px solid var(--rule-soft);font-size:15px;align-items:baseline;}
  .profile b{font-size:9.5px;font-weight:700;letter-spacing:.18em;text-transform:uppercase;
    color:var(--ink-faint);}
  .profile span{color:var(--ink);}

  /* client concentrations */
  .clients{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(300px,100%),1fr));
    gap:0 48px;border-top:2px solid var(--navy);}
  .cw{display:grid;gap:3px;padding:17px 0;border-bottom:1px solid var(--rule-soft);
    transition:padding-left .28s;}
  .cw:hover{padding-left:8px;}
  .cw b{font-family:"EB Garamond",Garamond,serif;font-weight:500;font-size:20px;
    line-height:1.2;color:var(--navy);}
  .cw span{font-size:14.5px;color:var(--ink-soft);}

  /* inline forward link */
  .more{font-size:11.5px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;
    color:var(--navy);text-decoration:none;display:inline-block;padding:4px 0;}
  .more span{display:inline-block;transition:transform .28s;}
  .more:hover span{transform:translateX(5px);}

  /* two-up teasers into the firm pages */
  .twoup{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(320px,100%),1fr));gap:1px;
    background:var(--rule);border:1px solid var(--rule);box-shadow:var(--sh-1);}
  .teaser{display:grid;gap:8px;align-content:start;padding:34px 30px 30px;
    background:var(--ground);text-decoration:none;color:inherit;position:relative;
    transition:background .25s,box-shadow .25s,transform .25s;}
  .teaser::before{content:"";position:absolute;left:0;right:0;top:0;height:3px;
    background:var(--gold);transform:scaleX(0);transform-origin:left;
    transition:transform .34s cubic-bezier(.4,0,.2,1);}
  .teaser:hover{background:var(--tint);z-index:2;box-shadow:var(--sh-2);}
  .teaser:hover::before{transform:scaleX(1);}
  .tk{font-size:9.5px;font-weight:700;letter-spacing:.24em;text-transform:uppercase;
    color:var(--ink-faint);}
  .tt{font-family:"EB Garamond",Garamond,serif;font-size:26px;line-height:1.2;color:var(--navy);}
  .td{font-size:15px;color:var(--ink-soft);}
  .teaser .more{margin-top:6px;}

  .svc-tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(290px,100%),1fr));
    gap:1px;background:var(--rule);border:1px solid var(--rule);box-shadow:var(--sh-1);}
  .svc-tile{position:relative;background:var(--ground);padding:32px 28px 28px;display:grid;
    gap:9px;align-content:start;text-decoration:none;color:inherit;
    transition:background .25s,box-shadow .25s;}
  .svc-tile::before{content:"";position:absolute;left:0;right:0;top:0;height:3px;
    background:var(--gold);transform:scaleX(0);transform-origin:left;
    transition:transform .34s cubic-bezier(.4,0,.2,1);}
  .svc-tile:hover{background:var(--tint);z-index:2;box-shadow:var(--sh-2);}
  .svc-tile:hover::before{transform:scaleX(1);}
  .sn{font-family:"EB Garamond",Garamond,serif;font-size:15px;color:var(--gold-ink);
    font-variant-numeric:tabular-nums;}
  .st{font-family:"EB Garamond",Garamond,serif;font-size:25px;line-height:1.15;color:var(--navy);}
  .sd{font-size:14.5px;color:var(--ink-soft);}
  .svc-tile .more{margin-top:6px;}
  /* Five practice areas in a six-cell grid left one pale empty box that read as
     missing content. The sixth cell now carries the mark from the wordmark, so
     it closes the grid deliberately. Decorative only, hidden from assistive
     technology, and dropped when the grid collapses to a single column. */
  .svc-mark{background:var(--tint);align-content:center;justify-items:center;
    cursor:default;min-height:150px;}
  .svc-mark:hover{background:var(--tint);box-shadow:none;}
  .amp{font-family:"EB Garamond",Garamond,serif;font-style:italic;font-size:66px;
    line-height:1;color:var(--navy);opacity:.17;}
  @media (max-width:660px){.svc-mark{display:none;}}
  .more span{display:inline-block;transition:transform .28s;}
  a.more:hover span{transform:translateX(5px);}
  .staff-split{display:grid;grid-template-columns:1fr 1.05fr;gap:56px;align-items:start;}
  .roles{border-top:2px solid var(--navy);}
  .roles div{display:grid;gap:2px;padding:16px 0;border-bottom:1px solid var(--rule-soft);
    transition:padding-left .28s;}
  .roles div:hover{padding-left:7px;}
  .roles b{font-family:"EB Garamond",Garamond,serif;font-weight:500;font-size:20px;
    color:var(--navy);}
  .roles span{font-size:14.5px;color:var(--ink-soft);}
  @media (max-width:920px){.staff-split{grid-template-columns:1fr;gap:34px;}}
  .payform{display:inline;margin:0;}
  /* An <a class="btn"> and a <button class="btn"> inside a form were rendering at
     different heights: the anchor inherits the body line-height, the button does not.
     Normalise both to the same box so paired CTAs line up exactly. */
  a.btn,button.btn{display:inline-flex;align-items:center;justify-content:center;
    line-height:1.2;box-sizing:border-box;min-height:46px;text-align:center;}
  .cta{align-items:stretch;}
  .cta .payform{display:flex;}
  .cta .payform > .btn{width:100%;}
  button.btn{-webkit-appearance:none;appearance:none;background:transparent;}
  button.btn-outline{background:transparent;color:var(--navy);}
  button.btn-outline:hover{background:var(--tint);}
  .util .acts{align-items:center;}
  .paylink{border:1px solid rgba(255,255,255,.42);border-radius:999px;
    padding:5px 15px;font:inherit;font-size:11.5px;font-weight:700;letter-spacing:.09em;
    text-transform:uppercase;color:#fff;background:transparent;cursor:pointer;
    transition:background .22s,border-color .22s,color .22s;}
  .paylink:hover{background:var(--gold);border-color:var(--gold);color:#fff;}
  .payfoot{background:none;border:none;padding:3px 0;font:inherit;font-size:14px;
    color:var(--on-navy-soft);cursor:pointer;text-align:left;display:block;
    transition:color .2s,transform .2s;}
  .payfoot:hover{color:#fff;transform:translateX(3px);}
  .payinfo{background:none;border:none;padding:0;font:inherit;font-size:16.5px;
    color:var(--ink);cursor:pointer;}
  .payinfo:hover{color:var(--navy);}
  .prose h2{margin-top:40px;}

  /* ================= refinement pass ================= */

  /* cross-document view transitions: the chrome persists between pages */
  @view-transition{navigation:auto;}
  @media (prefers-reduced-motion:no-preference){
    ::view-transition-group(root){animation-duration:.34s;}
    ::view-transition-old(root){animation:vt-fade-out .2s cubic-bezier(.4,0,1,1) both;}
    ::view-transition-new(root){animation:vt-fade-in .34s cubic-bezier(0,0,.2,1) both;}
    .util{view-transition-name:gg-util;}
    .mast{view-transition-name:gg-mast;}
    .brand img.dark,.brand img.lite{view-transition-name:gg-mark;}
    footer{view-transition-name:gg-foot;}
    .progress{view-transition-name:gg-prog;}
  }

  /* selection + caret */
  ::selection{background:var(--navy);color:#fff;}
  ::-moz-selection{background:var(--navy);color:#fff;}

  /* inset highlight: the detail that reads as expensive on dark panels */
  .hero,.banner,.contact,footer{box-shadow:inset 0 1px 0 rgba(255,255,255,.09);}
  .util{box-shadow:inset 0 -1px 0 rgba(255,255,255,.06);}

  /* soft light washes rather than flat fills */
  .creds{background-image:radial-gradient(120% 180% at 8% 0%,rgba(0,81,135,.045),transparent 60%);}
  .strip{background-image:radial-gradient(100% 200% at 90% 10%,rgba(163,130,63,.07),transparent 65%);}

  /* rules that fade at the ends, like an engraved line */
  .rule-gold{background:linear-gradient(90deg,var(--gold),color-mix(in srgb,var(--gold) 25%,transparent));}
  .hero-rule{background:linear-gradient(90deg,var(--gold),transparent);}

  /* typographic detail */
  .prose > p:first-of-type::first-line,.intro::first-line{
    font-variant-caps:normal;letter-spacing:.004em;}
  .tl b,.phone a,.info a[href^="tel"]{font-variant-numeric:tabular-nums lining-nums;}
  .banner h1{letter-spacing:-.018em;}
  blockquote,.pull{quotes:"C" "D";}

  /* elevation refinement on interactive surfaces */
  .person,.res a,.svc-card{will-change:transform;}
  .person:hover,.res a:hover{box-shadow:var(--sh-2),0 0 0 1px color-mix(in srgb,var(--navy) 18%,transparent);}

  /* contact: direct-reach cards */
  .reach{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(260px,100%),1fr));
    gap:1px;background:var(--rule);border:1px solid var(--rule);box-shadow:var(--sh-1);}
  .reach-card{position:relative;background:var(--ground);padding:34px 30px 30px;
    display:grid;gap:5px;text-decoration:none;color:inherit;
    transition:background .25s,transform .25s,box-shadow .25s;}
  .reach-card::before{content:"";position:absolute;left:0;right:0;top:0;height:3px;
    background:var(--gold);transform:scaleX(0);transform-origin:left;
    transition:transform .34s cubic-bezier(.4,0,.2,1);}
  a.reach-card:hover{background:var(--tint);z-index:2;box-shadow:var(--sh-2);}
  a.reach-card:hover::before{transform:scaleX(1);}
  .reach-card.static{background:var(--tint-warm);}
  .rk{font-size:9.5px;font-weight:700;letter-spacing:.24em;text-transform:uppercase;
    color:var(--ink-faint);}
  .rv{font-family:"EB Garamond",Garamond,serif;font-size:clamp(25px,3vw,33px);
    line-height:1.15;color:var(--navy);font-variant-numeric:tabular-nums lining-nums;
    word-break:break-word;}
  .rv.sm{font-size:clamp(19px,2.2vw,23px);}
  .rn{font-size:13.5px;color:var(--ink-soft);}

  /* scrollbar, quietly on-brand */
  @supports (scrollbar-color: auto){
    html{scrollbar-color:color-mix(in srgb,var(--navy) 45%,transparent) transparent;
      scrollbar-width:thin;}
  }

  /* content-visibility deliberately NOT used on the footer: it makes the
     background unresolvable to automated contrast scanners on tall pages,
     which produces exactly the false positive an ADA demand letter is built from. */
  .prose h3{font-size:21px;margin:28px 0 6px;color:var(--navy);}
  .prose ul{padding-left:20px;color:var(--ink-soft);}
  .prose li{margin-bottom:7px;}
  .banner-narrow .wrap{padding-bottom:44px;}
  .faq{border-top:2px solid var(--navy);}
  .faq details{border-bottom:1px solid var(--rule-soft);}
  .faq summary{display:flex;justify-content:space-between;gap:20px;align-items:baseline;
    padding:18px 0;cursor:pointer;list-style:none;font-family:"EB Garamond",serif;font-size:21px;
    color:var(--navy);}
  .faq summary::-webkit-details-marker{display:none;}
  .faq summary::after{content:"+";font-family:"EB Garamond",serif;color:var(--gold);font-size:20px;}
  .faq details[open] summary::after{content:"\2013";}
  .faq summary:focus-visible{outline:2px solid var(--gold);outline-offset:3px;}
  .faq .a{padding:0 0 20px;color:var(--ink-soft);max-width:70ch;}
  .faq .a p:last-child{margin-bottom:0;}

  /* ================= narrow-width pass ================= */

  /* The services dropdown is a pointer affordance. It sits absolutely positioned
     off the right edge on a phone, and because it is only visibility:hidden it
     still contributes 16px of horizontal scroll to every page. On touch devices
     it is also a trap: the first tap opens the menu instead of following the
     link. Below the breakpoint the Our Services tab simply goes to the practice
     area overview page, which lists all five in full. */
  @media (max-width:860px){.has-menu .menu{display:none;}}
  @media (hover:none){.has-menu .menu{display:none;}}

  .util-info{display:flex;flex-wrap:wrap;gap:6px 24px;}

  @media (max-width:720px){
    /* utility bar: phone, portal and payment stay; the street address is on the
       Contact page and in the footer, so it does not need a third line here */
    .util{font-size:12.5px;}
    .util .wrap{padding:7px 20px;gap:6px 18px;
      justify-content:space-between;align-items:center;}
    .util-addr{display:none;}
    .util-info{flex:1 1 auto;}
    .util .acts{gap:16px;flex:0 0 auto;align-items:center;}
    .util .acts a{white-space:nowrap;font-size:12.5px;}
    .paylink{padding:5px 11px;font-size:10.5px;letter-spacing:.06em;white-space:nowrap;}
    .payform{flex:0 0 auto;}

    /* masthead: this bar is sticky, so at 220px tall it was taking a quarter of
       the screen with it down the page. Tighter type and padding brings the
       whole header back to roughly one row of tabs plus the mark. */
    .mast .wrap{padding:12px 20px 0;gap:6px 14px;}
    .brand{padding-bottom:9px;}
    .brand img{height:26px;}
    .tabs{gap:0;}
    .tabs a{font-size:11px;letter-spacing:.07em;padding:9px 9px 13px;}
    .tabs a::after{left:9px;right:9px;}
  }

  @media (max-width:560px){
    .wrap{padding-left:20px;padding-right:20px;}
    .util .wrap,.mast .wrap{padding-left:16px;padding-right:16px;}
    .tabs a{padding:9px 7px 12px;}
    .tabs a::after{left:7px;right:7px;}
    .brand img{height:23px;}
  }

  /* embedded third-party pages (newsletter, calculators, reports, the map) run
     edge to edge on a phone rather than losing 40px to the page gutter */
  @media (max-width:560px){
    .embed-wrap,.map-wrap{margin-left:-20px;margin-right:-20px;
      width:calc(100% + 40px);border-left:0;border-right:0;}
    .embed-wrap iframe{height:min(1100px,78vh);}
  }

  /* footer contact block: inline links, but on their own lines */
  .fcontact{margin-top:14px;}
  .fcontact a{display:inline;}

  /* touch targets: WCAG 2.2 SC 2.5.8 asks for 24x24 on anything that is not a
     link inside a run of text. These are the standalone ones. */
  @media (hover:none){
    .pill{padding:6px 11px;}
    .person .mail,.info > div > a{display:inline-block;padding:4px 0;}
    /* the address block on the Accessibility and Privacy pages sets the phone
       and email on their own lines, so they are not inline-in-a-sentence */
    .prose a[href^="tel"],.prose a[href^="mailto"]{display:inline-block;padding:4px 0;}
    .fcontact{line-height:2.1;}
    .fcontact a{display:inline-block;padding:2px 0;}
  }
