/* ============================================================
   V2 EXTRAS — sticky stories, popup, ссылка на старую версию.
   Робот стилизуется в /newimg/tg_robot.css.
   ============================================================ */

/* Прячем reCAPTCHA badge */
.grecaptcha-badge { visibility: hidden !important; opacity: 0 !important; }

/* Плавающий Telegram-виджет (круглая кнопка в правом нижнем углу) */
.tg_widget{
    position:fixed;right:24px;bottom:24px;z-index:9999;
    display:inline-flex;align-items:center;justify-content:center;
    width:60px;height:60px;border-radius:50%;
    background:#229ED9;color:#fff;
    box-shadow:0 12px 30px rgba(34,158,217,.45);
    transition:transform .25s ease, box-shadow .25s ease;
}
.tg_widget svg{display:block}
.tg_widget:hover{transform:translateY(-3px);box-shadow:0 16px 36px rgba(34,158,217,.55)}
.tg_widget__pulse{
    position:absolute;inset:0;border-radius:50%;
    background:#229ED9;opacity:.6;
    animation:tg_pulse 2.4s ease-out infinite;
    z-index:-1;
}
@keyframes tg_pulse{
    0%   {transform:scale(.9);opacity:.6}
    100% {transform:scale(1.5);opacity:0}
}
@media(max-width:520px){.tg_widget{width:54px;height:54px;right:16px;bottom:16px}}

/* Унифицированный ряд CTA-кнопок под секциями */
.section-cta{
    display:flex;flex-wrap:wrap;gap:14px;
    margin-top:48px;
    padding-top:36px;
    border-top:1px solid var(--line);
}
.fb .section-cta{border:0;padding:0;margin-top:24px}
@media(max-width:560px){.section-cta .btn{flex:1 1 100%;justify-content:center}}

/* ===== Statement-блок — фикс-цена бейдж ===== */
.fb-fix{
    margin-top:30px;
    display:flex;flex-direction:column;gap:12px;
    max-width:620px;
}
.fb-fix__lbl{
    font-size:12px;letter-spacing:.22em;text-transform:uppercase;
    color:#E89A6A;font-weight:700;
    text-shadow:0 2px 14px rgba(0,0,0,.75), 0 1px 3px rgba(0,0,0,.85);
}
.fb-fix__row{display:flex;gap:12px;flex-wrap:wrap}
.fb-fix__chip{
    flex:1 1 220px;
    display:flex;flex-direction:column;gap:4px;
    padding:14px 44px 14px 20px;
    background:rgba(16,14,12,.72);
    border:1px solid rgba(239,234,225,.28);
    backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);
    color:var(--fg);text-decoration:none;
    transition:.25s ease;
    position:relative;
}
.fb-fix__chip::after{
    content:"→";position:absolute;right:18px;top:50%;transform:translateY(-50%);
    color:var(--accent);font-size:18px;opacity:.7;transition:.25s ease;
}
.fb-fix__chip:hover{
    border-color:var(--accent);
    background:rgba(199,123,74,.14);
}
.fb-fix__chip:hover::after{transform:translateY(-50%) translateX(4px);opacity:1}
.fb-fix__chip-area{
    font-family:var(--disp);font-weight:500;font-size:13px;letter-spacing:.04em;
    color:#CDC4B6;
}
.fb-fix__chip-price{
    font-family:var(--disp);font-weight:600;font-size:22px;letter-spacing:-.01em;
    color:var(--fg);line-height:1.1;
}
.fb-fix__note{
    font-size:13.5px;color:#D8D2C7;letter-spacing:.01em;
    text-shadow:0 2px 14px rgba(0,0,0,.75), 0 1px 3px rgba(0,0,0,.85);
}
@media(max-width:640px){
    .fb-fix{margin-top:24px}
    .fb-fix__row{flex-direction:column}
    .fb-fix__chip{flex:1 1 auto}
    .fb-fix__chip-price{font-size:19px}
}

