@import url('https://fonts.googleapis.com/css2?family=DM+Sans:ital,opsz,wght@0,9..40,100..1000;1,9..40,100..1000&display=swap');

* {
	box-sizing: border-box;
	-webkit-box-sizing: border-box;
	-moz-box-sizing: border-box;
	-o-box-sizing: border-box;
	-ms-box-sizing: border-box;
	margin: 0;
	padding: 0;
}

body {
	font-size: 20px;
	color: var(--black);
	background-color: var(--body-white);
	overflow-x: hidden;
	font-style: normal;
	font-family: "DM Sans", sans-serif;

}

html {
	scroll-behavior: auto;
}

@media (prefers-reduced-motion: reduce) {
	html.lenis {
		scroll-behavior: auto;
	}
}

.lenis.lenis-smooth {
	scroll-behavior: auto;
}

.lenis.lenis-smooth [data-lenis-prevent] {
	overscroll-behavior: contain;
}

.lenis.lenis-stopped {
	overflow: hidden;
}

.lenis.lenis-scrolling iframe {
	pointer-events: none;
}

.container {
	max-width: 1700px;
	width: 100%;
	margin: 0 auto;
	padding: 0 50px;
}

:root {
	--white: #ffffff;
	--body-white: #F8F9EF;
	--gray: #F9F9F9;
	--black: #181818;
	--op-black: #181818cc;

	/* ── Brand palette (matches Infinity Solutions logo) ── */
	--brand-blue: #1669c5;
	/* primary – mid blue  */
	--brand-blue-dark: #234aa9;
	/* deep blue           */
	--brand-blue-darker: #1a3a8a;
	/* pressed/hover state */
	--brand-green: #b1ce2f;
	/* lime green accent   */
	--brand-green-dark: #8fa820;
	/* hover green         */
	--brand-green-light: #cce044;
	/* lighter lime        */
	--brand-gradient: linear-gradient(81deg, #234aa9 -4.37%, #1669c5 114.5%);

	/* legacy aliases – keeps old var() references working */
	--tally-teal: var(--brand-blue);
	--tally-teal-light: var(--brand-green);
	--tally-teal-lighter: var(--brand-green-light);
	--tally-teal-gradient: var(--brand-gradient);
	--tally-teal-dark: var(--brand-blue-dark);

	--orange: #FD8200;
	--purple: #B8A3F8;
	--linear-black: linear-gradient(104deg, rgba(255, 255, 255, 0.10) 0%, rgba(255, 255, 255, 0.05) 99.95%);
	--header-height: 0px;
}

/* background color class */

.bg_white {
	background: var(--white);
}

.bg_gray {
	background: var(--gray);
}

.bg_black {
	background: var(--black);
}

/*********cmn btns*********/

/* ── All buttons default to green (lime) ── */
.btn {
	color: var(--black);
	padding: 16px 32px;
	border: 1px solid var(--brand-green);
	border-radius: 16px;
	background-color: var(--brand-green);
	display: flex;
	width: max-content;
	align-items: center;
	justify-content: center;
	transition: all ease-in-out 0.3s;
	font-family: "DM Sans", sans-serif;
	font-size: 20px;
	font-style: normal;
	font-weight: 700;
	line-height: 30px;
}

.btn:hover,
.btn:focus,
.btn:active {
	color: var(--white);
	border: 1px solid var(--brand-blue-dark);
	background-color: var(--brand-blue-dark);
}

.white_btn,
.footer_card_btn a.btn:hover,
.footer_card_btn a.btn:active,
.footer_card_btn a.btn:focus {
	color: var(--black);
	border: 1px solid var(--white);
	background-color: var(--white);
}

.white_btn:hover,
.white_btn:focus,
.white_btn:active {
	color: var(--white);
	border: 1px solid var(--brand-blue-dark);
	background-color: var(--brand-blue-dark);
}

/* .green_btn is the primary CTA — lime green, dark text */
.green_btn {
	color: var(--black);
	border: 1px solid var(--brand-green);
	background-color: var(--brand-green);
}

.green_btn:hover, .green_btn:focus, .green_btn:active, .cta_right_btn a:hover, .cta_right_btn a:focus, .cta_right_btn a:active {
    color: var(--white);
    border: 1px solid var(--brand-blue-dark) !important;
    background-color: var(--brand-blue-dark);
}

/********************* TYPOGRAPHY ********************/

a {
	text-decoration: none;
	color: var(--black);
	transition: color 0.2s ease;
}

a:hover {
	color: var(--brand-green-dark);
}

li {
	list-style-type: none;
}

ul,
ol {
	margin: 0;
	padding: 0;
	list-style: none;
}


h1,
h2,
h3,
h4,
h5,
h6 {
	font-style: normal;
	line-height: normal;
	color: var(--black);
	font-weight: 300;
	font-family: "DM Sans", sans-serif;
}

img {
	display: block;
	height: auto;
	border: none;
	user-select: none;
	max-width: 100%;
	object-fit: cover;
}

h1 span,
h2 span {
	color: var(--black);
	font-weight: 700;
}

h1,
.title_h1 {
	font-size: 64px;
}

h2,
.title_h2 {
	font-size: 50px;
}

h3,
.title_h3,
.thirty_p p {
	font-size: 30px;
	line-height: 46px;
}

.title_h3_big {
	font-size: 32px;
	line-height: normal;
	color: var(--white);
	font-weight: 700;
}

h4,
.title_h4 {
	font-size: 24px;
	font-weight: 600;
	line-height: 38px;
}

h5,
.title_h5 {
	font-size: 18px;
	font-weight: 600;
	line-height: 24px;
}

p,
.comman_content_box ul li {
	color: var(--black);
	font-family: "DM Sans", sans-serif;
	font-size: 20px;
	font-style: normal;
	font-weight: 300;
	line-height: 28px;
}

.eighteen_p p {
	font-size: 18px;
	font-weight: 400;
	/* color: rgb(255, 255, 255 , 0.8); */
}

.twenty_font {
	font-size: 20px;
	line-height: 140%;
	font-weight: 500;
}

.thirty_p p {
	font-weight: 400;
}

.thirty_p p b {
	font-weight: 600;
}

.cmn_pad {
	padding: 150px 0;
}

.cmn_top {
	padding-top: 150px;
}

p strong {
	font-weight: 600;
}


.white_text h2,
.white_text h2 span,
.white_text h3,
.white_text p {
	color: var(--white);
}



/**************************header**********************************/


.header_main {
	display: flex;
	justify-content: space-between;
	gap: 50px;
	align-items: center;
}

.header {
	padding: 1rem 0;
}

.header_logo {
	width: 120px;
}

.mobileIcon {
	display: none;
}

.header_right {
	flex: 1;
	display: flex;
	gap: 50px;
	align-items: center;
}

.header_right_btn {
	width: max-content;
}

.header_right .menu-header-menu-container {
	margin: 0 auto;
}

.header_right .menu-header-menu-container ul {
	display: flex;
	gap: 50px;
	align-items: center;
}

.header_right .menu-header-menu-container ul li a {
	transition: all ease-in-out 0.4s;
	color: var(--op-black);
}

.header_right .menu-header-menu-container ul li a:hover {
	-webkit-text-stroke: 0.7px;
	color: var(--brand-blue);
}

/* Active / current page nav link */
.header_right .menu-header-menu-container ul li.current-menu-item>a,
.header_right .menu-header-menu-container ul li.current_page_item>a,
.header_right .menu-header-menu-container ul li.current-menu-ancestor>a {
	color: var(--brand-blue);
	font-weight: 700;
}



/* Hero Banner */

/* Baner Slider  */

.hero_banner_slider {
	position: relative;
}

.slider_banner_title_otr {
	display: flex;
	flex-direction: column;
	gap: 16px
}

.hero_banner_slider_image {
	position: absolute;
	left: 0;
	top: 0;
	width: 100%;
	height: 100%;
	z-index: -1
}

.hero_banner_slider_image:after {
	position: absolute;
	left: 0;
	top: 0;
	width: 100%;
	height: 100%;
	background: #1c1c1c;
	opacity: .8;
	content: ''
}

.hero_banner_slider_image img {
	width: 100%;
	height: 100%;
	object-fit: cover
}

.hero_banner_slider_content {
	display: flex;
	flex-direction: column;
	gap: 30px;
	width: 50%
}

.slider_banner_title_otr p {
	max-width: 85%;
}

.hero_banner_slide {
	padding: 130px 0;
	height: calc(100vh - var(--header-height));
	display: flex;
	align-items: center;
}

.slider_banner_title_otr h2,
.slider_banner_title_otr p {
	color: #fff
}

.pagination_aero {
	display: flex;
	gap: 16px;
	flex-direction: row-reverse;
	width: max-content;
	position: absolute;
	bottom: 7%;
	right: 7%;
}

.pagination_aero .cmn_btn {
	position: unset !important;
	margin: unset !important;
	width: 50px;
	height: 50px;
}

.pagination_aero .cmn_btn svg path {
    fill: var(--brand-green);
}

.swiper-button-prev::after,
.logistik-prev::after,
.swiper-button-next::After,
.logistik-next::after {
	content: none !important;
}

/************************** Counter Section **************************/

.section_header {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 20px;
	margin-bottom: 70px;
	text-align: center;
}

.section_description {
	max-width: 700px;
	color: var(--op-black);
}

.counter_card_otr {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
	gap: 30px;
}

.counter_card {
	position: relative;
	display: flex;
	flex-direction: column;
	gap: 16px;
	padding: 50px 40px;
	overflow: hidden;
	background: var(--white);
	border-radius: 16px;
	transition: all ease-in-out 0.4s;
}

.counter_card::before {
	content: '';
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 5px;
	background: var(--tally-teal-gradient);
}

.counter_card:hover {
	transform: translateY(-10px);
	box-shadow: 0 20px 40px color-mix(in srgb, var(--black) 8%, transparent);
}

.counter_number_otr {
	margin-bottom: 12px;
}

.counter_value {
	font-family: "DM Sans", sans-serif;
	font-size: 64px;
	font-style: normal;
	font-weight: 700;
	line-height: 1;
	color: var(--black);
}

.counter_card_title {
	color: var(--black);
}

.counter_card_description {
	font-size: 18px;
	font-weight: 400;
	line-height: 28px;
	color: var(--op-black);
}

.counter_card:hover .counter_value {
	color: var(--brand-blue-dark);
}

/************************** Everything You Need Section **************************/

.feature_card_otr {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
	gap: 30px;
}

.feature_card {
	position: relative;
	display: flex;
	flex-direction: column;
	gap: 18px;
	padding: 50px 40px;
	background: var(--gray);
	border-radius: 16px;
	transition: all ease-in-out 0.4s;
}

.feature_card:hover {
	transform: translateY(-10px);
	background: var(--white);
	box-shadow: 0 20px 40px color-mix(in srgb, var(--black) 8%, transparent);
}

.feature_icon_otr {
	width: 70px;
	height: 70px;
	display: flex;
	align-items: center;
	justify-content: center;
	border-radius: 16px;
	background: color-mix(in srgb, var(--brand-green) 18%, var(--white));
	transition: all ease-in-out 0.4s;
}

.feature_icon_otr img {
	width: 34px;
	height: 34px;
	object-fit: contain;
}

.feature_card:hover .feature_icon_otr {
	background: var(--brand-green);
}

.feature_card_title {
	color: var(--black);
}

.feature_card_description {
	font-size: 18px;
	font-weight: 400;
	line-height: 28px;
	color: var(--op-black);
}

/************************** Path to Mastery Section **************************/

.path_steps_wrap {
	position: relative;
}

.path_steps_line {
	position: absolute;
	top: 28px;
	left: 8.33%;
	right: 8.33%;
	height: 2px;
	background: linear-gradient(90deg, var(--brand-green-dark) 0%, var(--brand-green) 50%, var(--brand-green-light) 100%);
}

.path_steps_otr {
	position: relative;
	display: flex;
	gap: 30px;
}

.path_step {
	flex: 1;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 16px;
	text-align: center;
}

.path_step_circle {
	width: 56px;
	height: 56px;
	display: flex;
	align-items: center;
	justify-content: center;
	border-radius: 50%;
	background: var(--white);
	border: 2px solid var(--brand-green);
	font-size: 20px;
	font-weight: 700;
	line-height: 1;
	color: var(--brand-blue-dark);
	transition: all ease-in-out 0.4s;
}

.path_step:hover .path_step_circle {
	background: var(--brand-green);
	border-color: var(--brand-green);
	color: var(--black);
	transform: scale(1.1);
}

.path_step_title {
	color: var(--black);
}

.path_step_description {
	font-size: 18px;
	font-weight: 400;
	line-height: 28px;
	color: var(--op-black);
}

@keyframes path_step_reveal {
	from {
		opacity: 0;
		transform: translateY(30px);
	}

	to {
		opacity: 1;
		transform: translateY(0);
	}
}

@keyframes path_step_circle_pop {
	0% {
		opacity: 0;
		transform: scale(0);
	}

	60% {
		opacity: 1;
		transform: scale(1.15);
	}

	100% {
		opacity: 1;
		transform: scale(1);
	}
}

.path_steps_wrap.js-enabled .path_step {
	opacity: 0;
	transform: translateY(30px);
}

.path_steps_wrap.js-enabled .path_steps_line {
	transform: scaleX(0);
	transform-origin: left center;
	transition: transform 1.2s ease-out;
}

.path_steps_wrap.is-visible .path_step {
	opacity: 1;
	transform: translateY(0);
	animation: path_step_reveal 0.6s ease-out backwards;
	transition: transform 0.4s ease-in-out, box-shadow 0.4s ease-in-out;
}

.path_steps_wrap.is-visible .path_steps_line {
	transform: scaleX(1);
}

.path_steps_wrap.is-visible .path_step:nth-child(1) {
	animation-delay: 0.15s;
}

.path_steps_wrap.is-visible .path_step:nth-child(1) .path_step_circle {
	animation: path_step_circle_pop 0.5s ease-out backwards;
	animation-delay: 0.4s;
}

.path_steps_wrap.is-visible .path_step:nth-child(2) {
	animation-delay: 0.3s;
}

.path_steps_wrap.is-visible .path_step:nth-child(2) .path_step_circle {
	animation: path_step_circle_pop 0.5s ease-out backwards;
	animation-delay: 0.55s;
}

.path_steps_wrap.is-visible .path_step:nth-child(3) {
	animation-delay: 0.45s;
}

.path_steps_wrap.is-visible .path_step:nth-child(3) .path_step_circle {
	animation: path_step_circle_pop 0.5s ease-out backwards;
	animation-delay: 0.7s;
}

.path_steps_wrap.is-visible .path_step:nth-child(4) {
	animation-delay: 0.6s;
}

.path_steps_wrap.is-visible .path_step:nth-child(4) .path_step_circle {
	animation: path_step_circle_pop 0.5s ease-out backwards;
	animation-delay: 0.85s;
}

.path_steps_wrap.is-visible .path_step:nth-child(5) {
	animation-delay: 0.75s;
}

.path_steps_wrap.is-visible .path_step:nth-child(5) .path_step_circle {
	animation: path_step_circle_pop 0.5s ease-out backwards;
	animation-delay: 1s;
}

.path_steps_wrap.is-visible .path_step:nth-child(6) {
	animation-delay: 0.9s;
}

.path_steps_wrap.is-visible .path_step:nth-child(6) .path_step_circle {
	animation: path_step_circle_pop 0.5s ease-out backwards;
	animation-delay: 1.15s;
}

/* -----------------------------------------------
   Verified Credentials
----------------------------------------------- */

.verified_credentials .certificate_otr {
	display: flex;
	align-items: center;
	gap: 70px;
}

.verified_credentials .certificate_content {
	flex: 0 0 41%;
	max-width: 41%;
}

.verified_credentials .certificate_content .section_header {
    margin-bottom: 0;
    text-align: left;
    align-items: flex-start;
}

.verified_credentials .certificate_process_otr {
	display: flex;
	flex-direction: column;
	gap: 32px;
	margin: 50px 0 0;
}

.verified_credentials .process_step {
	display: flex;
	align-items: flex-start;
	gap: 22px;
}

.verified_credentials .process_step_number {
	flex: 0 0 52px;
	height: 52px;
	border-radius: 50%;
	background: var(--brand-blue);
	border: 2px solid var(--brand-blue);
	color: var(--white);
	font-size: 20px;
	font-weight: 700;
	line-height: 52px;
	text-align: center;
}

.verified_credentials .process_step_content {
	flex: 1;
	display: flex;
	flex-direction: column;
	gap: 10px;
	padding-top: 4px;
}

.verified_credentials .process_step_title {
	margin: 0;
}

.verified_credentials .process_step_description {
	margin: 0;
}

.verified_credentials .certificate_btn {
	margin-top: 44px;
}

.verified_credentials .certificate_preview {
	flex: 1;
	min-width: 0;
}

.verified_credentials .certificate_preview .tlh-certificate {
	border-radius: 6px;
	box-shadow: 0 30px 60px color-mix(in srgb, var(--black) 14%, transparent);
}

/* -----------------------------------------------
   FAQ Section
----------------------------------------------- */

.faq_section .section_header {
	margin-bottom: 50px;
}

.faq_section .section_header.text_center {
	text-align: center;
}

.faq_accordion {
	max-width: 920px;
	margin: 0 auto;
}

.faq_item {
	border-radius: 12px;
	background: var(--white);
	box-shadow: 0 4px 16px color-mix(in srgb, var(--black) 6%, transparent);
	overflow: hidden;
	margin-bottom: 16px;
	transition: box-shadow 0.3s ease;
}

.faq_item:last-child {
	margin-bottom: 0;
}

.faq_item:hover {
	box-shadow: 0 8px 24px color-mix(in srgb, var(--black) 10%, transparent);
}

.faq_question {
	width: 100%;
	padding: 24px 30px;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 20px;
	background: transparent;
	border: none;
	cursor: pointer;
	text-align: left;
	font-family: inherit;
}


.faq_question_text {
	flex: 1;
	color: var(--black);
	font-size: 20px;
	font-weight: 600;
	line-height: 1.4;
}

.faq_toggle {
	flex: 0 0 40px;
	width: 40px;
	height: 40px;
	display: flex;
	align-items: center;
	justify-content: center;
	border-radius: 50%;
	background: var(--gray);
	color: var(--black);
	transition: background 0.2s ease, color 0.2s ease, transform 0.3s ease;
}

.faq_question:hover .faq_toggle {
	background: var(--brand-green);
	color: var(--black);
}

.faq_item.is-open .faq_toggle {
	background: var(--brand-green);
	color: var(--black);
	transform: rotate(180deg);
}

.faq_icon_open,
.faq_icon_close {
	display: block;
	transition: opacity 0.2s ease, transform 0.2s ease;
}

.faq_icon_close {
	opacity: 0;
	transform: rotate(-180deg);
	position: absolute;
}

.faq_item.is-open .faq_icon_open {
	opacity: 0;
	transform: rotate(180deg);
}

.faq_item.is-open .faq_icon_close {
	opacity: 1;
	transform: rotate(0deg);
}

.faq_answer {
	max-height: 0;
	overflow: hidden;
	transition: max-height 0.4s cubic-bezier(0.4, 0, 0.2, 1), padding 0.4s cubic-bezier(0.4, 0, 0.2, 1);
}

.faq_item.is-open .faq_answer {
	max-height: 1000px;
	padding-bottom: 24px;
}

.faq_answer_inner {
	padding: 0 30px;
	color: var(--black);
	font-size: 17px;
	line-height: 1.7;
}

.faq_answer_inner * {
	margin: 0;
}

.faq_answer_inner p {
	margin-bottom: 14px;
}

.faq_answer_inner p:last-child {
	margin-bottom: 0;
}

.faq_answer_inner ul,
.faq_answer_inner ol {
	margin: 14px 0 14px 20px;
	padding: 0;
}

.faq_answer_inner li {
	margin-bottom: 8px;
}

.faq_answer_inner strong {
	font-weight: 700;
}

.faq_answer_inner a {
	color: var(--brand-blue-dark);
	text-decoration: underline;
}

.faq_answer_inner a:hover {
	color: var(--brand-green-dark);
}

/* -----------------------------------------------
   CTA Section
----------------------------------------------- */

.cta_section {
	padding: 80px 0;
	background: linear-gradient(135deg, var(--brand-blue-dark) 0%, var(--brand-blue) 100%);
	position: relative;
	overflow: hidden;
}

.cta_section::before {
	content: "";
	position: absolute;
	inset: 0;
	background-image: radial-gradient(circle at 20% 80%, rgba(0, 128, 128, 0.08) 0%, transparent 50%),
		radial-gradient(circle at 80% 20%, rgba(3, 151, 157, 0.08) 0%, transparent 50%);
	pointer-events: none;
}

.cta_otr {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 60px;
}

.cta_content {
	flex: 1;
	min-width: 0;
}

.cta_title {
	margin: 0 0 16px;
	color: var(--white);
	font-size: 42px;
	font-weight: 700;
	line-height: 1.2;
}

.cta_description {
	margin: 0;
	color: rgba(255, 255, 255, 0.78);
	font-size: 18px;
	line-height: 1.6;
	max-width: 540px;
}

.cta_action {
	flex: 0 0 auto;
}

.cta_action .btn {
	padding: 18px 44px;
	font-size: 17px;
	font-weight: 600;
	border-radius: 50px;
	white-space: nowrap;
}

.cta_action .green_btn {
	background: var(--brand-green);
	color: var(--black);
	border-color: var(--brand-green);
	box-shadow: 0 8px 24px rgba(177, 206, 47, 0.35);
	transition: transform 0.2s ease, box-shadow 0.2s ease, background 0.2s ease;
}

.cta_action .green_btn:hover {
	background: var(--brand-green-dark);
	border-color: var(--brand-green-dark);
	color: var(--black);
	transform: translateY(-2px);
	box-shadow: 0 14px 32px rgba(177, 206, 47, 0.45);
}

.cta_action .green_btn:active {
	transform: translateY(0);
	box-shadow: 0 6px 16px rgba(177, 206, 47, 0.30);
}

/* -----------------------------------------------
   Footer
----------------------------------------------- */

/* -----------------------------------------------
   Site Footer
----------------------------------------------- */

.site_footer {
	background: #0D1B2A;
	color: var(--white);
	padding: 64px 0 0;
	font-size: 15px;
	line-height: 1.6;
	border-top: 3px solid var(--brand-blue);
}

/* ── Footer links — simple green colour change, no movement effects ── */
.site_footer a {
	color: rgba(255, 255, 255, 0.75);
}

.site_footer a:hover {
	color: var(--brand-green);
}

.site_footer a:hover svg {
	color: var(--brand-green);
}

.footer_top {
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	gap: 60px;
	padding-bottom: 48px;
}

.footer_brand {
	flex: 1;
	min-width: 0;
	max-width: 360px;
}

/* ── Logo ── */
.footer_logo {
	margin-bottom: 20px;
	/* white pill so any logo colour shows against the dark bg */
	background: #FFFFFF;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: 10px 18px;
	border-radius: 10px;
}

.footer_logo a {
	display: flex;
	align-items: center;
}

.footer_logo img {
	max-height: 52px;
	width: auto;
	display: block;
}

/* fallback text logo (no custom logo set) */
.footer_logo_text {
	display: flex;
	align-items: center;
	gap: 12px;
	text-decoration: none;
	background: transparent;
	padding: 0;
}

.footer_logo_text:hover {
	color: var(--brand-green);
}

.footer_logo_mark {
	flex: 0 0 44px;
	width: 44px;
	height: 44px;
	border-radius: 10px;
	background: var(--brand-blue-dark);
	color: var(--white);
	font-size: 18px;
	font-weight: 700;
	display: flex;
	align-items: center;
	justify-content: center;
	letter-spacing: 0.02em;
}

.footer_logo_name {
	color: var(--white);
	font-size: 20px;
	font-weight: 700;
	letter-spacing: 0.02em;
	line-height: 1;
}

/* ── Tagline ── */
.footer_tagline {
	margin: 0 0 20px;
	color: rgba(255, 255, 255, 0.55);
	font-size: 14px;
	line-height: 1.75;
}

/* ── Social icons ── */
.footer_social {
	display: flex;
	gap: 10px;
	margin-top: 4px;
}

.footer_social_link {
	flex: 0 0 38px;
	width: 38px;
	height: 38px;
	border-radius: 8px;
	background: rgba(255, 255, 255, 0.07);
	border: 1px solid rgba(255, 255, 255, 0.10);
	display: flex;
	align-items: center;
	justify-content: center;
	color: rgba(255, 255, 255, 0.65);
	transition: background 0.2s ease, color 0.2s ease, border-color 0.2s ease, transform 0.2s ease;
}

.footer_social_link:hover {
	background: var(--brand-blue);
	border-color: var(--brand-blue);
	color: var(--white);
	transform: translateY(-3px);
}

/* ── Nav menu ── */
.footer_nav {
	flex: 0 0 auto;
	min-width: 180px;
}

.footer_menu_list {
	display: flex;
	flex-direction: column;
	gap: 6px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.footer_menu_list li {
	margin: 0;
}

.footer_menu_list a {
	display: block;
	padding: 5px 0;
	font-size: 15px;
	font-weight: 500;
	color: rgba(255, 255, 255, 0.70);
	letter-spacing: 0.01em;
	transition: color 0.2s ease;
}

.footer_menu_list a:hover {
	color: var(--brand-green);
}

/* current page highlight */
.footer_menu_list .current-menu-item a,
.footer_menu_list .current_page_item a {
	color: var(--brand-green);
	font-weight: 600;
}

/* ── Divider ── */
.footer_divider {
	height: 1px;
	background: rgba(255, 255, 255, 0.09);
	margin: 0 0 24px;
}

/* ── Bottom bar ── */
.footer_bottom {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 40px;
	padding-bottom: 28px;
}

.footer_copyright {
	margin: 0;
	color: rgba(255, 255, 255, 0.40);
	font-size: 13px;
	letter-spacing: 0.02em;
}

.footer_legal_list {
	display: flex;
	align-items: center;
	gap: 28px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.footer_legal_list a {
	font-size: 13px;
	font-weight: 500;
	color: rgba(255, 255, 255, 0.45);
	letter-spacing: 0.02em;
	transition: color 0.2s ease;
}

.footer_legal_list a:hover {
	color: var(--brand-green);
}

/* ==========================================================
   Tally Corner — Homepage course cards
   Kept in the theme stylesheet (not inside home.php).
   Uses the existing brand variables defined above.
   ========================================================== */
.tch-course-section {
	--tch-ink: var(--black);
	--tch-muted: var(--op-black);
	--tch-primary: var(--brand-blue);
	--tch-accent: var(--brand-green);
	--tch-line: #e4e8ef;
	position: relative;
	overflow: hidden;
	padding: clamp(70px, 8vw, 130px) 0;
	background: linear-gradient(180deg, var(--body-white) 0%, #ffffff 100%);
}

.tch-course-section::before {
	position: absolute;
	content: "";
	width: 310px;
	height: 310px;
	right: -150px;
	top: 60px;
	border: 1px solid color-mix(in srgb, var(--brand-blue) 12%, transparent);
	border-radius: 50%;
	pointer-events: none;
}

.tch-course-section .tch-course-inner {
	position: relative;
	z-index: 1;
}

.tch-course-section .tch-course-heading {
	display: flex;
	align-items: flex-end;
	justify-content: space-between;
	gap: 24px;
	margin: 0 0 42px;
}

.tch-course-section .tch-course-kicker {
	display: inline-flex;
	align-items: center;
	gap: 9px;
	margin: 0 0 12px;
	color: var(--brand-blue);
	font-size: 13px;
	font-weight: 700;
	letter-spacing: .12em;
	line-height: 1.4;
	text-transform: uppercase;
}

.tch-course-section .tch-course-kicker::before {
	content: "";
	display: inline-block;
	width: 26px;
	height: 3px;
	border-radius: 3px;
	background: var(--brand-green);
}

.tch-course-section .tch-course-title {
	max-width: 760px;
	margin: 0;
	color: var(--black);
	font-size: clamp(34px, 4vw, 54px);
	font-weight: 700;
	line-height: 1.12;
	letter-spacing: -.035em;
}

.tch-course-section .tch-course-description {
	max-width: 680px;
	margin: 14px 0 0;
	color: var(--op-black);
	font-size: 17px;
	font-weight: 400;
	line-height: 1.75;
}

.tch-course-section .tch-course-all-link {
	flex: 0 0 auto;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 10px;
	padding: 13px 20px;
	border: 1px solid var(--brand-blue);
	border-radius: 12px;
	background: transparent;
	color: var(--brand-blue);
	font-family: "DM Sans", sans-serif;
	font-size: 16px;
	font-weight: 700;
	line-height: 1.4;
	text-decoration: none;
	transition: color .25s ease, background .25s ease, border-color .25s ease, transform .25s ease;
}

.tch-course-section .tch-course-all-link:hover,
.tch-course-section .tch-course-all-link:focus-visible {
	transform: translateY(-2px);
	border-color: var(--brand-blue-dark);
	background: var(--brand-blue-dark);
	color: var(--white);
}

.tch-course-section .tch-course-all-link svg,
.tch-course-section .tch-course-explore svg {
	flex: 0 0 auto;
	width: 17px;
	height: 17px;
}

.tch-course-section .tch-course-grid {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	align-items: stretch;
	gap: 24px;
	margin: 0;
}

.tch-course-section .tch-course-card {
	display: flex;
	min-width: 0;
	flex-direction: column;
	overflow: hidden;
	border: 1px solid var(--tch-line);
	border-radius: 18px;
	background: var(--white);
	box-shadow: 0 6px 22px rgba(24, 24, 24, .055);
	transition: transform .3s ease, box-shadow .3s ease, border-color .3s ease;
}

.tch-course-section .tch-course-card:hover {
	transform: translateY(-6px);
	border-color: color-mix(in srgb, var(--brand-blue) 35%, var(--tch-line));
	box-shadow: 0 18px 40px rgba(24, 24, 24, .12);
}

.tch-course-section .tch-course-image-link {
	position: relative;
	display: block;
	overflow: hidden;
	aspect-ratio: 16 / 9;
	background: #e9eef6;
	text-decoration: none;
}

.tch-course-section .tch-course-image {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform .5s ease;
}

.tch-course-section .tch-course-card:hover .tch-course-image {
	transform: scale(1.045);
}

.tch-course-section .tch-course-image-fallback {
	display: flex;
	width: 100%;
	height: 100%;
	align-items: center;
	justify-content: center;
	background: var(--brand-gradient);
	color: var(--white);
}

.tch-course-section .tch-course-image-fallback svg {
	width: 60px;
	height: 60px;
	opacity: .95;
}

.tch-course-section .tch-course-level {
	position: absolute;
	z-index: 1;
	top: 14px;
	left: 14px;
	display: inline-flex;
	align-items: center;
	padding: 7px 11px;
	border: 1px solid rgba(255, 255, 255, .72);
	border-radius: 8px;
	background: rgba(255, 255, 255, .95);
	color: var(--black);
	font-size: 12px;
	font-weight: 700;
	line-height: 1.2;
	text-transform: capitalize;
	box-shadow: 0 3px 12px rgba(24, 24, 24, .10);
}

.tch-course-section .tch-course-card-body {
	display: flex;
	flex: 1;
	flex-direction: column;
	align-items: flex-start;
	padding: 24px;
}

.tch-course-section .tch-course-stats {
	display: flex;
	flex-wrap: wrap;
	gap: 9px 16px;
	width: 100%;
	margin: 0 0 18px;
	color: #626b78;
	font-size: 14px;
	font-weight: 500;
	line-height: 1.5;
}

.tch-course-section .tch-course-stat {
	display: inline-flex;
	align-items: center;
	gap: 7px;
	min-width: 0;
}

.tch-course-section .tch-course-stat svg {
	flex: 0 0 auto;
	width: 16px;
	height: 16px;
	color: var(--brand-blue);
}

.tch-course-section .tch-course-card-title {
	margin: 0 0 12px;
	color: var(--black);
	font-size: 21px;
	font-weight: 700;
	line-height: 1.35;
	letter-spacing: -.02em;
}

.tch-course-section .tch-course-card-title a {
	color: inherit;
	text-decoration: none;
}

.tch-course-section .tch-course-card-title a:hover,
.tch-course-section .tch-course-card-title a:focus-visible {
	color: var(--brand-blue);
}

.tch-course-section .tch-course-card-excerpt {
	display: -webkit-box;
	overflow: hidden;
	margin: 0 0 24px;
	color: #515967;
	font-size: 15px;
	font-weight: 400;
	line-height: 1.7;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 3;
}

.tch-course-section .tch-course-explore {
	display: inline-flex;
	width: 100%;
	align-items: center;
	justify-content: center;
	gap: 10px;
	margin-top: auto;
	padding: 14px 18px;
	border: 1px solid var(--brand-green);
	border-radius: 12px;
	background: var(--brand-green);
	color: var(--black) !important;
	font-family: "DM Sans", sans-serif;
	font-size: 16px;
	font-weight: 700;
	line-height: 1.4;
	text-align: center;
	text-decoration: none !important;
	transition: background .25s ease, color .25s ease, border-color .25s ease, transform .25s ease;
}

.tch-course-section .tch-course-explore:hover,
.tch-course-section .tch-course-explore:focus-visible {
	transform: translateY(-2px);
	border-color: var(--brand-blue-dark);
	background: var(--brand-blue-dark);
	color: var(--white) !important;
}

.tch-course-section .tch-course-empty {
	grid-column: 1 / -1;
	padding: 38px 26px;
	border: 1px dashed #cbd3df;
	border-radius: 18px;
	background: rgba(255, 255, 255, .75);
	color: var(--op-black);
	text-align: center;
}

.tch-course-section .tch-course-empty strong {
	display: block;
	margin: 0 0 8px;
	color: var(--black);
	font-size: 22px;
	font-weight: 700;
}

@media (max-width: 1200px) {
	.tch-course-section .tch-course-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 22px;
	}
}

@media (max-width: 767px) {
	.tch-course-section {
		padding: 50px 0;
	}

	.tch-course-section .tch-course-heading {
		align-items: flex-start;
		flex-direction: column;
		gap: 22px;
		margin-bottom: 28px;
	}

	.tch-course-section .tch-course-title {
		font-size: clamp(31px, 8vw, 42px);
	}

	.tch-course-section .tch-course-description {
		font-size: 16px;
		line-height: 1.65;
	}

	.tch-course-section .tch-course-grid {
		grid-template-columns: minmax(0, 1fr);
		gap: 20px;
	}

	.tch-course-section .tch-course-card-body {
		padding: 22px;
	}

	.tch-course-section .tch-course-card-title {
		font-size: 20px;
	}
}

@media (prefers-reduced-motion: reduce) {
	.tch-course-section *,
	.tch-course-section *::before,
	.tch-course-section *::after {
		transition-duration: .01ms !important;
		animation-duration: .01ms !important;
		animation-iteration-count: 1 !important;
		scroll-behavior: auto !important;
	}
}
/* ==========================================================
   Tally Learning Hub — course archive and detail templates
   Uses the existing DM Sans type, blue/lime palette and theme buttons.
   ========================================================== */
.tlh-course-archive,
.tlh-single-course {
	--tlh-ink: var(--black);
	--tlh-muted: var(--op-black);
	--tlh-border: rgba(24, 24, 24, 0.10);
	--tlh-card-shadow: 0 18px 50px rgba(24, 24, 24, 0.08);
	color: var(--tlh-ink);
}

.tlh-course-archive .container,
.tlh-single-course .container {
	position: relative;
	z-index: 1;
}

/* Shared course components */
.tlh-section-eyebrow,
.tlh-archive-hero__eyebrow,
.tlh-single-hero__eyebrow {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	font-size: 13px;
	font-weight: 700;
	letter-spacing: 0.13em;
	line-height: 1.4;
}

.tlh-section-eyebrow {
	margin-bottom: 16px;
	color: var(--brand-blue);
}

.tlh-course-badge {
	display: inline-flex;
	align-items: center;
	width: max-content;
	max-width: 100%;
	padding: 7px 12px;
	border: 1px solid rgba(22, 105, 197, 0.16);
	border-radius: 999px;
	background: rgba(22, 105, 197, 0.07);
	color: var(--brand-blue-dark);
	font-size: 12px;
	font-weight: 700;
	line-height: 1.2;
	text-transform: capitalize;
}

.tlh-course-badge--demo {
	border-color: rgba(177, 206, 47, 0.6);
	background: var(--brand-green);
	color: var(--black);
}

.tlh-course-image-placeholder {
	position: relative;
	display: flex;
	width: 100%;
	height: 100%;
	min-height: 190px;
	align-items: center;
	justify-content: center;
	flex-direction: column;
	gap: 12px;
	background: var(--brand-gradient);
	color: var(--white);
	font-size: 14px;
	font-weight: 700;
	letter-spacing: 0.03em;
}

.tlh-course-image-placeholder__play {
	display: inline-flex;
	width: 58px;
	height: 58px;
	align-items: center;
	justify-content: center;
	border: 1px solid rgba(255, 255, 255, 0.5);
	border-radius: 50%;
	background: rgba(255, 255, 255, 0.14);
	backdrop-filter: blur(8px);
}

.tlh-course-image-placeholder__play svg {
	width: 23px;
	height: 23px;
	fill: var(--brand-green);
}

/* Archive hero */
.tlh-archive-hero {
	position: relative;
	overflow: hidden;
	padding: 105px 0 100px;
	background: var(--brand-gradient);
	isolation: isolate;
}

.tlh-archive-hero::before,
.tlh-archive-hero::after {
	position: absolute;
	z-index: -1;
	border: 1px solid rgba(255, 255, 255, 0.12);
	border-radius: 50%;
	content: '';
	pointer-events: none;
}

.tlh-archive-hero::before {
	top: -240px;
	right: -110px;
	width: 610px;
	height: 610px;
	box-shadow: 0 0 0 50px rgba(255, 255, 255, 0.025), 0 0 0 100px rgba(255, 255, 255, 0.025);
}

.tlh-archive-hero::after {
	bottom: -270px;
	left: -130px;
	width: 460px;
	height: 460px;
	background: rgba(177, 206, 47, 0.06);
}

.tlh-archive-hero__grid {
	display: grid;
	grid-template-columns: minmax(0, 1.08fr) minmax(320px, 0.72fr);
	align-items: center;
	gap: clamp(48px, 7vw, 110px);
}

.tlh-archive-hero__content {
	max-width: 790px;
}

.tlh-archive-hero__eyebrow {
	margin-bottom: 24px;
	color: var(--brand-green-light);
}

.tlh-archive-hero__eyebrow span {
	width: 8px;
	height: 8px;
	border-radius: 50%;
	background: var(--brand-green);
	box-shadow: 0 0 0 6px rgba(177, 206, 47, 0.14);
}

.tlh-course-archive .tlh-archive-hero__title {
	max-width: 790px;
	margin: 0;
	color: var(--white);
	font-size: clamp(42px, 5.3vw, 70px);
	font-weight: 600;
	letter-spacing: -0.045em;
	line-height: 1.08;
}

.tlh-course-archive .tlh-archive-hero__description {
	max-width: 660px;
	margin: 24px 0 0;
	color: rgba(255, 255, 255, 0.82);
	font-size: 18px;
	font-weight: 400;
	line-height: 1.75;
}

.tlh-archive-hero__actions {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 24px;
	margin-top: 34px;
}

.tlh-archive-hero__actions .btn {
	gap: 18px;
	margin: 0;
}

.tlh-archive-hero__actions .btn span,
.tlh-single-hero__actions .btn span {
	font-size: 22px;
	line-height: 1;
	transition: transform 0.25s ease;
}

.tlh-archive-hero__actions .btn:hover span,
.tlh-single-hero__actions .btn:hover span {
	transform: translateX(3px);
}

.tlh-archive-hero__availability {
	color: rgba(255, 255, 255, 0.75);
	font-size: 14px;
}

.tlh-archive-hero__availability strong {
	color: var(--white);
	font-size: 20px;
	font-weight: 700;
}

.tlh-archive-hero__panel {
	position: relative;
	overflow: hidden;
	padding: 30px;
	border: 1px solid rgba(255, 255, 255, 0.22);
	border-radius: 24px;
	background: rgba(255, 255, 255, 0.10);
	box-shadow: 0 28px 70px rgba(10, 28, 72, 0.20);
	backdrop-filter: blur(16px);
}

.tlh-archive-hero__panel-top {
	display: flex;
	align-items: center;
	gap: 16px;
	padding-bottom: 24px;
	border-bottom: 1px solid rgba(255, 255, 255, 0.18);
}

.tlh-archive-hero__panel-icon {
	display: inline-flex;
	width: 54px;
	height: 54px;
	flex: 0 0 54px;
	align-items: center;
	justify-content: center;
	border-radius: 16px;
	background: var(--brand-green);
}

.tlh-archive-hero__panel-icon svg {
	width: 24px;
	height: 24px;
	fill: var(--black);
}

.tlh-archive-hero__panel-top strong,
.tlh-archive-hero__panel-top small,
.tlh-archive-hero__step strong,
.tlh-archive-hero__step small {
	display: block;
}

.tlh-archive-hero__panel-top strong {
	color: var(--white);
	font-size: 19px;
	font-weight: 700;
	line-height: 1.35;
}

.tlh-archive-hero__panel-top small {
	margin-top: 4px;
	color: rgba(255, 255, 255, 0.68);
	font-size: 13px;
	line-height: 1.45;
}

.tlh-archive-hero__steps {
	display: flex;
	flex-direction: column;
	gap: 22px;
	padding-top: 24px;
}

.tlh-archive-hero__step {
	display: flex;
	align-items: flex-start;
	gap: 16px;
}

.tlh-archive-hero__step > span {
	display: inline-flex;
	width: 38px;
	height: 38px;
	flex: 0 0 38px;
	align-items: center;
	justify-content: center;
	border: 1px solid rgba(255, 255, 255, 0.22);
	border-radius: 12px;
	color: var(--brand-green-light);
	font-size: 13px;
	font-weight: 800;
}

.tlh-archive-hero__step strong {
	color: var(--white);
	font-size: 15px;
	font-weight: 700;
	line-height: 1.4;
}

.tlh-archive-hero__step small {
	margin-top: 5px;
	color: rgba(255, 255, 255, 0.65);
	font-size: 13px;
	line-height: 1.5;
}

.tlh-archive-hero__panel-accent {
	position: absolute;
	right: -26px;
	bottom: -50px;
	width: 130px;
	height: 130px;
	border: 22px solid rgba(177, 206, 47, 0.13);
	border-radius: 50%;
	pointer-events: none;
}

/* Archive course catalog */
.tlh-course-catalog {
	background: var(--white);
}

.tlh-course-catalog__heading {
	display: flex;
	align-items: flex-end;
	justify-content: space-between;
	gap: 40px;
	margin-bottom: 48px;
}

.tlh-course-catalog__heading > div:first-child {
	max-width: 800px;
}

.tlh-course-archive .tlh-course-catalog__heading .title_h2 {
	margin: 0 0 14px;
	font-weight: 600;
	letter-spacing: -0.035em;
}

.tlh-course-catalog__heading .section_description {
	margin: 0;
	font-weight: 400;
	line-height: 1.7;
}

.tlh-course-catalog__count {
	display: flex;
	flex: 0 0 auto;
	flex-direction: column;
	align-items: flex-end;
	gap: 4px;
	padding-left: 28px;
	border-left: 1px solid var(--tlh-border);
}

.tlh-course-catalog__count strong {
	color: var(--brand-blue);
	font-size: 34px;
	font-weight: 700;
	line-height: 1;
}

.tlh-course-catalog__count span {
	color: var(--op-black);
	font-size: 13px;
	font-weight: 500;
}

.tlh-archive-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	align-items: stretch;
	gap: 30px;
}

.tlh-archive-card,
.tlh-related-card {
	position: relative;
	display: flex;
	min-width: 0;
	flex-direction: column;
	overflow: hidden;
	border: 1px solid var(--tlh-border);
	border-radius: 20px;
	background: var(--white);
	box-shadow: 0 8px 28px rgba(24, 24, 24, 0.035);
	transition: transform 0.35s ease, box-shadow 0.35s ease, border-color 0.35s ease;
}

.tlh-archive-card:hover,
.tlh-archive-card:focus-within,
.tlh-related-card:hover,
.tlh-related-card:focus-within {
	transform: translateY(-7px);
	border-color: rgba(22, 105, 197, 0.24);
	box-shadow: var(--tlh-card-shadow);
}

.tlh-archive-card__image,
.tlh-related-card__image {
	position: relative;
	display: block;
	overflow: hidden;
	aspect-ratio: 16 / 9;
	background: var(--brand-gradient);
}

.tlh-archive-card__image > img,
.tlh-related-card__image > img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 0.6s cubic-bezier(0.2, 0.7, 0.2, 1);
}

.tlh-archive-card:hover .tlh-archive-card__image > img,
.tlh-related-card:hover .tlh-related-card__image > img {
	transform: scale(1.055);
}

.tlh-archive-card__image .tlh-course-image-placeholder,
.tlh-related-card__image .tlh-course-image-placeholder {
	position: absolute;
	inset: 0;
}

.tlh-archive-card__image-shade {
	position: absolute;
	inset: 0;
	background: linear-gradient(180deg, transparent 40%, rgba(12, 30, 65, 0.34) 100%);
	pointer-events: none;
}

.tlh-archive-card__play {
	position: absolute;
	right: 20px;
	bottom: 18px;
	display: inline-flex;
	width: 42px;
	height: 42px;
	align-items: center;
	justify-content: center;
	border: 1px solid rgba(255, 255, 255, 0.7);
	border-radius: 50%;
	background: rgba(255, 255, 255, 0.18);
	backdrop-filter: blur(8px);
	transition: background 0.25s ease, transform 0.25s ease;
}

.tlh-archive-card__play svg {
	width: 18px;
	height: 18px;
	fill: var(--white);
}

.tlh-archive-card:hover .tlh-archive-card__play {
	transform: scale(1.06);
	background: var(--brand-blue);
}

.tlh-archive-card__body,
.tlh-related-card__body {
	display: flex;
	flex: 1;
	flex-direction: column;
	align-items: stretch;
	padding: 26px;
}

.tlh-archive-card__badges {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	min-height: 28px;
	margin-bottom: 13px;
}

.tlh-archive-card__title {
	display: -webkit-box;
	overflow: hidden;
	margin: 0 0 12px;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 2;
	font-size: 23px;
	font-weight: 700;
	letter-spacing: -0.025em;
	line-height: 1.32;
}

.tlh-archive-card__title a,
.tlh-related-card__body h3 a {
	color: var(--black);
	text-decoration: none;
	transition: color 0.25s ease;
}

.tlh-archive-card__title a:hover,
.tlh-related-card__body h3 a:hover {
	color: var(--brand-blue);
}

.tlh-archive-card__excerpt {
	display: -webkit-box;
	overflow: hidden;
	min-height: 72px;
	margin: 0 0 22px;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 3;
	color: var(--op-black);
	font-size: 15px;
	font-weight: 400;
	line-height: 1.6;
}

.tlh-archive-card__facts {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 12px 18px;
	margin-top: auto;
	padding: 16px 0 20px;
	border-top: 1px solid var(--tlh-border);
	color: var(--op-black);
	font-size: 13px;
	font-weight: 500;
}

.tlh-archive-card__facts span {
	display: inline-flex;
	align-items: center;
	gap: 7px;
}

.tlh-archive-card__facts svg {
	width: 17px;
	height: 17px;
	flex: 0 0 17px;
	fill: none;
	stroke: var(--brand-blue);
	stroke-linecap: round;
	stroke-linejoin: round;
	stroke-width: 1.6;
}

.tlh-course-archive .tlh-archive-card__button {
	width: 100%;
	justify-content: space-between;
	gap: 12px;
	margin-top: 0;
	padding: 13px 18px;
	border-radius: 12px;
	font-size: 15px;
	line-height: 1.5;
}

.tlh-archive-card__button span {
	font-size: 21px;
	line-height: 1;
	transition: transform 0.25s ease;
}

.tlh-archive-card__button:hover span {
	transform: translateX(4px);
}

.tlh-archive-pagination {
	margin-top: 55px;
}

.tlh-archive-pagination .nav-links {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: center;
	gap: 9px;
}

.tlh-archive-pagination .page-numbers {
	display: inline-flex;
	min-width: 44px;
	height: 44px;
	align-items: center;
	justify-content: center;
	padding: 0 13px;
	border: 1px solid var(--tlh-border);
	border-radius: 10px;
	background: var(--white);
	color: var(--black);
	font-size: 14px;
	font-weight: 700;
	text-decoration: none;
	transition: all 0.25s ease;
}

.tlh-archive-pagination .page-numbers:hover,
.tlh-archive-pagination .page-numbers.current {
	border-color: var(--brand-blue);
	background: var(--brand-blue);
	color: var(--white);
}

.tlh-archive-pagination .page-numbers.dots {
	border-color: transparent;
	background: transparent;
}

.tlh-archive-pagination .page-numbers.prev,
.tlh-archive-pagination .page-numbers.next {
	gap: 8px;
}

.tlh-archive-empty {
	display: flex;
	max-width: 680px;
	flex-direction: column;
	align-items: center;
	margin: 0 auto;
	padding: 60px 30px;
	border: 1px solid var(--tlh-border);
	border-radius: 22px;
	background: var(--body-white);
	text-align: center;
}

.tlh-archive-empty__icon {
	display: inline-flex;
	width: 64px;
	height: 64px;
	align-items: center;
	justify-content: center;
	margin-bottom: 20px;
	border-radius: 18px;
	background: rgba(22, 105, 197, 0.09);
}

.tlh-archive-empty__icon svg {
	width: 29px;
	height: 29px;
	fill: none;
	stroke: var(--brand-blue);
	stroke-linecap: round;
	stroke-linejoin: round;
	stroke-width: 1.7;
}

.tlh-archive-empty h2 {
	margin: 0 0 12px;
	font-size: 27px;
	font-weight: 700;
}

.tlh-archive-empty p {
	margin: 0 0 24px;
	color: var(--op-black);
	font-size: 16px;
}

/* Single course hero */
.tlh-single-hero {
	position: relative;
	overflow: hidden;
	padding: 30px 0 92px;
	background: var(--body-white);
}

.tlh-breadcrumbs {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 10px;
	margin-bottom: 48px;
	color: rgba(24, 24, 24, 0.5);
	font-size: 13px;
	font-weight: 500;
	line-height: 1.5;
}

.tlh-breadcrumbs a {
	color: var(--brand-blue);
	text-decoration: none;
}

.tlh-breadcrumbs a:hover {
	color: var(--brand-blue-dark);
	text-decoration: underline;
}

.tlh-breadcrumbs span[aria-current="page"] {
	max-width: 360px;
	overflow: hidden;
	color: var(--op-black);
	text-overflow: ellipsis;
	white-space: nowrap;
}

.tlh-single-hero__grid {
	display: grid;
	grid-template-columns: minmax(0, 1.02fr) minmax(340px, 0.9fr);
	align-items: center;
	gap: clamp(48px, 7vw, 110px);
}

.tlh-single-hero__content {
	min-width: 0;
}

.tlh-single-hero__eyebrow {
	margin-bottom: 22px;
	color: var(--brand-blue);
}

.tlh-single-hero__eyebrow-dot {
	width: 8px;
	height: 8px;
	border-radius: 50%;
	background: var(--brand-green-dark);
	box-shadow: 0 0 0 6px rgba(177, 206, 47, 0.19);
}

.tlh-single-hero__badges {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin-bottom: 19px;
}

.tlh-single-course .tlh-single-hero__title {
	max-width: 780px;
	margin: 0;
	font-size: clamp(36px, 4.4vw, 62px);
	font-weight: 600;
	letter-spacing: -0.045em;
	line-height: 1.1;
}

.tlh-single-hero__excerpt {
	max-width: 690px;
	margin: 23px 0 0;
	color: var(--op-black);
	font-size: 17px;
	font-weight: 400;
	line-height: 1.75;
}

.tlh-course-facts {
	display: flex;
	flex-wrap: wrap;
	gap: 12px;
	margin-top: 30px;
}

.tlh-course-fact {
	display: flex;
	min-width: 145px;
	align-items: center;
	gap: 11px;
	padding: 12px 15px;
	border: 1px solid var(--tlh-border);
	border-radius: 13px;
	background: var(--white);
}

.tlh-course-fact__icon {
	display: inline-flex;
	width: 38px;
	height: 38px;
	flex: 0 0 38px;
	align-items: center;
	justify-content: center;
	border-radius: 11px;
	background: rgba(22, 105, 197, 0.08);
}

.tlh-course-fact__icon svg {
	width: 20px;
	height: 20px;
	fill: none;
	stroke: var(--brand-blue);
	stroke-linecap: round;
	stroke-linejoin: round;
	stroke-width: 1.7;
}

.tlh-course-fact strong,
.tlh-course-fact small {
	display: block;
}

.tlh-course-fact strong {
	color: var(--black);
	font-size: 14px;
	font-weight: 700;
	line-height: 1.35;
}

.tlh-course-fact small {
	margin-top: 3px;
	color: var(--op-black);
	font-size: 11px;
	font-weight: 500;
	line-height: 1.3;
}

.tlh-single-hero__actions {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 25px;
	margin-top: 32px;
}

.tlh-single-hero__actions .btn {
	gap: 14px;
	margin: 0;
	font-size: 16px;
}

.tlh-single-course .tlh-single-hero__actions .btn {
	padding: 15px 24px;
	border-radius: 12px;
}

.tlh-text-link {
	display: inline-flex;
	align-items: center;
	gap: 9px;
	color: var(--brand-blue-dark);
	font-size: 15px;
	font-weight: 700;
	text-decoration: none;
}

.tlh-text-link span {
	font-size: 19px;
	transition: transform 0.25s ease;
}

.tlh-text-link:hover {
	color: var(--brand-blue);
}

.tlh-text-link:hover span {
	transform: translateY(3px);
}

.tlh-single-hero__note {
	max-width: 550px;
	margin: 19px 0 0;
	color: rgba(24, 24, 24, 0.58);
	font-size: 12px;
	font-weight: 400;
	line-height: 1.6;
}

.tlh-single-hero__visual {
	position: relative;
	min-width: 0;
	padding: 0 0 24px 24px;
}

.tlh-single-hero__visual::before {
	position: absolute;
	top: -20px;
	right: -20px;
	width: 42%;
	height: 42%;
	border-top: 3px solid var(--brand-green);
	border-right: 3px solid var(--brand-green);
	border-radius: 0 24px 0 0;
	content: '';
	pointer-events: none;
}

.tlh-single-hero__image-wrap {
	position: relative;
	z-index: 1;
	overflow: hidden;
	aspect-ratio: 4 / 3;
	border-radius: 22px;
	background: var(--brand-gradient);
	box-shadow: 0 28px 65px rgba(21, 57, 115, 0.17);
}

.tlh-single-hero__image-wrap > img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.tlh-course-image-placeholder--large {
	min-height: 100%;
	font-size: 16px;
}

.tlh-single-hero__visual-caption {
	position: absolute;
	z-index: 2;
	right: 0;
	bottom: 0;
	display: flex;
	max-width: calc(100% - 48px);
	align-items: center;
	gap: 12px;
	padding: 15px 20px;
	border: 1px solid rgba(24, 24, 24, 0.06);
	border-radius: 14px;
	background: var(--white);
	box-shadow: 0 15px 42px rgba(24, 24, 24, 0.12);
}

.tlh-single-hero__caption-mark {
	display: inline-flex;
	width: 36px;
	height: 36px;
	flex: 0 0 36px;
	align-items: center;
	justify-content: center;
	border-radius: 50%;
	background: var(--brand-green);
	color: var(--black);
	font-size: 18px;
	font-weight: 800;
}

.tlh-single-hero__visual-caption strong,
.tlh-single-hero__visual-caption small {
	display: block;
}

.tlh-single-hero__visual-caption strong {
	color: var(--black);
	font-size: 14px;
	font-weight: 700;
	line-height: 1.3;
}

.tlh-single-hero__visual-caption small {
	margin-top: 4px;
	color: var(--op-black);
	font-size: 11px;
	font-weight: 400;
	line-height: 1.4;
}

/* Course description and the existing plugin's lessons / quiz */
.tlh-single-content {
	background: var(--white);
}

.tlh-single-content__intro {
	max-width: 800px;
	margin: 0 auto 48px;
	text-align: center;
}

.tlh-single-course .tlh-single-content__intro .title_h2 {
	margin: 0 0 16px;
	font-size: clamp(30px, 3.4vw, 46px);
	font-weight: 600;
	letter-spacing: -0.035em;
	line-height: 1.2;
}

.tlh-single-content__intro > p {
	margin: 0 auto;
	color: var(--op-black);
	font-size: 17px;
	font-weight: 400;
	line-height: 1.7;
}

.tlh-single-content__body {
	max-width: 1240px;
	margin: 0 auto;
}

.tlh-single-content__body > p,
.tlh-single-content__body > ul,
.tlh-single-content__body > ol,
.tlh-single-content__body > blockquote {
	max-width: 920px;
	margin-right: auto;
	margin-left: auto;
}

.tlh-single-content__body > p {
	margin-top: 0;
	margin-bottom: 22px;
	font-size: 17px;
	font-weight: 400;
	line-height: 1.8;
}

.tlh-single-content__body > h2,
.tlh-single-content__body > h3,
.tlh-single-content__body > h4 {
	max-width: 920px;
	margin: 30px auto 15px;
	font-weight: 600;
	line-height: 1.25;
}

.tlh-single-content__body > ul,
.tlh-single-content__body > ol {
	margin-top: 0;
	margin-bottom: 24px;
	padding-left: 25px;
}

.tlh-single-content__body > ul li,
.tlh-single-content__body > ol li {
	margin: 0 0 10px;
	list-style: revert;
	font-size: 16px;
	line-height: 1.65;
}

/* More specific than the existing inline plugin styles, so these rules win. */
.tlh-single-course .tlh-learning-area {
	clear: both;
	width: 100%;
	max-width: none;
	margin: 60px 0 0;
}

.tlh-single-course .tlh-course-detail-meta {
	display: none;
}

.tlh-single-course .tlh-section-heading {
	max-width: 850px;
	margin: 34px auto 26px;
	text-align: center;
}

.tlh-single-course .tlh-section-heading .tlh-eyebrow {
	display: inline-block;
	margin-bottom: 10px;
	color: var(--brand-blue);
	font-size: 12px;
	font-weight: 800;
	letter-spacing: 0.13em;
}

.tlh-single-course .tlh-section-heading h2 {
	margin: 0 0 12px;
	color: var(--black);
	font-size: clamp(28px, 3.2vw, 42px);
	font-weight: 600;
	letter-spacing: -0.03em;
	line-height: 1.2;
}

.tlh-single-course .tlh-section-heading p {
	margin: 0;
	color: var(--op-black);
	font-size: 16px;
	font-weight: 400;
	line-height: 1.7;
}

.tlh-single-course .tlh-lesson-grid {
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 26px;
	margin: 28px 0 0;
}

.tlh-single-course .tlh-lesson-card {
	min-width: 0;
	padding: 20px;
	border: 1px solid var(--tlh-border);
	border-radius: 18px;
	background: var(--white);
	box-shadow: 0 8px 28px rgba(24, 24, 24, 0.045);
}

.tlh-single-course .tlh-lesson-card h3 {
	margin: 0 0 16px;
	color: var(--black);
	font-size: 19px;
	font-weight: 700;
	line-height: 1.4;
}

.tlh-single-course .tlh-video-frame {
	border-radius: 12px;
	background: #101b31;
}

.tlh-single-course .tlh-watch-link {
	display: inline-flex;
	align-items: center;
	gap: 7px;
	margin: 15px 0 0;
	color: var(--brand-blue);
	font-size: 14px;
	font-weight: 700;
	text-decoration: none;
}

.tlh-single-course .tlh-watch-link:hover {
	color: var(--brand-blue-dark);
	text-decoration: underline;
}

.tlh-single-course .tlh-quiz-section {
	margin-top: 58px;
	padding: 34px;
	border: 1px solid var(--tlh-border);
	border-radius: 22px;
	background: var(--body-white);
}

.tlh-single-course .tlh-quiz-section .tlh-section-heading {
	margin-top: 0;
}

.tlh-single-course .tlh-learner-details,
.tlh-single-course .tlh-question {
	margin: 0 0 18px;
	padding: 24px;
	border: 1px solid var(--tlh-border);
	border-radius: 15px;
	background: var(--white);
}

.tlh-single-course .tlh-learner-details legend,
.tlh-single-course .tlh-question legend {
	max-width: 100%;
	padding: 0 8px;
	color: var(--black);
	font-size: 16px;
	font-weight: 700;
	line-height: 1.6;
}

.tlh-single-course .tlh-learner-details label {
	margin: 13px 0;
	color: var(--black);
	font-size: 14px;
	font-weight: 600;
}

.tlh-single-course .tlh-learner-details input {
	min-height: 48px;
	padding: 12px 14px;
	border: 1px solid rgba(24, 24, 24, 0.18);
	border-radius: 10px;
	font: inherit;
	font-size: 15px;
	transition: border-color 0.2s ease, box-shadow 0.2s ease;
}

.tlh-single-course .tlh-learner-details input:focus {
	border-color: var(--brand-blue);
	outline: none;
	box-shadow: 0 0 0 3px rgba(22, 105, 197, 0.12);
}

.tlh-single-course .tlh-question-number {
	width: 32px;
	height: 32px;
	margin-right: 10px;
	background: var(--brand-green);
	color: var(--black);
	font-size: 13px;
	font-weight: 800;
}

.tlh-single-course .tlh-option {
	align-items: flex-start;
	gap: 12px;
	margin: 9px 0;
	padding: 13px 15px;
	border: 1px solid var(--tlh-border);
	border-radius: 10px;
	background: var(--white);
	font-size: 14px;
	line-height: 1.6;
	transition: border-color 0.2s ease, background 0.2s ease;
}

.tlh-single-course .tlh-option:hover {
	border-color: rgba(22, 105, 197, 0.35);
	background: rgba(22, 105, 197, 0.035);
}

.tlh-single-course .tlh-option input {
	accent-color: var(--brand-blue);
}

.tlh-single-course .tlh-button {
	border: 1px solid var(--brand-green);
	border-radius: 12px;
	background: var(--brand-green);
	color: var(--black) !important;
	font-family: "DM Sans", sans-serif;
	font-size: 15px;
	font-weight: 700;
	transition: background 0.25s ease, color 0.25s ease, border-color 0.25s ease, transform 0.25s ease;
}

.tlh-single-course .tlh-button:hover,
.tlh-single-course .tlh-button:focus {
	border-color: var(--brand-blue-dark);
	background: var(--brand-blue-dark);
	color: var(--white) !important;
}

.tlh-single-course .tlh-privacy-note {
	margin-top: 16px;
	color: rgba(24, 24, 24, 0.58);
	font-size: 12px;
	line-height: 1.6;
}

.tlh-single-course .tlh-notice {
	border-color: rgba(22, 105, 197, 0.22);
	border-radius: 12px;
	background: rgba(22, 105, 197, 0.055);
	color: var(--black);
	font-size: 14px;
	line-height: 1.65;
}

.tlh-single-course .tlh-result-card {
	padding: 28px;
	border-radius: 16px;
	background: var(--white);
}

.tlh-single-course .tlh-result-card .tlh-result-score {
	color: var(--brand-blue);
	font-size: 48px;
	letter-spacing: -0.04em;
}

.tlh-single-course .tlh-result-card.is-passed {
	border-color: rgba(143, 168, 32, 0.55);
	background: rgba(177, 206, 47, 0.08);
}

.tlh-single-course .tlh-result-card.is-failed {
	border-color: rgba(183, 58, 58, 0.25);
}

.tlh-single-course .tlh-answer-review {
	padding: 16px;
	border-color: var(--tlh-border);
	border-radius: 11px;
}

/* Related courses on single pages */
.tlh-related-courses {
	background: var(--gray);
}

.tlh-related-courses__header {
	display: flex;
	align-items: flex-end;
	justify-content: space-between;
	gap: 30px;
	margin-bottom: 40px;
}

.tlh-single-course .tlh-related-courses__header .title_h2 {
	margin: 0;
	font-size: clamp(30px, 3.4vw, 44px);
	font-weight: 600;
	letter-spacing: -0.035em;
	line-height: 1.2;
}

.tlh-related-courses__header .tlh-section-eyebrow {
	margin-bottom: 13px;
}

.tlh-related-courses__all {
	display: inline-flex;
	flex: 0 0 auto;
	align-items: center;
	gap: 10px;
	padding-bottom: 4px;
	border-bottom: 1px solid var(--brand-blue);
	color: var(--brand-blue-dark);
	font-size: 14px;
	font-weight: 700;
	text-decoration: none;
}

.tlh-related-courses__all:hover {
	color: var(--brand-blue);
}

.tlh-related-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 24px;
}

