/* Modular composition; spacing roles are owned by SPACING.md. */
.omedica-contacts-system {display:grid;gap:var(--section-gap);}
.omedica-contacts-system > * {margin-block:0;min-width:0;}
.omedica-contact-grid,.omedica-contact-action-grid {display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--stack-gap);}
.omedica-contact-grid > *,.omedica-contact-action-grid > * {min-width:0;margin:0;}
.omedica-contact-cell {padding:var(--card-padding-spacious);border:var(--wp--custom--border--width) solid var(--wp--preset--color--border);border-radius:var(--wp--custom--radius--md);box-sizing:border-box;overflow-wrap:anywhere;}
.omedica-contact-info,.omedica-contact-location,.omedica-contact-gallery {grid-column:span 2;}
.omedica-contact-info {display:flex;flex-direction:column;gap:var(--stack-gap);min-block-size:clamp(20rem,30vw,28rem);}
.omedica-contact-info > *,.omedica-contact-info p {margin:0;}
.omedica-contact-info a:not(.wp-element-button) {text-decoration:none;}
.omedica-contact-primary-phone {font-size:clamp(2rem,3.3vw,3.5rem);font-weight:600;line-height:1.2;}
.omedica-contact-info__bottom {display:flex;flex-wrap:wrap;align-items:end;justify-content:space-between;gap:var(--stack-gap);margin-block-start:auto;padding-block-start:var(--content-gap);}
.omedica-contact-info__bottom > * {margin:0;}
.omedica-contact-location {padding:0;overflow:hidden;}
.omedica-contact-location .omedica-map-frame {display:block;width:100%;height:100%;min-height:20rem;border:0;aspect-ratio:5/3;}
.omedica-contact-direction {display:flex;flex-direction:column;gap:var(--stack-gap);}
.omedica-contact-direction > * {margin:0;}
.omedica-contact-direction h3 {font-size:var(--wp--preset--font-size--medium);line-height:1.3;}
.omedica-contact-action-grid {grid-template-columns:repeat(5,minmax(0,1fr));}
.omedica-contact-booking-cell {grid-column:span 2;display:flex;}
.omedica-contact-booking-cell .wp-block-button__link,.omedica-feedback-action {display:flex;align-items:center;justify-content:space-between;gap:var(--control-gap);width:100%;padding:var(--card-padding-spacious);box-sizing:border-box;border-radius:var(--wp--custom--radius--md);min-height:var(--wp--custom--interaction--touch-target);font-size:var(--wp--preset--font-size--medium);text-decoration:none;}
.omedica-feedback-action {border:var(--wp--custom--border--width) solid var(--wp--preset--color--border);}
html:not(.special) .omedica-feedback-action:hover,html:not(.special) .omedica-contact-info a:hover {color:var(--wp--preset--color--action);}
.omedica-contact-route {display:grid;gap:var(--content-gap);}
.omedica-contact-route > * {margin:0;}
.omedica-contact-route .omedica-contacts-map {width:100%;}
.omedica-facade-strip {display:grid;gap:var(--control-gap);}
.omedica-photo-track {display:grid;grid-auto-flow:column;grid-auto-columns:88%;gap:var(--control-gap);overflow-x:auto;overscroll-behavior-inline:contain;scroll-snap-type:x proximity;min-width:0;max-width:100%;}
.omedica-photo-tile {margin:0;min-width:0;scroll-snap-align:start;}
:where(.omedica-photo-tile) .omedica-photo-viewport {display:block;aspect-ratio:3/2;}
.omedica-photo-lightbox,.omedica-feedback-dialog {width:calc(100% - 2 * var(--page-gutter));max-width:var(--wp--style--global--content-size);max-height:calc(100dvh - 2 * var(--stack-gap));padding:var(--card-padding-spacious);border:var(--wp--custom--border--width) solid var(--wp--preset--color--border);border-radius:var(--wp--custom--radius--md);color:var(--wp--preset--color--text);background:var(--wp--preset--color--background);box-sizing:border-box;overscroll-behavior:contain;}
.omedica-photo-lightbox::backdrop,.omedica-feedback-dialog::backdrop {background:color-mix(in srgb,var(--wp--preset--color--text) 65%,transparent);}
.omedica-photo-lightbox[open],.omedica-feedback-dialog[open] {display:flex;flex-direction:column;gap:var(--stack-gap);}
.omedica-dialog-close {align-self:end;padding:0;cursor:pointer;}
.omedica-photo-lightbox figure {margin:0;min-height:0;text-align:center;}
.omedica-photo-lightbox img {width:100%;height:60dvh;object-fit:contain;touch-action:pan-y pinch-zoom;}
.omedica-feedback-panels {display:grid;gap:var(--section-gap);}
.omedica-feedback-panels:has(> dialog):not(:has(> section)) {gap:0;}
.omedica-feedback-panel > h2 {margin:0 0 var(--stack-gap);}
.omedica-feedback-dialog .omedica-contact-method {border:0;padding:0;background:transparent;}
.omedica-feedback-dialog .omedica-contact-method > summary {display:none;}
.omedica-feedback-dialog .omedica-contact-form {border:0;padding:0;margin:0;}
:is(.omedica-contact-grid,.omedica-contact-action-grid,.omedica-photo-lightbox,.omedica-feedback-dialog) :is(a,button,[tabindex]):focus-visible {outline:var(--wp--custom--focus--width) solid var(--wp--preset--color--action);outline-offset:var(--wp--custom--focus--offset);}
@media(max-width:1199px){
 .omedica-contact-grid,.omedica-contact-action-grid {grid-template-columns:repeat(2,minmax(0,1fr));}
 .omedica-contact-info,.omedica-contact-location {grid-column:span 1;}
 .omedica-contact-gallery {grid-column:span 2;}
 .omedica-contact-primary-phone {font-size:clamp(1.5rem,3.8vw,2.75rem);}
}
@media(max-width:767px){
 .omedica-contact-grid,.omedica-contact-action-grid {grid-template-columns:minmax(0,1fr);}
 .omedica-contact-grid > *,.omedica-contact-action-grid > * {grid-column:auto;}
 .omedica-contact-info {min-block-size:0;}
 .omedica-contact-location .omedica-map-frame {min-height:0;height:auto;aspect-ratio:4/3;}
 .omedica-photo-track {grid-auto-columns:88%;}
}
.omedica-contact-grid:not(:has(.omedica-facade-strip)) .omedica-contact-direction {grid-column:span 2;}
html:not(.special) .omedica-contact-action-group .dashicons-phone::before {content:none;}
html.special .omedica-contact-action-group .omedica-utility-phone-line {display:none;}
/* WP social SVG is a filled silhouette, not a stroked route icon. Explicitly
   reset its inherited black color; never filter or outline its filled path. */
