@charset "UTF-8";

/*!
Theme Name: Cocoon Child
Description: Cocoon専用の子テーマ
Theme URI: https://wp-cocoon.com/
Author: わいひら
Author URI: https://nelog.jp/
Template:   cocoon-master
Version:    1.1.3
*/

/************************************
** 子テーマ用のスタイルを書く
************************************/
/*必要ならばここにコードを書く*/
html {
	font-family: 'Mochiy Pop P One', sans-serif;
	font-size: 10px;
	box-sizing: border-box;
	background-color: #F4F4F4;
}

body {
	font-size: 1.8rem;
	line-height: 2.4;
}

.header-container, .main, .sidebar, .footer {
	background-color: #F4F4F4;
}

img {
	width: 100%;
}

a {
	text-decoration: none;
}

p {
	margin-top: 32px;
	margin-bottom: 0;
}

.faq-answer-content p,
.tab-caption-box-content p {
	margin-top: 0;
}

li {
	list-style: none;
}

.sp {
	display: none;
}

span.newline {
	display: inline-block;
}

/* 見出しリセット */
/* 見出し2 */
.article h2,
.sidebar h2 {
	background: none;
	padding: 0;
}

/* 見出し3 */
.article h3,
.sidebar h3 {
	border-top: none;
	border-bottom: none;
	border-left: none;
	border-right: none;
	padding: 0;
}

/* 見出し4 */
.article h4,
.sidebar h4 {
	border-top: none;
	border-bottom: none;
	margin: 64px 0 0;
	padding: 0;
}

/* 見出し5 */
.article h5,
.sidebar h5 {
	border-bottom: none;
	margin: 64px 0 0;
	padding: 0;
}

/* 見出し6 */
.article h6,
.sidebar h6 {
	border-bottom: none;
	margin: 64px 0 0;
	padding: 0;
}

h2,
.article h2 {
	margin: 120px 0 0;
	color: #c40a03;
	font-size: 4.8rem;
	font-weight: bold;
	text-align: center;
	text-shadow: 12px 12px 3px rgba(0, 0, 0, 0.2);
}

h2.white-title {
	color: #ffffff;
	text-shadow: none;
}

.widget h2 {
	font-size: 2.4rem;
}

h3,
.article h3 {
	position: relative;
	width: fit-content;
	margin: 96px 0 0 40px;
	padding: 16px 40px;
	border-radius: 16px;
	background: #FFFBCF;
	color: #000000;
	font-weight: bold;
	font-size: 3.2rem;
}

h3::before,
.article h3::before {
	font: var(--fa-font-solid);
	content: "\f25a";
	display: inline-block;
	position: absolute;
	top: -32%;
	left: -8%;
	padding: 0;
	color: #ffffff;
	background: #c40a03;
	width: 56px;
	height: 56px;
	border-radius: 20%;
	text-align: center;
	line-height: 56px;
	font-size: 4rem;
	transform: rotate(130deg);
}

h4,
.article h4,
#selectPlan .g-mb-12 {
	position: relative;
	margin: 64px 0 0;
	font-weight: bold;
	font-size: 2.8rem;
}

h4::after,
.article h4::after,
#selectPlan .g-mb-12::after {
	content: "";
	display: block;
	height: 4px;
	background: -moz-linear-gradient(to right, rgb(226, 135, 150), transparent);
	background: -webkit-linear-gradient(to right, rgb(226, 135, 150), transparent);
	background: linear-gradient(to right, rgb(226, 135, 150), transparent);
}

.bottom-space {
	margin-bottom: 120px !important;
}

.contents-wrapper,
.entry-content {
	max-width: 900px;
	margin: auto;
}

/* cocoonの初期値を変更 */
.header-container,
.page .date-tags,
.front-top-page #main .entry-title,
.new-template-default #comment-area,
.new-template-default #related-entries {
	display: none;
}

.entry-header {
	position: relative;
	padding: 16px 16px 16px 48px;
	border-bottom: 2px solid #c40a03;
}

.entry-header::before {
	content: "■";
	font-size: 200%;
	position: absolute;
	color: #c40a03;
	top: -30px;
	left: 0.5px;
	width: 18px;
	height: 19px;
}

.entry-header::after {
	content: "■";
	font-size: 200%;
	position: absolute;
	color: #ffb6c1;
	top: -19px;
	left: 9px;
	width: 15px;
	height: 15px;
}

