/* ================================================================
   ProLife Vote prototype identity layer
   Loaded after the legacy PFL/elections CSS so existing pages can be
   tested without rewriting their markup first.
   ================================================================ */

:root {
    --plv-navy: #11274b;
    --plv-deep: #0d2731;
    --plv-blue: #184d61;
    --plv-red: #862221;
    --plv-light: #f3f6f8;
    --plv-border: #d8e0e5;
    --plv-text: #1f2933;
    --plv-muted: #62717c;
    --plv-white: #ffffff;
}

html,
body.plv-body {
    margin: 0;
    padding: 0;
    background: var(--plv-light);
    color: var(--plv-text);
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Arial, sans-serif;
    font-size: 16px;
    line-height: 1.6;
}

/* ---------- Brand header / retained banner ---------- */
.plv-site-header {
    background: var(--plv-deep);
    border-bottom: 1px solid rgba(255, 255, 255, 0.12);
}

.plv-banner-container {
    padding-top: 12px;
    padding-bottom: 12px;
}

.plv-banner-link {
    display: block;
}

.plv-banner-image {
    display: block;
    width: 100%;
    height: auto;
    margin: 0 auto;
}

/* ---------- Main PLV navigation ---------- */
.plv-navbar {
    background: var(--plv-navy);
    padding-top: 0.35rem;
    padding-bottom: 0.35rem;
    border-bottom: 4px solid var(--plv-red);
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.16);
}

.plv-navbar-container {
    justify-content: center;
}

.plv-navbar .navbar-collapse {
    justify-content: center;
}

.plv-navbar .plv-navbar-nav {
    margin-left: auto;
    margin-right: auto;
}

.plv-navbar .nav-link {
    color: rgba(255, 255, 255, 0.94) !important;
    font-size: 0.94rem;
    font-weight: 600;
    padding-left: 0.7rem !important;
    padding-right: 0.7rem !important;
}

.plv-navbar .nav-link:hover,
.plv-navbar .nav-link:focus {
    color: var(--plv-white) !important;
    background: rgba(255, 255, 255, 0.09);
    border-radius: 3px;
}

.plv-navbar .dropdown-menu {
    margin-top: 0.35rem;
    border: 0;
    border-top: 3px solid var(--plv-red);
    border-radius: 0 0 4px 4px;
    box-shadow: 0 8px 22px rgba(0, 0, 0, 0.18);
    min-width: 235px;
}

.plv-navbar .dropdown-item {
    color: var(--plv-text);
    font-size: 0.93rem;
    padding: 0.55rem 1rem;
}

.plv-navbar .dropdown-item:hover,
.plv-navbar .dropdown-item:focus {
    background: #edf2f5;
    color: var(--plv-navy);
}

/* ---------- PLV quick action bar ---------- */
.plv-utility-bar {
    background: #f8fafb;
    border-bottom: 1px solid var(--plv-border);
    padding: 0.48rem 0;
}

.plv-utility-inner {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 1rem;
    min-height: 36px;
}

.plv-utility-link,
.plv-donate-link {
    display: inline-flex;
    align-items: center;
    gap: 0.42rem;
    font-size: 0.9rem;
    font-weight: 700;
    line-height: 1;
    text-decoration: none !important;
    transition: color 0.15s ease, background-color 0.15s ease, border-color 0.15s ease;
}

.plv-utility-link {
    color: var(--plv-navy);
}

.plv-utility-link:hover,
.plv-utility-link:focus {
    color: var(--plv-red);
}

.plv-utility-divider {
    display: block;
    width: 1px;
    height: 20px;
    background: #c8d1d7;
}

.plv-donate-link {
    color: var(--plv-white);
    background: var(--plv-red);
    border: 1px solid var(--plv-red);
    border-radius: 999px;
    padding: 0.48rem 0.9rem;
}

.plv-donate-link:hover,
.plv-donate-link:focus {
    background: #6f1c1b;
    border-color: #6f1c1b;
    color: var(--plv-white);
}

/* ---------- Flag-backed content stage ----------
   The artwork is visible only outside the white content canvas.
   A relative image URL keeps the same CSS usable under both the
   physical /elections/ path and the public ProLifeVote.com mapping.
   --------------------------------------------------------------- */
