

/* Start:/local/templates/festonika/css/pages.css?17914080344877*/
/* Внутренние страницы шага 5 (зона «данные»): заглушки разделов, «Контакты», 404, плашка закрытого приёма заявки
   (формы шага 8 — css/forms.css).
   Подключается самими страницами через Asset::addCss — на главной и в карточках этих правил нет.
   Общие классы каркаса (.page-head, .page-body, .shell, .btn, .lead, .eyebrow) здесь не переопределяются,
   только дополняются своими классами. Точка перелома mobile — max-width: 899.98px (контракт §2). */

/* Ряд кнопок и ссылок под текстом страницы */
.page-actions{
    display:flex;
    flex-wrap:wrap;
    gap:12px;
    align-items:center;
    margin:0;
}
/* после списка карточек или текста документа — отступ побольше */
.page-actions--after{margin-top:34px}

/* Плашка-объяснение на /zayavka/<код>/, когда приём заявок закрыт (прошёл срок, «Скоро», «Закрыт», архив) */
.stub-notice{
    max-width:720px;
    background:#FFF3C4;
    color:#4A3C00;
    border-radius:22px;
    padding:20px 22px;
    margin:0 0 28px;
}
.stub-notice p{margin:0 0 10px}
.stub-notice p:last-child{margin:0}

/* «Контакты»: слева список, справа карточка «Новое обращение» (askCols прототипа) */
.contacts{
    display:grid;
    grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);
    gap:44px;
    align-items:start;
}
.contacts__list{
    display:grid;
    gap:18px;
    margin:0;
    font-size:16px;
}
.contacts__list dt{
    font-size:12px;
    color:var(--muted);
    margin:0 0 2px;
}
.contacts__list dd{margin:0}
/* внешние ссылки (ВКонтакте, Telegram) — со стрелкой, как в макете и в подвале */
.contacts__list dd a[target="_blank"]::after{content:"\00a0↗"}
.contacts__phone{
    font-family:var(--font-display);
    font-size:26px;
    font-weight:700;
    letter-spacing:-.01em;
    color:var(--ink);
    text-decoration:none;
}
.contacts__phone:hover{color:var(--blue)}
.contacts__legal{
    border-top:1px solid var(--line);
    padding-top:16px;
    margin:22px 0 0;
    font-size:13px;
    color:var(--muted);
}
.contacts__ask{
    background:var(--white);
    border-radius:28px;
    padding:28px;
    box-shadow:var(--shadow-card);
}
.contacts__ask-title{
    font-family:var(--font-display);
    font-weight:600;
    font-size:19px;
    margin:0 0 10px;
}
.contacts__ask p{
    color:var(--text-muted);
    margin:0 0 20px;
    text-wrap:pretty;
}

@media (max-width:899.98px){
    .contacts{grid-template-columns:1fr;gap:32px}
    .contacts__phone{font-size:24px}
    .contacts__ask{padding:22px}
}

/* ---------- Шаг 9: каталог /fest/ — ссылки на лендинги городов и жанров, плашка архива (прототип app.js:732–735) ---------- */
.catalog-links{margin:48px 0 0}
.catalog-links__title{margin:0 0 14px;font-family:var(--font-display);font-weight:600;font-size:19px}
.catalog-links__list{list-style:none;margin:0 0 10px;padding:0;display:flex;flex-wrap:wrap;gap:8px}
.catalog-links__chip{display:inline-flex;align-items:center;gap:8px;min-height:40px;padding:8px 14px;border:1.5px solid var(--line);border-radius:999px;background:var(--white);color:var(--ink);font-size:14px;font-weight:500;text-decoration:none}
.catalog-links__chip:hover{border-color:var(--night);color:var(--ink)}
.catalog-links__chip--genre{background:var(--cream)}
.catalog-links__count{min-width:22px;padding:1px 7px;border-radius:999px;background:var(--line);font-size:12px;font-weight:600;text-align:center}
.catalog-archive{display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;align-items:center;margin-top:44px;padding:24px 28px;border-radius:24px;background:var(--white)}
.catalog-archive__title{margin:0;font-family:var(--font-display);font-weight:600;font-size:18px}
.catalog-archive__text{margin:0;font-size:14px;color:var(--muted)}

