/*
Theme Name: Steward Fund Recovery
Template: astra
Description: Brand child theme for Steward Fund Recovery - forest green, gold and cream palette with Fraunces/Public Sans typography, built on Astra.
Version: 1.0.0
Author: Steward Fund Recovery
*/

/* ==========================================================================
   Brand tokens
   ========================================================================== */
:root {
	--sfr-forest: #1F3D2B;
	--sfr-forest-2: #2F5940;
	--sfr-forest-headline: #1F7A4D;
	--sfr-gold: #9C6F27;
	--sfr-gold-bright: #D4A843;
	--sfr-gold-soft: #F1E4C8;
	--sfr-cream: #F6F5EE;
	--sfr-surface: #FFFFFF;
	--sfr-surface-2: #EEEDE0;
	--sfr-border: #DBD8C6;
	--sfr-ink: #1B2A22;
	--sfr-ink-dim: #5B6B60;
	--sfr-shadow: rgba(31, 61, 43, 0.14);
}

/* ==========================================================================
   Base
   ========================================================================== */
body.wp-theme-astra {
	background-color: var(--sfr-cream);
	color: var(--sfr-ink);
	font-family: 'Public Sans', system-ui, -apple-system, sans-serif;
}

body.wp-theme-astra a {
	color: var(--sfr-forest-2);
	text-decoration-color: var(--sfr-gold);
}

body.wp-theme-astra a:hover,
body.wp-theme-astra a:focus {
	color: var(--sfr-gold);
}

body.wp-theme-astra ::selection {
	background: var(--sfr-gold-soft);
	color: var(--sfr-forest);
}

body.wp-theme-astra .entry-content h1,
body.wp-theme-astra .entry-content h2,
body.wp-theme-astra .entry-content h3,
body.wp-theme-astra .entry-content h4,
body.wp-theme-astra .entry-header .entry-title,
body.wp-theme-astra .site-title,
body.wp-theme-astra .site-title a {
	font-family: 'Fraunces', Georgia, 'Times New Roman', serif;
	font-weight: 600;
	color: var(--sfr-forest);
	letter-spacing: 0.01em;
}

/* The WordPress page title (rendered above .entry-content, separate from
   any in-content heading block) needs its own size rule since it isn't
   covered by the .entry-content h1 rule above. It keeps the brighter
   headline green -- this is the one spot that was rendering unstyled
   (near-black) before, so it stays as the fix landed. */
body.wp-theme-astra .entry-header .entry-title {
	font-size: clamp(2rem, 1.6rem + 1.6vw, 2.85rem);
	line-height: 1.15;
	color: var(--sfr-forest-headline);
}

body.wp-theme-astra .entry-content h1 {
	font-size: clamp(2rem, 1.6rem + 1.6vw, 2.85rem);
	line-height: 1.15;
	margin-bottom: 1.1rem;
}

body.wp-theme-astra .entry-content h2 {
	font-size: clamp(1.4rem, 1.2rem + 0.8vw, 1.75rem);
	margin-top: 2.6rem;
	margin-bottom: 0.9rem;
	padding-bottom: 0.6rem;
	border-bottom: 2px solid var(--sfr-gold-soft);
	position: relative;
}

body.wp-theme-astra .entry-content h2::after {
	content: "";
	position: absolute;
	left: 0;
	bottom: -2px;
	width: 64px;
	height: 2px;
	background: var(--sfr-gold-bright);
}

body.wp-theme-astra .entry-content > h2:first-child,
body.wp-theme-astra .entry-content > h1:first-child + p + h2 {
	margin-top: 1.6rem;
}

body.wp-theme-astra .entry-content p {
	line-height: 1.75;
	max-width: 68ch;
}

body.wp-theme-astra .entry-content ul.wp-block-list {
	max-width: 68ch;
	padding-left: 0;
	list-style: none;
}

body.wp-theme-astra .entry-content ul.wp-block-list li {
	position: relative;
	padding-left: 1.6rem;
	margin-bottom: 0.65rem;
	line-height: 1.65;
}

