:root{--tc:#69B7B5;--tcd:#397472;--tcl:#F0F8F8;--tkd:#142323;--tkf:#0E1C1C;--ink:#10181F;--mut:#555e66;--sub:#8a939c;--line:#e3e6ec}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:#fff;color:var(--ink);font-family:'IBM Plex Sans JP','Hiragino Sans','Hiragino Kaku Gothic ProN',sans-serif;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
a{color:inherit;text-decoration:none;-webkit-tap-highlight-color:transparent}
button{font:inherit;color:inherit;background:none;border:0;padding:0;margin:0;cursor:pointer;border-radius:0;-webkit-appearance:none;appearance:none;-webkit-tap-highlight-color:transparent}
::selection{background:var(--tc);color:var(--ink)}
@keyframes panelIn{from{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:none}}
@keyframes fadeUp{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
.wrap{max-width:1280px;margin:0 auto;padding:0 40px}

/* header */
.hd{position:sticky;top:0;z-index:1000;background:#fff;border-bottom:1px solid var(--line)}
.hd-in{max-width:1440px;margin:0 auto;padding:0 24px;display:flex;align-items:center;height:57px}
.logo{display:flex;align-items:center;gap:10px;font-weight:700;font-size:16.5px;letter-spacing:.01em;margin-right:28px}
.sq{width:14px;height:14px;background:var(--tc);display:block;flex-shrink:0}
.gnav{display:flex;height:57px}
.gn{height:57px;padding:0 18px;display:flex;align-items:center;gap:7px;font-size:14px}
.gn:hover,.gn[aria-expanded="true"]{background:#f2f4f6}
.car{font-size:9px;color:var(--sub)}
.hd-r{margin-left:auto;display:flex;align-items:center;gap:18px}
.lang{display:flex;border:1px solid #d6dade}
.lang a{font-size:12px;font-weight:500;padding:7px 13px;color:#5b6470}
.lang a:hover{background:#f2f4f6;color:var(--ink)}
.lang a.on{background:var(--ink);color:#fff}
.btn-dark{display:inline-flex;align-items:center;gap:10px;background:var(--ink);color:#fff;font-weight:600;padding:11px 22px;font-size:13.5px}
.btn-dark:hover{background:var(--tcd);color:#fff}
.burger{display:none;width:44px;height:44px;border:1px solid #d6dade;flex-direction:column;align-items:center;justify-content:center;gap:4px}
.burger span{width:18px;height:2px;background:var(--ink);display:block}
.mega{display:none;position:absolute;left:0;right:0;top:57px;background:#fff;border-bottom:1px solid var(--line);box-shadow:0 32px 56px -36px rgba(13,20,20,.4)}
.mega.open{display:block;animation:panelIn .16s ease}
.mega-in{max-width:1440px;margin:0 auto;padding:36px 24px 44px;display:grid;gap:48px}
#mega-svc .mega-in{grid-template-columns:1.7fr 1fr}
#mega-co .mega-in{grid-template-columns:1fr 1.4fr}
.mh{font-size:11px;letter-spacing:.16em;color:var(--sub);font-weight:500;padding-bottom:14px;border-bottom:1px solid var(--line)}
.ml{margin-top:14px;display:grid;gap:2px}
.ml.two{grid-template-columns:1fr 1fr;column-gap:28px}
.ml a{padding:9px 10px;font-size:14px}
.ml a:hover{background:var(--tcl);color:var(--tcd)}
.promo{background:var(--tkd);color:#fff;padding:28px;display:flex;flex-direction:column;gap:12px;align-items:flex-start}
.promo .pe{font-size:11px;letter-spacing:.18em;font-weight:500;color:var(--tc)}
.promo p{margin:0;font-size:15.5px;font-weight:600;line-height:1.8}
.promo a{color:var(--tc);font-size:13.5px;font-weight:600}
.promo a:hover{color:#fff}
.coblurb{border-left:1px solid var(--line);padding-left:48px;display:flex;flex-direction:column;justify-content:center;gap:14px}
.coblurb .pe{font-size:11px;letter-spacing:.18em;font-weight:500;color:var(--tcd)}
.coblurb p{margin:0;font-size:15px;line-height:2;color:var(--mut);max-width:440px}
.coblurb .geo{font-size:12.5px;letter-spacing:.06em;color:var(--sub)}
.scrim{display:none;position:fixed;left:0;right:0;top:57px;bottom:0;background:rgba(10,18,18,.38);z-index:900}
.scrim.open{display:block}

/* drawer */
.dscrim{display:none;position:fixed;inset:0;background:rgba(10,18,18,.5);z-index:1500}
.drawer{position:fixed;top:0;right:0;bottom:0;width:min(320px,86vw);background:#fff;z-index:1600;overflow-y:auto;box-shadow:-24px 0 56px -24px rgba(13,20,20,.5);transform:translateX(100%);visibility:hidden}
body.dopen .drawer{transform:none;visibility:visible;transition:transform .22s ease}
body.dopen .dscrim{display:block}
.dr-hd{display:flex;align-items:center;justify-content:space-between;padding:6px 8px 6px 20px;border-bottom:1px solid var(--line)}
.dr-hd .logo{margin:0;font-size:15px}
.dr-x{width:44px;height:44px;font-size:19px;color:var(--mut)}
.dr-b{padding:12px 12px 28px;display:grid;gap:2px}
.dr-b .di{padding:12px 10px;min-height:44px;font-size:14.5px;display:flex;align-items:center}
.dr-b .di:hover{background:var(--tcl)}
.dr-sec{margin:14px 10px 6px;padding-top:16px;border-top:1px solid var(--line);font-size:11px;letter-spacing:.14em;font-weight:500;color:var(--sub)}
.dr-b .btn-dark{margin:18px 10px 0;justify-content:center;min-height:48px;font-size:14px}

/* hero */
.hero,.phero{position:relative;overflow:hidden;background:var(--tkd);color:#fff;background-image:linear-gradient(rgba(255,255,255,.045) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.045) 1px,transparent 1px);background-size:64px 64px}
.deco{position:absolute;border:1px solid var(--tc)}
.hero .d1{top:64px;right:-140px;width:460px;height:460px;opacity:.45}
.hero .d2{top:130px;right:-74px;width:460px;height:460px;opacity:.2}
.hero .d3{top:64px;right:322px;width:18px;height:18px;background:var(--tc);border:0}
.phero .d1{top:40px;right:-160px;width:380px;height:380px;opacity:.4}
.phero .d2{top:96px;right:-100px;width:380px;height:380px;opacity:.18}
.hero-in{position:relative;padding-top:124px;padding-bottom:92px;animation:fadeUp .55s ease both}
.phero-in{position:relative;padding-top:84px;padding-bottom:76px;animation:fadeUp .45s ease both}
.ey{font-size:12.5px;letter-spacing:.22em;font-weight:500;color:var(--tc)}
.hero h1{margin:28px 0 0;font-size:clamp(36px,5.2vw,74px);font-weight:600;line-height:1.24}
html[lang="en"] .hero h1{line-height:1.16}
.phero h1{margin:22px 0 0;font-size:clamp(30px,4.2vw,58px);font-weight:600;line-height:1.3}
.lead{margin:30px 0 0;max-width:680px;font-size:16px;line-height:2.05;color:#b6c2c1}
.phero .lead{margin-top:24px;font-size:15.5px}
.btns{margin-top:44px;display:flex;flex-wrap:wrap;gap:14px}
.btn-acc{display:inline-flex;align-items:center;gap:10px;background:var(--tc);color:var(--ink);padding:16px 30px;font-size:14.5px;font-weight:600}
.btn-acc:hover{background:#fff}
.btn-ghost{display:inline-flex;align-items:center;border:1px solid rgba(255,255,255,.45);color:#fff;padding:16px 30px;font-size:14.5px;font-weight:600}
.btn-ghost:hover{border-color:#fff;background:rgba(255,255,255,.08)}
.uses{margin-top:30px;display:flex;flex-wrap:wrap;gap:10px}
.uses span{border:1px solid rgba(255,255,255,.32);padding:8px 15px;font-size:12.5px;color:#d3dbda}
.stats{position:relative;border-top:1px solid rgba(255,255,255,.16)}
.sg{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1px}
.sg>div{padding:26px 28px 30px;outline:1px solid rgba(255,255,255,.16)}
.sn{font-size:34px;font-weight:600;color:var(--tc)}
.sn small{font-size:19px}
.sl{margin-top:8px;font-size:12.5px;color:#96a3a2}

/* sections */
.sec{padding:110px 0 120px}
.sec.tint{background:var(--tcl)}
.sec.dark{background:var(--tkd);color:#fff}
.sec.feat{padding:96px 0 20px}
.sec.spec{padding:76px 0 110px}
.kick{display:flex;align-items:baseline;gap:18px;font-size:12px;letter-spacing:.18em;font-weight:500;color:var(--sub)}
.kick b{color:var(--tcd);font-weight:500}
.dark .kick{color:#7f8c8b}
.dark .kick b{color:var(--tc)}
.h2{margin:16px 0 0;font-size:clamp(28px,3.6vw,46px);font-weight:600;line-height:1.25}
.h2.s{margin-top:14px;font-size:clamp(24px,2.8vw,36px);line-height:1.3}
.intro{margin:22px 0 0;max-width:760px;font-size:15.5px;line-height:2;color:var(--mut)}
.dark .intro{color:#a4b1b0}
.cards{margin-top:52px;display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:1px;border:1px solid var(--line)}
.feat .cards{margin-top:44px;grid-template-columns:repeat(auto-fit,minmax(300px,1fr))}
.card{background:#fff;outline:1px solid var(--line);padding:30px 28px 34px;display:flex;flex-direction:column;gap:12px}
a.card:hover,.feat .card:hover{background:var(--tcl)}
.tint .cards{border-color:#d8e2e0}
.tint .card{outline-color:#d8e2e0;padding:32px 28px 36px;gap:13px}
.bar{width:26px;height:3px;background:var(--tc);margin-bottom:4px;display:block}
.cat{font-size:11px;letter-spacing:.12em;color:var(--sub);font-weight:500}
.ct{margin:0;font-size:20px;font-weight:600;line-height:1.45}
.tint .ct{font-size:18.5px;line-height:1.5}
.feat .ct{font-size:17.5px;line-height:1.5}
.cd{margin:0;font-size:13.5px;line-height:1.95;color:var(--mut)}
html[lang="en"] .cd{line-height:1.85}
.more{margin-top:auto;padding-top:10px;font-size:13px;font-weight:600;color:var(--tcd)}
.rno{font-size:13px;font-weight:600;color:var(--tcd);letter-spacing:.06em}
.bgd{margin-top:56px;display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:1px;border:1px solid rgba(255,255,255,.16)}
.bgd>div{padding:36px 32px 40px;outline:1px solid rgba(255,255,255,.16)}
.bn{font-size:clamp(38px,4.4vw,60px);font-weight:600;line-height:1;color:var(--tc)}
.bn small{font-size:24px}
.bl{margin-top:14px;font-size:13.5px;color:#a4b1b0}
.chips{margin-top:36px;display:flex;flex-wrap:wrap;gap:12px}
.chips span{border:1px solid rgba(255,255,255,.3);padding:9px 16px;font-size:12.5px;color:#d3dbda}
.tbl{margin-top:48px;border-top:1px solid var(--ink)}
.spec .tbl{margin-top:40px;max-width:900px}
.tr{display:grid;grid-template-columns:240px 1fr;gap:24px;padding:26px 0;border-bottom:1px solid var(--line)}
.spec .tr{padding:22px 0}
.tk{font-size:13.5px;font-weight:600;color:var(--sub)}
.tv{font-size:15px;line-height:1.9}
.cta{background:var(--tc);color:var(--ink);padding:96px 0}
.cta .wrap{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:32px}
.cta h2{margin:0;font-size:clamp(26px,3.4vw,44px);font-weight:600;line-height:1.35}
.cta p{margin:18px 0 0;max-width:560px;font-size:15px;line-height:1.9;color:rgba(13,22,21,.75)}
.cta .btn-dark{padding:20px 40px;font-size:15px}
.cta .btn-dark:hover{background:#fff;color:var(--ink)}
.crumb{border-bottom:1px solid var(--line);background:var(--tcl)}
.crumb .wrap{padding-top:14px;padding-bottom:14px;display:flex;flex-wrap:wrap;align-items:center;gap:10px;font-size:12.5px;color:var(--sub)}
.crumb a:hover{color:var(--tcd)}
.crumb .cur{color:var(--ink);font-weight:500}

/* footer */
.ft{background:var(--tkf);color:#fff;padding-top:72px}
.ft-g{display:grid;grid-template-columns:1.3fr 1fr 1fr;gap:48px;padding-bottom:64px}
.ft-b{display:flex;flex-direction:column;gap:16px;align-items:flex-start}
.ft-b .logo{margin:0}
.ft-tag{font-size:13px;line-height:2;color:rgba(255,255,255,.55)}
.ft-geo{font-size:11.5px;letter-spacing:.08em;color:rgba(255,255,255,.4)}
.ft-h{font-size:11px;letter-spacing:.16em;font-weight:500;color:rgba(255,255,255,.4);margin-bottom:16px}
.ft-l{display:grid;gap:2px 24px;justify-items:start}
.ft-l.two{grid-template-columns:1fr 1fr}
.ft-l a{padding:5px 0;font-size:13px;color:rgba(255,255,255,.62)}
.ft-l a:hover{color:var(--tc)}
.ft-c{border-top:1px solid rgba(255,255,255,.12)}
.ft-c .wrap{padding-top:22px;padding-bottom:22px;font-size:12px;color:rgba(255,255,255,.45)}

/* contact */
.fl{display:grid;grid-template-columns:1.6fr .9fr;gap:56px;align-items:start}
.form{display:grid;gap:24px}
.fr{display:grid;grid-template-columns:1fr 1fr;gap:24px}
.fld{display:block}
.lab{display:flex;align-items:center;gap:8px;font-size:13px;font-weight:600;margin-bottom:9px}
.req{background:var(--tcd);color:#fff;font-size:10px;font-weight:600;padding:2px 7px;letter-spacing:.06em}
.opt{border:1px solid #c3cad1;color:var(--sub);font-size:10px;font-weight:600;padding:1px 6px;letter-spacing:.06em}
.inp{width:100%;padding:13px 14px;border:1px solid #c3cad1;background:#fff;font:inherit;font-size:16px;color:var(--ink);border-radius:0;-webkit-appearance:none;appearance:none}
.inp:focus{border-color:var(--tcd);outline:2px solid var(--tcl)}
select.inp{padding-right:40px;background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6'%3E%3Cpath d='M0 0l5 6 5-6z' fill='%238a939c'/%3E%3C/svg%3E") no-repeat right 14px center}
textarea.inp{line-height:1.9;resize:vertical;min-height:180px}
.agree{display:flex;align-items:center;gap:10px;font-size:13.5px;cursor:pointer}
.agree input{width:18px;height:18px;margin:0;accent-color:var(--tcd)}
.err{display:none;margin-top:8px;color:#B3261E;font-size:12.5px}
.err.show{display:block}
.submit{border:0;padding:17px 48px;font-size:14.5px}
.aside{border:1px solid var(--line);background:var(--tcl);padding:30px 28px 34px}
.aside h2{margin:0;font-size:13px;font-weight:600;letter-spacing:.04em;color:var(--tcd)}
.aside ul{margin:18px 0 0;padding:0;list-style:none;display:grid;gap:14px}
.aside li{display:flex;gap:12px;align-items:flex-start;font-size:13.5px;line-height:1.95;color:var(--mut)}
.aside li::before{content:"";width:8px;height:8px;background:var(--tc);display:block;margin-top:7px;flex-shrink:0}
.done{display:none;border:1px solid var(--line);padding:56px 48px;flex-direction:column;gap:16px;align-items:flex-start}
.done.show{display:flex}
.done h2{margin:0;font-size:24px;font-weight:600;line-height:1.5}
.done p{margin:0;font-size:14.5px;line-height:2;color:var(--mut)}
.btn-line{display:inline-flex;border:1px solid var(--ink);padding:13px 26px;font-size:13.5px;font-weight:600;margin-top:8px}
.btn-line:hover{background:var(--ink);color:#fff}

/* mobile */
@media (max-width:979px){
.wrap{padding:0 20px}
.hd-in{padding:0 12px 0 16px}
.gnav,.hd-cta,.mega,.scrim{display:none !important}
.burger{display:flex}
.logo{margin-right:auto}
.hd-r{gap:10px}
.hero .deco,.phero .deco{display:none}
.hero-in{padding-top:72px;padding-bottom:56px}
.phero-in{padding-top:56px;padding-bottom:52px}
.lead{font-size:15px}
.sg{grid-template-columns:1fr 1fr}
.sg>div{padding:20px 18px 22px}
.sn{font-size:28px}
.sec{padding:72px 0 80px}
.sec.feat{padding:64px 0 8px}
.sec.spec{padding:52px 0 72px}
.cards{margin-top:36px;grid-template-columns:1fr !important}
.card{padding:26px 22px 28px}
.bgd{grid-template-columns:1fr 1fr;margin-top:40px}
.bgd>div{padding:26px 20px 28px}
.bn{font-size:34px}
.bn small{font-size:18px}
.tr,.spec .tr{grid-template-columns:104px 1fr;gap:16px;padding:18px 0}
.tk{font-size:12.5px}
.tv{font-size:14px;line-height:1.85}
.cta{padding:64px 0}
.cta .btn-dark{width:100%;justify-content:center}
.ft{padding-top:48px}
.ft-g{grid-template-columns:1fr 1fr;gap:36px 20px;padding-bottom:44px}
.ft-b{grid-column:1/-1;flex-direction:row;flex-wrap:wrap;align-items:center;gap:8px 14px}
.ft-geo{display:none}
.ft-l.two{grid-template-columns:1fr}
.fl{grid-template-columns:1fr;gap:44px}
.fr{grid-template-columns:1fr}
.submit{width:100%;justify-content:center}
.done{padding:36px 24px}
}
