html,
body{
    width:100%;
    overflow-x:hidden;
}

*{
    box-sizing:border-box;
}

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

.event-hero{

position:relative;

 width:100%;
    min-height:100vh;

background:url("../img/bg_detail_event_breksi.webp");

background-size:cover;

background-position:center;

display:flex;

align-items:center;

overflow:hidden;

}

.hero-overlay{

position:absolute;

left:0;

top:0;

width:100%;

height:100%;

background:

linear-gradient(

90deg,

rgba(15,18,15,.82) 0%,

rgba(15,18,15,.65) 35%,

rgba(15,18,15,.25) 65%,

rgba(15,18,15,.10) 100%

);

}

.event-hero .container{

position:relative;

z-index:2;

}

.event-badge{

display:inline-block;

padding:8px 18px;

border-radius:30px;

background:#d6c08d;

color:#31422f;

font-size:13px;

letter-spacing:2px;

text-transform:uppercase;

margin-bottom:20px;

font-weight:600;

}

.event-hero h1{

font-size:72px;

color:#fff;

font-family:"Cormorant Garamond",serif;

margin-bottom:10px;

}

.event-hero h3{

color:#d8c596;

font-size:22px;

letter-spacing:4px;

text-transform:uppercase;

margin-bottom:30px;

}

.event-hero p{

color:white;

font-size:19px;

line-height:1.9;

max-width:550px;

margin-bottom:40px;

}


.hero-buttons{

display:flex;

gap:18px;

flex-wrap:wrap;

}

.btn-main{

padding:16px 40px;

background:#556B50;

color:white;

border-radius:40px;

text-decoration:none;

font-weight:600;

transition:.3s;

}

.btn-main:hover{

background:#41513d;

color:white;

transform:translateY(-3px);

}

.btn-outline{

padding:16px 40px;

border:1px solid rgba(255,255,255,.4);

color:white;

border-radius:40px;

text-decoration:none;

backdrop-filter:blur(10px);

transition:.3s;

}

.btn-outline:hover{

background:white;

color:#31422f;

}


.event-info{

margin-top:-70px;

position:relative;

z-index:20;

padding-bottom:120px;

}

.info-card{

background:white;

padding:40px;

border-radius:25px;

box-shadow:0 20px 60px rgba(0,0,0,.08);

text-align:center;

height:100%;

transition:.3s;

}

.info-card:hover{

transform:translateY(-8px);

}

.info-card .icon{

font-size:40px;

margin-bottom:20px;

}

.info-card h5{

font-family:"Cormorant Garamond",serif;

font-size:28px;

margin-bottom:12px;

color:#31422f;

}

.info-card p{

margin:0;

color:#666;

line-height:1.7;

}

@media(max-width:768px){

.event-hero{

height:85vh;

}

.event-hero h1{

font-size:48px;

}

.event-hero h3{

font-size:16px;

letter-spacing:2px;

}

.event-hero p{

font-size:16px;

}

.hero-buttons{

flex-direction:column;

}

.btn-main,

.btn-outline{

width:100%;

text-align:center;

}

.event-info{

margin-top:-40px;

}

.info-card{

margin-bottom:20px;

}

}

/* ===================================================
WHY JOIN
=================================================== */

.benefit-card{

    background:#fff;

    padding:45px 35px;

    border-radius:28px;

    text-align:center;

    transition:.35s;

    box-shadow:0 20px 50px rgba(0,0,0,.06);

}

.benefit-card:hover{

    transform:translateY(-10px);

    box-shadow:0 30px 60px rgba(0,0,0,.10);

}

.benefit-icon{

    width:90px;

    height:90px;

    margin:0 auto 25px;

    display:flex;

    align-items:center;

    justify-content:center;

    background:#F3F6F1;

    border-radius:50%;

    font-size:40px;

}

.benefit-card h4{

    margin-bottom:18px;

    color:#23311f;

}

.benefit-card p{

    margin:0;

    color:#666;

    line-height:1.8;

}

/* ===================================================
JOURNEY TIMELINE
=================================================== */

.journey-timeline{

    display:grid;

    grid-template-columns:repeat(5,1fr);

    gap:30px;

    position:relative;

}

.journey-timeline::before{

    content:"";

    position:absolute;

    top:42px;

    left:8%;

    right:8%;

    height:2px;

    background:#D8DFD5;

    z-index:1;

}

.journey-item{

    position:relative;

    z-index:2;

    text-align:center;

}

.journey-circle{

    width:84px;

    height:84px;

    margin:0 auto 25px;

    border-radius:50%;

    background:#66785F;

    color:#fff;

    display:flex;

    align-items:center;

    justify-content:center;

    font-size:22px;

    font-weight:700;

    box-shadow:0 15px 35px rgba(102,120,95,.25);

}

.journey-item h5{

    margin-bottom:12px;

    color:#23311f;

}

.journey-item p{

    font-size:15px;

    line-height:1.7;

    color:#777;

    min-height:90px;

}