body.wp-theme-astra .entry-content ul.wp-block-list li::before {
	content: "\2726";
	position: absolute;
	left: 0;
	top: 0.05em;
	color: var(--sfr-gold-bright);
	font-size: 0.95em;
}

/* ==========================================================================
   Content card
   ========================================================================== */
body.wp-theme-astra .ast-article-single {
	background: var(--sfr-surface);
	border: 1px solid var(--sfr-border);
	border-radius: 10px;
	box-shadow: 0 18px 40px -24px var(--sfr-shadow);
	padding: clamp(1.75rem, 1.3rem + 2vw, 3.5rem) !important;
	margin-top: 2.25rem;
	margin-bottom: 3rem;
}

@media (max-width: 600px) {
	body.wp-theme-astra .ast-article-single {
		border-radius: 6px;
	}
}

/* ==========================================================================
   Top brand strip
   ========================================================================== */
.sfr-topbar {
	background: var(--sfr-forest);
	color: var(--sfr-gold-bright);
	text-align: center;
}

.sfr-topbar-inner {
	font-family: 'Fraunces', Georgia, serif;
	font-style: italic;
	font-weight: 500;
	font-size: 0.82rem;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	padding: 9px 16px;
}

/* ==========================================================================
   Header
   ========================================================================== */
body.wp-theme-astra .site-header {
	background: var(--sfr-surface);
	border-bottom: 3px solid var(--sfr-gold-bright);
}

body.wp-theme-astra .ast-site-identity img.custom-logo {
	max-height: 124px;
	width: auto;
}

/* The horizontal logo already includes the wordmark, so hide the
   separately-rendered text site title to avoid a duplicated look. */
body.wp-theme-astra .ast-site-identity .ast-site-title-wrap {
	display: none;
}

body.wp-theme-astra .main-header-menu .menu-item > a {
	font-family: 'Public Sans', sans-serif;
	font-weight: 600;
	font-size: 0.92rem;
	letter-spacing: 0.03em;
	text-transform: uppercase;
	color: var(--sfr-forest);
}

body.wp-theme-astra .main-header-menu .menu-item > a:hover,
body.wp-theme-astra .main-header-menu .current-menu-item > a {
	color: var(--sfr-gold);
}

/* ==========================================================================
   Buttons + links styled as calls to action
   ========================================================================== */
body.wp-theme-astra .wp-block-button__link,
body.wp-theme-astra .wpcf7-form input[type="submit"] {
	font-family: 'Public Sans', sans-serif;
	font-weight: 700;
	letter-spacing: 0.03em;
	text-transform: uppercase;
	font-size: 0.85rem;
	background: var(--sfr-forest);
	color: var(--sfr-gold-bright) !important;
	border: 1px solid var(--sfr-forest);
	border-radius: 999px;
	padding: 0.85em 2em;
	transition: background 0.2s ease, color 0.2s ease, transform 0.15s ease;
	cursor: pointer;
}

body.wp-theme-astra .wp-block-button__link:hover,
body.wp-theme-astra .wpcf7-form input[type="submit"]:hover {
	background: var(--sfr-gold);
	border-color: var(--sfr-gold);
	color: var(--sfr-forest) !important;
	transform: translateY(-1px);
}

/* Hero / contact callout lines (the bold call-to-action paragraphs) */
body.wp-theme-astra .entry-content > p:has(> strong) {
	background: var(--sfr-gold-bright);
	color: var(--sfr-ink);
	border-left: 4px solid var(--sfr-gold);
	border-radius: 6px;
	padding: 1rem 1.3rem;
	max-width: 100%;
	font-size: 1.05rem;
}

body.wp-theme-astra .entry-content > p:has(> strong) strong {
	color: var(--sfr-forest);
}

body.wp-theme-astra .entry-content > p:has(> strong) a {
	color: var(--sfr-forest);
	font-weight: 700;
	text-decoration: underline;
	text-decoration-color: var(--sfr-ink);
}

