/**
 * Ajustes do tema Air (WordPress).
 *
 * Complementa o master-branding-agency.css sem alterá-lo. Cada bloco tem o motivo.
 * Carregado por último (functions.php).
 */

/* ── Cabeçalho no mobile ────────────────────────────────────────────────────
 * No HTML aprovado a logo encolhia (flex-shrink) até ~13px e o botão
 * "Agende uma conversa" estourava a largura do container.
 * Aqui: logo com largura fixa, só uma seta no botão e texto menor.
 */
@media (max-width: 767px) {
	.header-area .header__logo {
		flex: 0 0 auto;
	}

	.header-area .header__logo img {
		display: block;
		width: 56px;
		height: auto;
	}

	.header-area .header-area__inner {
		gap: 12px;
	}

	.header-area .header__button {
		flex: 0 1 auto;
		min-width: 0;
	}

	.header-area .header__button .wc-btn-group > .wc-btn-circle:first-child {
		display: none;
	}

	.header-area .header__button .wc-btn-group .wc-btn-primary {
		font-size: 13px !important;
		padding-left: 14px !important;
		padding-right: 14px !important;
		white-space: nowrap;
	}

	.header-area .header__navicon {
		flex: 0 0 auto;
	}
}

/* ── Cards de case ──────────────────────────────────────────────────────────
 * A imagem do card mantém a proporção do recorte (845x650), qualquer que seja
 * a largura da coluna. Sem isso, atributos width/height herdados distorcem.
 */
.work-box .thumb img {
	display: block;
	width: 100%;
	height: auto;
	aspect-ratio: 845 / 650;
	object-fit: cover;
}

/* ── Botões: texto quebra em duas linhas quando não cabe (mobile) ───────────
 * O botão principal do layout é `white-space: nowrap` e a largura é
 * `fit-content`, então textos longos estouravam a tela (ex.: "+ ver todas as
 * marcas que já passaram pela Air"). No mobile o grupo respeita a largura da
 * coluna e o texto do botão pode quebrar. O botão do cabeçalho segue em uma linha.
 */
@media (max-width: 767px) {
	.btn-wrapper,
	.btn-wrapper.d-table {
		display: block !important;
		width: fit-content;
		/* 42px = gutter de 21px de cada lado (alguns botões ficam fora do .container) */
		max-width: min(100%, calc(100vw - 42px));
	}

	.btn-wrapper.m-auto {
		margin-inline: auto !important;
	}

	.wc-btn-group {
		max-width: 100%;
	}

	.wc-btn-group > .wc-btn-circle {
		flex-shrink: 0;
	}

	.wc-btn-group > .wc-btn-primary {
		flex: 0 1 auto;
		min-width: 0;
		white-space: normal;
		text-align: center;
		line-height: 1.25;
		height: auto;
		min-height: 40px;
		padding-top: 10px;
		padding-bottom: 10px;
	}

	.wc-btn-group {
		align-items: center;
	}

	.header-area .wc-btn-group > .wc-btn-primary {
		white-space: nowrap;
	}
}

/* ── Soluções (home): título e texto em 1 coluna no mobile ───────────────── */
@media (max-width: 767px) {
	.service-area .title-wrapper {
		grid-template-columns: 1fr;
		gap: 20px;
	}

	.service-area .title-wrapper p {
		justify-self: start;
		max-width: none;
	}
}

/* ── Rodapé: conteúdo centralizado no mobile ─────────────────────────────── */
@media (max-width: 767px) {
	.footer-area .footer-area-inner {
		justify-items: center;
		text-align: center;
	}

	.footer-area .footer-widget-wrapper {
		width: 100%;
		text-align: center;
	}

	/* O SVG do logo só tem viewBox: em flex ele colapsa para 0. Mantém inline e centraliza. */
	.footer-area .footer-logo {
		text-align: center;
	}

	.footer-area .social-links {
		justify-content: center;
	}

	.footer-area .subscribe-form .input-field {
		margin-inline: auto;
	}

	.footer-area .copyright-area-inner,
	.footer-area .copyright-text {
		text-align: center;
	}
}