.tlh-related-card__image .tlh-course-image-placeholder {
	min-height: 150px;
}

.tlh-related-card__body {
	padding: 22px;
}

.tlh-related-card__body h3 {
	display: -webkit-box;
	overflow: hidden;
	margin: 13px 0 10px;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 2;
	font-size: 19px;
	font-weight: 700;
	line-height: 1.4;
}

.tlh-related-card__body > p {
	display: -webkit-box;
	overflow: hidden;
	margin: 0;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 3;
	color: var(--op-black);
	font-size: 14px;
	font-weight: 400;
	line-height: 1.6;
}

.tlh-related-card__meta {
	display: flex;
	flex-wrap: wrap;
	gap: 8px 14px;
	margin-top: 18px;
	padding-top: 15px;
	border-top: 1px solid var(--tlh-border);
	color: var(--op-black);
	font-size: 12px;
}

.tlh-related-card__link {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 10px;
	margin-top: 20px;
	color: var(--brand-blue-dark);
	font-size: 14px;
	font-weight: 700;
	text-decoration: none;
}

.tlh-related-card__link span {
	font-size: 20px;
	transition: transform 0.25s ease;
}

.tlh-related-card__link:hover {
	color: var(--brand-blue);
}

.tlh-related-card__link:hover span {
	transform: translateX(4px);
}

