/*
 * This Is What Blind Looks Like – brand, color schemes, text sizes, episodes.
 * Every color pair below meets WCAG 2.2 AA (4.5:1) for normal text.
 *
 *   Standard: text #1A1A1A on #FFFFFF 17.4:1 · mauve #933E59 on #FFFFFF 6.8:1
 *   Dark:     text #F2F2F2 on #121212 16.7:1 · pink  #E8B4C6 on #121212 10.5:1
 *   Contrast: text #FFFFFF on #000000 21:1   · links #FFFF00 on #000000 19.6:1
 */

/* ---------- Brand palette (Astra global colors) ---------- */
html:root {
	--ast-global-color-0: #933e59; /* links, buttons */
	--ast-global-color-1: #7a2f49; /* hover */
	--ast-global-color-2: #111111; /* headings */
	--ast-global-color-3: #1a1a1a; /* body text */
	--ast-global-color-4: #f7eef1; /* soft background */
	--ast-global-color-5: #ffffff; /* page background */
	--ast-global-color-6: #e6d3da; /* borders */
	--ast-global-color-7: #4a4a4a; /* secondary text */
	--ast-global-color-8: #000000;
	--tiwbll-focus: #933e59;
	--tiwbll-button-text: #ffffff;
}

html[data-tiwbll-scheme="dark"] {
	--ast-global-color-0: #e8b4c6;
	--ast-global-color-1: #f2ccd9;
	--ast-global-color-2: #ffffff;
	--ast-global-color-3: #f2f2f2;
	--ast-global-color-4: #1e1e1e;
	--ast-global-color-5: #121212;
	--ast-global-color-6: #3d3d3d;
	--ast-global-color-7: #cccccc;
	--ast-global-color-8: #ffffff;
	--tiwbll-focus: #e8b4c6;
	--tiwbll-button-text: #121212;
	color-scheme: dark;
}

html[data-tiwbll-scheme="contrast"] {
	--ast-global-color-0: #ffff00;
	--ast-global-color-1: #ffffff;
	--ast-global-color-2: #ffffff;
	--ast-global-color-3: #ffffff;
	--ast-global-color-4: #000000;
	--ast-global-color-5: #000000;
	--ast-global-color-6: #ffffff;
	--ast-global-color-7: #ffffff;
	--ast-global-color-8: #ffffff;
	--tiwbll-focus: #ffff00;
	--tiwbll-button-text: #000000;
	color-scheme: dark;
}

/* Dark and high-contrast: make sure every Astra surface follows the scheme. */
html[data-tiwbll-scheme] body,
html[data-tiwbll-scheme] .site,
html[data-tiwbll-scheme] .site-content,
html[data-tiwbll-scheme] .site-header,
html[data-tiwbll-scheme] .main-header-bar,
html[data-tiwbll-scheme] .ast-primary-header-bar,
html[data-tiwbll-scheme] .ast-above-header-bar,
html[data-tiwbll-scheme] .ast-below-header-bar,
html[data-tiwbll-scheme] .ast-mobile-header-content,
html[data-tiwbll-scheme] .main-header-menu .sub-menu,
html[data-tiwbll-scheme] .site-footer,
html[data-tiwbll-scheme] .site-primary-footer-wrap,
html[data-tiwbll-scheme] .site-below-footer-wrap,
html[data-tiwbll-scheme] .site-above-footer-wrap,
html[data-tiwbll-scheme] .ast-separate-container .ast-article-single,
html[data-tiwbll-scheme] .ast-separate-container .ast-article-post,
html[data-tiwbll-scheme] .ast-separate-container .comments-area,
html[data-tiwbll-scheme] .ast-plain-container,
html[data-tiwbll-scheme] .ast-page-builder-template {
	background-color: var(--ast-global-color-5) !important;
	background-image: none !important;
	color: var(--ast-global-color-3) !important;
}

html[data-tiwbll-scheme] h1,
html[data-tiwbll-scheme] h2,
html[data-tiwbll-scheme] h3,
html[data-tiwbll-scheme] h4,
html[data-tiwbll-scheme] .site-title,
html[data-tiwbll-scheme] .entry-title {
	color: var(--ast-global-color-2) !important;
}

