/* ==========================================================================
   1.8.405 — Section rhythm (site-wide).
   One shared token: --idx-section-end = space between the end of a section's content
   (cards, forms, grids …) and the next section / banner. Top padding is unchanged.
   Applies to .section (all standard templates) and .svx-section (Laser Engraving, Apparel).
   Not applied to: heroes (.hero / .page-hero / .svx-hero), closing CTA bands (.svx-close), the footer,
   Book Laser Training / Repair (#63 / #64), cart, checkout, and the configurator / builder pages.
   ========================================================================== */
:root { --idx-section-end: 28px; }

body:not(.page-id-63):not(.page-id-64):not(.woocommerce-cart):not(.woocommerce-checkout):not(.idx-configurator) main :is(.section, .svx-section):not(.hero):not(.page-hero) {
	padding-bottom: var(--idx-section-end) !important;
}
/* The last block in a section should not add its own trailing margin on top of the token. */
body:not(.page-id-63):not(.page-id-64):not(.woocommerce-cart):not(.woocommerce-checkout):not(.idx-configurator) main :is(.section, .svx-section):not(.hero):not(.page-hero) > div > :last-child,
body:not(.page-id-63):not(.page-id-64):not(.woocommerce-cart):not(.woocommerce-checkout):not(.idx-configurator) main :is(.section, .svx-section):not(.hero):not(.page-hero) > :last-child:not(.lfh) {
	margin-bottom: 0;
}
/* Policy / terms pages use a single body wrapper instead of .section. */
.policy-page .terms-body, .terms-page .terms-body { padding-bottom: var(--idx-section-end); }
