/* Template: Evolo - StartUp HTML Landing Page Template
   Author: Inovatik
   Created: June 2019
   Description: Master CSS file
*/

/*****************************************
Table Of Contents:

01. General Styles
02. Preloader
03. Navigation
04. Header
05. Customers
06. Services
07. Details 1
08. Details 2
09. Details Lightboxes
10. Pricing
11. Request
12. Video
13. Testimonials
14. About
15. Contact
16. Footer
17. Copyright
18. Back To Top Button
19. Extra Pages
20. Media Queries
******************************************/

/*****************************************
Colors:
- Backgrounds - turquoise #00bfd8
- Backgrounds - blue #0079f9
- Backgrounds - light gray #f7fcfd
- Buttons, bullets, icons, links - turquoise #00bfd8
- Cards border, inputs border - light gray #c4d8dc
- Text headers, navbar links - black #393939
- Text body - black #626262
******************************************/

/******************************/
/*     01. General Styles     */
/******************************/
body,
html {
    width: 100%;
    height: 100%;
}

/******************************/
/*     Media     */
/******************************/

/* .media-container {
    margin: 50px auto;
    padding: 60px 50px;
    max-width: 1300px; */

/* === Modern Soft Gradient Background === */
/* background: linear-gradient(135deg, #f9fafb 0%, #eceff5 50%, #f4f7fb 100%);
    border-radius: 0px;
    position: relative;
    overflow: hidden; */

/* Soft inner shadow */
/* box-shadow: inset 0 0 40px rgba(0, 0, 0, 0.04),
        0 10px 25px rgba(0, 0, 0, 0.08); */
/* } */

/* Pattern Circle Glow */
/* .media-container::before {
    content: "";
    position: absolute;
    top: -50px;
    right: -50px;
    width: 220px;
    height: auto;
    background: radial-gradient(
        circle,
        rgba(99, 102, 241, 0.25),
        transparent 70%
    );
    filter: blur(25px);
} */

/* .media-container::after {
    content: "";
    position: absolute;
    bottom: -50px;
    left: -50px;
    width: 260px;
    height: auto;
    background: radial-gradient(
        circle,
        rgba(236, 72, 153, 0.25),
        transparent 70%
    );
    filter: blur(25px);
} */

/* Style untuk kalender*/

/*end Style kalender*/

