/* ============================================================
   10-layout.css — Page, sections, backgrounds, grid range,
   offsets, animações WOW/Animate.css
   ============================================================ */

/* Page */
.page { position: relative; overflow: hidden; min-height: 100vh; }

/* Sections */
.section-xs  { padding: 30px 0; }
.section-sm  { padding: 35px 0; }
.section-md,
.section-lg,
.section-xl  { padding: 50px 0; }
html [class*='section-'].section-bottom-0 { padding-bottom: 0; }

@media (min-width: 576px) { .section-xs { padding: 40px 0; } }
@media (min-width: 768px) {
	.section-sm { padding: 45px 0; }
	.section-md { padding: 60px 0; }
	.section-lg { padding: 72px 0; }
	.section-xl { padding: 80px 0; }
}
@media (min-width: 992px) {
	.section-md { padding: 60px 0 70px; }
	.section-xl { padding: 100px 0; }
}
@media (min-width: 1200px) { .section-sm { padding: 60px 0; } }
@media (min-width: 1600px) {
	.section-md { padding: 85px 0 95px; }
	.section-lg { padding: 120px 0; }
	.section-xl { padding: 160px 0; }
}

/* Section halfscreen (home — APL section) */
.section-halfscreen { position: relative; overflow: hidden; }
.section-halfscreen-inner { padding: 40px 0; }
.section-halfscreen-content { position: relative; z-index: 1; }

@media (min-width: 768px)  { .section-halfscreen-inner { padding: 75px 0; } }
@media (min-width: 992px)  { .section-halfscreen-inner { padding: 100px 0; } }
@media (min-width: 1200px) {
	.section-halfscreen { display: flex; }
	.section-halfscreen-inner {
		display: flex; align-items: center;
		width: 100%; min-height: 39.58333vw; padding: 90px 0;
	}
}

