/*
 * PAHAL — base.
 * Reset, typographic defaults, accessibility foundations.
 */

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

html {
	-webkit-text-size-adjust: 100%;
	text-size-adjust: 100%;
	scroll-behavior: smooth;
	scroll-padding-top: calc(var(--pahal-header-height) + var(--pahal-space-s));
}

body {
	margin: 0;
	background-color: var(--pahal-surface);
	color: var(--pahal-text);
	font-family: var(--pahal-font-sans);
	font-size: var(--pahal-text-body);
	font-weight: 400;
	line-height: var(--pahal-leading-body);
	letter-spacing: var(--pahal-track-body);
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
	font-optical-sizing: auto;
	text-rendering: optimizeLegibility;
	overflow-x: hidden;
}

/* ---------------------------------------------------------------
 * Headings — Playfair Display, tracked optically by size
 * --------------------------------------------------------------- */

h1, h2, h3, h4 {
	margin: 0 0 var(--pahal-space-s);
	font-family: var(--pahal-font-display);
	font-weight: 500;
	color: var(--pahal-text-heading);
	text-wrap: balance;
}

h1 { font-size: var(--pahal-text-display-l); line-height: var(--pahal-leading-display); letter-spacing: var(--pahal-track-display); }
h2 { font-size: var(--pahal-text-display-m); line-height: var(--pahal-leading-display); letter-spacing: var(--pahal-track-display); }
h3 { font-size: var(--pahal-text-display-s); line-height: var(--pahal-leading-heading); letter-spacing: var(--pahal-track-heading); }
h4 { font-size: var(--pahal-text-heading-l); line-height: var(--pahal-leading-heading); letter-spacing: var(--pahal-track-heading); }

h5, h6 {
	margin: 0 0 var(--pahal-space-2xs);
	font-family: var(--pahal-font-sans);
	font-weight: 500;
	color: var(--pahal-text-heading);
}

h5 { font-size: var(--pahal-text-heading-m); line-height: 1.3; }

h6 {
	font-size: var(--pahal-text-eyebrow);
	letter-spacing: var(--pahal-track-eyebrow);
	text-transform: uppercase;
}

/* ---------------------------------------------------------------
 * Body copy
 * --------------------------------------------------------------- */

p, ul, ol, dl, blockquote, figure, table { margin: 0 0 var(--pahal-space-s); }
p:last-child, ul:last-child, ol:last-child, figure:last-child { margin-bottom: 0; }

p { text-wrap: pretty; max-width: 66ch; }

a {
	color: var(--pahal-accent-text);
	text-decoration: underline;
	text-underline-offset: 0.2em;
	text-decoration-thickness: 1px;
	text-decoration-color: color-mix(in srgb, currentColor 40%, transparent);
	transition: color var(--pahal-duration-fast) var(--pahal-ease-out),
	            text-decoration-color var(--pahal-duration-fast) var(--pahal-ease-out);
}

a:hover { color: var(--pahal-pine); text-decoration-color: currentColor; }
.pahal-on-dark a:hover { color: var(--pahal-white); }

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

ul, ol { padding-left: 1.15em; }
li + li { margin-top: var(--pahal-space-3xs); }
li::marker { color: var(--pahal-accent); }

strong, b { font-weight: 600; }
em, i { font-style: italic; }

/* Editorial emphasis: Playfair italic inside a serif heading. */
h1 em, h2 em, h3 em { font-style: italic; font-weight: 400; }

hr { border: 0; border-top: 1px solid var(--pahal-rule); margin: var(--pahal-space-l) 0; }

blockquote {
	margin-inline: 0;
	padding-left: var(--pahal-space-s);
	border-left: 2px solid var(--pahal-accent);
	font-family: var(--pahal-font-display);
	font-size: var(--pahal-text-display-s);
	line-height: 1.28;
	letter-spacing: var(--pahal-track-heading);
	color: var(--pahal-text-heading);
}

table { width: 100%; border-collapse: collapse; font-size: var(--pahal-text-s); }
th, td { padding: var(--pahal-space-2xs) var(--pahal-space-xs); text-align: left; border-bottom: 1px solid var(--pahal-rule); }
th {
	font-weight: 500;
	font-size: var(--pahal-text-eyebrow);
	letter-spacing: var(--pahal-track-eyebrow);
	text-transform: uppercase;
	color: var(--pahal-text-soft);
}

button, input, select, textarea { font: inherit; color: inherit; }

::selection { background-color: var(--pahal-terracotta); color: var(--pahal-white); }

/* ---------------------------------------------------------------
 * Accessibility foundations
 * --------------------------------------------------------------- */

:where(a, button, input, select, textarea, summary, [tabindex]):focus-visible {
	outline: var(--pahal-focus-width) solid var(--pahal-focus-color);
	outline-offset: var(--pahal-focus-offset);
}

.pahal-sr-only {
	position: absolute;
	width: 1px; height: 1px;
	padding: 0; margin: -1px;
	overflow: hidden;
	clip-path: inset(50%);
	white-space: nowrap;
	border: 0;
}

.pahal-skip-link {
	position: absolute;
	top: var(--pahal-space-2xs);
	left: var(--pahal-space-2xs);
	z-index: var(--pahal-z-skip);
	padding: var(--pahal-space-2xs) var(--pahal-space-xs);
	background: var(--pahal-pine-deep);
	color: var(--pahal-sand);
	font-size: var(--pahal-text-s);
	font-weight: 500;
	text-decoration: none;
	transform: translateY(-200%);
}

.pahal-skip-link:focus { transform: translateY(0); color: var(--pahal-sand); }

#pahal-main:focus { outline: none; }

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

@media (forced-colors: active) {
	.pahal-btn { border: 1px solid currentColor; }
	.pahal-mega { border: 1px solid currentColor; }
}

/* ---------------------------------------------------------------
 * Print
 * --------------------------------------------------------------- */

@media print {
	.pahal-no-print, .pahal-header, .pahal-footer, .pahal-donate-band, .pahal-nav-scrim { display: none !important; }
	body { background: #fff; color: #000; font-size: 11pt; }
	a::after { content: " (" attr(href) ")"; font-size: 9pt; }
	a[href^="#"]::after, a[href^="javascript"]::after { content: ""; }
}
