@import url("https://fonts.googleapis.com/css?family=Roboto:100,100i,300,300i,400,400i,500,500i,700,700i,900,900i");
@import url("https://fonts.googleapis.com/css?family=Roboto+Condensed:400+700");
@import url("https://fonts.googleapis.com/css?family=Noto+Sans+JP:300,400,500,700&display=swap");
@import url("https://fonts.googleapis.com/css?family=Oswald:400,500&display=swap");
@import url("https://fonts.googleapis.com/css2?family=Noto+Serif+JP:wght@500;600;700&display=swap");

html,
body,
div,
span,
object,
iframe,
h1, h2, h3, h4, h5, h6, p, blockquote, pre, abbr, address, cite, code, del, dfn, em, img, ins, kbd, q, samp, small, strong, sub, sup, var, b, i, dl, dt, dd, ol, ul, li, fieldset, form, label, legend, table, caption, tbody, tfoot, thead, tr, th, td, article, aside, canvas, details, figcaption, figure, footer, header, hgroup, menu, nav, section, summary, time, mark, audio, video, input, button {
	margin: 0;
	padding: 0;
	border: 0;
	outline: 0;
	vertical-align: baseline;
	background: transparent;
}

sup {
	vertical-align: super;
}

sub {
	vertical-align: sub;
}

article, aside, details, figcaption, figure, footer, header, hgroup, menu, nav, section {
	display: block;
}

ul, ol {
	list-style: none;
}

blockquote, q {
	quotes: none;
}

blockquote:before,
blockquote:after,
q:before,
q:after {
	content: '';
	content: none;
}

a {
	margin: 0;
	padding: 0;
	font-size: 100%;
	vertical-align: baseline;
	background: transparent;
	color: inherit;
	text-decoration: none;
	display: block;
	box-sizing: border-box;
	transition: .2s;
}

img {
	vertical-align: bottom;
	border: none;
	width: 100%;
	height: auto;
}

del {
	text-decoration: line-through;
}

abbr[title],
dfn[title] {
	border-bottom: 1px dotted;
	cursor: help;
}

table {
	border-collapse: collapse;
	border-spacing: 0;
}

hr {
	display: block;
	height: 1px;
	border: 0;
	border-top: 1px solid #cccccc;
	margin: 1em 0;
	padding: 0;
}

input, select {
	vertical-align: middle;
	font-size: 14px;
}

.mT0 {
	margin-top: 0px !important;
}

.mT5 {
	margin-top: 5px !important;
}

.mT10 {
	margin-top: 10px !important;
}

.mT15 {
	margin-top: 15px !important;
}

.mT20 {
	margin-top: 20px !important;
}

.mT25 {
	margin-top: 25px !important;
}

.mT30 {
	margin-top: 30px !important;
}

.mT35 {
	margin-top: 35px !important;
}

.mT40 {
	margin-top: 40px !important;
}

.mT45 {
	margin-top: 45px !important;
}

.mT50 {
	margin-top: 50px !important;
}

.mT55 {
	margin-top: 55px !important;
}

.mT60 {
	margin-top: 60px !important;
}

.mT65 {
	margin-top: 65px !important;
}

.mB0 {
	margin-bottom: 0px !important;
}

.mB5 {
	margin-bottom: 5px !important;
}

.mB10 {
	margin-bottom: 10px !important;
}

.mB15 {
	margin-bottom: 15px !important;
}

.mB20 {
	margin-bottom: 20px !important;
}

.mB25 {
	margin-bottom: 25px !important;
}

.mB30 {
	margin-bottom: 30px !important;
}

.mB35 {
	margin-bottom: 35px !important;
}

.mB40 {
	margin-bottom: 40px !important;
}

.mB45 {
	margin-bottom: 45px !important;
}

.mB50 {
	margin-bottom: 50px !important;
}

.mB55 {
	margin-bottom: 55px !important;
}

.mB60 {
	margin-bottom: 60px !important;
}

.mB65 {
	margin-bottom: 65px !important;
}

.pT0 {
	padding-top: 0px !important;
}

.pT5 {
	padding-top: 5px !important;
}

.pT10 {
	padding-top: 10px !important;
}

.pT15 {
	padding-top: 15px !important;
}

.pT20 {
	padding-top: 20px !important;
}

.pT25 {
	padding-top: 25px !important;
}

.pT30 {
	padding-top: 30px !important;
}

.pT35 {
	padding-top: 35px !important;
}

.pT40 {
	padding-top: 40px !important;
}

.pT45 {
	padding-top: 45px !important;
}

.pT50 {
	padding-top: 50px !important;
}

.pT55 {
	padding-top: 55px !important;
}

.pT60 {
	padding-top: 60px !important;
}

.pT65 {
	padding-top: 65px !important;
}

.pB0 {
	padding-bottom: 0px !important;
}

.pB5 {
	padding-bottom: 5px !important;
}

.pB10 {
	padding-bottom: 10px !important;
}

.pB15 {
	padding-bottom: 15px !important;
}

.pB20 {
	padding-bottom: 20px !important;
}

.pB25 {
	padding-bottom: 25px !important;
}

.pB30 {
	padding-bottom: 30px !important;
}

.pB35 {
	padding-bottom: 35px !important;
}

.pB40 {
	padding-bottom: 40px !important;
}

.pB45 {
	padding-bottom: 45px !important;
}

.pB50 {
	padding-bottom: 50px !important;
}

.pB55 {
	padding-bottom: 55px !important;
}

.pB60 {
	padding-bottom: 60px !important;
}

.pB65 {
	padding-bottom: 65px !important;
}

.fw-b {
	font-weight: bold;
}

* {
	box-sizing: border-box;
}

body, html {
	min-width: 1150px;
}

@media only screen and (max-width: 767px) {
	body,
	html {
		min-width: 100%
	}
}

body {
	color: #222;
	line-height: 2em;
	font-family: Arial, "Hiragino Sans", "ヒラギノ角ゴ ProN", "Hiragino Kaku Gothic ProN", "游ゴシック", YuGothic, "メイリオ", Meiryo, sans-serif;
	word-break: break-word;
	width: 100%;
	font-weight: 300;
	font-size: 16px;
}

@media only screen and (max-width: 767px) {
	body {
		font-size: 13px;
		font-size: 3.46667vw;
		line-height: 1.8em;
	}
}

.container {
	overflow: hidden;
}

.pc {
	display: block;
}

@media only screen and (max-width: 767px) {
	.pc {
		display: none;
	}
}

.sp {
	display: none;
}

