@font-face {
 font-family: "Montserrat";
 src: url("../fonts/Montserrat-Regular.woff2") format("woff2");
 font-weight: 400;
 font-style: normal;
 font-display: swap;
}

@font-face {
 font-family: "Montserrat";
 src: url("../fonts/Montserrat-Medium.woff2") format("woff2");
 font-weight: 500;
 font-style: normal;
 font-display: swap;
}

* { box-sizing: border-box; }

h1, h2, h3, h4, h5, h6, p, ul, ol { margin: 0; } 

html {font-size: 15px;scroll-behavior: smooth;}
body { margin: 0; min-height: 100dvh; line-height: 1.5; }

a {text-decoration: none; color: #C7C7C7;}
a:hover {color: #8E9FCC;}

.text-green {color: #8FF08F;}

.email {display: none;} /* SPAM BOT */

.font500 {font-weight: 500;}

body {
font-family: "Montserrat", sans-serif;
font-weight: 400;
color: #C7C7C7;
background-color: #0C0E18;
}

.wrapper {
	min-height: 100vh;
	display: flex;
	flex-direction: column;
}

/* HEADER */

.title {
	font-size: 1rem;
	white-space: nowrap;
}

.title a:hover {
	color: #F0F8FF;
	transition: all 0.2s ease;
}

.logo_container {
	display: grid;
	grid-template-columns: 80px 1fr;
	column-gap: 10px;
	align-items: center;
	z-index: 1;
}

.logo-wrapper {
	width: 70px;
	height: 70px;
	border-radius: 50%;
	perspective: 500px;
}

.logo-animation {
	position: relative;
	width: 100%;
	height: 100%;
	border-radius: 50%;
	
	transform-style: preserve-3d;
	animation: rotate 1.5s ease;
	animation-fill-mode: forwards;
	
	-moz-backface-visibility: hidden;
}

.logo-front, .logo-back {
	width: 100%;
	height: 100%;
	position: absolute;
	border-radius: 50%;
	
	backface-visibility: hidden;
}

.logo-animation a {
	position: inherit;
	display: block;
	width: 100%;
	height: 100%;
	
	border-radius: 50%;
}

.logo-front {
	transform: rotateX(180deg);
}

   @keyframes rotate {
	   0% {
		   transform: rotateZ(0);
	   }	 
	     
	   75% {
	transform: rotateZ(360deg) rotateX(0);
    	}
		
  	  100% {
	  transform: rotateX(180deg);
  		}
}

.logo {
	position: inherit;
	width: 100%;
	height: 100%;
	vertical-align: middle;
	border-radius: 50%;
	
	pointer-events: none;
	user-select: none;
}

.header {
	top: 0;
	width: 100%;
	height: 80px;
	position: fixed;
	background-color: black;
	z-index: 1;
	user-select: none;
	-webkit-user-select: none;
}
.header::before {
	content: '';
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background-color: black;
	box-shadow: 0 0 8px #131925;
	z-index: 1;
}

.container {
	width: 100%;
	max-width: 1200px;
	margin: 0 auto auto;
}

.container-contact {
	width: 100%;
	max-width: 1200px;
	margin: auto;
}

.header .container {
	height: inherit;
	
	display: flex;
	justify-content: space-between;
	align-items: center;
}

.navbar-menu {
	display: flex;
	flex-wrap: nowrap;
	white-space: nowrap;
	
	padding-left: 0;
	padding-bottom: 0;
}

.navbar-menu li {
	list-style-type: none;
	display: inline-block;
	font-weight: 500;
	z-index: 1;
}

.navbar-menu li a {
	display: inline-block;
	padding: 5px 0;
	margin: 15px;
}
.navbar-menu li:last-child a {
	margin-right: 5px;
}

.active {
	border-bottom: 1px solid #7287C0;
}

#main {
	margin-top: 120px;
}

#menu__toggle, .menu__btn {
	display: none;
}

#main .blink {
	margin-top: 15px;
	user-select: none;
	-webkit-user-select: none;
}

#main .blink .button {
	padding: 0;
}

#main .blink .button a {
	display: block;
	padding: 10px 15px;
	color: #0C0E18;
}

