:root {
    --content-width: 1200px;
    --content-width-sm: 1024px;
    --spacing: clamp(2px, 1.568px + 0.14vw, 4px);

    /* 0.75rem (12px) */
    --text-xs: 0.75rem;
    --text-xs--line-height: calc(1 / 0.75);

    /* 0.875rem (14px) */
    --text-sm: 0.875rem;
    --text-sm--line-height: calc(1.25 / 0.875);

    /* 1rem (16px) */
    --text-base: 1rem;
    --text-base--line-height: calc(1.5 / 1);

    /* 1.125rem (18px) */
    --text-lg: 1.125rem;
    --text-lg--line-height: calc(1.75 / 1.125);

    /* 1.25rem (20px) */
    --text-xl: 1.25rem;
    --text-xl--line-height: calc(1.75 / 1.25);

    /* 1.5rem (24px) */
    --text-2xl: 1.5rem;
    --text-2xl--line-height: calc(2 / 1.5);

    /* 1.875rem (30px) */
    --text-3xl: 1.875rem;
    --text-3xl--line-height: calc(2.25 / 1.875);

    /* 2.25rem (36px) */
    --text-4xl: 2.25rem;
    --text-4xl--line-height: calc(2.5 / 2.25);

    /* 3rem (48px) */
    --text-5xl: 3rem;
    --text-5xl--line-height: 1;

    /* 3.75rem (60px) */
    --text-6xl: 3.75rem;
    --text-6xl--line-height: 1;

    /* 4.5rem (72px) */
    --text-7xl: 4.5rem;
    --text-7xl--line-height: 1;

    /* 6rem (96px) */
    --text-8xl: 6rem;
    --text-8xl--line-height: 1;

    /* 8rem (128px) */
    --text-9xl: 8rem;
    --text-9xl--line-height: 1;

    --swiper-navigation-color: #00ada5;
}

@font-face {
    font-family: 'LightNovelPOP';
    src: url('../font/07LightNovelPOP.otf') format('opentype');
    font-weight: normal;
    font-style: normal;
}

* {
    box-sizing: border-box;
    -webkit-tap-highlight-color: transparent;
}

a {
    color: inherit;
}

p {
    margin: 0;
}

h1,
h2,
h3,
h4,
h5,
h6 {
    margin: 0;
}

ul {
    list-style: none;
    padding: 0;
    margin: 0;
}

li {
    list-style: none;
}

dl {
    margin: 0;
}

dt {
    margin: 0;
}

dd {
    margin: 0;
}

html {
    scroll-behavior: smooth;
}

body {
    font-family: "Noto Sans JP", sans-serif;
    font-weight: 400;
    font-style: normal;
    font-feature-settings: "palt";
    letter-spacing: 2px;

    margin: 0;
    padding: 0;
}

::selection {
    color: white;
    background-color: #228E02;
}

/*
コンテンツ幅
*/

.content-width-margin {
    margin-left: auto;
    margin-right: auto;
    max-width: var(--content-width);
}

.content-width-padding {
    padding-left: calc((100% - var(--content-width)) / 2);
    padding-right: calc((100% - var(--content-width)) / 2);
    width: 100%;
}

.content-width-margin-sm {
    margin-left: auto;
    margin-right: auto;
    max-width: var(--content-width-sm);
}

.content-width-padding-sm {
    padding-left: calc((100% - var(--content-width-sm)) / 2);
    padding-right: calc((100% - var(--content-width-sm)) / 2);
    width: 100%;
}

@media (max-width: 1232px) {
    .content-width-margin {
        margin-left: 16px;
        margin-right: 16px;
    }

    .content-width-padding {
        padding-left: 16px;
        padding-right: 16px;
    }
}

@media (max-width: 1048px) {
    .content-width-margin-sm {
        margin-left: 16px;
        margin-right: 16px;
    }

    .content-width-padding-sm {
        padding-left: 16px;
        padding-right: 16px;
    }
}

/*
フェードイン
*/

@keyframes fadein {
    0% {
        opacity: 0;
        transform: translateY(5px) scale(0.95);
    }

    100% {
        opacity: 1;
        transform: translateY(0) scale(1);
    }
}

.fadein {
    animation: fadein 1s ease-out 0s 1 normal forwards;
    animation-play-state: paused;
}

.fadein--active {
    animation-play-state: running;
}

/*
display
*/

.block {
    display: block;
}

.flex {
    display: flex;
}

.grid {
    display: grid;
}

/*
テキストカラー
*/

.text-white {
    color: white;
}

.text-black {
    color: black;
}

/*
テキストアライン
*/

.text-center {
    text-align: center;
}

.text-left {
    text-align: left;
}

.text-right {
    text-align: right;
}

/*
テキストサイズ
*/

.text-xs {
    font-size: var(--text-xs);
    line-height: var(--text-xs--line-height);
}

.text-sm {
    font-size: var(--text-sm);
    line-height: var(--text-sm--line-height);
}

.text-base {
    font-size: var(--text-base);
    line-height: var(--text-base--line-height);
}

.text-lg {
    font-size: var(--text-lg);
    line-height: var(--text-lg--line-height);
}

.text-xl {
    font-size: var(--text-xl);
    line-height: var(--text-xl--line-height);
}

.text-\[1\.375rem\] {
    font-size: 1.375rem;
    line-height: calc(1.75 / 1.375);
}

.text-2xl {
    font-size: var(--text-2xl);
    line-height: var(--text-2xl--line-height);
}