.plv-content-stage {
    position: relative;
    background-color: var(--plv-light);
}

/* ---------- Main page canvas ---------- */
.plv-main-content {
    position: relative;
    z-index: 1;
    width: 100%;
    max-width: 1240px;
    margin: 0 auto;
    padding: 28px 22px 42px;
    background: var(--plv-white);
    min-height: 420px;
    box-shadow: 0 0 0 1px rgba(17, 39, 75, 0.04);
}

/*
   On wider desktop screens, expose a modest strip of the faded flag
   on each side of the content. The 1180px canvas also aligns closely
   with Bootstrap's 1140px desktop container once page padding is
   taken into account.
*/
@media (min-width: 1280px) {
    .plv-content-stage {
        background-image: url("../images/flag-background-01.jpg");
        background-repeat: repeat-y;
        background-position: center top;
        background-size: 100% auto;
    }

    .plv-main-content {
        max-width: 1180px;
        box-shadow: 0 0 24px rgba(17, 39, 75, 0.16);
    }
}

/* On tablets and phones the decorative side artwork is unnecessary. */
@media (max-width: 1279.98px) {
    .plv-content-stage {
        background-image: none;
    }
}

/* Refresh commonly used legacy page classes without changing page markup. */
.plv-body .cardheadertitlefontcolor,
.plv-body h1,
.plv-body h2,
.plv-body h3,
.plv-body h4,
.plv-body h5,
.plv-body h6 {
    color: var(--plv-navy);
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Arial, sans-serif;
}

.plv-body .cardbodytextfontcolor,
.plv-body .cardbodytext {
    color: var(--plv-text);
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Arial, sans-serif;
}

.plv-body .linkcolor,
.plv-body a.linkcolor {
    color: var(--plv-red);
}

.plv-body .linkcolor:hover,
.plv-body a.linkcolor:hover {
    color: var(--plv-blue);
}

.plv-body .buttoncolor,
.plv-body .pfl-btn-primary,
.plv-body .btn-primary {
    background-color: var(--plv-navy);
    border-color: var(--plv-navy);
}

.plv-body .buttoncolor:hover,
.plv-body .pfl-btn-primary:hover,
.plv-body .btn-primary:hover {
    background-color: #0b1c39;
    border-color: #0b1c39;
}

.plv-body .card {
    border-color: var(--plv-border);
}

.plv-body .card-header {
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Arial, sans-serif;
}

/* ---------- Footer ---------- */
.plv-footer {
    background: var(--plv-deep);
    color: rgba(255, 255, 255, 0.93);
    padding: 24px 0;
    border-top: 4px solid var(--plv-red);
    font-size: 0.93rem;
}

.plv-footer a {
    color: var(--plv-white);
    text-decoration: underline;
}

.plv-footer a:hover,
.plv-footer a:focus {
    color: var(--plv-white);
}

.plv-footer-relationship {
    color: rgba(255, 255, 255, 0.74);
    font-size: 0.88rem;
}

/* ---------- Responsive adjustments ---------- */
@media (max-width: 991.98px) {
    .plv-navbar-container {
        justify-content: flex-end;
    }

    .plv-navbar .navbar-collapse {
        flex-basis: 100%;
    }

    .plv-navbar .plv-navbar-nav {
        width: 100%;
        margin: 0.35rem 0 0;
    }

    .plv-navbar .nav-link {
        padding: 0.65rem 0.4rem !important;
    }

    .plv-navbar .dropdown-menu {
        border-top: 0;
        box-shadow: none;
        background: rgba(255, 255, 255, 0.98);
    }
}


@media (max-width: 767.98px) {
    .plv-banner-container {
        padding-top: 8px;
        padding-bottom: 8px;
    }

    .plv-main-content {
        padding: 20px 14px 32px;
    }

    .plv-utility-bar {
        padding: 0.55rem 0;
    }

    .plv-utility-inner {
        gap: 0.75rem;
    }

    .plv-utility-link,
    .plv-donate-link {
        font-size: 0.86rem;
    }
}

