2026-01-19 17:48:51 +05:30

412 lines
7.2 KiB
CSS

.contactPage {
min-height: 100vh;
padding-top: 5rem;
}
.hero {
padding: 8rem 0;
text-align: center;
background-image: url('/images/contact/contact-banner.webp');
/* Assuming this exists */
background-size: cover;
background-position: center;
background-repeat: no-repeat;
position: relative;
overflow: hidden;
}
.hero::before {
content: '';
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
background: rgba(0, 0, 0, 0.3);
}
.heroContent {
position: relative;
z-index: 1;
}
.heroTitle {
font-size: clamp(2.5rem, 6vw, 4rem);
font-weight: 800;
margin-bottom: 1rem;
line-height: 1.2;
color: #fff;
}
.breadcrumb {
font-size: 1rem;
color: #fff;
display: flex;
align-items: center;
justify-content: center;
gap: 0.5rem;
}
.breadcrumb a {
color: #fff;
text-decoration: none;
transition: opacity 0.3s ease;
font-weight: 400;
}
.breadcrumb a:hover {
opacity: 0.8;
}
.breadcrumb span {
color: #fff;
font-weight: 400;
}
.breadcrumb .breadcrumbActive {
font-weight: 700;
}
/* Contact Info Cards (Top Section) */
.contactGrid {
display: grid;
grid-template-columns: repeat(3, 1fr);
/* Force 3 columns */
gap: 2rem;
/* margin-bottom: 4rem; */
}
@media (max-width: 768px) {
.contactGrid {
grid-template-columns: 1fr;
}
}
.contactCard {
background: var(--card-bg);
border: 1px solid var(--border-color);
border-radius: 20px;
padding: 2.5rem 1rem;
text-align: center;
transition: all 0.3s ease;
text-decoration: none;
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1);
}
.contactCard:hover {
transform: translateY(-5px);
box-shadow: 0 20px 40px rgba(0, 0, 0, 0.1);
border-color: var(--primary);
}
.cardIcon {
color: var(--primary);
margin-bottom: 1rem;
display: flex;
align-items: center;
justify-content: center;
}
.cardTitle {
font-size: 1.25rem;
font-weight: 700;
color: var(--text-primary);
margin-bottom: 0.5rem;
}
.cardValue {
font-size: 1rem;
color: var(--text-secondary);
font-weight: 500;
word-break: break-word;
/* Ensure long emails wrap */
overflow-wrap: anywhere;
}
@media (max-width: 480px) {
.contactCard {
padding: 2rem 1rem;
/* Reduce padding on mobile */
}
}
/* Form Section (Get In Touch) */
.formSection {
background: var(--bg-primary);
padding: 4rem 0;
}
.formContainer {
display: grid;
grid-template-columns: 1fr 1fr;
gap: 4rem;
align-items: start;
}
@media (max-width: 992px) {
.formContainer {
grid-template-columns: 1fr;
gap: 3rem;
}
}
/* Left Side: Get In Touch Info */
.getInTouchInfo {
display: flex;
flex-direction: column;
}
.sectionTitle {
font-size: 2.5rem;
font-weight: 800;
color: var(--text-primary);
/* Dark text */
margin-bottom: 1rem;
}
.sectionDesc {
color: var(--text-secondary);
margin-bottom: 2.5rem;
line-height: 1.6;
}
.infoGrid {
display: grid;
grid-template-columns: 1fr 1fr;
gap: 2rem;
margin-bottom: 3rem;
}
@media (max-width: 480px) {
.infoGrid {
grid-template-columns: 1fr;
}
}
.infoItem {
display: flex;
flex-direction: column;
gap: 0.5rem;
}
.iconBox {
background: #2563eb;
/* Dark background for icon box */
width: 40px;
height: 40px;
border-radius: 8px;
display: flex;
align-items: center;
justify-content: center;
color: #fff;
/* Yellow/Gold icon color */
margin-bottom: 0.5rem;
}
.infoLabel {
font-size: 1.1rem;
font-weight: 700;
color: var(--text-primary);
margin: 0;
}
.infoValue {
color: var(--text-secondary);
font-size: 0.95rem;
margin: 0;
}
.socialRow {
display: flex;
align-items: center;
gap: 2rem;
margin-top: auto;
}
.socialLabel {
font-weight: 700;
color: var(--text-primary);
font-size: 1.1rem;
}
.socialIconsRow {
display: flex;
gap: 1rem;
margin-top: 7px;
}
.socialIconsRow a {
color: var(--text-primary);
transition: color 0.3s;
}
.socialIconsRow a:hover {
color: var(--primary);
}
/* Right Side: Form Wrapper */
.formWrapper {
background: #eef6f6;
/* Light greenish-blue background as in image */
padding: 3rem;
border-radius: 20px;
width: 100%;
box-sizing: border-box;
overflow: hidden;
/* Prevent child overflow */
}
@media (max-width: 768px) {
.formWrapper {
padding: 2rem;
}
}
@media (max-width: 480px) {
.formWrapper {
padding: 1.5rem 1rem;
/* Smaller padding on very small screens */
}
}
.contactForm {
display: flex;
flex-direction: column;
gap: 1.5rem;
}
.formRow {
display: grid;
grid-template-columns: 1fr 1fr;
gap: 1.5rem;
}
@media (max-width: 480px) {
.formRow {
grid-template-columns: 1fr;
}
}
.formGroup {
display: flex;
flex-direction: column;
gap: 0.5rem;
}
.label {
font-weight: 700;
color: var(--text-primary);
font-size: 0.95rem;
}
.input,
.textarea {
width: 100%;
max-width: 100%;
box-sizing: border-box;
padding: 0.75rem 1rem;
border-radius: 8px;
border: 1px solid transparent;
background: #ffffff;
font-family: inherit;
font-size: 1rem;
color: var(--text-secondary);
transition: all 0.3s;
}
.input:focus,
.textarea:focus {
outline: none;
border-color: var(--primary);
box-shadow: 0 0 0 2px rgba(236, 72, 153, 0.1);
}
.input::placeholder,
.textarea::placeholder {
color: #cbd5e1;
}
.textarea {
resize: vertical;
}
.submitBtn {
background: #2563eb;
/* Dark blue button */
color: white;
padding: 1rem 2rem;
border: none;
border-radius: 8px;
font-weight: 700;
font-size: 0.9rem;
text-transform: uppercase;
cursor: pointer;
align-self: flex-start;
transition: background 0.3s;
margin-top: 1rem;
}
.submitBtn:hover {
background: #1e293b;
}
/* Map Section */
.mapSection {
/* margin-top: 4rem; */
height: 400px;
width: 100%;
background: #f1f5f9;
}
/* Quick Links - kept from original if needed, but maybe not */
.quickLinks {
padding: 4rem 0;
background: linear-gradient(135deg, rgba(236, 72, 153, 0.03), rgba(59, 130, 246, 0.03));
}
.quickLinksTitle {
font-size: clamp(1.75rem, 4vw, 2.5rem);
font-weight: 800;
text-align: center;
margin-bottom: 3rem;
}
.linksGrid {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
gap: 1.5rem;
max-width: 900px;
margin: 0 auto;
}
.linkCard {
background: var(--card-bg);
border: 1px solid var(--border-color);
border-radius: 16px;
padding: 1.5rem;
display: flex;
align-items: center;
gap: 1rem;
text-decoration: none;
transition: all 0.3s ease;
}
.linkCard:hover {
transform: translateY(-3px);
box-shadow: 0 10px 30px rgba(0, 0, 0, 0.1);
border-color: var(--primary);
}
.linkIcon {
font-size: 2rem;
}
.linkText {
font-size: 1.125rem;
font-weight: 600;
color: var(--text-primary);
}