/**
 * Student Support listing + single styles.
 * Loaded on the listing page template and CPT detail pages (no admission.css).
 *
 * Shared: body type, breadcrumbs, lists, get-in-touch / Have a question.
 * Listing: page-banner hero, find-a-support bar, cards, support-service.
 * Single: program-type hero, detail body / para-content / contact rows.
 */

body {
	color: #262626;
	font-size: 18px !important;
	line-height: 28px !important;
}

h2 {
	font-size: 3rem;
	line-height: 60px;
	font-weight: 500;
	margin: 0 0 2rem 0;
}

.custom-section {
	padding: 40px 0;
}

.custom-section.pt-0 {
	padding-top: 0;
}

.custom-title h2 {
	margin: 0 0 1.5rem 0;
	font-family: "program", "Program OT", Arial, Helvetica, sans-serif !important;
	color: #262626;
}

/* Shared: listing + single */

p:empty {
	display: none;
}

.breadcrumbs {
	display: inline-block;
	width: 100%;
	vertical-align: top;
	background: #000;
	padding: 28px 0;
}

.breadcrumbs ul {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
}

.breadcrumbs li {
	margin: 0 0.5rem 0 0;
}

.breadcrumbs li:last-child {
	margin: 0;
}

.breadcrumbs li a {
	color: #b7b7b7;
	font-size: 1rem;
	font-style: normal;
	font-weight: normal;
	line-height: 1.5rem;
	text-decoration: underline;
	display: inline-block;
}

.breadcrumbs li span {
	color: #fff;
}

.breadcrumbs li a i {
	font-size: 10px;
	vertical-align: middle;
	margin-left: 0.5rem;
	width: auto;
}

.breadcrumbs li a,
.breadcrumbs li span {
	line-height: 24px;
	font-size: 16px;
}

/* Listing: page-banner hero */

.page-title-section {
	background: #000;
	overflow: hidden;
}

.page-banner {
	display: flex;
	flex-wrap: wrap;
}

.page-banner-text {
	color: #fff;
	width: 40%;
	padding: 3rem 40px 0 0;
}

.page-banner-media {
	position: relative;
	width: 60vw;
	margin-right: calc(-60vw + 50%);
	max-height: 580px;
}

.page-banner-media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
	max-height: 580px;
	min-height: 580px;
	object-position: right top;
}

.page-banner .page-title {
	font-size: 60px;
	line-height: 72px;
	font-weight: normal;
	letter-spacing: 0.3px;
	padding: 1rem 0;
	margin: 0;
	font-family: "Program OT", "program", Arial, Helvetica, sans-serif;
	-webkit-text-stroke: 0.2px transparent;
}

.page-banner .page-banner-description {
	padding: 0.5rem 0;
	font-size: 20px;
	line-height: 28px;
	font-weight: 600;
	color: #fff;
}

.page-banner-description p {
	padding-top: 0 !important;
	padding-bottom: 8px !important;
	margin: 0 !important;
}

.page-banner-description p:last-child {
	padding-bottom: 0 !important;
}

.page-banner-description p:empty {
	display: none !important;
}

.page-banner-description p + ul,
.page-banner-description p + ol,
.page-banner-description p + .cms-list-type {
	margin-top: 8px !important;
}

.page-banner-description ul + p,
.page-banner-description ol + p,
.page-banner-description .cms-list-type + p {
	margin-top: 16px !important;
}

.page-banner-description ul,
.page-banner-description ol,
.page-banner-description .cms-list-type {
	padding-top: 0 !important;
	padding-bottom: 0 !important;
	padding-left: 25px !important;
	margin-bottom: 0 !important;
}

.page-banner-description .cms-list-type li {
	padding-bottom: 0.5rem !important;
}

.page-banner-description .cms-list-type li:last-child {
	padding-bottom: 0 !important;
}

.grey-bg-section {
	background-color: #eeeeee;
}

.intro-tile-text {
	padding-bottom: 24px;
}

.intro-tile-text p {
	font-size: 1.25rem !important;
	line-height: 1.75rem !important;
	font-weight: 600 !important;
	color: #262626 !important;
	padding: 0 !important;
	margin: 0 !important;
}

.intro-text p {
	font-family: "source-sans-pro", Arial, Helvetica, sans-serif !important;
	font-weight: 400 !important;
	font-size: 1.125rem !important;
	line-height: 1.75rem !important;
	color: #262626 !important;
	padding-top: 0;
	padding-bottom: 8px;
}

