/*
 * Shared design foundation — colors, type, buttons, section utilities.
 * Pulled from the client-approved mockups in ~/Desktop/FCLS/ (fcls-homepage.html).
 * Page- and component-specific CSS lives in its own file under assets/css/
 * and is enqueued only where it's needed.
 */

:root {
	--red: #de1729;
	--red-dark: #b8121f;
	--green: #1c7d3f;
	--charcoal: #1a1a1a;
	--charcoal-soft: #2a2a2a;
	--gray-900: #262626;
	--gray-600: #6b6b6b;
	--gray-300: #d8d8d8;
	--gray-100: #f4f4f4;
	--white: #ffffff;
}

*, *::before, *::after { box-sizing: border-box; }

body {
	font-family: 'Inter', -apple-system, BlinkMacSystemFont, sans-serif;
	color: var(--charcoal);
	line-height: 1.5;
	-webkit-font-smoothing: antialiased;
	-webkit-text-size-adjust: 100%;
	text-size-adjust: 100%;
	margin: 0;
}

h1, h2, h3, h4 {
	font-family: 'Poppins', 'Inter', sans-serif;
	font-weight: 700;
	line-height: 1.15;
	margin: 0;
	color: var(--charcoal);
}

a { text-decoration: none; color: inherit; }
p { font-weight: 500; } /* Inter 400 reads too thin at these sizes/colors */
ul { list-style: none; margin: 0; padding: 0; }
img { max-width: 100%; display: block; }

.fcls-section { padding: 72px 24px; }
.fcls-inner { max-width: 1180px; margin: 0 auto; }

.fcls-eyebrow {
	text-transform: uppercase;
	letter-spacing: 0.12em;
	font-size: 12px;
	font-weight: 700;
	color: var(--red);
}

