/*
Theme Name: TCC College Theme
Theme URI: https://tinsukiacommercecollege.edu.in
Author: Custom Build (Deep Ghosh, Anand Prasad Gupta, Aniket Sah — supervised by Animesh Sarmah)
Author URI: https://tinsukiacommercecollege.edu.in
Description: A fully Elementor-editable college/institution WordPress theme replicating a complete homepage layout — top bar, mega navigation, notice ticker, hero, info cards, admit cards, timeline, programmes, notice board, merit lists, vision/mission, leadership, facilities, admission steps, compliance disclosures, important links, contact section with map, and footer. Every section is editable via the WordPress Customizer or the companion "TCC Content Manager" plugin (see README.txt), and is built to be fully rebuildable in Elementor.
Version: 1.3.0
Requires PHP: 7.4
Text Domain: tcc-theme
*/

/* =========================================================
 * CHANGELOG — keep this updated on every release so future
 * developers can see what changed without diffing the whole repo.
 * =========================================================
 * 1.3.0 — Website Credits section (photo + bio popup with LinkedIn/
 *         Instagram/Facebook icons), per-section colour overrides
 *         ("Section Styling"), selectable heading/body Google Fonts,
 *         theme screenshot.png added, leadership photo support.
 *         Companion plugin: tcc-content-manager (v1.0.0).
 * 1.2.0 — Base release: 18-section homepage, Customizer controls,
 *         Elementor full-site support.
 * ========================================================= */

/* ============ THEME VARIABLES (Navy & Gold — app palette) ============ */
:root {
	--tcc-navy-dark:   #0b2032;
	--tcc-navy:        #122c46;
	--tcc-navy-light:  #1c4a55;
	--tcc-green-glow:  #1f4d3d;
	--tcc-gold:        #d4a017;
	--tcc-gold-light:  #e8c468;
	--tcc-cream:       #f7f4ec;
	--tcc-text:        #20262c;
	--tcc-text-muted:  #5d6772;
	--font-heading: 'Playfair Display', Georgia, serif;
	--font-body: 'Inter', 'Segoe UI', Arial, sans-serif;
	--shadow-soft: 0 8px 24px rgba(11,32,50,.08);
	--shadow-lift: 0 16px 36px rgba(11,32,50,.16);
	--radius: 14px;
}

