/* BASE
================================================== */

body {
    font-size: 1rem;
    line-height: 1.333333;
    color: #292929;
    background: #fff;
}

body, input, button, textarea {
    font-family: "Open Sans", Arial, sans-serif;
}

h1, h2, h3, h4, h5, h6,
.h1, .h2, .h3, .h4, .h5, .h6 {
    line-height: 1.1;
    margin-top: 0;
    font-weight: 700;
    margin-bottom: 1.5rem;
}

p,
ul,
ol,
figure {
    margin-bottom: 1.5rem;
}

a, input, textarea, button {
    transition: color .5s, background-color .5s, border-color .5s, opacity .5s;
}

a {
    text-decoration: none;
    color: #14a8bb;
}

a:hover {
    color: #d13422;
}

*, *:focus {
    outline: none !important;
}

img {
    max-width: 100%;
    height: auto;
}

figure img {
    width: 100%;
}

strong {
    font-weight: 700;
}

hr {
    background-color: #ddd;
    opacity: 1;
}

/* LAYOUT
================================================== */

/*
	Header
*/

.header {
	position: sticky;
    display: flex;
    align-items: center;
	z-index: 1010;
	top: 0;
	right: 0;
	left: 0;
    height: 4rem;
	background: #f5f5f5;
	transition: all .5s;
}

		.header__logo {
            position: relative;
            height: 100%;
		}

            .header__logo a {
                position: relative;
                display: block;
                z-index: 2;
			    height: 2rem;
                transition: all .5s;
            }

			.header__logo img,
            .header__logo svg {
                width: auto;
				height: 100%;
			}

/*
    Footer
*/

.footer {
    text-align: center;
    background: #f5f5f5;
}

    .footer__author {
        display: flex;
        align-items: center;
        justify-content: center;
        margin: 0;
        padding: 1rem 0;
    }

        .footer__author img {
            height: 1.875rem;
            margin-left: 1rem;
        }

.copyright {
    padding-top: .5rem;
    padding-bottom: .5rem;
    font-size: .75rem;
    background: #fff;
}

/* SECTIONS
================================================== */

/* MODULES
================================================== */

/*
    Service Box
*/

.service-box {
    margin-bottom: 1.5rem;
    border-bottom: 2px solid #f5f5f5;
}

/*
    Figure Box Horizontal
*/

.figure-box-horizontal > .btn {
    margin-left: auto;
}

.figure-box-horizontal__title {
    margin-bottom: .5rem;
    font-size: 1.875rem;
}

.figure-box-horizontal .picture {
    width: 7.25rem;
}

/*
    Map
*/

.map iframe {
    display: block;
    width: 100%;
    height: 25rem;
    border: 0;
    border-radius: 1rem;
}

/*
    Steps
*/

.steps {
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 0;
    list-style-type: none;
}

    .steps span {
        position: relative;
        display: flex;
        justify-content: center;
        align-items: center;
        width: 3rem;
        height: 3rem;
        text-align: center;
        font-size: 1.5rem;
        color: #fff;
        background: #14a8bb;
        border-radius: 100%;
    }

    .steps li:not(:first-child) span {
        margin-left: 3rem;
    }

        .steps span svg {
            display: block;
            width: 1.5rem;
            height: 1.5rem;
            fill: #fff;
        }

    .steps .active span {
        background-color: #c73417;
    }

    .steps li:not(:first-child) span:before {
        position: absolute;
        content: "";
        top: 50%;
        right: 100%;
        width: 2rem;
        border-bottom: 2px solid #14a8bb;
        margin-right: .5rem;
    }

    .steps li:not(:first-child).active span:before {
        border-bottom-color: #c73417;
    }

/*
    Calendar
*/

.calendar-wrapper {
    border: 1px solid #ddd;
    border-radius: 1rem;
}

    .calendar-wrapper__title {
        padding: 1rem 1.25rem;
        border-bottom: 1px solid #ddd;
        font-weight: 700;
    }

.fc .fc-button-primary {
    border: 0;
    font-size: .875rem;
    color: #3a3a3a;
    background-color: #f5f5f5;
    border-radius: 1.5rem;
}

.fc .fc-button-primary:hover,
.fc .fc-button-primary:not(:disabled).fc-button-active,
.fc .fc-button-primary:not(:disabled):active {
    color: #fff;
    background-color: #14a8bb;
}

.fc .fc-button-primary:focus,
.fc .fc-button-primary:not(:disabled).fc-button-active:focus,
.fc .fc-button-primary:not(:disabled):active:focus {
    box-shadow: none;
}

.fc .fc-button-primary:disabled {
    color: #666;
    background-color: #ccc;
}

