/* ═══════════════════════════════════════════════════════════════════════════
   FSA Plan Page — Как сделать план и разметку
   ═══════════════════════════════════════════════════════════════════════════ */

.fsapl {
    --gold      : #C9A96E;
    --gold-l    : #E8D5B0;
    --gold-d    : #9A7840;
    --gold-p    : #FAF6F0;
    --pur       : #6B4FA0;
    --pur-l     : #9B7FCA;
    --pur-p     : #F2EDF9;
    --pur-d     : #4A3270;
    --ink       : #1A1008;
    --ink-m     : #4A3828;
    --ink-l     : #8C7060;
    --white     : #FFFFFF;
    --border    : #E8DDD5;
    --cream     : #F4EDE4;
    --green     : #5A9E6A;
    --green-p   : #EDF7EF;

    font-family : 'Montserrat', -apple-system, sans-serif;
    color       : var(--ink);
    line-height : 1.75;
}

.fsapl * {
    box-sizing  : border-box;
}

.fsapl p {
    margin      : 0;
}

.fsapl h2 {
    margin      : 0;
}


/* ── Важно ──────────────────────────────────────────────────────────────── */

.fsapl-important-block {
    display         : flex;
    gap             : 16px;
    align-items     : flex-start;
    background      : var(--gold-p);
    border          : 1px solid var(--gold-l);
    border-left     : 4px solid var(--gold);
    border-radius   : 0 14px 14px 0;
    padding         : 20px 22px;
    margin-bottom   : 24px;
}

.fsapl-important-block__icon {
    width           : 40px;
    height          : 40px;
    border-radius   : 50%;
    background      : var(--gold);
    color           : #fff;
    display         : flex;
    align-items     : center;
    justify-content : center;
    font-size       : 20px;
    font-weight     : 700;
    flex-shrink     : 0;
    font-family     : 'Cormorant Garamond', serif;
}

.fsapl-important-block__title {
    font-size       : 15px !important;
    font-weight     : 600 !important;
    color           : var(--ink) !important;
    margin-bottom   : 6px !important;
    max-width       : none !important;
}

.fsapl-important-block p {
    font-size       : 14px !important;
    color           : var(--ink-m) !important;
    line-height     : 1.7 !important;
    max-width       : none !important;
}


/* ── Блоки ──────────────────────────────────────────────────────────────── */

.fsapl-block {
    background      : var(--white);
    border          : 1px solid var(--border);
    border-radius   : 16px;
    padding         : 24px;
    margin-bottom   : 20px;
}

.fsapl-block__label {
    font-size       : 10px;
    font-weight     : 600;
    letter-spacing  : 3px;
    text-transform  : uppercase;
    color           : var(--gold-d);
    margin-bottom   : 6px;
    display         : flex;
    align-items     : center;
    gap             : 10px;
}

.fsapl-block__label::before {
    content         : '';
    display         : inline-block;
    width           : 24px;
    height          : 1px;
    background      : var(--gold);
    flex-shrink     : 0;
}

.fsapl-block__title {
    font-family     : 'Cormorant Garamond', Georgia, serif !important;
    font-size       : clamp(20px, 3vw, 26px) !important;
    font-weight     : 700 !important;
    color           : var(--ink) !important;
    margin          : 0 0 10px !important;
    line-height     : 1.25 !important;
    max-width       : none !important;
}

.fsapl-block__desc {
    font-size       : 14px !important;
    color           : var(--ink-m) !important;
    line-height     : 1.75 !important;
    margin-bottom   : 18px !important;
    max-width       : none !important;
}


/* ── Что потребуется ────────────────────────────────────────────────────── */

.fsapl-needs {
    display                 : grid;
    grid-template-columns   : repeat(3, 1fr);
    gap                     : 12px;
}

@media (max-width: 600px) {
    .fsapl-needs {
        grid-template-columns : 1fr;
    }
}