#main .blink .button a:hover {
	color: black;
}

.services-title h2 {
	text-shadow: 0.5px 0 0 black, 
	0 0.5px 0 black, 
	-0.5px 0 0 black, 
	0 -0.5px 0 black;
}

.show-hide {
	display: none;
}

/* MAIN ARTICLE */

.services {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
}

.services h2 {
	font-size: 0.95rem;
}

.article-wrapper h3 {
	font-size: 0.95rem;
}

.center {
	text-align: center;
	
	user-select: none;
	-webkit-user-select: none;
	cursor: default;
}

.services-wrapper {
	width: 380px;
	height: min-content;
	
	background-color: #171a24;
	border-radius: 8px;
	box-shadow: 0 0 5px black inset;
	outline: 0.5px solid black;
	
	margin-top: 50px; 
	padding: 15px;
	
	transition-property: background-color, box-shadow;
	transition-duration: 0.5s;
	transition-timing-function: ease-in-out;
}

.services-wrapper ul {
	max-width: 100%;
	max-height: 100%;
	font-size: 1rem;
	
	margin-top: 15px;
	padding-left: 20px;
}

.services-wrapper i {
  font-size: 50px;
  color: #7287C0;
  
  line-height: 1;
}

.services-wrapper:hover .price-hover {
	color: #5fb2a5;
}

.services-wrapper:hover {
background-color: #131925;
box-shadow: 0 0 4px #F0F8FF inset;
}

.article-wrapper {
	margin-top: 25px;
	padding: 15px;
	
	width: 100%;
	height: max-content;
	
	color: #B7B7B7;
	text-align: justify;
	
	border: 2px solid black;
	background-color: #131925 ;
	box-shadow: 0 0 4px #7287C0;
	border-radius: 8px;
}

.article-wrapper ol {
	max-width: max-content;
	max-height: max-content;
	margin: auto;
	padding: 10px 10px 10px 35px;
	
	column-count: 2; 
	column-gap: 40px;
	font-size: 14px;
	
	background-color: #0C0E18;
	box-shadow: 0 0 5px black;
	border: 1px solid black;
	border-radius: 12px;
	
	user-select: none;
	-webkit-user-select: none;
}
.article-wrapper ol li {break-inside: avoid;}

/* CONTACTS */

fieldset {
	margin: auto;
	
	border-radius: 8px;
	border: 1px solid black;
	box-shadow: 0 0 5px black;
	background-color: rgba(23, 26, 36, 0.6);
}

fieldset:valid { box-shadow: 0 0 4px #7287C0; }

legend { color: #B7B7B7; cursor: default; }

#contact {
	margin-top: 80px;
	user-select: none;
	-webkit-user-select: none;
}

#contact h3 {
	text-align: center;
}

.form-input {
	margin: 10px auto 0;
	position: relative;
	width: 700px;
	height: max-content;
}

.checkbox-container {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	align-items: center;
}

.checkbox {
	display: inline-block;
}

.checkbox label {
	vertical-align: middle;
	margin-left: 5px;
}

.checkbox input {
	vertical-align: middle;
	cursor: pointer;
}

.blink {
	width: max-content;
	height: max-content;
	position: relative;
	margin: 5px auto 0;
	
	overflow: hidden;
	user-select: none;
	cursor: pointer;
}

.blink::after {
  content: '';
  position: absolute;
  top: -50%;
  right: -50%;
  bottom: -50%;
  left: -50%;
  background: linear-gradient(to bottom, rgba(229, 172, 142, 0), rgba(255,255,255,0.5) 50%, rgba(229, 172, 142, 0));
  transform: rotateZ(60deg) translate(-5em, 200%);
}

.blink:hover::after, .blink:focus::after {
	animation: sheen 1.5s forwards; 
}

@keyframes sheen {
  100% {
	transform: rotateZ(60deg) translate(1em, -200%);
  }
}

form {min-width: 60%; margin: auto;}

