/* ==========================================================================
  Font
  ========================================================================== */

/* ==========================================================================
  Foundation
  ========================================================================== */

/* http://meyerweb.com/eric/tools/css/reset/
   v2.0 | 20110126
   License: none (public domain)
*/

a,
abbr,
acronym,
address,
applet,
article,
aside,
audio,
b,
big,
blockquote,
body,
canvas,
caption,
center,
cite,
code,
dd,
del,
details,
dfn,
div,
dl,
dt,
em,
embed,
fieldset,
figcaption,
figure,
footer,
form,
h1,
h2,
h3,
h4,
h5,
h6,
header,
hgroup,
html,
i,
iframe,
img,
ins,
kbd,
label,
legend,
li,
mark,
menu,
nav,
object,
ol,
output,
p,
pre,
q,
ruby,
s,
samp,
section,
small,
span,
strike,
strong,
sub,
summary,
sup,
table,
tbody,
td,
tfoot,
th,
thead,
time,
tr,
tt,
u,
ul,
var,
video
{
    font: inherit;
    font-size: 100%;

    margin: 0;
    padding: 0;

    vertical-align: baseline;
    text-decoration: none;

    border: 0;
}

/* HTML5 display-role reset for older browsers */

article,
aside,
details,
figcaption,
figure,
footer,
header,
hgroup,
menu,
nav,
section
{
    display: block;
}

body
{
    line-height: 1;

    overflow: hidden;
}

ol,
ul
{
    list-style: none;
}

blockquote,
q
{
    quotes: none;
}

blockquote:after,
blockquote:before,
q:after,
q:before
{
    content: '';
    content: none;
}

table
{
    border-spacing: 0;
    border-collapse: collapse;
}

main
{
    display: block;
}

html
{
    font-size: 62.5%;

    overflow: auto;
}

*
{
    box-sizing: border-box;
    padding: 0;

    border: none;
    border-radius: 0;
    outline: none;
    background: none;
    box-shadow: none;
}

img
{
    display: block;

    width: 100%;
    height: auto;
}

*
{
    font-family: '游ゴシック体', YuGothic, '游ゴシック Medium', 'Yu Gothic Medium', '游ゴシック', 'Yu Gothic', 'メイリオ', sans-serif;
    font-family: '游ゴシック体', 'Yu Gothic', YuGothic, 'ヒラギノ角ゴ Pro', 'Hiragino Kaku Gothic Pro', 'メイリオ', 'Meiryo', sans-serif;

    box-sizing: border-box;
    padding: 0;

    border: none;
    border-radius: 0;
    outline: none;
    background: none;
    box-shadow: none;
}

body
{
    font-family: '游ゴシック体', YuGothic, '游ゴシック Medium', 'Yu Gothic Medium', '游ゴシック', 'Yu Gothic', 'メイリオ', sans-serif;
}

/* Windows */

@font-face
{
    font-family: YuGothicM;
    font-weight: normal;

    src: local('YuGothic-Medium'), local('Yu Gothic Medium'), local('YuGothic-Regular'); /* Windows8.1ではMediumがないのでRegularを指定 */
}

@font-face
{
    font-family: YuGothicM;
    font-weight: bold;

    src: local('YoGothic-Bold'), local('Yu Gothic'); /* Chrome用 */
}

img
{
    display: block;

    width: 100%;
    height: auto;
}

body
{
    position: relative;
    z-index: 0;
}

a
{
    transition: .8s;
}

a:hover
{
    transition: .8s;

    opacity: .7;
}

a img
{
    transition: .8s;
}

a img:hover
{
    transition: .8s;

    opacity: .7;
}

html.open
{
    overflow: hidden;

    width: 100%;
    height: 100vh;
}

body
{
    font-family: YuGothic,'Yu Gothic','Yu Gothic UI','ＭＳ ゴシック',serif;
}

p
{
    font-family: 'klee',serif;
}

.f-klee
{
    font-family: 'klee',serif;
}

html
{
    font-size: 62.5%;
}

/* ==========================================================================
  Layout
  ========================================================================== */

.l-footer
{
    font-weight: 700;

    display: -ms-flexbox;

    display: flex;

    width: 100%;
    height: 210px;
    margin-top: -30px;

    color: #fff;
    background-image: url(../images/footer_bg.png);
    background-repeat: round;

    -ms-flex-pack: center;

        justify-content: center;
    -ms-flex-align: center;
        align-items: center;
}

.l-footer__inner
{
    width: 62.5%;
    max-width: 614px;
    margin-right: auto;
    margin-left: auto;
}

.l-footer__nav
{
    margin-bottom: 41px;
}

.l-footer__group
{
    display: -ms-flexbox;
    display: flex;

    -ms-flex-pack: justify;

        justify-content: space-between;
}

.l-footer__list,
.l-footer__link
{
    font-size: 2.4rem;

    display: -ms-flexbox;

    display: flex;

    height: 38px;

    color: #fff;

    -ms-flex-pack: center;

        justify-content: center;
    -ms-flex-align: center;
        align-items: center;
}

.l-footer__copy
{
    font-size: 1.6rem;
    line-height: 1.66667;

    display: block;

    text-align: center;
}

.l-footer__btn
{
    position: fixed;
    right: 65px;
    bottom: 52px;

    display: none;

    width: 197px;
}

.l-footer__frame
{
    position: relative;

    width: 100%;
    height: 100%;
}

.l-footer__span
{
    font-size: 2.4rem;
    font-weight: 700;
    line-height: 1.33333;

    position: absolute;
    top: 50%;
    left: 50%;

    transform: translate(-50%, -50%);
}

