:root {
	--font-default: "Montserrat", sans-serif;
	--font-title: "Playfair Display", sans-serif;
	--color-white: #fff;
	--color-black: #000;
	--color-blue: #010260;
	--color-grey: #f0f0f0;

	--gradient: linear-gradient(135.91deg, #010260 2.72%, #00588c 74.71%);

	--text-heading-lg: 700 clamp(2rem, 4vw, 4rem) / 1 var(--font-title);
	--text-heading: 400 clamp(1.5rem, 3.15vw, 3rem) / 1 var(--font-title);

	--text-body: 400 clamp(0.75rem, 1vw, 1.125rem) var(--font-default);

	--text-menu-items: 400 clamp(0.65rem, 1vw, 0.875rem) / 1 var(--font-default);

	scroll-behavior: smooth;
}

html {
	scroll-behavior: smooth;
	scroll-padding: 80px;
}

/* General */
body {
	font: var(--text-body);
	color: var(--color-black);
	background-color: var(--color-white);
}
a {
	color: var(--color-orange);
	text-decoration: none;

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

h1,
h3 {
	font: var(--text-heading);
	color: var(--color-white);
	margin: 0;
}

h2 {
	font: var(--text-heading-lg);
	color: var(--color-blue);
}

h4,
h5,
h6 {
	font: var(--text-heading);
	margin: 0;
}

p,
span {
	font: var(--text-body);
	margin: 0;

	& strong {
		font-weight: 800;
	}
}

li {
	font: var(--text-body);
}

img {
	max-width: 100%;
	height: auto;
}

/* Buttons */
.btn,
.btn:focus {
	padding: 0 1.125rem;
	height: 2.85rem;
	min-width: clamp(80px, 20vw, 310px);
	font: var(--text-body);
	font-family: var(--font-title);
	font-weight: 500;
	border: 0;
	border-radius: 100px;
	transition: 0.567s;

	display: flex;
	align-items: center;
	justify-content: center;

	&.btn-default {
		color: var(--color-white);
		background: var(--color-blue);

		&:hover {
			transform: scale(1.05);
		}
	}

	&.btn-white {
		color: var(--color-white);
		background: transparent;
		border: 2px solid var(--color-white);

		&:hover {
			transform: scale(1.05);
		}
	}
	&.btn-white-2 {
		color: var(--color-blue);
		background: var(--color-white);
		border: 2px solid var(--color-white);

		&:hover {
			transform: scale(1.05);
		}
	}
	&.btn-blue {
		color: var(--color-blue);
		background: transparent;
		border: 2px solid var(--color-blue);

		&:hover {
			background: transparent;
		}
	}
}

.row {
	row-gap: clamp(1rem, 1.5vw, 1.5rem);
}

.swiper-button-next {
	background-image: url("../assets/images/arrow-right.svg");
	right: 2px;
	width: 38px;
	height: 38px;
	background-size: 24px 24px;
	margin-top: -14px;

	background-color: var(--color-blue);
	border-radius: 50%;
	background-position: 75%;
}

.swiper-button-prev {
	background-image: url("../assets/images/arrow-left.svg");
	left: 2px;
	width: 38px;
	height: 38px;
	background-size: 24px 24px;
	margin-top: -14px;

	background-color: var(--color-blue);
	border-radius: 50%;
	background-position: 4px;
}

.swiper-container {
	padding-block: 0 2rem;
}

/* Header */
#header {
	background-color: var(--color-blue);
	transition:
		transform 0.5s ease,
		height 0.3s linear;
	z-index: 997;
	height: 90px;

	display: flex;
	flex-direction: column;

	&.header-scrolled {
		box-shadow: 0px 4px 4px 0px #00000040;
	}

	& .logo img {
		width: auto;
		height: 60px;
	}

	& .main {
		gap: clamp(100px, 12vw, 130px);
		justify-content: space-between;
		align-items: center;

		flex: 1;
	}

	& .social .styled-icons {
		padding: 0;
		margin: 0;
		display: flex;

		& li {
			list-style: none;
			margin: 0 5px;
		}

		& a {
			position: relative;
			display: block;
			width: 28px;
			height: 28px;
			border-radius: 7px;
			border: 2px solid var(--color-grey-dark);
			background-color: transparent;
			text-align: center;
			transition: 0.6s;
			padding: 0;

			&:hover {
				background-color: var(--color-orange);
				border-color: var(--color-white);

				& i {
					color: var(--color-white);
				}
			}
		}

		& i {
			font-size: 16px;
			line-height: 27px;
			transition: 0.3s;
			color: var(--color-grey-dark);
		}
	}
}

/* Navbar */
.navbar {
	padding: 0;

	& ul {
		margin: 0;
		padding: 0;

		display: flex;
		column-gap: clamp(2rem, 4.2vw, 4rem);

		list-style: none;
		align-items: center;
	}
	& li {
		position: relative;
	}
	& > ul > li {
		white-space: nowrap;
		& > a:before {
			content: "";
			position: absolute;
			width: 17px;
			height: 4px;
			bottom: -6px;
			left: 50%;
			transform: translateX(-50%);
			background-color: transparent;
			border-radius: 2px;
			visibility: visible;
			width: 0px;
			transition: all 0.3s ease-in-out 0s;
		}
		& > a.button:before {
			visibility: hidden;
		}
	}
	& .btn {		
		& a {
			color: var(--color-blue);
		}

		&:hover {
			& a {
				color: var(--color-blue);
				&:hover {
					color: var(--color-blue);
				}
			}
		}
	}
	& a,
	& a:focus {
		font: var(--text-body);
		font-family: var(--font-title);
		text-transform: uppercase;

		display: flex;
		align-items: center;
		justify-content: space-between;

		padding: 0;
		color: var(--color-white);
		white-space: nowrap;
		transition: 0.3s;
		position: relative;

		&:hover,
		&.active,
		&.active:focus {
			color: var(--color-grey);

			&:before {
				visibility: visible;
				width: 17px;
			}
		}
	}
	& li:hover > a {
		color: var(--color-grey);
		&:before {
			visibility: visible;
			width: 17px;
		}
	}
	& .active:before,
	& .current-menu-item a:before {
		visibility: visible;
		width: 17px;
	}
	&.page {
		& a,
		& a:focus {
			color: var(--color-grey);
		}
		& .current-menu-item a:before {
			visibility: visible;
			width: 17px;
		}
	}
	& .dropdown {
		& ul {
			display: block;
			position: absolute;
			left: 28px;
			top: calc(100% + 30px);
			margin: 0;
			padding: 10px 0;
			z-index: 99;
			opacity: 0;
			visibility: hidden;
			background: var(--color-beige);
			box-shadow: 0px 0px 30px rgba(127, 137, 161, 0.25);
			transition: 0.3s;
			border-radius: 4px;
			& li {
				min-width: 200px;
			}
			& a {
				padding: 10px 20px;
				font-size: 15px;
				text-transform: none;
				font-weight: 600;
				color: var(--color-orange);
				& i {
					font-size: 12px;
				}
				&:hover {
					color: var(--color-grey);
				}
			}
			& .active:hover,
			& li:hover > a {
				color: var(--color-grey);
			}
		}
		&:hover > ul {
			opacity: 1;
			top: 100%;
			visibility: visible;
		}
		& .dropdown {
			& ul {
				top: 0;
				left: calc(100% - 30px);
				visibility: hidden;
			}
			&:hover > ul {
				opacity: 1;
				top: 0;
				left: 100%;
				visibility: visible;
			}
		}
	}
	&.navbar-mobile {
		& > ul > li > a {
			&:before {
				visibility: hidden;
				height: 0;
				width: 0;
				background-color: transparent;
			}
			&:focus,
			&:hover,
			&:hover:focus {
				color: var(--color-grey);
			}
		}
		& .current-menu-item a:before {
			visibility: hidden;
			height: 0;
			width: 0;
			background-color: transparent;
		}
		& .button,
		& .button:focus {
			margin: 10px 20px;
		}
	}
	& .menu-item-has-children {
		& ul {
			display: block;
			position: absolute;
			left: 28px;
			top: calc(100% + 30px);
			margin: 0;
			padding: 10px 0;
			z-index: 99;
			opacity: 0;
			visibility: hidden;
			background: transparent;
			box-shadow: 0px 0px 30px rgba(127, 137, 161, 0.25);
			transition: 0.3s;
			border-radius: 1px;
		}
		&:hover > ul {
			opacity: 1;
			top: 100%;
			visibility: visible;
		}
	}
}

/* Mobile Navigation */
.mobile-nav-show {
	position: absolute;
	right: 15px;
	font-size: 28px;
	cursor: pointer;
	line-height: 0;
	transition: 0.5s;
	margin-left: 10px;
}

.mobile-nav-hide {
	color: var(--color-orange);
	font-size: 32px;
	cursor: pointer;
	line-height: 0;
	transition: 0.5s;
	position: fixed;
	right: 20px;
	top: 20px;
	z-index: 9999;
}

.mobile-nav-active {
	overflow: hidden;
	& .navbar {
		right: 0;
		&:before {
			content: "";
			position: fixed;
			inset: 0;
			background: rgba(0, 0, 0, 0.6);
			z-index: 9996;
		}
	}
	& #navbar_dir.navbar:before {
		background: transparent;
	}
}

