:root {
    --template-heading-font: 'termina';
    --template-text-font: 'Host Grotesk';
	--border-radius-lg: 20px;
}

#app {
    display: flex;
    flex-direction: column;
}

.center {
    width: 1330px;
}

h1, h2 {
    font-size: 2em;
    line-height: 1.25;
}

#nav a.logo {
	flex-shrink: 0;
}

#nav a.logo, #footer .logo {
	position: relative;
}

#nav a.logo img, #footer .logo img {
	visibility: hidden;
}

#nav a.logo:after, #footer .logo:after {
	content: '';
	position: absolute;
	left: 0;
	padding-bottom: 100%;
	background: url('https://apponio.com/storage/custom-assets/logos/mol-extrans-logo-white.png') left center / contain no-repeat;
	width: 100%;
}

.brand-decoration {
    position: relative;
    width: 1300px;
    max-width: 100%;
    margin: 0 auto 20px;
    height: 570px;
    border-radius: var(--border-radius-lg);
    float: none;
    top: auto;
    left: auto;
    background-position: center;
}

.brand-decoration:after {
    content: none;
}

.brand-decoration img {
    display: none;
}

body[reservation-step="step_services"] #reservation-form .previous-steps {
	display: none;
}

#reservation-steps-wrapper h1 {
	color: var(--primary-text-color);
}

#reservation-form:before, .reservation-action:not(#service-rating):before {
	content: '';
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	bottom: 0;
	background: linear-gradient(to bottom, #305E2A, #0C0C0C);
	z-index: -1;
}

#reservation-form .previous-steps h3 {
	font-family: var(--template-text-font);
	margin-bottom: 4px;
}

#reservation-form .previous-steps strong {
	font-size: 1em;
	line-height: 1.5;
}

.reservation-summary {
    margin-top: 40px;
}

#services fieldset {
	background: none;
}

#services > ul > li:hover, #services > ul > li.active {
	background: none;
	border: 0;
	box-shadow: none;
}

#datetime .calendar th, #datetime .calendar table span, #datetime .time-slots label {
    font-size: 1em;
}

#datetime .calendar table span {
    width: 3em;
}

#reservation button, #reservation .button {
    font-size: 1em;
    padding: 16px 36px 16px;
}

#about-us {
	background: #0C0C0C
}

#about-us .center {
	padding-top: 20px;
	width: 1330px;
}

#about-us .branding {
	width: 50%;
	position: relative;
}

#about-us .branding img {
	display: none;
}

.branding:after {
    content: '';
    display: block;
    width: 100%;
    padding-bottom: 100%;
    background: url('https://apponio.com/storage/custom-assets/other-assets/mol-extrans/about.jpg') center / cover no-repeat;
	border-radius: var(--border-radius-lg)
}

@media (max-width: 940px) {
    #about-us .branding {
        display: block;
		width: 100%;
		max-width: 500px;
		margin: 50px auto 0;
    }
}

#about-us h2 {
    font-size: 2em;
    color: var(--primary-text-color);
}

#about-us .tags li {
    border: 1px solid var(--primary-color);
    display: inline-block;
    padding: 10px 20px;
    border-radius: var(--border-radius-md);
    margin: 0 8px 8px 0
}

#partners {
    background: #0c0c0c;
}

#partners ul {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
}

#partners li {
    width: 20%;
    text-align: center;
    padding: 20px 0;
}

#partners img {
    width: 225px;
}

#reviews .center:before {
	content: 'Referencie od našich klientov';
	display: block;
	margin-bottom: 40px;
	text-align: center;
	font-size: 2em;
	font-weight: bold;
	font-family: var(--template-heading-font);
	padding: 0 15px;
	line-height: 1.25;
}

#reviews h3 {
	font-size: 1.5em;
}

#location {
    order: 3;
    height: auto;
    padding-top: 80px;
    padding-bottom: 60px;
    width: 1100px;
    margin: auto;
    max-width: 100%;
    top: 0;
}

#location:before {
	content: '';
	position: absolute;
	top: 0;
	left: 50%;
	bottom: 0;
	width: 100vw;
	transform: translatex(-50%);
	background: linear-gradient(to bottom, #305E2A, #0C0C0C);
	z-index: -1;
}