.sidebar {
	padding: 0 19px;
}

#searchPlan {
	width: 100%;
}

/* ギャラリー画像を拡大しない */
.wp-block-gallery .wp-block-image {
	flex-grow: 0 !important;
}

.caption-box-content {
	padding: 0.8em;
}

#content .wp-block-cocoon-blocks-caption-box-1 {
	margin-bottom: 96px;
}

.wp-block-gallery,
.wp-block-cocoon-blocks-tab-caption-box-1 {
	margin-top: 24px;
}

table tr:nth-of-type(2n+1) {
	background-color: #FFFBCF;
}

.breadcrumb {
	font-size: 1.6rem;
}

.breadcrumb span.sp {
	display: none;
}

.mobile-menu-buttons {
	top: 0;
	bottom: auto;
}
/* cocoonの初期値を変更ここまで */

/* Loading wrap */
/************************************
** ローディング画面を表示する
************************************/
/*枠組み*/
.loader-wrap {
	z-index: 99999;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	height: 100%;
	overflow: hidden;
}

.loader {
	position: relative;
	height: 80px;
	background: no-repeat bottom/contain url("./img/loading-anime-car.png");
	border-radius: 10px 10px 0 0;
	animation: sway 0.5s infinite alternate;
}

@keyframes sway {
	0% {
		transform: translateY(0);
	}
	100% {
		transform: translateY(-10px);
	}
}

.wrap {
	width: 100%;
}

.sidebar {
	width: 24%;
}

.main {
	width: 76%;
	padding: 20px 0;
	background-image: radial-gradient(rgba(255, 182, 193, 0.2) 10%, transparent 20%), radial-gradient(rgba(
		255, 182, 193, 0.2) 10%, transparent 20%);
	background-position: 0 0, 10px 10px;
	background-size: 20px 20px;
	/*background: url("http://demo2.aspla.jp/wp-content/uploads/2023/07/original.png") repeat center top / contain;*/
}

.speech-person {
	width: 24%;
}

div.speech-balloon {
	padding: 24px;
	font-family: 'Kosugi Maru', sans-serif;
	font-size: 2.4rem;
}


/* サイドバーの検索フォーム */
.side form {
	display: flex;
	flex-direction: column;
	padding: 40px 24px;
	border-radius: 32px;
	background-color: #C40A03;
	color: #ffffff;
}

.side .submit-button {
	position: relative;
	margin-top: 24px;
}

.side .submit-button input[type='submit'] {
	border: none;
	background-color: #FFFBCF;
	font-size: 1.6rem;
	box-shadow: 8px 8px #000000;
}

.side .submit-button::after {
	font: var(--fa-font-solid);
	content: '\f002';
	position: absolute;
	top: 50%;
	right: 8%;
	transform: translateY(-50%);
	color: #333333;
}

/* サイドバーのピックアッププラン */
.side .pickup-plan,
.side .pickup-plan-wrap {
	display: flex;
	flex-direction: column;
	align-items: center;
}

.side .pickup-plan-wrap img {
	width: 240px;
	margin-top: 24px;
	border-radius: 32px;
}

.button {
	display: inline-block;
	position: relative;
	width: 160px;
	margin-top: 16px;
	border: solid 1px #707070;
	border-radius: 100px;
	background-color: #FFFBCF;
	color: #333333;
	font-weight: bold;
	text-align: center;
	box-shadow: 4px 4px #000000;
}

.button:hover,
.recommendation-content a:hover {
	opacity: 0.6;
	transition: 0.4s;
	color: #707070;
}

.button::after {
	font: var(--fa-font-solid);
	content: '\f054';
	position: absolute;
	top: 50%;
	right: 8%;
	transform: translateY(-50%);
}

#faq a.button {
	width: 240px;
	margin-top: 64px;
	padding: 8px 32px;
	border: none;
}

#content a.button {
	display: block;
	margin: 48px auto 24px;
	padding: 8px 32px;
}

#content a.conversion-button {
	display: block;
	position: relative;
	width: 360px;
	margin: auto;
	padding: 24px 0;
	font-weight: bold;
	border-radius: 10px;
	color: #2FA6C2;
	border: 3px solid #2FA6C2;
	box-shadow: 5px 5px #2FA6C2;
	font-size: 2.4rem;
	text-align: center;
	vertical-align: middle;
	text-decoration: none;
	transition: 0.3s ease-in-out;
}

