/*
Theme Name: BrianKilby.com
Theme URI: https://www.briankilby.com/
Author: Brian Kilby
Description: Brand Kit A ("Bureau of Happy Days") child theme of Twenty Twenty-Five for BrianKilby.com and the Happy Daily podcast. Pine, cream, ink, vest orange and manila; Anton, Oswald and Special Elite.
Template: twentytwentyfive
Requires at least: 6.7
Tested up to: 7.1
Requires PHP: 7.4
Version: 1.0.0
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: briankilby
*/

/* ---------- Base ---------- */
:root {
	--bk-rule: 2px solid var(--wp--preset--color--contrast);
	--bk-dots: radial-gradient(rgba(27, 26, 23, 0.10) 1.6px, transparent 1.7px);
}
body { -webkit-font-smoothing: antialiased; }
::selection { background: var(--wp--preset--color--accent-1); color: var(--wp--preset--color--contrast); }
:where(a):focus-visible, :where(button):focus-visible { outline: 3px solid var(--wp--preset--color--accent-1); outline-offset: 2px; }

/* Fine print (Special Elite) */
.bk-fineprint, .wp-block-post-date, .bk-fineprint a { font-family: var(--wp--preset--font-family--special-elite); letter-spacing: 0.02em; }

/* Label (Oswald caps) */
.bk-label { font-family: var(--wp--preset--font-family--oswald); font-weight: 600; text-transform: uppercase; letter-spacing: 0.12em; font-size: var(--wp--preset--font-size--small); }

/* ---------- Header ---------- */
.bk-topstrip { font-size: 0.85rem; }
.bk-topstrip p { margin: 0; }
.bk-header .wp-block-site-title a { text-decoration: none; }
.bk-header .wp-block-navigation a { text-decoration: none; }
.bk-header .wp-block-navigation a:hover, .bk-header .wp-block-navigation .current-menu-item > a { color: var(--wp--preset--color--accent-1); }
.bk-oval img { display: block; }
.bk-header { border-bottom: 3px solid var(--wp--preset--color--accent-2); }

/* ---------- Dot-grid pegboard background ---------- */
.bk-dotgrid { background-image: var(--bk-dots); background-size: 26px 26px; }

/* ---------- Case-file cards ---------- */
.is-style-bk-case-file {
	background: var(--wp--preset--color--accent-3);
	background-image: linear-gradient(135deg, rgba(255,255,255,0.18), rgba(0,0,0,0.04));
	border: 1px solid rgba(27, 26, 23, 0.18);
	box-shadow: 0 1px 0 rgba(27,26,23,.08), 0 10px 22px -16px rgba(27,26,23,.55);
	position: relative;
}
.is-style-bk-case-file::before {
	content: "";
	position: absolute; top: -10px; left: 18px; width: 38%; height: 12px;
	background: var(--wp--preset--color--accent-3);
	border: 1px solid rgba(27,26,23,.18); border-bottom: 0;
	border-radius: 6px 6px 0 0;
}
.is-style-bk-case-file .wp-block-post-title a { text-decoration: none; }
.is-style-bk-case-file .wp-block-post-title a:hover { color: var(--wp--preset--color--accent-2); text-decoration: underline; }
.is-style-bk-case-file .wp-block-post-featured-image img { border: 1px solid rgba(27,26,23,.2); }

/* Card grid: let cards stretch evenly */
.bk-cards .wp-block-post-template { align-items: stretch; }
.bk-cards .wp-block-post { display: flex; }
.bk-cards .wp-block-post > .wp-block-group { flex: 1; }

/* ---------- Show blister cards ---------- */
.bk-blister { border-radius: 10px; position: relative; overflow: hidden; transition: transform .2s ease; }
.bk-blister::before {
	content: ""; display: block; width: 46px; height: 14px; margin: 0 auto 1.25rem;
	border-radius: 8px; background: rgba(0,0,0,.28); box-shadow: inset 0 2px 3px rgba(0,0,0,.35);
}
.bk-blister:hover { transform: translateY(-4px); }
.bk-blister a { color: inherit; }

/* ---------- Stamp ---------- */
.bk-stamp img { transform: rotate(-6deg); }
.bk-hd-only { display: none; }
body.bk-cat-happy-day-in-wilkes .bk-hd-only,
body.bk-cat-happy-daily .bk-hd-only { display: block; }

/* ---------- Buttons ---------- */
.wp-block-button.is-style-outline > .wp-block-button__link { border-width: 2px; }
.has-accent-2-background-color .wp-block-button.is-style-outline > .wp-block-button__link,
.has-accent-6-background-color .wp-block-button.is-style-outline > .wp-block-button__link { color: var(--wp--preset--color--base); border-color: var(--wp--preset--color--base); }

/* ---------- Single posts ---------- */
.bk-single-meta { border-top: var(--bk-rule); border-bottom: 1px solid rgba(27,26,23,.25); }
.wp-block-post-content .powerpress_player,
.wp-block-post-content iframe[src*="blubrry"] { margin-block: 1.5rem; max-width: 100%; }
.wp-block-post-content .powerpress_links { font-family: var(--wp--preset--font-family--oswald); font-size: 0.95rem; }
.wp-block-post-content table { width: 100% !important; }
.wp-block-post-content img { max-width: 100%; height: auto; }
.wp-block-post-terms a { text-decoration: none; }

/* Legacy classic-editor content: pasted chat classes carry no styles, keep them neutral */
.wp-block-post-content p[class*="font-claude"] { font: inherit; line-height: inherit; }

