/* Village Commons. Each surface declares its own readable foreground. */
.village-commons { --ink:#1c3029; --muted:#526158; --paper:#faf8f1; --surface:#fff; --surface-2:#edf1e9; --line:#cbd2c8; --accent:#194c3d; --accent-2:#e4ba68; --on-accent:#fff; --display:Georgia,'Times New Roman',serif; --body:ui-sans-serif,system-ui,sans-serif; --max:80rem; --radius:.65rem; color:var(--ink); background:var(--paper); }
.village-commons .shell { width:min(var(--max),calc(100% - 4rem)); margin-inline:auto; padding-inline:0; }
.village-commons :is(h1,h2,h3) { font-family:var(--display); font-weight:500; font-style:normal; letter-spacing:-.035em; line-height:1.13; text-wrap:balance; }
.village-commons h2 { font-size:clamp(2rem,3.8vw,3.5rem); }
.village-commons h3 { font-size:1.7rem; }
.village-commons p { line-height:1.7; }
.village-commons .eyebrow { color:#3c6050; font:700 .7rem var(--body); letter-spacing:.14em; margin-bottom:1.15rem; }
.village-commons .section { padding-block:clamp(3rem,5vw,5rem); }
.village-commons .section-heading { margin-bottom:2rem; gap:2rem; }
.village-commons .section-heading > p { color:var(--muted); font-size:1rem; }
.village-commons .button { border-radius:.35rem; background:var(--public-accent,#194c3d); border:1px solid var(--public-accent,#194c3d); color:var(--public-accent-ink,#fff); font-weight:650; padding:.9rem 1.3rem; gap:.6rem; }
.village-commons .text-link { color:#194c3d; font-size:.85rem; font-weight:700; }
.village-commons :is(a,button,input,textarea,select,summary):focus-visible { outline:3px solid #a85313; outline-offset:4px; }
.village-utility { background:#173d32; color:#fff; font-size:.72rem; }
.village-utility .shell { display:flex; justify-content:space-between; gap:1rem; padding-block:.7rem; align-items:center; }
.village-utility nav { display:flex; gap:1.4rem; flex-wrap:wrap; }
.village-utility a { color:white; text-decoration:underline; text-underline-offset:.25em; }
.village-header { background:#faf8f1; color:#1c3029; border-bottom:1px solid var(--line); }
.village-masthead { display:flex; align-items:center; gap:2rem; min-height:6.5rem; }
.village-brand { display:flex; gap:.7rem; align-items:center; font:600 1.5rem var(--display); white-space:nowrap; color:inherit; }
.village-brand small { display:block; font:500 .65rem var(--body); letter-spacing:.13em; margin-top:.35rem; text-transform:uppercase; }
.village-mark { font:2.5rem var(--display); width:2.8rem; height:2.8rem; display:grid; place-items:center; color:#1c3029; border:1px solid #aebdaf; border-radius:50%; }
.village-main-nav { display:flex; gap:1.5rem; margin-inline-start:auto; font-size:.83rem; font-weight:650; flex-wrap:wrap; }
.village-main-nav a { padding-block:1rem; }
.village-commons a[aria-current="page"] { text-decoration:underline; text-underline-offset:.4em; }
.village-contact { white-space:nowrap; font-size:.8rem; }
.village-mobile-nav { display:none; }
.village-languages { display:flex; gap:1rem; padding-block:.7rem; font-size:.8rem; }
.village-commons .hero-component { background:#faf8f1; color:#1c3029; padding-block:3.5rem; min-height:0; }
.village-commons .hero-component-grid { grid-template-columns:.9fr 1.1fr; gap:3rem; align-items:center; min-height:0; }
.village-commons .hero-component h1 { font-size:clamp(3.2rem,5.3vw,5.5rem); max-width:12ch; white-space:pre-line; }
.village-commons .hero-summary { color:#526158; font-size:1rem; max-width:40ch; margin-block:1.6rem 2rem; }
.village-commons .hero-component figure { min-height:34rem; height:40vw; max-height:39rem; border-radius:.5rem 6rem .5rem .5rem; overflow:hidden; position:relative; }
.village-commons .hero-component figure img { width:100%; height:100%; object-fit:cover; }
.village-commons .hero-component figcaption { background:#fff; color:#1c3029; inset:auto 1rem 1rem; border-radius:.25rem; font-size:.64rem; padding:.8rem 1rem; }
.village-commons .hero-component figcaption i { background:#194c3d; }
.village-commons .service-section { background:#e9eee4; color:#1c3029; }
.village-commons .service-list { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:1.5rem; border:0; }
.village-commons .service-list article { background:#fff; color:#1c3029; padding:1.5rem; border:1px solid #cbd2c8; border-radius:.5rem; grid-template-columns:1fr auto; gap:1rem; }
.village-commons .service-list article > span { grid-column:1/-1; font-size:.8rem; color:#526158; }
.village-commons .service-list p { font-size:.88rem; color:#526158; margin-top:.65rem; }
.village-commons .service-list article:hover { padding:1.5rem; }
.village-commons .article-list { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:1.5rem; }
.village-commons .article-list a { background:#fff; color:#1c3029; padding:1.75rem; border:1px solid var(--line); border-top:3px solid #b88837; display:flex; flex-direction:column; gap:1rem; border-radius:.25rem; }
.village-commons .article-list :is(span,p) { color:#526158; font-size:.87rem; }
.village-commons .article-list b { color:#194c3d; margin-top:auto; font-size:.8rem; }
.village-commons .image-text { background:#f0ecdf; color:#1c3029; }
.village-commons .image-text-grid { grid-template-columns:1fr 1fr; gap:4rem; align-items:center; }
.village-commons .image-text-grid figure { border-radius:.5rem; min-height:25rem; overflow:hidden; }
.village-commons .image-text-grid img { width:100%; height:100%; object-fit:cover; }
.village-commons .image-text-copy p:not(.eyebrow) { color:#526158; font-size:1rem; margin-block:1.3rem; }
.village-commons .image-text-grid figcaption { background:#194c3d; color:#fff; bottom:1rem; inset-inline-end:1rem; }
.village-commons .event-section { background:#fff; color:#1c3029; padding-block:4rem; }
.village-commons .event-list { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:1.5rem; }
.village-commons .event-card { background:#faf8f1; color:#1c3029; border:1px solid var(--line); border-radius:.5rem; overflow:hidden; }
.village-commons .event-card-image img { width:100%; aspect-ratio:16/10; object-fit:cover; }
.village-commons .event-card-content { padding:1.5rem; }
.village-commons .event-card-meta { display:flex; flex-wrap:wrap; gap:.5rem; margin-bottom:1rem; font-size:.67rem; }
.village-commons .event-card-date { color:#4b594f; }
.village-commons .event-card-category { color:#493614; background:#edcf92; padding:.15rem .5rem; border-radius:.25rem; }
.village-commons .event-card p { color:#526158; font-size:.85rem; margin-top:.7rem; }
.village-commons .event-card-link { color:#194c3d; display:inline-block; margin-top:1.25rem; font-size:.8rem; font-weight:700; }
.village-commons .project-grid { grid-template-columns:repeat(3,minmax(0,1fr)); gap:1.5rem; }
.village-commons .project-grid > a { background:#fff; color:#1c3029; border:1px solid var(--line); border-radius:.5rem; overflow:hidden; }
.village-commons .project-grid figure { aspect-ratio:4/3; }
.village-commons .project-grid a:nth-child(n) { grid-column:auto; }
.village-commons .project-grid figure { aspect-ratio:auto; }
.village-commons .project-grid > a > div { padding:1.4rem; }
.village-commons .project-grid :is(span,p) { color:#526158; font-size:.84rem; }
.village-commons .project-grid h3 { margin-block:.5rem; }
.village-commons .cta-section { background:#173d32; color:#fff; margin:1.5rem; border-radius:.7rem; padding-block:3.5rem; min-height:0; }
.village-commons .cta-section :is(h2,p,.eyebrow) { color:#fff; }
.village-commons .cta-section .button { background:#edcf92; color:#26382e; border-color:#edcf92; }
.village-commons .cta-section h2 { max-width:20ch; }
.village-commons .stats-section { background:#f0e2ba; color:#26382e; }
.village-commons .stats-section :is(h2,.eyebrow,.stats-grid span,.stats-grid small) { color:#26382e; }
.village-commons .stats-grid strong { color:#194c3d; }
.village-commons .stats-grid article { border-color:#a79f82; }
.village-commons .feature-grid article { background:#fff; color:#1c3029; min-height:0; padding:1.5rem; border-radius:.5rem; }
.village-commons .feature-icon { color:#194c3d; margin-bottom:1.7rem; }
.village-commons .feature-grid p { color:#526158; font-size:.9rem; }
.village-commons .announcement-section { background:#f0e2ba; color:#26382e; }
.village-commons .announcement-section :is(p,h2,.eyebrow) { color:#26382e; }
.village-page-heading { background:#e9eee4; color:#1c3029; padding-block:2.5rem 3rem; }
.village-page-heading h1 { font-size:clamp(2.6rem,5vw,4.5rem); }
.village-commons .breadcrumbs { display:flex; flex-wrap:wrap; gap:.6rem; font-size:.8rem; color:#526158; margin-bottom:2rem; }
.village-page-grid { display:grid; grid-template-columns:minmax(0,1fr) 16rem; gap:3.5rem; align-items:start; padding-block:3rem; }
.village-page-content { min-width:0; }
.village-page-content .shell { width:100%; }
.village-page-content .section { padding:2rem 0; }
.village-page-content > .component:first-child { padding-top:0; }
.village-page-content .prose-layout { grid-template-columns:1fr; gap:1rem; }
.village-page-content .prose-index { font-size:.7rem; color:#526158; }
.village-page-content .prose { max-width:100%; }
.village-page-content .prose p { font-size:1rem; color:#526158; }
.village-page-content :is(.event-list,.project-grid,.service-list,.feature-grid,.article-list) { grid-template-columns:repeat(2,minmax(0,1fr)); }
.village-page-content .image-text-grid { grid-template-columns:1fr; gap:2rem; }
.village-page-content .image-text-copy { padding-inline:clamp(1.25rem,3vw,2.5rem); }
.village-page-content .stats-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }
.village-page-content .stats-section { padding:2rem; border-radius:.5rem; }
.village-page-content .stats-grid article { padding:1rem; }
.village-page-content .stats-grid strong { font-size:3rem; }
.village-page-content .cta-section { margin:2rem 0; padding:2rem; }
.village-page-content .cta-section .shell { grid-template-columns:1fr; gap:1.25rem; }
.village-page-content .cta-section .button { justify-self:start; }
.village-sidebar { position:sticky; top:1.5rem; font-size:.88rem; }
.village-sidebar-nav { background:#fff; color:#1c3029; border:1px solid var(--line); border-radius:.5rem; padding:1.25rem; }
.village-sidebar-nav summary { cursor:pointer; font-weight:750; font-size:.95rem; }
.village-sidebar-nav nav { margin-top:1rem; }
.village-sidebar-nav a { display:flex; justify-content:space-between; padding:.85rem 0; gap:.5rem; border-top:1px solid var(--line); }
.village-help { margin-top:1.5rem; padding:1.5rem; background:#f0e2ba; color:#26382e; border-radius:.5rem; }
.village-help h2 { font-size:1.65rem; }
.village-help p { margin-block:1rem; }
.village-sidebar .component { padding:1.5rem 0; }
.village-sidebar .shell { width:100%; }
.village-sidebar .prose-layout { display:block; }
.village-sidebar .prose p { font-size:.9rem; }
.village-sidebar :is(.contact-actions,.announcement-panel .shell) { display:block; padding:1.25rem; }
.village-sidebar .download-list a { grid-template-columns:1fr; gap:.5rem; }
.village-commons .contact-actions :is(h2,p,.eyebrow) { color:#fff; }
.village-sidebar h2 { font-size:1.6rem; }
.village-commons .lead-form-section { color:#1c3029; background:#faf8f1; }
.village-commons .lead-form { background:#fff; color:#1c3029; padding:2rem; border:1px solid var(--line); border-radius:.5rem; }
.village-page-content .lead-form-layout { grid-template-columns:1fr; gap:2rem; }
.village-commons .lead-form-layout > div:first-child { position:static; }
.village-commons .feature-grid .text-link { position:static; margin-top:1rem; }
.village-commons .article-list a { align-items:flex-start; }
.village-commons .breadcrumbs { padding-bottom:0; }
.village-page-content .faq-layout { grid-template-columns:1fr; gap:2rem; }
.village-commons .lead-form :is(input,textarea,select) { color:#1c3029; background:#fff; border:1px solid #7a887b; border-radius:.3rem; padding:.8rem; }
.village-commons .lead-form fieldset { padding:0; border:0; min-width:0; }
.village-commons .lead-form legend { font-size:.88rem; font-weight:700; }
.village-commons .lead-form button[type="button"] { background:#e9eee4; color:#1c3029; border:1px solid #7a887b; padding:.5rem; border-radius:.25rem; }
.village-commons .form-error { color:#a22020; }
.village-footer { background:#173d32; color:#fff; padding:4rem 0 1.5rem; }
.village-footer-grid { display:grid; grid-template-columns:2fr 1fr 1fr; gap:4rem; }
.village-footer .village-mark { background:#edcf92; color:#26382e; border:0; }
.village-footer h2 { font-size:2.8rem; max-width:17ch; margin-block:1.5rem; }
.village-footer h3 { font:700 .85rem var(--body); margin-bottom:1.5rem; }
.village-footer p { max-width:40ch; color:#d7e4da; font-size:.85rem; }
.village-footer nav a { display:block; color:#fff; font-size:.87rem; padding-block:.45rem; }
.village-footer-bottom { border-top:1px solid #527063; display:flex; justify-content:space-between; margin-top:3rem; padding-top:1.5rem; font-size:.75rem; }
@media(max-width:1100px) { .village-main-nav { display:none; } .village-contact { margin-inline-start:auto; } .village-mobile-nav { display:block; border-top:1px solid var(--line); padding-block:.8rem; } .village-mobile-nav summary { display:flex; justify-content:space-between; cursor:pointer; font-weight:700; } .village-mobile-nav nav { display:grid; gap:1rem; padding-block:1rem; } .village-page-grid { grid-template-columns:minmax(0,1fr) 14rem; gap:2rem; } }
@media(max-width:800px) { .village-commons .shell { width:calc(100% - 2.5rem); } .village-commons .hero-component-grid,.village-commons .image-text-grid { grid-template-columns:1fr; gap:2rem; } .village-commons .hero-component h1 { font-size:3.5rem; max-width:17ch; } .village-commons .hero-component figure { min-height:22rem; height:55vw; } .village-commons :is(.event-list,.project-grid,.article-list,.service-list) { grid-template-columns:1fr; } .village-page-grid { grid-template-columns:1fr; } .village-page-content .shell,.village-sidebar .shell { width:100%; } .village-sidebar { position:static; } .village-footer-grid { grid-template-columns:1fr 1fr; gap:2rem; } .village-footer-grid > div { grid-column:1/-1; } .village-utility .shell { flex-wrap:wrap; gap:.6rem; } }
@media(max-width:480px) { .village-brand { font-size:1.25rem; } .village-masthead { gap:.7rem; flex-wrap:wrap; padding-block:1rem; } .village-contact { font-size:.72rem; padding:.7rem !important; } .village-commons .hero-component { padding-block:2rem; } .village-commons .hero-component h1 { font-size:3.1rem; } .village-page-content :is(.event-list,.project-grid,.article-list,.service-list,.feature-grid,.stats-grid) { grid-template-columns:1fr; } .village-commons .cta-section { margin:1rem; } .village-page-content .cta-section { margin:1rem 0; } .village-commons .lead-form { padding:1.2rem; } }
@media(prefers-reduced-motion:reduce) { .village-commons *, .village-commons *::before, .village-commons *::after { animation:none; transition:none; scroll-behavior:auto; } }

/* A landscape backdrop welcomes visitors without the split photo frame. */
.village-commons .hero-component.hero-immersive.has-image { position:relative; isolation:isolate; overflow:hidden; padding:0; min-height:clamp(34rem,78svh,56rem); background:#1c3029; color:#fff; }
.village-commons .hero-component.hero-immersive.has-image .hero-component-grid { display:flex; position:static; z-index:auto; min-height:inherit; align-items:center; padding-block:clamp(4rem,8vw,7rem); }
.village-commons .hero-component.hero-immersive.has-image .hero-copy { position:relative; z-index:1; min-width:0; width:100%; max-width:58rem; }
.village-commons .hero-component.hero-immersive.has-image figure { position:absolute; inset:0; z-index:-2; display:block; width:100%; height:100%; min-height:0; max-height:none; margin:0; border-radius:0; box-shadow:none; }
.village-commons .hero-component.hero-immersive.has-image figure img { width:100%; height:100%; object-fit:cover; }
.village-commons .hero-component.hero-immersive.has-image figcaption { display:none; }
.village-commons .hero-component.hero-immersive.has-image::after { content:""; position:absolute; inset:0; z-index:-1; pointer-events:none; background:linear-gradient(90deg,rgb(18 43 33 / .9),rgb(18 43 33 / .79) 60%,rgb(18 43 33 / .67)); }
.village-commons .hero-component.hero-immersive.has-image :is(h1,.eyebrow,.hero-summary,.text-link,.text-link span) { color:#fff; }
.village-commons .hero-component.hero-immersive.has-image h1 { overflow-wrap:anywhere; }
.village-commons .hero-component.hero-immersive.has-image .button-row { flex-wrap:wrap; }
.village-commons .hero-component.hero-immersive.has-image .button { background:#e4ba68; border-color:#e4ba68; color:#1c3029; }
.village-commons .hero-component.hero-immersive.has-image :is(.button,.text-link):focus-visible { outline:3px solid #fff; outline-offset:5px; }
/* eyivo:faq presentation */
.village-commons .faq-section{background:color-mix(in srgb,var(--accent-2,var(--accent)) 10%,var(--paper))}
.village-commons .faq-layout{display:grid;gap:1rem;grid-template-columns:1fr}
.village-commons .faq-list{border:0;display:grid;gap:1rem;grid-template-columns:repeat(2,minmax(0,1fr))}
.village-commons .faq-list details{background:var(--surface);border:1px solid var(--line);box-shadow:0 1px 0 var(--ink);padding:1.1rem 1rem 1rem;position:relative}
.village-commons .faq-list details::before{background:color-mix(in srgb,var(--accent) 55%,#fff);content:"";height:.55rem;inset-inline-start:1.2rem;position:absolute;top:-.28rem;transform:rotate(-2deg);width:3.2rem}
.village-commons .faq-list summary{cursor:pointer;display:flex;font-weight:800;list-style:none;padding-top:.35rem}
.village-commons .faq-list summary::-webkit-details-marker{display:none}
.village-commons .faq-list summary span{color:var(--accent);margin-inline-start:auto}
.village-commons .faq-list details[open] summary span{transform:rotate(45deg)}
.village-commons .faq-list details p{margin:.5rem 0 0}
@media(max-width:720px){.village-commons .faq-list{grid-template-columns:1fr}}

/* Keep subpage panels inset within the narrower content column. */
.village-commons .village-page-content :is(.event-section,.faq-section) { padding:clamp(1.25rem,3vw,2.5rem); border:1px solid var(--line); border-radius:var(--radius); }
.village-page-content .faq-section { margin-block-start:1.5rem; }
.village-page-content .faq-layout { gap:1.75rem; }
.village-page-content .faq-layout > div > .eyebrow:empty { display:none; }
.village-page-content .faq-section h2 { font-size:clamp(1.65rem,2.6vw,2.25rem); max-width:25ch; }
.village-page-content .faq-list { grid-template-columns:1fr; gap:.85rem; }
.village-page-content .faq-list details { padding:0; border:1px solid var(--line); border-radius:.4rem; box-shadow:none; }
.village-page-content .faq-list details::before { content:none; }
.village-page-content .faq-list summary { align-items:center; gap:1rem; padding:1.1rem 1.25rem; font-size:.95rem; line-height:1.5; }
.village-page-content .faq-list summary span { display:grid; place-items:center; flex:0 0 1.8rem; height:1.8rem; border-radius:50%; background:var(--surface-2); font-size:1.2rem; line-height:1; }
.village-page-content .faq-list details[open] { border-color:var(--accent); }
.village-page-content .faq-list details p { margin:0; padding:0 1.25rem 1.15rem; color:var(--muted); font-size:.95rem; line-height:1.7; }
