/* ==================== #index-head.css ==================== */

#index-head h1 {
	margin: 0;
	font-size: 100%;
}


@media (max-width: 640px) {
	#index-head {
		padding: 1em 3%;
	}
	#index-head h1 {
		margin-bottom: 1em;
		text-align: center;
	}
	#index-head .image {
		float: right;
		width: 7em;
		margin: 0 0 0.25em 0.5em;
		padding-bottom: 2em;
		padding-left: 1em;
		background: url(../images/index/title_image_back_sp.png) no-repeat center bottom;
		background-size: 100% 50%;
	}
}


@media (max-width: 640px) and (orientation: landscape) {
	#index-head h1 img {
		width: 80%;
	}
}


@media (min-width: 641px) {
	#index-head .text p {

	}
	#index-head {
		margin-top: 2em;
		padding: 0 calc((100vw - 920px)/2);
		background: url(../images/common/back_pink.png);
		text-align: center;
	}
	#index-head .image {
		display: none;
	}
	#index-head h1 {
		position: relative;
		z-index: 1;
		padding-top: 2em;
		margin-bottom: -3em;
	}
	#index-head h1::before {
		content: url(../images/index/title_pc.png);
	}
	#index-head h1 img {
		display: none;
	}

	#index-head .text {
		display: inline-block;
		text-align: justify;
		box-sizing: border-box;
		width: 880px;
		background: url(../images/index/copy_base_pc.png) no-repeat;
		background-size: 100% 100%;
		padding: 3em;
	}
}



/* ==================== contents-index/recipe-banner.css ==================== */

.contents-index .recipe-banner {
	text-align: center;
}


@media (max-width: 640px) {
	.contents-index .recipe-banner {
		margin: 3em auto 0;
		width: 90%;
	}
}


@media (min-width: 641px) {

	.contents-index .recipe-banner {
		margin-top: 3em;
	}
	.contents-index .recipe-banner img {
		display: none;
	}
	.contents-index .recipe-banner a::before {
		content: url(../images/common/recipe_banner2.png);
	}
}



/* ==================== contents-index/main/@.css ==================== */

@media (max-width: 640px) {

	.contents-index .main {
		padding: 0 3%;
	}

}

@media (min-width: 641px) {

	.contents-index .main {
		columns: 2;
		column-gap: 1em;
		width: 920px;
		margin: 2em auto 0;
	}

}



/* ==================== contents-index/main/contents/@.css ==================== */

.contents-index .main .contents {
	display: grid;
	border: 3px solid #ffd7b8;
	border-radius: 1em;
}


@media (max-width: 640px) {

	.contents-index .main .contents {
		grid-gap: 1.5em;
		margin-top: 2em;
		padding: 1.5em 1em 1em;
	}

}


@media (min-width: 641px) {

	.contents-index .main .contents {
		grid-gap: 0.5em;
		break-inside: avoid-column;
		margin: 1em 0;
		padding: 1em;
	}

}



/* ==================== contents-index/main/contents/title.css ==================== */

.contents-index .main .contents .title {
	display: grid;
}

.contents-index .main .contents .title h2 {
	margin: 0;
}

.contents-index .main .contents .title h2 img {
	height: 1em;
}


@media (max-width: 640px) {

	.contents-index .main .contents .title {
		justify-items: center;
		grid-gap: 0.5em;
	}

	.contents-index .main .contents .title > img {
		width: 8em;
	}

}


@media (min-width: 641px) {

	.contents-index .main .contents .title {
		grid-template-columns: 100px 1fr;
		grid-gap: 1em;
		align-items: center;
		justify-items: start;
	}

	.contents-index .main .contents .title h2 {
		font-size: 20px;
	}

}



/* ==================== contents-index/main/contents/body/<h3>.css ==================== */

.contents-index .main .contents .body h3 {
	margin: 0;
	color: var(--color-red);
	font-size: 110%;
	font-weight: normal;
}


@media (max-width: 640px) {

	.contents-index .main .contents .body h3 {
		text-align: center;
	}

}



/* ==================== contents-index/main/contents/body/<hr>.css ==================== */

