:root{
  --main:#102a72;      
  --sub:#0b1f5a;       
  --accent:#1554c0;    
  --accent2:#1f74d8;   
  --line:#40538f;      
  --ink:#111;--ink3:#333;--ink4:#555;
  --gray:#f2f2f2;--gray2:#f5f5f5;--gray3:#f7f7f7;
  --white:#fff;
  --jp:"Noto Sans JP","Hiragino Kaku Gothic ProN","Hiragino Sans",Meiryo,"Noto Sans CJK JP",sans-serif;
  --din:"Barlow","Helvetica Neue",Arial,sans-serif;
  --cond:"Barlow Condensed","Arial Narrow",sans-serif;
  --ease:cubic-bezier(.19,1,.22,1);
  --gut:8rem;
}
*,*::before,*::after{box-sizing:border-box}
html{font-size:62.5%;-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{margin:0;overflow-x:clip;background:var(--main);color:var(--white);font-family:var(--jp);font-size:1.4rem;line-height:2;
  font-feature-settings:"palt" 0;-webkit-font-smoothing:antialiased;line-break:strict}
img{max-width:100%;height:auto;display:block}
a{color:inherit;text-decoration:none}
i,em{font-style:normal}
.drawer__logo b i{font-size:1.1rem;margin-right:.3em}
.is-nav .hd-logo{opacity:0;visibility:hidden}
ul,ol,dl,dd,figure,p,h1,h2,h3,h4{margin:0;padding:0;list-style:none}
button{font:inherit;border:0;background:none;padding:0;cursor:pointer;color:inherit}
:focus-visible{outline:2px solid var(--accent2);outline-offset:3px}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.nw{white-space:nowrap}
h1,h2,h3,.lead{text-wrap:balance}
p,li,dd{text-wrap:pretty}


.ul{background:linear-gradient(currentColor,currentColor) 100% 100%/100% 1px no-repeat;padding-bottom:1px;transition:background-size .6s var(--ease)}
a:hover .ul{background-size:0 1px}


.wrap{position:relative;padding-left:12rem}
.in{position:relative;margin:0 var(--gut);max-width:160rem}
.in-m{position:relative;width:92.8rem;max-width:calc(100% - 2*var(--gut));margin:0 auto}


.hd-logo{position:fixed;top:3.4rem;left:4rem;z-index:996;display:flex;align-items:center;gap:1.2rem;color:var(--white);transition:color .4s var(--ease)}
.hd-logo img{width:4.4rem;height:auto}
.hd-logo span{display:flex;flex-direction:column;line-height:1.25}
.hd-logo small{font:600 1rem/1 var(--din);letter-spacing:.16em;opacity:.85}
.hd-logo b{margin-top:.5rem;font-size:1.6rem;font-weight:700;letter-spacing:.08em}
.hd-logo b i{font-style:normal;font-size:1.2rem;margin-right:.4em}
.hd-sub{position:absolute;top:4.6rem;right:4rem;z-index:5;display:flex;gap:1.6rem;font-size:1.3rem;font-weight:700;letter-spacing:.08em;line-height:1}
.hd-sub li+li::before{content:"/";margin-right:1.6rem;opacity:.5}


.vnav{position:fixed;left:0;bottom:0;z-index:990;width:12rem;padding:5rem 0;background:var(--white);border-radius:0 4px 0 0;display:flex;flex-direction:column;align-items:center}
.vnav ul{display:flex;flex-direction:column;align-items:center}
.vnav li{display:block;text-align:center}
.vnav li+li::before{content:"";display:block;width:1px;height:1.4rem;margin:1.2rem auto;background:var(--ink);transform:rotate(30deg)}
.vnav a{display:inline-block;writing-mode:vertical-rl;white-space:nowrap;font-size:1.8rem;font-weight:700;letter-spacing:.06em;color:var(--ink3);line-height:1;transition:color .4s var(--ease)}
.vnav a:hover{color:var(--accent)}
.vnav__btn{width:5rem;height:5rem;margin-top:3rem;border:1px solid #c9c9c9;border-radius:50%;background:var(--white);display:flex;align-items:center;justify-content:center;gap:4px;transition:.8s var(--ease)}
.vnav__btn i{width:5px;height:5px;border-radius:50%;background:var(--ink3)}
.vnav__btn:hover{background:var(--main);border-color:var(--main)}
.vnav__btn:hover i{background:var(--white)}


.mbtn{position:fixed;top:0;right:0;z-index:1001;width:12rem;height:12rem;border-radius:0 0 0 20px;background:var(--accent);display:none;align-items:center;justify-content:center}
.mbtn span{position:relative;display:block;width:4.8rem;height:1.6rem}
.mbtn span i{position:absolute;left:0;width:100%;height:2px;background:var(--white);transition:transform .5s var(--ease),opacity .3s}
.mbtn span i:nth-child(1){top:0}.mbtn span i:nth-child(2){top:50%;margin-top:-1px}.mbtn span i:nth-child(3){bottom:0}
.is-nav .mbtn{display:flex}
.is-nav .mbtn span i:nth-child(1){transform:translateY(.7rem) rotate(35deg)}
.is-nav .mbtn span i:nth-child(2){opacity:0}
.is-nav .mbtn span i:nth-child(3){transform:translateY(-.7rem) rotate(-35deg)}


.drawer{position:fixed;inset:0;z-index:998;display:flex;background:var(--white);opacity:0;visibility:hidden;transition:opacity .4s var(--ease),visibility 0s .4s;overflow:hidden}
.is-nav .drawer{opacity:1;visibility:visible;transition:opacity .4s var(--ease)}
.drawer__logo{position:absolute;top:3.4rem;left:4rem;z-index:3;display:flex;align-items:center;gap:1.2rem;color:var(--main)}
.drawer__logo img{width:4.4rem}
.drawer__logo span{display:flex;flex-direction:column;line-height:1.25}
.drawer__logo small{font:600 1rem/1 var(--din);letter-spacing:.16em}
.drawer__logo b{margin-top:.5rem;font-size:1.6rem;letter-spacing:.08em}
.drawer__bg{position:absolute;top:0;left:0;bottom:0;width:56.25%;z-index:1}
.drawer__bg img{width:100%;height:100%;object-fit:cover}
.drawer__bg::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(255,255,255,0) 60%,var(--white))}
.drawer__in{position:absolute;top:0;right:0;bottom:0;left:45.56%;z-index:2;background:var(--gray2);border-radius:140px 0 0 6px;padding:14rem 6rem 6rem 6.8rem;overflow-y:auto;overscroll-behavior:contain;color:var(--ink);transform:translateX(4rem);transition:transform .8s var(--ease)}
.is-nav .drawer__in{transform:none}
.drawer__list>li+li{margin-top:3.2rem}
.drawer__list>li>a{font-size:2.8rem;font-weight:700;letter-spacing:.08em;line-height:1}
.drawer__child{display:flex;flex-wrap:wrap;margin-top:1.6rem;font-size:1.6rem;line-height:1.6}
.drawer__child li+li::before{content:"/";margin:0 1rem;color:#aaa}
.drawer__box{margin-top:8rem;padding:4rem;background:#eaebee;border-radius:4px}
.drawer__box p{font-size:1.6rem;font-weight:700;line-height:1}
.tel-big{display:inline-block;margin-top:1.6rem;font:800 4.4rem/1 var(--din);letter-spacing:.04em;color:var(--accent)}
.boxbtn{position:relative;display:block;margin-top:3.2rem;padding:4.2rem 9rem 4.2rem 4rem;background:var(--white);border-radius:4px;border-bottom:1px solid #ddd;font-size:1.6rem;font-weight:700;line-height:1;color:var(--accent);transition:color .4s var(--ease),background-color .4s var(--ease)}
.boxbtn i{position:absolute;top:50%;right:3rem;width:4rem;height:4rem;margin-top:-2rem;border-radius:50%;background:var(--accent);display:flex;align-items:center;justify-content:center;transition:transform .5s cubic-bezier(.5,-.62,.17,1)}
.boxbtn i svg{width:1.2rem;height:1.2rem;fill:none;stroke:var(--white);stroke-width:2}
.boxbtn:hover i{transform:scale(1.2)}
.drawer__addr{margin-top:3.2rem;font-size:1.3rem;line-height:1.8;color:var(--ink3)}


.mv{position:relative;overflow:hidden;padding-left:12rem}
.mv__inner{position:relative;z-index:2;padding-top:17.2rem}
.mv__content{position:relative;z-index:3}
.mv-en{display:flex;flex-direction:column;align-items:flex-start;position:relative;top:-.9rem;margin:0}
.mv-en__b{display:inline-block;position:relative;overflow:hidden;line-height:.86;padding:1.5rem 0}
.mv-en__b:nth-child(2){padding-left:.6rem}
.mv-en__b::before{content:"";position:absolute;inset:0;z-index:2;background:var(--white);transform-origin:left center;transform:scaleX(0);animation:sweep 1.5s cubic-bezier(.86,0,.07,1) forwards paused}
.mv-en__b>span{display:block;font:600 clamp(6.4rem,10.6vw,16.4rem)/.86 var(--cond);letter-spacing:.005em;text-transform:uppercase;opacity:0;transition:opacity 0s}
.mv-en__b:nth-child(1)::before{animation-delay:.17s}.mv-en__b:nth-child(1)>span{transition-delay:.97s}
.mv-en__b:nth-child(2)::before{animation-delay:.34s}.mv-en__b:nth-child(2)>span{transition-delay:1.14s}
.mv-en__b:nth-child(3)::before{animation-delay:.51s}.mv-en__b:nth-child(3)>span{transition-delay:1.31s}
.mv-ja{position:relative;display:inline-block;margin-top:2.4rem;padding:.5rem 0;font-size:clamp(1.9rem,1.56vw,2.9rem);line-height:1.2;font-weight:700;letter-spacing:.04em}
.mv-ja::before{content:"";position:absolute;inset:0;background:var(--white);transform-origin:left center;transform:scaleX(0);animation:sweep 1.5s var(--ease) .68s forwards paused}
.mv-ja>span{position:relative;opacity:0;transition:opacity 0s 1.48s}
.is-op .mv-en__b::before,.is-op .mv-ja::before{animation-play-state:running}
.is-op .mv-en__b>span,.is-op .mv-ja>span{opacity:1}
@keyframes sweep{0%{transform:scaleX(0);transform-origin:left center}48%{transform:scaleX(1);transform-origin:left center}60%{transform:scaleX(1);transform-origin:right center}to{transform:scaleX(0);transform-origin:right center}}
.circle{display:flex;align-items:center;justify-content:center;width:10rem;height:10rem;border-radius:50%;background:var(--white);transition:transform .5s cubic-bezier(.5,-.62,.17,1),background-color .5s var(--ease),box-shadow .5s}
.circle svg{width:2.2rem;height:2.2rem;fill:none;stroke:var(--accent);stroke-width:1.8;transition:stroke .5s}
.circle:hover{background:var(--main);transform:scale(1.1);box-shadow:0 4px 30px rgba(0,0,0,.25)}
.circle:hover svg{stroke:var(--white)}
.mv-scroll{margin-top:6.8rem}
.mv-image{position:absolute;top:-12.5rem;right:0;z-index:2;width:55.17%;max-width:84rem;aspect-ratio:640/920;border-radius:1000px;overflow:hidden;
  opacity:0;transform:translateY(2rem);clip-path:inset(100% 0 0 0 round 1000px);transition:opacity 1.4s cubic-bezier(.86,0,.07,1),transform 1.4s cubic-bezier(.86,0,.07,1),clip-path 1.4s cubic-bezier(.86,0,.07,1)}
.is-op2 .mv-image{opacity:1;transform:none;clip-path:inset(0 0 0 0 round 1000px)}
.fade{position:relative;width:100%;height:100%}
.fade>span{position:absolute;inset:0;opacity:0;transition:opacity 2.5s ease}
.fade>span.on{opacity:1;z-index:1;transition:none}
.fade>span.out{opacity:0;z-index:2;transition:opacity 2.5s ease}
.fade img{width:100%;height:100%;object-fit:cover}
.fade>span.on img,.fade>span.out img{animation:zoom 20s linear forwards}
@keyframes zoom{from{transform:scale(1)}to{transform:scale(1.15)}}
.mv-slide{position:relative;z-index:1;width:100%;max-height:74rem;aspect-ratio:1320/656;margin-top:-7.2rem;border-radius:360px 0 0 0;overflow:hidden}
.mv-slide .fade{transform:scale(1.15);will-change:transform}
.mv-loop{position:absolute;top:0;left:0;z-index:1;width:660rem;display:flex;opacity:.2;overflow:hidden;pointer-events:none}
.mv-loop::after{content:"";position:absolute;left:0;right:0;bottom:0;height:20%;background:linear-gradient(0deg,var(--main) 6.44%,rgba(16,42,114,0) 34.22%)}
.mv-loop span{width:330rem;flex:0 0 auto;will-change:transform}
.mv-loop span:first-child{animation:loop1 300s -150s linear infinite}
.mv-loop span:last-child{animation:loop2 300s linear infinite}
.mv-loop img{width:100%;height:auto}
@keyframes loop1{from{transform:translateX(100%)}to{transform:translateX(-100%)}}
@keyframes loop2{from{transform:translateX(0)}to{transform:translateX(-200%)}}


.news{position:relative;z-index:2;margin-top:10rem;padding-left:22.24%;min-height:44rem}
.news__h{font-size:2.6rem;font-weight:700;line-height:1;letter-spacing:.02em}
.news__list{margin-top:3.2rem}
.news__list li{position:relative}
.news__list a{position:relative;display:flex;align-items:center;padding:2.4rem 7.8rem 2.4rem 0;font-size:1.3rem;font-weight:600;line-height:1.7}
.news__list a::before,.news__list li:last-child a::after{content:"";position:absolute;left:0;right:calc(-1 * var(--gut));height:1px;background:var(--line)}
.news__list a::before{top:0}.news__list li:last-child a::after{bottom:0}
.news__meta{display:flex;align-items:center;gap:2rem;flex:0 0 25rem;padding-right:4.8rem}
.news__meta time{font:600 1.5rem/1 var(--din);letter-spacing:.04em}
.tag{display:inline-block;padding:.7rem 1rem;border:1px solid var(--white);border-radius:50px;background:var(--white);color:#383838;font-size:1rem;font-weight:700;line-height:1;letter-spacing:.02em;white-space:nowrap}
.arw{position:absolute;right:0;top:50%;width:1.3rem;height:1.3rem;margin-top:-.65rem;fill:none;stroke:currentColor;stroke-width:1.4;opacity:.6}
.cbtn{position:relative;display:inline-block;margin-top:3.2rem;padding:.9rem 0;font-size:1.3rem;font-weight:600;line-height:1}
.cbtn::before{content:"";position:absolute;left:-1.5rem;top:50%;width:3.2rem;height:3.2rem;margin-top:-1.6rem;border-radius:100px;background:rgba(255,255,255,.2);transition:transform .5s var(--ease)}
.cbtn:hover::before{transform:scale(1.3)}
.cbtn span{position:relative;z-index:2}
.obj{position:absolute;display:block;border-radius:500px;overflow:hidden}
.obj img{width:100%;height:100%;object-fit:cover}
.obj--1{width:25.6rem;aspect-ratio:256/368;top:-23.4rem;left:-10rem}
.obj--2{width:18.9rem;aspect-ratio:1;border-radius:50%;top:11.4rem;left:-27.8rem}
.obj--3{width:17.3rem;aspect-ratio:173/213;top:14.5rem;left:3.7rem}
.btn2{display:none}


.hh{font-size:5.2rem;font-weight:700;line-height:1;letter-spacing:.1em}
.hh small{display:block;position:relative;left:-2rem;margin-bottom:.8rem;font:700 1.2rem/1 var(--din);letter-spacing:.1em}
.hh-set{display:flex;align-items:flex-end;justify-content:space-between;gap:2rem}
.txt-s{margin-top:3.2rem;font-size:1.4rem;line-height:2;opacity:.8}


.biz{margin-top:14rem;overflow:hidden}
.biz__track{display:flex;margin-top:6.5rem}
.biz__item{position:relative;flex:0 0 33.3333%}
.biz__item a{display:block;position:relative}
.biz__media{position:relative;overflow:hidden;aspect-ratio:440/680}
.biz__media img{width:100%;height:100%;object-fit:cover;transition:transform .35s cubic-bezier(.215,.61,.355,1)}
.biz__media::before{content:"";position:absolute;right:0;bottom:0;z-index:2;width:106%;height:100%;pointer-events:none;background:linear-gradient(0deg,rgba(0,0,0,.7) 15%,rgba(0,0,0,0) 44%);transform-origin:bottom center;transition:all .6s var(--ease)}
.biz__item a:hover .biz__media img{transform:scale(1.07)}
.biz__item a:hover .biz__media::before{transform:scale(1,1.5);background-color:rgba(0,0,0,.1)}
.biz__body{position:absolute;left:0;bottom:0;z-index:3;width:100%;padding:3.2rem 4rem}
.biz__label{font:700 1.2rem/1 var(--din);letter-spacing:.1em;text-transform:uppercase}
.biz__title{margin-top:1.6rem;font-size:2.4rem;font-weight:700;line-height:1.2;letter-spacing:.1em}
.biz__txt{margin-top:3.2rem;font-size:1.4rem;line-height:2;text-align:justify}
.biz__nav{display:none}


.trades{margin-top:10.8rem}
.tiles{display:grid;grid-template-columns:repeat(3,1fr);margin-top:6.5rem;border-top:1px solid var(--line)}
.tile{position:relative;border-right:1px solid var(--line);border-bottom:1px solid var(--line)}
.tile:nth-child(3n){border-right:0}
.tile__media{aspect-ratio:876/546;overflow:hidden}
.tile__media img{width:100%;height:100%;object-fit:cover;transition:transform .5s var(--ease)}
.tile a:hover .tile__media img{transform:scale(1.05)}
.tile__body{padding:3.3rem 3rem 4rem}
.tile__title{margin-top:1.2rem;font-size:1.6rem;font-weight:600;line-height:1.75}
.tile__txt{margin-top:.8rem;font-size:1.3rem;line-height:1.9;opacity:.8}
.trades__note{margin:3.2rem var(--gut) 0;font-size:1.3rem;line-height:1.9;opacity:.8}


.company{margin-top:10.8rem}
.company__title{width:31.7rem;padding-right:6rem}
.company__media{position:relative;width:calc(100vw - var(--sbw,0px));left:calc(-12rem - var(--gut));margin-top:5.8rem;aspect-ratio:1440/740;max-height:94rem;overflow:hidden}
.company__media img{width:100%;height:100%;object-fit:cover}
.company__nav{position:absolute;top:6rem;right:calc(-1 * var(--gut));z-index:2;width:calc(100% - 31.7rem + var(--gut));padding:8rem;background:var(--white);border-radius:120px 0 0 6px;box-shadow:0 4px 20px rgba(0,0,0,.1);color:var(--ink)}
.company__grid{display:grid;grid-template-columns:1fr 1fr;gap:3.2rem 3.3rem}
.ccard a{display:block}
.ccard__media{border-radius:40px 4px 4px 4px;overflow:hidden;aspect-ratio:365/226}
.ccard__media img{width:100%;height:100%;object-fit:cover;transition:transform .5s var(--ease)}
.ccard a:hover .ccard__media img{transform:scale(1.05)}
.ccard__title{display:inline-block;margin-top:1.9rem;font-size:1.6rem;font-weight:700;line-height:1.4;letter-spacing:.1em;color:var(--ink)}
.ccard__txt{margin-top:.8rem;font-size:1.4rem;line-height:2;color:var(--ink4);opacity:.8}


.outline{padding-top:14rem}
.hl{font-size:3rem;font-weight:700;line-height:1;letter-spacing:.1em;text-align:center}
.tbl{margin-top:6.4rem;border-top:1px solid var(--line)}
.tbl>div{display:flex}
.tbl dt{flex:0 0 30%;padding:2rem 1.6rem 2rem 0;border-bottom:1px solid var(--line);font-size:1.5rem;font-weight:600;line-height:1.7}
.tbl dd{flex:1 1 auto;min-width:0;padding:2rem 0;border-bottom:1px solid var(--line);font-size:1.5rem;line-height:1.7}
.tbl dd small{display:block;margin-top:.4rem;font-size:1.3rem;opacity:.8}
.tbl .dots li{position:relative;padding-left:1.4em}
.tbl .dots li::before{content:"";position:absolute;left:.3em;top:.75em;width:.4em;height:.4em;border-radius:50%;background:currentColor}
.tbl .cols{display:grid;grid-template-columns:1fr 1fr;gap:0 2.4rem}
.tbl a.ul{word-break:break-all}


.partner{margin-top:12.8rem;display:flex;flex-direction:column-reverse}
.partner__content{position:relative;padding-top:2.8rem}
.partner__content .txt-s{width:44.82%}
.partner__btn{position:absolute;top:-4.5rem;right:0;z-index:1;width:9rem;height:9rem;border-radius:50%;background:var(--white);box-shadow:0 4px 30px rgba(0,0,0,.25);display:flex;align-items:center;justify-content:center;transition:transform .5s cubic-bezier(.5,-.62,.17,1),background-color .5s var(--ease)}
.partner__btn svg{width:1.6rem;height:1.6rem;fill:none;stroke:var(--ink);stroke-width:1.8;transition:stroke .5s}
.partner__btn span{display:none}
.partner__btn:hover{background:var(--main);transform:scale(1.2);box-shadow:0 4px 30px rgba(0,0,0,.4)}
.partner__btn:hover svg{stroke:var(--white)}
.partner__pict{display:flex;width:calc(100% + var(--gut));border-radius:160px 0 0 0;overflow:hidden}
.partner__pict span{flex:1 1 33.333%;aspect-ratio:1}
.partner__pict img{width:100%;height:100%;object-fit:cover}


.contact{padding-top:17rem}
.contact__lead{margin-top:3.2rem;text-align:center;font-size:1.5rem;line-height:2}
.contact__tel{margin-top:4.8rem;padding:4rem;background:var(--sub);border-radius:4px;text-align:center}
.contact__tel p{font-size:1.6rem;font-weight:700;line-height:1}
.contact__tel .tel-big{color:var(--white)}
.contact__tel .s{margin-top:1.2rem;font:600 1.4rem/1.6 var(--din);letter-spacing:.04em;opacity:.85}
.form{margin-top:6.4rem}
.form .tbl dt{padding-top:2.6rem}
.req,.opt{display:inline-block;margin-left:1rem;padding:.3rem .8rem;border-radius:50px;font-size:1rem;font-weight:700;line-height:1.2;vertical-align:.15em}
.req{background:var(--white);color:var(--main)}
.opt{border:1px solid rgba(255,255,255,.6)}
.form input[type=text],.form input[type=tel],.form input[type=email],.form select,.form textarea{width:100%;padding:1.4rem 1.6rem;border:1px solid transparent;border-radius:4px;background:var(--white);color:var(--ink);font:400 1.6rem/1.6 var(--jp)}
.form textarea{min-height:20rem;resize:vertical}
.form select{appearance:none;background:var(--white) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%23102a72' stroke-width='1.6'/%3E%3C/svg%3E") no-repeat right 1.6rem center/1.2rem}
.form input:focus,.form select:focus,.form textarea:focus{outline:2px solid var(--accent2);outline-offset:1px}
.agree{margin-top:4rem;text-align:center;font-size:1.4rem;line-height:1.9}
.agree label{display:inline-flex;align-items:center;gap:1rem;margin-top:1.2rem;font-size:1.5rem;font-weight:700;cursor:pointer}
.agree input{width:2rem;height:2rem;accent-color:var(--accent)}
.ts{margin-top:3.2rem;display:flex;justify-content:center;min-height:65px}
.submit{margin-top:3.2rem;display:flex;justify-content:center}
.submit .boxbtn{width:52rem;max-width:100%;margin-top:0;text-align:left;cursor:pointer}
.submit .boxbtn:disabled{opacity:.6;cursor:wait}
.msg{margin-top:2.4rem;text-align:center;font-size:1.5rem;line-height:1.8;min-height:2.7rem}
.msg.ok{color:#bfe3ff}.msg.err{color:#ffd3d3}
.note{text-align:center;font-size:1.3rem;line-height:1.9;opacity:.8}


.ft{position:relative;margin-top:17rem;background:var(--sub);padding-left:12rem}
.ft__in{display:flex;margin:0 var(--gut)}
.ft__left{position:relative;z-index:5;flex:0 0 56%;padding:3.5rem 13rem 7.3rem 0;color:var(--ink)}
.ft__left::after{content:"";position:absolute;top:-4.5rem;right:0;bottom:0;left:calc(-12rem - var(--gut));z-index:-1;background:var(--gray);border-radius:0 270px 0 0}
.ft__logo{display:inline-flex;align-items:center;gap:1.4rem;color:var(--main)}
.ft__logo img{width:6rem}
.ft__logo span{display:flex;flex-direction:column;line-height:1.25}
.ft__logo small{font:600 1.1rem/1 var(--din);letter-spacing:.16em}
.ft__logo b{margin-top:.6rem;font-size:2rem;letter-spacing:.08em}
.ft__addr{margin-top:3.5rem;font-size:1.3rem;line-height:1.8;color:var(--ink3);font-style:normal}
.ft__tel-l{margin-top:3.2rem;font-size:1.6rem;font-weight:600;line-height:1;color:var(--ink)}
.ft__fax{margin-top:.8rem;font:600 1.5rem/1.4 var(--din);letter-spacing:.04em;color:var(--ink4)}
.copy{margin-top:4.8rem;font:600 1.2rem/1 var(--din);letter-spacing:.08em;color:#666}
.ft__right{position:relative;z-index:4;flex:1 1 auto;padding:8rem 0 7.3rem 12rem}
.ft__list>li+li{margin-top:3.6rem}
.ft__list>li>a{display:inline-flex;align-items:flex-start;gap:1.4rem;font-size:2.8rem;font-weight:700;line-height:1;letter-spacing:.08em}
.ft__list>li>a small{font:700 1rem/1 var(--din);letter-spacing:.1em;padding-top:.2rem}
.ft__child{display:flex;flex-wrap:wrap;margin-top:1.8rem;padding-left:4.4rem;font-size:1.4rem;line-height:1.8}
.ft__child li+li::before{content:"/";margin:0 1rem;opacity:.5}
.ft__sub{margin-top:4.8rem;font-size:1.3rem;display:flex;gap:2.4rem}
.totop{position:absolute;right:0;bottom:0;z-index:6;width:10rem;height:10rem;border-radius:30px 0 0 0;background:var(--main);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1.1rem}
.totop svg{width:2rem;height:2rem;fill:none;stroke:var(--white);stroke-width:1.8;transition:transform .5s cubic-bezier(.5,-.62,.17,1)}
.totop:hover svg{transform:translateY(-.6rem)}
.totop span{font-size:1rem;font-weight:600;line-height:1}
.copy--sp{display:none}


.hero{position:relative;height:100vh;min-height:60rem;max-height:90rem;padding-left:12rem;display:flex;align-items:center;justify-content:center;overflow:hidden}
.hero__bg{position:absolute;inset:0;z-index:0}
.hero__bg img{width:100%;height:100%;object-fit:cover}
.hero__bg::before{content:"";position:absolute;inset:0;background:rgba(16,42,114,.45)}
.hero::after{content:"";position:absolute;inset:0;z-index:1;background:linear-gradient(0deg,var(--main) 6.44%,rgba(16,42,114,0) 34.22%)}
.hero__in{position:relative;z-index:2;text-align:center;padding:0 2rem}
.hero__link{font-size:2.4rem;letter-spacing:.16em;line-height:1.3}
.hero__title{margin-top:2.8rem;font-size:5.8rem;font-weight:700;line-height:1.4;letter-spacing:.08em}
.page{position:relative;z-index:2;margin-top:-15.3rem;padding-left:12rem}
.policy h2{margin-top:4.8rem;font-size:1.8rem;font-weight:700;line-height:1.6;letter-spacing:.06em}
.policy p,.policy li{margin-top:1.6rem;font-size:1.5rem;line-height:2}
.policy ul{margin-top:1.6rem}.policy li{margin-top:.4rem;padding-left:1.4em;position:relative}
.policy li::before{content:"";position:absolute;left:.3em;top:.85em;width:.4em;height:.4em;border-radius:50%;background:currentColor}
.policy .back{margin-top:6.4rem;text-align:center}


.op{position:fixed;inset:0;z-index:2000;background:var(--main);display:flex;align-items:center;justify-content:center;transition:opacity .7s var(--ease),visibility 0s .7s}
.op__in{display:flex;flex-direction:column;align-items:center;gap:2.2rem}
.op__mark{width:12rem;height:auto;opacity:0;transform:translateY(1.2rem);animation:opin 1s var(--ease) .15s forwards}
.op__name{font-size:1.7rem;font-weight:700;letter-spacing:.24em;opacity:0;animation:opin 1s var(--ease) .55s forwards}
.op__bar{display:block;width:16rem;height:2px;background:rgba(255,255,255,.2);overflow:hidden}
.op__bar i{display:block;width:100%;height:100%;background:var(--white);transform-origin:left;transform:scaleX(0);animation:bar 2s cubic-bezier(.86,0,.07,1) .5s forwards}
@keyframes opin{to{opacity:1;transform:none}}
@keyframes bar{to{transform:scaleX(1)}}
.is-loaded .op{opacity:0;visibility:hidden}
.no-op .op{display:none}
html:not(.js) .op,html:not(.js) .curtain{display:none}
html:not(.js) .mv-en__b>span,html:not(.js) .mv-ja>span{opacity:1}
html:not(.js) .mv-image{opacity:1;transform:none;clip-path:none}
html:not(.js) .fade>span:first-child{opacity:1}
.curtain{position:fixed;inset:0;z-index:1999;background:var(--main);transform:translateY(100%);visibility:hidden;pointer-events:none;transition:transform .5s cubic-bezier(.86,0,.07,1)}
.is-leave .curtain{transform:none;visibility:visible}


.js .rv{opacity:0;transform:translateY(2.4rem);transition:opacity 1s var(--ease),transform 1.2s var(--ease)}
.js .rv.on{opacity:1;transform:none}
.js .rvm{clip-path:inset(0 0 100% 0);transition:clip-path 1.2s cubic-bezier(.86,0,.07,1)}
.js .rvm.on{clip-path:inset(0 0 0 0)}
.rv[data-d="1"]{transition-delay:.08s}.rv[data-d="2"]{transition-delay:.16s}.rv[data-d="3"]{transition-delay:.24s}



@media (min-width:769px) and (max-height:860px){
  .vnav{padding:clamp(1.6rem,4vh,5rem) 0}
  .vnav a{font-size:clamp(1.2rem,2.1vh,1.8rem)}
  .vnav li+li::before{height:clamp(.8rem,1.6vh,1.4rem);margin:clamp(.5rem,1.4vh,1.2rem) auto}
  .vnav__btn{width:clamp(3.6rem,5.8vh,5rem);height:clamp(3.6rem,5.8vh,5rem);margin-top:clamp(1.2rem,3.5vh,3rem)}
}
@media (min-width:769px) and (max-height:560px){
  .vnav li+li::before{height:.6rem;margin:.4rem auto}
  .vnav a{font-size:1.1rem}
}
@media (max-width:1200px){
  .hd-sub{display:none}
  .news{padding-left:16%}
  .obj--2{display:none}
  .company__nav{padding:5.6rem}
  .ft__left{padding-right:6rem}
  .ft__right{padding-left:6rem}
}
@media (max-width:1000px) and (min-width:769px){
  .tiles{grid-template-columns:repeat(2,1fr)}
  .tile:nth-child(3n){border-right:1px solid var(--line)}
  .tile:nth-child(2n){border-right:0}
  .company__title{width:100%;padding-right:0}
  .company__media{display:none}
  .company__nav{position:relative;top:auto;right:auto;width:100%;margin-top:4rem;padding:4.8rem;border-radius:80px 0 0 6px}
  .news__meta{flex-basis:20rem;padding-right:2.4rem}
}


@media (max-width:768px){
  :root{--gut:1.6rem}
  body{font-size:1.2rem}
  .wrap,.mv,.ft,.page,.hero{padding-left:0}
  .hd-logo{position:absolute;top:1.6rem;left:1.6rem;gap:.8rem}
  .hd-logo img{width:3rem}
  .hd-logo small{font-size:.8rem}
  .hd-logo b{margin-top:.3rem;font-size:1.25rem}
  .hd-logo b i{font-size:1rem}
  .vnav{display:none}
  .mbtn{display:flex;width:5rem;height:5rem;border-radius:0 0 0 10px}
  .mbtn span{width:2.4rem;height:1.2rem}
  .is-nav .mbtn span i:nth-child(1){transform:translateY(.5rem) rotate(35deg)}
  .is-nav .mbtn span i:nth-child(3){transform:translateY(-.5rem) rotate(-35deg)}
  .drawer__bg{display:none}
  .drawer__logo{top:1.6rem;left:1.6rem}
  .drawer__logo img{width:3rem}.drawer__logo b{font-size:1.25rem}.drawer__logo small{font-size:.8rem}
  .drawer__in{left:0;border-radius:0;padding:9rem 2rem calc(4rem + env(safe-area-inset-bottom,0px));background:var(--white)}
  .drawer__list>li+li{margin-top:2.6rem}
  .drawer__list>li>a{font-size:2rem}
  .drawer__child{font-size:1.3rem;margin-top:1.2rem}
  .drawer__box{margin-top:4rem;padding:2.4rem;background:var(--gray3)}
  .tel-big{font-size:3.2rem}
  .boxbtn{padding:3.2rem 7rem 3.2rem 2.4rem;font-size:1.3rem}
  .mv{height:100vh;height:100svh;max-height:75.5rem;min-height:53.7rem}
  .mv__inner{height:100%;padding:0}
  .mv__inner .in{height:100%}
  .mv__content{position:absolute;left:0;bottom:2.4rem;max-width:44rem;width:100%}
  .mv-en__b{margin-top:-.4rem;padding:.9rem 0}
  .mv-en__b:nth-child(2){padding:.9rem 0 .8rem .3rem}
  .mv-en__b>span{font-size:clamp(5.2rem,17.5vw,8.4rem)}
  .mv-ja{margin-top:0;font-size:clamp(1.6rem,2.53vw,1.93rem)}
  .mv-scroll{width:4.8rem;height:4.8rem;margin-top:1.9rem}
  .mv-scroll svg{width:1.4rem;height:1.4rem}
  .mv-image{top:5.59%;right:-4.5rem;width:84.72%;max-width:40rem;max-height:80%}
  .mv-image::after{content:"";position:absolute;inset:0;z-index:3;background:rgba(0,0,0,.4)}
  .mv-slide{position:absolute;right:0;bottom:-.9rem;width:calc(100% - 3.2rem);max-height:27.8rem;margin:0;border-radius:90px 0 0 2px}
  .mv-slide::after{content:"";position:absolute;inset:0;z-index:3;background:rgba(11,16,44,.5)}
  .mv-loop{width:420rem}.mv-loop span{width:210rem}
  .news{margin-top:4.8rem;padding-left:0;min-height:0}
  .news__h{font-size:2rem}
  .news__list{margin-top:2.4rem}
  .news__list a{display:block;padding:1.7rem 3rem 1.6rem 0;font-size:1.2rem;line-height:1.8}
  .news__list a::before,.news__list li:last-child a::after{right:0}
  .news__meta{padding:0;margin-bottom:.8rem;gap:1.6rem}
  .news__meta time{font-size:1.3rem}
  .obj{display:none}
  .cbtn{display:none}
  .btn2{display:block;width:80%;max-width:28.6rem;margin:3.2rem auto 0;padding:2rem;border-radius:100px;background:var(--white);color:var(--ink);font-size:1.2rem;font-weight:700;line-height:1.2;text-align:center}
  .hh{font-size:2rem}
  .hh small{left:0;margin-bottom:1.3rem;font-size:1rem}
  .txt-s{margin-top:2.4rem;font-size:1.2rem}
  .biz{margin-top:4.8rem}
  .biz__track{margin:2.7rem 0 0;padding:0 1.6rem;gap:1.6rem;overflow-x:auto;scroll-snap-type:x mandatory;scroll-padding-inline:1.6rem;scrollbar-width:none;-webkit-overflow-scrolling:touch}
  .biz__track::-webkit-scrollbar{display:none}
  .biz__item{flex:0 0 68%;scroll-snap-align:start}
  .biz__media{border-radius:4px;aspect-ratio:265/337}
  .biz__media::before{transform:none!important}
  .biz__body{position:static;margin-top:1.6rem;padding:0}
  .biz__label{font-size:1rem}
  .biz__title{margin-top:1.2rem;font-size:1.8rem}
  .biz__txt{margin-top:1.6rem;font-size:1.2rem;line-height:2;letter-spacing:.06em}
  .biz__nav{display:flex;gap:1rem;margin:2.4rem 1.6rem 0}
  .biz__nav button{width:4rem;height:4rem;border-radius:50%;background:var(--white);display:flex;align-items:center;justify-content:center}
  .biz__nav button[disabled]{background:rgba(255,255,255,.35)}
  .biz__nav svg{width:1.4rem;height:1.4rem;fill:none;stroke:var(--accent);stroke-width:1.8}
  .trades{margin-top:4.8rem}
  .hh-set .cbtn{display:none}
  .tiles{display:block;margin:2.4rem 1.6rem 0;border-top:1px solid var(--line)}
  .tile{border-right:0!important}
  .tile a{display:flex;align-items:center;gap:1.6rem;padding:1.6rem 3rem 1.6rem 0}
  .tile__media{flex:0 0 9.9rem;aspect-ratio:1;border-radius:2px}
  .tile__body{padding:0}
  .tile__title{margin-top:.6rem;font-size:1.2rem;line-height:1.8}
  .tile__txt{font-size:1.1rem;line-height:1.8}
  .tile .arw{display:block}
  .trades__note{margin:2.4rem 1.6rem 0;font-size:1.1rem}
  .company{margin-top:4.8rem}
  .company__title{width:100%;padding:0}
  .company__media{display:none}
  .company__nav{position:static;width:100%;margin-top:2.4rem;padding:0;background:none;border-radius:0;box-shadow:none;color:var(--white);border-top:1px solid var(--line)}
  .company__grid{display:block}
  .ccard a{position:relative;display:flex;align-items:center;gap:1.6rem;padding:1.6rem 3rem 1.6rem 0;border-bottom:1px solid var(--line)}
  .ccard__media{flex:0 0 9.9rem;aspect-ratio:1;border-radius:2px}
  .ccard__title{margin:0;font-size:1.3rem;color:var(--white)}
  .ccard__txt{font-size:1.1rem;line-height:1.8;color:var(--white)}
  .outline{padding-top:7.2rem}
  .in-m{max-width:none;width:auto;margin:0 1.6rem}
  .hl{font-size:2rem}
  .tbl{margin-top:3.2rem}
  .tbl>div{display:block;border-bottom:1px solid var(--line)}
  .tbl dt{padding:1.6rem 0 0;border:0;font-size:1.3rem}
  .tbl dd{padding:.6rem 0 1.6rem;border:0;font-size:1.3rem}
  .tbl .cols{grid-template-columns:1fr}
  .partner{margin-top:4.8rem;flex-direction:column}
  .partner__content{padding-top:0}
  .partner__content .txt-s{width:100%}
  .partner__btn{position:static;display:inline-block;width:auto;height:auto;margin-top:2.4rem;padding:1.4rem 2.6rem;border-radius:100px;box-shadow:none;font-size:1.1rem;font-weight:600;line-height:1;color:var(--ink3)}
  .partner__btn svg{display:none}
  .partner__btn span{display:inline}
  .partner__btn:hover{transform:none;background:var(--white);box-shadow:none}
  .partner__pict{width:calc(100% + 3.2rem);margin:3.2rem 0 0 -1.6rem;border-radius:0}
  .contact{padding-top:8rem}
  .contact__lead{font-size:1.3rem;text-align:left}
  .contact__tel{padding:2.4rem 1.6rem}
  .contact__tel p{font-size:1.3rem}
  .form{margin-top:3.2rem}
  .form .tbl>div{border:0}
  .form .tbl dd{padding-bottom:.8rem}
  .agree{font-size:1.2rem;text-align:left}
  .ft{margin-top:9.6rem}
  .ft__in{display:block;margin:0}
  .ft__left{padding:4.8rem 3.2rem 4.8rem 1.6rem}
  .ft__left::after{top:0;left:0;right:0;background:var(--white);border-radius:0 140px 0 0}
  .ft__logo img{width:4.4rem}.ft__logo b{font-size:1.6rem}
  .ft__tel-l{font-size:1.2rem}
  .ft__left .boxbtn{background:var(--gray3)}
  .ft__left .copy{display:none}
  .ft__right{padding:4.8rem 1.6rem calc(12rem + env(safe-area-inset-bottom,0px));background:var(--sub);border-radius:0 140px 0 0;margin-top:-1px;position:relative}
  .ft__list>li+li{margin-top:2.8rem}
  .ft__list>li>a{font-size:2rem;gap:1.2rem}
  .ft__child{padding-left:3.6rem;font-size:1.2rem}
  .copy--sp{display:block;margin-top:3.2rem;color:rgba(255,255,255,.72)}
  .totop{width:7rem;height:7rem;border-radius:20px 0 0 0}
  .hero{height:56rem;min-height:0}
  .hero__link{font-size:1.4rem}
  .hero__title{margin-top:1.6rem;font-size:3.2rem}
  .page{margin-top:-8rem}
  .policy h2{font-size:1.6rem}
  .policy p,.policy li{font-size:1.3rem}
}
@media (max-width:359px){
  .mv-en__b>span{font-size:5.4rem}
  .tel-big{font-size:2.8rem}
  .ft__list>li>a{font-size:1.8rem}
}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;transition-delay:0s!important}
  .mv-loop span{animation:none!important}
  .js .rv,.js .rvm{opacity:1!important;transform:none!important;clip-path:none!important}
}
