/* Apura Brasil 2026 — v11.50.88: shared visual language on public routes.
 * Intentionally scoped to .ab26-unified so Bopea, Elementor and unrelated
 * pages and embedded shortcodes retain their existing presentation.
 * Enqueued late, after the site theme and page-builder styles.
 */
.ab26-app.ab26-unified {
  --ab26-max:1200px;
  --ab26-radius:18px;
  --ab26-line:#dfe8ee;
  --ab26-shadow-sm:0 8px 25px rgba(8,41,63,.055);
  font-family:Montserrat,Inter,system-ui,Arial,sans-serif;
  background:var(--ab26-bg,#f5f8f9);
  min-width:0;
  overflow-x:clip;
  color:var(--ab26-ink,#152a35);
}
.ab26-app.ab26-unified, .ab26-app.ab26-unified * {box-sizing:border-box;}
.ab26-app.ab26-unified .ab26-shell {
  width:min(calc(100% - 48px),1200px);
  margin-inline:auto;
}
.ab26-app.ab26-unified:not(.ab26-post) .ab26-section {padding-block:64px;}
.ab26-app.ab26-unified:not(.ab26-post) .ab26-soft {background:rgba(112,141,154,.065);}
.ab26-app.ab26-unified:not(.ab26-post) .ab26-share-wrap {padding-block:13px;}

/* Reuse the same dark branded hero across national, states, municipalities,
 * office directories and candidate profiles. No redundant site-level menu. */
.ab26-app.ab26-unified:not(.ab26-post) :is(.ab26-page-hero,.ab26-profile-hero,.ab26-hero) {
  background:linear-gradient(118deg,#0a293b 0%,var(--ab26-brand,#0c5263) 100%)!important;
  background:radial-gradient(circle at 86% 18%,rgba(255,255,255,.13),transparent 34%),linear-gradient(118deg,color-mix(in srgb,var(--ab26-brand,#0c5263) 38%,#061a2a) 0%,color-mix(in srgb,var(--ab26-brand,#0c5263) 83%,#061a2a) 100%)!important;
  color:#fff!important;
  border:0!important;
}
.ab26-app.ab26-unified:not(.ab26-post) .ab26-page-hero {padding:54px 0 58px;}
.ab26-app.ab26-unified:not(.ab26-post) .ab26-profile-hero {padding:52px 0 57px;}
.ab26-app.ab26-unified:not(.ab26-post) :is(.ab26-page-hero,.ab26-profile-hero,.ab26-hero) h1 {
  color:#fff!important;
  -webkit-text-fill-color:#fff!important;
  font-size:clamp(32px,4.3vw,56px)!important;
  line-height:1.12!important;
  letter-spacing:-.047em!important;
  font-weight:900!important;
  margin-block:9px 14px!important;
  overflow-wrap:break-word;
}
.ab26-app.ab26-unified:not(.ab26-post) :is(.ab26-page-hero,.ab26-profile-hero,.ab26-hero) :is(.ab26-back,.ab26-eyebrow,.ab26-profile-kicker,.ab26-kicker) {
  color:#dbeff4!important;
  -webkit-text-fill-color:#dbeff4!important;
}
.ab26-app.ab26-unified:not(.ab26-post) :is(.ab26-page-hero,.ab26-profile-hero,.ab26-hero) p {
  color:#d9e8ed!important;
  -webkit-text-fill-color:#d9e8ed!important;
  font-size:14px;
  line-height:1.75;
}
.ab26-app.ab26-unified:not(.ab26-post) .ab26-back {
  display:inline-flex;
  align-items:center;
  gap:8px;
  font-size:12px;
  font-weight:800;
  text-decoration:none!important;
  margin-bottom:16px;
  max-width:100%;
}
.ab26-app.ab26-unified:not(.ab26-post) .ab26-back:hover {text-decoration:underline!important;}
.ab26-app.ab26-unified:not(.ab26-post) .ab26-page-hero .ab26-search {
  background:#fff!important;
  border:1px solid #dbe6eb!important;
  border-radius:14px;
  padding:7px;
  min-width:0;
  max-width:650px;
}
.ab26-app.ab26-unified:not(.ab26-post) .ab26-page-hero .ab26-search input {
  color:#172c36!important;
  -webkit-text-fill-color:#172c36!important;
  background:transparent!important;
  min-width:0;
}

/* Consistent panels, data blocks, directories and listings. */
.ab26-app.ab26-unified:not(.ab26-post) :is(
  .ab26-panel,.ab26-office-card,.ab26-state-card,.ab26-candidate-card,
  .ab26-state-office-result-card,.ab26-state-city-card,.ab26-municipality-result-card,
  .ab26-capital-card,.ab26-national-state-card,.ab26-profile-list-card,
  .ab26-proposal-summary-panel,.ab26-finance-card,.ab26-account-insight-card
) {
  background:var(--ab26-card,#fff)!important;
  border:1px solid var(--ab26-line)!important;
  border-radius:18px!important;
  box-shadow:var(--ab26-shadow-sm)!important;
  min-width:0;
  max-width:100%;
}
.ab26-app.ab26-unified:not(.ab26-post) :is(
  .ab26-office-card,.ab26-state-card,.ab26-candidate-card,.ab26-panel
):is(:hover,:focus-within) {border-color:#bdced8!important;}
.ab26-app.ab26-unified:not(.ab26-post) :is(
  .ab26-section-head h2,.ab26-state-result-head h2,.ab26-panel h2
) {
  color:var(--ab26-ink,#152a35);
  letter-spacing:-.036em;
  line-height:1.22;
}
.ab26-app.ab26-unified:not(.ab26-post) .ab26-candidate-grid {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:15px;
}
.ab26-app.ab26-unified:not(.ab26-post) .ab26-candidate-card {
  grid-template-columns:76px minmax(0,1fr) 16px;
  padding:16px;
  gap:13px;
}
.ab26-app.ab26-unified:not(.ab26-post) :is(.ab26-candidate-card,.ab26-panel,.ab26-state-office-result-card) :is(h2,h3,strong) {
  overflow-wrap:anywhere;
}
.ab26-app.ab26-unified:not(.ab26-post) :is(.ab26-candidate-grid,.ab26-content-grid,.ab26-office-grid,.ab26-state-grid) > * {min-width:0;max-width:100%;}

/* Fix Bopea/Elementor generic button styles only inside the plugin.
 * Accent foreground is generated in PHP from the user's chosen accent color. */
.ab26-app.ab26-unified:not(.ab26-post) :is(a,button).ab26-btn-primary,
.ab26-app.ab26-unified:not(.ab26-post) .ab26-search > button.ab26-btn-primary {
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  min-height:44px!important;
  padding:10px 16px!important;
  width:auto;
  background:var(--ab26-accent,#ffc928)!important;
  border:1px solid var(--ab26-accent,#ffc928)!important;
  border-radius:11px!important;
  color:var(--ab26-accent-ink,#182934)!important;
  -webkit-text-fill-color:var(--ab26-accent-ink,#182934)!important;
  font-size:12px!important;
  font-weight:850!important;
  text-decoration:none!important;
  text-transform:none!important;
  box-shadow:none!important;
}
.ab26-app.ab26-unified:not(.ab26-post) :is(
  .ab26-state-office-tabs,.ab26-state-round-tabs,.ab26-round-tabs
) a.is-active {
  background:var(--ab26-brand,#0c5263)!important;
  border-color:var(--ab26-brand,#0c5263)!important;
  color:#fff!important;
  -webkit-text-fill-color:#fff!important;
}
.ab26-app.ab26-unified:not(.ab26-post) .ab26-round-tabs a.is-active {
  background:var(--ab26-accent,#ffc928)!important;
  border-color:var(--ab26-accent,#ffc928)!important;
  color:var(--ab26-accent-ink,#182934)!important;
  -webkit-text-fill-color:var(--ab26-accent-ink,#182934)!important;
}
.ab26-app.ab26-unified:not(.ab26-post) :is(.ab26-pagination a.is-current,.ab26-post-chips button.is-selected){
  background:var(--ab26-brand,#0c5263)!important;
  border-color:var(--ab26-brand,#0c5263)!important;
  color:#fff!important;
}
.ab26-app.ab26-unified:not(.ab26-post) :is(button,a,select,input):focus-visible {
  outline:3px solid var(--ab26-accent,#ffc928);
  outline-offset:3px;
}

/* Profile keeps its useful local section tabs but not a second site header. */
.ab26-app.ab26-unified .ab26-profile-identity {min-width:0;}
.ab26-app.ab26-unified .ab26-profile-back {color:#dbeff4!important;margin:0 0 14px!important;}
.ab26-app.ab26-unified .ab26-profile-status-card {
  background:#fff!important;
  color:var(--ab26-ink,#152a35)!important;
  border-radius:18px!important;
  max-width:100%;
  min-width:0;
}
.ab26-app.ab26-unified .ab26-profile-nav {
  background:#fff!important;
  border-bottom:1px solid var(--ab26-line)!important;
}
.ab26-app.ab26-unified .ab26-profile-nav a {color:#4b6671!important;}
.ab26-app.ab26-unified .ab26-profile-nav a:hover {color:var(--ab26-brand,#0c5263)!important;}

/* Landing: hero touches the site header directly, without extra navigation. */
.ab26-app.ab26-post.ab26-unified .ab26-post-hero {margin-top:0;}
.ab26-app.ab26-post.ab26-unified [id^="ab26-post-"] {scroll-margin-top:24px;}

@media(max-width:980px) {
  .ab26-app.ab26-unified:not(.ab26-post) .ab26-candidate-grid {grid-template-columns:repeat(2,minmax(0,1fr));}
}
@media(max-width:700px) {
  .ab26-app.ab26-unified .ab26-shell {width:min(calc(100% - 30px),1200px);}
  .ab26-app.ab26-unified:not(.ab26-post) .ab26-section {padding-block:44px;}
  .ab26-app.ab26-unified:not(.ab26-post) .ab26-page-hero {padding:38px 0 42px;}
  .ab26-app.ab26-unified:not(.ab26-post) .ab26-profile-hero {padding:38px 0 42px;}
  .ab26-app.ab26-unified:not(.ab26-post) :is(.ab26-page-hero,.ab26-profile-hero,.ab26-hero) h1 {font-size:clamp(29px,7.4vw,41px)!important;}
  .ab26-app.ab26-unified:not(.ab26-post) :is(.ab26-candidate-grid,.ab26-office-grid,.ab26-state-grid,.ab26-content-grid) {grid-template-columns:minmax(0,1fr);}
  .ab26-app.ab26-unified:not(.ab26-post) .ab26-candidate-card {grid-template-columns:63px minmax(0,1fr) 13px;gap:11px;padding:13px;}
  .ab26-app.ab26-unified:not(.ab26-post) .ab26-candidate-card img {width:63px;height:63px;}
  .ab26-app.ab26-unified:not(.ab26-post) .ab26-page-hero .ab26-search button.ab26-btn-primary {grid-column:1/-1;width:100%!important;}
}
@media(prefers-reduced-motion:reduce){.ab26-app.ab26-unified *{transition-duration:.001ms!important;animation-duration:.001ms!important;}}
