*{margin:0;padding:0;box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{font-family:var(--serif);background:var(--paper);color:var(--ink);-webkit-font-smoothing:antialiased;line-height:1.9;}
a{text-decoration:none;color:inherit;}
img{max-width:100%;display:block;}
.en{font-family:var(--sans);}
.wrap{max-width:var(--sp-1024);margin:0 auto;padding:0 var(--sp-56);}
.wrap--narrow{max-width:var(--sp-768);}
.bg{position:fixed;inset:0;z-index:-1;pointer-events:none;overflow:hidden;
  background:radial-gradient(80% 60% at 50% -10%,rgba(var(--s2-rgb),0.10) 0%,transparent 52%),
  linear-gradient(160deg,var(--bg-1) 0%,var(--bg-2) 60%,var(--bg-3) 100%);}
.logo-float{position:fixed;top:var(--sp-26);left:var(--sp-32);z-index:60;display:block;width:var(--sp-170);height:var(--sp-40);background-image:url("../img/logo-float.png");background-image:-webkit-image-set(url("../img/logo-float.webp") type("image/webp"),url("../img/logo-float.png") type("image/png"));background-image:image-set(url("../img/logo-float.webp") type("image/webp"),url("../img/logo-float.png") type("image/png"));background-repeat:no-repeat;background-position:var(--sp-n50) var(--sp-n111);background-size:var(--sp-264) auto;transition:opacity 0.45s var(--ease),visibility 0.45s var(--ease),transform 0.25s var(--ease);}
.logo-float:hover{transform:translateY(var(--sp-n2));}
.logo-float img{display:none;}
.menu-btn{position:fixed;top:var(--sp-15);right:var(--sp-32);z-index:60;border-radius:50%;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:opacity 0.45s var(--ease),visibility 0.45s var(--ease),transform 0.25s var(--ease);}
.menu-btn:hover{transform:translateY(var(--sp-n2));}
.menu-btn__b{display:flex;flex-direction:column;gap:var(--sp-6);width:var(--sp-24);}
.menu-btn i{width:100%;height:var(--sp-2_5);border-radius:var(--sp-1_5);background:var(--ink);transition:0.3s var(--ease);}
.home-fab{position:fixed;top:var(--sp-16);left:var(--sp-32);z-index:60;border-radius:50%;display:flex;align-items:center;justify-content:center;color:var(--ink);opacity:0;visibility:hidden;transform:translateY(var(--sp-10));transition:opacity 0.45s var(--ease),visibility 0.45s var(--ease),transform 0.45s var(--ease);}
.home-fab:hover{transform:translateY(var(--sp-n2));}
body.past-hero .logo-float{opacity:0;visibility:hidden;pointer-events:none;transform:translateY(var(--sp-n8));}
body.past-hero .home-fab{opacity:1;visibility:visible;transform:translateY(0);}
.menu{position:fixed;inset:0;z-index:55;background:rgba(var(--bg2-rgb),0.96);backdrop-filter:blur(var(--sp-20));
  opacity:0;visibility:hidden;transition:opacity 0.5s var(--ease),visibility 0.5s var(--ease);overflow-y:auto;-webkit-overflow-scrolling:touch;}
.menu.open{opacity:1;visibility:visible;z-index:70;}
.menu__inner{max-width:var(--sp-1024);margin:0 auto;padding:var(--sp-120) var(--sp-56) var(--sp-80);width:100%;display:grid;grid-template-columns:1.3fr 1fr;gap:var(--sp-60);align-items:start;min-height:100%;}
.menu__nav{list-style:none;}
.menu__nav li{overflow:hidden;}
.menu__nav a{display:flex;align-items:baseline;gap:var(--sp-20);padding:var(--sp-13) 0;font-size:var(--fs-30);font-weight:600;letter-spacing:0.08em;border-bottom:var(--sp-1) solid var(--line);transition:0.3s var(--ease);}
.menu__nav a:hover{padding-left:var(--sp-14);color:var(--green);}
.menu__nav a .no{font-family:var(--sans);font-size:var(--fs-12);color:var(--s2);font-weight:500;}
.menu__nav a .en{font-family:var(--sans);font-size:var(--fs-13);color:var(--sub);margin-left:auto;font-weight:400;}
.menu__nav li.dual{display:flex;align-items:baseline;gap:var(--sp-14);padding:var(--sp-13) 0;border-bottom:var(--sp-1) solid var(--line);letter-spacing:0.08em;}
.menu__nav li.dual>.no{font-family:var(--sans);font-size:var(--fs-12);color:var(--s2);font-weight:500;}
.menu__nav li.dual a{display:inline;border:none;padding:0;font-size:var(--fs-28);font-weight:600;transition:color 0.25s var(--ease);}
.menu__nav li.dual a:hover{color:var(--green);padding-left:0;}
.menu__nav li.dual .sep{font-size:var(--fs-24);color:var(--s2);font-weight:300;}
.menu__nav li.dual .en{font-family:var(--sans);font-size:var(--fs-13);color:var(--sub);margin-left:auto;font-weight:400;}
.menu__side{position:sticky;top:var(--sp-120);}
.menu__side .lb{font-family:var(--sans);font-size:var(--fs-11);letter-spacing:0.2em;color:var(--s2);margin-bottom:var(--sp-18);}
.menu__side p{font-size:var(--fs-14);line-height:2;color:var(--sub);}
.menu__side .tel{font-family:var(--sans);font-size:var(--fs-22);margin-top:var(--sp-24);letter-spacing:0.04em;}
.menu__close{position:fixed;top:var(--sp-30);right:var(--sp-56);z-index:71;font-family:var(--sans);font-size:var(--fs-12);letter-spacing:0.18em;cursor:pointer;display:flex;align-items:center;gap:var(--sp-12);}
.menu__close .x{border-radius:50%;display:grid;place-content:center;}
.phero{padding:var(--sp-200) 0 var(--sp-90);text-align:center;position:relative;}
.phero h1{font-weight:600;font-size:var(--fs-52);letter-spacing:0.12em;line-height:1.6;}
.phero .lead{font-size:var(--fs-15);color:var(--sub);max-width:30em;margin:var(--sp-28) auto 0;line-height:1.95;letter-spacing:0.04em;}
.sec{padding:var(--sp-100) 0;position:relative;background:linear-gradient(180deg,transparent,rgba(var(--white-rgb),0.5) 12% 88%,transparent);}
.sec--tight{padding:var(--sp-72) 0;}
.saas3-cta{text-align:center;margin-top:var(--sp-40);}
.fade{opacity:0;transform:translateY(var(--sp-20));transition:opacity 0.9s var(--ease),transform 0.9s var(--ease);}
.fade.in{opacity:1;transform:none;}
@media(prefers-reduced-motion:reduce){.fade{opacity:1;transform:none;}html{scroll-behavior:auto;}}
@media(max-width: 768px){
  .wrap{padding:0 var(--sp-28);}
  .phero h1{font-size:var(--fs-36);}
  .menu__inner{grid-template-columns:1fr;gap:var(--sp-36);}
  .menu__nav a{font-size:var(--fs-26);}

}
.vh{position:absolute;width:var(--sp-1);height:var(--sp-1);padding:0;margin:var(--sp-n1);overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0;}
body::before{content:"";position:fixed;top:0;left:0;right:0;height:var(--sp-84);z-index:50;pointer-events:none;background:rgba(var(--white-rgb),0.72);backdrop-filter:blur(var(--sp-12));-webkit-backdrop-filter:blur(var(--sp-12));border-bottom:var(--sp-1) solid rgba(var(--line-rgb),0.85);transition:opacity 0.45s var(--ease);}
.menu-btn,.home-fab,.menu__close .x{width:var(--sp-50);height:var(--sp-50);background:var(--metal);box-shadow:inset 0 var(--sp-1) var(--sp-2) rgba(var(--white-rgb),0.7),0 var(--sp-2) var(--sp-6) rgba(var(--s2-rgb),0.4);border:none;}
.home-fab svg{width:var(--sp-27);height:var(--sp-27);}
.menu__close .x svg{width:var(--sp-18);height:var(--sp-18);}
.saas3__c{position:relative;}
@media(max-width: 768px){
.svc-cta{flex-direction:column;gap:var(--sp-14);align-items:center;}
.svc-cta .sep{display:none;}
.acts{flex-direction:column;gap:var(--sp-14);align-items:center;}

.cta .row .tel,.menu__side .tel{white-space:nowrap;}

}
body.past-hero::before{opacity:0;}
.menu__sitemap{display:flex;flex-direction:row;flex-wrap:wrap;gap:var(--sp-20) var(--sp-48);list-style:none;margin:0;padding:0;align-content:flex-start;}
.menu__top{flex-basis:100%;font-size:var(--fs-20);font-weight:700;color:var(--ink);text-decoration:none;line-height:1.4;}
.menu__top:hover{color:var(--green);}
.menu__sitemap .m__grp{display:flex;flex-direction:column;gap:var(--sp-6);}
.menu__sitemap .m__h{font-size:var(--fs-19);font-weight:700;color:var(--ink);text-decoration:none;line-height:1.5;}
.menu__sitemap .m__h:hover{color:var(--green);}
.menu__sitemap .m__grp a:not(.m__h){font-size:var(--fs-14);color:var(--gray-mid);text-decoration:none;line-height:1.7;padding-left:var(--sp-12);}
.menu__sitemap .m__grp a:not(.m__h):hover{color:var(--green);}
@media(max-width: 768px){.menu__sitemap{flex-direction:column;flex-wrap:nowrap;gap:var(--sp-18);max-height:72vh;overflow-y:auto;}.menu__sitemap .m__h{font-size:var(--fs-18);}}
body:not(.home) .cta{background:linear-gradient(to top right,var(--metal-1),var(--metal-2) 55%,var(--metal-3));}
.saas-logo{margin-top:var(--sp-4);}
.cta h2 a{color:inherit;text-decoration:none;}
.cta h2 a:hover{color:var(--green);}
.menu__sitemap{flex-direction:column;flex-wrap:nowrap;align-items:flex-start;gap:var(--sp-14);}
.menu__sitemap .m__grp a:not(.m__h){display:none;}
.menu__sitemap .m__h{font-size:var(--fs-22);}
.menu__top{font-size:var(--fs-22);}
:focus-visible{outline:var(--sp-2) solid var(--green);outline-offset:var(--sp-2);}
.skip-link{position:absolute;left:var(--sp-n9999);top:0;z-index:200;background:var(--panel);color:var(--ink);padding:var(--sp-8) var(--sp-16);border:var(--sp-1) solid var(--line-d);}
.skip-link:focus{left:var(--sp-8);}
#food,#board,#num,#web,#app,#doc{scroll-margin-top:var(--sp-96);}
.site-wm{position:absolute;top:var(--sp-354_5);right:var(--sp-n40);width:var(--sp-560);height:var(--sp-560);background:url(../img/logo-mark-silver.png) 50%/contain no-repeat;opacity:0.2;z-index:0;pointer-events:none;}
@media(max-width: 768px){.site-wm{width:var(--sp-340);height:var(--sp-340);right:var(--sp-n30);}}
.cf{background:var(--white);border-top:var(--sp-1) solid var(--card-line);color:var(--foot-txt);font-size:var(--fs-13);line-height:1.7;}
.cf__inner{max-width:var(--sp-1180);margin:0 auto;padding:var(--sp-50) var(--sp-24) var(--sp-38);display:grid;grid-template-columns:1.25fr 1.5fr 1.5fr 1.2fr;gap:var(--sp-34);}
.cf__brand{display:flex;flex-direction:column;gap:var(--sp-14);}
.cf__logo{width:var(--sp-190);max-width:100%;height:auto;}
.cf__addr{margin:0;color:var(--gray-2);font-size:var(--fs-12_5);line-height:1.95;}
.cf__col{display:flex;flex-direction:column;gap:var(--sp-20);}
.cf__grp{display:flex;flex-direction:column;gap:var(--sp-7);}
.cf__h{font-weight:700;color:var(--ink);text-decoration:none;font-size:var(--fs-13_5);letter-spacing:0.01em;}
.cf__h:hover{color:var(--green-d);}
.cf__l{position:relative;color:var(--gray-2);text-decoration:none;padding-left:var(--sp-15);font-size:var(--fs-12_5);}
.cf__l::before{content:"";position:absolute;left:var(--sp-2);top:0.72em;width:var(--sp-7);height:var(--sp-1);background:var(--foot-bull);}
.cf__l:hover{color:var(--green-d);}
.cf__l:hover::before{background:var(--green-d);}
.cf__logos{display:flex;flex-direction:column;gap:var(--sp-16);margin-top:var(--sp-10);}
.cf__sublogo{max-width:100%;height:auto;display:block;}
.cf__sublogo--nobi{width:var(--sp-155);}
.cf__sublogo--koto{width:var(--sp-120);}
.cf__bar{background:var(--ink);color:var(--white);}
.cf__bar-inner{max-width:var(--sp-1180);margin:0 auto;padding:var(--sp-14) var(--sp-24);display:flex;justify-content:space-between;align-items:center;gap:var(--sp-12);flex-wrap:wrap;font-size:var(--fs-12);}
.cf__copy{color:var(--foot-copy);}
.cf__links a{color:var(--white);text-decoration:none;}
.cf__links a:hover{color:var(--foot-link-h);}
.cf__sep{color:var(--foot-sep);margin:0 var(--sp-8);}
@media(max-width: 1024px){.cf__inner{grid-template-columns:1fr 1fr;gap:var(--sp-30) var(--sp-24);}.cf__brand{grid-column:1 / -1;}}
@media(max-width: 768px){.cf__inner{grid-template-columns:1fr;padding:var(--sp-38) var(--sp-20) var(--sp-30);gap:var(--sp-26);}.cf__bar-inner{flex-direction:column;align-items:flex-start;gap:var(--sp-6);}}
html,body{overflow-x:clip;}
