@charset "utf-8";

/* @common
----------------------------------------------------------*/

/* @top
----------------------------------------------------------*/

/*========================
fv
========================*/

.fv{
    position: relative;
    height: 100vh;
    min-height: 600px;
    overflow: hidden;
    background: #fff;
}

.slider-left{
    position:absolute;
    left:0;
    bottom:0;
    height:90%;
    width:60%;
}

.slider-right{
    position:absolute;
    right:0;
    top:0;
    height:85%;
    width:40%;
}

.slider-left .slick-list,
.slider-left .slick-track,
.slider-left .slick-slide,
.slider-right .slick-list,
.slider-right .slick-track,
.slider-right .slick-slide{
    height:100%;
}

.slider-left img,
.slider-right img{
    width:100%;
    height:100%;
    object-fit:cover;
}

.hero-copy{
    position:absolute;
    left:7%;
    top:65%;
    transform:none;
    color:#F8F6F2;
    text-align:left;
    line-height:1;
    text-shadow:
        0 2px 10px rgba(0,0,0,.25),
        0 4px 24px rgba(0,0,0,.18);
}

.hero-copy span{
    display:block;
    font-size: clamp(40px, 6vw, 100px);
    font-weight:600;
    letter-spacing:.03em;
    margin-bottom:15px;
    opacity:.9;
    text-shadow:
         0 3px 15px rgba(0,0,0,.35);
}

.hero-copy strong{
    display:block;
    font-family:
  'Noto Serif JP', "游明朝", "Yu Mincho", YuMincho,
  "ヒラギノ明朝 ProN W6", "HiraMinProN-W6",
  "HGS明朝E", "ＭＳ Ｐ明朝", "MS PMincho", "MS 明朝", serif;
    font-size: clamp(55px, 7vw, 130px);
    font-weight:700;
    letter-spacing:.2em;
    margin-left:80px;
    line-height:1;
}

.fv-copy .en{
    position:absolute;
    right:3%;
    bottom:1.5em;
    margin:0;
    padding:15px 25px;
    font-weight: 600;
    font-family: 'EB Garamond', serif;
    font-size:clamp(18px,2vw,38px);
    letter-spacing:.05em;
    line-height:1.2;
    color: #5e6165;
}

.fv-copy .jp{
    position:absolute;
    font-family:
  'Noto Serif JP', "游明朝", "Yu Mincho", YuMincho,
  "ヒラギノ明朝 ProN W6", "HiraMinProN-W6",
  "HGS明朝E", "ＭＳ Ｐ明朝", "MS PMincho", "MS 明朝", serif;
    right:3%;
    bottom:.8em;
    margin:0;
    padding:8px 25px;
    font-size:1.2rem;
    letter-spacing:.2em;
    font-weight: 600;
}



/*========================
top-parallax
========================*/
.top-parallax{
    position:relative;
    height: clamp(220px, 40vw, 600px);
    overflow:hidden;
}

.parallax-img{
    position:absolute;
    inset:0;
    overflow:hidden;
}

.parallax-img img{
    position:absolute;
    top:50%;
    left:0;
    width:100%;
    height:170%;
    object-fit:cover;
    object-position:center bottom;
    transform:translate3d(0,-50%,0) scale(1.08);
    will-change:transform;
}


/*========================
top-about
========================*/

.top-about{
    padding: 5em 0 10em;
    background: #fff;
    position: relative;
    overflow: hidden;
}
.top-about .con .secttl_l {
    width: 100%;
    padding-bottom: 2.4rem;
    position: relative;
    margin: 2em auto .5em;
    text-align: left;
    font-size: 2.8rem;
    font-weight: 600;
    line-height: 1.2;
    letter-spacing: .1em;
    display: flex;
    justify-content: flex-start;
    align-items: center;
}
.top-about .con .secttl_l::before {
    bottom: 0;
    content: "";
    display: block;
    height: 0.2rem;
    left: 0;
    position: absolute;
    background-color: #005c2e;
    width: 10%;
    z-index: 10;
}



.topabout-section {
    position: relative;
    overflow: hidden;
    background: #fff;
    min-height: 700px;
}


.topabout-inner {
    position: relative;
    display: grid;
    grid-template-columns: 1fr 1fr;
    max-width: 1400px;
    min-height: 700px;
    margin: 0 auto;
}


.topabout-intro {
    position: relative;
    z-index: 2;
    display: flex;
    align-items: center;
    padding: 80px 60px;
    box-sizing: border-box;
}

.topabout-intro h3 {
    margin: 0 0 25px;
    line-height: 1.8;
    font-size: clamp(1.5rem, 1.7vw, 1.7rem);
    font-weight: bold;
    color: #005c2e;
}

.topabout-intro p {
    margin: 0;
    line-height: 2.4;
}

.history-photo {
    position: relative;
    width: calc(50vw - (50% - 700px));
    max-width: 1000px;
    height: 700px;
    min-height: 700px;
    overflow: visible;
}

.history-photo-img {
    position: relative;
    width: 100%;
    height: 700px;
    overflow: hidden;
    margin-top: 1px;
}


.history-photo-img img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: 58% center;
}

.history-photo .history-overlay {
    position: absolute;
    inset: 0;
    background: rgba(0, 0, 0, .15);
    z-index: 1;
    pointer-events: none;
}

.history-timeline {
    position: absolute;
    top: 0;
    left: 12%;
    height: 100%;
    z-index: 5;
}


.history-line {
    position: absolute;
    top: 155px;
    bottom: -1px;
    left: 0;               
    width: 5px;
    background: rgba(255, 255, 255, .75);
}


.history-badge {
    position: absolute;
    z-index: 3;
    top: 44px;
    left: 2px;               
    width: 80px;           
    height: 80px;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    border: 1px solid #333;
    border-radius: 0;       
    background: rgba(45, 82, 111, .95);
    color: #fff;
    transform: translateX(-50%) rotate(45deg);
}


.history-badge p {
    transform: rotate(-45deg);
    display: block;
    text-align: center;
    white-space: nowrap;
    font-size: 14px;
    font-weight: 700;
    line-height: 1.35;
    letter-spacing: .08em;
}


.history-badge::before {
    content: "";
    position: absolute;
    inset: -15px;
    border: 5px solid #ccc;
    border-radius: 0;      
}

.history-badge span.big {
    font-size: clamp(1.5rem, 1.7vw, 1.7rem);
    font-weight: bold;
}


.history-item {
    position: absolute;
    left: 0;
    width: 100%;
    height: 50px;
}

.history-item01 {
    top: 220px;
}

.history-item02 {
    top: 380px;
}

.history-item03 {
    top: 550px;
}


.history-dot {
    position: absolute;
    top: 50%;
    left: 2px;                
    width: 16px;
    height: 16px;
    box-sizing: border-box;
    border: 3px solid #fff;
    border-radius: 50%;
    background: #456f91;
    transform: translate(-50%, -50%); 
    box-shadow:
        0 0 0 1px #456f91,
        0 0 0 5px rgba(255,255,255,.12);
    z-index: 3;
}

.history-dot-large {
    width: 22px;
    height: 22px;
    border-width: 4px;
    box-shadow:
        0 0 0 1px #456f91,
        0 0 0 5px rgba(255,255,255,.25),
        0 0 0 9px rgba(255,255,255,.08);
}


.history-item::before {
    content: "";
    position: absolute;
    top: 50%;
    left: 8px;            
    width: 22px;
    height: 1px;
    background: rgba(255,255,255,.8);
    transform: translateY(-50%);
}


.history-date {
    position: absolute;
    top: 50%;
    left: 40px;
    transform: translateY(-50%);
    white-space: nowrap;
    color: #fff;
    font-family: 'EB Garamond', serif;
    font-size: clamp(36px, 3.5vw, 52px);
    font-weight: 700;
    line-height: .9;
    letter-spacing: -.03em;
}

.history-date small {
    display: block;
    margin-top: 9px;
    color: rgba(255,255,255,.9);
    font-size: 15px;
    font-weight: 500;
    line-height: 1.5;
    letter-spacing: .04em;
    margin-left: 5%;
}



/*========================
top-works
========================*/

.top-works{
    position: relative;
    z-index: 1;
    padding-bottom: 9em;
    background: #fff;
}

.top-works::before{
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    bottom: 400px;

    width: min(90vw, 1350px);
    background:#fff;

    background-image:
        linear-gradient(135deg, rgba(255,255,255,.45), rgba(255,255,255,0)),
        linear-gradient(rgba(190,200,212,.12) 1px, transparent 1px),
        linear-gradient(90deg, rgba(190,200,212,.12) 1px, transparent 1px),
        linear-gradient(rgba(190,200,212,.22) 1px, transparent 1px),
        linear-gradient(90deg, rgba(190,200,212,.22) 1px, transparent 1px);

    background-size:
        auto,
        16px 16px,
        16px 16px,
        80px 80px,
        80px 80px;
}


.top-works::after{
    content:"";
    position:absolute;
    top:40px;
    left:40px;
    width:80px;
    height:80px;
    border-top:2px solid rgba(0,92,46,.8);
    border-left:2px solid rgba(0,92,46,.8);
}
.top-works::before{
    z-index:-2;
}

.top-works::after{
    z-index:-1;
    
    
}
.top-works .b-box {
    position: relative;
    z-index: 3;
}

.works-control {
    display: flex;
    justify-content: flex-end;
    gap: 10px;
    margin: 30px auto 0;
}

.works-control button {
    position: relative;
    width: 6rem;
    height: 4rem;
    padding: 0;
    background: #fff;
    border: 1px solid #005c2e;
    cursor: pointer;
}

.works-control button::before {
    content: "";
    position: absolute;
    top: 50%;
    left: 50%;

    width: 10px;
    height: 10px;

    border-top: 1px solid #005c2e;
    border-right: 1px solid #005c2e;
}

.works-next::before {
    transform: translate(-65%, -50%) rotate(45deg);
}

.works-prev::before {
    transform: translate(-35%, -50%) rotate(-135deg);
}

.works-slider {
    width: 100%;
    margin: 60px auto 80px;
    overflow: hidden;
}

.works-slider .swiper-wrapper {
    align-items: flex-start;
    transition-timing-function: linear !important;
}

.works-slider .swiper-slide {
    width: min(650px, 33.333vw);
    box-sizing: border-box;
    padding: 0 20px;
}

.work-item {
    width: 100%;
    box-sizing: border-box;
}

.work-item > a,
.work-item a {
    display: block;
    width: 100%;
    margin: 0 auto;
    color: inherit;
    text-decoration: none;
}

.workimg {
    overflow: hidden;
}

.workimg img {
    display: block;
    width: 100%;
    aspect-ratio: 3 / 2;
    object-fit: cover;
    transform: scale(1);
    transition: transform .6s ease;
}

.workimg:hover img {
    transform: scale(1.08);
}

.workttl {
    margin-top: 25px;
    font-size: clamp(14px, 2.5vw, 22px);
    display: flex;
    align-items: center;
    gap: 20px;

    font-family:
        'Noto Serif JP',
        "游明朝",
        "Yu Mincho",
        YuMincho,
        "ヒラギノ明朝 ProN W6",
        "HiraMinProN-W6",
        "HGS明朝E",
        "ＭＳ Ｐ明朝",
        "MS PMincho",
        "MS 明朝",
        serif;
}

.workttl::after {
    content: "";
    flex-grow: 1;
    height: 1px;
    background-color: #ddd;
}

.worklead {
    margin-top: 23px;
    line-height: 2;
}



/*========================
top-business
========================*/

.top-business{
    padding-bottom:9em;
}

.business-intro{
    display:grid;
    grid-template-columns:1fr 0.9fr;
    gap:80px;
    align-items:center;
    margin:4em 0 6em;
}
.business-copy{
    min-width:0;
}

.business-copy h3{
    font-size: clamp(1.5rem, 1.7vw, 1.7rem);
    line-height:1.5;
    font-weight:600;
    margin-bottom:35px;
}

.business-copy p{
    line-height:2.2;
}

.business-movie{
    position:relative;
    overflow:hidden;
    aspect-ratio:16 / 9;
}

.business-movie video{
    width:100%;
    height:100%;
    object-fit:cover;
    display:block;
}



.business-list{
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:60px;
}
.business-list h3{
    font-size: clamp(14px, 2.5vw, 22px);
    font-weight: 600;
    padding-left: 1em;
}

.business-list a{
    text-decoration: none;
}

.business-list > a{
    display:flex;
    height:100%;
}

.business-item{
    width:100%;
    height:100%;
    display:grid;
    row-gap:14px;
    position:relative;
    overflow:hidden;
    padding:4.5em 0 3em;
    background:#005c2e;
    color:#fff;
}
.business-item::before{
    content:"";
    position:absolute;
    right:-50px;
    top:-50px;
    width:200px;
    height:200px;
    background-position:center;
    background-size:cover;
    background-repeat:no-repeat;
    opacity:.86;
    filter:grayscale(30%);
    transition:opacity .5s ease, transform .5s ease, filter .5s ease;
}

.business-item:hover::before{
    opacity:1;
    filter:none;
    transform:scale(1.08);
}
.business-item>*{
    position:relative;
    z-index:2;
}

.business-list > a:nth-child(1) .business-item::before{
    background-image:url("../img/top/business_1.jpg");
}

.business-list > a:nth-child(2) .business-item::before{
    background-image:url("../img/top/business_2.jpg");
}

.business-list > a:nth-child(3) .business-item::before{
    background-image:url("../img/top/business_3.jpg");
}

.business-line{
    width:68%;
    justify-self:start;
    height:2px;
    background:#F2F5F7;
}
.business-en{
    justify-self:end;
    font-size:.8rem;
    letter-spacing:.35em;
    color:#fff;
    margin-top:-20px;
}
.business-item p{
    margin:0;
    padding: 0 1em;
    line-height:2;
}

