@charset "utf-8";
/* 基本設定 */
* {
	margin: 0;
	padding: 0;
	box-sizing: border-box;
}

.ingredient_category_label {
  -webkit-appearance: none;
  appearance: none;
  color: #333;
}

body {
	font-family: 'Noto Sans JP', sans-serif;
	color: #333;
	line-height: 1.6;
}

a {
	text-decoration: none;
	color: inherit;
}

img {
	max-width: 100%;
	height: auto;
	display: block;
}

@media (min-width: 769px) {
	#wrapper {
		padding:3rem 0;
	}
}

.container {
	width: 90%;
	max-width: 1200px;
	margin: 0 auto;
	padding: 0 15px;
}

/* ヘッダー */
.common-header {
	background-color: #f2f2f2;
	padding: 30px 0;
	text-align: center;
	font-size: 24px;
	font-weight: bold;
}

/* メインビジュアル */
.main-visual {
	background-color: #f2f2f2;
	height: 350px;
	display: flex;
	align-items: center;
	text-align: left;
	color: #333;
	position: relative;
}

.main-visual-content {
	max-width: 1200px;
	margin: 0 auto;
	width: 95%;
	padding: 40px 0;
}

.main-visual h1 {
	font-size: 2.2rem;
	font-weight: 700;
	line-height: 1.4;
	position: relative;
	z-index: 1;
	margin-bottom: 20px;
}

.main-visual p {
	font-size: 1.1rem;
	max-width: 600px;
	line-height: 1.6;
	position: relative;
	z-index: 1;
}

/* 検索セクション */
.search-section {
	padding: 60px 0;
	background-color: #fff;
	border-bottom: 1px solid #eee;
}

.search-section h2 {
	text-align: center;
	margin-bottom: 30px;
	font-size: 1.8rem;
	color: #333;
}

.search-box {
	background-color: #f9f9f9;
	border-radius: 10px;
	padding: 30px;
	box-shadow: 0 3px 15px rgba(0, 0, 0, 0.05);
}

.keyword-search {
	display: flex;
	margin-bottom: 20px;
}

.keyword-search input {
	flex: 1;
	padding: 12px 20px;
	border: 1px solid #ddd;
	border-radius: 5px 0 0 5px;
	font-size: 1rem;
}

.keyword-search button {
	background-color: #e63e32;
	color: white;
	border: none;
	padding: 0 25px;
	border-radius: 0 5px 5px 0;
	cursor: pointer;
	font-weight: 500;
	font-size: 1rem;
}

.keyword-search button:hover {
	background-color: #d63128;
}

.filter-options {
	display: flex;
	flex-wrap: wrap;
	gap: 30px;
}

.filter-group {
	flex: 1;
	min-width: 250px;
}

.filter-group h3 {
	font-size: 1.1rem;
	margin-bottom: 15px;
	color: #555;
	padding-bottom: 5px;
	border-bottom: 1px solid #ddd;
}

.age-filters {
	display: flex;
	flex-wrap: wrap;
	gap: 20px;
}

.age-filters label {
	display: flex;
	align-items: center;
	cursor: pointer;
	margin-bottom: 10px;
}

.age-filters input {
	margin-right: 8px;
	cursor: pointer;
}

.ingredient-filters {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 10px;
}

.ingredient-filters-container {
	display: none;
}

.ingredient-filters-container.active {
	display: block;
}

.ingredient-filters label {
	display: flex;
	align-items: center;
	cursor: pointer;
	margin-bottom: 10px;
}

.ingredient-filters input {
	margin-right: 8px;
	cursor: pointer;
}

/* レシピカード */
.featured-recipes, .age-based-recipes {
	padding: 60px 0;
}

.featured-recipes h2, .age-based-recipes h2, .guide-section h2 {
	text-align: center;
	margin-bottom: 40px;
	font-size: 1.8rem;
	color: #333;
}

.recipe-cards-wrapper {
	display: none;
}

.recipe-cards-wrapper.active {
	display: block;
}

.recipe-age-tabs {
	display: flex;
	justify-content: center;
	margin-bottom: 30px;
	border-bottom: 1px solid #ddd;
}

.recipe-age-tab {
	padding: 10px 20px;
	margin: 0 5px;
	cursor: pointer;
	border-bottom: 3px solid transparent;
	font-weight: 500;
	transition: all 0.3s;
}