.journey-item span{

    display:inline-block;

    margin-top:15px;

    padding:8px 18px;

    border-radius:50px;

    background:#F3F6F1;

    color:#66785F;

    font-weight:600;

    font-size:14px;

}

@media(max-width:991px){

    .journey-timeline{

        grid-template-columns:1fr;

        gap:40px;

    }

    .journey-timeline::before{

        display:none;

    }

}


/* ===================================================
WHAT'S INCLUDED
=================================================== */

.included-card{

    background:#fff;

    border-radius:24px;

    padding:40px 35px;

    text-align:center;

    height:100%;

    transition:.35s;

    box-shadow:0 15px 40px rgba(0,0,0,.05);

}

.included-card:hover{

    transform:translateY(-8px);

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

}

.included-icon{

    width:80px;

    height:80px;

    margin:0 auto 25px;

    border-radius:50%;

    background:#EEF4EA;

    display:flex;

    justify-content:center;

    align-items:center;

    font-size:36px;

}

.included-card h4{

    margin-bottom:15px;

    color:#23311f;

}

.included-card p{

    margin:0;

    color:#666;

    line-height:1.8;

}

/* ===================================================
INSTRUCTOR
=================================================== */

.coach-info{

    background:#F8F6F2;

    border-radius:20px;

    padding:25px;

    transition:.3s;

    height:100%;

}

.coach-info:hover{

    transform:translateY(-5px);

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

}

.coach-info h5{

    margin:0;

    color:#66785F;

    font-size:28px;

    font-weight:700;

}

.coach-info span{

    color:#666;

}

/* ===================================================
EVENT GALLERY
=================================================== */

.gallery-grid{

    display:grid;

    grid-template-columns:repeat(3,1fr);

    gap:22px;

}

.gallery-item{

    overflow:hidden;

    border-radius:28px;

    position:relative;

    height:320px;

}

.gallery-item.large{

    height:660px;

}

.gallery-item img{

    width:100%;

    height:100%;

    object-fit:cover;

    transition:.7s;

}

.gallery-item:hover img{

    transform:scale(1.08);

}

.gallery-item::after{

    content:"";

    position:absolute;

    inset:0;

    background:linear-gradient(to top,
    rgba(0,0,0,.25),
    transparent);

    opacity:0;

    transition:.4s;

}

.gallery-item:hover::after{

    opacity:1;

}


@media(max-width:991px){

.gallery-grid{

grid-template-columns:1fr;

}

.gallery-item,
.gallery-item.large{

height:320px;

}

}


/* ===================================================
TESTIMONIALS
=================================================== */

.testimonial-card{

    background:#fff;

    padding:35px;

    border-radius:24px;

    height:100%;

    box-shadow:0 15px 40px rgba(0,0,0,.06);

    transition:.35s;

}

.testimonial-card:hover{

    transform:translateY(-8px);

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

}

.testimonial-stars{

    color:#D4AF37;

    font-size:20px;

    margin-bottom:20px;

}

.testimonial-card p{

    color:#666;

    line-height:1.9;

    min-height:150px;

}

.testimonial-user{

    display:flex;

    align-items:center;

    gap:15px;

    margin-top:30px;

}

.testimonial-user img{

    width:70px;

    height:70px;

    border-radius:50%;

    object-fit:cover;

}

.testimonial-user h5{

    margin:0;

    font-size:18px;

}

.testimonial-user span{

    color:#888;

    font-size:14px;

}

/* ===================================================
FAQ
=================================================== */

.custom-accordion .accordion-item{

    border:none;

    margin-bottom:18px;

    border-radius:18px;

    overflow:hidden;

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

}

.custom-accordion .accordion-button{

    background:#fff;

    padding:24px;

    font-weight:600;

    color:#23311f;

}

.custom-accordion .accordion-button:not(.collapsed){

    background:#66785F;

    color:#fff;

}

.custom-accordion .accordion-body{

    padding:25px;

    color:#666;

    line-height:1.8;

}


/* ===================================================
PRICING
=================================================== */

.pricing-card{

    background:#fff;

    border-radius:30px;

    padding:45px;

    position:sticky;

    top:120px;

    box-shadow:0 20px 50px rgba(0,0,0,.08);

}

.pricing-label{

    display:inline-block;

    background:#EEF4EA;

    color:#66785F;

    padding:8px 20px;

    border-radius:50px;

    font-size:13px;

    letter-spacing:1px;

    margin-bottom:20px;

}

.pricing-card h2{

    font-size:48px;

    color:#23311f;

}

.pricing-card small{

    color:#777;

}

.pricing-card ul{

    list-style:none;

    padding:0;

    margin-top:30px;

}

.pricing-card li{

    padding:12px 0;

    border-bottom:1px solid #eee;

    color:#555;

}

.gallery-modal{

background:#111;

color:#fff;

}

.gallery-viewer{

position:relative;

display:flex;

justify-content:center;

align-items:center;

height:70vh;

}

.main-photo{

max-width:100%;

max-height:100%;

border-radius:15px;

}

@media (max-width:768px){

.gallery-viewer{

    height:55vh;

    padding:0 12px;

}

.main-photo{

    width:100%;

    max-height:55vh;

    object-fit:contain;

}

}

