/* ====== МОДАЛЬНОЕ ОКНО ====== */
.modal{
  position: fixed;
  inset: 0;
  display: grid;
  place-items: center;
  z-index: 10000;
  pointer-events: none;
  transition: opacity .22s ease;
  opacity: 0;
}
.modal[aria-hidden="false"]{ opacity:1; pointer-events:auto }

.modal__overlay{
  position:absolute;
  inset:0;
  background: linear-gradient(180deg, rgba(25,42,77,0.06), rgba(25,42,77,0.07));
  backdrop-filter: blur(6px) saturate(.9);
  transition: opacity .2s ease;
  opacity: 0;
}
.modal[aria-hidden="false"] .modal__overlay{ opacity:1 }

.modal__dialog{
  position:relative;
  width:min(760px, calc(100% - 40px));
  max-height: calc(100vh - 80px);
  overflow:auto;
  background: linear-gradient(180deg, var(--card), var(--card));
  border-radius:16px;
  padding:22px;
  box-shadow: 0 30px 80px rgba(25,42,77,.06), 0 6px 18px rgba(69,104,243,.03);
  border:1px solid rgba(25,42,77,.04);
  transform: translateY(10px) scale(.995);
  opacity:0;
  transition: transform .28s cubic-bezier(.2,.9,.2,1), opacity .2s ease;
  pointer-events:auto;
}
.modal[aria-hidden="false"] .modal__dialog{ transform:none; opacity:1 }

.modal__close{
  position:absolute; top:12px; right:12px;
  background:transparent; border:none; border-radius:10px;
  display:inline-grid; place-items:center; cursor:pointer; color:var(--ink);
  transition: background .14s ease, transform .12s ease;
}
.modal__close:hover{ background: rgba(25,42,77,.04); transform: translateY(-1px) }

.modal__close .icon-close{
  display:block; width:18px; height:18px; margin:0; color: rgba(25,42,77,.9);
  transition: color .12s ease, transform .12s ease;
}
.modal__close:hover .icon-close{ color: var(--accent); transform: translateY(-1px) }

.modal__title{
  margin:0 0 12px;
  font-size:20px;
  font-weight:800;
  color:var(--ink);
  letter-spacing:-0.01em;
}

.contact-form{
  display:grid;
  grid-template-columns:1fr;
  gap:14px;
  align-items:start;
}
.contact-form .form_row{ display:flex; flex-direction:column; gap:8px; width:100% }
.contact-form .form_row textarea{
  width:100%; min-height:110px; resize:vertical; padding:14px 16px; border-radius:12px;
  border:1px solid rgba(25,42,77,0.04);
  background: linear-gradient(180deg, rgba(255,255,255,1), rgba(244,245,247,1));
  color:var(--ink); box-shadow: inset 0 1px 0 rgba(255,255,255,0.02); font-size:15px;
  transition: box-shadow .16s ease, border-color .16s ease, background .16s ease, transform .12s ease; outline:none;
}