/* ── Menu lateral (offcanvas) no mobile ─────────────────────────────────────
 * Antes: a lista de links rolava na vertical e e-mail, endereço e redes
 * sociais ficavam ocultos (`d-none d-md-block`).
 * Agora: tudo cabe na altura da tela, sem rolagem, na ordem:
 * botão fechar → links → e-mail/endereço → redes sociais.
 */
@media (max-width: 767px) {
	.offcanvas-3__area {
		padding: 20px 24px 24px;
	}

	.offcanvas-3__inner {
		display: flex;
		flex-direction: column;
		height: 100%;
		overflow-x: hidden;
		overflow-y: auto; /* só rola se a tela for muito baixa (ex.: celular deitado) */
	}

	/* Reordena os filhos do bloco de meta junto com o menu. */
	.offcanvas-3__meta-wrapper {
		display: contents;
	}

	.offcanvas-3__meta-wrapper > div:first-child {
		order: 1;
		flex: 0 0 auto;
	}

	.offcanvas-3__menu-wrapper {
		order: 2;
		flex: 1 1 auto;
		min-height: 0;
		align-items: center;
	}

	.offcanvas-3__meta-wrapper > div:last-child {
		order: 3;
		flex: 0 0 auto;
		padding-top: 16px;
		border-top: 1px solid rgba(255, 255, 255, 0.25);
	}

	.offcanvas-3__close-spacer,
	.close-button {
		width: 48px;
		height: 48px;
	}

	.offcanvas-3__menu {
		height: auto;
		overflow: visible;
	}

	.offcanvas-3__menu li a {
		font-size: clamp(16px, 3.1vh, 24px);
	}

	.offcanvas-3__menu li:not(:last-child) {
		margin-bottom: clamp(8px, 2.2vh, 18px);
	}

	/* E-mail, endereço e redes voltam a aparecer no mobile. */
	.offcanvas-3__meta,
	.offcanvas-3__social {
		display: block !important;
	}

	.offcanvas-3__meta.mb-145 {
		margin-bottom: 14px !important;
	}

	.offcanvas-3__meta li {
		font-size: 13px;
		line-height: 1.35;
		text-transform: none;
	}

	.offcanvas-3__meta li:not(:last-child) {
		margin-bottom: 8px;
	}

	.offcanvas-3__social .title {
		font-size: 13px;
		margin-bottom: 8px;
	}

	.offcanvas-3__social-links a {
		font-size: 20px;
	}
}

/* ── Hero de Nossas soluções: fonte maior no mobile ─────────────────────────
 * O layout usa clamp(18px, 5vw, 32px) (≈19px a 375px de largura), pequeno
 * demais sobre a foto. Mantém a proporção entre frase e palavras animadas,
 * porque a altura da "pílula" e das palavras é definida em em.
 */
@media (max-width: 767px) {
	.hero-phrase {
		font-size: clamp(24px, 7.5vw, 36px);
		row-gap: 12px;
	}

	/* O <br> é ocultado no mobile pelo CSS do layout; balanceia as linhas para
	 * não deixar "A PONTA" sozinho na segunda linha. */
	.hero-phrase__left,
	.hero-phrase__right {
		text-wrap: balance;
	}
}

/* ── Case interna: bloco de prêmios no mobile ───────────────────────────────
 * O ícone do troféu (242x247) ficava maior que a caixa do layout (160x80) e
 * encostava no texto. Aqui a caixa acompanha o ícone, o ícone é menor e há
 * espaço entre o ícone e o texto.
 */
@media (max-width: 767px) {
	.fun-fact-awards {
		gap: 16px;
		padding: 28px 24px;
	}

	.fun-fact-awards__icon {
		width: auto;
		height: auto;
		padding: 0;
	}

	.fun-fact-awards__icon img {
		width: 64px;
		height: auto;
	}
}

/* ── Banner parallax (imagem entre seções) no mobile ────────────────────────
 * A imagem 1920x1000 ocupa só ~195px de altura a 375px de largura, e a seção
 * seguinte a sobrepõe em 130px (margin-top: -130px), deixando ~65px visíveis.
 * Aqui a imagem ganha altura própria (recorte central) para aparecer de fato.
 * Vale para Home, Nossas soluções e Case interna.
 */
