/* Shared accessibility and responsive UI, 2026-11-08. Brand colors remain local. */
*,*::before,*::after{box-sizing:border-box}
html{scroll-padding-top:90px}
body{overflow-wrap:anywhere}
img{max-width:100%}
a,button,input,select,summary{-webkit-tap-highlight-color:transparent}
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible{outline:3px solid #5e7400;outline-offset:4px}
.cleaning-article :focus-visible{outline-color:#223fbd}
.page-route{display:grid;grid-template-columns:1fr 1.7fr;gap:10px;margin:20px 0 28px}
.page-route a{display:flex;align-items:center;justify-content:center;min-height:50px;padding:12px 14px;border:1px solid #aebc87;background:#fffdf5;border-radius:12px;color:#24311b;text-decoration:none;font-weight:700;font-size:13px;line-height:1.65;text-align:center}
.page-route a:last-child{background:#edf4ce}
.cleaning-article .page-route a{border-color:#bcc5dd;color:#223fbd;background:#fffdf7}.cleaning-article .page-route a:last-child{background:#edf0fb}
.article-page .article-main-button,.article-page .cta-button{min-height:52px;line-height:1.75;white-space:normal}
.article-page .official-banner img{height:auto}
@media(width < 768px){
 body{padding-bottom:env(safe-area-inset-bottom)}
 .header nav a{min-height:44px;display:inline-flex;align-items:center;justify-content:center}
 .article-page .header-in{height:auto;min-height:64px;gap:8px;flex-wrap:wrap;padding:6px 0}
 .article-page .article-topnav{gap:12px}.article-page .article-topnav a{font-size:11px;padding:5px 0}
 .article-page .page-hero h1{font-size:clamp(24px,6.7vw,30px);line-height:1.6;text-wrap:pretty}
 .article-page p,.article-page li{line-height:1.95}
 .article-page .source,.article-page .small{font-size:12px;line-height:1.85}
 .article-page .article-toc{border-radius:12px}.article-page .article-toc summary{min-height:54px}
 .article-page .article-toc a{padding:10px 0;min-height:44px;line-height:1.7}
 .article-page .article-toc li{margin:0}
 .article-page .article-main-button{max-width:none;border-radius:10px;min-height:54px;font-size:14px;gap:10px}
 .article-page .cta-button{display:flex;align-items:center;justify-content:center;border-radius:10px;min-height:54px;font-size:14px}
 .article-page .quick-cta a{min-height:48px;display:flex;align-items:center;justify-content:center}
 .article-page .cleaning-reader-links{display:grid;grid-template-columns:minmax(0,1fr);gap:8px;margin:16px 0 24px}
 .article-page .cleaning-reader-links a{margin:0;padding:12px 14px;min-height:48px;border:1px solid #bcc5dd;border-radius:10px;background:#fffdf7;line-height:1.7}
 .article-page .article-related a{min-height:92px;border-radius:12px;padding:16px;background:#fffdf8;margin-bottom:9px}
 .article-page .article-related a strong{min-width:0}.article-page .article-related a b{white-space:nowrap}
 .article-page .article-next{border-radius:14px;padding:20px;box-shadow:none}
 .article-page .article-dock{grid-template-columns:minmax(0,.7fr) minmax(0,1.3fr);gap:6px;padding:6px 8px calc(6px + env(safe-area-inset-bottom))}
 .article-page .article-dock a{border-radius:9px;min-height:50px;padding:8px;font-size:12px;line-height:1.5;text-align:center}
 .article-page footer{padding-bottom:calc(120px + env(safe-area-inset-bottom))}
 .article-page [id]{scroll-margin-top:95px}
 .article-page .table-wrap:has(.mobile-detail-table){border:0;border-radius:0;background:transparent;overflow:visible}
 .article-page .table-wrap:has(.mobile-detail-table)::before{display:none}
 .article-page table.mobile-detail-table{display:block;min-width:0;width:100%;background:transparent}
 .article-page .mobile-detail-table thead{position:absolute;width:1px;height:1px;clip-path:inset(50%);overflow:hidden;white-space:nowrap}
 .article-page .mobile-detail-table tbody{display:grid;gap:12px}
 .article-page .mobile-detail-table tbody tr{display:block;border:1px solid #c4cbb5;border-radius:14px;background:#fffef9;padding:14px}
 .article-page .mobile-detail-table tbody :is(th,td){display:block;width:auto;border:0;background:transparent;padding:9px 0;text-align:left;min-width:0;font-size:14px;line-height:1.85}
 .article-page .mobile-detail-table tbody :is(th,td)+:is(th,td){border-top:1px solid #e1e4d9}
 .article-page .mobile-detail-table tbody :is(th,td)::before{content:attr(data-label);display:block;font-size:11px;font-weight:700;color:#586347;line-height:1.6;margin-bottom:4px}
 .article-page .mobile-detail-table tbody :is(th,td):first-child{font-weight:800;color:#26351c;padding-top:2px}
 .cleaning-article .mobile-detail-table tbody tr{border-color:#c3c9d6;background:#fffdf7}.cleaning-article .mobile-detail-table tbody :is(th,td)::before{color:#52618a}.cleaning-article .mobile-detail-table tbody :is(th,td):first-child{color:#223fbd}
 .cost-calculator :is(input,select,button){font-size:16px;min-height:48px;max-width:100%}
 body.page:not(.article-page) main{max-width:100%}
 body.page:not(.article-page) .footer a{display:inline-flex;align-items:center;min-height:44px}
}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation-duration:.01ms!important;transition-duration:.01ms!important}}

@media(width < 768px){.article-page .definition-table tbody :is(th,td)::before{display:none}.article-page .definition-table tbody td:first-child{font-weight:800}.article-page .article-links a,.article-page .jump-links a{display:inline-flex;align-items:center;min-height:44px;padding:8px 12px;border-radius:999px;border:1px solid #c3cbb2;margin:4px 2px;text-decoration:none}.article-page .mobile-detail-table tbody:empty{display:none}}
@media(width < 768px){body.page:not(.article-page) .table-wrap{overflow:visible}body.page:not(.article-page) main table{min-width:0;width:100%;table-layout:fixed}body.page:not(.article-page) main th,body.page:not(.article-page) main td{padding:12px 10px;font-size:13px;overflow-wrap:anywhere}body.page:not(.article-page) main th{width:32%}}
