/* botdev · landing-v2 · 05 работы · 06 контакт (форма-терминал) · футер */

/* ===== 05 · работы — «продукт как доказательство» ===== */
.work-grid{display:grid;grid-template-columns:repeat(12,1fr);gap:clamp(14px,2vw,24px)}
.wcard{position:relative;border:1px solid var(--line);border-radius:var(--r-panel);background:var(--panel);overflow:hidden;display:flex;flex-direction:column}
.wcard .wtag{font:400 var(--fs-xs) var(--f-mono);letter-spacing:.02em;color:var(--accent-ink);margin:0 0 8px}
.wcard h3{font:400 1.15rem/1.25 var(--f-head);letter-spacing:-.02em}
.wcard p{margin:10px 0 0;font-size:var(--fs-copy);color:var(--text-70)}
.wcard .wbody{padding:clamp(18px,2.4vw,26px)}
.wcard .wmeta{margin-top:auto;padding:14px clamp(18px,2.4vw,26px);border-top:1px solid var(--line);font:400 var(--fs-xs) var(--f-mono);letter-spacing:.02em;color:var(--text-45);display:flex;flex-wrap:wrap;gap:6px 16px}
.wcard .wmeta b{color:var(--text-70);font-weight:400}
/* экспонат 3D — крупная плитка с превью */
.wcard--motor{grid-column:span 7;min-height:420px}
.wcard--motor .shot{position:relative;flex:1;min-height:260px;background:#0d1219 url("../img/motor-preview.jpg") center/cover no-repeat}
.wcard--motor .shot::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(10,12,16,0) 40%,rgba(10,12,16,.85))}
/* кнопка лежит на пёстром скриншоте: плотная подложка, иначе сквозь неё читается интерфейс модели */
.wcard--motor .shot .open{position:absolute;left:clamp(18px,2.4vw,26px);bottom:18px;z-index:1;background:rgba(13,18,25,.82);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-color:rgba(255,255,255,.22)}
@media(hover:hover){.wcard--motor .shot .open:hover{background:rgba(13,18,25,.92);border-color:var(--accent-line)}}
.wcard--ozon{grid-column:span 5}
.wcard--docs{grid-column:span 4}
.wcard--bot{grid-column:span 8}
/* mono-«листинг» реальных событий — честный формат, без выдуманных цифр */
.listing{margin:14px 0 0;padding:14px 16px;border-radius:10px;background:var(--s3);border:1px solid var(--line);font:400 var(--fs-xs)/1.8 var(--f-mono);color:var(--text-45);white-space:pre-wrap;overflow:hidden}
.listing b{color:var(--text-70);font-weight:400}
.listing .a{color:var(--accent-2)}
.wcard--bot .wbody{display:grid;grid-template-columns:1fr 1fr;gap:20px;align-items:start}
.wcard--bot .lead-card{margin-top:0}
.price-strip{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:16px 32px;margin-top:clamp(24px,3vw,36px);padding:clamp(20px,3vw,28px);border:1px solid var(--line);border-left:2px solid var(--accent);border-radius:var(--r-panel);background:var(--s2)}
.price-strip p{margin:0;max-width:60ch;color:var(--text-70)}
.price-strip p b{color:var(--text);font-weight:600}
@media(max-width:920px){.wcard--motor,.wcard--ozon,.wcard--docs,.wcard--bot{grid-column:span 12}.wcard--bot .wbody{grid-template-columns:1fr}}

/* ===== 06 · контакт — форма как терминал ===== */
.contact-grid{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:clamp(28px,5vw,72px);align-items:start}
.dlinks{display:flex;flex-direction:column;gap:10px;margin-top:22px}
.dlink{display:flex;align-items:center;gap:14px;min-height:56px;padding:12px 16px;border:1px solid var(--line);border-radius:12px;background:var(--s2);transition:border-color var(--t-fast)}
.dlink .ic{display:grid;place-items:center;width:34px;height:34px;border-radius:9px;background:var(--s3);color:var(--accent-2);flex-shrink:0}
.dlink .ic svg{width:16px;height:16px}
.dlink b{display:block;font:600 .95rem var(--f-body)}
.dlink i{display:block;font:400 var(--fs-xs) var(--f-mono);color:var(--text-45);font-style:normal;margin-top:2px}
@media(hover:hover){.dlink:hover{border-color:var(--accent-line)}}
.person{display:flex;align-items:center;gap:14px;margin-top:22px;padding-top:22px;border-top:1px solid var(--line)}
.person .ava{width:48px;height:48px;border-radius:50%;background:var(--s3) var(--ava,none) center/cover;border:1px solid var(--line-2);display:grid;place-items:center;font:400 1rem var(--f-mono);color:var(--accent-2)}
.person b{display:block;font:600 .95rem var(--f-body)}
.person i{display:block;font:400 var(--fs-xs) var(--f-mono);color:var(--text-45);font-style:normal}