.media-container {
    margin: 50px auto;
    padding: 60px 50px;
    max-width: 1800px;
    background: linear-gradient(135deg, #f9fafb, #eceff5, #f4f7fb);
    position: relative;
    overflow: hidden;
    border-radius: 10px;
    box-shadow: inset 0 0 40px rgba(0, 0, 0, 0.05),
        0 10px 25px rgba(0, 0, 0, 0.08);
}

.media-content {
    position: relative;
    z-index: 100;
}

/* STYLE DASAR BUBBLE */
.media-bubble {
    position: absolute;
    border-radius: 50%;
    filter: blur(40px);
    opacity: 0.4;
    pointer-events: none;
    z-index: 1;
}

/* === WARNA BUBBLE === */
:root {
    --blue: rgba(99, 102, 241, 0.4);
    --pink: rgba(236, 72, 153, 0.4);
    --sky: rgba(59, 130, 246, 0.38);
}

/* === POSISI + UKURAN BUBBLE === */
.b1 {
    width: 180px;
    height: 180px;
    top: 10%;
    left: 5%;
    background: var(--blue);
    animation: float1 18s infinite ease-in-out;
}
.b2 {
    width: 220px;
    height: 220px;
    top: 30%;
    left: -50px;
    background: var(--pink);
    animation: float2 22s infinite ease-in-out;
}
.b3 {
    width: 160px;
    height: 160px;
    top: 60%;
    left: 10%;
    background: var(--sky);
    animation: float3 20s infinite ease-in-out;
}
.b4 {
    width: 260px;
    height: 260px;
    top: -70px;
    right: -50px;
    background: var(--blue);
    animation: float4 26s infinite ease-in-out;
}
.b5 {
    width: 200px;
    height: 200px;
    top: 50%;
    right: 15%;
    background: var(--pink);
    animation: float5 24s infinite ease-in-out;
}
.b6 {
    width: 150px;
    height: 150px;
    bottom: 10%;
    right: 5%;
    background: var(--sky);
    animation: float6 17s infinite ease-in-out;
}
.b7 {
    width: 180px;
    height: 180px;
    bottom: 5%;
    left: 20%;
    background: var(--blue);
    animation: float7 21s infinite ease-in-out;
}
.b8 {
    width: 120px;
    height: 120px;
    top: 40%;
    right: 40%;
    background: var(--pink);
    animation: float8 15s infinite ease-in-out;
}
.b9 {
    width: 250px;
    height: 250px;
    bottom: -80px;
    left: -80px;
    background: var(--sky);
    animation: float9 25s infinite ease-in-out;
}
.b10 {
    width: 140px;
    height: 140px;
    top: 20%;
    right: 25%;
    background: var(--blue);
    animation: float10 19s infinite ease-in-out;
}

/* === ANIMASI RANDOM MULTI-ARAH === */
@keyframes float1 {
    0% {
        transform: translate(0, 0);
    }
    30% {
        transform: translate(30px, -20px);
    }
    60% {
        transform: translate(-20px, 25px);
    }
    100% {
        transform: translate(0, 0);
    }
}
@keyframes float2 {
    0% {
        transform: translate(0, 0);
    }
    25% {
        transform: translate(-40px, 20px);
    }
    55% {
        transform: translate(30px, -30px);
    }
    100% {
        transform: translate(0, 0);
    }
}
@keyframes float3 {
    0% {
        transform: translate(0, 0);
    }
    35% {
        transform: translate(20px, -40px);
    }
    70% {
        transform: translate(-20px, 30px);
    }
    100% {
        transform: translate(0, 0);
    }
}
@keyframes float4 {
    0% {
        transform: translate(0, 0);
    }
    30% {
        transform: translate(-25px, 50px);
    }
    80% {
        transform: translate(40px, -30px);
    }
    100% {
        transform: translate(0, 0);
    }
}
@keyframes float5 {
    0% {
        transform: translate(0, 0);
    }
    45% {
        transform: translate(35px, -25px);
    }
    90% {
        transform: translate(-25px, 40px);
    }
    100% {
        transform: translate(0, 0);
    }
}
@keyframes float6 {
    0% {
        transform: translate(0, 0);
    }
    30% {
        transform: translate(-20px, 20px);
    }
    75% {
        transform: translate(25px, -25px);
    }
    100% {
        transform: translate(0, 0);
    }
}
@keyframes float7 {
    0% {
        transform: translate(0, 0);
    }
    25% {
        transform: translate(30px, 25px);
    }
    70% {
        transform: translate(-40px, -30px);
    }
    100% {
        transform: translate(0, 0);
    }
}
@keyframes float8 {
    0% {
        transform: translate(0, 0);
    }
    20% {
        transform: translate(-20px, -25px);
    }
    65% {
        transform: translate(25px, 30px);
    }
    100% {
        transform: translate(0, 0);
    }
}
@keyframes float9 {
    0% {
        transform: translate(0, 0);
    }
    40% {
        transform: translate(40px, -20px);
    }
    85% {
        transform: translate(-30px, 35px);
    }
    100% {
        transform: translate(0, 0);
    }
}
@keyframes float10 {
    0% {
        transform: translate(0, 0);
    }
    25% {
        transform: translate(20px, 30px);
    }
    70% {
        transform: translate(-35px, -20px);
    }
    100% {
        transform: translate(0, 0);
    }
}
/* Bubble Wrapper */
.floating-bubbles {
    position: absolute;
    inset: 0;
    overflow: hidden;
    z-index: 0;
}

/* Bubble Style */
.floating-bubbles span {
    position: absolute;
    display: block;
    border-radius: 50%;
    filter: blur(12px);
    opacity: 0.7;

    /* Warna lebih terlihat */
    background: radial-gradient(
        circle at center,
        rgba(99, 102, 241, 0.6) 0%,
        /* Indigo */ rgba(236, 72, 153, 0.6) 40%,
        /* Pink */ rgba(16, 185, 129, 0.6) 80% /* Emerald */
    );

    animation: moveBubble 12s linear infinite;
}

/* Animasi perpindahan random */
@keyframes moveBubble {
    0% {
        transform: translate(0, 0) scale(1);
        opacity: 0.7;
    }
    25% {
        transform: translate(50px, -80px) scale(1.2);
    }
    50% {
        transform: translate(-60px, 60px) scale(0.9);
        opacity: 0.6;
    }
    75% {
        transform: translate(80px, 40px) scale(1.3);
    }
    100% {
        transform: translate(0, 0) scale(1);
        opacity: 0.7;
    }
}

/******************************/
/*    End Media     */
/******************************/

p {
    /* color: #626262; */
    color: #161616;
    font: 400 0.875rem/1.375rem "Raleway", sans-serif;
}

.p-large {
    font: 400 1rem/1.5rem "Raleway", sans-serif;
}

.p-small {
    font: 400 0.75rem/1.25rem "Raleway", sans-serif;
}

.p-heading {
    margin-bottom: 3.875rem;
}

.li-space-lg li {
    margin-bottom: 0.25rem;
}

.indent {
    padding-left: 1.25rem;
}

h1 {
    color: #00bfd8;
    font: 700 3rem/3.5rem "Raleway", sans-serif;
}

h2 {
    color: #393939;
    font: 700 2.25rem/2.75rem "Raleway", sans-serif;
}

h3 {
    color: #393939;
    font: 700 1.75rem/2rem "Raleway", sans-serif;
}

h4 {
    color: #393939;
    font: 700 1.375rem/1.875rem "Raleway", sans-serif;
}

h5 {
    color: #393939;
    font: 700 1.125rem/1.625rem "Raleway", sans-serif;
}

h6 {
    color: #393939;
    font: 700 1rem/1.5rem "Raleway", sans-serif;
}

a {
    color: #626262;
    text-decoration: underline;
}

a:hover {
    color: #626262;
    text-decoration: underline;
}

a.turquoise {
    color: #626262;
}

a.white {
    color: #fff;
}

.testimonial-text {
    font: italic 400 1rem/1.5rem "Raleway", sans-serif;
}

.testimonial-author {
    font: 700 1rem/1.5rem "Raleway", sans-serif;
}

.turquoise {
    color: #00bfd8;
}

.btn-solid-reg {
    display: inline-block;
    padding: 1.1875rem 2.125rem 1.1875rem 2.125rem;
    border: 0.125rem solid #00bfd8;
    border-radius: 2rem;
    background-color: #00bfd8;
    color: #fff;
    font: 700 0.75rem/0 "Raleway", sans-serif;
    text-decoration: none;
    transition: all 0.2s;
}

.btn-solid-reg:hover {
    background-color: transparent;
    color: #00bfd8;
    text-decoration: none;
}

.btn-solid-lg {
    display: inline-block;
    padding: 1.375rem 2.625rem 1.375rem 2.625rem;
    border: 0.125rem solid #00bfd8;
    border-radius: 2rem;
    background-color: #00bfd8;
    color: #fff;
    font: 700 0.75rem/0 "Raleway", sans-serif;
    text-decoration: none;
    transition: all 0.2s;
}

.btn-solid-lg:hover {
    background-color: transparent;
    color: #00bfd8;
    text-decoration: none;
}

.btn-solid-rg {
    display: inline-block;
    padding: 1.375rem 2.625rem 1.375rem 2.625rem;
    border: 0.125rem solid #00bfd8;
    border-radius: 2rem;
    background-color: #ffffff;
    color: #00bfd8;
    margin-left: 10px;
    font: 700 0.75rem/0 "Raleway", sans-serif;
    text-decoration: none;
    transition: all 0.2s;
}

.btn-solid-rg:hover {
    border-radius: 2rem;
    background-color: #fdc346;
    color: #ffffff;
    border: none;
    text-decoration: none;
}

.btn-outline-reg {
    display: inline-block;
    padding: 1.1875rem 2.125rem 1.1875rem 2.125rem;
    border: 0.125rem solid #00bfd8;
    border-radius: 2rem;
    background-color: transparent;
    color: #00bfd8;
    font: 700 0.75rem/0 "Raleway", sans-serif;
    text-decoration: none;
    transition: all 0.2s;
}

.btn-outline-reg:hover {
    background-color: #00bfd8;
    color: #fff;
    text-decoration: none;
}

.btn-outline-lg {
    display: inline-block;
    padding: 1.375rem 2.625rem 1.375rem 2.625rem;
    border: 0.125rem solid #00bfd8;
    border-radius: 2rem;
    background-color: transparent;
    color: #00bfd8;
    font: 700 0.75rem/0 "Raleway", sans-serif;
    text-decoration: none;
    transition: all 0.2s;
}

.btn-outline-lg:hover {
    background-color: #00bfd8;
    color: #fff;
    text-decoration: none;
}

.btn-outline-sm {
    display: inline-block;
    padding: 1rem 1.625rem 0.875rem 1.625rem;
    border: 0.125rem solid #00bfd8;
    border-radius: 2rem;
    background-color: transparent;
    color: #00bfd8;
    font: 700 0.625rem/0 "Raleway", sans-serif;
    text-decoration: none;
    transition: all 0.2s;
}

.btn-outline-sm:hover {
    background-color: #00bfd8;
    color: #fff;
    text-decoration: none;
}

.form-group {
    position: relative;
    margin-bottom: 1.25rem;
}

.form-group.has-error.has-danger {
    margin-bottom: 0.625rem;
}

.form-group.has-error.has-danger .help-block.with-errors ul {
    margin-top: 0.375rem;
}

.label-control {
    position: absolute;
    top: 0.87rem;
    left: 1.375rem;
    color: #626262;
    opacity: 1;
    font: 400 0.875rem/1.375rem "Raleway", sans-serif;
    cursor: text;
    transition: all 0.2s ease;
}

/* Animasi untuk elemen teks */
.text-animate {
    opacity: 0;
    animation: fadeInUp 1s ease forwards;
}

/* Delay untuk masing-masing elemen */
h1.text-animate {
    animation-delay: 0.3s;
}

h2.text-animate {
    animation-delay: 0.3s;
}
h3.text-animate {
    animation-delay: 0.3s;
}
h4.text-animate {
    animation-delay: 0.4s;
}

span.text-animate {
    animation-delay: 0.5s;
}

p.text-animate {
    animation-delay: 0.3s;
}
a.text-animate {
    animation-delay: 0.5s;
}

.button-container {
    animation: fadeIn 1s ease forwards;
    animation-delay: 1.2s;
    opacity: 0;
}

.chart-card.text-animate {
    animation-delay: 0.6s;
}

.card-1.text-animate {
    animation-delay: 0.6s;
}

/* Keyframes untuk animasi text */
@keyframes fadeInUp {
    from {
        opacity: 0;
        transform: translateY(20px);
    }

    to {
        opacity: 1;
        transform: translateY(0);
    }
}

@keyframes fadeIn {
    from {
        opacity: 0;
    }

    to {
        opacity: 1;
    }
}

/* IE10+ hack to solve lower label text position compared to the rest of the browsers */
@media screen and (-ms-high-contrast: active),
    screen and (-ms-high-contrast: none) {
    .label-control {
        top: 0.9375rem;
    }
}

.form-control-input:focus + .label-control,
.form-control-input.notEmpty + .label-control,
.form-control-textarea:focus + .label-control,
.form-control-textarea.notEmpty + .label-control {
    top: 0.125rem;
    opacity: 1;
    font-size: 0.75rem;
    font-weight: 700;
}

.form-control-input,
.form-control-select {
    display: block; /* needed for proper display of the label in Firefox, IE, Edge */
    width: 100%;
    padding-top: 1.0625rem;
    padding-bottom: 0.0625rem;
    padding-left: 1.3125rem;
    border: 1px solid #c4d8dc;
    border-radius: 0.25rem;
    background-color: #fff;
    color: #626262;
    font: 400 0.875rem/1.875rem "Raleway", sans-serif;
    transition: all 0.2s;
    -webkit-appearance: none; /* removes inner shadow on form inputs on ios safari */
}

.form-control-select {
    padding-top: 0.5rem;
    padding-bottom: 0.5rem;
    height: 3rem;
}

/* IE10+ hack to solve lower label text position compared to the rest of the browsers */
@media screen and (-ms-high-contrast: active),
    screen and (-ms-high-contrast: none) {
    .form-control-input {
        padding-top: 1.25rem;
        padding-bottom: 0.75rem;
        line-height: 1.75rem;
    }

    .form-control-select {
        padding-top: 0.875rem;
        padding-bottom: 0.75rem;
        height: 3.125rem;
        line-height: 2.125rem;
    }
}

select {
    /* you should keep these first rules in place to maintain cross-browser behavior */
    -webkit-appearance: none;
    -moz-appearance: none;
    -ms-appearance: none;
    -o-appearance: none;
    appearance: none;
    background-image: url("../images/down-arrow.png");
    background-position: 96% 50%;
    background-repeat: no-repeat;
    outline: none;
}

select::-ms-expand {
    display: none; /* removes the ugly default down arrow on select form field in IE11 */
}

.form-control-textarea {
    display: block; /* used to eliminate a bottom gap difference between Chrome and IE/FF */
    width: 100%;
    height: 8rem; /* used instead of html rows to normalize height between Chrome and IE/FF */
    padding-top: 1.25rem;
    padding-left: 1.3125rem;
    border: 1px solid #c4d8dc;
    border-radius: 0.25rem;
    background-color: #fff;
    color: #626262;
    font: 400 0.875rem/1.75rem "Raleway", sans-serif;
    transition: all 0.2s;
}

.form-control-input:focus,
.form-control-select:focus,
.form-control-textarea:focus {
    border: 1px solid #a1a1a1;
    outline: none; /* Removes blue border on focus */
}

.form-control-input:hover,
.form-control-select:hover,
.form-control-textarea:hover {
    border: 1px solid #a1a1a1;
}

.checkbox {
    font: 400 0.75rem/1.25rem "Raleway", sans-serif;
}

input[type="checkbox"] {
    vertical-align: -15%;
    margin-right: 0.375rem;
}

/* IE10+ hack to raise checkbox field position compared to the rest of the browsers */
@media screen and (-ms-high-contrast: active),
    screen and (-ms-high-contrast: none) {
    input[type="checkbox"] {
        vertical-align: -9%;
    }
}

.form-control-submit-button {
    display: inline-block;
    width: 100%;
    height: 3.125rem;
    border: 1px solid #00bfd8;
    border-radius: 1.5rem;
    background-color: #00bfd8;
    color: #fff;
    font: 700 0.75rem/1.75rem "Raleway", sans-serif;
    cursor: pointer;
    transition: all 0.2s;
}

.form-control-submit-button:hover {
    background-color: transparent;
    color: #00bfd8;
}

/* Form Success And Error Message Formatting */
#rmsgSubmit.h3.text-center.tada.animated,
#cmsgSubmit.h3.text-center.tada.animated,
#pmsgSubmit.h3.text-center.tada.animated,
#rmsgSubmit.h3.text-center,
#cmsgSubmit.h3.text-center,
#pmsgSubmit.h3.text-center {
    display: block;
    margin-bottom: 0;
    color: #626262;
    font: 400 1.125rem/1rem "Raleway", sans-serif;
}

