/* James Teeple for SC House — shared styling */
:root{
  --navy:#12255b;
  --red:#660000;
}
html{scroll-behavior:smooth}
body{font-family:'Source Sans 3',Arial,Helvetica,sans-serif;color:#1e1e1e;background:#ffffff}
h1,h2,h3,h4,h5,.font-head{font-family:'Montserrat',Arial,sans-serif;font-weight:800;letter-spacing:.01em}
.eyebrow{font-family:'Montserrat',Arial,sans-serif;font-weight:800;letter-spacing:.28em;text-transform:uppercase}

/* nav dropdown */
.navitem > .dropdown{opacity:0;visibility:hidden;transform:translateY(8px);transition:.18s ease}
.navitem:hover > .dropdown{opacity:1;visibility:visible;transform:translateY(0)}

/* hero rotator */
.rot-slide{opacity:0;transition:opacity .45s ease;grid-area:1/1;display:flex;align-items:center}
.rot-slide.on{opacity:1}

@keyframes riseIn{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}
.rise{animation:riseIn .7s ease both}

.link-underline{background-image:linear-gradient(#660000,#660000);background-size:0 2px;background-repeat:no-repeat;background-position:0 100%;transition:background-size .3s}
.link-underline:hover{background-size:100% 2px}

/* endorsement marquee */
.marquee-wrap{overflow:hidden;-webkit-mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent);mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent)}
.marquee-track{display:flex;width:max-content;animation:marquee 38s linear infinite}
.marquee-wrap:hover .marquee-track{animation-play-state:paused}
@keyframes marquee{from{transform:translateX(0)}to{transform:translateX(-50%)}}
@media (prefers-reduced-motion:reduce){.marquee-track{animation:none}}

/* Compact endorsement cards, matching the supplied reference. */
.endorsements-section{background:#fff;padding:64px 0 48px;overflow:hidden}
.endorsements-heading{color:#000;text-align:center;text-transform:uppercase;font-size:clamp(32px,5vw,60px);font-weight:900;line-height:1.1;letter-spacing:-.025em}
.endorsements-carousel{margin-top:100px;padding:24px 0}
.endorsements-group{display:flex;gap:72px;padding-right:72px}
.endorsement-card{flex-shrink:0;width:140px}
.endorsement-image{width:140px;height:140px;padding:14px;display:flex;align-items:center;justify-content:center;background:#fff;border-radius:15px;box-shadow:0 5px 22px rgba(0,0,0,.09)}
.endorsement-name{font-family:Montserrat,Arial,sans-serif;font-size:11px;font-weight:800;line-height:1.4;letter-spacing:.015em;text-transform:uppercase;color:#242435}
@media(max-width:640px){.endorsements-section{padding:48px 0 32px}.endorsements-carousel{margin-top:48px}.endorsements-group{gap:36px;padding-right:36px}}
@media(prefers-reduced-motion:reduce){.endorsements-carousel{overflow-x:auto;mask-image:none;-webkit-mask-image:none}.endorsements-group[aria-hidden="true"]{display:none}}
/* Shared election dates, always visible together above the navigation. */
.election-banner{background:#660000;color:#fff;text-align:center;padding:10px 8px;border-bottom:1px solid rgba(255,255,255,.15)}
.election-date{margin:0;font-family:Montserrat,Arial,sans-serif;font-size:clamp(7px,2.1vw,14px);font-weight:700;line-height:1.5;letter-spacing:0;white-space:nowrap}
.election-date-divider{display:inline-block;margin:0 .6em;opacity:.6}
/* --- WordPress additions --- */
/* Logged-in admin bar sits above the sticky header. */
body.admin-bar .site-header{top:32px}
@media (max-width:782px){body.admin-bar .site-header{top:46px}}
/* Client-edited rich text (ACF WYSIWYG / block content). */
.wysiwyg p + p{margin-top:1.25rem}
.wysiwyg a{color:#660000;font-weight:600}
.wysiwyg ul{list-style:disc;padding-left:1.5rem}
.wysiwyg ol{list-style:decimal;padding-left:1.5rem}
.wysiwyg h2,.wysiwyg h3{color:#12255b;text-transform:uppercase;margin-top:2rem}
.wysiwyg img{height:auto;max-width:100%}
