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