.text-3xl {
    font-size: var(--text-3xl);
    line-height: var(--text-3xl--line-height);
}

.text-4xl {
    font-size: var(--text-4xl);
    line-height: var(--text-4xl--line-height);
}

.text-5xl {
    font-size: var(--text-5xl);
    line-height: var(--text-5xl--line-height);
}

.text-6xl {
    font-size: var(--text-6xl);
    line-height: var(--text-6xl--line-height);
}

.text-7xl {
    font-size: var(--text-7xl);
    line-height: var(--text-7xl--line-height);
}

.text-8xl {
    font-size: var(--text-8xl);
    line-height: var(--text-8xl--line-height);
}

.text-9xl {
    font-size: var(--text-9xl);
    line-height: var(--text-9xl--line-height);
}

/*
フォントウェイト
*/

.font-thin {
    font-weight: 100;
}

.font-extralight {
    font-weight: 200;
}

.font-light {
    font-weight: 300;
}

.font-normal {
    font-weight: 400;
}

.font-medium {
    font-weight: 500;
}

.font-semibold {
    font-weight: 600;
}

.font-bold {
    font-weight: 700;
}

.font-extrabold {
    font-weight: 800;
}

.font-black {
    font-weight: 900;
}

/*
line-height
*/

.leading-1 {
    line-height: 1;
}

.leading-1\.25 {
    line-height: 1.25;
}

.leading-1\.5 {
    line-height: 1.5;
}

.leading-1\.75 {
    line-height: 1.75;
}

.leading-2 {
    line-height: 2;
}

.leading-2\.25 {
    line-height: 2.25;
}

.leading-2\.5 {
    line-height: 2.5;
}

.leading-2\.75 {
    line-height: 2.75;
}

.leading-3 {
    line-height: 3;
}

/*
テキストデコレーション
*/

.no-underline {
    text-decoration: none;
}

/*
ホワイトスペース
*/

.whitespace-nowrap {
    white-space: nowrap;
}

/*
letter-spacing
*/

.tracking-normal {
    letter-spacing: normal;
}

/*
背景色
*/

.bg-yellow-50 {
    background-color: #FDF7E3;
}

.bg-decoration-flags {
    background-image: url(../images/bg_flags_left.svg), url(../images/bg_flags_right.svg);
    background-size: 22% auto, 22% auto;
    background-position: left top, right top;
    background-repeat: no-repeat, no-repeat;
}

/*
スクロールスナップ
*/

.snap-none {
    scroll-snap-type: none;
}

.snap-x {
    scroll-snap-type: x var(--tw-scroll-snap-strictness, proximity);
}

.snap-y {
    scroll-snap-type: y var(--tw-scroll-snap-strictness, proximity);
}

.snap-both {
    scroll-snap-type: both var(--tw-scroll-snap-strictness, proximity);
}

.snap-start {
    scroll-snap-align: start;
}

.snap-center {
    scroll-snap-align: center;
}

.snap-end {
    scroll-snap-align: end;
}

.snap-mandatory {
    --tw-scroll-snap-strictness: mandatory;
}

.snap-proximity {
    --tw-scroll-snap-strictness: proximity;
}

/*
オーバーフロー
*/

.overflow-hidden {
    overflow: hidden;
}

.overflow-scroll {
    overflow: scroll;
}

/*
幅・高さ
*/

.w-fit {
    width: fit-content;
}

.w-100 {
    width: 100%;
}

.h-100 {
    height: 100%;
}

.h-screen {
    height: 100vh;
}

/*
マージン
*/

.mx-auto {
    margin-left: auto;
    margin-right: auto;
}

.ml-auto {
    margin-left: auto;
}

.mr-auto {
    margin-right: auto;
}

.mt-auto {
    margin-top: auto;
}

.mt-0 {
    margin-top: 0;
}

.mt-2 {
    margin-top: calc(var(--spacing) * 2);
}

.mt-3 {
    margin-top: calc(var(--spacing) * 3);
}

.mt-4 {
    margin-top: calc(var(--spacing) * 4);
}

.mt-5 {
    margin-top: calc(var(--spacing) * 5);
}

.mt-6 {
    margin-top: calc(var(--spacing) * 6);
}

.mt-8 {
    margin-top: calc(var(--spacing) * 8);
}

.mt-10 {
    margin-top: calc(var(--spacing) * 10);
}

.mt-12 {
    margin-top: calc(var(--spacing) * 12);
}

.mt-14 {
    margin-top: calc(var(--spacing) * 14);
}

.mt-16 {
    margin-top: calc(var(--spacing) * 16);
}

.mt-18 {
    margin-top: calc(var(--spacing) * 18);
}

.mt-20 {
    margin-top: calc(var(--spacing) * 20);
}

.mt-22 {
    margin-top: calc(var(--spacing) * 22);
}

.mt-24 {
    margin-top: calc(var(--spacing) * 24);
}

.mt-28 {
    margin-top: calc(var(--spacing) * 28);
}

.mt-32 {
    margin-top: calc(var(--spacing) * 32);
}

.mt-36 {
    margin-top: calc(var(--spacing) * 36);
}

.mt-40 {
    margin-top: calc(var(--spacing) * 40);
}

.mt-44 {
    margin-top: calc(var(--spacing) * 44);
}

.mt-48 {
    margin-top: calc(var(--spacing) * 48);
}

.mt-54 {
    margin-top: calc(var(--spacing) * 54);
}

.mt-64 {
    margin-top: calc(var(--spacing) * 64);
}

.mt-96 {
    margin-top: calc(var(--spacing) * 96);
}

