/* ==========================================================================
   SP Labor · pages/institucionais.css — 4 páginas de políticas/serviços:
   /politica-de-devolucao/ · /assistencia-tecnica/ · /e-books/ · /catalogos/
   (dep: splabor-base; enfileirado SÓ nessas páginas — ver docblock dos
   templates page-*.php; spec: referencia/spec-politicas.md)

   Blocos [copiados de home.css] são cópias VERBATIM (home.css só carrega na
   front-page) — manter idênticos aos originais.
   ========================================================================== */

/* --------------------------------------------------------------------------
   [copiado de home.css] Seções + CTA de seção + botões grandes
   -------------------------------------------------------------------------- */
.sec { padding: 30px 0; }
.sec--products { padding: 40px 0; overflow: hidden; }
.sec--soft { background-color: var(--c-bg-soft); }

.sec-head { text-align: center; margin-bottom: 30px; }
.sec-head .eyebrow { margin-bottom: 8px; }
.sec-head h1,
.sec-head h2 { margin: 0 0 10px; font-size: var(--fs-section); font-weight: 600; }
.sec-head h1 { font-size: var(--fs-hero); }

.sec-cta { text-align: center; margin-top: 30px; }

.btn-lg { padding: 15px 30px; }
.btn-grow { transition: background-color .3s, color .3s, transform .3s; }
.btn-grow:hover,
.btn-grow:focus { transform: scale(1.1); }

/* --------------------------------------------------------------------------
   [copiado de home.css] Grade + card de produto (4 / 2 / 1)
   -------------------------------------------------------------------------- */
