/* =========================================
   CANADA LOCATIONS SECTION
========================================= */

.locations-section{
margin:0;
padding:90px 0;
position:relative;
overflow:hidden;
background:
radial-gradient(circle at top left, rgba(255,140,0,.15), transparent 30%),
radial-gradient(circle at bottom right, rgba(255,215,0,.12), transparent 30%),
linear-gradient(135deg,#090909,#111111,#1a1207);
}

/* CONTAINER */

.max-w-container-max-width{
max-width:1400px;
}

.locations-section .relative{
position:relative;
}

/* GLOW EFFECTS */

.locations-glow{
position:absolute;
width:420px;
height:420px;
border-radius:50%;
filter:blur(120px);
opacity:.25;
z-index:1;
pointer-events:none;
}

.locations-glow-left{
top:-120px;
left:-100px;
background:#ff9d00;
}

.locations-glow-right{
bottom:-150px;
right:-100px;
background:#ffd700;
}

/* HEADER */

.locations-header{
text-align:center;
margin-bottom:60px;
}

.locations-eyebrow{
display:inline-flex;
align-items:center;
gap:10px;
padding:10px 24px;
border:1px solid rgba(255,255,255,.12);
background:rgba(255,255,255,.05);
backdrop-filter:blur(14px);
border-radius:999px;
font-size:14px;
letter-spacing:1px;
text-transform:uppercase;
color:#ffcb74;
font-weight:600;
margin-bottom:24px;
}

.maple-icon{
animation:floatLeaf 3s ease-in-out infinite;
}

.locations-title{
font-size:clamp(2.5rem,5vw,4.8rem);
font-weight:800;
line-height:1.1;
color:#ffffff;
margin-bottom:20px;
}

.locations-title-accent{
background:linear-gradient(90deg,#ff9900,#ffd700);
-webkit-background-clip:text;
-webkit-text-fill-color:transparent;
}

.locations-subtitle{
max-width:850px;
margin:auto;
font-size:18px;
line-height:1.8;
color:rgba(255,255,255,.72);
}

/* CAROUSEL */

.locations-carousel{
position:relative;
overflow:hidden;
width:100%;
padding:15px 0;
}

.locations-track{
display:flex;
gap:28px;
width:max-content;
animation:scrollLocations 60s linear infinite;
}

.locations-carousel:hover .locations-track{
animation-play-state:paused;
}

/* FADE SIDES */

.locations-fade{
position:absolute;
top:0;
width:160px;
height:100%;
z-index:10;
pointer-events:none;
}

.locations-fade-left{
left:0;
background:linear-gradient(to right,#090909,transparent);
}

.locations-fade-right{
right:0;
background:linear-gradient(to left,#090909,transparent);
}

/* CITY CARD */

.city-card{
width:320px;
flex-shrink:0;
border-radius:28px;
overflow:hidden;
position:relative;
background:rgba(255,255,255,.05);
border:1px solid rgba(255,255,255,.08);
backdrop-filter:blur(18px);
transition:all .45s ease;
box-shadow:
0 0 0 rgba(255,165,0,0),
0 10px 30px rgba(0,0,0,.35);
}

.city-card:hover{
transform:translateY(-12px) scale(1.03);
border-color:rgba(255,215,0,.4);
box-shadow:
0 0 35px rgba(255,166,0,.28),
0 20px 50px rgba(0,0,0,.55);
}

/* IMAGE */

.city-image-wrap{
position:relative;
height:230px;
overflow:hidden;
}

.city-image-wrap img{
width:100%;
height:100%;
object-fit:cover;
transition:transform .8s ease;
}

.city-card:hover img{
transform:scale(1.12);
}

.city-image-shade{
position:absolute;
inset:0;
background:linear-gradient(to top, rgba(0,0,0,.7), transparent);
}

.city-maple{
position:absolute;
top:16px;
right:16px;
width:42px;
height:42px;
display:flex;
align-items:center;
justify-content:center;
border-radius:50%;
background:rgba(255,255,255,.14);
backdrop-filter:blur(10px);
font-size:20px;
}

/* INFO */

.city-info{
padding:24px;
}

.city-province{
display:inline-block;
padding:8px 14px;
border-radius:999px;
background:rgba(255,153,0,.12);
border:1px solid rgba(255,174,0,.2);
font-size:12px;
font-weight:700;
letter-spacing:.6px;
text-transform:uppercase;
color:#ffcf70;
margin-bottom:18px;
}

.city-name{
font-size:30px;
font-weight:800;
color:#ffffff;
margin-bottom:10px;
}

.city-coords{
font-size:14px;
letter-spacing:1px;
color:rgba(255,255,255,.6);
margin-bottom:20px;
}

.city-divider{
width:100%;
height:1px;
background:linear-gradient(to right,transparent,rgba(255,255,255,.2),transparent);
margin-bottom:20px;
}

/* FOOTER */

.city-footer{
display:flex;
justify-content:space-between;
align-items:center;
gap:10px;
}

.city-status{
display:flex;
align-items:center;
gap:8px;
font-size:14px;
color:#f8f8f8;
}

.city-pulse{
width:10px;
height:10px;
border-radius:50%;
background:#00ff88;
box-shadow:0 0 12px #00ff88;
animation:pulseDot 1.5s infinite;
}

.city-link{
text-decoration:none;
font-weight:700;
font-size:15px;
color:#ffb347;
transition:all .3s ease;
}

.city-link:hover{
color:#ffd700;
transform:translateX(4px);
}

/* STATS */

.locations-stats{
margin-top:70px;
display:flex;
justify-content:center;
align-items:center;
flex-wrap:wrap;
gap:24px;
padding:28px;
border-radius:30px;
background:rgba(255,255,255,.04);
border:1px solid rgba(255,255,255,.08);
backdrop-filter:blur(14px);
}

.stat-item{
display:flex;
flex-direction:column;
align-items:center;
min-width:140px;
}

.stat-number{
font-size:34px;
font-weight:800;
background:linear-gradient(90deg,#ff9d00,#ffd700);
-webkit-background-clip:text;
-webkit-text-fill-color:transparent;
margin-bottom:8px;
}

.stat-label{
font-size:14px;
text-transform:uppercase;
letter-spacing:1px;
color:rgba(255,255,255,.7);
}

.stat-separator{
width:1px;
height:55px;
background:rgba(255,255,255,.12);
}

/* ANIMATIONS */

@keyframes scrollLocations{
0%{
transform:translateX(0);
}
100%{
transform:translateX(-50%);
}
}

@keyframes pulseDot{
0%{
transform:scale(.9);
opacity:.7;
}
50%{
transform:scale(1.2);
opacity:1;
}
100%{
transform:scale(.9);
opacity:.7;
}
}

@keyframes floatLeaf{
0%,100%{
transform:translateY(0px);
}
50%{
transform:translateY(-5px);
}
}

/* RESPONSIVE */

@media(max-width:992px){

.locations-title{
font-size:3rem;
}

.city-card{
width:280px;
}

.locations-track{
gap:20px;
animation-duration:45s;
}

.locations-stats{
gap:18px;
}

}

@media(max-width:768px){

.locations-section{
padding:70px 0;
}

.locations-title{
font-size:2.4rem;
}

.locations-subtitle{
font-size:16px;
}

.city-card{
width:260px;
}

.city-image-wrap{
height:200px;
}

.locations-track{
animation-duration:38s;
}

.stat-separator{
display:none;
}

}

@media(max-width:480px){

.locations-section{
padding:60px 0;
}

.city-card{
width:230px;
}

.city-name{
font-size:24px;
}

.locations-title{
font-size:2rem;
}

.locations-eyebrow{
font-size:12px;
padding:8px 18px;
}

}