/*
 * Seções compartilhadas (T7.2): públicos, "O que nos move" e "Quem caminha com você". Usadas na Home e, na T8, em
 * O Instituto e Atendimentos. Medidas de 01-home-base-escolhida.png (1003 px) e, para os públicos, da composição de
 * 04-atendimentos-com-publicos.png (765 px) levada ao contêiner de 900 px (cartões 1 : 1 : 1 : 1,5).
 * Ornamentos: docs/01-design/decor/extrair-home-t72.py (ramos sobre branco, usados com multiply).
 */

.audiences,
.values,
.team {
	position: relative;
	overflow-x: clip;                     /* ramos nas bordas não criam rolagem horizontal */
	padding: 18px var(--fa-gutter) 0;
}

.audiences .section-title__text {
	max-width: 780px;                     /* subtítulo em uma linha, como na referência */
}

.audiences .section-title,
.values .section-title,
.team .section-title {
	margin-bottom: 14px;
}

.audiences__ramo,
.values__ramo,
.team__ramo,
.audience-card__raminho {
	position: absolute;
	z-index: 2;
	mix-blend-mode: multiply;
	pointer-events: none;
}

/* Públicos */
.audiences__grid {
	position: relative;
	display: grid;
	grid-template-columns: 1fr 1fr 1fr 1.5fr;
	gap: 15px;
	max-width: var(--fa-container-max);
	margin: 0 auto;
}

.audiences__grid--humans {
	grid-template-columns: repeat(3, 1fr);
	max-width: calc(var(--fa-container-max) * 0.67);
}

.audiences__ramo {
	top: -96px;
	width: 70px;
}

.audiences__ramo--esq {
	left: -62px;
}

.audiences__ramo--dir {
	right: -62px;
	transform: scaleX(-1);
}

.audience-card {
	position: relative;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 14px;
	min-height: var(--fa-audience-height);
	padding: 18px 12px;
	border: var(--fa-border-width) solid var(--fa-color-border);
	border-radius: var(--fa-radius-card);
	background: var(--fa-color-surface);
	text-align: center;
}

.audience-card__halo {
	display: grid;
	place-items: center;
	width: var(--fa-audience-halo);
	height: var(--fa-audience-halo);
	border-radius: 50%;
	background: var(--fa-color-badge);
	color: var(--fa-color-heading);
}

.audience-card__halo .icon svg {
	width: var(--fa-audience-icon);
	height: var(--fa-audience-icon);
}

.audience-card__title {
	margin: 0;
	font-size: var(--fa-size-audience);
}

.audience-card__raminho {
	right: -22px;
	bottom: 8px;
	width: 62px;
}

