@font-face {
  font-family:"Zen Antique Soft Name";
  font-style:normal;
  font-weight:400;
  font-display:swap;
  src:url("fonts/zen-antique-soft-name.woff2") format("woff2");
  unicode-range:U+3099, U+30af-30b0, U+30b7-30b8, U+30c6-30c7, U+30ce, U+30ed, U+30fc, U+4f1a, U+5b66, U+5f0f, U+60f3, U+682a, U+793e, U+79d1, U+7a7a;
}

html{ scrollbar-gutter:stable; }

:root{
  --ink:#1e1e1e; --ink-soft:#313131; --paper:#ffffff; --paper-2:#f7f7f7;
  --line:#e0e0e0; --line-soft:#ececec; --muted:#6c6c6c; --muted-dk:#555555;
  --steel:#5a5a5a; --steel-dk:#454545; --spark:#a4a4a4;

  --ink-rgb:30,30,30;
  --sub-band:#323232; --ymm-band:#595959; --band-bg:#d4d4d4; --band-3-bg:#d4d4d4;
  --sub-band-rgb:50,50,50; --ymm-band-rgb:89,89,89; --band-bg-rgb:212,212,212;
  --band-2-bg:#ededed; --band-2-line:#d5d5d5; --band-3-line:#e0e0e0;
  --tab-2-ink:#595959; --tab-3-bg:#bababa;
  --lead-top:#383838; --lead-bottom:#464646; --lead-ink:#eeeeee; --lead-ink-2:#ededed; --lead-box:#c2c2c2;
  --sky:#161616; --sky-nav:rgba(15,15,15,.96); --sky-name-hover:#e8e8e8;
  --jp:"Zen Kaku Gothic New","Hiragino Sans","Yu Gothic","Noto Sans JP",system-ui,sans-serif;
  --serif:"Rubik",var(--jp);
  --sans:"Rubik",var(--jp);
  --mono:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
  --wrap:920px;

}
*{ box-sizing:border-box; }
body{
  margin:0; font-family:var(--sans); color:var(--ink); background:var(--paper);
  line-height:1.85; font-feature-settings:"palt" 1; letter-spacing:.01em;
  font-weight:500;
  -webkit-font-smoothing:antialiased;
}
a{ color:inherit; text-decoration:none; }
p{ margin:0; }