#content a.conversion-button:hover {
	box-shadow: none;
	transform: translate(5px, 5px);
	color: #2FA6C2;
}

/* ヘッダー */
header#top-header {
	position: relative;
	width: 100%;
	height: 650px;
}

header#top-header .main-visual {
	position: absolute;
	top: 80px;
	right: 0;
	width: 35vw;
}

header#top-header .header-text {
	position: absolute;
	top: 0;
	left: 0;
	margin-left: 24px;
	line-height: 1;
}

header#top-header .header-text h1 {
	width: 100%;
	font-size: 5.6rem;
}

header#top-header .header-text p {
	width: max-content;
	border-radius: 16px;
	text-shadow: 2px 2px 3px rgba(255, 255, 255, 0.2);
	font-size: 2.4rem;
}

header#top-header .header-text p span {
	padding-left: 8px;
	color: #FFCB05;
	font-family: 'M PLUS 1', sans-serif;
	font-size: 5.6rem;
	font-weight: 900;
	text-shadow: 1px 1px 1px #000000, -1px 1px 1px #000000, 1px -1px 1px #000000, -1px -1px 1px #000000, 1px 1px 1px #000000, -1px 1px 1px #000000, 1px -1px 1px #000000, -1px -1px 1px #000000
}

header#top-header .navigation-menu {
	display: flex;
	justify-content: center;
	gap: 12px;
	position: absolute;
	bottom: -24px;
	left: 50%;
	transform: translateX(-50%);
	width: 100%;
	padding-left: 0;
	font-size: 1.8rem;
}

header#top-header .navigation-menu li {
	width: 148px;
}

header#top-header .navigation-menu li a {
	display: flex;
	flex-direction: column;
	width: 100%;
	padding: 16px 12px 8px;
	background-color: #ffffff;
	color: #333333;
	border: solid 1px #707070;
	border-radius: 16px;
	text-align: center;
}

header#top-header .navigation-menu li a:hover {
	color: #000000;
	background-color: #FFFBCF;
	transition: 0.2s;
}

header#top-header .navigation-menu li a img {
	width: 80%;
	margin: 0 auto 8px;
}

/* 免許取得は合宿がオススメ */
/* 斜め背景右上がり */
#recommendation {
	position: relative;
	width: 100%;
	margin: 0;
	padding: 32px 0;
	z-index: 1;
}

#recommendation::before {
	content: '';
	position: absolute;
	top: 0;
	bottom: 0;
	left: 0;
	right: 0;
	background-color: #C40A03;
	transform: skewY(-7deg);
	z-index: -1;
}

/* 斜め背景ここまで */

#recommendation h2 {
	transform: skewY(-7deg);
}

#recommendation .recommendation-wrap {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 32px;
	margin: 96px auto;
	transform: skewY(-7deg);
}

#recommendation .recommendation-content {
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-items: center;
	width: 48%;
}

#recommendation .recommendation-content img {
	width: 80%;
	-webkit-mask-image: url('img/mask.png');
	-webkit-mask-repeat: no-repeat;
	-webkit-mask-position: 50% 50%;
	-webkit-mask-size: auto 100%;
	mask-image: url('img/mask.png');
	mask-repeat: no-repeat;
	mask-position: 50% 50%;
	mask-size: auto 100%;
	transform: skewY(7deg);

}

#recommendation .recommendation-content a {
	margin-top: 12px;
	padding: 8px 32px;
	border: solid 4px #ffffff;
	border-radius: 100px;
	color: #ffffff;
	font-size: 2rem;
}

/* カスタム投稿 - 新着 */
#faq .new {
	display: flex;
	justify-content: center;
	gap: 16px;
}

#faq .new-contents {
	display: flex;
	flex-direction: column;
	line-height: 1.6;
}

#faq .new-contents a {
	color: #333333;
}

#faq .new-contents a:hover {
	opacity: 0.6;
}

#faq .new-contents img {
	width: auto;
	max-height: 400px;
}

#faq .new-contents h2,
.post-type-archive-new h2 {
	margin: 0;
	font-size: 2rem;
	text-align: left;
	text-shadow: none;
}

/* よくある質問 */
#faq .contents-wrapper,
#acquisition-flow,
#difference,
#contact .contents-wrapper {
	display: flex;
	flex-direction: column;
	align-items: center;
	margin: auto;
}

