:root {
    --navy: #0b2345;
    --navy-dark: #06162c;
    --blue: #173f73;
    --red: #b4232f;
    --red-dark: #8f1721;
    --gold: #d4aa52;
    --cream: #f5f1e8;
    --paper: #fbfaf7;
    --ink: #18202b;
    --muted: #66717f;
    --line: #d7dce2;
}

html { scroll-behavior: smooth; }
body {
    color: var(--ink);
    background: var(--paper);
    font-family: Arial, Helvetica, sans-serif;
    font-size: 1.03rem;
    line-height: 1.65;
}

a { color: var(--blue); }
a:hover { color: var(--red); }
.campaign-container { max-width: 1500px; padding-left: clamp(1.2rem, 4vw, 4rem); padding-right: clamp(1.2rem, 4vw, 4rem); }
.py-lg-6 { padding-top: 6rem !important; padding-bottom: 6rem !important; }

.top-stripe { height: 6px; background: linear-gradient(90deg, var(--red) 0 33%, #fff 33% 66%, var(--gold) 66%); }
.campaign-header .navbar { background: rgba(6,22,44,.98); box-shadow: 0 3px 14px rgba(0,0,0,.18); }
.campaign-brand { display: flex; flex-direction: column; line-height: .88; letter-spacing: .04em; }
.brand-name { font-size: 1.65rem; font-weight: 900; }
.brand-sub { color: #e7c778; font-size: .78rem; font-weight: 800; letter-spacing: .2em; margin-top: .35rem; }
.navbar-dark .navbar-nav .nav-link { color: rgba(255,255,255,.9); font-weight: 700; font-size: .9rem; text-transform: uppercase; letter-spacing: .04em; padding: .65rem .8rem; }
.navbar-dark .navbar-nav .nav-link:hover { color: #fff; }

.btn-campaign-red { background: var(--red); border-color: var(--red); color: #fff; font-weight: 800; text-transform: uppercase; letter-spacing: .04em; border-radius: 2px; }
.btn-campaign-red:hover { background: var(--red-dark); border-color: var(--red-dark); color: #fff; }
.btn-outline-primary { border-color: var(--blue); color: var(--blue); border-radius: 2px; font-weight: 700; }
.btn-outline-primary:hover { background: var(--blue); border-color: var(--blue); }

.home-hero { background: radial-gradient(circle at 18% 20%, #173f73 0, var(--navy) 38%, var(--navy-dark) 100%); color: #fff; overflow: hidden; position: relative; }
.home-hero::before { content:""; position:absolute; inset:0; background: linear-gradient(115deg, transparent 0 58%, rgba(180,35,47,.22) 58% 60%, transparent 60%); pointer-events:none; }
.min-vh-hero { min-height: 680px; }
.hero-copy { position: relative; z-index: 2; max-width: 850px; }
.eyebrow, .section-kicker { text-transform: uppercase; letter-spacing: .13em; font-weight: 900; font-size: .8rem; color: var(--gold); }
.hero-copy h1 { font-family: Georgia, 'Times New Roman', serif; font-weight: 900; font-size: clamp(4rem, 8vw, 8rem); line-height: .78; letter-spacing: -.045em; margin: 1rem 0; }
.hero-copy h1 span { color: #fff; }
.hero-rule { width: 130px; height: 7px; background: var(--red); margin: 2rem 0; }
.hero-copy h2 { font-family: Georgia, 'Times New Roman', serif; font-size: clamp(1.8rem, 3vw, 3rem); }
.hero-lead { max-width: 790px; font-size: 1.2rem; color: rgba(255,255,255,.84); }
.candidate-photo-wrap { display:flex; align-items:end; justify-content:center; position:relative; min-height: 540px; }
.candidate-photo { width:100%; max-width:560px; height:100%; max-height:650px; object-fit:cover; object-position:center bottom; filter: drop-shadow(-20px 10px 24px rgba(0,0,0,.35)); position:relative; z-index:1; }

.patriot-band { background: var(--cream); border-top: 5px solid var(--red); border-bottom: 1px solid #d6cdbd; }
.patriot-band .col-lg-4 { display:flex; align-items:center; gap:1rem; }
.patriot-band strong { color: var(--navy); font-size:1.05rem; letter-spacing:.08em; }
.patriot-band span { color:#535d68; }
.display-heading { font-family: Georgia, 'Times New Roman', serif; color: var(--navy); font-weight: 800; font-size: clamp(2.2rem, 4vw, 4.2rem); line-height:1.05; }
.text-link { font-weight:900; text-decoration:none; text-transform:uppercase; letter-spacing:.04em; }

.agenda-preview-section { background:#eef1f5; border-top:1px solid #d7dce2; border-bottom:1px solid #d7dce2; }
.agenda-row { display:grid; grid-template-columns:90px minmax(0,1fr) 150px; align-items:center; gap:1.5rem; padding:1.7rem 0; border-top:1px solid #cbd2db; }
.agenda-row:last-child { border-bottom:1px solid #cbd2db; }
.agenda-number { font-family:Georgia,serif; font-size:2.2rem; font-weight:800; color:var(--red); }
.agenda-row h2, .agenda-row h3 { margin:0 0 .4rem; font-family:Georgia,serif; color:var(--navy); }
.agenda-row h2 a, .agenda-row h3 a { color:inherit; text-decoration:none; }
.agenda-row p { margin:0; color:#59636f; }
.agenda-row-action { text-align:right; font-weight:800; }
.agenda-row-action a { text-decoration:none; }
.commitment-mini { text-transform:uppercase; letter-spacing:.09em; font-size:.7rem; font-weight:900; color:var(--red); margin-bottom:.35rem; }
.agenda-metrics { display:flex; gap:1rem; flex-wrap:wrap; margin-top:.8rem; font-size:.82rem; font-weight:700; color:#637080; }

.candidate-statement { background: var(--navy); color:#fff; border-top:6px solid var(--gold); }
.candidate-statement h2 { font-family:Georgia,serif; font-size:clamp(2.2rem,4vw,4.4rem); line-height:1.05; }
.progress-panel { background:var(--cream); border-left:7px solid var(--gold); padding:2rem; }
.progress-label { color:var(--red); text-transform:uppercase; letter-spacing:.1em; font-weight:900; font-size:.8rem; }
.progress-big { font-family:Georgia,serif; font-size:2rem; font-weight:800; color:var(--navy); margin:.5rem 0; }

.page-banner, .issue-hero, .article-hero { background:linear-gradient(135deg,var(--navy-dark),var(--navy)); color:#fff; border-bottom:7px solid var(--red); }
.page-banner h1, .issue-hero h1, .article-hero h1 { font-family:Georgia,serif; font-size:clamp(3rem,6vw,6rem); font-weight:900; line-height:.95; margin:.75rem 0 1rem; }
.page-banner .lead, .issue-hero .lead, .article-deck { color:rgba(255,255,255,.85); max-width:950px; }
.issue-section { padding:0 0 2.2rem; margin-bottom:2.2rem; border-bottom:1px solid var(--line); }
.issue-section h2, .vote-box h2, .public-form h2, .process-list h2 { font-family:Georgia,serif; font-weight:800; color:var(--navy); }
.commitment-box { background:var(--cream); border-left:8px solid var(--red); padding:2rem; margin:2rem 0 2.5rem; }
.commitment-box h2 { font-family:Georgia,serif; color:var(--navy); font-weight:800; }
.commitment-label { text-transform:uppercase; color:var(--red); font-size:.75rem; font-weight:900; letter-spacing:.12em; }
.agenda-actions li { margin-bottom:.8rem; padding-left:.4rem; }
.research-section { background:#f1f4f7; padding:1.5rem; border-left:5px solid var(--blue); }
.support-panel { border:1px solid rgba(255,255,255,.35); padding:1.5rem; text-align:center; background:rgba(255,255,255,.06); }
.support-number { font-size:3.3rem; font-weight:900; font-family:Georgia,serif; }
.support-label { text-transform:uppercase; font-size:.72rem; letter-spacing:.08em; font-weight:800; color:#e9dcae; }
.support-count { font-size:.85rem; margin-top:.5rem; color:rgba(255,255,255,.7); }
.vote-box, .public-form { background:#fff; border:1px solid var(--line); box-shadow:0 10px 35px rgba(12,30,52,.08); padding:2rem; }
.form-control, .form-select { border-radius:2px; padding:.8rem .85rem; }
.form-control:focus, .form-select:focus { border-color:var(--blue); box-shadow:0 0 0 .2rem rgba(23,63,115,.12); }
.agenda-explainer { background:var(--cream); border-left:6px solid var(--gold); padding:1.25rem 1.5rem; }

.process-step { display:flex; gap:1rem; padding:1.2rem 0; border-bottom:1px solid var(--line); }
.process-step > span { width:40px; height:40px; flex:0 0 40px; display:grid; place-items:center; background:var(--navy); color:#fff; font-weight:900; }
.process-step p { margin:.2rem 0 0; color:var(--muted); }

.about-photo { width:100%; min-height:520px; object-fit:cover; background:#dce1e8; border-bottom:8px solid var(--red); }
.quote-panel { font-family:Georgia,serif; font-size:2rem; color:var(--navy); border-top:1px solid var(--line); border-bottom:1px solid var(--line); padding:1.4rem 0; }
.involvement-link { border-top:1px solid var(--line); padding:1.3rem 0; display:flex; flex-direction:column; gap:.25rem; }
.involvement-link strong { font-family:Georgia,serif; font-size:1.4rem; color:var(--navy); }
.involvement-link a { font-weight:800; text-decoration:none; }

.news-row { display:grid; grid-template-columns:150px minmax(0,1fr) 90px; gap:1.5rem; align-items:start; border-top:1px solid var(--line); padding:2rem 0; }
.news-row:last-child { border-bottom:1px solid var(--line); }
.news-date { color:var(--red); text-transform:uppercase; font-weight:900; font-size:.78rem; letter-spacing:.08em; }
.news-row h2 { font-family:Georgia,serif; color:var(--navy); font-size:2rem; }
.news-row h2 a { color:inherit; text-decoration:none; }
.news-read { font-weight:900; text-decoration:none; }
.article-container { max-width:900px; }
.article-container p { font-size:1.12rem; }
.article-container h2 { font-family:Georgia,serif; color:var(--navy); font-weight:800; font-size:2.15rem; margin-top:2.7rem; }
.article-container blockquote { font-family:Georgia,serif; color:var(--navy); font-size:2rem; line-height:1.3; border-left:7px solid var(--red); padding:1rem 0 1rem 1.5rem; margin:2.5rem 0; }
.article-callout { background:var(--cream); border-top:4px solid var(--gold); padding:1.5rem; margin:2rem 0; }

.campaign-footer { background:var(--navy-dark); color:rgba(255,255,255,.72); border-top:6px solid var(--red); }
.footer-brand { color:#fff; font-size:1.7rem; font-weight:900; letter-spacing:.03em; }
.footer-brand span { color:var(--gold); }
.footer-tagline { font-family:Georgia,serif; font-style:italic; color:#fff; }
.footer-heading { color:#fff; font-size:.8rem; text-transform:uppercase; font-weight:900; letter-spacing:.1em; }
.footer-links li { margin:.3rem 0; }
.footer-links a { color:rgba(255,255,255,.75); text-decoration:none; }
.footer-links a:hover { color:#fff; }
.footer-rule { border-color:rgba(255,255,255,.18); }

@media (max-width: 991.98px) {
    .min-vh-hero { min-height:auto; }
    .candidate-photo-wrap { min-height:380px; }
    .candidate-photo { max-height:460px; }
    .agenda-row, .news-row { grid-template-columns:60px minmax(0,1fr); }
    .agenda-row-action, .news-read { grid-column:2; text-align:left; }
    .py-lg-6 { padding-top:4rem !important; padding-bottom:4rem !important; }
}

@media (max-width: 575.98px) {
    .hero-copy h1 { font-size:3.8rem; }
    .campaign-container { padding-left:1rem; padding-right:1rem; }
    .agenda-row { grid-template-columns:45px minmax(0,1fr); gap:1rem; }
    .agenda-number { font-size:1.6rem; }
    .page-banner h1, .issue-hero h1, .article-hero h1 { font-size:2.7rem; }
    .news-row { grid-template-columns:1fr; }
    .news-read { grid-column:1; }
}

/* existing styles above */

/* Keep the hero at a controlled height */
.home-hero {
    overflow: hidden;
}

.min-vh-hero {
    min-height: 760px;
}

/* Control the photo column */
.candidate-photo-wrap {
    display: flex;
    align-items: flex-end;
    justify-content: center;
    overflow: hidden;
    position: relative;
    padding-top: 2rem;
}

/* Force the PNG to fit nicely inside the hero area */
.candidate-photo-wrap img {
    display: block;
    max-width: 100%;
    width: auto;
    max-height: 700px;
    height: auto;
    object-fit: contain;
    object-position: bottom center;
}

/* Large screens */
@media (min-width: 1400px) {
    .candidate-photo-wrap img {
        max-height: 760px;
    }
}

/* Medium / laptop screens */
@media (max-width: 1199.98px) {
    .min-vh-hero {
        min-height: 680px;
    }

    .candidate-photo-wrap img {
        max-height: 620px;
    }
}

/* Mobile / stacked layout */
@media (max-width: 991.98px) {
    .min-vh-hero {
        min-height: auto;
    }

    .candidate-photo-wrap {
        justify-content: center;
        padding-top: 0;
        padding-bottom: 2rem;
    }

    .candidate-photo-wrap img {
        max-height: 520px;
    }
}

/* existing styles below */