/* style.css — leontevapsy.ru custom styles */

/* ── MODAL OVERLAY ─────────────────────────────────────────────────────── */
.modal-overlay {
  position: fixed;
  inset: 0;
  z-index: 1000;
  background: rgba(20, 20, 20, 0.6);
  backdrop-filter: blur(4px);
  -webkit-backdrop-filter: blur(4px);
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 16px;
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.3s ease;
}
.modal-overlay.is-open { opacity: 1; pointer-events: all; }

/* ── MODAL BOX ──────────────────────────────────────────────────────────── */
.modal {
  background: #ffffff;
  border-radius: 4px;
  width: 100%;
  max-width: 540px;
  max-height: 90svh;
  overflow-y: auto;
  overscroll-behavior: contain;
  padding: 40px 36px 36px;
  position: relative;
  transform: translateY(20px);
  transition: transform 0.3s ease;
}
.modal-overlay.is-open .modal { transform: translateY(0); }

.modal__close {
  position: absolute;
  top: 14px;
  right: 14px;
  width: 32px;
  height: 32px;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  color: #a1a1a1;
  font-size: 18px;
  background: none;
  border: none;
  cursor: pointer;
  padding: 0;
  transition: background 0.2s, color 0.2s;
}
.modal__close:hover { background: #f2eee8; color: #303030; }

.modal__label {
  font-family: "Tenor Sans", sans-serif;
  font-size: 11px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: #c89e66;
  margin: 0 0 8px;
}
.modal__title {
  font-family: "Playfair Display", serif;
  font-size: 22px;
  font-weight: 400;
  color: #303030;
  margin: 0 0 24px;
  line-height: 1.3;
}

/* ── FORM FIELDS ────────────────────────────────────────────────────────── */
.form__field { display: flex; flex-direction: column; margin-bottom: 14px; }

.form__label {
  font-family: "Montserrat", sans-serif;
  font-size: 11px;
  font-weight: 600;
  color: #a1a1a1;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  margin-bottom: 6px;
}
.form__optional { font-weight: 400; text-transform: none; color: #c8c8c8; }

.form__input {
  width: 100%;
  padding: 10px 14px;
  background: #fff;
  border: 1px solid #ddd;
  border-radius: 3px;
  font-family: "Montserrat", sans-serif;
  font-size: 14px;
  color: #303030;
  transition: border-color 0.2s, box-shadow 0.2s;
  outline: none;
  -webkit-appearance: none;
  box-sizing: border-box;
}
.form__input::placeholder { color: #c8c8c8; }
.form__input:hover { border-color: #b0b0b0; }
.form__input:focus { border-color: #005c4d; box-shadow: 0 0 0 3px rgba(0,92,77,0.12); }
.form__input.is-error { border-color: #c0392b; box-shadow: 0 0 0 3px rgba(192,57,43,0.1); }
.form__textarea { resize: vertical; min-height: 72px; }

.form__error {
  font-family: "Montserrat", sans-serif;
  font-size: 11px;
  color: #c0392b;
  min-height: 14px;
  margin-top: 3px;
}

/* ── CHECKBOXES ─────────────────────────────────────────────────────────── */
.form__field--check { margin-bottom: 10px; }
.form__check {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  cursor: pointer;
  user-select: none;
}
.form__check input[type="checkbox"] { position: absolute; opacity: 0; width: 0; height: 0; }
.form__check-box {
  flex-shrink: 0;
  width: 18px;
  height: 18px;
  border: 1.5px solid #ddd;
  border-radius: 2px;
  background: #fff;
  margin-top: 1px;
  transition: border-color 0.2s, background 0.2s;
  position: relative;
}
.form__check:hover .form__check-box { border-color: #005c4d; }
.form__check input:checked + .form__check-box { background: #005c4d; border-color: #005c4d; }
.form__check input:checked + .form__check-box::after {
  content: "";
  position: absolute;
  left: 4px; top: 1px;
  width: 6px; height: 10px;
  border: 1.5px solid #fff;
  border-top: none; border-left: none;
  transform: rotate(40deg);
}
.form__check-label {
  font-family: "Montserrat", sans-serif;
  font-size: 12px;
  color: #303030;
  line-height: 1.6;
}
.form__link { color: #005c4d; text-decoration: underline; text-underline-offset: 2px; }

/* ── SUBMIT BUTTON ──────────────────────────────────────────────────────── */
.form__submit {
  width: 100%;
  margin-top: 20px;
  padding: 13px 24px;
  background: #005c4d;
  color: #fff;
  font-family: "Montserrat", sans-serif;
  font-size: 14px;
  font-weight: 600;
  letter-spacing: 0.04em;
  border: none;
  border-radius: 30px;
  cursor: pointer;
  transition: background 0.2s, opacity 0.2s;
}
.form__submit:hover:not(:disabled) { background: #004a3e; }
.form__submit:disabled { opacity: 0.6; cursor: not-allowed; }
.form__submit-text { display: block; }
.form__submit-loading { display: none; }
.form__submit.is-loading .form__submit-text { display: none; }
.form__submit.is-loading .form__submit-loading { display: block; }

/* ── SUCCESS STATE ──────────────────────────────────────────────────────── */
.form__success {
  display: none;
  padding: 16px;
  background: #f0f8f6;
  border-radius: 3px;
  border-left: 3px solid #005c4d;
  margin-top: 16px;
}
.form__success.is-visible { display: block; }
.form__success-title {
  font-family: "Playfair Display", serif;
  font-size: 16px;
  color: #005c4d;
  margin: 0 0 6px;
}
.form__success-text {
  font-family: "Montserrat", sans-serif;
  font-size: 13px;
  color: #303030;
  margin: 0;
  line-height: 1.6;
}

body.modal-open { overflow: hidden; }

@media (max-width: 600px) {
  .modal { padding: 32px 18px 24px; }
  .modal__title { font-size: 18px; }
}

/* ── MOBILE NAV PANEL ───────────────────────────────────────────────────── */
.site-nav-panel {
  position: fixed;
  inset: 0;
  z-index: 998;
  background: #005c4d;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 32px;
  opacity: 0;
  pointer-events: none;
  transform: translateX(100%);
  transition: opacity 0.3s ease, transform 0.3s ease;
}
.site-nav-panel.is-open { opacity: 1; pointer-events: all; transform: translateX(0); }
.site-nav-panel__close {
  position: absolute; top: 20px; right: 20px;
  width: 40px; height: 40px;
  background: none; border: none; color: #fff;
  font-size: 22px; cursor: pointer; opacity: 0.7;
  transition: opacity 0.2s;
}
.site-nav-panel__close:hover { opacity: 1; }
.site-nav-panel nav { display: flex; flex-direction: column; align-items: center; gap: 28px; }
.site-nav-panel__link {
  color: #fff;
  font-family: "Montserrat", sans-serif;
  font-size: 20px;
  font-weight: 500;
  text-decoration: none;
  letter-spacing: 0.02em;
  opacity: 0.85;
  transition: opacity 0.2s;
}
.site-nav-panel__link:hover { opacity: 1; }

/* ── CAROUSEL CONTROLS ──────────────────────────────────────────────────── */
.site-carousel-controls {
  display: flex;
  gap: 12px;
  justify-content: center;
  margin-top: 24px;
  padding: 0 16px;
}
.site-carousel-btn {
  width: 48px; height: 48px;
  border: 1.5px solid #005c4d;
  border-radius: 50%;
  background: transparent;
  color: #005c4d;
  font-size: 20px;
  cursor: pointer;
  transition: background 0.2s, color 0.2s;
  display: flex; align-items: center; justify-content: center;
}
.site-carousel-btn:hover { background: #005c4d; color: #fff; }

/* ── FIXES 2026-06-17 ───────────────────────────────────────────────────── */

/* Modal: больше отступа снизу, кнопка не вылетает */
.modal {
  padding-bottom: 48px !important;
}
#registrationForm {
  display: flex;
  flex-direction: column;
  box-sizing: border-box;
}

/* Submit button: чуть меньше ширины, выравнивание по центру */
.form__submit {
  align-self: stretch;
  box-sizing: border-box;
}
.form__submit:hover:not(:disabled) {
  background: #004a3e;
  transform: translateY(-1px);
  box-shadow: 0 4px 12px rgba(0, 92, 77, 0.3);
}

/* Checkbox links: всегда с подчёркиванием */
.form__link {
  text-decoration: underline !important;
  text-underline-offset: 2px;
}

/* Artboard button (Оставьте заявку) */
.site-artboard-btn {
  transition: background 0.2s ease, transform 0.15s ease, box-shadow 0.15s ease !important;
}
.site-artboard-btn:hover {
  background: #004a3e !important;
  transform: translateY(-1px);
  box-shadow: 0 4px 12px rgba(0, 92, 77, 0.25);
}

/* Убрать Tilda-стили с контейнера artboard формы */
.tn-atom__form {
  background: transparent !important;
  border: none !important;
  box-shadow: none !important;
  padding: 0 !important;
}

/* ── ARTBOARD FORM: убрать белый контейнер Tilda ────────────────────────── */
[data-elem-type='form'] .tn-atom,
[data-elem-type='form'] .tn-atom__form,
[data-elem-type='form'] > div {
  background: transparent !important;
  border: none !important;
  box-shadow: none !important;
  padding: 0 !important;
}

/* Hover: простое потемнение — как другие кнопки на сайте */
.site-artboard-btn:hover {
  background: #004a3e !important;
  transform: none !important;
  box-shadow: none !important;
  opacity: 0.92;
}

/* Smooth scroll via CSS (site.js fails to set it via JS) */
html { scroll-behavior: smooth; }

/* ── HEADER NAV: равный отступ между пунктами и CTA ─────────────────── */
/* gap между "Контакты" и кнопкой был 25px, между пунктами ~60px */
#rec526811708 .t228__right_buttons_wrap {
  margin-left: 35px !important;
}

/* ── MODAL FORM: отступы ─────────────────────────────────────────────── */
/* Больше пространства между textarea и первым чекбоксом */
.form__field:has(.form__textarea) { margin-bottom: 24px; }
/* Нормальный отступ между чекбоксами */
.form__field--check { margin-bottom: 12px; }

/* ── ДИПЛОМЫ: отключить zoom на текстовых блоках внутри попапа ───────── */
.t-popup .t390__descr,
.t-popup .t390__title { pointer-events: none; }

/* ── TILDA FORM BUTTONS — override to match our design ──────────────── */
.t-submit.t-btnflex,
button.t-btnflex.t-btnflex_type_submit {
  background: #005c4d !important;
  color: #fff !important;
  font-family: 'Montserrat', sans-serif !important;
  font-size: 14px !important;
  font-weight: 600 !important;
  letter-spacing: .04em !important;
  border-radius: 30px !important;
  padding: 13px 24px !important;
  width: 100% !important;
  transition: background .2s, opacity .2s !important;
  box-shadow: none !important;
}
.t-submit.t-btnflex:hover,
button.t-btnflex.t-btnflex_type_submit:hover {
  background: #004a3e !important;
  transform: translateY(-1px) !important;
  box-shadow: 0 4px 12px rgba(0,92,77,.3) !important;
}

/* Tilda popup form inner spacing */
.t702 .t-input-group { margin-bottom: 14px !important; }
.t702 .t-checkbox { margin-top: 18px !important; margin-bottom: 6px !important; }
.t702 .t-checkbox + .t-checkbox { margin-top: 8px !important; }

/* Disable click on empty diploma/certificate frames */
.t-popup .t-img:not([src]):not([style*="url"]),
.t-popup .tn-atom__img-wrapper:empty { pointer-events: none !important; opacity: .3; }

/* ── DIPLOMA LAST CARD: только кнопка кликабельна, фон — нет ────────── */
#rec610353928 .t772__item:last-child .t772__imgwrapper,
#rec610353928 .t772__item:last-child img.t772__img {
  pointer-events: none !important;
  cursor: default !important;
}

/* ── ARTBOARD BUTTON: во всю ширину контейнера, эталон 52px/30px/16px ── */
.site-artboard-btn {
  width: 100% !important;
  height: 52px !important;
  border-radius: 30px !important;
  padding: 0 32px !important;
  font-size: 16px !important;
  font-family: 'TildaSans', Arial, sans-serif !important;
  font-weight: 500 !important;
  transition: background-color 0.3s ease-in-out !important;
  transform: none !important;
  box-shadow: none !important;
}
.site-artboard-btn:hover {
  background-color: #c89e66 !important;
  transform: none !important;
  box-shadow: none !important;
  opacity: 1 !important;
}

/* ── FORM SUBMIT BUTTON: 240px, по центру, нет letter-spacing ────────── */
.form__submit {
  width: 240px !important;
  align-self: center !important;
  height: 52px !important;
  border-radius: 30px !important;
  padding: 0 32px !important;
  font-size: 16px !important;
  font-family: 'TildaSans', Arial, sans-serif !important;
  font-weight: 500 !important;
  letter-spacing: 0 !important;
  transition: background-color 0.3s ease-in-out !important;
  box-sizing: border-box;
}
.form__submit:hover:not(:disabled) {
  background: #c89e66 !important;
  transform: none !important;
  box-shadow: none !important;
}

/* ── UNIFIED SITE FOOTER ─────────────────────────────────────────────── */
.site-footer-main{font-family:'Montserrat',Arial,sans-serif}
.site-footer-top{background:#303030;padding:60px 40px 75px;text-align:center}
.site-footer-nav{display:flex;justify-content:center;flex-wrap:wrap;gap:0;margin-bottom:32px}
.site-footer-nav a{font-size:18px;color:#f7f7f7;font-weight:500;padding:0 20px;transition:opacity .2s}
.site-footer-nav a:hover{opacity:.7}
.site-footer-copy{color:#f7f7f7;font-size:14px;line-height:1.6;margin:0;opacity:.7}
.site-footer-legal{background:#171717;padding:30px 40px;display:flex;flex-wrap:wrap;justify-content:center;gap:8px 20px}
.site-footer-legal a{font-size:13px;color:#fff;opacity:.65;transition:opacity .2s}
.site-footer-legal a:hover{opacity:1}
.site-footer-break{flex-basis:100%;height:0}
@media(max-width:600px){
  .site-footer-top{padding:40px 20px 48px}
  .site-footer-nav a{font-size:15px;padding:0 10px}
  .site-footer-legal{padding:20px;gap:6px 14px}
  .site-footer-legal a{font-size:11px}
}
