/*!
Theme Name: dream-producers
Theme URI: http://underscores.me/
Author: dream-producers
Author URI: https://aster.work/
Description: Simple responsive theme
Version: 1.0.0
Tested up to: 5.4
Requires PHP: 5.6
License: GNU General Public License v2 or later
License URI: LICENSE
Text Domain: dream-producers
Tags: custom-background, custom-logo, custom-menu, featured-images, threaded-comments, translation-ready
*/

/* ----------
 * 追加
 * ---------- */
:root {
	--text-color: #404040;
	--main-color: #34b3d1;
	--font-jp: "M PLUS Rounded 1c", sans-serif;
	--font-en: "Roboto", sans-serif;
	--font-en-cond: "Roboto Condensed", sans-serif;
	--font-title: "Saira Condensed", sans-serif;
}
/* ----------
 * layout
 * ---------- */
#wrapper {
	position: relative;
	overflow: hidden;
	opacity: 0;
	transition: opacity 1s;
}
#wrapper.on {
	opacity: 1;
}
.page {
	margin: 0;
}
section {
	position: relative;
	width: 100%;
	margin: 55px auto;
	padding: 0 7vw;
	box-sizing: border-box;
}
section.pd {
	margin: 0 auto;
	padding: 55px 7vw;
}
.inner {
	max-width: 1200px;
	margin: 0 auto;
}
/* ----------
 * common
 * ---------- */
body {
	color: var(--text-color);
	font-family: var(--font-jp);
	font-size: .875rem;
	letter-spacing: .1em;
	text-indent: .1em;
}
ul, ol {
	margin: 0 0 1.5em;
	padding: 0;
}
ul.none,
ul.disc,
.single .site-main ul,
.single .site-main ol {
	list-style: none;
}
ol.decimal,
.single .site-main ol {
	counter-reset: number 0;
}
ul.disc li,
.single .site-main ul li {
	position: relative;
	padding-left: 1em;
	margin-bottom: .5em;
}
.single .site-main ol li {
	position: relative;
	padding-left: 1.5em;
	margin-bottom: .5em;
}
ul.disc li::before,
.single .site-main ul li::before {
	position: absolute;
	top: 0;
	left: 0;
	font-weight: 700;
	content: "・";
}
ol.decimal li::before,
.single .site-main ol li::before {
	counter-increment: number 1;
	position: absolute;
	top: 0;
	left: 0;
	content: counter(number) ".";  
}
img {
	display: block;
}
time {
	display: block;
}
table, tbody {
	border-collapse: collapse;
}
a.none {
	text-decoration: none;
}
a:hover, a:focus, a:active {
	outline: none;
}
.pc, .pc2, .pc3 {
	display: none !important;
}
p {
	text-align: justify;
}
.ct {
	text-align: center;
}
.r {
	text-align: right;
}
.l {
	text-align: left;
}
section.en {
	font-family: var(--font-en);
}
figure {
	margin: 0;
}
::selection {
	background: rgba(0, 175, 236, .7);
	color: #fff;
}
/* heading */
h1, h2, h3, h4, h5, h6 {
	margin-top: 0;
	font-weight: 500;
	line-height: 1.3;
}
section.en h2, section.en h3, section.en h4, section.en h5, section.en h6 {
	font-weight: 700;
	letter-spacing: 0;
	text-indent: 0;
}
.sec_title,
.page_title {
	margin: 0 0 2.75em;
}
.sec_title h2,
.page_title h1 {
	margin: 0 0 .25em;
	font-family: var(--font-title);
	font-size: 2.75rem;
	font-weight: 500;
	letter-spacing: .125em;
	text-indent: .125em;
	text-align: center;
	line-height: 1;
}
.sec_title span,
.page_title span {
	display: inline-block;
	position: relative;
	padding: 0 0 .275em;
}
.sec_title span::before,
.page_title span::before {
	position: absolute;
	bottom: 0;
	left: 50%;
	width: 92%;
	height: .125em;
	background: url("images/common/border-title.webp") center bottom / 100% 100% no-repeat;
	content: "";
	transform: translateX(-50%);
}
.sec_title_jp,
.page_title_jp {
	margin: 0;
	font-size: 1rem;
	font-weight: 500;
	letter-spacing: .3em;
	text-indent: .3em;
	text-align: center;
}
/* ----------
 * header
 * ---------- */
.site-header {
	position: fixed;
	top: 0;
	left: 0;
	width: 100%;
	height: 48px;
	padding: 0 7vw;
	border-bottom: 1px solid #ccc;
	box-sizing: border-box;
	background: #fff;
	z-index: 100;
}
.site-header .inner {
	height: 100%;
}
.site-branding, .site-title, .site-title a {
	display: flex;
	align-items: center;
	height: 100%;
	margin: 0;
}
.site-branding {
	width: calc(100% - 40px);
	justify-content: space-between;
}
.site-title {
	flex-grow: 2;
}
.site-title a {
	width: 175px;
}
.site-branding .contact a {
	display: flex;
	justify-content: center;
	align-items: center;
	width: 16px;
	height: 16px;
	margin: 0 0 0 22px;
	background: url("images/common/icon-mail.svg") center / contain no-repeat;
}
/* language button */
.lang_sp, .lang_pc {
	display: flex;
	justify-content: space-between;
	align-items: center;
	position: relative;
	line-height: 1;
}
.lang_sp {
	width: 3.5em;
	margin: 0 0 0 22px;
}
.lang_pc {
	width: 4em;
	margin: 0 0 0 2em;
}
.lang_sp::before,
.lang_pc::before {
	position: absolute;
	top: 5%;
	left: 50%;
	width: 1px;
	height: 90%;
	background: var(--main-color);
	content: "";
	transform: translateX(-50%);
}
.lang_sp li a,
.lang_pc li a {
	color: var(--main-color);
	font-family: var(--font-title);
	font-weight: 600;
	text-decoration: none;
	transition: opacity .3s ease;
}
.lang_sp li a {
	font-size: 1rem;
}
.lang_pc li a {
	font-size: 1.0625rem;
}
.lang_pc li a:hover {
	opacity: .6;
}
/* fixed menu */
.fixed_menu * {
	border: none;
	-webkit-appearance: none;
	appearance: none;
	outline: none;
}
.fixed_menu .fixed_bg {
	display: none;
	position: fixed;
	top: 0;
	left: 0;
	backdrop-filter: blur(12px);
	width: 100%;
	height: 100%;
	z-index: 999;
}
.fixed_menu .fixed_button {
	cursor: pointer;
	display: block;
	position: fixed;
	top: 10px;
	right: 7vw;
	width: 19px;
	height: 11px;
	padding: 0;
	border-radius: 50%;
	box-sizing: border-box;
	background: none;
	z-index: 1001;
}
.fixed_menu .fixed_button .fixed_bar {
	display: block;
	width: 19px;
	height: 1px;
	margin: 8px 0;
	background: var(--main-color);
	transition: all .2s ease;
	transform-origin: center;
}
.fixed_menu .fixed_button.active .fixed_bar {
	width: 23px;
	margin: 10px 0;
}
.fixed_menu .fixed_button.active .fixed_bar1 {
	transform: translateY(1.5px) rotate(45deg);
}
.fixed_menu .fixed_button.active .fixed_bar2 {
	transform: translateY(-10px) rotate(-45deg);
}
.fixed_menu .fixed_nav_wrapper {
	display: flex;
	justify-content: center;
	align-items: center;
	position: fixed;
	top: 0;
	right: 0;
	width: 100%;
	max-width: 420px;
	height: 100%;
	padding: 0 7vw 0;
	box-sizing: border-box;
	background: rgba(255, 255, 255, 1);
	opacity: 0;
	overflow-y: scroll;
	transition: opacity .8s cubic-bezier(.52, .08, .18, 1);
	transform: translateX(420px);
	z-index: 1000;
}
.fixed_menu .fixed_nav_wrapper.open {
	opacity: 1;
	transform: translateX(0);
}
.fixed_logo {	
	display: flex;
	align-items: center;
	position: absolute;
	top: 0;
	left: 7vw;
	width: 175px;
	height: 48px;
	margin: 0 auto;
}
.global_menu {
	width: 174px;
	margin: 0 auto;
}
.global_menu li {
	border-bottom: .5px solid #333;
}
.global_menu li a {
	display: flex;
	justify-content: center;
	align-items: center;
	padding: 1.5em 0;
	color: var(--text-color);
	font-family: var(--font-title);
	font-size: 1.125rem;
	font-weight: 600;
	letter-spacing: .1em;
	text-indent: .1em;
	text-align: center;
	text-decoration: none;
	transition: all .3s ease;
}
.global_menu li a:hover {
	color: var(--main-color);
}
/* ----------
 * footer
 * ---------- */
