body{
font-family:'Poppins', sans-serif;
margin:0;
background:#f5f5f5;
}

/* HEADER */

header{
display:flex;
justify-content:space-between;
align-items:center;
padding:20px 40px;
background:black;
color:white;
}

.logo{
height:177px;
}

nav a{
color:white;
margin-left:20px;
text-decoration:none;
font-weight:600;
}

.header-call{
background:#ff6a00;
color:white;
padding:12px 18px;
border-radius:6px;
text-decoration:none;
font-weight:600;
}

.header-call:hover{
background:#ff7f26;
}

/* HERO */

.hero{
position:relative;
text-align:center;
padding:120px 20px;
color:white;

background-image:
linear-gradient(rgba(0,0,0,0.65), rgba(0,0,0,0.85)),
url("images/vancouver.jpg");

background-size:cover;
background-position:center;
background-repeat:no-repeat;

min-height:420px;

display:flex;
flex-direction:column;
justify-content:center;
align-items:center;
}

.hero h1{
font-size:48px;
font-weight:700;
margin-bottom:20px;
}

.hero p{
font-size:20px;
margin-bottom:30px;
}

/* CTA BUTTON */

.cta{
background:#ff6a00;
color:white;
padding:18px 34px;
text-decoration:none;
border-radius:8px;
font-weight:600;
font-size:18px;
box-shadow:0 12px 30px rgba(255,106,0,0.45);
transition:all 0.25s ease;
}

.cta:hover{
transform:translateY(-3px);
box-shadow:0 18px 40px rgba(255,106,0,0.6);
}

/* SECTIONS */

section{
padding:60px 20px;
max-width:1100px;
margin:auto;
}

/* SERVICES */

.services{
display:grid;
grid-template-columns:repeat(auto-fit,minmax(220px,1fr));
gap:20px;
}

.card{
background:white;
padding:25px;
border-radius:8px;
box-shadow:0 3px 10px rgba(0,0,0,0.1);
}

/* SERVICE AREAS */

.areas{
text-align:center;
background:white;
}

/* GALLERY */

.gallery{
display:grid;
grid-template-columns:repeat(auto-fit,minmax(250px,1fr));
gap:15px;
}

.gallery img{
width:100%;
aspect-ratio:1/1;
object-fit:cover;
border-radius:8px;
cursor:pointer;
transition:all 0.35s ease;
}

.gallery img:hover{
aspect-ratio:auto;
object-fit:contain;
transform:scale(1.25);
z-index:10;
box-shadow:0 20px 40px rgba(0,0,0,0.35);
background:white;
}

/* REVIEWS */

.reviews{
display:grid;
grid-template-columns:repeat(auto-fit,minmax(250px,1fr));
gap:20px;
}

.review{
background:white;
padding:20px;
border-radius:8px;
box-shadow:0 3px 10px rgba(0,0,0,0.1);
}

/* FOOTER */

footer{
text-align:center;
padding:30px;
background:black;
color:white;
}

/* MOBILE CALL BUTTON */

.sticky-call{
position:fixed;
bottom:20px;
right:20px;
background:#ff6a00;
color:white;
padding:16px 22px;
border-radius:40px;
font-weight:600;
text-decoration:none;
box-shadow:0 8px 20px rgba(0,0,0,0.3);
}