/* Shared editorial components; keep the site's existing type and mauve palette. */
.resource-page { max-width: 80rem; margin-inline: auto; padding: 2rem 2rem 6rem; }
.resource-breadcrumb { font-size: .875rem; color: #5c4758; }
.resource-breadcrumb ol { display: flex; flex-wrap: wrap; gap: .5rem; }
.resource-breadcrumb li + li::before { content: '/'; margin-right: .5rem; color: #80667a; }
.resource-breadcrumb a, .resource-body a { text-decoration: underline; text-underline-offset: .2em; }
.resource-header { padding-block: 3.5rem; border-bottom: 1px solid #6b4b6326; margin-bottom: 3rem; }
.resource-eyebrow { color: #6b4b63; margin-bottom: 1.5rem; }
.resource-header h1 { max-width: 24ch; font-size: clamp(2.1rem, 4.5vw, 3.75rem); font-weight: 400; letter-spacing: -.035em; line-height: 1.15; text-wrap: pretty; color: #171717; }
.resource-intro { max-width: 58ch; margin-top: 1.75rem; font-size: 1.125rem; line-height: 1.8; color: #52525b; text-wrap: pretty; }
.resource-action { margin-top: 2rem; }
.resource-action a { display: inline-flex; min-height: 3rem; align-items: center; padding: .75rem 1rem; background: #6b4b63; color: white; }
.resource-grid { display: grid; grid-template-columns: minmax(0, 1fr); gap: 3rem; }
.resource-contents { font-size: 1rem; }
.resource-contents > p { font-weight: 500; margin-bottom: 1rem; }
.resource-contents li + li { margin-top: .8rem; }
.resource-contents a { color: #62465b; text-underline-offset: .25em; }
.resource-contents a:hover { text-decoration: underline; }
.resource-body { min-width: 0; max-width: 72ch; font-size: 1rem; line-height: 1.85; color: #41414a; }
.resource-body > * + * { margin-top: 3rem; }
.resource-body section > * + *, .resource-note > * + * { margin-top: 1.25rem; }
.resource-body h2 { font-size: 1.65rem; font-weight: 400; letter-spacing: -.02em; line-height: 1.3; color: #171717; text-wrap: balance; scroll-margin-top: 2rem; }
.resource-body h3 { font-size: 1.2rem; font-weight: 500; color: #171717; margin-top: 1.5rem; }
.resource-body p { text-wrap: pretty; }
.resource-body a { color: #62405a; }
.resource-body a:hover, .resource-breadcrumb a:hover { color: #171717; }
.resource-body ul, .resource-body ol { padding-left: 1.4rem; list-style: disc; }
.resource-body ol { list-style: decimal; }
.resource-body li + li { margin-top: .75rem; }
.resource-body strong { font-weight: 600; color: #27272a; }
.resource-note { background: #6b4b630a; border-left: 3px solid #6b4b63; padding: 1.5rem; }
.resource-table { overflow-x: auto; margin-block: 2rem; }
.resource-table table { width: 100%; border-collapse: collapse; font-size: .95rem; }
.resource-table caption { text-align: left; color: #171717; font-weight: 500; margin-bottom: 1rem; }
.resource-table th, .resource-table td { vertical-align: top; text-align: left; padding: 1rem .75rem; border-bottom: 1px solid #6b4b6326; min-width: 9rem; }
.resource-table th { font-weight: 500; color: #27272a; }
.resource-table thead th { white-space: nowrap; }
.resource-body details { border-bottom: 1px solid #6b4b6326; padding-block: 1rem; }
.resource-body summary { cursor: pointer; font-weight: 500; color: #27272a; }
.resource-body details p { margin-top: 1rem; }
.resource-cta { border-top: 1px solid #6b4b6340; padding-top: 2rem; }
.resource-cta > p:last-child { font-weight: 500; }
.resource-page a:focus-visible, .resource-page summary:focus-visible, .resource-table:focus-visible { outline: 2px solid #6b4b63; outline-offset: 4px; }
.resource-cards { display: grid; gap: 2rem; margin-top: 2rem; }
.resource-card { border-top: 1px solid #6b4b6333; padding-top: 1.5rem; }
.resource-card h3 { font-size: 1.35rem; font-weight: 400; letter-spacing: -.02em; }
.resource-card h3 a { text-decoration: underline; text-underline-offset: .2em; }
.resource-card p { margin-top: .75rem; line-height: 1.75; color: #52525b; }
.resource-hub section + section { margin-top: 4rem; }
.resource-hub h2 { font-size: 2rem; font-weight: 400; letter-spacing: -.025em; }
@media (min-width: 64rem) {
 .resource-grid { grid-template-columns: minmax(12rem, 1fr) minmax(0, 3fr); gap: 4rem; }
 .resource-contents { align-self: start; position: sticky; top: 2rem; font-size: .9rem; }
 .resource-service .resource-header, .resource-industry .resource-header { padding-block: 4.5rem; }
 .resource-cards { grid-template-columns: repeat(2, minmax(0,1fr)); gap: 3rem; }
}
@media (max-width: 40rem) {
 .resource-page { padding-inline: 1.5rem; }
 .resource-breadcrumb { font-size: 1rem; }
 .resource-header { padding-block: 2.5rem; }
 .resource-contents { padding-bottom: 2rem; border-bottom: 1px solid #6b4b6326; }
}

.resource-project { margin-top: 2.5rem; max-width: 52rem; }
.resource-project img { display: block; width: 100%; height: auto; border: 1px solid #6b4b6326; }
.resource-project figcaption { margin-top: .75rem; font-size: 1rem; color: #62405a; }
.resource-project a { text-underline-offset: .2em; }
.resource-project figcaption a { text-decoration: underline; }
