/* ===========================
   RESET & BASE
=========================== */
:root{
    --primary:#272D78;
    --primary-dark:#1e2160;
    --bg:#faf8f4;
    --bg-card:#f8f9fc;
    --bg-accent:#eef4ff;
    --text:#111;
    --text-muted:#666;
    --text-light:#999;
    --border:#e0e0e0;
    --radius:14px;
    --radius-lg:22px;
    --shadow:0 10px 30px rgba(0,0,0,.07);
    --shadow-hover:0 18px 40px rgba(0,0,0,.12);
    --transition:.3s ease;
}

*{
    margin:0;
    padding:0;
    box-sizing:border-box;
    font-family:'Poppins',sans-serif;
}

html{
    scroll-behavior:smooth;
}

html,
body{
    background:#faf8f4;
    color:#1d1d1d;
    overflow-x:hidden;
}

img{
    max-width:100%;
}

.container{
    width:90%;
    max-width:1300px;
    margin:auto;
}

/* ===========================
   COLOR VARIABLES (via repeated use)
   Primary: #272D78
   Secondary: #f8f9fc
   Accent: #eef4ff
=========================== */

/* ===========================
   HEADER / NAVBAR
=========================== */
header{
    position:fixed;
    top:0;
    left:0;
    width:100%;
    height:80px;
    background:#fff;
    z-index:999;
    box-shadow:0 2px 15px rgba(0,0,0,.08);
    animation:slideDown .8s ease;
}

nav{
    max-width:1300px;
    margin:auto;
    height:80px;
    padding:0 40px;
    display:flex;
    align-items:center;
    justify-content:space-between;
}

.logo{
    display:flex;
    align-items:center;
    text-decoration:none;
}

.logo img{
    width:160px;
    height:auto;
}

.menu{
    display:flex;
    align-items:center;
    gap:40px;
    list-style:none;
}

.menu li{
    white-space:nowrap;
}

.menu a{
    text-decoration:none;
    font-size:17px;
    font-weight:600;
    color:#333;
    transition:.3s;
}

.menu a:hover{
    color:#272D78;
}

.nav-right{
    display:flex;
    align-items:center;
    gap:15px;
}

.menu-toggle{
    display:none;
    width:50px;
    height:50px;
    border:1px solid #ddd;
    border-radius:12px;
    background:#fff;
    font-size:28px;
    color:#272D78;
    cursor:pointer;
}

/* ===========================
   BUTTONS
=========================== */
.btn-primary,
.btn-secondary{
    text-decoration:none;
    padding:16px 32px;
    border-radius:12px;
    font-weight:600;
    transition:all .3s ease;
    display:inline-flex;
    align-items:center;
    justify-content:center;
}

.btn-primary{
    background:#272D78;
    color:#fff;
}

.btn-primary:hover{
    background:#1e2160;
    transform:translateY(-3px);
}

.btn-secondary{
    border:2px solid #ddd;
    color:#272D78;
    background:#fff;
}

.btn-secondary:hover{
    background:#FFEB99;
    border-color:#FFEB99;
    transform:translateY(-3px);
}

/* ===========================
   HERO SECTION
=========================== */
.hero{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:60px;
    align-items:center;
    padding:100px 8% 40px;
}

.hero-content{
    max-width:900px;
    animation:fadeLeft 1s ease;
}

.badge{
    display:inline-block;
    padding:10px 20px;
    background:#272D78;
    color:#ffffff;
    border-radius:40px;
    font-weight:600;
    font-size:14px;
    margin-bottom:20px;
}

.hero h1{
    font-size:60px;
    font-weight:800;
    line-height:1.1;
    margin-bottom:20px;
    color:#111;
    white-space:nowrap;
}

.hero p{
    font-size:1.1rem;
    color:#666;
    margin:25px 0;
    max-width:500px;
    line-height:1.7;
}

.hero-btn{
    display:flex;
    gap:16px;
    margin-top:30px;
    flex-wrap:wrap;
}

.hero-image{
    width:100%;
    animation:fadeRight 1s ease;
}

.hero-image img{
    width:100%;
    height:600px;
    object-fit:cover;
    border-radius:30px;
    display:block;
}

.hero-review{
    display:flex;
    align-items:center;
    gap:20px;
    margin-top:35px;
}

.review-avatars{
    display:flex;
}

.review-avatars img{
    width:42px;
    height:42px;
    border-radius:50%;
    border:3px solid #f8f5ef;
    object-fit:cover;
    margin-left:-10px;
}

.review-avatars img:first-child{
    margin-left:0;
}

.review-info h4{
    font-size:15px;
    font-weight:600;
    margin-bottom:5px;
}

.rating{
    font-size:14px;
    color:#000;
}

.rating span{
    margin-left:10px;
    color:#444;
}

/* ===========================
   ADVANTAGES / KEUNGGULAN
=========================== */
.advantages-section{
    padding:60px 8% 50px;
    background:#fff;
}

.advantages-title{
    text-align:center;
    margin-bottom:45px;
}

.advantages-title h2{
    font-size:36px;
    font-weight:800;
    color:#111;
    margin-bottom:10px;
}

.advantages-title p{
    font-size:16px;
    color:#666;
}

.advantages{
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:40px;
}

.adv-item{
    display:flex;
    align-items:center;
    gap:25px;
    padding:25px;
    background:#f8f9fc;
    border-radius:16px;
    transition:.3s;
}

.adv-item:hover{
    transform:translateY(-5px);
    box-shadow:0 15px 30px rgba(0,0,0,.08);
}

.adv-item img{
    width:100px;
    transition:.3s;
}

.adv-item:hover img{
    transform:translateY(-5px);
}

.adv-text h3{
    font-size:18px;
    font-weight:700;
    letter-spacing:-0.5px;
    line-height:1.3;
    color:#111;
}

/* ===========================
   ABOUT SECTION
=========================== */
.about-section{
    display:grid;
    grid-template-columns:1fr 1fr;
    border-top:1px solid #e0e0e0;
    border-bottom:1px solid #e0e0e0;
    background:#f8f5ef;
}

.about-left{
    padding:60px;
    border-right:1px solid #e0e0e0;
    display:flex;
    flex-direction:column;
    justify-content:center;
}

.about-left h2{
    font-size:30px;
    line-height:1.15;
    font-weight:800;
    margin:20px 0;
    color:#111;
}

.about-left p{
    font-size:16px;
    line-height:1.8;
    color:#555;
    margin-bottom:20px;
}

.about-logo{
    width:280px;
    height:auto;
    margin-top:20px;
}

.about-left a{
    color:#272D78;
    text-decoration:none;
    font-weight:700;
    letter-spacing:1px;
    transition:.3s;
    margin-top:20px;
    display:inline-block;
}

.about-left a:hover{
    color:#1e2160;
}

