/**
 * Base — sizing reset + WordPress-generated CSS classes Theme Check
 * expects every theme to style (alignment, captions, sticky posts,
 * screen-reader text). Generic/structural, not tied to any Figma
 * section — safe to add regardless of the current Figma access
 * blocker.
 *
 * The box-sizing reset below was added after a real mobile-width
 * screenshot check (375px) surfaced horizontal overflow — components
 * combining `width: 100%` with `padding` were rendering wider than
 * their container under the browser's content-box default. Confirmed
 * fixed by re-screenshotting after adding this (master prompt §39).
 */

*,
*::before,
*::after {
	box-sizing: border-box;
}

body {
	margin: 0;
	overflow-x: hidden;
}

img,
svg {
	max-width: 100%;
}

/* Defensive default for the theme's inline icon SVGs (inc/icons.php),
   which carry a viewBox but no width/height attribute: without an
   explicit size from a component's own CSS, an SVG defaults to its
   native/huge intrinsic size (bitten twice by this — a nav chevron on
   Dental, an eyebrow icon on Pediatric — both from a component's icon
   styling living in the wrong homepage-specific file). This 1em
   fallback means a forgotten size rule now degrades to "roughly
   text-sized" instead of "fills the screen." */
svg:not([width]):not([height]) {
	width: 1em;
	height: 1em;
}

.alignleft {
	float: left;
	margin: 0 24px 24px 0;
}

.alignright {
	float: right;
	margin: 0 0 24px 24px;
}

.aligncenter {
	display: block;
	margin-left: auto;
	margin-right: auto;
}

.wp-caption {
	max-width: 100%;
	margin-bottom: 24px;
}

.wp-caption img[class*='wp-image-'] {
	display: block;
	margin: 0;
}

.wp-caption-text {
	font-size: 14px;
	opacity: 0.7;
	padding-top: 8px;
}

.gallery-caption {
	font-size: 14px;
	opacity: 0.7;
}

.bypostauthor {
	/* Intentionally empty — required selector, no visual treatment specified by Figma. */
}

.sticky {
	/* Intentionally empty — required selector, no visual treatment specified by Figma. */
}

.screen-reader-text {
	border: 0;
	clip: rect(1px, 1px, 1px, 1px);
	clip-path: inset(50%);
	height: 1px;
	margin: -1px;
	overflow: hidden;
	padding: 0;
	position: absolute;
	width: 1px;
	word-wrap: normal !important;
}

.screen-reader-text:focus {
	background-color: var(--eliteclinic-color-white, #fff);
	border-radius: 3px;
	box-shadow: 0 0 2px 2px rgba(0, 0, 0, 0.6);
	clip: auto !important;
	clip-path: none;
	color: var(--eliteclinic-color-neutral, #111);
	display: block;
	font-size: 14px;
	font-weight: 700;
	height: auto;
	left: 5px;
	line-height: normal;
	padding: 15px 23px 14px;
	text-decoration: none;
	top: 5px;
	width: auto;
	z-index: 100000;
}

@media (prefers-reduced-motion: reduce) {
	*,
	*::before,
	*::after {
		animation-duration: 0.01ms !important;
		animation-iteration-count: 1 !important;
		transition-duration: 0.01ms !important;
		scroll-behavior: auto !important;
	}
}