#faq a.main-button {
	width: 240px;
	margin-top: 64px;
	padding: 8px 32px;
	border: none;
	background-color: #FFFBCF;
	font-size: 2rem;
	box-shadow: 4px 4px #000000;
}

#faq a.button::after {
	font: var(--fa-font-solid);
	content: '\f054';
	position: absolute;
	top: 50%;
	right: 8%;
	transform: translateY(-50%);
}

/* 申し込みの流れ */
/* 斜め背景右下がり */
#application-flow {
	display: flex;
	flex-direction: column;
	align-items: center;
	position: relative;
	width: 100%;
	margin: 0;
	padding: 32px 0;
}

#application-flow::before {
	content: '';
	position: absolute;
	top: 0;
	bottom: 0;
	left: 0;
	right: 0;
	background-color: #C40A03;
	transform: skewY(7deg);
	z-index: -1;
}

/* 斜め背景ここまで */

#application-flow img.megaphone {
	display: block;
	width: 385px;
	margin: 24px auto;
}

#application-flow img.path {
	max-width: 100%;
	padding-bottom: 80px;
}

/* 入校から免許取得までの流れ */
#acquisition-flow img {
	width: 100%;
	margin-top: 64px;
}

/* 合宿免許オンラインはココが違う！ */
/* 斜め背景右上がり */
#difference h2 {
	position: relative;
	width: 100%;
	margin: 0;
	padding: 32px 0;
	transform: skewY(-7deg);
}

#difference h2::before {
	content: '';
	position: absolute;
	top: 0;
	bottom: 0;
	left: 0;
	right: 0;
	background-color: #C40A03;
	z-index: -1;
}

/* 斜め背景ここまで */

#difference p {
	margin-top: 120px;
}

#difference .difference-wrap {
	display: flex;
	justify-content: space-between;
}

#difference .difference-wrap .difference-content {
	display: flex;
	flex-direction: column;
	align-items: center;
	font-weight: bold;
	font-size: 2rem;
	z-index: 1;
}

.difference-wrap .difference-content:nth-child(1) {
	padding-top: 72px;
}

.difference-wrap .difference-content:nth-child(2) {
	padding-top: 45px;
}

.difference-wrap .difference-content:nth-child(3) {
	padding-top: 18px;
}

#difference .difference-wrap .difference-content img {
	margin-top: 24px;
	width: 196px;
}

#difference .difference-wrap .difference-content p {
	margin-top: 12px;
	color: #ffffff;
	line-height: 1.6;
}

#difference .difference-wrap .difference-content span {
	font-size: 4rem;
}

/* ココが違う！の説明 */
#difference .difference-flow {
	position: relative;
	max-width: 900px;
	z-index: 1;
}

#difference .difference-flow p {
	margin-top: 64px;
	color: #ffffff;
	font-weight: bold;
	font-size: 2.4rem;
	text-align: center;
}

.difference-flow img:nth-of-type(3) {
	display: block;
	width: 250px;
	margin: auto;
}

/* 斜め背景右上がり */
#difference .under-line {
	position: relative;
	width: 100%;
	margin: 0;
	padding: 32px 0;
	transform: skewY(-7deg);
}

#difference .under-line::before {
	content: '';
	position: absolute;
	top: -136px;
	bottom: -1240px;
	left: 0;
	right: 0;
	background-color: #C40A03;
	z-index: -1;
}

/* 斜め背景ここまで */

/* お問い合わせ */
#contact a.button {
	width: 240px;
	margin-top: 64px;
	padding: 8px 32px;
	border: none;
	background-color: #FFFBCF;
	font-size: 2rem;
	box-shadow: 4px 4px #000000;
}

#contact img {
	width: 40px;
	padding-right: 8px;
	transform: translateY(20%);
}

table.contact-form {
	background-color: #ffffff;
}

table.contact-form tr:nth-of-type(2n+1) {
	background-color: #ffffff;
}

table.contact-form th {
	background-color: #FFFBCF;
}

.contact-form p {
	text-align: left;
	padding: 0 16px;
}

.mark {
	margin-right: 8px;
	padding: 4px 6px;
	color: #ffffff;
	border-radius: 4px;
	background-color: #C40A03;
	font-size: 14px;
	text-align: center;
}

/* フッター */
.navi-footer-in > .menu-footer li {
	border-left: none;
}