@media only screen and (max-width: 767px) {
	.sp {
		display: block;
	}
}

.heading-xl {
	font-size: 54px;
	font-weight: bold;
}

@media only screen and (max-width: 767px) {
	.heading-xl {
		font-size: 32px;
		font-size: 8.53333vw;
	}
}

.heading-l {
	font-size: 36px;
	font-weight: bold;
}

@media only screen and (max-width: 767px) {
	.heading-l {
		font-size: 26px;
		font-size: 6.93333vw;
	}
}

.heading-m {
	font-size: 28px;
	margin-bottom: 20px;
	line-height: 1.5em;
	font-weight: bold;
}

@media only screen and (max-width: 767px) {
	.heading-m {
		margin-bottom: 10px;
		font-size: 22px;
		font-size: 5.86667vw;
	}
}

.heading-s {
	font-size: 24px;
	font-weight: bold;
	margin-bottom: 20px;
}

@media only screen and (max-width: 767px) {
	.heading-s {
		margin-bottom: 10px;
		font-size: 18px;
		font-size: 4.8vw;
	}
}

.heading-xs {
	font-size: 20px;
	font-weight: bold;
}

@media only screen and (max-width: 767px) {
	.heading-xs {
		margin-bottom: 10px;
		font-size: 16px;
		font-size: 4.26667vw;
	}
}

.wh-txt {
	color: #fff !important;
}

.default-btn {
	display: block;
	width: 300px;
	padding: 22px 20px 19px;
	margin: 60px auto 0;
	text-align: center;
	text-decoration: none;
	outline: none;
	transition: all 0.3s;
	background-color: #fa8072;
	border: 2px solid #fa8072;
	color: #fff;
	position: relative;
	font-weight: 600;
	cursor: pointer;
}

.default-btn.left {
	margin: 60px auto 0 0;
}

@media only screen and (max-width: 767px) {
	.default-btn {
		width: 100%
	}
}

.default-btn:after {
	content: "";
	display: block;
	width: 8px;
	height: 8px;
	border-top: 2px solid #fff;
	border-right: 2px solid #fff;
	transform: rotate(45deg);
	right: 25px;
	top: calc(50% - 8px / 2);
	position: absolute;
	transition: 0.3s;
}

.default-btn:hover {
	background-color: #fa8072;
	border-color: #fa8072;
	color: #fff;
}

.default-btn:hover:after {
	right: 18px;
	background-image: url("../img/btn_arrow_on.svg");
}

a img {
	transition: 0.2s;
}

a img:hover {
	opacity: 0.7;
}

.sec-in {
	max-width: 1100px;
	min-width: 950px;
	width: 95%;
	margin: 0 auto 120px;
}

@media only screen and (max-width: 1024px) {
	.sec-in {
		width: 95%
	}
}

@media only screen and (max-width: 767px) {
	.sec-in {
		width: 100%;
		max-width: 100%;
		min-width: 100%;
		margin: 0 auto 50px;
		padding: 0 20px;
	}
}

.sec-in.sec-in-bg {
	padding: 120px 0;
}

@media only screen and (max-width: 767px) {
	.sec-in.sec-in-bg {
		padding: 50px 20px;
	}
}

.flex {
	display: flex;
}

.f-sb {
	justify-content: space-between;
}
.footer-nav-upper .f-sb{
	justify-content:space-around;
}
.f-ed {
	justify-content: flex-end;
}

.f-ct {
	justify-content: center;
}

.f-wp {
	flex-wrap: wrap;
}

.f-ic {
	align-items: center;
}

.topic-path {
	display: flex;
	margin: 10px auto 50px;
}

@media only screen and (max-width: 1024px) {
	.topic-path {
		width: 95%;
		margin-top: 80px;
	}
}

@media only screen and (max-width: 767px) {
	.topic-path {
		max-width: inherit;
		display: none;
	}
}

.topic-path__list {
	margin-right: 10px;
	font-size: 12px;
	padding-left: 15px;
	box-sizing: border-box;
	position: relative;
}

.topic-path__list:before {
	content: "";
	display: block;
	width: 5px;
	height: 5px;
	border-top: 1px solid #333;
	border-right: 1px solid #333;
	transform: rotate(45deg);
	position: absolute;
	top: 8px;
	left: 0;
}

.topic-path__list:first-child {
	padding-left: 0;
}

.topic-path__list:first-child:before {
	display: none;
}

.topic-path__list a {
	display: block;
	font-size: 12px;
}

.topic-path__list a:hover {
	text-decoration: underline;
}

.disc,
.decimal {
	margin-left: 1.2em;
}

.disc li,
.decimal li {
	list-style-type: disc;
	text-align: left;
	margin-bottom: 10px;
}

.disc li > .disc,
.disc li > .decimal,
.decimal li > .disc,
.decimal li > .decimal {
	margin: 15px 0 15px 1.2em;
}

.decimal li {
	list-style-type: decimal;
}

.taC {
	text-align: center;
}

.taL {
	text-align: left;
}

.taR {
	text-align: right;
}

.inview {
	opacity: 0;
	position: relative;
}

.inview.animate {
	animation: inview_slide_up 1.3s cubic-bezier(0.165, 0.84, 0.44, 1) forwards 0.2s;
}

.inview-group .inview-list,
.inview-group .inview-list2 {
	opacity: 0;
	position: relative;
}

.inview-group .inview-list.animate {
	animation: inview_slide_up 0.7s cubic-bezier(0.4, 0, 0.2, 1) forwards 0.2s;
}

.inview-group .inview-list2.animate {
	animation: inview_slide_up 0.7s cubic-bezier(0.4, 0, 0.2, 1) forwards 0.6s;
}

@keyframes inview_slide_up {
	0% {
		bottom: -50px;
	}

	100% {
		opacity: 1;
		bottom: 0;
	}
}

input[type="number"]::-webkit-outer-spin-button,
input[type="number"]::-webkit-inner-spin-button {
	-webkit-appearance: none;
	margin: 0;
}

input[type="number"] {
	-moz-appearance: textfield;
}

input[type=submit] {
	-webkit-appearance: none;
}

textarea {
	resize: none;
	width: auto;
	height: auto;
}

.main-u-v {
	background: #71afd1;
	position: relative;
	width: 100%;
	height: 400px;
	margin-bottom: -40px;
	z-index: -1;
}

@media only screen and (max-width: 767px) {
	.main-u-v {
		height: 300px;
		margin: 60px 0;
	}
}

