/* common */
.marker-num {
    counter-reset: num;
}
.marker-num__item,
.marker-num>li {
    text-indent: -1em;
    padding-left: 1em;
}
.marker-num__item::before,
.marker-num>li::before {
    content: counter(num, decimal) ".";
    counter-increment: num;
    width: 1em;
    text-indent: 0;
    display: inline-block;
}
/* useful */
.useful__inner {
    max-width: 842px;
    margin: 0 auto;
    width: calc(var(--inner) * 100%);
    padding: 0 0 108px;
}
.useful__lead {
    padding: 102px 0 56px;
    word-break: keep-all;
    overflow-wrap: break-word;
    line-height: 1.778;
    letter-spacing: 0.14em;
}
.useful__link+.useful__link {
    margin-top: 51px;
}
.useful__link-tl {
    font-size: 1.625rem;
    letter-spacing: 0.13em;
}
.useful__link-text {
    font-size: 1rem;
    line-height: 1.63;
    letter-spacing: 0.14em;
    margin: 17px 0 0;
}
.useful__link-ctn {
    display: grid;
    align-items: stretch;
    justify-content: space-between;
    flex-wrap: wrap;
    margin: 24px 0 0;
    grid-template-columns: repeat(auto-fit, minmax(410px, 1fr));
    gap: 0 2.6%;
}
.useful__link-ctn li {
    margin: 0 0 5.2%;
    display: flex;
}
.useful__link-ctn a {
    background: #91999e;
    color: #fff;
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 50px;
    font-size: 1.063rem;
    padding: 0.3em 0.7em;
    line-height: 1.1;
    width: 100%;
    box-sizing: border-box;
    letter-spacing: 0.15em;
}
/* emergency */
.emergency__inner {
    max-width: 826px;
    margin: 0 auto;
    width: calc(var(--inner) * 100%);
    padding: 0 0 107px;
}
.emergency__lead {
    padding: 101px 0 59px;
    word-break: keep-all;
    overflow-wrap: break-word;
}
.emergency__site-tl {
    font-size: 1rem;
    letter-spacing: 0.138em;
}
.emergency__site {
    font-size: 1rem;
    margin: 29px 0 88px;
    letter-spacing: 0.135em;
    gap: 8px 0;
}
.emergency__site li {
    display: contents;
}
.emergency__site-address {
    padding: 0 0.7em 0 0.7em;
    text-indent: -1em;
    display: inline-block;
}
.emergency__site-address:before {
    content: "\ff65";
    width: 1em;
    display: inline-block;
    text-indent: 0;
    text-align: center;
    transform: scale(1.5);
}
.emergency__site-name {
    margin-bottom: 0.2em;
    text-indent: 0;
    letter-spacing: 0.1em;
}
.emergency__site-link {
    font-size: 0.938rem;
    word-break: break-all;
    letter-spacing: 0.08em;
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-start;
    align-items: center;
    margin: 0.7em 0 2em;
}
.emergency__site-link-01 {
    flex-shrink: 0;
    padding: 0 1.7em 0 0;
    display: inline-block;
}
.emergency__site-link a {
    text-decoration: underline;
    letter-spacing: 0.15em;
}
.emergency__example {
    font-size: 1rem;
    line-height: 1.625;
    letter-spacing: 0.13em;
}
.emergency__example+.emergency__example {
    margin-top: 4.5em;
}
.emergency__example ul ul {
    text-indent: 0;
    margin-top: 0.875em;
}
.emergency__example p {
    margin-bottom: 1.2em;
}
.emergency__example li {
    margin-bottom: 0.875em;
}
.marker-num-line {
    border-bottom: 1px solid;
}
.emergency__example-tl {
    font-size: 1.625rem;
    letter-spacing: 0.18em;
    margin: 0 0 0.6em;
}
.emergency__example-stl {
    font-size: 1.188em;
    font-weight: 700;
    margin: 2.7em 0 1.3em;
    letter-spacing: 0.12em;
    line-height: 1.45;
}
.emergency__example-tl+.emergency__example-stl {
    margin-top: 0;
}
.emergency__call {
    font-weight: 700;
    font-size: 1.125rem;
    gap: 0.7em 0;
}
.emergency__call li {
    display: flex;
    justify-content: flex-start;
    align-items: flex-start;
}
.emergency__call-name {
    text-indent: -1em;
    padding: 0 1em;
}
.emergency__call-name:before {
    content: "\ff65";
    width: 1em;
    display: inline-block;
    text-indent: 0;
    text-align: center;
    transform: scale(1.5);
}
/* rule */
.rule__inner {
    max-width: 960px;
    margin: 0 auto;
    width: calc(var(--inner) * 100%);
    padding: 0 0 111px;
}
.rule__lead {
    padding: 101px 0 79px;
    word-break: keep-all;
    overflow-wrap: break-word;
    line-height: 1.778;
}
.rule__lead a {
    text-decoration: underline;
}
.rule__box {
    font-size: 1rem;
    line-height: 1.625;
    letter-spacing: 0.13em;
}
.rule__box+.rule__box {
    margin-top: 4.3em;
}
.rule__box li {
    margin-bottom: 0.855em;
}
.rule__box-tl {
    font-size: 1.6rem;
    letter-spacing: 0.15em;
    text-indent: -1.5em;
    margin: 0 0 0.7em;
    padding-left: 1.5em;
}
.rule__box-tl:before {
    width: 1.5em;
}
/* faq */
.faq__hero .hero__text {
    margin: -0.5em 0 0.5em;
}
.hero__text span {
    position: absolute;
    margin-top: 1.6em;
    transform: translateX(-50%);
    font-size: 0.68em;
    display: inline-block;
    font-weight: 400;
    letter-spacing: 0.1em;
}
.faq__lead {
    text-align: center;
    margin: -0.4em 0 -0.6em;
    font-size: 1.125rem;
    line-height: 1.778;
    letter-spacing: 0.13em;
    font-weight: 500;
}
.faq__inner {
    width: calc(var(--inner) * 100%);
    max-width: 950px;
    margin: 6.8em auto 6.6em;
}
.faq__stl {
    background: #91999e;
    color: #fff;
    padding: 0.73em 1.3em;
    font-size: 1.53em;
    letter-spacing: 0.13em;
    font-weight: 400;
    margin-bottom: 0.14em;
    margin-top: 4em;
}
.faq__q {
    margin-right: 0em;
    letter-spacing: 0.2em;
}
.faq__arrow {
    font-family: sans-serif;
    font-weight: 300;
    letter-spacing: 0;
    margin: 0 0.1em;
    text-indent: 0;
}
.faq__arrow b {
    display: inline-block;
    margin: 0.05em 0 0;
}
.faq__question {
    padding: 0.88em 1.6em 0.88em 1.9em;
    font-size: 1.3em;
    letter-spacing: 0.08em;
    border-bottom: #929a9f 1px solid;
    cursor: pointer;
    position: relative;
    list-style: none;
    line-height: 1.45;
    text-indent: -1.9em;
}
.faq__question::-webkit-details-marker {
    display: none;
}
.faq__question:after {
    content: "";
    display: inline-block;
    vertical-align: middle;
    position: absolute;
    right: 0;
    top: 50%;
    width: 0.44em;
    height: 0.44em;
    transform: rotate(45deg);
    border: #5b5b5b 1px solid;
    border-top: none;
    border-left: none;
    margin: -0.4em 0.5% 0 0;
    transition: 0.3s ease-out;
}
.faq__qa details[open] .faq__question:after {
    transform: rotate(-135deg);
    margin-top: -0.2em;
}
.faq__open {
    display: grid;
    grid-template-rows: 0fr;
    transition: grid-template-rows 0.5s cubic-bezier(0.25, 0, 0, 1);
}
.faq__qa details[open]+.faq__open {
    grid-template-rows: 1fr;
}
.faq__answer {
    margin: 0;
    font-size: 1.08em;
    letter-spacing: 0.04em;
    overflow: hidden;
    opacity: 0;
    transition: margin 0.5s cubic-bezier(0.25, 0, 0, 1), opacity 0.4s;
}
.faq__qa details[open]+.faq__open .faq__answer {
    opacity: 1;
    margin: 1.5em 0 -0.6em;
}
.faq__answer p {
    font-weight: 400;
    line-height: 1.5;
    margin-bottom: 1.57em;
}
.faq__answer b {
    font-weight: 500;
}
.faq__answer p a {
    text-decoration: underline;
    display: block;
}
.faq__answer p em {
    color: #ff0000;
}
.faq__answer p.faq__indent5 {
    text-indent: -6.2em;
    padding-left: 6.2em;
    display: inline-block;
}
.faq__answer p.faq__indent6 {
    text-indent: -7.3em;
    padding-left: 7.3em;
    display: inline-block;
}
.faq__answer h4 {
    margin: 1.5em 0 1.3em;
    font-size: 1.2em;
}
.faq__answer h4 a {
    text-decoration: underline;
    text-decoration-thickness: 1px;
    text-underline-offset: 0.2em;
    cursor: pointer;
    padding-left: 0.5em;
}
@media screen and (max-width: 767px) {
    /* useful */
    .useful__inner {
        width: 89.33%;
        padding: 0 0 14.6%;
    }
    .useful__lead {
        padding: 10.4% 0 10.4%;
    }
    .useful__link+.useful__link {
        margin-top: 7.5%;
    }
    .useful__link-tl {
        font-size: 2.25rem;
    }
    .useful__link-text {
        font-size: 1.375rem;
        letter-spacing: 0.12em;
        margin: 1em 0 0;
    }
    .useful__link-ctn {
        margin-top: 1.9em;
        grid-template-columns: 1fr;
    }
    .useful__link-text+.useful__link-ctn {
        margin-top: 2.2em;
    }
    .useful__link-ctn li {
        width: 100%;
        margin: 0 0 2.986%;
    }
    .useful__link-ctn a {
        font-size: 1.625rem;
        min-height: 2.69em;
    }
    /* emergency */
    .emergency__inner {
        width: 89.33%;
        padding: 0 0 15.1%;
    }
    .emergency__lead {
        padding: 10.7% 0 8.1%;
        letter-spacing: 0.14em;
    }
    .emergency__site-tl {
        font-size: 1.5rem;
        line-height: 1.5;
    }
    .emergency__site {
        font-size: 1.5rem;
        display: block;
        line-height: 1.4;
        margin: 4.1% 0 11.1%;
    }
    .emergency__site li {
        display: grid;
        grid-template-columns: max-content 1fr;
        padding: 0 0 0 0;
        margin: 0 0 4.6%;
    }
    .emergency__site-address {
        padding-left: 0;
        text-indent: 0;
    }
    .emergency__site-link {
        font-size: 1.29rem;
        padding: 0;
        display: inline-block;
        grid-column: 1/3;
    }
    .emergency__site-link a {
        letter-spacing: 0.1em;
    }
    .emergency__example {
        font-size: 1.375rem;
    }
    .emergency__example-tl {
        font-size: 2.23rem;
    }
    .emergency__example-stl {
        font-size: 1.55rem;
    }
    .emergency__call {
        font-size: 1.55rem;
        line-height: 2.3;
        margin: -0.3em 0 0;
        gap: 0;
    }
    /* rule */
    .rule__inner {
        width: 89.33%;
        padding: 0 0 13.8%;
    }
    .rule__lead {
        padding: 10.5% 0 8.9%;
    }
    .rule__box {
        font-size: 1.375rem;
        line-height: 1.636;
    }
    .rule__box+.rule__box {
        margin-top: 2.8em;
    }
    .rule__box-tl {
        font-size: 2.06rem;
    }
    /* faq */
    .hero__text span {
        margin-top: 0.3em;
    }
    .faq__lead {
        font-size: 1.6em;
        line-height: 1.7;
        margin: -1.5em 0 -0.4em;
        letter-spacing: 0.12em;
    }
    .faq__inner {
        width: 89.334%;
        margin: 4.8em auto 2em;
    }
    .faq__stl {
        padding: 0.7em 1.3em;
        font-size: 2.13em;
        letter-spacing: 0.13em;
        margin-bottom: 0.24em;
        margin-top: 2.4em;
    }
    .faq__q {
        letter-spacing: 0.2em;
    }
    .faq__question {
        padding: 0.98em 1.1em 0.88em 1.9em;
        font-size: 1.7em;
        letter-spacing: 0;
    }
    .faq__answer {
        font-size: 1.48em;
        letter-spacing: 0.04em;
    }
    .faq__answer p {
        font-weight: 400;
        line-height: 1.5;
        margin-bottom: 1.57em;
    }
    .faq__answer h4 {
        margin: 1.5em 0 1.5em;
        font-size: 1.14em;
        letter-spacing: 0.1em;
        line-height: 1.2;
    }
}