.mt-114 {
    margin-top: calc(var(--spacing) * 114);
}

.mt-120 {
    margin-top: calc(var(--spacing) * 120);
}

.mb-auto {
    margin-bottom: auto;
}

.mb-0 {
    margin-bottom: 0;
}

.mb-2 {
    margin-bottom: calc(var(--spacing) * 2);
}

.mb-3 {
    margin-bottom: calc(var(--spacing) * 3);
}

.mb-4 {
    margin-bottom: calc(var(--spacing) * 4);
}

.mb-5 {
    margin-bottom: calc(var(--spacing) * 5);
}

.mb-6 {
    margin-bottom: calc(var(--spacing) * 6);
}

.mb-8 {
    margin-bottom: calc(var(--spacing) * 8);
}

.mb-10 {
    margin-bottom: calc(var(--spacing) * 10);
}

.mb-12 {
    margin-bottom: calc(var(--spacing) * 12);
}

.mb-14 {
    margin-bottom: calc(var(--spacing) * 14);
}

.mb-16 {
    margin-bottom: calc(var(--spacing) * 16);
}

.mb-18 {
    margin-bottom: calc(var(--spacing) * 18);
}

.mb-20 {
    margin-bottom: calc(var(--spacing) * 20);
}

.mb-22 {
    margin-bottom: calc(var(--spacing) * 22);
}

.mb-24 {
    margin-bottom: calc(var(--spacing) * 24);
}

.mb-28 {
    margin-bottom: calc(var(--spacing) * 28);
}

.mb-32 {
    margin-bottom: calc(var(--spacing) * 32);
}

.mb-36 {
    margin-bottom: calc(var(--spacing) * 36);
}

.mb-40 {
    margin-bottom: calc(var(--spacing) * 40);
}

.mb-44 {
    margin-bottom: calc(var(--spacing) * 44);
}

.mb-48 {
    margin-bottom: calc(var(--spacing) * 48);
}

.mb-54 {
    margin-bottom: calc(var(--spacing) * 54);
}

.mb-64 {
    margin-bottom: calc(var(--spacing) * 64);
}

.mb-96 {
    margin-bottom: calc(var(--spacing) * 96);
}

.mb-114 {
    margin-bottom: calc(var(--spacing) * 114);
}

.mb-120 {
    margin-bottom: calc(var(--spacing) * 120);
}

.mr-24 {
    margin-right: calc(var(--spacing) * 24);
}

/*
パディング
*/

.pt-0 {
    padding-top: 0;
}

.pt-2 {
    padding-top: calc(var(--spacing) * 2);
}

.pt-3 {
    padding-top: calc(var(--spacing) * 3);
}

.pt-4 {
    padding-top: calc(var(--spacing) * 4);
}

.pt-5 {
    padding-top: calc(var(--spacing) * 5);
}

.pt-6 {
    padding-top: calc(var(--spacing) * 6);
}

.pt-8 {
    padding-top: calc(var(--spacing) * 8);
}

.pt-10 {
    padding-top: calc(var(--spacing) * 10);
}

.pt-12 {
    padding-top: calc(var(--spacing) * 12);
}

.pt-14 {
    padding-top: calc(var(--spacing) * 14);
}

.pt-16 {
    padding-top: calc(var(--spacing) * 16);
}

.pt-18 {
    padding-top: calc(var(--spacing) * 18);
}

.pt-20 {
    padding-top: calc(var(--spacing) * 20);
}

.pt-22 {
    padding-top: calc(var(--spacing) * 22);
}

.pt-24 {
    padding-top: calc(var(--spacing) * 24);
}

.pt-28 {
    padding-top: calc(var(--spacing) * 28);
}

.pt-32 {
    padding-top: calc(var(--spacing) * 32);
}

.pt-36 {
    padding-top: calc(var(--spacing) * 36);
}

.pt-40 {
    padding-top: calc(var(--spacing) * 40);
}

.pt-44 {
    padding-top: calc(var(--spacing) * 44);
}

.pt-48 {
    padding-top: calc(var(--spacing) * 48);
}

.pt-54 {
    padding-top: calc(var(--spacing) * 54);
}

.pt-64 {
    padding-top: calc(var(--spacing) * 64);
}

.pt-96 {
    padding-top: calc(var(--spacing) * 96);
}

.pt-114 {
    padding-top: calc(var(--spacing) * 114);
}

.pt-120 {
    padding-top: calc(var(--spacing) * 120);
}

.pb-0 {
    padding-bottom: 0;
}

.pb-2 {
    padding-bottom: calc(var(--spacing) * 2);
}

.pb-3 {
    padding-bottom: calc(var(--spacing) * 3);
}

.pb-4 {
    padding-bottom: calc(var(--spacing) * 4);
}

.pb-5 {
    padding-bottom: calc(var(--spacing) * 5);
}

.pb-6 {
    padding-bottom: calc(var(--spacing) * 6);
}

.pb-8 {
    padding-bottom: calc(var(--spacing) * 8);
}

.pb-10 {
    padding-bottom: calc(var(--spacing) * 10);
}

.pb-12 {
    padding-bottom: calc(var(--spacing) * 12);
}

.pb-14 {
    padding-bottom: calc(var(--spacing) * 14);
}

.pb-16 {
    padding-bottom: calc(var(--spacing) * 16);
}

.pb-18 {
    padding-bottom: calc(var(--spacing) * 18);
}

.pb-20 {
    padding-bottom: calc(var(--spacing) * 20);
}

