/*********************
ROOT
**********************/
:root {
  --base: #FFF;
  --bg-1: #F9FAF5;
  --bg-2: #ECEAE1;
  --text-main: #2E0F0A;

  --accent-color-1: #CEA704;
  --accent-color-2: #2E0F0A;

  --font-min: "Shippori Mincho", serif;
  --font-default: "Lato", sans-serif;
  --font-material: 'Material Icons Round';
  --light: 300;
  --normal: 400;
  --bold: 700;
  --spacing-wide: 0.1em;
  --spacing-medium: 0.05em;

  --container: calc(1920px + 6%);
  --container-side: 3%;
  --container-ll: 1600px;
  --container-l: 1400px;
  --container-m: 960px;
  --container-s: 660px;
  --container-ss: 480px;

}


/******************************
レシピ一覧 / カテゴリー別一覧
******************************/
#breadcrumb ul li:last-of-type a {
	pointer-events: none;
	border: none;
}
.feature-page-parts-category-links-items {
    width: 100%;
    justify-content: center;
    margin-top: 60px;
    gap: 1em;
}
.feature-page-parts-category-links-item {
    padding: .25em 1.25em;
    margin: 0;
    border: 1px solid var(--accent-color-2);
    border-radius: 999px;
    font-size: 1.12em;
}
.feature-page-parts-category-links-item:hover,
.feature-page-parts-category-links-item-isactive {
    background-color: var(--accent-color-2);
    opacity: 1;
    color: #fff;
}
#pagination {
	padding-top: 60px;
}
.feature-page-view-list {
    width: 100%;
    padding: 0;
	font-size: inherit;
}
.feature-page-view-items {
    gap: 2em;
}
.feature-page-view-item {
	border: none;
    margin: 0;
    width: calc((100% - 2em*3)/4);
}
.feature-page-view-title {
    margin: .5em 0 0;
}
@media screen and (max-width: 1200px) {
	.feature-page-view-items {
		gap: 2em 1em;
	}
	.feature-page-view-item {
	border: none;
    margin: 0;
    width: calc((100% - 1em*3)/4);
}
}
@media screen and (max-width: 960px) {
	.feature-page-parts-category-links-items {
    gap: .5em;
}
}
@media screen and (max-width: 768px) {
	#pagination {
	padding-top: 40px;
}
	.feature-page-parts-category-links-items {
		margin-top: 40px;
	}
	.feature-page-parts-category-links-item {
		font-size: 1em;
	}
	.feature-page-view-item {
		width: calc((100% - 1em*2)/3);
	}
}
@media screen and (max-width: 560px) {
	.feature-page-view-item {
    width: calc((100% - 1em)/2);
}
}
/******************************
レシピ詳細
******************************/
/* コンテナ */
#tblLayout {
	width: 100%;
}
#Contents {
	padding-bottom: 60px;
}
#breadcrumb {
  padding-bottom: 60px;
}

@media screen and (max-width: 768px) {
  .container-wrap {
    flex-direction: column-reverse;
  }

  .container-wrap aside {
     width: 100%;
     max-width: none;
     background-color: var(--bg-1);
   }
}

/* 共通パーツ */
#page-title {
  font-weight: var(--bold);
  letter-spacing: var(--spacing-wide);
  font-size: 2em;
  font-family: var(--font-min);
  margin: .5em 0;
}

.recipe-section-title,
#list-title {
    border-bottom: 2px solid #CEA704;
    padding-bottom: .15em;
    margin-bottom: 1em;
    font-size: 1.5em;
	font-family: var(--font-min);
    font-weight: var(--bold);
    letter-spacing: var(--spacing-wide);
	text-align: left;
}

@media screen and (max-width: 560px) {
	#page-title {
		font-size: 1.5em;
	}
}


/* 最終更新日 */
.recipe-page-meta-bar {
	display: none;
}
.recipe-page-meta-bar-right {
	margin-right: 0;
}