.social-buttons
{
    display: -ms-flexbox;
    display: flex;

    width: 100%;
    margin: 20px auto;

    -ms-flex-pack: center;

        justify-content: center;
}

.l-header
{
    position: fixed;
    z-index: 999999;
    top: 0;
    left: 0;

    width: 100%;
    height: 108px;

    transition: .9s;

    background-image: url(../images/header_bg.png);
    background-repeat: round;
}

.l-header__inner
{
    position: relative;
    z-index: 999999;

    display: -ms-flexbox;

    display: flex;

    width: 88%;
    max-width: 1700px;
    margin-right: auto;
    margin-left: auto;
    padding-top: 18px;

    text-align: center;

    -ms-flex-pack: justify;

        justify-content: space-between;
    -ms-flex-align: center;
        align-items: center;
}

.l-header__logo
{
    width: 158px;
}

.l-header__nav
{
    height: 100%;
}

.l-header__group
{
    display: -ms-flexbox;
    display: flex;
}

.l-header__list,
.l-header__link
{
    font-size: 2.4rem;
    font-weight: 700;

    display: -ms-flexbox;

    display: flex;

    width: 160px;
    height: 38px;

    color: #fff;

    -ms-flex-pack: center;

        justify-content: center;
    -ms-flex-align: center;
        align-items: center;
}

.l-header__list
{
    margin: 0 26px;
}

.l-header__link:hover
{
    border-radius: 50px;
    background-color: #e2c85b;
}

.l-header__image01
{
    display: none;
}

.l-header__image02
{
    display: none;
}

.l-header__btn
{
    position: absolute;
    top: 30%;
    right: 0;
}

.l-header .js-btn
{
    position: relative;

    display: none;

    width: 50px;
    height: 50px;

    cursor: pointer;

    border-radius: 5px;
}

.l-header .js-btn span
{
    position: absolute;
    left: 14px;

    display: inline-block;

    width: 40px;
    height: 2px;

    transition: all .4s;

    border-radius: 2px;
    background: #fff;
}

.l-header .js-btn span:nth-of-type(1)
{
    top: 15px;
}

.l-header .js-btn span:nth-of-type(2)
{
    top: 23px;
}

.l-header .js-btn span:nth-of-type(3)
{
    top: 31px;
}

.l-header .js-btn.open span:nth-of-type(1)
{
    top: 18px;
    left: 18px;

    width: 40px;

    transform: translateY(6px) rotate(-25deg);
}

.l-header .js-btn.open span:nth-of-type(2)
{
    opacity: 0;
}

.l-header .js-btn.open span:nth-of-type(3)
{
    top: 30px;
    left: 18px;

    width: 40px;

    transform: translateY(-6px) rotate(25deg);
}

.l-header.open
{
    transition: .9s;

    background-color: #f4efeb;
}

/* ==========================================================================
  Object
  ========================================================================== */

/* Components
  ----------------------------------------------------------------- */

.c-card01
{
    display: -ms-flexbox;
    display: flex;

    margin-bottom: 33px;

    -ms-flex-pack: justify;

        justify-content: space-between;
}

.c-card01__image
{
    width: 48%;
}

.c-card02
{
    margin-bottom: 33px;
}

.c-card02__image
{
    width: 95%;
    margin-right: auto;
    margin-left: auto;
    padding-top: 56px;
}

.c-card03__image
{
    height: 330px;
    padding-top: 56px;

    -o-object-fit: contain;

       object-fit: contain;
}

.c-card04
{
    display: -ms-flexbox;
    display: flex;
    -ms-flex-direction: column;
        flex-direction: column;

    margin-bottom: 33px;

    -ms-flex-pack: inherit;

        justify-content: inherit;
}

.c-card04__image
{
    width: 95%;
    margin-right: auto;
    margin-left: auto;
    padding-top: 56px;
}

.c-card-block
{
    width: 48%;
}

.c-card-block02
{
    width: 100%;
}

.c-card-block03
{
    width: 60%;
}

.c-card-block04
{
    width: 40%;
}

.c-card-txt
{
    font-size: 2.4rem;
    font-weight: 700;
    line-height: 1.66667;

    position: relative;

    width: 80%;
    margin-bottom: 12px;
    margin-left: auto;

    color: #4a4a4a;
}

.c-card-txt::before
{
    display: inline-block;

    margin-right: 10px;
    margin-left: -30px;
}

.c-card-txt02
{
    font-size: 2.4rem;
    font-weight: 700;
    line-height: 1.66667;

    position: relative;

    width: 90%;
    margin-bottom: 12px;
    margin-left: auto;

    color: #4a4a4a;
}

.c-card-txt02::before
{
    display: inline-block;

    margin-right: 10px;
    margin-left: -30px;
}

.c-card-txt03
{
    font-size: 2.4rem;
    font-weight: 700;
    line-height: 1.66667;

    position: relative;

    width: 90%;
    margin-bottom: 12px;

    color: #4a4a4a;
}

.c-card-txt03::before
{
    display: inline-block;

    margin-right: 10px;
    margin-left: -30px;
}

.c-no1::before
{
    content: '①';
}

.c-no2::before
{
    content: '②';
}

.c-no3::before
{
    content: '③';
}

.c-no4::before
{
    content: '④';
}

.c-no5::before
{
    content: '⑤';
}

.c-no6::before
{
    content: '⑥';
}

.c-no7::before
{
    content: '⑦';
}

