/* Bhavans School Suite v1.7.16 — Professional page completion
 * Scope: Suite-owned TC, information/policy, committee and publication pages only.
 * The approved Events Calendar renderer/assets are intentionally untouched.
 */

.bss-simple-page .bss-hero,
.bss-committee-page .bss-hero,
.bss-publications-page .bss-hero,
.bss-page[data-bss-module="tc"] .bss-hero {
	position: relative;
	overflow: hidden;
}

.bss-simple-page .bss-hero::after,
.bss-committee-page .bss-hero::after,
.bss-publications-page .bss-hero::after,
.bss-page[data-bss-module="tc"] .bss-hero::after {
	content: "";
	position: absolute;
	right: -90px;
	top: -110px;
	width: 360px;
	height: 360px;
	border: 1px solid rgba(255,255,255,.12);
	border-radius: 50%;
	box-shadow: 0 0 0 44px rgba(255,255,255,.035), 0 0 0 88px rgba(255,255,255,.02);
	pointer-events: none;
}

.bss-simple-page .bss-hero .bss-container,
.bss-committee-page .bss-hero .bss-container,
.bss-publications-page .bss-hero .bss-container,
.bss-page[data-bss-module="tc"] .bss-hero .bss-container {
	position: relative;
	z-index: 1;
}

/* Information pages: readable editorial measure rather than one generic wide text block. */
.bss-simple-page .bss-info-layout--single {
	grid-template-columns: minmax(0, 920px);
	justify-content: center;
}

.bss-simple-page .bss-richtext {
	font-size: 16px;
}

.bss-simple-page .bss-richtext > h2 {
	position: relative;
	padding-bottom: 12px;
	border-bottom: 1px solid var(--bss-border);
}

.bss-simple-page .bss-richtext > h2::after {
	content: "";
	position: absolute;
	left: 0;
	bottom: -1px;
	width: 64px;
	height: 3px;
	background: var(--bss-gold);
}

.bss-simple-page .bss-richtext > p:first-of-type {
	font-size: 16px;
}

.bss-simple-page .bss-richtext a:not(.bss-primary-link) {
	color: var(--bss-blue);
	font-weight: 700;
	text-underline-offset: 3px;
}

.bss-simple-page .bss-richtext a:not(.bss-primary-link):focus-visible,
.bss-resource-card a:focus-visible,
.bss-page[data-bss-module="tc"] a:focus-visible,
.bss-publications-page a:focus-visible {
	outline: 3px solid var(--bss-gold);
	outline-offset: 3px;
}

/* Policies and rules: convert long lists into scannable policy cards. */
.bss-simple-page--conduct .bss-richtext,
.bss-simple-page--rules .bss-richtext {
	counter-reset: bss-policy-section;
}

.bss-simple-page--conduct .bss-richtext > h2,
.bss-simple-page--rules .bss-richtext > h2 {
	counter-increment: bss-policy-section;
	display: grid;
	grid-template-columns: 42px minmax(0,1fr);
	gap: 13px;
	align-items: center;
}

.bss-simple-page--conduct .bss-richtext > h2::before,
.bss-simple-page--rules .bss-richtext > h2::before {
	content: counter(bss-policy-section, decimal-leading-zero);
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 42px;
	height: 42px;
	background: var(--bss-navy);
	color: var(--bss-gold);
	font-size: 12px;
	font-weight: 900;
	letter-spacing: .05em;
}

.bss-simple-page--conduct .bss-richtext > ul,
.bss-simple-page--conduct .bss-richtext > ol,
.bss-simple-page--rules .bss-richtext > ul,
.bss-simple-page--rules .bss-richtext > ol {
	display: grid;
	gap: 10px;
	margin: 15px 0 28px;
	padding: 0;
	list-style: none;
}

.bss-simple-page--conduct .bss-richtext > ul > li,
.bss-simple-page--conduct .bss-richtext > ol > li,
.bss-simple-page--rules .bss-richtext > ul > li,
.bss-simple-page--rules .bss-richtext > ol > li {
	position: relative;
	margin: 0;
	padding: 14px 16px 14px 42px;
	border: 1px solid var(--bss-border);
	background: #fff;
	box-shadow: 0 5px 18px rgba(0,33,71,.035);
}