/* Responsive course layouts */
@media screen and (max-width: 1200px) {
	.tlh-archive-hero { padding: 85px 0; }
	.tlh-archive-hero__grid { grid-template-columns: minmax(0, 1fr) minmax(290px, 0.8fr); gap: 45px; }
	.tlh-single-hero__grid { gap: 48px; }
	.tlh-archive-grid { gap: 22px; }
	.tlh-archive-card__body { padding: 22px; }
	.tlh-archive-card__title { font-size: 21px; }
}

@media screen and (max-width: 1024px) {
	.tlh-archive-hero__grid { grid-template-columns: 1fr; gap: 38px; }
	.tlh-archive-hero__content { max-width: 850px; }
	.tlh-archive-hero__panel { max-width: 680px; }
	.tlh-archive-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.tlh-single-hero__grid { grid-template-columns: minmax(0, 1fr) minmax(280px, 0.8fr); gap: 35px; }
	.tlh-single-course .tlh-single-hero__title { font-size: clamp(34px, 4.2vw, 48px); }
	.tlh-related-grid { gap: 18px; }
}

@media screen and (max-width: 767px) {
	.tlh-archive-hero { padding: 66px 0; }
	.tlh-archive-hero__grid { gap: 32px; }
	.tlh-course-archive .tlh-archive-hero__title { font-size: clamp(36px, 8vw, 52px); }
	.tlh-course-archive .tlh-archive-hero__description { margin-top: 18px; font-size: 16px; line-height: 1.65; }
	.tlh-archive-hero__actions { align-items: flex-start; gap: 18px; margin-top: 26px; }
	.tlh-archive-hero__panel { padding: 22px; border-radius: 18px; }
	.tlh-archive-hero__steps { gap: 18px; padding-top: 20px; }
	.tlh-course-catalog__heading { align-items: flex-start; gap: 22px; margin-bottom: 32px; }
	.tlh-course-catalog__count { padding-left: 18px; }
	.tlh-course-catalog__count strong { font-size: 28px; }
	.tlh-course-archive .tlh-course-catalog__heading .title_h2 { font-size: 32px; }
	.tlh-archive-card__body { padding: 20px; }
	.tlh-archive-card__title { font-size: 20px; }
	.tlh-archive-card__excerpt { min-height: 0; font-size: 14px; }
	.tlh-single-hero { padding: 22px 0 58px; }
	.tlh-breadcrumbs { margin-bottom: 30px; }
	.tlh-single-hero__grid { grid-template-columns: 1fr; gap: 36px; }
	.tlh-single-course .tlh-single-hero__title { font-size: clamp(34px, 7.5vw, 48px); }
	.tlh-single-hero__excerpt { margin-top: 17px; font-size: 16px; }
	.tlh-course-facts { margin-top: 24px; }
	.tlh-single-hero__visual { width: min(100%, 650px); margin: 0 auto; padding-left: 12px; }
	.tlh-single-hero__visual::before { top: -12px; right: -10px; }
	.tlh-single-hero__visual-caption { max-width: calc(100% - 26px); padding: 12px 15px; }
	.tlh-single-content__intro { margin-bottom: 32px; }
	.tlh-single-content__intro > p { font-size: 15px; }
	.tlh-single-content__body > p { font-size: 15px; }
	.tlh-single-course .tlh-section-heading { margin: 30px auto 20px; }
	.tlh-single-course .tlh-lesson-grid { grid-template-columns: 1fr; gap: 18px; }
	.tlh-single-course .tlh-quiz-section { margin-top: 38px; padding: 22px; border-radius: 17px; }
	.tlh-single-course .tlh-learner-details,
	.tlh-single-course .tlh-question { padding: 18px; }
	.tlh-related-courses__header { align-items: flex-start; margin-bottom: 28px; }
	.tlh-related-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
	.tlh-related-card__body { padding: 17px; }
	.tlh-related-card__body h3 { font-size: 17px; }
}