@media (max-width: 767px) {
	.image-wrapper img {
		display: block;
		width: 100%;
		height: 340px;
		object-fit: cover;
		object-position: center;
	}
}

/* ── Hub: capas de e-book sem corte ─────────────────────────────────────────
 * A capa é retrato (194x302). O layout a colocava numa caixa de altura fixa
 * (220px no mobile; altura do card nas demais telas) com `object-fit: cover`,
 * cortando o topo e a base (ex.: "Influência que engaja").
 * Aqui a caixa segue a proporção da capa, então ela aparece inteira.
 */
.books-card__cover {
	align-self: flex-start;
	height: auto;
	aspect-ratio: 194 / 302;
}

.books-card__cover a,
.books-card__cover img {
	height: 100%;
}

@media (min-width: 576px) and (max-width: 1199px) {
	.books-card__cover {
		flex: 0 0 150px;
		max-width: 150px;
	}
}

@media (max-width: 575px) {
	.books-card {
		align-items: stretch;
	}

	.books-card__cover {
		flex: none;
		width: min(180px, 56%);
		max-width: 180px;
		height: auto;
		margin-inline: auto;
		align-self: center;
	}
}

/* ── Hub: newsletter, texto "Garanta seu acesso exclusivo" ──────────────────
 * No mobile o texto quebra para baixo do botão e ficava colado, deslocado
 * por margem + padding + borda lateral pensados para a linha única do desktop.
 * Aqui ele vira uma linha própria, alinhada à esquerda do botão, com espaço.
 */
@media (max-width: 767px) {
	.newsletter-intro__actions {
		flex-direction: column;
		align-items: flex-start;
		gap: 18px;
	}

	.newsletter-intro__trust {
		margin: 0;
		padding-left: 0;
		border-left: 0;
	}
}


/* ── Contact Form 7 ──────────────────────────────────────────────────────────
 * O CF7 envolve cada campo em <span class="wpcf7-form-control-wrap"> e acrescenta
 * mensagens de validação e de resultado. Ajustes para manter o layout aprovado.
 */
.wpcf7-form-control-wrap {
	display: block;
}

/* Bloco de contato (fundo branco) */
.cta-area .wpcf7-not-valid-tip {
	display: block;
	margin-top: 6px;
	color: #c1121f;
	font-size: 13px;
	line-height: 1.3;
}

.cta-area .wpcf7-not-valid {
	border-bottom-color: #c1121f !important;
}

.cta-area .contact-check .wpcf7-form-control-wrap {
	flex-shrink: 0;
	display: block;
	margin: 0;
}

.cta-area .contact-check .wpcf7-list-item {
	margin: 0;
	display: block;
}

.cta-area .wpcf7 form .wpcf7-response-output {
	margin: 24px 0 0;
	padding: 12px 16px;
	border: 1px solid var(--primary);
	border-radius: 12px;
	color: var(--theme);
	font-size: 14px;
	line-height: 1.4;
}

.cta-area .wpcf7 form.sent .wpcf7-response-output {
	border-color: #1b8a3a;
	color: #1b8a3a;
}

.wpcf7-spinner {
	display: none;
}

.wpcf7 form.submitting .submit-btn .wc-btn-primary,
.wpcf7 form.submitting .subscribe-btn {
	opacity: 0.6;
	pointer-events: none;
}

/* Newsletter do rodapé (fundo escuro) */
.subscribe-form .wpcf7-form-control-wrap {
	flex: 1 1 auto;
	min-width: 0;
}

.subscribe-form .wpcf7-not-valid-tip,
.subscribe-form .wpcf7-response-output {
	color: var(--white);
	font-size: 13px;
	line-height: 1.35;
}

.subscribe-form .wpcf7-response-output {
	margin: 10px 0 0;
	padding: 0;
	border: 0;
}


/* ── Acessibilidade: texto só para leitores de tela ─────────────────────────
 * Usado pelo H1 estático de Nossas soluções (a frase animada fica aria-hidden).
 */
.screen-reader-text {
	position: absolute !important;
	width: 1px;
	height: 1px;
	margin: -1px;
	padding: 0;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border: 0;
}

