/* ============================================================
   高千穂大学 WEBサイトリニューアル - CSS
   ============================================================ */

/* ============================================================
   Reset & Base
   ============================================================ */
*,
*::before,
*::after {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
}

html {
  scroll-behavior: smooth;
}

body {
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 400;
  line-height: 1.8;
  color: #333;
  background-color: #fff;
  overflow-x: hidden;
}

img {
  display: block;
  max-width: 100%;
  height: auto;
}

/* 共通 */
.img-hover-zoom {
  overflow: hidden;
}

.img-hover-zoom img {
  transition: transform .4s ease;
}

.img-hover-zoom:hover img {
  transform: scale(1.05);
}

a {
  text-decoration: none;
  color: inherit;
}

ul,
ol {
  list-style: none;
}

button {
  border: none;
  background: none;
  cursor: pointer;
  font-family: inherit;
    color: #333;
}
.sp{
    display: none !important;
}

.sp_banner{
    display: none !important;
}
/* ============================================================
   CSS Custom Properties
   ============================================================ */
:root {
  --color-primary: #333;
  --color-white: #fff;
  --color-gray-light: #f5f5f5;
  --color-gray: #ccc;
  --color-gray-dark: #898989;
  --color-blue: #2a5c8a;
  --color-blue-light: #e8f4f8;
  --color-blue-dark: #1a3d5c;

  --font-en: "Fugaz One", sans-serif;
  --font-ja: "Noto Sans JP", sans-serif;

  --container-max: 1300px;
  --side-bg-width-pc: 30px;
  --side-bg-width-sp: 20px;

  --transition-default: 0.3s ease;
  --transition-slow: 0.6s ease;
}

/* ============================================================
   Left Side Background
   ============================================================ */
.l-side-background {
    position: absolute;
    top: 0;
    left: 0;
    width: var(--side-bg-width-pc);
    height: 100%;
    background-color: #5d99de;
    z-index: 100;
}

/* ============================================================
   Notice Bar (Fixed Top)
   ============================================================ */
.notice-bar {
    display: none !important;
    position: absolute;
    bottom: 100px;
    left: var(--side-bg-width-pc);
    right: 0;
    background: var(--color-white);
    border-bottom: 1px solid #e0e0e0;
    z-index: 10;
    padding: 8px 20px;
    font-size: 12px;
    color: var(--color-gray-dark);
    white-space: nowrap;
    width: 480px;
    border-radius: 10px;
    border: 1px solid;
}
.notice-bar__inner {
    display: flex;
    align-items: center;
    max-width: var(--container-max);
    margin: 0 auto;
    flex-flow: column;
}
.notice-bar__titel-arrow {
    display: flex;
    justify-content: space-between;
    width: 100%;
}
.notice-bar__titel {
    display: flex;
    align-items: center;
}
.notice-bar__badge {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 24px;
    height: 24px;
    background: #e74c3c;
    border-radius: 50%;
    flex-shrink: 0;
    margin-right: 4px;
}

.notice-bar__badge-icon {
  color: var(--color-white);
  font-size: 12px;
  font-weight: 700;
}

.notice-bar__label {
  font-size: 20px;
  font-weight: 700;
  white-space: nowrap;
  flex-shrink: 0;
}

.notice-bar__content {
    display: flex;
    align-items: center;
    gap: 12px;
    flex: 1;
    overflow: hidden;
    width: 100%;
}
.notice-bar__date {
    font-size: 16px;
    color: var(--color-gray-dark);
    white-space: nowrap;
    font-weight: 600;
}

.notice-bar__text {
    font-size: 16px;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    font-weight: 600;
}

.notice-bar__nav {
  display: flex;
  align-items: center;
  gap: 4px;
  flex-shrink: 0;
}

.notice-bar__prev,
.notice-bar__next {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 28px;
  height: 28px;
  border: 1px solid #ddd;
  border-radius: 4px;
}

.notice-bar__arrow {
  display: block;
  width: 8px;
  height: 8px;
  border-top: 2px solid #333;
  border-right: 2px solid #333;
}

.notice-bar__arrow--prev {
  transform: rotate(-135deg);
}

.notice-bar__arrow--next {
  transform: rotate(45deg);
}

/* ============================================================
   Floating Banner (Fixed Right)
   ============================================================ */
.floating-banner {
    position: fixed;
    right: 0;
    bottom: 5%;
    z-index: 80;
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.floating-banner__item {
    transition: opacity var(--transition-default);
}

.floating-banner__item:hover {
  opacity: 0.85;
}

.floating-banner__text {
  font-weight: 500;
}

.floating-banner__arrow {
  font-size: 10px;
}

/* ============================================================
   Header / Navigation
   ============================================================ */
.header {
    position: absolute;
    top: 40px;
    z-index: 50;
    transition: transform 0.4s ease, position 0s;
    width: 100%;
    padding: 0 30px;
}
.header.is-fixed {
    position: fixed;
    top: 0;
    background: rgba(255, 255, 255, 0.97);
    box-shadow: 0 2px 10px rgba(0, 0, 0, 0.08);
    animation: slideDown 0.4s ease forwards;
}

@keyframes slideDown {
  from {
    transform: translateY(-100%);
  }
  to {
    transform: translateY(0);
  }
}
.header.is-fixed nav.header__nav {
    background-color: #fff;
    border-radius: 0;
    box-shadow: none;
}
.header__nav {
    background-color: #fff;
    border-radius: 50px;
    box-shadow: 4px 4px 20px -10px rgb(0 0 0 / 65%);
}
.header__inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 0 0 0 50px;
    overflow: hidden;
}
.header__logo {
    padding: 16px 0;
    width: 230px;
}
.header__menu_area {
    display: flex;
    align-items: center;
}
.header__menu {
    display: flex;
    gap: 60px;
    margin-right: 60px;
}

.header__menu-item a {
    font-size: 16px;
    font-weight: 700;
    transition: color var(--transition-default);
}

.header__menu-item a:hover {
  color: var(--color-blue);
}

.header__actions {
    display: flex;
    gap: 0;
    height: 90px;
}

.header__action-item {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 4px;
    font-size: 11px;
    transition: opacity var(--transition-default);
    width: 124px;
}
.header__action-item:first-child {
    border-right: 1px solid #ccc;
    border-left: 1px solid #ccc;
}
.header__action-item:hover {
  opacity: 0.7;
}
.header__action-item img {
    height: 24px;
    width: auto;
}
/* Hamburger */
.header__hamburger {
  display: none;
  flex-direction: column;
  justify-content: center;
  gap: 5px;
  width: 44px;
  height: 44px;
  padding: 10px;
}

.header__hamburger-line {
  display: block;
  width: 100%;
  height: 2px;
  background: var(--color-primary);
  transition: transform var(--transition-default), opacity var(--transition-default);
}

.header__hamburger.is-active .header__hamburger-line:nth-child(1) {
  transform: translateY(7px) rotate(45deg);
}

.header__hamburger.is-active .header__hamburger-line:nth-child(2) {
  opacity: 0;
}

.header__hamburger.is-active .header__hamburger-line:nth-child(3) {
  transform: translateY(-7px) rotate(-45deg);
}

/* Drawer */
.header__drawer {
  display: none;
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: rgba(255, 255, 255, 0.98);
  z-index: 200;
  padding: 80px 30px 30px;
  overflow-y: auto;
}

.header__drawer.is-open {
  display: block;
}

.header__drawer-menu li {
  border-bottom: 1px solid #eee;
}

.header__drawer-menu li a {
  display: block;
  padding: 16px 0;
  font-size: 16px;
  font-weight: 500;
}

/* ============================================================
   Hero Section
   ============================================================ */
.hero {
    position: relative;
    /*height: 100vh;*/
    overflow: hidden;
    /*aspect-ratio: 16 / 9;*/
    aspect-ratio: 16 / 8;
    margin-top: 2%;
}
.hero__bg {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  opacity: 0;
}

.hero__bg-image {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.hero__content {
    z-index: 2;
    display: flex;
    flex-direction: column;
    justify-content: center;
    height: 100%;
    text-align: center;
    color: var(--color-white);
    width: 70%;
    margin: 0 auto;
}
.hero__copy {
    width: 70%;
    opacity: 0;
}
.hero__copy img {
    width: 100%;
}
.hero__title {
    width: 100%;
    margin-top: -100px;
    opacity: 0;
}
.hero__title img {
    width: 100%;
}
.hero__bg-image img {
    /* height: 100%; */
    /* width: 100%; */
    object-fit: cover;
    aspect-ratio: 16 / 8;
}

/* ============================================================
   Section Title (Common)
   ============================================================ */
.section-title {
  margin-bottom: 40px;
}

.section-title--center {
  text-align: center;
}
.section-title__en {
    display: block;
    font-family: var(--font-en);
    font-size: clamp(36px, 8vw, 132px);
    line-height: 1.2;
    color: var(--color-primary);
}
.sns .section-title__ja {
    margin-top: 24px;
}

.section-title--white .section-title__en {
  color: var(--color-white);
}

.section-title__ja {
    display: block;
    font-size: 20px;
    font-weight: 500;
    color: var(--color-gray-dark);
    line-height: 1;
}

.section-title--white .section-title__ja {
  color: rgba(255, 255, 255, 0.8);
}

.section-title__sub {
  display: block;
  font-size: 12px;
  color: var(--color-gray-dark);
  margin-top: 4px;
}

/* ============================================================
   Common Button
   ============================================================ */
a.c-button {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 9px 40px;
    background: var(--color-primary);
    color: var(--color-white);
    border: 1px solid var(--color-primary);
    border-radius: 50px;
    font-size: 16px;
    font-weight: 500;
    transition: background var(--transition-default), color var(--transition-default);
    text-align: center;
}
a.c-button:hover {
  background: var(--color-white);
  color: var(--color-primary);
}
a.c-button02 {
    display: inline-flex;
    align-items: center;
    padding: 2px 40px;
    background: var(--color-primary);
    color: var(--color-white);
    border: 1px solid var(--color-primary);
    border-radius: 50px;
    font-size: 16px;
    font-weight: 500;
    transition: background var(--transition-default), color var(--transition-default);
    text-align: center;
    margin: 0 4px;
}
a.c-button02:hover {
  background: var(--color-white);
  color: var(--color-primary);
}
.c-button__arrow {
  transition: transform var(--transition-default);
}

.c-button:hover .c-button__arrow {
  transform: translateX(6px);
}

.c-button--small {
    padding: 8px 70px;
    font-size: 14px;
}

/* ============================================================
   main content
   ============================================================ */
main.main {
    position: relative;
}

/* ============================================================
   Slider Navigation (Common)
   ============================================================ */
.slider-nav {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 16px;
  margin-top: 30px;
}

.slider-nav__prev,
.slider-nav__next {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  border: 1px solid #ddd;
  border-radius: 50%;
  background: var(--color-white);
  transition: background var(--transition-default), border-color var(--transition-default);
}

.slider-nav__prev:hover, .slider-nav__next:hover {
    background: #fff;
    border-color: #333;
}
.slider-nav__prev:hover .slider-nav__arrow, .slider-nav__next:hover .slider-nav__arrow {
    border-color: #333;
}
.slider-nav__arrow {
  display: block;
  width: 10px;
  height: 10px;
  border-top: 2px solid var(--color-primary);
  border-right: 2px solid var(--color-primary);
  transition: border-color var(--transition-default);
}

.slider-nav__arrow--prev {
  transform: rotate(-135deg);
  margin-left: 3px;
}

.slider-nav__arrow--next {
  transform: rotate(45deg);
  margin-right: 3px;
}

.slider-nav__dots {
  display: flex;
  align-items: center;
  gap: 6px;
}

.slider-nav__dot {
  display: block;
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: var(--color-gray);
  transition: background var(--transition-default), width var(--transition-default), border-radius var(--transition-default);
}

.slider-nav__dot.is-active {
  width: 24px;
  border-radius: 4px;
  background: var(--color-primary);
}

/* ============================================================
   Topics Section
   ============================================================ */
.topics {
    padding: 90px 0;
    margin-left: var(--side-bg-width-pc);
}
.topics__inner {
    max-width: 100%;
    margin: 0 auto;
    padding: 0 90px;
}
.topics__slider {
  overflow: hidden;
}

.topics__slider.is-dragging {
  cursor: grabbing;
}

.topics__list {
  display: flex;
  gap: 20px;
  transition: transform .45s ease;
  will-change: transform;
}

.topics__slider.is-dragging .topics__list {
  transition: none;
}

.topics__card {
  flex: 0 0 calc((100% - 40px) / 3.35);
}
.topics__card-link {
    display: block;
    overflow: hidden;
    transition: var(--transition-default);
    border-radius: 30px 0 30px 0;
    margin-bottom: 8px;
}
.topics__card-link:hover {
    box-shadow: 4px 4px 20px -10px rgba(0, 0, 0, 0.12);
}

.topics__card-image {
    aspect-ratio: 16 / 10;
    overflow: hidden;
}
.topics__card-image img {
    height: 100%;
    width: 100%;
    object-fit: cover;
}
.topics__card-placeholder {
  transition: transform 0.4s ease;
}

.topics__card-link:hover .topics__card-placeholder {
  transform: scale(1.05);
}

.topics__card-body {
  padding: 14px 16px;
}

.topics__card-date {
    display: block;
    font-size: 22px;
    margin-bottom: 6px;
    font-family: var(--font-en);
}

.topics__card-title {
    font-size: 16px;
    font-weight: bold;
    line-height: 1.6;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
    height: 50px;
}

/* ============================================================
   News Section
   ============================================================ */
.news {
    position: relative;
    padding: 90px 0;
    margin-left: var(--side-bg-width-pc);
}
.news__bg {
    position: absolute;
    top: 0;
    left: 0;
    bottom: 0;
    z-index: -1;
    width: 100%;
    height: 100%;
    object-fit: cover;
}
.news__bg img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}
.news__inner {
  max-width: var(--container-max);
  margin: 0 auto;
  padding: 0 30px;
}
.news .section-title__en {
    color: #fff;
}
.news .section-title__ja {
    color: #fff;
}