i.mobile-nav-toggle {
	color: var(--color-white);
	&.mobile-nav-show {
		color: var(--color-white);
	}
}

.search-menu {
	background-color: #f1f1f1;
	padding: 5px 0;
}

/* Section */
section {
	padding-block: 4rem;
}

.swiper-pagination-bullet-active {
	background: var(--color-orange);
}

.to_right {
	margin-left: auto;
}
.to_left {
	margin-right: auto;
}
.section-title {
	margin-bottom: 2.5rem;
}
.mb_only {
	display: none;
}

/* Hero */
#hero {
	padding: 0;

	& .banner {
		position: relative;

		& .img-banner {
			width: 100%;
			height: auto;

			overflow: hidden;

			& img {
				width: 100%;
				height: 100%;

				object-fit: cover;
				object-position: center;
			}
		}

		& .text {
			position: absolute;
			inset: 0;

			width: 100%;
			height: 100%;

			display: flex;
			align-items: center;

			& h1 {
				color: var(--color-white);
			}
		}
	}
}

#premiacoes {
	background-color: var(--color-grey);

	.section-title {
		margin-bottom: clamp(2rem, 3vw, 3rem);
		text-align: center;

		h2 {
			text-transform: uppercase;
			font-weight: 700;
		}
	}

	& .swiper-slide {
		max-width: 810px;
		height: 900px;

		display: flex;
		align-items: center;
		justify-content: center;

		.wrapper {
			width: 100%;
			height: 100%;

			img {
				width: 100%;
				height: 100%;

				object-fit: contain;
				object-position: center;
			}
		}
	}
}

