/* Monica for PA — Design System */
:root {
  --navy-900: #0e1b33;
  --navy-800: #15243f;
  --navy-700: #1d3157;
  --navy-600: #294377;
  --red: #c4303c;
  --red-dark: #9d2029;
  --gold: #c39a3d;
  --gold-soft: #e7d3a1;
  --blue: #028fc3;
  --blue-600: #0277a3;
  --blue-700: #045f82;
  --paper: #f6f2e9;
  --paper-2: #efe8da;
  --white: #ffffff;
  --ink: #18212f;
  --ink-soft: #4c576c;
  --line: rgba(14, 27, 51, 0.14);
  --line-strong: rgba(14, 27, 51, 0.28);
  --font-display: "Newsreader", Georgia, "Times New Roman", serif;
  --font-sans: "Public Sans", system-ui, -apple-system, Segoe UI, sans-serif;
  --r-sm: 4px;
  --r-md: 8px;
  --r-lg: 16px;
  --r-xl: 24px;
  --r-pill: 999px;
  --shadow-sm: 0 1px 2px rgba(14,27,51,0.08), 0 2px 8px rgba(14,27,51,0.06);
  --shadow-md: 0 8px 24px rgba(14,27,51,0.10);
  --shadow-lg: 0 24px 60px rgba(14,27,51,0.16);
}
body { font-family: var(--font-sans); color: var(--ink); background: var(--paper); -webkit-font-smoothing: antialiased; }
h1,h2,h3,h4,h5,h6 { font-family: var(--font-display); }

/* Elementor overrides */
.elementor-widget-heading .elementor-heading-title { font-family: var(--font-display); }
.elementor-widget-text-editor { font-family: var(--font-sans); }