.fc .fc-toolbar-title {
    font-weight: 400;
}

.fc .fc-scrollgrid-sync-inner {
    padding: .75rem 0;
}

    .fc .fc-col-header-cell-cushion {
        font-size: .875rem;
        font-weight: 400;
        color: #3a3a3a;
    }

.fc .fc-timegrid-slot-minor {
    border-width: 0;
}

.fc .fc-daygrid-day-number {
    padding: .5rem .25rem;
}

.fc .fc-non-business {
    background-color: rgba(0 0 0 / 5%);
}

.fc .fc-timegrid-col.fc-day-today,
.fc .fc-daygrid-day.fc-day-today {
    background-color: rgb(20, 168, 187, .1);
}

.fc .fc-scrollgrid {
    border-width: 0;
}

/*
    Calendar Small
*/

.calendar-sm {
    padding: .5rem;
    border-right: 1px solid #ddd;
}
    
    .calendar-sm .fc-col-header,
    .calendar-sm .fc-daygrid-body,
    .calendar-sm .fc-scrollgrid-sync-table {
        width: 100% !important;
    }

    .calendar-sm a {
        color: inherit;
    }

    .calendar-sm .fc-toolbar.fc-header-toolbar {
        margin-bottom: .25rem;
        padding: .25rem;
    }

    .calendar-sm .fc-toolbar-title {
        padding-left: .5em;
        font-weight: 700;
        font-size: 1rem;
    }

    .calendar-sm .fc-button-primary {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        padding: 0;
    }
    
    .calendar-sm .fc-button-primary,
    .calendar-sm .fc-button-primary:hover,
    .calendar-sm .fc-button-primary:not(:disabled).fc-button-active,
    .calendar-sm .fc-button-primary:not(:disabled):active {
        color: #3a3a3a;
        background-color: transparent;
    }

    .calendar-sm .fc-button-primary:hover {
        opacity: .5;
    }

    .calendar-sm .fc-highlight {
        background-color: rgb(20, 168, 187, .2);
    }

    .calendar-sm .fc-daygrid-day-events {
        display: none;
    }

    .calendar-sm .fc-scrollgrid-sync-inner {
        padding: 0;
    }

    .calendar-sm .fc-daygrid-day-top {
        justify-content: center;
        flex-direction: row;
        text-align: center;
    }

    .calendar-sm td,
    .calendar-sm th {
        border: 0;
    }

    .calendar-sm th .fc-col-header-cell-cushion {
        font-weight: 500;
    }

    .calendar-sm .fc-scrollgrid table tr:nth-child(even) td,
    .calendar-sm .fc-scrollgrid table tr:nth-child(even) th {
        background-color: transparent;
    }

    .calendar-sm .fc-day-today {
        font-weight: 700;
        color: #14a8bb;
    }

/*
    Timepicker
*/

.timepicker {
    padding: .75rem 1.25rem;
}

    .timepicker__title {
        margin-bottom: .5rem;
        font-weight: 700;
    }

.timepicker ul {
    display: flex;
    flex-wrap: wrap;
    margin-left: -.25rem;
    margin-right: -.25rem;
    padding: 0;
    list-style-type: none;
}

    .timepicker ul li {
        flex: 0 0 auto;
        width: 25%;
        margin-bottom: .5rem;
        padding: 0 .25rem;
    }

        .timepicker ul li label {
            display: block;
            padding: 0;
            margin: 0;
        }

            .timepicker ul li input {
                position: absolute;
                overflow: hidden;
                width: 1px;
                height: 1px;
                opacity: 0;
            }

            .timepicker ul li label span {
                display: flex;
                align-items: center;
                justify-content: center;
                padding: .5rem .25rem;
                border: 1px solid #ccc;
                border-radius: 2rem;
                cursor: pointer;
            }

            .timepicker ul li input:disabled + span {
                border-color: #eee;
                color: #ccc;
                background-color: #f6f6f6;
                cursor: default;
            }

            .timepicker ul li input:disabled:checked + span {
                border-color: rgb(20 168 187 / 10%);
                color: #14a8bb;
                background-color: rgba(20 168 187 / 10%);
                cursor: default;
            }

            .timepicker ul li input:checked + span {
                border-color: #14a8bb;
                color: #fff;
                background-color: #14a8bb;
            }

/* COMPONENTS
================================================== */

/*
	Buttons
*/

.btn {
    position: relative;
    display: inline-flex;
    justify-content: center;
    align-items: center;
    padding: .6875rem 1.75rem;
    font-size: 1.25rem;
    box-shadow: none;
    border-radius: 1.125rem;
    transition: all .5s;
}