.input {
	width: 100%;
	height: 40px;
	padding: 0 10px;
	
	outline: none;
	border: none;
	border-radius: 4px;
	
	font-family: inherit;
	font-size: inherit;
	font-weight: 500;
	background-color: #F0F8FF;
	transition: all 0.25s ease-out;
}

input::placeholder {
	color: #0C0E18;
	padding-left: 20px;
}

.input-name::placeholder {
	background-image: url(../img/ios-personadd-outline.png);
	background-repeat: no-repeat;  
	background-size: contain;
}

.input-tel::placeholder {
	background-image: url(../img/iphone.png);
	background-repeat: no-repeat;  
	background-size: contain;
}

input[type="text"]::-moz-placeholder, input[type="tel"]::-moz-placeholder {
	background-position: right;
}

input:focus {
	border: solid 1px #DEDEDE;
	box-shadow: 0 0 5px #0C0E18 inset;
	
	background-image: none;
}

 .input-name + span, .input-tel + span {
  position: absolute;
  right: 10px;
  bottom: 8px;
}

.input-name:valid + span::before, .input-tel:valid + span::before {
  content: '\2713';
  color: green;
}

.textarea::placeholder {
	color: #0C0E18;
	padding-left: 20px;
	
	background-image: url(../img/ios-email-outline.png);
	background-repeat: no-repeat;  
	background-size: contain;
}

textarea::-moz-placeholder {
	background-image: none !important; /* Відключення background-image для Firefox */
}

.textarea {
	width: 100%;
	border-radius: 4px;
	padding: 10px;
	
	resize: none;
	font-family: inherit;
	font-size: inherit;
	font-weight: 500;
	background-color: #F0F8FF;
	outline: none;
	transition: all 0.25s ease-out;
}

.textarea:focus {
	border: solid 1px #DEDEDE;
	box-shadow: 0 0 5px #0C0E18 inset;
}

.button {
	min-width: 25%;
	font-family: inherit;
	font-size: inherit;
	cursor: pointer;
	user-select: none;
	
	padding: 10px 15px;
	
	border: solid 0.5px #DEDEDE;
	border-radius: 4px;
	font-weight: 500;
	color: #0C0E18;
	background-color: #F0F8FF;
	transition: all 0.25s ease-out;
}

.button:hover {
	color: black;
	box-shadow: 0 0 5px #0C0E18 inset;
}

.button:active {
	color: #0C0E18;
	box-shadow: 0 0 12px #0C0E18 inset;
}

.form-button {
  display: block;
  margin: 0 auto;
}

.flex-container {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	align-items: center;
}

.flex-container.form-flex {
	justify-content: center;
}
.flex-container.contact {
	justify-content: center;
}

.contact-info {
	min-width: 25%;
	height: max-content;
	font-size: 14px;
}

.contact-info div i {
	margin-right: 8px;
}

/* ABOUT ME PAGE */

.container-about {
	width: 100%;
	max-width: 1200px;
	margin: auto auto;
}

.about-wrapper {
	width: 100%;
	height: min-content;
	overflow: hidden;
	line-height: 1.6;
	
	background-color: #171a24;
	box-shadow: 0 0 5px black;
	border-radius: 8px;
	outline: 1px solid black;
	
	margin: 20px auto 0;
}

.education-info {
	width: 60%;
	
	margin: auto;
	padding: 15px;
}

.education-info ol {
	padding-left: 0;
	list-style-type: none;
}

.margin-top {
	margin-top: 20px;
}

.photo-wrapper {
	max-width: 450px;
	height: max-content;
	overflow: hidden;
	
	box-shadow: 0 0 5px black;
	border-radius: 8px;
	outline: 1px solid black;
	
	padding: 8px;
	
	user-select: none;
	-webkit-user-select: none;
}

.my_photo {
	max-width: 100%;
	height: auto;
	border-radius: 4px;
	
	vertical-align: top;
	pointer-events: none;
	user-select: none;
}

.ul-level-2 {
	list-style-type: disc;
}

.expirience-container {
	margin-top: 10px;
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	gap: 10px;
}

.expirience {
	width: 205px;
	height: max-content;
	margin: auto;
}

.expirience div {
	height: 50px;
	line-height: 1;
}