.help-block.with-errors .list-unstyled {
    color: #626262;
    font-size: 0.75rem;
    line-height: 1.125rem;
    text-align: left;
}

.help-block.with-errors ul {
    margin-bottom: 0;
}
/* end of form success and error message formatting */

/* Form Success And Error Message Animation - Animate.css */
@-webkit-keyframes tada {
    from {
        -webkit-transform: scale3d(1, 1, 1);
        -ms-transform: scale3d(1, 1, 1);
        transform: scale3d(1, 1, 1);
    }
    10%,
    20% {
        -webkit-transform: scale3d(0.9, 0.9, 0.9) rotate3d(0, 0, 1, -3deg);
        -ms-transform: scale3d(0.9, 0.9, 0.9) rotate3d(0, 0, 1, -3deg);
        transform: scale3d(0.9, 0.9, 0.9) rotate3d(0, 0, 1, -3deg);
    }
    30%,
    50%,
    70%,
    90% {
        -webkit-transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, 3deg);
        -ms-transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, 3deg);
        transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, 3deg);
    }
    40%,
    60%,
    80% {
        -webkit-transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, -3deg);
        -ms-transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, -3deg);
        transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, -3deg);
    }
    to {
        -webkit-transform: scale3d(1, 1, 1);
        -ms-transform: scale3d(1, 1, 1);
        transform: scale3d(1, 1, 1);
    }
}

@keyframes tada {
    from {
        -webkit-transform: scale3d(1, 1, 1);
        -ms-transform: scale3d(1, 1, 1);
        transform: scale3d(1, 1, 1);
    }
    10%,
    20% {
        -webkit-transform: scale3d(0.9, 0.9, 0.9) rotate3d(0, 0, 1, -3deg);
        -ms-transform: scale3d(0.9, 0.9, 0.9) rotate3d(0, 0, 1, -3deg);
        transform: scale3d(0.9, 0.9, 0.9) rotate3d(0, 0, 1, -3deg);
    }
    30%,
    50%,
    70%,
    90% {
        -webkit-transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, 3deg);
        -ms-transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, 3deg);
        transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, 3deg);
    }
    40%,
    60%,
    80% {
        -webkit-transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, -3deg);
        -ms-transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, -3deg);
        transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, -3deg);
    }
    to {
        -webkit-transform: scale3d(1, 1, 1);
        -ms-transform: scale3d(1, 1, 1);
        transform: scale3d(1, 1, 1);
    }
}

.tada {
    -webkit-animation-name: tada;
    animation-name: tada;
}

.animated {
    -webkit-animation-duration: 1s;
    animation-duration: 1s;
    -webkit-animation-fill-mode: both;
    animation-fill-mode: both;
}
/* end of form success and error message animation - Animate.css */

/* Fade-move Animation For Lightbox - Magnific Popup */
/* at start */
.my-mfp-slide-bottom .zoom-anim-dialog {
    opacity: 0;
    transition: all 0.2s ease-out;
    -webkit-transform: translateY(-1.25rem) perspective(37.5rem) rotateX(10deg);
    -ms-transform: translateY(-1.25rem) perspective(37.5rem) rotateX(10deg);
    transform: translateY(-1.25rem) perspective(37.5rem) rotateX(10deg);
}

/* animate in */
.my-mfp-slide-bottom.mfp-ready .zoom-anim-dialog {
    opacity: 1;
    -webkit-transform: translateY(0) perspective(37.5rem) rotateX(0);
    -ms-transform: translateY(0) perspective(37.5rem) rotateX(0);
    transform: translateY(0) perspective(37.5rem) rotateX(0);
}

/* animate out */
.my-mfp-slide-bottom.mfp-removing .zoom-anim-dialog {
    opacity: 0;
    -webkit-transform: translateY(-0.625rem) perspective(37.5rem) rotateX(10deg);
    -ms-transform: translateY(-0.625rem) perspective(37.5rem) rotateX(10deg);
    transform: translateY(-0.625rem) perspective(37.5rem) rotateX(10deg);
}

/* dark overlay, start state */
.my-mfp-slide-bottom.mfp-bg {
    opacity: 0;
    transition: opacity 0.2s ease-out;
}

/* animate in */
.my-mfp-slide-bottom.mfp-ready.mfp-bg {
    opacity: 0.8;
}
/* animate out */
.my-mfp-slide-bottom.mfp-removing.mfp-bg {
    opacity: 0;
}
/* end of fade-move animation for lightbox - magnific popup */

/* Fade Animation For Image Slider - Magnific Popup */
@-webkit-keyframes fadeIn {
    from {
        opacity: 0;
    }
    to {
        opacity: 1;
    }
}

@keyframes fadeIn {
    from {
        opacity: 0;
    }
    to {
        opacity: 1;
    }
}

.fadeIn {
    -webkit-animation: fadeIn 0.6s;
    animation: fadeIn 0.6s;
}

@-webkit-keyframes fadeOut {
    from {
        opacity: 1;
    }
    to {
        opacity: 0;
    }
}

@keyframes fadeOut {
    from {
        opacity: 1;
    }
    to {
        opacity: 0;
    }
}

.fadeOut {
    -webkit-animation: fadeOut 0.8s;
    animation: fadeOut 0.8s;
}
/* end of fade animation for image slider - magnific popup */

/*************************/
/*     02. Preloader     */
/*************************/
.spinner-wrapper {
    position: fixed;
    z-index: 999999;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    background: #fff;
}

.spinner {
    position: absolute;
    top: 50%; /* centers the loading animation vertically one the screen */
    left: 50%; /* centers the loading animation horizontally one the screen */
    width: 3.75rem;
    height: 1.25rem;
    margin: -0.625rem 0 0 -1.875rem; /* is width and height divided by two */
    text-align: center;
}

.spinner > div {
    display: inline-block;
    width: 1rem;
    height: 1rem;
    border-radius: 100%;
    background-color: #00bfd8;
    -webkit-animation: sk-bouncedelay 1.4s infinite ease-in-out both;
    animation: sk-bouncedelay 1.4s infinite ease-in-out both;
}

.spinner .bounce1 {
    -webkit-animation-delay: -0.32s;
    animation-delay: -0.32s;
}

.spinner .bounce2 {
    -webkit-animation-delay: -0.16s;
    animation-delay: -0.16s;
}

@-webkit-keyframes sk-bouncedelay {
    0%,
    80%,
    100% {
        -webkit-transform: scale(0);
    }
    40% {
        -webkit-transform: scale(1);
    }
}

@keyframes sk-bouncedelay {
    0%,
    80%,
    100% {
        -webkit-transform: scale(0);
        -ms-transform: scale(0);
        transform: scale(0);
    }
    40% {
        -webkit-transform: scale(1);
        -ms-transform: scale(1);
        transform: scale(1);
    }
}

/*************************/
/*     00. Gallery     */
/*************************/
/* gallery-show.css */
/* === Gallery Cards Modern === */

/* .gallery-card {
    background: #ffffff;
    border-radius: 14px;
    overflow: hidden;
    border: none;
    box-shadow: 0 12px 30px rgba(0, 0, 0, 0.15);
    transition: 0.3s ease;
    position: relative;
    width: 18rem;
}

.gallery-card:hover {
    transform: translateY(-6px);
    box-shadow: 0 14px 28px rgba(0, 0, 0, 0.12);
} */

.gallery-card {
    background: #ffffff;
    border-radius: 14px;
    overflow: hidden;
    border: none;
    box-shadow: 0 8px 20px rgba(0, 0, 0, 0.07);
    transition: transform 0.3s ease, box-shadow 0.3s ease, filter 0.3s ease;
    position: relative;
    width: 18rem;

    cursor: pointer;
    z-index: 1; /* default */
}