.hp-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 20px;
}
.hp-card {
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  background-color: var(--c-bg);
  border: 1px solid var(--c-border);
  border-radius: 20px;
  overflow: hidden;
}
.hp-card__media { display: block; padding: 10px; }
.hp-card__media img {
  display: block;
  width: 100%;
  height: 220px;
  object-fit: contain;
}
.hp-card__title {
  margin: 0;
  padding: 0 12px;
  font-size: 15px;
  font-weight: 500;
  text-align: center;
  color: var(--c-text);
}
.hp-card__excerpt {
  padding: 10px 12px 30px;
  font-size: 14px;
  text-align: center;
}
.hp-card__actions {
  display: flex;
  align-items: stretch;
  justify-content: space-evenly;
  gap: 8px;
  padding: 0 10px 18px;
}
.hp-card__details {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 1;
  padding: 11px 5px;
  border: 1px solid #000;
  border-radius: var(--r-pill);
  background-color: var(--c-bg);
  color: #000;
  font-size: 14px;
  font-weight: 500;
  line-height: 1;
  transition: background-color .3s, color .3s;
}
.hp-card__details:hover,
.hp-card__details:focus { background-color: #000; color: var(--c-white); }
.hp-card__quote {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 1;
  gap: 4px;
  padding: 2px 8px;
  border-radius: var(--r-pill);
  background-color: var(--c-secondary);
  color: var(--c-white);
  font-size: 14px;
  font-weight: 500;
  line-height: 1;
  text-transform: uppercase;
  transition: background-color .3s;
}
.hp-card__quote:hover,
.hp-card__quote:focus { background-color: #359128; color: var(--c-white); }
.hp-card__quote img { width: 40px; height: 40px; flex: 0 0 40px; }

/* --------------------------------------------------------------------------
   [copiado de home.css] Quem Somos (2 colunas 50/50, bg soft)
   -------------------------------------------------------------------------- */
.about-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 40px;
  align-items: center;
}
.about__media img { display: block; max-width: 100%; height: auto; }
.about__phone {
  position: relative;
  z-index: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 18px;
  margin: -180px 50px 0 60px;
  padding: 38px 38px 33px 37px;
  background-color: var(--c-white);
  color: var(--c-primary);
  font-size: 23px;
  font-weight: 600;
  border-radius: 0;
  box-shadow: var(--shadow-soft);
}
.about__phone:hover { color: var(--c-primary); }
.about__phone svg { width: 65px; height: 65px; flex: 0 0 65px; }
.about__eyebrow { display: flex; align-items: center; gap: 10px; }
.about__eyebrow::before {
  content: "";
  display: block;
  width: 24px;
  height: 2px;
  background-color: var(--c-primary);
}
.about__title { margin: 12px 0 16px; font-size: 27px; font-weight: 600; line-height: 31px; }
.about__text { line-height: 1.8; }
.about__lead { font-size: 16px; font-weight: 600; color: var(--c-muted); }
.about__btn { width: 302px; max-width: 100%; margin-top: 10px; }

/* --------------------------------------------------------------------------
   [copiado de home.css] Vantagens (gradiente azul→branco, corte seco 51.8%)
   -------------------------------------------------------------------------- */
.sec--grad { background: linear-gradient(180deg, var(--c-primary) 51.8%, #FFFFFF 51.8%); }
.sec--grad .eyebrow,
.sec--grad h2 { color: var(--c-white); }

.adv-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 20px;
  justify-items: center;
  align-items: stretch;
}
.adv-card {
  display: flex;
  flex-direction: column;
  width: 100%;
  max-width: 300px;
  background-color: var(--c-white);
  border-radius: var(--r-card);
  box-shadow: 0 0 20px rgba(0, 0, 0, .1);
  overflow: hidden;
}
.adv-card__photo { display: block; width: 100%; height: 245px; object-fit: cover; }
.adv-card__photo--bottom { margin-top: auto; }
.adv-card__row {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 20px 20px 0;
}
.adv-card__row h3 { margin: 0; font-size: 18px; font-weight: 600; }
.adv-card__icon {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 67px;
  height: 67px;
  flex: 0 0 67px;
  padding: 4px;
  background-color: var(--c-primary);
}
.adv-card__icon img { max-width: 100%; max-height: 100%; }
.adv-card__text { margin: 0; padding: 12px 20px 20px; font-size: 14px; color: #303030; }

/* [copiado de home.css] responsivo dos blocos acima */
@media (max-width: 1024px) {
  .hp-grid { grid-template-columns: repeat(2, 1fr); }
  .adv-grid { grid-template-columns: repeat(3, 1fr); }
}
@media (max-width: 767px) {
  .hp-grid,
  .adv-grid,
  .about-grid { grid-template-columns: 1fr; }
  .about__phone { margin: 0; width: 100%; padding: 24px; font-size: 20px; }
  .about__phone svg { width: 48px; height: 48px; flex-basis: 48px; }
}

/* ==========================================================================
   Padrões compartilhados das 4 páginas (spec-politicas.md · "Padrões
   repetidos")
   ========================================================================== */

/* 1 · Hero cinza */
.pol-hero {
  background-color: var(--c-bg-soft);
  padding: 30px 0;
}
.pol-eyebrow {
  display: flex;
  align-items: center;
  gap: 10px;
  margin: 0;
  font-size: 15px;
  font-weight: 600;
  line-height: 1.2;
  text-transform: uppercase;
  color: var(--c-primary);
}
.pol-eyebrow::before {
  content: "";
  display: block;
  width: 24px;
  height: 2px;
  background-color: var(--c-primary);
}
.pol-eyebrow--plain::before { content: none; }
.pol-hero__title {
  margin: 10px 0 0;
  font-size: 30px;
  font-weight: 600;
  line-height: 31px;
}
.pol-hero__sub {
  margin: 10px 0 0;
  font-size: 16px;
  font-weight: 500;
  line-height: 1.4;
  color: var(--c-muted);
}
.pol-hero__sub--loose { line-height: 1.8; }
/* Texto grande do hero da assistência (div, não heading) */
.pol-hero__big {
  margin-top: 10px;
  font-size: 20px;
  font-weight: 600;
  line-height: 37px;
}

/* 2 · Card sombra (cantos redondos SÓ embaixo — assinatura destas páginas) */
.pol-card {
  background-color: var(--c-white);
  box-shadow: 0 0 20px rgba(0, 0, 0, .14);
  border-radius: 0 0 10px 10px;
}

/* 3 · CTA verde "Fale conosco agora!" */
.pol-cta { text-align: center; margin-top: 20px; }
.pol-cta .btn { font-weight: 600; }
.pol-cta .btn svg {
  width: 30px;
  height: 30px;
  margin-top: -10px;
  margin-bottom: -10px;
  fill: var(--c-white);
  flex: 0 0 30px;
}
.pol-cta--mt50 { margin-top: 50px; }
@media (max-width: 1024px) {
  .pol-cta--mt50 { margin-top: 0; }
}
@media (max-width: 767px) {
  .pol-cta .btn { width: 100%; }
}

/* 4 · Seções internas + cabeçalho centrado */
.pol-sec { padding: 40px 10px 60px; }
.pol-sec--tight { padding: 40px 10px; }
.pol-sec-head { text-align: center; }
.pol-sec-head h2 {
  margin: 0 0 10px;
  font-size: 25px;
  font-weight: 600;
  line-height: 37px;
}
.pol-sub {
  margin: 0;
  font-size: 16px;
  font-weight: 500;
  line-height: 1.4;
  color: var(--c-muted);
}
.pol-sub--dark { color: var(--c-text); }
.pol-mt20 { margin-top: 20px; }

/* --------------------------------------------------------------------------
   Grid 4 col de icon-cards (Recuse o recebimento · Procedimentos p/ Envio)
   -------------------------------------------------------------------------- */
.pol-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 20px;
  margin-top: 20px;
}
.pol-ibox { padding: 25px; }
.pol-ibox__top {
  display: flex;
  align-items: center;
  gap: 15px;
}
.pol-ibox__icon {
  display: flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 30%;
  min-height: 75px;
  background-color: var(--c-secondary);
  padding: 4px;
}
.pol-ibox__icon svg {
  width: 67px;
  height: auto;
  display: block;
  fill: var(--c-white);
}
.pol-ibox__title {
  display: block;
  flex: 1;
  margin: 0;
  font-size: 18px;
  font-weight: 600;
  line-height: 18px;
  text-align: left;
  color: var(--c-text);
}
.pol-ibox__text {
  margin: 15px 0 0;
  font-size: 14px;
  text-align: left;
}
.pol-ibox__text strong { font-weight: 500; }

/* --------------------------------------------------------------------------
   Cards-passo com número grande (Desistência · Produtos com defeito)
   -------------------------------------------------------------------------- */
.pol-step {
  display: flex;
  align-items: center;
  padding: 10px;
  margin-bottom: 15px;
}
.pol-step--last { margin-bottom: 20px; }
.pol-step__num {
  flex: 0 0 10%;
  font-size: 144px;
  font-weight: 600;
  line-height: 1;
  text-align: center;
  color: var(--c-primary);
}
.pol-step--sm .pol-step__num { font-size: 100px; }
.pol-step__body { flex: 1; padding: 0 20px; }
.pol-step__title,
.pol-step__body h3 {
  display: block;
  margin: 0 0 10px;
  font-size: 18px;
  font-weight: 600;
  color: var(--c-text);
}
.pol-step__body p { margin: 0 0 .9rem; font-size: 14px; }
.pol-step__body p:last-child { margin-bottom: 0; }
.pol-step__body a { color: var(--c-secondary); }
.pol-step--sm .pol-step__body strong { font-weight: 500; }

/* --------------------------------------------------------------------------
   Containers azuis (Importante · download .doc · e-mail/telefone)
   -------------------------------------------------------------------------- */
.pol-blue {
  display: flex;
  align-items: center;
  background-color: var(--c-primary);
  border-radius: 0 0 10px 10px;
  box-shadow: 0 0 20px rgba(0, 0, 0, .14);
  color: var(--c-white);
}
.pol-blue--importante {
  padding: 50px 50px 50px 20px;
  gap: 15px;
}
.pol-blue__icon { flex: 0 0 auto; }
.pol-blue--importante .pol-blue__icon svg {
  width: 122px;
  height: auto;
  display: block;
  fill: var(--c-white);
}
.pol-blue__title {
  display: block;
  margin: 0 0 8px;
  font-size: 18px;
  font-weight: 600;
  color: var(--c-white);
}
.pol-blue__body p { margin: 0; color: var(--c-white); }
.pol-blue--importante strong { font-weight: 500; }

.pol-blue--download { padding: 22px 22px 22px 50px; }
.pol-blue--download .pol-blue__icon { margin-right: 20px; }
.pol-blue--download .pol-blue__icon svg {
  width: 87px;
  height: auto;
  display: block;
  fill: var(--c-white);
}
.pol-blue__text {
  font-size: 18px;
  font-weight: 400;
  line-height: 28px;
}
.pol-blue__text a { color: var(--c-white); }
.pol-blue__text a:hover,
.pol-blue__text a:focus { color: var(--c-white); text-decoration: underline; }
.pol-blue__text strong { font-weight: 600; }

.pol-contact-row {
  display: flex;
  gap: 10px;
  margin-top: 10px;
}
.pol-contact {
  flex: 1 1 50%;
  display: flex;
  align-items: center;
  gap: 20px;
  background-color: var(--c-secondary);
  border-radius: 0 0 10px 10px;
  color: var(--c-white);
  font-size: 18px;
  font-weight: 400;
}
.pol-contact a { color: var(--c-white); }
.pol-contact a:hover,
.pol-contact a:focus { color: var(--c-white); text-decoration: underline; }
.pol-contact svg { flex: 0 0 auto; display: block; fill: var(--c-white); }
.pol-contact--email { padding: 15px 20px; }
.pol-contact--email svg { width: 53px; height: auto; }
.pol-contact--phone { padding: 0 20px; }
.pol-contact--phone svg { width: 73px; height: auto; }

/* --------------------------------------------------------------------------
   Banner "Atenção" (hero da assistência)
   -------------------------------------------------------------------------- */
.pol-alert {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 15px;
  margin-top: 20px;
  padding: 18px 20px;
  background-color: var(--c-secondary);
  color: var(--c-white);
}
.pol-alert__icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 8px;
  border: 2px solid var(--c-white);
  border-radius: 50%;
  flex: 0 0 auto;
}
.pol-alert__icon svg {
  height: 25px;
  width: auto;
  display: block;
  fill: var(--c-white);
}
.pol-alert__text {
  font-size: 25px;
  font-weight: 600;
}

/* --------------------------------------------------------------------------
   Cards azuis do Ressarcimento (radius 15px nos 4 cantos)
   -------------------------------------------------------------------------- */
.pol-bluecards {
  display: grid;
  grid-template-columns: 1fr;
  row-gap: 29px;
  margin-top: 29px;
}
.pol-bluecard {
  background-color: var(--c-primary);
  border-radius: 15px;
  box-shadow: 0 0 20px rgba(0, 0, 0, .14);
  padding: 30px 10px;
  color: var(--c-white);
  text-align: center;
}
/* Original: tablet renderiza os cards azuis em 2 colunas (gutter 52px h / 29px v) */
@media (min-width: 768px) and (max-width: 1024px) {
  .pol-bluecards { grid-template-columns: repeat(2, 1fr); column-gap: 52px; }
}
.pol-bluecard__title {
  display: block;
  margin: 0 0 20px;
  font-size: 18px;
  font-weight: 600;
  color: var(--c-white);
}
.pol-bluecard p { margin: 0 0 .9rem; color: var(--c-white); }
.pol-bluecard p:last-child { margin-bottom: 0; }
.pol-bluecard h3 { margin: 0 0 1rem; font-size: 18px; font-weight: 500; color: var(--c-white); }
.pol-bluecard h4 { margin: 1rem 0 .5rem; font-size: 16px; font-weight: 500; color: var(--c-white); }

/* Duplicação intencional do bloco PÓS-VENDA (texto plano, à esquerda) */
.pol-dup {
  margin-top: 30px;
  text-align: left;
  font-size: 14px;
}
.pol-dup h3 { font-size: 18px; font-weight: 500; }
.pol-dup h4 { font-size: 16px; font-weight: 500; }

/* --------------------------------------------------------------------------
   E-books: grade de capas + botão Baixar + popup <dialog>
   -------------------------------------------------------------------------- */
.ebook-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  column-gap: 60px;
  row-gap: 30px;
  margin-top: 30px;
}
.ebook-card {
  position: relative;
  display: flex;
  flex-direction: column;
  gap: 20px;
  padding-bottom: 60px;
}
.ebook-card__media {
  width: 80%;
  height: 200px;
  object-fit: contain;
  margin: 0 auto;
}
.ebook-card h2 {
  margin: 0;
  font-size: 16px;
  font-weight: 600;
  text-align: center;
  color: var(--c-text);
}
.ebook-card__btnwrap {
  position: absolute;
  bottom: 0;
  left: 0;
  width: 100%;
  display: flex;
  justify-content: center;
}
.ebook-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 6px 25px;
  border: 0;
  border-radius: var(--r-pill);
  background-color: var(--c-secondary);
  color: var(--c-white);
  font-family: var(--font-base);
  font-size: var(--fs-body);
  font-weight: 500;
  line-height: 1.5;
  cursor: pointer;
  transition: background-color .3s;
}
.ebook-btn:hover,
.ebook-btn:focus { background-color: var(--c-green); color: var(--c-white); }
.ebook-btn svg { width: auto; height: 23px; fill: var(--c-white); display: block; }