.bss-simple-page--conduct .bss-richtext > ul > li::before,
.bss-simple-page--conduct .bss-richtext > ol > li::before,
.bss-simple-page--rules .bss-richtext > ul > li::before,
.bss-simple-page--rules .bss-richtext > ol > li::before {
	content: "✓";
	position: absolute;
	left: 15px;
	top: 14px;
	color: var(--bss-blue);
	font-weight: 900;
}

/* Admissions policy: journey-like ordered process without changing policy wording. */
.bss-simple-page--admission-policy .bss-richtext > ol {
	counter-reset: bss-admission-step;
	display: grid;
	gap: 12px;
	margin: 18px 0 30px;
	padding: 0;
	list-style: none;
}

.bss-simple-page--admission-policy .bss-richtext > ol > li {
	counter-increment: bss-admission-step;
	position: relative;
	min-height: 58px;
	padding: 16px 18px 16px 68px;
	border: 1px solid var(--bss-border);
	border-left: 4px solid var(--bss-gold);
	background: #fff;
}

.bss-simple-page--admission-policy .bss-richtext > ol > li::before {
	content: counter(bss-admission-step, decimal-leading-zero);
	position: absolute;
	left: 16px;
	top: 13px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 38px;
	height: 38px;
	background: var(--bss-navy);
	color: var(--bss-gold);
	font-size: 11px;
	font-weight: 900;
}

.bss-simple-page--admission-policy .bss-richtext > ul {
	display: grid;
	grid-template-columns: repeat(2,minmax(0,1fr));
	gap: 10px;
	padding: 0;
	list-style: none;
}

.bss-simple-page--admission-policy .bss-richtext > ul > li {
	position: relative;
	padding: 13px 14px 13px 38px;
	border: 1px solid var(--bss-border);
	background: var(--bss-soft);
}

.bss-simple-page--admission-policy .bss-richtext > ul > li::before {
	content: "•";
	position: absolute;
	left: 17px;
	color: var(--bss-gold);
	font-size: 22px;
	font-weight: 900;
	line-height: 1;
}

/* Prayer page: calm, ceremonial presentation while refusing to invent prayer text. */
.bss-simple-page--prayer .bss-info-layout--single {
	grid-template-columns: minmax(0, 820px);
}