/* アイキャッチ画像 */
#header-banner {
	display: inline-block;
	width: 50%;
	position: relative;vertical-align: middle;
}
#upper-contents-area {
  display: inline-block;
  width: 47%;
  margin-left: 2%;
  vertical-align: middle;
}

#header-banner img {
	width: 100%;
	height: auto;
	display: block;
}
.recipe-time-badge {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	position: absolute;
	right: 1em;
	bottom: 1em;
	background: var(--accent-color-1);
	color: #fff;
	border-radius: 50%;
	width: 6em;
	height: 6em;
	line-height: 1.5em;
}
.recipe-time-badge-label,
.recipe-time-badge-value small {
	font-size: 0.88em;
}
.recipe-time-badge-value {
	font-size: 1.5em;
	font-weight: bold;
}

@media screen and (max-width: 960px) {
	#header-banner {
		display: block;
		width: 100%;
	}
}
@media screen and (max-width: 560px) {
	.recipe-time-badge {
    width: 5em;
    height: 5em;
}
.recipe-time-badge-value {
    font-size: 1.25em;
}
}

/* ポイント */
.point {
  padding: 1em;
  border: 1px solid var(--accent-color-1);
  background-image:
    repeating-linear-gradient(0deg,
      #cea70424,
      #cea70424 1px,
      rgba(0, 0, 0, 0) 0,
      rgba(0, 0, 0, 0) 16px),
    repeating-linear-gradient(90deg,
      #cea70424,
      #cea70424 1px,
      rgba(0, 0, 0, 0) 0,
      rgba(0, 0, 0, 0) 16px);
    }

.point h2 {
	width: fit-content;
	background-color: #fff;
	font-size: 1.5em;
	font-weight: var(--bold);
	letter-spacing: var(--spacing-wide);
	text-align: center;
	font-family: var(--font-min);
	margin: -1.5em 0 0;
	padding: 0 1em 0 3.25em;
	position: relative;
}

.point h2::before {
    position: absolute;
    content: "";
    width: 40px;
    height: 18px;
    top: 50%;
    left: 1em;
    transform: translateY(-50%);
    background-image: url(/Contents/ImagesPkg/common/header/header-sub-icon.svg);
    background-size: cover;
}

.point p {
  margin-top: 1.25em;
}

@media screen and (max-width: 960px) {
	#upper-contents-area {
		display: block;
		width: 100%;
		margin-left: 0;
		margin-top: 2em;
	}
}

@media screen and (max-width: 560px) {
	.point h2 {
		font-size: 1.5em;
		padding: 0 1em 0 3em;
	}

	.point h2::before {
    width: 32px;
    height: 14px;
}
}


/* 商品紹介 */
#feature-group-items {
	margin: 2em auto 0;
	width: 100%;
	max-width: 600px;
}