/* ===== FIXED-PRICE renovation (Комплексный ремонт) ===== */
.fix .head h2{max-width:none;white-space:normal}
.fix .head h2 br{display:inline}
.fix .head h2 .accent{color:var(--accent);white-space:nowrap}
.fix-grid{
    display:grid;grid-template-columns:1fr 1fr;gap:24px;
}
.fix-card{
    display:flex;flex-direction:column;gap:24px;
    padding:48px 44px;
    border:1px solid var(--line);
    background:rgba(239,234,225,.03);
    transition:.3s ease;
    position:relative;overflow:hidden;
}
.fix-card::before{
    content:"";position:absolute;left:0;top:0;width:4px;height:0;
    background:var(--accent);transition:height .35s ease;
}
.fix-card:hover{border-color:rgba(239,234,225,.32);background:rgba(239,234,225,.05)}
.fix-card:hover::before{height:100%}
.fix-card__head{display:flex;justify-content:space-between;align-items:flex-start;gap:14px;flex-wrap:wrap}
.fix-card__lbl{
    font-size:11px;font-weight:600;letter-spacing:.18em;text-transform:uppercase;color:var(--accent);
}
.fix-card__area{
    font-family:var(--disp);font-weight:500;font-size:clamp(32px,3.6vw,52px);
    line-height:.95;letter-spacing:-.02em;
    color:var(--fg);text-align:right;
}
.fix-card__price{
    display:flex;flex-direction:column;gap:4px;
    padding:18px 0 22px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);
}
.fix-card__price_val{
    font-family:var(--disp);font-weight:600;font-size:clamp(28px,3.4vw,48px);
    letter-spacing:-.02em;color:var(--fg);line-height:1;
}
.fix-card__price_note{
    font-size:12px;letter-spacing:.18em;text-transform:uppercase;color:var(--fg-soft);
}
.fix-card__list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:11px}
.fix-card__list li{
    position:relative;padding-left:24px;
    font-size:14.5px;line-height:1.5;color:rgba(239,234,225,.78);
}
.fix-card__list li::before{
    content:"";position:absolute;left:0;top:8px;
    width:8px;height:8px;border:1px solid var(--accent);border-right:0;border-top:0;
    transform:rotate(-45deg);
}
.fix-card .btn{align-self:flex-start;margin-top:6px}

.fix-note{
    margin-top:36px;
    color:var(--fg-soft);
    font-size:15px;line-height:1.55;
    max-width:62ch;
}

@media(max-width:880px){
    .fix-grid{grid-template-columns:1fr;gap:18px}
    .fix-card{padding:32px 28px;gap:20px}
}

/* Большая цифра в заголовке («6 шагов до проекта») */
.big-num{
    color:var(--accent);
    font-family:var(--disp);font-weight:600;
    font-size:1.05em;
}

/* Выделенный подзаголовок квиза */
.quiz-aside-strong{
    color:var(--fg) !important;
    font-size:17px !important;
    line-height:1.55 !important;
}
.quiz-aside-strong .em{
    color:var(--accent);
    font-weight:600;
}

/* Telegram-иконка в шапке — фирменный цвет, без обводки */
.nav-tg{
    display:inline-flex;align-items:center;justify-content:center;
    width:32px;height:32px;
    color:#229ED9;
    transition:.2s ease;
}
.nav-tg svg{width:28px;height:28px}
.nav-tg:hover{color:#1d8cbf;transform:translateY(-1px)}
@media(max-width:1040px){.nav-tg{display:none}}

/* Stories — sticky правая колонка с подписями слева от иконок */
.stories2{
    position:fixed;
    right:14px;
    top:50%;
    transform:translateY(-50%);
    z-index:90;
    display:flex;
    flex-direction:column;
    align-items:flex-end;     /* иконки строго по правому краю */
    gap:10px;
}
.story2{
    display:inline-flex;
    align-items:center;
    gap:10px;
    flex-direction:row-reverse; /* подпись слева, иконка справа */
    background:transparent;
    border:0;
    cursor:pointer;
    padding:0;
    text-decoration:none;
    color:var(--fg);
}
.story2__ring{
    display:flex;
    align-items:center;
    justify-content:center;
    width:40px;height:40px;
    border-radius:50%;
    padding:1px;
    border:1px solid rgba(239,234,225,.3);
    background:rgba(16,14,12,.7);
    backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);
    transition:border-color .25s ease, transform .25s ease, background .25s;
    flex:0 0 40px;
}
/* Чистим лишний svg в HTML «Цены» */
.story2__hidden_svg{display:none}
.story2__face{
    display:flex;align-items:center;justify-content:center;
    width:100%;height:100%;
    border-radius:50%;
    color:var(--fg);
    overflow:hidden;
}
.story2__label{
    font-size:11px;
    font-weight:500;
    letter-spacing:.02em;
    color:var(--fg);
    background:rgba(16,14,12,.85);
    padding:5px 12px;
    border-radius:30px;
    border:1px solid var(--line);
    backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);
    white-space:nowrap;
    transition:opacity .35s ease, transform .35s ease;
    transform-origin:right center;
}
/* Скрываем весь сайдбар после прокрутки hero */
.stories2{transition:opacity .3s ease, transform .3s ease}
body.is-scrolled .stories2{
    opacity:0;
    transform:translateY(-50%) translateX(60px);
    pointer-events:none;
}
.story2:hover .story2__ring{
    border-color:var(--accent);
    transform:scale(1.08);
    background:var(--accent);
    color:#100E0C;
}
.story2:hover .story2__label{
    opacity:1 !important;
    transform:none !important;
    color:var(--accent);
    border-color:var(--accent);
}
@media (max-width: 980px){ .stories2 { display:none; } }

