/* Shared editorial inset. Frame, image and animation coordinates stay separate.
   One owner per text block: never pad an entire image/grid wrapper. */
:root { --content-inset:clamp(1.25rem,2vw,2.25rem); }
.sr { --sr-inset:var(--content-inset); }
.pn { --pn-inset:var(--content-inset); }
.page-content--diagnostic-report { --rp-inset:var(--content-inset); }
.page-content--how-it-works { --hiw-inset:var(--content-inset); }

/* Page introductions and service editorial blocks.
   HVR-20260912-42: Statement, direkter Textlink und Ledger-Spalten (Pricing) fehlten,
   ihre Tinte lag auf v2/v3 (gemessen 205.2 / 1242 bei 1440). */
.svc-open,.rp-open,
.svc-wrap > .svc-eye,.svc-wrap > .svc-title,.svc-wrap > .svc-copy,
.svc-wrap > .svc-statement,.svc-wrap > .svc-textlink,.price-ledger article > div,
.svc-wrap > .adv-hint,.svc-heading,.svc-cta__bottom,
.svc-price-core > div,.svc-split > div,.svc-split > .svc-title,
.svc-core-steps > div,.svc-price-foot,.svc-offers article,
.svc-band,.svc-list li,
.adv-controls,.adv-result,.adv-table caption,
.sprint-packages article:first-child,.sprint-packages article:last-child,
.sprint-packages article {
  padding-inline:var(--content-inset);
}
/* HVR-20260912-42: FAQ-Hairline beginnt an der Tinte und endet auf v3 (kein freier Anfang) */
.svc-faq details { margin-inline-start:var(--content-inset); padding-inline:0 var(--content-inset); }
.svc-faq--full details { margin-inline-start:0; } /* HVR-20260914-51/-52: FAQ in voller Breite, Linien beginnen auf v2 (kein freies Linienende) */
.svc-wrap > .price-more { padding-inline:var(--content-inset); } /* HVR-20260913-21: Toggle als direktes Wrap-Kind (Section 01) wie .svc-price-foot: Linie volle Breite, Text im Inset */
/* A split's children already own their inset. */
.svc-split > .svc-rhythm,.svc-split > .svc-faq { padding-inline:0; }
.svc-rhythm dl > div { padding-inline:var(--content-inset); }
.adv-table th:first-child,.adv-table td:first-child { padding-left:var(--content-inset); }
.adv-table th:last-child,.adv-table td:last-child { padding-right:var(--content-inset); }

/* Diagnostic: direct editorial children, never the full band or explorer. */
.rp--in .rp__band > div,
.rp__band > .rp-eyebrow,.rp__band > .rp-hl,.rp__band > .rp-bridge,
.rp__band > .rp-sub,.rp__band > .rp-rest,.rp__band > .wb-testi,
.rp-now__row,.rpc__schacht {
  padding-inline:var(--content-inset);
}
/* AD-Checkpoint 2 (26 D3, 30 D7): Ledger- und Stufen-Hairlines beginnen an der Ziffer-Tinte und enden auf v3 */
.rp-in__row,.rp-weg__s { margin-inline-start:var(--content-inset); padding-inline:0 var(--content-inset); }
/* HVR-20260912-31: die Ergebnis-Kaesten sitzen im eingerueckten Raster (wie .GAIN), Text-Pad aus --gain-pad */
.rp-out__f > p { padding-inline:var(--gain-pad); }

/* Sprint: headings and copy share the existing package/content inset.
   The story canvas, mat, rails and image aspect ratio are untouched. */
.sr-heading-row,.sr-brief__body,.sr-scope-intro,
.sr-story-titles > .sr-title,.sr-mobile-heading,
.sr-cta .svc-wrap > .sr-kicker,.sr-cta .svc-wrap > .sr-cta-title,
.sr-cta-bottom > .sr-copy { padding-inline:var(--content-inset); }
.pn-heading > .sr-title,.pn-cta .sr-cta-title { padding-inline:var(--content-inset); }

/* About/Portfolio: text only; media and structural rails stay on-grid. */
.why__open,.why__end,.what__head,.why-bridge,.why-bridge__sub,
.what__dim,.what__aud > .what__label,.what__aud > .what__sub,
.what__outcome > .what__label,
.pf-brands__label,.pf-folio__label { padding-inline:var(--content-inset); }
.why__left { left:calc(14.25% + var(--content-inset)); }
.ab-text { padding-inline:var(--content-inset); }

/* Workshop: include the Havior point in the same inset as the intro. */
/* HVR-20260912-02: nur in der absoluten Desktop-Komposition; der Mobil-Stapel
   (base.css: max-width 1380px oder max-height 820px) setzt .wp-hl auf left:auto,
   diese Regel darf ihn nicht ueberschreiben (AP-903, Versatz 84/141 px). */
@media (min-width: 1381px) and (min-height: 821px) {
  .wp-hl { left:calc(var(--v2) + var(--content-inset) + 24*var(--u)); }
}
.wp-intro { left:calc(var(--v2) + var(--content-inset)); }
.wp-info { --luft:var(--content-inset); }
.wpc__flaeche { padding-inline:var(--content-inset); }

@media (max-width:600px) {
  :root { --content-inset:1.25rem; }
}
.pf-about__headline { margin-left:calc(14.25% + var(--content-inset)); }
.what__aud-item,.hiw-cta { padding-inline:var(--content-inset); }
/* HVR-20260912-18: .GAIN-Kaesten und Stuetzzeilen sitzen im eingerueckten Spaltenraster; ihr Textabstand kommt aus --gain-pad (base.css) */
.what__outcol > p { padding-inline:var(--gain-pad); }