.main-u-v .main-u-v-in {
	position: absolute;
	top: 50%;
	left: 50%;
	width: 100%;
	text-align: center;
	transform: translate(-50%, -20%);
}

.main-u-v .main-u-v-in h2 {
	font-size: 48px;
	letter-spacing: .05em;
	color: #fff;
}

.main-u-v .main-u-v-in h2 span {
	display: block;
	font-size: 20px;
	margin-top: 25px;
	font-weight: 500;
}

@media only screen and (max-width: 767px) {
	.main-u-v .main-u-v-in {
		position: absolute;
		top: 50%;
		left: 50%;
		width: 100%;
		text-align: center;
		transform: translate(-50%, -50%);
	}
}

.pagination ul {
	display: flex;
	justify-content: center;
}

.pagination ul li span,
.pagination ul a {
	display: inline-block;
	color: #222;
	background-color: #fff;
	text-decoration: none;
	text-align: center !important;
	line-height: 42px;
	width: 44px;
	height: 44px;
	margin: 0 10px;
	transition: .2s ease-in-out;
	white-space: nowrap;
	border: 1px solid #222;
}

.pagination ul li span:hover,
.pagination ul li span.current,
.pagination ul a:hover,
.pagination ul a.current {
	background: #222;
	border: 1px solid #222;
	color: #fff;
	text-decoration: none;
}

header {
	height: 80px;
	width: 1100px;
	top: 0;
	z-index: 999;
	position: fixed;
	background: #fff;
	margin: 0 auto;
	left: 0;
	right: 0;
	box-shadow: rgba(0, 0, 0, 0.15) 0px 25px 50px -12px;
}

@media only screen and (max-width: 767px) {
	header {
		height: 60px;
		width: 100%;
		position: fixed;
		box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1);
	}
}

header .header-in {
	padding: 0 0 0 30px;
	margin: 0 auto;
	position: relative;
	display: flex;
	justify-content: space-between;
	align-items: center;
	height: 100%;
}

@media only screen and (max-width: 767px) {
	header .header-in {
		width: 100%;
		padding: 0;
	}
}

header .header-in h1 {
	width: 220px;
	margin-right: 60px;
}

header .header-in h1 img {
	display: block;
	top: 0;
}

@media only screen and (max-width: 767px) {
	header .header-in h1 {
		position: fixed;
		width: 200px;
		left: 20px;
		top: 20px;
	}
}

header .header-in .header-nav {
	width: 800px;
}

@media only screen and (max-width: 767px) {
	header .header-in .header-nav {
		width: 100%;
		position: absolute;
		top: 60px;
	}
}

@media only screen and (max-width: 767px) {
	header .header-in .header-nav ul {
		display: none;
		background-color: #333;
	}
}

header .header-in .header-nav ul li {
	position: relative;
	line-height: 80px;
}

@media only screen and (max-width: 767px) {
	header .header-in .header-nav ul li {
		line-height: normal;
	}
}

header .header-in .header-nav ul li a {
	font-weight: 600;
	letter-spacing: .05em;
	transition: 0.2s;
}

@media only screen and (max-width: 767px) {
	header .header-in .header-nav ul li a,
	header .header-in .header-nav ul li button {
		border-bottom: 1px solid #888;
		color: #fff;
		padding: 18px;
		position: relative;
	}

	header .header-in .header-nav ul li button {
		display: flex;
		justify-content: space-between;
		align-items: center;
		width: 100%;
		font-weight: 600;
	}

	header .header-in .header-nav ul li button::after {
		content: "▼";
		position: relative;
		transform: rotateX(0deg);
		transition: transform 0.3s;
	}

	header .header-in .header-nav ul li .header-button-on::after {
		transform: rotateX(180deg);
	}
}

header .header-in .header-nav ul li a:hover {
	color: #0c69a3;
}

header .header-in .contact-btn {
	position: absolute;
	right: -1px;
	top: 0;
	width: 170px;
}

header .header-in .contact-btn > div {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	height: 80px;
	padding: 0 10px;
	background-color: #fa8072;
	color: #fff;
	letter-spacing: .05em;
	transition: .2s;
}

header .header-in .contact-btn div > div {
	display: flex;
	justify-content: space-between;
	align-items: center;
	width: 100%;
	line-height: 1.5;
}

header .header-in .contact-btn div > div + div {
	margin-top: 5px;
}

header .header-in .contact-btn div > div span:nth-of-type(1) {
	font-size: 12px;
}

@media only screen and (max-width: 767px) {
	header .header-in .contact-btn a {
		padding: 10px;
		line-height: normal;
	}
}

header .header-in .contact-btn a div::before {
	content: '';
	width: 16px;
	height: 16px;
	transition: .2s;
}

header .header-in .contact-btn a div:nth-of-type(1)::before {
	background: transparent url("../../assets/img/common/icon-tel.svg") center no-repeat;
}

header .header-in .contact-btn a div:nth-of-type(2)::before {
	background: transparent url("../../assets/img/common/icon-fax.svg") center no-repeat;
}

header .header-in .contact-btn a:hover {
	background: #71afd1;
	color: #fff !important;
}

header .nav_toggle {
	display: none;
}

@media only screen and (max-width: 767px) {
	header .nav_toggle {
		display: block;
		width: 30px;
		height: 36px;
		position: absolute;
		top: 18px;
		z-index: 100;
		right: 16px;
	}

	header .nav_toggle div {
		position: relative;
	}

	header .nav_toggle span {
		display: block;
		height: 3px;
		background: #222;
		position: absolute;
		width: 100%;
		left: 0;
		transition: 0.3s ease-in-out;
	}

	header .nav_toggle span:nth-child(1) {
		top: 0;
	}

	header .nav_toggle span:nth-child(2) {
		top: 11px;
	}

	header .nav_toggle span:nth-child(3) {
		top: 22px;
	}

	header .nav_toggle.open span:nth-child(1) {
		top: 12px;
		transform: rotate(135deg);
	}

	header .nav_toggle.open span:nth-child(2) {
		width: 0;
		left: 50%
	}

	header .nav_toggle.open span:nth-child(3) {
		top: 12px;
		transform: rotate(-135deg);
	}

	header .header-in .contact-btn {
		width: 100%;
		padding: 10px 0;
	}

	header .header-in .contact-btn > div {
		display: none;
	}

	header .header-in .header-nav .contact-btn a {
		position: static;
		display: flex;
		flex-direction: column;
		justify-content: space-between;
		align-items: center;
		width: 220px;
		height: 80px;
		margin: 0 auto;
		padding: 15px;
		border-bottom: none;
		background-color: #fa8072;
		font-size: 18px;
		color: #fff;
	}
}