#feature-group-items #product-list-0,
	#feature-group-items .product-list-inner {
	background: none !important;
	padding: 0 !important;
}
#feature-group-items #list-title:empty,
#feature-group-items .feature-item-product-id,
#feature-group-items .error  {
	display: none;
}
#feature-group-items .feature-item {
	width: 100%;
	background: #fff;
	border: 1px solid #e0e0e0;
	border-radius: 6px;
	padding: 1.5em;
	box-shadow: 0 2px 8px rgba(0,0,0,0.06);
}
#feature-group-items .feature-item .error {
	color: #CF4104;
	font-size: 0.88em;
}
#feature-group-items .feature-item .feature-item-img {
	display: block;
	float: left;
	width: 100%;
	max-width: 240px;
	position: relative;
}
#feature-group-items .feature-item .feature-item-img #productImage {
	width: 100%;
	height: auto;
}
#feature-group-items .feature-item .feature-item-img ~ * {
	margin-left: 256px;
}
#feature-group-items .feature-item-name {
  font-size: 1.5em;
  font-family: var(--font-min);
}
#feature-group-items .productPrice {
  font-size: 1.25em;
  margin-left: 0.5em;
}
#feature-group-items .addCart {
	margin-top: 1em;
}
#feature-group-items .feature-vari-cart-add .btn,
#feature-group-items .feature-item-add-favorite .btn,
#feature-group-items .feature-item .feature-vari-arrival .btn {
	display: block;
	box-sizing: border-box;
	border-radius: 4px;
	padding: 10px;
	text-align: center;
	text-decoration: none;
	margin-bottom: 8px;
}
#feature-group-items .feature-vari-cart-add .btn,
#feature-group-items .feature-item .feature-vari-arrival .btn {
	background: var(--accent-color-1);
	color: #fff;
	border: 1px solid var(--accent-color-1);
	font-weight: var(--bold);
}
#feature-group-items .feature-item-add-favorite .btn {
	background: #fff;
	border: 1px solid var(--accent-color-2);
	display: flex;
	align-items: center;
	justify-content: center;
}
#feature-group-items .feature-item-add-favorite .btn .icon {
	display: inline-flex;
	align-items: center;
	margin-right: 4px;
}
#feature-group-items .feature-item-add-favorite .btn .icon img {
	width: 22px;
	height: 22px;
	display: block;
}
#feature-group-items .favoriteRegistration {
	font-size: 0.88em;
	margin-top: .5px;
	text-align: center;
}
.feature-vari-arrival-mail {
	margin-bottom: 1em;
}
@media screen and (max-width: 768px) {
	#feature-group-items .feature-item .feature-item-img {
		max-width: 200px;
	}
	#feature-group-items .feature-item .feature-item-img ~ * {
		margin-left: 216px;
	}
}
@media screen and (max-width: 560px) {
	#feature-group-items .feature-item {
		max-width: 300px;
		margin: auto;
	}
	#feature-group-items .feature-item .feature-item-img {
		float: none;
		max-width: none;
	}
	#feature-group-items .feature-item .feature-item-name {
		margin-top: 1em;
	}

    #feature-group-items .feature-item .feature-item-img ~ * {
        margin-left: 0;
    }
}


/* コンテンツエリア下部 */
.recipe-content {
	display: flex;
	gap: 4%;
	margin-top: 2em;
}

@media screen and (max-width: 768px) {
	.recipe-content {
		flex-direction: column;
		gap: 2em;
	}
}

/* 材料 */
.ingredients {
	flex: 1;
}

.ingredients-list {
	margin: 0 0 20px;
}
.ingredients-list .ingredients-item  {
	display: flex;
	justify-content: space-between;
	padding: 8px 4px;
	border-bottom: 1px dashed #e0e0e0;
}
.recipe-serving-badge {
	display: block;
  width: 180px;
  text-align: center;
  letter-spacing: var(--spacing-wide);
	padding: .25em 1em;
	margin: 0 auto .5em;
	border-radius: 999px;
	background: var(--accent-color-1);
	color: #fff;
}

/* 手順 */
.procedure {
	flex: 1;
}
.recipe-steps {
  display: flex;
  flex-direction: column;
  gap: .5em;
  margin-top: 1em;
}
.recipe-steps li {
  position: relative;
	counter-increment: recipe-step;
	background: var(--bg-1);
	border-radius: 8px;
	padding: 1em 1em 1em 3em;
  line-height: 1.75em;
}
.recipe-steps li::before {
  position: absolute;
  top: .5em;
  left: .65em;
	content: counter(recipe-step);
  font-size: 1.5em;
  font-family: "游明朝体", "Yu Mincho", YuMincho, "ヒラギノ明朝 Pro", "Hiragino Mincho Pro", "MS P明朝", "MS PMincho", serif;;
	color: var(--accent-color-1);
	font-weight: bold;
}