.fcls-btn {
	display: inline-block;
	padding: 15px 28px;
	border-radius: 4px;
	font-weight: 700;
	font-size: 15px;
	cursor: pointer;
	transition: all .18s ease;
	border: 2px solid transparent;
	text-align: center;
}
.fcls-btn-primary { background: var(--red); color: var(--white); }
.fcls-btn-primary:hover { background: var(--red-dark); color: var(--white); }
.fcls-btn-outline { background: transparent; border-color: rgba(255,255,255,.55); color: var(--white); }
.fcls-btn-outline:hover { border-color: var(--white); background: rgba(255,255,255,.08); color: var(--white); }
.fcls-btn-dark-outline { background: var(--charcoal); border-color: var(--charcoal); color: var(--white); }
.fcls-btn-dark-outline:hover { background: #000; border-color: #000; color: var(--white); }

/*
 * Shared components — used on the homepage AND every loan program page
 * (marked "(shared pattern)" in Josh's mockups). Kept here once instead of
 * duplicated per page-specific stylesheet.
 */

.fcls-loans-head { text-align: center; max-width: 800px; margin: 0 auto 44px; }
.fcls-loans-head h2 { font-size: 34px; margin: 10px 0 12px; }
.fcls-loans-head p { color: var(--gray-600); font-size: 16px; }
.fcls-loans-more { text-align: center; margin-top: 30px; }

.fcls-loan-card {
	border: 1px solid var(--gray-300);
	border-radius: 10px;
	padding: 26px 22px;
	transition: all .18s ease;
	display: block;
}
.fcls-loan-card:hover { border-color: var(--red); box-shadow: 0 10px 28px rgba(0,0,0,.08); transform: translateY(-2px); }
.fcls-loan-card .tag {
	display: inline-block;
	font-size: 10.5px;
	font-weight: 700;
	letter-spacing: .05em;
	text-transform: uppercase;
	background: #fdeaec;
	color: var(--red);
	padding: 3px 8px;
	border-radius: 4px;
	margin-bottom: 12px;
}
.fcls-loan-card h4 { font-size: 17px; margin-bottom: 6px; }
.fcls-loan-card p { font-size: 13.5px; color: var(--gray-600); margin: 0 0 14px; }
.fcls-loan-card .link { font-size: 13.5px; font-weight: 700; color: var(--red); }

/* "How We Get It Done" 4-step process — used on the homepage, every
   individual loan program page, and the All Loan Programs page. Moved
   here from front-page.css (which is only enqueued on is_front_page())
   once the section started rendering on other page types too — was
   shipping unstyled everywhere except the homepage until this move. */
.fcls-process { background: var(--charcoal); color: var(--white); }
.fcls-process-head { text-align: center; max-width: 800px; margin: 0 auto 50px; }
.fcls-process-head h2 { font-size: 32px; color: var(--white); margin: 10px 0 12px; }
.fcls-process-head p { color: rgba(255,255,255,.65); }
.fcls-process-steps {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 24px;
}
.fcls-process-step { padding: 26px 22px; border-left: 2px solid var(--red); }
.fcls-process-step .step-num { color: var(--red); font-size: 13px; font-weight: 800; letter-spacing: .08em; }
.fcls-process-step h4 { color: var(--white); font-size: 18px; margin: 10px 0 8px; }
.fcls-process-step p { color: rgba(255,255,255,.62); font-size: 14px; margin: 0; }
@media (max-width: 980px) {
	.fcls-process-steps { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 560px) {
	.fcls-process-steps { grid-template-columns: 1fr; }
}

.fcls-twoup { background: var(--gray-100); }
.fcls-twoup .fcls-inner { display: grid; grid-template-columns: 1fr 1fr; gap: 56px; align-items: center; }
.fcls-twoup-block { display: flex; flex-direction: column; gap: 32px; }
.fcls-twoup-item h4 { font-size: 20px; margin-bottom: 8px; }
.fcls-twoup-item p { color: var(--gray-600); font-size: 15px; margin: 0; }
.fcls-twoup-media img { width: 100%; height: 100%; object-fit: cover; border-radius: 10px; aspect-ratio: 4/3; display: block; }
.fcls-twoup-reverse .fcls-twoup-media { order: 2; }
.fcls-twoup-reverse .fcls-twoup-block { order: 1; }
.fcls-photo-placeholder {
	background: repeating-linear-gradient(135deg, #e4e4e4, #e4e4e4 12px, #ececec 12px, #ececec 24px);
	border-radius: 10px;
	aspect-ratio: 4/3;
	display: flex;
	align-items: center;
	justify-content: center;
	color: var(--gray-600);
	font-size: 13px;
	text-align: center;
	padding: 20px;
	overflow: hidden;
}
.fcls-photo-placeholder:has(img) { padding: 0; }
.fcls-photo-placeholder img {
	width: 100%; height: 100%; object-fit: cover; border-radius: 10px;
}

/* Shared real-video embed box — each page-specific stylesheet keeps its
   own themed .fcls-video-placeholder (dark on officer pages, light-gray
   section on loan program pages), but the real embed once a video_url is
   set looks the same everywhere. */
.fcls-video-embed { border-radius: 12px; overflow: hidden; aspect-ratio: 16/9; }
.fcls-video-embed iframe { width: 100%; height: 100%; border: 0; display: block; }

.fcls-loans-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 18px; }
.fcls-blog-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 20px; }
.fcls-blog-card { border-radius: 10px; overflow: hidden; border: 1px solid var(--gray-300); }
.fcls-blog-card .thumb {
	aspect-ratio: 16/10;
	background: repeating-linear-gradient(135deg, #ececec, #ececec 10px, #f4f4f4 10px, #f4f4f4 20px);
	overflow: hidden;
}
.fcls-blog-card .thumb img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}
.fcls-blog-card .body { padding: 16px; }
.fcls-blog-card .cat { font-size: 11px; font-weight: 700; color: var(--red); text-transform: uppercase; letter-spacing: .04em; }
.fcls-blog-card h4 { font-size: 15px; margin: 8px 0 0; }
.fcls-blog-card a { color: inherit; }

.fcls-stat-row { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; text-align: center; }
.fcls-stat-row .num { font-size: 34px; font-weight: 800; color: var(--red); }
.fcls-stat-row .lbl { font-size: 14px; color: var(--gray-600); margin-top: 4px; }
.fcls-stat-row p { font-size: 13.5px; color: var(--gray-600); margin: 10px 0 0; }
@media (max-width: 980px) {
	.fcls-stat-row { grid-template-columns: 1fr; }
}

.fcls-feat-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 22px; }
.fcls-feat-card { text-align: center; padding: 10px; }
.fcls-feat-icon { width: 56px; height: 56px; margin: 0 auto 18px; border-radius: 50%; background: #fdeaec; display: flex; align-items: center; justify-content: center; color: var(--red); }
.fcls-feat-card h4 { font-size: 17px; margin-bottom: 8px; }
.fcls-feat-card p { font-size: 13.5px; color: var(--gray-600); margin: 0; }
@media (max-width: 980px) {
	.fcls-feat-grid { grid-template-columns: 1fr; }
}

.fcls-blog-pagination .nav-links { display: flex; justify-content: center; align-items: center; gap: 8px; margin-top: 40px; }
.fcls-blog-pagination .page-numbers {
	display: inline-flex; align-items: center; justify-content: center;
	min-width: 38px; height: 38px; padding: 0 10px; border-radius: 6px;
	border: 1px solid var(--gray-300); font-weight: 700; font-size: 14px; color: var(--charcoal);
}
.fcls-blog-pagination a.page-numbers:hover { border-color: var(--red); color: var(--red); }
.fcls-blog-pagination .page-numbers.current { background: var(--charcoal); border-color: var(--charcoal); color: var(--white); }
.fcls-blog-pagination .page-numbers.dots { border: none; }

@media (max-width: 980px) {
	.fcls-twoup .fcls-inner { grid-template-columns: 1fr; }
	.fcls-loans-grid, .fcls-blog-grid { grid-template-columns: repeat(2, 1fr); }
	.fcls-section { padding: 52px 20px; }
}
@media (max-width: 560px) {
	.fcls-loans-grid { grid-template-columns: 1fr; }
	.fcls-blog-grid { grid-template-columns: 1fr; }
}

/* Simple centered banner hero — used on loan program pages, the officer
   directory, and other interior pages (not the homepage's split hero). */
.fcls-page-hero {
	background: var(--charcoal);
	color: var(--white);
	padding: 70px 24px 60px;
	text-align: center;
}
.fcls-page-hero .fcls-eyebrow { color: #f3a6a6; }
.fcls-page-hero h1 { font-size: 42px; color: var(--white); margin: 12px 0 14px; }
.fcls-page-hero p { color: rgba(255,255,255,.75); font-size: 17px; max-width: 560px; margin: 0 auto 26px; }
.fcls-page-hero .ctas { display: flex; gap: 14px; justify-content: center; flex-wrap: wrap; }

/* Breadcrumb trail, output via yoast_breadcrumb() — matches the same
   BreadcrumbList already present in Yoast's JSON-LD graph, so the visible
   trail and structured data never drift apart. */
.fcls-breadcrumbs { background: var(--gray-100); padding: 12px 24px; font-size: 13px; }
.fcls-breadcrumbs a { color: var(--gray-600); text-decoration: none; }
.fcls-breadcrumbs a:hover { color: var(--red); text-decoration: underline; }
.fcls-breadcrumbs .breadcrumb_last { color: var(--charcoal); font-weight: 600; }

@media (max-width: 980px) {
	.fcls-page-hero h1 { font-size: 32px; }
}
@media (max-width: 560px) {
	.fcls-page-hero .ctas .fcls-btn { width: 100%; }
}

/* "When you're ready to buy" 3-step CTA card grid, and the "Still have
   questions" contact form — both driven by global content blocks and
   reused across every mortgage calculator page and the FAQ page. */
.fcls-ready-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; }
.fcls-ready-card { background: var(--white); border: 1px solid var(--gray-300); border-radius: 12px; padding: 26px; }
.fcls-ready-num {
	width: 30px; height: 30px; border-radius: 50%; background: var(--charcoal); color: var(--white);
	display: flex; align-items: center; justify-content: center; font-weight: 800; font-size: 14px; margin-bottom: 14px;
}
.fcls-ready-card h4 { font-size: 16.5px; margin-bottom: 8px; }
.fcls-ready-card p { font-size: 13.5px; color: var(--gray-600); margin: 0; }

.fcls-expert-form input {
	padding: 13px 14px; border: 1px solid var(--gray-300); border-radius: 5px; font-family: inherit; font-size: 14.5px;
}
.fcls-expert-form .full { grid-column: 1 / -1; }
/* Fluent Forms nests .ff-el-group inside form > fieldset, not as a direct
   child of this wrapper — the grid has to live on the fieldset itself. */
.fcls-expert-form fieldset { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.fcls-expert-form .ff-el-group:has(input[name="email"]),
.fcls-expert-form .ff-el-group:has(input[name="phone"]),
.fcls-expert-form .ff_submit_btn_wrapper { grid-column: 1 / -1; }

@media (max-width: 980px) {
	.fcls-ready-grid { grid-template-columns: 1fr; }
}
@media (max-width: 560px) {
	.fcls-expert-form fieldset { grid-template-columns: 1fr; }
}

/* Generic 2-col lead form — first/last side by side, email/textarea/submit
   full width. Shared by any simple contact-style form (Careers, Contact)
   whose fields don't match the more specific .fcls-form-grid/.fcls-expert-form
   layouts already tuned for their own particular field sets. */
.fcls-lead-form { max-width: 600px; margin: 0 auto; }
.fcls-lead-form input:not([type="radio"]):not([type="checkbox"]), .fcls-lead-form textarea {
	width: 100%; padding: 13px 14px; border: 1px solid var(--gray-300); border-radius: 5px; font-family: inherit; font-size: 14.5px;
}
.fcls-lead-form textarea { resize: vertical; }
.fcls-lead-form fieldset { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.fcls-lead-form .ff-el-group:has(input[name="are_you_licensed"]) { text-align: left; }
.fcls-lead-form .ff-el-form-check-label { display: flex; align-items: center; gap: 8px; margin-bottom: 6px; }
.fcls-lead-form .ff-el-form-check-input { width: auto; margin: 0; }
.fcls-lead-form .ff-el-group:has(input[name="email"]),
.fcls-lead-form .ff-el-group:has(input[name="phone"]),
.fcls-lead-form .ff-el-group:has(textarea),
.fcls-lead-form .ff_submit_btn_wrapper { grid-column: 1 / -1; }
@media (max-width: 560px) {
	.fcls-lead-form fieldset { grid-template-columns: 1fr; }
}

/* Reviews CTA strip — shared across the homepage and the Homebuyer Guide. */
.fcls-reviews { text-align: center; }
.fcls-reviews .stars { color: var(--red); font-size: 22px; letter-spacing: 4px; }
.fcls-reviews h2 { font-size: 30px; margin: 12px 0 6px; }
.fcls-reviews p { color: var(--gray-600); }

/* "Explore More" small card grid — used on every calculator page and the
   Homebuyer Guide to cross-link to the other calculators. */
.fcls-other-calc-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; max-width: 780px; margin: 0 auto; }
.fcls-other-calc-card {
	border: 1px solid var(--gray-300); border-radius: 10px; padding: 22px 18px; text-align: center;
	transition: all .18s ease; display: block;
}
.fcls-other-calc-card:hover { border-color: var(--red); box-shadow: 0 10px 28px rgba(0,0,0,.08); transform: translateY(-2px); }
.fcls-other-calc-card .icon { color: var(--red); margin-bottom: 10px; }
.fcls-other-calc-card h4 { font-size: 14px; margin-bottom: 5px; }
.fcls-other-calc-card p { font-size: 12px; color: var(--gray-600); margin: 0; }

@media (max-width: 980px) {
	.fcls-other-calc-grid { grid-template-columns: 1fr; }
}

/* Fluent Forms submit buttons — the plugin's own decorative CSS is
   disabled (fluentform/load_default_public), so its button loses our
   .fcls-btn treatment entirely (browser default 2px outset border,
   auto width) unless reset here. Shared across every embedded form. */
.ff-btn-submit {
	border: none !important;
	border-radius: 4px !important;
	font-weight: 700 !important;
	font-size: 15px !important;
	padding: 15px 28px !important;
	cursor: pointer;
	transition: all .18s ease;
	width: 100%;
}
.ff-btn-submit:hover { background: var(--red-dark) !important; }
.fcls-hero-form .ff_submit_btn_wrapper { margin-top: 4px; }

/* Fluent Forms text/select inputs — same reasoning as above; without the
   plugin's default CSS these fall back to the browser's bare black-border
   UA styling instead of our design system's grey border/height. */
.ff-el-form-control {
	width: 100% !important;
	padding: 13px 14px !important;
	border: 1px solid var(--gray-300) !important;
	border-radius: 5px !important;
	font-family: inherit !important;
	font-size: 14px !important;
}
.ff-el-form-control:focus { outline: none; border-color: var(--red) !important; }

/* Field labels inherit text-align from whatever section wraps the form —
   several CTA sections center their heading/copy via an inline style on
   an ancestor (e.g. template-parts/still-have-questions.php). Setting
   text-align alone isn't enough: Fluent Forms' own CSS (`.fluentform
   .ff-el-input--label`, still loading despite the load_default_public
   filter — same reason .ff-btn-submit/.ff-el-form-control need !important
   above) sets display:inline-block at higher specificity than a bare
   .ff-el-input--label rule, so an ancestor's text-align:center still
   centers the label's own box regardless of the label's internal
   text-align. !important + display:block sidesteps that — a block box
   always starts at its container's left edge no matter what an ancestor's
   text-align is set to. */
.ff-el-input--label { display: block !important; text-align: left !important; }
