* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

html {
	font-size: 16px;
	overflow-x: hidden;
}

body {
    background-color: var(--bg-color);
	font-family: var(--font-sans);
	height: 100%;
	font-weight: normal;
	overflow-x: hidden;
}

a {
	text-decoration: none;
}

a:not(.underlined, .btn):hover {
	text-decoration: underline 1px solid var(--purple) !important;
	text-underline-offset: 0.15em;
	-webkit-text-decoration-line:  underline !important;
	-webkit-text-decoration-color: var(--purple) !important;
	-webkit-text-decoration-style: solid !important;
	-webkit-text-decoration-thickness: 1px !important;
}

a.underlined {
	text-decoration: underline 1px solid var(--purple) !important;
	text-underline-offset: 0.15em;
	-webkit-text-decoration-line:  underline !important;
	-webkit-text-decoration-color: var(--purple) !important;
	-webkit-text-decoration-style: solid !important;
	-webkit-text-decoration-thickness: 1px !important;
}

a.underlined:hover {
	text-decoration: underline 2px solid var(--purple) !important;
	-webkit-text-decoration-line:  underline !important;
	-webkit-text-decoration-color: var(--purple) !important;
	-webkit-text-decoration-style: solid !important;
	-webkit-text-decoration-thickness: 2px !important;
}

a.decorated {
	position: relative;
	clip-path: polygon(0 0, 100% 0, 100% 200%, 0% 200%);
}

a.decorated:before, a.decorated:after {
	content: '';
	position: absolute;
	border-bottom: 2px solid currentColor;
	bottom: -0.25em;
	transition: all 0.3s ease;
	border-radius: 1em;
}

a.decorated:before {
	width: 1em;
	transform-origin: left;
}

a.decorated:after {
	width: calc(82% - 1em);
	left: 101%;
}

a.decorated:hover:before {
	width: 0.75em;
}

a.decorated:hover:after {
	transform: translateX(0);
	left: 1em;
}

ul {
	list-style: none;
	margin: 0;
}

hr {
	background-color: var(--magenta);
}

.body-content {
	height: 100%;
	transition: filter 0.5s ease;
}

.background {
	z-index: 1;
	position: relative;
	width: 100%;
	height: 100%;
}

.background.gradient {
	background: url(data:image/svg+xml;base64,PHN2ZyBvcGFjaXR5PSIuMiIgdmlld0JveD0iMCAwIDQwMCA0MDAiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiPjxmaWx0ZXIgaWQ9ImEiPjxmZVR1cmJ1bGVuY2UgYmFzZUZyZXF1ZW5jeT0iLjQ1IiBudW1PY3RhdmVzPSIzIiBzdGl0Y2hUaWxlcz0ic3RpdGNoIiB0eXBlPSJmcmFjdGFsTm9pc2UiLz48L2ZpbHRlcj48cmVjdCBmaWx0ZXI9InVybCgjYSkiIGhlaWdodD0iMTAwJSIgd2lkdGg9IjEwMCUiLz48L3N2Zz4=), #e2e2f7 linear-gradient(to top, #e2e2f7 20%, #d9eae8 32%, #e3ebd4 45%, #e7ead0 53%, #efe5cc 69%, #e5c4ce 84%, #9da7da 92%, #1960ff 100%) no-repeat;
	background-size: 300px 300px,100% 100%;
}

.header-image {
	position: relative;
	width: 100%;
}

.header-image .main {
	width: 100%;
}

.baloon {
	position: absolute;
	width: 30px;
	left: 18.5%;
	top: -6%;
	animation: float 10s ease-in-out infinite alternate;
}

.cloud-1 {
	position: absolute;
	right: -8%;
	bottom: -20%;
	width: 38%;
	transform: rotate(15deg);
	opacity: 0.9;
	animation: cloud-1 8s ease-in-out infinite alternate;
}

.cloud-2 {
	position: absolute;
	width: 48%;
	left: -8%;
	bottom: -10%;
	animation: cloud-2 7s ease-in-out infinite alternate;
}

