section {
	justify-items: center;
}

section header {
	text-align: center;
}


.provider__headline {
	padding-top: 8em;
}

	.provider__headline--withASearch {
		padding-top: 6em;
	}

	.provider__headline h1 {
		font-size: var(--fontSize1);
	}
	
.provider__green {
	display: block;
	width: 5em;
	margin-top: 2em;
}


@media (max-width: 480px) {
	.provider__headline {
		padding-top: 11em;
	}

	.provider__headline--withASearch {
		padding-top: 11em;
	}
}

.provider__headline .addToFavourites {
	position: absolute;
	right: var(--wrapper__bodyPadding);
	bottom: 1em;
}

.provider__location {
	color: var(--color__yellow);
	font-family: var(--fontFamily2);
	font-size: var(--fontSize3);
	font-weight: 400;
	
	text-shadow: 1px 1px 2px rgba(0, 0, 0, 0.7);
}


.provider__description * + h3 {
	margin-top: 1.5em;
}

.provider__description ul {
	margin-left: 3em;
}

.provider__hint {
	display: flex;
	align-items: center;
	gap: 2em;
	margin-top: 3em;
	
	font-family: var(--fontFamily2);
	font-weight: 500;
}

	.provider__hint > div {
		flex: 0 0 auto;
	}
	
	.provider__hint .icon {
		font-size: 4em;
		color: var(--color__red);
	}

.provider__gallery {
	position: relative;
}

.provider__gallery .swiper-button-prev,
.provider__gallery .swiper-button-next {
	color: var(--color__red);
}

	.provider__gallery .swiper-button-next::after, 
	.provider__gallery .swiper-button-prev::after {
		font-size: 1.2em;
	}
	
	.provider__gallery .swiper-button-prev {
		left: -1.5em;
	}
	
	.provider__gallery .swiper-button-next {
		right: -1.5em;
	}

.provider__galleryHint {
	margin-top: calc(var(--wrapper__bodyPadding) * 2);
}

.provider__contacts h2 {
	margin-bottom: 0.3em;
}

.provider__contacts .row > * + * {
	margin-top: 1em;
}

.provider__contacts > * + * {
	margin-top: var(--wrapper__bodyPadding);
}

.provider__openingHours ul {
	list-style: none;
}

.provider__links .socialMedia {
	justify-content: flex-start;
}

.provider__map {
	grid-column: 1 / - 1;
	padding: 0;
	
	background-color: #ccc;
}

	#providerMap {
		height: 80vw;
		max-height: 60em;
	}


.provider__reservation {
	margin-top: var(--flow-space);
}





.pFilter {
	padding-top: 1.5em;
	padding-bottom: 1.5em;
	font-size: 0.9em;
}

.pFilter__group {
	display: flex;
	gap: 1em 0.5em;
	justify-content: center;
	flex-wrap: wrap;
}

	.pFilter__group .b {
		white-space: nowrap;
	}
	

	.pFilter__group .b--active {
		background-color: var(--color__black);
		border-color: var(--color__black);
	}

.pFilter__group--level2 {
	margin-top: 2em;
}

	.pFilter__group--level2 .b--ghost {
		padding-top: 0.3em;
		padding-bottom: 0.3em;
		font-weight: 400;
	}











.pList {
	gap: var(--wrapper__gridGap);
}

.provider__related .wProviders {
	grid-column: 1 / -1; 
}




.provider__activity {
	display: none;
	text-align: center;
}

	.provider__activity--active {
		display: grid;
	}




.booking #btnToggleAccSearch {
	margin-top: 1em;
} 

.booking__search h2 {
	text-align: center;
}

@media (max-width: 65em) {
	.aSearch {
		padding: var(--wrapper__bodyPadding);
		display: flex;
		flex-direction: column;
		align-items: center;
		justify-content: center;
		
		text-align: center;
		
		transition: opacity .4s;
	}
	
	
	.aSearch > button {
		flex: 0 0 auto;
	}
	
	.aSearch form {
		display: flex;
		flex-direction: column;
		align-items: center;
	}

	.aSearch fieldset {
		padding: 1em;
		display: inline-flex;
		flex-direction: column;
		
		background-color: #fff;
		border-radius: 1em;
	}

	.aSearch .form__group + .form__group {
		padding-top: 0.5em;
		margin-top: 0.5em;
		border-top: 1px solid var(--color__silver);
	}
}



@media (min-width: 48em) {
	.provider__headline h1 {
		font-size: clamp(1.8em, 18vw, 3.5em);
	}
	
	.pFilter__group {
		justify-content: center;
		flex-wrap: wrap;
	}
	
	.provider__contacts > * + * {
		margin-top: 0;
	}
	
	.provider__contact {
		grid-column: var(--wrapper__gridOffsetLeft) / span 4;
	}
	
	.provider__openingHours {
		grid-column: span 4;
	}
	
	.provider__links {
		grid-column: span 4;
	}
	
	.provider__galleryHint {
		margin-top: 0;
	}
	
	.provider__description {
		padding-right: var(--wrapper__bodyPadding);
	}
	
	.provider__reservation {
		padding-left: 3em;
	}
	
	.provider__infoWrap--reservation .provider__galleryHint {
		margin-top: var(--flow-space);
	}
	
	.provider__reservation {
		margin-top: 0;
	}
}

@media (min-width: 65em) {
	.pFilter__group {
		gap: 1em 2em;
		/* grid-column: 1 / -1; */
		padding-left: var(--wrapper__bodyPadding);
		padding-right: var(--wrapper__bodyPadding);
	}
	
	.provider__contact {
		grid-column: var(--wrapper__gridOffsetLeft) / span 5;
	}
	
	.provider__contacts .row {
		display: flex;
		gap: 2em;
	}
	
	.provider__contacts .row > * + * {
		margin-top: 0;
	}
	
	.provider__openingHours {
		grid-column: span 4;
	}
	
	.provider__links {
		grid-column: span 3;
	}
	
	.provider__related .wProviders {
		grid-column: var(--wrapper__gridOffset);
	}
	
	.provider__gallery .swiper-button-prev {
		left: -2em;
	}
	
	.provider__gallery .swiper-button-next {
		right: -2em;
	}
	
	.provider__description {
		padding-right: calc(var(--wrapper__bodyPadding) * 2);
	}
	
	
	
	.booking .l2Headline {
		min-height: 32em;
	}
	
	.booking__search .aSearch fieldset {
		display: flex;
		justify-content: center;
		padding: 0.5em;
		
		background-color: #fff;
		border-radius: 2em;
	}
	
	.booking__search .aSearch fieldset > * + * {
		margin-top: 0;
		margin-left: 1em;
		padding-left: 1em;
		
		border-left: 1px solid var(--color__red);
	}
	
	.booking__search .aSearch input[type="number"] {
		width: 8em;
	}
	
	.booking__search #booking {
		display: flex;
		justify-content: center;
		gap: 1em;
		margin-top: 1em;
	}
	
	.booking__search #booking > button {
		margin-top: 0;
	}
}