:root{--ink:#18243a;--ink2:#26354f;--mist:#e9eff1;--paper:#f7f9f9;--brass:#b78a3d;--brass-d:#8d6a28;--sage:#8fa9a0;--text:#2b3445;--mute:#5c6678;--line:#d3dcdf;--r:6px;--w:1280px;
--fd:"Bricolage Grotesque","Segoe UI",system-ui,sans-serif;--fb:"Instrument Sans","Segoe UI",system-ui,sans-serif}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;scroll-padding-top:80px}
body{font-family:var(--fb);color:var(--text);background:var(--paper);line-height:1.65;font-size:17px}
a{color:inherit}
img{max-width:100%}
.wrap{width:min(var(--w),92%);margin-inline:auto}
.skip{position:absolute;left:-999px;top:8px;background:var(--ink);color:#fff;padding:8px 14px;z-index:99}
.skip:focus{left:8px}
:focus-visible{outline:3px solid var(--brass);outline-offset:3px}
h1,h2,h3{font-family:var(--fd);color:var(--ink);line-height:1.1;letter-spacing:-.02em}
h1{font-size:clamp(2.5rem,5.4vw,4.6rem);font-weight:700}
h2{font-size:clamp(2rem,3.6vw,3rem);font-weight:700;margin-bottom:22px}
h3{font-size:1.2rem;font-weight:500;letter-spacing:-.01em}
p+p{margin-top:16px}
.tag{color:var(--brass-d);font-weight:600;font-size:.95rem;margin-bottom:22px}
.lead{font-size:1.15rem;color:var(--mute);max-width:56ch;margin-top:26px}

.btn{display:inline-block;background:var(--ink);color:#fff;text-decoration:none;font-weight:600;padding:15px 28px;border-radius:var(--r);border:0;cursor:pointer;font:600 1rem var(--fb);transition:background .25s,transform .25s}
.btn:hover{background:var(--brass-d);transform:translateY(-2px)}
.btn-sm{padding:10px 20px}
.btn-light{background:var(--brass);color:var(--ink)}
.btn-light:hover{background:#fff}
.link{font-weight:600;text-decoration:none;border-bottom:2px solid var(--brass);padding-bottom:2px}
.link:hover{color:var(--brass-d)}

.site-header{position:sticky;top:0;z-index:50;background:rgba(247,249,249,.96);border-bottom:1px solid var(--line)}
.bar{display:flex;align-items:center;justify-content:space-between;height:76px}
.logo{display:flex;align-items:center;gap:10px;font:700 1.25rem var(--fd);text-decoration:none;color:var(--ink)}
.logo-mark{width:22px;height:26px;background:var(--brass);border-radius:11px 11px 2px 2px}
.nav{display:flex;align-items:center;gap:34px}
.nav a:not(.btn){text-decoration:none;font-weight:500;position:relative}
.nav a:not(.btn)::after{content:"";position:absolute;left:0;bottom:-4px;height:2px;width:0;background:var(--brass);transition:width .25s}
.nav a:not(.btn):hover::after{width:100%}
.menu-btn{display:none;background:none;border:0;width:44px;height:44px;cursor:pointer;position:relative}
.menu-btn span{position:absolute;left:10px;right:10px;height:2px;background:var(--ink);transition:.25s}
.menu-btn span:first-child{top:17px}.menu-btn span:last-child{top:25px}
.menu-btn[aria-expanded=true] span:first-child{top:21px;transform:rotate(45deg)}
.menu-btn[aria-expanded=true] span:last-child{top:21px;transform:rotate(-45deg)}

.hero{background:var(--mist);padding:90px 0 100px;overflow:hidden}
.hero-grid{display:grid;grid-template-columns:1.15fr .85fr;gap:60px;align-items:center}
.hero-cta{display:flex;align-items:center;gap:30px;margin-top:36px;flex-wrap:wrap}
.hero-facts{list-style:none;display:flex;gap:36px;margin-top:54px;padding-top:26px;border-top:1px solid var(--line);flex-wrap:wrap}
.hero-facts li{font-size:.92rem;color:var(--mute)}
.hero-facts strong{display:block;font:700 1.15rem var(--fd);color:var(--ink)}
.hero-art{position:relative;aspect-ratio:4/5;max-height:600px;width:100%}
.shape{position:absolute}
.arch{left:8%;top:0;width:58%;height:68%;background:var(--ink);border-radius:999px 999px 0 0;animation:rise 1s ease both}
.disc{right:2%;top:30%;width:42%;aspect-ratio:1;background:var(--brass);border-radius:50%;animation:rise 1s .15s ease both}
.slab{left:0;bottom:6%;width:50%;height:26%;background:var(--sage);border-radius:var(--r);animation:rise 1s .3s ease both}
.bar2{right:6%;bottom:0;width:34%;height:14%;background:#fff;border:1px solid var(--line);border-radius:var(--r);animation:rise 1s .45s ease both}
.shape-note{position:absolute;left:10%;top:48%;color:#fff;font:500 1rem var(--fd);line-height:1.3;max-width:30%}
.shape-note span{font:400 .8rem var(--fb);opacity:.75}
@keyframes rise{from{opacity:0;transform:translateY(30px)}to{opacity:1;transform:none}}

.band{background:var(--ink);color:#dfe6ea}
.band-in{display:flex;justify-content:space-between;gap:12px 28px;flex-wrap:wrap;padding:22px 0;font-weight:500;font-size:.98rem}

.about{padding:120px 0}
.about-grid{display:grid;grid-template-columns:.8fr 1.2fr;gap:80px;align-items:start}
.about-media{position:sticky;top:110px;height:560px}
.frame{position:absolute;border-radius:var(--r);overflow:hidden}
.f1{left:0;top:0;width:78%;height:78%;background:var(--sage)}
.f2{right:0;bottom:50px;width:56%;height:44%;background:var(--ink);border:8px solid var(--paper)}
.inner{position:absolute;inset:0;background:
 linear-gradient(135deg,transparent 48%,rgba(255,255,255,.18) 49% 51%,transparent 52%),
 repeating-linear-gradient(90deg,transparent 0 38px,rgba(255,255,255,.1) 38px 40px)}
.f2 .inner{background:radial-gradient(circle at 70% 30%,var(--brass) 0 22%,transparent 23%)}
.caption{position:absolute;left:0;bottom:0;max-width:60%;font-size:.88rem;color:var(--mute)}
.panels{display:grid;grid-template-columns:repeat(3,1fr);gap:0;margin-top:44px;border:1px solid var(--line);border-radius:var(--r);background:#fff}
.panel{padding:24px}
.panel+.panel{border-left:1px solid var(--line)}
.panel h3{font-size:1.05rem;margin-bottom:8px}
.panel p{font-size:.93rem;color:var(--mute);line-height:1.55}

.services{padding:110px 0;background:#fff;border-block:1px solid var(--line)}
.sec-head{display:grid;grid-template-columns:1fr 1fr;gap:40px;align-items:end;margin-bottom:50px}
.sec-head h2{margin:0}
.sec-head p{color:var(--mute);max-width:50ch}
.acc-item{border-top:1px solid var(--line)}
.acc-item:last-child{border-bottom:1px solid var(--line)}
.acc-btn{width:100%;display:grid;grid-template-columns:1fr 1fr 32px;gap:30px;align-items:center;text-align:left;background:none;border:0;padding:30px 4px;cursor:pointer;font-family:var(--fb);color:var(--text);transition:padding .3s,background .3s}
.acc-btn:hover{padding-left:16px;background:var(--paper)}
.acc-title{font:700 clamp(1.4rem,2.4vw,2rem) var(--fd);color:var(--ink);letter-spacing:-.02em}
.acc-sum{color:var(--mute)}
.acc-btn i{position:relative;width:22px;height:22px}
.acc-btn i::before,.acc-btn i::after{content:"";position:absolute;background:var(--brass-d);left:0;top:10px;width:22px;height:2px;transition:transform .3s}
.acc-btn i::after{transform:rotate(90deg)}
.acc-item.open i::after{transform:rotate(0)}
.acc-body{display:grid;grid-template-rows:0fr;transition:grid-template-rows .4s ease}
.acc-item.open .acc-body{grid-template-rows:1fr}
.acc-body>div{overflow:hidden;display:grid;grid-template-columns:1fr 1fr;gap:30px}
.acc-body p{padding:0 4px 34px;max-width:58ch}
.acc-body ul{list-style:none;padding:0 0 34px;columns:1}
.acc-body li{padding:7px 0 7px 22px;position:relative;border-bottom:1px dashed var(--line)}
.acc-body li::before{content:"";position:absolute;left:0;top:17px;width:10px;height:2px;background:var(--brass)}

.why{background:var(--ink);color:#d6dee4;padding:120px 0}
.why h2,.why h3{color:#fff}
.why-grid{display:grid;grid-template-columns:.85fr 1.15fr;gap:90px}
.why-intro{position:sticky;top:120px;align-self:start}
.why-intro p{margin-bottom:34px;max-width:44ch}
.why-list{list-style:none}
.why-list li{padding:30px 0 30px 32px;border-left:3px solid var(--ink2);transition:border-color .3s,padding .3s}
.why-list li:hover{border-color:var(--brass);padding-left:42px}
.why-list h3{font-size:1.5rem;margin-bottom:8px}

.process{padding:110px 0}
.steps{display:grid;grid-template-columns:repeat(4,1fr);gap:0;counter-reset:s}
.step{padding:34px 28px 10px 0;border-top:3px solid var(--ink);position:relative}
.step:nth-child(2){margin-top:30px}.step:nth-child(3){margin-top:60px}.step:nth-child(4){margin-top:90px}
.step b{display:inline-grid;place-items:center;width:38px;height:38px;border-radius:50%;background:var(--brass);color:var(--ink);font:700 1rem var(--fd);margin-bottom:16px}
.step h3{margin-bottom:8px}
.step p{color:var(--mute);font-size:.97rem}

.contact{background:var(--mist);padding:110px 0}
.contact-grid{display:grid;grid-template-columns:.9fr 1.1fr;gap:80px;align-items:start}
.contact-info p{color:var(--mute);max-width:46ch}
dl{margin-top:36px;border-top:1px solid var(--line)}
dt{font-weight:600;color:var(--ink);padding-top:18px}
dd{padding-bottom:18px;border-bottom:1px solid var(--line);font-style:normal}
address{font-style:normal}
dd a{color:var(--brass-d);font-weight:600}
.form{background:#fff;padding:44px;border-radius:var(--r);border-top:5px solid var(--brass)}
.field{margin-bottom:22px}
label{display:block;font-weight:600;font-size:.93rem;margin-bottom:7px;color:var(--ink)}
input,select,textarea{width:100%;padding:13px 14px;border:1px solid #b9c5ca;border-radius:var(--r);font:inherit;background:var(--paper);color:var(--text);transition:border-color .2s}
input:focus,select:focus,textarea:focus{outline:0;border-color:var(--ink);box-shadow:0 0 0 3px rgba(183,138,61,.35)}
.field.bad input,.field.bad select,.field.bad textarea{border-color:#a73a2c}
.err{display:block;color:#a73a2c;font-size:.85rem;min-height:0;margin-top:5px}
.status{margin-top:16px;font-weight:600;color:#2f6b4f}

.footer{background:var(--ink);color:#c3cdd4;padding:60px 0 40px;font-size:.95rem}
.footer .logo{color:#fff;margin-bottom:14px}
.foot-in{display:grid;grid-template-columns:1.3fr 1fr 1.2fr;gap:40px;align-items:start}
.foot-in nav{display:flex;flex-direction:column;gap:8px}
.foot-in a{text-decoration:none}
.foot-in a:hover{color:var(--brass)}

.reveal{opacity:0;transform:translateY(22px);transition:opacity .7s,transform .7s}
.reveal.in{opacity:1;transform:none}

@media (max-width:980px){
 .hero-grid,.about-grid,.why-grid,.contact-grid,.sec-head{grid-template-columns:1fr}
 .hero-art{max-width:460px;aspect-ratio:1;margin:0 auto}
 .about-media{position:relative;top:0;height:420px}
 .why-intro{position:static}
 .steps{grid-template-columns:1fr 1fr;gap:20px}
 .step:nth-child(n){margin-top:0}
 .foot-in{grid-template-columns:1fr}
 .acc-btn{grid-template-columns:1fr 32px}
 .acc-sum{grid-column:1;grid-row:2;font-size:.95rem}
 .acc-btn i{grid-column:2;grid-row:1/3}
 .acc-body>div{grid-template-columns:1fr;gap:0}
 .about,.services,.why,.process,.contact{padding:80px 0}
}
@media (max-width:820px){
 .menu-btn{display:block}
 .nav{position:absolute;top:76px;left:0;right:0;background:var(--paper);flex-direction:column;align-items:flex-start;gap:0;padding:8px 4% 24px;border-bottom:1px solid var(--line);display:none}
 .nav.open{display:flex}
 .nav a:not(.btn){padding:14px 0;width:100%;border-bottom:1px solid var(--line)}
 .nav .btn{margin-top:18px}
}
@media (max-width:620px){
 body{font-size:16px}
 .hero{padding:50px 0 60px}
 .panels{grid-template-columns:1fr}
 .panel+.panel{border-left:0;border-top:1px solid var(--line)}
 .steps{grid-template-columns:1fr}
 .form{padding:28px 22px}
 .band-in{justify-content:flex-start}
}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important;scroll-behavior:auto!important}.reveal{opacity:1;transform:none}}
