.hero-image>img{position:absolute;inset:0;object-position:50% 55%}
.hero-rating{display:flex;align-items:center;gap:14px;margin-top:27px;padding-top:20px;border-top:1px solid var(--line);font-size:.72rem;line-height:1.4}
.hero-rating strong{font-weight:600}.hero-rating small{display:block;font-size:.6rem;color:var(--muted);margin-top:4px}.hero-rating:hover strong{text-decoration:underline;text-underline-offset:4px}
.stars{color:#6b7844;letter-spacing:.12em;font-size:.95rem;white-space:nowrap}
.additional-services{border-top:1px solid var(--line);margin-top:42px;padding-top:25px;display:grid;grid-template-columns:1fr 1.6fr auto;align-items:center;gap:30px}
.additional-services h3{font-size:1.4rem}.additional-services p{font-size:.79rem;color:var(--muted);max-width:440px}.additional-services .text-link{font-size:.73rem}
.portfolio-section{background:#eeeee5;border-top:1px solid #e4e5d9}
.project-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:38px 25px}
.project-button{display:block;position:relative;width:100%;padding:0;border:0;background:#d7dcd0;color:var(--ink);border-radius:3px;overflow:hidden}
.photo-frame{display:block;position:relative;aspect-ratio:1/1;overflow:hidden}
.photo-frame img{width:100%;height:100%;object-fit:cover;transition:filter .2s}
.photo-frame-rotated img{position:absolute;left:50%;top:50%;width:100%;height:100%;max-width:none;transform:translate(-50%,-50%) rotate(90deg)}
.project-button:hover img{filter:brightness(.91)}.photo-enlarge{position:absolute;bottom:13px;right:13px;background:var(--paper);padding:7px 12px;border-radius:2px;font-size:.62rem;box-shadow:0 2px 20px #203c2e18}
.project-card figcaption{padding-top:18px}.project-card figcaption>span{font-size:.53rem;letter-spacing:.15em}.project-card h3{font-size:1.45rem;margin-top:7px;line-height:1.3}
.portfolio-foot{display:flex;justify-content:space-between;align-items:center;gap:25px;margin-top:36px;padding-top:24px;border-top:1px solid #cdd3c1}.portfolio-foot p{font-size:.68rem;color:var(--muted)}
.reviews-section{border-top:1px solid var(--line)}.review-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:25px}
.review-card{padding:30px 26px;background:#eeeee5;display:flex;flex-direction:column;border-radius:3px}
.review-card blockquote{margin:24px 0 30px;font-family:var(--serif);font-size:1.8rem;letter-spacing:-.025em;line-height:1.35}
.review-card figcaption{margin-top:auto;font-size:.67rem;line-height:1.7}.review-card figcaption strong{display:block;font-weight:600}.review-card figcaption span{display:block;color:var(--muted);margin-top:3px}.review-card figcaption a{display:inline-block;margin-top:18px;border-bottom:1px solid #aab69b;padding-bottom:3px}.review-card figcaption a:hover{border-color:var(--ink)}
.review-links{display:flex;align-items:center;gap:40px;margin-top:35px;padding-top:25px;border-top:1px solid var(--line)}.review-links>a{display:flex;align-items:center;gap:15px;white-space:nowrap}.review-links>a strong{font-family:var(--serif);font-weight:400;font-size:1.9rem}.review-links>a>span{font-size:.69rem}.review-links>a:hover>span{text-decoration:underline;text-underline-offset:5px}.review-links>p{margin-left:auto;font-size:.62rem;color:var(--muted);max-width:310px;line-height:1.8}
.footer-bottom>div{flex-wrap:wrap}
.photo-open{overflow:hidden}.project-viewer{--viewer-width:min(900px,84vw);--viewer-height:70vh;width:max-content;max-width:calc(100% - 24px);max-height:94vh;padding:18px;border:1px solid #aab69b;border-radius:5px;background:var(--paper);color:var(--ink);box-shadow:0 20px 100px #0006}.project-viewer::backdrop{background:rgba(12,24,18,.86)}
.viewer-close{display:flex;align-items:center;gap:20px;margin:0 0 14px auto;border:1px solid #b5bfaa;background:transparent;color:var(--ink);padding:8px 13px;font-size:.75rem;min-height:44px;border-radius:3px}.viewer-close span{font-size:1.4rem;line-height:1}.viewer-stage{position:relative;width:var(--viewer-width);height:var(--viewer-height);overflow:hidden;background:#e4e6db}.viewer-stage>img{position:absolute;left:50%;top:50%;width:100%;height:100%;max-width:none;object-fit:contain;transform:translate(-50%,-50%)}.viewer-stage>img.is-rotated{width:var(--viewer-height);height:var(--viewer-width);transform:translate(-50%,-50%) rotate(90deg)}.project-viewer>p{font-size:.8rem;margin-top:14px}
@media(max-width:1100px){.hero-rating{gap:10px}.hero-rating .stars{font-size:.76rem}.additional-services{grid-template-columns:1fr 2fr;gap:14px 25px}.additional-services .text-link{grid-column:2}.review-card{padding:27px 20px}.review-card blockquote{font-size:1.6rem}.review-links{gap:25px;flex-wrap:wrap}.review-links>p{max-width:none;width:100%;margin-left:0}.project-card h3{font-size:1.3rem}}
@media(max-width:760px){.hero-rating{font-size:.7rem;width:100%;gap:15px;margin-top:24px;padding-top:19px}.hero-rating .stars{font-size:.85rem}.hero-rating small{font-size:.57rem}.hero-rating>span:last-child{margin-left:auto}.hero-image{height:440px;max-height:125vw}.hero-image>img{object-position:50% 50%}.additional-services{display:block;margin-top:30px;padding-top:24px}.additional-services h3{font-size:1.5rem}.additional-services p{font-size:.82rem;margin-top:12px}.additional-services .text-link{margin-top:10px}.project-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:28px 18px}.project-card figcaption{padding-top:13px}.project-card figcaption>span{font-size:.47rem;letter-spacing:.1em}.project-card h3{font-size:1.2rem;margin-top:6px}.photo-enlarge{font-size:.55rem;padding:6px 8px;bottom:9px;right:9px}.portfolio-foot{display:block;margin-top:29px}.portfolio-foot p{font-size:.66rem}.portfolio-foot .text-link{margin-top:10px}.review-grid{grid-template-columns:1fr;gap:18px}.review-card{padding:27px 25px}.review-card blockquote{font-size:1.8rem;max-width:400px;margin:21px 0 23px}.review-card figcaption{font-size:.7rem}.review-links{gap:22px 30px;margin-top:26px}.review-links>a{gap:12px}.review-links>a strong{font-size:1.8rem}.review-links>a>span{font-size:.65rem}.project-viewer{--viewer-width:84vw;--viewer-height:62vh;padding:13px}.project-viewer>p{font-size:.74rem;max-width:84vw}.footer-bottom>div{gap:16px}}
@media(max-width:520px){.project-grid{grid-template-columns:1fr;gap:30px}.photo-frame{aspect-ratio:4/3}.photo-frame-rotated img{width:75%;height:133.3333%}.project-card h3{font-size:1.5rem}.project-card figcaption>span{font-size:.53rem}.photo-enlarge{font-size:.63rem;padding:8px 12px;bottom:13px;right:13px}}
@media(prefers-reduced-motion:reduce){.photo-frame img{transition:none}}
@media print{.project-button{break-inside:avoid}.photo-enlarge,.project-viewer{display:none}.project-grid{grid-template-columns:repeat(3,1fr)}.review-grid{grid-template-columns:repeat(3,1fr)}.review-card blockquote{font-size:1.2rem}}
