/* ルートのフォントサイズを10pxに設定 */
html {
  font-size: 62.5%;
	overflow-x: hidden;
}

section {
	margin-top: 50px;
}

h2 {
	font-size: 2.4rem !important;
	margin-bottom: 20px;
}

h1.heading,
h2.bold {
	font-weight: bold !important;
}

.heading-wrapper {
	display: flex;
	justify-content: center;
	align-items: center;
}

.heading-wrapper img {
	max-width: 200px;
}

.heading {
	padding: 10px;
}

.grid-odd {
	display: grid;
	grid-template-columns: 1fr 1fr;
	grid-template-rows: auto;
	align-items: center;
	justify-content: center;
	gap: 20px;
}

.grid-left-layout {
	width: 100%;
	display: grid;
	grid-template-columns: 1fr 1fr;
	grid-template-rows: auto;
	justify-content: center;
	gap: 20px;
}

.grid-left-layout::after {
	content: '';
	width: 100%;
}

.grid-left-wide {
	grid-template-columns: 1fr 2fr;
	position: relative;
}

.text-box {
	text-align: center;
}

.intro-text-box {
	width: fit-content;
	margin-left: auto;
}

.put-text-container {
	position: relative;
	width: fit-content;
	margin: auto;
}

.cream {
	width: 90%;
	margin: 140px auto 0;
}

.relative-image {
	position: relative;
	z-index: 2;
}

.relative-image img {
	margin-top: 50px;
}

.circle-box {
	max-width: 600px;
	padding: 60px 30px 80px;
	border-radius: 50%;
	background: #fff;
	box-shadow: 0 0 20px 20px #fff;
}

.circle-box-layer {
	z-index: 3;
}

.circle-box p {
	font-size: 1.45rem;
}

.cream .circle-box {
	position: absolute;
	top: -200px;
	right: -8vw;
}

.water .circle-box {
	margin-top: -50px;
	margin-left: auto;
	max-width: 570px;
}

.water {
	margin-top: 100px;
	background: url(../images/2-philosophy/pc/water-img.png) no-repeat left center / 100%;
	padding-bottom: 8vw;
}

.environment {
	width: 90%;
	margin: 10vw auto 0;
}

.environment .relative-image {
	margin-left: -50px;
}

.environment .circle-box {
	max-width: 640px;
	position: absolute;
	top: -100px;
	right: -22vw;
	padding: 50px 40px 40px;
}

.caption-box {
	width: 70%;
	margin: auto;
}

.caption-parts {
	display: flex;
	align-items: flex-start;
	justify-content: flex-start;
	gap: 10px;
}

.caption-parts p {
	font-size: 12px;
	text-align: left;
}

.product {
	margin-top: 100px;
	background: url(../images/2-philosophy/pc/product-img.png) no-repeat right center / 70%;
	height: 60vw;
}

.product .circle-box {
	margin-top: 70px;
	margin-left: auto;
	padding: 40px 40px 70px 0;
	max-width: 570px;
}

.last {
	margin-top: 100px;
}
/* popup */
.popup-button {
	display: inline-block;
	position: relative;
	background: #e2a2a4;
	padding: 10px 35px 10px 15px;
	color: #fff;
	width: fit-content;
	margin: 30px auto 0;
	cursor: pointer;
}
.product .popup-button {
	font-size: 14px;
	margin-top: 20px;
}
.popup-button::before,
.popup-button::after {
	position: absolute;
	display: block;
	content: '';
	width: 15px;
	height: 3px;
	top: 50%;
	transform: translateY(-50%);
	right: 10px;
	background: #fff;
}
.popup-button::after {
	transform: rotate(-90deg);
	margin-top: -1px;
}
.md-show {
	display: none;
}
@media screen and (max-width:1400px) {
	.product .circle-box {
		left: 8vw;
	}
}

@media screen and (max-width:1200px) {
	.environment .relative-image img {
		width: 80%;
	}
	.product .circle-box {
		left: 0;
	}
	.environment .circle-box {
		right: -14vw;
		padding: 50px 0 40px 40px;
	}
	.md-show {
		display: block;
	}
}

