:root { color-scheme: light; font-family: -apple-system, BlinkMacSystemFont, "Noto Sans JP", "Hiragino Kaku Gothic ProN", "Yu Gothic", sans-serif; color: #514744; background: #faf7f2; }
* { box-sizing: border-box; }
body { margin: 0; line-height: 1.9; overflow-wrap: anywhere; }
a { color: #854b53; text-underline-offset: 4px; }
a:focus-visible { outline: 2px solid #92555a; outline-offset: 5px; }
.legal-header, main, .legal-footer { width: min(900px, calc(100% - 48px)); margin-inline: auto; }
.legal-header { padding: 28px 0 21px; border-bottom: 1px solid #e4d9d2; }
.legal-brand { font-family: "Yu Mincho", "Hiragino Mincho ProN", serif; font-size: 25px; letter-spacing: .12em; text-decoration: none; color: #85545a; }
.legal-header nav, .legal-footer nav { display: flex; flex-wrap: wrap; gap: 8px 22px; margin-top: 15px; font-size: 12px; }
main { padding: 42px 0 28px; }
.legal-eyebrow { font-size: 10px; letter-spacing: .13em; color: #77615b; margin: 0 0 8px; }
h1 { font-family: "Yu Mincho", "Hiragino Mincho ProN", serif; font-weight: 500; font-size: clamp(24px, 4.3vw, 35px); line-height: 1.65; margin: 0 0 14px; }
.legal-date { color: #766158; font-size: 12px; margin: 0 0 26px; }
h2 { font-family: "Yu Mincho", "Hiragino Mincho ProN", serif; font-weight: 500; color: #745051; font-size: 21px; line-height: 1.6; margin: 36px 0 15px; }
p, li, dd { font-size: 14px; }
p { margin: 0 0 16px; }
ul, ol { padding-left: 23px; }
li { margin-bottom: 8px; }
.legal-notice { border: 1px solid #d9bfba; background: #f6ebe7; padding: 19px 22px; border-radius: 10px; margin: 24px 0; }
.legal-notice strong { display: block; color: #835159; margin-bottom: 6px; }
.legal-notice p:last-child { margin-bottom: 0; }
.legal-facts { margin: 26px 0 0; border-top: 1px solid #e4d9d2; }
.legal-facts > div { display: grid; grid-template-columns: 180px minmax(0, 1fr); gap: 20px; border-bottom: 1px solid #e4d9d2; padding: 19px 0; }
.legal-facts dt { font-size: 13px; font-weight: 600; color: #765454; }
.legal-facts dd { margin: 0; min-width: 0; }
.legal-facts p:last-child { margin-bottom: 0; }
.legal-contact { padding: 22px; background: #fffdfa; border: 1px solid #e4d9d2; border-radius: 10px; }
.legal-footer { border-top: 1px solid #e4d9d2; padding: 22px 0 36px; }
.legal-footer p { font-size: 12px; margin: 15px 0 0; color: #766158; }
@media (max-width: 600px) { .legal-header, main, .legal-footer { width: calc(100% - 36px); } main { padding-top: 29px; } .legal-facts > div { grid-template-columns: minmax(0, 1fr); gap: 7px; padding: 17px 0; } .legal-notice, .legal-contact { padding: 17px; } h2 { font-size: 19px; } }
@media print { :root { background: white; } .legal-header nav, .legal-footer nav { display: none; } a { color: inherit; } .legal-header, main, .legal-footer { width: 100%; } }
