/* ===========================================
   MONOSASHI — 全国のDX・IT・AIイベント
   構図の核 = 日付。2か月ぶんのカレンダーで当たりをつけ、下の年表で中身を読む。
   =========================================== */

/* ---- 見出し ---- */
.evhead{padding:52px 0 26px;}
.evhead__crumb{font-size:12.5px;color:var(--ink-4);font-weight:700;margin-bottom:14px;}
.evhead__crumb a:hover{color:var(--brand);}
.evhead h1{font-size:clamp(28px,4vw,44px);line-height:1.26;letter-spacing:-.01em;}
.evhead p{margin-top:14px;color:var(--ink-2);font-size:15px;}

/* ---- カレンダー（検索パネルの中に置く。日付も絞り込みの一つ） ---- */
.evcal__hd{display:flex;align-items:center;gap:12px;margin-bottom:10px;}
.evcal__nav{margin-left:auto;display:flex;align-items:center;gap:5px;}
.evcal__btn{width:28px;height:28px;border:0;border-radius:50%;background:none;
  display:grid;place-items:center;color:var(--ink-3);padding:0;}
.evcal__btn:hover:not(:disabled){background:var(--bg-2);color:var(--ink);}
.evcal__btn:disabled{opacity:.25;cursor:default;}
.evcal__today{height:28px;padding:0 12px;border:0;border-radius:var(--r-pill);
  background:none;font:inherit;font-size:12px;font-weight:800;color:var(--ink-3);}
.evcal__today:hover{background:var(--bg-2);color:var(--ink);}

/* 月の数は JS が幅で決めて --cal-n に入れる。ここは受け取った数だけ横に割る。
   固定幅で並べていたときは、右に中途半端な余白が残っていた。 */
.evcal__months{display:grid;grid-template-columns:repeat(var(--cal-n,3),minmax(0,1fr));gap:22px 28px;}
.evcal__m{min-width:0;}
.evcal__mt{font-size:13.5px;font-weight:800;color:var(--ink-2);margin-bottom:8px;letter-spacing:.01em;}
.evcal__grid{display:grid;grid-template-columns:repeat(7,1fr);gap:3px;}
.evcal__w{font-size:10.5px;font-weight:700;color:var(--ink-4);text-align:center;padding-bottom:6px;}
.evcal__w.sun{color:#DC8080;}
.evcal__w.sat{color:#7FA0DC;}

/* 当たり判定はマス全体。色が変わる丸はその内側に描くので、押せる範囲と光る範囲が一致する。
   （丸そのものをボタンにしていたときは、丸の外を押しても反応せず、
     丸が列幅いっぱいに広がって隣や左端とぶつかって見えていた） */
.evcal__d{position:relative;width:100%;aspect-ratio:1;border:0;background:none;padding:6px 0 0;
  font:inherit;font-family:var(--mono);font-size:14px;font-weight:600;color:var(--line-2);
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;line-height:1;}
.evcal__d::before{content:"";position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);
  width:min(84%,42px);aspect-ratio:1;border-radius:50%;}
.evcal__d > span{position:relative;}
.evcal__d:disabled{cursor:default;}
.evcal__d.has{color:var(--ink);font-weight:800;cursor:pointer;}
.evcal__d.has:not(.on):hover::before{background:var(--bg-2);}
.evcal__d.today{color:var(--brand);}
.evcal__d.today::after{content:"";position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);
  width:min(84%,42px);aspect-ratio:1;border-radius:50%;border:1.5px solid var(--brand);opacity:.35;}