@media screen and (max-width: 600px) {
	.tlh-archive-grid { grid-template-columns: 1fr; gap: 18px; }
	.tlh-archive-card { max-width: 520px; width: 100%; margin: 0 auto; }
	.tlh-archive-card__body { padding: 22px; }
	.tlh-archive-card__title { font-size: 22px; }
	.tlh-archive-card__excerpt { min-height: 0; }
	.tlh-course-catalog__heading { flex-direction: column; gap: 18px; }
	.tlh-course-catalog__count { flex-direction: row; align-items: baseline; gap: 8px; padding-left: 0; border-left: 0; }
	.tlh-course-catalog__count strong { font-size: 25px; }
	.tlh-archive-hero__availability { align-self: center; }
	.tlh-archive-hero__actions .btn { width: auto; }
	.tlh-single-hero__actions { gap: 18px; }
	.tlh-single-hero__actions .btn { width: auto; }
	.tlh-course-fact { min-width: 0; flex: 1 1 145px; }
	.tlh-single-course .tlh-quiz-section { padding: 17px; }
	.tlh-single-course .tlh-learner-details,
	.tlh-single-course .tlh-question { padding: 15px; }
	.tlh-related-courses__header { flex-direction: column; gap: 20px; }
	.tlh-related-grid { grid-template-columns: 1fr; }
	.tlh-related-card { max-width: 520px; width: 100%; margin: 0 auto; }
	.tlh-related-card__body { padding: 20px; }
}