/* ================================================================
   HOMEPAGE / LEGACY CONTENT REFRESH
   These rules restyle the existing PLV page markup without changing
   its ASP.NET controls, SQL data sources, or content structure.
   ================================================================ */

/* Give legacy page content a little more breathing room. */
.plv-main-content > .container,
.plv-main-content .container {
    max-width: 1140px;
}

.plv-main-content hr {
    border: 0;
    border-top: 1px solid #e1e7eb;
    margin-top: 1.5rem;
    margin-bottom: 1.5rem;
}

/* ---------- Action Alert ---------- */
.plv-main-content #actionalertrow {
    margin-top: 0.25rem;
    margin-bottom: 1.25rem;
    display: flex;
    justify-content: center;
}

/* The page markup contains empty col-md-2 spacers on both sides.
   Hide them in the PLV layout so the alert itself is mathematically centered. */
.plv-main-content #actionalertrow > .col-md-2 {
    display: none;
}

.plv-main-content #actionalertrow > .col-md-8 {
    flex: 0 0 78%;
    max-width: 78%;
    margin-left: auto;
    margin-right: auto;
    text-align: center;
}

.plv-main-content #rcorners4 {
    background: var(--plv-red) !important;
    border-radius: 12px !important;
    padding: 0 !important;
    overflow: hidden;
    box-shadow: 0 9px 24px rgba(80, 22, 22, 0.18);
    border: 1px solid rgba(112, 22, 22, 0.22);
}

.plv-main-content #smallactionalertrow {
    margin: 0;
}

.plv-main-content #smallactionalertrow > .col-md-12 {
    padding: 0;
}

.plv-main-content #smallactionalertrow > .col-md-12 > div {
    background: transparent !important;
    border-radius: 0 !important;
    padding: 1.35rem 1.75rem 1.5rem !important;
}

.plv-main-content #smallactionalertrow img[alt="Action Alert"] {
    display: block;
    width: auto;
    max-width: min(100%, 430px);
    height: auto !important;
    max-height: 48px;
    margin: 0 auto 0.65rem;
}

.plv-main-content #smallactionalertrow table {
    width: 100%;
    max-width: 760px;
    margin: 0 auto;
    background: transparent !important;
}

.plv-main-content #smallactionalertrow td {
    padding: 0;
}

.plv-main-content #smallactionalertrow .actionitem,
.plv-main-content #smallactionalertrow a.actionitem,
.plv-main-content #smallactionalertrow .actionitem a {
    color: #ffffff !important;
    text-decoration: none !important;
}

.plv-main-content #smallactionalertrow a.actionitem:hover,
.plv-main-content #smallactionalertrow a.actionitem:focus {
    color: #ffffff !important;
    text-decoration: underline !important;
}

/* The database-supplied caption is the primary alert headline. */
.plv-main-content #smallactionalertrow a[id$="captionHyperLink1"] {
    display: inline-block;
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Arial, sans-serif !important;
    font-size: 1.18rem !important;
    line-height: 1.35;
    font-weight: 700 !important;
    margin-top: 0.25rem;
}

.plv-main-content #smallactionalertrow span[id$="blurbLabel"] {
    display: block;
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Arial, sans-serif !important;
    font-size: 0.98rem;
    line-height: 1.55;
    color: rgba(255,255,255,0.96) !important;
}

.plv-main-content #smallactionalertrow span[id$="blurbLabel"] p:last-child {
    margin-bottom: 0;
}

/* Remove the old card framing around the alert itself. */
.plv-main-content .card.cardoutline > .card-header.cardheaderbackground {
    padding: 0;
    background: transparent;
    border: 0;
}

/* ---------- General content cards ---------- */
.plv-main-content .card:not(.cardoutline) {
    border: 1px solid var(--plv-border);
    border-radius: 10px;
    overflow: hidden;
    background: #ffffff;
    box-shadow: 0 3px 12px rgba(17, 39, 75, 0.07);
}

.plv-main-content .card:not(.cardoutline) > .card-header {
    background: #f3f6f8;
    border-bottom: 1px solid var(--plv-border);
    padding: 0.85rem 1.05rem;
}

