/* Shared page chrome and readable section widths. */
.activities-page .wrap,.platforms-wrap{width:min(1040px,calc(100% - 80px));margin-inline:auto}
.activities-page .content-grid{margin:0 auto;gap:24px}
.activities-page .page-head{padding:48px 0 32px}
.activities-page .page-head h1{font-size:clamp(2.2rem,5vw,3.5rem)}
.footer{margin-top:48px;padding:36px 0 20px}
.footer>.wrap{width:min(1040px,calc(100% - 64px));margin-inline:auto}
.footer h2{font-size:1rem}.footer-grid{gap:28px}.footer-bottom{gap:16px;align-items:start}
.footer-bottom>div{display:flex;gap:8px 18px;flex-wrap:wrap}.footer a{display:inline-flex;align-items:center;min-height:44px;overflow-wrap:anywhere}.footer-phone{font-size:1.3rem}
/* Keep the lawyer-schedule tab; remove the redundant service-info tab from site navigation. */
.site-header #navigation>a[href="service.html"]{display:none}
.platform-timeline{margin:36px 0 56px}.platform-row{display:grid;grid-template-columns:90px minmax(0,1fr);gap:24px;position:relative;padding-bottom:18px}
.platform-row::before{content:"";position:absolute;left:102px;top:0;bottom:0;width:1px;background:var(--line)}
.platform-year{padding-top:22px;font-size:1.4rem;font-weight:800;color:var(--green)}
.platform-election{padding:0;border:1px solid var(--line);border-radius:18px;background:white;min-width:0}
.platform-election summary{display:flex;align-items:center;justify-content:space-between;gap:16px;cursor:pointer;list-style:none;padding:22px 24px;min-height:72px}
.platform-election summary::after{content:none}.platform-election summary::-webkit-details-marker{display:none}.platform-election summary h2{font-size:1.2rem;margin:0;line-height:1.5}.platform-toggle{font-size:1.5rem;color:var(--green)}
.platform-election[open] .platform-toggle{transform:rotate(45deg)}
.platform-content{padding:0 24px 24px}.platform-content h3{font-size:1.1rem;margin-top:28px}.platform-content li{margin-block:14px}.platform-content:empty{min-height:24px}
.platform-poster{margin:18px 0 28px}.platform-poster a{display:block;border-radius:14px;overflow:hidden;border:1px solid var(--line);background:#fff}.platform-poster img{display:block;width:100%;height:auto}.platform-poster figcaption{margin-top:8px;font-size:.82rem;color:var(--muted)}
/* Keep provenance in structured source, but do not present verification/source notes as campaign-page copy. */
.platform-content>.source-note:last-child{display:none}
/* Do not reintroduce the legacy wrapping/centering behavior after mobile.css. */
@media(max-width:780px){
 .activities-page .wrap,.platforms-wrap{width:calc(100% - 40px)}.activities-page .content-grid{grid-template-columns:1fr;gap:20px}.activities-page .page-head{padding-block:30px}
 .footer>.wrap{width:calc(100% - 40px)}.footer-grid{grid-template-columns:1fr;gap:20px}.footer-bottom{flex-direction:column}.footer-bottom>div{gap:8px 16px}
 .site-header #navigation>a{font-size:1rem}
 .platform-row::before{left:54px}
 .platform-row{grid-template-columns:48px minmax(0,1fr);gap:12px}.platform-year{font-size:1rem;padding-top:20px}
 .platform-election summary{padding:16px 14px;gap:8px}.platform-election summary h2{font-size:1rem}.platform-content{padding:0 14px 18px;font-size:.9rem}.platform-content ol{padding-left:20px}
}
.event-announcements{padding-bottom:40px}.event-empty{padding:32px;border:1px solid var(--line);border-radius:22px;background:white}.event-empty p{margin:0}
.event-card{padding:28px;margin-bottom:20px;background:white;border:1px solid var(--line);border-radius:22px}.event-card h2{font-size:1.5rem}.event-card h3{font-size:1.1rem;margin-top:24px}.event-card dl{margin:0}.event-card dt{font-weight:700}.event-card dd{margin:4px 0 14px}.event-card .source-note{margin:16px 0 0;font-size:.85rem}.event-card .button{min-height:48px}
@media(max-width:780px){.event-card{padding:20px}.event-card .actions{gap:12px}.event-card .button{width:100%;justify-content:center}}

/* Topic pages without published body copy do not reserve an empty column. */
.case-layout-compact{grid-template-columns:minmax(0,1fr)}
.case-layout-compact .case-aside{position:static}

/* Lawyer consultation: keep the schedule on-page and make phone booking the primary CTA. */
.monthly-schedule .actions{margin-top:24px}
.schedule-phone-cta{min-height:66px;padding:16px 30px;border-radius:18px;font-size:clamp(1.05rem,2vw,1.3rem);gap:22px}
@media(max-width:780px){.schedule-phone-cta{width:100%;justify-content:space-between;padding-inline:22px}}

/* Achievement list: search is opt-in and filtered results are paginated 10 at a time. */
.map-controls [hidden]{display:none!important}
.map-search-toggle.is-active{background:#163e32}
.case-pagination{display:flex;flex-wrap:wrap;justify-content:center;gap:8px;margin:24px 0 0}
.case-pagination[hidden]{display:none!important}
.case-page-button{min-width:44px;min-height:44px;border:1px solid #cfdccd;border-radius:10px;background:#fff;color:#254c3e;padding:8px 12px;font:inherit;font-weight:700;cursor:pointer}
.case-page-button:hover:not(:disabled){border-color:#254c3e}
.case-page-button[aria-current="page"]{background:#254c3e;border-color:#254c3e;color:#fff}
.case-page-button:disabled{opacity:.45;cursor:not-allowed}
@media(max-width:1100px){.map-controls button{grid-column:auto}.map-controls #reset-map-filters{grid-column:1}}
@media(max-width:780px){.case-pagination{margin-top:20px}.case-page-button{flex:0 0 auto}}

/* Service page: soften the large empty hero and turn lawyer rules into a compact editorial card. */
.service-page .page-head{position:relative;overflow:hidden;padding:68px 0 42px}
.service-page .page-head .wrap{position:relative;z-index:1}
.service-page .page-head .wrap::after{content:"";position:absolute;z-index:-1;right:3%;top:-8px;width:clamp(112px,13vw,176px);aspect-ratio:1;border-radius:50%;background:var(--yellow);box-shadow:48px 38px 0 -24px #dce8df;opacity:.72}
.service-page .legal-section{background:transparent;padding:12px 0 42px}
.service-page .legal-grid{background:#eaf0eb;border:1px solid #d5e1d8;border-radius:32px;padding:48px 52px;gap:56px;align-items:start;box-shadow:0 18px 50px rgba(21,57,45,.06)}
.service-page .legal-grid h2{margin-bottom:14px}
.service-page .legal-grid .section-intro{max-width:330px;margin-bottom:0}
.service-page .legal-steps{display:grid;gap:12px}
.service-page .legal-steps li,.service-page .legal-steps li:first-child{align-items:flex-start;gap:18px;margin:0;padding:18px 20px;border:1px solid #d5e1d9;border-radius:18px;background:rgba(255,255,255,.76)}
.service-page .legal-steps li>span{width:38px;height:38px;border-color:transparent;background:var(--yellow);color:var(--green-dark);font-size:.76rem}
.service-page .legal-steps h3{margin:2px 0 5px}
.service-page .legal-steps p{line-height:1.75}
@media(max-width:780px){
 .service-page .page-head{padding:44px 0 30px}
 .service-page .page-head .wrap::after{right:-12px;top:0;width:96px;box-shadow:30px 26px 0 -18px #dce8df;opacity:.5}
 .service-page .legal-section{padding:6px 0 30px}
 .service-page .legal-grid{grid-template-columns:1fr;gap:24px;padding:28px 22px;border-radius:24px}
 .service-page .legal-grid .section-intro{max-width:none}
 .service-page .legal-steps li,.service-page .legal-steps li:first-child{gap:15px;padding:16px}
 .service-page .legal-steps li>span{width:34px;height:34px}
}

/* One shared outer edge for navigation, page headings and content on every route.
   Component padding controls readability inside cards without moving their edges. */
:root{--site-width:1200px;--site-gutter:32px}
body .wrap,body .topline .wrap,body .footer>.wrap,
body .activities-page .wrap,body .platforms-wrap,body .hero-grid,
body .home-account,body .home-contact,body .home-facebook,
body .campaign-entry-compact{width:min(var(--site-width),calc(100% - var(--site-gutter) * 2));max-width:var(--site-width);margin-inline:auto}
body .site-header{width:min(var(--site-width),calc(100% - var(--site-gutter) * 2));margin-inline:auto}
body .site-header .nav-wrap{width:100%;max-width:none}
body .news-article-wrap{max-width:var(--site-width)}
.news-full-article>p,.news-full-article>h2,.news-full-article>h3,.news-full-article>ul,.news-full-article>ol{max-width:52rem}
.terms-content{padding-block:16px 48px}
.terms-content section{max-width:52rem;margin-block:0 32px}
.terms-content h2{font-size:1.35rem;margin-bottom:12px}
.terms-content a{text-decoration:underline;text-underline-offset:3px}
.terms-nav{display:flex;flex-wrap:wrap;gap:8px 20px;margin-bottom:32px;padding-block:16px;border-block:1px solid var(--line)}
.terms-nav a{display:inline-flex;align-items:center;min-height:44px;color:var(--green);font-weight:700}
@media(max-width:780px){
 :root{--site-gutter:16px}
 body .site-header{border:0;background:transparent;top:8px}
 body .site-header .nav-wrap{min-height:72px;padding:10px 14px;backdrop-filter:none}
 .menu-ready .site-header nav.is-open{margin:0}
 .site-header .brand-name{font-size:1.35rem}
 .site-header .menu-toggle{min-width:80px;gap:10px;padding:10px 14px}
 .menu-ready .site-header nav>.global-search-trigger{border:1px solid var(--line);background:#fff;min-height:48px;font-size:1rem}
 .terms-content section{margin-bottom:28px}
}

/* PERF-02: third-party content is opt-in, with a permanent no-JS source link. */
.external-embed .embed-intro{padding:24px;max-width:42rem;margin-inline:auto}
.external-embed .embed-intro p{color:var(--muted);font-size:1rem;line-height:1.8}
.embed-actions{display:flex;flex-wrap:wrap;gap:12px 20px;align-items:center}
.embed-actions .text-link{display:inline-flex;align-items:center;min-height:44px;text-decoration:underline;text-underline-offset:4px}
.external-embed [hidden]{display:none!important}
.external-embed [data-embed-status]:empty{display:none}
.external-embed [data-embed-status]{padding:12px 24px;margin:0;font-size:.9rem;color:var(--muted)}
.home-facebook .external-embed{min-height:0;border:1px solid var(--line);border-radius:16px;background:var(--green-soft)}
.canva-frame.external-embed{aspect-ratio:auto}
.canva-frame.external-embed .embed-slot:not(:empty){position:relative;aspect-ratio:16/9}
@media(max-width:780px){.external-embed .embed-intro{padding:20px}.embed-actions{align-items:stretch;flex-direction:column}.embed-actions .button{justify-content:center}.embed-actions .text-link{justify-content:center}}