.ico-size {
	font-size: 50px;
	color: #7287C0;
}

.checkmark {
	text-align: center;
}

.checkmark::before {
	content: '\2714';
	color: #7287C0;
	padding-right: 5px;
}

.certificate-section {
	margin-top: 80px;
	text-align: center;
	
	user-select: none;
	-webkit-user-select: none;
}

.certificate-wrapper {
	width: 280px;
	height: min-content;
	overflow: hidden;
	
	background-color: rgba(255, 255, 255, 0.05);
	box-shadow: 0 0 4px #c7c7c7;
	border-radius: 8px;
	
	padding: 5px;
	margin-top: 50px;
	
	transition-property: box-shadow;
	transition-duration: 0.3s;
	transition-timing-function: ease-in-out;
}

.certificate-wrapper:hover {
	outline: 0.5px solid #7287C0;
	box-shadow: 0 0 6px #7287C0;
}

.img-wrapper {
	overflow: hidden;
	border-radius: 4px;
}

.certificate {
	width: 270px;
	height: 380px;
	vertical-align: top;
	border-radius: 4px;
	
	transition: transform 0.5s ease-in-out;
	pointer-events: none;
}

.certificate-small {
	width: 270px;
	height: 210px;
	vertical-align: top;
	border-radius: 4px;
	
	transition: transform 0.5s ease-in-out;
	pointer-events: none;
}

.certificate-wrapper:hover .certificate {
	transform: scale(1.01);
}

.certificate-wrapper:active .certificate {
	transform: scale(1.03);
}

.certificate-wrapper:hover .certificate-small {
	transform: scale(1.01);
}

.certificate-wrapper:active .certificate-small {
	transform: scale(1.03);
}

/* FOOTER */

.footer {
	padding: 18px;
	margin-top: 80px;
	height: max-content;
	min-height: 80px;
	background-color: black;
	box-shadow: 0 0 8px #131925;
	
	user-select: none;
	-webkit-user-select: none;
	z-index: 1;
}

.terms {
	overflow: hidden;
	text-align: center;
}

.terms i {
	display: inline-block;
	font-size: 25px;
	margin-left: 10px;
}

.terms a:hover, .terms .tel i:hover {
	display: inline-block;
	color: #8E9FCC;
	transform: translateY(-10%);
	transition: transform 0.2s ease-out;
}

.tel {
	display: inline-block;
	width: max-content;
	height: max-content;

	cursor: pointer;
	position: relative;
}

.tel::after {
	content: "+38 (095) 067 90 87";
	position: absolute;
	width: 150px;
	height: max-content;
	
	top: -100%;
	left: 100%;
	
	z-index: 1;
	display: inline-block;
	vertical-align: text-bottom;
	
	background-color: black;
	padding: 3px 5px;
	border-radius: 4px;
	box-shadow: 0 0 4px #7287C0;
	
	visibility: hidden;
	transition: all 0.3s ease;
}

.tel:hover::after {
	display: inline-block;
	visibility: visible;
	
	top: 4px;
}

@media (min-width: 1200px) {
	
	fieldset {width: 900px;	height: 450px;}
	
}

@media (min-width: 768px) and (max-width: 1200px) {
	
	.input {min-width: 600px;}
	.textarea {min-width: 600px;}
	.photo-wrapper {max-width: 400px;}
}

@media (max-width: 1160px) {
	
	.services {justify-content: space-evenly;}
	
}

@media (max-width: 1000px) {
	
	.flex-direction-column {flex-direction: column;}
	.about-wrapper {padding: 15px;}
	.education-info {width: 100%; padding: 0; margin-top: 20px;}
}

