/* ═══════════════════════════════════════════════════════════════════════════
   GENERATED FILE — DO NOT EDIT.
   Source: brand/tokens.json   Regenerate: python3 brand/build_tokens.py
   Any edit here is lost on the next build. Change the token instead.
   ═══════════════════════════════════════════════════════════════════════════ */


:root {
    /* ── Colour ─────────────────────────────────────────────── */
    /* Primary brand mark. Logo, large display text, decorative fills, footer. (3.91:1) */
    /*    FAILS WCAG AA (4.5:1) for normal-size text. NEVER use for body text on white, and */
    /*    never as a background behind small white text. Use brand-blue-ink or brand-blue-deep */
    /*    instead. This single rule is the origin of every contrast defect found in the July */
    /*    2026 audit. */
    --brand-blue: #3D85C6;

    /* Any blue TEXT, link or icon on a light background. (6.23:1) */
    --brand-blue-ink: #2C6496;

    /* Filled/inverted sections that carry white text. (5.78:1) */
    --brand-blue-deep: #2E699E;

    /* Accent. The TAEKWONDO wordmark, primary action buttons. (4.02:1) */
    /*    Marginal. Display text and large UI only, never body copy. */
    --brand-red: #fc0f36;

    /* Highlight and hover states. */
    --brand-gold: #F9A825;

    /* Headings, and dark text over light photo overlays. (13.6:1) */
    --ink-strong: #1f2d3d;

    /* Default body text. (12.6:1) */
    --ink: #333333;

    /* Secondary copy, captions. (5.9:1) */
    --ink-muted: #55677a;

    /* The LIGHTEST text permitted on white. Nothing lighter ships. (4.89:1) */
    --ink-subtle: #68727d;

    /* Default page background. */
    --surface: #FFFFFF;

    /* Alternating section background. */
    --surface-alt: #f7f9fc;

    /* Inset panels. */
    --surface-sunken: #F5F7FA;

    /* Card and input borders. */
    --border: #e2e9f2;

    /* Structural dividers, nav underline. */
    --border-strong: #e6ecf3;

    /* Text on brand-blue-deep. */
    --on-dark: #ffffff;

    /* Secondary text on brand-blue-deep. */
    /*    0.85 is the FLOOR. At 0.6 this measured 2.40:1 and failed AA. */
    --on-dark-muted: rgba(255, 255, 255, 0.85);

    /* WhatsApp actions only. */
    --whatsapp-green: #1c7c47;

    /* Near-black. Branch page headings. */
    --dark: #0a0a1a;

    /* ── Typography ─────────────────────────────────────────── */
    --font-main: 'Outfit', sans-serif;
    --font-kr: 'Noto Sans KR', sans-serif;
    --font-mono: 'SFMono-Regular', ui-monospace, Menlo, monospace;

    --text-xs: 0.85rem;
    --text-sm: 0.92rem;
    --text-base: 1.02rem;
    --text-lg: 1.08rem;
    --text-xl: 1.25rem;
    --text-h2: 1.8rem;
    --text-h1: clamp(2rem, 5vw, 3rem);

    --weight-normal: 400;
    --weight-medium: 600;
    --weight-bold: 700;
    --weight-heavy: 800;
    --weight-black: 900;

    --leading-tight: 1.15;
    --leading-normal: 1.6;
    --leading-loose: 1.75;

    /* ── Space ──────────────────────────────────────────────── */
    --space-1: 4px;
    --space-2: 8px;
    --space-3: 12px;
    --space-4: 16px;
    --space-5: 20px;
    --space-6: 24px;
    --space-8: 32px;
    --space-10: 40px;
    --space-14: 56px;
    --space-16: 64px;
    --space-18: 72px;

    /* ── Radius ─────────────────────────────────────────────── */
    --radius-sm: 10px;
    --radius: 14px;
    --radius-lg: 16px;
    --radius-xl: 20px;
    --radius-pill: 30px;

    /* ── Elevation & motion ─────────────────────────────────── */
    --shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
    --shadow-card: 0 8px 24px rgba(0, 0, 0, 0.09);
    --shadow-lifted: 0 10px 40px rgba(0, 0, 0, 0.1);
    --transition: all 0.3s ease;
    --transition-fast: 0.15s ease;

    /* ── Layout ─────────────────────────────────────────────── */
    --container-max: 1200px;
    --container-pad: 20px;
    --measure: 70ch;

    /* ── Legacy aliases (see tokens.json) ───────────────────── */
    --primary-color: var(--brand-blue);
    --secondary-color: var(--brand-red);
    --accent-color: var(--brand-gold);
    --text-color: var(--ink);
    --light-bg: var(--surface-sunken);
    --white: var(--surface);

}