/* Простая модалка (popup_call), без fancybox */
.modal{
    position:fixed;inset:0;z-index:150;
    display:none;
    align-items:center;justify-content:center;
    padding:20px;
}
.modal.open{display:flex}
.modal__overlay{
    position:absolute;inset:0;
    background:rgba(8,7,6,.85);
    backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);
}
.modal__panel{
    position:relative;
    background:var(--bg-2);
    border:1px solid var(--line);
    border-radius:6px;
    width:100%;max-width:480px;
    padding:36px 32px 32px;
    color:var(--fg);
}
.modal__close{
    position:absolute;top:14px;right:14px;
    width:36px;height:36px;border-radius:50%;
    background:transparent;border:1px solid var(--line);
    color:var(--fg);cursor:pointer;font-size:18px;
    font-family:var(--text);
    transition:.2s;
}
.modal__close:hover{border-color:var(--fg)}
.modal__title{
    font-family:var(--disp);font-weight:600;font-size:24px;line-height:1.05;
    margin-bottom:10px;letter-spacing:-.01em;
}
.modal__sub{color:var(--fg-soft);font-size:14px;margin-bottom:22px}

/* Stories — поверх контента (полупрозрачные), контент НЕ сдвигаем (иначе hero обрезается полосой) */
.stories2 { right: 14px; }
@media (min-width: 1100px){ .stories2 { right: 18px; } }

/* Робот в правом нижнем не должен перекрывать stories — поднимаем чуть выше */
.tg_robot { bottom: 18px; right: 18px; }
@media (min-width: 1100px){
    /* стрис вертикально по центру, занимают ~60px ширины — карточки в их зоне не критичны */
    .stories2 { right: 16px; }
}

/* Сглаживание: ставим accent на инпуты при ошибке */
.field--err input{border-bottom-color:var(--accent) !important}

