:root{
	--hfp-bg:#FBF7F0;
	--hfp-accent:#D97F4E;
	--hfp-accent-dark:#c06a3a;
	--hfp-text:#2E2A26;
	--hfp-sage:#7C9473;
	--hfp-radius:10px;
}

body{
	background:var(--hfp-bg);
	color:var(--hfp-text);
	font-family:'Sora',sans-serif;
	line-height:1.7;
	font-size:18px;
}
h1,h2,h3,h4{
	font-family:'Sora',sans-serif;
	color:var(--hfp-text);
	line-height:1.2;
}
a, .page-content a, .entry-content a, .comments-area a{ color:var(--hfp-accent); text-decoration:none !important; }
.hfp-card, .hfp-card *, .hfp-card-title, .hfp-card-excerpt, .hfp-card-cta{ text-decoration:none !important; }
.wp-element-button,.wp-block-button__link,.hfp-btn,
.page-content .hfp-btn,.entry-content .hfp-btn,.page-content .wp-element-button,.entry-content .wp-element-button{
	display:inline-block;
	background:var(--hfp-accent);
	color:#fff !important;
	padding:0.9em 1.6em;
	border-radius:var(--hfp-radius);
	text-decoration:none;
	font-weight:600;
	border:0;
}
.wp-element-button:hover,.wp-block-button__link:hover,.hfp-btn:hover{ background:var(--hfp-accent-dark); color:#fff !important; }

/* header */
.site-header{
	display:flex;
	align-items:center;
	justify-content:space-between;
	flex-wrap:wrap;
	gap:1rem;
	padding:1.2rem 5%;
	background:var(--hfp-bg);
	position:sticky;
	top:0;
	z-index:100;
	border-bottom:1px solid rgba(46,42,38,0.08);
}
.site-title a{
	font-family:'Sora',sans-serif;
	font-weight:700;
	font-size:1.4rem;
	color:var(--hfp-text);
	text-decoration:none;
}
.site-description{ display:none; }
.site-navigation ul{
	display:flex;
	gap:2rem;
	list-style:none;
	margin:0;
	padding:0;
}
.site-navigation a{
	color:var(--hfp-text);
	text-decoration:none;
	font-weight:600;
}
.site-navigation a:hover{ color:var(--hfp-accent); }

/* generic section rhythm */
.hfp-section{ padding:4.5rem 5%; max-width:1200px; margin:0 auto; }
.hfp-section-narrow{ max-width:800px; }
.hfp-center{ text-align:center; }
.hfp-eyebrow{ color:var(--hfp-accent); font-weight:700; letter-spacing:.04em; text-transform:uppercase; font-size:0.85rem; }

/* hero */
.hfp-hero{
	display:grid;
	grid-template-columns:1.1fr 1fr;
	gap:3rem;
	align-items:center;
	padding:5rem 5%;
	max-width:1200px;
	margin:0 auto;
}
.hfp-hero h1{ font-size:2.8rem; margin:0 0 1rem; }
.hfp-hero p{ font-size:1.15rem; max-width:46ch; }
.hfp-hero img{ width:100%; height:auto; border-radius:16px; }
@media (max-width:820px){
	.hfp-hero{ grid-template-columns:1fr; }
}

/* icon boxes */
.hfp-icon-grid{
	display:grid;
	grid-template-columns:repeat(3,1fr);
	gap:2rem;
	margin-top:2.5rem;
}
.hfp-icon-box{
	background:#fff;
	border-radius:var(--hfp-radius);
	padding:2rem;
	text-align:center;
	box-shadow:0 2px 14px rgba(0,0,0,0.04);
}
.hfp-icon-box .hfp-icon{ font-size:2.4rem; display:block; margin-bottom:0.75rem; }
.hfp-icon-box h3{ margin:0 0 0.5rem; font-size:1.2rem; }
.hfp-icon-box p{ margin:0; color:#5a554e; }
@media (max-width:820px){
	.hfp-icon-grid{ grid-template-columns:1fr; }
}

/* author bio */
.hfp-bio{
	display:grid;
	grid-template-columns:0.8fr 1.2fr;
	gap:3rem;
	align-items:center;
}
.hfp-bio img{ width:100%; border-radius:16px; }
.hfp-bio h2{ margin-top:0; }
@media (max-width:820px){
	.hfp-bio{ grid-template-columns:1fr; }
}

/* card grid (loop grid shortcode + related) */
.hfp-grid{
	display:grid;
	grid-template-columns:repeat(3,1fr);
	gap:1.75rem;
	margin-top:2.5rem;
}
.hfp-card{
	background:#fff;
	border-radius:var(--hfp-radius);
	overflow:hidden;
	text-decoration:none;
	color:var(--hfp-text);
	display:block;
	box-shadow:0 2px 14px rgba(0,0,0,0.05);
	transition:transform .15s ease;
}
.hfp-card:hover{ transform:translateY(-3px); }
.hfp-card-img{ aspect-ratio:16/10; background:#eee5d8; overflow:hidden; }
.hfp-card-img img{ width:100%; height:100%; object-fit:cover; display:block; }
.hfp-card-img-placeholder{ width:100%; height:100%; background:linear-gradient(135deg,#eee5d8,#e4d4bd); }
.hfp-card-body{ padding:1.25rem 1.4rem 1.5rem; }
.hfp-card-title{ font-size:1.05rem; margin:0 0 0.5rem; }
.hfp-card-excerpt{ font-size:0.92rem; color:#5a554e; margin:0 0 0.75rem; }
.hfp-card-cta{ font-weight:700; color:var(--hfp-accent); font-size:0.9rem; }
@media (max-width:900px){
	.hfp-grid{ grid-template-columns:repeat(2,1fr); }
}
@media (max-width:600px){
	.hfp-grid{ grid-template-columns:1fr; }
}

.hfp-section-head{ display:flex; justify-content:space-between; align-items:flex-end; flex-wrap:wrap; gap:1rem; }
.hfp-section-head p{ margin:0.25rem 0 0; color:#5a554e; }

/* newsletter */
.hfp-newsletter{
	background:var(--hfp-sage);
	border-radius:16px;
	padding:3rem;
	text-align:center;
	color:#fff;
}
.hfp-newsletter h2{ color:#fff; margin-top:0; }
.hfp-newsletter form{ display:flex; gap:0.75rem; justify-content:center; flex-wrap:wrap; margin-top:1.5rem; }
.hfp-newsletter input[type=email]{
	padding:0.9em 1.2em;
	border-radius:var(--hfp-radius);
	border:0;
	min-width:280px;
	font-size:1rem;
}

/* related posts */
.hfp-related{ padding:3rem 5%; max-width:1200px; margin:2rem auto 0; border-top:1px solid rgba(46,42,38,0.1); }

/* hide theme's auto page title - our page content supplies its own heading */
.page .entry-title{ display:none; }

/* single post */
.hfp-byline{ color:#5a554e; font-size:0.95rem; margin-bottom:2rem; }
.single .entry-content, article.type-page .entry-content{
	max-width:700px;
	margin:0 auto;
	padding:2rem 5% 4rem;
}

/* footer */
footer.site-footer, .site-footer{ display:none; }
.hfp-footer-extra{
	background:#2E2A26;
	color:#e9e3d8;
	padding:3rem 5%;
	margin-top:3rem;
}
.hfp-footer-extra-inner{
	max-width:1200px;
	margin:0 auto;
	display:flex;
	justify-content:space-between;
	align-items:flex-start;
	flex-wrap:wrap;
	gap:1.5rem;
}
.hfp-footer-extra a{ color:#e9e3d8; text-decoration:none; }
.hfp-footer-extra a:hover{ color:var(--hfp-accent); }
.hfp-footer-logo{ font-family:'Sora',sans-serif; font-size:1.3rem; font-weight:700; color:#fff; }
.hfp-footer-tagline{ margin:0.4rem 0 0; color:#b9b2a4; }
.hfp-footer-links, .hfp-footer-social{ display:flex; gap:1.5rem; }
.hfp-footer-copy{ max-width:1200px; margin:2rem auto 0; padding-top:1.5rem; border-top:1px solid rgba(255,255,255,0.1); color:#b9b2a4; font-size:0.9rem; }

/* about / contact pages */
.hfp-page-content{ max-width:700px; margin:0 auto; padding:3rem 5% 4rem; }
.hfp-author-photo{ width:180px; height:180px; object-fit:cover; border-radius:50%; display:block; margin-bottom:1.25rem; }
.hfp-author-facts{
	background:#fff;
	border:1px solid rgba(46,42,38,0.1);
	border-radius:var(--hfp-radius);
	padding:1.5rem 1.75rem;
	margin:1.5rem 0 2rem;
}
.hfp-author-facts p{ margin:0.35rem 0; }
.hfp-contact-form input, .hfp-contact-form textarea{
	width:100%;
	padding:0.85em 1em;
	border-radius:var(--hfp-radius);
	border:1px solid rgba(46,42,38,0.2);
	font-family:inherit;
	font-size:1rem;
	margin-bottom:1rem;
	box-sizing:border-box;
}
.hfp-contact-form textarea{ min-height:140px; }
