/*
Theme Name: Dan Hardee
Theme URI: https://www.danhardee.com/
Author: Dan Hardee
Author URI: https://www.danhardee.com/
Description: Custom block theme for danhardee.com — Dan Hardee's personal hub. Originally based on Twenty Twenty-Five, now maintained independently.
Version: 2.0.0
Requires at least: 6.7
Requires PHP: 7.2
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: dan-hardee
Update URI: false
*/

:root {
	--dan-black:#090909;
	--dan-panel:#11110f;
	--dan-cream:#f3efe5;
	--dan-paper:#f6f3eb;
	--dan-muted:#b8b2a7;
	--dan-gold:#f2b705;
	--dan-line:#302e29;
}

* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; background:var(--dan-black); color:var(--dan-paper); }
a { text-underline-offset:.16em; }
.wp-site-blocks { min-height:100vh; display:flex; flex-direction:column; }
.wp-site-blocks > main { flex:1 0 auto; }

.dan-site-header {
	position:sticky;
	top:0;
	z-index:50;
	margin:0 !important;
	border-bottom:1px solid var(--dan-line);
	background:rgba(9,9,9,.95);
	backdrop-filter:blur(12px);
}
.dan-site-header-inner {
	width:min(1180px,calc(100% - 32px));
	min-height:68px;
	margin:0 auto !important;
	display:flex !important;
	align-items:center;
	gap:24px;
}
.dan-wordmark {
	margin:0 !important;
	font-size:1.05rem;
	font-weight:800;
	letter-spacing:.08em;
	text-transform:uppercase;
	white-space:nowrap;
}
.dan-wordmark a { color:var(--dan-paper) !important; text-decoration:none !important; }
.dan-nav { margin-left:auto !important; }
.dan-nav .wp-block-navigation__container { gap:24px !important; }
.dan-nav a {
	color:#d0cbc2 !important;
	font-size:.72rem;
	font-weight:800;
	letter-spacing:.1em;
	text-transform:uppercase;
	text-decoration:none !important;
}
.dan-nav a:hover { color:var(--dan-gold) !important; }
.dan-header-contact .wp-block-button__link {
	border:1px solid var(--dan-gold);
	border-radius:0 !important;
	background:var(--dan-gold) !important;
	color:var(--dan-black) !important;
	padding:.62rem .82rem;
	font-size:.7rem;
	font-weight:900;
	letter-spacing:.08em;
	text-transform:uppercase;
	white-space:nowrap;
}

.dan-home-hero { overflow:hidden; }
.dan-home-hero > .wp-block-columns { min-height:520px; }
.dan-home-hero h1 { letter-spacing:-.045em; }
.dan-home-hero .wp-block-button__link { min-height:46px; display:inline-flex; align-items:center; }
.dan-hub-portrait {
	position:relative;
	margin:0 auto !important;
	max-width:390px;
}
.dan-hub-portrait img {
	position:relative;
	z-index:1;
	display:block;
	width:100% !important;
	height:auto !important;
	max-height:500px;
	object-fit:contain;
	object-position:center bottom;
	filter:drop-shadow(0 24px 35px rgba(0,0,0,.42));
}

.dan-home-work .wp-block-column > .wp-block-group {
	height:100%;
	transition:transform .2s ease,border-color .2s ease,background .2s ease;
}
.dan-home-work .wp-block-column > .wp-block-group:hover {
	transform:translateY(-4px);
	border-color:var(--dan-gold) !important;
	background:#0d0d0c !important;
}
.dan-home-work h3 { line-height:1.05; }
.dan-home-work a { color:var(--dan-gold); text-decoration:none; }
.dan-home-work a:hover { text-decoration:underline; }

.dan-home-about { border-top:1px solid var(--dan-line); }
.dan-home-social h2 {
	color:var(--dan-black) !important;
}

.dan-home-social .wp-block-button__link {
	border:1px solid #090909;
	font-weight:800;
	min-width:110px;
	text-align:center;
}
.dan-home-social .wp-block-button__link:hover {
	background:var(--dan-gold) !important;
	color:var(--dan-black) !important;
}
.dan-home-contact { border-top:1px solid var(--dan-line); }
.dan-home-contact .wp-block-button__link { min-height:48px; display:inline-flex; align-items:center; }

