/* ==========================
   Reset
========================== */

*{
    margin:0;
    padding:0;
    box-sizing:border-box;
    font-family:"Segoe UI",Arial,sans-serif;
}

body{
    background:#f3f6fb;
}

/* ==========================
   Carousel
========================== */

.carousel{

    position:relative;
    width:100%;
    max-width:1200px;
    margin:auto;
    overflow:hidden;
    border-radius:20px;
    box-shadow:0 10px 30px rgba(0,0,0,.15);

}

#slideContainer{

    position:relative;
    width:100%;
    height:650px;

}

/* ==========================
   Slide
========================== */

.slide{

    position:absolute;
    inset:0;
    opacity:0;
    transition:opacity .8s ease;

}

.slide.active{

    opacity:1;
    z-index:1;

}

.slide img{
    width:100%;
    height:100%;
    object-fit:scale-down;
    background:white;
}

/* ==========================
   Caption
========================== */

.caption{

    position:absolute;
    left:40px;
    bottom:40px;

    width:420px;

    background:rgba(255,255,255,.5);   /* 50% transparan */

    backdrop-filter:blur(8px);

    border-radius:16px;

    padding:20px;

    box-shadow:0 4px 12px rgba(0,0,0,.15);

}

.caption h2{

    color:#005baa;
    font-size:32px;
    margin-bottom:8px;

}

.caption h3{

    color:#333;
    font-size:20px;
    margin-bottom:15px;

}

.caption p{

    color:#666;
    line-height:1.6;

}

/* ==========================
   Tombol
========================== */

.prev,
.next{

    position:absolute;
    top:50%;

    transform:translateY(-50%);

    width:55px;
    height:55px;

    border:none;
    border-radius:50%;

    background:rgba(255,255,255,.8);

    cursor:pointer;

    font-size:24px;

    transition:.3s;

    z-index:100;

}

.prev{

    left:20px;

}

.next{

    right:20px;

}

.prev:hover,
.next:hover{

    background:#005baa;
    color:white;

}

/* ==========================
   Dots
========================== */

#dots{

    position:absolute;

    bottom:15px;

    left:50%;

    transform:translateX(-50%);

    display:flex;

    gap:12px;

    z-index:200;

}

.dot{

    width:14px;
    height:14px;

    border-radius:50%;

    background:white;

    cursor:pointer;

    transition:.3s;

    opacity:.5;

}

.dot.active{

    opacity:1;

    background:#005baa;

    transform:scale(1.3);

}

/* ==========================
   Responsive
========================== */

@media(max-width:900px){

#slideContainer{
    width:100%;
    aspect-ratio:9/16;
    max-height:900px;
}

.caption{

    left:20px;
    right:20px;
    width:auto;

}

.caption h2{

    font-size:24px;

}

.caption h3{

    font-size:18px;

}

}

@media(max-width:600px){

#slideContainer{

    height:420px;

}

.caption{

    padding:18px;
    bottom:20px;

}

.caption h2{

    font-size:20px;

}

.caption h3{

    font-size:16px;

}

.caption p{

    font-size:14px;

}

.prev,
.next{

    width:42px;
    height:42px;

    font-size:18px;

}

}