/* Kastl Group — GOD-ФУТЕР «основная надпись». Подключается на всех страницах. */

/* ---------- Лента 0: pre-footer «пришлите чертёж» ---------- */
.gf-cta{
  position:relative;z-index:2;border-top:1px solid var(--line);
  background:radial-gradient(820px 320px at 14% 0%, rgba(47,107,255,.16), transparent 62%), var(--bg);
  padding:74px 0;
}
.gf-cta__in{display:grid;grid-template-columns:1.05fr .95fr;gap:56px;align-items:center}
.gf-cta .eyebrow{font-family:var(--mono);font-size:11.5px;letter-spacing:.22em;color:var(--arc-hot);
  text-transform:uppercase;display:flex;align-items:center;gap:12px;margin-bottom:18px}
.eyebrow-line{width:34px;height:1px;background:var(--arc);display:inline-block;flex:none}
.gf-cta__title{font-family:var(--display);font-weight:400;line-height:.98;letter-spacing:.02em;
  font-size:clamp(32px,4.2vw,56px)}
.gf-cta__sub{margin-top:16px;max-width:460px;color:var(--dim);font-size:15.5px;line-height:1.6}
.gf-kpi{display:flex;flex-wrap:wrap;gap:10px 22px;margin-top:24px;font-family:var(--mono);font-size:12px;letter-spacing:.06em;color:var(--dim)}
.gf-kpi span{display:flex;align-items:baseline;gap:6px}
.gf-kpi b{font-family:var(--display);font-weight:400;font-size:22px;color:var(--arc-hot);letter-spacing:.03em}
.gf-bigphone{display:inline-block;margin-top:26px;font-family:var(--display);font-size:clamp(28px,3.4vw,42px);
  letter-spacing:.04em;color:var(--ink);transition:color .2s}
.gf-bigphone:hover{color:var(--arc-hot)}

.gf-drop{display:grid;gap:12px;align-content:start}
.gf-dropzone{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;text-align:center;
  padding:30px 20px;border:1.5px dashed var(--line-strong);border-radius:8px;background:rgba(14,20,29,.5);
  color:var(--dim);cursor:pointer;transition:border-color .2s,background .2s,color .2s}
.gf-dropzone:hover{border-color:var(--arc);color:var(--ink)}
.gf-dropzone.dragover{border-color:var(--arc-hot);background:rgba(47,107,255,.1);color:var(--ink)}
.gf-dz-ico{color:var(--arc-hot)}
.gf-dz-text{font-size:14px;line-height:1.5}
.gf-dz-text i{display:block;font-style:normal;font-size:12px;color:var(--dim);margin-top:2px}
.gf-dz-file{font-family:var(--mono);font-size:11.5px;color:var(--arc-hot);word-break:break-all}
.gf-dz-file:empty{display:none}

/* ---------- Основной футер: миллиметровка ---------- */
.gf{
  position:relative;z-index:2;border-top:1px solid var(--line);background:var(--panel);
  background-image:
    linear-gradient(rgba(124,148,192,.05) 1px,transparent 1px),
    linear-gradient(90deg,rgba(124,148,192,.05) 1px,transparent 1px),
    linear-gradient(rgba(124,148,192,.028) 1px,transparent 1px),
    linear-gradient(90deg,rgba(124,148,192,.028) 1px,transparent 1px);
  background-size:50px 50px,50px 50px,10px 10px,10px 10px;
  padding:64px 0 36px;
}

/* Лента 1 — 4 колонки */
.gf-cols{display:grid;grid-template-columns:repeat(4,1fr);gap:34px;padding-bottom:44px;border-bottom:1px solid var(--line)}
.gf-col__h{display:flex;align-items:center;gap:10px;font-family:var(--display);font-weight:400;font-size:19px;
  letter-spacing:.04em;color:var(--ink);margin-bottom:16px}
.gf-col__h i{font-family:var(--mono);font-style:normal;font-size:10px;letter-spacing:.1em;color:var(--arc-hot);
  border:1px solid rgba(47,107,255,.4);border-radius:3px;padding:2px 6px}