.news__tabs {
    display: flex;
    gap: 12px;
    margin-bottom: 30px;
    flex-wrap: wrap;
    justify-content: center;
}

.news__tab {
  padding: 8px 20px;
  font-size: 13px;
  font-weight: 500;
  border: 1px solid #ddd;
  border-radius: 30px;
  background: var(--color-white);
  transition: background var(--transition-default), color var(--transition-default), border-color var(--transition-default);
}

.news__tab.is-active {
  background: var(--color-primary);
  color: var(--color-white);
  border-color: var(--color-primary);
}

.news__tab:hover:not(.is-active) {
  border-color: var(--color-primary);
}

.news__grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 24px;
}
.news__card-link {
    display: block;
    overflow: hidden;
    border-radius: 30px 0;
    background: var(--color-white);
    box-shadow: 0 2px 12px rgba(0, 0, 0, 0.06);
    transition: box-shadow var(--transition-default);
}

.news__card-link:hover {
    box-shadow: 4px 4px 20px -10px rgb(0 0 0 / 65%);
}

.news__card-image {
  aspect-ratio: 16 / 10;
  overflow: hidden;
}
.news__card-image img {
    width: 100%;
}
.news__card-placeholder {
  transition: transform 0.4s ease;
}

.news__card-link:hover .news__card-placeholder {
  transform: scale(1.05);
}

.news__card-body {
  padding: 14px 16px;
}

.news__card-date {
    display: block;
    font-size: 16px;
    font-family: var(--font-en);
    line-height: 1;
}
.news__card-category {
    font-size: 12px;
    font-weight: bold;
    padding: 4px 16px;
    background-color: #f471da;
    color: #fff;
    border-radius: 30px;
    line-height: 1;
    margin-right: 4px;
}
.for-exam{
    background-color: #f471da;    
}
.for-undergraduate{
    background-color: #faa30d;    
}
.for-graduate{
    background-color: #1a4ec6;    
}
.cat_area:has(span) {
    margin-bottom: 13px;
}
.news__card-cat {
    display: flex;
    /* justify-content: left; */
    /* align-items: center; */
    margin-bottom: 8px;
    /* gap: 0px; */
    flex-flow: column;
}
.news__card-title {
    font-size: 16px;
    font-weight: 500;
    line-height: 1.4;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
    height: 50px;
    font-feature-settings: "palt";
}
.news__card-link-btn {
    margin-top: 50px;
    text-align: center;
}
/* ============================================================
   Features Section
   ============================================================ */
.features {
  padding: 80px 0;
  margin-left: var(--side-bg-width-pc);
}
.features .section-title__sub {
    color: var(--color-gray-dark);
    margin-top: 0;
    display: inline-block;
    vertical-align: middle;
    margin-left: 20px;
    font-size: clamp(12px, 8vw, 19px);
}
.features h2.section-title {
    max-width: 1000px;
    margin: 0 auto;
    position: relative;
}
.ttl-en01 {
    text-align: left;
    display: inline-block;
    vertical-align: middle;
}
.ttl-en02 {
    text-align: right;
    display: block;
}
.section-title__sub-area .section-title__ja {
    font-weight: 600;
    font-style: italic;
    text-align: center;
    font-size: clamp(24px, 6vw, 45px);
}
.features__inner {
    max-width: 100%;
    margin: 0 auto;
    padding: 0 90px;
}

.features__grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 50px;
}

.features__card-link {
    display: block;
    overflow: hidden;
    border-radius: 30px 0;
    background: var(--color-white);
    box-shadow: 0 4px 16px rgba(0, 0, 0, 0.08);
    transition: box-shadow var(--transition-default);
    position: relative;
}

.features__card-link:hover {
  box-shadow: 0 6px 24px rgba(0, 0, 0, 0.14);
}
.features__card-overlay {
    position: absolute;
    left: 20px;
    top: 20px;
}
.features__card-number {
    display: block;
    color: #fff;
    font-size: clamp(32px, 6vw, 72px);
    font-family: var(--font-en);
    line-height: 1;
}
.features__card-label {
    font-size: clamp(32px, 6vw, 74px);
    font-weight: bold;
    color: #fff;
    line-height: 1;
}
.features__card-image {
    aspect-ratio: 1 / 1.2;
    overflow: hidden;
}

.features__card-placeholder {
  transition: transform 0.4s ease;
}

.features__card-link:hover .features__card-placeholder {
  transform: scale(1.05);
}

.features .section-title__sub-area {
    margin-block: 50px;
}

.features__card-body {
    padding: 12px 20px 20px;
    position: absolute;
    bottom: 0;
    left: 0;
}
.features__card-image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}
.features__card-text {
    font-size: 24px;
    line-height: 1.2;
    color: #fff;
    font-weight: bold;
    margin-bottom: 32px;
}

.features__card-link-text {
    font-size: 16px;
    font-weight: 500;
    color: #fff;
    text-decoration: underline;
}

/* ============================================================
   Interview Section
   ============================================================ */
section#js-interview {
    display: none;
}
.interview {
    padding: 90px 0;
    margin-left: var(--side-bg-width-pc);
    overflow: hidden;
    border-top: 1px solid #ccc;
}

.interview__inner {
  max-width: 100%;
  margin: 0 auto;
  padding: 0 90px;
}

.interview__slider {
  overflow: hidden;
}

.interview__list {
  display: flex;
  gap: 20px;
  transition: transform .45s ease;
  will-change: transform;
}

.interview__slider.is-dragging .interview__list {
  transition: none;
}

.interview__card {
  flex: 0 0 calc((100% - 40px) / 3.35);
}

.interview__card-link {
    display: block;
    overflow: hidden;
    transition: var(--transition-default);
    border-radius: 30px 0 30px 0;
    margin-bottom: 8px;
}

.interview__card-link:hover {
  box-shadow: 4px 4px 20px -10px rgba(0, 0, 0, 0.24);
}

.interview__card-image {
    aspect-ratio: 16 / 10;
    overflow: hidden;
}

.interview__card-image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.interview__card-placeholder {
  width: 100%;
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  background: #ccc;
  color: #666;
  font-size: 12px;
  transition: transform 0.4s ease;
}

.interview__card-link:hover .interview__card-placeholder,
.interview__card-link:hover .interview__card-image img {
  transform: scale(1.03);
}

.interview__card-body {
  padding: 18px 18px 20px;
}

.interview__card-text {
    font-size: 20px;
    line-height: 1.4;
    font-weight: 500;
    margin-bottom: 14px;
    display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.interview__card-dept {
    font-size: 18px;
    line-height: 1;
    font-weight: 500;
}

.interview__card-name {
  font-size: 16px;
  font-weight: 700;
  margin-top: 4px;
  line-height: 1.5;
}

.interview__nav .slider-nav__prev:disabled,
.interview__nav .slider-nav__next:disabled {
  opacity: .35;
  cursor: default;
  pointer-events: none;
}

/* ============================================================
   Academics Section
   ============================================================ */
.academics {
    padding: 90px 0;
    margin-left: var(--side-bg-width-pc);
    border-top: 1px solid #ccc;
}

.academics__inner {
  max-width: var(--container-max);
  margin: 0 auto;
}

.academics__list {
  display: flex;
  flex-direction: column;
  gap: 24px;
}
.academics__card-link {
    display: flex;
    align-items: stretch;
    overflow: hidden;
    border-radius: 30px 0;
    border: 1px solid #eee;
    padding: 50px 100px;
    transition: .6s;
}
.academics__card-link.card-link_01 {
    background: linear-gradient(90deg, rgba(186, 207, 235, 1) 0%, rgba(186, 207, 235, 1) 25%, rgba(233, 199, 219, 1) 100%);
}
.academics__card-link.card-link_02 {
    background: linear-gradient(90deg,rgba(233, 199, 219, 1) 0%, rgba(233, 199, 219, 1) 25%, rgba(186, 207, 235, 1) 100%);
}
.academics__card-link.card-link_03 {
    background: linear-gradient(90deg,rgba(246, 219, 146, 1) 0%, rgba(246, 219, 146, 1) 25%, rgba(213, 241, 229, 1) 100%);
}
.academics__card-link.card-link_04 {
    background: linear-gradient(90deg,rgba(213, 241, 229, 1) 0%, rgba(213, 241, 229, 1) 25%, rgba(246, 219, 146, 1) 100%);
}
.academics__card-link:hover {
    /*background: linear-gradient(90deg, rgba(42, 92, 138, 1) 0%, rgba(42, 92, 138, 1) 25%, rgba(42, 92, 138, 1) 100%);*/
}
.academics__card-link:hover {
    opacity: 0.8;
}
.academics__card-link:hover .academics__card-name,
.academics__card-link:hover .academics__card-dept,
.academics__card-link:hover .academics__card-courses {
  color: #333;
}
.academics__card-link:hover .c-button__text{
  color: var(--color-primary);  
}
.academics__card-link:hover .c-button {
  background: var(--color-white);
  color: var(--color-primary);
  border-color: var(--color-white);
}

.academics__card-link:hover .academics__card-divider {
  background: #333;
}

.academics__card-content {
    flex: 1.3;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    padding: 30px;
}

.academics__card-info {
    margin-bottom: 20px;
    text-align: center;
}
.academics__card-name {
    font-weight: bold;
    margin-bottom: 16px;
    transition: color var(--transition-default);
    line-height: 1;
    font-size: clamp(24px, 8vw, 40px);
}
.academics__card-dept {
    transition: color var(--transition-default);
    line-height: 1;
    font-weight: 500;
    font-size: clamp(18px, 8vw, 24px);
}
.academics__card-divider {
    display: block;
    width: 40px;
    height: 2px;
    background: var(--color-primary);
    margin: 16px auto;
    transition: background var(--transition-default);
}
.academics__card-action {
    display: flex;
    justify-content: center;
}
.academics__card-courses {
    font-size: 16px;
    line-height: 1.8;
    transition: color var(--transition-default);
    font-weight: 500;
}

.academics__card-image {
    flex: 2;
    overflow: hidden;
    border-radius: 30px 0;
    aspect-ratio: 16 / 9;
}
.academics__card-image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}
.academics__card-placeholder {
  transition: transform 0.4s ease;
}

.academics__card-link:hover .academics__card-placeholder {
  transform: scale(1.05);
}

/* ============================================================
   Data About Section
   ============================================================ */
.about {
    position: relative;
    padding: 90px 0;
    margin-left: var(--side-bg-width-pc);
    overflow: hidden;
}
.about__bg {
    position: absolute;
    top: 0;
    left: 0;
    z-index: -1;
    width: 100%;
    height: 100%;
}
.about__bg img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}
.about__inner {
    padding: 0 90px;
}
.about__description {
    text-align: center;
    font-size: 30px;
    color: rgba(255, 255, 255, 0.9);
    margin-bottom: 40px;
    font-weight: bold;
}

.about__grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 60px;
}

.about__card {
    background: var(--color-white);
    border-radius: 30px 0;
    padding: 30px 20px;
    text-align: center;
    position: relative;
    overflow: hidden;
}
.about__card-backimg {
    position: absolute;
    z-index: -1;
    top: 0;
    left: 0;
}
.about__card-backimg img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}
.about__card-label {
    font-weight: bold;
    line-height: 1.2;
    font-size: clamp(22px, 6vw, 32px);
}

.about__card-value {
    display: flex;
    align-items: baseline;
    justify-content: center;
}
.about__card-prefix {
    font-weight: bold;
    margin-left: 4px;
    font-size: clamp(16px, 6vw, 48px);
    line-height: 1;
}
.about__card-number {
    font-family: var(--font-en);
    font-weight: 400;
    color: #4282cb;
    line-height: 1;
    font-size: clamp(42px, 8vw, 90px);
}
.about__card-unit {
    font-weight: bold;
    margin-left: 4px;
    font-size: clamp(16px, 8vw, 48px);
    line-height: 1;
}
.about__card-note, .about__card-sub-note {
    font-size: 16px;
    font-weight: bold;
}

.about__card-sub-label {
    font-size: 16px;
    font-weight: bold;
    text-align: left;
    line-height: 1.2;
    margin: 8px 0;
}

.about__card-values {
    margin-top: 8px;
    display: flex;
    justify-content: left;
    gap: 20px;
}
.about__card.card01 {
    display: flex;
    align-items: center;
}
.about__card_box01 p.about__card-label {
    margin-bottom: 16px;
    text-align: left;
    padding-left: 4px;
}
.card02 p.about__card-label {
    text-align: left;
}
.about__card.card03 {
    display: flex;
    flex-flow: column;
    justify-content: center;
    gap: 32px;
}
.about__card.card04 {
    display: flex;
    align-items: center;
}
.about__card.card04 .about__card_box01 .about__card-sub-note {
    text-align: left;
    padding-left: 6px;
}
.about__card.card04 p.about__card-value {
    justify-content: left;
}
.about__card.card05{
    display: flex;
    align-items: center;
}
.about__card.card05 p.about__card-label {
    text-align: center;
}
.about__card.card05 .about__card_box01 {
    flex: 100%;
    max-width: 100%;
}
.about__card.card06 {
    display: flex;
    flex-flow: column;
    justify-content: center;
    gap: 32px;
}
.about__card.card06 p.about__card-sub-note {
    margin-top: -40px;
}