/* Contact form */
.dan-contact { width:100%; max-width:640px; margin:28px auto 0 !important; text-align:left; }
.dan-contact-form p { margin:0 0 16px !important; }
.dan-contact-row { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; }
.dan-contact label {
	display:block;
	margin-bottom:6px;
	color:#c7c2b8;
	font-size:.72rem;
	font-weight:800;
	letter-spacing:.1em;
	text-transform:uppercase;
}
.dan-contact input[type="text"],
.dan-contact input[type="email"],
.dan-contact select,
.dan-contact textarea {
	width:100%;
	padding:.8rem .9rem;
	border:1px solid #3a3731;
	border-radius:0;
	background:var(--dan-black);
	color:var(--dan-paper);
	font:inherit;
	font-size:1rem;
}
.dan-contact select { appearance:auto; }
.dan-contact textarea { resize:vertical; min-height:130px; }
.dan-contact input:focus,
.dan-contact select:focus,
.dan-contact textarea:focus { outline:2px solid var(--dan-gold); outline-offset:1px; border-color:var(--dan-gold); }
.dan-contact-submit { text-align:center; }
.dan-contact button {
	min-height:48px;
	padding:.8rem 2rem;
	border:0;
	border-radius:0;
	background:var(--dan-gold);
	color:var(--dan-black);
	font:inherit;
	font-weight:800;
	cursor:pointer;
}
.dan-contact button:hover { background:#ffc81f; }
.dan-contact button:disabled { opacity:.6; cursor:wait; }
.dan-contact-honeypot { position:absolute !important; left:-9999px; width:1px; height:1px; overflow:hidden; }
.dan-contact-status {
	margin:0 0 16px !important;
	padding:14px 16px;
	border-left:3px solid var(--dan-gold);
	background:#1a1915;
	color:var(--dan-paper);
	font-weight:700;
	text-align:center;
}
.dan-contact-status.is-error { border-left-color:#e5484d; }
.dan-contact-fallback { text-align:center; }
.dan-contact-fallback a { color:var(--dan-gold); font-weight:800; }

/* Contact page */
.dan-contact-page .dan-contact { margin-top:8px !important; }
.dan-contact-alt { margin-top:8px !important; color:#918c84; font-size:.9rem; text-align:center; }
.dan-contact-alt a { color:var(--dan-gold); font-weight:800; }
.dan-contact-shortcuts { margin:0 !important; padding:44px 24px; background:var(--dan-panel); border-top:1px solid var(--dan-line); }
.dan-contact-shortcuts > * { max-width:1000px; }
.dan-contact-shortcuts .wp-block-columns { gap:32px !important; }
.dan-contact-shortcuts .dan-fact-label { color:var(--dan-gold); opacity:1; }
.dan-contact-shortcuts p { color:#c7c2b8; line-height:1.6; }
.dan-contact-shortcuts a { color:var(--dan-paper); font-weight:800; }
.dan-contact-shortcuts a:hover { color:var(--dan-gold); }
@media (max-width: 600px) {
	.dan-contact-row { grid-template-columns:1fr; gap:0; }
	.dan-contact button { width:100%; }
}

.dan-site-footer {
	margin:0 !important;
	border-top:1px solid var(--dan-line);
	background:#050505;
}
.dan-site-footer-inner {
	width:min(1180px,calc(100% - 32px));
	margin:0 auto !important;
	padding:28px 0;
	display:flex !important;
	align-items:center;
	justify-content:space-between;
	gap:20px;
	color:#918c84;
	font-size:.72rem;
}
.dan-footer-links {
	display:flex;
	flex-wrap:wrap;
	gap:12px 18px;
}
.dan-footer-links a { color:#c7c2b8; text-decoration:none; }
.dan-footer-links a:hover { color:var(--dan-gold); }

.dan-generic-page {
	width:min(820px,calc(100% - 32px));
	margin:0 auto !important;
	padding:64px 0;
}

/* Bio & press page */
.dan-bio-hero,
.dan-bio-facts,
.dan-bio-story,
.dan-bio-press { margin:0 !important; padding:56px 24px; }
.dan-bio-hero > *,
.dan-bio-story > *,
.dan-bio-press > * { max-width:820px; }
.dan-bio-facts > * { max-width:1180px; }
.dan-eyebrow {
	margin-top:0 !important;
	margin-bottom:14px !important;
	color:var(--dan-gold);
	font-size:12px;
	letter-spacing:.14em;
	text-transform:uppercase;
}
.dan-bio-hero { background:var(--dan-black); padding-top:64px; padding-bottom:48px; }
.dan-bio-hero h1 {
	margin:0 auto 20px !important;
	font-size:clamp(2.6rem,6vw,4.5rem);
	font-weight:800;
	line-height:.95;
	letter-spacing:-.045em;
}
.dan-bio-lead { color:#d8d4cb; font-size:clamp(1rem,1.6vw,1.3rem); line-height:1.55; }

.dan-bio-facts { background:var(--dan-gold); color:var(--dan-black); padding-top:28px; padding-bottom:28px; }
.dan-bio-facts .wp-block-columns {
	display:grid !important;
	grid-template-columns:repeat(4,minmax(0,1fr));
	gap:24px !important;
	width:100%;
	max-width:1180px !important;
	margin:0 auto !important;
}
.dan-bio-facts .wp-block-column { min-width:0; overflow-wrap:break-word; }
@media (max-width: 1000px) {
	.dan-bio-facts .wp-block-columns { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
.dan-fact-label {
	margin:0 0 4px !important;
	font-size:11px;
	font-weight:800;
	letter-spacing:.12em;
	text-transform:uppercase;
	opacity:.75;
}
.dan-fact { margin:0 !important; font-size:1.05rem; font-weight:800; line-height:1.3; }

.dan-bio-story { background:var(--dan-panel); border-bottom:1px solid var(--dan-line); }
.dan-bio-story h2,
.dan-bio-press h2 {
	margin-top:0 !important;
	font-size:clamp(1.9rem,4vw,2.75rem);
	line-height:1.05;
}
.dan-bio-story p { color:#c7c2b8; font-size:1.08rem; line-height:1.75; }
.dan-bio-story a { color:var(--dan-gold); }

.dan-bio-press { background:var(--dan-cream); color:var(--dan-black); }
.dan-bio-press > .wp-block-columns { max-width:1000px; gap:40px !important; margin-top:28px !important; }
.dan-bio-press .dan-eyebrow { color:#8a6800; }
.dan-bio-press h2,
.dan-bio-press h3 { color:var(--dan-black) !important; }
.dan-bio-press h3 {
	margin:28px 0 10px !important;
	font-size:12px;
	font-weight:800;
	letter-spacing:.12em;
	text-transform:uppercase;
}
.dan-bio-press .wp-block-column > h3:first-child { margin-top:0 !important; }
.dan-press-copy {
	margin:0 !important;
	padding:18px 20px;
	border-left:3px solid var(--dan-gold);
	background:#fff;
	line-height:1.65;
}
.dan-bio-press a { color:var(--dan-black); font-weight:800; }
.dan-press-headshot { margin:0 0 12px !important; }
.dan-press-headshot img { display:block; width:100%; max-width:240px; height:auto; border:1px solid #d9d3c4; }
.dan-press-download a {
	display:inline-block;
	padding:.7rem 1rem;
	background:var(--dan-black);
	color:var(--dan-paper) !important;
	font-size:.75rem;
	letter-spacing:.06em;
	text-decoration:none;
	text-transform:uppercase;
}
.dan-press-download a:hover { background:var(--dan-gold); color:var(--dan-black) !important; }

/* Listen + reviews */
.dan-bio-logos { margin:0 !important; padding:36px 24px; background:var(--dan-black); border-bottom:1px solid var(--dan-line); }
.dan-bio-logos .dan-eyebrow { text-align:center; color:#918c84; }
.dan-logo-row { max-width:1100px !important; gap:28px 44px !important; align-items:center; }
.dan-logo-row .wp-block-image { margin:0 !important; }
.dan-logo-row img {
	display:block;
	width:auto !important;
	max-width:170px;
	max-height:64px;
	height:auto;
	object-fit:contain;
}
.dan-bio-listen,
.dan-bio-reviews { margin:0 !important; padding:56px 24px; }
.dan-bio-listen > *,
.dan-bio-reviews > * { max-width:820px; }
.dan-bio-listen { background:var(--dan-black); border-bottom:1px solid var(--dan-line); }
.dan-bio-listen h2,
.dan-bio-reviews h2 { margin-top:0 !important; font-size:clamp(1.9rem,4vw,2.75rem); line-height:1.05; }
.dan-bio-listen p { color:#c7c2b8; font-size:1.08rem; line-height:1.7; }
.dan-listen-buttons { margin-top:24px !important; gap:10px !important; }
.dan-listen-buttons .wp-block-button__link {
	border:1px solid var(--dan-gold);
	border-radius:0 !important;
	background:var(--dan-gold);
	color:var(--dan-black) !important;
	font-size:.85rem;
	font-weight:800;
}
.dan-listen-buttons .is-style-outline .wp-block-button__link { background:transparent; color:var(--dan-paper) !important; border-color:#5a564e; }
.dan-listen-buttons .is-style-outline .wp-block-button__link:hover { border-color:var(--dan-gold); color:var(--dan-gold) !important; }

.dan-bio-reviews { background:var(--dan-panel); }
.dan-bio-reviews > p:not(.dan-eyebrow) { color:#c7c2b8; font-size:1.08rem; }
.dan-bio-reviews > .wp-block-columns { max-width:1000px; gap:16px !important; margin-top:24px !important; }
.dan-review-card {
	padding:24px;
	border:1px solid var(--dan-line);
	background:var(--dan-black);
	display:flex;
	flex-direction:column;
}
.dan-review-card p { margin:0 !important; color:#d8d4cb; line-height:1.6; }
.dan-review-card .dan-review-name {
	margin-top:auto !important;
	padding-top:16px;
	color:var(--dan-gold);
	font-size:.72rem;
	font-weight:800;
	letter-spacing:.1em;
	text-transform:uppercase;
}
.dan-review-more a { color:var(--dan-gold); font-weight:800; }

.dan-404 { min-height:60vh; padding-top:96px !important; padding-bottom:96px !important; }
.dan-404-buttons { margin-top:28px !important; gap:12px !important; }
.dan-404-buttons .wp-block-button__link {
	border:1px solid var(--dan-gold);
	border-radius:0 !important;
	background:var(--dan-gold);
	color:var(--dan-black) !important;
	font-weight:800;
}
.dan-404-buttons .is-style-outline .wp-block-button__link { background:transparent; color:var(--dan-paper) !important; }

@media (max-width: 781px) {
	.dan-site-header-inner { min-height:60px; gap:12px; }
	.dan-wordmark { font-size:.9rem; }
	.dan-nav { display:none !important; }
	.dan-header-contact { margin-left:auto !important; }
	.dan-header-contact .wp-block-button__link { padding:.55rem .65rem; font-size:.62rem; }
	.dan-home-hero { padding-top:34px !important; padding-bottom:24px !important; }
	.dan-home-hero > .wp-block-columns { min-height:0; gap:10px !important; }
	.dan-home-hero h1 { font-size:clamp(3rem,14vw,4.15rem) !important; }
	.dan-home-hero p { line-height:1.5; }
	.dan-home-hero .wp-block-buttons { gap:8px !important; }
	.dan-home-hero .wp-block-button { width:100%; }
	.dan-home-hero .wp-block-button__link { width:100%; justify-content:center; }
	.dan-hub-portrait { max-width:210px; margin-top:6px !important; }
	.dan-hub-portrait img { max-height:260px; }
	.dan-hub-portrait:before { display:none; }
	.dan-home-work,
	.dan-home-about,
	.dan-home-social,
	.dan-home-contact { padding-top:40px !important; padding-bottom:44px !important; }
	.dan-home-work h2,
	.dan-home-about h2,
	.dan-home-social h2,
	.dan-home-contact h2 { font-size:clamp(2rem,10vw,2.75rem) !important; }
	.dan-home-social .wp-block-button { flex:1 1 44%; }
	.dan-home-social .wp-block-button__link { width:100%; min-width:0; }
	.dan-site-footer-inner { align-items:flex-start; flex-direction:column; }
	.dan-bio-hero,
	.dan-bio-story,
	.dan-bio-listen,
	.dan-bio-reviews,
	.dan-bio-press { padding:40px 16px; }
	.dan-listen-buttons .wp-block-button { flex:1 1 100%; }
	.dan-logo-row { gap:24px 32px !important; }
	.dan-logo-row img { max-width:120px; max-height:48px; }
	.dan-listen-buttons .wp-block-button__link { width:100%; }
	.dan-bio-facts { padding:24px 16px; }
	.dan-bio-facts .wp-block-columns { gap:16px !important; }
	.dan-press-copy { padding:14px 16px; }
}