mark.q{ background:#fff0c4; color:#8a6a12; padding:1px 7px; border-radius:3px; font-weight:600; font-size:.94em; }

header{
  position:sticky; top:0; z-index:40;
  padding:0 clamp(20px,5vw,40px);
  border-bottom:1px solid var(--line); background:rgba(255,255,255,.94);
  backdrop-filter:saturate(150%) blur(8px);
  box-shadow:0 1px 8px rgba(var(--ink-rgb),.05);
}
header .inner{ max-width:var(--wrap); margin:0 auto; padding:16px 0 0;    display:flex; align-items:flex-end; justify-content:space-between; gap:20px; flex-wrap:wrap; }

.name{ font-family:"Zen Antique Soft Name",var(--serif); font-size:clamp(19px,3.2vw,29px); font-weight:400; letter-spacing:.02em; }

a.name{ display:inline-block; margin-left:0; text-align:left; }
.name .corp{ font-size:.72em; vertical-align:baseline; margin-right:.15em; }
a.name:hover{ color:var(--steel-dk); }
.group{ font-size:13.5px; color:var(--muted); }

.grp{ display:flex; flex-direction:row-reverse; align-items:flex-start; gap:12px; }
.grp .group{ padding-top:8px; white-space:nowrap; }
.grp img{
  display:block; width:132px; height:auto;
  border-radius:6px; padding:7px 11px;
  background:#ffffff;
  box-shadow:
    0 1px 2px rgba(var(--ink-rgb),.09),
    0 4px 10px rgba(var(--ink-rgb),.07);
}

.grp a{ display:block; }
.grp a:hover img{
  box-shadow:
    0 1px 3px rgba(var(--ink-rgb),.13),
    0 6px 14px rgba(var(--ink-rgb),.10);
}
.grp a.group:hover{ color:var(--steel-dk); }

footer .fcontact{ display:flex; flex-direction:column; align-items:flex-end; gap:10px; margin-left:auto; }
footer .grp{ flex-direction:row-reverse; align-items:center; gap:10px; }
footer .grp img{ width:110px; padding:6px 9px; box-shadow:none; }
footer .grp a:hover img{ box-shadow:none; }
footer .grp .group{ padding-top:0; color:rgba(255,255,255,.66); }
footer .grp a.group{ border-bottom:none; }
footer .grp a.group:hover{ color:#fff; }

nav{ max-width:var(--wrap); margin:38px auto 0; padding:0; display:flex; gap:3px; flex-wrap:wrap; align-items:flex-end; }

nav a{
  padding:11px 18px 10px; font-size:17px; color:var(--ink-soft); font-weight:500;
  background:var(--paper);
  border:1px solid var(--line); border-bottom-color:transparent;
  border-radius:7px 7px 0 0;
  margin-bottom:-1px;
  white-space:nowrap;
}
nav a:hover{ color:var(--steel-dk); background-color:var(--paper-2); }
nav a.on{
  color:var(--ink); font-weight:600;
  background:var(--band-2-bg);
  border-bottom:3px solid var(--steel);
  margin-bottom:-2px;
  padding-bottom:8px;
}

nav a.right{ margin-left:auto; }
nav a.right, nav a.right + a{ font-size:18.5px; font-weight:700; }

nav a.right{ font-size:34px; font-weight:500; display:flex; flex-direction:column; align-items:center; line-height:1.05; padding-top:6px; padding-bottom:6px; }
nav a.right.on{ padding-bottom:4px; }
nav a .yomi{ display:block; font-size:13px; font-weight:500; letter-spacing:.1em; margin-top:3px; color:var(--muted); }
nav a.on .yomi{ color:var(--ink-soft); }

.subnav{
  position:sticky; top:96px; z-index:35;
  background:var(--band-2-bg); border-bottom:1px solid var(--band-2-line);
  padding:0 clamp(20px,5vw,40px);
}
.subnav .inner{ max-width:var(--wrap); margin:0 auto; display:flex; gap:2px; flex-wrap:wrap; justify-content:flex-end; }
.subnav a{
  padding:12px 9px 10px; font-size:16px; color:var(--tab-2-ink);
  border-bottom:2px solid transparent; white-space:nowrap;
}
.subnav a:hover{ color:var(--steel-dk); background-color:rgba(255,255,255,.55); }
.subnav a.on{
  color:var(--ink); font-weight:600;
  background:rgba(255,255,255,.72); border-bottom-color:var(--steel-dk);
}

.subnav a.right{ margin-left:auto; }

.subnav2{
  position:sticky; top:140px; z-index:34;
  background:var(--band-3-bg); border-bottom:1px solid var(--band-3-line);
  padding:0 clamp(20px,5vw,40px);
}
.subnav2 .inner{ max-width:var(--wrap); margin:0 auto; display:flex; gap:2px; flex-wrap:wrap; justify-content:flex-end; }
.subnav2 a{
  padding:8px 14px 7px; font-size:13px; color:var(--muted);
  border-bottom:2px solid transparent; white-space:nowrap;
}
.subnav2 a:hover{ color:var(--steel-dk); background-color:rgba(255,255,255,.55); }
.subnav2 a.on{ color:var(--ink); font-weight:600; border-bottom-color:var(--steel); }

.lead{ background:linear-gradient(180deg,var(--lead-top),var(--lead-bottom)); color:var(--lead-ink); padding:62px clamp(20px,5vw,40px) 54px; }
.lead .inner{ max-width:var(--wrap); margin:0 auto; }
.lead h1{ font-family:var(--serif); font-size:clamp(24px,3vw,33.5px); font-weight:700; line-height:1.35; letter-spacing:.01em; margin:0 0 8px; }
.lead p{ font-size:16.5px; color:#c8c8c8; }
.lead p+p{ margin-top:13px; }
.lead .lead-astacplus + p{ margin-top:26px; }
.lead b{ color:#fff; }
.lead .box{
  background:var(--lead-box); border:none; color:var(--ink-soft);
  border-radius:9px; padding:22px 26px;
  width:92%; margin:36px 5% 18px 3%;
}
.lead .box p{ margin:0; text-indent:1em; color:var(--ink-soft); }
.lead .box b{ color:var(--ink); }
.lead .box p+p{ margin-top:0; }

.mm-en{
  font-family:ui-monospace,Menlo,Consolas,monospace;
  font-size:16px; font-weight:400; letter-spacing:.06em;
  color:rgba(255,255,255,.92); margin-left:14px; white-space:nowrap;
}
.lead-big{ font-size:clamp(27.5px,4vw,42px) !important; line-height:1.45; margin-top:4px; }
.lead-yomi{ font-family:var(--sans); font-size:15.6px; font-weight:400; letter-spacing:0; margin-left:.7em; color:#ffffff; white-space:nowrap; }

.phead{ background:var(--paper-2); border-bottom:1px solid var(--line); padding:38px clamp(20px,5vw,40px) 34px; }
.phead .inner{ max-width:var(--wrap); margin:0 auto; }
.phead h1{ font-family:var(--serif); font-size:clamp(24px,3vw,31.5px); font-weight:700; line-height:1.35; margin:0 0 8px; }

.phead p{ font-size:15.5px; color:inherit; }
.phead p a{ color:var(--steel-dk); }

@media only screen and (max-width:1280px){
}
@media only screen and (max-width:640px){
}

section{ padding:52px clamp(20px,5vw,40px); }
body#acpp section{ padding-top:42px; padding-bottom:42px; }
section[id]{ scroll-margin-top:110px; }
section.alt{ background:var(--paper-2); }
section .inner{ max-width:var(--wrap); margin:0 auto; }
h2{ font-family:var(--serif); font-size:clamp(20.5px,2.5vw,26px); font-weight:700; line-height:1.4; margin:0 0 22px; }

h3{ font-size:16px; margin:26px 0 9px; }

table{ width:100%; border-collapse:separate; border-spacing:0; background:var(--paper); border:1px solid var(--line); border-radius:8px; overflow:hidden; }
th{ text-align:left; padding:14px 18px; font-size:15px; font-weight:600; color:var(--muted-dk); background:var(--paper-2); border-bottom:1px solid var(--line); white-space:nowrap; width:11em; vertical-align:top; }
td{ padding:14px 18px; font-size:16px; color:var(--ink-soft); border-bottom:1px solid var(--line); }
tr:last-child th, tr:last-child td{ border-bottom:none; }
th:not(:last-child), td:not(:last-child){ border-right:1px solid var(--line-soft); }
td b{ color:var(--ink); }
td .sub{ display:block; font-size:14.5px; color:var(--muted-dk); margin-top:4px; }

.cmp.even td .sub{ font-size:13px; margin-top:7px; line-height:1.7; }
.cmp.even td .sub::before{ content:""; display:block; height:4px; border-radius:2px; margin:0 -6px 6px; background:linear-gradient(180deg, #b9b9b9 0%, #d6d6d6 55%, #f0f0f0 100%); box-shadow:inset 0 1px 1px rgba(0,0,0,.16), 0 1px 0 rgba(255,255,255,.9); }
td a{ color:var(--steel-dk); }
.svc p a, .md2 p a{ color:var(--steel-dk); }

.phead p a:hover, td a:hover, .svc p a:hover, .md2 p a:hover, .mtx-note a:hover, .svc a:hover,
.phead p a:focus-visible, td a:focus-visible, .svc p a:focus-visible, .md2 p a:focus-visible, .mtx-note a:focus-visible, .svc a:focus-visible{ color:var(--spark); }

.svc{ background:var(--paper); border:1px solid var(--line); border-left:4px solid var(--steel); border-radius:9px; padding:26px 28px; }
.svc h3{ font-family:var(--serif); font-size:19.5px; margin:0 0 10px; }
.svc .en{ font-family:var(--mono); font-size:13.5px; font-weight:400; color:var(--muted); display:inline; margin-left:12px; letter-spacing:.04em; }
.svc h3 .en{ color:inherit; }
.svc p{ font-size:16px; color:var(--ink-soft); margin:0 0 14px; }
.svc p:last-child{ margin-bottom:0; }
.svc a.go{ display:inline-block; margin-top:14px; padding:11px 24px; background:var(--steel-dk); color:#fff; border-radius:6px; font-size:15px; font-weight:600; }
.svc a.go:hover{ background:var(--steel); }
.svc .gorow{ display:flex; flex-wrap:wrap; column-gap:10px; justify-content:flex-end; margin-top:14px; }
.svc .gorow a.go{
  margin-top:0; margin-bottom:10px; width:180px; height:48px;
  padding:0; line-height:48px; text-align:center;
}
.svc .gorow a.go.main{ font-size:16.5px; }
body#home .svc .gorow a.go{ color:#ffffff; border:1px solid #000000; background:linear-gradient(180deg, #4a4a4a 0%, #262626 46%, #0a0a0a 54%, #000000 100%); box-shadow:inset 0 1px 0 rgba(255,255,255,.28), inset 0 -1px 0 rgba(0,0,0,.6), 0 2px 5px rgba(0,0,0,.45); text-shadow:0 1px 1px rgba(0,0,0,.6); }
body#home .svc .gorow a.go:hover{ background:linear-gradient(180deg, #5c5c5c 0%, #323232 46%, #121212 54%, #000000 100%); }

p.note, .svc p.note{ color:#8f2033; }
p.note b{ color:inherit; }
.note-i{ color:#8f2033; }
.warnbox, .svc p.warnbox{
  background:#8f2033; color:#fff; border-radius:8px;
  padding:14px 18px; margin:16px 0 0; font-weight:700; text-indent:1em; line-height:1.75;
}
.warnbox b, .svc p.warnbox b{ color:inherit; }
td .sub .subnote{ color:#8f2033; }
td .sub .subnote b{ color:inherit; }

.cmp th{ width:auto; font-size:14px; white-space:normal; }
.cmp td{ font-size:14.5px; }
.cmp td:first-child{ width:11em; color:var(--muted-dk); font-size:14px; white-space:nowrap; }

.cmp.auth td:first-child{ width:8.5em; }
.cmp.fit td:first-child{ width:1%; }
.cmp.half td:first-child{ width:5.5em; white-space:normal; }
.cmp.even{ table-layout:fixed; width:100%; }
.cmp.even th:first-child{ width:10em; }
.cmp.even th, .cmp.even td{ padding:12px 12px; }
@media (max-width:820px){ .cmp.half-sm td:first-child{ width:5.5em; white-space:normal; } }
.cmp.auth th, .cmp.auth td{ white-space:nowrap; padding:14px 12px; }
.cmp.auth td:last-child{ white-space:normal; }

.mtx-wrap{ overflow-x:auto; }
@media (max-width:820px){ .mtx-wrap .cmp.wide{ min-width:640px; } }
.mtx{ min-width:800px; }
.mtx th{ width:auto; white-space:nowrap; }
.mtx td{ font-size:15.5px; padding:13px 16px; }
.mtx td:first-child{ width:13em; color:var(--ink); font-weight:600; font-size:15px; }
.mtx tr.me td{ background:var(--paper-2); }
.mtx tr.me td:first-child{ color:var(--steel-dk); }
.mtx td:nth-child(4){ width:9em; }
.mtx td:nth-child(5){ width:13em; }
.no{ color:var(--muted); }
.mtx-note{ font-size:15px; color:var(--muted); line-height:1.8; margin-top:18px; }
.mtx td .half{ display:block; }
.mtx td .half + .half{ margin-top:7px; padding-top:7px; border-top:1px solid var(--line); }
.mtx.ai th{ font-size:13.5px; padding:12px 12px; }
.mtx.ai td{ font-size:14px; padding:11px 12px; }
.mtx.ai td:first-child{ font-size:14px; width:10em; }
.mtx.ai td .sub{ font-size:12.5px; }
.mtx.ai td:nth-child(4), .mtx.ai td:nth-child(5){ width:auto; }
.cmp tr.vmid th{ vertical-align:middle; }
.phead h1 .dash, h2 .dash{ display:inline-block; width:1.5em; height:2px; background:currentColor; vertical-align:middle; margin:0 .4em; position:relative; top:-1px; }

.md2{ display:grid; grid-template-columns:1fr; gap:16px; margin:4px 0 20px; }
.md2 > div{ background:var(--paper); border:1px solid var(--line); border-radius:9px; padding:22px 24px; }
.md2 h3{ font-family:var(--serif); font-size:20px; margin:0 0 12px; letter-spacing:.02em; }
.md2 > div.plus h3{ color:#325239; }
.md2 > div.minus h3{ color:#8f2033; }

.md2 > div.plus h3, .md2 > div.minus h3{ display:block; color:#ffffff; padding:6px 16px 7px; border-radius:6px; line-height:1.3; }
.md2 > div.plus h3{ background:#4a7055; }
.md2 > div.minus h3{ background:#8f2033; }
.md2 p{ font-size:16px; color:var(--ink-soft); margin:0 0 13px; text-indent:1em; }
.md2 p:last-child{ margin-bottom:0; }

.md2 .inbox{
  background:var(--paper-2); border:1px solid var(--line); border-radius:7px;
  padding:15px 17px; margin:0 0 13px;
}
.md2 .inbox p{ font-size:15px; margin:0; text-indent:1em; }
.md2 .inbox p + p{ margin-top:9px; }

.md2 .item{ border-left:4px solid var(--line); background:var(--paper-2); border-radius:0 7px 7px 0; padding:12px 16px 12px 18px; margin:0 0 10px; }
.md2 .item:last-child{ margin-bottom:0; }
.md2 > div.plus .item{ border-left-color:#4a7055; }
.md2 > div.minus .item{ border-left-color:#8f2033; }
.md2 .item p{ text-indent:0; margin:0 0 8px; }
.md2 .item > p:last-child{ margin-bottom:0; }
.md2 .item .item{ background:var(--paper); margin:8px 0 0; }
.md2 > div.plus .item .item, .md2 > div.minus .item .item{ border-left-color:var(--line); }
.md2 .item .item + p{ margin-top:10px; }

.doc h3{ font-size:16px; margin:26px 0 9px; }
.doc h3:first-of-type{ margin-top:0; }
.doc p, .doc li{ font-size:15.5px; color:var(--ink-soft); }
.doc ul{ margin:8px 0 0; padding-left:1.3em; }
.doc li{ margin:0 0 5px; }

footer{ background:#000000; color:rgba(255,255,255,.66);    padding:34px clamp(20px,5vw,40px); font-size:14px; }
footer{ box-shadow:inset 0 7px 10px -3px rgba(255,255,255,.6); }
footer .inner{ max-width:var(--wrap); margin:0 auto; display:flex; justify-content:space-between; gap:18px; flex-wrap:wrap; align-items:flex-start; }
footer .fname{ font-family:var(--serif); color:#fff; font-size:18.5px; display:block; margin-bottom:6px; }
footer a{ color:rgba(255,255,255,.88); }

a[target="_blank"], .svc p a[target="_blank"], .md2 p a[target="_blank"], td a[target="_blank"], .phead p a[target="_blank"], footer a[target="_blank"], .mtx-note a[target="_blank"]{ border-bottom:none; }
footer .grp a.group[target="_blank"], footer .grp a[target="_blank"]{ border-bottom:none; text-decoration:none; }
a[target="_blank"]:hover, a[target="_blank"]:focus-visible{ color:var(--spark); }
a[target="_blank"]::after{
  content:""; display:inline-block; width:.72em; height:.72em; margin-left:.3em; vertical-align:-.06em;
  background-color:currentColor;
  -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M5 5h7v2H7v10h10v-5h2v7H5z'/%3E%3Cpath d='M14 3h7v7h-2V6.4l-8.3 8.3-1.4-1.4L17.6 5H14z'/%3E%3C/svg%3E") center / contain no-repeat; mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M5 5h7v2H7v10h10v-5h2v7H5z'/%3E%3Cpath d='M14 3h7v7h-2V6.4l-8.3 8.3-1.4-1.4L17.6 5H14z'/%3E%3C/svg%3E") center / contain no-repeat;
}
footer a:hover{ color:#fff; }
footer .ftm{ display:block; font-size:12.5px; color:rgba(255,255,255,.55); margin-top:6px; }
.tm-logo{ height:1.5em; width:auto; vertical-align:-0.36em; margin-right:.4em; border-radius:20%; }
footer .tm-logo{ filter:drop-shadow(0 0 3px rgba(255,255,255,.75)); }
.tm-logo{ filter:drop-shadow(0 1px 3px rgba(0,0,0,.55)); }
footer a.fphoto{ font-size:12.5px; color:rgba(255,255,255,.55); border-bottom-color:rgba(255,255,255,.2); }
footer a.fphoto:hover, footer a.fphoto:focus-visible{ color:#fff; }
footer .fcontact{ line-height:1.9; }

@media (max-width:620px){
  nav{ gap:0; }
  nav a{ padding:11px 12px 9px; font-size:14px; }
  footer .inner{ flex-direction:column; }
}

.lead p, .svc p, .mtx-note, .doc p{ text-indent:1em; }
p.note, .svc p.note{ text-indent:0; }
.lead p.lead-big{ text-indent:0; }
.lead p.lead-astacplus{ text-indent:0; font-family:var(--serif); font-size:clamp(24px,3vw,33.5px); font-weight:700; line-height:1.35; letter-spacing:.01em; margin-top:0; }

.svc code{
  font-family:var(--mono); font-size:15px; font-weight:400;
  background:#1e1e1e; color:#ffffff; border:1px solid #3c3c3c; border-radius:5px;
  padding:3px 8px; white-space:nowrap;
}
.svc code.kw, .svc code .kw{ color:#a6d8ff; }
.svc code.ty{ color:#9af2e0; }
.svc code .v{ color:#dff4ff; }
.cmp td .ast{ display:inline-block; width:0; direction:rtl; }

.logoset{ display:flex; gap:20px; flex-wrap:wrap; margin:0 0 16px; }
.logoset figure{ flex:1 1 240px; margin:0; }
.logobox{ display:flex; align-items:center; justify-content:center;
  height:190px; border-radius:9px; }
.logobox.on-light{ background:var(--paper); border:1px solid var(--line); }
.logobox.on-dark{ background:linear-gradient(180deg,var(--lead-top),var(--lead-bottom)); }

.logobox img{ display:block; width:auto; height:132px; border-radius:15.6%; }
.logobox.on-light img{ box-shadow:0 6px 18px rgba(var(--ink-rgb),.30); }
.logobox.on-dark  img{ box-shadow:0 7px 22px rgba(0,0,0,.50); }
.logoset figcaption{ margin-top:10px; font-size:14px; color:var(--muted); text-align:center; }
.logonote{ font-size:15px; color:var(--muted); margin:0; }
@media (max-width:520px){
  .logoset{ gap:16px; }
  .logobox{ height:160px; }
  .logobox img{ height:110px; }
}

.nav-sub{ display:none; }

.menu-trigger{ display:none; }
.menu-trigger span{ display:inline-block; transition:all .3s; box-sizing:border-box; }

@media (max-width:820px){
  header .inner{ position:relative; padding-right:44px; }
  .menu-trigger{
    display:block; position:absolute; right:0; top:28px;
    width:30px; height:22px;
  }
  .menu-trigger span{
    position:absolute; left:0; width:100%; height:2px;
    background:var(--ink); border-radius:4px;
  }
  .menu-trigger span:nth-of-type(1){ top:0; }
  .menu-trigger span:nth-of-type(2){ top:10px; }
  .menu-trigger span:nth-of-type(3){ bottom:0; }
  .menu-trigger.active span:nth-of-type(1){ transform:translateY(10px) rotate(-45deg); }
  .menu-trigger.active span:nth-of-type(2){ opacity:0; }
  .menu-trigger.active span:nth-of-type(3){ transform:translateY(-10px) rotate(45deg); }

  nav{
    flex-direction:column; align-items:stretch; gap:0;
    max-height:0; overflow:hidden;
    transition:none;
    transform:translateZ(0); will-change:max-height;
  }
  header.nav-open nav{ max-height:70vh; overflow-y:auto; padding-bottom:12px; }
  nav a{
    margin-bottom:0; border-radius:0; background:transparent;
    border:none; border-bottom:1px solid var(--line);
    padding:13px 14px; font-size:16.5px; white-space:normal;
  }
  nav a.on{
    background:var(--paper-2); border-bottom:1px solid var(--line);
    margin-bottom:0; padding-bottom:13px;
    box-shadow:inset 3px 0 0 var(--steel);
  }
  nav a:last-child{ border-bottom:none; }
  nav a.right{ margin-left:0; flex-direction:column; align-items:flex-start; gap:0; font-size:24px; line-height:1.1; }
  nav a .yomi{ margin-top:2px; font-size:12px; }

  .subnav, .subnav2{ display:none; }
  .nav-sub{
    display:flex; flex-direction:column;
    margin:0 0 0 14px; padding:0 0 0 12px;
    border-left:2px solid var(--steel);
  }
  .nav-sub a{
    margin-bottom:0; border-radius:0; background:transparent;
    border:none; border-bottom:1px solid var(--line);
    padding:10px 4px 10px 12px; font-size:14.5px; color:var(--ink-soft); white-space:normal;
  }
  .nav-sub a:last-child{ border-bottom:none; }
  .nav-sub a.on{ color:var(--steel-dk); font-weight:600; box-shadow:none; background:transparent; }

  .nav-sub3{
    margin:0 0 0 12px; padding:0 0 0 11px;
    border-left:2px solid var(--line);
  }
  .nav-sub3 a{ padding:9px 4px 9px 12px; font-size:13.5px; color:var(--muted); }
  .nav-sub3 a.on{ color:var(--steel-dk); font-weight:600; }
}

.fig-mm{ margin:6px 0 18px; }
.fig-mm svg{ width:100%; height:auto; display:block; font-family:inherit; }
@media (max-width:820px){
  .fig-mm{ overflow-x:auto; -webkit-overflow-scrolling:touch; padding-bottom:6px; }
  .fig-mm svg{ width:760px; max-width:none; }
}
.fig-mm .mm-h{ font-size:14px; font-weight:700; fill:var(--ink); }
.fig-mm .mm-s{ font-size:11.5px; fill:var(--muted); }
.fig-mm .mm-ledger{ fill:var(--paper-2); stroke:var(--line); }
.fig-mm .mm-l{ font-size:12px; font-weight:700; fill:var(--steel-dk); }
.fig-mm .mm-ls{ font-size:11px; fill:var(--muted); }
.fig-mm .mm-band{ fill:#ffffff; stroke:var(--line); }
.fig-mm .mm-live{ fill:var(--steel); }
.fig-mm .mm-dead{ fill:#d9d0cc; }
.fig-mm .mm-free{ fill:none; stroke:var(--line); stroke-dasharray:4 3; }
.fig-mm .mm-tag{ font-size:12px; font-weight:700; fill:#ffffff; text-anchor:middle; }
.fig-mm .mm-x{ font-size:13px; font-weight:700; fill:#8f2033; text-anchor:middle; }
.fig-mm .mm-frees{ font-size:11px; fill:var(--muted); text-anchor:middle; }
.fig-mm .mm-line{ stroke:var(--muted); stroke-width:1.5; }
.fig-mm .mm-arw{ fill:var(--muted); }
@media (max-width:560px){ .fig-mm .mm-s{ font-size:13px; } .fig-mm .mm-h{ font-size:16px; } }

.parent{ display:flex; align-items:center; justify-content:space-between; gap:14px; flex-wrap:wrap; }
.parent-text{ flex:1 1 260px; }
.parent-logo{ width:180px; height:auto; display:block; box-shadow:none; margin-left:auto; }

body.sky{ background:var(--sky); }
body.sky::before{
  content:""; position:fixed; inset:0; z-index:-1;
  background:var(--sky) url(assets/sky.jpg) center top / cover no-repeat;
}
body.sky.sky-earth2::before{ background-image:url(assets/sky-earth2.jpg); }
@media (max-width:820px){ body.sky::before{ background-image:url(assets/sky-960.jpg); } }
@media (max-width:820px){ body.sky.sky-earth2::before{ background-image:url(assets/sky-earth2-960.jpg); } }
body.sky .lead{ background:transparent; }
body.sky .lead .box{
  background:rgba(0,0,0,.32);
  backdrop-filter:blur(14px) saturate(140%); -webkit-backdrop-filter:blur(14px) saturate(140%);
  border:none; border-radius:14px;
  box-shadow:
    0 0 72px 18px rgba(0,0,0,.65),
    0 0 44px 10px rgba(255,255,255,.16),
    inset 0 2px 0 rgba(255,255,255,.22), inset 0 -2px 0 rgba(0,0,0,.3), inset 0 0 0 1px rgba(255,255,255,.10);
}
body.sky .lead .box p{ color:#c8c8c8; }
body.sky .lead .box b{ color:#ffffff; font-weight:600; }
body.sky section{ background:var(--paper); }
body.sky section.alt{ background:var(--paper-2); }
body.sky .phead{ background:var(--band-bg); }

body.sky header{
  background:var(--sky) url(assets/sky.jpg) center top / cover no-repeat fixed;
  backdrop-filter:none; -webkit-backdrop-filter:none; box-shadow:none; border-bottom:2px solid #000000;
}
body.sky.sky-earth2 header{ background-image:url(assets/sky-earth2.jpg); }
@media (max-width:820px){
  body.sky header{ background-image:url(assets/sky-960.jpg); }
  body.sky.sky-earth2 header{ background-image:url(assets/sky-earth2-960.jpg); }
}
body.sky .name, body.sky .name .corp{ color:#ffffff; }
body.sky a.name:hover{ color:var(--sky-name-hover); }
body.sky nav a{ color:rgba(255,255,255,.84); background:rgba(255,255,255,.06); border-width:2px; border-bottom-width:3px; border-color:#ffffff; border-bottom-color:transparent; margin-bottom:-3px; }
body.sky nav a:hover{ color:#ffffff; background-color:rgba(255,255,255,.14); }
body.sky nav a.on{ color:#ffffff; font-weight:600; background:rgba(255,255,255,.20); border-bottom-color:transparent; margin-bottom:-2px; }
body.sky nav a.on:not(.right){ padding-bottom:10px; }
body.sky nav a.on.right{ padding-bottom:6px; }
body.sky nav a .yomi{ color:rgba(255,255,255,.90); }
body.sky nav a.on .yomi{ color:rgba(255,255,255,.85); }
body.sky .menu-trigger span{ background:#ffffff; }
@media (max-width:820px){
  body.sky nav{ background:var(--sky-nav); }
  nav a{ transition:none; }
  body.sky nav a{ background:transparent; border-width:0 0 1px 0; border-bottom-color:rgba(255,255,255,.14); margin-bottom:0; }
  body.sky nav a.on{ background:rgba(255,255,255,.10); box-shadow:inset 3px 0 0 #ffffff; }
  body.sky .nav-sub{ border-left-color:#9fc0e8; }
  body.sky .nav-sub a, body.sky .nav-sub3 a{ color:rgba(255,255,255,.78); border-bottom-color:rgba(255,255,255,.10); }
  body.sky .nav-sub a.on, body.sky .nav-sub3 a.on{ color:#ffffff; }
  body.sky .nav-sub3{ border-left-color:rgba(255,255,255,.3); }
}

:root{ --photo-y:36px; }
body.sky::before{ background-position:center calc(-1 * var(--photo-y, 0px)); }
body.sky header{ background-position:center calc(-1 * var(--photo-y, 0px)); }

@supports (-webkit-touch-callout: none){

  body.sky::before, body.sky header{
    background-attachment:scroll;
    background-size:130vw auto;
    background-position:center calc(47px - 4.4vw);
    background-color:#000;
  }
  body.sky{ background:#000; }
}

@media (max-width:820px){ nav{ margin-top:0; } header .inner{ padding:26px 44px 22px 0; } }

body.sky nav a.on{ color:var(--ink); }
body.sky nav a.on .yomi{ color:var(--ink-soft); }
body#home.sky nav a.on{ background:#000000; border-bottom-color:#000000; color:#9fc0e8; }
body.sky nav a.on[href$="company.php"], body.sky nav a.on[href$="business.php"]{ background:var(--band-bg); border-bottom-color:var(--band-bg); }
body.sky nav a.on[href$="asteriskcpp.php"]{ background:var(--band-2-bg); border-bottom-color:var(--band-2-bg); }
@media (max-width:820px){
  body.sky nav a.on, body.sky nav a.on[href]{ color:#ffffff; background:rgba(255,255,255,.10); border-bottom-color:rgba(255,255,255,.14); }
  body.sky nav a.on .yomi{ color:rgba(255,255,255,.85); }
}

body#home.sky header{ overflow:visible; }
body#home.sky header::after{
  content:""; position:absolute; left:0; right:0; top:calc(100% + 2px); height:56px; pointer-events:none;
  background:linear-gradient(180deg, rgba(0,0,0,1) 0%, rgba(0,0,0,0) 100%);
}

header{ height:173px; box-sizing:border-box; display:flex; flex-direction:column; justify-content:space-between; }
header .inner, header nav{ width:100%; }
nav{ margin-top:0; }
nav a{ min-width:120px; text-align:center; box-sizing:border-box; }
nav a.right{ min-width:150px; }
@media (max-width:820px){
  header{ height:auto; display:block; }
  nav a, nav a.right{ min-width:0; text-align:left; }
}

.subnav .inner, .subnav2 .inner{ padding-top:8px; gap:3px; }
.subnav a, .subnav2 a{ border-radius:11px 11px 0 0; }

.subnav, .subnav2{ border-bottom:1px solid var(--steel-dk); }
.subnav a, .subnav2 a{ border:1px solid var(--steel-dk); border-bottom:1px solid transparent; margin-bottom:-1px; }
.subnav a{ line-height:30px; }
.subnav2 a{ line-height:24px; }
.subnav{ border-bottom-color:var(--sub-band); }
.subnav a{ border-color:var(--sub-band); border-bottom-color:transparent; }
.subnav2{ border-bottom-color:var(--ymm-band); }
.subnav2 a{ border-color:var(--ymm-band); border-bottom-color:transparent; }

.subnav a{ box-shadow:0 0 6px 1px rgba(var(--sub-band-rgb),.45); clip-path:inset(-8px -14px 1px -14px); }
.subnav2 a{ box-shadow:0 0 6px 1px rgba(var(--sub-band-rgb),.65); clip-path:inset(-8px -14px 1px -14px); }
.subnav2 a:not(.on){ box-shadow:0 0 6px 1px rgba(var(--sub-band-rgb),.65), inset 0 -7px 10px -3px rgba(var(--ymm-band-rgb),.65); }
.subnav{ box-shadow:inset 0 -7px 10px -3px rgba(var(--sub-band-rgb),.35); }
.subnav2{ box-shadow:inset 0 -7px 10px -3px rgba(var(--ymm-band-rgb),.65); }
.subnav a.on, .subnav2 a.on{ font-weight:500; }
.subnav a[href$="yamatomm.php"], .subnav a[href$="yamatomm.php"].on{ color:#ffffff; font-weight:700; -webkit-text-stroke:4px var(--ymm-band); paint-order:stroke fill; }

.subnav a{ border-color:var(--band-2-bg); border-bottom-color:transparent; }
.subnav a.on, .subnav:has(+ .subnav2) a.on{ border-color:var(--band-bg); border-bottom-color:var(--band-bg); }
.subnav2 a{ border-color:var(--tab-3-bg); border-bottom-color:transparent; }
.subnav2 a.on{ border-color:var(--ymm-band); }
.subnav{ border-bottom-color:var(--band-bg); }
.subnav a.on{ background:var(--band-bg); border-bottom-color:var(--band-bg); }
.subnav:has(+ .subnav2) a.on{ background:var(--band-3-bg); border-bottom-color:var(--band-3-bg); }
.subnav2 a.on{ background:var(--ymm-band); color:#ffffff; border-color:var(--ymm-band); }

body.sky .subnav2 + .lead, body.sky .subnav2 + .phead{ background:var(--ymm-band); }
body.sky .subnav2 + .phead h1{ color:#ffffff; }
body.sky .subnav2 + .phead p{ color:rgba(255,255,255,.85); }
body.sky .subnav2 + .phead p a{ color:#ffffff; }

nav a, .subnav a, .subnav2 a{ background-clip:padding-box; }

.subnav a{ min-width:115px; text-align:center; box-sizing:border-box; }
.subnav2 a{ min-width:120px; text-align:center; box-sizing:border-box; }

body.sky header{ overflow:visible; }
body.sky:not(#home):not(:has(.subnav)) header::after{
  content:""; position:absolute; left:0; right:0; top:calc(100% + 2px); height:45px; pointer-events:none;
  background:linear-gradient(180deg, var(--band-bg) 0%, rgba(var(--band-bg-rgb),0) 100%);
}
.subnav:not(:has(+ .subnav2)), .subnav2{ overflow:visible; }
.subnav:not(:has(+ .subnav2))::after{
  content:""; position:absolute; left:0; right:0; top:calc(100% + 1px);    height:40px; pointer-events:none;
  background:linear-gradient(180deg, var(--band-bg) 0%, rgba(var(--band-bg-rgb),0) 100%);
}

@media (min-width:821px){
  body.sky nav a{ border-color:rgba(255,255,255,.06); border-bottom-color:transparent; box-shadow:0 0 9px 2px rgba(255,255,255,.75); clip-path:inset(-14px -14px 0 -14px); }
  body.sky nav a.on{ border-bottom-width:2px; }
  body#home.sky nav a.on{ border-top-color:#000000; border-left-color:#000000; border-right-color:#000000; }
  body.sky nav a.on[href$="company.php"], body.sky nav a.on[href$="business.php"]{ border-top-color:var(--band-bg); border-left-color:var(--band-bg); border-right-color:var(--band-bg); }
  body.sky nav a.on[href$="asteriskcpp.php"]{ border-top-color:var(--band-2-bg); border-left-color:var(--band-2-bg); border-right-color:var(--band-2-bg); }
}

body.sky header{ box-shadow:inset 0 -7px 10px -3px rgba(255,255,255,.6); }

body.sky:has(nav a.on[href$="company.php"]) header, body.sky:has(nav a.on[href$="business.php"]) header{ border-bottom-color:var(--band-bg); }
body.sky:has(nav a.on[href$="asteriskcpp.php"]) header{ border-bottom-color:var(--band-2-bg); }
body.sky:not(#home):not(:has(nav a.on)) header{ border-bottom-color:var(--band-bg); }

@media (min-width:821px){

}

body#home.sky header::before{
  content:""; position:absolute; left:0; right:0; bottom:-2px; height:2px; background:#000000; z-index:5; pointer-events:none;
}

.subnav2::after{
  content:""; position:absolute; left:0; right:0; top:calc(100% + 1px); height:32px; pointer-events:none;
  background:linear-gradient(180deg, var(--ymm-band) 0%, rgba(var(--ymm-band-rgb),0) 100%);
}

.subnav2 a{ background-color:var(--tab-3-bg); color:var(--ink); }

.subnav a{ color:var(--ink); }

@media (max-width:820px){
  body.sky:not(#home) header::after{
    content:""; position:absolute; left:0; right:0; top:calc(100% + 2px); height:45px; pointer-events:none;
    background:linear-gradient(180deg, var(--band-bg) 0%, rgba(var(--band-bg-rgb),0) 100%);
  }
  body.sky:not(#home):has(.subnav2) header::after{
    background:linear-gradient(180deg, var(--ymm-band) 0%, rgba(var(--ymm-band-rgb),0) 100%);
  }
}

.news{ list-style:none; padding:0 0 0 26px; margin:0 0 26px; font-size:17px; }
.news li{ display:flex; gap:16px; align-items:baseline; padding:12px 0; border-bottom:1px solid var(--line); font-size:17px; color:var(--ink-soft); }
.news li:last-child{ border-bottom:none; }
.news time{ color:var(--muted); font-size:15.5px; white-space:nowrap; min-width:6.5em; font-variant-numeric:tabular-nums; }
