@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Manrope:wght@400;500;600;700;800&display=swap');
:root{--ink:#252626;--paper:#faf9f6;--orange:#ff6b00;--muted:#666961;--line:#dedfd9}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:25px}body{margin:0;background:var(--paper);color:var(--ink);font-family:'DM Sans',Arial,sans-serif}a{color:inherit;text-decoration:none}a:focus-visible{outline:3px solid var(--orange);outline-offset:5px}p{line-height:1.7}h1,h2,h3{font-family:Manrope,Arial,sans-serif}h1,h2{letter-spacing:-.055em;line-height:1.08;font-weight:600}h2{font-size:clamp(36px,4.2vw,62px);margin:20px 0 28px}h3{letter-spacing:-.025em}em{font-style:normal;color:var(--orange)}header{height:100px;padding:0 6%;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);gap:24px}.brand{font-family:Manrope,Arial,sans-serif;font-size:32px;font-weight:800;line-height:1;letter-spacing:-2px;display:inline-block}.brand span{color:var(--orange)}.brand small{display:block;font-size:9px;letter-spacing:2.3px;margin-top:7px}nav{display:flex;gap:32px;font-size:14px}nav a:hover,.email:hover{color:var(--orange)}.header-phone{font-size:15px;font-weight:700}.hero{display:grid;grid-template-columns:1.05fr 1fr;min-height:610px}.hero-copy{padding:72px 8% 60px 11.5%}.eyebrow{font-size:11px;font-weight:700;letter-spacing:1.8px;margin:0;line-height:1.6}h1{font-size:clamp(55px,6.2vw,90px);margin:32px 0 24px}.intro{max-width:460px;color:var(--muted);font-size:16px}.actions{display:flex;align-items:center;flex-wrap:wrap;gap:24px;margin-top:30px}.button{padding:17px 23px;font-size:13px;font-weight:700;display:inline-flex;align-items:center;border:1px solid transparent;transition:transform .2s,background .2s;background:var(--orange);color:#171717}.button:hover{transform:translateY(-3px);background:#ff882f}.text-link{font-size:13px;font-weight:700}.note{font-size:11px;color:var(--muted);margin-top:30px}.hero-art{position:relative;background:#252626;overflow:hidden;display:flex;align-items:center;justify-content:center}.hero-art img{width:100%;height:100%;object-fit:cover;position:absolute;inset:0}.caption{position:absolute;left:8%;right:8%;bottom:38px;border-top:1px solid #ffffff30;padding-top:25px;color:white;display:flex;align-items:center;justify-content:space-between;gap:14px}.caption span{font-size:9px;letter-spacing:1.5px}.caption strong{font-size:16px;font-weight:500}.strip{background:var(--orange);padding:22px 6%;display:flex;align-items:center;justify-content:space-between;gap:18px;font-size:11px;font-weight:700;letter-spacing:1.5px}.strip b{font-size:22px;font-weight:400}.section{padding:90px 6%}.section-heading{display:flex;justify-content:space-between;gap:60px;align-items:flex-end;margin-bottom:30px}.section-heading>p{max-width:355px;color:var(--muted);font-size:15px;margin-bottom:30px}.grid{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--line);border-left:1px solid var(--line)}.grid article{padding:32px;border-bottom:1px solid var(--line);border-right:1px solid var(--line);transition:background .2s}.grid article:hover{background:#f0eee7}.number{font-size:12px;color:#707169}.grid h3{font-size:23px;margin:30px 0 12px}.grid p{font-size:14px;color:var(--muted);max-width:300px;min-height:72px}.grid small{font-size:9px;letter-spacing:1.5px;font-weight:700;color:#8b4a17}.under-note{margin:26px 0 0;color:var(--muted);font-size:13px}.under-note a{color:var(--ink);border-bottom:1px solid var(--orange)}.about{display:grid;grid-template-columns:1fr 1fr;gap:10%;background:#ecece5}.about-mark{background:var(--ink);min-height:440px;position:relative;overflow:hidden;padding:30px;color:white;display:flex;align-items:flex-end}.about-mark>span{font-family:Arial,sans-serif;font-weight:900;font-size:480px;line-height:1;position:absolute;top:-75px;right:-20px;color:var(--orange);transform:rotate(-8deg)}.about-mark p{position:relative;font-size:13px;line-height:1.5;letter-spacing:2px}.about>div>p:not(.eyebrow){font-size:15px}.about>div:not(.about-mark)>p:not(.eyebrow){color:var(--muted)}.principles{border-top:1px solid #cccec5;margin-top:24px;padding-top:22px;display:grid;gap:18px}.principles strong,.principles span{display:block;font-size:13px}.principles span{margin-top:5px;color:var(--muted)}.process{display:grid;grid-template-columns:1fr 1fr;gap:10%}.process ol{padding:0;margin:0;list-style:none}.process li{display:flex;gap:26px;padding:23px 0;border-bottom:1px solid var(--line)}.process li>span{color:#b74900;font-size:13px;padding-top:4px}.process h3{font-size:21px;margin:0 0 8px}.process li p{color:var(--muted);font-size:14px;margin:0}.area{border-top:1px solid var(--line);display:grid;grid-template-columns:1.3fr 1fr;gap:10%;padding-top:65px}.area h2{font-size:clamp(34px,3.4vw,48px)}.area p{color:var(--muted);font-size:14px}.area-list{padding-top:30px}.area-list>div{border-bottom:1px solid var(--line);padding:18px 0}.area-list small{font-size:12px;line-height:1.6;display:block;color:var(--muted);margin-top:20px}.contact{background:var(--ink);color:white;display:grid;grid-template-columns:1.5fr 1fr;gap:12%}.contact .eyebrow{color:#ffac71}.contact h2{font-size:clamp(45px,5vw,76px)}.contact p{color:#bfc2bd;font-size:14px}.big-phone{font-family:Manrope,Arial,sans-serif;display:block;font-size:clamp(24px,3vw,39px);font-weight:600;letter-spacing:-1px;margin:30px 0 12px}.email{font-size:16px}.outline{border-color:#747873;color:white;background:transparent}.outline:hover{background:#444}.contact-note{display:block;font-size:11px;color:#bfc2bd;margin-top:20px;line-height:1.5}.contact aside{padding-top:65px}.contact aside h3{font-size:18px}.contact dl{font-size:13px}.contact dl>div{display:flex;justify-content:space-between;gap:16px;padding:15px 0;border-bottom:1px solid #ffffff22}.contact dd{margin:0}.contact aside p{font-size:12px}.contact hr{border:0;border-top:1px solid #ffffff22;margin:35px 0}footer{padding:36px 6%;display:flex;align-items:center;justify-content:space-between;gap:20px}footer p{font-size:13px}footer>a:not(.brand),footer small{font-size:11px;color:var(--muted)}.mobile-call{display:none}@media(min-width:1600px){body{max-width:1800px;margin:auto}}@media(max-width:900px){header{padding:0 5%;height:85px}nav{gap:18px}.hero-copy{padding:50px 8% 45px 10%}.hero-art{min-height:520px}.caption{flex-direction:column;align-items:flex-start}.hero-copy .actions{gap:20px}.section{padding:65px 5%}.grid article{padding:22px}.about,.process,.area,.contact{gap:6%}.about-mark>span{font-size:390px}.strip{letter-spacing:.5px}footer{flex-wrap:wrap}}@media(max-width:650px){nav{display:none}.header-phone{font-size:12px}.brand{font-size:28px}.hero{grid-template-columns:1fr}.hero-copy{padding:42px 6%}.hero h1{font-size:64px}.hero-art{min-height:320px}.hero-art img{object-fit:cover;object-position:center 47%}.caption{bottom:22px;flex-direction:row;align-items:center;padding-top:14px}.note{font-size:10px}.strip{display:grid;grid-template-columns:1fr 1fr;text-align:center;font-size:9px;gap:15px}.strip b{display:none}.section-heading{display:block}.section-heading>p{max-width:100%}.grid{grid-template-columns:1fr 1fr}.grid article{padding:21px 17px}.grid h3{font-size:19px;margin-top:22px}.grid p{font-size:13px;min-height:110px}.grid small{font-size:8px;letter-spacing:.8px}.about,.process,.area,.contact{grid-template-columns:1fr}.about-mark{min-height:240px;margin-bottom:35px}.about-mark>span{top:-130px;right:0;font-size:450px}.process ol{margin-top:15px}.area-list{padding-top:15px}.contact aside{padding-top:35px}.contact .actions{gap:12px}.contact .button{font-size:12px;padding:15px}.email{font-size:14px}footer{padding-bottom:92px;display:grid;grid-template-columns:1fr 1fr}footer small{grid-column:1/-1}.mobile-call{display:block;position:fixed;bottom:0;left:0;right:0;background:var(--orange);color:#171717;font-weight:700;text-align:center;padding:17px;z-index:5;font-size:14px;box-shadow:0 -3px 15px #0002}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}
/* Original supplied logo, framed without altering its artwork. */
header .brand, footer .brand{position:relative;display:block;flex:0 0 auto;width:190px;height:67px;overflow:hidden;background:#252626;line-height:normal;letter-spacing:normal}
header .brand img, footer .brand img{position:absolute;display:block;width:218px;height:218px;max-width:none;left:-14px;top:-79px}
@media(max-width:650px){header .brand,footer .brand{width:152px;height:54px}header .brand img,footer .brand img{width:174.4px;height:174.4px;left:-11.2px;top:-63.2px}}
/* Match the original logo background across header and footer. */
header,footer{background:#252626;color:#fff;border-color:#3a3b3b}
header .header-phone{color:#fff}
header nav a{color:#fff}
header nav a:hover,footer>a:not(.brand):hover{color:#ff8a38}
footer p,footer>a:not(.brand),footer small{color:#fff}
/* Header contact links. */
.header-contacts{display:flex;flex-direction:column;align-items:flex-end;gap:8px;min-width:0}
header .header-email{color:#fff;font-size:12px;line-height:1.4;overflow-wrap:anywhere}
header .header-email:hover{color:#ff8a38}
@media(max-width:650px){header{gap:12px}.header-contacts{flex:1}.header-email{max-width:100%;text-align:right}header .header-email{font-size:10px}}
@media(max-width:360px){header{height:auto;min-height:100px;flex-wrap:wrap;padding-top:12px;padding-bottom:12px}.header-contacts{flex-basis:100%;align-items:flex-start}.header-email{text-align:left}}
.project{border-top:1px solid var(--line);background:#f1f0eb}.project-comparison{margin:0}.project-comparison img{display:block;width:100%;height:auto;background:#252626}.project-comparison a{display:block}.project-comparison figcaption{display:flex;justify-content:space-between;gap:18px;padding:22px 0;font-size:14px}.project-comparison figcaption span{color:var(--muted);font-size:12px}@media(max-width:650px){.project-comparison figcaption{flex-direction:column;gap:8px}}@media(min-width:651px) and (max-width:1000px){header nav{gap:12px;font-size:12px}header{gap:16px}header .brand{width:152px;height:54px}header .brand img{width:174.4px;height:174.4px;left:-11.2px;top:-63.2px}}
/* Original charcoal panel and slogan, with a construction-inspired X. */
.about-mark.about-project{display:flex;align-items:flex-end;min-height:440px;padding:30px;background:var(--ink);position:relative;overflow:hidden}
.about-project img{position:absolute;display:block;width:78%;height:115%;right:-4%;top:-8%;object-fit:contain;pointer-events:none}
.about-mark.about-project p{position:relative;z-index:1;font-size:13px;line-height:1.5;letter-spacing:2px;color:white}
@media(max-width:650px){.about-mark.about-project{min-height:240px;margin-bottom:35px}.about-project img{width:66%;height:145%;top:-24%;right:-3%}}.deck-comparison{margin-top:36px}
/* Display original photographs at their intrinsic proportions. */
.deck-comparison{max-width:860px;margin:36px auto 0}
.natural-photo-pair{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;gap:16px;padding:16px;background:#252626}
.natural-photo-pair a{min-width:0}
.natural-photo-pair span{display:block;padding:5px 0 16px;color:#fff;font-size:12px;font-weight:700;letter-spacing:1.5px}
.natural-photo-pair a:last-child span{color:#ff8a38}
.project-comparison .natural-photo-pair img{position:static;display:block;width:100%;height:auto;max-width:100%;aspect-ratio:auto;object-fit:contain}
@media(max-width:500px){.natural-photo-pair{grid-template-columns:1fr;gap:24px}.deck-comparison{max-width:400px}}
/* Keep the introduction and logo in separate rows at every viewport width. */
.hero{grid-template-columns:minmax(0,1fr);min-height:0}
.hero-copy{padding:60px 6%;width:100%;max-width:1000px}
.hero .intro{max-width:600px}
.hero-art{min-height:0;height:clamp(300px,44vw,460px);width:100%}
.hero-art img{position:absolute;inset:auto;left:50%;top:45%;transform:translate(-50%,-50%);width:min(100%,760px);height:auto;max-width:none;object-fit:contain}
.hero-art .caption{left:6%;right:6%;bottom:25px;flex-direction:row;align-items:center}
.work-link{display:flex;justify-content:space-between;align-items:center;gap:28px;background:#f1f0eb;border-top:1px solid var(--line)}
.work-link p:not(.eyebrow){color:var(--muted)}
.work-link .button{flex-shrink:0}
.gallery-back{padding:30px 6% 0;background:#f1f0eb}
.gallery-page .project{border-top:0;padding-top:40px}
.gallery-page .project-comparison{max-width:1000px;margin-left:auto;margin-right:auto}
.gallery-page .deck-comparison{max-width:860px}
.gallery-cta{padding:50px 6% 65px;text-align:center}
header nav a[aria-current="page"]{color:#ff8a38}
@media(max-width:650px){header{height:auto;min-height:100px;flex-wrap:wrap;padding-top:12px;padding-bottom:12px}header nav{display:flex;order:3;width:100%;justify-content:space-between;gap:12px;padding-top:12px;border-top:1px solid #ffffff22;font-size:12px}.hero-copy{padding:42px 6%}.hero-art .caption{gap:12px}.hero-art .caption span{font-size:8px}.hero-art .caption strong{font-size:13px}.work-link{align-items:flex-start;flex-direction:column}}
.service-map-card{grid-column:1/-1;margin:30px 0 0;border:1px solid var(--line);background:#fff;min-width:0}
.service-map-heading{display:flex;justify-content:space-between;align-items:center;gap:20px;background:#252626;color:#fff;padding:20px 24px;font-size:12px;letter-spacing:1px}
.service-map-heading span{color:#ff9a50;font-weight:700}
#service-map{height:480px;width:100%;z-index:0;background:#e8e9e2}
.map-fallback{padding:60px 24px;text-align:center}
.map-fallback a{text-decoration:underline}
.service-map-card figcaption{padding:16px 20px;font-size:12px;color:var(--muted);line-height:1.6}
.map-key{display:inline-block;width:12px;height:12px;border:2px solid #e75d00;background:#ff6b0030;border-radius:50%;margin-right:8px}
@media(max-width:650px){#service-map{height:380px}.service-map-heading{padding:18px 16px;font-size:10px}}
.service-area-image{display:block;width:100%;height:auto;background:#f2f2e9}
/* Icon-led service navigation and dedicated service descriptions. */
.services-showcase{background:#252626;color:#fff}
.services-intro{max-width:780px;margin:0 auto 42px;text-align:center}
.services-intro .eyebrow{color:#ff9a50}
.services-intro h2{font-size:clamp(34px,4vw,58px)}
.services-intro>p:last-child{color:#c9ccc6;font-size:15px;max-width:620px;margin:0 auto}
.service-tiles{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:16px}
.service-tile{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:28px 12px 24px;border:1px solid #ffffff25;min-height:190px;transition:background .2s,border-color .2s}
.service-tile svg{width:64px;height:64px;color:#ff852f;margin-bottom:20px}
.service-tile>span{font-family:Manrope,Arial,sans-serif;font-size:16px;font-weight:700}
.service-tile small{font-size:11px;color:#bfc2bd;margin-top:10px}
.service-tile:hover{background:#343535;border-color:#ff852f}
.services-bottom{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:20px;margin-top:35px;font-size:13px;color:#c9ccc6}
.services-bottom .text-link{color:#fff}.services-bottom .button{margin-left:10px}
.back-light{display:inline-block;color:#d9dcd5;font-size:13px;margin-bottom:35px}
.services-page-intro h1{font-size:clamp(44px,5vw,72px)}
.service-jump{display:flex;flex-wrap:wrap;justify-content:center;gap:12px}
.service-jump a{padding:12px 16px;border:1px solid #ffffff35;font-size:13px}
.service-jump a:hover{border-color:var(--orange);color:#ff9a50}
.service-details{padding:0 6%}
.service-detail{display:grid;grid-template-columns:100px minmax(0,1fr) 230px;gap:36px;align-items:start;padding:65px 0;border-bottom:1px solid var(--line);scroll-margin-top:25px}
.service-detail-icon svg{width:72px;height:72px;color:#b95000}.service-detail-icon span{display:block;margin-top:14px;color:var(--muted);font-size:12px}
.service-detail h2{font-size:36px;margin:0 0 16px}.service-detail p{color:var(--muted);max-width:580px}
.service-detail ul{padding-left:20px;line-height:1.9;font-size:14px;margin-bottom:24px}
.service-request{display:flex;flex-direction:column;gap:20px;padding-top:6px}.service-request .button{justify-content:center;font-size:12px;padding:16px}
@media(max-width:1000px){.service-tiles{grid-template-columns:repeat(3,minmax(0,1fr))}.service-detail{grid-template-columns:75px minmax(0,1fr);gap:24px}.service-request{grid-column:2;flex-direction:row;flex-wrap:wrap;align-items:center}}
@media(max-width:650px){.service-tiles{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.service-tile{min-height:170px;padding:24px 10px}.service-tile svg{width:54px;height:54px}.service-tile>span{font-size:14px}.services-bottom{align-items:flex-start;flex-direction:column}.services-bottom .button{margin-left:0}.service-jump{display:flex}.service-detail{grid-template-columns:52px minmax(0,1fr);gap:18px;padding:42px 0}.service-detail-icon svg{width:48px;height:48px}.service-detail h2{font-size:29px}.service-request{grid-column:1/-1}.service-request .button{width:100%}}
.area-places{list-style:none;padding:0;margin:14px 0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 20px;font-size:14px;color:var(--muted)}
.strip.service-strip{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:0;padding:12px 6%;letter-spacing:.8px}
.service-strip a{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:18px 15px;border-bottom:1px solid #25262625;font-size:10px;line-height:1.5}
.service-strip a span{font-size:15px}.service-strip a:hover{background:#ffffff25}
.full-service-list{background:#eeeee7;border-top:1px solid var(--line)}
.full-service-list>p:not(.eyebrow){max-width:650px;color:var(--muted)}
.full-service-list ul{list-style:none;padding:0;margin:32px 0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0 30px}
.full-service-list li{padding:14px 0;border-bottom:1px solid #d2d4ca;font-size:14px;line-height:1.5}
@media(max-width:900px){.strip.service-strip{grid-template-columns:repeat(3,minmax(0,1fr))}.full-service-list ul{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:650px){.strip.service-strip{grid-template-columns:repeat(2,minmax(0,1fr));text-align:left}.service-strip a{font-size:9px;padding:14px 10px;letter-spacing:.3px}.full-service-list ul{grid-template-columns:1fr}}