.recipe-age-tab.active {
	border-bottom-color: #e63e32;
	color: #e63e32;
}

.recipe-cards {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(250px, 1fr));
	gap: 30px;
}

.recipe-card {
	background-color: #f2f2f2;
	border-radius: 10px;
	overflow: hidden;
	box-shadow: 0 5px 15px rgba(0, 0, 0, 0.08);
	transition: transform 0.3s, box-shadow 0.3s;
/*	height: 250px;*/
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-items: center;
}

.recipe-card:hover {
	transform: translateY(-5px);
	box-shadow: 0 8px 20px rgba(0, 0, 0, 0.12);
}

.recipe-info {
	padding: 20px;
	text-align: center;
}

.recipe-info h3 {
	margin-bottom: 8px;
	font-size: 1.2rem;
	color: #333;
}

.recipe-info p {
	color: #666;
	font-size: 0.9rem;
	line-height: 1.5;
}

/* 月齢別レシピ */
.age-based-recipes {
	background-color: #f8f8f8;
}

.age-category-cards {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
	gap: 30px;
}

.age-category {
	background-color: #f2f2f2;
	border-radius: 10px;
	padding: 30px;
	text-align: center;
	transition: transform 0.3s;
	box-shadow: 0 5px 15px rgba(0, 0, 0, 0.05);
}

.age-category:hover {
	transform: translateY(-5px);
}

.age-category h3 {
	margin-bottom: 15px;
	font-size: 1.2rem;
	color: #333;
}

.age-category p {
	color: #666;
	font-size: 0.9rem;
}

/* ガイドセクション */
.guide-section {
	padding: 60px 0;
	background-color: #fff;
}

.guide-cards {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(250px, 1fr));
	gap: 30px;
}

.guide-card {
	background-color: #f2f2f2;
	border-radius: 10px;
	padding: 30px;
	text-align: center;
	box-shadow: 0 5px 15px rgba(0, 0, 0, 0.05);
	transition: transform 0.3s;
}

.guide-card:hover {
	transform: translateY(-5px);
}

.guide-card h3 {
	margin-bottom: 10px;
	font-size: 1.2rem;
	color: #333;
}

.guide-card p {
	color: #666;
	font-size: 0.9rem;
}

/* サービス紹介 */
.about-service {
	padding: 60px 0;
	background-color: #f8f8f8;
}

.service-heading {
	text-align: center;
	margin-bottom: 40px;
}

.service-heading h2 {
	font-size: 1.8rem;
	color: #333;
	line-height: 1.4;
	margin-bottom: 15px;
}

.service-heading p {
	color: #555;
	max-width: 800px;
	margin: 0 auto;
}

.trial-box {
	background-color: #fff;
	border-radius: 10px;
	overflow: hidden;
	box-shadow: 0 5px 15px rgba(0, 0, 0, 0.08);
	padding: 30px;
	text-align: center;
	max-width: 800px;
	margin: 0 auto;
}

.trial-box h3 {
	font-size: 1.6rem;
	color: #e63e32;
	margin-bottom: 20px;
}

.trial-tag {
	display: inline-block;
	background-color: #e63e32;
	color: white;
	padding: 5px 10px;
	border-radius: 5px;
	font-size: 0.9rem;
	margin-bottom: 15px;
}

.trial-box p {
	color: #555;
	margin-bottom: 30px;
	font-size: 1rem;
}

.trial-price {
	font-size: 1.4rem;
	font-weight: bold;
	color: #e63e32;
	margin-bottom: 20px;
}

.trial-price span {
	font-size: 2rem;
}

.btn {
	display: inline-block;
	padding: 12px 25px;
	border-radius: 5px;
	font-weight: 500;
	text-align: center;
	transition: background-color 0.3s;
}

.btn-primary {
	background-color: #e63e32;
	color: white;
}

.btn-primary:hover {
	background-color: #d63128;
}

/* フッター */
.common-footer {
	background-color: #f2f2f2;
	padding: 30px 0;
	text-align: center;
	font-size: 24px;
	font-weight: bold;
}