/* footer content */
.site-footer {
	padding: 40px 7vw;
	box-sizing: border-box;
	background: var(--text-color);
}
.footer_logo {
	width: 83px;
	height: 86px;
	margin: 0 auto;
}
.footer_info .text {
	margin: 2.75em 0;
}
.footer_info .address, .footer_info .tel, .footer_info .tel a {
	margin: 0;
	color: #fff;
	font-size: clamp(.75rem, 3.2vw, .8125rem);
	letter-spacing: 0;
	text-indent: 0;
	text-align: center;
	line-height: 1.91;
}
.footer_info .tel a {
	text-decoration: none;
}
.footer_info .btn_contact a {
	display: flex;
	justify-content: center;
	align-items: center;
	width: 250px;
	height: 40px;
	margin: 1.75em auto 0;	
	border-radius: .8em;
	box-sizing: border-box;
	background: #fff;
	color: var(--text-color);
	font-size: .875rem;
	font-weight: 500;
	letter-spacing: .2em;
	text-indent: .2em;
	text-decoration: none;
	transition: all .3s ease;
}
.footer_info .btn_contact a:hover {
	background: var(--main-color);
	color: #fff;
}
.footer_info .btn_contact a span {
	display: inline-block;
	position: relative;
	padding-left: 28px;
}
.footer_info .btn_contact a span::before {
	position: absolute;
	top: 50%;
	left: 0;
	width: 16px;
	height: 12px;
	background: url("images/common/icon-mail-bk.svg") center / contain no-repeat;
	content: "";
	transition: background .3s ease;
	transform: translateY(-50%);
}
.footer_info .btn_contact a:hover span::before {
	background: url("images/common/icon-mail-wh.svg") center / contain no-repeat;
}
/* footer menu */
.footer_menu {
	display: none;
	justify-content: space-between;
	width: 48%;
}
.menu_box_l {
	width: 14%;
}
.menu_box_c {
	width: 48%;
}
.menu_box_r {
	width: 21%;
}
.menu_title {
	margin: 0 0 .75em;
}
.menu_title a,
.ft_menu li a {
	color: #fff;
	text-decoration: none;
	white-space: nowrap;
	transition: opacity .3s ease;
}
.menu_title a:hover,
.ft_menu li a:hover {
	opacity: .6;
}
.menu_title a .en {
	font-family: var(--font-title);
	font-weight: 600;
	font-size: .75rem;
}
.menu_title a .jp {
	font-size: 1rem;
	letter-spacing: .05em;
	text-indent: .05em;
}
.menu_box_c .ft_menu {
	display: flex;
	flex-flow: row wrap;
}
.jp .menu_box_c .ft_menu li {
	width: 50%;
}
.ft_menu li {
	position: relative;
	padding-left: .65em;
	line-height: 1.75;
}
.ft_menu li::before {
	position: absolute;
	top: .75em;
	left: 0;
	width: .5em;
	height: .5em;
	background: url("images/common/arrow-menu.svg") left center / contain no-repeat;
	content: "";
}
.ft_menu li a {
	font-size: .75rem;
}
.menu_box_l .ft_menu li a {
	letter-spacing: .3em;
	text-indent: .3em;
}
.menu_box_c .ft_menu li a {
	letter-spacing: .05em;
	text-indent: .05em;
}
.sdgs {
	width: 239px;
	height: 46px;
	margin: 3em auto 1.25em;
}
.copyright, .copyright a {
	color: #999;
	font-family: var(--font-title);
	font-size: .625rem;
	white-space: nowrap;
	letter-spacing: .1em;
	text-indent: .1em;
	text-align: center;
	text-decoration: none;
}
/* ----------
 * top
 * ---------- */
