#ADVANTAGE .block .hed:after {
content: ".";
display: block;
height: 0;
clear: both;
visibility: hidden;
}
#ADVANTAGE .block .hed {
zoom: 1;
}

/* CONTENTS */
#HEAD {
overflow: hidden;
position: relative;
background-color: var(--color-white);
padding: 40px 40px 40px 0;
}
#HEAD::before {
content: '';
display: block;
position: absolute;
left: 0;
top: 0;
background-color: var(--color-bg-soft);
height: 100%;
}
.initView #HEAD::before {
transition: width 1s ease;
transition-delay: 0.3s;
width: 0;
}
.activeView #HEAD::before {
width: 100%;
}
#HEAD::after {
content: '';
display: block;
position: absolute;
top: 0;
background: url("/img/main_pht2.jpg") no-repeat center center;
background-size: cover;
height: 100%;
z-index: 0;
}
body.virtual-service #HEAD::after {
background-image: url("/common/img/service/main_bg.jpg");
}
body.virtual-company #HEAD::after {
background-image: url("/img/main_pht2.jpg");
}
body.post-type-archive-neold_work #HEAD::after {
background-image: url("/img/main_pht5.jpg");
}
body.virtual-company.company-philosophy #HEAD::after {
background-image: url("/img/main_pht1.jpg");
}
body.virtual-company.company-profile #HEAD::after {
background-image: url("/img/main_pht3.jpg");
}
body.virtual-company.company-history #HEAD::after {
background-image: url("/img/main_pht4.jpg");
}
body.virtual-contact #HEAD::after,
body.virtual-estimate #HEAD::after {
background-image: url("/common/img/contact_bg.jpg");
}
.initView #HEAD::after {
transition: all 1s ease;
transition-delay: 0.6s;
width: 100%;
left: -100%;
}
.activeView #HEAD::after {
width: 100%;
left: 0;
}
#HEAD .bg {
transform: translateX(100%);
padding: 0 0 0 0;
}
.initView #HEAD .bg {
transition: transform 1s ease;
transition-delay: 0.6s;
}
.activeView #HEAD .bg {
transform: translateX(0);
}
#HEAD img {
width: 100%;
height: auto;
}
#HEAD .catch {
outline: 1px solid transparent;
position: relative;
background-color: var(--color-white);
padding: 20px;
text-align: left;
transform: scale(1.2);
opacity: 0;
z-index: 1;
}
.initView #HEAD .catch {
transition: all 1.5s ease;
transition-delay: 1.5s;
opacity: 0;
}
.activeView #HEAD .catch {
transform: scale(1);
opacity: 1;
}
#HEAD .catch h1 {
margin-bottom: 15px;
font-family: var(--font-sans);
font-style: normal;
font-weight: 700;
font-size: 32px;
letter-spacing: 0.1em;
line-height: 1.5;
}
#HEAD .catch p {
font-size: 16px;
line-height: 2;
}
#HEAD .catch p.lnk {
margin-top: 10px;
font-size: 16px;
font-weight: 700;
line-height: 1.2;
text-align: right;
}
#HEAD .catch p.lnk a {
transition: all var(--transition-base);
background: linear-gradient(var(--color-primary), var(--color-primary)) 0 100%/0 3px no-repeat;
padding-bottom: 3px;
text-decoration: none;
color: var(--color-text);
}
#HEAD .catch p.lnk a:hover {
background-size: 100% 3px;
}
#HEAD .catch p.lnk a::after {
content: 'keyboard_double_arrow_right';
display: inline-block;
margin-left: 5px;
font-family: var(--font-icon);
font-weight: normal;
font-style: normal;
line-height: 1;
vertical-align: -0.15em;
font-size: 16px;
color: var(--color-primary);
}
@media (min-width: 769px) {
	#HEAD {
	position: relative;
	padding: 0 0 0 0;
	height: 300px;
	}
	#HEAD .bg {
	position: absolute;
	right: 0;
	top: 0;
	box-sizing: border-box;
	max-width: 800px;
	}
	#HEAD .cont {
	position: relative;
	margin: 0 auto;
	max-width: var(--content-width);
	height: 300px;
	}
	.virtual-service #HEAD .cont,
	.virtual-service #HEAD {
	height: 500px;
	}
	#HEAD .catch {
	transform: translateY(-50%) scale(1.2);
	position: absolute;
	left: 50px;
	top: 50%;
	box-sizing: border-box;
	width: 550px;
	}
	.activeView #HEAD .catch {
	transform: translateY(-50%) scale(1);
	}
	#HEAD .catch h3 {
	font-size: 48px;
	}
	#HEAD .catch p {
	line-height: 2.25;
	}
}

