@charset "utf-8";
/* -----------------------------------------------------------------------------
各ページ共通CSS
------------------------------------------------------------------------------*/
/*レスポンシブ用雛形　使うところにコピペ*/
/*
@media screen and (max-width: 560px) {
    /*　スマホの時ここを読み込む　
}
@media screen and (min-width: 768px) {
    /*　画面サイズが768px以上からはここを読み込む　
}
@media screen and (min-width: 960px) {
    /*　画面サイズが960px以上からここを読み込む　
}
@media screen and (min-width: 1200px) {
    /*　画面サイズが1200px以上からはここを読み込む　
}
*/
/*　フォントサイズの計算式　*/
/*　https://modern-fluid-typography.vercel.appで数値設定して、clamp以下をコピペ
例）font-size: clamp(2.6rem, 1.8vw + 1rem, 3.2rem);
*/
:root {
    --scroll-bar-width: 0px;
    --VW100: calc(100vw - var(--scroll-bar-width));
    --containerMax: 1920px;
    --baseBlue: #00ade8;
    --baseYellow: #f7ca00;
    --baseBeige: #fff6ea;
    --baseOrange: #f48c00;
    --baseBlack: #333;
    --White: #fff;
    --Font12: 1.2rem;
    --Font13: 1.3rem;
    --Font14: 1.4rem;
    --Font16: 1.6rem;
    --Font18: 1.8rem;
    --Font20: 2rem;
    --Font22: 2.2rem;
    --Font24: 2.4rem;
    --Font28: 2.8rem;
    --Font32: 3.2rem;
    --Font34: 3.4rem;
    --Font36: 3.6rem;
    --Font50: 5rem;
    --Font70: 7rem;
    --Font10-14: clamp(1rem, 1vw + 0.35rem, 1.4rem);
    --Font12-16: clamp(1.2rem, 1vw + 0.5rem, 1.6rem);
    --Font14-16: clamp(1.4rem, 0.75vw + 1rem, 1.6rem);
    --Font16-18: clamp(1.6rem, 1vw + 1rem, 1.8rem);
    --Font16-20: clamp(1.6rem, 1vw + 1.1rem, 2rem);
    --Font18-20: clamp(1.8rem, 2vw + 1rem, 2rem);
    --Font18-24: clamp(1.8rem, 2vw + 1rem, 2.4rem);
    --Font18-26: clamp(1.8rem, 2vw + 1rem, 2.6rem);
    --Font20-24: clamp(1.8rem, 1vw + 1.25rem, 2.4rem);
    --Font20-26: clamp(2rem, 2vw + 1rem, 2.6rem);
    --Font22-32: clamp(2.2rem, 2vw + 1rem, 3.2rem);
    --Font24-32: clamp(2.4rem, 2vw + 1.25rem, 3.2rem);
    --Font26-32: clamp(2.6rem, 2vw + 1rem, 3.2rem);
    --Font28-36: clamp(2.8rem, 2.5vw + 1rem, 3.6rem);
    --Font_Family: "Zen Maru Gothic", sans-serif;
    --shapeCurveSP: shape(
        from 0% 20px,
        curve to 100% 30px with 40% 120px / 60% -50px,
        vline to 100%,
        hline to 0%,
        close
    );
    --shapeCurvePC: shape(
        from 0% 20px,
        curve to 100% 40px with 30% 180px / 60% -75px,
        vline to 100%,
        hline to 0%,
        close
    );
}
/* -------------------------------------
　表示切り替え
--------------------------------------*/
@media screen and (max-width: 768px) {
    /*　スマホ・タブレットの時は非表示　*/
    .mobilenone {
        display: none !important;
    }
}
@media screen and (min-width: 769px) {
    /*　スマホ・タブレットより大きい時は非表示　*/
    .pcnone {
    	display: none !important;
	}
}
/* -------------------------------------
Googleフォント　
--------------------------------------*/
/* zen-maru-gothic-500 - japanese_latin */
@font-face {
    font-display: swap;
    font-family: 'Zen Maru Gothic';
    font-style: normal;
    font-weight: 500;
    src: url('../fonts/zen-maru-gothic-v19-japanese_latin-500.woff2') format('woff2'); /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
}
/* zen-maru-gothic-700 - japanese_latin */
@font-face {
    font-display: swap;
    font-family: 'Zen Maru Gothic';
    font-style: normal;
    font-weight: 700;
    src: url('../fonts/zen-maru-gothic-v19-japanese_latin-700.woff2') format('woff2'); /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
}
/* -------------------------------------
表示幅、ボディー
--------------------------------------*/
body, html {
	line-height: 1.75;
	letter-spacing: 0.1rem;
	display: block;
}
html {
	font-size: 62.5% !important;
}
body {
	margin: 0 !important;
	color: var(--baseBlack);
	font-size: 1.6rem;
    font-family: var(--Font_Family);
    font-weight: 500;
}
#container {
    width: var(--VW100);
    max-width: var(--containerMax);
    margin-inline: auto;
}
#contents {
    width: 100%;
}
.contentsInner,
.footerContentsInner {
    width: 100%;
    max-width: 120rem;
    padding-inline: auto;
    padding: 0 1.5rem;
}
.overFlowContents {
    margin-inline: calc(50% - (var(--VW100) / 2));
    padding-inline: calc((var(--VW100) / 2) - (var(--wp--style--global--content-size) / 2));
    overflow-x: clip;
}
.posRelative {
    position: relative;
}
/* -------------------------------------
アニメーション
--------------------------------------*/
@keyframes fadeUp {
    from {
        opacity: 0;
        transform: translateY(100px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}
@keyframes fadeDown {
    from {
        opacity: 1;
        transform: translateY(0);
    }
    to {
        opacity: 0;
        transform: translateY(100px);
    }
}
@keyframes fadeLeft {
    from {
        opacity: 0;
        transform: translateX(100px);
    }
    to {
        opacity: 1;
        transform: translateX(0);
    }
}
@keyframes fadeRight {
    from {
        opacity: 0;
        transform: translateX(-100px);
    }
    to {
        opacity: 1;
        transform: translateX(0);
    }
}
/* -------------------------------------
マージン
--------------------------------------*/
.mLR-center {
    margin-inline: auto;
}
.mT20 {
    margin-top: 2rem;
}
.mT40 {
    margin-top: 4rem;
}
.mR20 {
    margin-right: 2rem;
}
.mB10 {
	margin-bottom: 1rem;
}
.mB20 {
	margin-bottom: 2rem;
}
.mB30 {
	margin-bottom: 3rem;
}
.mB40 {
	margin-bottom: 4rem;
}
.fit__content {
    width: fit-content;
    margin-inline: auto;
}
/* -------------------------------------
パディング
--------------------------------------*/
.pT10 {
    padding-top: 1rem
}
.pT20 {
    padding-top: 2rem
}
.pT40 {
    padding-top: 4rem
}
.pT80 {
    padding-top: 8rem
}
.pB40 {
    padding-bottom: 4rem
}
/* -------------------------------------
テキスト関係
--------------------------------------*/
.Zen_MaruGo_M {
    font-family: var(--Font_Family);
    font-weight: 500;
}
p strong,
.Zen_MaruGo_B {
    font-family: var(--Font_Family);
    font-weight: 700;
}
/*フォントサイズ*/
.font12 {
	font-size: var(--Font12);
}
.font13 {
	font-size: var(--Font13);
}
.font14 {
	font-size: var(--Font14);
}
.font16 {
	font-size: var(--Font16);
}
.font18 {
	font-size: var(--Font18);
}
.font20 {
	font-size: var(--Font20);
}
.font22 {
	font-size: var(--Font22);
}
.font24 {
	font-size: var(--Font24);
}
.font28 {
    font-size: var(--Font28);
}
.font32 {
    font-size: var(--Font32);
}
.font34 {
    font-size: var(--Font34);
}
.font36 {
    font-size: var(--Font36);
}
/*フォント可変サイズ*/
.font10-14 {
	font-size: var(--Font10-14);
}
.font12-16 {
	font-size: var(--Font12-16);
}
.font14-16 {
	font-size: var(--Font14-16);
}
.font16-18 {
	font-size: var(--Font16-18);
}
.font16-20 {
	font-size: var(--Font16-20);
}
.font16-22 {
	font-size: var(--Font16-22);
}
.font18-20 {
	font-size: var(--Font18-20);
}
.font18-24 {
	font-size: var(--Font18-24);
}
.font20-24 {
	font-size: var(--Font20-24);
}
.font20-26 {
	font-size: var(--Font20-26);
}
.font22-30 {
	font-size: var(--Font22-30);
}
.font24-32 {
	font-size: var(--Font24-32);
}
.font26-32 {
	font-size: var(--Font26-32);
}
.font28-36 {
	font-size: var(--Font28-36);
}
.fontB {
	font-weight: 700;
}
.fontM {
	font-weight: 500;
}
.fontN {
	font-weight: normal;
}
/*中央揃え*/
.textCenter {
	text-align: center;
}
/*右詰め*/
.textRight {
	text-align: right;
}
/*右詰め*/
.textJustify {
	text-align: justify;
}
/* -------------------------------------
カラー設定
--------------------------------------*/
.colorYellow {
    color: var(--baseYellow);
}
.colorOrange {
    color: var(--baseOrange);
}
.colorBlue {
    color: var(--baseBlue);
}
.colorWhite {
    color: var(--White);
}
.bgBeige {
    background-color: var(--baseBeige);
}
.bgYellow {
    background-color: var(--baseYellow);
}
.bgWhite {
    background-color: var(--White);
}
.line__link {
    color: #06c755;
    border-bottom: 1px solid #06c755;
}
/* -------------------------------------
画像設定
--------------------------------------*/
.img_Max100 img {
	max-width: 100%;
	height: auto;
}
.img_W100 img {
	width: 100%
}
/* -----------------------------------------------------------------
トップページ
------------------------------------------------------------------*/
#top__fv-box {
    width: var(--VW100);
    max-width: 100%;
    height: 75vh;
    margin-inline: calc(50% - (var(--VW100) / 2));
    background: url(../images/top/fv-mainphoto_sp.webp) no-repeat center / cover;
    position: relative;
}
#top__fv-box::after {
    content: "";
    width: var(--VW100);
    height: 25px;
    background: url(../images/common/wave_white.svg) repeat-x center / auto;
    position: absolute;
    bottom: 0;
    left: 50%;
    transform: translateX(-50%);
}
.fv__container {
    height: 100%;
    padding-inline: calc((var(--VW100) / 2) - (var(--wp--style--global--content-size) / 2));
}
@media screen and (min-width: 1920px) {
    .fv__container {
        padding-inline: calc((var(--containerMax) / 2) - (var(--wp--style--global--content-size) / 2));
    }
}
.fv-catch__box {
    position: relative;
    height: 100%;
    padding: 15px 0;
}
.fv-catch__fig {
    position: absolute;
    top: 10px;
    right: 0;
    width: 25%;
    z-index: 1;
}
.fv-catchphrase {
    position: absolute;
    top: 10px;
    left: 0;
    width: 90%;
}
.fv-catchcopy {
    margin-left: 2em;
    -webkit-text-stroke: 6px var(--White);
    text-stroke: 6px var(--White);
    paint-order: stroke;
    font-size: var(--Font18-24);
}
figure.rainbow {
    svg .svg-elem-1 {
        stroke-dashoffset: 174.81130981445312px;
        stroke-dasharray: 174.81130981445312px;
        transition: stroke-dashoffset 1s cubic-bezier(0.47, 0, 0.745, 0.715) 0s;
    }
    svg .svg-elem-2 {
        stroke-dashoffset: 162.27285766601562px;
        stroke-dasharray: 162.27285766601562px;
        transition: stroke-dashoffset 1s cubic-bezier(0.47, 0, 0.745, 0.715) 0s;
    }
    svg .svg-elem-3 {
        stroke-dashoffset: 149.712646484375px;
        stroke-dasharray: 149.712646484375px;
        transition: stroke-dashoffset 1s cubic-bezier(0.47, 0, 0.745, 0.715) 0s;
    }
    svg .svg-elem-4 {
        stroke-dashoffset: 137.06564331054688px;
        stroke-dasharray: 137.06564331054688px;
        transition: stroke-dashoffset 1s cubic-bezier(0.47, 0, 0.745, 0.715) 0s;
    }
    svg .svg-elem-5 {
        stroke-dashoffset: 124.50538635253906px;
        stroke-dasharray: 124.50538635253906px;
        transition: stroke-dashoffset 1s cubic-bezier(0.47, 0, 0.745, 0.715) 0s;
    }
    svg .svg-elem-6 {
        stroke-dashoffset: 111.94517517089844px;
        stroke-dasharray: 111.94517517089844px;
        transition: stroke-dashoffset 1s cubic-bezier(0.47, 0, 0.745, 0.715) 0s;
    }
    svg .svg-elem-7 {
        stroke-dashoffset: 99.385009765625px;
        stroke-dasharray: 99.385009765625px;
        transition: stroke-dashoffset 1s cubic-bezier(0.47, 0, 0.745, 0.715) 0s;
    }
    svg .svg-elem-8 {
        stroke-dashoffset: 215.5341796875px;
        stroke-dasharray: 215.5341796875px;
        transition: stroke-dashoffset 1s cubic-bezier(0.47, 0, 0.745, 0.715) 0s;
    }
    svg .svg-elem-9 {
        stroke-dashoffset: 383.33673095703125px;
        stroke-dasharray: 383.33673095703125px;
        transition: stroke-dashoffset 1s cubic-bezier(0.47, 0, 0.745, 0.715) 0s;
    }
    svg .svg-elem-10 {
        stroke-dashoffset: 209.6025390625px;
        stroke-dasharray: 209.6025390625px;
        transition: stroke-dashoffset 1s cubic-bezier(0.47, 0, 0.745, 0.715) 0s;
    }
    svg .svg-elem-11 {
        stroke-dashoffset: 376.2511901855469px;
        stroke-dasharray: 376.2511901855469px;
        transition: stroke-dashoffset 1s cubic-bezier(0.47, 0, 0.745, 0.715) 0s;
    }
}
figure.rainbow svg.js-animeOn {
    .svg-elem-1, .svg-elem-2, .svg-elem-3, .svg-elem-4, .svg-elem-5, .svg-elem-6, .svg-elem-7, .svg-elem-8, .svg-elem-9, .svg-elem-10, .svg-elem-11 {
        stroke-dashoffset: 0;
    }
}
section#aboutus {
    padding-bottom: 100px;
}
.top__aboutus-txt {
    padding-top: 2rem;
    text-align: center;
}
.p-step__photoBox {
    position: relative;
}
.p-step__photoBox::before {
    content: "";
    position: absolute;
    top: 30%;
    right: -15%;
    transform: translateY(-50%);
    width: 50%;
    padding-top: 50%;
    background: url(../images/top/balloon01.svg) no-repeat center / contain;
    opacity: .5;
}
.p-step__photoBox::after {
    content: "";
    position: absolute;
    top: 60%;
    left: -10%;
    transform: translateY(-50%);
    width: 35%;
    padding-top: 35%;
    background: url(../images/top/balloon02.svg) no-repeat center / contain;
    opacity: .5;
}
.p-step__photoBox div.p-step__photo:nth-child(odd) {
    margin-bottom: 4rem;
    padding-right: 50px;
    position: relative;
}
.p-step__photoBox div.p-step__photo:nth-child(even) {
    margin-bottom: 4rem;
    padding-left: 50px;
    position: relative;
}
section#commitment, section#greeting, section#ryoiku,
section#company-profile, section#map, section#contactus {
    max-width: var(--VW100);
    margin-top: -100px;
    margin-inline: calc(50% - (var(--VW100) / 2));
    padding-top: 100px;
    padding-bottom: 150px;
    padding-inline: calc((var(--VW100) / 2) - (var(--wp--style--global--content-size) / 2));
}
section#commitment,
section#greeting {
    background: var(--baseYellow);
    clip-path: var(--shapeCurveSP);
}
section#commitment h2 {
    width: 100%;
    max-width: 480px;
    height: 110px;
    color: rgba(255, 255, 255, 0);
    background: url(../images/top/commitment-head.svg) no-repeat center / contain;
}
section#commitment h3 {
    text-indent: 100%;
    white-space: nowrap;
    overflow: hidden;
}
section#commitment .commitment__Box {
    margin-bottom: 50px;
    align-items: flex-start !important;
    gap: 0;
}
section#commitment .commitment__Box .commitment__text {
    width: 52%;
    padding: 1.5em;
    font-size: var(--Font18);
    flex-basis: unset;
    order: 1;
    position: relative;
}
section#commitment .commitment__Box .commitment__text::after {
    content: "";
    width: 100%;
    height: 100%;
    position: absolute;
    top: 0;
    left: 0;
    z-index: -1;
    background: var(--White);
}
section#commitment .commitment__Box .commitment__text.mT-40 {
    margin-top: 0;
}
section#commitment .commitment__Box .commitment__text.mT-40::after {
    top: 0;
    right: 0;
    left: unset;
}
section#commitment .commitment__Box .commitment__imageL {
    width: 48%;
    flex-basis: unset;
    opacity: 0;
    transform: translateX(-80px);
    transition: 0.75s;
}
section#commitment .commitment__Box .commitment__imageR {
    width: 48%;
    flex-basis: unset;
    opacity: 0;
    transform: translateX(80px);
    transition: 0.75s;
}
section#commitment .commitment__Box .commitment__imageL.js-animeOn,
section#commitment .commitment__Box .commitment__imageR.js-animeOn {
    transform: translateX(0);
    opacity: 1;
}
section#commitment .commitment__Box .synergy_pict {
    position: relative;
}
section#commitment .commitment__Box .synergy_pict::before {
    content: "";
    width: 100%;
    height: 100%;
    background: url(../images/top/synergy_arrow.svg) no-repeat center / contain;
    position: absolute;
    animation: 7s 0s arrow_rotate linear infinite;
}
@keyframes arrow_rotate {
    to { transform:rotate(1turn); }
}
section#commitment .commitment__Box .synergy_pict img {
    position: relative;
}
section#ryoiku {
    background: var(--baseBeige);
    position: relative;
}
section#ryoiku::before {
    content: "";
    width: var(--VW100);
    height: 25px;
    background: url(../images/common/wave_beige.svg) repeat-x center / auto;
    position: absolute;
    bottom: 100%;
    left: 50%;
    transform: translateX(-50%);

}
section#ryoiku .ryoiku__jidouhattatsu,
section#ryoiku .ryoiku__dayservice {
    margin: 60px 10px 10px 10px;
    background: var(--White);
    border: 2px solid var(--baseOrange);
    border-radius: 30px;
    box-shadow: 10px 10px 5px rgba(242, 151, 11, .3);
    position: relative;
}
section#ryoiku .ryoiku__jidouhattatsu::before {
    content: url(../images/top/ryoiku__jidouhattatsu.svg);
    position: absolute;
    z-index: 1;
    top: -60px;
    left: 0px;
}
section#ryoiku .ryoiku__dayservice::before {
    content: url(../images/top/ryoiku__dayservice.svg);
    position: absolute;
    z-index: 1;
    top: -70px;
    left: 0px;
}
section#ryoiku .ryoiku__target {
    text-indent: 100%;
    white-space: nowrap;
    overflow: hidden;
}
section#ryoiku .ryoiku__details {
    width: fit-content;
    margin-inline: auto;
    margin-bottom: 30px;
    padding: 15px;
}
section#ryoiku .ryoiku__details h3 {
    padding: 5px .5em;
    width: fit-content;
    font-size: var(--Font24);
    text-align: center;
    background: var(--baseYellow);
}
section#ryoiku .ryoiku__details .ryoiku__list ul {
    font-size: var(--Font16);
}
section#greeting .greeting__msg {
    width: 100%;
    max-width: 800px;
    padding: 0 1em;
    line-height: 2;
    text-align: justify;
}
section#company-profile {
    margin-top: 0;
    position: relative;
}
section#company-profile::before {
    content: "";
    width: var(--VW100);
    height: 25px;
    background: url(../images/common/wave_white.svg) repeat-x center / auto;
    position: absolute;
    bottom: 100%;
    left: 50%;
    transform: translateX(-50%);
}
.company-profile__tbl {
    display: block;
    font-size: var(--Font16);
}
.company-profile__tbl tr:nth-child(1) td:nth-child(1) {
    border-top: 1px solid var(--baseOrange);
}
.company-profile__tbl tr td {
    display: block;
    padding: 1em;
    vertical-align: top;
    border-bottom: 1px solid var(--baseOrange);
    border-right: none;
    border-left: none;
}
.company-profile__tbl tr td:nth-child(1) {
    border-bottom: none;
    background: var(--baseBeige);
}
section#map {
    background: var(--baseBeige);
    clip-path: var(--shapeCurveSP);
}
section#map .map__info {
    width: 100%;
    max-width: 800px;
    margin-inline: auto;
    margin-bottom: 40px;
    padding: 1em 2em;
    background: var(--White);
    border: 1px solid var(--baseOrange);
    border-radius: 10px;
}
section#map .map__address {
    justify-content: space-evenly;
    flex-direction: column;
    gap: 16px;
}
section#map .map__address .map__photo {
    width: 100%;
    max-width: 240px;
}
section#map iframe {
    display: block;
    margin-inline: auto;
}
section#contactus {
    background: var(--baseBeige);
}
@media screen and (min-width: 769px) {
    .top__aboutus-txt {
        text-align: left;
    }
    .p-step__photoBox div.p-step__photo {
        padding: 0 !important;
    }
    .p-step__photoBox::before,
    .p-step__photoBox::after {
        content: none;
    }
    section#commitment, section#greeting, section#map {
        clip-path: var(--shapeCurvePC);
    }
    section#ryoiku .ryoiku__jidouhattatsu,
    section#ryoiku .ryoiku__dayservice {
        margin-left: 40px;
    }
    section#ryoiku .ryoiku__jidouhattatsu::before,
    section#ryoiku .ryoiku__dayservice::before {
        left: -40px;
    }
    .company-profile__tbl tr td {
        display: table-cell;
        padding: 1.5em 3em;
    }
    .company-profile__tbl tr:nth-child(1) {
        border-top: 1px solid var(--baseOrange);
    }
    .company-profile__tbl tr td:nth-child(1) {
        width: 25%;
        text-align: justify;
        text-align-last: justify;
        border-bottom: 1px solid var(--baseOrange);
        background: none;
    }
    section#map .map__address {
        flex-direction: row;
    }
    section#map .map__address .map__photo {
        max-width: 160px;
    }
    /*電話番号リンクの無効化*/
    a[href^="tel:"] {
        pointer-events: none;
        cursor: default;
        text-decoration: none;
    }
}
@media screen and (min-width: 769px) and (max-width: 1200px) {
    #top__fv-box {
        height: 700px;
        background: url(../images/top/fv-mainphoto_middle.webp) no-repeat center / cover;
    }
    .fv-catch__fig {
        left: 0;
}
    .fv-catchphrase {
        top: 55%;
        width: 100%;
    }
}
@media screen and (min-width: 782px) {
    section#commitment .commitment__Box .commitment__text {
        padding: 3em;
        order: 0;
    }
    section#commitment .commitment__Box .mT-40 {
        margin-top: -40px !important;
    }
    section#commitment .commitment__Box .commitment__text::after {
        width: calc(100% + 80px);
    }
}
@media screen and (min-width: 1201px) {
    #top__fv-box {
        max-width: var(--containerMax);
        height: 700px;
        background: url(../images/top/fv-mainphoto_large.webp) no-repeat center / cover;
    }
    .fv-catch__box, .fv-catch__fig, .fv-catchphrase {
        position: initial;
        width: 100%;
    } 
}
/* -----------------------------------------------------------------
各ページ共通
------------------------------------------------------------------*/
.line__icon {
    position: fixed;
    top: 15px;
    right: 60px;
    z-index: 2100;
}
.instagram__icon {
    position: fixed;
    top: 15px;
    right: 115px;
    z-index: 2100;
}
@media screen and (min-width: 993px) {
    .line__icon {
        top: initial;
        bottom: 240px;
        right: 0;
    }
    .instagram__icon {
        top: initial;
        bottom: 80px;
        right: 0;
    }
}
.contact-btn__box {
    width: 100%;
    max-width: 800px;
    padding: 1em;
    margin-inline: auto;
    display: flex;
    flex-direction: column;
    flex-wrap: nowrap;
    justify-content: space-evenly;
    gap: 10px;
    text-align: center;
    background: var(--White);
    border: 1px solid var(--baseOrange);
    border-radius: 10px;
}
.contact-btn__box figure {
    margin: 0;
}
footer.site-footer {
    background: var(--baseYellow);
    position: relative;
    overflow: visible;
    content-visibility: visible;
}
footer.site-footer::before {
    content: "";
    width: var(--VW100);
    height: 25px;
    background: url(../images/common/wave_yellow.svg) repeat-x center / auto;
    position: absolute;
    bottom: 100%;
    left: 50%;
    transform: translateX(-50%);
}
footer .site-footer-content {
    margin-bottom: 20px;
    padding-bottom: 10px;
}
footer .site-footer-content::after {
    content: "このサイトはGoogle reCAPTCHAによって保護されております";
    width: 100%;
    font-size: 1rem;
    text-align: center;
    background: var(--baseYellow);
    position: absolute;
    top: 100%;
    left: 50%;
    transform: translateX(-50%);
}
@media screen and (min-width: 769px) {
    .contact-btn__box {
        padding: 2em;
        flex-direction: row;
    }
}
/*reCAPTCHAのバッジを非表示に*/
.grecaptcha-badge { 
    visibility: hidden; 
}
/* -----------------------------------------------------------------
はじめてご利用の方へ
------------------------------------------------------------------*/
body.first-time-use h1 {
    text-indent: 100%;
    white-space: nowrap;
    overflow: hidden;
}
body.first-time-use .page-header,
body.first-time-use #breadcrumb.breadcrumb {
    display: none;
}
#first-time-use__fv.page-header {
    display: block;
    width: var(--VW100);
    margin-inline: calc(50% - (var(--VW100) / 2));
    background: var(--baseBeige);
}
#first-time-use__fv .page-header-inner.container {
    width: var(--VW100);
    max-width: 100%;
    height: 400px;
    margin-top: 0;
    margin-bottom: 0;
    background: url(../images/first-time-use/firsttime-use-fv_sp.webp) no-repeat center / cover;
    position: relative;
}
#first-time-use__fv .page-header-inner.container::before {
    content: "";
    display: block;
    width: 100%;
    max-width: 280px;
    height: calc(100% - 20px);
    background: url(../images/first-time-use/firsttime-use-title.svg) no-repeat top / contain;
    position: absolute;
    right: 0;
    bottom: 0;
}
#first-time-use__fv .page-header-inner.container::after {
    content: "";
    width: var(--VW100);
    height: 25px;
    background: url(../images/common/wave_yellow.svg) repeat-x center / auto;
    position: absolute;
    bottom: 0;
    left: 50%;
    transform: translateX(-50%);
}
#first-time-use__fv .ftu__msg {
    width: calc(100% - 30px);
    text-align: left;
    -webkit-text-stroke: 6px var(--White);
    text-stroke: 6px var(--White);
    paint-order: stroke;
    font-size: var(--Font16-18);
    font-weight: 700;
    position: absolute;
    top: 60%;
    left: 50%;
    transform: translateX(-50%);
}
#first-time-use__fv .ftu__msg span {
    display: inline-block;
}
.first-time-use {
    section.service__sec {
        max-width: var(--VW100);
        margin-inline: calc(50% - (var(--VW100) / 2));
        padding-top: 100px;
        padding-bottom: 150px;
        padding-inline: calc((var(--VW100) / 2) - (var(--wp--style--global--content-size) / 2));
    }
    section.program__sec, section.use-child__sec, section.open-time__sec,
    section.price__sec, section.other-cost__sec, section.start-flow__sec,
    section.staff__sec, section.contact__sec {
        max-width: var(--VW100);
        margin-top: -100px;
        margin-inline: calc(50% - (var(--VW100) / 2));
        padding-top: 100px;
        padding-bottom: 150px;
        padding-inline: calc((var(--VW100) / 2) - (var(--wp--style--global--content-size) / 2));
}
section.service__sec {
    background: var(--baseYellow);
}
section.use-child__sec, section.open-time__sec {
    background: var(--baseBeige);
}
section.price__sec, section.staff__sec {
    background: var(--baseYellow);
    position: relative;
}
}
.white__back {
    padding: 2em;
    background: var(--White);
    border-radius: 30px;

    h2 {
        margin-bottom: .5em;
        font-size: var(--Font24);
    }
}
section.program__sec, section.contact__sec {
    background: var(--baseBeige);
    clip-path: var(--shapeCurveSP);
    position: relative;
}
section.program__sec, section.use-child__sec, section.open-time__sec {
    h3 {
        font-size: var(--Font18);
    }
    .contents__container {
        grid-template-columns: repeat(1, minmax(0, 1fr));
    }
    .grid__item1 {
        order: 1;
    }
    .grid__item2 {
        order: 2;
    }
    .grid__item3 {
        order: 3;
    }
    .grid__item4 {
        order: 4;
    }
    .contents__box {
        margin-bottom: 0 !important;
        padding: 2em;
        background: var(--White);
        border: 1px solid var(--baseOrange);
        border-radius: 30px;
    }
}
section.price__sec {
    h3 {
        font-size: var(--Font18);
        font-weight: 500;
        width: fit-content;
        margin-inline: auto;
    }
    .price__box {
        justify-content: center;
        gap: 0;
    }
}
section.other-cost__sec {
    background: var(--White);
    clip-path: var(--shapeCurveSP);
    position: relative;
}
section.price__sec::before,
section.staff__sec::before {
    content: "";
    width: var(--VW100);
    height: 25px;
    background: url(../images/common/wave_yellow.svg) repeat-x center / auto;
    position: absolute;
    bottom: 100%;
    left: 50%;
    transform: translateX(-50%);
}
.start-flowchart .start-flow__item {
    margin-bottom: 50px;
    position: relative;
    
    p {
        width: fit-content;
        margin-inline: auto;
    }
}
.start-flowchart .start-flow__item:not(:last-child)::before {
    content: "";
    height: calc(40px / 2);
    width: 40px;
    background: var(--baseOrange);
    clip-path: polygon(0 0, 100% 0, 50% 100%);
    position: absolute;
    top: calc(100% + 10px);
    left: 50%;
    transform: translateX(-50%);
}
section.staff__sec {
    .staff__list {
        display: block;
    }
    .staff__item {
        display: flex;
        align-items: center;
        margin: 0 0 20px !important;
        padding: 1em;
        background: var(--White);
        border-radius: 20px;

        figure {
            text-align: center;
        }
    }
    .staff__text {
        width: 80%;
        padding-left: 10px;
    }
}
@media screen and (min-width: 561px) {
    #first-time-use__fv .page-header-inner.container::before {
        max-width: 100%;
        height: 100%;
        background: url(../images/first-time-use/firsttime-use-title.svg) no-repeat center / auto;
        position: initial;
    }
}
@media screen and (min-width: 769px) {
    #first-time-use__fv .ftu__msg {
        width: fit-content;
    }
    section.program__sec, section.other-cost__sec {
        clip-path: var(--shapeCurvePC);
    }
    section.program__sec, section.use-child__sec, section.open-time__sec {
        .contents__container {
            grid-template-columns: repeat(2, minmax(0, 1fr));
        }
        .grid__item1 {
            order: 1;
        }
        .grid__item2 {
            order: 3;
        }
        .grid__item3 {
            order: 2;
        }
        .grid__item4 {
            order: 4;
        }
    }
    section.staff__sec {
        .staff__list {
            width: 100%;
            max-width: 800px;
            display: flex;
            flex-wrap: wrap;
            justify-content: center;
            gap: 25px;
        }
        .staff__item {
            display: block;
            width: 33.3333%;
            max-width: 250px;
        }
        .staff__text {
            width: 100%;
            padding-left: 0;

            p {
                width: fit-content;
                margin-inline: auto;
            }
        }
    }
}
@media screen and (min-width: 769px) and (max-width: 1200px) {
    #first-time-use__fv .page-header-inner.container {
        height: 400px;
        background: url(../images/first-time-use/firsttime-use-fv_middle.webp) no-repeat left / cover;
    }
}
@media screen and (min-width: 1201px) {
    #first-time-use__fv .page-header-inner.container {
        max-width: var(--containerMax);
        height: 400px;
        background: url(../images/first-time-use/firsttime-use-fv_large.webp) no-repeat center / cover;
    }
}
/* -----------------------------------------------------------------
お問い合わせ
------------------------------------------------------------------*/
body.contactus h1 {
    text-indent: 100%;
    white-space: nowrap;
    overflow: hidden;
}
body.contactus .page-header {
    display: block;
}
body.contactus .page-header-inner.container {
    width: var(--VW100);
    max-width: 100%;
    height: 400px;
    margin-top: 0;
    margin-bottom: 0;
    background: url(../images/contactus/contactus-fv_sp.webp) no-repeat center / cover;
    position: relative;
}
body.contactus .page-header-inner.container::before {
    content: "";
    display: block;
    width: 100%;
    height: 100%;
    background: url(../images/contactus/contactus-title_sp.svg) no-repeat center / auto;
}
body.contactus .page-header-inner.container::after {
    content: "";
    width: var(--VW100);
    height: 25px;
    background: url(../images/common/wave_white.svg) repeat-x center / auto;
    position: absolute;
    bottom: 0;
    left: 50%;
    transform: translateX(-50%);
}
.contactus__title {
    display: block;
    text-align: center;
    position: relative;
}
form#contactForm {
    margin-bottom: 5rem;

    label.required {
        color: initial;
    }
    label.required::after {
        content: "必須";
        margin-left: .5em;
        padding: 1px 5px;
        font-size: .8em;
        font-weight: bold;
        color: #fff;
        background-color: var(--baseOrange);
        border-radius: 5px;
    }
    .input-item {
        margin-bottom: 5rem;
    }
    .input-item label {
        font-size: var(--Font16);
    }
    .input-item input {
        padding: 1.2rem;
        font-size: var(--Font18);
    }
    .input-item textarea {
        min-height: 8lh;
        field-sizing: content;
        font-size: var(--Font18);
        line-height: 1.5;
        resize: none;
    }
    .input-item input:focus,
    .input-item textarea:focus {
        box-shadow: 0 0 0 4px rgba(35, 167, 195, 0.3);
        outline: 0;
    }
    .cf-policy {
        width: fit-content;
        margin: 0 auto 4rem;
        font-size: var(--Font14);
    }
    .cf-policy a {
        color: var(--baseBlue);
        border-bottom: 1px solid var(--baseBlue);
        cursor: pointer;
    }
    .form-send {
        display: grid;
        place-items: center;
    }
    .form-send input#submitBtn {
        padding: 1rem 1em;
        font-size: var(--Font18);
        font-weight: 600;
        color: var(--White);
        background: var(--baseOrange);
        border: 1px solid var(--baseOrange);
        border-radius: 18px;
        cursor: pointer;
        transition: all 0.3s;
        position: relative;;
    }
    .form-send input#submitBtn:hover {
        box-shadow: 0 0 10px 8px rgba(255, 115, 0, 0.3);
        outline: 0;
    }
    span.wpcf7-spinner {
        display: none;
    }
}
.input-item__long {
	width: 450px;
}
.wpcf7 #contactForm .wpcf7-response-output {
	display: none !important;
}
body.contact-thanks {
    h1 {
        text-indent: 100%;
        white-space: nowrap;
        overflow: hidden;
    }
    .page-header-inner.container {
        width: var(--VW100);
        max-width: 100%;
        height: 290px;
        margin-top: 0;
        margin-bottom: 0;
        background: var(--baseBeige);
        position: relative;
    }
    .page-header-inner.container::before {
        content: "";
        display: block;
        width: 100%;
        height: 100%;
        background: url(../images/contactus/contact-thanks-title.svg) no-repeat center / contain;
    }
    .page-header-inner.container::after {
        content: "";
        width: var(--VW100);
        height: 25px;
        background: url(../images/common/wave_white.svg) repeat-x center / auto;
        position: absolute;
        bottom: 0;
        left: 50%;
        transform: translateX(-50%);
    }
}
@media screen and (min-width: 769px) {
    body.contactus .page-header-inner.container {
        background: url(../images/contactus/contactus-fv_pc.webp) no-repeat center / cover;
    }
    body.contactus .page-header-inner.container::before {
        background: url(../images/contactus/contactus-title_pc.svg) no-repeat center / auto;
    }
}
/* -----------------------------------------------------------------
404エラー
------------------------------------------------------------------*/
body.error404 {
    h1 {
        text-indent: 100%;
        white-space: nowrap;
        overflow: hidden;
    }
    .page-header-inner.container {
        width: var(--VW100);
        max-width: 100%;
        height: 290px;
        margin-top: 0;
        margin-bottom: 0;
        background: var(--baseBeige);
        position: relative;
    }
    .page-header-inner.container::before {
        content: "";
        display: block;
        width: 100%;
        height: 100%;
        background: url(../images/common/err404-title.svg) no-repeat center / contain;
    }
    .page-header-inner.container::after {
        content: "";
        width: var(--VW100);
        height: 25px;
        background: url(../images/common/wave_white.svg) repeat-x center / auto;
        position: absolute;
        bottom: 0;
        left: 50%;
        transform: translateX(-50%);
    }
}
/* -----------------------------------------------------------------
バリデーションエンジンのエラーメッセージカスタマイズ
------------------------------------------------------------------*/
.formError .formErrorContent {
    font-size: 13px;
}
@media (min-width: 769px) {
    .form-head {
        margin: 0 auto 4rem;
    }
    form {
        width: 70%;
        min-width: 500px;
        margin: 0 auto;
    }
    #contact-thanks .tel-btn {
        display: block;
        width: fit-content;
        margin: 30px 0;
    }
    #contact-thanks .tel-btn a::before {
        content: "";
        padding-left: 40px;
        background: url(../images/common/tel-icon-pc.svg) no-repeat;
        background-position-y: 50%;
        background-size: 28px auto;   
    }
    #contact-thanks .section_inner p {
        text-align: center;
    }
}
/* -----------------------------------------------------------------
ブログページ（投稿ページ）
------------------------------------------------------------------*/
body.single.single-post,
body.archive.category {
    .site-body {
        padding: 2rem 0 2rem !important;
    }
    .page-header {
        display: none;
    }
    #main.main-section {
        padding-bottom: 4rem;

        article {
            header.entry-header {
                padding-bottom: .5em;
                border-bottom: 2px dashed var(--baseOrange);
            }
            .wp-block-media-text {
                margin-bottom: 1em;
            }
        }
        .card-img-overlay span.vk_post_imgOuter_singleTermLabel,
        p.vk_post_excerpt.media-text {
            display: none;
        }
    }
    .sub-section {
        margin-bottom: 4rem;

        ul.wp-block-categories-list.wp-block-categories-taxonomy-category.wp-block-categories {
            font-size: .875em;
            padding-left: 1em;
            
            li {
                margin-top: .5em;
                list-style: none;
            
                a {
                    text-decoration: none;
                }
            }
        }
        ul.wp-block-latest-posts__list.wp-block-latest-posts {
            li {
                padding: .5em 0;
                border-bottom: 1px dotted var(--baseOrange);
            }
            .wp-block-latest-posts__featured-image a {
                display: inline-block;
                width: 100%;
                text-decoration: none;
            }
        }
    }
}
body.single.single-post {
    .site-body-container.container {
        padding-bottom: 4rem;
    }
    .vk_posts.next-prev {
        .card {
            border: none;

            a:hover {
                color: var(--baseOrange);
            }
        }
        .vk_post_imgOuter {
            display: none;
            background: none !important;
            position: initial;
        }
        .card-intext .card-intext-inner .vk_post_body {
            position: relative;
            height: 100%;
            padding-top: 4em;
            background: none;

            .vk_post_title, div {
                color: var(--baseBlack);
            }
        }
        .vk_post-postType-post.card-intext.next-prev-prev::before {
            content: "前の記事";
            position: absolute;
            top: 0;
            left: 0;
            font-size: var(--Font14);
            color: var(--baseOrange);
        }
        .vk_post-postType-post.card-intext.next-prev-next::before {
            content: "次の記事";
            position: absolute;
            top: 0;
            left: 0;font-size: var(--Font14);
            color: var(--baseOrange);
        }
    }
}
body.archive.category {
    .vk_post.media {
        border-bottom: 1px dotted var(--baseOrange);
    }
    .vk_post.media:first-child {
        border-top: 1px dotted var(--baseOrange);
    }
}
/* -----------------------------------------------------------------
WordPressのスタイルを上書き
------------------------------------------------------------------*/
h2 {
    font-size: var(--Font24-32);
}
body.home .site-body,
body.first-time-use .site-body {
    margin-top: 0 !important;
    padding-top: 0;
    padding-bottom: 0;
}
body.device-mobile .site-header,
.header_scrolled .site-header {
    position: fixed;
}
body.device-mobile #breadcrumb.breadcrumb {
    padding-top: 65px;
}
@media (width <= 992px) {
    .main-section {
        margin-bottom: 0;
    }
    .site-header-logo img {
        margin-left: 0;
    }
}
header#site-header.site-header {
    background: var(--baseBeige);
    box-shadow: none;
}
.header_scrolled .site-header-logo {
    display: block;
}
nav#global-nav ul.global-nav-list li:last-child,
nav.vk-mobile-nav-menu-outer ul li:last-child {
    background: var(--baseOrange);
}
@media (992px < width) {
    .site-header--layout--nav-float .site-header-logo {
        margin-right: 1em;
        width: 100%;
        max-width: 280px;
    }
    .device-pc .global-nav-list > li > a {
        padding: 14px .5em;
    }
    .header_scrolled .site-header .global-nav {
        margin-right: 0;
    }
}
.vk-mobile-nav-menu-btn {
    top: 15px;
    left: 5px;
    border: none;
    width: 40px;
    height: 40px;
}
.vk-mobile-nav {
    padding-top: 70px;
}
.vk-mobile-nav-menu-btn {
    border: none;
    background: url(../images/common/nav-menu-btn_open.svg) no-repeat center 50% / contain;
}
.vk-mobile-nav-menu-btn.menu-open {
    border: none;
    background: url(../images/common/nav-menu-btn_close.svg) no-repeat center 50% / contain;
}
div.site-footer-content {
    h2 {
        font-size: var(--Font20-24);
    }
    aside#recent-posts-2 {
        h4.site-footer-title {
            margin-bottom: 0;
            font-size: 1.4rem;
        }
        ul li {
            a {
                display: inline-block;
                width: 100%;
                font-size: 1.4rem;
                color: var(--baseBlack);
                text-decoration: none;
            }
        }
        .post-date {
            font-size: 1.2rem
        }
    }
}