@media (prefers-reduced-motion: reduce) {
	.tlh-archive-card,
	.tlh-related-card,
	.tlh-archive-card__image > img,
	.tlh-related-card__image > img,
	.tlh-archive-card__play,
	.tlh-archive-card__button span,
	.tlh-related-card__link span {
		transition: none !important;
	}
}

/* ========================================================================
   Tally Learning Hub – staged quiz flow, question cards, single playlist,
   and admin-facing certificate integration styles. Uses existing brand vars.
   ======================================================================== */

/* A single course playlist is more useful than loading every lesson iframe. */
.tlh-single-course .tlh-playlist-heading {
	margin-top: 48px;
	margin-bottom: 22px;
}

.tlh-single-course .tlh-course-playlist-card {
	max-width: 850px;
	padding: 22px;
	border: 1px solid #e2e5dc;
	border-radius: 20px;
	background: var(--white);
	box-shadow: 0 14px 38px rgba(24, 24, 24, 0.06);
}

.tlh-single-course .tlh-course-playlist-card__heading {
	display: flex;
	align-items: center;
	gap: 14px;
	margin-bottom: 18px;
}

.tlh-single-course .tlh-course-playlist-card__icon {
	flex: 0 0 46px;
	width: 46px;
	height: 46px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	border-radius: 14px;
	background: color-mix(in srgb, var(--brand-green) 22%, var(--white));
	color: var(--brand-blue-dark);
	font-size: 18px;
}