.about-right{
    padding:60px;
    display:flex;
    flex-direction:column;
    justify-content:center;
    position:relative;
    overflow:hidden;
}

.about-right .bg-pattern{
    position:absolute;
    top:20px;
    right:20px;
    width:250px;
    opacity:.06;
    z-index:0;
}

.about-right .mini-title,
.about-right h2,
.about-right p,
.about-right a{
    position:relative;
    z-index:2;
}

.about-right h2{
    font-size:30px;
    line-height:1.15;
    font-weight:800;
    margin:15px 0;
    color:#111;
}

.about-right p{
    font-size:16px;
    line-height:1.8;
    color:#555;
    max-width:420px;
}

.about-right a{
    color:#272D78;
    text-decoration:none;
    font-weight:700;
    letter-spacing:1px;
    transition:.3s;
    margin-top:20px;
    display:inline-block;
}

.about-right a:hover{
    color:#1e2160;
}

.mini-title{
    font-size:12px;
    font-weight:700;
    letter-spacing:2px;
    color:#272D78;
}

.feature-item{
    display:flex;
    align-items:center;
    gap:20px;
    margin-bottom:30px;
}

.feature-item:last-child{
    margin-bottom:0;
}

.feature-item img{
    width:80px;
    height:auto;
    flex-shrink:0;
}

.feature-item h4{
    font-size:18px;
    font-weight:700;
    margin-bottom:5px;
    line-height:1.3;
    color:#111;
}

.feature-item p{
    font-size:14px;
    color:#555;
    line-height:1.6;
}

/* ===========================
   SITE PLAN
=========================== */
.siteplan{
    padding:80px 8%;
    background:#fff;
}

.section-title{
    text-align:center;
    margin-bottom:50px;
}

.section-title h2{
    font-size:42px;
    font-weight:800;
    letter-spacing:-1px;
    margin-bottom:12px;
    color:#000;
}

.title-line{
    width:100px;
    height:4px;
    background:#272D78;
    margin:auto;
    border-radius:10px;
}

.siteplan-wrapper{
    display:flex;
    flex-direction:column;
    gap:30px;
    align-items:center;
}

.site-info{
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:20px;
    width:100%;
    max-width:1000px;
}

.site-item{
    background:#fff;
    padding:22px;
    border-radius:16px;
    box-shadow:0 8px 25px rgba(0,0,0,.07);
    transition:.3s;
    display:flex;
    align-items:center;
    gap:18px;
}

.site-item:hover{
    transform:translateY(-5px);
    box-shadow:0 15px 35px rgba(0,0,0,.1);
}

.site-item img{
    width:55px;
}

.site-item span{
    display:block;
    font-size:11px;
    font-weight:600;
    color:#888;
    margin-bottom:5px;
    letter-spacing:1px;
}

.site-item h3{
    font-size:32px;
    font-weight:800;
    color:#111;
}

.site-image{
    text-align:center;
}

.site-image img{
    width:100%;
    max-width:700px;
    border-radius:20px;
    background:#fff;
    padding:15px;
    box-shadow:0 12px 35px rgba(0,0,0,.07);
}

.site-buttons{
    margin-top:25px;
    display:flex;
    justify-content:center;
    gap:15px;
    flex-wrap:wrap;
}

.site-btn{
    padding:14px 28px;
    border-radius:50px;
    text-decoration:none;
    font-weight:600;
    font-size:14px;
    transition:.3s;
}

.site-btn.primary{
    background:#272D78;
    color:#fff;
}

.site-btn.secondary{
    background:#ffffff;
    color:#272D78;
    border:2px solid #ddd;
}

.site-btn:hover{
    transform:translateY(-3px);
}

/* ===========================
   UNIT SECTION
=========================== */
.unit-section{
    display:grid;
    grid-template-columns:repeat(2,1fr);
    gap:30px;
    padding:70px 8%;
    background:#f5f7fa;
}

.unit-card{
    background:#fff;
    border-radius:25px;
    padding:30px;
    box-shadow:0 10px 30px rgba(0,0,0,.06);
    transition:.3s;
    overflow:hidden;
}

.unit-card:hover{
    transform:translateY(-8px);
    box-shadow:0 20px 40px rgba(0,0,0,.1);
}

.unit-card h2{
    font-size:30px;
    font-weight:800;
    margin-bottom:15px;
    color:#1a1a1a;
}

.unit-badge{
    display:inline-block;
    background:#eef4ff;
    color:#272D78;
    padding:8px 16px;
    border-radius:30px;
    font-size:13px;
    font-weight:600;
    margin-bottom:20px;
}

.unit-card img{
    width:100%;
    height:auto;
    border-radius:18px;
    margin-bottom:20px;
}

.unit-card p{
    font-size:15px;
    line-height:1.8;
    color:#666;
    margin-bottom:20px;
}

.unit-features{
    display:grid;
    grid-template-columns:repeat(2,1fr);
    gap:12px;
    margin-bottom:25px;
    padding:18px;
    background:#f8f9fc;
    border-radius:15px;
}

.unit-features span{
    font-size:14px;
    font-weight:500;
    color:#444;
}

.unit-buttons{
    display:flex;
    justify-content:center;
    gap:12px;
}

.unit-btn{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    padding:13px 22px;
    border-radius:50px;
    text-decoration:none;
    font-size:13px;
    font-weight:700;
    transition:.3s;
}

.unit-btn:first-child{
    background:#272D78;
    color:#fff;
}

.unit-btn:last-child{
    background:#ffffff;
    color:#272D78;
    border:2px solid #ddd;
}

.unit-btn:hover{
    transform:translateY(-3px);
}

/* ===========================
   VIDEO SECTION
=========================== */
.video-section{
    position:relative;
    padding:80px 8%;
    background:#faf8f5;
    text-align:center;
    overflow:hidden;
}

.bg-text{
    position:absolute;
    font-size:100px;
    font-weight:800;
    color:transparent;
    -webkit-text-stroke:2px #e0e0e0;
    z-index:1;
    line-height:1;
    pointer-events:none;
}

.bg-text.top{
    top:20px;
    left:50%;
    transform:translateX(-50%);
}

.bg-text.bottom{
    right:80px;
    top:120px;
    transform:rotate(90deg);
}

.shape{
    position:absolute;
    background:#78d7ff;
    opacity:.8;
    z-index:1;
    pointer-events:none;
}

.shape-left{
    width:100px;
    height:100px;
    border-radius:25px;
    top:60px;
    left:25%;
}

.shape-right{
    display:none;
}

.video-card{
    position:relative;
    max-width:900px;
    margin:auto;
    border-radius:20px;
    overflow:hidden;
    box-shadow:0 20px 50px rgba(0,0,0,.12);
    z-index:5;
}

.video-card img{
    width:100%;
    display:block;
}