html[data-tiwbll-scheme] a,
html[data-tiwbll-scheme] .site-title a,
html[data-tiwbll-scheme] .main-header-menu .menu-link,
html[data-tiwbll-scheme] .ast-builder-menu .menu-link {
	color: var(--ast-global-color-0) !important;
}

/* Buttons are links too: keep their text readable on the button color. */
html[data-tiwbll-scheme] a.wp-block-button__link,
html[data-tiwbll-scheme] a.ast-button,
html[data-tiwbll-scheme] a.button {
	background-color: var(--ast-global-color-0) !important;
	color: var(--tiwbll-button-text) !important;
}

html[data-tiwbll-scheme] a.wp-block-button__link:hover,
html[data-tiwbll-scheme] a.wp-block-button__link:focus {
	background-color: var(--ast-global-color-1) !important;
}

html[data-tiwbll-scheme="contrast"] *,
html[data-tiwbll-scheme="contrast"] *::before,
html[data-tiwbll-scheme="contrast"] *::after {
	box-shadow: none !important;
	text-shadow: none !important;
}

html[data-tiwbll-scheme="contrast"] hr,
html[data-tiwbll-scheme="contrast"] .tiwbll-latest,
html[data-tiwbll-scheme="contrast"] .tiwbll-a11y {
	border-color: #ffffff !important;
}

/* Buttons in every scheme */
.wp-block-button__link,
.ast-button,
.button,
button.tiwbll-a11y__btn[aria-pressed="true"],
input[type="submit"] {
	background-color: var(--ast-global-color-0);
	color: var(--tiwbll-button-text) !important;
	border-color: var(--ast-global-color-0);
}

.wp-block-button__link:hover,
.wp-block-button__link:focus,
.ast-button:hover,
.button:hover {
	background-color: var(--ast-global-color-1);
	color: var(--tiwbll-button-text) !important;
}

/* ---------- Text size (steps match the toolbar's announcements) ---------- */
html[data-tiwbll-text="1"] { font-size: 115% !important; }
html[data-tiwbll-text="2"] { font-size: 130% !important; }
html[data-tiwbll-text="3"] { font-size: 150% !important; }
html[data-tiwbll-text="4"] { font-size: 175% !important; }

/* ---------- Links and focus ---------- */
.entry-content a,
.tiwbll-latest a,
.tiwbll-episode-list a,
.site-footer a {
	text-decoration: underline;
	text-decoration-thickness: 0.08em;
	text-underline-offset: 0.18em;
}

a:focus-visible,
button:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible,
audio:focus-visible,
[tabindex]:focus-visible {
	outline: 3px solid var(--tiwbll-focus) !important;
	outline-offset: 3px !important;
}

/* ---------- Display-settings toolbar ---------- */
.tiwbll-a11y {
	background: var(--ast-global-color-4);
	border-bottom: 1px solid var(--ast-global-color-6);
	color: var(--ast-global-color-3);
	font-size: 0.9rem;
}

.tiwbll-a11y__inner {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem 1.5rem;
	align-items: center;
	justify-content: flex-end;
	max-width: 1240px;
	margin: 0 auto;
	padding: 0.4rem 1rem;
}

.tiwbll-a11y__toggle {
	min-height: 44px;
	padding: 0.35rem 0.9rem;
	border: 2px solid var(--ast-global-color-0);
	border-radius: 6px;
	background: var(--ast-global-color-5);
	color: var(--ast-global-color-3);
	font-size: inherit;
	font-weight: 700;
	line-height: 1.2;
	cursor: pointer;
}

.tiwbll-a11y__toggle::after {
	content: "";
	display: inline-block;
	width: 0.5em;
	height: 0.5em;
	margin-left: 0.5em;
	border-right: 2px solid currentColor;
	border-bottom: 2px solid currentColor;
	transform: translateY(-0.15em) rotate(45deg);
}

.tiwbll-a11y__toggle[aria-expanded="true"]::after {
	transform: translateY(0.1em) rotate(-135deg);
}

