/* Centered titles and a roomier reading frame; the established type and colors remain. */
:root {
  --gutter: clamp(28px, 6vw, 112px);
  --section-space: clamp(64px, 6vw, 96px);
}

.wrap { max-width: 1600px; padding-inline: var(--gutter); }
body[data-page=home] .site-header { padding-inline: var(--gutter); }

main :is(h1, h2, h3) { text-align: center; overflow-wrap: anywhere; hyphens: auto; }
main :is(h1, h2) { margin-inline: auto; }
main .section { padding-block: var(--section-space); }
main :is(.portfolio, .film-library) { padding-top: 0; }

main .page-head { padding-block: clamp(48px, 5vw, 80px) clamp(40px, 4vw, 64px); }
main .page-head h1,
main .page-head > p,
main .section-title,
main .section-title > p,
main .faq { margin-inline: auto; }
main .page-head > p,
main .section-title > p { text-align: center; }
main .section-title { margin-bottom: clamp(32px, 4vw, 56px); }
main .section > h2 { max-width: 22ch; }

.client-section[data-client-globe] { padding-bottom: clamp(8px, 1.5vw, 24px); }
main .team-home { padding-top: clamp(56px, 6vw, 88px); }
.team-home .team-heading { margin-inline: auto; text-align: center; }
.team-home .team-heading > p { margin-inline: auto; }

/* Full-width headings lead the service list instead of sitting in a side column. */
main .capabilities { grid-template-columns: 1fr; gap: clamp(36px, 4vw, 56px); }
.capability-title { width: 100%; max-width: 850px; margin-inline: auto; }
.capability-title > p { max-width: 56ch; margin-inline: auto; text-align: center; }
.capability-list { width: 100%; max-width: 1080px; margin-inline: auto; }
.capability summary { position: relative; padding-inline: 42px; }
.capability h3 { width: 100%; }
.capability .cap-plus { position: absolute; right: 0; }
.capability-body { max-width: 850px; margin-inline: auto; }

.showreel-section .section-title {
  display: block;
  max-width: 950px;
  margin-inline: auto;
  text-align: center;
}
.showreel-section .section-title > p {
  width: auto;
  max-width: 56ch;
  margin: 24px auto 0;
}
.showreel-grid { grid-template-columns: minmax(0, 1fr); max-width: 1120px; margin-inline: auto; }
.feature-film .video-block { width: 100%; max-width: 1120px; margin-inline: auto; }
.showreel-grid .video-block:nth-child(2) { margin-top: 0; }

/* Editorial paragraphs keep their reading alignment beneath centered headings. */
.editorial { padding-block: 0 clamp(32px, 4vw, 64px); }
.editorial-section {
  grid-template-columns: minmax(0, 1fr);
  gap: clamp(24px, 3vw, 40px);
  padding-block: clamp(40px, 4vw, 64px);
}
.editorial-section h2 { width: 100%; max-width: 900px; margin-inline: auto; }
.editorial-section > * { min-width: 0; }
.editorial-section > div { width: 100%; max-width: 75ch; margin-inline: auto; }
.editorial-section p { max-width: none; }

.content-split { grid-template-columns: 1fr; gap: 32px; }
.content-split > div { width: 100%; max-width: 850px; margin-inline: auto; }
.content-split > div > p:first-child { margin-top: 0; }
.content-split .actions { justify-content: center; }

.ai-case,
.service-illustrations { grid-template-columns: 1fr; gap: clamp(32px, 4vw, 56px); }
.ai-case > div,
.service-illustrations > div { width: 100%; max-width: 850px; margin-inline: auto; }
.ai-case p,
.service-illustrations p { margin-inline: auto; }
.ai-case .text-link { display: flex; width: fit-content; margin-inline: auto; }
.ai-case > img,
.service-illustrations > img { width: 100%; max-width: 420px; margin-inline: auto; }
.ai-case > img { height: auto; }
[data-page=ai] .ai-case-photo { border-radius: 50%; clip-path: circle(49.5%); object-fit: contain; }
.service-illustrations > div { order: -1; }
.service-illustrations .phone-art { justify-content: center; }

/* Equal caption insets keep an arrow from pulling its title off center. */
.work-info { display: block; position: relative; padding-inline: 30px; }
.work-info > div { width: 100%; }
.work-info > svg { position: absolute; top: 20px; right: 0; margin-top: 0; }
.work-info p { margin-inline: auto; text-align: center; }
.work-footer { justify-content: center; }
.library-filters { justify-content: center; }
.case-meta { justify-content: center; }
.video-gallery:has(> .video-block:only-child) { margin-inline: auto; }
.video-gallery > .video-block:only-child { width: 100%; margin-inline: auto; }

.agency-closing { padding-block: clamp(72px, 7vw, 112px); }
.form-unavailable { padding: 20px 24px; margin-bottom: 28px; }
.form-unavailable h3 { font-size: 22px; }
.form-unavailable p { font-size: 15px; line-height: 1.6; }

@media (max-width: 620px) {
  /* A smaller wordmark gives the unchanged touch controls their full target area. */
  .site-header { gap: 10px; }
  .site-header .brand { width: clamp(142px, 39vw, 173px); min-width: 110px; flex-shrink: 1; }
  .site-header .header-tools { gap: 3px; }
  .site-header .icon-button { min-width: 44px; min-height: 44px; }
  .showreel-grid { grid-template-columns: 1fr; }
  .capability summary { padding-inline: 32px; }
  .capability-body { gap: 16px; }
  .work-info { padding-inline: 26px; }
  .form-unavailable { padding: 18px; }
}

@media print {
  .wrap { padding-inline: 0; }
  main .section { padding-block: 20px; }
}