.c-no8::before
{
    content: '⑧';
}

.c-no11::before
{
    content: '1)';
}

.c-no12::before
{
    content: '2)';
}

.c-no13::before
{
    content: '3)';
}

.c-card-mt30
{
    margin-top: -30px;
}

.c-card-group
{
    font-family: 'klee',sans-serif;

    margin-left: 5%;
}

.c-card-list
{
    font-size: 2.4rem;
    font-weight: 700;
    line-height: 1.66667;

    width: 80%;
    margin-bottom: 12px;
    margin-left: auto;

    list-style: disc;

    color: #4a4a4a;
}

.c-list-none
{
    list-style: none;
}

.c-card-content
{
    padding: 114px 0 85px 0;
}

.l-inner02:not(:last-of-type) .c-card-content
{
    padding: 114px 0 85px 0;

    border-bottom: 4px dashed #5dbfa5;
}

.c-card-center
{
    -ms-flex-align: center;
        align-items: center;
}

.c-card-width01
{
    max-width: 328px;
    height: auto;

    -o-object-fit: cover;

       object-fit: cover;
}

.c-card-inner
{
    width: 85%;
    margin-right: auto;
    margin-left: auto;
}

.c-card-lead
{
    font-size: 2.8rem;
    font-weight: 700;
    line-height: 1.67857;

    display: block;

    max-width: 736px;
    margin-right: auto;
    margin-bottom: 86px;
    margin-left: auto;
    padding: 10px 32px;

    text-align: center;

    color: #fff;
    border-radius: 20px;
    background-color: #5dbfa5;
}

.c-card-pc
{
    display: none;
}

.c-card-sp
{
    display: none;
}

.c-catch
{
    padding-bottom: 197px;

    color: #4a4a4a;
}

.c-catch__top
{
    margin-bottom: 23px;
}

.c-catch__top:first-of-type
{
    margin-bottom: 32px;
}

.c-catch__frame
{
    padding: 46px 72px;

    border: dashed 3px #fff;
    border: dashed 5px #82ccd0;
    border-radius: 50px;
    background-color: #fdfcf5;
    box-shadow: 0 0 0 10px #fdfcf5;
}

.c-catch__ttl01
{
    font-size: 2.4rem;
    font-weight: 700;
    line-height: 1.66667;

    color: #5ec4c9;
}

.c-catch__ttl02
{
    font-size: 2.4rem;

    width: 100%;
    padding: 11px 0;

    text-align: center;

    color: #fff;
    border: dashed 1px #fff;
    border-radius: 50px;
    background-color: #e69230;
    box-shadow: 0 0 0 3px #e69230;
}

.c-catch__ttl03
{
    font-size: 2.4rem;

    width: 100%;
    padding: 11px 0;

    text-align: center;

    color: #fff;
    border: dashed 1px #fff;
    border-radius: 50px;
    background-color: #3b9aa3;
    box-shadow: 0 0 0 3px #3b9aa3;
}

.c-catch__intro
{
    display: -ms-flexbox;
    display: flex;

    margin-bottom: 46px;

    -ms-flex-pack: justify;

        justify-content: space-between;
}

.c-catch__group
{
    margin: 0 40px;
}

.c-catch__group:first-of-type
{
    width: 27%;
    max-width: 333px;

    text-align: center;
}

.c-catch__group:nth-of-type(2)
{
    width: 28%;
    max-width: 344px;
}

.c-catch__group:nth-of-type(3)
{
    width: 24%;
    max-width: 291px;
}

.c-catch__txt01
{
    font-size: 2.2rem;
    font-weight: 700;
    line-height: 1.81818;
}

.c-catch__detail
{
    position: relative;

    padding: 17px;

    border-radius: 35px;
    background-image: url(../images/detail_bg.jpg);
}

.c-catch__bg
{
    position: absolute;
    right: 30px;
    bottom: 20px;

    width: 158px;
}

.c-catch__frame02
{
    display: -ms-flexbox;
    display: flex;

    padding: 35px 20px;

    border-radius: 35px;
    background-color: #fcfcfc;

    -ms-flex-pack: distribute;

        justify-content: space-around;
}

.c-catch__ttl04
{
    font-size: 3.2rem;
    font-weight: 700;
    line-height: 1.1875;

    margin-bottom: 18px;

    color: #5ec4c9;
}

.c-catch__ttl05
{
    font-size: 2.4rem;
    font-weight: 700;
    line-height: 1.66667;

    max-width: 447px;

    color: #5ec4c9;
    border-bottom: 1px solid #5ec4c9;
}

.c-catch__txt02
{
    font-size: 2.4rem;
    font-weight: 700;
    line-height: 1.66667;
}

.c-catch__txt03
{
    margin-bottom: 10px;
}

.c-catch__txt04
{
    margin-top: 10px;
}

.c-catch__list02
{
    font-size: 2.4rem;
    font-weight: 700;
    line-height: 1.66667;

    margin-bottom: 15px;

    list-style: disc;
}

.c-catch__block01
{
    width: 36%;
    max-width: 442px;
}

.c-catch__block02
{
    width: 46%;
    max-width: 614px;
    padding-top: 10%;
}

.c-catch__group02
{
    padding: 15px 0;

    border-bottom: 1px solid #5ec4c9;
}

.c-catch__bottom02
{
    padding-left: 15%;
}

.c-catch__span01
{
    font-size: 1.3rem;
    font-weight: 700;
    line-height: 2.21053;

    position: relative;

    padding: 7px 10px;

    color: #fff;
    background-color: #5ec4c9;
}

