/* ============================ TOKENS (единые с остальным сайтом) ============================ */
.contacts-page{
  --teal:#2E8EA8; --teal-dark:#1B6980; --teal-deep:#0F4F63;
  --teal-light:#7FB8C9; --teal-soft:#E8F4F7;
  --coral:#FF6B4A; --coral-dark:#E5522F;
  --ink:#1A2B32; --muted:#5A6B73;
  --line:#E1EBEE; --line-strong:#C4D7DD;
  --paper:#FFFFFF; --paper-alt:#F7FAFC; --section:#F1F7F9;
  --ok:#2FA36B; --ok-soft:#E4F4EC;
  --radius:14px; --radius-sm:10px;
  --shadow-sm:0 1px 2px rgba(15,79,99,.06);
  --shadow-md:0 12px 40px -12px rgba(15,79,99,.22);
  --maxw:1200px;

  font-family:'Inter',system-ui,-apple-system,'Segoe UI',Roboto,Arial,sans-serif;
  color:var(--ink); background:var(--paper); line-height:1.6;direction:ltr;text-align:left;
  -webkit-font-smoothing:antialiased; text-rendering:optimizeLegibility;
}
.contacts-page *{box-sizing:border-box;}
.contacts-page .cnt-wrap{max-width:var(--maxw);width:100%;margin:0 auto;padding:0 24px;}
.contacts-page section{position:relative;}
.contacts-page h1,.contacts-page h2,.contacts-page h3{margin:0;letter-spacing:-.02em;}
.contacts-page p{margin:0;}
.contacts-page a{color:inherit;text-decoration:none;}
.contacts-page a:focus-visible,.contacts-page button:focus-visible,.contacts-page input:focus-visible,.contacts-page textarea:focus-visible{
  outline:2px solid var(--teal);outline-offset:3px;border-radius:4px;
}
.contacts-page .h2{font-size:clamp(26px,3vw,38px);font-weight:700;line-height:1.14;}
.contacts-page .sub{font-size:clamp(15px,1.4vw,17px);color:var(--muted);max-width:60ch;margin-top:14px;}

