/* SIPSC Core — Teacher grid.
   Matched to the original theme: circular photos, no card box, green
   designation, navy icon buttons, and Elementor's "Bob" hover float.
   Fonts are NOT set here so your theme's typography flows through.
   Tune the palette with the variables below. */

.sipsc-teachers-grid {
	--sipsc-gap: 30px;
	--sipsc-photo-max: 220px;        /* diameter cap for the circular photo */
	--sipsc-name-color: #1a1a1a;
	--sipsc-name-size: 20px;
	--sipsc-desig-color: #e5397f;    /* pink (distinct from the green name link) */
	--sipsc-desig-size: 14px;
	--sipsc-icon-size: 34px;
	--sipsc-icon-bg: #16205a;        /* brand navy */
	--sipsc-icon-color: #ffffff;
	--sipsc-icon-hover-bg: #00a000;  /* green on hover */
	--sipsc-icon-hover-color: #ffffff;

	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: var(--sipsc-gap);
	margin: 24px 0;
}

.sipsc-teachers-grid.sipsc-cols-1 { grid-template-columns: repeat(1, 1fr); }
.sipsc-teachers-grid.sipsc-cols-2 { grid-template-columns: repeat(2, 1fr); }
.sipsc-teachers-grid.sipsc-cols-3 { grid-template-columns: repeat(3, 1fr); }
.sipsc-teachers-grid.sipsc-cols-4 { grid-template-columns: repeat(4, 1fr); }
.sipsc-teachers-grid.sipsc-cols-5 { grid-template-columns: repeat(5, 1fr); }
.sipsc-teachers-grid.sipsc-cols-6 { grid-template-columns: repeat(6, 1fr); }

/* No card box — clean like the original */
.sipsc-teacher-card {
	background: transparent;
	border: 0;
	box-shadow: none;
	padding: 6px 6px 14px;
	text-align: center;
}

.sipsc-teacher-photo {
	width: 100%;
	max-width: var(--sipsc-photo-max);
	aspect-ratio: 1 / 1;
	margin: 0 auto 16px;
	border-radius: 50%;          /* circular */
	overflow: hidden;
	background: #eef2f7;
}

.sipsc-teacher-photo img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
	border-radius: 50%;
}

.sipsc-teacher-name {
	margin: 0 0 6px;
	font-size: var(--sipsc-name-size);
	line-height: 1.3;
	color: var(--sipsc-name-color);
	/* font-family intentionally inherited from theme headings */
}

.sipsc-teacher-desig {
	color: var(--sipsc-desig-color);
	font-size: var(--sipsc-desig-size);
	font-weight: 600;
	margin-bottom: 14px;
	min-height: 1.2em;
}

.sipsc-teacher-icons {
	display: flex;
	justify-content: center;
	gap: 10px;
}

.sipsc-teacher-icons .sipsc-ic {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: var(--sipsc-icon-size);
	height: var(--sipsc-icon-size);
	border-radius: 50%;
	background: var(--sipsc-icon-bg);
	color: var(--sipsc-icon-color);
	text-decoration: none;
	transition: background 0.25s ease, color 0.25s ease;
}

.sipsc-teacher-icons .sipsc-ic:hover {
	background: var(--sipsc-icon-hover-bg);
	color: var(--sipsc-icon-hover-color);
}

.sipsc-teacher-icons .sipsc-ic svg {
	width: 15px;
	height: 15px;
}

/* ---- "Bob" hover float, matching Elementor's elementor-animation-bob ---- */
@keyframes sipsc-bob-float {
	100% { transform: translateY(-8px); }
}
@keyframes sipsc-bob {
	0%   { transform: translateY(-8px); }
	50%  { transform: translateY(-4px); }
	100% { transform: translateY(-8px); }
}
.sipsc-teacher-card:hover .sipsc-teacher-photo img {
	animation-name: sipsc-bob-float, sipsc-bob;
	animation-duration: 0.3s, 1.5s;
	animation-delay: 0s, 0.3s;
	animation-timing-function: ease-out, ease-in-out;
	animation-iteration-count: 1, infinite;
	animation-direction: normal, alternate;
}
@media (prefers-reduced-motion: reduce) {
	.sipsc-teacher-card:hover .sipsc-teacher-photo img { animation: none; }
}

