/* This file contains overrides and fixes for main.min.css, as well as extra styling */

body {
	max-width: 100vw !important;
	overflow-x: hidden !important;
}

header {
	padding-bottom: 1rem;
}

.flex-wrapper {
	display: flex;
	min-height: 100vh;
	flex-direction: column;
	justify-content: flex-start;
}

.footer {
	margin-top: auto;
}

.header__sear {
	position: relative;
	bottom: -1rem;
}

.header__search--mobile button img {
	width: 34px;
	height: 34px;
}

/* Form styling */
.umbraco-forms-hidden {
	display: none
}

.form__input {
	display: flex;
	padding: 0 0 15px;
	flex-direction: column;
	justify-content: end
}

	.form__input:only-child {
		height: 100%
	}

	.form__input > label {
		display: inline-block;
		font-size: 16px;
		font-weight: 400;
		line-height: 28px;
		margin-bottom: 5px;
		color: #333
	}

	.form__input label.required-field:after,
	.form__checkbox p.required-field:after {
		content: "*";
		margin-left: 4px
	}

	.form__input label .umbraco-forms-indicator,
	.form__input label + .required-field,
	.form__input label.required-field:after,
	.form__checkbox p.required-field:after {
		color: #c10000
	}

	.form__input.date {
		display: inherit;
		background-color: inherit;
		text-align: inherit;
	}

	.form__input--inactive input, .form__input input[disabled] {
		opacity: .5
	}

.form__helptext {
	margin-bottom: 10px;
	font-size: 14px;
	font-weight: 400;
	color: #888
}

/* If the help text is placed below the field rather than above, add spacing */
.form__input input + .form__helptext,
.form__file + .form__helptext {
	margin-top: 5px
}

.form__textarea textarea {
	min-height: 100px
}

.form__checkbox label span, .form__radio label span {
	background: #fff
}

.form__checkbox label:focus span, .form__checkbox label:active span {
	border: 2px solid #333
}

.form__file div {
	border: 1px solid #e1e1e1;
	background: #fff
}

.form__file .btn {
	width: auto
}

.form__file > label {
	width: 100%
}

.choices {
	margin-bottom: 0
}

.choices__list--single {
	padding: 0 24px 0 0
}

.choices__list--dropdown {
	border-color: #b7b7b7 !important
}

	.choices__list--dropdown .choices__item {
		font-size: inherit;
		padding-left: 12px
	}

	.choices__list--dropdown .choices__item--selectable.is-highlighted::after {
		position: static;
		right: unset;
		top: unset;
		transform: none;
		padding-left: 5px;
		align-self: center;
		opacity: 0.5 !important;
	}

@media (min-width: 640px) {
	.choices__list--dropdown .choices__item--selectable {
		display: flex;
		justify-content: space-between;
		padding-right: 10px;
	}
}

.choices__input.choices__input--cloned {
	border: none !important;
	padding: 0 !important;
	margin: 0 !important
}

.choices__list--multiple .choices__item {
	background-color: #d83238;
	border: 0 !important
}

	.choices__list--multiple .choices__item.is-highlighted {
		background-color: #333
	}

.form__search-field {
	position: relative;
}

	.form__search-field input {
		padding-right: 48px;
	}

	.form__search-field button {
		position: absolute;
		height: 100%;
		top: 50%;
		left: 100%;
		padding: 0 10px;
		background: none;
		outline: none;
		border: 0;
		transform: translate(-100%, -50%);
	}

		.form__search-field button img {
			vertical-align: middle;
			width: 28px;
		}

.form__search-field__container {
	position: relative
}