.link-line{
    margin-top:90px;
    margin-bottom: 50px;
}



/*----------------------------------------
  STRENGTH
----------------------------------------*/

.strength {
    position: relative;
    overflow: hidden;
    background: #fff;
    padding-bottom: 5em;
}


.strength-heading {
    position: relative;
    z-index: 10;
    text-align: center;
}

.strength-en {
    margin: 0;
    color: #005c2e;
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(55px, 7vw, 96px);
    letter-spacing: .03em;
    letter-spacing: .04em;
}

.strength-lead {
    margin: 18px 0 0;
    color: #555;
    font-family: serif;
    font-size: clamp(13px, 1.2vw, 16px);
    letter-spacing: .18em;
    line-height: 1.8;
}

.strength-lead::after {
    content: "";
    display: block;
    width: 34px;
    height: 2px;
    margin: 18px auto 10px;
    background: #005c2e;
}

.strength-lead span {
    display: block;
    color: #222;
    font-size: clamp(28px, 2.8vw, 42px);
    letter-spacing: .12em;
    position: relative;
    display: inline-block;
    margin-top: 5px;
    padding-bottom: 8px;
}
.strength-lead span::after {
    content: "";
    position: absolute;
    left: 50%;
    bottom: 0;
    width: 45px;
    height: 2px;
    background: #005c2e;
    transform: translateX(-50%);
}

.strength-inner {
    position: relative;
    width: 100%;
    height: 850px;
    margin: 9em auto 0;
    padding-top: 5em;
    background-color: rgba(229, 229, 229, 0.3);
}




.strength-container {
    position: relative;
    width: min(100%, 1100px);
    height: 850px;
    margin: 0 auto;
}


.strength-photo {
    position: absolute;
    overflow: visible;
    z-index: 1;
}


.strength-photo img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    position: relative;
    z-index: 2;
}

.strength-photo01 {
    top: -150px;
    left: -50px;
    width: clamp(320px, 30vw, 430px);
    aspect-ratio: 1.2 / 1;
}
.strength-photo01::after {
    content: "";
    position: absolute;
    z-index: -1;
    width: 70%;
    height: 80%;
    background-color: rgba(189, 204, 212, 0.15);
    right: -30px;   
    bottom: -45px;   
}


.strength-photo02 {
    top: -160px;
    right: -20px;
    width: clamp(300px, 25vw, 450px);
    aspect-ratio: 3 / 4;
}


.strength-photo02::after {
    content: "";
    position: absolute;
    z-index: -1;
    background-color: rgba(189, 204, 212, 0.15);
    width: 90%;
    height: 90%; 
    right: auto;    
    bottom: -50px; 
    left: -30px;   
}


.strength-photo03 {
    bottom: 80px;
    left: 10px;
    width: clamp(340px, 38vw, 540px);
    aspect-ratio: 2 / 1;
}

.strength-photo03::after {
    content: "";
    position: absolute;
    z-index: -1;
    background-color: rgba(189, 204, 212,0.15);
    width: 90%;
    height: 80%; 
    left: auto;    
    top: -50px;
    right: -30px;   
}

/*.strength-photo04 {
    bottom: -92px;
    right: -70px;
    width: clamp(450px, 30vw, 650px);
    aspect-ratio: 2 / 1; 
}

.strength-photo04::after {
    content: "";
    position: absolute;
    z-index: -1;
    width: 60%;
    height: 70%;
    background-color: rgba(22, 75, 122, 0.08);
    right: -20px;   
    top: -50px;     
    bottom: auto;    
}*/

.strength-item {
    position: absolute;
    width: 550px;
    z-index: 5;
    display: flex;
    align-items: flex-start;
}

.strength-item01 {
    top: 10px;
    left: 48%;
    transform: translateX(-50%);
}

.strength-item02 {
    top: 250px;
    left: 62%;
    transform: translateX(-50%);
}

.strength-item03 {
    top: 510px;
    left: 70%;
    transform: translateX(-50%);
}




.strength-number {
    position: relative;
    flex-shrink: 0;
    font-size: clamp(80px, 8vw, 100px);
    line-height: .7;
    font-weight: 700;
    letter-spacing: -.05em;
    color: #164b7a;
    opacity: .95;
    font-family: 'EB Garamond', serif;
    transform: translateY(-10px);
}

.strength-copy {
    position: relative;
    padding-left: 18px;
}

.strength-copy h3 {
    position: relative;
    margin: 0 0 .5rem;
    font-size: clamp(1.6rem, 2vw, 2rem);
    line-height: 1.4;
    font-weight: 600;
    letter-spacing: .08em;
    font-family: 'Noto Serif JP', "游明朝", "Yu Mincho", YuMincho, "ヒラギノ明朝 ProN W6", "HiraMinProN-W6", "HGS明朝E", "ＭＳ Ｐ明朝", "MS PMincho", "MS 明朝", serif;
}
.strength-sub {
    color: #005c2e;
    font-size: 1.05rem;
    font-weight: 600;
    letter-spacing: .1em;
    position: relative;
}

.strength-sub::after {
    content: "";
    display: block;
    width: 50px;
    height: 1px;
    background: #005c2e;
    margin-top: .5rem;
    margin-bottom: 1rem;
}
.strength-copy p {
    margin: 0;
    line-height: 1.8;
    font-weight: 500;
}

.strength-text {
    margin-top: 0;
}

.strength-text p {
    margin: 0;
}





.strength-sp-photo {
    display: none;
}





/*========================
top-recruit
========================*/
.top-recruit{
    position: relative;
    width:100vw;
    margin-left:calc(50% - 50vw);
    padding-top: 1.5em;
    overflow:hidden;
    background:#fff;
    background-image:
        linear-gradient(135deg, rgba(255,255,255,.45), rgba(255,255,255,0)),
        linear-gradient(rgba(190,200,212,.12) 1px, transparent 1px),
        linear-gradient(90deg, rgba(190,200,212,.12) 1px, transparent 1px),
        linear-gradient(rgba(190,200,212,.22) 1px, transparent 1px),
        linear-gradient(90deg, rgba(190,200,212,.22) 1px, transparent 1px);
    background-size:
        auto,
        16px 16px,
        16px 16px,
        80px 80px,
        80px 80px;
}
.top-recruit::before{
    content:"";
    position:absolute;
    top:40px;
    left:40px;
    width:80px;
    height:80px;
    border-top:2px solid rgba(0,92,46,.8);
    border-left:2px solid rgba(0,92,46,.8);
    pointer-events:none;
}
.recruit-inner{
    max-width:1400px;
    margin:0 auto;
    padding:0 40px;
}

.recruit-wrap {
    display: flex;
    flex-direction: column; 
    align-items: center;
    width: 100%;
    margin: 0;
    padding: 0;
    gap: 32px; 
}

.recruit-media{
    width:min(1100px, calc(100% - 40px));
    margin-right:auto;
    margin-left:0;
    overflow:hidden;
}
.recruit-slider{
    width:100%;
    overflow:hidden;
}
.recruit-slider .swiper-slide{
    width:100%;
}

.recruit-slider img{
    width:100%;
    height:auto;
    display:block;
}


.recruit-card-wrap {
    width: 100%;
    max-width: 450px; 
    display: flex;
    justify-content: center;
    box-sizing: border-box;
}

.recruit-card {
    width: 100%;
    background: rgba(255,255,255,.92);
    padding: 30px 24px; 
}
.recruit-copy{
    font-size: clamp(1.3rem, 1rem + 0.6vw, 1.7rem);
    line-height: 1.7;
    font-weight: 600;
    margin-bottom:30px;

}

.recruit-lead{
    line-height:2;
    margin-bottom:40px;
}





/*========================
top-news-ir
========================*/
.top-news-ir{
  padding: 5em 0 15em;
  background: #fff;
}
.news-ir{
 display: flex;
 justify-content: space-between;
}

.news-con{
  max-width: 1200px;
  width: 100%;
  margin: 0 auto;
  display: flex;
  gap: 80px;
  box-sizing: border-box;
  justify-content:center;
}


.news-box,.ir-box{
    width: calc((100% - 80px) / 2);
}
.news-title{
  font-size: 22px;
  font-weight: 600;
  margin-bottom: 20px;
}


.top-news-ir .link-btn {
    padding: .5em 2.2em .5em .8em;
    margin: 2em auto;
    display: block;
    border: 1.5px solid #005c2e;
}


.news-list{
  list-style: none;
  padding: 0;
  margin: 0;
  border-top: 1px solid #ddd;
}

.news-list li{
  border-bottom: 1px solid #ddd;
}

.news-list a{
  display: flex;
  align-items: center;
  gap: 16px;
  padding: 18px 0;
  text-decoration: none;
  color: #111;
}


.date{
  font-size: 13px;
  color: #666;
  width: 120px;
  flex-shrink: 0;
}


.text{
  flex: 1;
  font-size: 14px;
  line-height: 1.6;
}

.arrow{
  margin-left: auto;
  transition: transform .2s;
}


.news-list a:hover .arrow{
  transform: translateX(4px);
}


/*========================
l-footer-bnr
========================*/
.l-footer-bnr{
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:2px;
    width:100%;
    background:#fff;
}

.l-footer-bnr-item{
    position:relative;
    overflow:hidden;
    aspect-ratio:3 / 2;
}

.l-footer-bnr-item a{
    display:block;
    width:100%;
    height:100%;
    position:relative;
    text-decoration:none;
    color:#fff;
}


.l-footer-bnr .img{
    position: relative;
    width:100%;
    height:100%;
    overflow:hidden;
}

.l-footer-bnr .img img{
    width:100%;
    height:100%;
    object-fit:cover;
    transition:1s ease;
}

.l-footer-bnr .img::before{
    content:"";
    position:absolute;
    inset:0;
    background:linear-gradient(
        to top,
        rgba(0,0,0,.45) 0%,
        rgba(0,0,0,.28) 50%,
        rgba(0,0,0,.12) 100%
    );
    transition:.4s ease;
    z-index:1;
}

.l-footer-bnr-item:hover .img::before{
    background: linear-gradient(to top, rgba(0, 0, 0, .25) 0%, rgba(0, 0, 0, .15) 50%, rgba(0, 0, 0, .05) 100%);
}
.l-footer-bnr-item:hover .img img{
    transform:scale(1.08);
}
.label{
    position:absolute;
    left:38px;
    bottom:48px;
    z-index:2;
    color:#fff;
}

.label-en{
    margin:0;
    font-family: 'EB Garamond', serif;
    font-size: clamp(22px, 6vw, 62px);
    font-weight:300;
    line-height:1;
    letter-spacing:.03em;
}

.label-ja{
    margin-top:18px;
    font-size:18px;
    letter-spacing:.12em;
    line-height:1.7;
}

.label-line{
    display:block;
    width:46px;
    height:1px;
    margin-top:26px;
    background:rgba(255,255,255,.8);
    transition:.4s;
}
.arrow_1{
    position:absolute;
    right:36px;
    bottom:42px;
    width:30px;
    height:30px;
    z-index:2;
    transition:.4s;
}

.arrow_1::after{
    content:"";
    position:absolute;
    right:0;
    top:50%;
    width:8px;
    height:8px;
    border-top:1px solid #fff;
    border-right:1px solid #fff;
    transform:translateY(-50%) rotate(45deg);
}

.l-footer-bnr-item:hover img{
    transform:scale(1.08);
}

.l-footer-bnr-item:hover .img::before{
    background:linear-gradient(
        to top,
        rgba(0,0,0,.35),
        rgba(0,0,0,.15),
        rgba(0,0,0,.03)
    );
}

.l-footer-bnr-item:hover .arrow{
    transform:translateX(8px);
}

.l-footer-bnr-item:hover .label-line{
    width:72px;
}



/* @company
----------------------------------------------------------*/
.page-nav{
    padding: clamp(2rem, 5.5vw, 8.75rem) 0;
}

.page-nav-list{
    display:grid;
    grid-template-columns:repeat(4,1fr);
    gap:32px 28px;
    list-style:none;
    margin:0;
    padding:0;
}

.page-nav-list li{
    border-bottom:1px solid #eaebef;
}
.page-nav-list li.app{
    border-bottom:1px solid #005c2e;
}
.page-nav-list a{
    display:flex;
    justify-content:space-between;
    align-items:center;
    padding:0 0 22px;
    text-decoration:none;
    font-weight:400;
    transition:.3s;
}

.page-nav-list i{
    font-style:normal;
    transition:.3s;
    font-size:1.3rem;
}

.page-nav-list a:hover{
    color:#005c2e;
}

.page-nav-list a:hover i{
    transform:translateX(8px);
}

.page-nav-list a::after{
    content:"";
    position:absolute;
    left:0;
    bottom:-1px;
    width:0;
    height:2px;
    background:#005c2e;
    transition:.4s;
}

.page-nav-list a{
    position:relative;
}

.page-nav-list a:hover::after{
    width:100%;
}




.greeting {
  padding: clamp(5rem, 8vw, 8.75rem) 0;
  background: linear-gradient(
    135deg,
    #F8F9F9 0%,
    #F3F5F6 50%,
    #ECEFF2 100%
);
  position: relative;
  overflow: hidden;
}

.greeting-grid{
    display:grid;
    grid-template-columns:280px minmax(600px,950px);
    grid-template-areas:
        "head img"
        "body body";
    gap:10px;
    align-items:center; 
}

.greeting-head{
    grid-area:head;
    display:flex;
    flex-direction:column;
    justify-content:center;
}

.greeting-img img {
    width: 100%;
    height: 400px;
    display: block;
    object-fit: cover;
}
.greeting-img img{
    width:100%;
    display:block;
    object-fit:cover;
}


