/* Contract: docs/design-system/SPACING.md. Primitive values live in theme.json. */
:root {
 --space-xs:var(--wp--preset--spacing--space-xs);
 --space-sm:var(--wp--preset--spacing--space-sm);
 --space-md:var(--wp--preset--spacing--space-md);
 --space-lg:var(--wp--preset--spacing--space-lg);
 --space-xl:var(--wp--preset--spacing--space-xl);
 --space-section:var(--wp--preset--spacing--space-section);
 --page-gutter:var(--space-xl);
 --section-gap:var(--space-xl);
 --content-gap:var(--space-lg);
 --stack-gap:var(--space-md);
 --control-gap:var(--space-sm);
 --card-padding-compact:var(--space-sm);
 --card-padding:var(--space-md);
 --card-padding-spacious:var(--space-lg);
 --prose-paragraph-gap:var(--stack-gap);
 --prose-heading-gap:var(--content-gap);
 --prose-section-gap:var(--section-gap);
 --prose-list-gap:var(--space-xs);
 --prose-figure-gap:var(--content-gap);
 --prose-table-gap:var(--content-gap);
 --prose-rail-gap:var(--content-gap);
}
@media (max-width:1199px) { :root {--page-gutter:var(--space-lg);} }
@media (max-width:767px) {
 :root {--page-gutter:var(--space-md);--section-gap:var(--space-lg);--content-gap:var(--space-md);}
}
/* Header remains frozen; booking and forms use the global semantic contract. */
.omedica-site-header {
 --wp--custom--layout--site-gutter:clamp(1.25rem, 4vw, 4rem);
 --wp--custom--spacing--section:clamp(3rem, 7vw, 6.25rem);
 --wp--custom--spacing--heading-content:clamp(1.75rem, 4vw, 3.125rem);
 --wp--custom--spacing--block:clamp(1.25rem, 3vw, 2.1875rem);
 --wp--custom--spacing--text:clamp(1rem, 1.5vw, 1.25rem);
 --wp--custom--card-padding:clamp(1.25rem, 1rem + 1vw, 2rem);
}
/* Same outer box as Gutenberg: wide size is content width, gutters outside it. */
.omedica-domain-container {
 margin-inline:auto;width:100%;max-width:calc(var(--wp--style--global--wide-size) + 2 * var(--page-gutter));
 padding-inline:var(--page-gutter);box-sizing:border-box;
}
.omedica-stack {display:flex;flex-direction:column;gap:var(--stack-gap);}
.omedica-stack > * {margin-block:0;min-width:0;}
.omedica-card--compact {padding:var(--card-padding-compact);}
.omedica-card--spacious {padding:var(--card-padding-spacious);}
/* One compact facts group; normal DOM order also determines mobile/read order. */
.omedica-contact-details {display:grid;gap:var(--control-gap);}
.omedica-contact-details > * {margin:0;}
.omedica-contacts-overview > .omedica-facade {width:100%;align-self:start;}
/* Normal presentation only: special mode retains its existing palette/targets. */
.omedica-contact-action-group__secondary .wp-block-social-links {margin:0;gap:var(--control-gap);}
.omedica-site-header {
 --wp--style--root--padding-left:clamp(1.25rem, 4vw, 4rem);
 --wp--style--root--padding-right:clamp(1.25rem, 4vw, 4rem);
}