/* Hover efek pop-out */
.gallery-card:hover {
    transform: translateY(-10px) scale(1.1); /* lebih besar */
    box-shadow: 0 20px 40px rgba(0, 0, 0, 0.2); /* shadow lebih besar */
    filter: brightness(1.08);
    z-index: 10; /* tampil di atas kartu lain */
}

 Thumbnail image 
 .thumbnail-img {
    width: 100%;
    height: 200px;
    object-fit: cover;
} 

/* Body */
.gallery-card .card-body {
    padding: 15px 18px;
}

.gallery-card .card-title {
    padding: 20px;
    font-size: 1.05rem;
    font-weight: 700;
    margin-bottom: 8px;
    color: #111827;
}

.gallery-card .card-text {
    font-size: 0.9rem;
    color: #4b5563;
}

/* Footer */
/* Footer modern */
.card-footer {
    display: flex;
    justify-content: space-between;
    padding: 10px 18px;
    background: #fafafa;
    border-top: 1px solid rgba(0, 0, 0, 0.06);
}

/* Modern footer text */

.card-footer span {
    font-size: 0.75rem;
    font-weight: 500;
    color: #6b7280;
    display: inline-flex;
    align-items: center;
    gap: 4px;
    transition: 0.2s ease;
}

/* Hover sedikit glowing */
.card-footer span:hover {
    color: #374151;
}

/* Responsive adjustments */
/*@media (max-width: 768px) {*/
/*    .gallery-content {*/
/*        max-width: 100%;*/
/*        padding: 0 1rem;*/
/*    }*/

/*    .gallery-title {*/
/*        font-size: 1.8rem;*/
/*    }*/
/*}*/
/**************************/
/*     03. Navigation     */
/**************************/
/* .media-container {
    margin: 50px;
    padding: 10rem 2rem 0.5rem 2rem;
} */

.navbar-custom {
    background-color: #01bfd9;
    box-shadow: 0 0.0625rem 0.375rem 0 rgba(0, 0, 0, 0.1);
    font: 600 0.875rem/0.875rem "Raleway", sans-serif;
    transition: all 0.2s;
}

.navbar-custom .navbar-brand.logo-image img {
    /* background: url("../images/logo 2.png"); */
    width: 7.4375rem;
    height: 2rem;
}

@import url("https://fonts.googleapis.com/css2?family=Space+Grotesk:wght@500;600;700&display=swap");

.navbar-brand.logo-group {
    display: flex;
    align-items: center;
    text-decoration: none;
    gap: 10px;
}

.navbar-brand .logo-image {
    width: 48px;
    height: 48px;
    object-fit: contain;
}

.brand-text {
    display: flex;
    flex-direction: column;
    line-height: 1.1;
}

.brand-text .main-title {
    font-family: "Space Grotesk", sans-serif;
    font-weight: 700;
    font-size: 1.2rem;
    letter-spacing: 0.5px;
    color: #1f1e1e;

    transition: all 0.3s ease;
}

.brand-text .sub-title {
    font-family: "Space Grotesk", sans-serif;
    font-weight: 525;
    font-size: 0.85rem;
    color: #555;
    margin-top: 2px;
    letter-spacing: 0.3px;
}

.brand-text .main-title:hover {
    transform: scale(1.05);
    text-shadow: 0 0 8px rgba(0, 114, 255, 0.3);
}

/* .navbar-custom .navbar-brand.logo-text {
    font-family: "Space Grotesk", sans-serif;
    font-weight: 700;
    font-size: 1rem;
    letter-spacing: 0.5px;
    text-transform: uppercase;
    background-image: linear-gradient(90deg, #00c6ff, #0072ff 50%, #1f1e1e 50%);
    background-size: 200% 100%;
    background-position: 100%;
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    transition: all 0.4s ease;
    position: relative;
}

.navbar-custom .navbar-brand.logo-text:hover {
    background-position: 0%;
    transform: scale(1.05);
    text-shadow: 0 0 10px rgba(0, 114, 255, 0.3);
} */

.navbar-custom .navbar-nav {
    padding: 20px 20px 20px 5px;
    margin-top: 0.75rem;
    margin-bottom: 0.5rem;
}

.navbar-custom .nav-item .nav-link {
    padding: 0.625rem 0.75rem 0.625rem 0.75rem;
    color: #ffffff;
    text-decoration: none;
    transition: all 0.2s ease;
    margin-left: 15px;
    font-weight: 700;
    /* text-shadow: 1px 1px 3px rgba(0, 0, 0, 0.3); */
    /* text-shadow: 0 2px 6px rgba(0, 0, 0, 0.05); */
    /* text-shadow: 2px 2px 4px rgba(0, 0, 0, 0.5); */
}

.navbar-custom .nav-item-1 .nav-link-1 {
    padding: 0.625rem 0.75rem 0.625rem 0.75rem;
    color: #393939;
    text-decoration: none;
    transition: all 0.2s ease;
}
/* .navbar-custom .nav-item .nav-link:hover,
.navbar-custom .nav-item .nav-link.active {
    color: #00bfd8;
} */

/* Start link navbar active*/
.navbar-custom .nav-item .nav-link:hover,
.navbar-custom .nav-item .nav-link.active {
    /* opacity: 1; */
    color: #333333;
    border-radius: 4px;
    transition: all 0.3s ease;
    position: relative; /* Required for the underline positioning */
}

.navbar-custom .nav-item .nav-link:hover::after,
.navbar-custom .nav-item .nav-link.active::after {
    content: "";
    position: absolute;
    left: 0;
    bottom: -28px; /* Adjust this value to change distance from text */
    width: 100%;
    height: 2px; /* Underline thickness */
    background-color: #31acff; /* Underline color */
    transform: scaleX(1);
    transition: transform 0.3s ease;
}

.navbar-custom.top-nav-collapse {
    padding: 0.625rem 0.75rem 0.625rem 0.75rem;
    box-shadow: 0 0.0625rem 0.375rem 0 rgba(0, 0, 0, 0.1);
    background-color: #31acff;
}
/* End link navbar active*/

/* Dropdown Menu */
.navbar-custom .dropdown:hover > .dropdown-menu {
    display: block; /* this makes the dropdown menu stay open while hovering it */
    min-width: auto;
    animation: fadeDropdown 0.2s; /* required for the fade animation */
}

@keyframes fadeDropdown {
    0% {
        opacity: 0;
    }

    100% {
        opacity: 1;
    }
}

.navbar-custom .dropdown-toggle:focus {
    /* removes dropdown outline on focus */
    outline: 0;
}

.navbar-custom .dropdown-menu {
    margin-top: 0;
    margin-bottom: 0.5rem;
    border: none;
    border-radius: 0.25rem;
    background-color: #fff;
}

.navbar-custom .dropdown-item {
    color: #393939;
    text-decoration: none;
}

.navbar-custom .dropdown-item:hover {
    background-color: #fff;
}

.navbar-custom .dropdown-item .item-text {
    font: 600 0.875rem/0.875rem "Raleway", sans-serif;
}

.navbar-custom .dropdown-item:hover .item-text {
    color: #0d5088;
}

.navbar-custom .dropdown-items-divide-hr {
    width: 100%;
    height: 1px;
    margin: 0.75rem auto 0.725rem auto;
    border: none;
    background-color: #dcc4c4;
    opacity: 0.2;
}
/* end of dropdown menu */

.navbar-custom .social-icons {
    display: none;
}

.navbar-custom .navbar-toggler {
    border: none;
    color: #ffffff;
    font-size: 2rem;
}

.navbar-custom
    button[aria-expanded="false"]
    .navbar-toggler-awesome.fas.fa-times {
    display: none;
}

.navbar-custom
    button[aria-expanded="false"]
    .navbar-toggler-awesome.fas.fa-bars {
    display: inline-block;
}

.navbar-custom
    button[aria-expanded="true"]
    .navbar-toggler-awesome.fas.fa-bars {
    display: none;
}

.navbar-custom
    button[aria-expanded="true"]
    .navbar-toggler-awesome.fas.fa-times {
    display: inline-block;
    margin-right: 0.125rem;
}

/*********************/
/*    04. Header     */
/*********************/
.header {
    background-color: #ffffff;
}

.header .header-content {
    padding-top: 8rem;
    padding-bottom: 4rem;
    text-align: center;
}

.header .text-container {
    margin-bottom: 4rem;
}

.header .image-container {
    margin-bottom: 4rem;
}

.header h1 {
    margin-bottom: 1.125rem;
    font-size: 2.5rem;
    line-height: 3.125rem;
}

.header .p-large {
    margin-bottom: 1.875rem;
}

/*************************/
/*     05. Customers     */
/*************************/
.slider-1 {
    padding-top: 2.25rem;
    padding-bottom: 2.125rem;
    text-align: center;
}

.slider-1 h5 {
    margin-bottom: 0.75rem;
}

.slider-1 .slider-container {
    padding-top: 2.75rem;
    padding-bottom: 2.75rem;
    border-radius: 0.5rem;
    background-color: #f7fcfd;
}

/************************/
/*     06. Services     */
/************************/

/* === Gallery Cards Modern === */