.pagination ul {
	display: flex;
	align-items: center;
	margin-bottom: 20px;
}

	.pagination ul li a, .pagination ul li span {
		display: inline-block;
		min-width: 32px;
		line-height: 32px;
		margin: 0 3px;
		font-size: 16px;
		font-weight: 700;
		text-align: center;
		border-radius: 2px;
	}

	.pagination ul li a {
		padding: 0 5px;
		background: #333;
		color: #fff;
		transition: .3s ease;
	}

		.pagination ul li a:hover {
			text-decoration: none;
			opacity: .8;
		}

	.pagination ul li.active a {
		background: #d83238;
	}

	.pagination ul li.pagination__nav a {
		background: none;
		color: #d83238;
	}

		.pagination ul li.pagination__nav a:hover {
			background: #ececec;
			opacity: 1;
		}

	.pagination ul li:first-child a {
		margin-left: 0;
	}

	.pagination ul li:last-child a {
		margin-right: 0;
	}

/* Form validation styling */

.field-validation-success {
	display: block;
	color: #28a745;
	font-size: 15px;
	font-weight: 600;
	line-height: 24px;
	margin-top: 2px
}

.field-validation-error {
	display: block;
	color: #c10000;
	font-size: 15px;
	font-weight: 600;
	line-height: 24px;
	margin-top: 2px
}

.form__textarea + .field-validation-error {
	margin-top: -12px
}

.input-validation-error {
	outline: 2px #c10000 solid !important
}

/* Misc fixes and amends */

.text a:not(.btn) {
	color: #d83238;
	font-weight: 600
}

.text a .arrow-icon {
	position: relative;
	top: 2px;
	height: 14px;
	vertical-align: baseline;
	margin-right: 10px;
}

.tables tr:first-of-type:has(.th) {
	border-top: 2px solid #d83238;
	border-bottom: 2px solid #d83238;
	border-radius: 2px;
}

.tables tr .th {
	color: #d83238;
	font-weight: 700;
	font-size: 18px;
	line-height: 1;
	text-align: left;
}

.tables tr td:last-of-type {
	text-align: left;
}

.testimonial-width__item .text:before {
	z-index: -1;
}

@media (max-width: 767px) {
	.testimonial-width__item .text:before {
		width: 32px;
	}
}

/* Extra styles */

.text-black {
	color: #333 !important;
}

.text-red {
	color: #d83238 !important;
}

.btn--sm {
	padding: 8px 20px;
	justify-content: center
}

.btn--red:hover {
	color: #fff;
}

.btn--symbol {
	font-size: 20px;
	line-height: 1;
	padding: 2px 6px;
}

.invisible-value {
	display: block;
	visibility: hidden;
	width: 0 !important;
	height: 0 !important;
	margin: 0 !important;
	padding: 0 !important;
	border: none !important;
	overflow: hidden !important;
	pointer-events: none
}

.query__container {
	display: flex;
	flex-wrap: wrap;
	align-items: end;
	justify-content: space-between;
	margin: 0 -8px 20px
}

	.query__container .query__input {
		flex-basis: 25%;
		min-width: 220px;
		padding: 0 8px
	}

@media (max-width: 992px) {
	.query__container .query__input {
		flex-basis: 50%;
		margin-bottom: 20px;
	}
}

@media (max-width: 767px) {
	.query__container .query__input {
		flex-basis: 100%;
	}
}

.content.content--wide {
	max-width: unset
}

.support-pack__flex .info:first-child {
	padding-left: 0;
	width: 100%;
}

.support-pack__flex .info__lists .info__lists__icon {
	height: 50px;
}

.quote {
	margin: 40px 0
}

	.quote .quote__mark {
		margin-bottom: 15px
	}

.box .circle .circle__expander--minus {
	display: none;
}

.box.active .circle .circle__expander--plus {
	display: none;
}

.box.active .circle .circle__expander--minus {
	display: inherit;
}

.switch_list__grid .info_box {
	width: 100%;
	margin-top: 5px;
}

.switch_list__grid .box__content {
	height: 100%;
}

	.switch_list__grid .box__content .image img {
		display: block;
		width: 200px;
		aspect-ratio: 1;
		object-fit: cover;
	}

.switch_list__grid .box--25 {
	width: 25%
}

.switch_list__grid .box--50 {
	width: 50%
}