.pb-22 {
    padding-bottom: calc(var(--spacing) * 22);
}

.pb-24 {
    padding-bottom: calc(var(--spacing) * 24);
}

.pb-28 {
    padding-bottom: calc(var(--spacing) * 28);
}

.pb-32 {
    padding-bottom: calc(var(--spacing) * 32);
}

.pb-36 {
    padding-bottom: calc(var(--spacing) * 36);
}

.pb-40 {
    padding-bottom: calc(var(--spacing) * 40);
}

.pb-44 {
    padding-bottom: calc(var(--spacing) * 44);
}

.pb-48 {
    padding-bottom: calc(var(--spacing) * 48);
}

.pb-54 {
    padding-bottom: calc(var(--spacing) * 54);
}

.pb-64 {
    padding-bottom: calc(var(--spacing) * 64);
}

.pb-96 {
    padding-bottom: calc(var(--spacing) * 96);
}

.pb-114 {
    padding-bottom: calc(var(--spacing) * 114);
}

.pb-120 {
    padding-bottom: calc(var(--spacing) * 120);
}

/*
角丸
*/

.rounded-lg {
    border-radius: 8px;
}

.rounded-xl {
    border-radius: 16px;
}

/*
budoux
*/

@media (max-width: 768px) {
    .md\:budoux-full br {
        display: none;
    }
}

/*
見出し
*/

.heading {
    font-family: "LightNovelPOP", sans-serif;
    font-size: clamp(2rem, 1.622rem + 1.89vw, 3.75rem);
    line-height: 1;
    text-align: center;
    margin-left: auto;
    margin-right: auto;
}

/*
お問い合わせ
*/
.contact {
    display: grid;
    align-items: center;
    justify-content: space-between;
    grid-template-columns: auto auto auto;
    gap: 32px;
    background-color: #EFEFEF;
}

.contact__body {
    display: flex;
    flex-direction: column;
    gap: clamp(19.008px, 14.896px + 1.28vw, 38px);
}

.contact__body__heading {
    font-family: 'LightNovelPOP', sans-serif;
    font-size: clamp(1.625rem, 1.26rem + 1.82vw, 3.313rem);
    font-weight: bold;
}

.contact__body__text {
    font-size: var(--text-base);
    font-weight: bold;
}

.contact__contact__button {
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 9999px;
    background-color: black;
    color: #fff;
    font-size: clamp(1.125rem, 1.044rem + 0.41vw, 1.5rem);
    font-weight: bold;
    line-height: 1;
    text-decoration: none;
    position: relative;
    padding: clamp(10px, 7.616px + 0.74vw, 21.008px) 2em;
    white-space: nowrap;
    min-width: clamp(240px, 211.024px + 9.05vw, 374px);
    transition: transform 0.3s ease-in-out;
}

.contact__contact__button::before {
    display: block;
    content: "";
    aspect-ratio: 1 / 1;
    background-image: url(../images/mail.svg);
    background-repeat: no-repeat;
    background-size: contain;
    margin-right: 0.5em;
    width: 2em;
}

.contact__contact__button:hover {
    transform: scale(1.1);
}

.contact__tel {
    display: flex;
    justify-content: center;
    flex-direction: column;
    gap: 16px;
}

.contact__tel__text {
    font-size: clamp(1rem, 0.946rem + 0.27vw, 1.25rem);
    font-weight: bold;
    text-align: center;
}

.contact__tel__link {
    display: block;
    aspect-ratio: 374 / 37;
    background-image: url(../images/tel.svg);
    background-position: center;
    background-size: contain;
    background-repeat: no-repeat;
    width: clamp(280px, 259.68px + 6.35vw, 374px);
}

@media (max-width: 1080px) {
    .contact {
        grid-template-columns: 1fr;
    }

    .contact__body__heading {
        text-align: center;
    }

    .contact__body__text {
        text-align: center;
    }

    .contact__contact__button {
        margin-left: auto;
        margin-right: auto;
        width: clamp(240px, 211.024px + 9.05vw, 374px);
    }
}

/*
ヘッダー・メニュー
*/

.header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    position: fixed;
    overflow: hidden;
    background-color: #30B633;
    padding: 13px clamp(14px, 10.976px + 0.95vw, 28px) 13px clamp(14px, 1.888px + 3.78vw, 70px);
    height: clamp(60px, 52.432px + 2.36vw, 95.008px);
    width: 100%;
    z-index: 999;
    transition: background-color 0.3s ease-in;
}

.header--top {
    background-color: transparent;
}

.header--top>.header__logo {
    display: none;
}

.header__logo {
    display: block;
    height: 100%;
    transition: transform 0.2s ease-in;
}

.header__logo:hover {
    transform: scale(1.05);
}

.header__logo>img {
    display: block;
    height: 100%;
}

.header__buttons {
    display: flex;
    justify-content: right;
    gap: 10px;
    width: 100%;
}

.header__buttons>li {
    display: contents;
}

.header__buttons__contact,
.header__buttons__menu,
.menu__buttons__close {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 14px;
    cursor: pointer;
    user-select: none;
    border: 3px solid #228E02;
    border-radius: 9999px;
    background-color: white;
    padding: clamp(10px, 9.136px + 0.27vw, 14px) clamp(18px, 16.704px + 0.41vw, 24px);
    color: #228E02;
    font-size: clamp(0.875rem, 0.794rem + 0.41vw, 1.25rem);
    font-weight: bold;
    line-height: 1;
    text-decoration: none;
    transition: all 0.3s ease-in-out;
}

