/* 基本設定とリセット */
body {
	margin: 0 auto;
	padding: 0;
	line-height: 1.2; /* 読みやすい行間 */
	color: #3c2a00;
	background-color: #fffbc7;
	overflow-x: hidden; /* 横方向のスクロールバーを非表示にする */
}

*, *::before, *::after {
    box-sizing: border-box; /* パディングやボーダーを幅に含める */
}

/* 画像と埋め込み要素の基本設定 */
img {
	max-width: 100%; /* 画像が親要素の幅を超えないようにする */
	height: auto;
	display: block;
}

header.hero-section {
	width: 100%;
	text-align: center;
	margin: 0 auto;
}

div.container {
	width: 100%;
	margin: 0 auto;
}

h1 {
	display:none;
}

/* --- セクション共通スタイル --- */
section.section {
	width: 100%;
	text-align: center;
	padding-left: 10px;
	padding-right: 10px;
	margin: 50px auto;
}

hr {
	border: 1px solid #fdd23e;
	margin-top: 10px;
	margin-bottom: 10px;
}

h2 {
	font-family: "Noto Serif JP", serif;
	font-size: 130%;
	font-weight: 600;
	text-align: center;
}

div.rows2-block {
	display: flex;
	justify-content: center;
	align-items: center;
	padding: 5px;
	margin: 0 auto 20px;
}

div.rows2-text {
	width: 60%;
	text-align:left;
	padding-right: 10px;
}

p.text-left-top {
	font-family: "Noto Serif JP", serif;
	font-weight: 400;
}

p.text-left-bottom {
	font-family: "Noto Serif JP", serif;
	font-weight: 600;
}

div.rows2-img {
	width: 40%;
}

img.mame_pc {
	display: none;
}

h3 {
	width: 60%;
	font-family: "Zen Maru Gothic", sans-serif;
	font-size: 130%;
	font-weight: 600;
	text-align: center;
	border-bottom: 5px dotted #fdd23e;
	margin: 0 auto;
}

/* --- 強制改行 --- */
span.sp-break {
	content: ''; /* 疑似要素を使わなくても、これだけでもOK */
	display: block; /* ★ここで改行が発生する */
	height: 0; /* 高さをなくして改行だけさせる */
}

div.section-block {
	margin: 10px auto;
}

p.athlete-text {
	font-family: "Noto Serif JP", serif;
	font-weight: 400;
	text-align: center;
	margin: 0 auto 10px;
}

p.attention-center {
	font-size: 75%;
	text-align: center;
}

div.box-with-title {
	position: relative;
	background-color: #fff;
	border-radius: 15px;
	margin: 50px auto;
}

p.box-title {
	width: 60%;
	font-family: "Zen Maru Gothic", sans-serif;
	font-size: 130%;
	font-weight: 400;
	position: absolute;
	display: inline-block;
	line-height: 1;
	background-color:#fdd23e;
	padding:10px;
	border-radius: 15px;
	top: -15%;
	right: 0;
	left: 0;
	margin: 0 auto;
}

p.box-text {
	font-family: "Noto Serif JP", serif;
	font-weight: 400;
	text-align: center;
	margin: 0; 
	padding: 30px 15px 15px;
}

div.circle {
	display: inline-block;
	width: 100%;
	height: 25vh;
	border-radius: 50% / 0 0 100% 100%;
	background: #fdd23e;
	padding-top: 10px;
	margin: 0 auto 30px;
}

h4 {
	font-family: "Zen Maru Gothic", sans-serif;
	font-size: 130%;
	font-weight: 600;
}

p.text-center-zen {
	font-family: "Zen Maru Gothic", sans-serif;
	font-size: 100%;
	font-weight: 400;
}

div.circle img {
	width: 75%;
	margin-top: 10px;
}

div.rows3-beans {
	width: 100%;
	height: 200px;
	position: relative; 
	margin: 20px auto 0;
}

div.left-mame {
	position: absolute;
	top: 20px;
	left: 10px;
	z-index: 10;
}

div.right-mame {
	position: absolute;
	bottom: 20px;
	right: 10px;
	z-index: 10;
}

div.beans img {
	width: 50px;
	height: auto;
}

div.white-beans {
	width: 70%;
	height: 200px;
	background-image: url(/images/mamerizumu/mame_5-4.png);
	background-repeat: no-repeat;
	background-size: contain;
	background-position: center center;
	margin: 0 auto;
	display: flex;
	justify-content: center;
	align-items: center;
}

div.beans-naka {
	width: 90%;
	height: 300px;
	text-align: center;
	/* 内部のテキストを垂直中央に */
	display: flex;
	flex-direction: column; 
	justify-content: center;
}

