/* ==================================================
	base
================================================== */

.main_content {
	line-height: 1.375;
}
.main_content img {
	height: auto;
}
.main_content.w_100vw {
	overflow-x: clip;
}





/* ==================================================
	color
================================================== */

:root {
	--key-color: #4759f5;
	--key-color90: #5969f6;
	--key-color80: #6c7af7;
	--key-color70: #7e8af8;
	--key-color60: #919bf9;
	--key-color50: #a3acfa;
	--key-color40: #b5bdfb;
	--key-color30: #c7cdfc;
	--key-color20: #dadefd;
	--key-color10: #eceefe;
	--standard-gray: #e6e6e6;
}





/* ==================================================
	common
================================================== */

/* ----------------------------------------
	cont_wrap
---------------------------------------- */

.cont_wrap {
	padding: 40px 20px;
}

@media screen and (min-width: 768px) {
	.cont_wrap {
		padding: 60px 30px;
	}
}

@media screen and (min-width: 1024px) {
	.cont_wrap {
		padding: 80px 30px;
	}
}



/* ----------------------------------------
	p
---------------------------------------- */

.main_content div + p,
.main_content ul + p,
.main_content ol + p,
.main_content dl + p,
.main_content table + p,
.main_content img + p {
	margin-top: 1em;
}



/* ----------------------------------------
	title
---------------------------------------- */

/* title_line -------------------- */

.title_line {
	padding: 40px 20px 15px;
	border-bottom: 1px solid #000;
}

@media screen and (min-width: 768px) {
	.title_line {
		padding: 60px 30px 15px;
	}
}


/* title_bar -------------------- */

.title_bar {
	padding: 15px 20px;
}

@media screen and (min-width: 768px) {
	.title_bar {
		padding: 20px 30px;
	}
}



/* ----------------------------------------
	c-button-secondary
---------------------------------------- */

.main_content * + .c-button-secondary {
	margin-top: 20px;
}



/* ----------------------------------------
	imgBox
---------------------------------------- */

.imgBox {
	position: static;
	margin-right: calc(50% - 50vw);
	margin-left: calc(50% - 50vw);
}

@media screen and (min-width: 1920px) {
	.imgBox .cont:not(.img50) {
		justify-content: center;
	}
	.imgBox .img_area {
		max-width: 960px;
	}
	.imgBox .text_area {
		max-width: calc(960px + 80px);
	}
}



/* ----------------------------------------
	magnific-popup
---------------------------------------- */

.popup_modal_active .mfp-wrap {
	position: fixed !important;
}
.popup_modal_content {
	display: inline-block;
	overflow-y: auto;
	position: fixed;
	top: 50%;
	left: 50%;
	transform: translate(-50%,-50%);
	width: 90vw;
	max-height: 90%;
	margin: 0 auto;
	padding: 20px;
	font-size: 16px;
	line-height: 1.375;
	text-align: left;
	background: #fff;
}
.popup_modal_content img {
	height: auto;
}
.popup_modal_content * + p {
	margin-top: 1em;
}

@media screen and (min-width: 768px) {
	.popup_modal_content {
		max-width: 90vw;
		padding: 40px;
	}
}

@media screen and (min-width: 1024px) {
	.popup_modal_content {
		max-width: 1000px;
	}
}


/* button -------------------- */

.mfp-close-btn-in .mfp-close {
	position: absolute;
	top: 10px;
	right: 10px;
	width: 20px;
	height: 20px;
	transform: rotate(45deg);
	font-size: 0;
	opacity: 1;
}
.mfp-close-btn-in .mfp-close::before,
.mfp-close-btn-in .mfp-close::after {
	content: "";
	position: absolute;
	top: 0;
	left: 9px;
	width: 2px;
	height: 20px;
	background: #999;
}
.mfp-close-btn-in .mfp-close::after {
	transform: rotate(90deg);
}

@media screen and (min-width: 768px) {
	.mfp-close-btn-in .mfp-close {
		width: 30px;
		height: 30px;
	}
	.mfp-close-btn-in .mfp-close::before,
	.mfp-close-btn-in .mfp-close::after {
		left: 14px;
		height: 30px;
	}
}





