/* 個人情報保護方針ページと、フォームの同意モーダルで共通に使う */
.policy{max-width:760px;margin:0 auto;padding:120px 24px 80px;color:#333;line-height:1.9}
.policy h1{font-size:28px;margin:0 0 32px;line-height:1.5}
.policy-body h2{font-size:20px;margin:48px 0 12px;padding-top:16px;border-top:1px solid #e5e5e5;line-height:1.5}
.policy-body h2:first-child{margin-top:0;padding-top:0;border-top:0}
.policy-body h3{font-size:17px;margin:32px 0 8px;line-height:1.5}
.policy-body p{margin:8px 0}
.policy-body ol,.policy-body ul{padding-left:1.5em;margin:8px 0}
.policy-body li{margin:6px 0}
.policy-body a{color:#1a56db;text-decoration:underline}
.policy-body .policy-sign{margin-top:16px;text-align:right}
.policy-table-wrap{overflow-x:auto}
.policy-body table{border-collapse:collapse;width:100%;margin:12px 0;font-size:15px}
.policy-body th,.policy-body td{border:1px solid #d4d4d4;padding:8px 10px;text-align:left;vertical-align:top}
.policy-body th{background:#f3f3f3}

/* 同意チェック */
.consent-field{margin:8px 0 4px}
.consent-label{display:flex;gap:10px;align-items:flex-start;cursor:pointer;line-height:1.7;color:#333}
.consent-label input{width:20px;height:20px;margin-top:3px;flex-shrink:0;accent-color:#333}
.consent-link{background:none;border:0;padding:0;font:inherit;color:#1a56db;text-decoration:underline;cursor:pointer}
.consent-link:focus-visible{outline:2px solid #1a56db;outline-offset:2px}

/* 個人情報の取扱いモーダル（白・黒・グレー、丸いボタン、影なし） */
.privacy-modal{position:fixed;inset:0;margin:auto;width:min(880px,calc(100% - 64px));height:fit-content;max-height:min(720px,calc(100dvh - 64px));overflow:hidden;padding:0;border:1px solid var(--border-light,#d4d4d4);border-radius:var(--r-card,12px);background:#fff;color:var(--ink-near,#333);font-family:inherit}
.privacy-modal::backdrop{background:rgba(0,0,0,.5);backdrop-filter:blur(2px)}
.privacy-modal[open]{animation:pm-in .2s ease-out}
@keyframes pm-in{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
@media (prefers-reduced-motion:reduce){.privacy-modal[open]{animation:none}}
.privacy-modal[open]{display:flex;flex-direction:column}
.privacy-modal__inner{display:flex;flex-direction:column;flex:1 1 auto;min-height:0}
.privacy-modal__title,.privacy-modal__foot{flex:none}
.privacy-modal__body{flex:1 1 auto;min-height:0}
.privacy-modal__title{margin:0;padding:18px 24px 14px;font-size:17px;font-weight:800;line-height:1.5;color:var(--ink-black,#333);border-bottom:1px solid var(--border-soft,#e5e5e5)}
.privacy-modal__body{overflow-y:auto;overscroll-behavior:contain;padding:16px 24px 20px;font-size:14px;line-height:1.85;color:var(--ink-near,#333)}
.privacy-modal__body:focus{outline:none}
.privacy-modal__body:focus-visible{outline:none}
.privacy-modal__body h2,.privacy-modal__body h3{margin:20px 0 6px;padding:0;border:0;font-size:15px;font-weight:800;line-height:1.5;color:var(--ink-black,#333)}
.privacy-modal__body h2{margin-top:24px;padding-top:16px;border-top:1px solid var(--border-soft,#e5e5e5)}
.privacy-modal__body > :first-child{margin-top:0}
.privacy-modal__body p{margin:6px 0}
.privacy-modal__body ol,.privacy-modal__body ul{margin:6px 0;padding-left:1.4em}
.privacy-modal__body li{margin:4px 0}
.privacy-modal__body a{color:var(--ink-black,#333);text-decoration:underline;text-underline-offset:2px}
.privacy-modal__body .policy-table-wrap{overflow-x:auto;margin:8px 0}
.privacy-modal__body table{width:100%;border-collapse:collapse;font-size:13px}
.privacy-modal__body th,.privacy-modal__body td{padding:6px 8px;border:1px solid var(--border-soft,#e5e5e5);text-align:left;vertical-align:top}
.privacy-modal__body th{background:var(--surface-snow,#fafafa);font-weight:700}
.privacy-modal__foot{padding:16px 24px 20px;border-top:1px solid var(--border-soft,#e5e5e5)}
.privacy-modal__close{display:flex;align-items:center;justify-content:center;width:100%;min-height:56px;padding:16px 32px;border:1px solid transparent;border-radius:9999px;background:var(--ink-black,#333);color:#fff;font:inherit;font-size:17px;font-weight:700;letter-spacing:.08em;cursor:pointer}
.privacy-modal__close:hover{opacity:.85}
.privacy-modal__close:focus-visible{outline:2px solid var(--focus-ring,#2563eb);outline-offset:3px}
@media (max-width:600px){.privacy-modal{width:95%;max-height:calc(100dvh - 32px)}.privacy-modal__title,.privacy-modal__body,.privacy-modal__foot{padding-left:18px;padding-right:18px}}
body.is-modal-open{overflow:hidden}