.navi-footer-in > .menu-footer li:last-child {
	border-right: none;
}

footer#footer {
	padding-top: 80px;
	background-color: #C40A03;
	color: #ffffff;
}

footer#footer ul li a {
	padding: 0 32px;
	color: #ffffff;
}

footer#footer ul li a:hover {
	color: #000000;
}

footer#footer .copyright {
	margin-top: 80px;
}

/* スライドインのアニメーション */
/* 左からスライドしながら表示 */
.slideInLeft {
	-webkit-animation-fill-mode: both;
	-ms-animation-fill-mode: both;
	animation-fill-mode: both;
	-webkit-animation-duration: 0.4s;
	-ms-animation-duration: 0.4s;
	animation-duration: 0.4s;
	-webkit-animation-name: slideInLeftShake;
	animation-name: slideInLeftShake;
	visibility: visible !important;
}

@-webkit-keyframes slideInLeftShake {
	0% {
		opacity: 0;
		-webkit-transform: translateX(-240px);
		-ms-transform: translateX(-240px);
		transform: translateX(-240px);
	}
	60% {
		-webkit-transform: translateX(4px);
		-ms-transform: translateX(4px);
		transform: translateX(4px);
	}
	70% {
		-webkit-transform: translateX(-2px);
		-ms-transform: translateX(-2px);
		transform: translateX(-2px);
	}
	80% {
		-webkit-transform: translateX(2px);
		-ms-transform: translateX(2px);
		transform: translateX(2px);
	}
	90% {
		-webkit-transform: translateX(-1px);
		-ms-transform: translateX(-1px);
		transform: translateX(-1px);
	}
	100% {
		opacity: 1;
		-webkit-transform: translateX(0);
		-ms-transform: translateX(0);
		transform: translateX(0);
	}
}

@keyframes slideInLeftShake {
	0% {
		opacity: 0;
		-webkit-transform: translateX(-240px);
		-ms-transform: translateX(-240px);
		transform: translateX(-240px);
	}
	60% {
		-webkit-transform: translateX(4px);
		-ms-transform: translateX(4px);
		transform: translateX(4px);
	}
	70% {
		-webkit-transform: translateX(-2px);
		-ms-transform: translateX(-2px);
		transform: translateX(-2px);
	}
	80% {
		-webkit-transform: translateX(2px);
		-ms-transform: translateX(2px);
		transform: translateX(2px);
	}
	90% {
		-webkit-transform: translateX(-1px);
		-ms-transform: translateX(-1px);
		transform: translateX(-1px);
	}
	100% {
		opacity: 1;
		-webkit-transform: translateX(0);
		-ms-transform: translateX(0);
		transform: translateX(0);
	}
}

/* 右からスライドしながら表示 */
.slideInRight {
	-webkit-animation-fill-mode: both;
	-ms-animation-fill-mode: both;
	animation-fill-mode: both;
	-webkit-animation-duration: 0.4s;
	-ms-animation-duration: 0.4s;
	animation-duration: 0.4s;
	-webkit-animation-name: slideInRightShake;
	animation-name: slideInRightShake;
	visibility: visible !important;
}

@-webkit-keyframes slideInRightShake {
	0% {
		opacity: 0;
		-webkit-transform: translateX(240px);
		-ms-transform: translateX(240px);
		transform: translateX(240px);
	}
	60% {
		-webkit-transform: translateX(-4px);
		-ms-transform: translateX(-4px);
		transform: translateX(-4px);
	}
	70% {
		-webkit-transform: translateX(2px);
		-ms-transform: translateX(2px);
		transform: translateX(2px);
	}
	80% {
		-webkit-transform: translateX(-2px);
		-ms-transform: translateX(-2px);
		transform: translateX(-2px);
	}
	90% {
		-webkit-transform: translateX(1px);
		-ms-transform: translateX(1px);
		transform: translateX(1px);
	}
	100% {
		opacity: 1;
		-webkit-transform: translateX(0);
		-ms-transform: translateX(0);
		transform: translateX(0);
	}
}