/* ==================================================
	local_navi
================================================== */

@media screen and (max-width: 1023px) {
	.local_navi_trigger {
		display: flex;
		align-items: center;
		min-height: 62px;
	}
	.local_navi_trigger h2 {
		padding: 10px 0;
		font-size: 20px;
		font-weight: normal;
		line-height: 1.2;
	}
}

@media screen and (min-width: 1024px) and (max-width: 1279px) {
	.local_navi_menu_level1 > li:nth-of-type(n+2) {
		margin-left: 20px;
	}
}

.dd_btn > span {
	background: #000;
}





/* ==================================================
	main
================================================== */

.main {
	background: var(--standard-gray);
}
.main_cont .title,
.main_cont .subtitle {
	border-bottom: 1px solid #000;
}
.main_cont .title {
	padding: 20px 20px 15px;
}
.main_cont .subtitle {
	padding: 12px 20px;
}
.main_cont .img_area {
	padding: 40px 20px;
	text-align: center;
}

@media screen and (min-width: 768px) {
	.main_cont .title,
	.main_cont .subtitle,
	.main_cont .img_area {
		padding-right: 30px;
		padding-left: 30px;
	}
}



/* ----------------------------------------
	main_logo
---------------------------------------- */

.main_logo {
	padding: 0 20px 30px;
}
.main_logo_list {
	display: flex;
	flex-wrap: wrap;
	align-items: flex-end;
	gap: 30px 50px;
}
.main_logo_list a img:hover {
	opacity: 1;
}

@media screen and (max-width: 767px) {
	.main_logo_list > li:first-child img {
		width: auto;
		height: 60px;
	}
}

@media screen and (min-width: 768px) {
	.main_logo {
		padding-right: 30px;
		padding-left: 30px;
	}
}





/* ==================================================
	windows11
================================================== */

.windows11 {
	color: #fff;
	background: #000;
}
.windows11 .btn_area .button {
	color: #000;
	background: #fff;
}
.windows11 .btn_area .button:hover {
	background: #ccc;
}





/* ==================================================
	overview
================================================== */

/* ----------------------------------------
	function
---------------------------------------- */

.function a:link,
.function a:visited,
.function a:hover {
	color: #000;
}
.function_list {
	display: grid;
	grid-template-columns: 1fr;
	gap: 40px;
}
.function_list .text_area {
	margin-top: 30px;
}
.function_list .text_area h3 a {
	transition: .2s;
}
.function_list .text_area h3 a:hover {
	color: #767676;
	text-decoration: none;
}

@media screen and (min-width: 768px) {
	.function_list {
		grid-template-columns: repeat(3,1fr);
		gap: 0;
	}
	.function_list > li {
		position: relative;
		padding: 20px;
	}
	.function_list > li::after {
		content: "";
		pointer-events: none;
		position: absolute;
		top: 0;
		left: 0;
		width: 100%;
		height: 100%;
		border-width: 0 1px 0 0;
		border-style: solid;
		border-color: #707070;
	}
	.function_list > li:nth-child(3n)::after {
		border-right-width: 0;
	}
	.function_list > li:nth-child(n+4)::after {
		border-top-width: 1px;
	}
}

@media screen and (min-width: 1280px) {
	.function_list > li {
		padding: 30px;
	}
}



/* ----------------------------------------
	interface
---------------------------------------- */

.interface {
	overflow: hidden;
	padding: 30px 20px;
	background: var(--standard-gray);
}
.interface_list {
	list-style-type: decimal;
	list-style-position: outside;
	padding-left: 1em;
}
.interface_list > li:nth-child(n+2) {
	margin-top: .5em;
}
#interface_area {
	margin-top: 20px;
}
.interface_btn {
	display: flex;
	flex-wrap: wrap;
	margin: 10px 0 0 -10px;
}
.interface_btn .button {
	margin: 10px 0 0 10px;
}

@media screen and (min-width: 768px) {
	.interface {
		padding: 60px 30px;
	}
}

