:root {
    --color-chalk: #F7F4EE;
    --color-chalk-white: #FEFCF8;
    --color-linen: #EDE8DF;
    --color-portland-stone: #D8D1C2;
    --color-warm-grey: #968C82;
    --color-charcoal: #3D3830;
    --color-deep-ink: #1A1612;
    --color-clay: #9E6B4A;
    --color-aged-brass: #8A7040;
    --color-umber: #2A1F15;
    --color-oxblood: #6B2232;
    --font-serif: Georgia, "Times New Roman", serif;
    --font-sans: -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", Arial, sans-serif;
    --space-1: .25rem;
    --space-2: .5rem;
    --space-3: 1rem;
    --space-4: 1.5rem;
    --space-5: 2rem;
    --space-6: 3rem;
    --space-7: 4rem;
    --space-8: 6rem;
    --space-9: 8rem;
    --container-max: 1180px;
    --content-max: 720px;
    --text-xs: .75rem;
    --text-sm: .875rem;
    --text-base: 1rem;
    --text-lg: 1.125rem;
    --text-xl: 1.25rem;
    --text-2xl: 1.5rem;
    --text-3xl: 1.875rem;
    --text-4xl: 2.25rem;
    --text-5xl: 3rem;
    --tracking-tight: -.02em;
    --tracking-normal: 0;
    --tracking-wide: .06em;
    --tracking-wider: .1em;
    --radius-sm: 2px;
    --radius: 4px;
    --transition: .2s ease
}

*,
*:before,
*:after {
    box-sizing: border-box;
    margin: 0;
    padding: 0
}

html {
    font-size: 100%;
    -webkit-text-size-adjust: 100%;
    scroll-behavior: smooth
}

@media(prefers-reduced-motion:reduce) {
    html {
        scroll-behavior: auto
    }

    *,
    *:before,
    *:after {
        animation-duration: .01ms !important;
        animation-iteration-count: 1 !important
    }

    .nav-panel,
    .nav-panel__backdrop {
        transition: none
    }

    .reveal {
        opacity: 1 !important;
        transform: none !important;
        transition: none !important
    }

    .reveal .rule-accent {
        width: 40px !important;
        transition: none !important
    }

    .expertise-index__row:hover {
        transform: none
    }

    .btn:hover {
        transform: none;
        box-shadow: none
    }

    .hero:after {
        animation: none;
        transform: none
    }
}

body {
    background-color: var(--color-chalk);
    color: var(--color-deep-ink);
    font-family: var(--font-sans);
    font-size: var(--text-base);
    line-height: 1.7;
    min-height: 100vh;
    display: flex;
    flex-direction: column
}

h1,
h2,
h3,
h4,
h5,
h6 {
    font-family: var(--font-serif);
    font-weight: 400;
    line-height: 1.2;
    color: var(--color-deep-ink)
}

h1 {
    font-size: var(--text-4xl);
    letter-spacing: var(--tracking-tight)
}

h2 {
    font-size: var(--text-3xl)
}

h3 {
    font-size: var(--text-xl);
    font-family: var(--font-sans);
    font-weight: 500
}

h4 {
    font-size: var(--text-lg);
    font-family: var(--font-sans);
    font-weight: 500
}

@media(min-width:768px) {
    h1 {
        font-size: var(--text-5xl)
    }
}

p {
    max-width: var(--content-max)
}

a {
    color: var(--color-clay);
    text-decoration: underline;
    text-underline-offset: 3px;
    transition: color var(--transition), opacity var(--transition)
}

a:hover {
    opacity: .75
}

a:focus-visible {
    outline: 2px solid var(--color-clay);
    outline-offset: 3px;
    border-radius: var(--radius-sm)
}

ul,
ol {
    padding-left: var(--space-5)
}

li {
    margin-bottom: var(--space-2)
}

.container {
    width: 100%;
    max-width: var(--container-max);
    margin-inline: auto;
    padding-inline: var(--space-4)
}

@media(min-width:768px) {
    .container {
        padding-inline: var(--space-6)
    }
}

main {
    flex: 1
}

.section {
    padding-block: var(--space-6)
}

@media(min-width:768px) {
    .section {
        padding-block: var(--space-7)
    }
}

.section--linen {
    background-color: var(--color-linen)
}

.section--stone {
    background-color: var(--color-portland-stone)
}

.section--chalk {
    background-color: var(--color-chalk-white)
}

.section--deep {
    background-color: var(--color-umber);
    background-image: url(images/bentincks-practice-panel-dark.png);
    background-size: cover;
    background-position: center center;
    position: relative
}