.header__buttons__contact:hover,
.header__buttons__menu:hover,
.menu__buttons__close:hover {
    background-color: #228E02;
    color: white;
}

.header__buttons__contact::after {
    aspect-ratio: 32 / 22;
    display: block;
    content: "";
    background-image: url(../images/header_contact.svg);
    background-position: center;
    background-repeat: no-repeat;
    background-size: contain;
    width: 1.6em;
    transition: all 0.3s ease-in-out;
}

.header__buttons__menu::after,
.menu__buttons__close::after {
    aspect-ratio: 30 / 22;
    display: block;
    content: "";
    background-position: center;
    background-repeat: no-repeat;
    background-size: contain;
    width: 1.5em;
    transition: all 0.3s ease-in-out;
}

.header__buttons__contact:hover::after,
.header__buttons__menu:hover::after,
.menu__buttons__close:hover::after {
    filter: invert(1) grayscale(1) brightness(2);
}

.header__buttons__menu::after {
    background-image: url(../images/header_menu.svg);
}

.menu__buttons__close::after {
    background-image: url(../images/header_menu_close.svg);
}

@media (max-width: 920px) {
    .header__buttons__contact {
        display: none;
    }
}

@keyframes menu-show {
    0% {
        pointer-events: none;
        opacity: 0.6;
        transform: rotate3d(0.1, 0, 1, -70deg) translate3d(200px, 0, 0) scale(0.5);
    }

    100% {
        pointer-events: visible;
        opacity: 1;
        transform: rotate3d(0.1, 0, 1, 0deg) translate3d(0px, 0, 0) scale(1);
    }
}

@keyframes menu-hide {
    0% {
        opacity: 1;
        visibility: visible;
        transform: rotate3d(0.1, 0, 1, 0deg) translate3d(0px, 0, 0) scale(1);
    }

    100% {
        opacity: 0;
        visibility: hidden;
        transform: rotate3d(0.1, 0, 1, -70deg) translate3d(200px, 0, 0) scale(0.8);
    }
}

.menu-container {
    background-color: #30b63366;
    opacity: 0;
    pointer-events: none;
    position: fixed;
    top: 0;
    left: 0;
    padding: clamp(10px, 7.84px + 0.68vw, 20px) clamp(14px, 10.976px + 0.95vw, 28px);
    height: 100%;
    width: 100%;
    z-index: 9999;
    transition: opacity 0.3s;
}

.menu-container--visible {
    pointer-events: visible;
    opacity: 1;
}

.menu {
    border-radius: 20px;
    background-color: #30B633;
    pointer-events: none;
    visibility: hidden;
    margin-left: auto;
    padding: 20px 25px clamp(50px, 38.112px + 3.72vw, 105.008px) 50px;
    height: fit-content;
    width: min(100%, 500px);
    transition: opacity 0.3s;
    transform-origin: 100% 0%;
}

.menu--visible {
    animation: menu-show 0.6s cubic-bezier(.38, 1.89, .51, .72) forwards;
    visibility: visible;
}

.menu--invisible {
    animation: menu-hide 0.3s ease-out forwards;
}

.menu__buttons {
    display: flex;
    justify-content: right;
}

.menu-links {
    display: flex;
    flex-direction: column;
    gap: clamp(25px, 19.6px + 1.69vw, 50px);
}

.menu-links>li {
    color: white;
    font-size: clamp(1.5rem, 1.419rem + 0.41vw, 1.875rem);
    font-weight: bold;
    line-height: 1;
}

.menu-links>li>a {
    display: flex;
    align-items: center;
    gap: 21px;
    color: inherit;
    text-decoration: none;
    transform-origin: 0% 50%;
    transition: transform 0.1s ease-in;
}

.menu-links>li>a::before {
    content: "●";
    font-size: 12px;
}

.menu-links>li>a:hover {
    transform: scale(1.05);
}

.menu-socials {
    display: flex;
    align-items: center;
}

.menu-socials>li>a {
    display: block;
}

.menu-socials>li>a>img {
    display: block;
    aspect-ratio: 1 / 1;
    width: 60px;
    transition: transform 0.1s ease-in;
}

.menu-socials>li>a:hover {
    transform: scale(1.05);
}

/*
フッター
*/

.footer {
    display: grid;
    justify-content: space-between;
    grid-template-columns: auto auto;
    grid-template-rows: 1fr auto;
    gap: 32px;
}

.footer__info {
    display: flex;
    flex-direction: column;
    gap: 16px;
}

.footer__info__logo {
    display: block;
    width: 250px;
}

.footer__info__address {
    font-size: var(--text-sm);
}

.footer__links {
    grid-column: 2;
    grid-row: span 2;
    display: flex;
    gap: 20px;
}

.footer__links>li {
    display: contents;
}

.footer__links>li>a {
    display: block;
    border-radius: 9999px;
    background-color: black;
    color: #fff;
    font-size: var(--text-base);
    font-weight: bold;
    line-height: 1;
    writing-mode: vertical-rl;
    text-align: center;
    text-orientation: mixed;
    text-decoration: none;
    padding: 1em 12px;
    white-space: nowrap;
    transition: transform 0.3s ease-in-out;
}

.footer__links>li>a:hover {
    transform: scale(1.1);
}

.footer__copyright {
    grid-column: 1;
    grid-row: 2;
    font-size: var(--text-sm);
}