/* パーツ */
/* 同じカテゴリーのレシピ紹介（スライダー：slick.js使用／初期化はJS/main.js） */
.recipe-conductor {
	position: relative;
	margin-top: 3em;
}
.recipe-conductor .conductor-list {
	margin: 0;
	padding: 0;
}
.recipe-conductor .conductor-list.slick-slider {
	/* slick.css未読込環境でも矢印の絶対配置基準になるようフォールバック */
	position: relative;
}
.recipe-conductor .conductor-list .slick-slide {
	margin: 0 .3em;
}
.recipe-conductor .conductor-list .slick-list {
	margin: 0 -.3em;
}
.recipe-conductor h3 {
	font-family: var(--font-min);
	font-size: 1.25em;
	margin-top: 0.25em;
}

/* スライダー矢印（JS側で prevArrow / nextArrow として生成） */
.recipe-conductor .conductor-list-arrow-prev,
.recipe-conductor .conductor-list-arrow-next {
	position: absolute;
	top: 40%;
	transform: translateY(-50%);
	z-index: 1;
	width: 2.5em;
	height: 2.5em;
	border-radius: 50%;
	border: 1px solid var(--accent-color-2);
	background: #fff;
	cursor: pointer;
	transition: background .2s;
}
.recipe-conductor .conductor-list-arrow-prev {
	left: -1em;
}
.recipe-conductor .conductor-list-arrow-next {
	right: -1em;
}
.recipe-conductor .conductor-list-arrow-prev::before,
.recipe-conductor .conductor-list-arrow-next::before {
	position: absolute;
	content: "";
	width: 10px;
	height: 10px;
	top: 50%;
	left: 50%;
	border-top: 1px solid var(--accent-color-2);
	border-right: 1px solid var(--accent-color-2);
	transition: border-color .2s;
}
.recipe-conductor .conductor-list-arrow-prev::before {
	transform: translate(-30%, -50%) rotate(-135deg);
}
.recipe-conductor .conductor-list-arrow-next::before {
	transform: translate(-70%, -50%) rotate(45deg);
}
.recipe-conductor .conductor-list-arrow-prev:hover,
.recipe-conductor .conductor-list-arrow-next:hover {
	background: var(--accent-color-2);
}
.recipe-conductor .conductor-list-arrow-prev:hover::before,
.recipe-conductor .conductor-list-arrow-next:hover::before {
	border-color: #fff;
}
.recipe-conductor .conductor-list-arrow-prev:focus-visible,
.recipe-conductor .conductor-list-arrow-next:focus-visible {
	outline: 2px solid var(--accent-color-1);
	outline-offset: 2px;
}

@media screen and (max-width: 960px) {
	.recipe-conductor h3 {
		font-size: 1em;
	}
}
@media screen and (max-width: 560px) {
	.recipe-conductor .conductor-list-arrow-prev,
	.recipe-conductor .conductor-list-arrow-next {
		width: 2em;
		height: 2em;
	}
	.recipe-conductor .conductor-list-arrow-prev {
		left: -.5em;
	}
	.recipe-conductor .conductor-list-arrow-next {
		right: -.5em;
	}
}
/* こちらもおすすめ（スライダーなしの固定レイアウト／PC:4列、768px以下:2列） */
.recipe-recommend .recommend-list {
	display: flex;
	flex-wrap: wrap;
	gap: 1.5em;
	margin: 0;
	padding: 0;
}
.recipe-recommend .recommend-item {
	flex: 0 0 calc((100% - 4.5em) / 4);
}
.recipe-recommend .recommend-item .image img {
	width: 100%;
	height: auto;
	display: block;
}
.recipe-recommend h3 {
	font-family: var(--font-min);
	font-size: 1.25em;
	margin-top: 0.25em;
}

@media screen and (max-width: 960px) {
	.recipe-recommend h3 {
		font-size: 1em;
	}
}
@media screen and (max-width: 768px) {
	.recipe-recommend .recommend-list {
		gap: 1em;
	}
	.recipe-recommend .recommend-item {
		flex: 0 0 calc((100% - 1em) / 2);
	}
}


