/* RC3: shared rhythm, content-led navigation, native video and editorial motion. */
:root {
  --type-display: clamp(36px, 4.8vw, 68px);
  --type-section: clamp(30px, 3.6vw, 50px);
  --type-subheading: clamp(22px, 2.1vw, 28px);
  --type-lead: clamp(18px, 1.65vw, 22px);
  --space-small: 16px;
  --space-medium: 24px;
  --space-large: 40px;
  --layout-gap: clamp(28px, 5vw, 80px);
  --motion-fast: 180ms;
  --motion-standard: 480ms;
  --motion-image: 850ms;
}
:where(h1,h2,h3) { text-wrap: balance; }
:where(p,li) { text-wrap: pretty; }
.page-hero h1, .service-hero h1, .utility-hero h1 {
  font-size: var(--type-display);
  line-height: 1.1;
  font-weight: 400;
  letter-spacing: -.035em;
}
.section > .wrap > h2, .section-heading h2, .scope-intro h2,
.method-intro h2, .video-copy h2, .resource-index h2 {
  font-size: var(--type-section);
  line-height: 1.14;
}
.scope-row h3, .model h3, .step h3 { font-size: var(--type-subheading); line-height: 1.25; }
.page-hero .lead, .service-hero .lead { font-size: var(--type-lead); line-height: 1.65; }
.section-heading, .content-grid, .scope-layout, .faq-layout,
.resource-layout, .candidate-path { gap: var(--layout-gap); }
.page-hero-copy, .video-copy, .video-player { min-width: 0; }
.page-hero-copy .wp-block-buttons { gap: 12px 16px; }
.page-hero-copy h1 { max-width: 17ch; }
.utility-hero h1 { max-width: 24ch; }
.section-heading > :last-child { margin-block-end: 0; }
.chapter-nav { display: grid; gap: 0; margin-top: 28px; max-width: 440px; }
.chapter-nav a {
  position: relative; display: block; padding: 12px 0 12px 20px;
  border-left: 1px solid var(--line); color: var(--muted);
  font-size: 15px; line-height: 1.45; text-decoration: none;
  transition: color var(--motion-fast) ease;
}
.chapter-nav a::before {
  content: ''; position: absolute; left: -1px; top: 0; width: 3px; height: 100%;
  background: var(--blue); transform: scaleY(0); transform-origin: top;
  transition: transform var(--motion-standard) var(--ease);
}
.chapter-nav a[aria-current], .chapter-nav a:hover, .chapter-nav a:focus-visible { color: var(--blue); }
.chapter-nav a[aria-current]::before { transform: scaleY(1); }
.scope-row, .resource-chapter, .step { scroll-margin-top: 132px; }
.is-current-chapter > :is(h2,h3) { color: var(--blue); }
.scope-row > h3, .resource-chapter > h2, .step > h3 { transition: color var(--motion-fast) ease; }
.video-section { background: var(--mist); border-block: 1px solid var(--line); }
.video-layout { display: grid; grid-template-columns: minmax(0,.72fr) minmax(0,1.28fr); gap: var(--layout-gap); align-items: start; }
.video-layout > * { margin-block: 0; }
.twoi-video { margin: 0; }
.twoi-video video { display: block; width: 100%; aspect-ratio: 16/9; background: #f5f7f9; border: 1px solid var(--line); }
.twoi-video figcaption { margin: 12px 0 0; font-size: 13px; color: var(--muted); text-align: left; }
.video-transcript { margin-top: 20px; border-top: 1px solid var(--line); padding-top: 16px; }
.video-transcript summary { cursor: pointer; color: var(--blue); padding-block: 8px; min-height: 44px; font-size: 16px; }
.video-transcript-list { margin-block: 16px 0; padding-left: 20px; font-size: 16px; }
.video-transcript-list li + li { margin-top: 12px; }
.motion-ready[data-motion="video-frame"] { transform: translateY(16px); transition: transform var(--motion-image) var(--ease); }
.motion-ready.is-in[data-motion="video-frame"] { transform: none; }
.wp-block-details[open] > :not(summary) { animation: twoi-arrive 240ms var(--ease); }
.resource-links a { transition: color var(--motion-fast) ease, transform 280ms var(--ease); }
@media(hover:hover) and (prefers-reduced-motion:no-preference) {
  .resource-links a:hover { transform: translateX(4px); }
  .service-row .wp-block-button__link:hover { transform: translateX(3px); }
}
@media(min-width:901px) {
  .twoi-page-why-2iresourcing .method-intro { position: sticky; top: 128px; }
}
@media(max-width:900px) {
  .video-layout { grid-template-columns: minmax(0,1fr); }
  .video-copy { max-width: 650px; }
  .page-hero-copy h1 { max-width: 23ch; }
  .chapter-nav { grid-template-columns: repeat(2,minmax(0,1fr)); max-width: none; gap: 0 16px; }
}
@media(max-width:640px) {
  .page-hero h1, .utility-hero h1, .service-hero h1 { font-size: clamp(32px,8vw,42px); }
  .chapter-nav { grid-template-columns: 1fr; }
  .chapter-nav a { padding-block: 12px; }
  .video-transcript-list { font-size: 15px; }
  .motion-ready[data-motion="video-frame"] { transform: translateY(6px); }
  .motion-ready.is-in[data-motion="video-frame"] { transform: none; }
}
@media(prefers-reduced-motion:reduce) {
  .chapter-nav a, .chapter-nav a::before, .resource-links a,
  .scope-row > h3, .resource-chapter > h2, .step > h3 { transition: none; }
  .motion-ready[data-motion="video-frame"] { transform: none; transition: none; }
  .wp-block-details[open] > :not(summary) { animation: none; }
}
@media print { .chapter-nav, .twoi-video video { display: none; } .video-transcript { display: block; } }

/* RC4: quiet surfaces instead of decorative blue rules. */
.model { border: 0; padding-top: 0; margin-block: 0; }
.model-grid { align-items: start; }
.article-service { border-top: 0; }
.chapter-nav a { border-left: 0; padding-left: 0; }
.chapter-nav a::before { display: none; }
.motion-ready[data-motion="soft"] { opacity: .82; transition: opacity 500ms var(--ease) var(--motion-delay); }
.motion-ready.is-in[data-motion="soft"] { opacity: 1; }
.motion-ready[data-motion="portrait"] img { transform: scale(1.025); transition: transform 650ms var(--ease); }
.motion-ready.is-in[data-motion="portrait"] img { transform: none; }

/* One visible logo set. Brief entrance only; no auto-scrolling or controls. */
.partner-section { padding: 32px 0 40px; background: #fff; }
.partner-heading { display: flex; justify-content: space-between; align-items: center; gap: 24px; }
.partner-heading p { margin: 0; font-size: 13px; }
.partner-heading a { color: var(--muted); text-decoration: none; }
.partner-rail { padding: 30px 0 0; overflow: visible; }
.partner-track { display: grid !important; grid-template-columns: repeat(5,minmax(0,1fr)); gap: 32px; align-items: center; width: auto; }
.partner-logo { width: 100%; max-width: 170px; height: 56px; margin: 0 auto !important; display: flex; align-items: center; justify-content: center; }
.partner-logo img { width: 100%; height: 100%; object-fit: contain; }

/* Careers content and header share the same container; spacing outside panels. */
.jobs-shell { padding-block: 56px 72px; }
.jobs-layout { display: grid; grid-template-columns: minmax(0,1.45fr) minmax(0,.8fr); gap: var(--layout-gap); align-items: start; }
.jobs-layout > * { min-width: 0; margin-block: 0; }
.jobs-panel { padding: clamp(24px,3vw,44px); background: var(--mist); border-radius: 4px; }
.jobs-panel h2 { font-size: clamp(28px,3vw,40px); line-height: 1.18; max-width: 24ch; }
.jobs-panel p:not(.eyebrow) { max-width: 58ch; }
.jobs-support { padding-block: 16px; }
.jobs-support h3 { font-size: 24px; }
.jobs-support p { font-size: 16px; color: var(--muted); }
.jobs-support .resource-links a { font-size: 16px; }

/* Native recruiter blocks in reading order; additional rows fill automatically. */
.team-list { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 48px 32px; border: 0; }
.team-list > .team-row { display: flex; flex-direction: column; align-items: stretch; gap: 0; min-width: 0; margin: 0; padding: 0; border: 0; }
.team-row .team-portrait { width: 100%; aspect-ratio: 4/5; max-height: 360px; margin: 0 0 22px !important; align-self: auto; }
.team-row .team-identity { margin: 0; }
.team-row .team-bio { margin-top: 14px; font-size: 16px; }
.team-row .team-link { margin: 14px 0 0; font-size: 15px; }
.team-row .team-link a { text-decoration: none; }
.team-row .team-link a:hover { text-decoration: underline; }
.team-row h3 { font-size: clamp(22px,2vw,27px); }

/* Full policy: readable measure and a native, keyboard-usable section index. */
.privacy-layout { display: grid; grid-template-columns: minmax(180px,.7fr) minmax(0,1.8fr); gap: var(--layout-gap); align-items: start; }
.privacy-layout > * { min-width: 0; margin: 0; }
.privacy-index { position: sticky; top: 130px; }
.privacy-index-list { list-style: none; padding: 0; margin: 0; }
.privacy-index-list a { display: block; font-size: 15px; padding-block: 8px; text-decoration: none; }
.privacy-index-list a:hover { text-decoration: underline; }
.privacy-body { max-width: 760px; }
.privacy-section { margin: 0 0 44px; }
.privacy-section h2 { font-size: clamp(27px,2.6vw,36px); line-height: 1.2; scroll-margin-top: 130px; }
.privacy-section h3 { font-size: 22px; margin-top: 30px; }
.privacy-section p, .privacy-section li { font-size: 17px; line-height: 1.8; }
.privacy-list li + li { margin-top: 12px; }
@media(max-width:900px) {
  .jobs-layout { grid-template-columns: 1fr; gap: 28px; }
  .jobs-support { max-width: 660px; }
  .team-list { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .privacy-layout { grid-template-columns: 1fr; }
  .privacy-index { position: static; }
  .privacy-index-list { columns: 2; column-gap: 32px; }
  .partner-track { gap: 24px; }
  .partner-heading { flex-direction: column; align-items: flex-start; gap: 12px; }
}
@media(max-width:640px) {
  .team-list { grid-template-columns: 1fr; gap: 36px; }
  .team-row .team-portrait { max-height: none; aspect-ratio: 1; }
  .partner-track { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 24px 32px; }
  .partner-logo:last-child { grid-column: 1 / -1; }
  .partner-logo { max-width: 140px; height: 48px; }
  .privacy-index-list { columns: auto; }
  .privacy-section p, .privacy-section li { font-size: 16px; }
  .jobs-shell { padding-block: 36px 48px; }
}
@media(prefers-reduced-motion:reduce) {
  .motion-ready[data-motion="soft"] { opacity: 1; transition: none; }
  .motion-ready[data-motion="portrait"] img { transform: none; transition: none; }
}
@media print { .privacy-index { display: none; } .privacy-layout { display: block; } .motion-ready[data-motion="soft"] { opacity: 1; } }
