#app-footer-root[hidden] { display:none; }
.app-footer { width:100%; margin:42px 0 0; background:#fffaf6; }
.app-footer__inner { width:min(100%,680px); box-sizing:border-box; margin:0 auto; padding:0 20px calc(18px + var(--bottom-nav-total-height)); }
.app-footer__divider { height:1px; background:rgba(29,29,31,.11); }
.app-footer__columns { display:grid; grid-template-columns:minmax(0,.86fr) minmax(0,1.32fr) minmax(0,.94fr); column-gap:10px; padding:18px 0; }
.app-footer__column { display:grid; min-width:0; align-content:start; gap:8px; }
.app-footer__column h2 { margin:0 0 2px; color:var(--text-primary); font-family:var(--font-sans); font-size:13px; font-weight:var(--font-weight-semibold); line-height:1.2; }
.app-footer__column a { color:#57575c; font-family:var(--font-sans); font-size:12px; font-weight:var(--font-weight-regular); line-height:1.35; text-decoration:none; overflow-wrap:anywhere; }
.app-footer__contact { display:block; min-width:0; font-variant-numeric:tabular-nums; white-space:nowrap; }
.app-footer__social { display:grid; min-width:0; grid-template-columns:16px minmax(0,1fr); align-items:start; column-gap:4px; }
.app-footer__social svg { display:block; width:16px; height:16px; margin-top:1px; fill:none; stroke:currentColor; stroke-linecap:round; stroke-linejoin:round; stroke-width:1.8; }
.app-footer__social--instagram svg { color:#D62976; }
.app-footer__social--facebook svg { color:#1877F2; }
.app-footer__social--viber svg { color:#7360F2; }
.app-footer__social--telegram svg { color:#229ED9; }
.app-footer__social--facebook path { fill:currentColor; stroke:none; }
.app-footer__column a:focus-visible { outline:2px solid var(--orange); outline-offset:2px; border-radius:2px; }
.app-footer__copyright { display:grid; gap:2px; margin:0; padding-top:16px; color:#7b7370; font-family:var(--font-sans); font-size:12px; font-weight:var(--font-weight-regular); line-height:1.35; text-align:center; }
/* Ordinary public screens finish at their real content height. The persistent
   footer owns the one shared 42px section gap and its own bottom-nav safety. */
body.app-has-footer .screen,
body.app-has-footer .contacts-screen,
body.app-has-footer .process-screen,
body.app-has-footer .reviews-screen { min-height:0; }
body.app-has-footer .home-screen { min-height:100svh; }
body.app-has-footer .screen-content,
body.app-has-footer .info-page,
body.app-has-footer .article-page,
body.app-has-footer .contacts-page,
body.app-has-footer .process-page,
body.app-has-footer .reviews-page,
body.app-has-footer .about-page { padding-bottom:0; }
@media (max-width:350px) { .app-footer__columns { column-gap:6px; } .app-footer__column { gap:7px; } .app-footer__column h2 { font-size:12.5px; } .app-footer__column a { font-size:11.5px; line-height:1.32; } .app-footer__social { grid-template-columns:15px minmax(0,1fr); column-gap:3px; } .app-footer__social svg { width:15px; height:15px; } }
