@charset "UTF-8";

@media print, screen and (min-width:1200px) {

#kvWrap {
position: relative;
width: 100vw;
height: 95vh !important;
overflow: hidden;
border-radius: 0 0 100px 100px;
}

#kvImgWrap::after {
position: absolute;
background: rgba(0,0,0,.2);
width: 100%;
height: 95vh;
content: "";
left: 0;
top: 0;
z-index: 20;
}

#kvCopy {
position: absolute;
font-family: var(--montserrat);
font-size: 8rem;
font-weight: 600;
text-align: left;
color: #fff;
left: 100px;
bottom: 150px;
line-height: 1.1;
z-index: 22;
}

#kvCopy span {
position: relative;
font-size: 3rem;
font-weight: 600;
display: block;
margin-top: 20px;
letter-spacing: .4em;
left: 6px;
}

.kvImg {
position: absolute;
width: 100vw;
height: 95vh;
background-image: url("../img/mv03.webp?v=1787641952");
background-position: center center;
background-repeat: no-repeat;
background-size: cover;
z-index: 10;
opacity: 0;
transform: scale(1) ;
left: 0;
top: 0;
-webkit-animation: anime 36s 0s infinite;
animation: anime 36s 0s infinite;
}

.kvImg:nth-of-type(2) {
background-image: url("../img/mv02.webp?v=1787641750");
-webkit-animation-delay: 6s;
animation-delay: 6s; }

.kvImg:nth-of-type(3) {
background-image: url("../img/mv01.webp?v=1787641749");
-webkit-animation-delay: 12s;
animation-delay: 12s; }

.kvImg:nth-of-type(4) {
background-image: url("../img/mv03.webp?v=1787641952");
-webkit-animation-delay: 18s;
animation-delay: 18s; }

.kvImg:nth-of-type(5) {
background-image: url("../img/mv02.webp?v=1787641750");
-webkit-animation-delay: 24s;
animation-delay: 24s; }

.kvImg:nth-of-type(6) {
background-image: url("../img/mv01.webp?v=1787641749");
-webkit-animation-delay: 30s;
animation-delay: 30s; }

@keyframes anime {
0% { opacity: 0; }
8% { opacity: 1; }
17% { opacity: 1; }
25% {
opacity: 0;
transform: scale(1.2);
z-index: 9;
filter: none;
}
100% {
opacity: 0;
}
}

.scroll {
position: absolute;
font-family: var(--montserrat);
font-size: 1.2rem;
font-weight: 600;
color: #fff;
transform: rotate(90deg);
line-height: 1;
z-index: 30;
bottom: 90px;
right: 58px;
}

.scrolldown {
position: absolute;
width: 1px;
height: 90px;
bottom: 0;
right: 110px;
overflow: hidden;
z-index: 30;
}

.scrolldown .sline {
width: 100%;
height: 100%;
display: block;
background: linear-gradient(to bottom, #fff 50%, rgba(0, 0, 0, 0) 50%);
background-position: 0 -90px;
background-size: 100% 200%;
animation: scrolldown 2.2s cubic-bezier(0.76, 0, 0.3, 1) forwards infinite;
}

@keyframes scrolldown {
0% {
background-position: 0 -90px;
}
75% {
background-position: 0 0;
}
100% {
background-position: 0 90px;
}
}

/**/

#indexAbout {
position: relative;
width: 100%;
margin: 300px auto;
margin-bottom: 0;
}

#indexAboutPhoto {
position: absolute;
width: 50%;
height: 600px;
z-index: 2;
left: 0;
top: -150px;
}

#indexAboutPhoto img {
width: 100%;
height: 600px;
object-fit: cover;
border-radius: 0 20px 20px 0;
}

#indexAboutEn {
position: absolute;
font-family: var(--montserrat);
font-size: 15rem;
color: #fff;
line-height: 1;
right: 10px;
top: -125px;
}

#indexAboutWrap {
position: relative;
background-color: #fff;
width: 1200px;
text-align: justify;
margin: 0 auto;
padding: 80px 90px;
border-radius: 20px;
box-shadow: 0 0 50px #f1f1f1;
}

#indexAboutTxt {
margin-bottom: 60px;
padding-left: 600px;
}

.commonTitle,
.commonTitleWh {
position: relative;
font-family: var(--montserrat);
font-size: 15rem;
color: #fff;
letter-spacing: -.05em;
line-height: 1;
}

.commonTitle::before {
position: absolute;
background-color: var(--pointColor);
width: 12px;
height: 12px;
content: "";
margin: auto;
border-radius: 12px;
left: 0;
right: 0;
top: 20px;
}

.commonTitle span,
.commonTitleWh span {
position: absolute;
font-size: 3.6rem;
color: var(--txtColor);
margin: auto;
letter-spacing: .07em;
line-height: 1;
z-index: 1;
left: 0;
right: 0;
top: 58px;
}

.commonTitleWh {
color: #f1f1f1;
}

.titleLine {
position: relative;
background-color: var(--txtColor);
width: 2px;
height: 30px;
margin: 0 auto;
margin-top: -30px;
margin-bottom: 60px;
}

.commonTitleWh::after,
.contactTitleWh::after {
background-color: #fff;
}

.commonTitleL {
position: relative;
font-size: 3.6rem;
margin-top: 20px;
margin-bottom: 80px;
z-index: 5;
line-height: 1.5;
}

.commonTitleL::before {
position: absolute;
background-color: var(--pointColor);
width: 12px;
height: 12px;
content: "";
margin: auto;
border-radius: 12px;
left: 7px;
top: -18px;
}

.commonTitleL::after {
position: absolute;
background-color: var(--txtColor);
width: 2px;
height: 30px;
content: "";
margin: auto;
left: 10px;
bottom: -50px;
}

#indexAboutBottom {
position: relative;
width: 100%;
display: flex;
justify-content: space-between;
}

#indexAboutBottom a {
width: 32%;
}

#indexAboutBottom img {
border-radius: 15px
}

#indexBusinessWrap {
position: relative;
width: 1200px;
margin: 0 auto;
padding: 120px 0 30px;
}

