/* Contact form delivery feedback and Turnstile widget. */
.contact-challenge { grid-column: 1 / -1; display: grid; gap: 8px; justify-items: start; padding: 14px; border: 1px solid var(--line, #d7ded4); background: var(--paper, #fffefa); }
.contact-challenge p { margin: 0; font-size: 13px; font-weight: 700; }
.contact-challenge #contact-turnstile { min-height: 65px; width: 100%; }
.contact-challenge small { color: var(--muted); font-size: 12px; }
#contact-turnstile-note[data-state="verified"] { color: var(--forest, #315f4b); font-weight: 650; }
#contact-turnstile-note[data-state="error"] { color: var(--terra-ink, #79462f); }
.contact-turnstile-retry { justify-self: start; border: 0; padding: 0; color: var(--forest, #315f4b); background: transparent; font: inherit; font-size: 13px; font-weight: 700; text-decoration: underline; text-underline-offset: 3px; cursor: pointer; }
.contact-form-status { display: none; align-items: flex-start; gap: 9px; margin: 0; padding: 12px 14px; border: 1px solid transparent; }
.contact-form-status[data-state="error"], .contact-form-status[data-state="success"], .contact-form-status[data-state="info"] { display: flex; background: var(--leaf, #e8eddf); }
.contact-form-status.is-error { background: #f5e8df; border-color: #e6c9b8; color: var(--terra-ink, #79462f); }
.contact-form-status.is-success { border-color: #cbd9c5; color: var(--ink, #193d36); }
.contact-status-icon { display: none; flex: 0 0 20px; width: 20px; height: 20px; margin-top: 1px; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.contact-form-status.is-success .contact-status-success,
.contact-form-status.is-error .contact-status-error { display: block; }
.contact-actions .btn:disabled { cursor: wait; opacity: .72; }
.contact-success-dialog { width: min(440px, calc(100vw - 32px)); border: 1px solid var(--line, #d8dfd4); border-radius: 18px; padding: 34px 34px 30px; color: var(--ink, #193d36); background: var(--paper, #fffefa); text-align: center; box-shadow: 0 24px 72px rgb(25 61 54 / 22%); }
.contact-success-dialog[open] { animation: contact-dialog-in 220ms cubic-bezier(.2,.8,.2,1) both; }
.contact-success-dialog::backdrop { background: rgb(17 32 28 / 48%); }
.contact-success-mark { display: grid; width: 60px; height: 60px; margin: 0 auto 20px; place-items: center; border-radius: 50%; color: var(--paper, #fffefa); background: var(--forest, #315f4b); }
.contact-success-mark svg { width: 29px; height: 29px; stroke: currentColor; stroke-width: 2.5; stroke-linecap: round; stroke-linejoin: round; }
.contact-success-dialog h2 { margin: 0 0 10px; font-family: Georgia, 'Times New Roman', serif; font-size: clamp(24px, 5vw, 30px); line-height: 1.15; }
.contact-success-dialog p { margin: 0 auto 24px; max-width: 34ch; color: var(--muted, #52665e); line-height: 1.65; }
.contact-success-dialog form { margin: 0; }
.contact-success-dialog .btn { justify-content: center; min-height: 48px; }
@keyframes contact-dialog-in { from { opacity: 0; transform: translateY(10px) scale(.985); } to { opacity: 1; transform: translateY(0) scale(1); } }
@media (prefers-reduced-motion: reduce) { .contact-success-dialog[open] { animation: none; } }
