/* Shared spacing rhythm for the site and the WordPress editor. */
:root {
    --section-space: clamp(112px, 11.2vw, 160px);
    --section-space-small: clamp(80px, 7.3vw, 104px);
    --content-space: clamp(32px, 3.3vw, 48px);
    --column-space: clamp(32px, 4.5vw, 64px);
    --copy-space: 16px;
}

/* Align the navigation, page content and hero to the same outer grid. */
.header-inner {
    width: min(var(--wrap), calc(100% - 112px));
    min-height: 96px;
}
.section,
.location-section { padding-block: var(--section-space); }
.split,
.location-section .split,
.service-detail .split,
.integration .split,
.service-row,
.contact-layout { gap: var(--column-space); }

/* Text belongs to its heading; terminal margins must not skew alignment. */
.copy > h2,
.service-copy > h3 { margin-bottom: 20px; }
.copy > p,
.service-copy > p { margin-bottom: var(--copy-space); }
.copy > .eyebrow,
.service-copy > .eyebrow,
.service-detail .copy > .eyebrow,
.heading-copy > .eyebrow { margin-bottom: 12px; }
.copy > :last-child,
.service-copy > :last-child,
.heading-copy > :last-child,
.company-purpose .split > .lead { margin-bottom: 0; }
.service-copy .text-link { margin-top: 0; }
.copy > p:has(> .text-link),
.service-copy > p:has(> .text-link) { margin-top: 0; }

.hero,
.hero-photo { min-height: 560px; }
.hero-copy {
    padding: 56px 48px 56px max(56px, calc((100vw - 1280px) / 2));
}
.hero-copy .eyebrow { margin-bottom: 16px; }
.hero-copy h1 { margin-bottom: 24px; }
.hero-copy p:not(.eyebrow) { margin-bottom: 24px; }
.hero-copy > p:last-child { margin-bottom: 0; }
.route-strip { padding-block: 20px; }

.section-heading.wp-block-group { margin-bottom: var(--content-space); }
.service-row { margin-bottom: 0; }
.services-overview .service-row + .service-row { margin-top: 56px; }
.service-row.reverse .service-copy { padding-left: 0; }
.intro-photo { padding-bottom: 20px; }

.page-masthead { padding: 56px 0; }
.page-masthead .eyebrow { margin-bottom: 12px; }
.page-masthead h1 { margin-bottom: 24px; }
.page-masthead .lead { margin-bottom: 0; }
.wp-block-group.company-values {
    margin-top: 32px;
    padding-top: 32px;
    gap: var(--column-space);
}
.company-values h3 { margin-bottom: 12px; }
.service-features.wp-block-group { margin-top: 24px; }
.service-feature { padding-block: 16px; }
.service-detail .button { margin-top: 24px; }
.integration { padding-block: var(--section-space-small); }
.integration h2 { margin-bottom: 0; }

.contact-details > div {
    margin-bottom: 24px;
    padding-bottom: 24px;
}
.contact-details > div:last-child {
    margin-bottom: 0;
    padding-bottom: 0;
    border-bottom: 0;
}
.contact-details h2 { margin-bottom: 16px; }
.contact-details p { margin-bottom: 12px; }
.contact-layout .landscape img { height: 420px; }
.contact-caption { margin: 12px 0 0; }

.cta-band { padding-block: 48px; }
.cta-band > .wrap { gap: 32px; }
.cta-band h2 { margin-bottom: 12px; }
.site-footer { padding-top: 48px; }
.footer-main { gap: 56px; padding-bottom: 40px; }
.footer-contact p { margin-bottom: 0; }
.footer-contact .social-links { margin-top: 20px; }
.footer-bottom { padding-block: 24px; }

/* The link hub is one compact, continuous stack. */
.links-shell { padding-block: 36px 20px; }
.links-logo { margin-bottom: 20px; }
.links-shell > p:not(.links-signoff) { margin-bottom: 0; }
.link-list { gap: 10px; margin-block: 24px 0; }
.link-list > a { min-height: 56px; padding-block: 14px; }
.links-shell .links-signoff { margin-top: 24px; margin-bottom: 8px; }

@media (min-width: 1600px) {
    .hero,
    .hero-photo { min-height: 600px; }
    .hero-copy { padding-right: 64px; }
}

@media (max-width: 1100px) {
    .header-inner { width: calc(100% - 64px); }
    .hero-copy { padding: 48px 32px; }
    .footer-main { gap: 32px; }
}

@media (max-width: 900px) {
    .header-inner { min-height: 86px; }
    .hero,
    .hero-photo { min-height: 520px; }
    .hero-copy { padding-right: 28px; }
    .page-masthead { padding-block: 48px; }
    .section-heading { gap: 24px; }
    .cta-band > .wrap { gap: 24px; }
    .contact-layout .landscape img { height: 400px; }
}

@media (max-width: 600px) {
    :root { --section-space: 88px; --section-space-small: 64px; --content-space: 32px; --column-space: 32px; --copy-space: 16px; }
    .header-inner { width: calc(100% - 40px); min-height: 79px; }
    .hero,
    .hero-photo { min-height: 0; }
    .hero-copy { padding: 40px 20px; }
    .hero-copy .eyebrow { margin-bottom: 16px; }
    .hero-copy h1 { margin-bottom: 24px; }
    .hero-copy p:not(.eyebrow) { margin-bottom: 24px; }
    .hero-copy > p:last-child { margin-bottom: 0; }
    .route-strip { padding-block: 16px; }
    .route-strip > .wrap { gap: 6px; }
    .route-strip p:first-child { margin-bottom: 2px; }
    .copy > h2,
    .service-copy > h3 { margin-bottom: 20px; }
    .copy > :last-child,
    .service-copy > :last-child { margin-bottom: 0; }
    .copy > .eyebrow,
    .service-copy > .eyebrow,
    .heading-copy > .eyebrow { margin-bottom: 12px; }
    .section-heading.wp-block-group { margin-bottom: var(--content-space); }
    .section-heading > p { margin: 16px 0 0; }
    .service-row { gap: 24px; }
    .services-overview .service-row + .service-row { margin-top: 40px; }
    .page-masthead { padding: 40px 0; }
    .page-masthead h1 { margin-bottom: 24px; }
    .page-masthead .eyebrow { margin-bottom: 12px; }
    .company-purpose .split { gap: 20px; }
    .wp-block-group.company-values { margin-top: 28px; padding-top: 28px; gap: 28px; }
    .service-detail .split { gap: 28px; }
    .service-detail .copy > .eyebrow { margin-bottom: 12px; }
    .service-detail .button { margin-top: 20px; }
    .integration { padding-block: var(--section-space-small); }
    .integration .split { gap: 20px; }
    .contact-layout { gap: 32px; }
    .contact-layout .landscape img { height: 280px; }
    .contact-details h2 { margin-bottom: 12px; }
    .cta-band { padding-block: 36px; }
    .site-footer { padding-top: 40px; }
    .footer-main { gap: 32px; padding-bottom: 48px; }
    .footer-contact p { margin-top: 8px; }
    .footer-bottom { padding-block: 24px; }
    .footer-bottom span + span { margin-top: 8px; }
    .links-shell { padding-block: 28px 16px; }
    .links-logo { margin-bottom: 16px; }
}