#indexBusinessFlex {
position: relative;
margin: 60px auto;
display: flex;
justify-content: space-between;
}

.indexBusiness {
position: relative;
width: 48%;
}

.indexBusiness #numberL,
.indexBusiness #numberR {
position: absolute;
font-family: var(--montserrat);
font-size: 8rem;
color: #ddd;
line-height: 1;
top: -50px;
}

.indexBusiness #numberL {
left: 20px;
}

.indexBusiness #numberR {
right: 20px;
}

.indexBusiness img {
border-radius: 15px;
}

.bussinessInner {
position: relative;
background-color: #fff;
width: 82%;
margin: 0 auto;
margin-top: -30px;
padding: 30px 40px;
border-radius: 10px;
box-shadow: 0 0 50px #f1f1f1;
z-index: 1;
}

.indexBusiness h3 {
font-size: 2.2rem;
margin: 0 auto;
margin-bottom: 20px;
}

.indexBusiness p {
text-align: justify;
}

.indexBusinessFlowing {
position: relative;
width: 100%;
color: #fff;
display: flex;
align-items: center;
overflow: hidden;
white-space: nowrap;
line-height: 1;
}

.indexBusinessFlowing ul {
font-family: var(--montserrat);
font-size: 22rem;
transform: translateX(100%);
margin: 0;
padding: 0;
animation: flowing 1000s linear infinite;
}

.indexBusinessFlowing ul li {
display: inline-block;
}

@keyframes flowing {
0% { transform:translateX(0); }
100% { transform:translateX(-100%); }
}

@keyframes flowingR {
0% { transform:translateX(-50%); }
100% { transform:translateX(0%); }
}

#indexNewsAllWrap {
background-color: #fff;
width: 100%;
padding: 120px 0;
}

#indexNewsWrap {
position: relative;
width: 1100px;
margin: 0 auto;
display: flex;
justify-content: space-between;
}

#indexNewsL {
width: 400px;
text-align: left;
}

#indexNewsEn {
position: absolute;
font-family: var(--montserrat);
font-size: 15rem;
color: #f1f1f1;
line-height: 1;
left: -10px;
top: -26px;
}

#indexNewsR {
width: 800px;
text-align: justify;
line-height: 1.6;
}

.news {
position: relative;
width: 100%;
display: block;
border-bottom: 1px dotted #ccc;
transition: .3s;
overflow: hidden;
}

.news:first-of-type {
border-top: 1px dotted #ccc;
}

.news::before {
position: absolute;
width: 8px;
height: 8px;
content: "";
margin: auto;
border-top: 2px solid  var(--txtColor);
border-right: 2px solid  var(--txtColor);
transform: rotate(45deg);
right: 35px;
top: 0;
bottom: 0;
transition: .3s;
}

.news:hover::before {
right: 30px;
}

.news a {
width: 100%;
padding: 40px 30px;
display: block;
}

.news:hover {
background-color: #f5f5f5;
}

.news dt {
float: left;
font-family: var(--montserrat);
font-weight: 600;
}

.news dd {
padding: 0 40px 0 160px;
}

.news .triangle {
position: absolute;
background-color:  var(--txtColor);
width: 150px;
height: calc(100px / 2 * tan(60deg));
clip-path: polygon(50% 0, 100% 100%, 0 100%);
content: "";
text-align: center;
transform: rotate(45deg);
line-height: 1;
z-index: 1;
right: -80px;
top: -50px;
}

.news .triangle::after {
position: absolute;
font-family: var(--montserrat);
font-size: 1rem;
font-weight: 600;
content: "NEW";
color: #fff;
margin: auto;
transform: rotate(0deg);
z-index: 2;
left: 1px;
right: 0;
bottom: 4px;
}

.btnR {
display: flex;
justify-content: flex-end;
margin-top: 40px;
}

#indexStaffAllWrap {
position: relative;
width: 100%;
padding: 120px 0;
}

#indexStaffEn {
position: absolute;
font-family: var(--montserrat);
font-size: 15rem;
color: #fff;
line-height: 1;
z-index: -1;
left: 0;
right: 0;
top: 80px;
}

.btn,
.btnS {
position: relative;
background: transparent;
font-family: var(--font-primary);
width: 180px;
height: 50px;
font-size: 1.5rem;
font-weight: 500;
text-align: left;
color: var(--txtColor);
border: none;
cursor: pointer;
}

.btnS {
width: 170px;
font-size: 1.4rem;
}

.btn::before,
.btnS::before {
position: absolute;
background-color: var(--txtColor);
width: 70px;
height: 2px;
content: "";
margin: auto;
z-index: 1;
top: 0;
bottom: 0;
right: 15px;
}

.btnS::before {
width: 65px;
}

.btn::after,
.btnS::after {
position: absolute;
width: 8px;
height: 8px;
content: "";
margin: auto;
border-top: 2px solid var(--txtColor);
border-right: 2px solid var(--txtColor);
transform: rotate(45deg);
z-index: 10;
right: 15px;
top: 0;
bottom: 0;
}

.btn:hover::after,
.btnS:hover::after {
border-top: 2px solid var(--txtColor);
border-right: 2px solid var(--txtColor);
}

.btn .circle,
.btnS .circle {
position: absolute;
background-color: var(--pointColor);
width: 40px;
height: 40px;
border-radius: 40px;
margin: auto;
right: 0;
top: 0;
bottom: 0;
transition: .5s;
transform: scale(1);
}

.btn:hover .circle,
.btnS:hover .circle {
background-color: var(--pointColor);
transform: scale(2);
border: 0;
}

/**/

#titleWrap {
position: relative;
width: 100%;
height: 550px;
overflow: hidden;
border-radius: 0 0 100px 100px
}

#titleWrap::after {
position: absolute;
background: rgba(0,0,0,.2);
width: 100%;
height: 100%;
content: "";
left: 0;
top: 0;
z-index: 1;
}

.bgAbout {
background: url("../img/bg_about.webp?v=1787642173") no-repeat center;
background-size: cover;
}

.bgSubstation {
background: url("../img/bg_substation.webp") no-repeat center;
background-size: cover;
}

