/* ==========================================================================
 ITTI PATNA - MASTER STYLESHEET
 Design System, Standardized Typography Scale & Security/Mobile System
 ========================================================================== */
@import url('https://fonts.googleapis.com/css2?family=Outfit:wght@400;500;600;700;800;900&family=Plus+Jakarta+Sans:wght@400;500;600;700&display=swap');

/* ---- COLOR & DESIGN TOKENS ---- */
:root {
 --primary: #0A2540;
 --primary2: #0F3460;
 --primary-color: #0A2540;
 --primary-light: #0F3460;
 --secondary-color:#0F3460;
 --accent: #E8820C;
 --accent2: #F59E0B;
 --accent-color: #E8820C;
 --accent-glow: rgba(232,130,12,.35);
 --bg: #F1F5F9;
 --bg-light: #F1F5F9;
 --text: #1E293B;
 --text-dark: #1E293B;
 --muted: #64748B;
 --text-muted: #64748B;
 --white: #ffffff;
 --green: #22C55E;

 /* ---- UNIFIED TYPOGRAPHY SCALE ---- */
 --font-h: 'Outfit', sans-serif;
 --font-b: 'Plus Jakarta Sans', sans-serif;
 --font-heading: 'Outfit', sans-serif;
 --font-body: 'Plus Jakarta Sans', sans-serif;

 /* Fixed Desktop Sizes */
 --fs-h1: 2.5rem; /* 40px */
 --fs-h2: 2rem; /* 32px */
 --fs-h3: 1.25rem; /* 20px */
 --fs-h4: 1.1rem; /* 17.6px */
 --fs-h5: 1rem; /* 16px */
 --fs-h6: 0.9rem; /* 14.4px */
 --fs-badge: 0.8rem; /* 12.8px */
 --fs-body: 0.95rem; /* 15.2px */
 --fs-small: 0.8rem; /* 12.8px */

 /* Shadows */
 --shadow-sm: 0 4px 6px -1px rgba(0,0,0,.05);
 --shadow-md: 0 10px 15px -3px rgba(0,0,0,.08);
 --shadow-lg: 0 20px 25px -5px rgba(0,0,0,.12);
}

/* ---- GLOBAL RESET & PREVENT HORIZONTAL OVERFLOW ---- */
*, *::before, *::after {
 box-sizing: border-box;
}

html {
 width: 100%;
 max-width: 100vw;
 overflow-x: hidden !important;
 scroll-behavior: smooth;
}

body {
 width: 100%;
 max-width: 100vw;
 overflow-x: hidden !important;
 position: relative;
 margin: 0;
 padding: 0;
 font-family: var(--font-b);
 font-size: var(--fs-body);
 line-height: 1.7;
 color: var(--text);
 background-color: #ffffff;
 -webkit-font-smoothing: antialiased;
}

/* OVERFLOW PROTECTION WITHOUT BREAKING BOOTSTRAP GRID */
html, body {
 width: 100%;
 max-width: 100%;
 overflow-x: hidden !important;
}

img, video, iframe {
 max-width: 100%;
 height: auto;
}

/* ---- NAVBAR DROPDOWN ARROW ---- */
.main-navbar .dropdown-toggle::after {
 display: none !important;
}
.main-navbar .nav-link .fa-caret-down {
 font-size: 0.8rem;
 color: var(--accent) !important;
 transition: transform 0.25s ease;
 display: inline-block;
 vertical-align: middle;
}
.main-navbar .dropdown.show .nav-link .fa-caret-down,
.main-navbar .dropdown:hover .nav-link .fa-caret-down {
 transform: rotate(180deg);
}

/* ---- UNIFIED HEADINGS SYSTEM ---- */
h1, .hero-title, .page-hero-title {
 font-family: var(--font-h);
 font-size: var(--fs-h1);
 font-weight: 800;
 color: #ffffff;
 line-height: 1.2;
 letter-spacing: -0.5px;
 margin-bottom: 0.75rem;
}

h2, .section-title {
 font-family: var(--font-h);
 font-size: var(--fs-h2);
 font-weight: 800;
 color: var(--primary);
 line-height: 1.25;
 letter-spacing: -0.5px;
 margin-bottom: 0.5rem;
}

h3, .stat-card h3 {
 font-family: var(--font-h);
 font-size: var(--fs-h2);
 font-weight: 900;
 margin-bottom: 0.4rem;
}

h4, .course-card h4, .cc-body h4 {
 font-family: var(--font-h);
 font-size: var(--fs-h3);
 font-weight: 700;
 color: var(--primary);
 margin-bottom: 0.5rem;
}

h5, .info-card h5, .sidebar-card h5, .industry-card h5 {
 font-family: var(--font-h);
 font-size: var(--fs-h3);
 font-weight: 700;
 color: var(--primary);
 margin-bottom: 0.5rem;
}

h6, .qab-text h6, .recruiter-card h6, .review-author h6 {
 font-family: var(--font-h);
 font-size: var(--fs-h5);
 font-weight: 700;
 color: var(--primary);
 margin: 0;
}

p, .section-desc, .hero-desc, .footer-desc, .cc-body p, .review-card p {
 font-family: var(--font-b);
 font-size: var(--fs-body);
 color: var(--muted);
 line-height: 1.7;
}

small, .rc-tag, .cc-duration, .hero-stat-item span, .breadcrumb-item {
 font-size: var(--fs-small);
}

.section-badge, .notice-label, .hero-badge, .cc-tag {
 font-size: var(--fs-badge);
 font-weight: 700;
 text-transform: uppercase;
 letter-spacing: 1.5px;
}

/* ---- MOBILE TYPOGRAPHY & OVERFLOW OVERRIDES ---- */
@media (max-width: 991px) {
 :root {
 --fs-h1: 2rem; /* 32px */
 --fs-h2: 1.65rem; /* 26.4px */
 --fs-h3: 1.15rem; /* 18.4px */
 --fs-body: 0.92rem; /* 14.7px */
 }
}

@media (max-width: 575px) {
 :root {
 --fs-h1: 1.65rem; /* 26.4px */
 --fs-h2: 1.4rem; /* 22.4px */
 --fs-h3: 1.05rem; /* 16.8px */
 --fs-body: 0.88rem; /* 14px */
 --fs-small: 0.75rem; /* 12px */
 }

 h1, .hero-title, .page-hero-title {
 font-size: 1.65rem !important;
 line-height: 1.25 !important;
 }
 h2, .section-title {
 font-size: 1.4rem !important;
 }
 h3, h4, h5, .info-card h5, .course-card h4 {
 font-size: 1.05rem !important;
 }
 p, .section-desc, .footer-desc {
 font-size: 0.88rem !important;
 }
}