.bss-simple-page--prayer .bss-prayer-status {
	position: relative;
	padding: clamp(34px,6vw,64px);
	border: 1px solid var(--bss-border);
	border-top: 5px solid var(--bss-gold);
	background: linear-gradient(180deg,#fff 0%,#f7f9fc 100%);
	text-align: center;
	box-shadow: 0 14px 34px rgba(0,33,71,.07);
}

.bss-simple-page--prayer .bss-prayer-status::before {
	content: "✦";
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 64px;
	height: 64px;
	margin-bottom: 18px;
	border: 1px solid rgba(0,33,71,.12);
	border-radius: 50%;
	background: #fff;
	color: var(--bss-navy);
	font-size: 27px;
	font-weight: 700;
}

.bss-simple-page--prayer .bss-prayer-status > span {
	display: block;
	color: var(--bss-blue);
	font-size: 11px;
	font-weight: 900;
	letter-spacing: .09em;
	text-transform: uppercase;
}

.bss-simple-page--prayer .bss-prayer-status h2 {
	margin: 9px 0 12px;
	padding: 0;
	border: 0;
}

.bss-simple-page--prayer .bss-prayer-status h2::after {
	display: none;
}

.bss-simple-page--prayer .bss-prayer-status p {
	max-width: 620px;
	margin: 0 auto;
}

/* Timings: strong schedule hierarchy with safe horizontal scroll on narrow screens. */
.bss-simple-page--timings .bss-info-layout {
	grid-template-columns: minmax(0,1fr);
}

.bss-simple-page--timings .bss-resource-card {
	position: relative;
	top: auto;
	max-width: 520px;
}

.bss-simple-page--timings .bss-dynamic-timings > section {
	margin-bottom: 34px;
	padding: clamp(18px,3vw,28px);
	border: 1px solid var(--bss-border);
	border-top: 4px solid var(--bss-gold);
	background: #fff;
	box-shadow: 0 8px 24px rgba(0,33,71,.045);
}

.bss-simple-page--timings .bss-dynamic-timings .bss-section-heading h2 {
	font-size: clamp(24px,3vw,32px);
}

.bss-simple-page--timings .bss-table-scroll {
	overflow-x: auto;
	-webkit-overflow-scrolling: touch;
}

.bss-simple-page--timings .bss-table-scroll table {
	min-width: 720px;
}

.bss-simple-page--timings .bss-table-scroll tbody tr:nth-child(even) td {
	background: #f8fafc;
}

/* Uniform: let photographs and garment details read like a visual guide. */
.bss-simple-page--uniform .bss-info-layout {
	grid-template-columns: minmax(0,1fr);
}

.bss-simple-page--uniform .bss-resource-card {
	position: relative;
	top: auto;
	max-width: 520px;
}

.bss-simple-page--uniform .bss-dynamic-grid--uniform {
	grid-template-columns: repeat(3,minmax(0,1fr));
	gap: 22px;
}

.bss-simple-page--uniform .bss-uniform-card {
	border: 1px solid var(--bss-border);
	border-top: 4px solid var(--bss-gold);
	background: #fff;
	box-shadow: 0 9px 26px rgba(0,33,71,.055);
	overflow: hidden;
}

.bss-simple-page--uniform .bss-uniform-card__image {
	aspect-ratio: 4/5;
	background: var(--bss-soft);
	overflow: hidden;
}

.bss-simple-page--uniform .bss-uniform-card__image img,
.bss-simple-page--uniform .bss-uniform-card__image .bss-image-placeholder {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.bss-simple-page--uniform .bss-uniform-card__body {
	padding: 19px;
}

.bss-simple-page--uniform .bss-uniform-card__body h3 {
	margin: 0 0 12px;
	color: var(--bss-navy);
	font-size: 21px;
}

.bss-simple-page--uniform .bss-uniform-card__body p {
	margin: 10px 0 0;
	color: var(--bss-muted);
	font-size: 13px;
	line-height: 1.65;
}

/* TC is an existing functional page; this is finalisation only, not a rebuild. */
.bss-page[data-bss-module="tc"] .bss-main {
	background: #f8fafc;
}

.bss-tc-intro-cards {
	display: grid;
	grid-template-columns: repeat(3,minmax(0,1fr));
	gap: 14px;
	margin-bottom: 24px;
}

.bss-tc-intro-cards > div {
	position: relative;
	min-height: 132px;
	padding: 20px 18px 18px 66px;
	border: 1px solid var(--bss-border);
	background: #fff;
	box-shadow: 0 6px 20px rgba(0,33,71,.04);
}

.bss-tc-intro-cards > div > span {
	position: absolute;
	left: 18px;
	top: 20px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 36px;
	height: 36px;
	background: var(--bss-navy);
	color: var(--bss-gold);
	font-size: 10px;
	font-weight: 900;
}

.bss-tc-intro-cards strong,
.bss-tc-intro-cards small {
	display: block;
}

.bss-tc-intro-cards strong {
	margin-bottom: 7px;
	color: var(--bss-navy);
	font-size: 16px;
	line-height: 1.35;
}

.bss-tc-intro-cards small {
	color: var(--bss-muted);
	font-size: 12px;
	line-height: 1.6;
}

.bss-page[data-bss-module="tc"] .bss-filter-app {
	padding: clamp(18px,3vw,28px);
	border: 1px solid var(--bss-border);
	background: #fff;
	box-shadow: 0 10px 28px rgba(0,33,71,.055);
}

.bss-page[data-bss-module="tc"] .bss-record-card {
	transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}

.bss-page[data-bss-module="tc"] .bss-record-card:hover {
	transform: translateY(-2px);
	border-color: #c7d2df;
	box-shadow: 0 10px 26px rgba(0,33,71,.08);
}

/* Committee: governance profiles with consistent portrait proportions. */
.bss-committee-page .bss-main {
	background: #f8fafc;
}

.bss-committee-page .bss-section-heading {
	max-width: 760px;
}

.bss-committee-page .bss-profile-grid {
	grid-template-columns: repeat(3,minmax(0,1fr));
	gap: 22px;
}

.bss-committee-page .bss-profile-card {
	transition: transform .18s ease, box-shadow .18s ease;
}

.bss-committee-page .bss-profile-card:hover {
	transform: translateY(-3px);
	box-shadow: 0 14px 32px rgba(0,33,71,.09);
}

.bss-committee-page .bss-profile-photo {
	aspect-ratio: 4/5;
}

.bss-committee-page .bss-profile-body {
	padding: 20px;
}

.bss-committee-page .bss-profile-body > strong {
	display: block;
	margin-top: 7px;
	color: var(--bss-blue);
	font-size: 13px;
}

/* E-publications: a real searchable library visual, not a generic card collection. */
.bss-publications-page .bss-main {
	background: #f8fafc;
}

.bss-library-intro {
	display: grid;
	grid-template-columns: minmax(260px,.8fr) minmax(0,1.2fr);
	gap: 26px;
	align-items: end;
	margin-bottom: 22px;
	padding: 22px 24px;
	border-left: 5px solid var(--bss-gold);
	background: var(--bss-navy);
	color: #fff;
}

.bss-library-intro > div > span,
.bss-library-intro > div > strong {
	display: block;
}

.bss-library-intro > div > span {
	margin-bottom: 7px;
	color: var(--bss-gold);
	font-size: 10px;
	font-weight: 900;
	letter-spacing: .09em;
	text-transform: uppercase;
}

.bss-library-intro > div > strong {
	font-size: clamp(20px,2.5vw,28px);
	line-height: 1.25;
}

.bss-library-intro p {
	margin: 0;
	color: #dbe6f1;
	font-size: 13px;
	line-height: 1.65;
}

.bss-publications-page .bss-filter-app {
	padding: clamp(18px,3vw,28px);
	border: 1px solid var(--bss-border);
	background: #fff;
	box-shadow: 0 10px 28px rgba(0,33,71,.05);
}

.bss-publications-page .bss-card-grid {
	grid-template-columns: repeat(3,minmax(0,1fr));
	gap: 22px;
}

.bss-publications-page .bss-publication-card {
	transition: transform .18s ease, box-shadow .18s ease;
}

.bss-publications-page .bss-publication-card:hover {
	transform: translateY(-3px);
	box-shadow: 0 14px 32px rgba(0,33,71,.09);
}

.bss-publications-page .bss-publication-cover {
	aspect-ratio: 4/5;
	background: linear-gradient(145deg,#002147,#0c4a7d);
}

.bss-publications-page .bss-publication-cover img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.bss-publications-page .bss-publication-body {
	padding: 19px;
}

/* Shared policy note treatment used by timings/uniform dynamic renderers. */
.bss-simple-page .bss-policy-note {
	margin-top: 24px;
	padding: 15px 17px;
	border-left: 4px solid var(--bss-gold);
	background: #fff8d7;
	color: #5f5200;
	font-size: 13px;
	line-height: 1.65;
}

.bss-simple-page .bss-policy-note strong {
	color: var(--bss-navy);
}

@media (max-width: 1024px) {
	.bss-simple-page--uniform .bss-dynamic-grid--uniform,
	.bss-committee-page .bss-profile-grid,
	.bss-publications-page .bss-card-grid {
		grid-template-columns: repeat(2,minmax(0,1fr));
	}

	.bss-tc-intro-cards {
		grid-template-columns: 1fr;
	}

	.bss-tc-intro-cards > div {
		min-height: 0;
	}
}

@media (max-width: 860px) {
	.bss-simple-page .bss-info-layout {
		grid-template-columns: 1fr;
	}

	.bss-simple-page .bss-resource-card {
		position: relative;
		top: auto;
	}

	.bss-library-intro {
		grid-template-columns: 1fr;
		align-items: start;
	}
}

@media (max-width: 680px) {
	.bss-simple-page .bss-hero::after,
	.bss-committee-page .bss-hero::after,
	.bss-publications-page .bss-hero::after,
	.bss-page[data-bss-module="tc"] .bss-hero::after {
		right: -180px;
		top: -150px;
	}

	.bss-simple-page--admission-policy .bss-richtext > ul,
	.bss-simple-page--uniform .bss-dynamic-grid--uniform,
	.bss-committee-page .bss-profile-grid,
	.bss-publications-page .bss-card-grid {
		grid-template-columns: 1fr;
	}

	.bss-simple-page--conduct .bss-richtext > h2,
	.bss-simple-page--rules .bss-richtext > h2 {
		grid-template-columns: 36px minmax(0,1fr);
		gap: 10px;
	}

	.bss-simple-page--conduct .bss-richtext > h2::before,
	.bss-simple-page--rules .bss-richtext > h2::before {
		width: 36px;
		height: 36px;
	}

	.bss-library-intro,
	.bss-page[data-bss-module="tc"] .bss-filter-app {
		padding: 17px;
	}
}