.tlh-single-course .tlh-course-playlist-card__heading strong,
.tlh-single-course .tlh-course-playlist-card__heading small {
	display: block;
}

.tlh-single-course .tlh-course-playlist-card__heading strong {
	font-size: 19px;
	line-height: 1.4;
	font-weight: 700;
	color: var(--black);
}

.tlh-single-course .tlh-course-playlist-card__heading small {
	margin-top: 4px;
	font-size: 14px;
	line-height: 1.5;
	color: var(--op-black);
}

.tlh-single-course .tlh-course-playlist-card__video {
	border-radius: 14px;
	background: #0d1b2a;
}

.tlh-single-course .tlh-course-playlist-card__button {
	margin-top: 18px;
	display: inline-flex;
	gap: 12px;
	align-items: center;
}

.tlh-single-course .tlh-course-playlist-card__note {
	margin: 14px 0 0;
	font-size: 14px;
	line-height: 1.6;
	color: var(--op-black);
}

/* Optional list for courses configured with individual video URLs instead of a playlist. */
.tlh-single-course .tlh-course-lesson-links {
	margin-top: 18px;
	border: 1px solid #e3e6df;
	border-radius: 12px;
	background: #fff;
	overflow: hidden;
}

.tlh-single-course .tlh-course-lesson-links summary {
	padding: 14px 16px;
	color: var(--brand-blue-dark);
	font-size: 15px;
	font-weight: 700;
	cursor: pointer;
}

.tlh-single-course .tlh-course-lesson-links ol {
	margin: 0;
	padding: 0 16px 12px 38px;
	list-style: decimal;
}

.tlh-single-course .tlh-course-lesson-links li {
	padding: 5px 0;
	list-style: decimal;
	font-size: 14px;
	line-height: 1.5;
}

.tlh-single-course .tlh-course-lesson-links a {
	color: var(--brand-blue);
	text-decoration: none;
}

.tlh-single-course .tlh-course-lesson-links a:hover {
	color: var(--brand-green-dark);
	text-decoration: underline;
}

/* Step-by-step quiz progress. */
.tlh-single-course .tlh-quiz-stepper {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 14px;
	margin: 0 0 28px;
	padding: 0;
	list-style: none;
}

.tlh-single-course .tlh-quiz-stepper li {
	min-width: 0;
	display: flex;
	align-items: center;
	gap: 12px;
	padding: 14px 16px;
	border: 1px solid #e3e7dd;
	border-radius: 14px;
	background: var(--white);
	color: var(--op-black);
}

.tlh-single-course .tlh-quiz-stepper__number {
	flex: 0 0 34px;
	width: 34px;
	height: 34px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	border-radius: 50%;
	background: #f0f2e5;
	color: var(--black);
	font-weight: 700;
}

.tlh-single-course .tlh-quiz-stepper__text strong,
.tlh-single-course .tlh-quiz-stepper__text small {
	display: block;
}

.tlh-single-course .tlh-quiz-stepper__text strong {
	font-size: 14px;
	line-height: 1.4;
	color: var(--black);
	font-weight: 700;
}

.tlh-single-course .tlh-quiz-stepper__text small {
	margin-top: 3px;
	font-size: 12px;
	line-height: 1.4;
	color: #666b61;
}

.tlh-single-course .tlh-quiz-stepper li.is-current {
	border-color: var(--brand-blue);
	background: color-mix(in srgb, var(--brand-blue) 5%, var(--white));
}

.tlh-single-course .tlh-quiz-stepper li.is-current .tlh-quiz-stepper__number,
.tlh-single-course .tlh-quiz-stepper li.is-complete .tlh-quiz-stepper__number {
	background: var(--brand-green);
	color: var(--black);
}

