@charset "UTF-8";

@font-face {
    font-family: 'SourceHanSans';
	font-display: block;
    font-style: normal;
    font-weight: 500;
	src: url('./fonts/SourceHanSans/SourceHanSansJP-Medium.woff') format('woff'),
		 url('./fonts/SourceHanSans/SourceHanSansJP-Medium.otf') format('opentype');
}

#landing ol,#landing li { list-style: none!important; margin-left: 0!important;}

/* 汎用クラス */
.mt0 { margin-top: 0px !important;}
.mb0 { margin-bottom: 0px !important;}
.pt0 { padding-top: 0px !important;}
.pb0 { padding-bottom: 0px !important;}
.mt5 { margin-top: 5px !important;}
.mb5 { margin-bottom: 5px !important;}
.pt5 { padding-top: 5px !important;}
.pb5 { padding-bottom: 5px !important;}
.mt10 { margin-top: 10px !important;}
.mb10 { margin-bottom: 10px !important;}
.pt10 { padding-top: 10px !important;}
.pb10 { padding-bottom: 10px !important;}
.mt15 { margin-top: 15px !important;}
.mb15 { margin-bottom: 15px !important;}
.pt15 { padding-top: 15px !important;}
.pb15 { padding-bottom: 15px !important;}
.mt20 { margin-top: 20px !important;}
.mb20 { margin-bottom: 20px !important;}
.pt20 { padding-top: 20px !important;}
.pb20 { padding-bottom: 20px !important;}
.mt25 { margin-top: 25px !important;}
.mb25 { margin-bottom: 25px !important;}
.pt25 { padding-top: 25px !important;}
.pb25 { padding-bottom: 25px !important;}
.mt30 { margin-top: 30px !important;}
.mb30 { margin-bottom: 30px !important;}
.pt30 { padding-top: 30px !important;}
.pb30 { padding-bottom: 30px !important;}
.mt35 { margin-top: 35px !important;}
.mb35 { margin-bottom: 35px !important;}
.pt35 { padding-top: 35px !important;}
.pb35 { padding-bottom: 35px !important;}
.mt40 { margin-top: 40px !important;}
.mb40 { margin-bottom: 40px !important;}
.pt40 { padding-top: 40px !important;}
.pb40 { padding-bottom: 40px !important;}

.marker { background-color: #ffff00;}

header , footer{
	max-width: 750px !important;
	margin: auto;
}

/* ////////////////////////////////////////////////////////////////////////////////////////////////////////// */
/*  ---------------------------------------------- +landing  */
/* ////////////////////////////////////////////////////////////////////////////////////////////////////////// */

/* ▼コンテンツ用スタイル 編集可能領域ここから▼ --------------------------------------------------------------------------------------------*/
/********************

   common

*********************/
html {
	font-size: 32px;
	font-size: clamp(10px,4.3vw,32px)!important;/*1rem 32px/width-750px*/
}

#posture_doctor_lp {
	--font-base: "ヒラギノ角ゴ Pro W3", "Hiragino Kaku Gothic Pro", "メイリオ", Meiryo,Osaka, "ＭＳ Ｐゴシック", "MS PGothic", sans-serif;
	--font-SourceHanSans: "SourceHanSans" ,sans-serif;

	--color-black: #333;
	--color-green01: rgba(0, 135, 145, 1.0);
	--color-green02: rgba(0, 178, 169, 1.0);
	--color-gray01: #666;
	--color-gray02: #808080;

	position: relative;
	width: auto;
	height: auto;
	background-color: white;
	font-weight: 500;
	overflow: hidden;
	text-align: center;
	font-family: var(--font-base);
	font-size: 0.81rem;
	font-family: var(--font-SourceHanSans);
	color: var(--color-black);
	letter-spacing: 0.2em;
	line-height: 1.5;
}

#posture_doctor_lp * {
	box-sizing: border-box;
}

#posture_doctor_lp h2 {
	color: #4d4d4d;
	font-size: 1.04rem;
	font-weight: 700;
	margin: 0;
	line-height: 1.86;
	letter-spacing: 0.19em;
}

