﻿.contact-layout { display:grid; grid-template-columns:1fr 1.4fr; gap:60px; align-items:start; }
.map-wrap { margin-top:48px; border-radius:var(--radius); overflow:hidden; height:360px; box-shadow:var(--shadow-lg); }
.faq-grid { display:grid; grid-template-columns:1fr 1fr; gap:20px; }
.faq-item { background:#fff; border-radius:12px; padding:24px; box-shadow:var(--shadow); cursor:pointer; }
.faq-item h4 { font-weight:700; font-size:15px; margin-bottom:0; display:flex; justify-content:space-between; align-items:center; }
.faq-item p { color:var(--text-mid); font-size:14px; line-height:1.75; margin-top:12px; display:none; }
.faq-item.open p { display:block; }
.faq-item h4 i { transition:transform 0.3s; font-size:13px; color:var(--blue-primary); }
.faq-item.open h4 i { transform:rotate(180deg); }
.social-cards { display:grid; grid-template-columns:repeat(4,1fr); gap:16px; }
.social-card { background:#fff; border-radius:14px; padding:24px; text-align:center; box-shadow:var(--shadow); transition:all 0.3s; text-decoration:none; }
.social-card:hover { transform:translateY(-5px); box-shadow:var(--shadow-lg); }
.social-icon { width:54px; height:54px; border-radius:13px; display:flex; align-items:center; justify-content:center; font-size:22px; color:#fff; margin:0 auto 14px; }
.social-card h4 { font-weight:700; font-size:14px; color:var(--text-dark); margin-bottom:4px; }
.social-card p { font-size:13px; color:var(--text-mid); }
@media(max-width:768px) { .contact-layout { grid-template-columns:1fr; } .faq-grid { grid-template-columns:1fr; } .social-cards { grid-template-columns:1fr 1fr; } }
/* Validation styles — matches apply-12a-80g */
.field-error { font-size:12px; color:#e53935; display:none; align-items:center; gap:5px; margin-top:4px; }
.field-error.show { display:flex; }
.form-group input.error, .form-group textarea.error, .form-group select.error { border-color:#e53935 !important; background:#fff8f8; }
.form-group input.success, .form-group select.success, .form-group textarea.success { border-color:var(--green) !important; }
/* Thank-you overlay */
.ct-ty-overlay { position:fixed; inset:0; background:rgba(0,0,0,0.55); z-index:9999; display:none; align-items:center; justify-content:center; padding:20px; overflow-y:auto; }
.ct-ty-overlay.active { display:flex; }
.ct-ty-box { background:#fff; border-radius:20px; max-width:500px; width:100%; box-shadow:0 20px 80px rgba(0,0,0,0.25); overflow:hidden; animation:ctPopIn 0.4s ease; }
@keyframes ctPopIn { from{transform:scale(0.85);opacity:0} to{transform:scale(1);opacity:1} }
.ct-ty-top { background:linear-gradient(135deg,#1565c0,#c2185b); padding:38px 32px; text-align:center; }
.ct-ty-icon { width:66px; height:66px; background:rgba(255,255,255,0.2); border-radius:50%; display:flex; align-items:center; justify-content:center; font-size:28px; color:#fff; margin:0 auto 16px; }
.ct-ty-top h2 { font-family:'Playfair Display',serif; font-size:1.7rem; color:#fff; margin-bottom:10px; }
.ct-ty-top p { color:rgba(255,255,255,0.85); font-size:14px; line-height:1.7; }
.ct-ty-body { padding:28px 32px; }
.ct-ty-info { background:#f4f7fb; border-radius:12px; padding:18px 20px; margin-bottom:20px; font-size:14px; line-height:1.8; color:var(--text-dark); }
.ct-ty-actions { display:flex; gap:12px; }
.ct-ty-btn { flex:1; padding:13px; border-radius:10px; font-weight:700; font-size:14px; text-align:center; text-decoration:none; border:none; cursor:pointer; }
.ct-ty-btn.primary { background:linear-gradient(135deg,var(--blue-primary),var(--green)); color:#fff; }
.ct-ty-btn.secondary { background:#f4f7fb; color:var(--text-dark); }
@keyframes ctShake { 0%,100%{transform:translateX(0)} 20%{transform:translateX(-8px)} 40%{transform:translateX(8px)} 60%{transform:translateX(-5px)} 80%{transform:translateX(5px)} }