/* Button styles */
.monica-btn { display:inline-flex; align-items:center; justify-content:center; gap:10px; font-family:var(--font-sans); font-weight:700; font-size:1rem; letter-spacing:0.01em; padding:15px 28px; border-radius:var(--r-pill); border:2px solid transparent; cursor:pointer; transition:transform .15s, background .15s, color .15s, box-shadow .15s; text-align:center; line-height:1; text-decoration:none !important; }
.monica-btn-primary { background:var(--red); color:#fff !important; box-shadow:var(--shadow-sm); }
.monica-btn-primary:hover { background:var(--red-dark); transform:translateY(-2px); box-shadow:var(--shadow-md); }
.monica-btn-ghost { background:transparent; color:var(--navy-900) !important; border-color:var(--line-strong); }
.monica-btn-ghost:hover { border-color:var(--navy-800); background:rgba(14,27,51,0.04); }
.monica-btn-gold { background:var(--gold); color:var(--navy-900) !important; }
.monica-btn-gold:hover { background:var(--gold-soft); transform:translateY(-2px); }
.monica-btn-blue { background:var(--blue); color:#fff !important; }
.monica-btn-blue:hover { background:var(--blue-700); transform:translateY(-2px); box-shadow:var(--shadow-md); }
.monica-btn-navy { background:var(--navy-800); color:#fff !important; }
.monica-btn-navy:hover { background:var(--navy-900); transform:translateY(-2px); }
.monica-btn-lg { padding:18px 34px; font-size:1.08rem; }

/* Eyebrow */
.monica-eyebrow { font-family:var(--font-sans); font-size:0.78rem; font-weight:700; letter-spacing:0.16em; text-transform:uppercase; color:var(--red); display:inline-flex; align-items:center; gap:10px; }
.monica-eyebrow::before { content:""; width:28px; height:2px; background:var(--blue); display:inline-block; }
.monica-eyebrow-light { color:var(--gold); }
.monica-eyebrow-light::before { background:var(--gold); }

/* Card */
.monica-card { background:var(--white); border:1px solid var(--line); border-radius:var(--r-lg); box-shadow:var(--shadow-sm); padding:32px; transition:transform .18s, box-shadow .18s, border-color .18s; }
.monica-card:hover { transform:translateY(-4px); box-shadow:var(--shadow-md); border-color:var(--line-strong); }

/* Pull quote */
.monica-pullquote { font-family:var(--font-display); font-size:1.32rem; line-height:1.4; color:var(--navy-900); font-style:italic; border-left:3px solid var(--blue); padding:4px 0 4px 24px; }

/* Trust strip */
.monica-trust-item { font-family:var(--font-display); font-size:1.15rem; font-weight:600; }
.monica-trust-divider { width:6px; height:6px; border-radius:50%; background:rgba(255,255,255,0.32); display:inline-block; }

/* Stats */
.monica-stat-num { font-family:var(--font-display); font-weight:700; font-size:clamp(2.2rem,4vw,3rem); color:var(--gold); line-height:1; }

/* Icon badge */
.monica-icon-badge { width:52px; height:52px; border-radius:14px; display:grid; place-items:center; flex:none; }

/* Timeline */
.monica-tl-year { font-family:var(--font-display); font-weight:700; color:var(--blue-600); font-size:1.05rem; }

/* Quote mark */
.monica-quote-mark { font-family:var(--font-display); font-size:3rem; line-height:0.6; height:28px; }

/* Avatar circle */
.monica-avatar { width:46px; height:46px; border-radius:50%; display:grid; place-items:center; font-family:var(--font-display); font-weight:700; font-size:1.05rem; flex:none; }

/* Event date badge */
.monica-event-date { text-align:center; border-radius:var(--r-md); background:var(--navy-900); color:#fff; padding:12px 8px; min-width:80px; }
.monica-event-date .mo { display:block; font-size:0.72rem; font-weight:700; letter-spacing:0.14em; text-transform:uppercase; color:var(--gold); }
.monica-event-date .day { display:block; font-family:var(--font-display); font-weight:700; font-size:1.9rem; line-height:1; }

/* Town card top border */
.monica-town-border-blue { border-top:4px solid var(--blue) !important; }
.monica-town-border-red { border-top:4px solid var(--red) !important; }
.monica-town-border-gold { border-top:4px solid var(--gold) !important; }
.monica-town-border-navy { border-top:4px solid var(--navy-700) !important; }

/* Comparison table */
.monica-compare { width:100%; border-collapse:separate; border-spacing:0; background:#fff; border:1px solid var(--line); border-radius:var(--r-lg); overflow:hidden; box-shadow:var(--shadow-sm); }
.monica-compare th,.monica-compare td { padding:18px 22px; text-align:left; vertical-align:top; border-bottom:1px solid var(--line); }
.monica-compare thead th { background:var(--navy-900); color:#fff; font-family:var(--font-sans); font-weight:700; font-size:0.95rem; }
.monica-compare thead th.col-monica { background:var(--blue-700); }
.monica-compare tbody th { font-weight:700; color:var(--navy-900); font-size:1rem; width:30%; }
.monica-compare td { color:var(--ink-soft); font-size:0.98rem; }
.monica-compare td.col-monica { color:var(--navy-900); background:rgba(2,143,195,0.05); font-weight:500; }
.monica-compare tr:last-child th,.monica-compare tr:last-child td { border-bottom:none; }

/* FAQ */
.monica-faq details { background:#fff; border:1px solid var(--line); border-radius:var(--r-md); box-shadow:var(--shadow-sm); overflow:hidden; margin-bottom:12px; }
.monica-faq summary { list-style:none; cursor:pointer; padding:20px 24px; font-family:var(--font-display); font-weight:600; font-size:1.18rem; color:var(--navy-900); display:flex; align-items:center; justify-content:space-between; gap:16px; }
.monica-faq summary::-webkit-details-marker { display:none; }
.monica-faq .faq-body { padding:0 24px 22px; color:var(--ink-soft); max-width:70ch; }

/* Amount buttons for donate */
.monica-amount { display:grid; place-items:center; padding:16px 0; border:1.5px solid var(--line-strong); border-radius:var(--r-md); font-family:var(--font-display); font-weight:700; font-size:1.25rem; color:var(--navy-900); transition:border-color .15s, background .15s, transform .15s; text-decoration:none !important; }
.monica-amount:hover { border-color:var(--red); transform:translateY(-2px); }
.monica-amount.featured { background:var(--navy-800); border-color:var(--navy-800); color:#fff !important; }

/* Social row */
.monica-social a { width:42px; height:42px; border-radius:50%; border:1px solid rgba(255,255,255,0.22); display:inline-grid; place-items:center; transition:background .15s, border-color .15s, transform .15s; }
.monica-social a:hover { background:rgba(255,255,255,0.10); border-color:rgba(255,255,255,0.4); transform:translateY(-2px); }
.monica-social svg { width:18px; height:18px; fill:#fff; }

/* Check item */
.monica-check-item { display:flex; align-items:center; gap:10px; padding:12px 14px; border:1.5px solid var(--line-strong); border-radius:var(--r-md); cursor:pointer; transition:border-color .15s, background .15s; }
.monica-check-item:hover { border-color:var(--blue-600); background:rgba(2,143,195,0.04); }

/* Responsive */
@media(max-width:767px) {
  .monica-btn-lg { padding:14px 24px; font-size:1rem; }
}
.xpro-footer-layout,
[data-elementor-type="xpro-themer"] { margin-top: 64px !important; }

/* Footer gap */
footer { margin-top: 64px !important; }

/* Map image transparent blend */
.elementor-page-178th-district .e-con.e-parent:first-child .e-con:last-child img { mix-blend-mode: multiply; }