@media (min-width: 480px) and (max-width: 768px) {
	
	.services-wrapper:hover {position: relative;}
	
	.tablet-balls {
		display: none;
		
		position: absolute;
		bottom: 8px;
		right: 0;
		width: 100px;
		height: 100px;
	}
	
	.services-wrapper:hover > .tablet-balls { display: block; }
	
	.ball {
		width: 10px;
		height: 10px;
		margin: 12px auto;
		border-radius: 50px;
	}
	
	.ball:nth-child(1) {
		background: black;
		animation: right 3s infinite ease-in-out;
	}
	
	.ball:nth-child(2) {
		background: black;
		animation: left 2.9s infinite ease-in-out;
	}
	
	.ball:nth-child(3) {
		background: black;
		animation: right 2.85s infinite ease-in-out;
	}
	
	.ball:nth-child(4) {
		background: black;
		animation: left 2.95s infinite ease-in-out;
	}
	
	@keyframes right {
		0% {
			transform: translate(-10px);
		}
		50% {
			transform: translate(10px);
		}
		100% {
			transform: translate(-10px);
		}
	}
	
	@keyframes left {
		0% {
			transform: translate(10px);
		}
		50% {
			transform: translate(-10px);
		}
		100% {
			transform: translate(10px);
		}
	}
	
}

@media (max-width: 260px) and (orientation: portrait) {
	
	.textarea::placeholder {padding-left: 0;background-image: none;}
	
}

@media (max-width: 768px) {
	.logo-wrapper {
		width: 60px;
		height: 60px;
		transition: all 0.25s ease 0s;
	}
	.header {
		height: 70px;
		transition: all 0.25s ease 0s;
	}
	.title {
		position: relative;
		left: -15px;
		transition: all 0.25s ease 0s;
	}
	.logo_container {
		margin-left: 10px;
		transition: all 0.25s ease 0s;
	}
	
	.services-wrapper {width: 95%;}
	
	form {
		width: 95%;
		margin: auto;
	}
	.contact-info {
		margin: auto;
	}
	.show-hide {
		display: block;
	}
	.form-input {width: 100%;}
	
	fieldset { border: none; padding: 0; margin: 0; box-shadow: none; outline: none; background-color: transparent; }
	fieldset:valid { box-shadow: none; }
	legend { display: none; }
	
/* BURGER-MENU */

/* hide checkbox */
#menu__toggle {
  opacity: 0;
}
/* style button */
.menu__btn {
  display: flex; 
  align-items: center;
  position: fixed;
  
  top: 20px;
  right: 20px;
  width: 30px;
  height: 30px;
  
  cursor: pointer;
  z-index: 1;
}

/* add "burger" */
.menu__btn > span,
.menu__btn > span::before,
.menu__btn > span::after {
  display: block;
  position: absolute;
  width: 100%;
  height: 2px;
  background-color: #FAFAFA;
}
.menu__btn > span::before {
  content: '';
  top: -8px;
}
.menu__btn > span::after {
  content: '';
  top: 8px;
}
/* container menu */
.navbar-menu {
  display: block;
  position: fixed;
  visibility: hidden;
  top: -70px;
  left: 0;
  width: 100%;
  height: auto;
  margin: 0;
  padding: 0;
  background-color: black;
  box-shadow: 1px 0px 6px rgba(0, 0, 0, .2);
  transition: all 0.3s ease 0s;
}
.navbar-menu li {
	display: flex;
	flex-direction: column;
}
.navbar-menu li a {
	margin: 5px;
}
/* menu active */
#menu__toggle:checked ~ .menu__btn > span {transform: rotate(45deg);}

#menu__toggle:checked ~ .menu__btn > span::before {
  top: 0;
  transform: rotate(0);
}
#menu__toggle:checked ~ .menu__btn > span::after {
  top: 0;
  transform: rotate(90deg);
}
#menu__toggle:checked ~ .navbar-menu {
  visibility: visible;
  left: 0;
  top: 70px;
}
.menu__btn > span, .menu__btn > span::before, .menu__btn > span::after {transition-duration: 0.25s;}

}

@media (max-width: 767px) {
	
form {font-size: 16px;}

.article-wrapper ol {column-count: initial;}

}

@media (max-width: 400px) {

.education-info h2 {font-size: 14px;}
.education-info {font-size: 14px;}
.services-wrapper ul {font-size: 14px;}
.contact-info {font-size: 14px;}

}

@media (max-width: 360px) {

.education-info h2 {font-size: 13px;}
.education-info {font-size: 13px;}
.services-wrapper ul {font-size: 13px;}
.contact-info {font-size: 13px;}
.article-wrapper ol {font-size: 13px;}

}

