/*
 * dwf-rep-profile-shape.css
 *
 * Structural "shape" rules only: layout, spacing, grid. No font-family,
 * no font-size, no color-as-brand-identity choices that belong to the theme.
 * This is the fresh-start principle in practice: the plugin defines the
 * skeleton, the theme decides how it reads. Adapted from the approved
 * Representative-Profile-With-Voting-And-GTG-HTML-Final.html reference,
 * with every typography rule stripped out.
 */

/* 2026-07-05 fresh-start fix: `max-width: 100%` only means "don't exceed
   whatever container you're in" -- if the theme's single-CPT template has
   no width constraint of its own (common for custom post types without a
   dedicated template), this content stretched to full browser width,
   confirmed in testing on Michael Bennet's real profile. This gives it its
   own sane reading-width ceiling so it looks right regardless of the
   theme's template choice for this post type, while still centering
   within whatever wider container the theme provides. This is a structural
   layout safety net, not a typography/branding choice -- consistent with
   the file's own stated convention. */
.dwf-rep-profile { max-width: 75rem; margin-left: auto; margin-right: auto; }

.dwf-rep-profile__hero { margin-bottom: 1.5em; }

.dwf-rep-profile__snapshot {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(120px, 1fr));
    gap: 0.5em 1.5em;
}

.dwf-rep-profile__label { display: block; margin-bottom: 0.25em; }

.dwf-rep-profile__lede { max-width: 60em; margin-bottom: 1.5em; }

.dwf-rep-profile__stats {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    border-top: 1px solid;
    border-bottom: 1px solid;
    margin-bottom: 1.5em;
}

.dwf-rep-profile__stats-card {
    padding: 1em 1.25em 0.9em;
    border-right: 1px solid;
}

.dwf-rep-profile__stats-card:last-child { border-right: 0; }

.dwf-rep-profile__stats-label,
.dwf-rep-profile__stats-note { display: block; }

.dwf-rep-profile__stats-label { margin-bottom: 0.5em; }

.dwf-rep-profile__stats-value { display: block; }

.dwf-rep-profile__stats-note { margin-top: 0.5em; }

@media (max-width: 700px) {
    .dwf-rep-profile__stats { grid-template-columns: 1fr 1fr; }
    .dwf-rep-profile__stats-card:nth-child(2n) { border-right: 0; }
    .dwf-rep-profile__stats-card:nth-child(-n+2) { border-bottom: 1px solid; }
}

@media (max-width: 460px) {
    .dwf-rep-profile__stats { grid-template-columns: 1fr; }
    .dwf-rep-profile__stats-card { border-right: 0; border-bottom: 1px solid; }
    .dwf-rep-profile__stats-card:last-child { border-bottom: 0; }
}

.dwf-rep-profile__two-col {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 2.5em;
    margin-bottom: 2em;
}

@media (max-width: 700px) {
    .dwf-rep-profile__two-col { grid-template-columns: 1fr; }
}

.dwf-rep-profile__facts dl {
    display: grid;
    grid-template-columns: auto 1fr;
    gap: 0.5em 1em;
    margin: 0;
}

.dwf-rep-profile__office { margin-bottom: 1em; }

.dwf-rep-profile__work-mount { margin: 2em 0; }

.dwf-rep-profile__work-tabs {
    display: flex;
    gap: 0.25em;
    margin-bottom: 1em;
    border-bottom: 1px solid;
}

.dwf-rep-profile__work-tabs button {
    padding: 0.75em 1em;
    background: transparent;
    border: 0;
    cursor: pointer;
}

.dwf-rep-profile__work-panel[hidden] { display: none; }

.dwf-rep-profile__work-list {
    display: flex;
    flex-direction: column;
    gap: 0.75em;
}

.dwf-rep-profile__work-list a {
    display: block;
    padding: 0.5em 0;
    border-bottom: 1px solid;
}

.dwf-rep-profile__learn-more { margin-top: 2em; }

.dwf-rep-profile__resource-box { margin-bottom: 1.5em; }

.dwf-rep-profile__resource-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
    gap: 0.5em 1.5em;
}

.dwf-rep-profile__resource-grid a { display: block; padding: 0.5em 0; }
