
/* ==========================================================================
							Index styling 
========================================================================== */
body {
	background-color: #fff;
	font-family: -apple-system, system-ui, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
	font-size: 14px;
}

/* ==========================================================================
							Cal styling 
========================================================================== */

.calendarBox {
	position: relative;
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	grid-template-rows: auto auto auto auto auto auto auto;
	column-gap: 0px;
	row-gap: 0px;
    justify-content: center;
    align-items: center;
	margin: auto;
	padding: 10px;
	max-width: 680px;
}

form[name="BookingCalendar"] {
    display: contents; /* This makes the form act as if it's not there, so its children are direct grid items */
}

.ylavalinnat {
	grid-column-start: 1;
	grid-column-end: 2;
	grid-row: 1;
	height: 100%; 
	width: 100%;
}

.monthSelection,
.yearSelection {
	display: none !important;
}

.tbl-dropdown{
	width: 100%
}

.dropdown{
    box-sizing: border-box;
    border: 1px solid #ccc;
    border-radius: 4px;
	font-family: -apple-system,system-ui,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
	font-size: 14px;
	min-width: 175px;
	max-width: 100%;
	box-shadow: 0 2px 2px rgba(0,0,0,0.2);
}

.dropdown:focus {
	border-color: #999999; 
	outline: none;
}

.dropdown {
	background-color: #FFFFFF;
}
  
.dropdown option {
	background-color: #FFFFFF;
}

.yhteystiedot {
	display: flex;
	justify-content: flex-end; 
	align-items: start; 
	text-align: right;
	grid-column-start: 2;
	grid-column-end: 3;
	grid-row: 1;
	height: 100%;
	width: 100%;
}

.yhteystiedot-table {
	border-collapse: collapse;
}

.yhteystiedot-table td,
.yhteystiedot-table th {
	padding: 0;
}

.calendar-navigation {
	grid-column-start: 1;
	grid-column-end: 3;
	grid-row: 2;
	background: linear-gradient(to right, #cccccc, #999999);
	background-size: cover, auto;
	display: grid;
	width: 100%;
    grid-template-columns: 1fr auto 1fr;
    align-items: center;
    justify-items: center;
    gap: 10px;
	padding-top: 20px;
	padding-bottom: 20px;
	border-top-right-radius: 10px;
	border-top-left-radius: 10px;
	box-shadow: 0px -1px 2px rgba(0, 0, 0, 0.25);
	text-shadow: 0px 1px 3px rgba(0, 0, 0, 0.25);
	margin-top: 10px;
	position: relative;
}

.calendar-navigation::before {
    content: '';
    position: absolute;
    top: 5px;
    left: 0;
    right: 0;
    bottom: 0;
    /*background-image: url(images/oga-pattern.png);
    background-repeat: repeat;
	background-size: 50px 70px;*/
    opacity: .03;
    pointer-events: none;
}

.paivatitle {
	grid-column: 2;
    font-weight: bold;
    font-size: 20px;
    text-align: center;
	color: #FFFFFF;
}

.PreviousMonth {
    grid-column: 1;
	justify-self: end;
}

.NextMonth {
    grid-column: 3;
	justify-self: start;
}

.PreviousMonth, .NextMonth {
	background: transparent;
	border: none;
    border-radius: 50%;
    color: #FFFFFF;
    cursor: pointer;
	display: flex;
	align-items: center;
    justify-content: center;
    font-family: -apple-system, system-ui, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
    font-size: 20px;
    font-weight: bold;
	width: 35px;
    height: 35px;
    outline: transparent;
    text-align: center;
    text-decoration: none;
    transition: box-shadow .3s ease-in-out, background-color .3s ease-in-out, color .3s ease-in-out;
    -webkit-user-select: none;
	user-select: none;
    touch-action: manipulation;
    white-space: nowrap;
}

.PreviousMonth:not([disabled]):focus,
.PreviousMonth:not([disabled]):hover {
    box-shadow: 0 0 .5rem rgba(0, 0, 0, 0.5), 0 0 0 4px #FFFFFF;
    background: #FFFFFF;
    color: #000000;
}

.NextMonth:not([disabled]):focus,
.NextMonth:not([disabled]):hover {
    box-shadow: 0 0 .5rem rgba(0, 0, 0, 0.5), 0 0 0 4px #FFFFFF;
    background: #FFFFFF;
    color: #000000;
}

.grid-container-calendar {
	grid-column-start: 1;
	grid-column-end: 3;
	grid-row: 3;
    display: grid;
    grid-template-columns: repeat(7, 1fr);
    gap: 1px;
    justify-content: center; 
    align-items: center;
    margin: 0 auto; 
	width: 100%;
	border-bottom-right-radius: 10px;
    border-bottom-left-radius: 10px;
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.2);
    background-color: #fff; 
    padding: 20px; 
	box-sizing: border-box; 
}