#ADVANTAGE {
overflow: hidden;
position: relative;
background-color: var(--color-white);
padding-bottom: 40px;
}
#ADVANTAGE::before {
box-sizing: border-box;
transition: all 1s ease;
transition-delay: 1s;
content: '';
display: block;
position: absolute;
left: 0;
top: 0;
background-color: var(--color-bg-soft);
width: 50%;
z-index: 0;
pointer-events: none;
}
.initView #ADVANTAGE::before {
height: 0;
}
.activeView #ADVANTAGE::before {
height: 100%;
}
#ADVANTAGE .head {
position: relative;
padding: 40px 20px;
z-index: 1;
}
#ADVANTAGE .head .en {
font-family: var(--font-serif);
font-style: normal;
font-weight: 400;
font-size: 36px;
letter-spacing: 0.1em;
line-height: 1.2;
}
#ADVANTAGE .head .en::before {
content: '';
display: block;
background-color: var(--color-text);
margin: 0 auto 20px auto;
width: 2px;
height: 50px;
}
#ADVANTAGE .head h2 {
font-size: 16px;
font-weight: 700;
}
#ADVANTAGE .head h2::before {
content: '';
display: block;
background-color: var(--color-accent);
margin: 0 auto 10px auto;
width: 40px;
height: 3px;
}
#ADVANTAGE .head .lead {
margin-top: 20px;
font-size: 16px;
line-height: 1.5;
text-align: left;
}
#ADVANTAGE .cont {
position: relative;
padding: 0 20px;
text-align: left;
z-index: 1;
}
#ADVANTAGE .companyTable,
#ADVANTAGE .formBox {
position: relative;
z-index: 2;
}
#ADVANTAGE input,
#ADVANTAGE textarea,
#ADVANTAGE select,
#ADVANTAGE button {
position: relative;
z-index: 3;
}
.formBox {
background: var(--color-white);
padding: 20px;
text-align: left;
}
.formBox dl {
margin: 0;
}
.formBox dt {
margin-top: 15px;
font-weight: 700;
}
.formBox dd {
margin: 5px 0 0;
}
.formBox input,
.formBox textarea,
.formBox select {
box-sizing: border-box;
border: 1px solid var(--color-border);
padding: 12px;
width: 100%;
font: inherit;
}
.formBox textarea {
min-height: 180px;
}
.formBox .note {
margin-top: 15px;
color: var(--color-muted);
}
.companyTable {
border-collapse: collapse;
background: var(--color-white);
width: 100%;
text-align: left;
box-shadow: 0 0 0 1px var(--color-border-light);
}
.companyTable th,
.companyTable td {
border-bottom: 1px solid var(--color-border);
padding: 16px 18px;
line-height: 1.8;
vertical-align: top;
}
.companyTable tr:last-child th,
.companyTable tr:last-child td {
border-bottom: none;
}
.companyTable th {
background-color: var(--color-bg-soft);
font-size: 14px;
font-weight: 700;
color: var(--color-muted);
}
.companyTable td {
font-size: 15px;
color: var(--color-text);
}
@media (max-width: 768px) {
	.companyTable,
	.companyTable tbody,
	.companyTable tr,
	.companyTable th,
	.companyTable td {
	display: block;
	box-sizing: border-box;
	width: 100%;
	}
	.companyTable {
	border-top: 1px solid var(--color-border);
	}
	.companyTable tr {
	border-bottom: 1px solid var(--color-border);
	}
	.companyTable tr:last-child {
	border-bottom: none;
	}
	.companyTable th,
	.companyTable td {
	border-bottom: none;
	padding-right: 16px;
	padding-left: 16px;
	}
	.companyTable th {
	padding-top: 14px;
	padding-bottom: 4px;
	background-color: var(--color-white);
	color: var(--color-primary);
	}
	.companyTable td {
	padding-top: 0;
	padding-bottom: 16px;
	line-height: 1.75;
	}
}
#ADVANTAGE .block {
padding-bottom: 40px;
}
#ADVANTAGE .block:nth-child(odd) .image {
margin-right: -20px;
}
#ADVANTAGE .block:nth-child(even) .image {
margin-left: -20px;
}
#ADVANTAGE .block img {
width: 100%;
height: auto;
}
#ADVANTAGE .cont h2 {
border-left: solid 3px var(--color-accent);
margin-top: 25px;
padding-left: 15px;
line-height: 1.2;
}
#ADVANTAGE .cont h2 span {
font-family: var(--font-serif);
font-style: normal;
font-weight: 400;
font-size: 30px;
letter-spacing: 0.1em;
}
#ADVANTAGE .cont h2 strong {
font-size: 14px;
font-weight: 700;
}
#WORKS .block h3,
#ADVANTAGE .block h3 {
margin-top: 20px;
font-size: 18px;
font-weight: 700;
line-height: 1.5;
}
#WORKS .block p,
#ADVANTAGE .block p {
margin-top: 10px;
font-size: 16px;
line-height: 1.5;
}
#WORKS {
overflow: hidden;
position: relative;
background-color: var(--color-bg-soft);
padding-bottom: 20px;
}
#WORKS::before {
box-sizing: border-box;
transition: all 1s ease;
transition-delay: 0.3s;
content: '';
display: block;
position: absolute;
left: 0;
top: 0;
background-color: var(--color-white);
width: 50%;
}
.initView #WORKS::before {
height: 0;
}
.activeView #WORKS::before {
height: 100%;
}
#WORKS .head {
position: relative;
padding: 40px 20px;
}
#WORKS .head .en {
font-family: var(--font-serif);
font-style: normal;
font-weight: 400;
font-size: 36px;
letter-spacing: 0.1em;
line-height: 1.2;
}
#WORKS .head .en::before {
content: '';
display: block;
background-color: var(--color-text);
margin: 0 auto 20px auto;
width: 2px;
height: 50px;
}
#WORKS .head h2 {
font-size: 16px;
font-weight: 700;
}
#WORKS .head h2::before {
content: '';
display: block;
background-color: var(--color-accent);
margin: 0 auto 10px auto;
width: 40px;
height: 3px;
}
#WORKS .head .lead {
margin-top: 20px;
font-size: 16px;
line-height: 1.5;
text-align: left;
}
#WORKS .cont {
position: relative;
padding: 0 20px;
text-align: left;
}
#WORKS .list {
display: flex;
flex-direction: column;
gap: 40px;
padding-bottom: 20px;
}
#WORKS .pack.hover {
cursor: pointer;
}
#WORKS .block .image {
position: relative;
z-index: 1;
}
#WORKS .block .image::before {
transition: opacity 0.5s ease;
content: "";
position: absolute;
left: 0;
top: 0;
width: 100%;
height: 100%;
background: radial-gradient(rgba(0, 0, 0, 0.5) 0% 10%, rgba(0, 0, 0, 0) 60% 100%);
opacity: 0;
z-index: -1;
}
#WORKS .pack.hover .image::before,
#WORKS .block .hover .image:hover::before {
opacity: 1;
}
#WORKS .block img {
width: 100%;
height: auto;
}
#WORKS .block h3 a {
transition: all 0.5s ease;
background: linear-gradient(var(--color-primary), var(--color-primary)) 0 100%/0 3px no-repeat;
padding-bottom: 3px;
text-decoration: none;
color: var(--color-text);
}
#WORKS .pack.hover h3 a,
#WORKS h3 a:hover {
background-size: 100% 3px;
}
#WORKS .block h3 a::after {
position: relative;
top: 0;
content: 'keyboard_double_arrow_right';
display: inline-block;
margin-left: 5px;
font-family: var(--font-icon);
font-weight: normal;
font-style: normal;
line-height: 1;
vertical-align: -0.15em;
font-size: 16px;
color: var(--color-primary);
}
@media (min-width: 769px) {
	#ADVANTAGE {
	padding-bottom: 0;
	}
	#WORKS {
	padding-bottom: 40px;
	}
	#WORKS .head {
	box-sizing: border-box;
	margin: 0 auto;
	padding: 40px 50px;
	max-width: var(--content-width);
	}
	#WORKS .head .en {
	font-size: 48px;
	}
	#WORKS .head .lead {
	text-align: center;
	}
	#WORKS .cont {
	box-sizing: border-box;
	margin: 0 auto;
	padding: 0 50px;
	max-width: var(--content-width);
	}
	#WORKS .list {
	display: flex;
	flex-direction: row;
	gap: 0;
	flex-wrap: wrap;
	}
	#WORKS .block {
	box-sizing: border-box;
	padding-bottom: 40px;
	width: 50%;
	float: left;
	}
	#WORKS .block:nth-child(odd) {
	padding-right: 25px;
	}
	#WORKS .block:nth-child(even) {
	padding-left: 25px;
	}
	#WORKS .block img {
	width: 100%;
	height: auto;
	}
	#WORKS .block h3 {
	margin-top: 20px;
	font-size: 24px;
	}
	#WORKS .block h3 a::after {
	top: -2px;
	}
	#WORKS .block p {
	margin-top: 20px;
	font-size: 16px;
	}
	#ADVANTAGE .head {
	box-sizing: border-box;
	margin: 0 auto;
	padding: 40px 50px;
	max-width: var(--content-width);
	}
	#ADVANTAGE .head .en {
	font-size: 48px;
	}
	#ADVANTAGE .head .lead {
	text-align: center;
	}
	#ADVANTAGE .cont {
	box-sizing: border-box;
	margin: 0 auto;
	padding: 0 50px 40px 50px;
	max-width: var(--content-width);
	}
	.companyTable {
	max-width: 960px;
	margin: 0 auto;
	}
	.companyTable th,
	.companyTable td {
	padding: 20px 24px;
	}
	.companyTable th {
	width: 150px;
	}
	#ADVANTAGE .block {
	padding-bottom: 80px;
	}
	#ADVANTAGE .block:nth-child(odd) .image {
	margin-right: 0;
	}
	#ADVANTAGE .block:nth-child(even) .image {
	margin-left: 0;
	}
	#ADVANTAGE .block:nth-child(even) .hed .image,
	#ADVANTAGE .block:nth-child(odd) .hed .pack {
	box-sizing: border-box;
	padding-right: 25px;
	width: 50%;
	float: left;
	}
	#ADVANTAGE .block:nth-child(even) .hed .pack,
	#ADVANTAGE .block:nth-child(odd) .hed .image {
	box-sizing: border-box;
	padding-left: 25px;
	width: 50%;
	float: right;
	}
	#ADVANTAGE .block .image span {
	display: block;
	position: relative;
	overflow: hidden;
	height: 315px;
	}
	#ADVANTAGE .block img {
	transform: translateX(-50%);
	position: absolute;
	left: 50%;
	width: auto;
	height: 315px;
	min-height: 315px;
	}
	#ADVANTAGE .cont h2 {
	margin-top: 0;
	margin-bottom: 25px;
	}
	#ADVANTAGE .cont h2 span {
	font-size: 36px;
	}
	#ADVANTAGE .block h3 {
	margin-top: 20px;
	font-size: 24px;
	}
	#ADVANTAGE .block p {
	margin-top: 20px;
	font-size: 16px;
	}
	#ADVANTAGE .block .cnt h3 {
	margin-top: 20px;
	font-size: 24px;
	}
	#ADVANTAGE .block .cnt p {
	column-count: 2;
	column-gap: 50px;
	margin-top: 20px;
	font-size: 16px;
	}
}