.ebook-popup {
  width: min(1260px, calc(100% - 30px));
  border: 0;
  padding: 40px;
  background-color: var(--c-white);
  color: var(--c-text);
}
.ebook-popup::backdrop { background: rgba(0, 0, 0, .6); }
.ebook-popup h2 { margin: 0 0 10px; font-size: 20px; font-weight: 500; text-align: center; }
.ebook-popup__sub { margin: 0 0 20px; text-align: center; }
.ebook-popup__close {
  position: absolute;
  top: 15px;
  right: 15px;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  padding: 0;
  border: 0;
  border-radius: 50%;
  background-color: var(--c-green);
  color: var(--c-white);
  cursor: pointer;
}
.ebook-popup__close svg { width: 20px; height: 20px; }
.ebook-form { max-width: 720px; margin: 0 auto; }
.ebook-form__field { margin: 10px 0; }
.ebook-form input[type="text"],
.ebook-form input[type="email"],
.ebook-form input[type="tel"],
.ebook-form select {
  width: 100%;
  padding: 10px 20px;
  border: 1px solid var(--c-border-2);
  border-radius: var(--r-pill);
  background-color: var(--c-white);
  font-size: var(--fs-body);
}
.ebook-form__submit { text-align: center; margin-top: 20px; }

/* Banner Canal YouTube */
.ebook-yt { padding: 60px 0; text-align: center; }
.ebook-yt img { display: block; margin: 0 auto; max-width: 100%; height: auto; }