.c-catch__span01::before
{
    position: absolute;
    bottom: -15px;
    left: 20px;

    display: block;

    width: 0;
    height: 0;

    content: '';

    border-top: 15px solid #5ec4c9;
    border-right: 15px solid transparent;
    border-left: 15px solid transparent;
}

.c-catch__span02
{
    font-size: 2.0rem;
}

.c-image__left01
{
    position: absolute;
    z-index: 1;
    top: 122px;
    left: 0;

    width: 126px;
    padding-top: calc(724/73*100%);

    background-image: url(../images/bg_left.png);
    background-repeat: no-repeat;
    background-size: contain;
}

.c-image__left02
{
    position: absolute;
    z-index: 1;
    top: 200px;
    left: 0;

    width: 126px;
    height: 95%;

    background-image: url(../images/bg_left.png);
    background-repeat: repeat-y;
    background-size: contain;
}

.c-image__left03
{
    position: absolute;
    z-index: 1;
    top: 200px;
    left: 0;

    width: 126px;
    height: 95%;

    background-image: url(../images/bg_left.png);
    background-repeat: repeat-y;
    background-size: contain;
}

.c-image__right01
{
    position: absolute;
    z-index: 1;
    top: 122px;
    right: 0;

    width: 126px;
    padding-top: calc(724/73*100%);

    background-image: url(../images/bg_right.png);
    background-repeat: no-repeat;
    background-size: contain;
}

.c-image__right02
{
    position: absolute;
    z-index: 1;
    top: 200px;
    right: 0;

    width: 126px;
    height: 95%;

    opacity: .5;
    background-image: url(../images/bg_right.png);
    background-repeat: repeat-y;
    background-size: contain;
}

.c-image__right03
{
    position: absolute;
    z-index: 1;
    top: 200px;
    right: 0;

    width: 126px;
    height: 95%;

    opacity: .5;
    background-image: url(../images/bg_right.png);
    background-repeat: repeat-y;
    background-size: contain;
}

.l-inner
{
    width: 95%;
    max-width: 1200px;
    margin-right: auto;
    margin-left: auto;
}

.l-inner02
{
    width: 95%;
    max-width: 1328px;
    margin-right: auto;
    margin-left: auto;
}

.l-inner02-1
{
    width: 95%;
    max-width: 1328px;
    margin-right: auto;
    margin-left: auto;
}

.l-inner03
{
    width: 95%;
    max-width: 1328px;
    margin-right: auto;
    margin-left: auto;
}

.c-mv__wrapper
{
    position: relative;

    width: 100%;

    background-color: #f4efeb;
}

.c-content__wrapper
{
    position: relative;

    width: 100%;

    background-image: url(../images/bg.jpg);
    background-repeat: repeat;
    background-size: 50px;
}

.l-main
{
    width: 100%;
    margin-top: 68px;
}

.c-mv
{
    width: 100%;
    max-width: 1329px;
    margin-right: auto;
    margin-left: auto;
    padding: 103px 0;

    pointer-events: none;
}

.c-mv01
{
    width: 100%;
    max-width: 1329px;
    margin-right: auto;
    margin-left: auto;
    padding: 103px 0;

    pointer-events: none;
}

.c-link
{
    text-align: center;
}

.c-link__ttl
{
    margin-bottom: 24px;
}

.c-link__group
{
    display: -ms-flexbox;
    display: flex;

    width: 662px;
    margin-right: auto;
    margin-left: auto;
}

.c-link__list
{
    width: 184px;
}

.c-link__image
{
    width: 184px;
}

.c-link__list:nth-of-type(2)
{
    margin: 0 55px;
}

.c-sns
{
    padding-bottom: 58px;

    text-align: center;
}

.c-sns__block
{
    padding: 10px;

    color: #fff;
    border: 1px solid #707070;
    border-radius: 20px;
    background-color: #fff;
    box-shadow: 0 0 0 3px #fff;
}

.c-sns__frame
{
    width: 100%;
    height: 100%;
    margin-right: auto;
    margin-left: auto;
    padding: 19px 0;

    border: dashed 3px #7cbcab;
    border-radius: 20px;
    box-shadow: 0 0 0 3px #fff;
}

.c-sns__image
{
    width: 57px;
    margin-right: auto;
    margin-bottom: 14px;
    margin-left: auto;
}

.c-sns__ttl
{
    font-size: 3.5rem;
    font-weight: 700;
    line-height: 1.34286;

    margin-bottom: 31px;

    color: #5dbfa5;
}

.c-sns__group
{
    display: -ms-flexbox;
    display: flex;

    -ms-flex-pack: center;

        justify-content: center;
}

.c-sns__link
{
    display: -ms-flexbox;
    display: flex;
    -ms-flex-direction: column;
        flex-direction: column;

    width: 74px;
    margin: 0 25px;

    -ms-flex-align: center;

        align-items: center;
}

.c-sns__icon
{
    height: 57px;
    margin-bottom: 10px;

    -o-object-fit: contain;

       object-fit: contain;
}

.c-sns__span
{
    font-size: 1.5rem;
    font-weight: 700;

    display: block;
}

.c-sns__span01
{
    color: #1877f2;
}

.c-sns__span02
{
    color: #d92e7f;
}

.c-sns__span03
{
    color: #1d9bf0;
}

.c-sns__span04
{
    color: #00b925;
}

.c-sns__span05
{
    color: #e71e27;
}

