/*
 * Scharf Law PC — Consolidated Site Styles
 * ===========================================
 * Extracted from inline <style> blocks embedded in all 6 pages.
 * This CSS was duplicated identically across every page (36,836 chars each).
 * 
 * Pages: Home (13), About (14), CPS Defense (15),
 *        Juvenile Dependency Process (16), FAQ (17), Contact (18)
 *
 * Generated: 2026-03-23
 */

/* ══ RESET KADENCE WRAPPER ══ */
.entry-content-wrap, .content-wrap, .site-container .content-wrap {
    max-width: 100% !important;
    padding: 0 !important;
    margin: 0 !important;
}
.entry.single-entry, .entry-content {
    max-width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
}
.site-main { padding: 0 !important; margin: 0 !important; }
/* ══ CSS VARIABLES ══ */
:root {
    --navy: #14213D;
    --navy-deep: #14213D;
    --gold: #8B6B52;
    --gold-light: #A4836A;
    --gold-glow: rgba(139,107,82,0.15);
    --slate: #4A5568;
    --light-bg: #F8F9FB;
    --white: #FFFFFF;
    --teal: #2C4A5A;
    --danger: #C53030;
    --text: #2D3748;
    --text-light: rgba(255,255,255,0.8);
    --border: #E8ECF1;
    --font-sans: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
    --font-serif: 'Playfair Display', Georgia, 'Times New Roman', serif; /* 2026-09-08: unified with scharf-styles.css / scharf-c-*.css — Times only ever rendered on pages that did not load a scharf-c file */
}
/* ══ BASE ══ */
.cps * { box-sizing: border-box; }
.cps {
    font-family: var(--font-sans);
    color: var(--text);
    line-height: 1.7;
    -webkit-font-smoothing: antialiased;
}
.cps h1, .cps h2, .cps h3, .cps h4 {
    font-family: var(--font-serif);
    margin: 0 0 16px;
    line-height: 1.2;
    font-weight: 700;
}
.cps h2 em, .cps h1 em {
    font-style: italic;
    color: var(--gold);
}
.cps p { margin: 0 0 16px; }
.cps a { text-decoration: none; transition: color 0.3s ease, background-color 0.3s ease, border-color 0.3s ease, box-shadow 0.3s ease, transform 0.3s ease; }
.cps img { max-width: 100%; height: auto; }
/* ══ CONTAINERS ══ */
.container { max-width: 1200px !important; margin: 0 auto !important; padding: 0 !important; }
.container-sm { max-width: 780px !important; margin: 0 auto !important; padding: 0 !important; text-align: center; }
/* ══ URGENCY BAR ══ */
.cps-bar {
    background: linear-gradient(90deg, var(--danger) 0%, #9B2C2C 100%);
    color: white;
    text-align: center;
    padding: 14px 20px;
    font-weight: 600;
    font-size: 1rem;
    letter-spacing: 0.02em;
}
.cps-bar a { color: white; text-decoration: underline; font-weight: 700; }
.cps-bar a:hover { color: var(--gold-light); }
/* ══ HERO ══ */
.cps-hero {
    position: relative;
    background: linear-gradient(160deg, var(--navy-deep) 0%, var(--navy) 40%, var(--teal) 100%);
    color: white;
    padding: 160px 40px 140px;
    text-align: center;
    overflow: hidden;
}
.cps-hero::before {
    content: '';
    position: absolute;
    inset: 0;
    background:
        radial-gradient(ellipse at 20% 50%, var(--gold-glow) 0%, transparent 60%),
        radial-gradient(ellipse at 80% 20%, rgba(44,74,90,0.3) 0%, transparent 50%);
    pointer-events: none;
}
.cps-hero::after {
    content: '';
    position: absolute;
    bottom: 0; left: 0; right: 0;
    height: 120px;
    background: linear-gradient(to top, rgba(13,24,41,0.4), transparent);
    pointer-events: none;
}
.cps-hero .inner { position: relative; z-index: 2; max-width: 880px; margin: 0 auto; }
.cps-hero h1 {
    font-size: clamp(2.6rem, 5vw, 4rem);
    font-weight: 700;
    letter-spacing: -0.02em;
    margin-bottom: 28px;
    text-shadow: 0 2px 30px rgba(0,0,0,0.3);
    line-height: 1.15;
}
.cps-hero .lead {
    font-size: clamp(1.05rem, 2vw, 1.25rem);
    color: var(--text-light);
    max-width: 620px;
    margin: 0 auto 44px;
    line-height: 1.8;
    font-weight: 300;
}
.cps-hero-sm { min-height: 0; padding: 96px 40px 72px; }
.cps-hero-sm h1 { font-size: clamp(2.2rem, 4vw, 3.2rem); }
/* Hero background image overlay */
.cps-hero-bg {
    position: absolute;
    inset: 0;
    z-index: 1;
    background-size: cover;
    background-position: center 20%;
    opacity: 0.08;
    filter: grayscale(100%);
}
/* Animated grid lines (subtle background texture) */
.grid-lines {
    position: absolute;
    inset: 0;
    z-index: 0;
    overflow: hidden;
    opacity: 0.06;
}
.grid-lines span {
    position: absolute;
    top: 0; bottom: 0;
    width: 1px;
    background: linear-gradient(to bottom, transparent, var(--gold), transparent);
}
.grid-lines span:nth-child(1) { left: 16.6%; }
.grid-lines span:nth-child(2) { left: 33.3%; }
.grid-lines span:nth-child(3) { left: 50%; }
.grid-lines span:nth-child(4) { left: 66.6%; }
.grid-lines span:nth-child(5) { left: 83.3%; }
.grid-lines span:nth-child(6) { display: none; }
/* Hero label */
.label {
    display: inline-block;
    font-family: var(--font-sans);
    font-size: 0.75rem;
    font-weight: 700;
    letter-spacing: 0.2em;
    text-transform: uppercase;
    color: var(--gold);
    margin-bottom: 20px;
}
/* ══ HERO SPLIT (text left, photo right) ══ */
.cps-hero-split {
    display: flex;
    align-items: flex-end;
    justify-content: center;
    gap: 40px;
    max-width: 1200px;
    margin: 0 auto;
    position: relative;
    z-index: 2;
}
.cps-hero-split .hero-text {
    flex: 1;
    text-align: left;
    max-width: 620px;
    padding-bottom: 40px;
}
.cps-hero-split .hero-text h1 { text-align: left; }
.cps-hero-split .hero-text .lead { margin-left: 0; margin-right: 0; }
.cps-hero-split .hero-photo {
    flex-shrink: 0;
    width: 380px;
    position: relative;
}
.cps-hero-split .hero-photo img {
    width: 100%;
    height: auto;
    display: block;
    filter: drop-shadow(0 20px 40px rgba(0,0,0,0.4));
}
@media (max-width: 900px) {
    .cps-hero-split {
        flex-direction: column;
        text-align: center;
    }
    .cps-hero-split .hero-text { text-align: center; max-width: 100%; padding-bottom: 0; }
    .cps-hero-split .hero-text h1 { text-align: center; }
    .cps-hero-split .hero-text .lead { margin: 0 auto 44px; }
    .cps-hero-split .hero-photo { width: 260px; }
}
/* ══ BUTTONS ══ */
.btn {
    display: inline-block;
    padding: 16px 38px;
    font-size: 0.9rem;
    font-weight: 700;
    border-radius: 100px;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    transition: all 0.4s cubic-bezier(0.34, 1.56, 0.64, 1), box-shadow 0.2s ease;
    cursor: pointer;
    border: none;
    font-family: var(--font-sans);
    position: relative;
    overflow: hidden;
}
.btn + .btn { margin-left: 16px; }
/* Gold button — metallic shimmer */
.btn-gold {
    background:
        linear-gradient(135deg,
            #B8923E 0%,
            #8B6B52 20%,
            #E8D5A8 40%,
            #F5ECD4 50%,
            #E8D5A8 60%,
            #8B6B52 80%,
            #B8923E 100%
        );
    background-size: 200% 200%;
    background-position: 0% 50%;
    color: var(--navy-deep);
    box-shadow:
        0 2px 4px rgba(0,0,0,0.2),
        0 4px 15px rgba(139,107,82,0.25),
        inset 0 1px 0 rgba(255,255,255,0.3);
    text-shadow: 0 1px 1px rgba(139,107,82,0.3);
}
.btn-gold:hover {
    background-position: 100% 50%;
    box-shadow:
        0 4px 8px rgba(0,0,0,0.25),
        0 8px 30px rgba(139,107,82,0.4),
        inset 0 1px 0 rgba(255,255,255,0.4);
    color: var(--navy-deep);
    transform: translateY(-2px);
}
.btn-gold:active {
    transform: translateY(1px);
    box-shadow:
        0 1px 2px rgba(0,0,0,0.3),
        0 2px 8px rgba(139,107,82,0.2),
        inset 0 2px 4px rgba(0,0,0,0.1);
}
/* Shimmer sweep on hover */
.btn-gold::after {
    content: '';
    position: absolute;
    top: -50%;
    left: -60%;
    width: 40%;
    height: 200%;
    background: linear-gradient(
        90deg,
        transparent 0%,
        rgba(255,255,255,0.08) 30%,
        rgba(255,255,255,0.25) 50%,
        rgba(255,255,255,0.08) 70%,
        transparent 100%
    );
    transform: skewX(-20deg);
    transition: left 0.6s ease;
    pointer-events: none;
}
.btn-gold:hover::after {
    left: 120%;
}
/* Ghost button — glass with gold border */
.btn-ghost {
    background: rgba(255,255,255,0.04);
    color: white;
    border: 2px solid rgba(139,107,82,0.25);
    backdrop-filter: blur(4px);
    box-shadow:
        0 2px 4px rgba(0,0,0,0.15),
        inset 0 1px 0 rgba(255,255,255,0.05);
}
.btn-ghost:hover {
    background: rgba(139,107,82,0.08);
    border-color: var(--gold);
    color: var(--gold);
    box-shadow:
        0 4px 8px rgba(0,0,0,0.2),
        0 0 20px rgba(139,107,82,0.1),
        inset 0 1px 0 rgba(139,107,82,0.1);
    transform: translateY(-2px);
}
.btn-ghost:active {
    transform: translateY(1px);
    box-shadow: 0 1px 2px rgba(0,0,0,0.2);
}
/* Shimmer sweep */
.btn-ghost::after {
    content: '';
    position: absolute;
    top: -50%;
    left: -60%;
    width: 40%;
    height: 200%;
    background: linear-gradient(
        90deg,
        transparent 0%,
        rgba(139,107,82,0.05) 30%,
        rgba(139,107,82,0.15) 50%,
        rgba(139,107,82,0.05) 70%,
        transparent 100%
    );
    transform: skewX(-20deg);
    transition: left 0.6s ease;
    pointer-events: none;
}
.btn-ghost:hover::after {
    left: 120%;
}
/* Dark button — navy with metallic hover */
.btn-dark {
    background: transparent;
    color: var(--navy);
    border: 2px solid var(--navy);
    box-shadow: 0 2px 4px rgba(0,0,0,0.08);
}
.btn-dark:hover {
    background: var(--navy);
    color: var(--gold);
    border-color: var(--navy);
    box-shadow:
        0 4px 8px rgba(0,0,0,0.15),
        0 0 20px rgba(27,42,74,0.15);
    transform: translateY(-2px);
}
.btn-dark:active {
    transform: translateY(1px);
    box-shadow: 0 1px 2px rgba(0,0,0,0.15);
}
/* Shimmer sweep */
.btn-dark::after {
    content: '';
    position: absolute;
    top: -50%;
    left: -60%;
    width: 40%;
    height: 200%;
    background: linear-gradient(
        90deg,
        transparent 0%,
        rgba(139,107,82,0.05) 30%,
        rgba(139,107,82,0.12) 50%,
        rgba(139,107,82,0.05) 70%,
        transparent 100%
    );
    transform: skewX(-20deg);
    transition: left 0.6s ease;
    pointer-events: none;
}
.btn-dark:hover::after {
    left: 120%;
}
/* ══ STATS GRID ══ */
.cps-stats {
    padding: 80px 0;
    background: var(--navy-deep);
    border-top: 1px solid rgba(139,107,82,0.12);
    border-bottom: 1px solid rgba(139,107,82,0.12);
    display: flex;
    justify-content: center;
    align-items: center;
}
.stats-row {
    display: grid;
    grid-template-columns: repeat(6, 200px);
    gap: 18px;
}
/* Glow card */
.glow-card {
    position: relative;
    border-radius: 16px;
    padding: 2px;
    background: rgba(139,107,82,0.12);
}
.glow-card::after {
    content: '';
    position: absolute;
    inset: -1px;
    border-radius: 17px;
    opacity: 0;
    transition: opacity 0.4s ease;
    box-shadow:
        0 0 18px rgba(139,107,82,0.25),
        0 0 40px rgba(139,107,82,0.12);
    pointer-events: none;
}
.glow-card:hover {
    background: rgba(139,107,82,0.3);
}
.glow-card:hover::after {
    opacity: 1;
}
/* Inner card */
.glow-card-inner {
    background: var(--navy-deep);
    border-radius: 14px;
    padding: 44px 16px;
    text-align: center;
    height: 100%;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
}
/* Accent line */
.glow-card .card-accent {
    width: 28px;
    height: 2px;
    border-radius: 1px;
    background: var(--gold);
    opacity: 0.4;
    margin-bottom: 18px;
}
/* Value */
.glow-card .card-value {
    font-size: 1.5rem;
    font-weight: 700;
    color: white;
    font-family: var(--font-serif);
    line-height: 1.2;
    margin-bottom: 10px;
    white-space: nowrap;
}
/* Label */
.glow-card .card-label {
    font-size: 0.65rem;
    color: #C9A96E; /* was var(--gold) @ .65 opacity = 2.1:1 on navy */
    text-transform: uppercase;
    letter-spacing: 0.16em;
    font-weight: 600;
    opacity: 0.9;
    white-space: nowrap;
}
/* 6 fixed 200px columns + gaps = 1290px; collapse to 3 BEFORE the viewport
   drops under that width, or the row overflows the 1101-1289px range
   (matrix flagged 1180/1280 on home). */
@media (max-width: 1320px) {
    .stats-row {
        grid-template-columns: repeat(3, 200px);
    }
}
@media (max-width: 680px) {
    /* flexible tracks (was fixed repeat(2,160px)=338px, overflowed 320) */
    .stats-row {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 12px;
    }
    .stats-row .glow-card:last-child {
        grid-column: 1 / -1;
        max-width: 160px;
        justify-self: center;
    }
    .cps-stats { padding: 48px 20px; }
    .glow-card-inner { padding: 32px 12px; }
    .glow-card .card-value { font-size: 1.25rem; }
}
/* ══ SECTIONS ══ */
.sec { padding: 100px 40px; }
.sec-dark { background: var(--navy-deep); color: white; }
.sec-light { background: var(--light-bg); }
.sec-gradient {
    background: linear-gradient(160deg, var(--navy) 0%, var(--teal) 100%);
    color: white;
}
/* Section labels & headings */
.sec-label {
    display: inline-block;
    font-family: var(--font-sans);
    font-size: 0.72rem;
    font-weight: 700;
    letter-spacing: 0.2em;
    text-transform: uppercase;
    color: var(--gold);
    margin-bottom: 16px;
}
.sec h2 {
    font-size: clamp(1.9rem, 3.5vw, 2.8rem);
    color: var(--navy);
    letter-spacing: -0.02em;
    line-height: 1.2;
}
.sec-dark h2, .sec-gradient h2 { color: white; }
.desc {
    font-size: 1.05rem;
    line-height: 1.85;
    color: var(--slate);
}
.sec-dark .desc { color: var(--text-light); }
/* Center .desc paragraphs inside centered narrow containers (Career, About-page sections, etc.).
   Theme stylesheet sets max-width:600px on .desc but leaves default 0 margins, which left-aligns
   the paragraph inside a 780px .container-sm. Split-layout sections use .container, not .container-sm,
   so this rule only affects already-centered text blocks. */
.container-sm > .desc { margin-left: auto; margin-right: auto; }
/* Gold bar divider */
.bar {
    width: 50px;
    height: 3px;
    background: var(--gold);
    border: none;
    margin: 0 0 32px;
    border-radius: 2px;
}
.bar-c { margin: 16px auto 32px; }
/* ══ SPLIT LAYOUT (2-col) ══ */
.split {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 72px;
    align-items: center;
}
/* ══ TRIO (3-col) ══ */
.trio {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 24px;
}
/* Trio glow wrapper — navy glow on light backgrounds */
.trio-glow {
    position: relative;
    border-radius: 16px;
    padding: 2px;
    background: rgba(139,107,82,0.15);
    display: flex;
    transition: background 0.4s ease;
}
.trio-glow::after {
    content: '';
    position: absolute;
    inset: -1px;
    border-radius: 17px;
    opacity: 0;
    transition: opacity 0.4s ease;
    box-shadow:
        0 0 20px rgba(139,107,82,0.2),
        0 0 40px rgba(139,107,82,0.1);
    pointer-events: none;
}
.trio-glow:hover {
    background: rgba(139,107,82,0.3);
}
.trio-glow:hover::after {
    opacity: 1;
}
.trio-item {
    padding: 40px 32px;
    border-radius: 14px;
    background: var(--light-bg);
    flex: 1;
}
.sec .trio-item,
.sec-light .trio-item {
    background: white;
}
.trio-item .num {
    font-family: var(--font-serif);
    font-size: 1.1rem;
    color: var(--gold);
    font-weight: 700;
    display: block;
    margin-bottom: 16px;
}
.trio-item h3 {
    font-size: 1.15rem;
    color: var(--navy);
    font-weight: 700;
    margin-bottom: 12px;
    font-family: var(--font-sans);
}
.trio-item p {
    color: var(--slate);
    line-height: 1.8;
    font-size: 0.95rem;
    margin: 0;
}
/* ══ SERVICE LIST ══ */
.svc-list { max-width: 720px; }
.svc-item {
    display: flex;
    gap: 24px;
    padding: 32px 0;
    border-bottom: 1px solid var(--border);
    transition: all 0.3s ease;
}
.svc-item:last-child { border-bottom: none; }
.svc-item:hover { padding-left: 8px; }
.svc-num {
    font-family: var(--font-serif);
    font-size: 1.1rem;
    color: var(--gold);
    font-weight: 700;
    flex-shrink: 0;
    width: 32px;
    padding-top: 2px;
}
.svc-item h3 {
    font-size: 1.1rem;
    color: var(--navy);
    font-weight: 700;
    margin-bottom: 8px;
    font-family: var(--font-sans);
}
.svc-item p {
    color: var(--text);
    line-height: 1.65;
    font-size: 1rem;
    margin: 0;
}
/* ══ PHOTO ══ */
.photo {
    width: 100%;
    max-width: 480px;
    object-fit: cover;
}
.photo-rounded {
    border-radius: 12px;
    box-shadow: 0 25px 60px rgba(0,0,0,0.15);
}
/* ══ TESTIMONIALS GRID ══ */
.testimonial-grid {
    display: grid;
    /* min(300px,100%) lets a column shrink below 300px on <348px screens
       instead of forcing a 300px card past the edge (matrix flagged 320). */
    grid-template-columns: repeat(auto-fit, minmax(min(300px, 100%), 1fr));
    gap: 28px;
    max-width: 1100px;
    margin: 0 auto;
}
/* Testimonial glow wrapper — gold glow on dark background */
.tcard-glow {
    position: relative;
    border-radius: 18px;
    padding: 2px;
    background: rgba(139,107,82,0.1);
}
.tcard-glow::after {
    content: '';
    position: absolute;
    inset: -1px;
    border-radius: 19px;
    opacity: 0;
    transition: opacity 0.4s ease;
    box-shadow:
        0 0 18px rgba(139,107,82,0.2),
        0 0 40px rgba(139,107,82,0.1);
    pointer-events: none;
}
.tcard-glow:hover {
    background: rgba(139,107,82,0.25);
}
.tcard-glow:hover::after {
    opacity: 1;
}
.tcard-glow {
    display: flex;
}
.tcard {
    background: rgba(255,255,255,0.04);
    border-radius: 16px;
    padding: 36px 32px;
    position: relative;
    flex: 1;
    display: flex;
    flex-direction: column;
}
.tcard-text {
    flex: 1;
}
.tcard::before {
    content: 'S';  /* was 'C' from CPS clone */
    font-family: var(--font-serif);
    font-size: 4rem;
    color: var(--gold);
    opacity: 0.2;
    position: absolute;
    top: 16px; left: 24px;
    line-height: 1;
}
.tcard-stars {
    color: var(--gold);
    font-size: 1.1rem;
    letter-spacing: 2px;
    margin-bottom: 20px;
}
.tcard-text {
    font-size: 0.95rem;
    line-height: 1.85;
    color: rgba(255,255,255,0.8);
    font-style: italic;
    margin: 0 0 24px;
    position: relative;
    z-index: 1;
}
.tcard-author {
    font-size: 0.78rem;
    text-transform: uppercase;
    letter-spacing: 0.12em;
    color: #C9A96E; /* was var(--gold) = 2.7:1 on card */
    font-weight: 600;
    margin: 0;
    padding-top: 16px;
    border-top: 1px solid rgba(255,255,255,0.08);
}
/* ══ QUOTE SECTION ══ */
.quote-section { text-align: center; padding: 50px 40px; }
/* Tighten gap when quote-section follows a dark section (both navy = no visual break) */
.sec.sec-dark:has(+ .sec.quote-section) { padding-bottom: 40px; }
.sec.sec-dark + .sec.quote-section { padding-top: 0; }
.quote-text {
    font-family: var(--font-serif);
    font-size: clamp(1.3rem, 2.5vw, 1.8rem);
    font-style: italic;
    color: white;
    max-width: 720px;
    margin: 0 auto 24px;
    line-height: 1.7;
}
.quote-attr {
    font-size: 0.85rem;
    color: #C4A484 !important; /* 6.8:1 on the navy quote section; var(--gold) was 3.3:1 (go-live verification 2026-09-09) */
    font-weight: 600;
    letter-spacing: 0.06em;
}
/* ══ TIMELINE ══ */
.timeline { position: relative; max-width: 720px; margin: 0 auto; }
.tl-item {
    display: flex;
    gap: 28px;
    padding-bottom: 48px;
    position: relative;
}
.tl-item:last-child { padding-bottom: 0; }
.tl-line {
    flex-shrink: 0;
    width: 24px;
    display: flex;
    flex-direction: column;
    align-items: center;
    position: relative;
}
.tl-dot {
    width: 14px; height: 14px;
    border-radius: 50%;
    background: var(--gold);
    border: 3px solid var(--navy);
    box-shadow: 0 0 0 4px var(--gold-glow);
    flex-shrink: 0;
    margin-top: 4px;
    z-index: 1;
}
.tl-connector {
    width: 2px;
    flex-grow: 1;
    background: linear-gradient(to bottom, var(--gold), rgba(139,107,82,0.2));
    margin-top: 4px;
}
.tl-item h3 {
    font-size: 1.1rem;
    color: var(--navy);
    font-weight: 700;
    margin-bottom: 8px;
    font-family: var(--font-sans);
}
.tl-item p {
    color: var(--slate);
    line-height: 1.85;
    font-size: 0.95rem;
    margin: 0;
}
/* ══ FAQ ══ */
.faq-grid {
    display: flex;
    flex-direction: column;
    gap: 16px;
    max-width: 780px;
    margin: 0 auto;
}
.faq-glow {
    position: relative;
    border-radius: 16px;
    padding: 2px;
    background: rgba(27,42,74,0.08);
}
.faq-glow::after {
    content: '';
    position: absolute;
    inset: -1px;
    border-radius: 17px;
    opacity: 0;
    transition: opacity 0.4s ease;
    box-shadow: 0 0 18px rgba(27,42,74,0.12), 0 0 40px rgba(27,42,74,0.06);
    pointer-events: none;
}
.faq-glow:hover {
    background: rgba(27,42,74,0.16);
}
.faq-glow:hover::after {
    opacity: 1;
}
.faq-item {
    background: white;
    border-radius: 14px;
    padding: 32px 36px;
}
.faq-item h3 {
    font-size: 1.1rem;
    color: var(--navy);
    font-weight: 700;
    margin-bottom: 14px;
    font-family: var(--font-sans);
    display: flex;
    align-items: flex-start;
    gap: 14px;
    line-height: 1.4;
}
.faq-item h3 .faq-icon {
    flex-shrink: 0;
    width: 28px;
    height: 28px;
    border-radius: 6px;
    background: rgba(139,107,82,0.12);
    color: var(--gold);
    display: flex;
    align-items: center;
    justify-content: center;
    font-family: var(--font-serif);
    font-size: 0.85rem;
    font-weight: 700;
    margin-top: 1px;
}
.faq-item p {
    color: var(--slate);
    line-height: 1.85;
    font-size: 0.95rem;
    margin: 0;
    padding-left: 42px;
}
@media (max-width: 640px) {
    .faq-item { padding: 24px 20px; }
    .faq-item p { padding-left: 0; }
}
/* ══ CONTACT ══ */
.contact-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 72px;
    align-items: start;
}
.contact-block { margin-bottom: 32px; }
.contact-block h3 {
    font-size: 0.85rem;
    font-weight: 700;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: var(--gold);
    margin-bottom: 12px;
    font-family: var(--font-sans);
}
.contact-block p {
    color: var(--slate);
    line-height: 1.85;
    font-size: 0.95rem;
}
.contact-block a { color: var(--navy); font-weight: 600; }
.contact-block a:hover { color: var(--gold); }
/* ══ FORM AREA ══ */
.form-area {
    background: var(--light-bg);
    border-radius: 12px;
    padding: 48px 36px;
    border: 1px solid var(--border);
}
.form-area .disclaimer {
    margin-top: 28px;
    padding: 20px 24px;
    background: #FFFBEB;
    border-radius: 8px;
    border-left: 3px solid var(--gold);
    font-size: 0.85rem;
    color: var(--navy);
    line-height: 1.65;
}
/* ══ CONTACT FORM ══ */
.cps-form label {
    display: block;
    font-size: 0.8rem;
    font-weight: 700;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: var(--navy);
    margin-bottom: 6px;
}
.cps-form .form-group { margin-bottom: 20px; }
.cps-form input[type="text"],
.cps-form input[type="email"],
.cps-form input[type="tel"],
.cps-form select,
.cps-form textarea {
    width: 100%;
    padding: 14px 16px;
    border: 1px solid var(--border);
    border-radius: 8px;
    font-size: 0.95rem;
    font-family: var(--font-sans);
    color: var(--text);
    background: white;
    transition: border-color 0.3s ease, box-shadow 0.3s ease;
    -webkit-appearance: none;
}
.cps-form input:focus,
.cps-form select:focus,
.cps-form textarea:focus {
    outline: none;
    border-color: var(--gold);
    box-shadow: 0 0 0 3px var(--gold-glow);
}
.cps-form textarea { resize: vertical; min-height: 120px; }
.cps-form select {
    cursor: pointer;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%234A5568' d='M6 8L1 3h10z'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right 16px center;
    padding-right: 40px;
}
.cps-form .form-row {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 16px;
}
.cps-form .btn-submit {
    width: 100%;
    padding: 16px;
    font-size: 0.95rem;
    cursor: pointer;
}
.cps-form .hp { position: absolute; left: -9999px; }
@media (max-width: 768px) {
    .cps-form .form-row { grid-template-columns: 1fr; }
}
/* ══ STICKY CTA BAR ══ */
.sticky-cta {
    position: fixed;
    bottom: 0;
    left: 0; right: 0;
    z-index: 9999;
    background: rgba(13,24,41,0.95);
    border-top: 1px solid rgba(139,107,82,0.2);
    padding: 14px 24px;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 20px;
    backdrop-filter: blur(12px);
}
.sticky-cta p {
    color: white;
    margin: 0;
    font-size: 0.95rem;
    font-weight: 500;
}
.sticky-cta .btn { padding: 10px 28px; font-size: 0.8rem; }
/* ══ MOBILE PHONE BUTTON ══ */
.mobile-phone-btn {
    display: none;
    position: fixed;
    bottom: 24px;
    right: 24px;
    z-index: 10000;
    width: 60px; height: 60px;
    border-radius: 50%;
    background: linear-gradient(135deg, var(--gold) 0%, var(--gold-light) 100%);
    color: var(--navy-deep);
    font-size: 1.5rem;
    align-items: center;
    justify-content: center;
    box-shadow: 0 4px 20px rgba(139,107,82,0.4);
    text-decoration: none;
    transition: transform 0.3s ease, box-shadow 0.3s ease, color 0.3s ease;
    /* phonePulse (infinite box-shadow animation, main-thread paint on every
       mobile page) removed 2026-09-08; the sticky CTA bar carries Call Now. */
}
.mobile-phone-btn:hover {
    transform: scale(1.1);
    box-shadow: 0 8px 30px rgba(139,107,82,0.6);
    color: var(--navy-deep);
}
@keyframes phonePulse {
    0%, 100% { box-shadow: 0 4px 20px rgba(139,107,82,0.4); }
    50% { box-shadow: 0 4px 20px rgba(139,107,82,0.4), 0 0 0 8px rgba(139,107,82,0.15); }
}
/* ══ RESOURCES PAGE ══ */
.resource-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));
    gap: 24px;
    max-width: 1200px;
    margin: 0 auto;
}
/* Resource card with glow */
.resource-glow {
    position: relative;
    border-radius: 16px;
    padding: 2px;
    background: rgba(27,42,74,0.1);
    display: flex;
}
.resource-glow::after {
    content: '';
    position: absolute;
    inset: -1px;
    border-radius: 17px;
    opacity: 0;
    transition: opacity 0.4s ease;
    box-shadow: 0 0 18px rgba(27,42,74,0.15), 0 0 40px rgba(27,42,74,0.08);
    pointer-events: none;
}
.resource-glow:hover {
    background: rgba(27,42,74,0.2);
}
.resource-glow:hover::after {
    opacity: 1;
}
/* Dark variant for dark sections */
.resource-glow-dark {
    background: rgba(139,107,82,0.1);
}
.resource-glow-dark::after {
    box-shadow: 0 0 18px rgba(139,107,82,0.2), 0 0 40px rgba(139,107,82,0.1);
}
.resource-glow-dark:hover {
    background: rgba(139,107,82,0.25);
}
.resource-card {
    background: white;
    border-radius: 14px;
    overflow: hidden;
    flex: 1;
    display: flex;
    flex-direction: column;
}
.resource-glow-dark .resource-card {
    background: var(--navy-deep);
}
.resource-card .card-media {
    position: relative;
    width: 100%;
    aspect-ratio: 16 / 9;
    background: var(--navy);
    overflow: hidden;
}
.resource-card .card-media img,
.resource-card .card-media iframe {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}
.resource-card .card-media .play-overlay {
    position: absolute;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    background: rgba(13,24,41,0.4);
    transition: background 0.3s ease;
}
.resource-glow:hover .play-overlay {
    background: rgba(13,24,41,0.2);
}
.play-btn {
    width: 64px;
    height: 64px;
    border-radius: 50%;
    background: rgba(139,107,82,0.9);
    display: flex;
    align-items: center;
    justify-content: center;
    transition: transform 0.3s ease;
}
.resource-glow:hover .play-btn {
    transform: scale(1.1);
}
.play-btn svg {
    width: 24px;
    height: 24px;
    fill: var(--navy-deep);
    margin-left: 3px;
}
.resource-card .card-body {
    padding: 28px 24px;
    flex: 1;
    display: flex;
    flex-direction: column;
}
.resource-card .card-tag {
    display: inline-block;
    font-size: 0.65rem;
    font-weight: 700;
    letter-spacing: 0.15em;
    text-transform: uppercase;
    color: var(--gold);
    margin-bottom: 10px;
}
.resource-card .card-title {
    font-size: 1.15rem;
    font-weight: 700;
    color: var(--navy);
    font-family: var(--font-sans);
    margin-bottom: 10px;
    line-height: 1.35;
}
.resource-glow-dark .card-title {
    color: white;
}
.resource-card .card-excerpt {
    font-size: 0.9rem;
    color: var(--slate);
    line-height: 1.75;
    flex: 1;
    margin-bottom: 16px;
}
.resource-glow-dark .card-excerpt {
    color: rgba(255,255,255,0.6);
}
.resource-card .card-meta {
    font-size: 0.72rem;
    color: rgba(74,85,104,0.6);
    text-transform: uppercase;
    letter-spacing: 0.08em;
    padding-top: 16px;
    border-top: 1px solid var(--border);
}
.resource-glow-dark .card-meta {
    color: rgba(255,255,255,0.3);
    border-top-color: rgba(255,255,255,0.08);
}
/* Featured video */
.featured-video {
    max-width: 1200px;
    margin: 0 auto;
    display: grid;
    grid-template-columns: 1.5fr 1fr;
    gap: 48px;
    align-items: center;
}
.featured-video .video-wrap {
    border-radius: 16px;
    overflow: hidden;
    aspect-ratio: 16 / 9;
    background: var(--navy);
    position: relative;
}
.featured-video .video-wrap img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}
/* Empty state / placeholder */
.resource-empty {
    text-align: center;
    padding: 60px 40px;
    border: 2px dashed rgba(139,107,82,0.2);
    border-radius: 16px;
    max-width: 600px;
    margin: 0 auto;
}
.resource-empty h3 {
    font-family: var(--font-sans);
    font-size: 1.1rem;
    color: var(--navy);
    font-weight: 700;
    margin-bottom: 8px;
}
.resource-empty p {
    font-size: 0.9rem;
    color: var(--slate);
    margin: 0;
}
.sec-dark .resource-empty {
    border-color: rgba(139,107,82,0.15);
}
.sec-dark .resource-empty h3 { color: white; }
.sec-dark .resource-empty p { color: rgba(255,255,255,0.5); }
/* Section nav tabs */
.resource-tabs {
    display: flex;
    justify-content: center;
    gap: 8px;
    flex-wrap: wrap;
}
.resource-tab {
    display: inline-block;
    padding: 10px 24px;
    font-size: 0.78rem;
    font-weight: 700;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: var(--slate);
    border: 1px solid var(--border);
    border-radius: 8px;
    text-decoration: none;
    transition: all 0.3s ease;
}
.resource-tab:hover,
.resource-tab.active {
    color: var(--navy-deep);
    background: var(--gold);
    border-color: var(--gold);
}
@media (max-width: 768px) {
    .resource-grid { grid-template-columns: 1fr; }
    .featured-video { grid-template-columns: 1fr; gap: 32px; }
}
/* ══ RESOURCE CARDS V2 ══ */
.res-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 24px;
    max-width: 1100px;
    margin: 0 auto;
}
/* Glow wrapper — dark variant */
.res-glow {
    position: relative;
    border-radius: 16px;
    padding: 2px;
    background: rgba(139,107,82,0.1);
    display: flex;
}
.res-glow::after {
    content: '';
    position: absolute;
    inset: -1px;
    border-radius: 17px;
    opacity: 0;
    transition: opacity 0.4s ease;
    box-shadow: 0 0 18px rgba(139,107,82,0.2), 0 0 40px rgba(139,107,82,0.1);
    pointer-events: none;
}
.res-glow:hover { background: rgba(139,107,82,0.25); }
.res-glow:hover::after { opacity: 1; }
/* Glow wrapper — light variant */
.res-glow-light {
    background: rgba(27,42,74,0.08);
}
.res-glow-light::after {
    box-shadow: 0 0 18px rgba(27,42,74,0.12), 0 0 40px rgba(27,42,74,0.06);
}
.res-glow-light:hover { background: rgba(27,42,74,0.16); }
/* Card inner */
.res-card {
    border-radius: 14px;
    padding: 36px 28px;
    flex: 1;
    display: flex;
    flex-direction: column;
}
.res-card-dark { background: var(--navy-deep); }
.res-card-light { background: white; }
.res-card-gray { background: var(--light-bg); }
/* Number / icon */
.res-card .res-number {
    font-family: var(--font-serif);
    font-size: 2.8rem;
    font-weight: 700;
    line-height: 1;
    margin-bottom: 20px;
}
.res-card-dark .res-number { color: rgba(139,107,82,0.2); }
.res-card-light .res-number,
.res-card-gray .res-number { color: rgba(27,42,74,0.08); }
/* Tag */
.res-card .res-tag {
    display: inline-block;
    font-size: 0.65rem;
    font-weight: 700;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    padding: 5px 12px;
    border-radius: 4px;
    margin-bottom: 16px;
    width: fit-content;
}
.res-card-dark .res-tag {
    background: rgba(139,107,82,0.1);
    color: var(--gold);
}
.res-card-light .res-tag,
.res-card-gray .res-tag {
    background: rgba(27,42,74,0.06);
    color: var(--navy);
}
/* Title */
.res-card .res-title {
    font-family: var(--font-sans);
    font-size: 1.15rem;
    font-weight: 700;
    line-height: 1.4;
    margin-bottom: 12px;
}
.res-card-dark .res-title { color: white; }
.res-card-light .res-title,
.res-card-gray .res-title { color: var(--navy); }
/* Description */
.res-card .res-desc {
    font-size: 0.9rem;
    line-height: 1.75;
    flex: 1;
    margin-bottom: 20px;
}
.res-card-dark .res-desc { color: rgba(255,255,255,0.5); }
.res-card-light .res-desc,
.res-card-gray .res-desc { color: var(--slate); }
/* Footer / meta */
.res-card .res-meta {
    font-size: 0.72rem;
    font-weight: 600;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    padding-top: 16px;
    border-top: 1px solid rgba(139,107,82,0.12);
}
.res-card-dark .res-meta {
    color: var(--gold);
    border-top-color: rgba(139,107,82,0.12);
}
.res-card-light .res-meta,
.res-card-gray .res-meta {
    color: var(--gold);
    border-top-color: rgba(27,42,74,0.08);
}
@media (max-width: 900px) {
    .res-grid { grid-template-columns: 1fr; max-width: 480px; }
}
/* ══ SITE FOOTER DISCLAIMER ══ */
.cps-footer {
    background: var(--navy-deep);
    border-top: 1px solid rgba(139,107,82,0.12);
    padding: 40px 40px;
    text-align: center;
}
.cps-footer p {
    font-size: 0.78rem;
    color: rgba(255,255,255,0.35);
    line-height: 1.7;
    max-width: 720px;
    margin: 0 auto;
}
.cps-footer p + p {
    margin-top: 12px;
}
.cps-footer a {
    /* lighter gold tier: rgba(139,107,82,.5) blended to ~1.6:1 on navy-deep */
    color: rgba(196,164,132,0.85);
    text-decoration: underline;
    text-underline-offset: 2px;
    text-decoration-thickness: 1px;
}
.cps-footer a:hover {
    color: #C9A96E;
}
/* Social icons */
.social-row {
    display: flex;
    justify-content: center;
    gap: 16px;
    margin: 20px auto 8px;
}
.social-link {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 38px;
    height: 38px;
    border-radius: 8px;
    background: rgba(255,255,255,0.04);
    border: 1px solid rgba(139,107,82,0.12);
    transition: all 0.3s ease;
}
.social-link:hover {
    background: rgba(139,107,82,0.1);
    border-color: rgba(139,107,82,0.35);
}
.social-link svg {
    width: 18px;
    height: 18px;
    /* 0.75 alpha of the light gold like the header strip icons; 0.45 dark gold was ~1.5:1 */
    fill: rgba(196,164,132,0.75);
    transition: fill 0.3s ease;
}
.social-link:hover svg {
    fill: #C9A96E;
}
/* ══ CSS-ONLY SCROLL ANIMATIONS ══ */
/* WordPress strips  tags, so animations must be CSS-only. */
/* Elements are visible by default; animation is progressive enhancement. */
@keyframes fadeInUp {
    from { opacity: 0; transform: translateY(30px); }
    to { opacity: 1; transform: translateY(0); }
}
/* 2026-09-08: the unprefixed CSS-only fadeInUp on [data-animate] ran on
   every element at page load (on-screen or not) on top of the JS reveal in
   scharf-styles.css — double animation. Removed; keyframes kept for reuse. */
