/* Reset and Base Styles */
* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

html {
    overflow-x: hidden;
    scroll-behavior: smooth;
}

body {
    font-family: "Noto Sans JP", sans-serif;
    font-style: normal;
    line-height: 1;
    color: var(--black);
    overflow-x: hidden;
}

a {
    text-decoration: none;
    color: inherit;
}

button {
    border: none;
    background: none;
    cursor: pointer;
    font-family: inherit;
}

/* Responsive======================================================= */
.pc-only {
    display: block !important;
}
.pc-flex-only {
    display: flex !important;
}

.tb-sp-only,
.tab-sp-only {
    display: none !important;
}
.tb-sp-flex-only {
    display: none !important;
}

.pc-tb-only {
    display: block !important;
}
.pc-tb-grid {
    display: grid !important;
}
.pc-grid {
    display: grid !important;
}
.tb-sp-grid {
    display: none !important;
}
.sp-only {
    display: none !important;
}

.pc-br {
    display: block !important;
}
.tb-br {
    display: none !important;
}
.tb-sp-br {
    display: none !important;
}
.sp-br {
    display: none !important;
}
.pc-tb-br {
    display: block !important;
}

@media screen and (max-width: 1200px) {
    .pc-only {
        display: none !important;
    }
    .pc-flex-only {
        display: none !important;
    }
    .tb-sp-only,
    .tab-sp-only {
        display: block !important;
    }
    .tb-sp-flex-only {
        display: flex !important;
    }
    .pc-tb-only {
        display: block !important;
    }
    .sp-only {
        display: none !important;
    }
    .pc-br {
        display: none !important;
    }
    .sp-br {
        display: none !important;
    }
    .tb-br {
        display: block !important;
    }
    .tb-sp-br {
        display: block !important;
    }
    .pc-tb-br {
        display: block !important;
    }
}
@media screen and (max-width: 1024px) {
    .pc-grid {
        display: none !important;
    }
    .tb-sp-grid {
        display: grid !important;
    }
}
@media screen and (max-width: 768px) {
    .pc-tb-only {
        display: none !important;
    }
    .pc-tb-grid {
        display: none !important;
    }
    .pc-grid {
        display: none !important;
    }
    .tb-sp-grid {
        display: grid !important;
    }
    .sp-grid {
        display: grid !important;
    }
    .sp-br {
        display: block !important;
    }
    .sp-only {
        display: block !important;
    }
    .pc-br {
        display: none !important;
    }
    .sp-br {
        display: block !important;
    }
    .pc-tb-br {
        display: none !important;
    }
    .tb-br {
        display: none !important;
    }
    .tb-sp-br {
        display: block !important;
    }
}