/* ============================================================
   Official SNS Section
   ============================================================ */
.sns {
  padding: 80px 0;
  margin-left: var(--side-bg-width-pc);
}

.sns__inner {
  max-width: var(--container-max);
  margin: 0 auto;
  padding: 0 30px;
  text-align: center;
}

.sns__account {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 16px;
    margin-bottom: 20px;
    flex-direction: column;
}
.sns__account-name {
    font-size: 24px;
    font-weight: 500;
}
.sns__account img {
    width: 70px;
}
.sns__follow-button {
    display: inline-flex;
    align-items: center;
    gap: 40px;
    padding: 10px 20px;
    border: 1px solid #ddd;
    border-radius: 100px;
    margin-bottom: 70px;
    transition: .6s;
    color: #fff;
    background-color: #333;
}

.sns__follow-button:hover {
    border-color: var(--color-primary);
    color: #333;
    background-color: #fff;
}

.sns__follow-text {
    font-size: 24px;
    font-weight: 500;
}

.sns__description {
    font-size: 30px;
    margin-bottom: 24px;
    font-weight: bold;
}

.sns__feed {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 40px;
}

.sns__feed-item {
    border-radius: 8px;
    overflow: hidden;
    position: relative;
}
.sns__feed-item iframe {
    width: 100% !important;
}
/* ============================================================
   Campus Life Section
   ============================================================ */
.campus-life {
  padding: 60px 0;
  margin-left: var(--side-bg-width-pc);
}

.campus-life__inner {
  max-width: var(--container-max);
  margin: 0 auto;
  padding: 0 30px;
}

.campus-life__grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 50px;
}

.campus-life__card-link {
    display: block;
    text-align: center;
    padding: 50px;
    border-radius: 30px 0;
    background-color: #e9eff6;
    border: 1px solid #eee;
    transition: box-shadow var(--transition-default);
}

.campus-life__card-link:hover {
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.1);
}

.campus-life__card-image {
    aspect-ratio: 1 / 1;
    overflow: hidden;
    border-radius: 160px;
}

.campus-life__card-image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}
.campus-life__card-placeholder {
  transition: transform 0.4s ease;
}

.campus-life__card-link:hover .campus-life__card-placeholder {
  transform: scale(1.05);
}

.campus-life__card-title {
    font-weight: 700;
    margin-top: 50px;
    margin-bottom: 20px;
    line-height: 1;
    font-size: clamp(20px, 8vw, 30px);
}

.campus-life__card-text {
    font-size: 16px;
    line-height: 1.4;
    margin-bottom: 30px;
    font-weight: bold;
}

/* ==============================
   Loop Slide SP調整
============================== */
.loop-slide {
  overflow: hidden;
  width: 100%;
}

.loop-slide__track {
  display: flex;
  width: max-content;
  will-change: transform;
  animation: loopSlide var(--loop-duration, 60s) linear infinite;
}

.loop-slide__text {
  flex-shrink: 0;
  white-space: nowrap;
  padding-right: 80px;
}

@media (max-width: 767px) {
  .loop-slide__track {
    --loop-duration: 55s;
  }

  .loop-slide__text {
    font-size: clamp(42px, 14vw, 72px);
    padding-right: 48px;
  }
}

@keyframes loopSlide {
  from {
    transform: translate3d(0, 0, 0);
  }

  to {
    transform: translate3d(calc(var(--loop-distance, 0px) * -1), 0, 0);
  }
}
.loop-slide__text {
    font-family: var(--font-en);
    font-size: clamp(70px, 13vw, 200px);
    padding: 0 40px;
    flex-shrink: 0;
    background: linear-gradient(90deg, rgba(221, 156, 194, 1) 0%, rgba(241, 186, 218, 1) 35%, rgba(166, 193, 229, 1) 56%, rgba(127, 160, 203, 1) 100%);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    line-height: 1.3;
}

/* ============================================================
   Footer Banner Section
   ============================================================ */
.footer-banner {
    padding: 0 0 90px;
    margin-left: var(--side-bg-width-pc);
}

.footer-banner__inner {
    padding: 0 90px;
}
.footer-banner__inner_bg {
    display: flex;
    background: linear-gradient(90deg, rgba(221, 156, 194, 1) 0%, rgba(241, 186, 218, 1) 35%, rgba(166, 193, 229, 1) 56%, rgba(127, 160, 203, 1) 100%);
    align-items: center;
    justify-content: space-between;
}
.footer-banner__item {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 80px;
    transition: background var(--transition-default);
    flex: 1;
}

.footer-banner__en {
    font-family: var(--font-en);
    font-size: 60px;
    color: #ffffff;
    line-height: 1;
    margin-bottom: 16px;
}
.footer-banner__title {
    font-size: 32px;
    font-weight: bold;
    line-height: 1;
    margin-bottom: 24px;
    color: #fff;
}

.footer-banner__text {
    color: #fff;
}

.footer-banner__link {
  flex-shrink: 0;
  margin-left: 20px;
}

.footer-banner__circle-arrow {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 50px;
  height: 50px;
  border-radius: 50%;
  background: #fff;
  transition: transform var(--transition-default);
}

.footer-banner__link:hover .footer-banner__circle-arrow {
    transform: translateX(6px);
    background: #333;
}

.footer-banner__arrow-icon {
    display: block;
    width: 10px;
    height: 10px;
    border-top: 2px solid #333;
    border-right: 2px solid #333;
    transform: rotate(45deg);
    margin-right: 3px;
    transition: var(--transition-default);
}
.footer-banner__link:hover .footer-banner__arrow-icon {
    border-top: 2px solid #fff;
    border-right: 2px solid #fff;
}
/* ============================================================
   Footer
   ============================================================ */
.footer {
  color: var(--color-white);
  padding: 60px 0 30px;
  margin-left: var(--side-bg-width-pc);
}

.footer__inner {
    padding: 0 90px;
}
.footer__logo img {
    width: 230px;
}

.footer__top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 40px;
}

.footer__sns {
    display: flex;
    gap: 16px;
    align-items: center;
}
.footer__sns a{
    transition: .6s;
}
.footer__sns a:hover{
    opacity: 0.6;
}
.footer__menus {
  display: flex;
  gap: 60px;
  margin-bottom: 40px;
}

.footer__menu-primary {
  display: flex;
  gap: 40px;
  flex: 1;
}

.footer__menu-list li {
  margin-bottom: 10px;
}

.footer__menu-list li a {
    color: #333;
    transition: color var(--transition-default);
}

.footer__menu-list li a:hover {
    color: #ccc;
}

.footer__menu-secondary .footer__menu-list {
  display: flex;
  flex-wrap: wrap;
  gap: 8px 16px;
}

.footer__menu-secondary .footer__menu-list li a {
  font-size: 12px;
  padding: 4px 12px;
  border: 1px solid rgba(255, 255, 255, 0.3);
  border-radius: 3px;
}

.footer__portal {
  text-align: center;
  margin-bottom: 40px;
  padding: 20px;
  border: 1px solid rgba(255, 255, 255, 0.2);
  border-radius: 8px;
}

.footer__portal-note {
    font-size: 16px;
    color: #333;
    margin-bottom: 10px;
    font-weight: 600;
}

.footer__portal-button {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 10px 30px;
    background-color: #333;
    color: #fff;
    border-radius: 50px;
    font-size: 16px;
    font-weight: 500;
    transition: 0.4s;
    border: 1px solid #333;
}

.footer__portal-button:hover {
  opacity: 0.85;
    background-color: #fff;
    color: #333;
}

.footer__bottom {
  border-top: 1px solid rgba(255, 255, 255, 0.15);
  padding-top: 20px;
}

.footer__policy {
  display: flex;
  flex-wrap: wrap;
  gap: 8px 20px;
  margin-bottom: 16px;
}

.footer__policy li a {
    font-size: 14px;
    color: #333;
    transition: color var(--transition-default);
    font-weight: 500;
}

.footer__policy li a:hover {
  color: #ccc;
}

.footer__copyright {
    font-size: 12px;
    color: #333;
    font-weight: 500;
}
/* ============================================================
   Scroll Animation States
   ============================================================ */
.js-fade-in {
  opacity: 0;
  transform: translateY(30px);
  transition: opacity 0.7s ease, transform 0.7s ease;
}

.js-fade-in.is-visible {
  opacity: 1;
  transform: translateY(0);
}

.js-fade-in-left {
  opacity: 0;
  transform: translateX(-40px);
  transition: opacity 0.7s ease, transform 0.7s ease;
}

.js-fade-in-left.is-visible {
  opacity: 1;
  transform: translateX(0);
}

.js-fade-in-right {
  opacity: 0;
  transform: translateX(40px);
  transition: opacity 0.7s ease, transform 0.7s ease;
}

.js-fade-in-right.is-visible {
  opacity: 1;
  transform: translateX(0);
}

/* Title character animation */
.section-title__en .char {
  display: inline-block;
  opacity: 0;
  transform: translateY(20px);
  transition: opacity 0.4s ease, transform 0.4s ease;
}

.section-title__en.is-visible .char {
    opacity: 1;
    transform: translateY(0);
    font-weight: 500;
}

/* ============================================================
   ページネーション
   ============================================================ */
.wp-pagenavi {
    margin: 40px 0;
}
/* ============================================================
   Responsive: Narrow PC (1300px - 1709px)
   ============================================================ */
@media (max-width: 1920px) {
  .topics__card {
    flex: 0 0 calc(33.333% - 14px);
  }
}

/* ============================================================
   Responsive: Tablet (768px - 1299px)
   ============================================================ */
@media (max-width: 1299px) {
  :root {
    --side-bg-width-pc: 30px;
  }

  /* ---- Header ---- */
  .header {
    padding: 0 20px;
  }

  .header__inner {
    padding: 0 0 0 30px;
  }

  .header__menu {
    gap: 16px;
    margin-right: 20px;
  }

  .header__menu-item a {
    font-size: 13px;
  }

  .header__actions {
    height: 70px;
  }

  .header__action-item {
    width: 90px;
    font-size: 10px;
  }

  /* ---- Notice Bar ---- */
  .notice-bar {
    width: 420px;
    padding: 8px 16px;
  }

  .notice-bar__label {
    font-size: 16px;
  }

  .notice-bar__date {
    font-size: 14px;
  }

  .notice-bar__text {
    font-size: 14px;
  }

  /* ---- Hero ---- */
  .hero__content {
    width: 80%;
  }

  .hero__title {
    margin-top: -60px;
  }

  /* ---- Topics ---- */
  .topics__inner {
    padding: 0 40px;
  }

  .topics__card {
    flex: 0 0 calc((100% - 20px) / 2.35);
  }

  /* ---- News ---- */
  .news__inner {
    padding: 0 40px;
  }

  .news__grid {
    grid-template-columns: repeat(2, 1fr);
    gap: 20px;
  }

  /* ---- Features ---- */
  .features__inner {
    padding: 0 20px;
  }

  .features__grid {
    grid-template-columns: repeat(3, 1fr);
    gap: 24px;
  }

  .features__card-text {
    font-size: 18px;
    margin-bottom: 20px;
  }

  .features__card-link-text {
    font-size: 14px;
  }

  .section-title__sub-area .section-title__ja {
    font-size: 36px;
  }

  /* ---- Interview ---- */
  .interview__inner {
    padding: 0 20px;
  }

  .interview__card {
    flex: 0 0 calc((100% - 20px) / 2.35);
  }

  .interview__card-text {
    font-size: 16px;
  }

  .interview__card-dept {
    font-size: 15px;
  }

  /* ---- Academics ---- */
.academics__inner {
    padding: 0 20px;
}
  .academics__card-link {
    padding: 30px 40px;
  }

  .academics__card-name {
    font-size: clamp(28px, 4vw, 42px);
  }

  .academics__card-dept {
    font-size: clamp(16px, 3vw, 24px);
  }

  .academics__card-content {
    padding: 20px;
  }

  .c-button {
    padding: 10px 40px;
    font-size: 14px;
  }

  /* ---- About ---- */
  .about__inner {
    padding: 0 40px;
  }

  .about__grid {
    grid-template-columns: repeat(2, 1fr);
    gap: 24px;
  }

  .about__description {
    font-size: 24px;
  }

  .about__card-number {
    font-size: clamp(36px, 6vw, 70px);
  }

  .about__card-unit {
    font-size: clamp(14px, 4vw, 36px);
  }

  .about__card-prefix {
    font-size: clamp(14px, 4vw, 36px);
  }

  .about__card.card06 p.about__card-sub-note {
    margin-top: -20px;
  }

  /* ---- SNS ---- */
  .sns__feed {
    gap: 20px;
  }

  .sns__description {
    font-size: 22px;
  }

  .sns__follow-button {
    margin-bottom: 40px;
    gap: 20px;
  }

  .sns__follow-text {
    font-size: 18px;
  }

  /* ---- Campus Life ---- */
  .campus-life__grid {
    grid-template-columns: repeat(3, 1fr);
    gap: 24px;
  }

  .campus-life__card-link {
    padding: 30px 20px;
  }

  .campus-life__card-title {
    margin-top: 30px;
    margin-bottom: 16px;
    font-size: clamp(18px, 3vw, 24px);
  }

  .campus-life__card-text {
    font-size: 14px;
    margin-bottom: 20px;
  }

  /* ---- Loop Slide ---- */
  .loop-slide__text {
    padding: 0 20px;
  }

  /* ---- Footer Banner ---- */
  .footer-banner__inner {
    padding: 0 40px;
  }

  .footer-banner__inner_bg {
    flex-direction: column;
  }

  .footer-banner__item {
    padding: 30px 40px;
    width: 100%;
  }

  .footer-banner__en {
    font-size: 42px;
  }

  .footer-banner__title {
    font-size: 24px;
    margin-bottom: 16px;
  }

  .footer-banner__text {
    font-size: 14px;
  }

  /* ---- Footer ---- */
  .footer__inner {
    padding: 0 40px;
  }

  .footer__menus {
    flex-direction: column;
    gap: 0;
  }

  .footer__menu-primary {
    flex-wrap: wrap;
    gap: 20px 40px;
  }

  .footer__top {
    flex-direction: column;
    align-items: flex-start;
    gap: 20px;
  }

  /* ---- Floating Banner ---- */
    .floating-banner {
        /* right: 10px; */
    }

  .floating-banner__item img {
    max-width: 60px;
  }
}

