/* ============================================================
   CONTACT PAGE
   ============================================================ */

.contact-page { max-width: 1200px; margin: 100px auto 0; padding: 20px 20px 60px; }
.contact-header { margin-bottom: 28px; }
.contact-header h1 { font-size: 2rem; font-weight: 800; margin: 0 0 6px; color: var(--text); }
.contact-subtitle { font-size: 0.95rem; color: var(--muted); margin: 0 0 20px; }

.contact-layout { display: grid; grid-template-columns: 1fr 340px; gap: 40px; align-items: start; }
@media (max-width: 860px) { .contact-layout { grid-template-columns: 1fr; } }

/* Form */
.contact-form-wrap { background: var(--card); border: 1px solid var(--border); border-radius: 14px; padding: 36px; }
.form-row-2 { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; }
@media (max-width: 560px) { .form-row-2 { grid-template-columns: 1fr; } .contact-form-wrap { padding: 24px; } }

.form-field { display: flex; flex-direction: column; margin-bottom: 22px; }
.form-field label { font-size: 0.82rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.06em; color: var(--muted); margin-bottom: 7px; }
.form-field input,
.form-field select,
.form-field textarea { background: var(--bg-soft); border: 1px solid var(--border); border-radius: 8px; color: var(--text); font-family: inherit; font-size: 0.95rem; padding: 10px 14px; transition: border-color 0.2s, box-shadow 0.2s; outline: none; width: 100%; box-sizing: border-box; }
.form-field input:focus,
.form-field select:focus,
.form-field textarea:focus { border-color: var(--brand); box-shadow: 0 0 0 3px rgba(215, 21, 58, 0.12); }
.form-field textarea { resize: vertical; min-height: 140px; line-height: 1.6; }
.form-field select { appearance: none; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%239aa4b2' stroke-width='1.8' fill='none' stroke-linecap='round'/%3E%3C/svg%3E"); background-repeat: no-repeat; background-position: right 14px center; padding-right: 38px; cursor: pointer; }
.form-field.has-error input,
.form-field.has-error select,
.form-field.has-error textarea { border-color: var(--brand); }
.field-error { display: none; font-size: 0.8rem; color: var(--brand); margin-top: 5px; font-weight: 600; }
.field-footer { display: flex; justify-content: space-between; align-items: flex-start; margin-top: 5px; min-height: 18px; }
.char-count { font-size: 0.78rem; color: var(--muted); white-space: nowrap; margin-left: auto; }
.char-count-warn { color: var(--brand); }
.form-error-banner { background: rgba(215, 21, 58, 0.08); border: 1px solid rgba(215, 21, 58, 0.3); border-radius: 8px; color: var(--brand); font-size: 0.9rem; font-weight: 600; padding: 12px 16px; margin-bottom: 20px; }
.contact-submit { background: var(--brand); border: none; border-radius: 8px; color: #fff; cursor: pointer; font-family: inherit; font-size: 0.95rem; font-weight: 700; padding: 13px 32px; transition: background 0.2s, opacity 0.2s; width: 100%; }
.contact-submit:hover { background: var(--brand-strong); }
.contact-submit:disabled { opacity: 0.6; cursor: not-allowed; }

/* Success state */
.contact-success { display: flex; flex-direction: column; align-items: center; text-align: center; padding: 40px 20px; gap: 12px; }
.contact-success .fa-check-circle { font-size: 3rem; color: var(--brand); }
.contact-success h2 { margin: 0; font-size: 1.5rem; font-weight: 800; color: var(--text); }
.contact-success p { margin: 0; color: var(--muted); font-size: 1rem; }

/* Aside */
.contact-aside { display: flex; flex-direction: column; gap: 20px; }
#sidebar-default,
#sidebar-guide,
#sidebar-sent { display: flex; flex-direction: column; gap: 20px; }
.contact-info-card { background: var(--card); border: 1px solid var(--border); border-radius: 14px; padding: 24px; }
.contact-info-card h3 { font-size: 0.82rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.06em; color: var(--muted); margin: 0 0 16px; }
.contact-info-list { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: 12px; }
.contact-info-list li { display: flex; align-items: center; gap: 10px; font-size: 0.95rem; color: var(--text); }
.contact-info-list i { color: var(--brand); width: 16px; text-align: center; flex-shrink: 0; }
.contact-info-list a { color: var(--text); text-decoration: none; font-weight: 600; transition: color 0.2s; }
.contact-info-list a:hover { color: var(--brand); }
.contact-reasons-list { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: 10px; }
.contact-reasons-list li { display: flex; align-items: flex-start; gap: 10px; font-size: 0.9rem; color: var(--muted); line-height: 1.4; }
.contact-reasons-list i { color: var(--brand); width: 16px; text-align: center; flex-shrink: 0; margin-top: 2px; }

/* Artwork reference banner */
.artwork-ref-wrap { display: flex; align-items: center; gap: 8px; background: rgba(215, 21, 58, 0.07); border: 1px solid rgba(215, 21, 58, 0.25); border-radius: 8px; padding: 10px 14px; margin-bottom: 20px; font-size: 0.9rem; font-weight: 600; color: var(--text); }
.artwork-ref-wrap i { color: var(--brand); flex-shrink: 0; }

/* Guide card */
.contact-guide-card h3 { color: var(--text); font-size: 0.95rem; text-transform: none; letter-spacing: 0; font-weight: 700; margin-bottom: 10px; }
.guide-body { font-size: 0.9rem; line-height: 1.65; color: var(--muted); margin: 0 0 10px; white-space: pre-line; }
.guide-body:last-child { margin-bottom: 0; }

/* Field extras */
.field-optional { font-size: 0.75rem; font-weight: 500; color: var(--muted); text-transform: none; letter-spacing: 0; margin-left: 6px; }
.field-readonly,
select.field-readonly { opacity: 1; cursor: default; background: rgba(215, 21, 58, 0.08) !important; border-color: rgba(215, 21, 58, 0.3) !important; color: var(--text) !important; }