@media (max-width: 320px) {
	
	.title {font-size: 0.95rem;}
	.logo_container {column-gap: 3px;}
	.services-wrapper ul {font-size: 11px;}
	.contact-info {font-size: 12px;}
	form {font-size: 13px;}
	
}

@media (max-width: 280px) {
	
	.title {font-size: 0.85rem;}
	.services-wrapper ul {font-size: 10px;}
	.footer p {font-size: 10px;}
	
}

/* 404 PAGE NOT FOUND */

.page-404 {
	width: 100%;
	height: 100%;
	overflow: hidden;
}

.eror-404 {
	display: flex;
	justify-content: center;
	
	width: 100%;
	height: max-content;
	margin: auto;
	text-align: center;
}

@keyframes as {
	0% {
		opacity: 0;
	}
	10% {
		opacity: .3;
	}
	20% {
		opacity: .1;
	}
	30% {
		opacity: .5;
	}
	40% {
		opacity: 0;
	}
	50% {
		opacity: .8;
	}
	55% {
		opacity: 0;
	}
	55% {
		opacity: 0;
	}
}

.frame {
	z-index: 0;
	position: absolute;
	left: 0;
	top: 0;
	width: 100%;
	height: 100%;
	background: -moz-radial-gradient(center, ellipse cover, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, 0) 19%, rgba(0, 0, 0, 0.9) 100%); /* FF3.6+ */
	background: -webkit-gradient(radial, center center, 0px, center center, 100%, color-stop(0%, rgba(0, 0, 0, 0)), color-stop(19%, rgba(0, 0, 0, 0)), color-stop(100%, rgba(0, 0, 0, 0.9))); /* Chrome,Safari4+ */
	background: -webkit-radial-gradient(center, ellipse cover, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, 0) 19%, rgba(0, 0, 0, 0.9) 100%); /* Chrome10+,Safari5.1+ */
	background: -o-radial-gradient(center, ellipse cover, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, 0) 19%, rgba(0, 0, 0, 0.9) 100%); /* Opera 12+ */
	background: -ms-radial-gradient(center, ellipse cover, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, 0) 19%, rgba(0, 0, 0, 0.9) 100%); /* IE10+ */
	background: radial-gradient(ellipse at center, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, 0) 19%, rgba(0, 0, 0, 0.9) 100%); /* W3C */
	filter: progid:DXImageTransform.Microsoft.gradient(startColorstr = '#00000000', endColorstr = '#e6000000', GradientType = 1); /* IE6-9 fallback on horizontal gradient */

	user-select: none;
	-webkit-user-select: none;
	cursor: default;
}

.frame div {
	position: absolute;
	left: 0;
	top: -20%;
	width: 100%;
	height: 20%;
	background-color: rgba(0, 0, 0, .12);
	box-shadow: 0 0 10px rgba(0, 0, 0, .3);
	animation: asd 12s linear infinite;
}

.frame div:nth-child(1) {
	animation-delay: 0;
}

.frame div:nth-child(2) {
	animation-delay: 4s;
}

.frame div:nth-child(3) {
	animation-delay: 8s;
}

@keyframes asd {
	0% {
		top: -20%;
	}
	100% {
		top: 100%;
	}
}

.page-404 h2 {
	z-index: 0;
	position: absolute;
	width: 100%;
	height: max-content;
	margin: auto;
	
	font: bold 200px/200px Arial, sans-serif;
	text-align: center;
	color: transparent;
	text-shadow: 0 0 15px rgba(0, 0, 0, 1);
	animation: asdd 2s linear infinite;
	
	user-select: none;
	-webkit-user-select: none;
	cursor: default;
}

@keyframes asdd {
	0% {
		text-shadow: 0 0 3px rgba(0, 0, 0, 1);
	}
	33% {
		text-shadow: 0 0 5px rgba(0, 0, 0, .8);
	}
	66% {
		text-shadow: 0 0 10px rgba(0, 0, 0, .7);
	}
	100% {
		text-shadow: 0 0 15px rgba(0, 0, 0, 1);
	}
}