/*
Theme Name: That One Firm
Text Domain: that-one-firm
Version: 1.0.0
Description: Custom Full Site Editing Theme - The Senator Scheme.
Author: Digital Operative
*/


/* ==========================================================================
   THAT ONE FIRM - MASTER CSS ENGINE (THE SENATOR SCHEME)
   ========================================================================== */

/* --- 1. CORE VARIABLES & UTILITIES --- */

/* --- NUKE FSE DEFAULT BLOCK GAP --- */
.wp-site-blocks > * + * {
    margin-top: 0 !important;
}
main#primary-content {
    margin-top: 0 !important;
    padding-top: 0 !important;
}

:root {
    --navy: #001529;
    --navy-dark: #000d1a;
    --maroon: #800000;
    --paper: #F4F1EA;
    --white: #ffffff;
}

/* ADA Enforced Backgrounds & Text */
.bg-navy-dark { background-color: var(--navy-dark) !important; color: var(--white) !important; }
.bg-navy { background-color: var(--navy) !important; color: var(--white) !important; }
.bg-paper { background-color: var(--paper) !important; color: var(--navy) !important; }
.bg-maroon { background-color: var(--maroon) !important; color: var(--white) !important; }

.text-navy { color: var(--navy) !important; }
.text-maroon { color: #ff4d4d !important; } /* Brightened for ADA contrast on dark backgrounds */
.text-white { color: var(--white) !important; }
.text-white-50 { color: rgba(255, 255, 255, 0.85) !important; } /* Bumped from 50% to 85% for ADA legibility */

/* Typography */
.font-head { font-family: 'Oswald', sans-serif !important; letter-spacing: 0.5px; }
.font-body { font-family: 'Inter', sans-serif !important; line-height: 1.7; }

/* --- 2. GLOBAL HEADER & NAVIGATION --- */
.nav-logo-box { border: 2px solid white; padding: 8px 15px; display: inline-block; transition: all 0.3s ease; }
.nav-logo-text { font-size: 20px; font-weight: 700; letter-spacing: 2px; margin: 0; line-height: 1; font-family: 'Oswald', sans-serif; color: #fff; }
.nav-logo-sub { display: block; font-size: 9px; letter-spacing: 3px; text-align: center; font-family: 'Oswald', sans-serif; opacity: 0.9; margin-top: 4px; text-transform: uppercase; color: #fff; }
.nav-logo-box:hover { background-color: #fff; border-color: #fff !important; }
.nav-logo-box:hover .nav-logo-text, .nav-logo-box:hover .nav-logo-sub { color: var(--navy) !important; }
.nav-logo-icon { transition: all 0.3s ease; }
a:hover .nav-logo-icon { border-color: var(--maroon) !important; transform: scale(1.05); }

.nav-item { font-family: 'Oswald', sans-serif; font-weight: 500; color: #fff !important; text-decoration: none; letter-spacing: 1px; transition: all 0.3s ease; }
.nav-item:hover, .nav-item.active-link { color: var(--paper) !important; text-decoration: underline; text-decoration-color: var(--maroon); text-underline-offset: 5px; }
.nav-mono { font-family: 'Courier New', monospace; color: var(--paper); font-size: 13px; margin-right: 5px; opacity: 0.8; }

/* --- 3. ANIMATIONS (Radar, Ticker, Pulse) --- */
.blueprint-grid {
    position: absolute; top: 0; left: 0; width: 100%; height: 100%;
    background-image: linear-gradient(rgba(255,255,255,0.05) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,0.05) 1px, transparent 1px);
    background-size: 40px 40px; z-index: 0; pointer-events: none;
}

.radar-sweep-dual {
    position: absolute; top: 50%; left: 50%; width: 150vw; height: 150vw;
    background: conic-gradient(from 0deg, transparent 0deg, rgba(255, 255, 255, 0.05) 30deg, transparent 60deg, rgba(255, 255, 255, 0.05) 90deg, transparent 180deg);
    border-radius: 50%; transform: translate(-50%, -50%);
    animation: radar-spin 15s linear infinite; z-index: 1; pointer-events: none;
}
@keyframes radar-spin { from { transform: translate(-50%, -50%) rotate(0deg); } to { transform: translate(-50%, -50%) rotate(360deg); } }

.ticker-wrap { white-space: nowrap; overflow: hidden; display: flex; }
.ticker-item { display: inline-block; animation: ticker-move 25s linear infinite; padding-left: 100%; }
@keyframes ticker-move { 0% { transform: translate3d(0, 0, 0); } 100% { transform: translate3d(-100%, 0, 0); } }

/* --- 4. CARDS & HOVER EFFECTS (The "Flips" and "Lifts") --- */
.protocol-card { transition: all 0.3s ease; position: relative; overflow: hidden; }
.protocol-card:hover { transform: translateY(-10px); border-color: var(--maroon) !important; box-shadow: 0 10px 30px rgba(0, 0, 0, 0.5); }
.protocol-card:hover .text-white-50 { color: #ffffff !important; }

.intel-card { transition: all 0.3s ease; }
.intel-card:hover { border-color: var(--maroon) !important; transform: translateY(-8px); box-shadow: 0 10px 25px rgba(0,0,0,0.6); }
.grayscale-img { filter: grayscale(100%) contrast(1.1); transition: filter 0.5s ease; }
.intel-card:hover .grayscale-img, .profile-img-box:hover .grayscale-img { filter: grayscale(0%) contrast(1); }

.spy-card { transition: transform 0.3s ease; }
.spy-card:hover { transform: translateY(-5px); box-shadow: 0 15px 35px rgba(0,0,0,0.2); }

.balance-graphic { border: 2px solid rgba(255, 255, 255, 0.2); padding: 40px; background: rgba(0, 21, 41, 0.5); backdrop-filter: blur(5px); position: relative; }
.balance-graphic:hover .icon-node i { color: #ff4d4d !important; transform: scale(1.1); transition: all 0.3s ease; }

/* --- 5. ADA COMPLIANT BUTTONS --- */
.btn-solid-white, .btn-solid-white-sm { background-color: #ffffff !important; color: var(--navy-dark) !important; border: 2px solid #ffffff !important; font-family: 'Oswald', sans-serif; font-weight: 700; text-transform: uppercase; text-decoration: none; display: inline-block; transition: all 0.3s ease; }
.btn-solid-white { padding: 15px 30px; letter-spacing: 2px; }
.btn-solid-white-sm { padding: 8px 20px; font-size: 14px; letter-spacing: 1px; }
.btn-solid-white:hover, .btn-solid-white-sm:hover { background-color: var(--maroon) !important; border-color: var(--maroon) !important; color: #ffffff !important; }

.btn-outline-white { background: transparent !important; border: 2px solid rgba(255, 255, 255, 0.5) !important; color: #ffffff !important; padding: 15px 30px; font-family: 'Oswald', sans-serif; font-weight: 700; text-transform: uppercase; letter-spacing: 2px; text-decoration: none; display: inline-block; transition: all 0.3s ease; }
.btn-outline-white:hover { border-color: #ffffff !important; background: rgba(255, 255, 255, 0.1) !important; color: #fff !important; }

.btn-spy-solid, .btn-solid-navy { background-color: var(--navy-dark) !important; color: #ffffff !important; border: 2px solid var(--navy-dark) !important; padding: 15px 30px; font-family: 'Oswald', sans-serif; font-weight: 700; text-transform: uppercase; letter-spacing: 2px; text-decoration: none; display: inline-block; transition: all 0.3s ease; }
.btn-spy-solid:hover, .btn-solid-navy:hover { background-color: var(--maroon) !important; border-color: var(--maroon) !important; color: #ffffff !important; }

/* ==========================================================================
   WEFORMS OVERRIDE (TACTICAL STYLING)
   ========================================================================== */
.weforms_form .wpuf-fields input[type="text"],
.weforms_form .wpuf-fields input[type="email"],
.weforms_form .wpuf-fields input[type="tel"],
.weforms_form .wpuf-fields textarea {
    border: 2px solid #ccc !important;
    border-radius: 0 !important; /* Sharp corners */
    background-color: #f9f9f9 !important;
    font-family: 'Inter', sans-serif !important;
    color: var(--navy-dark) !important;
    padding: 12px 15px !important;
    transition: all 0.3s ease !important;
}

.weforms_form .wpuf-fields input:focus,
.weforms_form .wpuf-fields textarea:focus {
    outline: none !important;
    border-color: var(--maroon) !important;
    background-color: #ffffff !important;
    box-shadow: 4px 4px 0px rgba(128,0,0,0.1) !important;
}

.weforms_form .wpuf-label {
    font-family: 'Oswald', sans-serif !important;
    text-transform: uppercase !important;
    letter-spacing: 1px !important;
    color: var(--navy-dark) !important;
    font-size: 0.9rem !important;
    margin-bottom: 8px !important;
}