/* レスポンシブ対応 */
@media (max-width: 768px) {
	.main-visual h1 {
		font-size: 1.8rem;
	}

	.main-visual p {
		font-size: 1rem;
	}

	.keyword-search {
		flex-direction: column;
	}

	.keyword-search input {
		border-radius: 5px;
		margin-bottom: 10px;
	}

	.keyword-search button {
		border-radius: 5px;
		width: 100%;
		padding: 12px;
	}

	.filter-options {
		flex-direction: column;
		gap: 20px;
	}

	.ingredient-filters {
		grid-template-columns: repeat(2, 1fr);
	}

	.recipe-age-tabs {
		flex-wrap: wrap;
	}

	.recipe-age-tab {
		padding: 8px 15px;
		margin-bottom: 5px;
	}
}





/* 基本設定 */
        * {
            margin: 0;
            padding: 0;
            box-sizing: border-box;
        }

        body {
            font-family: 'Noto Sans JP', sans-serif;
            color: #333;
            line-height: 1.6;
        }

        a {
            text-decoration: none;
            color: inherit;
        }

        img {
            max-width: 100%;
            height: auto;
            display: block;
        }

        .container {
            width: 90%;
            max-width: 1200px;
            margin: 0 auto;
            padding: 0 15px;
        }

        /* ヘッダー */
        .common-header {
            background-color: #f2f2f2;
            padding: 30px 0;
            text-align: center;
            font-size: 24px;
            font-weight: bold;
        }

        /* パンくずリスト */
        .breadcrumb {
            background-color: #f8f8f8;
            padding: 10px 0;
            border-bottom: 1px solid #eee;
        }

        .breadcrumb ul {
            list-style: none;
            display: flex;
            flex-wrap: wrap;
        }

        .breadcrumb li {
            font-size: 0.85rem;
            color: #666;
        }

        .breadcrumb li:not(:last-child)::after {
            content: '>';
            margin: 0 8px;
            color: #ccc;
        }

        .breadcrumb li:last-child {
            color: #333;
            font-weight: 500;
        }

        /* 戻るリンク */
        .back-links {
            margin: 20px 0;
        }

        .back-link {
            display: inline-flex;
            align-items: center;
            color: #e63e32;
            font-size: 0.9rem;
            font-weight: 500;
        }

        .back-link:hover {
            text-decoration: underline;
        }

        .back-link:before {
            content: "←";
            margin-right: 5px;
        }

        /* 検索ボックス */
        .search-box-small {
            background-color: #f5f5f5;
            padding: 20px;
            border-radius: 8px;
            margin-bottom: 30px;
        }

        .search-form-small {
            display: flex;
        }

        .search-input-small {
            flex: 1;
            padding: 10px 15px;
            border: 1px solid #ddd;
            border-radius: 5px 0 0 5px;
            font-size: 0.95rem;
        }

        .search-btn-small {
            background-color: #e63e32;
            color: white;
            border: none;
            padding: 0 20px;
            border-radius: 0 5px 5px 0;
            cursor: pointer;
            font-weight: 500;
        }

        .advanced-search-link {
            text-align: right;
            margin-top: 10px;
        }

        .advanced-search-link a {
            color: #e63e32;
            font-size: 0.85rem;
            cursor: pointer;
        }

        .advanced-search-link a:hover {
            text-decoration: underline;
        }

        /* 詳細検索部分 */
        .advanced-search-options {
            margin-top: 20px;
            background-color: #fff;
            padding: 20px;
            border-radius: 5px;
            border: 1px solid #ddd;
            display: none;
        }

        .advanced-search-options.active {
            display: block;
        }

        .filter-group {
            margin-bottom: 20px;
        }

        .filter-group h3 {
            font-size: 1rem;
            margin-bottom: 12px;
            color: #555;
            padding-bottom: 5px;
            border-bottom: 1px solid #eee;
        }

        .filter-options {
            display: flex;
            flex-wrap: wrap;
            gap: 10px;
        }

        .filter-options-grid {
            display: grid;
            grid-template-columns: repeat(3, 1fr);
            gap: 10px;
        }

        .filter-options label, 
        .filter-options-grid label {
            display: flex;
            align-items: center;
            cursor: pointer;
            margin-right: 15px;
            margin-bottom: 10px;
            font-size: 0.9rem;
        }

        .filter-options input,
        .filter-options-grid input {
            margin-right: 5px;
        }

        .ingredient-filters-container {
            display: none;
        }

        .ingredient-filters-container.active {
            display: block;
        }

        .advanced-search-btn {
            background-color: #e63e32;
            color: white;
            border: none;
            padding: 10px 20px;
            border-radius: 5px;
            cursor: pointer;
            font-weight: 500;
            display: block;
            margin: 20px auto 0;
        }

        /* 検索結果ヘッダー */
        .search-result-header {
            padding: 40px 0 30px;
            background-color: #fff;
            border-bottom: 1px solid #eee;
        }

        .search-result-header h1 {
            font-size: 1.8rem;
            margin-bottom: 15px;
            text-align: center;
        }

        .search-result-header p {
            text-align: center;
            color: #666;
            margin-bottom: 20px;
        }

        .search-terms {
            background-color: #f9f9f9;
            padding: 15px 20px;
            border-radius: 5px;
            margin-bottom: 20px;
        }

        .search-terms-title {
            font-weight: 500;
            margin-bottom: 8px;
            font-size: 0.95rem;
        }

        .search-term-group {
            margin-bottom: 10px;
        }

        .search-term-label {
            font-size: 0.85rem;
            color: #666;
            margin-bottom: 5px;
            display: block;
        }

        .search-term-items {
            display: flex;
            flex-wrap: wrap;
            gap: 8px;
        }

        .search-term-item {
            display: inline-block;
            background-color: #e63e32;
            color: white;
            padding: 4px 12px;
            border-radius: 20px;
            font-size: 0.85rem;
        }

        .search-controls {
            display: flex;
            justify-content: space-between;
            align-items: center;
            margin-top: 25px;
        }

        .sort-control {
            display: flex;
            align-items: center;
        }

        .sort-control label {
            margin-right: 10px;
            font-size: 0.9rem;
            color: #555;
        }

        .sort-control select {
            padding: 8px 15px;
            border: 1px solid #ddd;
            border-radius: 5px;
            font-size: 0.9rem;
            color: #333;
        }

        .view-control {
            display: flex;
            gap: 10px;
        }

        .view-btn {
            background-color: #f2f2f2;
            border: 1px solid #ddd;
            padding: 8px 15px;
            border-radius: 5px;
            font-size: 0.9rem;
            cursor: pointer;
        }

        .view-btn.active {
            background-color: #e63e32;
            color: white;
            border-color: #e63e32;
        }

        /* 絞り込みボタン用のスタイル */
        .filter-controls {
            margin: 20px 0;
        }

        .filter-buttons {
            display: flex;
            flex-wrap: wrap;
            gap: 10px;
            margin-top: 15px;
        }

        .filter-btn {
            background-color: #f2f2f2;
            border: 1px solid #ddd;
            padding: 8px 15px;
            border-radius: 5px;
            font-size: 0.9rem;
            cursor: pointer;
            transition: all 0.3s ease;
        }

        .filter-btn.active {
            background-color: #e63e32;
            color: white;
            border-color: #e63e32;
        }

        .filter-btn:hover {
            background-color: #e63e32;
            color: white;
            border-color: #e63e32;
            opacity: 0.8;
        }

        /* 検索結果リスト */
        .search-results {
            padding: 40px 0;
        }

        /* 検索結果カテゴリー */
        .result-category {
            margin-bottom: 40px;
        }

        .result-category-title {
            font-size: 1.3rem;
            color: #333;
            margin-bottom: 15px;
            padding-bottom: 8px;
            border-bottom: 2px solid #e63e32;
        }

        /* グリッド表示 */
        .grid-view {
            display: grid;
            grid-template-columns: repeat(3, 1fr);
            gap: 30px;
        }

        .grid-view .recipe-item {
            background-color: #fff;
            border-radius: 10px;
            overflow: hidden;
            box-shadow: 0 3px 10px rgba(0, 0, 0, 0.08);
            transition: transform 0.3s, box-shadow 0.3s;
            position: relative;
        }

        .grid-view .recipe-item:hover {
            transform: translateY(-5px);
            box-shadow: 0 5px 15px rgba(0, 0, 0, 0.12);
        }

        .grid-view .recipe-image {
            height: 200px;
            background-color: #f2f2f2;
            display: flex;
            justify-content: center;
            align-items: center;
            color: #666;
            font-weight: 500;
        }

        .match-label {
            position: absolute;
            top: 15px;
            left: 15px;
            background-color: #e63e32;
            color: white;
            padding: 5px 12px;
            border-radius: 20px;
            font-size: 0.8rem;
            z-index: 2;
            font-weight: bold;
        }

        .grid-view .recipe-content {
            padding: 20px;
        }

        .grid-view .recipe-name {
            font-size: 1.15rem;
            font-weight: 600;
            margin-bottom: 8px;
            line-height: 1.4;
        }

        .grid-view .recipe-desc {
            color: #666;
            font-size: 0.9rem;
            margin-bottom: 15px;
            display: -webkit-box;
            -webkit-line-clamp: 2;
            -webkit-box-orient: vertical;
            overflow: hidden;
        }

        .grid-view .recipe-meta {
            display: flex;
            flex-wrap: wrap;
            gap: 8px;
            margin-bottom: 10px;
        }

        .grid-view .recipe-tag {
            background-color: #f5f5f5;
            color: #555;
            padding: 4px 10px;
            border-radius: 3px;
            font-size: 0.8rem;
        }

        .grid-view .recipe-tag.match {
            background-color: #ffeded;
            color: #e63e32;
            border: 1px solid #e63e32;
        }

        .grid-view .sub-recipe {
            font-size: 0.85rem;
            color: #777;
            border-top: 1px solid #eee;
            padding-top: 10px;
            margin-top: 10px;
        }

        .grid-view .sub-recipe span {
            display: block;
            margin-bottom: 3px;
        }

        /* リスト表示モード */
        .list-view {
            display: block;
            width: 100%;
        }

        .list-view .recipe-item {
            display: flex;
            width: 100%;
            margin-bottom: 20px;
            padding: 20px;
            border-radius: 10px;
            box-shadow: 0 3px 10px rgba(0, 0, 0, 0.05);
            background-color: #f9f9f9;
            position: relative;
        }

        .list-view .recipe-item:hover {
            background-color: #f5f5f5;
        }

        .list-view .recipe-image {
            width: 150px;
            min-width: 150px;
            height: 150px;
            background-color: #f2f2f2;
            display: flex;
            justify-content: center;
            align-items: center;
            color: #666;
            font-weight: 500;
            margin-right: 20px;
        }

        .list-view .match-label {
            top: 10px;
            left: 10px;
        }

        .list-view .recipe-content {
            flex: 1;
            padding: 0;
            width: 100%;
        }

        .list-view .recipe-name {
            display: block;
            font-size: 1.1rem;
            margin-bottom: 15px;
            font-weight: 600;
        }

        .list-view .recipe-desc {
            margin-bottom: 15px;
            color: #666;
            font-size: 0.9rem;
        }

        .list-view .recipe-meta {
            display: flex;
            flex-wrap: wrap;
            gap: 8px;
            margin-bottom: 15px;
        }

        .list-view .recipe-tag {
            background-color: #f5f5f5;
            color: #555;
            padding: 4px 10px;
            border-radius: 3px;
            font-size: 0.8rem;
        }

        .list-view .recipe-tag.match {
            background-color: #ffeded;
            color: #e63e32;
            border: 1px solid #e63e32;
        }

        .list-view .sub-recipe {
            font-size: 0.85rem;
            color: #777;
            margin-top: 15px;
        }

        .list-view .sub-recipe span {
            display: block;
            margin-bottom: 3px;
        }

        /* CTAエリア - グレーボックス化 */
        .trial-box {
            background-color: #f2f2f2; /* グレーに変更 */
            border-radius: 10px;
            overflow: hidden;
            box-shadow: 0 5px 15px rgba(0, 0, 0, 0.08);
            padding: 30px;
            text-align: center;
            max-width: 800px;
            margin: 60px auto;
            position: relative;
        }

        .trial-box::before {
            content: "お試し5Daysへ誘導";
            position: absolute;
            top: 10px;
            left: 10px;
            background-color: #e63e32;
            color: white;
            padding: 3px 10px;
            border-radius: 3px;
            font-size: 0.8rem;
            font-weight: bold;
        }

        .trial-tag {
            display: inline-block;
            background-color: #e63e32;
            color: white;
            padding: 5px 10px;
            border-radius: 5px;
            font-size: 0.9rem;
            margin-bottom: 15px;
        }

        .trial-box h3 {
            font-size: 1.6rem;
            color: #333;
            margin-bottom: 20px;
        }

        .trial-box p {
            color: #555;
            margin-bottom: 30px;
            font-size: 1rem;
        }

        .trial-price {
            font-size: 1.4rem;
            font-weight: bold;
            color: #e63e32;
            margin-bottom: 20px;
        }

        .trial-price span {
            font-size: 2rem;
        }

        .btn {
            display: inline-block;
            padding: 12px 25px;
            border-radius: 5px;
            font-weight: 500;
            text-align: center;
            transition: background-color 0.3s;
        }

        .btn-primary {
            background-color: #e63e32;
            color: white;
        }

        .btn-primary:hover {
            background-color: #d63128;
        }

        /* ページネーション */
        .pagination {
            display: flex;
            justify-content: center;
            margin-top: 50px;
            gap: 5px;
        }

        .page-btn {
            width: 40px;
            height: 40px;
            display: flex;
            justify-content: center;
            align-items: center;
            border: 1px solid #ddd;
            border-radius: 5px;
            font-size: 0.9rem;
            color: #555;
            background-color: #fff;
            cursor: pointer;
        }

        .page-btn:hover {
            background-color: #f5f5f5;
        }

        .page-btn.active {
            background-color: #e63e32;
            color: white;
            border-color: #e63e32;
        }

        .page-btn.prev, .page-btn.next {
            width: auto;
            padding: 0 15px;
        }

        /* フッター */
        .common-footer {
            background-color: #f2f2f2;
            padding: 30px 0;
            text-align: center;
            font-size: 24px;
            font-weight: bold;
            margin-top: 40px;
        }

        /* レスポンシブ対応 */
        @media (max-width: 1024px) {
            .grid-view {
                grid-template-columns: repeat(2, 1fr);
            }
            
            .filter-options-grid {
                grid-template-columns: repeat(2, 1fr);
            }
        }

        @media (max-width: 768px) {
            .search-controls {
                flex-direction: column;
                align-items: flex-start;
                gap: 15px;
            }
            
            .grid-view {
                grid-template-columns: 1fr;
            }
            
            .list-view .recipe-item {
                flex-direction: column;
            }
            
            .list-view .recipe-image {
                width: 100%;
                margin-right: 0;
                margin-bottom: 15px;
            }
            
            .filter-options-grid {
                grid-template-columns: repeat(2, 1fr);
            }
            
            .filter-buttons {
                flex-direction: column;
            }
            
            .filter-btn {
                width: 100%;
            }
        }

        @media (max-width: 480px) {
            .search-result-header h1 {
                font-size: 1.5rem;
            }
            
            .filter-options-grid {
                grid-template-columns: 1fr;
            }
        }


        /* 基本設定 */
        * {
            margin: 0;
            padding: 0;
            box-sizing: border-box;
        }

        body {
            font-family: 'Noto Sans JP', sans-serif;
            color: #333;
            line-height: 1.6;
        }

        a {
            text-decoration: none;
            color: inherit;
        }

        img {
            max-width: 100%;
            height: auto;
            display: block;
        }

        .container {
            width: 90%;
            max-width: 1200px;
            margin: 0 auto;
            padding: 0 15px;
        }

        /* ヘッダー */
        .common-header {
            background-color: #f2f2f2;
            padding: 30px 0;
            text-align: center;
            font-size: 24px;
            font-weight: bold;
        }

        /* パンくずリスト */
        .breadcrumb {
            background-color: #f8f8f8;
            padding: 10px 0;
            border-bottom: 1px solid #eee;
        }

        .breadcrumb ul {
            list-style: none;
            display: flex;
            flex-wrap: wrap;
        }

        .breadcrumb li {
            font-size: 0.85rem;
            color: #666;
        }

        .breadcrumb li:not(:last-child)::after {
            content: '>';
            margin: 0 8px;
            color: #ccc;
        }

        .breadcrumb li:last-child {
            color: #333;
            font-weight: 500;
        }

        /* 戻るリンク */
        .back-links {
            margin: 20px 0;
            display: flex;
            gap: 15px;
        }

        .back-link {
            display: inline-flex;
            align-items: center;
            color: #e63e32;
            font-size: 0.9rem;
            font-weight: 500;
        }

        .back-link:hover {
            text-decoration: underline;
        }

        .back-link:before {
            content: "←";
            margin-right: 5px;
        }

        /* レシピ詳細 */
        .recipe-detail {
            padding: 40px 0;
        }

        .recipe-date {
            font-size: 1.2rem;
            background-color: #f2f2f2;
            padding: 10px 15px;
            margin-bottom: 20px;
            font-weight: 500;
        }

        .recipe-title {
            font-size: 1.8rem;
            font-weight: 700;
            margin-bottom: 25px;
            padding: 15px;
            background-color: #f9e090;
            text-align: center;
            line-height: 1.4;
        }

        .recipe-image {
            width: 100%;
            max-width: 600px;
            height: 400px;
            margin: 0 auto 30px;
            border-radius: 8px;
            overflow: hidden;
            background-color: #f2f2f2;
            display: flex;
            justify-content: center;
            align-items: center;
            color: #666;
        }

        .recipe-content {
            margin-bottom: 40px;
        }

        .content-section {
            margin-bottom: 30px;
        }

        .section-heading {
            font-size: 1.3rem;
            padding: 10px 15px;
            background-color: #666;
            color: #fff;
            margin-bottom: 15px;
        }

        .ingredient-list {
            list-style: none;
            border-bottom: 1px solid #eee;
        }

        .ingredient-item {
            padding: 12px 0;
            border-top: 1px solid #eee;
        }

        .method-heading {
            font-size: 1.1rem;
            font-weight: 700;
            margin: 20px 0 10px;
        }

        .method-text {
            line-height: 1.8;
            margin-bottom: 20px;
        }

        /* 関連レシピ */
        .related-recipes {
            padding: 50px 0;
            background-color: #f8f8f8;
        }

        .related-title {
            font-size: 1.5rem;
            text-align: center;
            margin-bottom: 30px;
            position: relative;
        }

        .related-title::after {
            content: '';
            display: block;
            width: 50px;
            height: 3px;
            background-color: #e63e32;
            margin: 10px auto 0;
        }

        .related-tabs {
            display: flex;
            justify-content: center;
            margin-bottom: 30px;
            border-bottom: 1px solid #ddd;
        }

        .related-tab {
            padding: 12px 25px;
            font-size: 1rem;
            font-weight: 500;
            cursor: pointer;
            color: #777;
            border-bottom: 3px solid transparent;
        }

        .related-tab.active {
            color: #e63e32;
            border-bottom-color: #e63e32;
        }

        .related-content {
            display: none;
        }

        .related-content.active {
            display: block;
        }

        .related-list {
            display: grid;
            grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
            gap: 20px;
        }

        .related-item {
            background-color: #fff;
            border-radius: 8px;
            overflow: hidden;
            box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
            transition: transform 0.3s;
            padding: 20px;
        }

        .related-item:hover {
            transform: translateY(-5px);
        }

        .related-age {
            display: inline-block;
            background-color: #e63e32;
            color: white;
            padding: 4px 10px;
            border-radius: 20px;
            font-size: 0.8rem;
            margin-bottom: 10px;
        }

        .related-item-title {
            font-size: 1.1rem;
            font-weight: 500;
            margin-bottom: 10px;
        }

        .related-tags {
            display: flex;
            flex-wrap: wrap;
            gap: 8px;
        }

        .related-tag {
            background-color: #f5f5f5;
            color: #555;
            padding: 4px 10px;
            border-radius: 3px;
            font-size: 0.8rem;
        }

        .related-tag.match {
            background-color: #ffeded;
            color: #e63e32;
            border: 1px solid #e63e32;
        }

        /* CTA */
        .cta-section {
            padding: 60px 0;
            background-color: #fff3f2;
            text-align: center;
        }

        .cta-title {
            font-size: 1.8rem;
            margin-bottom: 20px;
            color: #333;
        }

        .cta-description {
            font-size: 1.1rem;
            color: #555;
            max-width: 700px;
            margin: 0 auto 30px;
            line-height: 1.7;
        }

        .service-boxes {
            display: flex;
            flex-wrap: wrap;
            gap: 30px;
            justify-content: center;
            margin-top: 30px;
        }

        .service-box {
            flex: 1;
            min-width: 300px;
            max-width: 500px;
            background-color: #fff;
            border-radius: 10px;
            overflow: hidden;
            box-shadow: 0 5px 15px rgba(0, 0, 0, 0.08);
        }

        .service-image {
            background-color: #f2f2f2;
            height: 200px;
            display: flex;
            justify-content: center;
            align-items: center;
            font-weight: bold;
            color: #666;
        }

        .service-content {
            padding: 25px;
        }

        .service-content h3 {
            margin-bottom: 15px;
            font-size: 1.4rem;
            color: #333;
        }

        .service-content p {
            margin-bottom: 20px;
            color: #555;
            font-size: 0.95rem;
        }

        .service-buttons {
            display: flex;
            gap: 10px;
            flex-wrap: wrap;
        }

        .btn {
            display: inline-block;
            padding: 12px 25px;
            border-radius: 5px;
            font-weight: 500;
            text-align: center;
            transition: background-color 0.3s;
        }

        .btn-primary {
            background-color: #e63e32;
            color: white;
        }

        .btn-primary:hover {
            background-color: #d63128;
        }

        .btn-secondary {
            background-color: white;
            color: #e63e32;
            border: 1px solid #e63e32;
        }

        .btn-secondary:hover {
            background-color: #fff1ed;
        }

        /* フッター */
        .common-footer {
            background-color: #f2f2f2;
            padding: 30px 0;
            text-align: center;
            font-size: 24px;
            font-weight: bold;
        }

        /* レスポンシブ対応 */
        @media (max-width: 768px) {
            .recipe-title {
                font-size: 1.5rem;
            }
            
            .related-list {
                grid-template-columns: 1fr;
            }
            
            .service-boxes {
                flex-direction: column;
            }
            
            .related-tabs {
                flex-wrap: wrap;
            }
            
            .related-tab {
                flex: 1;
                min-width: 120px;
                text-align: center;
                padding: 10px;
            }
        }

        @media (max-width: 480px) {
            .recipe-date {
                font-size: 1rem;
            }
            
            .recipe-title {
                font-size: 1.3rem;
                padding: 10px;
            }
            
            .section-heading {
                font-size: 1.1rem;
            }
            
            .method-heading {
                font-size: 1rem;
            }
            
            .cta-title {
                font-size: 1.5rem;
            }
            
            .cta-description {
                font-size: 1rem;
            }
        }
        .related-image {
    height: 180px;
    background-color: #f2f2f2;
    overflow: hidden;
    border-radius: 6px;
    margin-bottom: 12px;
}