#location h2 {
    position: static;
    background: none;
    color: var(--primary-text-color);
    text-align: center;
}

#map {
    position: static;
    height: 560px;
    width: auto;
    background: none;
}

#map iframe {
    border-radius: var(--border-radius-lg);
    overflow: hidden;
}

#gallery {
	order: 2;
}

#footer, #legal {
    order: 4;
	background: #0C0C0C;
}

#footer .contact a {
    font-size: 1.25em;
}

#footer .icon:before {
	display: block;
	width: auto;
	height: auto;
	line-height: inherit;
	border-radius: 0;
	background: none;
	color: var(--primary-color); 
    font-size: 30px;
}

#reviews {
	order: 1;
	background: linear-gradient(to bottom, #0C0C0C, #305E2A);
	top: 0;
}

#reviews:after {
	content: none;
}

@media (min-width: 831px) {
	#nav.nav-compact ul.contact {
		margin-left: 60px;
	}

	#nav ul.contact li {
		font-size: .875em;
		font-weight: 700;
	}
	
	#nav ul.contact li.opening-hours {
		font-size: .65em;
	}
	
	#nav .main-nav {
		font-size: .875em;
		text-transform: uppercase;
	}
	
	#reservation-steps-wrapper > h1 {
		display: block;
		font-size: 3em;
		font-weight: 900;
		text-align: center;
		color: var(--primary-text-color);
		margin-bottom: 60px;
	}
	
	#reservation-form, .reservation-action {
	    width: auto;
	    min-height: auto;
	    margin-bottom: 0;
	    padding-top: 280px;
	    margin-top: -200px;
	}
	
	#reservation-form .center, .reservation-action .center {
	    width: 1330px;
	    float: none;
	    padding: 30px 15px;
	    box-sizing: border-box;
	}
	
	.reservation-action .center {
	    width: 800px;
	}
	
	#reservation-form .progress-outline {
	    display: none;
	}
	
	#services > h1 {
		display: none;
	}
	
	#services span.radio {
	    display: none;
	}
	
	#services fieldset ul {
	    display: flex;
	    gap: 16px;
	    flex-wrap: wrap;
	}
	
	#services .service {
	    flex: 0 1 calc(25% - 12px);
	    background: linear-gradient(180deg, #191919, #000000);
	    border: 1px solid #2b2b2b;
	    border-radius: var(--border-radius-lg);
	    height: 0;
	    padding-bottom: calc(25% - 14px);
	    position: relative;
	    box-sizing: border-box;
	}
	
	#services .service label {
	    padding: 50px 16px 60px;
	    height: 100%;
	    box-sizing: border-box;
	    display: table;
	    width: 100%;
	    position: absolute;
	}
	
	#services label h4, #services label .price {
	    color: var(--primary-text-color);
	}
	
	#services label .duration {position: absolute;top: 16px;font-size: .875em;}
	
	#services label .price {
	    position: absolute;
	    left: 16px;
	    bottom: 16px;
	}
	
	#services .service-details {
	    position: absolute;
	    left: 16px;
	    right: 16px;
	    top: 50%;
	    margin-top: 50px;
	    transform: translateY(calc(-50% - 40px));
	    transition: .3s;
	}
	
	#services .service-heading {
	    margin-bottom: 20px;
	}
	
	#services .service-description {
	    height: 0;
	    overflow: hidden;
	    transition: .3s;
	    font-size: .75em;
	}
	
	#services .service:hover .service-description {
	    height: 3.9em;
	}
	
	#services label:after {
	    content: 'Rezervovať';
	    position: absolute;
	    right: 16px;
	    bottom: 16px;
	    padding: 8px 15px;
	    background: var(--primary-color);
	    border-radius: var(--border-radius-sm);
	    opacity: 0;
	    transition: .3s;
	}
	
	#services .service:hover label:after {
	    opacity: 1;
	}
	
	body[reservation-step="step_employees"] #reservation-form .previous-steps,
	body[reservation-step="step_datetime"] #reservation-form .previous-steps,
	body[reservation-step="step_customer"] #reservation-form .previous-steps,
	.reservation-summary {
	    display: block;
	    float: right;
	    width: 50%;
	    padding-left: 80px;
	    box-sizing: border-box;
	}
	
	#reservation-form .previous-steps:before {
		content: 'Súhrn objednávky';
		display: block;
		font-family: 'termina';
		font-size: 2em;
		line-height: 1.25;
		margin: 24px 0;
		font-weight: bold;
		color: var(--primary-color);
	}

	#datetime, #employees, .customer-fields {
	    width: 50%;
	    float: left;
	}

	#partners .slider-visible {
		display: none;
	}
	
    #reviews .center {
        width: 1330px;
        padding: 60px 0;
    }

	#reviews .center:before {
        float: left;
        width: 33.333%;
        font-size: 2em;
		box-sizing: border-box;
		text-align: left;
        padding-right: 40px;
    }

    #reviews ul {
        width: 66.6666% !important;
        padding: 0 15px;
        box-sizing: border-box;
        flex-wrap: wrap;
        align-items: stretch;
        float: right;
    }

    #reviews li {
        width: 100% !important;
        padding: 0;
    }

    #reviews li + li {
        margin-top: 20px;
    }

    #reviews .review {
        text-align: left;
        height: 100%;
        box-sizing: border-box;
    }

    #reviews .rating-indicator {
        margin: 0;
    }

    #reviews .controls {
        display: none;
    }
}