.intro-text.entry-content a,
.intro-text.entry-content a:link,
.intro-text.entry-content a:visited,
.intro-text.entry-content a:hover,
.intro-text.entry-content a:focus {
	color: #0c71ac;
}

.entry-content p {
	padding: 0.5rem 0;
	margin: 0;
}

.entry-content p:first-child {
	padding-top: 0;
}

.entry-content p:last-child {
	padding-bottom: 0;
}

.cms-list-type {
	list-style-type: disc;
	list-style-position: outside;
	padding: 0 0 0 25px !important;
	margin-left: 0 !important;
	margin-right: 0 !important;
	margin-bottom: 0 !important;
}

.cms-list-type li {
	padding-bottom: 0.5rem;
}

.cms-list-type.order-list,
ol.cms-list-type {
	list-style-type: decimal;
	margin-bottom: 0;
}

.cms-list-type ul ul,
.cms-list-type ol ol {
	padding-top: 0;
}

/* Shared: Have a question / get-in-touch (listing + single) */

.get-in-touch {
	background: #5bc2e7;
}

.get-in-touch .get-in-touch-inner {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	align-items: center;
}

.get-in-touch-details {
	width: 50%;
}

.get-in-touch-details h2 {
	margin: 0 0 1.5rem 0;
	font-family: "Program OT", "program", Arial, Helvetica, sans-serif;
	letter-spacing: 0.24px;
}

.get-in-touch-details p {
	color: #262626;
	padding: 0.5rem 0 0 0;
}

.get-in-touch .email-icon-block {
	flex-direction: column;
	display: flex;
	gap: 1rem;
	align-items: center;
	font-size: 1.5rem;
	line-height: 2rem;
	font-weight: 500;
	color: #1e1248;
	font-family: "Program OT", "program", Arial, Helvetica, sans-serif;
	min-width: inherit;
}

.get-in-touch .email-icon-block a {
	font-size: 1.5rem;
	line-height: 2rem;
	font-weight: 500;
	text-decoration: none;
	color: #1e1248;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 1rem;
	text-align: center;
}

.get-in-touch .email-icon-block a:hover {
	text-decoration: underline;
}

.get-in-touch .email-icon-block img {
	width: 104px;
}

.get-in-touch-multi .get-in-touch-inner {
	flex-wrap: nowrap;
	justify-content: space-between;
}

.get-in-touch-multi .get-in-touch-details {
	width: 50%;
}

.email-icon-block.email-icon-multiblock {
	flex-direction: inherit;
	justify-content: space-around;
	width: 50%;
}

/* Listing: find-a-support, cards, support-service */

.heading-title {
	margin-bottom: 40px;
}

.support-service .heading-title h2 {
	margin: 0 0 1.5rem 0;
	font-family: "program", "Program OT", Arial, Helvetica, sans-serif !important;
}

.heading-title p,
.heading-title .cms-list-type li {
	font-size: 1.125rem;
	line-height: 1.75rem;
}

.heading-title p {
	padding-top: 0 !important;
	padding-bottom: 8px !important;
	margin: 0 !important;
}

.heading-title p:last-child {
	padding-bottom: 0 !important;
}

.heading-title p:empty {
	display: none !important;
}

.heading-title p + ul,
.heading-title p + ol,
.heading-title p + .cms-list-type {
	margin-top: 8px !important;
}

.heading-title ul + p,
.heading-title ol + p,
.heading-title .cms-list-type + p {
	margin-top: 16px !important;
}

.heading-title ul,
.heading-title ol,
.heading-title .cms-list-type {
	padding-top: 0 !important;
	padding-bottom: 0 !important;
	padding-left: 25px !important;
	margin-bottom: 0 !important;
}

.heading-title .cms-list-type li {
	padding-bottom: 8px !important;
}

.heading-title .cms-list-type li:last-child {
	padding-bottom: 0 !important;
}

.highlight-introsection {
	background: #5bc2e7;
	padding: 22px 0;
}

.highlight-introsection .intro-tile-text {
	padding-bottom: 8px;
}

.highlight-introsection-inner {
	display: flex;
	justify-content: space-between;
	gap: 32px;
	align-items: center;
}

.highlight-introsection-button {
	min-width: max-content;
}

