:root{--ink:#254a59;--ink-soft:#3d6973;--acid:#cfe82a;--paper:#f6f7f1;--wash:#eaf1ed;--white:#fff;--black:#171b1c;--muted:#66777c;--line:#254a5929;--line-strong:#254a5942;--shadow:0 22px 60px #254a591f;--font-display:"Barrio", "houschka-pro", sans-serif;--font-body:"houschka-pro", "Houschka Pro", "Avenir Next", "Segoe UI", sans-serif;--space-1:.5rem;--space-2:1rem;--space-3:1.5rem;--space-4:2rem;--space-5:2.5rem;--space-6:3rem;--space-7:4rem;--space-8:5rem;--transition-fast:.15s ease-out;--transition-base:.25s ease-out}@font-face{font-display:swap;font-family:Barrio;font-style:normal;font-weight:400;src:url(/assets/fonts/Barrio-Regular.ttf)format("truetype")}*,:before,:after{box-sizing:border-box}html{background:var(--paper);color:var(--black);scroll-behavior:smooth;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{min-height:100vh;color:var(--black);font-family:var(--font-body);background:linear-gradient(115deg,#cfe82a1a,#0000 38%),linear-gradient(90deg,#254a5909 1px,#0000 1px) 0 0/96px 96px,linear-gradient(#254a5907 1px,#0000 1px) 0 0/96px 96px,linear-gradient(#fbfcf8 0%,#f2f6ef 48%,#fff 100%);margin:0;font-size:1rem;font-weight:500;line-height:1.6;overflow-x:hidden}body:before{content:"";pointer-events:none;z-index:-1;background:linear-gradient(128deg,#fffc,#fff0 44%),linear-gradient(312deg,#0000 0 68%,#cfe82a29 68% 100%);position:fixed;inset:0}button,input,textarea,select{font:inherit}img{max-width:100%;height:auto;display:block}a{color:inherit;text-decoration:none}main:focus{outline:none}.skip-link{background:var(--ink);color:var(--white);z-index:1000;border-radius:3px;padding:.75rem .9rem;position:fixed;top:1rem;left:1rem;transform:translateY(calc(-100% - 2rem))}.skip-link:focus-visible{transform:translateY(0)}.site-header{transition:background-color var(--transition-base), border-color var(--transition-base), box-shadow var(--transition-base), backdrop-filter var(--transition-base);z-index:100;background:linear-gradient(#f6f7f1b8,#f6f7f17a),#ffffff8f;border-bottom:1px solid #254a5914;position:sticky;top:0}.site-header.is-scrolled,.site-header.is-menu-open{backdrop-filter:blur(18px)saturate(1.12);background:linear-gradient(#f6f7f1eb,#f6f7f1c7),#ffffffbd;border-bottom-color:#254a5924;box-shadow:0 16px 42px #254a5913}.scroll-progress{background:linear-gradient(90deg, var(--acid), var(--ink));opacity:.6;pointer-events:none;height:2px;transform:scaleX(var(--scroll-progress,0));transform-origin:0;z-index:101;width:100%;position:sticky;top:0}.header-container{align-items:center;gap:var(--space-4);max-width:1220px;padding:1rem var(--space-4);justify-content:space-between;margin:0 auto;display:flex}.brand,.footer-logo{color:var(--ink);align-items:center;gap:.55rem;display:inline-flex}.brand{min-width:132px;transition:min-width var(--transition-base)}.brand-mark{object-fit:contain;height:44px;transition:height var(--transition-base), width var(--transition-base), transform var(--transition-base);width:44px}.site-header.is-scrolled .brand-mark{width:50px;height:50px;transform:translate(-2px)}.site-header.is-scrolled .brand{min-width:50px}.footer-logo span{font-family:var(--font-display);letter-spacing:.02em;text-transform:uppercase;font-size:1.72rem;font-weight:800;line-height:1}.brand-name{font-family:var(--font-display);letter-spacing:0;opacity:1;text-transform:uppercase;max-width:88px;transition:max-width var(--transition-base), opacity var(--transition-base), transform var(--transition-base);white-space:nowrap;font-size:1.72rem;font-weight:400;line-height:1;overflow:hidden}.site-header.is-scrolled .brand-name{opacity:0;max-width:0;transform:translate(-.4rem)}.desktop-nav{gap:var(--space-5);flex:1;justify-content:center;display:flex}.nav-link{color:var(--ink);transition:color var(--transition-fast), transform var(--transition-fast);font-size:.98rem;font-weight:600;position:relative}.nav-link:after{content:"";height:2px;transition:width var(--transition-fast);background:currentColor;border-radius:999px;width:0;position:absolute;bottom:-3px;left:0}.nav-link:hover,.nav-link.is-active{color:var(--ink-soft);transform:translateY(-1px)}.nav-link:hover:after,.nav-link.is-active:after{width:100%}.header-cta,.button,.footer-button{border:1px solid var(--ink);box-shadow:4px 4px 0 var(--ink);color:var(--ink);min-height:42px;transition:transform var(--transition-fast), box-shadow var(--transition-fast), background-color var(--transition-fast);border-radius:6px;justify-content:center;align-items:center;padding:.78rem 1rem;font-weight:700;line-height:1;display:inline-flex}.header-cta:hover,.button:hover,.footer-button:hover{box-shadow:2px 2px 0 var(--ink);transform:translate(2px,2px)}.button.primary{background:var(--acid)}.button.dark{background:var(--ink);box-shadow:4px 4px 0 var(--acid);color:var(--white)}.mobile-menu-toggle{color:var(--ink);cursor:pointer;background:#ffffff8c;border:1px solid #254a5929;border-radius:999px;justify-content:center;align-items:center;width:44px;height:44px;display:none;position:relative}.mobile-menu-toggle span{background:currentColor;border-radius:999px;width:18px;height:2px;transition:opacity .18s,transform .24s cubic-bezier(.22,1,.36,1),top .24s cubic-bezier(.22,1,.36,1);position:absolute;left:13px}.mobile-menu-toggle span:first-child{top:15px}.mobile-menu-toggle span:nth-child(2){top:21px}.mobile-menu-toggle span:nth-child(3){top:27px}.site-header.is-menu-open .mobile-menu-toggle{background:var(--ink);color:var(--white)}.site-header.is-menu-open .mobile-menu-toggle span:first-child{top:21px;transform:rotate(45deg)}.site-header.is-menu-open .mobile-menu-toggle span:nth-child(2){opacity:0;transform:scaleX(.35)}.site-header.is-menu-open .mobile-menu-toggle span:nth-child(3){top:21px;transform:rotate(-45deg)}.mobile-menu{display:none}.section{padding:var(--space-8) var(--space-4)}.section-inner,.hero-inner,.footer-inner{width:100%;max-width:1220px;margin:0 auto}.eyebrow{color:var(--ink-soft);letter-spacing:.13em;text-transform:uppercase;font-size:.78rem;font-weight:700}.section-heading{align-items:end;gap:var(--space-3);margin-bottom:var(--space-5);grid-template-columns:minmax(0,.9fr) minmax(260px,.55fr);display:grid}h1,h2,h3{color:var(--ink);font-family:var(--font-body);overflow-wrap:anywhere;text-wrap:balance;margin:0;font-weight:800;line-height:1.04}h1{letter-spacing:0;max-width:11ch;font-size:clamp(3rem,7vw,6.8rem)}h2{font-size:clamp(2.2rem,5vw,4.8rem)}h3{font-size:clamp(1.4rem,2.5vw,2.2rem)}p{overflow-wrap:anywhere;margin:0}.lead{color:var(--ink);font-size:clamp(1.25rem,2vw,1.8rem);font-weight:300;line-height:1.35}.muted{color:var(--muted)}.hero{min-height:calc(86vh - 82px);padding:var(--space-7) var(--space-4) var(--space-4)}.hero-inner{max-width:1220px;min-height:calc(86vh - 82px - var(--space-7) - var(--space-4));gap:clamp(3rem,9vw,8rem);display:grid}.hero-copy{align-self:center;column-gap:clamp(2rem,6vw,6rem);gap:var(--space-3);grid-template-columns:minmax(0,.95fr) minmax(320px,.75fr);max-width:1180px;display:grid}.hero-copy h1{grid-row:1/span 2}.hero-copy .lead{align-self:end;max-width:570px}.hero-copy .hero-actions{grid-column:2}.hero h1{font-family:var(--font-display);overflow-wrap:normal;word-break:normal;max-width:12.5ch;font-size:clamp(2.85rem,5vw,5.05rem);font-weight:400}.hero-actions{gap:var(--space-2);flex-wrap:wrap;display:flex}.hero-territories{align-self:end;align-items:center;gap:var(--space-3);padding-top:var(--space-3);border-top:1px solid #254a5929;justify-content:space-between;display:flex}.hero-territories div{flex-wrap:wrap;justify-content:flex-end;gap:.65rem;display:flex}.hero-territories span{color:var(--ink);background:#254a5912;border:1px solid #254a5914;border-radius:999px;padding:.6rem .75rem;font-size:.86rem;font-weight:800;line-height:1}.service-grid,.project-grid{gap:var(--space-3);grid-template-columns:repeat(3,minmax(0,1fr));display:grid}.service-card,.project-card,.person-card,.contact-panel{border:1px solid var(--line);background:#ffffffad;border-radius:8px;box-shadow:0 14px 40px #254a5912}.service-card,.project-card{overflow:hidden}.service-card img,.project-card img{aspect-ratio:4/3;object-fit:cover;width:100%}.service-content,.project-content{gap:var(--space-2);padding:var(--space-3);display:grid}.project-content h2,.project-content h3{overflow-wrap:normal;word-break:normal;max-width:100%;font-size:clamp(1.8rem,2.2vw,2.45rem);line-height:1.05}.service-content ul{color:var(--muted);gap:.35rem;margin:0;padding:0;list-style:none;display:grid}.service-content li:before{color:var(--acid);content:"+ ";text-shadow:0 0 1px var(--ink);font-weight:900}.project-card{color:var(--black);transition:transform var(--transition-base), box-shadow var(--transition-base), border-color var(--transition-base)}.project-card:hover{border-color:var(--line-strong);box-shadow:var(--shadow);transform:translateY(-4px)}.tag-list{flex-wrap:wrap;gap:.45rem;display:flex}.tag-list span{color:var(--ink);background:#254a5914;border-radius:999px;padding:.24rem .58rem;font-size:.78rem;font-weight:600}.service-details{padding-top:0}.detail-grid{gap:var(--space-3);grid-template-columns:repeat(3,minmax(0,1fr));display:grid}.detail-grid article{border-top:1px solid var(--line);gap:var(--space-2);padding-top:var(--space-2);display:grid}.detail-grid h3{font-size:clamp(1.25rem,2vw,1.8rem)}.detail-grid p{color:var(--muted);line-height:1.55}.about-band{color:var(--white);background:linear-gradient(135deg,#254a59f5,#3d6973eb)}.about-grid{gap:var(--space-5);grid-template-columns:320px minmax(0,1fr);display:grid}.person-card{color:var(--ink);gap:var(--space-2);padding:var(--space-3);text-align:center;background:#fffffff2;display:grid}.person-card img{border-radius:6px}.about-copy{align-self:center;gap:var(--space-3);display:grid}.about-copy h2,.about-copy a{color:var(--white)}.about-copy p{color:#ffffffc7;max-width:780px;font-size:clamp(1.3rem,3vw,2.1rem);font-weight:300;line-height:1.28}.cta-band{text-align:center;background:linear-gradient(130deg,#f9fbf5 0%,#edf2ec 52%,#cfe82ac7 100%);border-block:1px solid #254a591f}.cta-band .section-inner{gap:var(--space-3);justify-items:center;max-width:820px;display:grid}.page-hero{padding:var(--space-7) var(--space-4) var(--space-4)}.page-hero .section-inner{gap:var(--space-3);display:grid}.page-hero h1{overflow-wrap:normal;word-break:normal;max-width:100%}.contact-hero h1{max-width:25ch;font-size:clamp(2.65rem,4.2vw,4.5rem)}.contact-layout{gap:var(--space-4);grid-template-columns:minmax(0,.9fr) minmax(280px,.5fr);display:grid}.project-detail{gap:var(--space-4);max-width:880px;display:grid}.project-detail-cover{width:min(100%,520px);margin:0 auto}.project-detail-content{gap:var(--space-3);display:grid}.project-detail-content p{color:var(--ink);font-size:clamp(1.18rem,2vw,1.55rem);font-weight:300;line-height:1.45}.contact-panel{gap:var(--space-3);padding:var(--space-4);display:grid}.contact-shortcuts h2{max-width:100%;font-size:clamp(2.05rem,3vw,2.85rem)}.contact-shortcuts{align-content:start;gap:1.25rem}.contact-shortcuts .button{box-shadow:3px 3px 0 var(--ink);min-height:46px;padding:.72rem .9rem;font-size:.92rem}.contact-shortcuts .button:hover{box-shadow:1px 1px 0 var(--ink);transform:translate(2px,2px)}.form-grid{gap:var(--space-2);display:grid}label{color:var(--ink);gap:.45rem;font-weight:600;display:grid}input,textarea{border:1px solid var(--line);color:var(--black);background:#ffffffd1;border-radius:6px;min-height:46px;padding:.75rem .85rem}textarea{resize:vertical;min-height:150px}.field-honey{display:none}.service-fieldset{border:0;gap:.8rem;margin:0;padding:0;display:grid}.service-fieldset legend{color:var(--black);margin-bottom:.65rem;font-weight:800}.service-options{gap:var(--space-2);grid-template-columns:repeat(3,minmax(0,1fr));display:grid}.service-option{font-weight:700;display:block}.service-option input{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.service-option-box{color:var(--black);cursor:pointer;text-align:center;min-height:120px;transition:background-color var(--transition-fast), border-color var(--transition-fast), box-shadow var(--transition-fast), transform var(--transition-fast);background:#ffffffbd;border:1px solid #254a5938;border-radius:6px;place-items:center;gap:.65rem;padding:1rem .8rem;display:grid}.service-option-box img{object-fit:contain;width:42px;height:42px}.service-option input:checked+.service-option-box{border-color:var(--ink);box-shadow:4px 4px 0 var(--ink);background:#cfe82a2e;transform:translate(-2px,-2px)}.service-option input:focus-visible+.service-option-box{outline:2px solid var(--ink);outline-offset:3px}.form-hint{color:var(--muted);font-size:.92rem}.form-status{color:var(--muted);min-height:1.5rem;font-weight:700}.form-status[data-state=success]{color:var(--ink)}.form-status[data-state=error]{color:#9b2f2f}.button[disabled]{cursor:wait;opacity:.64;transform:none}.site-footer{border-top:1px solid var(--line);padding:var(--space-7) var(--space-4) var(--space-4);background:linear-gradient(135deg,#edf2eceb,#ffffffb3),linear-gradient(90deg,#254a5909 1px,#0000 1px) 0 0/72px 72px}.footer-inner{gap:var(--space-5);grid-template-columns:minmax(260px,1fr) repeat(2,minmax(180px,.45fr));display:grid}.footer-brand,.footer-nav,.footer-contact{gap:.7rem;display:grid}.footer-logo img{width:36px;height:36px}.footer-brand p,.footer-credit,.footer-nav,.footer-contact{color:var(--muted);font-size:.92rem}.footer-button{margin-top:var(--space-1);width:fit-content}.footer-credit{border-top:1px solid var(--line);margin:var(--space-5) auto 0;max-width:1220px;padding-top:var(--space-3);text-align:right}[data-reveal=pending]{opacity:0;transform:translateY(18px)}[data-reveal=visible]{opacity:1;transition:opacity .52s cubic-bezier(.22, 1, .36, 1) var(--reveal-delay,0s), transform .52s cubic-bezier(.22, 1, .36, 1) var(--reveal-delay,0s);transform:translateY(0)}@media (width<=860px){.header-container,.section,.hero,.page-hero,.site-footer{padding-inline:var(--space-2)}.section,.hero,.page-hero,.site-footer,.site-header{max-width:100vw;overflow-x:clip}.desktop-nav,.header-cta{display:none}.mobile-menu-toggle{display:inline-flex}.mobile-menu{box-shadow:var(--shadow);left:var(--space-3);opacity:0;padding:var(--space-3);pointer-events:none;right:var(--space-3);visibility:hidden;background:linear-gradient(135deg,#ffffffeb,#f6f7f1db),#ffffffc7;border:1px solid #254a591f;border-radius:6px;transition:opacity .24s cubic-bezier(.22,1,.36,1),transform .24s cubic-bezier(.22,1,.36,1),visibility .24s linear;display:grid;position:absolute;top:calc(100% + .5rem);transform:translateY(-8px)scale(.985)}.site-header.is-menu-open .mobile-menu{opacity:1;pointer-events:auto;visibility:visible;transform:translateY(0)scale(1)}.mobile-nav{display:grid}.mobile-nav-link{color:var(--ink);border-bottom:1px solid #254a591a;justify-content:space-between;align-items:center;min-height:52px;font-size:1.18rem;font-weight:700;display:flex}.mobile-nav-link:after{color:var(--acid);content:"->";opacity:0;transition:opacity var(--transition-fast), transform var(--transition-fast);transform:translate(-6px)}.mobile-nav-link.is-active:after{opacity:1;transform:translate(0)}.hero{min-height:auto;padding:var(--space-6) 1rem var(--space-5)}.hero-inner,.section-heading,.about-grid,.contact-layout,.footer-inner{grid-template-columns:1fr;min-width:0;max-width:100%}.hero-inner{width:100%;max-width:calc(100vw - 2rem);min-height:auto}.hero-copy{grid-template-columns:1fr}.hero-copy h1,.hero-copy .hero-actions{grid-area:auto}h1{text-wrap:auto;word-break:normal;max-width:100%;font-size:clamp(2.15rem,9.4vw,3rem)}.hero h1{max-width:100%;font-size:clamp(2.35rem,11.2vw,3.1rem)}.lead{font-size:1.08rem}.hero-copy .lead{max-width:20.5rem;font-size:1rem}.hero-territories{align-items:start;gap:var(--space-2);display:grid}.hero-territories div{justify-content:flex-start;gap:.5rem}.hero-territories span{max-width:100%;padding:.45rem .5rem;font-size:.72rem}.service-options{grid-template-columns:1fr}.service-option-box{text-align:left;grid-template-columns:42px 1fr;place-items:center start;min-height:74px}.hero-copy,.hero-actions{min-width:0;max-width:100%}.hero-copy{width:100%;max-width:calc(100vw - 2rem)}.service-grid,.detail-grid,.project-grid{grid-template-columns:1fr}.footer-credit{text-align:left}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
