/**
 * Campus Book Savings — global accessibility and footer system
 *
 * Centralized WCAG AA contrast corrections for shared Astra components,
 * content templates, forms, navigation, image credits, and the global footer.
 */

:root {
	--cbs-a11y-ink: #17283a;
	--cbs-a11y-heading: #0b2136;
	--cbs-a11y-muted: #4f6173;
	--cbs-a11y-link: #0758a8;
	--cbs-a11y-link-hover: #053f79;
	--cbs-a11y-teal: #0a514c;
	--cbs-a11y-footer: #081b2c;
	--cbs-a11y-footer-text: #e4edf5;
	--cbs-a11y-footer-muted: #c3d1dd;
	--cbs-a11y-gold: #ffd166;
	--cbs-a11y-focus: #f3b63f;
	--cbs-a11y-border: #8797a6;
	--cbs-a11y-surface: #ffffff;
}

body {
	color: var(--cbs-a11y-ink);
}

body:not(.home) .entry-content,
body:not(.home) .ast-excerpt-container,
body:not(.home) .ast-archive-description {
	color: var(--cbs-a11y-ink);
}

body:not(.home) :where(h1, h2, h3, h4, h5, h6),
body:not(.home) .entry-title,
body:not(.home) .entry-title a,
body:not(.home) .ast-archive-title {
	color: var(--cbs-a11y-heading);
}

body:not(.home) .entry-content a:not(.wp-block-button__link),
body:not(.home) .ast-excerpt-container a,
body:not(.home) .ast-archive-description a,
body:not(.home) .widget a {
	color: var(--cbs-a11y-link);
	text-decoration-color: currentColor;
	text-decoration-thickness: 1.5px;
	text-underline-offset: 0.18em;
}

body:not(.home) .entry-content a:not(.wp-block-button__link):hover,
body:not(.home) .entry-content a:not(.wp-block-button__link):focus,
body:not(.home) .ast-excerpt-container a:hover,
body:not(.home) .ast-excerpt-container a:focus,
body:not(.home) .ast-archive-description a:hover,
body:not(.home) .ast-archive-description a:focus,
body:not(.home) .widget a:hover,
body:not(.home) .widget a:focus {
	color: var(--cbs-a11y-link-hover);
}

.entry-meta,
.entry-meta *,
.ast-blog-meta-container,
.ast-blog-meta-container * {
	color: var(--cbs-a11y-muted);
}

.entry-meta a,
.entry-meta a *,
.ast-blog-meta-container a,
.ast-blog-meta-container a * {
	color: var(--cbs-a11y-link);
}

.entry-meta a:hover,
.entry-meta a:focus,
.entry-meta a:hover *,
.entry-meta a:focus *,
.ast-blog-meta-container a:hover,
.ast-blog-meta-container a:focus,
.ast-blog-meta-container a:hover *,
.ast-blog-meta-container a:focus * {
	color: var(--cbs-a11y-link-hover);
}

.ast-taxonomy-container a,
.cat-links a,
.tags-links a {
	color: var(--cbs-a11y-link);
}

.ast-taxonomy-container a:hover,
.ast-taxonomy-container a:focus,
.cat-links a:hover,
.cat-links a:focus,
.tags-links a:hover,
.tags-links a:focus {
	color: var(--cbs-a11y-link-hover);
}

.site-description,
.wp-caption-text,
.gallery-caption,
.entry-content figcaption,
.ast-excerpt-container {
	color: var(--cbs-a11y-muted);
}

input,
select,
textarea {
	border-color: var(--cbs-a11y-border);
	background-color: var(--cbs-a11y-surface);
	color: var(--cbs-a11y-ink);
}

input::placeholder,
textarea::placeholder {
	color: #596b7c;
	opacity: 1;
}

input:disabled,
select:disabled,
textarea:disabled {
	background: #eef2f5;
	color: #46596b;
	opacity: 1;
}

button,
.ast-button,
.button,
input[type="button"],
input[type="submit"],
.wp-block-button__link,
.wp-block-search__button {
	border-color: var(--cbs-a11y-link);
	background-color: var(--cbs-a11y-link);
	color: #ffffff;
}