#selos {
	background: var(--gradient);
	padding-top: 0;

	.certificados {
		position: relative;
		top: 50%;

		box-shadow: 20px 20px 24px 0px #00000040;

		padding: 0;

		.box {
			width: 100%;
			aspect-ratio: 1/1;

			padding: 0.5rem;
			background-color: var(--color-white);

			box-shadow: -4px 1px 20px 0 #0000005c;

			& img {
				width: 100%;
				height: 100%;

				object-fit: contain;
				object-position: center;
			}
		}
	}
}

/* Sobre */
#sobre {
	padding-top: clamp(5rem, 8.5vw, 10rem);

	.image-wrapper {
		width: 100%;
		aspect-ratio: 16/10;

		& img {
			width: 100%;
			height: auto;
		}
	}
}

/* Estilo do Overlay (Fundo escuro) */
.gallery-lightbox {
	position: fixed;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background: rgba(0, 0, 0, 0.9);
	display: none; /* Escondido por padrão */
	justify-content: center;
	align-items: center;
	z-index: 9999;
	cursor: zoom-out;

	& img {
		max-width: 90%;
		max-height: 90%;
		box-shadow: 0 0 20px rgba(0, 0, 0, 0.5);
		border: 3px solid #fff;
		cursor: default;
		animation: zoomIn 0.3s ease;
	}
}
/* Botão de Fechar */
.lightbox-close {
	position: absolute;
	top: 20px;
	right: 30px;
	color: #fff;
	font-size: 40px;
	cursor: pointer;
	font-weight: bold;
}