.related-image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.3s;
}

.related-item:hover .related-image img {
    transform: scale(1.05);
}

/* 既存のスタイルも調整 */
.related-item {
    background-color: #fff;
    border-radius: 8px;
    overflow: hidden;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
    transition: transform 0.3s;
    padding-bottom: 15px;
}

.related-item-title,
.related-tags {
    padding: 0 15px;
}

.related-age {
    display: inline-block;
    background-color: #e63e32;
    color: white;
    padding: 4px 10px;
    border-radius: 20px;
    font-size: 0.8rem;
    margin: 15px 0 0 15px;
    position: absolute;
    z-index: 1;
}

.match-label {
    position: absolute;
    top: 15px;
    left: 15px;
    background-color: #e63e32;
    color: white;
    padding: 5px 12px;
    border-radius: 20px;
    font-size: 0.8rem;
    z-index: 2;
    font-weight: bold;
}

.ingredient-group {
    margin-bottom: 15px;
}

.ingredient-heading {
    font-size: 1rem;
    font-weight: 700;
    margin-bottom: 8px;
    padding-bottom: 5px;
    border-bottom: 1px dashed #ccc;
}

.gray-box {
    background-color: #f2f2f2;
    border-radius: 10px;
    padding: 30px;
    text-align: center;
    max-width: 800px;
    margin: 0 auto;
    box-shadow: 0 3px 10px rgba(0, 0, 0, 0.1);
}

.gray-box p {
    font-size: 1.2rem;
    font-weight: 500;
    color: #555;
}