.play-btn{
    position:absolute;
    top:50%;
    left:50%;
    transform:translate(-50%,-50%);
    width:70px;
    height:70px;
    border-radius:50%;
    background:rgba(39,45,120,.9);
    color:white;
    display:flex;
    align-items:center;
    justify-content:center;
    font-size:26px;
    cursor:pointer;
    transition:.3s;
}

.play-btn:hover{
    background:#272D78;
    transform:translate(-50%,-50%) scale(1.1);
}

.partner-title{
    margin-top:35px;
    font-size:12px;
    letter-spacing:2px;
    color:#888;
}

.partners{
    margin-top:20px;
    display:flex;
    justify-content:center;
    gap:35px;
    flex-wrap:wrap;
}

.partners img{
    height:50px;
    opacity:.6;
    transition:.3s;
}

.partners img:hover{
    opacity:1;
}

/* ===========================
   POINT OF INTEREST (LOKASI)
=========================== */
.poi{
    padding:70px 8% 30px;
    background:#fff;
    text-align:center;
}

.poi-title h2{
    font-size:44px;
    font-weight:800;
    margin-bottom:8px;
    color:#111;
}

.poi-title p{
    font-size:18px;
    color:#888;
    margin-bottom:40px;
}

.poi-wrapper{
    display:flex;
    justify-content:center;
    gap:30px;
    flex-wrap:wrap;
}

.poi-card{
    width:340px;
    background:#fff;
    border-radius:20px;
    overflow:hidden;
    box-shadow:0 10px 25px rgba(0,0,0,.07);
    transition:.3s;
}

.poi-card:hover{
    transform:translateY(-8px);
    box-shadow:0 20px 40px rgba(0,0,0,.12);
}

.poi-card img{
    width:100%;
    height:220px;
    object-fit:cover;
}

.poi-content{
    padding:20px;
    text-align:center;
}

.poi-content h4{
    font-size:20px;
    font-weight:700;
    margin-bottom:10px;
    color:#111;
}

.poi-desc{
    font-size:14px;
    line-height:1.6;
    color:#666;
    margin-bottom:15px;
    min-height:50px;
}

.poi-info{
    display:flex;
    justify-content:center;
    gap:12px;
}

.poi-info span{
    font-size:13px;
    font-weight:600;
    color:#272D78;
    background:#eef4ff;
    padding:6px 14px;
    border-radius:20px;
}

.poi-dots{
    margin-top:25px;
}

.poi-dots span{
    width:10px;
    height:10px;
    border-radius:50%;
    background:#ccc;
    display:inline-block;
    margin:0 4px;
}

.poi-dots .active{
    background:#272D78;
}

/* ===========================
   CONTACT SECTION
=========================== */
.contact-section{
    padding:50px 8% 0;
    background:#fff;
}

.contact-box{
    max-width:1200px;
    margin:0 auto;
    background:#fff;
    border-radius:25px;
    padding:50px;
    text-align:center;
    box-shadow:0 10px 30px rgba(0,0,0,.05);
}

.contact-subtitle{
    display:block;
    color:#272D78;
    font-weight:600;
    letter-spacing:1px;
    margin-bottom:12px;
}

.contact-box h2{
    font-size:38px;
    font-weight:800;
    line-height:1.2;
    color:#111;
    margin-bottom:18px;
}

.contact-box p{
    max-width:600px;
    margin:auto;
    color:#666;
    line-height:1.8;
}

.contact-stats{
    display:flex;
    justify-content:center;
    gap:25px;
    margin:25px 0;
}

.contact-stats div{
    background:#f8f9fc;
    padding:10px 22px;
    border-radius:30px;
    font-weight:600;
    font-size:14px;
}

.contact-buttons{
    display:flex;
    justify-content:center;
    gap:15px;
    margin-top:30px;
    flex-wrap:wrap;
}

.contact-btn{
    text-decoration:none;
    padding:15px 30px;
    border-radius:12px;
    font-weight:600;
    transition:.3s;
}

.contact-btn.secondary{
    border:1px solid #ddd;
    color:#111;
}

.contact-btn.secondary:hover{
    background:#111;
    color:#fff;
}

.map-container{
    width:100%;
    height:400px;
    overflow:hidden;
    border-radius:20px;
    margin-top:30px;
}

.map-container iframe{
    width:100%;
    height:100%;
    border:none;
}

/* ===========================
   FOOTER
=========================== */
.site-footer{
    background:#1a1a2e;
    color:#ccc;
    padding:70px 0 0;
}

.footer-wrapper{
    display:grid;
    grid-template-columns:1.5fr 1fr 1fr 1.2fr;
    gap:40px;
    padding-bottom:50px;
    border-bottom:1px solid rgba(255,255,255,.1);
}

.footer-logo{
    width:150px;
    height:auto;
    margin-bottom:18px;
    filter:brightness(0) invert(1);
}

.footer-about p{
    font-size:14px;
    line-height:1.8;
    color:#999;
    margin-bottom:18px;
}

.footer-social{
    display:flex;
    gap:10px;
}

.footer-social a{
    width:40px;
    height:40px;
    border-radius:50%;
    background:rgba(255,255,255,.08);
    color:#fff;
    display:flex;
    align-items:center;
    justify-content:center;
    font-size:16px;
    text-decoration:none;
    transition:.3s;
}

.footer-social a:hover{
    background:#272D78;
    transform:translateY(-3px);
}

.footer-col h4{
    font-size:17px;
    font-weight:700;
    color:#fff;
    margin-bottom:22px;
    position:relative;
    padding-bottom:10px;
}

.footer-col h4::after{
    content:'';
    position:absolute;
    left:0;
    bottom:0;
    width:35px;
    height:3px;
    background:#272D78;
    border-radius:10px;
}

.footer-links{
    list-style:none;
}

.footer-links li{
    margin-bottom:10px;
}

.footer-links a{
    color:#999;
    text-decoration:none;
    font-size:14px;
    transition:.3s;
}

.footer-links a:hover{
    color:#fff;
    padding-left:5px;
}

.footer-contact{
    list-style:none;
}

.footer-contact li{
    display:flex;
    align-items:flex-start;
    gap:10px;
    margin-bottom:15px;
    font-size:14px;
    color:#999;
}

.footer-contact li i{
    color:#272D78;
    font-size:15px;
    margin-top:3px;
    min-width:16px;
}

.footer-contact a{
    color:#999;
    text-decoration:none;
    transition:.3s;
}

.footer-contact a:hover{
    color:#fff;
}

.footer-bottom{
    display:flex;
    justify-content:space-between;
    align-items:center;
    padding:22px 0;
    font-size:13px;
    color:#666;
}

/* ===========================
   FLOATING WHATSAPP
=========================== */
.chat-floating{
    position:fixed;
    right:25px;
    bottom:25px;
    background:#25D366;
    color:#fff;
    padding:14px 22px;
    border-radius:50px;
    cursor:pointer;
    font-weight:600;
    font-size:14px;
    box-shadow:0 8px 25px rgba(37,211,102,.3);
    z-index:9999;
    transition:.3s;
    display:flex;
    align-items:center;
    gap:8px;
}