/* ============================================================
   Responsive: Small Tablet (768px - 1023px)
   ============================================================ */
@media (max-width: 1023px) {
  /* ---- Header: Switch to hamburger ---- */
  .header__menu {
    display: none;
  }

  .header__actions {
    display: none;
  }

  .header__hamburger {
    display: flex;
  position: relative;
  z-index: 300;
  }

  .header__inner {
    padding: 10px 20px;
  }

  /* ---- Features: 2 columns ---- */
.features__grid {
        /* grid-template-columns: repeat(2, 1fr); */
        gap: 20px;
    }

.features__grid .features__card:last-child {
        /* grid-column: 1 / -1; */
        /* max-width: 50%; */
        /* margin: 0 auto; */
    }

  /* ---- Campus Life: 2 columns ---- */
    .campus-life__grid {
        /* grid-template-columns: repeat(2, 1fr); */
        gap: 20px;
    }

.campus-life__grid .campus-life__card:last-child {
        /* grid-column: 1 / -1; */
        /* max-width: 50%; */
        /* margin: 0 auto; */
    }
  /* ---- Academics: reduce padding ---- */
  .academics__card-link {
    padding: 24px 20px;
  }

  .academics__card-image {
    flex: 1.5;
  }

  .academics__card-content {
    padding: 16px;
  }
.hero {
    margin-top: 12%;
}
}




























/* ============================================================
   Responsive: SP (767px and below)
   ============================================================ */
@media (max-width: 767px) {
  :root {
    --side-bg-width-pc: 0;
  }


.sp{
    display: block !important;
}
.pc{
    display: none !important;
}
.sp_banner{
    display: flex !important;
}
  /* ---- Left side background ---- */
  .l-side-background {
    width: var(--side-bg-width-pc);
  }

  /* ---- Notice bar ---- */
.notice-bar {
        left: 0;
        width: calc(100% - var(--side-bg-width-pc) - 20px);
        max-width: 360px;
        padding: 8px 12px;
        bottom: unset;
        top: 50%;
    }

  .notice-bar__label {
    font-size: 14px;
  }

  .notice-bar__date {
    font-size: 12px;
  }

  .notice-bar__text {
    font-size: 12px;
  }

  /* ---- Header SP ---- */
  .header {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    padding: 0;
    background: rgba(255, 255, 255, 0.97);
    box-shadow: 0 2px 10px rgba(0, 0, 0, 0.08);
  }

  .header__nav {
    border-radius: 0;
  }

  .header__inner {
    padding: 0 16px;
  }

  .header__menu {
    display: none;
  }

  .header__actions {
    display: none;
  }

  .header__hamburger {
    display: flex;
  }

  .header__logo img {
    max-width: 140px;
  }

  /* ---- Hero SP ---- */
    .hero {
        height: 60vh;
        width: 100%;
        margin-top: 0;
    }
  .hero.sp .hero__bg {   /* ← 追加 */
    opacity: 1;
  }
  .hero__content {
    width: 90%;
  }

  .hero__copy {
    width: 80%;
  }

  .hero__title {
    margin-top: -40px;
  }
.hero__bg-image img {
        height: 60vh;
        width: 100%;
        object-fit: contain;
        aspect-ratio: unset;
    }


  /* ---- Main sections: margin-left ---- */
  .topics,
  .news,
  .features,
  .interview,
  .academics,
  .about,
  .sns,
  .campus-life,
  .loop-slide,
  .footer-banner,
  .footer {
    margin-left: var(--side-bg-width-pc);
  }

  /* ---- Common inner padding ---- */
  .topics__inner,
  .news__inner,
  .features__inner,
  .interview__inner,
  .academics__inner,
  .about__inner,
  .sns__inner,
  .campus-life__inner,
  .footer-banner__inner,
  .footer__inner {
    padding: 0 16px;
  }

  /* ---- Section Title SP ---- */
  .section-title {
    margin-bottom: 24px;
  }

  .section-title__en {
    font-size: clamp(28px, 10vw, 48px);
    line-height: 1.4;
  }

  .section-title__ja {
    font-size: 16px;
  }

  /* ---- Topics SP ---- */
  .topics {
    padding: 60px 0 40px;
  }

  .topics__card {
    flex: 0 0 78%;
  }

  .topics__card-date {
    font-size: 16px;
  }

  .topics__card-title {
    font-size: 14px;
  }

  /* ---- News SP ---- */
  .news {
    padding: 60px 0;
  }

  .news__bg {
  }

  .news__grid {
    grid-template-columns: 1fr;
    gap: 16px;
  }

  .news__tabs {
    gap: 8px;
  }

  .news__tab {
    padding: 6px 14px;
    font-size: 12px;
  }

  .news__card-category {
    font-size: 11px;
    padding: 3px 10px;
  }

  .news__card-date {
    font-size: 13px;
  }
.news__card-link-btn {
    margin-top: 30px;
}
  /* ---- Features SP ---- */
  .features {
    padding: 60px 0;
  }

  .features__grid {
    grid-template-columns: 1fr;
    gap: 20px;
  }

  .features__grid .features__card:last-child {
    max-width: 100%;
    grid-column: auto;
  }

  .features__card-image {
    aspect-ratio: 16 / 12;
  }

  .features__card-text {
    font-size: 18px;
    margin-bottom: 16px;
  }

  .features__card-link-text {
    font-size: 14px;
  }

  .section-title__sub-area .section-title__ja {
    font-size: 24px;
        line-height: 1.4;
  }

  .features .section-title__sub {
    margin-left: 8px;
    font-size: clamp(10px, 3vw, 14px);
  }

  .features .section-title__sub-area {
    margin-block: 30px;
  }

  /* ---- Interview SP ---- */
  .interview {
    padding: 60px 0;
  }

  .interview__card {
    flex: 0 0 78%;
  }

  .interview__card-text {
    font-size: 15px;
    margin-bottom: 10px;
  }

  .interview__card-dept {
    font-size: 13px;
  }

  .interview__card-name {
    font-size: 14px;
  }

  .interview__card-body {
    padding: 14px 14px 16px;
  }

  /* ---- Academics SP ---- */
  .academics {
    padding: 60px 0;
  }

  .academics__card-link {
    flex-direction: column;
    padding: 20px;
  }

  .academics__card-content {
    padding: 16px 0;
  }

  .academics__card-image {
    flex: none;
    aspect-ratio: 16 / 9;
    border-radius: 16px 0;
  }

    .academics__card-name {
        font-size: clamp(24px, 4vw, 36px);
    }

  .academics__card-dept {
    font-size: clamp(14px, 4vw, 20px);
  }

  .c-button {
    padding: 10px 30px;
    font-size: 14px;
  }

  /* ---- About SP ---- */
  .about {
    padding: 60px 0;
  }

  .about__grid {
    grid-template-columns: 1fr;
    gap: 16px;
  }

  .about__description {
    font-size: 18px;
    margin-bottom: 24px;
  }

.about__card {
        padding: 50px;
        aspect-ratio: 16 / 9;
        justify-content: center;
        text-align: center;
    }
.about__card_box01 p.about__card-label {
    margin-bottom: 16px;
    text-align: center;
    padding-left: 0;
}
.card02 p.about__card-label {
    text-align: center;
}
.about__card.card02 {
    display: flex;
    flex-flow: column;
    justify-content: center;
    align-items: center;
}
.about__card.card04 p.about__card-value {
    justify-content: center;
}




.about__card-values {
    justify-content: center;
}
  .about__card-label {
    font-size: clamp(18px, 5vw, 28px);
  }

  .about__card-number {
    font-size: clamp(36px, 12vw, 60px);
  }

  .about__card-unit {
    font-size: clamp(14px, 5vw, 30px);
  }

  .about__card-prefix {
    font-size: clamp(14px, 5vw, 30px);
  }

  .about__card-note, .about__card-sub-note {
    font-size: 13px;
  }

  .about__card-sub-label {
    font-size: 13px;
  }

  .about__card-values {
    gap: 12px;
  }

  .about__card.card03 {
    gap: 16px;
  }

  .about__card.card06 {
    gap: 16px;
  }

  .about__card.card06 p.about__card-sub-note {
    margin-top: -10px;
  }

  /* ---- SNS SP ---- */
  .sns {
    padding: 60px 0;
  }

  .sns__account-name {
    font-size: 18px;
  }

  .sns__account img {
    width: 50px;
  }

  .sns__follow-button {
    gap: 16px;
    padding: 8px 16px;
    margin-bottom: 30px;
  }

  .sns__follow-text {
    font-size: 16px;
  }

  .sns__description {
    font-size: 16px;
    margin-bottom: 16px;
  }

  .sns .section-title__ja {
    margin-top: 12px;
  }

  .sns__feed {
    grid-template-columns: 1fr;
    gap: 16px;
  }

  .sns__feed-item {
  }

  /* ---- Campus Life SP ---- */
  .campus-life {
    padding: 40px 0;
  }

  .campus-life__grid {
    grid-template-columns: 1fr;
    gap: 20px;
  }

  .campus-life__grid .campus-life__card:last-child {
    max-width: 100%;
    grid-column: auto;
  }

  .campus-life__card-link {
    padding: 30px 20px;
  }

  .campus-life__card-image {
    max-width: 200px;
    margin: 0 auto;
  }

  .campus-life__card-title {
    margin-top: 20px;
    margin-bottom: 12px;
    font-size: clamp(18px, 5vw, 24px);
  }

  .campus-life__card-text {
    font-size: 14px;
    margin-bottom: 16px;
  }

  /* ---- Loop Slide SP ---- */
  .loop-slide {
    padding: 24px 0;
  }

  .loop-slide__text {
    font-size: clamp(40px, 12vw, 70px);
    padding: 0 16px;
  }

  /* ---- Footer Banner SP ---- */
  .footer-banner {
    padding: 0 0 40px;
  }

  .footer-banner__inner_bg {
    flex-direction: column;
  }

  .footer-banner__item {
    padding: 24px 20px;
  }

  .footer-banner__en {
    font-size: 32px;
    margin-bottom: 8px;
  }

  .footer-banner__title {
    font-size: 20px;
    margin-bottom: 12px;
  }

  .footer-banner__text {
    font-size: 13px;
  }

  .footer-banner__text br {
    display: none;
  }

  .footer-banner__circle-arrow {
    width: 40px;
    height: 40px;
  }

  /* ---- Footer SP ---- */
  .footer {
    padding: 40px 0 120px;
  }

    .footer__top {
        flex-direction: column;
        align-items: flex-start;
        gap: 16px;
        justify-content: center;
        text-align: center;
        align-items: center;
    }
  .footer__menus {
    flex-direction: column;
    gap: 0;
  }

  .footer__menu-primary {
    flex-direction: column;
    gap: 0;
  }

  .footer__menu-list {
    border-bottom: 1px solid #eee;
    padding: 8px 0;
  }

  .footer__menu-list li {
    margin-bottom: 4px;
  }

  .footer__menu-list li a {
    font-size: 14px;
    display: block;
    padding: 4px 0;
  }

  .footer__portal {
    padding: 16px;
    margin-bottom: 24px;
  }

  .footer__portal-note {
    font-size: 14px;
  }

  .footer__portal-button {
    font-size: 14px;
    padding: 8px 20px;
  }

  .footer__policy {
    flex-direction: column;
    gap: 6px;
  }

  .footer__policy li a {
    font-size: 12px;
  }

  .footer__copyright {
    font-size: 11px;
    margin-top: 16px;
  }

  .footer__bottom {
    padding-top: 16px;
  }

  /* ---- Floating Banner SP ---- */
    .floating-banner {
        top: unset;
        bottom: 10px;
        right: 20px;
        flex-direction: row;
        gap: 4px;
    }

  .floating-banner__item img {
    max-width: 100px;
  }

  /* ---- Slider Nav SP ---- */
  .slider-nav {
    margin-top: 20px;
    gap: 12px;
  }

  .slider-nav__prev,
  .slider-nav__next {
    width: 36px;
    height: 36px;
  }

  .slider-nav__dot {
    width: 6px;
    height: 6px;
  }

  .slider-nav__dot.is-active {
    width: 18px;
  }

.academics__card-courses {
    font-size: 14px;
}
.news__card-title {
    font-size: 14px;
}


}