.greeting-body{
    grid-area:body;
    width:100%;
    padding:4.5em 3.5em;
    background:rgba(255,255,255,.45);
    backdrop-filter:blur(8px);
    -webkit-backdrop-filter:blur(8px);
    border:1px solid rgba(0,0,0,.05);
}

.greeting-body .ttl{
    margin-bottom:1.5em;
    line-height:2.1;
    font-size: clamp(1.2rem, 1.7vw, 1.7rem);
    letter-spacing:.08em;
    color:#005c2e;
    font-family:
  'Jost', 'Noto Serif JP', "游明朝", "Yu Mincho", YuMincho,
  "ヒラギノ明朝 ProN W6", "HiraMinProN-W6", serif;
    font-weight:600;
}

.greeting_txt{
    line-height:2;
    margin-bottom:1.5em;
}

.greeting_name {
  text-align: right;
  margin-top: 3.5em; 
  font-family:
  'Jost', 'Noto Serif JP', "游明朝", "Yu Mincho", YuMincho,
  "ヒラギノ明朝 ProN W6", "HiraMinProN-W6", serif; 
}


.greeting_name span {
  display: block; 
  font-size: 0.9rem;
  font-weight: 500;
  color: #666;
  letter-spacing: .15em;
  margin-bottom: .5em; 
}

.greeting_name strong {
  font-size: 1.65rem; 
  font-weight: 700;
  letter-spacing: .2em; 
  color: #111; 
}

.about-group{
    padding: clamp(5rem, 8vw, 8.75rem) 0;
}
.table {
    max-width: 1200px;
    margin: 0 auto;
}
.table dt, .table dd {
    padding: 2rem 2em;
}
.table dt {
    width: 35%;
    border-bottom: 1px solid #ccc;
    font-weight: 600;
}
.table dd {
    width: 65%;
    border-bottom: 1px dashed #eaebef;
}
.table dd a{
    text-decoration: none;
}

.shikaku-wrap{
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 10px;
    align-items: start;
}
.shikaku-wrap .shikaku-title {
    grid-column: 1 / -1; /* 2列分の横幅いっぱいに広げる */
    width: 100%;
}
.shikaku-list{
    margin: 0;
}

.shikaku-list li{
    margin-bottom: .6em;
    line-height: 1.8;
}

.philosophy-group{
    padding: 140px 0;
    
}

.philosophy-box {
  position: relative;
  margin-bottom: 35px;
}

.philosophy-box-con {
  max-width: 980px;
  width: 100%;
  padding: 2.3em 2.3em 0;
  font-weight: 600;
}


.philosophy-box-con p {
  font-size: clamp(1.3rem, 1.7vw, 1.7rem);
  font-weight: 600;
  line-height: 2.8;
  font-family: 'Jost', 'Noto Serif JP', "游明朝", "Yu Mincho", YuMincho, "ヒラギノ明朝 ProN W6", "HiraMinProN-W6", serif;
}

.sec_inner{
    width: 100%;
    max-width: 1100px;
    margin-left: auto;
    margin-right: auto;
    padding: 2em;
}

.sec_inner h4 {
    color: #005c2e;
    font-weight: 600;
    font-size: clamp(1.0625rem, 0.95rem + 0.3vw, 1.125rem);
}


.history-parallax{
    position: relative;
    width: 100%;
    height: clamp(350px, 50vw, 700px);
    overflow: hidden;
}

.history-img{
    position:absolute;
    inset:-120px 0;
    will-change:transform;
}

.history-img img{
    width:100%;
    height:calc(100% + 240px);
    object-fit:cover;
}

.history-overlay{
    position:absolute;
    inset:0;
    background:rgba(0,0,0,.4);
    z-index:1;
}

.history-copy{
    position:relative;
    z-index:2;
    width:min(90%,900px);
    height:100%;
    margin:auto;
    display:flex;
    flex-direction:column;
    justify-content:center;
    align-items:center;
    text-align:center;
    color:#fff;
}
.history-copy::before{
    content:"";
    width:1px;
    height:70px;
    background:#fff;
    opacity:.7;
    margin-bottom:28px;
}

.history-en{
    display:block;
    font-size:.95rem;
    font-family: 'EB Garamond', serif;
    letter-spacing:.45em;
    font-weight:600;
    margin-bottom:20px;
    opacity:.85;
}


.history-copy h2{
    font-size:clamp(2rem,5vw,4.4rem);
    font-family: 'EB Garamond', serif;
    font-weight:600;
    letter-spacing:.08em;
    line-height:1.2;
    margin-bottom:25px;
}


.history-copy p{
    font-size: clamp(1rem, 0.824rem + 0.751vw, 1.5rem);
    line-height:2;
    letter-spacing:.08em;
    opacity:.95;
}

.timeline{
    position:relative;
    overflow:hidden;
}


.timeline_box{
    position: relative;
    padding: clamp(5rem, 8vw, 8.75rem) 0;
}

.timeline .inner{
    position: relative;
    z-index: 1;
    width: min(1100px, 90%);
    margin: auto;
}

.timeline .inner::before{
    content: "";
    position: absolute;
    top: 220px;
    right: 0;
    width: 620px;
    height: 620px;
    opacity: .06;
    background: url("../img/company/history_2.svg") no-repeat center;
    background-size: contain;
    pointer-events: none;
    z-index: -1;
}
.timeline-list{
    position:relative;
}

.timeline-item{
    display:grid;
    grid-template-columns:120px 40px 1fr;
    gap:30px;
    position:relative;
    padding-bottom:20px;
}


.timeline-year{
    font-family: 'Jost', 'Noto Serif JP', "游明朝", "Yu Mincho", YuMincho, "ヒラギノ明朝 ProN W6", "HiraMinProN-W6", serif;
    font-size:2.1rem;
    line-height:1;
    letter-spacing:.08em;
    color: #005c2e;
}

.timeline-axis{
    position:relative;
}


.timeline-axis-line::after{
    content:"";
    position:absolute;
    top:12px;
    left:-75px;
    width:75px;
    height:1px;
    background:#d9d9d9;
}



.timeline-item:last-child .timeline-list::before{
    display:none;
}


.timeline-body{
    padding-bottom:10px;
}

.timeline-body h3{
    font-size: clamp(1.0625rem, 0.95rem + 0.3vw, 1.125rem);
    font-weight:600;
}

.timeline-body p{
    color:#555;
    font-size:1rem;
    line-height:2;
    margin: 5px 10px;
}


.timeline-item:hover .timeline-dot{
    transform:translateX(-50%) scale(1.3);
    transition:.35s;
}


.timeline-item:hover .timeline-year{
    transition:.35s;
}


.timeline-item{
    opacity:0;
    transform:translateY(40px);
    transition:
        opacity .45s ease,
        transform .45s ease;
}

.timeline-item.is-show{
    opacity:1;
    transform:translateY(0);
}


.timeline-axis::before{
    content:"";
    position:absolute;
    left:50%;
    top:0;
    bottom:-70px;
    width:1px;
    background:#d9d9d9;
    transform:translateX(-50%) scaleY(0);
    transform-origin:top;
    transition:transform .45s ease;
}

.timeline-item.is-show .timeline-axis::before{
    transform:translateX(-50%) scaleY(1);
}

.timeline-dot{
    position:absolute;
    left:50%;
    top:6px;
    width:12px;
    height:12px;
    border-radius:50%;
    background:#005c2e;
    transform:translateX(-50%) scale(0);
    transition: transform .2s ease;
}

.timeline-item.is-show .timeline-dot{
    transform:translateX(-50%) scale(1);
}

.organization{
    padding: clamp(5rem, 8vw, 8.75rem) 0;
    background: linear-gradient(
    135deg,
    #F8F9F9 0%,
    #F3F5F6 50%,
    #ECEFF2 100%
);
    
}
.organization_box {
    --line-space: 28px;
    position: relative;
    display: flex;
    align-items: center;
    gap: clamp(30px, 5vw, 80px);
    max-width: 1400px;
    margin: 0 auto;
}

.organization-title {
    position: relative;
    z-index: 2;
    flex: 0 0 clamp(220px, 22vw, 320px);
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    min-height: 170px;
    background: #005c2e;
    color: #fff;
}

.organization-title::after {
    content: "";
    position: absolute;
    top: 50%;
    left: 100%;
    width: clamp(30px, 5vw, 80px);
    height: 1px;
    background: #005c2e;
}

.organization-title span {
    margin-bottom: 18px;
    font-size: 11px;
    font-weight: 600;
    letter-spacing: 0.25em;
}

.organization-title h3 {
    margin: 0;
    font-size: clamp(18px, 2vw, 30px);
    font-weight: 600;
    letter-spacing: 0.18em;
}

.organization-list {
    position: relative;
    flex: 1;
    padding-left: var(--line-space);
}

.organization-list::before {
    content: "";
    position: absolute;
    left: 0;
    top: 48px;
    bottom: 48px;
    width: 1px;
    background: #005c2e;
}


.organization-item {
    position: relative;
    display: flex;
    align-items: center;
    height: 96px;
    margin-bottom: 10px;
    padding: 14px 35px 14px 40px;
    box-sizing: border-box;
    border-right: 1px solid #d7d7d7;
    border-top: 1px solid #d7d7d7;
    border-bottom: 1px solid #d7d7d7;
    background: #fff;
    overflow: visible;
}

.organization-item::after {
    content: "";
    position: absolute;
    left: calc(var(--line-space) * -1);
    top: 50%;
    width: var(--line-space);
    height: 1px;
    background: #005c2e;
}

.organization-item:last-child {
    margin-bottom: 0;
}

.organization-item::before {
    content: "";
    position: absolute;
    left: 0;
    top: 0;
    bottom: 0;
    width: 5px;
    background: #005c3b;
}


.organization-item-inner {
    position: relative;
    z-index: 2;
    display: grid;
    grid-template-columns: clamp(120px, 14vw, 180px) 1fr;
    width: 100%;
    align-items: center;
}

.organization-item h4 {
    margin: 0;
    font-size: clamp(16px, 1.6vw, 23px);
    font-weight: 600;
    letter-spacing: 0.12em;
    line-height: 1.5;
}

.organization-item p {
    margin: 0;
    line-height: 1.9;
    letter-spacing: 0.04em;
}


.organization-en {
    position: absolute;
    z-index: 1;
    right: 0;
    bottom: -20px;
    transform: translateY(-50%);
    color: rgba(0, 70, 45, 0.1);
    font-size: clamp(13px, 1.2vw, 17px);
    font-weight: 500;
    letter-spacing: 0.15em;
    white-space: nowrap;
    pointer-events: none;
    font-family: 'EB Garamond', serif;
}


.access{
    padding: clamp(5rem, 8vw, 8.75rem) 0;
    background: linear-gradient(
    135deg,
    #F8F9F9 0%,
    #F3F5F6 50%,
    #ECEFF2 100%
);
}

.access-inner{
    margin-top:60px;
    
}

.access-top{
    display:grid;
    grid-template-columns:1.2fr 1fr;
    gap:60px;
    align-items:center;
}

.map-card{
    max-width:350px;
    width: 100%;
    margin: 0 auto;
}

.map-card img{
    width:100%;
    display:block;
}

.access-info{
    padding-left:28px;
    border-left:2px solid #d9d9d9;
}

.access-train{
    display:flex;
    align-items:center;
    gap:18px;
    margin-top:28px;
    padding-top:28px;
    border-top:1px solid #ddd;
}

.train-icon{
    width:50px;
}

.train-icon img{
    width:100%;
    display:block;
}


.google-map{
    margin-top:60px;
}

.google-map iframe{
    width:100%;
    height:480px;
    border:0;
    display:block;
}




/*safety==========================================*/

.safety{
    padding-top: clamp(1rem, 5vw, 5rem);
    padding-bottom:clamp(4rem,8vw,7rem);
}

.safety-con{
    padding-top:clamp(4rem,8vw,7rem);
    padding-bottom:clamp(4rem,8vw,7rem);
    background: linear-gradient(
    135deg,
    #F8F9F9 0%,
    #F3F5F6 50%,
    #ECEFF2 100%
);
}


.safety-box{
    display:block;
    padding-top:clamp(4rem,8vw,7rem);
    padding-bottom:clamp(4rem,8vw,7rem);
    
}

.safety-box + .safety-box{
    border-top:1px solid #e8e8e8;
}

.safety-ttl{
    text-align: center;
}

.safety-ttl p{
    display: inline-block;
    text-align: center;
    font-size: clamp(1.4rem, 0.8vw + 0.4rem, 1.8rem);
    font-weight: 600;
    color: #005c2e;
    line-height: 1.8;
    letter-spacing: .08em;
    position: relative;
    padding-bottom: 16px;
}

.safety-ttl p::after{
    content: "";
    position: absolute;
    left: 50%;
    bottom: 0;
    transform: translateX(-50%);
    width: 60px;
    height: 2px;
    background: #eff0f2;
}

.safety-img{
    margin:0 auto 3rem;
    max-width:800px;
}

.safety-img img{
    width:100%;
    aspect-ratio:16/9;
    object-fit:cover;
}

.safety-text{
    max-width:800px;
    margin:0 auto;
}

.safety-text p{
    line-height:2.1;
}


.safety-imgbox{
    max-width: 980px;
    margin: 4rem auto 0;
}

.safety-imgbox ul{
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 16px;
}

.safety-imgbox li{
    overflow:hidden;
}

.safety-imgbox img{
    width:100%;
    aspect-ratio:4/3;
    object-fit:cover;
    display:block;
}
.imgbox-ttl {
    position: relative;
    margin-top: 2.5rem;
    margin-bottom: 1.5rem;
    font-size: clamp(1.0625rem, 0.95rem + 0.3vw, 1.125rem);
    line-height: 1.6;
    font-weight: 600;
    color: #005c2e;
    padding-bottom: 1rem;
}
.imgbox-ttl::after {
    content: "";
    position: absolute;
    left: 0;
    bottom: 0;
    width: 50px;
    height: 2px;
    background: #005c2e;
}