.chat-floating:hover{
    transform:translateY(-3px);
    box-shadow:0 12px 30px rgba(37,211,102,.4);
}

.chat-floating i{
    font-size:20px;
}

/* ===========================
   POPUP
=========================== */
.popup-overlay{
    position:fixed;
    inset:0;
    background:rgba(0,0,0,.45);
    display:flex;
    justify-content:center;
    align-items:center;
    opacity:0;
    visibility:hidden;
    transition:.3s;
    z-index:99999;
}

.popup-overlay.active{
    opacity:1;
    visibility:visible;
}

.popup-box{
    width:420px;
    max-width:95%;
    background:#fff;
    border-radius:20px;
    padding:35px;
    position:relative;
    animation:popupAnim .35s;
}

@keyframes popupAnim{
    from{transform:translateY(30px);opacity:0}
    to{transform:none;opacity:1}
}

.popup-logo{
    width:60px;
    margin-bottom:12px;
}

.popup-box h2{
    color:#272D78;
    margin-bottom:5px;
}

.popup-box h3{
    font-size:26px;
    margin-bottom:12px;
    color:#0F172A;
}

.popup-box p{
    color:#666;
    line-height:1.7;
    margin-bottom:18px;
    font-size:14px;
}

.popup-list{
    list-style:none;
    margin-bottom:15px;
}

.popup-list li{
    padding:6px 0;
    font-size:14px;
    color:#444;
}

.popup-box input{
    width:100%;
    padding:14px;
    border:1px solid #eee;
    background:#f9f9f9;
    border-radius:12px;
    margin-bottom:12px;
    font-size:14px;
    font-family:'Poppins',sans-serif;
}

.popup-box input:focus{
    outline:none;
    border-color:#272D78;
}

.popup-btn{
    width:100%;
    padding:14px;
    background:#25D366;
    color:#fff;
    border:none;
    border-radius:12px;
    font-size:15px;
    font-weight:600;
    cursor:pointer;
    transition:.3s;
}

.popup-btn:hover{
    background:#20bd5a;
}

.close-popup{
    position:absolute;
    right:16px;
    top:16px;
    border:none;
    background:none;
    font-size:26px;
    cursor:pointer;
    color:#999;
}

.close-popup:hover{
    color:#333;
}

.popup-box small{
    display:block;
    margin-top:12px;
    color:#999;
    text-align:center;
    font-size:12px;
}

/* ===========================
   ANIMATIONS
=========================== */
@keyframes slideDown{
    from{opacity:0;transform:translateY(-50px)}
    to{opacity:1;transform:translateY(0)}
}

@keyframes fadeLeft{
    from{opacity:0;transform:translateX(-50px)}
    to{opacity:1;transform:translateX(0)}
}

@keyframes fadeRight{
    from{opacity:0;transform:translateX(50px)}
    to{opacity:1;transform:translateX(0)}
}

.reveal{
    opacity:0;
    transform:translateY(50px);
    transition:all .7s ease;
}

.reveal.active{
    opacity:1;
    transform:translateY(0);
}

/* ===========================
   PAGE HERO (Halaman Detail)
=========================== */
.page-hero{
    background:linear-gradient(135deg,#1a1a2e 0%,#272D78 100%) !important;
    color:#fff;
    text-align:center;
    padding:110px 20px 40px;
}

.page-hero .mini-title{
    font-size:12px;
    letter-spacing:3px;
    color:rgba(255,255,255,.5);
    margin-bottom:10px;
    display:block;
}

.page-hero h1{
    font-size:40px;
    font-weight:800;
    margin-bottom:10px;
}

.page-hero p{
    font-size:15px;
    color:rgba(255,255,255,.7);
    max-width:500px;
    margin:0 auto;
}

/* ===========================
   ABOUT DETAIL PAGE
=========================== */
.about-detail{
    padding:70px 0;
    background:#fff;
}

.about-grid{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:50px;
    align-items:center;
    margin-bottom:70px;
}

.section-label{
    display:inline-block;
    font-size:12px;
    font-weight:700;
    letter-spacing:2px;
    color:#272D78;
    margin-bottom:12px;
    padding:6px 14px;
    background:#eef4ff;
    border-radius:20px;
}

.about-content h2{
    font-size:34px;
    font-weight:800;
    line-height:1.2;
    margin-bottom:18px;
    color:#111;
}

.about-content p{
    font-size:15px;
    line-height:1.8;
    color:#666;
    margin-bottom:12px;
}

.about-image img{
    width:100%;
    border-radius:20px;
    box-shadow:0 15px 40px rgba(0,0,0,.1);
}

.value-section{
    text-align:center;
    margin-bottom:70px;
}

.value-section h2{
    font-size:34px;
    font-weight:800;
    margin-bottom:40px;
    color:#111;
}

.value-grid{
    display:grid;
    grid-template-columns:repeat(4,1fr);
    gap:25px;
}

.value-card{
    background:#f8f9fc;
    padding:30px 22px;
    border-radius:18px;
    text-align:center;
    transition:.3s;
}

.value-card:hover{
    transform:translateY(-8px);
    box-shadow:0 15px 35px rgba(0,0,0,.08);
}

.value-card img{
    width:70px;
    margin-bottom:18px;
}

.value-card h3{
    font-size:17px;
    font-weight:700;
    margin-bottom:10px;
    color:#111;
}

.value-card p{
    font-size:13px;
    line-height:1.7;
    color:#666;
}

.stats-section{
    display:grid;
    grid-template-columns:repeat(4,1fr);
    gap:22px;
    margin-bottom:70px;
}

.stat-card{
    background:#272D78;
    color:#fff;
    padding:30px 18px;
    border-radius:18px;
    text-align:center;
}

.stat-number{
    display:block;
    font-size:38px;
    font-weight:800;
    margin-bottom:6px;
}

.stat-label{
    font-size:13px;
    color:rgba(255,255,255,.75);
}

.cta-section{
    background:linear-gradient(135deg,#f8f9fc 0%,#eef4ff 100%);
    padding:50px;
    border-radius:22px;
    text-align:center;
}

.cta-section h2{
    font-size:30px;
    font-weight:800;
    margin-bottom:12px;
    color:#111;
}

.cta-section p{
    font-size:15px;
    color:#666;
    margin-bottom:25px;
    max-width:450px;
    margin-left:auto;
    margin-right:auto;
}

.cta-buttons{
    display:flex;
    justify-content:center;
    gap:12px;
    flex-wrap:wrap;
}

/* ===========================
   UNIT DETAIL PAGE
=========================== */
.unit-detail-section{
    padding:70px 0;
    background:#fff;
}

#unit.unit-detail-section{
    background:#f5f7fa;
}

#unit.unit-detail-section .section-title{
    margin-bottom:40px;
}

