@charset "UTF-8";
/* ============================================================
   event.css — イベント一覧・詳細
   common.css の後に読み込む前提。
   ============================================================ */

/* 一覧は KV を全幅で敷くので、共通の上余白を打ち消す */
.l-main--flush{padding-top:0 !important}

/*
 * ページ末尾がお問い合わせセクション（.cta）で終わるページ用。
 * .cta が自前で上下の余白を持っているため、main 側の下余白を残すと
 * フッターとの間に二重の空きができる。
 */
.l-main--flush-bottom{padding-bottom:0 !important}

/* ============================================================
   KV エリア
   ============================================================ */
.ev-kv{padding-top:clamp(60px,8vw,80px)}
.ev-kv__inner{
  display:grid;gap:clamp(24px,4vw,40px);align-items:center;
  max-width:1320px;margin-inline:auto;padding-inline:var(--gut);
  padding-block:clamp(28px,5vw,56px);
}
@media (min-width:900px){
  .ev-kv__inner{grid-template-columns:1fr 1.15fr;gap:clamp(32px,5vw,64px)}
}
.ev-kv__title{
  font-size:clamp(1.7rem,4.4vw,2.6rem);font-weight:700;
  letter-spacing:.04em;line-height:1.4;
}
.ev-kv__lead{margin-top:1em;font-size:.95rem;color:var(--ink-2);line-height:1.9}
.ev-kv__visual img{
  width:100%;aspect-ratio:5/2;object-fit:cover;border-radius:4px;
}

/* ============================================================
   学科での絞り込み
   ============================================================ */