@media (max-width: 920px) {
    .footer {
        grid-template-columns: 1fr;
        grid-template-rows: auto auto auto;
        /* PAGETOP用のスペース */
        margin-bottom: 200px;
    }

    .footer__info {
        align-items: center;
    }

    .footer__links {
        grid-column: 1;
        grid-row: 2;
        justify-content: center;
    }

    .footer__copyright {
        grid-column: 1;
        grid-row: 3;
        text-align: center;
    }
}

/*
ページトップ
*/

.pagetop {
    display: flex;
    align-items: center;
    flex-direction: column;
    gap: 12px;
    cursor: pointer;
    position: fixed;
    bottom: 0;
    left: 50%;
    transform: translateX(-50%) translateY(100%);
    transition: transform 0.2s ease-out;
    width: fit-content;
}

.pagetop--visible {
    transform: translateX(-50%) translateY(10%);
    transition: transform 0.3s ease-in;
}

.pagetop__text {
    font-size: var(--text-base);
    font-weight: bold;
    line-height: 1.1;
}

/*
news
*/

.news-list {
    display: grid;
    grid-template-columns: 1fr 1fr;
    column-gap: clamp(24px, 18.816px + 1.62vw, 48px);
    row-gap: clamp(30px, 23.52px + 2.03vw, 60px);
    width: 100%;
}

.news-list__item {
    display: flex;
    flex-direction: column;
    gap: clamp(16px, 12.752px + 1.01vw, 31px);
    text-decoration: none;
    transition: transform 0.3s ease-in-out;
}

.news-list__item:hover {
    transform: scale(1.05);
}

.news-list__item__thumbnail {
    display: block;
    aspect-ratio: 615 / 405;
    border-radius: 12px;
    object-fit: cover;
    width: 100%;
}

.news-list__item__title {
    font-size: var(--text-base);
    font-weight: bold;
}

.news-list__item__date {
    font-size: var(--text-sm);
    font-weight: bold;
}

/*
button
*/
.button-sm {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background-color: #30B633;
    border: none;
    border-radius: 999px;
    cursor: pointer;
    color: white;
    font-size: 1.25rem;
    font-weight: bold;
    line-height: 1;
    text-align: center;
    text-decoration: none;
    padding: 17px calc(28px + 1.5em) 17px calc(28px + 1.5em);
    min-width: 232px;
    transition: transform 0.2s ease-in;
}

.button-sm:hover {
    transform: scale(1.05);
}

.button-sm--back {
    background-image: url(../images/back.svg);
    background-repeat: no-repeat;
    background-position: left 17px center;
    background-size: auto 1em;
}

.button-sm--next {
    background-image: url(../images/next.svg);
    background-repeat: no-repeat;
    background-position: right 17px center;
    background-size: auto 1em;
}

/*
丸ボックス
*/

