@keyframes toastSlideIn{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes toastSlideOut{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(20px)}}@keyframes toolResultIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes spin{to{transform:rotate(1turn)}}@keyframes wizardFadeIn{0%{opacity:0;transform:translateX(10px)}to{opacity:1;transform:translateX(0)}}:root{--contact-accent:#60a5fa;--contact-accent-light:#93c5fd;--contact-bg:#fff;--contact-surface:#f8fafc;--contact-border:#e2e8f0;--contact-text:#0f172a;--contact-text-muted:#475569;--contact-danger:#ef4444}.contactPolicyPage{background:var(--contact-bg);color:var(--contact-text);min-height:100vh}.layout__main.contactPolicy{margin:0 auto;max-width:1400px;padding:0}.contactPolicyMainContent{padding:24px}@media(max-width:767px){.contactPolicyMainContent{padding:16px}}.contactPolicy__form{margin-bottom:24px}.contactPolicyForm{background:var(--contact-surface);border:1px solid var(--contact-border);border-radius:12px;padding:24px}@media(max-width:767px){.contactPolicyForm{padding:16px}}.contactPolicyForm__layout{display:grid;gap:32px;grid-template-columns:1fr 1fr}@media(max-width:1023px){.contactPolicyForm__layout{gap:24px;grid-template-columns:1fr}}.contactPolicyForm__left{display:flex;flex-direction:column;gap:20px}.contactPolicyForm__right{align-self:start;position:sticky;top:24px}@media(max-width:1023px){.contactPolicyForm__right{position:static}}.contactPolicyForm__title{color:var(--contact-text);font-size:1.8rem;font-weight:600;margin:0 0 8px}.contactPolicyForm__desc{color:var(--contact-text-muted);font-size:1.4rem;margin:0 0 20px}.contactPolicyForm__dl{display:flex;flex-direction:column;gap:20px;margin:0}.contactPolicyForm__row{display:flex;flex-direction:column;gap:8px}.contactPolicyForm__dt{margin:0}.contactPolicyForm__dt.contactPolicyForm__dt_required_true .contactPolicyForm__label:after{background:rgba(251,146,60,.2);border:1px solid rgba(251,146,60,.5);border-radius:4px;color:#fb923c;content:"必須";display:inline-block;font-size:1.1rem;font-weight:600;margin-left:8px;padding:2px 8px}.contactPolicyForm__dd{margin:0}.contactPolicyForm__label{align-items:center;color:var(--contact-text-muted);cursor:pointer;display:flex;font-size:1.4rem;font-weight:500;gap:10px}.contactPolicyForm__label span{color:var(--contact-text)}.contactPolicyForm__checkbox{accent-color:var(--contact-accent);cursor:pointer;height:20px;min-width:20px;width:20px}.contactPolicyForm__input,.contactPolicyForm__select{background:rgba(15,23,42,.6);border:1px solid var(--contact-border);border-radius:8px;color:var(--contact-text);font-size:1.5rem;padding:12px 16px;transition:border-color .2s ease;width:100%}.contactPolicyForm__input::-moz-placeholder,.contactPolicyForm__select::-moz-placeholder{color:rgba(148,163,184,.5)}.contactPolicyForm__input::placeholder,.contactPolicyForm__select::placeholder{color:rgba(148,163,184,.5)}.contactPolicyForm__input:focus,.contactPolicyForm__select:focus{border-color:var(--contact-accent);box-shadow:0 0 0 3px rgba(96,165,250,.15);outline:none}.contactPolicyForm__input[aria-invalid=true],.contactPolicyForm__select[aria-invalid=true]{border-color:var(--contact-danger)}.contactPolicyForm__textarea{background:rgba(15,23,42,.6);border:1px solid var(--contact-border);border-radius:8px;color:var(--contact-text);font-size:1.5rem;line-height:1.6;min-height:80px;padding:12px 16px;resize:vertical;transition:border-color .2s ease;width:100%}.contactPolicyForm__textarea::-moz-placeholder{color:rgba(148,163,184,.5)}.contactPolicyForm__textarea::placeholder{color:rgba(148,163,184,.5)}.contactPolicyForm__textarea:focus{border-color:var(--contact-accent);box-shadow:0 0 0 3px rgba(96,165,250,.15);outline:none}.contactPolicyForm__textarea[aria-invalid=true]{border-color:var(--contact-danger)}.contactPolicyForm__error{color:var(--contact-danger);font-size:1.2rem;min-height:1.2em}.contactPolicyForm__hint{color:var(--contact-text-muted);font-size:1.2rem;margin-top:4px}.contactPolicyForm__actions{border-top:1px solid var(--contact-border);display:flex;flex-wrap:wrap;gap:12px;padding-top:20px}.contactPolicyForm__generateButton{background:linear-gradient(135deg,var(--contact-accent-light) 0,var(--contact-accent) 100%);border:none;border-radius:8px;color:var(--contact-bg);cursor:pointer;font-size:1.5rem;font-weight:600;padding:14px 28px;transition:all .2s ease}.contactPolicyForm__generateButton:hover{box-shadow:0 4px 16px rgba(96,165,250,.4);transform:translateY(0)}.contactPolicyForm__clearButton{background:transparent;border:1px solid var(--contact-border);border-radius:8px;color:var(--contact-text-muted);cursor:pointer;font-size:1.4rem;font-weight:500;padding:14px 24px;transition:all .2s ease}.contactPolicyForm__clearButton:hover{border-color:var(--contact-text);color:var(--contact-text)}.contactPolicyForm__shareButton{background:rgba(96,165,250,.15);border:1px solid rgba(96,165,250,.3);border-radius:8px;color:var(--contact-accent-light);cursor:pointer;font-size:1.4rem;font-weight:500;padding:14px 24px;transition:all .2s ease}.contactPolicyForm__shareButton:hover{background:rgba(96,165,250,.25)}.contactPolicyResult{background:rgba(0,0,0,.2);border:1px solid var(--contact-border);border-radius:12px;padding:20px}.contactPolicyResult__title{border-bottom:1px solid var(--contact-border);color:var(--contact-text);font-size:1.6rem;font-weight:600;margin:0 0 16px;padding-bottom:12px}.contactPolicyResult__preview{background:#fff;border-radius:8px;color:#1f2937;font-size:1.3rem;line-height:1.7;max-height:600px;min-height:300px;overflow-y:auto;padding:20px}.contactPolicyResult__preview h1{color:#111827;font-size:1.8rem;margin:0 0 16px}.contactPolicyResult__preview h2{color:#111827;font-size:1.5rem;margin:24px 0 12px}.contactPolicyResult__preview h2:first-of-type{margin-top:0}.contactPolicyResult__preview p{color:#374151;margin:0 0 12px}.contactPolicyResult__preview ol,.contactPolicyResult__preview ul{margin:0 0 16px;padding-left:24px}.contactPolicyResult__preview li{color:#374151;margin-bottom:8px}.contactPolicyResult__placeholder{color:#9ca3af;font-style:italic;padding:60px 20px;text-align:center}.contactPolicyResult__previewContent{font-size:1.2rem;line-height:1.6}.contactPolicyResult__previewContent section{margin-bottom:0}.contactPolicyResult__previewContent .contactPage__title{border-bottom:2px solid #e5e7eb;color:#111827;font-size:1.6rem;font-weight:700;margin:0 0 16px;padding-bottom:12px}.contactPolicyResult__previewContent .contactPage__section{margin-bottom:20px}.contactPolicyResult__previewContent .contactPage__section:last-child{margin-bottom:0}.contactPolicyResult__previewContent .contactPage__heading{color:#111827;font-size:1.4rem;font-weight:600;margin:0 0 12px}.contactPolicyResult__previewContent .contactPage__text{color:#374151;font-size:1.2rem;line-height:1.7;margin:0 0 8px}.contactPolicyResult__previewContent .contactPage__text:last-child{margin-bottom:0}.contactPolicyResult__previewContent .contactPage__list{margin:0 0 12px;padding-left:20px}.contactPolicyResult__previewContent .contactPage__listItem{color:#374151;font-size:1.2rem;margin-bottom:6px}.contactPolicyResult__actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:16px}.contactPolicyResult__copyButton,.contactPolicyResult__downloadButton,.contactPolicyResult__printButton{background:rgba(96,165,250,.15);border:1px solid rgba(96,165,250,.3);border-radius:6px;color:var(--contact-accent-light);cursor:pointer;font-size:1.3rem;font-weight:500;padding:10px 16px;transition:all .2s ease}.contactPolicyResult__copyButton:hover:not(:disabled),.contactPolicyResult__downloadButton:hover:not(:disabled),.contactPolicyResult__printButton:hover:not(:disabled){background:rgba(96,165,250,.25)}.contactPolicyResult__copyButton:disabled,.contactPolicyResult__downloadButton:disabled,.contactPolicyResult__printButton:disabled{cursor:not-allowed;opacity:.4}.contactPolicy__formAd{margin-top:24px}.contactPolicy__faq{background:var(--contact-surface);border:1px solid var(--contact-border);border-radius:12px;margin-top:24px;padding:32px}@media(max-width:767px){.contactPolicy__faq{padding:20px}}.contactPolicy__faqContainer{margin:0 auto;max-width:800px}.contactPolicy__faqTitle{color:var(--contact-text);font-size:2rem;font-weight:700;margin:0 0 24px;text-align:center}.contactPolicy__faqList{display:flex;flex-direction:column;gap:16px;margin:0}.contactPolicy__faqItem{background:rgba(0,0,0,.2);border:1px solid var(--contact-border);border-radius:8px;padding:20px}.contactPolicy__faqQuestion{color:var(--contact-text);font-size:1.5rem;font-weight:600;margin:0 0 12px}.contactPolicy__faqQuestion:before{color:var(--contact-accent);content:"Q. "}.contactPolicy__faqAnswer{color:var(--contact-text-muted);font-size:1.4rem;line-height:1.7;margin:0}.contactPolicy__faqAnswer a{color:var(--contact-accent);text-decoration:none}.contactPolicy__faqAnswer a:hover{text-decoration:underline}.contactPolicyToast{background:var(--contact-surface);border:1px solid var(--contact-accent);border-radius:8px;bottom:24px;box-shadow:0 8px 24px rgba(0,0,0,.3);color:var(--contact-text);font-size:1.4rem;font-weight:500;left:50%;opacity:0;padding:14px 28px;position:fixed;transform:translateX(-50%) translateY(100px);transition:all .3s ease;visibility:hidden;z-index:1000}.contactPolicyToast.contactPolicyToast_success{border-color:var(--contact-accent)}.contactPolicyToast.contactPolicyToast_error{border-color:var(--contact-danger)}.contactPolicyLoading{align-items:center;background:rgba(15,23,42,.9);display:flex;flex-direction:column;inset:0;justify-content:center;position:fixed;z-index:1100}.contactPolicyLoading[aria-hidden=true]{display:none}.contactPolicyLoading__spinner{animation:contactPolicySpin 1s linear infinite;border:3px solid var(--contact-border);border-radius:50%;border-top-color:var(--contact-accent);height:40px;width:40px}.contactPolicyLoading__text{color:var(--contact-text-muted);font-size:1.4rem;margin-top:16px}@keyframes contactPolicySpin{to{transform:rotate(1turn)}}.adsSlot{background:rgba(0,0,0,.2);border:1px dashed var(--contact-border);border-radius:8px;padding:16px;text-align:center}.adsSlot__label{color:var(--contact-text-muted);font-size:1.1rem;margin:0 0 4px}.adsSlot__placeholder{color:var(--contact-text-muted);font-size:1.2rem;margin:0}@media print{.adsSlot,.contactPolicyForm__actions,.contactPolicyForm__left,.contactPolicyResult__actions,.contactPolicy__faq,.contactPolicy__formAd{display:none!important}.contactPolicyPage{background:#fff!important;color:#000!important}.contactPolicyForm__layout{grid-template-columns:1fr!important}.contactPolicyResult__preview{border:1px solid #e5e7eb;box-shadow:none}}