@media screen and (min-width: 1024px) {
	.interface_wrap {
		display: flex;
		justify-content: space-between;
		padding-left: calc(50% - 610px);
	}
	.interface_detail {
		width: 460px;
		padding: 0;
	}
	.interface_view {
		width: calc(100% - (460px + 20px));
	}
}


/* trigger -------------------- */

#interface_trigger > li {
	display: flex;
	justify-content: flex-end;
	align-items: center;
	transition: width .3s ease, transform .3s ease;
	max-width: 1280px;
	margin-top: 20px;
}
#interface_trigger > li:not(.current) {
	transform: translateX(30%);
}
#interface_trigger > li button {
	display: flex;
	justify-content: center;
	align-items: center;
	transition: .2s;
	width: 40px;
	height: 40px;
	margin-right: 30px;
	background: #000;
	border-radius: 50%;
}
#interface_trigger > li button:hover {
	background: #5a5a5a;
}
#interface_trigger > li button::before {
	content: "\E90c";
	transform: rotate(90deg);
	font-family: HPIcons;
	color: #fff;
}
#interface_trigger > li.current button {
	display: none;
}
#interface_trigger > li .interface_img {
	width: 100%;
}
#interface_trigger > li:not(.current) .interface_img {
	width: 50%;
}


/* modal -------------------- */

.view_detail_list li {
	font-size: 16px;
}

@media screen and (min-width: 1024px) {
	[id*="interface_"] .modal_content_inner {
		width: 800px;
	}
}



/* ----------------------------------------
	copilot
---------------------------------------- */

.copilot {
	max-width: 800px;
	padding: 0;
}
.copilot_main .heading,
.copilot_main .subheading {
	padding: 20px;
}
.copilot_main .heading {
	background: #549ef7;
}
.copilot_main .subheading {
	background: #98c5fa;
}
.copilot_main .img_area img {
	width: 100%;
}
.copilot_cont {
	padding: 20px;
}
.copilot_cont * + p {
	margin-top: 15px;
}
.copilot_cont a {
	color: #000;
	text-decoration: underline;
}
.copilot_cont a:hover {
	text-decoration: none;
}

@media screen and (min-width: 1024px) {
	.copilot {
		display: flex;
		width: 1000px;
		max-width: none;
	}
	.copilot_main {
		width: 680px;
	}
	.copilot_cont {
		width: 320px;
	}
}


/* input_example -------------------- */

.input_example {
	margin-top: 15px;
}
.input_example h4 {
	font-size: 14px;
	font-weight: normal;
}
.input_example ul {
	padding-left: 20px;
}
.input_example li {
	list-style-type: disc;
	list-style-position: outside;
	font-size: 13px;
}





/* ==================================================
	commit
================================================== */

#commit_wolf_security,
.commit_made_in_tokyo {
	display: none;
}





/* ==================================================
	design_main
================================================== */

