/* Site shell reimplemented from the publicly visible menu hierarchy of boost.php.
   This is not a copy of Osaka University's private PHP templates or common CSS. */
:root {--ist-blue:#133f6b;--ist-dark:#16334e;--ist-text:#263340;--ist-muted:#65737e;--ist-line:#d8e0e6;--ist-pale:#f1f5f8;--ist-width:1200px;}
html {box-sizing:border-box;scroll-behavior:auto;background:#fff;}
body {margin:0;color:var(--ist-text);font-family:"Noto Sans CJK JP","Hiragino Kaku Gothic ProN","Yu Gothic",Meiryo,sans-serif;font-size:15px;line-height:1.85;}
*,*::before,*::after {box-sizing:inherit;}
a {color:var(--ist-blue);text-underline-offset:.2em;}
a:hover {text-decoration-thickness:2px;}
:focus-visible {outline:3px solid #926100;outline-offset:4px;}
.ist-wrap {width:min(calc(100% - 80px),var(--ist-width));margin-inline:auto;}
.ist-skip-link {position:absolute;left:15px;top:-120px;z-index:100;background:#fff;padding:12px 24px;border:2px solid var(--ist-blue);}
.ist-skip-link:focus {top:10px;}
.ist-preview-note {padding:8px 20px;background:#fff8e9;border-bottom:1px solid #ebdcbb;font-size:12px;text-align:center;color:#705620;}
.ist-header {background:#fff;border-top:4px solid var(--ist-blue);}
.ist-header-inner {display:flex;align-items:center;justify-content:space-between;gap:28px;min-height:120px;padding-block:18px;}
.ist-brand {display:block;position:relative;color:var(--ist-blue);text-decoration:none;width:455px;max-width:100%;min-height:72px;flex:0 1 455px;}
.ist-brand-fallback {display:block;line-height:1.45;}
.ist-brand-university {display:block;font-size:15px;font-weight:500;letter-spacing:.08em;}
.ist-brand-school {display:block;font-size:26px;font-weight:700;letter-spacing:.06em;}
.ist-brand-english {display:block;font-size:10px;letter-spacing:.025em;margin-top:5px;color:var(--ist-muted);}
.ist-utility {display:flex;justify-content:flex-end;align-items:center;flex-wrap:wrap;gap:9px 20px;font-size:12px;max-width:440px;}
.ist-utility a {text-decoration:none;color:#3d4a57;}
.ist-utility .ist-language {border:1px solid #9dabb8;min-width:83px;text-align:center;padding:5px 13px;}
.ist-mobile-toggle {display:none;border:1px solid var(--ist-blue);border-radius:0;background:#fff;color:var(--ist-blue);min-height:45px;min-width:67px;align-items:center;justify-content:center;gap:6px;flex-direction:column;font:inherit;font-size:11px;line-height:1.2;cursor:pointer;}
.ist-toggle-lines {display:block;width:20px;height:13px;border-top:1px solid;border-bottom:1px solid;position:relative;}
.ist-toggle-lines::after {content:"";position:absolute;left:0;right:0;top:5px;border-top:1px solid;}
.ist-global-nav {border-top:1px solid var(--ist-line);border-bottom:1px solid var(--ist-line);background:#fff;}
.ist-global-nav ul {display:grid;grid-template-columns:repeat(6,1fr);margin:0;padding:0;list-style:none;}
.ist-global-nav li {margin:0;min-width:0;}
.ist-global-nav a {display:flex;justify-content:center;align-items:center;padding:18px 10px;color:var(--ist-dark);font-size:15px;line-height:1.5;font-weight:700;min-height:59px;text-decoration:none;position:relative;border-left:1px solid var(--ist-line);}
.ist-global-nav li:last-child a {border-right:1px solid var(--ist-line);}
.ist-global-nav a:hover {background:var(--ist-pale);}
.ist-global-nav .ist-nav-current {background:var(--ist-blue);color:#fff;}
.ist-category {background:var(--ist-pale);border-bottom:1px solid var(--ist-line);}
.ist-category .ist-wrap {display:flex;align-items:center;justify-content:space-between;min-height:104px;gap:24px;}
.ist-category-title {margin:0;font-size:28px;letter-spacing:.07em;font-weight:700;color:var(--ist-dark);}
.ist-category-en {font-size:12px;letter-spacing:.15em;color:#617b91;}
.ist-breadcrumb {padding-block:18px;font-size:11px;color:#6a7782;}
.ist-breadcrumb ol {display:flex;flex-wrap:wrap;gap:6px 10px;list-style:none;padding:0;margin:0;}
.ist-breadcrumb li {display:flex;align-items:baseline;gap:10px;}
.ist-breadcrumb li:not(:last-child)::after {content:"›";color:#8996a1;}
.ist-breadcrumb a {color:inherit;text-decoration:none;}
.ist-breadcrumb [aria-current] {color:#263c50;}
.ist-page-grid {display:grid;grid-template-columns:224px minmax(0,1fr);gap:48px;padding-top:18px;padding-bottom:72px;align-items:start;}
.ist-sidebar {font-size:13px;}
.ist-local-title {margin:0;padding:17px 18px;background:var(--ist-blue);color:#fff;font-size:17px;line-height:1.6;font-weight:700;}
.ist-local-title a {color:inherit;text-decoration:none;}
.ist-student-nav > ul {margin:0;padding:0;list-style:none;border:1px solid var(--ist-line);border-top:0;}
.ist-student-nav li {margin:0;}
.ist-student-nav > ul > li:not(:last-child) {border-bottom:1px solid var(--ist-line);}
.ist-student-nav a {display:block;padding:13px 15px;color:#394e61;text-decoration:none;line-height:1.7;}
.ist-student-nav a:hover {background:var(--ist-pale);}
.ist-student-nav .ist-local-parent {background:#f0f5f8;color:var(--ist-blue);font-weight:700;border-left:3px solid var(--ist-blue);padding-left:12px;}
.ist-student-nav .ist-local-sub {margin:0;padding:0 0 9px;list-style:none;background:#f8fafb;}
.ist-student-nav .ist-local-sub a {padding:9px 14px 9px 28px;font-size:12px;}
.ist-student-nav .ist-local-sub a::before {content:"›";display:inline-block;width:12px;margin-left:-12px;}
.ist-student-nav .ist-local-sub [aria-current="page"] {color:var(--ist-blue);background:#e5eef5;font-weight:700;}
.ist-side-index {margin-top:30px;border-top:2px solid var(--ist-blue);padding-top:14px;}
.ist-side-index p {margin:0 0 10px;font-weight:700;color:var(--ist-blue);font-size:13px;}
.ist-side-index ul {list-style:none;padding:0;margin:0;}
.ist-side-index li {border-bottom:1px solid var(--ist-line);}
.ist-side-index a {display:block;padding:11px 0;font-size:12px;text-decoration:none;}
.ist-side-index a::before {content:"↓";display:inline-block;margin-right:9px;color:#7c92a5;}
.ist-main {min-width:0;}
.ist-footer {border-top:1px solid var(--ist-line);background:#f4f6f8;}
.ist-footer-top {display:flex;justify-content:space-between;align-items:start;gap:35px;padding-block:35px;}
.ist-footer-brand {font-size:17px;line-height:1.6;font-weight:700;color:var(--ist-blue);margin:0;}
.ist-footer-brand span {display:block;font-size:11px;color:var(--ist-muted);font-weight:400;margin-top:8px;}
.ist-footer-links {display:flex;flex-wrap:wrap;justify-content:flex-end;gap:9px 25px;max-width:400px;}
.ist-footer-links a {font-size:12px;text-decoration:none;color:#4e6273;}
.ist-footer-bottom {border-top:1px solid var(--ist-line);padding-block:16px;font-size:10px;letter-spacing:.03em;color:var(--ist-muted);display:flex;justify-content:space-between;gap:15px;}
.ist-footer-bottom p {margin:0;}
.ist-mobile-student {display:none;}
@media(max-width:1120px) {.ist-wrap{width:calc(100% - 48px);}.ist-page-grid{grid-template-columns:206px minmax(0,1fr);gap:30px;}.ist-utility{max-width:365px;gap:8px 15px;}.ist-global-nav a{font-size:14px;}}
@media(max-width:960px) {
 .ist-wrap{width:calc(100% - 40px);}.ist-page-grid{display:block;padding-top:8px;padding-bottom:45px;}.ist-sidebar{display:none;}
 .ist-header-inner{min-height:98px;gap:12px;padding-block:14px;}.ist-brand{min-height:65px;flex-basis:420px;}.ist-brand-school{font-size:23px;}.ist-brand-university{font-size:13px;}.ist-brand-english{font-size:9px;}.ist-utility{display:none;}.ist-mobile-toggle{display:flex;}
 body > .ist-global-nav{display:none;}.ist-global-nav ul{grid-template-columns:repeat(2,1fr);padding-block:10px;}.ist-global-nav a{border:1px solid var(--ist-line);margin:0;min-height:50px;padding:14px 8px;}.ist-global-nav li:last-child a{border-right:1px solid var(--ist-line);}
 .ist-category .ist-wrap{min-height:78px;}.ist-category-title{font-size:23px;}.ist-category-en{font-size:10px;}.ist-breadcrumb{font-size:10px;padding-block:15px;}
 .ist-mobile-student{display:block;margin-bottom:20px;border:1px solid var(--ist-line);font-size:13px;background:#f8fafb;}.ist-mobile-student summary{padding:11px 15px;cursor:pointer;color:var(--ist-blue);}.ist-mobile-student nav{padding:0 15px 10px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:5px 20px;}.ist-mobile-student a{font-size:12px;padding:6px 0;}
 .ist-footer-top{padding-block:27px;}.ist-footer-brand{font-size:15px;}.ist-footer-links{max-width:295px;gap:8px 15px;}
}
@media(max-width:520px) {
 .ist-wrap{width:calc(100% - 32px);}.ist-header-inner{min-height:92px;}.ist-brand{min-height:62px;}.ist-brand-university{font-size:12px;}.ist-brand-school{font-size:18px;letter-spacing:.025em;}.ist-brand-english{font-size:8px;letter-spacing:0;max-width:265px;}.ist-mobile-toggle{min-width:56px;}.ist-category-en{display:none;}.ist-category .ist-wrap{min-height:69px;}.ist-category-title{font-size:21px;}.ist-footer-top{display:block;}.ist-footer-links{justify-content:flex-start;margin-top:20px;max-width:none;}.ist-footer-bottom{display:block;}.ist-footer-bottom p+p{margin-top:5px;}.ist-preview-note{font-size:10px;padding:7px 16px;text-align:left;}.ist-mobile-student nav{grid-template-columns:1fr;}
}
@media print {
 .ist-header,.ist-global-nav,.ist-category,.ist-sidebar,.ist-breadcrumb,.ist-footer,.ist-preview-note,.ist-mobile-student,.ist-skip-link{display:none!important;}.ist-wrap{width:100%;max-width:none;}.ist-page-grid{display:block;margin:0;padding:0;}body{font-size:10pt;}
}
/* Align the nav to the same width as the rest of the page. */
.ist-global-nav ul.ist-wrap {margin-inline:auto;}
.ist-student-nav .ist-local-title a {color:#fff;padding:0;}
.ist-student-nav .ist-local-title a:hover {background:transparent;text-decoration:underline;}
.ist-mobile-toggle {white-space:nowrap;padding:7px 6px;}
@media(max-width:520px) {.ist-mobile-toggle{font-size:10px;}}


/* Native mobile navigation: HTML <details>/<summary>, no scripts. */
.ist-header {
  position: relative;
}
.ist-mobile-menu {
  display: none;
}
.ist-mobile-menu > summary {
  list-style: none;
  user-select: none;
}
.ist-mobile-menu > summary::-webkit-details-marker {
  display: none;
}
.ist-mobile-menu[open] .ist-toggle-lines {
  border: 0;
}
.ist-mobile-menu[open] .ist-toggle-lines::before,
.ist-mobile-menu[open] .ist-toggle-lines::after {
  content: "";
  position: absolute;
  top: 6px;
  left: 0;
  right: 0;
  border-top: 1px solid;
}
.ist-mobile-menu[open] .ist-toggle-lines::before {
  transform: rotate(45deg);
}
.ist-mobile-menu[open] .ist-toggle-lines::after {
  transform: rotate(-45deg);
}
@media (max-width: 960px) {
  .ist-mobile-menu {
    display: block;
    flex: 0 0 auto;
  }
  .ist-mobile-menu > .ist-global-nav {
    position: absolute;
    z-index: 50;
    inset: 100% 0 auto;
    padding: 0 20px;
    box-shadow: 0 8px 14px rgb(22 51 78 / 12%);
  }
  .ist-mobile-menu .ist-wrap {
    width: 100%;
    max-width: none;
  }
}
@media (max-width: 520px) {
  .ist-mobile-menu > .ist-global-nav {
    padding-inline: 16px;
  }
}
