/* RESET START */

html {
    margin: 0px;
    padding: 0px;
    border: 0px;
}

* {
    margin: 0px;
    padding: 0px;
    border: 0px;
    text-decoration: none;
}

body {
    line-height: 1;
}

h1,
h2,
h3,
h4,
h5,
h6,
p,
span,
table,
a,
img,
dl,
dt,
dd,
ul,
li,
ol,
iframe,
nav {
    margin: 0px;
    padding: 0px;
    font-size: 100%;
    background: transparent;
    vertical-align: bottom;
    word-break: break-word;
}

ol,
ul {
    list-style: none;
    list-style-type: none;
}

/* RESET END */

:root {
    --gray: #333;
    /* 基本文字色 */

    --cyan: #5ac7f2;
    /* 水色 */

    --pink1: #fe56b6;
    /* ピンク(濃い) */

    --pink2: #ff97d2;
    /* ピンク(中間) */

    --pink3: #ffbce2;
    /* ピンク(薄い) */

    --rosepink: #ec6d8d;
    ;
    /* 系統の違うピンク */

    --yellow1: #faec09;
    /* 黄色(濃い) */

    --yellow2: #fcf369;
    /* 黄色(薄い) */
}

/* SUBPAGE HEADER HAMBURGER START */

.sub_header {
    position: relative;
    width: 100%;
    margin: 0 auto;
    display: flex;
    justify-content: space-between;
    padding: 10px 0;
}

.sub_header h1#logo {
    transition: 0.2s;
    text-align: left;
    padding: 10px;
}

.sub_header h1#logo:hover {
    opacity: 0.75;
}

.sub_header h1#logo {
    width: min(50%, 280px);
}

.sub_header h1#logo a img {
    width: 100%;
}

#subpage_hamb {
    position: relative;
    width: 80px;
    height: 80px;
    box-shadow: 0px 0px 4px #fe56b6;
    background: #fff;
    border-radius: 50%;
    color: #fff;
    padding: 5px 0 0 5px;
    box-sizing: border-box;
    right: 10px;
    cursor: pointer;
    z-index: 999;
}

.sub_hamb_wrap {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 70px;
    height: 70px;
    background: #fe56b6;
    border-radius: 50%;
    box-sizing: border-box;
    padding-top: 4px;
    text-align: center;
}

#subpage_hamb span {
    font-size: 14px;
    transition: 0.2s;
}

#subpage_hamb p {
    width: 40px;
    height: 4px;
    background: #fff;
    margin: 0 auto 4px;
    transition: 0.2s;
}

#subpage_hamb.fixed {
    position: fixed;
    top: 10px;
    right: 10px;
}

#subpage_hamb span.is-active {
    opacity: 0;
}

#subpage_hamb p.is-active:nth-of-type(1) {
    transform: rotate(45deg) translateX(2px) translateY(2px);
}

#subpage_hamb p.is-active:nth-of-type(2) {
    opacity: 0;
}

#subpage_hamb p.is-active:nth-of-type(3) {
    transform: rotate(-45deg) translateX(9px) translateY(-9px);
}

@media screen and (max-width:800px) {
    .sub_hamb_wrap {
        padding-top: 8px;
    }
}

/* SUBPAGE HEADER HAMBURGER END */

/* MENU START */

#menu {
    position: fixed;
    pointer-events: none;
    z-index: -1;
    width: 100vw;
    height: 100vh;
    background: repeating-linear-gradient(135deg, var(--yellow1), var(--yellow1) 6px, var(--yellow2) 6px, var(--yellow2) 8px);
    top: 0;
    left: -100vw;
    transition: 0.6s;
}

#menu.is-active {
    position: fixed;
    pointer-events: all;
    z-index: 998;
    left: 0vw;
}

#menu nav {
    position: absolute;
    top: 50%;
    left: 50%;
    width: 85%;
    max-width: 1200px;
    transform: translate(-50%, -50%);
    background: #fff;
    border-radius: 40px;
    box-sizing: border-box;
    padding: 40px 60px;
    display: flex;
    align-items: center;
}

#menu nav p {
    width: 50%;
}

#menu nav p img {
    display: block;
    width: 85%;
    max-width: 440px;
    margin: 0 auto 0 0;
}

#menu nav ul {
    width: 50%;
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
}

#menu nav ul li {
    width: 49%;
    margin-bottom: 1em;
}

#menu nav ul a {
    width: 100%;
    color: var(--gray);
    text-decoration: none;
    display: block;
    text-align: left;
    padding: 0.35em 0 0.35em 0.6em;
    border-left: 4px solid var(--cyan);
    box-sizing: border-box;
    font-size: min(3.75vw, 24px);
    line-height: 1;
}

