@import url("../shared/external-link.css?v=20261013");
@import url("../shared/cv-layout.css?v=20261011-1");
@import url("../shared/category-navigation-card.css?v=20261011-2");
@import url("../shared/accordion-ui.css?v=20261011-1");
@import url("../shared/link-panel.css?v=20261013-related-hover");
@import url("../shared/button-ui.css?v=20261010-1");
/* The keyboard skip link has the same treatment on approved and front pages. */
.gv-skip-link{position:fixed;top:8px;left:8px;z-index:10000;padding:10px 16px;color:#070910;background:#fff;transform:translateY(-150%)}
.gv-skip-link:focus{transform:none}
:root{--fg:#eef3f1;--gold:#d5b200;--ink:#172051;--gold-ink:#8a7300;--ease:cubic-bezier(.19,1,.22,1)}
.hud-top{position:fixed;top:0;left:0;right:0;z-index:50;display:flex;justify-content:space-between;align-items:center;padding:28px 6vw;transition:color .6s,background .6s}
.logo{display:block;line-height:0}
.logo img{height:22px;width:auto}
.logo .lg-dark{display:none}
.hud-top nav{display:flex;align-items:center;gap:32px;font:500 13px/1 "Zen Kaku Gothic New",sans-serif;letter-spacing:.06em}
.hud-top nav a{opacity:.72;transition:opacity .3s,color .3s,background .3s,border-color .3s}
.hud-top nav a:hover,.hud-top nav a[aria-current]{opacity:1}
.hud-top nav a[aria-current]{color:var(--gold)}
.hud-top nav a.nav-cta{opacity:1;color:#0a0a14;font-weight:700;padding:11px 24px;border:1px solid var(--gold);border-radius:999px;background:var(--gold)}
.hud-top nav a.nav-cta:hover{background:#fff;color:#0a0a14;border-color:#fff}
body.light .hud-top{color:var(--ink);background:linear-gradient(rgba(243,246,253,.94),rgba(243,246,253,0))}
body.light .hud-top nav a[aria-current]{color:var(--gold-ink)}
body.light .hud-top nav a.nav-cta:hover{background:var(--ink);color:#fff;border-color:var(--ink)}
body.light .logo .lg-white{display:none}
body.light .logo .lg-dark{display:block}
.menu-btn{display:none}
.foot{--fnavy20:#c3cbe5;--fnavy60:#5d69a3;position:relative;z-index:1;background:rgba(1,1,2,.9);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);padding-top:65px;color:var(--fnavy20);font-family:"DM Sans","Zen Kaku Gothic New",sans-serif;font-variation-settings:"opsz" 14}
.foot a{color:inherit;transition:color .3s}
.foot a:hover{color:#fff}
.foot-main{display:grid;grid-template-columns:1fr 644px;grid-template-rows:auto 1fr;grid-template-areas:"brand nav" "sub nav";column-gap:40px;padding:0 64px}
.foot-brand{grid-area:brand;min-width:0;padding-bottom:64px}
.foot-logo{display:block;width:400px;max-width:100%}
.foot-logo img{display:block;width:100%;height:auto}
.foot-sns{list-style:none;display:flex;align-items:center;gap:32px;margin-top:64px}
.foot-sns a{display:block}
.foot-sns img{display:block}
.foot-sns a:hover{opacity:.7}
.foot-map{grid-area:nav;display:grid;grid-template-columns:221px 219px 1fr;row-gap:65px;align-content:start;margin-top:12px}
.fm-en{font-size:24px;font-weight:900;line-height:1;letter-spacing:.04em;color:#fff}
.fm-col:nth-child(n+4) .fm-en{font-weight:600}
.fm-ja{display:block;width:fit-content;margin-top:8px;font:500 12px/1 "Zen Kaku Gothic New",sans-serif;letter-spacing:.04em}
.fm-list{list-style:none;margin-top:15px}
.fm-list li{display:flex;gap:12px;font-size:14px;line-height:1.8;letter-spacing:.04em}
.fm-list li::before{content:"-";flex:none;width:8px;font-family:"DM Sans",sans-serif}
.fm-list a{font-family:"DM Sans","Zen Kaku Gothic New",sans-serif}
.foot-sub{grid-area:sub;align-self:start;margin-top:0}
.foot-legal{list-style:none;display:flex;font-size:12px;line-height:1.8;flex-wrap:wrap;justify-content:center;gap:0 28px;margin-top:49px;padding:0 64px 6px}
.foot-legal a{display:block;font:500 12px/1.8 "Zen Kaku Gothic New",sans-serif;letter-spacing:.04em}
.foot-copy{border-top:1px solid var(--fnavy60);padding:24px 0;text-align:center;font:500 12px/1 "Zen Kaku Gothic New",sans-serif;letter-spacing:.04em}
.nav-dd{position:relative}
.nav-dd>a::after{content:"";display:inline-block;width:5px;height:5px;margin:0 0 3px 8px;border-right:1px solid currentColor;border-bottom:1px solid currentColor;transform:rotate(45deg)}
.dd{position:absolute;left:50%;top:100%;padding-top:18px;transform:translate(-50%,8px);opacity:0;pointer-events:none;transition:opacity .3s,transform .4s var(--ease)}
.nav-dd:hover .dd,.nav-dd:focus-within .dd{opacity:1;pointer-events:auto;transform:translate(-50%,0)}
.dd-in{display:grid;min-width:220px;padding:10px;border-radius:14px;background:rgba(10,11,16,.92);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border:1px solid rgba(255,255,255,.1);box-shadow:0 24px 50px -20px rgba(0,0,0,.6)}
.hud-top nav .dd a{display:flex;justify-content:space-between;gap:24px;padding:12px 14px;border-radius:8px;color:#eef3f1;opacity:.8;white-space:nowrap}
.hud-top nav .dd a::after{content:"→";color:var(--gold)}
.hud-top nav .dd a:hover{opacity:1;background:rgba(255,255,255,.06)}
.hud-top nav .dd a[aria-current]{opacity:1;color:var(--gold)}
@media (max-width:768px){
  .nav-dd>a::after{display:none}
  .dd{position:static;padding-top:14px;transform:none;opacity:1;pointer-events:inherit}
  .dd-in{grid-template-columns:1fr 1fr;gap:4px 28px;min-width:0;padding:0;background:none;border:0;box-shadow:none;backdrop-filter:none;-webkit-backdrop-filter:none}
  .hud-top nav .dd a{padding:6px 0;font-size:14px;opacity:.7}
  .hud-top nav .dd a::after{display:none}
}

.hud-top .logo{width:auto}.hud-top .logo img{max-width:100%}.foot ul{padding-left:0}.foot p{margin:0}.foot .foot-sns{margin-top:64px}.foot .fm-list{margin-top:15px}.foot .foot-sub{margin-top:0}.foot .foot-legal{margin-top:49px;padding:0 64px 6px}.foot .foot-copy{margin-top:0}
.why{padding-block:65px}.business{padding-bottom:55px}
.contact{background:transparent}
.hero{min-height:0;width:100%;padding:clamp(112px,15vh,150px) 6vw clamp(48px,8vh,80px)}
.hero h1{font-size:var(--gv-h1-size);line-height:var(--gv-h1-line-height);font-weight:var(--gv-h1-weight);letter-spacing:var(--gv-h1-letter-spacing)}
.hero .sub{margin-top:var(--gv-h1-subtitle-gap);font-size:clamp(16px,1.6vw,20px);line-height:1;letter-spacing:.12em}
.hero .crumb{font-size:12px;margin-bottom:24px}.section-number{font-size:clamp(56px,6vw,80px);font-weight:400;line-height:1;letter-spacing:-.03em;margin:0 0 12px}
.contact .cta{flex-shrink:0}
.why .sculpture{aspect-ratio:1.15;object-fit:contain;max-height:420px}
@media(max-width:1100px){.foot-main{grid-template-columns:1fr;grid-template-rows:none;grid-template-areas:"brand" "nav" "sub"}.foot-brand{padding-bottom:0}.foot-map{grid-template-columns:repeat(3,1fr);margin-top:56px;row-gap:56px}.foot .foot-sub{margin-top:56px}}
@media(max-width:768px){
  .hud-top{padding:16px 5vw}
  .logo{position:relative;z-index:2}
  .logo img{height:17px}
  html,body{overflow-x:clip}
  .menu-btn{display:grid;gap:7px;place-content:center;width:44px;height:44px;background:none;border:0;padding:0;position:relative;z-index:2;color:inherit}
  .menu-btn i{display:block;width:22px;height:1.5px;background:currentColor;transition:transform .45s var(--ease)}
  body.menu-open .menu-btn i:first-child{transform:translateY(4.25px) rotate(45deg)}
  body.menu-open .menu-btn i:last-child{transform:translateY(-4.25px) rotate(-45deg)}
  .hud-top nav{position:fixed;inset:0;flex-direction:column;align-items:flex-start;justify-content:center;gap:28px;padding:0 10vw;
    font-size:22px;background:rgba(1,1,2,.94);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);color:#eef3f1;
    opacity:0;pointer-events:none;transition:opacity .45s var(--ease)}
  .hud-top nav a{opacity:1;transform:translateY(14px);transition:transform .6s var(--ease)}
  .hud-top nav a.nav-cta{margin-top:12px;font-size:16px;padding:14px 28px}
  body.menu-open .hud-top nav{opacity:1;pointer-events:auto}
  body.menu-open .hud-top nav a{transform:none}
  body.menu-open.light .hud-top{color:#eef3f1;background:none}
  body.menu-open.light .logo .lg-white{display:block}
  body.menu-open.light .logo .lg-dark{display:none}
.hero{padding-top:96px}.section-number{font-size:56px}.foot{padding-top:56px}.foot-main{padding:0 24px}.foot-logo{width:240px}.foot .foot-sns{margin-top:32px}.foot-map{grid-template-columns:max-content 1fr;gap:40px 24px;margin-top:48px}.foot .foot-sub{margin-top:40px}.foot .foot-legal{justify-content:flex-start;gap:4px 20px;margin-top:40px;padding:0 24px 16px}.why .sculpture{max-height:290px}.contact .cta{margin-top:26px}.hud-top nav{visibility:hidden}.menu-open .hud-top nav{visibility:visible}
}
@media(max-width:600px){.contact h2{font-size:24px}.why{padding-block:34px}}
@media(prefers-reduced-motion:reduce){.cta::before,.hud-top,.hud-top nav{transition:none}}

/* モバイルの共通操作領域。アイコンの見た目とクリック領域を分離。 */
@media(max-width:768px){
 .hud-top nav{justify-content:flex-start;gap:16px;padding:88px 10vw 32px;overflow-y:auto;max-height:100dvh}
 .hud-top nav>a,.hud-top .nav-dd>a,.hud-top nav .dd a{display:flex;align-items:center;min-height:44px}
 .foot .fm-ja{min-height:44px;display:flex;align-items:center;font-size:14px;line-height:1.8}
 .foot .fm-list li{align-items:center}
 .foot .fm-list a,.foot .foot-legal a{display:inline-flex;align-items:center;min-height:44px}
 .foot-sns a{display:grid;place-items:center;min-width:44px;min-height:44px}
}

/* Mobile navigation: reserve the logo row and scroll only the menu on iOS Safari. */
@media (max-width: 768px) {
  /* All templates use the same unnumbered menu, including company and careers. */
  .gv-site-header.hud-top {
    box-sizing: border-box;
    height: 64px;
    padding: 0 20px;
  }
  .gv-site-header.hud-top .menu-btn { width: 44px; height: 44px; }
  html.gv-menu-open { overflow: hidden; overscroll-behavior: none; }
  body.menu-open {
    position: fixed;
    top: var(--gv-menu-scroll-y, 0px);
    left: 0;
    right: 0;
    width: 100%;
    overflow: hidden;
  }
  body.menu-open .gv-site-header.hud-top {
    color: #eef3f1;
    background: #070910;
  }
  .gv-site-header.hud-top .logo,
  .gv-site-header.hud-top .menu-btn { flex-shrink: 0; }
  .gv-site-header.hud-top .gv-site-nav {
    box-sizing: border-box;
    inset: var(--gv-menu-header-height, 76px) 0 auto;
    height: calc(100vh - var(--gv-menu-header-height, 76px));
    height: calc(100dvh - var(--gv-menu-header-height, 76px));
    max-height: none;
    min-height: 0;
    align-items: stretch;
    justify-content: flex-start;
    gap: 16px;
    padding: 24px 10vw calc(32px + env(safe-area-inset-bottom, 0px));
    overflow-x: hidden;
    overflow-y: auto;
    overscroll-behavior: none;
    -webkit-overflow-scrolling: touch;
    background: #070910;
    backdrop-filter: none;
    -webkit-backdrop-filter: none;
    font: 500 22px/1 "Noto Sans JP", sans-serif;
    letter-spacing: .06em;
    counter-reset: none;
  }
  /* Long menus must retain their natural height instead of shrinking flex items. */
  .gv-site-header.hud-top .gv-site-nav > * { flex-shrink: 0; }
  .gv-site-header.hud-top .gv-site-nav > a:not(.nav-cta),
  .gv-site-header.hud-top .nav-dd > a {
    display: flex;
    align-items: center;
    min-height: 44px;
    padding: 0;
    border: 0;
    gap: 0;
    font-weight: 500;
    letter-spacing: .06em;
    counter-increment: none;
  }
  .gv-site-header.hud-top .gv-site-nav > a:not(.nav-cta)::before,
  .gv-site-header.hud-top .gv-site-nav > a:not(.nav-cta)::after,
  .gv-site-header.hud-top .nav-dd > a::before,
  .gv-site-header.hud-top .nav-dd > a::after {
    content: none;
    display: none;
  }
  .gv-site-header.hud-top .gv-site-nav > .nav-dd,
  .gv-site-header.hud-top .gv-site-nav > a {
    opacity: 1;
    transform: none;
    transition: none;
  }
  .gv-site-header.hud-top .gv-site-nav > .nav-cta {
    align-self: flex-start;
    width: fit-content;
    margin-top: 8px;
    padding: 14px 28px;
    font-size: 16px;
    font-weight: 700;
    letter-spacing: .06em;
    text-align: center;
    justify-content: center;
  }
  /* Touch focus/hover must never inherit the desktop dropdown translation. */
  .gv-site-header.hud-top .nav-dd > .dd,
  .gv-site-header.hud-top .nav-dd:hover > .dd,
  .gv-site-header.hud-top .nav-dd:focus-within > .dd {
    position: static;
    inset: auto;
    width: auto;
    transform: none;
    translate: none;
    opacity: 1;
    pointer-events: inherit;
    transition: none;
    padding: 4px 0 14px 34px;
    border-bottom: 1px solid rgba(255,255,255,.1);
  }
  .gv-site-header.hud-top .nav-dd > .dd > .dd-in {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 4px 28px;
    min-width: 0;
    padding: 0;
    background: none;
    border: 0;
    box-shadow: none;
    backdrop-filter: none;
    -webkit-backdrop-filter: none;
  }
  .gv-site-header.hud-top .gv-site-nav .dd a {
    display: flex;
    align-items: center;
    min-height: 44px;
    padding: 6px 0;
    font-size: 14px;
    font-weight: 500;
    letter-spacing: .06em;
    white-space: normal;
    opacity: .7;
    transform: none;
    transition: opacity .2s;
  }
}
