/* =========================================================
   LOCATIONS SECTION
========================================================= */

.locations-section *{
    margin:0;
    padding:0;
    box-sizing:border-box;
}

.locations-section{
    width:100%;
    background:#f5f5f5;
    overflow:hidden;
    position:relative;
    font-family:Arial,sans-serif;

    padding:0 !important;
    margin:0 !important;
}

/* =========================================================
   AMBIENT BACKGROUND
========================================================= */

.locations-section .locations-bg-glow{
    position:absolute;
    inset:0;

    z-index:0;
    pointer-events:none;

    background:
        radial-gradient(480px circle at 12% 15%, rgba(255,0,153,.10), transparent 70%),
        radial-gradient(520px circle at 88% 25%, rgba(75,0,130,.12), transparent 70%),
        radial-gradient(460px circle at 50% 95%, rgba(255,0,153,.08), transparent 70%);

    background-size:200% 200%;

    animation:bgGlowDrift 16s ease-in-out infinite;
}

@keyframes bgGlowDrift{
    0%,100%{ background-position:0% 0%, 100% 0%, 50% 100%; }
    50%{ background-position:10% 15%, 85% 30%, 55% 85%; }
}

.locations-section .locations-orbit{
    position:absolute;
    inset:0;

    z-index:0;
    pointer-events:none;
}

.locations-section .orbit-icon{
    position:absolute;

    color:#ff0099;
    opacity:.10;

    filter:blur(.3px);
}