/* main visual */
.main_visual {
	margin: 48px 0 0;
	padding: 0;
	height: calc(100svh - 48px);
	overflow: hidden;
}
.video {
	position: absolute;
	top: 50%;
	left: 50%;
	width: auto;
	height: 100%;
	transform: translate(-50%, -50%);
}
video::-webkit-media-controls-overlay-play-button {
	display: none !important;  /* 非表示を防ぐ */
}
@supports (-webkit-appearance: none) {	/* iOS Safari 専用 */
	video::-webkit-media-controls-start-playback-button {
		opacity: 0 !important;
	}
}
.copy_text {
	position: absolute;
	top: 50%;
	left: 50%;
	width: 100%;
	height: 100%;
	padding: 10% 0;
	box-sizing: border-box;
	background: rgba(0, 0, 0, .15);
	color: #fff;
	text-align: center;
	transform: translate(-50%, -50%);
	z-index: 1;
}
.copy_text div {
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-items: center;
	height: 100%;
	opacity: 0;
	filter: blur(10px);
	transform: scale(.95);
	transition: transform 1s ease, opacity 1s ease, filter 1s ease;
}
.copy_text div.on {
	opacity: 1;
	filter: none;
	transform: scale(1);
}
.copy_text .jp {
	margin: 0 0 1.25em;
	font-size: 1.75em;
	font-weight: 700;
	text-align: center;
	line-height: 1.75;
}
.copy_text .en {
	margin: 0;
	font-size: .875rem;
	font-family: var(--font-title);
	letter-spacing: .2em;
	text-align: center;
	line-height: 1.5;
}
.copy_text .multi .jp {
	margin: 0 0 .5em;
}
.copy_text .multi .jp.second {
	margin-top: 1.25em;
}
.loading .text figure {
	position: absolute;
	top: 50%;
	left: 50%;
	width: 75%;
	max-width: 490px;
	opacity: 0;
	filter: blur(10px);
	z-index: 2;
}
.loading .text figure.item01,
.loading .text figure.item02 {
	transform: translate(-50%, -50%) scale(.95);
	transition: transform .5s ease, opacity 1s ease, filter 1s ease;
}
.loading .text figure.item03 {
	transform: translate(-50%, -50%) scale(.25);
	transform-origin: right center;
	transition: transform .8s cubic-bezier(0.25, 0, .1, 1.8), opacity 1s ease, filter 1s ease;
}
.loading .text figure.on,
.loading .logo.on {
	opacity: 1;
	filter: none;
	transform: translate(-50%, -50%) scale(1);
}
.loading .text figure.item03.on.remove {
	opacity: 0;
	filter: blur(10px);
	transform: translate(-50%, -50%) scale(.95);
	transition: transform .5s ease, opacity 1s ease, filter 1s ease;
}
.loading .logo {
	position: absolute;
	top: 50%;
	left: 50%;
	width: 40%;
	max-width: 180px;
	transition: transform 1s ease, opacity 1s ease, filter 1s ease;
	transform: translate(-50%, -50%);
	opacity: 0;
	filter: blur(10px);
	z-index: 2;
}
/* top news */
.topics_list {
	max-width: 780px;
	margin: 0 auto;
}
.topics_list li a {
	display: flex;
	justify-content: space-between;
	padding: 1em 0;
	border-bottom: .5px solid #333;
	text-decoration: none;
}
.topics_list li a time {
	width: 6.5em;
	color: #999;
	font-family: var(--font-title);
	font-size: .75rem;
}
.topics_list li a h3 {
	width: calc(100% - 4.5em);
	margin: 0;
	color: var(--text-color);
	font-size: .875rem;
	transition: all .3s ease;
}
.topics_list li a:hover h3 {
	color: var(--main-color);
}
/* top link */
.top_link {
	padding: 0 7vw 55px;
}
.link_page {
	margin: 0;
}
.link_page li:nth-child(2) {
	margin-top: 20px;
}
.link_page li a {
	display: flex;
	flex-direction: column;
	justify-content: center;
	position: relative;
	width: 100%;
	height: 90px;
	padding: 0 25px;
	border-radius: .75em;
	box-sizing: border-box;
	text-decoration: none;
	overflow: hidden;
	transition: all .3s ease;
}
.link_page li a::before,
.link_page li a::after {
	pointer-events: none;
	position: absolute;
	top: 50%;
	content: "";
	transition: all .3s ease;
}
.link_page li a::before {
	left: 50%;
	width: 100%;
	height: 100%;
	z-index: -1;
	transform: translate(-50%, -50%);
}
.link_page li:nth-child(1) a::before { background: url("images/common/bg-link-about.webp") center / cover no-repeat; }
.link_page li:nth-child(2) a::before { background: url("images/common/bg-link-technology.webp") center / cover no-repeat; }
.link_page li a:hover::before,
.link_faq a:hover::before {
	opacity: .7;
	transform: translate(-50%, -50%) scale(1.03);
}
.link_page li a::after {
	right: 25px;
	width: 28px;
	height: 28px;
	background: url("images/common/arrow-link.svg") right center / contain no-repeat;
	transition: all .3s ease;
	transform: translateY(-50%);
}
.link_page li a:hover::after {
	background: url("images/common/arrow-link-hover.svg") right center / contain no-repeat;
}
.link_page li a span {
	color: #fff;
	font-weight: 600;
	letter-spacing: .05em;
	text-indent: .05em;
}
.link_page li a .en {
	font-family: var(--font-title);
	font-size: .875rem;
}
.link_page li a .jp {
	font-size: 1rem;
}
/* ----------
 * page
 * ---------- */
 /* page header */
.page_header {
	display: flex;
	justify-content: center;
	align-items: center;
	height: 25svh;
	margin-top: 48px;
	background: #fff;
}
.page_title {
	margin: 0;
}
.error * {
	text-align: center;
}
/* ----------
 * about
 * ---------- */
