/* «Позвоните нам ▾» (inc/callbox.php, assets/js/callbox.js). Палитра — брендбук: ночной #1b201d, дымчато-белый #f5f2ed,
   акцент #aecab9, кнопка #62796c. Кружок «М» повторяет знак метро: цвет обводки — линия станции. */
.callbox{position:relative;display:flex;align-items:center;align-self:stretch}
.callbox__toggle{display:flex;align-items:center;gap:11px;padding:6px 4px;color:var(--brand-paper);text-align:left;border-radius:10px}
.callbox__toggle>.icon{width:34px;height:34px;padding:8px;border-radius:50%;border:1px solid rgba(174,202,185,.45);color:var(--brand-accent);flex:none;transition:background .2s,border-color .2s}
.callbox__toggle:hover>.icon,.callbox.is-open .callbox__toggle>.icon{background:rgba(174,202,185,.14);border-color:var(--brand-accent)}
.callbox__label{display:grid;gap:1px;line-height:1.25}
.callbox__label b{font-size:15px;font-weight:600;white-space:nowrap}
.callbox__label small{font-size:12px;color:#aeb7b1;white-space:nowrap}
.callbox__short{display:none}
.callbox__chevron{width:8px;height:8px;margin:-4px 2px 0 2px;border-right:1.6px solid var(--brand-accent);border-bottom:1.6px solid var(--brand-accent);transform:rotate(45deg);transition:transform .2s,margin .2s}
.callbox.is-open .callbox__chevron{transform:rotate(-135deg);margin-top:4px}
.callbox__toggle:focus-visible{outline:2px solid var(--brand-focus);outline-offset:3px}

.callbox__panel{position:absolute;z-index:60;top:calc(100% + 10px);right:0;width:430px;display:grid;gap:10px;padding:18px;border-radius:18px;background:var(--brand-paper);color:var(--ink);box-shadow:0 22px 60px rgba(10,14,12,.36);animation:cb-in .18s ease-out}
@keyframes cb-in{from{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:none}}
.cb-head{display:flex;align-items:baseline;gap:10px;padding:0 4px}
.cb-head__city{font-family:var(--font-display);font-size:22px;letter-spacing:.02em;word-spacing:.12em;color:var(--ink)}
.cb-head__meta{font-size:13px;color:var(--muted)}
.cb-close{display:none;margin-left:auto;width:36px;height:36px;border-radius:50%;background:rgba(40,40,40,.06);place-items:center}
.cb-close .icon{width:18px;height:18px}
.cb-hint{padding:0 4px;font-size:13px;color:var(--brand-green)}
.cb-list{display:grid;gap:2px}
.cb-row{display:grid;grid-template-columns:26px minmax(0,1fr) auto;align-items:center;gap:12px;padding:10px 12px;border-radius:12px;transition:background .15s}
.cb-row:hover,.cb-row:focus-visible{background:#fff}
.cb-row:focus-visible{outline:2px solid var(--brand-button);outline-offset:-2px}
.cb-row__place{display:grid;min-width:0}
.cb-row__place b{font-size:15px;font-weight:600;color:var(--ink)}
.cb-row__place small{font-size:12.5px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.cb-row__phone{font-size:15px;font-weight:600;font-variant-numeric:tabular-nums;white-space:nowrap;color:var(--brand-green)}
.cb-metro{display:grid;place-items:center;width:24px;height:24px;border-radius:50%;border:3px solid var(--line);background:#fff;color:var(--line);font:700 11px/1 var(--font-text)}
.cb-pin{display:grid;place-items:center;width:24px;height:24px;color:var(--brand-button)}
.cb-pin .icon{width:19px;height:19px}
.cb-foot{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 4px 0;border-top:1px solid var(--line)}
.cb-foot__map{display:inline-flex;align-items:center;gap:7px;font-size:14px;font-weight:600;color:var(--brand-green)}
.cb-foot__map .icon{width:17px;height:17px}
.cb-foot__map:hover{text-decoration:underline;text-underline-offset:3px}
.cb-foot__msg{display:flex;gap:6px}
.cb-foot__msg button{display:inline-flex;align-items:center;gap:6px;padding:7px 11px;border-radius:8px;border:1px solid #d1d8d1;background:#fff;font-size:13px;font-weight:600}
.cb-foot__msg button:hover{border-color:var(--brand-button)}
.cb-foot__msg .icon{width:16px;height:16px}

/* Панель, открытая не из шапки: всплывает у кнопки (callbox.js ставит left/top) */
.callbox__panel--float{position:fixed;right:auto;z-index:70;max-height:calc(100dvh - 32px);overflow:auto}

/* «Позвоните нам» в баннере «Остались вопросы?» (template-parts/sections/contact.php) */
.contact-action--callbox{text-align:left}
.contact-action--callbox .callbox__chevron{border-color:var(--brand-button);margin-left:4px}
.contact-action--callbox.is-open .callbox__chevron{transform:rotate(-135deg);margin-top:4px}

/* Кнопка в подвале (footer.php) — открывает тот же список */
.footer__grid>div>button.footer__call{display:inline-flex;align-items:center;gap:8px;margin:6px 0 9px;font-size:var(--fs-md,15px);font-weight:600;color:var(--brand-paper)}
.footer__call .icon{width:18px;height:18px;color:var(--brand-accent)}
.footer__grid>div>button.footer__call:hover{color:var(--brand-accent)}

/* Форма «Перезвоним» (template-parts/dialogs.php) */
.callback-dialog{width:460px}
.callback-dialog .dialog__header{margin-bottom:14px}
.callback-point{display:grid;grid-template-columns:26px minmax(0,1fr);gap:12px;align-items:center;padding:14px;border-radius:12px;background:var(--brand-paper);margin-bottom:18px}
.callback-point b{display:block;font-size:15px;font-weight:600;color:var(--ink)}
.callback-point small{display:block;font-size:13px;color:var(--muted)}
.callback-dialog .field{margin-bottom:12px}
.callback-dialog .btn-full{margin-top:14px}
.callback-self{margin-top:14px;font-size:13px;color:var(--muted)}
.callback-self b{color:var(--ink);font-variant-numeric:tabular-nums;white-space:nowrap}
.callback-error{margin-top:10px;font-size:13px;color:#a52e2e}
.callback-error:empty{display:none}

/* Телефон: лист снизу */
@media(max-width:767px){
	.callbox{margin-left:auto}
	.callbox__long,.callbox__label small{display:none}
	.callbox__short{display:inline}
	.callbox__toggle{gap:8px;padding:4px}
	.callbox__toggle>.icon{width:30px;height:30px;padding:7px}
	.callbox__label b{font-size:13px}
	.callbox__panel{position:fixed;inset:auto 0 0 0;top:auto;width:auto;max-height:86dvh;overflow:auto;border-radius:22px 22px 0 0;padding:16px 16px calc(16px + env(safe-area-inset-bottom));animation:cb-up .22s ease-out}
	@keyframes cb-up{from{transform:translateY(40px);opacity:.4}to{transform:none;opacity:1}}
	.cb-head{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:0 10px}
	.cb-head__city{white-space:nowrap}
	.cb-close{display:grid;grid-row:1/3;grid-column:2}
	body.callbox-sheet{overflow:hidden}
	body.callbox-sheet .header{z-index:80}
	.callbox.is-open:before{content:"";position:fixed;inset:0;z-index:59;background:rgba(15,19,17,.55)}
	.cb-row{padding:12px 8px}
	.cb-row__phone{font-size:14px}
	.cb-foot{flex-wrap:wrap}
}
@media(prefers-reduced-motion:reduce){.callbox__panel,.callbox__chevron{animation:none!important;transition:none!important}}

/* Узкие телефоны (до 440px): у кнопки звонка только значок, иначе кнопка меню уезжает за край (02.10.2026). */
@media(max-width:440px){.callbox__label,.callbox__chevron{display:none}.callbox__toggle{padding:4px 2px}}
