/* Subpages inherit the reviewed homepage palette; their content and layouts stay native. */
.b-pagehero_title, .section_title, .detail_title, .cta_title { font-weight: 400; }
.b-pagehero { padding-top: 160px; padding-bottom: 56px; }
.b-pagehero_stack { max-width: 760px; gap: 24px; }
.b-pagehero_desc { max-width: 560px; line-height: 1.6; }
.b-pagehero_inner { gap: 28px; }

/* Retain project columns, sticky facts, image crops and section order. */
.b-work_media, .b-work_rich img, .b-project_media,
.b-projects_grid--more .b-project_media { border-radius: var(--radius); }
.b-project_info { padding-top: 18px; font-size: 18px; }
.b-project_date { color: var(--muted); font-size: 12px; }
.b-fact_k { color: var(--muted); }
.b-fact_v a, .b-work_rich a, .b-post_rich a, .prose a,
.b-post_meta a, .b-contact_mail { color: var(--accent); }
.b-contact_mail { border-color: currentColor; }
.b-work_rich, .b-post_rich { line-height: 1.65; }
.b-post_rich p, .b-post_rich li { color: var(--muted); }
.b-post_rich blockquote { border-color: var(--accent); }

.filter_chip[aria-current="page"], .pagination .page-numbers.current {
  color: var(--accent); border-bottom-color: var(--accent);
}
.b-prevnext a:hover, .b-prevnext a:focus-visible { border-color: var(--accent); }

/* Replace the old pastel card backgrounds and keep their original content. */
.b-service:nth-child(n) { background-color: var(--surface); border-radius: var(--radius); }
.b-service { border: 1px solid var(--line); transition: border-color 180ms ease; }
.b-service:hover, .b-service:focus-visible { border-color: var(--accent); }
.b-service > .mono { color: var(--muted); }
.b-service_desc { color: var(--muted); }
.b-service_logo img, .marquee_item img, .b-about_partners .marquee_item img, .client_cell img,
.b-about_top .wp-block-image img { filter: brightness(0) invert(1); }
.b-team_card { border-radius: var(--radius); background: var(--surface); }
.b-team_role { color: var(--muted); }
.b-award:hover .b-award_name { color: var(--accent); }
.b-testimonial_media--sample,
.b-testimonial:nth-child(n) .b-testimonial_media--sample { background: var(--surface); }

