/* ============================================================ CONTACT — LAYOUT C 3-column: info left, form center, decorative accent right. Editorial feel, visually rich. ============================================================ */ .contact-c { padding: 6rem 0; background-color: var(--color-bg); transition: background-color 0.4s ease; } .contact-c-inner { display: grid; grid-template-columns: 1fr 2fr 1fr; gap: 3rem; align-items: start; } /* ── Left: info ────────────────────────────────────────── */ .contact-c-info {} .contact-c-info .section-label { margin-bottom: 0.5rem; } .contact-c-info .section-title { font-size: 1.6rem; margin-bottom: 0.75rem; } .contact-c-info .section-subtitle { font-size: 0.9rem; margin-bottom: 2rem; } .contact-c-details { display: flex; flex-direction: column; gap: 1.25rem; } .contact-c-detail-item { display: flex; align-items: flex-start; gap: 0.75rem; } .contact-c-detail-icon { width: 36px; height: 36px; flex-shrink: 0; border-radius: var(--radius-md); background-color: var(--color-primary-soft); display: flex; align-items: center; justify-content: center; transition: background-color 0.3s ease; } .contact-c-detail-icon svg { width: 16px; height: 16px; stroke: var(--color-primary); fill: none; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; transition: stroke 0.3s ease; } .contact-c-detail-item:hover .contact-c-detail-icon { background-color: var(--color-primary); } .contact-c-detail-item:hover .contact-c-detail-icon svg { stroke: var(--color-btn-text); } .contact-c-detail-label { font-size: 0.7rem; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; color: var(--color-text-muted); margin-bottom: 0.15rem; } .contact-c-detail-value { font-size: 0.88rem; font-weight: 500; color: var(--color-heading); } /* ── Center: form ──────────────────────────────────────── */ .contact-c-form-wrap { background-color: var(--card-bg); border: 1px solid var(--card-border); border-radius: var(--radius-xl); padding: 2rem; box-shadow: var(--color-card-shadow); } .contact-c-form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; margin-bottom: 1rem; } .contact-c-form-group { display: flex; flex-direction: column; gap: 0.4rem; } .contact-c-form-group.full-width { grid-column: 1 / -1; } .contact-c-label { font-size: 0.78rem; font-weight: 600; color: var(--color-text); } .contact-c-label span { color: var(--color-primary); margin-left: 2px; } .contact-c-input, .contact-c-textarea, .contact-c-select { background-color: var(--color-surface); border: 1.5px solid var(--color-border); border-radius: var(--radius-md); padding: 0.65rem 0.875rem; font-family: var(--font-body); font-size: 0.875rem; color: var(--color-text); outline: none; width: 100%; transition: border-color 0.2s ease, box-shadow 0.2s ease; appearance: none; } .contact-c-input::placeholder, .contact-c-textarea::placeholder { color: var(--color-text-muted); opacity: 0.7; } .contact-c-input:focus, .contact-c-textarea:focus, .contact-c-select:focus { border-color: var(--color-primary); box-shadow: 0 0 0 3px var(--color-primary-soft); } .contact-c-textarea { resize: vertical; min-height: 110px; line-height: 1.6; } .contact-c-select-wrap { position: relative; } .contact-c-select-wrap::after { content: ''; position: absolute; right: 0.875rem; top: 50%; transform: translateY(-50%); width: 0; height: 0; border-left: 4px solid transparent; border-right: 4px solid transparent; border-top: 5px solid var(--color-text-muted); pointer-events: none; } .contact-c-submit-row { display: flex; align-items: center; justify-content: flex-end; gap: 1rem; margin-top: 1.25rem; } /* ── Success ───────────────────────────────────────────── */ .contact-c-success { display: none; text-align: center; padding: 1.5rem; } .contact-c-success.is-visible { display: block; } .contact-c-success-icon { width: 48px; height: 48px; border-radius: 50%; background-color: var(--color-primary-soft); border: 2px solid var(--color-primary); display: flex; align-items: center; justify-content: center; margin: 0 auto 1rem; } .contact-c-success-icon svg { width: 20px; height: 20px; stroke: var(--color-primary); fill: none; stroke-width: 2.5; stroke-linecap: round; stroke-linejoin: round; } .contact-c-success-title { font-family: var(--font-heading); font-size: 1.2rem; font-weight: 800; color: var(--color-heading); margin-bottom: 0.4rem; } .contact-c-success-text { font-size: 0.85rem; color: var(--color-text-muted); line-height: 1.7; } /* ── Right: decorative accent panel ───────────────────── */ .contact-c-accent { background-color: var(--color-primary); border-radius: var(--radius-xl); padding: 2rem; display: flex; flex-direction: column; gap: 1.5rem; position: sticky; top: 5rem; } .contact-c-accent-title { font-family: var(--font-heading); font-size: 1.1rem; font-weight: 800; color: var(--color-btn-text); line-height: 1.3; } .contact-c-accent-list { display: flex; flex-direction: column; gap: 0.75rem; } .contact-c-accent-item { display: flex; align-items: flex-start; gap: 0.6rem; font-size: 0.82rem; color: var(--color-btn-text); opacity: 0.85; line-height: 1.5; } .contact-c-accent-item svg { width: 14px; height: 14px; stroke: var(--color-btn-text); fill: none; stroke-width: 2.5; stroke-linecap: round; stroke-linejoin: round; flex-shrink: 0; margin-top: 2px; } .contact-c-accent-divider { height: 1px; background-color: rgba(255,255,255,0.2); } .contact-c-accent-response { font-size: 0.8rem; color: var(--color-btn-text); opacity: 0.7; line-height: 1.6; } .contact-c-accent-response strong { opacity: 1; display: block; font-size: 0.85rem; margin-bottom: 0.2rem; } /* ── Responsive ─────────────────────────────────────────── */ @media (max-width: 1024px) { .contact-c-inner { grid-template-columns: 1fr 2fr; } .contact-c-accent { display: none; } } @media (max-width: 700px) { .contact-c-inner { grid-template-columns: 1fr; } .contact-c-form-grid { grid-template-columns: 1fr; } }