/* ============ BASE / RESET ============ */
* { box-sizing: border-box; }
body {
	margin: 0;
	font-family: var(--font-body);
	color: var(--tcc-text);
	background: #fff;
	line-height: 1.65;
}
h1, h2, h3, .tcc-logo-block .tcc-name { font-family: var(--font-heading); }
img { max-width: 100%; display: block; }
a { text-decoration: none; color: inherit; transition: color .2s ease; }
.container {
	max-width: 1200px;
	margin: 0 auto;
	padding: 0 20px;
}
section { padding: 64px 0; position: relative; }
.section-title { margin-bottom: 36px; }
.section-title .eyebrow {
	display: inline-block;
	color: var(--tcc-gold);
	font-weight: 700;
	letter-spacing: 1.4px;
	text-transform: uppercase;
	font-size: 12.5px;
	margin-bottom: 10px;
}
.section-title h2 {
	margin: 4px 0 0;
	font-size: 30px;
	font-weight: 700;
	color: var(--tcc-navy);
}
.section-title h2::after {
	content: "";
	display: block;
	width: 46px;
	height: 4px;
	margin-top: 12px;
	border-radius: 4px;
	background: var(--tcc-gold);
}
.section-title p { color: var(--tcc-text-muted); margin-top: 10px; font-size: 14px; }
.tcc-vm .section-title h2, .tcc-hero .section-title h2 { color: #fff; }

/* ============ TOP BAR ============ */
.tcc-topbar {
	background: var(--tcc-navy-dark);
	color: #fff;
	font-size: 13px;
	padding: 9px 0;
}
.tcc-topbar .container {
	display: flex;
	justify-content: space-between;
	flex-wrap: wrap;
	align-items: center;
	gap: 10px;
}
.tcc-topbar-left, .tcc-topbar-right { display: flex; align-items: center; flex-wrap: wrap; gap: 8px 16px; }
.tcc-topbar a { color: #fff; opacity: .9; }
.tcc-topbar a:hover { color: var(--tcc-gold-light); opacity: 1; }
.tcc-topbar .btn, .tcc-topbar a.btn {
	font-size: 12.5px;
	padding: 5px 14px;
	border: 1px solid rgba(255,255,255,.35);
	border-radius: 20px;
	font-weight: 600;
}
.tcc-topbar .tcc-naac {
	color: var(--tcc-navy-dark);
	background: linear-gradient(90deg, var(--tcc-gold-light), var(--tcc-gold));
	font-weight: 700;
	font-size: 12.5px;
	padding: 5px 14px;
	border-radius: 20px;
}

/* ============ MAIN HEADER / NAV ============ */
.tcc-header {
	background: #fff;
	border-bottom: 1px solid #eee;
	padding: 14px 0;
}
.tcc-header .container {
	display: flex;
	justify-content: space-between;
	align-items: center;
	flex-wrap: wrap;
	gap: 14px;
}
.tcc-logo-block { display: flex; align-items: center; gap: 12px; }
.tcc-logo-block img { max-height: 58px; }
.tcc-logo-block .tcc-name { font-size: 21px; font-weight: 700; color: var(--tcc-navy); }
.tcc-logo-block .tcc-tagline { font-size: 12px; color: var(--tcc-text-muted); }

.tcc-main-nav ul {
	list-style: none;
	display: flex;
	gap: 24px;
	margin: 0;
	padding: 0;
	flex-wrap: wrap;
	position: relative;
}
.tcc-main-nav li { position: relative; }
.tcc-main-nav a { font-weight: 600; font-size: 15px; color: var(--tcc-navy); }
.tcc-main-nav a:hover { color: var(--tcc-gold); }
.tcc-main-nav .sub-menu {
	display: none;
	position: absolute;
	top: 100%;
	left: 0;
	background: #fff;
	box-shadow: var(--shadow-lift);
	min-width: 220px;
	padding: 10px 0;
	z-index: 99;
	list-style: none;
	border-top: 2px solid var(--tcc-gold);
	border-radius: 0 0 8px 8px;
}
.tcc-main-nav li:hover > .sub-menu { display: block; }
.tcc-main-nav .sub-menu li a { display: block; padding: 9px 18px; font-size: 14px; }
.tcc-main-nav .sub-menu li a:hover { background: var(--tcc-cream); }
.tcc-apply-btn {
	background: var(--tcc-gold);
	color: #fff !important;
	padding: 9px 20px;
	border-radius: 24px;
	font-weight: 700;
}
.tcc-apply-btn:hover { background: var(--tcc-navy); color: #fff !important; }

/* ============ NOTICE TICKER ============ */
.tcc-ticker {
	background: var(--tcc-navy-dark);
	color: #fff;
	font-weight: 600;
	font-size: 13.5px;
	padding: 10px 0;
	overflow: hidden;
	border-top: 1px solid rgba(255,255,255,.06);
	border-bottom: 1px solid rgba(255,255,255,.06);
}
.tcc-ticker .ticker-label {
	font-weight: 800;
	margin-right: 14px;
	background: var(--tcc-gold);
	color: var(--tcc-navy-dark);
	padding: 3px 12px;
	border-radius: 14px;
	font-size: 11.5px;
	letter-spacing: .4px;
}
.tcc-ticker-track {
	display: inline-flex;
	gap: 40px;
	white-space: nowrap;
	animation: tcc-marquee 30s linear infinite;
}
@keyframes tcc-marquee {
	0% { transform: translateX(0); }
	100% { transform: translateX(-50%); }
}
.tcc-ticker-track a { color: #fff; }
.tcc-ticker-track span { color: var(--tcc-gold-light); }
.tcc-ticker-wrap { display: flex; align-items: center; }

/* ============ HERO ============ */
.tcc-hero {
	background:
		radial-gradient(circle at 80% 100%, rgba(31,77,61,.55), transparent 55%),
		linear-gradient(160deg, var(--tcc-navy-dark), var(--tcc-navy) 60%, var(--tcc-navy-light));
	color: #fff;
	text-align: center;
	padding: 70px 0 64px;
	overflow: hidden;
}
.tcc-hero .eyebrow {
	display: inline-block;
	color: var(--tcc-gold-light);
	font-weight: 600;
	letter-spacing: .5px;
	padding: 7px 20px;
	border: 1px solid rgba(232,196,104,.45);
	border-radius: 24px;
	font-size: 13px;
	background: rgba(212,160,23,.08);
}
.tcc-hero h1 { font-size: 42px; margin: 20px 0 12px; font-weight: 800; line-height: 1.25; }
.tcc-hero .tagline { opacity: .85; margin-bottom: 6px; font-size: 16px; }
.tcc-hero .motto {
	font-style: italic;
	color: var(--tcc-gold-light);
	opacity: .9;
	margin-bottom: 36px;
	font-family: var(--font-heading);
}
.tcc-hero-stats {
	display: flex;
	justify-content: center;
	gap: 50px;
	flex-wrap: wrap;
	margin: 30px 0;
}
.tcc-hero-stats .stat-num {
	font-size: 30px;
	font-weight: 800;
	color: var(--tcc-gold-light);
	font-family: var(--font-heading);
}
.tcc-hero-stats .stat-label { font-size: 12.5px; opacity: .75; letter-spacing: .3px; margin-top: 2px; }
.tcc-hero-buttons { display: flex; justify-content: center; gap: 14px; flex-wrap: wrap; margin-top: 24px; }
.btn {
	display: inline-block;
	padding: 13px 28px;
	border-radius: 26px;
	font-weight: 700;
	cursor: pointer;
	transition: transform .2s ease, box-shadow .2s ease, background .2s ease;
}
.btn:hover { transform: translateY(-2px); }
.btn-primary { background: var(--tcc-gold); color: #fff; box-shadow: 0 10px 22px rgba(212,160,23,.35); }
.btn-primary:hover { background: var(--tcc-gold-light); color: var(--tcc-navy-dark); }
.btn-outline { background: transparent; color: #fff; border: 2px solid rgba(255,255,255,.55); }
.btn-outline:hover { background: rgba(255,255,255,.12); border-color: #fff; }

/* ============ CARD GRID (info / programmes / admit cards / merit / disclosure) ============ */
.tcc-grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 24px;
}
@media (max-width: 900px) { .tcc-grid { grid-template-columns: repeat(2,1fr); } }
@media (max-width: 600px) { .tcc-grid { grid-template-columns: 1fr; } }
.tcc-card {
	background: #fff;
	border: 1px solid #ececec;
	border-radius: var(--radius);
	padding: 28px 24px;
	box-shadow: var(--shadow-soft);
	transition: transform .25s ease, box-shadow .25s ease;
	position: relative;
}
.tcc-card:hover { transform: translateY(-5px); box-shadow: var(--shadow-lift); }
.tcc-card .icon { font-size: 30px; margin-bottom: 14px; }
.tcc-card h3 { margin: 0 0 8px; font-size: 18px; color: var(--tcc-navy); }
.tcc-card p { font-size: 14px; color: var(--tcc-text-muted); margin-bottom: 14px; }
.tcc-card a.card-link { font-weight: 700; color: var(--tcc-gold); }
.tcc-card a.card-link::after { content: " →"; }
.tcc-card a.card-link:hover { color: var(--tcc-navy); }
.tcc-card .meta-line {
	display: inline-block;
	font-size: 12px;
	color: var(--tcc-navy);
	background: var(--tcc-cream);
	padding: 4px 12px;
	border-radius: 14px;
	font-weight: 600;
}

/* Dark-card variant used on Programmes Offered */
#programmes .tcc-card {
	background: linear-gradient(160deg, var(--tcc-navy), var(--tcc-navy-dark));
	border-color: transparent;
	color: #fff;
	overflow: hidden;
}
#programmes .tcc-card::after {
	content: "";
	position: absolute;
	right: -30px;
	bottom: -30px;
	width: 100px;
	height: 100px;
	border-radius: 50%;
	background: rgba(255,255,255,.04);
}
#programmes .tcc-card h3 { color: #fff; }
#programmes .tcc-card p { color: #c6cedb; }
#programmes .tcc-card .meta-line { background: rgba(212,160,23,.18); color: var(--tcc-gold-light); }
#programmes { background: var(--tcc-cream); }

/* ============ STORY / TIMELINE ============ */
.tcc-story { background: var(--tcc-cream); }
.tcc-story-cols {
	display: grid;
	grid-template-columns: 1.1fr .9fr;
	gap: 40px;
	align-items: center;
	margin-bottom: 10px;
}
.tcc-story-cols.no-image { grid-template-columns: 1fr; }
@media (max-width: 800px) { .tcc-story-cols { grid-template-columns: 1fr; } }
.tcc-story-image img { border-radius: var(--radius); box-shadow: var(--shadow-lift); }
.tcc-timeline { display: flex; overflow-x: auto; gap: 30px; padding: 20px 0; }
.tcc-timeline-item { min-width: 180px; border-left: 3px solid var(--tcc-gold); padding-left: 14px; }
.tcc-timeline-item .year { font-weight: 800; font-size: 20px; color: var(--tcc-navy); font-family: var(--font-heading); }

/* ============ NOTICE BOARD LIST ============ */
#notices .section-title { position: relative; }
.tcc-notice-list {
	list-style: none;
	padding: 0;
	max-width: 800px;
	margin: 0 auto;
	background: #fff;
	border-radius: var(--radius);
	box-shadow: var(--shadow-soft);
	overflow: hidden;
}
.tcc-notice-list li {
	padding: 15px 20px;
	border-bottom: 1px solid #eee;
	display: flex;
	justify-content: space-between;
	transition: background .2s ease;
}
.tcc-notice-list li:last-child { border-bottom: none; }
.tcc-notice-list li:hover { background: var(--tcc-cream); }
.tcc-notice-list li a { font-weight: 600; }
.tcc-notice-list li a::before { content: "▸ "; color: var(--tcc-gold); }
.tcc-notice-list .badge-new {
	background: var(--tcc-gold);
	color: #fff;
	font-size: 11px;
	padding: 2px 9px;
	border-radius: 10px;
	margin-left: 8px;
}

/* ============ VISION/MISSION ============ */
.tcc-vm {
	background: linear-gradient(160deg, var(--tcc-navy-dark), var(--tcc-navy));
	color: #fff;
}
.tcc-vm .tcc-grid .tcc-card {
	background: rgba(255,255,255,.05);
	border-color: rgba(255,255,255,.12);
	color: #fff;
}
.tcc-vm .tcc-grid .tcc-card h3 { color: var(--tcc-gold-light); font-family: var(--font-heading); }
.tcc-vm .tcc-grid .tcc-card p { color: #d4dce6; }
.tcc-vm .tcc-grid:first-of-type .tcc-card:first-child {
	background: var(--tcc-navy-dark);
}
.tcc-vm ul { padding-left: 20px; }
.tcc-vm ul li::marker { color: var(--tcc-gold); }

/* ============ LEADERSHIP ============ */
.tcc-leader-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 24px; }
@media (max-width: 900px) { .tcc-leader-grid { grid-template-columns: 1fr; } }
.tcc-leader-card {
	text-align: left;
	padding: 28px 26px;
	border-radius: var(--radius);
	background: #fff;
	border: 1px solid #ececec;
	border-top: 4px solid var(--tcc-gold);
	box-shadow: var(--shadow-soft);
	transition: transform .25s ease, box-shadow .25s ease;
}
.tcc-leader-card:hover { transform: translateY(-5px); box-shadow: var(--shadow-lift); }
.tcc-leader-card .avatar {
	font-size: 30px;
	margin-bottom: 14px;
	width: 56px;
	height: 56px;
	display: flex;
	align-items: center;
	justify-content: center;
	border-radius: 50%;
	background: var(--tcc-cream);
	border: 1px solid var(--tcc-gold-light);
	overflow: hidden;
}
.tcc-leader-card .avatar.avatar-photo img { width: 100%; height: 100%; object-fit: cover; border-radius: 50%; }
.tcc-leader-card .role { color: var(--tcc-gold); font-weight: 700; font-size: 12.5px; text-transform: uppercase; letter-spacing: .5px; }
.tcc-leader-card .name { font-size: 19px; font-weight: 700; margin: 6px 0 10px; font-family: var(--font-heading); color: var(--tcc-navy); }
.tcc-leader-card .quote { font-size: 13.5px; color: var(--tcc-text-muted); font-style: italic; border-left: 2px solid var(--tcc-gold-light); padding-left: 12px; }
.tcc-leader-card a.card-link { display: inline-block; margin-top: 12px; }

/* ============ FACILITIES ============ */
.tcc-facilities-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 18px; text-align: left; }
@media (max-width: 900px) { .tcc-facilities-grid { grid-template-columns: repeat(2,1fr); } }
@media (max-width: 600px) { .tcc-facilities-grid { grid-template-columns: 1fr; } }
.tcc-facility-item {
	padding: 20px;
	background: #fff;
	border: 1px solid #ececec;
	border-radius: var(--radius);
	font-size: 14.5px;
	font-weight: 600;
	color: var(--tcc-navy);
	display: flex;
	align-items: center;
	gap: 14px;
	transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease;
}
.tcc-facility-item:hover { transform: translateY(-3px); box-shadow: var(--shadow-soft); border-color: var(--tcc-gold-light); }
.tcc-facility-item .icon { font-size: 26px; line-height: 1; }

/* ============ HOW TO APPLY ============ */
.tcc-apply-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 40px; }
@media (max-width: 800px) { .tcc-apply-grid { grid-template-columns: 1fr; } }
.tcc-apply-grid ul { padding-left: 20px; }
.tcc-apply-grid ul li::marker { color: var(--tcc-gold); }
.tcc-apply-links { margin-top: 20px; display: flex; flex-wrap: wrap; gap: 12px; }

/* ============ IMPORTANT LINKS ============ */
.tcc-links-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 14px; }
@media (max-width: 700px) { .tcc-links-grid { grid-template-columns: 1fr 1fr; } }
.tcc-links-grid a {
	display: block;
	background: var(--tcc-cream);
	padding: 13px 18px;
	border-radius: 10px;
	font-weight: 600;
	font-size: 14px;
	color: var(--tcc-navy);
	border-left: 3px solid var(--tcc-gold);
	transition: background .2s ease, transform .2s ease;
}
.tcc-links-grid a:hover { background: #fff; box-shadow: var(--shadow-soft); transform: translateX(3px); }

/* ============ CONTACT ============ */
.tcc-contact-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 40px; align-items: start; }
@media (max-width: 800px) { .tcc-contact-grid { grid-template-columns: 1fr; } }
.tcc-contact-item {
	margin-bottom: 16px;
	background: #fff;
	border: 1px solid #ececec;
	border-radius: var(--radius);
	padding: 18px 20px;
	box-shadow: var(--shadow-soft);
}
.tcc-contact-item .label {
	font-weight: 700;
	color: var(--tcc-gold);
	display: block;
	margin-bottom: 6px;
	text-transform: uppercase;
	font-size: 12px;
	letter-spacing: .5px;
}
.tcc-map-embed iframe, .tcc-map-embed img { width: 100%; height: 320px; border: 0; border-radius: var(--radius); box-shadow: var(--shadow-soft); }

/* ============ FOOTER ============ */
.tcc-footer { background: var(--tcc-navy-dark); color: #c6cedb; padding: 56px 0 20px; }
.tcc-footer-grid { display: grid; grid-template-columns: 2fr 1fr 1fr 1.4fr; gap: 30px; }
@media (max-width: 900px) { .tcc-footer-grid { grid-template-columns: 1fr 1fr; } }
@media (max-width: 600px) { .tcc-footer-grid { grid-template-columns: 1fr; } }
.tcc-footer h4 { color: var(--tcc-gold-light); margin-bottom: 14px; font-family: var(--font-heading); }
.tcc-footer ul { list-style: none; padding: 0; margin: 0; }
.tcc-footer ul li { margin-bottom: 8px; font-size: 14px; }
.tcc-footer ul li a { color: #c6cedb; }
.tcc-footer ul li a:hover { color: var(--tcc-gold-light); }
.tcc-footer-bottom {
	text-align: center;
	margin-top: 40px;
	padding-top: 20px;
	border-top: 1px solid rgba(255,255,255,.1);
	font-size: 13px;
	color: #7d8a9c;
}
.tcc-footer-bottom a { color: var(--tcc-gold-light); }

/* ============ CREDITS / DEVELOPED BY ============ */
.tcc-credits-line { margin: 0; }
.tcc-credit-person {
	background: none;
	border: none;
	padding: 0;
	color: var(--tcc-gold-light);
	font-weight: 700;
	cursor: pointer;
	text-decoration: underline;
	text-underline-offset: 3px;
	font: inherit;
}
.tcc-credit-person:hover { color: var(--tcc-gold); }
.tcc-credit-modal-overlay {
	display: none;
	position: fixed; inset: 0;
	background: rgba(11,32,50,.65);
	z-index: 9999;
	align-items: center;
	justify-content: center;
	padding: 20px;
}
.tcc-credit-modal-overlay.active { display: flex; }
.tcc-credit-modal {
	background: #fff;
	border-radius: var(--radius);
	max-width: 420px;
	width: 100%;
	padding: 32px;
	text-align: center;
	position: relative;
	box-shadow: var(--shadow-lift);
}
.tcc-credit-modal .close-btn {
	position: absolute; top: 12px; right: 16px;
	background: none; border: none; font-size: 22px; cursor: pointer; color: var(--tcc-text-muted);
}
.tcc-credit-modal .photo {
	width: 96px; height: 96px; border-radius: 50%; overflow: hidden;
	margin: 0 auto 16px; background: var(--tcc-cream);
	display: flex; align-items: center; justify-content: center;
	border: 2px solid var(--tcc-gold-light); font-size: 40px;
}
.tcc-credit-modal .photo img { width: 100%; height: 100%; object-fit: cover; }
.tcc-credit-modal-social { display: flex; justify-content: center; gap: 10px; margin: 2px 0 14px; }
.tcc-social-icon {
	width: 38px; height: 38px;
	border-radius: 50%;
	display: flex; align-items: center; justify-content: center;
	color: #fff; font-size: 16px;
	cursor: pointer;
	text-decoration: none;
	transition: transform .2s ease, box-shadow .2s ease;
}
.tcc-social-icon:hover { transform: scale(1.1); box-shadow: 0 6px 14px rgba(0,0,0,.28); }
.tcc-social-icon.linkedin { background: #0A66C2; }
.tcc-social-icon.facebook { background: #1877F2; }
.tcc-social-icon.instagram {
	background: radial-gradient(circle at 30% 107%, #fdf497 0%, #fdf497 5%, #fd5949 45%, #d6249f 60%, #285AEB 90%);
}
.tcc-credit-modal .name { font-family: var(--font-heading); font-size: 20px; font-weight: 700; color: var(--tcc-navy); }
.tcc-credit-modal .role { color: var(--tcc-gold); font-weight: 600; font-size: 13px; text-transform: uppercase; letter-spacing: .5px; margin: 4px 0 14px; }
.tcc-credit-modal .bio { color: var(--tcc-text-muted); font-size: 14.5px; line-height: 1.6; }

/* ============ ELEMENTOR EDIT HOOK AREAS ============ */
.elementor-location-header, .elementor-location-footer { width: 100%; }

/* Disable functionality on non-functional demo buttons if data attribute present */
[data-tcc-disabled="true"] { pointer-events: none; opacity: .85; cursor: not-allowed; }