.about_content {
	padding-left: 0;
	padding-right: 0;
}
.about_box {
	padding: 0 7vw 55px;
	border-radius: 1.25em;
	box-sizing: border-box;
}
.bg_en {
	margin: 0 -7vw .45em 0;
	color: #fff;
	font-family: var(--font-title);
	font-size: 4.375rem;
	font-weight: 600;
	white-space: nowrap;
	text-align: right;
	line-height: .6;
}
.about_box h2 {
	margin: 0 0 1.35em;
	font-size: 1.125rem;
	letter-spacing: .3em;
}
.about_works.en .about_box h2,
.about_overview.en .about_box h2,
.about_advisors.en .about_box h2 {
	margin: 0 0 .35em;
	font-family: var(--font-title);
	font-size: 400%;
	letter-spacing: .05em;
}
/* about works */
.about_works.about_content {
	margin-top: 0;
}
.about_works .about_box,
.about_clients .about_box {
	background: #f0f0f0;
}
.service_list {
	margin: 0 0 2.5em;
}
.service_list li {
	position: relative;
	padding-left: 1.2em;
	font-size: .9375rem;
	letter-spacing: 0;
	text-indent: 0;
	line-height: 2.2;
}
.about_works.en .service_list li {
	font-family: var(--font-en-cond);
	line-height: 1.5;
	margin-top: .7em;
}
.service_list li::before {
	position: absolute;
	top: .5em;
	left: 0;
	width: 1em;
	height: 1em;
	color: #ccc;
	font-size: .7em;
	content: "●";
}
.works_box .img figure {
	margin-top: 1em;
}
.works_box h3,
.works_box .location {
	letter-spacing: 0;
	text-indent: 0;
}
.about_works.jp .works_box .location,
.about_works.jp .works_box h3 {
	font-weight: 500;
	white-space: nowrap;
}
.about_works.en .works_box .location {
	font-family: var(--font-en);
	font-size: 100%;
}
.works_box h3 {
	margin: 2em 0 0;
	font-size: .9375rem;
}
.about_works.en .works_box h3 span {
	font-size: 65%;
}
.works_box .location {
	margin: .35em 0 0;
	padding: 0 0 1em;
	border-bottom: .75px solid var(--text-color);
	font-size: .75rem;
}
.works_box .detail {
	letter-spacing: 0;
	text-indent: 0;
}
.about_works.en .works_box .detail {
	font-family: var(--font-en-cond);
	font-size: 95%;
}
.works_box.item01 dl {
	margin-bottom: 3em;
}
.works_box.item02 dl {
	margin-bottom: 0;
}
.works_box dt, .works_box dd {
	margin: 0;
}
.works_box dt {
	display: inline-block;
	margin: 0 0 .5em;
	padding: .2em .55em;
	border-radius: .35em;
	box-sizing: border-box;
	background: #fff;
	font-size: .875rem;
	font-weight: 500;
}
.about_works.en .works_box dt,
.about_works.en .works_box dd {
	font-family: var(--font-en-cond);
	letter-spacing: 0;
	text-indent: 0;
}
.works_box dd {
	letter-spacing: 0;
	text-indent: 0;
}
.works_box .small {
	margin: 0 0 3em;
	letter-spacing: 0;
	text-indent: 0;
}
.virtual_tour {
	display: flex;
	justify-content: space-between;
	align-items: center;
}
.virtual_tour > div {
	width: 46%;
}
.btn_3d a {
	display: flex;
	justify-content: center;
	align-items: center;
	width: 100%;
	height: 20px;
	margin-top: 1em;
	background: var(--text-color);
	color: #fff;
	font-size: .65rem;
	font-weight: 500;
	text-decoration: none;
	transition: all .3s ease;
}
.en .btn_3d a {
	font-family: var(--font-en-cond);
}
.btn_3d a:hover {
	background: var(--main-color);
}
.btn_3d a span {
	display: inline-block;
	position: relative;
	padding-right: 15px;
}
.btn_3d a span::after {
	position: absolute;
	top: 50%;
	right: 0;
	width: 10px;
	height: 10px;
	background: url("images/about/arrow-btn.svg") center / contain no-repeat;
	content: "";
	transform: translateY(-50%);
}
.virtual_tour .img a {
	display: block;
	position: relative;
}
.virtual_tour .img a::before,
.virtual_tour .img a::after {
	pointer-events: none;
	position: absolute;
	content: "";
	transition: all .3s ease;
}
.virtual_tour .img a::before {
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background: #fff;
	opacity: 0;
}
.virtual_tour .img a::after {
	top: 50%;
	left: 50%;
	width: 8vw;
	height: 8vw;
	background: url("images/about/btn-movie.svg") center / contain no-repeat;
	transform: translate(-50%, -50%);
	z-index: 1;
}
.virtual_tour .img a:hover::before {
	opacity: .3;
}
.virtual_tour .img a:hover::after {
	background: url("images/about/btn-movie-hover.svg") center / contain no-repeat;
}
.virtual_tour .img a img {
	width: 100vw;
}
/* about overview */
.about_overview .about_box,
.about_advisors .about_box {
	background: #67c6dd;
}
.about_overview *,
.about_advisors * {
	color: #fff;
}
.about_overview .about_box h2,
.about_advisors .about_box h2 {
	margin: 0 0 .25em;
}
table.company {
	width: 100%;
	margin: 0;
}
table.company tr {
	display: block;
	padding: 1.5em 0;
	border-bottom: 1px solid #fff;
}
table.company th, table.company td {
	display: block;
	width: 100%;
	font-size: .9375rem;
	font-weight: 500;
	letter-spacing: 0;
	text-indent: 0;
	text-align: left;
}
table.company th {
	position: relative;
	padding-left: 1.25em;
}
table.company th::before {
	position: absolute;
	top: .45em;
	left: 0;
	width: .5em;
	height: .5em;
	font-size: .7em;
	content: "●";
}
table.company td a {
	text-decoration: none;
}
table.company td a:hover {
	color: #fff;
}
/* about advisors */
dl.advisors {
	display: flex;
	justify-content: space-between;
	align-items: center;
	margin: 0;
	padding: 1em 0;
	border-bottom: 1px solid #fff;
}
dl.advisors dt, dl.advisors dd {
	margin: 0;
}
dl.advisors dt {
	width: 9em;
	margin-top: -.2em;
	font-size: clamp(1.125rem, 4.8vw, 1.5rem);
	font-weight: 500;
	letter-spacing: .5em;
}
.en dl.advisors dt,
.en dl.advisors dd {
	letter-spacing: 0;
}
dl.advisors dt span {
	display: inline-block;
	font-size: clamp(.75rem, 3.2vw, .8125rem);
	font-weight: 400;
	line-height: 1.5;
}
dl.advisors dd {
	width: calc(100% - 9em);
	padding-left: 1em;
	border-left: 1px solid #fff;
	box-sizing: border-box;
	font-size: clamp(.875rem, 3.733vw, 1rem);
}
/* about clients */
.about_clients figure {
	width: 65%;
	max-width: 290px;
	margin: 4em auto 0;
}
/* ----------
 * technology
 * ---------- */
