:root{
  --bg:#f1f3ef;
  --surface:#fafbf8;
  --ink:#172019;
  --muted:#59635c;
  --accent:#286343;
  --accent-dark:#194c31;
  --line:#cbd2cb;
  --radius:10px;
  --shadow:0 24px 70px rgba(35,55,42,.12);
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:76px}
body{width:100%;margin:0;background:var(--bg);color:var(--ink);font-family:"Aptos","Segoe UI",Arial,sans-serif;line-height:1.55;-webkit-font-smoothing:antialiased}
a{color:inherit}
.skip-link{position:fixed;left:16px;top:-60px;z-index:100;background:var(--ink);color:#fff;padding:10px 14px;border-radius:6px;text-decoration:none}.skip-link:focus{top:12px}
img{display:block;max-width:100%}
button,input,select,textarea{font:inherit}
:focus-visible{outline:3px solid rgba(40,99,67,.35);outline-offset:3px}
header{height:84px;display:flex;align-items:center;gap:30px;padding:0 max(24px,calc((100vw - 1600px)/2));border-bottom:1px solid #26362c;position:sticky;top:0;background:rgba(14,21,16,.98);backdrop-filter:blur(16px);z-index:20;box-shadow:0 4px 18px rgba(14,21,16,.18);color:#f1f5f1}
.brand{display:block;width:176px;height:68px;overflow:hidden;flex:0 0 176px;text-decoration:none}.brand img{width:176px;height:68px;object-fit:contain}
nav{display:flex;gap:22px;margin-left:auto}nav a,.top-cta{text-decoration:none;font-size:13px;font-weight:750}nav a{color:#c7d1c9;transition:color .2s ease}nav a:hover{color:#fff}
.top-cta{background:#edf3ee;color:#172019;padding:10px 16px;border-radius:999px;white-space:nowrap;transition:transform .2s ease,background .2s ease}.top-cta:hover{background:#fff;transform:translateY(-1px)}
.menu{display:none}.languages{display:flex;align-items:center;gap:8px;font-size:12px;font-weight:850}.languages a,.languages strong{padding:6px 4px;text-decoration:none}.languages a{color:#c7d1c9}.languages strong{color:#8fc49f;border-bottom:2px solid currentColor}
main{overflow:hidden}.hero{min-height:calc(100dvh - 68px);display:grid;grid-template-columns:minmax(0,.88fr) minmax(420px,1.12fr);align-items:center;gap:clamp(36px,6vw,100px);padding:clamp(48px,7vh,84px) max(24px,calc((100vw - 1600px)/2))}
.hero-copy{max-width:600px;position:relative;z-index:1}.eyebrow{text-transform:uppercase;letter-spacing:.14em;font-size:11px;font-weight:850;color:var(--accent);margin:0}
h1{font-size:clamp(46px,5.6vw,78px);line-height:1;letter-spacing:-.058em;margin:18px 0 24px;max-width:11ch;text-wrap:balance}h2{font-size:clamp(34px,4vw,56px);line-height:1.04;letter-spacing:-.045em;margin:0 0 20px;text-wrap:balance}h3{font-size:23px;line-height:1.1;letter-spacing:-.025em;margin:14px 0 9px}
.hero-copy>p:not(.eyebrow){font-size:18px;color:var(--muted);max-width:42ch}.hero figure{margin:0;height:min(76vh,760px);position:relative}.hero figure:before{content:"";position:absolute;inset:22px -18px -18px 22px;border:1px solid rgba(40,99,67,.34);border-radius:var(--radius);z-index:-1}.hero img{width:100%;height:100%;object-fit:cover;object-position:center;border-radius:var(--radius);box-shadow:var(--shadow)}
.actions{display:flex;align-items:center;gap:24px;margin-top:34px}.btn{display:inline-flex;align-items:center;justify-content:center;background:var(--accent);color:#fff;text-decoration:none;font-weight:800;padding:13px 20px;border-radius:999px;white-space:nowrap;transition:transform .2s ease,background .2s ease}.btn:hover{background:var(--accent-dark);transform:translateY(-1px)}.btn:active,.top-cta:active,.form-submit:active{transform:translateY(1px)}.text-link{font-size:14px;font-weight:800;text-underline-offset:5px}
.intro{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);align-items:start;gap:clamp(48px,10vw,150px);padding:clamp(80px,10vw,140px) max(24px,calc((100vw - 1600px)/2));background:var(--ink);color:#edf1eb}.intro h2{max-width:10ch}.intro p{font-size:clamp(19px,2vw,25px);line-height:1.5;color:#bdc7bf;max-width:48ch;margin:6px 0 20px}.intro p:last-child{font-size:16px;color:#9eaaa1;margin-bottom:0}
.services,.work,.care,.faq,.contact{padding:clamp(82px,9vw,132px) max(24px,calc((100vw - 1600px)/2))}.section-heading{max-width:760px;margin-bottom:50px}.section-heading h2{margin-top:14px}.section-heading>p:last-child{font-size:18px;color:var(--muted);max-width:55ch}.services>h2{margin-bottom:50px}.service-grid{display:grid;grid-template-columns:1.05fr .95fr 1.05fr;grid-template-rows:auto auto;gap:1px;background:var(--line);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden}.service-grid article{min-height:250px;background:var(--surface);padding:34px;display:flex;flex-direction:column;justify-content:flex-end}.service-grid article h3{margin-top:0}.service-grid article p{margin:0;color:var(--muted);max-width:30ch}.service-photo{grid-row:span 2;padding:0!important;min-height:520px!important}.service-photo img{width:100%;height:100%;object-fit:cover}
.work{background:#e5e9e3}.work>div:first-child{max-width:720px;margin-bottom:48px}.work>div:first-child p{font-size:18px;color:var(--muted);max-width:45ch}.gallery{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-template-rows:repeat(4,minmax(0,1fr));gap:14px;aspect-ratio:1/1}.gallery-item{margin:0;border-radius:var(--radius);overflow:hidden;background:#cfd6ce;box-shadow:0 1px 0 rgba(14,21,16,.08)}.gallery-item:nth-child(1){grid-area:1/1/3/3}.gallery-item:nth-child(2){grid-area:1/3/3/4}.gallery-item:nth-child(3){grid-area:1/4/3/5}.gallery-item:nth-child(4){grid-area:3/1/5/3}.gallery-item:nth-child(5){grid-area:3/3/4/4}.gallery-item:nth-child(6){grid-area:3/4/4/5}.gallery-item:nth-child(7){grid-area:4/3/5/4}.gallery-item:nth-child(8){grid-area:4/4/5/5}.gallery-item img{display:block;width:100%;height:100%;object-fit:cover;transition:transform .45s ease}.gallery-item:hover img{transform:scale(1.045)}
.care{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:clamp(50px,9vw,140px);align-items:start}.care>div{position:sticky;top:110px}.care>div p{font-size:18px;color:var(--muted);max-width:44ch}.care ol{counter-reset:care;list-style:none;margin:0;padding:0}.care li{counter-increment:care;position:relative;padding:26px 0 26px 58px;border-bottom:1px solid var(--line);color:var(--muted)}.care li:first-child{border-top:1px solid var(--line)}.care li:before{content:"0" counter(care);position:absolute;left:0;top:26px;color:var(--accent);font-size:12px;font-weight:850;letter-spacing:.08em}.care li b{display:block;color:var(--ink);font-size:18px;margin-bottom:4px}
.faq{background:var(--surface)}.faq h2{max-width:720px;margin-bottom:40px}.faq details{max-width:920px;border-bottom:1px solid var(--line);padding:0}.faq summary{cursor:pointer;list-style:none;position:relative;padding:23px 48px 23px 0;font-size:18px;font-weight:780}.faq summary::-webkit-details-marker{display:none}.faq summary:after{content:"+";position:absolute;right:4px;top:19px;font-size:24px;font-weight:400;color:var(--accent)}.faq details[open] summary:after{content:"−"}.faq details p{max-width:65ch;color:var(--muted);margin:0;padding:0 40px 24px 0}
.contact{display:grid;grid-template-columns:minmax(0,.9fr) minmax(420px,1.1fr);gap:clamp(50px,9vw,140px);background:var(--ink);color:#eef2ed}.contact>div>p:not(.eyebrow){color:#bdc7bf;max-width:42ch;font-size:18px}.contact address{display:grid;gap:6px;margin-top:34px;font-style:normal}.contact address b{font-size:18px}.contact address a{text-decoration:none}.contact address span{color:#9eaaa1;margin-top:8px}.contact form{background:#f7f9f5;color:var(--ink);padding:clamp(26px,4vw,46px);border-radius:var(--radius);box-shadow:0 30px 80px rgba(0,0,0,.22)}.field{display:grid;gap:7px;margin-bottom:17px}.field label{font-size:13px;font-weight:800}.field input,.field select,.field textarea{width:100%;border:1px solid #bfc8c0;background:#fff;color:var(--ink);border-radius:7px;padding:12px 13px}.field textarea{resize:vertical}.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--accent);outline:3px solid rgba(40,99,67,.14)}.hp{position:absolute!important;left:-10000px!important;width:1px!important;height:1px!important;overflow:hidden!important}.form-note{font-size:12px;color:var(--muted)}.form-submit{width:100%;border:0;border-radius:999px;background:var(--accent);color:#fff;font-weight:850;padding:14px 20px;cursor:pointer;transition:transform .2s ease,background .2s ease}.form-submit:hover{background:var(--accent-dark)}.form-submit:disabled{cursor:wait;opacity:.65}.form-status{margin:15px 0 0;padding:12px;border-radius:7px;background:#e1eee5;color:#17452e;font-size:13px}.form-status.error{background:#f7e4e1;color:#7a241b}
footer{display:flex;justify-content:space-between;gap:24px;padding:24px max(24px,calc((100vw - 1600px)/2));background:#0e1510;color:#aeb9b0;font-size:13px}dialog{max-width:620px;border:0;border-radius:var(--radius);padding:32px;box-shadow:0 30px 90px rgba(0,0,0,.3)}dialog::backdrop{background:rgba(10,18,12,.65);backdrop-filter:blur(4px)}dialog button{border:0;border-radius:999px;background:var(--ink);color:#fff;padding:10px 17px;font-weight:800;cursor:pointer}
@media(max-width:900px){header{padding:0 20px}.menu{display:block;margin-left:auto;border:1px solid #536258;background:transparent;color:#f1f5f1;border-radius:999px;padding:8px 13px;font-weight:750}.top-cta{display:none}nav{display:none;position:absolute;left:16px;right:16px;top:84px;margin:0;padding:14px;background:#172019;border:1px solid #38473d;border-radius:var(--radius);box-shadow:var(--shadow);flex-direction:column;gap:0}nav.open{display:flex}nav a{padding:12px}.hero{grid-template-columns:1fr;min-height:auto;padding-top:60px}.hero figure{height:min(62vh,600px)}.intro,.care,.contact{grid-template-columns:1fr}.care>div{position:static}.service-grid{grid-template-columns:1fr 1fr}.service-photo{grid-row:auto;min-height:300px!important}.contact{gap:44px}.contact form{max-width:700px}}
@media(max-width:620px){html{scroll-padding-top:70px}header{height:68px;gap:14px}nav{top:68px}.brand{width:126px;height:52px;flex-basis:126px}.brand img{width:126px;height:52px}.hero{padding:42px 20px 70px;gap:34px}.hero figure{height:52vh;min-height:360px}.hero figure:before{display:none}h1{font-size:clamp(42px,13vw,58px);max-width:12ch}.actions{align-items:flex-start;flex-direction:column;gap:16px}.intro,.services,.work,.care,.faq,.contact{padding:72px 20px}.intro{gap:26px}.service-grid{grid-template-columns:1fr}.service-grid article{min-height:205px;padding:28px}.service-photo{min-height:330px!important;grid-row:auto}.care li{padding-left:48px}.contact form{padding:24px 18px}footer{flex-direction:column}.faq summary{font-size:17px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.btn,.top-cta,.form-submit,.gallery-item{transition:none}}

