@charset "utf-8";

/* =========================
common
========================= */
:root {
    --backgroundColor-wh: #FFFFFF;
    --backgroundColor-bk: rgba(33, 33, 33, 0.6);
    --textColor-bk: #212121;
    --textColor-wh: #FFFFFF;
    --btnColor-pink: rgba(255, 175, 204, 0.8);
    --btnColor-bk: #212121;
    --btnColor-arrow: rgba(33, 33, 33, 0.6);
    --linkMarker: #FFD970;
    /* category */
    --categoryColor-01: #FFAD7E;
    --categoryColor-02: #FFD47E;
    --categoryColor-03: #FFE57E;
    --categoryColor-04: #FDEDAE;
    --categoryColor-05: #212121;
    --categoryColor-kaedeko: #FF8800;
    --categoryColor-asahi: #FF3737;
    --categoryColor-toba: #AE5DCE;
    --categoryColor-shinbashi: #3FD1D4;
    --categoryColor-asagi: #22B8A4;
    --categoryColor-hanada: #6060D6;
    --categoryColor-yamabuki: #F8B500;
    --categoryColor-beni: #B22045;
    /* character */
    --characterColor-kaedeko: #FFA845;
    --characterColor-asahi: #FF5959;
    --characterColor-toba: #BF7ED9;
    --characterColor-shinbashi: #62C3C4;
    --characterColor-asagi: #3EB2A3;
    --characterColor-hanada: #5C8BCC;
    --characterColor-yamabuki: #E5B83E;
    --characterColor-beni: #B23E5C;
    --characterColor-aoba: #3E6E79;
    --characterColor-kaoru: #3E3055;
    --characterColor-himari: #DEAB4F;
    --characterColor-satsuki: #E8BAC9;
    --characterColor-uzuki: #D1B2DF;
}

* {
    outline-color: var(--backgroundColor-bk);
    outline-width: 0.5px;
}

html {
    font-size: 62.5%;
}

body {
    font-family: "M PLUS 1p";
    font-size: 1.5rem;
    font-style: normal;
    font-weight: 400;
    color: var(--textColor-bk);
    line-height: normal;
    letter-spacing: 0.10em;
}

img {
    max-width: 100%;
    height: auto;
}

.section__topic {
    display: flex;
    font-family: "Noto Serif JP";
    font-size: 5.0rem;
    letter-spacing: 0.10em;
    text-align: left;
    vertical-align: top;
    flex-direction: column;
    gap: 10px;

    padding: 90px 0 0 30px;
}

.section__topic span {
    font-family: "M PLUS 1p";
    font-size: 2.0rem;
    letter-spacing: 0.10em;
}

.top__header {
    position: sticky;
    top: 0;
    z-index: 100;
    background-color: rgba(255, 255, 255, 0.9);
}

.header,
.nav__header {
    padding: 25px 2.54% 10px 2.54%;
}

.h1__catchphrase {
    font-family: "Noto Serif JP";
    font-size: 1.3rem;
    letter-spacing: 0.10em;
    text-align: left;
    display: block;
    margin-bottom: 15px;
}

.h1__siteName {
    display: flex;
    gap: 10px;
    font-family: "Noto Serif JP";
    font-size: 1.8rem;
    letter-spacing: 0.10em;
    text-align: left;
    padding-left: 6px;
    display: block;
}

/* PC 769px */
@media screen and (min-width: 769px) {
    .section__topic {
        font-size: 6.0rem;
        gap: 20px;

        padding-left: 80px;
    }

    .header {
        padding: 50px 4.86% 10px 4.86%;
    }

    .h1__catchphrase {
        font-size: 1.5rem;
    }

    .h1__siteName {
        gap: 25px;
        font-size: 2.0rem;
        padding-left: 10px;
    }
}

/* PC 769px */

/* =========================
header
========================= */

.header {
    display: flex;
    justify-content: space-between;
}

/* nav */
.nav {
    background-color: rgba(255, 255, 255, 0.9);
    width: 100%;
    height: 100vh;

    position: fixed;
    top: 0;
    left: 0;
    z-index: 100;
    overflow: auto;

    clip-path: circle(0% at 100% 0%);
    transition: clip-path 1.0s ease;
}

.nav.active {
    clip-path: circle(150% at 100% 0%);
}

.nav__header {
    display: flex;
    justify-content: space-between;
}

/* hamburger */
.header__btn,
.nav__btn {
    margin-top: 35px;
    width: 64px;
    height: 64px;
    border-radius: 50%;
    border: 0.5px solid var(--btnColor-bk);
    position: relative;
}

.header__btn span,
.nav__btn span {
    width: 18.5px;
    height: 0.5px;
    background-color: var(--btnColor-bk);
    position: absolute;
    top: 50%;
    left: 50%;
    transform-origin: center;
    transition: ease .8s;
    /*ハンバーガーメニュークリック時の三本線の動きを遅延*/
    display: block;
}

.btn__line1 {
    transform: translate(-50%, calc(-50% - 6px));
}

.btn__line2 {
    transform: translate(-50%, -50%);
}

.btn__line3 {
    transform: translate(-50%, calc(-50% + 6px));
}

.btn__line1.active {
    transform: translate(-50%, -50%) rotate(40deg);
}

.btn__line2.active {
    opacity: 0;
}

.btn__line3.active {
    transform: translate(-50%, -50%) rotate(-40deg);
}


/* hamburger　END */

.nav__list {
    width: 100%;
    text-align: center;
    margin-top: 50px;

    display: inline-flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    gap: 25px;
    white-space: nowrap;

    font-family: "Noto Serif JP";
    font-size: 2.0rem;
    letter-spacing: 0.10em;
}