.audience-card--animal {
	flex-direction: row;
	align-items: flex-start;
	gap: 14px;
	padding: 18px 18px 16px;
	border-color: var(--fa-color-animal-border);
	background: linear-gradient(160deg, #f6f3fe 0%, var(--fa-color-animal) 100%);
	text-align: left;
}

.audience-card--animal .audience-card__halo {
	flex: none;
	width: 76px;
	height: 76px;
	background: var(--fa-color-animal-halo);
	color: var(--fa-color-heading);
}

.audience-card--animal .audience-card__halo .icon svg {
	width: 46px;
	height: 46px;
}

.audience-card__body {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 6px;
	min-width: 0;
}

.audience-card__text {
	margin: 0;
	color: var(--fa-color-text);
	font-size: var(--fa-size-small);
	line-height: var(--fa-leading-small);
}

.button--outline {
	min-height: 32px;
	padding: 0 22px;
	border: 1.5px solid var(--fa-color-primary);
	background: var(--fa-color-surface);
	color: var(--fa-color-primary);
}

.button--outline:hover,
.button--outline:focus-visible {
	color: var(--fa-color-primary);
}

.audience-card__notice {
	margin: 2px 0 0;
	color: var(--fa-color-link);
	font-size: var(--fa-size-footer-meta);
	font-style: italic;
	line-height: 1.35;
}

.audience-card__more {
	align-self: center;
	margin-top: 6px;
}

/* O que nos move: 4 cards de ~220 × 204 px, 7 px entre eles; halo quase branco (D16) */
.values__grid {
	position: relative;
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 7px;
	max-width: var(--fa-container-max);
	margin: 0 auto;
}

.values__ramo--esq {
	top: -15px;
	left: -38px;
	width: 90px;
}

.values__ramo--dir {
	top: -3px;
	right: -44px;
	width: 83px;
}

.value-card {
	overflow: hidden;
	display: flex;
	flex-direction: column;
	align-items: center;
	min-height: var(--fa-value-height);
	padding: 0 18px 14px;
	border: var(--fa-border-width) solid var(--fa-color-border);
	border-radius: var(--fa-radius-value);
	background: var(--fa-color-surface);
	text-align: center;
}

.value-card__halo {
	display: grid;
	place-items: center;
	flex: none;
	width: var(--fa-value-halo);
	height: 76px;                         /* elipse clara atrás do ícone (ícone em y 682–736, título em 749) */
	margin: 8px 0 2px;
	border-radius: 50%;
	background: var(--fa-color-value-halo);
	color: var(--fa-color-heading);
}

.value-card__halo .icon svg {
	width: var(--fa-value-icon);
	height: var(--fa-value-icon);
}

.value-card__title {
	position: relative;
	margin: 0;
	font-size: var(--fa-size-value-title);
	line-height: 1.08;
}

.value-card__text {
	margin: 9px 0 0;
	color: var(--fa-color-text);
	font-size: var(--fa-size-value-text);
	line-height: 1.36;
}

/* Quem caminha com você: Marta 469 px, Luiza 413 px, 8 px entre eles (x 56–946); botão 228 × 35 sobre a base */
.team__grid {
	position: relative;
	display: grid;
	grid-template-columns: minmax(0, 469fr) minmax(0, 413fr);
	gap: 8px;
	max-width: var(--fa-team-max);
	margin: 0 auto;
}

.team__grid--single {
	grid-template-columns: minmax(0, 469px);
	justify-content: center;
}

.team__ramo {
	top: 159px;
	left: -31px;
	width: 165px;
}

.team .card-pro {
	align-items: flex-start;
	gap: 17px;
	min-height: var(--fa-team-card-height);
	padding: 22px 16px 26px;
}

.team .card-pro__role {
	margin-bottom: 14px;
	font-size: var(--fa-size-team-role);
}

.team .card-pro__text {
	font-size: var(--fa-size-team-text);
	line-height: 1.42;
}

.team .card-pro__floral {
	mix-blend-mode: multiply;             /* ramo da Home extraído sobre branco */
}

.team .card-pro__photo {
	margin-top: 3px;
}

.team .card-pro--no-photo {
	gap: 0;
	padding: 2px 18px 26px 2px;
}

.team .card-pro__floral {
	width: var(--fa-team-floral);
}

.team .card-pro__body {
	padding-top: 0;
}

.team .card-pro--no-photo .card-pro__body {
	padding-top: 22px;
}

.team .card-pro__name {
	margin-bottom: 6px;
}

.team__action {
	position: relative;
	z-index: 3;
	display: flex;
	justify-content: center;
	margin-top: -17px;                    /* botão em y 1131–1166; cartões terminam em 1148 */
}

.team__button {
	min-width: var(--fa-team-button-width);
	padding: 0 16px;
	font-size: var(--fa-size-button);
}

/* Projeto Xícaras de Conversa (T7.3): cartão x 58–943, y 1176–1280; ilustração x ≈ 178–440; texto a partir de x 474 */
.project {
	position: relative;
	overflow-x: clip;
	padding: 28px var(--fa-gutter) 0;
}

.project__borda {
	position: absolute;
	top: 0;
	z-index: 0;
	mix-blend-mode: multiply;
	pointer-events: none;
}

.project__borda--esq {
	left: 0;
	width: 56px;
}

.project__borda--dir {
	right: 0;
	width: 59px;
	top: -6px;
}

.project-card {
	position: relative;
	display: grid;
	grid-template-columns: var(--fa-project-media) minmax(0, 1fr);
	align-items: center;
	max-width: var(--fa-intro-width);
	min-height: var(--fa-project-height);
	margin: 0 auto;
	border: var(--fa-border-width) solid var(--fa-color-border);
	border-radius: var(--fa-radius-intro);
	background: linear-gradient(90deg, #f3f8fd 0%, #f7fbfe 55%, #f1f7fd 100%);
}

.project-card--no-image {
	grid-template-columns: minmax(0, 1fr);
	padding-left: var(--fa-project-media);
}

.project-card__ramo {
	position: absolute;
	z-index: 0;
	mix-blend-mode: multiply;
	pointer-events: none;
}

.project-card__ramo--esq {
	bottom: 0;
	left: 6px;
	width: 90px;
}

.project-card__ramo--dir {
	right: 2px;
	bottom: 0;
	width: 134px;
}

.project-card__media {
	position: relative;
	z-index: 1;
	align-self: end;
	justify-self: end;
	width: var(--fa-project-img);
}

.project-card__img {
	display: block;
	width: 100%;
	height: auto;
	mix-blend-mode: multiply;
}

.project-card__body {
	position: relative;
	z-index: 1;
	padding: 10px 112px 6px 34px;           /* texto até x ≈ 790 e a ~4 px da base, como na referência */
}

.project-card__title {
	margin: 0;
	font-size: var(--fa-size-project-title);
	line-height: 1;
}

.project-card .divider {
	justify-content: flex-start;
	max-width: 268px;
	margin: 0;
}

.project-card .divider__line {
	flex: 1 1 0;
}

.project-card__text {
	margin-top: 4px;
	color: var(--fa-color-heading);
	font-size: var(--fa-size-body);
	line-height: 1.22;
}

.project-card__text p {
	margin: 0;
}

/* Aviso da Home */
.home-notice {
	padding: 9px var(--fa-gutter) 0;
}

/* Chamada final azul (D8): faixa y ~1345–1453 com borda superior ondulada; ramo dourado à esquerda */
.final-cta {
	position: relative;
	overflow: hidden;
	margin-top: 6px;
	padding: 44px var(--fa-gutter) 22px;
	background: var(--fa-color-primary);
	color: var(--fa-color-on-primary);
}

.final-cta__wave {
	position: absolute;
	top: -1px;
	left: 0;
	width: 100%;
	height: 34px;
	fill: var(--fa-color-surface);
}

.final-cta__ramo {
	position: absolute;
	bottom: 0;
	left: 0;
	width: 165px;
	pointer-events: none;
}

.final-cta__inner {
	position: relative;
	z-index: 1;
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto auto;
	align-items: center;
	gap: 0 22px;
	max-width: var(--fa-cta-max);
	margin: 0 auto;
	padding-left: 110px;                  /* título em x 147; contatos terminam em x ≈ 940 */
}

.final-cta__title {
	margin: 0;
	color: var(--fa-color-on-primary);
	font-size: var(--fa-size-cta-title);
}

.final-cta__lead {
	max-width: 360px;                     /* uma linha para textos curtos (Home); textos longos quebram sem empurrar os contatos */
	margin: 4px 0 0 4px;
	font-size: var(--fa-size-cta-lead);
	line-height: 1.3;
}

.final-cta__button {
	min-width: var(--fa-cta-button-width);
}

.final-cta__contacts {
	display: grid;
	gap: 8px;
	margin: 0;
	padding: 4px 0 4px 24px;
	border-left: 1px solid rgba(255, 255, 255, 0.7);
	list-style: none;
	font-size: var(--fa-size-footer-contact);
}

.final-cta__contacts li {
	display: flex;
	align-items: center;
	gap: 10px;
}

.final-cta__contacts a,
.final-cta__contacts span {
	color: var(--fa-color-on-primary);
	text-decoration: none;
}

.final-cta__contacts a:hover,
.final-cta__contacts a:focus-visible {
	text-decoration: underline;
}

.final-cta__contacts .icon svg {
	width: 22px;
	height: 22px;
}

.final-cta :focus-visible {
	outline-color: var(--fa-color-on-primary);
}

/* Profissionais — cartão completo (D12; 03-profissionais.png, 931 px): cartão x 43–888 (845 px); coluna de mídia
   ~394 px (foto 265 px com aro, centro em x 260); texto a partir de x 437 */
.professionals {
	display: grid;
	gap: 18px;
	padding: 18px var(--fa-gutter) 0;
}

.pro-full {
	position: relative;
	display: grid;
	grid-template-columns: var(--fa-pro-media) minmax(0, 1fr);
	align-items: center;
	width: 100%;
	max-width: var(--fa-pro-width);
	margin: 0 auto;
	padding: 24px 24px 26px 0;
	border: var(--fa-border-width) solid var(--fa-color-border);
	border-radius: var(--fa-radius-intro);
	background: linear-gradient(135deg, #f6fafe 0%, var(--fa-color-surface-soft) 60%, #eef5fc 100%);
}

.pro-full--no-photo {
	background: linear-gradient(135deg, #f7f6fd 0%, var(--fa-color-surface-alt) 100%);
}

.pro-full__media {
	position: relative;
	display: grid;
	place-items: center;
	align-self: stretch;
	padding-left: 38px;                   /* centro da foto em x ≈ 260 (coluna de 394 px a partir de x 43) */
}

.pro-full__ramos {
	position: absolute;
	top: -12px;
	left: -25px;
	width: 400px;
	mix-blend-mode: multiply;
	pointer-events: none;
}

.pro-full__ring {
	position: relative;
	z-index: 1;
	width: var(--fa-pro-photo);
	height: var(--fa-pro-photo);
	flex: none;
	padding: 4px;
	border: 2px solid var(--fa-color-gold);
	border-radius: 50%;
	background: var(--fa-color-surface);
}

/* Foto acima do centro (~34% da altura no cartão da Marta, y ≈ 521 em 349–850) sem sair do cartão quando ele é mais
   baixo (cartão da Luiza com foto, 15/10/2026): espaço de cima = (sobra − 110) / 2, de baixo = 110 + o mesmo; se a
   sobra for menor que 110 px, o espaço de cima vai a zero. Equivale ao antigo margin-top: -110px nos cartões altos. */
.pro-full:not(.pro-full--no-photo) .pro-full__media {
	display: flex;
	flex-direction: column;
	align-items: center;
}

.pro-full:not(.pro-full--no-photo) .pro-full__media::before,
.pro-full:not(.pro-full--no-photo) .pro-full__media::after {
	content: "";
	flex: 1 1 0;
	min-height: 0;
}

.pro-full:not(.pro-full--no-photo) .pro-full__media::after {
	flex-basis: 110px;
}

.pro-full__photo {
	display: block;
	width: 100%;
	height: 100%;
	border-radius: 50%;
	object-fit: cover;
}

.pro-full__floral {
	width: var(--fa-pro-floral);
	height: auto;
	margin-left: 18px;
}

.pro-full__body {
	position: relative;
	z-index: 1;
	min-width: 0;
}

.pro-full__name {
	margin: 0;
	font-size: var(--fa-size-pro-name);
	line-height: 1.05;
}

.pro-full__role {
	margin: 2px 0 0;
	color: var(--fa-color-heading);
	font-family: var(--fa-font-heading);
	font-size: var(--fa-size-pro-role);
	font-weight: var(--fa-weight-strong);
}

.pro-full .divider {
	justify-content: flex-start;
	max-width: 362px;
	margin: 4px 0 8px;
}

.pro-full .divider__line {
	flex: 1 1 0;
}

.pro-full__credentials {
	display: grid;
	gap: 6px;
	margin: 0 0 14px;
	padding: 0;
	list-style: none;
	color: var(--fa-color-heading);
	font-size: var(--fa-size-pro-credential);
	line-height: 1.3;
}

.pro-full__credentials li {
	display: flex;
	align-items: flex-start;
	gap: 12px;
}

.pro-full__credentials .icon svg {
	width: 18px;
	height: 18px;
	margin-top: 1px;
	color: var(--fa-color-link);
}

.pro-full__detail {
	display: block;
	margin-top: 4px;
}

.pro-full__areas {
	margin: 0 0 12px;
	padding: 10px 16px 14px;
	border: var(--fa-border-width) solid var(--fa-color-border);
	border-radius: var(--fa-radius-card);
	background: var(--fa-color-surface);
}

.pro-full__areas-title {
	margin: 0 0 8px;
	font-size: var(--fa-size-h4);
}

.pro-full__areas ul {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 6px 8px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.pro-full__areas li {
	display: flex;
	align-items: center;
	gap: 12px;
	min-height: 28px;
	padding: 0 12px;
	border-radius: var(--fa-radius-pill);
	background: var(--fa-color-badge);
	color: var(--fa-color-heading);
	font-size: var(--fa-size-footer-meta);
}

.pro-full__areas .icon svg {
	width: 22px;
	height: 22px;
}

.pro-full__project {
	display: flex;
	align-items: center;
	gap: 14px;
	margin: 0 0 12px;
	color: var(--fa-color-heading);
	font-size: var(--fa-size-strong-small);
}

.pro-full__project .icon {
	color: var(--fa-color-gold);
}

.pro-full__project .icon svg {
	width: 28px;
	height: 28px;
}

.pro-full__button {
	min-width: var(--fa-pro-button-width);
	font-size: var(--fa-size-hero-button);
}

/* Passos (D24): 3 cartões de ~98 px, número em círculo, ícone por posição, seta entre os cartões */
.steps {
	padding: 22px var(--fa-gutter) 0;
}

.steps .section-title {
	margin-bottom: 14px;
}

.steps__list {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 22px;
	max-width: var(--fa-steps-max);
	margin: 0 auto;
	padding: 0;
	list-style: none;
}

.step-card {
	position: relative;
	display: flex;
	align-items: flex-start;
	gap: 12px;
	min-height: 98px;
	padding: 18px 16px 14px 12px;
	border: var(--fa-border-width) solid var(--fa-color-border);
	border-radius: var(--fa-radius-intro);
	background: var(--fa-color-surface);
}

.step-card__number {
	display: grid;
	flex: none;
	place-items: center;
	width: 28px;
	height: 28px;
	border-radius: 50%;
	background: var(--fa-color-badge);
	color: var(--fa-color-heading);
	font-family: var(--fa-font-heading);
	font-size: 17px;
	font-weight: var(--fa-weight-heading);
	font-variant-numeric: lining-nums; /* algarismos alinhados, como nas referências 03/05 (Cormorant usa estilo antigo) */
}

.step-card > .icon {
	color: var(--fa-color-heading);
}

.step-card > .icon svg {
	width: 44px;
	height: 44px;
}

.step-card__title {
	margin: 0 0 4px;
	font-size: var(--fa-size-step-title);
	line-height: 1.12;
}

.step-card__text {
	margin: 0;
	color: var(--fa-color-text);
	font-size: var(--fa-size-footer-meta);
	line-height: 1.35;
}

.step-card__arrow {
	position: absolute;
	top: 50%;
	right: -18px;
	color: var(--fa-color-heading);
	transform: translateY(-50%);
}

/* Atendimentos por profissional (T8.2; 04-atendimentos-com-publicos.png, 765 px). Grade x 30–738 (~92% da largura):
   cartões de ~228 px com selo de ~86 px (D15) e raminho no canto; tabela da Luiza x 32–520 com a arte do frasco à direita */
.pro-attendances {
	position: relative;
	overflow-x: clip;
	padding: 26px var(--fa-gutter) 0;
}

.pro-attendances .section-title {
	margin-bottom: 16px;
}

.pro-attendances__grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 10px;
	width: min(var(--fa-container-max), 92.5vw);
	margin: 0 auto;
}

.pro-attendances__cell {
	position: relative;
	display: flex;
}

.pro-attendances__cell > .card-att {
	flex: 1;
	min-height: var(--fa-att-height);
	padding: 14px 18px 18px;
}

.pro-attendances .card-att__badge {
	width: var(--fa-att-badge);
	height: var(--fa-att-badge);
}

.pro-attendances .card-att__badge .icon svg {
	width: calc(var(--fa-att-badge) * 0.66);
	height: calc(var(--fa-att-badge) * 0.66);
}

.pro-attendances .card-att__title {
	font-size: var(--fa-size-att-title);
}

.pro-attendances__raminho {
	position: absolute;
	bottom: 18px;
	width: 44px;
	mix-blend-mode: multiply;
	pointer-events: none;
}

.pro-attendances__cell--a .pro-attendances__raminho {
	left: 4px;
	transform: scaleX(-1);
}

.pro-attendances__cell--b .pro-attendances__raminho {
	right: 4px;
}

.pro-attendances__table-wrap {
	position: relative;
	display: grid;
	grid-template-columns: minmax(0, 69%) minmax(0, 1fr);
	align-items: center;
	gap: 8px;
	width: min(var(--fa-container-max), 92.5vw);
	margin: 0 auto;
}

.pro-attendances__table {
	width: 100%;
	border-collapse: separate;
	border-spacing: 0 6px;
}

.pro-attendances__table th,
.pro-attendances__table td {
	height: 42px;
	padding: 0 14px;
	border-top: var(--fa-border-width) solid var(--fa-color-border);
	border-bottom: var(--fa-border-width) solid var(--fa-color-border);
	background: var(--fa-color-surface);
	text-align: left;
	vertical-align: middle;
}

.pro-attendances__table th {
	width: 50%;
	border-left: var(--fa-border-width) solid var(--fa-color-border);
	border-radius: var(--fa-radius-card) 0 0 var(--fa-radius-card);
	color: var(--fa-color-heading);
	font-size: var(--fa-size-strong-small);
	font-weight: var(--fa-weight-strong);
}

.pro-attendances__table th > * {
	vertical-align: middle;
}

.pro-attendances__table th .icon {
	display: inline-block;
	margin-right: 16px;
}

.pro-attendances__table th .icon svg {
	width: 30px;
	height: 30px;
}

.pro-attendances__table td {
	position: relative;
	border-right: var(--fa-border-width) solid var(--fa-color-border);
	border-radius: 0 var(--fa-radius-card) var(--fa-radius-card) 0;
	color: var(--fa-color-text);
	font-size: var(--fa-size-footer-meta);
}

.pro-attendances__table td::before {
	position: absolute;
	top: 8px;
	bottom: 8px;
	left: 0;
	width: 1px;
	background: var(--fa-color-border);
	content: "";
}

.pro-attendances__frasco {
	width: 100%;
	max-width: 235px;
	height: auto;
	justify-self: center;
	mix-blend-mode: multiply;
}

.pro-attendances__action {
	display: flex;
	justify-content: center;
	margin-top: 14px;
}

.pro-attendances__button {
	min-width: var(--fa-att-button-width);
	font-size: var(--fa-size-hero-button);
}

.steps__list--halo .step-card {
	align-items: center;
}

.steps__list--halo .step-card > .icon {
	display: grid;
	flex: none;
	place-items: center;
	width: 62px;
	height: 62px;
	border-radius: 50%;
	background: var(--fa-color-badge);
}

.steps__list--halo .step-card > .icon svg {
	width: 38px;
	height: 38px;
}

/* Passos de Atendimentos e Produtos: título sem serifa, semibold (04/05); Profissionais mantém a serifada (03) — T10.1 */
.steps--atendimentos .step-card__title,
.steps--produtos .step-card__title {
	font-family: var(--fa-font-body);
	font-size: 14px;
	font-weight: 600;
	line-height: 1.25;
}

/* Passos de Produtos (05-produtos.png): ícone em halo de ~70 px à esquerda, número com contorno dourado, sem setas */
.steps--produtos .step-card > .icon {
	display: grid;
	flex: none;
	order: -1;
	place-items: center;
	width: 68px;
	height: 68px;
	border-radius: 50%;
	background: var(--fa-color-badge);
}

.steps--produtos .step-card > .icon svg {
	width: 36px;
	height: 36px;
}

.steps--produtos .step-card__number {
	width: 30px;
	height: 30px;
	border: 1.5px solid var(--fa-color-gold);
	background: transparent;
	color: var(--fa-color-gold);
	font-size: 18px;
	font-weight: 500;
}

/* Produtos (T8.3; 05-produtos.png, 1003 px) */
.home-hero__subtitle {
	margin: 10px 0 0;
	color: var(--fa-color-heading);
	font-family: var(--fa-font-heading);
	font-size: var(--fa-size-hero-subtitle);
	font-weight: var(--fa-weight-strong);
	line-height: 1.2;
}

.home-hero--produtos .home-hero__inner {
	grid-template-columns: minmax(0, 1fr) var(--fa-hero-photo);
	padding-right: 0;
}

.home-hero--produtos .home-hero__art {
	margin-top: 8px;
}

.home-hero--produtos .home-hero__art-img {
	aspect-ratio: 380 / 320;
	object-fit: cover;
	border: 3px solid var(--fa-color-gold);
	border-radius: 48% 6% 48% 6% / 50% 6% 50% 6%;
	mix-blend-mode: normal;               /* foto (não arte): sem fusão nem esmaecimento */
	-webkit-mask-image: none;
	mask-image: none;
}

.highlight {
	padding: 22px var(--fa-gutter) 0;
}

.highlight__card {
	position: relative;
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 54%);
	align-items: center;
	max-width: var(--fa-highlight-width);
	min-height: var(--fa-highlight-height);
	margin: 0 auto;
	overflow: hidden;
	border-radius: var(--fa-radius-intro);
	background: linear-gradient(90deg, #f3f8fd 0%, #f6fafe 100%);
}

.highlight__card--no-photo {
	grid-template-columns: minmax(0, 1fr);
}

.highlight__ramo {
	position: absolute;
	top: 18px;
	left: 14px;
	width: 84px;
	mix-blend-mode: multiply;
	pointer-events: none;
}

.highlight__text {
	position: relative;
	z-index: 1;
	padding: 24px 24px 24px 132px;        /* texto em x ≈ 165 */
}

.highlight__title {
	margin: 0;
	font-size: var(--fa-size-highlight-title);
	line-height: 1.1;
}

.highlight .divider {
	justify-content: flex-start;
	max-width: 290px;
	margin: 6px 0 10px;
}

.highlight .divider__line {
	flex: 1 1 0;
}

.highlight__body {
	max-width: 290px;
	margin: 0;
	color: var(--fa-color-heading);
	font-size: var(--fa-size-strong-small);
	line-height: 1.45;
}

.highlight__media {
	align-self: stretch;
}

.highlight__photo {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	-webkit-mask-image: linear-gradient(90deg, transparent 0, #000 90px);
	mask-image: linear-gradient(90deg, transparent 0, #000 90px);
}

.notice--gold {
	border: var(--fa-border-width) solid #f1dfae;
	background: #fdf8ea;
}

.notice--gold .notice__text {
	color: var(--fa-color-heading);
	font-family: var(--fa-font-heading);
	font-size: var(--fa-size-strong-small);
	font-weight: var(--fa-weight-strong);
}

.notice__lotus {
	flex: none;
	color: var(--fa-color-gold);
}

.notice__lotus .icon svg {
	width: 34px;
	height: 34px;
}

/* Contato (T8.3; 06-contato.png, 1024 px): formulário x 45–497 e quadro x 516–982 (y 335–862) */
.contact-panels {
	display: grid;
	grid-template-columns: minmax(0, 452fr) minmax(0, 466fr);
	gap: 19px;
	max-width: calc(var(--fa-contact-max) + 2 * var(--fa-gutter));
	margin: 0 auto;
	padding: 18px var(--fa-gutter) 0;
}

.panel {
	position: relative;
	overflow: hidden;
	padding: 18px 22px 22px;
	border: var(--fa-border-width) solid var(--fa-color-border);
	border-radius: var(--fa-radius-intro);
	background: linear-gradient(160deg, #f6fafe 0%, #f1f7fd 100%);
}

.panel .section-title {
	margin-bottom: 16px;
}

.panel__ramo {
	position: absolute;
	width: 70px;
	mix-blend-mode: multiply;
	pointer-events: none;
}

.panel__ramo--esq {
	top: 30px;
	left: -6px;
}

.panel__ramo--dir {
	right: -6px;
	bottom: 10px;
	transform: scaleX(-1);
}

.contact-form__form {
	position: relative;
	z-index: 1;
	display: grid;
	gap: 10px;
	max-width: 366px;
	margin: 0 auto;
}

.contact-form__field {
	display: grid;
	gap: 4px;
	margin: 0;
}

.contact-form__field label {
	color: var(--fa-color-heading);
	font-size: var(--fa-size-footer-meta);
	font-weight: var(--fa-weight-strong);
}

.contact-form__field input,
.contact-form__field select,
.contact-form__field textarea {
	width: 100%;
	min-height: 32px;
	padding: 6px 12px;
	border: var(--fa-border-width) solid #c9dbf2;
	border-radius: 6px;
	background: var(--fa-color-surface);
	color: var(--fa-color-heading);
	font: inherit;
	font-size: var(--fa-size-footer-meta);
}

.contact-form__field textarea {
	min-height: 70px;
	resize: vertical;
}

.contact-form__field ::placeholder {
	color: #8b9cbf;
}

.contact-form__field :focus-visible {
	outline: 2px solid var(--fa-color-link);
	outline-offset: 1px;
}

.contact-form__actions {
	display: grid;
	justify-items: center;
	gap: 6px;
	margin: 8px 0 0;
}

.contact-form__submit {
	width: min(100%, 300px);
	font-size: var(--fa-size-hero-button);
}

.contact-form__hp {
	position: absolute;
	left: -10000px;
	width: 1px;
	height: 1px;
	overflow: hidden;                     /* honeypot antirrobô: fora da tela e fora da ordem de tabulação */
}

.contact-form__status {
	position: relative;
	z-index: 1;
	max-width: 366px;
	margin: 0 auto 12px;
	padding: 10px 14px;
	border-radius: var(--fa-radius-card);
	font-size: var(--fa-size-footer-meta);
	line-height: 1.4;
}

.contact-form__status--ok {
	border: var(--fa-border-width) solid #9fd3b2;
	background: #eef9f1;
	color: #1d5b33;
}

.contact-form__status--erro {
	border: var(--fa-border-width) solid #e8b4b4;
	background: #fdf1f1;
	color: #8a2020;
}

.contact-form__field.is-invalid input,
.contact-form__field.is-invalid select,
.contact-form__field.is-invalid textarea {
	border-color: #c24848;
}

.contact-form__error {
	color: #a12a2a;
	font-size: var(--fa-size-footer-meta);
}

.contact-form__submit[disabled] {
	cursor: not-allowed;
	opacity: 0.85;
}

.contact-form__notice {
	display: flex;
	align-items: center;
	gap: 12px;
	margin-top: 4px;
	color: var(--fa-color-heading);
	font-size: var(--fa-size-footer-meta);
	line-height: 1.35;
}

.contact-form__notice p {
	margin: 0;
}

.contact-channels__list {
	position: relative;
	z-index: 1;
	display: grid;
	grid-template-columns: minmax(0, 1fr); /* sem coluna maior que o painel (768 px: botão passava da tela) */
	gap: 9px;
}

.contact-channels .contact-channel {
	flex-wrap: nowrap;
	padding-right: 12px;
}

.contact-channels .contact-channel__button {
	flex: none;
	margin-left: auto;
}

.site-main--produtos .steps__list {
	max-width: var(--fa-highlight-width);  /* passos de Produtos: x 35–970 */
}

.contact-channels__lotus {
	position: absolute;
	right: 44px;
	bottom: 4px;
	color: #9fbde6;
	opacity: 0.8;
	pointer-events: none;
}

.contact-channels__lotus .icon svg {
	width: 96px;
	height: 96px;
}

.topics {
	position: relative;
	padding: 22px var(--fa-gutter) 0;
}

.topics__grid {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 7px;
	max-width: var(--fa-contact-max);
	margin: 0 auto;
}

.topic-card {
	position: relative;
	display: flex;
	flex-direction: column;
	align-items: center;
	min-height: 185px;
	padding: 10px 18px 14px;
	border: var(--fa-border-width) solid var(--fa-color-border);
	border-radius: var(--fa-radius-card);
	background: var(--fa-color-surface);
	text-align: center;
}

.topic-card__raminho {
	position: absolute;
	bottom: 10px;
	left: 2px;
	width: 34px;
	mix-blend-mode: multiply;
	pointer-events: none;
}

.topic-card__halo {
	display: grid;
	place-items: center;
	width: 80px;
	height: 66px;
	border-radius: 50%;
	background: var(--fa-color-value-halo);
	color: var(--fa-color-heading);
}

.topic-card__halo .icon svg {
	width: 52px;
	height: 52px;
}

.topic-card__title {
	margin: 6px 0 4px;
	font-size: var(--fa-size-value-title);
	line-height: 1.08;
}

.topic-card__text {
	margin: 0 0 8px;
	color: var(--fa-color-text);
	font-size: var(--fa-size-footer-meta);
	line-height: 1.35;
}

.topic-card__link {
	margin-top: auto;
}

.faq {
	padding: 22px var(--fa-gutter) 0;
}

.faq__list {
	display: grid;
	gap: 7px;
	max-width: var(--fa-contact-max);
	margin: 0 auto;
	padding: 12px 20px;
	border-radius: var(--fa-radius-intro);
	background: #f3f8fd;
}

.faq-item {
	display: grid;
	grid-template-columns: minmax(0, 42%) minmax(0, 1fr);
	align-items: center;
	min-height: 32px;
	padding: 0 40px 0 12px;
	position: relative;
	border: var(--fa-border-width) solid var(--fa-color-border);
	border-radius: var(--fa-radius-card);
	background: var(--fa-color-surface);
}

.faq-item__q {
	display: flex;
	align-items: center;
	gap: 14px;
	padding: 4px 0;
	color: var(--fa-color-heading);
	font-size: var(--fa-size-footer-meta);
	font-weight: var(--fa-weight-strong);
	list-style: none;
	cursor: pointer;
}

.faq-item__q::-webkit-details-marker {
	display: none;
}

.faq-item__q::after {
	position: absolute;
	top: 50%;
	right: 16px;
	width: 7px;
	height: 7px;
	border-right: 1.5px solid currentColor;
	border-bottom: 1.5px solid currentColor;
	transform: translateY(-70%) rotate(45deg);
	content: "";
}

.faq-item:not([open]) .faq-item__q::after {
	transform: translateY(-30%) rotate(-135deg);
}

.faq-item__q .icon svg {
	width: 26px;
	height: 26px;
}

.faq-item__a {
	margin: 0;
	padding: 4px 0 4px 18px;
	border-left: var(--fa-border-width) solid var(--fa-color-border);
	color: var(--fa-color-text);
	font-size: var(--fa-size-footer-meta);
	line-height: 1.35;
}

/* Entre 881 e 1000 px (ex.: 931 px de Profissionais): a chamada final cabe sem cortar os contatos */
@media (max-width: 1000px) {
	.final-cta__inner {
		padding-left: 36px;
	}
}

/* Tablet */
@media (max-width: 880px) {
	.values__grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.values__ramo,
	.audiences__ramo,
	.project__borda,
	.project-card__ramo--dir {
		display: none;
	}

	.project-card__body {
		padding-right: 24px;
	}

	.final-cta__inner {
		grid-template-columns: minmax(0, 1fr) auto;
		gap: 16px 24px;
		padding-left: 120px;
	}

	.final-cta__contacts {
		grid-column: 1 / -1;
		padding-left: 0;
		border-left: 0;
	}
}

/* Tablet estreito — a referência de Profissionais tem 931 px e é composição de desktop */
@media (max-width: 880px) {
	.pro-full {
		grid-template-columns: minmax(0, 40%) minmax(0, 1fr);
	}

	.pro-full__ramos {
		width: 300px;
	}

	.pro-full__floral {
		width: 100%;
		max-width: var(--fa-pro-floral);
	}

}

/* Até 700 px (abaixo da largura da referência de Atendimentos, 765 px): públicos em 3 + 1 e passos empilhados */
@media (max-width: 700px) {
	.audiences__grid {
		grid-template-columns: repeat(3, 1fr);
	}

	.audience-card--animal {
		grid-column: 1 / -1;
	}

	.steps__list {
		grid-template-columns: minmax(0, 1fr);
		max-width: 560px;
	}

	.step-card__arrow {
		display: none;
	}
}

/* Celular */
@media (max-width: 700px) {
	.team__grid {
		grid-template-columns: minmax(0, 1fr);
		gap: 14px;
	}

	.team__ramo {
		display: none;
	}

	.team .card-pro {
		flex-direction: column;
		align-items: center;
		text-align: center;
	}

	.team .card-pro--no-photo .card-pro__floral {
		width: 120px;
	}

	.pro-full {
		grid-template-columns: minmax(0, 1fr);
		padding: 20px;
	}

	.pro-full__media {
		padding-left: 0;
	}

	.pro-full__ramos {
		display: none;
	}

	.pro-full__ring {
		width: 220px;
		height: 220px;
		margin: 0 0 12px;
	}

	.pro-full__button {                   /* largura mínima de desktop (386 px) não cabe no celular (correção 15/10/2026) */
		min-width: 0;
		max-width: 100%;
		white-space: normal;
	}

	.pro-full:not(.pro-full--no-photo) .pro-full__media::before,
	.pro-full:not(.pro-full--no-photo) .pro-full__media::after {
		display: none;
	}

	.pro-full__floral {
		width: 200px;
		margin: 0 0 8px;
	}

	.pro-full__areas ul {
		grid-template-columns: minmax(0, 1fr);
	}

	.pro-attendances__grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.pro-attendances__table-wrap {
		grid-template-columns: minmax(0, 1fr);
	}

	.pro-attendances__frasco {
		max-width: 170px;
	}

	.contact-panels {
		grid-template-columns: minmax(0, 1fr);
	}

	.contact-channels .contact-channel {
		flex-wrap: wrap;
	}

	.topics__grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.faq-item {
		grid-template-columns: minmax(0, 1fr);
		padding: 6px 36px 6px 12px;
	}

	.faq-item__a {
		padding: 4px 0 2px 40px;
		border-left: 0;
	}

	.highlight__card {
		grid-template-columns: minmax(0, 1fr);
	}

	.highlight__text {
		padding: 20px;
	}

	.highlight__ramo {
		display: none;
	}

	.highlight__photo {
		-webkit-mask-image: none;
		mask-image: none;
		max-height: 220px;
	}

	.home-hero--produtos .home-hero__inner {
		grid-template-columns: minmax(0, 1fr);
		padding-right: var(--fa-gutter);
	}
}

@media (max-width: 599px) {
	.audiences__grid {
		grid-template-columns: repeat(3, minmax(0, 1fr));
		gap: 8px;
	}

	.audience-card {
		min-height: 0;
		padding: 14px 6px;
	}

	.audience-card__raminho {
		display: none;
	}

	.values__grid {
		grid-template-columns: minmax(0, 1fr);
	}

	.project-card {
		grid-template-columns: minmax(0, 1fr);
	}

	.project-card--no-image {
		padding-left: 0;
	}

	.project-card__media {
		justify-self: center;
		width: min(70vw, var(--fa-project-img));
		margin-top: 12px;
	}

	.project-card__ramo {
		display: none;
	}

	.project-card__body {
		padding: 12px 20px 20px;
	}

	.final-cta__ramo {
		display: none;                    /* no celular ficaria atrás dos contatos */
	}

	.final-cta__inner {
		grid-template-columns: minmax(0, 1fr);
		padding-left: 0;
	}
}

@media (max-width: 479px) {
	.pro-attendances__grid {
		grid-template-columns: minmax(0, 1fr);
	}

	.pro-attendances__raminho {
		display: none;                    /* em uma coluna o raminho encostaria no texto */
	}

	.pro-attendances__table th .icon {
		margin-right: 8px;
	}

	.pro-attendances__table th,
	.pro-attendances__table td {
		padding: 6px 10px;
	}

	.topics__grid {
		grid-template-columns: minmax(0, 1fr);
	}
}