/* buttons */
.contacts-page .btn{
  display:inline-flex;align-items:center;gap:10px;padding:15px 26px;font-size:15px;font-weight:600;line-height:1;
  border-radius:var(--radius-sm);border:1.5px solid transparent;cursor:pointer;font-family:inherit;
  transition:background .18s,color .18s,border-color .18s;white-space:nowrap;
}
.contacts-page .btn svg{width:18px;height:18px;flex:none;}
.contacts-page .btn-primary{background:var(--coral);color:#fff;box-shadow:0 8px 20px -8px rgba(229,82,47,.6);}
.contacts-page .btn-primary:hover{background:var(--coral-dark);}
.contacts-page .btn-ghost{background:transparent;color:var(--teal-dark);border-color:var(--line-strong);}
.contacts-page .btn-ghost:hover{border-color:var(--teal);background:var(--teal-soft);}

/* ============================ HERO ============================ */
.contacts-page .hero{
  padding:72px 0 64px;
  background:radial-gradient(120% 90% at 92% 0%, rgba(46,142,168,.10) 0%, transparent 55%),var(--paper);
  overflow:hidden;
}
.contacts-page .hero::before{
  content:"";position:absolute;inset:0;pointer-events:none;
  background-image:linear-gradient(rgba(46,142,168,.055) 1px,transparent 1px),
                   linear-gradient(90deg,rgba(46,142,168,.055) 1px,transparent 1px);
  background-size:34px 34px;
  -webkit-mask-image:linear-gradient(180deg,#000 0%,transparent 78%);mask-image:linear-gradient(180deg,#000 0%,transparent 78%);
}
.contacts-page .hero-grid{position:relative;display:grid;grid-template-columns:1.15fr .95fr;gap:56px;align-items:center;}
.contacts-page .hero h1{font-size:clamp(42px,5.6vw,62px);font-weight:700;line-height:1.04;}
.contacts-page .hero-lede{font-size:clamp(16px,1.5vw,18px);color:var(--muted);margin-top:22px;max-width:52ch;line-height:1.6;}
.contacts-page .hero-cta{display:flex;flex-wrap:wrap;gap:14px;margin-top:30px;}

/* пульт связи */
.contacts-page .console{
  border:1px solid var(--line);border-radius:var(--radius);background:var(--paper);
  box-shadow:var(--shadow-md);overflow:hidden;
}
.contacts-page .console-head{
  display:flex;align-items:center;justify-content:space-between;gap:12px;
  padding:16px 22px;border-bottom:1px solid var(--line);background:var(--paper-alt);
}
.contacts-page .console-head .ttl{font-size:13px;font-weight:700;color:var(--muted);}
.contacts-page .status{display:inline-flex;align-items:center;gap:8px;font-size:13px;font-weight:600;padding:6px 12px;border-radius:100px;}
.contacts-page .status .dot{width:8px;height:8px;border-radius:50%;}
.contacts-page .status.is-open{background:var(--ok-soft);color:var(--ok);}
.contacts-page .status.is-open .dot{background:var(--ok);box-shadow:0 0 0 3px rgba(47,163,107,.18);}
.contacts-page .status.is-closed{background:var(--line);color:var(--muted);}
.contacts-page .status.is-closed .dot{background:var(--muted);}
.contacts-page .console-body{padding:8px 22px 20px;}
.contacts-page .crow{display:flex;align-items:center;gap:14px;padding:14px 0;border-bottom:1px solid var(--line);}
.contacts-page .crow:last-child{border-bottom:none;}
.contacts-page .crow>svg{width:20px;height:20px;color:var(--teal);flex:none;}
.contacts-page .crow .big{font-size:18px;font-weight:700;color:var(--ink);}
.contacts-page .crow .big:hover{color:var(--teal);}
.contacts-page .crow .small{display:block;font-size:12.5px;color:var(--muted);margin-top:2px;}
.contacts-page .messengers{display:flex;gap:10px;padding-top:16px;}
.contacts-page .msgr{
  flex:1;display:inline-flex;align-items:center;justify-content:center;gap:8px;
  padding:11px 10px;border:1px solid var(--line-strong);border-radius:var(--radius-sm);
  font-size:13.5px;font-weight:600;color:var(--teal-dark);transition:background .18s,border-color .18s;
}
.contacts-page .msgr:hover{background:var(--teal-soft);border-color:var(--teal);}
.contacts-page .msgr svg{width:17px;height:17px;}

/* ============================ DEPARTMENTS (самомаршрутизация) ============================ */
.contacts-page .depts{padding:76px 0;background:var(--paper-alt);border-top:1px solid var(--line);}
.contacts-page .dept-grid{margin-top:40px;display:grid;grid-template-columns:repeat(3,1fr);gap:20px;}
.contacts-page .dept{background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);padding:28px 26px;display:flex;flex-direction:column;}
.contacts-page .dept-ic{width:40px;height:40px;color:var(--teal);margin-bottom:16px;}
.contacts-page .dept h3{font-size:19px;font-weight:700;}
.contacts-page .dept .when{font-size:14px;color:var(--muted);margin-top:8px;line-height:1.5;min-height:42px;}
.contacts-page .dept-lines{margin-top:auto;padding-top:16px;border-top:1px solid var(--line);display:flex;flex-direction:column;gap:9px;}
.contacts-page .dept-lines a{font-size:15px;font-weight:600;color:var(--ink);display:inline-flex;align-items:center;gap:9px;}
.contacts-page .dept-lines a:hover{color:var(--teal);}
.contacts-page .dept-lines a svg{width:16px;height:16px;color:var(--teal);flex:none;}
.contacts-page .dept-lines .ext{font-size:12.5px;font-weight:500;color:var(--muted);}
.contacts-page .btn-req{display:inline-flex;align-items:center;justify-content:center;gap:8px;width:100%;padding:12px 18px;font-size:14px;font-weight:600;border-radius:var(--radius-sm);border:1.5px solid var(--line-strong);background:var(--paper);color:var(--teal-dark);cursor:pointer;font-family:inherit;transition:background .18s,border-color .18s;}
.contacts-page .btn-req:hover{background:var(--teal-soft);border-color:var(--teal);}
.contacts-page .btn-req svg{width:16px;height:16px;flex:none;}
.contacts-page .btn-req.sm{margin-top:14px;padding:9px 14px;font-size:13px;}

/* ============================ TEAM (руководители) ============================ */
.contacts-page .team{padding:76px 0;}
.contacts-page .team-note{
  margin-top:14px;display:inline-flex;align-items:center;gap:9px;font-size:13px;color:var(--teal-dark);
  background:var(--teal-soft);border:1px solid var(--line-strong);padding:8px 14px;border-radius:100px;
}
.contacts-page .team-note svg{width:15px;height:15px;flex:none;}
.contacts-page .team-grid{margin-top:36px;display:grid;grid-template-columns:repeat(4,1fr);gap:20px;}
.contacts-page .person{border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;background:var(--paper);}
.contacts-page .portrait{
  position:relative;aspect-ratio:4/5;
  background:
    linear-gradient(rgba(46,142,168,.06) 1px,transparent 1px),
    linear-gradient(90deg,rgba(46,142,168,.06) 1px,transparent 1px),
    linear-gradient(160deg,var(--teal-soft),#F2F8FA);
  background-size:22px 22px,22px 22px,100% 100%;
  display:flex;align-items:center;justify-content:center;
}
.contacts-page .portrait svg{width:56px;height:56px;color:var(--teal-light);}
.contacts-page .portrait .ph{
  position:absolute;bottom:12px;left:12px;font-size:11px;font-weight:600;color:var(--teal-dark);
  background:rgba(255,255,255,.85);border:1px solid var(--line-strong);padding:4px 9px;border-radius:6px;
}
.contacts-page .person-body{padding:18px 18px 20px;}
.contacts-page .person .role{font-size:12.5px;font-weight:600;color:var(--teal);}
.contacts-page .person .name{font-size:17px;font-weight:700;margin-top:6px;color:var(--ink);}
.contacts-page .person .name .dummy{color:var(--line-strong);font-weight:600;}
.contacts-page .person .pcontact{margin-top:12px;font-size:13.5px;color:var(--muted);display:flex;align-items:center;gap:8px;}
.contacts-page .person .pcontact svg{width:15px;height:15px;color:var(--teal);flex:none;}
.contacts-page .person .pcontact a:hover{color:var(--teal);}

/* ============================ OFFICES ============================ */
.contacts-page .offices{padding:76px 0;background:var(--section);border-top:1px solid var(--line);border-bottom:1px solid var(--line);}
.contacts-page .office-grid{margin-top:40px;display:grid;grid-template-columns:repeat(3,1fr);gap:22px;}
.contacts-page .office{background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;display:flex;flex-direction:column;}
.contacts-page .map{
  position:relative;height:150px;
  background:
    linear-gradient(rgba(46,142,168,.10) 1px,transparent 1px),
    linear-gradient(90deg,rgba(46,142,168,.10) 1px,transparent 1px),
    linear-gradient(135deg,#EAF3F6,#F5FAFB);
  background-size:26px 26px,26px 26px,100% 100%;
  display:flex;align-items:center;justify-content:center;
}
.contacts-page .map::after{
  content:"";position:absolute;width:120px;height:120px;border-radius:50%;
  background:radial-gradient(circle,rgba(46,142,168,.14),transparent 70%);
}
.contacts-page .map .pin{position:relative;z-index:1;width:34px;height:34px;color:var(--coral);filter:drop-shadow(0 4px 6px rgba(229,82,47,.3));}
.contacts-page .office-body{padding:22px 22px 24px;display:flex;flex-direction:column;flex:1;}
.contacts-page .office .city{font-size:19px;font-weight:700;display:flex;align-items:center;gap:9px;}
.contacts-page .office .city .cregion{font-size:12px;font-weight:600;color:var(--muted);}
.contacts-page .office .addr{font-size:14px;color:var(--muted);margin-top:12px;line-height:1.55;flex:1;}
.contacts-page .office-meta{margin-top:16px;padding-top:16px;border-top:1px solid var(--line);display:flex;flex-direction:column;gap:10px;}
.contacts-page .office-meta .m{display:flex;align-items:center;gap:10px;font-size:14px;}
.contacts-page .office-meta .m svg{width:16px;height:16px;color:var(--teal);flex:none;}
.contacts-page .office-meta .m a{font-weight:600;color:var(--ink);}
.contacts-page .office-meta .m a:hover{color:var(--teal);}
.contacts-page .office-meta .m span{color:var(--muted);}
.contacts-page .map-link{margin-top:16px;font-size:14px;font-weight:600;color:var(--teal);border-bottom:1px solid transparent;align-self:flex-start;transition:border-color .18s;}
.contacts-page .office:hover .map-link{border-bottom-color:var(--teal);}

/* ============================ REQUISITES ============================ */
.contacts-page .req{padding:76px 0;}
.contacts-page .req-grid{margin-top:36px;display:grid;grid-template-columns:1fr 1fr;gap:22px;}
.contacts-page .req-card{border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;}
.contacts-page .req-card .rh{padding:18px 22px;background:var(--teal-deep);color:#fff;}
.contacts-page .req-card .rh .rname{font-size:17px;font-weight:700;}
.contacts-page .req-card .rh .rokved{font-size:12.5px;color:rgba(255,255,255,.7);margin-top:3px;}
.contacts-page .rrow{display:grid;grid-template-columns:150px 1fr;gap:12px;padding:12px 22px;border-top:1px solid var(--line);font-size:13.5px;}
.contacts-page .rrow:first-of-type{border-top:none;}
.contacts-page .rrow .k{color:var(--muted);}
.contacts-page .rrow .v{color:var(--ink);font-weight:500;font-variant-numeric:tabular-nums;}

/* ============================ FORM ============================ */
.contacts-page .ask{padding:0 0 84px;}
.contacts-page .ask-box{
  border:1px solid var(--line);border-radius:20px;overflow:hidden;display:grid;grid-template-columns:.85fr 1.15fr;box-shadow:var(--shadow-md);
}
.contacts-page .ask-l{background:linear-gradient(160deg,var(--teal-deep),#0A3D4C);color:#fff;padding:44px 40px;display:flex;flex-direction:column;justify-content:center;}
.contacts-page .ask-l h2{font-size:clamp(24px,2.6vw,30px);font-weight:800;line-height:1.15;}
.contacts-page .ask-l p{color:rgba(255,255,255,.78);margin-top:14px;font-size:15px;line-height:1.6;}
.contacts-page .ask-l .reassure{margin-top:22px;display:flex;flex-direction:column;gap:12px;}
.contacts-page .ask-l .reassure .ri{display:flex;align-items:center;gap:11px;font-size:14px;color:rgba(255,255,255,.9);}
.contacts-page .ask-l .reassure .ri svg{width:18px;height:18px;color:var(--teal-light);flex:none;}
.contacts-page .ask-r{padding:40px 40px 36px;}
.contacts-page .frow{display:grid;grid-template-columns:1fr 1fr;gap:14px;}
.contacts-page .field{margin-bottom:14px;}
.contacts-page .field label{display:block;font-size:13px;font-weight:600;color:var(--muted);margin-bottom:6px;}
.contacts-page .field input,.contacts-page .field textarea{
  width:100%;padding:13px 15px;border-radius:var(--radius-sm);border:1px solid var(--line-strong);
  background:var(--paper);color:var(--ink);font-family:inherit;font-size:15px;transition:border-color .18s;
}
.contacts-page .field input:focus,.contacts-page .field textarea:focus{border-color:var(--teal);outline:none;}
.contacts-page .field textarea{resize:vertical;min-height:104px;}
.contacts-page .ask-r .btn{margin-top:6px;}
.contacts-page .consent{font-size:12.5px;color:var(--muted);margin-top:14px;line-height:1.5;}
.contacts-page .consent a{color:var(--teal);text-decoration:underline;}

/* ============================ RESPONSIVE ============================ */
@media (max-width:1000px){
  .contacts-page .hero-grid{grid-template-columns:1fr;gap:44px;}
  .contacts-page .dept-grid,.contacts-page .office-grid{grid-template-columns:repeat(2,1fr);}
  .contacts-page .team-grid{grid-template-columns:repeat(2,1fr);}
  .contacts-page .req-grid,.contacts-page .ask-box{grid-template-columns:1fr;}
}
@media (max-width:600px){
  .contacts-page .hero{padding:48px 0 44px;}
  .contacts-page .depts,.contacts-page .team,.contacts-page .offices,.contacts-page .req{padding:52px 0;}
  /* карточки листаются вбок — экономят вертикаль на телефоне */
  .contacts-page .dept-grid,
  .contacts-page .team-grid,
  .contacts-page .office-grid,
  .contacts-page .req-grid{
    display:flex;flex-wrap:nowrap;
    overflow-x:auto;scroll-snap-type:x mandatory;scroll-padding-left:24px;
    gap:14px;margin:28px -24px 0;padding:4px 24px 16px;
    -webkit-overflow-scrolling:touch;
  }
  .contacts-page .dept-grid>*,
  .contacts-page .team-grid>*,
  .contacts-page .office-grid>*,
  .contacts-page .req-grid>*{flex:0 0 84%;scroll-snap-align:start;}
  .contacts-page .team-grid>*{flex-basis:66%;}
  .contacts-page .req-grid>*{flex-basis:88%;}
  .contacts-page .dept .when{min-height:0;}
  .contacts-page .dept-grid::-webkit-scrollbar,
  .contacts-page .team-grid::-webkit-scrollbar,
  .contacts-page .office-grid::-webkit-scrollbar,
  .contacts-page .req-grid::-webkit-scrollbar{height:5px;}
  .contacts-page .dept-grid::-webkit-scrollbar-thumb,
  .contacts-page .team-grid::-webkit-scrollbar-thumb,
  .contacts-page .office-grid::-webkit-scrollbar-thumb,
  .contacts-page .req-grid::-webkit-scrollbar-thumb{background:var(--line-strong);border-radius:3px;}
  .contacts-page .messengers{flex-wrap:wrap;}
  .contacts-page .frow{grid-template-columns:1fr;}
  .contacts-page .ask-l,.contacts-page .ask-r{padding:32px 24px;}
  .contacts-page .rrow{grid-template-columns:130px 1fr;}
  .contacts-page .hero h1{max-width:100%;}
}

/* ===== рабочая форма order-form на светлой панели .ask-r (перебиваем тему) ===== */
.contacts-page .ask-r .order-form{margin:0;padding:0;width:100%;}
.contacts-page .ask-r .form-company-field{display:none !important;}
.contacts-page .ask-r .contact-form__fields{display:block !important;margin:0 !important;justify-content:flex-start !important;}
.contacts-page .ask-r .contact-form__fields > div{margin:0 0 12px !important;display:flex;flex-direction:column;gap:12px;}
.contacts-page .ask-r .order-form input[type="text"],
.contacts-page .ask-r .order-form input[type="email"],
.contacts-page .ask-r .order-form textarea{
  width:100% !important;padding:13px 15px !important;border-radius:var(--radius-sm) !important;box-sizing:border-box !important;
  border:1px solid var(--line-strong) !important;background:#fff !important;color:var(--ink) !important;
  font-family:inherit !important;font-size:15px !important;box-shadow:none !important;margin:0 !important;
  text-align:left !important;-webkit-appearance:none;transition:border-color .18s;
}
.contacts-page .ask-r .order-form input::placeholder,
.contacts-page .ask-r .order-form textarea::placeholder{color:var(--muted) !important;opacity:1;}
.contacts-page .ask-r .order-form input:focus,
.contacts-page .ask-r .order-form textarea:focus{border-color:var(--teal) !important;outline:none;}
.contacts-page .ask-r .order-form textarea{min-height:120px;resize:vertical;}
/* согласие (чекбокс темы — белый квадрат с галочкой, на белом читается) */
.contacts-page .ask-r .checkbox-label{display:flex;align-items:center;gap:10px;margin:16px 0 0 !important;}
.contacts-page .ask-r .checkbox-label input[type="checkbox"]{
  display:inline-block !important;-webkit-appearance:auto !important;appearance:auto !important;
  width:18px !important;height:18px !important;min-width:18px;margin:0 !important;padding:0 !important;flex:none;
  box-shadow:none !important;background:none !important;accent-color:var(--teal);cursor:pointer;
}
.contacts-page .ask-r .checkbox-label input[type="checkbox"] + div{display:none !important;}
.contacts-page .ask-r .checkbox-label .label-text{font-size:12.5px !important;color:var(--muted);line-height:1.4;}
.contacts-page .ask-r .checkbox-label .label-text a{color:var(--teal);text-decoration:underline;}
/* кнопка отправки */
.contacts-page .ask-r .order-form button,
.contacts-page .ask-r .order-form .btn,
.contacts-page .ask-r .order-form input[type="submit"]{
  width:100% !important;height:auto !important;margin:18px 0 0 !important;background:var(--coral) !important;color:#fff !important;
  border:0 !important;padding:15px 28px !important;border-radius:var(--radius-sm) !important;font-weight:600 !important;
  font-size:15px !important;line-height:1.2 !important;text-transform:none !important;font-family:inherit !important;
  box-shadow:none !important;cursor:pointer;transition:background .18s;
}
.contacts-page .ask-r .order-form button:hover,
.contacts-page .ask-r .order-form .btn:hover,
.contacts-page .ask-r .order-form input[type="submit"]:hover{background:var(--coral-dark) !important;}
.contacts-page .ask-r .order-form .error{color:#C0392B;font-size:12px;display:block;margin-top:4px;}

