:root{--brand:#155c43;--gold:#dfc26c}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:105px}body{margin:0;font:16px/1.65 Arial,sans-serif;background:var(--paper);color:var(--ink)}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}a,button{touch-action:manipulation}button{cursor:pointer}img{display:block;width:100%;height:auto}h1,h2,h3,p,figure{margin:0}h1,h2,h3{line-height:1.06;font-weight:500;letter-spacing:-.04em}h1{font-size:clamp(48px,6.7vw,100px)}h2{font-size:clamp(36px,4.3vw,66px)}h3{font-size:25px}em{font-style:normal;color:var(--brand)}p{max-width:68ch}p+p{margin-top:18px}.wrap{max-width:1360px;padding:100px 6%;margin:auto}.kicker{font-size:10px;font-weight:700;letter-spacing:.18em;line-height:1.7;text-transform:uppercase;margin-bottom:24px}.brand{display:flex;align-items:center;gap:13px}.brand img{width:54px;height:54px;flex:none}.brand span{max-width:230px;font-weight:700;line-height:1.2;font-size:17px;letter-spacing:-.02em}nav{display:flex;gap:25px;font-size:12px}nav a{padding:8px 0}.call{font-size:18px;font-weight:700;white-space:nowrap;display:inline-flex;gap:15px;align-items:center}.call span{font-size:22px}.cta,.submit{display:inline-flex;justify-content:space-between;align-items:center;gap:30px;padding:17px 24px;background:var(--brand);color:white;border:1px solid var(--brand);font-size:13px;font-weight:700}.cta{margin-top:28px}.cta:hover,.submit:hover{filter:brightness(.92)}a:focus-visible,button:focus-visible,summary:focus-visible{outline:3px solid var(--gold);outline-offset:5px}main{overflow:hidden}.slider{position:relative;overflow:hidden;min-width:0;isolation:isolate}.slides{position:absolute;inset:0}.slides img{position:absolute;inset:0;height:100%;object-fit:cover;opacity:0;transition:opacity 1.1s ease,transform 6s ease;transform:scale(1.035)}.slides img:first-child{opacity:1}.slides img.active{opacity:1;transform:scale(1)}.slides img.inactive{opacity:0}.slide-controls{position:absolute;z-index:4;bottom:24px;right:24px;display:flex;align-items:center;gap:15px;color:#fff;font-size:11px;padding:7px 10px;background:#17212677;backdrop-filter:blur(10px)}.slide-controls button{width:31px;height:31px;border:1px solid #ffffff70;border-radius:50%;background:transparent;color:inherit;display:grid;place-items:center}.detail-photo{overflow:hidden}.detail-photo img{height:100%;object-fit:cover}.detail-photo figcaption{font-size:10px;line-height:1.6;letter-spacing:.03em;padding-top:12px}.service-n{font-size:11px;letter-spacing:.1em;display:block}.service p{font-size:14px;line-height:1.8}.service h3{margin:14px 0}ul,ol{margin:0;padding:0;list-style:none}details summary{cursor:pointer;list-style:none}details summary::-webkit-details-marker{display:none}.fields{display:grid;grid-template-columns:1fr 1fr;gap:18px}label{display:block;font-size:11px;font-weight:700;margin-bottom:18px;line-height:1.5}input,textarea,select{display:block;width:100%;border:1px solid #c9cec9;border-radius:0;padding:13px;margin-top:7px;background:#ffffffd9;color:#202c2b;font-size:15px}input:focus,textarea:focus,select:focus{outline:2px solid var(--gold);outline-offset:1px}.consent{display:flex;gap:10px;align-items:start;font-size:10px;font-weight:400}.consent input{width:16px;flex:none;margin:0;accent-color:var(--brand)}.submit{width:100%;cursor:pointer}.submit:disabled{opacity:.65;cursor:wait}.form-note,#formStatus,.email-fallback{font-size:11px;line-height:1.6;margin-top:15px;overflow-wrap:anywhere}.form-note a,.email-fallback{text-decoration:underline}.email-fallback{display:block;font-weight:700}.email-fallback[hidden],.honey,[hidden]{display:none!important}footer{padding:35px 6%;display:flex;gap:25px;align-items:center;flex-wrap:wrap;border-top:1px solid #7f85792b;font-size:13px}footer>div{font-weight:700;flex:1;min-width:200px}footer small{display:block;font-size:9px;font-weight:400;margin-top:8px}.privacy{background:none;border:0;font-size:10px;text-decoration:underline;color:inherit}dialog{border:0;max-width:600px;width:92%;padding:45px;color:#24312a;background:#fff}dialog::backdrop{background:#14221a90}dialog h2{font-size:34px;margin-bottom:24px}dialog p{font-size:14px}.dialog-close{position:absolute;top:8px;right:15px;border:0;background:transparent;font-size:28px}.mobile-call{display:none}.reveal{transition:opacity .7s,transform .7s}.js-reveal{opacity:0;transform:translateY(20px)}.js-reveal.visible{opacity:1;transform:none}@media(max-width:760px){html{scroll-padding-top:90px}h1{font-size:50px}h2{font-size:39px}.wrap{padding:65px 22px}.brand img{width:40px;height:40px}.brand span{font-size:12px;max-width:160px}nav{gap:14px;font-size:10px;flex-wrap:wrap}.call{font-size:15px;gap:8px}.fields{grid-template-columns:1fr;gap:0}.mobile-call{display:block;position:fixed;z-index:50;bottom:12px;left:16px;right:16px;padding:13px;background:var(--brand);color:white;text-align:center;border:1px solid #ffffff70;border-radius:6px;box-shadow:0 6px 25px #0003;font-size:14px;font-weight:700}footer{padding:28px 22px 100px;align-items:flex-start}.slide-controls{bottom:15px;right:15px}form{min-width:0}.cta{gap:20px;padding:15px 19px}.slider{min-height:330px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{transition:none!important;animation:none!important}.js-reveal{opacity:1;transform:none}}
body{--paper:#f6f5ee;--ink:#1b3129}.nav-over{position:absolute;z-index:10;top:0;left:0;right:0;display:flex;justify-content:space-between;align-items:center;padding:30px 5%;color:#fff;border-bottom:1px solid #ffffff35}.y-hero{position:relative;min-height:820px;height:95vh;color:#fff}.y-hero .slider{position:absolute;inset:0}.y-hero .slider:after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,#0b271ee8,#112b2270 55%,#0000)}.y-caption{position:relative;z-index:2;padding:200px 6% 110px;max-width:850px}.y-caption h1{font-size:clamp(58px,7.3vw,110px)}.y-caption h1 em{color:#e6d39c;font-family:Georgia,serif;font-style:italic;font-weight:400}.y-caption>p:not(.kicker){max-width:470px;margin-top:28px;color:#ffffffb9}.y-caption .cta{background:#e0c37a;border-color:#e0c37a;color:#153c2c}.hero-place{position:absolute;z-index:2;bottom:28px;left:6%;font-size:9px;letter-spacing:.2em}.y-work{display:grid;grid-template-columns:1fr 1.3fr;gap:100px}.section-intro h2{font-size:70px}.section-intro>p:last-child{font-size:15px;margin-top:30px}.y-services{display:grid;grid-template-columns:1fr 1fr;gap:35px}.y-services .service{border-top:1px solid #243d2850;padding-top:22px}.y-services h3{font-size:24px}.y-services .service-n{color:#8b783b}.y-detail{display:grid;grid-template-columns:1.25fr 1fr;background:#e8eadd;gap:70px;align-items:center;padding:70px 6%}.y-detail figure img{height:520px}.y-detail h2{font-family:Georgia,serif}.y-detail p:not(.kicker){margin:25px 0}.area-title{display:grid;grid-template-columns:1fr 1fr;gap:80px;align-items:end}.y-area ul{columns:3;margin-top:45px;border-top:1px solid #a6b1a2;padding-top:25px}.y-area li{padding:9px 0;font-size:14px}.y-contact{background:#153c2c;color:#fff;display:grid;grid-template-columns:1fr 1fr;gap:90px;padding:90px 6%}.y-contact>div p{margin:24px 0}.y-contact>div .call{font-size:30px}.y-contact form{background:#f7f5eb;color:#20382a;padding:35px}.y-contact h2{font-family:Georgia,serif}.y-contact .submit{background:#155c43}footer{background:#f1f0e6}@media(max-width:1000px){.nav-over nav{display:none}.y-work{gap:40px}.y-caption{max-width:700px}}@media(max-width:760px){.nav-over{padding:20px}.nav-over .call{font-size:14px}.y-hero{height:auto;min-height:740px}.y-caption{padding:170px 22px 130px}.y-caption h1{font-size:55px}.y-work,.y-detail,.y-contact,.area-title{grid-template-columns:1fr;gap:35px}.section-intro h2{font-size:52px}.y-services{gap:25px 20px}.y-services h3{font-size:21px}.y-detail{padding:55px 22px}.y-detail figure img{height:340px}.y-area ul{columns:2}.y-contact{padding:60px 22px}.y-contact form{padding:22px}.y-contact .call{font-size:25px!important}}
.slides img{transition:none;transform:none}.slides img.previous{opacity:1;z-index:1}.slides img.active{z-index:2}.slides img.inactive:not(.previous){opacity:0}
/* Yverdon: moving panorama, cinematic cut, growing editorial rules. */
.slides img.active{animation:yPan 4s linear both}.slides img.previous{animation:yOut 1.25s ease both}@keyframes yPan{0%{transform:scale(1.12) translateX(2%);opacity:0}22%{opacity:1}100%{transform:scale(1.06) translateX(-1.7%);opacity:1}}@keyframes yOut{to{transform:scale(1.09) translateX(-5%);opacity:0}}.y-caption h1{animation:yTitle 1.2s cubic-bezier(.2,.7,.2,1) both}@keyframes yTitle{from{opacity:0;transform:translateX(-40px)}to{opacity:1;transform:none}}.y-services .service{position:relative}.y-services .service:before{content:'';position:absolute;top:-1px;left:0;width:0;height:3px;background:var(--gold);transition:width .5s}.y-services .service:hover:before{width:100%}.motion-target{opacity:.12;transform:translateX(-25px);transition:opacity .8s,transform .8s}.motion-target.seen{opacity:1;transform:none}.cta{transition:box-shadow .3s}.cta:hover{box-shadow:7px 7px 0 #e0c37a55}
@media(prefers-reduced-motion:reduce){.slides img.active{animation:none!important;clip-path:none!important;opacity:1!important;transform:none!important;filter:none!important}.motion-target{opacity:1!important;transform:none!important;filter:none!important;clip-path:none!important}.slider:after{animation:none!important}.motion-target{transition:none!important}}.y-hero .slider:after{z-index:3}footer{border-top:6px solid var(--brand)}
@media(max-width:760px){}
@media(max-width:760px){.hero-place{max-width:130px;bottom:28px;line-height:1.8;font-size:7px}}