@media (max-width: 767px) {
	.switch_list__grid .box--25, .switch_list__grid .box--50 {
		width: 100%
	}
}

.news-article .thumbnail img {
	object-position: center;
	width: 100%;
	height: 600px;
	object-fit: none;
}

.news-article .author-container {
	border-top: 1px solid #333;
	border-bottom: 1px solid #333;
	padding: 35px 0
}

	.news-article .author-container .author-profile {
		display: flex;
		align-items: center;
	}

		.news-article .author-container .author-profile .logo {
			width: 82px;
			height: 82px;
			display: flex;
			align-items: center;
			justify-content: center;
			background-color: #fff;
			border-radius: 5px;
			overflow: hidden;
			border-radius: 50%
		}

		.news-article .author-container .author-profile .name {
			margin-bottom: 5px;
			font-size: 20px;
			font-weight: 600;
		}

		.news-article .author-container .author-profile .job {
			line-height: 1;
			margin-bottom: 0;
		}

	.news-article .author-container .author-blurb {
		margin-top: 15px;
	}

		.news-article .author-container .author-blurb p {
			font-style: italic;
			margin-bottom: 0px;
		}

	.news-article .author-container .author-socials {
		margin-top: 10px;
	}

	.news-article .author-container .author-socials__social:not(:last-child) {
		margin-right: 5px;
	}

	.news-article .author-container .author-socials__social img {
		width: 40px;
		height: 40px;
	}

.content-tile-and-text {
	display: flex;
	flex-direction: column;
	height: 100%;
	margin-bottom: 40px
}

	.content-tile-and-text a {
		text-decoration: none
	}

	.content-tile-and-text .info {
		flex-grow: 1;
		padding: 20px 0
	}

	.content-tile-and-text > .btn {
		width: 100%
	}

	.content-tile-and-text p {
		font-size: 14px;
		line-height: 20px;
		font-weight: 400;
		color: #333;
	}

	.content-tile-and-text .link {
		padding-top: 15px
	}

		.content-tile-and-text .link a img {
			height: 15px;
			margin-right: 8px
		}

.header__nav__sub ul li {
	white-space: nowrap;
}

.header__top ul li a.btn {
	height: 52px;
}

	.header__top ul li a.btn img {
		margin-right: 10px;
	}

.header__top ul li button {
	height: 52px;
	padding: 12px 24px;
}

.contained-text {
	border: 1px solid black;
	padding: 12px;
	overflow-y: scroll;
	height: 250px
}

.membership-form__other-practice-item {
	padding: 15px;
	border: 1px solid #dee2e6;
	margin-bottom: 10px
}

.accordions__content .item__content .text p {
	font-weight: 400
}

.small-event-title {
	display: flex;
	flex-direction: column;
	height: 100%;
	padding-bottom: 30px
}

.small-event-title .info {
	flex-grow: 1
}

	.small-event-title .link {
		margin-top: 0;
		padding-top: 15px
	}

	.small-event-title .info h4 {
		margin-bottom: 10px
	}

	.small-event-title .link a img {
		height: 14px;
		margin-right: 10px
	}

.event-travel ul li h3 img,
.event-sessions .content ul li img {
	height: 27px;
	width: 23px;
	object-fit: contain;
	margin-right: 10px
}

.ticket_types .content ul {
	justify-content: center
}

.ticket-section__table thead {
	border-bottom: 1px solid #000
}

.ticket-section__table th {
	font-weight: 600
}

.ticket-section__table th,
.ticket-section__table td {
	padding: 10px 0;
	vertical-align: middle
}

.ticket-section__table h4 {
	font-size: 18px;
	font-weight: 700
}

.event-box a:hover,
.small-event-title a:hover {
	text-decoration: none;
}

/* Copy of ".event-box .info ul li a" but for span */
.event-box .info ul li span {
	font-size: 16px;
	font-weight: 700;
	line-height: 1;
	color: #D83238;
	transition: .3s ease;
	text-decoration: none;
}

