:root { color-scheme: light; font-family: system-ui, sans-serif; color: #183c40; background: #f7f3e8; }
* { box-sizing: border-box; }
body { margin: 0; font-size: 17px; line-height: 1.65; }
header, main, footer { width: min(800px, calc(100% - 40px)); margin: 0 auto; }
header { padding: 28px 0 14px; }
header a { font-size: 25px; font-weight: 750; text-decoration: none; }
main { padding: 10px 0 40px; }
h1 { font-size: clamp(28px, 5vw, 40px); line-height: 1.2; overflow-wrap: anywhere; }
h2 { margin-top: 32px; font-size: 23px; line-height: 1.3; }
a { color: #365f4b; text-underline-offset: 3px; }
a:focus-visible { outline: 3px solid #b87820; outline-offset: 4px; }
.legal-meta { color: #5d6e69; font-size: 15px; }
.legal-notice { padding: 14px 18px; background: #fff0d5; border-radius: 12px; }
.operator-card { padding: 16px 20px; background: #e8eee5; border-radius: 12px; overflow-wrap: anywhere; }
footer { padding: 20px 0 35px; border-top: 1px solid #ccd6ca; display: flex; gap: 18px; flex-wrap: wrap; font-size: 15px; }
[hidden] { display: none !important; }
table { width: 100%; border-collapse: collapse; font-size: 15px; }
th, td { padding: 12px 10px; text-align: left; vertical-align: top; border: 1px solid #ccd6ca; overflow-wrap: anywhere; }
th { background: #e8eee5; }

.emotion-icon { display: inline-block; width: 1.15em; height: 1.15em; vertical-align: -.2em; margin-inline: .15em .22em; object-fit: contain; }
