.site-footer { min-height:626px; color:#171717; background:#f7f7f7; font-family:Arial,"Noto Sans SC","Microsoft YaHei",sans-serif; }
.footer-shell { width:min(1600px,calc(100% - clamp(40px,4.76vw,80px))); margin:0 auto; }
.footer-top { display:flex; align-items:center; justify-content:space-between; height:163px; padding-top:39px; padding-bottom:25px; border-bottom:1px solid #e4e4e4; color:var(--red,#e51e2a); }
.footer-brand { display:inline-flex; align-items:center; gap:13px; width:max-content; color:inherit; text-decoration:none; }
.site-footer .brand-mark { display:block; width:58px; height:58px; flex:0 0 58px; }
.site-footer .brand-name { display:flex; flex-direction:column; font-size:35px; font-weight:800; line-height:1; }
.site-footer .brand-name small { margin-top:7px; font-size:11px; font-weight:600; letter-spacing:2px; }
.footer-social { display:flex; align-items:center; gap:20px; color:#707070; }
.footer-social > span { font-size:15px; white-space:nowrap; }
.footer-social-links { display:flex; align-items:center; gap:10px; }
.footer-social-links a { display:grid; width:44px; height:44px; place-items:center; border-radius:50%; color:#929292; background:#e9e9e9; transition:color .2s ease,background-color .2s ease,transform .2s ease; }
.footer-social-links a:hover,.footer-social-links a:focus-visible { color:#fff; background:var(--red,#e51e2a); transform:translateY(-2px); }
.footer-social-links a:focus-visible { outline:2px solid var(--red,#e51e2a); outline-offset:3px; }
.footer-social-links svg { display:block; width:20px; height:20px; fill:currentColor; }
.footer-social-links a[aria-label="TikTok"] svg { width:19px; height:19px; }
.footer-social-links a[aria-label="YouTube"] svg { width:22px; height:22px; }
.footer-directory { display:grid; grid-template-columns:minmax(140px,1.35fr) minmax(155px,1.45fr) repeat(5,minmax(75px,.8fr)) minmax(260px,2fr); column-gap:clamp(14px,1.5vw,24px); min-height:335px; padding:60px 0 38px; border-bottom:1px solid #e4e4e4; }
.footer-column { display:flex; min-width:0; flex-direction:column; align-items:flex-start; gap:0; }
.footer-column h3 { margin:0 0 15px; font-size:18px; line-height:27px; }
.footer-column h3 .footer-heading-link { display:inline; margin:0; padding:0; color:#171717; font:inherit; line-height:inherit; }
.footer-column h3 .footer-heading-link::before { content:none; }
.footer-column h3 .footer-heading-link:hover,.footer-column h3 .footer-heading-link:focus-visible { color:var(--red,#e51e2a); }
.footer-column a,.footer-column p { margin:0; padding:5px 0; color:#666; font-size:14px; line-height:21px; text-decoration:none; }
.footer-column a::before { margin-right:7px; color:#bbb; content:"·"; }
.footer-contact { width:max-content; max-width:100%; margin-left:0; padding-left:0; justify-self:end; }
.footer-contact p,.footer-contact a { display:flex; gap:10px; }
.footer-contact a::before { content:none; }
.footer-contact p span,.footer-contact a span { flex:0 0 18px; color:#999; font-size:17px; }
.footer-bottom { display:flex; min-height:90px; align-items:center; justify-content:space-between; color:#888; font-size:14px; }
.footer-bottom p { margin:0; }

@media (min-width:1500px) {
    .site-footer { min-height:554px; }
    .footer-top { height:154px; align-items:flex-start; padding-top:80px; padding-bottom:0; }
    .footer-directory { grid-template-columns:minmax(170px,1.35fr) minmax(190px,1.5fr) repeat(5,minmax(100px,.85fr)) minmax(320px,2.1fr); column-gap:clamp(20px,1.45vw,28px); min-height:299px; height:299px; padding:65px 0 25px; }
    .footer-bottom { min-height:102px; align-items:flex-start; padding:46px 0 0; }
}

@media (max-width:1150px) {
    .footer-shell { width:calc(100% - 38px); }
    .site-footer { min-height:510px; }
    .footer-top { align-items:flex-start; padding-top:55px; }
    .footer-directory { grid-template-columns:repeat(4,1fr); gap:34px 24px; padding-top:45px; }
    .footer-contact { width:auto; grid-column:span 2; margin-left:0; padding-left:0; justify-self:start; }
    .footer-bottom { min-height:100px; }
}

@media (max-width:430px) {
    .footer-top { height:auto; min-height:218px; flex-direction:column; align-items:flex-start; justify-content:center; gap:27px; padding-top:30px; padding-bottom:30px; }
    .footer-social { width:100%; gap:14px; }
    .footer-social-links { gap:8px; }
    .footer-social-links a { width:42px; height:42px; }
    .footer-directory { grid-template-columns:1fr 1fr; }
    .footer-contact { grid-column:1/-1; }
    .site-footer .brand-mark { margin-left:0; }
}