.bgFactories {
background: url("../img/bg_factories.webp") no-repeat center;
background-size: cover;
}

.bgFaq {
background: url("../img/bg_faq.webp") no-repeat center;
background-size: cover;
}

.bgSafety {
background: url("../img/bg_safety.webp") no-repeat center;
background-size: cover;
}

.bgWorks {
background: url("../img/bg_works.webp") no-repeat center;
background-size: cover;
}

.bgNews {
background: url("../img/bg_news.webp") no-repeat center;
background-size: cover;
}

.bgCompany {
background: url("../img/bg_company.webp") no-repeat center;
background-size: cover;
}

.bgRecruit {
background: url("../img/bg_recruit.webp") no-repeat center;
background-size: cover;
}

.bgContact {
background: url("../img/bg_contact.webp") no-repeat center;
background-size: cover;
}

.bgPrivacy {
background: url("../img/bg_privacy.webp") no-repeat center;
background-size: cover;
}

#titleWrap h1,
#titleWrap div {
position: absolute;
width: 1200px;
height: 80px;
font-size: 4.6rem;
text-align: center;
color: #fff;
margin: auto;
line-height: 1.5;
z-index: 2;
left: 0;
right: 0;
top: 50px;
bottom: 0;
}

#titleWrap h1 span,
#titleWrap div span {
font-family: var(--montserrat);
font-size: 1.6rem;
font-weight: 600;
text-transform: uppercase;
display: block;
}

#breadcrumb {
width: 1200px;
font-size: 1.2rem;
text-align: left;
margin: 0 auto;
padding: 30px 0;
line-height: 1.5;
}

.post {
width: 1000px;
text-align: justify;
margin: 0 auto;
padding: 20px 0 120px;
}

.post h2 {
font-size: 2.8rem;
margin-top: 50px;
margin-bottom: 36px;
padding-left: 20px;
line-height: 1.4;
border-left: 3px solid  var(--pointColor);
}

.post h3 {
font-size: 2.4rem;
margin-top: 50px;
margin-bottom: 36px;
padding-left: 20px;
line-height: 1.4;
border-left: 3px solid  var(--pointColor);
}

.post h4 {
font-size: 2rem;
margin-top: 50px;
margin-bottom: 36px;
padding-left: 20px;
line-height: 1.4;
border-left: 3px solid  var(--pointColor);
}

.post h5 {
font-size: 1.7rem;
margin-top: 50px;
margin-bottom: 36px;
padding-left: 20px;
line-height: 1.4;
border-left: 3px solid  var(--pointColor);
}

.post ol {
list-style: decimal;
padding-inline-start: 20px;
margin-bottom: 32px;
}

.post ul {
list-style: disc;
padding-inline-start: 20px;
margin-bottom: 32px;
}

.post img {
max-width: 790px !important;
margin-bottom: 40px;
}

#toc_container {
background-color: #eaf1fa;
width: 100%;
margin: 60px auto;
margin-top: 40px;
padding: 30px 40px 36px;
}

.toc_title {
font-size: 2rem;
font-weight: 600;
margin-bottom: 20px;
padding-bottom: 10px;
border-bottom: 1px solid #ddd;
}

.toc_title::before {
content: '\f03a';
font-family: "Font Awesome 6 Free";
font-weight: 900;
color: var(--pointColor);
margin-right: 5px;
}

.toc_list,
.toc_list ul {
margin: 0 !important;
padding-inline-start: 5px !important;
list-style: none !important;
}

.toc_list li {
font-size: 1.6rem;
}

.toc_list li a {
color: var(--txtColor);
}

.toc_list li::before {
content: "- ";
}

.toc_list li ul li {
font-size: 1.5rem;
margin-left: 15px;
}

/**/

.wrapCo {
position: relative;
width: 1200px;
margin: 0 auto;
padding: 80px 0;
}

.wrapCo2 {
position: relative;
width: 1200px;
margin: 0 auto;
padding: 120px 0;
}

.wrapCo3 {
position: relative;
width: 1200px;
margin: 0 auto;
padding: 0 0 120px;
}

.wrapCommon {
position: relative;
width: 100%;
margin: 0 auto;
padding: 80px 0;
}

.wrapCommonBottom {
position: relative;
width: 100%;
margin: 0 auto;
padding: 80px 0 120px;
}

.commonCo {
position: relative;
width: 100%;
margin: 120px auto;
margin-bottom: 0;
}

.commonCo2 {
position: relative;
width: 100%;
margin: 120px auto;
margin-bottom: 0;
padding-bottom: 60px;
}

.commonPhoto,
.commonPhotoR {
position: absolute;
width: 42.5%;
height: 600px;
z-index: 2;
top: -100px;
}

.commonPhoto {
left: 0;
}

.commonPhotoR {
right: 0;
}

.commonPhoto img,
.commonPhotoR img {
width: 100%;
height: 500px;
object-fit: cover;
border-radius: 0 20px 20px 0;
}

.commonPhotoR img {
border-radius: 20px 0 0 20px;
}

#aboutEn {
position: absolute;
font-family: var(--montserrat);
font-size: 15rem;
color: #fff;
line-height: 1;
right: 10px;
top: -125px;
}

.commonWrap {
position: relative;
background-color: #fff;
width: 1200px;
text-align: justify;
margin: 0 auto;
padding: 80px 90px;
border-radius: 20px;
box-shadow: 0 0 50px #f1f1f1;
}

.commonTxt {
min-height: 320px;
padding-left: 480px;
}

.commonTxt p:last-child {
margin-bottom: 0;
}

.commonTxtR {
min-height: 320px;
padding-right: 480px;
}

.commonTxtR p:last-child {
margin-bottom: 0;
}

.commonSubTitle {
position: relative;
font-size: 2.7rem;
margin-left: -28px;
margin-bottom: 30px;
padding-left: 27px;
line-height: 1.5;
}

.commonSubTitle::before {
position: absolute;
background-color: var(--pointColor);
width: 18px;
height: 28px;
content: "";
border-radius: 28px 5px 5px 28px;
left: 0;
top: 9px;
}