/* .gallery-card {
    background: #ffffff;
    border-radius: 14px;
    overflow: hidden;
    border: none;
    box-shadow: 0 8px 20px rgba(0, 0, 0, 0.07);
    transition: 0.3s ease;
    position: relative;
} */

.gallery-card:hover {
    transform: translateY(-6px);
    box-shadow: 0 14px 28px rgba(0, 0, 0, 0.12);
}

/* Thumbnail image */
/*.thumbnail-img {*/
/*    width: 100%;*/
/*    height: 200px;*/
/*    object-fit: cover;*/
/*}*/

/* Body */
/* .gallery-card .card-body {
    padding: 15px 18px;
} */

.gallery-card .card-title {
    font-size: 1.05rem;
    font-weight: 700;
    margin-bottom: 8px;
    color: #111827;
}

.gallery-card .card-text {
    font-size: 0.9rem;
    color: #4b5563;
}

/* Footer */
.gallery-card {
    width: 18rem; /* ukuran lebar seragam */
    min-height: 380px; /* tinggi minimum card (atur sesuai kebutuhan) */
    display: flex;
    flex-direction: column;
    background: #fff;
    border-radius: 14px;
    overflow: hidden;
    box-shadow: 0 8px 20px rgba(0, 0, 0, 0.07);
    transition: 0.3s ease;
}

.gallery-card .card-body {
    flex-grow: 1;
    padding: 16px;
}

.gallery-card .card-footer {
    background: #ffffff;
    border-top: 1px solid rgba(0, 0, 0, 0.06);
    padding: 10px 18px;
    font-size: 0.78rem;
    color: #ffffff;
    margin-top: auto; /* kunci: dorong footer ke bawah */
}

/* .container-1 {
    width: 100%;
    padding: 0 3rem 0 3rem;
}
.cards-1 .row-1 {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
    gap: 2rem;
    margin-top: 1rem;
}

.cards-1 .card {
    background: #fff;
    border: 1px solid #c4d8dc;
    border-radius: 0.5rem;
    padding: 0.5rem;
    transition: 0.3s ease;
    box-shadow: 0 2px 6px rgba(0, 0, 0, 0.05);
}

.cards-1 .card:hover {
    border-color: #00a7bd;
}

.cards-1 .card-image {
    width: 100%;
    height: 200px;
    object-fit: cover;
    margin-bottom: 1rem;
    cursor: pointer;
    border-radius: 0.5rem;
}

.cards-1 {
    padding-top: 0rem;
    padding-bottom: 1rem;
    
}

.cards-1 h2 {
    margin-bottom: 1rem;
}

.cards-1 .row-1 {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
    gap: 1rem;
    margin-top: 0rem;
} */

/* .cards-2 .card {
    background: #fff;
    border: 1px solid #c4d8dc;
    border-radius: 0.5rem;
    padding: 1rem;
    transition: 0.3s ease;
    box-shadow: 0 2px 6px rgba(0, 0, 0, 0.05);
}

.cards-2 .card:hover {
    border-color: #00a7bd;
}

.cards-2 .card-image {
    width: 100%;
    height: 200px;
    object-fit: cover;
    margin-bottom: 1rem;
    cursor: pointer;
    border-radius: 0.5rem;
}

.cards-2 {
    padding-top: 1rem;
    padding-bottom: 1rem;
    text-align: center;
}

.cards-2 h2 {
    margin-bottom: 0.5rem;
}

.cards-2 .row {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
    gap: 2rem;
    margin-top: 1rem;
} */
/*end card details*/

/*
.cards-1 .card {
    max-width: 21rem;
    margin-right: auto;
    margin-bottom: 4.5rem;
    margin-left: auto;
    padding: 3.25rem 2rem 2rem 2rem;
    border: 1px solid #c4d8dc;
    border-radius: 0.5rem;
    background: transparent;
}

.cards-1 .card:hover {
    max-width: 21rem;
    margin-right: auto;
    margin-bottom: 4.5rem;
    margin-left: auto;
    padding: 3.25rem 2rem 2rem 2rem;
    border: 2px solid #00a7bd;
    border-radius: 0.5rem;
}

.cards-1 .card-image {
    width: 15rem;
    height: 15rem;
    margin-right: auto;
    margin-bottom: 2rem;
    margin-left: auto;
}

.cards-1 .card-title {
    margin-bottom: 0.875rem;
}

.cards-1 .card-body {
    padding: 0;
}
*/

/*************************/
/*     07. Details 1     */
/*************************/
.basic-1 {
    padding-top: 1.75rem;
    padding-bottom: 0rem;
}

.basic-1 .text-container {
    margin-bottom: 0rem;
}

.basic-1 h2 {
    margin-top: 1rem;
    margin-bottom: 1.375rem;
}

.basic-1 .btn-solid-reg {
    margin-top: 0.625rem;
    margin-bottom: 2.5rem;
}

/*************************/
/*     08. Details 2     */
/*************************/
.basic-2 {
    padding-top: 1.75rem;
    padding-bottom: 0rem;
}

.basic-2 .image-container {
    margin-bottom: 0rem;
}

.basic-2 h2 {
    margin-bottom: 1.375rem;
}

.basic-2 .list-unstyled .fas {
    color: #00bfd8;
    line-height: 1.375rem;
}

.basic-2 .list-unstyled .media-body {
    margin-left: 0.625rem;
}

.basic-2 .btn-solid-reg {
    margin-top: 0.625rem;
}

/**********************************/
/*     09. Details Lightboxes     */
/**********************************/
.lightbox-basic {
    margin: 2.5rem auto;
    padding: 2rem 1.5rem 2rem 1.5rem;
    border-radius: 0.25rem;
    background: #fff;
    text-align: left;
}

.lightbox-basic .container {
    padding-right: 0;
    padding-left: 0;
}

.lightbox-basic .image-container {
    max-width: 33.75rem;
    margin-right: auto;
    margin-bottom: 3rem;
    margin-left: auto;
}

.lightbox-basic h3 {
    margin-bottom: 0.5rem;
}

.lightbox-basic hr {
    width: 2.5rem;
    height: 0.125rem;
    margin-top: 0;
    margin-bottom: 1.25rem;
    margin-left: 0;
    border: 0;
    background-color: #00bfd8;
    text-align: left;
}

.lightbox-basic h4 {
    margin-bottom: 1rem;
}

.lightbox-basic .list-unstyled .fas {
    color: #00bfd8;
    line-height: 1.375rem;
}

.lightbox-basic .list-unstyled .media-body {
    margin-left: 0.625rem;
}

.lightbox-basic .btn-outline-reg,
.lightbox-basic .btn-solid-reg {
    margin-top: 0.75rem;
}

/* Signup Button */
.lightbox-basic .btn-solid-reg.mfp-close {
    position: relative;
    width: auto;
    height: auto;
    color: #fff;
    opacity: 1;
}

.lightbox-basic .btn-solid-reg.mfp-close:hover {
    color: #00bfd8;
}
/* end of signup Button */

/* Back Button */
.lightbox-basic a.mfp-close.as-button {
    position: relative;
    width: auto;
    height: auto;
    margin-left: 0.375rem;
    color: #00bfd8;
    opacity: 1;
}

.lightbox-basic a.mfp-close.as-button:hover {
    color: #fff;
}
/* end of back button */

.lightbox-basic button.mfp-close.x-button {
    position: absolute;
    top: -0.125rem;
    right: -0.125rem;
    width: 2.75rem;
    height: 2.75rem;
    color: #707984;
}

/***********************/
/*     10. Pricing     */
/***********************/
.cards-2 {
    padding-top: 3rem;
    padding-bottom: 2.75rem;
    text-align: center;
}

.cards-2 h2 {
    margin-bottom: 1rem;
}

.cards-2 .card {
    display: block;
    max-width: 19.5rem;
    margin-right: auto;
    margin-bottom: 6rem;
    margin-left: auto;
    border: 1px solid #c4d8dc;
    border-radius: 0.5rem;
    vertical-align: top;
}

.cards-2 .card .card-body {
    padding: 2.5rem 2.75rem 1.875rem 2.5rem;
}

.cards-2 .card .card-title {
    margin-bottom: 0.625rem;
    color: #393939;
    font-weight: 700;
    font-size: 1.75rem;
    line-height: 2.25rem;
    text-align: center;
}

.cards-2 .card .card-subtitle {
    margin-bottom: 1.75rem;
}

.cards-2 .card .cell-divide-hr {
    height: 1px;
    margin-top: 0;
    margin-bottom: 0;
    border: none;
    background-color: #c4d8dc;
}

.cards-2 .card .price {
    padding-top: 0.875rem;
    padding-bottom: 1.5rem;
}

.cards-2 .card .value {
    color: #00bfd8;
    font-weight: 700;
    font-size: 3.5rem;
    line-height: 4rem;
    text-align: center;
}

.cards-2 .card .currency {
    margin-right: 0.375rem;
    color: #00bfd8;
    font-size: 1.5rem;
    vertical-align: 56%;
}

.cards-2 .card .frequency {
    margin-top: 0.25rem;
    font-size: 0.875rem;
    text-align: center;
}

.cards-2 .card .list-unstyled {
    margin-top: 1.875rem;
    margin-bottom: 1.625rem;
    text-align: left;
}

