/* ======================================================
   LM Picture V2
   STYLE.CSS
   Bagian 1A (Final Stable)
   ====================================================== */

/* ================= RESET ================= */

*,
*::before,
*::after{
    margin:0;
    padding:0;
    box-sizing:border-box;
}

html{
    scroll-behavior:smooth;
}

body{
    overflow-x:hidden;
}

/* ================= ROOT ================= */

:root{

    --primary:#c8a96a;
    --primary-dark:#a88645;

    --secondary:#1b1b1b;
    --dark:#111111;

    --light:#ffffff;
    --gray:#666666;
    --light-gray:#f5f5f5;

    --border:#e5e5e5;

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

    --transition:.35s ease;

    --radius:12px;

    --container:1200px;

    --header-height:80px;

}

/* ================= GLOBAL ================= */

body{

    font-family:"Poppins",sans-serif;

    background:var(--light);

    color:var(--secondary);

    line-height:1.7;

    font-size:16px;

}

img{

    display:block;

    max-width:100%;

    height:auto;

}

a{

    color:inherit;

    text-decoration:none;

    transition:var(--transition);

}

ul{

    list-style:none;

}

button,
input,
textarea{

    font:inherit;

    border:none;

    outline:none;

}

button{

    cursor:pointer;

    background:none;

}

section{

    padding:100px 0;

}

.container{

    width:min(90%,var(--container));

    margin:auto;

}
/* ================= TYPOGRAPHY ================= */

h1,
h2,
h3,
h4,
h5,
h6{

    color:var(--secondary);

    font-weight:700;

    line-height:1.2;

}

h1{

    font-size:clamp(2.5rem,5vw,4.5rem);

}

h2{

    font-size:clamp(2rem,4vw,3rem);

    margin-bottom:20px;

}

h3{

    font-size:1.4rem;

}

p{

    color:var(--gray);

    margin-bottom:18px;

}

span{

    display:inline-block;

}

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

.section-title{

    text-align:center;

    max-width:700px;

    margin:0 auto 60px;

}

.section-title span{

    color:var(--primary);

    font-size:.95rem;

    font-weight:600;

    letter-spacing:2px;

    text-transform:uppercase;

    margin-bottom:12px;

}

.section-title h2{

    margin-bottom:15px;

}

.section-title p{

    margin-bottom:0;

}

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

.btn{

    display:inline-flex;

    align-items:center;

    justify-content:center;

    gap:10px;

    padding:14px 32px;

    border-radius:50px;

    font-weight:600;

    transition:var(--transition);

}

.btn-primary{

    background:var(--primary);

    color:var(--light);

}

.btn-primary:hover{

    background:var(--primary-dark);

    transform:translateY(-3px);

}

.btn-secondary{

    background:transparent;

    color:var(--light);

    border:2px solid var(--light);

}

.btn-secondary:hover{

    background:var(--light);

    color:var(--secondary);

    transform:translateY(-3px);

}

/* ================= UTILITY ================= */

.text-center{

    text-align:center;

}

.shadow{

    box-shadow:var(--shadow);

}

.radius{

    border-radius:var(--radius);

}
/* ================= SCROLLBAR ================= */

::-webkit-scrollbar{

    width:10px;

}

::-webkit-scrollbar-track{

    background:var(--light-gray);

}

::-webkit-scrollbar-thumb{

    background:var(--primary);

    border-radius:50px;

}

::-webkit-scrollbar-thumb:hover{

    background:var(--primary-dark);

}

/* ================= TEXT SELECTION ================= */

::selection{

    background:var(--primary);

    color:var(--light);

}

/* ================= FADE UP ANIMATION ================= */

.fade-up{

    opacity:0;

    transform:translateY(50px);

    transition:
        opacity .8s ease,
        transform .8s ease;

    will-change:opacity,transform;

}

.fade-up.show{

    opacity:1;

    transform:translateY(0);

}

/* ================= KEYFRAMES ================= */

@keyframes float{

    0%{

        transform:translateY(0);

    }

    50%{

        transform:translateY(-12px);

    }

    100%{

        transform:translateY(0);

    }

}

@keyframes pulse{

    0%{

        transform:scale(1);

    }

    50%{

        transform:scale(1.05);

    }

    100%{

        transform:scale(1);

    }

}