p.beans-title {
	font-size: 130%;
	font-family: "Zen Maru Gothic", sans-serif;
	font-weight: 600;
	border-bottom: 5px dotted #fdd23e;
}

p.beans-text {
	font-family: "Noto Serif JP", serif;
	font-size: 100%;
	font-weight: 400;
	margin-top: 18px;
}

div.rows2-beans {
	width: 100%;
	margin: 0 auto;
}

h5 {
	max-width: 60%;
	font-family: "Zen Maru Gothic", sans-serif;
	font-size: 130%;
	font-weight: 600;
	border-top: 5px dotted #fdd23e;
	border-bottom: 5px dotted #fdd23e;
	margin: 0 auto 20px;
}

p.materials-subtitle {
	font-family: "Zen Maru Gothic", sans-serif;
	font-size: 130%;
	font-weight: 400;
	margin: 0 auto;
}

span.underline {
	font-weight: 600;
	border-bottom: 5px solid #fdd23e;
	padding-left: 10px;
	padding-right: 10px;
}

div.rows2-materials {
	width: 100%;
	display: flex;
	flex-direction: column;
	padding: 10px;
	margin: 30px auto 0;
}

div.materials-image {
	width: 75%;
	height: auto;
	margin: 0 auto;
}

div.materials-text {
	width: 100%;
	position: relative;
	background-color: #fff;
	border-radius: 30px;
	padding: 30px 10px 10px; 
	margin: 30px auto 0;
}

p.materials-box-title {
	width: 60%;
	font-family: "Zen Maru Gothic", sans-serif;
	font-size: 130%;
	font-weight: 400;
	position: absolute;
	display: inline-block;
	background-color:#fdd23e;
	padding:10px;
	border-radius: 15px;
	top: -30px;
	right: 0;
	left: 0;
	margin: 10px auto;
}

p.materials-box-text {
	font-family: "Noto Serif JP", serif;
	font-size: 100%;
	font-weight: 400;
	text-align: center;
	margin: 0;
	padding: 10px;
}

div.kurogo {
	flex-direction: column-reverse;
	margin-bottom: 80px;
}

div.family-block {
	width: 100%;
	height: 350px;
	background-image: url(/images/mamerizumu/mame_7.jpg);
	background-repeat: no-repeat;
	background-size: cover;
	background-position: center center;
	margin: 0 auto;
}

div.yellow-circle {
	display: inline-block;
	width: 100%;
	height: 150px;
	border-radius: 50% / 0 0 100% 100%;
	background: #fdd23e;
	margin-top: -30px;
}

h6 {
	font-family: "Zen Maru Gothic", sans-serif;
	font-size: 130%;
	font-weight: 600;
	margin-top: 5px;
}

div.target-block {
	width: 100%;
	height: 340px;
	background-image: url(/images/mamerizumu/mame_8.jpg);
	background-repeat: no-repeat;
	background-size: cover;
	background-position: center center;
	margin: 50px auto 70px;
	position: relative;
}

div.target-top {
	width: 50%;
	position: absolute;
	display: inline-block;
	padding: 5px;
	top: -40px;
	left: 0;
}

div.target-bottom {
	width: 50%;
	position: absolute;
	display: inline-block;
	padding:5px;
	bottom: -50px;
	right: 0;
}

p.target-title {
	font-family: "Zen Maru Gothic", sans-serif;
	font-size: 130%;
	font-weight: 600;
	border-bottom: 5px dotted #fdd23e;
}

p.target-text {
	font-family: "Noto Serif JP", serif;
	font-size: 85%;
	font-weight: 400;
	text-align: left;
	margin-top: 5px;
}

p.text-center-zen-big {
	font-family: "Zen Maru Gothic", sans-serif;
	font-size: 130%;
	font-weight: 600;
}

section.shop {
	margin-top: 80px;
}

div.rows-text {
	max-width: 100%;
	display: flex;
	justify-content: center;
	align-items: center;
	padding: 10px;
	margin-top: 10px;
}

p.text-center-zen-middle {
	font-family: "Zen Maru Gothic", sans-serif;
	font-size: 130%;
	font-weight: 600;
}

section.shop img {
	margin-top:20px
}

/* --- ボタン スタイル --- */
div.btn {
	display: block;
	width: 80%;
	max-width: 400px;
	margin: 30px auto 10px auto;
	padding: 18px 25px;
	text-decoration: none;
	border-radius: 50px; /* 角丸を強調 */
	font-weight: 700;
	font-size: 200%;
	text-align: center;
	transition: all 0.3s ease;
	border: none;
	box-shadow: 0 4px 0 #E65100; /* 立体的なボタン */
}

/* --- フッター --- */
footer {
    font-size: 75%;
    text-align: center;
    background-color: #fdd23e;
    padding: 15px 0;
}
