/* Shared spacing contract: used by every page and the WordPress theme.
   White sections sharing one continuous surface use one boundary gap.
   Different surfaces keep equal top/bottom inset. No page-ID overrides. */
:root,body {
  --tc-section-space: 80px;
  --tc-header-space: 48px;
  --tc-content-gap: 40px;
  --tc-detail-space: 48px;
  --tc-heading-gap: 24px;
  --tc-action-gap: 32px;
  --tc-body-gap: 16px;
  --tc-label-gap: 8px;
  --tc-layout-gap: 40px;
}
.tc-section { padding-block:var(--tc-section-space); margin-block:0; }
.tc-section--header { padding-block:var(--tc-header-space); }
.tc-surface-white + .tc-surface-white { padding-block-start:0; }
.tc-section > .wrap { display:flow-root; }
.tc-section > .intro-layout { display:grid; }
.tc-section .tc-flow > *, .tc-section .tc-copy > * { margin-block:0; }
.tc-section .tc-flow > * + * { margin-block-start:var(--tc-content-gap); }
.tc-section .tc-copy > * + * { margin-block-start:var(--tc-body-gap); }
.tc-section :is(.tc-flow,.tc-copy) > :is(h1,h2,h3,h4,h5,h6) + :is(p,.sec-lead,.profile-quote,.tc-entry-content) { margin-block-start:var(--tc-heading-gap); }
.tc-section :is(.tc-flow,.tc-copy) > :is(.eyebrow,.breadcrumb,.no,.note-index,.strength-index) + * { margin-block-start:var(--tc-label-gap); }
.tc-section :is(.tc-flow,.tc-copy) > :is(p,ul,ol,table) + :is(a,button,.hero-btns,.wp-block-buttons),
.tc-section :is(.tc-flow,.tc-copy) > p:has(> a.btn) { margin-block-start:var(--tc-action-gap); }
.tc-section :is(.tc-flow,.tc-copy) > a.more, .tc-section :is(.tc-flow,.tc-copy) > a.text-link { display:inline-block; }
.tc-section .tc-flow > :first-child, .tc-section .tc-copy > :first-child { margin-block-start:0; }
.tc-section .tc-flow > :last-child, .tc-section .tc-copy > :last-child { margin-block-end:0; }
.tc-centered { margin-inline:auto; }
.tc-align-center { text-align:center; }
.tc-contact-details { margin-block-start:var(--tc-content-gap); }
.tc-section .section-intro, .tc-section .profile-quote, .tc-section .planned-label { margin-block-end:0; }
.tc-section .section-nav { margin-block-start:var(--tc-action-gap); }
.tc-section .service-detail { padding-block:var(--tc-detail-space); margin-block:0; }
.tc-detail-group > .service-detail:first-child { padding-block-start:0; border-block-start:0; }
.tc-detail-group > .service-detail:last-child { padding-block-end:0; }
.tc-detail-group > :not(.service-detail) + .service-detail { margin-block-start:var(--tc-content-gap); padding-block-start:var(--tc-detail-space); }
.tc-section .service-photo { margin-block:var(--tc-content-gap) 0; }
.tc-section .service-photo--compact { max-width:425px; }
.tc-section .service-photo--wide { width:100%; max-width:none; margin-inline:0; }
.service-photo--wide img { width:100%; height:auto; max-height:none; object-fit:contain; }
.profile-photo .profile-portrait { width:100%; margin:0; }
.profile-portrait img { display:block; width:100%; height:auto; aspect-ratio:3/4; object-fit:contain; }
.profile-photo .name { margin-block-start:var(--tc-body-gap); }
/* Repeated component geometry; these rules apply to every instance. */
.service-row { grid-template-columns:40px minmax(240px,280px) minmax(0,1fr) 90px; gap:var(--tc-layout-gap); padding-block:32px; }
.service-row > :is(div,p,span) { margin-block:0; }
.service-row h3 { margin-block-end:var(--tc-label-gap); }
.business-notes { gap:var(--tc-layout-gap); margin-block-start:var(--tc-content-gap); }
.business-notes h3 { margin-block:0; }
.business-notes p { margin-block-end:0; }
.business-notes .note-index + h3 { margin-block-start:var(--tc-label-gap); }
.business-notes h3 + p { margin-block-start:var(--tc-heading-gap); }
.business-notes p + .text-link { margin-block-start:var(--tc-action-gap); }
.home-strength .strength-flex .text { column-gap:var(--tc-layout-gap); }
.home-strength .strength-flex .sec-lead { margin-block:0; }
.home-strength .strength-flex .btn { margin-block-start:var(--tc-action-gap); }
.home-strength .results-grid { margin-block-start:var(--tc-content-gap); gap:var(--tc-layout-gap); }
.home-strength .result-card h3 { margin-block:var(--tc-label-gap) 0; }
.home-strength .result-card h3 + p { margin-block-start:var(--tc-heading-gap); }
.home-strength .strength-index { margin-block:0; }
.home-strength .strength-flex h2 { margin-block:0; }
.home-strength .strength-flex .eyebrow { margin-block-end:var(--tc-label-gap); }
.intro-layout h2 { margin-block-start:var(--tc-label-gap); }
.experience-facts { margin-block-start:var(--tc-content-gap); }
.faq-detail summary { padding-block:var(--tc-heading-gap); }
.faq-detail summary::after { top:var(--tc-heading-gap); }
.faq-answer { padding-block:0 var(--tc-heading-gap); }
.tc-section .tc-flow > .faq-detail + .faq-detail { margin-block-start:0; }
/* Standard content blocks used by future WordPress news articles. */
.tc-entry-content > * { margin-block:0; }
.tc-entry-content > * + * { margin-block-start:var(--tc-body-gap); }
.tc-entry-content > :is(h2,h3,h4,h5,h6) { margin-block-start:var(--tc-content-gap); color:#16305e; line-height:1.5; }
.tc-entry-content > :is(h1,h2,h3,h4,h5,h6) + * { margin-block-start:var(--tc-heading-gap); }
.tc-entry-content > :is(figure,.wp-block-image,.wp-block-gallery,.wp-block-table) { margin-block-start:var(--tc-content-gap); }
.tc-entry-content > :is(.wp-block-buttons,p:has(> a.btn)) { margin-block-start:var(--tc-action-gap); }
.tc-entry-content > :first-child { margin-block-start:0; }
.tc-entry-content > :last-child { margin-block-end:0; }
.tc-entry-content ul,.tc-entry-content ol { padding-inline-start:1.5em; }
.tc-entry-content img { max-width:100%; height:auto; }
.tc-post + .tc-post { margin-block-start:var(--tc-section-space); }
@media(max-width:1100px) {
  .service-row { grid-template-columns:32px minmax(220px,260px) minmax(0,1fr); gap:24px; }
}
@media(max-width:800px) {
  :root,body { --tc-section-space:56px; --tc-header-space:40px; --tc-content-gap:32px; --tc-detail-space:32px; --tc-heading-gap:16px; --tc-action-gap:24px; --tc-layout-gap:24px; }
  .service-row { grid-template-columns:28px minmax(0,1fr); gap:12px var(--tc-body-gap); padding-block:24px; }
  .service-row > p { grid-column:2; }
  .home-strength .strength-flex .sec-lead { margin-block-start:var(--tc-heading-gap); }
  .home-strength .result-card h3 { margin-block:0; }
}