.fsapl-need {
    background      : var(--cream);
    border          : 1px solid var(--border);
    border-top      : 3px solid var(--gold);
    border-radius   : 0 0 12px 12px;
    padding         : 16px 14px;
    display         : flex;
    gap             : 12px;
    align-items     : flex-start;
}

.fsapl-need__num {
    width           : 28px;
    height          : 28px;
    border-radius   : 50%;
    background      : var(--pur);
    color           : #fff;
    display         : flex;
    align-items     : center;
    justify-content : center;
    font-size       : 13px;
    font-weight     : 600;
    flex-shrink     : 0;
    font-family     : 'Montserrat', sans-serif;
}

.fsapl-need__name {
    font-size       : 13px !important;
    font-weight     : 600 !important;
    color           : var(--ink) !important;
    margin-bottom   : 3px !important;
    max-width       : none !important;
}

.fsapl-need p {
    font-size       : 12px !important;
    color           : var(--ink-m) !important;
    line-height     : 1.55 !important;
    max-width       : none !important;
}


/* ── Блок шага ──────────────────────────────────────────────────────────── */

.fsapl-step-block {
    background      : var(--white);
    border          : 1px solid var(--border);
    border-radius   : 16px;
    padding         : 24px;
    margin-bottom   : 20px;
}

.fsapl-step-block__head {
    display         : flex;
    gap             : 18px;
    align-items     : flex-start;
    margin-bottom   : 16px;
}