#posture_doctor_lp h3 {
	font-size: 0.94rem;
	font-weight: 700;
	margin: 0;
	line-height: 1.44;
	text-align: center;
	letter-spacing: 0.1em;
}

#posture_doctor_lp p {
	font-size: 0.86rem;
	line-height: 1.6;
	letter-spacing: 0.2em;
}

#posture_doctor_lp img {
	max-width: 100%;
	width: 100%;
	height: auto;
}

#posture_doctor_lp figure {
	margin: 0;
}


/********************
   parts
*********************/
#posture_doctor_lp .contents_wrapper {
	position: relative;
	width: 21rem;
	max-width: 750px;
	margin-right: auto;
	margin-left: auto;
}

#posture_doctor_lp .flex_base {
	position: relative;
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
}
#posture_doctor_lp .flex_base.flex_wrap {
	flex-wrap: wrap;
}

#posture_doctor_lp .attention_text {
	color: var(--color-gray01);
	font-size: 0.72rem;
	text-align: left;
}


#posture_doctor_lp .bg_img {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
}
#posture_doctor_lp .bg_img img {
	width: 100%;
	height: 100%;
	-o-object-fit: cover;
	   object-fit: cover;
}


#posture_doctor_lp .bg_visual,
#posture_doctor_lp .bg_visual img {
	width: 100%;
	height: auto;
}




/********************

   main

*********************/
/********************
   fv
*********************/
#posture_doctor_lp #fv {
	position: relative;
	width: 100%;
	height: 100vh;
	padding-bottom: 49.102vh;
	background: var(--color-green02);
	margin-right: auto;
	margin-left: auto;
	z-index: 100;
}

#posture_doctor_lp #fv .fv_img {
	text-align: center;
}
#posture_doctor_lp #fv .fv_img img {
	position: absolute;
	top: -0.04rem;
    left: 0;
	max-width: 750px;
	width: auto;
	height: 49.102vh;
}


#posture_doctor_lp #fv .fv_wrapper {
	position: absolute;
	bottom: 6vh;
	left: 50%;
	transform: translateX(-50%);
	height: auto;
	width: 74.389vw;
	/*margin-top: 18rem;*/
}

#posture_doctor_lp #fv .fv_inner {
	text-align: left;
	color: #fff;
}


#posture_doctor_lp #fv p,
#posture_doctor_lp #fv h1 {
	line-height: 1;
	color: #fff;
}

#posture_doctor_lp #fv .fv_tit {
	margin-bottom: 1.25rem;
	text-align: left;
	font-size: 1.8rem;
	font-weight: 700;
	letter-spacing: 0em;
	width: 13.7rem;
}
#posture_doctor_lp #fv .name {
	width: 10rem;
	margin-bottom: 1.44rem;
}

#posture_doctor_lp #fv .product_img {
	position: absolute;
	top: 5.6rem;
	right: -0.96rem;
	width: 7.6rem;
}

#posture_doctor_lp #fv .img_block {
	position: relative;
	left: 50%;
	transform: translateX(-50%);
	width: 18.7rem;
}
#posture_doctor_lp #fv .img_block img:nth-of-type(2) {
	margin-top: 0.96rem;
}


#posture_doctor_lp #fv .logo {
	position: absolute;
	top: -0.032rem;
	right: 0.11rem;
	display: flex;
	align-items: center;
	justify-content: flex-start;
	height: 4rem;
}
#posture_doctor_lp #fv .logo::before {
	content: "";
	position: absolute;
	top: 0;
	left: -3.2rem;
	width: 100vw;
	height: 100%;
	background: #fff;
	clip-path: polygon(0 0, 100% 0%, 100% 100%, 2.7rem 100%);
}
#posture_doctor_lp #fv .logo img {
	position: relative;
	width: auto;
	height: 2.5rem;
	margin-right: 0.7rem;
}




/********************
   cp_ofr
*********************/
#posture_doctor_lp .cp_ofr {
	--color-red: #952d5c;
	position: relative;
	z-index: 90;
	background: #a1d2d6;
	padding: 2rem 0 2.2rem;
}

#posture_doctor_lp .cp_ofr[data-position="p-bottom"] {
	background: transparent;
}

