@charset "utf-8";

/* ====================================================================

	Style - コロモ替え LP

==================================================================== */


/* ====================================================================
	ヒーロー
==================================================================== */
body#home section.hero {
	height: calc(766 * var(--px));
	background: linear-gradient(to right, var(--pink), var(--pink) 25%, var(--green) 25%, var(--green) 50%, var(--orange) 50%, var(--orange) 75%, var(--blue) 75%, var(--blue) 100%);
}
.tagline {
	width: calc(760 * var(--px));
	height: fit-content;
	filter: drop-shadow(0 0 10px rgb(0 0 0 / 0.4));
	position: absolute;
	left: 50%;
	top: 50%;
	translate: -50% -50%;
	z-index: 1;
}

.billboard {
	width: 100%;
	height: auto;
	margin-inline: auto;
}
@media screen and (max-width: 767px) {
	body#home section.hero {
		height: calc(350 * var(--px));
	}
	.tagline {
		width: 80%;
	}
}

/* ====================================================================
	レシピセクション
==================================================================== */



section.recipe {
	--bg: var(--pale-pink);
	padding-bottom: calc(300 * var(--px));
	background-color: var(--bg);
	background-image:url('../imgs/common/background-spring.webp'), url('../imgs/common/background-flow.webp'), url('../imgs/common/background-bubble.webp');
	background-repeat: repeat-y;
	background-size: 100%;
	position: relative;

	transform-origin: top;
	animation: background-progress linear;
	animation-timeline: scroll();
}
@keyframes background-progress {
	from {
		background-position: center 0%, center 0%, center -5%;
	}
	to {
		background-position: center 65%, center -35%, center 55%;
	}
}

img.type-season {
	max-width: calc(280 * var(--px));
	position: absolute;
	left: 0;
	top: 0;
	z-index: 1;

	transform-origin: top;
	animation: type-progress linear;
	animation-timeline: view();
}
@keyframes type-progress {
	from {
		opacity: 0.5;
		translate: 0 50%;
	}
	to {
		opacity: 1;
		translate: 0 0%;
	}
}

section.recipe .wrap {
	padding-inline: var(--m2);
	position: relative;
	z-index: 2;
}
section.recipe .section-header {
	margin-bottom: var(--m6);
}

section.recipe .section-header .headline {
	width: calc(630 * var(--px));
}

@media screen and (max-width: 767px) {
	section.recipe {
		padding-bottom: calc(180 * var(--px));
		background-image:url('../imgs/common/background-spring@sp.webp'), url('../imgs/common/background-flow@sp.webp'), url('../imgs/common/background-bubble@sp.webp');
		animation: none;
		animation-timeline: unset;
	}
	img.type-season {
		max-width: 30%;
	}
	section.recipe .wrap {
		padding-inline: var(--m4);
	}
	section.recipe .section-header {
		margin-bottom: calc(90 * var(--px));
	}
}



.recipe-card {
	position: relative;
	display: flex;
	align-items: stretch;
	padding: var(--m4);
	border-radius: var(--m4);
	box-shadow: var(--m2) var(--m2) 6px 0 rgb(0 0 0 / 0.1);
	background: white;
}
.recipe-card  + .recipe-card {
	margin-top: calc(180 * var(--px));
}

.recipe-card .image {
	position: relative;
	width: 72%;
	flex-shrink: 0;
}

.recipe-card .image img {
	width: 100%;
	height: 100%;
	display: block;
	aspect-ratio: 780 / 560;
	object-fit: cover;
}

.recipe-card .tag {
	position: absolute;
	bottom: var(--m2);
	right: var(--m);
	font-family: "RocknRoll One", sans-serif;
	font-weight: 400;
	font-size: var(--medium-size);
	color: white;
	line-height: 1.5;
	text-shadow: 0 0 5px rgb(0 0 0 / 0.3);
}
@media screen and (max-width: 767px) {
	.recipe-card {
		padding: 0 0 var(--m2);
	}
	.recipe-card  + .recipe-card {
		margin-top: calc(120 * var(--px));
	}
	.recipe-card .image {
		width: 100%;
	}
	.recipe-card .image img {
		aspect-ratio: 375 / 450;
		border-radius: var(--m4) var(--m4) 0 0;
	}
	.recipe-card .tag {
		right: var(--m2);
		top: var(--m2);
		bottom: auto;
		text-shadow: 0 0 5px rgb(0 0 0 / 0.7);
	}
}


.recipe-card .text {
	width: 28%;
	padding-inline: var(--m4) 0;
	flex-shrink: 0;
	display: flex;
	flex-direction: column;
	justify-content: center;
	position: relative;
	z-index: 1;
}
.recipe-card .number {
	font-family: "Roboto", sans-serif;
	font-weight: 900;
	font-size: 180px;
	color: #ffbfc7;
	line-height: 1;
	letter-spacing: -0.03em;
	margin-bottom: calc(-0.15em); /* タイトルとの隙間を詰める */
	user-select: none;
	position: absolute;
	left: var(--m4);
	bottom: 100%;
	translate: 0 20%;
}