.switch_list__grid .info_box__content .location > ul > li h3 {
	color: #d83238
}

.member-tiles-item {
	height: 100%
}

.member-tiles-item__content {
	display: block;
	position: relative;
	height: 100%;
	box-sizing: border-box;
	background-color: #fff;
	text-decoration: none;
	padding: 15px 45px 15px 20px
}

	.member-tiles-item__content h3 {
		font-family: Lora;
		font-size: 21px;
		font-weight: 400;
		color: #d83238;
		margin-bottom: 10px
	}

	.member-tiles-item__content h4 {
		font-size: 16px;
		font-weight: 400;
		line-height: 1;
		color: #333
	}

	.member-tiles-item__content p {
		font-size: 14px;
		font-weight: 500;
		line-height: 1;
		margin-bottom: 0;
		color: #333
	}

	.member-tiles-item__content .member-tiles-item__content__arrow {
		position: absolute;
		right: 13px;
		top: 50%;
		height: 14px;
		transform: translateY(-50%)
	}

	.member-tiles-item__content ul li {
		margin-top: 5px;
		font-size: 14px;
		color: #333
	}

		.member-tiles-item__content ul li:before {
			content: "\00b7";
			margin-right: 8px
		}

.member-tiles-item__flex {
	display: flex;
	flex-direction: column;
	height: 100%
}

.member-tiles-item--practice .member-tiles-item__content,
.member-tiles-item--supplier .member-tiles-item__content {
	padding: 15px 20px !important
}

.member-tiles-item--practice .member-tiles-item__container {
	position: relative;
	height: 100%;
	padding-top: 40px
}

.member-tiles-item--practice .member-tiles-item__container--picture-container .member-tiles-item__content {
	padding-top: 75px !important
}

.member-tiles-item--practice .member-tiles-item__container--picture-container .member-tiles-item__picture {
	position: absolute;
	top: 0;
	left: 20px;
	width: 100px;
	height: 100px;
	padding: 0;
	border-radius: 50%
}

.member-tiles-item--supplier .member-tiles-item__flex .member-tiles-item__logo {
	width: 100%;
	height: 200px;
	margin-bottom: 20px;
	object-fit: contain;
}

.member-tiles-item__picture img, .member-tiles-item__picture svg {
	width: 100%;
	height: 100%;
	object-fit: contain;
	border-radius: 50%
}

.member-tiles-item__premium-badge {
	position: absolute;
	top: 55px;
	right: 15px;
	padding: 6px 12px;
	font-size: 14px;
	background-color: #333;
	color: #fff;
	pointer-events: none
}

.member-tiles-item--supplier .member-tiles-item__premium-badge {
	top: 15px;
	right: 35px;
}

.member-tiles-item__info-icon {
	width: 16px;
	margin-right: 6px
}

.member-tiles-item .arrow-btn {
	display: block;
	text-align: right;
	font-weight: 600;
	color: #d83238
}

	.member-tiles-item .arrow-btn img {
		position: relative;
		top: -1px;
		height: 16px;
		margin-right: 10px
	}

.order-details__products ul li {
	display: flex;
	justify-content: space-between;
	margin-bottom: 10px
}

	.order-details__products ul li p {
		font-size: 15px;
		font-weight: 400;
		line-height: 24px;
		color: #404040
	}

		.order-details__products ul li p:first-of-type {
			width: 50%
		}

		.order-details__products ul li p strong {
			font-weight: 600
		}

		.order-details__products ul li p small {
			display: block;
			margin-top: -6px
		}

.order-details__total {
	display: block;
	box-sizing: border-box;
	border-top: 1px solid #404040;
	margin-top: 20px;
	padding-top: 20px
}

	.order-details__total ul li {
		display: flex;
		justify-content: space-between;
		margin-bottom: 5px
	}

		.order-details__total ul li p {
			font-size: 15px;
			font-weight: 400;
			line-height: 24px;
			color: #404040
		}

			.order-details__total ul li p strong {
				font-weight: 600
			}