/* ============================================================
   Touch device: disable hover effects
   ============================================================ */
@media (hover: none) {
  .img-hover-zoom:hover img {
    transform: none;
  }

  .topics__card-link:hover .topics__card-placeholder,
  .features__card-link:hover .features__card-placeholder,
  .interview__card-link:hover .interview__card-placeholder,
  .interview__card-link:hover .interview__card-image img,
  .academics__card-link:hover .academics__card-placeholder,
  .campus-life__card-link:hover .campus-life__card-placeholder,
  .news__card-link:hover .news__card-placeholder {
    transform: none;
  }

  .topics__card-link:hover {
    box-shadow: none;
  }

  .news__card-link:hover {
    box-shadow: 0 2px 12px rgba(0, 0, 0, 0.06);
  }

  .interview__card-link:hover {
    box-shadow: none;
  }

  .campus-life__card-link:hover {
    box-shadow: none;
  }

  .loop-slide__track:hover {
    animation-play-state: running;
  }
}





/* ============================================================
   SP 横スクロール対策
   ============================================================ */

html,
body {
  width: 100%;
  max-width: 100%;
  overflow-x: hidden;
}

@supports (overflow-x: clip) {
  html,
  body {
    overflow-x: clip;
  }
}

@media (max-width: 767px) {
  .js-fade-in-left,
  .js-fade-in-right {
    transform: translateY(30px);
  }

  .js-fade-in-left.is-visible,
  .js-fade-in-right.is-visible {
    transform: translateY(0);
  }

  .topics,
  .news,
  .features,
  .interview,
  .academics,
  .about,
  .sns,
  .campus-life,
  .loop-slide,
  .footer-banner,
  .footer {
    width: 100%;
    max-width: 100%;
    overflow-x: hidden;
  }

  .topics__inner,
  .news__inner,
  .features__inner,
  .interview__inner,
  .academics__inner,
  .about__inner,
  .sns__inner,
  .campus-life__inner,
  .footer-banner__inner,
  .footer__inner {
    width: 100%;
    max-width: 100%;
    padding-left: 20px;
    padding-right: 20px;
  }

  .topics__slider,
  .interview__slider {
    width: 100%;
    max-width: 100%;
    overflow: hidden;
  }
}


.tab-panel {
  display: none;
}

.tab-panel.active {
  display: block;
}

.tab-list {
    display: flex;
    gap: 4px;
}

@media (max-width: 767px) {
.tab-list {
    gap: 5px;
}
}

body.is-loading {
  overflow: hidden;
}

.loading {
  position: fixed;
  inset: 0;
  z-index: 9999;
  background: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  opacity: 1;
  visibility: visible;
  transition: opacity 0.8s ease, visibility 0.8s ease;
}

.loading.is-hide {
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
}

.loading__logo {
  width: min(260px, 60vw);
  opacity: 0;
  transform: translateY(20px);
  animation: loadingLogo 1.2s ease forwards;
}

.loading__logo img {
  width: 100%;
  height: auto;
}

@keyframes loadingLogo {
  0% {
    opacity: 0;
    transform: translateY(20px);
  }
  100% {
    opacity: 1;
    transform: translateY(0);
  }
}

.main,
.header,
.hero,
.notice-bar,
.floating-banner {
  transition: opacity 0.8s ease;
}

body.is-loading .main,
body.is-loading .header,
body.is-loading .hero,
body.is-loading .notice-bar,
body.is-loading .floating-banner {
  opacity: 0;
}


/* ==============================
   SP Drawer Animation
============================== */
@media (max-width: 767px) {
  .header__hamburger {
    position: relative;
    z-index: 300;
  }

  .header__drawer {
    display: block;
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transform: translateY(-16px);
    transition:
      opacity .35s ease,
      visibility .35s ease,
      transform .35s ease;
  }

  .header__drawer.is-open {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
    transform: translateY(0);
  }

  .header__drawer-menu li {
    opacity: 0;
    transform: translateY(12px);
    transition:
      opacity .35s ease,
      transform .35s ease;
  }

  .header__drawer.is-open .header__drawer-menu li {
    opacity: 1;
    transform: translateY(0);
  }

  .header__drawer.is-open .header__drawer-menu li:nth-child(1) { transition-delay: .05s; }
  .header__drawer.is-open .header__drawer-menu li:nth-child(2) { transition-delay: .08s; }
  .header__drawer.is-open .header__drawer-menu li:nth-child(3) { transition-delay: .11s; }
  .header__drawer.is-open .header__drawer-menu li:nth-child(4) { transition-delay: .14s; }
  .header__drawer.is-open .header__drawer-menu li:nth-child(5) { transition-delay: .17s; }
  .header__drawer.is-open .header__drawer-menu li:nth-child(6) { transition-delay: .20s; }
  .header__drawer.is-open .header__drawer-menu li:nth-child(7) { transition-delay: .23s; }
  .header__drawer.is-open .header__drawer-menu li:nth-child(8) { transition-delay: .26s; }
  .header__drawer.is-open .header__drawer-menu li:nth-child(9) { transition-delay: .29s; }
}




/* ========================================================================================================================
   ▼ 学びを知る（Academics）下層ページ 追加CSS
   ======================================================================================================================== */

/* ============================================================
   Page Hero（下層ページ共通ヘッダー / header.php で使用）
   ============================================================ */
.row_page section.page-hero {
    padding-top: 200px;
}
.page-hero__inner {
  padding: 0 90px; /* 既存セクションの __inner と同値 */
}

/* 見出しは .section-title を流用し、下層用にサイズだけ調整 */
.page-title {
    margin: 0 0 100px 0;
    line-height: 1;
}
.row_page .page-title__en {
    display: block;
    line-height: 1;
    font-family: var(--font-en);
    font-weight: 400;
    font-size: clamp(36px, 8vw, 132px);
}
span.page-title__ja {
    font-size: 24px;
    color: #898989;
    font-feature-settings: "palt";
}
.page-hero__image img {
    width: 100%;
    height: 50dvh;
    object-fit: cover;
    border-radius: 30px 0;
    margin-bottom: 16px;
}
.row_page .section-title__en {
    display: block;
    font-family: var(--font-en);
    font-size: clamp(24px, 12vw, 80px);
    line-height: 1.4;
}
.row_page section {
    padding: 0 0 80px 0;
    margin-left: var(--side-bg-width-pc);
}

/* ============================================================
   下層ページ 本文コンテンツ幅（共通） / Row Page Inner
   ・下層ページ本文の最外周インナーはこのクラスに統一する
   ・.page-hero__inner / .post-detail__inner は対象外（既存のまま）
   ============================================================ */
.row_page_inner {
    width: 100%;
    max-width: var(--container-max);
    margin: 0 auto;
}

@media screen and (max-width: 1366px) {
  .row_page_inner {
    padding: 0 20px;
  }
}

/* ============================================================
   パンくず
   ============================================================ */
.breadcrumbs {
    font-size: 14px;
}
/* ============================================================
   Common Circle Arrow Button（再利用可能な丸矢印）
   ============================================================ */
.c-circle-arrow {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 50px;
  height: 50px;
  border-radius: 50%;
  background: var(--color-primary);
  transition: transform var(--transition-default), background var(--transition-default);
}
.c-circle-arrow__icon {
  width: 8px;
  height: 8px;
  border-top: 2px solid var(--color-white);
  border-right: 2px solid var(--color-white);
  transform: rotate(45deg);
}

/* ============================================================
   Faculties（学部・大学院カード）
   ============================================================ */

.faculties__inner {
  margin: 0 auto;
  padding: 0 90px; /* 既存 __inner と同値 */
}

/* タイトル左の引用符装飾（画像差し替え可） */
.faculties__title .section-title__en {
  position: relative;
}
.faculties__title .section-title__en::before {
  content: "\201D"; /* ” TODO: デザインが画像指定なら img に差し替え */
  margin-right: 8px;
  color: var(--color-primary);
  font-family: var(--font-en);
}
.faculties__grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 24px;
    margin-bottom: 24px;
}

.faculties__card-link {
    display: flex;
    flex-direction: column;
    align-items: center;
    height: 100%;
    padding: 40px 24px 70px 24px;
    background: var(--color-white);
    border: 1px solid #eee;
    border-radius: 30px 0;
    text-align: center;
    transition: box-shadow var(--transition-default);
    position: relative;
    box-shadow: 0 4px 7px rgba(0, 0, 0, 0.08);
}
.faculties__card-link:hover {
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.08);
}
.faculties__card-link:hover .c-circle-arrow {
  transform: translateX(4px);
  background: var(--color-blue);
}

.faculties__card-icon {
  display: block;
  margin-bottom: 20px;
}
.faculties__card-icon img {
    width: 150px;
    height: 100px;
    object-fit: contain;
    margin: 0 auto;
}
.faculties__card-desc {
    margin-bottom: 20px;
    font-weight: 500;
    font-size: 14px;
}

.faculties__card-divider {
  display: block;
  width: 100%;
  height: 1px;
  background: #e0e0e0;
  margin-bottom: 20px;
}

.faculties__card-name {
    font-weight: bold;
    font-size: 24px;
    line-height: 1;
}
.faculties__card-dept {
    font-size: 16px;
    margin-top: 4px;
    font-weight: 500;
}

.faculties__card-courses {
  width: 100%;
  margin-top: 20px;
  text-align: left;
  font-size: 16px;
}
.faculties__card-courses li {
    position: relative;
    padding-left: 1em;
    font-size: 14px;
}
.faculties__card-courses li::before {
  content: "・";
  position: absolute;
  left: 0;
}
/* 大学院「授与される学位」ラベルは中点を出さない */
.faculties__card-courses-label {
  padding-left: 0;
  font-weight: 500;
}
.faculties__card-courses-label::before {
  content: none;
}

/* 矢印はカード下端・右寄せに固定（カードの高さ違いを吸収） */
.faculties__card .c-circle-arrow {
  margin-top: auto;
  align-self: flex-end;
}
.faculties__card-courses + .c-circle-arrow {
    position: absolute;
    right: 20px;
    bottom: 20px;
}

/* ============================================================
   Info Card（再利用：見出し＋テキスト＋イラスト）
   教職課程 / 教員紹介 / 他大学との交流 で共通使用
   ============================================================ */
.info-card {
    display: flex;
    align-items: center;
    gap: 40px;
    padding: 48px 56px;
    background: var(--color-white);
    border: 1px solid #eee;
    border-radius: 30px 0;
    box-shadow: 0 4px 7px rgba(0, 0, 0, 0.08);
}

.info-card__body {
  flex: 1;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
}

.info-card__title {
  font-size: 24px; /* TODO: 実寸要確認 */
  font-weight: 700;
  line-height: 1.4;
}
.info-card__sub {
    font-size: 18px;
    /* color: var(--color-gray-dark); */
    margin-top: 4px;
    font-weight: 500;
}

.info-card__divider {
  display: block;
  width: 40px; /* 短いアクセント線 TODO: 幅要確認 */
  height: 2px;
  background: var(--color-primary);
  margin: 20px 0;
}

.info-card__text {
    margin-bottom: 28px;
    font-weight: 500;
    font-size: 18px;
}

.info-card__image {
  flex-shrink: 0;
  width: 45%; /* TODO: 画像比率 実寸要確認 */
}
.info-card__image img {
    width: 100%;
    object-fit: cover;
    aspect-ratio: 3 / 2;
}

/* 2カラム群（教員紹介／他大学との交流） */
.info-card-group {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 24px;
  margin-top: 24px;
}
.info-card-group .info-card__image {
    width: 40%;
    height: 100%;
}

/* セクション枠 */
.learning-support {
  margin-top: 80px; /* TODO: セクション間余白 実寸要確認 */
}
.learning-support__inner {
  max-width: var(--container-max);
  margin: 0 auto;
  padding: 0 90px; /* 既存 __inner と同値 */
}

/* ============================================================
   Responsive
   ============================================================ */
/* Tablet */
@media (max-width: 1023px) {
  .faculties__grid {
    grid-template-columns: repeat(2, 1fr);
  }
  .info-card-group {
    grid-template-columns: 1fr;
  }
}

/* SP */
@media (max-width: 767px) {
.row_page section.page-hero {
    padding-top: 100px;
}
span.page-title__ja {
    font-size: 20px;
}
.page section.page-hero {
    padding-top: 100px;
}
.page-title {
    margin: 0 0 30px 0;
}

  .page-hero__inner {
    padding: 0 16px;
  }
  .section-title--page {
    margin: 32px 0 20px; /* TODO: SP余白 要確認 */
  }

  .faculties__inner,
  .learning-support__inner {
    padding: 0 16px; /* 既存SP __inner に合わせる */
  }
  .faculties__grid {
    grid-template-columns: 1fr;
    gap: 16px;
  }
  .c-circle-arrow {
    width: 40px;
    height: 40px;
  }

  .info-card {
    flex-direction: column;
    align-items: stretch;
    gap: 24px;
    padding: 32px 20px; /* TODO: SP余白 実寸要確認 */
  }
  .info-card__image,
  .info-card-group .info-card__image {
    width: 100%;
  }
.faculties__card-desc {
    font-size: 16px;
}
.faculties__card-courses {
    font-size: 14px;
}
.info-card__sub {
    font-size: 16px;
}

.info-card__text {
    font-size: 16px;
}
.info-card__image img {
        aspect-ratio: 16 / 9;
    }
}