/* tech lead */
.tech_lead {
	margin-top: 0;
	padding: 0;
}
.tech_lead .content {
	padding: 35px 7vw 30px;
	border-radius: 1.25em;
	box-sizing: border-box;
	background: #f0f0f0;
}
.tech_lead * {
	letter-spacing: 0;
	text-indent: 0;
}
.tech_lead h2 {
	margin: 0;
	font-size: 1.25rem;
}
.tech_lead p {
	margin: .25em 0 0;
}
.tech_lead.en p {
	font-family: var(--font-en-cond);
}
/* tech detail */
.tech_detail {
	margin-bottom: 0;
}
.tech_detail h2,
.tech_merit h2 {
	font-size: 1.25rem;
	line-height: 1.6;
	text-align: center;
}
.tech_detail figure img {
	margin: 0 auto;
}
.tech_detail figure:nth-of-type(2) {
	margin-top: 3em;
}
/* tech merit */
.tech_merit.pd {
	padding-bottom: 0;
}
.tech_merit h2 span {
	display: inline-block;
	position: relative;
	padding: 0 1.75em .25em;
}
.tech_merit h2 span::after {
	pointer-events: none;
	position: absolute;
	bottom: 0;
	left: 0;
	width: 100%;
	height: .2em;
	background: url("images/technology/border.svg") center bottom / contain no-repeat;
	content: "";
}
.tech_merit .inner {
	position: relative;
}
.tech_merit .inner::before,
.tech_merit .inner::after {
	pointer-events: none;
	position: absolute;
	width: 42%;
	height: 160px;
	content: "";
}
.tech_merit .inner::before {
	top: -55px;
	right: 0;
	background: url("images/technology/bg-merit1.webp") right top / contain no-repeat;
}
.tech_merit .inner::after {
	bottom: 35px;
	left: 0;
	background: url("images/technology/bg-merit2.webp") left bottom / contain no-repeat;
}
.merit_list {
	margin: 0 0 3em;
}
.merit_list > li {
	position: relative;
	padding-left: 30px;
	margin-top: 3em;
}
.merit_list > li::before {
	pointer-events: none;
	position: absolute;
	top: -10px;
	left: 0;
	width: 120px;
	height: 84px;
	content: "";
	z-index: -1;
}
.merit_list > li:nth-child(1)::before { background:url("images/technology/icon-merit1.svg") left top / contain no-repeat; }
.merit_list > li:nth-child(2)::before { background:url("images/technology/icon-merit2.svg") left top / contain no-repeat; }
.merit_list > li:nth-child(3)::before { background:url("images/technology/icon-merit3.svg") left top / contain no-repeat; }
.merit_list > li:nth-child(4)::before { background:url("images/technology/icon-merit4.svg") left top / contain no-repeat; }
.merit_list li h3 {
	margin: 0 0 .15em;
	font-size: 1.125rem;
	letter-spacing: 0;
	text-indent: 0;
}
.merit_list li p {
	margin: 0;
}
.tech_merit.en .merit_list li p,
.tech_merit.en .merit_list ul li {
	font-weight: 500;
	letter-spacing: 0;
	text-indent: 0;
	text-align: left;
}
.merit_list li ul {
	margin: 0;
}
.merit_list ul li {
	position: relative;
	padding-left: 1.1em;
	font-size: .75rem;
}
.tech_merit.en .merit_list ul li {
	font-family: var(--font-en-cond);
}
.merit_list ul li::before {
	position: absolute;
	top: 0;
	left: 0;
	width: 1em;
	height: 1em;
	color: #fdcc7e;
	content: "●";
}
.tech_merit figure {
	width: 77%;
	margin: 0 -7vw 0 auto;
}
/* tech reuse */
.reuse_box {
	position: relative;
	padding: 20px 15px 40px;
	border: 3px solid #d9f0d3;
	border-radius: 1.25em;
	box-sizing: border-box;
	background: #fff;
	z-index: 1;
}
.reuse_box h2 {
	margin: 0;
}
.reuse_box h2 span {
	display: inline-block;
	position: absolute;
	top: -.8em;
	left: 50%;
	padding: .3em 1.5em .3em 2.75em;
	border-radius: .8em;
	background: #66bb50;
	color: #fff;
	font-size: 1.25rem;
	letter-spacing: 0;
	text-indent: 0;
	line-height: 1;
	white-space: nowrap;
	transform: translateX(-50%);
}
.tech_reuse.en .reuse_box h2 span {
	top: -1.6em;
}
.reuse_box h2 span::before {
	position: absolute;
	top: 50%;
	left: 1.5em;
	width: 1em;
	height: 1em;
	background: url("images/technology/icon-recycle.svg") center / contain no-repeat;
	content: "";
	transform: translateY(-50%);
}
.reuse_list {
	display: flex;
	flex-flow: row wrap;
	max-width: 1013px;
	margin: 0 auto;
}
.reuse_list li {
	width: 50%;
	margin-top: 2em;
}
.reuse_list li * {
	letter-spacing: 0;
	text-indent: 0;
	white-space: nowrap;
}
.reuse_list figure {
	width: 40%;
	margin: 0 auto;
}
.reuse_list figure img {
	margin: 0 auto;
}
.reuse_list h3 {
	margin: .25em 0;
	font-size: 1.125rem;
	text-align: center;
}
.reuse_list p {
	margin: 0;
	font-size: .75rem;
	text-align: center;
}
.tech_reuse.en .reuse_list p {
	font-family: var(--font-en-cond);
}
.tech_reuse .image {
	width: 160%;
	margin: -90px 0 -90px -7vw;
}
.link_faq a {
	display: flex;
	flex-direction: column;
	justify-content: center;
	position: relative;
	width: 100%;
	height: 90px;
	margin: 2em auto 0;
	padding: 0 25px;
	border-radius: .75em;
	box-sizing: border-box;
	text-decoration: none;
	overflow: hidden;
	z-index: 1;
}
.link_faq a::before {
	pointer-events: none;
	position: absolute;
	top: 50%;
	left: 50%;
	width: 100%;
	height: 100%;
	background: url("images/common/bg-link-faq.webp") center / cover no-repeat;
	content: "";
	transition: all .3s ease;
	transform: translate(-50%, -50%);
	z-index: -1;
}
.link_faq a::after {
	pointer-events: none;
	position: absolute;
	top: 50%;
	right: 25px;
	width: 28px;
	height: 28px;
	background: url("images/common/arrow-link.svg") right center / contain no-repeat;
	content: "";
	transition: all .3s ease;
	transform: translateY(-50%);
}
.link_faq a:hover::after {
	background: url("images/common/arrow-link-hover.svg") right center / contain no-repeat;
}
.link_faq a span {
	color: #fff;
	font-weight: 500;
	letter-spacing: .05em;
	text-indent: .05em;
}
.link_faq .en {
	font-family: var(--font-title);
	font-size: .875rem;
}
.link_faq a .jp {
	font-size: 1rem;
}
/* ----------
 * faq
 * ---------- */
.faq_content h2 {
	text-align: center;
}
dl.faq {
	margin: 0;
	padding: 1.5em 0;
	border-bottom: 1px solid #ccc;
}
dl.faq dt, dl.faq dd {
	position: relative;
	margin: 0;
	padding: .5em 3em;
	font-weight: 400;
	line-height: 1.8;
}
dl.faq dd {
	display: none;
	color: var(--main-color);
}
.faq_content.en dl.faq dt {
	font-family: var(--font-en);
}
.faq_content.en dl.faq dd {
	font-family: var(--font-en-cond);
}
dl.faq dt::before, dl.faq dd::before {
	position: absolute;
	top: -.2em;
	left: 0;
	font-family: var(--font-en);
	font-size: 1.8em;
}
dl.faq dt::before {
	content: "Q.";
}
dl.faq dd::before {
	content: "A.";
}
dl.faq dt::after {
	display: flex;
	justify-content: center;
	align-items: center;
	position: absolute;
	top: -.2em;
	right: 0;
	width: 2em;
	height: 2em;
	font-size: 2em;
	content: "＋";
	transition: all .3s ease;
}
dl.faq dt.is-active::after {
	content: "－";
	transform: rotate(360deg);
}
dl.faq dd span {
	font-weight: 700;
}
dl.faq dd a {
	color: var(--main-color);
	text-decoration: underline;
	transition: opacity .3s;
}
dl.faq dd a:hover {
	text-decoration: none;
	opacity: .6;
}
dl.faq dd ul {
	margin: 0;
}
dl.faq dd ul.disc li {
	margin-bottom: 0;
}
dl.faq dd .italic {
	font-style: italic;
	font-weight: 400;
}
/* ----------
 * contact
 * ---------- */
.contact_form h2 {
	text-align: center;
}
.contact_form.en h2 {
	font-family: var(--font-en);
	font-weight: 500;
}
.contact_form .inner {
	max-width: 1000px;
}
/* form */
table.contact_form, table.contact_form tbody {
	display: block;
	width: 100%;
	max-width: 1000px;
	margin: 0 auto;
}
table.contact_form tr {
	display: flex;
	flex-direction: column;
}
table.contact_form th, table.contact_form td {
	padding: 1.5em .5em;
	border-bottom: 1px solid #ccc;
	box-sizing: border-box;
	font-size: 1em;
}
table.contact_form.en th {
	font-family: var(--font-en-cond);
}
table.contact_form th {
	display: flex;
	justify-content: space-between;
	align-items: center;
	width: 100%;
	font-weight: 400;
	text-align: left;
}
table.contact_form th .req {
	display: inline-block;
	padding: .5em .3em .4em;
	background: #ff461c;
	color: #fff;
	letter-spacing: .3em;
	text-indent: .3em;
	line-height: 1;
}
table.contact_form.en th .req {
	font-family: var(--font-en-cond);
	letter-spacing: 0;
}
table.contact_form td {
	width: 100%;
}
.contact_form input[type="text"],
.contact_form input[type="email"],
.contact_form textarea {
	display: block;
	width: 100%;
	padding: 5px;
	border-radius: 0;
}
.contact_form input[type="text"]:focus,
.contact_form input[type="email"]:focus,
.contact_form textarea:focus,
.contact_form input[type="text"]:focus-visible,
.contact_form input[type="email"]:focus-visible
.contact_form textarea:focus-visible {
	outline-color: var(--main-color);
}
.btn_form {
	display: flex;
	flex-direction: column;
	position: relative;
	width: 320px;
	margin: clamp(40px, 10.6666vw, 80px) auto 0;
}
.contact_form .btn {
	display: flex;
	justify-content: center;
	align-items: center;
	width: 100%;
	height: 60px;
	margin: 1em auto 0;
	padding: 0;
	border: 2px solid var(--main-color);
	border-radius: .2em;
	box-sizing: border-box;
	background: var(--main-color);
	color: #fff;
	font-size: .9375rem;
	letter-spacing: .05em;
	transition: all .3s ease;
}
.contact_form .btn:hover {
	border: 2px solid var(--main-color);
	background: #fff;
	color: var(--main-color);
}
/* ----------
 * category
 * ---------- */