.c-ttl
{
    font-size: 3.5rem;
    font-weight: 700;
    line-height: 1.34286;

    margin-bottom: 24px;

    color: #5dbfa5;
}

.c-ttl::before
{
    font-family: 'Arial Narrow',sans-serif;
    font-size: 4.0rem;
    line-height: 76px;

    display: inline-block;

    width: 76px;
    height: 76px;
    margin-right: 20px;

    text-align: center;

    color: #fff;
    border: dashed 1px #fff;
    border-radius: 50px;
    background-color: #5dbfa5;
    box-shadow: 0 0 0 3px #5dbfa5;
}

.c-ttl-orange
{
    color: #edb378;
}

.c-ttl-orange::before
{
    background-color: #edb378;
    box-shadow: 0 0 0 3px #edb378;
}

.c-ttl-01::before
{
    content: '1';
}

.c-ttl-02::before
{
    content: '2';
}

.c-ttl-03::before
{
    content: '3';
}

.c-ttl-04::before
{
    content: '4';
}

.c-ttl-05::before
{
    content: '5';
}

.c-ttl-06::before
{
    content: '6';
}

.c-ttl-07::before
{
    content: '7';
}

.c-ttl-08::before
{
    content: '8';
}

.c-ttl-09::before
{
    content: '9';
}

.c-lead
{
    padding-bottom: 33px;

    text-align: center;
}

.c-lead__image
{
    width: 57px;
    margin-right: auto;
    margin-bottom: 25px;
    margin-left: auto;
}

.c-lead__ttl
{
    font-size: 3.5rem;
    font-weight: 700;
    line-height: 1.34286;

    color: #5dbfa5;
}

/* Project
  ----------------------------------------------------------------- */

.p-home-mv
{
    position: relative;
}

.p-home-mv__image-pc
{
    display: none;
}

.p-home-mv__image-sp
{
    display: none;
}

.p-home-intro
{
    padding-bottom: 103px;
}

.p-home-intro__note
{
    font-size: 2.8rem;
    font-weight: 700;
    line-height: 1.5;

    text-align: center;

    color: #4a4a4a;
}

.p-home-intro__note:first-of-type
{
    margin-bottom: 46px;
}

.p-home-intro__note:last-of-type
{
    margin-bottom: 146px;
}

.p-home-intro__group
{
    display: -ms-flexbox;
    display: flex;

    -ms-flex-pack: justify;

        justify-content: space-between;
    -ms-flex-align: start;
        align-items: flex-start;
}

.p-home-intro__item
{
    position: relative;

    display: -ms-flexbox;

    display: flex;
    -ms-flex-direction: column;
        flex-direction: column;

    width: calc(100% / 3 - 18px);
    max-width: 376px;
    max-height: 463px;
    padding-bottom: 48px;

    text-align: center;

    background-image: url(../images/product_bg.jpg);
    background-repeat: no-repeat;
    background-position: center;
    background-size: cover;

    -ms-flex-align: center;

        align-items: center;
}

.p-home-intro__item::before
{
    position: absolute;
    top: -69px;

    width: 100%;
    height: 70px;

    content: '';

    background-image: url(../images/product_bg.jpg);

    -webkit-clip-path: ellipse(50% 100% at 50% 100%);

            clip-path: ellipse(50% 100% at 50% 100%);
}

.p-home-intro__item:not(:last-of-type)
{
    margin-bottom: 120px;
}

.p-home-intro__image
{
    width: 211px;
    height: 175px;
}

.p-home-intro__item:nth-of-type(2)
{
    margin-top: 40px;
}

.p-home-intro__item:nth-of-type(2) .p-home-intro__ttl
{
    margin-bottom: 5px;
}

.p-home-intro__ttl
{
    font-size: 3.7rem;
    font-weight: 700;
    line-height: 1.13514;

    margin-bottom: 39px;

    color: #fffffd;
}

.p-home-intro__span01
{
    font-size: 2.4rem;
    font-weight: 700;
    line-height: 1.13514;

    display: block;

    margin-bottom: 39px;

    color: #fffffd;
}

.p-home-intro__btn
{
    max-width: 145px;
    margin-right: auto;
    margin-left: auto;
}

.p-home-teach
{
    padding: 101px 0;

    background-image: url(../images/teach_bg.jpg);
    background-repeat: repeat;
    background-size: 1000px;
}

.p-home-teach__block
{
    position: relative;

    padding: 109px 11% 143px 9%;

    color: #565656;
    border: dashed 5px #82ccd0;
    border-radius: 8px;
    background-color: #fdfcf5;
    box-shadow: 0 0 0 16px #fdfcf5;
}

.p-home-teach__ttl
{
    font-size: 3.1rem;
    line-height: 1.51613;

    margin-right: auto;
    margin-bottom: 38px;
    margin-left: auto;

    color: #5ec4c9;
}

.p-home-teach__txt
{
    font-size: 2.3rem;
    line-height: 1.73913;

    margin-right: auto;
    margin-bottom: 67px;
    margin-left: auto;

    color: #4a4a4a;
}

.p-home-teach__link
{
    display: -ms-flexbox;
    display: flex;
}

.p-home-teach__btn01
{
    margin-right: 48px;
}

.p-home-teach__btn01
{
    width: 298px;
}

.p-home-teach__btn02
{
    width: 214px;
}

.p-home-teach__image
{
    position: absolute;
    right: 20px;
    bottom: 20px;

    width: 189px;
}

.p-home-item__catch
{
    padding: 100px 0 127px 0;

    text-align: center;
}