html:not(.special) .omedica-contact-action-group__secondary :is(svg,svg path,.dashicons) {color:var(--wp--preset--color--action);}
html:not(.special) .omedica-contact-action-group .wp-social-link svg {fill:currentColor;stroke:none;width:20px;height:20px;}
html:not(.special) .omedica-contact-action-group .wp-social-link svg path {fill:currentColor;}
.omedica-contact-action-group__secondary :is(.omedica-icon-button,.wp-social-link > a) {display:inline-flex;align-items:center;justify-content:center;}
@media(max-width:767px){.omedica-contact-grid:not(:has(.omedica-facade-strip)) .omedica-contact-direction {grid-column:auto;}}
.omedica-feedback-dialog .omedica-contact-method {overflow:visible;}

/* Contact polish: media fills the existing cell; no new composition. */
.omedica-contact-primary-phone p,.omedica-contact-primary-phone a {font:inherit;white-space:nowrap;overflow-wrap:normal;}
.omedica-contact-info {container-type:inline-size;}
.omedica-contact-primary-phone {font-size:clamp(1.5rem,7.7cqi,3.5rem);}
.omedica-contact-gallery {padding:var(--card-padding-compact);align-self:start;}
.omedica-facade-strip {position:relative;gap:0;}
.omedica-photo-lightbox {position:fixed;width:fit-content;max-width:calc(100vw - 2 * var(--space-sm));max-height:calc(100dvh - 2 * var(--space-sm));padding:0;border:0;background:transparent;overflow:visible;}
.omedica-photo-lightbox[open] {display:grid;gap:0;}
.omedica-photo-lightbox figure {display:grid;justify-items:center;}
.omedica-photo-lightbox img {display:block;width:auto;height:auto;max-width:calc(100vw - 2 * var(--space-sm));max-height:calc(100dvh - 2 * var(--space-xl));border-radius:var(--wp--custom--radius--md);}
.omedica-photo-lightbox figcaption:not(:empty) {padding:var(--space-xs) var(--space-sm);background:var(--wp--preset--color--background);border-radius:var(--wp--custom--radius--sm);}
.omedica-photo-lightbox .omedica-dialog-close {position:absolute;inset-block-start:var(--space-xs);inset-inline-end:var(--space-xs);z-index:2;background:var(--wp--preset--color--background);}
html:not(.special) .omedica-contact-action-group .omedica-neutral-social .wp-social-link {background:transparent!important;color:var(--wp--preset--color--action)!important;}
html:not(.special) .omedica-contact-action-group .omedica-neutral-social .wp-social-link:hover {background:transparent!important;}
.omedica-photo-lightbox .omedica-dialog-close {width:var(--wp--custom--interaction--touch-target);height:var(--wp--custom--interaction--touch-target);max-width:var(--wp--custom--interaction--touch-target);justify-self:end;inset-inline-start:auto;}
.omedica-contact-primary-phone {font-size:clamp(1.5rem,9.4cqi,4.25rem);letter-spacing:-.025em;}
@media(max-width:1199px){.omedica-contact-primary-phone {font-size:clamp(1.5rem,8.6cqi,3rem);}}
/* Outrank the shared close's position:relative without changing its cross/focus. */
body .omedica-photo-lightbox > .omedica-dialog-close.omedica-modal-close {position:absolute;top:var(--space-xs);right:var(--space-xs);bottom:auto;left:auto;align-self:start;z-index:3;border:var(--wp--custom--border--width) solid var(--wp--preset--color--border);background:var(--wp--preset--color--background);border-radius:var(--wp--custom--radius--pill);}
body .omedica-photo-lightbox > .omedica-dialog-close.omedica-modal-close:is(:hover,:focus-visible) {background:var(--wp--preset--color--surface);border-color:var(--wp--preset--color--action);}
/* In-flow thumbnails: percentage tracks resolve against their own grid column. */
.omedica-contact-gallery {align-self:start;min-width:0;}
.omedica-contact-gallery .omedica-photo-track {width:100%;box-sizing:border-box;grid-auto-columns:calc((100% - 2 * var(--control-gap)) / 2.25);align-items:start;justify-content:start;direction:ltr;scroll-padding-inline:0;}
@media(max-width:767px){.omedica-contact-gallery .omedica-photo-track {grid-auto-columns:82%;}}