.calendarFloat {
	position: relative; 
	min-width: 50px; 
    max-width: 100px; 
    margin: 1px;
	height: 35px;
    text-align: center; 
	border-radius: 5px; 
	display: flex;
    align-items: center;
    justify-content: center;
}

.calendarFloat:hover {
	outline: 1px solid #cac8c8;
}

.calendarFloat.hover-effect{
	background-color: #96cc00 !important;
    transition: background-color 0.25s ease-in;
}

.paivat:hover {
	outline: 0px solid #cac8c8;
}

.paivat{
	font-weight: bold;
	color: #333;
	display: block;
	margin: 0 auto;
}

.emptyDays:hover {
	outline: 0px solid #cac8c8;
}

.alanapit {
	padding: 10px;
	grid-column-start: 1;
	grid-column-end: 3;
	grid-row: 4;
	font-size: 12px;
	color: #616161;
}

.status-icon {
    vertical-align: middle;
}

.valitse {
	position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    grid-column-start: 1;
    grid-column-end: 3;
    grid-row-start: 3;
	grid-row-end: 3;
    display: flex; 
	justify-content: center;
    align-items: center; 
    width: 100%;
    height: 100%;
    background: rgba(255, 255, 255, 0.7);
	color: black;
    font-weight: bold;
    font-size: 18px;
    z-index: 2; 
    border-radius: 10px; 
}

.maara {
    font-size: 9px;
    position: absolute;
    right: 3px;
    top: 3px;
    z-index: 1; 
	background-color: whitesmoke;
	color: #000;
	font-weight: bold;
	border: 0px solid whitesmoke;
	border-radius: 50%;
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.5); 
	padding: 6px;
	display: flex;
	justify-content: center;
	align-items: center;
	width: 8px;
	height: 8px;
	box-sizing: border-box;
}

input.dayinput, .tyhjapaiva {
	position: relative;
    text-align: center;
    background: none;
    width: 100%;
    cursor: pointer;
	justify-content: center;
}

input.dayinput {
    border: none
}

.tyhjapaiva {
    cursor: default;
}

.available-slot {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
	height: 100%;
}

h3.vapaa {
	grid-column-start: 1;
    grid-column-end: 3;
	grid-row: 5;
}

.reservation-slots {
	grid-column-start: 1;
    grid-column-end: 3;
	grid-row: 6;
	align-items: center;
	width: 100%;
    border: 0px solid #616161;
    border-radius: 10px; 
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.5); 
    background-color: #fff; 
    padding: 15px; 
	box-sizing: border-box; 
	font-family: -apple-system, system-ui, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
	font-size: 15px;
}

.vapaatajat {
	font-size: 16px;
	font-weight: bold;
}

.tulosta-icon {
	border: none;
    background: none;
	cursor: pointer;
	padding-left: 5px;
}

.reservation-table {
	width: 100%;
	border-collapse: collapse;
}

.reservation-table td{
	height: 35px;
	border-bottom: 1px solid #727272;
}

.reservation-table td, th{
	text-align: left;
	padding: 5px;
}

.varaa-button-container{
	text-align: right !important;
}

