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

.contact-section{
padding:120px 20px;
background:#f8fafc;
}

.contact-wrapper{
max-width:1150px;
margin:auto;
}


/* =========================================
CONTACT HERO
========================================= */

.contact-hero{

min-height:88vh;

display:flex;
align-items:center;
justify-content:center;

padding:120px 20px;

background:linear-gradient(
135deg,
#022c22 0%,
#064e3b 40%,
#065f46 70%,
#022c22 100%
);

position:relative;

overflow:hidden;

}


/* HERO CONTAINER */

.hero-container{

max-width:950px;

margin:auto;

display:flex;

justify-content:center;

}


/* GLASS CARD */

.hero-glass-card{

padding:70px 80px;

border-radius:22px;

background:rgba(255,255,255,0.08);

border:1px solid rgba(255,255,255,0.18);

backdrop-filter:blur(24px);

text-align:center;

color:white;

box-shadow:
0 40px 120px rgba(0,0,0,0.35);

transition:.35s;

}

.hero-glass-card:hover{

transform:translateY(-4px);

box-shadow:
0 50px 140px rgba(0,0,0,0.4);

}


/* SMALL TAGLINE */

.hero-tagline{

display:inline-block;

margin-bottom:14px;

padding:6px 14px;

font-size:13px;

letter-spacing:1px;

text-transform:uppercase;

border-radius:20px;

background:rgba(255,255,255,0.12);

border:1px solid rgba(255,255,255,0.25);

}


/* HERO TITLE */

.contact-title{

font-size:50px;

font-weight:700;

line-height:1.2;

margin-bottom:20px;

letter-spacing:-1px;

}


/* HERO SUBTITLE */

.contact-subtitle{

font-size:15px;

line-height:1.;

color:#d1fae5;

max-width:620px;

margin:auto;

}


/* =========================================
GLOW EFFECT
========================================= */

.hero-glow{

position:absolute;

width:500px;
height:500px;

background:radial-gradient(
circle,
rgba(16,185,129,0.35),
transparent 70%
);

filter:blur(140px);

animation:heroGlow 10s ease-in-out infinite alternate;

}

.hero-glow-left{

top:-200px;
left:-200px;

}

.hero-glow-right{

bottom:-200px;
right:-200px;

}

@keyframes heroGlow{

0%{
transform:translate(0,0);
}

100%{
transform:translate(80px,40px);
}

}


@media (max-width:768px){

.hero-glass-card{

padding:40px 30px;

}

.contact-title{

font-size:38px;

}

.contact-subtitle{

font-size:16px;

}

.contact-hero{

min-height:75vh;

}

}






/* =====================================================
CONTACT FORM CARD
===================================================== */

.contact-form-card{

background:white;

padding:55px 45px;

border-radius:18px;

box-shadow:
0 25px 60px rgba(0,0,0,0.08);

transition:all .35s ease;

}

.contact-form-card:hover{

transform:translateY(-5px);

box-shadow:
0 40px 80px rgba(0,0,0,0.12);

}


/* FORM TITLES */

.form-title{

font-size:32px;

font-weight:700;

margin-bottom:6px;

color:#111827;

}

.form-subtitle{

font-size:15px;

color:#6b7280;

margin-bottom:35px;

}


/* =====================================================
FORM GROUP
===================================================== */

.form-group{

position:relative;

}


/* INPUT FIELD */

.form-group input,
.form-group textarea{

width:100%;

padding:16px 12px;

border:none;

border-bottom:2px solid #e5e7eb;

font-size:15px;

background:transparent;

transition:.3s;

}


/* INPUT FOCUS */

.form-group input:focus,
.form-group textarea:focus{

outline:none;

border-color:#10b981;

}


/* FLOATING LABEL */

.form-group label{

position:absolute;

left:10px;

top:16px;

font-size:14px;

color:#6b7280;

pointer-events:none;

transition:.25s;

}

.form-group input:focus + label,
.form-group input:valid + label,
.form-group textarea:focus + label,
.form-group textarea:valid + label{

top:-8px;

font-size:12px;

color:#059669;

background:white;

padding:0 6px;

}


/* ANIMATED BORDER */

.input-border{

position:absolute;

bottom:0;

left:0;

width:0;

height:2px;

background:#10b981;

transition:.35s;

}

.form-group input:focus ~ .input-border,
.form-group textarea:focus ~ .input-border{

width:100%;

}


/* =====================================================
CONTACT BUTTON
===================================================== */

.contact-btn{

position:relative;

width:100%;

padding:16px;

border-radius:10px;

font-weight:600;

font-size:15px;

color:white;

background:linear-gradient(
135deg,
#10b981,
#059669
);

overflow:hidden;

transition:all .35s ease;

}


/* BUTTON HOVER */

.contact-btn:hover{

transform:translateY(-3px);

box-shadow:
0 15px 40px rgba(16,185,129,0.5);

}


/* SHINE EFFECT */

.contact-btn::after{

content:"";

position:absolute;

top:0;
left:-120%;

width:120%;
height:100%;

background:linear-gradient(
120deg,
transparent,
rgba(255,255,255,0.5),
transparent
);

transition:.6s;

}

.contact-btn:hover::after{

left:120%;

}


/* =====================================================
CONTACT INFO CARDS
===================================================== */

.contact-info-wrapper{

display:flex;
flex-direction:column;
gap:22px;

}


.contact-info-card{

background:white;

padding:28px;

border-radius:14px;

box-shadow:
0 12px 30px rgba(0,0,0,0.08);

transition:.3s;

}

.contact-info-card:hover{

transform:translateY(-4px);

box-shadow:
0 20px 40px rgba(0,0,0,0.12);

}


/* INFO TEXT */

.contact-info-card h3{

font-size:18px;

font-weight:600;

margin-bottom:4px;

}

.contact-info-card p{

color:#6b7280;

}


/* =====================================================
MAP SECTION
===================================================== */

.map-section iframe{

width:100%;

height:420px;

border:none;

}


/* =====================================================
CTA SECTION
===================================================== */

.contact-cta{

padding:110px 20px;

text-align:center;

background:linear-gradient(
135deg,
#022c22,
#064e3b,
#065f46
);

color:white;

}

.contact-cta h2{

font-size:38px;

font-weight:700;

margin-bottom:12px;

}

.contact-cta p{

color:#d1fae5;

margin-bottom:30px;

}


/* =====================================================
RESPONSIVE
===================================================== */

@media (max-width:1024px){

.contact-title{
font-size:42px;
}

.hero-glass{
padding:35px;
}

}

@media (max-width:768px){

.contact-section{
padding:80px 20px;
}

.contact-form-card{
padding:40px 28px;
}

.contact-title{
font-size:34px;
}

.contact-subtitle{
font-size:16px;
}

}



/* =========================================
MAP SECTION
========================================= */

.map-section{

padding:80px 20px;

background:#f9fafb;

position:relative;

}


/* WRAPPER */

.map-wrapper{

max-width:1200px;

margin:auto;

display:flex;

justify-content:center;

}


/* MAP CARD */

.map-card{

width:100%;

height:500px;

border-radius:20px;

overflow:hidden;

background:white;

box-shadow:
0 40px 100px rgba(0,0,0,0.08),
0 10px 30px rgba(0,0,0,0.06);

position:relative;

transition:all .35s ease;

}


/* HOVER LIFT */

.map-card:hover{

transform:translateY(-6px);

box-shadow:
0 50px 120px rgba(0,0,0,0.12),
0 15px 40px rgba(0,0,0,0.08);

}


/* MAP IFRAME */

.map-card iframe{

width:100%;

height:100%;

border:none;

}