/* Responsive — these selectors use the SAME two-class specificity as the
   .sipsc-cols-N rules above, so they actually override them (a single-class
   media rule would lose to .sipsc-teachers-grid.sipsc-cols-4 and never apply). */
@media (max-width: 1024px) {
	.sipsc-teachers-grid.sipsc-cols-2,
	.sipsc-teachers-grid.sipsc-cols-3,
	.sipsc-teachers-grid.sipsc-cols-4,
	.sipsc-teachers-grid.sipsc-cols-5,
	.sipsc-teachers-grid.sipsc-cols-6 { grid-template-columns: repeat(2, 1fr); } /* tablet: 2 per row */
}
@media (max-width: 767px) {
	.sipsc-teachers-grid.sipsc-cols-1,
	.sipsc-teachers-grid.sipsc-cols-2,
	.sipsc-teachers-grid.sipsc-cols-3,
	.sipsc-teachers-grid.sipsc-cols-4,
	.sipsc-teachers-grid.sipsc-cols-5,
	.sipsc-teachers-grid.sipsc-cols-6 { grid-template-columns: 1fr; } /* mobile: 1 per row */
}

/* =====================================================================
   Single teacher profile page (templates/single-teacher.php)
   ===================================================================== */
.sipsc-single {
	--sipsc-green: #00a000;
	--sipsc-navy: #16205a;
	max-width: 980px;
	margin: 0 auto;
	padding: 40px 20px 60px;
}
.sipsc-single-hero {
	display: block;
}
.sipsc-single-inner {
	display: flex;
	gap: 34px;
	align-items: center;
	flex-wrap: wrap;
}
.sipsc-single-photo {
	flex: 0 0 auto;
	width: 220px;
	height: 220px;
	border-radius: 50%;
	overflow: hidden;
	background: #eef2f7;
	margin: 0 auto;
	box-shadow: 0 10px 30px rgba(0, 0, 0, 0.12);
}
.sipsc-single-photo img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}
.sipsc-single-head {
	flex: 1 1 320px;
	min-width: 260px;
}
.sipsc-single-name {
	margin: 0 0 6px;
	line-height: 1.2;
	/* font-family + size inherited from theme H1 */
}
.sipsc-single-desig {
	color: #e5397f;
	font-weight: 600;
	font-size: 17px;
	margin-bottom: 18px;
}
.sipsc-single-contact {
	display: flex;
	flex-direction: column;
	gap: 10px;
}
.sipsc-single-contact a {
	display: inline-flex;
	align-items: center;
	gap: 12px;
	color: #333;
	text-decoration: none;
	font-size: 15px;
	width: fit-content;
}
.sipsc-single-contact a svg {
	width: 16px;
	height: 16px;
	flex: 0 0 auto;
	padding: 9px;
	border-radius: 50%;
	background: var(--sipsc-navy);
	color: #fff;
	box-sizing: content-box;
	transition: background 0.25s ease;
}
.sipsc-single-contact a:hover svg { background: var(--sipsc-green); }
.sipsc-single-contact a:hover { color: var(--sipsc-navy); }

.sipsc-single-about {
	margin-top: 40px;
	padding-top: 28px;
	border-top: 1px solid #e6e8ee;
}
.sipsc-single-about-title {
	position: relative;
	margin: 0 0 16px;
	padding-bottom: 10px;
}
.sipsc-single-about-title::after {
	content: "";
	position: absolute;
	left: 0;
	bottom: 0;
	width: 54px;
	height: 3px;
	background: var(--sipsc-green);
	border-radius: 3px;
}
.sipsc-single-about-body { line-height: 1.8; }
.sipsc-single-about-body p { margin: 0 0 1em; }

.sipsc-single-back { margin-top: 40px; }
.sipsc-single-back a {
	color: var(--sipsc-navy);
	font-weight: 600;
	text-decoration: none;
}
.sipsc-single-back a:hover { color: var(--sipsc-green); }