.gallery-prev,
.gallery-next{

    position:absolute;

    top:50%;

    transform:translateY(-50%);

    width:52px;
    height:52px;

    border-radius:50%;

    border:1px solid rgba(255,255,255,.2);

    background:rgba(255,255,255,.12);

    backdrop-filter:blur(12px);

    color:#fff;

    font-size:18px;

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

    transition:.3s;

    z-index:10;

}

.gallery-prev:hover,
.gallery-next:hover{

    background:#fff;
    color:#111;

}

.gallery-prev{

left:40px;

}

.gallery-next{

right:40px;

}

.thumb-wrapper{

    display:flex;

    gap:10px;

    overflow-x:auto;

    justify-content:center;

    padding:20px 12px;

}

.thumb{

    width:80px;

    height:60px;

    border-radius:10px;

    object-fit:cover;

    opacity:.6;

    border:2px solid transparent;

    transition:.3s;

}

.thumb.active{

    opacity:1;

    border-color:#73ffb4;

}

.thumb:hover{

opacity:1;

}


.album-card{

    position:relative;

    overflow:hidden;

    border-radius:24px;

    cursor:pointer;

    height:350px;

}

.album-card img{

    width:100%;

    height:100%;

    object-fit:cover;

    transition:.5s;

}

.album-card:hover img{

    transform:scale(1.08);

}

.album-overlay{

    position:absolute;

    inset:0;

    background:linear-gradient(
        transparent,
        rgba(0,0,0,.7)
    );

    display:flex;

    flex-direction:column;

    justify-content:flex-end;

    padding:30px;

    color:#fff;

}

.album-overlay h3{

    margin-bottom:5px;

}


.gallery-prev,
.gallery-next{

width:70px;

height:70px;

border-radius:50%;

background:rgba(255,255,255,.18);

backdrop-filter:blur(15px);

border:1px solid rgba(255,255,255,.15);

transition:.3s;

}

.gallery-prev:hover,
.gallery-next:hover{

background:#fff;

color:#111;

transform:translateY(-50%) scale(1.1);

}

.album-card{

    position:relative;

    border-radius:30px;

    overflow:hidden;

    cursor:pointer;

    height:320px;

    transition:.4s;

}

.album-card img{

    width:100%;

    height:100%;

    object-fit:cover;

    transition:.8s;

}

.album-card:hover img{

    transform:scale(1.08);

}

.album-overlay{

    position:absolute;

    inset:0;

    display:flex;

    justify-content:space-between;

    align-items:flex-end;

    padding:30px;

    background:linear-gradient(
        transparent 20%,
        rgba(0,0,0,.75)
    );

}

.album-overlay h3{

    color:#fff;

    font-size:32px;

    margin:0;

    font-family:"Cormorant Garamond",serif;

}

.album-overlay span{

    color:#ddd;

    font-size:16px;

}

.album-icon{

    width:58px;

    height:58px;

    border-radius:50%;

    display:flex;

    justify-content:center;

    align-items:center;

    background:rgba(255,255,255,.15);

    backdrop-filter:blur(10px);

    color:#fff;

    font-size:22px;

    transition:.3s;

}

.album-card:hover .album-icon{

    transform:scale(1.1);

    background:#fff;

    color:#111;

}

@media (max-width:768px){

    .gallery-prev{

        left:12px;

    }

    .gallery-next{

        right:12px;

    }

    .gallery-prev,
    .gallery-next{

        width:48px;
        height:48px;

        font-size:16px;

    }

}


/* =====================================
FLOATING REGISTER
===================================== */

.floating-register{

    position:fixed;

    left:20px;

    right:20px;

    bottom:20px;

    background:rgba(255,255,255,.92);

    backdrop-filter:blur(18px);

    border-radius:22px;

    padding:16px 18px;

    display:flex;

    justify-content:space-between;

    align-items:center;

    box-shadow:0 20px 60px rgba(0,0,0,.18);

    z-index:9999;

    transition:.4s;

}

.floating-info small{

    display:block;

    color:#888;

    font-size:12px;

    letter-spacing:1px;

    text-transform:uppercase;

}

.floating-info h4{

    margin:4px 0 0;

    font-size:28px;

    color:#23311f;

    font-family:"Cormorant Garamond",serif;

}

.floating-btn{

    background:linear-gradient(135deg,#ff2d2d,#d80000);

    color:#fff;

    text-decoration:none;

    padding:16px 28px;

    border-radius:50px;

    font-weight:700;

    display:flex;

    align-items:center;

    gap:10px;

    transition:.35s;

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

}

.floating-btn:hover{

    color:#fff;

    transform:translateY(-2px);

}

.floating-btn i{

    transition:.3s;

}

.floating-btn:hover i{

    transform:translateX(5px);

}


@media(max-width:768px){

.floating-register{

    left:12px;

    right:12px;

    bottom:12px;

    padding:14px;

}

.floating-info h4{

    font-size:24px;

}

.floating-btn{

    padding:14px 20px;

    font-size:15px;

}

}

