/* /contact — 問い合わせフォーム。ホームの明るい配色（.artist-home）に合わせる */
.contact-main{padding:72px 0 110px}
.contact-wrap{display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);gap:7%;align-items:start}
.contact-logo{display:block;width:clamp(190px,24vw,340px);max-width:100%;margin:0 0 34px}
.contact-logo img{display:block;width:100%;height:auto;filter:none}
.contact-intro h1{font-family:var(--mincho);font-size:clamp(40px,5vw,64px);font-weight:400;letter-spacing:.14em;line-height:1.4;margin:18px 0 26px}
.contact-lead{font-family:var(--mincho);font-size:clamp(16px,1.4vw,19px);line-height:2.1;letter-spacing:.08em;margin-bottom:34px}
.contact-notes{list-style:none;border-top:1px solid var(--line);font-size:13px;line-height:1.9;color:var(--mute)}
.contact-notes li{padding:13px 0 13px 1.2em;border-bottom:1px solid var(--line);position:relative}
.contact-notes li::before{content:"";position:absolute;left:0;top:1.35em;width:5px;height:5px;border-radius:50%;background:var(--crimson)}
.contact-notes strong{color:var(--ink);font-weight:600}

.contact-card{background:#fff;border:1px solid var(--line);padding:clamp(24px,4vw,48px);box-shadow:0 12px 30px #0000000d}
.field{margin-bottom:26px}
.field>label,.field .check{font-size:13px;letter-spacing:.08em}
.field>label{display:block;margin-bottom:9px;font-weight:500}
.req,.opt{display:inline-block;margin-left:8px;padding:1px 8px;font-size:11px;letter-spacing:.06em;vertical-align:1px}
.req{background:var(--crimson);color:#fff}
.opt{background:var(--bg2);color:var(--mute)}
.contact-card input[type=text],.contact-card input[type=email],.contact-card select,.contact-card textarea{
  width:100%;padding:13px 14px;font:16px/1.6 var(--sans);color:var(--ink);background:#fbfbfa;
  border:1px solid #b9bbb5;border-radius:0;appearance:none;-webkit-appearance:none}
.contact-card select{background-image:linear-gradient(45deg,transparent 50%,var(--ink) 50%),linear-gradient(135deg,var(--ink) 50%,transparent 50%);
  background-position:calc(100% - 20px) 52%,calc(100% - 14px) 52%;background-size:6px 6px;background-repeat:no-repeat;padding-right:40px}
.contact-card textarea{resize:vertical;min-height:170px}
.contact-card input:focus,.contact-card select:focus,.contact-card textarea:focus{outline:2px solid var(--crimson);outline-offset:1px;border-color:var(--crimson);background:#fff}
.field.invalid input,.field.invalid select,.field.invalid textarea{border-color:var(--crimson);background:#fff7f8}
.check{display:flex;gap:12px;align-items:flex-start;cursor:pointer;line-height:1.7}
.check input{width:20px;height:20px;margin-top:2px;flex-shrink:0;accent-color:var(--crimson)}
.check a{border-bottom:1px solid currentColor}
.check a:hover{color:var(--crimson)}
.error{min-height:0;margin-top:7px;font-size:12px;line-height:1.6;letter-spacing:.04em;color:var(--crimson)}
.error:empty{display:none}
.form-error{padding:12px 14px;margin:0 0 18px;border:1px solid var(--crimson);background:#fff7f8}
.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}

.submit{display:flex;justify-content:space-between;align-items:center;gap:22px;width:100%;max-width:340px;
  background:var(--ink);color:#fff;border:0;cursor:pointer;font:14px var(--sans);letter-spacing:.06em;padding:18px 24px;transition:background .2s}
.submit:hover{background:var(--crimson)}
.submit:focus-visible{outline:2px solid var(--crimson);outline-offset:4px}
.submit[disabled]{opacity:.55;cursor:progress;background:var(--ink)}

.done{text-align:left;padding:8px 0}
.done h2{font-family:var(--mincho);font-size:clamp(32px,4vw,44px);font-weight:400;letter-spacing:.14em;margin:16px 0 22px}
.done p:not(.small-label){font-family:var(--mincho);line-height:2.1;letter-spacing:.06em;margin-bottom:30px}
.done:focus{outline:none}

.home-nav nav a[aria-current=page]{color:var(--crimson)}
.footer-links a[aria-current=page]{color:#e57885}

@media(max-width:1000px){.contact-wrap{grid-template-columns:1fr;gap:44px}.contact-main{padding:48px 0 80px}}
@media(max-width:680px){.contact-card{padding:22px 18px}.submit{max-width:none}}