.tlh-single-course .tlh-quiz-stepper li.is-complete {
	border-color: color-mix(in srgb, var(--brand-green-dark) 40%, #e3e7dd);
}

/* Theme styles are intentionally more specific than the plugin's fallback styles. */
.tlh-single-course .tlh-quiz-section .tlh-quiz-form .tlh-question {
	display: block;
	min-width: 0;
	margin: 0 0 22px;
	padding: 22px;
	border: 1px solid #e3e6df;
	border-radius: 18px;
	background: var(--white);
	box-shadow: 0 8px 24px rgba(24, 24, 24, 0.035);
}

.tlh-single-course .tlh-quiz-section .tlh-quiz-form .tlh-question legend {
	float: none;
	display: block;
	width: 100%;
	max-width: 100%;
	margin: 0;
	padding: 0 0 16px;
	border: 0;
	font-size: 18px;
	line-height: 1.55;
	font-weight: 700;
	color: var(--black);
}

.tlh-single-course .tlh-quiz-section .tlh-quiz-form .tlh-question legend small {
	display: block;
	margin: 8px 0 0 42px;
	font-size: 13px;
	line-height: 1.4;
	font-weight: 500;
	color: #73776e;
}

.tlh-single-course .tlh-quiz-section .tlh-quiz-form .tlh-question .tlh-question-number {
	flex: 0 0 34px;
	width: 34px;
	height: 34px;
	margin-right: 10px;
	vertical-align: middle;
	background: var(--brand-green);
	color: var(--black);
	font-size: 14px;
	font-weight: 700;
}

.tlh-single-course .tlh-quiz-section .tlh-quiz-form .tlh-option {
	display: flex;
	align-items: flex-start;
	gap: 12px;
	margin: 8px 0 0;
	padding: 14px 16px;
	border: 1px solid #e5e7df;
	border-radius: 12px;
	background: #fff;
	color: var(--black);
	font-size: 16px;
	line-height: 1.6;
	transition: border-color 0.2s ease, background 0.2s ease;
}

.tlh-single-course .tlh-quiz-section .tlh-quiz-form .tlh-option:hover {
	border-color: var(--brand-blue);
	background: color-mix(in srgb, var(--brand-blue) 4%, var(--white));
}

.tlh-single-course .tlh-quiz-section .tlh-quiz-form .tlh-option input[type="radio"] {
	flex: 0 0 auto;
	width: 17px;
	height: 17px;
	margin: 5px 0 0;
	accent-color: var(--brand-blue);
}

.tlh-single-course .tlh-quiz-section .tlh-quiz-form .tlh-option span {
	min-width: 0;
	flex: 1;
	overflow-wrap: anywhere;
}

.tlh-single-course .tlh-learner-details {
	margin-bottom: 18px;
	padding: 22px;
	border: 1px solid #e3e6df;
	border-radius: 18px;
	background: var(--white);
	box-shadow: 0 8px 24px rgba(24, 24, 24, 0.035);
}

.tlh-single-course .tlh-learner-details legend {
	padding: 0 8px;
	font-size: 18px;
	font-weight: 700;
	color: var(--black);
}

.tlh-single-course .tlh-learner-details label {
	margin: 13px 0;
	font-size: 15px;
	font-weight: 600;
	color: var(--black);
}

.tlh-single-course .tlh-learner-details input {
	min-height: 48px;
	padding: 12px 14px;
	border: 1px solid #d6dacf;
	border-radius: 10px;
	font-family: "DM Sans", sans-serif;
	font-size: 16px;
}

.tlh-single-course .tlh-continue-to-quiz {
	margin: 0 0 8px;
	border: 1px solid var(--brand-green);
	font-family: "DM Sans", sans-serif;
	font-size: 16px;
	font-weight: 700;
	cursor: pointer;
}

.tlh-single-course .tlh-continue-to-quiz:disabled {
	opacity: 0.65;
	cursor: wait;
}

.tlh-single-course .tlh-quiz-flow-status {
	min-height: 24px;
	margin: 8px 0 18px;
	font-size: 14px;
	line-height: 1.5;
	color: var(--op-black);
}

.tlh-single-course .tlh-quiz-flow-status.is-error {
	color: #a42a23;
}

.tlh-single-course .tlh-quiz-submit button {
	border: 1px solid var(--brand-green);
	border-radius: 16px;
	background: var(--brand-green);
	color: var(--black);
	padding: 16px 32px;
	font-family: "DM Sans", sans-serif;
	font-size: 17px;
	font-weight: 700;
	cursor: pointer;
	transition: background 0.2s ease, color 0.2s ease;
}

.tlh-single-course .tlh-quiz-submit button:hover {
	border-color: var(--brand-blue-dark);
	background: var(--brand-blue-dark);
	color: var(--white);
}

.tlh-single-course .tlh-quiz-submit button:disabled {
	opacity: 0.7;
	cursor: wait;
}

.tlh-single-course .tlh-certificate-success {
	margin: 16px 0;
	padding: 16px 18px;
	border: 1px solid color-mix(in srgb, var(--brand-green-dark) 45%, #e3e6df);
	border-radius: 12px;
	background: color-mix(in srgb, var(--brand-green) 12%, var(--white));
	font-size: 16px;
	line-height: 1.65;
}

.tlh-single-course .tlh-certificate-actions {
	margin: 18px 0 4px;
}

.tlh-single-course .tlh-download-certificate {
	display: inline-flex;
	align-items: center;
	gap: 12px;
}

.tlh-single-course .tlh-result-card .tlh-quiz-stepper {
	margin-bottom: 26px;
}

.tlh-single-course .tlh-result-card > h4 {
	margin-top: 26px;
	font-size: 20px;
	font-weight: 700;
}

@media (max-width: 720px) {
	.tlh-single-course .tlh-quiz-stepper {
		grid-template-columns: 1fr;
		gap: 8px;
	}

	.tlh-single-course .tlh-quiz-stepper li {
		padding: 11px 13px;
	}

	.tlh-single-course .tlh-course-playlist-card {
		padding: 15px;
		border-radius: 16px;
	}

	.tlh-single-course .tlh-quiz-section .tlh-quiz-form .tlh-question,
	.tlh-single-course .tlh-learner-details {
		padding: 16px;
		border-radius: 15px;
	}

	.tlh-single-course .tlh-quiz-section .tlh-quiz-form .tlh-question legend {
		font-size: 16px;
	}

	.tlh-single-course .tlh-quiz-section .tlh-quiz-form .tlh-option {
		padding: 12px;
		font-size: 15px;
	}
}

/* Quiz questions are hidden until the contact-details step is saved by JavaScript. */
html.tlh-course-flow-js .tlh-single-course .tlh-quiz-form .tlh-question:not(.tlh-flow-visible),
html.tlh-course-flow-js .tlh-single-course .tlh-quiz-form .tlh-quiz-submit:not(.tlh-flow-visible) {
	display: none !important;
}

/* Admin integration screens. */
.tlh-theme-admin .tlh-theme-admin-search {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin: 18px 0;
}

.tlh-theme-admin .tlh-theme-admin-search input[type="search"] {
	min-width: min(420px, 100%);
}

.tlh-theme-admin .tlh-admin-email-status.is-sent {
	color: #167044;
	font-weight: 700;
}

.tlh-theme-admin .tlh-admin-email-status.is-failed {
	color: #b42318;
	font-weight: 700;
}

/* Course playlist: one responsive player plus a visible list of lessons. */
.tlh-single-course .tlh-course-playlist-card {
	max-width: 1120px;
}

.tlh-single-course .tlh-course-lesson-layout {
	display: grid;
	grid-template-columns: minmax(0, 1.55fr) minmax(260px, 0.85fr);
	align-items: start;
	gap: 22px;
}

.tlh-single-course .tlh-course-playlist-main {
	min-width: 0;
}

.tlh-single-course .tlh-course-playlist-card__actions {
	display: flex;
	flex-wrap: wrap;
	gap: 12px;
	align-items: center;
}

.tlh-single-course .tlh-course-lesson-panel {
	min-width: 0;
	padding: 16px;
	border: 1px solid #e1e5d8;
	border-radius: 16px;
	background: var(--body-white);
}

.tlh-single-course .tlh-course-lesson-panel__heading {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	margin: 0 0 12px;
	padding: 0 0 12px;
	border-bottom: 1px solid #e0e4d8;
}

.tlh-single-course .tlh-course-lesson-panel__heading strong {
	font-size: 17px;
	font-weight: 700;
	color: var(--black);
}

.tlh-single-course .tlh-course-lesson-panel__heading > span {
	display: inline-flex;
	min-width: 28px;
	min-height: 28px;
	align-items: center;
	justify-content: center;
	padding: 3px 8px;
	border-radius: 999px;
	background: var(--brand-green);
	color: var(--black);
	font-size: 12px;
	font-weight: 800;
}

.tlh-single-course .tlh-course-lesson-list {
	display: flex;
	flex-direction: column;
	gap: 8px;
	max-height: 430px;
	overflow: auto;
	margin: 0;
	padding: 0 4px 0 0;
	list-style: none;
}

.tlh-single-course .tlh-course-lesson-list__item {
	margin: 0;
	padding: 0;
	list-style: none;
}

.tlh-single-course .tlh-course-lesson-link {
	width: 100%;
	min-width: 0;
	display: flex;
	align-items: center;
	gap: 10px;
	padding: 11px 12px;
	border: 1px solid #e0e4d8;
	border-radius: 12px;
	background: var(--white);
	color: var(--black);
	text-align: left;
	text-decoration: none;
	font: inherit;
	line-height: 1.35;
	transition: border-color 0.2s ease, background 0.2s ease, box-shadow 0.2s ease;
}

.tlh-single-course button.tlh-course-lesson-link {
	appearance: none;
	cursor: pointer;
}

.tlh-single-course .tlh-course-lesson-link:hover,
.tlh-single-course .tlh-course-lesson-link:focus-visible {
	border-color: var(--brand-blue);
	background: color-mix(in srgb, var(--brand-blue) 5%, var(--white));
	color: var(--black);
}

.tlh-single-course .tlh-course-lesson-list__item.is-active .tlh-course-lesson-link,
.tlh-single-course .tlh-course-lesson-link[aria-pressed="true"] {
	border-color: color-mix(in srgb, var(--brand-blue) 55%, #e0e4d8);
	background: color-mix(in srgb, var(--brand-blue) 6%, var(--white));
	box-shadow: inset 3px 0 0 var(--brand-green);
}

.tlh-single-course .tlh-course-lesson-number {
	flex: 0 0 32px;
	width: 32px;
	height: 32px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	border-radius: 9px;
	background: #f0f2e5;
	color: var(--brand-blue-dark);
	font-size: 12px;
	font-weight: 800;
}

.tlh-single-course .tlh-course-lesson-copy {
	flex: 1;
	min-width: 0;
	display: block;
}

.tlh-single-course .tlh-course-lesson-copy strong,
.tlh-single-course .tlh-course-lesson-copy small {
	display: block;
	overflow-wrap: anywhere;
}

.tlh-single-course .tlh-course-lesson-copy strong {
	font-size: 14px;
	font-weight: 700;
	color: var(--black);
}

.tlh-single-course .tlh-course-lesson-copy small {
	margin-top: 3px;
	font-size: 12px;
	line-height: 1.4;
	color: var(--op-black);
}

.tlh-single-course .tlh-course-lesson-play,
.tlh-single-course .tlh-course-lesson-external {
	flex: 0 0 auto;
	color: var(--brand-blue);
	font-size: 14px;
	font-weight: 800;
}

.tlh-single-course .tlh-course-lesson-panel__note {
	margin: 12px 0 0;
	font-size: 13px;
	line-height: 1.55;
	color: var(--op-black);
}

/* Fieldset/legend defaults vary by theme; force each quiz question title inside its card. */
.tlh-single-course .tlh-quiz-section .tlh-quiz-form fieldset.tlh-question {
	box-sizing: border-box;
	min-inline-size: 0;
	width: 100%;
	clear: both;
}

.tlh-single-course .tlh-quiz-section .tlh-quiz-form fieldset.tlh-question > legend {
	box-sizing: border-box;
	float: none !important;
	display: block !important;
	position: static !important;
	width: 100%;
	margin: 0 0 12px !important;
	padding: 0 0 12px !important;
	background: transparent;
	border: 0;
	white-space: normal;
}

@media (max-width: 900px) {
	.tlh-single-course .tlh-course-lesson-layout {
		grid-template-columns: minmax(0, 1fr);
	}

	.tlh-single-course .tlh-course-lesson-list {
		max-height: 360px;
	}
}

@media (max-width: 600px) {
	.tlh-single-course .tlh-course-lesson-panel {
		padding: 12px;
	}

	.tlh-single-course .tlh-course-lesson-link {
		padding: 10px;
	}
}


.tlh-theme-admin .tlh-admin-email-status.is-passed,
.tlh-theme-admin .tlh-admin-email-status.is-sent {
	color: #176b36;
	background: #eaf6ee;
}

.tlh-theme-admin .tlh-admin-email-status.is-failed {
	color: #9d2727;
	background: #fff0ef;
}

/* Quiz question card layout: keep the title and marks inside the card, without a legend. */
.tlh-single-course .tlh-quiz-section .tlh-quiz-form fieldset.tlh-question {
	box-sizing: border-box;
	width: 100%;
	max-width: 100%;
	min-width: 0;
	min-inline-size: 0;
	float: none;
	display: block;
	overflow: hidden;
}

.tlh-single-course .tlh-quiz-section .tlh-quiz-form .tlh-question-heading {
	box-sizing: border-box;
	display: flex;
	align-items: flex-start;
	gap: 12px;
	width: 100%;
	max-width: 100%;
	min-width: 0;
	margin: 0 0 14px;
	padding: 0;
	color: var(--black);
	font-size: 18px;
	font-weight: 700;
	line-height: 1.5;
	white-space: normal;
	word-break: normal;
	overflow-wrap: anywhere;
}

.tlh-single-course .tlh-quiz-section .tlh-quiz-form .tlh-question-heading .tlh-question-number {
	flex: 0 0 34px;
	width: 34px;
	height: 34px;
	margin: 0;
	padding: 0;
	line-height: 34px;
	text-align: center;
	border-radius: 50%;
	background: var(--brand-green);
	color: var(--black);
}

.tlh-single-course .tlh-quiz-section .tlh-quiz-form .tlh-question-title-text {
	box-sizing: border-box;
	flex: 1 1 auto;
	min-width: 0;
	padding: 2px 0 0;
	white-space: normal;
	overflow-wrap: anywhere;
	word-break: normal;
}

.tlh-single-course .tlh-quiz-section .tlh-quiz-form .tlh-question-marks {
	display: inline;
	margin-left: 3px;
	color: #73776e;
	font-size: 0.78em;
	font-weight: 500;
	line-height: inherit;
	white-space: normal;
}

.tlh-single-course .tlh-quiz-section .tlh-quiz-form .tlh-option {
	box-sizing: border-box;
	width: 100%;
	max-width: 100%;
	min-width: 0;
	white-space: normal;
	overflow-wrap: anywhere;
}

.tlh-single-course .tlh-quiz-section .tlh-quiz-form .tlh-option span {
	box-sizing: border-box;
	min-width: 0;
	max-width: 100%;
	white-space: normal;
	overflow-wrap: anywhere;
	word-break: normal;
}

@media (max-width: 600px) {
	.tlh-single-course .tlh-quiz-section .tlh-quiz-form fieldset.tlh-question {
		padding: 16px;
	}

	.tlh-single-course .tlh-quiz-section .tlh-quiz-form .tlh-question-heading {
		gap: 9px;
		font-size: 16px;
	}

	.tlh-single-course .tlh-quiz-section .tlh-quiz-form .tlh-question-heading .tlh-question-number {
		flex-basis: 30px;
		width: 30px;
		height: 30px;
		line-height: 30px;
	}
}

/* =========================================================
   Contact page — Tally Corner design system
   Append to style.css. Responsive overrides live in css/media.css.
   ========================================================= */
.tc-contact-main {
	background: var(--body-white, #f8f9ef);
}

.tc-contact-page {
	padding: clamp(64px, 8vw, 120px) 0;
	background: var(--body-white, #f8f9ef);
	color: var(--black, #181818);
}

.tc-contact-page .container {
	max-width: 1400px;
}

.tc-contact-hero {
	max-width: 800px;
	margin: 0 auto clamp(36px, 5vw, 64px);
	text-align: center;
}

.tc-contact-eyebrow,
.tc-contact-info-kicker,
.tc-contact-form-kicker {
	display: inline-block;
	color: var(--brand-blue, #1669c5);
	font-family: "DM Sans", sans-serif;
	font-size: 13px;
	font-weight: 700;
	letter-spacing: 0.14em;
	line-height: 1.5;
	text-transform: uppercase;
}

.tc-contact-eyebrow {
	margin-bottom: 14px;
}

.tc-contact-page .tc-contact-page-title {
	margin: 0 0 18px;
	color: var(--black, #181818);
	font-size: clamp(36px, 4.4vw, 58px);
	font-weight: 700;
	letter-spacing: -0.045em;
	line-height: 1.1;
}

.tc-contact-page-description {
	max-width: 700px;
	margin: 0 auto;
}

.tc-contact-page-description p {
	margin: 0;
	color: var(--op-black, #181818cc);
	font-size: 18px;
	font-weight: 400;
	line-height: 1.75;
}

.tc-contact-layout {
	display: grid;
	grid-template-columns: minmax(280px, 0.82fr) minmax(0, 1.18fr);
	align-items: stretch;
	gap: clamp(22px, 3vw, 36px);
}

.tc-contact-info {
	position: relative;
	display: flex;
	min-width: 0;
	flex-direction: column;
	overflow: hidden;
	padding: clamp(28px, 3.5vw, 46px);
	border: 1px solid rgba(255, 255, 255, 0.12);
	border-radius: 24px;
	background: linear-gradient(145deg, var(--brand-blue-dark, #234aa9) 0%, var(--brand-blue, #1669c5) 100%);
	box-shadow: 0 24px 60px rgba(35, 74, 169, 0.16);
	color: var(--white, #fff);
}

.tc-contact-info::before,
.tc-contact-info::after {
	position: absolute;
	z-index: 0;
	border: 1px solid rgba(255, 255, 255, 0.1);
	border-radius: 50%;
	content: "";
	pointer-events: none;
}

.tc-contact-info::before {
	right: -110px;
	bottom: 100px;
	width: 300px;
	height: 300px;
}

.tc-contact-info::after {
	right: -65px;
	bottom: 145px;
	width: 210px;
	height: 210px;
	border-color: rgba(177, 206, 47, 0.3);
}

.tc-contact-info > * {
	position: relative;
	z-index: 1;
}

.tc-contact-info .tc-contact-info-kicker {
	margin-bottom: 14px;
	color: var(--brand-green-light, #cce044);
	font-size: 11px;
}

.tc-contact-info h2 {
	margin: 0 0 14px;
	color: var(--white, #fff);
	font-size: clamp(28px, 2.6vw, 36px);
	font-weight: 700;
	letter-spacing: -0.035em;
	line-height: 1.2;
}

.tc-contact-info-top > p {
	margin: 0;
	color: rgba(255, 255, 255, 0.78);
	font-size: 16px;
	font-weight: 400;
	line-height: 1.75;
}

.tc-contact-details {
	display: flex;
	flex-direction: column;
	gap: 27px;
	margin: clamp(30px, 4vw, 48px) 0 34px;
}

.tc-contact-detail {
	display: grid;
	grid-template-columns: 48px minmax(0, 1fr);
	align-items: start;
	gap: 16px;
	min-width: 0;
}

.tc-contact-detail-icon {
	display: inline-flex;
	width: 48px;
	height: 48px;
	align-items: center;
	justify-content: center;
	border: 1px solid rgba(255, 255, 255, 0.2);
	border-radius: 14px;
	background: rgba(255, 255, 255, 0.1);
	color: var(--brand-green-light, #cce044);
}

.tc-contact-detail-icon svg {
	width: 22px;
	height: 22px;
	fill: none;
	stroke: currentColor;
	stroke-linecap: round;
	stroke-linejoin: round;
	stroke-width: 1.7;
}

.tc-contact-detail h3,
.tc-contact-social-wrap h3 {
	margin: 0 0 7px;
	color: var(--white, #fff);
	font-size: 16px;
	font-weight: 700;
	line-height: 1.4;
}

.tc-contact-detail p,
.tc-contact-detail a {
	display: inline-block;
	margin: 0;
	color: rgba(255, 255, 255, 0.82);
	font-size: 15px;
	font-weight: 400;
	line-height: 1.75;
	overflow-wrap: anywhere;
}

.tc-contact-detail a:hover,
.tc-contact-detail a:focus-visible {
	color: var(--brand-green-light, #cce044);
}

.tc-contact-social-wrap {
	margin-top: auto;
	padding-top: 26px;
	border-top: 1px solid rgba(255, 255, 255, 0.2);
}

.tc-contact-social-wrap h3 {
	margin-bottom: 14px;
}

.tc-contact-socials {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
}

.tc-contact-social {
	display: inline-flex;
	width: 44px;
	height: 44px;
	align-items: center;
	justify-content: center;
	border: 1px solid rgba(255, 255, 255, 0.22);
	border-radius: 13px;
	background: rgba(255, 255, 255, 0.08);
	color: var(--white, #fff);
	transition: color 0.2s ease, background 0.2s ease, border-color 0.2s ease, transform 0.2s ease;
}

.tc-contact-social:hover,
.tc-contact-social:focus-visible {
	transform: translateY(-2px);
	border-color: var(--brand-green, #b1ce2f);
	background: var(--brand-green, #b1ce2f);
	color: var(--black, #181818);
}

.tc-contact-social svg {
	width: 21px;
	height: 21px;
	fill: currentColor;
}

.tc-contact-social.tc-contact-social-instagram svg {
	fill: none;
	stroke: currentColor;
	stroke-width: 1.8;
}

.tc-contact-social.tc-contact-social-instagram .tc-contact-social-dot {
	fill: currentColor;
	stroke: none;
}

.tc-contact-info-footer {
	display: flex;
	align-items: center;
	gap: 12px;
	margin-top: 34px;
	padding-top: 22px;
	border-top: 1px solid rgba(255, 255, 255, 0.12);
	color: rgba(255, 255, 255, 0.75);
	font-size: 13px;
	font-weight: 600;
	letter-spacing: 0.02em;
}

.tc-contact-footer-mark {
	display: inline-flex;
	width: 38px;
	height: 38px;
	flex: 0 0 38px;
	align-items: center;
	justify-content: center;
	border: 1px solid var(--brand-green, #b1ce2f);
	border-radius: 50%;
	color: var(--brand-green-light, #cce044);
	font-size: 11px;
	font-weight: 700;
	letter-spacing: 0.08em;
}

.tc-contact-form-card {
	min-width: 0;
	padding: clamp(28px, 4vw, 52px);
	border: 1px solid rgba(24, 24, 24, 0.08);
	border-radius: 24px;
	background: var(--white, #fff);
	box-shadow: 0 20px 60px rgba(24, 24, 24, 0.06);
}

.tc-contact-form-heading {
	margin-bottom: 30px;
}

.tc-contact-form-heading .tc-contact-form-kicker {
	margin-bottom: 12px;
	font-size: 11px;
}

.tc-contact-form-heading h2 {
	margin: 0 0 10px;
	color: var(--black, #181818);
	font-size: clamp(27px, 2.6vw, 36px);
	font-weight: 700;
	letter-spacing: -0.035em;
	line-height: 1.2;
}

.tc-contact-form-heading p {
	margin: 0;
	color: var(--op-black, #181818cc);
	font-size: 15px;
	font-weight: 400;
	line-height: 1.7;
}

.tc-contact-fields {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 22px 18px;
}

.tc-contact-field {
	display: flex;
	min-width: 0;
	flex-direction: column;
	gap: 9px;
}

.tc-contact-field-full {
	grid-column: 1 / -1;
}

.tc-contact-field label {
	color: var(--black, #181818);
	font-size: 14px;
	font-weight: 700;
	line-height: 1.4;
}

.tc-contact-field label span {
	color: var(--brand-blue, #1669c5);
}

.tc-contact-field input,
.tc-contact-field textarea {
	display: block;
	width: 100%;
	min-width: 0;
	margin: 0;
	padding: 15px 16px;
	border: 1px solid #e1e5e9;
	border-radius: 12px;
	outline: none;
	background: #fbfcfa;
	box-shadow: none;
	color: var(--black, #181818);
	font-family: "DM Sans", sans-serif;
	font-size: 15px;
	font-weight: 400;
	line-height: 1.5;
	transition: border-color 0.2s ease, box-shadow 0.2s ease, background 0.2s ease;
}

.tc-contact-field input {
	min-height: 54px;
}

.tc-contact-field textarea {
	min-height: 150px;
	resize: vertical;
}

.tc-contact-field input::placeholder,
.tc-contact-field textarea::placeholder {
	color: #858b91;
	opacity: 1;
}

.tc-contact-field input:hover,
.tc-contact-field textarea:hover {
	border-color: #bdc9d6;
}

.tc-contact-field input:focus,
.tc-contact-field textarea:focus {
	border-color: var(--brand-blue, #1669c5);
	background: var(--white, #fff);
	box-shadow: 0 0 0 4px rgba(22, 105, 197, 0.1);
}

.tc-contact-form-bottom {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 20px;
	margin-top: 26px;
}

.tc-contact-privacy {
	max-width: 300px;
	margin: 0;
	color: #6b737b;
	font-size: 12px;
	font-weight: 400;
	line-height: 1.6;
}

.tc-contact-submit {
	gap: 12px;
	flex: 0 0 auto;
	margin: 0;
	padding: 14px 22px;
	border-radius: 12px;
	font-size: 15px;
	line-height: 1.4;
	cursor: pointer;
}

.tc-contact-submit svg {
	width: 18px;
	height: 18px;
	fill: none;
	stroke: currentColor;
	stroke-linecap: round;
	stroke-linejoin: round;
	stroke-width: 1.8;
	transition: transform 0.2s ease;
}

.tc-contact-submit:hover svg {
	transform: translateX(3px);
}

.tc-contact-notice {
	display: flex;
	flex-direction: column;
	gap: 5px;
	margin: 0 0 22px;
	padding: 16px 18px;
	border: 1px solid transparent;
	border-radius: 12px;
	font-size: 14px;
	line-height: 1.6;
}

.tc-contact-notice.is-success {
	border-color: #c8e7d1;
	background: #f0fbf3;
	color: #195c31;
}

.tc-contact-notice.is-error {
	border-color: #f2c8c8;
	background: #fff6f6;
	color: #8c2020;
}

.tc-contact-honeypot {
	position: absolute !important;
	left: -10000px !important;
	width: 1px !important;
	height: 1px !important;
	overflow: hidden !important;
	clip: rect(0, 0, 0, 0) !important;	
}

.tc-contact-page a:focus-visible,
.tc-contact-page button:focus-visible {
	outline: 3px solid var(--brand-green-dark, #8fa820);
	outline-offset: 3px;
}


/* ==========================================================================
   Contact page — Contact Form 7 integration
   Uses the existing Tally Corner blue/lime palette and DM Sans typography.
   ========================================================================== */
.tc-contact-cf7-wrap .wpcf7 {
	width: 100%;
}

.tc-contact-cf7-wrap .wpcf7 form {
	display: flex;
	flex-direction: column;
	gap: 18px;
	width: 100%;
	margin: 0;
}

.tc-contact-cf7-wrap .wpcf7 form p {
	margin: 0;
	padding: 0;	
}

.tc-contact-cf7-wrap .wpcf7 form label {
	display: block;
	margin: 0;
	color: var(--black, #181818);
	font-family: "DM Sans", sans-serif;
	font-size: 14px;
	font-weight: 600;
	line-height: 1.5;
}

.tc-contact-cf7-wrap .wpcf7 .wpcf7-form-control-wrap {
	display: block;	
	width: 100%;
	margin-top: 8px;
}

.tc-contact-cf7-wrap .wpcf7 input:not([type="submit"]):not([type="checkbox"]):not([type="radio"]),
.tc-contact-cf7-wrap .wpcf7 select,
.tc-contact-cf7-wrap .wpcf7 textarea {
	width: 100%;
	max-width: 100%;
	min-height: 50px;
	margin: 0;
	padding: 13px 15px;
	border: 1px solid #dfe5e4;
	border-radius: 10px;
	background: #fff;
	box-shadow: none;
	color: var(--black, #181818);
	font-family: "DM Sans", sans-serif;
	font-size: 15px;
	font-weight: 400;
	line-height: 1.5;
	transition: border-color .2s ease, box-shadow .2s ease;
}

.tc-contact-cf7-wrap .wpcf7 textarea {
	min-height: 150px;
	resize: vertical;
}

.tc-contact-cf7-wrap .wpcf7 input:focus,
.tc-contact-cf7-wrap .wpcf7 select:focus,
.tc-contact-cf7-wrap .wpcf7 textarea:focus {
	outline: 0;
	border-color: var(--brand-blue, #1669c5);
	box-shadow: 0 0 0 3px color-mix(in srgb, var(--brand-blue, #1669c5) 12%, transparent);
}

.tc-contact-cf7-wrap .wpcf7 input[type="submit"],
.tc-contact-cf7-wrap .wpcf7 button[type="submit"],
.tc-contact-cf7-wrap .wpcf7 .wpcf7-submit {
	display: inline-flex;
	align-items: center;
	justify-content: center;	
	width: auto;
	max-width: 100%;
	min-height: 50px;
	margin: 0;
	padding: 14px 24px;
	border: 1px solid var(--brand-green, #b1ce2f);
	border-radius: 12px;
	background: var(--brand-green, #b1ce2f);
	color: var(--black, #181818);
	font-family: "DM Sans", sans-serif;
	font-size: 15px;
	font-weight: 700;
	line-height: 1.4;
	cursor: pointer;
	transition: background .2s ease, border-color .2s ease, color .2s ease, transform .2s ease;
}

.tc-contact-cf7-wrap .wpcf7 input[type="submit"]:hover,
.tc-contact-cf7-wrap .wpcf7 button[type="submit"]:hover,
.tc-contact-cf7-wrap .wpcf7 .wpcf7-submit:hover {
	border-color: var(--brand-blue-dark, #234aa9);
	background: var(--brand-blue-dark, #234aa9);
	color: #fff;
	transform: translateY(-1px);
}

.tc-contact-cf7-wrap .wpcf7 .wpcf7-not-valid-tip {
	display: block;
	margin-top: 6px;
	color: #b42318;
	font-size: 12px;
	line-height: 1.5;
}

.tc-contact-cf7-wrap .wpcf7 .wpcf7-response-output {
	margin: 14px 0 0;
	padding: 13px 15px;
	border: 1px solid #dfe5e4;
	border-radius: 10px;
	font-size: 14px;
	line-height: 1.6;
}

.tc-contact-cf7-wrap .wpcf7 form.sent .wpcf7-response-output {
	border-color: #b6dfc2;
	background: #f0fbf3;
	color: #195c31;
}

.tc-contact-cf7-wrap .wpcf7 form.invalid .wpcf7-response-output,
.tc-contact-cf7-wrap .wpcf7 form.failed .wpcf7-response-output,
.tc-contact-cf7-wrap .wpcf7 form.aborted .wpcf7-response-output {
	border-color: #efc3c3;
	background: #fff6f6;
	color: #8c2020;
}

.tc-contact-cf7-wrap .wpcf7 .wpcf7-spinner {
	vertical-align: middle;
}

.tc-contact-cf7-privacy {
	max-width: none;
	margin-top: 16px;
	font-size: 12px;
}

.tc-contact-config-notice {
	padding: 16px 18px;
	border: 1px dashed #d7dddb;
	border-radius: 12px;
	background: #fff;
	color: var(--black, #181818);
	font-size: 14px;
	line-height: 1.65;
}

.tc-contact-config-notice p {
	margin: 6px 0 0;
	font-size: 13px;
	line-height: 1.65;
}

.tc-contact-cf7-wrap a:focus-visible,
.tc-contact-cf7-wrap input:focus-visible,
.tc-contact-cf7-wrap button:focus-visible,
.tc-contact-cf7-wrap textarea:focus-visible,
.tc-contact-cf7-wrap select:focus-visible {
	outline: 3px solid var(--brand-green-dark, #8fa820);
	outline-offset: 3px;
}

/* span.wpcf7-spinner {
    display: none !important;
} */