.cards-2 .card .list-unstyled.li-space-lg li {
    margin-bottom: 0.5rem;
}

.cards-2 .card .list-unstyled .fas {
    color: #00bfd8;
    line-height: 1.375rem;
}

.cards-2 .card .list-unstyled .fas.fa-times {
    margin-left: 0.1875rem;
    margin-right: 0.125rem;
    color: #777b7e;
}

.cards-2 .card .list-unstyled .media-body {
    margin-left: 0.625rem;
}

.cards-2 .card .button-wrapper {
    position: absolute;
    right: 0;
    bottom: -1.25rem;
    left: 0;
    text-align: center;
}

.cards-2 .card .btn-solid-reg:hover {
    background-color: #fff;
}

/* Best Value Label */
.cards-2 .card .label {
    position: absolute;
    top: 0;
    right: 0;
    width: 10.625rem;
    height: 10.625rem;
    overflow: hidden;
}

.cards-2 .card .label .best-value {
    position: relative;
    width: 13.75rem;
    padding: 0.3125rem 0 0.3125rem 4.125rem;
    background-color: #00bfd8;
    color: #fff;
    -webkit-transform: rotate(45deg) translate3d(0, 0, 0);
    -ms-transform: rotate(45deg) translate3d(0, 0, 0);
    transform: rotate(45deg) translate3d(0, 0, 0);
}
/* end of best value label */

/***********************/
/*     11. Request     */
/***********************/
.form-1 {
    padding-top: 6.875rem;
    padding-bottom: 6.25rem;
    background-color: #f9fafc;
}

.form-1 h2 {
    margin-bottom: 1.25rem;
}

.form-1 .list-unstyled {
    margin-top: 1.375rem;
}

.form-1 .list-unstyled .fas {
    color: #00bfd8;
    line-height: 1.375rem;
}

.form-1 .list-unstyled .media-body {
    margin-left: 0.625rem;
}

.form-1 .text-container {
    margin-bottom: 3.5rem;
}

/*********************/
/*     12. Video     */
/*********************/
.basic-3 {
    padding-top: 6.875rem;
    padding-bottom: 6.125rem;
}

.basic-3 h2 {
    margin-bottom: 3rem;
    text-align: center;
}

.basic-3 .image-container {
    margin-bottom: 2.25rem;
}

.basic-3 .image-container img {
    border-radius: 0.5rem;
}

.basic-3 .video-wrapper {
    position: relative;
}

/* Video Play Button */
.basic-3 .video-play-button {
    position: absolute;
    z-index: 10;
    top: 50%;
    left: 50%;
    display: block;
    box-sizing: content-box;
    width: 2rem;
    height: 2.75rem;
    padding: 1.125rem 1.25rem 1.125rem 1.75rem;
    border-radius: 50%;
    -webkit-transform: translateX(-50%) translateY(-50%);
    -ms-transform: translateX(-50%) translateY(-50%);
    transform: translateX(-50%) translateY(-50%);
}

.basic-3 .video-play-button:before {
    content: "";
    position: absolute;
    z-index: 0;
    top: 50%;
    left: 50%;
    display: block;
    width: 4.75rem;
    height: 4.75rem;
    border-radius: 50%;
    background: #00bfd8;
    animation: pulse-border 1500ms ease-out infinite;
    -webkit-transform: translateX(-50%) translateY(-50%);
    -ms-transform: translateX(-50%) translateY(-50%);
    transform: translateX(-50%) translateY(-50%);
}

.basic-3 .video-play-button:after {
    content: "";
    position: absolute;
    z-index: 1;
    top: 50%;
    left: 50%;
    display: block;
    width: 4.375rem;
    height: 4.375rem;
    border-radius: 50%;
    background: #00bfd8;
    transition: all 200ms;
    -webkit-transform: translateX(-50%) translateY(-50%);
    -ms-transform: translateX(-50%) translateY(-50%);
    transform: translateX(-50%) translateY(-50%);
}

.basic-3 .video-play-button span {
    position: relative;
    display: block;
    z-index: 3;
    top: 0.375rem;
    left: 0.25rem;
    width: 0;
    height: 0;
    border-left: 1.625rem solid #fff;
    border-top: 1rem solid transparent;
    border-bottom: 1rem solid transparent;
}

@keyframes pulse-border {
    0% {
        transform: translateX(-50%) translateY(-50%) translateZ(0) scale(1);
        opacity: 1;
    }
    100% {
        transform: translateX(-50%) translateY(-50%) translateZ(0) scale(1.5);
        opacity: 0;
    }
}
/* end of video play button */

.basic-3 p {
    text-align: center;
}

/****************************/
/*     13. Testimonials     */
/****************************/
.slider-2 {
    padding-top: 0rem;
    padding-bottom: 7rem;
    text-align: center;
    display: flex;
    flex-direction: column;
    align-items: center;
}

.slider-2 .slider-container {
    position: relative;
    width: 100%;
    max-width: 800px; /* Adjust as needed */
    margin: 0 auto;
}

.slider-2 .swiper-container {
    position: static;
    width: 100%;
    text-align: center;
    padding: 0 2rem; /* Add padding for arrows */
}

.slider-2 .swiper-slide {
    display: flex;
    justify-content: center;
    align-items: center;
}

.slider-2 .card {
    position: relative;
    border: none;
    background-color: transparent;
    width: 100%;
    max-width: 400px; /* Adjust card width */
    margin: 0 auto;
    display: flex;
    flex-direction: column;
    align-items: center;
}

.slider-2 .card-image {
    width: 5rem;
    height: 5rem;
    margin: 0 auto 1rem; /* Center image */
    border-radius: 50%;
}

.slider-2 .card-body {
    padding: 1rem;
    text-align: center;
    width: 100%;
}

.slider-2 .testimonial-text {
    margin: 0 auto 1rem;
    max-width: 300px; /* Control text width */
}

.slider-2 .testimonial-author {
    margin-bottom: 0;
    font-weight: bold;
}

/* Adjust navigation buttons */
.slider-2 .swiper-button-prev {
    left: 0;
}

.slider-2 .swiper-button-next {
    right: 0;
}

/*********************/
/*     14. About     */
/*********************/
.basic-4 {
    padding-top: 7rem;
    padding-bottom: 4rem;
    text-align: center;
}

.basic-4 h2 {
    margin-bottom: 1rem;
    text-align: center;
}

.basic-4 .team-member {
    max-width: 12.5rem;
    margin-right: auto;
    margin-bottom: 3.5rem;
    margin-left: auto;
}

/* Hover Animation */
.basic-4 .image-wrapper {
    overflow: hidden;
    margin-bottom: 1.5rem;
    border-radius: 50%;
}

.basic-4 .image-wrapper img {
    margin: 0;
    transition: all 0.3s;
}

.basic-4 .image-wrapper:hover img {
    -moz-transform: scale(1.15);
    -webkit-transform: scale(1.15);
    transform: scale(1.15);
}
/* end of hover animation */

.basic-4 .team-member .p-large {
    margin-bottom: 0.25rem;
    font-size: 1.125rem;
}

.basic-4 .team-member .job-title {
    margin-bottom: 0.375rem;
}

.basic-4 .fa-stack {
    margin-top: 0.375rem;
    margin-right: 0.125rem;
    margin-left: 0.125rem;
    font-size: 0.875rem;
}

.basic-4 .fa-stack-2x {
    color: #00bfd8;
    transition: all 0.2s ease;
}

.basic-4 .fa-stack-1x {
    color: #fff;
    transition: all 0.2s ease;
}

.basic-4 .fa-stack:hover .fa-stack-2x {
    color: #00a7bd;
}

.basic-4 .fa-stack:hover .fa-stack-1x {
    color: #fff;
}

/***********************/
/*     15. Contact     */
/***********************/
.form-2 {
    padding-top: 7rem;
    padding-bottom: 6.25rem;
    background: url("../images/contact-background.jpg") center center no-repeat;
    background-size: cover;
}

.form-2 h2 {
    margin-bottom: 1rem;
    text-align: center;
}

.form-2 .list-unstyled {
    margin-bottom: 3.75rem;
    font-size: 1rem;
    line-height: 1.5rem;
    text-align: center;
}

.form-2 .list-unstyled .fas,
.form-2 .list-unstyled .fab {
    margin-right: 0.5rem;
    font-size: 0.875rem;
    color: #00bfd8;
}

.form-2 .list-unstyled .fa-phone {
    vertical-align: 3%;
}

.form-2 .map-responsive {
    position: relative;
    overflow: hidden;
    height: 0;
    margin-bottom: 4rem;
    padding-bottom: 70%;
    border-radius: 0.25rem;
}

.form-2 .map-responsive iframe {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    border: none;
}