.p-home-item__image00
{
    width: 57px;
    height: 57px;
    margin-right: auto;
    margin-bottom: 25px;
    margin-left: auto;
}

.p-home-item__ttl00
{
    font-size: 3.5rem;
    font-weight: 700;
    line-height: 1.34286;

    margin-bottom: 27px;

    color: #5dbfa5;
}

.p-home-item__txt00
{
    font-size: 1.8rem;
    line-height: 1.58333;

    color: #4a4a4a;
}

.p-home-item__ttl
{
    font-size: 3.5rem;

    width: 100%;
    padding: 19px 0;

    text-align: center;

    color: #fff;
    border: dashed 3px #fff;
    border-radius: 50px;
}

.p-home-item__ttl01
{
    background-color: #e69230;
    box-shadow: 0 0 0 3px #e69230;
}

.p-home-item__ttl02
{
    background-color: #3b9aa3;
    box-shadow: 0 0 0 3px #3b9aa3;
}

.p-home-item__ttl03
{
    background-color: #52b298;
    box-shadow: 0 0 0 3px #52b298;
}

.p-home-item__group
{
    display: -ms-flexbox;
    display: flex;

    -ms-flex-wrap: wrap;

        flex-wrap: wrap;
    -ms-flex-pack: justify;
        justify-content: space-between;
}

.p-home-item__group::after
{
    display: block;

    width: calc(100% / 3 - 40px);

    content: '';
}

.p-home-item__card
{
    display: -ms-flexbox;
    display: flex;
    -ms-flex-direction: column;
        flex-direction: column;

    width: calc(100% / 3 - 40px);
    padding-top: 115px;
}

.p-home-item__card:last-of-type
{
    padding-bottom: 199px;
}

.p-home-item__image
{
    height: 330px;
    margin-bottom: 61px;

    -o-object-fit: contain;

       object-fit: contain;
}

.p-home-item__name
{
    font-size: 2.8rem;
    font-weight: 700;
    line-height: 1.5;

    height: 100px;

    color: #5dbfa5;
}

.p-home-item__info
{
    font-size: 1.8rem;
    font-weight: 700;
    line-height: 2;

    height: auto;
    margin-bottom: 30px;

    color: #4a4a4a;
}

.p-home-item__bottom
{
    display: -ms-flexbox;
    display: flex;
    -ms-flex-direction: column;
        flex-direction: column;

    -ms-flex-align: start;

        align-items: flex-start;
}

.p-home-item__span01
{
    font-size: 1.9rem;
    font-weight: 700;

    display: inline-block;

    padding: 2px;

    color: #4a4a4a;
    border: 1px solid #4a4a4a;
}

.p-home-item__link
{
    display: inline-block;

    margin-left: auto;
}

.p-home-item__btn
{
    width: 166px;
    margin-left: auto;
}

.p-home-detail
{
    padding-bottom: 195px;
}

.p-home-detail .l-inner
{
    display: -ms-flexbox;
    display: flex;

    padding: 50px 0;

    background-image: url(../images/detail_bg.jpg);
    background-repeat: repeat;
    background-position: center;
    background-size: 500px;

    -ms-flex-pack: center;

        justify-content: center;
}

.p-home-detail__block
{
    display: -ms-flexbox;
    display: flex;
    -ms-flex-direction: column;
        flex-direction: column;

    width: 100%;
    max-width: 377px;
    height: 214px;
    margin: 0 46px;
    padding: 30px 14px;

    border-radius: 10px;
    background-image: url(../images/bg.jpg);
    background-repeat: repeat;
    background-size: 50px;
}

.p-home-detail__lead
{
    font-size: 2.8rem;
    font-weight: 700;
    line-height: 1.5;

    color: #5dbfa5;
}

.p-home-detail__txt
{
    font-size: 1.8rem;
    font-weight: 700;
    line-height: 2;

    color: #4a4a4a;
}

/* Utility
  ----------------------------------------------------------------- */

/* plugin
  ----------------------------------------------------------------- */

@media screen and (min-width: 768px)
{
    .p-home-mv__image-pc
    {
        display: block;
    }

    .u-hidden-pc
    {
        display: none;
    }
}

@media screen and (min-width: 1024px)
{
    .c-card-pc
    {
        display: block;
    }
}

@media screen and (max-width: 1280px)
{
    .l-header__list
    {
        margin: 0 10px;
    }

    .c-image__left03
    {
        display: none;
    }

    .c-image__right01
    {
        display: none;
    }

    .c-image__right03
    {
        display: none;
    }
}