.category {
	background: #f0f0f0;
}
.post {
	margin: 0;
}
.content_post {
	margin: 0 auto;
	padding: 55px 7vw;
}
.article_list {
	border-top: 1px solid rgba(255, 255, 255, 1);
}
.article_list article a {
	display: block;
	padding: 2em 0;
	border-bottom: 1px solid rgba(255, 255, 255, 1);
	text-decoration: none;
	transition: all .3s ease;
}
.article_list article a:hover {
	background: var(--main-color);
}
.article_list article a figure {
	position: relative;
	height: 0;
	margin: 0;
	padding-top: 66.6666%;
	overflow: hidden;
}
.article_list article a .date {
	color: #999;
	font-family: var(--font-title);
	font-size: clamp(.875rem, 3.7333vw, .9375rem);
}
.article_list article a h2 {
	margin-top: .5em;
	color: var(--text-color);
	font-size: 1em;
	line-height: 1.5;
	transition: all .3s ease;
}
.article_list article a:hover *,
.article_list article a:hover .more,
.article_list article a:hover .more::after {
	color: #fff;
}
.article_list article a .more {
	position: relative;
	padding-right: 24px;
	color: var(--main-color);
	font-family: var(--font-title);
	font-size: .875rem;
	text-align: right;
	line-height: 1;
	transition: all .3s ease;
}
.article_list article a .more::after {
	position: absolute;
	right: 10px;
	top: 50%;
	width: .875rem;
	height: .875rem;
	content: ">";
	transition: all .3s ease;
	transform: translateY(-50%);
}
.article_list article a:hover .more::after {
	right: 0;
}
.article_list.blog article a:hover .more::after {
	right: -15px;
}
/* pagenation */
.category .pagination {
	width: 100%;
	margin-top: 70px;
}
.category .nav-links {
	display: flex;
	justify-content: center;
}
.category .page-numbers {
	display: flex;
	justify-content: center;
	align-items: center;
	width: 30px;
	height: 30px;
	margin: 0 10px;
	color: var(--main-color);
	font-weight: 500;
	line-height: 1;
	transition: all .3s ease;
}
.category .page-numbers.current, .category a.page-numbers:hover {
	border-radius: 50%;
	box-sizing: border-box;
	background: var(--main-color);
	color: #fff;
}
.category a.page-numbers {
	text-decoration: none;
}
.category .page-numbers:hover, .category a.page-numbers:hover {
	background: var(--main-color);
	opacity: .7;
}
/* ----------
 * sidebar
 * ---------- */
section.widget {
	margin: 0 auto 4em;
	padding: 0;
}
section.widget:first-of-type {
	margin-top: clamp(65px, 18.5vw, 110px);
}
section.widget:last-of-type {
	margin-bottom: 0;
}
.widget-title {
	position: relative;
	margin-bottom: 1em;
	padding: .25em 0 .25em .8em;
	border-left: 5px solid var(--main-color);
	color: var(--text-color);
	font-family: var(--font-title);
	font-size: clamp(1.5rem, 5.7vw, 1.125rem);
	font-weight: 600;
	line-height: 1;
}
.widget ul {
	list-style: none;
	margin: 0;
}
.widget li:last-child {
	margin-bottom: 0;
}
.widget li {
	margin-bottom: 1.5em;
	font-size: clamp(.8rem, 2.9vw, .875rem);
	line-height: 1.5;
}
.widget li a {
	color: var(--text-color);
	text-decoration: none;
	transition: all .3s ease;
}
.widget li a:hover {
	text-decoration: underline;
	opacity: .7;
}
/* ----------
 * post
 * ---------- */
.single {
	background: #f0f0f0;
}
.single .content_post {
	margin-top: 48px;
}
.post-thumbnail {
	position: relative;
	height: 0;
	margin: 0 0 1.5em;
	padding-top: 56.25%;
	overflow: hidden;
}
.single .site-main .entry-header {
	margin-bottom: 1.8em;
}
.single .site-main time {
	color: #999;
	font-family: var(--font-title);
	font-size: clamp(.875rem, 3.7333vw, .8375rem);
	text-align: right;
}
.single .entry-title {
	font-size: clamp(1.125rem, 4.75vw, 1.75rem);
}
/* post content */
.single .site-main h2 {
	padding: 0 0 0 .75em;
	border-left: .25em solid var(--main-color);
}
.single .site-main h3 {
	padding-left: .6em;
	border-left: .2em solid var(--main-color);
}
.single .site-main h5 {
	font-size: 1em;
}
/* pagenation */
.single .post-navigation {
	margin-top: 50px;
}
.single .nav-links {
	justify-content: space-between;
	align-items: center;
}
.single .nav-links > * {
	width: 48.5%;
}
.single .nav-links a {
	display: flex;
	align-items: center;
	color: var(--main-color);
	font-size: 93.3333%;
	text-decoration: none;
}
.single .nav-next a {
	justify-content: flex-end;
}
.single a .nav-title {
	transition: all .3s ease;
}
.single a:hover .nav-title {
	text-decoration: underline;
	opacity: .7;
}
.single .nav-previous a .nav-subtitle,
.single .nav-next a .nav-subtitle {
	display: inline-block;
}
.single .nav-previous a .nav-subtitle {
	margin-right: .5em;
}
.single .nav-next a .nav-subtitle {
	margin-left: .5em;
}
/* ----------
 * responsive
 * ---------- */