.varaa-button {
	background: linear-gradient(to bottom right, #cccccc, #999999);
	border: none;
	border-radius: 12px;
	color: #FFFFFF;
	cursor: pointer;
	display: inline-block;
	font-family: -apple-system, system-ui, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
	font-size: 15px;
	font-weight: 500;
	line-height: 1.9;
	outline: transparent;
	padding: 0 0.8rem;
	text-align: center;
	text-decoration: none;
	transition: box-shadow .2s ease-in-out;
	-webkit-user-select: none;
	user-select: none;		
	touch-action: manipulation;
	white-space: nowrap;
}

.varaa-button:focus {
    box-shadow: 0 0 .25rem rgba(0, 0, 0, 0.3), -.125rem -.125rem 1rem rgba(150, 150, 150, 0.6), .125rem .125rem 1rem rgba(120, 120, 120, 0.6);
}

.varaa-button:hover {
	box-shadow: 0 0 .25rem rgba(0, 0, 0, 0.3), -.125rem -.125rem 1rem rgba(150, 150, 150, 0.6), .125rem .125rem 1rem rgba(120, 120, 120, 0.6);
}

.footer {
	text-align: right;
    width: auto;
	height: auto;
    font-size: 12px;
    color: #cac8c8;
    grid-column-start: 1;
    grid-column-end: 3;
    grid-row: 7;
	padding-top: 25px;
}

/* ==========================================================================
							@media Print action styling 
========================================================================== */

@media print {

	body, html {
        height: 100%;
		width: 100%;
        margin: 0;
        padding: 0;
    }

	.hide-on-print {
		display: none !important;
	}

    .calendarBox {
        display: grid;
		width: 100%;
		grid-template-columns: 1fr;
        grid-template-rows: auto auto auto;
		justify-items: center;
		align-items: start;
    }

	.success-msg-box {
		margin-top: 20px;
	}

	.vapaatajat {
		width: 100%;
		justify-self: center;
		margin: 0 auto;
        margin-bottom: 20px;
    }

    .reservation-slots {
        width: 100%;
        margin: 0 auto;
        page-break-before: auto;
    }

	.footer {
		position: fixed;
		bottom: 0;
		right: 0;
	}
}

/* ==========================================================================
							Booking form styling 
========================================================================== */

.booking-form-class{
	grid-column-start: 1;
    grid-column-end: 3;
	grid-row: 2;
	display: grid;
	grid-template-columns: 1fr;
	width: 100%;
    border: 0px solid #616161;
    border-radius: 10px; 
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.5); 
    background-color: #fff; 
    padding: 20px; 
	box-sizing: border-box;
	margin-top: 10px;
}

.valittuaika-doctor{
	text-align: right;
}

.form-grid {
    display: grid;
    grid-template-columns: 1fr;
}

.booking-form-table{
	width: 100%;
	border-collapse: separate;
	border-spacing: 2px 0px;
	margin: 0 auto;
	border: 1px;
	table-layout: fixed;
}

.booking-form-header {
	font-size: 16px;
	margin: 0;
	padding: 0;
	text-align: left;
}

.booking-form-table-fields{
	margin: auto;
	width: 90%;
}


.booking-form-table-fields input[type="text"] {
    width: 95%;
	max-width: 250px;
    padding: 5px;
    margin: 4px 0; 
    box-sizing: border-box;
    border: 1px solid #ccc;
    border-radius: 4px;
	font-family: -apple-system,system-ui,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
	font-size: 14px;
}

.booking-form-table-fields input[type="text"]:focus,
.booking-form-table-fields textarea[name="message"]:focus {
    outline: none; 
    border-color: #999999; 
    box-shadow: 0 0 5px rgba(120, 120, 120, 0.6);
}

.booking-form-table-fields input[name="address"] {
	width: 95%;
	max-width: 250px;
}

.booking-form-table-fields input[name="hetu"] {
	width: 95%;
	max-width: 250px;
}

.hetuErrorMessage{
	font-size: 12px; 
	color: red; 
	margin-top: 10px; 
	text-align: left; 
}