.nav__item__img {
    height: 40px;
}

.nav__item {
    display: flex;
    align-items: center;
    gap: 10px;
}

.nav__item a {
    position: relative;
    display: inline-block;
}

.nav__item a::after {
    content: "";
    position: absolute;
    left: 0;
    bottom: -3px;
    height: 1px;
    width: 0%;
    background-color: var(--textColor-bk);

    transition: width 0.4s ease;
}

.nav__item a:hover::after {
    width: 100%;
}

/* PC 769px */
@media screen and (min-width: 769px) {

    /* nav */
    .nav {
        background-color: transparent;
        width: auto;
        height: auto;
        clip-path: none;
        position: static;
    }

    .nav.active {
        clip-path: none;
    }

    .nav__header {
        display: none;
    }

    /* hamburger */
    .header__btn {
        display: none;
    }

    /* hamburger　END */

    .nav__list {
        margin-top: 38px;
        flex-direction: row;
        justify-content: flex-end;
        gap: 30px;
        white-space: nowrap;

        font-size: 1.6rem;
    }

    .nav__item__img {
        display: none;
    }

    .nav__item {
        gap: 0px;
    }
}

/* PC 769px */

/* =========================
footer
========================= */
.footer {
    text-align: center;
    margin-top: 92px;
    margin-bottom: 10px;
}

.copy small {
    font-size: 1.0rem;
}

.copy a {
    position: relative;
    display: inline-block;
}

.copy a::after {
    content: "";
    position: absolute;
    left: 0;
    bottom: -3px;
    height: 1px;
    width: 0%;
    background-color: var(--textColor-bk);

    transition: width 0.4s ease;
}

.copy a:hover::after {
    width: 100%;
}

/* PC 769px */
@media screen and (min-width: 769px) {
    .footer {
        margin-top: 125px;
    }
}

/* PC 769px */

/* =========================
404
========================= */
.error-404 {
    text-align: center;
    padding: 100px 20px 0 20px;
}

.error-404 h2 {
    font-size: 2.0rem;
}

.error-404 div {
    margin-top: 30px;
}

.error-404 p {
    font-size: 1.4rem;
}

.toplink {
    margin-top: 30px;
}

.error-404 a {
    position: relative;
    display: inline-block;
}

.error-404 a::after {
    content: "";
    position: absolute;
    left: 0;
    bottom: -3px;
    height: 1px;
    width: 0%;
    background-color: var(--textColor-bk);

    transition: width 0.4s ease;
}

.error-404 a:hover::after {
    width: 100%;
}

/* PC 769px */
@media screen and (min-width: 769px) {
    .brSP {
        display: none;
    }
}

/* PC 769px */

/* =========================
privacy policy
========================= */
.privacy-policy__contents {
    margin: 50px 7.63%;
    font-family: 'Noto Serif JP';
}

.privacy-policy__contents h2 {
    font-size: 2.0rem;
    padding-top: 50px;
}

.privacy-policy__contents h2:first-of-type {
    padding-top: 0px;
}

.privacy-policy__contents p,
.privacy-policy__contents ul {
    font-size: 1.5rem;
    padding-top: 15px;
    list-style: circle;
}

.privacy-policy__contents ul {
    padding-left: 40px;
}

/* PC 769px */
@media screen and (min-width: 769px) {
    .privacy-policy__contents {
        margin: 50px 6.94%;
    }

    .privacy-policy__contents h2 {
        font-size: 2.3rem;
        padding-top: 50px;
    }

    .privacy-policy__contents p,
    .privacy-policy__contents ul {
        font-size: 1.6rem;
        padding-top: 15px;
    }
}

/* PC 769px */

/* =========================
   Loading
========================= */
#loading {
    position: fixed;
    inset: 0;
    background: #fff;
    z-index: 9999;

    display: flex;
    align-items: center;
    justify-content: center;

    opacity: 1;
    visibility: visible;
    transition: opacity .4s ease, visibility .4s ease;
}

.loading__text {
    display: flex;
    justify-content: center;
    align-items: baseline;
    font-size: 1.6rem;
}

.loading__text .count {
    font-variant-numeric: tabular-nums;
    min-width: 2ch;
    text-align: right;
    margin-left: 6px;
}

.loading__logo {
    margin-top: 15px;
    display: flex;
    gap: 6px;
    justify-content: center;
}

.loading__img {
    height: 40px;
    animation: jump 1.2s ease-in-out infinite;
}

@keyframes jump {
    0% {
        transform: translateY(0);
    }

    30% {
        transform: translateY(-10px);
    }

    50% {
        transform: translateY(0);
    }

    100% {
        transform: translateY(0);
    }
}

.loading__img:nth-child(1) {
    animation-delay: 0s;
}

.loading__img:nth-child(2) {
    animation-delay: .1s;
}

.loading__img:nth-child(3) {
    animation-delay: .2s;
}

.loading__img:nth-child(4) {
    animation-delay: .3s;
}

.loading__img:nth-child(5) {
    animation-delay: .4s;
}

.loading__img:nth-child(6) {
    animation-delay: .5s;
}

.loading__img:nth-child(7) {
    animation-delay: .6s;
}

.loading__img:nth-child(8) {
    animation-delay: .7s;
}

/* PC 769px */
@media screen and (min-width: 769px) {
    .loading__text {
        font-size: 2.0rem;
    }

    .loading__img {
        height: 60px;
    }
}

/* PC 769px */

/* =========================
   index
========================= */
article.page {
    padding: 90px 30px 0 30px;
}

/* PC 769px */
@media screen and (min-width: 769px) {
    article.page {
        padding: 90px 80px 0 80px;
    }
}

/* PC 769px */