﻿@charset "utf-8";
@import url('https://fonts.googleapis.com/css2?family=Zen+Kaku+Gothic+New:wght@400;500;700&display=swap');


/* reset */
/* -------------------------------------------------------- */
body,div,dl,dt,dd,ul,ol,li,h1,h2,h3,h4,h5,h6,pre,form,fieldset,input,textarea,p,blockquote,th,td {margin:0; padding:0;}
html {width:100%; height:100%; overflow-y:scroll;}
h1,h2,h3,h4,h5,h6 {font-size:100%; font-weight:bold;}
p, ul, ol, dl, address, blockquote, table, div {font-size:100%;}
p {margin:0 0 0 0;}
ol,ul {list-style:none;}
fieldset,img {border:0; vertical-align:top;}
table {border-collapse:collapse; border-spacing:0;}
caption,th {text-align:left;}
th {vertical-align:top; font-weight:normal; text-align:left;}
td {vertical-align:top;}
address,caption,cite,code,dfn,em,strong,th,var {font-style:normal; font-weight:normal;}
q:before,q:after {content:'';}
abbr,acronym {border:0;}


/* common */
/* -------------------------------------------------------- */
html,body {font-variant-ligatures:none;}
html {font-size:62.5%;}
body {font-size:16px; font-size:1.6rem; font-family: "Zen Kaku Gothic New", sans-serif; font-weight:500; line-height:1.6; color:#333; text-align:center; -webkit-text-size-adjust:100%; text-size-adjust:100%; background:none;}

h1, h2, h3, h4, h5, h6, h7 {line-height:1.2;}
p, li, dt, dd, th, td, address, blockquote, div {line-height:inherit; text-align:inherit;}
input, select, option, textarea, button {font-size:16px; font-size:1.6rem; font-family: "Zen Kaku Gothic New", sans-serif; line-height:1; vertical-align:middle; text-align:inherit; color:inherit; outline:none;}
textarea {line-height:1.4;}
input[type='submit'],input[type='reset'],input[type='button'], button {cursor:pointer; appearance:none;}
:placeholder-shown {color:#A4A4A4;}
::-webkit-input-placeholder {color:#A4A4A4;}
:-moz-placeholder {color:#A4A4A4; opacity:1;}
::-moz-placeholder {color:#A4A4A4; opacity:1;}
:-ms-input-placeholder {color:#A4A4A4;}

strong {font-weight:700;}
ol {list-style-type:decimal; margin-left:2.2em;}
img {max-width:100%; width:auto; height:auto; line-height:0; vertical-align:top; border:0; display:inline;}

a {color:#333; text-decoration:underline;}
a:hover {color:#333; text-decoration:none;}


/* decision */
/* -------------------------------------------------------- */
#bpCheck {display:none;}

body .pc {display:block;}
br.pc, span.pc, img.pc {display:inline;}
body .sp, br.sp, span.sp, img.sp {display:none;}

a.off {pointer-events:none; cursor:default; opacity:0.3;}
a[href^="tel:"] {pointer-events:none; cursor:default;}
body.mobile a[href^="tel:"] {pointer-events:auto; cursor:pointer;}

.cfix::before,
.cfix::after {display:table; content:" ";}
.cfix::after {clear:both;}

@media screen and (max-width:767px){
	#bpCheck {display:block;}

	body .pc, br.pc, span.pc, img.pc {display:none;}
	body .sp {display:block;}
	br.sp, span.sp, img.sp {display:inline;}
}

/* container */
/* -------------------------------------------------------- */
#container {width:100%; overflow:hidden;}


/* header */
/* -------------------------------------------------------- */
#header {position:relative; z-index:300;}
#header .clm {height:100px; padding:0 30px; display:flex; justify-content:space-between; align-items:center;}
#header .logo {text-align:left;}
#header .logo a {white-space:nowrap; text-decoration:none; color:#333; display:flex; align-items:center; transition:opacity 0.3s ease;}
#header .logo a:hover {opacity:0.8;}
#header .logo img {width: 134px;}
#header .logo .txt {font-size:2.4rem; font-weight:700; padding:0 0 0 0.2em;}
#header .logo .txt > span {font-size:84%; display:block;}
#header .nav1 {display:flex; align-items:center;}
#header .nav1 > div {text-align:left; padding:0 0 0 40px;}
#header .nav1 .tel {font-size:2.9rem; font-weight:700; white-space:nowrap; letter-spacing:0.1em; text-align:left; text-decoration:none; padding:0 0 0 40px; display:block; position:relative; transition:opacity 0.3s ease;}
#header .nav1 .tel svg {width:34px; height:34px; margin:-17px 0 0 0; fill:#F23E36; display:block; position:absolute; top:50%; left:0;}
#header .nav1 .tel + span {font-size:1.4rem; font-weight:400; display:block;}
#header .nav1 .tel:hover {opacity:0.8;}
#header .nav1 .mail {width:322px; height:56px; text-decoration:none; color:#fff; background:-webkit-linear-gradient(left, #A91A64, #F23E36); background:linear-gradient(to right, #A91A64, #F23E36); border-radius:5px; display:flex; justify-content:center; align-items:center; transition:opacity 0.3s ease;}
#header .nav1 .mail span {font-size:1.6rem; font-weight:700; padding:0 0 0 44px; display:block; position:relative;}
#header .nav1 .mail svg {width:30px; height:30px; margin:-15px 0 0 0; fill:#fff; display:block; position:absolute; top:50%; left:0;}
#header .nav1 .mail:hover {opacity:0.8;}
#header .nav {color:#fff; background:-webkit-linear-gradient(bottom, #A91A64, #F23E36); background:linear-gradient(to top, #A91A64, #F23E36); display:flex;}
#header .nav > li {position:relative; flex:1;}
#header .nav > li::before {content:''; width:1px; height:1.0em; margin:-0.5em 0 0 0; background-color:#fff; display:block; position:absolute; top:50%;}
#header .nav > li:first-of-type::before {display:none;}
#header .nav > li > a {height:50px; font-size:1.6rem; font-weight:700; line-height:1.2; text-align:center; text-decoration:none; color:#fff; display:flex; justify-content:center; align-items:center; position:relative; transition:opacity 0.3s ease;}
#header .nav > li > a:hover {opacity:0.7;}
#header .nav > li > div {padding:0; position:absolute; top:100%; left:50%; opacity:0; transform:translate3d(-50%,0,0); pointer-events:none; transition:padding 0.3s ease, opacity 0.3s ease;}
#header .nav > li.sub > a::after {content:'+'; padding:0 0 0 0.4em; display:inline-block;}
#header .nav > li.sub.on > div {padding:10px 0 0 0; opacity:1; pointer-events:auto;}
#header .nav > li.sub ul {padding:2px 30px 15px 30px; background:-webkit-linear-gradient(bottom, #A91A64, #F23E36); background:linear-gradient(to top, #A91A64, #F23E36); border-radius:10px;}
#header .nav > li.sub li {font-size:1.6rem; font-weight:700; white-space:nowrap; padding:0.6em 0 0.1em 0; border-bottom:solid 1px rgba(255,255,255,0.5);}
#header .nav > li.sub li a {text-decoration:none; color:#fff; transition:opacity 0.3s ease;}
#header .nav > li.sub li a:hover {opacity:0.7;}
#header .nav > li.btn1 {display:none;}
body.mobile #header .nav > li > a:hover {opacity:1;}


#gNavBtn {width:34px; height:34px; position:fixed; top:5px; right:5px; z-index:310; cursor:pointer; display:none;}
#gNavBtn > span {width:100%; height:2px; margin:-1px 0 0 0; background-color:rgba(0,0,0,1); display:block; position:absolute; top:50%; left:0; transition-property:background-color;}
#gNavBtn > span::before,
#gNavBtn > span::after {content:''; width:100%; height:2px; background-color:rgba(0,0,0,1); display:block; position:absolute; left:0;}
#gNavBtn > span::before {top:-9px; transition-property:top;}
#gNavBtn > span::after {bottom:-9px; transition-property:bottom;}
body.load #gNavBtn,
body.load #gNavBtn > span::before,
body.load #gNavBtn > span::after {transition-duration:0.3s; transition-delay:0s; transition-timing-function:ease;}

#gNavCheck {display:none;}
#gNavCheck:checked + #header #gNavBtn > span {background-color:rgba(0,0,0,0);}
#gNavCheck:checked + #header #gNavBtn > span::before {background-color:rgba(255,255,255,1); top:0; transform:rotate(45deg); transition-property:transform;}
#gNavCheck:checked + #header #gNavBtn > span::after {background-color:rgba(255,255,255,1); bottom:0; transform:rotate(-45deg); transition-property:transform;}

@media screen and (max-width:1200px){
	#header .logo .txt {font-size:2.0vw;}
	#header .nav1 > div {padding:0 0 0 3.3vw;}
	#header .nav1 .tel {font-size:2.5vw;}
	#header .nav1 .mail {width:26.8vw;}
	#header .nav1 .mail span {font-size:1.3vw;}
}
@media screen and (max-width:767px){
	#header #gNavBtn {display:block;}
	#gNav {width:100%; height:100vh; background-color:rgba(0,0,0,0.7); position:fixed; top:0; left:0; z-index:300; opacity:0; pointer-events:none; overflow:none; transition:opacity 0.6s ease;}
	#gNavCheck:checked + #header #gNav {opacity:1; pointer-events:auto;}
	#gNavCheck:checked + #header .nav {right:0;}

	#header .clm {height:50px; padding:0 2.0vw;}
	#header .logo .img {width:80px;}
	#header .logo .txt {font-size:1.4rem;}
	#header .nav1 {display:none;}
	#header .nav1 > div {padding:0;}
	#header .nav1 .tel {font-size:2.0rem; letter-spacing:0; padding:0;}
	#header .nav1 .tel svg {display:none;}
	#header .nav1 .tel + span {font-size:1.0rem;}
	#header .nav1 .mail {display:none;}
	#header .nav {width:320px; height:100%; padding:40px 30px 170px 30px; box-sizing:border-box; position:absolute; top:0; right:-320px; display:block; transition:right 0.6s ease;}
	#header .nav > li {text-align:left; padding:0.8em 0;}
	#header .nav > li::before {display:none;}
	#header .nav > li > a {height:auto; font-size:2.0rem; font-weight:700; line-height:1.2; text-align:left; display:block;}
	#header .nav > li.sub > div {padding:0; position:absolute; top:0; left:0; opacity:0; pointer-events:none; transform:translate3d(0,0,0); transition:opacity 0.3s ease;}
	#header .nav > li.sub > a::after {content:'▼'; position:relative; display:inline-block; transform:scale3d(1,0.6,1);}
	#header .nav > li.sub.on > div {padding:0; position:relative; opacity:1; pointer-events:auto;}
	#header .nav > li.sub.on > a::after {content:'▲';}
	#header .nav > li.sub ul {padding:0 0 0 2.0em; background:none; border-radius:0;}
	#header .nav > li.sub li {padding:0.6em 0 0 0; border-bottom:none;}
	#header .nav > li.btn1 {width:100%; text-align:center; padding:0; display:block; position:absolute; bottom:60px; left:0;}
	#header .nav > li.btn1 > a {width:260px; height:68px; font-size:1.6rem; font-weight:700; line-height:1.2; text-align:center; color:#F23E36; margin:0 auto; padding:38px 0 0 0; background-color:#fff; box-sizing:border-box; border-radius:5px; display:block; position:relative;}
	#header .nav > li.btn1 > a svg {width:30px; height:30px; margin:0 0 0 -15px; fill:#F23E36; position:absolute; top:5px; left:50%;}
}


/* footer */
/* -------------------------------------------------------- */
#footer .contact {text-align:left; color:#fff; padding:100px 0; background:-webkit-linear-gradient(left, #A91A64, #F23E36); background:linear-gradient(to right, #A91A64, #F23E36);}
#footer .contact .clm {display:flex; justify-content:space-between; align-items:flex-end;}
#footer .contact .clm > div:nth-of-type(1) {padding:0 30px 0 0; box-sizing:border-box; flex:1;}
#footer .contact .clm > div:nth-of-type(2) {min-width:418px;}
#footer .contact .txt1 dt {font-size:6.5rem; font-weight:500; line-height:1;}
#footer .contact .txt1 dt span {font-size:1.6rem; margin:0.5em 0 0 0; display:block;}
#footer .contact .txt1 dd {font-size:1.6rem; font-weight:500; line-height:2.1; margin:1.0em 0 0 0;}
#footer .contact .txt2 a {font-size:5.0rem; font-weight:700; line-height:1; letter-spacing:0.05em; text-decoration:none; color:#fff; padding:0 0 0 96px; display:block; position:relative; transition:opacity 0.3s ease;}
#footer .contact .txt2 a svg {width:82px; height:82px; margin:-41px 0 0 0; fill:#fff; display:block; position:absolute; top:50%; left:0;}
#footer .contact .txt2 a span {font-size:2.0rem; font-weight:400; letter-spacing:0; margin:0.5em 0 0 0; display:block;}
#footer .contact .txt2 a:hover {opacity:0.8;}
#footer .contact .txt3 {margin:30px 0 0 0;}
#footer .contact .txt3 a {height:78px; font-size:1.6rem; font-weight:700; line-height:1.2; text-decoration:none; color:#F23E36; padding:0 2.0em; background-color:#fff; border-radius:5px; box-sizing:border-box; display:flex; justify-content:center; align-items:center; position:relative; transition:opacity 0.3s ease;}
#footer .contact .txt3 a span {padding:0 0 0 40px; display:block; position:relative;}
#footer .contact .txt3 a svg {width:30px; height:30px; margin:-15px 0 0 0; fill:#F23E36; display:block; position:absolute; top:50%; left:0;}
#footer .contact .txt3 a:hover {opacity:0.8;}
#footer .contact .txt3 a::before {content:'→'; line-height:1; margin:-0.5em 0 0 0; display:block; position:absolute; top:50%; right:1.0em;}
#footer .inr {padding:50px 0 30px 0;}
#footer .logo {text-align:left; display:inline-block;}
#footer .logo a {white-space:nowrap; text-decoration:none; color:#333; display:flex; align-items:center; transition:opacity 0.3s ease;}
#footer .logo a:hover {opacity:0.8;}
#footer .logo .txt {font-size:2.4rem; font-weight:700; line-height:1.2; padding:0 0 0 0.2em;}
#footer .logo .txt > span {font-size:84%; display:block;}
#footer .ctx {margin:20px auto 0 auto; display:flex; flex-wrap:wrap; justify-content:center;}
#footer .ctx > div {font-size:1.6rem; font-weight:500; text-align:center; padding:0.2em 0.8em 0 0.8em;}
#footer .ctx > div:first-of-type {width:100%;}
#footer .copy {font-size:1.2rem; font-weight:500; text-align:center; margin:2.0em 0 0 0;}
#footer .pagetop {position:fixed; bottom:40px; right:40px; z-index:100; opacity:0; pointer-events:none; transition:opacity 0.3s ease;}
#footer .pagetop a {width:46px; height:46px; background-color:#F23E36; border-radius:100%; box-sizing:border-box; display:flex; justify-content:center; align-items:center; transition:opacity 0.3s ease;}
#footer .pagetop a svg {width:18px; height:18px; fill:#fff; display:block;}
#footer .pagetop a:hover {opacity:0.8;}
body.move #footer .pagetop {opacity:1; pointer-events:auto;}
@media screen and (max-width:767px){
	#footer .contact {padding:30px 0;}
	#footer .contact .clm {display:block;}
	#footer .contact .clm > div:nth-of-type(1) {padding:0;}
	#footer .contact .clm > div:nth-of-type(2) {min-width:0; text-align:center;}
	#footer .contact .txt1 dt {font-size:4.2rem;}
	#footer .contact .txt1 dt span {font-size:1.4rem;}
	#footer .contact .txt1 dd {font-size:1.4rem;}
	#footer .contact .txt2 {margin:30px auto 0 auto; display:inline-block;}
	#footer .contact .txt2 a {font-size:3.4rem; text-align:left; padding:0 0 0 50px;}
	#footer .contact .txt2 a svg {width:42px; height:42px; margin:-21px 0 0 0;}
	#footer .contact .txt2 a span {font-size:1.3rem;}
	#footer .contact .txt3 {margin:20px 0 0 0;}
	#footer .contact .txt3 a {height:50px; font-size:1.4rem; padding:0;}
	#footer .contact .txt3 a span {padding:0 0 0 30px;}
	#footer .contact .txt3 a svg {width:24px; height:24px; margin:-12px 0 0 0;}
	#footer .contact .txt3 a::before {right:0.6em;}
	#footer .inr {padding:30px 0;}
	#footer .logo .img {width:80px;}
	#footer .logo .txt {font-size:1.4rem;}
	#footer .ctx {margin:10px auto 0 auto;}
	#footer .ctx > div {font-size:1.4rem; padding:0.2em 0.6em 0 0.6em;}
	#footer .copy {font-size:1.0rem;}
	#footer .pagetop {bottom:30px; right:30px; bottom:10px; right:10px;}
	#footer .pagetop a {width:30px; height:30px;}
	#footer .pagetop a svg {width:16px; height:16px;}
}


/* contents */
/* -------------------------------------------------------- */
#contents {}

.sec {max-width:1230px; margin:0 auto; padding:0 15px; box-sizing:border-box;}

.page-ttl {height:300px; display:flex; align-items:center; background:url(../img/bg_ttl.jpg) center center no-repeat; background-size:cover;}
.page-ttl .sec {width:100%; text-align:left;}
.page-ttl .ttl .en {font-size:4.8rem; font-weight:500; line-height:1; letter-spacing:0.05em; color:#fff; text-shadow:0 3px 6px rgba(0,0,0,0.16); display:block;}
.page-ttl .ttl .jp {font-size:2.0rem; font-weight:500; line-height:1; color:#fff; text-shadow:0 3px 6px rgba(0,0,0,0.16); margin:0.8em 0 0 0; display:block;}

.track-list {padding:30px 0;}
.track-list ul {text-align:left; display:flex; flex-wrap:wrap;}
.track-list li {font-size:1.4rem; padding:0 1.4em 0 0; position:relative;}
.track-list li:first-child { padding:0;}
.track-list li::before {content:'\3e'; display:block; position:absolute; top:0; right:0.4em;}
.track-list li:first-child::before {content:''; display:none; position:static;}
.track-list li:last-of-type {padding:0;}
.track-list li:last-of-type::before {display:none;}
.track-list li a {text-decoration:none; display:block;}
.track-list li a:hover {text-decoration:underline;}

.ttl-01 {font-size:4.2rem; font-weight:700; text-align:center; color:#F23E36;}
.ttl-01 .sub {font-size:1.6rem; font-weight:500; color:#333; margin:1.0em 0 0 0; display:block;}
.ttl-02 {font-size:2.4rem; font-weight:700; text-align:left; color:#fff; padding:0.3em 1.0em; background:-webkit-linear-gradient(left, #A91A64, #F23E36); background:linear-gradient(to right, #A91A64, #F23E36); box-sizing:border-box;}
@media screen and (max-width:767px){
	.sec {padding:0 3.0vw;}

	.page-ttl {height:100px;}
	.page-ttl .ttl .en {font-size:3.0rem;}
	.page-ttl .ttl .jp {font-size:1.4rem;}

	.track-list {padding:10px 0;}
	.track-list li {font-size:1.2rem;}

	.ttl-01 {font-size:2.8rem;}
	.ttl-01 .sub {font-size:1.4rem; margin:0.6em 0 0 0;}
	.ttl-02 {font-size:1.6rem;}

}


/* top-mv */
.top-mv {width:100%; padding:48.4% 0 0 0; position:relative; overflow:hidden; pointer-events:none;}
.top-mv .imgs {width:100%; height:100%; background-repeat:no-repeat; background-position:center center; background-size:cover; position:absolute; top:0; left:0;}
.top-mv .imgs > div {width:100%; height:100%; position:absolute; top:0; left:0; opacity:0;}
.top-mv .imgs > div:last-of-type {position:relative;}
.top-mv .imgs > div.on {opacity:1;}
.top-mv .imgs .img {width:100%; height:100%; background-repeat:no-repeat; background-position:center center; background-size:cover; position:absolute; top:0; left:0;}
.top-mv .ctx {width:100%; position:absolute; bottom:0; left:0;}
.top-mv .ctx dl {text-align:left; padding:0 50px;}
.top-mv .ctx dt {font-size:7.0rem; font-weight:700; line-height:1.2; letter-spacing:0.1em; color:#fff; text-shadow:0 3px 6px rgba(0,0,0,0.16);}
.top-mv .ctx dd {font-size:6.3rem; font-weight:700; line-height:1.2; letter-spacing:0.05em; color:#EF228C; background:-webkit-linear-gradient(left, #EF228C, #FF4239); background:linear-gradient(to right, #EF228C, #FF4239); -webkit-background-clip:text; -webkit-text-fill-color:transparent; text-shadow:0 3px 6px rgba(0,0,0,0.16); padding:0 0 1.2em 0;}
@media screen and (max-width:1200px){
	.top-mv .ctx dl {padding:0 4.1vw;}
	.top-mv .ctx dt {font-size:5.8vw;}
	.top-mv .ctx dd {font-size:5.2vw;}
}
@media screen and (max-width:767px){
}


/* top-advantage */
.top-advantage {background:url(../img/top/bg_01.png) center center no-repeat; background-size:cover;}
.top-advantage .sec {max-width:1920px; padding:50px 24% 100px 24%; position:relative;}
.top-advantage .bg1,
.top-advantage .bg2 {max-width:460px; width:24%; position:absolute; bottom:0;}
.top-advantage .bg1 {left:0;}
.top-advantage .bg2 {right:0;}
.top-advantage .txt1 {font-size:2.4rem; font-weight:500; text-align:center; margin:0 -24%;}
.top-advantage .txt2 {font-size:3.4rem; font-weight:500; line-height:1.8; text-align:center; color:#A91A64; margin:0.5em -24% 0 -24%;}
.top-advantage .txt3 .box {text-align:left; margin:30px 0 0 0; padding:15px 40px; background-color:rgba(255,255,255,0.6); border:1px solid #A91A64; border-radius:10px; box-sizing:border-box; display:flex; align-items:center;}
.top-advantage .txt3 .icon {width:100px;}
.top-advantage .txt3 .ctx {padding:0 0 0 30px; box-sizing:border-box; flex:1;}
.top-advantage .txt3 .ctx dt {font-size:2.4rem; font-weight:700; color:#A91A64;}
.top-advantage .txt3 .ctx dd {font-size:1.6rem; font-weight:500; line-height:1.8; margin:0.5em 0 0 0;}
.top-advantage .txt4 {margin:40px 0 0 0; position:relative; z-index:10;}
.top-advantage .txt4 a {width:100%; height:82px; font-size:3.4rem; font-weight:500; line-height:1.2; text-decoration:none; color:#fff; background:-webkit-linear-gradient(left, #A91A64, #F23E36); background:linear-gradient(to right, #A91A64, #F23E36); border-radius:5px; display:flex; justify-content:center; align-items:center; transition:opacity 0.3s ease;}
.top-advantage .txt4 a:hover {opacity:0.8;}
@media screen and (max-width:767px){
	.top-advantage .sec {max-width:1920px; padding:30px 5.0vw 70px 5.0vw;}
	.top-advantage .bg1,
	.top-advantage .bg2 {display:none;}
	.top-advantage .txt1 {font-size:1.6rem; margin:0;}
	.top-advantage .txt2 {font-size:1.8rem; margin:0.5em 0 0 0;}
	.top-advantage .txt3 .box {margin:20px 0 0 0; padding:15px 25px; display:block;}
	.top-advantage .txt3 .icon {width:100px; margin:0 auto;}
	.top-advantage .txt3 .ctx {padding:0;}
	.top-advantage .txt3 .ctx dt {font-size:2.4rem; margin:0.5em 0 0 0;}
	.top-advantage .txt3 .ctx dd {font-size:1.6rem;}
	.top-advantage .txt4 {margin:30px 0 0 0;}
	.top-advantage .txt4 a {height:60px; font-size:1.8rem;}
}


/* top-services */
.top-services {margin:-76px 0 0 0; padding:160px 0 230px 0; background-position:center top; background-repeat:no-repeat; background-size:cover; position:relative;}
.top-services.corporate {background-image:url(../img/top/bg_02.png); z-index:5;}
.top-services.corporate .en,
.top-services.corporate .box {color:#F23E35;}
.top-services.corporate .box .more svg {fill:#F23E35;}
.top-services.residential {background-image:url(../img/top/bg_03.png); z-index:10;}
.top-services.residential .en,
.top-services.residential .box {color:#A91A64;}
.top-services.residential .box .more svg {fill:#A91A64;}
.top-services.other {padding:120px 0 70px 0; background:-webkit-linear-gradient(right, rgba(242,62,54,0.07), rgba(169,26,100,0.07)); background:linear-gradient(to left, rgba(242,62,54,0.07), rgba(169,26,100,0.07));}
/*.top-services .sec {max-width:1430px;}*/
.top-services .txt1 .en {font-size:4.8rem; font-weight:500; letter-spacing:0.05em; color:#F23E36; display:block;}
.top-services .txt1 .jp {font-size:2.4rem; font-weight:500; margin:0.5em 0 0 0; display:block;}
.top-services .clm {margin:0 -12px; display:flex; flex-wrap:wrap; justify-content:center;}
.top-services .clm > div {width:33.33%; padding:0 12px; box-sizing:border-box;}
.top-services .box {text-decoration:none; margin:60px 0 0 0; padding:20px 26px 10px 26px; background-color:#fff; border-radius:10px; box-sizing:border-box; display:flex; flex-wrap:wrap; justify-content:space-between; align-items:center; position:relative;}
.top-services .box .tag {font-size:1.8rem; font-style:italic; line-height:1; letter-spacing:0.1em; position:absolute; top:-1.2em; right:26px; z-index:5;}
.top-services .box .tag span {font-size:211%;}
.top-services .box .img {width:100%; padding:51.2% 0 0 0; position:relative; overflow:hidden;}
.top-services .box .img img {width:100%; height:100%; display:block; position:absolute; top:0; left:0; object-fit:cover; transform:scale3d(1,1,1); transition:transform 0.3s ease; will-change:transform;}
.top-services .box .ttl {font-size:2.4rem; font-weight:700; margin:6px 0 0 0;}
.top-services .box .ttl span {font-size:66%; padding:0 0 0 0.2em; display:inline-block;}
.top-services .box .more {font-size:1.6rem; font-weight:500; margin:6px 0 0 0; padding:0 18px 0 0; position:relative;}
.top-services .box .more svg {width:12px; height:12px; margin:-6px 0 0 0; display:block; position:absolute; top:50%; right:0;}
.top-services .box:hover .img img {transform:scale3d(1.2,1.2,1);}
.top-services .box:hover .tag,
.top-services .box:hover .ttl,
.top-services .box:hover .more {opacity:0.8;}
.top-services .clm1 {margin:0 -10px; display:flex; flex-wrap:wrap; justify-content: center;}
.top-services .clm1 > div {width:33.333%; padding:0 10px; box-sizing:border-box;}
.top-services .clm1 a {text-decoration:none; color:#F23E36; margin:40px 0 0 0; display:block; transition:opacity 0.3s ease;}
.top-services .clm1 a:hover {opacity:0.8;}
.top-services .clm1 .img {width:100%; padding:60% 0 0 0; background-color:#DEDEDE; border-radius:10px; box-sizing:border-box; overflow:hidden; position:relative;}
.top-services .clm1 .img img {width:100%; height:100%; display:block; position:absolute; top:0; left:0; object-fit:cover;}
.top-services .clm1 .ttl {font-size:2.0rem; font-weight:700; text-align:left; margin:0.5em 0 0 0;}
.top-services .clm1 .ttl span {font-size:80%; padding:0 0 0 0.2em; display:inline-block;}
@media screen and (max-width:767px){
	.top-services {margin:-14.0vw 0 0 0; padding:18.0vw 0 9.0vw 0;}
	.top-services.residential {padding-bottom:18.0vw;}
	.top-services.other {padding:10.0vw 0 30px 0;}
	.top-services .txt1 .en {font-size:3.0rem;}
	.top-services .txt1 .jp {font-size:1.6rem;}
	.top-services .clm {margin:0; display:block;}
	.top-services .clm > div {width:auto; padding:0;}
	.top-services .box {margin:30px 0 0 0; padding:10px 15px;}
	.top-services .box .tag {font-size:1.4rem; top:-1.5em; right:15px;}
	.top-services .box .ttl {font-size:1.8rem;}
	.top-services .box .more {font-size:1.4rem; padding:0 16px 0 0;}
	.top-services .box .more svg {width:10px; height:10px; margin:-5px 0 0 0;}
	.top-services .box:hover .img img {transform:scale3d(1.1,1.1,1);}
	.top-services .clm1 {margin:0 -5px;}
	.top-services .clm1 > div {width:50%; padding:0 5px; box-sizing:border-box;}
	.top-services .clm1 a {margin:20px 0 0 0;}
	.top-services .clm1 .ttl {font-size:1.6rem;}
}


/* top-topics */
.top-topics {padding:100px 0 150px 0;}
.top-topics .txt1 .en {font-size:4.8rem; font-weight:500; letter-spacing:0.05em; color:#F23E36; display:block;}
.top-topics .txt1 .jp {font-size:2.4rem; font-weight:500; margin:0.5em 0 0 0; display:block;}
.top-topics .txt2 {width:260px; margin:40px auto 0 auto;}
.top-topics .txt2 a {width:100%; height:60px; font-size:1.6rem; font-weight:500; line-height:1.2; text-decoration:none; color:#fff; background:-webkit-linear-gradient(left, #A91A64, #F23E36); background:linear-gradient(to right, #A91A64, #F23E36); border-radius:5px; box-sizing:border-box; display:flex; justify-content:center; align-items:center; position:relative; transition:opacity 0.3s ease;}
.top-topics .txt2 a:hover {opacity:0.8;}
.top-topics .txt2 a::before {content:'→'; line-height:1; margin:-0.5em 0 0 0; display:block; position:absolute; top:50%; right:1.0em;}
.top-topics .clm {margin:0 -15px; display:flex; flex-wrap:wrap; justify-content:center;}
.top-topics .clm > div {width:33.33%; padding:0 15px; box-sizing:border-box;}
.top-topics .clm a {text-align:left; text-decoration:none; margin:50px 0 0 0; box-sizing:border-box; display:block; position:relative;}
.top-topics .clm a .tag {max-width:150px; width:100%; font-size:1.6rem; line-height:1; text-align:center; color:#fff; padding:0.4em 0; background-color:#F23E36; position:absolute; top:0; right:0; z-index:5;}
.top-topics .clm a .tag span {font-size:211%;}
.top-topics .clm a .img {width:100%; padding:73.6% 0 0 0; position:relative; overflow:hidden;}
.top-topics .clm a .img img {width:100%; height:100%; display:block; position:absolute; top:0; left:0; object-fit:cover; transform:scale3d(1,1,1); transition:transform 0.3s ease; will-change:transform;}
.top-topics .clm a .date {font-size:1.6rem; font-weight:500; color:#333; margin:0.5em 0 0 0;}
.top-topics .clm a .ttl {font-size:2.0rem; font-weight:700; line-height:1.2; color:#F23E36;}
.top-topics .clm a:hover .img img {transform:scale3d(1.2,1.2,1);}
.top-topics .clm a:hover .date,
.top-topics .clm a:hover .ttl {opacity:0.8;}
@media screen and (max-width:767px){
	.top-topics {padding:30px 0 50px 0;}
	.top-topics .txt1 .en {font-size:3.0rem;}
	.top-topics .txt1 .jp {font-size:1.6rem;}
	.top-topics .txt2 {width:260px; margin:30px auto 0 auto;}
	.top-topics .txt2 a {height:40px;}
	.top-topics .clm {margin:0; display:block;}
	.top-topics .clm > div {width:auto; padding:0;}
	.top-topics .clm a {margin:30px 0 0 0;}
	.top-topics .clm a .tag {max-width:120px; font-size:1.2rem;}
	.top-topics .clm a .img {padding:40% 0 0 0;}
	.top-topics .clm a .date {font-size:1.4rem; margin:0.2em 0 0 0;}
	.top-topics .clm a .ttl {font-size:1.8rem;}
	.top-topics .clm a:hover .img img {transform:scale3d(1.1,1.1,1);}
}


/* flow-modle */
.flow-modle {width:100%; height:100%; background-color:rgba(0,0,0,0.27); display:flex; justify-content:center; align-items:center; position:fixed; top:0; left:0; z-index:500; opacity:0; pointer-events:none; transition:opacity 0.6s ease;}
.flow-modle.on {opacity:1; pointer-events:auto;}
.flow-modle > div {width:100%; padding:15px 0; box-sizing:border-box;}
.flow-modle .box {padding:50px; background-color:#fff; border:1px solid #F23E36; border-radius:20px; box-sizing:border-box; position:relative;}
.flow-modle .txt1 .en {font-size:4.8rem; font-weight:500; letter-spacing:0.05em; color:#F23E36; display:block;}
.flow-modle .txt1 .jp {font-size:2.4rem; font-weight:500; margin:0.5em 0 0 0; display:block;}
.flow-modle .txt2 {max-width:950px; text-align:left; margin:30px auto 0 auto; padding:0 0 0 50px; box-sizing:border-box; position:relative;}
.flow-modle .txt2::before {content:''; width:1px; height:100%; background-color:#F23E36; display:block; position:absolute; top:0; left:25px;}
.flow-modle .txt2::after {content:''; width:25px; height:1px; background-color:#F23E36; display:block; position:absolute; bottom:0; left:0; transform-origin:right bottom; transform:rotate(45deg);}
.flow-modle .txt2 > div {max-height:calc(100.0vh - 300px); overflow:auto;}
.flow-modle .txt2 dl + dl {margin-top:20px;}
.flow-modle .txt2 dt {font-size:2.4rem; font-weight:700; color:#F23E36;}
.flow-modle .txt2 dd {font-size:1.6rem; font-weight:500; line-height:1.8;}
.flow-modle .close {width:40px; height:40px; background-color:#F23E36; border-radius:100%; box-sizing:border-box; position:absolute; top:30px; right:30px; cursor:pointer; transition:opacity 0.3s ease;}
.flow-modle .close::before,
.flow-modle .close::after {content:''; width:60%; height:1px; background-color:#fff; display:block; position:absolute; top:50%; left:20%;}
.flow-modle .close::before {transform:rotate(45deg);}
.flow-modle .close::after {transform:rotate(-45deg);}
.flow-modle .close:hover {opacity:0.8;}
@media screen and (max-width:767px){
	.flow-modle .box {padding:20px; border-radius:10px;}
	.flow-modle .txt1 .en {font-size:3.0rem;}
	.flow-modle .txt1 .jp {font-size:1.6rem;}
	.flow-modle .txt2 {margin:20px auto 0 auto; padding:0 0 0 30px;}
	.flow-modle .txt2::before {left:15px;}
	.flow-modle .txt2::after {width:15px;}
	.flow-modle .txt2 > div {max-height:calc(100.0vh - 150px);}
	.flow-modle .txt2 dl + dl {margin-top:15px;}
	.flow-modle .txt2 dt {font-size:1.8rem;}
	.flow-modle .txt2 dd {font-size:1.4rem;}
	.flow-modle .close {width:30px; height:30px; top:10px; right:10px;}
}


/* services-sec */
.services-sec {padding:10px 0 150px 0;}
.services-sec .inr1 {margin:50px 0 0 0;}
.services-sec .inr1 + .inr1 {margin-top:100px;}
.services-sec .inr1 .clm {margin:25px 0 0 0; display:flex; justify-content:space-between;}
.services-sec .inr1 .clm .ctx {width:50%;}
.services-sec .inr1 .clm .img {width:50%; padding:0 0 0 20px; box-sizing:border-box;}
.services-sec .txt1 {text-align:left;}
.services-sec .txt1 > li {font-size:2.0rem; font-weight:500;}
.services-sec .txt1 > li + li {margin:0.5em 0 0 0;}
.services-sec .txt1 > li .sub {font-size:1.6rem; margin:0.2em 0 0 0; display:block;}
.services-sec .txt2 {font-size:2.0rem; font-weight:500; text-align:left; margin:50px 0 0 0; position:relative;}
.services-sec .txt2 svg {width:50px; height:50px; fill:#F23E36; display:block; position:absolute; top:-50px; left:0; transform:scale(1,-1);}
.services-sec .txt3 {max-width:800px; margin:100px auto 0 auto;}
.services-sec .txt3 > dt {font-size:3.0rem; font-weight:700; line-height:1; text-align:center; color:#fff; padding:0.5em 0; background-color:#F23E36;}
.services-sec .txt3 > dd {font-size:2.4rem; font-weight:500; text-align:center; padding:0.5em 1.0em; background-color:rgba(242,62,54,0.1);}
.services-sec .txt3 > dd span {font-size:2.9rem; font-weight:700; color:#F23E36; padding:0 0.5em; display:inline-block;}
.services-sec .txt3 > dd dl {max-width:600px; margin:0 auto;}
.services-sec .txt3 > dd dt {font-size:2.4rem; font-weight:700; text-align:center; color:#F23E36;}
.services-sec .txt3 > dd dd {font-size:1.6rem; font-weight:500; line-height:1.8; text-align:left; margin:0.5em 0 0 0;}
@media screen and (max-width:767px){
	.services-sec {padding:10px 0 50px 0;}
	.services-sec .inr1 {margin:20px 0 0 0;}
	.services-sec .inr1 + .inr1 {margin-top:30px;}
	.services-sec .inr1 .clm {margin:15px 0 0 0; display:block;}
	.services-sec .inr1 .clm .ctx {width:auto;}
	.services-sec .inr1 .clm .img {width:auto; text-align:center; margin:15px 0 0 0; padding:0;}
	.services-sec .txt1 > li {font-size:1.6rem;}
	.services-sec .txt1 > li .sub {font-size:1.4rem;}
	.services-sec .txt2 {font-size:1.6rem; margin:40px 0 0 0;}
	.services-sec .txt2 svg {width:40px; height:40px; margin:0 0 0 -20px; top:-40px; left:50%;}
	.services-sec .txt3 {margin:30px auto 0 auto;}
	.services-sec .txt3 > dt {font-size:1.8rem;}
	.services-sec .txt3 > dd {font-size:1.4rem;}
	.services-sec .txt3 > dd span {font-size:1.8rem;}
	.services-sec .txt3 > dd dt {font-size:1.6rem;}
	.services-sec .txt3 > dd dd {font-size:1.4rem;}
}


/* company-profile-sec */
.company-profile-sec {padding:10px 0 150px 0;}
.company-profile-sec .inr + .inr {margin:100px 0 0 0;}
.company-profile-sec .clm1 {margin:40px 0 0 0; display:flex; justify-content:space-between;}
.company-profile-sec .clm1 .img {width:50%; padding:0 20px 0 0; box-sizing:border-box; order:1;}
.company-profile-sec .clm1 .ctx {width:50%; text-align:left; padding:0 0 0 20px; box-sizing:border-box; order:2;}
.company-profile-sec .clm1 dt {font-size:2.4rem; font-weight:700; color:#F23E36;}
.company-profile-sec .clm1 dd {font-size:1.6rem; font-weight:500; line-height:2.1; margin:0.5em 0 0 0;}
.company-profile-sec .clm1 .cap {font-size:2.0rem; font-weight:700; text-align:right; margin:0.5em 0 0 0;}
.company-profile-sec .clm2 {margin:40px 0 0 0; display:flex; justify-content:space-between;}
.company-profile-sec .clm2 .img {width:50%; box-sizing:border-box; order:2;}
.company-profile-sec .clm2 .ctx {width:50%; text-align:left; padding:0 20px 0 0; box-sizing:border-box; order:1;}
.company-profile-sec .clm2 dl {padding:15px 0; border-bottom:solid 1px #707070; display:flex;}
.company-profile-sec .clm2 dt {width:8.0em; font-size:1.6rem; font-weight:500; color:#F23E36;}
.company-profile-sec .clm2 dd {font-size:1.6rem; font-weight:500; flex:1;}
.company-profile-sec .clm2 .map {width:100%; height:568px; overflow:hidden;}
.company-profile-sec .clm2 .map iframe {width:100%; height:568px;}
@media screen and (max-width:767px){
	.company-profile-sec {padding:10px 0 50px 0;}
	.company-profile-sec .inr + .inr {margin:50px 0 0 0;}
	.company-profile-sec .clm1 {margin:20px 0 0 0; display:block;}
	.company-profile-sec .clm1 .img {width:auto; padding:15px 0 0 0;}
	.company-profile-sec .clm1 .ctx {width:auto; padding:0;}
	.company-profile-sec .clm1 dt {font-size:1.8rem;}
	.company-profile-sec .clm1 dd {font-size:1.4rem;}
	.company-profile-sec .clm1 .cap {font-size:1.6rem;}
	.company-profile-sec .clm2 {margin:10px 0 0 0; display:block;}
	.company-profile-sec .clm2 .img {width:auto; padding:15px 0 0 0;}
	.company-profile-sec .clm2 .ctx {width:auto; padding:0;}
	.company-profile-sec .clm2 dl {padding:10px 0;}
	.company-profile-sec .clm2 dt {width:6.0em; font-size:1.4rem;}
	.company-profile-sec .clm2 dd {font-size:1.4rem;}
	.company-profile-sec .clm2 .map {height:300px;}
	.company-profile-sec .clm2 .map iframe {height:300px;}
}


/* topics-sec */
.topics-sec {padding:10px 0 150px 0;}
.topics-sec .clm {margin-top:-50px;}
.topics-sec .page-nav {margin:70px -10px 0 -10px; display:flex; flex-wrap:wrap; justify-content:center; align-items:center;}
.topics-sec .page-nav > div {padding:10px 10px 0 10px; box-sizing:border-box;}
.topics-sec .page-nav .wp-pagenavi {display: flex; column-gap:20px;}
.topics-sec .page-nav .wp-pagenavi a {margin-top: 0;}
.topics-sec .page-nav a,.topics-sec .page-nav span {width:40px; height:40px; font-size:1.6rem; font-weight:500; text-align:center; text-decoration:none; color:#333; background-color:#fff; border:1px solid #F23E36; border-radius:3px; box-sizing:border-box; display:flex; justify-content:center; align-items:center; transition:color 0.3s ease, background-color 0.3s ease;}
.topics-sec .page-nav span.current, 
.topics-sec .page-nav a:hover {color:#fff; background-color:#F23E36;}
.topics-sec .detail {text-align:left;}
.topics-sec .detail .date {font-size:1.6rem; font-weight:500; color:#F23E36;}
.topics-sec .detail .ttl {font-size:3.0rem; font-weight:500; padding:0 0 0.3em 0; border-bottom:solid 1px #F23E36;}
.topics-sec .detail .ctx {font-size:1.6rem; line-height:1.8; margin:1.5em 0 0 0;}
.topics-sec .detail .img {text-align:center; margin:50px 0 0 0;}
.topics-sec .back {margin:80px 0 0 0;}
.topics-sec .back a {width:250px; height:50px; font-size:1.6rem; text-align:center; text-decoration:none; color:#F23E36; margin:0 auto; background-color:rgba(242,62,54,0); border:1px solid #F23E36; border-radius:20px; box-sizing:border-box; display:flex; justify-content:center; align-items:center; transition:background-color 0.3s ease;}
.topics-sec .back a:hover {background-color:rgba(242,62,54,0.1);}
@media screen and (max-width:767px){
	.topics-sec {padding:10px 0 50px 0;}
	.topics-sec .clm {margin-top:-30px;}
	.topics-sec .page-nav {margin:30px -3px 0 -3px;}
	.topics-sec .page-nav > div {padding:6px 3px 0 3px; box-sizing:border-box;}
	.topics-sec .page-nav a,.topics-sec .page-nav span.current {width:30px; height:30px; font-size:1.4rem;}
  .topics-sec .page-nav .wp-pagenavi {column-gap: 10px;}
	.topics-sec .detail .date {font-size:1.4rem;}
	.topics-sec .detail .ttl {font-size:2.0rem;}
	.topics-sec .detail .ctx {font-size:1.4rem;}
	.topics-sec .detail .img {margin:30px 0 0 0;}
	.topics-sec .back {margin:50px 0 0 0;}
	.topics-sec .back a {width:200px; height:40px; font-size:1.4rem;}
}


/* recruit-sec */
.recruit-sec {padding:10px 0 150px 0;}
.recruit-sec .clm1 {display:flex; justify-content:space-between; align-items:center;}
.recruit-sec .clm1 .ctx {width:50%; font-size:1.6rem; font-weight:500; line-height:2.1; text-align:left; padding:0 20px 0 0; box-sizing:border-box;}
.recruit-sec .clm1 .img {width:50%;}
.recruit-sec .txt1 {margin:100px 0 0 0;}
.recruit-sec .txt2 {text-align:left; margin:20px 0 0 0;}
.recruit-sec .txt2 dl {padding:15px 0; border-bottom:solid 1px #707070; display:flex;}
.recruit-sec .txt2 dt {width:10.0em; font-size:1.6rem; font-weight:500; color:#F23E36;}
.recruit-sec .txt2 dd {font-size:1.6rem; font-weight:500; flex:1;}
@media screen and (max-width:767px){
	.recruit-sec {padding:10px 0 50px 0;}
	.recruit-sec .clm1 {display:block;}
	.recruit-sec .clm1 .ctx {width:auto; font-size:1.4rem; line-height:1.8; padding:0;}
	.recruit-sec .clm1 .img {width:auto; margin:15px 0 0 0;}
	.recruit-sec .txt1 {margin:50px 0 0 0;}
	.recruit-sec .txt2 {margin:10px 0 0 0;}
	.recruit-sec .txt2 dl {padding:10px 0; display:block;}
	.recruit-sec .txt2 dt {width:auto; font-size:1.4rem;}
	.recruit-sec .txt2 dd {font-size:1.4rem;}
}


/* contact-sec */
.contact-sec {padding:10px 0 150px 0;}
.contact-sec .form {max-width:960px; margin:40px auto 0 auto; display:block;}
.contact-sec .form dl {text-align:left; display:flex;}
.contact-sec .form dl + dl {margin:30px 0 0 0;}
.contact-sec .form dt {width:12.0em; font-size:1.6rem; font-weight:500; color:#F23E36;}
.contact-sec .form dd {font-size:1.6rem; font-weight:500; flex:1;}
.contact-sec .form input[type="text"],
.contact-sec .form input[type="number"],
.contact-sec .form input[type="tel"],
.contact-sec .form input[type="email"],
.contact-sec .form textarea {width:100%; padding:0.5em; background-color:#fff; border:1px solid #333; border-radius:3px; box-sizing:border-box;}
.contact-sec .form textarea {height:200px; resize:none;}
.contact-sec .list {margin:0 -3.0em 0 0; display:flex; flex-wrap:wrap;}
.contact-sec .list label {margin:0 3.0em 0 0; display:flex; align-items:center;}
.contact-sec .list label input {margin:0 0.2em 0 0; display:block;}
.contact-sec .btns {margin:30px -10px 0 -10px; display:flex; flex-wrap:wrap; justify-content:center;}
.contact-sec .btns > div {padding:20px 10px 0 10px; box-sizing:border-box;}
.contact-sec .btns button {width:260px; height:60px; font-size:1.6rem; font-weight:700; line-height:1.2; text-decoration:none; color:#fff; background:-webkit-linear-gradient(left, #A91A64, #F23E36); background:linear-gradient(to right, #A91A64, #F23E36); border:none; border-radius:5px; box-sizing:border-box; display:flex; justify-content:center; align-items:center; position:relative; transition:opacity 0.3s ease;}
.contact-sec .btns button:hover {opacity:0.8;}
.contact-sec .btns button::before {content:'→'; line-height:1; margin:-0.5em 0 0 0; display:block; position:absolute; top:50%; right:1.0em;}
.contact-sec .btns button input {border: none; padding-left: 7.4rem; background-color: transparent; font-weight: bold;}
@media screen and (max-width:767px){
	.contact-sec {padding:10px 0 50px 0;}
	.contact-sec .form {margin:20px auto 0 auto;}
	.contact-sec .form dl {display:block;}
	.contact-sec .form dl + dl {margin:20px 0 0 0;}
	.contact-sec .form dt {width:auto;}
	.contact-sec .form dd {margin:0.3em 0 0 0;}
	.contact-sec .form textarea {height:150px;}
	.contact-sec .btns {margin:20px 0 0 0; display:block;}
	.contact-sec .btns > div {padding:10px 0 0 0;}
	.contact-sec .btns button {width:200px; height:50px; margin:0 auto;}
}