.commonTxtR h4 {
font-size: 2.4rem;
margin-bottom: 30px;
line-height: 1.6;
}

#masuko {
text-align: right;
margin-top: 32px;
}

#masuko span {
font-size: 2rem;
margin-left: 15px;
}

.wrapReason {
width: 1200px;
margin: 0 auto;
padding: 80px 0;
}

.reasonFlex {
position: relative;
background-color: #fff;
width: 1000px;
margin: 0 0 60px;
display: flex;
justify-content: space-between;
border-radius: 20px;
box-shadow: 0 0 50px #f1f1f1;
}

.reasonFlex:nth-of-type(3) {
margin: 0 auto 60px;
}

.reasonFlex:nth-of-type(4) {
margin: 0 0 60px auto;
}

.reasonFlex .number {
position: absolute;
font-family: var(--montserrat);
font-size: 7rem;
color: #ddd;
line-height: 1;
left: 20px;
top: -40px;
z-index: 1;
}

.reasonL {
width: 720px;
text-align: justify;
padding: 50px 50px;
}

.reasonL h3 {
position: relative;
font-size: 2.5rem;
margin-bottom: 20px;
padding-left: 18px;
line-height: 1;
}

.reasonL h3::before {
position: absolute;
background-color: var(--pointColor);
width: 10px;
height: 10px;
content: "";
border-radius: 10px;
left: 0;
bottom: 0;
}

.reasonL p {
margin-bottom: 0;
}

.reasonR {
width: 380px;
overflow: hidden;
border-radius: 0 20px 20px 0;
}

/**/

.serviceWrap {
position: relative;
background-color: #fff;
width: 1000px;
text-align: justify;
margin: 50px auto;
padding: 80px 60px 50px;
border-radius: 20px;
box-shadow: 0 0 50px #f1f1f1;
}

.serviceWrap:first-of-type {
margin-top: 60px;
}

.serviceWrap h3 {
position: absolute;
background-color: var(--pointColor);
color: #fff;
width: auto;
height: 50px;
font-size: 2rem;
text-align: center;
display: inline;
padding: 0 30px;
border-radius: 20px 0 20px;
line-height: 46px;
left: 0;
top: 0;
}

.serviceWrap p {
margin-bottom: 0;
}

.wrapWh {
background-color: #fff;
width: 100%;
padding: 120px 0;
}

#faqNav ul {
margin-bottom: 80px;
display: flex;
justify-content: center;
line-height: 1;
}

#faqNav ul li {
position: relative;
}

#faqNav ul li a {
width: 350px;
font-size: 1.8rem;
display: block;
margin: 0 20px;
padding-bottom: 20px;
border-bottom: 2px solid var(--txtColor);
}

#faqNav ul li::before {
position: absolute;
background-color: var(--pointColor);
width: 40px;
height: 40px;
content: "";
margin: auto;
border-radius: 40px;
left: 0;
right: 0;
bottom: -30px;
}

#faqNav ul li:hover::before {
background-color: var(--txtColor);
transition: .3s;
}

#faqNav ul li::after {
position: absolute;
width: 8px;
height: 8px;
content: "";
margin: auto;
border-right: 2px solid var(--txtColor);
border-bottom: 2px solid var(--txtColor);
transform: rotate(45deg);
left: 0;
right: 0;
bottom: -12px;
}

#faqNav ul li:hover::after {
border-right: 2px solid #fff;
border-bottom: 2px solid #fff;
transition: .3s;
}

.accordion {
width: 900px;
text-align: justify;
margin: 0 auto;
}

.accordion ul {
margin: 0 auto;
padding: 0;
}

.accordion li {
position: relative;
background-color: #fff;
width: 100%;
margin-bottom: 30px;
border-radius: 15px;
transition: .3s;
box-shadow: 0 0 50px #f1f1f1;
}

.accordion li p:last-child {
margin-bottom: 0;
}

.accordion li h3 {
position: relative;
font-size: 1.5rem;
color: var(--txtColor);
}

.accordion a {
position: relative;
color: var(--themeColor);
display: block;
text-decoration: none;
cursor: pointer;
padding: 20px 76px 28px 32px;
transition: .3s;
}

.accordion li .accordion_icon {
display: inline-block;
transition: all .3s;
box-sizing: border-box;
}

.accordion li .accordion_icon {
position: absolute;
width: 15px;
height: 15px;
margin: auto;
top: 14px;
bottom: 0;
right: 34px;
}

.accordion li .accordion_icon span {
position: absolute;
background-color: var(--txtColor);
width: 100%;
height: 2px;
transition: all .3s;
}

.accordion li .accordion_icon span:nth-of-type(1) {
transform: rotate(0deg);
}

.accordion li .accordion_icon span:nth-of-type(2) {
transform: rotate(90deg);
}

.accordion li .accordion_icon.active span:nth-of-type(1) {
display:none;
}

.accordion li .accordion_icon.active span:nth-of-type(2) {
transform: rotate(180deg);
}

.toggle dt {
float: left;
font-family: var(--montserrat);
font-size: 3.2rem;
font-weight: 400;
line-height: 1.2;
}

.toggle dd {
padding: 7px 0 3px 44px;
}

.qaDetail {
color: var(--txtColor);
display: none;
padding: 0 34px 34px;
overflow: hidden;
}

.qaDetail dt {
float: left;
font-family: var(--montserrat);
font-size: 3.2rem;
font-weight: 400;
color: var(--themeColor);
line-height: 1;
}

.qaDetail dd {
padding: 0 0 0 44px;
}

/**/

.wrapRefinedSearch {
background-color: #fff;
width: 100%;
text-align: left;
margin: 60px auto;
padding: 40px 50px 45px;
border-radius: 20px;
}

.refinedSearchTitle {
position: relative;
font-size: 2rem;
margin-bottom: 30px;
padding-left: 18px;
padding-bottom: 10px;
border-bottom: 1px solid #ddd;
}

.refinedSearchTitle::before {
position: absolute;
background-color: var(--pointColor);
width: 10px;
height: 10px;
content: "";
border-radius: 10px;
left: 0;
bottom: 18px;
}

