/* One scale for all standard entries. Values alias existing theme spacing tokens. */
:root {
 --omedica-rhythm-header-breadcrumb:var(--space-md);
 --omedica-rhythm-breadcrumb-hero:var(--space-md);
 --omedica-rhythm-hero-nav:var(--content-gap);
 --omedica-rhythm-nav-content:var(--space-md);
 --omedica-rhythm-sections:var(--section-gap);
 --omedica-intro-top-space:var(--omedica-rhythm-header-breadcrumb);
 --omedica-intro-breadcrumb-to-title:var(--omedica-rhythm-breadcrumb-hero);
 --omedica-intro-title-to-description:var(--wp--preset--spacing--space-sm);
 --omedica-intro-description-to-controls:var(--wp--preset--spacing--space-md);
 --omedica-intro-title-to-controls:var(--wp--preset--spacing--space-md);
 --omedica-intro-bottom-space:var(--wp--preset--spacing--space-md);
}
/* The same compact scale works on mobile: no accumulated per-template padding.
   Only the first H1 ancestry and its immediate intro siblings receive these roles. */
html body main.omedica-page-entry {
 margin-block-start:0;
 padding-block-start:var(--omedica-intro-top-space);
}
html body .omedica-page-entry .omedica-intro-route {
 margin-block-start:0;
 padding-block-start:0;
}
html body .omedica-page-entry :is(.omedica-intro-title,.omedica-intro-breadcrumbs) {margin-block:0;}
html body .omedica-page-entry .omedica-intro-description {
 margin-block:var(--omedica-intro-title-to-description) 0;
}
html body .omedica-page-entry .omedica-intro-content {
 margin-block-start:var(--omedica-intro-bottom-space);
}
html body .omedica-page-entry .omedica-intro-controls--after-description {margin-block-start:var(--omedica-intro-description-to-controls);}
html body .omedica-page-entry .omedica-intro-controls--after-title {margin-block-start:var(--omedica-intro-title-to-controls);}
html body .omedica-page-entry .omedica-intro-after-breadcrumb {margin-block-start:var(--omedica-intro-breadcrumb-to-title);}
/* Split Services header: the composition itself must not insert a second gap. */
html body .omedica-page-entry .omedica-catalog-page-header {display:block;}
/* Intro-only section wrappers must not add a section-sized blank before content. */
html body .omedica-page-entry :is(.omedica-section,.omedica-section--compact).omedica-intro-route:has(> .omedica-section-intro:only-child) {padding-block-end:0;}
/* Hero columns/images retain their composition; outer entry spacing is shared. */
html body .omedica-page-entry .omedica-intro-hero {padding-block:0;margin-block-end:0;}
html body .omedica-page-entry .omedica-intro-hero:not(.omedica-doctor-hero) > .omedica-intro-route {align-self:start;}
html body .omedica-page-entry :is(.omedica-section-intro,.omedica-domain-intro,.omedica-analysis-intro,.omedica-media-intro,.omedica-reviews-intro,.omedica-catalog-page-header).omedica-intro-route {margin-block-end:0;padding-block-end:0;}

/* Bounded CTA panels retain their symmetric internal padding. */
html body .omedica-page-entry .omedica-intro-content:not(.omedica-context-booking):not(.omedica-helper-cta) {padding-block-start:0;}

@media(max-width:767px) {
 :root {--omedica-rhythm-header-breadcrumb:var(--space-sm);--omedica-rhythm-breadcrumb-hero:var(--space-sm);--omedica-rhythm-nav-content:var(--space-sm);}
}

/* A breadcrumb wrapper owns its gap: do not add its grid gap to a child margin. */
html body .omedica-page-entry .omedica-internal-intro {gap:var(--omedica-intro-breadcrumb-to-title);}
html body .omedica-page-entry .omedica-internal-intro > .omedica-intro-after-breadcrumb {margin-block-start:0;}