.design_main {
	display: flex;
	flex-direction: column;
	background: var(--key-color30);
}
.design_main .text_area .inner {
	padding: 30px 20px 40px;
}
.design_main .text .inner {
	padding-bottom: 40px;
}
.design_main .list {
	margin-top: 20px;
	border-top: 1px solid #000;
}
.design_main .list > li {
	padding: 15px 0;
	border-bottom: 1px solid #000;
}
.design_main .img_area img,
.design_main .img_area video {
	object-fit: cover;
	width: 100%;
	height: 100%;
}
.design_main .img_area video {
	vertical-align: bottom;
	filter: drop-shadow(0 0 #000); /* 枠線が入らないようにするスタイル */
}

@media screen and (min-width: 768px) {
	.design_main .text_area .inner {
		padding-right: 30px;
		padding-left: 30px;
	}
}

@media screen and (min-width: 1280px) {
	.design_main {
		flex-direction: row;
	}
	.design_main .text_area {
		width: calc(50% - 193px);
	}
	.design_main .text_area .inner {
		max-width: calc(416px + 30px);
		margin-left: auto;
	}
	.design_main .img_area {
		width: calc(50% + 193px);
	}
	.design_main .img_area img,
	.design_main .img_area video {
		max-width: 1053px;
	}
}

@media screen and (min-width: 1920px) {
	.design_main .text_area {
		width: calc(50% - 93px);
	}
	.design_main .text_area .inner {
		max-width: calc(516px + 30px);
	}
	.design_main .img_area {
		width: calc(50% + 93px);
	}
}





/* ==================================================
	collaboration
================================================== */

.collaboration {
	background: var(--key-color30);
}
.coll_list {
	display: grid;
	gap: 40px 30px;
}
.coll_list .img_area img {
	width: 100%;
}
.coll_list .text_area {
	margin-top: 20px;
}

@media screen and (min-width: 768px) {
	.coll_list {
		grid-template-columns: repeat(2,1fr);
	}
}





/* ==================================================
	myhp
================================================== */

.myhp_cont {
	background: var(--key-color30);
}
.myhp_cont .img_area img {
	width: 100%;
}
.myhp_cont .text_area {
	padding: 30px 20px;
}

@media screen and (min-width: 768px) {
	.myhp_cont {
		display: flex;
		flex-direction: row-reverse;
	}
	.myhp_cont .img_area {
		width: 60%;
	}
	.myhp_cont .text_area {
		align-self: center;
		width: 40%;
	}
}

@media screen and (min-width: 1280px) {
	.myhp_cont .img_area {
		width: 732px;
	}
	.myhp_cont .text_area {
		width: calc(100% - 732px);
	}
}





/* ==================================================
	sustainable
================================================== */

.sustainable {
	background: #f2ebdc;
}
.sust_cont {
	margin-top: 40px;
}

@media screen and (max-width: 767px) {
	.sust_cont .epeat {
		margin-top: 40px;
		text-align: right;
	}
}

@media screen and (min-width: 768px) {
	.sust_cont {
		display: flex;
		justify-content: space-between;
	}
	.sust_cont .material {
		width: calc(60% - 40px);
	}
	.sust_cont .epeat {
		align-self: flex-end;
		width: 40%;
	}
}

@media screen and (min-width: 1024px) {
	.sust_cont .material {
		width: calc((100% - 27.86885245901639%) - 60px);
	}
	.sust_cont .epeat {
		align-self: center;
		width: 27.86885245901639%;
	}
}



/* ----------------------------------------
	material_list
---------------------------------------- */

.material_list {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 40px;
}
.material_list h5 {
	margin: 20px 0 5px;
	font-size: 16px;
	line-height: 1.2;
}
.material_list .rate {
	display: block;
	font-size: 160%;
	line-height: 1;
}

@media screen and (max-width: 1023px) {
	.material_list > li:nth-child(even),
	.material_list > li:nth-child(n+3) {
		position: relative;
	}
	.material_list > li:nth-child(even)::after,
	.material_list > li:nth-child(n+3)::before {
		content: "";
		position: absolute;
		background: #000;
	}
	.material_list > li:nth-child(even)::after {
		top: 0;
		left: -20px;
		width: 1px;
		height: 100%;
	}
	.material_list > li:nth-child(n+3)::before {
		top: -20px;
		left: 0;
		width: 100%;
		height: 1px;
	}
}

@media screen and (min-width: 1024px) {
	.material_list {
		grid-template-columns: repeat(4, 1fr);
		position: relative;
		height: 100%;
	}
	.material_list::after {
		content: "";
		position: absolute;
		top: 0;
		right: -20px;
		width: 1px;
		height: 100%;
		background: #000;
	}
	.material_list > li:nth-child(n+2) {
		position: relative;
	}
	.material_list > li:nth-child(n+2)::after {
		content: "";
		position: absolute;
		top: 0;
		left: -20px;
		width: 1px;
		height: 100%;
		background: #000;
	}
}





/* ==================================================
	gallery
================================================== */

#gallery {
	color: #000;
}
.gallery_list {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 10px;
	margin: 0 auto;
}
.gallery_list > li:nth-child(1) {
	grid-column: span 2;
}

@media screen and (max-width: 1023px) {
	.gallery_list {
		max-width: 450px;
	}
}

@media screen and (min-width: 1024px) {
	.gallery_list {
		grid-template-columns: repeat(4, 1fr);
		width: 910px;
	}
	.gallery_list > li:nth-child(1) {
		grid-row: span 2;
	}
}