/* Backgrounds */
.bg-gray-100 { background-color: #f5f6fa; }
.bg-gray-700 { color: #aeb1be; background-color: black; }
.bg-gray-800 { background-color: #151515; }
.bg-primary   { background-color: #354879; }
.bg-primary-darken  { background-color: #28334f; }
.bg-primary-darker  { background-color: #29293a; }
[class*='bg-'] { background-size: cover; background-position: center center; }

/* Texto branco em fundos escuros */
.context-dark, .bg-gray-700, .bg-gray-800,
.bg-primary, .bg-primary-darken, .bg-primary-darker { color: #fff; }

.context-dark h1, .bg-primary-darken h1,
.context-dark h2, .bg-primary-darken h2,
.context-dark h3, .bg-primary-darken h3,
.context-dark h4, .bg-primary-darken h4,
.context-dark h5, .bg-primary-darken h5,
.context-dark h6, .bg-primary-darken h6,
.context-dark [class^='heading-'],
.bg-primary-darken [class^='heading-'],
.bg-gray-700 h1, .bg-gray-700 h2, .bg-gray-700 h3,
.bg-gray-700 h4, .bg-gray-700 h5, .bg-gray-700 h6 { color: #fff; }

.bg-gray-700 a { color: inherit; }
.bg-gray-700 a:hover { color: #fff; }

/* Height fill */
.height-fill { position: relative; display: flex; flex-direction: column; align-items: stretch; }
.height-fill > * { flex-grow: 1; flex-shrink: 0; }

/* Figure card (seção "Sobre nós") */
.figure-card { position: relative; overflow: hidden; display: flex; }
.figure-card .figure-card-sizer { display: block; width: 100%; }
.figure-card .figure-card-sizer::before { display: block; content: ''; visibility: hidden; padding-bottom: 56.25%; }
.figure-card img {
	position: absolute; top: 50%; left: 50%;
	transform: translate(-50%, -50%);
	min-height: 100%; min-width: 100%;
	width: auto; height: auto; max-width: none;
}
@supports (object-fit: cover) {
	.figure-card img {
		height: 100%; width: 100%; left: 0; top: 0;
		transform: none; object-fit: cover; object-position: center center;
	}
}

/* Range grid (seção "Sobre nós") */
.range { display: flex; flex-wrap: wrap; }
.cell-inner { width: 100%; padding-right: 15px; padding-left: 15px; }
.range > [class*='cell'] { position: relative; width: 100%; min-height: 1px; }

@media (min-width: 992px) {
	.cell-lg-5 { flex: 0 0 calc(50% - 80px); max-width: calc(50% - 80px); }
	.cell-lg-6 { flex: 0 0 50%; max-width: 50%; }
}
@media (min-width: 1200px) {
	.cell-lg-6, .cell-xl-6 { flex: 0 0 50%; max-width: 50%; }
	.cell-xl-5 { flex: 0 0 calc(50% - 100px); max-width: calc(50% - 100px); }
}
@media (min-width: 1600px) {
	.ajuste-center-1 { margin-left: -30px !important; }
	.ajuste-center-2 { margin-top: 50px !important; margin-left: 60px !important; }
}

/* Offsets gerais */
* + p { margin-top: 16px; }
* + h4, * + .heading-4 { margin-top: 15px; }
* + h5, * + .heading-5 { margin-top: 15px; }
* + .row  { margin-top: 30px; }
* + .button, * + .button-outer { margin-top: 25px; }
h3 + p, .heading-3 + p { margin-top: 18px; }
p + p { margin-top: 14px; }
.row-30 { margin-bottom: -30px; }
.row-30:empty { margin-bottom: 0; }
.row-30 > * { margin-bottom: 30px; }
.row-50 { margin-bottom: -50px; }
.row-50:empty { margin-bottom: 0; }
.row-50 > * { margin-bottom: 50px; }

@media (min-width: 768px) {
	* + p { margin-top: 20px; }
	* + .button, * + .button-outer { margin-top: 34px; }
	* + .row { margin-top: 40px; }
	.row-md-50 { margin-bottom: -50px; }
	.row-md-50:empty { margin-bottom: 0; }
	.row-md-50 > * { margin-bottom: 50px; }
}
@media (min-width: 1200px) {
	* + .button, * + .button-outer { margin-top: 40px; }
}

/* Progress linear (seção "Sobre nós") */
.progress-linear { position: relative; text-align: left; }
.progress-linear .progress-header {
	display: flex; align-items: center; justify-content: space-between;
	font-weight: 400;
	transform: translate3d(0, -10px, 0); margin-bottom: -10px;
	margin-left: -5px; margin-right: -5px;
}
.progress-linear .progress-header > * { margin-top: 10px; padding-left: 5px; padding-right: 5px; }
.progress-linear .progress-bar-linear-wrap { height: 2px; background: #f5f6fa; }
.progress-linear .progress-bar-linear { width: 0; height: inherit; background: #354879; transition: .5s all ease-in-out; }
.progress-linear .progress-value::after { content: '\0025'; }
.progress-linear-color-1 .progress-bar-linear { background: #fa9b1f; }
.progress-linear-color-2 .progress-bar-linear { background: #28a699; }
.progress-linear-color-3 .progress-bar-linear { background: #e64573; }

* + .progress-linear { margin-top: 25px; }
* + .progress-linear-outer { margin-top: 25px; }
* + .progress-bar-linear-wrap { margin-top: 8px; }
.progress-linear + .progress-linear { margin-top: 20px; }
.progress-linear-outer + .progress-linear-outer { margin-top: 20px; }

@media (min-width: 768px) {
	* + .progress-linear { margin-top: 40px; }
	* + .progress-linear-outer { margin-top: 30px; }
}
@media (min-width: 1200px) {
	.progress-linear + .progress-linear { margin-top: 34px; }
	.progress-linear-outer + .progress-linear-outer { margin-top: 34px; }
}

/* Animações WOW/Animate.css — mantidas pois o site usa wow.js */
.animated { animation-duration: 1s; animation-fill-mode: both; opacity: 1; }
html:not(.lt-ie10) .not-animated { opacity: 0; }
.wow { backface-visibility: hidden; }

@keyframes fadeIn {
	0% { opacity: 0; } 100% { opacity: 1; }
}
.fadeIn { animation-name: fadeIn; }

@keyframes fadeInUp {
	0% { opacity: 0; transform: translate3d(0, 100%, 0); }
	100% { opacity: 1; transform: none; }
}
.fadeInUp { animation-name: fadeInUp; }

@keyframes fadeInDown {
	0% { opacity: 0; transform: translate3d(0, -100%, 0); }
	100% { opacity: 1; transform: none; }
}
.fadeInDown { animation-name: fadeInDown; }

@keyframes fadeInUpSmall {
	0% { opacity: 0; transform: translate3d(0, 20px, 0); }
	100% { opacity: 1; transform: none; }
}
.fadeInUpSmall { animation-name: fadeInUpSmall; }

@keyframes slideInDown {
	0% { transform: translate3d(0, -100%, 0); visibility: visible; }
	100% { transform: translate3d(0, 0, 0); }
}
.slideInDown { animation-name: slideInDown; }

@keyframes slideInUp {
	0% { transform: translate3d(0, 100%, 0); visibility: visible; }
	100% { transform: translate3d(0, 0, 0); }
}
.slideInUp { animation-name: slideInUp; }

@keyframes slideInLeft {
	0% { transform: translate3d(-100%, 0, 0); visibility: visible; }
	100% { transform: translate3d(0, 0, 0); }
}
.slideInLeft { animation-name: slideInLeft; }

@keyframes slideInRight {
	0% { transform: translate3d(100%, 0, 0); visibility: visible; }
	100% { transform: translate3d(0, 0, 0); }
}
.slideInRight { animation-name: slideInRight; }

@keyframes fadeInLeft {
	0% { opacity: 0; transform: translate3d(-100%, 0, 0); }
	100% { opacity: 1; transform: none; }
}
.fadeInLeft { animation-name: fadeInLeft; }