/* =========================================
   RESET
========================================= */

*{
    margin:0;
    padding:0;
    box-sizing:border-box;
}

html{
    scroll-behavior:smooth;
}

body{
    font-family:'Poppins',sans-serif;
    background:#F7FAFD;
    color:#2B3A4A;
    overflow-x:hidden;
}

/* =========================================
   COLORS
========================================= */

:root{

--navy:#0A3D91;
--navy-dark:#062B63;
--blue:#2F80ED;
--gold:#F4B400;

--white:#fff;
--text:#6B7280;
--heading:#0B2341;
--border:#E8EEF6;

--shadow:0 20px 45px rgba(0,0,0,.08);

}

/* =========================================
   COMMON
========================================= */

.container{

width:min(1200px,92%);
margin:auto;

}

img{

max-width:100%;
display:block;

}

a{

text-decoration:none;

}

button,
input,
textarea,
select{

font-family:inherit;

}

/* =========================================
   HERO
========================================= */

.contact-hero{

position:relative;

background:linear-gradient(135deg,var(--navy-dark),var(--navy));

padding:130px 0;

overflow:hidden;

color:white;

}

.contact-hero::before{

content:"";

position:absolute;

width:420px;
height:420px;

right:-120px;
top:-120px;

border-radius:50%;

background:rgba(255,255,255,.05);

}

.contact-hero::after{

content:"";

position:absolute;

width:280px;
height:280px;

left:-90px;
bottom:-80px;

border-radius:50%;

background:rgba(255,255,255,.04);

}

.section-tag{

display:inline-block;

font-size:15px;

font-weight:700;

letter-spacing:2px;

color:var(--gold);

margin-bottom:18px;

}

.contact-hero h1{

font-size:62px;

line-height:1.15;

margin-bottom:18px;

}

.hero-line{

width:90px;

height:4px;

background:var(--gold);

border-radius:50px;

margin:25px 0;

}

.contact-hero p{

max-width:650px;

font-size:17px;

line-height:1.9;

color:#E5EEF9;

}

.hero-btn{

display:inline-block;

margin-top:40px;

padding:16px 38px;

background:var(--gold);

color:#111;

font-weight:600;

border-radius:50px;

transition:.35s;

}

.hero-btn:hover{

transform:translateY(-6px);

box-shadow:0 20px 35px rgba(244,180,0,.35);

}

/* =========================================
   SECTION HEADING
========================================= */

.contact-info{

padding:100px 0;

background:white;

}

.section-heading{

text-align:center;

margin-bottom:70px;

}

.section-heading span{

color:var(--blue);

font-weight:700;

letter-spacing:2px;

display:inline-block;

margin-bottom:15px;

}

.section-heading h2{

font-size:44px;

color:var(--heading);

margin-bottom:18px;

}

.title-line{

width:80px;

height:4px;

background:var(--gold);

margin:20px auto;

border-radius:50px;

}

.section-heading p{

max-width:650px;

margin:auto;

line-height:1.9;

color:var(--text);

}

/* =========================================
   CONTACT INFO
========================================= */

.info-grid{

display:grid;

grid-template-columns:repeat(4,1fr);

gap:25px;

}

.info-card{

background:white;

padding:35px 28px;

border-radius:22px;

text-align:center;

box-shadow:var(--shadow);

border:1px solid var(--border);

transition:.35s;

}

.info-card:hover{

transform:translateY(-10px);

}

.info-icon{


width:75px;

height:75px;

margin:auto;

margin-bottom:22px;

border-radius:20px;

display:flex;

align-items:center;

justify-content:center;

font-size:32px;

background:linear-gradient(135deg,var(--navy),var(--blue));

}

.info-card h3{

font-size:24px;

color:var(--heading);

margin-bottom:18px;

}

.info-card a{

color:var(--heading);

font-weight:600;

word-break:break-word;

}

.info-card p{

font-weight:600;

color:var(--black);


line-height:1.9;

}

/* =========================================
   FORM
========================================= */

.contact-form-section{

padding:100px 0;

background:#F8FBFF;

}

.form-wrapper{

display:grid;

grid-template-columns:420px 1fr;

gap:60px;

align-items:start;

}

.form-content span{

color:var(--blue);

font-weight:700;

letter-spacing:2px;

}

.form-content h2{

font-size:42px;

margin:18px 0;

color:var(--heading);

}

.form-content p{

color:var(--text);

line-height:1.9;

}

.input-grid{

display:grid;

grid-template-columns:1fr 1fr;

gap:20px;

margin-bottom:20px;

}

.input-box{

margin-bottom:20px;

}

.input-box input,
.input-box textarea,
.input-box select{

width:100%;

padding:18px 22px;

border-radius:16px;

border:1px solid var(--border);

outline:none;

font-size:15px;

background:white;

transition:.3s;

}

.input-box input:focus,
.input-box textarea:focus,
.input-box select:focus{

border-color:var(--navy);

box-shadow:0 0 0 4px rgba(10,61,145,.08);

}