.cloud-2-1 {
	position: absolute;
	width: 300px;
	left: -8%;
	bottom: -26%;
	animation: cloud-2 7s ease-in-out infinite alternate;
}

.cloud-2-2 {
	position: absolute;
	width: 200px;
	left: 30%;
	bottom: -6%;
	transform: rotate(180deg);
	opacity: 0.9;
	animation: cloud-2-2 10s ease-in-out infinite alternate;
}

.cloud-2-3 {
	position: absolute;
	width: 200px;
	right: -10%;
	bottom: -14%;
	transform: rotate(90deg);
	animation: cloud-2-3 8s ease-in-out infinite alternate;
}

.cloud-2-4 {
	position: absolute;
	width: 150px;
	right: 10%;
	bottom: -10%;
	transform: rotate(-90deg);
	animation: cloud-2-4 12s ease-in-out infinite alternate;
}

.cloud-3 {
	position: absolute;
	width: 43%;
	left: -14%;
	bottom: 7%;
	opacity: 0.75;
	transform: rotate(180deg);
	animation: cloud-3 5s ease-in-out infinite;
}

.cloud-3-1 {
	position: absolute;
	width: 300px;
	right: -8%;
	bottom: 27%;
	animation: cloud-2 10s ease-in-out infinite alternate;
	z-index: -1;
}

.cloud-4-1 {
	position: absolute;
	width: 230px;
	right: -25%;
	bottom: 0;
	animation: cloud-3 7s ease-in-out infinite alternate;
}

.cloud-5-1 {
	position: absolute;
	width: 450px;
	right: -30%;
	bottom: -50%;
	animation: cloud-3 7s ease-in-out infinite alternate;
}

.cloud-5-2 {
	position: absolute;
	width: 300px;
	left: -22%;
	bottom: 0;
	animation: cloud-2 10s ease-in-out infinite alternate;
}

.cloud-5-3 {
	position: absolute;
	width: 350px;
	left: -40%;
	bottom: -120%;
	opacity: 0.9;
	animation: cloud-1 10s ease-in-out infinite alternate;
}

.cloud-6-1 {
	position: absolute;
	width: 350px;
	left: -60%;
	bottom: -60%;
	opacity: 0.9;
	animation: cloud-2 5s ease-in-out infinite alternate;
}

.cloud-6-2 {
	position: absolute;
	width: 200px;
	right: 40%;
	bottom: -15%;
	opacity: 0.9;
	animation: cloud-2-2 5s ease-in-out infinite alternate;
}

.cloud-6-3 {
	position: absolute;
	width: 450px;
	right: -50%;
	bottom: 0;
	animation: cloud-3 7s ease-in-out infinite alternate;
	z-index: -1;
}

.cloud-7-1 {
	position: absolute;
	width: 250px;
	left: -20%;
	top: -100%;
	animation: cloud-3 7s ease-in-out infinite alternate;
	z-index: -1;
}

.cloud-8-1 {
	position: absolute;
	width: 450px;
	right: -30%;
	bottom: -50%;
	z-index: -1;
	opacity: 0.9;
	animation: cloud-3 7s ease-in-out infinite alternate;
}

.cloud-8-2 {
	position: absolute;
	width: 450px;
	left: -30%;
	bottom: -50%;
	z-index: -1;
	opacity: 0.9;
	animation: cloud-3 10s ease-in-out infinite alternate;
}

.cloud-footer {
	position: absolute;
	width: 250px;
	right: -25%;
	bottom: -40%;
	z-index: -1;
	transform: rotate(180deg);
	animation: cloud-footer 5s ease-in-out infinite;
}

.cloud-blog {
	position: absolute;
	width: 350px;
	left: -30%;
	top: 35%;
	animation: cloud-3 7s ease-in-out infinite;
}

.cloud-blog-1 {
	position: absolute;
	width: 300px;
	right: -20%;
	top: 70%;
	animation: cloud-3 12s ease-in-out infinite;
}

.main-header {
	color: var(--white);
	text-align: center;
}

