/* 限定イベントカード・学科ナビ等 上書き用 */
/* メイン画像：高さが変わった画像用に padding-top だけ変更（他は bundle のまま＝幅いっぱい・cover） */
@media (max-width: 767px) {
  .home-hero-copy { padding-top: 120%; }
}
@media (min-width: 768px) {
  .home-hero-copy { padding-top: 55%; }
}
.department-group a { text-decoration: none; }
/* 吹き出し・手袋が上にはみ出るため、overflow-hidden を上書き */
.department.overflow-hidden { overflow: visible; }
.department { overflow: visible; }
.department-group .department-item {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  flex: 1 1 0;
  min-width: 0;
  text-align: center;
  box-sizing: border-box;
}
.department-group .department-item > span[class^="text-color-"] {
  position: relative;
  display: block;
  width: 100%;
  text-align: center;
}
/* 矢印：共通 */
.department-item-arrow {
  position: absolute;
  transform: translateY(-50%);
  display: inline-flex;
  align-items: center;
  vertical-align: middle;
}
/* SP：学科ごとに調整（文字量で違うため） */
@media (max-width: 767px) {
  .department-item-01 .department-item-arrow { right: 3px; top: 60%; }
  .department-item-02 .department-item-arrow { right: 3px; top: 60%; }
  .department-item-03 .department-item-arrow { right: 3px; top: 60%; }
}
/* PC：学科ごとに調整 */
@media (min-width: 768px) {
  .department-item-01 .department-item-arrow { right: 10px; top: 80%; }
  .department-item-02 .department-item-arrow { right: 10px; top: 80%; }
  .department-item-03 .department-item-arrow { right: 10px; top: 80%; }
}
/* 吹き出し: 常時表示（SP・PCで分けて調整） */
.department-item-hover-img {
  position: absolute;
  opacity: 1;
  pointer-events: none;
  z-index: 10;
}
@media (max-width: 767px) {
  .department-item-hover-img {
    bottom: 105%;
    width: 60px;
  }
  .department-item-hover-img img { display: block; width: 60px; height: auto; max-width: none; }
  .department-item-01 .department-item-hover-img { left: 66px; }
  .department-item-02 .department-item-hover-img { left: 70px; }
  .department-item-03 .department-item-hover-img { left: 61px; }
}
@media (min-width: 768px) {
  .department-item-hover-img {
    bottom: 30%;
    margin-left: 12px;
    width: 120px;
  }
  .department-item-hover-img img { display: block; width: 120px; height: auto; max-width: none; }
  .department-item-01 .department-item-hover-img { right: 0px; }
  .department-item-02 .department-item-hover-img { right: 0px; }
  .department-item-03 .department-item-hover-img { right: 0px; }
}
@media (max-width: 767px) {
  .dli-chevron-down {
    display: inline-block;
    vertical-align: middle;
    line-height: 1;
    width: 10px;
    height: 10px;
    border: 2px solid currentColor;
    border-left: 0;
    border-bottom: 0;
    box-sizing: border-box;
    transform: translateY(-80%) rotate(135deg);
  }
}
@media (min-width: 768px) {
  .dli-chevron-down {
    display: inline-block;
    vertical-align: middle;
    line-height: 1;
    width: 15px;
    height: 15px;
    border: 3px solid currentColor;
    border-left: 0;
    border-bottom: 0;
    box-sizing: border-box;
    transform: translateY(-80%) rotate(135deg);
  }
}
@media (min-width: 992px) {
  .container-contents { padding: 0 110px 80px; }
}
.event-cards { margin: 40px -25px 10px; position: relative; }
.event-cards-inner { position: relative; padding: 0 50px; }
@media (max-width: 767px) {
  .event-cards { margin-left: -25px; margin-right: -25px; }
  .event-cards-inner { position: relative; padding: 0; }
  .event-cards-list { display: flex; gap: 20px; overflow-x: auto; padding: 10px 8% 5px; -webkit-overflow-scrolling: touch; scroll-snap-type: x mandatory; scroll-behavior: smooth; scrollbar-width: none; -ms-overflow-style: none; scroll-padding-inline: 8%; }
  .event-card { flex: 0 0 84%; scroll-snap-align: center; }
  .event-card:first-child { margin-left: 25px; }
  .event-card:last-child { margin-right: 25px; }
}
@media (min-width: 768px) { .event-cards { margin-left: -50px; margin-right: -50px; } .event-cards-inner { padding: 0 55px; } }
@media (min-width: 992px) { .event-cards { margin-left: -50px; margin-right: -50px; } }
.event-cards-list { display: flex; gap: 20px; overflow-x: auto; padding: 10px 8% 5px; -webkit-overflow-scrolling: touch; scroll-snap-type: x mandatory; scroll-behavior: smooth; scrollbar-width: none; -ms-overflow-style: none; scroll-padding-inline: 8%; }
.event-cards-list::-webkit-scrollbar { display: none; }
.event-card { flex: 0 0 84%; min-width: 0; scroll-snap-align: center; background: #fff; border: 2px solid #000; border-radius: 5px; overflow: hidden; transform: scaleY(0.9); transform-origin: center top; }
@media (min-width: 768px) {
  .event-cards-list { padding: 10px 5px 5px; scroll-padding-inline: 0; }
  .event-card { flex: 0 0 calc((100% - 40px) / 3); min-width: 0; scroll-snap-align: start; }
  .event-card:first-child { margin-left: 50px; }
  .event-card:last-child { margin-right: 50px; }
}
.event-card-title { background: #f5cd26; padding: 12px 16px; font-weight: 700; font-size: 14px; line-height: 1.4; border-bottom: 2px solid #000; min-height: 52px; display: flex; align-items: center; justify-content: center; text-align: center; }
@media (min-width: 768px) { .event-card-title { font-size: 22px; padding: 16px 0; height: 124px; min-height: 124px; display: flex; align-items: center; justify-content: center; text-align: center; } }
.event-card-image { width: 100%; object-fit: cover; display: block; border-bottom: 2px solid #000; }
.event-card-body { padding: 12px 16px 8px; }
.event-card-date { font-weight: 700; margin: 0; font-size: 16px; line-height: 1.4; }
.event-card-desc { font-size: 12px; line-height: 1.4; }
@media (min-width: 768px) { .event-card-desc { font-size: 16px; margin: 10px 0; } }
.event-card-xlink { display: inline-flex; align-items: center; gap: 8px; margin-top: 8px; font-size: 16px; font-weight: 700; color: #000; text-decoration: none; }
.event-card-xlink:hover { opacity: 0.7; }
.event-card-xlink-icon { width: 37px; height: 37px; flex-shrink: 0; background: #000; border-radius: 50%; display: flex; align-items: center; justify-content: center; }
.event-card-xlink-icon svg { width: 27px; height: 27px; fill: #fff; }
.event-cards-nav { position: absolute; top: 50%; transform: translateY(-50%); width: 40px; height: 40px; border-radius: 50%; background: #000; border: none; cursor: pointer; display: flex; align-items: center; justify-content: center; z-index: 2; padding: 0; transition: opacity 0.2s, visibility 0.2s; }
.event-cards-nav.is-hidden { visibility: hidden; opacity: 0; pointer-events: none; }
.event-cards-nav:hover { opacity: 0.8; }
.event-cards-nav svg { width: 20px; height: 20px; fill: #fff; }
.event-cards-nav-prev { left: 0; }
.event-cards-nav-prev svg { transform: scaleX(-1); }
.event-cards-nav-next { right: 0; }
@media (min-width: 768px) {
  .event-cards-nav-prev { left: 5px; }
  .event-cards-nav-next { right: 5px; }
}
.event-section-header { text-align: center; margin-bottom: 30px; }
.event-section-title { display: inline-flex; border: 2px solid #000; border-radius: 4px; overflow: hidden; margin-top: 60px; }
.event-section-title span { display: inline-flex; align-items: center; justify-content: center; background: #3586cc; color: #fff; font-weight: 700; font-size: 18px; padding: 10px 14px; border-right: 2px solid #000; }
.event-section-title span:last-child { border-right: none; }
@media (min-width: 768px) { .event-section-title span { font-size: 36px; padding: 0 10px; } }
.event-section-desc { margin-top: 20px; }
.event-section-desc p:first-child { font-size: 18px; line-height: 30px; font-weight: 700; letter-spacing: 0.05em; }
.event-section-desc p:last-child { font-size: 15px; line-height: 24px; font-weight: 700; letter-spacing: 0.05em; }
@media (min-width: 768px) {
  .event-section-desc p:first-child { font-size: 24px; }
  .event-section-desc p:last-child { font-size: 20px; }
}
.event-section-desc p.event-section-desc__note { font-size: 15px; line-height: 24px; font-weight: 700; letter-spacing: 0.05em; }
@media (min-width: 768px) { .event-section-desc p.event-section-desc__note { font-size: 20px; } }
.event-section-desc p.event-section-desc__standard { font-size: 13px; line-height: 1.6; font-weight: 700; letter-spacing: 0.05em; background-color: #c2e0f9; padding: 10px;}
@media (min-width: 768px) { .event-section-desc p.event-section-desc__standard { font-size: 16px; } }
.event-section-desc a { color: #3586cc; text-decoration: underline; }
.event-section-desc a:hover { opacity: 0.8; }
@media (min-width: 768px) { .sp-br { display: none; } }
.article-point03-row { display: flex; justify-content: center; }
.article-point03 { display: flex; justify-content: center; position: relative; }
.article-point03-decor { display: none; }
@media (min-width: 768px) {
  .article-point03-decor { display: block; position: absolute; top: 0; left: 0; width: 100%; height: 100%; pointer-events: none; }
  .article-point03-decor img { position: absolute; height: auto; object-fit: contain; }
  .point03-decor-left-top { top: 24%; left: -182px; width: 15%; }
  .point03-decor-left-bottom { bottom: 6%; left: -224px; width: 36%; }
  .point03-decor-right-top { top: 19%; right: -218px; width: 35%; }
  .point03-decor-right-bottom { bottom: 15%; right: -144px; width: 15%; }
}
.access-oc-note { margin-top: 1.5em; }