/**************************/
/*     16. media     */
/**************************/
.media-container {
    margin: 50px 0 0 0;
    /* padding: 60px 30px; */
    max-width: 100%;

    /* === Modern Soft Gradient Background === */
    background: linear-gradient(135deg, #f9fafb 0%, #eceff5 50%, #f4f7fb 100%);
    border-radius: 0px;
    position: relative;
    overflow: hidden;

    /* Soft inner shadow */
    box-shadow: inset 0 0 40px rgba(0, 0, 0, 0.04),
        0 10px 25px rgba(0, 0, 0, 0.08);
}

/* Pattern Circle Glow */
.media-container::before {
    content: "";
    position: absolute;
    top: -50px;
    right: -50px;
    width: 220px;
    height: 220px;
    background: radial-gradient(
        circle,
        rgba(99, 102, 241, 0.25),
        transparent 70%
    );
    filter: blur(25px);
}

.media-container::after {
    content: "";
    position: absolute;
    bottom: -50px;
    left: -50px;
    width: 260px;
    height: 260px;
    background: radial-gradient(
        circle,
        rgba(236, 72, 153, 0.25),
        transparent 70%
    );
    filter: blur(25px);
}

/**********************/
/*     17. Footer     */
/**********************/
.footer {
    background-color: #14b4ff;
    padding-top: 1rem;
    padding-bottom: 0.5rem;
}

.footer .footer-col {
    margin-bottom: 2.25rem;
}

.footer h4 {
    margin-bottom: 1rem;
}

.footer .list-unstyled .fas {
    color: #00bfd8;
    font-size: 0.5rem;
    line-height: 1.375rem;
}

.footer .list-unstyled .media-body {
    margin-left: 0.625rem;
}

.footer .fa-stack {
    margin-bottom: 0.75rem;
    margin-right: 0.5rem;
    font-size: 1.5rem;
}

.footer .fa-stack .fa-stack-1x {
    color: #fff;
    transition: all 0.2s ease;
}

.footer .fa-stack .fa-stack-2x {
    color: #00bfd8;
    transition: all 0.2s ease;
}

.footer .fa-stack:hover .fa-stack-1x {
    color: #fff;
}

.footer .fa-stack:hover .fa-stack-2x {
    color: #00e0fd;
}

/*************************/
/*     17. Copyright     */
/*************************/
.copyright {
    padding-top: 1rem;
    background-color: #06b0ff;
    padding-bottom: 0.375rem;
    text-align: center;
}

.copyright .p-small {
    padding-top: 1.375rem;
    /* border-top: 1px solid #c4d8dc; */
    opacity: 0.7;
}

/**********************************/
/*     18. Back To Top Button     */
/**********************************/
/* a.back-to-top {
    position: fixed;
    z-index: 1;
    right: 0.75rem;
    bottom: 0.75rem;
    display: none;
    width: 2.625rem;
    height: 2.625rem;
    border-radius: 1.875rem;
    background: #00bfd8 url("../images/up-arrow.png") no-repeat center 47%;
    background-size: 1.125rem 1.125rem;
    text-indent: -9999px;
}

a:hover.back-to-top {
    background-color: #00a7bd;
} */

a.back-to-top {
    position: fixed;
    z-index: 9999;
    right: 0.75rem;
    top: 50%;
    transform: translateY(-50%);
    display: none;
    width: 2.625rem;
    height: 2.625rem;
    border-radius: 1.875rem;
    background: #00bfd8 url("../images/up-arrow.png") no-repeat center 47%;
    background-size: 1.125rem 1.125rem;
    text-indent: -9999px;
    cursor: pointer;
}

a:hover.back-to-top {
    background-color: #00a7bd;
}

/***************************/
/*     19. Extra Pages     */
/***************************/
.ex-header {
    padding-top: 8rem;
    padding-bottom: 5rem;
    text-align: center;
}

.ex-basic-1 {
    padding-top: 0rem;
    padding-bottom: 0.875rem;
    background-color: #f7fcfd;
}

.ex-basic-1 .breadcrumbs {
    margin-bottom: 1.125rem;
}

.ex-basic-1 .breadcrumbs .fa {
    margin-right: 0.5rem;
    margin-left: 0.625rem;
}

.ex-basic-2 {
    padding-top: 4.75rem;
    padding-bottom: 4rem;
}

.ex-basic-2 h3 {
    margin-bottom: 1rem;
}

.ex-basic-2 .text-container {
    margin-bottom: 3.625rem;
}

.ex-basic-2 .text-container.last {
    margin-bottom: 0;
}

.ex-basic-2 .list-unstyled .fas {
    color: #00bfd8;
    font-size: 0.5rem;
    line-height: 1.375rem;
}

.ex-basic-2 .list-unstyled .media-body {
    margin-left: 0.625rem;
}

.ex-basic-2 .btn-outline-reg {
    margin-top: 1.75rem;
}

.ex-basic-2 .image-container-large {
    margin-bottom: 4rem;
}

.ex-basic-2 .image-container-large img {
    border-radius: 0.25rem;
}

.ex-basic-2 .image-container-small img {
    border-radius: 0.25rem;
}

.ex-basic-2 .text-container.dark-bg {
    padding: 1.625rem 1.5rem 0.75rem 2rem;
    background-color: #f9fafc;
}

/* Ukuran default (mobile) */
#lottie-team {
    width: 50%;
    max-width: 500px;
    height: auto;
    margin: auto;
    text-align: center;
}

/*****************************/
/*     20. Media Queries     */
/*****************************/
/* Min-width width 768px */
@media (min-width: 768px) {
    /* General Styles */

    .header .image-container {
        width: 50%;
    }

    .p-heading {
        width: 85%;
        margin-right: auto;
        margin-left: auto;
    }

    /* end of general styles */

    /* Header */
    .header .header-content {
        padding-top: 10.5rem;
    }

    .header h1 {
        font-size: 3rem;
        line-height: 3.5rem;
    }
    /* end of header */

    /* Customers */
    .slider-1 {
        padding-top: 3rem;
        padding-bottom: 2.875rem;
    }

    .slider-1 .slider-container {
        padding-right: 3.5rem;
        padding-left: 3.5rem;
    }
    /* end of customers */

    /* Video */
    .basic-3 p {
        width: 85%;
        margin-right: auto;
        margin-left: auto;
    }
    /* end of video */

    /* Testimonials */
    .slider-2 .slider-container {
        width: 50%;
        margin-right: auto;
        margin-left: auto;
    }

    .slider-2 .swiper-container {
        width: 85%;
    }

    .slider-2 .swiper-button-prev {
        left: 1rem;
        width: 1.375rem;
        background-size: 1.375rem 2.125rem;
    }

    .slider-2 .swiper-button-next {
        right: 1rem;
        width: 1.375rem;
        background-size: 1.375rem 2.125rem;
    }
    /* end of testimonials */

    /* About */
    .basic-4 .team-member {
        display: inline-block;
        width: 12.5rem;
        margin-right: 2rem;
        margin-left: 2rem;
        vertical-align: top;
    }
    /* end of about */

    /* Contact */
    .form-2 .list-unstyled li {
        display: inline-block;
        margin-right: 0.5rem;
        margin-left: 0.5rem;
    }

    .form-2 .list-unstyled .address {
        display: block;
    }
    /* end of contact */

    /* Extra Pages */
    .ex-header {
        padding-top: 11rem;
        padding-bottom: 9rem;
    }

    .ex-basic-2 .text-container.dark {
        padding: 2.5rem 3rem 2rem 3rem;
    }

    .ex-basic-2 .text-container.column {
        width: 90%;
        margin-right: auto;
        margin-left: auto;
    }
    /* end of extra pages */
}
/* end of min-width width 768px */