.fsapl-step-block__num {
    width           : 52px;
    height          : 52px;
    border-radius   : 50%;
    background      : linear-gradient(145deg, #4A2F82 0%, #6B4DB0 100%);
    color           : #fff;
    display         : flex;
    align-items     : center;
    justify-content : center;
    font-size       : 22px;
    font-weight     : 700;
    flex-shrink     : 0;
    font-family     : 'Cormorant Garamond', serif;
    box-shadow      : 0 4px 14px rgba(107,79,160,0.3);
}


/* ── Способы ────────────────────────────────────────────────────────────── */

.fsapl-ways {
    display                 : grid;
    grid-template-columns   : repeat(2, 1fr);
    gap                     : 14px;
    margin-bottom           : 18px;
}

@media (max-width: 620px) {
    .fsapl-ways {
        grid-template-columns : 1fr;
    }
}

.fsapl-way {
    background      : var(--cream);
    border          : 1px solid var(--border);
    border-radius   : 14px;
    padding         : 18px 16px;
}

.fsapl-way--best {
    background      : var(--pur-p);
    border-color    : rgba(107,79,160,0.35);
}

.fsapl-way__badge {
    display         : inline-block;
    font-size       : 10px;
    font-weight     : 600;
    letter-spacing  : 1.5px;
    text-transform  : uppercase;
    padding         : 4px 10px;
    border-radius   : 20px;
    margin-bottom   : 8px;
    background      : rgba(0,0,0,0.06);
    color           : var(--ink-l);
}

.fsapl-way__badge--easy {
    background      : var(--green-p);
    color           : var(--green);
}

.fsapl-way__badge--best {
    background      : var(--pur);
    color           : #fff;
}

.fsapl-way__title {
    font-size       : 15px !important;
    font-weight     : 600 !important;
    color           : var(--ink) !important;
    margin-bottom   : 10px !important;
    max-width       : none !important;
}

.fsapl-way p {
    font-size       : 14px !important;
    color           : var(--ink-m) !important;
    line-height     : 1.7 !important;
    max-width       : none !important;
}

.fsapl-way strong {
    color           : var(--ink) !important;
    font-weight     : 600 !important;
}


/* ── Подсказки ──────────────────────────────────────────────────────────── */

.fsapl-tips {
    display         : flex;
    flex-direction  : column;
    gap             : 7px;
}

.fsapl-tip {
    display         : flex;
    gap             : 8px;
    align-items     : flex-start;
    font-size       : 13px !important;
    color           : var(--ink-m) !important;
    line-height     : 1.6 !important;
}

.fsapl-tip__dot {
    width           : 5px;
    height          : 5px;
    border-radius   : 50%;
    background      : var(--gold);
    flex-shrink     : 0;
    margin-top      : 6px;
}


/* ── Предупреждение ─────────────────────────────────────────────────────── */

.fsapl-warn {
    background      : rgba(255,255,255,0.6);
    border-left     : 3px solid var(--gold);
    border-radius   : 0 8px 8px 0;
    padding         : 10px 14px;
    font-size       : 13px !important;
    color           : var(--ink-m) !important;
    line-height     : 1.65 !important;
    margin-top      : 10px;
}


/* ── Шаги карты ─────────────────────────────────────────────────────────── */

.fsapl-map-steps {
    display         : flex;
    flex-direction  : column;
    gap             : 7px;
    margin-bottom   : 0;
}

.fsapl-map-step {
    display         : flex;
    gap             : 10px;
    align-items     : flex-start;
    font-size       : 13px;
    color           : var(--ink-m);
    line-height     : 1.6;
}

.fsapl-map-step__n {
    width           : 20px;
    height          : 20px;
    border-radius   : 50%;
    background      : var(--pur);
    color           : #fff;
    display         : flex;
    align-items     : center;
    justify-content : center;
    font-size       : 11px;
    font-weight     : 700;
    flex-shrink     : 0;
    font-family     : 'Montserrat', sans-serif;
}


/* ── Карта встроена ─────────────────────────────────────────────────────── */

.fsapl-map-wrap {
    margin-top      : 20px;
    border-radius   : 14px;
    overflow        : hidden;
    border          : 1px solid var(--border);
}

.fsapl-map-wrap .fsamap {
    max-width       : none;
}


/* ── Подшаг 1.1 ─────────────────────────────────────────────────────────── */

.fsapl-substep {
    background      : var(--pur-p);
    border          : 1px solid rgba(107,79,160,0.2);
    border-left     : 3px solid var(--pur-l);
    border-radius   : 0 12px 12px 0;
    padding         : 16px 18px;
}

.fsapl-substep__head {
    display         : flex;
    gap             : 10px;
    align-items     : center;
    margin-bottom   : 8px;
}

.fsapl-substep__num {
    font-family     : 'Cormorant Garamond', serif;
    font-size       : 17px;
    font-weight     : 700;
    color           : var(--pur);
    flex-shrink     : 0;
}

.fsapl-substep__title {
    font-size       : 14px !important;
    font-weight     : 600 !important;
    color           : var(--ink) !important;
    max-width       : none !important;
}

.fsapl-substep p {
    font-size       : 14px !important;
    color           : var(--ink-m) !important;
    line-height     : 1.7 !important;
    max-width       : none !important;
}


/* ── Мини-шаги ──────────────────────────────────────────────────────────── */

.fsapl-mini-steps {
    display         : flex;
    flex-direction  : column;
    gap             : 8px;
}

.fsapl-mini-step {
    display         : flex;
    gap             : 10px;
    align-items     : flex-start;
    font-size       : 13px;
    color           : var(--ink-m);
    line-height     : 1.6;
}

.fsapl-mini-step__n {
    width           : 20px;
    height          : 20px;
    border-radius   : 50%;
    background      : var(--pur-p);
    color           : var(--pur);
    display         : flex;
    align-items     : center;
    justify-content : center;
    font-size       : 11px;
    font-weight     : 700;
    flex-shrink     : 0;
    font-family     : 'Montserrat', sans-serif;
}

.fsapl-way--best .fsapl-mini-step__n {
    background      : rgba(255,255,255,0.6);
}


/* ── Готово ─────────────────────────────────────────────────────────────── */

.fsapl-done-block {
    display         : flex;
    gap             : 16px;
    align-items     : flex-start;
    background      : var(--green-p);
    border          : 1px solid rgba(90,158,106,0.3);
    border-left     : 4px solid var(--green);
    border-radius   : 0 14px 14px 0;
    padding         : 20px 22px;
    margin-bottom   : 20px;
}

.fsapl-done-block__icon {
    width           : 42px;
    height          : 42px;
    border-radius   : 50%;
    background      : var(--green);
    color           : #fff;
    display         : flex;
    align-items     : center;
    justify-content : center;
    font-size       : 20px;
    font-weight     : 700;
    flex-shrink     : 0;
}

.fsapl-done-block__title {
    font-size       : 16px !important;
    font-weight     : 600 !important;
    color           : var(--green) !important;
    margin-bottom   : 6px !important;
    max-width       : none !important;
}

.fsapl-done-block p {
    font-size       : 14px !important;
    color           : var(--ink-m) !important;
    line-height     : 1.7 !important;
    margin-bottom   : 14px !important;
    max-width       : none !important;
}

.fsapl-back-btn {
    display         : inline-flex !important;
    align-items     : center !important;
    gap             : 6px !important;
    padding         : 10px 20px !important;
    background      : none !important;
    border          : 1px solid var(--border) !important;
    border-radius   : 8px !important;
    font-size       : 13px !important;
    font-weight     : 600 !important;
    color           : var(--ink-m) !important;
    text-decoration : none !important;
    transition      : all 0.2s !important;
    font-family     : 'Montserrat', sans-serif !important;
}

.fsapl-back-btn:hover {
    border-color    : var(--gold) !important;
    color           : var(--ink) !important;
    text-decoration : none !important;
}


/* ── Услуга ─────────────────────────────────────────────────────────────── */

.fsapl-service-block {
    display         : flex;
    gap             : 24px;
    align-items     : flex-start;
    background      : linear-gradient(145deg, #EDE5F8 0%, #E0D4F4 100%);
    border          : 1px solid rgba(107,79,160,0.3);
    border-radius   : 16px;
    padding         : 24px;
    margin-bottom   : 20px;
}

@media (max-width: 600px) {
    .fsapl-service-block {
        flex-direction  : column;
    }
}

.fsapl-service-block__text {
    flex            : 1;
}

.fsapl-service-block__text p {
    font-size       : 14px !important;
    color           : var(--ink-m) !important;
    line-height     : 1.7 !important;
    margin-bottom   : 12px !important;
    max-width       : none !important;
}

.fsapl-service-list {
    margin          : 0 0 10px;
    padding         : 0;
    list-style      : none;
    display         : flex;
    flex-direction  : column;
    gap             : 5px;
}

.fsapl-service-list li {
    font-size       : 13px;
    color           : var(--ink-m);
    padding-left    : 16px;
    position        : relative;
    line-height     : 1.6;
}

.fsapl-service-list li::before {
    content         : '✦';
    position        : absolute;
    left            : 0;
    color           : var(--gold);
    font-size       : 9px;
    top             : 5px;
}

.fsapl-service-note {
    font-size       : 12px !important;
    color           : var(--ink-l) !important;
    font-style      : italic !important;
    max-width       : none !important;
}

.fsapl-service-card {
    background      : var(--white);
    border          : 1px solid rgba(107,79,160,0.25);
    border-radius   : 14px;
    padding         : 22px 20px;
    text-align      : center;
    min-width       : 160px;
    flex-shrink     : 0;
}

.fsapl-service-card__old {
    font-size       : 13px;
    color           : var(--ink-l);
    text-decoration : line-through;
    margin-bottom   : 4px;
}

.fsapl-service-card__price {
    font-family     : 'Cormorant Garamond', Georgia, serif;
    font-size       : 30px;
    font-weight     : 700;
    color           : var(--pur-d);
    margin-bottom   : 16px;
    line-height     : 1;
}

.fsapl-service-card__btn {
    display         : block !important;
    padding         : 11px 18px !important;
    background      : var(--pur) !important;
    color           : #fff !important;
    border-radius   : 10px !important;
    font-size       : 13px !important;
    font-weight     : 600 !important;
    text-decoration : none !important;
    text-align      : center !important;
    transition      : background 0.2s !important;
    font-family     : 'Montserrat', sans-serif !important;
}

.fsapl-service-card__btn:hover {
    background      : var(--pur-d) !important;
    text-decoration : none !important;
    color           : #fff !important;
}


/* ── Части (part) ──────────────────────────────────────────────────────── */

.fsapl-part {
    background      : var(--white);
    border          : 1px solid var(--border);
    border-radius   : 16px;
    padding         : 28px 5px;
    margin-bottom   : 24px;
}

.fsapl-part__header {
    display         : flex;
    gap             : 18px;
    align-items     : flex-start;
    margin-bottom   : 18px;
}

.fsapl-part__num {
    width           : 52px;
    height          : 52px;
    border-radius   : 50%;
    background      : linear-gradient(145deg, #9A7840 0%, #C9A96E 100%);
    color           : #fff;
    display         : flex;
    align-items     : center;
    justify-content : center;
    font-size       : 22px;
    font-weight     : 700;
    flex-shrink     : 0;
    font-family     : 'Cormorant Garamond', Georgia, serif;
    box-shadow      : 0 4px 14px rgba(201,169,110,0.35);
}

/* ── Навигация по частям ────────────────────────────────────────────────── */

.fsapl-parts-nav {
    display         : flex;
    align-items     : center;
    gap             : 8px;
    margin-bottom   : 24px;
    flex-wrap       : wrap;
}

.fsapl-parts-nav__item {
    display         : flex;
    align-items     : center;
    gap             : 8px;
    padding         : 10px 16px;
    background      : var(--white);
    border          : 1px solid var(--border);
    border-radius   : 10px;
    text-decoration : none !important;
    transition      : all 0.2s;
    color           : var(--ink-m);
}

.fsapl-parts-nav__item:hover {
    border-color    : var(--gold);
    color           : var(--ink);
    text-decoration : none !important;
}

.fsapl-parts-nav__num {
    width           : 26px;
    height          : 26px;
    border-radius   : 50%;
    background      : var(--gold-p);
    border          : 1px solid var(--gold-l);
    color           : var(--gold-d);
    display         : flex;
    align-items     : center;
    justify-content : center;
    font-size       : 13px;
    font-weight     : 700;
    flex-shrink     : 0;
    font-family     : 'Cormorant Garamond', Georgia, serif;
}

.fsapl-parts-nav__label {
    font-size       : 13px;
    font-weight     : 500;
}

.fsapl-parts-nav__arrow {
    color           : var(--gold);
    font-size       : 16px;
    flex-shrink     : 0;
}

@media (max-width: 560px) {
    .fsapl-parts-nav__arrow { display: none; }
    .fsapl-parts-nav        { gap: 6px; }
    .fsapl-parts-nav__item  { padding: 8px 12px; }
}

/* ── Инфо-карточки ──────────────────────────────────────────────────────── */

.fsapl-info-cards {
    display                 : grid;
    grid-template-columns   : repeat(2, 1fr);
    gap                     : 14px;
    margin-bottom           : 20px;
}

@media (max-width: 560px) {
    .fsapl-info-cards { grid-template-columns: 1fr; }
}

.fsapl-info-card {
    background      : var(--cream);
    border          : 1px solid var(--border);
    border-top      : 3px solid var(--gold);
    border-radius   : 0 0 12px 12px;
    padding         : 16px 14px;
}

.fsapl-info-card__title {
    font-size       : 13px !important;
    font-weight     : 600 !important;
    color           : var(--ink) !important;
    margin-bottom   : 8px !important;
}

.fsapl-info-card p {
    font-size       : 13px !important;
    color           : var(--ink-m) !important;
    line-height     : 1.65 !important;
    margin-bottom   : 0 !important;
}

/* ── Список ─────────────────────────────────────────────────────────────── */

.fsapl-list {
    margin          : 12px 0 0;
    padding         : 0 0 0 4px;
    list-style      : none;
    display         : flex;
    flex-direction  : column;
    gap             : 8px;
}

.fsapl-list li {
    font-size       : 14px !important;
    color           : var(--ink-m) !important;
    padding-left    : 18px;
    position        : relative;
    line-height     : 1.65 !important;
}

.fsapl-list li::before {
    content         : '◆';
    position        : absolute;
    left            : 0;
    color           : var(--gold);
    font-size       : 7px;
    top             : 7px;
}

/* ── Иллюстрация ─────────────────────────────────────────────────────────  */

.fsapl-illustration {
    margin          : 22px 0;
    border-radius   : 12px;
    overflow        : hidden;
    border          : 1px solid var(--border);
    background      : #FDFAF6;
    padding         : 16px;
    cursor          : zoom-in;
    transition      : opacity 0.15s;
}

.fsapl-illustration:hover {
    opacity         : 0.9;
}

/* ── Чекпоинт "часть готова" ─────────────────────────────────────────────  */

.fsapl-done-inline {
    margin-top      : 20px;
    padding         : 14px 18px;
    background      : var(--green-p);
    border          : 1px solid rgba(90,158,106,0.25);
    border-left     : 4px solid var(--green);
    border-radius   : 0 10px 10px 0;
    font-size       : 14px !important;
    font-weight     : 600 !important;
    color           : var(--green) !important;
}

/* ── Кнопка скачать ─────────────────────────────────────────────────────── */

.fsapl-download-btn {
    display         : inline-flex !important;
    align-items     : center !important;
    gap             : 6px !important;
    padding         : 10px 18px !important;
    background      : var(--pur) !important;
    color           : #fff !important;
    border-radius   : 8px !important;
    font-size       : 13px !important;
    font-weight     : 600 !important;
    text-decoration : none !important;
    transition      : background 0.2s !important;
    font-family     : 'Montserrat', sans-serif !important;
}

.fsapl-download-btn:hover {
    background      : var(--pur-d) !important;
    color           : #fff !important;
    text-decoration : none !important;
}


/* ── Две иллюстрации в ряд ───────────────────────────────────────────────  */

.fsapl-illustrations-row {
    display                 : grid;
    grid-template-columns   : 1fr 1fr;
    gap                     : 14px;
    margin                  : 22px 0;
}

.fsapl-illustrations-row .fsapl-illustration {
    margin                  : 0;
}

@media (max-width: 620px) {
    .fsapl-illustrations-row {
        grid-template-columns : 1fr;
    }
}


/* ── Подпись под иллюстрацией ────────────────────────────────────────────  */

.fsapl-illustration__caption {
    font-size       : 13px !important;
    color           : var(--ink-m) !important;
    line-height     : 1.6 !important;
    text-align      : center !important;
    padding         : 10px 14px 4px !important;
    margin          : 0 !important;
}

.fsapl-illustration__caption--red {
    color           : #CC3333 !important;
    font-weight     : 600 !important;
    padding-top     : 2px !important;
}

.fsapl-illustration__caption--hint {
    font-size       : 11px !important;
    color           : var(--ink-l) !important;
    font-style      : italic !important;
    opacity         : 0.7;
    padding-top     : 2px !important;
}


/* ── Уменьшить нижний отступ у иллюстрации ──────────────────────────────  */

.fsapl-illustrations-row .fsapl-illustration,
.fsapl-illustration {
    margin-bottom   : 0 !important;
}


/* ── Скрыть "Как пользоваться" на странице плана ────────────────────────  */

.fsapl-map-wrap .fsamap-howto,
.fsapl-map-wrap .fsa-howto,
.fsapl-map-wrap .how-to-block,
.fsapl-map-wrap > div > .fsamap__howto {
    display         : none !important;
}


/* ── Скрыть пустой заголовок страницы ───────────────────────────────────  */

.fsa-plan-fullwidth .entry-title:empty,
.fsa-plan-fullwidth .page-title:empty,
.fsa-plan-fullwidth h1.entry-title:empty,
.fsa-plan-fullwidth h1.page-title:empty,
.fsa-plan-fullwidth .entry-header:has(h1:empty),
.fsa-plan-fullwidth .page-header:has(h1:empty) {
    display         : none !important;
    margin          : 0    !important;
    padding         : 0    !important;
}

.fsa-topbar__title,
.fsa-topbar__sub {
    color: #ffffff;
}