.contact-form input[type="text"],
.contact-form input[type="email"],
.contact-form input[type="tel"],
.contact-form textarea{
  width:100%; padding:14px 16px; border-radius:12px;
  border:1px solid rgba(25,42,77,0.04);
  background: linear-gradient(180deg, rgba(255,255,255,1), rgba(244,245,247,1));
  color:var(--ink); box-shadow: inset 0 1px 0 rgba(255,255,255,0.02); font-size:15px;
  transition: box-shadow .16s ease, border-color .16s ease, background .16s ease, transform .12s ease; outline:none; min-height:44px;
}
.contact-form input[type="text"]:hover,
.contact-form input[type="email"]:hover,
.contact-form input[type="tel"]:hover,
.contact-form textarea:hover{ border-color: rgba(25,42,77,0.06) }
.contact-form input[type="text"]:focus,
.contact-form input[type="email"]:focus,
.contact-form input[type="tel"]:focus,
.contact-form textarea:focus{
  border-color: rgba(69,104,243,0.85);
  box-shadow: inset 0 1px 0 rgba(255,255,255,0.02), 0 6px 22px rgba(69,104,243,0.06);
  background: linear-gradient(180deg, var(--bg), #fbfbff);
  transform: translateY(-1px);
}
.contact-form input::placeholder,
.contact-form textarea::placeholder{ color: rgba(25,42,77,0.35); font-weight:500 }

.contact-form .consent_row{ grid-column:1 / -1; display:flex; align-items:center; gap:12px }
.consent_label{ display:flex; align-items:center; gap:12px; cursor:pointer; user-select:none; color:var(--ink); font-weight:700; position:relative }
.consent_label input[type="checkbox"]{
  position:absolute; opacity:0; width:1px; height:1px; margin:-1px; padding:0; clip: rect(0 0 0 0); clip-path: inset(50%); border:0;
}
.consent_box{
  width:18px; height:18px; min-width:18px; border-radius:4px;
  background: linear-gradient(180deg, var(--bg), #f4f5f7);
  border:1px solid rgba(25,42,77,0.06);
  box-shadow: inset 0 1px 0 rgba(255,255,255,0.02);
  display:inline-block; position:relative; flex:0 0 auto;
  transition: background .14s ease, border-color .14s ease, box-shadow .14s ease, transform .12s ease;
}
.consent_label input[type="checkbox"]:checked + .consent_box{
  background: linear-gradient(180deg, var(--accent), var(--accent-600));
  border-color: rgba(69,104,243,0.9);
  box-shadow: 0 6px 18px rgba(69,104,243,0.08);
  transform: translateY(-1px);
}
.consent_label:hover .consent_box{ border-color: rgba(69,104,243,0.12) }
.consent_text{ color:var(--ink); font-weight:700 }

.btn_submit{
  grid-column:1 / -1;
  display:inline-flex; align-items:center; gap:10px; justify-content:center;
  padding:12px 18px; border-radius:12px; border:0;
  background: linear-gradient(180deg, var(--accent), var(--accent-600));
  color:var(--card); font-weight:800; cursor:pointer;
  box-shadow: 0 10px 28px rgba(69,104,243,.12);
  transition: transform .12s ease, opacity .12s ease, filter .12s ease;
}
.btn_submit[disabled], .btn_submit[aria-disabled="true"]{ opacity:.6; filter:grayscale(.06); cursor:not-allowed }
.btn_submit.is_loading{ filter: blur(.2px) brightness(.95); pointer-events:none }

.notice-stack--modal{
  display:grid; gap:12px; width:100%; pointer-events:auto;
  position:fixed; left:50%; top:14px; transform:translateX(-50%);
  z-index:100000; max-width:min(92vw,680px); padding:0 12px;
}
.notice{
  padding:14px 18px; border-radius:12px; border:1px solid rgba(25,42,77,0.04);
  background: linear-gradient(180deg, rgba(255,255,255,1), rgba(244,245,247,1));
  color:var(--ink); display:block; text-align:center; font-weight:700;
  box-shadow: 0 8px 30px rgba(25,42,77,0.04);
  opacity:0; transform: translateY(-6px) scale(.995);
  transition: transform .18s ease, opacity .16s ease;
}
.notice_success{
  border-color: rgba(69,104,243,0.12);
  background: linear-gradient(180deg, rgba(69,104,243,0.06), rgba(69,104,243,0.03));
  color: var(--accent);
}
.notice_error{
  border-color: rgba(239,107,107,0.12);
  background: linear-gradient(180deg, rgba(255,240,240,0.03), rgba(255,240,240,0.02));
  color: var(--err);
}
.notice.show{ opacity:1; transform:none }
.notice_close{ display:none }
.field_error{ outline:none; border-color: rgba(239,107,107,.85) !important; box-shadow: 0 4px 18px rgba(239,107,107,.08) }
.field_error_text{ color: var(--err); font-weight:600; margin-top:6px; font-size:13px }

.visually-hidden{
  position:absolute !important;
  height:1px; width:1px; overflow:hidden;
  clip:rect(1px,1px,1px,1px); white-space:nowrap;
  clip-path: inset(50%); border:0; padding:0; margin:-1px;
}

@media (max-width:720px){
  .modal__dialog{ width: calc(100% - 24px); padding:16px; border-radius:12px; max-height: calc(100vh - 40px) }
  .contact-form{ grid-template-columns:1fr; gap:10px }
  .contact-form textarea{ min-height:120px }
  .modal__close{ top:8px; right:8px }
  .modal__title{ font-size:18px }
}
