.owl-carousel,.owl-carousel .owl-item{-webkit-tap-highlight-color:transparent;position:relative}.owl-carousel .owl-item.center{z-index:5}.owl-carousel{display:none;width:100%;z-index:1}.owl-carousel .owl-stage{position:relative;touch-action:manipulation;-moz-backface-visibility:hidden}.owl-carousel .owl-stage:after{content:".";display:block;clear:both;visibility:hidden;line-height:0;height:0}.owl-carousel .owl-stage-outer{position:relative;overflow:hidden;-webkit-transform:translate3d(0,0,0)}.owl-carousel .owl-item,.owl-carousel .owl-wrapper{-webkit-backface-visibility:hidden;-moz-backface-visibility:hidden;-ms-backface-visibility:hidden;-webkit-transform:translate3d(0,0,0);-moz-transform:translate3d(0,0,0);-ms-transform:translate3d(0,0,0)}.owl-carousel .owl-item{min-height:1px;float:left;-webkit-backface-visibility:hidden;-webkit-touch-callout:none}.owl-carousel .owl-item img{display:block;width:100%}.owl-carousel .owl-dots.disabled,.owl-carousel .owl-nav.disabled{display:none}.no-js .owl-carousel,.owl-carousel.owl-loaded{display:block}.owl-carousel .owl-dot,.owl-carousel .owl-nav .owl-next,.owl-carousel .owl-nav .owl-prev{cursor:pointer;-webkit-user-select:none;user-select:none}.owl-carousel .owl-nav button.owl-next,.owl-carousel .owl-nav button.owl-prev,.owl-carousel button.owl-dot{background:0 0;color:inherit;border:none;padding:0!important;font:inherit}.owl-carousel.owl-loading{opacity:0;display:block}.owl-carousel.owl-hidden{opacity:0}.owl-carousel.owl-refresh .owl-item{visibility:hidden}.owl-carousel.owl-drag .owl-item{touch-action:pan-y;-webkit-user-select:none;user-select:none}.owl-carousel.owl-grab{cursor:move;cursor:grab}.owl-carousel.owl-rtl{direction:rtl}.owl-carousel.owl-rtl .owl-item{float:right}.owl-carousel .animated{animation-duration:1s;animation-fill-mode:both}.owl-carousel .owl-animated-in{z-index:0}.owl-carousel .owl-animated-out{z-index:1}.owl-carousel .fadeOut{animation-name:fadeOut}@keyframes fadeOut{0%{opacity:1}to{opacity:0}}.owl-height{transition:height .5s ease-in-out}.owl-carousel .owl-item .owl-lazy{transition:opacity .4s ease}.owl-carousel .owl-item .owl-lazy:not([src]),.owl-carousel .owl-item .owl-lazy[src^=""]{max-height:0}.owl-carousel .owl-item img.owl-lazy{transform-style:preserve-3d}.owl-carousel .owl-video-wrapper{position:relative;height:100%;background:#000}.owl-carousel .owl-video-play-icon{position:absolute;height:80px;width:80px;left:50%;top:50%;margin-left:-40px;margin-top:-40px;background:url(owl.video.play.e3b436436832b027.png) no-repeat;cursor:pointer;z-index:1;-webkit-backface-visibility:hidden;transition:transform .1s ease}.owl-carousel .owl-video-play-icon:hover{transform:scale(1.3)}.owl-carousel .owl-video-playing .owl-video-play-icon,.owl-carousel .owl-video-playing .owl-video-tn{display:none}.owl-carousel .owl-video-tn{opacity:0;height:100%;background-position:center center;background-repeat:no-repeat;background-size:contain;transition:opacity .4s ease}.owl-carousel .owl-video-frame{position:relative;z-index:1;height:100%;width:100%}.owl-theme .owl-dots,.owl-theme .owl-nav{text-align:center;-webkit-tap-highlight-color:transparent}.owl-theme .owl-nav{margin-top:10px}.owl-theme .owl-nav [class*=owl-]{color:#fff;font-size:14px;margin:5px;padding:4px 7px;background:#D6D6D6;display:inline-block;cursor:pointer;border-radius:3px}.owl-theme .owl-nav [class*=owl-]:hover{background:#869791;color:#fff;text-decoration:none}.owl-theme .owl-nav .disabled{opacity:.5;cursor:default}.owl-theme .owl-nav.disabled+.owl-dots{margin-top:10px}.owl-theme .owl-dots .owl-dot{display:inline-block;zoom:1}.owl-theme .owl-dots .owl-dot span{width:10px;height:10px;margin:5px 7px;background:#D6D6D6;display:block;-webkit-backface-visibility:visible;transition:opacity .2s ease;border-radius:30px}.owl-theme .owl-dots .owl-dot.active span,.owl-theme .owl-dots .owl-dot:hover span{background:#869791}.slick-slider{position:relative;display:block;box-sizing:border-box;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;-khtml-user-select:none;touch-action:pan-y;-webkit-tap-highlight-color:transparent}.slick-list{position:relative;display:block;overflow:hidden;margin:0;padding:0}.slick-list:focus{outline:none}.slick-list.dragging{cursor:pointer;cursor:hand}.slick-slider .slick-track,.slick-slider .slick-list{transform:translateZ(0)}.slick-track{position:relative;top:0;left:0;display:block;margin-left:auto;margin-right:auto}.slick-track:before,.slick-track:after{display:table;content:""}.slick-track:after{clear:both}.slick-loading .slick-track{visibility:hidden}.slick-slide{display:none;float:left;height:100%;min-height:1px}[dir=rtl] .slick-slide{float:right}.slick-slide img{display:block}.slick-slide.slick-loading img{display:none}.slick-slide.dragging img{pointer-events:none}.slick-initialized .slick-slide{display:block}.slick-loading .slick-slide{visibility:hidden}.slick-vertical .slick-slide{display:block;height:auto;border:1px solid transparent}.slick-arrow.slick-hidden{display:none}@charset "UTF-8";.slick-loading .slick-list{background:#fff url(ajax-loader.0b80f665935ef7de.gif) center center no-repeat}@font-face{font-family:slick;font-weight:400;font-style:normal;src:url(slick.25572f22d77029da.eot);src:url(slick.25572f22d77029da.eot?#iefix) format("embedded-opentype"),url(slick.653a4cbba6e1a2b3.woff) format("woff"),url(slick.6aa1ee46202fac6e.ttf) format("truetype"),url(slick.f895cfdf693e6229.svg#slick) format("svg")}.slick-prev,.slick-next{font-size:0;line-height:0;position:absolute;top:50%;display:block;width:20px;height:20px;padding:0;transform:translateY(-50%);cursor:pointer;color:transparent;border:none;outline:none;background:transparent}.slick-prev:hover,.slick-prev:focus,.slick-next:hover,.slick-next:focus{color:transparent;outline:none;background:transparent}.slick-prev:hover:before,.slick-prev:focus:before,.slick-next:hover:before,.slick-next:focus:before{opacity:1}.slick-prev.slick-disabled:before,.slick-next.slick-disabled:before{opacity:.25}.slick-prev:before,.slick-next:before{font-family:slick;font-size:20px;line-height:1;opacity:.75;color:#fff;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.slick-prev{left:-25px}[dir=rtl] .slick-prev{right:-25px;left:auto}.slick-prev:before{content:"\2190"}[dir=rtl] .slick-prev:before{content:"\2192"}.slick-next{right:-25px}[dir=rtl] .slick-next{right:auto;left:-25px}.slick-next:before{content:"\2192"}[dir=rtl] .slick-next:before{content:"\2190"}.slick-dotted.slick-slider{margin-bottom:30px}.slick-dots{position:absolute;bottom:-25px;display:block;width:100%;padding:0;margin:0;list-style:none;text-align:center}.slick-dots li{position:relative;display:inline-block;width:20px;height:20px;margin:0 5px;padding:0;cursor:pointer}.slick-dots li button{font-size:0;line-height:0;display:block;width:20px;height:20px;padding:5px;cursor:pointer;color:transparent;border:0;outline:none;background:transparent}.slick-dots li button:hover,.slick-dots li button:focus{outline:none}.slick-dots li button:hover:before,.slick-dots li button:focus:before{opacity:1}.slick-dots li button:before{font-family:slick;font-size:6px;line-height:20px;position:absolute;top:0;left:0;width:20px;height:20px;content:"\2022";text-align:center;opacity:.25;color:#000;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.slick-dots li.slick-active button:before{opacity:.75;color:#000}:root{--color-primary: #1a535c;--color-primary-light: #2d7a7a;--color-primary-dark: #0f3d44;--color-accent: #c9a227;--color-accent-light: #e8d5a3;--color-accent-dark: #9a7b1a;--color-bg: #f8f6f3;--color-bg-alt: #f0ede8;--color-surface: #ffffff;--color-text: #2c3e50;--color-text-muted: #5a6c7d;--color-text-inverse: #ffffff;--font-heading: "Playfair Display", Georgia, serif;--font-body: "Plus Jakarta Sans", -apple-system, BlinkMacSystemFont, sans-serif;--shadow-sm: 0 2px 12px rgba(26, 83, 92, .08);--shadow-md: 0 8px 28px rgba(26, 83, 92, .12);--shadow-lg: 0 16px 48px rgba(26, 83, 92, .15);--radius-sm: 8px;--radius-md: 12px;--radius-lg: 20px;--ease: .3s cubic-bezier(.4, 0, .2, 1);--transition: var(--ease)}:root{--bg: var(--color-bg);--bg-elevated: var(--color-bg-alt);--surface: var(--color-surface);--surface-hover: var(--color-bg-alt);--border: #e0ddd8;--accent: var(--color-accent);--accent-soft: var(--color-accent-light);--accent-dark: var(--color-accent-dark);--text: var(--color-text);--text-muted: var(--color-text-muted);--text-inverse: var(--color-text-inverse);--font-display: var(--font-heading);--shadow-glow: 0 0 32px rgba(26, 83, 92, .08)}*{font-family:var(--font-body);font-weight:400;-webkit-font-smoothing:antialiased;line-height:1.5}a{text-decoration:none;color:inherit}li{list-style:none}button:hover{cursor:pointer}html,body{height:100%;margin:0;background:var(--color-bg);color:var(--color-text)}h1,h2,h3{font-family:var(--font-heading);color:var(--color-text)}::-webkit-scrollbar{width:8px}::-webkit-scrollbar-track{background:var(--color-bg-alt)}::-webkit-scrollbar-thumb{background:var(--color-primary-light);border-radius:999px}::-webkit-scrollbar-thumb:hover{background:var(--color-primary)}.owl-theme .owl-dots .owl-dot{width:auto}.owl-theme .owl-nav{width:auto;display:inline-flex}.owl-theme .owl-nav .owl-prev,.owl-theme .owl-nav .owl-next{font-size:24px;border-radius:var(--radius-sm);margin:10px 40px;padding:8px;background:var(--color-surface)!important;color:var(--color-primary)!important;width:44px;height:44px;opacity:1;box-shadow:var(--shadow-sm);transition:background var(--ease),transform var(--ease)}.owl-theme .owl-nav .owl-prev:hover,.owl-theme .owl-nav .owl-next:hover{background:var(--color-bg-alt)!important;transform:scale(1.05)}.owl-next{top:40%;position:absolute;right:-68px;transform:translate(-50%,-50%)}.owl-prev{top:40%;position:absolute;left:-38px;transform:translate(-50%,-50%)}.owl-theme .owl-dots .owl-dot{width:auto;transform:translate(-50%,-50%)}.ngx-pagination .current{background:var(--color-primary)!important;color:var(--color-text-inverse)!important}.about-section{margin:0;min-height:320px;text-align:center;display:flex;flex-direction:column;justify-content:center;padding:100px 24px 80px;background-repeat:no-repeat;background-size:cover;background-position:center;color:var(--color-text-inverse);position:relative}.about-section:before{content:"";position:absolute;inset:0;background:linear-gradient(135deg,rgba(26,83,92,.88) 0%,rgba(15,61,68,.9) 100%);z-index:0}.about-section h1,.about-section .about-title,.about-section .section-title,.about-section .contact-title{position:relative;z-index:1;color:var(--color-text-inverse);font-family:var(--font-heading);font-weight:600;text-align:center;margin:0}.about-title,.section-title{text-transform:uppercase;letter-spacing:.08em}.listing-hero{background:linear-gradient(135deg,rgba(26,83,92,.92) 0%,rgba(15,61,68,.95) 100%),url(https://www.ecoprops.co.za/images/slide-1.jpg) center / cover no-repeat;padding:3rem 1.5rem 2.5rem}.listing-hero-inner{max-width:1000px;margin:0 auto}.listing-title{font-family:var(--font-display);font-size:clamp(1.5rem,3.5vw,2rem);color:#fff;margin:0 0 .5rem;text-transform:uppercase;letter-spacing:.04em}.listing-subtitle{color:#ffffffe6;font-size:1rem;margin:0 0 1.5rem;line-height:1.4}.sales-filter{background:var(--color-surface);border-radius:var(--radius-md);padding:1.5rem;box-shadow:var(--shadow-md);border:1px solid var(--border)}.filter-row{display:flex;flex-wrap:wrap;gap:1rem;align-items:flex-end}.filter-row+.filter-row{margin-top:1rem}.filter-group{flex:1 1 140px;min-width:0}.filter-group label{display:block;font-size:.8rem;font-weight:600;color:var(--color-text);margin-bottom:.35rem}.filter-group select{width:100%;padding:.6rem .75rem;border:1px solid var(--border);border-radius:var(--radius-sm);font-size:.9rem;color:var(--color-text);background:var(--color-surface);cursor:pointer}.filter-group select:focus{outline:none;border-color:var(--color-primary)}.filter-actions{display:flex;gap:.75rem;align-items:center;flex-wrap:wrap}.btn-search{padding:.65rem 1.5rem;background:var(--color-primary);color:var(--color-text-inverse);border:none;border-radius:var(--radius-sm);font-weight:600;font-size:.95rem;cursor:pointer;transition:background var(--ease),color var(--ease)}.btn-search:hover{background:var(--color-primary-dark);color:var(--color-text-inverse)}.btn-clear{padding:.65rem 1rem;background:transparent;color:var(--color-text-muted);border:1px solid var(--border);border-radius:var(--radius-sm);font-size:.9rem;cursor:pointer;transition:background var(--ease),color var(--ease)}.btn-clear:hover{background:var(--color-bg);color:var(--color-text)}.listing-content{max-width:1200px;margin:0 auto;padding:1.5rem 1.25rem 2rem;background:var(--color-bg)}.listing-toolbar{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1.5rem}.listing-count{font-size:.95rem;color:var(--color-text-muted);margin:0}.listing-sort{display:flex;align-items:center;gap:.5rem}.listing-sort label{font-size:.9rem;color:var(--color-text-muted)}.listing-sort select{padding:.5rem .75rem;border:1px solid var(--border);border-radius:var(--radius-sm);font-size:.9rem;color:var(--color-text);background:var(--color-surface);cursor:pointer}.listing-sort select:focus{outline:none;border-color:var(--color-primary)}.property-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:1.5rem}.listing-pagination{margin-top:2rem;text-align:center}.listing-pagination ::ng-deep .ngx-pagination{padding:0}.listing-pagination ::ng-deep .ngx-pagination a,.listing-pagination ::ng-deep .ngx-pagination span{padding:.5rem .75rem;color:var(--color-primary);border-radius:var(--radius-sm)}.listing-pagination ::ng-deep .ngx-pagination a:hover{background:var(--color-bg);color:var(--color-primary-dark)}.listing-pagination ::ng-deep .ngx-pagination .current{background:var(--color-primary);color:var(--color-text-inverse)}.listing-empty{text-align:center;padding:3rem 1.5rem;background:var(--color-surface);border-radius:var(--radius-md);border:1px solid var(--border)}.listing-empty p{color:var(--color-text-muted);margin:0 0 1rem}.dashboard-page{max-width:1200px;margin:0 auto}.dashboard-page-title{font-family:var(--font-display);font-size:1.5rem;font-weight:600;color:var(--color-text);margin:0}.page-header{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:1rem;margin-bottom:1.5rem}.table-wrap{background:var(--color-surface);border-radius:var(--radius-md);border:1px solid var(--border);box-shadow:var(--shadow-sm);overflow:hidden}.data-table{width:100%;border-collapse:collapse;font-size:.9rem}.data-table th,.data-table td{padding:.85rem 1rem;text-align:left;border-bottom:1px solid var(--border)}.data-table th{background:var(--color-bg-alt);font-weight:600;color:var(--color-text);font-size:.8rem;text-transform:uppercase;letter-spacing:.04em}.data-table tbody tr{transition:background var(--ease)}.data-table tbody tr:hover{background:var(--color-bg)}.data-table tbody tr:last-child td{border-bottom:none}.loading-msg,.empty-msg{color:var(--color-text-muted);font-size:.95rem;margin:0;padding:1.5rem}.empty-msg{text-align:center;background:var(--color-surface);border-radius:var(--radius-md);border:1px dashed var(--border)}.btn-primary{padding:.6rem 1.25rem;background:var(--color-primary);color:var(--color-text-inverse);border:none;border-radius:var(--radius-sm);font-weight:600;font-size:.9rem;cursor:pointer;transition:background var(--ease),transform var(--ease)}.btn-primary:hover{background:var(--color-primary-dark)}.btn-primary:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid var(--color-primary);outline-offset:0}