.contents-index .main .contents .body hr {
	all: unset;
	display: block;
	width: 100%;
	height: 2px;
	background: linear-gradient(to right, #ffd7b8 50%, transparent 50%) repeat-x left top / 6px 100%;
}



/* ==================== contents-index/main/contents/body/@.css ==================== */

.contents-index .main .contents .body {
	display: grid;
	grid-gap: 1em;
}


@media (min-width: 641px) {

	.contents-index .main .contents .body {
		padding: 0.5em;
	}

}



/* ==================== contents-index/main/contents/body/<ul>/<h4>.css ==================== */

.contents-index .main .contents .body ul h4 {
	display: flex;
	align-items: center;
	margin: 0;
	font-size: 110%;
	line-height: 1.3;
}

.contents-index .main .contents .body ul h4::before {
	flex-shrink: 0;
	content: '';
	display: block;
	width: 1.2em;
	height: 1.2em;
	background: url(../images/common/arrow_b.png) no-repeat center center / contain;
}


@media (min-width: 641px) {

	.contents-index .main .contents .body ul h4 a {
		transform-origin: left center;
		white-space: nowrap;
	}

	.contents-index .main .contents .body ul h4 a[href*="/type/05/"] { transform: scaleX(0.95); }
	.contents-index .main .contents .body ul h4 a[href*="/school/02/"] { transform: scaleX(0.95); }

}



/* ==================== contents-index/main/contents/body/<ul>/<p>.css ==================== */

.contents-index .main .contents .body ul p {
	margin: 0.5em 0 0;
	padding-left: 1.5em;
}


@media (min-width: 641px) {

	.contents-index .main .contents .body ul p {
		font-size: 90%;
	}

}



/* ==================== contents-index/main/contents/body/<ul>/@.css ==================== */

.contents-index .main .contents .body ul {
	display: grid;
	grid-gap: 1em;
	margin: 0;
	padding: 0;
	list-style-type: none;
}

.contents-index .main .contents .body ul li a {
	padding-left: 0.25em;
	text-decoration: none;
}

.contents-index .main .contents .body ul li a::before {
	content: '';
	position: absolute;
	left: 0;
	top: 100%;
	width: 100%;
	height: 0;
	border-bottom: 2px solid rgba(0,0,0,0);
}


@media (min-width: 641px) {

	.contents-index .main .contents .body ul li {
		/* max-width: 100%; */
		overflow: hidden;
	}

	.contents-index .main .contents .body ul li a:hover {
		position: relative;
	}

	.contents-index .main .contents .body ul li a:hover::before {
		content: '';
		position: absolute;
		left: 0;
		top: 100%;
		width: 100%;
		height: 0;
		border-bottom: 2px solid #009dff;
	}

}



/* ==================== contents-index/others/<ul>.css ==================== */

.contents-index .others ul {
	display: grid;
	margin: 0;
	padding: 0;
	list-style-type: none;
}

.contents-index .others ul li {
	border: solid #ededed;
}

.contents-index .others ul li a {
	display: grid;
	grid-auto-flow: column;
	grid-gap: 0.5em;
	align-items: center;
}

.contents-index .others ul li img {
	width: auto;
}
.contents-index .others ul li img[src*="_image"] { height: 3.25em; }
.contents-index .others ul li img[src*="_category"] { height: 1.25em; }


@media (max-width: 640px) {

	.contents-index .others ul li {
		border-width: 2px 0;
	}
	.contents-index .others ul li:nth-of-type(n+2) {
		border-top-width: 0;
	}

	.contents-index .others ul li a {
		padding: 0.75em 1em;
		justify-content: start;
	}

}


@media (min-width: 641px) {

	.contents-index .others ul {
		grid-auto-flow: column;
		justify-content: center;
	}

	.contents-index .others ul li {
		border-width: 0 3px;
	}
	.contents-index .others ul li:nth-of-type(n+2) {
		border-left-width: 0;
	}

	.contents-index .others ul li a {
		justify-content: center;
		padding: 0 1.5em;
	}

}



/* ==================== contents-index/others/@.css ==================== */

.contents-index .others {
	display: grid;
	justify-items: center;
}


@media (max-width: 640px) {

	.contents-index .others {
		margin: 3em 0 0;
	}

}


@media (min-width: 641px) {

	.contents-index .others {
		margin-top: 2em;
	}

}