/* =====================================================================
   theme.css  –  Visual refresh + responsive layer (frontend)
   Loaded LAST in frontend/_app.blade.php. Pure presentation: no markup
   logic / data / JS behaviour is changed by this file.
   Breakpoints follow Bootstrap 3:  xs <768 | sm 768-991 | md 992-1199 | lg 1200+
   ===================================================================== */

/* ---------- 1. Design tokens ---------- */
:root {
	--c-primary:   #0b4a8b;
	--c-primary-d: #072f5a;
	--c-primary-dd:#051f3b;
	--c-accent:    #1b9cdb;
	--c-accent-l:  #e6f4fc;
	--c-gold:      #f2b134;
	--c-bg:        #f2f5f9;
	--c-card:      #ffffff;
	--c-text:      #27323f;
	--c-muted:     #6b7a8c;
	--c-line:      #e3e9f0;
	--radius:      10px;
	--radius-sm:   6px;
	--shadow-sm:   0 1px 3px rgba(11, 40, 77, .08);
	--shadow:      0 4px 18px rgba(11, 40, 77, .09);
	--shadow-lg:   0 10px 30px rgba(11, 40, 77, .16);
	--font: 'Hind Siliguri', 'Open Sans', 'Segoe UI', Tahoma, Arial, sans-serif;
}

/* ---------- 2. Base ---------- */
*, *:before, *:after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
html, body { background: var(--c-bg) !important; }
body {
	font-family: var(--font);
	font-size: 15px;
	line-height: 1.6;
	color: var(--c-text);
	/* sticky footer without absolute positioning */
	display: flex;
	flex-direction: column;
	min-height: 100vh;
	overflow-x: hidden;
}
.wrapper { flex: 1 0 auto; min-height: 0 !important; width: 100%; }
.wrapper:after { display: none !important; content: none !important; }
h1, h2, h3, h4, h5, h6 { font-family: var(--font); font-weight: 600; color: var(--c-primary-d); line-height: 1.3; }
p { color: var(--c-text); }
a { color: var(--c-primary); transition: color .2s ease, background-color .2s ease, box-shadow .2s ease, transform .2s ease; }
a:hover, a:focus { color: var(--c-accent); }
img { max-width: 100%; }
img.img-responsive, .img-responsive { height: auto; }
:focus-visible { outline: 2px solid var(--c-accent); outline-offset: 2px; }