/* 他のレシピを見る（追従バナー） */
/* PC：ホバーで展開／SP：タップで展開（JS/main.jsでis-openを制御） */

.recipe-followbar {
	position: fixed;
	right: 1.5em;
	bottom: 1.5em;
	z-index: 200;
}
.recipe-followbar-toggle {
	display: flex;
	align-items: center;
	gap: .6em;
	padding: .9em 1.5em;
	border: none;
	border-radius: 999px;
	background: var(--accent-color-2);
	color: #fff;
	font-family: var(--font-min);
	font-size: 1em;
	font-weight: var(--bold);
	letter-spacing: var(--spacing-wide);
	box-shadow: 0 4px 16px rgba(0, 0, 0, .2);
	cursor: pointer;
	white-space: nowrap;
	/* SPのChromeでダブルタップズーム等のジェスチャー判定によりタップ反応が遅れる／取りこぼされるのを防止 */
	touch-action: manipulation;
	-webkit-tap-highlight-color: transparent;
}
.recipe-followbar-toggle::after {
	content: "";
	width: .55em;
	height: .55em;
	border-top: 2px solid #fff;
	border-right: 2px solid #fff;
	transform: rotate(-45deg);
	transition: transform .2s ease;
}
.recipe-followbar-panel {
	position: absolute;
	right: 0;
	bottom: calc(100% + .75em);
	width: 200px;
	max-width: calc(100vw - 3em);
	background: #fff;
	border-radius: 12px;
	box-shadow: 0 8px 24px rgba(0, 0, 0, .18);
	padding: 1em;
	opacity: 0;
	visibility: hidden;
	transform: translateY(8px);
	transition: opacity .2s ease, transform .2s ease, visibility .2s ease;
}
.recipe-followbar-nav {
	display: flex;
	flex-direction: column;
	gap: .5em;
}
.recipe-followbar-nav-item {
	display: block;
	padding: .5em 0 .5em 1.25em;
	border-radius: 999px;
	font-weight: var(--bold);
	touch-action: manipulation;
	-webkit-tap-highlight-color: transparent;
	position: relative;
}
.recipe-followbar-nav-item:hover {
	color: var(--accent-color-1);
	opacity: 1;
}
.recipe-followbar-nav-item::after {
	position: absolute;
	content: "";
	top: 50%;
	left: 0;
	transform: translateY(-50%);
	width: 8px;
	height: 8px;
	border-radius: 50%;
	background-color: var(--accent-color-2);
	transition: all ease .3s;
}
.recipe-followbar-nav-item:hover::after {
	background-color: var(--accent-color-1);
}

/* PC：ホバーで展開 */
@media (hover: hover) {
	.recipe-followbar:hover .recipe-followbar-panel {
		opacity: 1;
		visibility: visible;
		transform: translateY(0);
	}
	.recipe-followbar:hover .recipe-followbar-toggle::after {
		transform: rotate(135deg);
	}
}

/* SP：タップで展開（is-openはJSで付与） */
.recipe-followbar.is-open .recipe-followbar-panel {
	opacity: 1;
	visibility: visible;
	transform: translateY(0);
}
.recipe-followbar.is-open .recipe-followbar-toggle::after {
	transform: rotate(135deg);
}

/* 960px以下：他テンプレートの下部固定ナビ（高さ62px）と重ならないよう底上げ */
@media screen and (max-width: 960px) {
	.recipe-followbar {
		bottom: calc(62px + 1.5em);
	}
}

@media screen and (max-width: 560px) {
	.recipe-followbar {
		right: 1em;
		bottom: calc(62px + 1em);
	}
	.recipe-followbar-toggle {
		padding: .8em 1.2em;
		font-size: .9em;
	}
	.recipe-followbar-panel {
		width: 160px;
	}
	.recipe-followbar-nav-item::after {
		width: 6px;
		height: 6px;
	}
}