:is(.main-header, .section-header) h1 {
	font-family: var(--font-serif);
	font-size: 45px;
	font-weight: normal;
}

:is(.main-header, .section-header) h2 {
	font-family: var(--font-serif);
	font-size: 28px;
	font-weight: normal;
}

:is(.main-header, .section-header) h3 {
	font-family: var(--font-sans);
	font-size: 28px;
	font-weight: normal;
}

:is(.main-header, .section-header) h4 {
	font-family: var(--font-sans);
	font-size: 16px;
	font-weight: normal;
}

.underlined {
	text-decoration: underline;
}

.main-header .btn {
	margin-top: 1em;
}

.section {
	margin-top: 10em;
	padding: 50px 20px;
	border-radius: var(--border-radius);
	width: 100%;
}

.section-header {
	color: var(--black);
	text-align: center;
}

.faded {
	background: linear-gradient(to bottom, #fefafa5e, #00000000 99%);
	backdrop-filter: blur(4px);
}

.m-t-5 {
	margin-top: 5rem !important;
}

.m-t-3 {
	margin-top: 3rem !important;
}

.m-t-2 {
	margin-top: 2rem !important;
}

.m-t-1 {
	margin-top: 1rem !important;
}

.m-t-0 {
	margin-top: 0 !important;
}

.m-b-3 {
	margin-bottom: 3rem !important;
}

.m-b-2 {
	margin-bottom: 2rem !important;
}

.m-b-1 {
	margin-bottom: 1rem !important;
}

.m-b-0 {
	margin-bottom: 0 !important;
}

.p-t-0 {
	padding-top: 0 !important;
}

.p-b-0 {
	padding-bottom: 0 !important;
}

.f-w-300 {
	font-weight: 300 !important;
}

.checklist {
	list-style-image: url('../images/icons/check.svg');
	margin-left: 15px;
}

.checklist > li {
	font-size: 16px;
	color: var(--black);
	margin-bottom: 10px;
	padding-left: 10px;
}

.checklist > li:last-child {
	margin-bottom: 0;
}

.form-input {
	appearance: none;
	width: 100%;
	padding: 26px 26px 8px 12px;
	border-radius: var(--border-radius);
	border: var(--form-border);
	background-color: var(--transparent);
	outline: none;
	font-size: 14px;
}

textarea.form-input {
	max-height: 150px;
	height: 150px;
	resize: none;
}

.form-input:not(:-moz-placeholder-shown) + .label {
	transform: translate3d(0, -0.8em, 0) scale(0.75);
	left: 12px;
	color: var(--black)
}

.form-input:not(:-ms-input-placeholder) + .label {
	transform: translate3d(0, -0.8em, 0) scale(0.75);
	left: 12px;
	color: var(--black)
}

.form-input:not(:placeholder-shown) + .label {
	transform: translate3d(0, -0.8em, 0) scale(0.75);
	left: 12px;
	color: var(--black)
}

.form-input:focus + .label {
	transform: translate3d(0, -0.8em, 0) scale(0.75);
	left: 12px;
	color: var(--black)
}

.input-wrapper {
	position: relative;
	width: 100%;
}

.input-wrapper.error .form-input {
	border: 1px solid red !important;
}

.checkbox-wrapper.error .form-checkbox {
	border: 1px solid red !important;
}

.input-wrapper .label {
	position: absolute;
    top: 18px;
    left: 26px;
    font-size: 14px;
    color: var(--grey-a);
    transform-origin: 0 0;
    transform: translate3d(0, 0, 0);
    transition: all 0.2s ease;
    pointer-events: none;
}

.checkbox-wrapper {
	margin-left: 0.75rem;
	margin-top: 0.25rem;
	display: grid;
	grid-template-columns: 1em auto;
	gap: 0.5em;
}

.checkbox-wrapper .label {
	font-size: 12px;
	position: relative;
	top: -1px;
}

.checkbox-wrapper input {
	appearance: none;
	background-color: var(--transparent);
	margin: 0;
	width: 1em;
	height: 1em;
	border: var(--form-border);
	border-radius: 0.15em;
	display: grid;
	place-content: center;
	position: relative;
	cursor: pointer;
}

.checkbox-wrapper input:before {
	content: url('../images/icons/check.svg');
	width: 0.65em;
	height: 0.65em;
	transform: scale(0);
	position: absolute;
	transform-origin: center center;
	top: -4px;
	left: 2px;
}

.checkbox-wrapper input:checked:before {
	transform: scale(0.8);
}

.header-image .body {
	margin-top: 2rem;
	padding-left: 1.5em;
}

.header-image .body .title {
	font-size: 28px;
	font-family: var(--font-serif);
	font-weight: normal;
}

.header-image .body .content {
	margin-top: 0.75em;
	font-size: 16px;
	font-family: var(--font-sans);
	margin-bottom: 1em;
}

.header-image .body .link {
	color: var(--black);
}

.blog-card {
	display: flex;
	flex-direction: row;
	gap: 1em;
}

.blog-card.wide {
	flex-direction: column;
}

.blog-card.white {
	color: var(--white);
}

.blog-navigation a {
	color: var(--white);
}

.blog-navigation a:hover {
	color: var(--white);
}

.blog-card .image {
	height: 290px;
	max-height: 290px;
	aspect-ratio: 5 / 6;
	border-radius: var(--border-radius-small);
	background-color: var(--white);
	position: relative;
	background-repeat: no-repeat;
	background-position: center;
	background-size: cover;
}

.blog-card .image:after {
	content: '';
	display: block;
	height: 100%;
	width: 100%;
	position: absolute;
	bottom: 0;
	opacity: 1;
	background-repeat: no-repeat;
	background-image: linear-gradient(0deg, rgba(0, 0, 0, 0.35), transparent 75%);
	border-radius: var(--border-radius-small);
	transition: all 0.3s ease-out;
}

.blog-card:hover {
	cursor: pointer;
}

.blog-card:hover .image:after {
	opacity: 0.5;
}

.blog-card .body {
	display: flex;
	flex-direction: column;
	gap: 0.5em;
}

.blog-card .title {
	font-size: 32px;
	font-family: var(--font-serif);
	font-weight: normal;
}

.blog-card .time {
	font-size: 14px;
	font-weight: normal;
}

.blog-card .category-wrapper {
	display: flex;
	flex-direction: row;
	flex-wrap: nowrap;
	gap: 0.5em;
	align-items: center;
	height: 100%;
}

.blog-card .data {
	display: flex;
	flex-direction: column;
	height: 100%;
	justify-content: space-between;
}

.blog-card.wide .data {
	flex-direction: row;
	width: 100%;
}

.blog-card .tag {
	padding: 10px 38px;
	display: inline-block;
	border-radius: 17px;
	line-height: 1em;
	font-size: 12px;
	font-weight: normal;
	color: var(--black);
	margin-top: 0.25em;
	text-align: center;
	border: 1px solid var(--grey-b);
}

.blog-card .tag.white {
	border-color: var(--white);
	color: var(--white);
}

ul > li.title {
	font-size: 20px;
	font-family: var(--font-serif);
	font-weight: 700;
	margin-bottom: 1em;
}

footer ul > li {
	margin-bottom: 1em;
}

footer ul > li:last-child {
	margin-bottom: 0;
}

footer a {
	color: var(--black);
}

footer a:hover {
	color: var(--black);
	text-decoration: none;
}

.phone {
	position: absolute;
	top: 30%;
	right: -7%;
}

.phone-numbers {
	position: absolute;
	top: 50%;
	left: 15%;
	font-size: 36px;
	font-family: var(--font-sans);
	font-weight: normal;
}

.blog-header img {
	width: 100%;
	aspect-ratio: 16 / 9;
	background-color: var(--white);
	border-radius: var(--border-radius-small);
	object-fit: cover;
}

.blog-header .title {
	font-size: 45px;
	font-family: var(--font-serif);
	font-weight: normal;
	color: var(--white);
	margin-top: 0.1em;
}

.blog-header {
	padding-bottom: 25px;
	border-bottom: 1px solid var(--white);
}

.blog-header .category {
	font-size: 16px;
	text-decoration: underline;
	color: var(--white);
	margin-top: 1em;
}

.blog-header .read-time {
	font-size: 16px;
	color: var(--white);
	margin-top: 1em;
}

.blog-author {
	margin-top: 2em;
	display: flex;
	flex-direction: row;
	gap: 1.25em;
}

.blog-author :is(img, .avatar) {
	border-radius: 50%;
	background-color: var(--grey-c);
	border: 1px solid var(--grey-b);
	width: 90px;
	height: 90px;
	min-width: 90px;
	min-height: 90px;
	object-fit: cover;
}

.blog-author .avatar {
	text-align: center;
	line-height: 85px;
	font-weight: bold;
	color: var(--white);
	font-size: 28px;
	font-family: var(--font-serif);
}

.blog-author .details {
	display: flex;
	flex-direction: column;
	justify-content: center;
}

.blog-author .details .author {
	color: var(--white);
	font-size: 14px;
}

.blog-author .details .date {
	color: var(--white);
	font-size: 12px;
}

.blog-author .details .name {
	color: var(--white);
	font-size: 28px;
	line-height: 1em;
}

.blog-body {
	margin-top: 3em;
	line-height: 28px;
	font-size: 16px;
	color: var(--white);
}

.blog-body :is(h1, h2, h3, h4, h5, h6) {
	font-family: var(--font-serif);
	margin-bottom: 2rem;
}

.blog-body p {
	margin-bottom: 3rem;
}

.blog-navigation {
	margin-top: 6em;
	display: flex;
	flex-direction: row;
	flex-wrap: nowrap;
	justify-content: center;
	gap: 1.5em;
}

.blog-navigation .blog {
	color: var(--white);
	font-family: var(--font-serif);
	font-size: 28px;
}

.blog-navigation .left {
	text-align: right;
	width: 49%;
}

.blog-navigation .right {
	text-align: left;
	width: 49%;
}

.blog-navigation .text {
	color: var(--white);
	font-size: 16px;
}

.blog-navigation .separator	{
	width: 1px;
	background-color: var(--white);
}

.categories-wrapper {
	border-radius: var(--border-radius);
	padding: 20px;
	margin-bottom: 3rem;
	display: flex;
	justify-content: space-around;
	background: linear-gradient(to right, #fefafa5e, #00000000 99%) !important;
}

.categories-wrapper > li {
	font-size: 16px;
	color: var(--white);
	cursor: pointer;
	font-weight: 300;
}

@keyframes float {
	0% { transform: translate(0,  0px); }
    50% { transform: translate(7px, 20px); }
    100% { transform: translate(0, 0px); }  
}

@keyframes cloud-1 {
	0% { transform: translate(0px, 0px); }
    50% { transform: translate(6px, 15px) rotate(1deg); }
    100% { transform: translate(0, 0px); }  
}

@keyframes cloud-2 {
	0% { transform: translate(0px, 0px); }
    50% { transform: translate(-5px, 7px) rotate(-1deg); }
    100% { transform: translate(0, 0px); }  
}

@keyframes cloud-2-2 {
	0% { transform: translate(0px, 0px) rotate(180deg); }
    50% { transform: translate(-5px, -7px) rotate(181deg); }
    100% { transform: translate(0, 0px) rotate(180deg); }  
}

@keyframes cloud-2-3 {
	0% { transform: translate(0px, 0px) rotate(90deg); }
    50% { transform: translate(4px, 8px) rotate(88deg); }
    100% { transform: translate(0, 0px) rotate(90deg); }  
}

@keyframes cloud-2-4 {
	0% { transform: translate(0px, 0px) rotate(-90deg); }
    50% { transform: translate(-6px, -2px) rotate(-92deg); }
    100% { transform: translate(0, 0px) rotate(-90deg); }  
}

@keyframes cloud-3 {
	0% { transform: translate(0px, 0px); }
    50% { transform: translate(-3px, -5px) rotate(1deg); }
    100% { transform: translate(0, 0px); }  
}

@keyframes cloud-footer {
	0% { transform: translate(0px, 0px) rotate(180deg); }
    50% { transform: translate(-3px, -5px) rotate(181deg); }
    100% { transform: translate(0, 0px) rotate(180deg); }  
}

.fade-up {
    transform: translateY(20px);
    opacity: 0;
    transition: opacity 0.5s ease-out, transform 0.5s ease-out;
}

.whole-width {
	width: 125% !important;
	transform: translateX(-50%);
	left: 50%;
	position: relative;
}

.service-card {
	border-radius: var(--border-radius);
	background: linear-gradient(to bottom, #fefafa5e, #00000000 99%);
	padding: 15px 20px 35px 20px;
	cursor: pointer;
	transform: translateY(20px) scale(1);
	transition: all 0.3s ease;
}

.service-card:after {
	content: '';
	width: 12px;
	height: 10px;
	background-image: url('../images/icons/chevron.svg');
	background-repeat: no-repeat;
	background-size: contain;
	position: absolute;
	bottom: 1rem;
	right: 1rem;
	transform: translate(-100%, -100%) rotate(-90deg);
	transition: all 0.3s ease;
}

.service-card:hover:after {
	right: 0.75rem;
}

.service-card:hover {
	transform: scale(1.025) !important;
}

.service-card .title {
	font-size: 20px;
	font-family: var(--font-serif);
	text-decoration: underline;
	line-height: 1.5em;
	display: flex;
	align-items: center;
}

.service-card .body {
	margin-top: 1em;
}

#services {
	row-gap: 40px;
}

.footerB {
	padding: 5px;
    font-size: 12px;
    background-color: var(--black);
    color: var(--white);
	margin-top: 120px;
}

.footerB a {
	color: var(--white);
}

.bottom {
	height: 30px;
    line-height: 30px;
    text-align: center;
    background-color: var(--black);
    color: var(--white);
    font-size: 12px;
}

@keyframes beat {
	100% { transform: scale(1.2); }
}

.service-info-wrapper {
	margin-top: 5rem;
	padding: 40px;
	border-radius: var(--border-radius);
	display: flex;
	flex-direction: column;
	gap: 60px;
}

.service-info {
	display: flex;
	flex-direction: row;
	gap: 2rem;
}

.service-img {
	width: 250px;
}

#contact-map {
	border-radius: var(--border-radius);
}

.contact-img {
	border-radius: var(--border-radius);
	width: 100%;
}

.contact-list > li {
	margin-bottom: 20px;
}

.oval {
	width: 100%;
}

.service-info img {
	width: 80px;
}

.section3-img {
	height: 360px;
	width: auto;
	position: relative;
	right: 0;
}

#blogs {
	row-gap: 40px;
}