/* ========================================================================================================================
   Professor List（学部別 教員一覧 / archive-professor.php）
   ======================================================================================================================== */



/* ========================================================================================================================
   Professor List（学部別 教員一覧 / page-professor_〇〇.php）
   ======================================================================================================================== */
.faculties__card-link {
    display: flex;
    flex-direction: column;
    align-items: center;
    height: 100%;
    padding: 40px 24px 40px 24px;
    background: var(--color-white);
    border: 1px solid #eee;
    border-radius: 30px 0;
    text-align: center;
    transition: box-shadow var(--transition-default);
    position: relative;
    box-shadow: 0 4px 7px rgba(0, 0, 0, 0.08);
}
.professor-list {
    padding: 60px 0;
    margin-left: var(--side-bg-width-pc);
}

.professor-list__inner {
    margin: 0 auto;
    padding: 0 90px;
}

/* ---- グリッド：基本4列 ---- */
.professor-list__grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 30px;
}

.professor-list__empty {
    text-align: center;
    font-size: 16px;
    padding: 40px 0;
}

/* ============================================================
   カード
   ============================================================ */
.professor-card__link {
    display: flex;
    flex-direction: column;
    height: 100%;
    text-align: center;
    padding: 30px 24px;
    border-radius: 30px 0;
    background-color: #e9eff6;
    border: 1px solid #eee;
    transition: box-shadow var(--transition-default);
}

.professor-card__link:hover {
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.1);
}

/* 顔写真（円形） */
.professor-card__image {
    width: 100%;
    max-width: 180px;
    margin: 0 auto;
    aspect-ratio: 1 / 1;
    overflow: hidden;
    border-radius: 50%;
}

.professor-card__image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform var(--transition-slow);
}

.professor-card__link:hover .professor-card__image img {
    transform: scale(1.05);
}

/* 氏名 */
.professor-card__name {
    font-size: 22px;
    font-weight: 700;
    line-height: 1.3;
    margin-top: 24px;
    margin-bottom: 16px;
}

/* ---- 繰り返しフィールド（項目 / 内容）: table ---- */
.professor-card__table {
    width: 100%;
    margin: 0 0 24px;
    border-collapse: collapse;
    text-align: left;
    font-size: 14px;
    line-height: 1.6;
    table-layout: fixed;
}

.professor-card__table th,
.professor-card__table td {
    padding: 8px 0;
    vertical-align: top;
    border-bottom: 1px solid #dfe5ec;
    word-break: break-word;
}

.professor-card__table tr:first-child th,
.professor-card__table tr:first-child td {
    border-top: 1px solid #dfe5ec;
}

/* 項目（pro_item01） */
.professor-card__table th {
    width: 38%;
    padding-right: 10px;
    font-weight: 700;
    color: var(--color-gray-dark);
    font-size: 13px;
}

/* 内容（pro_matter02） */
.professor-card__table td {
    font-weight: 400;
}

/* ボタンはカード下端に揃える */
.professor-card__action {
    margin-top: auto;
}

/* ============================================================
   レスポンシブ
   ============================================================ */
@media (max-width: 1299px) {
    .professor-list__grid {
        grid-template-columns: repeat(3, 1fr);
    }
}

@media (max-width: 1023px) {
    .professor-list__grid {
        grid-template-columns: repeat(2, 1fr);
        gap: 24px;
    }
    .professor-card__link {
        padding: 28px 20px;
    }
    .professor-card__name {
        font-size: 20px;
    }
}

@media (max-width: 767px) {
    .professor-list {
        padding: 40px 0;
    }
    .professor-list__inner {
        padding: 0 16px;
    }
    .professor-list__grid {
        grid-template-columns: 1fr;
        gap: 20px;
    }
    .professor-card__image {
        max-width: 150px;
    }
    .professor-card__name {
        font-size: 20px;
        margin-top: 20px;
    }
    /* SP: 項目/内容を縦積みにする場合は下記を有効化
    .professor-card__table,
    .professor-card__table tbody,
    .professor-card__table tr,
    .professor-card__table th,
    .professor-card__table td {
        display: block;
        width: 100%;
    }
    .professor-card__table th {
        border-bottom: none;
        padding-bottom: 0;
    }
    */
}

/* ホバー非対応端末では拡大しない（既存方針に合わせる） */
@media (hover: none) {
    .professor-card__link:hover {
        box-shadow: none;
    }
    .professor-card__link:hover .professor-card__image img {
        transform: none;
    }
}







/* ========================================================================================================================
   Professor Detail（教員紹介 詳細 / single-professor_list.php）
   ======================================================================================================================== */
/* 本文コンテンツ幅は共通の .row_page_inner に統一済み（旧 .professor-detail__inner は削除） */

/* ============================================================
   見出し（h1 Professor / h2 氏名 / h3 所属学部）
   ============================================================ */
.single-professor_list section.page-hero h1.page-title {
    margin-bottom: 40px;
}
.row_page section {
    padding: 0 0 50px 0;
}
.professor-detail__head {
    text-align: center;
    margin-bottom: 60px;
}

.professor-detail__title {
    margin-bottom: 40px;
    line-height: 1;
}

.professor-detail__title-en {
    display: block;
    font-family: var(--font-en);
    font-weight: 400;
    font-size: clamp(36px, 8vw, 80px);
    line-height: 1.2;
    color: var(--color-primary);
}

.professor-detail__title-ja {
    display: block;
    font-size: 24px;
    font-weight: 500;
    color: var(--color-gray-dark);
    line-height: 1;
    margin-top: 8px;
}

/* 氏名 */
.professor-detail__name {
    font-size: clamp(28px, 5vw, 40px);
    font-weight: 700;
    line-height: 1.3;
}

/* 所属学部 */
.professor-detail__faculty {
    font-size: 20px;
    font-weight: 500;
    color: var(--color-gray-dark);
    margin-top: 12px;
}

/* ============================================================
   上段：左=アイキャッチ / 右=detail01
   区切り線で上下を挟む
   ============================================================ */
.professor-detail__profile {
    display: flex;
    align-items: flex-start;
    gap: 56px;
}

.professor-detail__photo {
    flex: 0 0 360px;
    max-width: 360px;
}

.professor-detail__photo img {
    width: 100%;
    aspect-ratio: 4 / 5;
    object-fit: cover;
    border-radius: 30px 0;
}

.professor-detail__meta {
    flex: 100%;
    max-width: 100%;
}
/* detail01 テーブル */
.professor-detail__table {
    width: 100%;
    border-collapse: collapse;
    text-align: left;
    line-height: 1.8;
}

.professor-detail__table th,
.professor-detail__table td {
    padding: 16px 0;
    vertical-align: top;
    border-bottom: 1px solid #ccc;
    word-break: break-word;
}

.professor-detail__table tr:first-child th,
.professor-detail__table tr:first-child td {
    border-top: 1px solid #ccc;
}

/* 項目（pro_item01） */
.professor-detail__table th {
    width: 30%;
    font-weight: bold;
}

/* 内容（pro_matter01） */
.professor-detail__table td {
    font-weight: 400;
}

/* ============================================================
   下段：detail02（項目=見出し / 内容=本文）
   ============================================================ */
.professor-detail__blocks {
    margin-top: 60px;
}

.professor-detail__block + .professor-detail__block {
    margin-top: 48px;
}

/* ● を疑似要素で付与（pro_item02） */
.professor-detail__block-title {
    position: relative;
    padding-left: 22px;
    padding-bottom: 8px;
    margin-bottom: 16px;
    font-size: 22px;
    font-weight: 700;
    line-height: 1.5;
    border-bottom: 2px solid #ccc;
}

.professor-detail__block-title::before {
    content: "";
    position: absolute;
    left: 0;
    top: 0.55em;
    width: 12px;
    height: 12px;
    border-radius: 50%;
    background: var(--color-primary);
}

.professor-detail__block-body {
    font-size: 16px;
    line-height: 1.9;
}

/* ============================================================
   レスポンシブ
   ============================================================ */
@media (max-width: 1023px) {
    .professor-detail__profile {
        gap: 32px;
    }
    .professor-detail__photo {
        flex-basis: 280px;
    }
    .professor-detail__table th {
        width: 34%;
        padding-right: 16px;
    }
}

@media (max-width: 767px) {
.single-professor_list section.page-hero {
    padding-top: 100px;
}

    .professor-detail__head {
        margin-bottom: 40px;
    }
    .professor-detail__title {
        margin-bottom: 24px;
    }
    .professor-detail__title-ja {
        font-size: 16px;
    }
    .professor-detail__faculty {
        font-size: 16px;
    }

    /* 写真とテーブルを縦積み */
    .professor-detail__profile {
        flex-direction: column;
        gap: 28px;
    }
    .professor-detail__photo {
        flex-basis: auto;
        max-width: 100%;
        width: 70%;
        margin: 0 auto;
    }

    /* テーブルは行ごとに縦積み */
    .professor-detail__table,
    .professor-detail__table tbody,
    .professor-detail__table tr,
    .professor-detail__table th,
    .professor-detail__table td {
        display: block;
        width: 100%;
    }
    .professor-detail__table th {
        padding: 12px 0 0;
        border-bottom: none;
        font-size: 14px;
    }
    .professor-detail__table td {
        padding: 4px 0 12px;
        font-size: 15px;
    }
    .professor-detail__table tr:first-child td {
        border-top: none;
    }

    .professor-detail__blocks {
        margin-top: 40px;
    }
    .professor-detail__block + .professor-detail__block {
        margin-top: 32px;
    }
    .professor-detail__block-title {
        font-size: 18px;
        padding-left: 18px;
    }
    .professor-detail__block-title::before {
        width: 10px;
        height: 10px;
    }
    .professor-detail__block-body {
        font-size: 15px;
    }
}

/* ========================================================================================================================
   ▼ SINGEL　NEWS　TOPICS　詳細ページ 追加CSS
   ======================================================================================================================== */
.post-detail__inner {
    max-width: 1000px;
    margin: 0 auto;
}
section.post-detail {
    /* border-top: 1px solid #ccc; */
    padding-top: 10px;
}
.single-news h2{
    border-bottom: 1px solid #ccc;
    margin-bottom: 30px;
}
.single-news .post-detail__inner a{
    font-weight: bold;
    color: #2461a9;
    text-decoration: underline;
}
.single-news .row_page section.page-hero,.single-topics .row_page section.page-hero {
    background: linear-gradient(90deg, rgba(186, 207, 235, 1) 0%, rgba(186, 207, 235, 1) 25%, rgba(233, 199, 219, 1) 100%);
}
.single-news .row_page section.page-hero h1.page-title,.single-topics .row_page section.page-hero h1.page-title {
    margin-bottom: 50px;
    text-align: center;
}
.single-news .row_page section.page-hero h1.page-title span.page-title__ja,.single-topics .row_page section.page-hero h1.page-title span.page-title__ja {
    font-size: 28px;
    color: #333;
}
@media (max-width: 1000px) {
.post-detail__inner {
    padding: 0 20px;
}
body.single-news {
    font-size: 14px;
}
.single-news .row_page section.page-hero h1.page-title span.page-title__ja,.single-topics .row_page section.page-hero h1.page-title span.page-title__ja {
    font-size: 24px;
    line-height: 1.4;
}
.single-news .row_page section.page-hero {
}
.single-news .row_page section.page-hero h1.page-title,.single-topics .row_page section.page-hero h1.page-title {
    margin-bottom: 0;
    text-align: center;
}
}



/* ========================================================================================================================
   大学案内（Outline）下層ページ 追加CSS
   ======================================================================================================================== */
/* 本文コンテンツ幅は共通の .row_page_inner に統一済み（旧 .outline__inner は削除） */












/* ========================================================================================================================
   学部・学科ページ 共通CSS（Department）
   page-business_administration.php / page-commerce.php /
   page-human_sciences.php / page-child_teaching.php などで共通利用
   ※ .dept- 接頭辞のみで完結。本文を差し替えるだけで他学科に流用できます
   ※ 既存の style.css 末尾に追記してください
   ======================================================================================================================== */

/* 共通インナー（既存 __inner と同値） */
.dept__inner {
    max-width: var(--container-max);
    margin: 0 auto;
    padding: 0 90px;
}

/* アンカー到達時にヘッダーへ隠れないよう余白を確保
   （既存 .curriculum[id] と同値） */
.dept[id],
.dept-course[id] {
  scroll-margin-top: 96px;
}

/* ------------------------------------------------------------
   Lead（学部キャッチコピー）
   ------------------------------------------------------------ */
.dept-lead {
  text-align: center;
}
.dept-lead__catch {
  display: inline-block;
  font-size: 32px;
  font-weight: 700;
  line-height: 1.6;
  font-feature-settings: "palt";
}
.dept-lead__catch::after {
  content: "";
  display: block;
  width: 60px;
  height: 3px;
  margin: 24px auto 0;
  background: var(--color-blue);
}

/* ------------------------------------------------------------
   学部長メッセージ
   ------------------------------------------------------------ */