.refinedSearchCheck {
margin-bottom: 30px;
}

.feas-submit-button {
position: relative;
font-family: var(--font-primary);
background-color: var(--pointColor);
width: 160px;
height: 56px;
font-size: 1.5rem;
color: #fff;
margin: 0 auto;
margin-top: 30px;
cursor: pointer;
border: 0;
border-radius: 160px;
transition: .3s;
}

.feas-submit-button:hover {
background-color: #000;
color: #fff;
}

.searchTitle {
font-size: 2rem;
text-align: left;
margin-bottom: 60px;
padding-bottom: 20px;
border-bottom: 1px solid #ddd;
line-height: 1.5;
}

.searchTitle em {
font-size: 4rem;
}

.searchTitle span {
font-size: 2.4rem;
}

.worksFlex {
display: flex;
justify-content: flex-start;
flex-wrap: wrap;
}

.works {
position: relative;
background-color: #fff;
width: 376px;
text-align: justify;
margin-right: 35px;
margin-bottom: 40px;
padding: 40px;
border-radius: 20px;
}

.works:nth-of-type(3n) {
margin-right: 0;
}

.works h2 {
font-size: 2.2rem;
margin-bottom: 20px;
line-height: 1.4;
}

.works .category {
position: absolute;
background-color: var(--pointColor);
color: #fff;
width: 110px;
height: 30px;
font-size: 1.3rem;
text-align: center;
border-radius: 5px;
line-height: 28px;
left: 0;
top: -15px;
}

/**/

#outline {
background-color: #fff;
width: 900px;
text-align: left;
margin: 40px auto;
margin-bottom: 120px;
padding: 40px 70px 70px;
border-radius: 20px;
box-shadow: 0 0 50px #f1f1f1;
}

#outline dt {
float: left;
padding: 20px 0;
}

#outline dd {
padding: 20px 0 20px 200px;
border-bottom: dotted #ccc;
}

.googleMap {
position: relative;
width: 900px;
height: 0;
margin: 0 auto;
margin-bottom: 60px;
padding-top: 45%;
overflow: hidden;
border-radius: 20px;
}

.googleMap iframe {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
}

/**/

#wrapWideWh {
background-color: #fff;
width: 100%;
}

#wrapNews {
width: 1000px;
text-align: justify;
margin: 0 auto;
padding: 30px 0 120px;
}

#postDate {
font-family: var(--montserrat);
font-weight: 600;
margin-bottom: 20px;
}

#wrapNews h1 {
font-size: 3rem;
margin-bottom: 40px;
padding-bottom: 20px;
border-bottom: 1px solid #ddd;
line-height: 1.5;
}

#wrapNews img {
margin-bottom: 40px;
}

#wrapNews h2 {
font-size: 2.6rem;
margin: 40px auto;
padding: 0 0 3px 18px;
border-left: 3px solid var(--pointColor);
line-height: 1.4;
}

#wrapNews h3 {
font-size: 2.2rem;
margin: 40px auto;
padding: 0 0 3px 18px;
border-left: 3px solid var(--pointColor);
line-height: 1.4;
}

#wrapNews h4 {
font-size: 1.8rem;
margin: 40px auto;
padding: 0 0 3px 18px;
border-left: 3px solid var(--pointColor);
line-height: 1.4;
}

#wrapNews ol {
list-style: decimal;
padding-inline-start: 20px;
margin-bottom: 32px;
}

#wrapNews ul {
list-style: disc;
padding-inline-start: 20px;
margin-bottom: 32px;
}

blockquote {
position: relative;
background-color: #f1f1f1;
margin: 46px 0;
padding: 40px;
}

blockquote:before {
position: absolute;
font-family: 'FontAwesome';
content:'\f10d';
font-size: 1.6rem;
top: 10px;
left: 20px;
}

blockquote:after {
position: absolute;
font-family: 'FontAwesome';
content:'\f10e';
font-size: 1.6rem;
right: 20px;
bottom: 10px;
}

blockquote cite {
display: block;
font-size: 1.2rem;
text-align: right;
padding-right: 20px;
}

#prevNextWrap {
margin-top: 80px;
display: flex;
justify-content: space-between;
align-items: center;
}

.btnBackToList {
background-color: var(--pointColor);
font-family: var(--font-primary);
width: 200px;
height: 60px;
font-size: 1.4rem;
font-weight: 500;
color: #fff;
cursor: pointer;
padding-bottom: 3px;
border: 1px solid var(--pointColor);
border-radius: 100px;
transition: .3s;
}

.btnBackToList:hover {
background-color: var(--txtColor);
color: #fff;
border: 1px solid var(--txtColor);
}

.btnPrevWrap,
.btnNextWrap {
width: 130px;
}

.btnPrev,
.btnNext {
position: relative;
background: transparent;
width: 110px;
height: 25px;
font-size: 1.4rem;
text-align: left;
color: var(--txtColor);
border: none;
cursor: pointer;
}

.btnPrev {
text-align: right;
}

.btnNext:hover::before,
.btnPrev:hover::before {
background-color: #fff;
}

.btnPrev::after {
position: absolute;
width: 8px;
height: 8px;
content: "";
margin: auto;
border-top: 2px solid #fff;
border-left: 2px solid #fff;
transform: rotate(-45deg);
left: 17px;
top: 0;
bottom: 0;
}

.btnNext::after {
position: absolute;
width: 8px;
height: 8px;
content: "";
margin: auto;
border-top: 2px solid #fff;
border-right: 2px solid #fff;
transform: rotate(45deg);
right: 17px;
top: 0;
bottom: 0;
}

.btnNext:hover::after {
border-top: 2px solid #fff;
border-right: 2px solid #fff;
}

.btnPrev:hover::after {
border-top: 2px solid #fff;
border-left: 2px solid #fff;
}

.btnNext .circle {
position: absolute;
background-color: var(--pointColor);
width: 40px;
height: 40px;
border-radius: 40px;
margin: auto;
right: 0;
top: 0;
bottom: 0;
transition: .3s;
transform: scale(1);
}