/*business==========================================*/

.business-introduction{
    padding-top: clamp(1rem, 5vw, 5rem);
    padding-bottom:clamp(4rem,8vw,7rem);
}

.business-introduction_txt{
    margin-bottom:80px;
    max-width:1000px;
    margin:0 auto;
}

.business-introduction_txt .ttl{
    position: relative;
    padding-bottom: 2.8rem;
    margin-bottom: 2.8rem;
    font-size: clamp(1.5rem, 0.7vw + 0.7rem, 1.9rem);
    line-height: 1.5;
    letter-spacing:.08em;
    color: #005c2e;
    font-weight: 600;
    text-align:center;
}

.business-introduction_txt .ttl{
    position: relative;
    padding-bottom: 2rem;
    margin-bottom: 5rem;
    font-size: clamp(1.5rem, 0.7vw + 0.7rem, 1.9rem);
    line-height: 1.5;
    letter-spacing: .08em;
    color: #005c2e;
    font-weight: 600;
    text-align: center;
}

.business-introduction_txt .ttl::after{
    content:"";
    position:absolute;
    left:50%;
    bottom:0;
    transform:translateX(-50%);
    width:45px;
    height:3px;
    background:#005c2e;
}


.business-introduction_txt p{
  line-height:2;
}
.business-introduction_txt p:first-of-type{
    position: relative;
    padding-top: 3rem;
}

.business-introduction_txt p:first-of-type::before{
    content:"";
    position:absolute;
    left:50%;
    top:0;
    transform:translateX(-50%);
    width:min(700px,90%);
    height:1px;
    background:#e5e7ea;
}


.business-slider{
    position: relative;
    overflow:hidden;
    padding: 3.5rem 0 1rem;
    background: #005c2e;
}
.business-slider-wrap{
    position:relative;
}

.business-slider-wrap .business-eng{
    position: absolute;
    right: 4%;
    bottom: 100%;      
    transform: translateY(35%); 
    z-index: 10;
    font-family: 'EB Garamond', serif;
    font-size: clamp(4rem, 5.5vw, 6rem);
    font-weight: 500;
    line-height: 1;
    pointer-events: none;
}

.business-slider .swiper-wrapper{
    transition-timing-function: linear !important;
}

.business-slider .swiper-slide{
    width: 330px !important;
}

.business-slider .swiper-slide img{
    width: 100%;
    max-width: 330px;
    aspect-ratio: 449 / 337;
    object-fit: cover;
}




.business-detail,.business-sec{
    padding-top:clamp(3.5rem, 6vw, 7rem);
    padding-bottom:clamp(3.5rem, 6vw, 7rem);
}


.business-gray{
    background: linear-gradient(
    135deg,
    #F8F9F9 0%,
    #F3F5F6 50%,
    #ECEFF2 100%
);
}

.business-wrap{
    position: relative;
    z-index: 2;
    display: grid;
    grid-template-columns: 1.1fr 1fr;
    gap: clamp(50px, 6vw, 90px);
    align-items: center;
}

.business-cp{
    font-size: clamp(1.5rem, 0.7vw + 0.7rem, 1.9rem);
    font-weight:700;
    color: #005c2e;
    line-height:1.6;
    margin-bottom:1.4rem;
}
.business-content h3{
    font-size: clamp(1.6rem, 2.3vw, 2.4rem);
    font-weight:700;
    margin-bottom:2rem;
}
.business-text{
    line-height:2.1;
    color:#666;
    max-width:34em;
    margin-bottom:3rem;
}

.business-photo{
    position:relative;
    display:inline-block;
    margin: 0 auto;
}

.business-label{
    position:absolute;
    left:-55px;
    top:0;
    height:100%;
    display:flex;
    flex-direction:column;  
    align-items:center;
}
.business-label::after{
    content:"";
    width:1px;
    height:10em;
    background:#bdbdbd;
    margin-top:24px;
}
.business-stitle{
    writing-mode: vertical-rl;
    text-orientation: mixed;
    font-family:'EB Garamond', serif;
    font-size:1.3rem;
    letter-spacing:.25em;
    font-weight:500;
    color:#333;
    white-space:nowrap;
}

.business-sec.reverse .business-label{
    left:auto;
    right:-55px;
}
.business-gallery{
    width:min(1100px,90%);
    margin:4rem auto 0;
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:20px;
}
.business-gallery li{
    overflow:hidden;
    background:#fff;
}
.business-gallery img{
    width:100%;
    aspect-ratio:4/3;
    object-fit:cover;
}



/*works==========================================*/

.works{
    padding: clamp(1.5rem, 5vw + 0.5rem, 8.75rem) 0;
    background-image:
        linear-gradient(135deg, rgba(255,255,255,.45), rgba(255,255,255,0)),
        linear-gradient(rgba(190,200,212,.12) 1px, transparent 1px),
        linear-gradient(90deg, rgba(190,200,212,.12) 1px, transparent 1px),
        linear-gradient(rgba(190,200,212,.22) 1px, transparent 1px),
        linear-gradient(90deg, rgba(190,200,212,.22) 1px, transparent 1px);

    background-size:
        auto,
        16px 16px,
        16px 16px,
        80px 80px,
        80px 80px;
}

.works-list{ 
    display:grid; 
    grid-template-columns:repeat(3,1fr); 
    gap:40px 30px; 
}

.works-item{
    position: relative;
    padding: 0 15px 30px;
    border-bottom: 1px solid #d5d9dd;
}

.line{
    position:absolute;
    left:0;
    bottom:-1px;              
    width:100%;
    height:2px;
    background:#005c2e;
    transform:scaleX(0);
    transform-origin:left;   
    transition:transform .45s cubic-bezier(.22,1,.36,1);
    pointer-events:none;
}

.works-item:hover .line{
    transform:scaleX(1);
}

.works-item:not(:nth-child(3n))::after{
    content:"";
    position:absolute;
    top:0;
    right:-15px;      
    width:1px;
    height:100%;
    background:#d5d9dd;
}
.works-item a{
    display:block;
    text-decoration:none;
    color:inherit;
    
}

.works-img{
    max-width:430px;
    margin:0 auto;
    overflow:hidden;
    aspect-ratio:4/3;
    background:#f5f5f5;
}

.works-img img{
    width:100%;
    height:100%;
    object-fit:cover;
    transition:.8s cubic-bezier(.22,1,.36,1);
}

.works-item:hover img{
    transform:scale(1.08);
}

.works-text{
    margin-top:16px;
}

.works-text h3{
    font-size: clamp(0.9375rem, 0.9rem + 0.2vw, 1.0625rem);
    font-weight:500;
    position:relative;
    padding-bottom:12px;
    margin-bottom:12px;
}
.works-text span{
    font-size:.9rem;
    font-weight:500;
}


.works-more {
    display: none;
    grid-column: 1 / -1;
    width: 320px;
    height: 60px;
    margin: 40px auto 0;
    padding: 0;
    background: #164b7a;
    color: #fff;
    font-size: 16px;
    font-weight: 700;
    text-align: center;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    transition: .3s;
}


.works-more span {
    pointer-events: none;
}

.works-more-icon {
    display: inline-block;
    margin-left: 18px;
    font-size: 20px;
    font-weight: 400;
    line-height: 1;
}

.const-history{
    padding-top:clamp(4rem,8vw,7rem);
    padding-bottom:clamp(4rem,8vw,7rem);
}
.conhis{
    max-width: 1100px;
    padding-bottom:clamp(4rem,8vw,7rem);
}


.conhis details{
    border:1px solid #d9dde2;
    margin:1.6rem auto;
    background:#fff;
}

.conhis summary{
    position:relative;
    padding: .8rem 5.5rem .8rem 2rem;
    font-size: clamp(1.0625rem, 0.95rem + 0.3vw, 1.125rem);
    font-weight:700;
    color:#203B57;
    cursor:pointer;
    list-style:none;
    background:#f5f7f8;
    transition:.3s;
}

.conhis summary:hover{
    background:#eef3f5;
}

.conhis summary::-webkit-details-marker{
    display:none;
}


.conhis summary::after{
    content:"+";
    position:absolute;
    top:50%;
    right:2rem;
    transform:translateY(-50%);
    width:2.8rem;
    height:2.8rem;
    border-radius:50%;
    display:flex;
    align-items:center;
    justify-content:center;
    color:#005c2e;
    font-size:2rem;
    font-weight:400;
    background:#fff;
}

.conhis details[open] summary::after{
    content:"−";
}

.conhis-close {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 2.8rem;
    height: 2.8rem;
    margin: .5rem 2rem .5rem auto;
    border: 0;
    border-radius: 50%;
    background: #eef3f5;
    color: #005c2e;
    font-size: 2rem;
    font-weight: 400;
    line-height: 1;
    cursor: pointer;
    transition: .3s;
}

.conhis-close:hover {
    background: #fff;
}

.conhis-table{
    width:100%;
    border-collapse:collapse;
}

.conhis-table th{
    background:#eee;
    color:#203B57;
    font-weight:600;
    padding:.5rem;
    border:1px solid #e3e6ea;
}

.conhis-table td{
    padding:.6rem;
    border:1px solid #e9ecef;
}

.conhis-table td a{
    text-decoration: underline;
}
.conhis-table tbody tr:nth-child(even){
    background:#fafbfc;
}
/*.conhis-table tbody tr:last-child td{
    border-bottom:none;
}*/

.conhis-table th:first-child,
.conhis-table td:first-child{
    width:180px;
    /*text-align:center;*/
    white-space:nowrap;
}

.conhis-table th:last-child,
.conhis-table td:last-child{
    width:300px;
    text-align:center;
}



/*detail==========================================*/
.detail{
    padding-top: clamp(4rem, 8vw, 5rem);
    padding-bottom:clamp(4rem,8vw,7rem);
}

.works-head{
    margin-bottom:clamp(2.5rem,5vw,4rem);
}

.works-en{
    display:inline-block;
    position:relative;
    padding-left:60px;
    color:#005c2e;
    font-size:1.2rem;
    font-weight:600;
    letter-spacing:.25em;
    font-family: 'EB Garamond', serif;
}

.works-en::before{
    content:"";
    position:absolute;
    left:0;
    top:50%;
    width:45px;
    height:1px;
    background:#005c2e;
}

.works-head h2{
    margin-top:1rem;
    padding-bottom:1.2rem;
    border-bottom:1px solid #d9dde2;
    font-size: clamp(1.5rem, 0.7vw + 0.7rem, 1.9rem);
    font-weight:600;
    line-height:1.4;
    letter-spacing:.03em;
    text-align: center;
}
.works-head span{
    font-size:.9rem;
    font-weight:500;
}

.works-gallery{
    max-width:900px;
    margin:auto;
}

.works-view{
    display:flex;
    justify-content:center;
    align-items:flex-start;
    gap:24px;
}

.works-main{
    flex:1;
    max-width:500px;
    background:#f5f5f5;
}

.works-main img{
    width:100%;
    display:block;
}

.works-thumb{
    width:110px;
    display:flex;
    flex-direction:column;
    gap:14px;
}

.thumb{
    padding:0;
    border:none;
    background:none;
    cursor:pointer;
}

.thumb img{
    width:100%;
    aspect-ratio:4/3;
    object-fit:cover;
}

.thumb:hover img{
    opacity:.8;
}

.thumb.is-active img{
    outline:3px solid #005c2e;
}

.works-pager{
    display:grid;
    grid-template-columns:1fr auto 1fr;
    align-items:center;
    gap:20px;
    margin-top:5rem;
    padding-top:2.5rem;
    border-top:1px solid #d9dde2;
}

.pager-prev{
    text-align:left;
}

.pager-center{
    text-align:center;
}

.pager-next{
    text-align:right;
}

.works-pager a{
    display:inline-flex;
    align-items:center;
    gap:.4rem;
    color:#203B57;
    text-decoration:none;
    transition:.3s;
}

.works-pager a:hover{
    color:#005c2e;
}

.pager-list{
    padding:.8rem 2rem;
    border:1px solid #203B57;
    font-size:.95rem;
}

.pager-list:hover{
    background:#d9dde2;
    color:#fff;
}



/*subcontractor==========================================*/


.subcontractor-box{
    margin: 4.5em auto 4em;
}