/* ══ SECTION DIVIDER ══ */
.sec-divider {
    height: 1px;
    background: linear-gradient(90deg, transparent, var(--gold), transparent);
    max-width: 200px;
    margin: 0 auto;
    opacity: 0.3;
}
/* ══ CREDENTIAL BADGES ══ */
.badge-row {
    display: flex;
    gap: 32px;
    justify-content: center;
    flex-wrap: wrap;
    margin-top: 48px;
}
.badge {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 14px 28px;
    background: rgba(255,255,255,0.04);
    border: 1px solid rgba(139,107,82,0.15);
    border-radius: 12px;
    color: rgba(255,255,255,0.7);
    font-size: 0.85rem;
    font-weight: 500;
    transition: all 0.4s ease;
    position: relative;
}
.badge::after {
    content: '';
    position: absolute;
    inset: -1px;
    border-radius: 13px;
    opacity: 0;
    transition: opacity 0.4s ease;
    box-shadow: 0 0 18px rgba(139,107,82,0.2), 0 0 40px rgba(139,107,82,0.1);
    pointer-events: none;
}
.badge:hover {
    border-color: rgba(139,107,82,0.35);
    background: rgba(139,107,82,0.06);
}
.badge:hover::after {
    opacity: 1;
}
/* ── Mid-page CTA box ── */
.cta-box-glow {
    position: relative;
    border-radius: 18px;
    padding: 2px;
    background: rgba(139,107,82,0.15);
    margin: 16px 0 40px;
    transition: background 0.4s ease;
}
.cta-box-glow::after {
    content: '';
    position: absolute;
    inset: -1px;
    border-radius: 19px;
    opacity: 0;
    transition: opacity 0.4s ease;
    box-shadow: 0 0 24px rgba(139,107,82,0.25), 0 0 48px rgba(139,107,82,0.12);
    pointer-events: none;
}
.cta-box-glow:hover {
    background: rgba(139,107,82,0.3);
}
.cta-box-glow:hover::after {
    opacity: 1;
}
.cta-box-inner {
    background: linear-gradient(135deg, var(--navy) 0%, var(--teal) 100%);
    border-radius: 16px;
    padding: 40px 44px;
    text-align: center;
}
.badge-icon {
    color: var(--gold);
    font-size: 1.2rem;
}
/* ══ RESPONSIVE ══ */
@media (max-width: 768px) {
    .cps-hero { padding: 100px 24px 80px; }
    .cps-hero-sm { padding: 70px 24px 60px; }
    .sec { padding: 64px 20px; }
    .split { grid-template-columns: 1fr; gap: 40px; }
    .trio { grid-template-columns: 1fr; gap: 20px; }
    .contact-grid { grid-template-columns: 1fr; gap: 40px; }
    .btn + .btn { margin-left: 0; margin-top: 12px; display: inline-block; }
    .cps-stats { gap: 24px 48px; padding: 40px 24px; }
    .testimonial-deck { height: 400px; }
    .tcard { padding: 32px 24px; }
    .svc-item { flex-direction: column; gap: 8px; }
    .svc-num { width: auto; }
    .sticky-cta { display: none; }
    .mobile-phone-btn { display: flex; }
}
@media (min-width: 769px) {
    .mobile-phone-btn { display: none !important; }
}


