/* Contato do GDOIN: formulário + localização, seguidos dos canais diretos.
   Verde institucional, superfícies claras e marcas reais do projeto.
   Estilos limitados à página, preservando o restante do site. */
.pagina-contato { --ct-verde: #174f3d; --ct-claro: #e7efe9; --ct-linha: #cad8ce; --ct-texto: #4d6357; }
.pagina-contato [hidden] { display: none !important; }
.contato-abertura { padding: 2rem 0 2.25rem; background: var(--ct-claro); }
.contato-trilha { font-size: .85rem; color: var(--ct-texto); margin-bottom: 1.5rem; }
.contato-trilha a { text-underline-offset: .2em; }
.contato-abertura__grade { display: flex; justify-content: space-between !important;--justify-content:space-between; align-items: end !important;--align-items:end; gap: 2rem !important;--gap:2rem;--row-gap:2rem;--column-gap:2rem; }
.contato-abertura h1 { color: var(--ct-verde); font-size: clamp(2.1rem, 4.5vw, 3.2rem); letter-spacing: -.04em; margin-bottom: .4rem; }
.contato-abertura__grade p { color: var(--ct-texto); max-width: 52ch; font-size: 1rem; margin: 0; }
.contato-telefone { flex-shrink: 0 !important;--flex-shrink:0; }
.contato-telefone span { display: block; font-size: .85rem; color: var(--ct-texto); }
.contato-telefone a { display: inline-block; color: var(--ct-verde); font-size: clamp(1.3rem, 2.5vw, 1.8rem); font-weight: 600; text-decoration: none; line-height: 1.7; }
.contato-telefone a:hover { text-decoration: underline; text-underline-offset: .2em; }
.contato-conteudo { background: var(--ct-claro); padding-bottom: clamp(2.5rem, 5vw, 4rem); }
.contato-painel { display: grid; grid-template-columns: 1.15fr 1fr; border: 1px solid var(--ct-linha); border-radius: 5px; background: #fff; overflow: hidden;--overflow:hidden; }
.contato-mensagem { padding: clamp(1.5rem, 3vw, 2.5rem); }
.contato-mensagem h2 { color: var(--ct-verde); font-size: clamp(1.5rem, 2.7vw, 2rem); letter-spacing: -.025em; margin-bottom: .6rem; }
.contato-form { scroll-margin-top: 110px; }
.contato-form__campos { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 1rem 1.2rem !important;--gap:1rem 1.2rem;--row-gap:1rem;--column-gap:1.2rem; }
.contato-campo { min-width: 0; }
.contato-campo--inteiro { grid-column: 1 / -1; }
.contato-campo label { display: block; font-size: .85rem; font-weight: 600; color: var(--ct-verde); margin-bottom: .4rem; }
.contato-campo label small { font-weight: 400; color: var(--ct-texto); font-size: .78rem; }
.contato-campo input, .contato-campo select, .contato-campo textarea { display: block; width: 100%; min-width: 0; font: inherit; font-size: 1rem; line-height: 1.4; padding: .65rem .75rem; background: #f5f8f6; color: #1c2620; border: 1px solid var(--ct-linha); border-radius: 3px; }
.contato-campo input, .contato-campo select { min-height: 45px; }
.contato-campo textarea { min-height: 132px; resize: vertical; }
.contato-campo textarea::placeholder { color: #65776b; font-size: .9rem; }
.contato-campo input:focus, .contato-campo select:focus, .contato-campo textarea:focus { background: #fff; border-color: #006647; }
.contato-form__destino { font-size: .78rem; color: var(--ct-texto); margin: .5rem 0 0; overflow-wrap: anywhere; }
.contato-form__rodape { margin-top: 1.25rem; }
.contato-enviar { border: 1px solid var(--ct-verde); border-radius: 3px; background: var(--ct-verde); color: #fff; font: inherit; font-size: .95rem; font-weight: 600; padding: .75rem 1.2rem; cursor: pointer; transition: background-color .15s; }
.contato-enviar:hover { background: #006647; }
.contato-form__status { font-size: .85rem; color: var(--ct-verde); margin: 1rem 0 0; }
.contato-form__status:empty { margin: 0; }
.contato-local { min-width: 0; display: flex; flex-direction: column !important;--flex-direction:column; background: #f5f8f6; border-left: 1px solid var(--ct-linha); }
.contato-local__mapa { flex: 1 !important;--flex-grow:1; min-height: 470px; background: #e3ebe5; position: relative; }
.contato-local__mapa iframe { display: block; position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.contato-diretos { margin-top: clamp(2.5rem, 5vw, 4rem); }
.contato-diretos > header,
.contato-diretos > :where(.elementor-widget) > header,
.contato-diretos > :where(.elementor-widget) > :where(.elementor-widget-container) > header { display: flex; align-items: baseline !important;--align-items:baseline; justify-content: space-between !important;--justify-content:space-between; flex-wrap: wrap !important;--flex-wrap:wrap; gap: .5rem 2rem !important;--gap:.5rem 2rem;--row-gap:.5rem;--column-gap:2rem; margin-bottom: 1.25rem; }
.contato-diretos h2 { font-size: clamp(1.45rem, 2.5vw, 1.8rem); color: var(--ct-verde); margin: 0; }
.contato-diretos > header p,
.contato-diretos > :where(.elementor-widget) > header p,
.contato-diretos > :where(.elementor-widget) > :where(.elementor-widget-container) > header p { font-size: .9rem; color: var(--ct-texto); margin: 0; }
.contato-laboratorio { display: grid; grid-template-columns: 170px minmax(0, 1fr) auto; gap: 2rem !important;--gap:2rem;--row-gap:2rem;--column-gap:2rem; align-items: center !important;--align-items:center; background: #fff; padding: 1.5rem 2rem; border-top: 1px solid var(--ct-linha); }
.contato-laboratorio:last-of-type { border-bottom: 1px solid var(--ct-linha); }
.contato-laboratorio__logo { width: 160px; height: 90px; object-fit: contain; object-position: left center; }
.contato-laboratorio__logo--ldrd { width: 62px; height: 80px; }
.contato-laboratorio__logo--gama { width: 100px; height: 93px; }
.contato-laboratorio h3 { font-size: 1.1rem; color: var(--ct-verde); margin: 0 0 .25rem; }
.contato-laboratorio p { color: var(--ct-texto); font-size: .85rem; line-height: 1.6; margin: 0; max-width: 47ch; }
.contato-laboratorio__tipo { display: inline-block; font-size: .7rem; font-weight: 600; line-height: 1.4; border-radius: 2px; background: var(--ct-verde); color: #fff; padding: .2rem .45rem; margin-bottom: .5rem; }
.contato-laboratorio__tipo--multi { background: #f2c200; color: #183b2c; }
.contato-laboratorio__canais { text-align: right; min-width: 0; }
.contato-laboratorio__email { display: block; font-size: .92rem; overflow-wrap: anywhere; text-underline-offset: .25em; padding: .4rem 0; }
.contato-laboratorio__escrever { font: inherit; font-size: .78rem; border: 0; padding: .5rem 0; background: none; color: var(--ct-verde); text-decoration: underline; text-underline-offset: .25em; cursor: pointer; }

@media (max-width: 1000px) {
  .contato-painel { grid-template-columns: 1.2fr 1fr; }
  .contato-mensagem { padding: 1.5rem; }
  .contato-laboratorio { grid-template-columns: 130px minmax(0, 1fr); gap: 1rem 1.5rem !important;--gap:1rem 1.5rem;--row-gap:1rem;--column-gap:1.5rem; }
  .contato-laboratorio__logo { width: 125px; }
  .contato-laboratorio__logo--ldrd { width: 62px; }
  .contato-laboratorio__logo--gama { width: 100px; }
  .contato-laboratorio__canais { grid-column: 2; text-align: left; }
}
@media (max-width: 760px) {
  .contato-abertura { padding-top: 1.5rem; }
  .contato-abertura__grade { flex-direction: column !important;--flex-direction:column; align-items: flex-start !important;--align-items:flex-start; gap: 1.25rem !important;--gap:1.25rem;--row-gap:1.25rem;--column-gap:1.25rem; }
  .contato-painel { grid-template-columns: 1fr; }
  .contato-local { border-left: 0; border-top: 1px solid var(--ct-linha); }
  .contato-local__mapa, .contato-local__mapa iframe { height: 340px; min-height: 340px; }
}
@media (max-width: 480px) {
  .contato-mensagem { padding: 1.5rem 1.1rem; }
  .contato-form__campos { grid-template-columns: 1fr; }
  .contato-campo--inteiro { grid-column: 1; }
  .contato-laboratorio { padding: 1.5rem 1.1rem; grid-template-columns: 85px minmax(0, 1fr); gap: 1rem !important;--gap:1rem;--row-gap:1rem;--column-gap:1rem; }
  .contato-laboratorio__logo { width: 85px; height: 65px; }
  .contato-laboratorio__logo--ldrd { width: 50px; height: 65px; }
  .contato-laboratorio__logo--gama { width: 75px; height: 70px; }
  .contato-laboratorio__canais { grid-column: 1 / -1; }
  .contato-laboratorio__email { font-size: .9rem; }
}

/* Formulário completo na primeira tela de computadores e notebooks. */
@media (min-width: 761px) {
  .contato-abertura { padding: .65rem 0 .8rem; }
  .contato-trilha { font-size: .75rem; line-height: 1.4; margin-bottom: .4rem; }
  .contato-abertura__grade { align-items: center !important;--align-items:center; gap: 1rem !important;--gap:1rem;--row-gap:1rem;--column-gap:1rem; }
  .contato-abertura h1 { font-size: 1.8rem; line-height: 1.1; margin-bottom: .3rem; }
  .contato-abertura__grade p { max-width: none; font-size: .85rem; line-height: 1.45; }
  .contato-telefone span { font-size: .75rem; }
  .contato-telefone a { font-size: 1.3rem; line-height: 1.4; }
  .contato-painel { grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr); scroll-margin-top: 88px; }
  .contato-mensagem { padding: 1rem 1.25rem; }
  .contato-mensagem h2 { font-size: 1.55rem; margin-bottom: 1rem; }
  .contato-form__campos { gap: .55rem .85rem !important;--gap:.55rem .85rem;--row-gap:.55rem;--column-gap:.85rem; }
  .contato-campo label { font-size: .775rem; line-height: 1.35; margin-bottom: .25rem; }
  .contato-campo label small { font-size: .72rem; }
  .contato-campo input, .contato-campo select, .contato-campo textarea { font-size: .875rem; padding: .35rem .6rem; }
  .contato-campo input, .contato-campo select { min-height: 36px; height: 36px; }
  .contato-campo textarea { min-height: 64px; height: clamp(64px, 10vh, 80px); }
  .contato-campo textarea::placeholder { font-size: .8rem; }
  .contato-form__destino { font-size: .7rem; line-height: 1.35; margin-top: .2rem; }
  .contato-form__rodape { margin-top: .65rem; }
  .contato-enviar { font-size: .82rem; padding: .5rem .85rem; }
  .contato-local__mapa { min-height: 0; }
}

@media (max-width: 960px) {
  .contato-painel { grid-template-columns: minmax(0, 1fr); }
  .contato-local { border-left: 0; border-top: 1px solid var(--ct-linha); }
  .contato-local__mapa, .contato-local__mapa iframe { height: 340px; min-height: 340px; }
  .contato-campo label { font-size: .85rem; }
  .contato-campo label small { font-size: .78rem; }
  .contato-campo input, .contato-campo select, .contato-campo textarea { font-size: 1rem; }
  .contato-campo input, .contato-campo select { min-height: 44px; height: auto; }
  .contato-campo textarea { min-height: 7rem; height: auto; }
  .contato-enviar { min-height: 44px; touch-action: manipulation; }
}
