/* Nollaa selaimen oletusmääritykset, mutta jätä taustaväri rauhaan */
* {
    margin: 0;
    padding: 0;
    border: 0;
    outline: 0;
    font-size: 100%;
    vertical-align: baseline;
}

a[href^="tel:"] {
    text-decoration: none;
    color: inherit;
    cursor: text;
}

a[href^="mailto:"] {
    text-decoration: none;
    color: inherit;
    cursor: text;
}

#cookieConsent {
	position: fixed;
	display: flex;
	flex-direction: column;
	width: 60%;
	min-height: 80px;
	align-items: center;
    background: linear-gradient(0.20turn, rgba(124,252,0), rgba(152,251,152));
	border-image: linear-gradient(0.30turn, rgba(30,144,255), rgba(100,149,237));
	border: 2px solid transparent;
	border-image-slice: 1;
    border-radius: 0.4em;
    padding: 0.4em;
	margin-bottom: 0.3em;
	text-align: center;
	gap: 0.5em;
	left: 50%;
    transform: translateX(-50%);
	bottom: 0;
    z-index: 9999;
}
#cookieConsent > div:last-child {display: flex;flex-direction: row;justify-content: center;gap: 0.5em;}
#cookieConsent button {cursor: pointer;background: #6495ED;color: #F5FFFA;padding: 0.4em;border-radius: 0.3em;}

/*.loader {
	border: 16px solid #f3f3f3;
	border-radius: 50%;
	border-top: 16px solid #3498db;
	width: 120px;
	height: 120px;
	-webkit-animation: spin 2s linear infinite;
	animation: spin 2s linear infinite;
	margin:auto;
	margin-top:200px;
}*/

/* GLOBAL ELEMENTS */
.html {
	scroll-behavior: smooth;
	font-size: 16px;
}

.btn-disabled {
	cursor: not-allowed!important;
	background: linear-gradient(to bottom right, #999999 30%, #fff 70%)!important;
	border: 1px solid #C0C0C0!important;
	color: #696969!important;
	box-shadow: none!important;
}


/* DEBUG */
#debug {display: none;}
.debug-bar {
    position: fixed;
	width: 80px;
    right: 0.5em;
    top: 50%;
    transform: translateY(-50%);
    z-index: 1000;
}
.debug-button {position: fixed;width: 240px;height: 125px;top: 50%;transform: translateY(-50%) rotate(-90deg);z-index: 1000;}
.rotate {transform: rotate(-90deg);-webkit-transform: rotate(-90deg);-moz-transform: rotate(-90deg);-ms-transform: rotate(-90deg);-o-transform: rotate(-90deg);filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=3);}

.debug-bar.show {
    display: block;
}
.debugHeader {display: flex;width: 90%;justify-content: space-evenly;padding: 0.75em;height: 1.4em;font-size: 0.925em;font-weight: 500;color: #ADFF2F;text-transform: uppercase;}
.debugHeader > div {display: flex;gap: 0.5em;}
.green-gold-box input[type=checkbox] {-webkit-appearance:none;border-radius:0;}
.green-gold-box input[type=checkbox] {
	display: inline-block;
	position: relative;
	border: 2px solid #DAA520;
	border-radius: 2px;
	background: #000;
	cursor: pointer;
	line-height: 0;
	outline: 0;
	padding: 0!important;
	vertical-align: text-top;
	height: 16px;
	width: 16px;
	opacity: .4;
}
.green-gold-box input[type=checkbox]:hover {opacity: 1;}
.green-gold-box input[type=checkbox]:checked {background-color: #00FF7F;opacity: 1;}

.green-gold-box input[type=checkbox]:before {
	content: '';
	display: inline-block;
	position: absolute;
	right: 50%;
	top: 50%;
	width: 4px;
	height: 10px;
	border: solid #000;
	border-width: 0 2px 2px 0;
	margin: -1px -1px 0 -1px;
	transform: rotate(45deg) translate(-50%, -50%);
	z-index: 2;
}


#debugContent {
    display: none;
    flex-direction: column; /* Sisällön asettelu pystysuunnassa */
    justify-content: flex-start; /* Alustetaan sisältö ylös */
    position: fixed;
    right: 0.4em;
    top: 50%;
    transform: translateY(-50%);
    width: 420px;
    min-height: 420px;
    max-height: 75vh;
    background: rgba(0, 0, 0, 0.92);
    border-radius: 1.4em 0.6em;
    z-index: 999;
    overflow-y: hidden;
}
#debugContent.show { display: flex!important;}

#debugStopContainer {
    margin-top: auto; /* Tämä varmistaa, että container menee aina alareunaan */
    background: #222; /* Sama taustaväri kuin debug-ikkunassa */
    padding: 10px 0;
    width: 100%;
    text-align: center;
}

#stopDebugging {
    width: 75%; /* Täyttää isäntädivin 75% leveydellä */
}

#debugText {gap: 0.3em;}
#cookieText {display: none;}
.debug-text,
.cookie-text {
    align-content: center;
    text-align: left;
    padding: 4px 8px;
    width: 95%;
    height: 90%;
    overflow-y: auto;
    word-wrap: break-word;
}

.debug-text p,
.cookie-text p {
    font-family: "Roboto", sans-serif;
    color: #fff;
    font-size: 0.875em;
    font-weight: 100;
    white-space: normal;
    display: flex;
    flex-wrap: wrap;
	gap: 0.2em;
}
.debug-text p {margin-bottom: 0.8em;}
.cookie-text p {margin-bottom: 0.3em;}

.debugMessage span {
    display: block;
}

.functionName {
	width: 100%;
	font-size: 1rem;
    font-weight: bold;
    color: #7FFF00;
    margin-bottom: 4px;
}

.error-message {
    color: red!important;
    font-weight: bold!important;
}
.important,
.important-event {
    color: #F0E68C!important;
    font-weight: bold!important;
}

