/**
 * IMPULSO PROFISSIONAL — DESIGN SYSTEM 1.0
 * Tema: Hello Elementor Child | Outubro/2026
 * Padrões visuais do portal; componentes com prefixo ip-.
 */
:root {
  --ip-navy: #102C4C;
  --ip-mint: #38D9AC;
  --ip-white: #FFFFFF;
  --ip-surface: #F5F7FA;
  --ip-text: #1E293B;
  --ip-muted: #64748B;
  --ip-border: #E2E8F0;
  --ip-container: 1200px;
  --ip-radius-sm: 8px;
  --ip-radius: 12px;
  --ip-radius-lg: 20px;
  --ip-section-space: 80px;
  --ip-shadow: 0 10px 30px rgba(16, 44, 76, .08);
  --ip-font-heading: 'Poppins', sans-serif;
  --ip-font-body: 'Inter', sans-serif;
}

/* Carregue Poppins e Inter pelo Elementor (fontes locais, quando possível).
   As fontes de fallback mantêm o site legível até a configuração. */
body { color: var(--ip-text); font-family: var(--ip-font-body); }
h1, h2, h3, h4, h5, h6 { color: var(--ip-navy); font-family: var(--ip-font-heading); }

.ip-container { width: min(100% - 40px, var(--ip-container)); margin-inline: auto; }
.ip-section { padding-block: var(--ip-section-space); }
.ip-section--soft { background: var(--ip-surface); }
.ip-eyebrow { color: var(--ip-navy); font: 700 .78rem/1.5 var(--ip-font-heading); text-transform: uppercase; letter-spacing: .08em; }
.ip-heading { margin: 0 0 20px; color: var(--ip-navy); font: 700 clamp(1.85rem, 3.5vw, 3rem)/1.18 var(--ip-font-heading); letter-spacing: -.025em; }
.ip-lead { color: var(--ip-muted); font-size: clamp(1rem, 1.4vw, 1.125rem); line-height: 1.75; }

.ip-button, a.ip-button {
  display: inline-flex; align-items: center; justify-content: center; gap: .55em;
  min-height: 46px; padding: 12px 24px; border: 2px solid var(--ip-navy);
  border-radius: var(--ip-radius-sm); background: var(--ip-navy); color: var(--ip-white);
  font: 600 .95rem/1.3 var(--ip-font-heading); text-decoration: none;
  transition: background-color .18s ease, color .18s ease, transform .18s ease;
}
.ip-button:hover, a.ip-button:hover { background: #1b456f; border-color: #1b456f; color: var(--ip-white); transform: translateY(-1px); }
.ip-button--mint, a.ip-button--mint { background: var(--ip-mint); border-color: var(--ip-mint); color: var(--ip-navy); }
.ip-button--mint:hover, a.ip-button--mint:hover { background: #21c99a; border-color: #21c99a; color: var(--ip-navy); }
.ip-button:focus-visible, a.ip-button:focus-visible { outline: 3px solid var(--ip-mint); outline-offset: 3px; }

.ip-card { height: 100%; overflow: hidden; border: 1px solid var(--ip-border); border-radius: var(--ip-radius); background: var(--ip-white); box-shadow: var(--ip-shadow); }
.ip-card__body { padding: 24px; }
.ip-card__title { margin: 0 0 12px; font: 700 1.2rem/1.35 var(--ip-font-heading); }
.ip-card__title a { color: var(--ip-navy); text-decoration: none; }
.ip-card__title a:hover { color: #1b637b; }
.ip-card__excerpt { color: var(--ip-muted); line-height: 1.65; }
.ip-card__media img { display: block; width: 100%; aspect-ratio: 16 / 9; object-fit: cover; }
.ip-badge { display: inline-block; padding: 5px 10px; border-radius: 999px; background: #e4fbf3; color: #0b6652; font: 700 .73rem/1.2 var(--ip-font-heading); }

.ip-article { max-width: 780px; margin-inline: auto; line-height: 1.85; }
.ip-article :is(p, ul, ol) { margin-block: 0 1.4em; }
.ip-article :is(h2, h3) { margin-block: 1.65em .7em; }
.ip-article img { height: auto; border-radius: var(--ip-radius); }
.ip-article a { text-underline-offset: 3px; }

@media (prefers-reduced-motion: reduce) {
  .ip-button, a.ip-button { transition: none; }
}