#posture_doctor_lp .cp_ofr {
	
}
#posture_doctor_lp .cp_ofr .cp_box {
	position: relative;
	background: #fff;
	width: 86%;
	height: auto;
	padding: 2.8rem 1.47rem 3.1rem;
	margin-left: auto;
	margin-right: auto;
}

#posture_doctor_lp .cp_ofr .cp_box .cp_ofr_bg span {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background: var(--color-green01);
	transform: skewX(3.9deg);
	box-shadow: 0px 0px 7px rgba(0, 0, 0, 0.2);
}
#posture_doctor_lp .cp_ofr .cp_box .cp_ofr_bg span:nth-of-type(2) {
	position: absolute;
	transform: skewX(-3.9deg);
}

#posture_doctor_lp .cp_ofr .cp_box .cp_ofr_bg span:nth-of-type(2)::before {
	content: "";
	position: absolute;
	top: 4%;
	left: 0;
	width: 100%;
	height: 92%;
	background: #fff;
}

#posture_doctor_lp .cp_ofr .contents_block {
	position: relative;
	width: 100%;
	height: 100%;
}

#posture_doctor_lp .cp_ofr .img_block {
	width: 9.2rem;
	margin: 0 auto 0.62rem;
	text-align: center;
}
#posture_doctor_lp .cp_ofr .img_block img {
	width: 100%;
}

#posture_doctor_lp .cp_ofr .text_block {
	text-align: center
}
#posture_doctor_lp .cp_ofr .text_block p,
#posture_doctor_lp .cp_ofr .text_block h2 {
	width: 92%;
	font-weight: 700;
	font-size: 1.3rem;
	margin: 0 auto 0.6rem;
}


#posture_doctor_lp .cp_ofr .cp_ofr_btn  {
	width: 100%;
	height: 3.2rem;
	margin-left: auto;
	margin-right: auto;
}
#posture_doctor_lp .cp_ofr .cp_ofr_btn a {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	height: 100%;
	font-size: 1.25rem;
}
#posture_doctor_lp .cp_ofr .cp_ofr_btn a .btn_arrow_ {
	width: 0.56em;
	height: 0.56em;
}



/********************
    movie
*********************/
#posture_doctor_lp #movie {
	position: relative;
	z-index: 80;
	background: var(--color-green02);
	padding-top: 2.5em;
	padding-bottom: 2.62rem;
}

#posture_doctor_lp #movie .contents_wrapper {
	position: relative;
}

#posture_doctor_lp #movie .heading {
	position: relative;
	width: 15.6rem;
	margin: 0 auto 1.14rem;
	font-size: 0.92rem;
	letter-spacing: 0.1em;
	color: #fff;
}

#posture_doctor_lp #movie .youtube_box {
	width: 89.1%;
	position: relative;
	margin-right: auto;
	margin-left: auto;
	z-index: 100;
}
#posture_doctor_lp #movie .youtube_box::before {
	content: "";
	position: relative;
	display: block;
	padding-top: calc(100% * (1080/1080));
}
#posture_doctor_lp #movie iframe {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background: #808080;
}



/********************
    worry
*********************/
#posture_doctor_lp .worry {
	position: relative;
	padding: 0;
	z-index: 10;
	background-size: cover;
	background-repeat: no-repeat;
	background-position: center;
	background: #08548e;
}

#posture_doctor_lp .worry .contents_wrapper {
	position: relative;
	width: 100%;
}
#posture_doctor_lp .worry img {
	width: 100%;
}


/********************
    recommend
*********************/
#posture_doctor_lp .recommend {
	position: relative;
}

#posture_doctor_lp .recommend .heading {
	position: relative;
	margin: 0;
	color: #fff;
	padding: 1.4rem 1.56rem;
	line-height: 1.8;
	letter-spacing: 0.2em;
	background: -webkit-radial-gradient(50% 50%, circle farthest-corner, rgba(0, 226, 219, 0.86) 0%, rgba(0, 0, 0, 0.02) 96%, rgba(0, 0, 0, 0.02) 100%);;
	background-color: var(--color-green02);
}

#posture_doctor_lp .recommend .heading img {
	width: 14rem;
}

