/* =====================================================================
   2026 Trustee Election: homepage banner + candidate responses page
   Used by: index.html (via /content/trustee-election-banner.html)
            trustee-candidates-2026.html
   ===================================================================== */
.te-visually-hidden{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;border:0}

/* ---------- Homepage banner ---------- */
.te-banner-section{padding-top:64px;padding-bottom:0}
.te-banner{position:relative;overflow:hidden;border-radius:22px;background:#0b2140;box-shadow:0 18px 44px rgba(20,39,67,.16)}
.te-banner-media{display:block;line-height:0}
.te-banner-media img{display:block;width:100%;height:auto}
.te-banner-bar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:18px 32px;padding:22px 34px 26px;border-top:1px solid rgba(229,182,90,.35)}
.te-banner-bar p{margin:0;max-width:62ch;font-size:17px;line-height:1.55;color:#d9e1ef}
.te-banner-bar p strong{color:#fff;font-weight:700}
.te-btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:48px;padding:12px 26px;border-radius:12px;background:#e5b65a;color:#0b2140;font-size:16px;font-weight:700;line-height:1.2;text-decoration:none;white-space:nowrap;transition:background .2s,transform .2s,box-shadow .2s}
.te-btn:hover{background:#f1c97a;transform:translateY(-2px);box-shadow:0 10px 22px rgba(0,0,0,.28)}
.te-btn:focus-visible{outline:3px solid #fff;outline-offset:3px}
.te-btn span{transition:transform .2s}
.te-btn:hover span{transform:translateX(3px)}
@media (max-width:640px){
  .te-banner-section{padding-top:40px}
  .te-banner{border-radius:16px}
  .te-banner-bar{flex-direction:column;align-items:stretch;padding:20px 20px 22px}
  .te-banner-bar p{font-size:16px}
  .te-btn{width:100%;white-space:normal}
}

/* ---------- Candidate responses page ---------- */
.te-page-body{padding-top:64px;padding-bottom:88px}
.te-intro{max-width:780px;margin:0 0 40px;font-size:19px;line-height:1.65;color:var(--muted)}
.te-cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:28px;margin:0;padding:0;list-style:none}
.te-card{display:flex;flex-direction:column;height:100%;padding:34px;border:1px solid var(--border);border-radius:20px;background:#fff;transition:border-color .25s,box-shadow .25s,transform .25s}
.te-card:hover{border-color:#b9ccf5;box-shadow:0 16px 40px rgba(24,47,79,.10);transform:translateY(-3px)}
.te-card-eyebrow{margin:0;font-size:12px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:#1f4fd1}
.te-card h2{margin:10px 0 6px;font-size:clamp(30px,4vw,40px);line-height:1.1;color:var(--ink)}
.te-card-meta{margin:0 0 24px;font-size:15px;color:var(--muted)}
.te-card-label{margin:0 0 10px;font-size:13px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--ink)}
.te-candidates{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 28px;padding:0;list-style:none}
.te-candidates li{padding:6px 12px;border:1px solid var(--border);border-radius:999px;background:#f3f6fb;font-size:14px;line-height:1.3;color:var(--ink)}
.te-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:auto;padding-top:24px;border-top:1px solid var(--border)}
.te-action{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:48px;padding:12px 22px;border-radius:12px;font-size:16px;font-weight:700;line-height:1.2;text-decoration:none;transition:background .2s,color .2s,border-color .2s}
.te-action-primary{border:1.5px solid var(--navy);background:var(--navy);color:#fff}
.te-action-primary:hover{border-color:var(--ink);background:var(--ink);color:#fff}
.te-action-secondary{border:1.5px solid var(--navy);background:#fff;color:var(--navy)}
.te-action-secondary:hover{background:#eef2fa}
.te-action:focus-visible{outline:3px solid var(--blue);outline-offset:3px}
.te-note{margin:36px 0 0;padding:22px 26px;border:1px solid var(--border);border-radius:16px;background:#f5f7fb;font-size:15px;line-height:1.65;color:var(--muted)}
.te-note p{margin:0}
.te-note p + p{margin-top:8px}
@media (max-width:860px){ .te-cards{grid-template-columns:1fr} }
@media (max-width:560px){
  .te-page-body{padding-top:40px;padding-bottom:56px}
  .te-intro{font-size:17px}
  .te-card{padding:24px}
  .te-action{flex:1 1 100%}
}
@media (prefers-reduced-motion:reduce){
  .te-btn,.te-btn span,.te-card,.te-action{transition:none}
  .te-btn:hover,.te-card:hover{transform:none}
  .te-btn:hover span{transform:none}
}