.recipe-card .number::first-letter {
	font-size: 66%;
}
.recipe-card .number::before {
	display: block;
	width: 54px;
	height: 14px;
	background: #ffbfc7;
	position: absolute;
	left: 8px;
	top: 20%;
}
@media screen and (max-width: 767px) {
	.recipe-card .text {
		width: 100%;
		padding-inline: var(--m4);
		padding-block: var(--m4);
		position: static;
	}
	.recipe-card .number {
		font-size: calc(120 * var(--px));
		color: #ffbfc7;
	}
	.recipe-card .number::before {
		width: 36px;
		height: 9px;
		left: 5px;
		background: #ffbfc7;
	}
}

.recipe-card .headline {
	font-family: "RocknRoll One", sans-serif;
	font-size: var(--huge-size);
	font-weight: 400;
	line-height: 1.75;
	/* __body の幅に縛られず、テキスト幅で広がれるようにする */
	overflow: visible;
	white-space: nowrap;

	width: max-content;
	position: absolute;
	right: 0;
	top: var(--m5);
}
.recipe-card:nth-of-type(even) .headline {
	right: auto;
	left: 0;
}
@media screen and (min-width: 768px) {
	.recipe-card:nth-of-type(even) .tag {
		left: var(--m2);
		right: auto;
	}
	.recipe-card:nth-of-type(even) .text {
		padding-inline: 0 var(--m4);
	}
	.recipe-card:nth-of-type(even) .recipe-card .headline {
		left: 0;
		right: auto;
	}
}
@media screen and (max-width: 767px) {
	.recipe-card .headline {
		margin-top: calc(-90 * var(--px));
		position: static;
	}
}

.recipe-card .headline span {
	display: inline;
	line-height: 1.1;
	padding-inline: 0.1ic;
	background: white;
	-webkit-box-decoration-break: clone;
	box-decoration-break: clone;
	white-space: normal;
	position: relative;
}
.recipe-card .headline span::before,
.recipe-card .headline span::after {
	display: block;
	width: 105%;
	position: absolute;
	inset: 0;
}
.recipe-card .headline span::before {
	height: 103%;
	translate: 5px -5px;
	rotate: 2deg;
	background: #b0e02b;
	z-index: -1;
}
.recipe-card .headline span::after {
	height: 105%;
	translate: -7px 5px;
	rotate: -2deg;
	background: #f589ba;
	z-index: -2;
}

@media screen and (min-width: 768px) {
	.recipe-card:nth-of-type(even) .image {
		order: 2;
	}
	.recipe-card:nth-of-type(even) .text {
		order: 1;
	}
}

.recipe-card .name {
	margin-top: auto;
	font-size: var(--medium-size);
	color: #333;
	margin-bottom: var(--m2);
	line-height: 1.75;
}

.recipe-card .nav-detail {
	--button-bg: var(--pink);
	--button-hover-bg: var(--light-pink);
	width: 100%;
	margin-bottom: var(--m);
}
@media screen and (max-width: 767px) {
	.recipe-card .name {
		font-size: calc(var(--medium-size) * 1.2);
		margin-block: var(--m4);
		width: fit-content;
		margin-inline: auto;
	}
}

.recipe-card .info {
	width: fit-content;
	max-width: calc(660 * var(--px));
	height: 2lh;
	background: rgb(255 255 255 / 0.9);
	border: 1px solid var(--gray);
	display: flex;
	position: absolute;
	left: var(--m5);
	bottom: var(--m5);
	z-index: 1;
}
.recipe-card:nth-of-type(even) .info {
	left: auto;
	right: var(--m5);
}
.recipe-card .info > div {
	padding-left: var(--m);
	display: flex;
	align-items: stretch;
	position: relative;
}
@media screen and (max-width: 767px) {
	.recipe-card .info {
		order: 3;
		margin-top: var(--m6);
		width: calc(100% - var(--m4));
		border-radius: var(--m2);
		margin-inline: var(--m2);
		height: auto;
		position: static;
	}
	.recipe-card .info > div {
		flex: 1;
		padding-left: 0;
		flex-direction: column;
		align-items: center;
	}
}
.recipe-card .info .thumbnail {
	flex: 0 1 auto;
	position: relative;
}
.recipe-card .info .movie::after {
	display: block;
	width: 1px;
	height: 70%;
	background: var(--gray);
	position: absolute;
	right: 0;
	top: 50%;
	translate: 0 -50%;
}
.recipe-card .info .movie .thumbnail {
	width: calc(70 * var(--px));
}


@media (any-hover: hover) {
	.info :is(.movie, .oil) .thumbnail img {
		transition: var(--transition);
	}
	.info .movie .thumbnail:hover img {
		filter: brightness(0.5);
	}
	.info .oil .thumbnail:hover img {
		filter: brightness(1.05);
	}
}


