/* Public contact form and confirmation. */
.page-inner { min-height: 100dvh; padding: calc(var(--nav-h) + 4rem) 1.25rem 5rem; }
.inner-wrap, .contact-shell { width: min(1040px, 100%); margin: 0 auto; }
.inner-title { color: var(--text); font-size: clamp(2.2rem, 5vw, 3.75rem); font-weight: 400; line-height: 1.08; letter-spacing: -.05em; }
.inner-lead { color: var(--muted); font-size: .95rem; line-height: 1.75; }
.contact-hero { max-width: 680px; margin-bottom: 2.5rem; }
.contact-title { margin-bottom: .8rem; }
.contact-layout { display: grid; grid-template-columns: 280px minmax(0, 1fr); gap: 1rem; align-items: start; }
.contact-side { display: flex; flex-direction: column; gap: 1rem; }
.contact-side__card, .contact-card { border: 1px solid var(--border); border-radius: 16px; background: var(--bg1); }
.contact-side__card { padding: 1.35rem; }
.contact-side__icon { width: 40px; height: 40px; display: grid; place-items: center; margin-bottom: 1rem; border: 1px solid rgba(96, 165, 250, .2); border-radius: 50%; color: var(--accent-hi); background: rgba(59, 130, 246, .08); }
.contact-side__icon svg { width: 20px; height: 20px; }
.contact-side__card h2 { font-size: .9rem; font-weight: 600; }
.contact-side__card p, .contact-note span, .contact-actions__note { color: var(--muted); font-size: .75rem; line-height: 1.65; }
.contact-side__card p { margin-top: .5rem; }
.contact-side__list { padding: .35rem 1rem; }
.contact-note { display: flex; flex-direction: column; gap: .2rem; padding: .9rem 0; border-bottom: 1px solid var(--border); }
.contact-note:last-child { border-bottom: 0; }
.contact-note strong { color: var(--text); font-size: .72rem; font-weight: 550; }
.contact-card { padding: clamp(1.25rem, 4vw, 2rem); }
.contact-form { display: flex; flex-direction: column; gap: 1.15rem; }
.cf-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; }
.cf-group { display: flex; flex-direction: column; gap: .45rem; }
.cf-label { color: var(--text); font-size: .78rem; font-weight: 600; }
.cf-label-row { display: flex; align-items: center; justify-content: space-between; gap: 1rem; }
.cf-input, .cf-textarea { width: 100%; padding: .78rem .85rem; border: 1px solid var(--border-hi); border-radius: 9px; outline: 0; background: var(--bg0); color: var(--text); font: inherit; font-size: .82rem; transition: border-color var(--fast), box-shadow var(--fast); }
.cf-input:focus, .cf-textarea:focus { border-color: var(--accent); box-shadow: 0 0 0 3px var(--accent-glow); }
.cf-input::placeholder, .cf-textarea::placeholder { color: var(--muted2); }
.cf-select-wrap { position: relative; }
.cf-select-wrap::after { content: ""; position: absolute; top: 50%; right: .9rem; width: 7px; height: 7px; border-right: 1px solid var(--muted); border-bottom: 1px solid var(--muted); transform: translateY(-70%) rotate(45deg); pointer-events: none; }
.cf-select { padding-right: 2.4rem; appearance: none; }
.cf-help, .cf-hint, .cf-char-count { color: var(--muted2); font-size: .7rem; line-height: 1.5; }
.cf-hint, .cf-char-count { text-align: right; }
.cf-other[hidden] { display: none; }
.cf-textarea { min-height: 180px; resize: vertical; line-height: 1.65; }
.cf-char-count.warn { color: var(--warning); }
.cf-char-count.limit { color: var(--error); }
.contact-actions { display: flex; align-items: center; justify-content: space-between; gap: 1.25rem; }
.contact-actions__note { max-width: 360px; }
.cf-submit { min-height: 42px; padding: 0 1.2rem; border-radius: 9px; background: var(--accent); color: white; font-size: .78rem; font-weight: 600; transition: background var(--fast), transform var(--fast); }
.cf-submit:hover { background: var(--accent-hi); transform: translateY(-1px); }
.cf-error { padding: .85rem 1rem; border: 1px solid rgba(239, 68, 68, .2); border-radius: 12px; background: rgba(239, 68, 68, .08); color: #fca5a5; font-size: .8rem; }
.contact-error { margin-bottom: 1.25rem; }
.contact-error ul { display: flex; flex-direction: column; gap: .3rem; }
.success-icon { width: 56px; height: 56px; display: grid; place-items: center; margin-bottom: 1.5rem; border: 1px solid rgba(34, 197, 94, .25); border-radius: 50%; background: rgba(34, 197, 94, .12); }
.success-icon svg { width: 24px; height: 24px; color: var(--success); }

@media (max-width: 820px) { .contact-layout { grid-template-columns: 1fr; } .contact-side { display: grid; grid-template-columns: 1fr 1fr; } }
@media (max-width: 560px) { .page-inner { padding-inline: .85rem; } .contact-side, .cf-grid { grid-template-columns: 1fr; } .contact-actions { align-items: stretch; flex-direction: column; } .cf-submit { width: 100%; } }