/* ── Filtro de cases por etapa ───────────────────────────────────────────── */
.cases-filtro {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin-top: 40px;
}

.cases-filtro__item {
	display: inline-block;
	padding: 10px 18px;
	border: 1px solid var(--border);
	border-radius: 40px;
	font-size: 14px;
	text-transform: uppercase;
	color: inherit;
	transition: all 0.3s;
}

.cases-filtro__item:hover,
.cases-filtro__item.is-active {
	background-color: var(--primary);
	border-color: var(--primary);
	color: var(--white);
}

.cases-vazio {
	margin-top: 40px;
	font-size: 18px;
}

/* ── Hub: seção da newsletter na cor laranja da marca ───────────────────── */
.newsletter-area--orange {
	background-color: #ff3300;
}

/* ── Hub: benefícios da newsletter sem <li> vazio ───────────────────────────
 * O separador vertical (antes um <li> vazio) virou borda do item seguinte.
 */
.newsletter-features__item {
	flex: 1 1 0;
	min-width: 0;
}

.newsletter-features__item + .newsletter-features__item {
	padding-left: 28px;
	border-left: 1px solid var(--primary);
}

.newsletter-area--orange .newsletter-features__item + .newsletter-features__item {
	border-left-color: var(--white);
}

@media (max-width: 1199px) {
	.newsletter-features__item {
		flex: none;
		width: 100%;
	}

	.newsletter-features__item + .newsletter-features__item {
		padding-left: 0;
		padding-top: 14px;
		margin-top: 14px;
		border-left: 0;
		border-top: 1px solid var(--primary);
	}

	.newsletter-area--orange .newsletter-features__item + .newsletter-features__item {
		border-top-color: var(--white);
	}
}

/* Case interna: cards de resultado em texto e lista de vídeos */
.fun-fact-stat--texto {
	display: flex;
	flex-direction: column;
	gap: 8px;
}

.fun-fact-stat__titulo {
	font-weight: 600;
	line-height: 1.25;
}

.case-videos-list {
	display: grid;
	gap: 24px;
}

/* Sem Aircast: vídeos em linha, um ao lado do outro. */
.case-aircast-grid--videos {
	grid-template-columns: 1fr;
}

.case-aircast-grid--videos .case-videos-list {
	grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
	gap: 40px;
}

/* Case interna: último bloco sozinho na linha (ex.: Estratégia e Execução) ocupa 100% da largura */
.case-content-area .text-wrapper .case-block:last-child:nth-child(odd) {
	grid-column: 1 / -1;
}

/* Case interna: título do resultado em branco e maior */
.fun-fact-stat__titulo {
	display: block;
	font-family: var(--font_heading);
	font-size: 27px;
	font-weight: 700;
	line-height: 1.2;
	color: var(--white);
}

/* Cards de case: miniatura sempre na proporção do card (845×650), mesmo se a imagem original for menor */
.work-box .thumb img {
	display: block;
	aspect-ratio: 845 / 650;
	height: auto;
	object-fit: cover;
}

/* Listagem de cases: colunas sempre iguais (tags em muitas etapas não alargam a coluna) */
.work-area .works-wrapper {
	grid-template-columns: repeat(3, minmax(0, 1fr));
}

.work-box .tags {
	flex-wrap: wrap;
}

