:root {
  --brand: #8d001b;
  --white: #fff;
  --black: #000;
  --muted: #f5f5f5;
  --font-serif: "Times New Roman", Times, "Nimbus Roman No9 L", "Liberation Serif", "Noto Serif", serif;
  --font-georgia: Georgia, "Times New Roman", Times, "Nimbus Roman No9 L", "Liberation Serif", "Noto Serif", serif;
  --content-width: 1720px;
  --page-padding: clamp(20px, 5vw, 100px);
  --section-space: clamp(72px, 9vw, 150px);
  --content-gap: clamp(32px, 3.33vw, 64px);
  --cta-gap: clamp(32px, 2.9vw, 56px);
  --card-gap: clamp(16px, 1.67vw, 32px);
  --icon-stroke: 1.5px;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { min-height: 100%; margin: 0; color: var(--black); background: var(--white); font-family: var(--font-serif); }
.font-georgia { font-family: var(--font-georgia); font-style: italic; }
img { display: block; max-width: 100%; }
a { color: inherit; }
button, a { -webkit-tap-highlight-color: transparent; }
:focus-visible { outline: 2px solid var(--brand); outline-offset: 4px; }
.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; left: 16px; top: -60px; z-index: 100; padding: 12px 18px; background: var(--white); color: var(--brand); transition: top .2s; }
.skip-link:focus { top: 16px; }

.icon { display: inline-block; flex: 0 0 auto; color: currentColor; fill: none; stroke: currentColor; stroke-width: var(--icon-stroke); stroke-linecap: round; stroke-linejoin: round; }
.icon-arrow-up-right { width: 16px; height: 16px; }
.icon-arrow-down { width: 12px; height: 16px; opacity: .82; }

.site-header { height: 82px; padding: 0 var(--page-padding); display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; background: var(--white); position: relative; z-index: 20; }
.brand img { width: 129px; height: 64px; object-fit: contain; }
.brand { grid-column: 1; justify-self: start; }
.primary-nav { grid-column: 2; display: flex; align-items: center; gap: clamp(30px, 3.35vw, 68px); font-size: 20px; }
.primary-nav a { text-decoration: none; transition: color .2s ease, background .2s ease; }
.primary-nav a:not(.nav-cta):hover { color: var(--brand); }
.primary-nav a[aria-current="page"] { color: var(--brand); }
.nav-cta { width: 178px; height: 48px; padding: 0; display: inline-flex; align-items: center; justify-content: center; gap: 10px; background: var(--brand); color: var(--white); position: absolute; right: var(--page-padding); top: 50%; transform: translateY(-50%); }
.nav-cta:hover { background: var(--black); }
.menu-toggle { display: none; }
.brand-panel { background: var(--brand); color: var(--white); }

.consultant-grid { max-width: var(--content-width); margin: auto; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--card-gap); }
.consultant-card { min-height: 272px; padding: 32px 38px 30px; display: flex; flex-direction: column; border: 1px solid #d9d9d9; border-top: 5px solid var(--brand); background: var(--white); color: var(--black); }
.consultant-card h3 { min-height: 34px; margin: 0; font-size: clamp(26px, 2vw, 34px); font-weight: 400; letter-spacing: -.02em; }
.consultant-role { min-height: 41px; margin: 12px 0 0; color: var(--brand); font-family: var(--font-georgia); font-size: 15px; font-weight: 700; letter-spacing: .03em; line-height: 1.35; font-style: italic; }
.consultant-detail { margin: 0; padding-top: 22px; border-top: 1px solid #d9d9d9; font-size: 20px; line-height: 1.46; }
.consultant-card.featured { grid-column: 1 / -1; width: 100%; justify-self: stretch; }

.site-footer { background: var(--black); color: var(--white); border-top: 1px solid #292929; }
.footer-inner { width: min(100%, 1920px); margin-inline: auto; padding: 56px var(--page-padding) 28px; }
.footer-primary { padding-bottom: 46px; display: flex; justify-content: space-between; align-items: flex-start; gap: clamp(56px, 9vw, 150px); border-bottom: 1px solid #363636; }
.footer-brand { display: inline-block; flex: 0 0 auto; }
.footer-brand img { width: 154px; height: 76px; object-fit: contain; filter: brightness(0) invert(1); }
.footer-navigation { width: min(100%, 660px); display: grid; grid-template-columns: repeat(3, minmax(130px, 1fr)); gap: clamp(30px, 4vw, 72px); }
.footer-group h2 { margin: 0 0 19px; color: #d79aa6; font-family: var(--font-georgia); font-size: 12px; font-style: normal; font-weight: 700; letter-spacing: .16em; line-height: 1.2; text-transform: uppercase; }
.footer-group nav { display: flex; flex-direction: column; align-items: flex-start; gap: 12px; }
.footer-group a { color: #d0d0d0; font-size: 16px; line-height: 1.3; text-decoration: none; text-underline-offset: 4px; transition: color .2s ease; }
.footer-group a:hover { color: var(--white); text-decoration: underline; }
.footer-secondary { padding-top: 26px; display: flex; justify-content: space-between; align-items: center; gap: 32px; }
.footer-copyright { margin: 0; color: #aaa; font-size: 14px; line-height: 1.5; }
.social-links { display: flex; align-items: center; gap: 14px; }
.social-link { width: 36px; height: 36px; display: grid; place-items: center; color: #d0d0d0; border: 1px solid #4a4a4a; border-radius: 50%; transition: color .2s ease, border-color .2s ease, transform .2s ease; }
.social-link:hover { color: var(--white); border-color: #d79aa6; transform: translateY(-2px); }
.social-link svg { width: 16px; height: 16px; fill: currentColor; }
.social-link[href="#"] { cursor: default; }

.reveal { opacity: 0; transform: translateY(28px); transition: opacity .75s ease, transform .75s cubic-bezier(.2,.7,.2,1); }
.reveal.is-visible { opacity: 1; transform: translateY(0); }

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
  .reveal { opacity: 1; transform: none; }
}