.subcontractor-con{
    padding: clamp(4rem, 8vw, 7rem)0;
    background: linear-gradient(135deg, #F8F9F9 0%, #F3F5F6 50%, #ECEFF2 100%);
}

.subcontractor-ttl{
    position:relative;
    margin-bottom:2em;
    font-size: clamp(1.4rem, 0.8vw + 0.4rem, 1.8rem);
    line-height: 1.6;
    font-weight:600;
    color:#005c2e;
    padding-bottom:1rem;
}

.subcontractor-ttl::after{
    content:"";
    position:absolute;
    left:0;
    bottom:0;
    width:50px;
    height:2px;
    background:#005c2e;
}

.news-con_1 {
    max-width: 800px;
    width: 100%;
    margin: 3.5em auto 2em;
    display: flex;
    gap: 80px;
    box-sizing: border-box;
    justify-content: center;
}

.ir-box_1 {
    width: 100%;
}

.subcontractor-list{
    display:grid;
    grid-template-columns:repeat(2,1fr);
    gap:30px;
    margin: 7em auto 1em;
}
.subcontractor-list_1{
    display:grid;
    grid-template-columns:repeat(2,1fr);
    gap:30px;
    margin: 0 auto;
}

.subcontractor-item{
    text-align:center;
}

.subcontractor-item img{
    display:block;
    width:100%;
    max-width:400px;
    margin:0 auto 16px;
}

.link-btn-wrap{
    display: flex;
    flex-direction: row;
    gap: 20px;
}

.link-btn_g{
    flex: 1;
    margin: 0;
    min-width: 0;
}
.link-btn-wrap .link-btn_g:only-child{
    flex: 0 1 550px;  
}
.link-btn_g a{
    position: relative;
    display: inline-flex;
    align-items: center;
    width: 100%;
    justify-content: center;
    margin: 2em auto;
    padding: 1.2em 3.5em 1.2em 1.8em;
    border: 1px solid #005c2e;
    color: #005c2e;
    text-decoration: none;
    overflow: hidden;
    transition: color .35s;
    z-index: 1;
}

.link-btn_g a::before{
    content: "";
    position: absolute;
    inset: 0;
    width: 0;
    background: #005c2e;
    transition: width .35s ease;
    z-index: -1;
}

.link-btn_g a::after{
    content: "";
    position: absolute;
    right: 24px;
    top: 50%;
    width: 10px;
    height: 10px;
    border-top: 2px solid currentColor;
    border-right: 2px solid currentColor;
    transform: translateY(-50%) rotate(45deg);
    transition: .35s;
}

.link-btn_g a:hover{
    color:#fff;
}

.link-btn_g a:hover::before{
    width:100%;
}
.link-btn_g a:hover::after{
    transform: translateY(-50%) translateX(4px) rotate(45deg);
}


.how-text{
    margin: 3em auto;
    padding: 1em 2em;
    background: #fff;
    max-width: 1100px;
    width: 100%;
}
.how-img2{
    display:grid;
    grid-template-columns:repeat(2,1fr);
    gap:30px;
    margin: 7em auto 1em;
}
.how-img3{
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:30px;
    margin: 7em auto 1em;
}
.how-item{
    text-align:center;
}

.how-item img{
    display:block;
    width:100%;
    max-width:500px;
    margin:0 auto 16px;
}



.section-title_img .jp{
    display:flex;
    align-items:center;
    gap:20px;
}

.section-title_img .jp::after{
    content:"";
    flex:1;
    height:1px;
    background:#d5d9dd;
}

.jp-text{
    display:inline-flex;
    align-items:center;
    gap:.3em;
    flex-shrink:1;
    min-width:0;
}

.page-back {
    margin: 3em auto;
    text-align: center;
}

.pageback-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: .8rem;
    min-width: 220px;
    padding: .3rem 3rem;
    border: 1px solid #005c2e;
    color: #005c2e;
    font-weight: 500;
    cursor: pointer;
    transition: .35s;
}

.pageback-btn span {
    font-size: 1.8rem;
    transition: .35s;
}

.pageback-btn:hover {
    background: #005c2e;
    color: #fff;
}

.pageback-btn:hover{
    background:#005c2e;
    color:#fff;
}

.pageback-btn:hover span{
    transform:translateX(-4px);
}

/*recruit==========================================*/

.recruit-message {
    position: relative;
    display: flex;
    align-items: stretch; 
}


.message-left {
    width: 58%;
    padding: 9em 0 5em;
}

.message-left .inner{
    max-width:840px;
    margin-left:auto;
    margin-right:0;
    padding-left:60px;
    padding-right:60px;
}

.message-photo img{
    width:100%;
    aspect-ratio: 16 / 9;
    object-fit:cover;
    transform:scale(1.03);
}

.message-copy{
    margin-top:5em;
    line-height:1;
}

.message-copy .main{
    display:inline-block;
    font-size:clamp(4.8rem,7vw,7rem);
    font-weight:600;
    letter-spacing:.02em;
}

.message-copy .sub{
    display:inline-block;
    font-size:clamp(1.7rem,2vw,2.3rem);
    margin-left:.35em;
    font-weight:400;
}

.message-copy .line2{
    display:block;
    margin-top: clamp(2rem, 3vw, 3.5rem);
    margin-left:3rem;  
}

.message-copy .line2 .main{
    color:#0047AB;
    font-weight:600;
}


.message-text{
    margin-top:5em;
    line-height:2.2;

}

.message-right {
    width: 42%;
    display: flex;
    flex-direction: column;
    padding-top: 10em;
}


.message-title-group {
    position: relative;
    padding-left: 2em;   
    margin-bottom: 3em;   
}

.message-en {
    display: block;
    font-size: clamp(4rem, 5.5vw, 5.5rem);
    line-height: 1;
    font-weight: 400;
    font-family: 'EB Garamond', serif;
    margin-top: 1em;
}

.message-sub {
    font-size: 1.3rem;
    letter-spacing: .15em;
    text-transform: uppercase;
    font-family: 'EB Garamond', serif;
    margin-top: 0.5rem;
    margin-left: 1em;
    color: #005c2e;
}

.message-bg {
    position: relative;
    width: 100%;
    flex-grow: 1;          
    display: flex;
    align-items: flex-end;   
}


.message-bg img {
    width: 100%;
    height: 100%;
    max-height: 900px;     
    object-fit: cover;
    object-position: bottom; 
    display: block;
}


.recruit-visual {
    position: relative;
    width: 100%;
    height: clamp(300px, 45vw, 620px);
    overflow: hidden;
    margin-top: 3em;
}

.recruit-flow {
    position: absolute;
    z-index: 2;
    top: 35px;
    left: 0;
    width: 100%;
    overflow: hidden;
    white-space: nowrap;
    pointer-events: none;
}

.recruit-flow-inner {
    display: flex;
    width: max-content;
    animation: recruitFlow 100s linear infinite;
    will-change: transform;
}

.recruit-flow-inner span {
    flex-shrink: 0;
    display: block;
    font-family: 'EB Garamond', serif;
    font-size: clamp(3rem, 7vw, 7rem);
    font-weight: 400;
    line-height: 1;
    letter-spacing: -.04em;
    color: #e2e5e8;
    margin-right: 70px;
}
.recruit-flow-inner span:nth-child(1) {
    padding-left: 0;
}


@keyframes recruitFlow {
    0% {
        transform: translate3d(0, 0, 0);
    }
    100% {
        transform: translate3d(-50%, 0, 0);
    }
}


.recruit-photos {
    position: absolute;
    z-index: 1;
    top: 110px;
    right: 0;
    width: 68%;
    height: 450px;
}

.recruit-photo {
    position: absolute;
    overflow: hidden;
}

.recruit-photo img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;

}

.recruit-photo01,
.recruit-photo02 {
    width: 48%;
}

.recruit-photo01 {
    left: 0;
    top: 35px;
}

.recruit-photo02 {
    right: 0;
    top: 0;
}

.schedule {
    padding-top: clamp(1rem, 5vw, 5rem);
    padding-bottom: clamp(4rem, 8vw, 7rem);
}


.schedule-con{
    padding-top: clamp(2rem, 4vw, 3.5rem);
    padding-bottom: clamp(2rem, 4vw, 3.5rem);
    overflow: hidden;
    position: relative;
}

.schedule-con:after {
    content: "";
    position: absolute;
    top: 1em;
    left: 0;
    right: 0;
    bottom: 0;
    width: 85%;
    z-index: -1;
    background: linear-gradient(135deg, #F8F9F9 0%, #F3F5F6 50%, #ECEFF2 100%);
}
.schedule-con:nth-child(2):after {
    left: auto;
    right: 0;
}

.schedule-con h4.schedule-ttl{
    text-align: center;
    font-size: clamp(1.4rem, 0.8vw + 0.4rem, 1.8rem);
    font-weight: 600;
    line-height: 1.8;
    letter-spacing: .08em;
    position: relative;
    padding-bottom: 16px;
}
.schedule-con h4.schedule-ttl::after {
    content: "";
    position: absolute;
    left: 50%;
    bottom: 0;
    transform: translateX(-50%);
    width: 60px;
    height: 2px;
    background: #eff0f2;
}


.schedule-img {
    margin: 2rem auto 3rem;
    max-width: 800px;
    width: 90%;
}

.schedule-text{
    max-width: 800px;
    width: 90%;
    margin: 0 auto;
}

.schedule-list {
    position: relative;
    max-width: 1000px;
    width:90%;
    margin: 1rem auto;
    background: #fff;
    padding-top: 5%;
    border: 1px solid #d5dcd9;
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.05);
}


.schedule-list::before {
    content: "";
    position: absolute;
    top: 12px;
    bottom: 15px;
    left: 140px;
    width: 1px;
    background: #d5dcd9;
}



.schedule-item {
    position: relative;
    display: grid;
    grid-template-columns: 115px 60px 1fr;
    min-height: 145px;
}



.schedule-time {
    padding-top: 0;
    text-align: right;
    font-size: clamp(1.3rem, 1vw + 0.5rem, 2.2rem);
    font-weight: 600;
    line-height: 1;
    letter-spacing: -.02em;
    color: #164b7a;
}

.schedule-marker {
    position: relative;
    z-index: 2;
    margin-top: 5px;
    display: flex;
    justify-content: center;
    align-items: flex-start;
}


.schedule-marker span {
    display: block;
    width: 0;
    height: 0;
    margin-top: 1px;
    border-top: 7px solid transparent;
    border-bottom: 7px solid transparent;
    border-left: 10px solid #0047AB;
}


.schedule-content {
    padding: 0 0 45px 18px;
}


.schedule-content h3 {
    margin: -3px 0 12px;
    font-size: clamp(1.4rem, 0.8vw + 0.4rem, 1.8rem);
    font-weight: 600;
    line-height: 1.4;
    letter-spacing: .02em;
    color: #0047AB;
}


.schedule-content p {
    max-width: 800px;
    width:90%;
    margin: 0 0 10px;
    line-height: 1.9;
}

.environment {
    padding-top: clamp(1rem, 5vw, 5rem);
    padding-bottom: clamp(4rem, 8vw, 7rem);
}
.environmentblock{
    width:100%;
}

.environment-column{
    display:flex;
    justify-content:space-between;
    align-items:center;
    min-height:450px;
    border-top:1px solid #ddd;
    gap: clamp(24px, 3vw, 45px);
}
.environment-column:first-child{
    border-top:none;
}

.environment-img{
    width: clamp(200px, 16vw, 280px);
}

.environment-img img{
    width: 100%;
    height: 100%;
    aspect-ratio: 4 / 5;
    object-fit: cover;
    transform: scale(1.02);
}


.environment-box{
    flex:1;
    margin-left:30px;
}


.environment-head{
    font-size: clamp(1.4rem, 0.8vw + 0.4rem, 1.8rem);
    line-height:1.4;
    font-weight:bold;
    letter-spacing:.08em;
    margin-bottom:1rem;
    font-family:
  'Noto Serif JP', "游明朝", "Yu Mincho", YuMincho,
  "ヒラギノ明朝 ProN W6", "HiraMinProN-W6",
  "HGS明朝E", "ＭＳ Ｐ明朝", "MS PMincho", "MS 明朝", serif;
}

.environment-sub {
    color: #005c2e;;
    margin-bottom: 30px;
    font-size: 1.05rem;
    font-weight: 600;
    letter-spacing: .1em;
    position: relative;
}


.environment-sub::after {
    content: "";
    display: block;
    width: 40px;
    height: 1px;
    background: #005c2e;
    opacity:.25;
    margin-top: 15px;
}

.environment-text {
    font-size: 1rem;
    line-height: 2;
    max-width: 800px;
}

.recruit-data{
    position: relative;
    padding: clamp(70px, 9vw, 140px) 0;
    background:#fff;
    overflow:hidden;
}

.recruit-data::before{
    content:"";
    position:absolute;
    inset:0;
    background-image: linear-gradient(135deg, rgba(255, 255, 255, .45), rgba(255, 255, 255, 0)), linear-gradient(rgba(190, 200, 212, .12) 1px, transparent 1px), linear-gradient(90deg, rgba(190, 200, 212, .12) 1px, transparent 1px), linear-gradient(rgba(190, 200, 212, .22) 1px, transparent 1px), linear-gradient(90deg, rgba(190, 200, 212, .22) 1px, transparent 1px);
    background-size: auto, 16px 16px, 16px 16px, 80px 80px, 80px 80px;
    pointer-events:none;
}

.recruit-data::after{
    content:"";
    position:absolute;
    top:-120px;
    right:-120px;
    width:500px;
    height:500px;
    border:1px solid rgba(0,92,46,.06);
    border-radius:50%;
    box-shadow:
        0 0 0 80px rgba(0,92,46,.03),
        0 0 0 160px rgba(0,92,46,.02);
    pointer-events:none;
}

.recruit-data .inner{
    position:relative;
    z-index:1;
}

.data-grid{
    display:grid;
    grid-template-columns:repeat(3, minmax(0, 1fr));
    gap:10px;
}

.data-card{
    width:100%;
    box-sizing:border-box;
    background:#fff;
    border:1px solid #005c2e;
    padding:40px 10px;
    text-align:center;
    box-shadow:0 8px 24px rgba(0,0,0,.04);
}


.data-card .icon{
    height:140px;
    display:flex;
    align-items:center;
    justify-content:center;
    margin-bottom:20px;
}

.data-card .icon img{
    max-width:130px;
    max-height:130px;
    width:auto;
    height:auto;
}


.data-body{
    position: relative;
    box-sizing:border-box;
    height:280px;
    display:flex;
    align-items:center;
    justify-content:center;
    padding-top: 20%;
}

.data-body .data-title{
    position:absolute;
    top:20px;
    left:15px;
    right:15px;
    margin:0;
    padding:1% 0;
    background: #005c2e;
    color:#fff;
    font-size: clamp(1.2rem, 0.8vw + 1rem, 1.25rem);
    font-weight:500;
    letter-spacing:.08em;
    line-height:1.4;
    text-align:center;
}
.data-body .data-title::after{
    display:none;
}

.data-body .num{
    margin:0;
    color:#005c2e;
    font-size:clamp(3.8rem,5vw,5rem);
    line-height:1;
    font-weight:700;
    font-family:'EB Garamond', serif;
    
}

