
/* ===== SolaimanLipi - Default Bangla font (all browsers) ===== */
@font-face {
    font-family: 'SolaimanLipi';
    src: local('SolaimanLipi'),
         url('../fonts/SolaimanLipi.ttf') format('truetype'),
         url('https://cdn.jsdelivr.net/gh/nitishgupta08/solaimanlipi@master/SolaimanLipi.ttf') format('truetype');
    font-weight: normal;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: 'SutonnyMJ';
    src: local('SutonnyMJ'),
         local('Sutonny MJ'),
         url('../fonts/SutonnyMJ.ttf') format('truetype');
    font-weight: normal;
    font-style: normal;
    font-display: swap;
}


:root {
    --primary: #12355b;
    --primary-dark: #0b2545;
    /* Optimized Bangla stack: best quality first, then common system/local fallbacks */
    --bn-font: 'SolaimanLipi', 'Noto Sans Bengali', 'Hind Siliguri', 'Nikosh', 'Kalpurush', sans-serif;
    --en-font: 'Inter', system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif;
}

/* Base */
body {
    min-height: 100vh;
    display: flex;
    flex-direction: column;
    font-family: var(--en-font);
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    text-rendering: optimizeLegibility;
}

/* ===== BANGLA LANGUAGE MODE ===== */
body.lang-bn {
    font-family: var(--bn-font) !important;
    /* Slightly higher line-height improves Bangla conjunct (যুক্তবর্ণ) readability */
    line-height: 1.65;
}

body.lang-bn,
body.lang-bn input,
body.lang-bn textarea,
body.lang-bn select,
body.lang-bn .form-control,
body.lang-bn .form-select,
body.lang-bn button,
body.lang-bn .btn,
body.lang-bn label,
body.lang-bn h1, body.lang-bn h2, body.lang-bn h3,
body.lang-bn h4, body.lang-bn h5, body.lang-bn h6,
body.lang-bn p, body.lang-bn span, body.lang-bn a,
body.lang-bn li, body.lang-bn td, body.lang-bn th,
body.lang-bn .navbar, body.lang-bn .nav-link,
body.lang-bn .alert, body.lang-bn .badge,
body.lang-bn .form-text, body.lang-bn small {
    font-family: var(--bn-font) !important;
}

/* Form language override (create.php language select) */
body.form-lang-bn input,
body.form-lang-bn textarea,
body.form-lang-bn select,
body.form-lang-bn .form-control,
body.form-lang-bn .form-select,
body.form-lang-bn label,
body.form-lang-bn .form-text,
body.form-lang-bn .cv-form-section,
body.form-lang-bn .cv-form-section h5 {
    font-family: var(--bn-font) !important;
}

body.form-lang-bn .form-control,
body.form-lang-bn .form-select,
body.form-lang-bn textarea {
    font-size: 1.05rem;
    line-height: 1.6;
}

/* ===== ENGLISH LANGUAGE MODE ===== */
body.lang-en {
    font-family: var(--en-font);
    line-height: 1.5;
}

body.form-lang-en input,
body.form-lang-en textarea,
body.form-lang-en select,
body.form-lang-en .form-control,
body.form-lang-en .form-select,
body.form-lang-en label {
    font-family: var(--en-font) !important;
}

main {
    flex: 1;
}

/* Hero */
.hero {
    background: linear-gradient(135deg, #0d6efd 0%, #6610f2 100%);
    color: white;
    border-radius: 1rem;
    padding: 3rem 2rem;
}

.feature-card {
    transition: transform 0.2s, box-shadow 0.2s;
    border: none;
    box-shadow: 0 0.125rem 0.25rem rgba(0,0,0,0.075);
}
.feature-card:hover {
    transform: translateY(-5px);
    box-shadow: 0 0.5rem 1rem rgba(0,0,0,0.15);
}

/* CV Form */
.cv-form-section {
    background: #f8f9fa;
    border-radius: 0.75rem;
    padding: 1.5rem;
    margin-bottom: 1.5rem;
}
.cv-form-section h5 {
    border-bottom: 2px solid var(--primary);
    padding-bottom: 0.5rem;
    margin-bottom: 1rem;
}

/* Preview */
.cv-preview {
    background: white;
    border: 1px solid #dee2e6;
    box-shadow: 0 0.5rem 1rem rgba(0,0,0,0.1);
    padding: 1.5rem 2rem;
    min-height: 800px;
    overflow-x: auto;
}
.cv-preview.bn {
    font-family: var(--bn-font) !important;
    line-height: 1.6;
}
.cv-preview.bn * {
    font-family: inherit !important;
}
.cv-preview.en {
    font-family: var(--en-font) !important;
}

/* Photo preview on form */
#photoPreview {
    border: 0;
    border-radius: 6px;
}

/* Converter */
.converter-box {
    min-height: 250px;
    font-size: 1.15rem;
    line-height: 1.7;
}
.converter-box.bn-font,
#outputText,
#inputText {
    font-family: var(--bn-font) !important;
}

/* Buttons */
.btn-primary {
    background-color: var(--primary);
    border-color: var(--primary);
}
.btn-primary:hover {
    background-color: var(--primary-dark);
    border-color: var(--primary-dark);
}

/* Sticky download bar */
.download-bar {
    position: sticky;
    bottom: 0;
    background: white;
    border-top: 2px solid var(--primary);
    padding: 1rem;
    box-shadow: 0 -0.25rem 0.5rem rgba(0,0,0,0.1);
    z-index: 100;
}

/* AdSense placeholders */
.adsense-top, .adsense-bottom {
    min-height: 50px;
}