@keyframes spin{

    100%{

        transform:rotate(360deg);

    }

}

/* ================= ANIMATION UTILITY ================= */

.float{

    animation:float 4s ease-in-out infinite;

}

.pulse{

    animation:pulse 2s ease-in-out infinite;

}

.spin{

    animation:spin 1s linear infinite;

}
/* ======================================================
   HEADER
   Bagian 2A (Final Stable)
   ====================================================== */

.header{

    position:fixed;

    top:0;

    left:0;

    width:100%;

    height:var(--header-height);

    display:flex;

    align-items:center;

    z-index:1000;

    background:transparent;

    transition:var(--transition);

}

.header.scrolled{

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

    backdrop-filter:blur(12px);

    -webkit-backdrop-filter:blur(12px);

    box-shadow:0 8px 30px rgba(0,0,0,.08);

}

.header .container{

    display:flex;

    align-items:center;

    justify-content:space-between;

}

/* ================= LOGO ================= */

.logo{

    display:flex;

    align-items:center;

    flex-shrink:0;

}

.logo img{

    height:58px;

    width:auto;

    transition:var(--transition);

}

.header.scrolled .logo img{

    height:52px;

}
/* ================= NAVBAR ================= */

.navbar{

    display:flex;

    align-items:center;

}

.nav-links{

    display:flex;

    align-items:center;

    gap:35px;

}

.nav-links li{

    position:relative;

}

.nav-links a{

    position:relative;

    color:var(--light);

    font-size:1rem;

    font-weight:500;

    transition:var(--transition);

}

.header.scrolled .nav-links a{

    color:var(--secondary);

}

.nav-links a:hover,

.nav-links a.active{

    color:var(--primary);

}

/* Underline Animation */

.nav-links a::after{

    content:"";

    position:absolute;

    left:0;

    bottom:-8px;

    width:0;

    height:2px;

    background:var(--primary);

    transition:var(--transition);

}

.nav-links a:hover::after,

.nav-links a.active::after{

    width:100%;

}

/* ================= MENU TOGGLE ================= */

.menu-toggle{

    display:none;

    align-items:center;

    justify-content:center;

    width:48px;

    height:48px;

    color:var(--light);

    font-size:1.5rem;

    transition:var(--transition);

}

.header.scrolled .menu-toggle{

    color:var(--secondary);

}