.gf-col a{display:block;font-size:14px;color:var(--dim);padding:6px 0;transition:color .2s}
.gf-col a:hover{color:var(--arc-hot)}
.gf-col--contacts .gf-c-phone{font-family:var(--mono);font-size:16px;color:var(--ink);letter-spacing:.02em}
.gf-col--contacts .gf-c-mail{font-size:14px;color:var(--dim)}
.gf-c-line{font-size:13px;color:var(--dim);padding:6px 0;line-height:1.5}
.gf-mark{color:var(--arc-hot)}
.gf-mark--fill{color:var(--arc)}
.gf-c-hours{font-family:var(--mono);font-size:11.5px;letter-spacing:.06em}
.gf-wa{display:inline-block;margin-top:8px;font-size:13px;color:#25D366!important}
.gf-wa:hover{opacity:.8}

/* Лента 2 — карта */
.gf-map{padding:36px 0;border-bottom:1px solid var(--line)}
.gf-map__head{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px;flex-wrap:wrap;gap:12px}
.gf-map__title{font-family:var(--mono);font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:var(--dim)}
.gf-map__toggle{display:flex;gap:8px}
.gf-map__btn{font-family:var(--mono);font-size:12px;color:var(--dim);background:none;border:1px solid var(--line-strong);
  border-radius:4px;padding:7px 14px;transition:border-color .2s,color .2s}
.gf-map__btn:hover{color:var(--ink)}
.gf-map__btn.is-on{border-color:var(--arc);color:var(--arc-hot)}
.gf-map__frame{position:relative;height:300px;border:1px solid var(--line);border-radius:8px;overflow:hidden;
  background:rgba(14,20,29,.6) repeating-linear-gradient(0deg,transparent,transparent 24px,rgba(124,148,192,.05) 24px,rgba(124,148,192,.05) 25px)}
.gf-map__frame iframe{width:100%;height:100%;border:0;display:block}
.gf-map__load{position:absolute;inset:0;margin:auto;width:190px;height:46px;font-family:var(--body);font-size:14px;
  font-weight:600;color:var(--ink);background:rgba(47,107,255,.14);border:1px solid var(--arc);border-radius:6px;cursor:pointer;transition:background .2s}
.gf-map__load:hover{background:rgba(47,107,255,.24)}

/* Лента 3 — штамп */
.gf-stamp{display:grid;grid-template-columns:1.2fr 1.4fr 1.2fr auto;gap:0;margin-top:36px;
  border:1px solid var(--line);border-radius:4px;overflow:hidden}
.gf-stamp__cell{padding:16px 20px;font-size:12.5px;color:var(--dim);border-right:1px solid var(--line);display:flex;align-items:center;gap:10px}
.gf-stamp__cell:last-child{border-right:0}
.gf-stamp__brand{font-family:var(--display);font-size:16px;letter-spacing:.04em;color:var(--ink)}
.gf-stamp__req{font-family:var(--mono);font-size:11.5px;letter-spacing:.02em;color:var(--dim)}
.gf-stamp__links{gap:18px;flex-wrap:wrap}
.gf-stamp__links a{color:var(--dim);transition:color .2s}
.gf-stamp__links a:hover{color:var(--arc-hot)}
.gf-top{font-family:var(--mono);font-size:11px;letter-spacing:.1em}

@media (max-width:960px){
  .gf-cta__in{grid-template-columns:1fr;gap:36px}
  .gf-cols{grid-template-columns:repeat(2,1fr);gap:30px 24px}
  .gf-stamp{grid-template-columns:1fr;}
  .gf-stamp__cell{border-right:0;border-bottom:1px solid var(--line)}
  .gf-stamp__cell:last-child{border-bottom:0}
}
@media (max-width:560px){
  .gf-cta{padding:52px 0}.gf{padding:48px 0 30px}
  .gf-cols{grid-template-columns:1fr;gap:26px}
}
@media (prefers-reduced-motion:reduce){.gf-dropzone,.gf-map__btn,.gf-map__load{transition:none}}