.recipe-card .info .thumbnail .nav-movie {
	display: block;
	width: fit-content;
	border-radius: 6px;
	overflow: hidden;
	position: relative;
}
.recipe-card .info .thumbnail :is(.nav-oil, .nav-movie) {
	display: block;
	height: calc(105 * var(--px));
	filter: drop-shadow(3px 3px 3px rgba(0 0 0 / 0.3));
	margin-inline: auto;

	position: absolute;
	left: 0;
	bottom: 0.5lh;
}
.recipe-card .info .thumbnail img {
	max-height: 100%;
}
.recipe-card .info p {
	align-self: center;
	padding-block: 0.3lh;
	padding-inline: var(--m);
	
	line-height: 1.5;
	font-weight: 700;
}
.recipe-card .info .button {
	--button-color: var(--black);
	--button-hover-color: white;
	--button-bg: color-mix(in srgb, var(--pink), white 80%);
	--button-hover-bg: var(--pink);
	border-radius: 6px;
	border: 1px solid var(--pink);
	padding-block: 0.2lh;
	padding-inline: 0.3ic 0;
	font-size: calc(var(--regular-size) * 0.9);
}
@media screen and (min-width: 768px) {
	.recipe-card .info .button {
		font-size: calc(var(--regular-size) * 0.5);
	}
}
@media screen and (min-width: 900px) {
	.recipe-card .info .button {
		font-size: calc(var(--regular-size) * 0.7);
	}
}
@media screen and (min-width: 1200px) {
	.recipe-card .info .button {
		font-size: calc(var(--regular-size) * 0.9);
	}
}

.recipe-card .info .button::after {
	display: none;
}

.recipe-card .info .oil .thumbnail {
	width: calc(40 * var(--px));
}

@media screen and (max-width: 767px) {
	.recipe-card .info .movie .thumbnail {
		width: 60%;
		--icon-size: var(--m6);
	}
	.recipe-card .info .thumbnail :is(.nav-oil, .nav-movie) {
		margin-top: calc(-1 * var(--m6));
		position: static;
	}
	.recipe-card .info p {
		margin-block: var(--m2);
		font-size: 75%;
		margin-inline: auto;
	}
	.recipe-card .info .button {
		font-size: calc(var(--small-size) * 0.9);
		padding-block: 0.3lh;
		margin-inline: 0;
	}
}


/* ====================================================================
	豆知識セクション
==================================================================== */
section.recommend {
	--bg: var(--pink);
	padding-top: var(--m2);
	z-index: 1;
	overflow-x: clip;
}
section.recommend::after {
	display: block;
	width: 100%;
	height: calc(100% + 100 * var(--px));
	background: linear-gradient(170deg, white, transparent);
	opacity: 0.5;
	position: absolute;
	left: 0;
	top: calc(-100 * var(--px));
	z-index: 1;
	pointer-events: none;
}
section.recommend .wrap {
	z-index: 2;
}
section.recommend .headline {
	width: calc(956 * var(--px));
}


section.recommend .container {
	display: flex;
	gap: var(--m8);
	padding-block: var(--m4);
	background: white;
	border-radius: calc(30 * var(--px));
	box-shadow: var(--m2) var(--m2) 6px 0 rgb(0 0 0 / 0.1);
}
@media screen and (max-width: 767px) {
	section.recommend {
		padding-top: var(--m4);
	}
	section.recommend .container {
		flex-direction: column;
		gap: calc(120 * var(--px));
	}
}

.recommend-card {
	padding-inline: var(--m4);
	position: relative;
}
.recommend-card:not(:last-of-type)::after {
	display: block;
	width: 1px;
	height: 100%;
	background: var(--gray);
	position: absolute;
	left: calc(100% + var(--m4));
	top: 0;
}
.recommend-card .image {
	margin-top: calc(-210 * var(--px));
	width: calc(173 * var(--px));
	margin-inline: auto;
}
.recommend-card h3 {
	padding-block: 0.75lh;
	font-size: var(--medium-size);
	font-weight: 700;
	color: var(--pink);
	text-align: center;
}
.recommend-card .nav-more {
	margin-top: var(--m2);
	margin-inline: auto;
}

@media screen and (max-width: 767px) {
	.recommend-card .image {
		margin-top: calc(-60 * var(--px));
		width: 50%;
	}
	.recommend-card .nav-more {
		margin-top: var(--m6);
	}
}




/* ====================================================================
	レスポンシブ（SP）
==================================================================== */
@media screen and (max-width: 767px) {
	/* カードを縦積みに */
	.recipe-card {
		flex-direction: column;
	}

	.recipe-card .image {
		width: 100%;
		order: 1;
	}

	.recipe-card .text {
		width: 100%;
		order: 2;
		margin-left: 0 !important;
		margin-right: 0 !important;
	}

	.recipe-card .headline {
		display: inline;
	}

	.trivia-list {
		grid-template-columns: 1fr;
	}
}