@keyframes slideInRightShake {
	0% {
		opacity: 0;
		-webkit-transform: translateX(240px);
		-ms-transform: translateX(240px);
		transform: translateX(240px);
	}
	60% {
		-webkit-transform: translateX(-4px);
		-ms-transform: translateX(-4px);
		transform: translateX(-4px);
	}
	70% {
		-webkit-transform: translateX(2px);
		-ms-transform: translateX(2px);
		transform: translateX(2px);
	}
	80% {
		-webkit-transform: translateX(-2px);
		-ms-transform: translateX(-2px);
		transform: translateX(-2px);
	}
	90% {
		-webkit-transform: translateX(1px);
		-ms-transform: translateX(1px);
		transform: translateX(1px);
	}
	100% {
		opacity: 1;
		-webkit-transform: translateX(0);
		-ms-transform: translateX(0);
		transform: translateX(0);
	}
}

/* プラン検索結果 */
#selectPlan .hotelPlanBlock {
	margin-bottom: 32px;
	padding: 32px;
	border: 8px solid #C40A03;
	border-radius: 16px;
	background: #ffffff;
}

#selectPlan ul {
	padding: 0;
}

#selectPlan h3 {
	margin: 0;
	padding: 5px 20px;
	border-left: 10px solid #C40A03;
	border-bottom: 1px solid #cccccc;
	border-radius: 0;
}

#selectPlan h3::before {
	display: none;
}

#selectPlan tbody {
	text-align: center;
}

#selectPlan tr {
	background: #ffffff;
}

#selectPlan .hotelPlanPrice {
	font-size: 4rem;
}

#selectPlan .row {
	margin-bottom: 32px;
}

/*検索プランの画像スライド*/
#selectPlan .js-carousel .slick-slide {
	width: 640px;
	height: 560px;
	margin: 0 60px;
	padding: 60px 0;
	position: relative;
	transition: all 0.6s ease 0.4s;
	opacity: 0.8;
	box-shadow: 7px 7px 15px -5px #666;
	overflow: hidden;
}

#selectPlan .js-carousel .slick-slide.slick-current {
	transform: scale(1.2);
	opacity: 1;
}

#selectPlan .js-carousel .slick-initialized .slick-slide {
	display: flex;
}

#selectPlan .js-carousel .slick-slide img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: top;
}

#selectPlan .js-carousel .slick-arrow {
	position: absolute;
	top: 50%;
	width: 60px;
	height: 60px;
	border-radius: 50%;
	background-color: #fff;
	cursor: pointer;
	border: none;
	outline: none;
	font-size: 0;
	z-index: 1;
	transform: translateY(-50%);
	filter: drop-shadow(0px 3px 6px rgba(0, 0, 0, 0.16));
}

#selectPlan .js-carousel .slick-arrow::before {
	content: '';
	display: block;
	position: absolute;
	top: 24px;
	width: 12px;
	height: 12px;
	border: 1px solid #333333;
	border-width: 3px 3px 0 0;
	transform: rotate(45deg);
}

#selectPlan .js-carousel .slick-next {
	right: 0;
}

#selectPlan .js-carousel .slick-prev {
	left: 0;
}

#selectPlan .js-carousel .slick-next::before {
	left: 20px;
}

#selectPlan .js-carousel .slick-prev::before {
	border-width: 0 0 3px 3px;
	right: 22px;
}

#selectPlan .slick-dots {
	text-align: center;
}

#selectPlan .slick-dots li {
	display: inline-block;
}

#selectPlan .slick-dots button {
	display: block;
	width: 10px;
	height: 10px;
	margin: 6px;
	padding: 0;
	border: 0;
	border-radius: 50%;
	background: #bcbcbc;
	font-size: 0;
	outline: none;
	cursor: pointer;
}

#selectPlan .slick-dots .slick-active button {
	background: #333333;
}

/*モーダル表示*/
#imageModal {
	display: none;
	position: fixed;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background-color: rgba(0, 0, 0, 0.7);
	z-index: 1000;
}

#imageModal .modal-content {
	position: relative;
	width: 80%;
	height: 100%;
	margin: auto;
	padding: 20px;
	background-color: #fff;
}

#imageModal .close-btn {
	position: absolute;
	top: 16px;
	right: 16px;
	font-size: 32px;
	font-weight: bold;
	cursor: pointer;
}

#imageModal .img-fluid {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: contain;
}

/*新着記事ウィジェット*/
article .pickup h2 {
	margin-top: 32px;
}

.widget-entry-cards figure {
	width: 100%;
}

.widget-entry-cards figure img {
	border-radius: 16px;
}