@media screen and (max-width:1070px) {
	.grid-odd,
	.grid-left-layout {
		grid-template-columns: 1fr;
	}
	.grid-left-layout {
		align-items: center;
	}
	.grid-odd > *,
	.grid-left-layout > * {
		grid-column: 1;
	}
	.intro-text-box {
		margin-right: auto;
		order: 2;
	}
	.intro-right {
		display: flex;
		align-items: flex-start;
		justify-content: flex-end;
		order: 1;
	}
	.intro-right img {
		width: 80%;
	}
	.circle-box {
		max-width: none;
		padding: 0;
		border-radius: unset;
		box-shadow: none;
		z-index: initial;
		background: none;
		margin-top: 30px;
	}
	.circle-box p,
	.intro-left p {
		font-size: 1.6rem;
	}
	.cream,
	.environment {
		width: 100%;
		margin-top: 30px;
	}
	.cream .circle-box {
		position: initial;
		top: initial;
		right: initial;
	}
	.water {
		margin-top: 30px;
		background: initial;
		padding: 0;
	}
	.water .circle-box {
		margin: 50px auto 0;
		max-width: none;
	}
	.environment .circle-box {
		position: initial;
		top: initial;
		right: initial;
		padding: 0;
	}
	.environment .relative-image {
		display: flex;
		align-items: flex-start;
		justify-content: center;
		margin: 0;
	}
	.relative-image {
		display: flex;
		align-items: flex-start;
		justify-content: center;
	}
	.cream .relative-image img,
	.environment .relative-image img {
		width: 90%;
	}
	.caption-box {
		width: 100%;
		max-width: 350px;
		margin-top: 30px;
	}
	.caption-parts p {
		font-size: 1.4rem;
	}
	.product {
		margin-top: 30px;
		padding-bottom: 50px;
		background: none;
		height: auto;
		position: initial;
	}
	.product .circle-box {
		margin-left: 0;
		padding: 0;
		max-width: none;
	}
	.product .caption-parts {
		display: flex;
		width: 60vw;
		margin: auto;
	}
	/* popup */
	.popup-button,
	.product .popup-button {
		padding: 10px 30px 10px 10px;
		font-size: 2.5vw;
	}
}

@media screen and (max-width:780px) {
  .title-margin-top{
    margin-top: 60px;
  }

  .thumb-margin-top {
    margin-top: 40px;
  }
	.philosophy-container{
		width: 100%;
		margin-top: 60px;
	}

	body {
		font-size: 1.6em;
	}

	h1{
		font-size: 2.2rem!important;
		font-weight: normal!important;
	}

	h2{
		font-size: 1.6rem;
		font-weight: normal!important;

	}

	h3{
		font-size: 1.6rem;
		font-weight: normal!important;
	}

	p{
		font-size: 1.4rem;
	}


  .form-row{
    margin: 60px 0;
  }

	img{
		background-size: cover;
	}

	.concept-area{
    margin: 0 auto;
    margin-top: 40px;
	}

	.popup-button,
	.product .popup-button {
		font-size: 3vw;
	}
}

@media screen and (min-width:781px) {
  .title-margin-top{
    margin-top: 70px;
  }
  .thumb-margin-top {
    margin-top: 40px;
  }
	.philosophy-container{
		width: 75%;
		margin-top: 72px;
	}

	body {
		font-size: 1.6em;
	}

	h1{
		font-size: 2.6rem!important;
		font-weight: normal!important;
	}

	h2{
		font-size: 2.0rem;
		font-weight: normal!important;

	}

	h3{
		font-size: 1.7rem;
		font-weight: normal!important;
	}

	p{
		font-size: 1.6rem;
	}

  .form-row{
    margin: 70px 0;
  }

  .concept-area{
    margin: 0 auto;
    margin-top: 40px;
  }
}
@media screen and (max-width:468px) {
	h2 {
		font-size: 2rem !important;
	}
	.product .caption-parts {
		width: 80vw;
	}
	.circle-box p,
	.intro-left p {
		font-size: 3.5vw;
	}
	.caption-box {
		width: 80vw;
	}
	.popup-button,
	.product .popup-button {
		font-size: 3.5vw;
	}
}
