/* One page-end rhythm; the actual fixed navigation height is measured by the companion script. */
body.violin-footer-layout {
    min-height: 100vh;
    padding-bottom: var(--violin-footer-clearance, 112px) !important;
}
/* Keep the authored detail strip immediately above the navigation, with one 19px gap. */
html body.violin-footer-layout.violin-detail-action-footer > :is(.bottom-toolbar,.action-bar) {
    margin-bottom: 0 !important;
}
html body.violin-footer-layout.violin-detail-action-footer > .footer.violin-site-footer {
    margin-bottom: 16px !important;
}
html body.violin-footer-layout > .footer.violin-site-footer {
    box-sizing: border-box;
    width: min(1180px, calc(100vw - 32px)) !important;
    max-width: 1180px !important;
    margin: var(--violin-footer-top-gap, 16px) auto 0 !important;
    position: relative;
    left: 50%;
    margin-left: 0 !important;
    margin-right: 0 !important;
    transform: translateX(-50%);
    padding: 16px !important;
    border-radius: 14px;
    background: #fff;
    text-align: center;
    line-height: 1.8;
    color: #594d44;
    box-shadow: 0 2px 8px rgba(0,0,0,.04);
    overflow-wrap: anywhere;
}
html body.violin-footer-layout > .bottom-nav {
    left: 50% !important;
    right: auto !important;
    bottom: calc(12px + env(safe-area-inset-bottom, 0px)) !important;
    width: min(1180px, calc(100vw - 32px)) !important;
    box-sizing: border-box;
    transform: translateX(-50%);
}
html body.violin-footer-layout .violin-site-footer .site-footer-phone { margin: 0 0 10px; font-size: 14px; font-weight: 600; }
html body.violin-footer-layout .violin-site-footer .site-footer-qr { margin: 0 0 10px; }
html body.violin-footer-layout .violin-site-footer .site-footer-qr img { display: block; width: 76px; height: 76px; object-fit: contain; border: 1px solid #eee; border-radius: 8px; margin: 0 auto; }
html body.violin-footer-layout .violin-site-footer .site-footer-qr p { margin: 4px 0 0; font-size: 11px; color: #8b7a6e; }
html body.violin-footer-layout .violin-site-footer .site-footer-record { margin: 4px 0 0; font-size: 11px; }
html body.violin-footer-layout .violin-site-footer .site-footer-record img { width: 16px; height: 16px; margin: 0 4px 0 0; vertical-align: -3px; object-fit: contain; border: 0; border-radius: 0; }
html body.violin-footer-layout .violin-site-footer a { color: inherit; text-decoration: none; }
html body.violin-footer-layout .violin-site-footer a:focus-visible { outline: 2px solid #8b3a3a; outline-offset: 3px; }
html body.violin-footer-layout > .footer.violin-site-footer[hidden] { display: none !important; }
@media (min-width: 900px) {
    html body.violin-footer-layout > .footer.violin-site-footer,
    html body.violin-footer-layout > .bottom-nav { width: min(1180px, calc(100vw - 48px)) !important; }
    html body.violin-footer-layout > .bottom-nav { bottom: calc(18px + env(safe-area-inset-bottom, 0px)) !important; }
}