#menu nav ul a:hover {
    opacity: 0.75;
    transition: 0.2s;
}

#menu nav ul a small {
    display: block;
    font-size: 0.5em;
    font-weight: 500;
    padding-top: 0.35em;
}

@media screen and (max-width:800px) {
    #menu nav {
        padding: 4em 0;
        flex-direction: column;
        border-radius: 20px;
    }

    #menu nav p {
        width: 100%;
        margin-bottom: 4em;
    }

    #menu nav p img {
        margin: 0 auto;
    }

    #menu nav ul {
        width: 85%;
    }
}


/* MENU END */

/* FOOTER START */

.foot {
    background: repeating-linear-gradient(135deg, var(--yellow1), var(--yellow1) 6px, var(--yellow2) 6px, var(--yellow2) 8px);
    padding: min(4vw, 40px) 0 min(6vw, 80px);
    font-weight: 800;
}

.foot .bnr_list {
    width: 80%;
    max-width: 1100px;
    margin: 0 auto min(3vw, 40px);
    display: flex;
    justify-content: space-between;
}

.bnr_list li {
    width: 33%;
}

.bnr_list::after {
    content: "";
    display: block;
    height: 1px;
    width: 33%;
}

.bnr_list li a {
    display: block;
    box-sizing: border-box;
    border: 2px solid #fff;
    transition: 0.2s;
}

.bnr_list li:hover a {
    border: 2px solid transparent;
}

.bnr_list li img {
    width: 100%;
}

.footwrap {
    width: 80%;
    max-width: 1100px;
    margin: 0 auto;
    display: flex;
    flex-wrap: wrap;
    align-items: end;
}

.footleft {
    width: 50%;
}

.footright {
    width: 50%;
}

.footleft .logo {
    width: min(80%, 400px);
    display: block;
    margin-bottom: min(2vw, 20px);
}

.footleft .sns_share {
    width: min(80%, 400px);
    background: rgba(255, 255, 255, 0.75);
    display: flex;
    align-items: center;
    padding: 24px 0;
    border-radius: 10px;
}

.footleft .sns_share p {
    width: 40%;
}

.footleft .sns_share #sns_button {
    padding-top: 0;
    width: 60%;
}

.footright h3 {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    margin-bottom: min(2vw, 20px);
    font-weight: 800;
}

.footright h3 .fukidashi {
    display: inline-block;
    background: #fff;
    padding: 0.5em 1em;
    position: relative;
    margin-right: 1em;
}

.footright h3 .fukidashi::after {
    position: absolute;
    content: "▲";
    display: inline-block;
    transform: rotate(90deg);
    right: -10px;
    top: 0.5em;
    color: #fff;
}

.official_sns {
    display: flex;
    flex-direction: column;
}

.official_sns li {
    margin-left: auto;
}

.official_sns a {
    width: 280px;
    padding: 0.5em 0;
    display: flex;
    align-items: center;
    justify-content: center;
    background: rgba(255, 255, 255, 0.75);
    border-radius: 100px;
    margin-bottom: min(2vw, 20px);
    color: var(--gray);
}

.official_sns li:last-of-type a {
    margin-bottom: 0;
}

.official_sns a img {
    margin-right: 1em;
}

.foot .copy {
    width: 100%;
    text-align: center;
    font-size: min(2.3vw, 12px);
    font-weight: 500;
    text-align: right;
    padding: 2em 0;
}

.onlySp {
    display: none;
}

@media screen and (max-width:800px) {
    .onlySp {
        display: block;
    }

    .foot .bnr_list {
        width: 90%;
        display: block;
    }

    .bnr_list li {
        width: 100%;
        margin-bottom: 1em;
    }

    .footwrap {
        width: 90%;
        display: block;
    }

    .footleft,
    .footright {
        width: 100%;
    }

    .foot .bnr_list {
        margin: 0 auto min(6em, 40px);
    }

    .footleft {
        margin-bottom: 3em;
    }

    .footleft .logo {
        width: 100%;
        margin: 0 auto 2em;
    }

    .footleft .sns_share {
        width: 100%;
        padding: 12px 0;
        margin: 0 auto;
    }

    .footleft .sns_share p {
        font-size: min(4vw, 18px);
    }

    .footright h3 {
        display: block;
        font-size: min(4vw, 18px)
    }

    .footright h3 .fukidashi {
        display: block;
        margin: 0 auto 2em;
    }

    .footright h3 .fukidashi::after {
        display: block;
        transform: rotate(180deg);
        left: 0;
        right: 0;
        bottom: -1em;
        font-size: min(10vw, 32px);
    }

    .official_sns {
        display: block;
        font-size: min(3.5vw, 16px);
        margin-bottom: 2em;
    }

    .official_sns a {
        margin: 0 auto min(2vw, 20px);
    }

    .foot .copy {
        padding: 0;
        text-align: center;
    }
}