.footer {
	background-color: #333;
	padding: 60px 0;
	position: relative;
	box-sizing: border-box;
	clear: both;
}

@media only screen and (max-width: 767px) {
	.footer {
		height: auto;
		padding: 25px 20px;
	}
}

.footer .footer-in {
	width: 650px;
	margin: 0 auto;
	color: #fff;
}

@media only screen and (max-width: 767px) {
	.footer .footer-in {
		width: 100%
	}
}

.footer .footer-in .footer-nav-upper nav {
	margin-bottom: 40px;
}

@media only screen and (max-width: 767px) {
	.footer .footer-in .footer-nav-upper nav {
		margin-bottom: 20px;
	}

	.footer .footer-in .footer-nav-upper nav ul {
		flex-wrap: wrap;
	}

	.footer .footer-in .footer-nav-upper nav ul li {
		width: 32%;
		text-align: center;
	}
}

.footer .footer-in .footer-nav-upper nav ul li {
	position: relative;
}

.footer .footer-in .footer-nav-upper nav ul li a {
	transition: 0.2s;
}

.footer .footer-in .footer-nav-upper nav ul li a:hover {
	opacity: 0.4;
}

.footer .footer-in .logo {
	width: 340px;
	margin: 0 auto 40px;
}

@media only screen and (max-width: 767px) {
	.footer .footer-in .logo {
		width: 60%;
		margin-bottom: 20px;
	}
}

.footer .footer-in .copy-light {
	font-size: 10px;
	color: #fff;
	text-align: center;
}

@media only screen and (max-width: 767px) {
	.footer .footer-in .copy-light {
		margin: 0 auto;
		line-height: 1.4em;
	}
}

.btn-to-top {
	display: none;
}

.btn-to-top a {
	width: 60px;
	height: 60px;
	background: #333;
	position: fixed;
	right: 0;
	bottom: 0;
}

.btn-to-top a:after {
	content: "";
	display: block;
	width: 17px;
	height: 17px;
	border-top: 4px solid #fff;
	border-right: 4px solid #fff;
	transform: rotate(-45deg);
	position: absolute;
	top: 24px;
	left: 19px;
}

.btn-to-top.current {
	position: absolute;
	top: -34px;
	bottom: inherit;
}

#temp-001 .main-video {
	width: 100%;
	height: 100vh;
	background: linear-gradient(to bottom right, rgba(191, 240, 152, 0.8), rgba(111, 214, 255, 0.8));
	margin-bottom: 0;
}

#temp-001 .main-video .main-video-bg {
	position: absolute;
	right: 0;
	bottom: 0;
	min-width: 100%;
	min-height: 100%;
	width: auto;
	height: auto:url("../assets/img/poster.jpg") no-repeat;
}

#temp-001 .main-video .main-ttl {
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
	width: 100%;
	text-align: center;
	font-size: 56px;
	color: #000;
	letter-spacing: 0.1em;
	line-height: 1.6em;
	font-style: italic;
}

@media only screen and (max-width: 767px) {
	#temp-001 .main-video .main-ttl {
		font-size: 26px;
		font-size: 6.93333vw;
	}
}

#temp-001 .main-video .main-ttl span {
	margin: 0 -7px;
}

@media only screen and (max-width: 767px) {
	#temp-001 .main-video .main-ttl span {
		margin: 0 -5px;
	}
}

#temp-001 .main-video .scroll {
	display: inline-block;
	position: absolute;
	right: 45px;
	bottom: 0;
	z-index: 2;
	padding: 10px 10px 110px;
	overflow: hidden;
	color: #fff;
	font-size: 14px;
	font-family: 'Josefin Sans', sans-serif;
	line-height: 1;
	letter-spacing: .2em;
	text-transform: uppercase;
	text-decoration: none;
	writing-mode: vertical-lr;
}

@media only screen and (max-width: 767px) {
	#temp-001 .main-video .scroll {
		font-size: 12px;
		font-size: 3.2vw;
		right: 20px;
	}
}

#temp-001 .main-video .scroll:after {
	content: '';
	position: absolute;
	bottom: 0;
	left: 50%;
	width: 1px;
	height: 100px;
	background: #fff;
	animation: sdl 2s cubic-bezier(1, 0, 0, 1) infinite;
}

@keyframes sdl {
	0% {
		transform: scale(1, 0);
		transform-origin: 0 0;
	}

	35% {
		transform: scale(1, 1);
		transform-origin: 0 0;
	}

	35.1% {
		transform: scale(1, 1);
		transform-origin: 0 100%;
	}

	70%,
	100% {
		transform: scale(1, 0);
		transform-origin: 0 100%;
	}
}

#temp-001 .sec01 {
	background: linear-gradient(90deg, #fff 42vw, #71afd1 10%);
	padding: 160px 0;
}

@media only screen and (max-width: 767px) {
	#temp-001 .sec01 {
		padding: 60px 0;
		background: linear-gradient(90deg, #fff 50vw, #71afd1 10%);
	}
}

#temp-001 .sec01 .sec-in > div:not(:last-of-type) {
	margin-bottom: 40px;
}

@media only screen and (max-width: 767px) {
	#temp-001 .sec01 .sec-in > div:not(:last-of-type) {
		margin-bottom: 20px;
	}
}

#temp-001 .sec01 .sec01-box {
	background: #fff;
	box-shadow: rgba(149, 157, 165, 0.3) 0px 8px 24px;
	padding: 50px;
	display: flex;
	justify-content: space-between;
	flex-wrap: wrap;
	align-items: center;
}

@media only screen and (max-width: 767px) {
	#temp-001 .sec01 .sec01-box {
		padding: 20px;
	}
}

#temp-001 .sec01 .sec01-box .img-area,
#temp-001 .sec01 .sec01-box .info-area {
	width: 47%;
	text-align: justify;
}

@media only screen and (max-width: 767px) {
	#temp-001 .sec01 .sec01-box .img-area,
	#temp-001 .sec01 .sec01-box .info-area {
		width: 100%;
	}
}

@media only screen and (max-width: 767px) {
	#temp-001 .sec01 .sec01-box .img-area {
		order: 1;
		margin-bottom: 20px;
	}

	#temp-001 .sec01 .sec01-box .info-area {
		order: 2;
	}
}

#temp-001 .sec02 {
	background: rgba(48, 126, 183, 0.1);
}

