:root{--paper:#f7f8f4;--ink:#20382f;--green:#254d3d;--lime:#d9e9a1;--line:#ccd5c9;--gray:#53655a}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font-family:Arial,Helvetica,sans-serif;line-height:1.6}a{color:inherit;text-underline-offset:5px}button,input,textarea{font:inherit}button,a,input,textarea{touch-action:manipulation}button{cursor:pointer}button:disabled{cursor:wait;opacity:.65}[hidden]{display:none!important}:focus-visible{outline:3px solid #a35412;outline-offset:5px}.wrap{max-width:1180px;margin:auto;padding-left:36px;padding-right:36px}.draft{font-size:13px;text-align:center;background:var(--lime);padding:8px 20px}.header{display:flex;align-items:center;justify-content:space-between;min-height:105px;gap:24px}.brand{font-weight:800;letter-spacing:-.6px;font-size:21px;text-decoration:none;max-width:280px}nav{display:flex;gap:30px;font-size:14px}nav a{text-decoration:none}.hero{display:grid;grid-template-columns:1.2fr 1fr;gap:50px;align-items:center;padding-top:65px;padding-bottom:100px}.location{font-size:17px;margin:0 0 25px}h1{font-size:clamp(42px,5.4vw,70px);line-height:1.04;letter-spacing:-3px;font-weight:800;margin:0 0 28px}.intro{max-width:350px;color:var(--gray);font-size:18px;margin-bottom:30px}.button{display:inline-flex;align-items:center;justify-content:space-between;gap:35px;background:var(--green);color:white;padding:16px 24px;border:0;border-radius:5px;text-decoration:none;font-weight:600}.button span{font-size:22px}.hero-photo{position:relative;height:440px;margin:0;background:#dce5d8;border-radius:180px 180px 8px 8px;overflow:hidden}.hero-photo img{display:block;width:100%;height:100%;object-fit:cover;object-position:50% 85%}.services{border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding-top:30px;padding-bottom:35px;display:grid;grid-template-columns:1fr 1.4fr;align-items:center;gap:20px}.services h2{font-size:22px;letter-spacing:-.6px}.services>div{display:flex;flex-wrap:wrap;gap:12px}.service{padding:7px 16px;border:1px solid #aabbaa;border-radius:30px;font-size:15px}.portfolio{padding-top:80px;padding-bottom:100px}.section-head{display:flex;justify-content:space-between;align-items:baseline;gap:15px}h2{font-size:40px;line-height:1.15;letter-spacing:-1.5px}.section-head p{color:var(--gray)}#gallery-status{background:#edf0e9;border-radius:6px;padding:35px;color:var(--gray)}.gallery{display:grid;grid-template-columns:repeat(3,1fr);gap:35px 24px}.work h3{font-size:21px;line-height:1.3;margin:16px 0 8px}.work p{color:var(--gray);white-space:pre-line;overflow-wrap:anywhere}.work button.photo{display:block;width:100%;padding:0;border:0;border-radius:5px;overflow:hidden;background:#e3e8df;position:relative}.photo img{width:100%;aspect-ratio:4/3;object-fit:cover;display:block}.photo span{position:absolute;bottom:12px;right:12px;background:white;padding:3px 10px;border-radius:30px;font-size:13px}.contact{background:var(--green);color:var(--paper);padding:65px 0 75px}.contact h2{font-size:clamp(38px,5vw,60px);margin:20px 0}.contact .button{background:var(--lime);color:var(--ink);margin-top:16px}footer{display:flex;justify-content:space-between;gap:20px;padding-top:35px;padding-bottom:35px;font-size:13px}.secondary{background:transparent;border:1px solid #849784;border-radius:5px;padding:11px 18px;color:var(--ink);margin-top:20px}dialog{border:0;border-radius:8px;max-width:850px;width:92%;max-height:90vh;padding:24px;background:var(--paper)}dialog::backdrop{background:#102017c9}dialog img{width:100%;display:block;margin-bottom:15px}#close-viewer{float:right;background:transparent;border:0;padding:10px}.admin{max-width:720px;padding-top:30px;padding-bottom:70px}.admin h1{font-size:42px;letter-spacing:-1.8px}.admin label{display:block;font-weight:600;margin-top:22px}.admin input,.admin textarea{display:block;width:100%;background:white;border:1px solid #92a18e;border-radius:5px;padding:14px;color:var(--ink);margin-top:6px}.admin textarea{min-height:100px;resize:vertical}.admin .button{margin-top:25px}.help{font-size:14px;color:var(--gray)}#message{padding:12px 0;font-weight:600}#previews{display:flex;gap:8px;flex-wrap:wrap;margin-top:15px}#previews img{width:90px;height:90px;object-fit:cover;border-radius:5px}.admin .gallery{grid-template-columns:1fr 1fr}.actions{display:flex;gap:10px;flex-wrap:wrap}.actions button{margin-top:5px;font-size:14px}.error{color:#9a2719}.admin-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:35px}@media(max-width:700px){.wrap{padding-left:22px;padding-right:22px}.header{min-height:90px}.brand{font-size:18px;max-width:180px}nav{gap:15px}nav a:first-child{display:none}.hero{grid-template-columns:1fr;padding-top:30px;padding-bottom:45px;gap:35px}h1{letter-spacing:-2px}.hero-photo{height:340px;border-radius:130px 130px 5px 5px;max-width:400px;width:100%;margin:auto}.services{grid-template-columns:1fr;gap:0}.portfolio{padding-top:40px;padding-bottom:50px}.section-head{display:block}h2{font-size:32px}.gallery{grid-template-columns:1fr}.admin .gallery{grid-template-columns:1fr}.contact{padding:40px 0 50px}footer{flex-direction:column}.admin h1{font-size:36px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}

/* Service descriptions, separate from the photo portfolio. */
.hero .intro{max-width:440px}.services{display:block;padding-top:48px;padding-bottom:48px}.services .services-heading{display:block;max-width:620px}.services-heading h2{font-size:34px;margin:0 0 16px;letter-spacing:-1px}.services-heading p,.service-note{color:var(--gray)}.services .service-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:28px 36px;margin-top:35px}.service-detail{border-top:2px solid var(--line);padding-top:18px}.service-detail h3{font-size:22px;line-height:1.3;margin:0 0 12px}.service-detail p{margin:0;color:var(--gray);font-size:16px}.service-note{margin:30px 0 0}.contact p{max-width:630px}@media(max-width:700px){.services .service-list{grid-template-columns:1fr;gap:24px}.services-heading h2{font-size:29px}nav a:first-child{display:inline}nav a[href="#obras"]{display:none}.hero .intro{font-size:17px}}