.evcal__d.on{color:#fff;}
.evcal__d.on::before,.evcal__d.on:hover::before{background:var(--brand);}
.evcal__d.on::after{display:none;}
.evcal__d.on .evcal__dots i{background:#fff;}
.evcal__dots{display:flex;gap:2px;height:3px;}
.evcal__dots i{width:3px;height:3px;border-radius:50%;background:var(--brand);display:block;opacity:.85;}

/* ---- 絞り込み（補助金ページの検索パネルと同じ作り） ---- */
.evfilter{box-shadow:none;}   /* 枠線と影の二重掛けをやめる */
.evfilter .catpill .ic{display:none;}
.evfilter .catpill{cursor:pointer;}
.evfilter .catrow--pref{margin-top:9px;}
.evfilter .catpill--sub{font-size:12.5px;height:34px;padding:0 13px;background:#FAFAFC;}
.evfilter .catpill--sub.is-active{background:var(--ink);border-color:var(--ink);color:#fff;}
/* いま選んでいる条件では0件になるピル。押せるままにして、条件を外せるようにしておく。 */
.evfilter .catpill.is-zero{opacity:.38;}
.evfilter .catpill.is-zero.is-active{opacity:1;}

/* ---- 一覧見出し ---- */
.evlisthd{display:flex;align-items:baseline;gap:14px;padding:30px 0 4px;flex-wrap:wrap;}
.evlisthd h2{font-size:20px;}
.evlisthd__n{font-family:var(--mono);font-size:13px;font-weight:800;color:var(--ink-3);}
.evlisthd__clear{margin-left:auto;font-size:12.5px;font-weight:800;color:var(--brand);
  border:0;background:none;padding:6px 0;}
.evlisthd__clear:hover{text-decoration:underline;}

/* ---- 年表 ---- */
.evtl{padding:4px 0 70px;}
.evmonth{display:flex;align-items:baseline;gap:12px;padding:30px 0 9px;border-bottom:2px solid var(--ink);}
.evmonth__y{font-family:var(--mono);font-size:12.5px;font-weight:800;color:var(--ink-4);letter-spacing:.06em;}
.evmonth__m{font-family:var(--mono);font-size:clamp(26px,3.4vw,36px);font-weight:800;line-height:1;letter-spacing:-.02em;}
.evmonth__n{margin-left:auto;font-size:12.5px;font-weight:800;color:var(--ink-3);}

.evrow{display:grid;grid-template-columns:164px minmax(0,1fr);gap:0 30px;
  padding:24px 0;border-bottom:1px solid var(--line);align-items:start;}
.evrow:hover{background:#FBFBFE;}

/* 日付はこの一覧の背骨。列を広く取って、数字を大きく置く。 */
.evrow__date{padding-top:2px;}
/* 日付は詰めずに開く。実物の催事サイトはどこも字間をプラスに振っている。 */
.evrow__d{font-family:var(--mono);font-size:21px;font-weight:700;letter-spacing:.02em;
  line-height:1.45;color:var(--ink);}
.evrow__d .to{display:block;}
.evrow__d em{font-style:normal;font-weight:400;color:var(--ink-4);margin-right:3px;}
.evrow__w{margin-top:7px;font-size:12px;font-weight:800;color:var(--ink-3);letter-spacing:.02em;}
.evrow__w.now{color:#C22F33;}   /* 開催中＝いま。分類の色とは分ける */

.evrow__name{font-size:18.5px;font-weight:900;line-height:1.52;}
.evrow__name a:hover{color:var(--brand);text-decoration:underline;text-underline-offset:3px;}
.evrow__where{margin-top:8px;font-size:13.5px;font-weight:700;color:var(--ink-2);}
.evrow__where .pref{color:var(--ink-4);font-weight:500;margin-left:10px;}
/* 本文は 400。青みの薄いグレーだと沈むので、中立に寄せた濃さにする。 */
.evrow__sum{margin-top:9px;font-size:13.5px;font-weight:400;color:#4A4E5A;line-height:1.85;
  letter-spacing:.01em;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;}

/* 費用・規模・出展・主催は、囲まずに1行の文で置く。色は状態にだけ使う。 */
.evrow__meta{margin-top:13px;padding-top:11px;border-top:1px solid var(--line);
  font-size:12.5px;font-weight:500;color:var(--ink-3);line-height:1.9;letter-spacing:.01em;}
.evrow__meta > span{display:inline;}
.evrow__meta > span + span::before{content:"／";color:var(--line-2);margin:0 9px;}
.evrow__meta .fee{color:var(--ink-2);font-weight:700;}
.evrow__meta .num{font-family:var(--mono);font-weight:800;color:var(--ink-2);}
.evrow__meta .cat{color:var(--brand);font-weight:800;}      /* 種類＝分類。色で拾えるようにする */
.evrow__meta .exh{color:#B4530F;font-weight:800;}          /* 出展募集＝行動。分類とは別の色 */
.evrow__meta .org{color:var(--ink-4);}

.evempty{padding:64px 0;text-align:center;}
.evempty b{display:block;font-size:18px;font-weight:900;margin-bottom:8px;}
.evempty p{color:var(--ink-3);font-size:14px;}

/* ---- よくある質問（一覧ページ末尾） ---- */
.evfaq{border-top:1px solid var(--line);padding-top:34px;margin-top:14px;}
.evfaq h2{font-size:20px;margin-bottom:18px;}
.evfaq dl{margin:0;}
.evfaq dt{font-weight:900;font-size:15px;padding:16px 0 6px;border-top:1px solid var(--line);}
.evfaq dt:first-of-type{border-top:0;padding-top:0;}
.evfaq dd{margin:0 0 6px;color:var(--ink-2);line-height:1.9;font-size:14.5px;}

/* ---- 詳細ページ ---- */
.evdet__hero{padding:42px 0 28px;border-bottom:1px solid var(--line);}
.evdet__cat{font-size:12px;font-weight:800;color:var(--brand);letter-spacing:.04em;}
.evdet__hero h1{margin-top:12px;font-size:clamp(25px,3.4vw,38px);line-height:1.32;}
.evdet__gist{margin-top:16px;max-width:68ch;font-size:15.5px;font-weight:700;line-height:1.9;color:var(--ink);}
.evdet__lead{margin-top:12px;max-width:66ch;color:var(--ink-2);}
/* 判断に要る4点。カードで囲まず、罫線と字面の強弱だけで並べる。 */
.evdet__key{display:grid;grid-template-columns:repeat(4,1fr);gap:0 26px;margin-top:30px;
  border-top:2px solid var(--ink);border-bottom:1px solid var(--line);padding:18px 0 16px;}
.evdet__keyc{padding-left:26px;border-left:1px solid var(--line);}
.evdet__keyc:first-child{padding-left:0;border-left:0;}
.evdet__keyc dt{font-size:11.5px;font-weight:800;color:var(--ink-4);letter-spacing:.04em;margin-bottom:7px;}
.evdet__keyc dd{margin:0;font-size:15.5px;font-weight:800;line-height:1.6;}
.evdet__keyc dd small{display:block;font-size:12px;font-weight:600;color:var(--ink-3);margin-top:5px;}
.evdet__body{padding:42px 0 20px;display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:0 48px;align-items:start;}
.evsec{margin-bottom:36px;}
.evsec h2{font-size:19px;display:flex;align-items:center;gap:10px;margin-bottom:14px;}
.evsec h2::before{content:"";width:11px;height:11px;border-radius:4px;background:var(--brand);}
.evsec p{color:var(--ink-2);line-height:1.9;}
.evsec ul{margin:0;padding-left:1.2em;color:var(--ink-2);line-height:1.9;}
.evtable{width:100%;border-collapse:collapse;font-size:14px;}
.evtable th,.evtable td{border-bottom:1px solid var(--line);padding:12px 4px;text-align:left;vertical-align:top;}
.evtable th{width:8.5em;color:var(--ink-3);font-weight:800;font-size:13px;}
.evside{position:sticky;top:calc(var(--hd-h) + 20px);border-top:2px solid var(--ink);padding:18px 0 0;}
.evside .b{width:100%;justify-content:center;}
.evside__note{margin-top:14px;font-size:12px;color:var(--ink-4);line-height:1.75;}
.evsrc{margin-top:8px;font-size:12.5px;color:var(--ink-4);line-height:1.8;}
.evsrc a{color:var(--ink-3);text-decoration:underline;text-underline-offset:2px;}
.evsrc a:hover{color:var(--brand);}

@media(max-width:900px){
  .evdet__keyc{padding-left:0;border-left:0;}
  .evdet__key{gap:16px 0;}
  /* 狭い画面は日付を上の行へ。細い列に押し込むと数字が窮屈になる。 */
  .evrow{grid-template-columns:minmax(0,1fr);gap:0;padding:20px 0;}
  .evrow__date{display:flex;align-items:baseline;gap:5px 12px;margin-bottom:6px;flex-wrap:wrap;}
  .evrow__d .to{display:inline;}
  .evrow__d{font-size:19px;}
  .evrow__w{margin-top:0;}
  .evrow__name{font-size:16.5px;}
  .evrow__meta{line-height:2;}
  .evdet__key{grid-template-columns:repeat(2,1fr);}
  .evdet__body{grid-template-columns:minmax(0,1fr);gap:0;}
  .evside{position:static;margin-bottom:40px;}
}
@media(max-width:640px){
  /* 狭い画面では主催者名まで出すと2行に折り返して雑になる。詳細ページで見せる。 */
  .evrow__meta .org{display:none;}
  .evrow__meta > span:last-child::before{content:none;}
}
@media(max-width:560px){
  .evcal{padding:16px 14px 18px;}
  .evdet__key{grid-template-columns:1fr;}
}

/* ---- 狭い画面の絞り込み ----------------------------------------------------
   PCと同じ寸法のまま縦に積んでいたので、条件を選び終えるまでに3画面ぶんスクロールが要った。
   ピルを小さくし、費用と規模を横に並べ、パネル全体の背丈を詰める。 */
@media(max-width:560px){
  .evfilter{padding:16px 14px 18px;gap:14px;}
  .evfilter .gsearch{padding:5px 5px 5px 14px;gap:7px;}
  .evfilter .gsearch input{font-size:14px;}
  .evfilter .gsearch__btn{height:36px;padding:0 15px;font-size:13px;}
  .evfilter .catrow{gap:7px;}
  .evfilter .catpill{height:33px;padding:0 12px;font-size:12.5px;gap:6px;border-width:1.5px;}
  .evfilter .catpill .n{font-size:11px;}
  .evfilter .sub-filter__group{gap:8px;}
  /* 費用と規模は横に2つ。トグルとリセットはその下に1行ずつ。 */
  .evfilter .sub-filter__row{display:grid;grid-template-columns:1fr 1fr;gap:12px 12px;align-items:end;padding-top:12px;}
  .evfilter .sub-field{min-width:0;}
  .evfilter .sub-select{width:100%;}
  .evfilter .sub-toggle{grid-column:1/-1;height:auto;align-items:flex-start;line-height:1.7;font-size:13.5px;}
  .evfilter .sub-toggle input{margin-top:3px;flex:0 0 auto;}
  .evfilter #evReset{grid-column:1/-1;justify-self:start;height:38px;padding:0 16px;font-size:13px;}
  /* 見出しと月送りが1行に収まらないので折り返す */
  .evcal__hd{flex-wrap:wrap;gap:8px;}
  .evcal__nav{margin-left:auto;}
  .evcal__d{font-size:13.5px;}
}

/* ---- ハブ（月別・都道府県別・会場別） --------------------------------------
   一覧（/events/）は「探す」担当なので絞り込みを持つ。こちらは「その単位を読む」担当。
   囲みも影も使わず、罫線と字の強弱だけで段を分ける。 */
.evhub__note{margin-top:10px;font-size:13px;color:var(--ink-4);}

.evhub__cross{margin-top:34px;padding-top:20px;border-top:1px solid var(--line);
  color:var(--ink-2);font-size:14.5px;line-height:1.9;}
.evhub__cross a{font-weight:800;color:var(--brand);white-space:nowrap;}
.evhub__cross a:hover{text-decoration:underline;}

.evhub__nav{margin-top:40px;border-top:2px solid var(--ink);padding-top:26px;}
.evhub__navg + .evhub__navg{margin-top:24px;}
.evhub__navg h2{font-size:14px;font-weight:900;color:var(--ink-3);letter-spacing:.02em;margin-bottom:10px;}
.evhub__navg ul{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:6px 18px;}
.evhub__navg li{font-size:14px;font-weight:700;}
.evhub__navg a{color:var(--ink);}
.evhub__navg a:hover{color:var(--brand);}
.evhub__navg [aria-current]{color:var(--ink-4);}
.evhub__navg i{font-style:normal;font-family:var(--mono);font-size:11.5px;font-weight:600;
  color:var(--ink-4);margin-left:1px;}
.evhub__back{margin-top:26px;font-size:14px;font-weight:700;}
.evhub__back a{color:var(--brand);}
.evhub__back a:hover{text-decoration:underline;}

@media (max-width:640px){
  .evhub__navg ul{gap:6px 14px;}
  .evhub__navg li{font-size:13.5px;}
}

/* ---- 詳細ページ：出展と補助金をつなぐ1行 ---- */
.evdet__cross{margin-top:14px;padding-top:14px;border-top:1px solid var(--line);
  color:var(--ink-2);font-size:14px;line-height:1.9;}
.evdet__cross a{font-weight:800;color:var(--brand);white-space:nowrap;}
.evdet__cross a:hover{text-decoration:underline;}

/* ---- 詳細ページ：同じ日程・同じ場所で回れるもの ----
   「関連記事」を並べる枠ではなく、1回の外出で回れる範囲を示す欄。 */
.evrel{margin-top:46px;border-top:2px solid var(--ink);padding:26px 0 8px;}
.evrel > h2{font-size:19px;margin-bottom:20px;}
.evrel__g + .evrel__g{margin-top:24px;padding-top:20px;border-top:1px solid var(--line);}
.evrel__g h3{font-size:13.5px;font-weight:900;color:var(--ink-3);letter-spacing:.02em;margin-bottom:10px;}
.evrel__g ul{list-style:none;margin:0;padding:0;}
.evrel__g li{padding:7px 0;display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 12px;
  border-top:1px solid var(--line);}
.evrel__g li:first-child{border-top:0;}
.evrel__g li a{font-size:15px;font-weight:800;color:var(--ink);}
.evrel__g li a:hover{color:var(--brand);}
.evrel__g li span{font-size:12.5px;color:var(--ink-4);font-weight:700;}
.evrel__more{margin-top:10px;font-size:13.5px;font-weight:700;color:var(--ink-4);}
.evrel__more a{color:var(--brand);}
.evrel__more a:hover{text-decoration:underline;}

/* テーマのタグ。ハブがあるものはリンクになる。 */
a.evtag:hover{border-color:var(--brand);color:var(--brand);}