#posture_doctor_lp .recommend .heading::after {
	content: "";
	position: absolute;
	bottom: 1px;
	left: 50%;
	transform: translateX(-50%) translateY(100%);
	background-color: #00d0c8;
	width: 2.5rem;
	height: 1.6rem;
	-webkit-clip-path: polygon(0 0, 50% 100%, 100% 0%);
	        clip-path: polygon(0 0, 50% 100%, 100% 0%);
}

#posture_doctor_lp .recommend .outer {
	padding: 4rem 0 3.4rem;
	background-image: url(../img/recommend_bg-sp@2x.jpg);
	background-repeat: no-repeat;
	background-size: cover;
	background-position: center top;
	text-align: left;
}

#posture_doctor_lp .recommend .contents_wrapper {
	width: 17.6rem;
	text-align: left;
}

#posture_doctor_lp .recommend .logo img {
	width: 6.2rem;
	margin-bottom: 1.7rem;
}

#posture_doctor_lp .recommend .tit {
	width: 12.5rem;
	text-align: left;
	font-size: 1.3rem;
	line-height: 1.55;
	margin-bottom: 1.7rem;
}

#posture_doctor_lp .recommend .name {
	width: 10.4rem;
	font-size: 0.92rem;
	text-align: left;
	margin-left: -0.2rem;
}




/********************
    points
*********************/
#posture_doctor_lp .points {
	position: relative;
	padding: 0;
}

#posture_doctor_lp .points .heading {
	position: relative;
	padding: 3rem 0 5.6rem;
	background-image: url(../img/deco/points_bg_deco-sp@2x.jpg);
	background-repeat: no-repeat;
	background-size: cover;
	width: 100%;
}

#posture_doctor_lp .points .heading img {
	width: 14rem;
}

#posture_doctor_lp .points > .img_block {
	position: relative;
	width: 16rem;
	margin: -3.4rem auto 2rem;
}


#posture_doctor_lp .point {
	position: relative;
	margin-top: 8.6rem;
}
#posture_doctor_lp .point::after {
	content: "";
	position: absolute;
	display: block;
	background-repeat: no-repeat;
	background-size: contain;
}

#posture_doctor_lp .point .contents_block {
	position: relative;
	margin-left: auto;
	margin-right: auto;
	z-index: 10;
}

#posture_doctor_lp .point .text_block {
	position: relative;
	width: 15.6rem;
	margin: 0 auto;
	text-align: left;
	color: var(--color-gray01);
}


#posture_doctor_lp .point .num_box {
	position: relative;
	padding-bottom: 0.76rem;
	margin-bottom: 1.86rem;
	font-size: 0.8rem;
	text-align: left;
	line-height: 1;
}
#posture_doctor_lp .point .num_box::after {
	content: "";
	position: absolute;
	bottom: 0;
	left: 0;
	width: 100vw;
	height: 0.03rem;
	background: var(--color-green02);
}

#posture_doctor_lp .point:nth-of-type(2n+1) .num_box::after {
	left: auto;
	right: -0.11rem;
}
#posture_doctor_lp .point:nth-of-type(2n) .num_box::after {
	left: 0.19rem;
	right: auto;
}


#posture_doctor_lp .point .tit {
	position: relative;
	margin-bottom: 1.04rem;
	padding-left: 0.028rem;
	font-size: 0.8rem;
	text-align: left;
	color: var(--color-green01);
}



#posture_doctor_lp .point .text {
}


#posture_doctor_lp .point .img_block {
	position: relative;
	left: 50%;
	transform: translateX(-50%);
}
#posture_doctor_lp .point .img_block img {
	display: block;
}
#posture_doctor_lp .point .img_block img:nth-of-type(n+2) {
	margin-top: 1.5rem;
}



/***   1   ***/
#posture_doctor_lp .point[data-num="01"] {
	margin-top: 3.1rem;
}

#posture_doctor_lp .point[data-num="01"] .num_box {
	width: 4.4rem;
}
#posture_doctor_lp .point[data-num="01"] .tit {
	width: 11rem;
}


#posture_doctor_lp .point[data-num="01"] .img_block {
	margin-left: -1rem;
	margin-top: 2.5rem;
}

