/*
Theme Name: RFBG (Assembler Child)
Theme URI: https://yubasutterlaw.legal
Description: Brand customization layer for Rich, Fuidge, Bordsen & Galyean. Overrides Assembler's tokens with RFBG colors, typography, and spacing. Registers Playfair Display and Source Sans 3 as site fonts, and provides branded header/footer template parts.
Template: assembler
Author: Rich, Fuidge, Bordsen & Galyean
Version: 1.0.0
Requires at least: 6.4
Tested up to: 6.7
Requires PHP: 7.4
Text Domain: rfbg
*/

/* ============================================================
   RFBG Brand Supplemental CSS
   Scoped to override Assembler defaults; theme.json handles
   the block-level tokens. This file handles finer details
   that theme.json alone can't express.
   ============================================================ */

:root {
  --rfbg-blue: #1e3a5f;
  --rfbg-blue-dark: #152b47;
  --rfbg-gold: #c4985a;
  --rfbg-paper: #f7f5f1;
  --rfbg-ink: #1a1a1a;
  --rfbg-ink-2: #4a4a4a;
  --rfbg-gray: #6b6b6b;
  --rfbg-hairline: #e5e5e5;
  --rfbg-hairline-strong: #c7c7c7;
  --rfbg-shadow-1: 0 2px 8px rgba(30,58,95,0.05);
  --rfbg-shadow-2: 0 8px 24px rgba(30,58,95,0.08);
}

/* -- Body + global typography ------------------------------- */
body {
  font-family: "Source Sans 3", "Source Sans Pro", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
  color: var(--rfbg-ink-2);
  line-height: 1.6;
}

h1, h2, h3, h4, h5, h6,
.wp-block-heading {
  font-family: "Playfair Display", Georgia, "Times New Roman", serif;
  color: var(--rfbg-blue);
  font-weight: 700;
  letter-spacing: 0.01em;
  line-height: 1.1;
  text-wrap: balance;
}

h1, .wp-block-heading.h1 { font-size: clamp(40px, 5vw, 72px); text-transform: uppercase; }
h2 { font-size: clamp(32px, 3.5vw, 48px); text-transform: uppercase; }
h3 { font-size: clamp(24px, 2.5vw, 32px); }
h4 { font-size: 20px; }

/* -- Links -------------------------------------------------- */
a {
  color: var(--rfbg-blue);
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 3px;
  transition: color 160ms;
}
a:hover { color: var(--rfbg-blue-dark); }

/* -- Navigation --------------------------------------------- */
.wp-block-navigation .wp-block-navigation-item__content {
  font-size: 16px !important;
}
/* Match phone number and header CTA button to nav size */
.rfbg-header .wp-block-group p {
  font-size: 16px !important;
}
.rfbg-header .wp-block-button__link {
  font-size: 18px !important;
  padding: 12px 20px !important;
}

/* -- Buttons (WP core Button block) ------------------------- */
.wp-block-button__link,
.wp-element-button,
.wp-block-button .wp-block-button__link {
  font-family: "Source Sans 3", sans-serif !important;
  font-size: 13px !important;
  font-weight: 700 !important;
  letter-spacing: 0.08em !important;
  text-transform: uppercase !important;
  text-decoration: none !important;
  padding: 16px 28px !important;
  border-radius: 2px !important;
  transition: all 160ms !important;
  background: var(--rfbg-blue) !important;
  color: #fff !important;
  border: 1px solid var(--rfbg-blue) !important;
}
.wp-block-button__link:hover,
.wp-element-button:hover {
  background: var(--rfbg-blue-dark) !important;
  border-color: var(--rfbg-blue-dark) !important;
  color: #fff !important;
}
.is-style-outline .wp-block-button__link {
  background: transparent !important;
  color: var(--rfbg-blue) !important;
}
.is-style-outline .wp-block-button__link:hover {
  background: var(--rfbg-blue) !important;
  color: #fff !important;
}
/* Buttons on dark backgrounds (hero cover blocks) */
.wp-block-cover .wp-block-button__link {
  border-color: #fff !important;
}
.wp-block-cover .is-style-outline .wp-block-button__link {
  color: #fff !important;
  border-color: #fff !important;
}
.wp-block-cover .is-style-outline .wp-block-button__link:hover {
  background: #fff !important;
  color: var(--rfbg-blue) !important;
}