.data-body .num span.sub{
    font-size:.42em;
    color:#222;
}


.data-card > small{
    display:block;
    margin-top:5px;
    font-size:.9rem;
    letter-spacing:.08em;
    line-height:1.8;
}


.data-chart{
    position:relative;
    box-sizing:border-box;
    height:280px;
    display:flex;
    align-items:center;
    justify-content:center;
    padding-top: 20%;
}


.data-chart .data-title{
    position:absolute;
    top:20px;
    left:15px;
    right:15px;
    margin:0;
    padding:1% 0;
    background: #005c2e;
    color:#fff;
    font-size: clamp(1.2rem, 0.8vw + 1rem, 1.25rem);
    font-weight:500;
    letter-spacing:.08em;
    line-height:1.4;
    text-align:center;
}


.data-chart .data-title::after{
    display:none;
}



.gender-chart{
    position:relative;
    display:flex;
    align-items:center;
    justify-content:center;
    width:100%;
    max-width:430px;
    margin:0 auto;
}



.donut{
    position:relative;
    width:170px;
    height:170px;
    flex-shrink:0;
}

.donut svg{
    display:block;
    width:100%;
    height:100%;
    transform:rotate(-90deg);
}



.donut-bg{
    fill:none;
    stroke:#f5f5f5;
    stroke-width:32;
}

.donut-women{
    fill:none;
    stroke:#EAAC95;;
    stroke-width:32;
    stroke-dasharray:439.8;
    stroke-dashoffset:439.8;
    stroke-linecap:butt;
    transition:
        stroke-dashoffset 1.2s ease-out;
}

.donut-men{
    fill:none;
    stroke:#006fbd;
    stroke-width:32;
    stroke-dasharray:439.8;
    stroke-dashoffset:439.8;
    stroke-linecap:butt;
    transition:
        stroke-dashoffset 1.2s ease-out .25s;
}


.donut-center{
    position:absolute;
    inset:0;
    display:flex;
    align-items:center;
    justify-content:center;
    color:#222;
    font-size:20px;
    font-weight:500;
    font-family:'EB Garamond', serif;
}

.donut-center span{
    font-size:32px;
    margin-right:2px;
}


.gender-label{
    position:relative;
    width:95px;
    flex-shrink:0;
}

.gender-label span{
    display:block;
    margin-bottom:3px;
    font-weight: 500;
    letter-spacing:.05em;
}

.gender-label strong{
    display:block;
    font-family:'EB Garamond', serif;
    font-size:48px;
    line-height:1;
}

.gender-label strong small{
    font-family:inherit;
    font-size:16px;
    margin-left:3px;
}


.gender-women strong{
    color:#df744c;
}


.gender-men strong{
    color:#006fbd;
}


.gender-chart.is-active .donut-men{
    stroke-dasharray:316.66 439.8;
    stroke-dashoffset:0;
}

.gender-chart.is-active .donut-women{
    stroke-dasharray:123.14 439.8;
    stroke-dashoffset:-316.66;
}


.count-up{
    display:inline-block;
    
}



.recruit-outline{
    padding: clamp(5rem, 8vw, 8.75rem) 0px;
}

.recruit-tab{
    display:flex;
    justify-content:center;
    gap:16px;
    margin:clamp(4rem,5vw,6rem) 0;
}

.tab-btn{
    flex:1;
    max-width:280px;
    padding:20px;
    border:2px solid #005c2e;
    color:#005c2e;
    font-size:1.2rem;
    font-weight:600;
    transition:.3s;
}

.tab-btn:hover{
    border-color:#005c2e;
    color:#005c2e;
}

.tab-btn.is-active{
    background:#005c2e;
    color:#fff;
}

.tab-content{
    display:none;
}

.tab-content.is-active{
    display:block;
}

@keyframes fade{

    from{
        opacity:0;
        transform:translateY(8px);
    }

    to{
        opacity:1;
        transform:translateY(0);
    }

}

.outline-table{
    max-width: 1200px;
    margin: 2em auto 4.5em;
    width:100%;
    border-collapse:collapse;
    border: 1px solid #eaebef;
    border-top:4px solid #005c2e;
}

.outline-table tr{
    border-bottom:1px solid #ddd;
}

.outline-table th,
.outline-table td{
    padding:24px 30px;
    vertical-align:top;
    line-height:1.9;
}

.outline-table th{
    width:220px;
    background:#ececec;
    font-weight:600;
    text-align:left;
    white-space:nowrap;
}

.recruit-outline .link-btn {
    border: 3px solid #005c2e; 
}




/*privacy==========================================*/

.privacy h2{
    margin-bottom: clamp(4rem, 6vw, 5rem);
    text-align: center;
    font-size: 1.7rem;
    font-weight:700;
}

.policy-box{
    max-width: 1200px;
    margin: 0 auto 4.5rem;
    padding-bottom: 3.5rem;
    border-bottom: 1px solid #e9ecef;
}

.policy-box:last-child{
    margin-bottom: 0;
    border-bottom: none;
}

.policy-ttl{
    position:relative;
    margin-bottom:2rem;
    font-size: clamp(1.4rem, 0.8vw + 0.4rem, 1.8rem);
    line-height: 1.6;
    font-weight:600;
    color:#005c2e;
    padding-bottom:1rem;
}

.policy-ttl::after{
    content:"";
    position:absolute;
    left:0;
    bottom:0;
    width:50px;
    height:2px;
    background:#005c2e;
}

.policy-subttl{
    margin: 2.8rem 0 1.2rem;
    font-size: 1.1rem;
    font-weight: 600;
}

.norm-text p{
    margin-bottom: 1.5rem;
    color: #555;
}
.list-title{
    margin: 2rem 0 .8rem;
    color: #005c2e;
    font-weight: 700;
}
.norm-text ul{
    margin: 2rem 0 .8rem;
    font-weight: 700;
    color: #005c2e;
}

.norm-text li{
    list-style: disc;
    margin-left: 1.8em;
    color: #555;
}




/* @contact
----------------------------------------------------------*/
.contact-form{
    padding-top: 5em;
}
.contact-form h2.lead-ttl{
    margin-top: 3em;
}
.form-content{
    padding: 2% 2% 5%;
    margin-bottom: 5em;
}

#mfp_hidden,
#mfp_phase_confirm .confirm-hidden {
  display: none;
}
.mfp_err {
  color: #BC1A1A;
}

/* form  */
.form-tbl {
  margin: 1em 0;
}
.form-tbl .row {
  padding: 1.2em 0;
  border-bottom: 1px solid #f5f0e6;
}
.form-tbl .row > * {
  padding-top: 0.5em;
  padding-bottom: 0.5em;
  padding-left: 3em;
  padding-right: 0;
}
.form-tbl .row dt {
  position: relative;
  width: 17em;
  padding-left: 0.5em;
  padding-right: 4em;
  font-weight: bold;
}
.form-tbl dt .req {
  display: inline-block;
  position: absolute;
  top: 1.3em;
  right: 2em;
  margin-left: 1em;
  padding: 0.25em 0.5em;
  color: #fff;
  font-size: .6875rem;
  font-style: normal;
  font-weight: bold;
  line-height: 1;
  background: #E60012;
}
.form-tbl .row dd {
  -webkit-box-flex: 1;
  flex: 1;
  padding-left: 2em;
}
.form-tbl .form-note {
  margin: .85em 0;
  font-size: .85em;
}
.form-tbl .input-radio label {
  display: inline-block;
}

.form-apply {
  margin-bottom: 1em;
}
.form-apply p {
  margin: 0 0 .5em;
}

/* @form-policy */
.form-policy {
  width:80%;
  margin: 3em auto 2em;
  padding: 1.75em 2.5em;
  height: 200px;
  overflow-y: auto;
  font-size: .875rem;
  border: 1px solid #ddd;
  background: #fff;
}
.form-policy-ttl {
  margin-bottom: 1em;
  font-size: 1.125rem;
}
.form-policy .ttl {
  font-weight: bold;
  font-size: 1.125em;
}

.form-policy-msg {
  width: 80%;
  margin: 2em auto 0;
  padding: 1.5em 2em;
  text-align: center;
  font-size: .875rem;
  background: #ECEFF2;
}
.form-policy-msg .check {
  display: block;
  margin-top: .75em;
  font-size: 1rem;
}

/* @form-btn */
.form-submit {
  margin-top: 2.5em;
  text-align: center;
}
.form-submit br {
  display: none;
}
.submit-btn,
#mfp_button_send,
#mfp_button_cancel {
  min-width: 260px;
  display: inline-block;
  padding: 1em 2em;
  color: #333;
  font-weight: bold;
  border: 1px solid #005c2e;
  -webkit-transition:all .6s; transition:all .6s;
  -webkit-appearance:none;
  cursor:pointer;
}
.submit-btn:hover,
#mfp_button_send:hover {
  opacity: .7;
}
.submit-btn[name="submit"],
#fp_button_send {
  min-width: 200px;
}

.mfp_buttons {
  display: -webkit-box;
  display: flex;
  -webkit-box-pack: justify;
  justify-content: space-between;
  -webkit-box-orient: horizontal;
  -webkit-box-direction: reverse;
  flex-direction: row-reverse;
  -webkit-box-align: start;
  align-items: flex-start;
  margin-top: 2rem;
}

#mfp_button_cancel {
  min-width: 0;
  color: #666;
  background: #f5f5f5;
}
#mfp_button_cancel:hover {
  background: #EDEDED;
}

/* @form-input */
input[type="text"],
input[type="email"],
input[type="tel"],
input[type="number"],
input[type="date"],
select,
textarea {
  margin: 4px 0;
  padding: 0.345em 1em;
  border-radius: 0;
  font-size: 16px;
  font-weight: 500;
  font-family: inherit;
  border: 1px solid #ddd;
  box-shadow: none;
  background: #fff;
}

input::placeholder,
select::placeholder,
textarea::placeholder {
  color: #b3b3b3;
  font-weight: bold;
}

input[type="text"]:focus,
input[type="email"]:focus,
input[type="tel"]:focus,
input[type="number"]:focus,
input[type="date"]:focus,
select:focus,
textarea:focus {
  border-color: #8fbbdd;
  outline: none;
}

.size-t {
  width: 15%;
}
.size-s {
  width: 30%;
}
.size-m {
  width: 70%;
}
.size-l {
  width: 100%;
}
.size-zip {
  width: 8em;
}

/* confirm */
#mfp_phase_confirm {
  margin-top: 3rem;
}
#mfp_phase_confirm_inner h4 {
  text-align: center;
}
#mfp_confirm_table {
  margin: 1em 0;
  width: 100%;
}
#mfp_confirm_table tr {
  display: -webkit-box;
  display: flex;
  padding: 1.2em 0;
  border-bottom: 1px solid #9F6744
}
#mfp_confirm_table tr > * {
  padding-top: 0.5em;
  padding-bottom: 0.5em;
  padding-left: 3em;
  padding-right: 0;
}
#mfp_confirm_table th {
  position: relative;
  width: 15.5em;
  padding-left: 0.5em;
  padding-right: 4em;
  text-align: left;
  font-weight: normal;
  border-right: 1px solid #ddd;
}
#mfp_confirm_table td {
  -webkit-box-flex: 1;
  flex: 1;
  padding-left: 2em;
}

/* thanks */
.contact-thanks{
   margin: 2em auto;
}
.thanks-box {
  max-width: 820px;
  margin: 0 auto;
  padding: 1.5em 2.5em;
  line-height: 2;
}









/* レスポンシブ
----------------------------------------------------------*/
@media screen and (max-width: 1280px) {
    
  .strength-container {
    position: relative;
    width: min(100% - 40px, 800px);
    height: 850px;
    margin: 0 auto;
}

.strength-item {
    width: min(500px, 100%);
}

.strength-item01 {
    top: 10px;
    left: 50%;
    transform: translateX(-50%);
}

.strength-item02 {
    top: 210px;
    left: 55%;
    transform: translateX(-50%);
}

.strength-item03 {
    top: 450px;
    /*left: 60%;*/
    transform: translateX(-50%);
}

.greeting-grid{
    grid-template-columns:240px 1fr;
  }

.greeting-body{
    padding:3.5em 3em;
}
    
.organization-item {
     height: 150px;
}

.organization-list::before {
    top: 75px;
    bottom: 75px;
}
.organization-en {
    bottom: -10px;
}

}

@media (min-width: 1241px) {
    .recruit-wrap {
        gap: 80px;
    }
    
    /*.recruit-card-wrap {
        flex: 0 0 550px; 
        max-width: 550px;
    }*/
}

@media screen and (max-width:1180px) {
    
.data-grid{
    grid-template-columns:repeat(2,1fr);
    gap:20px;
}
.data-body{
    height: 180px; 

}

.data-chart {
    height: 260px; 

}
    
}

@media screen and (max-width:1024px){
/* top
----------------------------------------------------------*/

.about-body{
    display:block;
    padding-top: 0;
}

.about-text{
    width:100%;
}

.about-text .inner{
    max-width:none;
    padding-left:20px;
    padding-right:20px;
}

.about-side{
    position:relative;
    width:100%;
    height:auto;
    margin-top:3rem;
}

.top-about {
    padding: 2em 0 0;  
    }   




.safety-ttl{
    margin-bottom:2rem;
}

.safety-ttl p{
    line-height:1.7;
    padding-bottom:14px;
}

.safety-ttl p::after{
    width:50px;
}

.safety-img{
    max-width:100%;
    margin:0 auto 2.5rem;
}

.safety-text{
    max-width:100%;
}

.safety-text p{
    line-height:2;
}

.safety-imgbox{
    max-width:100%;
    margin:3rem auto 0;
}

.safety-imgbox ul{
    grid-template-columns:repeat(2,1fr);
    gap:16px;
    justify-items:center;
}

.safety-imgbox li{
    width:100%;
    max-width:450px;
}
    
    
    
.business-wrap{
    grid-template-columns:1fr;
    gap:3rem;
}

.business-sec.reverse .business-wrap{
    grid-template-columns:1fr;
}

.business-content{
    order:2;
    max-width:700px;
    margin:auto;
}

.business-photo{
    order:1;
    text-align:center;
}


.business-label{
    left:0;
    top:-35px;
}


.business-gallery{
    grid-template-columns:repeat(3,1fr);
    gap:16px;
}
    


.message-left .inner{
    padding-left:40px;
    padding-right:40px;
}

.message-copy .main{
    font-size:clamp(4rem,6vw,5.5rem);
}

.message-copy .line2{
    margin-left:0;
}



.data-card{
    padding:30px 20px;
}

.data-card .icon{
    height:120px;
}

.data-card .icon img{
    max-width:110px;
    max-height:110px;
}
    


}