@keyframes zoomIn {
	from {
		transform: scale(0.8);
		opacity: 0;
	}
	to {
		transform: scale(1);
		opacity: 1;
	}
}

/* Servicos */
#servicos {
	color: var(--color-white);

	text-align: center;

	h2 {
		text-transform: uppercase;
		color: var(--color-white);
	}

	.box {
		.icon {
			width: 100%;

			img {
				width: 90px;
				height: 90px;

				object-fit: contain;
				object-position: center;
			}
		}

		.title {
			padding-top: 0.5rem;

			p {
				font: 400 clamp(1.125rem, 2vw, 1.75rem) var(--font-default);
			}
		}
	}
}

#contato {
	background-color: var(--color-blue);

	.btn {
		border: 2px solid var(--color-white);
		color: var(--color-white);

		&:hover {
			background-color: var(--color-white);
			color: var(--color-blue);
		}
	}
}

/*
    * Footer
*/
footer {
	padding: 70px 0 75px;

	color: var(--color-blue);
	background-color: var(--color-grey);

	h2 {
		text-align: center;
	}

	& .social .styled-icons {
		padding: 0;
		margin: 0;
		display: flex;
		justify-content: center;

		& li {
			list-style: none;
			margin: 0 5px;
		}

		& a {
			position: relative;
			display: block;
			width: 42px;
			height: 42px;
			border-radius: 50%;
			border: 2px solid var(--color-black);
			background-color: transparent;
			text-align: center;
			transition: 0.6s;
			padding: 0;

			display: flex;
			align-items: center;
			justify-content: center;

			& i {
				color: var(--color-black);
				font-size: 1.5rem;
			}

			&:hover {
				background-color: var(--color-orange);
				border-color: var(--color-white);

				& i {
					color: var(--color-white);
				}
			}
		}

		& i {
			font-size: 16px;
			line-height: 27px;
			transition: 0.3s;
			color: var(--color-white);
		}
	}

	.btn {
		background-color: transparent;
		border: 2px solid var(--color-orange);
		color: var(--color-orange);
		font: var(--text-body);

		&:hover {
			color: var(--color-white);
			background-color: var(--color-orange);
		}
	}

	img {
		width: 380px;
		max-width: 80%;

		margin-inline: auto;
	}
}

/*
    * Outras Paginas
*/
#blog-single {
	h1 {
		font: var(--text-heading-md);
		text-align: left;
	}
}

/* end */
.pagination {
	display: flex;
	flex-direction: row;
	align-items: center;
	justify-content: center;
}
.pagination-item {
	margin-right: 18px;
}
.pagination-item a {
	padding: 11px 16px 11px 16px;
	display: inline-block;
	transition: 0.2s all;
	color: var(--color-demi-black);
	background-color: var(--color-black);
	border: solid 1px var(--color-black);
	border-radius: 10px;
}
.pagination-item a:hover {
	color: var(--color-black);
	background-color: transparent;
	border: solid 1px var(--color-demi-black);
}
.pagination-item span.current {
	padding: 11px 16px 11px 16px;
	display: inline-block;
	transition: 0.2s all;
	color: var(--color-black);
	background-color: var(--color-black);
	border: solid 1px var(--color-black);
	border-radius: 10px;
}