/* Desktop row height comes from the transport content, never intrinsic images. */
@media(min-width:1200px){
 .omedica-contact-gallery {align-self:stretch;contain:size;display:grid;grid-template-rows:minmax(0,1fr);min-height:0;}
 .omedica-contact-gallery .omedica-facade-strip {min-height:0;display:grid;grid-template-rows:minmax(0,1fr);}
 .omedica-contact-gallery .omedica-photo-track {min-height:0;height:100%;align-items:stretch;}
 .omedica-contact-gallery .omedica-photo-tile {min-height:0;display:grid;grid-template-rows:minmax(0,1fr) auto;}
 .omedica-contact-gallery .omedica-photo-viewport {min-height:0;height:100%;aspect-ratio:auto;}
 .omedica-contact-gallery .omedica-photo-viewport img {height:100%;object-fit:cover!important;}
}

/* Shared form composition; foundations remain theme.json + spacing tokens. */
.omedica-modal-header,.omedica-booking-dialog__header {display:flex;align-items:center;justify-content:space-between;gap:var(--control-gap);}
.omedica-modal-header {margin-block-end:var(--stack-gap);}
.omedica-modal-header > h2,.omedica-booking-dialog__header > h2 {margin:0;min-width:0;overflow-wrap:anywhere;}
.omedica-feedback-dialog {max-width:var(--wp--style--global--content-size);}
.omedica-contact-form > .omedica-form-field:first-of-type {width:100%;max-width:32rem;}
:is(.omedica-contact-form,.omedica-booking-ui,.omedica-program-request) .omedica-form-control {
 box-sizing:border-box;min-width:0;max-width:100%;min-height:var(--wp--custom--interaction--touch-target);
 border-radius:var(--wp--custom--radius--sm);border:var(--wp--custom--border--width) solid var(--wp--preset--color--border);
 padding:var(--space-xs) var(--space-sm);font:inherit;line-height:1.5;
}
:is(.omedica-contact-form,.omedica-booking-ui,.omedica-program-request) textarea.omedica-form-control {min-height:calc(4 * var(--wp--custom--interaction--touch-target));resize:vertical;}
:is(.omedica-contact-form,.omedica-booking-ui,.omedica-program-request) .omedica-form-control:focus-visible {outline:var(--wp--custom--focus--width) solid var(--wp--preset--color--action);outline-offset:var(--wp--custom--focus--offset);}
.omedica-contact-form > .wp-element-button,.omedica-booking-patient-form > .wp-element-button {border-radius:var(--wp--custom--radius--pill);width:auto;justify-self:start;}
.omedica-contact-form .omedica-review-relations {grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--stack-gap);}
.omedica-contact-form .omedica-form-field {margin:0;}
.omedica-contact-method--review {background:var(--wp--preset--color--background);}
@media(max-width:767px){.omedica-contact-form .omedica-review-relations {grid-template-columns:minmax(0,1fr);}}
/* Select enhancement reads the same geometry contract as ordinary form inputs. */
:is(.omedica-contact-form,.omedica-booking-ui,.omedica-program-request) {--omedica-control-height:var(--wp--custom--interaction--touch-target);--omedica-control-radius:var(--wp--custom--radius--sm);}
html body.omedica-public-polish :is(.omedica-contact-form,.omedica-booking-ui,.omedica-program-request) .omedica-form-control {border-radius:var(--wp--custom--radius--sm);padding:var(--space-xs) var(--space-sm);}
html body.omedica-public-polish :is(.omedica-contact-form,.omedica-booking-ui,.omedica-program-request) textarea.omedica-form-control {min-height:calc(4 * var(--wp--custom--interaction--touch-target));}