.order-details__update {
	padding-top: 20px;
	display: block;
	box-sizing: border-box
}

	.order-details__update h4 {
		font-size: 15px;
		font-weight: 400;
		line-height: 24px
	}

.product-detail .back img {
	height: 14px;
	margin-right: 15px
}

.product-detail .product__content .info form {
	flex-wrap: wrap
}

	.product-detail .product__content .info form > div {
		gap: 10px
	}

.cart-listing__flex .products .item__flex .quantiti input {
	width: 45px;
	margin: 0 5px;
	pointer-events: auto
}

.quantiti .displey {
	pointer-events: none
}

.logged_content__info {
	padding: 0 30px 30px
}

	.logged_content__info:after {
		top: -150px;
		height: 150px;
		background: linear-gradient(180deg, rgba(255, 255, 255, 0) 0%, #fff 75%)
	}

.member-directory-details .grade {
	display: inline-block;
	padding: 5px 15px;
	margin-bottom: 15px;
	font-size: 17px;
	font-weight: 600;
	background-color: #fff
}

.member-directory-details table tr td {
	line-height: 24px;
	padding-bottom: 10px
}

	.member-directory-details table tr td:first-child {
		padding-right: 40px;
		font-weight: 600
	}

.member-directory-details table a {
	color: #d83238;
	font-weight: 600
}

.practice-detail__flex .logo {
	background-color: #fff
}

	.practice-detail__flex .logo img {
		width: 100%;
		height: 100%;
		max-width: none;
		border-radius: 50%;
		object-fit: contain;
	}

.practice-detail__flex .address h2 {
	line-height: 1;
	margin-bottom: 5px
}

.practice-detail__flex .address ul li {
	line-height: 20px
}

	.practice-detail__flex .address ul li:not(:last-child) {
		margin-bottom: 10px
	}

	.practice-detail__flex .address ul li img {
		width: 20px;
		min-width: 20px;
		height: 20px;
		object-fit: contain;
		margin-right: 8px;
	}

.practice-detail__flex .contact {
	padding-left: 30px
}

@media (max-width: 991px) {
	.practice-detail__flex .contact {
		margin-top: 15px;
		padding-left: 0
	}
}

.practice-detail__flex .contact ul li h3 {
	min-width: 110px
}

.practice-detail .info__text .text {
	padding-bottom: 20px
}

.page-header--supplier .info {
	display: inline-block;
	width: auto;
	padding: 19px 30px
}

@media (max-width: 767px) {
	.page-header--supplier .info {
		width: 100%
	}
}

.page-header--supplier .logo {
	display: block;
	width: 150px;
	height: 150px
}

.training_partner_detail__flex .content .title {
	align-items: center
}

	.training_partner_detail__flex .content .title h2 {
		margin-bottom: 0
	}

.training_partner_detail__flex .sidebar .info li img {
	width: 20px;
	height: 20px;
	margin-right: 11px;
	object-fit: contain
}

.training_partner_detail__flex .sidebar .social li a img {
	width: 36px;
	height: 36px
}

.training_partner_detail__flex .content ul li a img {
	height: 16px
}

.awards-header__nav .container {
	min-height: 58px
}

.video-widescreen {
	width: 100%;
	aspect-ratio: 16/9;
}

.qualification_tile {
	height: 100%
}

	.qualification_tile a {
		height: 100%
	}

.disabled-fake {
	user-select: none;
	opacity: 0.65;
	cursor: default!important
}

.checkout-not-available {
	font-size: 16px;
	color: #d83238
}

.header__logo a img {
	height: 60px;
	object-fit: contain
}

.footer__flex .right .social li a img {
	width: 40px
}

.site_search .query__container .query__input {
	flex-basis: 100%;
}

.cart-listing__flex .products .item__flex .right h4 {
	line-height: 14px;
	text-align: right
}

@media (max-width: 767px) {
	.hand-nav {
		max-width: none
	}

		.hand-nav nav ul {
			display: block
		}
}