#posture_doctor_lp .point[data-num="01"] .img_block img:nth-of-type(2) {
	margin-left: 2.9rem;
}


/***   2   ***/
#posture_doctor_lp .point[data-num="02"] {
	margin-top: 9.2rem;
}

#posture_doctor_lp .point[data-num="02"] .num_box {
	width: 4.7rem;
}
#posture_doctor_lp .point[data-num="02"] .tit {
	width: 10.6rem;
}

#posture_doctor_lp .point[data-num="02"] .img_block {
	width: 96%;
	left: calc(50% + 0.73rem);
	margin-bottom: 3rem;
}


/***   3   ***/
#posture_doctor_lp .point[data-num="03"] {
	margin-top: 10rem;
}

#posture_doctor_lp .point[data-num="03"] .num_box {
	width: 4.76rem;
}
#posture_doctor_lp .point[data-num="03"] .tit {
	width: 8.7rem;
}

#posture_doctor_lp .point[data-num="03"] .img_block {
	width: 89%;
	margin-left: -2.5rem;
	margin-bottom: 2.5rem;
}

#posture_doctor_lp .point[data-num="03"] .img_block img:nth-of-type(2) {
	margin-left: 2.9rem;
	margin-top: 0.82rem;
}


/***   4   ***/
#posture_doctor_lp .point[data-num="04"] {
	margin-top: 8.1rem;
}
#posture_doctor_lp .point[data-num="04"] .contents_block {
	padding-bottom: 4.4rem;
}
#posture_doctor_lp .point[data-num="04"] .num_box {
	width: 5.5rem;
}
#posture_doctor_lp .point[data-num="04"] .tit {
	width: 11rem;
}


#posture_doctor_lp .point[data-num="04"] .img_block {
	width: 82.8%;
	margin-left: 0.8rem;
	margin-bottom: 2.2rem;
}

#posture_doctor_lp .point[data-num="04"] .img_block img:nth-of-type(2) {
	width: 92.9%;
	margin-top: 0.82rem;
	margin-left: -2.9rem;
}



/***   design   ***/
#posture_doctor_lp .point:nth-of-type(2n) .contents_block::before {
	content: "";
	position: absolute;
	bottom: -4.7rem;
	left: 50%;
	transform: translateX(-50%);
	width: 100vw;
	height: 69%;
	background: linear-gradient(90deg, rgba(0, 178, 169, 1) 0%, rgba(0, 178, 169, 0) 72.47%);
	opacity: 0.2;
}
#posture_doctor_lp .point:nth-of-type(4) .contents_block::before {
	bottom: 0;
	height: 82%;
}

#posture_doctor_lp .point .hexagon_deco_wrapper {
	position: absolute;
}

#posture_doctor_lp .point .hexagon_deco {
	--size: 6.2rem;
	display: block;
	width: var(--size);
	height: auto;
	aspect-ratio: 200 / 173;
	background-color: var(--color-green02);
	opacity: 0.1;
	clip-path: polygon(25% 0%, 75% 0%, 100% 50%, 75% 100%, 25% 100%, 0% 50%);
	color: white;
}

#posture_doctor_lp .point .hexagon_deco[data-direction="horizontal"] {
	width: auto;
	height: var(--size);
	aspect-ratio: 173 / 200;
	clip-path: polygon(0% 25%, 50% 0%, 100% 25%, 100% 75%, 50% 100%, 0% 75%);
}
#posture_doctor_lp .point .hexagon_deco[data-size="l"] {
	--size: 12.5rem;
}
#posture_doctor_lp .point .hexagon_deco[data-size="m"] {
	--size: 9.2rem;
}

/* 1 */
#posture_doctor_lp .point[data-num="01"]::after {
	background-image: url(../img/deco/points_line_deco01-sp@2x.png);
	width: 10rem;
	height: calc(10rem * (254/315));
	top: calc(100% + 0.82rem);
	left: 6rem;
}

#posture_doctor_lp .point[data-num="01"] .hexagon_deco_wrapper {
	top: 0.55rem;
	right: -2.9rem;
}
#posture_doctor_lp .point[data-num="01"] .hexagon_deco_wrapper .hexagon_deco[data-size="m"] {
	position: absolute;
	top: 76%;
	right: -22%;
}


