/* ==========================================
   AFFMOV — форма заявки (Get an Estimate)
   Перенесено из прототипа на странице /get-an-estimate/ (полная версия из виджета Elementor).
========================================== */
.affmov-estimate-form{
  --navy:#1B2D6B;--navy-dark:#142156;--navy-mid:#243580;
  --gold:#F5C200;--gold-dark:#D4A800;
  --white:#ffffff;--off:#F7F8FA;--light-blue:#EEF1FA;
  --steel:#5B6887;--smoke:#8A93A8;--border:#D8DCE8;--dark-text:#111827;
  --req-color:#E11D48;
  --font-display:'Barlow Condensed',sans-serif;--font-body:'Barlow',sans-serif;--radius:4px;
}

/* ===== Reset: не даём теме навязывать отступы ===== */
.affmov-estimate-form *,
.affmov-estimate-form *::before,
.affmov-estimate-form *::after{box-sizing:border-box}
.affmov-estimate-form p,
.affmov-estimate-form h1,
.affmov-estimate-form h2,
.affmov-estimate-form label,
.affmov-estimate-form input,
.affmov-estimate-form select,
.affmov-estimate-form textarea,
.affmov-estimate-form button{margin:0 !important}

.affmov-estimate-form{font-family:var(--font-body);background:var(--off);color:var(--dark-text);line-height:1.5}
.affmov-estimate-form a{text-decoration:none;color:inherit}
.affmov-estimate-form .c{width:min(1000px,calc(100% - 32px));margin:0 auto}

