/* Общие элементы форм */
.form__group:not(:last-child){
    margin-bottom:20px;
}

.form__row{
    display:grid;
    grid-template-columns:repeat(2,1fr);
    gap:20px;
}

.form__label{
    display:block;
    position:relative;
}

.form__title{
    display:block;
    font-size:1.2em;;
    font-weight:600;
    color:#081836;
}
/* Общие поля форм */ 

.feedbackForm .form__row{
    display:grid;
    grid-template-columns:1fr 1fr;
}

.form__input,
.form__select,
.form__textarea{
    width:100%;
    box-sizing:border-box;

    padding:10px 20px;
    margin-bottom: 10px;

    background:#fff;

    border:2px solid rgba(8,24,54,.1);
    border-radius:12px;

    color:#081836;
    font-size:17px;
    font-weight:500;

    transition:.25s;
    outline:none;
}

.form__textarea{
    resize:vertical;
    min-height:170px;
}

.form__select{
    appearance:none;
    -webkit-appearance:none;
    -moz-appearance:none;
    cursor:pointer;
}

.form__input::placeholder,
.form__textarea::placeholder{
    color:rgba(8,24,54,.45);
}

.form__input:hover,
.form__textarea:hover,
.form__select:hover{
    border-color:rgba(89,187,103,.35);
    box-shadow:0 10px 25px rgba(89,187,103,.10);
}

.form__input:focus,
.form__textarea:focus,
.form__select:focus{
    border-color:#59bb67;
    box-shadow:0 0 0 5px rgba(89,187,103,.12);
}

.form__input:read-only{
    background:#f8f8f8;
}

/* Select */
.form__select-wrapper{
    position:relative;
}

.form__select-wrapper::after{
    content:"";
    position:absolute;
    top:50%;
    right:22px;

    width:10px;
    height:10px;

    border-right:2px solid #276AE7;
    border-bottom:2px solid #276AE7;

    transform:translateY(-70%) rotate(45deg);

    pointer-events:none;

    transition:.25s;
}

.form__select-wrapper:focus-within::after{
    transform:translateY(-40%) rotate(225deg);
}

/* Кнопки форм */
.form__actions{
    display:grid;
    grid-template-columns:repeat(2,1fr);
    gap:20px;
    margin-top:30px;
}

.form__actions .quizForm__btn{
    width:100%;
    justify-content:center;
}
/* Ошибки */
.invalid-feedback{
    display:block;

    color:#dc3545;
    font-size:14px;

    position:relative;
    padding-left:20px;
}

.invalid-feedback.active::before{
    content:"⚠";
    position:absolute;
    left:0;
    top:0;
}
/* Обязательные поля */
.required-field{
    position:relative;
}

.required-field::before{
    content:"*";

    position:absolute;
    left:7px;
    top:48%;
    transform:translateY(-50%);

    color:#d83b3b;
    font-size:1.3em;
    font-weight:700;

    pointer-events:none;
}
/* Чекбокс*/
.form__checkbox{
    display:flex;
    align-items:flex-start;
    gap:12px;

    margin-top:25px;

    color:#666;
    font-size:14px;
    line-height:1.6;
}

.form__checkbox input{
    position:absolute;
    opacity:0;
    pointer-events:none;
}

.form__checkbox label{
    display:flex;
    align-items:flex-start;
    gap:12px;
    cursor:pointer;
}

.form__checkbox-icon{
    width:24px;
    height:24px;
    flex-shrink:0;

    display:flex;
    justify-content:center;
    align-items:center;

    border:2px solid rgba(8,24,54,.15);
    border-radius:6px;
    background:#fff;

    transition:.25s;
}

.form__checkbox-icon svg{
    width:15px;
    height:15px;

    color:#fff;

    opacity:0;
    transform:scale(.5);

    transition:.25s;
}

.form__checkbox input:checked + label .form__checkbox-icon{
    background:#59bb67;
    border-color:#59bb67;
}

.form__checkbox input:checked + label .form__checkbox-icon svg{
    opacity:1;
    transform:scale(1);
}

.form__checkbox input:focus + label .form__checkbox-icon{
    box-shadow:0 0 0 4px rgba(89,187,103,.15);
}

.form__checkbox-text{
    line-height:1.5;
}

.form__checkbox a{
    color:#276AE7;
}

/* Успешная отправка формы */
.form-success-message {
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.5s ease, visibility 0.5s ease;
  padding: 7px 15px;
  margin: 15px 0 15px 0;
  border: 2px solid #4CAF50; 
  background-color: #dff0d8; 
  color: #3c763d; 
  font-size: 16px;
  border-radius: 5px;
  box-shadow: 0 2px 6px rgba(76, 175, 80, 0.3);
}

.form-success-message.visible {
  opacity: 1;
  visibility: visible;
}

/*  Адаптив */
@media (max-width:768px){

    .form__row,
    .form__actions{
        grid-template-columns:1fr;
    }

}