
.inner-main { background: var(--ivory); }
.breadcrumbs { display:flex; gap:9px; align-items:center; padding-top:24px; padding-bottom:18px; color:#7d8e8f; font-size:10px; letter-spacing:.08em; text-transform:uppercase; }
.breadcrumbs a { color:#8c625f; border-bottom:1px solid rgba(199,142,135,.6); }
.inner-hero { display:grid; grid-template-columns:1.12fr .88fr; gap:7vw; align-items:center; max-width:none; padding-top:78px; padding-bottom:88px; background:var(--navy); color:#fff; }
.inner-hero-copy { max-width:720px; padding-left:5vw; }
.inner-hero-copy .eyebrow { color:#e8b7b0; }
.inner-hero-copy h1 { max-width:680px; margin-bottom:24px; color:#fff; font-size:clamp(48px,5.4vw,78px); }
.inner-hero-copy > p:not(.eyebrow) { max-width:600px; color:#d3dfe2; font-size:17px; line-height:1.72; }
.inner-hero-actions { display:flex; align-items:center; gap:25px; margin-top:34px; }
.inner-phone { padding-bottom:4px; border-bottom:1px solid #e8b7b0; color:#fff; font-family:var(--serif); font-size:19px; }
.inner-hero-media { position:relative; min-height:450px; margin-right:5vw; overflow:hidden; background:#112d42; }
.inner-hero-media img { width:100%; height:100%; min-height:450px; object-fit:cover; filter:saturate(.78) contrast(1.04); }
.inner-hero-media::after { content:""; position:absolute; inset:0; background:linear-gradient(180deg,rgba(12,35,55,.02),rgba(12,35,55,.62)); }
.inner-hero-media span { position:absolute; z-index:1; right:20px; bottom:18px; color:#f3d2cc; font-size:9px; letter-spacing:.14em; text-transform:uppercase; }
.inner-layout { display:grid; grid-template-columns:1fr 310px; gap:8vw; align-items:start; padding-top:96px; padding-bottom:115px; }
.inner-content { max-width:740px; }
.content-section { margin-bottom:48px; }
.content-section:last-child { margin-bottom:0; }
.content-section h2 { max-width:640px; margin-bottom:16px; color:var(--navy); font-size:clamp(30px,3.2vw,46px); }
.content-section p { max-width:690px; color:var(--ink-soft); font-size:16px; line-height:1.78; }
.content-list { display:grid; gap:12px; max-width:690px; margin:20px 0 0; padding:0; list-style:none; }
.content-list li { position:relative; padding:13px 15px 13px 32px; border-top:1px solid var(--line); color:var(--ink-soft); font-size:14px; line-height:1.6; }
.content-list li::before { content:"✦"; position:absolute; left:5px; color:var(--rose); }
.content-callout { max-width:690px; margin-top:24px; padding:21px 23px; border-left:2px solid var(--rose); background:var(--sand); }
.content-callout strong { display:block; margin-bottom:7px; color:var(--navy); font-family:var(--serif); font-size:20px; font-weight:500; }
.content-callout p { margin:0; font-size:13px; }
.practice-evidence { margin-top:72px; padding-top:54px; border-top:1px solid var(--line); }
.practice-evidence-heading { display:grid; grid-template-columns:.72fr 1.28fr; gap:30px; align-items:end; margin-bottom:27px; }
.practice-evidence-heading h2 { max-width:480px; margin:0; color:var(--navy); font-size:clamp(30px,3.2vw,44px); }
.practice-evidence-heading p:last-child { max-width:410px; margin:0; color:var(--ink-soft); font-size:14px; line-height:1.7; }
.practice-evidence-grid { display:grid; grid-template-columns:1fr 1fr; gap:14px; }
.practice-evidence-grid figure { position:relative; min-height:250px; margin:0; overflow:hidden; background:var(--navy); }
.practice-evidence-grid img { width:100%; height:100%; min-height:250px; object-fit:cover; filter:saturate(.78) contrast(1.03); transition:transform .35s ease; }
.practice-evidence-grid figure:hover img { transform:scale(1.025); }
.practice-evidence-grid figcaption { position:absolute; right:0; bottom:0; left:0; padding:35px 17px 15px; background:linear-gradient(transparent,rgba(15,37,55,.88)); color:#fff; font-size:10px; letter-spacing:.08em; text-transform:uppercase; }
.practice-sources { margin-top:66px; padding:28px 0 0; border-top:1px solid var(--line); }
.practice-sources h2 { max-width:520px; margin:0 0 12px; color:var(--navy); font-size:clamp(28px,3vw,40px); }
.practice-sources > p:not(.eyebrow) { max-width:650px; margin:0 0 20px; color:var(--ink-soft); font-size:13px; line-height:1.7; }
.practice-sources ol { display:grid; gap:0; max-width:690px; margin:0; padding:0; list-style:none; counter-reset:source; }
.practice-sources li { counter-increment:source; border-top:1px solid var(--line); }
.practice-sources li a { display:flex; align-items:baseline; gap:14px; padding:13px 5px 13px 0; color:var(--ink); font-size:13px; line-height:1.5; }
.practice-sources li a::before { content:counter(source, decimal-leading-zero); color:var(--rose); font-size:10px; letter-spacing:.12em; }
.practice-sources li a span { margin-left:auto; color:var(--rose); font-size:16px; }
.practice-faq { margin-top:66px; padding-top:54px; border-top:1px solid var(--line); }
.practice-faq h2 { max-width:520px; margin:0 0 12px; color:var(--navy); font-size:clamp(28px,3vw,40px); }
.practice-faq > p:not(.eyebrow) { max-width:650px; margin:0 0 22px; color:var(--ink-soft); font-size:13px; line-height:1.7; }
.practice-faq .faq-list { margin-top:0; }
.inner-aside { position:sticky; top:26px; display:grid; gap:18px; }
.aside-card { padding:27px 24px; border:1px solid var(--line); background:var(--sand); }
.aside-card-dark { border-color:var(--navy); background:var(--navy); color:#fff; }
.aside-card .eyebrow { margin-bottom:13px; }
.aside-card-dark .eyebrow { color:#e8b7b0; }
.aside-card h2 { margin-bottom:14px; color:#fff; font-size:34px; }
.aside-card h3 { margin-bottom:11px; color:var(--navy); font-size:22px; }
.aside-card p { color:var(--ink-soft); font-size:13px; line-height:1.65; }
.aside-card-dark p { color:#c8d7da; }
.aside-card .text-link { margin-top:6px; }
.inner-banner { display:grid; grid-template-columns:1fr 1fr; gap:6vw; align-items:center; max-width:none; padding-top:86px; padding-bottom:90px; background:var(--sand); }
.inner-banner-copy { padding-left:5vw; }
.inner-banner-copy h2 { max-width:520px; }
.inner-banner-copy p { max-width:540px; color:var(--ink-soft); font-size:16px; line-height:1.75; }
.inner-banner-image { min-height:360px; margin-right:5vw; overflow:hidden; background:var(--navy); }
.inner-banner-image img { width:100%; height:100%; min-height:360px; object-fit:cover; filter:saturate(.76); }
.service-grid,.resource-hub-grid,.recognition-grid-page,.team-grid-page { display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:var(--line); border-top:1px solid var(--line); border-left:1px solid var(--line); }
.service-card,.resource-hub-card,.recognition-card-page,.team-card-page { display:flex; min-height:260px; flex-direction:column; padding:27px 25px; background:var(--ivory); transition:.25s ease; }
.service-card:hover,.resource-hub-card:hover,.recognition-card-page:hover { background:#fff; transform:translateY(-3px); box-shadow:0 12px 30px rgba(30,43,58,.1); }
.service-card > span,.resource-hub-card > span,.recognition-card-page > span { color:var(--rose); font-size:10px; letter-spacing:.13em; text-transform:uppercase; }
.service-card h3,.resource-hub-card h3,.recognition-card-page h3 { margin:48px 0 12px; color:var(--navy); font-size:25px; }
.service-card p,.resource-hub-card p,.recognition-card-page p,.team-card-page p { margin:0; color:var(--ink-soft); font-size:13px; line-height:1.65; }
.service-card .card-arrow,.resource-hub-card .card-arrow { margin-top:auto; align-self:flex-end; color:var(--rose); font-size:20px; }
.practice-area-card { min-height:390px; padding:0; overflow:hidden; }
.practice-area-card .service-card-image { height:168px; overflow:hidden; background:var(--navy); }
.practice-area-card .service-card-image img { width:100%; height:100%; object-fit:cover; filter:saturate(.72) contrast(1.04); transition:transform .35s ease; }
.practice-area-card:hover .service-card-image img { transform:scale(1.035); }
.practice-area-card .service-card-copy { display:flex; flex:1; flex-direction:column; padding:23px 25px 25px; }
.practice-area-card .service-card-copy h3 { margin:31px 0 12px; }
.recognition-proof { margin-top:64px; padding-top:54px; border-top:1px solid var(--line); }
.recognition-proof-heading { display:grid; grid-template-columns:.7fr 1.3fr; gap:35px; align-items:end; margin-bottom:30px; }
.recognition-proof-heading h2 { margin:0; font-size:clamp(30px,3.4vw,48px); }
.recognition-proof-heading p:last-child { max-width:440px; margin:0; color:var(--ink-soft); font-size:14px; line-height:1.7; }
.recognition-mark-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:var(--line); border:1px solid var(--line); }
.recognition-mark-grid figure,.recognition-text-mark { display:flex; min-height:190px; flex-direction:column; justify-content:center; align-items:center; gap:14px; margin:0; padding:20px 16px; background:var(--ivory); text-align:center; }
.recognition-mark-grid figure img { width:auto; max-width:150px; max-height:74px; object-fit:contain; }
.recognition-mark-grid figure:first-child img { max-height:126px; }
.recognition-mark-grid figure:nth-child(2) img { width:170px; max-height:72px; }
.recognition-mark-grid figure:nth-child(3) img { width:190px; max-height:56px; }
.recognition-mark-grid figcaption { display:grid; gap:4px; }
.recognition-mark-grid figcaption strong,.recognition-text-mark strong { color:var(--navy); font-family:var(--serif); font-size:17px; font-weight:500; }
.recognition-mark-grid figcaption span,.recognition-text-mark small { color:var(--ink-soft); font-size:10px; line-height:1.45; }
.recognition-text-mark span { color:var(--rose); font-size:12px; letter-spacing:.16em; }
.recognition-text-mark { align-items:flex-start; text-align:left; }
.recognition-photo-grid { display:grid; grid-template-columns:1fr 1fr; gap:16px; margin-top:16px; }
.recognition-photo-grid figure { position:relative; min-height:235px; margin:0; overflow:hidden; background:var(--navy); }
.recognition-photo-grid img { width:100%; height:100%; min-height:235px; object-fit:cover; filter:saturate(.78); }
.recognition-photo-grid figcaption { position:absolute; right:0; bottom:0; left:0; padding:14px 16px; background:linear-gradient(transparent,rgba(15,37,55,.9)); color:#fff; font-size:11px; letter-spacing:.07em; }
.inner-content .faq-list { display:grid; gap:0; max-width:730px; margin-top:20px; border-top:1px solid var(--line); }
.inner-content .faq-list details { border-bottom:1px solid var(--line); }
.inner-content .faq-list summary { padding:20px 36px 20px 0; color:var(--navy); font:500 22px/1.35 var(--serif); cursor:pointer; list-style:none; position:relative; }
.inner-content .faq-list summary::-webkit-details-marker { display:none; }
.inner-content .faq-list summary::after { content:"+"; position:absolute; top:19px; right:0; color:var(--rose); font:400 24px/1 var(--sans); }
.inner-content .faq-list details[open] summary::after { content:"-"; }
.inner-content .faq-list details p { max-width:650px; padding:0 35px 21px 0; margin:0; font-size:14px; }
.contact-page { max-width:none; padding:95px 0 0; background:var(--sand); }
.contact-grid { display:grid; grid-template-columns:minmax(0,.92fr) minmax(320px,1.08fr); gap:64px; align-items:start; max-width:1280px; margin:0 auto; padding:0 5vw 88px; }
.contact-page-copy { padding:8px 0 0; }
.contact-page-copy h1 { max-width:560px; margin-bottom:18px; }
.contact-page-copy > p:not(.eyebrow) { max-width:490px; color:var(--ink-soft); font-size:16px; line-height:1.75; }
.contact-page-details { display:grid; gap:14px; margin-top:36px; max-width:420px; }
.contact-page-details a { width:max-content; color:var(--navy); font-family:var(--serif); font-size:22px; border-bottom:1px solid var(--rose); }
.contact-page-details span { color:var(--ink-soft); font-size:14px; line-height:1.7; }
.contact-page .case-form { width:100%; max-width:none; margin:0; }
.contact-page .form-heading { display:grid; gap:8px; align-items:start; }
.contact-page .form-heading small { max-width:34em; color:var(--ink-soft); font-size:11px; letter-spacing:.02em; text-transform:none; line-height:1.45; }
.contact-map-band { background:var(--navy); }
.contact-map-stage { position:relative; display:grid; grid-template-columns:minmax(280px,380px) 1fr; gap:0; min-height:560px; max-width:1440px; margin:0 auto; }
.contact-map-card { position:relative; z-index:2; display:flex; flex-direction:column; justify-content:center; padding:48px 40px; background:var(--ivory); border-top:4px solid var(--rose); }
.contact-map-card h2 { max-width:16ch; margin:0 0 16px; color:var(--navy); font-size:clamp(32px,3.2vw,44px); }
.contact-map-card address { font-style:normal; color:var(--ink-soft); font-size:15px; line-height:1.7; }
.contact-map-hours { margin:18px 0 0; color:var(--navy); font-size:12px; letter-spacing:.08em; text-transform:uppercase; }
.contact-map-card .button { width:max-content; margin-top:28px; }
.contact-map-frame { position:relative; min-height:560px; overflow:hidden; background:#112d42; }
.contact-map-frame iframe { position:absolute; inset:-80px -90px -40px; width:calc(100% + 180px); height:calc(100% + 120px); border:0; filter:grayscale(1) contrast(1.08) brightness(.92); }
.contact-map-frame::after { content:""; position:absolute; inset:0; background:linear-gradient(90deg,rgba(12,35,55,.22),rgba(12,35,55,.08) 40%,rgba(12,35,55,.28)); pointer-events:none; }
.legal-page { max-width:980px; padding-top:96px; padding-bottom:120px; }
.legal-page h1 { max-width:820px; }
.legal-page h2 { margin-top:40px; font-size:32px; }
.legal-page p,.legal-page li { max-width:760px; color:var(--ink-soft); font-size:15px; line-height:1.78; }
.legal-page ul { padding-left:22px; }
.page-note { margin-top:25px; padding:18px 20px; border-left:2px solid var(--rose); background:var(--sand); color:var(--ink-soft); font-size:13px; line-height:1.6; }
@media (max-width:980px) {
  .inner-hero { grid-template-columns:1fr; gap:45px; }
  .inner-hero-copy { padding-right:5vw; }
  .inner-hero-media { min-height:380px; margin-left:5vw; }
  .inner-hero-media img { min-height:380px; }
  .inner-layout { grid-template-columns:1fr; gap:50px; }
  .inner-aside { position:static; grid-template-columns:1fr 1fr; }
  .service-grid,.resource-hub-grid,.recognition-grid-page,.team-grid-page { grid-template-columns:repeat(2,1fr); }
  .recognition-proof-heading { grid-template-columns:1fr; gap:14px; }
  .practice-evidence-heading { grid-template-columns:1fr; gap:12px; }
  .inner-banner { grid-template-columns:1fr; gap:40px; }
  .inner-banner-image { margin-left:5vw; }
  .contact-grid { grid-template-columns:1fr; gap:40px; }
  .contact-map-stage { grid-template-columns:1fr; min-height:0; }
  .contact-map-frame { min-height:380px; }
}
@media (max-width:740px) {
  .breadcrumbs { padding-top:19px; padding-bottom:15px; font-size:9px; }
  .inner-hero { padding-top:55px; padding-bottom:62px; }
  .inner-hero-copy { padding-left:20px; padding-right:20px; }
  .inner-hero-copy h1 { font-size:clamp(42px,12vw,60px); }
  .inner-hero-copy > p:not(.eyebrow) { font-size:15px; }
  .inner-hero-actions { align-items:flex-start; flex-direction:column; gap:18px; }
  .inner-hero-media { min-height:300px; margin-right:20px; margin-left:20px; }
  .inner-hero-media img { min-height:300px; }
  .inner-layout { padding-top:70px; padding-bottom:80px; }
  .inner-aside { grid-template-columns:1fr; }
  .service-grid,.resource-hub-grid,.recognition-grid-page,.team-grid-page { grid-template-columns:1fr; }
  .recognition-mark-grid,.recognition-photo-grid { grid-template-columns:1fr; }
  .practice-evidence-grid { grid-template-columns:1fr; }
  .service-card,.resource-hub-card,.recognition-card-page,.team-card-page { min-height:220px; }
  .practice-area-card { min-height:0; }
  .practice-area-card .service-card-image { height:190px; }
  .inner-banner { padding-top:70px; padding-bottom:78px; }
  .inner-banner-copy { padding-left:20px; padding-right:20px; }
  .inner-banner-image { min-height:290px; margin-left:20px; margin-right:20px; }
  .inner-banner-image img { min-height:290px; }
  .contact-page { padding-top:70px; }
  .contact-grid { gap:32px; padding:0 20px 64px; }
  .contact-map-card { padding:32px 20px 28px; }
  .contact-map-frame { min-height:320px; }
  .contact-map-card .button { width:100%; }
  .legal-page { padding-top:70px; padding-bottom:85px; }
  .legal-page h1 { font-size:clamp(42px,12vw,60px); }
}
