/* 空き家まるっと管理 — contact.css（お問い合わせページ専用。他ページには読み込まない）
   独自フォームの入力・確認・受付・失敗パネル。色・角丸・影は style.css のトークンを使う。 */
.contact-main { display: grid; gap: 1.25rem; min-width: 0; align-content: start; }
.contact-main [hidden] { display: none !important; }

.cform { display: grid; gap: 1.5rem; min-width: 0; }
.cform__legend { color: var(--ink-2); font-size: .9375rem; }
.cf-req, .cf-opt { display: inline-block; margin-left: .35rem; padding: .05rem .5rem; border-radius: 999px; font-size: .72rem; font-weight: 700; letter-spacing: .04em; vertical-align: middle; }
.cf-req { background: var(--orange-tint); color: var(--orange-ink); }
.cf-opt { background: var(--sand); color: var(--ink-2); }

.cform__group { min-width: 0; margin: 0; padding: clamp(1.1rem, 3vw, 1.6rem); border: 1px solid var(--line); border-radius: var(--radius-l); background: var(--white); box-shadow: var(--shadow-s); display: grid; gap: 1.1rem; }
.cform__group > legend { padding: 0 .4rem; font-family: var(--font-head); font-weight: 600; font-size: 1.125rem; color: var(--ink); }

.cf-field { display: grid; gap: .4rem; min-width: 0; }
.cf-field--group { margin: 0; padding: 0; border: 0; }
.cf-field--group > legend { padding: 0; margin-bottom: .4rem; }
.cf-label { font-weight: 700; font-size: .9875rem; }
.cf-hint { color: var(--ink-3); font-size: .875rem; }
.cf-hint a { color: var(--teal-d); font-weight: 700; }

.cf-input, .cf-select, .cf-textarea { width: 100%; min-height: 48px; padding: .65rem .85rem; font: inherit; font-size: 1rem; line-height: 1.5; color: var(--ink); background: var(--white); border: 1.5px solid var(--line-strong); border-radius: var(--radius-s); }
.cf-textarea { min-height: 7.5rem; resize: vertical; line-height: 1.6; }
.cf-select { appearance: none; -webkit-appearance: none; padding-right: 2.6rem; background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='9' viewBox='0 0 14 9'%3E%3Cpath d='M1 1l6 6 6-6' fill='none' stroke='%230B6B5B' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E"); background-repeat: no-repeat; background-position: right .95rem center; background-size: 14px 9px; }
.cf-input:focus-visible, .cf-select:focus-visible, .cf-textarea:focus-visible { outline: 3px solid var(--teal); outline-offset: 2px; border-color: var(--teal-d); border-radius: var(--radius-s); }
.cf-input[aria-invalid="true"], .cf-select[aria-invalid="true"], .cf-textarea[aria-invalid="true"] { border-color: var(--red-ink); background: #FFFBFA; }

.cf-choices { display: grid; gap: .5rem; }
@media (min-width: 600px) { .cf-choices { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.cf-choice { display: flex; align-items: flex-start; gap: .6rem; min-height: 48px; padding: .6rem .8rem; border: 1.5px solid var(--line); border-radius: var(--radius-s); background: var(--paper); font-size: .9875rem; cursor: pointer; }
.cf-choice input { flex: none; width: 1.15rem; height: 1.15rem; margin: .15rem 0 0; accent-color: var(--teal-d); }
.cf-choice:has(input:checked) { border-color: var(--teal-d); background: var(--teal-tint); }
.cf-choice:has(input:focus-visible) { outline: 3px solid var(--teal); outline-offset: 2px; }
.cf-choice:has(input[aria-invalid="true"]) { border-color: var(--red-ink); }

.cf-error { color: var(--red-ink); font-size: .875rem; font-weight: 700; }
.cform__summary { padding: 1rem 1.25rem; border: 1.5px solid var(--red-ink); border-radius: var(--radius-m); background: var(--red-tint); display: grid; gap: .5rem; }
.cform__summary h3 { font-family: var(--font-body); font-size: 1rem; color: var(--red-ink); }
.cform__summary ul { margin: 0; padding-left: 1.2rem; display: grid; gap: .25rem; }
.cform__summary a { color: var(--red-ink); font-weight: 700; }
.cform__summary:focus, .cform__panel:focus { outline: 3px solid var(--teal); outline-offset: 3px; }

.cform__details { border: 1px solid var(--line); border-radius: var(--radius-l); background: var(--white); box-shadow: var(--shadow-s); min-width: 0; }
.cform__details > summary { display: flex; align-items: center; gap: .6rem; padding: 1rem clamp(1.1rem, 3vw, 1.6rem); font-weight: 700; cursor: pointer; list-style: none; border-radius: var(--radius-l); }
.cform__details > summary::-webkit-details-marker { display: none; }
.cform__details > summary::before { content: ""; flex: none; width: .55rem; height: .55rem; border-right: 2px solid var(--teal-d); border-bottom: 2px solid var(--teal-d); transform: rotate(-45deg); transition: transform var(--ease); }
.cform__details[open] > summary::before { transform: rotate(45deg); }
.cform__details-body { padding: .25rem clamp(1.1rem, 3vw, 1.6rem) clamp(1.1rem, 3vw, 1.6rem); display: grid; gap: 1.1rem; }

.cform__hp { position: absolute; left: -10000px; top: auto; width: 1px; height: 1px; overflow: hidden; }
.cform__note, .cform__fallback { color: var(--ink-2); font-size: .9375rem; }

.cform__dev { padding: .75rem 1rem; border: 1.5px dashed var(--orange-d); border-radius: var(--radius-m); background: var(--orange-tint); color: var(--orange-ink); font-size: .9375rem; font-weight: 700; }
.cform__unavailable { padding: 1rem 1.25rem; border-left: 4px solid var(--red-ink); border-radius: var(--radius-m); background: var(--red-tint); color: var(--ink); }
.cform__unavailable a { color: var(--red-ink); font-weight: 700; }

.cform__panel { padding: clamp(1.25rem, 3vw, 1.75rem); border: 1px solid var(--line); border-radius: var(--radius-l); background: var(--white); box-shadow: var(--shadow-s); display: grid; gap: 1rem; min-width: 0; }
.cform__panel h3 { font-family: var(--font-head); font-size: 1.25rem; }
.cform__panel--done { border-color: var(--teal-tint-2); background: var(--teal-tint); }
.cform__panel--fail { border-left: 4px solid var(--red-ink); }
.cform__confirm-list { margin: 0; display: grid; gap: 0; }
.cform__confirm-list > div { display: grid; grid-template-columns: minmax(0, 1fr); gap: .15rem; padding: .6rem 0; border-bottom: 1px solid var(--line); }
@media (min-width: 600px) { .cform__confirm-list > div { grid-template-columns: 11rem minmax(0, 1fr); gap: 1rem; } }
.cform__confirm-list dt { font-weight: 700; color: var(--ink-2); font-size: .9375rem; }
.cform__confirm-list dd { margin: 0; white-space: pre-wrap; overflow-wrap: anywhere; }
.cform__status { min-height: 1.5em; color: var(--ink-2); font-weight: 700; }
.cform__receipt { font-size: 1.25rem; font-weight: 700; letter-spacing: .04em; }
.contact-main .btn[disabled] { opacity: .55; cursor: not-allowed; transform: none; box-shadow: none; }

@media (prefers-reduced-motion: reduce) { .cform__details > summary::before { transition: none; } }
