.legal-page{padding:66px 0 84px;background:#fff}.legal-container{width:min(calc(100% - 40px),900px);margin:0 auto}.legal-heading{margin-bottom:42px;padding-bottom:26px;border-bottom:1px solid #dfe8ee}.legal-heading .info-kicker{margin-bottom:10px}.legal-heading h1{margin:0 0 14px;color:#123d61;font-size:clamp(2rem,4vw,2.8rem);line-height:1.35}.legal-heading p{margin:0;color:#526b7e;line-height:1.8}.legal-section{margin-top:38px}.legal-section h2{margin:0 0 14px;color:#173f5c;font-size:1.3rem;line-height:1.5}.legal-section p,.legal-section li{color:#202830;font-size:.98rem;line-height:1.9}.legal-section ul,.legal-section ol{margin:12px 0 0;padding-left:1.5em}.legal-table{width:100%;border-collapse:collapse;border-top:1px solid #d9e4ea}.legal-table th,.legal-table td{padding:16px 18px;border-bottom:1px solid #d9e4ea;vertical-align:top;line-height:1.75;text-align:left}.legal-table th{width:210px;background:#f5f9fb;color:#294b60;font-weight:700}.legal-table td{color:#202830}.legal-draft-note{margin-bottom:30px;padding:17px 20px;border-left:4px solid #d79b32;background:#fff8e9;color:#684b17;font-size:.9rem;line-height:1.75}.legal-updated{margin-top:48px;color:#6d7e88;font-size:.86rem;text-align:right}@media(max-width:640px){.legal-page{padding:46px 0 60px}.legal-container{width:min(calc(100% - 28px),900px)}.legal-heading{margin-bottom:32px}.legal-section{margin-top:31px}.legal-table th,.legal-table td{display:block;width:100%;padding:12px 14px}.legal-table th{border-bottom:0}}

/* お問い合わせフォーム(/contact/) 及び 汎用アラート(Flash) */
.alert{position:relative;margin:0 0 28px;padding:16px 44px 16px 18px;border-radius:10px;font-size:.94rem;line-height:1.7}
.alert-success{background:#e9f7f0;color:#1f6b48;border:1px solid #bfe4d1}
.alert-danger{background:#fdecee;color:#a53545;border:1px solid #f3c4cb}
.alert .close{position:absolute;top:10px;right:12px;padding:2px 6px;background:none;border:0;color:inherit;font-size:1.1rem;line-height:1;cursor:pointer;opacity:.6}
.alert .close:hover{opacity:1}
.contact-honeypot{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.contact-page{background:#f6fafc}
.contact-container{max-width:780px}
.contact-page .legal-heading{margin-bottom:30px;text-align:center;border-bottom:0}
.contact-page .legal-heading>p:last-child{max-width:620px;margin:0 auto}
.contact-form-card{padding:38px 44px 42px;border:1px solid #dce7ee;border-radius:16px;background:#fff;box-shadow:0 12px 34px rgba(26,74,108,.07)}
.contact-form-head{display:flex;margin-bottom:28px;padding-bottom:18px;align-items:flex-end;justify-content:space-between;gap:20px;border-bottom:1px solid #e4ebf0}
.contact-form-head h2{margin:0;color:#173f5c;font-size:1.28rem;line-height:1.5}
.contact-form-head p{margin:0;color:#657986;font-size:.82rem}
.contact-form-head .required{margin:0 5px 0 0}
.contact-form{margin-top:0}
.contact-form .form-row{margin-bottom:22px}
.contact-form label{display:block;margin-bottom:8px;color:#294b60;font-size:.92rem;font-weight:700}
.contact-form .required{margin-left:6px;padding:1px 7px;border-radius:999px;background:#fdecee;color:#a53545;font-size:.72rem;font-weight:700;vertical-align:middle}
.contact-form input[type=text],
.contact-form input[type=email],
.contact-form input[type=tel],
.contact-form select,
.contact-form textarea{width:100%;min-height:52px;padding:13px 15px;border:1px solid #c7d5de;border-radius:8px;background:#fff;color:#202830;font:inherit;font-size:1rem;transition:border-color .2s ease,box-shadow .2s ease}
.contact-form input:focus,
.contact-form select:focus,
.contact-form textarea:focus{outline:0;border-color:#3d91c7;box-shadow:0 0 0 3px rgba(61,145,199,.14)}
.contact-form textarea{min-height:180px;resize:vertical}
.contact-form .form-hint{margin-top:6px;color:#6d7e88;font-size:.82rem}
.contact-submit-row{display:flex;margin-top:30px;justify-content:center}
.contact-form .contact-submit{width:min(100%,360px);min-height:54px;padding:14px 38px;border:0;border-radius:9px;background:#1788d1;color:#fff;font-size:1rem;font-weight:700;cursor:pointer;box-shadow:0 8px 20px rgba(23,136,209,.18);transition:background-color .2s ease,transform .2s ease}
.contact-form .contact-submit:hover{background:#185a89}
@media(max-width:640px){.contact-page .legal-heading{text-align:left}.contact-page .legal-heading h1{font-size:1.65rem}.contact-form-card{padding:26px 20px 30px;border-radius:12px}.contact-form-head{display:block}.contact-form-head p{margin-top:6px}.contact-form .form-row{margin-bottom:20px}.contact-form .contact-submit{width:100%}}

/* jQuery Validate のエラー表示 */
.contact-form input.is-invalid,
.contact-form select.is-invalid,
.contact-form textarea.is-invalid{border-color:#d33f52;background:#fffafb;box-shadow:0 0 0 3px rgba(211,63,82,.14)}
.contact-form input.is-invalid:focus,
.contact-form select.is-invalid:focus,
.contact-form textarea.is-invalid:focus{border-color:#bd263b;box-shadow:0 0 0 4px rgba(211,63,82,.17)}
.contact-form .field-error{display:flex;margin:7px 0 0;padding:0;align-items:flex-start;gap:7px;border:0;background:transparent;color:#c52e42!important;font-size:.84rem;font-weight:700;line-height:1.55;animation:none}
.contact-form .field-error::before{content:"!";display:grid;flex:0 0 18px;width:18px;height:18px;margin-top:1px;place-items:center;border-radius:50%;background:#d33f52;color:#fff;font-size:.7rem;font-weight:900;line-height:1}

/* お問い合わせ 確認画面・完了画面 */
.contact-progress{display:grid;grid-template-columns:repeat(3,1fr);max-width:520px;margin:0 auto 28px;padding:0;list-style:none}
.contact-progress li{position:relative;display:flex;gap:9px;align-items:center;justify-content:center;color:#71838f;font-size:.85rem;font-weight:700}
.contact-progress li:not(:last-child)::after{content:"";position:absolute;top:50%;right:-18%;width:36%;height:1px;background:#d5e1e8}
.contact-progress li span{display:grid;width:30px;height:30px;place-items:center;border:1px solid #cbd9e1;border-radius:50%;background:#fff;color:#637987;font-size:.78rem;line-height:1}
.contact-progress li.is-current{color:#126fa8}
.contact-progress li.is-current span{border-color:#1788d1;background:#1788d1;color:#fff;box-shadow:0 4px 12px rgba(23,136,209,.2)}
.contact-progress li.is-done{color:#39745e}
.contact-progress li.is-done span{border-color:#c7e3d7;background:#e8f6ef;color:#257153}
.contact-confirm-head{margin-bottom:10px}
.contact-confirm-table{border-top:0}
.contact-confirm-table th{width:180px;background:#f7fafc}
.contact-confirm-table td{overflow-wrap:anywhere}
.contact-confirm-message{white-space:pre-line;line-height:1.9}
.contact-confirm-actions{display:flex;margin-top:32px;align-items:center;justify-content:center;gap:18px}
.contact-back{display:inline-flex;min-height:52px;padding:12px 24px;align-items:center;justify-content:center;border:1px solid #aac4d3;border-radius:9px;background:#fff;color:#315d75;font-size:.92rem;font-weight:700;text-decoration:none}
.contact-back:hover{border-color:#6699b8;background:#f5fafc}
a.contact-submit{display:inline-flex;align-items:center;justify-content:center;min-height:54px;padding:14px 38px;border-radius:9px;background:#1788d1;color:#fff;font-size:1rem;font-weight:700;text-decoration:none;box-shadow:0 8px 20px rgba(23,136,209,.18)}
a.contact-submit:hover{background:#185a89}
.contact-complete-card{padding:56px 40px;text-align:center}
.contact-complete-icon{display:grid;width:66px;height:66px;margin:0 auto 22px;place-items:center;border-radius:50%;background:#e9f7f0;color:#1f6b48;font-size:1.8rem;font-weight:700}
.contact-complete-text{margin:0;color:#294b60;font-size:1.05rem;line-height:1.9}
.contact-complete-actions{margin-top:34px}
@media(max-width:640px){.contact-progress{margin-bottom:22px}.contact-progress li{gap:6px;font-size:.78rem}.contact-progress li:not(:last-child)::after{right:-12%;width:24%}.contact-progress li span{width:28px;height:28px}.contact-confirm-head{display:block}.contact-confirm-table th,.contact-confirm-table td{padding:12px 14px}.contact-confirm-table th{padding-bottom:6px;background:#f7fafc}.contact-confirm-table td{padding-top:8px}.contact-confirm-actions{flex-direction:column-reverse;gap:12px}.contact-confirm-actions .contact-back,.contact-confirm-actions a.contact-submit,.contact-confirm-actions button.contact-submit{width:100%}.contact-complete-card{padding:40px 22px}}