#LINKS {
overflow: hidden;
position: relative;
background-color: var(--color-accent);
padding-bottom: 20px;
}
#LINKS .head {
position: relative;
padding: 40px 20px;
}
#LINKS .head .en {
font-family: var(--font-serif);
font-style: normal;
font-weight: 400;
font-size: 30px;
letter-spacing: 0.1em;
line-height: 1.2;
}
#LINKS .head h2 {
font-size: 16px;
font-weight: 700;
}
#LINKS .head h2::before {
content: '';
display: block;
background-color: #7c8c42;
margin: 0 auto 10px auto;
width: 40px;
height: 3px;
}
#LINKS .list {
display: flex;
flex-wrap: wrap;
text-align: left;
}
#LINKS .list .block {
padding-bottom: 20px;
width: 50%;
float: left;
}
#LINKS .block .image {
display: block;
position: relative;
overflow: hidden;
}
#LINKS .block .image:before,
#LINKS .block .image:after {
transition: all 0.5s ease;
content: '';
position: absolute;
background-color: var(--color-white);
height: 2px;
width: 100%;
z-index: 1;
}
#LINKS .block .image:before {
top: 10px;
left: 0;
transform: translateX(100%);
}
#LINKS .block .image:after {
bottom: 10px;
right: 0;
transform: translateX(-100%);
}
#LINKS .block .image a {
display: block;
}
#LINKS .block .image a:before,
#LINKS .block .image a:after {
transition: all 0.5s ease;
content: '';
position: absolute;
background-color: var(--color-white);
width: 2px;
height: 100%;
z-index: 1;
}
#LINKS .block .image a:before {
top: 0;
left: 10px;
transform: translateY(100%);
}
#LINKS .block .image a:after {
bottom: 0;
right: 10px;
transform: translateY(-100%);
}
#LINKS .pack.hover .image a:before,
#LINKS .pack.hover .image a:after,
#LINKS .pack.hover .image:before,
#LINKS .pack.hover .image:after,
#LINKS .block .image:hover a:before,
#LINKS .block .image:hover a:after,
#LINKS .block .image:hover:before,
#LINKS .block .image:hover:after {
transform: translate(0, 0);
}
#LINKS .block img {
transition: transform 0.5s ease;
width: 100%;
height: auto;
}
#LINKS .block a:hover img {
transform: scale(1.1) rotate(3deg);
}
#LINKS .block h3 {
margin: 5px 20px 0 20px;
font-size: 14px;
font-weight: 700;
line-height: 1.5;
}
#LINKS .block h3 a {
transition: all 0.5s ease;
background: linear-gradient(var(--color-primary), var(--color-primary)) 0 100%/0 3px no-repeat;
padding-bottom: 3px;
text-decoration: none;
color: var(--color-text);
}
#LINKS .pack.hover h3 a,
#LINKS h3 a:hover {
background-size: 100% 3px;
}
#LINKS .block h3 a::after {
content: 'keyboard_double_arrow_right';
display: inline-block;
margin-left: 5px;
font-family: var(--font-icon);
font-weight: normal;
font-style: normal;
line-height: 1;
vertical-align: -0.15em;
font-size: 12px;
color: var(--color-primary);
}
#LINKS .block h3 span {
display: inline-block;
}
#LINKS .list img {
width: 100%;
height: auto;
}
@media (min-width: 769px) {
	#LINKS {
	padding-bottom: 40px;
	}
	#LINKS .head {
	box-sizing: border-box;
	margin: 0 auto;
	padding: 40px 50px;
	max-width: var(--content-width);
	}
	#LINKS .head .en {
	font-size: 36px;
	}
	#LINKS .head .lead {
	text-align: center;
	}
	#LINKS .cont {
	box-sizing: border-box;
	margin: 0 auto;
	padding: 0 50px;
	max-width: var(--content-width);
	}
	#LINKS .list {
	display: flex;
	justify-content: center;
	}
	#LINKS .list .block {
	padding-bottom: 20px;
	max-width: 25%;
	flex: 1;
	}
	#LINKS .block h3 {
	margin: 5px 0 0 0;
	}
}
