button{font:inherit;cursor:pointer}button:focus-visible{outline:3px solid #d99b24;outline-offset:4px}.menu-toggle{border:1px solid var(--ink);background:transparent;color:var(--ink);padding:10px 15px;font-size:16px;border-radius:3px}header>nav{gap:18px}#site-menu{border:0;padding:30px 6%;margin:0;width:100%;max-width:none;height:100dvh;max-height:none;background:var(--paper);color:var(--ink)}dialog::backdrop{background:#082330dc}body.modal-open{overflow:hidden}.menu-head{display:flex;justify-content:space-between;align-items:center}.menu-head img{width:72px;height:72px;object-fit:contain}.close-menu,.close-project{font-size:42px;border:0;background:none;color:inherit;line-height:1;width:48px;height:48px}#site-menu nav{display:flex;flex-direction:column;gap:22px;justify-content:center;min-height:calc(100% - 85px);padding:35px 0}#site-menu nav>a:not(.button){font-family:Georgia,serif;font-size:clamp(28px,5vw,52px);line-height:1.2;text-align:center}#site-menu .button{margin-top:20px;border-radius:35px;padding:18px 35px}.full-services{margin-top:45px;background:#e6efea;padding:32px}.service-lists{display:grid;grid-template-columns:repeat(3,1fr);gap:30px}.service-lists h4{margin:24px 0 12px;font-size:18px}.service-lists ul{padding-left:20px;margin:0}.service-lists li{font-size:16px;margin-bottom:8px}.full-services>p{margin-top:24px;font-size:15px;color:var(--muted)}
.choose{background:#f2f4ef}.choice-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.choice-grid article{background:white;border-top:5px solid var(--teal);padding:30px}.choice-grid span{font-size:12px;letter-spacing:.12em;font-weight:700;color:var(--teal)}.choice-grid h3{margin:18px 0 12px}.choice-grid p{font-size:16px;color:var(--muted)}.process{margin-top:34px;background:var(--ink);color:white;padding:36px}.process .eyebrow{color:var(--aqua)}.process ol{display:grid;grid-template-columns:repeat(5,1fr);gap:24px;counter-reset:steps;list-style:none;padding:0;margin:0}.process li{counter-increment:steps;border-top:1px solid #67808a;padding-top:18px}.process li:before{content:'0' counter(steps);display:block;color:var(--aqua);font-size:13px;letter-spacing:.1em;margin-bottom:15px}.process b,.process span{display:block}.process span{font-size:14px;color:#cedde1;margin-top:8px;line-height:1.5}
.screen-guide{background:#e7eee9}.screen-table{border-top:1px solid #9eb8b5}.screen-row{display:grid;grid-template-columns:minmax(150px,.65fr) minmax(220px,1fr) minmax(280px,1.4fr);gap:30px;align-items:center;border-bottom:1px solid #b7cbc7;padding:23px 18px}.screen-head{padding-top:12px;padding-bottom:12px;color:var(--teal);font-size:12px;font-weight:700;letter-spacing:.12em;text-transform:uppercase}.screen-row b,.screen-row small{display:block}.screen-row b{font-size:24px;font-weight:500;letter-spacing:-.025em}.screen-row small{color:var(--teal);font-size:12px;text-transform:uppercase;letter-spacing:.09em;margin-top:3px}.screen-row p{font-size:15px;color:var(--muted)}.screen-note{max-width:800px;margin:28px 0 0;font-size:15px;color:var(--muted)}
.why-us{background:var(--ink);color:white}.why-us .eyebrow{color:var(--aqua)}.why-us .heading>p{color:#cfdee1}.proof-grid{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid #607b84;border-left:1px solid #607b84}.proof-grid article{padding:30px;border-right:1px solid #607b84;border-bottom:1px solid #607b84}.proof-grid span{color:var(--aqua);font-size:12px;letter-spacing:.12em}.proof-grid h3{margin:30px 0 12px}.proof-grid p{color:#cfdee1;font-size:15px}
.comparison-project+.comparison-project{margin-top:55px}.comparison{--pos:50%;position:relative;overflow:hidden;aspect-ratio:16/10;background:#cddbd6;user-select:none;touch-action:pan-y}.comparison img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.comparison-before{position:absolute;inset:0;clip-path:inset(0 calc(100% - var(--pos)) 0 0)}.comparison-before img{object-fit:cover}.compare-label{position:absolute;top:18px;z-index:3;background:var(--paper);padding:6px 12px;font-size:11px;letter-spacing:.13em;font-weight:700}.before-label{left:18px}.after-label{right:18px}.compare-line{position:absolute;z-index:2;left:var(--pos);top:0;bottom:0;width:3px;background:white;transform:translateX(-50%);box-shadow:0 0 0 1px #12374655}.comparison input{appearance:none;-webkit-appearance:none;position:absolute;z-index:4;inset:0;width:100%;height:100%;margin:0;background:transparent;cursor:ew-resize}.comparison input::-webkit-slider-runnable-track{height:100%;background:transparent}.comparison input::-moz-range-track{height:100%;background:transparent}.comparison input::-webkit-slider-thumb{-webkit-appearance:none;width:46px;height:46px;margin-top:calc((min(62.5vw,860px) - 46px)/2);border-radius:50%;border:3px solid white;background:var(--teal);box-shadow:0 2px 12px #092f3e66}.comparison input::-moz-range-thumb{width:40px;height:40px;border-radius:50%;border:3px solid white;background:var(--teal);box-shadow:0 2px 12px #092f3e66}.comparison-project>p{margin-top:10px;color:var(--muted);font-size:16px}
.faq{background:#edf2ed}.faq-list{max-width:960px;margin:0 auto}.faq details{border-top:1px solid #a9c0bd}.faq details:last-child{border-bottom:1px solid #a9c0bd}.faq summary{position:relative;list-style:none;cursor:pointer;padding:24px 55px 24px 0;font-size:21px;line-height:1.35}.faq summary::-webkit-details-marker{display:none}.faq summary:after{content:'+';position:absolute;right:8px;top:17px;font-size:32px;color:var(--teal);font-weight:300}.faq details[open] summary:after{content:'–'}.faq details p{max-width:780px;padding:0 55px 25px 0;color:var(--muted);font-size:16px}
.reviews{background:#dceae5}.review-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.review-card{display:flex;flex-direction:column;justify-content:space-between;gap:30px;margin:0;padding:30px;background:var(--paper);border-top:5px solid var(--teal)}.review-card.featured-review{grid-column:span 2;background:var(--ink);color:white;border-color:var(--aqua)}.review-card.wide-review{grid-column:span 2}.review-card>p{font-family:Georgia,serif;font-size:20px;line-height:1.55;letter-spacing:-.012em}.featured-review>p{font-size:24px}.review-author{border-top:1px solid #b8cbc6;padding-top:18px}.featured-review .review-author{border-color:#607b84}.review-author cite,.review-author span{display:block}.review-author cite{font-style:normal;font-weight:700;font-size:15px}.review-author span{margin-top:3px;color:var(--muted);font-size:12px;letter-spacing:.07em;text-transform:uppercase}.featured-review .review-author span{color:#c8dadd}.review-author .stars{color:#d99b24;font-size:15px;letter-spacing:.08em;margin:0 0 4px}.review-note{margin-top:20px;color:var(--muted);font-size:13px}
.featured-note{background:#dcece7;border-left:5px solid var(--teal);padding:17px 20px;margin:-10px 0 28px}.filters{display:flex;flex-wrap:wrap;gap:10px}.filters button{border:1px solid #aac4c4;background:transparent;border-radius:25px;color:var(--ink);padding:10px 18px;font-size:15px}.filters button[aria-pressed=true]{background:var(--ink);border-color:var(--ink);color:white}#gallery-count{font-size:14px;color:var(--muted);margin:18px 0}.project-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:28px 20px}.project-card{min-width:0}.project-card button{display:block;width:100%;height:100%;border:0;padding:0;background:#edf1ec;color:var(--ink);text-align:left}.project-card.featured{grid-column:span 1}.project-card.featured button{background:var(--ink);color:white}.card-image{display:block;position:relative;overflow:hidden;background:#d8e4df}.card-image img{height:290px;transition:transform .25s}.project-card.featured .card-image img{height:340px}.project-card button:hover img{transform:scale(1.025)}.card-image>span{position:absolute;right:12px;bottom:12px;background:var(--paper);color:var(--ink);padding:5px 10px;font-size:12px;letter-spacing:.04em}.card-copy{display:block;padding:20px}.card-copy small,.card-copy strong,.card-copy em{display:block}.card-copy small{text-transform:uppercase;letter-spacing:.12em;color:var(--teal);font-size:11px;font-weight:700}.featured .card-copy small{color:var(--aqua)}.card-copy strong{font-size:22px;line-height:1.2;margin:9px 0 20px;font-weight:500;letter-spacing:-.025em}.card-copy em{font-size:14px;font-style:normal;text-decoration:underline;text-underline-offset:5px}
#project-view{border:0;background:var(--paper);color:var(--ink);width:min(1180px,96vw);max-width:96vw;max-height:95dvh;padding:0;overflow:auto}.close-project{position:absolute;right:12px;top:10px;z-index:2;background:var(--ink);color:white;border-radius:50%}.project-viewer{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(300px,.8fr);min-height:650px}.viewer-image{position:relative;background:#0b2834;display:flex;align-items:center;justify-content:center;min-height:650px}.viewer-image img{width:100%;height:78dvh;max-height:760px;object-fit:contain}.stage-badge{position:absolute;left:18px;top:18px;background:var(--aqua);color:var(--ink);font-size:12px;font-weight:700;letter-spacing:.12em;padding:7px 12px;text-transform:uppercase}.viewer-copy{padding:68px 34px 30px;display:flex;flex-direction:column}.project-type{text-transform:uppercase;letter-spacing:.12em;color:var(--teal);font-size:12px;font-weight:700}.viewer-copy h3{font-size:34px;margin:14px 0}.project-description{color:var(--muted);font-size:16px}.photo-caption{font-size:18px;margin-top:35px}.photo-count{font-size:13px;color:var(--muted);margin-top:4px}.photo-controls{display:flex;justify-content:space-between;gap:10px;margin-top:auto;padding-top:28px}.photo-controls button{background:var(--ink);color:white;border:0;padding:11px 15px;border-radius:3px}.photo-dots{display:flex;flex-wrap:wrap;gap:7px;margin-top:18px}.photo-dots button{border:1px solid #aac4c4;background:transparent;color:var(--ink);width:34px;height:34px;border-radius:50%;font-size:13px}.photo-dots button[aria-pressed=true]{background:var(--teal);border-color:var(--teal);color:white}
@media(max-width:1000px){header>nav{display:none}header{flex-wrap:nowrap}.service-lists,.choice-grid{grid-template-columns:1fr}.process ol{grid-template-columns:1fr 1fr}.proof-grid{grid-template-columns:1fr 1fr}.review-grid{grid-template-columns:1fr 1fr}.review-card.featured-review,.review-card.wide-review{grid-column:span 2}.project-grid{grid-template-columns:1fr 1fr}.project-viewer{grid-template-columns:1fr;min-height:0}.viewer-image{min-height:420px}.viewer-image img{height:55dvh}.viewer-copy{padding:32px 24px}.photo-controls{margin-top:10px}}
@media(max-width:700px){.screen-head{display:none}.screen-row{grid-template-columns:1fr;gap:8px;padding:22px 4px}.screen-row p:first-of-type{color:var(--ink);font-weight:700}.proof-grid{grid-template-columns:1fr}.comparison{aspect-ratio:4/5}.comparison input::-webkit-slider-thumb{margin-top:calc((117.5vw - 46px)/2)}}
@media(max-width:600px){.brand{font-size:13px}.brand small{font-size:9px}.brand img{width:42px;height:42px}.menu-toggle{font-size:14px;padding:9px}.full-services,.process{padding:24px}.process ol,.project-grid,.review-grid{grid-template-columns:1fr}.review-card.featured-review,.review-card.wide-review{grid-column:auto}.review-card{padding:24px}.review-card>p,.featured-review>p{font-size:19px}.project-card.featured{grid-column:auto}.card-image img,.project-card.featured .card-image img{height:270px}.filters{gap:8px}.filters button{font-size:13px;padding:8px 11px}.viewer-image{min-height:330px}.viewer-image img{height:48dvh}.viewer-copy h3{font-size:28px}.close-project{right:7px;top:7px}.photo-controls button{font-size:14px}.compare-label{top:10px;padding:4px 9px;font-size:10px}.before-label{left:10px}.after-label{right:10px}.faq summary{font-size:19px}}
@media(prefers-reduced-motion:reduce){.card-image img{transition:none}}
.comparison input{inset:auto;left:0;top:50%;height:46px;transform:translateY(-50%)}
.comparison input::-webkit-slider-runnable-track{height:3px}
.comparison input::-moz-range-track{height:3px}
.comparison input::-webkit-slider-thumb{margin-top:-22px}
@media(max-width:700px){.comparison input::-webkit-slider-thumb{margin-top:-22px}}
.review-card.wide-review{grid-column:1/-1}.wide-review>p{max-width:1050px}
@media(max-width:1000px){.review-card.wide-review{grid-column:span 2}}
@media(max-width:600px){.review-card.wide-review{grid-column:auto}}
.skip-link{position:fixed;left:16px;top:12px;z-index:1000;transform:translateY(-150%);background:var(--aqua);color:var(--ink);padding:10px 14px;border-radius:3px;font-weight:700;text-decoration:none}.skip-link:focus{transform:translateY(0)}
.menu-toggle{display:none}
@media(max-width:1000px){.menu-toggle{display:block}}