.btn:focus,
.btn:active:focus,
.btn.active:focus {
    box-shadow: 0 0 0 .25rem rgba(0 0 0 / 10%);
}

    .btn img {
        height: 2.5rem;
    }

    .btn svg {
        width: 1.125rem;
        height: 1.125rem;
        flex: 0 0 auto;
        fill: #fff;
        transition: fill .5s;
    }

.btn-xs {
    padding: .5rem 1rem;
    font-size: .75rem;
    border-radius: 1rem;
}

.btn-sm {
    padding: .5rem 1rem;
    font-size: 1rem;
}

.btn-lg {
    font-size: 1.25rem;
    border-radius: 1.5rem;
}

.btn-primary,
.btn-primary:focus {
    border-color: #14a8bb;
    color: #fff;
    background-color: #14a8bb;
}

.btn-primary:active,
.btn-primary:hover {
    border-color: #c73417;
    color: #fff;
    background-color: #c73417;
}

.btn-success,
.btn-success:focus {
    border-color: #5ea000;
    color: #fff;
    background-color: #5ea000;
}

.btn-success:active,
.btn-success:hover {
    border-color: #487c00;
    color: #fff;
    background-color: #487c00;
}

.btn--gray,
.btn--gray:focus {
    border-color: #eee;
    color: #292929;
    background-color: #eee;
}

.btn--gray:active,
.btn--gray:hover {
    border-color: #292929;
    color: #fff;
    background-color: #292929;
}

.btn-dark,
.btn-dark:focus {
    border-color: #fff;
    color: #fff;
    background-color: #292929;
}

.btn-dark:active,
.btn-dark:hover {
    border-color: #fff;
    color: #fff;
    background-color: #444;
}

.btn input {
    position: absolute;
    overflow: hidden;
    width: 1px;
    height: 1px;
    opacity: 0;
}

/*
    More Button
*/

.more-btn {
    position: relative;
    display: inline-block;
    padding-right: 1.5rem;
    text-decoration: underline;
    color: inherit;
}

.more-btn:after {
    position: absolute;
    content: "";
    top: 50%;
    right: 0;
    margin-top: -.5rem;
    border-top: .5rem solid transparent;
    border-bottom: .5rem solid transparent;
    border-left: .625rem solid #292929;
    transition: transform .3s;
}

.more-btn[aria-expanded="true"]:after {
    transform: rotate(90deg);
}

/*
	Form components
*/

.form-label {
    display: block;
    margin-bottom: .375rem;
    font-weight: 400;
    font-size: .875rem;
}