.dept-message {
  display: flex;
  align-items: flex-start;
  gap: 48px;
  padding: 48px 56px;
  background: var(--color-white);
  border: 1px solid #eee;
  border-radius: 30px 0;
  box-shadow: 0 4px 7px rgba(0, 0, 0, 0.08);
}
.dept-message__image {
  flex-shrink: 0;
  width: 260px;
}
.dept-message__image img {
  width: 100%;
  aspect-ratio: 3 / 4;
  object-fit: cover;
  border-radius: 30px 0;
}
.dept-message__body {
  flex: 1;
}
.dept-message__title {
  margin-bottom: 20px;
  font-size: 24px;
  font-weight: 700;
  line-height: 1.6;
}
.dept-message__text {
  font-weight: 500;
  text-align: justify;
}
.dept-message__name {
  margin-top: 24px;
  font-size: 18px;
  font-weight: 700;
  text-align: right;
}
.dept-message__name span {
  margin-right: 12px;
  font-size: 14px;
  font-weight: 500;
  color: var(--color-gray-dark);
}

/* ------------------------------------------------------------
   コース内アンカーナビ（既存 .c-button を横並びにするラッパのみ）
   ------------------------------------------------------------ */
.dept-nav {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 16px;
  margin-bottom: 64px;
}

/* ------------------------------------------------------------
   コース紹介
   ------------------------------------------------------------ */
.dept-course + .dept-course {
  margin-top: 80px;
  padding-top: 80px;
  border-top: 1px solid #e0e0e0;
}
.dept-course__head {
    display: flex;
    align-items: center;
    gap: 24px;
    margin-bottom: 32px;
    background: linear-gradient(90deg, rgba(186, 207, 235, 1) 0%, rgba(186, 207, 235, 1) 25%, rgba(233, 199, 219, 1) 100%);
    padding: 40px;
    border-radius: 30px 0;
}
.dept-course__num {
  font-family: var(--font-en);
  font-size: 64px;
  line-height: 1;
  color: var(--color-blue);
}
.dept-course__name {
  font-size: 28px;
  font-weight: 700;
  line-height: 1.4;
}
.dept-course__dept {
  display: block;
  font-size: 14px;
  font-weight: 500;
}
.dept-course__body {
  display: flex;
  align-items: center;
  gap: 40px;
}
.dept-course__text-area {
  flex: 1;
}
.dept-course__lead {
  margin-bottom: 16px;
  font-size: 20px;
  font-weight: 700;
  line-height: 1.6;
}
.dept-course__text {
  font-weight: 500;
  text-align: justify;
}
.dept-course__image {
  flex-shrink: 0;
  width: 42%;
}
.dept-course__image img {
  width: 100%;
  aspect-ratio: 3 / 2;
  object-fit: cover;
  border-radius: 30px 0;
}
.dept-course__image .c-img-placeholder {
  border-radius: 30px 0;
}
/* 画像を左右交互に配置（偶数番目のコースを反転＝画像を左へ）
   ・SPでは反転を解除し縦積みに戻す（下部SPメディアクエリ参照） */
.dept-course:nth-of-type(even) .dept-course__body {
  flex-direction: row-reverse;
}

/* ------------------------------------------------------------
   在学生・資格取得者の声（コース紹介 / 資格取得 で共通利用）
   ------------------------------------------------------------ */
.dept-voice {
  display: flex;
  align-items: flex-start;
  gap: 40px;
  margin-top: 40px;
  padding: 40px 48px;
  background: var(--color-gray-light);
  border-radius: 30px 0;
}
.dept-voice__image {
  flex-shrink: 0;
  width: 240px;
}
.dept-voice__image img {
  width: 100%;
  aspect-ratio: 3 / 4;
  object-fit: cover;
  border-radius: 30px 0;
}
.dept-voice__body {
  flex: 1;
}
.dept-voice__label {
  margin-bottom: 8px;
  font-size: 14px;
  font-weight: 700;
  color: var(--color-blue);
}
.dept-voice__title {
  margin-bottom: 16px;
  padding-left: 16px;
  border-left: 3px solid var(--color-blue);
  font-size: 20px;
  font-weight: 700;
  line-height: 1.6;
}
.dept-voice__text {
    font-weight: 500;
    text-align: justify;
}
.dept-voice__meta {
  margin-top: 20px;
  font-size: 14px;
  font-weight: 500;
  line-height: 1.8;
  color: var(--color-gray-dark);
}
.dept-voice__name {
  font-size: 18px;
  font-weight: 700;
  color: var(--color-primary);
}

/* ------------------------------------------------------------
   ブロック共通（中見出し＋余白）
   ------------------------------------------------------------ */
.dept-block + .dept-block {
  margin-top: 56px;
}
.dept-subtitle {
  margin-bottom: 20px;
  padding-left: 16px;
  border-left: 4px solid var(--color-blue);
  font-size: 22px;
  font-weight: 700;
  line-height: 1.4;
}
.dept-subtitle--sm {
  border-left-width: 3px;
  font-size: 18px;
}

/* ------------------------------------------------------------
   就職率（数値訴求）
   ------------------------------------------------------------ */
.dept-stat {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 24px;
  margin-bottom: 56px;
  padding: 40px;
  background: var(--color-blue-light);
  border-radius: 30px 0;
}
.dept-stat__label {
  font-size: 20px;
  font-weight: 700;
}
.dept-stat__value {
  display: flex;
  align-items: baseline;
  color: var(--color-blue);
}
.dept-stat__number {
  font-family: var(--font-en);
  font-size: 100px;
  line-height: 1;
}
.dept-stat__unit {
  font-size: 32px;
  font-weight: 700;
}
.dept-stat__note {
  font-size: 14px;
  font-weight: 500;
  color: var(--color-gray-dark);
}

/* ------------------------------------------------------------
   表＋グラフの2カラム
   ------------------------------------------------------------ */
.dept-chart-set {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 40px;
  align-items: start;
}
.dept-chart img {
  width: 100%;
}

/* ------------------------------------------------------------
   共通テーブル（就職実績 / 科目一覧）
   ------------------------------------------------------------ */
.dept-table-wrap {
  overflow-x: auto;
}
.dept-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 16px;
}
.dept-table th,
.dept-table td {
  padding: 12px 16px;
  border-bottom: 1px solid #e0e0e0;
  font-weight: 500;
  text-align: left;
}
.dept-table thead th {
    background: var(--color-blue);
    font-weight: 700;
    white-space: nowrap;
    color: #fff;
}
.dept-table tbody th {
    font-weight: 500;
    width: 50%;
}
.dept-table tbody td{
    width: 25%;

}
.dept-table .is-num {
  text-align: center;
  white-space: nowrap;
}

/* ------------------------------------------------------------
   主な就職先
   ------------------------------------------------------------ */
.dept-employers {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 24px;
}
.dept-employers__group {
  padding: 24px 28px;
  background: var(--color-white);
  border: 1px solid #eee;
  border-radius: 30px 0;
  box-shadow: 0 4px 7px rgba(0, 0, 0, 0.08);
}
.dept-employers__label {
    margin-bottom: 16px;
    padding-bottom: 8px;
    border-bottom: 1px solid;
    font-size: 20px;
    font-weight: 700;
    color: var(--color-blue);
}
.dept-employers__list {
  font-size: 15px;
  font-weight: 500;
}
.dept-employers__list li {
  position: relative;
  padding-left: 1em;
}
.dept-employers__list li::before {
  content: "・";
  position: absolute;
  left: 0;
}

/* ------------------------------------------------------------
   資格取得
   ------------------------------------------------------------ */
.dept-license {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 24px;
  align-items: start;
}
.dept-license__group {
  padding: 32px 36px;
  background: var(--color-white);
  border: 1px solid #eee;
  border-radius: 30px 0;
  box-shadow: 0 4px 7px rgba(0, 0, 0, 0.08);
}
.dept-license__cat {
    margin-bottom: 16px;
    padding-bottom: 8px;
    border-bottom: 1px solid;
    font-size: 20px;
    font-weight: 700;
    color: var(--color-blue);
}
.dept-license__item + .dept-license__item {
  margin-top: 20px;
}
.dept-license__name {
  position: relative;
  padding-left: 1.4em;
  font-size: 16px;
  font-weight: 700;
}
.dept-license__name::before {
  content: "";
  position: absolute;
  top: 0.7em;
  left: 0.2em;
  width: 0;
  height: 0;
  border-left: 7px solid var(--color-blue);
  border-top: 5px solid transparent;
  border-bottom: 5px solid transparent;
}
.dept-license__note {
  font-size: 15px;
  font-weight: 700;
  color: var(--color-blue);
}
.dept-license__text {
    font-weight: 500;
    text-align: justify;
}

/* ------------------------------------------------------------
   科目一覧
   ------------------------------------------------------------ */
.dept-subject + .dept-subject {
  margin-top: 48px;
}

/* ============================================================
   Responsive
   ============================================================ */
/* Tablet */
@media (max-width: 1023px) {
  .dept-chart-set,
  .dept-employers,
  .dept-license {
    grid-template-columns: 1fr;
  }
  .dept-course__image {
    width: 40%;
  }
}

/* SP */
@media (max-width: 767px) {
  .dept__inner {
    padding: 0 16px; /* 既存SP __inner に合わせる */
  }

  .dept-lead__catch {
    font-size: 22px;
  }
  .dept-lead__catch::after {
    margin-top: 16px;
  }

  .dept-message {
    flex-direction: column;
    gap: 24px;
    padding: 32px 20px;
  }
  .dept-message__image {
    width: 60%;
    margin: 0 auto;
  }
  .dept-message__title {
    font-size: 20px;
  }

  .dept-nav {
    gap: 12px;
    margin-bottom: 40px;
  }

  .dept-course + .dept-course {
    margin-top: 48px;
    padding-top: 48px;
  }
  .dept-course__head {
    gap: 16px;
    margin-bottom: 20px;
    padding: 20px;
  }
.dept-course__num {
        padding-top: 6px;
    }
    .dept-course__name {
        font-size: 22px;
    }
  /* SPでは反転を解除し、通常の縦積み（本文→画像）に戻す */
  .dept-course__body,
  .dept-course:nth-of-type(even) .dept-course__body {
    flex-direction: column;
    align-items: stretch;
    gap: 24px;
  }
  .dept-course__image {
    width: 100%;
  }
  .dept-course__image img {
    aspect-ratio: 16 / 9;
  }
  .dept-course__lead {
    font-size: 18px;
  }

  .dept-voice {
    flex-direction: column;
    gap: 20px;
    margin-top: 32px;
    padding: 24px 20px;
  }
  .dept-voice__image {
    width: 60%;
    margin: 0 auto;
  }
  .dept-voice__title {
    font-size: 18px;
  }

  .dept-block + .dept-block {
    margin-top: 40px;
  }
  .dept-subtitle {
    font-size: 18px;
  }
  .dept-subtitle--sm {
    font-size: 16px;
  }

  .dept-stat {
    flex-direction: column;
    gap: 4px;
    margin-bottom: 40px;
    padding: 32px 20px;
    text-align: center;
  }
  .dept-stat__number {
    font-size: 56px;
  }

  .dept-table {
    font-size: 14px;
  }
  .dept-table th,
  .dept-table td {
    padding: 10px 12px;
  }

  .dept-employers__group {
    padding: 24px 20px;
  }
  .dept-license__group {
    padding: 24px 20px;
  }

  .dept-subject + .dept-subject {
    margin-top: 32px;
  }
}


.page-template-page-commerce .page-hero__image img {
    object-position: top;
}
.page-template-page-human_sciences .page-hero__image img {
    object-position: top;
}
.page-template-page-graduate .page-hero__image img {
    object-position: top;
}





/* ============================================================
   Graduate（大学院について / page-graduate.php）
   ------------------------------------------------------------
   ・.c-* … 汎用パーツ（他ページでも流用可）
       .c-anchor-nav / .c-lead / .c-fields / .c-table /
       .c-def / .c-feature-list / .c-doc-list / .c-note
   ・.grad-* … 当ページ専用の枠・見出し
   ・色/余白は既存トークンに準拠（未定義時のフォールバック付き）
       --container-max / --color-primary(#333) / --color-blue(#2a5c8a)
   ・左青帯オフセット・下余白は既存 .row_page section {} が付与
   ・角丸は既存カードと同じ 30px 0 を踏襲
   ============================================================ */

/* 本文コンテンツ幅は共通の .row_page_inner に統一済み（旧 .grad__inner は削除） */
/* ページ最上位は <section class="grad">。
   左青帯オフセット（margin-left: var(--side-bg-width-pc)）と下余白は
   既存 .row_page section {} が付与するため、ここでは指定しない。
   ※内側の見出しブロックは <div> にしてあり、.row_page section の
     二重オフセットを避けている。 */
.grad-section { margin-top: 80px; }
.grad-section:first-of-type { margin-top: 0; }
/* アンカー到達時のヘッダー被り回避（id を持つブロックすべて） */
.grad-section,
.grad-course { scroll-margin-top: 96px; }

/* ============================================================
   .c-anchor-nav … ページ内リンク（汎用）
   ============================================================ */