#unit .unit-detail-card img{
    height:260px;
    width:100%;
    object-fit:cover;
}

.unit-overview{
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:22px;
    margin-bottom:50px;
}

.unit-overview-item{
    display:flex;
    align-items:center;
    gap:18px;
    background:#f8f9fc;
    padding:22px;
    border-radius:14px;
}

.unit-overview-item img{
    width:55px;
}

.unit-overview-item span{
    display:block;
    font-size:11px;
    font-weight:600;
    color:#999;
    letter-spacing:1px;
    margin-bottom:4px;
}

.unit-overview-item h3{
    font-size:26px;
    font-weight:800;
    color:#111;
}

.unit-detail-grid{
    display:grid;
    grid-template-columns:repeat(2,1fr);
    gap:28px;
    margin-bottom:50px;
}

.unit-detail-card{
    background:#fff;
    border-radius:22px;
    overflow:hidden;
    box-shadow:0 10px 28px rgba(0,0,0,.07);
    position:relative;
    transition:.3s;
}

.unit-detail-card:hover{
    transform:translateY(-8px);
    box-shadow:0 18px 40px rgba(0,0,0,.12);
}

.unit-detail-badge{
    position:absolute;
    top:18px;
    left:18px;
    background:#272D78;
    color:#fff;
    padding:7px 16px;
    border-radius:25px;
    font-size:12px;
    font-weight:700;
    z-index:2;
}

.unit-detail-badge.subsidi{
    background:#e67e22;
}

.unit-detail-card img{
    width:100%;
    height:260px;
    object-fit:cover;
}

.unit-detail-content{
    padding:28px;
}

.unit-detail-content h2{
    font-size:26px;
    font-weight:800;
    margin-bottom:12px;
    color:#111;
}

.unit-specs{
    display:flex;
    gap:12px;
    margin-bottom:18px;
}

.unit-specs span{
    font-size:13px;
    font-weight:600;
    color:#272D78;
    background:#eef4ff;
    padding:7px 13px;
    border-radius:18px;
}

.unit-specs span i{
    margin-right:5px;
}

.unit-detail-content p{
    font-size:14px;
    line-height:1.8;
    color:#666;
    margin-bottom:18px;
}

.unit-highlights{
    list-style:none;
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:8px;
    margin-bottom:22px;
}

.unit-highlights li{
    font-size:13px;
    font-weight:500;
    color:#555;
}

.unit-highlights li i{
    color:#272D78;
    margin-right:6px;
}

.unit-detail-btns{
    display:flex;
    gap:10px;
    flex-wrap:wrap;
}

/* ===========================
   LOKASI DETAIL PAGE
=========================== */
.lokasi-detail-section{
    padding:70px 0;
    background:#fff;
}

.lokasi-address{
    display:flex;
    justify-content:space-between;
    align-items:center;
    background:#f8f9fc;
    padding:28px;
    border-radius:14px;
    margin-bottom:35px;
}

.lokasi-address-box{
    display:flex;
    align-items:center;
    gap:14px;
}

.lokasi-address-box i{
    font-size:26px;
    color:#272D78;
}

.lokasi-address-box h3{
    font-size:17px;
    font-weight:700;
    margin-bottom:4px;
}

.lokasi-address-box p{
    font-size:14px;
    color:#666;
}

.lokasi-map-full{
    width:100%;
    height:420px;
    border-radius:18px;
    overflow:hidden;
    margin-bottom:50px;
    box-shadow:0 10px 28px rgba(0,0,0,.08);
}

.lokasi-map-full iframe{
    width:100%;
    height:100%;
    border:none;
}

.poi-section{
    margin-bottom:50px;
}

.poi-section h2{
    font-size:34px;
    font-weight:800;
    text-align:center;
    margin-bottom:8px;
    color:#111;
}

.poi-subtitle-text{
    text-align:center;
    color:#666;
    margin-bottom:35px;
    font-size:15px;
}

.poi-detail-grid{
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:22px;
}

.poi-detail-card{
    border-radius:18px;
    overflow:hidden;
    box-shadow:0 10px 22px rgba(0,0,0,.07);
    transition:.3s;
}

.poi-detail-card:hover{
    transform:translateY(-8px);
    box-shadow:0 18px 35px rgba(0,0,0,.12);
}

.poi-detail-card img{
    width:100%;
    height:180px;
    object-fit:cover;
}

.poi-detail-content{
    padding:22px;
}

.poi-detail-content h3{
    font-size:18px;
    font-weight:700;
    margin-bottom:8px;
    color:#111;
}

.poi-detail-content p{
    font-size:13px;
    line-height:1.7;
    color:#666;
    margin-bottom:12px;
}

.poi-detail-info{
    display:flex;
    gap:10px;
}

.poi-detail-info span{
    font-size:12px;
    font-weight:600;
    color:#272D78;
    background:#eef4ff;
    padding:5px 11px;
    border-radius:18px;
}

.poi-detail-info span i{
    margin-right:4px;
}

/* ===========================
   CONTACT DETAIL PAGE
=========================== */
.contact-detail-section{
    padding:70px 0;
    background:#fff;
}

.contact-detail-grid{
    display:grid;
    grid-template-columns:1fr 1.2fr;
    gap:35px;
    margin-bottom:50px;
}

.contact-info-cards{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:18px;
}

.contact-info-card{
    background:#f8f9fc;
    padding:28px;
    border-radius:14px;
    text-align:center;
    transition:.3s;
}

.contact-info-card:hover{
    transform:translateY(-5px);
    box-shadow:0 12px 28px rgba(0,0,0,.07);
}

.contact-icon{
    width:55px;
    height:55px;
    background:#272D78;
    color:#fff;
    border-radius:50%;
    display:flex;
    align-items:center;
    justify-content:center;
    font-size:22px;
    margin:0 auto 12px;
}

.contact-info-card h3{
    font-size:15px;
    font-weight:700;
    margin-bottom:6px;
    color:#111;
}

.contact-info-card p{
    font-size:12px;
    color:#999;
    margin-bottom:8px;
}

.contact-link{
    font-size:13px;
    font-weight:600;
    color:#272D78;
    text-decoration:none;
}

.contact-form-box{
    background:#f8f9fc;
    padding:35px;
    border-radius:18px;
}

.contact-form-box h2{
    font-size:26px;
    font-weight:800;
    margin-bottom:8px;
    color:#111;
}

.contact-form-box > p{
    font-size:13px;
    color:#666;
    margin-bottom:22px;
}

.form-group{
    margin-bottom:15px;
}

.form-group label{
    display:block;
    font-size:13px;
    font-weight:600;
    color:#333;
    margin-bottom:5px;
}

