/* Solvay Civic 1.1.4: narrowly scoped polish. All original WordPress content stays editable. */

/* The code office's first legacy resource link can be wrapped in a <p>.
   Make direct anchors and wrapped anchors occupy identical two-column cards. */
.sv-interior .sv-prose .sv-code-resource-grid > li {
    display:flex; align-items:stretch; min-width:0; width:100%; margin:0;
}
.sv-interior .sv-prose .sv-code-resource-grid > li > :not(a) {
    display:flex; flex:1 1 100%; width:100%; min-width:0; margin:0; padding:0;
    align-items:stretch; font:inherit; background:none; border:0;
}
.sv-interior .sv-prose .sv-code-resource-grid li a {
    display:flex; flex:1 1 100%; width:100%; min-width:0; min-height:76px;
    align-items:center; justify-content:space-between; box-sizing:border-box;
}
.sv-interior .sv-prose .sv-code-resource-grid li a::after { flex:0 0 auto; margin-left:auto; }

/* A second services page with the exact homepage service and department cards.
   The original homepage CSS/markup is not changed. */
.sv-services-banner { background:#e8ede4; border-bottom:1px solid #d6dfd3; }
.sv-services-banner-inner { min-height:270px; display:flex; align-items:center; justify-content:space-between; gap:52px; padding-block:59px; }
.sv-services-banner .sv-eyebrow { font-size:10px; letter-spacing:.16em; color:#806a42; font-weight:650; margin:0 0 14px; }
.sv-services-banner h1 { font-family:var(--sv-serif); font-size:clamp(36px,5vw,61px); font-weight:400; letter-spacing:-.025em; line-height:1.06; color:var(--sv-green); max-width:17ch; margin:0 0 18px; }
.sv-services-banner p:not(.sv-eyebrow) { max-width:60ch; margin:0; font-size:15px; line-height:1.75; color:#496359; }
.sv-services-contacts { display:flex; flex:0 0 auto; gap:16px; align-items:center; justify-content:center; min-height:52px; padding:13px 18px; border:1px solid #8ca18d; color:var(--sv-green); text-decoration:none; font-weight:650; font-size:13px; background:#fafbf6; transition:background .2s; }
.sv-services-contacts:hover { background:#fff; text-decoration:underline; }
.sv-services-contacts .sv-icon { width:18px;height:18px; }
.sv-services-landing .sv-quick-section { padding-top:43px; padding-bottom:53px; }
.sv-services-landing .sv-departments { border-top:0; }
.sv-services-landing .sv-department-bottom { border-top:1px solid #ccd4c9; padding-top:20px; }

/* Leadership - grouped, horizontal cards, strong accessible contacts. */
.sv-administration-ready .sv-leadership { display:grid; gap:35px; }
.sv-leadership-group { min-width:0; }
.sv-interior .sv-prose .sv-leadership-heading { font-family:var(--sv-sans)!important; font-size:14px!important; line-height:1.5; font-weight:750; letter-spacing:.045em; color:#254739; text-transform:uppercase; margin:0 0 14px; }
.sv-administration-ready .sv-official-grid { display:grid; gap:15px; margin:0; grid-template-columns:repeat(3,minmax(0,1fr)); }
.sv-administration-ready .sv-official-grid--mayor,.sv-administration-ready .sv-official-grid--clerk { grid-template-columns:minmax(0,1fr); max-width:680px; }
.sv-administration-ready .sv-official-card { display:flex; flex-direction:column; padding:20px 22px; min-height:155px; box-shadow:none; border-color:#d5dfd3; border-radius:8px; background:#fffefa; }
.sv-administration-ready .sv-official-grid--mayor .sv-official-card,.sv-administration-ready .sv-official-grid--clerk .sv-official-card { min-height:130px; }
.sv-interior .sv-prose .sv-official-card .sv-official-role { margin:0 0 6px; font-size:10px; letter-spacing:.075em; color:#627565; }
.sv-interior .sv-prose .sv-official-card .sv-official-name { font-family:var(--sv-serif); font-size:clamp(22px,2vw,26px); margin:0 0 22px; line-height:1.2; font-weight:400; }
.sv-official-grid--trustees .sv-official-card .sv-official-name { min-height:58px; }
.sv-administration-ready .sv-official-links { flex-direction:row; flex-wrap:wrap; gap:9px; margin-top:auto; }
.sv-interior .sv-prose .sv-official-links .sv-official-link { display:inline-flex; min-height:42px; max-width:100%; align-items:center; justify-content:center; padding:9px 13px; border:1px solid #b7c8b4; border-radius:5px; background:#f0f4ec; color:#194638; font-family:var(--sv-sans); font-size:12px; font-weight:700; line-height:1.35; white-space:normal; text-align:center; text-decoration:none; overflow-wrap:anywhere; }
.sv-interior .sv-prose .sv-official-links .sv-official-email { background:#204337; border-color:#204337; color:#fffdf6; }
.sv-interior .sv-prose .sv-official-links .sv-official-link:hover { background:#e1ede0; border-color:#63876c; text-decoration:underline; }
.sv-interior .sv-prose .sv-official-links .sv-official-email:hover { background:#315b49; border-color:#315b49; color:#fff; }
.sv-administration-ready .sv-original-listing { margin-top:30px; }
.sv-administration-ready .sv-official-photo { order:-1; margin:0 0 13px; }

/* The schedule entries were created with bold, underlined and italic legacy editor
   markup. Scope all changes to schedule posts, never to ordinary news items. */
.sv-meeting-post .sv-prose { font-family:var(--sv-sans); font-size:15px; line-height:1.55; }
.sv-meeting-post .sv-prose p,.sv-meeting-post .sv-prose h2,.sv-meeting-post .sv-prose h3,.sv-meeting-post .sv-prose h4,
.sv-meeting-post .sv-prose span,.sv-meeting-post .sv-prose strong,.sv-meeting-post .sv-prose b,.sv-meeting-post .sv-prose i,
.sv-meeting-post .sv-prose em,.sv-meeting-post .sv-prose font {
    font-family:var(--sv-sans)!important; letter-spacing:normal!important; line-height:1.5!important;
}
.sv-meeting-post .sv-prose p { font-size:15px!important; font-weight:400; margin:0 0 9px!important; color:#334a3e; max-width:75ch; }
.sv-meeting-post .sv-prose p span,.sv-meeting-post .sv-prose p font,.sv-meeting-post .sv-prose p strong,
.sv-meeting-post .sv-prose p b,.sv-meeting-post .sv-prose p em { font-size:inherit!important; }
.sv-meeting-post .sv-prose h2,.sv-meeting-post .sv-prose h3,.sv-meeting-post .sv-prose h4 { font-size:18px!important; line-height:1.4!important; font-weight:650!important; margin:9px 0 13px!important; }
.sv-meeting-post .sv-prose .sv-meeting-date { display:flex!important; flex-wrap:wrap; align-items:baseline; justify-content:space-between; gap:8px 22px; padding:19px 0 9px; margin:0 0 7px!important; border-top:1px solid #d8ded2; color:#254737!important; font-size:14px!important; font-weight:700!important; font-style:normal!important; text-decoration:none!important; }
.sv-meeting-post .sv-prose .sv-meeting-date * { font-size:inherit!important; font-family:var(--sv-sans)!important; font-weight:700!important; font-style:normal!important; line-height:1.5!important; }
.sv-meeting-post .sv-prose .sv-meeting-date u { text-decoration:none!important; }
.sv-meeting-post .sv-prose .sv-meeting-time { margin-left:auto; white-space:nowrap; }
.sv-meeting-post .sv-prose .sv-meeting-title { display:block; font-family:var(--sv-sans)!important; font-size:17px!important; font-style:normal!important; font-weight:700!important; line-height:1.5!important; margin:0 0 5px!important; color:#1f392f; }
.sv-meeting-post .sv-prose .sv-meeting-title * { font-family:inherit!important; font-size:inherit!important; font-style:normal!important; font-weight:inherit!important; }
.sv-meeting-post .sv-prose .sv-meeting-location { font-family:var(--sv-sans)!important; font-size:14px!important; line-height:1.6!important; font-style:italic!important; font-weight:500!important; margin:0 0 22px!important; color:#44564b; }
.sv-meeting-post .sv-prose .sv-meeting-location * { font:inherit!important; }
.sv-meeting-post .sv-prose .sv-empty-spacer { display:none!important; }
.sv-meeting-post .sv-prose .sv-meeting-date:first-child { border-top:0; padding-top:4px; }

/* Short footer: village identity, real contact address, and only primary links. */
.sv-footer--compact { padding-top:29px; font-size:12px; }
.sv-footer--compact .sv-footer-top { display:grid; grid-template-columns:minmax(0,1.1fr) minmax(170px,.9fr) minmax(0,1.7fr); align-items:start; gap:25px 42px; padding-bottom:24px; }
.sv-footer--compact .sv-brand { gap:10px; }
.sv-footer--compact .sv-brand-mark { width:42px; height:42px; }
.sv-footer--compact .sv-brand-mark .sv-icon { width:23px; height:23px; }
.sv-footer--compact .sv-brand-name { font-size:29px; }
.sv-footer--compact .sv-brand-kicker { font-size:8px; }
.sv-footer--compact .sv-footer-hall { font-size:11px; line-height:1.7; color:#d6e0d4; }
.sv-footer--compact .sv-footer-hall strong { display:block; font-size:12px; color:#fffef6; margin-bottom:8px; }
.sv-footer--compact .sv-footer-hall address { margin:0 0 4px; line-height:1.7; }
.sv-footer--compact .sv-footer-hall p { margin:5px 0 0; }
.sv-footer--compact .sv-footer-shortcuts { display:flex; flex-wrap:wrap; gap:8px 20px; align-content:center; justify-content:flex-end; padding-top:9px; }
.sv-footer--compact .sv-footer-shortcuts a { color:#e7efe5; display:inline-flex; align-items:center; min-height:34px; padding:3px 0; font-size:12px; line-height:1.25; }
.sv-footer--compact .sv-footer-bottom { padding:12px 0 15px; font-size:10px; }
.sv-footer--compact .sv-footer-bottom > div { gap:18px; }
.sv-footer--compact .sv-footer-widgets { padding:19px 0; }
.sv-footer--compact .sv-footer-menu ul { margin:0 0 15px; }
@media(max-width:1080px) {
    .sv-administration-ready .sv-official-grid--trustees { grid-template-columns:repeat(2,minmax(0,1fr)); }
    .sv-services-banner-inner { gap:30px; }
    .sv-footer--compact .sv-footer-top { grid-template-columns:1fr 1fr; }
    .sv-footer--compact .sv-footer-shortcuts { grid-column:1/-1; justify-content:flex-start; padding:2px 0 0; }
}
@media(max-width:700px) {
    .sv-services-banner-inner { display:block; padding-block:38px; }
    .sv-services-banner h1 { font-size:clamp(36px,8vw,47px); }
    .sv-services-contacts { display:inline-flex; margin-top:23px; }
    .sv-administration-ready .sv-official-grid--trustees { grid-template-columns:1fr; }
    .sv-administration-ready .sv-official-grid { gap:12px; }
    .sv-administration-ready .sv-leadership { gap:28px; }
    .sv-official-grid--trustees .sv-official-card .sv-official-name { min-height:0; }
    .sv-footer--compact .sv-footer-top { grid-template-columns:1fr; gap:21px; padding-bottom:19px; }
    .sv-footer--compact .sv-footer-shortcuts { grid-column:auto; }
    .sv-footer--compact .sv-footer-bottom { gap:6px; padding-block:12px; }
    .sv-footer--compact .sv-footer-hall { max-width:none; }
    .sv-meeting-post .sv-prose .sv-meeting-date { align-items:flex-start; }
}
@media(max-width:420px) {
    .sv-footer--compact .sv-footer-shortcuts { gap:5px 15px; }
    .sv-footer--compact .sv-footer-shortcuts a { font-size:11px; }
    .sv-interior .sv-prose .sv-code-resource-grid li a { min-height:62px; }
    .sv-meeting-post .sv-prose .sv-meeting-time { margin-left:0; }
}
@media print {
    .sv-footer--compact { display:none!important; }
    .sv-meeting-post .sv-prose .sv-meeting-date { break-after:avoid; }
    .sv-administration-ready .sv-official-card { break-inside:avoid; }
}
/* Override the generic WordPress-content link color on the dark Email buttons. */
.sv-interior .sv-prose .sv-official-links a.sv-official-link { text-decoration:none!important; }
.sv-interior .sv-prose .sv-official-links a.sv-official-email { color:#fffdf6!important; }
.sv-interior .sv-prose .sv-official-links a.sv-official-email:hover { color:#fff!important; }
/* Meeting dates themselves act as the schedule's navigation; omit extra TOC chips. */
.sv-meeting-post .sv-on-this-page { display:none!important; }
