/*
 * ウェビナー申込フォームの見た目。
 * テーマ側を触らずに済むよう、プラグインで完結させる。
 * クラス名は nxw- 接頭辞で限定し、他のCF7フォームに影響しないようにする。
 */

/* ---------------------------------------------------------------- *
 * 案内メッセージ（会員／未登録で出し分け）
 * フォーム本体と視覚的に切り離すため、枠＋薄い背景＋左のアクセント線。
 * ---------------------------------------------------------------- */
.nxw-notice {
	/* 表題(H2)に下マージンが無いページ構成のため、ここで間隔を確保する */
	margin: 50px 0 28px;
	padding: 18px 20px;
	/* 役割で色を分ける：情報＝ネイビー（見出しと同色）／申込チェック＝ブルー／送信＝オレンジ。
	   ここを青にすると申込チェックが埋もれるため、地はニュートラルに保つこと。 */
	background: #f7f8fa;
	border: 1px solid #e3e6ea;
	border-left: 4px solid #1f3b57;
	border-radius: 3px;
	font-size: 14px;
	line-height: 1.75;
}

/* CF7が行ごとに段落を作るため、段落の余白を詰める（箇条書きと同じくらいの詰まり具合に） */
.nxw-notice p {
	margin: 0 0 6px;
}
.nxw-notice p:last-child {
	margin-bottom: 0;
}

/* 「▼〜」の見出し行 */
.nxw-notice > p:first-child {
	margin-bottom: 12px;
	padding-bottom: 10px;
	border-bottom: 1px dotted #cfd5dc;
	font-weight: 700;
	font-size: 15px;
	color: #1f3b57;
}

/* テーマがリストマーカーを消すことがあるので明示的に戻す */
.nxw-notice ul {
	margin: 8px 0 10px;
	padding-left: 1.6em;
	list-style: disc outside;
}
.nxw-notice li {
	margin: 3px 0;
	list-style: disc outside;
}

/* 補足（※〜）だけを控えめにする。
   ※「最後の段落」を対象にすると、会員向けメッセージの本文まで巻き添えになるため、
     必ずクラス指定で明示すること。 */
.nxw-notice .nxw-note {
	margin-top: 12px;
	font-size: 13px;
	color: #5a6b7c;
}

/* ---------------------------------------------------------------- *
 * 申込チェック（[acceptance apply_webinar]）
 * この画面で最も重要な操作なので、アンケートの選択肢に埋もれないよう強調する。
 * ---------------------------------------------------------------- */
.nxw-apply {
	margin: 26px 0 18px;
	padding: 16px;
	background: #f0f9fe;
	border: 2px solid #0096d6;
	border-radius: 4px;
	text-align: center;
}
.nxw-apply .wpcf7-list-item {
	margin: 0;
}
.nxw-apply label {
	display: inline-flex;
	align-items: center;
	cursor: pointer;
	font-size: 18px;
	font-weight: 700;
	color: #1f3b57;
}
.nxw-apply input[type="checkbox"] {
	width: 22px;
	height: 22px;
	margin: 0 12px 0 0;
	accent-color: #0096d6;
	cursor: pointer;
}

/* ---------------------------------------------------------------- *
 * 個人情報保護方針（details/summary で開閉）
 * ページ離脱もポップアップも避けつつ、全文を読めるようにする。
 * 長いので、開いた中身は高さを固定してスクロールさせ、フォームを押し流さない。
 * ---------------------------------------------------------------- */
.nxw-privacy {
	margin: 14px 0 10px;
	background: #ffffff;
	border: 1px solid #dfe3e8;
	border-radius: 3px;
}
.nxw-privacy > summary {
	padding: 12px 14px;
	cursor: pointer;
	font-size: 14px;
	font-weight: 700;
	color: #1f3b57;
	list-style: none; /* 既定の三角を消して自前の記号にする */
}
.nxw-privacy > summary::-webkit-details-marker {
	display: none;
}
.nxw-privacy > summary::before {
	content: "＋ ";
	color: #0096d6;
}
.nxw-privacy[open] > summary::before {
	content: "− ";
}
.nxw-privacy[open] > summary {
	border-bottom: 1px solid #eceff2;
}
.nxw-privacy-body {
	max-height: 320px;
	overflow-y: auto;
	-webkit-overflow-scrolling: touch;
	padding: 14px 16px;
	font-size: 12px;
	line-height: 1.8;
	color: #444444;
}
.nxw-privacy-body p {
	margin: 0 0 8px;
}
.nxw-privacy-body h1,
.nxw-privacy-body h2,
.nxw-privacy-body h3,
.nxw-privacy-body h4 {
	margin: 14px 0 6px;
	font-size: 13px;
	color: #1f3b57;
}
.nxw-privacy-body ul,
.nxw-privacy-body ol {
	margin: 6px 0 8px;
	padding-left: 1.5em;
}