div.footer__navi ul li a {
    font-size: var(--Font14-16);
    color: var(--baseBlack);
    border-bottom: none;
    padding-left: 20px;
    position: relative;
}
div.footer__navi ul li a::before {
    content: "";
    background: url(../images/common/footer-navi_icon.svg) no-repeat left / contain;
    position: absolute;
    width: 10px;
    height: 10px;
    top: 50%;
    left: 0;
    transform: translateY(-50%);
}
.localNavi>div>ul li a:hover, .localNavi>div>ul li.current-cat>a, .localNavi>div>ul li.current_page_item>a, .localNavi>ul li a:hover, .localNavi>ul li.current-cat>a, .localNavi>ul li.current_page_item>a, .widget .localNavi>div>ul li a:hover, .widget .localNavi>div>ul li.current-cat>a, .widget .localNavi>div>ul li.current_page_item>a, .widget .localNavi>ul li a:hover, .widget .localNavi>ul li.current-cat>a, .widget .localNavi>ul li.current_page_item>a, .widget_archive>div>ul li a:hover, .widget_archive>div>ul li.current-cat>a, .widget_archive>div>ul li.current_page_item>a, .widget_archive>ul li a:hover, .widget_archive>ul li.current-cat>a, .widget_archive>ul li.current_page_item>a, .widget_categories>div>ul li a:hover, .widget_categories>div>ul li.current-cat>a, .widget_categories>div>ul li.current_page_item>a, .widget_categories>ul li a:hover, .widget_categories>ul li.current-cat>a, .widget_categories>ul li.current_page_item>a, .widget_link_list>div>ul li a:hover, .widget_link_list>div>ul li.current-cat>a, .widget_link_list>div>ul li.current_page_item>a, .widget_link_list>ul li a:hover, .widget_link_list>ul li.current-cat>a, .widget_link_list>ul li.current_page_item>a, .widget_nav_menu>div>ul li a:hover, .widget_nav_menu>div>ul li.current-cat>a, .widget_nav_menu>div>ul li.current_page_item>a, .widget_nav_menu>ul li a:hover, .widget_nav_menu>ul li.current-cat>a, .widget_nav_menu>ul li.current_page_item>a, .widget_pages>div>ul li a:hover, .widget_pages>div>ul li.current-cat>a, .widget_pages>div>ul li.current_page_item>a, .widget_pages>ul li a:hover, .widget_pages>ul li.current-cat>a, .widget_pages>ul li.current_page_item>a, .widget_postlist>div>ul li a:hover, .widget_postlist>div>ul li.current-cat>a, .widget_postlist>div>ul li.current_page_item>a, .widget_postlist>ul li a:hover, .widget_postlist>ul li.current-cat>a, .widget_postlist>ul li.current_page_item>a {
    background-color: initial;
}
.site-footer-copyright p:nth-child(2) {
    display: none;
}
@media screen and (max-width: 992px) {
    ul.vk-menu-acc.vk-menu-acc-active {
        display: flex;
        flex-wrap: wrap;
    }
    ul.vk-menu-acc.vk-menu-acc-active li.menu-item.menu-item-type-custom,
    ul.vk-menu-acc.vk-menu-acc-active li.menu-item.menu-item-type-post_type {
        width: 50%;
        text-align: center;
    }
}
@media screen and (max-width: 1200px) {
    header#site-header.site-header #site-header-container {
        max-width: var(--VW100);
        padding-right: 0;
    }
    .global-nav-list li img {
        min-width: 75px;
    }
}