/*
 * Neurowellness base styles: reset, typography, focus, buttons, layout primitives.
 * Every value comes from tokens.css.
 */

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

html { -webkit-text-size-adjust: 100%; text-size-adjust: 100%; }

body {
	margin: 0;
	background: var(--ornwp-bg);
	color: var(--ornwp-text);
	font-family: var(--ornwp-font-body);
	font-size: var(--ornwp-fs-base);
	font-weight: var(--ornwp-body-weight);
	line-height: var(--ornwp-lh);
	overflow-x: clip;
	/* Per-template headline base (the Customizer scale multiplies it). Declared on body so the scale resolves here. */
	--ornwp-h1-size: calc(var(--ornwp-h1-base) * var(--ornwp-h1-scale));
	--ornwp-h1-lh: 1.08;
}
body.ornwp-tpl-home { --ornwp-h1-size: calc(var(--ornwp-h1-base-home) * var(--ornwp-h1-scale)); --ornwp-h1-lh: 1; }
body.ornwp-tpl-about,
body.ornwp-tpl-service { --ornwp-h1-size: calc(var(--ornwp-h1-base-lg) * var(--ornwp-h1-scale)); --ornwp-h1-lh: 1.05; }

img, svg, video { max-width: 100%; height: auto; }
img { display: block; }
figure { margin: 0; }

h1, h2, h3, h4, h5, h6 {
	margin: 0 0 var(--ornwp-space-2);
	font-family: var(--ornwp-font-heading);
	font-weight: var(--ornwp-heading-weight);
	line-height: var(--ornwp-heading-lh);
	letter-spacing: var(--ornwp-heading-ls);
	text-wrap: balance;
}
h1, .ornwp-h1 { font-size: var(--ornwp-h1-size); line-height: var(--ornwp-h1-lh); letter-spacing: -0.02em; }
h2, .ornwp-h2 { font-size: var(--ornwp-h2-size); }
h3, .ornwp-h3 { font-size: var(--ornwp-h3-size); }
p { margin: 0 0 var(--ornwp-space-3); }

a { color: var(--ornwp-link); text-underline-offset: var(--ornwp-underline-offset); }
a:hover { color: var(--ornwp-link-hover); }

/* ---- Focus: always visible, never the browser default ---- */
:focus { outline: none; }
:focus-visible { outline: 2px solid var(--ornwp-focus); outline-offset: 2px; }
.ornwp-banner :focus-visible,
.ornwp-footer :focus-visible,
.ornwp-mobilebar :focus-visible { outline-color: var(--ornwp-primary-on-dark); }
#main:focus { outline: none; }

::selection { background: color-mix(in srgb, var(--ornwp-primary) 30%, transparent); }

/* ---- Accessibility helpers ---- */
.ornwp-sr {
	position: absolute !important;
	width: 1px; height: 1px;
	margin: -1px; padding: 0; border: 0;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	clip-path: inset(50%);
	white-space: nowrap;
}

.ornwp-skip {
	position: absolute;
	left: var(--ornwp-space-4);
	top: -100px;
	z-index: var(--ornwp-z-skip);
	padding: var(--ornwp-space-3) var(--ornwp-space-4);
	background: var(--ornwp-dark);
	color: var(--ornwp-on-dark);
	border-radius: var(--ornwp-radius-md);
	text-decoration: none;
}
.ornwp-skip:focus { top: var(--ornwp-space-3); outline-color: var(--ornwp-primary-on-dark); }

/* ---- Layout ---- */
.ornwp-container {
	width: 100%;
	max-width: var(--ornwp-container);
	margin-inline: auto;
	padding-inline: var(--ornwp-gutter);
}
.ornwp-section { padding-block: var(--ornwp-section-y); }
.ornwp-section--tight { padding-block: var(--ornwp-section-y-tight); }
.ornwp-section--alt { background: var(--ornwp-alt-bg); }
.ornwp-prose { max-width: var(--ornwp-container-text); }

.ornwp-eyebrow {
	margin: 0 0 var(--ornwp-space-4);
	font-size: var(--ornwp-eyebrow-size);
	letter-spacing: var(--ornwp-eyebrow-ls);
	text-transform: uppercase;
	color: var(--ornwp-highlight);
}