@media screen and (max-width: 1024px)
{
    html
    {
        font-size: 40%;
    }

    .l-footer
    {
        height: 280px;
    }

    .l-footer__inner
    {
        width: 90%;
    }

    .l-footer__nav
    {
        margin-bottom: 25px;
        padding-top: 50px;
    }

    .l-footer__group
    {
        -ms-flex-direction: column;
            flex-direction: column;
    }

    .l-footer__list,
    .l-footer__link
    {
        font-size: 2.0rem;
    }

    .l-header
    {
        height: 70px;
    }

    .l-header__logo
    {
        width: 100px;
    }

    .l-header__nav
    {
        position: fixed;
        z-index: 999;
        top: 70px;
        left: 0;

        visibility: hidden;

        width: 100%;
        height: 100vh;
        padding-top: 100px;

        transition: .9s;

        opacity: 0;
        background-color: #f4efeb;
    }

    .l-header__nav.open
    {
        position: fixed;
        z-index: 999;
        top: 70px;
        left: 0;

        visibility: visible;

        width: 100%;
        height: 100vh;
        padding-top: 100px;

        transition: .9s;

        opacity: 1;
        background-color: #f4efeb;
    }

    .l-header__group
    {
        position: relative;

        -ms-flex-direction: column;

            flex-direction: column;

        width: 100%;
        height: 100vh;

        -ms-flex-align: center;

            align-items: center;
    }

    .l-header__group.open
    {
        position: relative;

        -ms-flex-direction: column;

            flex-direction: column;

        width: 100%;
        height: 100vh;

        -ms-flex-align: center;

            align-items: center;
    }

    .l-header__list,
    .l-header__link
    {
        margin-bottom: 30px;

        color: #6c6c6c;
    }

    .l-header__link:hover
    {
        color: #fff;
    }

    .l-header__image01
    {
        position: absolute;
        top: 0;
        left: 0;

        display: block;

        width: 80px;
    }

    .l-header__image02
    {
        position: absolute;
        right: 20px;
        bottom: 150px;

        display: block;

        width: 118px;
    }

    .l-header .js-btn
    {
        display: block;
    }

    .c-card01
    {
        -ms-flex-direction: column;
            flex-direction: column;

        margin-bottom: 25px;

        -ms-flex-pack: center;

            justify-content: center;
        -ms-flex-align: center;
            align-items: center;
    }

    .c-card01__image
    {
        width: 100%;
        max-width: 564px;
        padding-top: 25px;
    }

    .c-card02
    {
        margin-bottom: 25px;
    }

    .c-card02__image
    {
        width: 100%;
        max-width: 564px;
        padding-top: 25px;
    }

    .c-card03__image
    {
        height: auto;
        padding-top: 25px;

        transform: scale(1, 1.1, 1);
    }

    .c-card04
    {
        margin-bottom: 25px;
    }

    .c-card04__image
    {
        width: 100%;
        padding-top: 25px;

        transform: scale(1, 1.1, 1);
    }

    .c-card-block
    {
        width: 100%;
    }

    .c-card-block03
    {
        width: 100%;
    }

    .c-card-block04
    {
        width: 100%;
    }

    .c-card-txt
    {
        width: 90%;
    }

    .c-card-mt30
    {
        margin-top: 0;
    }

    .c-card-list
    {
        width: 90%;
    }

    .c-card-content
    {
        padding: 50px 0;
    }

    .l-inner02:not(:last-of-type) .c-card-content
    {
        padding: 50px 0;
    }

    .c-card-sp
    {
        display: block;

        margin-right: auto;
        margin-left: auto;
    }

    .c-catch
    {
        padding-bottom: 50px;
    }

    .c-catch__frame
    {
        padding: 10px;
    }

    .c-catch__intro
    {
        -ms-flex-direction: column;
            flex-direction: column;

        -ms-flex-pack: center;

            justify-content: center;
        -ms-flex-align: center;
            align-items: center;
    }

    .c-catch__group:first-of-type
    {
        width: 100%;
        margin: 25px 0;
    }

    .c-catch__group:nth-of-type(2)
    {
        width: 100%;
        margin: 25px 0;
    }

    .c-catch__group:nth-of-type(3)
    {
        width: 100%;
        margin: 25px 0;
    }

    .c-catch__detail
    {
        padding: 5px;
    }

    .c-catch__bg
    {
        width: 60px;
    }

    .c-catch__frame02
    {
        -ms-flex-direction: column;
            flex-direction: column;

        -ms-flex-pack: center;

            justify-content: center;
        -ms-flex-align: center;
            align-items: center;
    }

    .c-catch__block01
    {
        width: 100%;
    }

    .c-catch__block02
    {
        width: 80%;
    }

    .c-catch__bottom02
    {
        padding-left: 1%;
    }

    .c-catch__span01
    {
        font-size: 1.2rem;
    }

    .c-catch__span01::before
    {
        bottom: -5px;

        border-top: 5px solid #5ec4c9;
        border-right: 5px solid transparent;
        border-left: 5px solid transparent;
    }

    .c-image__left01
    {
        display: none;
    }

    .c-image__left02
    {
        display: none;
    }

    .c-image__right02
    {
        width: 73px;
        height: 90%;
    }

    .l-inner
    {
        width: 90%;
    }

    .l-inner02
    {
        width: 90%;
    }

    .l-inner02-1
    {
        width: 90%;
    }

    .l-inner03
    {
        width: 90%;
    }

    .l-main
    {
        margin-top: 48px;
    }

    .c-sns
    {
        padding-bottom: 88px;
    }

    .p-home-intro
    {
        padding-bottom: 50px;
    }

    .p-home-intro__note
    {
        text-align: left;
    }

    .p-home-intro__note:first-of-type
    {
        margin-bottom: 25px;
    }

    .p-home-intro__group
    {
        -ms-flex-direction: column;
            flex-direction: column;

        -ms-flex-align: center;

            align-items: center;
    }

    .p-home-intro__item
    {
        width: 100%;
        max-width: 291px;
    }

    .p-home-intro__item:nth-of-type(2)
    {
        margin-top: 0;
    }

    .p-home-teach__block
    {
        padding: 50px 11% 143px 9%;
    }

    .p-home-teach__link
    {
        -ms-flex-direction: column;
            flex-direction: column;
    }

    .p-home-teach__btn01
    {
        margin: 0 0 25px 0;
    }

    .p-home-teach__image
    {
        right: 10px;
        bottom: 10px;

        width: 98px;
    }

    .p-home-detail__block
    {
        height: 164px;
    }

    .p-home-detail__block:first-of-type
    {
        margin-bottom: 50px;
    }
}