.section--deep:before {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(118deg, #6b22321a, #8a70400f 45%, #2a1f150a);
    background-size: 220% 100%;
    background-position: 0% 0%;
    pointer-events: none;
    z-index: 0
}

.section--deep:after {
    content: "";
    position: absolute;
    inset: 0;
    background: #0a040261;
    pointer-events: none;
    z-index: 1
}

.section--deep>.container {
    position: relative;
    z-index: 2
}

@media(prefers-reduced-motion:no-preference) {
    .section--deep:before {
        animation: practice-atmosphere 22s ease-in-out infinite alternate
    }
}

@keyframes practice-atmosphere {
    0% {
        background-position: 0% 0%
    }

    to {
        background-position: 100% 0%
    }
}

.section--deep .section-heading,
.section--deep h2 {
    color: var(--color-chalk)
}

.section--deep .lead {
    color: var(--color-portland-stone)
}

.section--contour {
    background-color: var(--color-chalk)
}

.site-header {
    background-color: var(--color-chalk);
    border-top: 3px solid var(--color-aged-brass);
    border-bottom: 1px solid var(--color-portland-stone);
    padding-block: var(--space-4)
}

@media(min-width:768px) {
    .site-header {
        padding-block: var(--space-5)
    }
}

.site-header__inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--space-4)
}

.wordmark {
    display: flex;
    flex-direction: column;
    gap: 0;
    text-decoration: none;
    line-height: 1;
    flex-shrink: 0
}

.wordmark__name {
    font-family: var(--font-serif);
    font-size: 1.875rem;
    font-weight: 400;
    letter-spacing: .06em;
    color: var(--color-deep-ink);
    padding-bottom: 5px;
    border-bottom: 1px solid var(--color-aged-brass);
    transition: opacity var(--transition)
}

@media(min-width:768px) {
    .wordmark__name {
        font-size: 2.5rem
    }
}

.wordmark__sub {
    font-family: var(--font-sans);
    font-size: .5625rem;
    letter-spacing: .2em;
    text-transform: uppercase;
    color: var(--color-warm-grey);
    transition: opacity var(--transition)
}

.wordmark:hover .wordmark__name,
.wordmark:hover .wordmark__sub {
    opacity: .65
}

.site-header__right {
    display: flex;
    align-items: center;
    gap: var(--space-3)
}

.site-nav {
    display: none;
    list-style: none;
    padding: 0
}

@media(min-width:640px) {
    .site-nav {
        display: flex;
        align-items: center;
        gap: 8px
    }
}

@media(min-width:768px) {
    .site-nav {
        gap: 12px
    }
}

.site-nav a {
    display: inline-block;
    font-family: var(--font-sans);
    font-size: .72rem;
    font-weight: 700;
    letter-spacing: .14em;
    text-transform: uppercase;
    line-height: 1;
    color: var(--color-chalk);
    background-color: #551827;
    text-decoration: none;
    padding: 4px 14px;
    border-radius: 2px;
    border: 1px solid rgba(20, 4, 8, .3);
    border-bottom-color: #8a704061;
    white-space: nowrap;
    opacity: 1;
    transition: background-color .18s ease
}

.site-nav a:after {
    display: none
}

.site-nav a:hover,
.site-nav a[aria-current=page] {
    background-color: #43141f;
    color: var(--color-chalk);
    opacity: 1
}

.site-nav a:focus-visible {
    outline: 2px solid var(--color-aged-brass);
    outline-offset: 2px;
    border-radius: 2px;
    opacity: 1
}

.site-nav__item--has-dropdown {
    position: relative
}

.site-nav__dropdown {
    position: absolute;
    top: calc(100% + 2px);
    left: 0;
    min-width: 230px;
    background: var(--color-chalk);
    border-top: 2px solid var(--color-oxblood);
    box-shadow: 0 6px 20px #1a161217;
    list-style: none;
    padding: var(--space-2) 0;
    opacity: 0;
    transform: translateY(-5px);
    pointer-events: none;
    transition: opacity .2s ease, transform .2s ease;
    z-index: 200
}

.site-nav__item--has-dropdown:hover .site-nav__dropdown,
.site-nav__item--has-dropdown:focus-within .site-nav__dropdown {
    opacity: 1;
    transform: translateY(0);
    pointer-events: auto
}

.site-nav__dropdown a {
    display: block;
    padding: .4rem var(--space-4) .4rem calc(var(--space-3) + 2px);
    font-family: var(--font-sans);
    font-size: .6875rem;
    font-weight: 600;
    letter-spacing: .1em;
    text-transform: uppercase;
    color: var(--color-charcoal);
    background-color: transparent;
    border: none;
    border-radius: 0;
    text-decoration: none;
    border-left: 2px solid transparent;
    transition: color .15s ease, background .15s ease, border-left-color .15s ease;
    white-space: nowrap
}

.site-nav__dropdown a:after {
    display: none
}

.site-nav__dropdown a:hover {
    color: var(--color-deep-ink);
    background: #6b22320d;
    border-left-color: var(--color-oxblood)
}

.site-nav__dropdown a:focus-visible {
    outline: 2px solid var(--color-oxblood);
    outline-offset: -2px;
    border-radius: 0
}

@media(prefers-reduced-motion:reduce) {
    .site-nav__dropdown {
        transition: opacity .1s ease;
        transform: none
    }

    .site-nav__item--has-dropdown:hover .site-nav__dropdown,
    .site-nav__item--has-dropdown:focus-within .site-nav__dropdown {
        transform: none
    }
}

