/*
Theme Name: Buck Fleming
Theme URI: https://buckfleming.com
Author: Buck Fleming
Description: A warm, accessible block theme for buckfleming.com. Palette drawn from stained glass: burgundy, amber, cream. Includes page patterns for Home, About, Speaking, Beliefs, and Contact, and styles the BF Site Forms plugin.
Requires at least: 6.6
Tested up to: 7.1
Requires PHP: 8.0
Version: 1.0.0
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: buckfleming
Tags: block-theme, full-site-editing, one-column, accessibility-ready, custom-colors
*/

/* ---------- Automatic dark mode ----------
   Remaps the palette when a visitor's device is set to dark.
   Delete this block to keep the site light at all times. */
@media (prefers-color-scheme: dark) {
	:root {
		--wp--preset--color--base: #161b20;
		--wp--preset--color--surface: #1f262d;
		--wp--preset--color--band: #232b33;
		--wp--preset--color--contrast: #f2ede3;
		--wp--preset--color--muted: #b9c1c8;
		--wp--preset--color--accent: #e3a0ae;
		--wp--preset--color--accent-ink: #1f1418;
		--wp--preset--color--gold: #e0a84f;
		--wp--preset--color--teal: #8fc1bf;
		--wp--preset--color--line: #333d46;
		color-scheme: dark;
	}
	.bf-footer { background: #0e1215 !important; }
}

/* ---------- Basics ---------- */
:where(h1, h2, h3) { text-wrap: balance; }
:where(p) { text-wrap: pretty; }
a { text-underline-offset: 3px; }
:focus-visible { outline: 3px solid var(--wp--preset--color--gold); outline-offset: 3px; }

.skip-link.screen-reader-text:focus { background: var(--wp--preset--color--surface); color: var(--wp--preset--color--contrast); }

/* Header */
.bf-header { border-bottom: 1px solid var(--wp--preset--color--line); }
.bf-header .wp-block-site-title a::after { content: "."; color: var(--wp--preset--color--gold); }
.bf-header .wp-block-navigation-item__content { padding-block: .35rem; border-bottom: 2px solid transparent; }
.bf-header .wp-block-navigation-item__content:hover,
.bf-header .current-menu-item > .wp-block-navigation-item__content,
.bf-header [aria-current="page"] { border-color: var(--wp--preset--color--gold); }

/* Eyebrow label (paragraph style) */
.is-style-eyebrow {
	text-transform: uppercase;
	letter-spacing: .12em;
	font-size: .85rem !important;
	font-weight: 700;
	color: var(--wp--preset--color--teal);
	margin-bottom: .5rem !important;
}

/* Lead paragraph (paragraph style) */
.is-style-lead { font-size: var(--wp--preset--font-size--large) !important; color: var(--wp--preset--color--muted); }

/* Outline button uses the theme accent */
.wp-block-button.is-style-outline > .wp-block-button__link {
	background: transparent;
	color: var(--wp--preset--color--accent);
	border-color: var(--wp--preset--color--accent);
}
.wp-block-button.is-style-outline > .wp-block-button__link:hover {
	background: var(--wp--preset--color--accent);
	color: var(--wp--preset--color--accent-ink);
}

/* Photo with soft shadow (image style) */
.is-style-bf-shadow img { box-shadow: 0 20px 40px -20px rgb(0 0 0 / .35); }

/* Card (group style) */
.is-style-bf-card {
	background: var(--wp--preset--color--surface);
	border: 1px solid var(--wp--preset--color--line);
	border-radius: var(--wp--custom--radius);
	padding: 1.5rem;
}
.is-style-bf-card :where(p) { color: var(--wp--preset--color--muted); }
.is-style-bf-card h3 a { color: var(--wp--preset--color--contrast); text-decoration: none; }
.is-style-bf-card h3 a:hover { color: var(--wp--preset--color--accent); }

/* Video embeds: rounded */
.wp-block-embed.is-type-video .wp-block-embed__wrapper { border-radius: var(--wp--custom--radius); overflow: hidden; }

/* Circle photo (image style) */
.is-style-bf-circle img { border-radius: 50% !important; aspect-ratio: 1; object-fit: cover; }

/* Topics table */
.wp-block-table.is-style-bf-topics table { background: var(--wp--preset--color--surface); border-collapse: collapse; }
.wp-block-table.is-style-bf-topics th,
.wp-block-table.is-style-bf-topics td { border: 0; border-bottom: 1px solid var(--wp--preset--color--line); padding: .9rem 1rem; text-align: left; vertical-align: top; }
.wp-block-table.is-style-bf-topics thead { border: 0; }
.wp-block-table.is-style-bf-topics th { font-family: var(--wp--preset--font-family--heading); background: var(--wp--preset--color--band); }
.wp-block-table.is-style-bf-topics td:first-child { font-weight: 700; }
@media (max-width: 40rem) {
	.wp-block-table.is-style-bf-topics table,
	.wp-block-table.is-style-bf-topics tbody,
	.wp-block-table.is-style-bf-topics tr,
	.wp-block-table.is-style-bf-topics td { display: block; width: 100%; box-sizing: border-box; }
	.wp-block-table.is-style-bf-topics thead { position: absolute; left: -9999px; }
	.wp-block-table.is-style-bf-topics tr { border-bottom: 1px solid var(--wp--preset--color--line); padding: .75rem 0; }
	.wp-block-table.is-style-bf-topics td { border: 0; padding: .2rem 1rem; box-sizing: border-box; width: 100%; }
	.wp-block-table.is-style-bf-topics td:first-child { font-family: var(--wp--preset--font-family--heading); font-size: 1.2rem; }
	.wp-block-table.is-style-bf-topics td:nth-child(3)::before { content: "Good fit for: "; font-weight: 700; color: var(--wp--preset--color--teal); }
}

/* Definition-style belief list: bold lead-in per item */
.is-style-bf-beliefs { list-style: none; padding-left: 0 !important; }
.is-style-bf-beliefs li { margin-bottom: 1.25rem; }
.is-style-bf-beliefs strong { display: block; font-family: var(--wp--preset--font-family--heading); font-size: 1.3rem; font-weight: 600; }

/* Notice box (group style) */
.is-style-bf-notice { background: var(--wp--preset--color--band); border-radius: var(--wp--custom--radius); padding: 1rem 1.25rem; }

/* Footer */
.bf-footer { background: #1f2a33; color: #faf6ee; }
.bf-footer a { color: inherit; }
.bf-footer .wp-block-navigation a { color: #faf6ee; text-decoration: underline; }
.bf-footer .bf-fine { font-size: .85rem; opacity: .85; }

/* ---------- BF Site Forms plugin ---------- */
.bf-form {
	display: grid;
	gap: 1.1rem;
	background: var(--wp--preset--color--surface);
	border: 1px solid var(--wp--preset--color--line);
	border-radius: var(--wp--custom--radius);
	padding: 1.5rem;
}
.bf-form .bf-field { display: grid; gap: .35rem; }
.bf-form .bf-row { display: grid; gap: 1.1rem; }
@media (min-width: 40rem) { .bf-form .bf-row { grid-template-columns: 1fr 1fr; } }
.bf-form label { font-weight: 700; }
.bf-form .bf-optional { font-weight: 400; color: var(--wp--preset--color--muted); }
.bf-form input,
.bf-form select,
.bf-form textarea {
	font: inherit;
	color: var(--wp--preset--color--contrast);
	background: var(--wp--preset--color--base);
	border: 1.5px solid var(--wp--preset--color--line);
	border-radius: 8px;
	padding: .7rem .8rem;
	width: 100%;
	box-sizing: border-box;
}
.bf-form input:focus-visible,
.bf-form select:focus-visible,
.bf-form textarea:focus-visible { border-color: var(--wp--preset--color--accent); }
.bf-form input:user-invalid,
.bf-form textarea:user-invalid { border-color: #b3261e; }
.bf-form textarea { min-height: 9rem; resize: vertical; }
.bf-form button[type="submit"] {
	justify-self: start;
	background: var(--wp--preset--color--accent);
	color: var(--wp--preset--color--accent-ink);
	border: 2px solid var(--wp--preset--color--accent);
	border-radius: 999px;
	padding: .8rem 1.4rem;
	font: inherit;
	font-weight: 700;
	cursor: pointer;
}
.bf-form button[type="submit"]:hover { background: var(--wp--preset--color--contrast); border-color: var(--wp--preset--color--contrast); color: var(--wp--preset--color--base); }
.bf-form-message { border-radius: var(--wp--custom--radius); padding: 1rem 1.25rem; margin-bottom: 1.25rem; }
.bf-form-message.is-success { background: #e3efe6; color: #1d4b2a; }
.bf-form-message.is-error { background: #f8e1df; color: #7a1c14; }

/* Cards in a row share the same height */
.wp-block-column > .is-style-bf-card:only-child { height: 100%; box-sizing: border-box; }
