/* Contact: one invitation, one form. The form is a slip of paper because it is one. */
.p-contact .visit { padding-block: clamp(48px, 6.5vw, 104px) clamp(72px, 9vw, 140px); border-top: 2px solid var(--ink); }
.p-contact .visit-l { grid-column: 1 / 7; display: flex; flex-direction: column; gap: 22px; align-items: flex-start; }
.p-contact h1 { font-stretch: 125%; font-size: clamp(3.2rem, 9.4vw, 9rem); line-height: 0.86; margin-top: 6px; }
.p-contact .next { counter-reset: n; margin-top: 14px; width: 100%; max-width: 34rem; }
.p-contact .next li { counter-increment: n; display: grid; grid-template-columns: 2.2em minmax(0, 1fr); gap: 2px 8px; padding-block: 14px; border-top: 1px solid var(--hair); }
.p-contact .next li:last-child { border-bottom: 1px solid var(--hair); }
.p-contact .next li::before { content: "0" counter(n); font-family: var(--mono); font-size: 0.78rem; color: var(--ink-2); padding-top: 4px; grid-row: span 2; }
.p-contact .next b { font-stretch: 112%; } .p-contact .next span { color: var(--ink-2); grid-column: 2; }
.p-contact .direct { display: flex; flex-direction: column; gap: 6px; } .p-contact .direct a { font-family: var(--mono); font-size: 1.15rem; }
.p-contact .ticket { grid-column: 8 / 13; align-self: start; padding: clamp(20px, 2.6vw, 36px); display: flex; flex-direction: column; gap: 18px; transform: rotate(0.4deg); }
.p-contact .ticket-h { display: flex; justify-content: space-between; gap: 10px; flex-wrap: wrap; align-items: baseline; padding-bottom: 12px; border-bottom: 2px solid var(--ink); } .p-contact .ticket-h b { font-stretch: 112%; font-size: 1.2rem; }
.p-contact label { display: flex; flex-direction: column; gap: 6px; }
.p-contact input[type="text"], .p-contact textarea { font: inherit; font-size: 1.05rem; color: var(--ink); background: transparent; border: 0; border-bottom: 1px solid var(--ink); border-radius: 0; padding: 6px 0 8px; width: 100%; resize: vertical; }
.p-contact textarea { border: 1px solid var(--ink); padding: 10px 12px; min-height: 7.5em; }
.p-contact input:focus-visible, .p-contact textarea:focus-visible { outline: 3px solid var(--ink); outline-offset: 2px; }
.p-contact ::placeholder { color: var(--ink-2); opacity: 0.8; }
.p-contact fieldset { border: 0; padding: 0; margin: 0; display: flex; gap: 10px; flex-wrap: wrap; align-items: center; } .p-contact legend { padding: 0; margin-bottom: 8px; float: left; width: 100%; }
.p-contact .opt { flex-direction: row; align-items: center; gap: 0; cursor: pointer; }
.p-contact .opt input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.p-contact .opt span { border: 1px solid var(--ink); padding: 9px 16px; font-stretch: 112%; font-weight: 700; transition: background-color 0.2s, color 0.2s; }
.p-contact .opt input:checked + span { background: var(--ink); color: var(--paper); } .p-contact .opt input:focus-visible + span { outline: 3px solid var(--ink); outline-offset: 2px; }
.p-contact .ticket-f { display: flex; flex-direction: column; gap: 12px; align-items: flex-start; border-top: 1px solid var(--hair); padding-top: 18px; }
@media (max-width: 900px) { .p-contact .ticket { margin-top: 44px; transform: none; } }