/* Image overlays need white text regardless of button contrast tokens. */
.b-abouthero_panel { background-color: var(--surface); }
.b-abouthero_text, .gamecard_title { color: var(--text); }
.b-abouthero_text { text-shadow: 0 2px 24px #000; }
.b-abouthero_panel::after {
  content: ""; position: absolute; inset: 0; z-index: 1;
  background: rgb(11 11 16 / .3); pointer-events: none;
}
.cta_band, .stat_wrap, .reel_wrap { background: var(--surface); color: var(--text); border-color: var(--line); }
.cta_lede, .stat_label, .b-cta_desc { color: var(--muted); }
.stat_value, .reel_wrap .eyebrow { color: var(--text); }
.btn-invert { color: var(--text); border-color: var(--line); }

/* Dark form surfaces, visible validation and keyboard focus. */
.b-form input[type="text"], .b-form input[type="email"], .b-form select, .b-form textarea {
  background-color: var(--surface);
}
.b-form input:focus, .b-form select:focus, .b-form textarea:focus {
  border-color: var(--accent); outline: 2px solid var(--accent); outline-offset: 3px;
}
.b-form [aria-invalid="true"], .form_summary { border-color: #ff8798; }
.field_error { color: #ff8798; }
.b-form_submit, .b-btn-fill--cta, .btn-primary {
  background: var(--accent); color: var(--ink);
}
.b-form_submit:hover, .b-btn-fill--cta:hover, .btn-primary:hover {
  background: #ff70ce; color: var(--ink);
}

@media (max-width: 767px) {
  .b-pagehero { padding: 120px 0 40px; }
  .b-pagehero_stack { gap: 20px; }
  .b-pagehero_title { max-width: 20ch; }
  .b-project_info { font-size: 17px; }
}

/* Studio: use the reviewed art and typography while retaining its editable sections. */
.b-abouthero { padding-top:80px; }
.b-abouthero_panel { min-height:0; height:auto; border-radius:0; background:var(--ink); margin-bottom:48px; }
.cc-about-art { position:absolute; inset:0; margin:0; pointer-events:none; }
.cc-about-art img { width:100%; height:100%; object-fit:cover; opacity:.65; }
.b-abouthero_panel::after { background:linear-gradient(transparent,var(--ink)); }
.b-abouthero_content { position:relative; padding:100px 32px 88px; }
.cc-about-intro { max-width:960px; text-align:center; }
.cc-about-intro > .mono { font-size:14px; color:var(--accent); margin:0 0 24px; }
.cc-about-intro h1 { font-size:clamp(48px,6.5vw,92px); line-height:1.05; font-weight:900; letter-spacing:-2px; margin:0 0 32px; }
.cc-about-summary { max-width:800px; margin:0 auto; font-size:24px; line-height:1.5; }
.b-about_panel { padding:64px; gap:80px; }
.b-about_top { max-width:760px; }
.b-about_top h2 { font-size:32px; line-height:1.3; }
.b-team_photo { height:auto; aspect-ratio:1.15; }
@media(max-width:767px) {
 .b-abouthero_content { padding:64px 8px 56px; }
 .cc-about-intro h1 { letter-spacing:-1.5px; }
 .cc-about-summary { font-size:19px; line-height:1.5; }
 .b-about_panel { padding:32px 20px; gap:48px; }
 .b-about_top h2 { font-size:25px; }
 .b-about_metrics { grid-template-columns:repeat(2,minmax(0,1fr)); gap:24px; }
}

.b-team_list { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:20px; }
.b-team_photo { aspect-ratio:1; }
@media(max-width:480px) { .b-team_list { gap:12px; } .b-team_info { padding:16px; } }

/* Project archive pagination: clear range, generous targets and a visible active page. */
.cc-project-pagination { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:24px; margin-top:56px; padding-top:24px; border-top:1px solid var(--line); }
.cc-project-count { margin:0; color:var(--muted); font-size:14px; line-height:1.5; }
.cc-page-links ul { display:flex; flex-wrap:wrap; align-items:center; gap:8px; margin:0; padding:0; list-style:none; }
.cc-page-links li { margin:0; }
.cc-page-links li > .page-numbers, .cc-page-mobile > .page-numbers { display:inline-flex; align-items:center; justify-content:center; min-width:44px; min-height:44px; padding:10px 14px; border:1px solid var(--line); border-radius:10px; background:var(--surface); color:var(--text); font-size:14px; line-height:1.4; text-decoration:none; }
.cc-page-links a:hover { border-color:var(--accent); color:var(--accent); }
.cc-page-links .page-numbers.current { background:var(--accent); border-color:var(--accent); color:var(--ink); font-weight:600; }
.cc-page-links li > .dots { min-width:24px; padding-inline:0; background:none; border-color:transparent; color:var(--muted); }
.cc-page-links a:focus-visible { outline:2px solid var(--accent); outline-offset:4px; }
@media(max-width:600px) {
 .cc-project-pagination { flex-direction:column; align-items:flex-start; gap:16px; margin-top:40px; }
 .cc-page-links { width:100%; }
 .cc-page-links ul { gap:6px; }
 .cc-page-links li > .page-numbers { padding-inline:12px; }
}

.cc-page-mobile { display:none; }
.cc-page-position { color:var(--muted); font-size:13px; white-space:nowrap; }
.cc-page-mobile .is-disabled { opacity:.4; }
@media(max-width:600px) {
 .cc-page-desktop { display:none; }
 .cc-page-mobile { display:flex; align-items:center; justify-content:space-between; gap:8px; }
 .cc-page-mobile > .page-numbers { padding-inline:10px; }
}

/* Henry's review, 2026-10-20 ---------------------------------------------------------- */
/* Editable page content: a section heading block directly above a grid had no gap. */
.is-layout-flow > .b-top + .b-projects_grid,
.is-layout-flow > .b-top + .b-services_grid,
.is-layout-flow > .b-top + .is-layout-flow { margin-top: 40px; }
/* "Three ways we build" cards carry no logo: no 500px logo-sized card, and three cards fill the row. */
.b-services_grid > .b-service:not(:has(.b-service_logo)) { min-height: 240px; }
.b-services_grid:has(> .b-service:nth-child(3):last-child) { grid-template-columns: repeat(3, 1fr); }
@media (max-width: 991px) { .b-services_grid:has(> .b-service:nth-child(3):last-child) { grid-template-columns: 1fr; } }
/* Core's the_posts_pagination() (press, insights): same buttons as the projects pagination, not bare "12 Next". */
.navigation.pagination { margin-top:56px; padding-top:24px; border-top:1px solid var(--line); }
.navigation.pagination .nav-links { display:flex; flex-wrap:wrap; align-items:center; gap:8px; }
.navigation.pagination .page-numbers { display:inline-flex; align-items:center; justify-content:center; min-width:44px; min-height:44px; padding:10px 14px; border:1px solid var(--line); border-radius:10px; background:var(--surface); color:var(--text); font-size:14px; line-height:1.4; text-decoration:none; }
.navigation.pagination a.page-numbers:hover { border-color:var(--accent); color:var(--accent); }
.navigation.pagination .page-numbers.current { background:var(--accent); border-color:var(--accent); color:var(--ink); font-weight:600; }
.navigation.pagination .page-numbers.dots { border-color:transparent; color:var(--muted); }
/* /numbers has no page hero, so its heading sat under the fixed header. */
.b-section--numbers { padding-top:160px; }
@media (max-width: 767px) { .b-section--numbers { padding-top:120px; } }
