/* Hasegawa Seminar Manager — 詳細（申込）ページ・一覧ページ */

.hsm-event,
.hsm-list {
	--hsm-ink: #2b2b2b;
	--hsm-text: #333;
	--hsm-muted: #777;
	--hsm-brown: #9b7d5a;
	--hsm-brown-dark: #7a5c3e;
	--hsm-gold: #c9a96e;
	--hsm-pink: #c97a8e;
	--hsm-pink-bg: #fdf2f4;
	--hsm-cream: #fdf9f5;
	--hsm-line: #e8e0d5;
	--hsm-online: #6b8e9b;
	--hsm-archive: #8a8378;
	color: var(--hsm-text);
	line-height: 1.8;
	font-size: 16px;
}

.hsm-event { max-width: 760px; margin: 0 auto; }
.hsm-list { max-width: 1040px; margin: 0 auto; }

.hsm-event p,
.hsm-list p { margin: 0 0 16px; }

/* テーマの調整：ページ上部の英字見出し（テーマはスラッグを表示する）を「SEMINAR」にし、受付中は下部の固定バーを申込ボタンに置き換える */
body.hsm-single .common-page__title span { font-size: 0 !important; line-height: 0; }
body.hsm-single .common-page__title span::before { content: "SEMINAR"; display: block; font-size: 58px; line-height: 1; letter-spacing: .1em; }
@media screen and (max-width: 769px) {
	body.hsm-single .common-page__title span::before { font-size: 45px; }
}
@media screen and (max-width: 426px) {
	body.hsm-single .common-page__title span::before { font-size: 40px; letter-spacing: .05em; }
}
body.hsm-has-sticky .desktop-fixd__wrap { display: none !important; }

/* ---------- 見出し ---------- */
.hsm-event .hsm-h2,
.hsm-list .hsm-h2 {
	font-size: 22px;
	line-height: 1.5;
	color: var(--hsm-ink);
	border-left: 4px solid var(--hsm-brown);
	padding: 6px 0 6px 14px;
	margin: 48px 0 20px;
	font-weight: bold;
	background: none;
}
.hsm-event .hsm-h3 { font-size: 18px; color: var(--hsm-ink); margin: 28px 0 12px; font-weight: bold; }
.hsm-event .hsm-body h2 {
	font-size: 22px;
	line-height: 1.5;
	color: var(--hsm-ink);
	border-left: 4px solid var(--hsm-brown);
	padding: 6px 0 6px 14px;
	margin: 48px 0 20px;
}
.hsm-event .hsm-body h3 { font-size: 18px; color: var(--hsm-ink); margin: 28px 0 12px; }
.hsm-event .hsm-body ul { padding-left: 1.4em; margin: 0 0 20px; }
.hsm-event .hsm-body li { margin: 0 0 8px; }