.glow-on-hover {
	font-family: "Roboto", sans-serif;
	font-weight: 700;
	width: 100%;
	height: 32px;
	border: none;
	outline: none;
	color: rgba(255,255,255, 0.25);
	background: #111;
	cursor: pointer;
	position: relative;
	z-index: 0;
	border-radius: 10px;
	text-transform: uppercase;
}

	.glow-on-hover:before {
		content: '';
		background: linear-gradient(45deg, #ff0000, #ff7300, #fffb00, #48ff00, #00ffd5, #002bff, #7a00ff, #ff00c8, #ff0000);
		position: absolute;
		top: -2px;
		left:-2px;
		background-size: 400%;
		z-index: -1;
		filter: blur(5px);
		width: calc(100% + 4px);
		height: calc(100% + 4px);
		animation: glowing 20s linear infinite;
		opacity: 0;
		transition: opacity .3s ease-in-out;
		border-radius: 10px;
		padding: 0.15em;
	}

	.glow-on-hover:after {
		z-index: -1;
		content: '';
		position: absolute;
		width: 100%;
		height: 100%;
		background: #111;
		left: 0;
		top: 0;
		border-radius: 10px;
	}

	@keyframes glowing {
		0% { background-position: 0 0; }
		50% { background-position: 400% 0; }
		100% { background-position: 0 0; }
	}
	
	.glow-on-hover:active {color:#000!important;}
	.glow-on-hover:active:after {background:transparent;}
	.glow-on-hover:hover {color:rgba(255,255,255, 1)!important;}
	.glow-on-hover:hover:before {opacity:1;}
	

/* INDEX */
body {
	position: relative;
	font-family: var(--fontType);
	color: var(--textColor);
	margin: 0;
	height: 100vh;
	background: transparent;
}

.aikaClass {
	background: #ECECEF;
	--textColor: #000000;
	--textColor2: #D2691E;
	--attentionTextColor: #800000;
	--highlightTextColor: #2E8B57;
	--topicTextColor: #606060;
	--fontType: "Roboto", sans-serif;
	--fieldBg: #F8F8FF;
	--btnBasic: linear-gradient(to bottom, #408c99 5%, #008080 100%);
	--btnBasicHover: linear-gradient(to bottom, #599bb3 5%, #408c99 100%);
	--btnBasicColor: #F8F8FF;
	--btnBasicColorHover: #F8F8FF;
	--btnBasicInactive: linear-gradient(to bottom, #808080 5%, #696969 100%);
	--btnBasicInactiveColor: #DCDCDC;
	--btnArrowMain: linear-gradient(to bottom, #408c99 5%, #008080 100%);
	--btnArrowHover: linear-gradient(to bottom, #63E8E0 15%, #50E0D0 100%);
	--btnArrowSecondary: 10px solid #599bb3;
	--inputBg: #F0F0F0;
	--inputHover: #F0F0F0;
	--inputFocus: #FFFAF0;
	--inputBorder: 2px solid #ccc;
	--oddRowBg: #B0C4DE;
	--evenRowBg: #F0F8FF;
	--contentAreaBorder: 2px solid #C0C0C0;
	--areaRadioSelector: #28a745;
	--areaRadioSelectorBorder: #218838;
	--areaRadioSelectorShadow: 0 0 10px rgba(40, 167, 69, 0.6);
	--serviceSelectBg: #F0F0F0;
	--serviceSelectBgFocus: #F0F0F0;
	--serviceSelectBorder: 2px solid #aaa;
	--navBtnTextColor: #FFFAFA;
	--navBtnCompleted: linear-gradient(to bottom, #0f0 5%, #0a0 100%);
	--navBtnActive: linear-gradient(to bottom, #48D1CC 15%, #40E0D0 100%);
	--navBtnInactive: linear-gradient(to bottom, #bbb 5%, #999 100%);
	--navBtnCompletedBorder: 1px solid #000;
	--navBtnActiveBorder: 1px solid #00cccc;
	--navBtnInactiveBorder: 1px solid #aaa;
	--navBtnHover: linear-gradient(to bottom, #63E8E0 15%, #50E0D0 100%);
	--spinnerSize: 120px;
	--spinnerGradient: conic-gradient(from 0deg, #3498db, #f3f3f3, #3498db);
	--spinnerSpeed: 2s;
	--spinnerMaskInner: 65%;
	--spinnerCenterImage: url('');
	--spinnerCenterSize: 48px;
	--spinnerCenterAnimate: none;
	--printBackground: linear-gradient(135deg,#fbf8f3 0%,#f2ebde 25%,#fbf8f3 50%,#f2ebde 75%,#fbf8f3 100%);
	--printFontSize: 14pt;
}

/*.frendixColorfix {
	background: linear-gradient(to bottom right, #1DA000 20%, #ffffff 80%);
	--textColor: #021F0B;
	--textColor2: #006400;
	--attentionTextColor: #800000;
	--topicTextColor: #606060;
	--fontType: "Roboto", sans-serif;
	--fieldBg: #F0F8FF;
	--btnBasic: linear-gradient(165deg, #1DA000 55%, #00FA9A 100%);
	--btnBasicHover: linear-gradient(165deg, #32CD32 55%, #F8F8FF 100%);
	--btnBasicColor: #F8F8FF;
	--btnBasicColorHover: #F8F8FF;
	--btnBasicInactive: linear-gradient(to bottom, #808080 5%, #696969 100%);
	--btnBasicInactiveColor: #DCDCDC;
	--btnArrowMain: linear-gradient(165deg, #1DA000 55%, #00FA9A 100%);
	--btnArrowSecondary: 10px solid #4CAF50;
	--inputBg: #F0FFFF;
	--inputFocus: #F8F8FF;
	--inputBorder: 2px solid #ccc;
	--oddRowBg: #F0F0F0;
	--evenRowBg: #E0E0E0;
	--contentAreaBorder: 2px solid #2E8B57;
	--areaRadioSelector: #28a745;
	--areaRadioSelectorBorder: #218838;
	--areaRadioSelectorShadow: 0 0 10px rgba(40, 167, 69, 0.6);
	--serviceSelectBg: #F0FFFF;
	--serviceSelectBgFocus: #F0FFFF;
	--serviceSelectBorder: 2px solid #aaa;
	--navBtnTextColor: #F5FFFA;
	--navBtnActive: linear-gradient(to bottom, #0f0 5%, #0a0 100%);
	--navBtnCompleted: linear-gradient(to bottom, #3C6A4A 5%, #1E3726 100%);
	--navBtnInactive: linear-gradient(to bottom, #AFCDE7 5%, #7F9BB5 100%);
	--navBtnHover: linear-gradient(to bottom, #5A9FD4 5%, #1E3A5F 100%);
	--navBtnActiveBorder: 1px solid #228B22;
	--navBtnCompletedBorder: 1px solid #228B22;
	--navBtnInactiveBorder: 1px solid #c0c0c0;
	--spinnerSize: 120px;
	--spinnerGradient: conic-gradient(from 0deg, #00ff00, #004400, #00ff00);
	--spinnerSpeed: 2s;
	--spinnerMaskInner: 65%;
	--spinnerCenterImage: url('loaderimages/frendix.png');
	--spinnerCenterSize: 56px;
	--spinnerCenterAnimate: coinSpin 2s linear infinite;
}*/

.ramneckRedpage {
    background: #CD5C5C;
	--textColor: #000000;
	--textColor2: #363636;
	--attentionTextColor: #DC143C;
	--highlightTextColor: #2E8B57;
	--topicTextColor: #800000;
	--fontType: "Roboto", sans-serif;
	--fieldBg: #FFF0F5;
	--inputBg: #FFE4E1;
	--inputFocus: #F8F8FF;
	--inputBorder: 2px solid #800000;
	--btnBasic: #B22222;
	--btnBasicHover: #DC143C;
	--btnBasicColor: #F8F8FF;
	--btnBasicColorHover: #F8F8FF;
	--btnBasicInactive: #000000;
	--btnBasicInactiveColor: #DCDCDC;
	--serviceSelectBg: #FFE4E1;
	--serviceSelectBgFocus: #F8F8FF;
	--serviceSelectBorder: 2px solid #800000;
	--areaRadioSelector: #DC143C;
	--areaRadioSelectorBorder: #8B0000;
	--areaRadioSelectorShadow: 0 0 10px rgba(0, 0, 100, 0.6);
	--oddRowBg: #F49797;
	--evenRowBg: #FFB6C1;
	--contentAreaBorder: 2px solid #DC143C;
	--navBtnCompleted: #800000;
	--navBtnActive: #DC143C;
	--navBtnInactive: #000000;
	--navBtnCompletedBorder: #DC143C;
	--navBtnActiveBorder: #FF1493;
	--navBtnInactiveBorder: #000000;
	--navBtnTextColor: #F8F8FF;
	--navBtnHover: #FF1493;
	--spinnerSize: 100px;
	--spinnerSpeed: 1.5s;
	--spinnerGradient: conic-gradient(from 0deg, #FF1493, #DC143C, #FFF0F5);
	--spinnerMaskInner: 60%;
	--spinnerCenterImage: url('loaderimages/hourglass.png');
	--spinnerCenterSize: 36px;
	--fontType: "Roboto", sans-serif;
	--printBackground: #fff;
	--printFontSize: 12pt;
}

.aikaWrapper {
	display: flex;
	flex-direction: column;
	margin: 0;
	height: 100%;
}

.aikaHeader {
	position: fixed;
	display: flex;
	width: 100%;
	height: clamp(60px, 10vh, 120px);
	top: 0;
	justify-content: space-between;
	background: transparent;
}

	.aikaHeader > div {
		display: flex;
		align-items: stretch;
		padding: 0.3em;
	}
	
	.aikaHeader > div:nth-child(1) {
		flex: 0 1 10%;
		margin-left: 1%;
	}
	
	.aikaHeader > div:nth-child(2) {
		flex: 1;
		justify-content: center;
	}
	
	.aikaHeader > div:nth-child(3) {
		flex: 0 1 10%;
		margin-right: 1%;
		justify-content: flex-end;
	}
	
	.aikaHeader > div img {
		max-width: 95%;
		max-height: 100px;
		height: auto;
		object-fit: contain;
		display: block;
		margin: auto 0;
	}

	.aikaHeader > div img[src$=".svg"] {
		width: auto;
		height: 80%;
	}
	
.aikaContent {
	display: flex;
	flex-direction: column;
	margin: auto;
	margin-top: var(--header-height);
	padding-bottom: 50px;
	width: 900px;
	height: calc(100vh - var(--header-height) - 80px);
	background: var(--fieldBg);
	overflow: auto;
}

.navigate,
.navigateReduced {
	flex-shrink: 0;
	align-items: flex-start;
	justify-content: center;
	margin-top: 20px;
}
.navigate {display: flex;height: 90px;}
.navigateReduced {display: none;margin-top: 20px;height: 80px;}

.navigate > div:nth-child(even),
.navigateReduced > div:nth-child(even) {
	width: 12px!important;
	background-color: #000;
	height: 1px;
}
.navigate > div:nth-child(even), 
.navigateReduced > div:nth-child(even) {margin-top: 30px;}

	.navCell {
		display: flex;
		flex-direction: column;
		justify-content: center;
		align-items: center;
		width: 125px;
		gap: 0.5em;
		word-wrap: break-word;
	}
	.navCell p {
		text-align: center;
		word-wrap: break-word;
		overflow-wrap: break-word;
		hyphens: auto;
	}
	#navigatingStep { white-space: nowrap;text-overflow: ellipsis;}
	
	.navButtonActive,
	.navButtonPrev,
	.navButtonNext,
	.navButtonCompleted,
	.navButtonInactive {
		border-radius: 42px;
		display: inline-block;
		width: 3.5rem;
		height: 3.5rem;
		font-size: 2em;
		font-weight: 500;
		font-family: var(--fontType);
		text-decoration: none;
	}
	
	.navButtonActive,
	.navButtonPrev,
	.navButtonNext {
		box-shadow: 3px 4px 7px 0px #555555;
		background: var(--navBtnActive);
		border: var(--navBtnActiveBorder);
		cursor: pointer;
		color: var(--navBtnTextColor);
		text-shadow: 0px 1px 0px #003333;
	}
	
	.navButtonActive:hover {
		background: var(--navBtnHover);
		border: var(--navBtnHoverBorder);
	}
	
	.navButtonInactive {
		box-shadow: 3px 4px 7px 0px #777;
		background: var(--navBtnInactive);
		border: var(--navBtnInactiveBorder);
		cursor: not-allowed;
		color: #ffffff;
		text-shadow: 0px 1px 0px #810e05;
	}
	
	.navButtonCompleted {
		box-shadow: 3px 4px 7px 0px #777;
		background: var(--navBtnCompleted);
		border: var(--navBtnCompletedBorder);
		cursor: pointer;
		color: #ffffff;
		text-shadow: 0px 1px 0px #810e05;
	}
	
	.navButtonCompleted:hover {
		background: var(--navBtnHover);
		border: var(--navBtnHoverBorder);
	}
	
	.navButtonCompleted:active {
		position:relative;
		top:1px;
	}
	
	.navButtonActive.navButtonInactive {box-shadow: 3px 4px 7px 0px #555555;background: var(--navBtnActive);border: 1px solid #00cccc;cursor: pointer;text-shadow: 0px 1px 0px #003333;}

.stepTitle {display: flex;justify-content: center;align-items: center;width: 100%;height: 80px;}
.stepTitle h3 {font-size: 1.4em;font-weight: 700;text-align: center;text-transform: none;color: var(--topicTextColor);padding: 0.5em 0;}

#onlinePayment {display: none;width: 100%;justify-content: center;align-items: center;}
.onlinePay {
    position: relative;
    cursor: pointer;
    max-width: 400px;
    height: 40px;
    font-family: var(--fontType);
    font-size: 0.925rem;
    font-weight: bold;
    color: var(--btnBasicColor);
    text-decoration: none;
    text-transform: none;
    text-shadow: 0px 1px 0px #3d768a;
    padding: 10px 20px;
    border-radius: 0.2em 0 0 0.2em;
    background: var(--btnArrowMain);
    border: none;
    display: flex;
    align-items: center;
    justify-content: center;
    box-sizing: border-box;
}

.onlinePay::after {
    content: '';
    position: absolute;
    top: 50%;
    right: -10px;
    transform: translateY(-50%);
    width: 0;
    height: 0;
    border-top: 20px solid transparent;
    border-bottom: 20px solid transparent;
    border-left: var(--btnArrowSecondary);
}
.onlinePay:hover {background: var(--btnArrowHover);}

#errorOccurred,
#cookieExpiredMessage {display: none;}
#errorOccurred {justify-content: center;align-items: center;}
.errorMessage {display: flex;flex-wrap: wrap;padding-top: 1.2em;width: 75%;}
.expiredMessage {display: flex;flex-wrap: wrap;padding-top: 1.2em;margin-left: auto;width: 80%;}
.errorMessage p,
.expiredMessage p {font-size: 1.4em;color: #A52A2A;font-style: italic;}
.resetIcon {
	display: none;
	cursor: pointer;
	width: 32px;
	height: 32px;
	background: url('home.png');
	background-size: contain;
    background-repeat: no-repeat;
    background-position: center;
}
.resetIcon:hover {
	width: 32px;
	height: 32px;
	background: url('home-hover.png');
	background-size: contain;
    background-repeat: no-repeat;
    background-position: center;
}

#stepContent {
	display: flex;
	flex-direction: column;
	justify-content: flex-start;
	align-items: center;
	width: 100%;
	height: auto;
	margin-top: 1.2em;
}

.aikaFooter {
	position: fixed;
	width: 100vw;
	height: 80px;
	background: #000;
	bottom:0;
	z-index: 1000;
}
.aikaFooter > div:last-child {
    position: absolute;
    right: 10px;
    min-width: 50px;
    height: 40px;
    top: 60%;
    transform: translateY(-50%);
}

.privacyPolicy {
    position: absolute;
    left: 10px;
    min-width: 50px;
    height: 40px;
    top: 60%;
    transform: translateY(-50%);
	white-space: nowrap;
    display: none;
}
#privacyLink {
    min-width: 50px;
    height: 40px;
}
#privacyImage {display: none;}
#privacyLink a {
    text-decoration: none;
    color: inherit;
    cursor: pointer;
}
.privacy-icon {
	width: 30px;
	height: 30px;
}

.language-dropdown {
    position: relative;
    display: inline-block;
    width: 75px;
    height: 22px;
}

.dropdown-button {
    display: flex;
    justify-content: center;
    align-items: center;
	cursor: pointer;
    width: 85px;
    height: 22px;
    background: transparent;
    border: none;
    padding: 5px;
}

.dropdown-list {
    display: none;
    position: absolute;
    background-color: white;
    border: 1px solid #ccc;
    width: 100%;
    max-height: 200px;
    overflow-y: auto;
    z-index: 1000;
    bottom: 100%;
    left: 0;
}

.language-dropdown.open .dropdown-list {
    display: block;
}

.dropdown-list li {
    padding: 8px;
    cursor: pointer;
}

.dropdown-list li:hover {
    background-color: #f0f0f0;
}

.dropdown-list img {
    width: 50px;
    height: 22px;
    object-fit: contain;
}

.aikaFooterContent {
	display: flex;
	justify-content: center;
	align-items: center;
	width: 100%;
	height: 100%;
}
	.contactInformation {
		display: flex;
		flex-direction: row;
		justify-content: space-evenly;
		width: 100%;
		max-width: 900px;
	}
	.contactInformation a {font-size: 1.4em;text-decoration: none;color: inherit;}
	.informationBox {display: flex;flex-direction: column;row-gap: 14px;}
	.informationBox p {
		display: flex;
		font-family: var(--fontType);
		font-size: 1em;
		font-weight: 500;
		line-height: 0.75em;
		justify-content: flex-start;
		align-items: center;
		text-decoration: none;
		white-space: nowrap;
	}


/* STEP 0 - SELECT WORKSTATION AREA */
.workstationAreaContent	{
	display: flex;
	flex-direction: column;
	min-width: 40%;
	max-width: 80%;
	gap: 1.6em;
}
.workstationAreaContent #bookingInfo {
    align-self: center;
}
.workstationAreaContent h3 {font-size: 28px;text-align: center;}
.workstationAreaContent button {display: block;margin-left: auto;margin-right: auto;}
.areasContainer {display: flex;flex-direction: column;font-size: 1.4em;gap: 1em;}

/* Radio buttonin ulkoasu */
.selectWorkstationArea input[type="radio"] {
    width: 20px;
    height: 20px;
    border-radius: 50%;
    background-color: #fff;
    border: 1px solid #393939;
    appearance: none;
    outline: none;
    transition: all 0.3s ease;
}

.selectWorkstationArea input[type="radio"]:checked {
    background-color: var(--areaRadioSelector);
    border-color: var(--areaRadioSelectorBorder);
    box-shadow: var(--areaRadioSelectorShadow);
}

.selectWorkstationArea input[type="radio"]:checked::after {
    content: '';
    display: block;
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background-color: #fff;
    margin: 5px auto;
}

/* Labelin tyyli */
.selectWorkstationArea label {
    margin-left: 3px;
    font-size: 1em;
    color: #333;
    cursor: pointer;
}

.areaInfo {
	margin-left: 1.35em;
}

.areaInfo span {
    display: block;
    width: 100%;
    margin-top: 0.3em;
	color: #333333;
	font-size: 0.85em;
}

.briefDescription {
    font-size: 0.75em!important;
    color: #696969!important;
    margin-top: 10px;
}

/* STEP 1 - REGNUM */
.step1 {
	display: flex;
	flex-direction: row;
	flex-wrap: wrap;
	justify-content: center;
	align-items: center;
	width: 95%;
	gap: 1.5em;
	padding: 2.4em 0 0 0;
}
.step1 input[type="text"] {
	border: 3px solid #aaa;
	border-radius: 5px;
	height: 80px;
	width: 220px;
	font-size: 2.5em;
	text-align: center;
	text-transform: uppercase;
	background: var(--inputBg);
}

.step1 input[type="text"]:focus {
    background: var(--inputFocus);
    outline: none;
}

.startBooking {
	margin-top: 0;
	display: flex;
	height: 60px;
	justify-content: center;
	align-items: center;
	font-size: 0.925em;
	font-weight: 500;
	color: #696969;
}
#resetScheduling {
    background-color: transparent;
    cursor: pointer;
    font-size: 0.85em;
    text-transform: uppercase;
    color: #363636;
    border: none;
}

#resetScheduling:hover {
    color: #20B2AA;
}

#bookingInfo,
#appointmentInfo {display: none;flex-direction: column;gap: 0.75em;margin-top: 1.2em;}
#bookingInfo {width: 75%;}
#appointmentInfo {width: 50%;}
#vehicleError {display: none;justify-content: center;width: 100%;min-height: 60px;z-index: 999;}
#vehicleError p {font-size: 1.25rem;font-weight: 600;color: #A52A2A;}

/* STEP 2 - SERVICES */
.step2 {
	display: flex;
	flex-direction: row;
	flex-wrap: wrap;
	justify-content: center;
	align-items: flex-start;
	width: 90%;
	min-width: 300px;
	gap: 3.6em;
	overflow: hidden;
	padding: 0 0 1.2em 0;
}
.step2 > div:first-child {display: flex;justify-content: flex-start;width: 75%;}
.step2 > div:last-child {display: flex;align-items: center;margin-top: 2em;gap: 0.5em;}

#bookingGroupSelector {
	display: none;
	flex-direction: column;
	justify-content: center;
	align-items: center;
	width: 100%;
	gap: 1.2em;
}
#bookingGroupSelector h3 {font-size: 1.4rem;}
.bookingGroupWrapper {
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-items: center;
	gap: 0.4em;
}
.bookingGroupButton {
    position: relative;
    cursor: pointer;
    width: 200px;
    height: 40px;
    font-family: var(--fontType);
    font-size: 20px;
    font-weight: bold;
    color: var(--btnBasicColor);
    text-decoration: none;
    text-transform: capitalize;
    text-shadow: 0px 1px 0px #3d768a;
    padding: 10px 20px;
    border-radius: 0.2em 0 0 0.2em;
    background: var(--btnArrowMain);
    border: none;
    display: flex;
    align-items: center;
    justify-content: center;
    box-sizing: border-box;
}

.bookingGroupButton::after {
    content: '';
    position: absolute;
    top: 50%;
    right: -10px;
    transform: translateY(-50%);
    width: 0;
    height: 0;
    border-top: 20px solid transparent;
    border-bottom: 20px solid transparent;
    border-left: var(--btnArrowSecondary);
}
.bookingGroupButton:hover {background: var(--btnArrowHover);}

.servicesList {display: flex;flex-direction: column;align-items: flex-start;gap: 1em;}
.servicesList p {font-size: 1.2em;}
.servicesContent,
.childServicesContent {
	display: flex;
	flex-direction: row;
	flex-wrap: nowrap;
	align-items: center;
	gap: 1em;
}
.childServicesContainer {
	display: flex;
	flex-direction: column;
	margin-left: 3.2em;
	gap: 1em;
}
.servicesContent p,
.childServicesContent p {
	white-space: wrap;
	text-overflow: ellipse;
}
.additionalServiceText {display: none;max-width: 300px;font-size:15px;color: #00008B;margin-left: 3px;white-space: pre-wrap;word-wrap: break-word;}


/* STEP 3 - CALENDAR */
.step3 {
	display: flex;
	flex-wrap: wrap;
	flex-direction: row;
	justify-content: center;
	align-items: flex-start;
	width: 95%;
	gap: 1.2em;
	padding: 0 0 1em 0;
}

.weekNav {
	display: flex;
	justify-content: center;
	gap: 0.75em;
	padding: 0.6em;
}

.navByWeek {
	display: inline-block;
	cursor: pointer;
	width: 175px;
	height: 34px;
	padding: 0.2em;
	font-size: 0.875em;
	font-weight: 550;
	color: #ffffff;
	text-transform: uppercase;
	box-shadow: 0px 10px 14px -7px #276873;
	background: var(--btnArrowMain);
    border: none;
	border-radius: 0.2em;	
}
.navByWeek2 {
    position: relative;
    cursor: pointer;
    width: 165px;
	height: 34px;
    font-family: var(--fontType);
    font-size: 0.875em;
	font-weight: 550;
    color: var(--btnBasicColor);
    text-transform: uppercase;
    text-shadow: 0px 1px 0px #3d768a;
    padding: 10px 20px;
    border-radius: 0.2em 0 0 0.2em;
    background: var(--btnArrowMain);
    border: none;
    display: flex;
    align-items: center;
    justify-content: center;
    box-sizing: border-box;
}
.navByWeek2::after {
    content: '';
    position: absolute;
    top: 50%;
    right: -10px;
    transform: translateY(-50%);
    width: 0;
    height: 0;
    border-top: 18px solid transparent;
    border-bottom: 18px solid transparent;
    border-left: var(--btnArrowSecondary);
}
.navByWeek2.btn-disabled::after {
	border-left: 10px solid #666666;
}
.navByWeek3 {
    position: relative;
    cursor: pointer;
    width: 165px;
    height: 34px;
    font-family: var(--fontType);
    font-size: 0.875em;
    font-weight: 550;
    color: var(--btnBasicColor);
    text-transform: uppercase;
    text-shadow: 0px 1px 0px #3d768a;
    padding: 10px 20px;
    border-radius: 0 0.2em 0.2em 0;
    background: var(--btnArrowMain);
    border: none;
    display: flex;
    align-items: center;
    justify-content: center;
    box-sizing: border-box;
}
.navByWeek3::after {
    content: '';
    position: absolute;
    top: 50%;
    left: -10px;
    transform: translateY(-50%);
    width: 0;
    height: 0;
    border-top: 18px solid transparent;
    border-bottom: 18px solid transparent;
    border-right: var(--btnArrowSecondary);
}
.navByWeek3.btn-disabled::after {
    border-right: 10px solid #666666;
}

.navByWeek:hover,
.navByWeek2:hover,
.navByWeek3:hover {
	background: var(--btnArrowHover);
}

#dailyView {
	display: flex;
	flex-direction: column;
	gap: .25em;
}

#dailyView > div {
	display: flex;
	justify-content: center;
	align-items: center;
}

#dailyView > div:not(:first-child):not(:nth-child(2)) {
    margin-top: 1.5em;
}

#dailyView > div:last-child {display: flex;flex-direction: row;gap: 0.5em;}

#timeSlots {width: 85%;}

.selectMonth select {
    width: 200px;
    font-size: 18px;
    border-radius: 8px;
    padding: 10px;
    background-color: var(--inputBg);
    border: 1px solid #ccc;
    transition: border 0.3s ease;
    color: #000;
    appearance: auto;
}

.selectDate select {
    width: 200px;
    font-size: 18px;
    border-radius: 8px;
    padding: 10px;
    background-color: var(--inputBg);
    border: 1px solid #ccc;
    transition: border 0.3s ease;
    color: #000;
    appearance: auto;
}

.selectDate select:hover {
    border-color: #888;
}

.selectDate select:focus {
	background-color: var(--inputFocus);
    outline: none;
    border-color: #007bff;
}

/* Estää iOS:n muuttamasta option-tekstin siniseksi */
.selectDate select option {
    padding: 8px;
    font-size: 20px;
    color: #000 !important;
    background-color: var(--inputFocus);
    -webkit-appearance: none;
    -moz-appearance: none;
    appearance: none;
}

#selectedDateTime {display: none;}
#selectedDateTime.show {display: flex;font-family: var(--fontType);min-height: 42px;gap: 0.4em;}
#selectedDateTime.show span:first-child {text-transform: uppercase;font-size: 1.2rem;color: var(--textColor1);}
#selectedDateTime.show span:last-child {font-size: 1.1rem;color: var(--highlightTextColor);}

.weekContent {
	display: flex;
	flex-direction: row;
	justify-content: center;
	align-items: flex-start;
	width: 100%;
	white-space: nowrap;
	gap: 0.5em;
}

	.weekDay {
		display: flex;
		flex-direction: column;
		justify-content: center;
		align-content: center;
		font-family: var(--fontType);
		text-align: center;
		gap: 0.5em;
	}
	.dayContent {
		display: flex;
		flex-wrap: wrap;
		justify-content: flex-start!important;
		padding: 0;
		margin: 0 auto;
		width: 100%;
		box-sizing: border-box;
		gap:0.3em;
	}
	.weekDay button {cursor: pointer;width: 75px;height: 40px;font-size: 14px;color: #000000;border-radius: 8px;}
	.dayContent > div button {cursor: pointer;width: 96px;height: 54px;font-size: 18px;color: #000000;border-radius: 8px;}
	.cellAvailable,
	.cellReserved,
	.cellSelected,
	.cellUnavailable,
	.cellBufferClosed {border:2px solid #606060; border-radius: 3px;}
	.cellAvailable {background-color: #77ff77;}
	.cellAvailable:hover {background-color:#ADFF2F}
	.cellReserved {background-color: #ff5555;cursor: not-allowed!important;}
	.cellSelected {background-color: #77ffff;}
	.cellBufferClosed {background-color: #FF8C00;}
	.cellSelected:hover {cursor: not-allowed;}
	.cellUnavailable {cursor: not-allowed!important;background-color: #ff5511;}
	.cellUnavailable:hover {cursor: not-allowed!important;background-color: #ff5511;}
	.cellBufferClosed:hover {cursor: not-allowed!important;background-color: #FF8C00;}
	#timeSlots > div button.cellSelected:hover {background-color: #7FFF00;}
	#selectedSlot {display: none;flex-direction: column;justify-content: space-evenly;width: 100%;min-height: 140px;font-size: 1.4em;font-weight: 600;text-transform: uppercase;text-align: center;color: #606060;}
	#selectedSlot > div:first-child {display: flex;justify-content: center;gap: 0.4em;}
	#selectedSlot > div:last-child {display: flex;justify-content: center;align-items: center;gap: 0.5em;}
	.selectedDateTime {font-size:0.925em;color:var(--highlightTextColor);}
	.dayAbbreviation {display: none;}

	#freeTimeLoader {
		display: none;
		opacity: 0;
		transition: opacity 0.3s ease;
		justify-content: center;
		align-items: center;
		width: 100%;
		height: 220px;
	}

	#freeTimeLoader.show {
		display: flex;
		opacity: 1;
	}

	/* Spinner-efekti */
	.loader {
		position: relative;
		width: var(--spinnerSize, 120px);
		height: var(--spinnerSize, 120px);
		perspective: 1000px;
	}

	.loader::before {
		content: "";
		position: absolute;
		inset: 0;
		border-radius: 50%;
		background: var(--spinnerGradient, conic-gradient(from 0deg, #3498db, #f3f3f3, #3498db));
		animation: spin var(--spinnerSpeed, 2s) linear infinite;
		mask: radial-gradient(farthest-side, transparent var(--spinnerMaskInner, 60%), black calc(var(--spinnerMaskInner, 60%) + 1%));
		-webkit-mask: radial-gradient(farthest-side, transparent var(--spinnerMaskInner, 60%), black calc(var(--spinnerMaskInner, 60%) + 1%));
	}

	.loader-icon {
		position: absolute;
		top: 50%;
		left: 50%;
		transform: translate(-50%, -50%);
		width: var(--spinnerCenterSize, 48px);
		height: var(--spinnerCenterSize, 48px);
		background-image: var(--spinnerCenterImage);
		background-repeat: no-repeat;
		background-position: center;
		background-size: contain;
		pointer-events: none;
		animation: var(--spinnerCenterAnimate);
		transform-style: preserve-3d;
		backface-visibility: hidden;
	}

	/* Pyörimis-animaatio */
	@keyframes spin {
		0% { transform: rotate(0deg); }
		100% { transform: rotate(360deg); }
	}

	@keyframes coinSpin {
		0% {
			transform: translate(-50%, -50%) rotateY(0deg) scaleX(1);
		}
		47% {
			transform: translate(-50%, -50%) rotateY(170deg) scaleX(0.1);
		}
		50% {
			transform: translate(-50%, -50%) rotateY(180deg) scaleX(0.05);
		}
		53% {
			transform: translate(-50%, -50%) rotateY(190deg) scaleX(0.1);
		}
		100% {
			transform: translate(-50%, -50%) rotateY(360deg) scaleX(1);
		}
	}

/* STEP 4 - CUSTOMER INFO FIELDS */
.step4 {
	display: flex;
	flex-wrap: wrap;
	flex-direction: column;
	justify-content: flex-start;
	align-items: center;
	width: 80%;
	gap: 1.2em;
	padding: 0 0 1.2em 0;
}
.step4 > div:last-child {display: flex;align-items: center;gap: 0.5em;}
.customerGuidance {width: 85%;font-size: 1.4em;font-weight: 500;margin-top: 0;text-align: center;text-transform: none;color: var(--topicTextColor);padding: 0.5em 0;}
.customerInformationContent {display: flex;flex-direction: column;justify-content: flex-start;gap: 0.3em;}

.customerInformationField {
		display: flex;
		flex-direction: row;
		align-items: center;
		gap: 1.2em;
	}
	.customerInformationField input[type="text"],
	.customerInformationField input[type="email"],
	.customerInformationField input[type="tel"],
	.customerInformationField input[type="number"] {
		width: 350px;
		height: 35px;
		font-size: 1.15em;
		padding: 0.2em;
		background: var(--inputBg);
		border: var(--inputBorder);
		border-radius: 0.3em;
	}
	.customerInformationField textarea {
		width: 350px;
		height: 80px;
		max-height: 240px;
		font-family: var(--fontType);
		font-size: 1.15em;
		padding: 0.2em;
		background: var(--inputBg);
		border: var(--inputBorder);
		border-radius: 0.3em;
		resize: vertical;
	}
	.customerInformationField input[type="text"]:focus,
	.customerInformationField input[type="email"]:focus,
	.customerInformationField input[type="tel"]:focus,
	.customerInformationField input[type="number"]:focus,
	.customerInformationField textarea:focus {background: var(--inputFocus);}
	
	.customerDataItem,
	.customerDataRequired {
		width: 180px;
		text-transform: none;
	}
	.customerDataRequired {
		font-size: 1.15em;
		font-weight: bold;
	}
	.customerOptionalItem {
		width: 90%;
		font-size: 1em;
		text-transform: none;
	}
	.customerDataRequired {color: var(--attentionTextColor);}
	.additionalOptions {
		width: 24px;
		height: 24px;
		background: var(--inputBg);
		border-radius: 0.3em;
		border: var(--inputBorder);
		cursor: pointer;
	}
	.discountCode,
	.odometerReading {display: none;}


/* STEP 5 - BOOKING CONFIRMATION */
.step5 {
	display: flex;
	flex-wrap: wrap;
	flex-direction: column;
	justify-content: flex-start;
	align-items: center;
	width: 80%;
	gap: 1.2em;
	padding: 0 0 1.2em 0;
}
.step5 > div:last-child {display: flex;align-items: center;gap: 0.5em;}

.termsConfirmation {display: flex;flex-direction: column;justify-content: center;align-items: center;width: 100%;gap: 0.7em;}
.termsConfirmation > div {display: flex;justify-content: center;align-items: center;gap: 0.3em;}
.termsConfirmation p {font-size: 1.15em;font-weight: 500;white-space: nowrap;}
.acceptTerms {
	width: 24px;
	height: 24px;
	border-radius: 0.3em;
	border: 2px solid #000;
	cursor: pointer;
}

.additionalOptions:checked,
.acceptTerms:checked {
	background-color: #007bff;
	border-color: #0056b3;
}

.schedulingInformationSummary,
.schedulingServicesSummary {
	display: flex;
	flex-direction: column;
	justify-content: flex-start;
	width: 100%;
	border: var(--contentAreaBorder);
	overflow: hidden;
}
.serviceSums {font-weight: 700;}
.informationContent > div,
.schedulingServicesSummary > div {
	display: flex;
	justify-content: flex-start;
	align-items: center;
	width: 100%;
	min-height: 25px;
	padding: 0.25em;
}
.schedulingInformationSummary > div {flex-direction: column;}
.schedulingServicesSummary > div {flex-direction: row;}
.schedulingInformationSummary > div:nth-child(even),
.schedulingServicesSummary > div:nth-child(even) {background-color: var(--evenRowBg);}
.schedulingInformationSummary > div:nth-child(odd),
.schedulingServicesSummary > div:nth-child(odd) {background-color: var(--oddRowBg);}
.informationContent > div span {width: 50%;}

.informationTopics {font-weight: 700;padding: 0.25em;}
.serviceTopics {font-weight: 700;}
.serviceTopics > div:first-child,
.serviceSums > div:first-child {width: 50%;}
.serviceTopics > div:nth-child(2),
.serviceSums > div:nth-child(2) {width: 25%;}
/*.schedulingInformationSummary > div span:first-child,*/
.informationTopics > div:first-child,
.schedulingServicesSummary > div:first-child,
.serviceSums > div:first-child {text-transform: uppercase;}
.schedulingServicesSummary > div:last-child {justify-content: center;}

#serviceSelected {display: flex;flex-direction: column;gap: 0.6em;}
#serviceSelected > div {display: flex;flex-direction: row;width: 100%;}
#serviceSelected > div > div:first-child {display: flex;flex-direction: column;width: 50%;gap: 0.3em;}
#serviceSelected > div > div:nth-child(2),
#serviceSelected > div > div:nth-child(3) {width: 25%;}
#serviceSelected > div span {color: var(--textColor2);padding: 0 0.4em;}
.schedulingInformationSummary #selectedTime {display: flex;flex-direction: row;gap: 0.2em;}
#selectedDate {white-space: nowrap;text-transform: none!important;}
#selectedDate:first-letter {text-transform: uppercase;}
#selectedTime {color: var(--highlightTextColor);font-weight: 600;}
.workingTime {font-weight:normal;margin-left: 5px;text-transform:none;color:var(--attentionTextColor);white-space:normal;}
.optionalChoices {display: none;}
.riskGroup,
.waitingCarDuringWork,
.workInvoiced {display: none;}

	/* TERMS OF SERVICE POPUP */
	#terms {
		position: fixed;
		width: 70%;
		max-width: 1240px;
		height: auto;
		max-height: 75%;
		top: 11%;
		left: 15%;
		background-color:rgba(0, 0, 0, 0.92);
		border: 2px solid #aaa;
		border-radius: 0.75em;
		overflow-x: hidden;
		overflow-y: auto;
		z-index: 4;
	}
	
	#termsTop {
		position: static;
		cursor: move;
		width: 100%;
		height: 36px;
		text-align: center;
		background-color: #000;
	}
	
	#termsBottom {
		display: flex;
		align-items: center;
		justify-content: center;
		position: static;
		width: 100%;
		height: 42px;
		text-align: center;
		background-color: #000;
	}
	
	#termsTop p {
		width: 90%;
		display: inline-block;
		font-size: 1.2em;
		font-weight: 600;
		margin-top: 5px;
		color: #FFD700;
		text-transform: uppercase;
		white-space: nowrap;
		padding: 0 10px;
		overflow: hidden;
	}
	
	.terms-overlay {
		position: fixed;
		width: 100%;
		background: rgba(0, 0, 0, 0.95);
		transition: opacity 500ms;
		visibility: hidden;
		opacity: 0;
	}
	.terms-overlay:target {visibility: visible;opacity: 1;}

	#termsTop .terms-close {
		position: absolute;
		top: -.2em;
		right: .2em;
		transition: all 200ms;
		font-size: 34px;
		font-weight: bold;
		text-decoration: none!important;
		color: #F8F8FF!important;
		transition: color 0.95s;
	}
	#termsTop .terms-close:hover {color: #B22222!important;transition-delay: 0.15s;}
	.termsTopic {font-size: 1em;text-transform: uppercase;}
	/*.popup-content {margin-top: -20px;}*/
	.popup-content p {padding: 12px 24px;color: #F8F8FF;overflow-x:hidden;overflow-y: auto;}
	.bookingTermsTitle {color: #DAA520;font-weight: bold;}

/* STEP 6 - FINAL SUMMARY */
.step6 {
	display: flex;
	flex-wrap: wrap;
	flex-direction: column;
	justify-content: flex-start;
	align-items: center;
	width: 80%;
	gap: 2.6em;
	padding: 0 0 1.2em 0;
}
.step6 > div:first-child {display: flex;flex-direction: column;align-items: center;max-width: 600px;gap: 0.75em;}
.step6 > div:first-child > p:first-child {font-size: 1.2em;font-weight: 700;}
.step6 > div:last-child {display: flex;align-items: center;gap: 1.6em;}

.bookingConfirmationContainer {display: flex; flex-direction: column;border: 1px solid #c0c0c0;width: 600px;padding: 0.4em;gap: 1.8em;}
.bookingConfirmationContent0 {display: flex;justify-content: space-between;font-family: "Courier New", Courier, monospace;}
.bookingConfirmationContent1 {display: flex;flex-direction: column;justify-content: center;width: 100%;font-family: "Courier New", Courier, monospace;gap: 1.2em;}
.bookingConfirmationContent2,
.bookingConfirmationContent3,
.bookingConfirmationContent4 {display: flex;flex-direction: column;align-items: center;width: 100%;font-family: "Courier New", Courier, monospace;gap: 0.3em;}
.bookingConfirmationContent1 > div,
.bookingConfirmationContent2 > div,
.bookingConfirmationContent3 > div,
.bookingConfirmationContent4 > div {width: 100%;}
.bookingConfirmationContent1 > div > div:first-child {display: flex;flex-direction: column;}
.bookingConfirmationContent1 > div:first-child {height: 48px;font-size: 1.5em;font-weight: 600;text-align: center;text-transform: uppercase;}
.bookingConfirmationContent2 > div:first-child,
.bookingConfirmationContent3 > div:first-child {height: 1.2em;font-size: 1.1em;font-weight: 500;text-transform: uppercase;}

#confirmedServices {display: flex;flex-direction: column;gap: 0.6em;}
#confirmedServices > div {display: flex;flex-direction: row;width: 100%;}
#confirmedServices > div > div:first-child {display: flex;flex-direction: column;width: 70%;gap: 0.3em;}
#confirmedServices > div > div:nth-child(2),
#confirmedServices > div > div:nth-child(3) {width: 15%;}
#confirmedServices > div span {padding: 0 0.6em;}
.confirmedSums {display: flex;flex-wrap: nowrap;text-transform: uppercase;font-weight: 600;margin-top: 0.3em;}
.confirmedSums > div:first-child {width: 70%;}
.confirmedSums > div:nth-child(2),
.confirmedSums > div:nth-child(3) {width: 15%;}

.printConfirmation {
	cursor: pointer;
	width: 48px;
	height: 48px;
	background: url('icon-print.png') transparent no-repeat;
	background-size: 44px 40px;
	background-position: center;
	border: none;
}
.printConfirmation:hover {
	background: url('icon-print-hover.png') transparent no-repeat;
	background-size: 44px 40px;
	background-position: center;
}


/* DEBUGGING */
#selectedServicesFromCookies {
	display: flex;
	flex-direction:column;
}
#selectedServicesFromCookies p {text-align: center;}
#selectedServicesFromCookies > div {display: flex;flex-direction: column;}
#selectedServicesFromCookies > div:last-child span {color: #FF8C00;}

.service,
.childService {
	display: flex;
	flex-direction: column;
	justify-content: flex-start;
	border:2px solid red;
	font-size:24px;
}
.service p,
.childService p {align-self: flex-start;margin:0;}

#showSelectedServices,
#selectedServicesFromCookies, 
#showHostsSettings {
	display: flex;
	flex-direction: column;
	align-items: center;
	margin: auto;
	background: #303030;
	color: #F0F8FF;
	min-width: 280px;
	max-width: 98%;
	min-height: 80px;
	padding: 0.6em;
	border: none;
	border-radius: 0.3em;
	gap: 0.4em;
	font-size: 0.925em;
	white-space: word-wrap;
	overflow: auto;
	padding-bottom: 40px;
}
#showMeAPI {
	display: none;
	flex-direction: column;
	align-items: flex-start;
	color: #F0F8FF;
	background: #303030;
	position: fixed;
    left: 50%;
    bottom: 8%;
    transform: translateX(-50%);
	width: 70vw;
	max-width: 90vw;
	max-height: 60%;
	padding: 1em;
	border: none;
	border-radius: 0.3em;
	font-size: 1em;
	z-index: 999;
	hyphens: auto;
	overflow-x: hidden;
}
#showMeAPI span {display: none;margin: auto;text-align: center;}
.apiTitle {font-size: 1.4em;color: #FFD700;text-transform: uppercase;}

#apiButton {
	display: flex;
    background: #101010;
    color: #F0F8FF;
    border: none;
    border-radius: 0.3em;
    padding: 0.5em 1em;
    cursor: pointer;
    position: fixed;
    left: 50%;
    bottom: 6%;
    transform: translateX(-50%);
    font-size: 1em;
    z-index: 1000;
}

/* BUTTONS */
.nextStep,
.prevStep,
.notAvailable {
	display: inline-block;
	width: 136px;
	height: 48px;
	font-family: var(--fontType);
	font-size: 20px;
	font-weight: bold;
	text-decoration: none;
	text-transform: capitalize;
	text-shadow: 0px 1px 0px #696969;
	border-radius: 0.4em;
}
.nextStep.confirm {width: auto;min-width: 200px;text-transform: none;}

.nextStep,
.prevStep {
	cursor: pointer;
	color: var(--btnBasicColor);
	box-shadow: 0px 10px 14px -7px #575757;
	background: var(--btnBasic);
}

.nextStep:hover,
.prevStep:hover,
.readTerms:hover {
	color: var(--btnBasicColorHover);
	background: var(--btnBasicHover);
}

.notAvailable {
	cursor: not-allowed;
	color: var(--btnBasicInactiveColor);
	box-shadow: 0px 6px 10px -5px #aaaaaa;
	background: var(--btnBasicInactive);
}

.readTerms {
	display: inline-block;
	width: 260px;
	height: 48px;
	cursor: pointer;
	color: #F8F8FF;
	font-family: var(--fontType);
	font-size: 20px;
	font-weight: bold;
	text-decoration: none;
	text-transform: capitalize;
	text-shadow: 0px 1px 0px #696969;
	border-radius: 0.8em 0.3em;
	box-shadow: 0px 10px 14px -7px #575757;
	background: var(--btnBasic);
}

/* ORIGINALS */
.serviceButton {
	cursor: pointer;
	min-width: 50px;
	width: 50px;
	height: 45px;
	background: var(--serviceSelectBg);
	border: var(--serviceSelectBorder);
	border-radius: 3px;
}
.serviceButton.box {
	min-width: 50px;
	width: 50px;
	height: 45px;
	border-radius: 3px;
}
.serviceButton.radio {
	min-width: 45px;
	width: 45px;
	height: 45px;
	border-radius: 50%;
}
.serviceButton:focus {background: var(--serviceSelectBgFocus);}

.painike {
	box-shadow: 0px 10px 14px -7px #276873;
	background:linear-gradient(to bottom, #408c99 5%, #008080 100%);
	background-color:#599bb3;
	border-radius:8px;
	display:inline-block;
	cursor:pointer;
	color:#ffffff;
	font-family:Arial;
	font-size:20px;
	font-weight:bold;
	padding:13px 32px;
	text-decoration:none;
	text-shadow:0px 1px 0px #3d768a;
}
.painike:hover {
	background:linear-gradient(to bottom, #599bb3 5%, #408c99 100%);
	background-color:#408c99;
}
.painike:active {
	position:relative;
	top:1px;
}

.painike2 {
	box-shadow: 0px 3px 5px -3px #91b8b3;
	background:linear-gradient(to bottom, #808080 5%, #696969 100%);
	background-color:#768d87;
	border-radius:8px;
	display:inline-block;
	cursor:not-allowed;
	color:#ffffff;
	font-family:Arial;
	font-size:20px;
	font-weight:bold;
	padding:13px 32px;
	text-decoration:none;
	text-shadow:0px 1px 0px #3d768a;
}
.painike3 {
	box-shadow: 0px 10px 14px -7px #276873;
	background:linear-gradient(to bottom, #408c99 5%, #008080 100%);
	background-color:#599bb3;
	border-radius:8px;
	display:inline-block;
	width: 64px;
	height: 32px;
	cursor:pointer;
	color:#ffffff;
	font-family: var(--fontType);
	font-size:16px;
	font-weight:bold;
	text-transform: uppercase;
	text-decoration:none;
	text-shadow:0px 1px 0px #3d768a;
}
.painike3:hover {
	background:linear-gradient(to bottom, #599bb3 5%, #408c99 100%);
	background-color:#408c99;
}


/* MEDIA RULES */
@media screen and (min-width: 1400px) {
	.workingTime {font-size: 1em;}
	.dayContent > div button {width: 112px;height: 64px;font-size: 22px;}
}

@media screen and (min-width: 1000px) {
	.servicesList p {font-size: 1.4em;}
	.weekDay button {
		width: 105px;
		height: 56px;
	}
	.weekDay button {font-size: 1.15em;}
	.informationBox {font-size: 1.2em;}
}

@media screen and (max-width: 1000px) {
	.aikaContent {width: 800px;}
	.weekDay button {width: 90px;height: 48px;}
	.schedulingInformationSummary #selectedTime {flex-direction: column;gap: 0;}
}

@media screen and (min-width: 720px) and (max-height: 1000px) {
	.aikaHeader > div img {max-height: 60%;}
}

@media screen and (max-height: 800px) {
	.aikaHeader {max-height: 60px;}
	.aikaContent {height: calc(100vh - var(--header-height) - 80px);}
	.aikaFooter {height: 40px;}
	.informationBox > p:nth-child(even) {display: none;}
}

@media screen and (max-width: 720px) and (max-height: 820px) {
	.aikaHeader > div:nth-child(3) {
        display: none !important;
    }
	.aikaHeader > div img {
		max-width: 95%;
		max-height: calc(var(--header-height) * 0.9);
		height: auto;
		object-fit: contain;
		display: block;
		margin: auto 0;
	}
	.aikaContent {height: calc(100vh - var(--header-height) - 80px);}
	.aikaFooter {height: 40px;}
	.informationBox > p:nth-child(even) {display: none;}
}

@media screen and (min-width: 720px) and (max-height: 800px) {
	/*.aikaHeader {display: none;}*/
}

@media screen and (max-width: 800px) {
	.aikaContent {width: 100%;height: calc(100vh - var(--header-height) - 80px);}
	.aikaFooter {height: 40px;}
	.informationBox > p:nth-child(even) {display: none;}
	.contactInformation a {font-size: 1em;}
	.dropdown-button {margin-top: 0.3em; padding: 0;}
	.bookingConfirmationContainer {max-width: 540px;font-size: 0.925em;padding: 0.4em;gap: 1.8em;}
}

@media screen and (min-width: 701px) and (max-width: 1600px) {
	.navCell {width: 155px;}
}

@media screen and (max-width: 700px) {
	.navigateReduced {display: flex;}
	.navigate {display: none!important;}
	.navigate {max-height: 100px;}
	.navCell {width: 92px;}
	.navCell p {overflow-wrap: anywhere;hyphens: auto;}
	.weekDay button {width: 75px;height: 40px;}
	.dayContent > div button {width: 85px;height: 48px;}
	.weekContent,
	.weekContent > div {gap: 0.3em;}
	#selectedSlot {flex-wrap: wrap;gap: 0.5em;}
	.year,
	.dateYear,
	.dayNonAbbreviation {display: none;}
	.dayAbbreviation {display: inline-block;}
	.debugHeader {flex-wrap: wrap;height: auto;gap: 0.4em;}
	#debugContent {max-width: 75vw;}
}

@media screen and (max-width: 650px) {
	.weekNav {flex-wrap: wrap;}
	.weekNav > div {display: flex;}
	.weekNav > div:nth-child(2) {justify-content: center;order: 1;width: 90%;}
	.weekNav > div:nth-child(1) {justify-content: flex-end;order: 2;width: 45%;}
	.weekNav > div:nth-child(3) {justify-content: flex-start;order: 3;width: 45%;}
	#currentWeek.navByWeek {border-radius: 1em 1em 0.5em 0.5em;}
	.navByWeek {height: 32px;font-size: 0.725em;}
	#currentWeek.navByWeek {width: 312px;}
	#previousWeek.navByWeek3,
	#nextWeek.navByWeek2 {width: 150px;}
	#selectedSlot {font-size: 1em;}
	#timeSlots {width: 90%;}
	#selectedDateTime.show {flex-direction: column;font-size: 0.925rem;}
	.selectWorkstationArea {font-size: 0.85em;}
	.serviceButton {min-width: 40px;width: 40px;height: 36px;}
	.serviceButton img {max-width: 30px;}
	.additionalServiceText {max-width: 200px;}
	.customerGuidance {font-size: 1em;}
	.termsConfirmation p {font-size: 0.875em;}
	.contactInformation {flex-direction: column;align-items: center;width: 50%;gap: 0.4em;}
}

@media screen and (max-width: 600px) {
	.step1 input[type="text"] {height: 54px;width: 148px;font-size: 1.6em;}
	.step3 {width: 99%;}
	.step6 {width: 95%;}
	.customerDataItem, 
	.customerDataRequired {
		width: 140px;
		font-size: 0.925em;
	}
	.customerInformationField input[type="text"],
	.customerInformationField input[type="number"], 
	.customerInformationField textarea {
		width: 220px;
		font-size:16px;
	}
	.customerInformationField input[type="text"],
	.customerInformationField input[type="number"] {height: 26px;}
	.termsConfirmation {flex-direction: column;/*align-items: flex-start;*/gap: 8px;}
	.schedulingInformationSummary {font-size: 0.925em;}
	.step6 > div:first-child {max-width: 400px;}
	.bookingConfirmationContainer {max-width: 400px;font-size: 0.85em;padding: 0.2em;gap: 1.4em;}
}

@media screen and (max-width: 575px) {
	#privacyLink {display: none!important;}
	#privacyImage {display: flex;}
	.weekDay button {width: 64px;height: 40px;}
	#selectedSlot > div:first-child {flex-direction: column;}
	.step4,.step5 {width: 95%;}
}

@media screen and (max-width: 460px) and (max-height: 1200px) {
	html {font-size: 14px;}
	.informationBox > p:nth-child(even) {display: none;}
	.service,
	.childService {font-size: 18px;}
	.serviceButton img {max-width: 25px;}
	.weekContent {min-width: 340px;}
	.additionalOptions,
	.acceptTerms {
		width: 16px;
		height: 16px;
		border-radius: 0.2em;
	}
}

@media screen and (max-width: 460px) {
	#stepContent {margin-top: 0.6em;}
	.step2 {gap: 1.2em;}
	.step2 > div:first-child {width: 95%;}
	#weeklyView {width: 100%;}
	.weekContent {/*justify-content: initial;overflow-x: auto;max-width: calc(100% - 30px);*/}
	.navByWeek,
	.navByWeek2,
	.navByWeek3 {font-size: 1em;}
	.customerGuidance {font-size: 0.85em;}
	.customerDataItem, 
	.customerDataRequired {
		max-width: 120px;
		font-size: 0.925em;
	}
	.customerInformationField input[type="text"],
	.customerInformationField input[type="number"], 
	.customerInformationField textarea {
		width: 200px;
		font-size:16px;
	}
	#terms {width: 90%;left: 5%;}
	
	.navButtonActive,
	.navButtonPrev,
	.navButtonNext,
	.navButtonInactive,
	.navButtonCompleted {width: 3rem;height: 3rem;}
	
	.servicesList,
	.childServicesContainer {gap: 0.7em;}
	.additionalServiceText {font-size: 14px;}
}

@media screen and (max-width: 460px) and (max-height: 1000px) {
	#stepContent {
		padding-bottom: 100px;
	}
}

@media screen and (max-width: 400px) {
	.aikaWrapper {overflow: hidden;}
	.aikaContent,
	.aikaHeader,
	.aikaFooter {min-width: 300px;}
	.aikaHeader > div:nth-child(3) {
        display: none !important;
    }
	.aikaHeader > div img {
		max-width: 95%;
		max-height: calc(var(--header-height) * 0.9);
		height: auto;
		object-fit: contain;
		display: block;
		margin: auto 0;
	}
	.step2 {display: flex;justify-content: flex-start;}
    .step2 > :last-child {
        margin-left: auto;
        margin-right: auto;
        justify-content: center;
    }
	.servicesList p {font-size: 1em;}
	#timeSlots {width: 75%;}
	.customerDataItem, 
	.customerDataRequired {
		font-size: 0.85em;
	}
	.customerInformationField input[type="text"],
	.customerInformationField input[type="number"], 
	.customerInformationField textarea {
		width: 180px;
	}
	.bookingConfirmationContainer {max-width: 300px;font-size: 0.8em;padding: 0.2em;gap: 1.2em;}
}

@media screen and (min-width: 360px) and (max-width: 1000px) and (max-height: 850px) {
	.informationBox > p:nth-child(even) {display: none;}
}

@media screen and (max-height: 360px) {
	.aikaFooter {display: none;}
	.aikaContent {height: 100%;}
}

@media screen and (max-width: 340px) {
	.informationBox > p:nth-child(even) {display: none;}
}


/* MEDIA PRINT */
@media print {
	/* Piilotetaan kaikki muut elementit */
	body * {
		visibility: hidden;
	}
	
	body[class] {
		background: var(--printBackground, #fff) !important;
		background-size: cover;
		box-shadow: none;
		border: none;
		-webkit-print-color-adjust: exact;
		print-color-adjust: exact;
	}

	body {
		-webkit-print-color-adjust: exact; /* Chrome ja Safari */
		print-color-adjust: exact; /* Muut selaimet */
	}
	
	.bookingConfirmationContainer, .bookingConfirmationContainer * {
		visibility: visible;
	}

	/* Varmistetaan, että tulostettava sisältö säilyttää sijoittelunsa ja skaalautuu oikein */
	.bookingConfirmationContainer {
		position: absolute;
		top: 0;
		left: 0;
		width: 100%;
		padding: 20mm;
		box-sizing: border-box;
		border: none;
		font-size: var(--printFontSize, 14pt);
	}

	/* Skaalataan A4-koon mukaan */
	@page {
		size: A4;
		margin: 10mm;
	}
}