@media only screen and (max-width: 1199px) {
	.work-area .works-wrapper {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media only screen and (max-width: 767px) {
	.work-area .works-wrapper {
		grid-template-columns: minmax(0, 1fr);
	}
}

/* Materiais de mídia: imagens sem corte (mantém a proporção; as horizontais ficam menores em altura) */
.portfolio-active .swiper-slide {
	display: flex;
	align-items: center;
	overflow: visible;
	border-radius: 0;
}

.portfolio-active .swiper-slide img {
	width: 100%;
	height: auto;
	max-height: 100%;
	object-fit: contain;
	border-radius: 24px;
}

/* Hub: mockup vertical do celular na newsletter (sem corte), centralizado e com altura controlada */
.newsletter-intro__visual img {
	width: auto;
	max-width: 100%;
	max-height: 560px;
	margin-inline: auto;
}

/* Banner de cookies (Complianz): texto da mensagem em 12px */
.cmplz-cookiebanner .cmplz-message p {
	font-size: 12px;
}

/* Card de case: nome do cliente acima do título */
.work-box .client {
	display: block;
	margin-bottom: 6px;
	color: var(--secondary);
	font-size: 14px;
	font-weight: 600;
	letter-spacing: 0.04em;
	text-transform: uppercase;
}

/* Menu do header em laptops: o menu é centralizado com position:absolute e ficava limitado à
 * metade do container, quebrando os itens em duas linhas. Largura pelo conteúdo, sem quebra. */
@media (min-width: 1200px) {
	.header-area .header__nav.pos-center {
		width: max-content;
	}

	.header-area .main-menu li a {
		white-space: nowrap;
	}
}

@media (min-width: 1200px) and (max-width: 1439px) {
	.header-area .main-menu li a {
		padding-left: 10px;
		padding-right: 10px;
		font-size: 15px;
	}
}

/* Materiais de mídia: todas as imagens com a mesma altura (largura proporcional), sem corte */
.portfolio-active {
	height: min(60vh, 520px);
}

.portfolio-active .swiper-slide img {
	width: 100%;
	height: 100%;
	max-height: none;
	object-fit: contain;
}

/* Resultados do case: textos alinhados ao topo; o último card sozinho ocupa 100% da coluna */
.fun-fact-stats--cards .fun-fact-stat {
	justify-content: flex-start;
}

.fun-fact-stats--cards .fun-fact-stat:last-child:nth-child(odd) {
	grid-column: 1 / -1;
}

/* Case interna: logo do cliente no hero, sempre numa bolinha branca de tamanho fixo */
.case-hero-logo {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 120px;
	height: 120px;
	padding: 18px;
	border-radius: 50%;
	background-color: #fff;
}

.case-hero-logo img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: contain;
}

/* Grafismo (curvas) no topo e na base dos cards ao passar o mouse: o pseudo-elemento era inline e
 * ganhava ~3px de espaço de linha abaixo da imagem, deixando uma fresta de foto na base. */
.work-box .thumb::before,
.work-box .thumb::after,
.blog .thumb::before,
.blog .thumb::after {
	display: block;
	line-height: 0;
}

/* Páginas de texto (Política de Privacidade e Cookies): faixa laranja no topo e texto legível */
.legal-hero {
	padding: 170px 0 70px;
	background-color: var(--primary);
}

.legal-hero .entry-title {
	margin: 0;
	color: #fff;
	font-size: clamp(36px, 5vw, 64px);
	line-height: 1.05;
}

.legal-content {
	padding: 70px 0 110px;
	background-color: #fff;
}

.legal-content .container {
	max-width: 920px;
}

.legal-content .entry-content {
	color: #222;
	font-size: 16px;
	line-height: 1.7;
}

.legal-content .entry-content h2 {
	margin: 48px 0 16px;
	color: var(--primary);
	font-size: clamp(26px, 3vw, 34px);
	line-height: 1.1;
}

.legal-content .entry-content h2:first-child {
	margin-top: 0;
}

.legal-content .entry-content p {
	margin: 0 0 16px;
	color: #222;
	font-size: 16px;
	line-height: 1.7;
}

.legal-content .entry-content a {
	color: var(--primary);
	text-decoration: underline;
}

.legal-content .policy-table {
	margin: 24px 0 28px;
	overflow-x: auto;
}

.legal-content .policy-table table {
	width: 100%;
	min-width: 640px;
	border-collapse: collapse;
}

.legal-content .policy-table th {
	padding: 12px 14px;
	background-color: var(--primary);
	color: #fff;
	font-size: 15px;
	font-weight: 600;
	text-align: left;
}

.legal-content .policy-table td {
	padding: 12px 14px;
	border: 1px solid #e4e4e4;
	font-size: 15px;
	line-height: 1.55;
	vertical-align: top;
}

.legal-content .policy-table tr:nth-child(even) td {
	background-color: #faf6f4;
}

@media (max-width: 767px) {
	.legal-hero {
		padding: 130px 0 50px;
	}

	.legal-content {
		padding: 50px 0 80px;
	}
}

/* Páginas de texto: o rodapé do tema sobe 130px sobre a seção anterior; o espaço inferior
 * compensa essa sobreposição para o texto não ficar colado no rodapé. */
.legal-content {
	padding-bottom: 240px;
}

@media (max-width: 767px) {
	.legal-content {
		padding-bottom: 210px;
	}
}

/* Materiais de mídia em telas menores que 1400px: altura de até 450px (60% da altura da tela) */
@media (max-width: 1399px) {
	.portfolio-active {
		height: min(60vh, 450px);
	}
}

/* Sobre nós: seção "Faça parte do nosso Pessoair!" (venha trabalhar conosco) */
.join-area-inner {
	display: grid;
	grid-template-columns: 1.1fr 1fr;
	gap: 60px;
	align-items: center;
}

.join-area__text {
	margin: 24px 0 36px;
	max-width: 560px;
	color: var(--black);
	font-size: 18px;
	line-height: 1.6;
}

.join-area__visual img {
	display: block;
	width: 100%;
	aspect-ratio: 4 / 3;
	object-fit: cover;
	border-radius: 24px;
}

@media (max-width: 991px) {
	.join-area-inner {
		grid-template-columns: 1fr;
		gap: 36px;
	}

	.join-area__text {
		font-size: 16px;
	}
}

/* Sobre nós: "Faça parte..." com fundo próprio, para a aba arredondada (section-style) aparecer
 * por cima da seção anterior. O espaço superior fica por conta do .section-spacing. */
.join-area {
	background-color: var(--white);
}

/* Hub: feed automático do Instagram (plugin Smash Balloon) com o mesmo visual dos cards do layout:
 * grade de 4 colunas (2 no tablet e no celular), cartão branco arredondado, foto 4:5 e a barra de
 * ícones embaixo. Os !important vencem os estilos em linha que o plugin injeta. */
.instagram-feed__auto #sb_instagram {
	width: 100% !important;
	max-width: none !important;
	padding: 0 !important;
}

