/* Approved shared header and footer standards — October 12, 2026. */
/* Both pages use the homepage header geometry and fluid edge spacing. */
@media screen {
  .hdr > .wrap {
    max-width: none;
    padding-inline: calc(clamp(8px, .9vw, 14px) + clamp(20px, 3.4vw, 52px));
    gap: clamp(18px, 2.2vw, 36px);
  }
  .hdr .logo { flex: none; margin-right: auto; }
  .hdr .logo img { width: clamp(136px, 11vw, 166px); }
}
@media screen and (min-width: 1001px) {
  .hdr .nav { gap: clamp(16px, 1.9vw, 30px); }
  .hdr .nav > a[href="investors.html"] { margin-left: 0; padding-left: clamp(16px, 1.9vw, 30px); }
  .hdr .nav > a[href="investors.html"]::after { left: clamp(16px, 1.9vw, 30px); }
  .hdr .nav .hero-talk { margin-left: clamp(2px, .3vw, 6px); }
}

/* Approved homepage footer: identity, navigation and contact routes. */
.footer-v2{background:var(--ink);color:#fff;padding:64px 0 26px}.footer-v2 a{text-decoration:none;color:inherit}.footer-v2-top{display:grid;grid-template-columns:1.15fr .8fr 1.1fr;gap:clamp(30px,5vw,72px)}.footer-identity img{width:210px;max-width:100%;height:auto;filter:brightness(0) invert(1)}.footer-identity p{font:400 clamp(23px,2.3vw,30px)/1.28 var(--serif);color:#e2e8f1;margin-top:27px}.footer-label{font-size:10px;letter-spacing:.18em;text-transform:uppercase;color:#9aabc3;margin-bottom:23px;font-weight:600}.footer-v2 nav a{display:table;font-size:14px;line-height:1.5;margin:0 0 10px;color:#e2e8f1}.footer-v2 a:hover{color:#fff;text-decoration:underline;text-underline-offset:5px}.footer-email{display:inline-block;font-size:clamp(15px,1.4vw,19px);padding-bottom:12px;border-bottom:1px solid #ffffff35;overflow-wrap:anywhere}.footer-linkedin{display:flex;align-items:center;width:44px;height:44px;margin-top:14px;color:#fff!important}.footer-linkedin svg{display:block;width:26px;height:26px}.footer-v2-bottom{display:flex;justify-content:space-between;align-items:center;gap:22px;margin-top:52px;border-top:1px solid #ffffff22;padding-top:24px;color:#a7b5c9;font-size:12px}.footer-v2-bottom a{color:#dbe3ed}.footer-v2-bottom a span{margin-left:18px}.footer-v2 :focus-visible{outline-color:#fff}
@media(max-width:760px){.footer-v2{padding-top:44px}.footer-v2-top{grid-template-columns:1fr 1fr;gap:36px 22px}.footer-identity{grid-column:1/-1;display:flex;justify-content:space-between;align-items:center;gap:24px}.footer-identity img{width:175px}.footer-identity p{font-size:24px;margin:0}.footer-connect{min-width:0}.footer-v2-bottom{margin-top:34px}.footer-email{font-size:15px}}
@media(max-width:480px){.footer-identity{display:block}.footer-identity p{margin-top:25px}.footer-v2-top{grid-template-columns:1fr;gap:32px}.footer-identity{grid-column:auto}.footer-label{margin-bottom:16px}.footer-v2 nav{display:grid;grid-template-columns:1fr 1fr;gap:0 16px}.footer-v2 nav .footer-label{grid-column:1/-1}.footer-v2 nav a{font-size:14px}.footer-v2-bottom{align-items:flex-start;font-size:11px;gap:12px}.footer-v2-bottom a{white-space:nowrap}}


/* Compact footer controls echo the team biography links. */
.footer-v2 nav .footer-investors {
  display: flex; align-items: center; gap: 7px; width: fit-content;
}
.footer-v2 .footer-arrow {
  display: inline-grid; place-items: center; flex: 0 0 20px;
  width: 20px; height: 20px; border: 1px solid rgba(255,255,255,.55);
  border-radius: 50%; color: #fff; transition: background .3s, color .3s;
}
.footer-v2 .footer-arrow svg {
  width: 10px; height: 10px; transform-origin: center;
  transition: transform .65s var(--ease);
}
.footer-v2 .footer-investors:focus-visible { text-decoration: none; }
.footer-v2 .footer-investors:focus-visible > span:first-child { text-decoration: underline; text-underline-offset: 5px; }
.footer-v2 .footer-investors:focus-visible .footer-arrow { background: #fff; color: var(--ink); }
.footer-v2 .footer-investors:focus-visible .footer-arrow svg { transform: rotate(-360deg); }
@media (hover: hover) {
  .footer-v2 .footer-investors:hover { text-decoration: none; }
  .footer-v2 .footer-investors:hover > span:first-child { text-decoration: underline; text-underline-offset: 5px; }
  .footer-v2 .footer-investors:hover .footer-arrow { background: #fff; color: var(--ink); }
  .footer-v2 .footer-investors:hover .footer-arrow svg { transform: rotate(-360deg); }
}
.footer-v2 .footer-email { display: inline-flex; align-items: center; gap: 9px; max-width: 100%; }
.footer-v2 .footer-email-icon { width: 18px; height: 18px; flex: 0 0 18px; }
.footer-v2 .footer-email > span { min-width: 0; }
@media (prefers-reduced-motion: reduce) {
  .footer-v2 .footer-arrow, .footer-v2 .footer-arrow svg { transition: none; }
}


/* Shared numbered section labels: rule, lining numeral, then section name. */
body[data-page] main .eyebrow.section-label {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  font: 600 11px/1.4 var(--sans);
  letter-spacing: .2em;
  text-transform: uppercase;
  color: var(--blue);
}
body[data-page] main .eyebrow.section-label::before {
  content: "";
  display: block;
  flex: 0 0 28px;
  width: 28px;
  height: 1px;
  margin-top: calc((1.4em - 1px) / 2);
  background: var(--cyan);
}
body[data-page] main .eyebrow.section-label > .n {
  flex: none;
  min-width: 18px;
  font: 400 14px/15.4px var(--serif);
  font-variant-numeric: lining-nums tabular-nums;
  transform: translateY(-1px); /* Optical alignment for the Playfair numeral capitals. */
  letter-spacing: 0;
  color: var(--muted);
}
body[data-page] main .eyebrow.section-label > .section-label-text {
  min-width: 0;
}
body[data-page] main .dark .eyebrow.section-label { color: #fff; }
body[data-page] main .dark .eyebrow.section-label > .n { color: var(--mutedw); }

/* Approved second-pass refinements R2, R4 and R5 — October 12, 2026.
   Hero composition and section-heading scale/spacing remain separate proposals. */

/* R2: main calls to action use the homepage's pill, type and single arrow. */
body[data-page] main :is(#intro, #owners, #contact) .btn.btn-standard {
  --ico: 32px;
  --fill-disc: 32px;
  --fill-inset: 10px;
  display: inline-flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  min-height: 52px;
  height: 52px;
  padding: 0 10px 0 24px;
  font: 600 15px/1.2 var(--sans);
}
body[data-page] main .btn-standard > i {
  position: relative;
  z-index: 2;
  display: grid;
  place-items: center;
  flex: 0 0 32px;
  width: 32px;
  height: 32px;
  border-radius: 50%;
  transition: transform .6s cubic-bezier(.4,0,.2,1);
}
body[data-page] main .btn-standard > i > svg { width: 14px; height: 14px; }
body[data-page] main .btn-standard .btn-fill-surface {
  /* Reserve the same arrow and gap as the real label, including phone wraps. */
  padding-right: 56px;
}
body[data-page="investors"] .investor-main :is(#intro, #contact) .btn-standard {
  border-width: 0;
  --button-edge-delay: 0s;
  transition: background-color 0s var(--button-edge-delay), border-color 0s var(--button-edge-delay);
}
body[data-page="investors"] .investor-main .btn-standard > i {
  background: var(--fx);
  color: var(--fx-fg);
}
body[data-page="investors"] .investor-main :is(#intro, #contact) .btn-standard:focus-visible {
  --button-edge-delay: .6s;
  background-color: var(--fill-background);
}
/* Echo the homepage's white outline when the hero button fills blue. */
body[data-page="investors"] .investor-main #intro .btn-standard::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 3;
  border-radius: inherit;
  box-shadow: inset 0 0 0 1px #fff;
  opacity: 0;
  pointer-events: none;
  transition: opacity .6s cubic-bezier(.4,0,.2,1);
}
body[data-page="investors"] .investor-main #intro .btn-standard:focus-visible::after { opacity: 1; }
/* Include the shared header control; its compact dimensions remain unchanged. */
body[data-page] .btn-slow-fill:focus-visible > i { transform: translateX(3px); }
@media (hover: hover) {
  body[data-page] .btn-slow-fill:hover > i { transform: translateX(3px); }
  body[data-page="investors"] .investor-main :is(#intro, #contact) .btn-standard:hover {
    --button-edge-delay: .6s;
    background-color: var(--fill-background);
  }
  body[data-page="investors"] .investor-main #intro .btn-standard:hover::after { opacity: 1; }
}
@media (max-width: 720px) {
  body[data-page] main :is(#intro, #owners, #contact) .btn.btn-standard {
    max-width: 100%;
    height: auto;
    padding-block: 9px;
    white-space: normal;
  }
}

/* R4: shared body grey and ECP-blue major headings on light sections. */
body[data-page="home"] #owners { --w-muted: var(--muted); }
body[data-page="investors"] .investor-main { --muted: #5A6678; }
body[data-page="investors"] .investor-main .pw-section { --pw-muted: var(--muted); }
body[data-page="home"] #people .h2,
body[data-page="home"] #contact .h2 { color: var(--blue); }

/* R5: use the existing once-only reveal observer, with common easing.
   Existing stagger delays, film behaviour and operating-panel motion are retained. */
html.js body[data-page] main .rv.intro-reveal {
  transition-duration: .9s;
  transition-timing-function: cubic-bezier(.2,.7,.2,1);
}
html.js body[data-page] main .rv.intro-reveal.d1 { transition-delay: .12s; }
html.js body[data-page] main .rv.intro-reveal.d2 { transition-delay: .24s; }
html.js body[data-page] main .rv.intro-reveal.d3 { transition-delay: .36s; }
@media (prefers-reduced-motion: reduce) {
  body[data-page] main .btn-standard > i,
  body[data-page="investors"] .investor-main :is(#intro, #contact) .btn-standard,
  body[data-page="investors"] .investor-main #intro .btn-standard::after,
  html.js body[data-page] main .rv.intro-reveal { transition: none; }
}

/* R3 approved October 12: common major-heading scale and label spacing. */
body[data-page] main :is(#owners-t,#approach-t,#companies-t,#people-t,#contact-t,#purpose-title,#thinking-title,#operating-title,#alignment-title) {
  font-size: clamp(36px,4.3vw,60px) !important;
  line-height: 1.08 !important;
  margin-top: 0 !important;
}
body[data-page] main .eyebrow.section-label,
body[data-page="home"] #contact .contact-copy > .eyebrow {
  margin-bottom: 28px !important;
}

/* Homepage v3: matching dash lists for owner and investor sectors. */
.fit-card .sector-list, .pv-criteria .sector-list { list-style: none; margin: 0; padding: 0; }
.fit-card .sector-list li, .pv-criteria .sector-list li { position: relative; margin: 0; padding-inline-start: .85em; }
.fit-card .sector-list li::before, .pv-criteria .sector-list li::before { content: "-"; position: absolute; inset-inline-start: 0; }
