/* Модалка «форма недоступна» + заглушки для утраченных изображений */
.apx-fallback{position:fixed;inset:0;z-index:99999;display:flex;align-items:center;justify-content:center;padding:16px}
.apx-fallback__backdrop{position:absolute;inset:0;background:rgba(0,0,0,.55)}
.apx-fallback__box{position:relative;max-width:420px;width:100%;background:#fff;border-radius:4px;
  padding:32px 28px 26px;box-shadow:0 20px 60px rgba(0,0,0,.3);text-align:center;
  font-family:"NissanBrand","Helvetica Neue",Arial,sans-serif}
.apx-fallback__close{position:absolute;top:8px;right:12px;border:0;background:none;font-size:28px;
  line-height:1;color:#999;cursor:pointer;padding:4px 8px}
.apx-fallback__close:hover{color:#333}
.apx-fallback__title{font-size:22px;font-weight:400;color:#000;margin-bottom:12px}
.apx-fallback__text{font-size:14px;line-height:1.5;color:#555;margin-bottom:20px}
.apx-fallback__phone{display:block;font-size:26px;color:#000;text-decoration:none;margin-bottom:20px;letter-spacing:.5px}
.apx-fallback__phone:hover{color:#c3002f}
.apx-fallback__actions{display:flex;gap:10px;flex-wrap:wrap;justify-content:center}
.apx-fallback__btn{flex:1 1 150px;display:inline-block;padding:13px 18px;border:1px solid #000;
  color:#000;text-decoration:none;font-size:14px;transition:.15s}
.apx-fallback__btn:hover{background:#f2f2f2}
.apx-fallback__btn--primary{background:#000;color:#fff;border-color:#000}
.apx-fallback__btn--primary:hover{background:#c3002f;border-color:#c3002f;color:#fff}
.apx-fallback__hint{margin-top:16px;font-size:12px;color:#999}

/* Заглушка вместо утраченного изображения */
img.apx-nopic{background:#f2f2f2 url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120'%3E%3Cg fill='none' stroke='%23c9c9c9' stroke-width='3'%3E%3Crect x='24' y='34' width='72' height='54' rx='4'/%3E%3Cpath d='M24 74l20-18 14 12 16-16 22 20'/%3E%3Ccircle cx='47' cy='50' r='6'/%3E%3C/g%3E%3C/svg%3E") center/90px no-repeat;
  min-height:120px;object-fit:contain}

/* --- формы заявок (site-forms.js) --------------------------------------- */
/* Разметка форм повторяет родную разметку движка, поэтому весь визуал
   приходит из style.css. Здесь — только то, чего в нём нет.              */
.gnr.f101-00 .form-group.hidden,
.gnr.f101-00 .form-section.hidden { display: none; }

.atm.is-invalid .u204-00__field,
.atm.is-invalid .u212-00__field,
.atm.is-invalid .u209-00__control { border-bottom-color: #c00 !important; }
.atm.u201-00.is-invalid .u201-00__field { outline: 2px solid #c00; outline-offset: 2px; }

.f101-00-dialog { padding: 3.2rem 0; text-align: center; }
.f101-00-dialog__text { font-size: 1.8rem; line-height: 1.5; }

/* Родной селект движка рисует библиотека slim-select, её в сборке нет.
   Оставляем нативный <select> и приводим его к виду остальных полей. */
.gnr.f101-00 .atm.u209-00 .u209-00__control {
  -webkit-appearance: none; -moz-appearance: none; appearance: none;
  background-color: #fff;
  background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8'%3E%3Cpath d='M0 0h12L6 8z' fill='%23888'/%3E%3C/svg%3E");
  background-position: right 1.6rem center; background-repeat: no-repeat;
  border: 1px solid #ccc; border-radius: 0; color: #222; cursor: pointer;
  display: block; font-family: inherit; font-size: 1.6rem; height: 6.4rem;
  padding: 2.8rem 4.8rem 1rem 1.6rem; width: 100%;
  /* родной CSS прячет нативный select прозрачностью — поверх него рисовала
     библиотека slim-select, которой в сборке нет; возвращаем видимость */
  opacity: 1; position: relative; z-index: 1;
}
.gnr.f101-00 .atm.u209-00 .u209-00__control:focus { border-color: #888; outline: none; }
.gnr.f101-00 .atm.u209-00 .u209-00__icon { display: none; }

/* --- баннер st104-00 (site-forms.js) ------------------------------------ */
.st104-00__slider { position: relative; }
.apx-slide { display: none; position: relative; }
.apx-slide:first-child, .apx-slide.is-active { display: block; }
.apx-slide__visual { position: relative; }
.apx-slide__img { display: block; width: 100%; height: 100%; object-fit: cover; }
.apx-slide__visual .st104-00__picture { display: block; height: 56rem; }
.apx-slide__panel {
  position: absolute; left: 0; right: 0; bottom: 0; z-index: 2;
  margin: 0 auto; max-width: 170rem; padding: 0 1.6rem 4.8rem;
}
.apx-slide__panel .st104-00__panel-block { max-width: 72rem; color: #fff; }
.apx-slide__panel .st104-00__panel-title { font-size: 3.6rem; line-height: 1.2; margin-bottom: 1.6rem; }
.apx-slide__panel .st104-00__panel-sub-title { font-size: 1.8rem; line-height: 1.5; margin-bottom: 2.4rem; }
.apx-slide__panel .st104-00__panel-actions { display: flex; flex-wrap: wrap; gap: 1.6rem; }
.apx-slide__dots { position: absolute; bottom: 1.6rem; left: 0; right: 0; z-index: 3; display: flex; gap: .8rem; justify-content: center; }
.apx-slide__dot { width: 3.2rem; height: .4rem; padding: 0; border: 0; cursor: pointer; background: rgba(255,255,255,.45); }
.apx-slide__dot.is-active { background: #fff; }

@media (max-width: 1023px) {
  .apx-slide__visual .st104-00__picture { height: 42rem; }
  .apx-slide__panel { padding-bottom: 3.2rem; }
  .apx-slide__panel .st104-00__panel-title { font-size: 2.6rem; }
  .apx-slide__panel .st104-00__panel-sub-title { font-size: 1.6rem; }
}
@media (max-width: 767px) {
  .apx-slide__visual .st104-00__picture { height: 34rem; }
  .apx-slide__panel .st104-00__panel-title { font-size: 2.2rem; }
}
