/* Frontend — Personnel cards + modal (Figma 15:51349 / 15:51996) */
.spp {
	display: flex;
	flex-direction: column;
	gap: 60px;
	width: 100%;
	box-sizing: border-box;
	font-family: "Noto Sans Thai", system-ui, sans-serif;
}
.spp *,
.spp *::before,
.spp *::after {
	box-sizing: border-box;
}
.spp__section {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 24px;
	width: 100%;
	container-type: inline-size;
}
.spp__section-head {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 0;
}
.spp__section-title {
	margin: 0;
	font-weight: 600;
	font-size: 40px;
	line-height: normal;
	color: #101a30;
	text-align: center;
}
.spp__accent {
	display: block;
	width: 68px;
	height: 4px;
	margin-top: 8px;
	border-radius: 2px;
	background: linear-gradient(90deg, #afd136 0%, #47a2da 100%);
}
.spp__empty {
	margin: 0;
	color: #6a6a6a;
	text-align: center;
}
.spp__grid {
	--spp-cols: 4;
	--spp-gap: 32px;
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: var(--spp-gap);
	width: 100%;
	max-width: 1340px;
}
.spp__card {
	width: calc((100% - (var(--spp-cols) - 1) * var(--spp-gap)) / var(--spp-cols));
	max-width: 100%;
	background: #fff;
	border-radius: 8px;
	overflow: hidden;
	box-shadow:
		0 16px 32px -4px rgba(12, 12, 13, 0.1),
		0 4px 4px -4px rgba(12, 12, 13, 0.05);
}
.spp__card-photo {
	display: block;
	width: 100%;
	aspect-ratio: 313 / 320;
	background: #eef4ff;
	overflow: hidden;
}
.spp__card-photo img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: top center;
	display: block;
}
.spp__card-body {
	display: flex;
	flex-direction: column;
	align-items: center;
	/* gap: 16px; */
	padding: 16px 8px;
	background: #fff;
	text-align: center;
}
.spp__card-role {
	margin: 0;
	font-weight: 600;
	font-size: 14px;
	line-height: 1.5;
	min-height: 3em; /* reserve 2 lines */
	color: #08349e;
	text-transform: uppercase;
}
.spp__card-name {
	margin: 0;
	font-weight: 600;
	font-size: 20px;
	line-height: 1.5;
	min-height: 3em; /* reserve 2 lines */
	color: #111;
}
.spp__card-line {
	display: block;
	width: 100%;
	height: 2px;
	background: linear-gradient(90deg, #afd136 0%, #47a2da 100%);
}
.spp__card-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	padding: 8px 24px;
	border: 0;
	background: #f2f2f2;
	border-radius: 4px;
	font: inherit;
	font-weight: 600;
	font-size: 16px;
	color: #6a6a6a;
	text-transform: uppercase;
	cursor: pointer;
    margin-top: 16px;
}
.spp__card-btn:hover {
	background: #e8e8e8;
}
.spp__search-icon {
	display: block;
	flex-shrink: 0;
}

/* Modal */
.spp-modal[hidden] {
	display: none !important;
}
.spp-modal {
	position: fixed;
	inset: 0;
	z-index: 100000;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 24px;
}
.spp-modal__backdrop {
	position: absolute;
	inset: 0;
	background: rgba(16, 26, 48, 0.45);
}
.spp-modal__dialog {
	position: relative;
	z-index: 1;
	width: min(800px, 100%);
	max-height: min(90vh, 900px);
	overflow: auto;
	background: #f8f9fa;
	border-radius: 8px;
	padding: 30px;
	box-shadow:
		0 16px 32px -4px rgba(12, 12, 13, 0.1),
		0 4px 4px -4px rgba(12, 12, 13, 0.05);
}
.spp-modal__close {
	position: absolute;
	top: 16px;
	right: 16px;
	width: 30px;
	height: 30px;
	border: 0;
	padding: 0;
	background: transparent;
	cursor: pointer;
	color: #111;
	display: flex;
	align-items: center;
	justify-content: center;
}
.spp-modal__inner {
	display: flex;
	gap: 24px;
	align-items: flex-start;
}
.spp-modal__photo-wrap {
	flex: 0 0 235px;
	width: 235px;
	height: 320px;
	border-radius: 16px;
	overflow: hidden;
	background: #f2efe8;
}
.spp-modal__photo {
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: top center;
	display: block;
}
.spp-modal__content {
	flex: 1 1 auto;
	min-width: 0;
	padding-right: 24px;
}
.spp-modal__role {
	margin: 0;
	font-weight: 700;
	font-size: 14px;
	line-height: 16px;
	color: #08349e;
	text-transform: uppercase;
}
.spp-modal__name,
.spp-modal__age {
	margin: 0;
	padding-top: 8px;
	font-weight: 600;
	font-size: 22px;
	line-height: normal;
	color: #111;
	text-transform: uppercase;
}
.spp-modal__age {
	padding-top: 0;
}
.spp-modal__accent {
	display: block;
	width: 68px;
	height: 4px;
	margin: 12px 0 8px;
	border-radius: 2px;
	background: linear-gradient(90deg, #afd136 0%, #47a2da 100%);
}
.spp-modal__block {
	padding-top: 8px;
}
.spp-modal__block h4 {
	margin: 0 0 4px;
	font-weight: 700;
	font-size: 14px;
	color: #08349e;
	text-transform: uppercase;
}
.spp-modal__block ul {
	margin: 0;
	padding-left: 21px;
}
.spp-modal__block li,
.spp-modal__block p {
	margin: 0 0 4px;
	font-size: 14px;
	line-height: normal;
	color: #111;
	text-transform: uppercase;
}
/* Columns follow the block's own width (it sits inside nested theme containers) */
@container (max-width: 1055px) {
	.spp__grid {
		--spp-cols: 3;
	}
}
@container (max-width: 783px) {
	.spp__grid {
		--spp-cols: 2;
	}
}
@container (max-width: 511px) {
	.spp__grid {
		--spp-cols: 1;
	}
	.spp__card {
		max-width: 313px;
	}
}
@media (max-width: 720px) {
	.spp__section-title {
		font-size: 28px;
	}
	.spp__grid {
		--spp-gap: 24px;
	}
	.spp-modal__inner {
		flex-direction: column;
	}
	.spp-modal__photo-wrap {
		width: 100%;
		flex-basis: auto;
		height: 280px;
	}
	.spp-modal__content {
		padding-right: 0;
	}
}