/* Highlighted word: *word* in editable text. */
.ornwp-hl { font-style: italic; color: var(--ornwp-highlight); }
.ornwp-hl--on-dark { color: var(--ornwp-highlight-on-dark); }

/* ---- Buttons ---- */
.ornwp-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: var(--ornwp-sp-10);
	min-height: var(--ornwp-tap-min);
	padding: var(--ornwp-btn-pad-y) var(--ornwp-btn-pad-x);
	border: 1px solid var(--ornwp-divider);
	border-radius: var(--ornwp-btn-radius);
	background: transparent;
	color: var(--ornwp-text);
	font-family: var(--ornwp-font-heading);
	font-size: var(--ornwp-btn-font-size);
	font-weight: var(--ornwp-btn-weight);
	line-height: 1.2;
	text-align: center;
	text-decoration: none;
	cursor: pointer;
	overflow-wrap: anywhere;
}
.ornwp-btn:hover { background: color-mix(in srgb, var(--ornwp-text) 7%, transparent); color: var(--ornwp-text); }
.ornwp-btn:active { background: color-mix(in srgb, var(--ornwp-text) 14%, transparent); }

/* Outlined primary: brand-orange border, accessible text color. */
.ornwp-btn--primary { border-color: var(--ornwp-primary); color: var(--ornwp-primary-text); }
.ornwp-btn--primary:hover { background: color-mix(in srgb, var(--ornwp-primary) 12%, transparent); color: var(--ornwp-primary-text); }
.ornwp-btn--primary:active { background: color-mix(in srgb, var(--ornwp-primary) 22%, transparent); }

.ornwp-btn--secondary { border-color: var(--ornwp-divider); }
.ornwp-btn--ghost { border-color: transparent; color: var(--ornwp-primary-text); padding-inline: var(--ornwp-space-1); }
.ornwp-btn--ghost:hover { background: color-mix(in srgb, var(--ornwp-primary) 10%, transparent); color: var(--ornwp-primary-text); }
.ornwp-btn--icon { width: var(--ornwp-tap-min); height: var(--ornwp-tap-min); padding: 0; }

/* Solid primary: label color is automatic best contrast (Customizer: text color on orange buttons). */
.ornwp-btn--solid { background: var(--ornwp-primary); border-color: var(--ornwp-primary); color: var(--ornwp-on-primary); }
.ornwp-btn--solid:hover { background: var(--ornwp-primary-hover); border-color: var(--ornwp-primary-hover); color: var(--ornwp-on-primary); }

/* On dark (footer CTA). */
.ornwp-btn--on-dark { border-color: var(--ornwp-primary); color: var(--ornwp-primary-on-dark); }
.ornwp-btn--on-dark:hover { background: color-mix(in srgb, var(--ornwp-primary) 14%, transparent); color: var(--ornwp-primary-on-dark); }
.ornwp-btn--outline-light { border-color: color-mix(in srgb, var(--ornwp-footer-text) 35%, transparent); color: var(--ornwp-footer-text); }
.ornwp-btn--outline-light:hover { background: color-mix(in srgb, var(--ornwp-footer-text) 8%, transparent); color: var(--ornwp-footer-text); }

.ornwp-btn--lg { padding: var(--ornwp-btn-pad-y-lg) var(--ornwp-btn-pad-x-lg); font-size: max(var(--ornwp-fs-md), var(--ornwp-btn-font-size)); }
.ornwp-btn--block { display: flex; width: 100%; }

.ornwp-icon { flex: none; }

/* ---- Motion ---- */
@media (prefers-reduced-motion: no-preference) {
	.ornwp-btn { transition: background var(--ornwp-dur-fast) ease, color var(--ornwp-dur-fast) ease, border-color var(--ornwp-dur-fast) ease; }
	body.ornwp-no-motion .ornwp-btn { transition: none; }
}
@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after { animation-duration: 0.001ms !important; animation-iteration-count: 1 !important; transition-duration: 0.001ms !important; scroll-behavior: auto !important; }
}

/* ---- Phones: button text never below 16px ---- */
@media (max-width: 767px) {
	.ornwp-btn { font-size: max(var(--ornwp-fs-md), var(--ornwp-btn-font-size)); }
}