/* 2 */
#posture_doctor_lp .point[data-num="02"]::after {
	background-image: url(../img/deco/points_line_deco02-sp@2x.png);
	width: 10.4rem;
	height: calc(10.4rem * (306/355));
	top: calc(100% + 1.8rem);
	left: 6.2rem;
}


#posture_doctor_lp .point[data-num="02"] .hexagon_deco_wrapper[data-position="01"] {
	top: calc(100%);
	left: -4rem;
	top: 15rem;
}

#posture_doctor_lp .point[data-num="02"] .hexagon_deco_wrapper[data-position="02"] {
	top: calc(100% + 13rem);
	right: -4.7rem;
}
#posture_doctor_lp .point[data-num="02"] .hexagon_deco_wrapper[data-position="02"] .hexagon_deco[data-size="l"] {
	--size: 18.4rem;
}
#posture_doctor_lp .point[data-num="02"] .hexagon_deco_wrapper[data-position="02"] .hexagon_deco[data-size="s"] {
	--size: 8.7rem;
	position: absolute;
	top: -0.86rem;
	right: -0.92rem;
}


/* 3 */
#posture_doctor_lp .point[data-num="03"]::after {
	background-image: url(../img/deco/points_line_deco03-sp@2x.png);
	width: 6.2rem;
	height: calc(6.2rem * (351/199));
	top: calc(100% + 0.77rem);
	left: 9.6rem;
}


#posture_doctor_lp .point[data-num="03"] .hexagon_deco_wrapper {
	top: calc(100% + 2.2rem);
	left: -2.9rem;
}

/* 4 */
#posture_doctor_lp .point[data-num="04"] .hexagon_deco_wrapper {
	top: 7.6rem;
	right: -1.5rem;
}
#posture_doctor_lp .point[data-num="04"] .hexagon_deco_wrapper .hexagon_deco[data-size="s"] {
	position: absolute;
	top: 73%;
	right: 10%;
}




/********************
    products_specification
*********************/
/***************/
.outer_deco[data-position="p-bottom"] {
	background: var(--color-green02);
}
/***************/

#products_specification {
	position: relative;
	padding-top: 0.5rem;
	padding-bottom: 2.5rem;
	background : var(--color-blue01-opa015);
}
#products_specification .contents_wrapper {
	position: relative;
	width: 20rem;
}


/*****   table   *****/
#products_specification table {
	border-collapse: collapse;
	width: 100%;
	text-align: left;
	display: block;
}
#products_specification caption {
	display: block;
	width: 100%;
	margin-right: auto;
	margin-left: auto;
	align-items: center;
	width: 100%;
	height: auto;
	padding: 2.2% 5% 2.7%;
	box-sizing: border-box;
	margin-bottom: 1rem;
	font-size: 1rem;
	font-weight: 700;
	letter-spacing: 0.04em;
	color: var(--color-green01);
	background: #fff;
	text-align: center;
}
#products_specification tbody,
#products_specification tr {
	display: block;
	width: 100%;
}
#products_specification td,#products_specification th {
	display: block;
	width: 100%;
	font-weight: 600;
	padding: 1.6% 2.2% 1.1% 4.4%;
	height: auto;
	font-size: 0.84rem;
	color: #000;
	border-bottom-width: 0px;
	font-weight: 400;
}
#products_specification tbody:last-of-type tr:last-of-type td {
	border-bottom-width: 1px;
}

#products_specification th {
	background-color: var(--color-green01);
	color: #fff;
	font-size: 0.86rem;
	font-weight: 700;
	font-family: var(--font-base);
}
#products_specification td {
	background-color: #fff;
	font-size: 0.8rem;
	letter-spacing: 0;
	padding: 1.4% 3% 2% 4.4%;
}
#products_specification td .bold {
	font-weight: 700;
}

#products_specification .attention_text {
	margin-top: 0.7em;
	padding-left: 0.44em;
	color: #fff;
	letter-spacing: 0.1em;
}

/* ▲コンテンツ用スタイル 編集可能領域ここまで▲ --------------------------------------------------------------------------------------------*/