/* Page-specific styles only. Shared styles are in assets/css/ */
.hero{position:relative;min-height:100vh;min-height:100dvh;height:auto;padding:0;color:#fff;overflow:hidden;display:flex;flex-direction:column;justify-content:flex-end}
.hero .bg{position:absolute;inset:-8% 0;will-change:transform}
.hero::after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,rgba(20,13,9,.88),rgba(20,13,9,.25) 55%,rgba(20,13,9,.55))}
.hero-text{position:relative;z-index:2;padding-top:clamp(140px,18vh,200px);padding-bottom:clamp(86px,11vh,115px);padding-left:var(--pad);padding-right:var(--pad);margin-top:auto}
.hero .label{color:var(--gold);margin-bottom:clamp(18px,2.5vh,28px)}
.hero h1{font-size:clamp(2.8rem,7.2vw,7.6rem);font-weight:400;max-width:13ch;line-height:.98}
.hero h1 em{color:var(--gold)}
.hero p{max-width:480px;margin-top:clamp(22px,3vh,34px);font-size:clamp(0.98rem,1.2vw,1.08rem);font-weight:300;opacity:.9;line-height:1.75}
.hero-strip{position:absolute;z-index:2;left:var(--pad);right:var(--pad);bottom:26px;display:flex;justify-content:space-between;font-size:.68rem;letter-spacing:.3em;text-transform:uppercase;border-top:1px solid rgba(255,255,255,.3);padding-top:16px}
.intro{display:grid;grid-template-columns:1.7fr 1fr;gap:clamp(30px,6vw,120px);align-items:end}
.intro .big{font-family:var(--serif);font-size:clamp(2rem,3.8vw,3.5rem);line-height:1.18;font-weight:400;margin:30px 0 42px}
.intro .big em{color:var(--clay)}
.intro .big::first-letter{font-size:1.25em;color:var(--brass)}
.intro .small-img{aspect-ratio:3/4;margin-bottom:-70px}
.head{display:flex;justify-content:space-between;align-items:flex-end;gap:30px;margin-bottom:50px;flex-wrap:wrap}
.filters{display:flex;gap:clamp(20px,3.5vw,36px);flex-wrap:nowrap;overflow-x:auto;overflow-y:hidden;-webkit-overflow-scrolling:touch;white-space:nowrap;margin-bottom:clamp(40px,6vw,70px);border-bottom:1px solid var(--taupe);padding-bottom:6px;scrollbar-width:thin;scrollbar-color:var(--brass) rgba(207,195,179,.25)}
.filters::-webkit-scrollbar{height:4px}
.filters::-webkit-scrollbar-track{background:rgba(207,195,179,.25);border-radius:4px}
.filters::-webkit-scrollbar-thumb{background:var(--brass);border-radius:4px}
.filters::-webkit-scrollbar-thumb:hover{background:var(--espresso)}
.filters button{background:none;border:0;font:inherit;font-size:.74rem;letter-spacing:.26em;text-transform:uppercase;font-weight:500;color:var(--muted);padding:0 0 14px;cursor:pointer;position:relative;transition:color .3s;flex-shrink:0;white-space:nowrap}
.filters button.on,.filters button:hover{color:var(--espresso)}
.filters button.on::after{content:"";position:absolute;left:0;bottom:0;width:100%;height:2px;background:var(--brass)}
.grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(40px,6vw,90px) clamp(24px,4vw,70px);align-items:start}
.proj{transition:opacity .5s,transform .5s}
.proj.hide{display:none}
.proj:nth-child(even){margin-top:110px}
.proj figure{position:relative;overflow:hidden;aspect-ratio:4/5;background:var(--sand)}
.proj img{transition:transform 1.4s cubic-bezier(.2,.7,.2,1)}
.proj:hover img{transform:scale(1.06)}
.proj .tag{position:absolute;top:20px;left:20px;background:var(--ivory);padding:6px 14px;font-size:.64rem;letter-spacing:.26em;text-transform:uppercase;font-weight:500}
.proj .meta{display:flex;gap:22px;align-items:baseline;padding-top:24px}
.proj .no{font-family:var(--serif);font-style:italic;font-size:1.4rem;color:var(--brass)}
.proj h3{font-size:clamp(1.8rem,2.8vw,2.5rem);font-weight:500}
.proj p{font-size:.78rem;letter-spacing:.2em;text-transform:uppercase;color:var(--muted);margin-top:8px}
.more{text-align:center;margin-top:100px}
.services{background:var(--espresso);color:var(--ivory)}
.services .label{color:var(--gold)}
.services .title em{color:var(--gold)}
.svc{display:grid;grid-template-columns:90px 1fr 1fr;gap:20px;align-items:center;padding:42px 0;border-top:1px solid rgba(207,195,179,.25);transition:padding .5s,color .4s}
.svc:last-child{border-bottom:1px solid rgba(207,195,179,.25)}
.svc .n{font-family:var(--serif);font-style:italic;font-size:1.5rem;color:var(--gold)}
.svc h3{font-size:clamp(2.2rem,4.6vw,4rem);font-weight:400}
.svc p{font-size:.98rem;opacity:.72;max-width:380px}
.svc:hover{padding-left:24px;color:var(--gold)}
.preview{position:fixed;width:270px;height:340px;pointer-events:none;z-index:40;opacity:0;transform:translate(-50%,-50%) scale(.9);transition:opacity .35s,transform .35s;overflow:hidden}
.preview.on{opacity:1;transform:translate(-50%,-50%) scale(1)}
.steps{display:grid;grid-template-columns:repeat(4,1fr);gap:44px;margin-top:80px}
.step{position:relative;padding-top:40px}
.step::before{content:"";position:absolute;top:0;left:0;width:100%;height:1px;background:var(--taupe)}
.step::after{content:"";position:absolute;top:0;left:0;width:0;height:1px;background:var(--brass);transition:width 1.4s .2s}
.step.in::after{width:100%}
.step .n{font-family:var(--serif);font-style:italic;font-size:4rem;color:var(--brass);line-height:1;font-weight:400}
.step h3{font-size:2rem;margin:18px 0 12px}
.step p{font-size:.96rem;color:var(--muted)}
.about{background:var(--sand);display:grid;grid-template-columns:1fr 1.1fr;gap:clamp(40px,8vw,130px);align-items:center}
.about .pic{aspect-ratio:4/5;position:relative}
.about .pic::after{content:"";position:absolute;inset:24px -24px -24px 24px;border:1px solid var(--brass);z-index:-1}
.about p{margin-bottom:20px;max-width:520px}
.about .title{margin-bottom:30px}
.sign{font-family:var(--serif);font-style:italic;font-size:2.4rem;color:var(--clay);margin:14px 0 32px}
.stats{display:flex;gap:50px;margin-top:44px;flex-wrap:wrap}
.stats b{display:block;font-family:var(--serif);font-size:3.6rem;font-weight:400;line-height:1}
.stats span{font-size:.68rem;letter-spacing:.24em;text-transform:uppercase;font-weight:500}
.testi{text-align:center}
.quotes{position:relative;max-width:980px;margin:50px auto 0;min-height:300px}
.q{position:absolute;inset:0;opacity:0;transition:opacity 1.2s}
.q.on{opacity:1}
.q::before{content:"“";display:block;font-family:var(--serif);font-size:6rem;line-height:.6;color:var(--brass)}
.q p{font-family:var(--serif);font-size:clamp(1.8rem,3.4vw,3rem);line-height:1.22;font-style:italic;font-weight:400}
.q cite{display:block;margin-top:30px;font-style:normal;font-size:.72rem;letter-spacing:.3em;text-transform:uppercase;color:var(--brass);font-weight:500}
.dots{display:flex;justify-content:center;gap:12px}
.dots button{width:34px;height:14px;border:0;background:var(--taupe);background-clip:content-box;padding:6px 0;cursor:pointer;transition:.3s}
.dots button.on{background-color:var(--brass)}
.contact{padding:0;display:grid;grid-template-columns:1fr 1.15fr}
.c-left{background:var(--espresso);color:var(--ivory);padding:clamp(80px,10vw,150px) var(--pad)}
.c-left .label{color:var(--gold)}
.c-left h2{font-size:clamp(3rem,6vw,5.6rem);font-weight:400;margin:22px 0 28px}
.c-left h2 em{color:var(--gold)}
.c-left>p{max-width:420px;opacity:.78;margin-bottom:56px}
.detail{display:grid;grid-template-columns:110px 1fr;gap:6px 20px;padding:22px 0;border-top:1px solid rgba(207,195,179,.22)}
.detail span{font-size:.68rem;letter-spacing:.28em;text-transform:uppercase;color:var(--gold);padding-top:6px}
.detail div{font-family:var(--serif);font-size:1.35rem;line-height:1.4}
.detail a:hover{color:var(--gold)}
.c-right{padding:clamp(80px,10vw,150px) var(--pad);background:var(--ivory)}
.c-right h3{font-size:clamp(2rem,3.4vw,3rem);font-weight:500;margin-bottom:10px}
.c-right>p{color:var(--muted);margin-bottom:44px}
form{display:grid;grid-template-columns:1fr 1fr;gap:34px 30px}
.f{display:flex;flex-direction:column}
.f.full{grid-column:1/-1}
.f label{font-size:.66rem;letter-spacing:.26em;text-transform:uppercase;font-weight:500;color:var(--brass);margin-bottom:6px}
.f input,.f select,.f textarea{background:none;border:0;border-bottom:1px solid var(--taupe);padding:10px 0;font:inherit;font-size:1.05rem;color:var(--espresso);outline:none;border-radius:0;transition:border-color .3s;width:100%}
.f textarea{resize:vertical}
.f input:focus,.f select:focus,.f textarea:focus{border-color:var(--brass)}
.f.err input,.f.err select{border-color:var(--clay)}
.f .em{font-size:.75rem;color:var(--clay);min-height:1em;margin-top:4px}
.chk{display:flex;gap:12px;font-size:.88rem;color:var(--muted);align-items:flex-start}
.chk input{margin-top:6px;accent-color:var(--brass)}
.btn{grid-column:1/-1;justify-self:start;background:var(--espresso);color:var(--ivory);border:0;padding:20px 46px;font:inherit;font-size:.74rem;letter-spacing:.3em;text-transform:uppercase;font-weight:500;cursor:pointer;transition:background .3s}
#msg{grid-column:1/-1;font-family:var(--serif);font-size:1.4rem;color:var(--clay);font-style:italic}
@media(max-width:960px){
  .burger{display:block;z-index:60}
  nav{position:fixed;inset:0;background:var(--espresso);color:var(--ivory);flex-direction:column;justify-content:center;gap:30px;transform:translateX(100%);transition:transform .6s cubic-bezier(.7,0,.2,1)}
  nav a{font-size:1rem}
  body.menu nav{transform:none}body.menu header{color:var(--ivory)}
  .hero-text{padding-top:130px;padding-bottom:70px}
  .hero h1{font-size:clamp(2.4rem,7vw,4.5rem)}
  .intro,.about,.contact,.grid{grid-template-columns:1fr}
  .proj:nth-child(even){margin-top:0}
  .intro .small-img{margin:0;max-width:340px}
  .steps{grid-template-columns:1fr 1fr}
  .svc{grid-template-columns:50px 1fr}.svc p{display:none}.preview{display:none}
  .fgrid{grid-template-columns:1fr 1fr}
  .hero-strip span:nth-child(2){display:none}
  .about .pic::after{inset:14px -10px -14px 10px}
}
@media(max-width:600px){
  .hero-text{padding-top:110px;padding-bottom:60px}
  .hero h1{font-size:clamp(2.2rem,8.5vw,3.2rem)}
  .seal{width:46px;height:46px;font-size:1.6rem}
  .wm{font-size:1.4rem}
  form{grid-template-columns:1fr}
  .fgrid{grid-template-columns:1fr}
  .steps{grid-template-columns:1fr}
  .detail{grid-template-columns:1fr}
  .hero-strip{font-size:.58rem}
}
