:root{--green:#183f35;--ink:#263e35;--muted:#46584d;--paper:#faf9f5;--line:#dddeda;--accent:#d4bc7f}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:105px}body{margin:0;background:var(--paper);color:var(--ink);font-family:Arial,Helvetica,sans-serif;font-size:0.9rem;line-height:1.6}a{color:inherit;text-decoration:none}button,input{font:inherit}button,a,input{ -webkit-tap-highlight-color:transparent}button{cursor:pointer}button:focus-visible,a:focus-visible,input:focus-visible,summary:focus-visible{outline:3px solid #ab8436;outline-offset:5px}img{max-width:100%;display:block}h1,h2,h3,p{margin-top:0}h1,h2{font-family:Georgia,'Times New Roman',serif;font-weight:400;line-height:1.13;letter-spacing:-1.8px}h2{font-size:2.3rem;margin-bottom:20px}.wrap{width:min(1240px,calc(100% - 112px));margin:auto}.utility{background:var(--green);color:#e5ebe4;font-size:0.9rem;letter-spacing:1.4px;padding:9px 0}.utility .wrap{display:flex;justify-content:space-between}.utility i{margin:0 12px;font-style:normal;color:var(--accent)}header{background:var(--paper);position:sticky;top:0;z-index:10;border-bottom:1px solid #d7dcd3}.header{height:100px;display:flex;justify-content:space-between;align-items:center}.brand{display:flex;gap:14px;align-items:center}.brand img{width:51px;height:58px;object-fit:contain}.brand strong{font-family:Georgia,serif;font-size:1.5rem;line-height:1.1;font-weight:400}.brand small{display:block;font-size:0.9rem;letter-spacing:2.5px;margin-top:7px}nav{display:flex;align-items:center;gap:32px;font-size:0.9rem}nav>a:hover,.text-link:hover{color:#8b6c30}.nav-cta{border:1px solid #bdc6b9;padding:12px 18px}.nav-cta span{margin-left:24px}.menu{display:none}.hero{height:635px;position:relative;color:white;isolation:isolate}.hero-photo,.hero-shade{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 73%;z-index:-2}.hero-shade{z-index:-1;background:linear-gradient(90deg,rgba(12,34,26,.85),rgba(12,34,26,.45) 45%,rgba(12,34,26,.08)),linear-gradient(0deg,rgba(12,34,26,.35),transparent 40%)}.hero-content{padding-top:70px}.eyebrow{font-size:0.9rem;letter-spacing:2.4px;font-weight:bold;margin-bottom:20px}.eyebrow.light{color:#e2d6ad}.eyebrow.light span{display:inline-block;width:23px;height:1px;background:#d7c79a;vertical-align:middle;margin-right:10px}h1{font-size:3.3rem;margin-bottom:23px;line-height:1.07;max-width:730px}h1 em{color:#e1d1a6;font-weight:400}.hero-content>p:not(.eyebrow){font-size:0.9rem;color:#e6e8df;line-height:1.7}.button{display:inline-flex;align-items:center;gap:36px;padding:14px 21px;font-size:0.9rem;font-weight:bold;margin-top:13px}.cream{background:#f1ecdc;color:var(--green)}.button:hover{background:white}.hero-bottom{position:absolute;bottom:30px;left:0;right:0;display:flex;justify-content:space-between;align-items:center;font-size:0.9rem;letter-spacing:1.6px}.hero-bottom a{letter-spacing:0;font-size:0.9rem}.quick{display:grid;grid-template-columns:repeat(3,1fr);border-bottom:1px solid var(--line);padding:32px 0}.quick>a{display:flex;align-items:center;padding:0 30px;gap:18px;border-right:1px solid var(--line)}.quick>a:first-child{padding-left:0}.quick>a:last-child{border:0}.quick h2{font:400 1.0rem Georgia,serif;letter-spacing:-.4px;margin:0 0 6px}.quick p{font-size:0.9rem;color:var(--muted);margin:0}.icon{font-size:1.4rem;font-weight:400;color:#6c805d}.quick b{margin-left:auto;font-weight:400}.quick a:hover h2{text-decoration:underline}.section{padding-top:86px;padding-bottom:86px}.section-head{display:flex;align-items:end;justify-content:space-between;margin-bottom:32px}.section-head h2{margin-bottom:0}.section-head>p{font-size:0.9rem;color:var(--muted);margin-bottom:4px;line-height:1.8}.document-tools{display:flex;justify-content:space-between;align-items:center;gap:24px;margin-bottom:8px;border-bottom:1px solid var(--line);padding-bottom:20px}.tabs{display:flex;gap:5px;flex-wrap:wrap}.tabs button{border:0;background:transparent;color:var(--muted);padding:8px 12px;font-size:0.9rem;border-radius:3px}.tabs button.active{background:var(--green);color:white}.search{display:flex;border:1px solid var(--line);align-items:center;padding:7px 12px;gap:8px}.search input{border:0;background:transparent;width:170px;font-size:0.9rem;outline-offset:3px;color:var(--ink)}.search span{font-size:1.1rem}.doc-row{display:grid;grid-template-columns:84px 1fr 100px 30px;align-items:center;gap:22px;padding:25px 8px;border-bottom:1px solid var(--line)}.doc-date{font-size:0.9rem;color:var(--muted)}.doc-title{font-size:0.9rem;font-weight:500;line-height:1.5}.doc-row:hover{background:#f0f1e9}.doc-type{font-size:0.9rem;color:#5b6c60}.doc-arrow{font-size:1.0rem}.document-footer{display:flex;justify-content:space-between;align-items:center;margin-top:24px;color:var(--muted);font-size:0.9rem}.text-button{border:0;background:transparent;color:var(--green);font-size:0.9rem;padding:8px 0}.text-button span{margin-left:24px}.place{background:#e9ede3;padding:80px 0}.place-grid{display:grid;grid-template-columns:1.05fr 1fr;gap:85px;align-items:center}.place-image{position:relative}.place-image img{height:460px;width:100%;object-fit:cover;object-position:70% center}.place-image>span{position:absolute;bottom:20px;left:22px;color:white;font-size:0.9rem;letter-spacing:1.8px;text-shadow:0 1px 8px black}.place-copy>p:not(.eyebrow){color:#657365;font-size:0.9rem;max-width:410px}.text-link{display:flex;justify-content:space-between;border-bottom:1px solid #b6c1ac;padding:12px 0;font-size:0.9rem;max-width:310px;margin-top:24px}.place-caption{border-top:1px solid #cdd4c5;margin-top:42px;padding-top:20px;font-size:0.9rem;letter-spacing:1.5px;display:flex;justify-content:space-between;color:#68745f}.gallery{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}.gallery button{border:0;padding:0;background:transparent;text-align:left;color:var(--ink)}.gallery img{height:240px;object-fit:cover;width:100%;transition:filter .2s}.gallery button:hover img{filter:brightness(.88)}.gallery span{display:flex;justify-content:space-between;padding:16px 0;font:1rem Georgia,serif}.gallery b{font:1rem Arial}.team-section{background:#f0f0e9}.team{display:grid;grid-template-columns:repeat(3,1fr);gap:30px}.team img{width:100%;height:290px;object-fit:cover;object-position:top;background:#e3e4db}.team article>p{font-size:0.9rem;letter-spacing:1.5px;margin:22px 0 6px;color:var(--muted)}.team h3{font:1.05rem Georgia,serif}details{margin-top:40px;border-top:1px solid #cfd3c8;border-bottom:1px solid #cfd3c8}summary{list-style:none;cursor:pointer;padding:21px 0;font-size:0.9rem;display:flex;justify-content:space-between}summary::-webkit-details-marker{display:none}.assembly{display:grid;grid-template-columns:1fr 1fr;font-size:0.9rem;color:var(--muted);padding:14px 0}.assembly strong{color:var(--ink)}.contact{display:grid;grid-template-columns:1fr 1fr;gap:100px}.contact>div>p:not(.eyebrow){font-size:0.9rem;color:var(--muted)}.contact-phone{display:flex;justify-content:space-between;max-width:320px;font:1.6rem Georgia,serif;margin-top:28px}.contact small{display:block;font-size:0.9rem;color:var(--muted);margin:10px 0 20px}.email{font-size:0.9rem;overflow-wrap:anywhere}.hours{background:#e9ede3;padding:38px 40px;align-self:center}.hours h3{font:1.3rem Georgia,serif;margin:14px 0}.hours>div{display:flex;justify-content:space-between;border-bottom:1px solid #ccd4c4;padding:18px 0;font-size:0.9rem}.hours strong{font-weight:500}.hours .text-link{max-width:100%;font-size:0.9rem;border:0}footer{background:var(--green);color:#e4e9db;padding:45px 0 22px}.footer-top{display:flex;align-items:center;justify-content:space-between;padding-bottom:40px}.footer-top>p{font:1.0rem/1.5 Georgia,serif;margin:0;color:#ccd7c4}.footer-top>a:last-child{font-size:0.9rem}.footer-bottom{border-top:1px solid #456254;padding-top:20px;display:flex;justify-content:space-between;font-size:0.9rem;color:#bdcbbb}dialog{border:0;background:#f7f6ef;padding:12px;max-width:min(94vw,1000px)}dialog::backdrop{background:#0e241ce6}dialog img{max-height:80vh}dialog button{position:absolute;right:18px;top:18px;border:0;background:var(--paper);width:38px;height:38px;font-size:1.3rem}.skip{position:fixed;top:-100px;z-index:30;background:white;padding:15px}.skip:focus{top:0}[hidden]{display:none!important}@media(min-width:1500px){.hero{height:700px}.hero-content{padding-top:95px}}@media(max-width:1050px){.wrap{width:calc(100% - 64px)}nav{gap:20px}.document-tools{flex-wrap:wrap}.place-grid{gap:40px}.contact{gap:40px}.quick>a{padding:0 16px;gap:12px}.quick h2{font-size:0.9rem}.section-head>p{max-width:260px}.team img{height:250px}}@media(max-width:740px){.wrap{width:calc(100% - 40px)}.utility{font-size:0.9rem;letter-spacing:.7px}.utility i{margin:0 5px}.header{height:80px}.brand img{width:40px;height:48px}.brand strong{font-size:1.25rem}.brand small{font-size:0.9rem}.menu{display:flex;align-items:center;gap:16px;border:0;background:transparent;color:var(--ink);font-size:0.9rem}nav{display:none;position:absolute;top:80px;left:0;right:0;background:var(--paper);padding:24px;box-shadow:0 12px 18px #15322720;align-items:stretch}nav.open{display:flex;flex-direction:column;gap:20px}.hero{height:600px}.hero-content{padding-top:62px}.hero-photo{object-position:65% bottom}.hero-shade{background:linear-gradient(90deg,#102b20d9,#102b2055),linear-gradient(0deg,#102b2077,transparent)}h1{font-size:2.4rem;letter-spacing:-1.4px}.hero-content>p:not(.eyebrow){font-size:0.9rem}.hero-bottom{bottom:26px}.hero-bottom>span{display:none}.quick{grid-template-columns:1fr;padding:8px 0}.quick>a,.quick>a:first-child{padding:20px 5px;border-right:0;border-bottom:1px solid var(--line)}.quick h2{font-size:0.95rem}.quick .icon{width:30px}.quick p{font-size:0.9rem}.section{padding-top:56px;padding-bottom:56px}h2{font-size:1.8rem;letter-spacing:-1px}.section-head{display:block;margin-bottom:26px}.section-head>p{max-width:none;margin-top:20px}.document-tools{gap:15px}.tabs{gap:2px}.tabs button{padding:7px 9px}.search{width:100%}.search input{width:100%}.doc-row{grid-template-columns:1fr 24px;gap:5px 12px;padding:20px 0}.doc-date{grid-column:1;font-size:0.9rem}.doc-title{grid-column:1;font-size:0.9rem}.doc-type{grid-column:1}.doc-arrow{grid-column:2;grid-row:1/4}.place{padding:50px 0}.place-grid{grid-template-columns:1fr;gap:36px}.place-image img{height:320px}.place-caption{font-size:0.9rem}.gallery{grid-template-columns:1fr;gap:25px}.gallery img{height:260px}.gallery span{padding:12px 0}.team{grid-template-columns:1fr;gap:28px}.team img{height:330px;object-fit:cover}.team article>p{margin-top:16px}.team h3{margin-bottom:0}.assembly{grid-template-columns:1fr}.contact{grid-template-columns:1fr;gap:36px}.hours{padding:28px}.footer-top{flex-wrap:wrap;gap:30px}.footer-top>p{font-size:0.9rem}.footer-bottom{gap:20px;line-height:1.7}.eyebrow{font-size:0.9rem}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}

/* Consistent studio portraits: keep the full square composition on every screen. */
.team img{height:auto;aspect-ratio:1 / 1;object-fit:contain;object-position:center;background:#e3e7df}

/* Readability first: rem sizes respect browser preferences and the text control. */
html{font-size:125%;scroll-behavior:auto;scroll-padding-top:1rem}
body{font-size:1rem;line-height:1.65;overflow-wrap:break-word}
header{position:relative}
h1,h2,h3{letter-spacing:normal;overflow-wrap:anywhere}
h1{font-size:3.3rem;line-height:1.15}
h2{font-size:2.3rem;line-height:1.25}
p{max-width:65ch}
a{text-underline-offset:.2em;text-decoration-thickness:.08em}
a:hover{text-decoration:underline}
:where(button,a,input,select,summary):focus-visible{outline:3px solid #183f35;outline-offset:4px;box-shadow:0 0 0 7px #fff}
.skip{top:0;left:1rem;transform:translateY(-160%);font-size:1rem}
.skip:focus{transform:none}
main:focus{outline:none}
.utility{font-size:.9rem;letter-spacing:0;padding:10px 0}
.utility .wrap{flex-wrap:wrap;align-items:center;gap:8px 24px}
.utility a{display:inline-flex;align-items:center;min-height:48px;text-decoration:underline}
.reading-control{display:flex;flex-wrap:wrap;align-items:center;gap:10px;font-size:.9rem}
.reading-control select{font:inherit;padding:8px 12px;min-height:48px;background:#fff;color:var(--green);border:2px solid #fff;border-radius:4px;max-width:100%}
.header{height:auto;min-height:110px;gap:24px;flex-wrap:wrap;padding-top:20px;padding-bottom:20px}
.brand small{font-size:.8rem;letter-spacing:.06em}
.brand strong{font-size:1.7rem}
nav{font-size:1rem;flex-wrap:wrap;gap:12px 24px}
nav a{min-height:48px;display:flex;align-items:center;padding:8px 0;text-decoration:underline}
nav .nav-cta{padding:12px 18px;border:2px solid var(--green)}
.hero{height:auto;min-height:635px;padding-bottom:32px}
.hero-content{padding-top:60px;padding-bottom:30px}
.hero-content>p:not(.eyebrow){font-size:1.1rem;color:#fff}
.hero-shade{background:linear-gradient(90deg,rgba(12,34,26,.93),rgba(12,34,26,.78) 65%,rgba(12,34,26,.55))}
.eyebrow{font-size:.9rem;letter-spacing:.06em;line-height:1.6}
.button{font-size:1rem;min-height:56px;padding:16px 24px;gap:20px;text-decoration:underline}
.hero-bottom{position:static;flex-wrap:wrap;gap:20px;font-size:.9rem;letter-spacing:.03em}
.hero-bottom a{font-size:1rem;min-height:48px;display:inline-flex;align-items:center;text-decoration:underline}
.quick{gap:0}.quick>a{min-width:0;min-height:100px}
.quick h2{font-family:Arial,Helvetica,sans-serif;font-size:1.2rem;font-weight:700;line-height:1.4;text-decoration:underline}
.quick p{font-size:1rem}
.section-head{gap:32px;flex-wrap:wrap;align-items:start}
.section-head>p{font-size:1rem;max-width:32ch}
.document-tools{flex-wrap:wrap;align-items:start;gap:24px}
.tabs{gap:10px}.tabs button{font-size:.95rem;min-height:52px;padding:10px 16px;border:2px solid #6c7a6f;color:var(--green);background:#fff}
.tabs button.active{border-color:var(--green);font-weight:bold;text-decoration:underline;text-underline-offset:.2em;color:#fff;background:var(--green)}
.search{display:flex;flex-direction:column;align-items:stretch;gap:8px;border:0;padding:0;width:100%;max-width:30rem;font-weight:bold}
.search input{font-size:1rem;width:100%;min-height:56px;border:2px solid #6c7a6f;padding:12px;background:#fff;border-radius:3px}
.search input::placeholder{color:#526257;opacity:1}
.doc-row{grid-template-columns:7rem minmax(0,1fr) 10rem 30px;padding:24px 12px;gap:24px}
.doc-date,.doc-type{font-size:.9rem;color:var(--muted)}
.doc-title{font-size:1.1rem;font-weight:600;text-decoration:underline;text-underline-offset:.18em;overflow-wrap:anywhere}
.doc-arrow{font-size:1.2rem}
.document-footer{font-size:.95rem;flex-wrap:wrap;gap:20px}
.text-button{font-size:1rem;min-height:52px;border:2px solid var(--green);padding:10px 20px;border-radius:3px;text-decoration:underline}
.place-copy>p:not(.eyebrow){font-size:1rem;color:var(--muted);max-width:55ch}
.place-image>span{font-size:.9rem;letter-spacing:0;background:var(--green);padding:8px 12px;right:22px}
.text-link{font-size:1rem;max-width:none;min-height:52px;gap:16px;text-decoration:underline;border-color:#6c7a6f}
.place-caption{font-size:.9rem;color:var(--muted);letter-spacing:0;gap:16px;flex-wrap:wrap}
.gallery span{font:600 1.1rem/1.5 Arial,Helvetica,sans-serif;text-decoration:underline;gap:16px}
.team article>p{font-size:.9rem;letter-spacing:.03em;color:var(--muted)}
.team h3{font:600 1.2rem/1.5 Arial,Helvetica,sans-serif}
summary{font-size:1.1rem;min-height:56px;font-weight:bold;gap:20px;text-decoration:underline}
.assembly{font-size:1rem;gap:24px}
.contact>div>p:not(.eyebrow){font-size:1rem}
.contact-phone{max-width:none;font-size:1.8rem;min-height:56px;text-decoration:underline;gap:16px}
.contact small{font-size:.9rem}
.email{font-size:1rem;display:inline-flex;align-items:center;min-height:52px;text-decoration:underline;overflow-wrap:anywhere;max-width:100%}
.hours h3{font:600 1.3rem/1.4 Arial,Helvetica,sans-serif}
.hours>div{font-size:1rem;flex-wrap:wrap;gap:8px 20px}
.hours .text-link{font-size:1rem}
.footer-top{gap:32px;flex-wrap:wrap}
.footer-top>p{font-size:1.2rem}
.footer-top>a:last-child,.footer-bottom{font-size:.9rem}
.footer-top>a:last-child,.footer-bottom a{min-height:48px;display:inline-flex;align-items:center;text-decoration:underline}
.footer-bottom{flex-wrap:wrap;gap:16px;align-items:center}
dialog{padding:72px 16px 16px}dialog button{width:52px;height:52px;font-size:1.8rem;border:2px solid var(--green)}
.team article,.contact>div,.place-copy,.section-head>div{min-width:0}
@media(max-width:1100px){
.header{align-items:start}.menu{display:flex;align-items:center;gap:12px;font-size:1rem;min-height:52px;border:2px solid var(--green);padding:8px 16px;background:transparent;color:var(--green);margin-left:auto}
nav{display:none;position:static;flex-basis:100%;padding:16px 0;box-shadow:none;background:var(--paper)}nav.open{display:flex;flex-direction:column;gap:8px}nav a{width:100%}
.quick,.place-grid,.contact{grid-template-columns:1fr}
.quick>a,.quick>a:first-child{padding:22px 8px;border-right:0;border-bottom:1px solid var(--line)}
.quick>a:last-child{border-bottom:0}.place-grid,.contact{gap:40px}
.doc-row{grid-template-columns:minmax(0,1fr) 24px;gap:8px 16px}.doc-date,.doc-title,.doc-type{grid-column:1}.doc-arrow{grid-column:2;grid-row:1/4}
}
@media(max-width:740px){
.wrap{width:calc(100% - 32px)}.header{gap:16px}.brand img{width:40px}.brand{gap:10px}.brand small{font-size:.8rem}.brand strong{font-size:1.5rem}
h1{font-size:2.4rem}h2{font-size:1.8rem}.hero{min-height:0}.hero-content{padding-top:40px}.hero-content>p:not(.eyebrow){font-size:1.1rem}
.hero-bottom>span{display:none}.hero-bottom a{font-size:1rem}
.section-head>p{max-width:none}.search{max-width:100%}.section{padding-top:48px;padding-bottom:48px}
.hours{padding:24px}.contact-phone{font-size:1.6rem}.footer-top>p{font-size:1.2rem}.gallery,.team,.assembly{grid-template-columns:1fr}
}
html[data-text-size="150"],html[data-text-size="200"]{--large-text:1}
html[data-text-size="150"] .team,html[data-text-size="200"] .team,html[data-text-size="150"] .gallery,html[data-text-size="200"] .gallery{grid-template-columns:1fr}
html[data-text-size="200"] .place-grid,html[data-text-size="200"] .contact,html[data-text-size="200"] .quick{grid-template-columns:1fr}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
/* Allow labels and branding to reflow even at 200% text on a 320px screen. */
.brand,.brand>span,nav,nav a,.quick>a>div,.gallery span{min-width:0;max-width:100%;overflow-wrap:anywhere}
.brand img{flex-shrink:0}.brand strong{overflow-wrap:anywhere}
nav a{flex-wrap:wrap;gap:8px}.nav-cta span{margin-left:0}
.quick .icon,.quick b,.gallery b{flex-shrink:0}
/* A softer civic identity, retaining the readable default and large controls. */
:root{--paper:#fafbf7;--line:#dce3da;--green:#173f35;--header-height:110px}
html{scroll-padding-top:calc(var(--header-height) + 24px)}
header{position:sticky;top:0;z-index:20;background:rgba(250,251,247,.97);box-shadow:0 4px 24px #173f3508;border-bottom:1px solid #173f3512}
.header{min-height:96px;padding-top:14px;padding-bottom:14px;align-items:center}
header nav a{text-decoration:none;font-weight:500;border-radius:999px;padding:10px 4px}
header nav a:hover{color:var(--green);text-decoration:underline;text-underline-offset:8px}
header nav .nav-cta{background:var(--green);color:white;border:0;padding:12px 22px}
.utility{background:#e8eee5;color:var(--green);padding:8px 0}.utility .wrap{gap:8px 18px}
.utility a{text-decoration:none}.reading-control select{border:1px solid #7d8e7d;border-radius:12px;background:transparent}
h1,h2{letter-spacing:-.035em}h2{font-size:2.4rem}.eyebrow{font-weight:600;letter-spacing:.08em}
.hero{margin:16px 20px 0;border-radius:24px;overflow:hidden;min-height:650px;padding-bottom:28px}
.hero-content{padding-top:76px;padding-bottom:38px}.hero-content h1{max-width:820px}
.hero-shade{background:linear-gradient(90deg,#102b20e6,#102b2080 70%,#102b2055)}
.button{border-radius:999px;text-decoration:none;font-weight:600;padding:16px 26px}
.hero-bottom a{text-decoration:none}.hero-bottom a:hover{text-decoration:underline}
.quick{padding:32px 0;gap:16px;border:0}.quick>a,.quick>a:first-child,.quick>a:last-child{padding:24px;border:1px solid #dce3da;border-radius:18px;background:white;gap:16px;transition:background .18s,border-color .18s}
.quick>a:hover{background:#edf2e9;border-color:#79927f;text-decoration:none}.quick h2{font-size:1.1rem;font-weight:600;text-decoration:none}.quick p{font-size:.9rem}.quick .icon{color:var(--green)}
.section{padding-top:76px;padding-bottom:76px}.section-head{align-items:end}
.document-tools{border:0;gap:24px;margin-bottom:24px}.tabs{gap:8px}.tabs button{border:1px solid #829381;border-radius:999px;padding:10px 18px;background:transparent;font-weight:500;transition:background .18s}
.tabs button.active{text-decoration:none;font-weight:600}.tabs button:hover:not(.active){background:#e5ecdf}
.search{font-weight:500;gap:10px;max-width:32rem}.search input{border:1px solid #829381;border-radius:14px;padding:14px 18px;font-weight:400;background:white}
.doc-list{background:white;border:1px solid var(--line);border-radius:20px;overflow:clip}.doc-row{padding:26px 24px}.doc-row:last-child{border-bottom:0}.doc-title{font-weight:500;text-decoration:none}.doc-row:hover .doc-title{text-decoration:underline}.doc-arrow{width:44px;height:44px;border-radius:50%;background:#edf2e8;display:grid;place-items:center}
.doc-row{grid-template-columns:7rem minmax(0,1fr) 10rem 44px}.doc-type{font-size:.85rem}
.text-button{border-radius:999px;border-width:1px;text-decoration:none;background:#fff;padding:12px 24px}
.place{background:#edf1e8;margin:0 20px;border-radius:28px;padding:72px 0}.place-image img{height:auto;aspect-ratio:1/1;object-fit:cover;border-radius:20px;object-position:65% center}.place-image>span{border-radius:10px;font-size:.8rem}
.text-link{text-decoration:none;font-weight:500}.text-link:hover{text-decoration:underline}
.gallery{gap:24px;align-items:start}.gallery button{min-width:0;border-radius:18px}.gallery img{width:100%;height:auto;aspect-ratio:4/3;object-fit:cover;border-radius:18px}.gallery span{font-weight:500;text-decoration:none;font-size:1.1rem;padding:18px 4px}.gallery button:hover span{text-decoration:underline}
.team-section{background:#edf1e8;margin:0 20px;border-radius:28px}.team{gap:32px}.team img{width:100%;height:auto;aspect-ratio:1;object-fit:contain;border-radius:20px;max-width:340px}
.team-info{padding-top:18px}.team-info>p{font-size:.9rem;letter-spacing:.035em;color:var(--muted);margin:0 0 6px}.team h3{font-size:1.15rem;font-weight:500;margin:0}.team article{min-width:0}
summary{text-decoration:none;font-weight:500}.hours{border-radius:22px;background:#edf1e8}.contact-phone{text-decoration:none}.email{text-decoration:underline;text-decoration-color:#7b907d}.contact{gap:64px}
footer{border-radius:28px 28px 0 0}.footer-top>a:last-child{text-decoration:none}
#mobile-navigation{inset:0;width:100%;max-width:none;height:100dvh;max-height:none;margin:0;padding:0;border:0;border-radius:0;background:var(--green);color:#f5f6ed;overflow:auto;overscroll-behavior:contain}
#mobile-navigation[open]{display:flex;flex-direction:column}
#mobile-navigation::backdrop{background:var(--green)}
.mobile-menu-top{display:flex;justify-content:space-between;align-items:start;gap:18px;padding:28px 24px 16px}
#mobile-menu-title{font:1.7rem/1.2 Georgia,serif;min-width:0;overflow-wrap:anywhere}#mobile-menu-title>span{display:block;font:.9rem/1.5 Arial,sans-serif;color:#d0ddce;margin-top:10px}
#mobile-navigation .close-menu{position:static;width:auto;height:auto;min-height:48px;flex-shrink:0;display:flex;align-items:center;gap:12px;padding:10px 16px;border:1px solid #829e87;border-radius:999px;background:transparent;color:#fff;font-size:.9rem}
.close-menu span{font-size:1.4rem;line-height:1}
.mobile-links{flex:1;display:flex;flex-direction:column;justify-content:space-evenly;padding:16px 24px;gap:8px}
.mobile-links a{display:grid;grid-template-columns:1.5rem minmax(0,1fr) 1.3rem;align-items:center;gap:14px;font:1.7rem/1.3 Georgia,serif;padding:18px 0;min-height:64px;border-bottom:1px solid #ffffff26;overflow-wrap:anywhere}
.mobile-links small{font:.8rem Arial,sans-serif;color:#d1dcbf}.mobile-links a>span{font:1.1rem Arial,sans-serif;color:#d1dcbf}
.mobile-menu-bottom{padding:24px;display:flex;flex-wrap:wrap;justify-content:space-between;gap:12px;border-top:1px solid #ffffff26;font-size:.9rem}.mobile-menu-bottom>a{min-height:48px;display:flex;align-items:center;text-decoration:underline}.mobile-menu-bottom>span{align-self:center;color:#d0ddce}
html.menu-open,html.menu-open body{overflow:hidden}
#mobile-navigation :focus-visible{outline-color:#e2d3a8;box-shadow:none;outline-offset:4px}
@media(max-width:1100px){
.header{min-height:84px;gap:16px;flex-wrap:nowrap}.menu{border:1px solid #79927f;border-radius:999px;padding:10px 18px;font-weight:500;min-height:50px;flex-shrink:0}
header nav,header nav.open{display:none}
.hero{min-height:0}.hero-content{padding-top:54px}.place-grid,.contact{gap:40px}
.doc-row{grid-template-columns:minmax(0,1fr) 44px}.doc-arrow{grid-column:2;grid-row:1/4}.doc-date,.doc-title,.doc-type{grid-column:1}
.quick{grid-template-columns:repeat(3,minmax(0,1fr))}.quick>a,.quick>a:first-child,.quick>a:last-child{flex-wrap:wrap;padding:20px}.quick>a>div{flex-basis:100%;order:2}.quick b{margin-left:auto}
}
@media(max-width:740px){
.wrap{width:calc(100% - 40px)}.utility .wrap>span{display:none}.utility .wrap{justify-content:space-between}.reading-control{gap:8px}.reading-control select{max-width:100%}
.header{min-height:80px;padding:12px 0}.brand img{width:36px;height:44px}.brand strong{font-size:1.35rem}.brand small{font-size:.8rem;letter-spacing:0}.brand{gap:10px}.menu{padding:8px 14px;min-height:48px;font-size:.9rem}
h1{font-size:2.3rem;line-height:1.16}h2{font-size:1.8rem}
.hero{margin:10px 10px 0;border-radius:20px;padding-bottom:20px}.hero .wrap{width:calc(100% - 36px)}.hero-content{padding-top:40px;padding-bottom:24px}.hero-content>p:not(.eyebrow){font-size:1rem}.hero-bottom a{font-size:.9rem}
.quick{grid-template-columns:1fr;gap:10px;padding:24px 0}.quick>a,.quick>a:first-child,.quick>a:last-child{flex-wrap:nowrap;padding:20px;min-height:94px}.quick>a>div{flex-basis:auto;order:0}.quick .icon{width:26px;flex-shrink:0}.quick h2{font-size:1.05rem}.quick p{font-size:.9rem}
.section{padding-top:52px;padding-bottom:52px}.section-head{margin-bottom:28px}.section-head>p{margin-top:18px}
.tabs{gap:8px}.tabs button{font-size:.9rem;padding:9px 14px;min-height:48px}.search input{font-size:1rem}.doc-row{padding:22px 18px;gap:6px 12px}.doc-title{font-size:1rem}.doc-date,.doc-type{font-size:.85rem}
.place,.team-section{margin:0 10px;border-radius:22px}.place{padding:40px 0}.place .wrap,.team-section .wrap{width:calc(100% - 32px)}.place-image img{aspect-ratio:4/3;height:auto;object-position:65% 75%}.place-image>span{position:static;display:block;background:transparent;color:var(--green);text-shadow:none;padding:14px 0 0;letter-spacing:0}
.gallery{grid-template-columns:1fr;gap:26px}.gallery img{height:auto;aspect-ratio:4/3;object-fit:cover}.gallery span{padding:14px 2px}
.team{grid-template-columns:1fr;gap:0}.team article{display:grid;grid-template-columns:112px minmax(0,1fr);align-items:center;gap:20px;padding:22px 0;border-bottom:1px solid #cfdbca}.team article:last-child{border:0}.team img{width:112px;height:112px;aspect-ratio:1;border-radius:16px;object-fit:contain}.team-info{padding:0}.team-info>p{font-size:.8rem;margin-bottom:7px;letter-spacing:0}.team h3{font-size:1.05rem;line-height:1.4}.team-section details{margin-top:26px}
.hours{padding:26px}.contact{gap:36px}.footer-top{gap:24px}
.mobile-menu-top{padding:24px 20px 12px}.mobile-links{padding:12px 24px}.mobile-menu-bottom{padding:20px 24px}
}
@media(max-width:370px){.wrap{width:calc(100% - 32px)}.header{gap:8px}.brand small{display:none}.brand img{width:30px}.brand strong{font-size:1.25rem}.menu{gap:8px;padding:8px 12px}.team article{grid-template-columns:92px minmax(0,1fr);gap:14px}.team img{width:92px;height:92px}.mobile-links a{font-size:1.5rem;gap:10px}.mobile-menu-top{gap:12px}#mobile-menu-title{font-size:1.35rem}}
html[data-text-size="150"] .header,html[data-text-size="200"] .header{flex-wrap:wrap}
html[data-text-size="150"] .team article,html[data-text-size="200"] .team article{grid-template-columns:1fr}
html[data-text-size="150"] .team img,html[data-text-size="200"] .team img{width:min(100%,180px);height:auto}
html[data-text-size="200"] .mobile-menu-top{flex-wrap:wrap}
html[data-text-size="200"] .mobile-links a{font-size:1.3rem}
@media(prefers-reduced-motion:reduce){*{transition:none!important}}
/* Screen density affects raster sharpness, not layout scale: use CSS viewport units. */
:root{--base-font:125%;--text-scale:1}
html{font-size:calc(var(--base-font) * var(--text-scale));-webkit-text-size-adjust:100%;text-size-adjust:100%}
.icon-sprite{position:absolute;width:0;height:0;overflow:hidden;pointer-events:none}
.icon-svg{display:inline-block;width:1.15em;height:1.15em;flex-shrink:0;vertical-align:-.18em;fill:none;stroke:currentColor;stroke-width:1.75;stroke-linecap:round;stroke-linejoin:round}
.icon .icon-svg{width:28px;height:28px;display:block}.quick .icon{width:28px;height:28px;display:grid;place-items:center}
.button>span,.nav-cta>span,.text-link>span,.quick b,.gallery b,.close-menu>span,.menu>span{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0}
.quick b .icon-svg,.gallery b .icon-svg{width:22px;height:22px}
.hero-content h1{max-width:15ch}.hero-content h1 em{font-style:italic}.hero-content>p:not(.eyebrow){max-width:38ch}
.section-head h2{max-width:20ch}.place-copy h2,.contact h2{max-width:18ch}
.hero-bottom a,.footer-top>a:last-child,.footer-bottom a,.mobile-menu-bottom a{display:inline-flex;align-items:center;gap:12px}
.mobile-links a>.icon-svg,.mobile-links a>span .icon-svg{width:24px;height:24px}
#lightbox>button{display:grid;place-items:center}
@media(max-width:740px){
:root{--base-font:118.75%}
.header{gap:12px;min-height:80px}.brand img{width:46px;height:49px}.brand strong{font-size:1.24rem;line-height:1.15}.brand small{display:block;font-size:.7rem;letter-spacing:.025em;line-height:1.3;margin-top:5px}.brand{gap:10px}
.menu{font-size:.9rem;padding:10px 13px;gap:9px;min-height:48px}.menu .icon-svg{width:20px;height:20px}
h1{font-size:2.18rem}h2{font-size:1.75rem}.hero-content h1{max-width:15ch}.hero-content>p:not(.eyebrow){max-width:38ch}
.hero-bottom a{font-size:.95rem}.quick h2{font-size:1.08rem}.quick p{font-size:.95rem}
.tabs button,.doc-date,.doc-type{font-size:.95rem}.team-info>p{font-size:.85rem}
}
@media(max-width:370px){:root{--base-font:115%}.header{gap:8px}.brand img{width:42px;height:45px}.brand strong{font-size:1.2rem}.brand small{display:block;font-size:.67rem}.brand{gap:8px}.menu{padding:9px 10px;gap:7px}}
/* Museum: one invitation, then a spacious, uncropped photo viewer. */
.museum-entry{display:block;width:100%;padding:0;border:0;background:#e9eee5;color:var(--ink);border-radius:24px;overflow:hidden;text-align:left;cursor:pointer}
.museum-entry>img{width:100%;height:auto;aspect-ratio:16/9;max-height:580px;object-fit:cover;object-position:center 55%;transition:filter .2s}
.museum-entry:hover>img{filter:brightness(.95)}
.museum-entry-caption{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:28px 32px}
.museum-entry-caption>span:first-child{display:grid;gap:8px;min-width:0}
.museum-entry-caption small{font-size:.85rem;letter-spacing:.07em;color:var(--muted)}
.museum-entry-caption strong{font:1.6rem/1.3 Georgia,serif;font-weight:400}.museum-entry-caption span span{font-size:1rem}
.album-open-icon{display:grid;place-items:center;width:56px;height:56px;flex-shrink:0;border-radius:50%;background:var(--green);color:white}
#lightbox{inset:0;width:calc(100vw - 48px);max-width:1500px;height:calc(100dvh - 48px);max-height:none;margin:auto;padding:0;border:0;border-radius:28px;background:#f5f7f1;color:var(--ink);overflow:hidden;box-shadow:0 24px 90px #071c1844}
#lightbox::backdrop{background:#102b21e8;backdrop-filter:blur(8px)}
.album-shell{height:100%;display:grid;grid-template-rows:auto minmax(0,1fr) auto;padding:20px 24px 12px;gap:12px}
.album-header{display:flex;align-items:center;justify-content:space-between;gap:20px;min-width:0}.album-header>div{min-width:0}
.album-header h2{font:1.25rem/1.3 Georgia,serif;letter-spacing:0;margin:0 0 4px}.album-header p{font-size:.85rem;color:var(--muted);margin:0}
#lightbox #close-lightbox,#mobile-navigation .close-menu{position:static;border:0;box-shadow:none;background:transparent;border-radius:50%;color:inherit;flex-shrink:0;min-width:48px;min-height:48px}
#lightbox #close-lightbox{display:grid;place-items:center;width:48px;height:48px;padding:10px;font-size:1.25rem}
#mobile-navigation .close-menu{border-radius:999px}
#lightbox #close-lightbox:hover{background:#e3eadd}#mobile-navigation .close-menu:hover{background:#ffffff15}
.album-stage{position:relative;min-width:0;min-height:0;display:flex;align-items:center;justify-content:center;border-radius:18px;overflow:hidden;background:#e9ede5;touch-action:pan-y pinch-zoom}
#lightbox #album-photo{display:block;width:100%;height:100%;max-width:100%;max-height:100%;object-fit:contain;object-position:center;border-radius:0;user-select:none}
.album-message{position:absolute;inset:auto 24px;text-align:center;max-width:none;color:var(--ink);font-size:1rem}
.album-footer{display:flex;align-items:center;justify-content:center;gap:24px;padding:0}.album-footer p{margin:0;font-size:.9rem;min-width:5rem;text-align:center;font-variant-numeric:tabular-nums}
#lightbox .album-footer button{position:static;width:48px;height:48px;display:grid;place-items:center;padding:12px;border:0;border-radius:50%;background:#e3eadd;color:var(--green);font-size:1rem}
#lightbox .album-footer button:hover{background:#d4dfcc}#album-prev .icon-svg{transform:rotate(180deg)}.album-footer button:disabled{opacity:.4;cursor:wait}
html.album-open,html.album-open body{overflow:hidden}
/* Quiet pointer states, and a borderless but visible keyboard focus treatment. */
a:focus,button:focus,input:focus,select:focus,summary:focus,[tabindex]:focus{outline:none;box-shadow:none}
a:focus-visible,summary:focus-visible{text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:.25em;background-color:#dfe9d7}
button:focus-visible{background-color:#d7e3cf;color:var(--green)}
.search input:focus-visible{background:#edf3e6}
.tabs button,.tabs button.active,.search input,.text-button,.menu{border-color:transparent}
.tabs button{background:#e9eee4}.tabs button.active{background:var(--green);color:white}.tabs button.active:focus-visible{background:#315e4d;text-decoration:underline}
.search input{background:#edf1e9}.menu{background:#edf1e9}
#mobile-navigation :focus-visible{outline:none;box-shadow:none;background:#ffffff18;color:white}
#lightbox button:focus-visible{outline:none;box-shadow:none;background:#c9d8bd}
.museum-entry:focus-visible .museum-entry-caption{background:#d7e3cf}.museum-entry:focus-visible strong{text-decoration:underline}
@media(max-width:740px){
.utility .wrap{justify-content:flex-end}.utility{padding:2px 0}
.museum-entry{border-radius:20px}.museum-entry>img{aspect-ratio:4/3;max-height:none}.museum-entry-caption{padding:22px 20px;gap:16px}.museum-entry-caption strong{font-size:1.35rem}.museum-entry-caption small{font-size:.8rem}.album-open-icon{width:48px;height:48px}
#lightbox{width:calc(100vw - 16px);height:calc(100dvh - 16px);border-radius:22px}
.album-shell{padding:14px 12px 8px;gap:10px}.album-header{gap:10px}.album-header h2{font-size:1.1rem}.album-header p{font-size:.8rem}.album-stage{border-radius:14px}.album-footer{gap:18px}
}
@media(max-height:450px){.album-shell{padding:8px 12px;gap:4px}.album-header p{display:none}.album-header h2{font-size:1rem}.album-footer{padding:0}#lightbox{height:calc(100dvh - 12px)}#lightbox .album-footer button,#lightbox #close-lightbox{height:44px;min-height:44px;width:44px}}
html{scroll-behavior:smooth}
header nav .nav-cta:hover,header nav .nav-cta:focus-visible{background:#285847;color:#fff;text-decoration:none}
#junta summary{align-items:center;padding:24px 0}
#junta summary h3{font:400 1.6rem/1.3 Georgia,serif;letter-spacing:-.02em;margin:0;color:var(--green)}
#junta details[open] summary .icon-svg{transform:rotate(45deg)}
@media(max-width:740px){#junta summary h3{font-size:1.4rem}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
/* Visiting gallery and complete contact details. */
.place-copy>.text-link{display:flex;margin-bottom:18px}.visit-carousel{border-radius:26px;background:#e9eee5;overflow:hidden}.visit-stage{height:clamp(300px,60vh,680px);display:flex;align-items:center;justify-content:center;touch-action:pan-y pinch-zoom}.visit-stage img{height:100%;width:100%;object-fit:contain}.visit-controls{display:flex;align-items:center;justify-content:center;gap:24px;padding:18px 20px 0}.visit-controls p{margin:0;min-width:5rem;text-align:center;font-variant-numeric:tabular-nums}.visit-controls button{border:0;border-radius:50%;width:48px;height:48px;background:var(--green);color:white;font-size:1.3rem}.visit-controls button:hover{background:#315e4d}.visit-hint{text-align:center;font-size:.85rem;margin:12px 16px 20px}.contact-label{margin:24px 0 0;font-size:.9rem;color:var(--muted)}.contact-address{margin:32px 0 24px}.contact-address h3{margin-bottom:10px}.contact-address address{font-style:normal}.contact-address p{font-size:.9rem;margin:12px 0}.facebook{display:inline-flex;margin-top:12px}.contact>.hours{align-self:start}.contact-form-card{grid-column:1/-1;padding:40px;border-radius:26px;background:#e9eee5;display:grid;grid-template-columns:1fr 2fr;gap:48px}.contact-form-card h3{font:400 1.8rem/1.2 Georgia,serif}.form-fields{display:grid;grid-template-columns:1fr 1fr;gap:20px}.form-fields label{display:grid;gap:8px;font-size:.95rem}.form-fields label span{display:contents}.form-fields input,.form-fields textarea{width:100%;min-width:0;border:0;border-radius:12px;padding:14px 16px;font:inherit;background:#fafbf7;color:var(--ink)}.form-fields textarea{resize:vertical;min-height:150px}.form-fields input:focus-visible,.form-fields textarea:focus-visible{outline:none;background:#fff;box-shadow:inset 0 -3px #557863}.form-wide{grid-column:1/-1}.form-note,#form-status{font-size:.85rem;margin:20px 0}.contact-form-card .button{background:var(--green);color:#fff;border:0;border-radius:999px}.contact-form-card .button:disabled{opacity:.55;cursor:not-allowed}#form-status a{text-decoration:underline}.form-trap{display:none}.footer-bottom{gap:20px}.visit-carousel:focus-visible{background:#dde7d6}
@media(max-width:740px){.visit-stage{height:clamp(280px,48svh,460px)}.contact-form-card{padding:24px 20px;grid-template-columns:1fr;gap:12px}.form-fields{grid-template-columns:1fr}.contact-form-card h3{font-size:1.5rem}.contact-address{margin-top:26px}.footer-bottom{flex-wrap:wrap}.mobile-links a{padding-top:12px;padding-bottom:12px}}
