@charset "utf-8";

.gray-bg {background:#f8f8f8;}

.doc-tit {margin:var(--space-130) auto var(--space-90); font-size:var(--font-size-40); font-weight:700; letter-spacing:-.03em; line-height:1.4em; text-align:center;}

.greeting {display:flex; align-items:center; gap:0 var(--space-80);}
.greeting .image {width:48%; max-width:640px;}
.greeting .content {flex:1;}
.greeting .content .label {padding:0 var(--space-8); border-radius:4px; font-size:var(--font-size-15); font-weight:0; line-height:27px; display:inline-block; color:#fff; background:var(--color-primary);}
.greeting .content h2 {margin:var(--space-30) 0 var(--space-50);font-size:var(--font-size-32); font-weight:400; letter-spacing:-.03em; line-height:1.4em;}
.greeting .content .txt {margin-bottom:var(--space-50); font-weight:400; letter-spacing:-.03em; color:#454545; line-height:1.63em;}
.greeting .content .ceo {font-size:var(--font-size-24); font-weight:400;}

.history-head {position:relative; padding:var(--space-70) 50px var(--space-40) 0; margin-bottom:var(--space-50); border-bottom:1px solid #ccc;}
.history-head:after {content:''; position:absolute;right:0; bottom:calc(clamp(55px, calc(180 / var(--inner) * 100vw), 180px) * -1); width:clamp(110px, calc(360 / var(--inner) * 100vw), 360px); height:clamp(100px, calc(350 / var(--inner) * 100vw), 350px); background:url('/images/sub/history.png')no-repeat 50% 50% /contain;}
.history-head h2 {margin-bottom:var(--space-18); font-size:var(--font-size-28); font-weight:600; display:inline-block; background:linear-gradient(to right, var(--color-primary), #11411D); background-clip:text; -webkit-background-clip:text;-webkit-text-fill-color:transparent;}
.history-head p {font-size:var(--font-size-18); font-weight:400; letter-spacing:-.03em; line-height:1.4em; color:#454545;}

.history .group {position:relative; display:flex;}
.history .group:last-child {padding-bottom:0;}
.history .group h3 {width:223px; font-size:var(--font-size-42); font-weight:700; letter-spacing:0; line-height:.7em;}
.history .group .cnt {padding-left:var(--space-80); flex:1;}
.history .group .cnt dl {padding-bottom:var(--space-50); position:relative;}
.history .group .cnt dl:last-child {padding-bottom:var(--space-110);}
.history .group:last-child .cnt dl:last-child {padding-bottom:0;}
.history .group:last-child .cnt dl:last-child:before {display:none;}  
.history .group .cnt dl:before {content:''; position:absolute; left:calc(var(--space-80) * -1); top:7px; z-index:-1; height:100%; width:1px; background:#ddd;}
.history .group .cnt dl:last-child {margin-bottom:0;}
.history .group .cnt dl dt {position:relative; margin-bottom:var(--space-10); letter-spacing:-.03em; font-size:var(--font-size-26); font-weight:700; line-height:1.2em;}
.history .group .cnt dl dt:before {content:''; position:absolute; left:calc(var(--space-80) * -1); margin-left:-6px; top:7px; width:12px; height:12px; border-radius:100%; background:var(--color-primary);}
.history .group .cnt dl dd {margin-bottom:var(--space-8); color:#454545;}
.history .group .cnt dl dd:last-child {margin-bottom:0;}

.process {max-width:610px; margin:0 auto;}
.process .item {display:flex; align-items:center;}
.process .arrow {width:44px; height:59px; background:url('/images/sub/process-arrow.png') no-repeat center center / contain;}
.process .num {width:110px;}
.process .num span {font-size:var(--font-size-28); font-weight:700; letter-spacing:-.03em; line-height:1.33em; width:40px; height:40px; border-radius:100%; background:var(--color-primary); text-align:center; display:flex; align-items:center; justify-content:center; color:#fff;}
.process .content {flex:1; background:#f6f6f6; border-radius:var(--radius-24); padding:var(--space-40);}
.process .content h2 {margin-bottom:var(--space-18); font-size:var(--font-size-28); font-weight:700; letter-spacing:-.03em; line-height:1.4em;}
.process .content h2 small {margin-left:var(--space-12); color:#454545;}
.process .content .list ul li {padding-left:12px; position:relative; margin-bottom:var(--space-20); font-size:var(--font-size-18); font-weight:400; letter-spacing:-.03em; line-height:1.4em; color:#454545;}
.process .content .list ul li:before {content:''; border-radius:100%; background:var(--color-primary); width:5px; height:5px; position:absolute; left:0; top:.6em;}
.process .content .list ul li:last-child {margin-bottom:0;}

.facilities-group {margin-bottom:var(--space-100);}
.facilities-group:last-child {margin-bottom:0;}
.facilities-group h2 {padding-bottom:var(--space-25); margin-bottom:var(--space-50); border-bottom:1px solid #ddd; padding-left:20px; position:relative; font-size:var(--font-size-28); font-weight:700; letter-spacing:-.03em; line-height:1.4em;}
.facilities-group h2:before {content:''; position:absolute; left:0; top:.5em; width:8px; height:8px; border-radius:100%; background:var(--color-primary);}
.facilities-group .items {display:grid; grid-template-columns:repeat(3, 1fr);  gap:var(--space-25); text-align:center;}
.facilities-group .items .item p {margin-top:var(--space-20); font-size:var(--font-size-20); font-weight:600; letter-spacing:-.03em; line-height:1.4em;}

.location-map {border-radius:var(--radius-24); overflow:hidden; height:clamp(250px, calc(520 / var(--inner) * 100vw), 520px); margin-bottom:var(--space-50); border:1px solid #ddd;}
.location-map iframe {width:100%; height:100%;}

.location-info h2 {margin-bottom:var(--space-35); font-size:var(--font-size-20); font-weight:700; letter-spacing:-.03em; line-height:1.4em;}
.location-info .info dl {margin-bottom:var(--space-25); display:flex; align-items:center;}
.location-info .info dl:last-child {margin-bottom:0;}
.location-info .info dl dt {font-size:var(--font-size-18); font-weight:600; letter-spacing:-.03em; line-height:1.4em; min-width:230px; display:flex; align-items:center; gap:0 var(--space-10);}
.location-info .info dl dd {color:#454545;}

.prod-image {margin-bottom:var(--space-90); display:grid; grid-template-columns:repeat(3, 1fr); gap:var(--space-30);}
.prod-image.col-2 {grid-template-columns:repeat(2, 1fr);}
.prod-image.col-4 {grid-template-columns:repeat(4, 1fr);}

.etc-wrap:not(:last-child) {margin-bottom:var(--space-80);}
.etc-wrap .prod-image {margin-bottom:0;}

.prod-content {background:#fff; border-radius:var(--radius-24); padding:var(--space-30) var(--space-40); margin-bottom:var(--space-50);}
.prod-content h2 {margin-bottom:var(--space-20); font-size:var(--font-size-24); font-weight:700; letter-spacing:-.03em; line-height:1.4em;}
.prod-content .text {font-weight:400; color:#454545; line-height:1.63em;}
.prod-content .list ul li {font-weight:400; color:#454545;}
.prod-content .list ul li:before {margin-right:var(--space-5); content:'·'; color:var(--color-primary);}
.prod-content .use .info {margin:var(--space-25) 0; background:#f5f5f5; width:fit-content; padding:var(--space-20); border-radius:var(--radius-12);}
.prod-content .sort .group {margin-bottom:var(--space-30);}
.prod-content .sort .group:last-child {margin-bottom:0;}
.prod-content .sort .tit {margin-bottom:var(--space-15); padding:0 var(--space-10); display:inline-block; color:#fff; background:#242424; line-height:clamp(28px, calc(37 / var(--inner) * 100vw), 37px); font-size:var(--font-size-24); font-weight:700; letter-spacing:-.03em; background:#242424; border-radius:6px;}
.prod-content .sort .txt {font-weight:700; color:#454545;}

.feature {text-align:center; padding-top:var(--space-90);}
.feature h2 {margin-bottom:var(--space-60); font-size:var(--font-size-30); font-weight:700; letter-spacing:-.03em; line-height:1.4em;}
.feature .items {max-width:960px; margin:0 auto; display:grid; grid-template-columns:repeat(3, 1fr); gap:var(--space-30);}
.feature .items .item {box-shadow:0 0 16px rgba(0, 0, 0, .12); background:#fff; border-radius:var(--radius-24); padding:var(--space-40) 10px;}
.feature .items .ico img {width:clamp(60px, calc(154 / var(--inner) * 100vw), 154px);}
.feature .items h3 {margin-top:var(--space-30); font-size:var(--font-size-24); font-weight:700; letter-spacing:-.03em; line-height:1.3em;}
.feature .items p {margin-top:var(--space-20); font-weight:400; color:#454545; line-height:1.5em;}

.offer-text {text-align:center; margin-top:var(--space-70); font-weight:500; color:#454545;}