/**
 * Hauptselektor des Elements:
 * .tbw-headline
 *
 * Unterzeile:
 * .tbw-headline__eyebrow
 *
 * H1-/H2-Überschrift:
 * .tbw-headline__title
 */

.tbw-headline {
	position: relative;
}

.tbw-headline--invert,
.tbw-headline--invert .tbw-headline__title {
	color: var(--tbw-invert-color, #fff);
}

.tbw-headline--custom-size .tbw-headline__title {
	font-size: var(--tbw-headline-size);
}

.tbw-headline--has-mandalan {
	display: grid;
	grid-template-columns: minmax(0, 1fr) clamp(4.5rem, 10vw, 8rem);
	gap: clamp(1rem, 3vw, 2.5rem);
	align-items: center;
}

.tbw-headline__content {
	min-width: 0;
}

.tbw-headline__mandalan {
	display: block;
	width: 100%;
	transform-origin: 50% 85%;
	animation: tbw-mandalan-float 3.2s ease-in-out infinite;
	will-change: transform;
	backface-visibility: hidden;
}

.tbw-headline__mandalan-shape {
	display: block;
	width: 100%;
	aspect-ratio: 257.74 / 280.14;
	background-color: var(--tbw-mandalan-color, #98c026);
	-webkit-mask: url("../images/mandalan.svg") center / contain no-repeat;
	mask: url("../images/mandalan.svg") center / contain no-repeat;
	transform: rotate(var(--tbw-mandalan-rotation, 0deg));
	transition: transform 240ms ease-out;
	transform-origin: 50% 70%;
}

.tbw-headline--has-mandalan:hover .tbw-headline__mandalan-shape {
	transform: rotate(calc(var(--tbw-mandalan-rotation, 0deg) + 5deg)) scale(1.04);
}

@keyframes tbw-mandalan-float {
	0%, 100% {
		transform: translate3d(0, 0, 0) rotate(-2deg);
	}
	50% {
		transform: translate3d(0, -0.65rem, 0) rotate(3deg);
	}
}

@media (max-width: 480px) {
	.tbw-headline--has-mandalan {
		grid-template-columns: minmax(0, 1fr) 4rem;
		gap: 0.75rem;
	}
}

.tbw-headline--center,
.tbw-headline--center .tbw-headline__eyebrow,
.tbw-headline--center .tbw-headline__title,
.tbw-headline--center .tbw-headline__body {
	text-align: center;
}

.tbw-headline--center.tbw-headline--has-mandalan {
	grid-template-columns: minmax(0, 1fr);
}

.tbw-headline--center .tbw-headline__mandalan {
	width: clamp(4rem, 10vw, 8rem);
	justify-self: center;
}

@media (prefers-reduced-motion: reduce) {
	.tbw-headline__mandalan {
		animation: none;
	}
}

/* Box widget ------------------------------------------------------------- */
.tbw-box {
	box-sizing: border-box;
	min-width: 0;
	padding: var(--tbw-box-padding, 1.5rem);
	border: 2px solid var(--the7-h2-color);
	border-radius: 5px;
	background: var(--tbw-box-background, transparent);
	overflow-wrap: anywhere;
	margin-bottom: 35px;
}

/* Stretch single-box columns to the tallest box on each WPBakery flex line. */
.vc_row:has(> .wpb_column > .vc_column-inner > .wpb_wrapper > .tbw-box:not(.tbw-box-accordion):only-child) {
	display: flex;
	flex-wrap: wrap;
	align-items: stretch;
}

/* Float clearfix pseudo-elements must not become extra flex items. */
.vc_row:has(> .wpb_column > .vc_column-inner > .wpb_wrapper > .tbw-box:not(.tbw-box-accordion):only-child)::before,
.vc_row:has(> .wpb_column > .vc_column-inner > .wpb_wrapper > .tbw-box:not(.tbw-box-accordion):only-child)::after {
	display: none;
}

.vc_row > .wpb_column:has(> .vc_column-inner > .wpb_wrapper > .tbw-box:not(.tbw-box-accordion):only-child),
.vc_row > .wpb_column > .vc_column-inner:has(> .wpb_wrapper > .tbw-box:not(.tbw-box-accordion):only-child),
.vc_row > .wpb_column > .vc_column-inner > .wpb_wrapper:has(> .tbw-box:not(.tbw-box-accordion):only-child) {
	display: flex;
	flex-direction: column;
	align-self: stretch;
}

.vc_row > .wpb_column > .vc_column-inner:has(> .wpb_wrapper > .tbw-box:not(.tbw-box-accordion):only-child),
.vc_row > .wpb_column > .vc_column-inner > .wpb_wrapper:has(> .tbw-box:not(.tbw-box-accordion):only-child),
.vc_row > .wpb_column > .vc_column-inner > .wpb_wrapper > .tbw-box:not(.tbw-box-accordion):only-child {
	flex: 1 0 auto;
}

.tbw-box__icon {
	display: block;
	margin-bottom: 1rem;
	font-size: var(--tbw-box-icon-size, 2rem);
	line-height: 1;
	color: var(--tbw-box-icon-color, currentColor);
}

.tbw-box__title {
	margin: 0 0 0.75rem;
}

.tbw-box__body > :first-child {
	margin-top: 0;
}

.tbw-box__body > :last-child,
.tbw-box > :last-child {
	margin-bottom: 0;
}

.tbw-box--invert {
	border-color: var(--tbw-invert-color, #fff);
}

.tbw-box--invert,
.tbw-box--invert .tbw-box__icon,
.tbw-box--invert .tbw-box__title,
.tbw-box--invert .tbw-box__body,
.tbw-box--invert .tbw-box__body * {
	color: var(--tbw-invert-color, #fff);
}

/* Accordion variant: native disclosure works without JavaScript. */
.tbw-box.tbw-box-accordion {
	padding: 0;
}

.tbw-box-accordion > .tbw-box-accordion__summary {
	display: flex;
	align-items: center;
	gap: 1rem;
	padding: var(--tbw-box-padding, 1.5rem);
	list-style: none;
	cursor: pointer;
}

.tbw-box-accordion__summary::-webkit-details-marker {
	display: none;
}

.tbw-box-accordion__summary::marker {
	content: '';
}

.tbw-box-accordion__summary > .tbw-box__icon,
.tbw-box-accordion__summary > .tbw-box__title {
	margin: 0;
}

.tbw-box-accordion__summary > .tbw-box__title {
	flex: 1;
	min-width: 0;
}

.tbw-box-accordion__summary > .tbw-box__icon {
	flex-shrink: 0;
}

.tbw-box-accordion__summary:focus-visible {
	outline: 2px solid currentColor;
	outline-offset: -6px;
	border-radius: 3px;
}

.tbw-box-accordion__indicator {
	flex: 0 0 2rem;
	width: 2rem;
	height: 2rem;
	background: currentColor;
	-webkit-mask: url("../images/accordion-toggle.svg") center / contain no-repeat;
	mask: url("../images/accordion-toggle.svg") center / contain no-repeat;
	transition: transform 200ms ease;
}

.tbw-box-accordion[open] > summary .tbw-box-accordion__indicator {
	transform: rotate(45deg);
}

@media (prefers-reduced-motion: reduce) {
	.tbw-box-accordion__indicator {
		transition: none;
	}
}

.tbw-box-accordion > .tbw-box__body {
	padding: 0 var(--tbw-box-padding, 1.5rem) var(--tbw-box-padding, 1.5rem);
}

/* Loop cards slider ------------------------------------------------------- */
.tbw-loop-slider {
	--tbw-loop-gap: clamp(0.75rem, 1.25vw, 1.25rem);
	--tbw-card-background: #7ccfd3;
	--tbw-card-ink: #092032;
	--tbw-card-accent: #004e5a;
	--tbw-competition-background: var(--tbw-card-background);
	--tbw-competition-ink: var(--tbw-card-ink);
	--tbw-competition-accent: var(--tbw-card-accent);
	position: relative;
	width: 100%;
}

.tbw-loop-slider__viewport {
	overflow: hidden;
	width: 100%;
	cursor: grab;
	touch-action: pan-y;
	user-select: none;
}

.tbw-loop-slider__viewport:active {
	cursor: grabbing;
}

.tbw-loop-slider__track,
.tbw-loop-slider__group {
	display: flex;
	align-items: stretch;
	gap: var(--tbw-loop-gap);
}

.tbw-loop-slider__track {
	width: max-content;
	will-change: transform;
}

.tbw-loop-slider__group {
	flex: 0 0 auto;
}

.tbw-loop-card {
	box-sizing: border-box;
	display: flex;
	flex: 0 0 auto;
	flex-direction: column;
	min-width: 0;
	padding: clamp(0.55rem, 0.8vw, 0.9rem);
	border-radius: 5px;
	background: var(--tbw-card-background);
	color: var(--tbw-card-ink);
	overflow: hidden;
}

.tbw-loop-card.tbw-competition-card {
	padding: 0;
}

.tbw-loop-slider .tbw-competition-card__image {
	pointer-events: none;
	-webkit-user-drag: none;
}

.tbw-loop-card__media {
	position: relative;
	aspect-ratio: 1.48 / 1;
	border-radius: 5px;
	overflow: hidden;
	background: rgba(0, 78, 90, 0.08);
}

.tbw-loop-card__image {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	pointer-events: none;
	-webkit-user-drag: none;
}

.tbw-loop-card__image--placeholder {
	background: linear-gradient(135deg, rgba(0, 78, 90, 0.08), rgba(0, 78, 90, 0.2));
}

.tbw-loop-card__location,
.tbw-loop-card__category {
	display: inline-block;
	border-radius: 5px;
	background: var(--tbw-card-accent);
	color: #fff;
	font-size: clamp(0.62rem, 0.7vw, 0.78rem);
	line-height: 1.2;
}

.tbw-loop-card__location {
	position: absolute;
	right: 0.4rem;
	bottom: 0.4rem;
	max-width: calc(100% - 0.8rem);
	padding: 0.48rem 0.65rem;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}

.tbw-loop-card__content {
	display: flex;
	flex: 1;
	flex-direction: column;
	padding-top: clamp(0.65rem, 0.9vw, 0.9rem);
}

.tbw-loop-card__category {
	margin-bottom: clamp(0.65rem, 1vw, 1rem);
	padding: 0.55rem 0.7rem;
}

.tbw-loop-card__date {
	margin-bottom: 0.2rem;
	font-size: clamp(0.7rem, 0.8vw, 0.9rem);
	line-height: 1.25;
}

.tbw-loop-card__title {
	margin: 0;
	font-size: clamp(0.95rem, 1.25vw, 1.45rem);
	font-weight: 500;
	line-height: 1.08;
	letter-spacing: -0.025em;
	color: inherit;
}

.tbw-loop-card__link {
	align-self: flex-end;
	margin-top: auto;
	padding-top: clamp(1.25rem, 2.5vw, 3rem);
	border-bottom: 1px solid currentColor;
	color: inherit;
	font-size: clamp(0.7rem, 0.85vw, 0.95rem);
	line-height: 1.4;
	text-decoration: none;
	white-space: nowrap;
}

.tbw-loop-card__link:hover,
.tbw-loop-card__link:focus-visible {
	color: var(--tbw-card-accent);
}

.tbw-loop-slider__empty {
	padding: 1rem;
	border: 1px dashed currentColor;
}

.tbw-loop-slider__arrow {
	position: absolute;
	top: 50%;
	z-index: 4;
	display: grid;
	place-items: center;
	width: clamp(2.5rem, 3.5vw, 3.25rem);
	height: clamp(2.5rem, 3.5vw, 3.25rem);
	padding: 0;
	border: 0;
	border-radius: 50%;
	background: var(--tbw-card-accent);
	color: #fff;
	font: inherit;
	font-size: 1.25rem;
	line-height: 1;
	cursor: pointer;
	transform: translateY(-50%);
	box-shadow: 0 0.35rem 1.1rem rgba(0, 0, 0, 0.18);
	transition: transform 160ms ease, background-color 160ms ease;
}

.tbw-loop-slider__arrow:hover,
.tbw-loop-slider__arrow:focus-visible {
	transform: translateY(-50%) scale(1.08);
}

.tbw-loop-slider__arrow--prev {
	left: clamp(0.35rem, 0.8vw, 0.75rem);
}

.tbw-loop-slider__arrow--next {
	right: clamp(0.35rem, 0.8vw, 0.75rem);
}

.tbw-loop-slider__arrow svg {
	display: block;
	width: 24px;
	height: 24px;
	color: inherit;
	pointer-events: none;
}

.tbw-loop-slider__arrow--next svg {
	transform: rotate(180deg);
}

@media (max-width: 599px) {
	.tbw-loop-card {
		padding: 1rem;
		border-radius: 1.25rem;
	}

	.tbw-loop-card__title {
		font-size: 1.5rem;
	}

	.tbw-loop-card__date,
	.tbw-loop-card__link {
		font-size: 1rem;
	}
}

@media (prefers-reduced-motion: reduce) {
	.tbw-loop-slider__track {
		transition-duration: 0.01ms !important;
	}
}

/* Post cards ------------------------------------------------------------- */
.tbw-post-cards {
	--tbw-post-card-background: #7ccfd3;
	--tbw-post-card-ink: #FFF;
	display: grid;
	gap: clamp(1rem, 2vw, 2rem);
	width: 100%;
}

.tbw-post-cards--columns-1 {
	grid-template-columns: minmax(0, 1fr);
}

.tbw-post-cards--columns-2 {
	grid-template-columns: repeat(2, minmax(0, 1fr));
}

.tbw-post-cards--columns-3 {
	grid-template-columns: repeat(3, minmax(0, 1fr));
}

.tbw-post-cards--columns-4 {
	grid-template-columns: repeat(4, minmax(0, 1fr));
}

.tbw-post-cards--columns-5 {
	grid-template-columns: repeat(5, minmax(0, 1fr));
}

.tbw-post-cards--columns-6 {
	grid-template-columns: repeat(6, minmax(0, 1fr));
}

.tbw-post-card {
	min-width: 0;
	margin: 0;
	border-radius: 10px;
	background: var(--tbw-post-card-background);
	color: var(--tbw-post-card-ink);
	overflow: hidden;
}

.tbw-post-card__link {
	display: flex;
	height: 100%;
	box-sizing: border-box;
	flex-direction: column;
	gap: clamp(0.75rem, 1.2vw, 1rem);
	padding: clamp(0.75rem, 1.2vw, 1rem);
	
	text-decoration: none;
}

.tbw-post-card__media {
	display: block;
	width: 100%;
	aspect-ratio: 1 / 1;
	border-radius: 5px;
	background: rgba(0, 78, 90, 0.09);
	overflow: hidden;
}

.tbw-post-card__image,
.tbw-post-card__placeholder {
	display: block;
	width: 100%;
	height: 100%;
}

.tbw-post-card__image {
	object-fit: cover;
	transition: transform 320ms cubic-bezier(0.22, 1, 0.36, 1);
}

.tbw-post-card__placeholder {
	background: linear-gradient(135deg, rgba(0, 78, 90, 0.06), rgba(0, 78, 90, 0.18));
}

.tbw-post-card__title {
	margin: 0;
	padding: 0 0.05em 0.05em;
	
	font-size: clamp(1.15rem, 1.65vw, 1.55rem);
	font-weight: 800;
	line-height: 1.15;
	letter-spacing: -0.025em;
}

.tbw-post-card__name {
	display: block;
	
	font-size: 1rem;
	line-height: 1.4;
	overflow-wrap: anywhere;
}

.tbw-post-card__link:hover,
.tbw-post-card__link:focus-visible {
	
	text-decoration: none;
}

.tbw-post-card__link:hover .tbw-post-card__image,
.tbw-post-card__link:focus-visible .tbw-post-card__image {
	transform: scale(1.035);
}

.tbw-post-card__link:focus-visible {
	outline: 3px solid currentColor;
	outline-offset: 3px;
}

.tbw-post-cards__empty {
	padding: 1rem;
	border: 1px dashed currentColor;
}

@media (max-width: 991px) {
	.tbw-post-cards--columns-3,
	.tbw-post-cards--columns-4,
	.tbw-post-cards--columns-5,
	.tbw-post-cards--columns-6 {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 599px) {
	.tbw-post-cards {
		grid-template-columns: minmax(0, 1fr);
	}

	.tbw-post-card__link {
		padding: 1rem;
	}

	.tbw-post-card__title {
		font-size: 1.5rem;
	}
}

@media (prefers-reduced-motion: reduce) {
	.tbw-post-card__image {
		transition: none;
	}
}

/* Single-photo query slider --------------------------------------------- */
.tbw-photo-slider {
	--tbw-photo-slider-accent: #004e5a;
	position: relative;
	width: 100%;
}

.tbw-photo-slider__viewport {
	width: 100%;
	border-radius: 10px;
	overflow: hidden;
	touch-action: pan-y;
	user-select: none;
}

.tbw-photo-slider[data-slide-count]:not([data-slide-count="1"]) .tbw-photo-slider__viewport {
	cursor: grab;
}

.tbw-photo-slider__viewport.is-dragging {
	cursor: grabbing;
}

.tbw-photo-slider__track {
	display: grid;
	width: 100%;
	background: rgba(0, 78, 90, 0.08);
}

.tbw-photo-slide {
	position: relative;
	grid-area: 1 / 1;
	width: 100%;
	margin: 0;
	aspect-ratio: 4 / 3;
	opacity: 0;
	visibility: hidden;
	pointer-events: none;
	transition: opacity 420ms ease, visibility 0s linear 420ms;
}

.tbw-photo-slide.is-active {
	z-index: 1;
	opacity: 1;
	visibility: visible;
	pointer-events: auto;
	transition-delay: 0s;
}

.tbw-photo-slide__link {
	position: relative;
	display: block;
	width: 100%;
	height: 100%;
	color: #fff;
	text-decoration: none;
}

.tbw-photo-slide__image {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	pointer-events: none;
	-webkit-user-drag: none;
	transition: transform 600ms cubic-bezier(0.22, 1, 0.36, 1);
}

.tbw-photo-slide__overlay {
	position: absolute;
	right: 0;
	bottom: 0;
	left: 0;
	display: flex;
	justify-content: center;
	align-items: flex-end;
	box-sizing: border-box;
	min-height: 38%;
	padding: clamp(2.5rem, 8vw, 6rem) clamp(4rem, 12vw, 8rem) clamp(1rem, 3.5vw, 2.25rem);
	background: linear-gradient(to bottom, rgba(0, 0, 0, 0), rgba(0, 0, 0, 0.68));
	pointer-events: none;
}

.tbw-photo-slide__title {
	max-width: 42rem;
	margin: 0;
	color: inherit;
	font-size: clamp(1.1rem, 2.5vw, 2rem);
	font-weight: 600;
	line-height: 1.12;
	letter-spacing: -0.02em;
	text-align: center;
	text-shadow: 0 0.12em 0.55em rgba(0, 0, 0, 0.65);
}

.tbw-photo-slide__link:hover,
.tbw-photo-slide__link:focus-visible {
	color: #fff;
	text-decoration: none;
}

.tbw-photo-slide__link:hover .tbw-photo-slide__image,
.tbw-photo-slide__link:focus-visible .tbw-photo-slide__image {
	transform: scale(1.025);
}

.tbw-photo-slide__link:focus-visible {
	outline: 3px solid #fff;
	outline-offset: -6px;
}

.tbw-photo-slider__arrow {
	position: absolute;
	top: 50%;
	z-index: 3;
	display: grid;
	place-items: center;
	width: clamp(2.4rem, 5vw, 3.25rem);
	height: clamp(2.4rem, 5vw, 3.25rem);
	padding: 0;
	border: 0;
	border-radius: 50%;
	background: var(--tbw-photo-slider-accent);
	color: #fff;
	cursor: pointer;
	box-shadow: 0 0.35rem 1.1rem rgba(0, 0, 0, 0.2);
	transform: translateY(-50%);
	transition: transform 160ms ease, background-color 160ms ease;
}

.tbw-photo-slider__arrow svg {
	width: 48%;
	height: 48%;
	fill: none;
	stroke: currentColor;
	stroke-width: 3;
	stroke-linecap: round;
	stroke-linejoin: round;
}

.tbw-photo-slider__arrow:hover,
.tbw-photo-slider__arrow:focus-visible {
	transform: translateY(-50%) scale(1.08);
}

.tbw-photo-slider__arrow:focus-visible {
	outline: 3px solid #fff;
	outline-offset: 3px;
}

.tbw-photo-slider__arrow--prev {
	left: clamp(0.75rem, 6.5%, 3.5rem);
}

.tbw-photo-slider__arrow--prev svg {
	transform: rotate(180deg);
}

.tbw-photo-slider__arrow--next {
	right: clamp(0.75rem, 6.5%, 3.5rem);
}

.tbw-photo-slider__status {
	position: absolute;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border: 0;
}

.tbw-photo-slider__empty {
	padding: 1rem;
	border: 1px dashed currentColor;
}

@media (max-width: 599px) {
	.tbw-photo-slide__overlay {
		padding-right: 3.75rem;
		padding-bottom: 1rem;
		padding-left: 3.75rem;
	}

	.tbw-photo-slide__title {
		font-size: 1.1rem;
	}
}

@media (prefers-reduced-motion: reduce) {
	.tbw-photo-slide,
	.tbw-photo-slide__image {
		transition: none;
	}
}

/* Single-page metadata --------------------------------------------------- */
.tbw-competition-meta {
	display: flex;
	flex-wrap: wrap;
	align-items: flex-start;
	gap: 6px;
}

.tbw-competition-meta .tbw-competition-meta__badge {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	box-sizing: border-box;
	max-width: 100%;
	padding: 7px 12px;
	border: 2px solid #fff;
	border-radius: 4px;
	background: #004e5a;
	color: #fff;
	font-size: 14px;
	font-weight: 700;
	line-height: 1.3;
}

.tbw-competition-meta__badge > span {
	min-width: 0;
	overflow-wrap: anywhere;
}

.tbw-competition-meta .tbw-competition-meta__icon {
	display: block;
	flex: 0 0 13px;
	width: 13px;
	height: 13px;
}

/* Competitions loop ------------------------------------------------------ */
.tbw-competition-results {
	scroll-margin-top: var(--tbw-filter-scroll-offset, 120px);
}

.tbw-competition-pagination {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 12px;
	margin-top: 24px;
}

.tbw-competition-pagination button {
	border: 0;
	border-radius: 5px;
	padding: 14px 24px;
	background: #004e5a;
	color: #fff;
	font: inherit;
	font-weight: 700;
	cursor: pointer;
}

.tbw-competition-pagination button[hidden] {
	display: none;
}

.tbw-competition-pagination button:disabled {
	opacity: 0.65;
	cursor: wait;
}

.tbw-competition-pagination button:focus-visible {
	outline: 3px solid #004e5a;
	outline-offset: 4px;
}

.tbw-competition-pagination__status {
	font-size: 14px;
	text-align: center;
}

form.tbw-competition-filters {
	--tbw-filter-height: 60px;
	display: flex;
	flex-wrap: wrap;
	align-items: flex-start;
	gap: 10px;
	margin: 0 0 2rem;
}

/* Keep theme form spacing from shifting the submit button below the selects. */
form.tbw-competition-filters > label.tbw-competition-filters__field,
form.tbw-competition-filters > label.tbw-competition-filters__field > select,
form.tbw-competition-filters > button {
	margin: 0 !important;
}

form.tbw-competition-filters > label.tbw-competition-filters__field {
	padding: 0 !important;
}

form.tbw-competition-filters .tbw-competition-filters__field {
	position: relative;
	display: block;
	flex: 0 1 auto;
	min-width: 0;
	width: 170px;
	max-width: 100%;
	margin: 0;
	padding: 0;
	line-height: 1;
}

form.tbw-competition-filters .tbw-competition-filters__field:first-of-type {
	width: 270px;
}

form.tbw-competition-filters .tbw-competition-filters__field::before {
	content: none;
}

form.tbw-competition-filters .tbw-competition-filters__field::after {
	content: '';
	position: absolute;
	right: 20px;
	top: 50%;
	transform: translateY(-50%);
	width: 0;
	height: 0;
	background: none;
	border: 7px solid transparent;
	border-bottom: 0;
	border-top-color: currentColor;
	color: #fff;
	pointer-events: none;
}

form.tbw-competition-filters select {
	-webkit-appearance: none !important;
	appearance: none !important;
	display: block;
	box-sizing: border-box;
	width: 100%;
	max-width: 100%;
	height: var(--tbw-filter-height);
	min-height: var(--tbw-filter-height);
	margin: 0;
	border: 0;
	border-radius: 5px;
	padding: 0 52px 0 24px;
	/* The theme adds its own dropdown image; retain only our single arrow. */
	background-image: none !important;
	background-color: #004e5a;
	box-shadow: none;
	color: #fff;
	font: inherit;
	font-size: clamp(16px, 1.6vw, 24px);
	font-weight: 700;
	line-height: 1.2;
	/*text-transform: uppercase;*/
	text-overflow: ellipsis;
	cursor: pointer;
}

form.tbw-competition-filters select.is-active,
form.tbw-competition-filters select:focus {
	background-color: #b9f4fc;
	color: #004e5a;
}

form.tbw-competition-filters .tbw-competition-filters__field:focus-within::after,
form.tbw-competition-filters .tbw-competition-filters__field:has(.is-active)::after {
	color: #004e5a;
}

.tbw-competition-filters select:focus-visible,
.tbw-competition-filters button:focus-visible,
.tbw-competition-filters a:focus-visible {
	outline: 3px solid #004e5a;
	outline-offset: 3px;
}

form.tbw-competition-filters button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	box-sizing: border-box;
	height: var(--tbw-filter-height);
	min-height: var(--tbw-filter-height);
	margin: 0;
	border: 0;
	border-radius: 5px;
	padding: 0 24px;
	background: #0f9ea8;
	color: #FFF;
	font: inherit;
	font-size: clamp(16px, 1.6vw, 24px);
	font-weight: 700;
	line-height: 1.2;
	text-transform: none;
	box-shadow: none;
	cursor: pointer;
}

form.tbw-competition-filters a {
	display: inline-flex;
	align-items: center;
	min-height: var(--tbw-filter-height);
	margin: 0 0 0 8px;
	color: #004e5a;
	font-size: 16px;
	line-height: 1.4;
	text-decoration: underline;
	text-underline-offset: 3px;
}

@media (max-width: 599px) {
	form.tbw-competition-filters .tbw-competition-filters__field {
		flex: 1 1 140px;
	}

	form.tbw-competition-filters .tbw-competition-filters__field:first-of-type {
		flex-basis: 100%;
	}
}

.tbw-competition-filters .screen-reader-text {
	position: absolute;
	width: 1px;
	height: 1px;
	overflow: hidden;
	clip-path: inset(50%);
	white-space: nowrap;
}

.tbw-competition-card__meta {
	display: flex;
	flex-wrap: wrap;
	align-content: flex-start;
	align-items: flex-start;
	gap: 6px;
	padding: 0;
	margin: 0 0 0.6rem;
}

.tbw-competitions-loop {
	--tbw-competition-background: #b1c6c8;
	--tbw-competition-ink: #092032;
	--tbw-competition-accent: #004e5a;
	display: grid;
	gap: clamp(1rem, 2vw, 2rem);
	width: 100%;
}

.tbw-competitions-loop--columns-1 {
	grid-template-columns: minmax(0, 1fr);
}

.tbw-competitions-loop--columns-2 {
	grid-template-columns: repeat(2, minmax(0, 1fr));
}

.tbw-competitions-loop--columns-3 {
	grid-template-columns: repeat(3, minmax(0, 1fr));
}

.tbw-competitions-loop--columns-4 {
	grid-template-columns: repeat(4, minmax(0, 1fr));
}

.tbw-competitions-loop--columns-5 {
	grid-template-columns: repeat(5, minmax(0, 1fr));
}

.tbw-competitions-loop--columns-6 {
	grid-template-columns: repeat(6, minmax(0, 1fr));
}

.tbw-competition-card {
	min-width: 0;
	margin: 0;
	border-radius: 5px;
	background: #7ccfd3;;
	color: var(--tbw-competition-ink);
	overflow: hidden;
}

.tbw-competition-card__link {
	display: flex;
	height: 100%;
	box-sizing: border-box;
	flex-direction: column;
	gap: clamp(0.8rem, 1.2vw, 1rem);
	padding: clamp(0.75rem, 1.2vw, 1rem);
	color: inherit;
	text-decoration: none;
}

.tbw-competition-card__media {
	position: relative;
	display: grid;
	flex-shrink: 0;
	width: 100%;
	border-radius: 5px;
	background: rgba(0, 78, 90, 0.09);
	overflow: hidden;
}

.tbw-competition-card__media::before {
	content: '';
	grid-area: 1 / 1;
	padding-top: calc(100% / 1.49);
	pointer-events: none;
}

.tbw-competition-card__image,
.tbw-competition-card__placeholder {
	position: absolute;
	inset: 0;
	display: block;
	width: 100%;
	height: 100%;
}

.tbw-competition-card__image {
	object-fit: cover;
	transition: transform 320ms cubic-bezier(0.22, 1, 0.36, 1);
}

.tbw-competition-card__placeholder {
	background: linear-gradient(135deg, rgba(0, 78, 90, 0.06), rgba(0, 78, 90, 0.18));
}

.tbw-competition-card__badge {
	display: inline-block;
	box-sizing: border-box;
	max-width: 100%;
	border-radius: 5px;
	background: var(--tbw-competition-accent);
	color: #fff;
	font-size: 12px;
	font-weight: 500;
	line-height: 1.2;
	padding: 0.55rem 0.8rem;
	white-space: normal;
	overflow-wrap: anywhere;
}

.tbw-competition-card__content {
	display: flex;
	flex-direction: column;
	gap: 0.22rem;
	padding-bottom: clamp(0.25rem, 0.7vw, 0.65rem);
}

.tbw-competition-card__date {
	display: block;
	font-size: clamp(0.9rem, 1.1vw, 1.05rem);
	font-weight: 500;
	
	line-height: 1.25;
}

.tbw-competition-card__title {
	margin: 0;
	
	font-size: clamp(1.25rem, 1.75vw, 1.7rem);
	font-weight: 700;
	line-height: 1.08;
	letter-spacing: -0.025em;

}

.tbw-competition-card__link:hover,
.tbw-competition-card__link:focus-visible {
	color: var(--tbw-competition-ink);
	text-decoration: none;
}

.tbw-competition-card__link:hover .tbw-competition-card__image,
.tbw-competition-card__link:focus-visible .tbw-competition-card__image {
	transform: scale(1.035);
}

.tbw-competition-card__link:focus-visible {
	outline: 3px solid currentColor;
	outline-offset: 3px;
}

.tbw-competitions-loop__empty {
	padding: 1rem;
	border: 1px dashed currentColor;
}

@media (max-width: 991px) {
	.tbw-competitions-loop--columns-3,
	.tbw-competitions-loop--columns-4,
	.tbw-competitions-loop--columns-5,
	.tbw-competitions-loop--columns-6 {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 599px) {
	.tbw-competitions-loop {
		grid-template-columns: minmax(0, 1fr);
	}

	.tbw-competition-card__link {
		padding: 1rem;
	}

	.tbw-competition-card__title {
		font-size: 1.5rem;
	}
}

@media (prefers-reduced-motion: reduce) {
	.tbw-competition-card__image {
		transition: none;
	}
}

form.tbw-competition-filters [hidden] {
	display: none !important;
}

.tbw-competition-filters__spinner {
	align-self: center;
	width: 24px;
	height: 24px;
	border: 3px solid #b1c6c8;
	border-top-color: #004e5a;
	border-radius: 50%;
	animation: tbw-filter-spin 0.8s linear infinite;
}

.tbw-competition-filters__status {
	align-self: center;
	color: #004e5a;
	font-size: 14px;
}

@keyframes tbw-filter-spin {
	to { transform: rotate(360deg); }
}

@media (prefers-reduced-motion: reduce) {
	.tbw-competition-filters__spinner { animation: none; }
}