.locations-section .orbit-1{ top:8%;  left:6%;  font-size:34px; animation:orbitFloat 9s ease-in-out infinite; }
.locations-section .orbit-2{ top:70%; left:4%;  font-size:26px; color:#4b0082; animation:orbitFloat 11s ease-in-out infinite 1s; }
.locations-section .orbit-3{ top:14%; right:8%; font-size:20px; animation:orbitTwinkle 4s ease-in-out infinite; }
.locations-section .orbit-4{ top:78%; right:12%;font-size:24px; animation:orbitTwinkle 5.5s ease-in-out infinite .8s; }
.locations-section .orbit-5{ top:42%; right:3%; font-size:22px; color:#4b0082; animation:orbitFloat 10s ease-in-out infinite .4s; }

@keyframes orbitFloat{
    0%,100%{ transform:translateY(0) rotate(0deg); }
    50%{ transform:translateY(-22px) rotate(12deg); }
}

@keyframes orbitTwinkle{
    0%,100%{ opacity:.06; transform:scale(1); }
    50%{ opacity:.22; transform:scale(1.25); }
}

/* =========================================================
   CONTAINER
========================================================= */

.locations-container{
    width:100%;
    max-width:100%;

    margin:0 auto;

    position:relative;
    z-index:1;

    padding:20px 25px 0 !important;
}

/* =========================================================
   TITLE
========================================================= */

.locations-section .section-title{
    text-align:center;

    margin-bottom:30px;

    opacity:0;
    transform:translateY(60px);
    transition:1s ease;
}

.locations-section .section-title.show{
    opacity:1;
    transform:translateY(0);
}

.locations-section .section-title h4{
    display:inline-flex;
    align-items:center;
    justify-content:center;

    gap:10px;

    font-size:18px;
    color:#000;

    margin-bottom:15px;

    letter-spacing:2px;
    text-transform:uppercase;
    font-weight:700;
}

.locations-section .section-title h4 i{
    color:#ff0099;
    font-size:16px;

    animation:badgeSparkle 2.2s ease-in-out infinite;
}

@keyframes badgeSparkle{
    0%,100%{ transform:scale(1) rotate(0deg); opacity:1; }
    50%{ transform:scale(1.2) rotate(15deg); opacity:.6; }
}

.locations-section .section-title h2{
    font-size:62px;
    line-height:1;

    font-weight:800;

    margin-bottom:20px;

    background:linear-gradient(100deg,#ff0099,#4b0082,#ff0099);
    background-size:200% auto;

    -webkit-background-clip:text;
    background-clip:text;
    -webkit-text-fill-color:transparent;
    color:#ff0099;

    animation:titleShine 6s linear infinite;
}

@keyframes titleShine{
    0%{ background-position:0% center; }
    100%{ background-position:200% center; }
}

.locations-section .title-line{
    width:100px;
    height:4px;

    margin:0 auto 22px;

    position:relative;
    overflow:hidden;

    background:linear-gradient(90deg,#ff0099,#4b0082);
    border-radius:4px;

    transform:scaleX(0);
    transform-origin:center;
    transition:transform .9s ease .3s;
}

.locations-section .section-title.show .title-line{
    transform:scaleX(1);
}

.locations-section .title-line::after{
    content:'';

    position:absolute;
    top:0;
    left:-60%;

    width:40%;
    height:100%;

    background:rgba(255,255,255,.8);
    filter:blur(2px);

    animation:lineShimmer 2.5s ease-in-out infinite 1.2s;
}

@keyframes lineShimmer{
    0%{ left:-60%; }
    100%{ left:140%; }
}

.locations-section .section-title p{
    max-width:850px;

    margin:auto;

    color:#222;

    font-size:18px;
    line-height:1.8;
}

/* =========================================================
   SWIPER
========================================================= */

.locations-section .locationSwiper{
    overflow:hidden;

    padding:0 !important;
    margin:0 !important;
}

.locations-section .swiper{
    padding-bottom:0 !important;
    margin-bottom:0 !important;
}

.locations-section .swiper-wrapper{
    align-items:flex-start !important;

    padding-bottom:0 !important;
    margin-bottom:0 !important;
}

.locations-section .swiper-slide{
    height:auto !important;

    display:flex;

    opacity:0;
    transform:translateY(60px);

    transition:1s ease;
}

.locations-section .swiper-slide.show{
    opacity:1;
    transform:translateY(0);
}

/* =========================================================
   CARD
========================================================= */

.locations-section .location-card{
    width:100%;

    background:#fff;

    border-radius:30px;

    overflow:hidden;

    display:flex;
    flex-direction:column;

    border:1px solid rgba(0,0,0,.05);

    box-shadow:0 10px 35px rgba(0,0,0,.08);

    transition:transform .4s ease, box-shadow .4s ease;

    height:auto !important;
    min-height:auto !important;

    --tilt-x:0deg;
    --tilt-y:0deg;

    transform:perspective(1000px) rotateX(var(--tilt-x)) rotateY(var(--tilt-y));

    will-change:transform;
}

.locations-section .location-card{
    position:relative;
}

.locations-section .location-card::after{
    content:'';

    position:absolute;
    top:0;
    left:-130%;

    width:60%;
    height:100%;

    background:linear-gradient(120deg,transparent,rgba(255,255,255,.5),transparent);
    transform:skewX(-20deg);

    z-index:5;
    pointer-events:none;

    transition:left .8s ease;
}

.locations-section .location-card:hover::after{
    left:140%;
}

.locations-section .location-card:hover{
    transform:perspective(1000px) rotateX(var(--tilt-x)) rotateY(var(--tilt-y)) translateY(-8px);

    box-shadow:0 18px 45px rgba(255,0,153,.22);

    animation:cardGlowPulse 2.4s ease-in-out infinite;
}

@keyframes cardGlowPulse{
    0%,100%{ box-shadow:0 18px 45px rgba(255,0,153,.22); }
    50%{ box-shadow:0 18px 55px rgba(75,0,130,.28); }
}

/* =========================================================
   CARD TOP
========================================================= */

.locations-section .card-top{
    height:160px;

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

    position:relative;
    overflow:hidden;

    background:linear-gradient(
        135deg,
        #2d0b59,
        #4b0082,
        #ff0099
    );
}

/* CHAKRA */

.locations-section .card-top::before{
    content:'';

    position:absolute;

    width:220px;
    height:220px;

    background:url('../images/chakra.png') center/contain no-repeat;

    opacity:.22;

    animation:chakraRotate 30s linear infinite;
}

/* SECOND, SMALLER COUNTER-ROTATING CHAKRA LAYER */

.locations-section .card-top::after{
    content:'';

    position:absolute;

    width:130px;
    height:130px;

    background:url('../images/chakra.png') center/contain no-repeat;

    opacity:.18;

    animation:chakraRotate 18s linear infinite reverse;
}

/* ICON */

.locations-section .card-top i{
    font-size:56px;

    color:#fff;

    position:relative;
    z-index:2;

    animation:floatIcon 3s ease-in-out infinite;

    transition:filter .4s ease;
}

.locations-section .location-card:hover .card-top i{
    animation:floatIconBounce 1.1s ease-in-out infinite;

    filter:drop-shadow(0 0 10px rgba(255,255,255,.7));
}

@keyframes floatIconBounce{
    0%,100%{ transform:translateY(0) scale(1); }
    50%{ transform:translateY(-14px) scale(1.12); }
}

/* IMAGE ZOOM ON HOVER */

.locations-section .card-top-img{
    transition:transform .8s ease;
}

.locations-section .location-card:hover .card-top-img{
    transform:scale(1.12);
}

/* =========================================================
   CARD CONTENT
========================================================= */

.locations-section .card-content{
    padding:26px 22px !important;

    text-align:center;

    display:flex;
    flex-direction:column;
    align-items:center;

    height:auto !important;
    min-height:auto !important;

    flex:none !important;
}

/* =========================================================
   CARD TITLE
========================================================= */

.locations-section .card-content h3{
    font-size:30px;

    color:#ff0099;

    margin-bottom:14px;

    font-weight:800;
}

/* =========================================================
   DESCRIPTION
========================================================= */

.locations-section .card-content p{
    font-size:17px;
    line-height:1.8;

    color:#222;

    margin-bottom:20px;
}

/* =========================================================
   META
========================================================= */

.locations-section .card-meta{
    display:flex;
    flex-wrap:wrap;
    justify-content:center;

    gap:10px;

    margin-bottom:20px;
}

.locations-section .card-meta span{
    display:flex;
    align-items:center;

    gap:7px;

    background:#ffe9f5;

    color:#ff0099;

    padding:8px 14px;

    border-radius:40px;

    font-size:13px;
    font-weight:700;

    transition:transform .35s ease, box-shadow .35s ease;
}

.locations-section .location-card:hover .card-meta span{
    transform:translateY(-3px);
    box-shadow:0 6px 16px rgba(255,0,153,.22);
}

.locations-section .card-meta span:nth-child(1) i{
    animation:metaTwinkle 2.4s ease-in-out infinite;
}

@keyframes metaTwinkle{
    0%,100%{opacity:1;transform:scale(1);}
    50%{opacity:.4;transform:scale(1.2);}
}

.locations-section .card-meta span:nth-child(2) i{
    transition:transform .5s ease;
}

.locations-section .location-card:hover .card-meta span:nth-child(2) i{
    animation:metaTick 1s ease-in-out infinite;
}

@keyframes metaTick{
    0%,100%{ transform:rotate(0deg); }
    25%{ transform:rotate(-18deg); }
    75%{ transform:rotate(18deg); }
}

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

.locations-section .contact-btn{
    display:inline-flex;
    align-items:center;
    justify-content:center;

    gap:10px;

    padding:15px 28px;

    border-radius:60px;

    text-decoration:none;

    position:relative;
    overflow:hidden;

    background:linear-gradient(
        135deg,
        #ff0099,
        #ff4db8
    );

    color:#fff;

    font-size:15px;
    font-weight:700;

    transition:transform .4s ease, box-shadow .4s ease;

    box-shadow:0 12px 30px rgba(255,0,153,.25);

    margin:0 !important;
}

.locations-section .contact-btn::before{
    content:'';

    position:absolute;
    top:0;
    left:-75%;

    width:50%;
    height:100%;

    background:linear-gradient(120deg,transparent,rgba(255,255,255,.55),transparent);
    transform:skewX(-20deg);

    animation:btnShine 3.2s ease-in-out infinite;
}

@keyframes btnShine{
    0%{ left:-75%; }
    45%,100%{ left:130%; }
}

.locations-section .contact-btn i{
    position:relative;
    z-index:1;
    transition:transform .4s ease;
}

.locations-section .contact-btn:hover{
    transform:translateY(-4px) scale(1.05);

    box-shadow:0 16px 38px rgba(255,0,153,.4);
}

.locations-section .contact-btn:hover i{
    animation:btnIconRing 1s ease-in-out infinite;
}

@keyframes btnIconRing{
    0%,100%{ transform:rotate(0deg); }
    20%{ transform:rotate(-25deg); }
    40%{ transform:rotate(20deg); }
    60%{ transform:rotate(-15deg); }
    80%{ transform:rotate(10deg); }
}

/* =========================================================
   PAGINATION
========================================================= */

.locations-section .swiper-pagination{
    position:relative !important;

    margin-top:12px !important;
    margin-bottom:0 !important;

    bottom:0 !important;
}

.locations-section .swiper-pagination-bullets{
    bottom:0 !important;
}

.locations-section .swiper-pagination-bullet{
    background:#ff0099 !important;

    opacity:.4;

    transition:.3s ease;
}

.locations-section .swiper-pagination-bullet-active{
    opacity:1;

    width:22px;

    border-radius:30px;

    animation:bulletGlow 1.8s ease-in-out infinite;
}

@keyframes bulletGlow{
    0%,100%{ box-shadow:0 0 0 rgba(255,0,153,0); }
    50%{ box-shadow:0 0 10px rgba(255,0,153,.7); }
}

/* =========================================================
   NAVIGATION
========================================================= */

.locations-section .swiper-button-next,
.locations-section .swiper-button-prev{
    width:55px !important;
    height:55px !important;

    border-radius:50%;

    background:#fff;

    color:#ff0099 !important;

    box-shadow:0 10px 25px rgba(0,0,0,.12);

    transition:background .3s ease, color .3s ease, transform .3s ease, box-shadow .3s ease;
}

.locations-section .swiper-button-next:hover,
.locations-section .swiper-button-prev:hover{
    background:#ff0099;

    color:#fff !important;

    transform:scale(1.12);

    box-shadow:0 10px 28px rgba(255,0,153,.4);
}

.locations-section .swiper-button-next:active,
.locations-section .swiper-button-prev:active{
    transform:scale(.95);
}

.locations-section .swiper-button-next::after,
.locations-section .swiper-button-prev::after{
    font-size:18px !important;
    font-weight:bold;
}

/* =========================================================
   ANIMATIONS
========================================================= */

@keyframes chakraRotate{

    from{
        transform:rotate(0deg);
    }

    to{
        transform:rotate(360deg);
    }

}

@keyframes floatIcon{

    0%{
        transform:translateY(0);
    }

    50%{
        transform:translateY(-10px);
    }

    100%{
        transform:translateY(0);
    }

}

/* =========================================================
   REMOVE ALL EXTRA SPACE
========================================================= */

.locations-section,
.locations-container,
.locations-section .swiper,
.locations-section .swiper-wrapper{
    height:auto !important;
    min-height:auto !important;
}

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

@media(max-width:992px){

    .locations-section .section-title h2{
        font-size:46px;
    }

}

@media(max-width:768px){

    .locations-container{
        padding:25px 15px 0 !important;
    }

    .locations-section .section-title h2{
        font-size:34px;
    }

    .locations-section .section-title p{
        font-size:16px;
        line-height:1.7;
    }

    .locations-section .card-content h3{
        font-size:26px;
    }

    .locations-section .swiper-button-next,
    .locations-section .swiper-button-prev{
        display:none !important;
    }

}

@media(max-width:480px){

    .locations-container{
        padding:20px 10px 0 !important;
    }

    .locations-section .section-title h2{
        font-size:28px;
    }

    .locations-section .locationSwiper{
        padding:0 !important;
    }

    .locations-section .card-content{
        padding:22px 18px !important;
    }

}

/* =========================================================
   REDUCED MOTION
========================================================= */

@media(prefers-reduced-motion:reduce){

    .locations-section *{
        animation-duration:.001ms !important;
        animation-iteration-count:1 !important;
        transition-duration:.001ms !important;
    }

}