.highlight-introsection-button a {
	border: 0;
	margin: 0;
	padding: 16px 40px;
	border-radius: 320px;
	background: #1e1248;
	color: #fff;
	font-family: "Program OT", "program", Arial, Helvetica, sans-serif;
	font-size: 20px;
	font-style: normal;
	font-weight: 500;
	line-height: 32px;
	vertical-align: middle;
	text-decoration: none;
	display: block;
}

.highlight-introsection-button a:active,
.highlight-introsection-button a:focus,
.highlight-introsection-button a:hover {
	background-color: var(--aubergine-75-color);
	border: 0;
}

.highlight-introsection .intro-text p {
	font-size: 16px !important;
	line-height: 24px !important;
}

.student-support-list ul {
	justify-content: space-between;
	gap: 8px;
	display: grid;
	grid-template-columns: repeat(3, 1fr);
}

.student-support-list li {
	width: 100%;
}

.student-support-list li a {
	color: #fff;
	font-family: "Source Sans Pro", Arial, Helvetica, sans-serif;
	font-size: 20px;
	font-style: normal;
	font-weight: 600;
	line-height: 28px;
	text-decoration: none;
	display: flex;
	padding: 24px;
	background: #000;
	transition: all 0.3s ease-in-out;
	height: 100%;
}

.student-support-list li a:hover,
.student-support-list li a:focus {
	background: #5bc2e7;
	color: #1e1248;
	text-decoration: underline;
}

.support-service-container {
	justify-content: space-between;
	gap: 32px;
	display: grid;
	grid-template-columns: repeat(3, 1fr);
}

.support-service-item h3 {
	color: #262626;
	font-family: "program", "Program OT", Arial, Helvetica, sans-serif;
	font-size: 32px;
	font-style: normal;
	font-weight: 500;
	line-height: 40px;
	margin: 0 0 1.5rem 0;
}

.support-service-item a {
	color: #0c71ac;
	text-decoration: underline;
}

.support-service-item a:hover {
	color: #0c71ac;
	text-decoration: none;
}

.support-service-item p {
	padding: 0;
	margin: 0;
}

.support-service-item p:first-of-type {
	padding-top: 0;
}

.intro-text.entry-content p {
	padding-top: 0 !important;
	padding-bottom: 8px !important;
	margin: 0 !important;
}

.intro-text.entry-content p:last-child {
	padding-bottom: 0 !important;
}

.intro-text.entry-content p:empty {
	display: none !important;
}

.intro-text.entry-content p + ul,
.intro-text.entry-content p + ol,
.intro-text.entry-content p + .cms-list-type {
	margin-top: 8px !important;
}

.intro-text.entry-content ul + p,
.intro-text.entry-content ol + p,
.intro-text.entry-content .cms-list-type + p {
	margin-top: 16px !important;
}

.intro-text.entry-content ul,
.intro-text.entry-content ol,
.intro-text.entry-content .cms-list-type {
	list-style-position: outside;
	padding-top: 0 !important;
	padding-bottom: 0 !important;
	padding-left: 25px !important;
	margin-bottom: 0 !important;
}

.intro-text.entry-content .cms-list-type.order-list,
.intro-text.entry-content ol.cms-list-type {
	list-style-type: decimal;
}

.intro-text.entry-content .cms-list-type li {
	padding-bottom: 8px !important;
	font-size: 18px;
}

.intro-text.entry-content .cms-list-type li:last-child {
	padding-bottom: 0 !important;
}

.intro-text.entry-content .cms-list-type ol ol,
.intro-text.entry-content .cms-list-type ul ul {
	padding-top: 0 !important;
}

@media (min-width: 768px) {
	.page-banner-description.page-banner-description-mobile {
		display: none;
	}
}

@media (max-width: 1024px) {
	.get-in-touch-multi .get-in-touch-details {
		width: 100%;
		margin-bottom: 1rem;
	}

	.email-icon-block.email-icon-multiblock {
		width: 100%;
		flex-wrap: wrap;
		justify-content: start;
		flex-direction: column;
		align-content: start;
		align-items: start;
		row-gap: 16px;
		padding: 0;
	}

	.get-in-touch-multi .get-in-touch-inner {
		flex-wrap: wrap;
	}

	.email-icon-block.email-icon-multiblock a {
		flex-direction: initial;
		padding: 12px 0;
	}

	.email-icon-block.email-icon-multiblock a:last-child {
		margin-bottom: 0;
	}

	.get-in-touch .email-icon-multiblock a {
		text-align: left;
	}
}

