/* Shared footer; page-specific closing sections and disclosures stay independent. */
.site-footer { max-width:none; margin:0; padding:64px 5% 24px; background:#eeeee6; border-top:1px solid #dcdfd3; color:#354438; }
.site-footer-inner { max-width:1180px; margin:0 auto; }
.site-footer-top { display:grid; grid-template-columns:minmax(0,1.2fr) minmax(0,.75fr) minmax(0,.9fr) minmax(0,1.2fr); gap:36px; padding-bottom:36px; }
.site-footer .brand { display:inline-flex; gap:10px; font-size:18px; white-space:normal; }
.site-footer .brand-mark { flex:0 0 46px; width:46px; height:auto; }
.site-footer .brand-english { color:#58634f; font-size:8px; letter-spacing:1.6px; }
.site-footer-message { margin:26px 0 12px; font:24px/1.65 var(--serif); letter-spacing:-.6px; word-break:keep-all; }
.site-footer-description { margin:0 0 12px; color:#616b5e; font-size:12px; line-height:1.9; }
.site-footer-domain { display:inline-flex; align-items:center; gap:12px; min-height:44px; font-size:12px; overflow-wrap:anywhere; }
.site-footer-nav h2,.site-footer-contact h2 { margin:4px 0 17px; font:600 13px/1.8 var(--sans); letter-spacing:0; }
.site-footer-nav a { display:flex; align-items:center; width:fit-content; max-width:100%; min-height:42px; color:#52604f; font-size:13px; line-height:1.6; word-break:keep-all; }
.site-footer a:hover { color:#273e2b; text-decoration:underline; text-underline-offset:4px; }
.site-footer a:focus-visible { outline:2px solid #455f4b; outline-offset:4px; border-radius:2px; }
.site-footer-contact { min-width:0; border-left:1px solid #d4d9cc; padding-left:28px; }
.site-footer .footer-chat-link { display:flex; align-items:center; justify-content:space-between; gap:16px; min-height:48px; padding:11px 16px; border:1px solid #4d6453; border-radius:5px; background:#455f4b; color:#fff; font-size:13px; }
.site-footer .footer-chat-link:hover { background:#354c3b; color:#fff; text-decoration:none; }
.footer-contact-hours { margin:8px 0 6px; color:#616b5e; font-size:11px; line-height:1.8; word-break:keep-all; }
.footer-human-link { display:inline-flex; align-items:center; gap:12px; min-height:44px; font-size:12px; }
.footer-contact-details { margin:9px 0 0; }
.footer-contact-details>div { margin-top:4px; }
.footer-contact-details dt { color:#616b5e; font-size:11px; line-height:1.5; }
.footer-contact-details dd { margin:0; min-width:0; }
.footer-contact-details a { display:inline-flex; align-items:center; min-height:36px; max-width:100%; font-size:13px; overflow-wrap:anywhere; }
.footer-contact-note { margin:10px 0 0; color:#616b5e; font-size:11px; line-height:1.8; word-break:keep-all; overflow-wrap:anywhere; }
.site-footer-utility { display:flex; align-items:center; flex-wrap:wrap; gap:4px 24px; padding:11px 0; border-top:1px solid #d4d9cc; }
.site-footer-utility a { display:inline-flex; align-items:center; gap:9px; min-height:44px; font-size:12px; }
.footer-privacy-link { font-weight:700; }
.site-footer-utility .footer-top-link { margin-left:auto; }
.site-footer .company-info { padding:24px 0; border-color:#d4d9cc; }
.site-footer .business-details { display:flex; flex-wrap:wrap; gap:7px 28px; margin:0; font-size:12px; line-height:1.9; }
.site-footer .business-details>div { display:flex; flex-wrap:wrap; gap:3px 10px; padding:0; min-width:0; }
.site-footer .business-details>[data-business-field="address"] { flex-basis:100%; }
.site-footer .business-details>[data-business-field="support_phone"],.site-footer .business-details>[data-business-field="support_email"],.site-footer .business-details>[data-business-field="support_hours"] { display:none; }
.site-footer .business-details dt { color:#616b5e; font-weight:400; }
.site-footer .business-details dd { margin:0; color:#354438; }
.site-footer .business-details a { text-decoration:none; }
.site-footer .business-details a:hover { text-decoration:underline; }
.site-footer .company-content-notice { color:#616b5e; }
.site-footer .company-content-notice strong { display:inline; margin-right:12px; font-weight:600; }
.site-footer-bottom { display:flex; justify-content:space-between; flex-wrap:wrap; gap:8px 24px; padding-top:18px; border-top:1px solid #d4d9cc; color:#616b5e; font-size:11px; line-height:1.8; }
@media(max-width:1100px) {
 .site-footer-top { grid-template-columns:repeat(2,minmax(0,1fr)); gap:32px 48px; }
 .site-footer-brand { grid-column:1; grid-row:1; }
 .site-footer-contact { grid-column:2; grid-row:1; }
 .site-footer-nav { border-top:1px solid #d4d9cc; padding-top:24px; }
 .site-footer-nav a { min-height:44px; }
}
@media(max-width:600px) {
 .site-footer { padding:36px 22px 24px; }
 .site-footer-top { gap:26px 22px; padding-bottom:26px; }
 .site-footer-brand { grid-column:1 / -1; }
 .site-footer-message { margin-top:21px; font-size:23px; }
 .site-footer-description br { display:none; }
 .site-footer-nav { padding-top:22px; }
 .site-footer-nav h2 { margin-bottom:9px; }
 .site-footer-contact { grid-column:1 / -1; grid-row:auto; padding:24px 0 0; border-left:0; border-top:1px solid #d4d9cc; }
 .site-footer-contact h2 { margin-bottom:14px; }
 .footer-contact-details { display:grid; gap:5px; }
 .footer-contact-details>div { display:grid; grid-template-columns:48px minmax(0,1fr); align-items:center; gap:12px; margin-top:0; }
 .footer-contact-details a { min-height:44px; }
 .site-footer-utility { gap:2px 18px; }
 .site-footer-utility a { font-size:11px; }
 .site-footer-utility .footer-top-link { margin-left:0; }
 .site-footer .business-details { gap:8px; font-size:11px; }
 .site-footer .business-details>div { flex-basis:100%; display:grid; grid-template-columns:106px minmax(0,1fr); gap:8px; }
 .site-footer .business-details dt { word-break:keep-all; }
 .site-footer .company-content-notice { font-size:11px; line-height:1.9; }
 .site-footer .company-content-notice strong { display:block; margin-bottom:5px; }
 .site-footer-bottom { flex-direction:column; gap:5px; }
}
@media(prefers-reduced-motion:reduce) { html:has(.site-footer) { scroll-behavior:auto; } }
