*{margin:0;padding:0;box-sizing:border-box}html{scroll-behavior:smooth}body{font-family:var(--font-family);font-size:var(--font-size-base);line-height:1.6;color:var(--gray-800);background-color:var(--white);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}:focus{outline:3px solid var(--primary-300);outline-offset:2px}.skip-link{position:absolute;top:-40px;left:0;background:var(--primary-color);color:var(--white);padding:8px 12px;z-index:10000;border-radius:var(--radius-sm);transition:top .2s}.skip-link:focus{top:8px}h1,h2,h3,h4,h5,h6{font-weight:700;line-height:1.2;margin-bottom:var(--spacing-4);color:var(--gray-900)}h1{font-size:var(--font-size-4xl)}h2{font-size:var(--font-size-3xl)}h3{font-size:var(--font-size-2xl)}h4{font-size:var(--font-size-xl)}h5{font-size:var(--font-size-lg)}h6{font-size:var(--font-size-base)}p{margin-bottom:var(--spacing-4);color:var(--gray-700)}a{color:var(--primary-color);text-decoration:none;transition:color var(--transition-fast)}a:hover{color:var(--primary-dark)}.container{max-width:1200px;margin:0 auto;padding:0 var(--spacing-4)}.container-wide{max-width:1400px;margin:0 auto;padding:0 var(--spacing-4)}.btn{display:inline-flex;align-items:center;justify-content:center;padding:var(--spacing-3) var(--spacing-6);font-size:var(--font-size-base);font-weight:600;border:none;border-radius:var(--radius-lg);cursor:pointer;transition:all var(--transition-fast);text-decoration:none;min-height:44px}.btn-primary{background-color:var(--primary-color);color:var(--white)}.btn-primary:hover{background-color:var(--primary-dark);transform:translateY(-1px);box-shadow:var(--shadow-lg)}.btn-secondary{background-color:var(--gray-100);color:var(--gray-700);border:1px solid var(--gray-200)}.btn-secondary:hover{background-color:var(--gray-200);border-color:var(--gray-300)}.btn-outline{background-color:transparent;color:var(--primary-color);border:2px solid var(--primary-color)}.btn-outline:hover{background-color:var(--primary-color);color:var(--white)}.btn-lg{padding:var(--spacing-4) var(--spacing-8);font-size:var(--font-size-lg)}.btn-sm{padding:var(--spacing-2) var(--spacing-4);font-size:var(--font-size-sm)}.card{background:var(--white);border-radius:var(--radius-xl);box-shadow:var(--shadow-md);overflow:hidden;transition:all var(--transition-normal)}.card:hover{transform:translateY(-2px);box-shadow:var(--shadow-xl)}.card-header{padding:var(--spacing-6);border-bottom:1px solid var(--gray-200)}.card-body{padding:var(--spacing-6)}.card-footer{padding:var(--spacing-6);border-top:1px solid var(--gray-200);background-color:var(--gray-50)}.form-group{margin-bottom:var(--spacing-6)}.form-label{display:block;margin-bottom:var(--spacing-2);font-weight:600;color:var(--gray-700)}.form-input,.form-select,.form-textarea{width:100%;padding:var(--spacing-3) var(--spacing-4);font-size:var(--font-size-base);border:2px solid var(--gray-200);border-radius:var(--radius-lg);background-color:var(--white);transition:all var(--transition-fast)}.form-input:focus,.form-select:focus,.form-textarea:focus{outline:0;border-color:var(--primary-color);box-shadow:0 0 0 3px rgb(37 99 235 / .1)}.form-input.error,.form-select.error,.form-textarea.error{border-color:var(--error-color)}.form-error{color:var(--error-color);font-size:var(--font-size-sm);margin-top:var(--spacing-2)}.grid{display:grid;gap:var(--spacing-6)}.grid-2{grid-template-columns:repeat(2,1fr)}.grid-3{grid-template-columns:repeat(3,1fr)}.grid-4{grid-template-columns:repeat(4,1fr)}.text-center{text-align:center}.text-left{text-align:left}.text-right{text-align:right}.text-primary{color:var(--primary-color)}.text-secondary{color:var(--secondary-color)}.text-success{color:var(--success-color)}.text-error{color:var(--error-color)}.text-warning{color:var(--warning-color)}.bg-primary{background-color:var(--primary-color)}.bg-secondary{background-color:var(--secondary-color)}.bg-gray-50{background-color:var(--gray-50)}.bg-gray-100{background-color:var(--gray-100)}.mb-0{margin-bottom:0}.mb-2{margin-bottom:var(--spacing-2)}.mb-4{margin-bottom:var(--spacing-4)}.mb-6{margin-bottom:var(--spacing-6)}.mb-8{margin-bottom:var(--spacing-8)}.mt-0{margin-top:0}.mt-2{margin-top:var(--spacing-2)}.mt-4{margin-top:var(--spacing-4)}.mt-6{margin-top:var(--spacing-6)}.mt-8{margin-top:var(--spacing-8)}.p-0{padding:0}.p-4{padding:var(--spacing-4)}.p-6{padding:var(--spacing-6)}.p-8{padding:var(--spacing-8)}.rounded{border-radius:var(--radius-lg)}.rounded-full{border-radius:var(--radius-full)}.shadow{box-shadow:var(--shadow-md)}.shadow-lg{box-shadow:var(--shadow-lg)}.shadow-xl{box-shadow:var(--shadow-xl)}@media (max-width:1024px){.grid-4{grid-template-columns:repeat(3,1fr)}}@media (max-width:768px){.container,.container-wide{padding:0 var(--spacing-3)}.grid-3,.grid-4{grid-template-columns:repeat(2,1fr)}h1{font-size:var(--font-size-3xl)}h2{font-size:var(--font-size-2xl)}h3{font-size:var(--font-size-xl)}.btn-lg{padding:var(--spacing-3) var(--spacing-6)}}@media (max-width:640px){.grid-2,.grid-3,.grid-4{grid-template-columns:1fr}.card-body,.card-footer,.card-header{padding:var(--spacing-4)}.btn{width:100%}}@keyframes fadeIn{from{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes slideIn{from{transform:translateX(-100%)}to{transform:translateX(0)}}.fade-in{animation:.6s ease-out fadeIn}.slide-in{animation:.4s ease-out slideIn}.loading{opacity:.6;pointer-events:none}.loading::after{content:'';position:absolute;top:50%;left:50%;width:20px;height:20px;margin:-10px 0 0 -10px;border:2px solid var(--gray-300);border-top-color:var(--primary-color);border-radius:50%;animation:1s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.layout-sticky{min-height:100vh;display:flex;flex-direction:column}.layout-sticky main{flex:1 0 auto}.layout-sticky footer{margin-top:auto}.icon-16{width:16px;height:16px;display:inline-block;vertical-align:middle}.icon-20{width:20px;height:20px;display:inline-block;vertical-align:middle}.icon-24{width:24px;height:24px;display:inline-block;vertical-align:middle}.icon-32{width:32px;height:32px;display:inline-block;vertical-align:middle}.icon-inline{margin-right:6px}.icon{display:inline-block;vertical-align:middle;flex-shrink:0}.icon-mask{-webkit-mask:var(--icon) no-repeat center/contain;mask:var(--icon) no-repeat center/contain;background-color:currentColor}.icon-bed{--icon:url('/icons/icon_bed.svg')}.icon-bath{--icon:url('/icons/icon_bath.svg')}.icon-size{--icon:url('/icons/icon_size.svg')}.icon-location{--icon:url('/icons/icon_location.svg')}