.form-group input,
.form-group select,
.form-group textarea{
    width:100%;
    padding:12px 14px;
    border:1px solid #e0e0e0;
    border-radius:10px;
    font-size:13px;
    font-family:'Poppins',sans-serif;
    background:#fff;
    transition:.3s;
}

.form-group input:focus,
.form-group select:focus,
.form-group textarea:focus{
    outline:none;
    border-color:#272D78;
    box-shadow:0 0 0 3px rgba(39,45,120,.08);
}

.form-submit{
    width:100%;
    padding:14px;
    font-size:15px;
    border:none;
    cursor:pointer;
    margin-top:5px;
}

.lokasi-mini h2{
    font-size:26px;
    font-weight:800;
    text-align:center;
    margin-bottom:22px;
    color:#111;
}

.lokasi-mini-map{
    width:100%;
    height:320px;
    border-radius:18px;
    overflow:hidden;
    box-shadow:0 10px 28px rgba(0,0,0,.08);
}

.lokasi-mini-map iframe{
    width:100%;
    height:100%;
    border:none;
}

/* ===========================
    GALLERY PAGE
=========================== */
.gallery-section{
    padding:70px 0;
    background:#fff;
}

.filter-bar,
.gallery-filter{
    display:flex;
    justify-content:center;
    gap:12px;
    margin-bottom:40px;
    flex-wrap:wrap;
}

.filter-btn{
    padding:10px 24px;
    border:2px solid #e0e0e0;
    border-radius:30px;
    background:#fff;
    font-size:14px;
    font-weight:600;
    color:#666;
    cursor:pointer;
    transition:.3s;
    font-family:'Poppins',sans-serif;
}

.filter-btn:hover,
.filter-btn.active{
    background:var(--primary);
    color:#fff;
    border-color:var(--primary);
}

.gallery-grid{
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:20px;
}

.gallery-item{
    position:relative;
    border-radius:18px;
    overflow:hidden;
    cursor:pointer;
    transition:.3s;
}

.gallery-item:hover{
    transform:translateY(-5px);
    box-shadow:0 15px 35px rgba(0,0,0,.12);
}

.gallery-item img{
    width:100%;
    height:250px;
    object-fit:cover;
    display:block;
    transition:.3s;
}

.gallery-item:hover img{
    transform:scale(1.05);
}

.gallery-overlay{
    position:absolute;
    inset:0;
    background:rgba(39,45,120,.75);
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    opacity:0;
    transition:.3s;
    padding:20px;
    text-align:center;
}

.gallery-item:hover .gallery-overlay{
    opacity:1;
}

.gallery-overlay h4{
    color:#fff;
    font-size:16px;
    font-weight:700;
    margin-bottom:6px;
}

.gallery-overlay p{
    color:rgba(255,255,255,.8);
    font-size:13px;
}

.gallery-overlay i{
    color:#fff;
    font-size:32px;
}

/* ===========================
    TESTIMONI PAGE
=========================== */
.testimoni-section{
    padding:70px 0;
    background:#fff;
}

.testimoni-stats{
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:20px;
    margin-bottom:50px;
}

.testimoni-stat{
    background:#f8f9fc;
    padding:28px 18px;
    border-radius:16px;
    text-align:center;
    transition:.3s;
}

.testimoni-stat:hover{
    transform:translateY(-5px);
    box-shadow:0 12px 28px rgba(0,0,0,.07);
}

.testimoni-stat .testimoni-stat-num{
    font-size:36px;
    font-weight:800;
    color:var(--primary);
    display:block;
    margin-bottom:4px;
}

.testimoni-stat .testimoni-stat-label{
    font-size:13px;
    color:#888;
}

.testimoni-grid{
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:22px;
}

.testimoni-card{
    background:#f8f9fc;
    padding:30px;
    border-radius:18px;
    transition:.3s;
}

.testimoni-card:hover{
    transform:translateY(-5px);
    box-shadow:0 15px 35px rgba(0,0,0,.08);
}

.testimoni-stars{
    color:#f5a623;
    font-size:16px;
    margin-bottom:14px;
}

.testimoni-card p{
    font-size:14px;
    line-height:1.8;
    color:#666;
    margin-bottom:20px;
    font-style:italic;
}

.testimoni-author{
    display:flex;
    align-items:center;
    gap:12px;
}

.testimoni-author img{
    width:48px;
    height:48px;
    border-radius:50%;
    object-fit:cover;
}

.testimoni-author h4{
    font-size:15px;
    font-weight:700;
    color:#111;
}

.testimoni-author span{
    font-size:12px;
    color:#999;
}

/* ===========================
    KPR SIMULATION PAGE
=========================== */
.kpr-section{
    padding:70px 0;
    background:#fff;
}

.kpr-grid{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:30px;
    margin-bottom:50px;
}

.kpr-form-box{
    background:#f8f9fc;
    padding:35px;
    border-radius:18px;
}

.kpr-form-box h2{
    font-size:26px;
    font-weight:800;
    margin-bottom:8px;
    color:#111;
}

.kpr-form-box > p{
    font-size:13px;
    color:#666;
    margin-bottom:22px;
}

.kpr-form .form-group{
    margin-bottom:14px;
}

.kpr-calc-btn{
    margin-top:8px;
}

.kpr-result-box{
    background:#f8f9fc;
    padding:35px;
    border-radius:18px;
}

.kpr-result-box h3{
    font-size:22px;
    font-weight:800;
    margin-bottom:20px;
    color:#111;
}

.kpr-result-empty{
    text-align:center;
    padding:50px 20px;
    color:#ccc;
}

.kpr-result-empty i{
    font-size:48px;
    margin-bottom:12px;
    display:block;
}

.kpr-result-empty p{
    font-size:14px;
    color:#999;
}

.kpr-result-list{
    margin-bottom:18px;
}

.kpr-result-row{
    display:flex;
    justify-content:space-between;
    align-items:center;
    padding:12px 0;
    border-bottom:1px solid #e8e8e8;
}

.kpr-result-row:last-child{
    border-bottom:none;
}

.kpr-result-row span{
    font-size:14px;
    color:#666;
}

.kpr-result-row strong{
    font-size:15px;
    color:#111;
}

.kpr-result-row.highlight{
    background:var(--bg-accent);
    margin:8px 0;
    padding:14px 12px;
    border-radius:10px;
    border-bottom:none;
}

.kpr-result-row.highlight strong{
    color:#272D78;
    font-size:18px;
}

.kpr-result-box small{
    display:block;
    font-size:12px;
    color:#999;
    margin-bottom:14px;
}

.kpr-wa-btn{
    width:100%;
    margin-top:4px;
}

.kpr-info{
    margin-bottom:50px;
}

.kpr-info h3{
    font-size:26px;
    font-weight:800;
    margin-bottom:22px;
    text-align:center;
    color:#111;
}