.plv-main-content .card:not(.cardoutline) > .card-header h1,
.plv-main-content .card:not(.cardoutline) > .card-header h2,
.plv-main-content .card:not(.cardoutline) > .card-header h3,
.plv-main-content .card:not(.cardoutline) > .card-header h4 {
    margin: 0;
    color: var(--plv-navy);
    font-size: 1.22rem;
    line-height: 1.3;
    font-weight: 700;
}

.plv-main-content .card:not(.cardoutline) > .card-body {
    padding: 1.1rem 1.15rem;
}

.plv-main-content .card:not(.cardoutline) > .card-body p:last-child {
    margin-bottom: 0;
}

/* Make resource-card links easier to scan. */
.plv-main-content .card:not(.cardoutline) .card-body p {
    margin-bottom: 0.72rem;
}

.plv-main-content .card:not(.cardoutline) .card-body a {
    font-weight: 600;
}

/* ---------- Large call-to-action buttons ---------- */
.plv-main-content .btn.btn-primary,
.plv-main-content .btn.pfl-btn-primary {
    border-radius: 7px;
    box-shadow: 0 2px 6px rgba(17, 39, 75, 0.12);
    padding: 0.8rem 1rem;
    line-height: 1.35;
    transition: transform 0.12s ease, box-shadow 0.12s ease, background-color 0.12s ease;
}

.plv-main-content .btn.btn-primary:hover,
.plv-main-content .btn.pfl-btn-primary:hover {
    transform: translateY(-1px);
    box-shadow: 0 5px 13px rgba(17, 39, 75, 0.16);
}

/* ---------- Latest panel ---------- */
.plv-main-content .overflow-auto[style*="height: 250px"] {
    scrollbar-width: thin;
    scrollbar-color: #a9b6be #eef2f4;
}

/* ---------- Mobile refinements ---------- */
@media (max-width: 767.98px) {
    .plv-main-content #actionalertrow > .col-md-8 {
        flex: 0 0 100%;
        max-width: 100%;
    }

    .plv-main-content #smallactionalertrow > .col-md-12 > div {
        padding: 1.1rem 1rem 1.2rem !important;
    }

    .plv-main-content #smallactionalertrow a[id$="captionHyperLink1"] {
        font-size: 1.05rem !important;
    }

}

/* ================================================================
   PLV HOMEPAGE STRUCTURE - V6
   Used by index-plv.aspx. These rules are intentionally scoped to
   .plv-homepage so other pages using the prototype master are unchanged.
   ================================================================ */

.plv-homepage {
    max-width: 1140px;
}

.plv-homepage .plv-alert-row {
    margin-left: 0;
    margin-right: 0;
}

.plv-home-section {
    margin-top: 2.5rem;
}

.plv-section-heading {
    margin-bottom: 1rem;
}

.plv-section-heading-compact {
    margin-bottom: 1.15rem;
}

.plv-section-kicker {
    display: block;
    margin-bottom: 0.25rem;
    color: var(--plv-red);
    font-size: 0.78rem;
    font-weight: 800;
    letter-spacing: 0.09em;
    line-height: 1.2;
    text-transform: uppercase;
}

.plv-section-heading h2 {
    margin: 0;
    color: var(--plv-navy);
    font-size: 1.65rem;
    font-weight: 750;
    line-height: 1.25;
}

.plv-section-subtitle {
    margin: 0.25rem 0 0;
    color: var(--plv-muted);
    font-size: 0.96rem;
}

/* ---------- Featured statement ---------- */
.plv-statement-card {
    overflow: hidden;
    background: #ffffff;
    border: 1px solid var(--plv-border);
    border-radius: 12px;
    box-shadow: 0 5px 18px rgba(17, 39, 75, 0.08);
}