.widget-related-entry-card-title {
	position: absolute;
	left: 0;
	bottom: 4px;
	width: 100%;
	max-height: 40%;
	margin: 0;
	padding: 0.6em;
	border-radius: 0 0 16px 16px;
	background: linear-gradient(180deg, transparent, #555);
	color: var(--cocoon-white-color);
	overflow: hidden;
	transition: all 0.5s;
}

.widget-related-entry-card-link:hover {
	opacity: 0.8;
}


/************************************
** レスポンシブデザイン用のメディアクエリ
************************************/
/*1256px以下*/
@media screen and (max-width: 1256px) {
	/* cocoonの初期値を変更 */
	.wp-block-media-text .wp-block-media-text__content {
		padding: 0 0;
	}

	.main, .sidebar, .sidebar-left .main, .sidebar-left .sidebar {
		margin: 0;
		padding: 0;
	}

	header#top-header .main-visual {
		position: absolute;
		top: 80px;
		right: 0;
		width: 35vw;
		z-index: -2;
	}

	header#top-header .navigation-menu {
		font-size: 1.8rem;
	}

	header#top-header .navigation-menu {
		flex-wrap: wrap;
		width: 620px;
	}

	header#top-header .navigation-menu li {
		max-width: 148px;
	}

	header#top-header .navigation-menu li a img {
		width: 70%;
	}

	#application-flow img.megaphone {
		width: 240px;
	}

	/* ココが違う！の説明 */
	#difference .difference-flow {
		padding: 0 16px;
	}
}

/*1023px以下*/
@media screen and (max-width: 1023px) {
	body.home main {
		padding-top: 8% !important;
	}

	main {
		padding-top: 14% !important;
	}

	/* cocoon初期設定変更 */
	.entry-content {
		padding: 0 16px;
	}

	header#top-header {
		height: 72vw;
	}

	header#top-header .navigation-menu {
		width: 560px;
	}

	header#top-header .header-text {
		margin-top: 24px;
	}

	header#top-header .header-text h1 {
		font-size: 5.4vw;
	}

	header#top-header .header-text p {
		font-size: 3.4vw;
	}

	header#top-header .header-text p span {
		font-size: 5.4vw;
	}
}

/*834px以下*/
@media screen and (max-width: 834px) {
	.pc {
		display: none;
	}

	header#top-header {
		height: 80vw;
	}

	header#top-header .header-text h1 {
		font-size: 5.6vw;
		line-height: 1.2;
		text-shadow: 2px 2px 3px rgba(255, 255, 255, 0.2);
	}

	header#top-header .header-text p {
		font-size: 2.4vw;
	}

	header#top-header .header-text p span {
		font-size: 4.8vw;
	}

	header#top-header .main-visual {
		top: 54px;
		right: 32px;
		width: 55vw;
	}

	/* ココが違う！の説明 */
	#difference .under-line::before {
		bottom: -1120px;
	}

	footer#footer ul {
		flex-direction: column;
		align-items: center;
	}

	footer#footer ul li a {
		font-size: 2rem;
	}

	/*検索プランの画像スライド*/
	#selectPlan .slick-dots {
		display: block !important;
	}

}

@media screen and (max-width: 600px) {
	main {
		overflow-x: hidden;
	}

	/* カスタム投稿 - 新着 */
	#faq .new {
		flex-direction: column;
		align-items: center;
		gap: 48px;
		padding: 0 16px;
	}

	/* cocoon初期設定変更 */
	.wp-block-media-text__media img {
		width: 75%;
		margin-top: 16px;
	}

	.speech-person {
		width: 48%;
	}

	div.speech-balloon {
		font-size: 1.8rem;
	}

	.contents-wrapper {
		padding: 0 16px;
	}

	header#top-header {
		height: 88vw;
	}

	header#top-header .navigation-menu {
		width: 360px;
		font-size: 1.4rem;
		gap: 8px;
	}

	header#top-header .navigation-menu li {
		max-width: 112px;
	}

	/* ココが違う！の説明 */
	#difference .difference-flow {
		padding: 0 16px;
	}

	#difference .difference-flow p {
		margin-top: 64px;
		color: #ffffff;
		font-weight: bold;
		font-size: 2.4rem;
		text-align: center;
	}

	.difference-flow img:nth-of-type(3) {
		display: block;
		width: 250px;
		margin: auto;
	}

	#difference .under-line::before {
		bottom: -1000px;
	}

	/* スクロールを促すアニメーション */
	.scrolldown2 {
		position: absolute;
		bottom: -40%;
		left: 50%;
		z-index: -2;
	}

	/* 丸の描写 */
	.scrolldown2:before {
		content: "";
		position: absolute;
		bottom: 0;
		left: -4px;
		width: 12px;
		height: 12px;
		border-radius: 50%;
		background: #000000;
		animation: circlemove 1.6s ease-in-out infinite,
		cirlemovehide 1.6s ease-out infinite;
	}

	/*下からの距離が変化して丸の全体が上から下に動く*/
	@keyframes circlemove {
		0% {bottom: 54px;}
		100% {bottom: -10px;}
	}

	/*上から下にかけて丸が透過→不透明→透過する*/
	@keyframes cirlemovehide {
		0% {opacity: 0}
		50% {opacity: 1;}
		80% {opacity: 0.9;}
		100% {opacity: 0;}
	}

	/* 線の描写 */
	.scrolldown2:after {
		content: "";
		position: absolute;
		bottom: 0;
		left: 0;
		width: 4px;
		height: 64px;
		background: #000000;
	}
	/* スクロールを促すアニメーションここまで */
}

