@charset "UTF-8";
/*
    Template: swell
    Theme Name: SWELL CHILD
    Theme URI: https://swell-theme.com/
    Description: SWELLの子テーマ
    Version: 1.0.0
    Author: LOOS WEB STUDIO
    Author URI: https://loos-web-studio.com/

    License: GNU General Public License
    License URI: http://www.gnu.org/licenses/gpl.html
*/



/* =========================
   TEC 行UIのリセット（薄く）
   ========================= */
.tribe-events-calendar-list__event,
.tribe-events-calendar-list__event-row,
.tribe-events-calendar-list__event-wrapper,
.tribe-events-calendar-list__event-details{
  background:transparent!important;border:0!important;box-shadow:none!important;
  padding:0!important;display:block!important;
}

/* =========================
   Photoビュー用：イベントカード（縦レイアウト）
   ========================= */
.event-card{
  display:flex;flex-direction:column;
  width:320px;min-width:320px;height:360px;
  border:1px solid #e5e7eb;border-radius:12px;background:#fff;
  box-shadow:0 4px 12px rgba(0,0,0,.06);overflow:hidden;margin:14px 0;
}
.event-card-thumb{position:relative;width:100%;height:180px;overflow:hidden;}
.event-card-thumb img,.event-card-img{width:100%;height:100%;object-fit:cover;display:block;}
.event-card-img.ph{background:#eef2f7;}
.event-card-thumb::after{
  content:"";position:absolute;left:0;right:0;bottom:0;height:44px;
  background:linear-gradient(180deg,rgba(0,0,0,0) 0%,rgba(0,0,0,.35) 100%);pointer-events:none;
}

/* 画像左上：UMブックマーク（カード内だけアイコン表示） */
.event-card-bookmark,
.mse-card-bookmark{
  position:absolute;left:10px;top:10px;z-index:5;right:auto;
}
/* グローバルはラベル表示のまま。カード内だけラベルを隠す */
.event-card-bookmark .um-link span,
.event-card-bookmark .um-bookmark-text,
.mse-card-bookmark .um-link span,
.mse-card-bookmark .um-bookmark-text{
  display:none !important;
}
/* カード内ボタンは“アイコンのみ”の見た目に */
.event-card-bookmark .um-link,
.mse-card-bookmark .um-link{font-size:0;line-height:0;}
.event-card-bookmark .um-link i,
.event-card-bookmark .um-link svg,
.mse-card-bookmark .um-link i,
.mse-card-bookmark .um-link svg{font-size:18px;line-height:1;}
/* 既定アイコンカラー（任意） */
.um-bookmark .um-faicon-heart-o,
.um-bookmark .um-faicon-heart{font-family:"FontAwesome"!important;font-style:normal;font-weight:400;}
.um-bookmark .um-faicon-heart-o{color:#9ca3af;}
.um-bookmark.um-bookmarked .um-faicon-heart{color:#ef4444;}

/* 画像右下：カテゴリバッジ */
.event-card-categories{
  position:absolute;right:10px;bottom:10px;display:flex;gap:6px;flex-wrap:wrap;z-index:4;
}
.event-card-categories .badge{
  background:rgba(255,204,0,.92);color:#111;font-size:.75rem;padding:3px 8px;border-radius:6px;
  font-weight:700;line-height:1;
}

/* 本文 */
.event-card-content{display:flex;flex-direction:column;gap:6px;padding:12px 14px;flex:1 1 auto;min-height:0;}
.event-card-title{margin:0;font-size:1rem;line-height:1.35;font-weight:700;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;}
.event-card-title a{color:inherit;text-decoration:none;}
.event-card-title a:hover{text-decoration:underline;}
.event-card-meta{margin-top:2px;display:grid;gap:4px;color:#374151;font-size:.92rem;}
.event-card-meta .meta-line{display:flex;align-items:center;gap:8px;min-height:1.2em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.event-card-actions{margin-top:auto;}
.btn-detail{display:inline-block;padding:6px 12px;background:#2563eb;color:#fff;border-radius:8px;text-decoration:none;font-size:.9rem;font-weight:600;}
.btn-detail:hover{opacity:.9;}

/* Photo ビューのグリッド */
.tribe-events-pro .tribe-events-pro-photo__events{
  display:flex!important;flex-wrap:wrap!important;justify-content:center!important;
  gap:28px 24px!important;max-width:1200px!important;margin-inline:auto!important;padding:8px 4px!important;
}
.tribe-events-pro .tribe-events-pro-photo__event{width:auto!important;margin:0!important;flex:0 0 auto!important;}
.tribe-events-pro .tribe-events-pro-photo__event .event-card{width:320px!important;}
@media (max-width:1024px){
  .tribe-events-pro .tribe-events-pro-photo__event .event-card{width:300px!important;}
}
@media (max-width:640px){
  .tribe-events-pro .tribe-events-pro-photo__events{justify-content:center!important;gap:18px 16px!important;}
  .tribe-events-pro .tribe-events-pro-photo__event .event-card{width:100%!important;}
}

/* =========================
   検索ショートコード側（mse_*）
   ========================= */
.mse-wrap{max-width:1100px;margin:0 auto}

/* フォーム */
.mse-form{display:grid;grid-template-columns:repeat(3,1fr) auto;gap:.75rem;margin:1rem 0 0}
.mse-label{display:flex;flex-direction:column;font-size:.9rem;gap:.25rem}
.mse-select{padding:.55rem;border:1px solid #d1d5db;border-radius:8px;background:#fff}
.mse-btn{display:inline-block;padding:.6rem 1rem;border-radius:10px;border:1px solid #111;background:#111;color:#fff;text-decoration:none}
.mse-btn--search{white-space:nowrap}

/* 選択中バー */
.mse-selected{margin:1rem 0;padding:.6rem .8rem;background:#f6f6f6;border-radius:8px;font-size:.95rem}
.mse-selected .mse-clear{margin-left:.5rem}

/* カードグリッド & 本体 */
.mse-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:16px;margin:1rem 0 2rem}
.mse-card{display:flex;flex-direction:column;border:1px solid #e5e7eb;border-radius:12px;background:#fff;box-shadow:0 4px 12px rgba(0,0,0,.06);overflow:hidden}
.mse-card-thumb{position:relative;width:100%;height:180px;overflow:hidden}
.mse-card-thumb img,.mse-card-img{width:100%;height:100%;object-fit:cover;display:block}
.mse-card-img.ph{background:#eef2f7}
.mse-card-body{display:flex;flex-direction:column;gap:8px;padding:12px 14px}
.mse-card-title{margin:0;font-size:1rem;line-height:1.35;font-weight:700}
.mse-card-title a{color:inherit;text-decoration:none}
.mse-card-title a:hover{text-decoration:underline}
.mse-card-meta{display:grid;gap:4px;color:#374151;font-size:.92rem}
.mse-card-act{margin-top:auto}

/* 画像左上：UMブックマーク（ショートコード側の位置） */
.mse-card-bookmark{position:absolute;left:10px;top:10px;z-index:5;}
/* 画像右下：カテゴリバッジ */
.mse-card-cats{position:absolute;right:10px;bottom:10px;display:flex;gap:6px;flex-wrap:wrap;z-index:4}
.mse-badge{background:rgba(255,204,0,.92);color:#111;font-size:.75rem;padding:3px 8px;border-radius:6px;font-weight:700;line-height:1}

/* 任意の色分け（例） */
.mse-badge.cat-交流会イベント{background:#2563eb;color:#fff}
.mse-badge.cat-ランチ会,.mse-badge.cat-ディナー会{background:#22c55e;color:#fff}
.mse-badge.cat-事務局イベント{background:#facc15;color:#111}
.mse-badge.cat-インターン募集{background:#dc2626;color:#fff}
.mse-badge.cat-説明会募集{background:#6a5acd;color:#fff}
.mse-badge.cat-その他{background:#6b7280;color:#fff}

/* =========================
   日付タイル（検索ページ共通・中央寄せ固定）
   ========================= */
.mse-date-tiles{
  position:relative;max-width:840px;margin:24px auto;padding:0 44px;
  text-align:center;display:block;
}
.mse-date-tiles .row{display:flex;gap:10px;flex-wrap:nowrap;justify-content:center!important;}
.mse-date-tiles .nav{
  position:absolute;top:50%;transform:translateY(-50%);width:28px;height:28px;
  border:1px solid #d1d5db;border-radius:8px;background:#fff;color:#111;
  text-decoration:none;display:grid;place-items:center;font-weight:600
}
.mse-date-tiles .prev{left:0}.mse-date-tiles .next{right:0}
.mse-date-tiles .tile{
  display:inline-flex;flex-direction:column;align-items:center;justify-content:center;
  width:56px;height:60px;padding:.25em .2em;border:1px solid #e5e7eb;border-radius:12px;
  background:#fff;color:#111;text-decoration:none;line-height:1.1;
  box-shadow:0 1px 3px rgba(0,0,0,.04);transition:transform .05s ease, box-shadow .15s ease, border-color .15s ease
}
.mse-date-tiles .tile:hover{transform:translateY(-1px);box-shadow:0 3px 8px rgba(0,0,0,.06)}
.mse-date-tiles .tile .d1{font-size:1rem;font-weight:700}
.mse-date-tiles .tile .d2{margin-top:2px;font-size:.72rem;opacity:.85}
.mse-date-tiles .tile.sun{color:#e11d48}
.mse-date-tiles .tile.sat{color:#2563eb}
.mse-date-tiles .tile.today{background:#111;color:#fff;border-color:#111}
@media (max-width:640px){
  .mse-date-tiles .row{flex-wrap:wrap;row-gap:8px}
  .mse-date-tiles .nav{display:none}
}

/* 旧クラス date-tiles で出る場合も中央寄せ */
.date-tiles{margin-left:auto;margin-right:auto;text-align:center;}
.date-tiles .date-tiles__row,
.date-tiles .row{display:flex;justify-content:center!important;gap:10px;}
.date-tiles .date-tiles__nav{position:absolute;top:50%;transform:translateY(-50%);}

/* =========================
   スマホ最適化：フォーム縦並び
   ========================= */
@media (max-width: 640px){
  .mse-form{
    grid-template-columns: 1fr !important; /* ドロップダウン縦積み */
  }
  .mse-btn--search{
    width:100%;
    justify-self:stretch;
  }
}

/* ===== スマホでブックマークが見えない対策 ===== */
/* ボタン自体を必ず表示・前面に */
.event-card-bookmark,
.mse-card-bookmark{
  position:absolute; left:8px; top:8px; right:auto;
  z-index: 50; /* グラデ等より前面に */
}

/* UMボタンの生成要素をスマホでも表示強制 */
.event-card-bookmark .um-bookmark,
.mse-card-bookmark .um-bookmark{
  display:inline-flex !important;
  align-items:center; justify-content:center;
  width:auto; height:auto;
}

/* 文字はカード内だけ非表示（グローバルは表示のまま） */
.event-card-bookmark .um-link span,
.mse-card-bookmark .um-link span,
.event-card-bookmark .um-bookmark-text,
.mse-card-bookmark .um-bookmark-text{
  display:none !important;
}

/* アイコンのみの見た目（スマホでも確実に） */
.event-card-bookmark .um-link,
.mse-card-bookmark .um-link{
  font-size:0 !important; line-height:0 !important;
}
.event-card-bookmark .um-link i,
.event-card-bookmark .um-link svg,
.mse-card-bookmark .um-link i,
.mse-card-bookmark .um-link svg{
  font-size:20px !important; line-height:1 !important;
}

/* 画像上オーバーレイ等に埋もれないよう、親にも stacking context を作る */
.event-card-thumb,
.mse-card-thumb{
  position:relative; z-index: 0;
}

/* ===== スマホで日付タイルが左寄りに戻る対策 ===== */
/* ラッパを中央寄せ＆幅100%でレイアウト */
.mse-date-tiles{
  margin-left:auto !important;
  margin-right:auto !important;
  text-align:center;
}
.mse-date-tiles .row{
  width:100%;
  display:flex;
  flex-wrap:wrap;
  justify-content:center !important;
  gap:10px;
}

/* 旧クラスで出るパターンも強制中央 */
.date-tiles{
  margin-left:auto !important;
  margin-right:auto !important;
  text-align:center;
}
.date-tiles .row,
.date-tiles .date-tiles__row{
  width:100%;
  display:flex;
  flex-wrap:wrap;
  justify-content:center !important;
  gap:10px;
}

/* 矢印を消している環境でも中央が崩れないように */
@media (max-width:640px){
  .mse-date-tiles .nav,
  .date-tiles .date-tiles__nav{ display:none !important; }
}

/* ===== 念のため（スマホでフォーム縦並び） ===== */
@media (max-width:640px){
  .mse-form{
    grid-template-columns: 1fr !important;
    gap: .75rem;
  }
  .mse-btn--search{ width:100%; }
}

/* ===== UMブックマーク（カード内）を常に表示・左上固定・アイコンだけ ===== */
.mse-card-thumb,
.event-card-thumb { position: relative !important; } /* 基準を必ず作る */

.mse-card-bookmark,
.event-card-bookmark{
  position: absolute !important;
  left: 8px !important;
  top: 8px !important;
  right: auto !important;
  z-index: 999 !important; /* かなり上に */
  pointer-events: auto !important;
}

/* UMのボタン本体を確実に表示（スマホで display:none されがち対策） */
.mse-card-bookmark .um-bookmark,
.event-card-bookmark .um-bookmark{
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 36px !important;
  height: 36px !important;
  border-radius: 9999px !important;
  background: rgba(0,0,0,.55) !important;  /* 視認性UP */
  color: #fff !important;
}

/* ラベルはカード内だけ非表示（グローバルは消さない） */
.mse-card-bookmark .um-link span,
.event-card-bookmark .um-link span,
.mse-card-bookmark .um-bookmark-text,
.event-card-bookmark .um-bookmark-text{
  display: none !important;
}

/* アイコンサイズを明示（font-size:0の影響を受けないように） */
.mse-card-bookmark .um-link,
.event-card-bookmark .um-link{
  font-size: 0 !important;
  line-height: 0 !important;
}
.mse-card-bookmark .um-link i,
.mse-card-bookmark .um-link svg,
.event-card-bookmark .um-link i,
.event-card-bookmark .um-link svg{
  font-size: 18px !important;
  line-height: 1 !important;
  color: #fff !important;
}

/* 端末幅が狭い時でも確実に見えるよう保険（高さが極端に小さくならないように） */
@media (max-width: 640px){
  .mse-card-thumb,
  .event-card-thumb{
    min-height: 160px !important; /* 画像が高すぎ/低すぎ問題の緩衝材。不要なら削ってOK */
  }
}

/* カード内ブックマーク：テキストを隠しても必ずハートを表示 */
.mse-card-thumb, .event-card-thumb { position: relative !important; }

.mse-card-bookmark, .event-card-bookmark{
  position: absolute !important;
  left: 8px !important; top: 8px !important; right: auto !important;
  z-index: 9999 !important;
  pointer-events: auto !important;
}

/* ボタンの器は常に表示 */
.mse-card-bookmark .um-bookmark,
.event-card-bookmark .um-bookmark{
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  min-width: 36px !important;
  min-height: 36px !important;
  border-radius: 9999px !important;
  background: rgba(0,0,0,.55) !important; /* 視認性UP */
  color: #fff !important;
}

/* カード内はラベルを隠す */
.mse-card-bookmark .um-link span,
.event-card-bookmark .um-link span,
.mse-card-bookmark .um-bookmark-text,
.event-card-bookmark .um-bookmark-text{
  display: none !important;
}

/* ← テキストを隠しても “擬似アイコン” を必ず描画 */
.mse-card-bookmark .um-link::before,
.event-card-bookmark .um-link::before{
  content: "\f08a";                 /* FontAwesome: heart-o あたり（環境に合わせて）*/
  font-family: "FontAwesome";       /* UM 同梱の FA を利用 */
  font-weight: 400;
  font-style: normal;
  font-size: 18px;
  line-height: 1;
  color: #fff;
}

/* UM がアイコン <i> を出している場合はこちらを優先 */
.mse-card-bookmark .um-link i,
.mse-card-bookmark .um-link svg,
.event-card-bookmark .um-link i,
.event-card-bookmark .um-link svg{
  font-size: 18px !important;
  line-height: 1 !important;
  color: #fff !important;
}

/* ==== カードの画像上にハートを常に表示（スマホでも） ==== */
.mse-card-thumb,
.event-card-thumb{
  position: relative !important;   /* 絶対配置の基準にする */
  overflow: visible !important;
}

.mse-card-bookmark,
.event-card-bookmark{
  position: absolute !important;
  left: 8px !important;
  top: 8px !important;
  right: auto !important;
  z-index: 1000 !important;        /* 何が来ても最前面に */
  display: block !important;
  pointer-events: auto !important;
}

/* UM のボタン本体を必ず表示（スマホで display:none される対策） */
.mse-card-bookmark .um-bookmark,
.event-card-bookmark .um-bookmark{
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 36px !important;
  height: 36px !important;
  border-radius: 9999px !important;
  background: rgba(0,0,0,.55) !important;  /* 視認性UP */
  color: #fff !important;
}

/* カード内は “アイコンのみ” にする（サイト全体のラベルは消さない） */
.mse-card-bookmark .um-link span,
.event-card-bookmark .um-link span,
.mse-card-bookmark .um-bookmark-text,
.event-card-bookmark .um-bookmark-text{
  display: none !important;
}
.mse-card-bookmark .um-link,
.event-card-bookmark .um-link{ font-size:0 !important; line-height:0 !important; }
.mse-card-bookmark .um-link i,
.mse-card-bookmark .um-link svg,
.event-card-bookmark .um-link i,
.event-card-bookmark .um-link svg{
  font-size:18px !important; line-height:1 !important; color:#fff !important;
}

/* ==== 日付タイルを常に中央寄せ（PC/スマホ共通） ==== */
.mse-date-tiles,
.date-tiles{ display:block !important; text-align:center !important; margin-left:auto !important; margin-right:auto !important; }
.mse-date-tiles .row,
.date-tiles .row,
.date-tiles .date-tiles__row{ display:flex !important; justify-content:center !important; gap:10px !important; }

@media (max-width:640px){
  .mse-date-tiles .row,
  .date-tiles .row,
  .date-tiles .date-tiles__row{ flex-wrap:wrap !important; justify-content:center !important; }
  .mse-date-tiles .nav,
  .date-tiles .date-tiles__nav{ display:none !important; }
}

/* ==== 検索フォームはスマホで縦並び ==== */
@media (max-width:640px){
  .mse-form{ grid-template-columns:1fr !important; gap:.75rem !important; }
  .mse-btn--search{ width:100% !important; }
}

/* 画像よりブックマークアイコンを前面に */
.mse-card-thumb{ position: relative; }

.mse-card-thumb img,
.mse-card-img{
  position: relative;         /* 画像は z-index:1 */
  z-index: 1;
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.mse-card-bookmark{
  position: absolute;         /* アイコンは右上固定 */
  right: 10px;
  top: 10px;
  z-index: 9;                 /* 画像(1)より前面 */
  pointer-events: auto;
}

/* 見た目（任意。押しやすく） */
.mse-um-icon{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 34px;
  height: 34px;
  border-radius: 999px;
  background: #fff;
  border: 1px solid #e5e7eb;
  box-shadow: 0 2px 6px rgba(0,0,0,.08);
}
.mse-um-icon.is-on{
  background: #ffe4e6;
  border-color: #fb7185;
}

/* 画像ブロックは一段低い */
.mse-card       { position: relative; }
.mse-card-thumb { position: relative; z-index: 1; overflow: hidden; }
.mse-card-thumb img,
.mse-card-img   { position: relative; z-index: 1; display:block; width:100%; height:100%; object-fit:cover; }

/* サムネのグラデーション等があっても画像の上だけ（本文より下） */
.mse-card-thumb::before,
.mse-card-thumb::after { z-index: 2; pointer-events: none; }

/* タイトル・本文は常に前面 */
.mse-card-body  { position: relative; z-index: 5; background:#fff; }

/* 右上ハート（ブックマーク）は最前面 */
.mse-card-bookmark { position:absolute; top:10px; right:10px; z-index: 9; }

/* スマホでも日付タイルの矢印を表示する */
@media (max-width:640px){
  .mse-date-tiles { padding: 0 44px !important; } /* 矢印の置き場確保 */
  .mse-date-tiles .nav,
  .date-tiles .date-tiles__nav{
    display: grid !important;          /* 非表示を打ち消し */
    place-items: center !important;
  }
}

/* 浮遊ハートを完全に隠す */
.mse-fav-float{ display:none !important; }


.mse-btn-back {
  display:inline-block;
  padding:.5rem 1rem;
  background:#111;
  color:#fff;
  border-radius:8px;
  text-decoration:none;
  font-weight:600;
}
.mse-btn-back:hover {
  opacity:.85;
}

.mse-btn { display:inline-block; padding:.5em .9em; border-radius:4px; font-size:14px; }
.mse-btn--danger { background:#d33; color:#fff; border:none; }
.mse-btn--danger:hover { opacity:.9; }
.mse-alert { padding:.6em .9em; border-radius:4px; margin:0 0 12px; }
.mse-alert--success { background:#e6ffec; color:#046c2e; }


.mse-form--grid4{
  display:grid;
  grid-template-columns:repeat(4, minmax(180px, 1fr));
  gap:10px 12px;
  align-items:end;
}
/* 並び順を3列目2行目、検索ボタンを4列目2行目へ */
.mse-form--grid4 .mse-field-sort{ grid-column:3; grid-row:2; }
.mse-form--grid4 .mse-btn--search{ grid-column:4; grid-row:2; }

@media (max-width:768px){
  .mse-form--grid4{ grid-template-columns:1fr 1fr; }
  .mse-form--grid4 .mse-field-sort,
  .mse-form--grid4 .mse-btn--search{
    grid-column:1 / span 2; grid-row:auto;
  }
}

/* イベント情報カードの時間の横並び */
.mse-event-meta .val .mse-time-start,
.mse-event-meta .val .mse-time-end {
  white-space: nowrap;
}

.mse-event-meta .val {
  display: flex;
  gap: 1.5rem;      /* ← ここで「空白」を確保（お好みで調整） */
  align-items: center;
  flex-wrap: wrap;  /* 画面が狭い時は折り返し */
}

@media (max-width: 480px) {
  .mse-event-meta .val { gap: .5rem; }
}

/* 日時の行 */
.mse-datetime-row { /* 既存 inline のままでOK。外すならここに同じ指定を記載 */ }

/* 「~」をど真ん中に */
.mse-datetime-row .mse-tilde{
  display:flex;
  align-items:center;     /* 縦中央 */
  justify-content:center; /* 横中央 */
  align-self:center;      /* グリッドの縦中央 */
  justify-self:center;    /* グリッドの横中央 */
  height:100%;
  padding:0 .25rem;
  font-weight:700;
  opacity:.85;
  line-height:1;
}

/* スマホ2列時に中央に独立表示したい場合（任意） */
@media (max-width:640px){
  .mse-datetime-row .mse-tilde{
    grid-column:1 / -1;
    margin:.1rem 0;
  }
}

/* 日時の行 */
.mse-datetime-row { /* 既存 inline のままでOK。外すならここに同じ指定を記載 */ }

/* 「~」をど真ん中に */
.mse-datetime-row .mse-tilde{
  display:flex;
  align-items:center;     /* 縦中央 */
  justify-content:center; /* 横中央 */
  align-self:center;      /* グリッドの縦中央 */
  justify-self:center;    /* グリッドの横中央 */
  height:100%;
  padding:0 .25rem;
  font-weight:700;
  opacity:.85;
  line-height:1;
}

/* スマホ2列時に中央に独立表示したい場合（任意） */
@media (max-width:640px){
  .mse-datetime-row .mse-tilde{
    grid-column:1 / -1;
    margin:.1rem 0;
  }
}