/* ---------- Шаг 9: лендинги городов и жанров ---------- */
.page-crumbs{margin:0 0 16px;font-size:13px;color:var(--muted)}
.page-crumbs__list{display:flex;flex-wrap:wrap;row-gap:4px;margin:0;padding:0;list-style:none}
.page-crumbs__sep{margin:0 .5em}
.page-crumbs a{color:var(--muted);text-underline-offset:3px}
.page-crumbs [aria-current]{color:var(--ink)}
.landing-text{max-width:72ch;margin:44px 0 0}
.landing-text h2{font-family:var(--font-display);font-weight:600;font-size:22px;margin:0 0 12px}
.landing-note{margin:28px 0 0;font-size:15px;color:var(--text-muted)}

/* End */


/* Start:/local/templates/festonika/css/forms.css?17913597628343*/
/* Формы шага 8: заявка (/zayavka/<код>/), вопрос (/vopros/) и страницы «спасибо».
   Подключается самими страницами через Asset::addCss после pages.css. Вид полей — как в прототипе (app.js,
   «ЗАЯВКА» и «Задать вопрос»): белые поля 50px со скруглением 15px и бежевой рамкой, подписи над полями
   (в прототипе были плейсхолдеры — подпись не исчезает при вводе и читается диктором).
   Ловушка для ботов .form-trap спрятана в template_styles.css: она есть и в форме главной.
   Точка перелома mobile — max-width: 899.98px (контракт §2). */

/* ---------- Раскладка: форма и колонка «куратор и документы» ---------- */
.apply-layout{
    display:grid;
    grid-template-columns:minmax(0,1fr) 320px;
    gap:44px;
    align-items:start;
}
.lead-form{display:grid;gap:30px;max-width:760px;margin:0}
.lead-form--card{
    background:var(--white);
    border-radius:28px;
    padding:28px;
    box-shadow:var(--shadow-card);
    gap:16px;
}

/* Шаг формы: fieldset без рамки, заголовок шага — синей строкой, как в прототипе */
.lead-form__step{border:0;margin:0;padding:0;min-width:0}
.lead-form__step > legend{
    padding:0;
    margin:0 0 12px;
    font-size:13px;
    font-weight:600;
    color:var(--blue);
}
.lead-form__step > * + *:not(legend){margin-top:12px}

.form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:12px}
.form-grid--3{grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}