.menu-toggle:hover{

    color:var(--primary);

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

.hero{

    position:relative;

    min-height:100vh;

    display:flex;

    align-items:center;

    justify-content:center;

    overflow:hidden;

    background:url("images/hero.jpg") center/cover no-repeat;

    color:var(--light);

}

.hero-overlay{

    position:absolute;

    inset:0;

    background:linear-gradient(
        rgba(0,0,0,.65),
        rgba(0,0,0,.55)
    );

    z-index:1;

}

.hero .container{

    position:relative;

    z-index:2;

}

.hero-watermark{

    position:absolute;

    inset:0;

    display:flex;

    align-items:center;

    justify-content:center;

    pointer-events:none;

    z-index:1;

}

.hero-watermark img{

    width:min(420px,70vw);

    opacity:.06;

    animation:float 6s ease-in-out infinite;

}

.hero-content{

    max-width:720px;

}

.hero-subtitle{

    color:var(--primary);

    font-size:1rem;

    font-weight:600;

    letter-spacing:3px;

    text-transform:uppercase;

    margin-bottom:20px;

}

.hero h1{

    color:var(--light);

    margin-bottom:25px;

}

.hero p{

    color:rgba(255,255,255,.85);

    max-width:620px;

    margin-bottom:40px;

}

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

.hero-buttons{

    display:flex;

    align-items:center;

    gap:20px;

    flex-wrap:wrap;

}

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

.hero-social{

    display:flex;

    align-items:center;

    gap:18px;

    margin-top:45px;

}

.hero-social a{

    display:flex;

    align-items:center;

    justify-content:center;

    width:46px;

    height:46px;

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

    border-radius:50%;

    color:var(--light);

    font-size:1.1
  /* ======================================================
   ABOUT
   ====================================================== */

.about{

    background:var(--light);

}

.about-container{

    display:grid;

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

    gap:60px;

    align-items:center;

}

.about-image{

    overflow:hidden;

    border-radius:var(--radius);

    box-shadow:var(--shadow);

}

.about-image img{

    width:100%;

    transition:.6s ease;

}

.about-image:hover img{

    transform:scale(1.05);

}

.about-content h3{

    margin-bottom:20px;

}

.about-stats{

    display:grid;

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

    gap:20px;

    margin-top:35px;

}

.stat-box{

    padding:25px;

    text-align:center;

    background:var(--light);

    border:1px solid var(--border);

    border-radius:var(--radius);

    box-shadow:var(--shadow);

    transition:var(--transition);

}

.stat-box:hover{

    transform:translateY(-8px);

}

.stat-box h3{

    color:var(--primary);

    font-size:2rem;

    margin-bottom:8px;

}

.stat-box span{

    color:var(--gray);

    font-weight:500;

}

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

.gallery{

    background:var(--light-gray);

}

.gallery-grid{

    display:grid;

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

    gap:25px;

}

.gallery-item{

    position:relative;

    overflow:hidden;

    border-radius:var(--radius);

    cursor:pointer;

    box-shadow:var(--shadow);

}

.gallery-item img{

    width:100%;

    aspect-ratio:4/5;

    object-fit:cover;

    transition:.6s ease;

}

.gallery-overlay{

    position:absolute;

    inset:0;

    display:flex;

    align-items:center;

    justify-content:center;

    background:rgba(0,0,0,.55);

    opacity:0;

    transition:var(--transition);

}

.gallery-overlay h3{

    color:var(--light);

    transform:translateY(20px);

    transition:var(--transition);

}

.gallery-item:hover img{

    transform:scale(1.08);

}

.gallery-item:hover .gallery-overlay{

    opacity:1;

}

.gallery-item:hover .gallery-overlay h3{

    transform:translateY(0);

}
/* ======================================================
   SERVICES
   ====================================================== */

.services{

    background:var(--light);

}

.services-grid{

    display:grid;

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

    gap:30px;

}

.service-card{

    padding:40px 30px;

    background:var(--light);

    border:1px solid var(--border);

    border-radius:var(--radius);

    text-align:center;

    box-shadow:var(--shadow);

    transition:var(--transition);

}

.service-card:hover{

    transform:translateY(-10px);

}

.service-card i{

    font-size:2.5rem;

    color:var(--primary);

    margin-bottom:20px;

}

.service-card h3{

    margin-bottom:15px;

}

.service-card p{

    margin-bottom:0;

}

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

.testimonials{

    background:var(--light-gray);

}

.testimonial-grid{

    display:grid;

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

    gap:30px;

}

.testimonial-card{

    background:var(--light);

    padding:35px 30px;

    border-radius:var(--radius);

    box-shadow:var(--shadow);

    transition:var(--transition);

}

.testimonial-card:hover{

    transform:translateY(-10px);

}

.stars{

    display:flex;

    gap:6px;

    margin-bottom:20px;

}

.stars i{

    color:#f4b400;

    font-size:1rem;

}

.testimonial-card p{

    font-style:italic;

    margin-bottom:25px;

}

.testimonial-card h4{

    margin-bottom:5px;

}

.testimonial-card span{

    color:var(--gray);

    font-size:.95rem;

}
/* ======================================================
   CONTACT
   ====================================================== */

.contact{

    background:var(--light);

}

.contact-container{

    display:grid;

    grid-template-columns:1fr 1.2fr;

    gap:50px;

    align-items:start;

}

.contact-info{

    display:flex;

    flex-direction:column;

    gap:25px;

}

.contact-item{

    display:flex;

    align-items:flex-start;

    gap:18px;

    padding:25px;

    background:var(--light);

    border-radius:var(--radius);

    border:1px solid var(--border);

    box-shadow:var(--shadow);

}

.contact-item i{

    color:var(--primary);

    font-size:1.6rem;

    margin-top:3px;

}

.contact-item h3{

    margin-bottom:6px;

}

.contact-item p{

    margin-bottom:0;

}

.contact-form{

    display:flex;

    flex-direction:column;

    gap:20px;

}

.contact-form input,

.contact-form textarea{

    width:100%;

    padding:15px 18px;

    border:1px solid var(--border);

    border-radius:var(--radius);

    background:var(--light);

    transition:var(--transition);

}

.contact-form textarea{

    resize:vertical;

    min-height:170px;

}

.contact-form input:focus,

.contact-form textarea:focus{

    border-color:var(--primary);

}

/* ======================================================
   FOOTER
   ====================================================== */

footer{

    background:var(--dark);

    color:var(--light);

    padding:70px 0 25px;

}

.footer-content{

    display:flex;

    justify-content:space-between;

    align-items:center;

    gap:30px;

    margin-bottom:35px;

}

.footer-logo img{

    height:60px;

    margin-bottom:15px;

}

.footer-logo p{

    color:rgba(255,255,255,.7);

    margin-bottom:0;

}

.footer-social{

    display:flex;

    gap:15px;

}

.footer-social a{

    display:flex;

    align-items:center;

    justify-content:center;

    width:46px;

    height:46px;

    border-radius:50%;

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

    color:var(--light);

    transition:var(--transition);

}

.footer-social a:hover{

    background:var(--primary);

    transform:translateY(-4px);

}

.footer-bottom{

    text-align:center;

    border-top:1px solid rgba(255,255,255,.08);

    padding-top:25px;

}

.footer-bottom p{

    color:rgba(255,255,255,.65);

    margin-bottom:0;

}

/* ======================================================
   FLOATING WHATSAPP
   ====================================================== */

.whatsapp-float{

    position:fixed;

    right:25px;

    bottom:25px;

    width:60px;

    height:60px;

    display:flex;

    align-items:center;

    justify-content:center;

    border-radius:50%;

    background:#25D366;

    color:#fff;

    font-size:1.7rem;

    box-shadow:0 8px 25px rgba(0,0,0,.2);

    z-index:999;

    transition:var(--transition);

}

.whatsapp-float:hover{

    transform:translateY(-5px);

}

/* ======================================================
   BACK TO TOP
   ====================================================== */

.back-to-top{

    position:fixed;

    right:25px;

    bottom:100px;

    width:50px;

    height:50px;

    border-radius:50%;

    background:var(--primary);

    color:#fff;

    display:flex;

    align-items:center;

    justify-content:center;

    opacity:0;

    visibility:hidden;

    transition:var(--transition);

    z-index:998;

}

.back-to-top.show{

    opacity:1;

    visibility:visible;

}

.back-to-top:hover{

    background:var(--primary-dark);

}

/* ======================================================
   PRELOADER
   ====================================================== */

#preloader{

    position:fixed;

    inset:0;

    background:#fff;

    display:flex;

    justify-content:center;

    align-items:center;

    z-index:9999;

    transition:.5s;

}

.loader{

    display:flex;

    gap:8px;

}

.loader span{

    width:14px;

    height:14px;

    border-radius:50%;

    background:var(--primary);

    animation:pulse .8s infinite alternate;

}

.loader span:nth-child(2){

    animation-delay:.2s;

}

.loader span:nth-child(3){

    animation-delay:.4s;

}

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

@media (max-width:992px){

    .about-container,
    .contact-container{

        grid-template-columns:1fr;

    }

    .gallery-grid,
    .services-grid,
    .testimonial-grid{

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

    }

}

@media (max-width:768px){

    section{

        padding:80px 0;

    }

    .menu-toggle{

        display:flex;

    }

    .navbar{

        position:fixed;

        top:var(--header-height);

        left:-100%;

        width:100%;

        background:#fff;

        transition:var(--transition);

        box-shadow:var(--shadow);

    }

    .navbar.active{

        left:0;

    }

    .nav-links{

        flex-direction:column;

        padding:30px 0;

        gap:25px;

    }

    .nav-links a{

        color:var(--secondary);

    }

    .hero{

        text-align:center;

    }

    .hero-buttons{

        justify-content:center;

    }

    .hero-social{

        justify-content:center;

    }

    .footer-content{

        flex-direction:column;

        text-align:center;

    }

}

@media (max-width:576px){

    .gallery-grid,
    .services-grid,
    .testimonial-grid,
    .about-stats{

        grid-template-columns:1fr;

    }

    .hero-buttons{

        flex-direction:column;

    }

    .btn{

        width:100%;

    }

    .whatsapp-float{

        width:55px;

        height:55px;

        right:20px;

        bottom:20px;

    }

    .back-to-top{

        right:20px;

        bottom:90px;

    }

}
