*,*::before,*::after{box-sizing:border-box}html{-moz-text-size-adjust:none;-webkit-text-size-adjust:none;text-size-adjust:none}body,h1,h2,h3,h4,p,figure,blockquote,dl,dd{margin:0}ul[role='list'],ol[role='list']{list-style:none}body{min-height:100vh;line-height:1.5}h1,h2,h3,h4,button,input,label{line-height:1.1}h1,h2,h3,h4{text-wrap:balance}a:not([class]){text-decoration-skip-ink:auto;color:currentColor}img,picture{max-width:100%;display:block}input,button,textarea,select{font:inherit}textarea:not([rows]){min-height:10em}:target{scroll-margin-block:5ex}

body {
    font-family: 'Noto Sans JP';
    position:relative;
    > main {
        position:absolute;
        top:50%;
        left:50%;
        transform:translate(-50%,-50%);
        width:100%;
        max-width:845px;
        padding:10px 20px;
        >article {
            display:flex;
            flex-direction:column;
            align-items:center;
            gap:60px;
            @media (max-width: 768px) {
                gap: 30px;
            }
            > figure {
                width: 100%;
                > img {
                    margin-inline:auto;
                    max-width:321px;
                    width:100%;
                    height:auto;
                    @media (max-width: 768px) {
                        width:calc(220 / 375 * 100%);
                    }
                }
            }
            > header {
                @media (max-width: 768px) {
                    padding-top:30px;
                }
                > h1 {
                    font-size:32px;
                    line-height:1.8;
                    font-weight:700;
                    text-align:center;
                    @media (max-width: 768px) {
                        font-size:16px;
                    }
                }
            }
             p {
                font-size:16px;
                line-height:1.8;
                display:block;
                width:100%;
                max-width:647px;
                @media (max-width: 768px) {
                    font-size:14px;
                }
            }
            > aside {
                padding-top:20px;
                > p {
                    text-align:center;
                    font-size:16px;
                    line-height: 1.8;
                    display:inline-block;
                    width:100%;
                    text-align:center;
                    @media (max-width: 768px) {
                        font-size:14px;
                    }
                    >a {
                        color:#0088FF !important;
                        text-decoration:underline;
                        &:hover {
                            text-decoration:none;
                        }
                    }
                }
            }
        }
    }
    > footer {
        position: fixed;
        bottom: 0;
        text-align: center;
        width: 100%;
        background-color: #455A64;
        color: #FFFFFF;
        font-size: 16px;
        line-height: 56px;
        @media (max-width: 768px) {
            font-size: 14px;
        }
        > address {
            font-style: normal;
        }
    }
}