/* ══ SCHARF BRIDGE ALIASES (Phase B → Phase C) ══
 * Auto-generated by tools/rename_prefix.py.
 * Mirrors every `.cps[-X]` selector to `.scharf[-X]` so Phase-C
 * rebuilds work while published pages still use the legacy class.
 * Remove this block after Phase C is fully done.
 */
/* ══ BASE ══ */
.scharf * { box-sizing: border-box; }

.scharf {
    font-family: var(--font-sans);
    color: var(--text);
    line-height: 1.7;
    -webkit-font-smoothing: antialiased;
}

.scharf h1, .scharf h2, .scharf h3, .scharf h4 {
    font-family: var(--font-serif);
    margin: 0 0 16px;
    line-height: 1.2;
    font-weight: 700;
}

.scharf h2 em, .scharf h1 em {
    font-style: italic;
    color: var(--gold);
}

.scharf p { margin: 0 0 16px; }

.scharf a { text-decoration: none; transition: color 0.3s ease, background-color 0.3s ease, border-color 0.3s ease, box-shadow 0.3s ease, transform 0.3s ease; }

.scharf img { max-width: 100%; height: auto; }

/* ══ URGENCY BAR ══ */
.scharf-bar {
    background: linear-gradient(90deg, var(--danger) 0%, #9B2C2C 100%);
    color: white;
    text-align: center;
    padding: 14px 20px;
    font-weight: 600;
    font-size: 1rem;
    letter-spacing: 0.02em;
}

.scharf-bar a { color: white; text-decoration: underline; font-weight: 700; }

.scharf-bar a:hover { color: var(--gold-light); }

/* ══ HERO ══ */
.scharf-hero {
    position: relative;
    background: linear-gradient(160deg, var(--navy-deep) 0%, var(--navy) 40%, var(--teal) 100%);
    color: white;
    padding: 160px 40px 140px;
    text-align: center;
    overflow: hidden;
}

.scharf-hero::before {
    content: '';
    position: absolute;
    inset: 0;
    background:
        radial-gradient(ellipse at 20% 50%, var(--gold-glow) 0%, transparent 60%),
        radial-gradient(ellipse at 80% 20%, rgba(44,74,90,0.3) 0%, transparent 50%);
    pointer-events: none;
}

.scharf-hero::after {
    content: '';
    position: absolute;
    bottom: 0; left: 0; right: 0;
    height: 120px;
    background: linear-gradient(to top, rgba(13,24,41,0.4), transparent);
    pointer-events: none;
}

.scharf-hero .inner { position: relative; z-index: 2; max-width: 880px; margin: 0 auto; }

.scharf-hero h1 {
    font-size: clamp(2.6rem, 5vw, 4rem);
    font-weight: 700;
    letter-spacing: -0.02em;
    margin-bottom: 28px;
    text-shadow: 0 2px 30px rgba(0,0,0,0.3);
    line-height: 1.15;
}

.scharf-hero .lead {
    font-size: clamp(1.05rem, 2vw, 1.25rem);
    color: var(--text-light);
    max-width: 620px;
    margin: 0 auto 44px;
    line-height: 1.8;
    font-weight: 300;
}

.scharf-hero-sm { min-height: 0; padding: 96px 40px 72px; }

.scharf-hero-sm h1 { font-size: clamp(2.2rem, 4vw, 3.2rem); }

/* Hero background image overlay */
.scharf-hero-bg {
    position: absolute;
    inset: 0;
    z-index: 1;
    background-size: cover;
    background-position: center 20%;
    opacity: 0.08;
    filter: grayscale(100%);
}

/* ══ HERO SPLIT (text left, photo right) ══ */
.scharf-hero-split {
    display: flex;
    align-items: flex-end;
    justify-content: center;
    gap: 40px;
    max-width: 1200px;
    margin: 0 auto;
    position: relative;
    z-index: 2;
}

.scharf-hero-split .hero-text {
    flex: 1;
    text-align: left;
    max-width: 620px;
    padding-bottom: 40px;
}

.scharf-hero-split .hero-text h1 { text-align: left; }

.scharf-hero-split .hero-text .lead { margin-left: 0; margin-right: 0; }

.scharf-hero-split .hero-photo {
    flex-shrink: 0;
    width: 380px;
    position: relative;
}

.scharf-hero-split .hero-photo img {
    width: 100%;
    height: auto;
    display: block;
    filter: drop-shadow(0 20px 40px rgba(0,0,0,0.4));
}

/* ══ STATS GRID ══ */
.scharf-stats {
    padding: 80px 0;
    background: var(--navy-deep);
    border-top: 1px solid rgba(139,107,82,0.12);
    border-bottom: 1px solid rgba(139,107,82,0.12);
    display: flex;
    justify-content: center;
    align-items: center;
}

/* ══ CONTACT FORM ══ */
.scharf-form label {
    display: block;
    font-size: 0.8rem;
    font-weight: 700;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: var(--navy);
    margin-bottom: 6px;
}

.scharf-form .form-group { margin-bottom: 20px; }

.scharf-form input[type="text"], .scharf-form input[type="email"], .scharf-form input[type="tel"], .scharf-form select, .scharf-form textarea {
    width: 100%;
    padding: 14px 16px;
    border: 1px solid var(--border);
    border-radius: 8px;
    font-size: 0.95rem;
    font-family: var(--font-sans);
    color: var(--text);
    background: white;
    transition: border-color 0.3s ease, box-shadow 0.3s ease;
    -webkit-appearance: none;
}

.scharf-form input:focus, .scharf-form select:focus, .scharf-form textarea:focus {
    outline: none;
    border-color: var(--gold);
    box-shadow: 0 0 0 3px var(--gold-glow);
}

.scharf-form textarea { resize: vertical; min-height: 120px; }

.scharf-form select {
    cursor: pointer;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%234A5568' d='M6 8L1 3h10z'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right 16px center;
    padding-right: 40px;
}

.scharf-form .form-row {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 16px;
}

.scharf-form .btn-submit {
    width: 100%;
    padding: 16px;
    font-size: 0.95rem;
    cursor: pointer;
}

.scharf-form .hp { position: absolute; left: -9999px; }

/* ══ SITE FOOTER DISCLAIMER ══ */
.scharf-footer {
    background: var(--navy-deep);
    border-top: 1px solid rgba(139,107,82,0.12);
    padding: 40px 40px;
    text-align: center;
}

.scharf-footer p {
    font-size: 0.78rem;
    color: rgba(255,255,255,0.35);
    line-height: 1.7;
    max-width: 720px;
    margin: 0 auto;
}

.scharf-footer p + p {
    margin-top: 12px;
}

.scharf-footer a {
    /* lighter gold tier: rgba(139,107,82,.5) blended to ~1.6:1 on navy-deep */
    color: rgba(196,164,132,0.85);
    text-decoration: underline;
    text-underline-offset: 2px;
    text-decoration-thickness: 1px;
}

.scharf-footer a:hover {
    color: #C9A96E;
}

/* Kadence site footer text — Warm Stone on Navy Velvet for legibility (2026-05-06 brand) */
.site-footer,
.site-footer p,
.site-footer .footer-html-inner,
.site-footer .footer-html-inner p {
    color: #D3CCC3;
}
.site-footer a,
.site-footer .footer-html-inner a {
    color: #D3CCC3;
    text-decoration: underline;
    text-decoration-thickness: 1px;
    text-underline-offset: 2px;
}
.site-footer a:hover,
.site-footer .footer-html-inner a:hover {
    color: #8B6B52;
}

/* ══ PRACTICE-AREA IMAGE TILES (2026-05-06 — restores 3x2 image grid) ══ */
.practice-tiles {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 24px;
    max-width: 1200px;
    margin: 0 auto;
}
.practice-tile {
    position: relative;
    display: block;
    aspect-ratio: 3 / 2;
    overflow: hidden;
    border-radius: 4px;
    text-decoration: none !important;
    color: #fff !important;
    box-shadow: 0 6px 20px rgba(0, 0, 0, 0.18);
    transition: transform 0.4s ease, box-shadow 0.4s ease;
}
.practice-tile img {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.6s ease;
}
.practice-tile::after {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg, rgba(20, 33, 61, 0.18) 0%, rgba(20, 33, 61, 0.78) 100%);
    transition: background 0.4s ease;
    z-index: 1;
}
.practice-tile-label {
    position: absolute;
    inset: 0;
    z-index: 2;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 24px;
}
.practice-tile h3 {
    color: #fff;
    font-family: 'Playfair Display', Georgia, 'Times New Roman', serif; /* 2026-09-26: last Times leftover (home tiles); one serif site-wide per 2026-09-08 */
    font-size: clamp(1.5rem, 2.4vw, 2.05rem);
    font-weight: 600;
    text-align: center;
    line-height: 1.15;
    margin: 0;
    letter-spacing: 0.005em;
    text-shadow: 0 2px 8px rgba(0, 0, 0, 0.45);
}
.practice-tile h3::after {
    content: '';
    display: block;
    width: 36px;
    height: 2px;
    background: #8B6B52;
    margin: 14px auto 0;
    transition: width 0.4s ease, background 0.4s ease;
}
.practice-tile:hover {
    transform: translateY(-4px);
    box-shadow: 0 14px 30px rgba(0, 0, 0, 0.28);
}
.practice-tile:hover img {
    transform: scale(1.06);
}
.practice-tile:hover::after {
    background: linear-gradient(180deg, rgba(20, 33, 61, 0.28) 0%, rgba(20, 33, 61, 0.62) 100%);
}
.practice-tile:hover h3::after {
    width: 64px;
    background: #A4836A;
}
.practice-tile:focus-visible {
    outline: 2px solid #A4836A;
    outline-offset: 3px;
}
@media (max-width: 900px) {
    .practice-tiles { grid-template-columns: repeat(2, 1fr); gap: 18px; }
}
@media (max-width: 540px) {
    .practice-tiles { grid-template-columns: 1fr; gap: 14px; }
    .practice-tile { aspect-ratio: 5 / 3; }
}