.c-anchor-nav {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  justify-content: center;
  margin: 0 0 64px;
}
.c-anchor-nav__item {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 14px 28px;
  border: 1px solid var(--color-blue, #2a5c8a);
  border-radius: 30px 0;
  color: var(--color-blue, #2a5c8a);
  font-weight: 700;
  line-height: 1.4;
  text-decoration: none;
  transition: background-color .2s, color .2s;
}
.c-anchor-nav__item::after {
  content: "";
  width: 7px;
  height: 7px;
  border-right: 2px solid currentColor;
  border-bottom: 2px solid currentColor;
  transform: rotate(45deg);
  margin-top: -3px;
}
.c-anchor-nav__item:hover,
.c-anchor-nav__item:focus-visible {
  background-color: var(--color-blue, #2a5c8a);
  color: #fff;
}

/* ============================================================
   .c-lead … 中央寄せのリード（汎用）
   ============================================================ */
.c-lead {
  margin: 0 auto;
  text-align: center;
}
.c-lead__label {
  display: inline-block;
  font-family: var(--font-en, "Helvetica Neue", Arial, sans-serif);
  font-size: 13px;
  letter-spacing: .12em;
  color: var(--color-blue, #2a5c8a);
  margin: 0 0 12px;
}
.c-lead__title {
  position: relative;
  font-size: 26px;
  font-weight: 700;
  color: var(--color-primary, #333);
  margin: 0 0 24px;
  padding-bottom: 16px;
}
.c-lead__title::after {
  content: "";
  position: absolute;
  left: 50%;
  bottom: 0;
  width: 48px;
  height: 3px;
  background: var(--color-blue, #2a5c8a);
  transform: translateX(-50%);
}
.c-lead__text {
  font-size: 16px;
  line-height: 2.1;
  color: var(--color-primary, #333);
  text-align: left;
}

/* ============================================================
   .grad-block … 汎用の見出し付きブロック
   ============================================================ */
.grad-block { margin-top: 64px; }
.grad-block__text {
  font-size: 16px;
  line-height: 2;
  color: var(--color-primary, #333);
  margin: 0 0 20px;
}
.grad-block__text:last-child { margin-bottom: 0; }

/* 見出し（h3=標準／--sub=h4／--label=h5）※汎用に流用可 */
.grad-heading {
  font-size: 24px;
  font-weight: 700;
  line-height: 1.5;
  color: var(--color-primary, #333);
  padding-left: 16px;
  border-left: 5px solid var(--color-blue, #2a5c8a);
  margin: 0 0 24px;
}
.grad-heading--sub {
  font-size: 20px;
  border-left-width: 4px;
  padding-left: 14px;
  margin: 44px 0 20px;
}
.grad-heading--label {
    font-size: 16px;
    color: #8d0454;
    border-left: none;
    padding: 0 0 8px;
    margin: 28px 0 14px;
    border-bottom: 2px solid #eee;
}

/* 注記（※行）※汎用 */
.grad-note {
  font-size: 14px;
  line-height: 1.9;
  color: #666;
  margin: 0 0 20px;
}
.grad-note--label {
  font-size: 16px;
  font-weight: 700;
  color: var(--color-primary, #333);
  margin: 28px 0 12px;
}
.grad-note02 {
    font-size: 14px;
    line-height: 1.9;
    color: #666;
    display: block;
}
.grad-note03 {
    font-size: 16px;
    line-height: 1.9;
    color: #ff0000;
    display: block;
    font-weight: 600;
}
/* ============================================================
   .c-fields … 3分野などの均等グリッド（汎用）
   ============================================================ */
.c-fields {
  list-style: none;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 20px;
  margin: 8px 0 0;
  padding: 0;
}
.c-fields__item {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 36px 16px;
  background: #f6f8fa;
  border-radius: 30px 0;
}
.c-fields__num {
  font-family: var(--font-en, "Helvetica Neue", Arial, sans-serif);
  font-size: 13px;
  letter-spacing: .1em;
  color: var(--color-blue, #2a5c8a);
}
.c-fields__name {
  font-size: 18px;
  font-weight: 700;
  color: var(--color-primary, #333);
}

/* ============================================================
   .c-table … 内容テーブル（汎用）
   ============================================================ */
.c-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 16px;
}
.c-table th,
.c-table td {
  border: 1px solid #e5e5e5;
  padding: 16px 20px;
  text-align: left;
  line-height: 1.7;
  vertical-align: middle;
  color: var(--color-primary, #333);
}
.c-table th {
  width: 200px;
  background: #f6f8fa;
  font-weight: 700;
  white-space: nowrap;
}

/* ============================================================
   .c-def … ラベル＋内容の定義リスト（汎用）
   ============================================================ */
.c-def {
  border-top: 1px solid #e5e5e5;
  margin: 0 0 20px;
}
.c-def__row {
  display: flex;
  gap: 24px;
  padding: 18px 4px;
  border-bottom: 1px solid #e5e5e5;
}
.c-def__label {
  flex: 0 0 160px;
  font-weight: 700;
  color: var(--color-blue, #2a5c8a);
  line-height: 1.9;
}
.c-def__body {
  flex: 1 1 auto;
  line-height: 1.9;
  color: var(--color-primary, #333);
}

/* ============================================================
   .c-feature-list … 見出し＋本文の特色リスト（汎用・2カラム）
   ============================================================ */
.c-feature-list {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 36px 40px;
}
.c-feature-list__item {
  position: relative;
  padding-top: 20px;
}
.c-feature-list__item::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 40px;
  height: 3px;
  background: var(--color-blue, #2a5c8a);
}
.c-feature-list__title {
    font-size: 18px;
    font-weight: 700;
    line-height: 1.5;
    color: #8d0454;
    margin: 0 0 10px;
}
.c-feature-list__text {
  font-size: 15px;
  line-height: 1.9;
  color: var(--color-primary, #333);
  margin: 0;
}

/* ============================================================
   .c-doc-list … 出願資格・出願書類などの番号付きリスト（汎用）
   ・原文の「1）」等の採番はそのまま本文として保持するため自動採番はしない
   ============================================================ */
.c-doc-list {
  list-style: none;
  margin: 0 0 20px;
  padding: 0;
}
.c-doc-list__item {
  padding: 16px 4px 16px 20px;
  border-bottom: 1px dashed #e0e0e0;
  border-left: 3px solid #e5eaf0;
  line-height: 1.9;
  color: var(--color-primary, #333);
}
.c-doc-list__item:first-child { border-top: 1px dashed #e0e0e0; }

/* ============================================================
   .c-note … 注意・案内のボックス（汎用）
   ============================================================ */
.c-note {
  background: #f6f8fa;
  border: 1px solid #e5e5e5;
  border-left: 4px solid var(--color-blue, #2a5c8a);
  border-radius: 0 30px 0 0;
  padding: 24px 28px;
  margin: 24px 0;
}
.c-note p {
  font-size: 15px;
  line-height: 1.9;
  color: var(--color-primary, #333);
  margin: 0;
}

/* ============================================================
   .grad-course … 課程ブロック（修士 / 博士 / 共通）
   ============================================================ */
.grad-course { margin-top: 72px; }
.grad-course__head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  flex-wrap: wrap;
  padding: 20px 28px;
  margin-bottom: 32px;
  background: var(--color-blue, #2a5c8a);
  color: #fff;
  border-radius: 30px 0;
}
.grad-course__head--sub { background: #4a4a4a; }
.grad-course__title {
  font-size: 22px;
  font-weight: 700;
  margin: 0;
  color: #fff;
}
.grad-course__badge {
  margin: 0;
  padding: 8px 18px;
  font-size: 14px;
  line-height: 1.4;
  background: rgba(255, 255, 255, .18);
  border-radius: 20px;
}
.grad-course__badge b {
  font-size: 18px;
  margin-right: 2px;
}

/* 日程などの図版 */
.grad-figure {
  margin: 0 0 20px;
}
.grad-figure img {
  display: block;
  width: 100%;
  height: auto;
}

/* 資料請求などのCTA（ボタンは既存 .c-button を流用） */
.grad-cta {
  text-align: center;
  margin: 40px 0;
}
.c-button_area{
  text-align: center;
  margin: 40px 0;
}
/* リンクは既存の本文リンク色に追従（未定義時のみ下線付与） */
.c-note a { color: var(--color-blue, #2a5c8a); }

/* ============================================================
   SP（既存ブレイクポイント 767px に準拠）
   ============================================================ */
@media (max-width: 767px) {
  .grad-section { margin-top: 56px; }

  .c-anchor-nav { gap: 8px; margin-bottom: 40px; }
  .c-anchor-nav__item { padding: 11px 18px; font-size: 14px; }

  .c-lead__title { font-size: 22px; }
  .c-lead__text { line-height: 2; }

  .grad-heading { font-size: 20px; }
  .grad-heading--sub { font-size: 18px; margin-top: 36px; }

  .c-fields { grid-template-columns: 1fr; gap: 12px; }
  .c-fields__item { padding: 24px 16px; }

  .c-def__row { flex-direction: column; gap: 4px; padding: 16px 4px; }
  .c-def__label { flex-basis: auto; }

  .c-table { font-size: 15px; }
  .c-table th, .c-table td { display: block; width: auto; white-space: normal; }
  .c-table th { border-bottom: none; }

  .c-feature-list { grid-template-columns: 1fr; gap: 28px; }

  .c-note { padding: 20px; }

  .grad-course { margin-top: 48px; }
  .grad-course__head { padding: 16px 20px; }
  .grad-course__title { font-size: 19px; }
}




/* ========================================
   WordPress 投稿画像・旧エディター対応
======================================== */

/* 画像の基本設定 */
.entry-content img {
    max-width: 100%;
    height: auto;
}

/* 左寄せ */
.entry-content .alignleft {
    float: left;
    margin: 0 24px 16px 0;
}

/* 右寄せ */
.entry-content .alignright {
    float: right;
    margin: 0 0 16px 24px;
}

/* 中央寄せ */
.entry-content .aligncenter {
    display: block;
    margin: 0 auto 16px;
}

/* 寄せ指定なし */
.entry-content .alignnone {
    display: block;
    margin: 0 0 16px;
}

/* リンク付き画像 */
.entry-content a img {
    display: block;
}

/* 回り込み解除 */
.entry-content::after {
    display: block;
    clear: both;
    content: "";
}

/* ========================================
   画像キャプション
======================================== */

.entry-content .wp-caption {
    max-width: 100%;
    margin-bottom: 24px;
}

.entry-content .wp-caption img {
    display: block;
    width: 100%;
    height: auto;
}

.entry-content .wp-caption-text {
    margin: 8px 0 0;
    color: #666;
    font-size: 13px;
    line-height: 1.6;
    text-align: center;
}

/* キャプション付き画像の配置 */
.entry-content .wp-caption.alignleft {
    margin: 0 24px 16px 0;
}

.entry-content .wp-caption.alignright {
    margin: 0 0 16px 24px;
}

.entry-content .wp-caption.aligncenter {
    margin: 0 auto 24px;
}

.entry-content h2 {
    margin-bottom: 16px;
    border-bottom: 1px solid #ccc;
    padding-bottom: 8px;
}
.entry-content h3 {
    font-weight: bold;
    margin-bottom: 16px;
}
.entry-content a {
    color: #0000ff;
    text-decoration: underline;
    overflow-wrap: break-word;
}



/* ========================================
   スマートフォン
======================================== */

@media screen and (max-width: 767px) {
    .entry-content .alignleft,
    .entry-content .alignright,
    .entry-content .wp-caption.alignleft,
    .entry-content .wp-caption.alignright {
        float: none;
        display: block;
        margin: 0 auto 20px;
    }
.entry-content h2 {
    font-size: 22px;
    line-height: 1.5;
}
.entry-content h3 {
    font-size: 18px;
    line-height: 1.4;
}
}



/* ============================================================
   教職課程（Teacher Training Course / teacher-training-course.php）
   ------------------------------------------------------------
   ・既存の汎用パーツを最大限流用: .section-title / .c-anchor-nav /
     .c-doc-list / .c-table / .c-note / .info-card(-group) / .c-button
   ・新規追加は以下のみ（本ページ専用の枠・段落・キャプションのみ）
       .teacher / .teacher__inner / .teacher a / .teacher-text /
       .teacher .c-table caption
   ・命名規則・余白・色・border-radius・breakpoint は既存コンポーネント
     （.grad__inner / .grad a / .grad-block__text 等）に準拠
   ・左青帯オフセット（margin-left: var(--side-bg-width-pc)）と
     セクション下余白（padding-bottom）は既存 .row_page section {} が
     付与するため、ここでは指定していません
   ・style.css 本体は変更せず、本ファイルを style.css の末尾（もしくは
     header.php の <link rel="stylesheet" href=".../css/style.css"> の
     直後）に追加で読み込んでください
   ============================================================ */

/* 本文コンテンツ幅は共通の .row_page_inner に統一済み（旧 .teacher__inner は削除） */

/* アンカー到達時のヘッダー被り回避（id を持つセクションすべて） */
.teacher {
  scroll-margin-top: 96px;
}

/* 本文中のテキストリンク（既存 .grad a と同じ規約） */
.teacher a {
  color: var(--color-blue, #2a5c8a);
}

/* 独立した本文段落（info-card の外で使用。既存 .grad-block__text 相当） */
.teacher-text {
  font-size: 16px;
  line-height: 2;
  color: var(--color-primary, #333);
  margin: 0 0 32px;
}

/* テーブルキャプション（「1年生」など、表の対象学年を示す小見出し） */
.teacher .c-table caption {
  caption-side: top;
  text-align: left;
  font-size: 16px;
  font-weight: 700;
  color: var(--color-primary, #333);
  margin: 0 0 12px;
}

/* ============================================================
   SP（既存ブレイクポイント 767px に準拠）
   ============================================================ */
@media (max-width: 767px) {
  .teacher-text {
    margin: 0 0 24px;
  }
}