@media (max-width: 991px) {
	body {
		font-size: 1rem !important;
		line-height: 1.5rem !important;
	}

	h2 {
		font-size: 28px;
		line-height: 36px;
		margin: 0 0 1rem 0;
	}

	.breadcrumbs li a,
	.breadcrumbs li span {
		font-size: 14px;
	}

	.breadcrumbs li a i {
		font-size: 8px;
	}

	.page-banner .page-title {
		font-size: 36px;
		line-height: 44px;
		letter-spacing: 0.18px;
	}

	.page-banner .page-banner-description {
		font-size: 18px;
		line-height: 28px;
		font-weight: 600;
	}

	.page-banner-text {
		width: 100%;
		padding: 0;
	}

	.page-banner-media {
		width: 100%;
		margin: 0;
		max-height: inherit;
	}

	.page-banner-media img {
		min-height: inherit;
		aspect-ratio: 2 / 1.13;
	}

	.intro-tile-text p {
		font-size: 1.125rem !important;
	}

	.intro-text p,
	.intro-text li,
	.entry-content p,
	.entry-content li,
	.cms-list-type li {
		font-size: 16px !important;
		line-height: 24px !important;
	}

	.page-banner-description li,
	.page-banner-description .cms-list-type li {
		font-size: 18px !important;
		line-height: 28px !important;
	}

	.get-in-touch-details {
		width: 100%;
		margin-bottom: 1rem;
	}

	.get-in-touch-details h2 {
		font-size: 28px;
		line-height: 36px;
	}

	.get-in-touch-details p {
		font-size: 1rem;
		line-height: 1.5rem;
	}

	.get-in-touch .email-icon-block,
	.get-in-touch .email-icon-block a {
		font-size: 20px;
		line-height: 28px;
	}

	.get-in-touch .email-icon-block img {
		width: 84px;
	}

	.get-in-touch .email-icon-block {
		width: 100%;
		flex-direction: inherit;
	}

	.get-in-touch .email-icon-block a {
		display: flex;
		flex-direction: inherit;
		word-break: break-word;
		text-align: left;
	}

	.heading-title {
		margin-bottom: 32px;
	}

	.highlight-introsection {
		padding-top: 24px;
		padding-bottom: 24px;
	}

	.highlight-introsection-inner {
		flex-wrap: wrap;
	}

	.highlight-introsection .intro-text p {
		font-size: 14px !important;
		line-height: 20px !important;
	}

	.student-support-list ul {
		grid-template-columns: repeat(2, 1fr);
	}

	.student-support-list li a {
		font-size: 18px;
	}

	.support-service-container {
		grid-template-columns: repeat(2, 1fr);
		gap: 24px;
	}

	.support-service-item h3 {
		font-size: 24px;
		line-height: 32px;
		margin-bottom: 16px;
	}
}

@media (min-width: 768px) and (max-width: 991px) {
	.page-banner-description.page-banner-description-desktop {
		display: none;
	}

	.page-title-section .container-xxl {
		padding: 0;
	}

	.page-banner-media img {
		min-height: inherit;
		height: auto;
	}
}

@media (max-width: 767px) {
	.page-banner-description.page-banner-description-mobile {
		display: block;
		padding: 2rem 1rem;
	}

	.page-title-section .container,
	.page-title-section .container-xxl {
		padding: 0;
	}

	.page-banner-text {
		width: 100%;
		padding: 0;
	}

	.page-banner-media {
		width: 100%;
		margin: 0;
	}

	.page-banner-description.page-banner-description-desktop {
		display: none;
	}

	.page-banner-media img {
		min-height: inherit;
		height: auto;
	}

	.page-banner .page-title {
		padding: 36px 1rem;
	}

	.intro-text p {
		font-size: 1rem !important;
		line-height: 1.5rem !important;
	}

	.student-support-list ul {
		grid-template-columns: repeat(1, 1fr);
	}

	.support-service-container {
		grid-template-columns: repeat(1, 1fr);
	}
}

@media screen and (min-width: 0) {
	.page-banner-description.page-banner-description-mobile {
		display: block;
		padding: 2rem 1rem;
	}

	.page-banner .page-title {
		padding: 36px 1rem;
	}
}

@media screen and (min-width: 576px) {
	.page-banner-description.page-banner-description-mobile {
		display: block;
		padding: 2rem 2.125rem;
	}

	.page-banner .page-title {
		padding: 36px 2.125rem;
	}
}

@media screen and (min-width: 768px) {
	.page-banner-description.page-banner-description-mobile {
		display: none;
		padding: 2rem 2.5rem;
	}

	.page-banner .page-title {
		padding: 36px 2.5rem;
	}
}

