@charset "UTF-8";
/* ============================================================
   hero3d.css  ヒーローの3D図版と、3D非対応時の5枚カード
   style.css の後に読み込むこと。
   ============================================================ */
.hero-fig{position:relative}
.hero-3d{
  position:relative;width:100%;aspect-ratio:56/44;max-height:460px;
  cursor:grab;
}
.hero-3d canvas{display:block;width:100%!important;height:100%!important}

/* 分野チップ（3D動作時にJSが生成） */
.hero-chips{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;margin-top:14px}
.hero-chips button{
  font-family:var(--sans);font-size:13.5px;letter-spacing:.06em;color:#fff;
  background:transparent;border:1px solid rgba(255,255,255,.35);padding:9px 16px;cursor:pointer;
  transition:border-color .25s,background .25s,color .25s;
}
.hero-chips button:hover{border-color:#fff}
.hero-chips button[aria-pressed="true"]{background:var(--gold);border-color:var(--gold);color:var(--navy);font-weight:700}
.hero-cap{
  text-align:center;margin-top:12px;min-height:1.6em;font-size:14.5px;color:#C7D3DF;letter-spacing:.03em;
}
.hero-cap b{color:#fff;margin-right:12px;font-family:var(--serif);font-size:16px;letter-spacing:.08em}

/* 3D非対応時：5枚のカード（HTMLに最初から書いてある） */
.hero-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
.hero-card{
  border:1px solid rgba(255,255,255,.28);background:rgba(255,255,255,.04);padding:22px 18px 20px;
  position:relative;
}
.hero-card::before{content:"";position:absolute;left:18px;top:0;width:34px;height:2px;background:var(--gold)}
.hero-card svg{width:40px;height:40px;margin-bottom:12px}
.hero-card small{display:block;font-family:var(--en);font-size:10px;letter-spacing:.24em;color:var(--gold)}
.hero-card b{display:block;font-family:var(--serif);font-size:18px;color:#fff;letter-spacing:.06em;margin-top:6px;font-weight:600}
.hero-card span{display:block;font-size:13px;color:#C7D3DF;margin-top:6px;line-height:1.7}
.hero-card:nth-child(4),.hero-card:nth-child(5){grid-column:span 1}
@media(max-width:640px){
  .hero-cards{grid-template-columns:1fr 1fr}
  .hero-3d{max-height:340px}
  .hero-chips button{padding:8px 12px;font-size:12.5px}
}

/* ============================================================
   サイトマップページ
   ============================================================ */
.smap{display:grid;grid-template-columns:repeat(3,1fr);gap:40px}
.smap-col h2{
  font-family:var(--serif);font-size:20px;font-weight:600;color:var(--navy);letter-spacing:.06em;
  padding-bottom:12px;border-bottom:1px solid var(--line);position:relative;margin-bottom:8px;
}
.smap-col h2::after{content:"";position:absolute;left:0;bottom:-1px;width:44px;height:2px;background:var(--gold)}
.smap-col h2 small{display:block;font-family:var(--en);font-size:11px;letter-spacing:.24em;color:var(--gold-txt);margin-bottom:6px;font-weight:400}
.smap-list{list-style:none}
.smap-list li{border-bottom:1px solid var(--line)}
.smap-list a{
  display:grid;grid-template-columns:auto 1fr;gap:12px;align-items:baseline;padding:14px 4px;
  transition:background .25s,padding-left .25s;
}
.smap-list a:hover{background:var(--mist);padding-left:12px}
.smap-list a small{font-family:var(--en);font-size:11px;letter-spacing:.2em;color:var(--gold-txt);min-width:56px}
.smap-list a b{font-size:16px;color:var(--navy);font-weight:700}
.smap-list a span{display:block;font-size:14px;color:var(--ink-2);margin-top:2px;font-weight:400}
.smap-list a b span{display:block}
.smap-sub{list-style:none;padding-left:26px;margin:4px 0 14px}
.smap-sub li{border:0}
.smap-sub a{padding:7px 4px;font-size:14.5px;color:var(--ink);display:flex;gap:10px;align-items:baseline}
.smap-sub a::before{content:"";width:9px;height:1px;background:var(--gold);flex-shrink:0;position:relative;top:-4px}
.smap-sub a small{min-width:0}
@media(max-width:1000px){.smap{grid-template-columns:1fr 1fr}}
@media(max-width:640px){.smap{grid-template-columns:1fr}}
