/*
Theme Name: Rubicon Mortgage Fund
Theme URI: https://rubiconmortgagefund.com
Author: Rubicon Mortgage Fund
Description: Custom theme for Rubicon Mortgage Fund, LLC — California's premier private money lender. Elementor-compatible.
Version: 1.0.0
Requires at least: 6.0
Tested up to: 6.7
Requires PHP: 8.0
License: Private
Text Domain: rubicon
*/

/* === RESET & BASE === */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html { scroll-behavior: smooth; }
body { font-family: 'Inter', sans-serif; color: #1A2D39; background: #fff; line-height: 1.6; font-size: 16px; }
h1,h2,h3,h4,h5,h6 { font-family: 'Playfair Display', serif; line-height: 1.2; }
a { text-decoration: none; color: inherit; }
img { max-width: 100%; height: auto; }
.container { max-width: 1200px; margin: 0 auto; padding: 0 24px; }

/* === HEADER === */
.rubicon-header { position: sticky; top: 0; z-index: 1000; background: #1A2D39; border-bottom: 1px solid rgba(74,144,217,0.25); }
.rubicon-header .header-inner { display: flex; align-items: center; justify-content: space-between; padding: 14px 24px; max-width: 1200px; margin: 0 auto; }
.rubicon-header .site-logo img { height: 40px; width: auto; display: block; }
.rubicon-header .site-logo .logo-text { display: flex; flex-direction: column; }
.rubicon-header .site-logo .logo-name { font-family: 'Playfair Display', serif; font-size: 20px; font-weight: 700; color: #4A90D9; letter-spacing: 2px; }
.rubicon-header .site-logo .logo-sub { font-size: 8px; color: rgba(255,255,255,0.5); letter-spacing: 3px; text-transform: uppercase; }

/* === NAVIGATION === */
.rubicon-nav ul { list-style: none; display: flex; align-items: center; gap: 28px; }
.rubicon-nav ul li a { color: rgba(255,255,255,0.85); font-size: 14px; font-weight: 500; letter-spacing: 0.3px; transition: color 0.2s; }
.rubicon-nav ul li a:hover { color: #4A90D9; }
.rubicon-nav ul li.menu-item-cta a,
.rubicon-nav ul li.current_page_item a,
.rubicon-nav .nav-cta a {
  background: #4A90D9; color: #fff !important; padding: 10px 22px;
  border-radius: 4px; font-weight: 700 !important; font-size: 13px !important;
  letter-spacing: 0.5px; transition: background 0.2s, transform 0.1s;
}
.rubicon-nav ul li.menu-item-cta a:hover,
.rubicon-nav .nav-cta a:hover { background: #2E74C0; transform: translateY(-1px); }
.mobile-menu-toggle { display: none; background: none; border: none; color: white; font-size: 24px; cursor: pointer; padding: 4px; }

/* === PAGE CONTENT WRAPPER === */
#page-content { min-height: 60vh; }

/* === FOOTER === */
.rubicon-footer { background: #1A2D39; color: rgba(255,255,255,0.75); padding: 60px 0 30px; margin-top: 0; }
.rubicon-footer .footer-inner { max-width: 1200px; margin: 0 auto; padding: 0 24px; }
.rubicon-footer .footer-grid { display: grid; grid-template-columns: 1.5fr 1fr 1fr 1fr; gap: 40px; margin-bottom: 50px; }
.rubicon-footer .footer-logo img { height: 36px; width: auto; display: block; margin-bottom: 16px; }
.rubicon-footer .footer-col p { font-size: 14px; line-height: 1.7; margin-bottom: 12px; }
.rubicon-footer .footer-phone a { color: #4A90D9; font-size: 18px; font-weight: 600; }
.rubicon-footer .footer-col h4 { color: #4A90D9; font-family: 'Inter', sans-serif; font-size: 12px; font-weight: 700; letter-spacing: 2px; text-transform: uppercase; margin-bottom: 16px; }
.rubicon-footer .footer-col ul { list-style: none; }
.rubicon-footer .footer-col ul li { margin-bottom: 10px; }
.rubicon-footer .footer-col ul li a { color: rgba(255,255,255,0.65); font-size: 14px; transition: color 0.2s; }
.rubicon-footer .footer-col ul li a:hover { color: #4A90D9; }
.rubicon-footer .footer-bottom { border-top: 1px solid rgba(255,255,255,0.1); padding-top: 24px; }
.rubicon-footer .footer-bottom p { font-size: 12px; color: rgba(255,255,255,0.4); text-align: center; }

/* === BUTTONS === */
.btn-primary, .elementor-button.btn-primary { display: inline-block; background: #4A90D9; color: #fff; padding: 14px 32px; border-radius: 4px; font-weight: 700; font-size: 15px; letter-spacing: 0.5px; transition: all 0.2s; border: 2px solid #4A90D9; cursor: pointer; }
.btn-primary:hover { background: #2E74C0; border-color: #2E74C0; transform: translateY(-2px); box-shadow: 0 8px 24px rgba(74,144,217,0.3); }
.btn-secondary { display: inline-block; background: transparent; color: #4A90D9; padding: 14px 32px; border-radius: 4px; font-weight: 700; font-size: 15px; border: 2px solid #4A90D9; transition: all 0.2s; }
.btn-secondary:hover { background: rgba(74,144,217,0.1); transform: translateY(-2px); }
.btn-white { display: inline-block; background: white; color: #1A2D39; padding: 14px 32px; border-radius: 4px; font-weight: 700; font-size: 15px; border: 2px solid white; transition: all 0.2s; }
.btn-white:hover { background: #E8F2FC; border-color: #E8F2FC; transform: translateY(-2px); }

/* === SECTION UTILITIES === */
.section { padding: 80px 0; }
.section-alt { background: #F7F9FC; }
.section-dark { background: #1A2D39; color: white; }
.section-label { font-family: 'Inter', sans-serif; font-size: 12px; font-weight: 700; letter-spacing: 3px; text-transform: uppercase; color: #4A90D9; margin-bottom: 12px; }
.section-title { font-size: clamp(28px, 4vw, 44px); margin-bottom: 20px; }
.section-subtitle { font-size: 18px; color: #5A6A7A; max-width: 600px; line-height: 1.7; }
.section-header { text-align: center; margin-bottom: 56px; }
.gold-divider, .blue-divider { width: 60px; height: 3px; background: #4A90D9; margin: 20px 0; }
.blue-divider-center { margin: 20px auto; }

/* === CARDS === */
.card { background: white; border-radius: 8px; box-shadow: 0 2px 20px rgba(0,0,0,0.06); overflow: hidden; transition: transform 0.2s, box-shadow 0.2s; }
.card:hover { transform: translateY(-4px); box-shadow: 0 8px 40px rgba(0,0,0,0.1); }
.card-body { padding: 32px; }
.card-icon { width: 52px; height: 52px; background: rgba(74,144,217,0.1); border-radius: 8px; display: flex; align-items: center; justify-content: center; margin-bottom: 20px; font-size: 24px; }

/* === HERO SECTIONS === */
.page-hero { background: linear-gradient(rgba(26,45,57,0.82), rgba(26,58,92,0.88)), url('') center/cover no-repeat; padding: 100px 0; color: white; }
.page-hero .section-label { color: #4A90D9; }
.page-hero h1 { font-size: clamp(32px, 5vw, 56px); color: white; margin-bottom: 20px; }
.page-hero p { font-size: 18px; color: rgba(255,255,255,0.75); max-width: 700px; line-height: 1.7; margin-bottom: 32px; }

/* === FORMS === */
.form-group { margin-bottom: 20px; }
.form-group label { display: block; font-size: 14px; font-weight: 600; color: #374151; margin-bottom: 6px; }
.form-group input, .form-group select, .form-group textarea, .wpcf7 input[type="text"], .wpcf7 input[type="email"], .wpcf7 input[type="tel"], .wpcf7 select, .wpcf7 textarea { width: 100%; padding: 12px 16px; border: 2px solid #D0DFF0; border-radius: 6px; font-family: 'Inter', sans-serif; font-size: 15px; transition: border-color 0.2s; outline: none; background: white; }
.form-group input:focus, .form-group select:focus, .form-group textarea:focus, .wpcf7 input:focus, .wpcf7 select:focus, .wpcf7 textarea:focus { border-color: #4A90D9; }
.wpcf7-submit { background: #4A90D9; color: white; border: none; padding: 14px 32px; font-size: 15px; font-weight: 700; border-radius: 4px; cursor: pointer; transition: background 0.2s; }
.wpcf7-submit:hover { background: #2E74C0; }

/* === STATS === */
.stats-bar { background: #1A2D39; padding: 40px 0; }
.stats-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 24px; text-align: center; }
.stat-num { font-family: 'Playfair Display', serif; font-size: 42px; color: #4A90D9; font-weight: 700; }
.stat-label { font-size: 13px; color: rgba(255,255,255,0.6); margin-top: 4px; text-transform: uppercase; letter-spacing: 1px; }

/* === EDITORIAL PROPERTY GRID === */
.property-strip, .loans-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 40px 32px; }
.property-card, .loan-card { background: white; text-align: left; }
.property-photo-wrap, .loan-photo-wrap { overflow: hidden; clip-path: polygon(0 0, 100% 0, 100% 92%, 94% 100%, 0 100%); margin-bottom: 20px; background: #E8F2FC; }
.property-photo-wrap img, .loan-photo-wrap img { width: 100%; height: 280px; object-fit: cover; display: block; transition: transform 0.5s ease; }
.property-card:hover img, .loan-card:hover img { transform: scale(1.03); }
.loan-type, .property-card-type { font-family: 'Inter', sans-serif; font-size: 11px; font-weight: 700; color: #5A6A7A; text-transform: uppercase; letter-spacing: 2px; margin-bottom: 8px; }
.loan-amount, .property-card-amount { font-family: 'Playfair Display', serif; font-size: 32px; color: #1A2D39; font-weight: 700; margin-bottom: 6px; line-height: 1.1; }
.loan-location, .property-card-city { font-size: 14px; color: #5A6A7A; }

/* === BLOG === */
.blog-card-img { height: 200px; background-size: cover; background-position: center; border-radius: 8px 8px 0 0; }
.entry-content p { margin-bottom: 1.5em; }
.entry-content h2, .entry-content h3 { margin: 1.5em 0 0.75em; }
.entry-content ul, .entry-content ol { padding-left: 1.5em; margin-bottom: 1.5em; }

/* === TESTIMONIALS === */
.testimonial { background: white; border-radius: 8px; padding: 32px; box-shadow: 0 2px 20px rgba(0,0,0,0.06); border-left: 4px solid #4A90D9; }
.testimonial p { font-size: 16px; font-style: italic; color: #374151; line-height: 1.8; margin-bottom: 20px; }
.testimonial-author { font-weight: 700; color: #1A2D39; font-size: 14px; }
.testimonial-role { color: #5A6A7A; font-size: 13px; }

/* === TEAM === */
.team-photo { width: 160px; height: 160px; border-radius: 50%; object-fit: cover; object-position: center top; border: 4px solid #E8F2FC; box-shadow: 0 4px 20px rgba(74,144,217,0.2); display: block; margin: 0 auto 20px; }
.team-photo-placeholder { width: 160px; height: 160px; border-radius: 50%; background: linear-gradient(135deg, #1A2D39, #1A3A5C); border: 4px solid #E8F2FC; display: flex; align-items: center; justify-content: center; margin: 0 auto 20px; font-family: 'Playfair Display', serif; font-size: 40px; color: #4A90D9; font-weight: 700; }

/* === MOBILE === */
@media (max-width: 900px) { .rubicon-header .header-inner { padding: 12px 16px; } .rubicon-nav { display: none; } .mobile-menu-toggle { display: block; } .rubicon-nav.open { display: flex; flex-direction: column; position: absolute; top: 100%; left: 0; right: 0; background: #1A2D39; padding: 20px 24px; gap: 16px; border-top: 1px solid rgba(74,144,217,0.2); z-index: 999; } .rubicon-nav.open ul { flex-direction: column; gap: 16px; } .footer-grid { grid-template-columns: 1fr 1fr; } .stats-grid { grid-template-columns: repeat(2, 1fr); } .property-strip, .loans-grid { grid-template-columns: 1fr 1fr; gap: 24px; } }
@media (max-width: 600px) { .footer-grid { grid-template-columns: 1fr; } .property-strip, .loans-grid { grid-template-columns: 1fr; } }