@media screen and (min-width: 992px) {
	.intro-tile-text {
		padding-bottom: 32px;
	}

	.page-banner .page-title {
		padding: 1rem 0;
	}
}

@media (max-width: 575px) {
	.page-banner .page-title {
		padding-bottom: 36px;
	}
}

/* Single: program-type hero (from mockup; admission.css is not loaded). Body / contact / para-content below. */

.program-type-banner-section {
	padding-bottom: 1.5rem;
}

.program-type-banner-section .program-type-banner-col {
	display: flex;
	flex-wrap: wrap;
	align-items: flex-start;
	justify-content: flex-start;
}

.program-type-banner-img-wrapper {
	display: block;
	width: 100%;
}

.program-type-banner-section .program-type-banner-heading h1 {
	font-family: "program", "Program OT", Arial, Helvetica, sans-serif !important;
	font-size: 2.25rem !important;
	line-height: 2.75rem !important;
	font-weight: 500 !important;
	color: var(--white-color);
	padding-bottom: 2rem;
}

@media only screen and (min-width: 991px) {
	.program-type-banner-section {
		padding-bottom: 2rem;
	}

	.program-type-banner-section .program-type-banner-col {
		display: flex;
		flex-wrap: wrap;
		align-items: center;
		justify-content: space-between;
		gap: 1rem;
	}

	.program-type-banner-img-wrapper {
		display: inline-block;
		width: auto;
		padding-bottom: 0;
	}

	.program-type-banner-section .program-type-banner-heading h1 {
		font-size: 3.75rem !important;
		line-height: 4.5rem !important;
		color: var(--white-color);
		padding-bottom: 0;
	}
}

@media (min-width: 768px) and (max-width: 991px) {
	.program-type-banner-section .program-type-banner-col {
		display: flex;
		align-items: center;
		justify-content: start;
		gap: 32px;
		flex-wrap: unset;
	}

	.program-type-banner-heading {
		width: 45%;
	}

	.program-type-banner-img-wrapper {
		display: flex;
		justify-content: space-evenly;
		gap: 0;
		align-items: stretch;
		width: 50%;
		margin-top: 0;
	}

	.program-type-banner-section .program-type-banner-heading h1 {
		padding-bottom: 0;
	}
}

.student-support-detail .student-support-detail-intro + .para-content {
	margin-top: 40px;
}

.student-support-detail .para-content {
	padding-top: 0;
}

.student-support-detail .para-content h2,
.student-support-detail .para-content h3 {
	font-family: "program", "Program OT", Arial, Helvetica, sans-serif;
	font-weight: 500;
	color: #262626;
	margin: 0;
	padding: 0 0 24px;
}

.student-support-detail .para-content h2 {
	font-size: 48px;
	line-height: 60px;
}

.student-support-detail .para-content h3 {
	font-size: 32px;
	line-height: 40px;
}

.student-support-detail .student-support-detail-block + .student-support-detail-block {
	margin-top: 40px;
}

.student-support-detail .student-support-detail-block:has(> h3) + .student-support-detail-block:has(> h3) {
	margin-top: 32px;
}

.student-support-detail .para-content h3 + h3 {
	margin-top: 8px;
}

.student-support-detail .student-support-detail-block:has(> h3:last-child):has(+ .student-support-detail-block > h3) > h3:last-child {
	padding-bottom: 0;
}

.student-support-detail .para-content + .student-support-detail-contact {
	padding-top: 8px;
}

.student-support-detail-contact a,
.student-support-detail-contact a:link,
.student-support-detail-contact a:visited,
.student-support-detail-contact a:hover,
.student-support-detail-contact a:focus {
	color: #0c71ac;
}

@media (max-width: 991px) {
	.student-support-detail .student-support-detail-intro + .para-content {
		margin-top: 32px;
	}

	.student-support-detail .student-support-detail-block + .student-support-detail-block {
		margin-top: 32px;
	}

	.student-support-detail .student-support-detail-block:has(> h3) + .student-support-detail-block:has(> h3) {
		margin-top: 24px;
	}

	.student-support-detail .para-content h2 {
		font-size: 28px;
		line-height: 36px;
	}

	.student-support-detail .para-content h3 {
		font-size: 24px;
		line-height: 32px;
	}

	.student-support-detail .para-content h3 + h3 {
		margin-top: 0;
	}
}