.btnPrev .circle {
position: absolute;
background-color: var(--pointColor);
width: 40px;
height: 40px;
border-radius: 40px;
margin: auto;
left: 0;
top: 0;
bottom: 0;
transition: .3s;
}

.btnPrev:hover .circle,
.btnNext:hover .circle {
background-color: var(--txtColor);
}

/**/

#recruitNav ul {
width: 1200px;
margin: 0 auto;
margin-bottom: 120px;
display: flex;
justify-content: space-between;
line-height: 1;
}

#recruitNav ul li {
position: relative;
}

#recruitNav ul li a {
width: 270px;
font-size: 1.8rem;
display: block;
padding-bottom: 20px;
border-bottom: 2px solid var(--txtColor);
}

#recruitNav ul li::before {
position: absolute;
background-color: var(--pointColor);
width: 40px;
height: 40px;
content: "";
margin: auto;
border-radius: 40px;
left: 0;
right: 0;
bottom: -30px;
}

#recruitNav ul li:hover::before {
background-color: var(--txtColor);
transition: .3s;
}

#recruitNav ul li::after {
position: absolute;
width: 8px;
height: 8px;
content: "";
margin: auto;
border-right: 2px solid #fff;
border-bottom: 2px solid #fff;
transform: rotate(45deg);
left: 0;
right: 0;
bottom: -12px;
}

#recruitNav ul li:hover::after {
border-right: 2px solid #fff;
border-bottom: 2px solid #fff;
transition: .3s;
}

.wrapInterview {
width: 1200px;
margin: 80px auto;
margin-bottom: 120px;
}

.interviewIndex {
position: relative;
width: 31.5%;
}

.interviewIndex img {
border-radius: 15px;
}

.interviewIndex #numberL,
.interviewIndex #numberR {
position: absolute;
font-family: var(--montserrat);
font-size: 8rem;
color: #ddd;
line-height: 1;
top: -50px;
}

.interviewIndex #numberL {
left: 20px;
}

.interviewIndex #numberR {
right: 20px;
}

.interviewInner {
position: relative;
background-color: #fff;
width: 82%;
margin: 0 auto;
margin-top: -30px;
padding: 30px 40px 70px;
border-radius: 10px;
box-shadow: 0 0 50px #f1f1f1;
z-index: 1;
}

.interviewInner .name {
font-size: 2.6rem;
}

.interviewInner .name span {
font-size: 1.8rem;
margin-right: 20px;
}

.btnBottom {
position: relative;
width: 100%;
font-size: 1.5rem;
display: block;
margin: 0 auto;
margin-top: 20px;
padding-bottom: 20px;
border-bottom: 2px solid var(--txtColor);
}

.btnBottom::before {
position: absolute;
background-color: var(--pointColor);
width: 40px;
height: 40px;
content: "";
margin: auto;
border-radius: 40px;
left: 0;
right: 0;
bottom: -30px;
}

.btnBottom:hover::before {
background-color: var(--txtColor);
transition: .3s;
}

.btnBottom::after {
position: absolute;
width: 8px;
height: 8px;
content: "";
margin: auto;
border-right: 2px solid #fff;
border-bottom: 2px solid #fff;
transform: rotate(45deg);
left: 0;
right: 0;
bottom: -12px;
}

.btnBottom:hover::after {
border-right: 2px solid #fff;
border-bottom: 2px solid #fff;
transition: .3s;
}

.wrapInterviewTop {
position: relative;
width: 96%;
height: 700px;
margin: 0 auto;
margin-bottom: 100px;
}

.wrapInterviewTop img {
width: 100%;
height: 700px;
object-fit: cover;
object-position: top;
border-radius: 50px;
}

.interviewTitle {
position: relative;
background-color: #fff;
font-size: 4rem;
text-align: left;
margin-top: -150px;
padding: 50px 70px;
display: table;
border-radius: 0 50px 10px 50px;
box-shadow: 0 0 50px #f1f1f1;
letter-spacing: .1em;
line-height: 1.3;
z-index: 1;
}

.wrapInterviewTop .number {
position: absolute;
font-family: var(--montserrat);
font-size: 10rem;
color: var(--pointColor);
line-height: 1;
left: 30px;
top: -60px;
z-index: 2;
}

.wrapInterviewTop .name {
font-size: 3.2rem;
margin-top: 10px;
}

.wrapInterviewTop .name span {
font-size: 2rem;
margin-right: 20px;
margin-top: 20px;
letter-spacing: .07em;
}

.interviewQTitle {
position: relative;
font-size: 2.7rem;
margin-bottom: 30px;
line-height: 1.5;
}

.interviewQTitle span {
font-family: var(--montserrat);
font-size: 3.6rem;
color: var(--pointColor);
margin-right: 10px;
}

.wrapInterviewCe {
background-color: #fff;
width: 1200px;
margin: 20px auto;
margin-bottom: 0;
padding: 80px 60px;
border-radius: 20px;
box-shadow: 0 0 50px #f1f1f1;
}

.interviewCircleFlex {
margin-top: 30px;
display: flex;
justify-content: center;
gap: 30px;
}

.interviewCircle {
background-color: #eaf1fa;
width: 340px;
height: 340px;
font-size: 2rem;
padding: 0 50px;
display: table;
border-radius: 340px;
border: 3px solid var(--pointColor);
}

.interviewCircle:nth-child(2) {
margin-top: 30px;
}

.interviewCircle:nth-child(3) {
margin-top: 60px;
}

.interviewCircle .inner {
display: table-cell;
vertical-align: middle;
}

.wrapInterviewLr {
position: relative;
width: 100%;
min-height: 1000px; /* 絶対配置の画像(900px)分＋下セクションとの余白を確保し、カードが減っても被らないようにする */
margin: 0 auto;
padding: 80px 0;
}

.interviewL {
position: relative;
background-color: #fff;
width: 52%;
text-align: justify;
margin-left: 5%;
margin-bottom: 60px;
padding: 80px;
border-radius: 20px;
box-shadow: 0 0 50px #f1f1f1;
z-index: 1;
}