/* Responsive */
@media (max-width: 768px) {
    .hero {
        padding: 2rem 1rem;
    }
    .cv-preview {
        padding: 1rem;
    }
    body.lang-bn .form-control,
    body.form-lang-bn .form-control {
        font-size: 1rem;
    }
}

/* ===== Bangla On-Screen Keyboard ===== */
.bn-keyboard-wrap {
    background: #f8f9fa;
    border: 1px solid #dee2e6;
    border-radius: 0.75rem;
    padding: 1rem;
    margin-top: 1rem;
}
.bn-kb-key {
    min-width: 2.4rem;
    min-height: 2.4rem;
    padding: 0.35rem 0.5rem;
    font-family: var(--bn-font) !important;
    font-size: 1.1rem;
    font-weight: 500;
}
.bn-kb-key:hover {
    background: #0d6efd !important;
    color: #fff !important;
    border-color: #0d6efd !important;
}
.bn-kb-row {
    user-select: none;
}
@media (max-width: 576px) {
    .bn-kb-key {
        min-width: 1.9rem;
        min-height: 2.1rem;
        font-size: 0.95rem;
        padding: 0.25rem 0.3rem;
    }
}

/* ===== Bijoy (SutonnyMJ) output rendering ===== */
/* When user has SutonnyMJ installed locally, Bijoy ANSI text becomes readable Bangla */
.bijoy-output,
.converter-box.bijoy-output {
    font-family: 'SutonnyMJ' !important;
    font-size: 1.2rem !important;
    line-height: 1.7 !important;
    letter-spacing: 0.01em;
    background-color: #fffef5 !important; /* subtle warm bg so users notice special mode */
}

/* Fallback notice helper */
.bijoy-font-note {
    font-size: 0.85rem;
    color: #6c757d;
}

/* Ad slots */
.ad-slot {
    overflow: hidden;
    min-height: 50px;
}
.ad-slot-mid {
    margin: 1.25rem 0;
}
.ad-slot-sidebar {
    margin-bottom: 1rem;
}
.ad-slot img {
    max-width: 100%;
    height: auto;
}


/* ===== Print / PDF: always SolaimanLipi for Bangla ===== */
@media print {
    body, body.lang-bn, .bn-font, .cv-print, .cv-print * {
        font-family: 'SolaimanLipi', 'Noto Sans Bengali', sans-serif !important;
    }
    .ad-slot, .navbar, footer, .adsense-top, .no-print {
        display: none !important;
    }
}
.cv-print, .cv-print * {
    font-family: 'SolaimanLipi', 'Noto Sans Bengali', sans-serif !important;
}

/* ===== Premium UI polish ===== */
:root {
    --premium-radius: 1rem;
    --premium-shadow: 0 10px 40px rgba(15, 23, 42, 0.08);
    --premium-shadow-sm: 0 4px 14px rgba(15, 23, 42, 0.06);
}

body {
    background: #f5f7fb;
}
.navbar.bg-primary {
    background: linear-gradient(135deg, #0d6efd 0%, #4f46e5 100%) !important;
    box-shadow: 0 4px 20px rgba(13, 110, 253, 0.25);
}
.hero {
    background: linear-gradient(135deg, #0d6efd 0%, #6366f1 50%, #8b5cf6 100%);
    color: #fff;
    border-radius: var(--premium-radius);
    padding: 2.5rem 1.5rem;
    box-shadow: var(--premium-shadow);
}
.feature-card, .converter-panel, .card.table-card, .stat-card {
    border-radius: var(--premium-radius) !important;
    box-shadow: var(--premium-shadow-sm);
    transition: transform .2s ease, box-shadow .2s ease;
}
.hover-lift:hover, .feature-card:hover {
    transform: translateY(-4px);
    box-shadow: var(--premium-shadow) !important;
}
.converter-box {
    font-size: 1.1rem;
    line-height: 1.75;
    min-height: 280px;
}
.bijoy-output,
.converter-box.bijoy-output {
    font-family: 'SutonnyMJ' !important;
    font-size: 1.25rem !important;
    line-height: 1.85 !important;
    background: #fafffe !important;
    color: #111 !important;
}
.converter-premium .btn-success {
    border-radius: 0.65rem;
    padding: 0.65rem 1rem;
}
.portal-box {
    border-radius: 0.85rem !important;
    background: #fff;
    box-shadow: var(--premium-shadow-sm);
}
.admin-sidebar {
    background: linear-gradient(180deg, #0f172a 0%, #1e293b 100%) !important;
}
.admin-main .page-header h2 {
    letter-spacing: -0.02em;
}
.btn {
    border-radius: 0.55rem;
}
.form-control, .form-select {
    border-radius: 0.55rem;
}
.form-control:focus, .form-select:focus {
    box-shadow: 0 0 0 0.2rem rgba(13, 110, 253, 0.15);
}
footer.bg-dark {
    background: linear-gradient(180deg, #0f172a 0%, #020617 100%) !important;
}
#btnLoadMorePortal {
    border-radius: 2rem;
    padding: 0.6rem 1.75rem;
    font-weight: 600;
}

.converter-modern .converter-panel{border:1px solid #e5e7eb!important;border-radius:18px}.converter-modern .converter-box{border:1px solid #dbe3ee!important}.converter-actions{display:flex;flex-direction:column;gap:10px}.cv-preview{border:0;box-shadow:0 20px 45px rgba(15,23,42,.12);border-radius:16px}.blog-card img{border-radius:16px 16px 0 0}