/* ══ HOME CTA BANNER (2026-05-06 — restores wide family-photo banner) ══ */
.scharf-cta-banner {
    position: relative;
    overflow: hidden;
    min-height: 440px;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 96px 24px;
    color: #fff;
    isolation: isolate;
}
.scharf-cta-banner__bg {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    /* Shifted from `center 35%` so the family group lands closer to the
       horizontal center of the band rather than weighting the right side. */
    object-position: 65% 35%;
    z-index: 0;
}
.scharf-cta-banner::after {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg, rgba(20, 33, 61, 0.62) 0%, rgba(20, 33, 61, 0.78) 100%);
    z-index: 1;
}
.scharf-cta-banner__content {
    position: relative;
    z-index: 2;
    max-width: 820px;
    text-align: center;
    margin: 0 auto;
}
.scharf-cta-banner__content .bar { margin: 0 auto 24px; }
.scharf-cta-banner__headline {
    font-family: var(--font-serif);
    font-size: clamp(1.75rem, 3vw, 2.4rem);
    font-weight: 700;
    line-height: 1.2;
    color: #fff;
    margin: 0 0 20px;
    letter-spacing: -0.02em;
    text-shadow: 0 2px 8px rgba(0, 0, 0, 0.35);
}
.scharf-cta-banner__headline em {
    font-style: italic;
    color: var(--gold-light);
}
.scharf-cta-banner__body {
    color: rgba(255, 255, 255, 0.92);
    font-size: clamp(0.98rem, 1.15vw, 1.08rem);
    line-height: 1.7;
    margin: 0 auto 32px;
    max-width: 720px;
}
.scharf-cta-banner .btn {
    display: inline-block;
}
@media (max-width: 700px) {
    .scharf-cta-banner { min-height: 320px; padding: 60px 20px; }
    .scharf-cta-banner__body { font-size: 0.95rem; line-height: 1.65; }
}

