.public-page .public-footer{max-width:none;margin:56px 0 0;padding:0;border:0;border-top:3px solid transparent;border-image:linear-gradient(90deg,#ffce32 0 28%,#18232f 28% 74%,#e5b927 74% 88%,#101820 88%) 1;background:#f7f8f9;color:#59636f;font-size:14px;text-align:left}
.public-footer-inner{max-width:1240px;margin:auto;padding:40px 24px 24px}
.public-footer-grid{display:grid;grid-template-columns:1.15fr .9fr 1fr 1.15fr;gap:32px}
.public-footer-grid>section{min-width:0}
.public-footer h2{margin:0 0 16px;color:#101820;font-size:16px;line-height:1.4}
.public-footer p{margin:0 0 14px;line-height:1.8;overflow-wrap:anywhere}
.public-footer .site-logo{width:180px;max-width:100%;height:54px;margin-bottom:18px;object-fit:contain;object-position:left center}
.public-footer .public-footer-name{max-width:260px;color:#18232f;font-size:13px;font-weight:750;letter-spacing:.04em;line-height:1.6}
.public-footer ul{list-style:none;margin:0;padding:0}
.public-footer li{margin:0 0 6px;padding:0}
.public-footer a{overflow-wrap:anywhere;text-decoration:none}
.public-footer a:hover{text-decoration:underline;text-underline-offset:4px}
.public-footer a:focus-visible{outline:2px solid #b68a00;outline-offset:4px}
.public-footer-contact li{margin-bottom:18px}
.public-footer-contact span{display:block;font-size:12px;color:#59636f}
.public-footer-contact a{color:#18232f;display:inline-block;padding-block:4px}
.public-footer nav{display:block}
.public-footer-links a{display:inline-block;padding-block:3px;line-height:1.6}
.public-footer-bottom{display:flex;justify-content:space-between;flex-wrap:wrap;gap:8px 24px;border-top:1px solid #e1e4e8;margin-top:28px;padding-top:20px;font-size:12px}
@media(max-width:1000px){.public-footer-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:28px}}
@media(max-width:700px){
 .public-page .public-footer{margin-top:36px}
 .public-footer-inner{padding:28px 18px 24px}
 .public-footer-grid{grid-template-columns:minmax(0,1fr);gap:0}
 .public-footer-grid>section+section{border-top:1px solid #e1e4e8;margin-top:20px;padding-top:20px}
 .public-footer h2{margin-bottom:12px}
 .public-footer-links{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px 16px}
 .public-footer-links li{min-width:0;margin:0}
 .public-footer-links a{font-size:13px;padding-block:5px}
 .public-footer-bottom{flex-direction:column;margin-top:22px}
}
@media print{.public-page .public-footer{break-inside:avoid}}
.public-page header .brand{gap:10px;min-width:0;flex-shrink:1}
.public-page header .brand .site-logo{width:64px;height:54px;flex:0 0 64px}
.public-page header .site-brand-label{max-width:270px;font-size:13px;font-weight:750;line-height:1.5;letter-spacing:.025em;color:#18232f}
.public-footer .public-footer-brand{display:flex;align-items:center;gap:12px;margin-bottom:18px}
.public-footer .public-footer-brand .site-logo{width:64px;height:54px;flex:0 0 64px;margin:0}
.public-footer .public-footer-brand .public-footer-name{min-width:0;font-size:12px;line-height:1.6}
@media(max-width:700px){
 .public-page header .brand{flex:1 1 0;gap:7px}
 .public-page header .brand .site-logo{width:44px;height:44px;flex-basis:44px}
 .public-page header .site-brand-label{font-size:10px;line-height:1.45;letter-spacing:0}
}

/* Keep the footer flush with the page bottom; reserve contact space inside it. */
.public-page:has(>.public-footer){padding-bottom:0}
.public-page .public-footer-inner{padding-bottom:calc(var(--contact-dock-space,134px) + env(safe-area-inset-bottom,0px) + 12px)}
@media print{.public-page .public-footer-inner{padding-bottom:24px}}