.form-control::placeholder           { color: #aaa; opacity: 1; }
.form-control:-ms-input-placeholder  { color: #aaa; }
.form-control::-ms-input-placeholder { color: #aaa; }

.form-control,
.form-select {
    padding: .6875rem 1rem;
    font-size: .875rem;
    font-weight: 300;
    border-radius: .75rem;
}

.form-control,
.form-control:focus,
.form-select,
.form-select:focus {
    border-color: #a1a1a1;
}

.form-control:focus,
.form-select:focus {
    box-shadow: 0 0 0 .25rem rgba(0 0 0 / 10%);
}

.form-check {
    margin-bottom: 0;
    padding-left: 2.5em;
    padding-top: .125em;
}

    .form-check a {
        text-decoration: underline;
        color: inherit;
    }

    .form-check a:hover {
        text-decoration: none;
    }

    .form-check .form-check-input {
        width: 1.5em;
        height: 1.5em;
        margin-left: -2.5em;
        margin-top: -.125em;
        border-width: 3px;
        border-color: #14a8bb;
        background-color: #fff;
    }

    .form-check .form-check-input[type="checkbox"] {
        border-radius: 0;
    }

    .form-check .form-check-input:focus {
        box-shadow: 0 0 0 .25rem rgba(0 0 0 / 10%);
    }

    .form-check .form-check-input:checked {
        border-color: #14a8bb;
        background-color: #14a8bb;
    }

.input-with-icon {
    position: relative;
}

    .input-with-icon .form-control {
        padding-left: 3rem;
    }

    .input-with-icon svg {
        position: absolute;
        top: 50%;
        left: 1rem;
        width: 1.25rem;
        height: 1.25rem;
        fill: #a1a1a1;
        transform: translate(0, -50%);
    }

label.box-selector {
    display: block;
    cursor: pointer;
}

    .box-selector input {
        position: absolute;
        overflow: hidden;
        width: 1px;
        height: 1px;
        opacity: 0;
    }

    .box-selector input:checked + * {
        color: #14a8bb;
    }

    .box-selector input:checked + * .picture {
        background-color: #14a8bb;
        box-shadow: 0 0 0 .25rem #14a8bb;
    }

        .box-selector input:checked + * .picture svg {
            fill: #fff;
            opacity: 1;
        }

/*
    Titles
*/

.page-title {
    font-size: 1.5rem;
}

.section-title {
    font-size: 2rem;
}

.section-title--sm {
    font-size: 1.875rem;
}

.article-title {
    font-size: 1.25rem;
}

/*
    Picture
*/

.picture {
    position: relative;
    overflow: hidden;
    background: #f5f5f5;
    border-radius: 1.25rem;
}

.picture:after {
    display: block;
    content: "";
    padding-bottom: 100%;
}

    .picture > svg,
    .picture > img {
        position: absolute;
    }

    .picture > svg {
        top: 50%;
        left: 50%;
        width: 70%;
        height: 70%;
        transform: translate(-50%, -50%);
        fill: #000;
        opacity: .1;
    }

    .picture img {
        top: 0;
        left: 0;
        width: 100%;
        height: 100%;
        object-fit: cover;
    }

    .picture label {
        position: absolute;
        z-index: 2;
        right: .75rem;
        bottom: .75rem;
    }

.picture--avatar {
    flex: 0 0 auto;
    width: 9rem;
}

.picture--cover:after {
    padding-bottom: 35%;
}

.picture--cover > svg {
    height: 50%;
}

/*
    Price
*/

.price {
    font-weight: 700;
}

    .price span {
        font-size: 1.875rem;
        line-height: 1;
    }

/*
    Lists
*/

.list-with-icon {
    display: flex;
    flex-direction: column;
    flex-wrap: wrap;
    padding: 0;
    list-style-type: none;
}

    .list-with-icon li,
    .list-with-icon li > a {
        display: flex;
        align-items: center;
    }

    .list-with-icon a {
        color: inherit
    }

    .list-with-icon a:hover {
        opacity: .6;
    }

        .list-with-icon svg {
            width: 1.25rem;
            height: 1.25rem;
        }

.list-with-icon--vertical {
    flex-direction: row;
}

    .list-with-icon--vertical li {
        margin-right: 2rem;
        margin-bottom: .5rem;
    }

/*
    Links
*/

.text-link {
    color: #292929;
}

/* GLOBALS
================================================== */

.c--primary {
    color: #14a8bb !important;
}

.c--secondary {
    color: #c73417 !important;
}

.c--success {
    color: #5ea000 !important;
}

.bg--primary {
    background-color: #14a8bb !important;
}

.bg--secondary {
    background-color: #c73417 !important;
}

.bg--gray {
    background-color: #eee !important;
}

.text--sm {
    font-size: .875rem;
}

.text-transform--none {
    text-transform: none;
}

.border-bottom {
    border-bottom: 2px solid #f5f5f5 !important;
}

.border-end {
    border-right: 2px solid #f5f5f5 !important;
}

.miw--240 {
    min-width: 15rem;
}

/* RESPONSIVE
================================================== */

/*
	XS
*/

@media screen and (max-width: 575px) {

}

/*
	SM and down
*/

@media screen and (max-width: 767px) {

}

/*
	MD and down
*/

@media screen and (max-width: 1199px) {

}

/*
	XXXL and down
*/

@media screen and (max-width: 1699px) {

}

/*
	MD and up
*/

@media screen and (min-width: 768px) {
  
    .figure-box-horizontal {
        display: flex;
        align-items: center;
    }

    .calendar-wrapper .timepicker {
        flex: 0 0 auto;
        width: 50%;
    }

}

/*
	LG and up
*/

@media screen and (min-width: 992px) {

    .text--lg {
        font-size: 1.25rem;
    }

    .btn-lg {
        font-size: 1.5rem;
    }

}
 
/*
    XL and up
*/
 
@media screen and (min-width: 1200px) {

    .picture--avatar {
        width: 12rem;
    }

    .form-control--lg,
    .form-select--lg {
        padding: 1.25rem 2rem;
        font-size: 1.25rem;
        border-radius: 1rem;
    }

    .input-with-icon {
        position: relative;
    }

        .input-with-icon .form-control {
            padding-left: 3rem;
        }

        .input-with-icon svg {
            position: absolute;
            top: 50%;
            left: 1rem;
            width: 1.25rem;
            height: 1.25rem;
            fill: #a1a1a1;
            transform: translate(0, -50%);
        }

    .input-with-icon--lg .form-control {
        padding-left: 5rem;
    }

    .input-with-icon--lg svg {
        width: 2rem;
        height: 2rem;
        left: 1.5rem;
    }

    .section-title--lg {
        font-size: 2.5rem;
    }

    .figure-box-horizontal .more-btn {
        font-size: 1.25rem;
    }

}

/*
	XXL and up
*/

@media screen and (min-width: 1400px) {

}