/* ══════════════════════════════════════════════════════════════════
   ACCESSIBILITY & POLISH OVERRIDES (2026-07 review)
   Appended last so these win the cascade. Three concerns:
   1. prefers-reduced-motion coverage for every animation this file
      and scharf-styles.css declare (WCAG 2.3.3).
   2. Visible keyboard focus on all interactive elements (WCAG 2.4.7).
   3. Readable footer legal disclaimer (WCAG 1.4.3 — was ~2.2:1).
   ══════════════════════════════════════════════════════════════════ */

/* 1 ── Reduced motion: stop entrance + infinite animations */
@media (prefers-reduced-motion: reduce) {
    [data-animate],
    .cps [data-animate],
    .scharf [data-animate] {
        animation: none !important;
        opacity: 1 !important;
        transform: none !important;
        /* filter must be cleared too: the base [data-animate] rule sets
           blur(8px), which otherwise sticks forever without the reveal
           transition and leaves all content permanently blurred. */
        filter: none !important;
        transition: none !important;
    }
    .mobile-phone-btn,
    .cps-lamp,
    .cps-lamp::before,
    .cps-lamp::after {
        animation: none !important;
    }
    .btn, .btn-gold, .btn-ghost, .btn-dark,
    .practice-tile, .practice-tile img,
    .glow-card, .tcard, .resource-tab, .social-link {
        transition: none !important;
    }
}