.site-footer {
    background-color: var(--color-charcoal);
    border-top: 1px solid var(--color-aged-brass);
    color: var(--color-warm-grey);
    padding-block: var(--space-3) var(--space-4);
    margin-top: auto
}

.site-footer a {
    color: var(--color-portland-stone);
    text-decoration: none;
    transition: color var(--transition), opacity var(--transition)
}

.site-footer a:hover {
    color: var(--color-chalk);
    opacity: 1
}

.footer-top {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: var(--space-5);
    padding-bottom: var(--space-4);
    border-bottom: 1px solid rgba(255, 255, 255, .07);
    flex-wrap: wrap
}

.footer-brand {
    display: flex;
    flex-direction: column;
    gap: 4px
}

.footer-wordmark {
    font-family: var(--font-serif);
    font-size: var(--text-lg);
    letter-spacing: var(--tracking-wide);
    color: var(--color-chalk);
    max-width: none;
    margin: 0
}

.footer-nav {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-2) var(--space-4);
    list-style: none;
    padding: 0;
    justify-content: flex-end
}

.footer-nav a {
    font-family: var(--font-sans);
    font-size: .8125rem;
    letter-spacing: .04em;
    color: var(--color-portland-stone);
    transition: color var(--transition)
}

.footer-nav a:hover {
    color: var(--color-chalk);
    opacity: 1
}

.footer-lower {
    padding-top: var(--space-4)
}

.footer-legal {
    font-size: .8125rem;
    color: #c0b7aaeb;
    line-height: 1.75;
    max-width: 80ch;
    margin-bottom: var(--space-3)
}

.footer-copyright {
    font-size: var(--text-xs);
    color: #9e948abd;
    letter-spacing: .04em
}

.hero {
    position: relative;
    min-height: 68vh;
    display: flex;
    align-items: flex-end;
    background-color: var(--color-chalk);
    overflow: hidden;
    border-bottom: 1px solid var(--color-portland-stone)
}

.hero:after {
    content: "";
    position: absolute;
    inset: -6%;
    background-image: url(../images/bentincks-hero-architecture.png);
    background-size: cover;
    background-position: center top;
    z-index: 0;
    transform-origin: center right
}