@media (min-width: 768px) {
	/* ----------
	 * layout
	 * ---------- */
	section {
		margin: 60px auto;
	}
	section.pd {
		padding: 60px 7vw;
	}
	/* ----------
	 * common
	 * ---------- */
	body {
		font-size: .9375rem;
	}
	.sp {
		display: none !important;
	}
	.pc {
		display: block !important;
	}
	/* ----------
	 * top
	 * ---------- */
	/* main visual */
	.copy_text .jp {
		font-size: 2em;
	}
	.copy_text .en {
		font-size: 1.25em;
	}
	/* top news */
	.topics_list li a time {
		line-height: 2.2;
	}
	/* top link */
	.top_link {
		padding-bottom: 60px;
	}
	.link_page {
		display: flex;
		justify-content: space-between;
	}
	.link_page li {
		width: 46%;
	}
	.link_page li:nth-child(2) {
		margin-top: 0;
	}
	/* ----------
	 * about
	 * ---------- */
	.about_box {
		padding: 0 7vw 60px;
	}
	.bg_en {
		font-size: 6.25rem;
	}
	.about_box h2 {
		font-size: 1.6111em;
	}
	/* about works */
	.service_list {
		display: flex;
		flex-flow: row wrap;
		margin: 0 0 3em;
	}
	.service_list li {
		width: 50%;
		font-size: 1.25rem;
	}
	.works_box .img {
		display: flex;
		justify-content: space-between;
	}
	.works_box .img figure {
		width: 49%;
		margin: 0;
	}
	.works_box dl {
		display: flex;
	}
	.works_box.item01 dl,
	.works_box .small {
		margin-bottom: 4em;
	}
	.works_box dt {
		margin: 0 1.2em 0 0;
	}
	.virtual_tour {
		width: 50%;
		margin: 0 0 0 auto;
	}
	.virtual_tour .img a::after {
		width: 3vw;
		height: 3vw;
	}
	/* ----------
	 * technology
	 * ---------- */
	/* tech lead */
	.tech_lead h2 {
		font-size: 1.6111em;
	}
	/* tech detail */
	.tech_detail h2,
	.tech_merit h2,
	.reuse_box h2 span {
		font-size: 1.5rem;
	}
	/* tech merit */
	.merit_list > li {
		padding-left: 80px;
	}
	.merit_list > li::before {
		top: -20px;
		width: 150px;
		height: 103px;
	}
	.merit_list li h3 {
		font-size: 1.5rem;
	}
	.merit_list ul li {
		font-size: .9375rem;
	}
	/* tech reuse */
	.tech_reuse .image {
		margin: -90px 0 -250px -7vw;
	}
	.link_faq {
		width: 50%;
		margin: 0 0 0 auto;
	}
	/* ----------
	 * contact
	 * ---------- */
	/* form */
	table.contact_form tr {
		flex-direction: row;
	}
	table.contact_form th {
		width: 27%;
	}
	table.contact_form td {
		width: 73%;
	}
	/* ----------
	 * category
	 * ---------- */
	.content_post {
		padding: 60px 7vw;
	}
	/* pagenation */
	.category .pagination {
		margin-top: 80px;
	}
	/* ----------
	 * sidebar
	 * ---------- */
	.content_post .widget-area {
		padding: 0 2vw;
	}
}
@media (min-width: 992px) {
	/* ----------
	 * layout
	 * ---------- */
	section {
		margin: 80px auto;
	}
	section.pd {
		padding: 80px 7vw;
	}
	/* ----------
	 * common
	 * ---------- */
	body {
		font-size: 1rem;
	}
	.sp2 {
		display: none !important;
	}
	.pc2 {
		display: block !important;
	}
	/* heading */
	.sec_title h2 {
		font-size: 3.25rem;
	}
	.sec_title_jp {
		font-size: 1.125rem;
	}
	/* ----------
	 * top
	 * ---------- */
	/* main visual */
	.video {
		width: 100%;
		height: auto;
	}
	/* top news */
	.topics_list li a time {
		width: 6em;
		font-size: .9375rem;
		line-height: 1.8;
	}
	.topics_list li a h3 {
		width: calc(100% - 6em);
		font-size: 1.125rem;
	}
	/* top link */
	.top_link {
		padding-bottom: 80px;
	}
	/* ----------
	 * about
	 * ---------- */
	.about_box {
		padding: 0 7vw 80px;
	}
	.bg_en {
		font-size: 7.5rem;
	}
	/* about overview */
	table.company tr {
		display: flex;
		padding: 1.75em 0;
	}
	table.company th {
		width: 30%;
	}
	table.company td {
		width: 70%;
	}
	/* ----------
	 * technology
	 * ---------- */
	/* tech lead */
	.tech_lead .content {
		position: relative;
	}
	.tech_lead.jp .content {
		padding: 65px 6.5vw 60px;
	}
	.tech_lead.en .content {
		padding: 60px 6.5vw 55px;
	}
	.tech_lead .text {
		position: relative;
		width: 52%;
		z-index: 1;
	}
	.tech_lead figure {
		position: absolute;
		top: -35px;
		right: 4.5%;
		width: 52%;
	}
	.tech_lead figure img {
		width: 100vw;
	}
	.tech_lead.jp p {
		line-height: 1.75;
	}
	/* tech detail */
	.tech_detail h2,
	.tech_merit h2,
	.reuse_box h2 span {
		font-size: 2rem;
	}
	.tech_detail .img {
		display: flex;
		justify-content: space-between;
		margin-top: 2.5em;
	}
	.tech_detail figure:nth-of-type(1) {
		width: 46.6666%;
	}
	.tech_detail figure:nth-of-type(2) {
		width: 45.3333%;
		margin: 0;
	}
	.tech_detail figure img {
		margin: 0;
	}
	/* tech merit */
	.tech_merit .inner::before, .tech_merit .inner::after {
		width: 45%;
		height: 285px;
	}
	.tech_merit .inner::after {
		bottom: 90px;
	}
	.merit_list {
		display: flex;
		flex-flow: row wrap;
		padding: 0 70px;
		box-sizing: border-box;
	}
	.merit_list > li {
		width: 48%;
	}
	.merit_list > li:nth-child(4)::before {
		left: 15px;
	}
	.merit_list > li:nth-child(1),
	.merit_list > li:nth-child(2) {
		margin-top: 1.5em;
	}
	/* tech reuse */
	.tech_reuse.pd {
		padding-top: 0;
	}
	.reuse_box {
		padding: 50px 30px 60px;
		border: 6px solid #d9f0d3;
	}
	.reuse_list li {
		width: 25%;
	}
	.reuse_list h3 {
		font-size: 1.5rem;
	}
	.reuse_list p {
		font-size: 1.0625rem;
	}
	.tech_reuse .image {
		margin: -120px 0 -300px -7vw;
	}
	.tech_reuse .virtual_tour,
	.link_faq {
		width: 46%;
	}
	/* ----------
	 * category
	 * ---------- */
	.content_post {
		padding: 80px 7vw;
	}
	/* pagenation */
	.category .pagination {
		margin-top: 80px;
	}
}
@media (min-width: 1200px) {
	/* ----------
	 * layout
	 * ---------- */
	section {
		margin: 100px auto;
		padding: 0 3vw;
	}
	section.pd {
		padding: 100px 3vw;
	}
	/* ----------
	 * common
	 * ---------- */
	body {
		font-size: 1.125rem;
	}
	.sp3 {
		display: none !important;
	}
	.pc3 {
		display: block !important;
	}
	/* heading */
	.sec_title h2,
	.page_title h1 {
		font-size: 3.875rem;
	}
	.sec_title_jp,
	.page_title_jp {
		font-size: 1.125rem;
	}
	/* ----------
	 * header
	 * ---------- */
	.site-header {
		height: 120px;
		padding: 0 3vw;
		transition: all .3s ease;
	}
	.site-header .inner {
		display: flex;
		justify-content: space-between;
		padding-top: 65px;
		box-sizing: border-box;
	}
	.site-branding {
		width: 304px;
	}
	.site-header nav {
		width: 50%;
		height: 100%;
	}
	.site-title a {
		width: auto;
	}
	.lang_pc.pc3 {
		display: flex !important;
	}
	.fixed_menu {
		height: 100%;
	}
	.fixed_menu .fixed_nav_wrapper {
		display: flex;
		justify-content: flex-end;
		align-items: center;
		position: static;
		max-width: initial;
		height: 100%;
		padding: 0;
		background: none;
		overflow-y: visible;
		opacity: 1;
		transform: translateX(0);
	}
	/* global menu */
	.global_menu {
		display: flex;
		justify-content: space-between;
		align-items: center;
		width: 100%;
		max-width: 510px;
		margin: 0;
		padding: 0;
	}
	.global_menu li {
		border: none;
	}
	.global_menu li a {
		position: relative;
		padding: 0;
		border: none;
		font-size: 1.0625rem;
	}
	.global_menu li a::before {
		display: none;
		position: absolute;
		top: -1.25em;
		left: 50%;
		width: 8px;
		height: 8px;
		border-radius: 50%;
		box-sizing: border-box;
		background: var(--main-color);
		content: "";
		transform: translateX(-50%);
	}
	.global_menu li.current a::before {
		display: block;
	}
	.global_menu li.contact a {
		width: 24px;
		height: 24px;
		background: url("images/common/icon-mail.svg") center / contain no-repeat;
		transition: all .3s ease;
	}
	.global_menu li.contact a:hover {
		opacity: .6;
	}
	.global_menu li.contact a span {
		display: none;
	}
	/* ----------
	 * footer
	 * ---------- */
	.site-footer {
		padding: 60px 3vw;
	}
	/* footer content */
	.footer_content {
		display: flex;
		justify-content: space-between;
	}
	.footer_info {
		display: flex;
		justify-content:space-between;
		width: 40%;
	}
	.en .footer_info {
		width: 44%;
	}
	.footer_logo {
		width: 138px;
		margin: 0;
	}
	.footer_info .text {
		width: 52.5%;
		margin: 0;
		text-align: left;
	}
	.en .footer_info .text {
		width: 62.5%;
	}
	.footer_info .address, .footer_info .tel, .footer_info .tel a {
		text-align: left;
		line-height: 2.3;
	}
	.footer_menu {
		display: flex;
	}
	.sdgs {
		margin-top: 6.5em;
	}
	.copyright, .copyright a {
		font-size: .75rem;
	}
	/* ----------
	 * top
	 * ---------- */
	/* main visual */
	.main_visual {
		margin: 120px 0 0;
		height: calc(100svh - 120px);
	}
	/* top link */
	.top_link {
		padding: 0 3vw 100px;
	}
	.link_page li a {
		padding: 0 30px;
		height: 155px;
	}
	.link_page li a::after {
		right: 30px;
		width: 48px;
		height: 48px;
	}
	.link_page li a .en {
		font-size: 1.25rem;
	}
	.link_page li a .jp {
		font-size: 1.5rem;
	}
	/* ----------
	 * page
	 * ---------- */
	 /* page header */
	.page_header {
		height: 50svh;
		margin-top: 120px;
	}
	/* ----------
	 * about
	 * ---------- */
	.about_box {
		padding: 0 6.45vw 100px;
	}
	.bg_en {
		margin-right: -6.75vw;
		margin-bottom: .35em;
		font-size: 11.875rem;
	}
	.service_list li {
		width: 33.3333%;
	}
	/* about works */
	.works_box h3 {
		margin: 1em 0 0;
		font-size: 1.55rem;
	}
	.works_box .location {
		margin: .2em 0 0;
		padding: 0;
		border-bottom:none;
		font-size: 1.25rem;
	}
	.works_box .detail {
		margin-top: .5em;
		line-height: 1.6;
	}
	.btn_3d a {
		height: 30px;
		font-size: 1rem;
	}
	.btn_3d a span {
		padding-right: 21px;
	}
	.btn_3d a span::after {
		width: 15px;
		height: 15px;
	}
	/* about overview */
	table.company th, table.company td {
		font-size: 1.125rem;
	}
	/* about advisors */
	dl.advisors dt {
		width: 10.5em;
	}
	dl.advisors dd {
		width: calc(100% - 10.5em);
	}
	/* ----------
	 * technology
	 * ---------- */
	/* tech detail */
	.tech_detail h2,
	.tech_merit h2,
	.reuse_box h2 span {
		font-size: 2.1875rem;
	}
	/* tech merit */
	.tech_merit figure {
		width: 728px;
		margin: 0 -3vw 0 auto;
	}
	/* tech reuse */
	.tech_reuse {
		background: url("images/technology/bg-reuse.webp") left bottom -250px / 100% auto no-repeat;
	}
	.tech_reuse.en .reuse_box h2 span {
		top: -.8em;
	}
	.tech_reuse .virtual_tour {
		margin-top: 6em;
	}
	.link_faq a {
		padding: 0 30px;
		height: 155px;
	}
	.link_faq a::after {
		right: 30px;
		width: 48px;
		height: 48px;
	}
	.link_faq a .en {
		font-size: 1.25rem;
	}
	.link_faq a .jp {
		font-size: 1.5rem;
	}
	/* ----------
	 * category
	 * ---------- */
	.content_post {
		display: flex;
		justify-content: space-between;
		padding: 100px 3vw;
	}
	.content_post .site-main {
		width: 72.3076%;
	}
	.content_post .widget-area {
		width: 25%;
		padding: 0 25px 0 0;
		box-sizing: border-box;
	}
	.article_list article a {
		padding: 2em 1em;
	}
	.article_list article a .text {
		display: flex;
		justify-content: space-between;
		align-items: center;
	}
	.article_list article a .date {
		width: 11%;
	}
	.article_list article a h2 {
		width: 75%;
	}
	.article_list article a .more {
		width: 12%;
	}
	/* pagenation */
	.category .pagination {
		margin-top: 100px;
	}
	/* ----------
	 * sidebar
	 * ---------- */
	section.widget:first-of-type {
		margin-top: 0;
	}
	/* ----------
	 * post
	 * ---------- */
	.single .content_post {
		margin-top: 120px;
	}
}
@media (min-width: 1350px) {
	/* ----------
	 * layout
	 * ---------- */
	section {
		margin: 120px auto;
		padding: 0;
	}
	section.pd {
		padding: 120px 0;
	}
	/* ----------
	 * footer
	 * ---------- */
	.site-footer {
		padding: 60px 0;
	}
	/* ----------
	 * top
	 * ---------- */
	/* top link */
	.top_link {
		padding: 0 0 120px;
	}
	/* ----------
	 * about
	 * ---------- */
	.about_content {
		margin: 100px auto;
	}
	/* ----------
	 * technology
	 * ---------- */
	/* tech merit */
	.merit_list {
		margin: 0 0 1em;
	}
	.tech_merit figure {
		margin: 0 0 0 auto;
	}
	/* ----------
	 * category
	 * ---------- */
	.content_post {
		padding: 120px 0;
	}
	.content_post .widget-area {
		width: 21.1538%;
		padding: 0;
	}
}