/* ==========================================================================
   Eu Quero Ajudar — Design System
   Importe este arquivo no asset pipeline (application.css ou via importmap).
   Fonte: Public Sans (Google Fonts) — incluída no <head> dos layouts.
   ========================================================================== */

:root {
  --eqa-green:        #15875d;
  --eqa-green-deep:   #0f5f43;
  --eqa-green-dark:   #134d3a;
  --eqa-green-side:   #103a2b;
  --eqa-tint:         #e6f1ec;
  --eqa-ink:          #1c2622;
  --eqa-muted:        #5f6b65;
  --eqa-soft:         #6b7870;
  --eqa-bg:           #f4f7f5;
  --eqa-border:       #e2e8e4;
  --eqa-orange:       #f5a623;
  --eqa-orange-soft:  #fdeccc;
  --eqa-orange-text:  #b06a05;
}

* { box-sizing: border-box; }

:focus-visible {
  outline: 2px solid var(--eqa-green);
  outline-offset: 2px;
}

/* Entity cards: show focus when hidden radio inside gains focus */
.eqa-ent-card:focus-within {
  outline: 2px solid var(--eqa-green);
  outline-offset: 2px;
}

/* Product cards: same */
.eqa-prod:focus-within {
  outline: 2px solid var(--eqa-green);
  outline-offset: 2px;
}

body.eqa {
  margin: 0;
  font-family: "Public Sans", system-ui, -apple-system, Segoe UI, Roboto, sans-serif;
  color: var(--eqa-ink);
  background: #fff;
}

a { color: inherit; }
img { display: block; max-width: 100%; }

/* ----- Layout público (centrado, mobile-first) ----- */
.eqa-shell {
  max-width: 480px; margin: 0 auto; background: #fff;
  min-height: 100vh; display: flex; flex-direction: column;
}
/* Main content stretches to fill height:
   - form (homepage): the entire form block grows
   - section:last-of-type (thanks, privacy): last content section grows, not header */
.eqa-shell > form,
.eqa-shell > section:last-of-type { flex: 1; }

.eqa-nav {
  display: flex; align-items: center; justify-content: space-between;
  padding: 14px 22px; background: #fff; border-bottom: 1px solid #e9edea;
}
.eqa-brand { display: flex; align-items: center; gap: 10px; }
.eqa-brand img { width: 36px; height: 36px; border-radius: 9px; object-fit: cover; }
.eqa-brand span { color: var(--eqa-green-dark); font-size: 16px; font-weight: 800; letter-spacing: -.02em; }
.eqa-nav-cta { font-size: 13px; font-weight: 800; color: var(--eqa-green); background: var(--eqa-tint);
  padding: 7px 14px; border-radius: 20px; text-decoration: none; }

.eqa-section { padding: 38px 26px; }
.eqa-section--bg { background: var(--eqa-bg); }

.eqa-eyebrow { font-size: 12px; font-weight: 800; color: var(--eqa-orange-text);
  background: var(--eqa-orange-soft); padding: 6px 13px; border-radius: 20px; display: inline-block; }
.eqa-eyebrow--upper { background: none; padding: 0; color: #d08a1a; font-size: 11px;
  letter-spacing: .16em; text-transform: uppercase; }

h1.eqa-h1 { font-size: 34px; line-height: 1.1; font-weight: 800; margin: 18px 0 0;
  letter-spacing: -.03em; color: var(--eqa-ink); }
.eqa-h1 .accent { color: var(--eqa-green); }
h2.eqa-h2 { font-size: 22px; font-weight: 800; margin: 8px 0 18px; letter-spacing: -.02em; color: var(--eqa-ink); }
.eqa-lead { font-size: 15.5px; line-height: 1.65; color: var(--eqa-muted); margin: 16px 0 0; }
.eqa-sub { font-size: 14px; line-height: 1.55; color: var(--eqa-muted); margin: 0 0 16px; }

/* ----- Botões ----- */
.eqa-btn { display: block; width: 100%; text-align: center; font-size: 16px; font-weight: 800;
  padding: 16px; border-radius: 30px; text-decoration: none; border: none; cursor: pointer; }
