:root {
    --color-bg: #111111;
    --color-body: #fff;
    --color-text: #000;
    --color-muted: #7a7474;
    --color-accent: #c63135;
    --color-drawer: #544d4f;
    --header-height-sp: 87px;
    --header-height-pc: 86px;
    --content-width: 1200px;
    --content-wide: 1440px;
    --content-narrow: 900px;
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
    margin: 0;
    color: var(--color-text);
    background: var(--color-body);
    font-family: "Noto Sans JP", sans-serif;
    font-size: 18px;
}
a { color: inherit; text-decoration: none; }
img { max-width: 100%; height: auto; display: block; }
button { font: inherit; }
body.is-drawer-open { overflow: hidden; }
.l-container { width: min(calc(100% - 40px), var(--content-width)); margin-inline: auto; }
.l-container--wide { width: min(calc(100% - 40px), var(--content-wide)); }
.l-container--narrow { width: min(calc(100% - 40px), var(--content-narrow)); }
.l-main { min-height: 60vh; }
body[data-request-path]:not([data-request-path=""]):not([data-request-path="en"]) .l-main {
    padding-top: var(--header-height-sp);
}
.u-font-serif,
.is-font-serif {
    font-family: "Noto Serif JP", serif;
}
@media (min-width: 768px) {
    .l-container,
    .l-container--wide,
    .l-container--narrow { width: min(calc(100% - 80px), var(--content-width)); }
    .l-container--wide { width: min(calc(100% - 80px), var(--content-wide)); }
    .l-container--narrow { width: min(calc(100% - 80px), var(--content-narrow)); }

    body[data-request-path]:not([data-request-path=""]):not([data-request-path="en"]) .l-main {
        padding-top: var(--header-height-pc);
    }
}

.screen-reader-text{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0;}