.term{border:1px solid var(--line-2);border-radius:var(--r-panel);background:var(--s2);overflow:hidden;box-shadow:inset 0 1px 0 rgba(255,255,255,.06)}
.term-top{display:flex;align-items:center;gap:8px;padding:12px 16px;border-bottom:1px solid var(--line);font:400 var(--fs-xs) var(--f-mono);color:var(--text-45)}
.term-top i{width:9px;height:9px;border-radius:50%;background:var(--s4);border:1px solid var(--line-2)}
.term-top i:first-child{background:var(--accent);border-color:var(--accent)}
.term-top span{margin-left:8px}
.term form{padding:clamp(16px,2.4vw,24px);display:flex;flex-direction:column;gap:14px}
.field{display:flex;flex-direction:column;gap:6px}
.field label{font:400 var(--fs-xs) var(--f-mono);letter-spacing:.04em;color:var(--text-45)}
.field label::before{content:"› ";color:var(--accent-ink)}
.field input,.field textarea{width:100%;padding:12px 14px;border-radius:10px;border:1px solid var(--line-2);background:var(--s1);color:var(--text);font:400 var(--fs-body)/1.5 var(--f-body);transition:border-color var(--t-fast)}
.field textarea{min-height:128px;resize:vertical}
.field input::placeholder,.field textarea::placeholder{color:var(--text-45)} /* было .28 — 2,4:1 */
.field input:focus,.field textarea:focus{outline:none;border-color:var(--accent-line)}
.field input:focus-visible,.field textarea:focus-visible{border-color:var(--accent);outline:2px solid var(--accent);outline-offset:2px}
.field:focus-within label{color:var(--accent-2)}
.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
/* согласие на обработку данных: свой чекбокс в языке «узел», без теней */
.consent{display:flex;gap:10px;align-items:flex-start;font-size:var(--fs-sm);line-height:1.45;color:var(--text-70);cursor:pointer}
.consent input{appearance:none;-webkit-appearance:none;flex:0 0 18px;width:18px;height:18px;margin:2px 0 0;border:1px solid var(--line-2);border-radius:5px;background:var(--s1);display:grid;place-items:center;cursor:pointer;transition:border-color var(--t-fast),background var(--t-fast)}
.consent input:checked{background:var(--accent);border-color:var(--accent)}
.consent input:checked::after{content:"";width:9px;height:5px;border-left:2px solid var(--ink-on-accent);border-bottom:2px solid var(--ink-on-accent);transform:rotate(-45deg) translate(1px,-1px)}
.consent a{color:var(--accent-2);border-bottom:1px solid var(--accent-line)}
a.more{color:var(--accent-2);border-bottom:1px solid var(--accent-line)}
@media(hover:hover){a.more:hover{color:var(--text)}}
.form-foot{display:flex;flex-wrap:wrap;align-items:center;gap:12px 18px;margin-top:4px}
.form-hint{font:400 var(--fs-xs) var(--f-mono);color:var(--text-45)}
.form-error{margin:0;padding:12px 14px;border-radius:10px;border:1px solid var(--accent-line);background:rgba(255,106,69,.06);font-size:var(--fs-sm);color:var(--text)}
.form-error a{color:var(--accent-2);border-bottom:1px solid var(--accent-line)}
.form-done{padding:28px 8px;text-align:center}
.form-done .ok{display:grid;place-items:center;width:52px;height:52px;margin:0 auto 16px;border-radius:50%;background:linear-gradient(180deg,var(--accent),var(--accent-deep));color:var(--ink-on-accent)}
.form-done .ok svg{width:24px;height:24px}
.form-done h3{font:400 1.3rem var(--f-head)}
.form-done p{margin:10px 0 0;color:var(--text-70)}
.btn[aria-busy="true"]{opacity:.85;cursor:progress}
@media(max-width:920px){.contact-grid{grid-template-columns:1fr}}

/* ===== футер ===== */
.foot{position:relative;overflow:hidden;padding:56px 0 40px;border-top:1px solid var(--line);background:var(--s1)}
.foot::before{content:"›_";position:absolute;right:-.05em;bottom:-.28em;font:800 clamp(6rem,20vw,16rem)/1 var(--f-mono);color:rgba(255,255,255,.04);pointer-events:none}
/* колонка бренда держит минимум 240px: раньше «1fr auto» отдавал всю ширину девяти ссылкам, и на ~1000px слоган сжимался в столбик по одному слову */
.foot .container{position:relative;display:grid;grid-template-columns:minmax(240px,1fr) auto;gap:28px clamp(32px,5vw,72px);align-items:start}
.foot .tag{font-size:var(--fs-sm);color:var(--text-70);max-width:44ch;margin:8px 0 0}
.foot-nav{display:flex;flex-wrap:wrap;gap:20px clamp(32px,4vw,56px)}
.foot-cap{margin:0 0 4px;font-size:var(--fs-xs);color:var(--text-45)}
.foot-links{display:grid;grid-auto-flow:column;grid-template-rows:repeat(3,auto);gap:0 28px;margin:0;padding:0;list-style:none} /* по три в столбик: разделы — два столбика, страницы — один */
.foot-links a{display:inline-flex;align-items:center;min-height:36px;font-size:var(--fs-sm);color:var(--text-70);white-space:nowrap}
@media(pointer:coarse){.foot-links a{min-height:44px}}
@media(hover:hover){.foot-links a:hover{color:var(--text)}}
.foot .copy{grid-column:1/-1;margin:18px 0 0;padding-top:18px;border-top:1px solid var(--line)}
@media(max-width:920px){.foot .container{grid-template-columns:1fr}}
