:root{--bg: #f5f2ea;--bg-warm: #ede8dc;--ink: #1c2a23;--ink-soft: #4a5751;--forest: #2a4338;--forest-deep: #1a2e25;--moss: #6b8a72;--rust: #a8593d;--rust-soft: #c98a72;--line: #d8d1bf;--cream: #faf7ef;--gold: #d4a574}*{margin:0;padding:0;box-sizing:border-box}html{scroll-behavior:smooth}body{font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;background:var(--bg);color:var(--ink);line-height:1.55;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}img{max-width:100%;height:auto;display:block}a{color:var(--forest)}.display{font-family:Fraunces,Georgia,serif;font-weight:400;letter-spacing:-.02em;line-height:1.05}.container{max-width:1180px;margin:0 auto;padding:0 28px}.container-narrow{max-width:820px;margin:0 auto;padding:0 28px}.site-nav{padding:22px 0;border-bottom:1px solid var(--line);background:var(--bg);position:sticky;top:0;z-index:50}.nav-inner{display:flex;align-items:center;justify-content:space-between;gap:24px}.logo{font-family:Fraunces,Georgia,serif;font-size:22px;font-weight:500;letter-spacing:-.01em;color:var(--forest-deep);display:flex;align-items:center;gap:10px;text-decoration:none}.logo-mark{width:22px;height:22px;border-radius:50%;background:var(--forest);position:relative}.logo-mark:after{content:"";position:absolute;inset:5px;border-radius:50%;background:var(--bg)}.nav-links{display:flex;gap:28px;font-size:14px;color:var(--ink-soft)}.nav-links a{color:inherit;text-decoration:none;transition:color .2s}.nav-links a:hover{color:var(--forest)}.nav-right{display:flex;align-items:center;gap:16px}.nav-phone-cta{display:inline-flex;align-items:center;gap:8px;background:var(--forest);color:var(--cream);padding:10px 18px;border-radius:999px;font-size:14px;font-weight:500;text-decoration:none;white-space:nowrap;transition:background .18s}.nav-phone-cta:hover{background:var(--forest-deep)}.nav-phone-icon{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:50%;background:#ffffff24}.nav-secondary{font-size:14px;color:var(--ink-soft);text-decoration:none;padding:6px 0;border-bottom:1px solid transparent;background:none;border-top:none;border-left:none;border-right:none;cursor:pointer;font-family:inherit;transition:color .18s,border-color .18s}.nav-secondary:hover{color:var(--forest-deep);border-bottom-color:var(--forest-deep)}.menu-toggle{display:none;background:transparent;border:1px solid var(--line);border-radius:8px;padding:8px 12px;font-family:inherit;font-size:13px;color:var(--ink);cursor:pointer}.mobile-menu{display:none}@media(max-width:820px){.nav-links,.nav-secondary{display:none}}@media(max-width:480px){.nav-phone-cta .nav-phone-icon{display:none}.nav-phone-cta{padding:9px 14px;font-size:13px}}.hero{padding:64px 0 88px}.hero-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:64px;align-items:center}@media(max-width:900px){.hero-grid{grid-template-columns:1fr;gap:40px}.hero{padding:40px 0 56px}}.hero-with-map .hero-grid{grid-template-columns:1.1fr .9fr;gap:56px;align-items:center}.hero-with-map .area-map{max-width:440px;margin:0 0 0 auto}@media(max-width:900px){.hero-with-map .hero-grid{grid-template-columns:1fr;gap:32px}.hero-with-map .area-map{max-width:480px;margin-left:0}}.hero-photo{position:relative;overflow:hidden;padding:96px 0 112px;background-color:#0d1814;background-image:linear-gradient(95deg,#08120deb,#0d1814d9 35%,#0d18148c 58%,#0d181459),linear-gradient(180deg,#00000026,#0000 30% 70%,#0000004d),url(/images/rochester-aerial.jpg);background-size:auto,auto,cover;background-position:center,center,center 45%;background-repeat:no-repeat;isolation:isolate}.hero-photo .hero-grid-on-photo{position:relative}.hero-photo .hero-copy-on-photo{color:#fbf8f0;position:relative}.hero-photo .eyebrow-on-photo{color:#f1ede3;letter-spacing:.04em;font-weight:500}.hero-photo .eyebrow-on-photo .eyebrow-dot{background:var(--gold);width:7px;height:7px;box-shadow:0 0 0 4px #d4a5742e}.hero-photo h1.display-on-photo,.hero-photo p.display-on-photo{color:#fbf8f0;text-shadow:0 2px 24px rgba(0,0,0,.55),0 1px 2px rgba(0,0,0,.4)}.hero-photo h1.display-on-photo em,.hero-photo p.display-on-photo em{color:var(--gold);font-style:italic;text-shadow:0 2px 24px rgba(0,0,0,.55)}.hero-photo p.lede-on-photo{color:#f0ede3;max-width:560px;text-shadow:0 1px 12px rgba(0,0,0,.55)}.hero-photo .hero-meta-on-photo{color:#f0ede3;text-shadow:0 1px 8px rgba(0,0,0,.5)}.hero-photo .hero-meta-on-photo .check{background:var(--gold);color:var(--forest-deep);font-weight:600}@media(max-width:900px){.hero-photo{padding:56px 0 72px;background-image:linear-gradient(180deg,#08120de6,#0d1814bf,#0d1814e0),url(/images/rochester-aerial.jpg);background-size:auto,cover;background-position:center,center}}.eyebrow{display:inline-flex;align-items:center;gap:10px;font-size:13px;color:var(--ink-soft);letter-spacing:.02em;margin-bottom:24px}.eyebrow-dot{width:6px;height:6px;border-radius:50%;background:var(--rust)}h1.display,p.display{font-size:clamp(38px,5vw,60px);color:var(--forest-deep);margin-bottom:24px}h1 em,h2 em,p.display em{font-style:italic;color:var(--rust);font-weight:300}h1.page-h1{display:inline-flex;align-items:center;gap:10px;font-family:Inter,sans-serif;font-size:13px;font-weight:500;color:var(--ink-soft);letter-spacing:.08em;text-transform:uppercase;line-height:1.4;margin:0 0 20px}h1.page-h1 .eyebrow-dot{background:var(--rust);width:6px;height:6px;border-radius:50%;flex-shrink:0}h1.page-h1-on-photo{color:#f1ede3eb}h1.page-h1-on-photo .eyebrow-dot{background:var(--gold);width:7px;height:7px;box-shadow:0 0 0 4px #d4a5742e}.lede{font-size:18px;color:var(--ink-soft);max-width:520px;margin-bottom:32px}.hero-meta{margin-top:28px;display:flex;gap:24px;font-size:13px;color:var(--ink-soft);flex-wrap:wrap}.hero-meta-item{display:flex;align-items:center;gap:8px}.check{width:16px;height:16px;border-radius:50%;background:var(--moss);color:#fff;display:inline-flex;align-items:center;justify-content:center;font-size:10px}.form-card{background:var(--cream);border-radius:24px;padding:36px;border:1px solid var(--line);box-shadow:0 24px 48px -24px #1c2a2326}.form-card-label{font-size:11px;text-transform:uppercase;letter-spacing:.14em;color:var(--rust);margin-bottom:10px;font-weight:500}.form-card h2{font-family:Fraunces,Georgia,serif;font-size:26px;color:var(--forest-deep);margin-bottom:8px;letter-spacing:-.01em;font-weight:500;line-height:1.2}.form-card p.form-sub{font-size:14px;color:var(--ink-soft);margin-bottom:22px}.form-or{margin:18px 0;text-align:center;font-size:12px;color:var(--ink-soft);letter-spacing:.1em;text-transform:uppercase;position:relative}.form-or:before,.form-or:after{content:"";position:absolute;top:50%;width:30%;height:1px;background:var(--line)}.form-or:before{left:0}.form-or:after{right:0}.form-call{display:block;text-align:center;font-family:Fraunces,Georgia,serif;font-size:22px;color:var(--forest-deep);text-decoration:none;margin-bottom:6px;font-weight:500}.form-call-sub{text-align:center;font-size:12px;color:var(--ink-soft)}.field{margin-bottom:14px}.field label{display:block;font-size:12px;color:var(--ink-soft);margin-bottom:6px;font-weight:500}.field input,.field select,.field textarea{width:100%;padding:12px 14px;border:1px solid var(--line);border-radius:10px;background:#fff;font-family:inherit;font-size:15px;color:var(--ink);transition:border-color .2s}.field input:focus,.field select:focus,.field textarea:focus{outline:none;border-color:var(--forest)}.form-submit{width:100%;background:var(--forest);color:var(--cream);padding:16px 24px;border-radius:999px;border:none;font-family:inherit;font-size:15px;font-weight:500;cursor:pointer;margin-top:8px;transition:background .2s}.form-submit:hover{background:var(--forest-deep)}.form-fineprint{font-size:11px;color:var(--ink-soft);margin-top:14px;text-align:center}.section{padding:88px 0;border-top:1px solid var(--line)}.section-warm{background:var(--bg-warm);border-top:1px solid var(--line);padding:88px 0}.section-header{max-width:720px;margin-bottom:56px}.section-eyebrow{font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--rust);margin-bottom:16px;font-weight:500}h2.display{font-size:clamp(30px,3.6vw,44px);color:var(--forest-deep);margin-bottom:20px}.section-sub{font-size:17px;color:var(--ink-soft);max-width:640px}.two-col{display:grid;grid-template-columns:1fr 1fr;gap:64px;align-items:start}.two-col-centered{align-items:center}@media(max-width:820px){.two-col{grid-template-columns:1fr;gap:40px}}.prose{font-size:16.5px;color:var(--ink);line-height:1.7}.prose p{margin-bottom:20px}.prose p:last-child{margin-bottom:0}.prose strong{color:var(--forest-deep);font-weight:500}.prose h3{font-family:Fraunces,Georgia,serif;font-weight:500;font-size:22px;color:var(--forest-deep);margin:28px 0 10px;letter-spacing:-.01em}.figure{border-radius:20px;overflow:hidden;background:var(--bg-warm);border:1px solid var(--line)}.figure img{width:100%;height:100%;object-fit:cover;display:block}.figure-caption{font-size:12px;color:var(--ink-soft);margin-top:10px;padding:0 4px;font-style:italic}.figure-tall{aspect-ratio:4 / 5}.figure-square{aspect-ratio:1 / 1}.figure-wide{aspect-ratio:16 / 10}.figure-hero{aspect-ratio:4 / 5}.placeholder{width:100%;height:100%;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#ede8dc,#d8d1bf);color:var(--ink-soft);font-size:12px;letter-spacing:.06em;text-transform:uppercase;text-align:center;padding:24px}.areas-card{background:var(--cream);border:1px solid var(--line);border-radius:20px;padding:32px}.areas-card h3{font-family:Fraunces,Georgia,serif;font-size:22px;color:var(--forest-deep);margin-bottom:6px;font-weight:500;letter-spacing:-.01em}.areas-card .areas-sub{font-size:14px;color:var(--ink-soft);margin-bottom:20px}.areas-list{display:grid;grid-template-columns:1fr 1fr;gap:10px 18px;font-size:14px;color:var(--ink)}.areas-list a{display:flex;align-items:center;gap:8px;color:inherit;text-decoration:none;transition:color .2s}.areas-list a:hover{color:var(--forest)}.area-dot{width:4px;height:4px;border-radius:50%;background:var(--moss);flex-shrink:0}.steps{display:grid;grid-template-columns:repeat(3,1fr);gap:32px}@media(max-width:780px){.steps{grid-template-columns:1fr;gap:24px}}.step{padding-top:28px;border-top:1px solid var(--ink)}.step-num{font-family:Fraunces,Georgia,serif;font-size:14px;color:var(--rust);margin-bottom:16px}.step h3{font-family:Fraunces,Georgia,serif;font-weight:500;font-size:22px;color:var(--forest-deep);margin-bottom:12px;letter-spacing:-.01em}.step p{font-size:15px;color:var(--ink-soft)}.compare-section{background:var(--forest-deep);color:var(--cream);padding:96px 0}.compare-section h2{color:var(--cream)}.compare-section .section-eyebrow{color:var(--gold)}.compare-section .section-sub{color:#c5cdc8}.faq-list{margin-top:24px}.faq{border-top:1px solid var(--line);padding:24px 0}.faq:last-child{border-bottom:1px solid var(--line)}.faq summary{font-family:Fraunces,Georgia,serif;font-size:20px;color:var(--forest-deep);cursor:pointer;list-style:none;display:flex;justify-content:space-between;align-items:center;font-weight:500;gap:24px}.faq summary::-webkit-details-marker{display:none}.faq summary:after{content:"+";font-family:Inter,sans-serif;font-size:24px;color:var(--ink-soft);font-weight:300;transition:transform .2s;flex-shrink:0}.faq[open] summary:after{transform:rotate(45deg)}.faq-body{margin-top:14px;color:var(--ink-soft);font-size:15px;max-width:800px;line-height:1.65}.faq-body p{margin-bottom:10px}.faq-body p:last-child{margin-bottom:0}.trust-bar{padding:32px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);background:var(--bg-warm)}.trust-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:24px;align-items:center}@media(max-width:780px){.trust-grid{grid-template-columns:repeat(2,1fr);gap:20px}}.trust-item{text-align:center;font-size:12px;color:var(--ink-soft);letter-spacing:.05em}.trust-item strong{display:block;font-family:Fraunces,Georgia,serif;font-size:20px;color:var(--forest-deep);font-weight:500;margin-bottom:4px;letter-spacing:-.01em}.cta-section{padding:96px 0;text-align:center;background:var(--bg-warm);border-top:1px solid var(--line)}.cta-section h2{max-width:760px;margin:0 auto 20px}.cta-section .section-sub{margin:0 auto 36px}.btn-primary{background:var(--forest);color:var(--cream);padding:18px 30px;border-radius:999px;text-decoration:none;font-weight:500;font-size:16px;display:inline-flex;align-items:center;gap:10px;border:none;cursor:pointer;font-family:inherit;box-shadow:0 12px 24px -16px #1a2e2599;transition:background .18s,transform .18s}.btn-primary:hover{background:var(--forest-deep);transform:translateY(-1px)}.btn-primary .btn-icon{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:50%;background:#ffffff24}.btn-secondary{background:transparent;color:var(--forest-deep);padding:14px 22px;border-radius:999px;text-decoration:none;font-weight:500;font-size:14px;display:inline-flex;align-items:center;gap:6px;border:1px solid var(--line);cursor:pointer;font-family:inherit;transition:border-color .18s,color .18s}.btn-secondary:hover{border-color:var(--forest-deep);color:var(--rust)}.cta-buttons{display:inline-flex;gap:14px;flex-wrap:wrap;justify-content:center;align-items:center}.cta-buttons-left{justify-content:flex-start}.image-strip{display:grid;grid-template-columns:1.2fr .8fr 1fr;gap:16px;margin:48px 0}@media(max-width:780px){.image-strip{grid-template-columns:1fr 1fr}.image-strip>:nth-child(3){display:none}}.image-strip .figure{aspect-ratio:4 / 3}.local-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}@media(max-width:900px){.local-grid{grid-template-columns:1fr 1fr}}@media(max-width:600px){.local-grid{grid-template-columns:1fr}}.local-card{background:var(--cream);border:1px solid var(--line);border-radius:16px;overflow:hidden;text-decoration:none;color:inherit;display:flex;flex-direction:column;transition:transform .2s,box-shadow .2s}.local-card:hover{transform:translateY(-2px);box-shadow:0 12px 24px -16px #1c2a2333}.local-card .figure{border-radius:0;border:none;border-bottom:1px solid var(--line);aspect-ratio:16 / 10}.local-card-body{padding:22px 22px 26px}.local-card h3{font-family:Fraunces,Georgia,serif;font-size:22px;color:var(--forest-deep);font-weight:500;margin-bottom:8px;letter-spacing:-.01em}.local-card p{font-size:14px;color:var(--ink-soft);line-height:1.55}.local-card-arrow{font-size:13px;color:var(--rust);margin-top:14px;font-weight:500}.info-card{background:var(--cream);border:1px solid var(--line);border-radius:16px;padding:26px 28px;font-size:15.5px;line-height:1.6;color:var(--ink)}.info-card p{margin:0}.info-card strong{color:var(--forest-deep);font-weight:500}.info-card-eyebrow{font-family:Fraunces,Georgia,serif;font-style:italic;font-weight:500;font-size:17px;color:var(--forest-deep);margin-bottom:10px;letter-spacing:-.005em}.callout{background:var(--forest-deep);color:var(--cream);padding:48px;border-radius:24px;margin:48px 0}.callout p{font-family:Fraunces,Georgia,serif;font-size:24px;line-height:1.4;letter-spacing:-.01em;font-weight:400}.callout cite{display:block;margin-top:18px;font-style:normal;font-size:13px;color:#c5cdc8;letter-spacing:.04em}.phone-bar{display:none}@media(max-width:600px){.phone-bar{display:flex;position:fixed;bottom:0;left:0;right:0;background:var(--forest-deep);color:var(--cream);z-index:60;border-top:1px solid rgba(255,255,255,.1);align-items:stretch}.phone-bar a{text-decoration:none;color:var(--cream);font-weight:500;display:flex;align-items:center;justify-content:center}.phone-bar-primary{flex:2.2;background:var(--forest);padding:16px;font-size:15px;gap:10px}.phone-bar-primary:hover{background:var(--forest-deep)}.phone-bar-icon{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:50%;background:#ffffff29;flex-shrink:0}.phone-bar-secondary{flex:1;background:transparent;padding:14px;font-size:13px;border-left:1px solid rgba(255,255,255,.12);color:#ffffffc7;border-top:none;border-right:none;border-bottom:none;cursor:pointer;font-family:inherit}body{padding-bottom:60px}}footer.site-footer{padding:56px 0 32px;border-top:1px solid var(--line);font-size:13px;color:var(--ink-soft);background:var(--bg)}.footer-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:40px;margin-bottom:40px}@media(max-width:780px){.footer-grid{grid-template-columns:1fr 1fr;gap:32px}}.footer-col h3{font-family:Fraunces,Georgia,serif;font-size:15px;font-weight:500;color:var(--forest-deep);margin-bottom:14px;letter-spacing:-.005em}.footer-col a{display:block;color:var(--ink-soft);text-decoration:none;margin-bottom:8px;font-size:13px}.footer-col a:hover{color:var(--forest)}.footer-col p{font-size:13px;line-height:1.6}.footer-base{padding-top:24px;border-top:1px solid var(--line);display:flex;justify-content:space-between;flex-wrap:wrap;gap:16px;font-size:12px}.cta-card{background:var(--cream);border-radius:24px;padding:36px;border:1px solid var(--line);box-shadow:0 24px 48px -24px #1c2a232e}.cta-card-center{text-align:center}.cta-card-compact{padding:28px}.cta-eyebrow{font-size:11px;text-transform:uppercase;letter-spacing:.14em;color:var(--rust);margin-bottom:12px;font-weight:500}.cta-heading{font-family:Fraunces,Georgia,serif;font-weight:500;font-size:26px;color:var(--forest-deep);letter-spacing:-.01em;line-height:1.18;margin-bottom:10px}.cta-sub{font-size:14.5px;color:var(--ink-soft);margin-bottom:22px;line-height:1.5}.cta-phone-button{display:flex;align-items:center;gap:16px;background:var(--forest);color:var(--cream);padding:20px 24px;border-radius:14px;text-decoration:none;transition:background .18s,transform .18s;width:100%;box-shadow:0 12px 24px -16px #1a2e2599}.cta-card-center .cta-phone-button{justify-content:center}.cta-phone-button:hover{background:var(--forest-deep);transform:translateY(-1px)}.cta-phone-icon{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:50%;background:#ffffff1f;flex-shrink:0}.cta-phone-text{display:flex;flex-direction:column;align-items:flex-start;line-height:1.15}.cta-card-center .cta-phone-text{align-items:center}.cta-phone-label{font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:#ffffffb3;margin-bottom:4px}.cta-phone-num{font-family:Fraunces,Georgia,serif;font-size:28px;font-weight:500;letter-spacing:-.01em}.cta-hours{font-size:12px;color:var(--ink-soft);margin:12px 0 18px;letter-spacing:.02em}.cta-card-center .cta-hours{text-align:center}.cta-secondary{display:inline-flex;align-items:center;gap:8px;color:var(--forest-deep);font-size:14px;font-weight:500;text-decoration:none;padding:8px 0;border-bottom:1px solid var(--forest-deep);background:none;border-top:none;border-left:none;border-right:none;cursor:pointer;font-family:inherit}.cta-secondary:hover{color:var(--rust);border-bottom-color:var(--rust)}.modal{border:none;padding:0;background:transparent;max-width:520px;width:calc(100% - 32px);border-radius:24px;margin:auto}.modal::backdrop{background:#141e198c;backdrop-filter:blur(2px)}.modal[open]{animation:modal-in .2s ease-out}@keyframes modal-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.modal-inner{background:var(--cream);border-radius:24px;padding:36px 32px 32px;position:relative;border:1px solid var(--line);box-shadow:0 32px 64px -20px #00000059}.modal-close-form{margin:0}.modal-close{position:absolute;top:14px;right:14px;width:36px;height:36px;border-radius:50%;background:transparent;border:1px solid var(--line);color:var(--ink-soft);font-size:22px;line-height:1;cursor:pointer;font-family:inherit;display:inline-flex;align-items:center;justify-content:center;padding:0}.modal-close:hover{background:var(--bg-warm);color:var(--ink)}.modal-body{padding-top:4px}.modal-eyebrow{font-size:11px;text-transform:uppercase;letter-spacing:.14em;color:var(--rust);margin-bottom:10px;font-weight:500}.modal-title{font-family:Fraunces,Georgia,serif;font-weight:500;font-size:24px;color:var(--forest-deep);letter-spacing:-.01em;line-height:1.2;margin-bottom:18px}.modal-phone{display:flex;align-items:center;gap:16px;background:var(--forest);color:var(--cream);padding:18px 22px;border-radius:14px;text-decoration:none;transition:background .18s;width:100%;box-shadow:0 12px 24px -16px #1a2e2599}.modal-phone:hover{background:var(--forest-deep)}.modal-phone-icon{display:inline-flex;align-items:center;justify-content:center;width:38px;height:38px;border-radius:50%;background:#ffffff1f;flex-shrink:0}.modal-phone-text{display:flex;flex-direction:column;align-items:flex-start;line-height:1.15}.modal-phone-label{font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:#ffffffb3;margin-bottom:4px}.modal-phone-num{font-family:Fraunces,Georgia,serif;font-size:24px;font-weight:500}.modal-hours{font-size:12px;color:var(--ink-soft);margin:10px 0 0;text-align:center}.modal-divider{display:flex;align-items:center;gap:12px;margin:24px 0 18px;color:var(--ink-soft);font-size:12px;text-transform:uppercase;letter-spacing:.1em}.modal-divider:before,.modal-divider:after{content:"";flex:1;height:1px;background:var(--line)}.lead-form{display:block}.skip-link{position:absolute;left:-9999px;top:0}.skip-link:focus{left:12px;top:12px;background:var(--forest-deep);color:var(--cream);padding:8px 12px;border-radius:6px;z-index:100}