/* ---------- Album list (Christmas page) ---------- */
.bk-album { border-top: var(--bk-rule); padding-top: var(--wp--preset--spacing--40); }
.bk-album ol { padding-left: 1.4em; }
.bk-album li { margin-bottom: .2em; }
.bk-free del { opacity: .6; }

/* ---------- Footer ---------- */
.bk-footer a { color: var(--wp--preset--color--base); text-decoration-thickness: 1px; }
.bk-footer a:hover { color: var(--wp--preset--color--accent-3); }
.bk-footer .wp-block-search__input { background: var(--wp--preset--color--base); }

/* ---------- Small screens ---------- */
@media (max-width: 781px) {
	.bk-hero-art { order: -1; }
	.bk-hide-mobile { display: none !important; }
}
@media (prefers-reduced-motion: reduce) {
	.bk-blister { transition: none; }
	.bk-blister:hover { transform: none; }
}

/* ---------- Legacy table layouts (e.g. the Christmas albums page) ---------- */
.wp-block-post-content table td { vertical-align: top; padding: 0.75rem; }
.wp-block-post-content table tr { border-top: 2px solid var(--wp--preset--color--contrast); }
.wp-block-post-content table img { display: block; margin-bottom: 0.5rem; }
@media (max-width: 781px) {
	.wp-block-post-content table,
	.wp-block-post-content tbody,
	.wp-block-post-content tr,
	.wp-block-post-content td { display: block; width: 100% !important; }
	.wp-block-post-content table td { padding: 0.5rem 0; }
	.wp-block-post-content table p[style*="padding-left"] { padding-left: 0 !important; }
}

/* ---------- Fixes after launch ---------- */
/* Hero wordmark: never break "BrianKilby.com" mid-word */
.bk-dotgrid h1.has-huge-font-size { font-size: clamp(2.4rem, 5.2vw, 4.75rem) !important; overflow-wrap: normal; word-break: keep-all; white-space: nowrap; }
/* Footer search needs room */
.bk-footer .wp-block-column:last-child { min-width: 230px; }
.bk-footer .wp-block-search__input { min-width: 0; }
/* Nav: keep one line on mid-width screens */
.bk-header .wp-block-navigation__container { gap: 0.4rem 1.25rem; }
@media (max-width: 1100px) { .bk-header .wp-block-navigation { font-size: 0.82rem; letter-spacing: 0.05em; } .bk-header .wp-block-site-title { font-size: 1.6rem; } }

/* ---------- Christmas albums: record bin hub ---------- */
.bk-album-hub .wp-block-post-featured-image,
.bk-album-page .wp-block-post-featured-image { display: none; }
.bk-xmas-red { color: #B6362C; }
.bk-bin { background: #2B2A26; background-image: repeating-linear-gradient(90deg, rgba(255,255,255,.035) 0 2px, transparent 2px 46px); border-radius: 10px; }
.bk-bin .wp-block-post-template { align-items: stretch; }
.bk-record { position: relative; height: 100%; background: var(--wp--preset--color--accent-5); border-radius: 6px; box-shadow: 0 14px 26px -18px rgba(0,0,0,.8); transition: transform .2s ease; }
.bk-record:hover { transform: translateY(-6px) rotate(-.6deg); }
.bk-record .wp-block-post-featured-image { display: block !important; margin: 0; }
.bk-record .wp-block-post-featured-image img { border-radius: 6px 6px 0 0; display: block; }
.bk-record .wp-block-post-title a { text-decoration: none; color: var(--wp--preset--color--contrast); }
.bk-record .wp-block-post-title a:hover { color: #B6362C; text-decoration: underline; }
.bk-pricetag {
	position: absolute; top: 10px; right: -8px; transform: rotate(6deg);
	background: var(--wp--preset--color--accent-3); color: var(--wp--preset--color--contrast);
	padding: .35rem .7rem .4rem 1.1rem; border-radius: 3px 6px 6px 3px;
	box-shadow: 0 6px 12px -6px rgba(0,0,0,.6); line-height: 1.1; text-align: center;
	clip-path: polygon(12px 0, 100% 0, 100% 100%, 12px 100%, 0 50%);
}
.bk-pricetag p { margin: 0; }
.bk-was { font-family: var(--wp--preset--font-family--special-elite); text-decoration: line-through; font-size: .85rem; opacity: .75; }
.bk-free-stamp { font-family: var(--wp--preset--font-family--anton); color: #B6362C; font-size: 1.35rem; letter-spacing: .04em; }
.bk-year { font-family: var(--wp--preset--font-family--special-elite); font-size: .9rem; color: var(--wp--preset--color--accent-4); }

/* ---------- Christmas album pages ---------- */
.bk-track { border-top: 1px solid rgba(27,26,23,.2); padding: .6rem 0 .2rem; }
.bk-track p { margin: 0 0 .25rem; font-weight: 500; }
.bk-track-no { font-family: var(--wp--preset--font-family--special-elite); color: #B6362C; margin-right: .5rem; }
.bk-track .wp-block-audio { margin: 0; }
.bk-track .wp-block-audio audio { width: 100%; height: 36px; }
.bk-track-missing p { opacity: .7; }
.bk-credits { font-size: .9rem; color: var(--wp--preset--color--accent-4); border-top: var(--bk-rule); padding-top: 1rem; }
.bk-album-cover img { box-shadow: 0 18px 30px -18px rgba(0,0,0,.7); border-radius: 4px; }
.bk-album-meta .bk-free-stamp { font-size: 2rem; }