.plv-statement-intro {
    display: flex;
    align-items: center;
    gap: 1.15rem;
    padding: 1.15rem 1.35rem;
    background: linear-gradient(180deg, #f8fafb 0%, #f2f6f8 100%);
    border-bottom: 1px solid var(--plv-border);
}

.plv-statement-photo {
    flex: 0 0 auto;
    width: 116px;
    max-width: 116px !important;
    margin: 0 !important;
    border-radius: 9px !important;
    box-shadow: 0 3px 10px rgba(0, 0, 0, 0.11) !important;
}

.plv-statement-heading-copy h3 {
    margin: 0;
    color: var(--plv-navy);
    font-size: 1.42rem;
    font-weight: 750;
    line-height: 1.3;
}

.plv-statement-body {
    padding: 1.35rem 1.5rem 1.45rem;
}

.plv-statement-body p {
    margin-bottom: 0.95rem;
}

.plv-statement-body p:last-child {
    margin-bottom: 0;
}

.plv-statement-body > img[src*="pavone-sig"] {
    display: block;
    margin-top: 0.2rem;
    margin-bottom: 0.3rem;
}

/* ---------- Featured video + latest ---------- */
.plv-feature-card {
    overflow: hidden;
    background: #ffffff;
    border: 1px solid var(--plv-border);
    border-radius: 11px;
    box-shadow: 0 4px 15px rgba(17, 39, 75, 0.07);
}

.plv-feature-card-header {
    padding: 0.9rem 1.05rem;
    background: var(--plv-navy);
    border-bottom: 3px solid var(--plv-red);
}

.plv-feature-card-header h2 {
    margin: 0;
    color: #ffffff;
    font-size: 1.18rem;
    font-weight: 750;
    line-height: 1.25;
}

.plv-feature-card-body {
    padding: 1rem 1.05rem;
}

.plv-video-frame {
    overflow: hidden;
    border-radius: 7px;
    background: #0b1320;
}

.plv-latest-list {
    height: 330px;
    overflow-y: auto;
    scrollbar-width: thin;
    scrollbar-color: #a9b6be #eef2f4;
}

.plv-latest-list p {
    margin-bottom: 0;
    padding: 0.65rem 0;
    border-bottom: 1px solid #e8edf0;
    line-height: 1.4;
}

.plv-latest-list p:first-child {
    padding-top: 0;
}

.plv-latest-list p:last-of-type {
    border-bottom: 0;
}

.plv-latest-list a {
    font-weight: 600;
}

/* ---------- Featured resource buttons ---------- */
.plv-featured-resource-grid {
    margin-bottom: -0.25rem;
}

.plv-featured-resource-link {
    display: flex;
    flex-direction: column;
    justify-content: center;
    min-height: 112px;
    height: 100%;
    padding: 1rem 1.15rem;
    color: #ffffff !important;
    text-align: center;
    text-decoration: none !important;
    background: var(--plv-navy);
    border: 1px solid var(--plv-navy);
    border-radius: 9px;
    box-shadow: 0 3px 10px rgba(17, 39, 75, 0.12);
    transition: transform 0.12s ease, box-shadow 0.12s ease, background-color 0.12s ease;
}

.plv-featured-resource-link:hover,
.plv-featured-resource-link:focus {
    color: #ffffff !important;
    background: #0b1c39;
    transform: translateY(-1px);
    box-shadow: 0 6px 16px rgba(17, 39, 75, 0.16);
}

.plv-featured-resource-link span {
    font-size: 0.94rem;
    line-height: 1.35;
    opacity: 0.92;
}

.plv-featured-resource-link strong {
    display: block;
    margin-top: 0.2rem;
    font-size: 1.08rem;
    line-height: 1.3;
}

/* ---------- Resource directory ---------- */
.plv-resource-directory {
    padding-top: 0.2rem;
}

.plv-resource-grid > [class*="col-"] {
    margin-bottom: 1rem !important;
}

.plv-resource-grid > [class*="col-"] > .card {
    border-radius: 10px;
    border-top: 4px solid var(--plv-blue);
    box-shadow: 0 3px 12px rgba(17, 39, 75, 0.07);
}

.plv-resource-grid > [class*="col-"] > .card > .card-header {
    background: #f5f8fa;
}

.plv-resource-grid > [class*="col-"] > .card > .card-header h3 {
    font-size: 1.15rem;
}

.plv-resource-grid > [class*="col-"] > .card > .card-body {
    padding: 1rem 1.05rem;
}

.plv-resource-grid > [class*="col-"] > .card > .card-body p {
    margin-bottom: 0.75rem;
    padding-bottom: 0.75rem;
    border-bottom: 1px solid #edf1f3;
}

.plv-resource-grid > [class*="col-"] > .card > .card-body p:last-child {
    margin-bottom: 0;
    padding-bottom: 0;
    border-bottom: 0;
}

/* ---------- Spanish resources ---------- */
.plv-spanish-callout {
    margin-top: 1.75rem;
}

.plv-spanish-callout a {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.65rem;
    padding: 0.9rem 1rem;
    color: #ffffff !important;
    font-weight: 750;
    text-decoration: none !important;
    background: var(--plv-blue);
    border-radius: 8px;
}

.plv-spanish-callout a:hover,
.plv-spanish-callout a:focus {
    background: var(--plv-navy);
}

@media (max-width: 767.98px) {
    .plv-home-section {
        margin-top: 2rem;
    }

    .plv-section-heading h2 {
        font-size: 1.4rem;
    }

    .plv-statement-intro {
        display: block;
        text-align: center;
        padding: 1rem;
    }

    .plv-statement-photo {
        width: 130px;
        max-width: 130px !important;
        margin: 0 auto 0.9rem !important;
    }

    .plv-statement-heading-copy h3 {
        font-size: 1.22rem;
    }

    .plv-statement-body {
        padding: 1.1rem 1rem 1.2rem;
    }

    .plv-latest-list {
        height: 300px;
    }

    .plv-featured-resource-link {
        min-height: 98px;
    }
}


/* ============================================================
   PLV CANDIDATES SECTION
   Scoped so legacy comparison content can move into the PLV
   shell without changing its underlying server-side behavior.
   ============================================================ */
.plv-candidates-page {
    padding-top: 1.5rem;
    padding-bottom: 2rem;
}

.plv-candidates-page > .card,
.plv-candidates-page .plv-candidate-card {
    border: 1px solid #d7e0e5;
    border-radius: 12px;
    box-shadow: 0 4px 14px rgba(13, 39, 49, 0.08);
    overflow: hidden;
}

.plv-candidates-page > .card > .card-header,
.plv-candidates-page .card > .card-header {
    background: #0d2731;
    border-bottom: 4px solid #a9202a;
    color: #fff;
    padding: 1rem 1.25rem;
}

.plv-candidates-page .card-header h1,
.plv-candidates-page .card-header h2,
.plv-candidates-page .card-header h3 {
    color: #fff;
    margin: 0;
}

.plv-candidates-page h1,
.plv-candidates-page h2,
.plv-candidates-page h3 {
    color: #11274b;
}

.plv-candidates-page a:not(.btn) {
    color: #8a1720;
    text-decoration-thickness: 1px;
    text-underline-offset: 2px;
}

.plv-candidates-page a:not(.btn):hover,
.plv-candidates-page a:not(.btn):focus {
    color: #5f0f16;
}

.plv-candidates-page .btn-primary,
.plv-candidates-page .pfl-btn-primary,
.plv-candidates-page .plv-candidate-button {
    background-color: #11274b !important;
    border-color: #11274b !important;
    color: #fff !important;
    border-radius: 8px;
    font-weight: 700;
    white-space: normal;
}

.plv-candidates-page .btn-primary:hover,
.plv-candidates-page .pfl-btn-primary:hover,
.plv-candidates-page .plv-candidate-button:hover {
    background-color: #0d2731 !important;
    border-color: #0d2731 !important;
}

.plv-candidates-page table {
    max-width: 100%;
}

.plv-candidates-page .plv-legacy-comparison-table {
    width: 100% !important;
    max-width: 1000px;
    margin: 0 auto;
    background: #fff;
}

.plv-candidates-page img {
    max-width: 100%;
    height: auto;
}

.plv-candidates-page .table {
    margin-bottom: 0;
}

.plv-candidates-page .table td,
.plv-candidates-page .table th {
    vertical-align: middle;
    padding: .8rem .9rem;
}

.plv-candidates-legacy-content {
    background: #fff;
    border: 1px solid #d7e0e5;
    border-radius: 12px;
    box-shadow: 0 4px 14px rgba(13, 39, 49, 0.08);
    padding: 1.5rem;
    overflow-x: auto;
}

.plv-candidates-legacy-content > br:first-child {
    display: none;
}

.plv-candidates-legacy-page .social-networking-bar,
.plv-candidates-page .social-networking-bar {
    max-width: 100%;
}

@media (max-width: 767.98px) {
    .plv-candidates-page {
        padding-top: 1rem;
    }

    .plv-candidates-legacy-content {
        padding: 1rem;
    }

    .plv-candidates-page h1 {
        font-size: 1.65rem;
    }

    .plv-candidates-page h2 {
        font-size: 1.4rem;
    }

    .plv-candidates-page h3 {
        font-size: 1.2rem;
    }

    .plv-candidates-page img[style*="float: left"] {
        float: none !important;
        display: block;
        margin: 0 auto 1rem auto;
        padding-right: 0 !important;
    }
}

/* ============================================================
   HOMEPAGE SHORT SIGNUP FORM
   ============================================================ */

.plv-signup-card {
    max-width: 950px;
    margin: 0 auto 2rem auto;
    background: #ffffff;
    border: 1px solid #d6dce5;
    border-radius: 14px;
    overflow: hidden;
    box-shadow: 0 6px 20px rgba(0, 0, 0, 0.10);
}

.plv-signup-header {
    background: #19244B;
    color: #ffffff;
    padding: 18px 25px 16px 25px;
}

    .plv-signup-header h2 {
        margin: 0 0 5px 0;
        color: #ffffff;
        font-size: 1.6rem;
        font-weight: 700;
    }

    .plv-signup-header p {
        margin: 0;
        color: #ffffff;
        font-size: 1rem;
    }

.plv-signup-body {
    padding: 22px 28px 15px 28px;
}

    /* Override old usercontrol layout */
    .plv-signup-body .panel {
        width: 100% !important;
        margin: 0 !important;
        padding: 0;
        border: 0;
        box-shadow: none;
        background: transparent;
    }

    .plv-signup-body .form-group {
        margin-bottom: 14px;
    }

    .plv-signup-body label {
        color: #19244B;
        font-weight: 600;
        margin-bottom: 5px;
    }

    .plv-signup-body .form-control {
        min-height: 44px;
        border: 1px solid #b9c2cf;
        border-radius: 6px;
        box-shadow: none;
    }

        .plv-signup-body .form-control:focus {
            border-color: #364472;
            box-shadow: 0 0 0 0.15rem rgba(54, 68, 114, 0.15);
        }

    /* Line up submit button with second-row fields */
    .plv-signup-body #submitbuttoncolumn {
        display: flex;
        align-items: flex-end;
    }

    .plv-signup-body #submitbuttonFormGroup {
        width: 100%;
    }

    .plv-signup-body #IncludeSubmitLinkButton,
    .plv-signup-body .btn {
        min-height: 44px;
        border-radius: 6px;
        font-weight: 700;
    }

/* Mobile */
@media (max-width: 767.98px) {
    .plv-signup-card {
        margin-left: 5px;
        margin-right: 5px;
    }

    .plv-signup-body {
        padding: 18px;
    }

    .plv-signup-header h2 {
        font-size: 1.35rem;
    }
}

/* Primary ProLife Vote button */
.plv-btn-primary {
    background-color: #19244B;
    border-color: #19244B;
    color: #ffffff;
    font-weight: 700;
}

    .plv-btn-primary:hover,
    .plv-btn-primary:focus,
    .plv-btn-primary:active {
        background-color: #2f3e6f;
        border-color: #2f3e6f;
        color: #ffffff;
    }


.plv-signup-thanks {
    display: block;
    margin: 16px auto 5px auto;
    padding: 14px 18px;
    background-color: #f1f7f3;
    border: 1px solid #bfd6c5;
    border-radius: 8px;
    color: #234d30;
    font-size: 1rem;
    font-weight: 600;
    text-align: center;
}

    .plv-signup-thanks a {
        color: #19244B;
        font-weight: 700;
        text-decoration: underline;
    }

        .plv-signup-thanks a:hover,
        .plv-signup-thanks a:focus {
            color: #2f3e6f;
        }