:root { --paper:#f7f5f0; --white:#fffdfa; --ink:#242824; --muted:#656a62; --gold:#846324; --gold-light:#b89b5e; --line:#dcded5; --soft:#eeece5; --dark:#252c26; --serif:'PT Serif',Georgia,serif; --sans:'Open Sans',Arial,sans-serif; --space:clamp(4rem,7.8vw,7rem); }
*,*::before,*::after { box-sizing:border-box; }
html { scroll-behavior:smooth; scroll-padding-top:115px; }
body { margin:0; background:var(--paper); color:var(--ink); font:16px/1.8 var(--sans); -webkit-font-smoothing:antialiased; }
::selection { background:#e4d5b6; color:#242824; }
a { color:inherit; text-decoration-thickness:1px; text-underline-offset:4px; }
a:hover { color:var(--gold); }
button,input,textarea { font:inherit; }
button,a,input,textarea,summary { -webkit-tap-highlight-color:transparent; }
button,a { touch-action:manipulation; }
button { cursor:pointer; }
img,video { display:block; max-width:100%; height:auto; }
figure,blockquote { margin:0; }
address { font-style:normal; }
.icon { display:inline-block; width:21px; height:21px; flex:0 0 auto; vertical-align:middle; }
h1,h2,h3,h4,p { margin-top:0; }
h1,h2,h3,h4 { font-weight:400; }
h1,h2,h3 { font-family:var(--serif); overflow-wrap:anywhere; hyphens:auto; }
h1 { font-size:clamp(2.8rem,5.3vw,4.9rem); line-height:1.12; letter-spacing:-.045em; margin-bottom:26px; }
h2 { font-size:clamp(2.05rem,3.5vw,3.2rem); line-height:1.2; letter-spacing:-.035em; margin-bottom:24px; }
h3 { font-size:1.65rem; line-height:1.3; letter-spacing:-.02em; }
p { margin-bottom:1.2em; }
:focus-visible { outline:3px solid #396b91; outline-offset:5px; }
.container { width:min(1192px,calc(100% - 96px)); margin-inline:auto; }
.section { padding-block:var(--space); }
.section-small { padding-block:clamp(3rem,5vw,4.5rem); }
.eyebrow { margin-bottom:24px; color:var(--gold); font-size:11px; font-weight:700; line-height:1.5; letter-spacing:.17em; text-transform:uppercase; }
.text-link { display:inline-flex; align-items:center; gap:13px; font-size:14px; font-weight:600; text-decoration:none; padding:8px 0; border-bottom:1px solid var(--gold-light); }
.button { display:inline-flex; justify-content:center; align-items:center; gap:20px; min-height:52px; padding:13px 23px; border:1px solid var(--gold); border-radius:3px; color:#fff; background:var(--gold); font:600 13px/1.6 var(--sans); text-decoration:none; transition:background .15s,color .15s; }
.button:hover { background:#6b4f1b; border-color:#6b4f1b; color:#fff; }
.button .icon { width:19px; height:19px; }
.button-dark { background:var(--dark); border-color:var(--dark); }
.button-dark:hover { background:#3d483d; border-color:#3d483d; }
.button-outline { color:var(--ink); background:transparent; border-color:#b4b7aa; }
.button-outline:hover { background:var(--ink); border-color:var(--ink); color:#fff; }
.button-small { min-height:43px; padding:10px 18px; gap:18px; }
.button-row { display:flex; align-items:center; flex-wrap:wrap; gap:20px 28px; }
.skip-link { position:fixed; top:10px; left:10px; padding:12px 20px; background:var(--white); color:var(--ink); z-index:2000; transform:translateY(-160%); visibility:hidden; }
.skip-link:focus { transform:none; visibility:visible; }
.site-header { position:sticky; top:0; z-index:100; background:rgba(247,245,240,.97); border-bottom:1px solid var(--line); }
.header-inner { min-height:102px; display:flex; align-items:center; justify-content:space-between; gap:30px; }
.brand { display:block; flex-shrink:0; }
.brand img { width:207px; height:auto; filter:brightness(0); opacity:.87; }
.site-nav { display:flex; align-items:center; gap:26px; }
.site-nav>a { font-size:12px; font-weight:600; line-height:1.5; text-decoration:none; white-space:nowrap; }
.site-nav>a[aria-current='page']:not(.button) { color:var(--gold); text-decoration:underline; text-underline-offset:7px; }
.site-nav>.button { color:#fff; }
.menu-toggle { display:none; align-items:center; justify-content:center; gap:8px; min-height:44px; border:0; background:transparent; color:var(--ink); font-size:13px; }
.home-hero { padding:clamp(3rem,6.2vw,5.5rem) 0 60px; }
.hero-grid { display:grid; grid-template-columns:1.02fr 1fr; align-items:center; gap:70px; }
.hero-copy { padding-bottom:8px; }
.hero-copy .eyebrow { margin-bottom:25px; }
.hero-copy h1 { margin-bottom:28px; }
.hero-copy .hero-intro { max-width:470px; margin-bottom:30px; color:var(--muted); font-size:16px; line-height:1.95; }
.hero-visual { position:relative; }
.hero-visual img { width:100%; aspect-ratio:1.06; object-fit:cover; object-position:72% center; border-radius:4px; }
.hero-visual figcaption { margin-top:13px; color:var(--muted); font-size:10px; letter-spacing:.13em; text-transform:uppercase; }
.hero-note { display:flex; align-items:center; gap:12px; margin-top:32px; color:var(--muted); font-size:12px; }
.hero-note::before { content:''; width:24px; height:1px; background:var(--gold-light); }
.facts-strip { border-top:1px solid var(--line); border-bottom:1px solid var(--line); }
.facts-grid { display:grid; grid-template-columns:repeat(3,1fr); padding-block:27px; }
.fact { display:flex; align-items:center; justify-content:center; gap:18px; padding-inline:20px; }
.fact+.fact { border-left:1px solid var(--line); }
.fact strong { font:400 31px/1.2 var(--serif); color:var(--gold); letter-spacing:-.03em; }
.fact span { font-size:11px; line-height:1.65; color:var(--muted); }
.section-heading { display:grid; grid-template-columns:1.25fr 1fr; align-items:end; gap:80px; margin-bottom:42px; }
.section-heading h2 { margin-bottom:0; max-width:570px; }
.section-heading>p { margin-bottom:6px; max-width:430px; color:var(--muted); font-size:14px; }
.practice-list { border-top:1px solid var(--line); }
.practice-row { display:grid; grid-template-columns:48px 1.05fr 1fr 26px; gap:26px; align-items:center; padding:26px 7px; border-bottom:1px solid var(--line); text-decoration:none; }
.practice-row:hover { background:#eeece5; }
.practice-number { color:var(--gold); font-size:11px; letter-spacing:.05em; }
.practice-row h3 { margin:0; font-size:23px; }
.practice-row p { margin:0; font-size:12px; color:var(--muted); line-height:1.8; }
.practice-row>.icon { color:var(--gold); }
.portrait-section { background:var(--soft); }
.portrait-grid { display:grid; grid-template-columns:.87fr 1.13fr; gap:100px; align-items:center; }
.portrait-image { position:relative; max-width:420px; }
.portrait-image>img,.portrait-image>picture>img { width:100%; aspect-ratio:.85; object-fit:cover; object-position:center 30%; border-radius:3px; }
.portrait-caption { display:flex; align-items:center; justify-content:space-between; gap:15px; padding-top:17px; color:var(--muted); font-size:11px; }
.portrait-copy p:not(.eyebrow) { color:var(--muted); max-width:540px; font-size:15px; }
.portrait-copy .signature { font-family:var(--serif); font-size:28px; font-style:italic; color:var(--gold); margin:26px 0; }
.process-heading { max-width:660px; margin-bottom:45px; }
.process-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:48px; }
.process-step { border-top:1px solid #b4b7aa; padding-top:25px; }
.process-step>span { font-size:12px; color:var(--gold); }
.process-step h3 { margin-top:20px; margin-bottom:16px; font-size:25px; }
.process-step p { margin:0; font-size:14px; color:var(--muted); }
.reviews-section { background:var(--white); border-top:1px solid var(--line); border-bottom:1px solid var(--line); }
.review-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:40px; }
.review { padding-left:23px; border-left:1px solid var(--gold-light); }
.review blockquote { font:400 18px/1.8 var(--serif); }
.review figcaption { margin-top:23px; font-size:11px; color:var(--muted); }
.review figcaption a { text-decoration:underline; }
.media-preview { display:grid; grid-template-columns:1fr 1fr; gap:80px; align-items:center; }
.media-preview p { max-width:500px; font-size:14px; color:var(--muted); }
.media-teaser-list { border-top:1px solid var(--line); }
.media-teaser { display:block; padding:19px 0; border-bottom:1px solid var(--line); text-decoration:none; }
.media-teaser small { display:block; color:var(--gold); font-size:10px; font-weight:700; letter-spacing:.08em; text-transform:uppercase; }
.media-teaser span { display:flex; align-items:center; justify-content:space-between; gap:20px; font:400 19px/1.5 var(--serif); }
.contact-band { padding:32px 0; background:#e7e0d0; }
.contact-band-inner { display:grid; grid-template-columns:1.3fr 1fr; gap:80px; align-items:center; }
.contact-band .eyebrow { font-size:10px; margin-bottom:10px; }
.contact-band h2 { margin:0; font-size:34px; line-height:1.2; }
.contact-band-inner>div:last-child { justify-self:start; }
.contact-band p:not(.eyebrow) { font-size:13px; color:#565b51; margin:0 0 14px; }
.contact-band .button { min-height:44px; padding:10px 18px; font-size:12px; }
.site-footer { padding:64px 0 25px; background:var(--dark); color:#e8e9e1; }
.footer-grid { display:grid; grid-template-columns:1.15fr 1fr 1fr .9fr; gap:42px; padding-bottom:50px; }
.footer-grid h2 { margin:0 0 22px; color:#cbb88e; font:600 11px/1.5 var(--sans); letter-spacing:.09em; text-transform:uppercase; }
.footer-grid address,.footer-grid p,.footer-grid a,.opening-hours { font-size:12px; line-height:1.95; }
.footer-grid address { margin-bottom:15px; }
.footer-grid a { display:block; width:fit-content; margin:5px 0; text-decoration:none; }
.footer-grid a:hover { color:#d7bd85; }
.footer-grid a .icon { width:13px; height:13px; margin-left:4px; }
.footer-brand>a img { width:209px; height:auto; margin-bottom:22px; filter:brightness(0) invert(1); }
.footer-brand p { margin-bottom:17px; color:#b8c0b6; }
.footer-brand a.footer-profile { color:#d2bf97; }
.opening-hours { margin:0; }
.opening-hours div { margin-bottom:10px; }
.opening-hours dt { color:#b8c0b6; }
.opening-hours dd { margin:0; }
.footer-bottom { display:flex; justify-content:space-between; align-items:center; gap:30px; padding-top:25px; border-top:1px solid #495146; color:#b8c0b6; font-size:10px; }
.footer-bottom p { margin:0; }
.footer-bottom nav { display:flex; gap:28px; flex-wrap:wrap; }
.footer-bottom a { text-decoration:none; padding:8px 0; }
.page-intro { padding-top:66px; padding-bottom:65px; }
.page-intro .eyebrow { margin-bottom:23px; }
.page-intro h1 { max-width:900px; }
.page-intro .intro-copy { max-width:660px; color:var(--muted); font-size:16px; margin-bottom:0; }
.intro-inline-links { display:flex; gap:22px; flex-wrap:wrap; margin-top:28px; }
.intro-inline-links a { font-size:13px; }
.subtle-rule { border-top:1px solid var(--line); }
.service-layout { display:grid; grid-template-columns:235px minmax(0,1fr); gap:75px; padding-bottom:var(--space); }
.practice-nav { position:sticky; top:140px; align-self:start; border-top:1px solid var(--line); }
.practice-nav a { display:flex; align-items:center; gap:12px; padding:17px 0; border-bottom:1px solid var(--line); font-size:12px; line-height:1.6; text-decoration:none; }
.practice-nav span { color:var(--gold); font-size:10px; }
.service-detail { padding-top:36px; padding-bottom:55px; border-top:1px solid var(--line); scroll-margin-top:130px; }
.service-detail h2 { font-size:36px; }
.service-detail>.eyebrow { margin-bottom:15px; }
.service-detail p { font-size:15px; color:var(--muted); }
.focus-list { list-style:none; display:grid; grid-template-columns:1fr 1fr; gap:10px 25px; margin:28px 0; padding:0; }
.focus-list li { display:flex; gap:10px; align-items:flex-start; font-size:13px; }
.focus-list .icon { margin-top:3px; width:16px; height:16px; color:var(--gold); }
.service-detail details { margin:25px 0; border-top:1px solid var(--line); border-bottom:1px solid var(--line); padding:16px 0; }
.service-detail summary { cursor:pointer; color:var(--gold); font-size:13px; font-weight:600; }
.service-detail details p { font-size:14px; margin-top:18px; }
.service-detail details p:last-child { margin-bottom:0; }
.service-detail details a { color:var(--gold); }
.service-disclaimer { padding:22px 25px; background:var(--soft); font-size:12px; color:var(--muted); }
.office-intro { display:grid; grid-template-columns:1.1fr 1fr; gap:80px; align-items:start; padding-bottom:var(--space); }
.office-intro .office-text p { color:var(--muted); font-size:15px; }
.office-photos { display:grid; grid-template-columns:1fr 1fr; gap:18px; align-items:start; }
.office-photos img { width:100%; aspect-ratio:.75; object-fit:cover; border-radius:3px; }
.office-photos figure:nth-child(2) { margin-top:60px; }
.office-photos figcaption { margin-top:10px; font-size:10px; color:var(--muted); }
.team-section { background:var(--soft); }
.team-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:34px; }
.team-person img { width:100%; aspect-ratio:.94; object-fit:cover; object-position:center 22%; border-radius:3px; }
.team-person h3 { font-size:25px; margin:22px 0 5px; }
.team-person p { margin-bottom:9px; font-size:12px; color:var(--muted); }
.team-person a { font-size:12px; }
.video-grid { display:grid; grid-template-columns:1fr 1.2fr; gap:70px; align-items:center; }
.video-grid p { color:var(--muted); font-size:15px; }
.office-video { width:100%; aspect-ratio:16/10; object-fit:contain; background:#252c26; border-radius:3px; }
.profile-hero { display:grid; grid-template-columns:.8fr 1.2fr; align-items:start; gap:90px; padding-top:65px; padding-bottom:var(--space); }
.profile-hero>figure img { width:100%; max-height:610px; aspect-ratio:.77; object-fit:cover; object-position:center 20%; border-radius:3px; }
.profile-hero>div { padding-top:17px; }
.profile-hero h1 { font-size:clamp(2.8rem,4.6vw,4.2rem); }
.profile-hero p:not(.eyebrow) { color:var(--muted); font-size:15px; }
.profile-hero .profile-lead { color:var(--ink); font-size:19px; font-family:var(--serif); }
.timeline-grid { display:grid; grid-template-columns:.9fr 1.1fr; gap:100px; }
.timeline { padding:0; margin:0; list-style:none; }
.timeline li { position:relative; padding:0 0 35px 35px; border-left:1px solid var(--gold-light); }
.timeline li:last-child { padding-bottom:0; }
.timeline li::before { content:''; position:absolute; width:9px; height:9px; top:7px; left:-5px; background:var(--gold); border-radius:50%; }
.timeline span { display:block; color:var(--gold); font-size:10px; letter-spacing:.08em; text-transform:uppercase; margin-bottom:8px; }
.timeline h3 { margin-bottom:10px; font-size:25px; }
.timeline p { color:var(--muted); font-size:14px; margin:0; }
.profile-practices { display:flex; flex-wrap:wrap; gap:12px; }
.profile-practices a { padding:10px 15px; border:1px solid #c3c6b9; border-radius:3px; text-decoration:none; font-size:12px; }
.document-list { border-top:1px solid var(--line); }
.document-row { display:grid; grid-template-columns:42px minmax(0,1fr) 110px 24px; gap:26px; align-items:center; padding:27px 5px; border-bottom:1px solid var(--line); text-decoration:none; }
.document-row:hover { background:var(--soft); }
.document-row>.icon { color:var(--gold); width:28px; height:28px; }
.document-row h2 { font-size:25px; margin:0 0 4px; }
.document-row p { margin:0; font-size:12px; color:var(--muted); }
.document-row .file-info { color:var(--muted); font-size:11px; white-space:nowrap; }
.notice-box { border:1px solid #d4c4a5; border-left:3px solid var(--gold-light); background:#f1ecdf; padding:28px 32px; }
.notice-box h2,.notice-box h3 { font-size:25px; margin-bottom:13px; }
.notice-box p { color:#5a5e53; font-size:14px; }
.notice-box p:last-child { margin-bottom:0; }
.download-notice { margin-top:50px; margin-bottom:var(--space); }
.media-list { display:grid; grid-template-columns:1fr 1fr; gap:0 60px; padding-bottom:var(--space); }
.media-item { padding:28px 0; border-top:1px solid var(--line); display:flex; flex-direction:column; align-items:start; }
.media-item .eyebrow { margin-bottom:15px; font-size:10px; }
.media-item h2 { margin-bottom:17px; font-size:26px; }
.media-item p { font-size:12px; color:var(--muted); }
.media-item .text-link { margin-top:auto; }
.media-notice { font-size:12px; color:var(--muted); margin-top:25px; }
.contact-layout { display:grid; grid-template-columns:.8fr 1.2fr; gap:80px; padding-bottom:var(--space); }
.contact-details h2 { font-size:29px; }
.contact-details address { color:var(--muted); margin-bottom:20px; font-size:15px; }
.contact-direct { display:flex; flex-direction:column; align-items:start; gap:12px; margin:25px 0 35px; }
.contact-direct a { display:flex; align-items:center; gap:12px; font-size:17px; text-decoration:none; }
.contact-direct .icon { color:var(--gold); }
.contact-hours { padding-top:23px; margin-top:25px; border-top:1px solid var(--line); }
.contact-hours h3 { font:600 12px var(--sans); }
.contact-hours .opening-hours { font-size:13px; color:var(--muted); }
.contact-hours .opening-hours>div { display:flex; justify-content:space-between; gap:20px; max-width:320px; }
.contact-hours .opening-hours dt { color:var(--ink); }
.form-panel { padding:35px; background:var(--white); border:1px solid var(--line); border-radius:4px; }
.form-panel h2 { font-size:30px; margin-bottom:16px; }
.form-panel .form-description { color:var(--muted); font-size:13px; margin-bottom:27px; }
.form-row { display:grid; grid-template-columns:1fr 1fr; gap:20px; }
.form-field { margin-bottom:19px; }
.form-field label { display:block; margin-bottom:7px; font-size:12px; font-weight:600; }
.form-field label span { color:var(--muted); font-weight:400; }
.form-field input,.form-field textarea { display:block; width:100%; min-height:48px; border:1px solid #c9ccbf; border-radius:3px; background:#fff; color:var(--ink); padding:11px 13px; font-size:14px; }
.form-field textarea { min-height:155px; resize:vertical; }
.form-field input:focus,.form-field textarea:focus { border-color:var(--gold); }
.form-hint { margin:0 0 20px; font-size:11px; line-height:1.9; color:var(--muted); }
.form-hint a { color:var(--gold); }
.form-alert { padding:18px 20px; margin-bottom:24px; border:1px solid #b5c8b0; border-radius:3px; background:#eaf1e7; color:#33462c; font-size:13px; }
.form-alert-error { background:#f8eeea; border-color:#d9b7aa; color:#7e3822; }
.form-alert ul { margin:5px 0 0; padding-left:20px; }
.form-trap { position:absolute; width:1px; height:1px; overflow:hidden; clip-path:inset(50%); white-space:nowrap; }
.location-section { background:var(--soft); }
.location-grid { display:grid; grid-template-columns:1.15fr 1fr; gap:80px; align-items:center; }
.location-grid p { color:var(--muted); font-size:14px; }
.location-card { border-left:1px solid var(--gold-light); padding:12px 0 12px 35px; }
.location-card .icon { color:var(--gold); width:30px; height:30px; margin-bottom:17px; }
.location-card address { font:400 27px/1.6 var(--serif); margin-bottom:20px; }
.legal-layout { display:grid; grid-template-columns:230px minmax(0,1fr); gap:70px; padding-bottom:var(--space); }
.legal-nav { position:sticky; top:135px; align-self:start; display:flex; flex-direction:column; border-top:1px solid var(--line); }
.legal-nav a { padding:11px 0; font-size:11px; text-decoration:none; border-bottom:1px solid var(--line); }
.legal-copy { max-width:800px; min-width:0; overflow-wrap:anywhere; }
.legal-copy section { padding-bottom:23px; scroll-margin-top:140px; }
.legal-copy h2 { font-size:27px; margin:0 0 19px; padding-top:25px; border-top:1px solid var(--line); }
.legal-copy h3 { font-family:var(--sans); font-size:15px; font-weight:600; margin:24px 0 10px; }
.legal-copy p,.legal-copy li,.legal-copy address,.legal-copy td,.legal-copy th { font-size:13px; line-height:1.95; color:#555c51; }
.legal-copy ul { padding-left:21px; }
.legal-copy a { overflow-wrap:anywhere; color:var(--gold); }
.legal-copy code { background:var(--soft); padding:2px 4px; font-size:11px; overflow-wrap:anywhere; }
.cookie-details { margin:24px 0; padding:22px; background:var(--soft); border:1px solid var(--line); }
.cookie-details dt { margin-bottom:12px; font-weight:600; }
.cookie-details dd { margin:0; }
.cookie-details dd p:last-child { margin-bottom:0; }
.legal-table { table-layout:fixed; width:100%; border-collapse:collapse; margin:20px 0; }
.legal-table th,.legal-table td { padding:12px; border:1px solid var(--line); text-align:left; vertical-align:top; }
.legal-table th { background:var(--soft); font-weight:600; }
.legal-date { margin-top:28px; color:var(--muted); font-size:11px; }
.content-narrow { max-width:800px; padding-bottom:var(--space); }
.content-narrow h2 { font-size:28px; margin-top:35px; }
.content-narrow p { color:var(--muted); font-size:15px; }
.content-narrow .notice-box { margin:35px 0; }
.notfound { min-height:55vh; }
@media (min-width:1440px) { .hero-visual img { aspect-ratio:1.04; } }
@media (max-width:1100px) {
 .container { width:calc(100% - 64px); }
 .header-inner { min-height:86px; flex-wrap:wrap; gap:0; }
 .brand img { width:190px; }
 .menu-toggle { display:flex; }
 .site-nav { width:100%; flex-wrap:wrap; gap:16px 26px; padding:16px 0 22px; border-top:1px solid var(--line); }
 .js .site-nav { display:none; }
 .js .site-nav.is-open { display:flex; }
 .site-nav>a { font-size:14px; min-height:38px; display:flex; align-items:center; }
 .hero-grid { gap:45px; }
 .hero-copy h1 { font-size:clamp(3.3rem,6vw,4.2rem); }
 .hero-copy .button-row { gap:16px; }
 .section-heading,.portrait-grid,.media-preview,.contact-band-inner,.office-intro,.profile-hero,.timeline-grid,.contact-layout,.location-grid { gap:45px; }
 .portrait-grid { grid-template-columns:.9fr 1.1fr; }
 .footer-grid { grid-template-columns:1fr 1fr; gap:40px 60px; }
 .service-layout { grid-template-columns:200px minmax(0,1fr); gap:40px; }
 .legal-layout { grid-template-columns:185px minmax(0,1fr); gap:40px; }
}
@media (max-width:760px) {
 html { scroll-padding-top:95px; }
 .container { width:calc(100% - 40px); }
 h1 { font-size:42px; letter-spacing:-.04em; }
 h2 { font-size:34px; }
 .eyebrow { font-size:10px; letter-spacing:.13em; margin-bottom:20px; }
 .header-inner { min-height:78px; }
 .brand img { width:175px; }
 .menu-toggle { min-width:68px; }
 .site-nav { flex-direction:column; align-items:stretch; gap:0; padding:12px 0 20px; }
 .site-nav>a { padding:11px 4px; min-height:44px; }
 .site-nav>.button { margin-top:10px; width:100%; }
 .home-hero { padding:38px 0 35px; }
 .hero-grid { grid-template-columns:1fr; gap:36px; }
 .hero-copy { padding:0; }
 .hero-copy h1 { font-size:clamp(2.25rem,10.5vw,3.1rem); margin-bottom:23px; }
 .hero-copy .hero-intro { font-size:15px; margin-bottom:26px; max-width:100%; }
 .hero-copy .button-row { align-items:flex-start; gap:18px; }
 .hero-copy .button { padding:12px 18px; }
 .hero-note { margin-top:24px; }
 .hero-visual img { aspect-ratio:1.35; object-position:center; }
 .hero-visual figcaption { font-size:9px; }
 .facts-grid { padding-block:23px; }
 .fact { display:flex; flex-direction:column; align-items:flex-start; justify-content:flex-start; gap:8px; padding-inline:13px; }
 .fact:first-child { padding-left:0; }
 .fact strong { font-size:24px; }
 .fact span { font-size:9px; }
 .section-heading { grid-template-columns:1fr; gap:20px; margin-bottom:30px; }
 .section-heading>p { font-size:14px; margin:0; }
 .practice-row { grid-template-columns:23px minmax(0,1fr) 22px; gap:13px; padding:22px 0; }
 .practice-row h3 { font-size:23px; }
 .practice-row p { grid-column:2; padding-right:12px; font-size:12px; }
 .practice-row>.icon { grid-column:3; grid-row:1/3; }
 .portrait-grid { grid-template-columns:1fr; gap:37px; }
 .portrait-image { max-width:100%; width:100%; }
 .portrait-image>img,.portrait-image>picture>img { aspect-ratio:.94; object-position:center 25%; max-height:490px; }
 .portrait-copy p:not(.eyebrow) { font-size:14px; }
 .portrait-copy .button-row { gap:17px; }
 .process-heading { margin-bottom:30px; }
 .process-grid { grid-template-columns:1fr; gap:28px; }
 .process-step { padding-top:18px; display:grid; grid-template-columns:28px 1fr; gap:7px 14px; }
 .process-step h3 { margin:0; font-size:25px; }
 .process-step p { grid-column:2; }
 .process-step>span { padding-top:6px; }
 .review-grid { grid-template-columns:1fr; gap:33px; }
 .review blockquote { font-size:18px; }
 .review figcaption { margin-top:15px; }
 .media-preview { grid-template-columns:1fr; gap:30px; }
 .media-teaser span { font-size:20px; }
 .contact-band { padding:26px 0; }
 .contact-band-inner { grid-template-columns:1fr; gap:18px; }
 .contact-band h2 { font-size:28px; }
 .site-footer { padding-top:43px; padding-bottom:77px; }
 .footer-grid { grid-template-columns:1fr 1fr; gap:33px 25px; padding-bottom:32px; }
 .footer-brand { grid-column:1/-1; }
 .footer-brand>a img { width:200px; margin-bottom:20px; }
 .footer-grid>div:last-child { grid-column:1/-1; }
 .footer-grid>div:last-child>a { display:inline-block; margin-right:16px; }
 .footer-grid h2 { margin-bottom:16px; }
 .footer-grid address,.footer-grid p,.footer-grid a,.opening-hours { font-size:11px; }
 .footer-bottom { flex-direction:column; align-items:flex-start; gap:15px; }
 .footer-bottom nav { gap:20px; }
 .page-intro { padding-top:40px; padding-bottom:40px; }
 .page-intro .intro-copy { font-size:15px; }
 .page-intro h1 { margin-bottom:22px; }
 .intro-inline-links { gap:15px 20px; }
 .service-layout { grid-template-columns:minmax(0,1fr); gap:40px; }
 .practice-nav { position:static; display:grid; grid-template-columns:1fr 1fr; }
 .practice-nav a { padding:14px 8px 14px 0; font-size:11px; gap:7px; }
 .service-detail { scroll-margin-top:100px; padding:28px 0 38px; }
 .service-detail h2 { font-size:30px; }
 .service-detail p { font-size:14px; }
 .focus-list { grid-template-columns:1fr; gap:11px; }
 .office-intro { grid-template-columns:1fr; gap:30px; }
 .office-photos { gap:14px; }
 .office-photos figure:nth-child(2) { margin-top:35px; }
 .team-grid { grid-template-columns:1fr; gap:40px; }
 .team-person { display:grid; grid-template-columns:1fr 1fr; gap:5px 22px; align-items:start; }
 .team-person>img,.team-person>picture { grid-row:1/4; }
 .team-person h3 { margin-top:12px; font-size:24px; margin-bottom:0; }
 .team-person p { margin:0; align-self:center; }
 .team-person a { align-self:end; }
 .video-grid { grid-template-columns:1fr; gap:20px; }
 .profile-hero { grid-template-columns:1fr; gap:27px; padding-top:38px; }
 .profile-hero>figure { max-width:400px; }
 .profile-hero>figure img { aspect-ratio:.93; max-height:470px; }
 .profile-hero>div { padding-top:0; }
 .profile-hero h1 { font-size:42px; }
 .timeline-grid { grid-template-columns:1fr; gap:30px; }
 .timeline { margin-left:5px; }
 .document-row { grid-template-columns:28px 1fr 23px; gap:15px; padding:24px 0; }
 .document-row h2 { font-size:22px; }
 .document-row .file-info { grid-column:2; font-size:10px; }
 .document-row>.icon:last-child { grid-column:3; grid-row:1/3; }
 .document-row>.icon:first-child { width:24px; }
 .document-row p { font-size:11px; }
 .notice-box { padding:23px; }
 .notice-box h2,.notice-box h3 { font-size:24px; }
 .notice-box p { font-size:13px; }
 .media-list { grid-template-columns:1fr; gap:0; }
 .media-item { padding:25px 0; }
 .media-item h2 { font-size:25px; }
 .contact-layout { grid-template-columns:1fr; gap:35px; }
 .contact-hours .opening-hours>div { max-width:100%; }
 .form-panel { padding:25px 20px; }
 .form-row { grid-template-columns:1fr; gap:0; }
 .form-panel .button { width:100%; }
 .location-grid { grid-template-columns:1fr; gap:24px; }
 .location-card { padding-left:23px; }
 .location-card address { font-size:25px; }
 .legal-layout { grid-template-columns:minmax(0,1fr); gap:32px; }
 .legal-nav { position:static; display:grid; grid-template-columns:1fr 1fr; gap:0 20px; }
 .legal-nav a { font-size:11px; }
 .legal-copy h2 { font-size:25px; }
 .legal-copy p,.legal-copy li,.legal-copy address,.legal-copy td,.legal-copy th { font-size:12px; }
 .legal-table { display:block; overflow-x:auto; }
}
@media (prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } *,*::before,*::after { transition:none!important; animation:none!important; } }

/* Search-oriented content navigation, matching the existing design. */
.breadcrumbs { padding-top:19px; font-size:11px; color:var(--muted); }
.breadcrumbs ol { display:flex; flex-wrap:wrap; gap:5px 10px; list-style:none; margin:0; padding:0; }
.breadcrumbs li+li::before { content:'/'; padding-right:10px; color:#8b8e84; }
.breadcrumbs a { text-decoration:none; }
.breadcrumbs [aria-current] { color:var(--gold); }
.practice-page-intro { padding-bottom:45px; }
.practice-page-intro h1 { font-size:clamp(2.15rem,4.8vw,4.2rem); }
.practice-page-content { min-width:0; }
.practice-page-content section { margin-bottom:38px; }
.practice-page-content h2 { font-size:clamp(1.75rem,3vw,2.3rem); }
.practice-page-content p,.practice-page-content li { font-size:14px; color:var(--muted); }
.practice-page-content ul:not(.focus-list) { padding-left:21px; }
.practice-page-content .focus-list li { color:var(--ink); }
.practice-page-content .service-disclaimer { font-size:12px; }
.preparation-list li { margin-bottom:9px; }
.practice-faq details { padding:18px 0; border-top:1px solid var(--line); }
.practice-faq details:last-child { border-bottom:1px solid var(--line); }
.practice-faq summary { cursor:pointer; font-weight:600; font-size:14px; }
.practice-faq details p { padding-top:15px; margin-bottom:0; }
.author-note { padding:24px; background:var(--soft); border:1px solid var(--line); }
.author-note p { margin-bottom:12px; }
.related-practices { display:flex; flex-wrap:wrap; gap:12px 24px; }
.related-practices a { font-size:13px; }
@media(max-width:760px) { .breadcrumbs { padding-top:14px; font-size:10px; } .practice-page-intro { padding-top:30px; } .profile-hero h1 { font-size:clamp(2.1rem,9vw,2.625rem); } .hero-copy h1 { font-size:clamp(2.25rem,10.5vw,3.1rem); } }

/* Image wrappers keep the existing image layout and aspect ratios. */
picture { display:block; }
@media (max-width:760px) {
 .form-field input,.form-field textarea { font-size:16px; }
 .site-nav { max-height:calc(100dvh - 78px); overflow-y:auto; }
 .footer-grid address,.footer-grid p,.footer-grid a,.opening-hours { font-size:13px; }
 .footer-grid a { min-height:44px; display:flex; align-items:center; }
 .footer-grid>div:last-child>a { display:inline-flex; }
 .footer-bottom a { display:inline-flex; align-items:center; min-height:44px; font-size:12px; }
}

/* Verified press references, presented in the site's own typography. */
.media-mentions { padding-block:clamp(2.75rem,5vw,4.5rem); background:var(--white); border-block:1px solid var(--line); }
.media-mentions-heading { display:flex; align-items:flex-end; justify-content:space-between; gap:24px; }
.media-mentions-heading .eyebrow { margin-bottom:14px; }
.media-mentions-heading h2 { margin-bottom:0; }
.media-mentions-intro { max-width:620px; margin:22px 0 30px; color:var(--muted); font-size:14px; }
.media-controls { display:flex; gap:10px; flex-shrink:0; }
.media-controls[hidden] { display:none; }
.media-controls button { width:46px; height:46px; display:grid; place-items:center; padding:0; border:1px solid #b4b7aa; border-radius:50%; color:var(--ink); background:transparent; }
.media-controls button:hover:not(:disabled) { background:var(--soft); border-color:var(--gold); }
.media-controls button:disabled { opacity:.35; cursor:default; }
.media-previous .icon { transform:rotate(180deg); }
.media-rail { display:flex; gap:16px; list-style:none; margin:0; padding:5px 5px 17px; overflow-x:auto; overscroll-behavior-x:contain; scroll-snap-type:x mandatory; scroll-padding-inline:5px; scrollbar-width:thin; scrollbar-color:var(--gold-light) var(--soft); }
.media-rail>li { display:flex; flex:0 0 calc((100% - 48px) / 4); min-width:0; scroll-snap-align:start; }
.media-card { display:flex; flex-direction:column; width:100%; min-height:250px; padding:25px 22px 20px; border:1px solid var(--line); border-radius:3px; text-decoration:none; }
.media-card:hover { background:var(--paper); color:var(--ink); border-color:var(--gold-light); }
.media-kind { color:var(--gold); font-size:10px; line-height:1.5; letter-spacing:.08em; text-transform:uppercase; }
.media-card h3 { font-size:26px; line-height:1.2; margin:19px 0 18px; }
.media-card-title { color:var(--muted); font-size:13px; line-height:1.7; margin-bottom:24px; }
.media-card-bottom { display:flex; align-items:flex-end; justify-content:space-between; gap:12px; margin-top:auto; color:var(--muted); font-size:10px; line-height:1.6; }
.media-card-bottom .icon { width:17px; height:17px; color:var(--gold); }
@media(max-width:1100px) { .media-rail>li { flex-basis:calc((100% - 32px) / 3); } }
@media(max-width:760px) {
 .media-mentions-heading { align-items:center; gap:16px; }
 .media-mentions-heading h2 { font-size:32px; }
 .media-controls { gap:8px; }
 .media-controls button { width:44px; height:44px; }
 .media-mentions-intro { font-size:13px; margin-top:20px; }
 .media-rail>li { flex-basis:82%; }
 .media-card { min-height:235px; }
}