@media (max-width: 1020px) and (min-width: 831px) {
	#nav.nav-compact ul.contact {
		margin-left: 20px;
	}

	#nav .center {
		gap: 30px;
	}
}

@media (max-width: 1020px) and (min-width: 831px) {
	#services .service {
		flex-basis: calc(33.333% - 32px/3);
		padding-bottom: calc(33.333% - 32px/3 - 2px)
	}
	
	#footer .logo:after {
		padding-bottom: 0;
		height: 190px;
	}
}

@media (min-width: 1101px) {
	#about-us h2 {
		font-size: 3em;
	}
	
	#reviews .center:before {
        font-size: 3em;
    }
	
	#reviews li:nth-child(2),
    #reviews li:nth-child(3) {
        width: 50% !important;
    }

    #reviews li:nth-child(2) {
        padding-right: 10px;
    }

    #reviews li:nth-child(3) {
        padding-left: 10px;
    }
}

@media (max-width: 1300px) {
	.brand-decoration {
		border-radius: 0;
		height: 0;
		padding-bottom: 44%;
	}
}

@media (max-width: 1100px) {
	#location {
		padding-top: 40px;
		padding-bottom: 0;
	}
	
	#map iframe {
		border-radius: 0;
	}
}

@media (max-width: 1020px) {
    #footer .logo:after {
        padding-bottom: 0;
        height: 190px;
    }
}

@media (max-width: 830px) {
	#nav .main-nav {
		font-size: 1.5em;
	}

	#nav ul.contact li {
		font-size: 1.25em;
		font-weight: 700;
	}
	
	#nav ul.contact li.opening-hours {
		font-size: 1em;
	}

	#reservation-form, .reservation-action {
		margin-bottom: 0;
	}

	#services > ul > li {
		border-radius: 0;
	}

	#services .service {
		background: var(--background-color-element);
		margin-bottom: 11px;
		border-radius: var(--border-radius-lg);
	}

	#services label .duration {
		font-size: .875em;
	}

	#services label h4, #services label .price {
		font-size: 1em;
		padding-bottom: 10px;
	}
	
	#reviews .center {
		padding-top: 40px;
		padding-bottom: 120px;
	}

	#partners .center {
		overflow: hidden;
		width: 100%;
	}
	
	#partners ul {
		flex-wrap: nowrap;
		width: max-content;
		animation: scroll 20s linear infinite;
	}
	
	#partners li {
		flex: 0 0 auto;
		width: 200px;
		display: flex;
		align-items: center;
		justify-content: center;
		margin-right: 40px;
		font-weight: bold;
	}
}

@media (max-width: 600px) {
    .brand-decoration {
        margin: 10px 15px;
        width: auto;
        border-radius: var(--border-radius-lg);
        background: url('https://apponio.com/storage/custom-assets/other-assets/mol-extrans/banner-mobile.jpg') center / cover no-repeat;
        padding-bottom: 115%;
    }
}

@keyframes scroll {
  from {
    transform: translateX(0);
  }
  to {
    transform: translateX(-50%);
  }
}