/* ── Variables ─────────────────────────────────────────────────── */
:root {
    --clr-primary:      #1e3a5f;
    --clr-primary-mid:  #25497a;
    --clr-primary-lite: #2e5f9e;
    --clr-gold:         #c9a84c;
    --clr-gold-dark:    #a8872b;
    --clr-gold-light:   #f0d88a;
}

/* ── Base ──────────────────────────────────────────────────────── */
body {
    font-family: 'Segoe UI', system-ui, -apple-system, sans-serif;
    background: #f4f6f9;
    display: flex;
    flex-direction: column;
    min-height: 100vh;
}

main { flex: 1; }

/* ── Navbar ────────────────────────────────────────────────────── */
.bg-primary-dark {
    background-color: var(--clr-primary) !important;
}

.navbar-brand { font-size: 1.25rem; letter-spacing: .02em; }

/* ── Buttons ───────────────────────────────────────────────────── */
.btn-primary {
    background-color: var(--clr-primary-lite);
    border-color:     var(--clr-primary-lite);
}
.btn-primary:hover, .btn-primary:focus {
    background-color: var(--clr-primary-mid);
    border-color:     var(--clr-primary-mid);
}

.btn-gold {
    background-color: var(--clr-gold);
    border-color:     var(--clr-gold);
    color:            #1a1a1a;
    font-weight:      600;
}
.btn-gold:hover, .btn-gold:focus {
    background-color: var(--clr-gold-dark);
    border-color:     var(--clr-gold-dark);
    color:            #fff;
}

/* ── Hero ──────────────────────────────────────────────────────── */
.hero-section {
    background: linear-gradient(135deg, var(--clr-primary) 0%, var(--clr-primary-lite) 100%);
    min-height: 420px;
    display: flex;
    align-items: center;
}
.text-white-75  { color: rgba(255,255,255,.75) !important; }
.text-gold      { color: var(--clr-gold) !important; }
.bg-gold        { background-color: var(--clr-gold) !important; }

/* ── Feature cards ─────────────────────────────────────────────── */
.feature-card { border-radius: 12px; transition: transform .2s, box-shadow .2s; }
.feature-card:hover { transform: translateY(-4px); box-shadow: 0 .75rem 1.5rem rgba(0,0,0,.1) !important; }
.feature-icon { font-size: 2.5rem; display: block; }

/* ── Steps ─────────────────────────────────────────────────────── */
.step-number {
    width: 56px; height: 56px; border-radius: 50%;
    background: var(--clr-primary-lite);
    color: #fff; font-size: 1.5rem; font-weight: 700;
    display: inline-flex; align-items: center; justify-content: center;
}

/* ── CTA section ───────────────────────────────────────────────── */
.cta-section {
    background: linear-gradient(135deg, var(--clr-primary-mid) 0%, var(--clr-primary) 100%);
}

/* ── Upload zone ───────────────────────────────────────────────── */
.upload-zone {
    border: 2px dashed #b0bec5;
    border-radius: 12px;
    padding: 2.5rem;
    text-align: center;
    cursor: pointer;
    transition: border-color .2s, background .2s;
    background: #fafbfc;
}
.upload-zone:hover, .upload-zone.drag-over {
    border-color: var(--clr-primary-lite);
    background:   rgba(46,95,158,.04);
}
.upload-icon { font-size: 2.5rem; color: var(--clr-primary-lite); display: block; margin-bottom: .5rem; }

/* ── Certificate ───────────────────────────────────────────────── */
.certificate {
    background: #fff;
    border: 7px solid var(--clr-gold);
    border-radius: 4px;
    padding: 2.5rem;
    position: relative;
    font-family: Georgia, 'Times New Roman', serif;
    box-shadow: 0 4px 32px rgba(0,0,0,.12);
}
.certificate::before {
    content: '';
    position: absolute;
    inset: 10px;
    border: 1.5px solid var(--clr-gold-light);
    pointer-events: none;
    border-radius: 2px;
}