/*480px以下*/
@media screen and (max-width: 480px) {
	.sp {
		display: block;
	}

	h2, .article h2 {
		font-size: 4rem;
	}

	h3, .article h3 {
		font-size: 1.8rem;
	}

	#content a.conversion-button {
		width: 320px;
		font-size: 2rem;
	}

	/* Cocoonの初期値を変更 */
	#difference h2 {
		font-size: 3.1rem;
	}

	header#top-header .navigation-menu {
		bottom: -72px;
		font-size: 1.2rem;
	}

	header#top-header .header-text {
		line-height: 0.8;
	}

	header#top-header .header-text p {
		font-size: 3.2vw;
	}

	header#top-header .header-text p span {
		font-size: 5.6vw;
	}

	header#top-header .navigation-menu li {
		max-width: 100px;
	}

	header#top-header .navigation-menu li a img {
		width: 60%;
	}

	#recommendation .recommendation-content {
		width: 100%;
	}

	#recommendation .recommendation-wrap {
		gap: 64px;
	}

	#recommendation .recommendation-content a {
		font-size: 1.6rem;
	}

	#acquisition-flow img {
		width: 80%;
		margin: 64px auto 0;
	}

	#difference .difference-wrap .difference-content {
		font-size: 1.6rem;
	}

	/* ココが違う！の説明 */
	#difference .difference-flow p {
		margin-top: 32px;
		font-size: 2rem;
	}

	.difference-flow img:nth-of-type(3) {
		display: block;
		width: 160px;
		margin: auto;
	}

	#difference .under-line {
		transform: skewY(-14deg);
	}

	#difference .under-line::before {
		top: -129px;
		bottom: -680px;
	}

	.navi-footer-in > .menu-footer li.menu-item {
		width: 100%;
	}

	table.contact-form tbody tr th p {
		display: flex;
		flex-direction: column;
		font-size: 1.6rem;
	}

	/* プラン検索結果 */
	#selectPlan .g-mb-12 {
		margin-top: 32px;
		font-size: 1.8rem;
	}

	/*検索プランの画像スライド*/
	#selectPlan .js-carousel .slick-slide {
		width: 480px;
		height: 360px;
		margin: 0 50px;
		padding: 0 0 40px 0;
	}

	#selectPlan .js-carousel .slick-slide img {
		object-fit: contain;
	}

	#selectPlan .js-carousel .slick-arrow {
		width: 40px;
		height: 40px;
		border-radius: 50%;
		background-color: #fff;
		cursor: pointer;
		border: none;
		outline: none;
		font-size: 0;
		z-index: 1;
		transform: translateY(-50%);
		filter: drop-shadow(0px 3px 6px rgba(0, 0, 0, 0.16));
	}

	#selectPlan .js-carousel .slick-arrow {
		top: 40%;
	}

	#selectPlan .js-carousel .slick-arrow::before {
		top: 15px;
		width: 12px;
		height: 12px;
	}

	#selectPlan .js-carousel .slick-next {
		right: -20px;
	}

	#selectPlan .js-carousel .slick-prev {
		left: -20px;
	}

	#selectPlan .js-carousel .slick-next::before {
		left: 12px;
	}

	#selectPlan .js-carousel .slick-prev::before {
		right: 12px;
	}

}