#temp-001 .sec02 ul li {
	width: 30.5%;
	background-color: #fff;
	box-shadow: rgba(50, 50, 93, 0.1) 0px 13px 27px -5px, rgba(0, 0, 0, 0.1) 0px 8px 16px -8px;
}

@media only screen and (max-width: 767px) {
	#temp-001 .sec02 ul li {
		width: 100%
	}

	#temp-001 .sec02 ul li:not(:last-child) {
		margin-bottom: 20px;
	}
}

#temp-001 .sec02 ul li .info-area {
	padding: 30px;
}

@media only screen and (max-width: 767px) {
	#temp-001 .sec02 ul li .info-area {
		padding: 20px;
	}
}

#temp-001 .sec02 ul li .info-area h4 {
	font-size: 20px;
	margin-bottom: 10px;
}

@media only screen and (max-width: 767px) {
	#temp-001 .sec02 ul li .info-area h4 {
		font-size: 18px;
		font-size: 4.8vw;
	}
}

#temp-001 .sec02 ul li .info-area h4 + p {
	line-height: 1.7em;
	text-align: justify;
	display: -webkit-box;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 3;
	overflow: hidden;
}

#temp-001 .sec03 {
	background: linear-gradient(90deg, #71afd1 42vw, #fff 10%);
	padding: 160px 0 120px;
	margin-bottom: 0;
}

@media only screen and (max-width: 767px) {
	#temp-001 .sec03 {
		padding: 60px 0;
		background: none;
	}

	#temp-001 .sec03 .sec-ttl.wh {
		color: #234872;
		text-align: center;
		width: 100%
	}

	#temp-001 .sec03 .sec-ttl.wh span {
		color: #222;
	}
}

#temp-001 .sec03 .sec03-contents {
	overflow: hidden;
	width: 50%;
	margin-bottom: 100px;
}

@media only screen and (max-width: 767px) {
	#temp-001 .sec03 .sec03-contents {
		width: 100%;
		margin-bottom: 30px;
	}
}

#temp-001 .sec03 .sec03-contents dl {
	display: flex;
	border-bottom: 1px solid #ddd;
	justify-content: space-between;
	flex-wrap: wrap;
	padding-bottom: 24px;
	margin-bottom: 24px;
}

#temp-001 .sec03 .sec03-contents dl:last-of-type {
	border-bottom: none;
	margin-bottom: 0;
}

#temp-001 .sec03 .sec03-contents dl dt {
	width: 20%;
	font-weight: bold;
}

#temp-001 .sec03 .sec03-contents dl dd {
	width: 75%
}

@media only screen and (max-width: 767px) {
	#temp-001 .sec03 .sec03-contents dl {
		padding-bottom: 15px;
		margin-bottom: 15px;
	}
}

#temp-001 .sec03 iframe {
	width: 100%;
	background: #fff;
	padding: 30px;
	height: 500px;
}

@media only screen and (max-width: 767px) {
	#temp-001 .sec03 iframe {
		background: none;
		padding: 0;
		height: 300px;
	}
}

#temp-001 .sec04 {
	background: rgba(48, 126, 183, 0.1);
}

#temp-001 .sec04 .accordion-type-1 {
	width: 900px;
	margin: 0 auto;
}

@media only screen and (max-width: 767px) {
	#temp-001 .sec04 .accordion-type-1 {
		width: 90%
	}
}

#temp-001 .sec04 .accordion-type-1 dl {
	margin-bottom: 2px;
	cursor: pointer;
}

#temp-001 .sec04 .accordion-type-1 dl dt,
#temp-001 .sec04 .accordion-type-1 dl dd {
	padding: 20px 20px 20px 30px;
}

#temp-001 .sec04 .accordion-type-1 dl dt {
	background: #fff;
	position: relative;
}

#temp-001 .sec04 .accordion-type-1 dl dt:after {
	content: '+';
	display: block;
	position: absolute;
	font-size: 32px;
	font-weight: 100;
	vertical-align: middle;
	right: 30px;
	color: #71afd1;
	top: 20px;
	transition: .2s;
}

#temp-001 .sec04 .accordion-type-1 dl dt.active:after {
	top: 20px;
	transform: rotate(45deg);
}

#temp-001 .sec04 .accordion-type-1 dl dd {
	background: #ebf2f8;
	display: none;
}

#temp-001 .sec05 {
	background: linear-gradient(90deg, #fff 42vw, #71afd1 10%);
	padding: 160px 0;
}

@media only screen and (max-width: 767px) {
	#temp-001 .sec05 {
		background: linear-gradient(90deg, #fff 50vw, #71afd1 10%);
		padding: 60px 0;
	}
}

#temp-001 .sec05 .news-type {
	width: 70%
}

@media only screen and (max-width: 767px) {
	#temp-001 .sec05 .news-type {
		width: 100%
	}
}

#temp-001 .sec05 .news-type li {
	background: #fff;
	box-shadow: rgba(149, 157, 165, 0.3) 0px 8px 24px;
}

#temp-001 .sec05 .news-type li:not(:last-child) {
	margin-bottom: 20px;
}

@media only screen and (max-width: 767px) {
	#temp-001 .sec05 .news-type li:not(:last-child) {
		margin-bottom: 10px;
	}
}

#temp-001 .sec05 .news-type li a {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	padding: 30px;
}

#temp-001 .sec05 .news-type li a .time {
	vertical-align: middle;
	line-height: 1.4;
	color: #888;
}

#temp-001 .sec05 .news-type li a .cat {
	background: #333;
	display: inline-table;
	font-size: 12px;
	table-layout: initial;
	width: 90px;
	line-height: 22px;
	height: 22px;
	text-align: center;
	color: #fff;
	margin: -3px 10px 0;
}

#temp-001 .sec05 .news-type li a .txt {
	width: 100%;
	margin-top: 10px;
	vertical-align: middle;
	display: inline-table;
	line-height: 1.6;
	display: -webkit-box;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 2;
	overflow: hidden;
}

@media only screen and (max-width: 767px) {
	#temp-001 .sec05 .news-type li a {
		padding: 20px;
	}

	#temp-001 .sec05 .news-type li a .time {
		width: auto;
		padding: 0;
		display: inline-block;
	}

	#temp-001 .sec05 .news-type li a .cat {
		margin: 0 0 0 10px;
		width: 80px;
		padding: 5px 0 1px;
		line-height: 1.2em;
		font-size: 11px;
		font-size: 2.93333vw;
	}

	#temp-001 .sec05 .news-type li a .txt {
		margin-top: 10px;
		width: 100%;
		-webkit-line-clamp: 2;
	}
}