/* When two callout lines run back to back (e.g. Phone: / Email: on the
   Contact page), merge them into a single seamless block. */
body.wp-theme-astra .entry-content > p:has(> strong):has(+ p > strong) {
	border-bottom-left-radius: 0;
	border-bottom-right-radius: 0;
	margin-bottom: 0;
	padding-bottom: 0.6rem;
}

body.wp-theme-astra .entry-content > p:has(> strong) + p:has(> strong) {
	border-top-left-radius: 0;
	border-top-right-radius: 0;
	border-top: 1px dashed rgba(31, 61, 43, 0.25);
	margin-top: 0;
	padding-top: 0.6rem;
}

/* ==========================================================================
   Contact form 7
   ========================================================================== */
body.wp-theme-astra .wpcf7-form {
	background: var(--sfr-surface-2);
	border: 1px solid var(--sfr-border);
	border-radius: 10px;
	padding: clamp(1.25rem, 1rem + 1.5vw, 2.25rem);
	margin-top: 1.5rem;
}

body.wp-theme-astra .wpcf7-form label {
	display: block;
	font-family: 'Public Sans', sans-serif;
	font-weight: 600;
	font-size: 0.85rem;
	letter-spacing: 0.02em;
	color: var(--sfr-forest);
	margin-bottom: 1.1rem;
}

body.wp-theme-astra .wpcf7-form-control:not([type="submit"]) {
	display: block;
	width: 100%;
	margin-top: 0.4rem;
	padding: 0.7em 0.9em;
	background: var(--sfr-surface);
	border: 1px solid var(--sfr-border);
	border-radius: 6px;
	font-family: 'Public Sans', sans-serif;
	font-size: 0.95rem;
	color: var(--sfr-ink);
}

body.wp-theme-astra .wpcf7-form-control:not([type="submit"]):focus {
	outline: none;
	border-color: var(--sfr-gold);
	box-shadow: 0 0 0 3px var(--sfr-gold-soft);
}

body.wp-theme-astra .wpcf7-form textarea.wpcf7-form-control {
	min-height: 140px;
	resize: vertical;
}

body.wp-theme-astra .wpcf7-not-valid-tip {
	color: #9C3B2E;
	font-size: 0.8rem;
	margin-top: 0.3rem;
}

body.wp-theme-astra div.wpcf7-response-output {
	border-radius: 6px;
	border-color: var(--sfr-forest-2) !important;
	color: var(--sfr-forest);
}

/* ==========================================================================
   Footer
   ========================================================================== */
body.wp-theme-astra .site-footer,
body.wp-theme-astra #colophon {
	background: var(--sfr-forest);
	color: var(--sfr-cream);
	margin-top: 2rem;
}

body.wp-theme-astra .site-footer a,
body.wp-theme-astra #colophon a {
	color: var(--sfr-gold-bright);
}

body.wp-theme-astra .site-footer a:hover,
body.wp-theme-astra #colophon a:hover {
	color: var(--sfr-cream);
}

body.wp-theme-astra .site-footer .ast-builder-footer-grid-columns,
body.wp-theme-astra #colophon .ast-builder-footer-grid-columns {
	padding-top: 1.75rem;
	padding-bottom: 1.75rem;
}

/* Astra's footer builder rows carry their own white background on inner
   wrapper divs, which otherwise paints over the forest green above. */
body.wp-theme-astra .site-footer .site-below-footer-wrap,
body.wp-theme-astra #colophon .site-below-footer-wrap,
body.wp-theme-astra .site-footer .ast-builder-grid-row-container,
body.wp-theme-astra #colophon .ast-builder-grid-row-container {
	background-color: var(--sfr-forest) !important;
}

body.wp-theme-astra .site-footer .ast-footer-copyright p,
body.wp-theme-astra #colophon .ast-footer-copyright p {
	color: var(--sfr-cream);
	font-size: 0.85rem;
	letter-spacing: 0.02em;
}
