:root{--ink:#123b3f;--text:#263b3c;--muted:#586966;--paper:#faf9f6;--white:#fff;--line:#daddd5;--copper:#9b5a38;--wash:#eceee7;--serif:Georgia,'Times New Roman',serif;--sans:Arial,Helvetica,sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:110px}body{margin:0;color:var(--text);background:var(--paper);font:16px/1.65 var(--sans);-webkit-font-smoothing:antialiased}body,button,input,select,textarea{font-family:var(--sans)}a{color:inherit}img{display:block;max-width:100%;height:auto}figure{margin:0}h1,h2,h3,p{margin-top:0}h1,h2,h3{color:var(--ink);font-weight:400}h1,h2{font-family:var(--serif);line-height:1.12;letter-spacing:-.045em}h1{font-size:clamp(2.5rem,5.2vw,5.25rem);margin-bottom:28px}h2{font-size:clamp(2rem,3.25vw,3.2rem);margin-bottom:24px}h3{font-size:1.3rem;line-height:1.35}em{font-weight:400;color:var(--copper)}p{margin-bottom:22px}.wrap{width:min(1280px,calc(100% - 100px));margin-inline:auto}.small{font-size:.875rem;line-height:1.65;color:var(--muted)}.eyebrow{font:600 .75rem/1.5 var(--sans);text-transform:uppercase;letter-spacing:.15em;color:var(--copper);margin-bottom:25px}.skip{position:fixed;left:12px;top:-80px;padding:12px;background:var(--ink);color:white;z-index:100}.skip:focus{top:12px}:focus-visible{outline:3px solid #9b5a38;outline-offset:5px}::selection{background:#d4e2da;color:var(--ink)}.topline{background:var(--ink);color:#f4f3ee;font-size:.75rem;letter-spacing:.02em}.topline .wrap{display:flex;justify-content:space-between;padding-block:9px}.header{position:sticky;top:0;z-index:30;background:rgba(250,249,246,.98);border-bottom:1px solid var(--line)}.header-inner{height:98px;display:flex;align-items:center;gap:30px}.brand{width:240px;height:78px;overflow:hidden;display:flex;align-items:center;flex-shrink:0}.brand img{width:240px;max-width:none}.desktop-nav{display:flex;justify-content:center;align-items:center;gap:28px;margin-left:auto}.desktop-nav a{text-decoration:none;font-size:.875rem;white-space:nowrap}.desktop-nav a:hover{color:var(--copper)}.button{display:inline-flex;align-items:center;justify-content:space-between;gap:32px;min-height:52px;padding:14px 24px;background:var(--ink);color:white;border:1px solid var(--ink);font-size:.875rem;line-height:1.5;cursor:pointer;text-decoration:none;transition:background .18s}.button:hover{background:#215257}.button span{font-size:1.25rem;line-height:1}.button.light{background:#f4f2eb;color:var(--ink);border-color:#f4f2eb}.button.light:hover{background:#e3e6dc}.mobile-menu{display:none}.hero{display:grid;grid-template-columns:44% 56%;padding-block:48px 60px;gap:0;align-items:stretch}.hero-copy{padding:40px 38px 20px 0;align-self:center}.hero h1{font-size:clamp(3.5rem,5.65vw,5.6rem);line-height:1.04;letter-spacing:-.055em;margin-bottom:30px}.hero-lead{font-size:1.08rem;max-width:390px;line-height:1.75;margin-bottom:30px}.hero-photo{height:570px;overflow:hidden;background:#dde4de;position:relative}.hero-photo:before{content:'';position:absolute;left:0;top:0;width:8px;height:84px;background:var(--copper);z-index:1}.hero-photo img{width:100%;height:100%;object-fit:cover;object-position:60% 50%}.hero-foot{display:flex;gap:18px;align-items:center;margin-top:40px}.hero-foot p{font-size:.825rem;margin:0;color:var(--muted)}.fine-line{width:46px;height:1px;background:var(--copper)}.under-link{display:block;width:fit-content;font-size:.875rem;margin-top:18px;text-underline-offset:5px}.signature-bar{border-block:1px solid var(--line)}.signature-bar .wrap{display:flex;justify-content:space-between;gap:24px;padding-block:23px;color:var(--muted);font-size:.875rem}.section{padding-block:100px}.section.compact{padding-top:25px;padding-bottom:80px}.section-heading{display:flex;align-items:end;justify-content:space-between;gap:60px;margin-bottom:45px}.section-heading h2{margin:0}.section-heading>p{max-width:400px;color:var(--muted);margin:0}.section-heading>.text-link{flex-shrink:0}.service-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border-left:1px solid var(--line);border-top:1px solid var(--line)}.service-card{padding:30px 34px 28px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);position:relative;transition:background .2s}.service-card:hover{background:#efeee7}.service-number{font:italic 1.2rem var(--serif);color:var(--copper);display:block;margin-bottom:23px}.service-card h3{font-family:var(--serif);font-size:1.75rem;margin-bottom:13px;letter-spacing:-.025em}.service-card h3 a{text-decoration:none}.service-card p{font-size:.95rem;color:var(--muted);max-width:300px;margin-bottom:22px}.text-link{font-size:.875rem;font-weight:600;text-decoration:none;display:inline-block;padding-block:7px;border-bottom:1px solid currentColor}.text-link:hover{color:var(--copper)}.editorial{background:var(--wash);padding-block:80px}.editorial-grid{display:grid;grid-template-columns:43% 1fr;gap:90px;align-items:center}.editorial figure{height:570px}.editorial img{width:100%;height:100%;object-fit:cover}.editorial h2{line-height:1.16}.editorial-grid>div>p:not(.eyebrow){max-width:560px;color:var(--muted)}.project-options{border-top:1px solid #c7ccc3;margin-top:34px}.project-options details,.faq details{border-bottom:1px solid #c7ccc3;padding-block:20px}.project-options summary,.faq summary{list-style:none;cursor:pointer;color:var(--ink);font-size:1rem;padding-right:25px;position:relative}.project-options summary:after,.faq summary:after{content:'+';position:absolute;right:0;top:0}.project-options details[open] summary:after,.faq details[open] summary:after{content:'−'}.project-options summary::-webkit-details-marker,.faq summary::-webkit-details-marker{display:none}.project-options details p{margin:18px 0 10px;font-size:.95rem}.materials-home{background:var(--ink);color:#fff}.materials-home h2,.materials-home h3{color:#fff}.materials-home .eyebrow{color:#d8b795}.materials-home .text-link{color:#fff}.material-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:50px;padding-top:10px}.material-grid article{border-top:1px solid #5b7775;padding-top:25px}.material-index{font-size:.75rem;letter-spacing:.12em;color:#d8b795}.material-grid h3{font-family:var(--serif);font-size:2.5rem;margin:22px 0 15px}.material-grid p{font-size:1rem;color:#d6dfda;margin:0}.steps{display:grid;grid-template-columns:repeat(4,1fr);gap:35px;list-style:none;padding:0;margin:55px 0 0}.steps li{border-top:1px solid var(--line);padding-top:25px}.steps li>span{font:italic 1.5rem var(--serif);color:var(--copper)}.steps h3{margin:22px 0 13px;font-weight:600;font-size:1rem}.steps p{font-size:.925rem;color:var(--muted);margin:0}.local-section{background:#e8ece5;padding-block:80px}.local-grid{display:grid;grid-template-columns:1fr 1fr;gap:90px;align-items:center}.local-grid p{max-width:500px}.department-links{display:flex;gap:28px;margin-top:34px;flex-wrap:wrap}.department-links a{display:flex;align-items:center;gap:10px;text-decoration:none;font-size:.9rem}.department-links b{font:italic 1.8rem var(--serif);color:var(--copper)}.town-search{position:relative;padding:30px;background:var(--white);border:1px solid var(--line)}.town-search label{display:block;font-size:.925rem;margin-bottom:14px;font-weight:600}.search-field{display:flex;align-items:center;gap:12px;border-bottom:1px solid var(--ink)}.search-field svg{fill:none;stroke:var(--ink);stroke-width:1.5;width:21px;height:21px;flex-shrink:0}.search-field input{border:0;width:100%;background:none;min-height:48px;padding:10px 0;font-size:1rem;color:var(--ink)}.search-status{margin:13px 0 0}.town-results{padding:0;list-style:none;margin:15px 0 0;border-top:1px solid var(--line);max-height:300px;overflow:auto}.town-results a{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:12px 5px;border-bottom:1px solid var(--line);text-decoration:none;font-size:.95rem}.town-results a:hover{background:var(--wash)}.town-results small{font-size:.8rem;color:var(--muted);white-space:nowrap}.local-grid>.town-search+.text-link{margin-top:20px}.local-grid>div>.text-link{margin-top:18px}.closing{padding-block:75px;background:var(--ink);color:#f5f5ef}.closing-inner{display:flex;align-items:center;justify-content:space-between;gap:70px}.closing .eyebrow{color:#d8b795}.closing h2{color:white;margin:0}.closing p{color:#dbe4de}.closing .button{min-width:230px}footer{background:#f0efe8;padding-top:66px}footer a{text-decoration:none}footer a:hover{color:var(--copper)}.footer-grid{display:grid;grid-template-columns:1.35fr 1fr 1fr 1fr;gap:50px;padding-bottom:58px}.footer-brand{font-size:1.85rem;letter-spacing:.07em;color:var(--ink);line-height:1.2;margin-bottom:25px}.footer-brand span{display:block;font-size:.7rem;letter-spacing:.45em;margin-top:9px}.footer-grid>div>p:not(.footer-brand){font-size:.875rem;color:var(--muted)}.footer-grid nav h2{font:600 .875rem var(--sans);letter-spacing:0;margin:0 0 20px}.footer-grid nav a{display:block;font-size:.825rem;margin-bottom:10px;color:var(--muted)}.footer-bottom{display:flex;justify-content:space-between;gap:20px;border-top:1px solid var(--line);font-size:.75rem;padding-block:22px;color:var(--muted)}.breadcrumb{display:flex;flex-wrap:wrap;gap:10px;font-size:.8125rem;padding-top:25px;color:var(--muted)}.breadcrumb a{text-underline-offset:3px}.page-hero{padding-block:65px 60px}.page-hero h1{max-width:1020px;overflow-wrap:break-word}.lead{font-size:1.15rem;line-height:1.8;max-width:790px;color:var(--muted)}.page-hero .button{margin-top:12px}.reading-grid{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:100px;align-items:start;padding-bottom:90px}.article{max-width:800px}.article h2{font-size:1.9rem;letter-spacing:-.025em;margin-top:36px;margin-bottom:20px}.article h2:first-child{margin-top:0}.article p{line-height:1.9;color:#465c59}.article ul{padding-left:22px}.article li{margin-bottom:12px}.aside{border-left:1px solid var(--line);padding-left:28px}.aside h2{font:600 .925rem var(--sans);letter-spacing:0;margin:30px 0 15px}.aside h2:first-child{margin-top:0}.aside a{display:block;padding:12px 0;border-bottom:1px solid var(--line);text-decoration:none;font-size:.9rem}.aside a:hover{color:var(--copper)}.aside .eyebrow{margin-top:0}.checklist{list-style:none;padding:0!important;margin-block:25px}.checklist li{padding:12px 0 12px 24px;border-bottom:1px solid var(--line);position:relative}.checklist li:before{content:'—';position:absolute;left:0;color:var(--copper)}.faq p{margin:18px 0 0}.table-scroll{overflow-x:auto;margin-bottom:35px;border:1px solid var(--line)}table{border-collapse:collapse;width:100%;min-width:750px;font-size:.925rem}caption{text-align:left;padding:20px;font-weight:600;font-size:1rem}thead{background:var(--ink);color:white}th,td{text-align:left;vertical-align:top;padding:20px;border-bottom:1px solid var(--line);width:25%}tbody th{font-weight:600;color:var(--ink);background:#efeee7}tbody tr:nth-child(even) td{background:#f1f3ed}.callout{padding:35px;background:var(--wash);margin-top:35px}.callout h2{font-size:1.8rem}.callout p:last-child{margin-bottom:0}.guide-grid{display:grid;grid-template-columns:1fr 1fr;gap:28px}.guide-card{padding:38px;border:1px solid var(--line)}.guide-card h2{font-size:2.1rem}.guide-card h2 a{text-decoration:none}.guide-card p:not(.eyebrow){color:var(--muted)}.sources{padding:24px;background:var(--wash);margin-top:40px}.sources h2{font-size:1.3rem}.sources p{font-size:.875rem;margin-bottom:12px}.directory-search{max-width:720px;margin-bottom:50px}.dept-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:25px}.dept-card{border:1px solid var(--line);padding:35px}.dept-card>span{font:italic 3rem var(--serif);color:var(--copper)}.dept-card h2{margin-top:25px;font-size:2.5rem}.dept-card h2 a{text-decoration:none}.dept-card p{font-size:.9rem;color:var(--muted)}.source-note{margin-top:35px}.city-list,.town-list{padding:0;list-style:none;display:grid;gap:0 30px;grid-template-columns:repeat(3,minmax(0,1fr));margin:30px 0 50px}.city-list a,.town-list a{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:54px;padding:12px 0;border-bottom:1px solid var(--line);text-decoration:none;line-height:1.4;font-size:.925rem}.city-list a:hover,.town-list a:hover{color:var(--copper)}.city-list small,.town-list small{font-size:.75rem;color:var(--muted);flex-shrink:0}.alphabet{display:flex;flex-wrap:wrap;gap:7px;margin:25px 0 45px}.alphabet a{display:flex;align-items:center;justify-content:center;min-width:42px;min-height:44px;border:1px solid var(--line);text-decoration:none;font-size:.875rem}.alphabet a:hover{background:var(--ink);color:white}.letter-section{scroll-margin-top:115px}.letter-section h2{font-size:2rem;padding-bottom:12px;border-bottom:2px solid var(--copper);width:40px;margin-bottom:0}.letter-section .town-list{margin-top:10px}.local-facts{border-block:1px solid var(--line);padding-block:28px}.local-facts dl{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:25px;margin:0}.local-facts dt{font-size:.75rem;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);margin-bottom:8px}.local-facts dd{font-size:.925rem;margin:0;color:var(--ink);overflow-wrap:break-word}.local-useful{padding-block:80px;background:var(--wash)}.mairie{padding:35px;background:white;border:1px solid var(--line)}.mairie h3{font:1.65rem var(--serif);margin-bottom:20px}.mairie p{font-size:.925rem}.project-layout{display:grid;grid-template-columns:33% minmax(0,1fr);gap:70px;padding-bottom:100px}.project-layout aside h2{font-size:2rem}.project-layout aside p{color:var(--muted);font-size:.95rem}.plain-steps{padding-left:20px;font-size:.925rem;margin-bottom:30px}.plain-steps li{padding-block:8px}.project-form{border:1px solid var(--line);background:white;padding:35px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:25px}.form-grid .full{grid-column:1/-1}.project-form label,.project-form legend{display:block;font-size:.875rem;font-weight:600;color:var(--ink);margin-bottom:8px}.project-form label span,.project-form legend span{font-weight:400}.project-form input:not([type=checkbox]),.project-form select,.project-form textarea{width:100%;font-size:1rem;padding:13px;border:1px solid #b7c1ba;border-radius:0;background:var(--paper);color:var(--ink);min-height:49px}.project-form textarea{resize:vertical}.project-form fieldset{border:0;padding:0;margin:0}.choice-list{display:flex;flex-wrap:wrap;gap:8px}.choice-list label{font-size:.875rem;font-weight:400;display:flex;align-items:center;gap:9px;padding:9px 12px;border:1px solid var(--line);margin:0;cursor:pointer}.choice-list label:has(input:checked){background:#e8ece5;border-color:var(--ink)}.choice-list input{accent-color:var(--ink);width:17px;height:17px}.project-form .button{margin-top:27px}.form-note{margin-top:22px;margin-bottom:0}.project-summary{padding:20px;background:var(--wash);margin-top:25px}.project-summary h2{font:600 1rem var(--sans);margin-bottom:10px;letter-spacing:0}.project-summary p{font-size:.925rem;margin:0}.legal{padding-bottom:85px;margin-inline:auto}.legal h2:first-child{margin-top:0}[hidden]{display:none!important}
@media(min-width:1600px){.hero-photo{height:610px}}
@media(max-width:1150px){.wrap{width:calc(100% - 60px)}.header-inner{gap:20px}.desktop-nav{gap:18px}.brand,.brand img{width:205px}.header .button{padding:12px 17px;gap:18px}.hero{grid-template-columns:45% 55%}.hero-photo{height:535px}.hero-copy{padding-right:30px}.editorial-grid,.local-grid{gap:55px}.reading-grid{gap:55px}.footer-grid{gap:30px}}
@media(max-width:940px){.desktop-nav{display:none}.header-inner>.button{margin-left:auto}.mobile-menu{display:block}.mobile-menu summary{list-style:none;display:flex;gap:12px;align-items:center;cursor:pointer;min-height:48px;font-size:.875rem}.mobile-menu nav{position:absolute;top:98px;left:0;right:0;display:flex;flex-direction:column;background:var(--paper);padding:20px 30px;box-shadow:0 16px 22px #123b3f15;border-bottom:1px solid var(--line)}.mobile-menu nav a{padding:15px 0;border-bottom:1px solid var(--line);text-decoration:none}.hero h1{font-size:4.1rem}.hero-photo{height:515px}.hero-copy{padding-top:20px}.hero .eyebrow{font-size:.7rem}.hero-lead{font-size:1rem}.hero-foot{margin-top:28px}.service-card{padding:25px}.editorial-grid{gap:40px}.editorial figure{height:500px}.local-grid{gap:40px}.closing-inner{gap:40px}.steps{gap:20px}.reading-grid{grid-template-columns:minmax(0,1fr) 240px;gap:35px}.project-layout{grid-template-columns:1fr;gap:35px}.project-layout aside{max-width:700px}.footer-grid{grid-template-columns:repeat(2,1fr);gap:35px 60px}.city-list,.town-list{grid-template-columns:repeat(2,minmax(0,1fr))}.dept-card{padding:25px}}
@media(max-width:700px){html{scroll-padding-top:85px}.wrap{width:calc(100% - 40px)}.topline .wrap{justify-content:center;padding-block:7px}.topline span:first-child{display:none}.topline span:last-child{font-size:.7rem}.header-inner{height:76px;gap:17px}.brand{width:175px;height:64px}.brand img{width:175px}.header-inner>.button{display:none}.mobile-menu{margin-left:auto}.mobile-menu nav{top:76px;padding:12px 20px}.hero{grid-template-columns:1fr;padding-block:28px 30px}.hero-copy{padding:10px 0 30px}.hero .eyebrow{margin-bottom:21px}.hero h1{font-size:3.6rem;line-height:1.02;margin-bottom:24px}.hero-lead{font-size:1rem;max-width:350px;margin-bottom:24px}.hero-foot{display:none}.hero-photo{height:360px;margin-top:0}.hero-photo img{object-position:52% 50%}.hero .under-link{margin-top:15px}.signature-bar .wrap{flex-direction:column;gap:9px;padding-block:20px;font-size:.8125rem}.signature-bar span:before{content:'—';color:var(--copper);padding-right:12px}.section{padding-block:60px}.section-heading{display:block;margin-bottom:30px}.section-heading>p,.section-heading>.text-link{margin-top:25px}.eyebrow{margin-bottom:20px}h2{font-size:2.15rem;letter-spacing:-.04em}.service-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.service-card{padding:22px 18px}.service-card h3{font-size:1.5rem;overflow-wrap:break-word}.service-card p{font-size:.875rem}.service-number{margin-bottom:19px}.service-card .text-link{font-size:.8125rem}.editorial{padding-block:45px}.editorial-grid{grid-template-columns:1fr;gap:40px}.editorial figure{height:400px}.editorial img{object-position:center 55%}.material-grid{grid-template-columns:1fr;gap:35px}.material-grid h3{margin:16px 0 12px;font-size:2.3rem}.steps{grid-template-columns:1fr 1fr;gap:32px 22px;margin-top:30px}.local-section,.local-useful{padding-block:55px}.local-grid{grid-template-columns:1fr;gap:35px}.town-search{padding:22px}.closing{padding-block:55px}.closing-inner{display:block}.closing-inner>div+div{margin-top:28px}.closing h2{font-size:2.2rem}.closing p{font-size:.95rem}.footer-grid{grid-template-columns:1fr 1fr;gap:35px 20px}.footer-grid>div{grid-column:1/-1}.footer-grid nav a{font-size:.825rem}.footer-grid nav h2{font-size:.8125rem}.footer-bottom{flex-direction:column;gap:8px}.breadcrumb{padding-top:20px;gap:7px;font-size:.75rem}.page-hero{padding-block:40px}.page-hero h1{font-size:2.8rem}.lead{font-size:1rem;line-height:1.8}.page-hero .button{max-width:100%;text-align:left;font-size:.825rem}.reading-grid{grid-template-columns:1fr;gap:35px;padding-bottom:55px}.article h2{font-size:1.8rem}.aside{padding:25px;border:1px solid var(--line);background:var(--wash)}.guide-grid,.dept-grid{grid-template-columns:1fr}.guide-card{padding:26px}.guide-card h2{font-size:1.9rem}.table-scroll{margin-inline:-5px}th,td{padding:17px}.callout{padding:25px}.directory-search{margin-bottom:35px}.city-list,.town-list{grid-template-columns:1fr;gap:0;margin-block:20px 35px}.city-list a,.town-list a{font-size:.925rem}.local-facts dl{grid-template-columns:1fr 1fr;gap:25px}.mairie{padding:25px}.project-form{padding:23px}.form-grid{grid-template-columns:1fr;gap:22px}.project-layout{padding-bottom:60px}.project-form .button{font-size:.8125rem;padding:14px 17px;gap:18px}.choice-list label{font-size:.8125rem}.legal{padding-bottom:55px}.section.compact{padding-bottom:55px}.letter-section{scroll-margin-top:100px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}@media print{.header,.topline,footer,.closing,.project-layout aside,.button,.breadcrumb,.form-note{display:none!important}body{background:white;color:#000}.wrap{width:100%}.project-layout{display:block}.project-form{border:0}.page-hero{padding-block:20px}.project-form input,.project-form select,.project-form textarea{background:white!important}.choice-list label{break-inside:avoid}}

.admin-bar .header{top:32px}@media(max-width:782px){.admin-bar .header{top:46px}}

.admin-bar .header{top:32px}@media(max-width:782px){.admin-bar .header{top:46px}}@media(max-width:600px){.admin-bar .header{top:0}}