#temp-001 .sec06 {
	display: none;
	background: rgba(48, 126, 183, 0.1);
}

#temp-001 .sec06 .sec-in {
	background: #fff;
	padding: 80px;
	width: 900px;
	min-width: 900px;
	box-shadow: rgba(50, 50, 93, 0.1) 0px 50px 100px -20px, rgba(0, 0, 0, 0.1) 0px 30px 60px -30px;
}

@media only screen and (max-width: 767px) {
	#temp-001 .sec06 .sec-in {
		width: 90%;
		min-width: 90%;
		padding: 40px 20px;
	}
}

#temp-001 .sec06 .form-type .input-area dl {
	margin-bottom: 33px;
	display: flex;
	justify-content: space-between;
	align-items: center;
	flex-wrap: wrap;
}

#temp-001 .sec06 .form-type .input-area dl:last-child {
	align-items: stretch;
}

#temp-001 .sec06 .form-type .input-area dl dt {
	width: 100%;
	text-align: left;
	line-height: 1.5em;
	margin-bottom: 15px;
	font-weight: bold;
}

#temp-001 .sec06 .form-type .input-area dl dt span {
	width: 180px;
	display: inline-block;
}

#temp-001 .sec06 .form-type .input-area dl dt .required {
	color: #fff;
	width: 50px;
	color: #dd1738;
	border: 1px solid #dd1738;
	text-align: center;
	font-size: 12px;
	line-height: 25px;
	height: 25px;
	margin-right: 15px;
	font-weight: normal;
	margin-top: -5px;
	vertical-align: middle;
}

#temp-001 .sec06 .form-type .input-area dl dd {
	width: 100%;
}

@media only screen and (max-width: 767px) {
	#temp-001 .sec06 .form-type .input-area {
		width: 100%;
	}

	#temp-001 .sec06 .form-type .input-area dl {
		margin-bottom: 15px;
		padding-bottom: 15px;
		flex-wrap: wrap;
	}

	#temp-001 .sec06 .form-type .input-area dl dt {
		width: auto;
		margin-bottom: 10px;
	}

	#temp-001 .sec06 .form-type .input-area dl dt span {
		width: auto;
		margin-right: 10px;
	}

	#temp-001 .sec06 .form-type .input-area dl dt .required {
		width: auto;
		padding: 2px 4px 1px;
		font-size: 10px;
		font-size: 2.66667vw;
		line-height: 1.2em;
		height: auto;
	}

	#temp-001 .sec06 .form-type .input-area dl dd {
		width: 100%
	}
}

#temp-001 .sec06 .form-type .address-td {
	display: flex;
	width: 100%;
	justify-content: space-between;
	flex-wrap: wrap;
}

#temp-001 .sec06 .form-type .address-td input {
	width: 30% !important;
}

#temp-001 .sec06 .form-type .address-td input:last-child {
	width: 67% !important;
}

@media only screen and (max-width: 767px) {
	#temp-001 .sec06 .form-type .address-td input {
		width: 50% !important;
		margin-bottom: 10px;
	}

	#temp-001 .sec06 .form-type .address-td input:last-child {
		width: 100% !important;
	}
}

#temp-001 .sec06 .form-type input[type="text"],
#temp-001 .sec06 .form-type input[type="email"],
#temp-001 .sec06 .form-type input[type="tel"],
#temp-001 .sec06 .form-type input[type="number"],
#temp-001 .sec06 .form-type input[name="zip"] {
	width: 100%;
	height: 55px;
	line-height: 55px;
	background: #f4f4f4;
	border: 0;
	box-sizing: border-box;
	padding: 0 1em;
	outline: none;
	font-size: 16px;
}

@media only screen and (max-width: 767px) {

	#temp-001 .sec06 .form-type input[type="text"],
	#temp-001 .sec06 .form-type input[type="email"],
	#temp-001 .sec06 .form-type input[type="tel"],
	#temp-001 .sec06 .form-type input[type="number"],
	#temp-001 .sec06 .form-type input[name="zip"] {
		height: 50px;
		line-height: 50px;
	}
}

#temp-001 .sec06 .form-type input::-webkit-input-placeholder {
	color: #bbb;
}

#temp-001 .sec06 .form-type input:-ms-input-placeholder {
	color: #bbb;
}

#temp-001 .sec06 .form-type input::-ms-input-placeholder {
	color: #bbb;
}

#temp-001 .sec06 .form-type input::placeholder {
	color: #bbb;
}

#temp-001 .sec06 .form-type .address {
	width: 68% !important;
}

#temp-001 .sec06 .form-type textarea {
	width: 100%;
	height: 160px;
	background: #f4f4f4;
	line-height: 1.4em;
	border: none;
	padding: 1em;
	outline: none;
}

#temp-001 .sec06 .form-type .privacyArea {
	height: 300px;
	border: 1px solid #f2f2f2;
	padding: 40px;
	text-align: left;
	overflow-y: scroll;
	line-height: 1.6em;
	letter-spacing: 0.05em;
	margin: 65px 0 40px;
}

@media only screen and (max-width: 767px) {
	#temp-001 .sec06 .form-type .privacyArea {
		padding: 20px;
		margin: 30px 0 20px;
		height: 150px;
	}
}

#temp-001 .sec06 .form-type .privacyArea h4 {
	font-size: 22px;
	margin-bottom: 15px;
}

#temp-001 .sec06 .form-type .privacyArea dt {
	font-weight: bold;
	margin-top: 1em;
}

#temp-001 .sec06 .form-type .privacyArea dd {
	margin-top: 0.5em;
}

#temp-001 .sec06 .form-type .privacyArea .establishment {
	text-align: right;
	margin-top: 50px;
}

#temp-001 .sec-in {
	padding-bottom: 0;
	margin: 0 auto;
}

#temp-001 .sec-in-bg {
	padding: 120px 0;
}

@media only screen and (max-width: 767px) {
	#temp-001 .sec-in-bg {
		padding: 60px 0;
	}
}

#temp-001 .sec-ttl {
	font-size: 64px;
	margin-bottom: 80px;
	color: #234872;
}

@media only screen and (max-width: 767px) {
	#temp-001 .sec-ttl {
		font-size: 36px;
		font-size: 9.6vw;
		margin-bottom: 40px;
	}
}

#temp-001 .sec-ttl.wh {
	color: #fff;
}

#temp-001 .sec-ttl.wh span {
	color: #fff;
}

