/* お問い合わせ（views/contact.ejs）と受付（views/contact-thanks.ejs） */
.ct { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--s-7); }
.ct-hd .eyebrow { margin-bottom: var(--s-5); }
.ct-t { font-size: var(--fs-3xl); letter-spacing: .12em; line-height: 1.45; }
.ct-lead { margin-top: var(--s-5); font-size: var(--fs-md); line-height: 2.1; color: var(--ink-2); }
.ct-info { margin-top: var(--s-6); border-top: 1px solid var(--rule); max-width: 420px; }
.ct-info > div { display: flex; align-items: center; justify-content: space-between; gap: var(--s-4); min-height: 56px; border-bottom: 1px solid var(--rule); font-size: var(--fs-sm); }
.ct-info dt { color: var(--ink-2); letter-spacing: .08em; }
.ct-info dd { margin: 0; letter-spacing: .06em; }
.ct-info .lnk { padding: 6px 0; }

.ct-form { min-width: 0; }
.ct-form .alert { margin-bottom: var(--s-5); }
.ct-form .field-row + .field { margin-top: var(--s-5); }
.ct-send { display: flex; flex-direction: column; gap: var(--s-4); margin-top: var(--s-6); padding-top: var(--s-5); border-top: 1px solid var(--rule); }
.ct-send .note a { color: var(--ink); }
.ct-send .btn { width: 100%; }
@media (min-width: 1000px) {
  .ct { grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: clamp(64px, 8vw, 140px); align-items: start; }
  .ct-hd { position: sticky; top: calc(var(--hd) + 48px); }
  .ct-send { flex-direction: row; align-items: center; justify-content: space-between; }
  .ct-send .btn { width: auto; min-width: 240px; }
}

/* 受付 */
.ct--done { display: block; }
.ct-done { max-width: 640px; margin-inline: auto; text-align: center; }
.ct-mark { width: 76px; height: 76px; margin: 0 auto var(--s-6); fill: none; stroke: var(--moss); stroke-width: 1.4; stroke-linecap: round; stroke-linejoin: round; }
.ct-mark circle { stroke: var(--rule-strong); stroke-dasharray: 240; stroke-dashoffset: 240; animation: ct-draw 1.2s var(--ease) .1s forwards; }
.ct-mark path { stroke-width: 2; stroke-dasharray: 48; stroke-dashoffset: 48; animation: ct-draw .7s var(--ease) .9s forwards; }
@keyframes ct-draw { to { stroke-dashoffset: 0; } }
.ct--done .ct-t { font-size: var(--fs-2xl); }
.ct-ticket { display: flex; align-items: center; justify-content: center; flex-wrap: wrap; gap: var(--s-3) var(--s-5); margin-top: var(--s-6); padding: var(--s-5) 0; border-block: 1px solid var(--rule); }
.ct-ticket__l { font-size: var(--fs-xs); letter-spacing: .24em; color: var(--ink-2); }
.ct-ticket__v { font-family: var(--f-min); font-size: var(--fs-xl); font-weight: 600; letter-spacing: .08em; word-break: break-all; }
.ct-acts { justify-content: center; margin-top: var(--s-6); }
.ct-again { margin-top: var(--s-4); }
.ct-faq { margin-top: var(--s-7); text-align: left; }
.ct-faq .acc__in > li { position: relative; padding-left: 1.3em; }
.ct-faq .acc__in > li::before { content: ""; position: absolute; left: .15em; top: 1em; width: .45em; height: 1px; background: currentColor; }
@media (max-width: 520px) { .ct-acts .btn { flex: 1 1 100%; } }