button:hover,
button:focus,
.ast-button:hover,
.ast-button:focus,
.button:hover,
.button:focus,
input[type="button"]:hover,
input[type="button"]:focus,
input[type="submit"]:hover,
input[type="submit"]:focus,
.wp-block-button__link:hover,
.wp-block-button__link:focus,
.wp-block-search__button:hover,
.wp-block-search__button:focus {
	border-color: var(--cbs-a11y-link-hover);
	background-color: var(--cbs-a11y-link-hover);
	color: #ffffff;
}

a:focus-visible,
button:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible,
[tabindex]:not([tabindex="-1"]):focus-visible {
	outline: 3px solid var(--cbs-a11y-focus);
	outline-offset: 3px;
}

::selection {
	background: var(--cbs-a11y-heading);
	color: #ffffff;
}

/* Homepage-specific contrast refinements. */
.cbs-home .cbs-hero-image figcaption,
.cbs-home .cbs-card-credit {
	background: var(--cbs-a11y-footer);
	color: #ffffff;
}

.cbs-home .cbs-hero-image figcaption a,
.cbs-home .cbs-card-credit a {
	color: #ffffff;
	text-decoration-color: #ffffff;
}

.cbs-home .cbs-steps-section {
	color: #eaf2f7;
}

.cbs-home .cbs-step p {
	color: #e2edf3;
}

/* Global high-contrast footer and trust navigation. */
.site-footer,
.site-footer .site-below-footer-wrap[data-section="section-below-footer-builder"] {
	background: var(--cbs-a11y-footer);
	color: var(--cbs-a11y-footer-text);
}

.site-footer .site-below-footer-wrap[data-section="section-below-footer-builder"] {
	border-top-color: rgba(255, 255, 255, 0.18);
}

.site-footer :where(p, li, .ast-footer-copyright, .ast-footer-copyright.site-footer-focus-item) {
	color: var(--cbs-a11y-footer-muted);
}

.site-footer a {
	color: #ffffff;
	text-decoration-color: rgba(255, 255, 255, 0.72);
	text-underline-offset: 0.2em;
}

.site-footer a:hover,
.site-footer a:focus {
	color: var(--cbs-a11y-gold);
	text-decoration-color: currentColor;
}

.cbs-footer-trust {
	border-bottom: 1px solid rgba(255, 255, 255, 0.18);
	padding: clamp(2.25rem, 5vw, 3.75rem) 1.25rem;
}

.cbs-footer-trust__inner {
	display: grid;
	grid-template-columns: minmax(220px, 0.8fr) minmax(0, 1.2fr);
	gap: 1.5rem 3rem;
	width: min(100%, 1200px);
	margin: 0 auto;
}

.cbs-footer-trust__heading {
	margin: 0 0 0.4rem;
	color: #ffffff;
	font-family: "Newsreader", Georgia, serif;
	font-size: clamp(1.45rem, 2.6vw, 2rem);
	font-weight: 700;
	line-height: 1.15;
}

.site-footer .cbs-footer-trust__description {
	max-width: 38rem;
	margin: 0;
	color: var(--cbs-a11y-footer-muted);
	font-size: 0.95rem;
	line-height: 1.65;
}

.cbs-footer-trust__nav {
	align-self: center;
}

.cbs-footer-trust__links {
	display: flex;
	flex-wrap: wrap;
	justify-content: flex-end;
	gap: 0.65rem 1.35rem;
	margin: 0;
	padding: 0;
	list-style: none;
}

.cbs-footer-trust__links a {
	display: inline-block;
	padding: 0.3rem 0;
	color: #ffffff;
	font-size: 0.92rem;
	font-weight: 650;
	line-height: 1.4;
	text-decoration: underline;
	text-decoration-color: rgba(255, 255, 255, 0.72);
	text-decoration-thickness: 1px;
}

.cbs-footer-trust__links a:hover,
.cbs-footer-trust__links a:focus {
	color: var(--cbs-a11y-gold);
	text-decoration-color: currentColor;
}

@media (max-width: 720px) {
	.cbs-footer-trust__inner {
		grid-template-columns: 1fr;
	}

	.cbs-footer-trust__links {
		justify-content: flex-start;
		gap: 0.45rem 1rem;
	}
}

@media (forced-colors: active) {
	a,
	button,
	input,
	select,
	textarea {
		forced-color-adjust: auto;
	}

	.cbs-home .cbs-hero-image figcaption,
	.cbs-home .cbs-card-credit,
	.site-footer {
		border: 1px solid CanvasText;
	}
}