/* 2 ── Keyboard focus: match the gold hover language, never invisible */
.btn:focus-visible,
.btn-gold:focus-visible,
.btn-ghost:focus-visible,
.btn-dark:focus-visible,
.resource-tab:focus-visible,
.social-link:focus-visible,
.practice-tile:focus-visible,
.scharf-popup-btn:focus-visible,
.scharf-popup-close:focus-visible,
.chat-option-btn:focus-visible,
.chat-minimize:focus-visible,
#scharf-chat-toggle:focus-visible,
.cps-footer a:focus-visible,
.scharf-breadcrumb a:focus-visible {
    outline: 3px solid #A4836A;
    outline-offset: 3px;
    border-radius: 4px;
}
.site-header a:focus-visible,
.main-navigation a:focus-visible {
    outline: 3px solid #C9A96E;
    outline-offset: 3px;
}

/* 3 ── Footer disclaimer contrast: legal text must be readable */
.cps-footer p {
    color: rgba(255,255,255,0.62);
}
.cps-footer a {
    color: rgba(196,164,132,0.9);
}

.site-footer .site-info {
    color: rgba(255,255,255,0.6);
}

/* 4 ── Mobile: collapse .scharf two-column layouts (2026-07-09 review).
   The 768px collapse in scharf-styles.css only covers .cps .split etc.;
   the more-specific .scharf .split / .scharf .contact-grid rules and
   .scharf-form .form-row never collapsed, crushing About, Contact, and
   the JD background section into unreadable columns on phones. */
