body.contact-page{background-color:var(--color-bg)}.contact-main{position:relative;z-index:1}.contact-phrase{display:inline-block}.contact-glow{--glow: 0;position:fixed;top:0;right:0;bottom:0;left:0;z-index:0;pointer-events:none;overflow:hidden;animation:glow-in 3.2s ease-out both}@keyframes glow-in{0%{opacity:0;transform:scale(.85)}to{opacity:1;transform:none}}.contact-glow__door,.contact-glow__halo{position:absolute;top:0;right:0;bottom:0;left:0;transition:opacity 1.6s ease,transform 1.6s cubic-bezier(.22,1,.36,1)}.contact-glow__door{background:radial-gradient(ellipse 16% 40% at 50% 34%,rgba(150,210,255,.2),rgba(124,196,255,.07) 55%,transparent 75%);opacity:calc(.45 + var(--glow) * .55);transform:scale(calc(.92 + var(--glow) * .16))}.contact-glow__halo{background:radial-gradient(ellipse 60% 55% at 50% 36%,rgba(40,90,160,.22),transparent 70%);opacity:calc(.4 + var(--glow) * .6)}.contact-glow.is-burst .contact-glow__door{opacity:1;transform:scale(5);transition-duration:1.8s}.contact-glow.is-burst .contact-glow__halo{opacity:1;transform:scale(2.2);transition-duration:1.8s}.contact-glow.is-done .contact-glow__door{opacity:.7;transform:scale(3);transition-duration:2.4s}.contact-glow.is-done .contact-glow__halo{opacity:.8;transform:scale(1.6);transition-duration:2.4s}.contact-hero{min-height:62vh;min-height:62svh;display:grid;place-content:center;justify-items:center;gap:clamp(1.4rem,3.6vh,2.2rem);padding:calc(var(--header-h) + 6vh) var(--gutter) 4vh;text-align:center}.contact-hero>*{margin:0}.contact-hero__label{display:flex;align-items:baseline;gap:.9em;font-size:.8rem;letter-spacing:.24em;color:var(--color-text-sub)}.contact-hero__slash{color:var(--color-text-faint)}.contact-hero__en{font-family:var(--font-en);font-weight:300;letter-spacing:.4em;color:var(--color-glow)}.contact-hero__copy{margin-right:-.14em;font-family:var(--font-mincho);font-weight:500;font-size:clamp(1.7rem,4vw,3.2rem);line-height:1.7;letter-spacing:.14em;text-shadow:0 0 40px rgba(124,196,255,.12)}.contact-assure{font-size:clamp(.88rem,1.2vw,.98rem);line-height:2;letter-spacing:.12em;color:#e8eef7c7}.sound-toggle-wrap{display:flex;justify-content:flex-end;margin-bottom:1rem}.sound-toggle{display:inline-flex;align-items:center;gap:.6em;min-height:40px;padding:.4em .9em;border:1px solid rgba(232,238,247,.12);border-radius:999px;background:#0a0e1a99;color:var(--color-text-sub);font:inherit;font-size:.74rem;letter-spacing:.12em;cursor:pointer;transition:border-color .4s var(--ease-out),color .4s var(--ease-out)}.sound-toggle:hover,.sound-toggle:focus-visible{border-color:#7cc4ff73;color:var(--color-text)}.sound-toggle__state{font-size:.9em;color:var(--color-glow)}.sound-toggle[aria-pressed=false] .sound-toggle__state{color:var(--color-text-faint)}.sound-toggle__icon{display:inline-flex;align-items:flex-end;gap:2px;height:10px}.sound-toggle__icon i{width:2px;border-radius:1px;background:var(--color-glow);transition:height .4s var(--ease-out),opacity .4s}.sound-toggle__icon i:nth-child(1){height:4px}.sound-toggle__icon i:nth-child(2){height:10px}.sound-toggle__icon i:nth-child(3){height:7px}.sound-toggle[aria-pressed=false] .sound-toggle__icon i{height:2px;opacity:.5}.contact-form-area{width:min(640px,100%);margin:0 auto;padding:clamp(24px,5vh,48px) var(--gutter) clamp(100px,16vh,160px)}.contact-form{display:grid;gap:clamp(1.8rem,4vh,2.4rem)}.contact-form[hidden]{display:none}.field{display:grid;gap:.7rem;margin:0;padding:0;border:0;min-width:0}.field__label{display:flex;align-items:center;gap:.8em;padding:0;font-size:.92rem;font-weight:400;letter-spacing:.12em;color:var(--color-text)}.field__req{padding:.1em .7em;border:1px solid rgba(124,196,255,.45);border-radius:999px;font-size:.66rem;letter-spacing:.16em;color:var(--color-glow)}.field__note{font-size:.72rem;letter-spacing:.1em;color:var(--color-text-faint)}.field__input{width:100%;min-height:52px;padding:.85em 1em;border:1px solid rgba(232,238,247,.14);border-radius:10px;background:#0a0e1ab8;color:var(--color-text);font:inherit;font-size:1rem;font-weight:300;letter-spacing:.06em;line-height:1.6;transition:border-color .4s var(--ease-out),box-shadow .4s var(--ease-out),background-color .4s var(--ease-out);-webkit-appearance:none;-moz-appearance:none;appearance:none}.field__input--area{min-height:9em;resize:vertical}.field__input::placeholder{color:#e8eef74d}.field__input:hover{border-color:#e8eef73d}.field__input:focus{outline:none;border-color:#7cc4ffbf;background:#0c1222d9;box-shadow:0 0 0 1px #7cc4ff40,0 0 18px #7cc4ff1f}.field__hint{margin:0;min-height:0;font-size:.8rem;line-height:1.7;letter-spacing:.06em;color:#c9d8ec}.field__hint:empty{display:none}.field__hint:before{content:"";display:inline-block;width:5px;height:5px;margin:0 .6em .15em .1em;border-radius:50%;background:var(--color-glow);box-shadow:0 0 6px #7cc4ffb3;vertical-align:middle}.field--required .field__input,.field--required .choice{border-color:#7cc4ff80}.field--required .field__input:hover,.field--required .choice:hover{border-color:#7cc4ffb3}.field--required .field__input:focus{border-color:#7cc4ffd9}.field.is-invalid .field__input{border-color:#c9d8ec80}.field[hidden]{display:none}.choices{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.7rem}.choices--inline{display:flex;flex-wrap:wrap;gap:.7rem}.choice{position:relative;display:flex;align-items:center;gap:.8em;min-height:52px;padding:.7em 1em;border:1px solid rgba(232,238,247,.14);border-radius:10px;background:#0a0e1ab8;font-size:.92rem;letter-spacing:.08em;cursor:pointer;transition:border-color .4s var(--ease-out),background-color .4s var(--ease-out),box-shadow .4s var(--ease-out)}.choices--inline .choice{min-width:9em}.choice input{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;margin:0;opacity:0;cursor:pointer}.choice__box{position:relative;flex:none;width:18px;height:18px;border:1px solid rgba(232,238,247,.35);border-radius:4px;transition:border-color .3s,background-color .3s,box-shadow .3s}.choice--radio .choice__box{border-radius:50%}.choice__box:after{content:"";position:absolute;left:5px;top:1px;width:5px;height:10px;border-right:1.5px solid #05070f;border-bottom:1.5px solid #05070f;transform:rotate(45deg) scale(0);transition:transform .25s var(--ease-out)}.choice--radio .choice__box:after{left:4px;top:4px;width:8px;height:8px;border:0;border-radius:50%;background:#05070f;transform:scale(0)}.choice:has(input:checked){border-color:#7cc4ff99;background:#7cc4ff12}.choice input:checked+.choice__box{border-color:var(--color-glow);background:var(--color-glow);box-shadow:0 0 10px #7cc4ff80}.choice input:checked+.choice__box:after{transform:rotate(45deg) scale(1)}.choice--radio input:checked+.choice__box:after{transform:scale(1)}.choice:has(input:focus-visible){border-color:#7cc4ffbf;box-shadow:0 0 0 1px #7cc4ff40,0 0 18px #7cc4ff1f}.choice__mark{margin-right:.25em;font-family:var(--font-mincho);color:var(--color-glow)}.choice--consent{min-height:48px;padding:.4em 0;border:0;background:none;font-size:.88rem}.choice--consent:has(input:checked){border:0;background:none}.choice--consent a{position:relative;z-index:1;color:var(--color-glow);border-bottom:1px solid rgba(124,196,255,.4);transition:border-color .4s}.choice--consent a:hover,.choice--consent a:focus-visible{border-color:var(--color-glow)}.contact-submit-area{display:grid;justify-items:center;gap:1rem;margin-top:.6rem}.contact-submit{font-family:inherit;color:var(--color-text);cursor:pointer}.contact-submit[disabled]{opacity:.6;cursor:progress}.contact-send-error{margin:0;font-size:.82rem;line-height:1.8;color:#c9d8ec;text-align:center}.contact-done{display:grid;justify-items:center;gap:1.1rem;padding:clamp(40px,10vh,100px) 0;text-align:center;outline:none}.contact-done[hidden]{display:none}.contact-done__line{margin:0;font-size:clamp(.92rem,1.3vw,1.02rem);line-height:2.1;letter-spacing:.1em;color:#e8eef7d1;word-break:keep-all}.contact-done__line--lead{margin-bottom:.6rem;font-family:var(--font-mincho);font-weight:500;font-size:clamp(1.4rem,3vw,2.1rem);line-height:1.7;letter-spacing:.12em;color:var(--color-text);text-shadow:0 0 30px rgba(124,196,255,.25)}.contact-other{width:min(640px,100%);margin:0 auto;padding:0 var(--gutter) clamp(80px,14vh,140px);display:grid;justify-items:center;gap:1.4rem;text-align:center}.contact-other__title{margin:0;font-family:var(--font-mincho);font-weight:500;font-size:1rem;letter-spacing:.22em;color:var(--color-text-sub)}.contact-other__list{margin:0;display:grid;gap:.6rem;font-size:.86rem;letter-spacing:.08em}.contact-other__row{display:flex;justify-content:center;gap:1.4em}.contact-other__row dt{min-width:4.5em;text-align:right;color:var(--color-text-faint)}.contact-other__row dd{margin:0;min-width:13em;text-align:left;color:var(--color-text-sub)}.contact-other__row a{color:var(--color-text);border-bottom:1px solid rgba(124,196,255,.3);transition:border-color .4s}.contact-other__row a:hover,.contact-other__row a:focus-visible{border-color:var(--color-glow)}@media(max-width:600px){.choices{grid-template-columns:minmax(0,1fr)}.choices--inline .choice{flex:1;min-width:0}.contact-other__row dd{min-width:0}}@media(prefers-reduced-motion:reduce){.contact-glow{animation:none}.contact-glow__door,.contact-glow__halo{transition:none}}

/* 背景の細長い光(扉の光)は使わない */
.contact-glow{display:none}
/* 送信後(お礼の言葉が出たあと)は、「入力の音」の切り替えも出さない */
.contact-form-area:has(.contact-done:not([hidden])) .sound-toggle-wrap{display:none}
/* 送信後は「お問い合わせありがとうございます。」のページだけにする
   (上の「なりたい姿をお聞かせください。」と「ほかの連絡方法」はしまい、お礼の言葉を画面の真ん中に置く) */
body:has(.contact-done:not([hidden])) .contact-hero,
body:has(.contact-done:not([hidden])) .contact-other{display:none}
.contact-form-area:has(.contact-done:not([hidden])){min-height:100vh;min-height:100svh;display:grid;align-content:center;padding-top:var(--header-h);padding-bottom:var(--header-h)}