.socials {
	display: flex;
	flex-direction: row;
	gap: 20px;
}

.social img {
	width: 24px;
	height: 24px;
}

.about-wrapper {
	padding: 25px;
	border-radius: var(--border-radius);
}

.flip-card {
	background-color: transparent;
	width: 100%;
	aspect-ratio: 3 / 2;
	perspective: 1000px;
}
  
.flip-card-inner {
	position: relative;
	width: 100%;
	height: 100%;
	text-align: center;
	transition: transform 0.8s;
	transform-style: preserve-3d;
}
  
.flip-card:hover .flip-card-inner {
	transform: rotateY(180deg);
}
  
.flip-card-front, .flip-card-back {
	position: absolute;
	width: 100%;
	height: 100%;
	padding: 20px;
	-webkit-backface-visibility: hidden;
	backface-visibility: hidden;
	border-radius: var(--border-radius);
	background: linear-gradient(to bottom, #fefafa5e, #00000000 99%);
	backdrop-filter: blur(4px);
	color: var(--black);
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
}
  
.flip-card-back {
	transform: rotateY(180deg);
}

.flip-card-front img {
	border-radius: 50%;
	width: 100px;
	height: 100px;
}

.flip-card-front .title {
	font-size: 24px;
	font-weight: bold;
	font-family: var(--font-serif);
}