@media (min-width: 960px) {
    
    .recruit-wrap {
        flex-direction: row; 
        justify-content: flex-start;
        align-items: center;
        flex-wrap: nowrap; 
        gap: 60px; 
    }

    .recruit-media {
        flex: 1; 
        width: auto;
        max-width: 1100px;
        margin-left: calc(50% - 50vw); 
    }

    .recruit-slider img {
        aspect-ratio: 16 / 10;
    }

    /*.recruit-card-wrap {
        flex: 0 0 400px; 
        max-width: 400px;
    }*/
}

@media screen and (max-width:959px){
    


/*========================
FV
========================*/

.fv{
    height:auto;
    min-height:100vh;
    position:relative;
}

.slider-left{
    position:relative;
    width:100%;
    height:45vh;
}

.slider-right{
    position:relative;
    width:100%;
    height:45vh;
}


.hero-copy{
    position:absolute;
    left:10%;
    top:32%;
    z-index:10;
    
}

.hero-copy span{
    margin-bottom:10px;
    letter-spacing:.18em;
}

.hero-copy strong{
    margin-left:20px;
}
    

.fv-copy .en,
.fv-copy .jp{
    position:static;
    padding:0;
    margin:0;
    text-align:left;
}

.fv-copy .en{
    text-align: center;
    letter-spacing:.18em;
    margin-top: 25px;
}

.fv-copy .jp{
    text-align: center;
    letter-spacing:.12em;
}


/*========================
ABOUT
========================*/


.top-about .con .secttl_l{
    font-size:2rem;
    margin:0 ;
}

.about-body .lead{
    line-height: 1.6;
    margin-bottom:2em;
}

.about-body .txt{
    margin-bottom:2.5em;
}

.top-about .link{
    display:grid;
    gap:12px;
    padding-top: 0;
}

.link-btn{
    width:100%;
    margin:0;
}

/* ========================================
   top-about
======================================== */
.top-about {
    padding: 4em 0 7em;
}

.top-about .con .secttl_l {
    font-size: 2.2rem;
    padding-bottom: 1.8rem;
     margin: 1.5em auto .5em;
}

.topabout-section {
     min-height: auto;
}

.topabout-inner {
    display: block;
    max-width: none;
    min-height: auto;
}

 /* 文章 */
.topabout-intro {
    display: block;
    padding: 60px 40px;
}

.topabout-intro h3 {
    margin-bottom: 20px;
    font-size: 1.5rem;
}

.topabout-intro p {
    line-height: 2.2;
}

/* 画像 */
.history-photo {
    width: 100%;
    max-width: none;
    height: 600px;
    min-height: 600px;
}

.history-photo-img {
    width: 100%;
    height: 600px;
}

.history-photo-img img {
    object-position: 50% center;
}

.history-timeline {
    left: 10%;
}

.history-line {
    top: 155px;
     bottom: -1px;
 }

.history-item01 {
    top: 200px;
}

.history-item02 {
    top: 350px;
}

.history-item03 {
    top: 500px;
}

.history-date {
    left: 40px;
    font-size: clamp(34px, 6vw, 48px);
}
.history-badge {
    top: 40px;
    left: 2px;
    width: 85px;
    height: 85px;
}

.history-badge::before {
    inset: -13px;
    border-width: 4px;
}

.history-badge p {
    font-size: 14px;
    line-height: 1.3;
}

.history-badge span.big {
    font-size: 1.4rem;
}

/*========================
WORKS
========================*/
.top-works{
    padding-bottom:30px;
}

.top-works::before{
    width:80%;
    bottom:60px;
}
.works-slider .swiper-slide {
    width: 50%;
}

  
 .works-slider {
    margin: 50px auto 0;
}

.works-control button {
    position: relative;
    width: 4rem;
    height: 3rem;
}



    
/*========================
BUSINESS
========================*/

.top-business{
    padding-bottom:3em;
}

.business-intro{
    margin:3em 0 1.5em;
    grid-template-columns:1fr;
    gap: 30px;
}

.business-list{
    gap:20px;
    margin-bottom: 2em;
}

.business-item{
    padding:1.5em 0;
}

.business-item h3{
    font-size:18px;
}

.business-line{
    width:50%;
}

.business-en{
    font-size:.7rem;
    margin-top:-10px;
    letter-spacing:.25em;
}

.link-line{
    margin-top:0;
}  
    
    
    
  /*========================
top-recruit
========================*/  

.top-recruit{
    padding-bottom:60px;
}

.top-recruit::before{
        bottom:60px;
        background-size:
            10px 10px,
            10px 10px,
            50px 50px,
            50px 50px;
    }

.recruit-wrap {
    flex-direction: column !important;
    align-items: center;
    gap: 32px;
}

.recruit-media {
    width: 100vw;
    margin: 0 auto;
    max-width: 100%;
    overflow: hidden;
}
    
  
.recruit-card-wrap {
    width: 100%;
    max-width: 500px; 
    display: flex;
    justify-content: center;
    padding: 0 ; 
    box-sizing: border-box;
 }

.recruit-card {
    width: 100%;
    background: rgba(255,255,255,.92);
    padding: 5px 2px 30px; 
}


.recruit-copy{
    font-size:clamp(1.3rem,2vw,1.6rem);
    margin-bottom:20px;
}

.recruit-lead{
    line-height:2;
    margin-bottom:30px;
}

.recruit-card .btn-link{
    display:inline-flex;
}


   
  /*========================
top-news-ir
========================*/ 
.top-news-ir {
    padding: 1em 0 5em;
}
.news-ir{
    padding:60px 0;
}
.news-box,.ir-box{
    width: 100%;
}
.news-con{
    flex-direction:column;
    gap:40px;
    padding:5vw;
}

.news-title{
    font-size:20px;
}


.news-list a{
    padding:16px 0;
}

.date{
    font-size:12px;
}

.text{
    font-size:14px;
    line-height:1.7;
}

  /*========================
l-footer-bnr
========================*/ 
.l-footer-bnr{
    grid-template-columns:repeat(2,1fr);
    gap:2px;
  }

  .l-footer-bnr-item:nth-child(3){
    grid-column:1 / 3;
  }

  .l-footer-bnr-item{
    aspect-ratio:16 / 10;
  }

  .l-footer-bnr-item:nth-child(3){
    aspect-ratio:21 / 8;
  }

  .label{
    left:20px;
    bottom:20px;
  }


  .label-ja{
    font-size:14px;
    margin-top:10px;
  }

  .label-line{
    margin-top:16px;
    width:36px;
  }

  .arrow_1{
    right:20px;
    bottom:20px;
  }
.l-footer-bnr-item:nth-child(3){
    grid-column:1 / 3;
    aspect-ratio:3 / 1;
}


  
    
    
  /* @company
  ----------------------------------------------------------*/

.greeting-grid{
    grid-template-columns:1fr;
    grid-template-areas:
      "head"
      "img"
      "body";
  }

.greeting-head{
    display:block;
    text-align:center;
  }

.greeting-img{
    max-width:700px;
    width:100%;
    justify-self:center;
  }
.greeting-img img {
    　height: 300px;
      object-position: center top;
    }
.greeting-body{
    margin-top:0;
    padding:3em;
  }

.table dt, .table dd {
    width: 100%;
    padding: .7em 1em;
 }
.table dt {
    text-align: left;
    background: #fff;
 }
.table dd {
    border: none;
    margin-bottom: 1rem;
 }
    
.philosophy-group {
    padding: clamp(5rem, 8vw, 8.75rem) 0;
 }


.philosophy-box-con {
    width: 60%;
    padding: 0;
}
 
.philosophy-box-img {
    width: 40%;
}
  
 .organization{
    padding: 80px 0;
}
 



.organization_box {
    display: block;
    padding-top: 40px;
    padding-bottom: 60px;
}

.organization-title {
    width: 60%;
    min-height: 100px;
    margin-bottom: 30px;
    box-sizing: border-box;
}

.organization-title span {
    margin-bottom: 0;
    letter-spacing: 0.2em;
}

.organization-title h3 {
    margin: 0;
}


.organization-title::after {
    display: none;
}


.organization-list {
    padding-left: 50px;
}


.organization-list::before {
    left: 15px;
    top: -30px;
    bottom: 75px;
}


.organization-item {
    height: auto;
    min-height: 96px;
    margin-bottom: 10px;
    padding: 18px 20px 18px 25px;
}


.organization-item::after {
    left: -35px;
    top: 50%;
    width: 35px;
 }


.organization-item-inner {
    display: block;
    width: 100%;
}

.organization-item h4 {
    margin: 0 0 8px;
    letter-spacing: 0.08em;
}

.organization-item p {
    line-height: 1.8;
    letter-spacing: 0.03em;
}


.organization-en {
    right: 15px;
    bottom: 8px;
    top: auto;
    transform: none;
    font-size: 10px;
    letter-spacing: 0.18em;
}





 /* @subcontractor
----------------------------------------------------------*/ 
.news-con_1 {
    margin: 4em auto 1em;
}
    
.subcontractor-list,.subcontractor-list_1{
    grid-template-columns:repeat(2,1fr);
    gap:24px;
    margin: 1em auto 1em;
}
.how-img2,.how-img3{
    display: grid;
    grid-template-columns: 1fr;
    gap: 5px;
    margin: 5em auto 1em;
}

.link-btn-wrap .link-btn_g:only-child {
    flex: 1 1 100%;
}
.subcontractor-box .section-title .jp {
    font-size: 22px;
}
    

    
/* @recruit
----------------------------------------------------------*/

.recruit-message{
    display:block;
}

.message-left,
.message-right{
    width:100%;
}

.message-left{
    padding:5rem 0 3rem;
}

.message-left .inner{
    width:min(90%,1100px);
    margin:auto;
    padding:0;
}

.message-copy{
    margin-top:2.5rem;
    text-align:center;
}

.message-copy .main{
    font-size:clamp(3.2rem,8vw,4.6rem);
}

.message-copy .sub{
    margin:.8rem 0 0;
}

.message-copy .line2{
    margin-top:1.5rem;
    margin-left:0;
}

.message-text{
    margin-top:3rem;
}

.message-right{
    padding-top:0;
}

.message-title-group{
    padding-left:0;
    text-align:center;
    margin-bottom:2rem;
}

.message-en{
    margin-top:0;
    font-size:clamp(3rem,10vw,4.5rem);
}

.message-sub{
    margin-left:0;
}

.message-bg{
    margin-top:2rem;
}

.message-bg img{
    max-height:350px;
}


.recruit-data{
    padding:5rem 0;
}

.data-card{
    padding:35px 20px;
 }

.donut{
    width:150px;
    height:150px;
 }

.gender-label{
     width:75px;
}

.gender-label strong{
    font-size:40px;
}



.data-body{
    padding:16px;
}

.data-body .num{
    font-size:clamp(3rem,10vw,4rem);
}


    
/* @contact
----------------------------------------------------------*/
 .contact-form {
    padding-top: 1em;
}


}



