/* Shared with the editor. Design values come from theme.json. */
:where(*, *::before, *::after) { box-sizing: border-box; }
:where(html) { scroll-padding-block: 3rem; }
:where(body) { margin: 0; }
:where(body, .editor-styles-wrapper) { font-synthesis: none; }
:where(img, video) { max-width: 100%; height: auto; }
/* Panoramic page heroes retain the full photograph at every viewport width. */
.wp-block-image.outloud-page-hero img {
	display: block;
	width: 100%;
	height: auto;
	border-radius: 1.25rem;
}
:where(iframe) { max-width: 100%; }
:where(h1, h2, h3, h4, h5, h6, p, a, li, th, td) { overflow-wrap: anywhere; }
:where(a) { text-underline-offset: .2em; text-decoration-thickness: .08em; }
:where(a:hover) { text-decoration-thickness: .14em; }
.has-auris-navy-background-color :where(a:not(.wp-element-button):not(.wp-block-button__link)) {
	color: var(--wp--preset--color--auris-white);
}
/* Keyboard focus remains visible across all surfaces without adding a mouse ring.
   Programmatic error/feedback focus can opt in with its component selector. */
:where(a, button, input, select, textarea, summary, [tabindex]):focus-visible {
	outline: var(--wp--custom--focus--width) solid var(--wp--custom--focus--color);
	outline-offset: var(--wp--custom--focus--offset);
	box-shadow: 0 0 0 3px var(--wp--preset--color--auris-white);
}
:where(:target) { scroll-margin-block-start: 3rem; }
/* Keep the core skip link's complete outline inside the viewport edge. */
#wp-skip-link:focus-visible { top: .5rem; left: .5rem; }
:where(input, textarea, select, button) { font: inherit; }
:where(input:not([type="checkbox"]):not([type="radio"]), select, textarea) {
	max-width: 100%;
	min-height: 2.75rem;
	border: 2px solid var(--wp--preset--color--auris-navy);
	border-radius: .25rem;
	background: var(--wp--preset--color--auris-white);
	color: var(--wp--preset--color--auris-navy);
	padding: .65rem;
}
:where(.wp-block-group, .wp-block-column, .wp-block-search, .wp-block-navigation) { min-width: 0; }
:where(.outloud-header) { border-bottom: 1px solid var(--wp--preset--color--auris-mist); }
:where(.outloud-footer) { border-top: 1px solid var(--wp--preset--color--auris-mist); }
:where(.wp-block-site-title a) { text-decoration: none; }
/* Native flow Groups use the same 24px rhythm as constrained content.
   Custom flex/grid components own their gaps and are deliberately excluded. */
:where(.wp-block-post-content, .editor-styles-wrapper) :where(.wp-block-group.is-layout-flow, .wp-block-column.is-layout-flow):not(:where(
    .outloud-editorial-hero, .outloud-hero-copy, .outloud-company-identity,
    .outloud-company-details, .outloud-company-contact, .outloud-services-heading,
    .outloud-service-grid, .outloud-service-card, .outloud-service-copy,
    .outloud-material-card, .outloud-app-card, .outloud-app-card-body,
    .outloud-staff-card, .outloud-staff-card-body,
    .outloud-therapy-cards > .wp-block-column, .outloud-service-cards > .wp-block-column, .outloud-billing-columns > .wp-block-column
)) > :where(*) { margin-block: 0; }
:where(.wp-block-post-content, .editor-styles-wrapper) :where(.wp-block-group.is-layout-flow, .wp-block-column.is-layout-flow):not(:where(
    .outloud-editorial-hero, .outloud-hero-copy, .outloud-company-identity,
    .outloud-company-details, .outloud-company-contact, .outloud-services-heading,
    .outloud-service-grid, .outloud-service-card, .outloud-service-copy,
    .outloud-material-card, .outloud-app-card, .outloud-app-card-body,
    .outloud-staff-card, .outloud-staff-card-body,
    .outloud-therapy-cards > .wp-block-column, .outloud-service-cards > .wp-block-column, .outloud-billing-columns > .wp-block-column
)) > :where(* + *) { margin-block-start: var(--wp--custom--spacing--content); }
:where(.wp-block-post-content) > :where(h2, h3, h4):not(:first-child) {
    margin-block-start: var(--wp--custom--spacing--subsection);
}
:where(.wp-block-navigation-item__content, .wp-block-query-pagination a, .wp-block-query-pagination .current) {
	display: inline-flex;
	align-items: center;
	min-height: 2.75rem;
	padding: .4rem .5rem;
}
:where(.wp-block-navigation .current-menu-item > .wp-block-navigation-item__content) {
	font-weight: 700;
	text-decoration: underline;
}
:where(.wp-block-navigation-submenu__toggle, .wp-block-navigation__submenu-icon) {
	min-width: 2.75rem;
	min-height: 2.75rem;
}
/* WordPress 7.1 adds aria-expanded when its Navigation module initializes.
   If that module fails, show the native child links and hide the inert opener.
   Specificity must exceed core's collapsed submenu rule; no DOM rewrite. */
.wp-block-navigation .wp-block-navigation-item:has(> .wp-block-navigation-submenu__toggle:not([aria-expanded])) > .wp-block-navigation__submenu-container {
	position: static;
	visibility: visible;
	opacity: 1;
	height: auto;
	width: auto;
	min-width: 0;
	overflow: visible;
	display: flex;
	border: 0;
	padding-inline-start: 1rem;
}
.wp-block-navigation .wp-block-navigation-submenu__toggle:not([aria-expanded]) { display: none; }
:where(.wp-block-search__inside-wrapper) { gap: .5rem; flex-wrap: wrap; }
:where(.wp-block-search__input) { width: 10rem; flex: 1 1 10rem; }
:where(.wp-block-search__button) { margin-left: 0; }
:where(.wp-block-search__label) { display: block; margin-bottom: .5rem; font-weight: 600; }
:where(.wp-block-post-template) { list-style: none; padding: 0; }
:where(.wp-block-post-template > li + li) { margin-block-start: var(--wp--preset--spacing--60); }
:where(.wp-block-query-pagination) { gap: 1rem; }
:where(.wp-block-query-pagination-numbers) { display: flex; flex-wrap: wrap; gap: .5rem; }
:where(.wp-block-table) { overflow-x: auto; }
:where(.wp-block-table th, .wp-block-table td) { padding: .75rem; border: 1px solid currentColor; }
:where(.wp-block-quote) { border-inline-start: .25rem solid currentColor; padding-inline-start: 1.5rem; }
:where(.wp-block-details summary) { padding: .75rem; cursor: pointer; }
:where(.wp-block-details[open] > :not(summary)) { margin-inline: .75rem; }
@media (max-width: 48rem) {
	:where(.outloud-header-row) { align-items: flex-start; flex-direction: column; }
	:where(.outloud-header .wp-block-navigation__container) { justify-content: flex-start; }
}
@media (prefers-reduced-motion: reduce) {
	:where(html) { scroll-behavior: auto; }
}
@media (forced-colors: active) {
	:where(a, button, input, select, textarea, summary, [tabindex]):focus-visible { outline-color: Highlight; box-shadow: none; }
	:where(.wp-element-button, .wp-block-button__link) { border-color: ButtonText; }
}