/* 日付チップと同じ幅・同じ左右余白に揃える */
.ev-targets{
  max-width:var(--wrap);margin-inline:auto;padding-inline:var(--gut);
  padding-bottom:clamp(28px,4vw,52px);
}
.ev-targets__list{
  display:grid;grid-template-columns:repeat(2,1fr);
  border-top:1px solid var(--line);border-left:1px solid var(--line);
}
@media (min-width:760px){
  .ev-targets__list{grid-template-columns:repeat(4,1fr)}
}
.ev-targets__item{border-right:1px solid var(--line);border-bottom:1px solid var(--line)}
.ev-targets__link{
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.9em;
  height:100%;padding:clamp(22px,3vw,34px) 1em;
  text-align:center;transition:background-color .25s,color .25s;
}
.ev-targets__link:hover{background:var(--blue-050)}
.ev-targets__link.is-current{background:var(--ink);color:#fff}
.ev-targets__icon{width:auto;height:clamp(38px,5vw,48px);object-fit:contain}
.ev-targets__link.is-current .ev-targets__icon{filter:invert(1) brightness(2)}
.ev-targets__label{
  font-size:clamp(.78rem,1.8vw,.92rem);font-weight:700;line-height:1.5;
}

/* ============================================================
   開催形式タブ
   ============================================================ */
.ev-formats{
  display:grid;grid-template-columns:1fr 1fr;
  max-width:var(--wrap);margin:0 auto;
  border-bottom:1px solid var(--line);
}
.ev-formats__item{
  display:flex;align-items:center;justify-content:center;gap:.7em;
  min-height:64px;padding:.8em 1em;text-align:center;
  font-weight:700;font-size:clamp(.85rem,2vw,1rem);
  background:#f2f4f6;color:var(--gray);
  transition:background-color .25s,color .25s;
}
.ev-formats__item:hover{background:#e8ecef;color:var(--ink-2)}
.ev-formats__item.is-current{background:var(--ink);color:#fff}
.ev-formats__icon{
  width:clamp(22px,3vw,28px);height:clamp(22px,3vw,28px);flex:0 0 auto;
  fill:none;stroke:currentColor;stroke-width:1.6;
  stroke-linecap:round;stroke-linejoin:round;
}

/* ============================================================
   日付チップ
   ============================================================ */
.ev-days{
  display:flex;gap:.6em;overflow-x:auto;
  max-width:var(--wrap);margin:0 auto;
  padding:clamp(18px,3vw,26px) var(--gut);
  scrollbar-width:thin;
}
.ev-day{
  flex:0 0 auto;display:flex;flex-direction:column;align-items:center;justify-content:center;
  min-width:76px;min-height:60px;padding:.5em .9em;
  border:1.5px solid var(--line);border-radius:999px;background:#fff;
  line-height:1.25;transition:background-color .25s,border-color .25s,color .25s;
}
.ev-day:hover{border-color:var(--blue-300)}
.ev-day.is-current{background:var(--ink);border-color:var(--ink);color:#fff}
.ev-day__all{font-size:.78rem;font-weight:700;text-align:center}
.ev-day__date{font-size:1.05rem;font-weight:700;letter-spacing:.02em}
.ev-day__wd{font-size:.66rem;color:var(--gray)}
.ev-day.is-current .ev-day__wd{color:rgba(255,255,255,.75)}
.ev-day__wd--sun{color:#d8455f}
.ev-day__wd--sat{color:#2b6fd0}

/* ============================================================
   一覧レイアウト
   ============================================================ */
/*
 * 下余白はコンテナ側に持たせる。ページ送りに付けていると、
 * 該当イベントが0件でページ送りが出ないときに余白ごと消えてしまう。
 */
.ev-archive{padding-top:clamp(28px,4vw,44px);padding-bottom:clamp(56px,8vw,100px)}
.ev-archive__head{margin-bottom:clamp(28px,4vw,44px)}
.ev-archive__title{
  font-size:clamp(1.5rem,3.6vw,2.2rem);font-weight:400;
  letter-spacing:.04em;line-height:1.5;
}
.ev-archive__lead{margin-top:.6em;font-size:.85rem;color:var(--gray)}

.ev-archive__body{display:grid;gap:clamp(28px,4vw,48px)}
@media (min-width:900px){
  .ev-archive__body{grid-template-columns:260px 1fr;align-items:start}
}

/* ---------- サイドナビ ---------- */
.ev-side__list{display:grid}
.ev-side__item{
  display:flex;align-items:center;justify-content:space-between;gap:1em;
  padding:1.1em .2em;border-bottom:1px solid var(--line);
  font-size:.92rem;font-weight:700;color:var(--ink-2);
  transition:color .25s;
}
.ev-side__item::after{
  content:"";width:7px;height:7px;flex:0 0 auto;
  border-top:1.5px solid currentColor;border-right:1.5px solid currentColor;
  transform:rotate(45deg);
}
.ev-side__item:hover{color:var(--blue-700)}
.ev-side__item.is-current{
  color:var(--blue-800);
  border-bottom:2px solid var(--blue-700);
}

/* ============================================================
   カード
   ============================================================ */
.ev-list{display:grid;gap:clamp(28px,4vw,44px)}
.ev-card{
  display:grid;gap:clamp(16px,2.5vw,28px);
  padding-bottom:clamp(28px,4vw,44px);border-bottom:1px solid var(--line);
}
@media (min-width:640px){
  .ev-card{grid-template-columns:220px 1fr;align-items:start}
}
.ev-card:last-of-type{border-bottom:0}
.ev-card--closed{opacity:.62}

.ev-card__visual{
  display:block;overflow:hidden;border-radius:8px;
  background:var(--blue-050);aspect-ratio:4/3;
}
.ev-card__visual img{width:100%;height:100%;object-fit:cover}
.ev-card__noimage{
  display:flex;align-items:center;justify-content:center;height:100%;
  font-size:.72rem;letter-spacing:.1em;color:var(--gray);
}

.ev-card__body{min-width:0}
.ev-card__when{display:grid;gap:.25em;margin-bottom:.7em}
.ev-card__when-row{display:flex;gap:.8em;align-items:baseline;font-size:.86rem}
.ev-card__when-row dt{
  flex:0 0 auto;font-size:.72rem;font-weight:700;
  color:#d8455f;letter-spacing:.08em;
}
.ev-card__when-row dd{margin:0;line-height:1.7}
.ev-card__timenote{color:var(--gray);font-size:.8rem}
/* 繰り返しイベントの注記。日付の直後に続けて置き、折り返しても読める大きさにする */
.ev-card__recur{color:var(--gray);font-size:.78rem;display:inline-block}

.ev-card__title{
  font-size:clamp(1.15rem,2.6vw,1.5rem);font-weight:700;
  line-height:1.5;margin-bottom:.5em;
}
.ev-card__title a:hover{color:var(--blue-700)}

.ev-card__cat{margin-bottom:.7em;font-size:.82rem}
.ev-card__cat a{text-decoration:underline;text-underline-offset:3px;color:var(--ink-2)}
.ev-card__cat a:hover{color:var(--blue-700)}

.ev-card__excerpt{
  margin-top:.9em;font-size:.86rem;line-height:1.9;color:var(--ink-2);
}

.ev-card__actions{
  display:flex;flex-wrap:wrap;gap:.8em;margin-top:1.3em;
}

/* ---------- 対象学科タグ ---------- */
.ev-tags{display:flex;flex-wrap:wrap;gap:.4em}
.ev-tag{
  font-size:.7rem;font-weight:700;line-height:1.5;
  padding:.32em .9em;border-radius:999px;
  background:var(--tag,var(--blue-500));color:#fff;
}

/* ---------- ボタン ---------- */
.ev-btn{
  display:inline-flex;align-items:center;justify-content:center;
  min-height:52px;padding:0 1.8em;border-radius:999px;
  font-size:.88rem;font-weight:700;letter-spacing:.04em;text-align:center;
  transition:background-color .25s,color .25s,border-color .25s,transform .25s;
}
.ev-btn--ghost{border:1.5px solid var(--ink);color:var(--ink)}
.ev-btn--ghost:hover{background:var(--ink);color:#fff}
.ev-btn--solid{background:var(--ink);color:#fff}
.ev-btn--solid:hover{background:var(--blue-800);transform:translateY(-2px)}
.ev-btn--disabled{
  background:#e5e9ec;color:var(--gray);cursor:not-allowed;
}
.ev-btn--lg{min-height:60px;padding:0 2.6em;font-size:.95rem}

.ev-empty{padding:3em 0;color:var(--gray);text-align:center}

/* ---------- ページ送り ---------- */
.ev-pager{
  display:flex;justify-content:center;gap:.5em;
  margin-top:clamp(32px,4vw,52px);
}
.ev-pager .page-numbers{
  display:inline-flex;align-items:center;justify-content:center;
  min-width:44px;min-height:44px;padding:0 .8em;border-radius:8px;
  border:1px solid var(--line);font-size:.88rem;font-weight:700;color:var(--ink-2);
}
.ev-pager .page-numbers:hover{border-color:var(--blue-300)}
.ev-pager .page-numbers.current{background:var(--ink);border-color:var(--ink);color:#fff}

/* ============================================================
   詳細
   ============================================================ */
.ev-single{padding-top:clamp(28px,4vw,52px)}
.ev-single__head{display:grid;gap:clamp(24px,4vw,48px)}
@media (min-width:900px){
  .ev-single__head{grid-template-columns:minmax(0,420px) 1fr;align-items:start}
}
.ev-single__visual img{width:100%;border-radius:8px}
.ev-single__summary{min-width:0}
.ev-single__title{
  font-size:clamp(1.4rem,3.2vw,1.9rem);font-weight:700;
  line-height:1.5;margin:.3em 0 .7em;
}
.ev-single__body{margin:1.6em 0;font-size:.92rem;line-height:2}
.ev-single__body p{margin-bottom:1.2em}
.ev-single__dl{margin-top:1.8em}
.ev-single__dl .dl__row--full{grid-template-columns:1fr}
.ev-single__annotation{margin-top:1.2em;font-size:.76rem;color:var(--gray)}

/* MAP（「MAPを表示」が ON のイベントだけ出る） */
.ev-map{
  margin-top:1.6em;border-radius:8px;overflow:hidden;
  border:1px solid var(--line);background:#f2f4f6;
}
.ev-map iframe{display:block;border:0;width:100%}

/* 複数日程のリスト（表示のみ。日程の選択は申込みフォーム側で行う） */
.ev-dates{display:grid;gap:.3em}
.ev-dates__item{padding-left:1.1em;position:relative;line-height:1.8}
.ev-dates__item::before{
  content:"";position:absolute;left:0;top:.72em;
  width:5px;height:5px;border-radius:50%;background:var(--blue-300);
}

/* 当日のスケジュール */
.ev-schedule{background:#f2f4f6;border-radius:8px;padding:1.4em 1.6em}
.ev-schedule__h{
  font-size:.82rem;font-weight:700;color:#d8455f;
  letter-spacing:.06em;margin-bottom:.9em;
}
.ev-schedule__list{display:grid;gap:.45em;font-size:.86rem}
.ev-schedule__list li{display:flex;gap:.9em}
.ev-schedule__time{flex:0 0 auto;min-width:5em;color:var(--ink-2)}

/* 補足パネル。本文とリンクは行を分けて中央揃え */
.ev-promo{
  background:#f2f4f6;border-radius:8px;
  margin-top:clamp(32px,5vw,56px);padding:clamp(28px,5vw,56px) var(--gut);
  text-align:center;font-size:.92rem;line-height:1.9;
}
.ev-promo__text{text-align:center}
.ev-promo__link{margin-top:.7em;text-align:center}
.ev-promo a{font-weight:700}

/* 繰り返しイベントの注意書き */
.ev-dates__note{margin-top:.7em;font-size:.78rem;color:var(--gray);line-height:1.7}

.ev-single__cta{
  display:flex;flex-direction:column;align-items:center;gap:1.2em;
  margin-top:clamp(36px,5vw,64px);
  /* 下のセクションと詰まらないよう余白を確保する */
  margin-bottom:clamp(48px,7vw,88px);
}
/* 申込みボタン。フォームのみ・LINEのみ・両方のいずれでも中央に揃う */
.ev-apply{display:flex;flex-wrap:wrap;justify-content:center;gap:.9em}
.ev-btn--line{background:#06c755;color:#fff}
.ev-btn--line:hover{background:#05b34c;transform:translateY(-2px)}
.ev-single__closed{color:#d8455f;font-weight:700;font-size:.95rem}
.ev-single__back{font-size:.85rem}
.ev-single__back a{text-decoration:underline;text-underline-offset:3px;color:var(--gray)}
.ev-single__back a:hover{color:var(--blue-700)}