.interviewL:nth-child(2) {
margin-left: 10%;
}

.interviewPhotoR {
position: absolute;
width: 52%;
height: 900px;
overflow: hidden;
border-radius: 20px 0 0 20px;
top: 0;
right: 0;
}

.interviewPhotoR img {
width: 100%;
height: 900px;
object-fit: cover;
}

.wrapInterviewCeS {
position: relative;
background-color: #fff;
width: 900px;
text-align: justify;
margin: 20px auto;
margin-bottom: 80px;
padding: 130px 80px 80px;
border-radius: 20px;
box-shadow: 0 0 50px #f1f1f1;
}

.wrapInterviewCeS h3 {
position: absolute;
background-color: var(--pointColor);
color: #fff;
width: auto;
height: 50px;
font-size: 2rem;
text-align: center;
display: inline;
padding: 0 30px;
border-radius: 20px 0 20px;
line-height: 46px;
left: 0;
top: 0;
}

.recruitment {
width: 900px;
text-align: left;
margin: 60px auto;
margin-bottom: 50px;
}

.recruitment dt {
float: left;
font-family: var(--montserrat);
font-weight: 600;
padding: 30px 0;
}

.recruitment dd {
padding: 30px 0 30px 160px;
border-bottom: 1px dotted #ccc;
}

.btnRecruit {
position: relative;
font-family: var(--font-primary);
background-color: var(--pointColor);
color: #fff;
width: 350px;
height: 80px;
font-size: 1.8rem;
margin: 0 10px;
padding-bottom: 3px;
cursor: pointer;
border-radius: 350px;
border: 0;
transition: .3s;
}

.btnRecruit:hover {
background-color:#000;
color: #fff;
}

/**/

.contactInput {
width: 1000px;
margin: 0 auto;
margin-top: 60px;
text-align: justify;
display: flex;
flex-wrap: wrap;
border-top: 1px dotted #ccc;
}

.contactInput dt {
width: 28%;
display: flex;
align-items: center;
padding: 30px 0;
border-bottom: 1px dotted #ccc;
}

.contactInput dd {
width: 72% ;
display: flex;
align-items: center;
padding: 30px 0;
border-bottom: 1px dotted #ccc;
}

.contactInput dd a {
text-decoration: underline;
}

.contactInput dd div {
width: 100%;
}

.wpcf7-form-control-wrap {
width: 100%;
}

.input,
.inputS {
background-color: #fff;
width: 100%;
height: 70px;
font-size: 1.5rem;
padding: 15px;
border: 1px solid #d0d0d0;
border-radius: 5px;
}

.input:hover,
.inputS:hover,
textarea:hover {
border: 1px solid var(--pointColor);
}

.inputS {
width: 30%;
}

.required,
.any {
position: relative;
background-color: #ffdede;
width: 38px;
height: 20px;
font-size: 1.1rem;
text-align: center;
color: #ff3030;
display: inline-block;
margin-right: 10px;
border-radius: 5px;
line-height: 18px;
top: 2px;
}

.any {
background-color: #ddd;
color: var(--txtColor);
}

.contactInput .req {
color: #ff3030;
}

.addressWrap {
width: 100%;
}

.addressWrap .postCode {
position: relative;
margin-bottom: 15px;
}

.addressWrap .postCode .postMark {
position: absolute;
left: -22px;
top: 50%;
transform: translateY(-50%);
}

.addressWrap .postCode .wpcf7-form-control-wrap {
width: auto;
}

.addressWrap .postCode .inputS {
width: 200px;
}

textarea.input {
height: 200px;
}

.privacyText {
padding-top: 20px;
}

textarea {
background-color: #fff;
width: 100%;
height: 250px;
font-size: 1.5rem;
padding: 15px;
border: 1px solid #d0d0d0;
border-radius: 5px;
}

textarea :hover {
border: 1px solid var(--pointColor);
}

.radioWrap {
width: 100%;
}

input[type="radio"] {
position: relative;
background-color: #fff;
width: 20px;
height: 20px;
margin-left: 0;
margin-right: 2px;
border: 1px solid #d0d0d0;
border-radius: 50%;
-webkit-appearance: none;
-moz-appearance: none;
appearance: none;
top: .35em;
}

input[type="radio"]:checked:before {
position: absolute;
background: var(--pointColor);
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
width: 12px;
height: 12px;
border-radius: 50%;
content: '';
}

.wpcf7-list-item-label {
padding-right: 10px;
}

.wpcf7-submitWrap p {
text-align: center;
margin-bottom: 0;
}

span.wpcf7-list-item {
margin-left: 0px;
margin-right: 10px;
}

.checkWrap {
display: flex;
justify-content: flex-start;
}

.checkWrap label {
position: relative;
display: flex;
align-items: center;
cursor: pointer;
padding-right: 20px;
}

.checkWrap input[type="checkbox"] {
margin: 0;
padding: 0;
background: none;
border-radius: 0;
outline: none;
-webkit-appearance: none;
-moz-appearance: none;
appearance: none;
display: flex;
flex-wrap: wrap;
border: none;
}

.checkWrap label {
position: relative;
display: flex;
align-items: center;
cursor: pointer;
}

.checkWrap label::before,
.checkWrap label:has(:checked)::after {
content: '';
}

.checkWrap label::before {
position: relative;
background-color: #fff;
width: 20px;
height: 20px;
margin-right: 8px;
border-radius: 3px;
border: 1px solid #d8ddd8;
top: 1px;
}

.checkWrap label:has(:checked)::before {
background-color: var(--pointColor);
}

.checkWrap label:has(:checked)::after {
position: absolute;
top: 6px;
left: 6px;
transform: rotate(45deg);
width: 8px;
height: 12px;
border: solid #fff;
border-width: 0 2px 2px 0;
}

.submitWrap {
margin: 0 auto;
padding-top: 60px;
}

.btnSubmit {
background-color: var(--pointColor);
font-family: var(--font-primary);
width: auto;
min-width: 300px;
height: 80px;
font-size: 2rem;
color: #fff;
cursor: pointer;
margin: 0 auto;
padding: 0 60px 5px;
border-radius: 300px;
border: 0;
transition: .3s;
}