/* ---------------------------------------------------------------- *
 * UM登録フォームの重複案内（既に会員登録済みの方へのご案内）
 * ---------------------------------------------------------------- */
.um .um-field-error .nxw-hint-sm,
.nxw-hint-sm {
	display: inline-block;
	margin-top: 4px;
	font-size: 11px;
	line-height: 1.6;
	opacity: 0.85;
}

/* ---------------------------------------------------------------- *
 * 会員マイページ（申込・受講履歴）[nxw_my_webinars]
 * ---------------------------------------------------------------- */
.nxw-mypage {
	max-width: 720px;
}
.nxw-myhead {
	margin: 28px 0 12px;
	padding-bottom: 8px;
	border-bottom: 2px solid #1f3b57;
	font-size: 17px;
	font-weight: 700;
	color: #1f3b57;
}
.nxw-myhead:first-child {
	margin-top: 0;
}
.nxw-myempty {
	margin: 0 0 8px;
	padding: 16px;
	background: #f7f8fa;
	border-radius: 6px;
	color: #777;
	font-size: 13px;
}
.nxw-mycard {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 14px;
	flex-wrap: wrap;
	margin: 0 0 10px;
	padding: 14px 16px;
	background: #fff;
	border: 1px solid #e3e8ee;
	border-radius: 8px;
}
.nxw-myinfo {
	flex: 1 1 260px;
	min-width: 0;
}
.nxw-mytitle {
	margin: 0 0 4px;
	font-size: 15px;
	font-weight: 700;
	color: #24384c;
	line-height: 1.5;
}
.nxw-mymeta {
	margin: 0;
	font-size: 12.5px;
	color: #777;
}
.nxw-badge {
	display: inline-block;
	margin-left: 4px;
	padding: 2px 9px;
	border-radius: 999px;
	font-size: 11px;
	font-weight: 700;
	vertical-align: 1px;
}
.nxw-badge-ok   { background: #e6f1fb; color: #0c447c; }
.nxw-badge-done { background: #e1f5ee; color: #0f6e56; }
.nxw-badge-end  { background: #f1efe8; color: #5f5e5a; }
.nxw-badge-wait { background: #faeeda; color: #854f0b; }
.nxw-myaction {
	flex: 0 0 auto;
}
.nxw-mybtn {
	display: inline-block;
	padding: 10px 20px;
	border: 1px solid #0096d6;
	border-radius: 6px;
	background: #fff;
	color: #0096d6;
	font-size: 13px;
	font-weight: 700;
	text-decoration: none;
	white-space: nowrap;
}
.nxw-mybtn-primary {
	background: #0096d6;
	color: #fff;
	border-color: #0096d6;
}
.nxw-mynote {
	display: inline-block;
	max-width: 260px;
	font-size: 12px;
	color: #888;
	line-height: 1.6;
}
.nxw-mygate {
	padding: 22px;
	background: #f7f8fa;
	border: 1px solid #e3e8ee;
	border-radius: 8px;
	font-size: 14px;
	line-height: 1.8;
}
.nxw-mygate-btns {
	display: flex;
	gap: 10px;
	flex-wrap: wrap;
	margin: 14px 0;
}

@media screen and (max-width: 600px) {
	.nxw-mycard { align-items: stretch; }
	.nxw-myaction, .nxw-mybtn { width: 100%; text-align: center; }
	.nxw-mynote { max-width: none; }
}

/* ---------------------------------------------------------------- *
 * 受付期間外の表示
 * ---------------------------------------------------------------- */
.nxw-registration-notice {
	margin: 50px 0 0;
	padding: 22px;
	background: #f7f7f7;
	border: 1px solid #dddddd;
	border-radius: 3px;
	text-align: center;
	color: #666666;
}

@media screen and (max-width: 600px) {
	.nxw-notice {
		margin-top: 32px;
		padding: 14px 15px;
		font-size: 13px;
	}
	.nxw-apply label {
		font-size: 16px;
	}
	.nxw-privacy-body {
		max-height: 240px;
	}
}
