.contact-page{padding-top:calc(var(--nav-height) + var(--space-12));padding-bottom:var(--space-16);min-height:100vh}.contact-wrapper{gap:var(--space-12);grid-template-columns:1fr 1fr;align-items:center;display:grid}.contact-left{position:relative}.contact-scene{border-radius:var(--radius-xl);background:var(--gradient-subtle);width:100%;height:480px;overflow:hidden}.contact-info{margin-top:var(--space-8)}.contact-info-title{font-size:var(--text-3xl);margin-bottom:var(--space-4);font-weight:800}.contact-info-text{font-size:var(--text-base);color:var(--color-text-secondary);margin-bottom:var(--space-6);line-height:1.7}.contact-details{gap:var(--space-4);flex-direction:column;display:flex}.contact-detail{align-items:center;gap:var(--space-3);font-size:var(--text-sm);color:var(--color-text-secondary);display:flex}.contact-detail-icon{border-radius:var(--radius-md);background:var(--color-accent-bg);width:40px;height:40px;font-size:var(--text-lg);flex-shrink:0;justify-content:center;align-items:center;display:flex}.contact-right{background:var(--color-bg-alt);border:1px solid var(--color-border);border-radius:var(--radius-xl);padding:var(--space-10);box-shadow:var(--shadow-lg)}.form-header{margin-bottom:var(--space-8)}.form-title{font-size:var(--text-2xl);margin-bottom:var(--space-2);font-weight:700}.form-subtitle{font-size:var(--text-sm);color:var(--color-text-muted)}.contact-form{gap:var(--space-5);flex-direction:column;display:flex}.form-row{gap:var(--space-4);grid-template-columns:1fr 1fr;display:grid}.form-group{gap:var(--space-2);flex-direction:column;display:flex}.form-label{font-size:var(--text-sm);color:var(--color-text-primary);font-weight:500}.form-input,.form-textarea{width:100%;padding:var(--space-3) var(--space-4);font-family:var(--font-body);font-size:var(--text-sm);color:var(--color-text-primary);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);transition:all var(--transition-fast);outline:none}.form-input:focus,.form-textarea:focus{border-color:var(--color-accent);box-shadow:0 0 0 3px var(--color-accent-bg);background:var(--color-bg-alt)}.form-input::placeholder,.form-textarea::placeholder{color:var(--color-text-muted)}.form-textarea{resize:vertical;min-height:140px}.form-submit{width:100%;padding:var(--space-4) var(--space-8);font-size:var(--text-base);margin-top:var(--space-2)}.form-turnstile{justify-content:center;display:flex}.form-consent{margin-top:var(--space-1)}.consent-label{align-items:flex-start;gap:var(--space-3);cursor:pointer;display:flex;position:relative}.consent-checkbox{opacity:0;width:0;height:0;position:absolute}.consent-checkmark{border:2px solid var(--color-border);background:var(--color-surface);width:20px;height:20px;transition:all var(--transition-fast);border-radius:4px;flex-shrink:0;margin-top:2px;position:relative}.consent-checkbox:checked+.consent-checkmark{background:var(--color-accent);border-color:var(--color-accent)}.consent-checkbox:checked+.consent-checkmark:after{content:"";border:2px solid #fff;border-width:0 2px 2px 0;width:6px;height:11px;position:absolute;top:1px;left:5px;transform:rotate(45deg)}.consent-checkbox:focus-visible+.consent-checkmark{box-shadow:0 0 0 3px var(--color-accent-bg)}.consent-text{font-size:var(--text-xs);color:var(--color-text-muted);line-height:1.6}.consent-link{color:var(--color-accent);text-underline-offset:2px;transition:color var(--transition-fast);text-decoration:underline}.consent-link:hover{color:var(--color-accent-dark)}.form-status{margin-top:var(--space-4);text-align:center;font-weight:500;font-size:var(--text-sm);padding:var(--space-3) var(--space-4);border-radius:var(--radius-md)}.form-status-success{color:#059669;background:#05966914;border:1px solid #05966926}.form-status-error{color:#dc2626;background:#dc262614;border:1px solid #dc262626}.form-field-error{font-size:var(--text-xs);color:#dc2626;margin-top:6px;font-weight:500}.form-char-count{font-size:var(--text-xs);color:var(--color-text-secondary);text-align:right;margin-top:6px}.form-char-count--limit{color:#dc2626}.form-input.form-input--error,.form-textarea.form-input--error{border-color:#dc2626}@media (width<=1024px){.contact-wrapper{gap:var(--space-8);grid-template-columns:1fr}.contact-scene{height:320px}}@media (width<=768px){.contact-info{margin-top:0}.form-row{grid-template-columns:1fr}.contact-right{padding:var(--space-6)}}