@media (max-width: 640px) {
	.sipsc-single-inner { flex-direction: column; text-align: center; }
	.sipsc-single-contact { align-items: center; }
	.sipsc-single-contact a { width: auto; }
}

/* =====================================================================
   Notice Board  [sipsc_notice_board]
   ===================================================================== */
.sipsc-noticeboard {
	--sipsc-green: #00a000;
	--sipsc-navy: #16205a;
	margin: 24px 0;
}
.sipsc-nb-filters {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	align-items: center;
	margin-bottom: 18px;
}
.sipsc-nb-filters input[type="search"],
.sipsc-nb-filters select {
	padding: 9px 12px;
	border: 1px solid #d6dae2;
	border-radius: 8px;
	font-size: 14px;
	background: #fff;
}
.sipsc-nb-filters input[type="search"] { min-width: 240px; flex: 1 1 240px; }
.sipsc-nb-pp { display: inline-flex; align-items: center; gap: 6px; color: #555; font-size: 14px; }
.sipsc-nb-search-btn {
	padding: 9px 18px;
	border: 0;
	border-radius: 8px;
	background: var(--sipsc-navy);
	color: #fff;
	font-weight: 600;
	cursor: pointer;
	transition: background 0.2s ease;
}
.sipsc-nb-search-btn:hover { background: var(--sipsc-green); }
.sipsc-nb-clear { align-self: center; color: #777; text-decoration: underline; font-size: 13px; }

.sipsc-nb-tablewrap { overflow-x: auto; border-radius: 10px; box-shadow: 0 4px 18px rgba(0,0,0,0.06); }
.sipsc-nb-table {
	width: 100%;
	border-collapse: collapse;
	background: #fff;
	min-width: 640px;
}
.sipsc-nb-table thead th {
	background: var(--sipsc-navy);
	color: #fff;
	text-align: left;
	padding: 13px 16px;
	font-size: 14px;
	font-weight: 600;
	white-space: nowrap;
}
.sipsc-nb-table tbody td {
	padding: 13px 16px;
	border-bottom: 1px solid #eef0f4;
	font-size: 14.5px;
	vertical-align: middle;
}
.sipsc-nb-table tbody tr:hover { background: #f7faf7; }
.sipsc-nb-table .sipsc-nb-sl { width: 56px; text-align: center; }
.sipsc-nb-table td.sipsc-nb-sl { color: #888; }
.sipsc-nb-table .sipsc-nb-date { white-space: nowrap; }
.sipsc-nb-table td.sipsc-nb-date { color: #555; }
.sipsc-nb-table td.sipsc-nb-cat { color: #555; }
.sipsc-nb-table .sipsc-nb-dl { width: 90px; text-align: center; }
.sipsc-nb-title a { color: #1a1a1a; text-decoration: none; font-weight: 600; }
.sipsc-nb-title a:hover { color: var(--sipsc-green); }
.sipsc-nb-pinned { background: #fffdf3; }
.sipsc-nb-pin { margin-right: 4px; }

.sipsc-nb-dlbtn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 34px; height: 34px;
	border-radius: 50%;
	background: var(--sipsc-green);
	color: #fff;
	transition: transform 0.15s ease, background 0.2s ease;
}
.sipsc-nb-dlbtn:hover { transform: translateY(-2px); background: var(--sipsc-navy); }

.sipsc-nb-pagination {
	display: flex;
	flex-wrap: wrap;
	gap: 6px;
	justify-content: center;
	margin-top: 22px;
}
.sipsc-nb-pagination a,
.sipsc-nb-pagination span {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 38px;
	height: 38px;
	padding: 0 12px;
	border-radius: 8px;
	border: 1px solid #e0e3ea;
	color: var(--sipsc-navy);
	text-decoration: none;
	font-size: 14px;
}
.sipsc-nb-pagination a:hover { border-color: var(--sipsc-green); color: var(--sipsc-green); }
.sipsc-nb-pagination .sipsc-nb-current { background: var(--sipsc-navy); color: #fff; border-color: var(--sipsc-navy); }
.sipsc-nb-pagination .sipsc-nb-dots { border: 0; }
.sipsc-nb-empty { padding: 30px; text-align: center; color: #777; background: #fafbfc; border-radius: 10px; }

/* Single notice page */
.sipsc-notice-single { max-width: 820px; }
.sipsc-notice-meta { display: flex; gap: 14px; flex-wrap: wrap; color: #777; font-size: 14px; margin-bottom: 8px; }
.sipsc-notice-cats a { color: var(--sipsc-green, #00a000); text-decoration: none; }
.sipsc-notice-title { margin: 0 0 20px; line-height: 1.25; }
.sipsc-notice-body { line-height: 1.8; margin-bottom: 26px; }
.sipsc-notice-actions { display: flex; gap: 12px; flex-wrap: wrap; }
.sipsc-btn {
	display: inline-flex; align-items: center; gap: 9px;
	padding: 11px 20px; border-radius: 8px; text-decoration: none; font-weight: 600;
	transition: transform 0.15s ease, background 0.2s ease, color 0.2s ease;
}
.sipsc-btn svg { width: 15px; height: 15px; }
.sipsc-btn-primary { background: var(--sipsc-green, #00a000); color: #fff; }
.sipsc-btn-primary:hover { transform: translateY(-2px); }
.sipsc-btn-outline { border: 2px solid var(--sipsc-navy, #16205a); color: var(--sipsc-navy, #16205a); }
.sipsc-btn-outline:hover { background: var(--sipsc-navy, #16205a); color: #fff; }

@media (max-width: 600px) {
	.sipsc-nb-filters input[type="search"] { min-width: 100%; flex-basis: 100%; }
}

/* =====================================================================
   Readability overrides — themes that colour links (e.g. green) can bleed
   into buttons/icons via currentColor. Force white where needed.
   ===================================================================== */
.sipsc-nb-table thead th { color: #fff !important; }
.sipsc-nb-dlbtn,
.sipsc-nb-dlbtn:hover,
.sipsc-nb-dlbtn svg { color: #fff !important; fill: #fff !important; }
.sipsc-btn-primary,
.sipsc-btn-primary:hover,
.sipsc-btn-primary span,
.sipsc-btn-primary svg { color: #fff !important; fill: #fff !important; }
.sipsc-single-contact a svg { color: #fff !important; fill: #fff !important; }
.sipsc-teacher-icons .sipsc-ic,
.sipsc-teacher-icons .sipsc-ic svg { color: #fff !important; fill: #fff !important; }

/* =====================================================================
   Notice Ticker  [sipsc_notice_ticker]
   ===================================================================== */
.sipsc-ticker {
	--sipsc-green: #00a000;
	--sipsc-navy: #16205a;
	--sipsc-ticker-bg: #f2f7f2;
	display: flex;
	align-items: stretch;
	width: 100%;
	background: var(--sipsc-ticker-bg);
	overflow: hidden;
	font-size: 14px;
	line-height: 1.2;
}
.sipsc-ticker-label {
	flex: 0 0 auto;
	display: inline-flex;
	align-items: center;
	background: var(--sipsc-green);
	color: #fff !important;
	font-weight: 700;
	padding: 8px 16px;
	white-space: nowrap;
	position: relative;
}
.sipsc-ticker-label::after {
	content: "";
	position: absolute;
	right: -10px;
	top: 0;
	border-width: 17px 0 17px 10px;
	border-style: solid;
	border-color: transparent transparent transparent var(--sipsc-green);
}
.sipsc-ticker-viewport {
	flex: 1 1 auto;
	overflow: hidden;
	position: relative;
	display: flex;
	align-items: center;
}
.sipsc-ticker-track {
	display: inline-flex;
	flex-wrap: nowrap;
	white-space: nowrap;
	will-change: transform;
	animation-name: sipsc-ticker-scroll;
	animation-timing-function: linear;
	animation-iteration-count: infinite;
	padding-left: 100%;      /* start off-screen right */
}
.sipsc-ticker-viewport:hover .sipsc-ticker-track { animation-play-state: paused; }
.sipsc-ticker-run { display: inline-flex; align-items: center; }
.sipsc-ticker-item {
	color: var(--sipsc-navy);
	text-decoration: none;
	font-weight: 600;
	padding: 8px 4px;
}
a.sipsc-ticker-item:hover { color: var(--sipsc-green); text-decoration: underline; }
.sipsc-ticker-sep { color: var(--sipsc-green); padding: 0 16px; font-weight: 700; }

@keyframes sipsc-ticker-scroll {
	0%   { transform: translateX(0); }
	100% { transform: translateX(-50%); }
}
@media (prefers-reduced-motion: reduce) {
	.sipsc-ticker-track { animation: none; padding-left: 12px; }
	.sipsc-ticker-track .sipsc-ticker-run:nth-child(2) { display: none; }
}

/* =====================================================================
   Single notice page — compact title + framed file preview
   ===================================================================== */
.sipsc-notice-single .sipsc-notice-title {
	font-size: 20px !important;   /* override the theme's large H1 */
	line-height: 1.35;
	font-weight: 700;
	margin: 0 0 16px;
}
.sipsc-notice-single .sipsc-notice-actions { margin: 0 0 18px; }

.sipsc-notice-frame {
	border: 1px solid #e2e6ee;
	border-radius: 12px;
	background: #fafbfc;
	padding: 14px;
	box-shadow: 0 6px 22px rgba(0, 0, 0, 0.06);
	margin-bottom: 24px;
}
.sipsc-notice-embed-img {
	display: block;
	max-width: 100%;
	height: auto;
	margin: 0 auto;
	border-radius: 6px;
}
.sipsc-notice-embed-pdf {
	display: block;
	width: 100%;
	height: 80vh;
	min-height: 520px;
	border: 0;
	border-radius: 6px;
	background: #fff;
}
.sipsc-notice-frame-fallback { margin: 0; padding: 20px; text-align: center; color: #666; }
.sipsc-notice-body-frame { background: #fff; }
.sipsc-notice-body-frame .sipsc-notice-body { margin: 0; }

@media (max-width: 600px) {
	.sipsc-notice-embed-pdf { height: 68vh; min-height: 380px; }
}

/* =====================================================================
   Contact page  [sipsc_contact_table] + [sipsc_map]
   ===================================================================== */
.sipsc-contact-wrap {
	--sipsc-green: #00a000;
	--sipsc-navy: #16205a;
	overflow-x: auto;
	border-radius: 10px;
	box-shadow: 0 4px 18px rgba(0, 0, 0, 0.06);
	margin: 24px 0;
}
.sipsc-contact-table {
	width: 100%;
	border-collapse: collapse;
	background: #fff;
	min-width: 560px;
}
.sipsc-contact-table thead th {
	background: var(--sipsc-navy);
	color: #fff !important;
	text-align: left;
	padding: 13px 16px;
	font-size: 14px;
	font-weight: 600;
	white-space: nowrap;
}
.sipsc-contact-table tbody td {
	padding: 13px 16px;
	border-bottom: 1px solid #eef0f4;
	font-size: 14.5px;
	vertical-align: middle;
}
.sipsc-contact-table tbody tr:hover { background: #f7faf7; }
.sipsc-contact-table .sipsc-ct-sl { width: 56px; text-align: center; color: #888; }
.sipsc-contact-table .sipsc-ct-office { font-weight: 600; color: #1a1a1a; }
.sipsc-contact-table a.sipsc-ct-phone { color: var(--sipsc-navy); text-decoration: none; font-weight: 600; }
.sipsc-contact-table a.sipsc-ct-phone:hover { color: var(--sipsc-green); }
.sipsc-contact-table a.sipsc-ct-email { color: #555; text-decoration: none; }
.sipsc-contact-table a.sipsc-ct-email:hover { color: var(--sipsc-green); }

.sipsc-map {
	margin: 24px 0;
	border-radius: 12px;
	overflow: hidden;
	box-shadow: 0 6px 22px rgba(0, 0, 0, 0.08);
	line-height: 0;
}
.sipsc-map iframe { display: block; width: 100%; }

/* =====================================================================
   Syllabus  [sipsc_syllabus]
   ===================================================================== */
.sipsc-syllabus { --sipsc-green:#00a000; --sipsc-navy:#16205a; margin:24px 0; }
.sipsc-syl-years { display:flex; flex-wrap:wrap; gap:8px; align-items:center; margin-bottom:22px; }
.sipsc-syl-years-label { font-weight:700; color:var(--sipsc-navy); margin-right:4px; }
.sipsc-syl-year {
	display:inline-flex; align-items:center; padding:7px 16px; border-radius:999px;
	border:1px solid #d9dde6; color:var(--sipsc-navy); text-decoration:none; font-weight:600; font-size:14px;
	transition:all .2s ease;
}
.sipsc-syl-year:hover { border-color:var(--sipsc-green); color:var(--sipsc-green); }
.sipsc-syl-year.active { background:var(--sipsc-navy); color:#fff !important; border-color:var(--sipsc-navy); }
.sipsc-syl-group { margin-bottom:26px; }
.sipsc-syl-level {
	margin:0 0 12px; padding:0 0 8px; font-size:18px; position:relative; color:var(--sipsc-navy);
	border-bottom:2px solid #eef0f4;
}
.sipsc-syl-level::after { content:""; position:absolute; left:0; bottom:-2px; width:60px; height:2px; background:var(--sipsc-green); }
.sipsc-syl-list { display:flex; flex-direction:column; gap:2px; }
.sipsc-syl-item {
	display:flex; align-items:center; gap:14px; padding:12px 14px; background:#fff;
	border:1px solid #eef0f4; border-radius:8px;
}
.sipsc-syl-item:hover { border-color:#dfe3ea; background:#f9fbf9; }
.sipsc-syl-sl { flex:0 0 auto; width:26px; text-align:center; color:#999; font-size:13px; }
.sipsc-syl-name { flex:1 1 auto; color:#1a1a1a; text-decoration:none; font-weight:600; }
a.sipsc-syl-name:hover { color:var(--sipsc-green); }
.sipsc-syl-dl {
	flex:0 0 auto; display:inline-flex; align-items:center; justify-content:center;
	width:34px; height:34px; border-radius:50%; background:var(--sipsc-green); color:#fff !important;
	transition:transform .15s ease, background .2s ease;
}
.sipsc-syl-dl svg { fill:#fff !important; }
a.sipsc-syl-dl:hover { transform:translateY(-2px); background:var(--sipsc-navy); }

/* =====================================================================
   Governing Body  [sipsc_gb]
   ===================================================================== */
.sipsc-gb { --sipsc-green:#00a000; --sipsc-navy:#16205a; margin:24px 0; }
.sipsc-gb-approval {
	display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:14px;
	background:#f2f7f2; border:1px solid #d9e6d9; border-radius:12px; padding:16px 20px; margin-bottom:22px;
}
.sipsc-gb-approval-text { font-weight:700; color:var(--sipsc-navy); }
.sipsc-gb-wrap { overflow-x:auto; border-radius:10px; box-shadow:0 4px 18px rgba(0,0,0,.06); }
.sipsc-gb-table { width:100%; border-collapse:collapse; background:#fff; min-width:620px; }
.sipsc-gb-table thead th {
	background:var(--sipsc-navy); color:#fff !important; text-align:left; padding:13px 16px;
	font-size:14px; font-weight:600; white-space:nowrap;
}
.sipsc-gb-table tbody td { padding:12px 16px; border-bottom:1px solid #eef0f4; font-size:14.5px; vertical-align:middle; }
.sipsc-gb-table tbody tr:hover { background:#f7faf7; }
.sipsc-gb-table .sipsc-gb-sl { width:52px; text-align:center; color:#888; }
.sipsc-gb-table .sipsc-gb-ph { width:70px; }
.sipsc-gb-table .sipsc-gb-ph img { width:48px; height:48px; border-radius:50%; object-fit:cover; display:block; }
.sipsc-gb-noimg { display:inline-block; width:48px; height:48px; border-radius:50%; background:#e9edf3; }
.sipsc-gb-table .sipsc-gb-name { font-weight:600; color:#1a1a1a; }

@media (max-width:600px){
	.sipsc-gb-approval { flex-direction:column; align-items:flex-start; }
}