/* Produtos em destaque destas páginas: h2 40px (30px no mobile) */
.pol-products .sec-head h2 { font-size: 40px; }

/* Quem Somos do e-books: botão branco vira link /whatsapp/ com ícone WA 50px */
.pol-about .about__phone { padding: 41px 37px 37px; }
.pol-about .about__phone svg { width: 50px; height: 50px; flex: 0 0 50px; }

/* --------------------------------------------------------------------------
   Catálogos: hero 2 colunas + formulário RD Station
   -------------------------------------------------------------------------- */
.cat-hero {
  background-color: var(--c-bg-soft);
  padding: 30px 0 10px;
}
.cat-hero__grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 40px;
  align-items: start;
}
.cat-hero__img { display: block; margin-top: 20px; max-width: 100%; height: auto; }
.cat-hero__form { border-radius: 10px; overflow: hidden; }

/* Vantagens do catálogos: sub branco (a home não tem sub nessa seção) */
.cat-adv .section-sub { color: var(--c-white); }

/* --------------------------------------------------------------------------
   Responsivo
   -------------------------------------------------------------------------- */
@media (max-width: 1024px) {
  .pol-grid { grid-template-columns: repeat(2, 1fr); }
  .ebook-grid { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 767px) {
  .pol-grid,
  .ebook-grid { grid-template-columns: 1fr; }

  /* Icon-box: ícone acima, linha centralizada */
  .pol-ibox__top { flex-direction: column; align-items: center; }
  .pol-ibox__icon { flex: 0 0 auto; width: 75px; }
  .pol-ibox__title { text-align: center; }

  .pol-step { flex-direction: column; text-align: center; }
  .pol-step__num { flex: 0 0 auto; font-size: 100px; }
  .pol-step--sm .pol-step__num { font-size: 80px; }
  .pol-step__body { padding: 10px 0 0; }

  .pol-blue--importante { flex-direction: column; padding: 30px 20px; text-align: center; }
  .pol-blue--download { flex-direction: column; padding: 22px 20px; text-align: center; }
  .pol-blue--download .pol-blue__icon { margin: 0 0 15px; }

  .pol-contact-row { flex-direction: column; }
  .pol-contact { flex-basis: auto; }
  .pol-contact--phone { padding: 15px 20px; }

  .pol-alert { flex-wrap: wrap; text-align: center; }
  .pol-alert__text { font-size: 20px; }

  .pol-products .sec-head h2 { font-size: 30px; }

  .cat-hero__grid { grid-template-columns: 1fr; }

  .ebook-popup { padding: 30px 15px; }
}