/* Booking uses one natural-height stack in the page and the existing dialog. */
.omedica-booking-ui {display:flex;flex-direction:column;align-items:stretch;gap:var(--stack-gap);padding:var(--card-padding);}
.omedica-booking-ui > * {margin-block:0;min-width:0;}
.omedica-booking-flow-component,.omedica-booking-flow {display:grid;align-content:start;gap:var(--stack-gap);}
.omedica-booking-ui .omedica-booking-flow > * {margin-block:0;}
.omedica-booking-ui .omedica-booking-step {display:grid;align-content:start;gap:var(--stack-gap);}
.omedica-booking-ui .omedica-booking-step > * {margin-block:0;padding-block-start:0;}
.omedica-booking-ui .omedica-booking-summary {margin-block:0;}
.omedica-booking-ui .omedica-booking-flow__bar {gap:var(--control-gap);margin:0;flex-wrap:wrap;}
.omedica-booking-ui .omedica-booking-entry-return {margin:0;justify-self:start;}
.omedica-booking-ui :is(.omedica-form-state,[data-booking-analysis-status]):empty {display:none;}
.omedica-booking-ui .omedica-booking-entry__grid {margin:0;gap:var(--control-gap);}
.omedica-booking-entry {display:grid;gap:var(--stack-gap);}
.omedica-booking-ui :is(.omedica-booking-service-list,.omedica-booking-catalog-list) {margin-block:0;}
.omedica-booking-ui .omedica-booking-category {gap:var(--control-gap);margin:0;}
.omedica-booking-ui fieldset {margin:0;}
.omedica-booking-ui .omedica-booking-step > h2 {padding:0;}
.omedica-booking-ui .omedica-booking-caption,.omedica-booking-ui .omedica-booking-subheading {margin:0;}
.omedica-booking-dialog__header,.omedica-booking-dialog__body {padding:var(--card-padding);}
.omedica-booking-dialog .omedica-booking-ui {padding:0;}
/* Same wide outer edge as other Gutenberg pages; reading/forms can stay narrower inside. */
.omedica-public-polish .omedica-booking-page > .alignwide,
.omedica-public-polish .omedica-booking-page .omedica-booking-section,
.omedica-public-polish .omedica-booking-page .omedica-booking-page__intro {max-width:var(--wp--style--global--wide-size)!important;width:100%;padding-inline:0;box-sizing:border-box;}
.omedica-booking-page .omedica-booking-page__intro {padding-block-end:var(--content-gap);}
.omedica-booking-page .omedica-booking-section {padding-block-end:var(--section-gap);}
/* Shared native/CF7 form primitives: markup, names, validation and handlers unchanged. */
.omedica-contact-form,.omedica-booking-form,.omedica-form-stack,.wpcf7-form {display:grid;align-content:start;gap:var(--stack-gap);}
.omedica-contact-form > *, .omedica-booking-form > *, .wpcf7-form > p {margin-block:0;min-width:0;}
.omedica-form-field,.omedica-form-label,.wpcf7-form label:not(.wpcf7-acceptance label) {display:grid;gap:var(--control-gap);}
.omedica-form-grid,.omedica-form-row {display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--stack-gap);}
.omedica-form-grid > *, .omedica-form-row > * {margin:0;min-width:0;}
.omedica-contact-form :is(input:not([type=checkbox],[type=radio]),select),.wpcf7-form :is(input:not([type=checkbox],[type=radio],[type=submit],[type=hidden]),select,textarea) {width:100%;min-width:0;max-width:100%;min-height:var(--wp--custom--interaction--touch-target);box-sizing:border-box;padding:var(--space-xs) var(--control-gap);font:inherit;color:var(--wp--preset--color--text);background:var(--wp--preset--color--background);border:var(--wp--custom--border--width) solid var(--wp--preset--color--border);border-radius:var(--wp--custom--radius--sm);}
.omedica-contact-form textarea,.wpcf7-form textarea {min-height:7em;resize:vertical;}
.omedica-contact-form .omedica-consent,.wpcf7-acceptance label {display:flex;align-items:start;gap:var(--control-gap);}
.wpcf7-form .wpcf7-list-item {margin:0;}
.wpcf7-form .wpcf7-acceptance input {flex-shrink:0;}
.omedica-form-actions {display:flex;flex-wrap:wrap;align-items:center;gap:var(--control-gap);}
.omedica-contact-form > button[type=submit],.wpcf7-submit {justify-self:start;}
.omedica-form-message,.omedica-form-state:not(:empty),.wpcf7 form .wpcf7-response-output {margin:0;padding:var(--space-xs) var(--control-gap);}
.omedica-form-state:empty {margin:0;padding:0;}
.wpcf7-form .wpcf7-not-valid-tip {margin-block-start:var(--space-xs);color:var(--wp--custom--status--error);}
.omedica-contact-form [aria-invalid=true],.wpcf7-form [aria-invalid=true] {border-color:var(--wp--custom--status--error);}
.omedica-contact-method > summary,.omedica-contact-methods .omedica-contact-method > summary,.omedica-booking-page .omedica-contact-method > summary {min-height:var(--wp--custom--interaction--touch-target);padding:var(--card-padding);}
.omedica-contact-form,.omedica-contact-methods .omedica-contact-form {gap:var(--stack-gap);padding:var(--card-padding);}
@media(max-width:767px){.omedica-form-grid,.omedica-form-row {grid-template-columns:minmax(0,1fr);}}
.omedica-public-polish main .omedica-contact-form textarea,.omedica-feedback-dialog .omedica-contact-form textarea {min-height:7em;}
@media(min-width:768px){
 .omedica-contact-form[data-demo-form=callback],.omedica-vacancy-form .wpcf7-form,[data-program-request] .wpcf7-form {grid-template-columns:repeat(2,minmax(0,1fr));}
 .omedica-contact-form[data-demo-form=callback] > *, .omedica-vacancy-form .wpcf7-form > *,[data-program-request] .wpcf7-form > * {grid-column:1 / -1;}
 .omedica-contact-form[data-demo-form=callback] > .omedica-form-field:has(input[name=name],input[name=phone]),.wpcf7-form > p:has(input[name=candidate-name],input[name=candidate-phone],input[name=request-name],input[name=request-phone]) {grid-column:auto;}
}

html body.omedica-public-polish .omedica-contact-form .omedica-form-control {min-height:var(--wp--custom--interaction--touch-target);padding:var(--space-xs) var(--control-gap);}

/* Help is a bordered card, so the reading-body reset must not remove its top inset. */
.omedica-reading-body #doctor-help.omedica-domain-surface,#doctor-help.omedica-domain-surface {padding:var(--card-padding-spacious);}
#doctor-help > h2 {margin:0;}
#doctor-help > ul {margin-block:var(--stack-gap) 0;padding-inline-start:var(--space-lg);}
#doctor-help > ul > li {margin-block:0;padding-inline-start:var(--space-xs);overflow-wrap:anywhere;}
#doctor-help > ul > li + li {margin-block-start:var(--control-gap);}

/* Major sections share one rhythm, including media and related content. */
.omedica-domain-container > :is(section,.omedica-direction-editorial):not(.omedica-page-section-nav + *),
.omedica-direction-editorial .omedica-content > :is(section,.omedica-photo-gallery) {margin-block:var(--section-gap) 0;}
