/* Shared spacing rhythm: content groups, section boundaries, and reference proof.
   Existing branding, imagery, motion, tracking and form behavior stay in their own files. */
body.nx-rhythm {
  --nx-section-space: 64px;
  --nx-heading-space: 32px;
  --nx-group-space: 32px;
  --nx-column-space: 48px;
  --nx-copy-space: 16px;
  --nx-item-space: 24px;
}
@media (max-width: 1000px) {
  body.nx-rhythm { --nx-section-space: 56px; --nx-column-space: 32px; }
}
@media (max-width: 600px) {
  body.nx-rhythm { --nx-section-space: 40px; --nx-heading-space: 24px; --nx-group-space: 28px; --nx-column-space: 28px; }
}
@media screen {
  body.nx-rhythm.nx-site main#main > :is(.hu-section, .section, .kw-hub-section, .kw-package-section, .kw-related, .kw-inline-block) {
    padding-block: var(--nx-section-space);
  }
  /* A shared surface gets one interval, rather than two stacked paddings. */
  body.nx-rhythm.nx-site main#main > section.nx-section-continuation { padding-top: 0; }
  body.nx-rhythm main#main .hu-section-head,
  body.nx-rhythm .split-heading { margin-bottom: var(--nx-heading-space); }
  body.nx-rhythm .hu-section-head > :last-child { margin-bottom: 0; }
  body.nx-rhythm .hu-section > .shell > :last-child { margin-bottom: 0; }
  body.nx-rhythm .hu-section-head p { margin-top: var(--nx-copy-space); }
  body.nx-rhythm .hu-reading { line-height: 1.65; }
  body.nx-rhythm .hu-hero-grid > * { min-width: 0; }
  body.nx-rhythm .hu-hero h1 { overflow-wrap: anywhere; hyphens: auto; }
  body.nx-rhythm .hu-proof {
    grid-template-columns: minmax(0, 1fr) minmax(0, 1.1fr);
    align-items: start;
    gap: var(--nx-group-space) var(--nx-column-space);
  }
  body.nx-rhythm .hu-proof > * { min-width: 0; }
  body.nx-rhythm .hu-proof > .hu-case-card .hu-case-logo { height: 152px; margin-bottom: 24px; padding: 24px; }
  body.nx-rhythm .hu-proof > .hu-case-card .hu-case-logo img { width: 320px; max-width: 100%; height: auto; max-height: 96px; object-fit: contain; }
  body.nx-rhythm .hu-proof > .hu-case-card h3 { font-size: clamp(24px, 2.4vw, 32px); line-height: 1.2; margin: 0 0 12px; }
  body.nx-rhythm .hu-proof > .hu-case-card .hu-eyebrow { margin: 0 0 12px; line-height: 1.5; }
  body.nx-rhythm .hu-proof > .hu-case-card > p { margin: 0; line-height: 1.65; }
  body.nx-rhythm .hu-proof > .hu-case-card > .hu-text-link { margin-top: 24px; padding-block: 8px; align-self: flex-start; }
  body.nx-rhythm .hu-proof-benefits > h3 { font-size: 24px; line-height: 1.25; margin: 0 0 24px; }
  body.nx-rhythm .hu-proof-benefits > ul { display: grid; gap: var(--nx-item-space); padding: 0; margin: 0; list-style: none; }
  body.nx-rhythm .hu-proof-benefits > ul > li { padding: 0; margin: 0; }
  body.nx-rhythm .hu-proof-benefits > ul > li > strong { display: block; font-size: 18px; line-height: 1.4; }
  body.nx-rhythm .hu-proof-benefits > ul > li > p { margin: 8px 0 0; font-size: 16px; line-height: 1.65; max-width: 60ch; }
  body.nx-rhythm .hu-proof-benefits > div { padding-block: var(--nx-item-space); }
  body.nx-rhythm .hu-proof-benefits > div > :last-child { margin-bottom: 0; }
  body.nx-rhythm .hu-proof > .nx-proof-quote { grid-column: 1 / -1; margin: 0; padding-top: var(--nx-item-space); border-top: 1px solid var(--purple); }
  body.nx-rhythm .hu-proof > .nx-proof-quote blockquote { max-width: 68ch; font-size: 20px; line-height: 1.6; }
  body.nx-rhythm .hu-proof > .nx-proof-quote figcaption { margin-top: 12px; }
  body.nx-rhythm .hu-proof + .hu-reading { margin-top: var(--nx-group-space); font-size: 17px; max-width: 72ch; }
  body.nx-rhythm .hu-service-rows { column-gap: var(--nx-column-space); }
  body.nx-rhythm .hu-service-rows > :is(div, article) { padding-block: var(--nx-item-space); }
  body.nx-rhythm .hu-service-rows h3 { margin-bottom: 12px; line-height: 1.3; }
  body.nx-rhythm .hu-service-rows p { line-height: 1.65; }
  body.nx-rhythm .hu-service-rows :is(div, article) > :last-child { margin-bottom: 0; }
  body.nx-rhythm .hu-case-grid { gap: 40px var(--nx-column-space); }
  body.nx-rhythm .hu-faq summary { padding-block: 20px; }
  body.nx-rhythm .hu-faq details > div { padding-bottom: 24px; line-height: 1.65; }
  body.nx-rhythm .hu-faq details > div > :last-child { margin-bottom: 0; }
  body.nx-rhythm .hu-next { gap: var(--nx-group-space) var(--nx-column-space); }
  body.nx-rhythm .hu-related { row-gap: 0; }
  body.nx-rhythm .contact-entry { padding-block: 40px var(--nx-section-space); }
  body.nx-rhythm .contact-aftercare { padding-block: var(--nx-section-space); }
  body.nx-rhythm .am-page { --am-space: var(--nx-section-space); }
  body.nx-rhythm .am-section-intro { margin-bottom: var(--nx-heading-space); }
  body.nx-rhythm .am-projects > .shell > p { margin-bottom: var(--nx-heading-space); }
  body.nx-rhythm .am-project { padding-block: var(--nx-group-space); }
  body.nx-rhythm .am-project-rule { margin-bottom: var(--nx-heading-space); }
  /* Keep the showroom's scroll scene and its intentional dwell time intact. */
  body.nx-rhythm .ws-intro { padding-block: var(--nx-section-space) var(--nx-group-space); }
  body.nx-rhythm :is(.ws-playground, .ws-projects, .ws-services, .ws-together, .ws-contact) { padding-block: var(--nx-section-space); }
  body.nx-rhythm .ws-together .ws-section-heading { margin-bottom: var(--nx-heading-space); }
  body.nx-rhythm .ws-faq { padding-block: 0 var(--nx-section-space); }
  body.nx-rhythm.nx-site .kw-copy section { margin-bottom: var(--nx-group-space); }
  body.nx-rhythm.nx-site .kw-copy section:last-child { margin-bottom: 0; }
  body.nx-rhythm.nx-site .kw-copy h2 { margin-bottom: 20px; }
  body.nx-rhythm.nx-site .kw-copy h3 { margin-bottom: 12px; }
  body.nx-rhythm.nx-site .kw-copy p + p { margin-top: var(--nx-copy-space); }
  body.nx-rhythm.nx-site .kw-offer-band { padding-block: var(--nx-section-space); }
  /* The campaign pages share the spacing scale, while keeping their own layouts. */
  body.nx-rhythm:not(.nx-site) main > :is(.section, .closing, .scope-section, .projects) { padding-block: var(--nx-section-space); }
  body.nx-rhythm:not(.nx-site) main > section.nx-section-continuation { padding-top: 0; }
  body.nx-rhythm:not(.nx-site) .section-head { margin-bottom: var(--nx-heading-space); }
  body.nx-rhythm:not(.nx-site) main > .process { padding-block: var(--nx-section-space); }
  body.nx-rhythm:not(.nx-site) main > .last-action { padding-block: 0 var(--nx-section-space); }
  @media (max-width: 760px) {
    body.nx-rhythm .hu-proof { grid-template-columns: minmax(0, 1fr); }
    body.nx-rhythm .hu-proof > .hu-case-card .hu-case-logo { height: 132px; padding: 20px; }
    body.nx-rhythm .hu-proof > .hu-case-card h3 { font-size: 26px; }
    body.nx-rhythm .hu-proof-benefits > h3 { font-size: 22px; }
    body.nx-rhythm .hu-proof > .nx-proof-quote blockquote { font-size: 18px; }
  }
  @media (max-width: 600px) {
    body.nx-rhythm .contact-entry { padding-top: 24px; }
    body.nx-rhythm .hu-case-grid { row-gap: 32px; }
    body.nx-rhythm .hu-proof-benefits > h3 { margin-bottom: 20px; }
    body.nx-rhythm .hu-faq summary { gap: 16px; }
  }
}

/* Corrected component spacing, 13 November 2026. */
@media screen {
  body.nx-rhythm .hu-section > .shell > .hu-reading + .btn {
    margin-top: var(--nx-group-space);
  }
  body.nx-rhythm .nx-project-service-routes {
    margin-top: var(--nx-section-space);
    max-width: none;
  }
  body.nx-rhythm .nx-project-service-routes > h3 {
    margin: 0 0 16px;
    line-height: 1.3;
  }
  body.nx-rhythm .nx-project-service-routes > p {
    margin: 0 0 var(--nx-heading-space);
    line-height: 1.65;
  }
  body.nx-rhythm .nx-project-service-routes > .hu-related { margin-top: 0; }
}

@media screen { body.nx-rhythm .nx-region .nx-region-copy .nx-region-examples { margin-top: var(--nx-copy-space); } }
