/*
Theme Name: Ruffin & Associates
Theme URI: https://sruffinassociates.com/
Author: Wheless Technologies
Description: Portable native-block theme for the Ruffin & Associates test and production websites.
Version: 1.0.3
Requires at least: 6.5
Requires PHP: 8.0
Text Domain: ruffin-associates
*/

:root {
  --raa-ink: #121513;
  --raa-ink-soft: #1a1e1b;
  --raa-gold: #f1b82d;
  --raa-gold-soft: #f7d77d;
  --raa-navy: #071943;
  --raa-paper: #f7f6f1;
  --raa-muted: #adb4ae;
  --raa-border: rgba(255,255,255,.13);
  --raa-radius: 18px;
  --raa-shadow: 0 24px 60px rgba(0,0,0,.28);
}

html { scroll-behavior: smooth; }
body { background: var(--raa-ink); color: #fff; }
a { transition: color .18s ease, background .18s ease, border-color .18s ease, transform .18s ease; }
h1, h2, h3, h4, .wp-block-heading { overflow-wrap: normal !important; word-break: normal !important; hyphens: none !important; }
.wp-site-blocks { overflow: hidden; }
.raa-shell { width: min(1180px, calc(100% - 40px)) !important; max-width:1180px !important; margin-inline: auto; }
.raa-section { padding-block: clamp(70px, 8vw, 120px); }
.raa-section-tight { padding-block: 54px; }
.raa-eyebrow { color: var(--raa-gold); font-size: .78rem; font-weight: 800; letter-spacing: .18em; text-transform: uppercase; }
.raa-display { font-size: clamp(2.7rem, 3.8vw, 3.8rem); letter-spacing: -.045em; line-height: 1.02; margin: 18px 0 28px; max-width: 720px; overflow-wrap: normal !important; word-break: normal !important; hyphens: none !important; }
.raa-display em { color: var(--raa-gold); font-family: Georgia, serif; font-weight: 400; }
.raa-lede { color: #d8dcd8; font-size: clamp(1.05rem, 1.5vw, 1.25rem); line-height: 1.7; max-width: 700px; }
.raa-rule { border-top: 1px solid var(--raa-border); }
.raa-card { background: var(--raa-ink-soft); border: 1px solid var(--raa-border); border-radius: var(--raa-radius); padding: clamp(26px, 4vw, 42px); height: 100%; }
.raa-card h3 { margin-top: 16px; }
.raa-card p { color: #c8cec9; }
.raa-icon { width: 72px; height: 72px; object-fit: contain; }
.raa-photo { border-radius: var(--raa-radius); box-shadow: var(--raa-shadow); overflow: hidden; }
.raa-photo img { display:block; width:100%; height:100%; object-fit:cover; }
.raa-stat { border-left: 3px solid var(--raa-gold); padding-left: 18px; }
.raa-stat strong { display:block; font-size: clamp(1.5rem, 3vw, 2.35rem); }
.raa-stat span { color: var(--raa-muted); }
.raa-cta { background: var(--raa-gold); color:#111; border-radius: var(--raa-radius); padding: clamp(32px, 5vw, 64px); }
.raa-cta h2, .raa-cta p { color:#111; }
.raa-cta .wp-block-button__link { background:#111 !important; color:#fff !important; }
.wp-block-button__link { font-weight: 800; padding: 14px 22px; }
.is-style-outline > .wp-block-button__link { color:#fff; border-color:rgba(255,255,255,.42); }

.raa-site-header { background: rgba(18,21,19,.94); border-bottom: 1px solid var(--raa-border); position: sticky; top:0; z-index: 50; backdrop-filter: blur(14px); }
.raa-site-header .wp-block-site-logo img, .raa-logo { width: 178px; height:auto; }
.raa-site-header a { color:#fff; text-decoration:none; }
.raa-site-header a:hover { color:var(--raa-gold); }
.raa-site-header .wp-block-navigation__responsive-container { background: var(--raa-ink); color:#fff; }
.raa-header-cta { background:var(--raa-gold); color:#111 !important; border-radius:8px; padding:11px 16px; font-weight:800; }
.raa-site-header .wp-block-navigation__container > .wp-block-navigation-item:last-child > .wp-block-navigation-item__content { background:var(--raa-gold); color:#111 !important; border-radius:8px; padding:11px 16px; font-weight:800; }
.raa-site-header .wp-block-navigation__container > .wp-block-navigation-item:last-child > .wp-block-navigation-item__content:hover { background:#ffd365; color:#111 !important; }

.raa-hero { min-height: 660px; display:flex; align-items:center; background: radial-gradient(circle at 74% 35%, rgba(241,184,45,.12), transparent 28%), var(--raa-ink); }
.raa-hero-grid { align-items:center; gap: clamp(32px, 5vw, 70px); }
.raa-hero-image { position:relative; }
.raa-hero-image img { display:block; width:100%; max-height:520px; aspect-ratio: 1/1.14; object-fit:cover; border-radius: 2px 2px 80px 2px; box-shadow: var(--raa-shadow); }
.raa-badge { position:absolute; z-index:2; left:-30px; bottom:30px; background:#fff; color:#111; padding:18px 20px; box-shadow:0 14px 40px rgba(0,0,0,.25); max-width:240px; }
.raa-badge strong { display:block; }
.raa-badge small { color:#555; display:block; margin-top:3px; line-height:1.4; }
.raa-proof { display:flex; flex-wrap:wrap; gap:14px 24px; color:#bec4bf; font-size:.88rem; margin-top:26px; }
.raa-proof span::before { content:'•'; color:var(--raa-gold); margin-right:9px; }

.raa-light { background:var(--raa-paper); color:#151815; }
.raa-light p { color:#4d554f; }
.raa-light .raa-eyebrow { color:#9b6a00; }
.raa-light .raa-card { background:#fff; border-color:#dfe3df; box-shadow:0 14px 35px rgba(18,31,23,.08); }
.raa-light .raa-card p { color:#5b645e; }
.raa-kicker { font-family:Georgia,serif; color:var(--raa-gold); font-style:italic; }

.raa-footer { background:#0b0d0c; border-top:1px solid var(--raa-border); padding:64px 0 30px; }
.raa-footer p, .raa-footer li { color:#aeb5b0; }
.raa-footer a { color:#fff; text-decoration:none; }
.raa-footer a:hover { color:var(--raa-gold); }
.raa-footer ul { list-style:none; padding:0; margin:0; }

.raa-test-banner { position:sticky; top:0; z-index:1000; background:#9f1d20; color:#fff; text-align:center; font-size:.88rem; font-weight:800; letter-spacing:.04em; padding:9px 16px; }
.raa-test-mode .raa-site-header { top:36px; }
.admin-bar .raa-test-banner { top:32px; }
.admin-bar .raa-site-header { top:70px; }

.raa-form-wrap { max-width:820px; }
.raa-form-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:20px; }
.raa-field-full { grid-column:1/-1; }
.raa-field label { display:block; font-weight:750; margin-bottom:8px; }
.raa-field input, .raa-field textarea, .raa-field select { width:100%; box-sizing:border-box; background:#fff; color:#151815; border:1px solid #c8cec9; border-radius:8px; padding:13px 14px; font:inherit; }
.raa-field input:focus, .raa-field textarea:focus, .raa-field select:focus { outline:3px solid rgba(241,184,45,.34); border-color:#9b6a00; }
.raa-field textarea { min-height:140px; resize:vertical; }
.raa-required { color:#b51f25; }
.raa-form-note { background:#fff4d6; color:#3f3108; border-left:4px solid var(--raa-gold); padding:14px 16px; margin:0 0 24px; }
.raa-form-actions { margin-top:24px; }
.raa-submit { background:var(--raa-gold); color:#111; border:0; border-radius:8px; padding:14px 22px; font:inherit; font-weight:800; cursor:pointer; }
.raa-submit:hover { background:#ffd365; transform:translateY(-1px); }
.raa-alert { padding:14px 16px; border-radius:8px; margin-bottom:22px; }
.raa-alert-success { background:#dff5e4; color:#174d24; }
.raa-alert-error { background:#fde2e2; color:#7b171a; }
.raa-hp { position:absolute!important; left:-9999px!important; }

.raa-portal-layout { display:grid; grid-template-columns:250px minmax(0,1fr); gap:34px; align-items:start; }
.raa-portal-nav { position:sticky; top:130px; background:#fff; border:1px solid #dfe3df; border-radius:12px; padding:12px; }
.raa-portal-nav a { display:block; color:#1e2721; text-decoration:none; padding:11px 12px; border-radius:7px; font-weight:700; }
.raa-portal-nav a:hover, .raa-portal-nav a.is-active { background:#fff2c9; color:#5b3c00; }
.raa-portal-panel { background:#fff; border:1px solid #dfe3df; border-radius:14px; padding:clamp(24px,4vw,42px); box-shadow:0 12px 30px rgba(18,31,23,.07); }
.raa-portal-panel h1, .raa-portal-panel h2, .raa-portal-panel h3 { color:#151815; }
.raa-portal-panel p { color:#515b54; }
.raa-list { display:grid; gap:12px; }
.raa-list-item { border:1px solid #dfe3df; border-radius:9px; padding:16px; display:flex; justify-content:space-between; gap:20px; align-items:center; }
.raa-status { display:inline-block; background:#eef0ee; color:#38423b; border-radius:999px; padding:5px 10px; font-size:.8rem; font-weight:800; }

@media (max-width: 800px) {
  .raa-shell { width:min(100% - 28px, 1180px); }
  .raa-hero { min-height:auto; padding:58px 0; }
  .raa-hero-grid, .raa-portal-layout { grid-template-columns:1fr !important; }
  .raa-display { font-size:clamp(2.65rem, 12vw, 4rem); max-width:100%; }
  .raa-section h2 { font-size:clamp(1.85rem, 8vw, 2.6rem) !important; }
  .raa-badge { left:16px; bottom:16px; }
  .raa-form-grid { grid-template-columns:1fr; }
  .raa-field-full { grid-column:auto; }
  .raa-portal-nav { position:static; }
  .admin-bar .raa-test-banner { top:46px; }
  .admin-bar .raa-site-header { top:84px; }
}

@media (min-width: 801px) and (max-width: 1050px) {
  .raa-display { font-size: clamp(2.55rem, 4.4vw, 2.9rem); line-height:1.04; }
  .raa-hero-grid { gap:32px; }
  .raa-hero-grid > .wp-block-column:first-child { flex-basis:58% !important; }
  .raa-hero-grid > .wp-block-column:last-child { flex-basis:42% !important; }
  .raa-section h2 { font-size:clamp(2rem, 3.8vw, 2.7rem) !important; line-height:1.12; }
  .raa-section h3 { font-size:clamp(1.25rem, 2.4vw, 1.65rem) !important; line-height:1.18; }
  .raa-photo img { max-height:540px; }
  .raa-site-header .raa-shell { gap:24px; }
  .raa-site-header .wp-block-navigation { font-size:.92rem; }
}

@media (min-width: 1051px) {
  .raa-section h2 { font-size:clamp(2.2rem, 3.2vw, 3.25rem) !important; line-height:1.1; }
  .raa-section h3 { line-height:1.18; }
}