/* ---------- 3. Buttons / form controls ---------- */
.btn { border-radius: var(--radius-sm) !important; font-weight: 600; transition: all .2s ease; }
.btn-theme, .btn-primary { background: var(--c-primary); border-color: var(--c-primary); color: #fff; }
.btn-theme:hover, .btn-primary:hover { background: var(--c-primary-d); border-color: var(--c-primary-d); color: #fff; }
.btn .fa { color: inherit; }
.form-control {
	border-radius: var(--radius-sm);
	border: 1px solid #cfd8e3;
	box-shadow: none;
	height: 40px;
	font-family: var(--font);
}
textarea.form-control { height: auto; }
.form-control:focus { border-color: var(--c-accent); box-shadow: 0 0 0 3px rgba(27, 156, 219, .18); }
select.form-control { padding-right: 8px; }

/* ---------- 4. Header ---------- */
.header {
	background: linear-gradient(135deg, var(--c-primary-dd) 0%, var(--c-primary-d) 45%, var(--c-primary) 100%) !important;
	position: relative;
}
.header .top-bar { border-top: 0 !important; height: 4px; background: linear-gradient(90deg, var(--c-gold), var(--c-accent)); padding: 0; }
.header .header-main {
	padding: 18px 15px;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 18px;
}
.header .header-main:before, .header .header-main:after { display: none; }
.header h1.logo,
.header .info { float: none !important; width: auto; padding-left: 0; padding-right: 0; }
.header h1.logo {
	margin: 0;
	padding: 0 !important;
	background: none !important;
	flex: 1 1 auto;
	min-width: 0;
}
.header h1.logo > a {
	display: flex;
	align-items: center;
	gap: 14px;
	color: #fff;
}
.logo img {
	float: none !important;
	margin: 0 !important;
	height: 72px;
	width: auto;
	max-width: 110px;
	object-fit: contain;
	background: rgba(255, 255, 255, .95);
	padding: 4px;
	border-radius: 50%;
	box-shadow: 0 2px 8px rgba(0, 0, 0, .25);
	flex: 0 0 auto;
}
.logo h3 {
	margin: 0 !important;
	padding: 0 !important;
	line-height: 1.25 !important;
	font-size: 26px;
	font-weight: 700 !important;
	color: #fff !important;
	letter-spacing: .2px;
	text-shadow: 0 1px 2px rgba(0, 0, 0, .3);
}
.header .info {
	flex: 0 1 auto;
	display: flex;
	flex-direction: column;
	align-items: flex-end;
	gap: 10px;
}
.header .info br, .header .panel-link { display: none; }
.header .menu-top {
	float: none !important;
	display: flex !important;
	flex-wrap: wrap;
	gap: 8px;
	justify-content: flex-end;
	margin: 0 !important;
	padding: 0;
}
/* force visible (original override kept: hidden-xs was force-shown) */
.header-main .hidden-xs { display: flex !important; }
.header .menu-top li.header-btn,
.header .menu-top li.nav-item.btn {
	float: none;
	margin: 0 !important;
	padding: 0;
	background: rgba(255, 255, 255, .12) !important;
	border: 1px solid rgba(255, 255, 255, .35);
	border-radius: 999px !important;
	font-size: 13px;
	line-height: 1;
	transition: all .2s ease;
}
.header .menu-top li.nav-item.btn:hover { background: var(--c-gold) !important; border-color: var(--c-gold); }
.header .menu-top li.nav-item.btn a {
	display: block;
	padding: 9px 16px;
	color: #fff;
	font-size: 13px;
	font-weight: 600;
	text-decoration: none;
	white-space: nowrap;
}
.header .menu-top li.nav-item.btn:hover a { color: var(--c-primary-dd); text-decoration: none; }
.header .contact-us {
	float: none !important;
	margin: 0 !important;
	display: flex;
	flex-wrap: wrap;
	justify-content: flex-end;
	gap: 4px 22px;
	color: #dbe7f5;
	font-size: 14px;
}
.header .contact-us p { float: none !important; margin: 0 !important; color: #dbe7f5; }
.header .contact-us .fa { color: var(--c-gold); margin-right: 6px; }
.header .contact-us a { color: #fff; }
.header .contact-us a:hover { color: var(--c-gold); }

/* ---------- 5. Main navigation ---------- */
.main-nav, nav.main-nav {
	background: var(--c-primary-d) !important;
	margin-bottom: 0 !important;
	position: sticky;
	top: 0;
	z-index: 1000;
	box-shadow: 0 3px 10px rgba(5, 31, 59, .25);
	width: 100%;
	min-height: 0;
}
/* scroll-class added by existing JS: keep nav in flow (sticky does the job) */
.goToTop { position: sticky !important; height: auto !important; z-index: 1000; }
.main-nav .navbar-nav { margin: 0; }
.main-nav .navbar-collapse { padding: 0; border: 0; box-shadow: none; }
.navbar-nav > li > a, .main-nav .nav .nav-item a { padding-top: 14px; padding-bottom: 14px; }
.main-nav .nav .nav-item > a {
	color: #e6eef8;
	font-family: var(--font);
	font-size: 15px;
	font-weight: 500;
	padding-left: 16px;
	padding-right: 16px;
	position: relative;
}
.main-nav .nav .nav-item > a:before { display: none !important; }
.main-nav .nav .nav-item > a:hover,
.main-nav .nav .nav-item.open > a,
.main-nav .nav .nav-item.open > a:focus { background: rgba(255, 255, 255, .1) !important; color: #fff !important; }
.main-nav .nav .nav-item.active > a,
.main-nav .nav .nav-item.active > a:hover {
	background: transparent !important;
	color: #fff !important;
	box-shadow: inset 0 -3px 0 var(--c-gold);
}
.main-nav .nav .nav-item .dropdown-menu {
	border: 0;
	border-radius: 0 0 var(--radius-sm) var(--radius-sm);
	background: #fff;
	box-shadow: var(--shadow-lg);
	padding: 6px 0;
	margin-top: 0;
	min-width: 220px;
}
.main-nav .nav .nav-item .dropdown-menu a {
	color: var(--c-text) !important;
	background: transparent !important;
	padding: 9px 18px;
	font-size: 14px;
	font-weight: 500;
	white-space: normal;
}
.main-nav .nav .nav-item .dropdown-menu a:hover { background: var(--c-accent-l) !important; color: var(--c-primary) !important; }
.main-nav .nav .nav-item .dropdown-menu li.active > a { background: var(--c-accent-l) !important; color: var(--c-primary) !important; }

/* ---------- 6. Content shell ---------- */
.content.container { padding-top: 22px; padding-bottom: 36px; }
.cols-wrapper > [class*="col-"] { margin-bottom: 0; }
.home-page section, .page-wrapper { border-radius: var(--radius); }

/* page heading (inner pages) */
.page-wrapper { background: transparent; margin-bottom: 18px; }
.page-wrapper .page-heading {
	background: var(--c-card);
	border-radius: var(--radius);
	border-left: 5px solid var(--c-gold);
	box-shadow: var(--shadow-sm);
	padding: 14px 20px;
	display: flex;
	align-items: center;
	justify-content: space-between;
	flex-wrap: wrap;
	gap: 6px 20px;
	border-bottom: 0;
}
.page-wrapper .page-heading:before, .page-wrapper .page-heading:after { display: none; }
.page-wrapper .page-heading h1.heading-title {
	margin: 0 !important;
	float: none !important;
	font-size: 24px;
	font-weight: 700;
	color: var(--c-primary-d);
	display: block;
}
.page-wrapper .breadcrumbs { float: none !important; display: block; }
.page-wrapper .breadcrumbs ul { padding: 0 !important; margin: 0; display: flex; flex-wrap: wrap; align-items: center; }
.page-wrapper .breadcrumbs ul li { float: none; margin: 0; font-size: 13px; color: var(--c-muted); }
.page-wrapper .breadcrumbs ul li a { color: var(--c-primary); padding: 0 6px; }
.page-wrapper .breadcrumbs ul li.breadcrumbs-label { display: none; }
.page-wrapper .breadcrumbs ul li.current { color: var(--c-muted); max-width: 260px; }
.page-wrapper ul li .fa { color: var(--c-muted); }

/* section headings (home + sidebar) */
.home-page h1.section-heading {
	font-family: var(--font);
	font-size: 18px;
	font-weight: 700;
	line-height: 1.4;
	margin: 0;
	padding: 0;
	color: var(--c-primary-d);
	border-bottom: 1px solid var(--c-line);
}
.home-page h1.section-heading .line {
	display: inline-block;
	padding: 12px 18px 10px;
	border-top: 0;
	border-bottom: 3px solid var(--c-accent);
	margin-bottom: -1px;
}
.home-page h1.section-heading.heading-bg,
.heading-bg {
	background: var(--c-primary-d) !important;
	border-bottom: 0 !important;
	border-radius: var(--radius) var(--radius) 0 0;
}
.heading-bg .line, .home-page .heading-bg .line {
	color: #fff !important;
	border-bottom: 3px solid var(--c-gold) !important;
	font-size: 16px;
}
.home-page section {
	background: var(--c-card);
	border-radius: var(--radius);
	box-shadow: var(--shadow-sm);
	overflow: hidden;
	margin-bottom: 18px;
}
.home-page .section-content { padding: 16px 18px 18px; }
.box-shadow, .shadow-right, .shadow-top { box-shadow: var(--shadow-sm); -webkit-box-shadow: var(--shadow-sm); }

/* ---------- 7. Home: slider ---------- */
.slider-wrapper.theme-default { margin: 0 0 18px; border-radius: var(--radius); overflow: hidden; box-shadow: var(--shadow); background: #dfe7f0; }
.slider-wrapper .nivoSlider { height: auto; min-height: 0; background-color: #dfe7f0; }
.slider-wrapper .nivoSlider img { max-width: 100%; }
.theme-default .nivoSlider { margin-bottom: 0; }
.theme-default .nivo-controlNav { position: absolute; left: 0; right: 0; bottom: 8px; z-index: 8; padding: 0; }
.theme-default .nivo-caption {
	font-family: var(--font);
	background: linear-gradient(180deg, rgba(5, 31, 59, 0) 0%, rgba(5, 31, 59, .85) 100%);
	opacity: 1;
	padding: 28px 20px 14px;
	font-size: 17px;
	left: 0; right: 0; bottom: 0; width: 100%;
}

/* ---------- 8. Home: news ticker + carousel ---------- */
.home-page .news { position: relative; }
.home-page .news .news-label,
.home-page .news .news-ticker { float: none; width: auto; }
.home-page .news > .news-label,
.home-page .news > .news-ticker { display: inline-block; vertical-align: top; }
.home-page .news > .news-label { width: auto; min-width: 150px; }
.home-page .news > .news-ticker { width: calc(100% - 156px); }
.home-page .news .news-label h1.section-heading,
.home-page .news .news-ticker h1.section-heading { border-radius: 0; height: 100%; margin: 0; }
.home-page .news .news-label h1.section-heading { border-top-left-radius: var(--radius); background: var(--c-gold) !important; }
.home-page .news .news-label .line { color: var(--c-primary-dd) !important; border-bottom-color: var(--c-primary-dd) !important; font-size: 15px; padding: 10px 16px 8px; white-space: nowrap; }
.home-page .news .news-ticker h1.section-heading { border-top-right-radius: var(--radius); padding: 0 16px; line-height: 44px; height: 44px; overflow: hidden; }
.home-page .news .news-ticker marquee { color: #fff; margin: 0 !important; line-height: 44px; display: block; font-size: 15px; }
.home-page .news .news-label h1.section-heading { height: 44px; }
.home-page .news .news-label .line { line-height: 24px; }

.home-page .news .carousel-controls { position: absolute; right: 14px; top: 58px; z-index: 5; }
.home-page .carousel-controls a { display: inline-block; }
.home-page .carousel-controls a .fa {
	width: 30px; height: 30px; line-height: 30px;
	border-radius: 50%;
	background: var(--c-accent-l);
	color: var(--c-primary);
	font-size: 18px;
	padding: 0 !important;
	text-align: center;
}
.home-page .carousel-controls a:hover .fa { background: var(--c-primary); color: #fff; }

.home-page .news .section-content { padding: 44px 8px 10px; }
.news-carousel .carousel-inner > .item { padding: 0; }
.news-carousel .carousel-inner > .item:after { content: ""; display: table; clear: both; }
.home-page .news .news-item {
	height: auto;
	min-height: 150px;
	padding: 14px 16px;
	margin-bottom: 8px;
	float: left;
	position: relative;
}
.home-page .news .news-item h2.title { font-size: 16px; line-height: 1.4; margin: 0 0 6px; }
.home-page .news .news-item h2.title a { color: var(--c-primary-d); }
.home-page .news .news-item h2.title a:hover { color: var(--c-accent); }
.news-item h2.title b { font-size: 1em; font-weight: 600; }
p.news_time { margin: 0 0 8px; }
p.news_time .time, .news_time .time { color: var(--c-muted) !important; font-size: 12.5px; margin-left: 0; }
p.news_time .time .fa { color: var(--c-accent); }
.home-page .news .news-item p { font-size: 14px; color: #4a5766; margin-bottom: 8px; }
.home-page .news .read-more { font-weight: 600; font-size: 13px; color: var(--c-accent); }
.home-page .news .read-more .fa { margin-left: 6px; font-size: 11px; }
.home-page .news .read-more:hover { color: var(--c-primary); }
@media (min-width: 992px) {
	.home-page .news .news-item + .news-item { border-left: 1px solid var(--c-line); }
}

/* ---------- 9. Home: history / principal / assistant messages ---------- */
.home-page .history, .home-page .principle_msg .content-div, .home-page .principle_msg .assistant_msg { overflow: hidden; }
.home-page .history figure.thumb { padding: 18px 0 0 18px; margin: 0; }
.home-page .history .section-content { padding-top: 18px; }
.img-resize, .img-resize1 {
	width: 100% !important;
	height: auto !important;
	max-height: 340px;
	object-fit: cover;
	border: 0;
	padding: 0;
	margin: 0;
	border-radius: var(--radius-sm);
	box-shadow: var(--shadow-sm);
}
.description { text-align: left; font-size: 15px; line-height: 1.75; color: #3a4655; }
.description::first-letter { font-size: 100%; color: inherit; }
.home-page .principle_msg { background: transparent !important; box-shadow: none !important; overflow: visible !important; margin-bottom: 0 !important; }
.home-page .principle_msg > .col-md-12 {
	background: var(--c-card);
	border-radius: var(--radius);
	box-shadow: var(--shadow-sm);
	margin-bottom: 18px;
	padding: 0 0 18px;
	overflow: hidden;
	width: 100%;
}
.home-page .principle_msg .content-div,
.home-page .principle_msg .assistant_msg { padding: 0 0 18px !important; }
.home-page .principle_msg h1.section-heading { margin-bottom: 14px; }
.home-page .principle_msg figure.thumb { padding: 0 18px; margin: 0 0 8px; text-align: center; }
.principle_msg .principle, img.principle {
	border-radius: var(--radius);
	box-shadow: var(--shadow);
	width: 100%;
	max-width: 280px;
	margin: 0 auto;
	object-fit: cover;
}
.principle_msg .section-content { padding-top: 0; }
.home-page .assistant_msg h1.section-heading .line { font-size: 18px; padding: 12px 18px 10px; }

/* ---------- 10. Home: 4 link boxes ---------- */
.home-page .notice-box { background: transparent !important; box-shadow: none !important; padding: 0; overflow: visible; margin-bottom: 0; }
.notice-box > [class*="col-"] { margin-bottom: 18px; }
.notice-box > [class*="col-"] > h1, .notice-box > [class*="col-"] > .section-content { background: var(--c-card); }
.notice-box > [class*="col-"] > .section-content {
	border-radius: 0 0 var(--radius) var(--radius);
	box-shadow: var(--shadow-sm);
	padding: 12px 16px 6px;
	height: calc(100% - 44px);
	min-height: 150px;
}
.notice-box .section-content p { margin: 0; border-bottom: 1px dashed var(--c-line); }
.notice-box .section-content p:last-child { border-bottom: 0; }
.notice-box .section-content p a { display: block; padding: 8px 0; font-size: 14px; color: var(--c-text); }
.notice-box .section-content p a .fa { color: var(--c-accent); margin-right: 6px; }
.notice-box .section-content p a:hover { color: var(--c-accent); text-decoration: none; padding-left: 4px; }
.notice-box .heading-bg { margin: 0; }
.notice-box .heading-bg .line { padding: 12px 16px 10px; }

/* ---------- 11. Home: student gallery scroller ---------- */
.slide-box { padding-bottom: 6px; }
.slide-box:after { content: ""; display: table; clear: both; }
.slide-box h1.section-heading { float: none !important; border-bottom: 0; }
#btn-dir {
	width: auto; margin: 0; padding: 0;
	position: absolute; right: 14px; top: 8px;
	display: flex; gap: 8px;
}
.slide-box { position: relative; }
#btn-dir span {
	margin: 0 !important;
	width: 34px; height: 34px; line-height: 34px;
	text-align: center;
	border-radius: 50%;
	background: var(--c-accent-l);
	color: var(--c-primary);
	transition: all .2s ease;
}
#btn-dir span:hover { background: var(--c-primary); color: #fff; }
.scroll-img { margin: 0 0 12px; border-top: 1px solid var(--c-line); padding: 6px 0; height: 168px; }
.scroll-img ul li { margin: 6px 0 6px 18px; }
.scroll-img ul li:first-child { margin-left: 14px; }
.scroll-img ul li img { width: 142px; height: 142px; object-fit: cover; border-radius: var(--radius-sm); box-shadow: var(--shadow-sm); transition: transform .25s ease; }
.scroll-img ul li a:hover img { transform: translateY(-3px) scale(1.02); }

/* ---------- 12. Sidebar ---------- */
.col-md-3 .links { margin-bottom: 18px; }
.col-md-3 .links h1.section-heading { margin: 0; }
.col-md-3 .links .section-content { padding: 12px 16px 8px; }
.col-md-3 .links .section-content p { margin: 0; border-bottom: 1px dashed var(--c-line); }
.col-md-3 .links .section-content p:last-child { border-bottom: 0; }
.col-md-3 .links .section-content p a { display: block; padding: 8px 0; font-size: 14px; color: var(--c-text); }
.col-md-3 .links .section-content p a:hover { color: var(--c-accent); }
.home-page .links .fa, .col-md-3 .links .fa { color: var(--c-accent); margin-right: 8px; }
.col-md-3 > p { margin: 0 0 12px; }
img.img-responsive.link-img, img.link-img, .link-img {
	display: block;
	width: 100%;
	height: 84px;
	padding: 8px 12px;
	object-fit: contain;
	background: #fff;
	border: 1px solid var(--c-line);
	border-radius: var(--radius);
	box-shadow: var(--shadow-sm);
	margin-bottom: 0;
	transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease;
}
a:hover > img.link-img { transform: translateY(-2px); box-shadow: var(--shadow); border-color: var(--c-accent); }
.links object, .links embed, .links video { max-width: 100%; height: auto; }
.links .section-content { overflow: hidden; }

/* generic sidebar widgets on inner pages (contact etc.) */
.widget.has-divider, .home-page .has-divider {
	background: var(--c-card);
	padding: 18px;
	border-radius: var(--radius);
	box-shadow: var(--shadow-sm);
	border: 0;
}
.has-divider h3.title { font-size: 18px; margin: 0 0 12px; color: var(--c-primary-d); }

/* ---------- 13. Inner pages: tables / cards ---------- */
.table-responsive {
	border: 0 !important;
	border-radius: var(--radius);
	box-shadow: var(--shadow-sm);
	background: var(--c-card) !important;
	margin-bottom: 18px;
	-webkit-overflow-scrolling: touch;
}
.table { margin-bottom: 0; background: var(--c-card); font-size: 14px; }
.table > thead > tr > th {
	border-bottom: 0 !important;
	font-weight: 600;
	font-size: 13.5px;
	padding: 12px 14px;
	white-space: nowrap;
	vertical-align: middle;
	background: var(--c-primary-d);
	color: #fff !important;
}
.table > thead[style], .table > thead { background: var(--c-primary-d) !important; }
.table > tbody > tr > td { padding: 11px 14px; vertical-align: middle; border-top: 1px solid var(--c-line); }
.table-striped > tbody > tr:nth-of-type(odd) { background: #f8fafd; }
.table > tbody > tr:hover { background: var(--c-accent-l); }
.table-bordered { border: 0; }
.table-bordered > thead > tr > th, .table-bordered > tbody > tr > td { border-left: 0; border-right: 0; }
.table th[width] { min-width: 180px; }
.table .btn-xs { padding: 4px 10px; font-size: 12px; margin: 2px 0; }
.table img.profile, .table img.profile-img, img.profile-img, img.profile { object-fit: cover; flex: none; }
.table td a b { color: var(--c-primary); }

.pagination { margin: 14px 10px; display: flex; flex-wrap: wrap; gap: 4px; padding-left: 0; }
.pagination > li > a, .pagination > li > span { border-radius: var(--radius-sm) !important; margin: 0; border: 1px solid var(--c-line); color: var(--c-primary); float: none; }
.pagination > li { display: block; }
.pagination > .active > a, .pagination > .active > span { background: var(--c-primary); border-color: var(--c-primary); }
.col-md-9 > td, .col-md-9 > tr { display: block; }

/* white boxes used as inline wrappers */
.col-md-9 > div[style*="background: #FFF"], .col-md-9 > div[style*="background:#FFF"],
.col-md-9 > .form-group, .contact-form, .team-wrapper {
	border-radius: var(--radius);
	box-shadow: var(--shadow-sm);
}
.col-md-9 > div[style*="padding: 10px"] { padding: 14px !important; }
label { font-weight: 600; }

/* faculty / student profile cards */
.team-wrapper { padding: 16px; background: var(--c-card); margin-bottom: 18px; overflow: hidden; width: 100%; }
.team-wrapper .page-row { margin: 0 0 14px; padding: 16px; border: 1px solid var(--c-line); border-radius: var(--radius); background: #fbfcfe; display: flex; flex-wrap: wrap; align-items: center; }
.team-wrapper .page-row:before, .team-wrapper .page-row:after { display: none; }
.team-wrapper .thumb { text-align: center; margin: 0; }
.cus-img { width: 130px !important; max-width: 100%; height: 130px !important; object-fit: cover; margin: 0 auto !important; border: 4px solid #fff; box-shadow: var(--shadow); }
.team-wrapper .details .box { margin: 0; }
.details .box .list-unstyled { padding-left: 0; line-height: 1.9; font-size: 15px; margin: 0; }
.details .box .list-unstyled li { border-bottom: 1px dashed var(--c-line); padding: 4px 0; word-break: break-word; }
.details .box .list-unstyled li:last-child { border-bottom: 0; }

/* contact */
.contact-form { background: var(--c-card); padding: 22px; margin-bottom: 18px; }
.contact-form .form-group { margin-bottom: 16px; }
.contact-form .required { color: #d9534f; margin-left: 2px; }
.map-section { background: var(--c-card); padding: 18px; border-radius: var(--radius); box-shadow: var(--shadow-sm); margin: 6px 15px 18px; }
.map-section .title { margin-top: 0; }
#map { width: 100% !important; height: 380px; border-radius: var(--radius-sm); overflow: hidden; }
.adr .adr-group { line-height: 1.9; word-break: break-word; }

/* news details */
.news_details { border-radius: var(--radius); box-shadow: var(--shadow-sm); padding: 6px; margin-bottom: 18px; }
.news_details .events-item { padding: 14px 16px; margin: 0; border: 0; }
.news_details .details { float: none; width: 100%; }
.news_details h3.title { font-size: 24px; margin: 0 0 8px; line-height: 1.35; }
.news_details p.desc { text-align: left; font-size: 15.5px; line-height: 1.8; }
.singleNews { width: 350px; max-width: 100%; height: auto; border-radius: var(--radius-sm); box-shadow: var(--shadow-sm); }

/* ---------- 14. Photo gallery (albums) ---------- */
.effects { padding: 0 !important; display: grid; grid-template-columns: repeat(auto-fill, minmax(230px, 1fr)); gap: 18px; }
.effects:before, .effects:after { display: none; }
.effects > .row { display: contents; }
.effects > .row:before, .effects > .row:after { display: none; }
.gallery,
.effects .gallery {
	float: none !important;
	width: auto !important;
	height: auto !important;
	margin: 0 !important;
	padding: 0 !important;
	border: 0;
	border-radius: var(--radius);
	background: var(--c-card);
	box-shadow: var(--shadow-sm);
	overflow: hidden;
	display: flex;
	flex-direction: column-reverse;
	transition: transform .25s ease, box-shadow .25s ease;
}
.gallery:hover { transform: translateY(-4px); box-shadow: var(--shadow); }
.gallery p.title {
	margin: 0;
	padding: 12px 14px;
	font-size: 15px;
	line-height: 1.35;
	text-align: left;
	color: var(--c-primary-d);
	background: var(--c-card);
	border-bottom: 0;
	border-top: 3px solid var(--c-gold);
	word-break: break-word;
}
.gallery p.title strong { font-weight: 600; }
.effects .img { margin: 0 !important; width: 100%; position: relative; overflow: hidden; }
.effects .img:nth-child(n), .effects .img:first-child, .effects .img:last-child { margin: 0 !important; }
.effects .img img, .gallery .image {
	display: block;
	width: 100% !important;
	height: 190px !important;
	margin: 0 !important;
	padding: 0;
	object-fit: cover;
	transition: transform .4s ease;
}
.effects .img.hover img { transform: scale(1.06); }
.overlay { background: rgba(5, 31, 59, .55) !important; }
#effect-5 .overlay a.expand { border: 0 !important; background: transparent; color: #fff; font-size: 32px; display: flex; align-items: center; justify-content: center; line-height: 1; }
#effect-5 .img.hover .overlay a.expand { width: 100%; height: 100%; border-radius: 0; }
#effect-5 .img .overlay .expand .fa { background: rgba(255, 255, 255, .18); border: 2px solid #fff; width: 60px; height: 60px; line-height: 56px; border-radius: 50%; text-align: center; }

/* event-wise gallery */
.image-event { position: relative; }
a.prettyphoto { position: relative; display: block; margin-bottom: 16px; }
a.prettyphoto img.img-thumbnail { width: 100%; height: 200px; object-fit: cover; border: 0; padding: 0; border-radius: var(--radius-sm); box-shadow: var(--shadow-sm); transition: transform .25s ease, box-shadow .25s ease; }
a.prettyphoto:hover img.img-thumbnail { transform: translateY(-3px); box-shadow: var(--shadow); }
.image-event .title {
	position: absolute !important; left: 15px !important; right: 15px; bottom: 0; top: auto !important;
	width: auto !important; height: auto !important;
	margin-bottom: 0;
	padding: 8px 10px !important;
	font: 600 13px/1.3 var(--font) !important;
	letter-spacing: 0 !important;
	border-radius: 0 0 var(--radius-sm) var(--radius-sm);
	background: linear-gradient(180deg, rgba(5, 31, 59, 0), rgba(5, 31, 59, .85)) !important;
	color: #fff;
}
.page-row.image-event { margin-left: -8px; margin-right: -8px; }
.page-row.image-event > a { padding-left: 8px; padding-right: 8px; }
.page-row.image-event > a .title { left: 8px !important; right: 8px; }

/* organogram: scroll instead of overflow */
.tree { overflow-x: auto; padding: 14px; text-align: center; -webkit-overflow-scrolling: touch; }
.tree ul { display: inline-block; white-space: nowrap; }
.tree li { white-space: normal; }
.tree li a { font-size: 13px; background: #fff; border-radius: var(--radius-sm); }

/* ---------- 15. Footer ---------- */
.footer { position: static !important; width: 100%; flex-shrink: 0; height: auto !important; background: var(--c-primary-dd) !important; margin-top: 10px; }
.footer .bottom-bar { background: transparent !important; padding: 14px 0 !important; border-top: 3px solid var(--c-gold); }
.footer .bottom-bar .row { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; margin: 0; }
.footer .bottom-bar .row:before, .footer .bottom-bar .row:after { display: none; }
.footer .bottom-bar .copyright { line-height: 1.6 !important; font-size: 13px; color: #c5d3e4; float: none; padding: 4px 15px; }
.footer .bottom-bar .copyright a { color: var(--c-gold); font-weight: 600; }
.footer .bottom-bar .social { float: none !important; margin: 0; padding: 4px 15px; display: flex; gap: 8px; justify-content: flex-end; }
.footer .bottom-bar .social li { float: none !important; margin: 0 !important; line-height: 1; }
.footer .bottom-bar .social li a {
	display: inline-flex; align-items: center; justify-content: center;
	width: 38px; height: 38px; padding: 0;
	border-radius: 50%;
	background: rgba(255, 255, 255, .1);
	color: #fff;
	font-size: 17px;
}
.footer .bottom-bar .social li a:hover { background: var(--c-gold); color: var(--c-primary-dd); }

/* ---------- 16. Back-to-top (if present) ---------- */
#back-to-top, .back-to-top { border-radius: 50%; }

/* ---------- 17. Print safety (keep original print behaviour) ---------- */
@media print {
	body { display: block; background: #fff !important; }
	.header, .main-nav, .footer { display: none !important; }
	.table-responsive, .home-page section { box-shadow: none; }
}

/* =====================================================================
   RESPONSIVE
   ===================================================================== */

/* ---- md (992-1199): tighten ---- */
@media (min-width: 992px) and (max-width: 1199px) {
	.logo h3 { font-size: 22px; }
	.notice-box > [class*="col-md-3"] { width: 50%; }
	.main-nav .nav .nav-item > a { padding-left: 12px; padding-right: 12px; font-size: 14.5px; }
}

/* ---- ≤ 991 (tablet and below): sidebar goes under content ---- */
@media (max-width: 991px) {
	.header .header-main { flex-direction: column; align-items: stretch; text-align: center; gap: 14px; padding: 16px 15px; }
	.header h1.logo > a { justify-content: center; }
	.header .info { align-items: center; }
	.header .menu-top, .header .contact-us { justify-content: center; }
	.notice-box > [class*="col-md-3"] { width: 50%; float: left; }
	.col-md-3.noPrintShow { margin-top: 6px; }
	.col-md-3.noPrintShow > p { display: inline-block; width: calc(50% - 8px); vertical-align: top; }
	.col-md-3.noPrintShow > p + p { margin-left: 12px; }
	.col-md-3.noPrintShow > p:nth-of-type(2n+1) { margin-left: 0; }
	.content.container { padding-top: 16px; }
	.home-page .news .news-item { float: none; width: 100%; min-height: 0; border-left: 0 !important; border-bottom: 1px solid var(--c-line); margin-bottom: 0; }
	.home-page .news .news-item:last-child { border-bottom: 0; }
	.home-page .news .section-content { padding-top: 44px; }
	.home-page .history figure.thumb { padding-right: 18px; width: 100%; float: none; }
	.principle_msg figure.thumb { width: 100%; float: none; }
}

/* ---- ≤ 767 (phones/small tablets) ---- */
@media (max-width: 767px) {
	body { font-size: 15px; }
	.header .top-bar { height: 3px; }
	.header .header-main { padding: 14px 12px; }
	.header h1.logo > a { flex-direction: column; gap: 8px; text-align: center; }
	.logo img { height: 64px; }
	.logo h3 { font-size: 20px; }
	.header .menu-top { gap: 6px; }
	.header .menu-top li.nav-item.btn a { padding: 8px 13px; font-size: 12.5px; }
	.header .contact-us { flex-direction: column; align-items: center; gap: 2px; font-size: 13.5px; }
	.header .contact-us p.phone { margin-right: 0 !important; }

	/* mobile nav */
	.main-nav .container { padding-left: 0; padding-right: 0; width: 100%; }
	.main-nav .navbar-header { margin: 0; }
	.main-nav .navbar-toggle {
		float: none;
		display: block;
		width: calc(100% - 24px);
		margin: 8px 12px;
		padding: 10px 0;
		border: 1px solid rgba(255, 255, 255, .35) !important;
		border-radius: var(--radius-sm) !important;
		background: rgba(255, 255, 255, .08) !important;
	}
	.main-nav .navbar-toggle .icon-bar { width: 24px; margin: 4px auto; background: #fff; }
	.main-nav .navbar-collapse { border-top: 1px solid rgba(255, 255, 255, .15) !important; max-height: 70vh; overflow-y: auto; -webkit-overflow-scrolling: touch; }
	.main-nav .navbar-nav { margin: 0 !important; float: none; }
	.main-nav .navbar-nav > li { float: none; border-bottom: 1px solid rgba(255, 255, 255, .1); }
	.main-nav .nav .nav-item > a { padding: 13px 18px !important; font-size: 15px; }
	.main-nav .nav .nav-item.active > a { box-shadow: inset 4px 0 0 var(--c-gold) !important; background: rgba(255, 255, 255, .08) !important; }
	.main-nav .navbar-nav .open .dropdown-menu { position: static; float: none; width: auto; margin: 0; background: rgba(0, 0, 0, .18); box-shadow: none; border-radius: 0; padding: 0; }
	.main-nav .nav .nav-item .dropdown-menu a { color: #dce7f0 !important; padding: 11px 18px 11px 34px !important; font-size: 14px; }
	.main-nav .nav .nav-item .dropdown-menu a:hover { background: rgba(255, 255, 255, .1) !important; color: #fff !important; }
	.main-nav .nav .nav-item .dropdown-menu li.active > a { color: #fff !important; background: rgba(255, 255, 255, .1) !important; }

	.content.container { padding: 12px 10px 24px; }
	.content.container .row.cols-wrapper { margin-left: -4px; margin-right: -4px; }
	.cols-wrapper > [class*="col-"] { padding-left: 4px; padding-right: 4px; }

	.slider-wrapper.theme-default { border-radius: var(--radius-sm); margin-bottom: 12px; }
	.theme-default .nivo-caption { font-size: 13px; padding: 16px 12px 8px; }
	.theme-default .nivo-controlNav a { width: 14px; height: 14px; background-size: auto; }
	.nivo-directionNav a { display: none !important; }

	.page-wrapper .page-heading { border-left-width: 4px; padding: 12px 14px; text-align: left; flex-direction: column; align-items: flex-start; gap: 2px; }
	.page-wrapper .page-heading h1.heading-title { font-size: 20px; text-align: left; }
	.page-wrapper .breadcrumbs { text-align: left; }
	.page-wrapper .breadcrumbs ul { justify-content: flex-start; }
	.page-wrapper .breadcrumbs ul li a { padding-left: 0; }

	.home-page h1.section-heading { font-size: 16px; }
	.home-page .section-content { padding: 12px 14px 14px; }

	/* news ticker: stack label over ticker */
	.home-page .news > .news-label, .home-page .news > .news-ticker { display: block; width: 100%; min-width: 0; }
	.home-page .news .news-label h1.section-heading { border-top-right-radius: var(--radius); height: auto; }
	.home-page .news .news-ticker h1.section-heading { border-radius: 0; height: 38px; line-height: 38px; }
	.home-page .news .news-ticker marquee { line-height: 38px; }
	.home-page .news .carousel-controls { top: 8px; right: 10px; }
	.home-page .news .news-label .line { padding-right: 90px; }
	.home-page .news .section-content { padding: 6px 4px 10px; }
	.home-page .news .news-item { padding: 12px 12px; }

	.notice-box > [class*="col-md-3"] { width: 100%; float: none; }
	.notice-box > [class*="col-"] > .section-content { height: auto; min-height: 0; }
	.notice-box > [class*="col-"] { margin-bottom: 12px; }

	.col-md-3.noPrintShow > p { width: calc(50% - 6px); }

	/* tables: tighter, always scrollable */
	.table { font-size: 13px; }
	.table > thead > tr > th, .table > tbody > tr > td { padding: 9px 10px; }
	.table th[width] { min-width: 150px; }
	.table-responsive { border-radius: var(--radius-sm); }

	.team-wrapper { padding: 10px; }
	.team-wrapper .page-row { padding: 12px; }
	.team-wrapper .thumb, .team-wrapper .details { width: 100%; float: none; text-align: center; }
	.team-wrapper .details { text-align: left; margin-top: 10px; }
	.cus-img { width: 110px !important; height: 110px !important; }

	.contact-form { padding: 16px; }
	.map-section { margin: 4px 0 14px; padding: 12px; }
	#map { height: 280px; }

	.news_details h3.title { font-size: 20px; }
	.singleNews { float: none; width: 100%; height: auto; margin-right: 0; }

	.effects { grid-template-columns: repeat(2, 1fr); gap: 12px; }
	.effects .img img, .gallery .image { height: 130px !important; }
	.gallery p.title { padding: 9px 10px; font-size: 13.5px; }
	a.prettyphoto img.img-thumbnail { height: 150px; }

	.footer .bottom-bar .row { justify-content: center; flex-direction: column; gap: 6px; text-align: center; }
	.footer .bottom-bar .social { justify-content: center; }
	.footer .bottom-bar .copyright { text-align: center; }
	.footer .bottom-bar .copyright, .footer .bottom-bar .social { width: 100%; }
}

/* ---- ≤ 480 (small phones) ---- */
@media (max-width: 480px) {
	.header { background: linear-gradient(135deg, var(--c-primary-dd), var(--c-primary-d)) !important; }
	.logo h3 { font-size: 18px; }
	.logo img { height: 56px; }
	.header .menu-top li.nav-item.btn a { padding: 7px 11px; font-size: 12px; }
	.img-resize, .img-resize1 { max-height: 240px; }
	.col-md-3.noPrintShow > p { width: 100%; margin-left: 0 !important; display: block; }
	.effects { gap: 10px; }
	.effects .img img, .gallery .image { height: 110px !important; }
	.scroll-img ul li img { width: 120px; height: 120px; }
	.page-wrapper .page-heading h1.heading-title { font-size: 18px; }
	.pagination > li > a, .pagination > li > span { padding: 6px 10px; }
}

/* very narrow (≤360) */
@media (max-width: 360px) {
	.effects { grid-template-columns: 1fr 1fr; }
	.header .menu-top li.nav-item.btn a { padding: 7px 9px; font-size: 11.5px; }
}

/* ---------- 18. Polish fixes ---------- */
.slider-wrapper.theme-default { position: relative; }
.home-page .history figure.thumb { float: left; width: 46%; padding: 18px 20px 12px 18px; }
@media (min-width: 992px) {
	.home-page .notice-box { margin-left: -15px; margin-right: -15px; }
	.principle_msg figure.thumb { padding-top: 6px; }
}
@media (max-width: 767px) {
	.home-page .history figure.thumb { float: none; width: 100%; padding: 14px 14px 0; }
}

/* event-wise gallery: fluid grid (3 per row desktop, 2 phones) */
.page-row.image-event { display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; margin: 0 0 14px; padding: 8px; }
.page-row.image-event:before, .page-row.image-event:after { display: none; }
.page-row.image-event > a.prettyphoto { float: none; width: auto; padding: 0; margin: 0; }
.page-row.image-event > a .title { left: 0 !important; right: 0; }
@media (max-width: 767px) { .page-row.image-event { grid-template-columns: repeat(2, 1fr); gap: 10px; padding: 6px; } a.prettyphoto img.img-thumbnail { height: 120px; } }

@media (min-width: 768px) and (max-width: 991px) {
	.main-nav .nav .nav-item > a { padding-left: 10px; padding-right: 10px; font-size: 14px; }
}

/* ---------- 19. News details page (view/news/{id}) ---------- */
.news_details { background: var(--c-card) !important; padding: 0; overflow: hidden; }
.news_details .events-item,
.news_details .events-item.has-divider {
	background: transparent; box-shadow: none; border-radius: 0; margin: 0 !important;
	padding: 24px 28px 28px; display: block; border: 0;
}
.news_details .events-item:before, .news_details .events-item:after { content: ""; display: table; clear: both; }
.news_details .details { float: none !important; width: 100% !important; padding: 0; }
.news_details h3.title {
	font-size: 26px; font-weight: 700; line-height: 1.4; margin: 0 0 12px;
	padding-bottom: 14px; border-bottom: 3px solid var(--c-accent);
	color: var(--c-primary-d); word-break: break-word; overflow-wrap: anywhere;
}
.news_details p.news_time { margin: 0 0 18px; }
.news_details p.news_time .time {
	display: inline-block; background: var(--c-accent-l); color: var(--c-primary) !important;
	padding: 5px 12px; border-radius: 999px; font-size: 13px; margin: 0;
}
.news_details figure.thumb { margin: 0 22px 14px 0; float: left; max-width: 46%; }
.news_details .singleNews, .news_details figure.thumb img {
	width: 100%; max-width: 420px; height: auto; margin: 0; float: none;
	border-radius: var(--radius); box-shadow: var(--shadow);
}
.news_details p.desc { font-size: 16px; line-height: 1.85; color: #34414f; text-align: left; margin: 0; overflow-wrap: anywhere; word-break: break-word; }
.news_details .details p:not(.news_time) { font-size: 16px; line-height: 1.85; color: #34414f; margin: 0 0 14px; text-align: left !important; overflow-wrap: anywhere; word-break: break-word; }
.news_details .details { overflow-wrap: anywhere; }
.news_details .details img:not(.singleNews) { max-width: 100% !important; height: auto !important; border-radius: var(--radius-sm); }
.news_details .details iframe, .news_details .details video, .news_details .details embed, .news_details .details object { max-width: 100%; }
.news_details .details iframe { width: 100% !important; aspect-ratio: 16 / 9; height: auto !important; border: 0; }
.news_details .details table { display: block; max-width: 100% !important; width: auto !important; overflow-x: auto; border-collapse: collapse; -webkit-overflow-scrolling: touch; }
.news_details .details table td, .news_details .details table th { border: 1px solid var(--c-line); padding: 6px 10px; }
.news_details .details h1, .news_details .details h2, .news_details .details h3, .news_details .details h4 { color: var(--c-primary-d); margin: 18px 0 10px; }
.news_details .details a { color: var(--c-primary); text-decoration: underline; }
.news_details .details ul, .news_details .details ol { padding-left: 22px; margin-bottom: 14px; }
.news_details .details blockquote { border-left: 4px solid var(--c-gold); background: #fbf7ec; padding: 10px 16px; margin: 0 0 14px; font-size: 15px; }
@media (max-width: 767px) {
	.news_details .events-item, .news_details .events-item.has-divider { padding: 16px 14px 20px; }
	.news_details h3.title { font-size: 20px; padding-bottom: 10px; }
	.news_details figure.thumb { float: none; max-width: 100%; margin: 0 0 14px; }
	.news_details .singleNews, .news_details figure.thumb img { max-width: 100%; }
	.news_details .details p:not(.news_time) { font-size: 15px; line-height: 1.8; }
}

/* ---------- 20. Mobile: hide hard-coded "Leadership Team" breadcrumb ---------- */
@media (max-width: 767px) {
	.page-wrapper .breadcrumbs ul li.current,
	.page-wrapper .breadcrumbs ul li .fa-angle-right { display: none !important; }
}

/* ---------- 21. Same alignment for left link boxes and right sidebar lists ---------- */
.notice-box > [class*="col-"] > .section-content,
.col-md-3 .links .section-content { padding: 6px 16px 6px !important; min-height: 0; }
.notice-box .section-content p,
.col-md-3 .links .section-content p { margin: 0 !important; border-bottom: 1px dashed var(--c-line); }
.notice-box .section-content p:last-child,
.col-md-3 .links .section-content p:last-child { border-bottom: 0; }
.notice-box .section-content p a,
.col-md-3 .links .section-content p a {
	position: relative;
	display: block;
	padding: 9px 0 9px 20px !important;
	font-size: 14px;
	line-height: 1.5;
	color: var(--c-text);
}
.notice-box .section-content p a .fa,
.col-md-3 .links .section-content p a .fa {
	position: absolute;
	left: 0;
	top: 10px;
	margin: 0 !important;
	font-size: 14px;
	line-height: 1.5;
	color: var(--c-accent);
}
.notice-box .section-content p a:hover,
.col-md-3 .links .section-content p a:hover { padding-left: 20px !important; color: var(--c-accent); transform: translateX(3px); }
/* identical heading height on both sides */
.notice-box > [class*="col-"] > h1.section-heading,
.col-md-3 .links > h1.section-heading { margin: 0 !important; min-height: 46px; }
.col-md-3 .links { margin-top: 0; }
/* the 4 left boxes and the sidebar start on the same line */
@media (min-width: 992px) {
	.cols-wrapper > .col-md-3 { padding-top: 0; }
	.home-page .notice-box { padding: 0 !important; margin-top: 0; }
	.notice-box > [class*="col-"] { margin-bottom: 18px; }
}

/* ---------- 22. Equal column bottoms (home page): left column and sidebar end on the same line ---------- */
@media (min-width: 992px) {
	.content:has(.slider-wrapper) .cols-wrapper { display: flex; flex-wrap: wrap; align-items: stretch; }
	.content:has(.slider-wrapper) .cols-wrapper:before,
	.content:has(.slider-wrapper) .cols-wrapper:after { display: none; }
	.content:has(.slider-wrapper) .cols-wrapper > .col-md-9,
	.content:has(.slider-wrapper) .cols-wrapper > .col-md-3 { float: none; display: flex; flex-direction: column; }
	/* last block of each column grows to the shared bottom edge */
	.content:has(.slider-wrapper) .cols-wrapper > .col-md-9 > :last-child,
	.content:has(.slider-wrapper) .cols-wrapper > .col-md-3 > :last-child { flex: 1 1 auto; margin-bottom: 0 !important; }
	/* left "notice box" row: cards stretch to equal height */
	.content:has(.slider-wrapper) .notice-box { display: flex; flex-wrap: wrap; }
	.content:has(.slider-wrapper) .notice-box:before,
	.content:has(.slider-wrapper) .notice-box:after { display: none; }
	.content:has(.slider-wrapper) .notice-box > [class*="col-"] { float: none; display: flex; flex-direction: column; margin-bottom: 0; }
	.content:has(.slider-wrapper) .notice-box > [class*="col-"] > .section-content { flex: 1 1 auto; height: auto; }
	.content:has(.slider-wrapper) .notice-box > [class*="col-"]:last-child { margin-bottom: 0; }
	.content:has(.slider-wrapper) .cols-wrapper > .col-md-9 > section.notice-box:not(:last-child) { margin-bottom: 18px; }
}