/* ===== Hero ===== */
.affmov-estimate-form .hero{background:linear-gradient(110deg,var(--navy-dark),var(--navy));color:#fff;padding:52px 0 104px}
.affmov-estimate-form .ey{color:var(--gold) !important;font-weight:700;letter-spacing:.2em;font-size:12px;text-transform:uppercase;display:flex;align-items:center;gap:10px}
.affmov-estimate-form .ey::before{content:'';display:block;width:28px;height:2px;background:var(--gold)}
.affmov-estimate-form .hero h1{font-family:var(--font-display) !important;font-size:52px !important;font-weight:700 !important;text-transform:uppercase !important;line-height:1 !important;color:#fff !important;margin:12px 0 12px !important}
.affmov-estimate-form .hero p{color:rgba(255,255,255,.65) !important;font-size:17px !important;line-height:1.6 !important;max-width:640px}
.affmov-estimate-form .hero-points{display:flex;flex-wrap:wrap;gap:8px 22px;margin-top:20px;font-size:14px;color:rgba(255,255,255,.8)}
.affmov-estimate-form .hero-points span::before{content:'✓';color:var(--gold);font-weight:700;margin-right:7px}

/* ===== Card ===== */
.affmov-estimate-form .wrap{margin-top:-64px;padding-bottom:64px}
.affmov-estimate-form .form{background:#fff;border-radius:8px;box-shadow:0 18px 50px rgba(16,35,84,.13);overflow:hidden;border-top:4px solid var(--gold)}
.affmov-estimate-form .inner{padding:36px 40px 32px}

/* ===== Steps ===== */
.affmov-estimate-form .step{padding:0 0 28px;margin-bottom:28px;border-bottom:1px solid var(--border)}
.affmov-estimate-form .step:last-of-type{border-bottom:0;margin-bottom:0;padding-bottom:0}
.affmov-estimate-form .step-head{display:flex;align-items:flex-start;gap:14px;margin-bottom:20px}
.affmov-estimate-form .step-num{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;background:var(--gold);color:var(--navy);border-radius:50%;font-family:var(--font-display);font-size:17px;font-weight:700;flex-shrink:0}
.affmov-estimate-form h2{font-family:var(--font-display) !important;font-size:24px !important;font-weight:700 !important;text-transform:uppercase !important;color:var(--navy) !important;line-height:1.1 !important;padding-top:4px}
.affmov-estimate-form .lead{color:var(--steel) !important;font-size:14.5px !important;margin-top:4px !important}

/* ===== Grid & fields ===== */
.affmov-estimate-form .grid{display:grid;gap:14px 16px}
.affmov-estimate-form .g2{grid-template-columns:1fr 1fr}
.affmov-estimate-form .g3{grid-template-columns:repeat(3,1fr)}
.affmov-estimate-form .g-addr{grid-template-columns:2fr 1fr 1fr}
.affmov-estimate-form .span-all{grid-column:1/-1}
.affmov-estimate-form .f{display:flex;flex-direction:column;gap:6px;min-width:0}
.affmov-estimate-form .f label{font-size:13px;font-weight:700;color:var(--navy);font-family:var(--font-display);text-transform:uppercase;letter-spacing:.04em;line-height:1.2}
.affmov-estimate-form .req{color:var(--req-color) !important;font-weight:800;margin-left:2px}

.affmov-estimate-form input:not([type="checkbox"]):not([type="radio"]),
.affmov-estimate-form select,
.affmov-estimate-form textarea{
  width:100% !important;height:46px !important;border:1px solid var(--border) !important;background:#fff !important;
  border-radius:var(--radius) !important;padding:0 14px !important;font-family:var(--font-body) !important;font-size:15px !important;
  color:var(--dark-text) !important;outline:none;box-shadow:none !important;transition:border-color .15s,box-shadow .15s;
}
.affmov-estimate-form input::placeholder,
.affmov-estimate-form textarea::placeholder{color:var(--smoke);opacity:1}
.affmov-estimate-form input:not([type="checkbox"]):focus,
.affmov-estimate-form select:focus,
.affmov-estimate-form textarea:focus{border-color:var(--navy) !important;box-shadow:0 0 0 3px rgba(27,45,107,.1) !important}
.affmov-estimate-form textarea{height:auto !important;min-height:84px;padding:11px 14px !important;resize:vertical}
.affmov-estimate-form select{cursor:pointer;-webkit-appearance:none;appearance:none;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath fill='none' stroke='%231B2D6B' stroke-width='1.8' d='M1 1l5 5 5-5'/%3E%3C/svg%3E") !important;
  background-repeat:no-repeat !important;background-position:right 14px center !important;padding-right:38px !important}
.affmov-estimate-form input[type="date"]{position:relative;cursor:pointer}
.affmov-estimate-form input[type="date"]::-webkit-calendar-picker-indicator{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:pointer}

/* ===== Checkbox ===== */
.affmov-estimate-form input[type="checkbox"]{
  width:18px !important;height:18px !important;min-width:18px !important;padding:0 !important;
  accent-color:var(--navy);appearance:auto;-webkit-appearance:checkbox;cursor:pointer;flex-shrink:0;
}
.affmov-estimate-form .check{display:inline-flex;gap:9px;align-items:center;font-size:14.5px;color:var(--steel);cursor:pointer;line-height:1.3;
  font-family:var(--font-body) !important;text-transform:none !important;letter-spacing:0 !important;font-weight:500 !important}
.affmov-estimate-form .check-row{margin-top:14px}

/* Чекбоксы-плитки */
.affmov-estimate-form .tile{border:1px solid var(--border);border-radius:var(--radius);padding:12px 14px;background:#fff;transition:border-color .15s,background .15s;color:var(--dark-text)}
.affmov-estimate-form .tile:hover{border-color:var(--navy)}
.affmov-estimate-form .tile:has(input:checked){border-color:var(--navy);background:var(--light-blue)}
.affmov-estimate-form .tile small{display:block;color:var(--smoke);font-size:12.5px;margin-top:1px}

/* ===== Notice ===== */
.affmov-estimate-form .notice{background:var(--light-blue);border-left:4px solid var(--gold);padding:12px 16px;margin-bottom:20px !important;font-size:13.5px;line-height:1.5;border-radius:var(--radius);color:var(--steel)}
.affmov-estimate-form .notice b{color:var(--navy)}

/* ===== Locations ===== */
.affmov-estimate-form #locations{display:flex;flex-direction:column;gap:14px}
.affmov-estimate-form .loc{border:1px solid var(--border);background:var(--off);border-radius:6px;overflow:hidden}
.affmov-estimate-form .lochead{display:flex;align-items:center;gap:12px;padding:12px 18px;background:#fff;border-bottom:1px solid var(--border)}
.affmov-estimate-form .loc-badge{width:28px;height:28px;border-radius:50%;background:var(--navy);color:var(--gold);display:inline-flex;align-items:center;justify-content:center;font-family:var(--font-display);font-weight:700;font-size:14px;flex-shrink:0}
.affmov-estimate-form .loc[data-kind="Drop-off"] .loc-badge{background:var(--gold);color:var(--navy)}
.affmov-estimate-form .lochead strong{font-family:var(--font-display);font-size:18px;color:var(--navy);text-transform:uppercase;letter-spacing:.02em}
.affmov-estimate-form .loc-remove{margin-left:auto !important;background:none;border:0;color:var(--smoke);font-size:13px;cursor:pointer;padding:4px 6px;font-family:var(--font-body)}
.affmov-estimate-form .loc-remove:hover{color:var(--req-color)}
.affmov-estimate-form .loc-body{padding:18px}
.affmov-estimate-form .loc-body .grid + .grid{margin-top:14px}
.affmov-estimate-form .access{display:flex;flex-wrap:wrap;gap:10px 22px;margin-top:14px}

.affmov-estimate-form .add{margin-top:14px !important;width:100%;background:#fff;color:var(--navy);border:1px dashed #B9C0D4;border-radius:var(--radius);padding:13px;font-family:var(--font-display);font-weight:600;text-transform:uppercase;letter-spacing:.06em;font-size:15px;cursor:pointer;transition:all .15s}
.affmov-estimate-form .add:hover{border-color:var(--navy);background:var(--light-blue)}

/* ===== Submit ===== */
.affmov-estimate-form .btns{display:flex;flex-direction:column;align-items:center;gap:10px;border-top:1px solid var(--border);padding-top:26px;margin-top:28px}
.affmov-estimate-form .submit{background:var(--navy);color:#fff;border:0;border-radius:var(--radius);padding:17px 56px;font-family:var(--font-display);font-weight:700;text-transform:uppercase;letter-spacing:.07em;font-size:17px;cursor:pointer;transition:background .15s}
.affmov-estimate-form .submit:hover{background:var(--navy-mid)}
.affmov-estimate-form .submit-note{font-size:13px;color:var(--smoke);text-align:center}
.affmov-estimate-form .submit-note a{color:var(--navy);font-weight:700}

/* ===== Responsive ===== */
@media(max-width:850px){
  .affmov-estimate-form .g3{grid-template-columns:1fr 1fr}
  .affmov-estimate-form .g-addr{grid-template-columns:1fr 1fr}
  .affmov-estimate-form .g-addr .f:first-child{grid-column:1/-1}
}
@media(max-width:600px){
  .affmov-estimate-form .hero{padding:40px 0 92px}
  .affmov-estimate-form .hero h1{font-size:36px !important}
  .affmov-estimate-form .inner{padding:24px 16px}
  .affmov-estimate-form .g2,
  .affmov-estimate-form .g3{grid-template-columns:1fr}
  .affmov-estimate-form .loc-body{padding:14px}
  .affmov-estimate-form .lochead{padding:10px 14px}
  .affmov-estimate-form h2{font-size:21px !important}
  .affmov-estimate-form .submit{width:100%;padding:17px 20px}
}

/* ── Отправка: ловушка для ботов, статус, экран «спасибо» ── */
.affmov-estimate-form .af-hp { position: absolute !important; left: -9999px !important; width: 1px; height: 1px; overflow: hidden; }
.affmov-estimate-form .af-status { margin: 14px 0 0; padding: 12px 16px; border-radius: var(--radius); background: #fdecef; color: #9f1239; font-family: var(--font-body); font-size: 15px; line-height: 1.5; }
.affmov-estimate-form .af-status a { color: inherit; font-weight: 700; }
.affmov-estimate-form .submit[disabled] { opacity: .65; cursor: wait; }
.affmov-estimate-form .af-done { max-width: 720px; margin: 0 auto; padding: 48px 32px; background: var(--white); border: 1px solid var(--border); border-top: 3px solid var(--gold); border-radius: var(--radius); text-align: center; font-family: var(--font-body); color: var(--dark-text); }
.affmov-estimate-form .af-done-icon { width: 64px; height: 64px; margin: 0 auto 18px; border-radius: 50%; background: var(--navy); color: var(--gold); font-size: 32px; line-height: 64px; font-weight: 700; }
.affmov-estimate-form .af-done h2 { margin: 0 0 12px; font-family: var(--font-display); font-size: 34px; font-weight: 800; text-transform: uppercase; color: var(--navy); }
.affmov-estimate-form .af-done p { margin: 0 0 10px; font-size: 17px; line-height: 1.6; color: var(--steel); }
.affmov-estimate-form .af-done a { color: var(--navy); font-weight: 700; }

/* ── Блоки адресов: кнопка Remove без фона темы, отступы ── */
.affmov-estimate-form .loc + .loc { margin-top: 14px; }
.affmov-estimate-form .loc-remove,
.affmov-estimate-form .loc-remove:hover,
.affmov-estimate-form .loc-remove:focus { background: none !important; box-shadow: none !important; line-height: 1.2; }
.affmov-estimate-form .loc-remove:hover { color: var(--req-color) !important; }

/* ── Спиннер на кнопке отправки ── */
.affmov-estimate-form .submit.is-loading { position: relative; padding-left: 74px; }
.affmov-estimate-form .submit.is-loading::before {
  content: ''; position: absolute; left: 40px; top: 50%; width: 18px; height: 18px; margin-top: -9px;
  border: 2px solid rgba(255,255,255,.35); border-top-color: var(--gold); border-radius: 50%;
  animation: affmov-spin .7s linear infinite;
}
@keyframes affmov-spin { to { transform: rotate(360deg); } }
@media (max-width: 600px) {
  .affmov-estimate-form .submit.is-loading { padding-left: 20px; }
  .affmov-estimate-form .submit.is-loading::before { position: static; display: inline-block; margin: 0 10px -3px 0; }
}

/* Ссылки внутри формы — шрифт формы, а не глобальный стиль ссылок Elementor-kit. */
body .affmov-estimate-form .submit-note a,
body .affmov-estimate-form .af-status a,
body .affmov-estimate-form .af-done a { font-family: var(--font-body); font-size: inherit; line-height: inherit; }

/* Callback placement: desktop hero; existing position on mobile/tablet. */
.affmov-estimate-form .affmov-callback-prompt.callback-desktop-prompt{display:none}
@media(min-width:1025px){
  .affmov-estimate-form .estimate-hero-layout{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(0,1fr);gap:32px;align-items:center}
  .affmov-estimate-form .estimate-hero-copy{min-width:0}
  .affmov-estimate-form .affmov-callback-prompt.callback-mobile-prompt{display:none}
  .affmov-estimate-form .affmov-callback-prompt.callback-desktop-prompt{display:block;min-width:0;margin:0;padding:26px 20px;background:rgba(255,255,255,.055);border:1px solid rgba(255,255,255,.10);border-radius:8px;text-align:center}
  .affmov-estimate-form .callback-desktop-prompt .affmov-callback-action{width:max-content;max-width:100%;margin-inline:auto}
  .affmov-estimate-form .affmov-callback-prompt.callback-desktop-prompt strong{color:#fff;font-size:18px;font-weight:600;line-height:1.45;margin-bottom:16px}
  .affmov-estimate-form .affmov-callback-prompt.callback-desktop-prompt .callback-trigger{background:#F5C200;color:#1B2D6B;border:0;min-height:48px}
  .affmov-estimate-form .affmov-callback-prompt.callback-desktop-prompt .callback-trigger:hover{background:#D4A800;color:#1B2D6B}
  .affmov-estimate-form .affmov-callback-prompt.callback-desktop-prompt .callback-note{color:rgba(255,255,255,.72);font-size:13px;margin-top:12px}
}