/* Reset universal: o framework só aplica box-sizing a <div>; aqui forçamos para <section>/<article>/<header>/<footer>/<nav>/<main> evitarem overflow horizontal. */
*, *::before, *::after{box-sizing:border-box;}

html, body{max-width:100%; overflow-x:hidden;}
body{margin:0px; padding:0px; font-family: "Poppins", sans-serif;-webkit-tap-highlight-color: transparent; background-color:#f7f7f7}
img, video, picture, svg{max-width:100%; height:auto;}
a:link,a:visited,a:hover,a:active {color:#333;}

.hide{display:none;}
.show{display:block;}

/*-------------------------------------------------------------------
SKIP LINK (acessibilidade)
--------------------------------------------------------------------*/
.skip-link{position:absolute; left:-9999px; top:0; z-index:99999; background:#015b7d; color:#fff; padding:12px 20px; border-radius:0 0 8px 0; text-decoration:none; font-weight:600;}
.skip-link:focus,.skip-link:focus-visible{left:0;}

/*-------------------------------------------------------------------
MEDIDAS LAYOUT
--------------------------------------------------------------------*/
.buttons{position:relative; float:left; background-color:#4f9fbd; color:#fff; padding:14px 45px 14px 45px; border-radius:50px; border:none; font-weight:600; cursor:pointer;font-family: "Poppins", sans-serif; font-size:1.1em; text-align:center; -webkit-transition: all 0.5s; transition:  all 0.5s;}
.buttons:hover{opacity:0.8; -webkit-transition: all 0.5s; transition:  all 0.5s;}

@media screen and (max-width: 1023px) {
.site-width-top{width:98%;position:relative;margin:0 auto;}
.site-width{width:90%;position:relative;margin:0 auto;}
}
@media screen and (max-width: 360px) {
.buttons{padding:12px 35px 12px 35px; font-size:1em;}
}
@media screen and (min-width: 1024px) and (max-width: 2020px) {
.site-width-top{width:90vw;position:relative;margin:0 auto;}
.site-width{width:80vw;position:relative;margin:0 auto;}
}
@media screen and (min-width: 1024px) and (max-width: 1280px) {
.site-width{width:84vw;}
.buttons{padding:10px 45px 10px 45px; font-size:0.8em;}
}
@media screen and (min-width: 2021px){
.site-width-top{width:1700px;position:relative;margin:0 auto;}
.site-width{width:1550px;position:relative;margin:0 auto;}
}

/*-------------------------------------------------------------------
SITE
--------------------------------------------------------------------*/
.topo-gradiante{height:1400px; background-color:#f7f7f7;}

.site-content{width:100%; position:absolute; top:0px; z-index:1;}

/*-------------------------------------------------------------------
PÁGINAS TEXTOS
--------------------------------------------------------------------*/
.paginas-texto{
	font-size:1em;
	color:#333;
	line-height:2em;
}
@media screen and (max-width: 1023px) {
.paginas-texto{
	font-size:0.85em;
}
}

/*-------------------------------------------------------------------
BARRA TOPO
--------------------------------------------------------------------*/
.topo-bar{margin-top:20px; display: flex; justify-content: center; align-items: center;}
.topo-bar-logo,.topo-bar-menu,.topo-bar-whatsapp{position:relative; float:left; display: flex; justify-content: center; align-items: center;}
.topo-bar-logo{width:15%; cursor:pointer;}
.topo-bar-menu{width:70%; padding:0px 10px 0px 20px;}
a.topo-pagina{position:relative; float:left; cursor:pointer; text-decoration:none; color:#000; font-size:1em; font-weight:600; padding:0px 20px 0px 20px; margin:0px 15px 0px 15px;-webkit-transition: all 0.3s;transition: all 0.3s;}
a.topo-pagina:hover,a.topo-pagina.active{color:#4e9fbd;-webkit-transition: all 0.3s;transition: all 0.3s;}

.topo-bar-whatsapp{width:15%;}
.topo-bar-logo img{width:220px !important; height:auto; margin-top:0px;}

.topo-menu-box,.topo-whatsapp{height:75px;position:relative; float:left; background-color:#fff; padding:20px; border-radius:20px; display: flex; justify-content: center; align-items: center;
box-shadow: 0px 0px 36px -1px rgba(0,0,0,0.16);
}
.topo-menu-box{width:100%;}
.topo-whatsapp{width:100%; cursor:pointer; -webkit-transition: all 1s ease;transition: all 1s ease;}
.topo-whatsapp:hover{-webkit-transition: all 1s ease;transition: all 1s ease; opacity:0.8}
.topo-whatsapp i{font-size:2.3em; color:#5fa727;}
.topo-whatsapp span{font-size:1.1em; font-weight:400; color:#5fa727; padding-left:20px;}

.barmenudown,.barmenuup{width:100%; position:fixed; z-index:3; padding:0px 100px 0px 100px; display: flex; justify-content: center; align-items: center; -webkit-transition: all 1s ease;transition: all 1s ease;}
.barmenuup{top:-100px; opacity:0; padding:0px 200px 0px 200px;}
.barmenudown{top:0px; opacity:1;}

.barmenubox{width:100%; height:75px; position:relative; float:left; text-align: center; background-color:#fff; padding:20px; border-bottom-left-radius:20px; border-bottom-right-radius:20px; display: flex; justify-content: center; align-items: center;
box-shadow: 0px 0px 36px -1px rgba(0,0,0,0.16);
}

.minilogo{width:60px; height:60px; position:absolute; cursor:pointer; left:10px; background-image:url(/images/touch-icon.webp); background-repeat:no-repeat; background-position:left center; background-size:contain;}

@media screen and (min-width: 1024px) and (max-width: 1365px) {
.topo-menu-box,.topo-whatsapp{height:55px; padding:10px; border-radius:15px;}
a.topo-pagina{font-size:0.75em; padding:0px 5px 0px 5px; margin:0px 10px 0px 10px;}
.topo-bar-logo{width:17%;}
.topo-bar-menu{width:68%;}
.topo-bar-logo img{width:130px !important;}
.topo-whatsapp i{font-size:1.4em;}
.topo-whatsapp span{font-size:0.8em; padding-left:10px;}
.barmenudown,.barmenuup{padding:0px 50px 0px 50px;}
.barmenuup{ padding:0px 100px 0px 100px;}
.barmenubox{height:60px;}
.minilogo{width:40px; height:40px; left:10px;}
}
@media screen and (min-width: 1280px) and (max-width: 1919px) {
.topo-bar-logo{width:17%;}
.topo-bar-menu{width:68%;}
.topo-bar-logo img{width:180px !important;}
a.topo-pagina{font-size:0.85em;}
.topo-whatsapp i{font-size:1.7em;}
.topo-whatsapp span{font-size:0.9em; padding-left:10px;}
.barmenubox{height:70px;}
.minilogo{width:49px; height:49px;}
}

/*-------------------------------------------------------------------
HERO TOPO (DESKTOP / TABLET) - GRELHA 2 COLUNAS
--------------------------------------------------------------------*/
#bloco-sobre{padding-top:120px; padding-bottom:60px;}

.hero-grid{
	display:grid;
	grid-template-columns:1.05fr 1fr;
	gap:60px;
	align-items:center;
	padding:0px 30px;
}

.hero-left{
	animation: heroFadeUp 0.9s ease-out both;
}

.hero-tagline{
	display:inline-flex;
	align-items:center;
	gap:10px;
	background:rgba(79,159,189,0.10);
	color:#015b7d;
	font-size:0.78em;
	font-weight:600;
	padding:8px 16px;
	border-radius:50px;
	letter-spacing:0.4px;
	text-transform:uppercase;
}
.hero-tagline-pulse{
	width:8px;
	height:8px;
	border-radius:50%;
	background:#22c55e;
	box-shadow:0 0 0 0 rgba(34,197,94,0.7);
	animation:heroPulse 1.8s infinite;
}
@keyframes heroPulse{
	0%{box-shadow:0 0 0 0 rgba(34,197,94,0.7);}
	70%{box-shadow:0 0 0 10px rgba(34,197,94,0);}
	100%{box-shadow:0 0 0 0 rgba(34,197,94,0);}
}

.hero-titulo{
	font-size:2.6em;
	color:#0a1f33;
	font-weight:700;
	line-height:1.18;
	margin:24px 0 0;
}
.hero-titulo-destaque{
	position:relative;
	color:#015b7d;
	display:inline-block;
}
.hero-titulo-destaque::after{
	content:"";
	position:absolute;
	left:0;
	right:0;
	bottom:2px;
	height:10px;
	background:linear-gradient(90deg, rgba(79,159,189,0.35), rgba(222,24,41,0.18));
	border-radius:6px;
	z-index:-1;
}

.hero-paragrafo{
	margin-top:22px;
	font-size:1.02em;
	color:#243447;
	line-height:1.75;
}

.hero-highlights{
	list-style:none;
	padding:0;
	margin:24px 0 0;
}
.hero-highlights li{
	display:flex;
	align-items:center;
	gap:12px;
	padding:8px 0;
	color:#243447;
	font-weight:500;
	font-size:0.98em;
}
.hero-check{
	display:inline-flex;
	align-items:center;
	justify-content:center;
	width:24px;
	height:24px;
	border-radius:50%;
	background:rgba(34,197,94,0.15);
	color:#16a34a;
	font-weight:700;
	font-size:0.85em;
	flex-shrink:0;
}

.hero-ctas{margin-top:34px; display:flex; align-items:center; gap:24px; flex-wrap:wrap;}

.hero-cta-primary{
	display:inline-block;
	background:linear-gradient(135deg, #de1829 0%, #b41323 100%);
	color:#fff;
	padding:15px 36px;
	border-radius:50px;
	border:none;
	font-weight:600;
	font-size:1em;
	font-family:"Poppins", sans-serif;
	cursor:pointer;
	box-shadow:0 14px 28px -10px rgba(222,24,41,0.55);
	transition:transform 0.25s ease, box-shadow 0.25s ease, opacity 0.25s ease;
}
.hero-cta-primary:hover{
	transform:translateY(-2px);
	box-shadow:0 18px 34px -10px rgba(222,24,41,0.65);
	opacity:0.95;
}
.hero-cta-primary:focus-visible{outline:3px solid rgba(222,24,41,0.4); outline-offset:3px;}

.hero-cta-secondary{
	color:#015b7d;
	font-weight:600;
	text-decoration:none;
	position:relative;
	padding:6px 0;
}
.hero-cta-secondary::after{
	content:"";
	position:absolute;
	left:0;
	bottom:0;
	width:0%;
	height:2px;
	background:#015b7d;
	transition:width 0.3s ease;
}
.hero-cta-secondary:hover::after{width:100%;}

.hero-right{
	position:relative;
	animation: heroFadeIn 1.2s ease-out 0.15s both;
}

.hero-image-card{
	position:relative;
	border-radius:28px;
	overflow:visible;
	transform: perspective(1200px) rotateY(-2deg);
	transition: transform 0.35s ease;
	will-change: transform;
}
.hero-image-card img{
	display:block;
	width:100%;
	height:auto;
	border-radius:28px;
	filter: drop-shadow(0 30px 50px rgba(15, 35, 60, 0.25));
	-webkit-mask-image: radial-gradient(circle at 100% 0%, transparent 0, transparent 12%, #000 32%);
	        mask-image: radial-gradient(circle at 100% 0%, transparent 0, transparent 12%, #000 32%);
}

.hero-blob{
	position:absolute;
	width:280px;
	height:280px;
	border-radius:50%;
	filter: blur(70px);
	opacity:0.55;
	z-index:-1;
	pointer-events:none;
}
.hero-blob-1{
	top:-30px;
	left:-40px;
	background:rgba(79,159,189,0.55);
}
.hero-blob-2{
	bottom:-50px;
	right:-30px;
	background:rgba(222,24,41,0.35);
}

@keyframes heroFadeUp{
	from{opacity:0; transform:translateY(20px);}
	to{opacity:1; transform:translateY(0);}
}
@keyframes heroFadeIn{
	from{opacity:0;}
	to{opacity:1;}
}

@media (prefers-reduced-motion: reduce){
	.hero-left,.hero-right,.hero-tagline-pulse{animation:none !important;}
	.hero-image-card{transition:none !important;}
}

@media screen and (min-width: 1024px) and (max-width: 1365px){
	.hero-grid{gap:40px;}
	.hero-titulo{font-size:2em;}
	.hero-paragrafo{font-size:0.92em;}
	.hero-highlights li{font-size:0.9em;}
	.hero-blob{width:200px; height:200px;}
}
@media screen and (min-width: 1366px) and (max-width: 1919px){
	.hero-titulo{font-size:2.3em;}
	.hero-paragrafo{font-size:0.96em;}
}

/*-------------------------------------------------------------------
HERO MOBILE
--------------------------------------------------------------------*/
.info-topo-cell-left{width:50%; position:relative; float:left; padding-left:50px;}
.info-topo-titulo{ font-size:1.6em; color:#015b7d; font-weight:700; margin-top:50px; line-height:1.3;}
.info-topo-texto{margin-top:30px;font-size:1em; color:#000; font-weight:400; line-height:2em;}
.info-topo-buttom-div{margin-top:40px;}

.info-imagem-mobile{
	width:100%;
	max-width:100%;
	margin:0 auto;
	border-radius:22px;
	overflow:hidden;
	box-shadow:0 18px 36px -18px rgba(15,35,60,0.25);
}
.info-imagem-mobile img{
	display:block;
	width:100%;
	max-width:100%;
	height:auto;
}

@media screen and (max-width: 1023px){
	#bloco-sobre{display:none;}
	.info-topo-cell-left.smartphone{
		display:block;
		width:100%;
		max-width:100%;
		padding:150px 20px 60px 20px;
		float:none;
		margin:0;
		box-sizing:border-box;
	}
	.info-topo-cell-left.smartphone .info-imagem-mobile{margin-bottom:14px;}
	.info-topo-cell-left.smartphone .info-topo-titulo{font-size:1.5em; margin-top:44px; line-height:1.3; text-align:center;}
	.info-topo-cell-left.smartphone .info-topo-texto{font-size:0.95em; margin-top:32px; text-align:justify; line-height:1.85;}
	.info-topo-cell-left.smartphone .info-topo-buttom-div{margin-top:46px; text-align:center;}
}
@media screen and (min-width: 1024px){
	#bloco-sobre-mobile.smartphone{display:none;}
}
@media screen and (max-width: 360px){
	.info-topo-cell-left.smartphone{padding:130px 16px 50px 16px;}
	.info-topo-cell-left.smartphone .info-topo-titulo{font-size:1.3em; margin-top:36px;}
	.info-topo-cell-left.smartphone .info-topo-texto{font-size:0.88em; margin-top:26px;}
	.info-topo-cell-left.smartphone .info-topo-buttom-div{margin-top:38px;}
}

/*-------------------------------------------------------------------
BLOCO - SOLUÇÃO (MÓDULOS) - CSS GRID
--------------------------------------------------------------------*/
.solucao-perfeita-titulo{text-align:center; font-size:2em; color:#000049; font-weight:700; margin-top:80px;}
.solucao-perfeita-subtitulo{text-align:center; font-size:1.3em; color:#005b7d; font-weight:500; margin-top:8px;}

.solucao-modulos-div{
	margin-top:60px;
	display:grid;
	grid-template-columns:repeat(auto-fit, minmax(280px, 1fr));
	gap:28px;
	align-items:stretch;
}

.solucao-modulos-box{
	width:auto !important;
	margin:0 !important;
	float:none !important;
	display:flex !important;
	flex-direction:column;
	background-color:#fff;
	padding:32px 30px;
	border-radius:22px;
	box-shadow:0 1px 3px rgba(15,35,60,0.04), 0 12px 30px -18px rgba(15,35,60,0.18);
	transition:transform 0.3s ease, box-shadow 0.3s ease;
	height:auto !important;
	min-height:auto !important;
	max-height:none !important;
	overflow:visible !important;
	opacity:0;
	animation: cardFadeUp 0.6s ease-out forwards;
}
.solucao-modulos-box:hover{
	transform:translateY(-4px);
	box-shadow:0 4px 8px rgba(15,35,60,0.06), 0 22px 40px -18px rgba(15,35,60,0.28);
}

.solucao-modulos-box:nth-child(1){animation-delay:0.05s;}
.solucao-modulos-box:nth-child(2){animation-delay:0.10s;}
.solucao-modulos-box:nth-child(3){animation-delay:0.15s;}
.solucao-modulos-box:nth-child(4){animation-delay:0.20s;}
.solucao-modulos-box:nth-child(5){animation-delay:0.25s;}
.solucao-modulos-box:nth-child(6){animation-delay:0.30s;}
.solucao-modulos-box:nth-child(7){animation-delay:0.35s;}
.solucao-modulos-box:nth-child(8){animation-delay:0.40s;}
.solucao-modulos-box:nth-child(9){animation-delay:0.45s;}
.solucao-modulos-box:nth-child(10){animation-delay:0.50s;}
.solucao-modulos-box:nth-child(11){animation-delay:0.55s;}
.solucao-modulos-box:nth-child(12){animation-delay:0.60s;}
.solucao-modulos-box:nth-child(13){animation-delay:0.65s;}

@keyframes cardFadeUp{
	from{opacity:0; transform:translateY(15px);}
	to{opacity:1; transform:translateY(0);}
}
@media (prefers-reduced-motion: reduce){
	.solucao-modulos-box{animation:none !important; opacity:1;}
}

.solucao-modulos-box .solucao-modulos-box-icon{
	display:flex;
	align-items:center;
	justify-content:center;
	width:62px !important;
	height:62px;
	border-radius:18px;
	background:linear-gradient(135deg, rgba(79,159,189,0.18) 0%, rgba(1,91,125,0.12) 100%);
	color:#015b7d !important;
	font-size:2em !important;
	margin:0 0 18px 0;
	transition: transform 0.3s ease;
	flex:0 0 auto;
}
.solucao-modulos-box:hover .solucao-modulos-box-icon{transform:rotate(-6deg);}

.solucao-modulos-box-titulo{font-size:1.1em; color:#015b7d; font-weight:600; margin:0 0 10px 0;}
.solucao-modulos-box-texto{
	font-size:0.9em;
	color:#243447;
	line-height:1.7;
	font-weight:400;
	height:auto !important;
	max-height:none !important;
	overflow:visible !important;
	display:block;
}

@media screen and (max-width: 767px){
	.solucao-modulos-div{grid-template-columns:1fr; gap:18px;}
	.solucao-perfeita-titulo{font-size:1.6em; margin-top:60px;}
	.solucao-perfeita-subtitulo{font-size:1.05em;}
	.solucao-modulos-box{padding:24px 22px;}
	.solucao-modulos-box-titulo{font-size:1em;}
	.solucao-modulos-box-texto{font-size:0.85em;}
}

/*----------------------------------------------------------------------
PLANOS E PREÇOS - LAYOUT MODERNO
-----------------------------------------------------------------------*/
.planos-div{margin-top:100px;}

.planos-titulo{font-size:2em; color:#000049; font-weight:700; text-align:center; margin:0;}
.planos-subtitulo{font-size:1.3em; color:#005b7d; font-weight:500; margin-top:8px;text-align:center; margin-bottom:80px;}

@media screen and (min-width: 1024px){
	.planos-margin-lateral{padding:0 60px;}
	.planos-box{
		padding:80px 60px;
		background:linear-gradient(180deg,#fafffe 0%,#f1f8fb 100%);
		border-radius:50px;
		box-shadow:0px 0px 46px -27px rgba(0,0,0,0.18);
	}
}
@media screen and (max-width: 1023px){
	.planos-box{padding:50px 22px;}
}

.planos-grid{
	display:grid;
	grid-template-columns:repeat(2, minmax(0, 1fr));
	gap:36px;
	max-width:920px;
	margin:0 auto;
	align-items:stretch;
}

.plano-card{
	position:relative;
	background:#fff;
	border-radius:28px;
	padding:42px 36px 36px;
	box-shadow:0 1px 3px rgba(15,35,60,0.04), 0 18px 40px -22px rgba(15,35,60,0.18);
	transition:transform 0.3s ease, box-shadow 0.3s ease;
	border:2px solid transparent;
	display:flex;
	flex-direction:column;
}
.plano-card:hover{
	transform:translateY(-6px);
	box-shadow:0 4px 8px rgba(15,35,60,0.06), 0 28px 50px -22px rgba(15,35,60,0.30);
}

.plano-card-popular{
	border-color:#015b7d;
	background:linear-gradient(180deg,#ffffff 0%,#f7fbfd 100%);
	transform:translateY(-4px);
}
.plano-card-popular:hover{transform:translateY(-10px);}

.plano-badge{
	position:absolute;
	top:-14px;
	left:50%;
	transform:translateX(-50%);
	background:linear-gradient(135deg,#015b7d 0%,#4f9fbd 100%);
	color:#fff;
	font-size:0.72em;
	font-weight:700;
	padding:7px 18px;
	border-radius:50px;
	letter-spacing:0.8px;
	text-transform:uppercase;
	box-shadow:0 8px 20px -8px rgba(1,91,125,0.6);
	white-space:nowrap;
	z-index:2;
}

.plano-header{
	text-align:center;
	margin-bottom:18px;
}
.plano-card-titulo{
	font-size:1.25em;
	color:#0a1f33;
	font-weight:700;
	margin:0 0 6px 0;
}
.plano-card-subtitulo{
	font-size:0.85em;
	color:#6b7280;
	font-weight:400;
	margin:0;
}

.plano-price-block{
	text-align:center;
	margin:8px 0 4px;
	line-height:1;
	color:#0a1f33;
}
.plano-currency{
	font-size:1.4em;
	color:#015b7d;
	font-weight:700;
	vertical-align:top;
	position:relative;
	top:14px;
}
.plano-amount{
	font-size:3.4em;
	font-weight:800;
	letter-spacing:-1.5px;
	color:#0a1f33;
}
.plano-period{
	font-size:0.95em;
	color:#6b7280;
	font-weight:500;
	margin-left:4px;
}

.plano-monthly{
	text-align:center;
	font-size:0.78em;
	color:#6b7280;
	margin:10px 0 26px;
}

.plano-cta{
	display:block;
	width:100%;
	padding:14px 24px;
	background:linear-gradient(135deg,#015b7d 0%,#4f9fbd 100%);
	color:#fff;
	border:none;
	border-radius:50px;
	font-family:"Poppins", sans-serif;
	font-size:1em;
	font-weight:600;
	cursor:pointer;
	box-shadow:0 14px 28px -10px rgba(1,91,125,0.45);
	transition:transform 0.25s ease, box-shadow 0.25s ease, opacity 0.25s ease;
}
.plano-cta:hover{
	transform:translateY(-2px);
	box-shadow:0 18px 34px -10px rgba(1,91,125,0.55);
	opacity:0.96;
}
.plano-cta:focus-visible{
	outline:3px solid rgba(79,159,189,0.4);
	outline-offset:3px;
}
.plano-card-popular .plano-cta{
	background:linear-gradient(135deg,#de1829 0%,#b41323 100%);
	box-shadow:0 14px 28px -10px rgba(222,24,41,0.5);
}
.plano-card-popular .plano-cta:hover{
	box-shadow:0 18px 34px -10px rgba(222,24,41,0.6);
}

.plano-divider{
	margin:30px 0 18px;
	height:1px;
	background:linear-gradient(90deg,transparent 0%,#e5e7eb 50%,transparent 100%);
}

.plano-features{
	list-style:none;
	padding:0;
	margin:0;
	flex:1;
}
.plano-features li{
	display:flex;
	align-items:center;
	gap:12px;
	padding:11px 0;
	font-size:0.92em;
	color:#243447;
	font-weight:500;
	border-bottom:1px solid rgba(229,231,235,0.7);
}
.plano-features li:last-child{border-bottom:none;}
.plano-features li.feature-highlight{
	color:#0a1f33;
	font-weight:600;
}
.plano-features li strong{font-weight:700; color:#015b7d;}

.plano-check{
	display:inline-flex;
	align-items:center;
	justify-content:center;
	flex:0 0 auto;
	width:22px;
	height:22px;
	border-radius:50%;
	background:rgba(34,197,94,0.15);
	color:#16a34a;
	font-weight:700;
	font-size:0.78em;
}
.plano-card-popular .plano-check{
	background:rgba(1,91,125,0.12);
	color:#015b7d;
}

@media screen and (max-width: 767px){
	.planos-grid{
		grid-template-columns:1fr;
		gap:30px;
	}
	.plano-card{padding:36px 26px 30px;}
	.plano-card-popular{transform:none;}
	.plano-card-popular:hover{transform:translateY(-6px);}
	.plano-amount{font-size:2.8em;}
	.planos-titulo{font-size:1.7em;}
	.planos-subtitulo{font-size:1.05em; margin-bottom:50px;}
}
@media screen and (min-width: 1024px) and (max-width: 1279px){
	.planos-div{margin-top:80px;}
	.planos-margin-lateral{padding:0;}
	.planos-box{padding:50px 32px; border-radius:30px;}
	.planos-titulo{font-size:1.5em;}
	.planos-subtitulo{font-size:1.1em; margin-bottom:50px;}
	.plano-card{padding:34px 28px 28px;}
	.plano-amount{font-size:2.8em;}
}
@media screen and (min-width: 1280px) and (max-width: 1919px){
	.planos-div{margin-top:120px;}
	.planos-titulo{font-size:1.7em;}
	.planos-subtitulo{font-size:1.2em;}
}

/*-------------------------------------------------------------------
BLOCO - PEDIR ORÇAMENTO
--------------------------------------------------------------------*/
.orcamento-div{ margin-top:130px;}
.orcamento-box{ background-color:#fff;
padding:50px; border-radius:40px;
box-shadow: 0px 0px 11px 0px rgba(0,0,0,0.05);
}
.orcamento-cell-left,.orcamento-cell-right{width:50%; position:relative; float:left;}
.orcamento-cell-right{ padding-left:100px;}

.orcamento-titulo{ font-size:1.6em; color:#4f9fbd; font-weight:700; text-transform:uppercase; margin:0;}
.orcamento-texto{margin-top:30px;font-size:1em; color:#000; font-weight:400; line-height:2em;}

.formulario-orc label{font-size:0.8em; line-height:2em; font-family: "Poppins", sans-serif; padding-left:10px; color:#000;}
.formulario-orc input, .formulario-orc textarea{box-sizing: border-box; border:none; border-radius:20px;  color:#000;background-color:#f9f9f9;
font-family: "Poppins", sans-serif; font-weight:500; padding:15px; width:100%; font-size:0.8em;}

@media screen and (max-width: 1023px) {
.orcamento-div{ margin-top:100px;}
.orcamento-box{padding:30px; border-radius:30px;}
.orcamento-cell-left,.orcamento-cell-right{width:100%; position:relative; float:left;}
.orcamento-cell-right{margin-top:50px; padding:0px;}
.orcamento-titulo{ font-size:1.4em; text-align:center}
.orcamento-texto{font-size:1em; text-align:justify}
.formulario-orc label{font-size:0.9em;}
.formulario-orc input, .formulario-orc textarea{font-size:0.9em;}
}
@media screen and (max-width: 360px) {
.orcamento-texto{font-size:0.9em;}
.formulario-orc input, .formulario-orc textarea{padding:10px; width:100%; font-size:0.8em;}
}
@media screen and (min-width: 1024px) and (max-width: 1919px) {
.orcamento-titulo{ font-size:1.3em; text-align:center}
.orcamento-texto{font-size:0.95em;}
}
@media screen and (min-width: 1280px) and (max-width: 1919px) {
.orcamento-titulo{ font-size:1.4em; text-align:center}
.orcamento-texto{font-size:1em;}
}

/*-------------------------------------------------------------------
FORMULÁRIOS
--------------------------------------------------------------------*/
.formulario-all,.formulario-orc{max-width:100%;}
.formulario-all label{font-size:0.9em; line-height:2em; font-family: "Poppins", sans-serif; padding-left:10px;}

.formulario-all input, .formulario-all textarea{box-sizing: border-box; border:1px solid transparent; border-radius:20px; color:#000;
font-family: "Poppins", sans-serif; font-weight:500; padding:10px; width:100%; max-width:100%; font-size:0.9em; background-color:#f9f9f9;}
.formulario-all textarea,.formulario-orc textarea{resize:vertical; min-height:80px;}
.formulario-orc input,.formulario-orc textarea{max-width:100%;}

.formulario-all input.is-invalid,.formulario-orc input.is-invalid,.formulario-all textarea.is-invalid,.formulario-orc textarea.is-invalid{border:1px solid #cc2020 !important;}

@media screen and (max-width: 1023px){
.formulario-all label{font-size:0.95em;}
.formulario-all input, .formulario-all textarea{font-size:0.95em;}
}
@media screen and (min-width: 1024px) and (max-width: 1364px) {
.formulario-all input, .formulario-all textarea{padding:10px; width:100%; font-size:0.8em;}
}

/*-------------------------------------------------------------------
RODAPE
--------------------------------------------------------------------*/
.rodape-div{padding:50px 100px 50px 100px;}
.rodape-cell{ width:25%; position:relative; float:left;}

.rodape-titulos,.rodape-titulos2{ color:#4f9fbd; font-size:0.9em; font-weight:600; margin-bottom:15px; margin-top:60px;}

.rodape-apoio-telefone{font-size:1.5em; color:#000; text-align:right; line-height:0.7em; margin-top:-8px;}
.rodape-apoio-telefone span{font-size:0.4em;}
.rodape-apoio-morada{font-size:0.9em; color:#000; text-align:right; margin-top:-12px; font-weight:400; font-style:normal;}

a.rodape-links:link,a.rodape-links:visited,a.rodape-links:hover,a.rodape-links:active{ color:#000; font-size:0.9em; font-weight:400; line-height:2em; text-decoration:none;}
a.rodape-links:hover{ color:#005b7d !important;}

@media screen and (max-width: 1023px) {
.rodape-div{padding:50px 20px 50px 20px;}
.rodape-cell{ width:100%; padding:0px; text-align:center}
.rodape-titulos,.rodape-titulos2{font-size:1.1em;}
.rodape-apoio-telefone{font-size:1.5em; text-align:center; margin-top:0px;}
.rodape-apoio-morada{font-size:0.9em; text-align:center; margin-top:0px;}
a.rodape-links:link,a.rodape-links:visited,a.rodape-links:hover,a.rodape-links:active{line-height:2.4em;}
}
@media screen and (max-width: 360px) {
.rodape-titulos,.rodape-titulos2{font-size:1em;}
.rodape-apoio-telefone{font-size:1.4em;}
.rodape-apoio-morada{font-size:0.8em;}
}
@media screen and (min-width: 1024px){
.rodape-titulos2{ text-align:right}
}
@media screen and (min-width: 1024px) and (max-width: 1365px) {
.rodape-div{padding:100px 0px 50px 0px;}
.rodape-titulos,.rodape-titulos2{font-size:0.8em; margin-bottom:12px; margin-top:40px;}
.rodape-apoio-telefone{font-size:1em; line-height:0.8em; margin-top:-8px;}
.rodape-apoio-telefone span{font-size:0.4em;}
.rodape-apoio-morada{font-size:0.65em; margin-top:-12px;}
a.rodape-links:link,a.rodape-links:visited,a.rodape-links:hover,a.rodape-links:active{font-size:0.7em; line-height:2em;}
}
@media screen and (min-width: 1280px) and (max-width: 1919px) {
.rodape-div{padding:100px 0px 50px 0px;}
.rodape-titulos,.rodape-titulos2{font-size:0.9em; margin-bottom:12px; margin-top:60px;}
.rodape-apoio-telefone{font-size:1.2em; line-height:0.7em; margin-top:-2px;}
.rodape-apoio-telefone span{font-size:0.4em; margin-top:-8px;}
.rodape-apoio-morada{font-size:0.75em; margin-top:-8px;}
a.rodape-links:link,a.rodape-links:visited,a.rodape-links:hover,a.rodape-links:active{font-size:0.8em;}
}
@media screen and (min-width: 1366px) and (max-width: 1919px) {
.rodape-titulos,.rodape-titulos2{font-size:1em;}
.rodape-apoio-telefone{font-size:1.3em; line-height:0.7em; margin-top:-2px;}
.rodape-apoio-telefone span{font-size:0.4em; margin-top:-8px;}
.rodape-apoio-morada{font-size:0.75em; margin-top:-8px;}
a.rodape-links:link,a.rodape-links:visited,a.rodape-links:hover,a.rodape-links:active{font-size:0.85em;}
}

/*-------------------------------------------------------------------
MENU MOBILE
--------------------------------------------------------------------*/
.mobile-top-bar{width:100%; height:100px; color:#000; background-color:#fff; position:fixed; top:0px; left:0px; text-align:right; z-index:1023;-webkit-transition: all 0.7s; transition:  all 0.7s; border-bottom-left-radius:25px; border-bottom-right-radius:25px;}
.mobile-top-bar-up {top: -130px;}
.mobile-top-bar-down {top: 0px;}

.mobile-bar-left{width:70%; position:relative; float:left;}
.mobile-bar-right{width:30%; position:relative; float:left;}

.logotipo-box{ position:absolute; top:8px; left:10px; z-index:2; width:220px; height:100px;}
.mobile-logotipo-bar{width:200px; height:84px; background-position:center center; background-repeat:no-repeat; background-size:contain; position:relative; float:left}

#mobile-bars{position:relative; float:right; margin:30px 35px 0px 0px; z-index:1004; cursor:pointer;}
.mobilebar1, .mobilebar3,.mobilebar2 {
  width: 25px;
  height: 4px;
  margin: 6px 0;
  transition: 0.4s;
  background-color: #333;
  border-radius:2px;
  cursor:pointer;
}
.mobilebar1{width: 28px; margin: 6px 0px 0px -3px;}
.mobilebar2{width: 17px; margin: 6px 0px 0px 8px;}

.mobilechange .mobilebar1 {
   width: 25px; margin: 6px 0;
  -webkit-transform: rotate(-45deg) translate(-9px, 6px);
  transform: rotate(-45deg) translate(-9px, 6px);
}
.mobilechange .mobilebar2 {opacity: 0;}
.mobilechange .mobilebar3 {
  -webkit-transform: rotate(45deg) translate(-8px, -5px);
  transform: rotate(45deg) translate(-8px, -5px);
}

.mobile-menu-close, .mobile-menu-open{height:100vh; position:fixed; overflow:auto; text-align:left; z-index:1003; -webkit-transition: all 0.7s; transition:  all 0.7s;
box-shadow: -3px 0px 5px 0px rgba(0,0,0,0.3);
}

.mobile-menu-close, .mobile-menu-open,.menu-mobile-paginas{background-color:#fff;}

.mobile-logotipo-menu-div{width:80%; position:relative; float:left;}
.mobile-logotipo-menu{width:80%; height:100px; margin:10px 20px 10px 20px; background-position:left center; background-repeat:no-repeat; background-size: contain; position:relative;}
.mobile-paginas{width:100%; position:relative; float:left; margin-top:50px;}

.menu-mobile-paginas{
width:100%;
position:relative;
float:left;
font-weight:500;
padding:12px 12px 12px 30px;
font-family: "Poppins", sans-serif;
font-size:1em;
font-weight:500;
display:inline-block;
color:#333;
cursor:pointer;
}

.mobile-menu-close{right:-480px}
.mobile-menu-open{right:0px}
@media screen and (max-width: 447px) {
.mobile-bar-left{width:70%;}
.mobile-bar-right{width:30%;}
.logotipo-box{width:200px;}
.mobile-logotipo-bar{width:80%; height:80px;margin:10px 0px 10px 10px;}
.mobile-logotipo-menu-div{width:70%;}
.mobile-menu-close{right:-480px}
.menu-mobile-paginas{font-size:0.9em; }
}
@media screen and (max-width: 360px) {
.mobile-top-bar{width:100%; height:80px;}
#mobile-bars{margin:22px 25px 0px 0px;}
.logotipo-box{width:160px; height:80px;}
.mobile-logotipo-bar{width:80%; height:60px;margin:10px 0px 10px 10px;}
}
@media screen and (min-width: 448px) and (max-width: 1023px) {
.mobile-menu-close{right:-1023px}
.menu-mobile-paginas{font-size:1.2em; }
}

/*-------------------------------------------------------------------
DIREITOS
--------------------------------------------------------------------*/
.direitos-div{font-size:0.9em; color:#000049; text-align:center; margin-top:100px}
.direitos-div span{font-weight:600}

.direitos-div2{
	width:100%;
	position:relative;
	float:left;
	background: linear-gradient(to bottom,  rgba(247,247,247,1) 0%,rgba(219,219,219,1) 100%);
	padding:0px 50px 30px 50px;
	margin:90px 0px 0px 0px;
	text-align:center
}
.rodape-logotipo{font-size:0.9em; color:#000; margin-top:-70px; text-align:center; display:inline-block}
.rodape-logotipo img{ width:150px; height:auto;}
@media screen and (max-width: 1023px) {
.direitos-div{margin-top:50px}
.rodape-logotipo img{ width:90px;}
.rodape-logotipo{margin-top:-40px;}
}
@media screen and (max-width: 360px) {
.rodape-logotipo img{ width:80px;}
.rodape-logotipo{margin-top:-40px;}
}
@media screen and (min-width: 1024px) and (max-width: 1919px) {
.direitos-div{font-size:0.75em; margin-top:50px }
.rodape-logotipo img{ width:120px;}
.rodape-logotipo{font-size:0.75em; margin-top:-60px;}
}
@media screen and (min-width: 1280px) and (max-width: 1919px) {
.direitos-div{font-size:0.8em; }
.rodape-logotipo img{ width:120px;}
.rodape-logotipo{font-size:0.8em; margin-top:-60px;}
}

/*-------------------------------------------------------------------
FAQ
--------------------------------------------------------------------*/
.faq-div{margin-top:130px; margin-bottom:40px;}
.faq-header{text-align:center; margin-bottom:50px;}
.faq-titulo{
	font-size:2em;
	color:#000049;
	font-weight:700;
	margin:0 0 8px 0;
}
.faq-subtitulo{
	font-size:1.1em;
	color:#005b7d;
	font-weight:500;
	margin:0;
}
.faq-list{
	max-width:880px;
	margin:0 auto;
	display:flex;
	flex-direction:column;
	gap:14px;
}
.faq-item{
	background:#fff;
	border-radius:18px;
	box-shadow:0 1px 3px rgba(15,35,60,0.04), 0 12px 30px -22px rgba(15,35,60,0.18);
	overflow:hidden;
	transition:box-shadow 0.3s ease, transform 0.3s ease;
}
.faq-item[open]{
	box-shadow:0 4px 8px rgba(15,35,60,0.06), 0 22px 40px -20px rgba(15,35,60,0.24);
}
.faq-question{
	display:block;
	padding:22px 56px 22px 26px;
	font-size:1em;
	font-weight:600;
	color:#0a1f33;
	cursor:pointer;
	position:relative;
	list-style:none;
	transition:color 0.2s ease;
}
.faq-question::-webkit-details-marker{display:none;}
.faq-question::marker{display:none; content:'';}
.faq-question::after{
	content:"+";
	position:absolute;
	right:24px;
	top:50%;
	transform:translateY(-50%);
	width:28px;
	height:28px;
	display:inline-flex;
	align-items:center;
	justify-content:center;
	background:rgba(79,159,189,0.12);
	color:#015b7d;
	border-radius:50%;
	font-size:1.3em;
	font-weight:400;
	line-height:1;
	transition:transform 0.3s ease, background 0.3s ease;
}
.faq-item[open] .faq-question{color:#015b7d;}
.faq-item[open] .faq-question::after{
	content:"\2212"; /* minus sign */
	transform:translateY(-50%) rotate(180deg);
	background:#015b7d;
	color:#fff;
}
.faq-question:hover{color:#015b7d;}
.faq-question:focus-visible{
	outline:3px solid rgba(79,159,189,0.4);
	outline-offset:-3px;
	border-radius:18px;
}
.faq-answer{
	padding:0 26px 24px 26px;
	color:#243447;
	font-size:0.94em;
	line-height:1.75;
}
.faq-answer p{margin:0 0 12px 0;}
.faq-answer p:last-child{margin-bottom:0;}
.faq-answer ul{margin:8px 0 12px 0; padding-left:22px;}
.faq-answer li{padding:4px 0;}
.faq-answer a{
	color:#015b7d;
	text-decoration:underline;
	text-underline-offset:3px;
}
.faq-answer a:hover{color:#de1829;}
.faq-answer strong{color:#0a1f33; font-weight:600;}

@media screen and (max-width: 767px){
	.faq-div{margin-top:80px;}
	.faq-titulo{font-size:1.55em;}
	.faq-subtitulo{font-size:0.95em;}
	.faq-question{padding:18px 50px 18px 20px; font-size:0.92em;}
	.faq-answer{padding:0 20px 20px 20px; font-size:0.88em;}
	.faq-question::after{right:18px; width:24px; height:24px;}
}
@media screen and (min-width: 1024px) and (max-width: 1279px){
	.faq-div{margin-top:90px;}
	.faq-titulo{font-size:1.6em;}
}

/*-------------------------------------------------------------------
MODALS
--------------------------------------------------------------------*/
.modalbackdrop{
	position:fixed;
	top:0;
	left:0;
	right:0;
	bottom:0;
	width:100vw;
	height:100vh;
	z-index:99999;
	background-color:rgba(0,0,0,0.7);
}

.modal-body{
	/* Centragem absoluta - top/left 50% + transform translate -50% (técnica clássica e fiável) */
	position:fixed;
	top:50%;
	left:50%;
	transform:translate(-50%, -50%);
	z-index:100000;

	display:flex;
	flex-direction:column;
	width:40%;
	max-width:calc(100vw - 32px);
	min-height:300px;
	max-height:calc(100vh - 32px);
	background-color:#fff;
	border-radius:24px;
	opacity:0;
	overflow:hidden;
	box-shadow:0 30px 80px -20px rgba(15,35,60,0.45);
	-webkit-transition: opacity 0.3s ease;
	transition: opacity 0.3s ease;
}
.modal-body.paginas{width:90%; max-width:1100px;}

.modal-titulo{
	flex:0 0 auto;
	color:#cc2020;
	font-size:1.25em;
	font-weight:700;
	text-align:left;
	padding:24px 28px 14px 28px;
	word-wrap:break-word;
	overflow-wrap:break-word;
	border-bottom:1px solid rgba(0,0,0,0.06);
}

.modal-content{
	flex:1 1 auto;
	min-height:0;
	overflow-y:auto;
	overflow-x:hidden;
	font-size:0.92em;
	line-height:1.6;
	text-align:left;
	padding:20px 28px 24px 28px;
	color:#243447;
	word-wrap:break-word;
	overflow-wrap:break-word;
}

.modal-bottom{
	flex:0 0 auto;
	display:flex;
	justify-content:flex-end;
	align-items:center;
	gap:12px;
	width:100%;
	padding:14px 22px;
	background:#f7f9fb;
	border-top:1px solid rgba(0,0,0,0.08);
	box-sizing:border-box;
	font-size:0.9em;
}

.modal-button-sucesso,.modal-button-close{
	flex:0 0 auto;
	display:inline-flex;
	align-items:center;
	justify-content:center;
	padding:11px 26px;
	margin:0;
	font-size:0.9em;
	font-weight:500;
	font-family:"Poppins", sans-serif;
	text-align:center;
	border-radius:30px;
	cursor:pointer;
	user-select:none;
	border:1px solid transparent;
	box-shadow:0 6px 14px -6px rgba(15,35,60,0.25);
	-webkit-transition: all 0.25s ease;
	transition: all 0.25s ease;
}
.modal-button-sucesso{background:linear-gradient(135deg,#015b7d 0%,#4f9fbd 100%); color:#fff;}
.modal-button-sucesso:hover{transform:translateY(-1px); box-shadow:0 10px 20px -6px rgba(1,91,125,0.45);}
.modal-button-close{background:#fff; color:#333; border-color:rgba(0,0,0,0.08);}
.modal-button-close:hover{background:#f0f0f0;}
.modal-button-sucesso:focus-visible,.modal-button-close:focus-visible{
	outline:3px solid rgba(79,159,189,0.4);
	outline-offset:2px;
}

/* Compatibilidade: imagens-ícone caso ainda existam em modais legacy */
.modal-button-sucesso img, .modal-button-close img{width:16px; height:16px; margin-right:8px;}

.modal-alert-error{
	color:#cc2020;
	font-size:0.9em;
	font-weight:500;
	text-align:center;
	background:rgba(204,32,32,0.08);
	border-radius:10px;
	padding:10px 14px;
	margin:0 28px;
}

#error-mesage{color:#cc2020; font-size:0.85em; margin-top:6px;}

@media screen and (max-width: 1023px){
	.modal-body{width:92%;}
	.modal-titulo{font-size:1.1em; padding:20px 22px 12px 22px;}
	.modal-content{padding:16px 22px 20px 22px; font-size:0.88em;}
	.modal-bottom{padding:12px 18px; gap:10px;}
	.modal-button-sucesso,.modal-button-close{padding:10px 20px; font-size:0.85em;}
}
@media screen and (max-width: 480px){
	.modal-bottom{flex-wrap:wrap;}
	.modal-button-sucesso,.modal-button-close{flex:1 1 auto; justify-content:center;}
}

/*-------------------------------------------------------------------
ACEITA COOKIES
--------------------------------------------------------------------*/
.aceitabackdrop{width:100%; height:100vh; position:fixed;z-index:10050; background-color:rgba(0,0,0,0.7);}
.aceitacookies-box{width:100%; position:absolute; bottom:0px; left:0; bottom:0; z-index:9; padding:20px 40px 20px 40px; background-color:#fff; border-top-left-radius:30px; border-top-right-radius:30px;
box-shadow: 0px -7px 19px 0px rgba(0,0,0,0.05);
}
.aceitacookies-title,.aceitacookies-content,.aceitacookies-bottom{width:100%; position:relative; float:left;}
.aceitacookies-title{font-size:1em; color:#00d85b; font-weight:500;}
.aceitacookies-content{font-size:0.8em; color:#333; font-weight:400; margin-top:20px;}
.aceitacookies-content span{text-decoration:underline; cursor:pointer;}
.aceitacookies-bottom{text-align:right; margin-top:20px; text-align:center;}
.aceitacookies-button{text-align:right; margin-top:20px; text-align:center; background-color:#090649; color:#a2ffca; font-size:0.8em; padding:10px 20px 10px 20px; border-radius:30px; cursor:pointer; -webkit-transition: all 0.7s; transition:  all 0.7s; display:inline-block;}
.aceitacookies-button:hover{opacity:0.8;}
@media screen and (max-width: 1023px) {
.aceitacookies-box{bottom:100px; border-radius:30px;}
.aceitacookies-title{font-size:1em; text-align:center;}
.aceitacookies-content{ text-align:justify; font-size:0.8em;}
.aceitacookies-button{display:inline-block; width:90%}
}
@media screen and (min-width: 1024px) {
.aceitacookies-button{position:relative; float:right;}
}

/*-------------------------------------------------------------------
SCROLL UP
--------------------------------------------------------------------*/
.scrolltop{position:fixed; right:15px; border-radius:10px; bottom:50px; width:40px; height:40px; background-color:#fff; padding:8px 10px; box-shadow: 0px 0px 15px -3px rgba(0,0,0,0.1); z-index:2; cursor:pointer; display:none; color:#015b7d;}
.scrolltop:focus-visible{outline:3px solid rgba(79,159,189,0.4); outline-offset:3px;}

/*-------------------------------------------------------------------
LOADER
--------------------------------------------------------------------*/
.text-center{text-align:center;}
