/* ── Otodok — design tokens (préfixe ot-*) ───────────────────────────────── */
:root {
    --ot-primary: #4F46E5;       /* indigo */
    --ot-primary-dark: #4338CA;
    --ot-accent: #10B981;        /* émeraude */
    --ot-ink: #0F172A;           /* texte sombre */
    --ot-muted: #64748B;         /* texte secondaire */
    --ot-bg: #F8FAFC;            /* fond clair */
    --ot-surface: #FFFFFF;
    --ot-border: #E2E8F0;
    --ot-radius: 14px;
    --ot-shadow: 0 10px 30px rgba(15, 23, 42, .08);

    /* Surcharge des variables Bootstrap */
    --bs-primary: var(--ot-primary);
    --bs-primary-rgb: 79, 70, 229;
    --bs-body-color: var(--ot-ink);
    --bs-body-font-family: 'Inter', system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif;
}

/* ── Base ─────────────────────────────────────────────────────────────────── */
.ot-body {
    background: var(--ot-bg);
    color: var(--ot-ink);
    font-family: 'Inter', system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif;
}

a { color: var(--ot-primary); }
a:hover { color: var(--ot-primary-dark); }

/* ── Boutons ──────────────────────────────────────────────────────────────── */
.btn-primary {
    --bs-btn-bg: var(--ot-primary);
    --bs-btn-border-color: var(--ot-primary);
    --bs-btn-hover-bg: var(--ot-primary-dark);
    --bs-btn-hover-border-color: var(--ot-primary-dark);
    --bs-btn-active-bg: var(--ot-primary-dark);
    --bs-btn-focus-shadow-rgb: 79, 70, 229;
}
.btn-outline-primary {
    --bs-btn-color: var(--ot-primary);
    --bs-btn-border-color: var(--ot-primary);
    --bs-btn-hover-bg: var(--ot-primary);
    --bs-btn-hover-border-color: var(--ot-primary);
}
.btn-lg { padding: .75rem 1.5rem; font-weight: 600; }
.text-primary { color: var(--ot-primary) !important; }
.bg-primary { background-color: var(--ot-primary) !important; }

/* ── Navbar ───────────────────────────────────────────────────────────────── */
.ot-navbar {
    background: rgba(255, 255, 255, .85);
    backdrop-filter: saturate(180%) blur(10px);
    border-bottom: 1px solid var(--ot-border);
}
.ot-navbar .navbar-brand { font-weight: 800; letter-spacing: -.02em; color: var(--ot-ink); }
.ot-navbar .navbar-brand .ot-logo {
    display: inline-grid; place-items: center;
    width: 32px; height: 32px; border-radius: 9px;
    background: var(--ot-primary); color: #fff; margin-right: .5rem;
}

/* ── Hero ─────────────────────────────────────────────────────────────────── */
.ot-hero {
    background:
        radial-gradient(1200px 500px at 80% -10%, rgba(79, 70, 229, .12), transparent 60%),
        radial-gradient(900px 400px at 0% 0%, rgba(16, 185, 129, .10), transparent 55%);
    padding: 5.5rem 0 4rem;
}
.ot-hero h1 {
    font-weight: 800; letter-spacing: -.03em; line-height: 1.05;
    font-size: clamp(2.2rem, 5vw, 3.6rem);
}
.ot-hero .ot-lead { color: var(--ot-muted); font-size: 1.2rem; max-width: 36rem; }

.ot-badge-soft {
    display: inline-flex; align-items: center; gap: .4rem;
    background: rgba(79, 70, 229, .1); color: var(--ot-primary);
    border-radius: 999px; padding: .35rem .85rem; font-weight: 600; font-size: .85rem;
}

/* Carte de démo dans le hero */
.ot-scan-card {
    background: var(--ot-surface); border: 1px solid var(--ot-border);
    border-radius: var(--ot-radius); box-shadow: var(--ot-shadow); padding: 1.25rem;
}
.ot-scan-row {
    display: flex; align-items: center; gap: .85rem;
    padding: .7rem .85rem; border-radius: 10px; background: var(--ot-bg); margin-bottom: .6rem;
}
.ot-scan-row .ot-ico {
    width: 38px; height: 38px; border-radius: 9px; display: grid; place-items: center;
    color: #fff; flex: 0 0 auto;
}

/* ── Cartes feature ───────────────────────────────────────────────────────── */
.ot-card {
    background: var(--ot-surface); border: 1px solid var(--ot-border);
    border-radius: var(--ot-radius); padding: 1.6rem; height: 100%;
    transition: transform .15s ease, box-shadow .15s ease;
}
.ot-card:hover { transform: translateY(-3px); box-shadow: var(--ot-shadow); }
.ot-card .ot-feature-ico {
    width: 48px; height: 48px; border-radius: 12px; display: grid; place-items: center;
    font-size: 1.4rem; color: #fff; margin-bottom: 1rem;
}

.ot-section { padding: 4.5rem 0; }
.ot-eyebrow { color: var(--ot-primary); font-weight: 700; text-transform: uppercase; letter-spacing: .08em; font-size: .8rem; }

/* ── Pills types de documents ─────────────────────────────────────────────── */
.ot-type-pill {
    display: inline-flex; align-items: center; gap: .45rem;
    border: 1px solid var(--ot-border); background: var(--ot-surface);
    border-radius: 999px; padding: .5rem 1rem; font-weight: 600; color: var(--ot-ink);
}

/* ── CTA ──────────────────────────────────────────────────────────────────── */
.ot-cta {
    background: linear-gradient(135deg, var(--ot-primary), #7C3AED);
    border-radius: 24px; color: #fff; padding: 3rem;
}

/* ── Footer ───────────────────────────────────────────────────────────────── */
.ot-footer { background: var(--ot-ink); color: #CBD5E1; padding: 2.5rem 0; }
.ot-footer a { color: #CBD5E1; text-decoration: none; }
.ot-footer a:hover { color: #fff; }

/* ── Cartes auth (login/register) ─────────────────────────────────────────── */
.ot-auth-wrap { min-height: calc(100vh - 64px); display: grid; place-items: center; padding: 2rem 1rem; }
.ot-auth-card {
    width: 100%; max-width: 440px; background: var(--ot-surface);
    border: 1px solid var(--ot-border); border-radius: var(--ot-radius);
    box-shadow: var(--ot-shadow); padding: 2.25rem;
}
