/* 会員登録(仮登録)の同意の欄(includes/registration-consent.php・assets/registration-consent.js) */
.ips-consents { margin: 1.6em 0 1.2em; }
.ips-consents__heading { margin: 0 0 .6em; font-size: 1.05em; font-weight: bold; }
.ips-consent { margin: 0 0 1.1em; padding: .9em 1em; border: 1px solid #e3e7ef; border-radius: 6px; background: #f8f9fc; }
.ips-consent__title { margin: 0 0 .5em; font-weight: bold; }
.ips-consent__badge { display: inline-block; margin-left: .4em; padding: 0 .5em; border-radius: 3px; background: #b32d2e; color: #fff; font-size: .78em; font-weight: normal; line-height: 1.7; vertical-align: middle; }
.ips-consent.is-optional .ips-consent__badge { background: #6b7590; }
.ips-consent__intro { margin: 0 0 .6em; color: #444; font-size: .9em; }
.ips-consent__viewer { box-sizing: border-box; height: 380px; padding: 8px; overflow-y: auto; -webkit-overflow-scrolling: touch; overscroll-behavior: contain; border: 1px solid #cfd5e1; border-radius: 4px; background: #e9ecf2; }
.ips-consent__viewer:focus-visible { outline: 2px solid #2b5bd7; outline-offset: 2px; }
.ips-consent__page { width: 100%; margin: 0 0 8px; background: #fff; box-shadow: 0 1px 2px rgba(0, 0, 0, .15); }
.ips-consent__page:last-child { margin-bottom: 0; }
.ips-consent__page canvas { display: block; width: 100%; height: auto; }
.ips-consent__loading, .ips-consent__error { margin: 0; padding: 1.2em 1em; color: #5b6475; text-align: center; }
.ips-consent__error { color: #8a1f21; }
.ips-consent__status { margin: .5em 0 .2em; color: #5b6475; font-size: .88em; }
.ips-consent.is-read .ips-consent__status { color: #007017; }
.ips-consent__open { margin: 0 0 .6em; font-size: .88em; }
.ips-consent__check { display: flex; gap: .5em; align-items: flex-start; margin: 0; font-weight: normal; cursor: pointer; }
.ips-consent__check input { flex: none; margin-top: .35em; }
.ips-consent__check input:disabled { cursor: not-allowed; }
.ips-consent__check input:disabled + span { color: #8a92a3; }
.ips-consent__check abbr.required { margin-left: .2em; border: 0; color: #b32d2e; text-decoration: none; }
.ips-consent__details > summary { margin: .1em 0 .6em; color: #2b5bd7; cursor: pointer; }
.ips-consent__noscript { padding: .6em .8em; border: 1px solid #d63638; border-radius: 4px; background: #fdf0f0; color: #8a1f21; }
.ips-consent__button-note { margin: .2em 0 .5em; color: #b32d2e; font-size: .88em; }
.ips-consent__button-note[hidden] { display: none; }
form.woocommerce-form-register button[name="register"]:disabled { opacity: .5; cursor: not-allowed; }
/* 重要事項(項目ごとのチェック) */
.ips-consent__subtitle { margin: 1em 0 .5em; font-weight: bold; }
.ips-consent__lead { margin: 0 0 .5em; color: #333; font-size: .9em; line-height: 1.7; }
.ips-consent__items { margin: .4em 0 1em; padding: 0; list-style: none; counter-reset: none; }
.ips-consent__item { margin: 0 0 .6em; padding: .7em .85em; border: 1px solid #dfe4ee; border-radius: 6px; background: #fff; }
.ips-consent__item.is-missing { border-color: #d63638; box-shadow: 0 0 0 1px #d63638 inset; }
.ips-consent__item-title { display: flex; gap: .5em; align-items: baseline; margin: 0 0 .3em; font-weight: bold; }
.ips-consent__num { flex: none; min-width: 2.1em; padding: 0 .35em; border-radius: 3px; background: #14265c; color: #fff; font-size: .82em; text-align: center; }
.ips-consent__item-text { margin: 0 0 .45em; color: #333; font-size: .9em; line-height: 1.7; }
.ips-consent__item-check { display: flex; gap: .5em; align-items: flex-start; margin: 0; font-weight: normal; cursor: pointer; }
.ips-consent__item-check input { flex: none; width: 1.15em; height: 1.15em; margin-top: .25em; }
.ips-consent__item-check span { line-height: 1.6; }
.ips-consent__sub { margin: .4em 0 0 1.7em; padding: 0; list-style: none; color: #333; font-size: .88em; line-height: 1.7; }
.ips-consent__apply { display: flex; gap: .5em; align-items: flex-start; margin: .2em 0 .4em; padding: .6em .8em; border: 2px solid #14265c; border-radius: 6px; background: #fff; font-weight: bold; cursor: pointer; }
.ips-consent__apply input { flex: none; width: 1.15em; height: 1.15em; margin-top: .2em; }
.ips-consent[hidden] { display: none; }
/* 申込書の項目(registration.php): 見出し・選ぶ項目・単位 */
html body .ips-reg-group { margin: 1.4em 0 .5em; padding: .35em .7em; border-left: 4px solid #14265c; background: #eef1f6; font-weight: bold; line-height: 1.5; }
.ips-reg-choice { margin: 0 0 1em; padding: 0; border: 0; }
.ips-reg-choice legend { margin: 0 0 .35em; padding: 0; font-weight: bold; }
.ips-reg-choice__item { display: inline-flex; gap: .35em; align-items: center; margin: 0 1.2em .4em 0; font-weight: normal; cursor: pointer; }
.ips-reg-choice__item input { width: 1.1em; height: 1.1em; margin: 0; }
html body .ips-reg-choice input.ips-reg-choice__other { display: block; max-width: 22em; margin-top: .2em; }
.ips-reg-choice__note { display: block; margin-top: .3em; color: #555; font-size: .85em; line-height: 1.6; }
.ips-reg-unit { position: relative; }
html body .ips-reg-unit input { padding-right: 2.4em; }
.ips-reg-unit__label { position: absolute; right: .8em; bottom: .7em; color: #555; pointer-events: none; }
.ips-consent__check { margin-top: .6em; padding: .65em .8em; border: 1px solid #c9d0de; border-radius: 6px; background: #fff; font-weight: bold; }
.ips-consent__check input { width: 1.15em; height: 1.15em; }
.ips-consent__notes { margin: .9em 0 0; padding: .6em .85em; border-radius: 6px; background: #eef1f6; font-size: .86em; }
.ips-consent__notes p { margin: 0 0 .2em; font-weight: bold; }
.ips-consent__notes ul { margin: 0; padding-left: 1.2em; line-height: 1.7; }
/* テーマの段落の余白・行の高さより優先する(項目の中が間延びしないように) */
html body .ips-consent .ips-consent__item p,
html body .ips-consent .ips-consent__lead,
html body .ips-consent .ips-consent__subtitle { line-height: 1.7; }
html body .ips-consent .ips-consent__item-title { margin: 0 0 .25em; line-height: 1.5; }
html body .ips-consent .ips-consent__item-text { margin: 0 0 .4em; }
html body .ips-consent .ips-consent__lead { margin: 0 0 .5em; }
html body .ips-consent .ips-consent__subtitle { margin: 1em 0 .45em; }
html body .ips-consent .ips-consent__item-check,
html body .ips-consent .ips-consent__apply,
html body .ips-consent .ips-consent__check { line-height: 1.6; }
html body .ips-consent .ips-consent__notes p { margin: 0 0 .2em; line-height: 1.6; }
@media (max-width: 600px) {
	.ips-consent { padding: .8em .8em; }
	.ips-consent__viewer { height: 320px; }
	.ips-consent__item { padding: .6em .7em; }
}
