/* 页脚与 Newsletter；依赖共享组件，并由全站 Footer 消费。 */

/* WordPress 顶层 blockGap 会给页脚模板部件增加上边距，避免询盘区与页脚之间露出页面背景。 */
/*
   News 区与页脚

   首页 News、归档与页脚用固定色值（#efe6dd 底 / #1b1b18 墨 / #171b1f / #eef2f6）而非全站色
   token，改配色要三处同步。 */

.wp-site-blocks > footer.wp-block-template-part:has(> .pattrix-footer) { margin-block-start: 0; }

.pattrix-footer { box-sizing: border-box; padding: clamp(64px, 7vw, 104px) var(--pattrix-layout-gutter) 24px; color: #171b1f; background: #eef2f6; border-top: 1px solid #dce3e9; }
.pattrix-footer :where(a, button, input, select, textarea, summary):focus-visible { outline-color: var(--pattrix-color-interaction); }
/*
   页脚栅格 */

.pattrix-footer-grid { display: grid; grid-template-columns: minmax(270px, 1.35fr) minmax(150px, .7fr) minmax(150px, .7fr) minmax(280px, 1.2fr); gap: clamp(32px, 5vw, 88px); width: min(100%, var(--pattrix-layout-wide)); margin: 0 auto; }
.pattrix-footer-brand > p { max-width: 320px; margin: 20px 0 0; color: #55616b; font-size: 14px; line-height: 1.65; }
.pattrix-footer-contact-layout { display: grid; grid-template-columns: minmax(0, 1fr) 128px; align-items: center; gap: 24px; margin-top: 28px; }
.pattrix-footer-contact-details { display: flex; flex-direction: column; align-items: stretch; gap: 13px; min-width: 0; }
.pattrix-footer-contact-row { display: grid; grid-template-columns: 20px minmax(0, 1fr); align-items: start; gap: 11px; min-width: 0; }
.pattrix-footer-contact-row address, .pattrix-footer-contact-details a { max-width: 100%; margin: 0; color: #34414b; font-size: 13px; font-style: normal; line-height: 1.5; overflow-wrap: anywhere; text-decoration: none; }
.pattrix-footer-contact-icon { display: block; width: 19px; height: 19px; margin-top: 1px; background: currentColor; -webkit-mask-position: center; mask-position: center; -webkit-mask-repeat: no-repeat; mask-repeat: no-repeat; -webkit-mask-size: contain; mask-size: contain; }
.pattrix-footer-contact-row--address .pattrix-footer-contact-icon { -webkit-mask-image: url("../icons/lucide/map-pin.svg"); mask-image: url("../icons/lucide/map-pin.svg"); }
.pattrix-footer-contact-row--phone .pattrix-footer-contact-icon { -webkit-mask-image: url("../icons/lucide/phone-call.svg"); mask-image: url("../icons/lucide/phone-call.svg"); }
.pattrix-footer-contact-row--email .pattrix-footer-contact-icon { -webkit-mask-image: url("../icons/lucide/mail.svg"); mask-image: url("../icons/lucide/mail.svg"); }
.pattrix-footer-contact-details a:hover { color: var(--pattrix-color-interaction); text-decoration: underline; text-underline-offset: 3px; }
.pattrix-footer-qr { display: flex; align-items: center; justify-content: flex-end; width: 128px; min-height: 116px; padding-left: 22px; border-left: 1px solid #d4dce3; }
.pattrix-footer-qr-image { display: block; box-sizing: border-box; width: 106px; height: 106px; padding: 5px; object-fit: cover; background: #fff; border: 1px solid #d4dce3; }
.pattrix-footer-socials { display: flex; flex-wrap: wrap; align-items: center; gap: 14px; margin-top: 24px; }
.pattrix-footer-socials-label { color: #34414b; font-size: 13px; }
.pattrix-footer-social-list { display: flex; gap: 9px; }
.pattrix-footer-social { display: inline-flex; align-items: center; justify-content: center; width: 28px; height: 28px; color: var(--pattrix-color-text-secondary); text-decoration: none; transition: color var(--pattrix-duration-fast) var(--pattrix-ease-out); }
.pattrix-footer-social-icon { display: block; width: 17px; height: 17px; background: currentColor; -webkit-mask-position: center; mask-position: center; -webkit-mask-repeat: no-repeat; mask-repeat: no-repeat; -webkit-mask-size: contain; mask-size: contain; }
.pattrix-footer-social--linkedin .pattrix-footer-social-icon { -webkit-mask-image: url("../icons/simple-icons/linkedin.svg"); mask-image: url("../icons/simple-icons/linkedin.svg"); }
.pattrix-footer-social--facebook .pattrix-footer-social-icon { -webkit-mask-image: url("../icons/simple-icons/facebook.svg"); mask-image: url("../icons/simple-icons/facebook.svg"); }
.pattrix-footer-social--instagram .pattrix-footer-social-icon { -webkit-mask-image: url("../icons/simple-icons/instagram.svg"); mask-image: url("../icons/simple-icons/instagram.svg"); }
.pattrix-footer-social--linkedin:hover { color: #0a66c2; }
.pattrix-footer-social--facebook:hover { color: #1877f2; }
.pattrix-footer-social--instagram:hover { color: #e4405f; }
.pattrix-footer-social:is(a):focus-visible { outline: 2px solid var(--pattrix-color-focus, var(--pattrix-color-interaction)); outline-offset: 3px; }
.pattrix-footer-social.is-disabled { cursor: default; }
.pattrix-footer-column { display: flex; flex-direction: column; align-items: flex-start; gap: 13px; min-width: 0; }
.pattrix-footer .pattrix-footer-label { margin: 0 0 14px; color: #171b1f; font-size: 14px; font-weight: 700; letter-spacing: 0; text-transform: none; }
.pattrix-footer-column > a, .pattrix-footer-column > span, .pattrix-footer-quote-link { color: #34414b; font-size: 14px; line-height: 1.45; text-decoration: none; }
.pattrix-footer-column > a { position: relative; display: inline-flex; width: fit-content; padding-bottom: 4px; }
.pattrix-footer-column > .is-unavailable, .pattrix-footer-newsletter > .is-unavailable { color: var(--pattrix-color-text-secondary); }
.pattrix-footer-newsletter { min-width: 0; }
.pattrix-footer-newsletter-intro { max-width: 360px; margin: 0 0 20px; color: #55616b; font-size: 14px; line-height: 1.55; }
.pattrix-newsletter-form { position: relative; width: 100%; max-width: 420px; }
.pattrix-newsletter-control { display: grid; grid-template-columns: minmax(0, 1fr) auto; min-height: 52px; background: #fff; border: 1px solid #cbd4dc; }
.pattrix-newsletter-control:focus-within { border-color: var(--pattrix-form-field-focus, var(--pattrix-color-interaction)); box-shadow: 0 0 0 1px var(--pattrix-form-field-focus, var(--pattrix-color-interaction)); }
.pattrix-newsletter-control.has-error { border-color: var(--pattrix-color-status-error); box-shadow: 0 0 0 1px var(--pattrix-color-status-error); }
.pattrix-newsletter-control input { box-sizing: border-box; width: 100%; min-width: 0; min-height: 50px; padding: 0 16px; color: #171b1f; background: transparent; border: 0; border-radius: 0; outline: 0; font: inherit; font-size: 14px; }
.pattrix-newsletter-control input::placeholder { color: var(--pattrix-color-text-secondary); }
.pattrix-newsletter-control button { min-width: 92px; min-height: 50px; padding: 0 16px; color: #fff; background: var(--pattrix-color-brand); border: 0; border-radius: 0; font: inherit; font-size: 13px; font-weight: 700; cursor: pointer; }
.pattrix-newsletter-control button:hover { background: var(--pattrix-color-interaction); }
.pattrix-newsletter-control button:focus-visible { outline: 2px solid #171b1f; outline-offset: -4px; }
.pattrix-newsletter-control button:disabled { cursor: wait; opacity: .65; }
.pattrix-newsletter-honeypot { position: absolute !important; left: -10000px !important; width: 1px !important; height: 1px !important; overflow: hidden !important; }
.pattrix-newsletter-field-error { margin-top: 8px; }
.pattrix-newsletter-consent { max-width: 420px; margin: 12px 0 0; color: #68747d; font-size: 11px; line-height: 1.5; }
.pattrix-newsletter-consent a { color: inherit; text-underline-offset: 2px; }
.pattrix-newsletter-status { min-height: 38px; margin: 8px 0 0; color: #34414b; font-size: 12px; line-height: 1.5; }
.pattrix-footer-quote-link { display: inline-flex; margin-top: 10px; padding-bottom: 4px; border-bottom: 1px solid currentColor; font-weight: 700; }
.pattrix-footer-bottom { display: flex; justify-content: space-between; gap: 24px; width: min(100%, var(--pattrix-layout-wide)); margin: clamp(56px, 7vw, 96px) auto 0; padding-top: 20px; color: #68747d; border-top: 1px solid #d4dce3; font-size: 11px; line-height: 1.6; }

@media (max-width: 1050px) {
	.pattrix-footer-grid { grid-template-columns: minmax(240px, 1.2fr) repeat(2, minmax(140px, .7fr)); gap: 48px 32px; }
	.pattrix-footer-newsletter { grid-column: 1 / -1; }
	.pattrix-newsletter-form { max-width: 560px; }
}

@media (max-width: 640px) {
	.pattrix-footer { padding: 56px 16px 22px; }
	.pattrix-footer-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 44px 24px; }
	.pattrix-footer-brand, .pattrix-footer-newsletter { grid-column: 1 / -1; }
	.pattrix-footer-contact-layout { grid-template-columns: 84px minmax(0, 1fr); gap: 16px; }
	.pattrix-footer-contact-details { grid-column: 2; grid-row: 1; }
	.pattrix-footer-qr { grid-column: 1; grid-row: 1; align-self: start; justify-content: flex-start; width: 84px; min-height: 0; padding: 0; border-left: 0; }
	.pattrix-footer-qr-image { width: 84px; height: 84px; }
	.pattrix-footer-socials { align-items: flex-start; flex-direction: column; }
	.pattrix-newsletter-control { grid-template-columns: minmax(0, 1fr) 88px; }
	.pattrix-newsletter-control button { min-width: 88px; padding: 0 10px; }
	.pattrix-footer-bottom { display: grid; gap: 6px; margin-top: 56px; }
}