.hero:before {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(to top, #f7f4eefa, #f7f4eed1 28%, #f7f4ee33 60%, #f7f4ee00 82%);
    z-index: 1;
    pointer-events: none
}

@media(min-width:860px) {
    .hero {
        min-height: 84vh;
        align-items: center
    }

    .hero:after {
        background-position: right center
    }

    .hero:before {
        background: linear-gradient(to right, #f7f4eef5, #f7f4eee0 28%, #f7f4ee80 48%, #f7f4ee00 66%)
    }
}

@media(prefers-reduced-motion:no-preference) {
    .hero:after {
        animation: hero-drift 38s ease-in-out infinite alternate
    }
}

@keyframes hero-drift {
    0% {
        transform: scale(1)
    }

    to {
        transform: scale(1.045) translate3d(-1.2%, -.8%, 0)
    }
}

.hero__content {
    position: relative;
    z-index: 2;
    width: 100%;
    max-width: var(--container-max);
    margin-inline: auto;
    padding-inline: var(--space-6);
    padding-block: var(--space-8)
}

@media(min-width:768px) {
    .hero__content {
        padding-inline: var(--space-7);
        padding-block: var(--space-9)
    }
}

.hero__text {
    max-width: 500px
}

.hero__eyebrow {
    font-family: var(--font-sans);
    font-size: var(--text-xs);
    font-weight: 600;
    letter-spacing: .14em;
    text-transform: uppercase;
    color: var(--color-aged-brass);
    margin-bottom: var(--space-3);
    max-width: none
}

.hero__heading {
    font-family: var(--font-serif);
    font-size: 2.75rem;
    letter-spacing: -.02em;
    line-height: 1.05;
    color: var(--color-deep-ink);
    margin-bottom: var(--space-5);
    font-weight: 400
}

@media(min-width:600px) {
    .hero__heading {
        font-size: 3.5rem
    }
}

@media(min-width:900px) {
    .hero__heading {
        font-size: 4.25rem
    }
}

.hero__body {
    font-size: var(--text-base);
    color: var(--color-charcoal);
    line-height: 1.8;
    margin-bottom: var(--space-5)
}

.hero__body p {
    max-width: 44ch;
    margin-bottom: var(--space-4)
}

.hero__body p:last-child {
    margin-bottom: 0
}

.hero__cta {
    display: flex;
    gap: var(--space-3);
    flex-wrap: wrap;
    margin-top: var(--space-5)
}

.page-header {
    background-color: var(--color-linen);
    padding-block: var(--space-6) var(--space-5);
    border-bottom: 1px solid var(--color-portland-stone)
}

@media(min-width:768px) {
    .page-header {
        padding-block: var(--space-7) var(--space-6)
    }
}

.page-header--about {
    padding-block: var(--space-5) var(--space-4)
}

@media(min-width:768px) {
    .page-header--about {
        padding-block: var(--space-6) var(--space-5)
    }
}

.page-header--banner {
    position: relative;
    background-size: cover;
    background-position: right center;
    background-repeat: no-repeat;
    min-height: 160px;
    display: flex;
    align-items: center;
    padding-block: var(--space-4)
}

.page-header--banner:before {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(to right, var(--color-linen) 0%, rgba(237, 232, 223, .96) 18%, rgba(237, 232, 223, .8) 36%, rgba(237, 232, 223, .36) 58%, rgba(237, 232, 223, .06) 78%, rgba(237, 232, 223, 0) 90%);
    pointer-events: none
}

.page-header--banner .container {
    position: relative;
    z-index: 1
}

@media(min-width:640px) {
    .page-header--banner {
        min-height: 200px;
        background-position: right center
    }
}

@media(min-width:900px) {
    .page-header--banner {
        min-height: 240px;
        padding-block: var(--space-5)
    }
}

.page-header--practice {
    background-color: var(--color-umber);
    background-image: url(../images/bentincks-practice-panel-dark.png);
    background-size: cover;
    background-position: center center;
    border-bottom: 3px solid var(--color-oxblood);
    position: relative
}

.page-header--practice:before {
    content: "";
    position: absolute;
    inset: 0;
    background: #0a04027a;
    pointer-events: none
}

.page-header--practice .container {
    position: relative;
    z-index: 1
}

.page-header--practice .rule-accent {
    background-color: var(--color-aged-brass)
}

.page-header--practice .page-header__eyebrow {
    color: var(--color-portland-stone)
}

.page-header--practice .page-header__title {
    color: var(--color-chalk)
}

.page-header__eyebrow {
    font-size: var(--text-xs);
    font-weight: 600;
    letter-spacing: .12em;
    text-transform: uppercase;
    color: var(--color-aged-brass);
    margin-bottom: var(--space-3);
    max-width: none
}

.page-header__title {
    font-size: var(--text-4xl);
    letter-spacing: var(--tracking-tight);
    line-height: 1.1
}

@media(min-width:768px) {
    .page-header__title {
        font-size: var(--text-5xl)
    }
}

.page-content {
    padding-block: var(--space-6)
}

.page-content--linen {
    background-color: var(--color-linen)
}

.page-content--contour {
    background-color: var(--color-chalk)
}

.prose {
    max-width: var(--content-max)
}

.prose h2 {
    font-size: var(--text-2xl);
    margin-top: var(--space-7);
    margin-bottom: var(--space-4)
}

.prose h3 {
    margin-top: var(--space-5);
    margin-bottom: var(--space-3)
}

.prose p,
.prose ul,
.prose ol {
    margin-bottom: var(--space-4)
}

.prose li {
    margin-bottom: var(--space-2)
}

.prose h2:first-of-type {
    margin-top: 0
}

.skip-link {
    position: absolute;
    top: -100%;
    left: var(--space-3);
    background: var(--color-deep-ink);
    color: var(--color-chalk);
    padding: var(--space-2) var(--space-4);
    font-size: var(--text-sm);
    font-weight: 500;
    text-decoration: none;
    z-index: 999;
    border-radius: var(--radius)
}

.skip-link:focus {
    top: var(--space-3)
}

.rule-accent {
    width: 40px;
    height: 2px;
    background-color: var(--color-aged-brass);
    margin-bottom: var(--space-4)
}

.section-heading {
    margin-bottom: var(--space-5)
}

.lead {
    font-size: var(--text-lg);
    color: var(--color-charcoal);
    max-width: 58ch;
    line-height: 1.8;
    margin-bottom: var(--space-5)
}

.cta-link {
    display: inline-flex;
    align-items: center;
    gap: var(--space-2);
    font-family: var(--font-sans);
    font-size: var(--text-xs);
    font-weight: 600;
    letter-spacing: .1em;
    text-transform: uppercase;
    color: var(--color-charcoal);
    text-decoration: none;
    transition: color var(--transition)
}

.cta-link:after {
    content: "→";
    letter-spacing: 0;
    transition: transform var(--transition)
}

.cta-link:hover {
    color: var(--color-clay);
    opacity: 1
}

.cta-link:hover:after {
    transform: translate(5px)
}

.btn {
    display: inline-flex;
    align-items: center;
    font-family: var(--font-sans);
    font-size: var(--text-xs);
    font-weight: 600;
    letter-spacing: .1em;
    text-transform: uppercase;
    text-decoration: none;
    padding: .75rem var(--space-5);
    border: 1px solid transparent;
    transition: background-color .24s ease, color .24s ease, border-color .24s ease, transform .24s ease, box-shadow .24s ease;
    white-space: nowrap;
    cursor: pointer
}

.btn--primary {
    background-color: var(--color-deep-ink);
    color: var(--color-chalk);
    border-color: var(--color-deep-ink)
}

.btn--primary:hover {
    background-color: var(--color-charcoal);
    border-color: var(--color-charcoal);
    color: var(--color-chalk);
    opacity: 1;
    transform: translateY(-2px);
    box-shadow: 0 4px 14px #1a161233
}

.btn--ghost {
    background-color: transparent;
    color: var(--color-deep-ink);
    border-color: var(--color-charcoal)
}

.btn--ghost:hover {
    background-color: var(--color-deep-ink);
    border-color: var(--color-deep-ink);
    color: var(--color-chalk);
    opacity: 1;
    transform: translateY(-2px);
    box-shadow: 0 4px 14px #1a161224
}

.btn:focus-visible {
    outline: 2px solid var(--color-clay);
    outline-offset: 3px
}

.about-preview__layout {
    display: grid;
    grid-template-columns: 1fr;
    gap: var(--space-7)
}

.about-preview__image {
    display: none;
    overflow: clip
}

.about-preview__image img {
    width: 100%;
    height: 400px;
    object-fit: cover;
    object-position: 22% center;
    display: block
}

.about-layout {
    display: grid;
    grid-template-columns: 1fr;
    gap: var(--space-7)
}

@media(min-width:900px) {
    .about-layout {
        grid-template-columns: 1fr 38%;
        align-items: start;
        gap: var(--space-8)
    }
}

.about-image-panel {
    display: none;
    overflow: clip
}

@media(min-width:900px) {
    .about-image-panel {
        display: block;
        border-top: 3px solid var(--color-aged-brass);
        position: sticky;
        top: var(--space-6)
    }
}

.about-image-panel img {
    width: 100%;
    height: 500px;
    object-fit: cover;
    object-position: center center;
    display: block
}

.about-signage-overlay {
    overflow: hidden;
    background-color: var(--color-linen)
}

.about-signage-overlay__image {
    width: 100%;
    height: 280px;
    object-fit: cover;
    object-position: left center;
    display: block
}

.about-signage-overlay__text {
    padding: var(--space-6) var(--space-4)
}

@media(min-width:640px) {
    .about-signage-overlay__image {
        height: 360px
    }
}

@media(min-width:860px) {
    .about-signage-overlay {
        display: grid;
        position: relative
    }

    .about-signage-overlay:before {
        content: "";
        position: absolute;
        inset: 0;
        background: linear-gradient(to right, #0f090438, #0f090400 44%);
        z-index: 1;
        pointer-events: none
    }

    .about-signage-overlay:after {
        content: "";
        position: absolute;
        inset: 0;
        background: linear-gradient(to left, #ede8dff7, #ede8dfd1 20%, #ede8df59 48%, #ede8df0d 65%, #ede8df00 72%);
        z-index: 1;
        pointer-events: none
    }

    .about-signage-overlay__image {
        grid-row: 1;
        grid-column: 1;
        height: 440px;
        z-index: 0
    }

    .about-signage-overlay__text {
        grid-row: 1;
        grid-column: 1;
        align-self: center;
        justify-self: end;
        z-index: 2;
        max-width: 500px;
        margin-right: var(--space-8);
        background: #f7f4ee14;
        border-left: 1px solid rgba(138, 112, 64, .14);
        padding: var(--space-5) var(--space-6) var(--space-5) var(--space-5)
    }
}

@media(prefers-reduced-motion:no-preference) {
    .about-signage-overlay__image {
        animation: aboutBannerDrift 40s ease-in-out infinite alternate;
        transform-origin: left center
    }
}

@keyframes aboutBannerDrift {
    0% {
        transform: scale(1)
    }

    to {
        transform: scale(1.025) translate3d(.5%, -.3%, 0)
    }
}

@media(prefers-reduced-motion:reduce) {
    .about-signage-overlay__image {
        animation: none;
        transform: none
    }
}

.about-details {
    display: grid;
    grid-template-columns: 1fr;
    gap: var(--space-7)
}

@media(min-width:640px) {
    .about-details {
        grid-template-columns: 1fr 1fr;
        gap: var(--space-8);
        align-items: start
    }
}

.about-details .ruled-heading {
    margin-top: 0
}

.about-values__header {
    margin-bottom: var(--space-6);
    max-width: 54ch
}

.about-values__heading {
    font-family: var(--font-serif);
    font-weight: 400;
    font-size: var(--text-3xl);
    color: var(--color-deep-ink);
    margin-bottom: var(--space-4)
}

.about-values__intro {
    font-size: var(--text-lg);
    color: var(--color-charcoal);
    line-height: 1.65
}

.about-values__grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: var(--space-6)
}

@media(min-width:768px) {
    .about-values__grid {
        grid-template-columns: 1fr 1fr;
        gap: var(--space-6) var(--space-7)
    }
}

.about-value {
    border-top: 1px solid var(--color-oxblood);
    padding-top: var(--space-5)
}

.about-value__title {
    font-family: var(--font-serif);
    font-size: var(--text-xl);
    font-weight: 400;
    color: var(--color-oxblood);
    margin-bottom: var(--space-3)
}

.about-value__body {
    font-size: var(--text-base, 1rem);
    color: var(--color-charcoal);
    line-height: 1.7
}

.about-lead {
    font-family: var(--font-serif);
    font-size: var(--text-xl);
    line-height: 1.65;
    color: var(--color-deep-ink);
    margin-bottom: var(--space-5);
    max-width: 52ch
}

.about-lead--secondary {
    font-size: var(--text-lg);
    color: var(--color-charcoal)
}

.ruled-heading {
    font-family: var(--font-serif);
    font-size: var(--text-xl);
    font-weight: 400;
    color: var(--color-deep-ink);
    display: flex;
    align-items: center;
    gap: var(--space-4);
    margin-top: var(--space-7);
    margin-bottom: var(--space-4)
}

.ruled-heading:after {
    content: "";
    display: block;
    flex: 1;
    height: 1px;
    background-color: var(--color-portland-stone)
}

.expertise-index {
    list-style: none;
    padding: 0;
    margin: var(--space-5) 0 0
}

.expertise-index__row {
    display: grid;
    grid-template-columns: 1fr 1.5rem;
    gap: var(--space-2) var(--space-4);
    padding-block: var(--space-5);
    border-top: 1px solid var(--color-portland-stone);
    text-decoration: none;
    color: inherit;
    align-items: start;
    transition: background-color .28s ease, transform .28s ease
}

.expertise-index>li:last-child .expertise-index__row {
    border-bottom: 1px solid var(--color-portland-stone)
}

.expertise-index__number {
    font-family: var(--font-sans);
    font-size: var(--text-xs);
    font-weight: 600;
    letter-spacing: .1em;
    color: var(--color-aged-brass);
    padding-top: 5px
}

.expertise-index__body {
    display: flex;
    flex-direction: column;
    gap: var(--space-2)
}

.expertise-index__title {
    font-family: var(--font-serif);
    font-size: var(--text-xl);
    color: var(--color-deep-ink);
    line-height: 1.2;
    transition: color var(--transition)
}

@media(min-width:640px) {
    .expertise-index__title {
        font-size: var(--text-2xl)
    }
}

.expertise-index__summary {
    font-family: var(--font-sans);
    font-size: var(--text-sm);
    color: var(--color-warm-grey);
    line-height: 1.65;
    max-width: 62ch;
    margin: 0
}

.expertise-index__arrow {
    font-size: var(--text-sm);
    color: var(--color-aged-brass);
    opacity: 0;
    transform: translate(-4px);
    transition: opacity var(--transition), transform var(--transition);
    padding-top: 7px;
    text-align: right
}

.expertise-index__row:hover {
    background-color: #6b22320a;
    transform: translate(2px)
}

.expertise-index__row:hover .expertise-index__title {
    color: var(--color-oxblood)
}

.expertise-index__row:hover .expertise-index__summary {
    color: var(--color-charcoal)
}

.expertise-index__row:hover .expertise-index__arrow {
    opacity: 1;
    transform: translate(0)
}

.expertise-index__row:focus-visible {
    outline: 2px solid var(--color-clay);
    outline-offset: 3px;
    border-radius: var(--radius-sm)
}

.expertise-index--dark .expertise-index__row {
    border-top-color: #ffffff17;
    color: var(--color-chalk)
}

.expertise-index--dark>li:last-child .expertise-index__row {
    border-bottom-color: #ffffff17
}

.expertise-index--dark .expertise-index__title {
    color: var(--color-chalk)
}

.expertise-index--dark .expertise-index__summary {
    color: var(--color-portland-stone)
}

.expertise-index--dark .expertise-index__number,
.expertise-index--dark .expertise-index__arrow {
    color: var(--color-aged-brass)
}

.expertise-index--dark .expertise-index__row:hover {
    background-color: #ffffff0a;
    transform: translate(2px)
}

.expertise-index--dark .expertise-index__row:hover .expertise-index__title {
    color: var(--color-aged-brass)
}

.expertise-index--dark .expertise-index__row:hover .expertise-index__summary {
    color: var(--color-chalk)
}

.expertise-index--dark .expertise-index__row:focus-visible {
    outline-color: var(--color-aged-brass)
}

.contact-block {
    display: grid;
    grid-template-columns: 1fr;
    gap: var(--space-5);
    margin-top: var(--space-3);
    max-width: 520px
}

@media(min-width:540px) {
    .contact-block {
        grid-template-columns: 1fr 1fr
    }
}

.contact-block__label {
    font-family: var(--font-sans);
    font-size: var(--text-xs);
    font-weight: 600;
    letter-spacing: .12em;
    text-transform: uppercase;
    color: var(--color-aged-brass);
    margin-bottom: var(--space-3);
    max-width: none
}

.contact-block__email {
    font-family: var(--font-serif);
    font-size: var(--text-xl);
    color: var(--color-deep-ink);
    text-decoration: none;
    border-bottom: 1px solid var(--color-portland-stone);
    padding-bottom: 3px;
    display: inline-block;
    transition: color var(--transition), border-color var(--transition)
}

.contact-block__email:hover {
    color: var(--color-clay);
    border-color: var(--color-clay);
    opacity: 1
}

.contact-block__address {
    font-style: normal;
    font-family: var(--font-serif);
    font-size: var(--text-lg);
    color: var(--color-deep-ink);
    line-height: 1.7;
    max-width: none
}

.contact-editorial {
    display: grid;
    grid-template-columns: 1fr
}

.contact-editorial__image {
    display: none
}

@media(min-width:860px) {
    .contact-editorial {
        grid-template-columns: 1fr 36%;
        gap: var(--space-8);
        align-items: start
    }

    .contact-editorial__image {
        display: block;
        overflow: clip;
        border-top: 1px solid var(--color-portland-stone)
    }

    .contact-editorial__image img {
        width: 100%;
        height: 460px;
        object-fit: cover;
        object-position: center 40%;
        display: block
    }
}

.contact-doorway-strip {
    overflow: hidden;
    line-height: 0;
    border-top: 1px solid var(--color-portland-stone)
}

.contact-doorway-strip img {
    width: 100%;
    height: 240px;
    object-fit: cover;
    object-position: center 40%;
    display: block
}

@media(min-width:640px) {
    .contact-doorway-strip img {
        height: 320px
    }
}

@media(min-width:900px) {
    .contact-doorway-strip img {
        height: 360px
    }
}

.practice-layout {
    display: grid;
    grid-template-columns: 1fr;
    gap: var(--space-7) var(--space-8)
}

@media(min-width:900px) {
    .practice-layout {
        grid-template-columns: 1fr 220px;
        align-items: start
    }
}

.practice-aside {
    display: none
}

@media(min-width:900px) {
    .practice-aside {
        display: block;
        border-left: 1px solid var(--color-portland-stone);
        padding-left: var(--space-6)
    }
}

.practice-facts {
    display: flex;
    flex-direction: column;
    gap: var(--space-5)
}

.practice-facts__label {
    font-family: var(--font-sans);
    font-size: var(--text-xs);
    font-weight: 600;
    letter-spacing: .1em;
    text-transform: uppercase;
    color: var(--color-aged-brass);
    margin-bottom: var(--space-2);
    max-width: none
}

.practice-facts__value {
    font-family: var(--font-serif);
    font-size: var(--text-sm);
    color: var(--color-deep-ink);
    line-height: 1.65;
    max-width: none
}

.nav-panel-toggle {
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: 5px;
    width: 36px;
    height: 36px;
    padding: 6px;
    background: none;
    border: none;
    cursor: pointer;
    flex-shrink: 0
}

.nav-panel-toggle__line {
    display: block;
    width: 100%;
    height: 1px;
    background-color: #551827;
    transition: background-color var(--transition)
}

.nav-panel-toggle:hover {
    background: #6b223212;
    border-radius: 2px
}

.nav-panel-toggle:hover .nav-panel-toggle__line {
    background-color: var(--color-oxblood)
}

.nav-panel-toggle:focus-visible {
    outline: 2px solid var(--color-clay);
    outline-offset: 4px;
    border-radius: var(--radius-sm)
}

.nav-panel__backdrop {
    position: fixed;
    inset: 0;
    background: #0a04028c;
    opacity: 0;
    pointer-events: none;
    transition: opacity .32s ease;
    z-index: 199
}

.nav-panel__backdrop.is-open {
    opacity: 1;
    pointer-events: auto
}

.nav-panel {
    position: fixed;
    top: 0;
    right: 0;
    height: 100%;
    width: 300px;
    max-width: 88vw;
    background-color: var(--color-umber);
    border-left: 2px solid var(--color-oxblood);
    transform: translate(100%);
    transition: transform .32s ease;
    z-index: 200;
    overflow-y: auto;
    display: flex;
    flex-direction: column
}

.nav-panel.is-open {
    transform: translate(0)
}

@media(prefers-reduced-motion:reduce) {

    .nav-panel,
    .nav-panel__backdrop {
        transition: none
    }
}

.nav-panel__inner {
    display: flex;
    flex-direction: column;
    padding: var(--space-5) var(--space-6) var(--space-7);
    gap: 0;
    height: 100%
}

.nav-panel__header {
    display: flex;
    justify-content: flex-end;
    margin-bottom: var(--space-6)
}

.nav-panel__close {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 34px;
    height: 34px;
    background: none;
    border: 1px solid rgba(255, 255, 255, .15);
    color: var(--color-portland-stone);
    cursor: pointer;
    font-size: 1rem;
    line-height: 1;
    transition: color var(--transition), border-color var(--transition)
}

.nav-panel__close:hover {
    color: var(--color-chalk);
    border-color: #ffffff59
}

.nav-panel__close:focus-visible {
    outline: 2px solid var(--color-aged-brass);
    outline-offset: 3px
}

.nav-panel__section-label {
    font-family: var(--font-sans);
    font-size: var(--text-xs);
    font-weight: 600;
    letter-spacing: .14em;
    text-transform: uppercase;
    color: #968c828c;
    margin-bottom: var(--space-4);
    max-width: none
}

.nav-panel__primary {
    list-style: none;
    padding: 0;
    margin-bottom: var(--space-7)
}

.nav-panel__primary li {
    margin-bottom: 0
}

.nav-panel__primary a {
    font-family: var(--font-serif);
    font-size: var(--text-2xl);
    font-weight: 400;
    letter-spacing: -.01em;
    color: var(--color-chalk);
    text-decoration: none;
    display: block;
    padding-block: var(--space-2);
    border-bottom: 1px solid rgba(255, 255, 255, .06);
    transition: color var(--transition), padding-left var(--transition)
}

.nav-panel__primary a:hover {
    color: var(--color-aged-brass);
    padding-left: var(--space-2);
    opacity: 1
}

.nav-panel__primary a:focus-visible {
    outline: 2px solid var(--color-aged-brass);
    outline-offset: 3px;
    border-radius: var(--radius-sm)
}

.nav-panel__sub {
    list-style: none;
    padding: var(--space-1) 0 var(--space-3) var(--space-3);
    margin: 0;
    border-left: 1px solid rgba(138, 112, 64, .22)
}

.nav-panel__sub li {
    margin-bottom: 0
}

.nav-panel__sub a {
    font-family: var(--font-sans);
    font-size: var(--text-xs);
    font-weight: 500;
    letter-spacing: .08em;
    text-transform: uppercase;
    color: var(--color-portland-stone);
    text-decoration: none;
    display: block;
    padding-block: .3rem;
    transition: color var(--transition)
}

.nav-panel__sub a:hover {
    color: var(--color-aged-brass);
    opacity: 1
}

.nav-panel__sub a:focus-visible {
    outline: 2px solid var(--color-aged-brass);
    outline-offset: 3px;
    border-radius: var(--radius-sm)
}

.nav-panel__secondary {
    list-style: none;
    padding: 0;
    margin-bottom: var(--space-6)
}

.nav-panel__secondary li {
    margin-bottom: 0
}

.nav-panel__secondary a {
    font-family: var(--font-sans);
    font-size: var(--text-sm);
    letter-spacing: .04em;
    color: var(--color-portland-stone);
    text-decoration: none;
    display: block;
    padding-block: calc(var(--space-2) - 2px);
    transition: color var(--transition)
}

.nav-panel__secondary a:hover {
    color: var(--color-chalk);
    opacity: 1
}

.nav-panel__secondary a:focus-visible {
    outline: 2px solid var(--color-aged-brass);
    outline-offset: 3px;
    border-radius: var(--radius-sm)
}

.nav-panel__contact {
    margin-top: auto;
    padding-top: var(--space-5);
    border-top: 1px solid rgba(255, 255, 255, .07)
}

.nav-panel__contact-label {
    font-family: var(--font-sans);
    font-size: var(--text-xs);
    font-weight: 600;
    letter-spacing: .12em;
    text-transform: uppercase;
    color: #968c828c;
    margin-bottom: var(--space-3);
    max-width: none
}

.nav-panel__email {
    font-family: var(--font-serif);
    font-size: var(--text-base);
    color: var(--color-chalk);
    text-decoration: none;
    border-bottom: 1px solid rgba(138, 112, 64, .4);
    padding-bottom: 2px;
    display: inline-block;
    transition: color var(--transition), border-color var(--transition)
}

.nav-panel__email:hover {
    color: var(--color-aged-brass);
    border-color: var(--color-aged-brass);
    opacity: 1
}

.nav-panel__email:focus-visible {
    outline: 2px solid var(--color-aged-brass);
    outline-offset: 3px
}

.nav-panel__address {
    font-style: normal;
    font-size: var(--text-sm);
    color: #968c82a6;
    line-height: 1.7;
    margin-top: var(--space-3);
    max-width: none
}

.reveal {
    opacity: 0;
    transform: translateY(12px);
    transition: opacity .6s ease, transform .6s ease
}

.reveal.is-revealed {
    opacity: 1;
    transform: translateY(0)
}

.reveal--delay-1 {
    transition-delay: 80ms
}

.reveal--delay-2 {
    transition-delay: .16s
}

.reveal--delay-3 {
    transition-delay: .24s
}

.reveal--delay-4 {
    transition-delay: .32s
}

.reveal .rule-accent {
    width: 0;
    transition: width .5s ease .12s
}

.reveal.is-revealed .rule-accent {
    width: 40px
}

@media(prefers-reduced-motion:reduce) {
    .reveal {
        opacity: 1;
        transform: none;
        transition: none
    }

    .reveal .rule-accent {
        width: 40px;
        transition: none
    }
}