
:root{--paper:#f5f3ec;--ink:#233b34;--muted:#5c6860;--line:#d4d9ce;--accent:#b49848}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:100px}body{margin:0;background:var(--paper);color:var(--ink);font-family:Arial,Helvetica,sans-serif}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit}a:focus-visible,button:focus-visible{outline:3px solid var(--accent);outline-offset:5px}header{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:16px 5vw;border-bottom:1px solid var(--line)}.brand img{width:180px;height:88px;object-fit:contain}.nav{display:flex;align-items:center;gap:32px;font-size:14px}.nav a{padding:14px 0}.nav a:hover{color:#947727}.contact-link{border-bottom:1px solid var(--ink)}main{overflow:hidden}.hero{display:grid;grid-template-columns:1.1fr 1fr;gap:6vw;padding:64px 5vw 70px;align-items:center}.eyebrow{text-transform:uppercase;font-size:11px;letter-spacing:2px;font-weight:600}.hero h1{font-family:Georgia,'Times New Roman',serif;font-size:clamp(46px,5.8vw,88px);font-weight:400;letter-spacing:-3px;line-height:1.04;margin:30px 0}.hero h1 em{font-weight:400;color:#77826a}.hero p{max-width:410px;line-height:1.8;color:var(--muted);font-size:16px}.cta{display:inline-flex;align-items:center;gap:35px;background:var(--ink);color:var(--paper);padding:19px 24px;margin-top:22px;font-size:14px;min-height:52px}.cta:hover{background:#375448}.hero-image{position:relative;padding:0 0 26px 25px}.hero-image:before{content:'';position:absolute;inset:28px 25px 0 0;border:1px solid #aeb8a6;z-index:-1}.hero-image img{width:100%;height:560px;object-fit:cover;object-position:center 60%;display:block}.image-note{font-size:11px;letter-spacing:1px;position:absolute;bottom:0;right:0;text-transform:uppercase}.strip{padding:24px 5vw;display:flex;justify-content:space-between;gap:20px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);font-size:12px;letter-spacing:1.1px;text-transform:uppercase}.section{padding:90px 5vw}.section-head{display:flex;align-items:flex-end;justify-content:space-between;gap:40px;margin-bottom:45px}.section h2{font:400 clamp(34px,4vw,58px)/1.1 Georgia,serif;letter-spacing:-1.8px;margin:16px 0 0}.section-head p{max-width:330px;color:var(--muted);font-size:14px;line-height:1.8;margin:0}.works{display:grid;grid-template-columns:repeat(6,1fr);gap:42px 28px}.project{border:0;background:none;text-align:left;padding:0;cursor:pointer;grid-column:span 2}.p2,.p4{grid-column:span 3}.p2{grid-row:1;grid-column:4/7}.p0{grid-row:1;grid-column:1/4}.photo{position:relative;overflow:hidden;background:#dde0d5}.photo img{width:100%;height:360px;object-fit:cover;display:block;transition:transform .4s}.p0 img,.p2 img{height:440px}.project:hover img{transform:scale(1.025)}.p4{grid-column:span 2}.open{position:absolute;right:15px;bottom:15px;border-radius:50%;background:var(--paper);width:46px;height:46px;display:grid;place-items:center;font-size:23px}.caption{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-top:17px}.caption h3{font:400 24px Georgia,serif;margin:0}.caption span{font-size:10px;color:var(--muted)}.services{background:var(--ink);color:var(--paper);display:grid;grid-template-columns:1fr 1.2fr;gap:8vw}.services h2{max-width:340px}.service-list{margin:0}.service-list div{border-bottom:1px solid #5d7167;padding:24px 0}.service-list div:first-child{padding-top:0}.service-list h3{font:400 28px Georgia,serif}.service-list p{font-size:14px;line-height:1.7;margin:12px 0 0;color:#d0d7cd;max-width:440px}.about{display:grid;grid-template-columns:1fr 1.2fr;gap:8vw;border-bottom:1px solid var(--line)}.about p{font:400 25px/1.6 Georgia,serif;margin:0}.about small{display:block;font:14px/1.8 Arial,sans-serif;color:var(--muted);margin-top:25px}.contact{display:flex;justify-content:space-between;align-items:center;gap:40px}.contact h2{max-width:620px}.pending{max-width:310px;border-top:1px solid var(--line);padding-top:20px;font-size:14px;line-height:1.8;color:var(--muted)}footer{padding:28px 5vw;border-top:1px solid var(--line);display:flex;justify-content:space-between;gap:20px;font-size:11px;color:var(--muted)}dialog{border:0;padding:0;background:var(--paper);color:var(--ink);width:min(950px,94vw);max-height:92vh}dialog::backdrop{background:rgba(15,30,24,.8)}.dialog-head{display:flex;align-items:center;justify-content:space-between;padding:20px 25px}.dialog-head h2{font:30px Georgia,serif;margin:0}.close,.prev,.next{border:1px solid var(--line);background:none;min-width:44px;min-height:44px;cursor:pointer}.gallery-img{display:block;width:100%;height:65vh;object-fit:contain;background:#e4e6df}.gallery-controls{display:flex;align-items:center;justify-content:center;gap:25px;padding:16px}.draft{font-size:11px;text-transform:uppercase;letter-spacing:1px;color:var(--muted)}
@media(max-width:760px){header{padding:10px 5vw}.brand img{width:125px;height:65px}.nav{gap:16px;font-size:12px}.nav .extra{display:none}.hero{grid-template-columns:1fr;padding-top:38px;gap:40px}.hero h1{letter-spacing:-2px}.hero-image img{height:420px}.strip{flex-wrap:wrap;font-size:10px;justify-content:flex-start;gap:14px 25px}.section{padding:60px 5vw}.section-head{display:block}.section-head p{margin-top:24px}.works{display:grid;grid-template-columns:1fr;gap:30px}.project,.p0,.p2,.p4{grid-column:1;grid-row:auto}.photo img,.p0 img,.p2 img{height:340px}.services,.about{grid-template-columns:1fr;gap:38px}.contact{display:block}.pending{margin-top:30px}footer{flex-direction:column}.caption span{font-size:11px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.photo img{transition:none}}

/* Brand palette sampled from the supplied Rosisantos logo. */
:root{--paper:#fcfbf7;--ink:#292c2d;--muted:#626868;--line:#dedfd9;--accent:#087e78;--gold:#ffbd59;--teal:#11aaa2;--coral:#ff5757}
header{position:relative;background:#fff}
header:before{content:"";position:absolute;inset:0 0 auto;height:5px;background:linear-gradient(to right,var(--gold) 0 33.333%,var(--teal) 33.333% 66.666%,var(--coral) 66.666% 100%)}
.brand img{width:205px;height:98px}
.nav a:hover{color:#087e78}.contact-link{border-bottom-color:var(--teal)}
.hero h1 em{color:#087e78}.eyebrow{color:#087e78}
.cta{background:#087e78;color:#fff}.cta:hover{background:#096a65}
.hero-image:before{border:2px solid var(--gold)}
.image-note{bottom:-3px;background:var(--paper);padding:4px 0 4px 12px}.strip{background:#fff}
.strip span{display:flex;align-items:center;gap:12px}.strip span:before{content:"";display:block;width:8px;height:8px;background:var(--gold);transform:rotate(45deg)}
.strip span:nth-child(2):before{background:var(--teal)}.strip span:nth-child(3):before{background:var(--coral)}
.caption span{font-size:12px}.open{background:var(--gold);color:#292c2d}.project:hover .open{background:var(--teal);color:#fff}
.services{background:#f0f7f5;color:var(--ink);border-top:1px solid #c9e0dc;border-bottom:1px solid #c9e0dc}
.service-list div{border-color:#c9dcd8}.service-list p{color:#4f6461}
.service-list h3{display:flex;align-items:center;gap:16px}.service-list h3:before{content:"";width:9px;height:9px;background:var(--gold);transform:rotate(45deg)}
.service-list div:nth-child(2) dt:before{background:var(--teal)}.service-list div:nth-child(3) dt:before{background:var(--coral)}
.contact h2{max-width:600px}.contact-details{min-width:310px;max-width:440px;display:grid;gap:12px}
.contact-label{font-size:11px;letter-spacing:1.5px;text-transform:uppercase;color:#626868}
.email-link{font-size:clamp(21px,2.3vw,32px);letter-spacing:-.7px;overflow-wrap:anywhere;padding:8px 0;border-bottom:2px solid var(--teal)}
.email-link:hover{color:#087e78}.phone-value{font-size:24px;letter-spacing:1px;margin:0}.phone-note{font-size:12px;line-height:1.5;color:#626868;margin:0}
.contact-details .cta{margin-top:8px;justify-content:space-between;background:var(--gold);color:#292c2d}.contact-details .cta:hover{background:#f6af3d}
footer{border-top:3px solid var(--coral);font-size:12px}
@media(max-width:760px){.brand img{width:140px;height:75px}.contact-details{min-width:0;max-width:none;margin-top:32px}.image-note{font-size:10px}.strip{gap:20px}.service-list h3{font-size:26px}}

.request-open{border:0;cursor:pointer;text-align:left}.request-dialog{width:min(600px,94vw);padding:28px;overflow:auto}.request-head{display:flex;justify-content:space-between;align-items:flex-start;gap:20px}.request-head h2{font:400 36px/1.1 Georgia,serif;margin:12px 0 20px}.request-close{background:none;border:1px solid var(--line);width:44px;height:44px;cursor:pointer;font-size:24px;flex-shrink:0}.request-intro{font-size:14px;line-height:1.65;color:var(--muted);margin:0 0 24px}.request-form{display:grid;gap:18px}.request-form label{display:grid;gap:8px;font-size:14px}.request-form input,.request-form textarea{width:100%;border:1px solid #aeb7b2;background:#fff;border-radius:0;padding:13px;font:16px Arial,sans-serif;color:var(--ink);min-height:48px}.request-form textarea{min-height:120px;resize:vertical}.request-form input:focus-visible,.request-form textarea:focus-visible{outline:2px solid #087e78;outline-offset:2px}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:16px}.request-form .privacy-check{display:flex;align-items:flex-start;gap:10px;font-size:12px;line-height:1.6}.privacy-check input{width:20px;min-height:20px;height:20px;flex-shrink:0;margin:0}.request-form .cta{border:0;cursor:pointer;margin:0;justify-content:space-between}.form-note{font-size:12px;line-height:1.6;color:var(--muted);margin:0}.request-status{font-size:13px;line-height:1.6;color:#087e78;margin:0}@media(max-width:550px){.request-dialog{padding:20px}.form-row{grid-template-columns:1fr}.request-head h2{font-size:30px}}
.request-status[data-error="true"]{color:#a02d2d}.request-form .cta:disabled{opacity:.65;cursor:wait}.privacy-check input{accent-color:#087e78}.hero h1{font-size:clamp(38px,4.1vw,64px);letter-spacing:-1.8px;line-height:1.12}.service-list h3{font-size:clamp(22px,2.2vw,30px)}.areas .cta{font-size:14px}.section-head p{max-width:370px}@media(max-width:760px){.hero h1{font-size:42px;letter-spacing:-1.5px}}@media(max-width:380px){.hero h1{font-size:36px}}.works .project{grid-column:span 3;grid-row:auto}.works .photo img{height:400px}.hero-image img{object-position:center 52%}@media(max-width:760px){.works .project{grid-column:1}.works .photo img{height:340px}}
.hero-logo{padding:35px 0;display:flex;align-items:center;justify-content:center;min-height:420px}.hero-logo:before{display:none}.hero-logo img{width:100%;max-width:570px;height:auto;max-height:none;object-fit:contain}
.photo-carousel:focus-visible{outline:3px solid var(--accent);outline-offset:8px}.carousel-stage{background:#edf0e9;touch-action:pan-y;cursor:grab;min-height:300px}.carousel-stage:active{cursor:grabbing}.carousel-stage img{display:block;width:100%;height:600px;object-fit:contain;user-select:none}.carousel-bar{display:flex;justify-content:space-between;align-items:center;padding-top:18px}.carousel-buttons{display:flex;gap:12px}.carousel-buttons button{min-width:52px;min-height:48px;border:1px solid var(--line);background:transparent;font-size:24px;cursor:pointer}.carousel-buttons button:hover{background:var(--gold)}#carousel-count{font-size:13px;color:var(--muted);font-variant-numeric:tabular-nums}.carousel-dots{display:flex;flex-wrap:wrap;gap:0;justify-content:center;margin-top:5px}.carousel-dots button{width:44px;height:44px;padding:15px;background:none;border:0;cursor:pointer;display:grid;place-items:center}.carousel-dots button span{width:7px;height:7px;border-radius:50%;background:#a2aaa5}.carousel-dots button[aria-current="true"] span{background:#087e78;width:11px;height:11px}
@media(max-width:760px){.hero-logo{min-height:0;padding:10px 0 0}.hero-logo img{width:100%;max-width:450px}.carousel-stage{min-height:200px}.carousel-stage img{height:420px}.carousel-dots{justify-content:flex-start}}
.carousel-slide{margin:0}.carousel-slide[hidden]{display:none!important}.carousel-slide figcaption{min-height:40px;padding:12px 20px;font-size:13px;line-height:1.5;color:#4f6461}.service-list h3{margin:0;font-weight:400}.service-list p{margin:12px 0 0;font:14px/1.7 Arial,sans-serif;max-width:440px}.carousel-stage{overflow:hidden}
.hero-actions{display:flex;align-items:center;flex-wrap:wrap;gap:18px}.hero-actions button{border:0;cursor:pointer}.hero-secondary{display:inline-flex;align-items:center;min-height:48px;padding:12px 0;border-bottom:1px solid var(--ink);font-size:14px}.hero-actions .cta{margin-top:0}.hero-actions{margin-top:26px}.carousel-slide img{height:clamp(300px,40vw,520px)}.carousel-stage{min-height:0}.carousel-slide figcaption{min-height:0}.carousel-bar{padding-top:12px}.service-list h3 a{text-decoration:underline;text-decoration-color:#7aa89f;text-underline-offset:6px}.service-more{display:inline-flex;align-items:center;min-height:44px;margin-top:8px;font-size:13px;text-decoration:underline;text-underline-offset:4px}.footer-content{display:grid;gap:18px;width:100%}.footer-links{display:flex;flex-wrap:wrap;gap:12px 24px;line-height:1.7}.footer-links a{text-decoration:underline;text-underline-offset:3px}.footer-identity{display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap}.mobile-contact-bar{display:none}.request-form select{width:100%;border:1px solid #aeb7b2;background:#fff;padding:13px;font:16px Arial,sans-serif;color:var(--ink);min-height:48px}.privacy-short a,.privacy-check a{text-decoration:underline;text-underline-offset:2px}.privacy-short{font-size:12px;line-height:1.65;color:var(--muted)}.request-dialog{scroll-padding-block:20px}.page-hero{padding:60px 5vw 45px;max-width:1100px}.page-hero h1{font:400 clamp(40px,5vw,68px)/1.12 Georgia,serif;letter-spacing:-1.8px;margin:18px 0 25px}.page-hero p{max-width:740px;font:18px/1.75 Arial,sans-serif;color:var(--muted)}.breadcrumb{font-size:12px;line-height:1.7;margin-bottom:30px}.breadcrumb a{text-decoration:underline;text-underline-offset:3px}.service-content{padding:15px 5vw 65px;display:grid;grid-template-columns:1fr 1fr;gap:50px}.service-content h2{font:400 32px/1.2 Georgia,serif;margin:24px 0 18px}.service-content p,.service-content li,.legal-content p,.legal-content li{font:16px/1.8 Arial,sans-serif;color:#515e57}.service-content ul,.legal-content ul{padding-left:22px}.related{border-top:1px solid var(--line);padding-top:20px;margin-top:35px}.related a{display:block;padding:12px 0;text-decoration:underline;text-underline-offset:4px}.service-faq details{border-bottom:1px solid var(--line);padding:16px 0}.service-faq summary{font-size:16px;line-height:1.6;cursor:pointer;min-height:44px}.legal-content{padding:0 5vw 70px;max-width:1050px}.legal-content h2{font:400 29px/1.25 Georgia,serif;margin:34px 0 15px}.legal-content a{text-decoration:underline;overflow-wrap:anywhere}.page-contact{padding:45px 5vw 65px;border-top:1px solid var(--line)}.page-contact h2{font:400 36px Georgia,serif;margin:0 0 20px}.service-content .cta{border:0;cursor:pointer}.request-open{font:inherit}.no-script-note{padding:18px 5vw;border-top:1px solid var(--line)}
@media(max-width:760px){body{padding-bottom:79px}.hero-actions{gap:14px}.hero-actions .cta{font-size:14px;padding:16px 18px}.carousel-slide img{height:clamp(240px,68vw,350px)}.carousel-slide figcaption{padding:10px 14px}.section{padding-block:48px}.mobile-contact-bar{position:fixed;bottom:0;left:0;right:0;z-index:20;display:grid;grid-template-columns:1fr 1.6fr;gap:10px;padding:10px 5vw calc(10px + env(safe-area-inset-bottom));background:#fcfbf7;border-top:1px solid var(--line)}.mobile-contact-bar a,.mobile-contact-bar button{display:flex;align-items:center;justify-content:center;min-height:48px;border:1px solid #087e78;padding:10px;font:14px Arial,sans-serif;background:none;cursor:pointer}.mobile-contact-bar button{background:#087e78;color:#fff}.page-hero{padding-top:35px}.page-hero h1{font-size:41px}.page-hero p{font-size:16px}.service-content{grid-template-columns:1fr;gap:10px;padding-bottom:40px}.footer-links{gap:12px 18px}.page-contact h2{font-size:31px}}
