@charset 'UTF-8';
/*

Description: original-css
Author: akane maeda
WPテーマ orionに独自スタイルを追加する目的のCSSです。
*/
/* mixin
-----------------------------------------------------------*/
/*
ブレイクポイント

PC: 1200px
タブレット: 970px
スマホ(横): 767px
スマホ(縦): 485px

*/
/* CSS Variables */
@import url('https://fonts.googleapis.com/css2?family=Lato:wght@400;900&display=swap');
@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@400;700&display=swap');
@import url('https://fonts.googleapis.com/css2?family=Kiwi+Maru:wght@300;500&family=Pacifico&display=swap');
:root
{
    /* Typography */
    --heading-font: 'Pacifico', 'Kiwi Maru';'Lato';
    --body-font: 'Noto Sans JP', 'ヒラギノ角ゴシック', 'Hiragino Sans', 'メイリオ', Meiryo;
    --script-font: 'Dancing Script', cursive;
    --gothic-font: 'Noto Sans JP', 'ヒラギノ角ゴシック', 'Hiragino Sans', 'メイリオ', Meiryo;
    --mincho-font: 游明朝, YuMincho, 'ヒラギノ明朝 ProN W3', 'Hiragino Mincho ProN', HG明朝E, 'ＭＳ Ｐ明朝', 'MS PMincho', メイリオ, Meiryo;
    --line: #00b900;
    --instagram: radial-gradient(circle farthest-corner at 35% 90%, #fec564, transparent 50%), radial-gradient(circle farthest-corner at 0 140%, #fec564, transparent 50%), radial-gradient(ellipse farthest-corner at 0 -25%, #5258cf, transparent 50%), radial-gradient(ellipse farthest-corner at 20% -50%, #5258cf, transparent 50%),
    radial-gradient(ellipse farthest-corner at 100% 0, #893dc2, transparent 50%), radial-gradient(ellipse farthest-corner at 60% -20%, #893dc2, transparent 50%), radial-gradient(ellipse farthest-corner at 100% 100%, #d9317a, transparent), linear-gradient(#6559ca, #bc318f 30%, #e33f5f 50%, #f77638 70%, #fec66d 100%);
}

/* wrapper */
.wrap,
.wrap__small
{
    position: relative; 

    margin: 0 auto;
}
@media (max-width: 485px)
{
    .wrap,
    .wrap__small
    {
        padding-right: 8px !important; 
        padding-left: 8px !important;
    }
}

.wrap
{
    max-width: 1200px;
}
@media (max-width: 1200px)
{
    .wrap
    {
        padding-right: 16px; 
        padding-left: 16px;
    }
}
.wrap__small
{
    max-width: 970px;
}
@media (max-width: 970px)
{
    .wrap__small
    {
        padding-right: 16px; 
        padding-left: 16px;
    }
}
.wrap__large
{
    position: relative;

    max-width: 1920px; 
    margin: 0 auto;
}

.commonDesc
{
    text-align: justify;
}
.commonDesc > * + *
{
    margin-top: 8px;
}

/* アニメーション付き強調下線
-----------------------------------------------------------*/
.underline
{
    font-size: 110%;

    -webkit-transition: background-size .9s ease;
         -o-transition: background-size .9s ease;
            transition: background-size .9s ease; 
    text-decoration: none;

    background-image: -webkit-gradient(linear, left top, left bottom, color-stop(65%, transparent), color-stop(0, rgba(255, 239, 13, .4)));
    background-image: -o-linear-gradient(top, transparent 65%, rgba(255, 239, 13, .4) 0);
    background-image:    linear-gradient(180deg, transparent 65%, rgba(255, 239, 13, .4) 0);
    background-repeat: no-repeat;
    background-size: 0 100%;
}
.underline.active
{
    background-size: 100% 100%;
}

.align__spLeft
{
    text-align: center;
}
@media (max-width: 485px)
{
    .align__spLeft
    {
        text-align: left;
    }
}

@media (min-width: 768px)
{
    .sp-only
    {
        display: none !important;
    }
}

@media (max-width: 767px)
{
    .pc-only
    {
        display: none !important;
    }
}

:root body
{
    font-size: 1rem;
    line-height: 1.6;

    position: relative;

    letter-spacing: .1em;

    color: var(--text); 
    background-color: var(--base);
}

/* テーマの文字色書き換え */
:root #post_title,
:root .collapse_category_list li a,
:root #wp-calendar th,
:root #wp-calendar td
{
    color: var(--text);
}

:root .styled_post_list1 .date:before,
:root #post_meta_top .date:before,
:root #index_blog_list li .date:before
{
    color: var(--text-darken);
}

::-moz-selection
{
    background: var(--primary);
}

::selection
{
    background: var(--primary);
}

@media (min-width: 768px)
{
    a[href^='tel:']
    {
        pointer-events: none;
    }
}

a
{
    color: var(--text);
}

canvas,
img,
video
{
    -webkit-box-sizing: border-box;
            box-sizing: border-box;
    max-width: 100%;
    height: auto;

    vertical-align: bottom;
}

@media (min-width: 768px)
{
    br.spw
    {
        display: none;
    }
}

@media (min-width: 971px)
{
    br.tb
    {
        display: none;
    }
}

section
{
    clear: both;
}

.svg
{
    display: none;
}
.svg.replaced-svg
{
    display: initial;
}

sup
{
    font-size: small; 

    vertical-align: super;
}

/* リンク色 */
section a.link
{
    font-weight: bold;

    text-decoration: underline;
}
section a.link:hover
{
    color: var(--primary);
}

/* 強調 */
strong
{
    font-weight: bold;
}
strong.emphasis
{
            text-emphasis: filled circle currentColor; 

    -webkit-text-emphasis: filled circle currentColor;
}

/* スクロールアニメーション
-----------------------------------------------------------*/
.delay-1
{
    -webkit-transition-delay: 100ms !important;
         -o-transition-delay: 100ms !important;
            transition-delay: 100ms !important;
    -webkit-animation-delay: 100ms !important;
            animation-delay: 100ms !important;
}

.delay-1c > *
{
    -webkit-transition-delay: 100ms !important;
         -o-transition-delay: 100ms !important;
            transition-delay: 100ms !important;
    -webkit-animation-delay: 100ms !important;
            animation-delay: 100ms !important;
}

.delay-2
{
    -webkit-transition-delay: 200ms !important;
         -o-transition-delay: 200ms !important;
            transition-delay: 200ms !important;
    -webkit-animation-delay: 200ms !important;
            animation-delay: 200ms !important;
}

.delay-2c > *
{
    -webkit-transition-delay: 200ms !important;
         -o-transition-delay: 200ms !important;
            transition-delay: 200ms !important;
    -webkit-animation-delay: 200ms !important;
            animation-delay: 200ms !important;
}

.delay-3
{
    -webkit-transition-delay: 300ms !important;
         -o-transition-delay: 300ms !important;
            transition-delay: 300ms !important;
    -webkit-animation-delay: 300ms !important;
            animation-delay: 300ms !important;
}

.delay-3c > *
{
    -webkit-transition-delay: 300ms !important;
         -o-transition-delay: 300ms !important;
            transition-delay: 300ms !important;
    -webkit-animation-delay: 300ms !important;
            animation-delay: 300ms !important;
}

.delay-4
{
    -webkit-transition-delay: 400ms !important;
         -o-transition-delay: 400ms !important;
            transition-delay: 400ms !important;
    -webkit-animation-delay: 400ms !important;
            animation-delay: 400ms !important;
}

.delay-4c > *
{
    -webkit-transition-delay: 400ms !important;
         -o-transition-delay: 400ms !important;
            transition-delay: 400ms !important;
    -webkit-animation-delay: 400ms !important;
            animation-delay: 400ms !important;
}

.delay-5
{
    -webkit-transition-delay: 500ms !important;
         -o-transition-delay: 500ms !important;
            transition-delay: 500ms !important;
    -webkit-animation-delay: 500ms !important;
            animation-delay: 500ms !important;
}

.delay-5c > *
{
    -webkit-transition-delay: 500ms !important;
         -o-transition-delay: 500ms !important;
            transition-delay: 500ms !important;
    -webkit-animation-delay: 500ms !important;
            animation-delay: 500ms !important;
}

.delay-6
{
    -webkit-transition-delay: 600ms !important;
         -o-transition-delay: 600ms !important;
            transition-delay: 600ms !important;
    -webkit-animation-delay: 600ms !important;
            animation-delay: 600ms !important;
}

.delay-6c > *
{
    -webkit-transition-delay: 600ms !important;
         -o-transition-delay: 600ms !important;
            transition-delay: 600ms !important;
    -webkit-animation-delay: 600ms !important;
            animation-delay: 600ms !important;
}

.delay-7
{
    -webkit-transition-delay: 700ms !important;
         -o-transition-delay: 700ms !important;
            transition-delay: 700ms !important;
    -webkit-animation-delay: 700ms !important;
            animation-delay: 700ms !important;
}

.delay-7c > *
{
    -webkit-transition-delay: 700ms !important;
         -o-transition-delay: 700ms !important;
            transition-delay: 700ms !important;
    -webkit-animation-delay: 700ms !important;
            animation-delay: 700ms !important;
}

.delay-8
{
    -webkit-transition-delay: 800ms !important;
         -o-transition-delay: 800ms !important;
            transition-delay: 800ms !important;
    -webkit-animation-delay: 800ms !important;
            animation-delay: 800ms !important;
}

.delay-8c > *
{
    -webkit-transition-delay: 800ms !important;
         -o-transition-delay: 800ms !important;
            transition-delay: 800ms !important;
    -webkit-animation-delay: 800ms !important;
            animation-delay: 800ms !important;
}

.delay-9
{
    -webkit-transition-delay: 900ms !important;
         -o-transition-delay: 900ms !important;
            transition-delay: 900ms !important;
    -webkit-animation-delay: 900ms !important;
            animation-delay: 900ms !important;
}

.delay-9c > *
{
    -webkit-transition-delay: 900ms !important;
         -o-transition-delay: 900ms !important;
            transition-delay: 900ms !important;
    -webkit-animation-delay: 900ms !important;
            animation-delay: 900ms !important;
}

.delay-10
{
    -webkit-transition-delay: 1000ms !important;
         -o-transition-delay: 1000ms !important;
            transition-delay: 1000ms !important;
    -webkit-animation-delay: 1000ms !important;
            animation-delay: 1000ms !important;
}

.delay-10c > *
{
    -webkit-transition-delay: 1000ms !important;
         -o-transition-delay: 1000ms !important;
            transition-delay: 1000ms !important;
    -webkit-animation-delay: 1000ms !important;
            animation-delay: 1000ms !important;
}

.delay-11
{
    -webkit-transition-delay: 1100ms !important;
         -o-transition-delay: 1100ms !important;
            transition-delay: 1100ms !important;
    -webkit-animation-delay: 1100ms !important;
            animation-delay: 1100ms !important;
}

.delay-11c > *
{
    -webkit-transition-delay: 1100ms !important;
         -o-transition-delay: 1100ms !important;
            transition-delay: 1100ms !important;
    -webkit-animation-delay: 1100ms !important;
            animation-delay: 1100ms !important;
}

.delay-12
{
    -webkit-transition-delay: 1200ms !important;
         -o-transition-delay: 1200ms !important;
            transition-delay: 1200ms !important;
    -webkit-animation-delay: 1200ms !important;
            animation-delay: 1200ms !important;
}

.delay-12c > *
{
    -webkit-transition-delay: 1200ms !important;
         -o-transition-delay: 1200ms !important;
            transition-delay: 1200ms !important;
    -webkit-animation-delay: 1200ms !important;
            animation-delay: 1200ms !important;
}

.delay-13
{
    -webkit-transition-delay: 1300ms !important;
         -o-transition-delay: 1300ms !important;
            transition-delay: 1300ms !important;
    -webkit-animation-delay: 1300ms !important;
            animation-delay: 1300ms !important;
}

.delay-13c > *
{
    -webkit-transition-delay: 1300ms !important;
         -o-transition-delay: 1300ms !important;
            transition-delay: 1300ms !important;
    -webkit-animation-delay: 1300ms !important;
            animation-delay: 1300ms !important;
}

.delay-14
{
    -webkit-transition-delay: 1400ms !important;
         -o-transition-delay: 1400ms !important;
            transition-delay: 1400ms !important;
    -webkit-animation-delay: 1400ms !important;
            animation-delay: 1400ms !important;
}

.delay-14c > *
{
    -webkit-transition-delay: 1400ms !important;
         -o-transition-delay: 1400ms !important;
            transition-delay: 1400ms !important;
    -webkit-animation-delay: 1400ms !important;
            animation-delay: 1400ms !important;
}

.delay-15
{
    -webkit-transition-delay: 1500ms !important;
         -o-transition-delay: 1500ms !important;
            transition-delay: 1500ms !important;
    -webkit-animation-delay: 1500ms !important;
            animation-delay: 1500ms !important;
}

.delay-15c > *
{
    -webkit-transition-delay: 1500ms !important;
         -o-transition-delay: 1500ms !important;
            transition-delay: 1500ms !important;
    -webkit-animation-delay: 1500ms !important;
            animation-delay: 1500ms !important;
}

.delay-16
{
    -webkit-transition-delay: 1600ms !important;
         -o-transition-delay: 1600ms !important;
            transition-delay: 1600ms !important;
    -webkit-animation-delay: 1600ms !important;
            animation-delay: 1600ms !important;
}

.delay-16c > *
{
    -webkit-transition-delay: 1600ms !important;
         -o-transition-delay: 1600ms !important;
            transition-delay: 1600ms !important;
    -webkit-animation-delay: 1600ms !important;
            animation-delay: 1600ms !important;
}

.delay-17
{
    -webkit-transition-delay: 1700ms !important;
         -o-transition-delay: 1700ms !important;
            transition-delay: 1700ms !important;
    -webkit-animation-delay: 1700ms !important;
            animation-delay: 1700ms !important;
}

.delay-17c > *
{
    -webkit-transition-delay: 1700ms !important;
         -o-transition-delay: 1700ms !important;
            transition-delay: 1700ms !important;
    -webkit-animation-delay: 1700ms !important;
            animation-delay: 1700ms !important;
}

.delay-18
{
    -webkit-transition-delay: 1800ms !important;
         -o-transition-delay: 1800ms !important;
            transition-delay: 1800ms !important;
    -webkit-animation-delay: 1800ms !important;
            animation-delay: 1800ms !important;
}

.delay-18c > *
{
    -webkit-transition-delay: 1800ms !important;
         -o-transition-delay: 1800ms !important;
            transition-delay: 1800ms !important;
    -webkit-animation-delay: 1800ms !important;
            animation-delay: 1800ms !important;
}

.delay-19
{
    -webkit-transition-delay: 1900ms !important;
         -o-transition-delay: 1900ms !important;
            transition-delay: 1900ms !important;
    -webkit-animation-delay: 1900ms !important;
            animation-delay: 1900ms !important;
}

.delay-19c > *
{
    -webkit-transition-delay: 1900ms !important;
         -o-transition-delay: 1900ms !important;
            transition-delay: 1900ms !important;
    -webkit-animation-delay: 1900ms !important;
            animation-delay: 1900ms !important;
}

.delay-20
{
    -webkit-transition-delay: 2000ms !important;
         -o-transition-delay: 2000ms !important;
            transition-delay: 2000ms !important;
    -webkit-animation-delay: 2000ms !important;
            animation-delay: 2000ms !important;
}

.delay-20c > *
{
    -webkit-transition-delay: 2000ms !important;
         -o-transition-delay: 2000ms !important;
            transition-delay: 2000ms !important;
    -webkit-animation-delay: 2000ms !important;
            animation-delay: 2000ms !important;
}

.fadein__left,
.fadein__right,
.fadein__top,
.fadein__bottom
{
    -webkit-transition: ease 1.2s 0s;
         -o-transition: ease 1.2s 0s;
            transition: ease 1.2s 0s;

    opacity: 0;
}
.active.fadein__left,
.active.fadein__right,
.active.fadein__top,
.active.fadein__bottom
{
    -webkit-transform: translate(0, 0);
            transform: translate(0, 0); 

    opacity: 1;
}

.fadein__left
{
    -webkit-transform: translate(-12%, 0);
            transform: translate(-12%, 0);
}

.fadein__right
{
    -webkit-transform: translate(12%, 0);
            transform: translate(12%, 0);
}

.fadein__top
{
    -webkit-transform: translate(0, -12%);
            transform: translate(0, -12%);
}

.fadein__bottom
{
    -webkit-transform: translate(0, 12%);
            transform: translate(0, 12%);
}

.scalein
{
    -webkit-transition: -webkit-transform ease 1.2s 0s;
         -o-transition:         transform ease 1.2s 0s;
            transition: -webkit-transform ease 1.2s 0s;
            transition:         transform ease 1.2s 0s;
            transition:         transform ease 1.2s 0s, -webkit-transform ease 1.2s 0s;
    -webkit-transform: scale(1.5);
            transform: scale(1.5);
}
.scalein.active
{
    -webkit-transform: scale(1);
            transform: scale(1);
}

@-webkit-keyframes flipX
{
    from
    {
        -webkit-transform: rotate3d(0, 1, 0, 0deg);
                transform: rotate3d(0, 1, 0, 0deg);
    }
    40%
    {
        -webkit-transform: rotate3d(0, 1, 0, 180deg);
                transform: rotate3d(0, 1, 0, 180deg);
    }
    100%
    {
        -webkit-transform: rotate3d(0, 1, 0, 360deg);
                transform: rotate3d(0, 1, 0, 360deg);
    }
}

@keyframes flipX
{
    from
    {
        -webkit-transform: rotate3d(0, 1, 0, 0deg);
                transform: rotate3d(0, 1, 0, 0deg);
    }
    40%
    {
        -webkit-transform: rotate3d(0, 1, 0, 180deg);
                transform: rotate3d(0, 1, 0, 180deg);
    }
    100%
    {
        -webkit-transform: rotate3d(0, 1, 0, 360deg);
                transform: rotate3d(0, 1, 0, 360deg);
    }
}

/* バーが左右に流れるアニメーション */
.labeleffect__left,
.labeleffect__right
{
    position: relative;
}
.labeleffect__left > *,
.labeleffect__left::before,
.labeleffect__right > *,
.labeleffect__right::before
{
    display: block; 

    -webkit-transition: opacity 1ms .8s, -webkit-transform .8s .79s;
         -o-transition: opacity 1ms .8s, transform .8s .79s;
            transition: opacity 1ms .8s, -webkit-transform .8s .79s;
            transition: opacity 1ms .8s, transform .8s .79s;
            transition: opacity 1ms .8s, transform .8s .79s, -webkit-transform .8s .79s;

    opacity: 0;
}
.labeleffect__left.active > *,
.labeleffect__left.active::before,
.labeleffect__right.active > *,
.labeleffect__right.active::before
{
    opacity: 1;
}
.labeleffect__left::after,
.labeleffect__right::after
{
    position: absolute;
    z-index: 1;
    bottom: 0;

    width: 100%;
    height: 100%;

    content: '';
    -webkit-transform: scaleX(0);
            transform: scaleX(0);
}

.labeleffect__left::after
{
    right: 0;

    background-color: var(--primary);
}

.labeleffect__left.active::after
{
    -webkit-animation: fillin-left ease .8s 0s, fillout-left ease-in .2s .79s;
            animation: fillin-left ease .8s 0s, fillout-left ease-in .2s .79s;
}

.labeleffect__right > *
{
    -webkit-transform: translateX(20%);
            transform: translateX(20%);
}

.labeleffect__right::after
{
    left: 0;

    background-color: var(--primary-darken-1);
}

.labeleffect__right.active::after
{
    -webkit-animation: fillin-right ease .8s 0s, fillout-right ease-in .2s .79s;
            animation: fillin-right ease .8s 0s, fillout-right ease-in .2s .79s;
}

@-webkit-keyframes fillin-left
{
    0%
    {
        -webkit-transform: scaleX(0);
                transform: scaleX(0);
        -webkit-transform-origin: left;
                transform-origin: left; 

        opacity: 1;
    }
    89.999%
    {
        -webkit-transform-origin: left;
                transform-origin: left;
    }
    90%
    {
        -webkit-transform: scaleX(1);
                transform: scaleX(1);
        -webkit-transform-origin: right;
                transform-origin: right;
    }
    100%
    {
        -webkit-transform: scaleX(1);
                transform: scaleX(1);
        -webkit-transform-origin: right;
                transform-origin: right;
    }
}

@keyframes fillin-left
{
    0%
    {
        -webkit-transform: scaleX(0);
                transform: scaleX(0);
        -webkit-transform-origin: left;
                transform-origin: left; 

        opacity: 1;
    }
    89.999%
    {
        -webkit-transform-origin: left;
                transform-origin: left;
    }
    90%
    {
        -webkit-transform: scaleX(1);
                transform: scaleX(1);
        -webkit-transform-origin: right;
                transform-origin: right;
    }
    100%
    {
        -webkit-transform: scaleX(1);
                transform: scaleX(1);
        -webkit-transform-origin: right;
                transform-origin: right;
    }
}

@-webkit-keyframes fillout-left
{
    0%
    {
        -webkit-transform: scaleX(1);
                transform: scaleX(1);
        -webkit-transform-origin: right;
                transform-origin: right;
    }
    100%
    {
        -webkit-transform: scaleX(0);
                transform: scaleX(0);
        -webkit-transform-origin: right;
                transform-origin: right;
    }
}

@keyframes fillout-left
{
    0%
    {
        -webkit-transform: scaleX(1);
                transform: scaleX(1);
        -webkit-transform-origin: right;
                transform-origin: right;
    }
    100%
    {
        -webkit-transform: scaleX(0);
                transform: scaleX(0);
        -webkit-transform-origin: right;
                transform-origin: right;
    }
}

@-webkit-keyframes fillin-right
{
    0%
    {
        -webkit-transform: scaleX(0);
                transform: scaleX(0);
        -webkit-transform-origin: right;
                transform-origin: right; 

        opacity: 1;
    }
    99.999%
    {
        -webkit-transform-origin: right;
                transform-origin: right;
    }
    100%
    {
        -webkit-transform: scaleX(1);
                transform: scaleX(1);
        -webkit-transform-origin: left;
                transform-origin: left;
    }
}

@keyframes fillin-right
{
    0%
    {
        -webkit-transform: scaleX(0);
                transform: scaleX(0);
        -webkit-transform-origin: right;
                transform-origin: right; 

        opacity: 1;
    }
    99.999%
    {
        -webkit-transform-origin: right;
                transform-origin: right;
    }
    100%
    {
        -webkit-transform: scaleX(1);
                transform: scaleX(1);
        -webkit-transform-origin: left;
                transform-origin: left;
    }
}

@-webkit-keyframes fillout-right
{
    0%
    {
        -webkit-transform: scaleX(1);
                transform: scaleX(1);
        -webkit-transform-origin: left;
                transform-origin: left;
    }
    100%
    {
        -webkit-transform: scaleX(0);
                transform: scaleX(0);
        -webkit-transform-origin: left;
                transform-origin: left;
    }
}

@keyframes fillout-right
{
    0%
    {
        -webkit-transform: scaleX(1);
                transform: scaleX(1);
        -webkit-transform-origin: left;
                transform-origin: left;
    }
    100%
    {
        -webkit-transform: scaleX(0);
                transform: scaleX(0);
        -webkit-transform-origin: left;
                transform-origin: left;
    }
}

@-webkit-keyframes opacity-1
{
    0%
    {
        opacity: 0;
    }
    99.9%,
    to
    {
        opacity: 1;
    }
}

@keyframes opacity-1
{
    0%
    {
        opacity: 0;
    }
    99.9%,
    to
    {
        opacity: 1;
    }
}

@-webkit-keyframes opacity-0
{
    0%
    {
        opacity: 1;
    }
    99.9%,
    to
    {
        opacity: 0;
    }
}

@keyframes opacity-0
{
    0%
    {
        opacity: 1;
    }
    99.9%,
    to
    {
        opacity: 0;
    }
}

/* 上下左右からにゅっと出てくる */
.slidein__bottom,
.slidein__top,
.slidein__right,
.slidein__left
{
    overflow: hidden;
}
.slidein__bottom > *,
.slidein__top > *,
.slidein__right > *,
.slidein__left > *
{
    -webkit-transition: -webkit-transform ease .9s;
         -o-transition:         transform ease .9s;
            transition: -webkit-transform ease .9s;
            transition:         transform ease .9s;
            transition:         transform ease .9s, -webkit-transform ease .9s;
}
.active.slidein__bottom > *,
.active.slidein__top > *,
.active.slidein__right > *,
.active.slidein__left > *
{
    -webkit-transform: translate(0, 0);
            transform: translate(0, 0);
}

.slidein__bottom > *
{
    -webkit-transform: translate(0, 100%);
            transform: translate(0, 100%);
}

.slidein__top > *
{
    -webkit-transform: translate(0, -100%);
            transform: translate(0, -100%);
}

.slidein__right > *
{
    -webkit-transform: translate(100%, 0);
            transform: translate(100%, 0);
}

.slidein__left > *
{
    -webkit-transform: translate(-100%, 0);
            transform: translate(-100%, 0);
}

/* 字間広いアニメーション */
.letter_spacing
{
    -webkit-transition: ease .9s;
         -o-transition: ease .9s;
            transition: ease .9s; 
    white-space: nowrap;
    letter-spacing: 1.2em;

    opacity: 0;
}
@media (max-width: 485px)
{
    .letter_spacing
    {
        letter-spacing: .6em;
    }
}
.letter_spacing.active
{
    letter-spacing: 1.4px;

    opacity: 1;
}

/* clip-pathアニメーション */
.clippath__left,
.clippath__right,
.clippath__top,
.clippath__bottom
{
    -webkit-transition: cubic-bezier(1, 0, 0, 1) .6s;
         -o-transition: cubic-bezier(1, 0, 0, 1) .6s;
            transition: cubic-bezier(1, 0, 0, 1) .6s;
}
.active.clippath__left,
.active.clippath__right,
.active.clippath__top,
.active.clippath__bottom
{
    -webkit-clip-path: polygon(100% 0, 0 0, 0 100%, 100% 100%);
            clip-path: polygon(100% 0, 0 0, 0 100%, 100% 100%);
}
@supports not ((-webkit-clip-path: polygon(100% 0, 0 0, 0 100%, 100% 100%)) or (clip-path: polygon(100% 0, 0 0, 0 100%, 100% 100%)))
{
    .clippath__left,
    .clippath__right,
    .clippath__top,
    .clippath__bottom
    {
        -webkit-transition: ease .6s;
             -o-transition: ease .6s;
                transition: ease .6s; 

        opacity: 0;
    }
    .active.clippath__left,
    .active.clippath__right,
    .active.clippath__top,
    .active.clippath__bottom
    {
        opacity: 1;
    }
}

.clippath__left
{
    -webkit-clip-path: polygon(0% 0, 0 0, 0 100%, 0% 100%);
            clip-path: polygon(0% 0, 0 0, 0 100%, 0% 100%);
}

.clippath__right
{
    -webkit-clip-path: polygon(100% 0, 100% 0, 100% 100%, 100% 100%);
            clip-path: polygon(100% 0, 100% 0, 100% 100%, 100% 100%);
}

.clippath__top
{
    -webkit-clip-path: polygon(100% 0, 0 0, 0 0%, 100% 0%);
            clip-path: polygon(100% 0, 0 0, 0 0%, 100% 0%);
}

.clippath__bottom
{
    -webkit-clip-path: polygon(100% 100%, 0 100%, 0 100%, 100% 100%);
            clip-path: polygon(100% 100%, 0 100%, 0 100%, 100% 100%);
}

.shutters__enter
{
    -webkit-transition: ease .6s;
         -o-transition: ease .6s;
            transition: ease .6s;

    -webkit-clip-path: polygon(20% 0%, 20% 0%, 20% 100%, 40% 100%, 40% 0%, 40% 0%, 40% 100%, 60% 100%, 60% 0%, 60% 0%, 60% 100%, 80% 100%, 80% 0%, 80% 0%, 80% 100%, 100% 100%, 100% 0%, 100% 0%, 100% 100%, 20% 100%);
            clip-path: polygon(20% 0%, 20% 0%, 20% 100%, 40% 100%, 40% 0%, 40% 0%, 40% 100%, 60% 100%, 60% 0%, 60% 0%, 60% 100%, 80% 100%, 80% 0%, 80% 0%, 80% 100%, 100% 100%, 100% 0%, 100% 0%, 100% 100%, 20% 100%);
}
.shutters__enter.active
{
    -webkit-clip-path: polygon(0% 0%, 20% 0%, 20% 100%, 20% 100%, 20% 0%, 40% 0%, 40% 100%, 40% 100%, 40% 0%, 60% 0%, 60% 100%, 60% 100%, 60% 0%, 80% 0%, 80% 100%, 80% 100%, 80% 0%, 100% 0%, 100% 100%, 0% 100%);
            clip-path: polygon(0% 0%, 20% 0%, 20% 100%, 20% 100%, 20% 0%, 40% 0%, 40% 100%, 40% 100%, 40% 0%, 60% 0%, 60% 100%, 60% 100%, 60% 0%, 80% 0%, 80% 100%, 80% 100%, 80% 0%, 100% 0%, 100% 100%, 0% 100%);
}

/* TCD */
/* styles */
.wpcf7-recaptcha > *
{
    display: block;

    margin: auto;
}

/* box-sizing */
*,
*:after,
*:before
{
    -webkit-box-sizing: border-box;
            box-sizing: border-box;
}

/*
コンポーネント
-----------------------------------------------------------*/
.btn,
.btn__center,
.btn__center--secondary,
.btn__left,
.btn__left--secondary,
.btn__right,
.btn__right--secondary
{
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
        flex-direction: column; 

    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
    -ms-flex-direction: column;
}
@media (max-width: 767px)
{
    .btn,
    .btn__center,
    .btn__center--secondary,
    .btn__left,
    .btn__left--secondary,
    .btn__right,
    .btn__right--secondary
    {
        -webkit-box-align: center !important;
        -ms-flex-align: center !important;
        align-items: center !important;
    }
}

.btn__center
{
    -webkit-box-align: center;
    -ms-flex-align: center;
    align-items: center;
}
.btn__center--secondary
{
    -webkit-box-align: center;
    -ms-flex-align: center;
    align-items: center;
}

.btn__left
{
    -webkit-box-align: start;
    -ms-flex-align: start;
    align-items: flex-start;
}
.btn__left--secondary
{
    -webkit-box-align: start;
    -ms-flex-align: start;
    align-items: flex-start;
}

.btn__right
{
    -webkit-box-align: end;
    -ms-flex-align: end;
    align-items: flex-end;
}
.btn__right--secondary
{
    -webkit-box-align: end;
    -ms-flex-align: end;
    align-items: flex-end;
}

.btn a,
.btn__center a,
.btn__center--secondary a,
.btn__left a,
.btn__left--secondary a,
.btn__right a,
.btn__right--secondary a
{
    line-height: 1.4;

    position: relative;
    z-index: 1;

    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;

    min-width: 240px;
    min-height: 56px;
    padding: 16px 32px;

    -webkit-transition: .3s;
         -o-transition: .3s;
            transition: .3s; 
    text-align: center;
    text-transform: capitalize;

    color: #fff;
    border: solid 1px var(--primary);
    background-color: var(--primary);
    -webkit-box-shadow: rgba(var(--rgb-text), .15) 0 3px 6px;
            box-shadow: rgba(var(--rgb-text), .15) 0 3px 6px;

    -webkit-box-align: center;
    -ms-flex-align: center;
    align-items: center;
    -webkit-box-pack: center;
    -ms-flex-pack: center;
    justify-content: center;
}
@media (max-width: 767px)
{
    .btn a,
    .btn__center a,
    .btn__center--secondary a,
    .btn__left a,
    .btn__left--secondary a,
    .btn__right a,
    .btn__right--secondary a
    {
        min-width: 240px;
        min-height: 64px;

        -webkit-box-align: center;
        -ms-flex-align: center;
        align-items: center;
    }
}
.btn a span,
.btn__center a span,
.btn__center--secondary a span,
.btn__left a span,
.btn__left--secondary a span,
.btn__right a span,
.btn__right--secondary a span
{
    display: block;
}
.btn a:hover,
.btn__center a:hover,
.btn__center--secondary a:hover,
.btn__left a:hover,
.btn__left--secondary a:hover,
.btn__right a:hover,
.btn__right--secondary a:hover
{
    text-decoration: none;

    color: var(--primary);
    background-color: #fff;
}

.btn__center--secondary a,
.btn__left--secondary a,
.btn__right--secondary a
{
    color: var(--text);
    border: none; 
    background-color: #fff;
}
.btn__center--secondary a:hover,
.btn__left--secondary a:hover,
.btn__right--secondary a:hover
{
    color: #fff;
    background-color: var(--primary);
}

.btn a,
.btn__center a,
.btn__center--secondary a,
.btn__left a,
.btn__left--secondary a,
.btn__right a,
.btn__right--secondary a
{
    font-family: var(--heading-font);
    font-size: 1rem;

    letter-spacing: .2em; 
    text-transform: var(--text-transform);
}

.btn .icon__instagram,
.btn .icon__line,
.btn .icon__tel,
.btn__center .icon__instagram,
.btn__center .icon__line,
.btn__center .icon__tel,
.btn__center--secondary .icon__instagram,
.btn__center--secondary .icon__line,
.btn__center--secondary .icon__tel,
.btn__left .icon__instagram,
.btn__left .icon__line,
.btn__left .icon__tel,
.btn__left--secondary .icon__instagram,
.btn__left--secondary .icon__line,
.btn__left--secondary .icon__tel,
.btn__right .icon__instagram,
.btn__right .icon__line,
.btn__right .icon__tel,
.btn__right--secondary .icon__instagram,
.btn__right--secondary .icon__line,
.btn__right--secondary .icon__tel
{
    font-size: 1.5em; 

    margin-right: 1em;

    vertical-align: middle;
}

.btn .bg-line,
.btn__center .bg-line,
.btn__center--secondary .bg-line,
.btn__left .bg-line,
.btn__left--secondary .bg-line,
.btn__right .bg-line,
.btn__right--secondary .bg-line
{
    border-color: #00b900 !important; 
    background-color: #00b900 !important;
}
.btn .bg-line:hover,
.btn__center .bg-line:hover,
.btn__center--secondary .bg-line:hover,
.btn__left .bg-line:hover,
.btn__left--secondary .bg-line:hover,
.btn__right .bg-line:hover,
.btn__right--secondary .bg-line:hover
{
    color: #00b900 !important; 
    background-color: #fff !important;
}

.btn .bg-instagram,
.btn__center .bg-instagram,
.btn__center--secondary .bg-instagram,
.btn__left .bg-instagram,
.btn__left--secondary .bg-instagram,
.btn__right .bg-instagram,
.btn__right--secondary .bg-instagram
{
    background: var(--instagram);
}
.btn .bg-instagram:hover,
.btn__center .bg-instagram:hover,
.btn__center--secondary .bg-instagram:hover,
.btn__left .bg-instagram:hover,
.btn__left--secondary .bg-instagram:hover,
.btn__right .bg-instagram:hover,
.btn__right--secondary .bg-instagram:hover
{
    -webkit-background-clip: text;
            background-clip: text;

    -webkit-text-fill-color: transparent;
}

.heading,
.heading__center,
.heading__center--spwLeft,
.heading__left,
.heading__left--spwCenter,
.heading__right,
.heading__right--spwCenter
{
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
        flex-direction: column; 

    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
    -ms-flex-direction: column;
}

.heading,
.heading__center
{
    text-align: center; 

    justify-items: center;
    -webkit-box-pack: center;
    -ms-flex-pack: center;
    justify-content: center;
}
.heading--spwLeft,
.heading__center--spwLeft
{
    text-align: center; 

    justify-items: center;
    -webkit-box-pack: center;
    -ms-flex-pack: center;
    justify-content: center;
}
@media (max-width: 767px)
{
    .heading--spwLeft,
    .heading__center--spwLeft
    {
        text-align: left !important;

        -webkit-box-pack: start !important;
        -ms-flex-pack: start !important;
        justify-content: flex-start !important;
        justify-items: flex-start !important;
    }
}

.heading__right
{
    text-align: right;

    -webkit-box-pack: end;
    -ms-flex-pack: end;
    justify-content: flex-end;
}
.heading__right--spwCenter
{
    text-align: right;

    -webkit-box-pack: end;
    -ms-flex-pack: end;
    justify-content: flex-end;
}
@media (max-width: 767px)
{
    .heading__right--spwCenter
    {
        text-align: center !important; 

        -webkit-box-pack: center;
        -ms-flex-pack: center;
        justify-content: center;
    }
}

.heading__left
{
    text-align: left;

    -webkit-box-pack: start;
    -ms-flex-pack: start;
    justify-content: flex-start;
}
.heading__left--spwCenter
{
    text-align: left;

    -webkit-box-pack: start;
    -ms-flex-pack: start;
    justify-content: flex-start;
}
@media (max-width: 767px)
{
    .heading__left--spwCenter
    {
        text-align: center !important; 

        -webkit-box-pack: center;
        -ms-flex-pack: center;
        justify-content: center;
    }
}

.heading,
.heading__center,
.heading__center--spwLeft,
.heading__left,
.heading__left--spwCenter,
.heading__right,
.heading__right--spwCenter
{
    line-height: 1.2;

    z-index: 1; 

    letter-spacing: .1em;
}
.heading div,
.heading__center div,
.heading__center--spwLeft div,
.heading__left div,
.heading__left--spwCenter div,
.heading__right div,
.heading__right--spwCenter div
{
    position: relative;
    z-index: 0; 

    padding: 0 80px;
}
@media (max-width: 767px)
{
    .heading div,
    .heading__center div,
    .heading__center--spwLeft div,
    .heading__left div,
    .heading__left--spwCenter div,
    .heading__right div,
    .heading__right--spwCenter div
    {
        padding: 0 40px;
    }
}
.heading div::before,
.heading div::after,
.heading__center div::before,
.heading__center div::after,
.heading__center--spwLeft div::before,
.heading__center--spwLeft div::after,
.heading__left div::before,
.heading__left div::after,
.heading__left--spwCenter div::before,
.heading__left--spwCenter div::after,
.heading__right div::before,
.heading__right div::after,
.heading__right--spwCenter div::before,
.heading__right--spwCenter div::after
{
    position: absolute;
    z-index: 0;
    top: calc(50% - .5px);

    width: 40px;
    height: 1px;

    content: '';

    border-radius: 100px; 
    background-color: currentColor;
}
@media (max-width: 767px)
{
    .heading div::before,
    .heading div::after,
    .heading__center div::before,
    .heading__center div::after,
    .heading__center--spwLeft div::before,
    .heading__center--spwLeft div::after,
    .heading__left div::before,
    .heading__left div::after,
    .heading__left--spwCenter div::before,
    .heading__left--spwCenter div::after,
    .heading__right div::before,
    .heading__right div::after,
    .heading__right--spwCenter div::before,
    .heading__right--spwCenter div::after
    {
        width: 24px;
    }
}
.heading div::before,
.heading__center div::before,
.heading__center--spwLeft div::before,
.heading__left div::before,
.heading__left--spwCenter div::before,
.heading__right div::before,
.heading__right--spwCenter div::before
{
    left: 0;
}
.heading div::after,
.heading__center div::after,
.heading__center--spwLeft div::after,
.heading__left div::after,
.heading__left--spwCenter div::after,
.heading__right div::after,
.heading__right--spwCenter div::after
{
    right: 0;
}
.heading > span,
.heading__center > span,
.heading__center--spwLeft > span,
.heading__left > span,
.heading__left--spwCenter > span,
.heading__right > span,
.heading__right--spwCenter > span
{
    font-size: 1rem;

    margin-bottom: 8px; 

    color: var(--secondary);
}

.heading,
.heading__center
{
    -webkit-box-align: center;
    -ms-flex-align: center;
    align-items: center;
}

.heading__left
{
    -webkit-box-align: start;
    -ms-flex-align: start;
    align-items: flex-start;
}
.heading__left div
{
    padding: 0 136px 0 0;
}
@media (max-width: 767px)
{
    .heading__left div
    {
        padding: 0 56px 0 0;
    }
}
.heading__left div::before
{
    content: none;
}
.heading__left div::after
{
    width: 120px;
}
@media (max-width: 767px)
{
    .heading__left div::after
    {
        width: 40px;
    }
}

.heading__right
{
    -webkit-box-align: end;
    -ms-flex-align: end;
    align-items: flex-end;
}

@media (min-width: 768px)
{
    .heading__left--spwCenter
    {
        -webkit-box-align: start;
        -ms-flex-align: start;
        align-items: flex-start;
    }
    .heading__right--spwCenter
    {
        -webkit-box-align: end;
        -ms-flex-align: end;
        align-items: flex-end;
    }
    .heading__center--spwLeft
    {
        -webkit-box-align: center;
        -ms-flex-align: center;
        align-items: center;
    }
}

@media (max-width: 767px)
{
    .heading__left--spwCenter,
    .heading__right--spwCenter
    {
        -webkit-box-align: center;
        -ms-flex-align: center;
        align-items: center;
    }
    .heading__center--spwLeft
    {
        -webkit-box-align: start;
        -ms-flex-align: start;
        align-items: flex-start;
    }
}

.heading,
.heading__center,
.heading__center--spwLeft,
.heading__left,
.heading__left--spwCenter,
.heading__right,
.heading__right--spwCenter
{
    font-family: var(--heading-font);

    text-transform: var(--text-transform);
}

.separator
{
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
}
.separator svg
{
    fill: var(--background);
}

.googleMap__map
{
    position: relative;

    overflow: hidden;

    width: 100%;
    height: 0;
    padding-bottom: 33.33333%;
}
.googleMap__map img,
.googleMap__map iframe,
.googleMap__map object,
.googleMap__map video
{
    position: absolute;
    top: 0;
    left: 0;

    width: 100%;
    height: 100%;
}
.googleMap__map img,
.googleMap__map video
{
    -o-object-fit: cover;
       object-fit: cover;
    -o-object-position: center;
       object-position: center;
}
@media (max-width: 767px)
{
    .googleMap__map
    {
        position: relative;

        overflow: hidden;

        width: 100%;
        height: 0;
        padding-bottom: 100%;
    }
    .googleMap__map img,
    .googleMap__map iframe,
    .googleMap__map object,
    .googleMap__map video
    {
        position: absolute;
        top: 0;
        left: 0;

        width: 100%;
        height: 100%;
    }
    .googleMap__map img,
    .googleMap__map video
    {
        -o-object-fit: cover;
           object-fit: cover;
        -o-object-position: center;
           object-position: center;
    }
}

.googleMap .googleMap__hue::after,
.googleMap .googleMap__color::after,
.googleMap .googleMap__hue::before,
.googleMap .googleMap__color::before
{
    position: absolute;
    z-index: 1;
    top: 0;
    left: 0;

    width: 100%;
    height: 100%;

    content: '';
    -webkit-transition: .3s;
         -o-transition: .3s;
            transition: .3s; 
    pointer-events: none;
}

.googleMap .googleMap__hue:hover::after,
.googleMap .googleMap__color:hover::after,
.googleMap .googleMap__hue:hover::before,
.googleMap .googleMap__color:hover::before
{
    opacity: 0;
}

.googleMap__hue::before
{
    background-color: rgba(var(--rgb-primary), .8);

    mix-blend-mode: hue;
}
@media (max-width: 767px)
{
    .googleMap__hue::before
    {
        background-color: rgba(var(--rgb-primary), .2);
    }
}

.googleMap__hue::after
{
    background-image: -o-radial-gradient(var(--primary) .25px, transparent .25px);
    background-image:    radial-gradient(var(--primary) .25px, transparent .25px);
    background-size: calc(10 * .25px) calc(10 * .25px);
}

.googleMap__color::before
{
    background-color: rgba(var(--rgb-primary), .8);

    mix-blend-mode: color;
}
@media (max-width: 767px)
{
    .googleMap__color::before
    {
        background-color: rgba(var(--rgb-primary), .2);
    }
}

.googleMap__dark
{
    -webkit-transition: .3s;
         -o-transition: .3s;
            transition: .3s; 

    -webkit-filter: saturate(.2) invert(1);
            filter: saturate(.2) invert(1);
}

.instagram
{
    position: relative;
    z-index: 0;

    margin: 80px auto;
}
.instagram__flex
{
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;

    -ms-flex-wrap: wrap;
        flex-wrap: wrap;
}
.instagram__desc
{
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
        flex-direction: column;

    width: calc(100% / 3);
    padding: 40px;

    text-align: justify;

    background-color: var(--background);

    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
    -ms-flex-direction: column;
    -webkit-box-pack: center;
    -ms-flex-pack: center;
    justify-content: center;
}
.instagram__desc > * + *
{
    margin-top: 8px;
}
@media (max-width: 970px)
{
    .instagram__desc
    {
        width: 50%;
    }
}
@media (max-width: 767px)
{
    .instagram__desc
    {
        width: 100%; 
        padding: 64px 40px;
    }
}
.instagram__desc h2
{
    font-family: var(--heading-font); 
    font-size: calc(1.375rem + 1.5vw);
}
@media (min-width: 1200px)
{
    .instagram__desc h2
    {
        font-size: 2.5rem;
    }
}
.instagram__btn
{
    margin-top: 24px;
}
@media (max-width: 767px)
{
    .instagram__btn a
    {
        width: 100%;
    }
}
.instagram__posts
{
    width: calc(100% / 3 * 2);
}
@media (max-width: 970px)
{
    .instagram__posts
    {
        width: 50%;
    }
}
@media (max-width: 767px)
{
    .instagram__posts
    {
        width: 100%;
    }
}
@media (max-width: 767px)
{
    .instagram__pc
    {
        display: none;
    }
}
@media (min-width: 768px)
{
    .instagram__sp
    {
        display: none;
    }
}
.instagram h2,
.instagram h3,
.instagram a
{
    font-family: var(--heading-font);

    text-transform: var(--text-transform);
}

.frame
{
    position: absolute;
    top: 50%;
    left: 50%;

    width: calc(100% - (var(--frame_size) / 2));
    height: calc(100% - (var(--frame_size) / 2));

    -webkit-transform: translate(-50%, -50%);
            transform: translate(-50%, -50%);
    pointer-events: none; 

    --frame_size: 32px;
}
@media (max-width: 767px)
{
    .frame
    {
        --frame_size: 28px;
    }
}
.frame > span,
.frame::before,
.frame::after
{
    background-color: var(--primary-darken-1);
}
.frame.frame_white > span,
.frame.frame_white::before,
.frame.frame_white::after
{
    background-color: #fff;
}
.frame > span
{
    position: absolute;
    top: 0;
    left: 0;

    width: 100%;
    height: 100%;

    -webkit-mask-image: url(img/decoration/frame/frame-lt.png), url(img/decoration/frame/frame-rt.png), url(img/decoration/frame/frame-lb.png), url(img/decoration/frame/frame-rb.png);
            mask-image: url(img/decoration/frame/frame-lt.png), url(img/decoration/frame/frame-rt.png), url(img/decoration/frame/frame-lb.png), url(img/decoration/frame/frame-rb.png);
    -webkit-mask-repeat: no-repeat;
            mask-repeat: no-repeat;
    -webkit-mask-position: left top, right top, left bottom, right bottom;
            mask-position: left top, right top, left bottom, right bottom;
    -webkit-mask-size: calc(var(--frame_size) / 2) calc(var(--frame_size) / 2);
            mask-size: calc(var(--frame_size) / 2) calc(var(--frame_size) / 2);
}
.frame::before,
.frame::after
{
    position: absolute;
    top: 50%;
    left: 50%;

    content: '';
    -webkit-transform: translate(-50%, -50%);
            transform: translate(-50%, -50%); 

    -webkit-mask-size: calc(var(--frame_size) / 2) calc(var(--frame_size) / 2);
            mask-size: calc(var(--frame_size) / 2) calc(var(--frame_size) / 2);
}
.frame::before
{
    width: calc(100% - var(--frame_size));
    height: 100%;

    -webkit-mask-image: url(img/decoration/frame/frame-repeat-t.png), url(img/decoration/frame/frame-repeat-b.png);
            mask-image: url(img/decoration/frame/frame-repeat-t.png), url(img/decoration/frame/frame-repeat-b.png);
    -webkit-mask-position: top, bottom;
            mask-position: top, bottom;
    -webkit-mask-repeat: repeat-x;
            mask-repeat: repeat-x;
}
.frame::after
{
    width: 100%;
    height: calc(100% - var(--frame_size));

    -webkit-mask-image: url(img/decoration/frame/frame-repeat-r.png), url(img/decoration/frame/frame-repeat-l.png);
            mask-image: url(img/decoration/frame/frame-repeat-r.png), url(img/decoration/frame/frame-repeat-l.png);
    -webkit-mask-position: right, left;
            mask-position: right, left;
    -webkit-mask-repeat: repeat-y;
            mask-repeat: repeat-y;
}

.mask
{
    -webkit-mask-size: 100% 100%;
            mask-size: 100% 100%;
    -webkit-mask-position: center;
            mask-position: center;
    -webkit-mask-repeat: no-repeat;
            mask-repeat: no-repeat;
}
.mask__01
{
    -webkit-mask-image: url('img/mask_01.svg');
            mask-image: url('img/mask_01.svg');
}
.mask__02
{
    -webkit-mask-image: url('img/mask_02.svg');
            mask-image: url('img/mask_02.svg');
}
.mask__03
{
    -webkit-mask-image: url('img/mask_03.svg');
            mask-image: url('img/mask_03.svg');
}

.floating
{
    position: fixed;
    z-index: 11;
    right: 0;
    bottom: 10%;

    pointer-events: none;
}
.floating__list > li
{
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;

    -webkit-box-pack: end;
    -ms-flex-pack: end;
    justify-content: flex-end;
}
.floating__list > li + li
{
    margin-top: 8px;
}
.floating__content
{
    font-weight: bold;

    position: relative;
    left: -64px;

    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;

    padding: 16px;

    -webkit-transition: .6s;
         -o-transition: .6s;
            transition: .6s; 
    -webkit-transform: translateX(100%);
            transform: translateX(100%);
    pointer-events: all;

    color: #fff;
    border-radius: 8px 0 0 8px;
    background-color: var(--primary-darken-1);

    -webkit-box-align: center;
    -ms-flex-align: center;
    align-items: center;
}
.floating__content:hover
{
    left: 0;

    -webkit-transform: translateX(0);
            transform: translateX(0);
    text-decoration: none;

    color: #fff;
}
.floating__list > li:nth-of-type(2) .floating__content
{
    background-color: var(--secondary);
}
.floating__list > li:nth-of-type(3) .floating__content
{
    background-color: var(--secondary-darken-1);
}
.floating__icon
{
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex; 

    width: 32px;
}
.floating__icon svg,
.floating__icon g
{
    width: 32px;
    height: 32px;

    fill: currentColor;
}
.floating__label
{
    padding-right: 24px; 
    padding-left: 40px;
}
.floating .bg-line
{
    background-color: #00b900 !important;
}

/* フロントページコンテンツ */
@media (max-width: 767px)
{
    .about
    {
        padding: 40px 0;
    }
}

.about__inner
{
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;

    margin: -40px 0 0 -40px; 

    -ms-flex-wrap: wrap;
        flex-wrap: wrap;
    -webkit-box-align: center;
    -ms-flex-align: center;
    align-items: center;
}
.about__inner > *
{
    width: 50%;
    padding: 40px 0 0 40px;
}
@media (max-width: 767px)
{
    .about__inner > *
    {
        width: 100%;
    }
}

.about__desc
{
    text-align: justify;
}
.about__desc > * + *
{
    margin-top: 8px;
}
.about__desc h2
{
    font-family: var(--heading-font);
    font-size: calc(1.325rem + .9vw);

    margin-bottom: 40px; 

    text-transform: var(--text-transform);
}
@media (min-width: 1200px)
{
    .about__desc h2
    {
        font-size: 2rem;
    }
}
.about__desc h2::after
{
    display: block;

    width: 64px;
    height: 1px;
    margin-top: 8px;

    content: '';

    background-color: currentColor;
}

.about2
{
    position: relative;
    z-index: 0;

    padding: 160px 0 96px;

    --gradientSize: 400px;
}
.about2::before
{
    position: absolute;
    z-index: -1;
    top: 0;
    left: 0;

    width: 100%;
    height: 100%;

    content: '';

    background-image: -o-radial-gradient(50% 50%, circle farthest-side, rgba(255, 255, 255, .7), rgba(255, 255, 255, .8) calc(var(--gradientSize) * .4), white calc(var(--gradientSize) * 1));
    background-image:    radial-gradient(circle farthest-side at 50% 50%, rgba(255, 255, 255, .7), rgba(255, 255, 255, .8) calc(var(--gradientSize) * .4), white calc(var(--gradientSize) * 1));
}
.about2__bg
{
    position: absolute;
    z-index: -2;
    top: 0;
    left: 0;

    width: 100%;
    height: 100%;

    -o-object-fit: cover;
       object-fit: cover;
    -o-object-position: center;
       object-position: center;
}
.about2__desc
{
    font-size: .875rem;

    text-align: justify;
    text-align: center;
}
.about2__desc > * + *
{
    margin-top: 8px;
}
.about2__heading
{
    font-family: var(--heading-font); 
    font-size: calc(1.375rem + 1.5vw);

    margin-bottom: 40px;

    text-transform: var(--text-transform);
}
@media (min-width: 1200px)
{
    .about2__heading
    {
        font-size: 2.5rem;
    }
}
.about2__heading span
{
    font-size: .875rem; 

    display: block;
}
.about2__caption
{
    font-size: 1.25rem;
    font-weight: normal;

    margin-bottom: 32px;
}
.about2__list
{
    margin-top: 80px;

    text-align: center;
}
.about2__list h3
{
    font-size: calc(1.275rem + .3vw);

    margin-bottom: 24px;
}
@media (min-width: 1200px)
{
    .about2__list h3
    {
        font-size: 1.5rem;
    }
}
.about2__list ul
{
    margin-bottom: 40px;
}

.point
{
    position: relative;
    z-index: 0;
}
.point__bg
{
    position: absolute;
    z-index: -1;
    top: 0;
    left: 0;

    width: 100%;
    height: 100%;

    -o-object-fit: cover;
       object-fit: cover;
}
.point__desc
{
    position: relative;
    z-index: 0;

    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
        flex-direction: column;

    max-width: 600px;
    min-height: 600px;
    margin: 0 0 0 auto;
    padding: 80px 40px;

    color: #fff;

    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
    -ms-flex-direction: column;
    -webkit-box-pack: center;
    -ms-flex-pack: center;
    justify-content: center;
}
.point__desc h2
{
    font-family: var(--heading-font);
    font-size: calc(1.325rem + .9vw);

    margin-bottom: 24px; 

    text-transform: var(--text-transform);
}
@media (min-width: 1200px)
{
    .point__desc h2
    {
        font-size: 2rem;
    }
}
.point__desc h2 span
{
    font-size: .875rem; 

    display: block;
}
.point__desc::before
{
    position: absolute;
    z-index: -1;
    top: 0;
    left: 0;

    width: 100%;
    height: 100%;

    content: '';

    opacity: .94; 
    background-image: -webkit-gradient(linear, left top, left bottom, from(var(--gradient)));
    background-image: -o-linear-gradient(var(--gradient));
    background-image:    linear-gradient(var(--gradient));
}

.point2
{
    padding: 80px 0;
}
.point2__desc
{
    text-align: justify;
}
.point2__desc > * + *
{
    margin-top: 8px;
}
.point2__desc h2
{
    font-size: calc(1.325rem + .9vw);

    margin-bottom: 32px;

    text-align: center;
}
@media (min-width: 1200px)
{
    .point2__desc h2
    {
        font-size: 2rem;
    }
}
.point2__list
{
    font-size: 1.125rem;

    text-align: center;
}
@media (max-width: 767px)
{
    .point2__list
    {
        font-size: 1rem;

        text-align: left;
    }
}
.point2__box
{
    max-width: 800px;
    margin: 64px auto 0; 
    padding: 40px;

    background-color: var(--background);
}
.point2__flex
{
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;

    margin: -40px 0 0 -40px; 

    -ms-flex-wrap: wrap;
        flex-wrap: wrap;
    -webkit-box-pack: center;
    -ms-flex-pack: center;
    justify-content: center;
}
@media (max-width: 767px)
{
    .point2__flex
    {
            flex-direction: column; 

        -webkit-box-orient: vertical;
        -webkit-box-direction: normal;
        -ms-flex-direction: column;
    }
    .point2__flex > *
    {
        width: 100% !important;
    }
}
.point2__flex > *
{
    padding: 40px 0 0 40px;
}
.point2__title
{
    width: 240px;
}
.point2__title h3
{
    font-size: 1.25rem;
}
@media (max-width: 767px)
{
    .point2__title h3
    {
        text-align: center;
    }
}
.point2__content
{
    width: calc(100% - 240px);
}
.point2__center
{
    margin-top: 40px;

    text-align: center;
}

.contents
{
    padding: 120px 0;
}
.contents__flex
{
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;

    margin: -40px 0 0 -40px;

    -ms-flex-wrap: wrap;
        flex-wrap: wrap;
}
.contents__flex > *
{
    width: calc(100% / 3); 
    padding: 40px 0 0 40px;
}
@media (max-width: 767px)
{
    .contents__flex > *
    {
        width: 100%;
    }
}
.contents__img
{
    position: relative;
    z-index: 0;
}
.contents__img img
{
    display: block;

    width: 80%;
    max-width: 200px;
    margin: auto;

    border-radius: 100%;
}
.contents__svg
{
    position: absolute;
    z-index: -1; 

    width: 100%;
    height: 100%;
}
.contents__svg svg
{
    display: block;

    width: 100%;
    height: 100%;
}
.contents__item
{
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
        flex-direction: column;

    height: 100%; 

    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
    -ms-flex-direction: column;
}
.contents__desc
{
    font-size: .875rem;

    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
        flex-direction: column;

    margin: 32px 0 24px;

    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
    -ms-flex-direction: column;
    -webkit-box-align: center;
    -ms-flex-align: center;
    align-items: center;
}
@media (min-width: 768px)
{
    .contents__desc
    {
        text-align: center;
    }
}
.contents__desc h2
{
    font-family: var(--heading-font);
    font-size: calc(1.275rem + .3vw);

    position: relative;

    margin-bottom: 24px; 

    text-align: center;
    text-transform: var(--text-transform);

    color: var(--primary);
}
@media (min-width: 1200px)
{
    .contents__desc h2
    {
        font-size: 1.5rem;
    }
}
.contents__btn
{
    margin: auto auto 0;
}
.contents__separate
{
    display: block;

    margin: 8px auto 0;
}

.contents2__list
{
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;

    -ms-flex-wrap: wrap;
        flex-wrap: wrap;
}
.contents2__list > *
{
    width: 33.33333%;
}
@media (max-width: 970px)
{
    .contents2__list > *
    {
        width: 100%;
    }
}

.contents2__desc
{
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
        flex-direction: column;

    width: 100%;
    padding: 40px;

    text-align: center; 

    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
    -ms-flex-direction: column;
    -webkit-box-pack: center;
    -ms-flex-pack: center;
    justify-content: center;
}
@media (max-width: 767px)
{
    .contents2__desc
    {
        padding: 40px 24px;

        text-align: left;
    }
}
.contents2__desc h2
{
    font-family: var(--heading-font);
    font-size: calc(1.275rem + .3vw);

    margin-bottom: 24px; 

    text-align: center;
    text-transform: var(--text-transform);
}
@media (min-width: 1200px)
{
    .contents2__desc h2
    {
        font-size: 1.5rem;
    }
}
.contents2__desc h2 span
{
    font-size: .875rem; 
    font-weight: normal;

    display: block;
}

.contents2__img
{
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;

    width: 100%;

    -webkit-box-align: center;
    -ms-flex-align: center;
    align-items: center;
    -webkit-box-pack: center;
    -ms-flex-pack: center;
    justify-content: center;
}
.contents2__img img
{
    width: 100%;

    border-radius: 100%;

    -o-object-fit: cover;
       object-fit: cover;
    -o-object-position: center;
       object-position: center;
}
@media (max-width: 767px)
{
    .contents2__img img
    {
        max-width: 240px;
    }
}

@media (min-width: 768px)
{
    .contents2__grid:nth-of-type(even) .contents2__desc
    {
        -webkit-box-ordinal-group: 0;
        -ms-flex-order: -1;
        order: -1;
    }
}

.contents2__grid
{
    display: -ms-grid;
    display:     grid;

    -ms-grid-rows: 1fr 1fr;
    grid-template-rows: 1fr 1fr;
}
@media (max-width: 970px)
{
    .contents2__grid
    {
        -ms-grid-rows: auto;
        grid-template-rows: auto;
        -ms-grid-columns: (1fr)[2];
        grid-template-columns: repeat(2, 1fr);
    }
}
@media (max-width: 767px)
{
    .contents2__grid
    {
        -ms-grid-columns: auto;
        grid-template-columns: auto;
    }
}

.contents2__btn
{
    margin-top: 24px;
}

.service__heading
{
    font-family: var(--heading-font);
    font-size: calc(1.325rem + .9vw);

    position: relative;

    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;

    margin-bottom: 40px;

    text-align: center;
    white-space: nowrap;
    text-transform: var(--text-transform);

    -webkit-box-align: center;
    -ms-flex-align: center;
    align-items: center;
    -webkit-box-pack: center;
    -ms-flex-pack: center;
    justify-content: center;
}
@media (min-width: 1200px)
{
    .service__heading
    {
        font-size: 2rem;
    }
}
.service__heading::before,
.service__heading::after
{
    display: block;

    width: 100%;
    height: .4em;
    max-height: 6px;

    content: '';

    background-image: -o-repeating-linear-gradient(135deg, var(--primary-darken-1) 0, var(--primary-darken-1) 1px, rgba(0, 0, 0, 0) 0, rgba(0, 0, 0, 0) 50%);
    background-image:    repeating-linear-gradient(-45deg, var(--primary-darken-1) 0, var(--primary-darken-1) 1px, rgba(0, 0, 0, 0) 0, rgba(0, 0, 0, 0) 50%);
    background-size: 6px 6px;
}
.service__heading::before
{
    margin-right: 40px;
}
.service__heading::after
{
    margin-left: 40px;
}

.service__inner
{
    counter-reset: number;
}

.service__content
{
    position: relative;
    z-index: 0; 

    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;

    -webkit-box-align: start;
    -ms-flex-align: start;
    align-items: flex-start;
    -ms-flex-wrap: wrap;
        flex-wrap: wrap;
}
.service__content + .service__content
{
    margin-top: 80px;
}

.service__bgText
{
    font-family: var(--heading-font);
    font-size: calc(1.875rem + 7.5vw);
    font-weight: bold;
    line-height: 1; 

    position: absolute;
    z-index: -1;
    bottom: 0;
    left: 0;

    text-transform: var(--text-transform);

    opacity: .1;
    color: var(--primary);
}
@media (min-width: 1200px)
{
    .service__bgText
    {
        font-size: 7.5rem;
    }
}
@media (max-width: 970px)
{
    .service__bgText
    {
        z-index: 1;
        right: 0;
        bottom: -.5em; 
        left: initial;

        text-align: right;

        opacity: 1;
    }
}

.service__desc
{
    width: 40%;
    padding: 40px 24px 24px;

    text-align: justify;
}
.service__desc > * + *
{
    margin-top: 8px;
}
@media (max-width: 970px)
{
    .service__desc
    {
        width: 100%;
    }
}
.service__desc::before
{
    font-family: var(--heading-font);
    font-size: calc(1.875rem + 7.5vw);
    font-weight: bold;
    line-height: 1;

    display: block;

    margin: 0 0 24px -24px; 

    content: counter(number, decimal-leading-zero);
    counter-increment: number 1;

    color: var(--primary);
}
@media (min-width: 1200px)
{
    .service__desc::before
    {
        font-size: 7.5rem;
    }
}
.service__desc h3
{
    font-size: calc(1.275rem + .3vw);

    margin-bottom: 24px;
}
@media (min-width: 1200px)
{
    .service__desc h3
    {
        font-size: 1.5rem;
    }
}

.service__img
{
    width: 60%;
}
.service__img img
{
    width: 100%;
}
@media (max-width: 970px)
{
    .service__img
    {
        width: 100%;
    }
}

.cta
{
    position: relative;
    z-index: 0; 

    margin-top: 80px;
    padding: 120px 0;
}
.cta::before
{
    position: absolute;
    z-index: -1;
    top: 0;
    left: 0;

    width: 100%;
    height: 100%;

    content: '';

    opacity: .9; 
    background-image: -o-linear-gradient(45deg, var(--gradient));
    background-image:    linear-gradient(45deg, var(--gradient));
}
.cta__bgImg
{
    position: absolute;
    z-index: -2;
    top: 0;
    left: 0;

    width: 100%;
    height: 100%;

    -o-object-fit: cover;
       object-fit: cover;
}
.cta__heading
{
    font-family: var(--heading-font);
    font-size: calc(1.525rem + 3.3vw);
    line-height: 1.2; 

    position: absolute;
    top: 0;
    left: 50%;

    -webkit-transform: translate(-50%, -50%);
            transform: translate(-50%, -50%);
    text-align: center;
    text-transform: var(--text-transform);
}
@media (min-width: 1200px)
{
    .cta__heading
    {
        font-size: 4rem;
    }
}
.cta__heading span
{
    font-size: calc(1.275rem + .3vw);
    line-height: 1; 

    display: block;
}
@media (min-width: 1200px)
{
    .cta__heading span
    {
        font-size: 1.5rem;
    }
}
.cta__inner
{
    overflow: hidden;
}
.cta__flex
{
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;

    margin: -40px 0 0 -40px;

    -ms-flex-wrap: wrap;
        flex-wrap: wrap;
    -webkit-box-pack: center;
    -ms-flex-pack: center;
    justify-content: center;
}
.cta__flex > *
{
    width: 50%; 
    padding: 40px 0 0 40px;
}
@media (max-width: 767px)
{
    .cta__flex > *
    {
        width: 100%;
    }
}
.cta__caption
{
    margin-bottom: 8px; 

    text-align: center;
}
.cta__box
{
    font-size: .875rem;

    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
        flex-direction: column;

    height: 100%;
    padding: 40px;

    text-align: justify;

    color: var(--text-secondary);
    background-color: rgba(255, 255, 255, .9);

    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
    -ms-flex-direction: column;
    -webkit-box-align: center;
    -ms-flex-align: center;
    align-items: center;
    -webkit-box-pack: center;
    -ms-flex-pack: center;
    justify-content: center;
}
.cta__box > * + *
{
    margin-top: 8px;
}
.cta__box h3
{
    font-size: 1.125rem;

    color: var(--primary);
}
.cta__box a[href^='tel:']
{
    font-family: var(--heading-font);
    font-size: calc(1.275rem + .3vw); 
    font-weight: bold;
}
@media (min-width: 1200px)
{
    .cta__box a[href^='tel:']
    {
        font-size: 1.5rem;
    }
}

.cta2__inner
{
    position: relative;
    z-index: 0;

    overflow: hidden;

    padding: 80px;

    color: var(--base); 
    background-color: var(--primary);
}
@media (max-width: 970px)
{
    .cta2__inner
    {
        padding: 56px 32px;
    }
}
@media (max-width: 485px)
{
    .cta2__inner
    {
        padding: 40px 16px;
    }
}
.cta2__inner a
{
    color: var(--base);
}

.cta2__flex
{
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;

    margin: -40px 0 0 -40px; 

    -ms-flex-wrap: wrap;
        flex-wrap: wrap;
    -webkit-box-align: center;
    -ms-flex-align: center;
    align-items: center;
}
@media (max-width: 767px)
{
    .cta2__flex
    {
        padding: 40px 16px;
    }
}
.cta2__flex > *
{
    width: 50%; 
    padding: 40px 0 0 40px;
}
@media (max-width: 767px)
{
    .cta2__flex > *
    {
        width: 100%;
    }
}

.cta2__bgText
{
    font-family: var(--heading-font);
    font-size: calc(2.125rem + 10.5vw);
    font-weight: bold;
    line-height: 1;

    position: absolute;
    z-index: -1;
    top: 24px;
    left: -.25em;

    text-transform: var(--text-transform);
    pointer-events: none; 

    opacity: .2;
}
@media (min-width: 1200px)
{
    .cta2__bgText
    {
        font-size: 10rem;
    }
}

.cta2__desc
{
    text-align: justify;
}
.cta2__desc > * + *
{
    margin-top: 8px;
}
.cta2__desc h2
{
    font-family: var(--heading-font);
    font-size: calc(1.275rem + .3vw);

    margin-bottom: 24px; 

    text-transform: var(--text-transform);
}
@media (min-width: 1200px)
{
    .cta2__desc h2
    {
        font-size: 1.5rem;
    }
}
.cta2__desc h2 span
{
    font-size: 1rem;

    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;

    margin-bottom: 24px; 

    -webkit-box-align: center;
    -ms-flex-align: center;
    align-items: center;
}
.cta2__desc h2 span::before
{
    width: 12px;
    height: 12px;
    margin-right: .5em; 

    content: '';

    background-color: var(--primary-darken-1);
}
.cta2__desc p
{
    font-size: .875rem;
}

.cta2__link
{
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
        flex-direction: column;

    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
    -ms-flex-direction: column;
    -webkit-box-align: center;
    -ms-flex-align: center;
    align-items: center;
}
@media (min-width: 768px)
{
    .cta2__link
    {
        text-align: right; 

        -webkit-box-align: end;
        -ms-flex-align: end;
        align-items: flex-end;
    }
}
.cta2__link > * + *
{
    margin-top: 24px;
}

.cta2__tel
{
    font-family: var(--heading-font);
    font-weight: bold;
}
.cta2__tel a
{
    font-size: calc(1.325rem + .9vw);
}
@media (min-width: 1200px)
{
    .cta2__tel a
    {
        font-size: 2rem;
    }
}
.cta2__tel a span
{
    font-size: calc(1.275rem + .3vw);

    margin-right: 1em;
}
@media (min-width: 1200px)
{
    .cta2__tel a span
    {
        font-size: 1.5rem;
    }
}

.cta2__mail
{
    font-weight: bold;

    position: relative;

    display: inline-block;

    padding-right: 40px;

    color: #fff;
}
.cta2__mail:hover
{
    color: var(--secondary);
}
.cta2__mail::before,
.cta2__mail::after
{
    position: absolute;
    top: 50%;
    right: 0;

    width: 24px;
    height: 24px;

    content: '';
    -webkit-transition: .2s;
         -o-transition: .2s;
            transition: .2s; 
    -webkit-transform: translateY(-50%);
            transform: translateY(-50%);
}
.cta2__mail::before
{
    -webkit-transform: translateY(-50%);
            transform: translateY(-50%); 

    border-radius: 100%;
    background-color: currentColor;
}
.cta2__mail::after
{
    background-color: var(--primary);

    -webkit-mask-size: contain;
            mask-size: contain;
    -webkit-mask-repeat: no-repeat;
            mask-repeat: no-repeat;
    -webkit-mask-image: url('data:image/svg+xml,%3Csvg%20id%3D%22next-11%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%22180%22%20height%3D%22180%22%20viewBox%3D%220%200%20180%20180%22%3E%0A%20%20%3Cg%3E%0A%20%20%20%20%3Cpath%20d%3D%22M90%2C0a90%2C90%2C0%2C1%2C0%2C90%2C90A90%2C90%2C0%2C0%2C0%2C90%2C0Zm0%2C168.75A78.836%2C78.836%2C0%2C0%2C1%2C11.25%2C90c0-43.425%2C35.325-78.924%2C78.75-78.924S168.75%2C46.575%2C168.75%2C90A78.836%2C78.836%2C0%2C0%2C1%2C90%2C168.75Z%22%20fill%3D%22none%22%2F%3E%0A%20%20%20%20%3Cpath%20d%3D%22M155.172%2C97.61a5.589%2C5.589%2C0%2C0%2C0-7.954%2C0%2C5.721%2C5.721%2C0%2C0%2C0%2C0%2C8.038L182.065%2C141l-34.853%2C35.353a5.721%2C5.721%2C0%2C0%2C0%2C0%2C8.038%2C5.589%2C5.589%2C0%2C0%2C0%2C7.954%2C0l38.812-39.369a5.833%2C5.833%2C0%2C0%2C0%2C0-8.038Z%22%20transform%3D%22translate(-77.502%20-51.086)%22%20fill%3D%22%23fff%22%2F%3E%0A%20%20%3C%2Fg%3E%0A%3C%2Fsvg%3E');
            mask-image: url('data:image/svg+xml,%3Csvg%20id%3D%22next-11%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%22180%22%20height%3D%22180%22%20viewBox%3D%220%200%20180%20180%22%3E%0A%20%20%3Cg%3E%0A%20%20%20%20%3Cpath%20d%3D%22M90%2C0a90%2C90%2C0%2C1%2C0%2C90%2C90A90%2C90%2C0%2C0%2C0%2C90%2C0Zm0%2C168.75A78.836%2C78.836%2C0%2C0%2C1%2C11.25%2C90c0-43.425%2C35.325-78.924%2C78.75-78.924S168.75%2C46.575%2C168.75%2C90A78.836%2C78.836%2C0%2C0%2C1%2C90%2C168.75Z%22%20fill%3D%22none%22%2F%3E%0A%20%20%20%20%3Cpath%20d%3D%22M155.172%2C97.61a5.589%2C5.589%2C0%2C0%2C0-7.954%2C0%2C5.721%2C5.721%2C0%2C0%2C0%2C0%2C8.038L182.065%2C141l-34.853%2C35.353a5.721%2C5.721%2C0%2C0%2C0%2C0%2C8.038%2C5.589%2C5.589%2C0%2C0%2C0%2C7.954%2C0l38.812-39.369a5.833%2C5.833%2C0%2C0%2C0%2C0-8.038Z%22%20transform%3D%22translate(-77.502%20-51.086)%22%20fill%3D%22%23fff%22%2F%3E%0A%20%20%3C%2Fg%3E%0A%3C%2Fsvg%3E');
}

.commit
{
    padding: 80px 0;
}
.commit__heading
{
    font-size: calc(1.525rem + 3.3vw);

    margin-bottom: 120px;
}
@media (min-width: 1200px)
{
    .commit__heading
    {
        font-size: 4rem;
    }
}
.commit__article + .commit__article
{
    margin-top: 160px;
}
@media (max-width: 767px)
{
    .commit__article + .commit__article
    {
        margin-top: 40px;
    }
}
.commit__grid
{
    position: relative;
    z-index: 0;

    display: -ms-grid;
    display:     grid;

    -ms-grid-columns: (1fr)[4];
    grid-template-columns: repeat(4, 1fr);
}
@media (max-width: 767px)
{
    .commit__grid
    {
        display: block;
    }
}
.commit__grid > *
{
    -ms-flex-item-align: center;
    -ms-grid-row-align: center;
    align-self: center;
}
.commit__deco
{
    font-family: var(--heading-font);
    font-size: calc(1.7625rem + 6.15vw);
    font-weight: bold;
    line-height: 1;

    position: absolute;
    z-index: -1;
    top: -.8em;
    right: 0;

    width: 75%;

    text-align: right;
    text-transform: var(--text-transform);
    word-break: break-word; 

    color: var(--background-lighten-1);
}
@media (min-width: 1200px)
{
    .commit__deco
    {
        font-size: 6.375rem;
    }
}
@media (max-width: 767px)
{
    .commit__deco
    {
        width: 100%;
    }
}
.commit__article:nth-of-type(odd) .commit__deco
{
    right: initial;
    left: 0;

    text-align: left;
}
.commit__descArea
{
    position: relative;
    z-index: 0;

    -ms-grid-column: 3;
    -ms-grid-column-span: 2;
        grid-column: 3 / 5;
    -ms-grid-row: 1;
    -ms-grid-row-span: 1;
        grid-row: 1/2;
}
.commit__desc
{
    max-width: 480px;
    margin: auto; 
    padding: 64px;

    text-align: justify;

    background-color: #fff;
}
.commit__desc > * + *
{
    margin-top: 8px;
}
@media (max-width: 767px)
{
    .commit__desc
    {
        padding: 40px 24px;
    }
}
.commit__desc small
{
    font-family: var(--heading-font);
    font-weight: bold; 

    text-transform: var(--text-transform);

    color: var(--secondary);
}
.commit__desc h3
{
    font-family: var(--heading-font); 
    font-size: calc(1.275rem + .3vw);

    margin-bottom: 16px;

    text-align: center;
}
@media (min-width: 1200px)
{
    .commit__desc h3
    {
        font-size: 1.5rem;
    }
}
.commit__desc h4
{
    font-size: 1.125rem;

    margin-top: 16px;

    color: var(--secondary-darken-1);
}
.commit__desc h4::after
{
    display: block;

    width: 100%;
    height: 1px;

    content: '';

    background-color: currentColor;
}
@media (min-width: 768px)
{
    .commit__article:nth-of-type(odd) .commit__descArea
    {
        -ms-grid-column: 1;
        -ms-grid-column-span: 2;
            grid-column: 1 / 3;
    }
}
.commit__img
{
    position: relative;
    z-index: 0;

    -ms-grid-column: 1;
    -ms-grid-column-span: 3;
        grid-column: 1 / 4;
    -ms-grid-row: 1;
    -ms-grid-row-span: 1;
        grid-row: 1/2;
}
.commit__img img
{
    width: 100%;
}
@media (min-width: 768px)
{
    .commit__article:nth-of-type(odd) .commit__img
    {
        -ms-grid-column: 2;
        -ms-grid-column-span: 3;
            grid-column: 2 / 5;
    }
}
.commit__btn
{
    margin-top: 16px;
}

.recruitCta
{
    position: relative;
    z-index: 0; 

    padding: 240px 0;
}
@media (max-width: 767px)
{
    .recruitCta
    {
        padding: 120px 0;
    }
}
.recruitCta__bg
{
    position: absolute;
    z-index: -1;
    top: 0;
    left: 0;

    width: 100%;
    height: 100%;

    -o-object-fit: cover;
       object-fit: cover;
}
.recruitCta__inner
{
    max-width: 970px;
    margin: auto;
}
.recruitCta__caption
{
    font-family: var(--heading-font);
    font-size: calc(1.525rem + 3.3vw);
    font-weight: bold;
    line-height: 1;

    position: absolute;
    z-index: -1;
    top: -.5em;
    left: 0;

    width: 100%; 

    text-transform: var(--text-transform);

    color: var(--secondary);
}
@media (min-width: 1200px)
{
    .recruitCta__caption
    {
        font-size: 4rem;
    }
}
@media (max-width: 767px)
{
    .recruitCta__caption
    {
        text-align: center;
    }
}
.recruitCta__desc
{
    position: relative;
    z-index: 1;

    width: calc(100% - 48px);
    max-width: 600px;
    padding: 80px 40px;

    text-align: justify;

    background-color: #fff;
}
.recruitCta__desc > * + *
{
    margin-top: 8px;
}
@media (max-width: 767px)
{
    .recruitCta__desc
    {
        margin: auto; 
        padding: 56px 24px;
    }
}
.recruitCta__btn
{
    margin-top: 40px;
}

.recommend
{
    margin-top: 80px;
}
.recommend__heading
{
    font-size: calc(1.475rem + 2.7vw);

    margin-bottom: 40px;
}
@media (min-width: 1200px)
{
    .recommend__heading
    {
        font-size: 3.5rem;
    }
}
.recommend__article
{
    overflow: hidden;
}
.recommend__article + .recommend__article
{
    margin-top: 64px;
}
@media (max-width: 767px)
{
    .recommend__article + .recommend__article
    {
        margin-top: 40px;
    }
}
.recommend__flex
{
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;

    -webkit-box-align: center;
    -ms-flex-align: center;
    align-items: center;
}
@media (max-width: 767px)
{
    .recommend__flex
    {
            flex-direction: column; 

        -webkit-box-orient: vertical;
        -webkit-box-direction: normal;
        -ms-flex-direction: column;
    }
}
.recommend__desc
{
    padding: 40px 24px; 

    text-align: justify;
}
.recommend__desc > * + *
{
    margin-top: 8px;
}
@media (min-width: 768px)
{
    .recommend__desc
    {
        width: 35%; 
        padding: 40px;
    }
}
.recommend__desc h3
{
    font-family: var(--heading-font);
    font-size: calc(1.325rem + .9vw);

    margin-bottom: 16px;

    text-transform: var(--text-transform);
}
@media (min-width: 1200px)
{
    .recommend__desc h3
    {
        font-size: 2rem;
    }
}
.recommend__desc h4
{
    font-size: 1.125rem;

    margin-top: 16px;

    color: var(--secondary-darken-1);
}
.recommend__desc h4::after
{
    display: block;

    width: 100%;
    height: 1px;

    content: '';

    background-color: currentColor;
}
@media (min-width: 768px)
{
    .recommend__article:nth-of-type(odd) .recommend__desc
    {
        -webkit-box-ordinal-group: 2;
        -ms-flex-order: 1;
        order: 1;
    }
}
.recommend__img
{
    position: relative;
    z-index: 0;
}
.recommend__img img
{
    width: 100%; 

    border-radius: 16px;
}
@media (min-width: 768px)
{
    .recommend__img
    {
        width: 65%;
    }
}
@media (min-width: 768px)
{
    .recommend__article:nth-of-type(odd) .recommend__img
    {
        -webkit-box-ordinal-group: 3;
        -ms-flex-order: 2;
        order: 2;
    }
}
.recommend__article:nth-of-type(odd) .recommend__img::before
{
    right: initial;
    left: 0;
}
.recommend__btn
{
    margin-top: 24px;
}

.covid
{
    margin-top: 80px;
    padding: 80px 0;

    background-color: var(--primary-lighten-2);
}
.covid__heading
{
    font-size: calc(1.375rem + 1.5vw);

    margin-bottom: 56px;
}
@media (min-width: 1200px)
{
    .covid__heading
    {
        font-size: 2.5rem;
    }
}
.covid__intro
{
    margin: 40px auto;
}
@media (min-width: 971px)
{
    .covid__intro
    {
        text-align: center;
    }
}
.covid__flex
{
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;

    margin: -24px 0 0 -24px;

    -ms-flex-wrap: wrap;
        flex-wrap: wrap;
    -webkit-box-pack: center;
    -ms-flex-pack: center;
    justify-content: center;
}
@media (max-width: 485px)
{
    .covid__flex
    {
        margin: -12px 0 0 -12px;
    }
}
.covid__flex > *
{
    width: 20%;
    padding: 24px 0 0 24px;
}
@media (max-width: 970px)
{
    .covid__flex > *
    {
        width: 25%;
    }
}
@media (max-width: 767px)
{
    .covid__flex > *
    {
        width: 33.33333%;
    }
}
@media (max-width: 485px)
{
    .covid__flex > *
    {
        width: 50%;
        padding: 12px 0 0 12px;
    }
}
.covid__content
{
    border-radius: 16px;
}
.covid__content h3
{
    font-family: var(--heading-font);
    font-size: 1.125rem; 

    margin-top: 8px;

    text-align: center;
    text-transform: var(--text-transform);
}
.covid__icon
{
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;

    width: 200px;
    max-width: 100%; 
    height: 200px;
    margin: auto;
    padding: 24px;

    border-radius: 16px;
    background-color: #fff;

    -webkit-box-align: center;
    -ms-flex-align: center;
    align-items: center;
    -webkit-box-pack: center;
    -ms-flex-pack: center;
    justify-content: center;
}
@media (max-width: 970px)
{
    .covid__icon
    {
        width: 160px;
        height: 160px;
    }
}
.covid .project
{
    margin-top: 40px;
}

.project
{
    padding: 40px 0;
}
.project .center
{
    margin: 8px 0;

    text-align: center;
}
.project__box
{
    position: relative;
    z-index: 0; 

    padding: 64px 40px 40px;

    border-radius: 6px;
    background-color: var(--base);
}
@media (max-width: 767px)
{
    .project__box
    {
        padding: 64px 24px 24px; 

        text-align: left;
    }
}
.project__boxTitle
{
    font-size: 1.25rem;

    position: absolute;
    top: 0;
    left: 50%;

    display: inline-block;

    padding: 12px 40px;

    -webkit-transform: translate(-50%, -50%);
            transform: translate(-50%, -50%); 
    text-align: center;

    color: var(--base);
    border-radius: 6px;
    background-color: var(--secondary);
}
@media (max-width: 767px)
{
    .project__boxTitle
    {
        font-size: 1rem; 

        width: calc(100% - 40px);
    }
}
.project__flex
{
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;

    margin: -40px 0 0 -40px;
    padding: 40px 0;

    text-align: left; 

    -ms-flex-wrap: wrap;
        flex-wrap: wrap;
}
.project__flex > *
{
    width: 50%; 
    padding: 40px 0 0 40px;
}
@media (max-width: 767px)
{
    .project__flex > *
    {
        width: 100%;
    }
}
.project__flex > *:nth-child(2n)
{
    position: relative;
}
.project__flex > *:nth-child(2n)::before
{
    position: absolute;
    z-index: 0;
    top: 40px;
    left: 20px;

    width: 1px;
    height: calc(100% - 40px);

    content: '';

    background-color: var(--background-darken-1);
}
@media (max-width: 767px)
{
    .project__flex > *:nth-child(2n)::before
    {
        z-index: 0;
        top: 20px;
        left: 40px;

        width: calc(100% - 40px); 
        height: 1px;
    }
}
.project__flex h3
{
    font-size: 1.25rem;

    margin-bottom: 16px;
}
.project__flex p
{
    font-size: .875rem;
}
.project__flex ul
{
    margin-bottom: 16px;
}
.project__desc
{
    text-align: justify;
}
.project__desc > * + *
{
    margin-top: 8px;
}

.slider
{
    padding: 120px 0 80px;
}
.slider__heading
{
    font-size: calc(1.475rem + 2.7vw);
}
@media (min-width: 1200px)
{
    .slider__heading
    {
        font-size: 3.5rem;
    }
}
.slider__heading
{
    margin-bottom: 64px;
}
@media (max-width: 767px)
{
    .slider__heading
    {
        margin-bottom: 40px;
    }
}
.slider__inner
{
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    overflow: hidden;
        flex-direction: column; 

    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
    -ms-flex-direction: column;
}
.slider__imgArea
{
    width: calc(100% - 120px);

    -ms-flex-item-align: start;
    align-self: flex-start;
}
@media (max-width: 970px)
{
    .slider__imgArea
    {
        width: calc(100% - 64px);
    }
}
@media (max-width: 767px)
{
    .slider__imgArea
    {
        width: 100%;
    }
}
.slider__img
{
    overflow: hidden; 

    border-radius: 16px;
}
.slider__img img
{
    width: 100%;
}
.slider__descArea
{
    position: relative;
    z-index: 1;

    width: 70%;
    margin-top: -160px;
    padding: 64px;

    text-align: justify; 

    border-radius: 16px;
    background-color: #fff;

    -ms-flex-item-align: end;
    align-self: flex-end;
}
.slider__descArea > * + *
{
    margin-top: 8px;
}
@media (max-width: 970px)
{
    .slider__descArea
    {
        margin: -80px;
    }
}
@media (max-width: 767px)
{
    .slider__descArea
    {
        width: 100%;
        margin: 0;
        padding: 0; 

        background-color: initial;
    }
}
.slider__descArea h3
{
    font-size: calc(1.275rem + .3vw);

    margin-bottom: 16px;
}
@media (min-width: 1200px)
{
    .slider__descArea h3
    {
        font-size: 1.5rem;
    }
}
.slider__pagination
{
    margin-top: 8px;
}
@media (max-width: 767px)
{
    .slider__pagination
    {
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;

        margin: 24px 0; 

        -webkit-box-pack: center;
        -ms-flex-pack: center;
        justify-content: center;
    }
}
.slider__pagination .swiper-pagination-bullet
{
    position: relative;

    width: 12px;
    height: 12px;
    margin: 0 !important;

    opacity: 1 !important; 
    background-color: var(--primary-lighten-1);
}
.slider__pagination .swiper-pagination-bullet:not(:last-child)
{
    margin: 0 24px 0 0 !important;
}
.slider__pagination .swiper-pagination-bullet:not(:last-child)::before,
.slider__pagination .swiper-pagination-bullet:not(:last-child)::after
{
    position: absolute;
    top: 50%;
    right: 1px;

    width: 25px;
    height: 1px;

    content: '';
    -webkit-transform: translate(100%, -50%);
            transform: translate(100%, -50%);
}
.slider__pagination .swiper-pagination-bullet:not(:last-child)::before
{
    background-color: var(--primary-lighten-1);
}
.slider__pagination .swiper-pagination-bullet:not(:last-child)::after
{
    -webkit-transform: translate(100%, -50%) scaleX(0);
            transform: translate(100%, -50%) scaleX(0);
    -webkit-transform-origin: left;
            transform-origin: left; 

    background-color: var(--primary);
}
.slider__pagination .swiper-pagination-bullet-active
{
    background-color: var(--primary);
}
.slider__pagination .swiper-pagination-bullet-active::after
{
    -webkit-transition: linear 5s;
         -o-transition: linear 5s;
            transition: linear 5s;
    -webkit-transform: translate(100%, -50%) scaleX(1) !important;
            transform: translate(100%, -50%) scaleX(1) !important;
}

/* 固定ページコンテンツ */
.information
{
    padding: 80px 0;
}
.information__flex
{
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;

    margin: -40px 0 0 -40px; 

    -ms-flex-wrap: wrap;
        flex-wrap: wrap;
    -webkit-box-align: center;
    -ms-flex-align: center;
    align-items: center;
}
.information__flex > *
{
    width: 50%;
    padding: 40px 0 0 40px;
}
@media (max-width: 767px)
{
    .information__flex > *
    {
        width: 100%;
    }
}
.information__table table
{
    width: 100%; 

    table-layout: fixed;
}
.information__table table th,
.information__table table td
{
    padding-top: 1em;
    padding-bottom: 1em; 

    word-wrap: break-word;
}
.information__table table tr
{
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;

    border-bottom: solid 1px var(--background-darken-1);
}
.information__table table th
{
    width: calc(100% / 3);
    padding-right: 12px; 

    text-align: left;
}
@media (max-width: 767px)
{
    .information__table table th
    {
        width: 110px;
    }
}
.information__table table td
{
    width: calc(100% / 3 * 2);
    padding-left: 12px;
}
@media (max-width: 767px)
{
    .information__table table td
    {
        width: calc(100% - 110px);
    }
}
.information__img
{
    overflow: hidden;

    -webkit-box-shadow: 14px 12px 0 rgba(var(--rgb-primary), .1);
            box-shadow: 14px 12px 0 rgba(var(--rgb-primary), .1);
}
.information__img img
{
    width: 100%;
}
.information__heading
{
    font-family: var(--heading-font);

    text-transform: var(--text-transform);
}
.information h3
{
    font-size: calc(1.275rem + .3vw);

    margin-bottom: 8px;
}
@media (min-width: 1200px)
{
    .information h3
    {
        font-size: 1.5rem;
    }
}

.information2__table table
{
    width: 100%; 

    table-layout: fixed;
}
.information2__table table th,
.information2__table table td
{
    padding-top: 40px;
    padding-bottom: 40px; 

    word-wrap: break-word;
}
.information2__table table tr
{
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;

    border-style: solid;
    border-color: var(--background-darken-1); 
    border-top-width: 1px;
}
.information2__table table tr:last-of-type
{
    border-bottom-width: 1px;
}
.information2__table table th
{
    width: calc(100% / 3);
    padding-right: 12px; 

    text-align: left;
}
@media (max-width: 767px)
{
    .information2__table table th
    {
        width: 110px;
    }
}
.information2__table table td
{
    width: calc(100% / 3 * 2);
    padding-left: 12px;
}
@media (max-width: 767px)
{
    .information2__table table td
    {
        width: calc(100% - 110px);
    }
}

.information2__iconList
{
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;

    margin: -8px 0 0 -8px; 

    -webkit-box-align: center;
    -ms-flex-align: center;
    align-items: center;
    -ms-flex-wrap: wrap;
        flex-wrap: wrap;
}
.information2__iconList img
{
    display: inline-block;

    max-width: 2.5em;
    margin: 8px 0 0 8px;
}

.information3
{
    padding: 80px 0;
}
.information3__heading
{
    font-size: calc(1.375rem + 1.5vw);

    margin-bottom: 64px;
}
@media (min-width: 1200px)
{
    .information3__heading
    {
        font-size: 2.5rem;
    }
}
.information3__table
{
    max-width: 640px;
    margin: auto;
}
.information3__table table
{
    width: 100%;
}
.information3__table table tr
{
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;

    -ms-flex-wrap: wrap;
        flex-wrap: wrap;
}
.information3__table table th
{
    width: 25%;
}
@media (max-width: 767px)
{
    .information3__table table th
    {
        width: 100%;
    }
}
.information3__table table td
{
    width: calc(75% - 24px);
}
@media (max-width: 767px)
{
    .information3__table table td
    {
        width: 100%;
    }
}
.information3__table tbody tr:not(:first-of-type)
{
    margin-top: 32px;
}
.information3__table tbody th,
.information3__table tbody td
{
    padding-bottom: 8px; 

    border-bottom: 1px solid var(--primary);
}
.information3__table tbody th
{
    font-weight: bold; 

    text-align: left;
}
.information3__table tbody td
{
    margin-left: 24px;
}
@media (max-width: 767px)
{
    .information3__table tbody td
    {
        margin-top: 16px;
    }
}
.information3__table tbody ul li:not(:first-of-type)
{
    margin-top: 8px;
}
.information3__table tbody .bold
{
    font-weight: bold;

    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;

    -webkit-box-align: center;
    -ms-flex-align: center;
    align-items: center;
}
.information3__table tbody .bold::before
{
    width: 1em;
    height: 2px;
    margin: 0 .5em 0 0; 

    content: '';

    background-color: currentColor;
    background-repeat: repeat-x;
    background-size: 6px 2px;
}
.information3__table tbody .bold + p
{
    padding-left: 1.5em;
}

.access
{
    position: relative;
    z-index: 0; 

    margin: 80px 0;
    padding: 80px 0;
}
.access::before
{
    position: absolute;
    top: 0;
    right: 0;

    width: 40%;
    height: 100%;

    content: '';

    background-color: var(--primary-lighten-2);
}
@media (max-width: 767px)
{
    .access::before
    {
        top: initial;
        right: 0;
        bottom: 0;

        width: 100%;
        height: 40%;
    }
}
.access__wrap
{
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;

    margin: -40px 0 0 -40px; 

    -ms-flex-wrap: wrap;
        flex-wrap: wrap;
    -webkit-box-align: center;
    -ms-flex-align: center;
    align-items: center;
}
.access__wrap > *
{
    padding: 40px 0 0 40px;
}
.access__desc
{
    width: 33.33333%;
}
@media (max-width: 767px)
{
    .access__desc
    {
        width: 100%;
    }
}
.access__desc h2
{
    font-family: var(--heading-font);
    font-size: calc(1.375rem + 1.5vw);

    margin-bottom: 32px; 

    text-transform: var(--text-transform);
}
@media (min-width: 1200px)
{
    .access__desc h2
    {
        font-size: 2.5rem;
    }
}
.access__desc h2 span
{
    font-size: .875rem; 

    display: block;
}
.access__desc h3
{
    font-size: 1.25rem;
}
.access__desc h3:not(:first-of-type)
{
    margin-top: 16px;
}
.access__btn
{
    margin-top: 24px;
}
.access__map
{
    width: 66.66667%;
}
@media (max-width: 767px)
{
    .access__map
    {
        width: 100%;
    }
}
.access__iframe
{
    position: relative;

    overflow: hidden;

    width: 100%;
    height: 0;
    padding-bottom: 66.66667%;
}
.access__iframe img,
.access__iframe iframe,
.access__iframe object,
.access__iframe video
{
    position: absolute;
    top: 0;
    left: 0;

    width: 100%;
    height: 100%;
}
.access__iframe img,
.access__iframe video
{
    -o-object-fit: cover;
       object-fit: cover;
    -o-object-position: center;
       object-position: center;
}
@media (max-width: 767px)
{
    .access__iframe
    {
        position: relative;

        overflow: hidden;

        width: 100%;
        height: 0;
        padding-bottom: 100%;
    }
    .access__iframe img,
    .access__iframe iframe,
    .access__iframe object,
    .access__iframe video
    {
        position: absolute;
        top: 0;
        left: 0;

        width: 100%;
        height: 100%;
    }
    .access__iframe img,
    .access__iframe video
    {
        -o-object-fit: cover;
           object-fit: cover;
        -o-object-position: center;
           object-position: center;
    }
}

.message
{
    position: relative;
    z-index: 0;

    overflow: hidden; 

    margin-top: 120px;
    padding: 120px 0;

    background-color: var(--background);
}
@media (max-width: 767px)
{
    .message
    {
        padding: 80px 0;
    }
}
.message__bg
{
    position: absolute;
    z-index: -1;
    left: 0;

    display: block;

    width: 100%;
}
.message__bg--top
{
    top: 0;
}
.message__bg--bottom
{
    bottom: 0;
}
.message__inner
{
    position: relative;
    z-index: 0;

    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;

    margin: -40px 0 0 -80px;

    -ms-flex-wrap: wrap;
        flex-wrap: wrap;
    -webkit-box-pack: center;
    -ms-flex-pack: center;
    justify-content: center;
}
.message__inner > *
{
    padding: 40px 0 0 80px;
}
@media (max-width: 767px)
{
    .message__inner > *
    {
        width: 100% !important;
    }
}
.message__descArea
{
    width: 60%;
}
@media (max-width: 970px)
{
    .message__descArea
    {
        width: 50%;
    }
}
.message__desc
{
    padding-top: 80px;

    text-align: justify;
}
.message__desc > * + *
{
    margin-top: 8px;
}
.message__desc h2
{
    font-family: var(--heading-font);
    font-size: calc(1.525rem + 3.3vw);

    margin-bottom: 24px;

    text-transform: var(--text-transform);
}
@media (min-width: 1200px)
{
    .message__desc h2
    {
        font-size: 4rem;
    }
}
.message__desc h2 span
{
    font-size: .875rem; 

    display: inline-block;

    margin-left: 2em;
}
.message__img
{
    width: 40%;

    -ms-flex-item-align: start;
    align-self: flex-start;
}
@media (max-width: 970px)
{
    .message__img
    {
        width: 50%;
    }
}
.message__img img
{
    width: calc(100% - 40px);
}
.message__box
{
    font-size: 1.25rem;

    position: relative;

    display: block;

    width: calc(100% - 80px);
    max-width: 260px;
    margin: -40px 0 0 auto; 
    padding: 24px;

    color: var(--text);
    background-color: #fff;
}
.message__box small
{
    font-size: .875rem;

    display: inline-block;

    margin-bottom: 8px; 

    color: var(--primary);
}
.message__box span
{
    font-size: .875rem;

    margin-right: 1em;
}

.message2__flex
{
    position: relative;
    z-index: 0;

    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;

    -ms-flex-wrap: wrap;
        flex-wrap: wrap;
    -webkit-box-align: start;
    -ms-flex-align: start;
    align-items: flex-start;
}

.message2__img
{
    width: 50%;
    padding-bottom: 96px;
}
.message2__img img
{
    max-width: 100%;
}
@media (max-width: 767px)
{
    .message2__img
    {
        width: 100%;
        padding-bottom: 0;
    }
    .message2__img img
    {
        width: 80%;
    }
}

.message2__descArea
{
    position: relative;
    z-index: -1; 

    width: 50%;
}
@media (max-width: 767px)
{
    .message2__descArea
    {
        width: 100%;
        margin-top: 40px;
    }
}

.message2__name
{
    font-size: calc(1.275rem + .3vw);

    margin-left: 56px; 

    text-align: justify;
}
@media (min-width: 1200px)
{
    .message2__name
    {
        font-size: 1.5rem;
    }
}
.message2__name > * + *
{
    margin-top: 8px;
}
@media (max-width: 970px)
{
    .message2__name
    {
        margin-left: 32px;
    }
}
@media (max-width: 767px)
{
    .message2__name
    {
        margin-left: 0;
    }
}
.message2__name .is_bold
{
    font-weight: bold;

    border-bottom: 2px solid currentColor;
}
.message2__name small
{
    font-size: .875rem; 

    display: block;
}

.message2__desc
{
    margin: 40px 0 0 -60px;
    padding: 96px 56px 96px 120px;

    text-align: justify;

    background-color: var(--background);
}
.message2__desc > * + *
{
    margin-top: 8px;
}
@media (max-width: 970px)
{
    .message2__desc
    {
        margin: 40px 0 0 -40px; 
        padding: 80px 32px 80px 80px;
    }
}
@media (max-width: 767px)
{
    .message2__desc
    {
        margin: 40px 0 0;
        padding: 40px 24px;
    }
}
.message2__desc h2
{
    font-size: calc(1.275rem + .3vw);

    margin-bottom: 8px;
}
@media (min-width: 1200px)
{
    .message2__desc h2
    {
        font-size: 1.5rem;
    }
}

.message2__desc h2
{
    margin-bottom: 16px; 

    color: var(--primary-darken-1);
}

.message2__img img
{
    width: 100%;
}

.recruitMerit
{
    position: relative;
    z-index: 0; 

    overflow: hidden;

    padding: 120px 0;
}
.recruitMerit__parallax
{
    position: absolute;
    z-index: -1;

    width: 100%;

    background-position: center;
    background-size: cover;

    -webkit-filter: contrast(1.2) brightness(.2) blur(2px);
            filter: contrast(1.2) brightness(.2) blur(2px);
}
@media (max-width: 970px)
{
    .recruitMerit__parallax
    {
        display: none;
    }
}
.recruitMerit__wrap
{
    position: relative;
}
@media (min-width: 971px)
{
    .recruitMerit__wrap::before
    {
        position: absolute;
        z-index: -1;
        bottom: -120px;
        left: 50%;

        width: 100vw;
        height: 80%;

        content: '';
        -webkit-transform: translateX(-50%);
                transform: translateX(-50%); 

        background-color: var(--background);
    }
}
.recruitMerit__list
{
    position: relative;
    z-index: 0;

    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;

    margin: -40px 0 0 -80px; 

    -ms-flex-wrap: wrap;
        flex-wrap: wrap;
    -webkit-box-pack: center;
    -ms-flex-pack: center;
    justify-content: center;
}
.recruitMerit__list > *
{
    width: calc(100% / 3);
    padding: 40px 0 0 80px;
}
@media (max-width: 970px)
{
    .recruitMerit__list > *
    {
        width: 50%;
    }
}
@media (max-width: 767px)
{
    .recruitMerit__list > *
    {
        width: 100%;
    }
}
.recruitMerit__card
{
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
        flex-direction: column; 

    height: 100%;

    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
    -ms-flex-direction: column;
}
.recruitMerit__img
{
    position: relative;
    z-index: 1; 

    margin-bottom: 24px;
}
.recruitMerit__img.circle img
{
    border: solid 16px currentColor; 
    border-radius: 100%;
}
.recruitMerit__img img
{
    display: block;

    max-width: 100%;
}
@media (max-width: 970px)
{
    .recruitMerit__img img
    {
        width: calc(100% - 48px);
        margin: auto;
    }
}
.recruitMerit__desc
{
    font-size: .875rem;

    position: relative;
    z-index: 0;

    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
        flex-direction: column;

    height: 100%; 

    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
    -ms-flex-direction: column;
}
@media (max-width: 970px)
{
    .recruitMerit__desc
    {
        padding: 0 24px 48px;
    }
    .recruitMerit__desc::before
    {
        position: absolute;
        z-index: -1;
        bottom: 0; 
        left: 0;

        width: 100%;
        height: calc(100% + 64px);

        content: '';

        background-color: var(--background);
    }
}
.recruitMerit__desc h3
{
    font-size: calc(1.275rem + .3vw);

    margin-bottom: 16px; 

    text-align: center;
}
@media (min-width: 1200px)
{
    .recruitMerit__desc h3
    {
        font-size: 1.5rem;
    }
}
.recruitMerit__desc h3 span
{
    font-size: .875rem; 

    display: block;
}
.recruitMerit__btn
{
    margin: auto 0 24px 0;
}
.recruitMerit__btn a
{
    margin-top: 32px;

    border-color: #fff;
}

.clock
{
    position: relative; 

    border: solid 2px var(--primary);
    border-radius: 100%;
}
.clock::before,
.clock::after
{
    position: absolute;
    top: 50%;
    left: 50%;

    height: 2px;

    content: '';
    -webkit-transform-origin: left center;
            transform-origin: left center; 

    background-color: var(--primary);
}
.clock::before
{
    width: 35%;
}
.clock::after
{
    width: 50%;
}
.clock.h-0::before
{
    -webkit-transform: rotate(-90deg);
            transform: rotate(-90deg);
}
.clock.m-0::after
{
    -webkit-transform: rotate(-90deg);
            transform: rotate(-90deg);
}
.clock.h-1::before
{
    -webkit-transform: rotate(-60deg);
            transform: rotate(-60deg);
}
.clock.m-5::after
{
    -webkit-transform: rotate(-60deg);
            transform: rotate(-60deg);
}
.clock.h-2::before
{
    -webkit-transform: rotate(-30deg);
            transform: rotate(-30deg);
}
.clock.m-10::after
{
    -webkit-transform: rotate(-30deg);
            transform: rotate(-30deg);
}
.clock.h-3::before
{
    -webkit-transform: rotate(0deg);
            transform: rotate(0deg);
}
.clock.m-15::after
{
    -webkit-transform: rotate(0deg);
            transform: rotate(0deg);
}
.clock.h-4::before
{
    -webkit-transform: rotate(30deg);
            transform: rotate(30deg);
}
.clock.m-20::after
{
    -webkit-transform: rotate(30deg);
            transform: rotate(30deg);
}
.clock.h-5::before
{
    -webkit-transform: rotate(60deg);
            transform: rotate(60deg);
}
.clock.m-25::after
{
    -webkit-transform: rotate(60deg);
            transform: rotate(60deg);
}
.clock.h-6::before
{
    -webkit-transform: rotate(90deg);
            transform: rotate(90deg);
}
.clock.m-30::after
{
    -webkit-transform: rotate(90deg);
            transform: rotate(90deg);
}
.clock.h-7::before
{
    -webkit-transform: rotate(120deg);
            transform: rotate(120deg);
}
.clock.m-35::after
{
    -webkit-transform: rotate(120deg);
            transform: rotate(120deg);
}
.clock.h-8::before
{
    -webkit-transform: rotate(150deg);
            transform: rotate(150deg);
}
.clock.m-40::after
{
    -webkit-transform: rotate(150deg);
            transform: rotate(150deg);
}
.clock.h-9::before
{
    -webkit-transform: rotate(180deg);
            transform: rotate(180deg);
}
.clock.m-45::after
{
    -webkit-transform: rotate(180deg);
            transform: rotate(180deg);
}
.clock.h-10::before
{
    -webkit-transform: rotate(210deg);
            transform: rotate(210deg);
}
.clock.m-50::after
{
    -webkit-transform: rotate(210deg);
            transform: rotate(210deg);
}
.clock.h-11::before
{
    -webkit-transform: rotate(240deg);
            transform: rotate(240deg);
}
.clock.m-55::after
{
    -webkit-transform: rotate(240deg);
            transform: rotate(240deg);
}

.workFlow
{
    padding: 80px 0;

    background-color: var(--background);
}
@media (max-width: 767px)
{
    .workFlow
    {
        padding: 64px 0;
    }
}
.workFlow__wrap
{
    width: 92%;
    max-width: 800px; 
    margin: auto;
}
.workFlow__heading
{
    font-family: var(--heading-font);
    font-size: calc(1.475rem + 2.7vw);

    margin-bottom: 40px;
}
@media (min-width: 1200px)
{
    .workFlow__heading
    {
        font-size: 3.5rem;
    }
}
.workFlow__heading span
{
    font-size: 1rem;

    display: block;
}
.workFlow__list
{
    padding: 64px 32px; 

    background-color: var(--base);
}
@media (max-width: 767px)
{
    .workFlow__list
    {
        padding: 64px 16px;
    }
}
.workFlow__content
{
    position: relative;

    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;

    -webkit-box-align: center;
    -ms-flex-align: center;
    align-items: center;
}
.workFlow__content + .workFlow__content
{
    margin-top: 56px;
}
@media (min-width: 768px)
{
    .workFlow__content
    {
        margin-left: -24px;
    }
    .workFlow__content > *
    {
        padding-left: 24px;
    }
}
.workFlow__content time
{
    font-family: var(--heading-font);
    font-size: calc(1.275rem + .3vw);
    font-weight: bold;

    min-width: 120px; 

    color: var(--primary);
}
@media (min-width: 1200px)
{
    .workFlow__content time
    {
        font-size: 1.5rem;
    }
}
@media (max-width: 767px)
{
    .workFlow__content time
    {
        font-size: 12px;

        position: absolute;
        top: 0;
        left: 0;

        display: block; 

        width: 40px;
        min-width: initial;

        text-align: center;
    }
}
.workFlow__content:not(:last-child) .workFlow__clock::before
{
    position: absolute;
    right: calc((100% - 24px) / 2);
    bottom: -42px; 

    width: 2px;
    height: 32px;

    content: '';

    background-color: var(--primary-lighten-1);
}
@media (max-width: 767px)
{
    .workFlow__content:not(:last-child) .workFlow__clock::before
    {
        right: 50%;
    }
}
.workFlow__clock
{
    position: relative;
    z-index: 0;
}
@media (max-width: 767px)
{
    .workFlow__clock
    {
        padding-top: 24px;
    }
}
.workFlow__clock .clock
{
    width: 64px;
    height: 64px;
}
@media (max-width: 767px)
{
    .workFlow__clock .clock
    {
        width: 40px;
        height: 40px;
    }
}
@media (max-width: 767px)
{
    .workFlow__desc
    {
        padding-left: 16px;
    }
}
.workFlow__desc h3
{
    font-size: 1.25rem;
}
@media (max-width: 767px)
{
    .workFlow__desc h3
    {
        font-size: 1rem;
    }
}

.recruitTable
{
    padding: 120px 0;
}
.recruitTable__heading
{
    font-size: calc(1.375rem + 1.5vw); 

    margin-bottom: 80px;
}
@media (min-width: 1200px)
{
    .recruitTable__heading
    {
        font-size: 2.5rem;
    }
}
.recruitTable__table table
{
    width: 100%;
}
.recruitTable__table table tr
{
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;

    -ms-flex-wrap: wrap;
        flex-wrap: wrap;
}
.recruitTable__table table th
{
    width: 40%;
}
@media (max-width: 767px)
{
    .recruitTable__table table th
    {
        width: 100%;
    }
}
.recruitTable__table table td
{
    width: 60%;
}
@media (max-width: 767px)
{
    .recruitTable__table table td
    {
        width: 100%;
    }
}
.recruitTable__table tbody tr
{
    -webkit-box-align: start;
    -ms-flex-align: start;
    align-items: flex-start;
}
.recruitTable__table tbody tr:not(:first-of-type)
{
    margin-top: 32px;
}
.recruitTable__table tbody th
{
    font-weight: bold;

    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;

    -webkit-box-align: center;
    -ms-flex-align: center;
    align-items: center;
}
.recruitTable__table tbody th::after
{
    height: 2px;
    margin: 0 1.5em; 

    content: '';

    background-image: -o-linear-gradient(left, var(--text-secondary), var(--text-secondary) 2px, transparent 2px, transparent 6px);
    background-image:    linear-gradient(to right, var(--text-secondary), var(--text-secondary) 2px, transparent 2px, transparent 6px);
    background-repeat: repeat-x;
    background-size: 6px 2px;

    -webkit-box-flex: 1;
    -ms-flex-positive: 1;
    flex-grow: 1;
}
@media (max-width: 767px)
{
    .recruitTable__table tbody th::after
    {
        margin: 0 0 0 1.5em;
    }
}
@media (max-width: 767px)
{
    .recruitTable__table tbody td
    {
        margin-top: 16px;
    }
}
.recruitTable__table tbody dl
{
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;

    -webkit-box-align: center;
    -ms-flex-align: center;
    align-items: center;
    -ms-flex-wrap: wrap;
        flex-wrap: wrap;
}
.recruitTable__table tbody dl:not(:first-of-type)
{
    margin-top: 8px;
}
.recruitTable__table tbody dl dt
{
    margin-right: 1em;
}
.recruitTable__table tbody dl dt::before
{
    margin-right: 1em; 

    content: '[';
}
.recruitTable__table tbody dl dt::after
{
    margin-left: 1em; 

    content: ']';
}
.recruitTable__table tbody ul li:not(:first-of-type)
{
    margin-top: 8px;
}
.recruitTable__table tbody .bold
{
    font-weight: bold;

    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;

    -webkit-box-align: center;
    -ms-flex-align: center;
    align-items: center;
}
.recruitTable__table tbody .bold::before
{
    width: 1em;
    height: 2px;
    margin: 0 .5em 0 0; 

    content: '';

    background-color: currentColor;
    background-repeat: repeat-x;
    background-size: 6px 2px;
}
.recruitTable__table tbody .bold + p
{
    padding-left: 1.5em;
}
.recruitTable__btn
{
    margin-top: 40px;
}

.merit
{
    padding: 80px 0;
}
.merit__heading
{
    font-size: calc(1.525rem + 3.3vw);

    margin-bottom: 80px;
}
@media (min-width: 1200px)
{
    .merit__heading
    {
        font-size: 4rem;
    }
}
.merit__inner
{
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;

    margin: -40px 0 0 -40px;

    counter-reset: number; 

    -ms-flex-wrap: wrap;
        flex-wrap: wrap;
}
.merit__inner > *
{
    width: 33.33333%;
    padding: 40px 0 0 40px;
}
@media (max-width: 970px)
{
    .merit__inner > *
    {
        width: 50%;
    }
}
@media (max-width: 767px)
{
    .merit__inner > *
    {
        width: 100%;
    }
}
.merit__icon
{
    font-family: var(--heading-font);
    font-weight: bold;

    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;

    width: 80px;
    height: 80px;
    margin-bottom: 16px; 

    background-color: var(--secondary);

    -webkit-box-align: center;
    -ms-flex-align: center;
    align-items: center;
    -webkit-box-pack: center;
    -ms-flex-pack: center;
    justify-content: center;
}
.merit__icon::before
{
    font-size: calc(1.275rem + .3vw);
    line-height: 1;

    content: counter(number, decimal-leading-zero);
    counter-increment: number 1;
    text-align: center; 

    color: var(--base);
}
@media (min-width: 1200px)
{
    .merit__icon::before
    {
        font-size: 1.5rem;
    }
}
.merit__desc
{
    text-align: justify;
}
.merit__desc > * + *
{
    margin-top: 8px;
}
.merit__desc h3
{
    font-size: calc(1.275rem + .3vw);
}
@media (min-width: 1200px)
{
    .merit__desc h3
    {
        font-size: 1.5rem;
    }
}

.line
{
    margin: 40px auto 80px;
}
.line__heading
{
    font-family: var(--heading-font);
    font-size: calc(1.275rem + .3vw);
    line-height: 1; 

    position: relative;
    z-index: 1;

    -webkit-transform: translateY(50%);
            transform: translateY(50%);
    text-align: center;
}
@media (min-width: 1200px)
{
    .line__heading
    {
        font-size: 1.5rem;
    }
}
.line__heading > span
{
    font-size: .875rem;

    position: absolute;
    left: 50%;

    display: block;

    -webkit-transform: translate(-50%, 8px);
            transform: translate(-50%, 8px); 

    color: var(--text-secondary);
}
.line__content
{
    position: relative;
    z-index: 0;

    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;

    width: 100%;
    max-width: 800px;
    margin: 0 auto;
    padding: 80px;

    background-color: var(--background);

    -webkit-box-align: center;
    -ms-flex-align: center;
    align-items: center;
}
@media (max-width: 767px)
{
    .line__content
    {
            flex-direction: column;

        padding: 40px 24px; 

        -webkit-box-orient: vertical;
        -webkit-box-direction: normal;
        -ms-flex-direction: column;
    }
}
.line__content::before
{
    position: absolute;
    z-index: -1;
    top: 0;
    left: 0;

    width: 100%;
    height: 100%;

    content: '';
    pointer-events: none;

    opacity: .4;
    background-image: url('img/decoration/grain.png');
}
.line__qr
{
    display: block; 

    width: 200px;
}
.line__qr img
{
    display: block;

    max-width: 200px; 
    margin: auto;
}
@media (max-width: 767px)
{
    .line__qr
    {
        width: 100%; 
        margin-top: 40px;
    }
}
.line__desc
{
    width: calc(100% - 200px);
    padding: 0 0 0 40px;
}
@media (max-width: 767px)
{
    .line__desc
    {
        width: 100%;
        padding: 40px 0 0 0;
    }
}
.line__desc a
{
    font-family: var(--heading-font);
    font-size: calc(1.325rem + .9vw); 

    display: block;
}
@media (min-width: 1200px)
{
    .line__desc a
    {
        font-size: 2rem;
    }
}
@media (max-width: 767px)
{
    .line__desc a
    {
        text-align: center;
    }
}
.line__desc a span
{
    font-size: .75em;

    margin-right: .5em; 

    color: var(--text-secondary);
}
.line__desc dl
{
    font-size: .875rem;

    margin-top: 24px; 

    color: var(--text-secondary);
}
.line__desc dl + dl
{
    margin-top: 12px;
}
.line__desc dl dt
{
    font-weight: bold;
}
.line__heading
{
    text-transform: var(--text-transform);
}

.contact
{
    position: relative;
    z-index: 0;

    padding: 80px 0;

    background-color: var(--primary-lighten-2);
}
.contact h2,
.contact h3
{
    font-family: var(--heading-font);

    text-transform: var(--text-transform);
}
.contact__flex
{
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;

    margin: -40px 0 0 -40px; 

    -ms-flex-wrap: wrap;
        flex-wrap: wrap;
}
.contact__flex > *
{
    padding: 40px 0 0 40px;
}
@media (max-width: 767px)
{
    .contact__flex
    {
            flex-direction: column; 

        -webkit-box-orient: vertical;
        -webkit-box-direction: normal;
        -ms-flex-direction: column;
    }
    .contact__flex > *
    {
        width: 100% !important;
    }
}
.contact__headingArea
{
    position: relative;
    z-index: 0; 

    width: calc(100% / 3);
}
.contact__heading
{
    font-size: calc(1.375rem + 1.5vw);

    position: sticky;
    top: 120px;
    left: 0; 

    width: 100%;
}
@media (min-width: 1200px)
{
    .contact__heading
    {
        font-size: 2.5rem;
    }
}
.contact__heading div
{
    position: relative;

    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;

    -webkit-box-align: center;
    -ms-flex-align: center;
    align-items: center;
}
.contact__heading div::after
{
    width: 80px;
    height: 1px;
    margin-left: 24px; 

    content: '';

    background-color: var(--text-secondary);
}
.contact__heading span
{
    font-size: .875rem;

    display: block; 

    color: var(--text-secondary);
}
.contact__formArea
{
    width: calc(100% / 3 * 2);
}
.contact__formArea th
{
    font-family: var(--heading-font);
}
.contact__formArea tr
{
    display: block;

    margin: 0;
    padding: 0;
}
.contact__formArea tr + tr
{
    margin-top: 12px;
}
.contact__formArea th,
.contact__formArea td
{
    display: block;

    -webkit-box-sizing: border-box;
            box-sizing: border-box;
    width: 100%; 
    margin: 0;
    padding: 0;
}
.contact__formArea th p + p,
.contact__formArea td p + p
{
    margin-top: 12px;
}
.contact__formArea th
{
    font-weight: normal;

    margin-bottom: 8px; 

    text-align: left;
}
.contact__formArea th label
{
    position: relative; 

    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;

    -webkit-box-sizing: border-box;
            box-sizing: border-box;
    margin: 0;
    padding: 0;

    -webkit-box-align: center;
    -ms-flex-align: center;
    align-items: center;
    -webkit-box-pack: start;
    -ms-flex-pack: start;
    justify-content: flex-start;
}
.contact__formArea th label::after
{
    font-size: .6875rem;

    top: 50%;
    right: 0;

    display: inline-block;
    display: block;

    -webkit-box-sizing: border-box;
            box-sizing: border-box;
    width: 44px; 
    margin: 0;
    margin-left: 1em;
    padding: 0 5px;

    content: '任意';
    text-align: center;

    color: #929292;
    border-radius: 2px;
    background-color: #bebebe;
}
.contact__formArea th.required label::after
{
    content: '必須'; 

    color: #fff;
    background-color: var(--primary);
}
.contact__formArea option
{
    background-color: var(--background-lighten-1);
}
.contact__formArea span.wpcf7-list-item
{
    line-height: 3;

    display: block;

    text-align: center;
}
.contact__formArea input::-webkit-input-placeholder
{
    color: rgba(var(--rgb-text-secondary), .5);
}
.contact__formArea input::-moz-placeholder
{
    color: rgba(var(--rgb-text-secondary), .5);
}
.contact__formArea input:-ms-input-placeholder
{
    color: rgba(var(--rgb-text-secondary), .5);
}
.contact__formArea input::-ms-input-placeholder
{
    color: rgba(var(--rgb-text-secondary), .5);
}
.contact__formArea input::placeholder
{
    color: rgba(var(--rgb-text-secondary), .5);
}
.contact__formArea input[type='text'],
.contact__formArea input[type='tel'],
.contact__formArea input[type='email'],
.contact__formArea textarea
{
    font-family: inherit;
    font-size: 1rem;
    font-weight: inherit;

    -webkit-box-sizing: border-box;
            box-sizing: border-box;
    width: 100%; 
    margin: 0;
    padding: .5em 1em;

    color: inherit;
    border: 1px solid;
    border-color: transparent;
    border-radius: 4px;
    background-color: var(--base);
    -webkit-box-shadow: none;
            box-shadow: none;

    -webkit-appearance: none;
       -moz-appearance: none;
            appearance: none;
}
.contact__formArea input[type='text']:focus,
.contact__formArea input[type='tel']:focus,
.contact__formArea input[type='email']:focus,
.contact__formArea textarea:focus
{
    border-color: var(--primary);
    outline: 0;
}
.contact__formArea input[type='checkbox']
{
    display: none;
}
.contact__formArea input[type='checkbox'] + span
{
    font-size: 1rem;

    position: relative;

    display: inline-block;

    -webkit-box-sizing: border-box;
            box-sizing: border-box;
    margin: 24px 0 !important;
    margin: 0;
    padding: 0 1em 0 1.8em;

    cursor: pointer;
    -webkit-transition: opacity .25s ease;
         -o-transition: opacity .25s ease;
            transition: opacity .25s ease;
}
.contact__formArea input[type='checkbox'] + span::before
{
    position: absolute;
    top: 0;
    left: 0;

    display: block;

    -webkit-box-sizing: border-box;
            box-sizing: border-box;
    width: 1.24em; 
    height: 1.24em;

    content: '';

    border: 1px solid var(--primary-lighten-1);
    border-radius: 4px;
    background-color: var(--background-lighten-1);
}
.contact__formArea input[type='checkbox'] + span::after
{
    position: absolute;
    top: .15em;
    left: .44em;

    display: block;

    -webkit-box-sizing: border-box;
            box-sizing: border-box;
    width: .4em; 
    height: .8em;

    content: '';
    -webkit-transition: opacity .25s ease;
         -o-transition: opacity .25s ease;
            transition: opacity .25s ease;
    -webkit-transform: rotate(40deg);
            transform: rotate(40deg);

    opacity: 0;
    border-right: 3px solid #000;
    border-bottom: 3px solid #000;
}
.contact__formArea input[type='checkbox'] + span a
{
    text-decoration: underline;

    color: var(--primary);
}
.contact__formArea input[type='checkbox']:checked + span
{
    -webkit-transition: all .25s ease;
         -o-transition: all .25s ease;
            transition: all .25s ease; 

    color: var(--primary);
}
.contact__formArea input[type='checkbox']:checked + span::before
{
    -webkit-transition: opacity .25s ease;
         -o-transition: opacity .25s ease;
            transition: opacity .25s ease; 

    opacity: 1;
    border: 1px solid var(--primary);
    background-color: var(--primary);
    -webkit-box-shadow: 0 0 2px 2px rgba(var(--rgb-primary-darken-1), .5);
            box-shadow: 0 0 2px 2px rgba(var(--rgb-primary-darken-1), .5);
}
.contact__formArea input[type='checkbox']:checked + span::after
{
    -webkit-transition: opacity .25s ease;
         -o-transition: opacity .25s ease;
            transition: opacity .25s ease; 

    opacity: 1;
    border-right: 3px solid #fff;
    border-bottom: 3px solid #fff;
}
.contact__formArea input[type='radio']
{
    display: none;
}
.contact__formArea input[type='radio'] + span
{
    font-size: 1rem;

    position: relative;

    -webkit-box-sizing: border-box;
            box-sizing: border-box;
    margin: 0;
    padding: 0 1em 0 1.8em;

    cursor: pointer;
    -webkit-transition: opacity .25s ease;
         -o-transition: opacity .25s ease;
            transition: opacity .25s ease;
}
.contact__formArea input[type='radio'] + span::before
{
    position: absolute;
    top: 0;
    left: 0;

    display: block;

    -webkit-box-sizing: border-box;
            box-sizing: border-box;
    width: 1em; 
    height: 1em;

    content: '';
    -webkit-transition: opacity .25s ease;
         -o-transition: opacity .25s ease;
            transition: opacity .25s ease;

    border: 1px solid var(--primary-lighten-1);
    border-radius: 50%;
    background-color: var(--background-lighten-1);
}
.contact__formArea input[type='radio'] + span::after
{
    position: absolute;

    display: block;

    -webkit-box-sizing: border-box;
            box-sizing: border-box;

    content: '';
    -webkit-transition: opacity .25s ease;
         -o-transition: opacity .25s ease;
            transition: opacity .25s ease; 

    opacity: 0;
}
.contact__formArea input[type='radio']:checked + span
{
    color: var(--primary);
}
.contact__formArea input[type='radio']:checked + span::before
{
    -webkit-box-shadow: 0 0 2px 2px rgba(var(--rgb-primary-darken-1), .5);
            box-shadow: 0 0 2px 2px rgba(var(--rgb-primary-darken-1), .5);
}
.contact__formArea input[type='radio']:checked + span::after
{
    top: 0;
    left: 0;

    -webkit-box-sizing: border-box;
            box-sizing: border-box;
    width: 1em; 
    height: 1em;

    -webkit-transition: opacity .25s ease;
         -o-transition: opacity .25s ease;
            transition: opacity .25s ease;

    opacity: 1;
    border-radius: 50%;
    background-color: var(--primary);
}
.contact__formArea input[type='submit']
{
    font-size: 1.125rem;

    display: block;

    -webkit-box-sizing: border-box;
            box-sizing: border-box;
    width: 100%;
    padding: 8px 24px;

    cursor: pointer;
    -webkit-transition: all .25s;
         -o-transition: all .25s;
            transition: all .25s; 
    text-align: center;

    color: #fff;
    border: 1px var(--primary) solid;
    border-radius: 4px;
    background-color: var(--primary);
    -webkit-box-shadow: none;
            box-shadow: none;

    -webkit-appearance: none;
       -moz-appearance: none;
            appearance: none;
}
.contact__formArea input[type='submit']:disabled
{
    cursor: not-allowed; 

    color: #929292 !important;
    background-color: var(--primary-lighten-1) !important;
    -webkit-box-shadow: none !important;
            box-shadow: none !important;
}
.contact__formArea input[type='submit']:hover
{
    background-color: var(--primary-darken-1);
}
.contact__formArea .wpcf7__select
{
    position: relative;

    -webkit-box-sizing: border-box;
            box-sizing: border-box;
    width: 250px; 
    margin: 0;
    padding: 0;
}
.contact__formArea .wpcf7__select::after
{
    position: absolute;
    top: 50%;
    right: .8em;

    display: block;

    -webkit-box-sizing: border-box;
            box-sizing: border-box;
    width: .6em; 
    height: .6em;
    margin-top: -3px;

    content: '';
    -webkit-transform: rotate(45deg) translateY(-50%);
            transform: rotate(45deg) translateY(-50%);
    -webkit-transform-origin: 50% 0;
            transform-origin: 50% 0;
    pointer-events: none;

    border-right: 1px solid var(--primary);
    border-bottom: 1px solid var(--primary);
}
.contact__formArea .wpcf7__select select
{
    font-size: 1rem;
    line-height: 1;

    -webkit-box-sizing: border-box;
            box-sizing: border-box;
    width: 250px; 
    max-width: 100%;
    margin: 0;
    padding: .5em 3.5em .5em 1em;

    cursor: pointer;
    -webkit-transition: border-color .2s ease, outline .2s ease;
         -o-transition: border-color .2s ease, outline .2s ease;
            transition: border-color .2s ease, outline .2s ease;

    color: inherit;
    border: 1px solid var(--primary-lighten-1);
    border-radius: 4px;
    background-color: var(--background-lighten-1);
    background-image: -webkit-gradient(linear, left top, right top, from(var(--primary-lighten-1)));
    background-image: -o-linear-gradient(left, var(--primary-lighten-1));
    background-image:    linear-gradient(90deg, var(--primary-lighten-1));
    background-repeat: no-repeat;
    background-position: 100% 0;
    background-size: 2em 3.5em;
    -webkit-box-shadow: 0;
            box-shadow: 0;

    -webkit-appearance: none;
       -moz-appearance: none;
            appearance: none;
}
.contact__formArea .wpcf7__acceptance,
.contact__formArea .wpcf7__submit
{
    padding: 24px 0;

    text-align: center;
}
.contact__formArea .wpcf7__acceptance a
{
    font-weight: bold;

    text-decoration: underline; 

    color: var(--primary);
}
.contact__formArea .flex_between
{
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;

    -webkit-box-pack: justify;
    -ms-flex-pack: justify;
    justify-content: space-between;
    -ms-flex-wrap: wrap;
        flex-wrap: wrap;
    -webkit-box-align: center;
    -ms-flex-align: center;
    align-items: center;
}
.contact__formArea .flex_tr
{
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;

    -ms-flex-wrap: wrap;
        flex-wrap: wrap;
    -webkit-box-align: center;
    -ms-flex-align: center;
    align-items: center;
}
.contact__formArea .flex_tr .pc_w50
{
    width: 50%;
    padding: 0 16px;
}
@media (max-width: 767px)
{
    .contact__formArea .flex_tr .pc_w50
    {
        width: 100%;
        padding: 0;
    }
}
.contact__attention
{
    margin-top: 80px;
}
.contact__attention h2
{
    font-size: calc(1.325rem + .9vw);
    line-height: 1.2;

    position: relative; 
    z-index: 1;

    display: -ms-grid;
    display:     grid;

    margin-bottom: 64px;

    text-align: center;

    -ms-grid-columns: 1fr auto 1fr;
    grid-template-columns: 1fr auto 1fr;
    gap: 32px;
}
@media (min-width: 1200px)
{
    .contact__attention h2
    {
        font-size: 2rem;
    }
}
.contact__attention h2 > *
{
    -ms-grid-column-align: center;
    justify-self: center;
    -ms-flex-item-align: center;
    -ms-grid-row-align: center;
    align-self: center;
}
@media (max-width: 767px)
{
    .contact__attention h2
    {
        -ms-grid-columns: 1fr;
        grid-template-columns: 1fr;
    }
}
.contact__attention h2::before,
.contact__attention h2::after
{
    width: 100%;
    height: 1px;
    margin: auto; 

    content: '';

    background-color: var(--secondary-lighten-1);
}
@media (max-width: 767px)
{
    .contact__attention h2::before,
    .contact__attention h2::after
    {
        width: calc(100% - 40px);
    }
}
.contact__col
{
    width: 50%;
}
.contact__desc
{
    font-size: .875rem;

    position: relative;
    z-index: 0; 

    text-align: justify;

    color: var(--text-secondary);
}
.contact__desc > * + *
{
    margin-top: 8px;
}
.contact__desc::after
{
    display: block;

    width: 80px;
    height: 1px; 
    margin-top: 24px;

    content: '';

    background-color: var(--secondary-lighten-1);
}
.contact__desc h3
{
    font-size: calc(1.275rem + .3vw);

    text-transform: var(--text-transform);

    color: var(--text);
}
@media (min-width: 1200px)
{
    .contact__desc h3
    {
        font-size: 1.5rem;
    }
}
.contact__desc h3 span
{
    font-size: .875rem;

    display: block; 

    color: var(--text-secondary);
}
.contact__desc ul
{
    padding-left: 2em;

    list-style: inside;

    text-indent: -1em;
}

.otherContact
{
    padding: 64px 0 120px;
}
.otherContact .icon__instagram,
.otherContact .icon__line,
.otherContact .icon__tel
{
    font-size: 1.5em; 

    margin-right: 1em;

    vertical-align: middle;
}
.otherContact__wrap
{
    padding-bottom: 64px;

    border-bottom: 1px solid var(--secondary);
}
.otherContact__flex
{
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;

    margin: -40px 0 0 -40px;

    -ms-flex-wrap: wrap;
        flex-wrap: wrap;
    -webkit-box-align: center;
    -ms-flex-align: center;
    align-items: center;
}
.otherContact__flex > *
{
    padding: 40px 0 0 40px;
}
.otherContact__desc
{
    width: 60%;

    text-align: justify;
}
@media (max-width: 767px)
{
    .otherContact__desc
    {
        width: 100%;
    }
}
.otherContact__desc > * + *
{
    margin-top: 8px;
}
.otherContact__desc h2
{
    font-size: calc(1.275rem + .3vw);

    margin-bottom: 16px;
}
@media (min-width: 1200px)
{
    .otherContact__desc h2
    {
        font-size: 1.5rem;
    }
}
.otherContact__link
{
    width: 40%;
}
@media (max-width: 767px)
{
    .otherContact__link
    {
        width: 100%;
    }
}
.otherContact__btn + .otherContact__btn
{
    margin-top: 16px;
}
.otherContact__btn a
{
    width: 100%;
}

.formContents
{
    padding: 80px 0;
}
.formContents__tabBtn
{
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex; 

    max-width: 1200px;
    margin: auto;
}
.formContents__tabBtn > li
{
    position: relative;
    z-index: 0;

    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;

    width: 50%;

    cursor: pointer;
    -webkit-transition: .4s;
         -o-transition: .4s;
            transition: .4s; 

    background-color: var(--background);

    -webkit-box-align: center;
    -ms-flex-align: center;
    align-items: center;
    -webkit-box-pack: center;
    -ms-flex-pack: center;
    justify-content: center;
}
.formContents__tabBtn > li::after
{
    position: absolute;
    bottom: -24px;
    left: calc(50% - 20px);

    width: 0;
    height: 0;

    content: '';
    -webkit-transition: .4s;
         -o-transition: .4s;
            transition: .4s; 

    opacity: 0;
    color: var(--primary);
    border-width: 24px 20px 0 20px;
    border-style: solid;
    border-color: currentColor transparent transparent transparent;
}
.formContents__tabBtn > li.active
{
    background-color: var(--primary);
}
.formContents__tabBtn > li.active::after
{
    opacity: 1;
}
.formContents__btn
{
    font-family: var(--heading-font);
    font-size: calc(1.375rem + 1.5vw);
    line-height: 1;

    position: relative;
    z-index: 0;

    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;

    padding: 40px 24px;

    text-transform: var(--text-transform); 

    -webkit-box-align: center;
    -ms-flex-align: center;
    align-items: center;
}
@media (min-width: 1200px)
{
    .formContents__btn
    {
        font-size: 2.5rem;
    }
}
@media (max-width: 767px)
{
    .formContents__btn
    {
            flex-direction: column-reverse; 

        padding: 40px 0;

        -webkit-box-orient: vertical;
        -webkit-box-direction: reverse;
        -ms-flex-direction: column-reverse;
    }
}
.formContents__btn::before,
.formContents__btn::after
{
    width: 24px;
    height: 24px;

    content: '';
    -webkit-transition: .2s;
         -o-transition: .2s;
            transition: .2s;

    -ms-flex-negative: 0;
    flex-shrink: 0;
}
@media (max-width: 767px)
{
    .formContents__btn::before,
    .formContents__btn::after
    {
        content: none;
    }
}
.formContents__btn::before
{
    display: block;

    margin-right: .5em;

    border-radius: 100%; 
    background-color: currentColor;
}
.formContents__btn::after
{
    position: absolute;

    background-color: var(--background);

    -webkit-mask-size: contain;
            mask-size: contain;
    -webkit-mask-repeat: no-repeat;
            mask-repeat: no-repeat;
    -webkit-mask-image: url('data:image/svg+xml,%3Csvg%20id%3D%22next-11%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%22180%22%20height%3D%22180%22%20viewBox%3D%220%200%20180%20180%22%3E%0A%20%20%3Cg%3E%0A%20%20%20%20%3Cpath%20d%3D%22M90%2C0a90%2C90%2C0%2C1%2C0%2C90%2C90A90%2C90%2C0%2C0%2C0%2C90%2C0Zm0%2C168.75A78.836%2C78.836%2C0%2C0%2C1%2C11.25%2C90c0-43.425%2C35.325-78.924%2C78.75-78.924S168.75%2C46.575%2C168.75%2C90A78.836%2C78.836%2C0%2C0%2C1%2C90%2C168.75Z%22%20fill%3D%22none%22%2F%3E%0A%20%20%20%20%3Cpath%20d%3D%22M155.172%2C97.61a5.589%2C5.589%2C0%2C0%2C0-7.954%2C0%2C5.721%2C5.721%2C0%2C0%2C0%2C0%2C8.038L182.065%2C141l-34.853%2C35.353a5.721%2C5.721%2C0%2C0%2C0%2C0%2C8.038%2C5.589%2C5.589%2C0%2C0%2C0%2C7.954%2C0l38.812-39.369a5.833%2C5.833%2C0%2C0%2C0%2C0-8.038Z%22%20transform%3D%22translate(-77.502%20-51.086)%22%20fill%3D%22%23fff%22%2F%3E%0A%20%20%3C%2Fg%3E%0A%3C%2Fsvg%3E');
            mask-image: url('data:image/svg+xml,%3Csvg%20id%3D%22next-11%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%22180%22%20height%3D%22180%22%20viewBox%3D%220%200%20180%20180%22%3E%0A%20%20%3Cg%3E%0A%20%20%20%20%3Cpath%20d%3D%22M90%2C0a90%2C90%2C0%2C1%2C0%2C90%2C90A90%2C90%2C0%2C0%2C0%2C90%2C0Zm0%2C168.75A78.836%2C78.836%2C0%2C0%2C1%2C11.25%2C90c0-43.425%2C35.325-78.924%2C78.75-78.924S168.75%2C46.575%2C168.75%2C90A78.836%2C78.836%2C0%2C0%2C1%2C90%2C168.75Z%22%20fill%3D%22none%22%2F%3E%0A%20%20%20%20%3Cpath%20d%3D%22M155.172%2C97.61a5.589%2C5.589%2C0%2C0%2C0-7.954%2C0%2C5.721%2C5.721%2C0%2C0%2C0%2C0%2C8.038L182.065%2C141l-34.853%2C35.353a5.721%2C5.721%2C0%2C0%2C0%2C0%2C8.038%2C5.589%2C5.589%2C0%2C0%2C0%2C7.954%2C0l38.812-39.369a5.833%2C5.833%2C0%2C0%2C0%2C0-8.038Z%22%20transform%3D%22translate(-77.502%20-51.086)%22%20fill%3D%22%23fff%22%2F%3E%0A%20%20%3C%2Fg%3E%0A%3C%2Fsvg%3E');
}
.formContents__btn span
{
    font-size: .875rem;

    margin-left: 1em;
    padding-bottom: 4px;

    border-bottom: solid 1px currentColor;

    -ms-flex-item-align: end;
    align-self: flex-end;
}
@media (max-width: 767px)
{
    .formContents__btn span
    {
        margin-bottom: 8px; 
        margin-left: 0;
    }
}
.active .formContents__btn
{
    color: #fff;
}
.active .formContents__btn::after
{
    -webkit-transform: rotate(90deg);
            transform: rotate(90deg); 

    background-color: var(--primary);
}
.formContents__tabContent
{
    padding: 56px 0; 

    background-color: var(--background);
}
@media (max-width: 970px)
{
    .formContents__tabContent
    {
        padding: 56px 16px;
    }
}
.formContents__tabContent > li:not(.active)
{
    display: none;
}
.formContents__flex
{
    position: relative;
    z-index: 0;

    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;

    margin: -40px 0 0 -80px; 

    -ms-flex-wrap: wrap;
        flex-wrap: wrap;
}
.formContents__flex > *
{
    padding: 40px 0 0 80px;
}
.formContents__caption
{
    font-family: var(--heading-font);
    font-size: calc(1.875rem + 7.5vw);

    position: absolute;
    z-index: -1;
    right: calc((100vw - 970px) / 2);
    bottom: 0;

    text-transform: var(--text-transform);

    opacity: .1;
}
@media (min-width: 1200px)
{
    .formContents__caption
    {
        font-size: 7.5rem;
    }
}
@media (max-width: 970px)
{
    .formContents__caption
    {
        right: 20%;
    }
}
.formContents__formArea
{
    width: calc((100% / 12) * 8);
}
@media (max-width: 970px)
{
    .formContents__formArea
    {
        width: 100%;
    }
}
.formContents__form
{
    margin: 0 0 0 auto;
    padding-left: calc((100vw - 970px) / 2 + 80px);
}
.formContents__form .flex
{
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;

    margin: -24px 0 0 -40px; 

    -ms-flex-wrap: wrap;
        flex-wrap: wrap;
    -webkit-box-align: center;
    -ms-flex-align: center;
    align-items: center;
}
.formContents__form .flex > *
{
    display: block;

    width: 50%;
    padding: 24px 0 0 40px;
}
@media (max-width: 485px)
{
    .formContents__form .flex > *
    {
        width: 100%;
    }
}
@media (max-width: 970px)
{
    .formContents__form
    {
        padding-left: 0;
    }
}
.formContents__form h2
{
    font-family: var(--heading-font);
    font-size: calc(1.375rem + 1.5vw);

    margin-bottom: 40px; 

    text-transform: var(--text-transform);
}
@media (min-width: 1200px)
{
    .formContents__form h2
    {
        font-size: 2.5rem;
    }
}
.formContents__form h2 div
{
    position: relative;
    z-index: 0;

    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;

    -webkit-box-align: center;
    -ms-flex-align: center;
    align-items: center;
}
.formContents__form h2 div::after
{
    width: 2em;
    height: 1px;
    margin-left: .5em; 

    content: '';

    background-color: var(--background-darken-1);
}
.formContents__form h2 span
{
    font-size: .875rem;
    font-weight: normal;

    display: block;

    color: var(--background-darken-1);
}
.formContents__form tr
{
    display: block;

    margin: 0;
    padding: 0;
}
.formContents__form tr + tr
{
    margin-top: 12px;
}
.formContents__form th,
.formContents__form td
{
    display: block;

    -webkit-box-sizing: border-box;
            box-sizing: border-box;
    width: 100%; 
    margin: 0;
    padding: 0;
}
.formContents__form th p + p,
.formContents__form td p + p
{
    margin-top: 12px;
}
.formContents__form th
{
    font-weight: normal;

    margin-bottom: 8px; 

    text-align: left;
}
.formContents__form th label
{
    position: relative; 

    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;

    -webkit-box-sizing: border-box;
            box-sizing: border-box;
    margin: 0;
    padding: 0;

    -webkit-box-align: center;
    -ms-flex-align: center;
    align-items: center;
    -webkit-box-pack: start;
    -ms-flex-pack: start;
    justify-content: flex-start;
}
.formContents__form th label::after
{
    font-size: .6875rem;

    top: 50%;
    right: 0;

    display: inline-block;
    display: block;

    -webkit-box-sizing: border-box;
            box-sizing: border-box;
    width: 44px; 
    margin: 0;
    margin-left: 1em;
    padding: 0 5px;

    content: '任意';
    text-align: center;

    color: #929292;
    border-radius: 2px;
    background-color: #bebebe;
}
.formContents__form th.required label::after
{
    content: '必須'; 

    color: #fff;
    background-color: var(--primary);
}
.formContents__form option
{
    background-color: var(--background-lighten-1);
}
.formContents__form span.wpcf7-list-item
{
    line-height: 3;

    display: block;

    text-align: center;
}
.formContents__form input::-webkit-input-placeholder
{
    color: rgba(var(--rgb-text-secondary), .5);
}
.formContents__form input::-moz-placeholder
{
    color: rgba(var(--rgb-text-secondary), .5);
}
.formContents__form input:-ms-input-placeholder
{
    color: rgba(var(--rgb-text-secondary), .5);
}
.formContents__form input::-ms-input-placeholder
{
    color: rgba(var(--rgb-text-secondary), .5);
}
.formContents__form input::placeholder
{
    color: rgba(var(--rgb-text-secondary), .5);
}
.formContents__form input[type='text'],
.formContents__form input[type='tel'],
.formContents__form input[type='email'],
.formContents__form textarea
{
    font-family: inherit;
    font-size: 1rem;
    font-weight: inherit;

    -webkit-box-sizing: border-box;
            box-sizing: border-box;
    width: 100%; 
    margin: 0;
    padding: .5em 1em;

    color: inherit;
    border: 1px solid;
    border-color: transparent;
    border-radius: 4px;
    background-color: var(--base);
    -webkit-box-shadow: none;
            box-shadow: none;

    -webkit-appearance: none;
       -moz-appearance: none;
            appearance: none;
}
.formContents__form input[type='text']:focus,
.formContents__form input[type='tel']:focus,
.formContents__form input[type='email']:focus,
.formContents__form textarea:focus
{
    border-color: var(--primary);
    outline: 0;
}
.formContents__form input[type='checkbox']
{
    display: none;
}
.formContents__form input[type='checkbox'] + span
{
    font-size: 1rem;

    position: relative;

    display: inline-block;

    -webkit-box-sizing: border-box;
            box-sizing: border-box;
    margin: 24px 0 !important;
    margin: 0;
    padding: 0 1em 0 1.8em;

    cursor: pointer;
    -webkit-transition: opacity .25s ease;
         -o-transition: opacity .25s ease;
            transition: opacity .25s ease;
}
.formContents__form input[type='checkbox'] + span::before
{
    position: absolute;
    top: 0;
    left: 0;

    display: block;

    -webkit-box-sizing: border-box;
            box-sizing: border-box;
    width: 1.24em; 
    height: 1.24em;

    content: '';

    border: 1px solid var(--primary-lighten-1);
    border-radius: 4px;
    background-color: var(--background-lighten-1);
}
.formContents__form input[type='checkbox'] + span::after
{
    position: absolute;
    top: .15em;
    left: .44em;

    display: block;

    -webkit-box-sizing: border-box;
            box-sizing: border-box;
    width: .4em; 
    height: .8em;

    content: '';
    -webkit-transition: opacity .25s ease;
         -o-transition: opacity .25s ease;
            transition: opacity .25s ease;
    -webkit-transform: rotate(40deg);
            transform: rotate(40deg);

    opacity: 0;
    border-right: 3px solid #000;
    border-bottom: 3px solid #000;
}
.formContents__form input[type='checkbox'] + span a
{
    text-decoration: underline;

    color: var(--primary);
}
.formContents__form input[type='checkbox']:checked + span
{
    -webkit-transition: all .25s ease;
         -o-transition: all .25s ease;
            transition: all .25s ease; 

    color: var(--primary);
}
.formContents__form input[type='checkbox']:checked + span::before
{
    -webkit-transition: opacity .25s ease;
         -o-transition: opacity .25s ease;
            transition: opacity .25s ease; 

    opacity: 1;
    border: 1px solid var(--primary);
    background-color: var(--primary);
    -webkit-box-shadow: 0 0 2px 2px rgba(var(--rgb-primary-darken-1), .5);
            box-shadow: 0 0 2px 2px rgba(var(--rgb-primary-darken-1), .5);
}
.formContents__form input[type='checkbox']:checked + span::after
{
    -webkit-transition: opacity .25s ease;
         -o-transition: opacity .25s ease;
            transition: opacity .25s ease; 

    opacity: 1;
    border-right: 3px solid #fff;
    border-bottom: 3px solid #fff;
}
.formContents__form input[type='radio']
{
    display: none;
}
.formContents__form input[type='radio'] + span
{
    font-size: 1rem;

    position: relative;

    -webkit-box-sizing: border-box;
            box-sizing: border-box;
    margin: 0;
    padding: 0 1em 0 1.8em;

    cursor: pointer;
    -webkit-transition: opacity .25s ease;
         -o-transition: opacity .25s ease;
            transition: opacity .25s ease;
}
.formContents__form input[type='radio'] + span::before
{
    position: absolute;
    top: 0;
    left: 0;

    display: block;

    -webkit-box-sizing: border-box;
            box-sizing: border-box;
    width: 1em; 
    height: 1em;

    content: '';
    -webkit-transition: opacity .25s ease;
         -o-transition: opacity .25s ease;
            transition: opacity .25s ease;

    border: 1px solid var(--primary-lighten-1);
    border-radius: 50%;
    background-color: var(--background-lighten-1);
}
.formContents__form input[type='radio'] + span::after
{
    position: absolute;

    display: block;

    -webkit-box-sizing: border-box;
            box-sizing: border-box;

    content: '';
    -webkit-transition: opacity .25s ease;
         -o-transition: opacity .25s ease;
            transition: opacity .25s ease; 

    opacity: 0;
}
.formContents__form input[type='radio']:checked + span
{
    color: var(--primary);
}
.formContents__form input[type='radio']:checked + span::before
{
    -webkit-box-shadow: 0 0 2px 2px rgba(var(--rgb-primary-darken-1), .5);
            box-shadow: 0 0 2px 2px rgba(var(--rgb-primary-darken-1), .5);
}
.formContents__form input[type='radio']:checked + span::after
{
    top: 0;
    left: 0;

    -webkit-box-sizing: border-box;
            box-sizing: border-box;
    width: 1em; 
    height: 1em;

    -webkit-transition: opacity .25s ease;
         -o-transition: opacity .25s ease;
            transition: opacity .25s ease;

    opacity: 1;
    border-radius: 50%;
    background-color: var(--primary);
}
.formContents__form input[type='submit']
{
    font-size: 1.125rem;

    display: block;

    -webkit-box-sizing: border-box;
            box-sizing: border-box;
    width: 100%;
    padding: 8px 24px;

    cursor: pointer;
    -webkit-transition: all .25s;
         -o-transition: all .25s;
            transition: all .25s; 
    text-align: center;

    color: #fff;
    border: 1px var(--primary) solid;
    border-radius: 4px;
    background-color: var(--primary);
    -webkit-box-shadow: none;
            box-shadow: none;

    -webkit-appearance: none;
       -moz-appearance: none;
            appearance: none;
}
.formContents__form input[type='submit']:disabled
{
    cursor: not-allowed; 

    color: #929292 !important;
    background-color: var(--primary-lighten-1) !important;
    -webkit-box-shadow: none !important;
            box-shadow: none !important;
}
.formContents__form input[type='submit']:hover
{
    background-color: var(--primary-darken-1);
}
.formContents__form .wpcf7__select
{
    position: relative;

    -webkit-box-sizing: border-box;
            box-sizing: border-box;
    width: 250px; 
    margin: 0;
    padding: 0;
}
.formContents__form .wpcf7__select::after
{
    position: absolute;
    top: 50%;
    right: .8em;

    display: block;

    -webkit-box-sizing: border-box;
            box-sizing: border-box;
    width: .6em; 
    height: .6em;
    margin-top: -3px;

    content: '';
    -webkit-transform: rotate(45deg) translateY(-50%);
            transform: rotate(45deg) translateY(-50%);
    -webkit-transform-origin: 50% 0;
            transform-origin: 50% 0;
    pointer-events: none;

    border-right: 1px solid var(--primary);
    border-bottom: 1px solid var(--primary);
}
.formContents__form .wpcf7__select select
{
    font-size: 1rem;
    line-height: 1;

    -webkit-box-sizing: border-box;
            box-sizing: border-box;
    width: 250px; 
    max-width: 100%;
    margin: 0;
    padding: .5em 3.5em .5em 1em;

    cursor: pointer;
    -webkit-transition: border-color .2s ease, outline .2s ease;
         -o-transition: border-color .2s ease, outline .2s ease;
            transition: border-color .2s ease, outline .2s ease;

    color: inherit;
    border: 1px solid var(--primary-lighten-1);
    border-radius: 4px;
    background-color: var(--background-lighten-1);
    background-image: -webkit-gradient(linear, left top, right top, from(var(--primary-lighten-1)));
    background-image: -o-linear-gradient(left, var(--primary-lighten-1));
    background-image:    linear-gradient(90deg, var(--primary-lighten-1));
    background-repeat: no-repeat;
    background-position: 100% 0;
    background-size: 2em 3.5em;
    -webkit-box-shadow: 0;
            box-shadow: 0;

    -webkit-appearance: none;
       -moz-appearance: none;
            appearance: none;
}
.formContents__form .wpcf7__acceptance,
.formContents__form .wpcf7__submit
{
    padding: 24px 0;

    text-align: center;
}
.formContents__form .wpcf7__acceptance a
{
    font-weight: bold;

    text-decoration: underline; 

    color: var(--primary);
}
.formContents__form .flex_between
{
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;

    -webkit-box-pack: justify;
    -ms-flex-pack: justify;
    justify-content: space-between;
    -ms-flex-wrap: wrap;
        flex-wrap: wrap;
    -webkit-box-align: center;
    -ms-flex-align: center;
    align-items: center;
}
.formContents__form .flex_tr
{
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;

    -ms-flex-wrap: wrap;
        flex-wrap: wrap;
    -webkit-box-align: center;
    -ms-flex-align: center;
    align-items: center;
}
.formContents__form .flex_tr .pc_w50
{
    width: 50%;
    padding: 0 16px;
}
@media (max-width: 767px)
{
    .formContents__form .flex_tr .pc_w50
    {
        width: 100%;
        padding: 0;
    }
}
.formContents__imgArea
{
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex; 

    width: calc((100% / 12) * 4);
    margin-top: 200px;
}
@media (max-width: 970px)
{
    .formContents__imgArea
    {
        position: absolute;
        z-index: -1;
        bottom: 0;
        left: 0;

        width: 100%;

        opacity: .2; 

        -webkit-box-pack: end;
        -ms-flex-pack: end;
        justify-content: flex-end;
    }
}
.formContents__img
{
    margin-top: auto;
}
@media (max-width: 970px)
{
    .formContents__img
    {
        width: 50%;
    }
}
.formContents__img img
{
    width: 100%;
}

.flow
{
    padding: 80px 0;

    --iconSize: 80px;
}
@media (max-width: 767px)
{
    .flow
    {
        --iconSize: 56px;
    }
}
.flow__list
{
    counter-reset: number;
}
.flow__list > li
{
    position: relative;
    z-index: 0;

    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;

    min-height: 120px; 

    -webkit-box-align: start;
    -ms-flex-align: start;
    align-items: flex-start;
}
.flow__list > li::before
{
    font-family: var(--heading-font);
    font-size: calc(1.275rem + .3vw);
    font-weight: bold;
    line-height: 1;

    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;

    width: var(--iconSize);
    height: var(--iconSize);

    content: counter(number, decimal-leading-zero);
    counter-increment: number 1;
    text-align: center;

    color: #fff;
    border-radius: 16px; 
    background: -o-linear-gradient(45deg, var(--gradient));
    background:    linear-gradient(45deg, var(--gradient));

    -webkit-box-align: center;
    -ms-flex-align: center;
    align-items: center;
    -webkit-box-pack: center;
    -ms-flex-pack: center;
    justify-content: center;
}
@media (min-width: 1200px)
{
    .flow__list > li::before
    {
        font-size: 1.5rem;
    }
}
.flow__list > li:not(:last-child)::after
{
    position: absolute;
    z-index: -1;
    top: 0;
    left: calc((var(--iconSize) / 2) - 1px);

    width: 2px;
    height: 100%;

    content: '';

    opacity: .6; 
    background-color: var(--primary);
}
.flow__desc
{
    width: calc(100% - var(--iconSize));
    padding: 24px 0 40px 40px;

    text-align: justify;
}
.flow__desc > * + *
{
    margin-top: 8px;
}
@media (max-width: 767px)
{
    .flow__desc
    {
        padding: 16px 0 32px 24px;
    }
}
.flow__desc h3
{
    font-size: calc(1.275rem + .3vw);

    margin-bottom: 16px;
}
@media (min-width: 1200px)
{
    .flow__desc h3
    {
        font-size: 1.5rem;
    }
}

.faq
{
    position: relative; 

    padding: 80px 0;
}
.faq__heading
{
    font-size: calc(1.475rem + 2.7vw);

    margin-bottom: 64px;
}
@media (min-width: 1200px)
{
    .faq__heading
    {
        font-size: 3.5rem;
    }
}
.faq__area
{
    max-width: 800px; 
    margin: 40px auto 0;
}
.faq__content + .faq__content
{
    margin-top: 12px;
}
.faq__content dt
{
    font-size: 1.125rem;

    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;

    padding: 16px 64px 16px 24px;

    cursor: pointer;

    border: solid 1px var(--primary); 

    -webkit-box-align: center;
    -ms-flex-align: center;
    align-items: center;
}
.faq__content dd
{
    width: calc(100% - 40px);
    margin: 24px auto;

    background-color: var(--background);
}
.faq__content dd strong
{
    font-size: 1.25rem; 

    display: inline-block;

    margin-bottom: 24px;
}
.faq .accordionBtn
{
    position: relative;
    z-index: 0;
}
.faq .accordionBtn::before,
.faq .accordionBtn::after
{
    position: absolute;
    z-index: 0;
    top: 50%;
    right: 20px;

    width: 24px;
    height: 2px;

    content: '';
    -webkit-transition: .3s;
         -o-transition: .3s;
            transition: .3s; 

    background-color: #767b85;
}
.faq .accordionBtn::before
{
    -webkit-transform: translateY(-50%);
            transform: translateY(-50%);
}
.faq .accordionBtn::after
{
    -webkit-transform: translateY(-50%) rotate(90deg);
            transform: translateY(-50%) rotate(90deg);
}
.faq .accordionBtn.active::after
{
    -webkit-transform: translateY(-50%) rotate(0deg);
            transform: translateY(-50%) rotate(0deg);

    opacity: 0;
}
.faq__question .label
{
    font-size: calc(1.375rem + 1.5vw);

    display: inline-block;

    margin-right: .5em;

    color: var(--primary-darken-1);
}
@media (min-width: 1200px)
{
    .faq__question .label
    {
        font-size: 2.5rem;
    }
}
.faq__answer
{
    position: relative; 

    padding: 32px;
}
.faq__answer .label
{
    font-size: calc(1.375rem + 1.5vw); 

    display: block;

    color: var(--secondary);
}
@media (min-width: 1200px)
{
    .faq__answer .label
    {
        font-size: 2.5rem;
    }
}
.faq .label
{
    font-family: var(--script-font);
}

/* 汎用CSS */
.checkbox
{
    font-size: .875rem; 

    --iconColor: var(--secondary);
}
.checkbox.secondaryColor
{
    --iconColor: var(--secondary);
}
.checkbox.checkbox__count--2
{
    -webkit-column-count: 2;
       -moz-column-count: 2;
            column-count: 2;
}
.checkbox.checkbox__count--3
{
    -webkit-column-count: 3;
       -moz-column-count: 3;
            column-count: 3;
}
@media (max-width: 970px)
{
    .checkbox.checkbox__count--3
    {
        -webkit-column-count: 3;
           -moz-column-count: 3;
                column-count: 3;
    }
}
@media (max-width: 767px)
{
    .checkbox.checkbox__count--3
    {
        -webkit-column-count: 2;
           -moz-column-count: 2;
                column-count: 2;
    }
}
.checkbox.checkbox__count--4
{
    -webkit-column-count: 4;
       -moz-column-count: 4;
            column-count: 4;
}
@media (max-width: 970px)
{
    .checkbox.checkbox__count--4
    {
        -webkit-column-count: 3;
           -moz-column-count: 3;
                column-count: 3;
    }
}
@media (max-width: 767px)
{
    .checkbox.checkbox__count--4
    {
        -webkit-column-count: 2;
           -moz-column-count: 2;
                column-count: 2;
    }
}
.checkbox.checkbox__count--5
{
    -webkit-column-count: 5;
       -moz-column-count: 5;
            column-count: 5;
}
@media (max-width: 970px)
{
    .checkbox.checkbox__count--5
    {
        -webkit-column-count: 3;
           -moz-column-count: 3;
                column-count: 3;
    }
}
@media (max-width: 767px)
{
    .checkbox.checkbox__count--5
    {
        -webkit-column-count: 2;
           -moz-column-count: 2;
                column-count: 2;
    }
}
.checkbox.checkbox__count--6
{
    -webkit-column-count: 6;
       -moz-column-count: 6;
            column-count: 6;
}
@media (max-width: 970px)
{
    .checkbox.checkbox__count--6
    {
        -webkit-column-count: 3;
           -moz-column-count: 3;
                column-count: 3;
    }
}
@media (max-width: 767px)
{
    .checkbox.checkbox__count--6
    {
        -webkit-column-count: 2;
           -moz-column-count: 2;
                column-count: 2;
    }
}
@media (max-width: 767px)
{
    .checkbox
    {
        -webkit-column-count: 1;
           -moz-column-count: 1;
                column-count: 1;
    }
}
.checkbox li
{
    position: relative;

    padding: 4px 0 4px 2.5em;

    -webkit-column-break-inside: avoid;
       -moz-column-break-inside: avoid;
    break-inside: avoid;
}
.checkbox li::before
{
    position: absolute;
    top: 50%;
    left: 0;

    width: 1.5em;
    height: 1.5em;

    content: '';
    -webkit-transform: translateY(-50%);
            transform: translateY(-50%);

    background: var(--iconColor);

    -webkit-mask-image: url(img/svg/checkbox-02.svg);
            mask-image: url(img/svg/checkbox-02.svg);
    -webkit-mask-position: center;
            mask-position: center;
    -webkit-mask-repeat: no-repeat;
            mask-repeat: no-repeat;
    -webkit-mask-size: contain;
            mask-size: contain;
    mask-mode: luminance;
}
.checkbox li > p
{
    width: calc(100% - 48px);
}

.icon__instagram,
.icon__line,
.icon__tel
{
    display: inline-block;

    width: 1em;
    height: 1em; 

    background-color: currentColor;

    -webkit-mask-size: contain;
            mask-size: contain;
    -webkit-mask-position: center;
            mask-position: center;
    -webkit-mask-repeat: no-repeat;
            mask-repeat: no-repeat;
}

.icon__instagram
{
    -webkit-mask-image: url('img/svg/instagram-logo.svg');
            mask-image: url('img/svg/instagram-logo.svg');
}

.icon__line
{
    -webkit-mask-image: url('img/svg/line.svg');
            mask-image: url('img/svg/line.svg');
}

.icon__tel
{
    -webkit-mask-image: url('img/svg/telephone-1.svg');
            mask-image: url('img/svg/telephone-1.svg');
}