/* Form */
.form-control {
	background-color: white;
	color: var(--color-black);
	height: 55px;
	font-family: var(--font-default);
	font-weight: 400;
	border-radius: 10px;
}
.form-group input::-moz-placeholder {
	color: var(--color-black);
}
.form-group input:-ms-input-placeholder {
	color: var(--color-black);
}
.form-group input::placeholder {
	color: var(--color-black);
	padding: 0 10px;
}
.form-group textarea::placeholder {
	color: var(--color-black);
	padding: 0 10px;
}
select {
	color: var(--color-black) !important;
	background-color: var(--color-white);
}
option:not(:first-of-type) {
	color: var(--color-black);
}
select option:first-child {
	display: none;
}
select.form-control {
	-webkit-appearance: menulist !important;
	-moz-appearance: menulist !important;
	-ms-appearance: menulist !important;
	-o-appearance: menulist !important;
	appearance: menulist !important;
}
textarea.form-control {
	min-height: calc(10.5em + 0.75rem + 2px);
	border-radius: 35px;
}
.form-control:focus,
form input[type="text"]:focus,
form input[type="email"]:focus,
form input[type="number"]:focus,
form input[type="url"]:focus,
form input[type="search"]:focus,
form input[type="tel"]:focus,
form input[type="password"]:focus,
form input[type="date"]:focus,
form input[type="color"]:focus,
form select:focus,
form textarea:focus {
	color: var(--color-blue);
	font-weight: 500;
	background-color: white;
	-webkit-box-shadow: 0 0 3px rgba(0, 0, 0, 0.1);
	-moz-box-shadow: 0 0 3px rgba(0, 0, 0, 0.1);
	box-shadow: 0 0 3px rgba(0, 0, 0, 0.1);
	outline: none;
}
label.form-control {
	color: var(--color-demi-black);
	padding-top: 9px;
}

/* Contact Form 7 */
.wpcf7-not-valid-tip {
	font-weight: 700 !important;
	color: var(--color-orange);
}
.wpcf7 form.invalid .wpcf7-response-output,
.wpcf7 form.unaccepted .wpcf7-response-output,
.wpcf7 form.payment-required .wpcf7-response-output {
	border-color: var(--color-orange);
}
.wpcf7 form .wpcf7-response-output {
	color: var(--color-white);
}

/* Voltar ao topo */
.back-to-top {
	visibility: hidden;
	background-color: var(--color-black);
	color: var(--color-demi-black);
	width: 72px;
	height: 72px;
	text-align: center;
	line-height: 72px;
	position: fixed;
	bottom: 110px;
	right: 15px;
	z-index: 90;
	cursor: pointer;
	opacity: 0;
	border-radius: 3px;
	-webkit-transform: translateZ(0);
	transform: translateZ(0);
	transition: all 0.4s;
}
.back-to-top i {
	font-size: 22px;
	vertical-align: middle;
}
.back-to-top:hover {
	background-color: var(--color-white);
	color: var(--color-demi-black);
	opacity: 1;
}
.back-to-top.show {
	visibility: visible;
	opacity: 1;
}