@media screen and (max-width: 768px) {
    
/* @top
----------------------------------------------------------*/


 .top-about {
    padding: 1em 0 5em;
}

.top-about .con .secttl_l {
    font-size: 1.8rem;
    padding-bottom: 1.4rem;
}

.topabout-intro {
    padding: 45px 25px 0;
}

.topabout-intro h3 {
    font-size: 1.35rem;
    line-height: 1.7;
    margin-bottom: 18px;
}

.topabout-intro p {
    font-size: 14px;
    line-height: 2.1;
}

.history-photo {
    height: 300px;
    min-height: 300px;
}

.history-photo-img {
    height: 300px;
}
    
.history-timeline {
    left: 15%;
}
    
.history-badge {
    top: 28px;
    left: 2px;
    width: 45px;
    height: 45px;
}

.history-badge::before {
    inset: -10px;
    border-width: 3px;
}

.history-badge p {
     font-size: 12px;
    line-height: 1.3;
    letter-spacing: .05em;
}

.history-badge span.big {
    font-size: 1.2rem;
 }


.history-line {
    top: 95px;
    width: 3px;
}

.history-item01 {
    top: 100px;
}

.history-item02 {
    top: 165px;
}

.history-item03 {
    top: 235px;
}

.history-date {
    left: 32px;
    font-size: 24px;
}

.history-date small {
     margin-top: 6px;
    font-size: 11px;
}

    


/* @company
----------------------------------------------------------*/
.toptitle{
    font-size:clamp(1.8rem,5vw,2.2rem);
    text-align:center;
  }

.greeting-img{
    width:100%;
    max-width:100%;
  }

.greeting-body{
    padding:2em 1.5em;
  }

.greeting-body .ttl{
    line-height:1.7;
  }

.greeting_txt{
    line-height:1.9;
  }

.greeting_name{
    margin-top:2.5em;
  }

.greeting_name strong{
    font-size:1.4rem;
  }
    





/*.shikaku-wrap{
grid-template-columns: 1fr;
    gap: 20px;
}*/

.timeline_box{
    padding:80px 0;
}

.timeline-item{
    grid-template-columns:70px 24px 1fr;
    gap:14px;
    padding-bottom:30px;
}

.timeline-year{
    font-size:1.3rem;
    letter-spacing:.04em;
}

.timeline-dot{
    width:10px;
    height:10px;
    top:6px;
}

.timeline-axis::before{
    bottom:-40px;
}

.timeline-axis-line::after{
    left:-36px;
    width:36px;
    top:10px;
}

.timeline-body h3{
    line-height:1.5;
}

.timeline-body p{
    line-height:1.8;
    margin:4px 0 0;
}
    

.safety-ttl{
    margin-bottom:1.8rem;
}

.safety-ttl p{
    line-height:1.7;
}

.safety-img{
    margin-bottom:2rem;
}

.safety-text p{
    line-height:1.9;
}

.safety-imgbox{
    margin-top:2.5rem;
}

.safety-imgbox ul{
    gap:10px;
}

/* @business
----------------------------------------------------------*/
    
.business-slider .swiper-slide{
    width: 220px !important;
}

.business-slider .swiper-slide img{
    max-width:220px;
}


.business-wrap{
    gap:2.5rem;
}

.business-eng{
    font-size:clamp(4rem,13vw,5.8rem);
}



.business-cp{
    font-size:1.5rem;
}

.business-content h3{
    margin-bottom:1.4rem;
}

.business-text{
    line-height:2;
    margin-bottom:2rem;
}

.business-gallery{
    grid-template-columns:repeat(2,1fr);
    gap:12px;
}

/* @works
----------------------------------------------------------*/


.works-list{
    grid-template-columns:repeat(2,1fr);
    gap:30px 20px;
}

.works-item{
    padding:0 10px 25px;
}
    
.works-item::after{
    display:none;
}

    
.works-item:not(:nth-child(2n))::after{
    display:block;
    content:"";
    position:absolute;
    top:0;
    right:-10px;      
    width:1px;
    height:100%;
    background:#d5d9dd;
}

.works-text{
    margin-top:12px;
}

.works-text h3{ 
    margin-bottom:10px;
    padding-bottom:10px;
}


.works-more {
    width: 250px;
    height: 45px;
    margin: 30px auto 0;
    font-size: 14px;
}

.works-more-icon {
    margin-left: 12px;
    font-size: 18px;
}



 
/* @recruit
----------------------------------------------------------*/
.recruit-data::after {
    top: -20px;
    right: -20px;
    width: 200px;
    height: 200px;
}

.data-body .num{
    font-size:clamp(3rem,12vw,4rem);
}

.gender-chart{
    max-width:360px;
}

.donut{
    width:135px;
    height:135px;
}

.donut-bg,
.donut-women,
.donut-men{
    stroke-width:27;
 }

.gender-label{
    width:65px;
}

.gender-label strong{
    font-size:34px;
 }

.gender-label strong small{
    font-size:13px;
}

.gender-label span{
    font-size:12px;
 }


    

/* @policy
----------------------------------------------------------*/
.privacy{
    padding: 4rem 0;
}

.policy-box{
    margin-bottom: 3.5rem;
    padding-bottom: 3rem;
}

.policy-ttl::before{
    width: 4px;
}

.norm-text p,
.norm-text li{
    line-height: 1.9;
}
    
}   


/* @599px 以下 (スマホ)  */
@media screen and (max-width: 599px) {
  /* @common
  ----------------------------------------------------------*/


  /* @top
  ----------------------------------------------------------*/
/*========================
WORKS
========================*/

.top-works::before {
    width: 85%;
}
.works-slider {
    margin: 10px auto 0;
}
.works-slider .swiper-slide {
    width: 100%;
}   
     
/*========================
BUSINESS
========================*/

.business-copy p{
    line-height: 2;
}
.business-list {
    grid-template-columns: 1fr;
    gap: 10px;
}

.business-item{
    padding:.5em 0 ;
}
 .business-item p {
    display: none;
}   
    
    
/*========================================
strength
========================================*/
.strength-inner {
    display: block;
    height: auto;
    min-height: 0;
    margin: 4em auto 0;
    padding: 45px 15px;
    background: rgba(229, 229, 229, 0.3);
}

.strength-inner > .strength-photo {
    display: none;
}

.strength-container {
    width: 100%;
    height: auto;
    min-height: 0;
    margin: 0;
}

.strength-item {
    position: relative;
    top: auto !important;
    left: auto !important;
    transform: none !important;
    width: 100%;
    height: auto;
    min-height: 0;
    margin-bottom: 65px;
    display: flex;
    align-items: stretch;
}

.strength-item:last-child {
    margin-bottom: 0;
}

.strength-item .strength-number {
    flex: 0 0 58px;
    width: 58px;
    height: auto;
    display: flex;
    flex-direction: column;
    font-size: 40px;
    line-height: .8;
}

.strength-number > span {
    display: block;
}

.strength-number .strength-sp-photo {
    display: block;
    width: 85px;
    height: 85px;
    margin-top: auto;
}

.strength-number .strength-sp-photo img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.strength-item .strength-copy {
    flex: 1;
    min-width: 0;
    display: flex;
    flex-direction: column;
}
    
.strength-item .strength-sub {
    display: block;
    line-height: 1.6;
    letter-spacing: .04em;
}

.strength-item .strength-sub::after {
    content: "";
    display: block;
    width: 35px;
    height: 1px;
    margin-top: 8px;
    margin-bottom: 12px;
    background: #005c2e;
}

.strength-text {
    display: block;
    width: 95%;
    margin: 5px 0 0 20px;
}

.strength-text p {
    margin: 0;
    font-weight: 400;
    line-height: 1.56;
}
.strength-item .strength-copy h3 {
    margin: 0 0 6px;
    font-size: 1.4rem;
    line-height: 1.5;
    letter-spacing: .06em;
}



 /*========================
RECRUIT
========================*/

.top-recruit{
    padding:3em 0 4em;
}



.recruit-copy{
    line-height:1.6;

}

.recruit-lead{
    line-height:1.9;

}



  /*========================
top-news-ir
========================*/ 

.news-ir{
    padding:0;
}

.news-con{
    padding:16px;
}

.news-title{
    font-size:18px;
}

.ir-head{
    align-items:flex-start;
    gap:10px;
}

.more{
    font-size:12px;
    padding:3px 10px;
}

.news-list a{
    flex-direction:column;
    align-items:flex-start;
    gap:2px;
    padding:.5em 0;
}

.date{
    width:auto;
    font-size:12px;
}

.text{
    line-height:1.8;
}

.arrow{
    align-self:flex-end;
    font-size:12px;
}




/* @company
  ----------------------------------------------------------*/
.page-nav-list{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:24px 16px;
}
.page-nav-list a {
   padding: 0 0 5px;
}
.philosophy-box-con {
    width: 100%;
}
 
.philosophy-box-img {
    width: 100%;
}
    


.timeline .inner{
    width:92%;
}

.timeline-item{
    grid-template-columns:55px 18px 1fr;
    gap:10px;
}

.timeline-year{
    font-size:1.2rem;
}

.timeline-axis-line::after{
    left:-25px;
    width:25px;
    top:9.5px;
}

.timeline .inner::before{
    width:300px;
    height:300px;
    top:320px;
    right:-10px;
    opacity:.05;
}

    
.access-inner{
    margin-top:40px;
}

.access-top{
    grid-template-columns:1fr;
    gap:30px;
}

.access-info{
    padding:30px;
}

.access-train{
    gap:16px;
    margin-top:25px;
    padding-top:25px;
}

.train-icon{
    width:46px;
}

.google-map{
    margin-top:40px;
}

.google-map iframe{
    height:320px;
}

.organization-item {
    height: 220px;
    padding: 14px;
}
.organization-list::before {
    bottom: 110px;
}    


    
/* @business
----------------------------------------------------------*/

.business-introduction_txt .ttl {
    margin-bottom: 2rem;
}
.business-slider .swiper-slide{
    width:85%;
}
.business-slider{
   margin-bottom: 0;     
}


.business-wrap{
    gap:2rem;
}

.business-label{
    top:-22px;
}

.business-no{
    font-size:3.5rem;
}

.business-eng{
    font-size:1rem;
}

.business-cp{
    font-size:1.3rem;
    margin-bottom:1rem;
}

.business-gallery{
    gap:10px;
}
.business-content{
    text-align:left;
}

    
    
/* @works
----------------------------------------------------------*/


.conhis-table{
    width:100%;
    border-collapse:collapse;
}

.conhis-table thead th{
    display:block;
    width:100%;
    text-align:left;
    background:#e8e8e8;
    padding:.2rem 1.2rem;
    border:none;
    border-bottom:1px solid #cfcfcf;
}

.conhis-table th:first-child, .conhis-table td:first-child {
    width: 100%;
    text-align:left;
}
.conhis-table th:last-child, .conhis-table td:last-child {
    width: 100%;
    text-align:left;
}
.conhis-table tbody,
.conhis-table tr,
.conhis-table td{
    display:block;
    width:100%;
}

.conhis-table tr{
    padding:.8rem 0;
    border-bottom:1px solid #d9dde2;
}

.conhis-table td{
    padding:.2rem 1.2rem;
    border:none;
    text-align:left !important;
    width:auto !important;
    white-space:normal;
}

.conhis-table td:first-child{
    font-weight:700;
    color:#203B57;
}

.conhis-table td:nth-child(2){
    padding-top:.3rem;
}



/* @detail
----------------------------------------------------------*/

.works-en{
    padding-left:45px;
    font-size:1rem;
}

.works-en::before{
    width:32px;
}

.works-head h2{
    margin-top:.7rem;
    padding-bottom:1rem;
    font-size:clamp(1.3rem,4.8vw,1.6rem);
    text-align:left;
}

.works-view{
    display:block;
}

.works-main{
    max-width:100%;
}

.works-thumb{
    width:100%;
    margin-top:16px;
    flex-direction:row;
    justify-content:center;
    gap:10px;
}

.thumb{
    flex:1;
    max-width:80px;
}

.thumb img{
     width:100%;
}

    
.works-pager{
     grid-template-columns:1fr;
    gap:16px;
    margin-top:3rem;
    padding-top:2rem;
}

.pager-prev,
.pager-center,
.pager-next{
    text-align:center;
}

.works-pager a{
    justify-content:center;
}

.pager-list{
    width:220px;
    justify-content:center;
    padding:.8rem 0;
}

/*subcontractor==========================================*/
.subcontractor-box {
    margin: 1.5em auto 4em;
}
    
.link-btn-wrap{
    display: flex;
    flex-direction: column;
    gap: 0;
}   
.link-btn_g a{
    margin: .5em 0;
    padding: 1.2em 1em;
    justify-content: flex-start;
}    
    
.link-btn_g a::after {
    right: 10px    
}
 

.section-title .jp{
    gap:0;
}

.jp-text{
    display:inline;   
}

.section-title_img .jp::after{
    min-width:15%;
    transform: translateY(10px);
}
    


/* @recruit
----------------------------------------------------------*/
.recruit-visual {
    margin-top: 0;
}
.recruit-flow-inner span {
    margin-right: 20px;
}
.recruit-photos {
    top: 70px;
    width: 88%;
    height: 200px;
}

.schedule-item {
    grid-template-columns: 50px 24px 1fr;
 }

.schedule-list {
    padding:5% 1% 1%;
}
.schedule-list::before {
    left: 63px;
}
.schedule-time {
    text-align: left;  
}

 
.schedule-marker span {
    border-top: 6px solid transparent;
    border-bottom: 6px solid transparent;
    border-left: 7px solid #0047AB; 
    margin-top: -1px;
}

 
.schedule-content {
    padding-left: 8px; 
}

.schedule-content p {
    width: 100%; 
}


.environment-column {
    flex-direction: column;
    justify-content: center;
    align-items: center; 
     min-height: auto;     
    padding: 40px 0;     
}

.environment-img {
    width: 100%;         
    max-width: 320px;   
}
.environment-img img {
    width: 100%;
    height: auto;         
    aspect-ratio: 16 / 9;  
    object-fit: cover;
    transform: scale(1.02);
}    
.environment-box {
    width: 100%;
    margin-left: 0;  
}

.environment-sub {
    margin-bottom: 20px;
}

.environment-text {
    line-height: 1.8;
}
    
 .data-grid {
    grid-template-columns: 1fr;
    gap: 20px;
}
     
.data-card{
     padding:15px;
}


.data-card .icon img{
    max-width:80px;
    max-height:80px;
}

.data-card .icon{
    height:80px;
    margin-bottom:5px;
}

.data-body{
     padding:8px ;
 }
    
.data-card > small {
    display: block;
    margin-top: -20px;
}

.outline-table{
    width:100%;
    border-bottom:1px solid #ddd;
    margin:2em auto 3em;
}

.outline-table,
.outline-table tbody,
.outline-table tr,
.outline-table th,
.outline-table td{
    display:block;
    width:100%;
}

.outline-table tr{
    border-bottom:1px solid #ddd;
}

.outline-table th{
    width:100%;
    padding:16px 20px;
    font-size:1.1rem;
    font-weight:700;
    border-bottom:1px solid #ddd;
}

.outline-table td{
    padding:18px 20px;
    background:#fff;
    line-height:1.8;
}

.outline-table tr:last-child{
    border-bottom:none;
}


    
/* @contact
----------------------------------------------------------*/

.form-tbl .row dt {
    width:100%;
}
.form-tbl dt .req {
    position: static;
    vertical-align: .2em;
}
.form-tbl .row dd {
    width:100%;
    padding: 0;
}
.size-s,.size-m {
    width: 100%;
}

.form-policy,.form-policy-msg {
    width: 100%;
}

.thanks-box {
  padding: 1.5em ;
  line-height: 2;
}
    

}