@font-face {
  font-family: Manrope;
  src: url('/fonts/manrope-variable.ttf') format('truetype');
  font-weight: 200 800;
  font-display: swap;
}
:root {
  --paper: #f7f6ef;
  --white: #fffef9;
  --forest: #233d30;
  --deep: #172b22;
  --ink: #24352b;
  --muted: #637064;
  --lime: #d0e39a;
  --line: #d9ded0;
  --sun: #eeaa48;
  --serif: Georgia, 'Times New Roman', serif;
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: 28px; }
body { margin: 0; background: var(--paper); color: var(--ink); font: 15px/1.65 Manrope, 'Segoe UI', sans-serif; }
body:has(dialog[open]) { overflow: hidden; }
a { color: inherit; text-underline-offset: 5px; }
button, summary, a { -webkit-tap-highlight-color: transparent; touch-action: manipulation; }
button { font: inherit; cursor: pointer; }
img { display: block; max-width: 100%; }
picture { display: block; }
button, a, summary { outline-offset: 5px; }
:focus-visible { outline: 3px solid #ba6929; }
h1, h2, h3, p, figure { margin: 0; }
h1, h2, h3 { font-weight: 500; letter-spacing: -.052em; line-height: 1.08; }
h1 { font-size: clamp(58px, 5.7vw, 88px); }
h2 { font-size: clamp(40px, 4.1vw, 62px); }
h3 { font-size: 32px; }
h1 em, h2 em, h3 em { font: italic 1.05em/1.02 var(--serif); letter-spacing: -.05em; }
[hidden] { display: none !important; }
.shell { width: min(1180px, calc(100% - 100px)); margin-inline: auto; }
.section-space { padding-block: 112px; }
.eyebrow { display: flex; align-items: center; gap: 9px; margin-bottom: 20px; font-size: 10px; font-weight: 750; letter-spacing: .12em; line-height: 1.5; }
.eyebrow i { width: 6px; height: 6px; border-radius: 0; background: #5b7f37; flex: none; }
.eyebrow.light { color: #fff; }
.eyebrow.light i { background: var(--lime); }
.section-heading { display: flex; align-items: flex-end; justify-content: space-between; gap: 56px; margin-bottom: 45px; }
.section-heading > p { max-width: 300px; padding-bottom: 6px; color: var(--muted); font-size: 14px; }
.button { display: inline-flex; justify-content: space-between; align-items: center; gap: 25px; padding: 9px 9px 9px 22px; min-height: 56px; border-radius: 0; text-decoration: none; font-size: 13px; font-weight: 750; transition: background .2s, transform .2s; }
.button:hover { transform: translateY(-2px); }
.button-lime { background: var(--lime); color: var(--deep); }
.button-lime:hover { background: #e0edb9; }
.arrow { display: grid; place-items: center; width: 38px; height: 38px; border-radius: 0; background: var(--forest); color: white; font-size: 23px; font-weight: 400; }
.text-link { display: inline-flex; align-items: center; gap: 18px; font-size: 12px; font-weight: 700; padding-block: 12px; min-height: 44px; text-decoration-thickness: 1px; }
.text-link span { font-size: 18px; }
.skip-link { position: fixed; left: 16px; top: -100px; z-index: 100; background: var(--lime); padding: 12px 18px; }
.skip-link:focus { top: 12px; }
.opening { padding: 20px 20px 0; }
.site-header { position: absolute; top: 40px; left: 52px; right: 52px; z-index: 10; min-height: 80px; padding: 10px 24px 10px 16px; border-radius: 0; display: flex; align-items: center; gap: 30px; background: var(--white); box-shadow: 0 3px 18px #132c1d10; }
.brand { display: flex; align-items: center; gap: 10px; text-decoration: none; flex: none; }
.brand img { border-radius: 0; width: 54px; height: 54px; }
.brand > span { display: grid; }
.brand strong { font: 700 28px/1 var(--serif); letter-spacing: -.055em; }
.brand small { margin-top: 5px; font-size: 6.8px; font-weight: 800; letter-spacing: .17em; }
.desktop-nav { display: flex; align-items: center; justify-content: center; gap: 30px; margin: auto; }
.desktop-nav a { font-size: 11px; font-weight: 700; text-decoration: none; padding-block: 12px; }
.desktop-nav a:hover { color: #587933; }
.nav-call { display: flex; gap: 10px; align-items: center; text-decoration: none; }
.nav-call > span:last-child { display: grid; }
.nav-call small { font-size: 8px; color: var(--muted); }
.nav-call strong { font-size: 12px; }
.phone-icon { width: 39px; height: 39px; background: var(--lime); border-radius: 0; display: grid; place-items: center; font-size: 23px; }
.mobile-menu { display: none; }
.hero { position: relative; min-height: 820px; overflow: hidden; border-radius: 0; color: white; background: var(--deep); }
.hero-photo, .hero-photo img, .hero-shade { position: absolute; inset: 0; width: 100%; height: 100%; }
.hero-photo img { object-fit: cover; object-position: 55% center; }
.hero-shade { background: linear-gradient(90deg, #000000d9 0%, #0000009e 34%, #00000029 69%, #0000000a 100%), linear-gradient(0deg, #00000094, transparent 55%); }
.hero-copy { position: relative; z-index: 1; padding: 148px 6.5% 116px; max-width: 850px; }
.google-proof { display: flex; width: max-content; align-items: center; gap: 10px; margin-bottom: 31px; text-decoration: none; }
.google-letter { font: 700 30px/1 Arial, sans-serif; color: white; }
.google-proof > span:last-child { display: grid; }
.proof-top { display: flex; align-items: center; gap: 9px; line-height: 1.2; }
.proof-top strong { font-size: 13px; font-weight: 500; }
.stars { color: #8c601e; letter-spacing: 2px; font-size: 14px; white-space: nowrap; }
.google-proof .stars { color: #f8c778; font-size: 12px; }
.proof-bottom { font-size: 9px; margin-top: 2px; }
.hero .eyebrow { margin-bottom: 18px; }
.hero h1 { max-width: 700px; }
.hero-intro { max-width: 365px; font-size: 13px; line-height: 1.8; margin-top: 25px; color: #f0f2e9; }
.hero-actions { display: flex; align-items: center; flex-wrap: wrap; gap: 25px; margin-top: 28px; }
.hero-project { position: absolute; right: 36px; bottom: 55px; z-index: 2; display: flex; align-items: center; gap: 15px; padding: 9px 16px 9px 9px; color: var(--ink); background: var(--white); border-radius: 0; text-decoration: none; }
.hero-project img { width: 88px; height: 76px; object-fit: cover; border-radius: 0; }
.hero-project > span { display: grid; gap: 9px; }
.hero-project small { font-size: 7px; font-weight: 700; letter-spacing: .06em; }
.hero-project strong { font-size: 11px; }
.hero-project strong span { margin-left: 12px; font-size: 18px; }
.hero-caption { position: absolute; bottom: 21px; right: 39px; font-size: 8px; color: #e0e7d9; }
.location-rail { display: flex; align-items: center; justify-content: space-around; gap: 35px; padding: 32px 6.5%; border-bottom: 1px solid var(--line); }
.location-rail > p { font-size: 11px; line-height: 1.5; color: var(--muted); }
.location-rail > p strong { color: var(--ink); font-weight: 600; }
.location-rail > span:not(.sun-icon) { display: flex; align-items: center; gap: 12px; font: 25px var(--serif); white-space: nowrap; }
.location-rail small { font: 6px Manrope, sans-serif; letter-spacing: .15em; width: 42px; white-space: normal; }
.location-rail .sun-icon { font-size: 29px; color: #b47731; }
.location-rail > a { font-size: 10px; text-decoration: none; }
.location-rail > a span { padding-left: 15px; font-size: 20px; }
.project-tabs { display: flex; gap: 30px; border-bottom: 1px solid var(--line); margin-bottom: 23px; }
.project-tabs button { border: 0; border-bottom: 2px solid transparent; background: none; color: #687164; min-height: 55px; padding: 10px 0; font-size: 12px; }
.project-tabs button span { margin-right: 12px; font-size: 9px; }
.project-tabs button[aria-selected=true] { border-color: var(--forest); color: var(--forest); font-weight: 750; }
.comparison { display: grid; grid-template-columns: minmax(0, 1.8fr) minmax(250px, 1fr); background: var(--forest); color: var(--paper); border-radius: 0; overflow: hidden; }
.comparison-media { position: relative; height: 620px; background: #182a21; overflow: hidden; touch-action: pan-y; }
.comparison-photo { position: absolute; inset: 0; width: 100%; height: 100%; transition: opacity .55s ease, transform .7s ease; }
.comparison-photo img { width: 100%; height: 100%; object-fit: cover; object-position: center 55%; }
.photo-before { opacity: 0; transform: scale(1.03); }
.photo-after { opacity: 1; transform: scale(1); }
.comparison[data-state=before] .photo-before { opacity: 1; transform: scale(1); }
.comparison[data-state=before] .photo-after { opacity: 0; transform: scale(1.03); }
.comparison[data-state=compare] .comparison-media { display: grid; grid-template-columns: 1fr 1fr; gap: 3px; }
.comparison[data-state=compare] .comparison-photo { position: relative; opacity: 1; transform: none; }
.comparison[data-state=compare] .comparison-photo img { object-fit: contain; }
.image-state { position: absolute; top: 22px; left: 22px; padding: 6px 13px; background: #fffef9ed; color: var(--forest); font-size: 10px; border-radius: 0; }
.state-switch { position: absolute; bottom: 23px; left: 50%; transform: translateX(-50%); display: flex; border-radius: 0; padding: 5px; background: var(--white); box-shadow: 0 5px 20px #0c1d2533; }
.state-switch:before { content: ''; position: absolute; left: 5px; top: 5px; width: 95px; height: calc(100% - 10px); border-radius: 0; background: var(--forest); transform: translateX(95px); transition: transform .4s cubic-bezier(.2,.7,.3,1), opacity .3s; }
.comparison[data-state=before] .state-switch:before { transform: translateX(0); }
.comparison[data-state=compare] .state-switch:before { opacity: 0; }
.state-switch button { position: relative; width: 95px; min-height: 44px; border: 0; border-radius: 0; background: none; color: var(--forest); font-weight: 650; font-size: 12px; transition: color .25s; }
.state-switch button[aria-pressed=true] { color: white; }
.comparison-story { padding: 48px 34px; display: flex; flex-direction: column; justify-content: center; }
.project-number { font-size: 8px; letter-spacing: .12em; color: #c5d4bd; }
.comparison-story h3 { font-size: clamp(29px, 3vw, 43px); margin-top: 25px; }
.comparison-story h3 em { color: #d4e2b5; }
.comparison-story > p:not(.view-note) { color: #d4dfce; font-size: 12px; line-height: 1.9; margin-top: 22px; max-width: 250px; }
.mini-pair { margin-top: 38px; display: grid; grid-template-columns: 1fr 18px 1fr; align-items: center; gap: 8px; }
.mini-pair img { width: 100%; height: 105px; object-fit: cover; border-radius: 0; }
.mini-pair span { color: var(--lime); text-align: center; }
.compare-both { display: flex; align-items: center; justify-content: space-between; margin-top: 16px; min-height: 44px; padding: 8px 0; border: 0; border-bottom: 1px solid #91a58e; background: none; color: white; text-align: left; font-size: 11px; }
.compare-both[aria-pressed=true] { color: var(--lime); }
.view-note { margin-top: 16px; font-size: 8px; color: #c6d2bf; line-height: 1.8; }
.services-section { background: #eeeee3; }
.services-layout { display: grid; grid-template-columns: .94fr 1.06fr; gap: 75px; align-items: start; }
.service-photo { position: relative; height: 570px; border-radius: 0; overflow: hidden; background: #dcded2; }
.service-photo picture, .service-photo img { width: 100%; height: 100%; object-fit: cover; }
.service-photo img { transition: opacity .2s; }
.service-photo-caption { position: absolute; bottom: 20px; left: 20px; padding: 7px 12px; background: var(--white); border-radius: 0; font-size: 9px; }
.service-list { border-top: 1px solid #c4cdbb; }
.service-list details { border-bottom: 1px solid #c4cdbb; }
.service-list summary { list-style: none; display: flex; align-items: center; gap: 18px; cursor: pointer; padding: 24px 0; min-height: 84px; }
summary::-webkit-details-marker { display: none; }
.service-index { font-size: 9px; color: var(--muted); }
.service-list h3 { font-size: clamp(23px, 2.15vw, 31px); letter-spacing: -.04em; }
.service-plus { display: grid; place-items: center; margin-left: auto; border: 1px solid #b6c0aa; border-radius: 0; width: 29px; height: 29px; font-size: 21px; line-height: 1; flex: none; transition: transform .25s; }
.service-list details[open] .service-plus { transform: rotate(45deg); background: var(--forest); color: white; border-color: var(--forest); }
.service-body { padding: 0 0 25px 31px; font-size: 12px; color: #53634e; }
.service-body p { max-width: 350px; margin-bottom: 17px; }
.service-body ul { list-style: none; padding: 0; margin: 0 0 22px; }
.service-body li { margin-top: 5px; }
.service-body li:before { content: '↗'; color: #567536; margin-right: 12px; }
.service-body a { display: inline-flex; align-items: center; gap: 24px; min-height: 44px; color: var(--forest); font-weight: 700; }
.gallery { display: grid; grid-template-columns: 1.1fr .9fr; gap: 48px 70px; align-items: start; }
.gallery-wide { grid-column: 1/-1; }
.gallery-button { position: relative; display: block; padding: 0; border: 0; border-radius: 0; overflow: hidden; width: 100%; background: #dee3d5; text-align: left; }
.gallery-wide .gallery-button { height: 520px; }
.gallery-path .gallery-button { height: 580px; }
.gallery-night { padding-top: 105px; }
.gallery-night .gallery-button { height: 475px; }
.gallery-button picture, .gallery-button img { width: 100%; height: 100%; object-fit: cover; }
.gallery-button img { transition: transform .6s; }
.gallery-button:hover img { transform: scale(1.035); }
.gallery-wide img { object-position: center 52%; }
.expand-photo { position: absolute; right: 17px; bottom: 17px; width: 42px; height: 42px; border-radius: 0; display: grid; place-items: center; background: var(--white); color: var(--forest); font-size: 22px; }
.gallery figcaption { display: flex; align-items: center; justify-content: space-between; gap: 15px; padding-top: 18px; font-size: 12px; }
.gallery figcaption small { font-size: 7px; color: var(--muted); letter-spacing: .08em; }
.reviews-section { background: #e7ecdd; }
.review-score { display: flex; align-items: center; gap: 18px; }
.review-score > strong { font-size: 68px; font-weight: 500; line-height: 1; letter-spacing: -.07em; }
.review-score > div { display: grid; gap: 6px; }
.review-score a { font-size: 10px; }
.review-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; }
.review { padding: 29px; border-radius: 0; background: var(--white); display: flex; flex-direction: column; min-height: 310px; }
.review-top { display: flex; align-items: center; justify-content: space-between; font-size: 11px; }
.review-top .stars { font-size: 11px; }
.review blockquote { margin: 24px 0 30px; font-size: 16px; line-height: 1.7; letter-spacing: -.02em; }
.review figcaption { margin-top: auto; display: grid; gap: 3px; }
.review figcaption strong { font-size: 11px; font-weight: 750; }
.review figcaption a { font-size: 9px; color: #596d51; min-height: 44px; display: inline-flex; gap: 15px; align-items: center; width: fit-content; }
.reviews-note { margin-top: 19px; font-size: 8px; color: #56674e; }
.faq-layout { display: grid; grid-template-columns: .9fr 1.1fr; gap: 85px; }
.faq-intro > p:not(.eyebrow) { color: var(--muted); font-size: 12px; margin-top: 28px; }
.faq-intro .text-link { margin-top: 12px; }
.faq-list { border-top: 1px solid var(--line); }
.faq-list details { border-bottom: 1px solid var(--line); }
.faq-list summary { list-style: none; display: flex; justify-content: space-between; align-items: center; gap: 20px; min-height: 78px; padding-block: 20px; font-size: 13px; cursor: pointer; font-weight: 650; }
.faq-list summary span { display: grid; place-items: center; height: 28px; width: 28px; border-radius: 0; background: #e7ebdd; font-size: 18px; flex: none; transition: transform .25s; }
.faq-list details[open] summary span { transform: rotate(45deg); }
.faq-list details p { padding: 0 30px 24px 0; font-size: 12px; color: var(--muted); }
.faq-list a { overflow-wrap: anywhere; }
.contact-section { width: calc(100% - 40px); margin: 0 auto; display: grid; grid-template-columns: .85fr 1.15fr; border-radius: 0; overflow: hidden; background: var(--forest); color: white; }
.contact-picture { min-height: 540px; }
.contact-picture img { height: 100%; width: 100%; object-fit: cover; object-position: center 60%; }
.contact-content { padding: 70px 11%; align-self: center; }
.contact-content h2 { font-size: clamp(42px, 4.7vw, 68px); }
.contact-content h2 em { color: #e2e9c8; }
.contact-content > p:not(.eyebrow) { font-size: 12px; color: #e0e8d8; margin-top: 25px; }
.contact-content .button { margin-top: 28px; }
.contact-email { display: block; width: fit-content; max-width: 100%; overflow-wrap: anywhere; margin-top: 18px; font-size: 10px; padding-block: 10px; }
.site-footer { padding-top: 56px; }
.footer-main { display: grid; grid-template-columns: 1.15fr 1fr 1fr auto; align-items: center; gap: 35px; padding-bottom: 40px; }
.footer-main > p { font-size: 11px; color: var(--muted); }
.footer-main > div { display: grid; }
.footer-main > div a, .back-top { font-size: 10px; text-decoration: none; min-height: 35px; display: inline-flex; align-items: center; }
.back-top { gap: 17px; }
.back-top span { font-size: 25px; }
.footer-bottom { border-top: 1px solid var(--line); display: flex; justify-content: space-between; gap: 20px; padding-block: 23px; color: #61705b; font-size: 8px; }
.photo-dialog { border: 0; border-radius: 0; padding: 16px; background: var(--deep); color: white; max-width: min(92vw, 1200px); max-height: 94svh; overflow: auto; }
.photo-dialog::backdrop { background: #0c1a14de; }
.photo-dialog > img { max-height: 78svh; width: auto; max-width: 100%; margin: auto; object-fit: contain; }
.photo-dialog p { font-size: 12px; padding-top: 12px; }
.dialog-close { position: absolute; right: 24px; top: 24px; width: 44px; height: 44px; border-radius: 0; background: var(--white); color: var(--ink); border: 0; font-size: 28px; z-index: 1; }
@keyframes arrive { from { opacity: 0; transform: translateY(16px); } to { opacity: 1; transform: translateY(0); } }
.hero-copy { animation: arrive .7s ease both; }
@media (prefers-reduced-motion: no-preference) {
  .motion-ready .reveal { opacity: 0; transform: translateY(20px); transition: opacity .65s ease, transform .65s ease; }
  .motion-ready .reveal.is-visible { opacity: 1; transform: none; }
}
@media (max-width: 1100px) {
  .shell { width: calc(100% - 72px); }
  .site-header { left: 36px; right: 36px; gap: 20px; }
  .desktop-nav { gap: 20px; }
  .nav-call small { display: none; }
  .hero { min-height: 780px; }
  .hero-project { right: 24px; max-width: 300px; }
  .hero-project img { width: 65px; height: 65px; }
  .location-rail { gap: 25px; padding-inline: 25px; }
  .location-rail > a { display: none; }
  .comparison { grid-template-columns: minmax(0, 1.65fr) minmax(250px, 1fr); }
  .comparison-media { height: 560px; }
  .comparison-story { padding: 35px 28px; }
  .services-layout { gap: 45px; }
  .service-photo { height: 545px; }
  .gallery { gap: 45px; }
  .review { padding: 23px; }
  .review blockquote { font-size: 14px; }
  .faq-layout { gap: 50px; }
  .footer-main { gap: 25px; }
}
@media (max-width: 850px) {
  .desktop-nav { display: none; }
  .nav-call { margin-left: auto; }
  .mobile-menu { display: block; position: relative; }
  .mobile-menu > summary { display: flex; flex-direction: column; justify-content: center; align-items: center; gap: 6px; list-style: none; width: 44px; height: 44px; cursor: pointer; }
  .mobile-menu > summary span { height: 1.5px; width: 22px; background: var(--forest); transition: transform .2s; }
  .mobile-menu[open] > summary span:first-child { transform: translateY(3.75px) rotate(45deg); }
  .mobile-menu[open] > summary span:last-child { transform: translateY(-3.75px) rotate(-45deg); }
  .mobile-menu nav { position: absolute; top: 60px; right: -12px; width: 230px; padding: 15px; background: var(--white); box-shadow: 0 12px 30px #14261b33; border-radius: 0; display: grid; }
  .mobile-menu nav a { padding: 12px; text-decoration: none; font-size: 13px; }
  .section-space { padding-block: 85px; }
  .section-heading { gap: 35px; }
  .section-heading > p { max-width: 230px; font-size: 12px; }
  .hero-project { display: none; }
  .hero-copy { max-width: 670px; padding-inline: 7%; }
  .comparison { grid-template-columns: 1.6fr 1fr; }
  .comparison-media { height: 545px; }
  .comparison-story { padding: 27px 23px; }
  .comparison-story h3 { font-size: 30px; }
  .mini-pair { margin-top: 23px; }
  .mini-pair img { height: 75px; }
  .services-layout { gap: 32px; grid-template-columns: .85fr 1.15fr; }
  .service-list h3 { font-size: 24px; }
  .service-list summary { gap: 10px; }
  .service-body { padding-left: 24px; }
  .gallery-wide .gallery-button { height: 380px; }
  .gallery-path .gallery-button { height: 440px; }
  .gallery-night .gallery-button { height: 350px; }
  .gallery-night { padding-top: 90px; }
  .gallery figcaption { align-items: start; flex-direction: column; gap: 4px; }
  .review-grid { grid-template-columns: 1fr; gap: 14px; }
  .review { min-height: auto; padding: 25px; }
  .review blockquote { font-size: 19px; max-width: 590px; margin: 16px 0 20px; }
  .review figcaption { display: flex; align-items: center; justify-content: space-between; }
  .faq-layout { grid-template-columns: 1fr; gap: 30px; }
  .contact-content { padding: 55px 10%; }
  .contact-picture { min-height: 500px; }
  .footer-main { grid-template-columns: 1.2fr .8fr auto; }
  .footer-main > p { display: none; }
}
@media (max-width: 650px) {
  .shell { width: calc(100% - 40px); }
  .opening { padding: 10px 10px 0; }
  .site-header { top: 23px; left: 23px; right: 23px; min-height: 65px; padding: 8px 10px; gap: 6px; border-radius: 0; }
  .brand { gap: 7px; }
  .brand img { width: 42px; height: 42px; }
  .brand strong { font-size: 23px; }
  .brand small { font-size: 5.4px; margin-top: 4px; }
  .nav-call { gap: 0; }
  .nav-call > span:last-child { display: none; }
  .phone-icon { height: 38px; width: 38px; }
  .nav-call:after { content: 'Call'; margin-left: 5px; font-size: 10px; font-weight: 750; }
  .mobile-menu summary { width: 38px; }
  .mobile-menu nav { right: -10px; top: 55px; }
  .hero { min-height: 740px; border-radius: 0; }
  .hero-photo img { object-position: center center; }
  .hero-shade { background: linear-gradient(0deg, #000000ed 0%, #000000bd 42%, #00000055 73%, #00000020); }
  .hero-copy { padding: 161px 24px 75px; }
  .google-proof { margin-bottom: 28px; }
  .hero h1 { font-size: clamp(44px, 11.1vw, 68px); letter-spacing: -.048em; }
  .hero .eyebrow { font-size: 7.5px; letter-spacing: .1em; margin-bottom: 16px; }
  .hero-intro { margin-top: 24px; font-size: 12px; max-width: 300px; }
  .hero-actions { margin-top: 25px; gap: 10px 22px; }
  .hero-actions .button { font-size: 11px; gap: 21px; min-height: 52px; }
  .hero-actions .text-link { font-size: 11px; }
  .hero-caption { left: 24px; bottom: 19px; right: auto; font-size: 7px; }
  .location-rail { gap: 10px; padding: 26px 10px; flex-wrap: wrap; }
  .location-rail > p { width: 100%; font-size: 10px; text-align: center; margin-bottom: 9px; }
  .location-rail > p br { display: none; }
  .location-rail > p strong { margin-left: 3px; }
  .location-rail > span:not(.sun-icon) { font-size: 23px; gap: 7px; }
  .location-rail .sun-icon { font-size: 22px; }
  .location-rail small { font-size: 5px; width: 30px; }
  .section-space { padding-block: 70px; }
  .section-heading { display: block; margin-bottom: 30px; }
  .section-heading h2 { font-size: clamp(35px, 9vw, 48px); }
  .section-heading > p { max-width: 320px; margin-top: 20px; font-size: 12px; }
  .eyebrow { font-size: 7.5px; margin-bottom: 17px; }
  .project-tabs { gap: 12px; margin-bottom: 17px; }
  .project-tabs button { flex: 1; text-align: left; font-size: 10px; line-height: 1.5; padding: 12px 0; }
  .project-tabs button span { display: block; margin-bottom: 3px; font-size: 8px; }
  .comparison { grid-template-columns: 1fr; border-radius: 0; }
  .comparison-media { height: auto; aspect-ratio: 4/5; }
  .comparison-photo img { object-position: center center; }
  .image-state { top: 15px; left: 15px; font-size: 9px; }
  .state-switch { bottom: 16px; }
  .state-switch button { min-height: 44px; font-size: 11px; }
  .comparison-story { display: block; padding: 27px; }
  .comparison-story h3 { margin-top: 13px; font-size: 34px; }
  .comparison-story h3 br { display: none; }
  .comparison-story h3 em { display: inline; }
  .comparison-story > p:not(.view-note) { max-width: none; font-size: 12px; margin-top: 15px; }
  .mini-pair { display: none; }
  .compare-both { width: 100%; margin-top: 20px; }
  .view-note { font-size: 8px; margin-top: 12px; }
  .view-note br { display: none; }
  .services-layout { display: flex; flex-direction: column; gap: 28px; }
  .service-photo { height: 285px; width: 100%; }
  .service-photo img { object-position: center 39%; }
  .service-list { width: 100%; }
  .service-list summary { padding-block: 22px; min-height: 76px; }
  .service-list h3 { font-size: 25px; }
  .service-body { padding-left: 23px; }
  .service-body p, .service-body ul { font-size: 12px; }
  .gallery { display: block; }
  .gallery figure { margin-top: 30px; }
  .gallery-wide { margin-top: 0 !important; }
  .gallery-wide .gallery-button { height: 280px; }
  .gallery-path .gallery-button { height: 440px; }
  .gallery-night { padding-top: 0; }
  .gallery-night .gallery-button { height: 350px; }
  .gallery figcaption { flex-direction: row; align-items: center; font-size: 10px; padding-top: 12px; }
  .gallery figcaption small { font-size: 6px; text-align: right; }
  .review-score { margin-top: 28px; }
  .review-score > strong { font-size: 55px; }
  .review-grid { gap: 12px; }
  .review { padding: 25px; }
  .review blockquote { font-size: 16px; }
  .review figcaption { display: grid; gap: 0; }
  .review figcaption a { min-height: 40px; }
  .reviews-note { font-size: 7px; }
  .faq-intro h2 { font-size: 40px; }
  .faq-intro > p:not(.eyebrow) { margin-top: 20px; }
  .faq-list summary { font-size: 12px; min-height: 74px; }
  .contact-section { width: calc(100% - 20px); display: flex; flex-direction: column; border-radius: 0; }
  .contact-picture { min-height: 0; height: 250px; }
  .contact-picture img { object-position: center 44%; }
  .contact-content { padding: 39px 27px 44px; width: 100%; }
  .contact-content h2 { font-size: clamp(38px, 10vw, 52px); }
  .contact-content > p:not(.eyebrow) { margin-top: 22px; font-size: 11px; }
  .contact-content .button { font-size: 11px; }
  .contact-email { font-size: 9px; }
  .site-footer { padding-top: 38px; }
  .footer-main { grid-template-columns: 1fr 1fr; gap: 25px; padding-bottom: 30px; }
  .footer-main .brand { grid-column: 1/-1; }
  .footer-main .brand img { height: 55px; width: 55px; }
  .footer-main .brand strong { font-size: 29px; }
  .footer-main .brand small { font-size: 6.8px; }
  .back-top { justify-content: end; }
  .footer-bottom { display: grid; gap: 12px; font-size: 7px; }
  .footer-bottom a { width: fit-content; min-height: 35px; display: inline-flex; align-items: center; }
}
@media (max-width: 360px) {
  .site-header { left: 20px; right: 20px; padding-inline: 7px; }
  .brand strong { font-size: 20px; }
  .brand small { font-size: 4.8px; }
  .brand img { width: 36px; height: 36px; }
  .nav-call:after { display: none; }
  .hero-copy { padding-inline: 20px; }
  .hero h1 { font-size: 41px; }
  .location-rail > span:not(.sun-icon) { font-size: 20px; }
  .comparison-story { padding: 24px; }
  .service-list h3 { font-size: 21px; }
  .gallery figcaption small { max-width: 74px; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *:before, *:after { animation: none !important; transition: none !important; }
}

/* Supporting copy remains readable on compact screens. */
.hero-intro, .section-heading > p, .comparison-story > p:not(.view-note), .service-body, .service-body p, .service-body ul, .faq-intro > p:not(.eyebrow), .faq-list details p, .contact-content > p:not(.eyebrow) { font-size: 14px; }
.eyebrow, .hero .eyebrow, .project-number, .view-note, .reviews-note, .gallery figcaption small, .hero-caption, .service-photo-caption { font-size: 10px; }
.review figcaption strong { font-size: 13px; }
.review figcaption a, .review-score a, .contact-email { font-size: 12px; }
.footer-main > div a, .back-top, .footer-bottom a, .review figcaption a, .contact-email, .desktop-nav a, .review-score a, .location-rail > a { min-height: 44px; }
.footer-bottom { font-size: 10px; }
@media (max-width: 650px) {
.gallery figcaption { align-items: start; }
.gallery figcaption small { max-width: 110px; }
.hero .eyebrow, .hero-caption { font-size: 9px; }
.contact-email { font-size: 11px; }
}

/* Owner-directed dark contractor identity. */
:root { --paper:#151916; --white:#202621; --forest:#26392a; --deep:#111512; --ink:#f3f3ed; --muted:#b7beb5; --lime:#9ac653; --line:#404b40; --sun:#e3a441; }
body { background:var(--paper); color:var(--ink); }
h1,h2,h3 { font-weight:750; letter-spacing:-.035em; }
h1 em,h2 em,h3 em { font:inherit; letter-spacing:inherit; color:var(--lime); }
.brand strong { font:800 27px/1 Manrope,sans-serif; letter-spacing:-.045em; }
.brand img { border-radius:50%; }
.site-header { position:relative; inset:auto; min-height:94px; padding:16px max(5%,calc((100vw - 1260px)/2)); background:#151916; box-shadow:none; border-bottom:1px solid var(--line); }
.desktop-nav a { font-size:13px; }
.desktop-nav a:hover { color:var(--lime); }
.nav-call { border-left:1px solid var(--line); padding-left:24px; min-height:44px; }
.nav-call strong { font-size:14px; }
.nav-call small { font-size:10px; }
.opening { padding:0; }
.hero { min-height:680px; }
.hero-copy { padding:105px max(5%,calc((100vw - 1260px)/2)) 110px; max-width:1000px; }
.hero h1 { font-size:clamp(48px,5.5vw,80px); max-width:800px; }
.hero h1 em { color:white; }
.hero-shade { background:linear-gradient(90deg,#000000f2 0%,#000000bf 40%,#00000026 100%); }
.hero-intro { max-width:440px; font-size:16px; }
.google-proof { margin-bottom:28px; }
.button { padding:16px 27px; font-size:14px; justify-content:center; }
.button:hover { transform:none; }
.button-lime:hover { background:#afd568; }
.hero-actions .text-link { font-size:14px; }
.location-rail { background:#202820; padding-block:26px; }
.location-rail > span:not(.sun-icon) { font:700 23px Manrope,sans-serif; }
.location-rail small { font-size:8px; }
.location-rail .sun-icon { color:var(--sun); }
.section-space { padding-block:88px; }
.eyebrow { color:#b9c1b6; }
.eyebrow i { background:var(--sun); border-radius:0; }
.section-heading > p { font-size:15px; }
.project-tabs button { color:#bcc5b8; font-size:13px; }
.project-tabs button[aria-selected=true] { color:var(--lime); border-color:var(--lime); }
.comparison { background:transparent; border-block:1px solid var(--line); padding-block:24px; color:var(--ink); }
.comparison-story { padding-right:0; }
.comparison-story h3 em { color:var(--lime); }
.image-state { background:#151916; color:white; }
.state-switch { background:#151916; box-shadow:none; }
.state-switch:before { background:var(--lime); }
.state-switch button { color:white; }
.state-switch button[aria-pressed=true] { color:#15200f; }
.services-section { background:#1e251f; }
.service-list,.service-list details { border-color:var(--line); }
.service-body { color:var(--muted); }
.service-body a { color:var(--lime); }
.service-body li:before { content:'•'; color:var(--lime); }
.service-plus { border:0; background:none; color:var(--lime); }
.service-list details[open] .service-plus { background:none; color:var(--lime); }
.service-photo-caption { background:#151916; color:white; }
.reviews-section { background:#202820; }
.review-grid { gap:0; border-top:1px solid #53604f; }
.review { background:transparent; padding:30px 32px; border-right:1px solid #53604f; }
.review:first-child { padding-left:0; }
.review:last-child { border:0; padding-right:0; }
.review figcaption a { color:#c4d5b5; }
.stars { color:var(--sun); }
.reviews-note { color:#b7beb5; }
.faq-list summary span { background:transparent; color:var(--lime); }
.contact-section { width:100%; background:#253528; border-block:1px solid var(--line); }
.contact-content h2 em { color:var(--lime); }
.footer-bottom { color:var(--muted); }
.skip-link { color:var(--deep); }
.mobile-menu nav { background:#202820; border:1px solid var(--line); color:white; }
.mobile-menu > summary span { background:white; }
.dialog-close { color:white; border:1px solid var(--line); }
@media(max-width:850px) {
 .site-header { padding:14px 28px; gap:20px; }
 .hero-copy { padding-inline:36px; }
 .review { padding:26px 0; border-right:0; border-bottom:1px solid #53604f; }
 .review:last-child { padding-right:0; }
}
@media(max-width:650px) {
 .site-header { min-height:80px; padding:12px 20px; gap:12px; }
 .brand strong { font-size:23px; }
 .nav-call { padding-left:12px; }
 .nav-call:after { font-size:13px; color:var(--lime); }
 .hero { min-height:650px; }
 .hero-copy { padding:65px 24px 95px; }
 .hero h1 { font-size:43px; }
 .hero-intro { font-size:15px; }
 .hero-actions .button { font-size:13px; padding:15px 22px; }
 .hero-shade { background:linear-gradient(90deg,#000000de,#00000066),linear-gradient(0deg,#000000ed,transparent); }
 .section-space { padding-block:62px; }
 .section-heading h2 { font-size:35px; }
 .comparison { padding-top:16px; }
 .comparison-story { padding:27px 0 10px; }
 .comparison-story h3 { font-size:30px; }
 .contact-section { width:100%; }
 .contact-content h2 { font-size:38px; }
 .location-rail > p { font-size:11px; }
 .location-rail > span:not(.sun-icon) { font-size:20px; }
}
@media(max-width:360px) {
 .site-header { padding-inline:14px; gap:8px; }
 .brand strong { font-size:20px; }
 .hero h1 { font-size:37px; }
 .nav-call:after { display:block; }
}

/* Flyer-led black, white, and lawn-green composition. */
:root { --paper:#111312; --white:#202321; --forest:#253528; --deep:#0b0e0c; --ink:#fff; --lime:#9ac653; }
.site-header,.site-footer { background:#111312; }
.google-mark { width:32px; height:32px; flex:none; }
.eyebrow { display:block; letter-spacing:.08em; }
.eyebrow i,.eyebrow:before { display:none; }
.location-rail { display:block; padding:0; background:#fff; color:#171b17; border-bottom:1px solid #d9ded8; }
.location-carousel { display:flex; align-items:center; gap:0; overflow-x:auto; scroll-snap-type:x mandatory; scrollbar-width:thin; scrollbar-color:#6c933e #e6e9e4; padding:26px max(5%,calc((100vw - 1260px)/2)); }
.location-carousel span { flex:0 0 auto; min-width:210px; padding:10px 30px; text-align:center; scroll-snap-align:start; font-size:21px; font-weight:750; white-space:nowrap; }
.services-section,.faq-section { background:#fff; color:#171b17; --muted:#566052; --line:#d2d8cf; }
.services-section h2 em,.faq-section h2 em { color:#456f23; }
.services-section .eyebrow,.faq-section .eyebrow { color:#4c623f; }
.services-section .service-body a,.services-section .service-plus,.faq-section .faq-list summary span { color:#456f23; }
.service-list details[open] .service-plus { color:#456f23; }
.reviews-section { background:#f2f4ef; color:#171b17; }
.reviews-section h2 em { color:#456f23; }
.reviews-section .eyebrow,.reviews-note { color:#4c623f; }
.review-grid,.review { border-color:#c4cebe; }
.review figcaption a { color:#456035; }
.reviews-section .stars { color:#865719; }
.gallery-filters { display:flex; flex-wrap:wrap; gap:0; border-bottom:1px solid #4b554a; margin-bottom:30px; }
.gallery-filters button { border:0; border-bottom:3px solid transparent; background:none; color:#d6ddd1; padding:14px 22px; min-height:48px; font-weight:700; }
.gallery-filters button[aria-pressed=true] { color:var(--lime); border-bottom-color:var(--lime); }
.gallery.filtered { grid-template-columns:1fr; }
.gallery.filtered figure { grid-column:1; padding-top:0; }
.gallery.filtered .gallery-button { height:min(680px,75vw); }
.gallery-button:after { content:'View Photo'; position:absolute; bottom:20px; right:20px; padding:10px 17px; background:#111312dd; color:white; font-size:12px; }
.photo-controls { display:flex; align-items:center; justify-content:space-between; gap:24px; }
.photo-controls button { color:white; background:none; border:1px solid #74816d; min-height:44px; padding:8px 16px; }
.photo-controls p { text-align:center; padding-top:0; }
@media(max-width:650px) {
.location-carousel { padding:18px 8px; }
.location-carousel span { min-width:175px; padding-inline:20px; font-size:19px; }
.gallery-filters button { font-size:12px; padding:12px 10px; }
.photo-controls { gap:10px; }
.photo-controls p { font-size:10px; }
.photo-controls button { font-size:11px; padding-inline:10px; }
}

/* Contact clarity and restrained finishing details. */
a { text-decoration:none; }
a:hover { opacity:.85; }
.contact-icon { width:20px; height:20px; flex:0 0 20px; }
.nav-call { gap:12px; }
.nav-call:after { content:none; display:none; }
.hero-actions { gap:16px 24px; }
.button,.text-link,.contact-email { display:inline-flex; align-items:center; gap:12px; }
.hero-actions .email-action { font-size:13px; }
.contact-email span,.email-action span { overflow-wrap:anywhere; }
.location-rail { background:#8fbb4b; color:#14200e; border:0; }
.location-carousel { scrollbar-color:#365b20 #8fbb4b; padding-block:24px; }
.location-carousel span { border-right:1px solid #365b2050; font-size:23px; letter-spacing:-.035em; }
.comparison-story h3 { max-width:100%; overflow-wrap:normal; }
.comparison-story h3 em { display:block; }
.mini-pair { grid-template-columns:1fr 1fr; gap:12px; }
.compare-both { border:1px solid #6c7b63; justify-content:center; margin-top:24px; padding:10px 18px; }
.review-grid { gap:22px; border:0; }
.review,.review:first-child,.review:last-child { padding:30px; background:#fff; border:1px solid #dce2d6; border-radius:6px; box-shadow:0 4px 16px #18271106; }
.review figcaption a { font-weight:700; }
.button,.gallery-button,.service-photo,.comparison-media,.mini-pair img,.photo-dialog,.photo-controls button,.compare-both { border-radius:5px; }
.state-switch,.state-switch:before,.state-switch button { border-radius:4px; }
.site-footer { padding-top:0; border-top:4px solid #8fbb4b; }
.footer-lead { display:flex; align-items:center; justify-content:space-between; gap:28px; padding-block:46px; border-bottom:1px solid #3d473b; }
.footer-lead p { max-width:650px; font-size:30px; font-weight:750; line-height:1.3; letter-spacing:-.025em; }
.footer-main { grid-template-columns:1.1fr .6fr 1.2fr; align-items:start; padding-block:50px; gap:45px; }
.footer-identity p { font-size:13px; color:#bcc4b7; margin-top:22px; }
.footer-identity p+p { margin-top:7px; }
.footer-main h3 { font-size:15px; letter-spacing:0; margin-bottom:15px; }
.footer-links,.footer-contact { display:flex; flex-direction:column; align-items:start; }
.footer-main .footer-links a,.footer-main .footer-contact > a { font-size:13px; min-height:44px; display:flex; align-items:center; gap:12px; }
.footer-contact > a span { overflow-wrap:anywhere; }
.footer-social { display:flex; gap:24px; margin-top:16px; }
.footer-social a { display:flex; align-items:center; gap:8px; min-height:44px; font-size:13px; }
.footer-bottom { align-items:center; padding-block:20px; }
@media(max-width:850px) { .footer-main { grid-template-columns:1fr 1fr; } .footer-contact { grid-column:1/-1; } .footer-lead p { font-size:25px; } }
@media(max-width:650px) {
 .nav-call { min-width:44px; padding-left:12px; }
 .nav-call .contact-icon { width:22px; height:22px; }
 .hero-actions { align-items:start; flex-direction:column; gap:10px; }
 .hero-actions .email-action { font-size:12px; }
 .contact-email { font-size:12px; }
 .location-carousel span { font-size:21px; }
 .comparison-story h3 { font-size:29px; }
 .comparison-story h3 em { display:block; }
 .review,.review:first-child,.review:last-child { padding:25px; }
 .footer-lead { align-items:start; flex-direction:column; padding-block:32px; gap:22px; }
 .footer-main { grid-template-columns:1fr 1fr; gap:35px 22px; padding-block:35px; }
 .footer-identity { grid-column:1/-1; }
 .footer-contact { grid-column:1/-1; }
 .footer-main .brand { grid-column:auto; }
 .footer-main .footer-contact > a { font-size:12px; }
 .footer-bottom { display:flex; flex-wrap:wrap; }
}

.hero-actions .email-action span { font-size:13px; }
@media(max-width:650px) { .hero-actions .email-action span { font-size:12px; } }

/* Compact controls and a quieter location rail. */
.nav-call { border-left:0; padding-left:0; }
.mobile-menu > summary { position:relative; width:44px; height:44px; padding:0; display:flex; align-items:center; justify-content:center; }
.mobile-menu > summary span { position:absolute; width:22px; height:2px; left:11px; background:#fff; transform:none; transition:transform .2s,top .2s; }
.mobile-menu > summary span:first-child { top:17px; }
.mobile-menu > summary span:last-child { top:25px; }
.mobile-menu[open] > summary span:first-child { top:21px; transform:rotate(45deg); }
.mobile-menu[open] > summary span:last-child { top:21px; transform:rotate(-45deg); }
.button-email { background:#303d30; border:1px solid #91a481; color:#fff; }
.button-email:hover { background:#40533a; }
.hero-actions .button-email { font-size:14px; min-height:56px; }
.hero-actions .email-action span { font-size:14px; }
.contact-email.button { margin-left:12px; font-size:14px; }
.location-rail { background:#202b21; color:#c8dda9; border-block:1px solid #3a4734; }
.location-carousel { padding-block:16px; scrollbar-color:#718963 #202b21; }
.location-carousel span { font-size:17px; font-weight:600; letter-spacing:0; min-width:180px; border-color:#53644866; }
.compare-both { width:fit-content; align-self:flex-start; min-height:44px; padding:10px 18px; border-color:#839675; background:#2b3d29; border-radius:5px; font-size:12px; }
.stars,.google-proof .stars,.reviews-section .stars { color:#e9a91d; }
@media(max-width:650px) {
 .nav-call { padding-left:0; min-width:36px; }
 .hero-actions { flex-direction:row; align-items:center; gap:12px; }
 .hero-actions .button { padding:14px 16px; min-height:52px; gap:9px; }
 .hero-actions .button-email,.hero-actions .email-action span { font-size:13px; }
 .location-carousel { padding-block:14px; }
 .location-carousel span { font-size:15px; min-width:150px; padding-inline:22px; }
 .compare-both { width:fit-content; margin-top:20px; }
 .contact-email.button { margin-left:0; }
}

.location-rail { color: #fff; }

.google-mark { width: 24px; height: 24px; }

.review-top .stars { font-size:18px; letter-spacing:3px; }
.review-score .stars { font-size:20px; letter-spacing:3px; }
.comparison { border-bottom:0; padding-bottom:0; }
.contact-section { position:relative; grid-template-columns:1fr 1fr; background:#172119; border:0; min-height:570px; }
.contact-picture { min-height:570px; position:relative; }
.contact-picture:after { content:''; position:absolute; inset:0; background:linear-gradient(90deg,transparent 65%,#17211966); }
.contact-content { padding:65px 9%; position:relative; border-top:5px solid #9ac653; margin:45px 8% 45px 0; }
.contact-content .eyebrow { color:#d4e4c4; margin-bottom:24px; }
.contact-content h2 { font-size:clamp(44px,4.8vw,70px); line-height:1.05; }
.contact-content > p:not(.eyebrow) { font-size:15px; line-height:1.8; max-width:390px; }
.contact-content .button { min-height:54px; }
.contact-content .contact-email.button { margin-left:0; margin-top:12px; }
@media(max-width:650px) {
 .contact-section { display:flex; flex-direction:column; min-height:0; }
 .contact-picture { min-height:0; height:290px; }
 .contact-picture:after { background:linear-gradient(0deg,#17211980,transparent 50%); }
 .contact-content { width:auto; margin:0 24px; padding:36px 0 44px; }
 .contact-content h2 { font-size:46px; }
 .contact-content > p:not(.eyebrow) { font-size:14px; }
 .contact-content .contact-email.button { margin-left:10px; }
}
@media(max-width:360px) { .contact-content .contact-email.button { margin-left:0; } }

.contact-picture { height:620px; min-height:0; }
.contact-picture img { position:absolute; inset:0; }
.contact-content .contact-email.button { margin-left:12px; }
@media(max-width:650px) { .contact-picture { height:290px; } .contact-content .contact-email.button { margin-left:10px; } }
@media(max-width:360px) { .contact-content .contact-email.button { margin-left:0; } }

.contact-content { border-top: 0; }

.site-header { position:sticky; top:0; z-index:50; }
html { scroll-padding-top:114px; }
@media(max-width:650px) { html { scroll-padding-top:100px; } }

.gallery-button:after { border-radius:5px; }
.review-google { width:22px; height:22px; }
.hero h1 em { color:var(--lime); }

/* One reading sequence: project selection, context, then the work. */
.site-header { border-bottom:4px solid #8fbb4b; }
.comparison { border:0; padding:0; display:flex; flex-direction:column; gap:26px; }
.comparison-story { order:-1; padding:10px 0 0; display:grid; grid-template-columns:1fr 1fr auto; align-items:center; gap:12px 36px; }
.project-number { grid-column:1/-1; }
.comparison-story h3 { margin:0; font-size:36px; }
.comparison-story h3 em { display:inline; }
.comparison-story h3 br { display:none; }
.comparison-story > p:not(.view-note) { margin:0; max-width:360px; font-size:14px; }
.comparison-story .compare-both { margin:0; align-self:center; white-space:nowrap; }
.comparison-media { width:100%; height:660px; }
.comparison-photo img { object-position:center 58%; }
@media(max-width:850px) {
 .comparison-story { grid-template-columns:1fr auto; gap:16px 24px; }
 .comparison-story h3 { grid-column:1/-1; }
 .comparison-media { height:560px; }
}
@media(max-width:650px) {
 .comparison { gap:22px; }
 .comparison-story { display:flex; flex-direction:column; align-items:flex-start; gap:16px; padding:4px 0 0; }
 .comparison-story h3 { font-size:30px; }
 .comparison-story h3 em { display:block; }
 .comparison-story > p:not(.view-note) { margin:0; }
 .comparison-story .compare-both { align-self:flex-start; }
 .comparison-media { height:auto; aspect-ratio:4/5; }
}

.work-section { padding-block: 116px; }
@media (max-width:650px) { .work-section { padding-block: 80px; } }

.google-proof .stars { font-size:17px; letter-spacing:2px; }
.review-top .stars { font-size:22px; letter-spacing:3px; }
.review-score .stars { font-size:24px; letter-spacing:3px; }
@media(min-width:651px) {
 .comparison-story { order:1; grid-template-columns:1fr 1fr; padding-top:8px; }
}
@media(max-width:650px) {
 .hero-copy { text-align:center; display:flex; flex-direction:column; align-items:center; }
 .google-proof { margin-inline:auto; }
 .hero-actions { justify-content:center; width:100%; }
 .hero-intro { margin-inline:auto; }
 .hero-caption { left:24px; right:24px; text-align:center; }
}

@media(max-width:650px) {
 .hero { min-height:0; }
 .hero-copy { text-align:left; align-items:flex-start; padding:65px 24px; }
 .google-proof { margin-inline:0; }
 .hero-actions { justify-content:flex-start; }
 .hero-intro { margin-inline:0; }
}

.portfolio-section .section-heading { flex-direction:column; align-items:center; text-align:center; gap:24px; }
.portfolio-section .section-heading .eyebrow { text-align:center; }
@media(max-width:650px) { .portfolio-section .section-heading { display:flex; } }

.work-section .section-heading { display:flex; flex-direction:column; align-items:flex-start; gap:20px; }
.work-section .section-heading > p { max-width:760px; margin:0; padding:0; }

/* Approved audit refinements: readable labels and visible mobile service context. */
.eyebrow,.hero .eyebrow,.project-number,.gallery figcaption small,.reviews-note { font-size:11px; }
.footer-bottom { font-size:12px; }
.review figcaption a,.review-score a { font-size:14px; }
.location-rail { position:relative; }
.location-rail:before,.location-rail:after { content:''; position:absolute; top:0; bottom:0; width:40px; pointer-events:none; z-index:1; opacity:0; }
.location-rail:before { left:0; background:linear-gradient(90deg,#202b21,transparent); }
.location-rail:after { right:0; background:linear-gradient(270deg,#202b21,transparent); }
.location-rail.has-more-left:before,.location-rail.has-more-right:after { opacity:1; }
@media(max-width:650px) {
 .services-layout > .service-photo { display:none; }
 .service-body .service-photo { width:100%; height:260px; margin:0 0 22px; }
 .service-body { padding-left:0; }
 .service-body .service-photo-caption { font-size:11px; }
 .footer-bottom { font-size:11px; }
}

.footer-bottom { flex-wrap:wrap; }
/* Client review refinements: continuous places, compact proportions, calm media. */
.location-carousel { overflow:hidden; padding:16px 64px 16px 0; scroll-snap-type:none; }
.location-track,.location-group { display:flex; flex:none; width:max-content; }
.location-track { animation:locations-loop 52s linear infinite; will-change:transform; }
.location-carousel span { min-width:160px; padding:10px 24px; }
@keyframes locations-loop { to { transform:translateX(-50%); } }
.location-carousel:hover .location-track,.location-carousel.is-paused .location-track { animation-play-state:paused; }
.location-motion { position:absolute; right:8px; top:50%; transform:translateY(-50%); z-index:2; background:#202b21; border:1px solid #61735b; color:white; border-radius:5px; min-height:44px; padding:8px; font-size:11px; }
.location-rail:before,.location-rail:after { opacity:1; }
.service-photo img { transition:none; }
.photo-dialog { padding:44px 24px 24px; }
.photo-dialog > img { max-height:calc(90svh - 160px); }
.photo-controls { padding-top:24px; gap:24px; }
.photo-controls button { flex-shrink:0; }
.footer-social { flex-wrap:wrap; gap:12px 22px; }
.gallery-filters { flex-wrap:nowrap; }
.gallery-filters button { white-space:nowrap; }
@media(min-width:851px) {
 h2,.section-heading h2 { font-size:clamp(36px,3.2vw,48px); }
 .hero { min-height:560px; }
 .hero h1 { font-size:clamp(46px,4.3vw,64px); max-width:690px; }
 .hero-copy { padding-block:76px; }
 .section-space,.work-section { padding-block:80px; }
 .work-section > .shell { width:min(1080px,calc(100% - 120px)); }
 .portfolio-section > .shell { width:min(1360px,calc(100% - 64px)); }
 .faq-section > .shell { width:min(1020px,calc(100% - 120px)); }
 .section-heading { margin-bottom:32px; }
 .comparison-media { height:clamp(340px,52vh,500px); }
 .comparison-story h3 { font-size:30px; }
 .service-photo { height:460px; }
 .services-layout { gap:56px; }
 .gallery-wide .gallery-button { height:clamp(320px,48vh,460px); }
 .gallery-path .gallery-button,.gallery-night .gallery-button { height:400px; }
 .gallery.filtered .gallery-button { height:min(500px,60vh); }
 .contact-picture { height:510px; }
 .contact-section { min-height:0; }
 .contact-content { margin-block:20px; padding-block:48px; }
 .contact-content h2 { font-size:48px; }
}
@media(max-width:650px) {
 .gallery-filters { justify-content:space-between; gap:0; }
 .gallery-filters button { padding:12px 5px; font-size:clamp(10px,2.85vw,12px); letter-spacing:-.02em; }
 .photo-dialog { padding:44px 16px 20px; }
 .photo-controls { gap:12px; padding-top:24px; }
 .photo-controls p { font-size:11px; }
 .location-carousel span { font-size:14px; }
}
@media(prefers-reduced-motion:reduce) {
 .location-track { animation:none; transform:none; width:100%; }
 .location-carousel { padding:16px; }
 .location-group { flex-wrap:wrap; justify-content:center; width:100%; }
 .location-group span { min-width:0; font-size:13px; padding:6px 12px; }
 .location-group[aria-hidden],.location-motion { display:none; }
}
.brand img.brand-lockup { width:230px; height:auto; border-radius:0; }
.site-header,.site-footer { background:#000; }
@media(max-width:650px) { .brand img.brand-lockup { width:185px; } }
@media(max-width:360px) { .brand img.brand-lockup { width:158px; } }
/* Keep the horizontal compositions with a little more space at the sides. */
.location-carousel { padding-right:0; }
.location-carousel:hover .location-track { animation-play-state:running; }
@media(min-width:851px) {
 .work-section > .shell { width:min(1000px,calc(100% - 160px)); }
 .portfolio-section > .shell { width:min(1180px,calc(100% - 120px)); }
}

/* Center the project filters on every screen size. */
.gallery-filters { justify-content:center; }

@media(max-width:650px) {
 .hero-actions,.contact-actions { display:flex; flex-direction:row; flex-wrap:nowrap; align-items:center; gap:10px; }
 .contact-actions { margin-top:28px; }
 .hero-actions .button,.contact-actions .button { font-size:13px; line-height:1.3; white-space:nowrap; padding:14px 12px; gap:8px; min-height:52px; margin:0; }
 .hero-actions .email-action span,.contact-actions .button span { font-size:inherit; overflow-wrap:normal; }
 .contact-content .contact-email.button { margin:0; }
 .hero-actions .contact-icon,.contact-actions .contact-icon { width:18px; height:18px; flex-basis:18px; }
}
@media(max-width:360px) {
 .hero-actions,.contact-actions { gap:8px; }
 .hero-actions .button,.contact-actions .button { padding-inline:10px; gap:6px; font-size:12px; }
}

/* Readable mobile filters with full-height touch targets. */
@media(max-width:650px) {
 .gallery-filters { justify-content:safe center; overflow-x:auto; margin-inline:-12px; padding-inline:2px; }
 .gallery-filters button { flex:0 0 auto; font-size:14px; letter-spacing:0; padding:14px 6px; min-height:48px; }
}
@media(max-width:650px) {
 #portfolio-title em { display:block; }
}
/* Mobile navigation follows the black and green header palette. */
.mobile-menu > summary span:first-child { top:14px; }
.mobile-menu > summary span:nth-child(2) { top:21px; }
.mobile-menu > summary span:last-child { top:28px; }
.mobile-menu[open] > summary span:nth-child(2) { opacity:0; }
.mobile-menu nav { background:#000; color:#fff; border:0; border-bottom:4px solid #8fbb4b; padding:12px; box-shadow:0 14px 28px #0005; }
.mobile-menu nav a { min-height:48px; display:flex; align-items:center; }
.mobile-menu nav a:hover,.mobile-menu nav a:focus-visible { background:#172119; color:var(--lime); }

/* Keep viewport gutters outside the hero text's usable width. */
@media(min-width:851px) {
 .hero-copy { width:min(1260px,90%); max-width:none; margin-inline:auto; padding-inline:0; }
 .hero-actions .button { white-space:nowrap; }
}

.contact-picture picture { display:block; height:100%; }
.contact-picture img { object-position:center 45%; }