/* Min-width width 992px */
@media (min-width: 992px) {
    /* Navigation */
    #lottie-team {
        width: 300px;
        height: auto;
    }

    .navbar-custom {
        padding: 1.5rem 1.5rem 2.125rem 2rem;
        box-shadow: 0 0.0625rem 0.375rem 0 rgba(0, 0, 0, 0.1);
        background: transparent;
        /* background-color: #ffffff; */
    }

    .navbar-custom .navbar-nav {
        margin-top: 0;
        margin-bottom: 0;
    }

    .navbar-custom .nav-item .nav-link {
        padding: 0.25rem 0.75rem 0.25rem 0.75rem;
        /* margin-bottom: 1rem; */
        color: #1b1b1b;
        /* opacity: 0.8; */
    }

    /* .navbar-custom .nav-item .nav-link:hover,
    .navbar-custom .nav-item .nav-link.active {
        opacity: 1;
        color: #31acff !important;
        border-radius: 4px;
        transition: all 0.3s ease;
    } */

    .navbar-custom .nav-item .nav-link:hover,
    .navbar-custom .nav-item .nav-link.active {
        color: #31acff;
        border-radius: 4px;
        transition: all 0.3s ease;
        position: relative; /* Required for the underline positioning */
    }

    .navbar-custom .nav-item .nav-link:hover::after,
    .navbar-custom .nav-item .nav-link.active::after {
        content: "";
        position: absolute;
        left: 0;
        bottom: -28px; /* Adjust this value to change distance from text */
        width: 100%;
        height: 2px; /* Underline thickness */
        background-color: #31acff; /* Underline color */
        transform: scaleX(1);
        transition: transform 0.3s ease;
    }

    .navbar-custom.top-nav-collapse {
        padding: 0.5rem 1.5rem 0.5rem 2rem;
        box-shadow: 0 0.0625rem 0.375rem 0 rgba(0, 0, 0, 0.1);
        background-color: #fff;
    }

    /* End Style untuk nav-link active */

    .navbar-custom.top-nav-collapse .nav-item .nav-link {
        color: #393939;
        opacity: 1;
    }

    .navbar-custom.top-nav-collapse .nav-item .nav-link:hover,
    .navbar-custom.top-nav-collapse .nav-item .nav-link.active {
        color: #31acff;
    }

    .navbar-custom .dropdown-menu {
        padding-top: 1rem;
        padding-bottom: 1rem;
        border-top: 0.75rem solid rgba(0, 0, 0, 0);
        border-radius: 0.25rem;
    }

    .navbar-custom.top-nav-collapse .dropdown-menu {
        border-top: 0.5rem solid rgba(0, 0, 0, 0);
        box-shadow: 0 0.375rem 0.375rem 0 rgba(0, 0, 0, 0.02);
    }

    .navbar-custom .dropdown-item {
        padding-top: 0.25rem;
        padding-bottom: 0.25rem;
    }

    .navbar-custom .dropdown-items-divide-hr {
        width: 84%;
    }

    .navbar-custom .social-icons {
        display: block;
        margin-left: 0.5rem;
    }

    .navbar-custom .fa-stack {
        margin-bottom: 0.1875rem;
        margin-left: 0.25rem;
        font-size: 0.75rem;
    }

    .navbar-custom .fa-stack-2x {
        color: #00bfd8;
        transition: all 0.2s ease;
    }

    .navbar-custom .fa-stack-1x {
        color: #fff;
        transition: all 0.2s ease;
    }

    .navbar-custom .fa-stack:hover .fa-stack-2x {
        color: #fff;
    }

    .navbar-custom .fa-stack:hover .fa-stack-1x {
        color: #00bfd8;
    }

    .navbar-custom.top-nav-collapse .fa-stack-2x {
        color: #00bfd8;
    }

    .navbar-custom.top-nav-collapse .fa-stack-1x {
        color: #fff;
    }

    .navbar-custom.top-nav-collapse .fa-stack:hover .fa-stack-2x {
        color: #00a7bd;
    }

    .navbar-custom.top-nav-collapse .fa-stack:hover .fa-stack-1x {
        color: #fff;
    }
    /* end of navigation */

    /* General Styles */
    .p-heading {
        width: 65%;
    }
    /* end of general styles */

    /* Header */
    .header {
        background: url("../images/header-background.png") center center
            no-repeat;
        background-size: cover;
    }

    .header .header-content {
        padding-top: 11.5rem;
        text-align: left;
    }

    .header .text-container {
        margin-top: 3rem;
        margin-bottom: 0;
    }
    /* end of header */

    /* end of services */

    /* Details 1 */
    .basic-1 .text-container {
        margin-top: 3.875rem;
        margin-bottom: 0;
    }
    /* end of details 1 */

    /* Details 2 */
    .basic-2 .image-container {
        margin-bottom: 0;
    }

    .basic-2 .text-container {
        margin-top: 3.125rem;
    }
    /* end of details 2 */

    /* Details Lightboxes */
    .lightbox-basic {
        max-width: 62.5rem;
        padding: 2.5rem 2.5rem 2.5rem 2.5rem;
    }

    .lightbox-basic .image-container {
        max-width: 100%;
        margin-right: 2rem;
        margin-bottom: 0;
        margin-left: 0.5rem;
    }

    .lightbox-basic h3 {
        margin-top: 0.5rem;
    }
    /* end of details lightboxes */

    /* Pricing */
    .cards-2 .card {
        display: inline-block;
        width: 17.125rem;
        max-width: 100%;
        margin-right: 1rem;
        margin-left: 1rem;
    }
    /* end of pricing */

    /* Request */
    .form-1 {
        padding-top: 7.5rem;
    }

    .form-1 .text-container {
        margin-top: 1.5rem;
        margin-bottom: 0;
    }
    /* end of request */

    /* Video */
    .basic-3 .image-container {
        max-width: 53.125rem;
        margin-right: auto;
        margin-left: auto;
    }

    .basic-3 p {
        width: 65%;
    }
    /* end of video */

    /* Testimonials */
    .slider-2 {
        padding-bottom: 7.5rem;
    }

    .slider-2 .image-container {
        margin-bottom: 0;
    }

    .slider-2 .slider-container {
        width: 88%;
    }

    .slider-2 .swiper-container {
        width: 82%;
    }
    /* end of testimonials */

    /* Contact */
    .form-2 .map-responsive {
        margin-bottom: 0;
    }
    /* end of contact */

    /* Extra Pages */
    .ex-header {
        background: url("../images/ex-header-background.jpg") center center
            no-repeat;
        background-size: cover;
    }

    .ex-header h1 {
        width: 80%;
        margin-right: auto;
        margin-left: auto;
    }

    .ex-basic-2 {
        padding-bottom: 5rem;
    }

    .ex-basic-2 .text-container.column {
        margin-bottom: 0;
    }
    /* end of extra pages */
}
/* end of min-width width 992px */

/* Min-width width 1200px */
@media (min-width: 1280px) {
    /* Navigation */
    /* .navbar-custom {
        padding: 0.5rem 2rem 0.5rem 2rem;
        background-color: #ffffff;
        opacity: 0;
    } */
    #lottie-team {
        width: 90%;
        height: auto;
    }

    .navbar-custom {
        padding: 0.5rem 2rem 0.5rem 2rem;
        /* background-color: #ffffff; */
        opacity: 90%;
        /* opacity: 1; */
    }

    .navbar-custom.top-nav-collapse {
        padding: 0.5rem 2rem 0.5rem 2rem;
        opacity: 90%;
        background-color: #ffffff;
    }

    /* end of navigation */

    /* General Styles */
    .p-heading {
        width: 55%;
    }
    /* end of general styles */

    /* Header */
    .header .header-content {
        padding-top: 8.5rem;
    }

    .header .text-container {
        margin-top: 1rem;
        margin-left: 1rem;
        margin-right: 2rem;
    }

    .header .image-container {
        margin-left: 2rem;
        margin-right: 1rem;
    }
    /* end of header */

    /* Customers */
    .slider-1 .slider-container {
        margin-right: 3rem;
        margin-left: 3rem;
        padding-right: 2.5rem;
        padding-left: 2.5rem;
    }
    /* end of customers */

    /* Details 1 */
    .basic-1 .text-container {
        margin-top: 0rem;
        margin-right: 4rem;
        margin-left: 1rem;
    }
    /* end of details 1 */

    /* Details 2 */
    .basic-2 .text-container {
        margin-top: 1rem;
        margin-right: 1rem;
        margin-left: 4rem;
    }
    /* end of details 2 */

    /* Pricing */
    .cards-2 .card {
        width: 19.5rem;
        margin-right: 1.625rem;
        margin-left: 1.625rem;
    }
    /* end of pricing */

    /* Request */
    .form-1 .text-container {
        margin-right: 1.5rem;
        margin-left: 6rem;
    }

    .form-1 form {
        margin-right: 6rem;
        margin-left: 1.5rem;
    }
    /* end of request */

    /* Video */
    .basic-3 p {
        width: 55%;
    }
    /* end of video */

    /* Testimonials */
    .slider-2 h2 {
        margin-top: 3.5rem;
    }
    /* end of testimonials */

    /* About */
    .basic-4 .team-member {
        margin-right: 2.25rem;
        margin-left: 2.25rem;
    }
    /* end of about */

    /* Contact */
    .form-2 .map-responsive {
        max-width: 31rem;
        margin-right: auto;
        margin-left: auto;
    }

    .form-2 #contactForm {
        max-width: 31rem;
        margin-right: auto;
        margin-left: auto;
    }
    /* end of contact */

    /* Footer */
    .footer .footer-col {
        width: 100%;
    }

    .footer .footer-col.middle {
        margin-right: auto;
        margin-left: auto;
    }

    .footer .footer-col.last {
        margin-right: 0;
        margin-left: auto;
    }
    /* end of footer */

    /* Extra Pages */
    .ex-header h1 {
        width: 60%;
        margin-right: auto;
        margin-left: auto;
    }

    .ex-basic-2 .form-container {
        margin-left: 1.75rem;
    }

    .ex-basic-2 .image-container-small {
        margin-left: 1.75rem;
    }
    /* end of extra pages */

    .gallery-detail {
        width: 50%;
        margin: 0 auto; /* supaya di tengah */
    }
}
/* end of min-width width 1200px */

.gallery-img {
    width: 100%;
    height: 200px; /* atur tinggi tetap */
    object-fit: cover; /* biar gambar tidak melar, dipotong proporsional */
    border-top-left-radius: 0.25rem;
    border-top-right-radius: 0.25rem;
}

.thumbnail-img {
    max-width: 100%; /* biar tidak melebihi parent */
    height: auto; /* tinggi otomatis supaya proporsional */
    object-fit: cover; 
    margin: 0;/* isi penuh area */

    /* batas ukuran thumbnail */
    width: 500px;
    height: 200px;
}

.icon-small {
    font-size: 12px; /* atur sesuai keinginan */
}