.tiwbll-a11y__toggle:hover {
	background: var(--ast-global-color-4);
	color: var(--ast-global-color-3);
}

.tiwbll-a11y__panel:not([hidden]) {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem 1.5rem;
	align-items: center;
	flex-basis: 100%;
	justify-content: flex-end;
}

.tiwbll-a11y__group {
	display: flex;
	flex-wrap: wrap;
	gap: 0.35rem;
	align-items: center;
}

.tiwbll-a11y__label {
	font-weight: 700;
	margin-right: 0.25rem;
}

.tiwbll-a11y__btn {
	min-height: 44px;
	min-width: 44px;
	padding: 0.35rem 0.75rem;
	border: 2px solid var(--ast-global-color-0);
	border-radius: 6px;
	background: var(--ast-global-color-5);
	color: var(--ast-global-color-3);
	font-size: inherit;
	font-weight: 600;
	line-height: 1.2;
	cursor: pointer;
}

.tiwbll-a11y__btn:hover {
	background: var(--ast-global-color-4);
	color: var(--ast-global-color-3);
}

.tiwbll-a11y__btn[aria-pressed="true"]:hover {
	background: var(--ast-global-color-1);
}

.tiwbll-a11y__btn[aria-disabled="true"] {
	opacity: 0.6;
	cursor: not-allowed;
}

/* ---------- Episodes ---------- */
.tiwbll-meta {
	display: flex;
	flex-wrap: wrap;
	gap: 0.25rem 1.25rem;
	list-style: none;
	margin: 0 0 1rem;
	padding: 0;
	color: var(--ast-global-color-7);
}

.tiwbll-player audio {
	display: block;
	width: 100%;
	min-height: 54px;
	margin: 0.5rem 0;
}

.tiwbll-latest {
	border: 2px solid var(--ast-global-color-6);
	border-radius: 10px;
	padding: 1.5rem;
	margin: 2rem 0;
	background: var(--ast-global-color-5);
}

.tiwbll-latest__label {
	margin-top: 0;
	font-size: 1rem;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--ast-global-color-0);
}

.tiwbll-episodes {
	list-style: none;
	margin: 0 0 2.5rem;
	padding: 0;
}

.tiwbll-episodes__item {
	border-top: 1px solid var(--ast-global-color-6);
	padding: 1.25rem 0;
}

.tiwbll-episodes__title {
	margin: 0 0 0.35rem;
	font-size: 1.25rem;
}

.tiwbll-season-nav {
	margin: 2rem 0;
}

.tiwbll-season-nav__list {
	display: flex;
	flex-wrap: wrap;
	gap: 0.6rem;
	list-style: none;
	margin: 0;
	padding: 0;
}

.tiwbll-season-nav__list a {
	display: inline-block;
	min-height: 44px;
	padding: 0.6rem 1rem;
	border: 2px solid var(--ast-global-color-0);
	border-radius: 6px;
	font-weight: 700;
	text-decoration: none !important;
}

.tiwbll-season-nav__list a:hover,
.tiwbll-season-nav__list a:focus {
	background: var(--ast-global-color-0);
	color: var(--tiwbll-button-text) !important;
}

.tiwbll-season-nav__count {
	font-weight: 400;
}

.tiwbll-season h2:focus,
.tiwbll-season-nav h2:focus {
	outline: none;
}

.tiwbll-season h2:focus-visible,
.tiwbll-season-nav h2:focus-visible {
	outline: 3px solid var(--tiwbll-focus);
	outline-offset: 3px;
}

/* ---------- Footer links ---------- */
.tiwbll-footer-links {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 1rem 3rem;
	margin-bottom: 1rem;
	text-align: left;
}

.tiwbll-footer-links h2 {
	font-size: 1.05rem;
	margin: 0 0 0.4rem;
}

.tiwbll-footer-links ul {
	list-style: none;
	margin: 0;
	padding: 0;
}

.tiwbll-footer-links li {
	margin: 0.3rem 0;
}

.tiwbll-back {
	margin-top: 2rem;
}

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