/* ---------- 冒頭 ---------- */
.hsm-head { margin: 0 0 22px; }
.hsm-badges { display: flex; flex-wrap: wrap; gap: 6px; margin: 0 0 10px; }
.hsm-badge {
	display: inline-block;
	font-size: 12px;
	line-height: 1.5;
	font-weight: bold;
	letter-spacing: .04em;
	padding: 3px 10px;
	border-radius: 999px;
	background: var(--hsm-cream);
	color: var(--hsm-brown);
	border: 1px solid var(--hsm-line);
	white-space: nowrap;
}
.hsm-badge--type { background: var(--hsm-brown); color: #fff; border-color: var(--hsm-brown); }
.hsm-type-consult .hsm-badge--type { background: var(--hsm-pink); border-color: var(--hsm-pink); }
.hsm-type-online .hsm-badge--type { background: var(--hsm-online); border-color: var(--hsm-online); }
.hsm-type-archive .hsm-badge--type { background: var(--hsm-archive); border-color: var(--hsm-archive); }
.hsm-badge--free { background: #fff; color: var(--hsm-pink); border-color: #ecc3cd; }
.hsm-badge--new { background: #fff; color: var(--hsm-brown-dark); border-color: var(--hsm-gold); }
.hsm-badge--status.is-open { background: #fff; color: #2f7d5b; border-color: #a9d3bf; }
.hsm-badge--status.is-full,
.hsm-badge--status.is-closed,
.hsm-badge--status.is-ended { background: #f3f1ee; color: #8a8378; border-color: #e2ddd6; }

.hsm-when { margin: 0 0 6px !important; color: var(--hsm-ink); font-weight: bold; line-height: 1.4; }
.hsm-when__date { font-size: 24px; margin-right: 10px; }
.hsm-when__time { font-size: 20px; color: var(--hsm-brown); white-space: nowrap; }
.hsm-facts { font-size: 14px; color: #666; margin: 0 !important; }
.hsm-sep { color: #c9bfb2; margin: 0 4px; }

.hsm-hero { margin: 0 0 22px; }
.hsm-hero__img { width: 100%; height: auto; border-radius: 8px; display: block; }

.hsm-pill {
	display: flex;
	align-items: center;
	gap: 10px;
	max-width: 100%;
	margin: 0 0 18px !important;
	padding: 8px 14px 8px 8px;
	background: #fff;
	border: 1px solid #ecc3cd;
	border-radius: 999px;
	font-size: 14px;
	font-weight: bold;
	color: #a35a6e;
	line-height: 1.5;
}
.hsm-pill__tag {
	flex: 0 0 auto;
	background: var(--hsm-pink);
	color: #fff;
	font-size: 12px;
	padding: 3px 10px;
	border-radius: 999px;
	letter-spacing: .06em;
}

/* ---------- ボタン ---------- */
.hsm-cta { text-align: center; margin: 0 0 32px; }
.hsm-cta--bottom { margin: 24px 0; }
.hsm-cta a {
	display: inline-block;
	max-width: 100%;
	box-sizing: border-box;
	background: var(--hsm-pink);
	color: #fff !important;
	text-decoration: none !important;
	padding: 18px 40px;
	border-radius: 4px;
	font-weight: bold;
	font-size: 17px;
	letter-spacing: 1px;
	line-height: 1.5;
	box-shadow: 0 6px 16px rgba(201, 122, 142, .28);
}
.hsm-cta a:hover { opacity: .85; }
.hsm-cta__sub { display: block; font-size: 12px; font-weight: normal; margin-top: 4px; opacity: .92; letter-spacing: 0; }

.hsm-btn {
	display: inline-block;
	background: var(--hsm-brown);
	color: #fff !important;
	text-decoration: none !important;
	padding: 12px 26px;
	border-radius: 4px;
	font-weight: bold;
	font-size: 15px;
}
.hsm-btn:hover { opacity: .85; }
.hsm-btn--ghost { background: #fff; color: var(--hsm-brown) !important; border: 1px solid var(--hsm-brown); }
.hsm-link { color: var(--hsm-brown) !important; }

.hsm-notice {
	background: var(--hsm-cream);
	border: 1px solid var(--hsm-line);
	border-top: 3px solid var(--hsm-brown);
	border-radius: 6px;
	padding: 22px 20px 8px;
	margin: 0 0 32px;
	text-align: center;
}
.hsm-notice__title { font-size: 19px; font-weight: bold; color: var(--hsm-ink); margin: 0 0 8px !important; }
.hsm-notice--full { border-top-color: var(--hsm-pink); }

/* ---------- 本文 ---------- */
.hsm-lead {
	background: var(--hsm-cream);
	padding: 24px 22px 8px;
	border-radius: 4px;
	margin: 0 0 32px;
	border-left: 4px solid var(--hsm-brown);
}
.hsm-lead .hsm-voice { font-weight: bold; color: #444; margin: 0 0 6px; }

.hsm-table { width: 100%; border-collapse: collapse; margin: 0 0 16px; font-size: 15px; }
.hsm-table th,
.hsm-table td { padding: 14px 12px; border-bottom: 1px solid var(--hsm-line); text-align: left; vertical-align: top; }
.hsm-table th { background: var(--hsm-cream); color: var(--hsm-brown); width: 30%; white-space: nowrap; font-weight: bold; }
.hsm-table__note { display: block; margin-top: 6px; font-size: 14px; color: #666; }

.hsm-bonus {
	display: grid;
	grid-template-columns: minmax(0, 260px) minmax(0, 1fr);
	gap: 20px;
	align-items: center;
	background: #fff;
	border: 1px solid #ecc3cd;
	border-radius: 10px;
	padding: 18px;
	margin: 0 0 24px;
}
.hsm-bonus__img img { width: 100%; height: auto; display: block; border-radius: 6px; box-shadow: 0 4px 14px rgba(0, 0, 0, .08); }
.hsm-bonus__title { font-weight: bold; color: #a35a6e; margin: 0 0 8px !important; }
.hsm-bonus ul { margin: 0; padding-left: 1.2em; }
.hsm-bonus li { margin: 0 0 6px; font-size: 15px; }
.hsm-bonus:not(:has(.hsm-bonus__img)) { grid-template-columns: 1fr; }

/* ---------- 申込フォーム ---------- */
.hsm-form-box {
	background: #fff;
	border: 3px solid var(--hsm-pink);
	border-radius: 12px;
	margin: 24px 0 32px;
	box-shadow: 0 10px 30px rgba(201, 122, 142, .25);
	overflow: hidden;
	scroll-margin-top: 110px;
}
.hsm-form-title {
	background: var(--hsm-pink);
	color: #fff !important;
	font-size: 21px;
	font-weight: bold;
	text-align: center;
	margin: 0 !important;
	padding: 18px 20px;
	letter-spacing: 2px;
	line-height: 1.5;
}
.hsm-form-inner { background: var(--hsm-pink-bg); padding: 30px 26px; }
.hsm-form-desc {
	background: #fff;
	border: 1px dashed #e3b9c4;
	border-radius: 6px;
	padding: 12px 16px;
	font-size: 14px;
	color: #a35a6e;
	text-align: center;
	margin: 0 0 24px !important;
}
.hsm-form-missing { background: #fff; border-radius: 6px; padding: 16px; text-align: center; margin: 0 !important; }
.hsm-form-inner .wpcf7 { font-size: 15px; color: var(--hsm-text); }
.hsm-form-inner .wpcf7 p { margin: 0 0 22px; }
.hsm-form-inner label + br { display: none; }
.hsm-form-inner label { display: block; font-weight: bold; color: var(--hsm-brown-dark); line-height: 1.7; font-size: 15px; }
.hsm-form-inner input[type="text"],
.hsm-form-inner input[type="email"],
.hsm-form-inner input[type="tel"],
.hsm-form-inner input[type="number"],
.hsm-form-inner input[type="date"],
.hsm-form-inner select,
.hsm-form-inner textarea {
	display: block;
	width: 100%;
	box-sizing: border-box;
	margin-top: 6px;
	padding: 12px 14px;
	border: 1px solid #d9c3b0;
	border-radius: 6px;
	font-size: 16px;
	background: #fff;
	color: var(--hsm-text);
}
.hsm-form-inner textarea { min-height: 96px; }
.hsm-form-inner input:focus,
.hsm-form-inner select:focus,
.hsm-form-inner textarea:focus { outline: none; border-color: var(--hsm-pink); box-shadow: 0 0 0 2px rgba(201, 122, 142, .15); }
.hsm-form-inner .wpcf7-radio,
.hsm-form-inner .wpcf7-checkbox { display: block; margin-top: 8px; }
.hsm-form-inner .wpcf7-list-item { display: block !important; margin: 0 0 8px 0 !important; background: #fff; border: 1px solid #ecdfce; border-radius: 6px; }
.hsm-form-inner .wpcf7-list-item label { display: flex; align-items: flex-start; gap: 10px; font-weight: normal; color: var(--hsm-text); padding: 12px 14px; margin: 0; cursor: pointer; line-height: 1.6; }
.hsm-form-inner .wpcf7-list-item input { margin: 3px 0 0; flex: 0 0 auto; width: 18px; height: 18px; }
.hsm-form-inner .wpcf7-list-item.is-full,
.hsm-form-inner .wpcf7-list-item:has(input[value*="【満席】"]) { opacity: .55; background: #f3f3f3; cursor: not-allowed; }
.hsm-form-inner .wpcf7-list-item.is-full label,
.hsm-form-inner .wpcf7-list-item:has(input[value*="【満席】"]) label { color: #999; text-decoration: line-through; cursor: not-allowed; }
.hsm-form-inner .note { font-size: 13px; color: #8a6f5a; margin: 6px 2px 24px; line-height: 1.7; }
.hsm-form-inner .wpcf7-acceptance .wpcf7-list-item { border: none; background: transparent; }
.hsm-form-inner input[type="submit"] {
	display: block;
	width: 100%;
	margin-top: 10px;
	background: var(--hsm-pink);
	color: #fff;
	border: none;
	padding: 17px;
	border-radius: 6px;
	font-size: 17px;
	font-weight: bold;
	letter-spacing: 1px;
	cursor: pointer;
}
.hsm-form-inner input[type="submit"]:hover { opacity: .9; }
.hsm-form-inner input[type="submit"]:disabled { opacity: .5; cursor: not-allowed; }
.hsm-form-inner .wpcf7-not-valid-tip { color: #c0392b; font-size: 13px; margin-top: 4px; }
.hsm-form-inner .wpcf7-response-output { border-radius: 6px; font-size: 14px; margin: 16px 0 0 !important; padding: 12px 14px !important; background: #fff; }

/* ---------- クリニック情報 ---------- */
.hsm-map { margin: 0 0 18px; }
.hsm-map iframe { width: 100%; height: 360px; border: 0; border-radius: 8px; display: block; }
.hsm-maplink { font-size: 14px; margin: -4px 0 16px !important; }
.hsm-maplink a { color: var(--hsm-brown); }
.hsm-hours-wrap { overflow-x: auto; margin: 0 0 12px; }
.hsm-hours { width: 100%; border-collapse: collapse; font-size: 14px; min-width: 560px; }
.hsm-hours th,
.hsm-hours td { border: 1px solid var(--hsm-line); padding: 10px 8px; text-align: center; white-space: nowrap; }
.hsm-hours thead th { background: var(--hsm-brown); color: #fff; }
.hsm-hours tbody th { background: var(--hsm-cream); color: var(--hsm-brown); text-align: left; }

/* ---------- カード（一覧・ほかの開催予定） ---------- */
.hsm-cards { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 20px; margin: 0 0 24px; }
.hsm-event .hsm-cards { grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); }
.hsm-card { min-width: 0; }
.hsm-card[hidden] { display: none !important; }
.hsm-card__link {
	display: flex;
	flex-direction: column;
	height: 100%;
	background: #fff;
	border: 1px solid #e0d5c5;
	border-radius: 10px;
	overflow: hidden;
	text-decoration: none !important;
	color: var(--hsm-text) !important;
	transition: box-shadow .2s, transform .2s;
}
.hsm-card__link:hover { box-shadow: 0 10px 24px rgba(90, 70, 50, .12); transform: translateY(-2px); }
.hsm-card__media { display: block; aspect-ratio: 1200 / 630; background: var(--hsm-cream); overflow: hidden; max-width: 100%; }
.hsm-card__img { width: 100%; height: 100%; object-fit: cover; display: block; }
.hsm-card__ph {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 2px;
	width: 100%;
	height: 100%;
	color: #fff;
	background: linear-gradient(135deg, #b39573, #9b7d5a);
}
.hsm-type-consult .hsm-card__ph { background: linear-gradient(135deg, #d899a9, #c97a8e); }
.hsm-type-online .hsm-card__ph { background: linear-gradient(135deg, #88a9b5, #6b8e9b); }
.hsm-type-archive .hsm-card__ph { background: linear-gradient(135deg, #a49d92, #8a8378); }
.hsm-card__ph-type { font-size: 13px; letter-spacing: .12em; font-weight: bold; opacity: .95; }
.hsm-card__ph-date { font-family: Georgia, "Times New Roman", serif; font-size: 34px; line-height: 1.2; }
.hsm-card__body { display: flex; flex-direction: column; gap: 6px; padding: 16px 18px 18px; flex: 1; }
.hsm-card__body .hsm-badges { margin: 0 0 2px; }
.hsm-card__title { display: block; font-size: 17px; font-weight: bold; line-height: 1.5; color: var(--hsm-ink); }
.hsm-card__when { display: block; font-size: 14px; font-weight: bold; color: var(--hsm-brown); }
.hsm-card__summary { display: block; font-size: 14px; color: #666; line-height: 1.7; }
.hsm-card__btn {
	display: block;
	margin-top: auto;
	padding-top: 10px;
	font-size: 14px;
	font-weight: bold;
	color: var(--hsm-pink);
	text-align: right;
}
.hsm-card__btn::after { content: " →"; }
.hsm-card.is-full .hsm-card__btn,
.hsm-card.is-closed .hsm-card__btn,
.hsm-card.is-ended .hsm-card__btn { color: var(--hsm-brown); }
.hsm-card.is-full .hsm-card__media,
.hsm-card.is-closed .hsm-card__media { filter: grayscale(.6); opacity: .8; }
.hsm-more { text-align: center; margin: 8px 0 0 !important; }

/* ---------- 一覧ページ ---------- */
.hsm-list__intro { margin: 0 0 24px; }
.hsm-filter { display: flex; flex-wrap: wrap; gap: 8px; margin: 0 0 8px; }
.hsm-filter__btn {
	appearance: none;
	border: 1px solid #d9c9b4;
	background: #fff;
	color: var(--hsm-brown);
	font-size: 14px;
	font-weight: bold;
	padding: 8px 18px;
	border-radius: 999px;
	cursor: pointer;
	line-height: 1.4;
}
.hsm-filter__btn.is-active { background: var(--hsm-brown); border-color: var(--hsm-brown); color: #fff; }
.hsm-empty { background: var(--hsm-cream); border-radius: 6px; padding: 18px 20px; color: #666; }

.hsm-past { list-style: none; margin: 0 0 24px; padding: 0; border-top: 1px solid var(--hsm-line); }
.hsm-past__item {
	display: grid;
	grid-template-columns: 7.5em 13em minmax(0, 1fr) auto;
	gap: 4px 14px;
	align-items: baseline;
	padding: 14px 4px;
	border-bottom: 1px solid var(--hsm-line);
	font-size: 15px;
}
.hsm-past__item[hidden] { display: none !important; }
.hsm-list .hsm-past__item::before,
.hsm-list .hsm-past__item::after { content: none !important; display: none !important; }
.hsm-past__date { font-family: Georgia, "Times New Roman", serif; color: var(--hsm-brown); white-space: nowrap; }
.hsm-past__meta { font-size: 13px; color: var(--hsm-muted); }
.hsm-past__title { color: var(--hsm-brown-dark) !important; text-decoration: underline !important; text-decoration-color: #d9c9b4 !important; text-underline-offset: 4px; font-weight: bold; min-width: 0; }
.hsm-past__title::after { content: " ›"; color: var(--hsm-brown); }
.hsm-past__title:hover { text-decoration-color: var(--hsm-brown) !important; }
.hsm-past__archive {
	font-size: 13px;
	color: var(--hsm-pink) !important;
	border: 1px solid #ecc3cd;
	border-radius: 999px;
	padding: 2px 12px;
	text-decoration: none !important;
	white-space: nowrap;
}

/* ---------- 画面下の固定ボタン ---------- */
.hsm-sticky {
	position: fixed;
	left: 0;
	right: 0;
	bottom: 0;
	z-index: 9990;
	padding: 10px 12px calc(10px + env(safe-area-inset-bottom, 0px));
	background: rgba(255, 255, 255, .96);
	box-shadow: 0 -4px 14px rgba(90, 60, 60, .12);
	display: none;
}
.hsm-sticky.is-on { display: block; }
.hsm-sticky a {
	display: block;
	max-width: 520px;
	margin: 0 auto;
	text-align: center;
	background: #c97a8e;
	color: #fff !important;
	text-decoration: none !important;
	font-weight: bold;
	font-size: 16px;
	line-height: 1.4;
	padding: 12px 10px;
	border-radius: 4px;
}
.hsm-sticky small { display: block; font-size: 12px; font-weight: normal; opacity: .92; }

/* ---------- 本文で使える部品（カスタムHTMLブロック用） ---------- */
.hsm-event .hsm-checklist { list-style: none; padding: 8px 24px; margin: 0 0 20px; background: var(--hsm-cream); border: 1px solid #f0e6da; border-radius: 10px; }
.hsm-event .hsm-checklist li { position: relative; padding: 13px 0 13px 34px; margin: 0; border-bottom: 1px dashed #e3d8c8; }
.hsm-event .hsm-checklist li:last-child { border-bottom: none; }
.hsm-event .hsm-checklist li::before {
	content: "✓";
	position: absolute;
	left: 0;
	top: 16px;
	width: 22px;
	height: 22px;
	line-height: 22px;
	text-align: center;
	background: var(--hsm-pink);
	color: #fff;
	border-radius: 50%;
	font-size: 12px;
	font-weight: bold;
}
.hsm-event .hsm-points { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; margin: 0 0 24px; }
.hsm-event .hsm-point { background: #fff; border: 1px solid #e0d5c5; border-top: 3px solid var(--hsm-brown); border-radius: 8px; padding: 20px 18px; }
.hsm-event .hsm-body .hsm-point h3 { margin: 0 0 8px; font-size: 16px; color: var(--hsm-brown); line-height: 1.5; }
.hsm-event .hsm-point p { margin: 0; font-size: 14px; color: #555; line-height: 1.7; }
.hsm-event .hsm-faq { margin: 0 0 12px; padding: 16px 18px; background: var(--hsm-cream); border-radius: 4px; }
.hsm-event .hsm-faq__q { font-weight: bold; color: var(--hsm-brown); margin: 0 0 8px; }
.hsm-event .hsm-faq__a { margin: 0; color: #555; }
.hsm-event .hsm-note,
.hsm-lead .hsm-note { font-size: 14px; color: #999; }

/* ---------- スマホ ---------- */
@media (max-width: 600px) {
	.hsm-event .hsm-h2,
	.hsm-list .hsm-h2,
	.hsm-event .hsm-body h2 { font-size: 19px; margin-top: 40px; }
	.hsm-when__date { font-size: 20px; display: block; margin: 0; }
	.hsm-when__time { font-size: 18px; }
	.hsm-cta a { padding: 16px 22px; font-size: 16px; display: block; }
	.hsm-table { font-size: 14px; }
	.hsm-table th { width: 32%; white-space: normal; }
	.hsm-table th,
	.hsm-table td { padding: 12px 8px; }
	.hsm-bonus { grid-template-columns: 1fr; }
	.hsm-event .hsm-points { grid-template-columns: 1fr; }
	.hsm-bonus__img { max-width: 320px; margin: 0 auto; }
	.hsm-form-title { font-size: 18px; letter-spacing: 1px; padding: 14px 12px; }
	.hsm-form-inner { padding: 22px 16px; }
	.hsm-map iframe { height: 280px; }
	.hsm-pill { border-radius: 12px; align-items: flex-start; }
	.hsm-past__item { grid-template-columns: 1fr auto; }
	.hsm-past__date { grid-column: 1; }
	.hsm-past__meta { grid-column: 2; text-align: right; }
	.hsm-past__title { grid-column: 1 / -1; }
	.hsm-past__archive { grid-column: 1 / -1; justify-self: start; }
}
