/*
Theme Name: Signal Ridge
Theme URI: https://signalridgevp.com
Author: Signal Ridge
Author URI: https://signalridgevp.com
Description: A block theme for Signal Ridge — restructuring, operating leadership and capital. Warm paper, editorial serif, copper accent, and a contour-line motif. Ships with block patterns for every homepage section.
Requires at least: 6.5
Tested up to: 6.8
Requires PHP: 7.4
Version: 1.0.9
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: signal-ridge
Tags: block-theme, full-site-editing, business, one-column, custom-colors, custom-menu, editor-style, wide-blocks, block-patterns
*/

/* ==========================================================================
   Signal Ridge — design system
   Colours, type and spacing all live in theme.json. This file carries the
   composition classes the patterns use. Prefix is `sr-`.
   ========================================================================== */

:root {
  --sr-ink: var(--wp--preset--color--ink, #101820);
  --sr-paper: var(--wp--preset--color--paper, #F6F4F0);
  --sr-paper-alt: var(--wp--preset--color--paper-alt, #EFECE6);
  --sr-paper-deep: var(--wp--preset--color--paper-deep, #E2DED6);
  --sr-rule: var(--wp--preset--color--rule, #DCD7CE);
  --sr-rule-strong: var(--wp--preset--color--rule-strong, #A39C90);
  --sr-body: var(--wp--preset--color--body-text, #3A423B);
  --sr-muted: var(--wp--preset--color--muted, #55605A);
  --sr-soft: var(--wp--preset--color--soft, #6A6760);
  --sr-copper: var(--wp--preset--color--copper, #A8511C);
  --sr-copper-light: var(--wp--preset--color--copper-light, #C2803F);
  --sr-copper-pale: var(--wp--preset--color--copper-pale, #F9EBDF);
  --sr-cream: var(--wp--preset--color--cream, #FBF7F2);
  --sr-teal: var(--wp--preset--color--teal, #1F4E4A);
  --sr-teal-pale: var(--wp--preset--color--teal-pale, #BFD3CF);
  --sr-slate: var(--wp--preset--color--slate, #9AA4AE);
  --sr-slate-light: var(--wp--preset--color--slate-light, #C9D0D6);
  --sr-slate-mid: var(--wp--preset--color--slate-mid, #8A96A2);
  --sr-hairline: var(--wp--preset--color--hairline, #37424D);
  --sr-hairline-deep: var(--wp--preset--color--hairline-deep, #26313C);
  --sr-gutter: var(--wp--preset--spacing--50, clamp(20px, 5vw, 72px));
  --sr-section: var(--wp--preset--spacing--60, clamp(52px, 8vw, 104px));
  --sr-display: var(--wp--preset--font-family--display, Newsreader, Georgia, serif);
  --sr-mono: var(--wp--preset--font-family--mono, 'IBM Plex Mono', monospace);
}

/* --------------------------------------------------------------------------
   Type scale — pinned, not inherited
   theme.json declares these sizes, but the host rewrites the generated
   presets: the h1/h2/h3 custom properties come out EMPTY (so those headings
   fall back to browser defaults) and the rest are re-derived at roughly
   double the declared size. Re-declaring them on `html:root` wins on
   specificity regardless of stylesheet order and pins the scale to the values
   the design was drawn at. Keep theme.json and this block in step.
   -------------------------------------------------------------------------- */

html:root {
  --wp--preset--font-size--tiny:    11px;
  --wp--preset--font-size--x-small: 13px;
  --wp--preset--font-size--small:   14px;
  --wp--preset--font-size--medium:  15.5px;
  --wp--preset--font-size--large:   17px;
  --wp--preset--font-size--x-large: clamp(17px, 1.1rem + 0.4vw, 20px);
  --wp--preset--font-size--h3:      clamp(21px, 1.1rem + 0.9vw, 27px);
  --wp--preset--font-size--h2:      clamp(30px, 1.4rem + 1.6vw, 44px);
  --wp--preset--font-size--h1:      clamp(38px, 1.6rem + 2.6vw, 66px);
  --wp--preset--font-size--hero:    clamp(41px, 1.6rem + 3.6vw, 82px);
}

/* The host emits `.has-*-font-size { font-size: … !important }`, which would
   otherwise beat the classes below. Restate the ones that matter. */
.sr-lede.has-x-large-font-size { font-size: clamp(17px, 1.1rem + 0.4vw, 20px) !important; }

body { -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility; }

/* --------------------------------------------------------------------------
   WordPress flow margins
   Core emits `:where(.is-layout-flow) > * { margin-block-start: … }` on every
   group. Inside our grid and flex containers that staggers the items (card 2
   sits lower than card 1) and between sections it opens a stripe of body
   background. Every container below manages its own spacing with gap or
   padding, so the flow margin is always wrong there — zero it.
   -------------------------------------------------------------------------- */

.wp-site-blocks > *,
main.wp-block-group > *,
.sr-section > *, .sr-hero > *, .sr-hero__inner > *, .sr-page-hero > *,
.sr-page-hero__main > *, .sr-page-hero__aside > *,
.sr-split > *, .sr-split__intro > *, .sr-split__body > *,
.sr-numbered > *, .sr-numbered__item > *, .sr-numbered__body > *,
.sr-cards > *, .sr-card > *,
.sr-practice > *, .sr-practice__group > *, .sr-practice__items > *,
.sr-steps > *, .sr-step > *,
.sr-cols3 > *, .sr-col > *,
.sr-team > *, .sr-member > *,
.sr-partners > *, .sr-partner > *, .sr-partner__body > *, .sr-partner__meta > *,
.sr-bench > *, .sr-bench__item > *, .sr-bench__body > *,
.sr-stats > *, .sr-stat > *,
.sr-band > *, .sr-band__cell > *,
.sr-cta > *, .sr-cta__text > *,
.sr-header__inner > *, .sr-header__right > *,
.sr-footer > *, .sr-footer__top > *, .sr-footer__cols > *, .sr-footer__col > *,
.sr-facts > *, .sr-fact > *, .sr-toc > *,
.sr-signals > *, .sr-rows > *, .sr-row > * {
  margin-block-start: 0;
  margin-block-end: 0;
}

/* Visible keyboard focus everywhere — the theme's link styles remove underlines. */
a:focus-visible,
button:focus-visible,
[tabindex]:focus-visible {
  outline: 2px solid var(--sr-copper);
  outline-offset: 3px;
}

.sr-screen-reader-text {
  position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px;
  overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0;
}

/* --------------------------------------------------------------------------
   Shared utilities
   -------------------------------------------------------------------------- */

.sr-eyebrow {
  font-family: var(--sr-mono);
  font-size: 11px;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  line-height: 1.4;
  margin: 0;
}
.sr-eyebrow--copper { color: var(--sr-copper); }
.sr-eyebrow--light  { color: var(--sr-copper-light); }
.sr-eyebrow--soft   { color: var(--sr-soft); }
.sr-eyebrow--slate  { color: var(--sr-slate-mid); }

/* Full-bleed section wrapper. Patterns apply this to their outer group. */
.sr-section {
  padding-block: var(--sr-section);
  padding-inline: var(--sr-gutter);
  border-bottom: 1px solid var(--sr-rule);
}
.sr-section--alt    { background: var(--sr-paper-alt); }
.sr-section--ink    { background: var(--sr-ink); color: var(--sr-paper); border-bottom-color: var(--sr-ink); }
.sr-section--copper { background: var(--sr-copper); color: var(--sr-cream); border-bottom-color: var(--sr-copper); }
.sr-section--flush  { padding-block: 0; padding-inline: 0; }

.sr-section--ink :is(h1, h2, h3, h4) { color: var(--sr-paper); }
.sr-section--copper :is(h1, h2, h3, h4) { color: var(--sr-cream); }

.sr-lede { font-size: 17px; line-height: 1.65; color: var(--sr-body); max-width: 68ch; }
.sr-section--ink .sr-lede { color: var(--sr-slate-light); }

/* Buttons */
.sr-btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 10px;
  padding: 16px 28px;
  font-size: 15px; line-height: 1;
  text-decoration: none;
  border: 1px solid transparent;
  transition: background-color .15s ease, color .15s ease, border-color .15s ease;
}
.sr-btn--copper { background: var(--sr-copper); color: var(--sr-paper); }
.sr-btn--copper:hover { background: #7E3C14; color: var(--sr-paper); }
.sr-btn--ink { background: var(--sr-ink); color: var(--sr-paper); padding: 11px 20px; font-size: 14px; }
.sr-btn--ink:hover { background: #24313D; color: var(--sr-paper); }
.sr-btn--outline { border-color: var(--sr-rule-strong); color: var(--sr-ink); }
.sr-btn--outline:hover { border-color: var(--sr-ink); color: var(--sr-ink); }
.sr-btn--on-copper { border-color: var(--sr-cream); color: var(--sr-cream); }
.sr-btn--on-copper:hover { background: var(--sr-cream); color: var(--sr-copper); }

.sr-btn-row { display: flex; flex-wrap: wrap; gap: 16px; align-items: center; }

/* Inline "more" link with arrow */
.sr-more { display: inline-flex; align-items: center; gap: 8px; font-size: 15px; }
.sr-more svg { flex: 0 0 auto; }

/* --------------------------------------------------------------------------
   Header
   -------------------------------------------------------------------------- */

.sr-header {
  background: var(--sr-paper);
  border-bottom: 1px solid var(--sr-rule);
  padding-inline: var(--sr-gutter);
}
.sr-header__inner {
  display: flex; align-items: center; justify-content: space-between; gap: 32px;
  min-height: 88px;
}
.sr-brand__link {
  display: inline-flex; align-items: center; gap: 13px;
  color: var(--sr-ink); text-decoration: none;
}
.sr-brand__name { font-family: var(--sr-display); font-size: 23px; line-height: 1; }
.sr-mark { display: block; color: var(--sr-ink); }

.sr-header__right { display: flex; align-items: center; gap: 28px; }
.sr-header__divider { width: 1px; height: 20px; background: var(--sr-rule); display: block; }
.sr-header__phone { font-family: var(--sr-mono); font-size: 13px; color: var(--sr-ink); text-decoration: none; }
.sr-header__phone:hover { color: var(--sr-copper); }

.sr-header .wp-block-navigation { gap: 30px; }
.sr-header .wp-block-navigation a { text-decoration: none; }
.sr-header .wp-block-navigation .current-menu-item > a {
  border-bottom: 2px solid var(--sr-copper); padding-bottom: 3px;
}

@media (max-width: 1080px) {
  .sr-header__phone, .sr-header__divider { display: none; }
}
@media (max-width: 780px) {
  .sr-header__inner { min-height: 64px; gap: 16px; }
  .sr-brand__name { font-size: 19px; }
  .sr-header__right { gap: 8px; }
  .sr-header .sr-btn--ink { display: none; }
}

/* --------------------------------------------------------------------------
   Hero
   -------------------------------------------------------------------------- */

.sr-hero {
  position: relative; overflow: hidden;
  padding-block: clamp(56px, 9vw, 108px) clamp(52px, 8vw, 96px);
  padding-inline: var(--sr-gutter);
  border-bottom: 1px solid var(--sr-rule);
}
.sr-hero__contours {
  position: absolute; inset: 0; width: 100%; height: 100%;
  pointer-events: none; z-index: 0;
}
.sr-hero__inner { position: relative; z-index: 1; display: flex; flex-direction: column; gap: 36px; max-width: 1080px; }
.sr-hero h1 { max-width: 15ch; text-wrap: pretty; }
.sr-hero .sr-lede { font-size: 20px; line-height: 1.55; max-width: 62ch; }
.sr-hero__note {
  display: flex; align-items: center; gap: 10px;
  color: var(--sr-soft); font-size: 14px; margin: 0;
}
.sr-hero__note::before {
  content: ""; width: 28px; height: 1px; background: #C9C3B8; flex: 0 0 auto;
}

/* Page hero (interior pages) */
.sr-page-hero {
  display: flex; gap: 80px; align-items: flex-start;
  padding-block: clamp(48px, 6vw, 72px) clamp(56px, 7vw, 88px);
  padding-inline: var(--sr-gutter);
  border-bottom: 1px solid var(--sr-rule);
}
.sr-page-hero__main { flex: 1 1 auto; display: flex; flex-direction: column; gap: 28px; max-width: 896px; }
.sr-page-hero__aside { flex: 0 0 320px; }
.sr-breadcrumb { display: flex; align-items: center; gap: 10px; }
.sr-breadcrumb a { color: var(--sr-soft); }
.sr-breadcrumb__sep { color: var(--sr-rule-strong); }

.sr-toc { display: flex; flex-direction: column; border-top: 2px solid var(--sr-ink); padding-top: 24px; }
.sr-toc__label { padding-bottom: 18px; }
.sr-toc a {
  font-size: 15px; color: var(--sr-ink); padding: 11px 0;
  border-bottom: 1px solid #E4E0D8;
}
.sr-toc a:last-child { border-bottom: 0; }

@media (max-width: 900px) {
  .sr-page-hero { flex-direction: column; gap: 40px; }
  .sr-page-hero__aside { flex: 1 1 auto; width: 100%; }
}

/* --------------------------------------------------------------------------
   Stats band
   -------------------------------------------------------------------------- */

.sr-stats {
  display: grid; grid-template-columns: repeat(4, minmax(0, 1fr));
  background: var(--sr-ink); color: var(--sr-paper);
}
.sr-stat {
  display: flex; flex-direction: column; gap: 10px;
  padding: 44px 40px;
  border-right: 1px solid var(--sr-hairline-deep);
}
.sr-stat:last-child { border-right: 0; }
.sr-stat__figure { font-family: var(--sr-display); font-size: 40px; line-height: 1; margin: 0; color: var(--sr-paper); }
/* For a figure that is a short phrase rather than a number. */
.sr-stat__figure--sm { font-size: 26px; line-height: 1.2; }
.sr-stat__label { color: var(--sr-slate); }

@media (max-width: 1080px) {
  .sr-stats { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .sr-stat { padding: 28px 24px; border-bottom: 1px solid var(--sr-hairline-deep); }
  .sr-stat:nth-child(2n) { border-right: 0; }
  .sr-stat:nth-last-child(-n+2) { border-bottom: 0; }
  .sr-stat__figure { font-size: 30px; }
}

/* --------------------------------------------------------------------------
   Split layout: fixed-width intro column + flexible content
   -------------------------------------------------------------------------- */

.sr-split { display: flex; gap: 96px; align-items: flex-start; }
.sr-split__intro { flex: 0 0 460px; display: flex; flex-direction: column; gap: 22px; }
.sr-split__intro--narrow { flex-basis: 380px; }
.sr-split__intro--label { flex-basis: 300px; }
.sr-split__body { flex: 1 1 auto; min-width: 0; display: flex; flex-direction: column; gap: 20px; }
.sr-split--center { align-items: center; }

@media (max-width: 1080px) {
  .sr-split { flex-direction: column; gap: 40px; }
  .sr-split__intro,
  .sr-split__intro--narrow,
  .sr-split__intro--label { flex: 1 1 auto; width: 100%; }
}

/* --------------------------------------------------------------------------
   Numbered list (the three arms, the practice-page work list)
   -------------------------------------------------------------------------- */

.sr-numbered { display: flex; flex-direction: column; }
.sr-numbered__item {
  display: flex; gap: 28px;
  padding-block: 30px;
  border-top: 1px solid var(--sr-rule);
}
.sr-numbered__item:first-child { border-top-color: var(--sr-ink); }
.sr-numbered__item:last-child { border-bottom: 1px solid var(--sr-rule); }
.sr-numbered__num {
  flex: 0 0 auto; font-family: var(--sr-mono); font-size: 13px;
  color: var(--sr-copper); padding-top: 6px; margin: 0;
}
.sr-numbered__body { flex: 1 1 auto; min-width: 0; display: flex; flex-direction: column; gap: 10px; }
.sr-numbered__body p { font-size: 15.5px; line-height: 1.6; color: var(--sr-muted); margin: 0; }

/* Wide variant used on the practice page: number, title, description in 3 columns */
.sr-rows { display: flex; flex-direction: column; }
.sr-row {
  display: flex; gap: 48px; align-items: flex-start;
  padding-block: 34px; border-top: 1px solid #E4E0D8;
}
.sr-row:first-child { border-top-color: var(--sr-ink); }
.sr-row:last-child { border-bottom: 1px solid #E4E0D8; }
.sr-row__num { flex: 0 0 120px; font-family: var(--sr-mono); font-size: 12.5px; color: var(--sr-copper); padding-top: 6px; margin: 0; }
.sr-row__title { flex: 0 0 340px; font-family: var(--sr-display); font-size: 25px; line-height: 1.25; margin: 0; }
.sr-row__text { flex: 1 1 auto; min-width: 0; font-size: 15.5px; line-height: 1.65; color: var(--sr-muted); margin: 0; }

@media (max-width: 900px) {
  .sr-row { flex-wrap: wrap; gap: 12px 24px; }
  .sr-row__num { flex: 0 0 40px; padding-top: 4px; }
  .sr-row__title { flex: 1 1 auto; font-size: 22px; }
  .sr-row__text { flex: 1 1 100%; padding-left: 64px; }
}
@media (max-width: 620px) {
  .sr-row__text { padding-left: 0; }
}

/* --------------------------------------------------------------------------
   Cards
   -------------------------------------------------------------------------- */

.sr-cards { display: grid; gap: 20px; }
.sr-cards--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.sr-cards--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 28px; }
.sr-cards--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }

.sr-card {
  position: relative;
  display: flex; flex-direction: column; gap: 12px;
  padding: 28px; min-height: 168px;
  background: var(--sr-paper);
  border: 1px solid var(--sr-rule);
  color: var(--sr-ink); text-decoration: none;
  transition: border-color .15s ease, transform .15s ease;
}
a.sr-card:hover { border-color: var(--sr-ink); }

/* A card whose title is a link becomes clickable edge to edge. Keeps the
   heading and body text editable as normal blocks in the editor. */
.sr-card:has(.sr-card__title a):hover { border-color: var(--sr-ink); }
.sr-card__title a { color: inherit; text-decoration: none; }
.sr-card__title a::after { content: ""; position: absolute; inset: 0; }

.sr-card__title { font-family: var(--sr-display); font-size: 21px; line-height: 1.25; margin: 0; padding-top: 4px; }
.sr-card__text { font-size: 14px; line-height: 1.55; color: var(--sr-soft); margin: 0; }
.sr-card--compact { padding: 24px; min-height: 150px; }
.sr-card--compact .sr-card__title { font-size: 19px; }
.sr-card--compact .sr-card__text { font-size: 13.5px; line-height: 1.5; }

.sr-card--dark {
  background: transparent; border-color: var(--sr-hairline); color: var(--sr-paper);
  padding: 30px; min-height: 0;
}
.sr-card--dark .sr-card__title { color: var(--sr-paper); font-size: 24px; }
.sr-card--dark .sr-card__text { color: var(--sr-slate); font-size: 14.5px; line-height: 1.6; }

@media (max-width: 1080px) {
  .sr-cards--4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .sr-cards--3 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 680px) {
  .sr-cards--2, .sr-cards--3, .sr-cards--4 { grid-template-columns: 1fr; }
  .sr-card { min-height: 0; }
}

/* Practice-area groups (label + card grid) */
.sr-practice { display: flex; flex-direction: column; gap: 40px; }
.sr-practice__group { display: flex; gap: 48px; }
.sr-practice__label { flex: 0 0 130px; padding-top: 26px; }
.sr-practice__items { flex: 1 1 auto; min-width: 0; }

@media (max-width: 1080px) {
  .sr-practice__group { flex-direction: column; gap: 16px; }
  .sr-practice__label { flex: 1 1 auto; padding-top: 0; }
}

/* Capital callout */
.sr-capital {
  display: flex; align-items: center; gap: 40px;
  padding: 30px 36px;
  background: var(--sr-teal); border: 1px solid var(--sr-teal);
  color: var(--sr-paper); text-decoration: none;
}
.sr-capital__title { font-family: var(--sr-display); font-size: 26px; line-height: 1.2; margin: 0; color: var(--sr-paper); }
.sr-capital__text { font-size: 14.5px; line-height: 1.55; color: var(--sr-teal-pale); margin: 0; max-width: 72ch; }
.sr-capital__body { flex: 1 1 auto; display: flex; flex-direction: column; gap: 10px; }
.sr-capital__title, .sr-capital__text { display: block; }
.sr-capital svg { flex: 0 0 auto; }

@media (max-width: 680px) {
  .sr-capital { flex-direction: column; align-items: flex-start; gap: 20px; padding: 26px 22px; }
}

/* --------------------------------------------------------------------------
   Steps (Diagnose / Stabilize / Rebuild)
   -------------------------------------------------------------------------- */

.sr-steps { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 32px; }
.sr-step {
  display: flex; flex-direction: column; gap: 18px;
  padding-top: 26px; border-top: 2px solid var(--sr-ink);
}
.sr-step__head { display: flex; align-items: baseline; gap: 14px; }
.sr-step__num { font-family: var(--sr-mono); font-size: 12px; color: var(--sr-copper); margin: 0; }
.sr-step__title { font-family: var(--sr-display); font-size: 28px; margin: 0; line-height: 1.15; }
.sr-step p { font-size: 15.5px; line-height: 1.6; color: var(--sr-muted); margin: 0; }

@media (max-width: 900px) { .sr-steps { grid-template-columns: 1fr; gap: 28px; } }

/* Three columns with a top rule (who calls us, related practices) */
.sr-cols3 { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 36px; }
.sr-col { display: flex; flex-direction: column; gap: 14px; padding-top: 24px; border-top: 1px solid var(--sr-rule); }
.sr-section--ink .sr-col { border-top-color: var(--sr-hairline); }
.sr-col h3 { font-family: var(--sr-display); font-size: 23px; margin: 0; }
.sr-col p { font-size: 14.5px; line-height: 1.6; color: var(--sr-muted); margin: 0; }
.sr-section--ink .sr-col p { color: var(--sr-slate); }

@media (max-width: 900px) { .sr-cols3 { grid-template-columns: 1fr; gap: 28px; } }

/* Signals list (when to call us) */
.sr-signals { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 48px; }
.sr-signal { display: flex; gap: 16px; padding-block: 20px; border-bottom: 1px solid var(--sr-rule); }
.sr-signal svg { flex: 0 0 auto; margin-top: 3px; }
.sr-signal p { font-size: 15.5px; line-height: 1.55; color: #2B332E; margin: 0; }

@media (max-width: 780px) { .sr-signals { grid-template-columns: 1fr; } }

/* Same thing as an editable core/list block */
.sr-signals-list {
  list-style: none; margin: 0; padding: 0;
  display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 48px;
}
.sr-signals-list li {
  position: relative;
  padding: 20px 0 20px 32px;
  border-bottom: 1px solid var(--sr-rule);
  font-size: 15.5px; line-height: 1.55; color: #2B332E;
}
.sr-signals-list li::before {
  content: ""; position: absolute; left: 0; top: 25px;
  width: 0; height: 0;
  border-left: 7px solid transparent;
  border-right: 7px solid transparent;
  border-bottom: 12px solid var(--sr-copper);
}
@media (max-width: 780px) { .sr-signals-list { grid-template-columns: 1fr; } }

/* --------------------------------------------------------------------------
   Team
   -------------------------------------------------------------------------- */

/* The team is typographic — no photographs. A rule, an index, a name in the
   display face, and one line of substance. Reads as a decision rather than a
   page waiting on headshots. */
.sr-team { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 32px; }
.sr-member {
  display: flex; flex-direction: column; gap: 18px;
  padding-top: 26px; border-top: 2px solid var(--sr-ink);
}
.sr-member__num { font-family: var(--sr-mono); font-size: 12px; color: var(--sr-copper); margin: 0; }
.sr-member__name { font-family: var(--sr-display); font-size: 26px; line-height: 1.15; margin: 0; }
.sr-member__role { margin: 0; color: var(--sr-soft); }
.sr-member__text { font-size: 14.5px; line-height: 1.6; color: var(--sr-muted); margin: 0; }

@media (max-width: 1080px) { .sr-team { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 560px) { .sr-team { grid-template-columns: 1fr; } }

/* Partner cards (About page) */
.sr-partners { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 40px; }
.sr-partner { display: flex; flex-direction: column; gap: 26px; }
.sr-partner::before { content: ""; display: block; height: 2px; background: var(--sr-ink); }
.sr-partner__body { display: flex; flex-direction: column; gap: 16px; }
.sr-partner__name { font-family: var(--sr-display); font-size: 30px; margin: 0; }
.sr-partner__body p { font-size: 15.5px; line-height: 1.65; margin: 0; }
.sr-partner__lead { color: var(--sr-body); }
.sr-partner__more { color: var(--sr-muted); }
.sr-partner__meta {
  display: flex; flex-direction: column; gap: 10px;
  padding-top: 10px; border-top: 1px solid var(--sr-rule);
}
.sr-partner__meta p { font-size: 14px; line-height: 1.65; color: var(--sr-muted); }

@media (max-width: 900px) { .sr-partners { grid-template-columns: 1fr; gap: 56px; } }

/* Bench (smaller team members) */
.sr-bench { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px 48px; }
.sr-bench__item { display: flex; gap: 24px; padding-block: 28px; border-top: 1px solid var(--sr-rule); }
.sr-bench__item:nth-child(1), .sr-bench__item:nth-child(2) { border-top-color: var(--sr-ink); }
.sr-bench__tick { flex: 0 0 40px; padding-top: 10px; }
.sr-bench__tick::before { content: ""; display: block; width: 28px; height: 2px; background: var(--sr-copper); }
.sr-bench__body { flex: 1 1 auto; min-width: 0; display: flex; flex-direction: column; gap: 10px; }
.sr-bench__body h3 { font-family: var(--sr-display); font-size: 23px; margin: 0; }
.sr-bench__body p { font-size: 14.5px; line-height: 1.6; color: var(--sr-muted); margin: 0; }

@media (max-width: 900px) {
  .sr-bench { grid-template-columns: 1fr; gap: 0; }
  .sr-bench__item:nth-child(2) { border-top-color: var(--sr-rule); }
}

/* Values band / offices band */
.sr-band { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); }
.sr-band--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.sr-band__cell {
  display: flex; flex-direction: column; gap: 14px;
  padding: 56px var(--sr-gutter);
  border-right: 1px solid var(--sr-rule);
}
.sr-band__cell:last-child { border-right: 0; }
.sr-band__cell h2 { font-family: var(--sr-display); font-size: 30px; margin: 0; }
.sr-band__cell p { font-size: 15.5px; line-height: 1.6; color: var(--sr-muted); margin: 0; }
.sr-band--ink { background: var(--sr-ink); color: var(--sr-paper); }
.sr-band--ink .sr-band__cell { border-right-color: var(--sr-hairline-deep); padding-block: 72px; }
.sr-band--ink h2 { color: var(--sr-paper); font-size: 34px; }
.sr-band--ink p { color: var(--sr-slate); font-size: 15.5px; line-height: 1.7; }

@media (max-width: 900px) {
  .sr-band, .sr-band--2 { grid-template-columns: 1fr; }
  .sr-band__cell { border-right: 0; border-bottom: 1px solid var(--sr-rule); padding-block: 40px; }
  .sr-band__cell:last-child { border-bottom: 0; }
  .sr-band--ink .sr-band__cell { border-bottom-color: var(--sr-hairline-deep); }
}

/* Facts stack (About hero aside) */
.sr-facts { display: flex; flex-direction: column; }
.sr-fact { display: flex; flex-direction: column; gap: 6px; padding-block: 22px; border-top: 1px solid var(--sr-rule); }
.sr-fact:first-child { border-top: 2px solid var(--sr-ink); }
.sr-fact:last-child { border-bottom: 1px solid var(--sr-rule); }
.sr-fact__value { font-family: var(--sr-display); font-size: 26px; margin: 0; line-height: 1.2; }

/* --------------------------------------------------------------------------
   CTA
   -------------------------------------------------------------------------- */

.sr-cta { display: flex; align-items: center; justify-content: space-between; gap: 64px; }
.sr-cta__text { display: flex; flex-direction: column; gap: 18px; max-width: 640px; }
.sr-cta__text h2 { font-size: clamp(30px, 4vw, 46px); line-height: 1.1; text-wrap: pretty; }
.sr-cta__text p { font-size: 17px; line-height: 1.6; color: var(--sr-copper-pale); margin: 0; }
.sr-cta__actions { display: flex; flex-direction: column; gap: 14px; flex: 0 0 auto; }
.sr-cta__actions .sr-btn { padding: 18px 34px; font-size: 16px; }

@media (max-width: 900px) {
  .sr-cta { flex-direction: column; align-items: flex-start; gap: 32px; }
  .sr-cta__actions { width: 100%; }
  .sr-cta__actions .sr-btn { width: 100%; }
}

/* --------------------------------------------------------------------------
   Footer
   -------------------------------------------------------------------------- */

.sr-footer {
  background: var(--sr-ink); color: var(--sr-slate);
  padding: 64px var(--sr-gutter) 40px;
}
.sr-footer a { color: var(--sr-slate-light); text-decoration: none; font-size: 14px; }
.sr-footer a:hover { color: var(--sr-paper); }
.sr-footer__top { display: flex; gap: 96px; align-items: flex-start; padding-bottom: 48px; }
.sr-footer__brand { flex: 0 0 330px; display: flex; flex-direction: column; gap: 16px; }
.sr-footer__brand p { font-size: 14px; line-height: 1.6; margin: 0; }
/* The footer carries the full legal name, so it runs longer than the header
   wordmark. Sized to sit on one line in the 330px brand column, and to wrap
   cleanly against the mark rather than centring if it ever does not. */
.sr-footer__wordmark {
  display: inline-flex; align-items: flex-start; gap: 12px;
  color: var(--sr-paper); font-family: var(--sr-display);
  font-size: 17px; line-height: 1.3;
}
.sr-footer__wordmark svg { flex: 0 0 auto; margin-top: 1px; }
.sr-footer__cols { flex: 1 1 auto; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 32px; }
.sr-footer__col { display: flex; flex-direction: column; gap: 12px; }
.sr-footer__col span { font-size: 14px; color: var(--sr-slate-light); }
.sr-footer__bottom {
  display: flex; align-items: center; justify-content: space-between; gap: 24px;
  padding-top: 28px; border-top: 1px solid var(--sr-hairline-deep); font-size: 13px;
}
.sr-footer__legal { display: flex; gap: 24px; }
.sr-footer__legal a { color: var(--sr-slate); font-size: 13px; }

@media (max-width: 1080px) {
  .sr-footer__top { flex-direction: column; gap: 40px; }
  .sr-footer__brand { flex: 1 1 auto; }
  .sr-footer__cols { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 28px; }
}
@media (max-width: 680px) {
  .sr-footer__bottom { flex-direction: column; align-items: flex-start; gap: 16px; }
  /* Comfortable tap targets on small screens */
  .sr-footer__col a, .sr-footer__col span { display: flex; align-items: center; min-height: 44px; }
}

/* --------------------------------------------------------------------------
   Editor niceties — keep the back end legible while editing patterns
   -------------------------------------------------------------------------- */

.editor-styles-wrapper .sr-section--ink,
.editor-styles-wrapper .sr-section--copper,
.editor-styles-wrapper .sr-stats,
.editor-styles-wrapper .sr-footer { color-scheme: dark; }