@media (max-width: 768px) {
    .scharf .split,
    .scharf .split-wide,
    .scharf .split-reverse {
        grid-template-columns: 1fr !important;
        gap: 48px;
    }
    .scharf .contact-grid {
        grid-template-columns: 1fr !important;
        gap: 40px;
    }
    .scharf-form .form-row {
        grid-template-columns: 1fr !important;
    }
}

/* 5 ── Restore container side padding below desktop widths (2026-07-09
   SEO/mobile review). The unprefixed `.container { padding: 0 !important }`
   rule above beats the prefixed `.cps/.scharf .container` clamp() padding at
   EVERY width. On desktop the centered max-width leaves natural gutters, but
   once the viewport is narrower than the container max-width (1200px),
   prose/heading sections whose children carry no padding of their own run
   flush against the screen edge (home "Meet Taryn", About, Contact,
   Family-Law APPROACH, JD stages, Guardianships...). Higher specificity
   (0-2-0) lets these !important rules win over the 0-1-0 one. */
@media (max-width: 1240px) {
    .cps .container,
    .scharf .container,
    .cps .container-sm,
    .scharf .container-sm {
        padding-left: 24px !important;
        padding-right: 24px !important;
    }
}

/* 6 ── Blog "Similar Posts" carousel (Kadence/Splide): at phone widths the
   prev/next arrows sit on top of the card text (byline/title). Swipe and the
   pagination dots still work, so hide the arrows on small screens only. */
