/* =====================================================================
   Caleb · CUDLC — design tokens (v1.3.0 editorial redesign)

   These tokens define the entire visual language for both the public
   marketing site and the admin panel. They form a single coherent
   system — same palette, same type, same proportions.
   ===================================================================== */

:root {
    /* ---- Brand palette ---- */
    --navy:        #003087;        /* dominant institutional blue */
    --navy-deep:   #001E54;
    --navy-deep-solid: var(--navy-deep);   /* frozen: everything --navy-deep paints that is not text */        /* footer, chrome, deep accents */
    --navy-soft:   #0052CC;        /* hover/active states */
    --navy-tint:   rgba(0, 48, 135, 0.08);

    --cream:       #F5EFE0;        /* major surface (programmes section) */
    --cream-warm:  #EFE6CF;        /* deeper cream for accents */
    --paper:       #FAF6EB;        /* page background — warm off-white */
    --paper-pure:  #FFFFFF;        /* card / panel surface */

    --gold:        #C8960C;        /* heritage gold — accent only */
    --gold-light:  #E6B23C;        /* lighter gold for dark contexts */
    --gold-deep:   #9C7409;        /* gold hover state, darker */
    --gold-soft:   rgba(200, 150, 12, 0.14);

    /* CTA / action colours.
       v1.6.6: replaced off-brand oxblood-red (#7A1F2A) with brand navy.
       Variable names preserved so existing CSS references work unchanged.
       The button reads as navy with a subtle gold lift on hover. */
    --oxblood:     #003087;        /* primary CTA: deep Caleb navy */
    --oxblood-deep:#001E54;        /* CTA hover: even deeper navy */

    /* ---- Ink (text) ---- */
    --ink:         #1F1B16;        /* body text */
    --ink-soft:    #4A463F;        /* secondary text */
    --ink-faint:   #87827A;        /* placeholder / muted */
    --text-on-dark:#F5EFE0;        /* text on navy */

    /* Aliases that the admin layout reads */
    --text:           #1F1B16;
    --text-strong:    #001E54;
    --text-muted:     #4A463F;
    --text-subtle:    #87827A;
    --text-inverse:   #F5EFE0;

    /* ---- Rules / borders ---- */
    --rule:        #C9BFA5;
    --rule-soft:   #E2D9C2;
    --rule-faint:  #EFE9D8;

    --border:         #E2D9C2;
    --border-strong:  #C9BFA5;
    --border-cool:    #E2D9C2;

    /* ---- Surface aliases (admin tokens) ---- */
    --surface:        #FFFFFF;
    --surface-alt:    #FAF6EB;
    --surface-cream:  #F5EFE0;
    --surface-warm:   #EFE6CF;
    --surface-deep:   #001E54;
    --surface-muted:  #F5EFE0;
    --surface-raised: #FFFFFF;
    --surface-blush:  #F5EFE0;
    --surface-mist:   #FAF6EB;

    /* ---- Status palette ---- */
    --ok:          #2D6A4F;        /* deep forest, not bright green */
    --ok-soft:     #D8E8DF;
    --warn:        #B8860B;
    --warn-soft:   #F4E8C9;
    --bad:         #8B1F1F;
    --bad-soft:    #F0D6D6;
    --info:        #1B4D8C;
    --info-soft:   #DCE5F0;

    --success:        #2D6A4F;
    --success-soft:   #D8E8DF;
    --warning:        #B8860B;
    --warning-soft:   #F4E8C9;
    --danger:         #8B1F1F;
    --danger-soft:    #F0D6D6;

    /* ---- Brand alias — public site uses --primary etc. ---- */
    --primary:        #003087;
    --primary-dark:   #001E54;
    --primary-light:  #0052CC;
    --primary-soft:   rgba(0, 48, 135, 0.08);
    --primary-tint:   #DCE5F0;
    --primary-contrast:#FAF6EB;
    --primary-hover:  #001E54;

    --accent:         #C8960C;
    --accent-strong:  #7A5C08;
    --accent-light:   #E6B23C;
    --accent-soft:    rgba(200, 150, 12, 0.14);
    --accent-tint:    #F4EBC8;

    /* Re-expose under the old "ink" names so existing public theme rules still work */
    --ink-strong:     #001E54;

    /* ---- Typography ---- */
    --font-serif:     'Cormorant Garamond', 'Times New Roman', Georgia, serif;
    --font-sans:      'Source Sans 3', 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', system-ui, sans-serif;
    --font-mono:      'JetBrains Mono', 'SF Mono', Consolas, monospace;
    --font-display:   'Cormorant Garamond', 'Times New Roman', Georgia, serif;

    /* Type scale (admin tokens) */
    --text-xs:          0.75rem;    /* 12 */
    --text-sm:          0.875rem;   /* 14 */
    --text-base:        1rem;       /* 16 */
    --text-lg:          1.125rem;   /* 18 */
    --text-xl:          1.25rem;    /* 20 */
    --text-2xl:         1.5rem;     /* 24 */
    --text-3xl:         1.875rem;   /* 30 */
    --text-4xl:         2.25rem;    /* 36 */

    --leading-tight:    1.2;
    --leading-normal:   1.55;
    --leading-relaxed:  1.75;

    /* ---- Spacing ---- */
    --space-1:          0.25rem;
    --space-2:          0.5rem;
    --space-3:          0.75rem;
    --space-4:          1rem;
    --space-5:          1.25rem;
    --space-6:          1.5rem;
    --space-8:          2rem;
    --space-10:         2.5rem;
    --space-12:         3rem;
    --space-16:         4rem;

    /* ---- Radii (sharper, more institutional than before) ---- */
    --radius-xs:        2px;
    --radius-sm:        2px;
    --radius:           4px;
    --radius-lg:        8px;
    --radius-xl:        14px;
    --radius-full:      9999px;

    /* ---- Shadows (subtle — editorial restraint) ---- */
    --shadow-xs:        0 1px 2px rgba(0, 30, 84, 0.04);
    --shadow-sm:        0 2px 4px rgba(0, 30, 84, 0.06);
    --shadow:           0 4px 12px rgba(0, 30, 84, 0.08);
    --shadow-md:        0 8px 20px rgba(0, 30, 84, 0.10);
    --shadow-lg:        0 12px 32px rgba(0, 48, 135, 0.12);
    --shadow-xl:        0 24px 48px rgba(0, 30, 84, 0.18);
    --shadow-glow:      0 0 0 3px rgba(200, 150, 12, 0.20);

    --shadow-card:      0 2px 4px rgba(0, 30, 84, 0.06);
    --shadow-lift:      0 4px 12px rgba(0, 30, 84, 0.10);
    --shadow-deep:      0 12px 32px rgba(0, 48, 135, 0.16);
    --shadow-warm:      0 4px 14px rgba(200, 150, 12, 0.18);

    /* ---- Easings & durations ---- */
    --ease-out:         cubic-bezier(0.16, 1, 0.3, 1);
    --ease-spring:      cubic-bezier(0.34, 1.56, 0.64, 1);
    --ease-smooth:      cubic-bezier(0.4, 0, 0.2, 1);
    --duration-fast:    0.15s;
    --duration:         0.25s;
    --duration-slow:    0.4s;

    /* ---- Layout ---- */
    --sidebar-width:        240px;
    --sidebar-collapsed:    72px;
    --topbar-height:        64px;
    --container-max:        1280px;

    /* ---- Gradients ---- */
    --gradient-brand:   linear-gradient(135deg, #003087 0%, #0052CC 100%);
    --gradient-deep:    linear-gradient(135deg, #001E54 0%, #003087 100%);
    --gradient-gold:    linear-gradient(135deg, #C8960C 0%, #E6B23C 100%);
    --gradient-cream:   linear-gradient(180deg, #F5EFE0 0%, #FAF6EB 100%);
    --gradient-warm:    linear-gradient(180deg, #EFE6CF 0%, #F5EFE0 100%);
    --gradient-blush:   linear-gradient(180deg, #F5EFE0 0%, #FAF6EB 100%);
    --gradient-mist:    linear-gradient(180deg, #FAF6EB 0%, #F5EFE0 100%);

    /* Hero overlay alpha — tunable per slide */
    --hero-overlay-alpha: 0.78;
  --gold-edge: #9C7409;
  --primary-ink: #003087;
  --navy-ink: #003087;
  --oxblood-ink: #003087;
  --danger-ink: #8B1F1F;
  --bad-ink: #8B1F1F;
  --success-ink: #2D6A4F;
  --info-ink: #1B4D8C;
  --paper-ink: #FAF6EB;
  --paper-pure-ink: #FFFFFF;
  --cream-ink: #F5EFE0;
  --cream-warm-ink: #EFE6CF;

  /* literal colours lifted out of the code, unchanged in light mode */
  --lit-07173a: #07173A;
  --lit-0e2a5e: #0E2A5E;
  --lit-6b7280: #6B7280;
  --lit-666666: #666666;
  --lit-57534e: #57534E;
  --lit-64748b: #64748B;
  --lit-92400e: #92400E;
  --lit-dc2626: #DC2626;
  --lit-6c757d: #6C757D;
  --lit-374151: #374151;
  --lit-16a34a: #16A34A;
  --lit-888888: #888888;
  --lit-991b1b: #991B1B;
  --lit-b45309: #B45309;
  --lit-555555: #555555;
  --lit-b91c1c: #B91C1C;
  --lit-1f2937: #1F2937;
  --lit-1a3a5c: #1A3A5C;
  --lit-003087: #003087;
  --lit-111827: #111827;
  --lit-0f766e: #0F766E;
  --lit-065f46: #065F46;
  --lit-0f172a: #0F172A;
  --lit-1d4ed8: #1D4ED8;
  --lit-5d6e85: #5D6E85;
  --lit-15803d: #15803D;
  --lit-0a3d2e: #0A3D2E;
  --lit-78350f: #78350F;
  --lit-777777: #777777;
  --lit-047857: #047857;
  --lit-1e3a8a: #1E3A8A;
  --lit-0b2545: #0B2545;
  --lit-444444: #444444;
  --lit-4b5563: #4B5563;
  --lit-7f1d1d: #7F1D1D;
  --lit-1a1714: #1A1714;
  --lit-475569: #475569;
  --lit-9a3412: #9A3412;
  --lit-c83737: #C83737;
  --lit-222222: #222222;
  --lit-b42318: #B42318;
  --lit-166534: #166534;
  --lit-dc3545: #DC3545;
  --lit-2d7a3e: #2D7A3E;
  --lit-d4483b: #D4483B;
  --lit-5b4be8: #5B4BE8;
  --lit-56607a: #56607A;
  --lit-b3261e: #B3261E;
  --lit-7a8798: #7A8798;
  --lit-111111: #111111;
  --lit-0b1f47: #0B1F47;
  --lit-495057: #495057;
  --lit-1a1a1a: #1A1A1A;
  --lit-7a2018: #7A2018;
  --lit-334155: #334155;
  --lit-152232: #152232;
  --lit-6b7498: #6B7498;
  --lit-78716c: #78716C;
  --lit-0a8a3f: #0A8A3F;
  --lit-212529: #212529;
  --lit-1c1917: #1C1917;
  --lit-0f9d68: #0F9D68;
  --lit-9b2929: #9B2929;
  --lit-1b5e20: #1B5E20;
  --lit-6b5510: #6B5510;
  --lit-8a857e: #8A857E;
  --lit-3a3631: #3A3631;
  --lit-1e40af: #1E40AF;
  --lit-ef4444: #EF4444;
  --lit-7c3aed: #7C3AED;
  --lit-8a5200: #8A5200;
  --lit-a9781a: #A9781A;
  --lit-75879c: #75879C;
  --lit-7a3b06: #7A3B06;
  --lit-7c889e: #7C889E;
  --lit-8a6a12: #8A6A12;
  --lit-22180a: #22180A;
  --lit-1f2a37: #1F2A37;
  --lit-9b1c1c: #9B1C1C;
  --lit-854d0e: #854D0E;
  --lit-556666: #556666;
  --lit-9b2c24: #9B2C24;
  --lit-f85149: #F85149;
  --lit-333333: #333333;
  --lit-8a7f6d: #8A7F6D;
  --lit-1f1b16: #1F1B16;
  --lit-001e54: #001E54;
  --lit-87827a: #87827A;
  --lit-3a2f12: #3A2F12;
  --lit-4f46e5: #4F46E5;
  --lit-2a2722: #2A2722;
  --lit-1a2035: #1A2035;
  --lit-92740e: #92740E;
  --lit-3c4a5c: #3C4A5C;
  --lit-3b5a8a: #3B5A8A;
  --lit-a16207: #A16207;
  --lit-7c2d12: #7C2D12;
  --lit-0b3d2e: #0B3D2E;
  --lit-2b3a4c: #2B3A4C;
  --lit-6d28d9: #6D28D9;
  --lit-8a5a00: #8A5A00;
  --lit-000000: #000000;
  --lit-08222b: #08222B;
  --lit-0093a8: #0093A8;
  --lit-33555f: #33555F;
  --lit-14212f: #14212F;
  --lit-14532d: #14532D;
  --lit-064e3b: #064E3B;
  --lit-0b7a55: #0B7A55;
  --lit-3a2a05: #3A2A05;
  --lit-a53c3c: #A53C3C;
  --lit-9a7b2e: #9A7B2E;
  --lit-0e7490: #0E7490;
  --lit-633806: #633806;
  --lit-1a2240: #1A2240;
  --lit-55606f: #55606F;
  --lit-44506a: #44506A;
  --lit-5b21b6: #5B21B6;
  --lit-155724: #155724;
  --lit-856404: #856404;
  --lit-432874: #432874;
  --lit-721c24: #721C24;
  --lit-343a40: #343A40;
  --lit-1565c0: #1565C0;
  --topbar-bg: rgba(250, 246, 235, 0.95);
}

/* caleb: officer profile prose — added by prose-fix.sh */
/* The officer pages are WordPress bodies printed raw. Some of their
   paragraphs carried text-align and some did not, so the page could
   never be consistent. Those inline styles are gone; this decides it
   once, and floats the portrait so the text fills the width beside it
   instead of leaving the column empty. */
.article-prose { hyphens: auto; }
.article-prose p { text-align: justify; }
.article-prose h3 + img,
.article-prose h2 + img,
.article-prose > img:first-of-type {
    float: right;
    width: min(250px, 36%);
    height: auto;
    margin: .35rem 0 1.4rem 1.9rem;
    border-radius: 10px;
    box-shadow: 0 8px 28px rgba(12, 26, 48, .18);
}
.article-prose::after { content: ""; display: block; clear: both; }
@media (max-width: 720px) {
    .article-prose h3 + img,
    .article-prose h2 + img,
    .article-prose > img:first-of-type {
        float: none; display: block; width: 100%; max-width: 250px;
        margin: 0 auto 1.4rem;
    }
    /* justified text in a narrow column opens rivers of white space */
    .article-prose p { text-align: left; }
}

/* darktokens0909 : begin — the palette the controllers were already
   using, given names. Each light value is the literal it replaces,
   copied exactly, so substituting a token cannot move light mode. */
:root, body.theme-caleb-cudlc {
    /* amber */
    --fill-amber-89: #FEF3C7;
    --fill-amber-34: #9A3412;
    --fill-amber-94: #FEF7E0;
    --fill-amber-94a: #FDF2E2;
    --fill-amber-92: #FAEEDA;
    --fill-amber-90: #FFF3CD;
    --ink-amber-31: #92400E;
    --ink-amber-29: #854D0E;
    --ink-amber-94: #FFF6E0;
    --ink-amber-93: #FBF3DF;
    --ink-amber-25: #7A3B06;
    --ink-amber-26: #78350F;
    --ink-amber-14: #451A03;
    --ink-amber-78: #D0CCBF;
    --ink-amber-21: #633806;
    --ink-amber-31a: #8A5A16;
    --ink-amber-27: #856404;
    /* blue */
    --fill-blue-93: #DBEAFE;
    --fill-blue-48: #1D4ED8;
    --ink-blue-46: #6B7280;
    --ink-blue-90: #DBE2F0;
    --ink-blue-40: #1E40AF;
    --ink-blue-48: #1D4ED8;
    --ink-blue-92: #DDD6FE;
    --ink-blue-65: #94A3B8;
    --ink-blue-65a: #9CA3AF;
    --ink-blue-94: #E0E7FF;
    --ink-blue-47: #64748B;
    --ink-blue-67: #8FA6C8;
    --ink-blue-85: #C9D4E8;
    --ink-blue-84: #CBD5E1;
    --ink-blue-71: #ADB5BD;
    --ink-blue-67a: #58A6FF;
    --ink-blue-58: #8B949E;
    /* gold */
    --fill-gold-50: #F59E0B;
    --fill-gold-42: #B8941F;
    --fill-gold-53: #E0A82E;
    --fill-gold-37: #B45309;
    --fill-gold-44: #D97706;
    --fill-gold-42a: #C8960C;
    --fill-gold-57: #D4AF4F;
    --fill-gold-46: #D9A213;
    --fill-gold-47: #C9A227;
    --ink-gold-57: #D4AF4F;
    --ink-gold-47: #C9A227;
    --ink-gold-42: #B8941F;
    --ink-gold-61: #CBB26B;
    --ink-gold-44: #D97706;
    --ink-gold-37: #B45309;
    --ink-gold-62: #F0C24B;
    --ink-gold-42a: #C8960C;
    --ink-gold-69: #FBD163;
    /* green */
    --fill-green-93: #DCFCE7;
    --fill-green-49: #25D366;
    --fill-green-20: #065F46;
    --fill-green-36: #16A34A;
    --fill-green-90: #D1FAE5;
    --fill-green-29: #15803D;
    --fill-green-30: #059669;
    --fill-green-24: #047857;
    --fill-green-29a: #0A8A3F;
    --ink-green-20: #065F46;
    --ink-green-24: #166534;
    --ink-green-73: #86EFAC;
    --ink-green-29: #0A8A3F;
    --ink-green-41: #28A745;
    --ink-green-49: #3FB950;
    /* grey */
    --fill-grey-00: #000000;
    --fill-grey-87: #DDDDDD;
    --fill-grey-10: #1A1A1A;
    --ink-grey-64: #A8A29E;
    --ink-grey-80: #CCCCCC;
    --ink-grey-40: #666666;
    --ink-grey-67: #AAAAAA;
    --ink-grey-32: #57534E;
    --ink-grey-13: #222222;
    --ink-grey-84: #D1D5DB;
    --ink-grey-60: #999999;
    --ink-grey-88: #E0E0E0;
    /* navy */
    --fill-navy-21: #0E2A5E;
    --fill-navy-13: #07173A;
    --fill-navy-10: #0D1526;
    --fill-navy-26: #003087;
    --fill-navy-15: #21262D;
    --fill-navy-23: #1A3A5C;
    --ink-navy-11: #111827;
    --ink-navy-33: #1E3A8A;
    --ink-navy-27: #374151;
    --ink-navy-21: #0E2A5E;
    --ink-navy-13: #07173A;
    --ink-navy-34: #4B5563;
    --ink-navy-27a: #0C447C;
    --ink-navy-23: #1A3A5C;
    --ink-navy-31: #495057;
    --ink-navy-11a: #0F172A;
    /* paper */
    --fill-paper-96: #F3F4F6;
    --fill-paper-97: #EFF6FF;
    --fill-paper-96a: #ECFDF5;
    --fill-paper-95: #F7F5EF;
    --fill-paper-95a: #F8F4ED;
    --fill-paper-98: #F8FAFC;
    --fill-paper-95b: #FEFCE8;
    --fill-paper-97a: #F0FDF4;
    --fill-paper-96b: #FFFBEB;
    --fill-paper-97b: #FEF2F2;
    --fill-paper-98a: #F9FAFB;
    --fill-paper-98b: #FAFAFA;
    --fill-paper-98c: #F6F8FC;
    --fill-paper-96c: #F1F5F9;
    --fill-paper-97c: #EEF2FF;
    --fill-paper-94: #E6F1FB;
    --fill-paper-92: #E0F5F0;
    --fill-paper-96d: #ECFDF3;
    --fill-paper-95c: #EEF0F6;
    --fill-paper-98d: #FAFAF8;
    --fill-paper-94a: #FBF2E2;
    --fill-paper-95d: #EAF1FB;
    --fill-paper-96e: #FFF7ED;
    --fill-paper-95e: #E8F4FD;
    --fill-paper-96f: #F0F4F8;
    --fill-paper-95f: #FFF8E7;
    --ink-paper-95: #FEF9E5;
    --ink-paper-93: #E6EDF3;
    /* purple */
    --fill-purple-58: #7C3AED;
    /* red */
    --fill-red-94: #FEE2E2;
    --fill-red-51: #DC2626;
    --fill-red-35: #991B1B;
    --fill-red-91: #F8D7DA;
    --ink-red-35: #991B1B;
    --ink-red-51: #DC2626;
    --ink-red-31: #7F1D1D;
    --ink-red-82: #FCA5A5;
    --ink-red-42: #B91C1C;
    --ink-red-41: #B3261E;
    --ink-red-28: #721C24;
    /* teal */
    --fill-teal-22: #0A6563;
    --ink-teal-18: #065450;
    /* yellow */
    --fill-yellow-88: #FEF9C3;
    /* semantic aliases */
    --tint-paper: var(--fill-paper-96b);
    --on-tint-paper: var(--ink-paper-95);
    --on-tint-accent: var(--ink-gold-57);
    --tint-warning: var(--fill-amber-89);
    --on-tint-warning: var(--ink-amber-31);
    --tint-info: var(--fill-blue-93);
    --on-tint-info: var(--ink-blue-58);
    --on-tint-brand: var(--ink-navy-13);
    --tint-success: var(--fill-green-90);
    --on-tint-success: var(--ink-green-20);
    --tint-neutral: var(--fill-grey-87);
    --on-tint-neutral: var(--ink-grey-64);
    --tint-danger: var(--fill-red-94);
    --on-tint-danger: var(--ink-red-35);
    --on-tint-info-soft: var(--ink-teal-18);
    --tint-warning-soft: var(--fill-yellow-88);
}
/* darktokens0909 : end */

/* darkalpha0909 : begin — the translucent ones. Light values are the
   literals they replace, alpha and all. */
:root, body.theme-caleb-cudlc {
    /* amber */
    --ink-amber-87a50: rgba(239, 230, 207, 0.5);
    /* gold */
    --ink-gold-47a80: rgba(201, 162, 39, 0.8);
    --ink-gold-57a70: rgba(212, 175, 79, 0.7);
    --ink-gold-47a70: rgba(201, 162, 39, 0.7);
    /* paper */
    --fill-paper-100a95: rgba(255, 255, 255, 0.95);
    --fill-paper-95a95: rgba(250, 246, 235, 0.95);
    --fill-paper-100a70: rgba(255, 255, 255, 0.7);
}
/* darkalpha0909 : end */