/* ===================== STORY VIEWER (Instagram-style) ===================== */
.story-view{
    position:fixed;inset:0;z-index:200;
    display:none;align-items:center;justify-content:center;
}
.story-view.open{display:flex}
.story-view__overlay{
    position:absolute;inset:0;
    background:rgba(8,7,6,.94);
    backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);
}
.story-view__frame{
    position:relative;
    width:min(420px, 92vw);
    height:min(820px, 92svh);
}
.story-view__panel{
    position:relative;
    width:100%;height:100%;
    background:#000;
    overflow:hidden;
    border-radius:8px;
    box-shadow:0 30px 80px rgba(0,0,0,.6);
}
.story-view__progress{
    position:absolute;top:10px;left:10px;right:10px;
    display:flex;gap:4px;
    z-index:5;
}
.story-view__progress .seg{
    flex:1;height:2px;
    background:rgba(255,255,255,.3);
    overflow:hidden;
    position:relative;
}
.story-view__progress .seg::after{
    content:"";position:absolute;inset:0;
    background:#fff;
    transform:scaleX(0);transform-origin:left center;
}
.story-view__progress .seg.is-done::after{transform:scaleX(1)}
.story-view__progress .seg.is-active::after{
    transform:scaleX(0);
    animation:sv_fill var(--sv-dur, 5s) linear forwards;
}
@keyframes sv_fill{to{transform:scaleX(1)}}
.story-view__top{
    position:absolute;top:22px;left:14px;right:14px;
    display:flex;justify-content:space-between;align-items:center;
    z-index:5;
    pointer-events:none;
}
.story-view__title{
    font-family:var(--disp);font-size:14px;font-weight:500;color:#fff;letter-spacing:.04em;
    text-shadow:0 1px 8px rgba(0,0,0,.5);
}
.story-view__close{
    pointer-events:auto;
    width:36px;height:36px;border-radius:50%;
    background:rgba(0,0,0,.4);border:1px solid rgba(255,255,255,.2);
    color:#fff;cursor:pointer;font-size:20px;line-height:1;
    backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);
    font-family:var(--text);
    transition:.2s;
}
.story-view__close:hover{background:rgba(0,0,0,.7);border-color:#fff}
.story-view__stage{
    position:absolute;inset:0;
    background:#0a0908;
}
.sv_frame{
    position:absolute;inset:0;
    opacity:0;transition:opacity .25s ease;
    background-size:cover;background-position:center;
}
.sv_frame.is-active{opacity:1}
.sv_frame::after{
    content:"";position:absolute;inset:0;
    background:linear-gradient(180deg, rgba(0,0,0,.4) 0%, transparent 22%, transparent 60%, rgba(0,0,0,.7) 100%);
    pointer-events:none;
}
.sv_caption{
    position:absolute;left:0;right:0;bottom:0;
    padding:24px 26px 36px;
    color:#fff;
    z-index:2;
}
.sv_caption .lbl{
    display:inline-block;
    font-size:11px;font-weight:600;letter-spacing:.18em;text-transform:uppercase;
    color:var(--accent);margin-bottom:8px;
}
.sv_caption h4{
    font-family:var(--disp);font-weight:600;font-size:clamp(22px,2.6vw,30px);
    line-height:1.1;letter-spacing:-.015em;color:#fff;margin-bottom:8px;
}
.sv_caption p{
    font-size:14px;line-height:1.45;color:rgba(255,255,255,.85);
}
.story-view__tap{
    position:absolute;top:0;bottom:0;width:35%;
    background:transparent;border:0;cursor:pointer;
    z-index:4;
}
.story-view__tap--prev{left:0}
.story-view__tap--next{right:0;width:65%}

.story-view__footer{
    position:absolute;left:0;right:0;bottom:0;
    display:flex;align-items:center;gap:8px;
    padding:14px 16px;
    z-index:5;
    background:linear-gradient(0deg, rgba(0,0,0,.65) 0%, rgba(0,0,0,0) 100%);
}
.story-view__reply{
    flex:1;
    background:rgba(255,255,255,.12);
    border:1px solid rgba(255,255,255,.22);
    color:#fff;
    padding:12px 16px;border-radius:30px;
    font-family:var(--text);font-size:14px;line-height:1;
    outline:none;
    transition:.2s;
}
.story-view__reply::placeholder{color:rgba(255,255,255,.55)}
.story-view__reply:focus{background:rgba(255,255,255,.18);border-color:rgba(255,255,255,.5)}
.story-view__send{
    width:42px;height:42px;border-radius:50%;
    background:#229ED9;border:0;color:#fff;cursor:pointer;
    display:flex;align-items:center;justify-content:center;
    flex-shrink:0;transition:.2s;
}
.story-view__send:hover{background:#1d8cbf;transform:translateY(-1px)}

@media (max-width:520px){
    .story-view__frame{width:100vw;height:100svh;}
    .story-view__panel{border-radius:0}
}

/* ===================== QUIZ ===================== */
.quiz{display:grid;grid-template-columns:minmax(220px,260px) 1fr;gap:40px;align-items:start;border-top:1px solid var(--line);padding-top:40px}
.quiz__steps{display:flex;flex-direction:column;gap:6px}
.quiz__step{
    display:flex;flex-direction:column;align-items:flex-start;gap:4px;
    padding:14px 0;
    background:transparent;border:0;border-bottom:1px solid var(--line);
    cursor:pointer;text-align:left;
    opacity:.4;transition:opacity .25s;
    font-family:var(--text);color:var(--fg);
}
.quiz__step:hover,.quiz__step.is-active{opacity:1}
.quiz__step .num{font-family:var(--disp);font-size:24px;font-weight:500;letter-spacing:-.01em;line-height:1}
.quiz__step .lbl{font-size:11px;text-transform:uppercase;letter-spacing:.14em;color:var(--fg-soft)}
.quiz__step.is-active .lbl{color:var(--accent)}

.quiz__panel{
    background:rgba(239,234,225,.03);
    border:1px solid var(--line);
    padding:40px 40px 28px;
    min-height:340px;
    display:flex;flex-direction:column;
}
.quiz__q{display:none;flex:1}
.quiz__q.is-active{display:block}
.quiz__title{
    font-family:var(--disp);font-size:clamp(20px,2.2vw,28px);font-weight:500;line-height:1.2;
    margin-bottom:24px;letter-spacing:-.01em;
}
.quiz__opts{display:flex;flex-wrap:wrap;gap:10px}
.quiz__opt{
    display:inline-flex;align-items:center;gap:10px;
    padding:13px 22px;
    background:transparent;
    border:1px solid var(--line);
    border-radius:40px;
    color:var(--fg);
    font-family:var(--text);font-size:14px;line-height:1;
    cursor:pointer;
    transition:.2s;
}
.quiz__opt::before{
    content:"";width:12px;height:12px;border-radius:50%;
    border:1px solid var(--fg-soft);background:transparent;
    display:inline-block;flex-shrink:0;position:relative;
    transition:.2s;
}
.quiz__opt:hover{border-color:var(--fg);color:var(--fg)}
.quiz__opt.is-checked{border-color:var(--accent);color:var(--fg);background:rgba(199,123,74,.08)}
.quiz__opt.is-checked::before{background:var(--accent);border-color:var(--accent);box-shadow:inset 0 0 0 2px var(--bg-2)}

/* Карточки опций с превью-фото (шаг 1 «Тип объекта» и шаг 3 «Стиль») */
.quiz__opts--cards{display:grid;grid-template-columns:repeat(5,1fr);gap:12px}
.quiz__card{
    display:flex;flex-direction:column;align-items:stretch;gap:0;
    background:transparent;border:1px solid var(--line);
    cursor:pointer;padding:0;color:var(--fg);font-family:var(--text);
    transition:.25s ease;
    overflow:hidden;
}
.quiz__card img{
    width:100%;height:auto;aspect-ratio:4/3;object-fit:cover;
    transition:transform .4s ease,filter .4s ease;
    filter:grayscale(.2) brightness(.92);
}
.quiz__card span{
    display:block;
    font-size:13px;line-height:1.3;text-align:center;
    padding:12px 8px;background:rgba(239,234,225,.03);
    border-top:1px solid var(--line);
}
.quiz__card:hover{border-color:var(--fg-soft)}
.quiz__card:hover img{transform:scale(1.04);filter:none}
.quiz__card.is-checked{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent)}
.quiz__card.is-checked img{filter:none}
.quiz__card.is-checked span{color:var(--accent);background:rgba(199,123,74,.08)}

@media(max-width:880px){.quiz__opts--cards{grid-template-columns:repeat(3,1fr)}}
@media(max-width:520px){.quiz__opts--cards{grid-template-columns:repeat(2,1fr)}}

.quiz__nav{
    display:flex;justify-content:space-between;gap:12px;
    margin-top:30px;padding-top:24px;border-top:1px solid var(--line);
}
.quiz__nav .btn{padding:13px 26px;font-size:13px}
.quiz__nav .btn--ghost{color:var(--fg-soft)}

.quiz__form{gap:18px}
.quiz__form .btn{align-self:flex-start;margin-top:6px}

@media (max-width: 880px){
    .quiz{grid-template-columns:1fr;gap:24px;padding-top:30px}
    .quiz__steps{flex-direction:row;overflow-x:auto;border-bottom:1px solid var(--line);padding-bottom:8px}
    .quiz__steps::-webkit-scrollbar{display:none}
    .quiz__step{flex-shrink:0;border-bottom:0;padding:6px 14px}
    .quiz__panel{padding:28px 22px 22px;min-height:0}
}