#temp-001 .sec-ttl span {
	display: block;
	font-size: 18px;
	margin-top: 25px;
	letter-spacing: .1em;
	color: #222;
}

@media only screen and (max-width: 767px) {
	#temp-001 .sec-ttl span {
		margin-top: 10px;
		font-size: 16px;
		font-size: 4.26667vw;
	}
}

#temp-001 .sec-sub-ttl {
	font-size: 32px;
	margin-bottom: 30px;
	line-height: 1.6em;
	letter-spacing: .03em;
}

@media only screen and (max-width: 767px) {
	#temp-001 .sec-sub-ttl {
		font-size: 20px;
		font-size: 5.33333vw;
		line-height: 1.4em;
		margin-bottom: 15px;
	}
}

#PRODUCT .sec01 .products-list {
	margin-bottom: 60px;
}

#PRODUCT .sec01 .products-list:after {
	content: '';
	display: block;
	width: 32%;
	height: 0;
}

#PRODUCT .sec01 .products-list li {
	width: 32%;
	background: #fff;
	box-shadow: rgba(50, 50, 93, 0.1) 0px 13px 27px -5px, rgba(0, 0, 0, 0.1) 0px 8px 16px -8px;
}

#PRODUCT .sec01 .products-list figure {
	aspect-ratio: 4 / 3;
}

#PRODUCT .sec01 .products-list figure img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

@media only screen and (max-width: 767px) {
	#PRODUCT .sec01 .products-list li {
		width: 100%
	}

	#PRODUCT .sec01 .products-list li:not(:last-child) {
		margin-bottom: 20px;
	}
}

#PRODUCT .sec01 .products-list li:nth-child(n+4) {
	margin-top: 25px;
}

@media only screen and (max-width: 767px) {
	#PRODUCT .sec01 .products-list li:nth-child(n+4) {
		margin-top: auto;
	}
}

#PRODUCT .sec01 .products-list li a:hover {
	opacity: .7;
	transition: .2s;
}

#PRODUCT .sec01 .products-list li .info-area {
	padding: 20px;
}

@media only screen and (max-width: 767px) {
	#PRODUCT .sec01 .products-list li .info-area {
		padding: 20px;
	}
}

#PRODUCT .sec01 .products-list li .info-area h4 {
	font-size: 18px;
	margin-bottom: 10px;
}

@media only screen and (max-width: 767px) {
	#PRODUCT .sec01 .products-list li .info-area h4 {
		font-size: 18px;
		font-size: 4.8vw;
	}
}

#PRODUCT .sec01 .products-list li .info-area h4 + p {
	line-height: 1.7em;
	font-size: 14px;
	text-align: justify;
	overflow: hidden;
}

#PRODUCT .details .main-u-v h2 {
	font-size: 36px;
}

@media only screen and (max-width: 767px) {
	#PRODUCT .details .main-u-v h2 {
		font-size: 24px;
		font-size: 6.4vw;
	}
}

@media only screen and (max-width: 767px) {
	#PRODUCT .details .sec01 {
		width: 90%;
		margin: 0 auto;
	}
}

#PRODUCT .details .sec01 .sec-in {
	background: #fff;
	box-shadow: rgba(50, 50, 93, 0.1) 0px 13px 27px -5px, rgba(0, 0, 0, 0.1) 0px 8px 16px -8px;
	padding: 100px;
}

@media only screen and (max-width: 767px) {
	#PRODUCT .details .sec01 .sec-in {
		padding: 20px;
		width: 90%
	}
}

#PRODUCT .details .sec01 .sec-in h3 {
	font-size: 30px;
}

#PRODUCT .details .sec01 .sec-in .img-area {
	margin-bottom: 30px;
}

#NEWS .sec-in {
	background: #fff;
	padding: 60px;
	margin-top: -40px;
	box-shadow: 0 15px 30px 0 rgba(0, 0, 0, 0.08);
}

@media only screen and (max-width: 767px) {
	#NEWS .sec-in {
		padding: 0 20px 60px;
		margin-top: 40px;
		margin-bottom: 0;
	}
}

#NEWS .news-top-section .news-contents {
	width: 70%
}

@media only screen and (max-width: 767px) {
	#NEWS .news-top-section .news-contents {
		width: 100%
	}
}

#NEWS .news-top-section .news-contents .news-list {
	margin-bottom: 60px;
}

#NEWS .news-top-section .news-contents .news-list li {
	border-bottom: 1px solid #dddad8;
	margin-bottom: 25px;
}

#NEWS .news-top-section .news-contents .news-list li a {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	padding-bottom: 25px;
}

#NEWS .news-top-section .news-contents .news-list li a .time {
	vertical-align: middle;
	line-height: 1.4;
	color: #888;
}

#NEWS .news-top-section .news-contents .news-list li a .cat {
	background: #333;
	display: inline-table;
	font-size: 11px;
	table-layout: initial;
	padding: 5px 8px 4px;
	text-align: center;
	color: #fff;
	margin: -3px 20px 0;
	line-height: 1.2em;
}

#NEWS .news-top-section .news-contents .news-list li a .txt {
	width: 100%;
	vertical-align: middle;
	display: inline-table;
	line-height: 1.6;
	display: -webkit-box;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 1;
	overflow: hidden;
	margin-top: 15px;
}

@media screen and (max-width: 767px) {
	#NEWS .news-top-section .news-contents .news-list li a {
		padding: 0 0 20px 0;
	}

	#NEWS .news-top-section .news-contents .news-list li a .time {
		width: auto;
		padding: 0;
		display: inline-block;
	}

	#NEWS .news-top-section .news-contents .news-list li a .cat {
		margin: 0 0 0 10px;
		width: 80px;
		padding: 3px 0;
		line-height: 1.4em;
		font-size: 11px;
		font-size: 2.93333vw;
	}

	#NEWS .news-top-section .news-contents .news-list li a .txt {
		margin-top: 10px;
		width: 100%;
		-webkit-line-clamp: 2;
	}
}

#NEWS .news-top-section .side-navi {
	width: 20%
}

@media only screen and (max-width: 767px) {
	#NEWS .news-top-section .side-navi {
		width: 100%
	}
}

#NEWS .news-top-section .side-navi ul:not(:last-child) {
	margin-bottom: 40px;
}

#NEWS .news-top-section .side-navi ul .list-ttl {
	font-size: 18px;
	margin-bottom: 5px;
	font-weight: bold;
	border-bottom: none;
}