.kpr-info-grid{
    display:grid;
    grid-template-columns:repeat(2,1fr);
    gap:18px;
}

.kpr-info-item{
    display:flex;
    align-items:center;
    gap:18px;
    background:#f8f9fc;
    padding:22px;
    border-radius:14px;
    transition:.3s;
}

.kpr-info-item:hover{
    transform:translateY(-3px);
    box-shadow:0 10px 25px rgba(0,0,0,.06);
}

.kpr-info-item i{
    font-size:28px;
    color:#272D78;
    min-width:35px;
    text-align:center;
}

.kpr-info-item h4{
    font-size:15px;
    font-weight:700;
    margin-bottom:3px;
    color:#111;
}

.kpr-info-item p{
    font-size:13px;
    color:#666;
}

/* ===========================
    BLOG PAGE
=========================== */
.blog-section{
    padding:70px 0;
    background:#fff;
}

.blog-grid{
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:22px;
}

.blog-card{
    background:#fff;
    border-radius:18px;
    overflow:hidden;
    box-shadow:0 10px 25px rgba(0,0,0,.06);
    transition:.3s;
}

.blog-card:hover{
    transform:translateY(-8px);
    box-shadow:0 18px 40px rgba(0,0,0,.12);
}

.blog-card img{
    width:100%;
    height:200px;
    object-fit:cover;
}

.blog-card-content{
    padding:22px;
}

.blog-date{
    font-size:12px;
    color:#999;
    margin-bottom:8px;
    display:block;
}

.blog-date i{
    margin-right:4px;
}

.blog-card-content h3{
    font-size:17px;
    font-weight:700;
    margin-bottom:10px;
    color:#111;
    line-height:1.4;
}

.blog-card-content p{
    font-size:13px;
    line-height:1.7;
    color:#666;
    margin-bottom:14px;
}

.blog-readmore{
    font-size:13px;
    font-weight:600;
    color:#272D78;
    text-decoration:none;
    transition:.3s;
}

.blog-readmore:hover{
    color:#1e2160;
}

/* ===========================
    FAQ PAGE
=========================== */
.faq-section{
    padding:70px 0;
    background:#fff;
}

.faq-list{
    max-width:800px;
    margin:0 auto 50px;
}

.faq-item{
    background:#f8f9fc;
    border-radius:12px;
    margin-bottom:12px;
    overflow:hidden;
    transition:.3s;
}

.faq-item.active{
    box-shadow:0 8px 25px rgba(0,0,0,.06);
}

.faq-question{
    width:100%;
    display:flex;
    justify-content:space-between;
    align-items:center;
    padding:18px 22px;
    border:none;
    background:none;
    cursor:pointer;
    font-size:15px;
    font-weight:600;
    color:#111;
    font-family:'Poppins',sans-serif;
    text-align:left;
    transition:.3s;
}

.faq-question:hover{
    color:#272D78;
}

.faq-question i{
    font-size:14px;
    color:#999;
    transition:.3s;
}

.faq-item.active .faq-question i{
    transform:rotate(180deg);
    color:#272D78;
}

.faq-answer{
    max-height:0;
    overflow:hidden;
    transition:max-height .3s ease;
}

.faq-answer p{
    padding:0 22px 18px;
    font-size:14px;
    line-height:1.8;
    color:#666;
}

/* ===========================
    404 ERROR PAGE
=========================== */
.error-page{
    padding:120px 20px 80px;
    background:#fff;
    text-align:center;
}

.error-code{
    display:block;
    font-size:120px;
    font-weight:800;
    color:#eef4ff;
    line-height:1;
    margin-bottom:20px;
}

.error-content h1{
    font-size:32px;
    font-weight:800;
    margin-bottom:12px;
    color:#111;
}

.error-content p{
    font-size:16px;
    color:#666;
    margin-bottom:30px;
    max-width:450px;
    margin-left:auto;
    margin-right:auto;
}

.error-buttons{
    display:flex;
    justify-content:center;
    gap:12px;
    flex-wrap:wrap;
}

/* ===========================
    PRIVACY / POLICY PAGE
=========================== */
.policy-section{
    padding:70px 0;
    background:#fff;
}

.policy-content{
    max-width:800px;
    margin:0 auto;
}

.policy-content h2{
    font-size:20px;
    font-weight:700;
    margin:30px 0 12px;
    color:#111;
}

.policy-content h2:first-child{
    margin-top:0;
}

.policy-content p{
    font-size:14px;
    line-height:1.8;
    color:#666;
    margin-bottom:10px;
}

.policy-content ul{
    padding-left:22px;
    margin-bottom:12px;
}

.policy-content li{
    font-size:14px;
    line-height:1.8;
    color:#666;
    margin-bottom:4px;
}

/* ===========================
    SCROLL TO TOP BUTTON
=========================== */
.scroll-top{
    position:fixed;
    right:25px;
    bottom:25px;
    width:48px;
    height:48px;
    border-radius:50%;
    background:#272D78;
    color:#fff;
    border:none;
    font-size:18px;
    cursor:pointer;
    display:flex;
    align-items:center;
    justify-content:center;
    opacity:0;
    visibility:hidden;
    transition:.3s;
    z-index:998;
    box-shadow:0 8px 20px rgba(39,45,120,.25);
}

.scroll-top.show{
    opacity:1;
    visibility:visible;
}

.scroll-top:hover{
    background:#1e2160;
    transform:translateY(-3px);
}

/* ===========================
    RESPONSIVE - TABLET (1024px)
=========================== */
@media (max-width:1024px){

    .hero{
        grid-template-columns:1fr;
        gap:35px;
        text-align:center;
    }

    .hero-content{
        max-width:100%;
    }

    .hero h1{
        font-size:48px;
    }

    .hero p{
        max-width:100%;
        margin:20px auto;
    }

    .hero-btn{
        justify-content:center;
    }

    .hero-review{
        justify-content:center;
    }

    .hero-image img{
        height:auto;
        max-height:500px;
    }

    .advantages{
        grid-template-columns:1fr;
    }

    .about-section{
        grid-template-columns:1fr;
    }

    .about-left{
        border-right:none;
        border-bottom:1px solid #e0e0e0;
    }

    .site-info{
        grid-template-columns:1fr;
        max-width:400px;
    }

    .unit-section{
        grid-template-columns:1fr;
    }

    .poi-card{
        width:45%;
    }

    .about-grid,
    .contact-detail-grid{
        grid-template-columns:1fr;
    }

    .value-grid{
        grid-template-columns:repeat(2,1fr);
    }

    .stats-section{
        grid-template-columns:repeat(2,1fr);
    }

    .unit-detail-grid{
        grid-template-columns:1fr;
    }

    .poi-detail-grid{
        grid-template-columns:repeat(2,1fr);
    }

    .footer-wrapper{
        grid-template-columns:1fr 1fr;
    }

    .gallery-grid{
        grid-template-columns:repeat(2,1fr);
    }

    .testimoni-stats{
        grid-template-columns:repeat(2,1fr);
    }
        grid-template-columns:repeat(2,1fr);
    }

    .kpr-grid{
        grid-template-columns:1fr;
    }

    .kpr-info-grid{
        grid-template-columns:1fr;
    }

    .blog-grid{
        grid-template-columns:repeat(2,1fr);
    }
}