.eqa-btn--primary { background: var(--eqa-green); color: #fff; }
.eqa-btn--primary:hover { background: var(--eqa-green-deep); }
.eqa-btn--ghost { background: none; color: var(--eqa-green); }

/* ----- Passos ----- */
.eqa-steps { display: flex; flex-direction: column; gap: 18px; }
.eqa-step { display: flex; gap: 16px; align-items: flex-start; }
.eqa-step-num { flex: none; width: 40px; height: 40px; border-radius: 50%; background: var(--eqa-green);
  color: #fff; font-size: 17px; font-weight: 800; display: flex; align-items: center; justify-content: center; }
.eqa-step-title { font-size: 16px; font-weight: 800; color: var(--eqa-ink); }
.eqa-step-desc { font-size: 14px; color: var(--eqa-muted); line-height: 1.5; margin-top: 3px; }
.eqa-rule { height: 1px; background: #eaefeb; }

/* ----- Entidades (carrossel + setas) ----- */
.eqa-carousel-head { display: flex; align-items: flex-end; justify-content: space-between; gap: 12px; }
.eqa-arrows { display: flex; gap: 8px; flex: none; }
.eqa-arrow { width: 38px; height: 38px; border-radius: 50%; font-size: 19px; font-weight: 800;
  line-height: 1; cursor: pointer; display: flex; align-items: center; justify-content: center;
  border: 1.5px solid #cdd9d1; background: #fff; color: var(--eqa-green); }
.eqa-arrow--next { background: var(--eqa-green); color: #fff; border-color: var(--eqa-green); }

.eqa-search { display: flex; align-items: center; gap: 10px; background: #fff; border: 1px solid var(--eqa-border);
  border-radius: 12px; padding: 12px 14px; }
.eqa-search input { border: none; outline: none; font-size: 14px; width: 100%; background: none; color: var(--eqa-ink); }
.eqa-search-icon { width: 16px; height: 16px; flex: none; color: var(--eqa-soft); }

.eqa-track { display: flex; gap: 14px; overflow-x: auto; scroll-snap-type: x mandatory;
  padding: 14px 0 4px; scrollbar-width: none; }
.eqa-track::-webkit-scrollbar { display: none; }

.eqa-ent-card {
  scroll-snap-align: start;
  flex: none;
  width: 200px;
  background: #fff;
  border: 1px solid var(--eqa-border);
  border-radius: 16px;
  padding: 16px;
  cursor: pointer;
  position: relative;
  transition: border-color 0.12s, box-shadow 0.12s, transform 0.12s;
}
.eqa-ent-card input { position: absolute; opacity: 0; pointer-events: none; }
.eqa-ent-logo { width: 100%; height: 96px; border-radius: 11px; margin-bottom: 12px;
  display: flex; align-items: center; justify-content: center; overflow: hidden; }
.eqa-ent-logo img { width: 100%; height: 100%; object-fit: cover; border-radius: 11px; }
.eqa-ent-logo-placeholder { width: 100%; height: 100%;
  background-image: repeating-linear-gradient(45deg, #e7efe9 0 7px, #f1f6f2 7px 14px);
  border-radius: 11px; }
.eqa-ent-name { font-size: 15px; font-weight: 800; color: var(--eqa-ink); line-height: 1.2; }
.eqa-ent-desc { font-size: 12.5px; color: var(--eqa-muted); line-height: 1.4; margin-top: 4px; }
.eqa-ent-pick { margin-top: 12px; color: var(--eqa-green); font-size: 13px; font-weight: 800; }
.eqa-ent-card:hover { border-color: var(--eqa-green); }
.eqa-ent-card:has(input:checked) { border: 2px solid var(--eqa-green); background: var(--eqa-tint); }
.eqa-ent-card:has(input:checked)::after {
  content: '✓';
  position: absolute;
  top: 10px;
  right: 10px;
  width: 22px;
  height: 22px;
  border-radius: 50%;
  background: var(--eqa-green);
  color: #fff;
  font-size: 12px;
  font-weight: 800;
  display: flex;
  align-items: center;
  justify-content: center;
  line-height: 1;
}

/* ----- Produtos ----- */
.eqa-prod-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.eqa-prod { font-size: 13.5px; font-weight: 700; color: var(--eqa-ink); background: #fff;
  border: 1px solid var(--eqa-border); padding: 14px; border-radius: 10px; cursor: pointer; text-align: left;
  position: relative; }
.eqa-prod input { position: absolute; opacity: 0; pointer-events: none; }
.eqa-prod:has(input:checked) {
  background: #f0fdf7; color: var(--eqa-green-dark);
  border: 2px solid var(--eqa-green); box-shadow: 0 0 0 3px rgba(21,135,93,0.08); font-weight: 800;
}
.eqa-prod:has(input:checked)::before { content: '✓ '; font-weight: 800; }

/* A11y: suppress pseudo-element checkmarks from screen reader announcement.
   Browsers without the alt-text slot syntax fall back to the plain content rules above. */
@supports (content: 'x' / 'y') {
  .eqa-ent-card:has(input:checked)::after {
    content: '✓' / '';
  }
  .eqa-prod:has(input:checked)::before {
    content: '✓ ' / '';
  }
}

/* ----- Formulário ----- */
.eqa-field { width: 100%; font-size: 14px; padding: 14px; border-radius: 12px;
  border: 1px solid #dce3de; background: #fff; color: var(--eqa-ink);
  font-family: inherit; transition: border-color 0.12s, box-shadow 0.12s; }
.eqa-field:focus { outline: none; border-color: var(--eqa-green); box-shadow: 0 0 0 3px rgba(21,135,93,0.12); }
.eqa-form { display: flex; flex-direction: column; gap: 12px; }
.eqa-consent { display: flex; gap: 10px; align-items: flex-start; margin-top: 4px;
  font-size: 12.5px; color: var(--eqa-muted); line-height: 1.45; }
.eqa-consent input { width: 18px; height: 18px; margin-top: 1px; accent-color: var(--eqa-green); }
.eqa-fineprint { font-size: 11.5px; color: var(--eqa-soft); text-align: center; line-height: 1.5; margin: 4px 0 0; }
.eqa-note { padding: 18px; background: var(--eqa-tint); border-radius: 14px; font-size: 13px;
  color: #245746; line-height: 1.55; }
.eqa-note--aside {
  background: var(--eqa-tint);
  border-radius: 0 10px 10px 0;
  border-left: 3px solid var(--eqa-green);
  padding: 14px 16px;
  color: var(--eqa-muted);
}
.eqa-note--aside strong { color: var(--eqa-green-dark); }
.eqa-error { background: #fbe8e3; color: #9a3322; border-radius: 12px; padding: 12px 16px;
  font-size: 13.5px; margin-bottom: 14px; }
.eqa-error ul { margin: 6px 0 0; padding-left: 18px; }

/* ----- Rodapé ----- */
.eqa-footer { padding: 28px 26px; background: var(--eqa-green-deep); text-align: center; }
.eqa-footer .eqa-brand { justify-content: center; }
.eqa-footer .eqa-brand span { color: #f3f9f6; }
.eqa-footer img { background: #fff; }
.eqa-footer-links { font-size: 12px; color: #9ec7b6; line-height: 1.6; margin-top: 10px; }
.eqa-footer-links a { color: #9ec7b6; }

/* ----- Página obrigado ----- */
.eqa-check { width: 76px; height: 76px; border-radius: 50%; background: var(--eqa-tint);
  display: flex; align-items: center; justify-content: center; margin: 0 auto; }
.eqa-check span { width: 48px; height: 48px; border-radius: 50%; background: var(--eqa-green);
  color: #fff; font-size: 26px; font-weight: 800; display: flex; align-items: center; justify-content: center; }
.eqa-summary { background: #fff; border: 1px solid var(--eqa-border); border-radius: 16px; padding: 18px; text-align: left; }

/* ----- Política de privacidade ----- */
.eqa-priv-item { display: flex; gap: 14px; align-items: flex-start; padding: 22px 0; border-bottom: 1px solid #eef2ef; }
.eqa-priv-num { flex: none; width: 30px; height: 30px; border-radius: 8px; background: var(--eqa-tint);
  color: var(--eqa-green); font-weight: 800; font-size: 14px; display: flex; align-items: center; justify-content: center; }
.eqa-priv-num--orange { background: var(--eqa-orange-soft); color: var(--eqa-orange-text); }

/* ==========================================================================
   Admin
   ========================================================================== */
.eqa-admin { display: flex; min-height: 100vh; background: var(--eqa-bg); }

.eqa-side { flex: none; width: 236px; background: var(--eqa-green-side); display: flex;
  flex-direction: column; padding: 20px 14px; }
.eqa-side-brand { display: flex; align-items: center; gap: 10px; padding: 6px 8px 20px; }
.eqa-side-brand img { width: 34px; height: 34px; border-radius: 9px; object-fit: cover; background: #fff; }
.eqa-side-brand div { color: #fff; font-size: 14px; font-weight: 800; line-height: 1.1; }
.eqa-side-label { font-size: 10.5px; letter-spacing: .14em; text-transform: uppercase; color: #6f9685;
  font-weight: 800; padding: 8px 10px 6px; }
.eqa-side-item { display: flex; align-items: center; justify-content: space-between;
  padding: 10px 12px; border-radius: 10px; cursor: pointer; margin-bottom: 2px; text-decoration: none;
  font-size: 14px; font-weight: 700; color: #b9d3c8; transition: background 0.12s, color 0.12s; }
.eqa-side-item:hover { background: rgba(255,255,255,.07); color: #e0ede8; }
.eqa-side-item.active { background: #1c5e46; color: #fff; }
.eqa-side-item-inner { display: flex; align-items: center; gap: 10px; }
.eqa-side-icon { display: flex; align-items: center; flex: none; opacity: 0.7; }
.eqa-side-item.active .eqa-side-icon { opacity: 1; }
.eqa-side-item:hover .eqa-side-icon { opacity: 0.9; }
.eqa-side-count { font-size: 11px; font-weight: 800; color: #103a2b; background: #6fd0a6; padding: 2px 8px; border-radius: 10px; }
.eqa-side-spacer { flex: 1; }

.eqa-main { flex: 1; overflow-y: auto; }
.eqa-topbar { position: sticky; top: 0; z-index: 5; display: flex; align-items: center;
  justify-content: space-between; padding: 18px 28px; background: rgba(243,246,244,.92);
  backdrop-filter: blur(6px); border-bottom: 1px solid var(--eqa-border); }
.eqa-crumb { font-size: 12px; color: var(--eqa-soft); font-weight: 700; }
.eqa-title { font-size: 21px; font-weight: 800; color: var(--eqa-ink); letter-spacing: -.02em; }
.eqa-admin-actions { display: flex; align-items: center; gap: 14px; }
.eqa-export { font-size: 13px; font-weight: 800; color: var(--eqa-green); background: var(--eqa-tint);
  border: none; padding: 10px 16px; border-radius: 22px; cursor: pointer; text-decoration: none; }
.eqa-avatar { display: flex; align-items: center; gap: 9px; }
.eqa-avatar .badge { width: 34px; height: 34px; border-radius: 50%; background: var(--eqa-green);
  color: #fff; font-size: 13px; font-weight: 800; display: flex; align-items: center; justify-content: center; }

.eqa-content { padding: 26px 28px 40px; }
.eqa-cards { display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px; }
.eqa-card { background: #fff; border: 1px solid var(--eqa-border); border-radius: 16px; padding: 18px; }
.eqa-card-label { font-size: 12.5px; color: var(--eqa-soft); font-weight: 700; }
.eqa-card-num { font-size: 32px; font-weight: 800; margin-top: 4px; }

.eqa-panel { background: #fff; border: 1px solid var(--eqa-border); border-radius: 16px; overflow: hidden; }
.eqa-panel-head { display: flex; align-items: center; justify-content: space-between; padding: 16px 20px; border-bottom: 1px solid #eef2ef; }

.eqa-filters { background: #fff; border: 1px solid var(--eqa-border); border-radius: 14px; padding: 14px;
  display: flex; gap: 10px; align-items: center; flex-wrap: wrap; }
.eqa-filters input, .eqa-filters select { font-size: 13.5px; padding: 10px 13px; border-radius: 9px;
  border: 1px solid #dce3de; background: #fff; color: var(--eqa-ink); }
.eqa-filters input { flex: 1; min-width: 200px; background: #fafbfb; }

.eqa-table { background: #fff; border: 1px solid var(--eqa-border); border-radius: 14px; overflow: hidden; }
.eqa-thead, .eqa-trow { display: flex; align-items: center; gap: 16px; padding: 13px 18px; }
.eqa-thead { background: #f7faf8; border-bottom: 1px solid #eef2ef; font-size: 11.5px;
  letter-spacing: .06em; text-transform: uppercase; color: var(--eqa-soft); font-weight: 800; }
.eqa-trow { border-bottom: 1px solid #f1f4f2; cursor: pointer; text-decoration: none; color: inherit; }
.eqa-trow:hover { background: #f6faf8; }

.eqa-badge { font-size: 12px; font-weight: 800; padding: 4px 11px; border-radius: 20px; display: inline-block; }
button.eqa-badge { border: none; cursor: pointer; }

.eqa-warn { background: var(--eqa-orange-soft); border-radius: 12px; padding: 14px 18px; margin-bottom: 18px;
  font-size: 13px; color: #8a5a08; line-height: 1.5; }
.eqa-bar { flex: 1; height: 8px; border-radius: 4px; background: #eef2ef; overflow: hidden; }
.eqa-bar > div { height: 100%; border-radius: 4px; background: var(--eqa-green); }

/* Login */
.eqa-login { min-height: 100vh; display: flex; align-items: center; justify-content: center; background: var(--eqa-bg); }
.eqa-login-card { width: 380px; background: #fff; border: 1px solid #e6ebe8; border-radius: 18px;
  padding: 36px 32px; box-shadow: 0 8px 28px rgba(20,40,30,.08); }
.eqa-login-label { font-size: 12px; font-weight: 700; color: var(--eqa-muted); display: block; margin-bottom: 6px; }
.eqa-login-field { width: 100%; font-size: 14px; padding: 12px 13px; border-radius: 10px;
  border: 1px solid #dce3de; background: #fafbfb; color: var(--eqa-ink); }

/* Formulários admin (new/edit) */
.eqa-form-admin { background: #fff; border: 1px solid var(--eqa-border); border-radius: 16px;
  padding: 24px; max-width: 560px; display: flex; flex-direction: column; gap: 14px; }
.eqa-form-admin label { font-size: 12px; font-weight: 800; color: var(--eqa-muted); display: block; margin-bottom: 6px; }
.eqa-form-admin .eqa-login-field { background: #fafbfb; }

/* ----- Inline validation errors ----- */
.eqa-field-label { font-size: 12px; font-weight: 700; color: var(--eqa-muted); display: block; margin-bottom: 5px; }
.eqa-field-error {
  display: block; margin-top: 8px; padding: 8px 12px;
  border-left: 3px solid #b42318; border-radius: 0 8px 8px 0;
  background: #fff4f2; color: #b42318; font-size: 12.5px; font-weight: 500; line-height: 1.4;
}
.eqa-field-error[hidden] { display: none; }
@keyframes eqa-err-in {
  from { opacity: 0; transform: translateY(-3px); }
  to   { opacity: 1; transform: translateY(0); }
}
.eqa-field-error:not([hidden]) { animation: eqa-err-in 0.15s ease; }
.eqa-field--error {
  border-color: #b42318 !important;
  box-shadow: 0 0 0 3px rgba(180,35,24,0.08) !important;
  background: #fffafa !important;
}
.eqa-field--error:focus { border-color: #b42318 !important; box-shadow: 0 0 0 3px rgba(180,35,24,0.12) !important; }
/* Wrapper around card/button groups gains a soft red frame on error */
.eqa-group--error {
  padding: 12px; border: 1px solid #f1a29a; border-radius: 14px; background: #fffafa;
}
.eqa-group--error .eqa-field-error { font-size: 13px; margin-top: 10px; }
/* Summary shown above submit when multiple fields are invalid */
.eqa-error-summary {
  border-left: 3px solid #b42318; border-radius: 0 10px 10px 0;
  background: #fff4f2; padding: 12px 16px; color: #b42318; font-size: 13px; font-weight: 500;
}
.eqa-error-summary p { margin: 0 0 6px; font-weight: 700; }
.eqa-error-summary ul { margin: 0; padding-left: 18px; }
.eqa-error-summary li { margin-bottom: 2px; }

/* ----- Hero actions ----- */
.eqa-hero-actions { display: flex; flex-direction: column; gap: 10px; margin-top: 26px; }

/* ----- Hero flow (connected journey) ----- */
.eqa-hero-flow {
  list-style: none;
  margin: 20px 0 0;
  padding: 0;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 6px;
}
.eqa-hero-flow li {
  font-size: 12px;
  font-weight: 700;
  color: var(--eqa-green-dark);
  background: rgba(21, 135, 93, 0.08);
  border: 1px solid rgba(21, 135, 93, 0.18);
  border-radius: 20px;
  padding: 5px 12px;
  white-space: nowrap;
  position: relative;
}

/* Arrow between chips: legacy fallback (IE9/10 only) */
.eqa-hero-flow li + li { margin-left: 20px; }
.eqa-hero-flow li + li::before {
  content: '→';
  position: absolute;
  left: -15px;
  top: 50%;
  transform: translateY(-50%);
  color: var(--eqa-green);
  font-size: 12px;
  font-weight: 800;
  line-height: 1;
  width: auto;
  text-align: center;
}

/* SVG arrow — @supports guard ensures text base is preserved for IE9/10 */
@supports (background-image: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg"/>')) {
  .eqa-hero-flow li + li::before {
    content: '';
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='%2315875d' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cline x1='3' y1='8' x2='13' y2='8'/%3E%3Cpolyline points='9 4 13 8 9 12'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-size: 12px 12px;
    background-position: center;
    width: 12px;
    height: 12px;
    left: -16px;
    top: 50%;
    transform: translateY(-50%);
  }
}

/* Below 1100px: chips wrap freely — hide arrows at line start */
@media (max-width: 1099px) {
  .eqa-hero-flow { gap: 6px; }
  .eqa-hero-flow li + li { margin-left: 0; }
  .eqa-hero-flow li + li::before { display: none; }
}

/* ==========================================================================
   Mobile refinements
   ========================================================================== */

/* Hamburger button — visible only on mobile */
.eqa-hamburger {
  display: none;
  flex-direction: column; justify-content: center; align-items: center;
  gap: 5px; width: 38px; height: 38px; border: none; background: none;
  cursor: pointer; padding: 4px; border-radius: 8px;
}
.eqa-hamburger span {
  display: block; width: 20px; height: 2px;
  background: var(--eqa-ink); border-radius: 2px;
}
.eqa-hamburger:focus-visible { outline: 2px solid var(--eqa-green); outline-offset: 2px; }

/* Admin sidebar mobile overlay */
.eqa-side {
  transition: transform 0.22s ease;
}

@media (max-width: 767px) {
  /* Public page */
  .eqa-shell { max-width: 100%; }

  h1.eqa-h1 { font-size: 26px; }
  h2.eqa-h2 { font-size: 19px; }

  .eqa-section { padding: 28px 18px; }

  /* Entity cards: single column on narrow screens */
  .eqa-track { gap: 10px; }
  .eqa-ent-card { width: 170px; }

  /* Product grid: single column on very narrow */
  .eqa-prod-grid { grid-template-columns: 1fr; }

  /* Form fields: prevent iOS auto-zoom (requires font-size >= 16px) */
  .eqa-field { font-size: 16px; }

  /* Submit button: full width, adequate touch target */
  .eqa-btn { min-height: 48px; display: flex; align-items: center; justify-content: center; }

  /* Consent checkbox: adequate touch target */
  .eqa-consent input { width: 22px; height: 22px; margin-top: 0; }

  /* Admin: show hamburger, hide sidebar by default */
  .eqa-hamburger { display: flex; }

  .eqa-side {
    position: fixed; top: 0; left: 0; height: 100vh; z-index: 100;
    transform: translateX(-100%);
  }
  .eqa-side.eqa-side--open {
    transform: translateX(0);
    box-shadow: 4px 0 20px rgba(0,0,0,0.25);
  }

  /* Admin content: full width on mobile */
  .eqa-admin { flex-direction: column; }
  .eqa-main { width: 100%; }

  /* Admin tables: horizontal scroll */
  .eqa-table { overflow-x: auto; }
  .eqa-thead, .eqa-trow { min-width: 600px; }

  /* Admin content padding */
  .eqa-content { padding: 16px; }
  .eqa-topbar { padding: 12px 16px; }
}

@media (max-width: 400px) {
  h1.eqa-h1 { font-size: 22px; }
  .eqa-ent-card { width: 150px; }
}

/* ==========================================================================
   Desktop layout — public pages (≥ 768px)
   ========================================================================== */
@media (min-width: 768px) {
  /* Full-width shell — sections handle their own horizontal centering */
  .eqa-shell { max-width: 100%; }

  /* Center content up to 1080px using padding */
  .eqa-nav,
  .eqa-section,
  .eqa-footer {
    padding-left: max(48px, calc((100vw - 1080px) / 2));
    padding-right: max(48px, calc((100vw - 1080px) / 2));
  }
  .eqa-section { padding-top: 72px; padding-bottom: 72px; }

  /* Larger type scale */
  h1.eqa-h1 { font-size: 52px; }
  h2.eqa-h2 { font-size: 32px; }
  .eqa-lead { font-size: 17px; }

  /* CTAs: auto-width (not phone-full-width) */
  .eqa-btn { display: inline-flex; width: auto; min-width: 200px; align-self: flex-start; }
  /* Form submit stays full-width */
  .eqa-form input[type="submit"] { display: block; width: 100%; min-width: 0; align-self: auto; }

  /* Steps: horizontal row on desktop */
  .eqa-steps { flex-direction: row; gap: 0; align-items: flex-start; }
  .eqa-step { flex: 1; flex-direction: column; align-items: center; text-align: center; padding: 0 32px; }
  .eqa-rule { width: 1px; height: auto; min-height: 80px; align-self: stretch; }
  .eqa-step-num { margin-bottom: 10px; }

  /* Products: 4-column grid */
  .eqa-prod-grid { grid-template-columns: repeat(4, 1fr); gap: 12px; }
  .eqa-prod { padding: 16px 20px; font-size: 14.5px; }

  /* Entity section: grid replaces carousel */
  .eqa-arrows { display: none; }
  .eqa-search { border-radius: 14px; padding: 15px 20px; }
  .eqa-search input { font-size: 15px; }
  .eqa-track {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    overflow: visible;
    padding: 0;
    gap: 24px;
    scroll-snap-type: none;
  }
  .eqa-ent-card {
    width: auto;
    display: flex;
    flex-direction: column;
  }
  .eqa-ent-card:hover {
    transform: translateY(-3px);
    box-shadow: 0 8px 28px rgba(21, 135, 93, 0.12);
    border-color: var(--eqa-green);
  }
  .eqa-ent-logo { height: 160px; border-radius: 12px; }
  .eqa-ent-name { font-size: 17px; margin-top: 4px; }
  .eqa-ent-desc { font-size: 13.5px; line-height: 1.5; }
  .eqa-ent-pick { margin-top: auto; padding-top: 18px; font-size: 14px; }

  /* Contact form: 2 columns with proper gaps and field alignment */
  .eqa-form {
    display: grid;
    grid-template-columns: 1fr 1fr;
    column-gap: 24px;
    row-gap: 20px;
  }
  /* Email, textarea, consent, fineprint, submit: full-width */
  .eqa-form > div:has(input[type="email"]),
  .eqa-form > div:has(textarea),
  .eqa-form > div:has(.eqa-consent),
  .eqa-form .eqa-consent,
  .eqa-form .eqa-fineprint,
  .eqa-form input[type="submit"] { grid-column: 1 / -1; }
  .eqa-field { padding: 15px 16px; font-size: 15px; }
  .eqa-field-label { font-size: 12.5px; margin-bottom: 7px; letter-spacing: .02em; }

  /* Hero: full-width section, content capped for readability */
  .eqa-section--hero > *:not(.eqa-hero-flow) { max-width: 640px; }
  .eqa-hero-actions { flex-direction: row; align-items: center; gap: 24px; flex-wrap: wrap; }

  /* Hero flow — base desktop adjustments (wrap still allowed until 1100px) */
  .eqa-hero-flow { margin-top: 24px; }
  .eqa-hero-flow li { font-size: 12.5px; padding: 6px 14px; }
}

/* Hero flow — single line with arrows only when there's enough room */
@media (min-width: 1100px) {
  .eqa-hero-flow { flex-wrap: nowrap; gap: 0; }
  .eqa-hero-flow li + li { margin-left: 24px; }
  .eqa-hero-flow li + li::before { display: block; left: -18px; }
}
