.contact-kicker { font-family:var(--font-bold); font-size:clamp(11px,.85vw,15px); font-weight:700; letter-spacing:.13em; text-transform:uppercase; }
.contact-hero { position:relative; display:flex; height:var(--hero-viewport); min-height:0; overflow:hidden; align-items:flex-end; background:#5a2a1c url("../img/bg-about-hero.jpg") center / cover no-repeat; text-align:center; }
.contact-hero::before { content:""; position:absolute; inset:0; background:linear-gradient(0deg,#100e0e 0%,rgba(16,14,14,.9) 14%,rgba(16,14,14,.45) 42%,rgba(16,14,14,.08) 75%); }
.contact-hero__inner { position:relative; z-index:1; display:flex; flex-direction:column; align-items:center; padding-bottom:clamp(42px,5vw,88px); }
.contact-hero__inner h1 { margin-top:clamp(18px,2vw,34px); font-size:clamp(82px,8.5vw,154px); line-height:.8; text-shadow:0 2px 30px rgba(0,0,0,.42); }
.contact-hero__inner h1 span { color:var(--lime-soft); }
.contact-hero__inner > p:last-child { max-width:52ch; margin-top:clamp(20px,2vw,34px); font-size:clamp(14px,1vw,18px); line-height:1.5; }

.contact-main { padding:clamp(80px,9vw,165px) 0; }
.contact-main__grid { display:grid; grid-template-columns:minmax(280px,.72fr) minmax(0,1.28fr); align-items:start; gap:clamp(45px,8vw,145px); }
.contact-intro { position:sticky; top:28px; }
.contact-intro h2 { max-width:7ch; margin-top:20px; font-size:clamp(78px,8vw,140px); line-height:.8; }
.contact-intro > p:not(.contact-kicker) { max-width:39ch; margin-top:28px; color:#bbb; font-size:clamp(14px,1vw,17px); line-height:1.7; }
.contact-routes { display:grid; gap:0; margin-top:42px; border-top:1px solid rgba(255,255,255,.14); }
.contact-routes div { display:grid; grid-template-columns:38px 1fr; align-items:center; gap:12px; padding:17px 0; border-bottom:1px solid rgba(255,255,255,.14); }
.contact-routes span { color:var(--lime-soft); font:400 24px/1 var(--font-display); }
.contact-routes strong { font-size:13px; }
.contact-email { display:inline-block; margin-top:34px; color:var(--lime-soft); font-size:clamp(14px,1vw,17px); text-decoration:underline; text-underline-offset:5px; }

.contact-form { display:grid; gap:26px; padding:clamp(28px,4vw,66px); border-radius:28px; background:#1b1919; box-shadow:0 30px 80px rgba(0,0,0,.26); }
.contact-form__head { padding-bottom:12px; }
.contact-form__head h2 { margin-top:10px; font-family:var(--font-bold); font-size:clamp(27px,2.3vw,42px); }
.contact-form__row { display:grid; grid-template-columns:1fr 1fr; gap:22px; }
.contact-field { display:grid; gap:9px; }
.contact-field label { font-size:11px; font-weight:700; letter-spacing:.08em; text-transform:uppercase; }
.contact-field label span { color:#777; font-weight:500; }
.contact-field input,.contact-field select,.contact-field textarea { width:100%; border:1px solid #454141; border-radius:11px; outline:0; background:#242121; color:#fff; font:inherit; transition:border-color .15s,box-shadow .15s; }
.contact-field input,.contact-field select { min-height:52px; padding:0 15px; }
.contact-field textarea { min-height:180px; padding:15px; resize:vertical; line-height:1.6; }
.contact-field input:focus,.contact-field select:focus,.contact-field textarea:focus { border-color:var(--lime-soft); box-shadow:0 0 0 3px rgba(181,203,93,.12); }
.contact-field [aria-invalid="true"] { border-color:#ff8073; }
.contact-field__error { min-height:17px; color:#ff9b91; font-size:11px; }
.contact-hp { position:absolute!important; left:-10000px!important; width:1px!important; height:1px!important; overflow:hidden!important; }
.contact-form__foot { display:flex; align-items:center; justify-content:space-between; gap:20px; }
.contact-form__foot p { max-width:38ch; color:#858080; font-size:11px; line-height:1.5; }
.contact-form__foot a { color:#ccc; text-decoration:underline; text-underline-offset:3px; }
.contact-form__foot .btn { flex:none; }
.contact-form__status { min-height:24px; font-size:13px; font-weight:600; }
.contact-form__status.is-ok { color:var(--ok); }
.contact-form__status.is-bad { color:#ff9b91; }

.contact-gallery { display:grid; grid-template-columns:1.35fr .82fr .82fr; gap:8px; padding:8px; background:var(--page); }
.contact-gallery__item { min-height:clamp(310px,36vw,620px); overflow:hidden; border-radius:12px; background:#292525; }
.contact-gallery__item img { width:100%; height:100%; object-fit:cover; transition:transform .7s var(--ease); }
.contact-gallery__item:hover img { transform:scale(1.035); }

@media (max-width: 900px) {
  .contact-main__grid { grid-template-columns:1fr; }
  .contact-intro { position:static; }
  .contact-intro h2 { max-width:none; }
}
@media (max-width: 720px) {
  .contact-hero__inner { padding-bottom:clamp(34px,8svh,64px); }
  .contact-hero__inner h1 { margin-top:18px; font-size:clamp(58px,16vw,78px); }
  .contact-hero__inner > p:last-child { max-width:88vw; margin-top:18px; font-size:13px; line-height:1.42; }
  .contact-main { padding:20vw 0; }
  .contact-intro h2 { font-size:23vw; }
  .contact-form { gap:20px; padding:8vw 5vw; border-radius:18px; }
  .contact-form__row { grid-template-columns:1fr; gap:20px; }
  .contact-field input,.contact-field select { min-height:50px; font-size:16px; }
  .contact-field textarea { font-size:16px; }
  .contact-form__foot { align-items:stretch; flex-direction:column; }
  .contact-form__foot .btn { width:100%; }
  .contact-gallery { grid-template-columns:1fr 1fr; }
  .contact-gallery__item { min-height:70vw; }
  .contact-gallery__item--wide { grid-column:1 / -1; min-height:100vw; }
}
