/*
 * Centro de Apoio (2077), desde 2026-10-15.
 * O topo e as perguntas são do [matter_support_center] (matter-ai, matt.css);
 * aqui fica só o que é do tema: a página a toda a largura e a secção de
 * contacto com o formulário (enviado por conteudo.js → inc/formularios.php).
 * Antes era o CSS congelado do Elementor (93 KB, larguras de 60% e 80%).
 * Na linguagem das outras páginas (como a de preços e a conta): contentor de
 * 94% com 20px de folga, painel branco de cantos 12px e 32px por dentro, sem
 * borda, títulos e texto pelas tipografias globais, campos como os da conta.
 */

.mt-doc-2077 { width: 100%; }
.mt-doc-2077 .mt-element-8f872cc { width: 100%; max-width: none; margin: 0; }

/* ---- contacto ---- */
.mt-doc-2077 .msc-contacto {
	padding: 0 20px;
	scroll-margin-top: 80px;
}
.mt-doc-2077 .msc-contacto__in {
	max-width: 94%;
	margin: 0 auto 48px;
	padding: 32px;
	background: #fff;
	border-radius: 12px;
	display: flex;
	flex-wrap: wrap;
	gap: 32px 48px;
	align-items: flex-start;
}
.mt-doc-2077 .msc-contacto__txt {
	flex: 1 1 280px;
	min-width: 0;
	display: flex;
	flex-direction: column;
	gap: 12px;
}
.mt-doc-2077 .msc-contacto__txt h2 {
	margin: 0;
	font-size: var(--mx-global-typography-f844386-font-size, clamp(1.25rem, 1.12069rem + 0.55172vw, 1.50rem));
	font-weight: var(--mx-global-typography-f844386-font-weight, 600);
	line-height: var(--mx-global-typography-f844386-line-height, 1.2em);
	letter-spacing: normal;
	color: var(--mx-global-color-primary, #0F0F0F);
}
.mt-doc-2077 .msc-contacto__txt p {
	margin: 0;
	font-size: var(--mx-global-typography-text-font-size, clamp(0.86rem, 0.84674rem + 0.06897vw, 0.89rem));
	line-height: 1.5;
	color: var(--mx-global-color-796a98c, #252525);
}
.mt-doc-2077 .msc-contacto__txt a {
	color: var(--mx-global-color-primary, #0F0F0F);
	font-weight: 600;
	text-decoration: underline;
	text-underline-offset: 2px;
}
.mt-doc-2077 .msc-contacto__cartao {
	flex: 1.5 1 420px;
	min-width: 0;
}

/* ---- formulário ---- */
.mt-doc-2077 .msc-form {
	display: flex;
	flex-wrap: wrap;
	gap: 16px 14px;
	margin: 0;
}
.mt-doc-2077 .msc-campo {
	flex: 1 1 200px;
	min-width: 0;
	display: flex;
	flex-direction: column;
	gap: 6px;
	margin: 0;
	padding: 0;
}
.mt-doc-2077 .msc-campo--todo { flex-basis: 100%; }
.mt-doc-2077 .msc-campo > label {
	font-size: .875rem; /* 14px, como as etiquetas da conta */
	font-weight: 600;
	line-height: 1.4;
	color: var(--mx-global-color-primary, #0F0F0F);
	padding: 0;
}
.mt-doc-2077 .msc-campo__op {
	font-weight: 400;
	color: var(--mx-global-color-tinta-3, #6B6B68);
}
.mt-doc-2077 .msc-campo input[type="text"],
.mt-doc-2077 .msc-campo input[type="email"],
.mt-doc-2077 .msc-campo select,
.mt-doc-2077 .msc-campo textarea {
	width: 100%;
	margin: 0;
	font-family: inherit;
	font-size: 16px;
	font-weight: 400;
	line-height: 1.4;
	color: var(--mx-global-color-primary, #0F0F0F);
	background: #fff;
	padding: 12px 14px;
	border: 1px solid #D6D3CB; /* a borda dos campos da conta */
	border-radius: 12px;
	box-shadow: none;
}
.mt-doc-2077 .msc-campo select {
	-webkit-appearance: none;
	appearance: none;
	padding-right: 40px;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18' viewBox='0 0 24 24' fill='none' stroke='%236B6B68' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-position: right 12px center;
}
.mt-doc-2077 .msc-campo textarea {
	resize: vertical;
	min-height: 120px;
	/* O CSS adicional do tema dá a TODOS os textarea o tamanho e a borda do
	   checkout com !important (var(--font-size-standard), var(--checkout-border)). */
	font-size: 16px !important;
	border: 1px solid #D6D3CB !important;
}
.mt-doc-2077 .msc-campo input:focus,
.mt-doc-2077 .msc-campo select:focus,
.mt-doc-2077 .msc-campo textarea:focus {
	/* !important: o CSS adicional do tema tira o contorno a todos os campos com outline:none!important. */
	outline: 2px solid var(--mx-global-color-accent, #4A7259) !important;
	outline-offset: 1px !important;
	border-color: #D6D3CB !important;
}
.mt-doc-2077 .msc-campo input[type="file"] {
	font-family: inherit;
	font-size: 14px;
	color: var(--mx-global-color-tinta-2, #4A4A46);
}
.mt-doc-2077 .msc-campo--aceito {
	flex-direction: row;
	align-items: flex-start;
	gap: 10px;
}
.mt-doc-2077 .msc-campo--aceito input {
	width: 18px;
	height: 18px;
	margin: 2px 0 0;
	flex-shrink: 0;
	accent-color: var(--mx-global-color-accent, #4A7259);
}
.mt-doc-2077 .msc-campo--aceito label {
	font-size: var(--mx-global-typography-text-font-size, .89rem);
	font-weight: 400;
	color: var(--mx-global-color-tinta-2, #4A4A46);
}
.mt-doc-2077 .msc-campo--aceito a { color: var(--mx-global-color-primary, #0F0F0F); text-decoration: underline; }

.mt-doc-2077 .msc-form .msc-enviar {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 6px;
	align-self: flex-start;
	min-height: 48px;
	margin: 0;
	padding: 0 24px;
	border: 0;
	border-radius: 12px;
	background: var(--mx-global-color-primary, #0F0F0F);
	color: #fff;
	font-family: inherit;
	font-size: var(--mx-global-typography-accent-font-size, clamp(0.94rem, 0.90517rem + 0.13793vw, 1.00rem));
	font-weight: 600;
	line-height: 1.2;
	cursor: pointer;
	box-shadow: none;
}
.mt-doc-2077 .msc-form .msc-enviar:hover,
.mt-doc-2077 .msc-form .msc-enviar:focus {
	background: var(--mx-global-color-796a98c, #252525);
	color: #fff;
}
.mt-doc-2077 .msc-form .msc-enviar:focus-visible { outline: 2px solid var(--mx-global-color-accent, #4A7259); outline-offset: 2px; }
.mt-doc-2077 .msc-form .msc-enviar[disabled] { opacity: .7; cursor: progress; }
.mt-doc-2077 .msc-form .mt-form-spinner { display: none; }

/* Mensagens que o conteudo.js acrescenta (sucesso no fim, erros por campo). */
.mt-doc-2077 .msc-form .mt-message {
	flex-basis: 100%;
	margin: 0;
	padding: 12px 14px;
	border-radius: 12px;
	font-size: 14px;
	line-height: 1.5;
}
.mt-doc-2077 .msc-form > .mt-message-success { background: #EEF3EF; color: var(--mx-global-color-accent-escuro, #3A5A47); font-weight: 600; }
.mt-doc-2077 .msc-form > .mt-message-danger { background: #fef2f2; color: #991b1b; }
.mt-doc-2077 .msc-form .mt-help-inline { padding: 0; background: none; color: #991b1b; font-size: 13px; }
.mt-doc-2077 .msc-form .mt-error input,
.mt-doc-2077 .msc-form .mt-error select,
.mt-doc-2077 .msc-form .mt-error textarea { border-color: #f87171; }

@media (max-width: 767px) {
	.mt-doc-2077 .msc-contacto__in { max-width: 96%; }
}
@media (max-width: 600px) {
	.mt-doc-2077 .msc-contacto__in { padding: 24px; gap: 24px; }
	.mt-doc-2077 .msc-contacto__cartao { flex-basis: 100%; }
	.mt-doc-2077 .msc-form .msc-enviar { width: 100%; align-self: stretch; }
}

/* ── Campo das fotografias (2026-10-17) ──
   O controlo nativo («Choose files / No file chosen», na língua e no aspeto do
   sistema) fica escondido mas focável; à vista, um botão da casa e os nomes. */
.mt-doc-2077 .msc-ficheiro { position: relative; display: flex; flex-wrap: wrap; align-items: center; gap: 8px 12px; }
.mt-doc-2077 .msc-ficheiro__input { position: absolute !important; width: 1px !important; height: 1px !important; padding: 0 !important; margin: -1px !important; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0 !important; opacity: 0; }
.mt-doc-2077 .msc-ficheiro__botao {
	display: inline-flex; align-items: center; min-height: 40px; padding: 0 16px;
	border: 1px solid var(--mx-global-color-f78bd59, #EBEBEB); border-radius: 8px;
	background: var(--mx-global-color-secondary, #FFFFFF); color: var(--mx-global-color-primary, #0F0F0F);
	font-size: 0.875rem; font-weight: 600; cursor: pointer; transition: border-color .15s;
}
.mt-doc-2077 .msc-ficheiro__botao:hover { border-color: var(--mx-global-color-primary, #0F0F0F); }
.mt-doc-2077 .msc-ficheiro__input:focus-visible + .msc-ficheiro__botao { outline: 2px solid var(--mx-global-color-primary, #0F0F0F); outline-offset: 2px; }
.mt-doc-2077 .msc-ficheiro__nomes { font-size: 0.8125rem; color: var(--mx-global-color-tinta-3, #6B6B68); min-width: 0; overflow-wrap: anywhere; }
.mt-doc-2077 .msc-ficheiro__nomes.tem { color: var(--mx-global-color-primary, #0F0F0F); }