/*
  * Botao Flutuante Whatsapp
*/
#wa_button {
	bottom: 0px;
	right: -35px;
	position: fixed;
	z-index: 999;
}
.img-circle {
	background-color: #25d366;
	box-sizing: content-box;
	-webkit-box-sizing: content-box;
}
.circlephone {
	box-sizing: content-box;
	-webkit-box-sizing: content-box;
	border: 2px solid #25d366;
	width: 150px;
	height: 150px;
	bottom: -25px;
	right: 10px;
	position: absolute;
	-webkit-border-radius: 100%;
	-moz-border-radius: 100%;
	border-radius: 100%;
	opacity: 0.5;
	-webkit-animation: circle-anim 2.4s infinite ease-in-out !important;
	-moz-animation: circle-anim 2.4s infinite ease-in-out !important;
	-ms-animation: circle-anim 2.4s infinite ease-in-out !important;
	-o-animation: circle-anim 2.4s infinite ease-in-out !important;
	animation: circle-anim 2.4s infinite ease-in-out !important;
	-webkit-transition: all 0.5s;
	-moz-transition: all 0.5s;
	-o-transition: all 0.5s;
	transition: all 0.5s;
}
.circle-fill {
	box-sizing: content-box;
	-webkit-box-sizing: content-box;
	background-color: #25d366;
	width: 100px;
	height: 100px;
	bottom: 0px;
	right: 35px;
	position: absolute;
	-webkit-border-radius: 100%;
	-moz-border-radius: 100%;
	border-radius: 100%;
	border: 2px solid transparent;
	-webkit-animation: circle-fill-anim 2.3s infinite ease-in-out;
	-moz-animation: circle-fill-anim 2.3s infinite ease-in-out;
	-ms-animation: circle-fill-anim 2.3s infinite ease-in-out;
	-o-animation: circle-fill-anim 2.3s infinite ease-in-out;
	animation: circle-fill-anim 2.3s infinite ease-in-out;
	-webkit-transition: all 0.5s;
	-moz-transition: all 0.5s;
	-o-transition: all 0.5s;
	transition: all 0.5s;
}
.img-circle {
	box-sizing: content-box;
	-webkit-box-sizing: content-box;
	width: 72px;
	height: 72px;
	bottom: 14px;
	right: 49px;
	position: absolute;
	-webkit-border-radius: 100%;
	-moz-border-radius: 100%;
	border-radius: 100%;
	border: 2px solid transparent;
	opacity: 0.9;
}
.img-circleblock {
	box-sizing: content-box;
	-webkit-box-sizing: content-box;
	width: 72px;
	height: 72px;
	background-image: url("../assets/images/wp.png");
	background-position: center center;
	background-repeat: no-repeat;
	animation-name: tossing;
	-webkit-animation-name: tossing;
	animation-duration: 1.5s;
	-webkit-animation-duration: 1.5s;
	animation-iteration-count: infinite;
	-webkit-animation-iteration-count: infinite;
}
.img-circle:hover {
	opacity: 1;
}
@keyframes pulse {
	0% {
		transform: scale(0.9);
		opacity: 1;
	}
	50% {
		transform: scale(1);
		opacity: 1;
	}
	100% {
		transform: scale(0.9);
		opacity: 1;
	}
}
@-webkit-keyframes pulse {
	0% {
		-webkit-transform: scale(0.95);
		opacity: 1;
	}
	50% {
		-webkit-transform: scale(1);
		opacity: 1;
	}
	100% {
		-webkit-transform: scale(0.95);
		opacity: 1;
	}
}
@keyframes tossing {
	0% {
		transform: rotate(-8deg);
	}
	50% {
		transform: rotate(8deg);
	}
	100% {
		transform: rotate(-8deg);
	}
}
@-webkit-keyframes tossing {
	0% {
		-webkit-transform: rotate(-8deg);
	}
	50% {
		-webkit-transform: rotate(8deg);
	}
	100% {
		-webkit-transform: rotate(-8deg);
	}
}
@-moz-keyframes circle-fill-anim {
	0% {
		-moz-transform: rotate(0deg) scale(0.7) skew(1deg);
		opacity: 0.2;
	}
	50% {
		-moz-transform: rotate(0deg) -moz-scale(1) skew(1deg);
		opacity: 0.2;
	}
	100% {
		-moz-transform: rotate(0deg) scale(0.7) skew(1deg);
		opacity: 0.2;
	}
}
@-webkit-keyframes circle-fill-anim {
	0% {
		-webkit-transform: rotate(0deg) scale(0.7) skew(1deg);
		opacity: 0.2;
	}
	50% {
		-webkit-transform: rotate(0deg) scale(1) skew(1deg);
		opacity: 0.2;
	}
	100% {
		-webkit-transform: rotate(0deg) scale(0.7) skew(1deg);
		opacity: 0.2;
	}
}
@-o-keyframes circle-fill-anim {
	0% {
		-o-transform: rotate(0deg) scale(0.7) skew(1deg);
		opacity: 0.2;
	}
	50% {
		-o-transform: rotate(0deg) scale(1) skew(1deg);
		opacity: 0.2;
	}
	100% {
		-o-transform: rotate(0deg) scale(0.7) skew(1deg);
		opacity: 0.2;
	}
}
@keyframes circle-fill-anim {
	0% {
		transform: rotate(0deg) scale(0.7) skew(1deg);
		opacity: 0.2;
	}
	50% {
		transform: rotate(0deg) scale(1) skew(1deg);
		opacity: 0.2;
	}
	100% {
		transform: rotate(0deg) scale(0.7) skew(1deg);
		opacity: 0.2;
	}
}