@media (max-width: 768px) {
    .entry-related-inner-content .splide__arrow {
        display: none !important;
    }
}

/* 7 ── Unprefixed .btn-gold / .btn-ghost fallback (2026-07-09).
   what-to-do-right-now has NO .cps/.scharf wrapper, so the prefixed
   `.scharf .btn` button styles never applied and its bottom CTAs rendered
   as bare underlined text links. Mirror the .scharf button recipe at 0-1-0
   specificity; the prefixed rules still win on wrapped pages. */
.btn-gold,
.btn-ghost {
    display: inline-block;
    padding: 18px 44px;
    font-family: var(--font-sans, 'Inter', sans-serif);
    font-size: 0.8rem;
    font-weight: 500;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    transition: all 0.3s ease;
    cursor: pointer;
    border: none;
    text-decoration: none;
    position: relative;
}
.btn-gold {
    /* --gold-light (was --gold): navy-on-#8B6B52 measured 3.3:1, below AA */
    background: var(--gold-light, #DBC29A);
    color: var(--navy-deep, #0F1B33);
}
.btn-gold:hover {
    background: #B99878;
    transform: translateY(-2px);
    box-shadow: 0 10px 40px rgba(201,169,110,0.25);
    color: var(--navy-deep, #0F1B33);
}
.btn-ghost {
    background: transparent;
    color: rgba(255,255,255,0.75);
    border: 1px solid rgba(255,255,255,0.25);
}
.btn-ghost:hover {
    color: #fff;
    border-color: rgba(255,255,255,0.5);
}

/* ══ TRIO CARD (unprefixed fallback) ══
   /juvenile-dependency/what-to-do-right-now/ has no .cps/.scharf wrapper and
   uses .trio-glow > .trio-card. .trio-card had no rule anywhere, so the step
   text sat flush against the gold left border. */
.trio-card {
    flex: 1;
    padding: 24px 28px;
    border-radius: 14px;
    background: var(--light-bg, #F8F9FB);
}
.trio-title {
    font-family: var(--font-serif);
    font-size: 1.25rem;
    font-weight: 700;
    color: var(--navy, #14213D);
    margin: 0 0 8px;
    line-height: 1.25;
}
.trio-text {
    margin: 0;
    color: var(--text, #2D3748);
    line-height: 1.65;
}

/* ══ 2026-09-08 REVIEW: accessibility + contrast fixes ══ */
/* Section eyebrow labels and inline gold <strong> on dark sections: #8B6B52
   on navy is 3.3–3.7:1 at 11.5px. Inline style="color:var(--gold)" in
   post_content forces !important here. */
.sec-dark .sec-label, .sec-gradient .sec-label, .cps-hero .sec-label, .scharf-hero .sec-hero .sec-label,
.sec-dark strong[style*="--gold"], .sec-gradient strong[style*="--gold"],
.sec-dark p > strong[style], .sec-gradient p > strong[style] { color: #C9A96E !important; }
.footer-credit > span { opacity: 0.85 !important; }
.form-privacy-note { color: #4A5568; opacity: 1 !important; } /* inline opacity:.85 was blending the link to 4.2:1 */
.form-privacy-note a { color: #7A5C45 !important; text-decoration: underline; }
/* Visible keyboard focus on the contact form + map embed */
.scharf-form input:focus-visible, .scharf-form textarea:focus-visible, .scharf-form select:focus-visible {
    outline: 2px solid #A4836A; outline-offset: 2px; border-color: #8B6B52 !important; box-shadow: none !important;
}
.map-wrap iframe:focus-visible { outline: 3px solid #A4836A; outline-offset: 2px; }
/* Kadence sub-menu toggles were 16px wide (WCAG 2.5.8 target size) */
#primary-menu .dropdown-nav-toggle, .dropdown-nav-toggle, #masthead button[aria-label^="Child menu"] { min-width: 28px !important; min-height: 28px; padding: 0 6px !important; margin-left: 2px; display: inline-flex; align-items: center; justify-content: center; box-sizing: border-box; }
/* 2026-09-09: the 28px toggle sits absolutely at right:0 inside .nav-drop-title-wrap, whose Kadence
   padding-right (1em) was sized for a 0.9em icon — the chevron overlapped the label by ~5px. */
#primary-menu > li.menu-item-has-children > a > .nav-drop-title-wrap { padding-right: 34px; }
/* Narrow desktop (Kadence desktop nav starts at 1025px): the 7-item menu needs ~804px but the
   nav column is only 720–795px wide there, so CONTACT wrapped onto a second row. Tighten. */
@media (min-width: 1025px) and (max-width: 1199px) {
    #masthead #primary-menu > li > a { padding-left: 5px; padding-right: 5px; font-size: 14px !important; } /* beats the later inline `#primary-menu > li > a{font-size:1rem!important}` */
}
/* Emergency page CTA box: navy on #8B6B52 was 3.3:1 */
.cta-box[style*="--gold"] { background: #A4836A !important; }

/* Breadcrumb links relied on color alone against surrounding text */
.scharf-breadcrumb a { text-decoration: underline; text-underline-offset: 2px; text-decoration-color: rgba(20,33,61,0.35); }
/* Floating phone button overlapped the chat launcher on phones and the
   sticky CTA bar already carries Call Now. */
@media (max-width: 768px) { .mobile-phone-btn { display: none !important; } }
/* Gold button label may wrap at ≤360px; never clip the second line */
.btn { white-space: normal; line-height: 1.3; }

/* Emergency page "Do NOT" cards use .faq-glow > .faq-inner with no wrapper */
.faq-glow > .faq-inner { padding: 22px 26px; border-radius: 14px; background: var(--light-bg, #F8F9FB); flex: 1; }
.faq-glow > .faq-inner h3 { font-family: var(--font-serif); font-size: 1.2rem !important; line-height: 1.3; }