/* -- RFBG page-scoped styles -------------------------------- */
/* These class prefixes are used by content pushed from the RFBG
   static design system. Safe to leave in place globally. */

.rfbg-home h1 .sec,
.rfbg-page h1 .sec {
  font-style: italic;
  color: var(--rfbg-gold);
  font-weight: 500;
  text-transform: none;
}

.rfbg-eyebrow {
  font-family: "Source Sans 3", sans-serif;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--rfbg-blue);
  display: inline-flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 20px;
}
.rfbg-eyebrow::before {
  content: '';
  width: 28px;
  height: 2px;
  background: var(--rfbg-gold);
}

.rfbg-card {
  display: block;
  background: #fff;
  border: 1px solid var(--rfbg-hairline);
  border-radius: 4px;
  padding: 32px 28px;
  transition: all 200ms;
  text-decoration: none;
  color: inherit;
}
.rfbg-card:hover {
  border-color: var(--rfbg-blue);
  transform: translateY(-2px);
  box-shadow: var(--rfbg-shadow-2);
  text-decoration: none;
}
.rfbg-card-label {
  font-family: "Source Sans 3", sans-serif;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--rfbg-gold);
  margin-bottom: 14px;
}
.rfbg-card-title {
  font-family: "Playfair Display", Georgia, serif;
  font-size: 26px;
  font-weight: 700;
  color: var(--rfbg-blue);
  margin: 0 0 12px;
  line-height: 1.15;
}

.rfbg-stat-band {
  background: var(--rfbg-blue);
  color: #fff;
  padding: 72px 0;
}
.rfbg-stat-num {
  font-family: "Playfair Display", Georgia, serif;
  font-size: 64px;
  font-weight: 700;
  color: var(--rfbg-gold);
  line-height: 1;
  letter-spacing: -0.02em;
  margin-bottom: 8px;
}
.rfbg-stat-label {
  font-family: "Source Sans 3", sans-serif;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: rgba(255,255,255,0.82);
}

/* -- Clio Grow contact form --------------------------------- */
#lf_form_container input[type="submit"],
#lf_form_container .button_text {
  font-family: "Source Sans 3", sans-serif !important;
  font-size: 14px !important;
  font-weight: 700 !important;
  letter-spacing: 0.08em !important;
  text-transform: uppercase !important;
  padding: 16px 48px !important;
  border-radius: 2px !important;
  border: none !important;
  cursor: pointer !important;
  transition: all 160ms !important;
  width: 100% !important;
  margin-top: 8px !important;
  background: var(--rfbg-blue) !important;
  color: #fff !important;
}
#lf_form_container input[type="submit"]:hover,
#lf_form_container .button_text:hover {
  background: var(--rfbg-blue-dark) !important;
}
#lf_form_container label {
  font-family: "Source Sans 3", sans-serif;
  font-weight: 600;
  color: var(--rfbg-ink);
}
#lf_form_container input[type="text"],
#lf_form_container input[type="email"],
#lf_form_container textarea {
  border: 1px solid var(--rfbg-hairline-strong) !important;
  border-radius: 2px !important;
  padding: 12px 14px !important;
  font-family: "Source Sans 3", sans-serif !important;
  font-size: 24px !important;
  transition: border-color 160ms !important;
}
#lf_form_container input[type="text"]:focus,
#lf_form_container input[type="email"]:focus,
#lf_form_container textarea:focus {
  border-color: var(--rfbg-blue) !important;
  outline: none !important;
  box-shadow: 0 0 0 2px rgba(30,58,95,0.12) !important;
}

/* Responsive */
@media (max-width: 860px) {
  .rfbg-stat-num { font-size: 48px; }
}
