/* ==========================================================================
   Páginas de conteúdo — Sobre, Unidades e institucionais
   ========================================================================== */

/* ---- Sobre → Nossa história (hero) ---- */
/* Banda vermelha (imagem + tint) com o card branco vazando por baixo. */
.sobre-hero { position: relative; width: clamp(var(--in-container), 96vw, 1820px); margin: 0 auto 40px; }
.sobre-hero__band {
  position: absolute; top: 0; left: 0; right: 0; bottom: 128px; z-index: 0;
  border-radius: var(--in-radius-lg, 24px);
  background: var(--sobre-hero-bg, linear-gradient(135deg, #CA0A22 0%, #8E0518 100%));
  background-size: cover; background-position: center;
}
.sobre-hero__inner { position: relative; z-index: 1; max-width: var(--in-container); margin-inline: auto; display: grid; grid-template-columns: 1fr 1.03fr; gap: clamp(28px, 3.5vw, 56px); align-items: stretch; padding: 0 var(--in-gutter); }
/* Centrado verticalmente na BANDA vermelha: o padding-bottom extra (128px = a
   sangria do card) exclui a área de vazamento, centrando o título na faixa. */
.sobre-hero__head { align-self: stretch; display: flex; flex-direction: column; justify-content: center; color: #fff; padding: 48px 0 calc(48px + 128px); }
.sobre-hero__crumb { font-size: .74rem; letter-spacing: .06em; text-transform: uppercase; color: rgba(255,255,255,.75); margin-bottom: 16px; }
.sobre-hero__crumb a { color: rgba(255,255,255,.75); text-decoration: none; }
.sobre-hero__crumb a:hover { color: #fff; }
.sobre-hero__crumb i { opacity: .5; margin: 0 4px; font-style: normal; }
.sobre-hero__title { font-size: clamp(2.4rem, 5.2vw, 4rem); font-weight: 800; line-height: 1.02; margin: 0; color: #fff; }
.sobre-hero__card {
  align-self: stretch; margin-top: 56px; background: #fff; border-radius: var(--in-radius-lg, 24px);
  padding: clamp(28px, 3vw, 48px); color: #33333a; line-height: 1.75;
  box-shadow: 0 48px 90px -34px rgba(202, 10, 34, .45);
}
.sobre-hero__card p { margin: 0 0 16px; }
.sobre-hero__card p:last-child { margin-bottom: 0; }

.sobre-vmv__grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }
.sobre-vmv__card { border: 1px solid var(--in-line, #ececf0); border-radius: 18px; padding: 34px 30px; }
.sobre-vmv__ico { color: var(--in-red); display: block; margin-bottom: 22px; }
.sobre-vmv__card h3 { font-size: 1.5rem; font-weight: 600; color: var(--in-ink); margin: 0 0 12px; }
.sobre-vmv__card p { color: var(--in-muted); line-height: 1.6; margin: 0; }

/* ---- Unidades ---- */
.unidades-list__title { font-size: clamp(1.4rem, 2.8vw, 2rem); font-weight: 600; color: var(--in-red); line-height: 1.25; max-width: 640px; margin: 0 0 30px; }
.unidades-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }
.unidade-card { background: #fff; border: 1px solid var(--in-line, #ececf0); border-radius: var(--in-radius-lg, 18px); padding: 26px; display: flex; flex-direction: column; gap: 14px; text-decoration: none; transition: box-shadow .2s, border-color .2s, transform .2s; }
a.unidade-card:hover { border-color: var(--in-red); box-shadow: 0 12px 30px rgba(0,0,0,.08); transform: translateY(-2px); }
.unidade-card__name { font-size: 1.2rem; font-weight: 700; color: var(--in-ink); margin: 0; }
.unidade-card__info { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 10px; }
.unidade-card__info li { display: flex; align-items: flex-start; gap: 10px; color: var(--in-ink); font-size: .92rem; line-height: 1.45; }
.unidade-card__info svg { flex: 0 0 auto; color: var(--in-red); margin-top: 1px; }
.unidade-card__more { margin-top: auto; display: inline-flex; align-items: center; gap: 6px; font-weight: 700; font-size: .9rem; color: var(--in-red); }
.unidade-card__cities { font-size: .82rem; color: var(--in-muted); margin: 0; line-height: 1.5; }
.unidade-card__cities strong { color: var(--in-ink); }
.unidade-card__cta { display: flex; flex-wrap: wrap; gap: 10px; margin-top: auto; padding-top: 4px; }
.unidade-card__cta .in-btn { font-size: .8rem; padding: .6em 1.1em; }

/* ---- Unidade (página da cidade) ---- */
.unidade-info__grid { display: grid; grid-template-columns: 1fr 1fr; gap: 40px; align-items: center; }
.unidade-info__photo { width: 100%; height: 100%; max-height: 420px; object-fit: cover; border-radius: var(--in-radius-lg, 18px); display: block; }
.unidade-info__media:empty { display: none; }
.unidade-info__title { font-size: clamp(1.3rem, 2.6vw, 1.8rem); font-weight: 600; color: var(--in-red); margin: 0 0 20px; line-height: 1.25; }
.unidade-info__list { list-style: none; margin: 0 0 24px; padding: 0; display: flex; flex-direction: column; gap: 18px; }
.unidade-info__list li { display: flex; align-items: flex-start; gap: 12px; }
.unidade-info__list svg { flex: 0 0 auto; color: var(--in-red); margin-top: 2px; }
.unidade-info__list strong { display: block; color: var(--in-ink); font-size: .95rem; margin-bottom: 3px; }
.unidade-info__list span { color: var(--in-muted); font-size: .92rem; line-height: 1.5; }
.unidade-info__hours strong { display: inline; color: var(--in-ink); }
.unidade-info__cta { display: flex; flex-wrap: wrap; gap: 12px; }
.unidade-map { margin-top: 40px; }
/* Aproxima o mapa da seção de planos (reduz o vão entre as duas seções). */
.unidade-info { padding-bottom: clamp(28px, 4vw, 48px); }
.single-unidade .plans.in-section { padding-top: clamp(28px, 4vw, 48px); }
.unidade-map__frame { border-radius: var(--in-radius-lg, 18px); overflow: hidden; border: 1px solid var(--in-line, #ececf0); }
.unidade-map__frame iframe { display: block; }
.unidade-map__link { display: inline-flex; align-items: center; gap: 6px; margin-top: 14px; font-weight: 700; font-size: .9rem; color: var(--in-red); text-decoration: none; }
.unidade-content__inner { max-width: 820px; margin: 0 auto; color: var(--in-ink); line-height: 1.7; }
.unidade-content__inner img { max-width: 100%; height: auto; border-radius: var(--in-radius, 12px); }
.unidade-content__inner h2, .unidade-content__inner h3 { color: var(--in-ink); }

/* ---- Fale conosco ---- */
.fale__inner { display: grid; grid-template-columns: 1fr 1.1fr; gap: 48px; align-items: start; }
.fale__lead { color: var(--in-ink); font-size: 1.05rem; margin: 0 0 22px; }
.fale__info h3 { font-size: 1rem; font-weight: 700; color: var(--in-ink); margin: 20px 0 4px; }
.fale__info p { color: var(--in-muted); line-height: 1.6; margin: 0; }
.fale__info p strong { color: var(--in-ink); }
.fale__wa { display: inline-flex; align-items: center; gap: 6px; color: var(--in-ink); text-decoration: none; }
.fale__wa svg { color: var(--in-green, #65922D); }
.fale__form { background: #fff; border: 1px solid var(--in-line, #ececf0); border-radius: var(--in-radius-lg, 20px); padding: 30px; box-shadow: 0 14px 40px rgba(20,20,30,.06); }

/* ---- Contratos ---- */
.contratos-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 24px; }
.contrato-card { border: 1px solid var(--in-line, #ececf0); border-radius: var(--in-radius-lg, 18px); padding: 34px; display: flex; flex-direction: column; gap: 10px; min-height: 220px; }
.contrato-card__ico { width: 58px; height: 58px; display: grid; place-items: center; border: 2px solid var(--in-red); border-radius: 14px; color: var(--in-red); margin-bottom: 16px; }
.contrato-card__name { font-size: 1.5rem; font-weight: 600; color: var(--in-ink); margin: 0; line-height: 1.2; }
.contrato-card__desc { color: var(--in-muted); margin: 0; }
.contrato-card__link { margin-top: auto; color: var(--in-red); font-weight: 700; font-size: .95rem; text-decoration: none; }
.contrato-card__link:hover { color: #a80a1c; }
.contrato-card__link--off { color: var(--in-muted); font-weight: 500; }

/* ---- Trabalhe conosco (lista de vagas) ---- */
.trabalhe__head { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 8px 24px; margin-bottom: 26px; }
.trabalhe__title { font-size: clamp(1.4rem, 2.8vw, 2rem); font-weight: 500; color: var(--in-red); margin: 0; }
.trabalhe__title strong { font-weight: 800; }
.trabalhe__sub { color: var(--in-muted); margin: 0; }
.vagas-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }
.vaga-card { display: flex; flex-direction: column; gap: 12px; text-decoration: none; background: #fff; border: 1px solid var(--in-line, #ececf0); border-radius: var(--in-radius-lg, 18px); padding: 28px; transition: .16s ease; }
.vaga-card:hover { border-color: var(--in-red); box-shadow: 0 12px 30px rgba(20,20,30,.08); transform: translateY(-2px); }
.vaga-card__name { font-size: 1.3rem; font-weight: 600; color: var(--in-ink); margin: 0; }
.vaga-card__local { display: inline-flex; align-items: center; gap: 7px; color: var(--in-muted); font-size: .95rem; }
.vaga-card__local svg { color: var(--in-red); }
.vaga-card__link { margin-top: 8px; color: var(--in-red); font-weight: 700; font-size: .9rem; }

/* ---- Vaga (detalhe) + candidatura ---- */
.vaga__head { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 8px 24px; margin-bottom: 26px; }
.vaga__title { font-size: clamp(1.5rem, 3vw, 2.1rem); font-weight: 600; color: var(--in-red); margin: 0; }
.vaga__sub { color: var(--in-muted); margin: 0; }
.vaga__sub strong { color: var(--in-ink); }
.vaga__form { background: #fff; border: 1px solid var(--in-line, #ececf0); border-radius: var(--in-radius-lg, 20px); padding: 34px; box-shadow: 0 14px 40px rgba(20,20,30,.06); }
.candidatura .wpcf7 form { display: grid; grid-template-columns: 1fr 1fr; column-gap: 24px; }
.candidatura .frelo-form__row { margin-bottom: 14px; }
.candidatura .frelo-form__row--full,
.candidatura .frelo-form__accept,
.candidatura .wpcf7-response-output { grid-column: 1 / -1; }
.candidatura .wpcf7-submit { width: 100%; }
.frelo-form__row--radio .wpcf7-radio { display: flex; flex-direction: column; gap: 7px; margin-top: 6px; }
.frelo-form__row--radio .wpcf7-list-item { display: block; margin: 0; }
.frelo-form__row--radio .wpcf7-list-item label { display: inline-flex; align-items: center; gap: 7px; text-transform: none; letter-spacing: 0; font-size: .92rem; color: var(--in-ink); }
.frelo-form__row--radio > label:first-child { text-transform: uppercase; letter-spacing: .04em; font-size: .74rem; font-weight: 600; color: var(--in-muted); }

/* ---- Direito do titular (texto + formulário) ---- */
.titular__inner { align-items: start; }
.titular__text { max-width: none; margin: 0; }
.frelo-form__row--checks .wpcf7-list-item { display: block; margin: 0 0 10px; }
.frelo-form__row--checks .wpcf7-list-item label { display: flex; align-items: flex-start; gap: 10px; cursor: pointer; }
.frelo-form__row--checks .wpcf7-list-item-label { font-size: .92rem; color: var(--in-ink); line-height: 1.4; }
.frelo-form__row--checks input[type="checkbox"] { margin-top: 3px; flex: 0 0 auto; }

/* ---- Institucionais (texto legal) ---- */
.legal-page { padding-bottom: 20px; }
.legal-page__body { max-width: 820px; margin: 0 auto; color: #33333a; line-height: 1.75; }
.legal-page__body h2 { font-size: 1.4rem; font-weight: 700; color: var(--in-ink); margin: 30px 0 10px; }
.legal-page__body h3 { font-size: 1.12rem; font-weight: 700; color: var(--in-ink); margin: 24px 0 8px; }
.legal-page__body p { margin: 0 0 16px; }
.legal-page__body ul, .legal-page__body ol { margin: 0 0 16px; padding-left: 22px; }
.legal-page__body a { color: var(--in-red); }

@media (max-width: 860px) {
  .fale__inner { grid-template-columns: 1fr; }
  .sobre-vmv__grid, .unidades-grid, .contratos-grid, .vagas-grid { grid-template-columns: 1fr; }
  .unidade-info__grid { grid-template-columns: 1fr; gap: 28px; }
  .candidatura .wpcf7 form { grid-template-columns: 1fr; }
  /* Hero empilhado: topo vermelho (imagem) + card sobreposto abaixo. */
  .sobre-hero { width: auto; margin: 16px 12px 28px; }
  .sobre-hero__band { display: none; }
  .sobre-hero__inner { grid-template-columns: 1fr; padding: 0; gap: 0; }
  .sobre-hero__head {
    align-self: stretch; padding: 34px 24px 40px;
    border-radius: var(--in-radius-lg, 24px);
    background: var(--sobre-hero-bg, linear-gradient(135deg, #CA0A22 0%, #8E0518 100%));
    background-size: cover; background-position: center;
  }
  .sobre-hero__title { font-size: clamp(2rem, 8vw, 2.6rem); }
  .sobre-hero__card { margin: -26px 12px 0; padding: 26px 22px; box-shadow: 0 22px 50px -24px rgba(202, 10, 34, .4); }
  .sobre-vmv__card, .contrato-card { padding: 26px 22px; }
}

/* Página geral de planos (/planos/) — aviso de localização */
.plans-archive__locate {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  margin: 22px 0 -6px;
  padding: 16px 20px;
  background: #f6f7f4;
  border: 1px solid #e6e8e0;
  border-radius: 14px;
}
.plans-archive__locate p {
  display: flex;
  align-items: center;
  gap: 8px;
  margin: 0;
  color: #3b3f36;
}
.plans-archive__locate svg { color: #65922D; flex: 0 0 auto; }
@media (max-width: 640px) {
  .plans-archive__locate { flex-direction: column; align-items: flex-start; }
}
