/* SG Events：「気になる製品とコラム」と同じトーン（淡い緑の地、白い角丸のカード、緑のボタン、黄色のラベル） */
.sge {
	--sge-ink: var(--sg2-ink, #13201A);
	--sge-sub: #4A5A50;
	--sge-tint: var(--sg2-tint, #F1F6EF);
	--sge-line: #E2E9DF;
	--sge-green: #1F7A2B;
	--sge-green-2: #2E8F3A;
	--sge-pale: #E9F6E6;
	--sge-yellow: #FFD84D;
	--sge-red: #B42318;
	color: var(--sge-ink);
	font-size: 1rem;
	line-height: 1.7;
}
.sge *, .sge *::before, .sge *::after { box-sizing: border-box; }
.sge [hidden] { display: none !important; }
.sge-sr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }

/* ボタン・ラベル */
.sge-btn { display: inline-flex; align-items: center; gap: .375rem; padding: .625rem 1.25rem; border-radius: 999px; background: var(--sge-green); color: #fff !important; font-weight: 700; font-size: .9375rem; line-height: 1.4; text-decoration: none !important; border: 2px solid var(--sge-green); transition: background .15s; }
.sge-btn:hover { background: var(--sge-green-2); border-color: var(--sge-green-2); }
.sge-btn--line { background: #fff; color: var(--sge-green) !important; }
.sge-btn--line:hover { background: var(--sge-pale); }
.sge-btn:focus-visible, .sge-chip:focus-visible, .sge-ev:focus-visible, .sge-nav:focus-visible, .sge-today:focus-visible { outline: 3px solid var(--sge-yellow); outline-offset: 2px; }
.sge .screen-reader-text { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.sge-label { display: inline-block; margin: 0 .375rem .375rem 0; padding: .125rem .75rem; border-radius: 999px; background: var(--sge-yellow); color: var(--sge-ink); font-size: .75rem; font-weight: 700; line-height: 1.6; }
.sge-label--mode { background: var(--sge-pale); }
.sge-badge { display: inline-block; margin: 0 .375rem .375rem 0; padding: .125rem .75rem; border-radius: 999px; background: #FDECEA; color: var(--sge-red); font-size: .75rem; font-weight: 700; }
.sge-h { margin: 0 0 1.25rem; font-size: 1.375rem; line-height: 1.4; }

/* 絞り込み */
.sge-filter { display: flex; flex-wrap: wrap; gap: .5rem; margin: 0 0 1.25rem; }
.sge-chip { padding: .5rem 1rem; border-radius: 999px; border: 1px solid var(--sge-line); background: #fff; color: var(--sge-ink); font: inherit; font-size: .875rem; font-weight: 700; cursor: pointer; }
.sge-chip--sub { padding: .375rem .875rem; font-size: .8125rem; font-weight: 400; }
.sge-chip[aria-pressed="true"] { background: var(--sge-green); border-color: var(--sge-green); color: #fff; }

/* カレンダー */
.sge-cal { margin: 0 0 2.5rem; padding: 1.75rem; border-radius: 20px; background: var(--sge-tint); }
.sge-cal__head { display: flex; align-items: center; gap: .75rem; margin: 0 0 1rem; }
.sge-cal__title { margin: 0; font-size: 1.375rem; line-height: 1.4; min-width: 8.5em; text-align: center; }
.sge-nav, .sge-today { border: 1px solid var(--sge-line); background: #fff; color: var(--sge-ink); border-radius: 999px; cursor: pointer; font: inherit; font-weight: 700; }
.sge-nav { width: 2.5rem; height: 2.5rem; font-size: 1.25rem; line-height: 1; }
.sge-today { margin-left: auto; padding: .375rem 1rem; font-size: .875rem; }
.sge-grid { width: 100%; border-collapse: separate; border-spacing: 6px; table-layout: fixed; margin: 0 -6px; }
.sge-grid th { font-size: .8125rem; font-weight: 700; color: var(--sge-sub); padding: 0 0 .25rem; text-align: left; }
.sge-grid th.is-sun, .sge-day.is-sun { color: #B42318; }
.sge-grid th.is-sat, .sge-day.is-sat { color: #1D5FA8; }
.sge-grid td { vertical-align: top; height: 7rem; padding: .5rem; border-radius: 12px; background: #fff; overflow: hidden; }
.sge-grid td.is-empty { background: transparent; }
.sge-grid td.is-today { box-shadow: inset 0 0 0 2px var(--sge-green); }
.sge-day { display: block; font-size: .8125rem; font-weight: 700; margin: 0 0 .25rem; }
.sge-ev { display: block; width: 100%; margin: 0 0 .25rem; padding: .25rem .5rem; border: 0; border-radius: 8px; background: var(--sge-pale); color: var(--sge-ink); font: inherit; font-size: .75rem; line-height: 1.45; text-align: left; cursor: pointer; }
.sge-ev:hover { background: #D8EED3; }
.sge-ev.is-off { background: #F3F3F1; color: #6B776F; }
.sge-ev__time { display: block; font-weight: 700; color: var(--sge-green); }
.sge-ev__t { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; font-weight: 700; }
.sge-cal__list { display: none; }
.sge-agenda { list-style: none; margin: 0; padding: 0; display: grid; gap: .75rem; }
.sge-agenda__day { padding: 1rem; border-radius: 16px; background: #fff; }
.sge-agenda__day.is-today { box-shadow: inset 0 0 0 2px var(--sge-green); }
.sge-agenda__date { margin: 0 0 .5rem; font-weight: 700; }
.sge-agenda .sge-ev { font-size: .875rem; padding: .5rem .75rem; }
.sge-agenda__none { margin: 0; padding: 1rem; border-radius: 16px; background: #fff; color: var(--sge-sub); }
@media (max-width: 719px) {
	.sge-cal { padding: 1.25rem; }
	.sge-cal__grid { display: none; }
	.sge-cal__list { display: block; }
	.sge-cal__title { min-width: 0; font-size: 1.125rem; }
}

/* これからのイベント（カード） */
.sge-up { margin: 0 0 2rem; }
.sge-cards { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(18rem, 1fr)); gap: 1.25rem; }
.sge-card { display: flex; flex-direction: column; border-radius: 16px; background: #fff; border: 1px solid var(--sge-line); overflow: hidden; }
.sge-card__media { display: block; aspect-ratio: 16 / 9; background: var(--sge-tint); }
.sge-card__img { display: block; width: 100%; height: 100%; object-fit: cover; }
.sge-card__img--none { background: linear-gradient(135deg, var(--sge-tint), var(--sge-pale)); }
.sge-card__body { display: flex; flex-direction: column; flex: 1; padding: 1.25rem; }
.sge-card__labels { margin: 0 0 .25rem; }
.sge-card__when { margin: 0 0 .25rem; font-size: .875rem; font-weight: 700; color: var(--sge-green); }
.sge-card__title { margin: 0 0 .5rem; font-size: 1.0625rem; line-height: 1.5; }
.sge-card__title a { color: var(--sge-ink); text-decoration: none; }
.sge-card__title a:hover { text-decoration: underline; }
.sge-card__fee { margin: 0 0 .5rem; font-size: .875rem; font-weight: 700; }
.sge-card__place { display: block; font-weight: 400; color: var(--sge-sub); }
.sge-card__ex { margin: 0 0 1rem; font-size: .875rem; color: var(--sge-sub); }
.sge-card__actions { margin: auto 0 0; display: flex; flex-wrap: wrap; gap: .5rem; }
.sge-card__actions .sge-btn { padding: .5rem 1rem; font-size: .875rem; }
.sge-empty { margin: 0; padding: 1.25rem; border-radius: 16px; background: var(--sge-tint); color: var(--sge-sub); }

/* これまでのイベント */
.sge-past { margin: 0 0 2rem; padding: 1rem 1.25rem; border-radius: 16px; background: var(--sge-tint); }
.sge-past summary { cursor: pointer; font-weight: 700; }
.sge-past__list { list-style: none; margin: .75rem 0 0; padding: 0; }
.sge-past__list li { padding: .5rem 0; border-top: 1px solid var(--sge-line); }
.sge-past__when { display: block; font-size: .8125rem; color: var(--sge-sub); }
.sge-past__list a { color: var(--sge-ink); font-weight: 700; }

/* 要約の窓 */
.sge-dlg { width: min(36rem, calc(100vw - 2rem)); max-height: calc(100vh - 2rem); padding: 0; border: 0; border-radius: 20px; color: var(--sge-ink); }
.sge-dlg::backdrop { background: rgba(11, 26, 16, .55); }
.sge-dlg__in { position: relative; padding: 1.5rem; }
.sge-dlg__close { position: absolute; top: .75rem; right: .75rem; width: 2.5rem; height: 2.5rem; border: 0; border-radius: 999px; background: #fff; box-shadow: 0 1px 4px rgba(0,0,0,.15); font-size: 1.25rem; cursor: pointer; z-index: 1; }
.sge-dlg__img img { display: block; width: 100%; aspect-ratio: 16 / 9; object-fit: cover; border-radius: 12px; margin: 0 0 1rem; }
.sge-dlg__labels { margin: 0; }
.sge-dlg__title { margin: .25rem 2.5rem .75rem 0; font-size: 1.25rem; line-height: 1.45; }
.sge-dlg__ex { margin: 0 0 1rem; font-size: .9375rem; }
.sge-dlg__actions { display: flex; flex-wrap: wrap; gap: .5rem; margin: 0; }

/* 要点の表（窓と1件のページ） */
.sge-facts { margin: 0 0 1rem; padding: 0; display: grid; gap: 0; }
.sge-facts > div { display: grid; grid-template-columns: 7.5em minmax(0, 1fr); gap: 1rem; padding: .625rem 0; border-top: 1px solid var(--sge-line); }
.sge-facts > div:first-child { border-top: 0; }
.sge-facts dt { font-weight: 700; color: var(--sge-sub); font-size: .875rem; }
.sge-facts dd { margin: 0; font-size: .9375rem; }

/* 費用の札（無料は緑） */
.sge-fee { display: inline-block; padding: .125rem .75rem; border-radius: 8px; background: #F3F3F1; color: var(--sge-ink); font-weight: 700; font-size: .875rem; }
.sge-fee.is-free { background: var(--sge-pale); color: var(--sge-green); }
.sge-fee--lg { padding: .375rem 1rem; font-size: 1.125rem; border-radius: 10px; }
.sge-card__fee .sge-fee { margin: 0 0 .25rem; }
.sge-btn--lg { padding: .875rem 2rem; font-size: 1.0625rem; }

/* 開催の要点（重要度の順：日時 → 形式・会場 → 費用 → 申し込み） */
.sge-key { display: grid; grid-template-columns: minmax(10rem, 15rem) minmax(0, 1fr); gap: 1.5rem 2rem; align-items: start; margin: 0 0 1rem; padding: 1.75rem; border-radius: 20px; background: var(--sge-tint); }
.sge-key__date, .sge-dlg__date { display: flex; flex-direction: column; margin: 0; line-height: 1.2; }
.sge-key__y { font-size: .875rem; font-weight: 700; color: var(--sge-sub); }
.sge-key__md { font-size: clamp(1.75rem, 4vw, 2.5rem); font-weight: 700; color: var(--sge-green); letter-spacing: -.01em; }
.sge-key__wd { font-size: .55em; margin-left: .125em; }
.sge-key__tm { margin-top: .375rem; font-size: 1.25rem; font-weight: 700; color: var(--sge-ink); }
.sge-key__main > p { margin: 0 0 .75rem; }
.sge-key__place { display: flex; flex-direction: column; gap: .125rem; }
.sge-key__mode { font-size: 1.0625rem; font-weight: 700; }
.sge-key__venue { font-size: .9375rem; color: var(--sge-sub); }
.sge-key__cta { margin-top: 1rem !important; }
.sge-facts--sub { padding: 0 .25rem !important; background: none !important; }
.sge-facts--sub dt { font-size: .8125rem; }
.sge-facts--sub dd { font-size: .875rem; color: var(--sge-sub); }
.sge-dlg__date { margin: 0 0 .25rem; }
.sge-dlg__date .sge-key__md { font-size: 1.75rem; }
.sge-dlg__date .sge-key__tm { font-size: 1.0625rem; margin-top: .125rem; }
.sge-dlg__meta { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem .75rem; margin: 0 0 .75rem; font-size: .875rem; color: var(--sge-sub); }
@media (max-width: 719px) {
	.sge-key { grid-template-columns: 1fr; padding: 1.25rem; gap: 1rem; }
}

/* 1件ずつのページ */
.single-sg_event .wp-block-post-featured-image { display: none; }
.sge-single { margin: 0 0 2rem; }
.sge-single__cover { margin: 0 0 1.25rem; }
.sge-single__cover img { display: block; width: 100%; height: auto; border-radius: 20px; }
.sge-notice { margin: 0 0 1rem; padding: .75rem 1rem; border-radius: 12px; background: #FDECEA; color: var(--sge-red); font-weight: 700; }
.sge-apply { margin: 2rem 0 1rem; padding: 1.5rem; border-radius: 20px; background: var(--sge-tint); }
.sge-apply__h { margin: 0 0 .5rem; font-size: 1.125rem; font-weight: 700; }
.sge-apply__note { margin: .75rem 0 0; font-size: .8125rem; color: var(--sge-sub); }
.sge-back a { color: var(--sge-green); font-weight: 700; }

@media (prefers-reduced-motion: reduce) { .sge-btn { transition: none; } }