/* FOOTER END */

/* LOADER START */

.loading {
    position: fixed;
    width: 100vw;
    height: 100vh;
    background: #fff;
    opacity: 1;
    top: 0;
    left: 0;
    z-index: 9999;
}

.loading::before {
    content: "";
    display: block;
    width: 100vw;
    height: 100vh;
    position: absolute;
    top: 0;
    left: 0;
    background: url(../img/loading_bg.png);
    background-size: 20px 20px;
    animation: loading_bg .8s infinite linear;
}

@keyframes loading_bg {
    0% {
        background-position-x: 0;
    }

    100% {
        background-position-x: -20px;
    }
}

.loading.off {
    animation: loading 1s forwards;
    animation-delay: 0.5s;
}

@keyframes loading {
    0% {
        opacity: 1;
    }

    99.9% {
        opacity: 0;
    }

    100% {
        display: none;
        z-index: -9999;
    }
}

.loading_box {
    position: absolute;
    width: min(80%, 460px);
    text-align: center;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
}

.loading_box img {
    display: block;
    margin: 0 auto 20px;
    width: 100%;
    filter: drop-shadow(0px 0px 10px #fff);
}

#progress {
    position: relative;
    width: 100%;
    height: 4px;
    margin: 0 auto;
    overflow: hidden;
    background: var(--pink3);
}

.progress_color {
    position: absolute;
    top: 0;
    left: 0;
    height: 6px;
    width: 0;
    background: var(--pink1);
    animation: loading-bar 3s forwards;
    transition: 0.1s;
}

@keyframes loading-bar {
    0% {
        width: 0%;
    }

    100% {
        width: 98%;
    }
}

.progress_color.complete {
    animation: 0;
    width: 100%;
}



/* LOADER END */

/* COMMON START */

body {
    font-size: min(3.5vw, 18px);
    font-family: "M PLUS 1", sans-serif;
    font-weight: 800;
    color: var(--gray);
    background: #fff;
    line-height: 1.5;
}

.panlist a,
.panlist strong {
    color: #000 !important;
    padding: 0 0.5em;
}

img {
    vertical-align: bottom;
}

.panlist {
    text-align: left;
    font-size: 12px;
    padding-left: 1em;
    color: var(--gray);
    background: var(--yellow1);
}

#pagetop a {
    text-decoration: none;
    text-align: center;
    display: block;
    width: 60px;
    line-height: 60px;
    color: #fff;
    background: var(--gray);
    border-radius: 100%;
    position: fixed;
    transition: 0.2s;
}

#pagetop a:hover {
    opacity: 0.75;
    box-shadow: 0px 0px 12px 4px #fff;
}

.wrapper {
    background: url(../img/bg_roop.jpg);
    background-size: 200px;
    animation: bgloop 5s infinite linear;
    padding-bottom: min(8vw, 100px);
}

@keyframes bgloop {
    0% {
        background-position: 0 0;
    }

    100% {
        background-position: 200px -200px;
    }
}

#footer #f_PC,
footer #f_SP {
    margin: 0 auto !important;
}

#sns_button {
    text-align: center;
}

.subpage {
    text-align: left;
}

.subpage section {
    width: min(90%, 1100px);
    margin: 0 auto min(6vw, 60px);
}

.subpage section h1 {
    text-align: center;
    padding-top: min(8vw, 40px);
    margin-bottom: min(6vw, 60px);
}

.subpage section h1 img {
    width: 90%;
    max-width: 720px;
    filter: drop-shadow(0 0 4px #fff);
}

a.prev_btn {
    display: block;
    width: 180px;
    padding: 8px 0;
    text-align: center;
    border-radius: 500px;
    box-sizing: border-box;
    border: 1px solid #fe56b6;
    color: #fe56b6;
    background: #fff;
    font-size: min(3vw, 16px);
    text-decoration: none;
    margin: 0 auto;
}

.content {
    background: #fff;
    border-radius: 20px;
    box-shadow: 0px 0px 8px #ccc;
    padding: 6% 6% 6% 6%;
    box-sizing: border-box;
}

@media screen and (max-width:800px) {
    #header {
        min-height: 80px;
    }

    #page_all {
        overflow-x: hidden;
    }

    #pan_box {
        overflow-x: scroll;
    }
}

/* COMMON END */