.experience{display:grid;grid-template-columns:1.4fr 1fr;gap:70px;padding-top:65px;padding-bottom:65px;border-bottom:1px solid var(--line)}.experience h2{margin:0 0 25px}.experience p{max-width:580px;color:var(--gray)}.coverage{background:#e7eddf;padding:30px;align-self:center;border-radius:6px}.coverage h3{margin:0 0 15px;font-size:24px;line-height:1.3}.coverage a{display:inline-block;margin-top:12px;font-weight:600}@media(max-width:700px){.experience{grid-template-columns:1fr;gap:25px;padding-top:40px;padding-bottom:40px}.coverage{padding:24px}}

.experience{row-gap:45px}.experience-photo{grid-column:1/-1;margin:0}.experience-photo img{display:block;width:100%;height:auto;aspect-ratio:21/9;object-fit:cover;border-radius:6px}@media(max-width:700px){.experience{row-gap:25px}.experience-photo img{aspect-ratio:4/3}}

.service-icon{display:inline-flex;align-items:center;justify-content:center;width:54px;height:54px;border-radius:50%;background:var(--lime);color:var(--green)}.service-icon svg{width:31px;height:31px;fill:none;stroke:currentColor;stroke-width:1.75;stroke-linecap:round;stroke-linejoin:round}.service-detail .service-icon{margin-bottom:14px}
.approach{padding-top:60px;padding-bottom:60px;border-bottom:1px solid var(--line)}.approach-heading{max-width:620px}.approach-heading h2{font-size:34px;margin:0 0 16px;letter-spacing:-1px}.approach-heading p{margin:0;color:var(--gray)}.approach-list{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:28px;margin-top:35px}.approach-item h3{font-size:19px;line-height:1.3;margin:16px 0 8px}.approach-item p{margin:0;color:var(--gray);font-size:16px}
@media(max-width:700px){.approach{padding-top:40px;padding-bottom:40px}.approach-heading h2{font-size:29px}.approach-list{grid-template-columns:1fr;gap:26px}}