.box-rounded {
    --sw: clamp(5px, 3.92px + 0.34vw, 10px);
    background-color: white;
    border: clamp(3px, 2.56px + 0.14vw, 5px) solid var(--box-rounded-border-color, #3EA142);
    border-radius: clamp(20px, 15.68px + 1.35vw, 40px);
    box-shadow: var(--sw) var(--sw) 0px #E8E0CA;
    margin-right: var(--sw);
    margin-bottom: var(--sw);
}

.box-rounded--pink {
    --box-rounded-border-color: #FF6E95;
}

.box-rounded--blue {
    --box-rounded-border-color: #006EB9;
}

.box-rounded--orange {
    --box-rounded-border-color: #F99B00;
}

.box-rounded--purple {
    --box-rounded-border-color: #80599E;
}

.box-rounded--caution {
    --box-rounded-border-color: #FF0000;
    background-color: #FFFEE3;
}

/*
dots
*/

.dots-v,
.dots-h {
    --s: clamp(6px, 6.272px + 0.54vw, 12px);
    display: block;
    background-image: url(../images/dot.svg);
    background-size: var(--s) var(--s);
    background-position: center;
}

.dots-v {
    height: 100%;
    width: var(--s);
}

.dots-h {
    height: var(--s);
    width: 100%;
}

/*
pagination
*/

.wp-pagenavi {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 5px;
}

.wp-pagenavi .current,
.wp-pagenavi .page,
.wp-pagenavi .nextpostslink,
.wp-pagenavi .previouspostslink {
    display: flex;
    align-items: center;
    justify-content: center;
    aspect-ratio: 1 / 1;
    font-size: 1rem;
    font-weight: normal;
    line-height: 1;
    text-decoration: none;
    width: 40px;
    transition: all 0.2s ease-in;
}

.wp-pagenavi .current {
    background-color: #30B633;
    color: white;
}

.wp-pagenavi .page {
    background-color: #FFF6F8;
    color: black;
}

.wp-pagenavi .nextpostslink,
.wp-pagenavi .previouspostslink {
    background-color: transparent;
    color: black;
    font-weight: 300;
}

.wp-pagenavi .page:hover,
.wp-pagenavi .nextpostslink:hover,
.wp-pagenavi .previouspostslink:hover {
    background-color: #FFF6F8;
    filter: invert(0.3);
    transform: scale(1.05);
}

/*
form
*/

.form {
    display: grid;
    grid-template-columns: auto 1fr;
    column-gap: 20px;
    row-gap: 26px;
}

@media (max-width: 780px) {
    .form {
        grid-template-columns: 1fr;
    }
}

.form__label {
    display: flex;
    align-items: center;
    gap: 12px;
    font-size: 1rem;
    font-weight: bold;
    line-height: 1;
}

.form__label::before {
    content: "●";
    color: #3EA142;
    font-size: 12px;
    font-weight: normal;
    line-height: 1;
    margin-right: -6px;
}

.form__label--baseline {
    align-self: baseline;
}

.form__input {
    display: flex;
    justify-content: center;
    flex-direction: column;
    width: 100%;
}

.form__input input {
    max-width: 100%;
    width: 100%;
}

.form__input input[type="text"],
.form__input input[type="email"],
.form__input textarea {
    background-color: white;
    border: 1px solid #9A9A9A;
    border-radius: 5px;
    font-size: 1.25rem;
    line-height: 1.125;
    padding: 7px;
}

.form__input textarea {
    width: 100%;
}

.form-address {
    display: grid;
    align-items: center;
    grid-template-columns: auto 1fr;
    column-gap: 22px;
    row-gap: 7px;
}

.form-address__label {
    font-size: 1rem;
    font-weight: bold;
    line-height: 1;
}

.form-image {
    display: flex;
    align-items: center;
    gap: 10px;
}

.form-required {
    display: inline-block;
    background-color: #FF0000;
    border-radius: 999px;
    color: white;
    font-size: 0.75rem;
    font-weight: normal;
    line-height: 1;
    padding: 1px 1em 2px;
}

.form-optional {
    display: inline-block;
    background-color: #999996;
    border-radius: 999px;
    color: white;
    font-size: 0.75rem;
    font-weight: normal;
    line-height: 1;
    padding: 1px 1em;
}

.form-buttons {
    display: flex;
    align-items: center;
    justify-content: center;
    flex-wrap: wrap;
    gap: 16px;
}

.mwform-tel-field,
.mwform-zip-field {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 4px;
}

/*
birds
*/

@keyframes bird-001-fly {
    0% {
        transform: translate3d(0, 0, 0);
    }

    100% {
        transform: translate3d(0, calc(clamp(30px, 23.52px + 2.03vw, 60px) * -1), 0);
    }
}

@keyframes bird-001-wingRight {
    0% {
        transform: rotate3d(0, 0, 1, 0deg);
    }

    100% {
        transform: rotate3d(0, -1, 1, 30deg);
    }
}

@keyframes bird-001-wingLeft {
    0% {
        transform: rotate3d(0, 0, 1, 0deg);
    }

    100% {
        transform: rotate3d(0, -1, 1, -30deg);
    }
}

@keyframes bird-001-key {
    0% {
        transform: rotate3d(0, 0, 1, 0deg);
    }

    80% {
        transform: rotate3d(0, 0, 1, 0deg);
    }

    90% {
        transform: rotate3d(0, 0, 1, -7deg);
    }

    100% {
        transform: rotate3d(0, 0, 1, 7deg);
    }
}

.bird-001 {
    aspect-ratio: 220 / 235;
    position: relative;
    width: var(--bird-001-width, clamp(73.008px, 41.216px + 9.93vw, 220px));
}

.bird-001--fly {
    animation: bird-001-fly 2s ease-in-out infinite alternate;
}

.bird-001__face {
    position: absolute;
    top: calc((58 / 235) * 100%);
    left: calc((85 / 220) * 100%);
    width: calc((69 / 220) * 100%);
    height: calc((96 / 235) * 100%);
    background-image: url(../images/bird_001/face.svg);
    background-size: contain;
    background-repeat: no-repeat;
    z-index: 5;
}

.bird-001__wingRight {
    animation: bird-001-wingRight 2s ease-in-out infinite alternate;
    position: absolute;
    top: calc((43 / 235) * 100%);
    left: calc((130 / 220) * 100%);
    width: calc((91 / 220) * 100%);
    height: calc((76 / 235) * 100%);
    background-image: url(../images/bird_001/wing_right.svg);
    background-size: contain;
    background-repeat: no-repeat;
    transform-origin: 0% 100%;
    z-index: 3;
}

.bird-001__wingLeft {
    animation: bird-001-wingLeft 2s ease-in-out infinite alternate;
    position: absolute;
    top: 0;
    left: 0;
    width: calc((95 / 220) * 100%);
    height: calc((109 / 235) * 100%);
    background-image: url(../images/bird_001/wing_left.svg);
    background-size: contain;
    background-repeat: no-repeat;
    transform-origin: 100% 100%;
    z-index: 2;
}

.bird-001__body {
    position: absolute;
    top: calc((86 / 235) * 100%);
    left: calc((44 / 220) * 100%);
    width: calc((77 / 220) * 100%);
    height: calc((39 / 235) * 100%);
    background-image: url(../images/bird_001/body.svg);
    background-size: contain;
    background-repeat: no-repeat;
    z-index: 1;
}

.bird-001__key {
    animation: bird-001-key 3s ease-in-out infinite alternate;
    position: absolute;
    top: calc((145 / 235) * 100%);
    left: calc((111 / 220) * 100%);
    width: calc((36 / 220) * 100%);
    height: calc((90 / 235) * 100%);
    background-image: url(../images/bird_001/key.svg);
    background-size: contain;
    background-repeat: no-repeat;
    transform-origin: 50% 5%;
    z-index: 4;
}

@keyframes bird-002-fly {
    0% {
        transform: translate3d(0, 0, 0);
    }

    100% {
        transform: translate3d(0, calc(clamp(40px, 31.344px + 2.7vw, 80px) * -1), 0);
    }
}

@keyframes bird-002-wingRight {
    0% {
        transform: rotate3d(0, 0, 1, 0deg);
    }

    100% {
        transform: rotate3d(0, -1, 1, 30deg);
    }
}

@keyframes bird-002-wingLeft {
    0% {
        transform: rotate3d(0, 0, 1, 0deg);
    }

    100% {
        transform: rotate3d(0, -1, 1, -30deg);
    }
}

@keyframes bird-002-key {
    0% {
        transform: rotate3d(0, 0, 1, 5deg) translate3d(0, 0, 0);
    }

    100% {
        transform: rotate3d(0, 0, 1, -5deg) translate3d(0, 18%, 0);
    }
}

.bird-002 {
    aspect-ratio: 270 / 175;
    position: relative;
    width: var(--bird-002-width, clamp(90px, 51.088px + 12.16vw, 270px));
}

.bird-002--fly {
    animation: bird-002-fly 1.5s ease-in-out infinite alternate;
}

.bird-002__face {
    position: absolute;
    top: calc((11 / 175) * 100%);
    left: calc((87 / 270) * 100%);
    width: calc((88 / 270) * 100%);
    height: calc((74 / 175) * 100%);
    background-image: url(../images/bird_002/face.svg);
    background-size: contain;
    background-repeat: no-repeat;
    z-index: 5;
}

.bird-002__wingRight {
    animation: bird-002-wingRight 1.5s ease-in-out infinite alternate;
    position: absolute;
    top: calc((32 / 175) * 100%);
    left: calc((135 / 270) * 100%);
    width: calc((100 / 270) * 100%);
    height: calc((68 / 175) * 100%);
    background-image: url(../images/bird_002/wing_right.svg);
    background-size: contain;
    background-repeat: no-repeat;
    transform-origin: 0% 75%;
    z-index: 1;
}

.bird-002__wingLeft {
    animation: bird-002-wingLeft 1.5s ease-in-out infinite alternate;
    position: absolute;
    top: 0;
    left: 0;
    width: calc((106 / 270) * 100%);
    height: calc((103 / 175) * 100%);
    background-image: url(../images/bird_002/wing_left.svg);
    background-size: contain;
    background-repeat: no-repeat;
    transform-origin: 100% 75%;
    z-index: 3;
}

.bird-002__body {
    position: absolute;
    top: calc((34 / 175) * 100%);
    left: calc((28 / 270) * 100%);
    width: calc((120 / 270) * 100%);
    height: calc((85 / 175) * 100%);
    background-image: url(../images/bird_002/body.svg);
    background-size: contain;
    background-repeat: no-repeat;
    z-index: 2;
}

.bird-002__key {
    animation: bird-002-key 1.5s ease-in-out infinite alternate;
    position: absolute;
    top: calc((37 / 175) * 100%);
    left: calc((185 / 270) * 100%);
    width: calc((85 / 270) * 100%);
    height: calc((140 / 175) * 100%);
    background-image: url(../images/bird_002/key.svg);
    background-size: contain;
    background-repeat: no-repeat;
    transform-origin: 55% 10%;
    z-index: 4;
}

@keyframes bird-003-fly {
    0% {
        transform: translate3d(0, 0, 0);
    }

    100% {
        transform: translate3d(0, calc(clamp(25px, 19.6px + 1.69vw, 50px) * -1), 0);
    }
}

@keyframes bird-003-wingRight {
    0% {
        transform: rotate3d(0, 0, 1, 0deg);
    }

    100% {
        transform: rotate3d(0, -1, 1, 40deg);
    }
}

@keyframes bird-003-wingLeft {
    0% {
        transform: rotate3d(0, 0, 1, 0deg);
    }

    100% {
        transform: rotate3d(0, -1, 1, -40deg);
    }
}

.bird-003 {
    aspect-ratio: 202 / 153;
    position: relative;
    width: var(--bird-003-width, clamp(67.008px, 37.808px + 9.12vw, 202px));
}

.bird-003--fly {
    animation: bird-003-fly 1.2s ease-in-out infinite alternate;
}

.bird-003__face {
    position: absolute;
    top: calc((60 / 153) * 100%);
    left: calc((101 / 202) * 100%);
    width: calc((102 / 202) * 100%);
    height: calc((97 / 153) * 100%);
    background-image: url(../images/bird_003/face.svg);
    background-size: contain;
    background-repeat: no-repeat;
    z-index: 5;
}

.bird-003__wingRight {
    animation: bird-003-wingRight 1.2s ease-in-out infinite alternate;
    position: absolute;
    top: calc((6 / 153) * 100%);
    left: calc((61 / 202) * 100%);
    width: calc((51 / 202) * 100%);
    height: calc((82 / 153) * 100%);
    background-image: url(../images/bird_003/wing_right.svg);
    background-size: contain;
    background-repeat: no-repeat;
    transform-origin: 0% 75%;
    z-index: 1;
}

.bird-003__wingLeft {
    animation: bird-003-wingLeft 1.2s ease-in-out infinite alternate;
    position: absolute;
    top: calc((20 / 153) * 100%);
    left: 0;
    width: calc((107 / 202) * 100%);
    height: calc((99 / 153) * 100%);
    background-image: url(../images/bird_003/wing_left.svg);
    background-size: contain;
    background-repeat: no-repeat;
    transform-origin: 100% 75%;
    z-index: 3;
}

.bird-003__body {
    position: absolute;
    top: calc((13 / 153) * 100%);
    left: calc((30 / 202) * 100%);
    width: calc((113 / 202) * 100%);
    height: calc((131 / 153) * 100%);
    background-image: url(../images/bird_003/body.svg);
    background-size: contain;
    background-repeat: no-repeat;
    z-index: 2;
}