.certificate-header {
    text-align: center;
    border-bottom: 2px solid var(--clr-gold-light);
    padding-bottom: 1.25rem;
    margin-bottom: 1.5rem;
}

.cert-seal {
    width: 68px; height: 68px; border-radius: 50%;
    background: var(--clr-primary);
    color: var(--clr-gold);
    display: flex; align-items: center; justify-content: center;
    font-size: 2.2rem;
    flex-shrink: 0;
}

.certificate-title {
    font-size: 1.5rem; font-weight: 700; letter-spacing: .12em;
    color: var(--clr-primary); text-transform: uppercase;
}
.certificate-subtitle {
    font-size: .78rem; letter-spacing: .1em; color: #888; text-transform: uppercase;
}
.cert-intro {
    font-size: .88rem; color: #555; max-width: 560px; margin: .75rem auto 0;
    font-style: italic;
}

.cert-table { border-collapse: collapse; }
.cert-table th, .cert-table td {
    padding: .4rem .6rem;
    vertical-align: top;
    font-size: .88rem;
}
.cert-table th {
    width: 140px; color: #666; font-weight: 600;
    font-family: 'Segoe UI', sans-serif;
    white-space: nowrap;
}
.cert-table td { color: #222; }
.cert-table tr:not(:last-child) td,
.cert-table tr:not(:last-child) th { border-bottom: 1px solid #f0e8cc; }

.cert-signature-box {
    background: #fafaf7;
    border: 1px solid #e8e0c0;
    border-radius: 4px;
    padding: .75rem 1rem;
}

.cert-section-label {
    font-size: .7rem; font-weight: 700; letter-spacing: .1em;
    text-transform: uppercase; color: var(--clr-gold-dark);
    margin-bottom: .25rem;
}

.cert-qr {
    display: inline-block;
    border: 3px solid var(--clr-gold-light);
    border-radius: 6px;
    padding: 8px;
    background: #fff;
}
.cert-qr img { width: 160px; height: 160px; display: block; }

.certificate-footer {
    border-top: 2px solid var(--clr-gold-light);
    padding-top: .75rem;
    margin-top: 1.5rem;
    display: flex;
    justify-content: space-between;
    font-size: .72rem;
    color: #888;
    font-family: 'Segoe UI', sans-serif;
}

/* ── Verify table ──────────────────────────────────────────────── */
.cert-table th { font-family: 'Segoe UI', sans-serif; }

/* ── Footer ────────────────────────────────────────────────────── */
.footer { background-color: var(--clr-primary) !important; }

/* ── Document viewer ───────────────────────────────────────────── */
.doc-viewer-wrap {
    position: relative;
    background: #f0f0f0;
    border-radius: 8px;
    overflow: hidden;
    border: 1px solid #dee2e6;
    box-shadow: 0 2px 8px rgba(0,0,0,.06);
}

.doc-viewer-iframe {
    width: 100%;
    height: 700px;
    border: none;
    display: block;
}

.doc-viewer-img-wrap img {
    display: block;
    max-height: 700px;
    object-fit: contain;
    background: #fff;
}

.notary-stamp-overlay {
    position: absolute;
    top: 14px;
    right: 14px;
    background: var(--clr-primary);
    color: var(--clr-gold);
    border: 2px solid var(--clr-gold);
    border-radius: 4px;
    padding: 7px 14px;
    font-weight: 700;
    font-size: .78rem;
    z-index: 10;
    pointer-events: none;
    text-align: center;
    line-height: 1.6;
    box-shadow: 0 2px 12px rgba(0,0,0,.35);
    letter-spacing: .04em;
}

.notary-stamp-overlay .stamp-title {
    display: block;
    font-size: .88rem;
    border-bottom: 1px solid var(--clr-gold);
    padding-bottom: 3px;
    margin-bottom: 3px;
    letter-spacing: .14em;
}

/* ── Print ─────────────────────────────────────────────────────── */
@media print {
    body { background: white; }
    .navbar, .footer, .d-print-none { display: none !important; }
    .certificate { border: 6px solid var(--clr-gold); box-shadow: none; }
    .container { max-width: 100% !important; }
}