.instagram-feed__auto #sb_instagram #sbi_images {
	display: grid !important;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 12px !important;
	padding: 0 !important;
}

.instagram-feed__auto #sb_instagram #sbi_images .sbi_item {
	position: relative;
	float: none !important;
	width: auto !important;
	margin: 0 !important;
	padding: 0 0 40px !important;
	border-radius: 14px;
	overflow: hidden;
	background-color: var(--white);
	box-shadow: 0 8px 24px rgba(18, 18, 18, 0.08);
}

.instagram-feed__auto #sb_instagram .sbi_photo_wrap {
	display: block;
	padding: 0 !important;
}

.instagram-feed__auto #sb_instagram .sbi_photo {
	display: block !important;
	width: 100% !important;
	height: auto !important;
	aspect-ratio: 4 / 5;
	background-color: #ececec;
	overflow: hidden;
}

.instagram-feed__auto #sb_instagram .sbi_photo img {
	display: block;
	width: 100% !important;
	height: 100% !important;
	object-fit: cover;
}

/* Barra de ícones (curtir, comentar, enviar, salvar), só decorativa, como no layout aprovado */
.instagram-feed__auto #sb_instagram #sbi_images .sbi_item::before,
.instagram-feed__auto #sb_instagram #sbi_images .sbi_item::after {
	position: absolute;
	bottom: 10px;
	color: #c4c4c4;
	font-family: "Font Awesome 6 Free";
	font-size: 14px;
	font-weight: 400;
	line-height: 20px;
	pointer-events: none;
}

.instagram-feed__auto #sb_instagram #sbi_images .sbi_item::after {
	left: 12px;
	content: "\f004\00a0\00a0\00a0\f075\00a0\00a0\00a0\f1d8";
}

.instagram-feed__auto #sb_instagram #sbi_images .sbi_item::before {
	right: 12px;
	content: "\f02e";
}

/* Sem botões de "carregar mais" e "seguir": o layout já tem o link para o perfil */
.instagram-feed__auto #sbi_load,
.instagram-feed__auto .sbi_load_btn,
.instagram-feed__auto .sbi_follow_btn {
	display: none !important;
}

@media only screen and (max-width: 1199px) {
	.instagram-feed__auto #sb_instagram #sbi_images {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}
