@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{--red:#d51b28;--ink:#171918;--paper:#f5f4ef;--muted:#626560}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:90px}body{margin:0;background:var(--paper);color:var(--ink);font-family:'DM Sans',Arial,sans-serif}a{color:inherit;text-decoration:none}button,input,textarea,select{font:inherit}button,a,input,textarea,select{touch-action:manipulation}a:focus-visible,button:focus-visible{outline:3px solid var(--red);outline-offset:5px}header{height:100px;display:flex;align-items:center;justify-content:space-between;padding:0 5%;background:#141615;color:white}.brand{display:flex;align-items:center;position:relative}.brand strong{font-size:33px;letter-spacing:-1.5px;line-height:1}.brand strong span{display:block;font-size:9px;letter-spacing:2.5px;color:#ec3e47;margin-top:9px}.roof{font-size:52px;color:var(--red);padding:0 9px 10px 0}nav{display:flex;gap:32px;font-size:13px}nav a:hover{color:#ee5961}.header-call{font-size:16px;font-weight:700}.header-call span{margin-left:20px;color:#ef3642}.hero{height:665px;position:relative;color:white;overflow:hidden}.hero-img,.shade{position:absolute;width:100%;height:100%;object-fit:cover}.hero-img{object-position:50% 53%}.shade{background:linear-gradient(90deg,rgba(8,15,11,.86),rgba(8,15,11,.4) 55%,rgba(8,15,11,.05)),linear-gradient(0deg,rgba(0,0,0,.65),transparent 40%)}.hero-content{position:relative;max-width:950px;padding:91px 0 0 7%}.eyebrow{font-size:10px;font-weight:700;letter-spacing:2.1px;display:flex;align-items:center;gap:12px}.eyebrow i{width:7px;height:7px;background:var(--red);border-radius:50%}h1,h2,h3{font-family:Manrope,Arial,sans-serif}h1{font-size:clamp(44px,5.4vw,80px);font-weight:500;line-height:1.08;letter-spacing:-3px;margin:25px 0}h1 em{font-style:normal;color:#fff}p{font-size:15px;line-height:1.8}.hero-content>p{max-width:440px;color:#e2e4dd}.actions{display:flex;align-items:center;gap:30px;margin-top:34px}.button{display:inline-flex;align-items:center;justify-content:space-between;gap:34px;padding:19px 23px;background:var(--red);color:white;font-size:12px;font-weight:700;border:0;cursor:pointer}.button:hover{background:#af101c}.text-link{font-size:12px;border-bottom:1px solid #aaa;padding-bottom:7px}.text-link span{margin-left:20px}.hero-bottom{position:absolute;bottom:27px;left:7%;right:5%;display:flex;justify-content:space-between;font-size:9px;letter-spacing:2px}.hero-bottom b{color:#ff5961;font-weight:500}.trust{display:grid;grid-template-columns:repeat(3,1fr);padding:30px 7%;border-bottom:1px solid #d8d8d1;gap:30px}.trust> *{border-right:1px solid #d8d8d1}.trust>:last-child{border:0}.trust strong{display:block;font-size:16px}.trust span{display:block;font-size:11px;color:var(--muted);margin-top:6px}.stars{color:var(--red);letter-spacing:3px;font-size:14px}.section{padding:90px 7%}.red{color:var(--red)}.section-head{display:flex;justify-content:space-between;align-items:flex-end;gap:60px;margin-bottom:42px}.section-head>p,.section-head>div:last-child:not(:first-child){max-width:420px}.section-head p{color:var(--muted);margin-bottom:0}h2{font-size:44px;line-height:1.18;font-weight:500;letter-spacing:-1.8px;margin:18px 0 0}h3{font-size:25px;font-weight:500;letter-spacing:-.6px}.services{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid #cdd0c7}.services>a{position:relative;padding:28px 35px 18px 0;margin-right:34px;border-bottom:1px solid #cdd0c7}.number{font-size:10px;color:var(--red)}.services p{color:var(--muted);font-size:13px;max-width:270px}.arrow{position:absolute;right:0;top:28px;font-size:25px}.services a:hover h3{color:var(--red)}.work{background:#e9eae4}.filters{display:flex;gap:7px;flex-wrap:wrap;margin-top:20px}.filters button{border:1px solid #c9cbc2;background:transparent;padding:8px 12px;font-size:10px;cursor:pointer}.filters button.active{background:var(--ink);color:white;border-color:var(--ink)}.gallery{display:grid;grid-template-columns:repeat(3,1fr);gap:25px}.project{border:0;background:transparent;padding:0;text-align:left;cursor:pointer}.project img{width:100%;height:280px;object-fit:cover;display:block;transition:filter .2s}.project:hover img{filter:brightness(.85)}.project-caption{display:flex;justify-content:space-between;margin-top:15px;font-size:14px}.project small{display:block;color:var(--muted);font-size:10px;margin-top:6px;letter-spacing:1px}.gallery-note,.review-note{font-size:11px;color:var(--muted);margin:27px 0 0}.about{display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:75px}.about>img{width:100%;height:520px;object-fit:cover}.about p{color:var(--muted);font-size:14px}.signature{border-left:3px solid var(--red);padding:7px 0 7px 20px;margin:27px 0;font-size:18px}.dark{display:inline-block}.reviews{background:#191d1a;color:white}.review-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:34px}.review-grid article{border-top:1px solid #454941;padding-top:25px}.review-grid blockquote{font-family:Manrope,sans-serif;font-size:24px;line-height:1.5;margin:20px 0;min-height:108px;letter-spacing:-.6px}.review-grid p{font-size:12px;margin-bottom:4px}.review-grid p span{display:block;color:#a9afa6;font-size:11px}.review-grid small,.review-note{color:#b8beb4;font-size:10px}.review-note a{text-decoration:underline}.contact{display:grid;grid-template-columns:1.2fr 1fr;gap:90px;background:#e6e7df}.contact .eyebrow{color:var(--red)}.contact h2{font-size:48px}.contact p{color:var(--muted)}.big-phone{display:block;font-size:34px;font-weight:500;letter-spacing:-1px;margin:32px 0 14px}.contact-link{display:block;font-size:14px;margin:13px 0}.address{font-size:12px;margin-top:30px}form{background:var(--paper);padding:32px}form h3{margin:0 0 25px;font-size:22px}label{display:block;font-size:11px;margin-bottom:16px}input,select,textarea{display:block;width:100%;border:0;border-bottom:1px solid #c5c8be;background:transparent;padding:12px 0;color:var(--ink);border-radius:0;font-size:13px}textarea{resize:vertical}form .button{width:100%}form small{display:block;font-size:10px;color:var(--muted);margin-top:12px}#form-status{font-size:12px}footer{padding:40px 5%;background:#121512;color:white;display:flex;align-items:center;justify-content:space-between;gap:30px}footer p,footer>span{font-size:9px;color:#b5b9b1}footer .brand strong{font-size:27px}dialog{border:0;padding:12px;background:#181b18;color:white;max-width:95vw}dialog::backdrop{background:#000d}dialog img{display:block;max-width:85vw;max-height:80vh;object-fit:contain}dialog p{margin:10px}dialog button{position:absolute;right:20px;top:20px;background:#111;color:white;border:1px solid white;width:40px;height:40px;font-size:25px;cursor:pointer}@media(min-width:1600px){.hero{height:760px}.hero-content{padding-top:120px}}@media(max-width:900px){header{height:85px}nav{gap:15px;font-size:11px}.header-call{font-size:12px}.section{padding:65px 6%}h2{font-size:36px}.section-head{gap:25px}.about{gap:35px}.gallery{gap:15px}.project img{height:230px}.contact{gap:35px}.contact h2{font-size:38px}.big-phone{font-size:27px}footer{flex-wrap:wrap}}@media(max-width:620px){header{padding:18px 6%;height:auto;flex-wrap:wrap;gap:22px}.brand strong{font-size:28px}.roof{font-size:40px}.brand strong span{font-size:8px}nav{order:3;width:100%;justify-content:space-between}.header-call span{margin-left:4px}.hero{height:660px}.hero-content{padding:70px 6% 0}.hero-img{object-position:63% center}.shade{background:linear-gradient(90deg,#0a120de6,#0a120d55)}h1{font-size:49px;letter-spacing:-2.4px}.hero-content>p{max-width:330px}.actions{align-items:flex-start;flex-direction:column;gap:24px}.hero-bottom{left:6%;right:6%;font-size:8px;line-height:1.8;gap:35px}.hero-bottom>span:last-child{display:none}.trust{padding:24px 6%;gap:14px;grid-template-columns:1fr 1fr}.trust>:nth-child(2){border:0}.trust>:last-child{grid-column:1/-1;padding-top:18px;border-top:1px solid #d8d8d1}.trust strong{font-size:13px}.trust span{font-size:10px}.section-head{display:block}.section-head>p{margin-top:24px}h2{font-size:36px}.services,.gallery,.review-grid,.about,.contact{grid-template-columns:1fr}.services>a{margin:0;padding-bottom:25px}.services p{max-width:90%}.gallery{gap:30px}.project img{height:310px}.about>img{height:390px}.about{gap:35px}.review-grid{gap:30px}.review-grid blockquote{min-height:0}.reviews .section-head>a{display:inline-block;margin-top:25px}.contact{gap:30px}.contact h2{font-size:38px}form{padding:25px}footer{align-items:flex-start;flex-direction:column;gap:15px}.section{padding-top:60px;padding-bottom:60px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}

/* Signature photo mark and restrained heritage accent. */
.photo-frame{position:relative;display:block;overflow:hidden}.photo-watermark{position:absolute;right:12px;bottom:12px;display:flex;align-items:center;gap:7px;padding:8px 10px;background:rgba(15,19,17,.78);color:#fff;pointer-events:none;border-bottom:2px solid #bd2633;text-align:left;z-index:2}.photo-watermark>img{width:30px!important;height:15px!important;object-fit:contain!important;display:block}.photo-watermark b{font-size:16px;line-height:1;letter-spacing:-.6px;font-weight:700}.photo-watermark small{display:block!important;color:#eee!important;font-size:5px!important;letter-spacing:1px!important;line-height:1.4;margin-top:3px!important}.hero>.photo-watermark{bottom:68px;right:5%}.about-photo>img{display:block;width:100%;height:520px;object-fit:cover}.footer-flag{width:28px;height:14px;vertical-align:middle;margin-right:10px;opacity:.8}dialog .photo-watermark{bottom:12px;right:12px}dialog .photo-watermark>img{max-height:none}dialog #close-photo{z-index:5}@media(max-width:620px){.about-photo>img{height:390px}.hero>.photo-watermark{bottom:72px;right:6%}.photo-watermark{right:10px;bottom:10px}}

.trowel-logo{width:43px;height:43px;flex:none;margin-right:12px}footer .trowel-logo{width:36px;height:36px}@media(max-width:620px){.trowel-logo{width:34px;height:34px;margin-right:9px}}
/* Phone touch targets and readable form controls. */
@media(max-width:620px){nav a{min-height:44px;display:flex;align-items:center}header{row-gap:10px}.header-call{min-height:44px;display:flex;align-items:center}.filters button{min-height:44px;padding:10px 13px;font-size:12px}input,select,textarea{font-size:16px;min-height:44px}label{font-size:12px}.contact-link{min-height:44px;display:flex;align-items:center;margin:3px 0}.text-link{min-height:44px;display:inline-flex;align-items:center}h1{font-size:clamp(42px,12vw,49px)}.contact .eyebrow{line-height:1.6}}