textarea{

resize:vertical;

min-height:180px;

}

form button{

padding:18px 45px;

background:linear-gradient(135deg,var(--gold),#FFD34E);

border:none;

border-radius:50px;

font-size:16px;

font-weight:600;

cursor:pointer;

transition:.35s;

}

form button:hover{

transform:translateY(-5px);

box-shadow:0 18px 30px rgba(244,180,0,.35);

}

/* =========================================
   RESPONSIVE
========================================= */

@media(max-width:992px){

.contact-hero h1{

font-size:48px;

}

.info-grid{

grid-template-columns:repeat(2,1fr);

}

.form-wrapper{

grid-template-columns:1fr;

gap:40px;

}

}

@media(max-width:768px){

.contact-hero{

padding:90px 0;

}

.contact-hero h1{

font-size:36px;

}

.section-heading h2{

font-size:32px;

}

.info-grid{

grid-template-columns:1fr;

}

.input-grid{

grid-template-columns:1fr;

}

.hero-btn,
form button{

width:100%;

text-align:center;

}

}





/* =========================================
   PREMIUM ANIMATIONS
========================================= */

@keyframes fadeUp{

0%{
opacity:0;
transform:translateY(40px);
}

100%{
opacity:1;
transform:translateY(0);
}

}

@keyframes float{

0%,100%{
transform:translateY(0);
}

50%{
transform:translateY(-10px);
}

}

@keyframes shine{

0%{
left:-120%;
}

100%{
left:120%;
}

}

/* =========================================
   HERO DECORATION
========================================= */

.contact-hero{

position:relative;
overflow:hidden;

}

.contact-hero::before{

animation:float 8s ease-in-out infinite;

}

.contact-hero::after{

animation:float 10s ease-in-out infinite reverse;

}

/* =========================================
   CARD EFFECTS
========================================= */

.info-card,
.location-card,
.contact-form-section form{

animation:fadeUp .8s ease forwards;

}

.info-card{

position:relative;
overflow:hidden;

}

.info-card::after{

content:"";

position:absolute;

top:0;
left:-120%;

width:70px;
height:100%;

background:linear-gradient(
90deg,
transparent,
rgba(255,255,255,.35),
transparent
);

transform:skewX(-25deg);

transition:.6s;

}

.info-card:hover::after{

left:150%;

}

.info-card:hover{

box-shadow:
0 25px 50px rgba(10,61,145,.15);

}

/* =========================================
   FORM
========================================= */

form{

background:white;

padding:40px;

border-radius:28px;

box-shadow:0 25px 60px rgba(0,0,0,.08);

}

.input-box input,
.input-box textarea,
.input-box select{

transition:.35s;

}

.input-box input:hover,
.input-box textarea:hover,
.input-box select:hover{

border-color:#0A3D91;

}

form button{

position:relative;

overflow:hidden;

}

form button::before{

content:"";

position:absolute;

top:0;
left:-120%;

width:60px;
height:100%;

background:rgba(255,255,255,.35);

transform:skewX(-25deg);

}

form button:hover::before{

animation:shine .8s;

}

/* =========================================
   BUTTONS
========================================= */

.hero-btn,
.whatsapp-btn,
.direction-btn{

transition:.35s;

}

.hero-btn:hover,
.whatsapp-btn:hover,
.direction-btn:hover{

transform:
translateY(-6px)
scale(1.03);

}

/* =========================================
   MAP
========================================= */

.map-box{

transition:.35s;

}

.map-box:hover{

transform:translateY(-8px);

box-shadow:0 30px 60px rgba(0,0,0,.12);

}

/* =========================================
   FOOTER
========================================= */

.footer-links a{

position:relative;

}

.footer-links a::after{

content:"";

position:absolute;

left:0;
bottom:-6px;

width:0;

height:2px;

background:var(--gold);

transition:.35s;

}

.footer-links a:hover::after{

width:100%;

}

/* =========================================
   SCROLLBAR
========================================= */

::-webkit-scrollbar{

width:10px;

}

::-webkit-scrollbar-track{

background:#EEF5FC;

}

::-webkit-scrollbar-thumb{

background:#0A3D91;

border-radius:30px;

}

::-webkit-scrollbar-thumb:hover{

background:#062B63;

}

/* =========================================
   MOBILE POLISH
========================================= */

@media(max-width:768px){

form{

padding:25px;

}

.contact-hero{

text-align:center;

}

.hero-line{

margin:22px auto;

}

.contact-hero p{

margin:auto;

}

.section-heading{

margin-bottom:45px;

}

.info-card{

padding:28px 22px;

}

.location-card{

padding:24px;

}

.footer-content h2{

font-size:28px;

}

}

@media(max-width:480px){

.contact-hero h1{

font-size:30px;

line-height:1.25;

}

.section-heading h2{

font-size:26px;

}

.info-icon{

width:65px;
height:65px;
font-size:28px;

}

form{

padding:20px;

border-radius:20px;

}

}