.btnSubmit:hover {
background-color: var(--txtColor);
color: #fff;
}

/**/

#wrapPrivacy {
width: 1000px;
text-align: justify;
margin: 0 auto;
padding: 30px 0 100px;
}

#wrapPrivacy h2 {
font-size: 3rem;
font-weight: 500;
margin-bottom: 20px;
}

#wrapPrivacy h3 {
font-size: 2.2rem;
margin-bottom: 20px;
}

#wrapPrivacy h4 {
font-size:1.7rem;
margin-bottom: 5px;
}

#wrapPrivacy ol {
position: relative;
margin-left: 26px;
margin-bottom: 32px;
list-style-type: none;
}

#wrapPrivacy li {
font-size: 1.5rem;
}

#wrapPrivacy li::before {
position: absolute;
right: calc(100% + 0.5rem);  /* 0.5remは連番とテキストとの余白 */
content: "(" counter(list-item) ")";
white-space: nowrap;
}

.has-text-align-center {
text-align: center;
}

/**/

footer {
position: relative;
background: url("../img/bg_footer.webp?v=1787642173") no-repeat center bottom;
background-size: cover;
width: 100%;
color: #fff;
margin: 0 auto;
overflow: hidden;
padding: 140px 100px 80px;
border-radius: 100px 100px 0 0;
}

footer::after {
position: absolute;
background: rgba(0,0,0,.3);
width: 100%;
height: 100%;
content: "";
left: 0;
top: 0;
z-index: 1;
}

footer a {
color: #fff !important;
}

#contactEn {
position: absolute;
font-family: var(--montserrat);
font-size: 15rem;
color: #fff;
opacity: .2;
line-height: 1;
z-index: 2;
left: 0;
right: 0;
top: 100px;
}

#contactTitleWh {
position: relative;
font-size: 3.6rem;
color: #fff;
margin: 0 auto;
margin-bottom: 80px;
z-index: 5;
}

#contactTitleWh::before {
position: absolute;
background-color: var(--pointColor);
width: 12px;
height: 12px;
content: "";
margin: auto;
border-radius: 12px;
left: 0;
right: 0;
top: -20px;
}

#contactTitleWh::after {
position: absolute;
background-color: #fff;
width: 2px;
height: 30px;
content: "";
margin: auto;
left: 0;
right: 0;
bottom: -40px;
}

#contactWrap {
position: relative;
background-color: #fff;
width: 1000px;
font-size: 1.8rem;
color: var(--txtColor);
margin: 60px auto;
padding: 70px;
border-radius: 20px;
z-index: 2;
}

.btnContact {
position: relative;
background-color: var(--pointColor);
width: 400px;
height: 100px;
font-size: 2rem;
text-align: center;
color: #fff;
cursor: pointer;
border: 0;
border-radius: 300px;
transition: .3s;
}

.btnContact:hover {
background-color:  var(--txtColor);
color: #fff;
}

.btnContact::before {
position: absolute;
width: 8px;
height: 8px;
content: "";
margin: auto;
border-top: 2px solid #fff;
border-right: 2px solid #fff;
transform: rotate(45deg);
right: 35px;
top: 0;
bottom: 0;
transition: .3s;
}

.btnContact:hover::before {
border-top: 2px solid #fff;
border-right: 2px solid #fff;
right: 30px;
}

#footerL {
width: auto;
font-size: 1.4rem;
text-align: left;
}

#footerFlex {
position: relative;
margin-top: 150px;
display: flex;
justify-content: space-between;
z-index: 2;
}

#footerLogo {
width: 214px;
margin-bottom: 15px;
}

#call {
font-family: var(--montserrat);
font-size: 3.6rem;
font-weight: 600;
}

#reception {
width: 302px;
height: 30px;
font-size: 1.2rem;
text-align: center;
border: 1px solid #fff;
border-radius: 100px;
line-height: 26px;
}

#footerR {
width: 420px;
text-align: left;
line-height: 1;
display: flex;
justify-content: space-between;
}

#footerR ul {
position: relative;
}

#footerR ul li {
position: relative;
margin-bottom: 20px;
}

#footerR ul li::before {
position: absolute;
background-color: var(--pointColor);
width: 8px;
height: 8px;
content: "";
border-radius: 8px;
margin: auto;
left: 0;
top: 8px;
}

#footerR ul li a {
position: relative;
font-size: 1.4rem;
color: #fff;
text-decoration: none;
margin: 0;
padding-left: 16px;
line-height: 1.5;
}

#footerR ul li a::after {
position: absolute;
background-color: var(--pointColor);
content: "";
width: 100%;
height: 1px;
bottom: -6px;
left: 0;
transform: scale(0, 1);
transform-origin: left top;
transition: all .3s ease;
}

#footerR ul li a:hover::after {
transform: scale(1, 1);
}

#footerR ul li ul li {
margin: 20px 0 20px 18px;
}

#copyRight {
position: relative;
width: 100%;
font-family: var(--montserrat);
font-size: 1.2rem;
font-weight: 600;
color: #fff;
margin: 0 auto;
margin-top: 80px;
padding: 20px 0;
letter-spacing: .05em;
line-height: 1;
z-index: 2;
}

#pagetop {
position: fixed;
background-color: var(--pointColor);
width: 60px;
height: 60px;
border-radius: 60px;
bottom: -60px;
right: 30px;
transition: .3s;
z-index: 200;
}

#pagetop:hover {
background-color:  var(--txtColor);
}

#pagetop::before {
position: absolute;
width: 8px;
height: 8px;
content: "";
margin: auto;
border-top: 2px solid #fff;
border-right: 2px solid #fff;
transform: rotate(-45deg);
left: 0;
right: 0;
top: 0;
bottom: 0;
}

#pagetop:hover::before {
border-top: 2px solid #fff;
border-right: 2px solid #fff;
}

.alignright {
float: right;
margin: 0 0 50px 50px;
}

.alignleft {
float: left;
margin: 0 50px 50px 0;
}

.aligncenter {
display: block;
margin: 0 auto;
}

}