#NEWS .news-top-section .side-navi ul li {
	border-bottom: 1px solid #dddad8;
}

#NEWS .news-top-section .side-navi ul li a {
	display: block;
	padding: 8px 0;
}

#NEWS .news-details-section .sec-in {
	padding: 60px;
}

@media only screen and (max-width: 767px) {
	#NEWS .news-details-section .sec-in {
		padding: 0 20px 60px;
	}
}

#NEWS .news-details-section .ttl-head {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
}

#NEWS .news-details-section .ttl-head .time {
	color: #888;
}

#NEWS .news-details-section .ttl-head .cat {
	background: #333;
	display: inline-table;
	font-size: 11px;
	table-layout: initial;
	padding: 5px 8px 4px;
	text-align: center;
	color: #fff;
	margin: -3px 20px 0;
	line-height: 1.2em;
}

#NEWS .news-details-section .ttl-head h3 {
	width: 100%;
	margin: 15px 0 30px;
	font-size: 28px;
}

#NEWS .news-details-section .ttl-products {
	justify-content: center;
	margin-bottom: 30px;
}

#NEWS .news-details-section .ttl-products h3 {
	width: auto;
	margin: 0;
}

#NEWS .news-details-section .ttl-products h3::after {
	content: '';
	display: block;
	width: 120px;
	height: 4px;
	margin: 5px auto 0;
	background-color: #b6d7e8;
}

@media only screen and (max-width: 767px) {
	#NEWS .news-details-section .ttl-head h3 {
		font-size: 20px;
		font-size: 5.33333vw;
	}
}

#NEWS .news-details-section .main-img + p {
	margin-top: 20px;
}

#NEWS .news-details-section .img-area {
	margin-top: 40px;
	display: flex;
	justify-content: space-between;
	flex-wrap: wrap;
}

#NEWS .news-details-section .img-area li {
	width: 48%
}

#NEWS .news-details-section .img-area + h4 {
	margin-top: 40px;
	font-size: 22px;
}

@media only screen and (max-width: 767px) {
	#NEWS .news-details-section .img-area + h4 {
		font-size: 18px;
		font-size: 4.8vw;
	}
}

#NEWS .news-details-section .img-area + h4 + p {
	margin-top: 20px;
}

#NEWS .news-details-section .news-top-btn {
	border: 1px solid #333;
	width: 200px;
	margin: 0 auto;
	text-align: center;
	margin-top: 60px;
	height: 50px;
	line-height: 50px;
	position: relative;
}

#NEWS .news-details-section .news-top-btn:after {
	content: '';
	display: inline-block;
	position: absolute;
	width: 8px;
	height: 8px;
	top: calc(50% - 8px / 2);
	right: 20px;
	background-size: contain;
	vertical-align: middle;
	border-top: 1px solid #333;
	border-right: 1px solid #333;
	transform: rotate(45deg);
}

#NEWS .cp_ipselect {
	width: auto;
	margin-bottom: 15px;
	background: #ffffff;
	overflow: hidden;
	text-align: center;
	position: relative;
	border: 1px solid #222;
}

#NEWS .cp_ipselect::before {
	position: absolute;
	top: 0.8em;
	right: 0.9em;
	width: 0;
	height: 0;
	padding: 0;
	content: '';
	border-left: 8px solid transparent;
	border-right: 8px solid transparent;
	border-top: 12px solid #222;
	border-radius: 2px;
	pointer-events: none;
}

@media only screen and (max-width: 767px) {
	#NEWS .cp_ipselect::before {
		top: 1.3em;
	}
}

#NEWS .cp_ipselect select {
	width: 100%;
	padding-right: 1em;
	cursor: pointer;
	text-indent: 0.01px;
	-o-text-overflow: ellipsis;
	text-overflow: ellipsis;
	border: none;
	outline: none;
	background: transparent;
	background-image: none;
	box-shadow: none;
	-webkit-appearance: none;
	-moz-appearance: none;
	appearance: none;
	padding: 14px 38px 14px 20px;
	color: #222;
	font-size: 16px;
	font-size: 4.26667vw;
}

#NEWS .cp_ipselect select::-ms-expand {
	display: none;
}

.product-main {
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
}

.product-main-introduction {
	font-size: 16px;
	line-height: 1.5;
	margin-bottom: 15px;
}

.product-main-list {
	width: calc(100% - 280px);
}

.product-main-item h4 {
	margin-bottom: 30px;
	padding: 0 0 4px 20px;
	border-bottom: 2px solid #71aed1;
	background: transparent linear-gradient(to right, #71aed1 0%, #71aed1 100%) left bottom / 2px 24px no-repeat;
	font-size: 24px;
}

.product-main-item ul {
	margin-bottom: 65px;
}

.product-main-item li {
	width: calc((100% - 40px) / 3);
	margin: 0 20px 35px 0;
	line-height: 1.5;
	font-size: 14px;
}

.product-main-item li:nth-of-type(3n) {
	margin-right: 0;
}

.product-main-item li figure {
	aspect-ratio: 4 / 3;
	margin-bottom: 8px;
}

.product-main-item li figure img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.product-main-item li dt {
	padding: 0 8px;
	background-color: #f0f0f0;
}

.product-main-item li dd {
	padding: 8px;
}

.product-main-side {
	width: 220px;
}

.product-main-side li {
	margin-bottom: 2px;
}

.product-main-side li a {
	display: block;
	padding: 7px 22px 7px 7px;
	background: #f0f0f0 url(../img/products/bg_side.png) right 7px center no-repeat;
	line-height: 1.4;
	text-decoration: none;
	color: #000;
	transition: background-color 0.3s;
}

.product-main-side li a:hover,
.product-main-side li a:active {
	background-color: #71afd1;
	color: #fff;
}

.product-main-side-fix {
	position: fixed;
	top: 110px;
	left: 50%;
	transform: translateX(270px);
	width: 220px;
}

.product-main-side-inner > a {
	display: block;
	width: 220px;
	margin: 32px auto 0;
}

@media only screen and (max-width: 767px) {
	.product-main {
		flex-direction: column;
	}

	.product-main-introduction {
		font-size: 14px;
	}

	.product-main-list,
	.product-main-side,
	.product-main-side-inner {
		width: 100%;
	}

	.product-main-list {
		margin-bottom: 30px;
	}

	.product-main-list ul {
		justify-content: space-between;
	}

	.product-main-item li {
		width: calc(50% - 10px);
		margin: 0 0 20px;
	}

	.product-main-side-fix {
		position: static;
		transform: translateX(0);
	}
}
