/* R29 — Native shared header: dropdowns and a stronger brand weight.
 * Original R28 layout and theme-specific component styling retained.
 */
/* R28 — Single canonical header CSS. Uses the layout, sizes, colors, selectors
 * and responsive behaviors of kakenhi-minimal-authpilot/style.css and
 * assets/kcom-ui-refresh-r1.css, instead of a second BlueBell approximation.
 * Exactly this one file is loaded by all three header contexts.
 */
.site-header.kcom-shared-site-header {
  --bg:#fff; --surface:#fff; --text:#1f2937; --muted:#64748b;
  --primary:#0f766e; --primary-hover:#115e59; --selected:#e8f5f2;
  --border:#dce5e1; --kcom-color-control-border:#7b8794;
  --kcom-r1-line:#dce5ec; --kcom-r1-blue:#1d6075;
  --kcom-r1-soft:#f6f9fb; --kcom-r1-blue-dark:#14485a;
  --kcom-v32-ink:#202f40; --kcom-v32-teal:#08766e; --kcom-v32-teal-dark:#075e58;
  position:relative; z-index:500; flex:0 0 auto; width:100%;
  background:#fff; color:#202f40; border:0; border-bottom:1px solid #dce5e1;
  box-shadow:none; margin:0; padding:0;
  font-family:-apple-system,BlinkMacSystemFont,"Hiragino Kaku Gothic ProN","Noto Sans CJK JP","Yu Gothic",Meiryo,sans-serif;
  font-size:14px; line-height:1.75; letter-spacing:.004em;
}
.site-header.kcom-shared-site-header * {box-sizing:border-box}
.site-header.kcom-shared-site-header .site-header__inner {
  display:flex;align-items:center;gap:24px;
  max-width:1190px;min-height:70px;padding:0 clamp(18px,3vw,35px);
  margin:0 auto;min-width:0;
}
.site-header.kcom-shared-site-header .site-brand {flex:0 0 auto}
.site-header.kcom-shared-site-header .site-brand__link {
  display:inline-flex;align-items:center;gap:8px;min-height:44px;
  color:#202f40;text-decoration:none;
}
.site-header.kcom-shared-site-header .site-brand__name {
  font-size:21px;line-height:1;font-weight:900;
  letter-spacing:-.06em;white-space:nowrap;
}
.site-header.kcom-shared-site-header .site-brand__dot {color:#08766e}
.site-header.kcom-shared-site-header .primary-nav {margin-left:auto;min-width:0;display:block}
.site-header.kcom-shared-site-header .primary-nav .menu {
  display:flex;align-items:center;gap:clamp(11px,2vw,29px);margin:0;padding:0;list-style:none;
}
.site-header.kcom-shared-site-header .primary-nav .menu > li {position:relative}
.site-header.kcom-shared-site-header .primary-nav .menu > li > .km-nav-top-link {
  display:flex;align-items:center;min-height:44px;
  padding:8px 14px;border-radius:0;
  color:#37474a;text-decoration:none;font-size:14px;font-weight:680;
  white-space:nowrap;transition:color .12s ease;
  box-shadow:none;
}
.site-header.kcom-shared-site-header .primary-nav .menu > li > .km-nav-top-link:hover,
.site-header.kcom-shared-site-header .primary-nav .menu > li.is-current > .km-nav-top-link,
.site-header.kcom-shared-site-header .primary-nav .menu > li > .km-nav-top-link[aria-current="page"],
.site-header.kcom-shared-site-header.kcom-shared-header--bluebell .primary-nav .menu > li.nav-writing > .km-nav-top-link {
  color:#075e58;background:transparent;
  box-shadow:inset 0 -3px 0 #0f766e;
}
.site-header.kcom-shared-site-header .primary-nav .nav-has-submenu > .km-nav-top-link::after {
  content:'';display:inline-block;width:6px;height:6px;
  border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;
  transform:rotate(45deg);margin:-4px 0 0 9px;vertical-align:middle;
}
.site-header.kcom-shared-site-header .primary-nav .km-nav-submenu {
  display:none;position:absolute;top:calc(100% - 1px);left:0;flex-direction:column;
  min-width:240px;max-width:320px;margin:0;padding:7px;gap:0;list-style:none;
  border:1px solid #dce5ec;border-radius:9px;background:#fff;
  box-shadow:0 10px 28px rgb(20 40 60 / 10%);z-index:520;
}
/* Keep the final menu inside the viewport even when its parent sits at the right edge. */
.site-header.kcom-shared-site-header .primary-nav .menu > li:last-child > .km-nav-submenu {
  left:auto;right:0;
}
.site-header.kcom-shared-site-header .primary-nav .km-nav-submenu li {width:100%}
.site-header.kcom-shared-site-header .primary-nav .km-nav-submenu a {
  display:flex;width:100%;min-height:42px;padding:10px 12px;
  font-weight:500;white-space:normal;line-height:1.45;color:#37474a;text-decoration:none;
}
.site-header.kcom-shared-site-header .primary-nav .nav-has-submenu:hover > .km-nav-submenu,
.site-header.kcom-shared-site-header .primary-nav .nav-has-submenu:focus-within > .km-nav-submenu {display:flex}
.site-header.kcom-shared-site-header .primary-nav .km-nav-submenu a:hover,
.site-header.kcom-shared-site-header .primary-nav .km-nav-submenu a:focus-visible {
  background:#f6f9fb;color:#075e58;border-radius:5px;
}
/* Touch/mobile lists stay visible within the existing native details menu. */
.site-header.kcom-shared-site-header .mobile-nav {display:none;margin-left:auto;position:relative}
.site-header.kcom-shared-site-header .mobile-nav > summary {
  cursor:pointer;list-style:none;min-height:44px;display:flex;align-items:center;
  border:1px solid #7b8794;border-radius:6px;padding:7px 12px;
  font-size:14px;font-weight:600;background:#fff;color:#202f40;
}
.site-header.kcom-shared-site-header .mobile-nav > summary::-webkit-details-marker {display:none}
.site-header.kcom-shared-site-header .mobile-nav__panel {
  position:absolute;right:0;top:50px;z-index:1000;
  width:min(340px,calc(100vw - 32px));min-width:0;
  max-height:calc(100dvh - 92px);overflow-y:auto;overscroll-behavior:contain;
  padding:8px;background:#fff;border:1px solid #7b8794;border-radius:8px;
  box-shadow:0 14px 32px rgb(20 40 60 / 10%);
}
.site-header.kcom-shared-site-header .mobile-nav__panel ul {margin:0;padding:0;list-style:none}
.site-header.kcom-shared-site-header .mobile-nav__panel .menu > li {
  border-bottom:1px solid #dce5ec;
}
.site-header.kcom-shared-site-header .mobile-nav__panel .menu > li:last-child {border-bottom:0}
.site-header.kcom-shared-site-header .mobile-nav__panel a {
  display:flex;align-items:center;min-height:44px;padding:9px 10px;
  border-radius:6px;color:#202f40;text-decoration:none;
}
.site-header.kcom-shared-site-header .mobile-nav__panel .km-nav-top-link {font-size:16px;font-weight:700}
.site-header.kcom-shared-site-header .mobile-nav__panel .km-nav-submenu {
  list-style:none;margin:0 0 8px 10px;padding:0 0 0 10px;border-left:2px solid #dce5ec;
}
.site-header.kcom-shared-site-header .mobile-nav__panel .km-nav-submenu a {font-size:14px;font-weight:500;line-height:1.45}
.site-header.kcom-shared-site-header .mobile-nav__panel :is(a:hover,.is-current > .km-nav-top-link) {background:#f6f9fb;color:#14485a}
.site-header.kcom-shared-site-header.kcom-shared-header--bluebell .mobile-nav__panel .nav-writing > .km-nav-top-link {background:#f6f9fb;color:#14485a}
.site-header.kcom-shared-site-header .primary-nav :where(a):focus-visible,
.site-header.kcom-shared-site-header .mobile-nav :where(a,summary):focus-visible,
.site-header.kcom-shared-site-header .site-brand__link:focus-visible {
  outline:3px solid #0f766e;outline-offset:2px;
}
@media (max-width:920px) {
  .site-header.kcom-shared-site-header .site-header__inner {gap:8px;justify-content:space-between}
  .site-header.kcom-shared-site-header .site-header__inner .site-brand {order:1;flex:0 0 auto}
  .site-header.kcom-shared-site-header .site-header__inner .kcom-header-account {order:2;flex:0 0 auto;margin-left:auto!important;margin-right:0!important}
  .site-header.kcom-shared-site-header .site-header__inner .mobile-nav {order:3;flex:0 0 auto;margin-left:0;display:block}
  .site-header.kcom-shared-site-header .site-header__inner .primary-nav {display:none}
}
@media (max-width:860px) {
  .site-header.kcom-shared-site-header .site-header__inner {min-height:62px;padding:0 16px}
}
@media (max-width:740px) {
  .site-header.kcom-shared-site-header .site-header__inner {min-height:60px}
}
@media (max-width:390px) {
  .site-header.kcom-shared-site-header .site-header__inner {padding-inline:12px}
  .site-header.kcom-shared-site-header .site-brand__name {font-size:19px}
  /* Only the longer BlueBell brand needs a narrower label on small phones. */
  .site-header.kcom-shared-site-header.kcom-shared-header--bluebell .site-brand__name {font-size:17px}
  .site-header.kcom-shared-site-header .mobile-nav > summary {padding-inline:10px;font-size:15px}
}

/* KCOM_URA_ENTRY_U01_CSS */
.site-header.kcom-shared-site-header .kcom-header-account{display:flex;align-items:center;gap:12px}
.site-header.kcom-shared-site-header .kcom-university-entry-link{font:inherit;font-size:14px;font-weight:700;color:var(--kcom-color-primary,#0F766E);white-space:nowrap;text-decoration:none}
.site-header.kcom-shared-site-header .kcom-university-entry-link:hover{text-decoration:underline;text-underline-offset:3px}
.site-header.kcom-shared-site-header .kcom-university-entry-link:focus-visible{outline:2px solid currentColor;outline-offset:4px}
@media(max-width:600px){.site-header.kcom-shared-site-header .kcom-header-account{gap:8px}.site-header.kcom-shared-site-header .kcom-university-entry-link{font-size:13px}}
/* KCOM_URA_ENTRY_U01_CSS_END */
