:root{--primary:#2c3e50;--secondary:#e74c3c;--accent:#3498db;--light:#ecf0f1;--dark:#2c3e50;--text:#333;--gray:#95a5a6;--white:#ffffff;--shadow:0 4px 6px rgba(0, 0, 0, 0.1);--transition:all 0.3s ease;--radius:8px;--max-width:1200px}*,*::before,*::after{margin:0;padding:0;box-sizing:border-box}html{scroll-behavior:smooth}body{font-family:'Segoe UI',system-ui,-apple-system,sans-serif;line-height:1.6;color:var(--text);background-color:#f9f9f9;overflow-x:hidden}h1,h2,h3,h4,h5,h6{font-weight:700;line-height:1.2;margin-bottom:1rem;color:var(--primary)}p{margin-bottom:1rem}a{text-decoration:none;color:inherit;transition:var(--transition)}ul{list-style:none}img{max-width:100%;height:auto;display:block}.container{width:90%;max-width:var(--max-width);margin:0 auto;padding:0 1rem}.btn{display:inline-block;padding:.8rem 1.5rem;background-color:var(--secondary);color:var(--white);border:none;border-radius:var(--radius);cursor:pointer;font-weight:600;transition:var(--transition);text-align:center}.btn:hover{background-color:#c0392b;transform:translateY(-2px)}.btn-outline{background-color:#fff0;border:2px solid var(--secondary);color:var(--secondary)}.btn-outline:hover{background-color:var(--secondary);color:var(--white)}.section{padding:5rem 0}.section-title{text-align:center;margin-bottom:3rem;font-size:2.2rem;color:var(--primary);position:relative}.section-title::after{content:'';display:block;width:80px;height:4px;background-color:var(--secondary);margin:1rem auto}.text-center{text-align:center}header{background-color:var(--white);box-shadow:var(--shadow);position:sticky;top:0;z-index:1000}.header-container{display:flex;justify-content:space-between;align-items:center;padding:1rem 0}.logo{font-size:1.8rem;font-weight:700;color:var(--primary);display:flex;align-items:center}.logo span{color:var(--secondary)}.logo img{height:40px;margin-right:10px}nav ul{display:flex}nav ul li{margin-left:1.5rem}nav ul li a{font-weight:500;position:relative}nav ul li a::after{content:'';position:absolute;bottom:-5px;left:0;width:0;height:2px;background-color:var(--secondary);transition:var(--transition)}nav ul li a:hover::after{width:100%}.nav-btns{display:flex;align-items:center}.nav-btns .btn{margin-left:1rem}.mobile-menu-btn{display:none;background:none;border:none;font-size:1.5rem;cursor:pointer;color:var(--primary)}.hero{background:linear-gradient(rgb(44 62 80 / .8),rgb(44 62 80 / .8)),url(https://images.unsplash.com/photo-1560518883-ce09059eeffa?w=1200&auto=format&fit=crop&q=60);background-size:cover;background-position:center;color:var(--white);padding:7rem 0;text-align:center}.hero-content{max-width:800px;margin:0 auto}.hero h1{font-size:3rem;margin-bottom:1.5rem;color:var(--white)}.hero p{font-size:1.2rem;margin-bottom:2rem}.search-box{background-color:var(--white);border-radius:var(--radius);padding:1.5rem;margin-top:2rem;display:flex;box-shadow:var(--shadow)}.search-box input{flex:1;padding:.8rem;border:1px solid #ddd;border-radius:var(--radius);margin-right:.5rem;font-size:1rem}.search-box button{padding:.8rem 1.5rem}.properties{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:2rem}.property-card{background-color:var(--white);border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow);transition:var(--transition)}.property-card:hover{transform:translateY(-5px)}.property-img{height:200px;overflow:hidden;position:relative}.property-img img{width:100%;height:100%;object-fit:cover;transition:var(--transition)}.property-card:hover .property-img img{transform:scale(1.05)}.property-tag{position:absolute;top:1rem;left:1rem;background-color:var(--secondary);color:var(--white);padding:.3rem .8rem;border-radius:var(--radius);font-size:.8rem;font-weight:600}.property-info{padding:1.5rem}.property-price{color:var(--secondary);font-weight:700;font-size:1.5rem;margin-bottom:.5rem}.property-address{color:var(--gray);margin-bottom:1rem;font-size:.9rem}.property-features{display:flex;justify-content:space-between;border-top:1px solid #eee;padding-top:1rem;margin-top:1rem;font-size:.9rem}.property-features span{display:flex;align-items:center}.property-features i{margin-right:.5rem;color:var(--accent)}.property-card{display:flex;flex-direction:column;min-height:420px}.property-info{flex:1;display:flex;flex-direction:column;justify-content:space-between}.services{background-color:var(--light)}.services-container{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:2rem}.service-card{background-color:var(--white);padding:2rem;border-radius:var(--radius);text-align:center;box-shadow:var(--shadow);transition:var(--transition)}.service-card:hover{transform:translateY(-5px)}.service-icon{font-size:2.5rem;color:var(--secondary);margin-bottom:1.5rem}.testimonials-container{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;gap:2rem;padding:1rem 0;scrollbar-width:none}.testimonials-container::-webkit-scrollbar{display:none}.testimonial{flex:0 0 calc(33.333% - 1.5rem);scroll-snap-align:start;background-color:var(--white);padding:2rem;border-radius:var(--radius);box-shadow:var(--shadow)}.testimonial-text{font-style:italic;margin-bottom:1.5rem;position:relative}.testimonial-text::before{content:""";
            font-size: 4rem;
            color: var(--light);
            position: absolute;
            top: -1.5rem;
            left: -1rem;
            line-height: 1;
            z-index: 0;
        }

        .testimonial-author {
            display: flex;
            align-items: center;
        }

        .author-img {
            width: 50px;
            height: 50px;
            border-radius: 50%;
            overflow: hidden;
            margin-right: 1rem;
        }

        .author-img img {
            width: 100%;
            height: 100%;
            object-fit: cover;
        }

        .author-info h4 {
            margin-bottom: 0.2rem;
            font-size: 1rem;
        }

        .author-info p {
            margin-bottom: 0;
            font-size: 0.8rem;
            color: var(--gray);
        }

        /* CTA Section */
        .cta {
            background: linear-gradient(rgba(52, 152, 219, 0.9), rgba(52, 152, 219, 0.9)), url(https://images.unsplash.com/photo-1560518883-ce09059eeffa?w=1200&auto=format&fit=crop&q=60);
            background-size: cover;
            background-position: center;
            color: var(--white);
            text-align: center;
            padding: 5rem 0;
        }

        .cta h2 {
            color: var(--white);
            margin-bottom: 1.5rem;
        }

        .cta p {
            max-width: 600px;
            margin: 0 auto 2rem;
            font-size: 1.1rem;
        }

        /* Footer */
        footer {
            background-color: var(--dark);
            color: var(--white);
            padding: 4rem 0 2rem;
        }

        .footer-container {
            display: grid;
            grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
            gap: 2.5rem;
        }

        .footer-col h3 {
            font-size: 1.2rem;
            margin-bottom: 1.5rem;
            position: relative;
            color: var(--white);
        }

        .footer-col h3::after {
            content: '';
            position: absolute;
            left: 0;
            bottom: -0.5rem;
            width: 40px;
            height: 2px;
            background-color: var(--secondary);
        }

        .footer-col ul li {
            margin-bottom: 0.8rem;
        }

        .footer-col ul li a:hover {
            color: var(--secondary);
            padding-left: 0.5rem;
        }

        .footer-col p {
            margin-bottom: 1rem;
        }

        .social-links {
            display: flex;
            gap: 1rem;
            margin-top: 1.5rem;
        }

        .social-links a {
            display: flex;
            align-items: center;
            justify-content: center;
            width: 40px;
            height: 40px;
            background-color: rgba(255, 255, 255, 0.1);
            border-radius: 50%;
            transition: var(--transition);
        }

        .social-links a:hover {
            background-color: var(--secondary);
            transform: translateY(-3px);
        }

        .copyright {
            text-align: center;
            margin-top: 3rem;
            padding-top: 2rem;
            border-top: 1px solid rgba(255, 255, 255, 0.1);
            font-size: 0.9rem;
            color: var(--gray);
        }

        /* Breadcrumb */
        .breadcrumb {
            padding: 1rem 0;
            background-color: var(--light);
            margin-bottom: 2rem;
        }

        .breadcrumb ol {
            display: flex;
            flex-wrap: wrap;
            list-style: none;
        }

        .breadcrumb li {
            display: flex;
            align-items: center;
        }

        .breadcrumb li:not(:last-child)::after {
            content: '/';
            margin: 0 0.5rem;
            color: var(--gray);
        }

        .breadcrumb a {
            color: var(--accent);
        }

        .breadcrumb a:hover {
            text-decoration: underline;
        }

        /* Responsive Design */
        @media (max-width: 992px) {
            .testimonial {
                flex: 0 0 calc(50% - 1rem);
            }
            
            .hero h1 {
                font-size: 2.5rem;
            }
        }

        @media (max-width: 768px) {
            .mobile-menu-btn {
                display: block;
            }
            
            nav {
                position: fixed;
                top: 70px;
                left: -100%;
                width: 80%;
                height: calc(100vh - 70px);
                background-color: var(--white);
                flex-direction: column;
                transition: var(--transition);
                box-shadow: var(--shadow);
                z-index: 999;
            }
            
            nav.active {
                left: 0;
            }
            
            nav ul {
                flex-direction: column;
                padding: 2rem;
            }
            
            nav ul li {
                margin: 1rem 0;
            }
            
            .nav-btns {
                flex-direction: column;
                padding: 0 2rem 2rem;
            }
            
            .nav-btns .btn {
                margin: 0.5rem 0;
                width: 100%;
            }
            
            .hero {
                padding: 5rem 0;
            }
            
            .hero h1 {
                font-size: 2rem;
            }
            
            .search-box {
                flex-direction: column;
            }
            
            .search-box input {
                margin-right: 0;
                margin-bottom: 0.5rem;
            }
            
            .testimonial {
                flex: 0 0 calc(100%);
            }
            
            .section {
                padding: 3rem 0;
            }
        }

        @media (max-width: 576px) {
            .hero h1 {
                font-size: 1.8rem;
            }
            
            .section-title {
                font-size: 1.8rem;
            }
            
            .property-card {
                max-width: 320px;
                margin: 0 auto;
            }
            
            .footer-container {
                grid-template-columns: 1fr;
            }
        }

        /* Accessibility Improvements */
        @media (prefers-reduced-motion: reduce) {
            * {
                animation-duration: 0.01ms !important;
                animation-iteration-count: 1 !important;
                transition-duration: 0.01ms !important;
                scroll-behavior: auto !important;
            }
        }

        .skip-to-content {
            position: absolute;
            top: -40px;
            left: 0;
            background: var(--secondary);
            color: white;
            padding: 8px;
            z-index: 1001;
        }

        .skip-to-content:focus {
            top: 0;
        }

        /* Focus styles for accessibility */
        button:focus,
        input:focus,
        a:focus {
            outline: 2px solid var(--accent);
            outline-offset: 2px;
        }
        
        .pagination-wrap { margin-top: 2rem; text-align: center; }
        .pagination { list-style: none; display: inline-flex; gap: 8px; }
        .pagination li a {
          padding: 8px 14px;
          border: 1px solid #ccc;
          border-radius: 6px;
          background: #fff;
          color: #333;
          transition: .3s;
        }
        .pagination li.active a,
        .pagination li a:hover {
          background: var(--secondary);
          color: #fff;
          border-color: var(--secondary);
        }
        
        .about-content {
          display: grid;
          grid-template-columns: 1fr 1fr;
          gap: 2rem;
          align-items: center;
        }
        .about-text h2 {
          margin-top: 1.5rem;
          margin-bottom: .5rem;
        }
        .about-text ul {
          list-style: disc;
          margin-left: 20px;
          color: #444;
        }
        .about-image img {
          border-radius: 12px;
          box-shadow: var(--shadow);
        }
        
        .team-grid {
          display: grid;
          grid-template-columns: repeat(auto-fit, minmax(220px,1fr));
          gap: 2rem;
          margin-top: 2rem;
        }
        .team-card {
          text-align: center;
          background: #fff;
          padding: 1.5rem;
          border-radius: 12px;
          box-shadow: var(--shadow);
        }
        .team-card img {
          width: 120px;
          height: 120px;
          border-radius: 50%;
          object-fit: cover;
          margin-bottom: 1rem;
        }
        .team-card h3 {
          margin-bottom: .3rem;
          font-size: 1.1rem;
        }
        .team-card p {
          color: #666;
          font-size: .9rem;
        }
        
        .contact-wrapper {
          max-width: 600px;       /* biar tengah & tidak terlalu lebar */
          margin: 0 auto;
          padding: 2rem;
          text-align: center;
        }
        
        .contact-form,
        .contact-info {
          background: #fff;
          padding: 2rem;
          border-radius: 10px;
          box-shadow: 0 4px 12px rgba(0,0,0,0.1);
          margin-bottom: 2rem;
          text-align: left;       /* form & info tetap rata kiri agar enak dibaca */
        }
        
        .contact-form form .form-group {
          margin-bottom: 1rem;
        }
        
        .contact-form input,
        .contact-form textarea {
          width: 100%;
          padding: 0.75rem;
          border: 1px solid #ddd;
          border-radius: 6px;
          font-size: 1rem;
        }
        
        .contact-form button {
          background: #e74c3c;
          color: #fff;
          padding: 0.75rem 1.5rem;
          border: none;
          border-radius: 6px;
          cursor: pointer;
          font-size: 1rem;
        }
        
        .contact-form button:hover {
          background: #c0392b;
        }
        
        .about-wrapper {
          max-width: 800px;
          margin: 0 auto;
          padding: 2rem;
          text-align: center;
        }
        
        .about-card {
          background: #fff;
          padding: 2rem;
          border-radius: 10px;
          box-shadow: 0 4px 12px rgba(0,0,0,0.1);
          text-align: left;
          margin-bottom: 2rem;
        }
        
        .about-card h2 {
          margin-top: 1.5rem;
          margin-bottom: 0.5rem;
        }
        
        .about-card ul {
          padding-left: 1.5rem;
          margin-bottom: 1rem;
        }
        
        .cta-wrapper {
          max-width: 800px;
          margin: 0 auto 3rem auto;
          padding: 0 2rem;
          text-align: center;
        }
        
        .cta-card {
          background: #f9f9f9;
          padding: 2rem;
          border-radius: 10px;
          box-shadow: 0 4px 12px rgba(0,0,0,0.05);
        }
        
        .cta-card .btn {
          display: inline-block;
          margin-top: 1rem;
          background: #e74c3c;
          color: #fff;
          padding: 0.75rem 1.5rem;
          border-radius: 6px;
          text-decoration: none;
          transition: background 0.3s;
        }
        
        .cta-card .btn:hover {
          background: #c0392b;
        }
        
        .search-results {
          display: grid;
          grid-template-columns: repeat(auto-fill,minmax(280px,1fr));
          gap: 1.5rem;
        }
        
        .property-card {
          background: #fff;
          padding: 1.5rem;
          border-radius: 10px;
          box-shadow: 0 4px 10px rgba(0,0,0,0.08);
        }
        
        .property-card h2 {
          font-size: 1.2rem;
          margin-bottom: 0.5rem;
        }
        
        .property-card p {
          margin: 0.25rem 0;
        }
        
        .property-card .btn {
          display: inline-block;
          margin-top: 0.5rem;
          background: #e74c3c;
          color: #fff;
          padding: 0.5rem 1rem;
          border-radius: 6px;
          text-decoration: none;
        }
        .property-card .btn:hover {
          background: #c0392b;
        }
        
        .search-box {
          display: flex;
          justify-content: center;
          margin: 20px auto;
          max-width: 700px;
        }
        
        .search-box form {
          display: flex;
          width: 100%;
        }
        
        .search-box input[type="text"] {
          flex: 1;
          padding: 12px 15px;
          border: 1px solid #ddd;
          border-radius: 6px 0 0 6px;
          font-size: 14px;
          outline: none;
        }
        
        .search-box button {
          background: #e74c3c; /* merah */
          color: #fff;
          border: none;
          padding: 12px 20px;
          border-radius: 0 6px 6px 0;
          cursor: pointer;
          font-size: 14px;
          font-weight: bold;
        }
        
        .search-box button:hover {
          background: #c0392b;
        }
        
        @media (max-width: 600px) {
          .search-box {
            padding: 0 15px;      /* agak longgar kiri kanan */
            max-width: 100%;
          }
        
          .search-box input[type="text"]{padding:15px 18px;font-size:16px}.search-box button{padding:15px 18px;font-size:16px}}.detail-img{position:relative;max-width:700px;margin:auto;height:400px;overflow:hidden;width:100%}.detail-img img{max-height:600px;width:100%;height:100%;border-radius:8px;object-fit:cover;display:block}.nav-btn{position:absolute;top:50%;transform:translateY(-50%);background:rgb(0 0 0 / .5);border:none;color:#fff;font-size:24px;padding:8px 12px;cursor:pointer;border-radius:50%}.nav-btn.prev{left:10px}.nav-btn.next{right:10px}.nav-btn:hover{background:rgb(0 0 0 / .8)}.thumbnail-container{display:flex;justify-content:center;margin-top:12px;gap:8px;flex-wrap:wrap}.thumbnail{width:80px;height:60px;object-fit:cover;border-radius:4px;cursor:pointer;opacity:.7;transition:opacity 0.2s,transform 0.2s}.thumbnail:hover{opacity:1;transform:scale(1.05)}.thumbnail.active{border:2px solid #007bff;opacity:1}.property-tags{position:absolute;top:1rem;left:0;right:0;display:flex;justify-content:space-between;padding:0 1rem}.property-tag1{background-color:var(--secondary);color:var(--white);padding:.3rem .8rem;border-radius:var(--radius);font-size:.8rem;font-weight:600}.not-available-overlay{position:absolute;top:0;left:0;width:100%;height:100%;background:rgb(0 0 0 / .5);color:#fff;display:flex;justify-content:center;align-items:center;font-size:2rem;font-weight:700;text-transform:uppercase;z-index:10}.author-box{background:#f9f9f9;border:1px solid #eee;padding:15px 20px;margin-bottom:25px;border-radius:8px}.author-title{margin:0 0 10px;font-size:18px;color:#333}.banner-promo{margin:30px 0!important;padding:0!important}