/* ChrisLaw — Graphite / Crimson. Self-contained responsive theme. */
:root{--ink:#17191f;--muted:#5f626d;--paper:#fff;--wash:#f2f3f5;--dark:#15171d;--line:#dedfe4;--accent:#a92c40;--accent-light:#ed7184;--sans:Arial,Helvetica,sans-serif}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:100px}
body{margin:0;color:var(--ink);background:var(--paper);font-family:var(--sans);font-size:16px;line-height:1.7;-webkit-font-smoothing:antialiased}
button,input,select{font:inherit}button,a,input,select{-webkit-tap-highlight-color:transparent}button,a{touch-action:manipulation}button{cursor:pointer;color:inherit}
a{color:inherit;text-decoration:none}img{display:block;max-width:100%}address{font-style:normal}
h1,h2,h3,p,figure{margin-top:0}h1,h2,h3{font-family:var(--sans);font-weight:700;letter-spacing:-.055em;line-height:1.08}
h1{font-size:clamp(45px,5.6vw,80px)}h2{font-size:clamp(34px,3.6vw,51px);margin-bottom:25px}h3{font-size:27px;letter-spacing:-.035em}
h1 em,h2 em,h3 em{font-style:normal;color:inherit;font-weight:inherit}p{margin-bottom:23px}::selection{background:#e3bdc5;color:var(--ink)}
:focus-visible{outline:3px solid var(--accent-light);outline-offset:5px}[hidden]{display:none!important}
.container{width:min(1240px,calc(100% - 112px));margin-inline:auto}.icon{display:inline-block;flex-shrink:0;vertical-align:middle}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.skip-link{position:fixed;z-index:100;left:18px;top:15px;padding:10px 20px;background:white;transform:translateY(-150%)}.skip-link:focus{transform:none}
/* One compact header, with an upright geometric wordmark. */
.site-header{position:sticky;top:0;z-index:20;background:#fff;border-bottom:1px solid var(--line)}
.header-inner{height:88px;display:flex;align-items:center;justify-content:space-between;gap:35px}
.brand{display:inline-flex;align-items:center;gap:12px;flex-shrink:0;line-height:1}
.brand-mark{display:flex;align-items:center;justify-content:center;width:43px;height:46px;background:var(--accent);color:#fff;font-size:22px;font-weight:700;letter-spacing:-2px;padding-right:2px}
.brand-words{display:flex;flex-direction:column}.brand-name{font-size:27px;font-weight:700;letter-spacing:-1.4px}
.brand-sub{font-size:7.5px;line-height:1.4;letter-spacing:.09em;margin-top:9px;color:var(--muted)}
.primary-nav{display:flex;gap:31px;align-items:center;font-size:12px;font-weight:600}
.primary-nav>a:not(.button){position:relative;padding:18px 0}
.primary-nav>a:not(.button)::after{position:absolute;content:'';bottom:9px;left:0;right:0;height:2px;background:var(--accent);transform:scaleX(0);transform-origin:left;transition:transform .18s}
.primary-nav>a[aria-current]::after,.primary-nav>a:not(.button):hover::after{transform:scaleX(1)}
.menu-toggle{display:none}
.button{display:inline-flex;align-items:center;justify-content:center;gap:30px;min-height:53px;padding:15px 24px;border:1px solid transparent;border-radius:2px;font-size:12px;line-height:1.5;font-weight:600;letter-spacing:.015em;transition:background .18s,color .18s,border-color .18s}
.button .icon{width:19px;height:19px}.button-primary,.button-header{background:var(--accent);color:#fff}.button-primary:hover,.button-header:hover{background:#812035}
.button-light{background:white;color:var(--ink)}.button-light:hover{background:#e8e9ed}.button-header{margin-left:14px;min-height:45px;font-size:11px;padding:12px 19px;gap:27px}
.text-link{display:inline-flex;align-items:center;gap:23px;min-height:42px;border-bottom:1px solid #adb0b8;font-size:12px;font-weight:600;line-height:1.5;transition:color .18s,gap .18s}
.text-link:hover{color:var(--accent);gap:29px}.text-link .icon{width:18px;height:18px}.text-link-light{color:#fff;border-color:#65676e}.text-link-light:hover{color:#f3a0ad}
.eyebrow{font-family:var(--sans);font-size:10px;font-weight:700;letter-spacing:.14em;line-height:1.5;color:var(--accent);text-transform:uppercase;margin-bottom:25px;display:flex;align-items:center;gap:13px}
/* Full-width legal portrait. The text and composition differ from the prior split hero. */
.hero{position:relative;overflow:hidden;background:#111217;color:white}
.hero-media{position:absolute;inset:0}.hero-media img{width:100%;height:100%;object-fit:cover;object-position:center 44%}
.hero::after{position:absolute;content:'';inset:0;pointer-events:none;background:linear-gradient(90deg,rgba(12,13,18,.92) 0%,rgba(12,13,18,.69) 38%,rgba(12,13,18,.08) 70%,rgba(12,13,18,0) 100%)}
.hero-inner{position:relative;z-index:1;min-height:660px;display:flex;flex-direction:column;justify-content:space-between;padding-top:78px}
.hero-copy{max-width:670px;padding-bottom:65px}.hero .eyebrow{color:#d0cbd0;font-size:10px;letter-spacing:.16em;margin-bottom:34px}
.hero .eyebrow::before{content:'';width:28px;height:3px;background:var(--accent-light)}
.hero h1{font-size:clamp(60px,6.7vw,96px);line-height:1.02;letter-spacing:-.065em;margin-bottom:30px}.hero h1 span{color:#fff}
.hero-intro{font-size:16px;line-height:1.8;color:#c8c9cf;max-width:450px;margin-bottom:30px}
.hero-actions{display:flex;align-items:center;gap:30px;flex-wrap:wrap}.hero-actions .text-link{font-size:12px}.hero-actions .button{font-size:12px}
.hero-baseline{border-top:1px solid #ffffff30;display:grid;grid-template-columns:1fr 1.6fr 1fr;align-items:center;min-height:75px;gap:30px}
.hero-baseline>span{font-size:10px;letter-spacing:.17em;color:#c3c3ca}.hero-baseline>p{margin:0;font-size:13px;font-weight:600;color:#dedee3}.hero-baseline>a{display:flex;justify-content:flex-end;align-items:center;gap:35px;font-size:12px;white-space:nowrap}.hero-baseline .icon{height:18px;width:18px}
.section{padding:95px 0}.section-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:80px;margin-bottom:48px}.section-heading h2{margin-bottom:0}
.section-heading-aside{max-width:345px;font-size:14px;line-height:1.75;color:var(--muted);margin-bottom:0}.section-heading-aside p{margin-bottom:15px}.section-heading-aside .text-link{color:var(--ink)}
/* A numbered practice index, with summaries and large full-row targets. */
.expertise-grid{border-top:1px solid #b9bdc5;display:block}
.expertise-card{display:grid;grid-template-columns:46px minmax(0,1.05fr) minmax(0,1fr) 25px;align-items:center;gap:25px;min-height:125px;padding:29px 14px 29px 0;border-bottom:1px solid var(--line);position:relative;transition:background .18s}
.expertise-card:hover{background:#f4f4f6}.expertise-card::before{content:'';position:absolute;left:-13px;top:28px;bottom:28px;width:3px;background:var(--accent);opacity:0;transition:opacity .18s}.expertise-card:hover::before{opacity:1}
.card-number{font-size:11px;font-weight:600;color:var(--muted);align-self:start;padding-top:7px}
.expertise-card h3{font-size:25px;line-height:1.25;letter-spacing:-.035em;margin:0;font-weight:600}
.expertise-card p{font-size:14px;line-height:1.75;color:var(--muted);margin:0;max-width:390px}
.card-link{display:flex;align-items:center;justify-content:flex-end;color:var(--accent)}.card-link .icon{width:23px;height:23px;transition:transform .18s}.expertise-card:hover .card-link .icon{transform:translate(2px,-2px)}
.expertise-bottom{display:flex;justify-content:flex-end;margin-top:29px}
.expertise-tools{display:flex;align-items:center;justify-content:space-between;gap:30px;border-bottom:1px solid var(--line);padding-bottom:25px;margin-top:8px}
.filter-buttons{display:flex;align-items:stretch;gap:5px}.filter{border:0;border-bottom:2px solid transparent;background:transparent;padding:13px 20px;min-height:48px;font-size:13px;font-weight:600;line-height:1.4;color:var(--muted)}
.filter.active{color:var(--ink);border-bottom-color:var(--accent)}.filter:hover{background:var(--wash);color:var(--ink)}
.search-field{position:relative;width:290px;max-width:100%}.search-field>.icon{position:absolute;width:18px;height:18px;left:14px;top:50%;transform:translateY(-50%);color:var(--muted)}
.search-field input{width:100%;font-size:13px;min-height:49px;padding:13px 13px 13px 42px;border:1px solid #c4c7cf;border-radius:2px;background:#fff;color:var(--ink)}
.results-count{font-size:12px;color:var(--muted);margin:24px 0}.no-results{padding:55px 25px;background:var(--wash);text-align:center}.no-results h2{font-size:30px}.no-results p{font-size:15px}
/* A typographic firm statement followed by a panoramic documentary image. */
.firm-section{background:var(--wash);padding:85px 0 65px}.firm-statement{display:grid;grid-template-columns:220px 1fr;gap:90px;margin-bottom:50px}
.firm-statement>.eyebrow{padding-top:12px}.firm-statement h2{font-size:59px;line-height:1.07;letter-spacing:-.055em;margin-bottom:35px}
.firm-paragraphs{display:grid;grid-template-columns:1fr 1fr;gap:40px}.firm-paragraphs p{font-size:14px;line-height:1.85;color:var(--muted);margin-bottom:24px}
.firm-documentary{position:relative;margin:0}.firm-documentary img{width:100%;height:290px;object-fit:cover;filter:grayscale(1);object-position:center 57%}
.firm-documentary figcaption{display:flex;justify-content:space-between;font-size:9px;font-weight:600;letter-spacing:.12em;margin-top:14px;color:var(--muted)}
.approach-layout{display:grid;grid-template-columns:1fr 1.3fr;gap:115px}.approach-layout h2{font-size:49px}.approach-intro{font-size:14px;max-width:260px;color:var(--muted)}
.steps{border-top:1px solid var(--line)}.steps>div{display:grid;grid-template-columns:42px 1fr;gap:22px;padding:28px 0;border-bottom:1px solid var(--line)}
.step-number{font-size:11px;font-weight:600;color:var(--accent);padding-top:6px}.steps h3{font-size:26px;margin:0 0 11px}.steps p{font-size:14px;line-height:1.8;margin:0;max-width:470px;color:var(--muted)}
/* The closing invitation continues into the same graphite footer. */
.contact-banner{padding:72px 0;background:var(--dark);color:white;border-bottom:1px solid #35373e}
.contact-banner-inner{display:flex;justify-content:space-between;gap:65px;align-items:center}.contact-banner h2{font-size:61px;margin-bottom:0;line-height:1.05;letter-spacing:-.06em}
.contact-banner .eyebrow{color:var(--accent-light);font-size:10px;margin-bottom:26px}.contact-banner-inner>div:last-child{min-width:285px}.contact-banner-inner>div:last-child>p{font-size:14px;color:#b8bac4;line-height:1.8;margin-bottom:24px}.contact-banner .button{min-width:235px;justify-content:space-between}
.site-footer{background:var(--dark);color:#c3c5cf;padding-top:60px;font-size:13px}.footer-grid{display:grid;grid-template-columns:1.5fr .9fr 1.1fr 1.1fr;gap:35px;padding-bottom:55px}
.brand-light{color:white}.brand-light .brand-sub{color:#aaaeb9}.footer-brand p{font-size:12px;line-height:1.9;color:#b2b4be;margin:25px 0 0}
.footer-grid h2{font-size:10px;letter-spacing:.12em;text-transform:uppercase;line-height:1.5;color:white;margin-bottom:22px}
.footer-grid>div:not(:first-child)>a{display:block;font-size:12px;margin-bottom:9px}.footer-grid>div:not(:first-child)>a:hover{color:#fff;text-decoration:underline;text-underline-offset:4px}
.footer-grid address{font-size:12px;line-height:1.9;margin-bottom:10px}.footer-grid address span{display:block;color:#aaaeb9;margin-top:6px;font-size:11px}
.footer-grid>div>.footer-directions{display:flex;align-items:center;gap:10px;color:#f295a5;font-size:11px}.footer-directions .icon{width:14px;height:14px}
.footer-bottom{border-top:1px solid #35373e;display:flex;justify-content:space-between;align-items:center;gap:30px;padding-top:23px;padding-bottom:23px;font-size:10px;color:#aeb0bc}.footer-bottom p{margin:0}.footer-bottom>div{display:flex;gap:25px}.footer-bottom a:hover{color:white}.back-to-top{display:flex;align-items:center;gap:9px}.back-to-top .icon{width:13px;height:13px;transform:rotate(-90deg)}
@media(min-width:1600px){.container{width:min(1340px,calc(100% - 160px))}.hero-inner{min-height:720px;padding-top:90px}.hero h1{font-size:105px}.hero-media img{object-position:center 40%}.hero-copy{padding-bottom:90px}}
@media(max-width:1150px){.container{width:calc(100% - 72px)}.primary-nav{gap:23px}.button-header{margin-left:0;padding-inline:17px;gap:20px}.header-inner{gap:25px}.hero-inner{min-height:625px;padding-top:70px}.hero h1{font-size:78px}.hero-intro{max-width:405px}.hero-copy{max-width:600px;padding-bottom:60px}.hero-baseline{grid-template-columns:1fr 1.3fr 1fr}.section-heading{gap:40px}.expertise-card{grid-template-columns:36px 1fr 1fr 24px;gap:21px}.expertise-card h3{font-size:24px}.expertise-card p{font-size:13px}.firm-statement{grid-template-columns:170px 1fr;gap:60px}.firm-statement h2{font-size:53px}.firm-paragraphs{gap:30px}.approach-layout{gap:70px}.footer-grid{gap:25px;grid-template-columns:1.4fr .8fr 1fr 1.2fr}.footer-brand .brand-mark{width:37px;height:40px;font-size:20px}.footer-brand .brand-name{font-size:24px}.footer-brand .brand-sub{font-size:6.5px}}
@media(max-width:900px){.container{width:calc(100% - 48px)}.brand-name{font-size:24px}.brand-sub{font-size:6.5px}.brand-mark{width:39px;height:42px;font-size:20px}.header-inner{height:82px;gap:20px}.primary-nav{gap:18px;font-size:11px}.button-header{padding:11px 14px;font-size:10px;gap:14px}.hero-inner{min-height:590px;padding-top:65px}.hero h1{font-size:68px}.hero-copy{max-width:520px}.hero-intro{font-size:15px;max-width:390px}.hero::after{background:linear-gradient(90deg,rgba(12,13,18,.94),rgba(12,13,18,.6) 55%,rgba(12,13,18,.08))}.hero-baseline{gap:20px;grid-template-columns:1fr 1.2fr 1fr}.hero-baseline>a{gap:15px;font-size:11px}.hero-baseline>span{font-size:9px}.hero-baseline>p{font-size:12px}.section{padding-block:75px}.section-heading h2{font-size:39px}.section-heading-aside{max-width:280px;font-size:13px}.expertise-card h3{font-size:22px}.expertise-card{grid-template-columns:30px 1fr 1fr 20px;gap:19px}.expertise-card p{font-size:13px}.firm-statement{grid-template-columns:140px 1fr;gap:40px}.firm-statement h2{font-size:47px}.firm-paragraphs{grid-template-columns:1fr;gap:0}.firm-paragraphs p{font-size:14px}.firm-documentary img{height:250px}.approach-layout{gap:50px}.approach-layout h2{font-size:42px}.steps h3{font-size:24px}.contact-banner h2{font-size:50px}.contact-banner-inner>div:last-child{min-width:250px}.footer-grid{grid-template-columns:1.3fr 1fr;gap:40px 80px}.footer-brand .brand-name{font-size:27px}.footer-brand .brand-mark{width:43px;height:46px}.footer-brand .brand-sub{font-size:7.5px}}
@media(max-width:720px){html{scroll-padding-top:90px}.container{width:calc(100% - 40px)}.header-inner{height:78px}.brand{gap:10px}.brand-mark{width:37px;height:41px;font-size:20px}.brand-name{font-size:24px}.brand-sub{font-size:6.5px;margin-top:7px}.menu-toggle{display:flex;align-items:center;gap:7px;min-height:44px;border:0;background:transparent;padding:8px 0 8px 10px;font-size:11px}.menu-toggle .icon{width:22px;height:22px}.primary-nav{display:flex;position:absolute;left:0;right:0;top:78px;background:white;border-bottom:1px solid var(--line);box-shadow:0 15px 20px #00000012;align-items:stretch;flex-direction:column;padding:16px 20px 25px;gap:0}.js .primary-nav{display:none}.js .primary-nav.is-open{display:flex}.primary-nav>a:not(.button){padding:14px 0;font-size:15px}.primary-nav>a:not(.button)::after{width:25px;right:auto}.primary-nav .button-header{margin:16px 0 0;align-self:flex-start;font-size:12px;padding:13px 20px;gap:35px}.hero-inner{padding-top:62px;min-height:620px}.hero-copy{padding-bottom:55px;max-width:100%}.hero .eyebrow{font-size:8px;letter-spacing:.1em;gap:10px;margin-bottom:29px}.hero .eyebrow::before{width:19px;height:3px}.hero h1{font-size:clamp(43px,10.8vw,70px);line-height:1.03;letter-spacing:-.065em;margin-bottom:26px;max-width:500px}.hero-intro{font-size:14px;line-height:1.9;max-width:330px;margin-bottom:28px}.hero-actions{gap:22px}.hero-actions .button{font-size:11px;padding:14px 19px;gap:24px;min-height:51px}.hero-actions .text-link{font-size:11px;gap:16px}.hero-media img{object-position:73% center}.hero::after{background:linear-gradient(90deg,rgba(11,12,17,.93) 0%,rgba(11,12,17,.8) 45%,rgba(11,12,17,.42) 100%)}.hero-baseline{grid-template-columns:1fr auto;gap:12px;min-height:91px;padding-block:19px}.hero-baseline>span{font-size:9px;letter-spacing:.1em}.hero-baseline>p{grid-column:1;font-size:12px}.hero-baseline>a{grid-column:2;grid-row:1/3;font-size:11px;gap:12px}.hero-baseline .icon{width:15px;height:15px}.section{padding-block:60px}.section-heading{display:block;margin-bottom:33px}.section-heading h2{font-size:35px;line-height:1.12;margin-bottom:25px}.section-heading .eyebrow{font-size:9px;margin-bottom:23px}.section-heading-aside{max-width:100%;font-size:14px}.section-heading-aside p br{display:none}.expertise-card{grid-template-columns:28px minmax(0,1fr) 21px;gap:0 16px;padding:26px 3px 26px 0;min-height:0;align-items:start}.card-number{font-size:10px;padding-top:7px;grid-row:1/3}.expertise-card h3{grid-column:2;grid-row:1;font-size:24px;line-height:1.2;margin-bottom:12px}.expertise-card p{grid-column:2;grid-row:2;font-size:13px;line-height:1.8;max-width:100%}.card-link{grid-column:3;grid-row:1/3;align-self:center}.card-link .icon{width:20px;height:20px}.expertise-card::before{left:-9px}.expertise-bottom{justify-content:flex-start;margin-top:25px}.expertise-tools{display:block;padding-bottom:22px}.filter-buttons{gap:2px;justify-content:space-between}.filter{font-size:12px;padding:12px 16px;min-height:47px}.search-field{width:100%;margin-top:19px}.search-field input{font-size:14px}.results-count{font-size:12px;margin-block:22px}.no-results{padding:40px 20px}.no-results h2{font-size:28px}.firm-section{padding:55px 0 35px}.firm-statement{grid-template-columns:1fr;gap:0;margin-bottom:35px}.firm-statement>.eyebrow{padding-top:0;font-size:9px;margin-bottom:24px}.firm-statement h2{font-size:42px;line-height:1.08;margin-bottom:28px}.firm-paragraphs{gap:0}.firm-paragraphs p{font-size:14px;line-height:1.9;margin-bottom:20px}.firm-documentary img{height:205px;object-position:55% center}.firm-documentary figcaption{font-size:7px;letter-spacing:.08em;gap:20px;margin-top:12px}.approach-layout{grid-template-columns:1fr;gap:25px}.approach-layout h2{font-size:39px;line-height:1.1;margin-bottom:20px}.approach-layout .eyebrow{font-size:9px}.approach-intro{max-width:100%;font-size:14px}.steps>div{grid-template-columns:26px 1fr;gap:18px;padding-block:25px}.steps h3{font-size:25px;margin-bottom:12px}.steps p{font-size:14px}.step-number{font-size:10px}.contact-banner{padding:50px 0}.contact-banner-inner{display:block}.contact-banner h2{font-size:43px;margin-bottom:24px}.contact-banner .eyebrow{font-size:9px;margin-bottom:25px}.contact-banner-inner>div:last-child>p{font-size:14px}.contact-banner .button{font-size:12px;min-width:230px}.site-footer{padding-top:42px}.footer-grid{grid-template-columns:1fr 1fr;gap:32px 25px;padding-bottom:35px}.footer-brand{grid-column:1/-1}.footer-brand p{font-size:12px;margin-top:22px}.footer-grid>div:not(:first-child)>a,.footer-grid address{font-size:12px}.footer-grid>div:last-child{grid-column:1/-1}.footer-grid h2{font-size:10px;margin-bottom:17px}.footer-bottom{display:block;font-size:10px;padding-block:23px}.footer-bottom>div{gap:20px;margin-top:16px}.back-to-top{margin-left:auto}html:not(.js) .header-inner{height:auto;min-height:78px;flex-wrap:wrap;padding-top:18px}html:not(.js) .primary-nav{position:static;box-shadow:none;flex:1 0 100%;border:0;padding-inline:0}html:not(.js) .menu-toggle{display:none}}
@media(max-width:380px){.container{width:calc(100% - 32px)}.brand-name{font-size:22px}.brand-sub{font-size:6px}.brand-mark{width:34px;height:39px;font-size:19px}.hero-inner{min-height:605px;padding-top:52px}.hero .eyebrow{font-size:7px;letter-spacing:.08em}.hero h1{font-size:43px}.hero-actions{gap:17px}.hero-actions .button{gap:18px;padding:13px 16px;font-size:10px}.hero-actions .text-link{font-size:10px;gap:9px}.hero-intro{font-size:14px}.hero-baseline{gap:9px}.hero-baseline>a{font-size:10px;gap:8px}.hero-baseline>span{font-size:8px}.expertise-card{grid-template-columns:22px minmax(0,1fr) 19px;gap:0 13px}.expertise-card h3{font-size:22px}.expertise-card p{font-size:13px}.filter{padding:11px 12px;font-size:11px}.section-heading h2{font-size:32px}.firm-statement h2{font-size:37px}.contact-banner h2{font-size:39px}.footer-grid{gap:30px 19px}.footer-bottom>div{gap:17px;font-size:9px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important}}
@media print{.site-header,.site-footer,.contact-banner,.hero-actions,.expertise-tools{display:none!important}body{background:white;color:black;font-size:11pt}.container{width:100%}.section{padding:18px 0}.hero{background:white!important;color:black!important}.hero-media,.hero::after{display:none}.hero-inner{min-height:0;padding:20px 0}.hero h1{font-size:32pt}.hero h1 span,.hero-intro,.hero .eyebrow{color:black}.hero-baseline{display:none}.expertise-card{break-inside:avoid}.firm-statement,.firm-paragraphs,.approach-layout{display:block}.firm-documentary img{height:auto}.firm-section{background:white;padding:20px 0}a{text-decoration:underline}}

/* ChrisLaw theme 2: interior pages. Shared tokens and controls are owned by site.css. */
.page-hero {
  padding: 82px 0 66px;
  background: var(--paper);
  color: var(--ink);
}
.page-hero .eyebrow { margin-bottom: 26px; }
.page-hero h1 {
  max-width: 1060px;
  margin-bottom: 28px;
  font-size: clamp(44px, 5.7vw, 80px);
  line-height: 1.07;
  letter-spacing: -.055em;
  text-wrap: balance;
  overflow-wrap: break-word;
}
.page-hero h1 em { color: var(--accent); font-style: normal; }
.page-intro {
  max-width: 760px;
  margin-bottom: 0;
  color: var(--muted);
  font-size: 17px;
  line-height: 1.75;
}
.section-top-small { padding-top: 22px; }
.compact-hero { padding-bottom: 56px; }
.page-services .page-hero {
  padding-top: 78px;
  padding-bottom: 70px;
  background: var(--dark);
  color: white;
  border-bottom: 4px solid var(--accent);
}
.page-services .page-hero .eyebrow,
.page-services .page-hero h1 em { color: var(--accent-light); }
.page-services .page-intro { color: #c8cbd3; }
.page-services .section-top-small { padding-top: 42px; }

/* About: direct typography, broad photography, and a square founder mark. */
.about-intro {
  display: grid;
  grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr);
  gap: 84px;
  margin-bottom: 56px;
  padding-top: 35px;
  border-top: 1px solid var(--line);
}
.about-intro > div { min-width: 0; }
.about-intro h2 {
  max-width: 420px;
  font-size: clamp(30px, 3.2vw, 43px);
  line-height: 1.15;
  letter-spacing: -.04em;
}
.prose { color: var(--muted); font-size: 16px; line-height: 1.85; }
.prose p { margin-bottom: 24px; }
.prose p:last-child { margin-bottom: 0; }
.prose h2, .prose h3 { color: var(--ink); }
.prose a:not(.button) { text-decoration: underline; text-underline-offset: 4px; }
.lead, .prose .lead {
  color: var(--ink);
  font-size: 20px;
  font-weight: 500;
  line-height: 1.6;
}
.wide-image { margin: 0; overflow: hidden; border-radius: 4px; background: var(--wash); }
.wide-image img {
  display: block;
  width: 100%;
  height: auto;
  max-height: 410px;
  object-fit: cover;
  filter: grayscale(1);
}
.founder-section {
  padding: 78px 0;
  background: var(--wash);
  border-block: 1px solid var(--line);
}
.founder-grid {
  display: grid;
  grid-template-columns: 216px minmax(0, 1fr);
  gap: 88px;
  align-items: center;
}
.founder-mark {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 216px;
  height: 216px;
  padding-right: 7px;
  background: var(--dark);
  color: white;
  border-radius: 4px;
  border-bottom: 5px solid var(--accent);
  font-family: var(--sans);
  font-size: 90px;
  font-weight: 750;
  line-height: 1;
  letter-spacing: -.11em;
}
.founder-mark span { color: var(--accent-light); }
.founder-grid h2 {
  margin-bottom: 20px;
  font-size: clamp(30px, 3.1vw, 43px);
  line-height: 1.15;
  letter-spacing: -.045em;
  overflow-wrap: break-word;
}
.founder-grid p:not(.eyebrow) { max-width: 760px; color: var(--muted); font-size: 16px; line-height: 1.8; }
.founder-grid p.lead { color: var(--ink); font-size: 20px; line-height: 1.6; }
.founder-grid p:last-child { margin-bottom: 0; }
.values-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 40px; }
.values-grid article { padding-top: 26px; border-top: 2px solid var(--ink); }
.values-grid article > span { color: var(--accent); font-size: 12px; font-weight: 700; letter-spacing: .08em; }
.values-grid h3 { margin-top: 28px; margin-bottom: 16px; font-size: 26px; line-height: 1.2; letter-spacing: -.035em; }
.values-grid p { margin-bottom: 0; color: var(--muted); font-size: 16px; line-height: 1.8; }

/* Practice pages: a dark title block and a clear reading column. */
.service-hero { padding-bottom: 65px; background: var(--dark); color: white; border-bottom: 4px solid var(--accent); }
.breadcrumbs {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 10px 13px;
  padding-top: 27px;
  margin-bottom: 57px;
  color: #c8cbd3;
  font-size: 12px;
  line-height: 1.6;
}
.breadcrumbs a { text-decoration: underline; text-decoration-color: #676c79; text-underline-offset: 4px; }
.breadcrumbs a:hover { color: white; text-decoration-color: white; }
.breadcrumbs > span:not([aria-current]) { color: #969ba8; }
.service-hero-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 130px;
  gap: 66px;
  align-items: center;
}
.service-hero-grid > div { min-width: 0; }
.service-hero .eyebrow { color: var(--accent-light); margin-bottom: 23px; }
.service-hero h1 {
  max-width: 900px;
  margin-bottom: 27px;
  font-size: clamp(43px, 5.25vw, 75px);
  line-height: 1.08;
  letter-spacing: -.05em;
  text-wrap: balance;
  overflow-wrap: break-word;
}
.service-hero .page-intro { max-width: 760px; color: #c8cbd3; font-size: 18px; }
.service-hero-symbol { display: flex; align-items: center; justify-content: center; width: 130px; height: 130px; color: var(--accent-light); }
.service-hero-symbol .icon { width: 86px; height: 86px; stroke-width: 1; }
.service-layout { display: grid; grid-template-columns: minmax(0, 1fr) minmax(270px, 350px); gap: 85px; align-items: start; }
.service-copy, .service-layout > aside { min-width: 0; }
.service-copy > .eyebrow { font-size: 11px; margin-bottom: 24px; }
.service-copy > h2 { margin: 42px 0 25px; font-size: 36px; line-height: 1.2; letter-spacing: -.04em; }
.service-copy > .eyebrow + h2 { margin-top: 0; }
.service-copy > p { max-width: 720px; font-size: 16px; }
.service-photo { margin: 33px 0 40px; overflow: hidden; border-radius: 4px; background: var(--wash); }
.service-photo img { width: 100%; height: auto; filter: grayscale(1); }
.service-list { margin: 0 0 40px; padding: 0; list-style: none; }
.service-list li { display: flex; align-items: flex-start; gap: 14px; padding: 16px 0; border-bottom: 1px solid var(--line); color: var(--ink); font-size: 16px; line-height: 1.6; }
.service-list .icon { width: 18px; height: 18px; margin-top: 4px; flex-shrink: 0; color: var(--accent); }
.enquiry-note { margin-top: 38px; padding: 4px 0 4px 25px; border-left: 3px solid var(--accent); }
.enquiry-note h3 { margin-bottom: 13px; font-size: 23px; line-height: 1.25; letter-spacing: -.03em; }
.enquiry-note p { margin-bottom: 0; font-size: 15px; line-height: 1.8; }
.service-copy .service-disclaimer { margin-top: 27px; padding-top: 22px; border-top: 1px solid var(--line); font-size: 14px; line-height: 1.75; }
.enquiry-card {
  position: sticky;
  top: 116px;
  padding: 33px;
  background: var(--dark);
  color: white;
  border-radius: 4px;
  border-top: 4px solid var(--accent);
}
.enquiry-card .small-icon { display: flex; align-items: center; justify-content: center; width: 44px; height: 44px; margin-bottom: 27px; color: var(--accent-light); border: 1px solid #505460; border-radius: 2px; }
.enquiry-card .small-icon .icon { width: 22px; height: 22px; }
.enquiry-card > .eyebrow { color: var(--accent-light); font-size: 11px; margin-bottom: 18px; }
.enquiry-card h2 { margin-bottom: 20px; color: white; font-size: 30px; line-height: 1.2; letter-spacing: -.035em; }
.enquiry-card p:not(.eyebrow) { color: #c8cbd3; font-size: 15px; line-height: 1.75; }
.enquiry-card .button { width: 100%; justify-content: space-between; gap: 15px; padding-inline: 18px; font-size: 14px; background: var(--accent); color: white; border-color: var(--accent); }
.enquiry-card .button:hover { background: #892236; border-color: #892236; }
.enquiry-phone { display: flex; align-items: center; gap: 10px; margin-top: 28px; font-size: 15px; font-weight: 600; }
.enquiry-phone .icon { width: 17px; height: 17px; color: var(--accent-light); }
.enquiry-email { display: inline-block; margin-top: 12px; color: #e1e3e9; font-size: 14px; text-decoration: underline; text-underline-offset: 4px; }
.related-section { padding: 68px 0; background: var(--wash); border-top: 1px solid var(--line); }
.related-section h2 { font-size: 40px; line-height: 1.15; }
.related-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 32px; margin: 32px 0 27px; }
.related-link { display: flex; align-items: center; justify-content: space-between; gap: 18px; min-height: 90px; padding: 24px 0; border-block: 1px solid #c5c7cf; color: var(--ink); font-size: 21px; font-weight: 650; line-height: 1.35; letter-spacing: -.025em; }
.related-link .icon { width: 21px; height: 21px; flex-shrink: 0; color: var(--accent); }
.related-link:hover { color: var(--accent); }

/* Contact: large direct routes with a dark enquiry panel. */
.contact-layout { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr); gap: 80px; align-items: start; }
.contact-details { min-width: 0; border-top: 1px solid var(--line); }
.contact-detail { display: grid; grid-template-columns: 28px minmax(0, 1fr); gap: 24px; padding: 33px 0; border-bottom: 1px solid var(--line); }
.contact-detail > div { min-width: 0; }
.contact-icon { color: var(--accent); padding-top: 3px; }
.contact-icon .icon { width: 26px; height: 26px; }
.contact-detail .eyebrow { font-size: 11px; margin-bottom: 16px; }
.contact-big-link { display: block; max-width: 100%; margin-bottom: 15px; font-size: clamp(24px, 2.35vw, 32px); line-height: 1.3; font-weight: 650; letter-spacing: -.035em; overflow-wrap: anywhere; }
.contact-big-link.email-link { font-size: clamp(22px, 2.15vw, 29px); }
.contact-detail p:not(.eyebrow) { margin-bottom: 0; color: var(--muted); font-size: 15px; line-height: 1.9; overflow-wrap: anywhere; }
.contact-detail a:not(.text-link):hover { text-decoration: underline; text-underline-offset: 4px; }
.contact-address { margin-bottom: 15px; font-size: 26px; font-weight: 600; line-height: 1.4; letter-spacing: -.025em; overflow-wrap: break-word; }
.contact-detail .text-link { margin-top: 16px; font-size: 14px; }
.contact-compose { min-width: 0; padding: 40px; background: var(--dark); color: white; border-radius: 4px; border-top: 4px solid var(--accent); }
.contact-compose > .eyebrow { color: var(--accent-light); font-size: 11px; margin-bottom: 25px; }
.contact-compose h2 { color: white; margin-bottom: 22px; font-size: 36px; line-height: 1.15; letter-spacing: -.04em; }
.contact-compose h2 em { color: var(--accent-light); font-style: normal; }
.contact-compose > p:not(.eyebrow) { color: #c8cbd3; font-size: 16px; line-height: 1.75; }
.contact-compose > label { display: block; margin-bottom: 10px; color: white; font-size: 14px; font-weight: 600; }
.contact-compose select { display: block; width: 100%; min-width: 0; max-width: 100%; min-height: 52px; margin-bottom: 16px; padding: 12px 36px 12px 14px; border: 1px solid #a5a8b2; border-radius: 3px; background: white; color: var(--ink); font-family: var(--sans); font-size: 14px; line-height: 1.5; text-overflow: ellipsis; }
.contact-compose > .button { width: 100%; justify-content: space-between; gap: 16px; font-size: 14px; background: var(--accent); color: white; border-color: var(--accent); }
.contact-compose > .button:hover { background: #892236; border-color: #892236; }
.contact-compose .compose-help { margin: 18px 0 0; font-size: 14px; line-height: 1.75; }
.compose-divider { height: 1px; margin: 28px 0; background: #454955; }
.contact-compose .contact-reassurance { margin: 0; font-size: 15px; }
.contact-reassurance a { display: inline-block; margin-top: 4px; color: white; font-weight: 600; text-decoration: underline; text-underline-offset: 4px; }
.location-band { padding: 62px 0; background: var(--wash); color: var(--ink); border-block: 1px solid var(--line); }
.location-band > .container { display: flex; align-items: center; justify-content: space-between; gap: 50px; }
.location-band .eyebrow { margin-bottom: 20px; }
.location-band h2 { margin-bottom: 0; font-size: clamp(28px, 3.1vw, 42px); line-height: 1.18; letter-spacing: -.04em; }
.location-band p:not(.eyebrow), .location-band address { margin-bottom: 0; font-size: 16px; line-height: 1.8; }
.location-band .location-address { margin-top: 18px; }
.location-band .location-symbol { display: none; }
.location-band .button, .location-band .text-link { flex-shrink: 0; }

/* Legal information and missing-page states. */
.legal-copy { max-width: 830px; margin-inline: auto; }
.legal-copy h2 { margin-top: 42px; margin-bottom: 20px; font-size: 29px; line-height: 1.25; letter-spacing: -.03em; }
.legal-copy h2:first-child { margin-top: 0; }
.legal-copy p { font-size: 16px; line-height: 1.85; }
.legal-copy a { overflow-wrap: anywhere; }
.not-found { min-height: 65vh; }
.not-found h1 { max-width: 1000px; margin-bottom: 28px; font-size: clamp(43px, 6vw, 80px); line-height: 1.1; letter-spacing: -.05em; }
.not-found p:not(.eyebrow) { color: var(--muted); font-size: 17px; line-height: 1.75; }

@media (max-width: 1150px) {
  .about-intro { gap: 58px; }
  .founder-grid { gap: 62px; }
  .service-hero-grid { gap: 40px; grid-template-columns: minmax(0, 1fr) 110px; }
  .service-hero-symbol { width: 110px; height: 110px; }
  .service-layout { grid-template-columns: minmax(0, 1fr) minmax(260px, 310px); gap: 55px; }
  .enquiry-card { padding: 29px; }
  .contact-layout { gap: 52px; }
  .contact-compose { padding: 32px; }
  .contact-compose h2 { font-size: 33px; }
  .contact-detail { gap: 20px; }
  .contact-big-link.email-link { font-size: 25px; }
}

@media (max-width: 900px) {
  .page-hero { padding: 65px 0 52px; }
  .page-hero h1 { font-size: 58px; }
  .page-services .page-hero { padding: 66px 0 57px; }
  .about-intro { grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); gap: 36px; margin-bottom: 40px; }
  .about-intro h2 { font-size: 32px; }
  .lead, .prose .lead { font-size: 19px; }
  .founder-grid { grid-template-columns: 172px minmax(0, 1fr); gap: 45px; }
  .founder-mark { width: 172px; height: 172px; font-size: 73px; }
  .founder-grid h2 { font-size: 33px; }
  .values-grid { gap: 27px; }
  .values-grid h3 { font-size: 23px; }
  .values-grid p { font-size: 15px; }
  .service-hero { padding-bottom: 52px; }
  .service-hero h1 { font-size: 53px; }
  .service-hero-grid { grid-template-columns: minmax(0, 1fr) 85px; gap: 26px; }
  .service-hero-symbol { width: 85px; height: 100px; }
  .service-hero-symbol .icon { width: 70px; height: 70px; }
  .service-hero .page-intro { font-size: 17px; }
  .service-layout { grid-template-columns: minmax(0, 1fr) 265px; gap: 34px; }
  .service-copy > h2 { font-size: 31px; }
  .enquiry-card { padding: 25px; }
  .enquiry-card h2 { font-size: 27px; }
  .enquiry-card .button { font-size: 14px; padding-inline: 14px; gap: 9px; }
  .related-grid { gap: 24px; }
  .related-link { font-size: 19px; }
  .contact-layout { gap: 32px; }
  .contact-detail { grid-template-columns: 24px minmax(0, 1fr); gap: 15px; }
  .contact-icon .icon { width: 23px; height: 23px; }
  .contact-big-link, .contact-big-link.email-link { font-size: 24px; }
  .contact-address { font-size: 23px; }
  .contact-compose { padding: 28px; }
  .contact-compose h2 { font-size: 30px; }
  .contact-compose > p:not(.eyebrow) { font-size: 15px; }
  .contact-compose .compose-help { font-size: 14px; }
}

@media (max-width: 720px) {
  .page-hero { padding: 51px 0 39px; }
  .page-hero .eyebrow { margin-bottom: 23px; }
  .page-hero h1 { margin-bottom: 24px; font-size: clamp(35px, 8.8vw, 58px); line-height: 1.11; letter-spacing: -.045em; }
  .page-intro { font-size: 16px; line-height: 1.75; }
  .page-intro br { display: none; }
  .page-services .page-hero { padding: 51px 0 43px; }
  .section-top-small { padding-top: 14px; }
  .page-services .section-top-small { padding-top: 31px; }
  .compact-hero { padding-bottom: 40px; }
  .about-intro { grid-template-columns: minmax(0, 1fr); gap: 16px; padding-top: 29px; margin-bottom: 36px; }
  .about-intro h2 { max-width: 520px; font-size: 34px; margin-bottom: 12px; }
  .about-intro .eyebrow { margin-bottom: 21px; }
  .prose { font-size: 16px; line-height: 1.8; }
  .lead, .prose .lead { font-size: 19px; line-height: 1.65; }
  .wide-image img { height: 235px; object-position: 55% center; }
  .founder-section { padding: 49px 0; }
  .founder-grid { grid-template-columns: minmax(0, 1fr); gap: 29px; }
  .founder-mark { width: 144px; height: 144px; font-size: 65px; }
  .founder-grid h2 { font-size: clamp(28px, 7.1vw, 37px); }
  .founder-grid .eyebrow { margin-bottom: 21px; }
  .founder-grid p:not(.eyebrow) { font-size: 16px; }
  .founder-grid p.lead { font-size: 19px; }
  .values-grid { grid-template-columns: minmax(0, 1fr); gap: 32px; }
  .values-grid article { padding-top: 23px; }
  .values-grid h3 { font-size: 27px; margin-top: 21px; }
  .values-grid p { font-size: 16px; }
  .breadcrumbs { gap: 8px 10px; padding-top: 24px; margin-bottom: 35px; font-size: 11px; }
  .service-hero { padding-bottom: 42px; }
  .service-hero-grid { grid-template-columns: minmax(0, 1fr); gap: 0; }
  .service-hero-symbol { display: none; }
  .service-hero .eyebrow { font-size: 11px; margin-bottom: 22px; }
  .service-hero h1 { max-width: 630px; margin-bottom: 23px; font-size: clamp(34px, 8.4vw, 56px); line-height: 1.11; letter-spacing: -.045em; }
  .service-hero .page-intro { font-size: 16px; }
  .service-layout { grid-template-columns: minmax(0, 1fr); gap: 42px; }
  .service-copy > h2 { margin-top: 34px; font-size: 31px; }
  .service-copy > p { font-size: 16px; }
  .service-list li { padding-block: 15px; font-size: 15px; }
  .service-photo { margin-block: 29px 35px; }
  .enquiry-note { padding-left: 20px; margin-top: 32px; }
  .enquiry-note h3 { font-size: 24px; }
  .enquiry-note p { font-size: 15px; }
  .enquiry-card { position: static; padding: 30px; }
  .enquiry-card h2 { max-width: 500px; font-size: 32px; }
  .enquiry-card p:not(.eyebrow) { font-size: 16px; }
  .enquiry-card .button { font-size: 14px; padding-inline: 20px; }
  .enquiry-phone { font-size: 16px; }
  .related-section { padding: 49px 0; }
  .related-section h2 { font-size: 34px; }
  .related-grid { grid-template-columns: minmax(0, 1fr); gap: 0; margin-block: 27px 23px; }
  .related-link { min-height: 78px; padding-block: 24px; border-bottom: 0; font-size: 22px; }
  .related-link:last-child { border-bottom: 1px solid #c5c7cf; }
  .contact-layout { grid-template-columns: minmax(0, 1fr); gap: 39px; }
  .contact-detail { grid-template-columns: 25px minmax(0, 1fr); gap: 20px; padding-block: 29px; }
  .contact-icon .icon { width: 25px; height: 25px; }
  .contact-big-link { font-size: 29px; }
  .contact-big-link.email-link { font-size: clamp(22px, 5.6vw, 30px); }
  .contact-detail p:not(.eyebrow) { font-size: 15px; }
  .contact-address { font-size: 25px; }
  .contact-compose { padding: 31px; }
  .contact-compose h2 { font-size: 34px; }
  .contact-compose > p:not(.eyebrow) { font-size: 16px; }
  .contact-compose .compose-help { font-size: 14px; }
  .contact-compose .contact-reassurance { font-size: 15px; }
  .location-band { padding: 44px 0; }
  .location-band > .container { flex-direction: column; align-items: flex-start; gap: 28px; }
  .location-band h2 { font-size: clamp(28px, 7.1vw, 37px); }
  .location-band .eyebrow { margin-bottom: 20px; }
  .legal-copy h2 { margin-top: 34px; font-size: 27px; }
  .legal-copy p { font-size: 16px; line-height: 1.8; }
  .not-found { min-height: 60vh; }
  .not-found h1 { font-size: clamp(35px, 9vw, 58px); line-height: 1.12; }
  .not-found p:not(.eyebrow) { font-size: 16px; }
}

@media (max-width: 380px) {
  .page-hero h1 { font-size: 35px; }
  .about-intro h2 { font-size: 31px; }
  .service-hero h1 { font-size: 34px; }
  .service-copy > h2 { font-size: 29px; }
  .contact-detail { grid-template-columns: 23px minmax(0, 1fr); gap: 15px; }
  .contact-big-link { font-size: 25px; }
  .contact-big-link.email-link { font-size: 22px; letter-spacing: -.045em; }
  .contact-address { font-size: 23px; }
  .contact-compose, .enquiry-card { padding: 25px; }
  .contact-compose h2, .enquiry-card h2 { font-size: 30px; }
  .contact-compose select { padding-left: 11px; padding-right: 28px; font-size: 14px; }
  .related-link { font-size: 21px; }
}

@media print {
  .page-hero, .page-services .page-hero, .service-hero, .founder-section, .related-section, .location-band { padding: 18px 0; background: white; color: black; border-color: #aaa; }
  .page-hero h1, .service-hero h1, .not-found h1 { max-width: 100%; font-size: 30pt; color: black; }
  .page-hero h1 em, .page-services .page-hero h1 em, .page-hero .eyebrow, .service-hero .eyebrow, .service-hero .page-intro, .page-services .page-intro { color: black; }
  .page-intro, .prose, .prose p, .service-copy > p, .legal-copy p, .founder-grid p:not(.eyebrow) { color: black; font-size: 11pt; line-height: 1.6; }
  .about-intro, .founder-grid, .service-layout, .contact-layout { display: block; }
  .about-intro { margin-bottom: 20px; padding-top: 15px; }
  .founder-mark, .service-hero-symbol, .breadcrumbs, .enquiry-card, .contact-compose, .related-section { display: none; }
  .wide-image, .service-photo { max-width: 600px; margin: 20px auto; break-inside: avoid; }
  .wide-image img { height: auto; }
  .values-grid { gap: 20px; }
  .values-grid h3, .service-copy > h2, .legal-copy h2, .founder-grid h2 { font-size: 18pt; break-after: avoid; }
  .contact-detail { padding-block: 18px; break-inside: avoid; }
  .contact-big-link, .contact-big-link.email-link, .contact-address { font-size: 16pt; }
  .contact-detail p:not(.eyebrow), .service-list li, .enquiry-note p, .service-copy .service-disclaimer { font-size: 10pt; color: black; }
  .legal-copy { max-width: none; }
  .not-found { min-height: 0; }
}

.service-hero-symbol>span{font-size:90px;font-weight:700;line-height:1;letter-spacing:-.07em;color:#747681}
@media(max-width:900px){.service-hero-symbol>span{font-size:70px}}