/* ---------- Поле ---------- */
.form-field{display:grid;gap:6px;margin:0;min-width:0}
.form-field__label{display:block;font-size:13px;font-weight:600;color:var(--text-muted)}
.form-field__req{color:#B3261E}
.form-field__input{
    display:block;
    width:100%;
    min-height:50px;
    padding:13px 16px;
    border:1.5px solid var(--line);
    border-radius:15px;
    background:var(--white);
    color:var(--ink);
    /* 16px — иначе iOS увеличивает страницу при фокусе на поле */
    font:inherit;
    font-size:16px;
    line-height:1.35;
}
textarea.form-field__input{resize:vertical;min-height:96px}
.form-field__input:focus{border-color:var(--blue);outline:2px solid var(--blue);outline-offset:1px}
.form-field__input::placeholder{color:var(--muted)}
.form-field--error .form-field__input{border-color:#B3261E}
.form-field__error{display:block;font-size:13px;color:#B3261E}

.form-hint{font-size:13px;color:var(--text-muted);margin:0;text-wrap:pretty}

/* Состав из сметы — тёмная плашка над формой, как в прототипе */
.lead-summary{
    margin:0;
    padding:16px 20px;
    border-radius:20px;
    background:var(--night);
    color:var(--on-dark-soft);
    font-size:15px;
    text-wrap:pretty;
}
.lead-summary b{color:var(--white)}
.lead-summary a{color:var(--gold)}

/* Согласие и способ связи */
.form-consent{
    display:flex;
    gap:10px;
    align-items:flex-start;
    font-size:14px;
    color:var(--text-muted);
    cursor:pointer;
}
.form-consent--error{color:#B3261E}
.form-consent input,.form-radios__item input{
    flex:0 0 auto;
    width:18px;
    height:18px;
    margin:2px 0 0;
    accent-color:var(--blue);
}
.form-radios{border:0;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:8px 18px;align-items:center;font-size:15px}
.form-radios__legend{float:left;padding:0;margin:0 4px 0 0;color:var(--text-muted);font-size:14px}
.form-radios__item{display:inline-flex;gap:7px;align-items:center;cursor:pointer;min-height:32px}

/* Капча (появляется после лимита отправок с одного адреса) */
.form-captcha{display:grid;gap:10px;max-width:320px}
.form-captcha__img{display:block;border-radius:10px;border:1.5px solid var(--line);background:var(--white)}

.form-actions{display:flex;gap:18px;align-items:center;flex-wrap:wrap}
.form-actions__note{font-size:14px;color:var(--text-muted);margin:0;text-wrap:pretty}

/* Сводка ошибок: в начале формы, получает фокус после неудачной отправки */
.form-errors{
    background:#FDECEA;
    color:#6E1A12;
    border-radius:20px;
    padding:16px 20px;
}
.form-errors:focus{outline:2px solid #B3261E;outline-offset:2px}
.form-errors__title{margin:0 0 6px}
.form-errors__list{margin:0;padding-left:20px}
.form-errors__list a{color:inherit}

/* ---------- Колонка: куратор, документы, оргкомитет ---------- */
.apply-aside{display:grid;gap:14px}
.apply-aside__card{
    background:var(--white);
    border-radius:22px;
    padding:20px;
    box-shadow:var(--shadow-card);
}
.apply-aside__card p{margin:0 0 6px}
.apply-aside__card p:last-child{margin:0}
.apply-aside__label{font-size:12px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--text-muted)}
.apply-aside__name{font-family:var(--font-display);font-weight:600;font-size:17px}
.apply-aside__phone{font-family:var(--font-display);font-weight:700;font-size:19px;color:var(--ink);text-decoration:none}
a.apply-aside__phone:hover{color:var(--blue)}
.apply-aside__docs{list-style:none;margin:6px 0 0;padding:0;display:grid;gap:8px}

/* /zayavka/ без кода — какие фестивали принимают заявки */
.apply-choose{list-style:none;margin:0 0 24px;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:12px}
.apply-choose__link{
    display:grid;
    gap:4px;
    height:100%;
    padding:18px 20px;
    border-radius:20px;
    background:var(--white);
    border:1.5px solid transparent;
    box-shadow:var(--shadow-card);
    color:var(--ink);
    text-decoration:none;
}
.apply-choose__link:hover{border-color:var(--blue)}
.apply-choose__name{font-family:var(--font-display);font-weight:600;font-size:17px}
.apply-choose__meta{font-size:14px;color:var(--text-muted)}

/* ---------- «Спасибо» ---------- */
.form-done-badge{
    display:inline-flex;
    margin:0 0 16px;
    padding:7px 15px;
    border-radius:999px;
    background:#E6F7EC;
    color:#146B3A;
    font-size:13px;
    font-weight:600;
}
.form-done{max-width:800px}
.form-done__curator{
    display:flex;
    gap:15px;
    align-items:center;
    margin:0 0 34px;
    padding:16px;
    border-radius:22px;
    background:var(--white);
}
.form-done__curator p{margin:0;font-size:15px}
.form-done__initials{
    flex:0 0 auto;
    display:flex;
    align-items:center;
    justify-content:center;
    width:60px;
    height:60px;
    border-radius:50%;
    background:var(--night);
    color:var(--gold);
    font-family:var(--font-display);
    font-weight:700;
    font-size:18px;
}
.form-done__title{font-family:var(--font-display);font-weight:600;font-size:21px;margin:0 0 16px}
.form-done__list{list-style:none;margin:0;padding:0;display:grid;gap:12px}
.form-done__item{
    display:flex;
    gap:15px;
    align-items:center;
    padding:18px;
    border-radius:20px;
    background:var(--white);
}
.form-done__item--memo{display:block}
.form-done__doc{
    flex:0 0 auto;
    display:flex;
    align-items:center;
    justify-content:center;
    width:46px;
    height:56px;
    border-radius:9px;
    background:var(--blue);
    color:var(--white);
    font-size:11px;
    font-weight:700;
}
/* смета — страница для печати, а не файл: знак рубля вместо «PDF» */
.form-done__doc--rub{background:var(--gold);color:var(--night);font-family:var(--font-display);font-size:20px}
.form-done__text{flex:1;display:grid;gap:2px;min-width:0}
.form-done__text span{font-size:14px;color:var(--text-muted)}
.form-done__link{font-weight:600;white-space:nowrap}
.form-done__memo{list-style:none;margin:11px 0 0;padding:0;display:grid;gap:7px;font-size:15px;color:#3E4763}

@media (max-width:899.98px){
    .apply-layout{grid-template-columns:1fr;gap:32px}
    .lead-form--card{padding:22px}
    .form-done__item{flex-wrap:wrap}
}

/* End */
/* /local/templates/festonika/css/pages.css?17914080344877 */
/* /local/templates/festonika/css/forms.css?17913597628343 */
