@charset "utf-8";

.cps-main{background:var(--cp-gray)}
.cps-page-heading{padding-top:142px}
.cps-heading-inner{padding:0 4.3% 20px 11.806vw}
.cps-heading-inner h1{font:900 80px/1 var(--cp-en);letter-spacing:.04em;color:var(--cp-accent)}
.cps-heading-inner h1 span{display:inline-block;animation:cps-title .5s cubic-bezier(.075,.82,.165,1) .2s both}
.cps-heading-inner>p{font-size:27px;line-height:1;letter-spacing:.05em;margin-top:22px;animation:cps-up .75s cubic-bezier(.075,.82,.165,1) .6s both}
.cps-breadcrumb{display:flex;justify-content:flex-end;align-items:center;gap:8px;margin-top:68px;height:32px}
.cps-breadcrumb>a{display:grid;place-items:center;background:white;border-radius:50%;width:32px;height:32px;font-size:24px;color:#585d60;box-shadow:1px 1px 4px #ddd}
.cps-breadcrumb>i{font:400 24px/1 var(--cp-en);font-style:normal;width:10px}
.cps-breadcrumb>[aria-current]{background:#585d60;color:#f2f2f2;border-radius:25px;padding:0 16px;display:flex;align-items:center;height:28px;font-size:12px;letter-spacing:.05em;font-weight:800;box-shadow:1px 1px 4px #ddd}
.cps-main-photo{width:90%;margin-left:10%;aspect-ratio:1152/477.25;border-radius:10px 0 0 10px}
.cps-company-cards{margin-top:190px}
.cps-company-card{position:relative;display:block;width:94%;max-width:1320px}
.cps-company-card+.cps-company-card{margin-top:272px}
.cps-company-card:nth-child(odd){margin-right:auto}
.cps-company-card:nth-child(even){margin-left:auto}
.cps-card-visual{position:relative;overflow:hidden;border-radius:0 10px 10px 0}
.cps-company-card:nth-child(even) .cps-card-visual{border-radius:10px 0 0 10px}
.cps-card-photo{width:100%;aspect-ratio:1203.1875/487.328125;transition:transform 1s cubic-bezier(.165,.84,.44,1)}
.cps-company-card:nth-child(even) .cps-card-photo{aspect-ratio:1203.1875/439.34375}
.cps-card-photo .cp-media-label{left:77%;top:50%}
.cps-card-copy{position:absolute;top:8.5vw;left:15.12%;z-index:1;max-width:75%}
.cps-company-card:nth-child(even) .cps-card-copy{left:7.14%}
.cps-card-en{font:900 14px/1 var(--cp-en);letter-spacing:.04em;color:var(--cp-accent)}
.cps-card-copy h2{font-size:42px;line-height:1;letter-spacing:.05em;margin-top:34px}
.cps-card-link{position:absolute;bottom:0;left:7.8571428571vw;width:92.3%;transform:translateY(50%);padding:3.14vw 3vw 3.14vw 6.1vw;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid #cbcbcb;background:var(--cp-gray)}
.cps-company-card:nth-child(even) .cps-card-link{width:83%;margin-right:9.3%}
.cps-card-link>span:first-child{font-size:20px;line-height:2;letter-spacing:.05em}
.cps-arrow{display:block;width:35px;height:35px;flex:none;color:var(--cp-accent)}
.cps-arrow svg{width:100%;height:100%;fill:none;stroke:#bcbcbc;stroke-width:1}
.cps-arrow path{stroke:var(--cp-accent);stroke-width:1.5}
.cps-card-link:before,.cps-related nav>a:before{content:'';position:absolute;inset:auto 0 -1px;height:1px;background:#141414;transform:scaleX(0);transform-origin:right;transition:transform .5s ease-out}
.cps-company-card:hover .cps-card-link:before,.cps-related nav>a:hover:before{transform:scaleX(1);transform-origin:left}
.cps-company-card:hover .cps-card-photo{transform:scale(1.06)}
.cps-company-card:hover .cps-arrow circle,.cps-related a:hover .cps-arrow circle{stroke:var(--cp-accent);stroke-width:2}
.cps-tour{margin-top:240px}
.cps-tour>a{display:block;position:relative;height:100vh;background:#24333a;overflow:hidden}
.cps-tour-photo{position:absolute;inset:0;background:#34434b}
.cps-tour-photo .cp-media-label{top:75%;color:#c9d2d6}
.cps-tour-copy{position:absolute;top:50%;width:100%;transform:translateY(-40%);color:white;text-align:center}
.cps-tour-copy p{text-align:center;font:900 clamp(64px,10vw,128px)/1 var(--cp-en);letter-spacing:.04em}
.cps-tour-copy h2{font-size:24px;line-height:1;letter-spacing:.35em;margin-top:21px}
.cps-tour-copy>span{display:block;margin-top:30px;font-size:16px;line-height:1.8}

.cps-contact{position:relative;background:#fff;overflow:hidden}
.cps-contact-inner{position:relative;max-width:1400px;margin:auto;display:flex;align-items:center;justify-content:space-between;padding:100px 10% 0}
.cps-contact-phone{position:relative;z-index:2;width:35.8%;flex:none}
.cps-contact-phone>p{text-align:center;margin-bottom:30px;font-size:10px;line-height:1}
.cps-contact-phone>p span{position:relative;font-size:16px;line-height:1.75;padding-left:29px}
.cps-contact-phone>p span:before{content:'';position:absolute;left:0;top:50%;transform:translateY(-50%);width:10px;height:10px;background:var(--cp-accent);border-radius:50%}
.cps-contact-device{position:relative;aspect-ratio:800/1110}
.cps-contact-art{position:absolute;inset:0;background:#d7dde0;border:clamp(7px,.714vw,10px) solid #141414;border-bottom:0;border-radius:14% 14% 0 0;overflow:hidden}
.cps-contact-art:before{content:'';position:absolute;top:0;left:26%;width:48%;height:5%;border-radius:0 0 10px 10px;background:#141414}
.cps-contact-art>span{position:absolute;top:11%;left:0;width:100%;text-align:center;font-size:12px;line-height:1.5;font-weight:500;color:#586167}
.cps-contact-numbers{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:68%;padding:clamp(14px,1.250vw,18px) clamp(17px,1.806vw,26px) clamp(10px,1.528vw,22px);border-radius:5px;background:#fff}
.cps-contact-numbers>a{display:block;padding-bottom:10px}
.cps-contact-numbers>a:not(:last-child){border-bottom:1px solid #cbcbcb}
.cps-contact-numbers>a+a{padding-top:10px}
.cps-contact-numbers small{display:block;font-size:clamp(12px,1.250vw,18px);line-height:1.5;letter-spacing:.05em}
.cps-contact-numbers strong{display:block;font:800 clamp(16px,1.875vw,27px)/1 var(--cp-en);color:var(--cp-accent);margin-top:3px;letter-spacing:.04em;white-space:nowrap}
.cps-contact-numbers a:not([href^="tel:"]) strong{font-family:var(--cp-ja);font-size:clamp(14px,1.389vw,20px);line-height:1.75}
.cps-contact-copy{position:relative;z-index:2;text-align:center;width:57.6%}
.cps-contact-copy>p{font-size:24px;line-height:1;text-align:center;letter-spacing:.05em}
.cps-contact-copy>p span{position:relative}
.cps-contact-copy>p span:before{content:'';position:absolute;width:17px;height:8px;border:2px solid var(--cp-accent);transform:translateY(-50%) skew(-25deg);left:-32px;top:50%}
.cps-contact-copy h2{font:900 clamp(49px,9.236vw,133px)/1 var(--cp-en);color:var(--cp-accent);letter-spacing:.04em;margin:11px 0 0}
.cps-contact-message{font-size:clamp(12px,1.389vw,20px);line-height:1.75;font-weight:500;margin-top:15px;letter-spacing:.3125px}
.cps-contact-copy .cp-button{display:inline-flex;align-items:center;justify-content:center;gap:20px;min-height:0;max-width:100%;margin:36px 0 0;border:1px solid var(--cp-accent);border-radius:6px;font-size:18px;font-weight:800;line-height:1;letter-spacing:.05em;padding:20px 80px;background:var(--cp-accent);color:#fff;transition:background-color .3s,color .3s}
.cps-contact-copy .cps-arrow{width:35px;height:34px;color:inherit}
.cps-contact-copy .cps-arrow svg,.cps-contact-copy .cps-arrow path{stroke:currentColor}
.cps-contact-faq{display:table;position:relative;margin:28px auto 0;padding-right:28px;font-size:16px;font-weight:800;color:var(--cp-accent);line-height:1;letter-spacing:.3125px}
.cps-contact-faq:after{content:'';position:absolute;width:6px;height:6px;right:8px;top:50%;border-top:1px solid;border-right:1px solid;transform:translateY(-50%) rotate(45deg);transition:right .3s ease-out}
.cps-contact-marquee{position:absolute;bottom:0;left:0;width:100%;z-index:1;display:flex;white-space:nowrap;overflow:hidden;font:900 44px/1.1 var(--cp-en);letter-spacing:.04em;color:#d7dde0;pointer-events:none}
.cps-contact-marquee>span{flex:none;animation:cps-contact-loop 50s -25s linear infinite}
.cps-contact-marquee>span:nth-child(even){animation:cps-contact-loop-even 50s linear infinite}
@keyframes cps-contact-loop{from{transform:translateX(100%)}to{transform:translateX(-100%)}}
@keyframes cps-contact-loop-even{from{transform:translateX(0)}to{transform:translateX(-200%)}}
@media(min-width:897px){.cps-contact-copy .cp-button:hover{background:#fff;color:var(--cp-accent)}.cps-contact-faq:hover:after{right:0}}
@media(min-width:1400px){.cps-contact-inner{padding-left:140px;padding-right:140px}}
@keyframes cps-title{from{opacity:0;transform:translateX(20px)}to{opacity:1;transform:none}}
@keyframes cps-up{from{opacity:0;transform:translateY(20px)}to{opacity:1;transform:none}}
@keyframes cps-marquee{to{transform:translateX(-50%)}}

.cps-image-frame{overflow:hidden}
.cps-image-content{position:absolute;inset:0;background:inherit;border-radius:inherit}
.cp-motion .cps-image-frame>.cps-image-content{opacity:0;transform:scale(1.06)}
.cp-motion .cps-image-frame.is-image-visible>.cps-image-content{opacity:1;transform:scale(1);transition:opacity 1s cubic-bezier(.165,.84,.44,1),transform 1s cubic-bezier(.165,.84,.44,1)}
.cp-motion .cps-image-auto>.cps-image-content{animation:cps-image-enter 1s cubic-bezier(.165,.84,.44,1) 1s forwards}
@keyframes cps-image-enter{from{opacity:0;transform:scale(1.06)}to{opacity:1;transform:scale(1)}}

.cp-motion.cps-reveal-init .cp-reveal{transition:none!important}
.cp-motion :where(.cps-main) .cp-reveal.is-visible{transform:translateY(0)}
.cp-motion :where(.cps-main) .cph-heading.cp-reveal.is-visible{transform:translateY(0)}
.cpb-feature-title{margin-top:88px}
.cpb-feature-title .cpb-feature-en{font:900 clamp(39px,5.208vw,75px)/1 var(--cp-en);letter-spacing:.04em;text-align:center}
.cpb-feature-title .cpb-feature-heading{font-size:22px;line-height:1.6;letter-spacing:.05em;text-align:center;margin-top:4px}
.cpb-location-detail{font-size:13px;font-weight:500;line-height:1.6;letter-spacing:.05em;margin-top:6px;text-align:justify}
.cp-motion .cpb-feature-en.cp-reveal{transform:translateY(0);filter:blur(5px);transition:opacity 1.2s cubic-bezier(.645,.045,.355,1),filter 1.2s cubic-bezier(.645,.045,.355,1)}
.cp-motion .cpb-feature-en.is-visible{filter:blur(0)}
.cpd-mission-caption{font-size:24px;font-weight:700;line-height:2;letter-spacing:.05em;margin-top:40px;text-align:center}
.cpd-formula-attention{display:none;font-size:14px;font-weight:700;line-height:1;letter-spacing:.05em;margin-top:14px}
.cps-text-emphasis{display:inline-block;background:var(--cp-accent);color:#fff;padding:0 9px 0 7px;line-height:1.3;margin:0 8px}
.cpd-history .cpd-next-message{font-size:clamp(19px,2.431vw,35px);font-weight:700;line-height:1.8;letter-spacing:.05em}
.cp-motion .cps-text-emphasis.cp-reveal{transform:scale(2);filter:blur(10px);transition:opacity .6s cubic-bezier(.645,.045,.355,1) .5s,transform .6s cubic-bezier(.645,.045,.355,1) .5s,filter .6s cubic-bezier(.645,.045,.355,1) .5s}
.cp-motion .cps-text-emphasis.is-visible{transform:scale(1);filter:blur(0)}
.cps-heading-inner>.cpi-heading-intro{animation:none}
.cpb-value-title>small.cps-text-desktop-only{display:block}
@media(max-width:896px){.cpb-feature-title{margin-top:40px}.cpb-feature-title .cpb-feature-en{font-size:32px}.cpb-feature-title .cpb-feature-heading{font-size:18px}.cpd-mission-caption{font-size:16px;margin-top:20px}.cpd-formula-attention{display:block}.cps-text-emphasis{padding:0 6px 0 4px;margin:0 4px}.cp-motion .cp-reveal.cps-text-desktop-only{opacity:1;transform:none;transition:none}}
@media(max-width:896px){.cpb-location-detail{font-size:12px;margin-top:4px}.cpd-history .cpd-next-message{font-size:20px}}
.cps-company-card:hover .cps-card-photo.cps-image-frame{transform:none}
.cps-company-card:hover .cps-card-photo.is-image-visible>.cps-image-content{transform:scale(1.06)}
.cpb-card-main:hover .cpb-card-photo.cps-image-frame{transform:none}
.cp-motion .cpb-card-photo.is-image-visible>.cps-image-content{transition:transform 2s cubic-bezier(.075,.82,.165,1)}
@media(min-width:897px){.cpb-card-main:hover .cpb-card-photo.is-image-visible>.cps-image-content{transform:scale(1.12)}}
@media(min-width:897px){.cp-motion .cpb-item-photo.is-image-visible>.cps-image-content{transition:transform .6s ease}.cpb-item:hover .cpb-item-photo.is-image-visible>.cps-image-content{transform:scale(1.1)}}
@media(max-width:896px){
 .cps-heading-inner{padding:0 5% 20px}.cps-heading-inner h1{font-size:44px}.cps-heading-inner>p{font-size:16px;margin-top:12px}.cps-breadcrumb{margin-top:80px}
 .cps-main-photo{width:95%;margin-left:5%;height:50vw;aspect-ratio:auto}
 .cps-company-cards{margin-top:120px;padding:0 5%}.cps-company-card{width:100%;max-width:none}.cps-company-card+.cps-company-card{margin-top:80px}
 .cps-card-visual,.cps-company-card:nth-child(even) .cps-card-visual{border-radius:0}.cps-card-photo,.cps-company-card:nth-child(even) .cps-card-photo{height:50vw;aspect-ratio:auto}.cps-card-photo .cp-media-label{left:50%}
 .cps-card-copy,.cps-company-card:nth-child(even) .cps-card-copy{position:static;max-width:none;margin-top:30px}.cps-card-en{font-size:12px}.cps-card-copy h2{font-size:28px;margin-top:10px;line-height:1}.cps-pc{display:none}
 .cps-card-link,.cps-company-card:nth-child(even) .cps-card-link{position:relative;left:auto;bottom:auto;width:100%;transform:none;padding:0 0 10px;margin:24px 0 0}.cps-card-link>span:first-child{font-size:18px}
 .cps-tour{padding:120px 5% 80px;margin-top:0}.cps-tour>a{height:625px;background:none;overflow:visible}.cps-tour-photo{bottom:100px;border-radius:10px}.cps-tour-copy{top:420px;transform:none;text-align:left;padding:0 15px}.cps-tour-copy p{text-align:left;font-size:14px;color:var(--cp-accent)}.cps-tour-copy h2{font-size:35px;letter-spacing:.05em;margin-top:14px;line-height:1.4}.cps-tour-copy>span{margin-top:50px;font-size:14px;color:#141414}
 .cps-contact-inner{flex-direction:column-reverse;padding:60px 5% 0}.cps-contact-copy{width:100%}.cps-contact-copy h2{font-size:60px}.cps-contact-message{font-size:16px;letter-spacing:.3125px}.cps-contact-copy .cp-button{width:100%;max-width:400px;font-size:14px;padding:16px 0}.cps-contact-phone{width:100%;max-width:330px;margin:82px auto 0}.cps-contact-phone>p{margin-bottom:16px}.cps-contact-phone>p span{padding-left:20px}.cps-contact-device{width:84%;max-width:400px;margin:auto}.cps-contact-numbers{top:54%}

}



.cps-company .cps-card-photo{aspect-ratio:2380/964}
.cps-company .cps-company-card:nth-child(even) .cps-card-photo{aspect-ratio:2640/964}
.cps-company .cps-card-link:before{background:#000;z-index:2;transform-origin:right top}
.cps-company .cps-company-card:hover .cps-card-link:before{transform-origin:left top}
.cps-company .cps-company-card .cps-arrow .cps-card-base{fill:none;stroke:#bcbcbc;stroke-width:1}
.cps-company .cps-company-card .cps-arrow .cps-card-ring{fill:none;stroke:#165b38;stroke-width:2;stroke-dasharray:106.814;stroke-dashoffset:106.814;transition:stroke-dashoffset .3s linear}
.cps-company .cps-company-card:hover .cps-arrow .cps-card-ring{animation:cps-card-ring-draw .3s linear forwards}
.cps-company .cps-company-card .cps-arrow .cps-card-chevron{fill:none;stroke:#c7202c;stroke-width:1.306;stroke-linecap:round;stroke-linejoin:round}
@keyframes cps-card-ring-draw{to{stroke-dashoffset:0}}
@media(min-width:897px){
 .cps-company .cps-company-card:nth-child(n+3) .cps-card-copy h2,.cps-company .cps-company-card:nth-child(n+3) .cps-card-lead{color:#fff}
 
 .cps-company .cps-company-card:nth-child(n+3) .cps-card-photo{background:#526169}
 .cps-company .cps-company-card:nth-child(n+3) .cps-card-photo .cp-media-label{color:#fff}
}
@media(max-width:896px){
 .cps-company .cps-card-photo,.cps-company .cps-company-card:nth-child(even) .cps-card-photo{aspect-ratio:auto}
 .cps-company .cps-card-copy{z-index:auto}
 .cps-company .cps-company-card:nth-child(-n+2) .cps-card-photo img{object-position:100%}
}



.cps-company .cps-card-copy{max-width:none}
@media(max-width:896px){
 .cps-company .cps-card-link:before{content:none;transform:none;transition:none}
 .cps-company .cps-company-card:hover .cps-card-photo{transform:none}
 .cps-company .cps-company-card:hover .cps-card-photo.is-image-visible>.cps-image-content{transform:scale(1)}
 .cps-company .cps-company-card:hover .cps-arrow .cps-card-ring{animation:none;stroke-dashoffset:106.814}
}


.cps-company .cps-card-copy h2,.cps-company .cps-card-link>span:first-child{text-align:justify}



@media print{
 .cpd-environment-page .cp-reveal{opacity:1!important;transform:none!important;transition:none!important}
 .cpd-environment-page .cps-image-content{opacity:1!important;transform:none!important;animation:none!important}
}