.booking-form-table-fields input[name="zip"],
.booking-form-table-fields input[name="phone"] {
    width: 95%;
	max-width: 250px;
}

.booking-form-table-fields input[name="city"],
.booking-form-table-fields input[name="email"] {
    width: 95%;
	max-width: 250px;
}

.booking-form-table-fields textarea[name="message"] {
	width: 95%;
	max-width: 250px;
	min-height: 100px;
    height: auto;
    padding: 5px;
    margin: 4px 0; 
    box-sizing: border-box;
    border: 1px solid #ccc;
    border-radius: 4px;
    resize: vertical;
	font-family: -apple-system,system-ui,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
	font-size: 14px;
}

.booking-form-table-rows-name{
	text-align: right;
	padding-right: 10px;
	width: 30%;
}

.booking-form-table-rows-name-viesti{
	vertical-align: top;
    padding-top: 5px;
	text-align: right;
	padding-right: 10px;
	width: 30%;
}

.booking-form-table-rows-input{
	text-align: left;
}

.notification {
	text-align: right; 
    font-size: 12px;
    color: #616161;
    padding-right: 20px; 
    margin-top: 10px; 
}

.button-cell-left  {
    text-align: left;
    padding-left: 10px;
}

.button-cell-right {
	text-align: right;
	padding-right: 10px;
}

.lahetevaraus {
	background: linear-gradient(to bottom right, #cccccc, #999999);
	border: 0;
	border-radius: 12px;
	color: #FFFFFF;
	cursor: pointer;
	display: inline-block;
	font-family: -apple-system,system-ui,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
	font-size: 14px;
	font-weight: 500;
	line-height: 2.5;
	outline: transparent;
	padding: 0 1rem;
	text-align: center;
	text-decoration: none;
	transition: box-shadow .2s ease-in-out;
	-webkit-user-select: none;
	user-select: none;
	touch-action: manipulation;
	white-space: nowrap;
  }
  
  .lahetevaraus:not([disabled]):focus {
	box-shadow: 0 0 .25rem rgba(0, 0, 0, 0.3), -.125rem -.125rem 1rem rgba(150, 150, 150, 0.6), .125rem .125rem 1rem rgba(120, 120, 120, 0.6);
  }
  
  .lahetevaraus:not([disabled]):hover {
	box-shadow: 0 0 .25rem rgba(0, 0, 0, 0.3), -.125rem -.125rem 1rem rgba(150, 150, 150, 0.6), .125rem .125rem 1rem rgba(120, 120, 120, 0.6);
  }

  .takaisin {
    background: #FFFFFF;
    border: 2px solid #000000;
    border-radius: 12px;
    color: #000000;
    cursor: pointer;
    display: inline-block;
    font-family: -apple-system, system-ui, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
    font-size: 14px;
    font-weight: 500;
    line-height: 2.5;
    outline: transparent;
    padding: 0 1rem;
    text-align: center;
    text-decoration: none;
    transition: box-shadow .2s ease-in-out;
    -webkit-user-select: none;
	user-select: none;
    touch-action: manipulation;
    white-space: nowrap;
}

.takaisin:not([disabled]):focus,
.takaisin:not([disabled]):hover {
    box-shadow: 0 0 .5rem rgba(0, 0, 0, 0.5), 0 0 0 4px #FFFFFF;
    background: #FFFFFF;
    color: #000000;
}

/* ==========================================================================
							Add booking styling 
========================================================================== */

.success-msg-box{
	grid-column-start: 1;
    grid-column-end: 3;
	grid-row: 3;
	display: grid;
	grid-template-columns: 1fr;
	width: 100%;
    border: 0px solid #616161;
    border-radius: 10px;
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.5); 
    background-color: #fff;
    padding: 20px;
	box-sizing: border-box;
	margin-top: 10px;
}

.success-msg-header{
	font-size: 16px;
	display: flex;
    justify-content: space-between;
    align-items: center;
}

.tulosta-icon-success {
	border: none;
    background: none;
	cursor: pointer;
	padding-right: 10px;
}

