/*
Theme Name: Estabrook Campaign
Author: Midwest Horizons Marketing
Description: Lightweight campaign theme for Aaron Estabrook with easy-edit homepage fields.
Version: 5.0
*/

:root{
  --purple:#341a7a;
  --purple-2:#4a279e;
  --gold:#f1c40f;
  --gold-2:#ffd84d;
  --ink:#1f2240;
  --text:#f8f7fb;
  --body:#ffffff;
  --muted:#585c7a;
  --line:#e6e1f5;
  --shadow:0 18px 40px rgba(23,18,56,.12);
  --radius:20px;
  --max:1180px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;
  font-family:Inter,Segoe UI,Arial,sans-serif;
  color:#22253d;
  background:linear-gradient(180deg,#fff 0%,#fbf9ff 100%);
  line-height:1.55;
}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
.container{width:min(var(--max),calc(100% - 2rem));margin:0 auto}
.skip-link{position:absolute;left:-9999px}
.skip-link:focus{left:1rem;top:1rem;background:#fff;padding:.75rem 1rem;border-radius:.5rem;z-index:999}
.site-header{
  position:sticky;top:0;z-index:1000;
  background:rgba(52,26,122,.95);
  color:#fff;border-bottom:1px solid rgba(255,255,255,.12);
  backdrop-filter:blur(10px);
}
.nav-shell{
  display:flex;align-items:center;justify-content:space-between;gap:1rem;
  min-height:76px;
}
.brand{display:flex;flex-direction:column;gap:.1rem}
.brand strong{font-size:1.12rem;letter-spacing:.02em}
.brand span{font-size:.85rem;color:#e8defe}
.nav-links{display:flex;gap:1.2rem;align-items:center}
.nav-links a{opacity:.94;font-weight:600}
.nav-links a:hover,.nav-links a.active{color:var(--gold-2)}
.nav-actions{display:flex;align-items:center;gap:.7rem}
.btn,button,.button{
  display:inline-flex;align-items:center;justify-content:center;gap:.55rem;
  min-height:48px;padding:.9rem 1.2rem;border:0;border-radius:999px;cursor:pointer;
  font-weight:800;letter-spacing:.01em;transition:.22s transform,.22s box-shadow,.22s opacity,.22s background;
}
.btn:hover,button:hover,.button:hover{transform:translateY(-1px);box-shadow:0 12px 28px rgba(35,18,87,.16)}
.btn-primary{background:var(--gold);color:#2d2354}
.btn-primary:hover{background:var(--gold-2)}
.btn-secondary{background:#fff;color:var(--purple)}
.btn-ghost{background:rgba(255,255,255,.12);color:#fff;border:1px solid rgba(255,255,255,.18)}
.btn-outline{background:#fff;border:1px solid #d8cff5;color:var(--purple)}
.mobile-toggle{
  display:none;background:transparent;border:1px solid rgba(255,255,255,.25);color:#fff;
  width:48px;height:48px;padding:0;border-radius:14px
}
.mobile-menu{display:none;padding:0 0 1rem}
.mobile-menu a{display:block;padding:.9rem 0;color:#fff;border-top:1px solid rgba(255,255,255,.08)}
.hero{
  position:relative;overflow:hidden;
  background:
    radial-gradient(circle at top right, rgba(255,216,77,.18), transparent 28%),
    linear-gradient(135deg,#2b1668 0%,#4a279e 100%);
  color:#fff;
}
.hero .container{padding:4.5rem 0 4rem}
.hero-grid{
  display:grid;grid-template-columns:1.1fr .9fr;gap:2rem;align-items:center
}
.eyebrow{
  display:inline-block;margin-bottom:1rem;padding:.45rem .9rem;border-radius:999px;
  background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.18);
  font-weight:800;font-size:.9rem
}
.hero h1{font-size:clamp(2.35rem,5vw,4.5rem);line-height:1.03;margin:.15rem 0 .75rem}
.hero p.lead{font-size:clamp(1.02rem,1.8vw,1.25rem);max-width:58ch;color:#f4efff;margin:0 0 1.5rem}
.hero-cta{display:flex;flex-wrap:wrap;gap:.8rem;margin:1.3rem 0 1.25rem}
.hero-badges{display:flex;flex-wrap:wrap;gap:.7rem;margin-top:1rem}
.badge{
  background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.18);
  border-radius:999px;padding:.65rem .9rem;font-weight:700
}
.hero-card{
  background:#fff;color:#262545;border-radius:28px;padding:1rem;box-shadow:var(--shadow);
  transform:rotate(-1.5deg)
}
.hero-card img{border-radius:22px;aspect-ratio:1.06/1;object-fit:cover}
.hero-card .caption{padding:.8rem .55rem .2rem;font-weight:700;color:#4d4371}
.quick-stats{
  display:grid;grid-template-columns:repeat(3,1fr);gap:1rem;margin-top:1.2rem
}
.stat{
  background:#fff;border:1px solid #ece8f8;padding:1.1rem;border-radius:20px;box-shadow:var(--shadow)
}
.stat strong{display:block;font-size:1.7rem;color:var(--purple);line-height:1}
.stat span{display:block;color:#5b5f78;margin-top:.45rem;font-weight:600}
section{padding:4.4rem 0}
.section-head{max-width:760px;margin:0 auto 2rem;text-align:center}
.section-head h2{font-size:clamp(2rem,4vw,3rem);line-height:1.06;color:var(--ink);margin:0 0 .75rem}
.section-head p{color:#5d617e;margin:0 auto;max-width:65ch}
.split{
  display:grid;grid-template-columns:1.02fr .98fr;gap:2rem;align-items:center
}
.card{
  background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:1.35rem;box-shadow:var(--shadow)
}
.card.soft{background:linear-gradient(180deg,#fff 0%,#f8f6ff 100%)}
.card h3{margin:.2rem 0 .65rem;color:var(--ink);font-size:1.35rem}
.kicker{color:var(--purple);font-weight:800;letter-spacing:.04em;text-transform:uppercase;font-size:.84rem}
.checklist{padding:0;margin:1rem 0 0;list-style:none}
.checklist li{position:relative;padding-left:1.55rem;margin:.7rem 0;color:#3a3e5e}
.checklist li::before{
  content:"";position:absolute;left:0;top:.42rem;width:.8rem;height:.8rem;border-radius:50%;
  background:var(--gold);box-shadow:0 0 0 4px rgba(241,196,15,.2)
}
.priority-grid{
  display:grid;grid-template-columns:repeat(2,1fr);gap:1rem
}
.priority-card{
  background:#fff;border:1px solid var(--line);border-radius:22px;padding:1.15rem;
  box-shadow:var(--shadow);height:100%
}
.priority-card h3{margin:.3rem 0 .55rem;font-size:1.22rem;color:var(--purple)}
.priority-card p{margin:0;color:#4e526f}
.priority-icon{
  width:50px;height:50px;border-radius:15px;
  display:grid;place-items:center;font-size:1.5rem;
  background:linear-gradient(180deg,#fff7cf 0%,#ffe476 100%);
  color:#51337b;box-shadow:inset 0 0 0 1px rgba(0,0,0,.05)
}
.cta-band{
  background:linear-gradient(135deg,#2f166e 0%,#4a279e 100%);color:#fff;
  border-radius:32px;padding:2rem;display:grid;grid-template-columns:1fr auto;gap:1rem;align-items:center;
  box-shadow:var(--shadow)
}
.cta-band h2{margin:.1rem 0 .5rem;font-size:clamp(1.7rem,3vw,2.5rem)}
.cta-band p{margin:0;color:#efe9ff}
.framed-img{
  border-radius:30px;overflow:hidden;box-shadow:var(--shadow);border:8px solid #fff
}
.trust-grid{
  display:grid;grid-template-columns:repeat(4,1fr);gap:1rem
}
.trust-item{
  padding:1.2rem;background:#fff;border-radius:20px;border:1px solid var(--line);box-shadow:var(--shadow)
}
.trust-item strong{display:block;color:var(--purple);margin-bottom:.45rem;font-size:1.05rem}
.trust-item p{margin:0;color:#5f637f}
.form-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1rem}
label{display:block;font-weight:700;color:#3b3e58;margin-bottom:.4rem}
input,textarea,select{
  width:100%;padding:1rem;border-radius:16px;border:1px solid #d7d1ef;background:#fff;
  font:inherit;color:#24263b
}
textarea{min-height:145px;resize:vertical}
input:focus,textarea:focus,select:focus{outline:3px solid rgba(74,39,158,.18);border-color:#6f53b8}
.help{color:#676b88;font-size:.95rem}
.small{font-size:.95rem}
.note{
  background:#fff6d0;border:1px solid #f2df7e;color:#5a4908;padding:1rem 1.1rem;border-radius:18px
}
.flyer-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1rem}
.flyer-grid img{border-radius:24px;box-shadow:var(--shadow);border:1px solid var(--line)}
.site-footer{
  background:#22124f;color:#fff;margin-top:2rem
}
.footer-grid{
  display:grid;grid-template-columns:1.1fr .9fr .9fr;gap:1.5rem;padding:3rem 0
}
.site-footer h3,.site-footer h4{margin:0 0 .8rem}
.site-footer p,.site-footer li,.site-footer a{color:#e7e2f8}
.site-footer ul{list-style:none;padding:0;margin:0}
.site-footer li{margin:.45rem 0}
.footer-bottom{
  border-top:1px solid rgba(255,255,255,.1);
  padding:1rem 0 2rem;color:#d8cff5;font-size:.95rem
}
.page-hero{
  background:linear-gradient(135deg,#2f166e 0%,#4a279e 100%);color:#fff;padding:3.3rem 0 3rem
}
.page-hero h1{font-size:clamp(2.1rem,4vw,3.6rem);margin:.25rem 0 .8rem;line-height:1.05}
.page-hero p{margin:0;max-width:62ch;color:#efe9ff}
.donation-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem}
.amount{
  padding:1rem;border-radius:20px;border:1px solid var(--line);background:#fff;box-shadow:var(--shadow);text-align:center
}
.amount strong{display:block;font-size:1.6rem;color:var(--purple)}
.amount span{display:block;color:#656983;margin-top:.25rem}
.quote-card{background:#fff;border:1px dashed #d7d1ef;border-radius:22px;padding:1.2rem}
.quote-card blockquote{margin:0;color:#434864;font-size:1.02rem}
.quote-card cite{display:block;margin-top:.85rem;font-style:normal;color:#6a6e88;font-weight:700}
.mobile-donate{
  position:fixed;right:1rem;bottom:1rem;z-index:999;
  box-shadow:0 16px 34px rgba(31,18,68,.26)
}
.accordion{border-top:1px solid #e6e0f8;margin-top:1rem}
.accordion details{border-bottom:1px solid #e6e0f8;padding:.85rem 0}
.accordion summary{cursor:pointer;font-weight:800;color:#352f58}
.accordion p{margin:.7rem 0 0;color:#5d617e}
@media (max-width: 980px){
  .hero-grid,.split,.cta-band,.footer-grid{grid-template-columns:1fr}
  .priority-grid,.trust-grid,.quick-stats,.donation-grid,.flyer-grid,.form-grid{grid-template-columns:1fr 1fr}
}
@media (max-width: 760px){
  .nav-links,.nav-actions .btn-secondary{display:none}
  .mobile-toggle{display:grid;place-items:center}
  .mobile-menu.show{display:block}
  .hero .container{padding:3.6rem 0 3rem}
  .hero-card{transform:none}
  .priority-grid,.trust-grid,.quick-stats,.donation-grid,.flyer-grid,.form-grid{grid-template-columns:1fr}
  section{padding:3.5rem 0}
  .cta-band{padding:1.5rem}
  .mobile-donate{left:1rem;right:1rem}
  .mobile-donate .btn{width:100%}
}


  .trust-grid,.quick-stats,.donation-grid,.flyer-grid,.form-grid,.quote-grid{grid-template-columns:1fr}
}
.progress-shell{margin:1.5rem auto 0;max-width:840px;background:#fff;border:1px solid var(--line);border-radius:24px;padding:1rem 1.1rem;box-shadow:var(--shadow)}
.progress-copy{display:flex;justify-content:space-between;gap:1rem;flex-wrap:wrap;color:#5f637f;margin-bottom:.75rem}
.progress-track{height:16px;background:#eee8fb;border-radius:999px;overflow:hidden}
.progress-bar{display:block;height:100%;background:linear-gradient(90deg,#4a279e 0%,#f1c40f 100%);border-radius:999px}
.progress-meta{display:flex;justify-content:space-between;gap:1rem;flex-wrap:wrap;margin-top:.75rem;font-weight:700;color:#453f68}
.quote-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem}
.nav-links ul{list-style:none;display:flex;gap:1.2rem;align-items:center;margin:0;padding:0}
.nav-links li{margin:0;padding:0}
.site-footer .menu{list-style:none;padding:0;margin:0}
.site-footer .menu li{margin:.45rem 0}


/* Easy-edit homepage helpers */
.home-extra-content .extra-content-card{
  padding:2rem;
}
.home-extra-content .wp-block-heading{
  color:var(--ink);
}
.home-extra-content .wp-block-buttons{
  margin-top:1rem;
}
.home-extra-content .wp-block-button__link{
  border-radius:999px;
  font-weight:800;
}


/* Conversion upgrades v3 */
.donation-progress{
  margin-top:1.2rem;
  background:#ffffff;
  border:1px solid rgba(31,34,64,.1);
  border-radius:18px;
  padding:1rem;
  box-shadow:0 10px 30px rgba(17,24,39,.08);
}
.progress-meta{
  display:flex;
  justify-content:space-between;
  gap:1rem;
  flex-wrap:wrap;
  font-weight:700;
  color:#1f2240;
  margin-bottom:.65rem;
}
.progress-track{
  width:100%;
  height:16px;
  border-radius:999px;
  background:#e9edf7;
  overflow:hidden;
}
.progress-fill{
  height:100%;
  width:0;
  border-radius:999px;
  background:linear-gradient(90deg,#2547d0,#47a1ff);
  transition:width .9s ease;
}
.progress-note{
  margin-top:.6rem;
  font-size:.95rem;
  color:#4f5876;
}
.slider-shell{
  position:relative;
}
.endorsement-slider{
  display:grid;
  grid-template-columns:repeat(3, minmax(0, 1fr));
  gap:1rem;
}
.endorsement-slide{
  background:#fff;
  border-radius:20px;
  padding:1.35rem;
  box-shadow:0 10px 30px rgba(17,24,39,.08);
  border:1px solid rgba(31,34,64,.08);
}
.endorsement-slide p{
  margin:0 0 .9rem;
}
.endorsement-slide strong{
  color:#1f2240;
}
.slider-controls{
  display:flex;
  justify-content:center;
  gap:.7rem;
  margin-top:1rem;
}
.slider-btn{
  border:none;
  border-radius:999px;
  padding:.8rem 1rem;
  font-weight:800;
  cursor:pointer;
  background:#1f2240;
  color:#fff;
}
.capture-card{
  background:linear-gradient(135deg,#1f2240,#2547d0);
  color:#fff;
  border-radius:24px;
  padding:2rem;
  display:grid;
  grid-template-columns:1.15fr .85fr;
  gap:1.5rem;
  align-items:center;
}
.capture-card h2,
.capture-card p,
.capture-card label{
  color:#fff;
}
.capture-form{
  display:grid;
  gap:.8rem;
}
.capture-form input,
.capture-form select,
.capture-form textarea{
  width:100%;
  border:none;
  border-radius:14px;
  padding:.9rem 1rem;
  font-size:1rem;
}
.capture-form .form-row{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:.8rem;
}
.capture-form button{
  border:none;
  border-radius:999px;
  padding:1rem 1.2rem;
  font-weight:800;
  background:#ffd64d;
  color:#1f2240;
  cursor:pointer;
}
.events-grid{
  display:grid;
  grid-template-columns:repeat(3, minmax(0, 1fr));
  gap:1rem;
}
.event-card{
  background:#fff;
  border-radius:20px;
  padding:1.3rem;
  border:1px solid rgba(31,34,64,.08);
  box-shadow:0 10px 30px rgba(17,24,39,.06);
}
.event-date{
  display:inline-block;
  font-weight:800;
  color:#2547d0;
  margin-bottom:.5rem;
}
.popup-overlay{
  position:fixed;
  inset:0;
  background:rgba(8,12,28,.55);
  display:none;
  align-items:center;
  justify-content:center;
  z-index:9999;
  padding:1rem;
}
.popup-overlay.active{
  display:flex;
}
.popup-card{
  max-width:560px;
  width:100%;
  background:#fff;
  border-radius:24px;
  padding:2rem;
  box-shadow:0 20px 60px rgba(0,0,0,.25);
  position:relative;
}
.popup-close{
  position:absolute;
  top:12px;
  right:12px;
  width:40px;
  height:40px;
  border:none;
  border-radius:999px;
  background:#eef2ff;
  color:#1f2240;
  font-size:1.2rem;
  cursor:pointer;
}
.popup-card h3{
  margin-top:0;
}
.mini-note{
  font-size:.9rem;
  opacity:.9;
}
@media (max-width: 900px){
  .endorsement-slider,
  .events-grid,
  .capture-card,
  .capture-form .form-row{
    grid-template-columns:1fr;
  }
}


/* Visual editor version v4 */
.visual-builder-home .container{
  max-width:100%;
  padding:0;
}
.visual-builder-home .extra-content-card{
  background:transparent;
  box-shadow:none;
  border:none;
  padding:0;
}
.campaign-section-width{
  max-width:1200px;
  margin:0 auto;
}
.campaign-hero{
  background:linear-gradient(135deg,#101737 0%,#1f47d7 100%);
  color:#fff;
  padding:4rem 1.5rem;
}
.campaign-eyebrow{
  display:inline-block;
  font-weight:800;
  text-transform:uppercase;
  letter-spacing:.06em;
  font-size:.85rem;
  color:#ffd64d;
  margin-bottom:1rem;
}
.campaign-hero-title{
  color:#fff;
  font-size:clamp(2.4rem,5vw,4.5rem);
  line-height:1.02;
  margin:0 0 1rem;
}
.campaign-hero-lead{
  color:rgba(255,255,255,.92);
  font-size:1.15rem;
  max-width:42rem;
}
.campaign-button-row{
  margin:1.2rem 0 1rem;
  gap:.8rem;
}
.campaign-btn .wp-block-button__link{
  border-radius:999px;
  font-weight:800;
  padding:.95rem 1.35rem;
}
.campaign-btn-secondary .wp-block-button__link{
  border:2px solid rgba(255,255,255,.8);
  color:#fff;
}
.campaign-badges{
  gap:.7rem;
  margin-top:1rem;
}
.campaign-badge{
  background:rgba(255,255,255,.12);
  color:#fff;
  border:1px solid rgba(255,255,255,.18);
  border-radius:999px;
  padding:.55rem .85rem;
  margin:0;
  font-weight:700;
}
.campaign-stats{
  margin-top:1.2rem;
}
.campaign-stats .wp-block-column{
  background:rgba(255,255,255,.09);
  color:#fff;
  border:1px solid rgba(255,255,255,.14);
  border-radius:18px;
  padding:.9rem 1rem;
}
.campaign-stats strong{
  font-size:1.25rem;
}
.campaign-hero-image img,
.campaign-side-image img{
  border-radius:26px;
  box-shadow:0 18px 50px rgba(0,0,0,.22);
  width:100%;
}
.campaign-image-caption{
  color:rgba(255,255,255,.88);
  font-size:.95rem;
}
.campaign-section{
  padding:4rem 1.5rem;
}
.campaign-white-section{
  background:#fff;
}
.campaign-kicker{
  text-transform:uppercase;
  letter-spacing:.08em;
  color:#2547d0;
  font-weight:800;
  font-size:.83rem;
  text-align:center;
}
.campaign-section-title{
  color:#1f2240;
  font-size:clamp(2rem,4vw,3.2rem);
  text-align:left;
  margin:.35rem 0 1rem;
}
.campaign-section-title.center{
  text-align:center;
}
.campaign-section-intro{
  max-width:760px;
  margin:0 auto 1.5rem;
}
.campaign-checklist li{
  margin:.6rem 0;
}
.campaign-card-grid{
  gap:1rem;
}
.campaign-card{
  background:#fff;
  border:1px solid rgba(31,34,64,.08);
  border-radius:22px;
  padding:1.3rem;
  box-shadow:0 10px 30px rgba(17,24,39,.06);
  height:100%;
}
.campaign-card h3{
  color:#1f2240;
  margin-top:0;
}
.campaign-cta-band{
  background:linear-gradient(135deg,#1f2240,#2547d0);
  color:#fff;
  border-radius:28px;
  padding:2rem;
}
.campaign-cta-band h2{
  color:#fff;
}
@media (max-width: 781px){
  .campaign-hero,
  .campaign-section{
    padding:2.5rem 1rem;
  }
}
