/* ---------- CONTACT SECTION (Scoped) ---------- */
.contact-section {
width: 100%;
background: #f7f9fb;
padding: 6rem 1.5rem;
display: flex;
justify-content: center;
}
.contact-container {
max-width: 1200px;
width: 100%;
}
.section-header {
text-align: center;
margin-bottom: 4rem;
}
.section-badge {
display: inline-flex;
align-items: center;
gap: 0.5rem;
background: #e8f0f9;
color: #0F5A9A;
font-weight: 600;
font-size: 0.8rem;
letter-spacing: 2px;
text-transform: uppercase;
padding: 0.5rem 1.5rem;
border-radius: 30px;
margin-bottom: 1.5rem;
border: 1px solid #c5d8ee;
}
.section-title {
font-family: 'Playfair Display', serif;
font-size: clamp(2.4rem, 5vw, 3.4rem);
font-weight: 700;
color: #0a1929;
line-height: 1.2;
margin-bottom: 1.2rem;
}
.section-subtitle {
font-size: 1.1rem;
color: #4a5a6a;
max-width: 650px;
margin: 0 auto;
line-height: 1.7;
}

/* Contact grid layout */
.contact-grid {
display: grid;
grid-template-columns: 1fr 1.2fr;
gap: 3rem;
margin-bottom: 3rem;
}

/* Info cards */
.contact-info {
display: flex;
flex-direction: column;
gap: 1.5rem;
}
.info-card {
background: #ffffff;
border-radius: 1.5rem 0.5rem 1.5rem 0.5rem;
padding: 1.5rem 2rem;
display: flex;
align-items: center;
gap: 1.2rem;
box-shadow: 0 8px 20px rgba(15, 90, 154, 0.06);
border: 1px solid rgba(15, 90, 154, 0.05);
transition: all 0.3s ease;
}
.info-card:hover {
transform: translateY(-4px);
box-shadow: 0 12px 28px rgba(15, 90, 154, 0.12);
border-color: rgba(236, 179, 31, 0.2);
}
.info-icon {
width: 50px;
height: 50px;
background: #f0f5fa;
border-radius: 42% 58% 55% 45% / 48% 42% 58% 52%;
display: flex;
align-items: center;
justify-content: center;
color: #0F5A9A;
font-size: 1.2rem;
flex-shrink: 0;
transition: all 0.3s ease;
}
.info-card:hover .info-icon {
background: #0F5A9A;
color: #ECB31F;
}
.info-text h4 {
font-weight: 700;
font-size: 0.95rem;
color: #0a1929;
margin-bottom: 0.4rem;
text-transform: uppercase;
letter-spacing: 1px;
}
.info-text p {
font-size: 0.95rem;
color: #4a5a6a;
line-height: 1.6;
margin: 0;
}
.info-text a {
color: #4a5a6a;
text-decoration: none;
transition: color 0.2s;
}
.info-text a:hover {
color: #ECB31F;
}

/* Social icons in contact info */
.contact-socials {
display: flex;
gap: 0.6rem;
margin-top: 0.5rem;
}
.contact-socials a {
width: 36px;
height: 36px;
background: #f0f5fa;
border-radius: 50%;
display: flex;
align-items: center;
justify-content: center;
color: #0F5A9A;
font-size: 0.9rem;
text-decoration: none;
transition: all 0.3s ease;
}
.contact-socials a:hover {
background: #ECB31F;
color: #0a1929;
transform: translateY(-3px);
}

/* Form */
.contact-form-wrapper {
background: #ffffff;
border-radius: 2rem 0.5rem 2rem 0.5rem;
padding: 3rem;
box-shadow: 0 15px 35px -10px rgba(15, 90, 154, 0.08);
border: 1px solid rgba(15, 90, 154, 0.06);
}
.contact-form {
display: flex;
flex-direction: column;
gap: 1.5rem;
}
.form-row {
display: grid;
grid-template-columns: 1fr 1fr;
gap: 1.5rem;
}
.form-group {
display: flex;
flex-direction: column;
}
.form-group label {
font-weight: 600;
font-size: 0.85rem;
color: #0a1929;
margin-bottom: 0.5rem;
text-transform: uppercase;
letter-spacing: 0.5px;
}
.form-group input,
.form-group textarea {
padding: 0.9rem 1.2rem;
border: 1px solid #dce6f0;
border-radius: 0.8rem;
font-family: 'Inter', sans-serif;
font-size: 0.95rem;
color: #0a1929;
background: #f9fbfd;
transition: all 0.3s ease;
outline: none;
}
.form-group input:focus,
.form-group textarea:focus {
border-color: #0F5A9A;
background: #ffffff;
box-shadow: 0 0 0 3px rgba(15, 90, 154, 0.1);
}
.form-group textarea {
resize: vertical;
min-height: 130px;
}
.form-submit {
background: #ECB31F;
color: #0a1929;
padding: 1rem 2.5rem;
border-radius: 50px;
font-weight: 700;
font-size: 0.95rem;
text-decoration: none;
border: none;
cursor: pointer;
transition: all 0.3s ease;
display: inline-flex;
align-items: center;
gap: 0.6rem;
align-self: flex-start;
box-shadow: 0 12px 25px rgba(236, 179, 31, 0.3);
}
.form-submit:hover {
background: #f0c44a;
transform: translateY(-3px);
box-shadow: 0 18px 35px rgba(236, 179, 31, 0.4);
}

/* Map placeholder */
.map-placeholder {
background: #ffffff;
border-radius: 2rem 0.5rem 2rem 0.5rem;
padding: 3rem;
text-align: center;
color: #8a9aa8;
font-size: 0.95rem;
border: 2px dashed #dce6f0;
}
.map-icon {
font-size: 2.5rem;
color: #0F5A9A;
margin-bottom: 1rem;
}

/* Responsive */
@media (max-width: 900px) {
.contact-grid {
grid-template-columns: 1fr;
gap: 2rem;
}
}
@media (max-width: 650px) {
.contact-section {
padding: 3.5rem 1rem;
}
.form-row {
grid-template-columns: 1fr;
gap: 1rem;
}
.contact-form-wrapper {
padding: 2rem 1.5rem;
}
.form-submit {
width: 100%;
justify-content: center;
}
}
