.contact-layout { display: grid; grid-template-columns: 1fr 360px; gap: var(--bc-sp-16); align-items: start; }

.contact-form { display: flex; flex-direction: column; gap: var(--bc-sp-6); }
.contact-form__row { display: flex; flex-direction: column; gap: var(--bc-sp-2); }
.contact-form__row label { font-size: 0.9rem; font-weight: 600; color: var(--bc-fg); }
.contact-form__row .required { color: var(--bc-danger); margin-left: 4px; font-size: 0.75rem; }
.contact-form input,
.contact-form textarea,
.contact-form select { padding: 12px 14px; border: 1px solid var(--bc-border); border-radius: var(--bc-radius-md); font-size: 1rem; font-family: inherit; background: var(--bc-paper); color: var(--bc-fg); transition: border-color var(--transition); width: 100%; appearance: none; -webkit-appearance: none; }
.contact-form select { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%23888' stroke-width='1.5' fill='none' stroke-linecap='round'/%3E%3C/svg%3E"); background-repeat: no-repeat; background-position: right 14px center; padding-right: 36px; }
.contact-form input:focus,
.contact-form textarea:focus,
.contact-form select:focus { outline: none; border-color: var(--bc-brand); }
.contact-form textarea { resize: vertical; min-height: 160px; }
.contact-form__privacy { font-size: 0.85rem; color: var(--bc-fg-muted); line-height: 1.8; }
.contact-form__privacy a { color: var(--bc-brand); }

.contact-info { background: var(--bc-paper-2); border-radius: var(--bc-radius-xl); padding: var(--bc-sp-8); }
.contact-info__item { display: flex; flex-direction: column; gap: 4px; padding: var(--bc-sp-4) 0; border-bottom: 1px solid var(--bc-border); }
.contact-info__item:last-child { border-bottom: none; }
.contact-info__label { font-size: 0.75rem; font-weight: 700; color: var(--bc-fg-muted); text-transform: uppercase; letter-spacing: 0.05em; }
.contact-info__value { font-size: 1rem; font-weight: 600; }
.contact-info__value a { color: var(--bc-brand); text-decoration: none; }
.contact-info__value a:hover { text-decoration: underline; }

.contact-success { text-align: center; padding: var(--bc-sp-16) 0; }
.contact-success__icon { font-size: 3rem; margin-bottom: var(--bc-sp-4); }

@media (max-width: 900px) {
  .contact-layout { grid-template-columns: 1fr; }
  .contact-info { order: -1; }
}

/* スパムボット用ハニーポット（視覚・スクリーンリーダー双方から隠す） */
.contact-form__hp {
  position: absolute !important;
  left: -9999px !important;
  width: 1px;
  height: 1px;
  overflow: hidden;
}