.success-form-table{
	width: 100%;
	border-collapse: separate;
	border-spacing: 2px 0px;
	margin: 0 auto;
}

.success-btn {
	text-align: right;
}

.btn-back-to-calendar {
	background: linear-gradient(to bottom right, #cccccc, #999999);
	border: 0;
	border-radius: 12px;
	color: #FFFFFF;
	cursor: pointer;
	display: inline-block;
	font-family: -apple-system,system-ui,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
	font-size: 14px;
	font-weight: 500;
	line-height: 2.5;
	outline: transparent;
	padding: 0 1rem;
	text-align: center;
	text-decoration: none;
	transition: box-shadow .2s ease-in-out;
	-webkit-user-select: none;
	user-select: none;
	touch-action: manipulation;
	white-space: nowrap;
  }
  
  .btn-back-to-calendar:not([disabled]):focus {
	box-shadow: 0 0 .25rem rgba(0, 0, 0, 0.3), -.125rem -.125rem 1rem rgba(150, 150, 150, 0.6), .125rem .125rem 1rem rgba(120, 120, 120, 0.6);
  }
  
  .btn-back-to-calendar:not([disabled]):hover {
	box-shadow: 0 0 .25rem rgba(0, 0, 0, 0.3), -.125rem -.125rem 1rem rgba(150, 150, 150, 0.6), .125rem .125rem 1rem rgba(120, 120, 120, 0.6);
  }

.fail-msg-box{
	grid-column-start: 1;
    grid-column-end: 3;
	grid-row: 3;
	display: grid;
	grid-template-columns: 1fr;
	width: 100%;
    border: 0px solid #616161;
    border-radius: 10px; 
    background-color: #fff; 
    padding: 20px; 
	box-sizing: border-box;
	margin-top: 20px;
}

.fail-msg-box-icon {
	text-align: center;
	vertical-align: middle;
}

.fail-msg-icon {
	font-size: 36px;
	font-weight: bold;
	display: inline-flex;
	justify-content: center;
	align-items: center;
	width: 50px;
	height: 50px;
	border: 3px solid red;
	border-radius: 50%;
	color: red;
}

.fail-msg-box-txt{
	text-align: center;
	font-weight: bold;
}

/* ==========================================================================
						@media mobile portrait styling 
========================================================================== */
@media only screen and (max-width: 374px) {

	/* ==========================================================================
							Cal styling 
	========================================================================== */

	/*Hide unnecessary mobile elements on all pages*/
	.hide-on-mobile{
		display: none !important;
	}

	.calendarBox {
		max-width: 100%;
		padding: 1px;
	}

	.yhteystiedot {
		display: flex;
		justify-content: flex-end; 
		align-items: start; 
		text-align: right;
		grid-column-start: 1;
		grid-column-end: 3;
		grid-row: 1;
		height: 100%;
		width: 100%;
	}

	.ylavalinnat {
		grid-column-start: 1;
		grid-column-end: 3;
		grid-row: 2;
	}

	.dropdown{
		width: 100%;
	}
	
	.calendar-navigation{
		grid-row: 3;
		gap: 10px;
		padding-top: 10px;
		padding-bottom: 10px;
	}

	.calendar-navigation::before {
		background-size: 50px 70px;
	}

	.PreviousMonth, .NextMonth {
		transition: box-shadow .25s ease-in-out, background-color .25s ease-in-out, color .25s ease-in-out;
	}

	.grid-container-calendar {
		grid-row: 4;
		padding: 10px; 
	}

	.calendarFloat {
		margin: 0.5px;
		min-width: 32.5px; 
	}

	.maara {
		font-size: 8px;	
		right: 2px;
		top: 2px;
		padding: 5.5px;
	}

	.alanapit {
		padding: 10px;
		grid-column-start: 1;
		grid-column-end: 3;
		grid-row: 5;
		font-size: 12px;
		color: #616161;
	}

	.valitse {
		grid-row-start: 4;
		grid-row-end: 4;
	}

	h3.vapaa {
		grid-row: 6;
	}

	.varaa-button {
		font-size: 14px;
		line-height: 1.95;
		padding: 0 0.2rem;
		border-radius: 10px;
	}

	.reservation-slots {
		grid-row: 7;
		font-size: 14px;
		padding: 3px;
		padding-bottom: 15px;
	}
	
	.reservation-table td, th{
		padding: 2px;
	}

	.reservation-table th{
		word-wrap: break-word;
	}

	.footer {
		grid-row: 8;
	}

	/* ==========================================================================
							Booking form styling 
	========================================================================== */
	.booking-form-class{
		grid-row: 3;
		padding: 10px; 
	}

	.booking-form-table-fields{
		margin: auto;
		width: 100%;
	}

	.booking-form-table-rows-name{
		text-align: left;
		padding-right: 5px;
		width: 15%;
	}

	.booking-form-table-fields input[type="text"] {
		width: 90%;
	}

	.booking-form-table-fields textarea[name="message"] {
		width: 90%;
	}

}

@media only screen and (min-width: 375px) and (max-width: 480px) {

	/* ==========================================================================
							Cal styling 
	========================================================================== */

	/*Hide unnecessary mobile elements on all pages*/
	.hide-on-mobile{
		display: none !important;
	}

	.calendarBox {
		max-width: 100%;
		padding: 1px;
	}

	.yhteystiedot {
		display: flex;
		justify-content: flex-end; 
		align-items: start; 
		text-align: right;
		grid-column-start: 1;
		grid-column-end: 3;
		grid-row: 1;
		height: 100%;
		width: 100%;
	}

	.ylavalinnat {
		grid-column-start: 1;
		grid-column-end: 3;
		grid-row: 2;
	}

	.dropdown{
		width: 100%;
	}
	
	.calendar-navigation{
		grid-row: 3;
		gap: 10px;
		padding-top: 10px;
		padding-bottom: 10px;
	}

	.calendar-navigation::before {
		background-size: 50px 70px;
	}

	.PreviousMonth, .NextMonth {
		transition: box-shadow .25s ease-in-out, background-color .25s ease-in-out, color .25s ease-in-out;
	}

	.grid-container-calendar {
		grid-row: 4;
		padding: 10px; 
		padding-left: 5px;
		padding-right: 5px;
	}

	.calendarFloat {
		margin: 0.5px;
		min-width: 40px; 
	}

	.maara {
		font-size: 8px;	
		right: 2px;
		top: 2px;
		padding: 5.5px;
	}

	.alanapit {
		padding: 10px;
		grid-column-start: 1;
		grid-column-end: 3;
		grid-row: 5;
		font-size: 12px;
		color: #616161;
	}

	.valitse {
		grid-row-start: 4;
		grid-row-end: 4;
	}

	h3.vapaa {
		grid-row: 6;
	}

	.reservation-slots {
		grid-row: 7;
		padding: 3px;
		padding-bottom: 15px;
	}	

	.reservation-table td, th{
		padding: 2px;
	}

	.footer {
		grid-row: 8;
	}

	/* ==========================================================================
							Booking form styling 
	========================================================================== */
	.booking-form-class{
		grid-row: 3;
		padding: 10px; 
	}

	.booking-form-table-fields{
		margin: auto;
		width: 100%;
	}

	.booking-form-table-rows-name{
		text-align: left;
		padding-right: 5px;
		width: 15%;
	}

	.booking-form-table-fields input[type="text"] {
		width: 90%;
	}

	.booking-form-table-fields textarea[name="message"] {
		width: 90%;
	}

}

/* ==========================================================================
					@media mobile landscape styling 
========================================================================== */
@media only screen and (min-width: 481px) and (max-width: 768px) {
	.calendarBox {
		max-width: 680px;
		}
}

/* ==========================================================================
					@media desktop landscape styling 
========================================================================== */

@media only screen and (min-width: 769px) and (max-width: 1440px) {
	.calendarBox {
		max-width: 680px;
		}
}