@media screen and (max-width: 768px)
{
    .l-footer__btn
    {
        right: 15px;
        bottom: 15px;

        width: 86px;
    }

    .l-footer__span
    {
        font-size: 1.6rem;
    }

    .c-mv
    {
        padding: 50px 0;
    }

    .c-mv01
    {
        padding: 50px 0;
    }

    .c-link__group
    {
        width: 280px;
    }

    .c-link__list
    {
        width: 81px;
    }

    .c-link__image
    {
        width: 81px;
    }

    .c-link__list:nth-of-type(2)
    {
        margin: 0 24px;
    }

    .c-sns__group
    {
        width: 100%;

        -ms-flex-wrap: wrap;

            flex-wrap: wrap;
    }

    .c-sns__link
    {
        width: 50%;
        margin: 0 0 40px 0;
    }

    .c-ttl
    {
        font-size: 3.0rem;
    }

    .c-ttl::before
    {
        font-size: 3.0rem;
        line-height: 30px;

        width: 30px;
        height: 30px;
    }

    .p-home-mv__image-sp
    {
        display: block;

        max-width: 300px;
        margin-right: auto;
        margin-left: auto;
    }

    .p-home-teach
    {
        padding: 50px 5px;
    }

    .p-home-teach__btn01
    {
        width: 222px;
    }

    .p-home-teach__btn02
    {
        width: 156px;
    }

    .p-home-item__catch
    {
        padding: 50px 0;
    }

    .p-home-item__group
    {
        -ms-flex-direction: column;
            flex-direction: column;

        -ms-flex-wrap: nowrap;

            flex-wrap: nowrap;
        -ms-flex-align: center;
            align-items: center;
        -ms-flex-pack: center;
            justify-content: center;
    }

    .p-home-item__card
    {
        width: 100%;
        max-width: 350px;
        padding-top: 86px;
    }

    .p-home-item__card:last-of-type
    {
        padding-bottom: 50px;
    }

    .p-home-item__image
    {
        height: 200px;
        margin-bottom: 30px;
    }

    .p-home-item__name
    {
        height: auto;
        margin-bottom: 28px;
    }

    .p-home-item__info
    {
        margin-bottom: 50px;
    }

    .p-home-detail
    {
        padding-bottom: 50px;
    }

    .p-home-detail .l-inner
    {
        -ms-flex-direction: column;
            flex-direction: column;

        width: 100%;

        -ms-flex-align: center;

            align-items: center;
    }

    .u-hidden-sp
    {
        display: none;
    }
}

@media print
{
    .l-footer
    {
        display: none;
    }

    .l-header
    {
        display: none;
    }

    .c-card03
    {
        margin: 0;
        padding: 0;
    }

    .c-card-content
    {
        margin: 0;
        padding: 0;
    }

    .l-inner02:not(:last-of-type) .c-card-content
    {
        border-bottom: none;
    }

    .c-card-pc
    {
        display: block;
    }

    .c-catch__frame
    {
        padding: 0;

        border: none;
    }

    .c-catch__intro
    {
        height: 100vh;
        margin: 0;
        padding: 0;

        transform: scale(.7, .7);

        border: none;
    }

    .c-catch__detail
    {
        height: 100vh;
        padding: 0;

        transform: scale(.7, .7);

        border: none;
    }

    .c-catch__frame02
    {
        height: 100vh;
        padding: 0;

        transform: scale(.7, .7);

        border: none;
    }

    .c-catch__bottom02
    {
        padding-left: 1%;
    }

    .c-image__left01
    {
        display: none;
    }

    .c-image__left02
    {
        display: none;
    }

    .c-image__left03
    {
        display: none;
    }

    .c-image__right01
    {
        display: none;
    }

    .c-image__right02
    {
        display: none;
    }

    .c-image__right03
    {
        display: none;
    }

    .l-inner02
    {
        height: 100vh;
        margin: 0;
        padding: 0;

        transform: scale(.6, .6);
        transform-origin: 50% 0;
    }

    .l-inner02-1
    {
        height: 100vh;
        margin: 0;
        padding: 0;

        transform: scale(.4, .4);
        transform-origin: 50% 0;
    }

    .c-mv
    {
        height: 90vh;
        margin: 0;
        padding: 0;
    }

    .c-mv01
    {
        height: 50vh;
        margin: 0;
        padding: 0;
    }

    .c-sns
    {
        display: none;
    }

    .c-lead
    {
        display: none;
    }

    .p-home-mv__image-pc
    {
        display: block;
    }

    .p-home-intro__area
    {
        height: 50vh;
        margin: 0;
        padding: 0;
    }

    .p-home-intro__group
    {
        height: 100vh;
        margin: 0;
        padding: 0;
    }

    .p-home-teach
    {
        height: 100vh;
        margin: 0;
        padding: 0;

        transform: scale(.7, .7);

        background-image: none;
    }

    .p-home-item__catch
    {
        display: none;
    }

    .p-home-item__ttl
    {
        display: none;
    }

    .p-home-item__card
    {
        height: 100vh;
        margin: 0;
        padding: 0;

        transform: scale(.5, .5);
    }

    .p-home-item__name
    {
        height: auto;
    }

    .p-home-item__info
    {
        height: auto;
    }

    .p-home-item__link
    {
        display: none;
    }

    .p-home-item__btn
    {
        display: none;
    }

    .p-home-detail
    {
        display: none;
    }
}