/* ===========================
   RESPONSIVE - MOBILE (768px)
=========================== */
@media (max-width:768px){

    /* NAVBAR */
    header{
        height:auto;
    }

    nav{
        padding:12px 15px;
        height:auto;
    }

    .logo img{
        width:120px;
    }

    .menu-toggle{
        display:block;
    }

    .menu{
        display:none;
        position:fixed;
        top:0;
        right:0;
        width:280px;
        height:100vh;
        background:#fff;
        flex-direction:column;
        padding:90px 30px 30px;
        gap:22px;
        box-shadow:-10px 0 30px rgba(0,0,0,.15);
        z-index:1001;
        transition:transform .3s ease;
        transform:translateX(100%);
        overflow-y:auto;
    }

    .menu.active{
        display:flex;
        transform:translateX(0);
    }

    .menu a{
        font-size:16px;
        padding:6px 0;
        border-bottom:1px solid var(--border);
    }

    /* HERO */
    .hero{
        padding:100px 20px 30px;
        gap:25px;
    }

    .hero h1{
        font-size:32px;
    }

    .hero p{
        font-size:15px;
    }

    .hero-btn{
        flex-direction:column;
    }

    .btn-primary,
    .btn-secondary{
        width:100%;
    }

    .hero-review{
        flex-direction:column;
        text-align:center;
    }

    /* ADVANTAGES */
    .advantages-section{
        padding:40px 20px;
    }

    .advantages-title h2{
        font-size:26px;
    }

    .adv-item{
        flex-direction:column;
        text-align:center;
    }

    /* ABOUT */
    .about-left,
    .about-right{
        padding:30px 20px;
    }

    .about-logo{
        width:180px;
    }

    .feature-item{
        flex-direction:column;
        text-align:center;
    }

    /* SITEPLAN */
    .siteplan{
        padding:50px 20px;
    }

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

    .site-item{
        flex-direction:column;
        text-align:center;
    }

    .site-item h3{
        font-size:24px;
    }

    /* UNIT */
    .unit-card{
        padding:22px;
    }

    .unit-card h2{
        font-size:24px;
    }

    .unit-features{
        grid-template-columns:1fr;
    }

    .unit-buttons{
        flex-direction:column;
    }

    .unit-btn{
        width:100%;
    }

    /* VIDEO */
    .video-section{
        padding:50px 20px;
    }

    .bg-text{
        display:none;
    }

    /* POI */
    .poi{
        padding:50px 20px 20px;
    }

    .poi-title h2{
        font-size:30px;
    }

    .poi-card{
        width:100%;
    }

    .poi-card img{
        height:200px;
    }

    /* CONTACT */
    .contact-box{
        padding:30px 20px;
    }

    .contact-box h2{
        font-size:26px;
    }

    .contact-buttons{
        flex-direction:column;
    }

    .contact-btn{
        width:100%;
        text-align:center;
    }

    .map-container{
        height:280px;
    }

    /* PAGE HERO */
    .page-hero{
        padding:100px 20px 30px;
    }

    .page-hero h1{
        font-size:28px;
    }

    .page-hero p{
        font-size:14px;
    }

    /* ABOUT DETAIL */
    .about-content h2,
    .value-section h2,
    .cta-section h2,
    .poi-section h2{
        font-size:24px;
    }

    .value-grid,
    .stats-section{
        grid-template-columns:1fr;
    }

    .cta-section{
        padding:35px 20px;
    }

    .cta-buttons{
        flex-direction:column;
    }

    .cta-buttons a{
        width:100%;
    }

    /* UNIT DETAIL */
    .unit-overview{
        grid-template-columns:1fr;
    }

    .unit-detail-content h2{
        font-size:22px;
    }

    .unit-highlights{
        grid-template-columns:1fr;
    }

    .unit-detail-btns{
        flex-direction:column;
    }

    .unit-detail-btns a{
        width:100%;
    }

    /* LOKASI DETAIL */
    .lokasi-address{
        flex-direction:column;
        gap:18px;
        text-align:center;
    }

    .lokasi-map-full{
        height:280px;
    }

    .poi-detail-grid{
        grid-template-columns:1fr;
    }

    /* CONTACT DETAIL */
    .contact-info-cards{
        grid-template-columns:1fr;
    }

    .contact-form-box{
        padding:22px;
    }

    /* CHAT FLOATING */
    .chat-floating{
        right:12px;
        bottom:12px;
        padding:12px 16px;
        font-size:13px;
    }

    /* POPUP */
    .popup-overlay{
        padding:15px;
        align-items:flex-end;
    }

    .popup-box{
        width:100%;
        max-width:100%;
        border-radius:18px 18px 0 0;
        padding:22px;
        animation:slideUp .35s ease;
    }

    @keyframes slideUp{
        from{transform:translateY(100%);opacity:0}
        to{transform:translateY(0);opacity:1}
    }

    /* FOOTER */
    .footer-wrapper{
        grid-template-columns:1fr;
        gap:30px;
        text-align:center;
    }

    .footer-col h4::after{
        left:50%;
        transform:translateX(-50%);
    }

    .footer-social{
        justify-content:center;
    }

    .footer-contact li{
        justify-content:center;
        text-align:center;
    }

    .footer-bottom{
        flex-direction:column;
        gap:6px;
        text-align:center;
    }

    /* GALLERY */
    .gallery-grid{
        grid-template-columns:1fr;
    }

    .gallery-item img{
        height:200px;
    }

    /* TESTIMONI */
    .testimoni-stats{
        grid-template-columns:1fr 1fr;
    }

    .testimoni-grid{
        grid-template-columns:1fr;
    }

    /* KPR */
    .kpr-form-box,
    .kpr-result-box{
        padding:22px;
    }

    .kpr-info-item{
        flex-direction:column;
        text-align:center;
    }

    /* BLOG */
    .blog-grid{
        grid-template-columns:1fr;
    }

    /* FAQ */
    .faq-question{
        font-size:14px;
        padding:15px 18px;
    }

    /* 404 */
    .error-code{
        font-size:80px;
    }

    .error-content h1{
        font-size:24px;
    }

    .error-buttons{
        flex-direction:column;
    }

    .error-buttons a{
        width:100%;
    }

    /* SCROLL TOP */
    .scroll-top{
        right:12px;
        bottom:12px;
        width:42px;
        height:42px;
        font-size:16px;
    }
}
