@import"https://fonts.googleapis.com/css2?family=Outfit:wght@300;400;500;600;700&family=Playfair+Display:ital,wght@0,400;0,600;0,700;1,400&display=swap";:root{--color-primary: #1A4D2E;--color-secondary: #F4E0B9;--color-accent: #E07A5F;--color-bg: #FAF9F6;--color-text: #333333;--color-text-light: #666666;--color-white: #ffffff;--shadow-sm: 0 4px 6px rgba(0, 0, 0, .05);--shadow-md: 0 10px 15px rgba(0, 0, 0, .1);--shadow-lg: 0 20px 25px rgba(0, 0, 0, .15);--radius-sm: 8px;--radius-md: 16px;--radius-lg: 24px;--font-body: "Outfit", sans-serif;--font-heading: "Playfair Display", serif}*{box-sizing:border-box;margin:0;padding:0}body{font-family:var(--font-body);background-color:var(--color-bg);color:var(--color-text);line-height:1.6;-webkit-font-smoothing:antialiased}::-webkit-scrollbar{width:10px}::-webkit-scrollbar-track{background:var(--color-bg)}::-webkit-scrollbar-thumb{background:var(--color-secondary);border-radius:5px}::-webkit-scrollbar-thumb:hover{background:var(--color-primary)}h1,h2,h3,h4,h5,h6{font-family:var(--font-heading);color:var(--color-primary)}img{max-width:100%;display:block}button{font-family:var(--font-body);cursor:pointer}@keyframes listFadeIn{0%{opacity:.8;transform:translateY(5px)}to{opacity:1;transform:translateY(0)}}.list-update{animation:listFadeIn .4s ease-out}.filter-bar{display:flex;flex-wrap:wrap;gap:12px;justify-content:center;align-items:center;padding:20px 0}.filter-pill{padding:10px 20px;border-radius:50px;border:1px solid var(--color-primary);background:transparent;color:var(--color-primary);font-weight:500;transition:all .3s ease;font-size:.9rem}.filter-pill:hover{background:#1a4d2e1a;transform:translateY(-2px)}.filter-pill.active{background:var(--color-primary);color:var(--color-white);box-shadow:var(--shadow-md)}.filter-pill.plus-btn{min-width:40px;height:40px;padding:0 10px;display:flex;align-items:center;justify-content:center;border-radius:20px;font-size:1.1rem;font-weight:600;line-height:1;border:1px dashed var(--color-primary)}.filter-pill.plus-btn.active{background:var(--color-primary);color:#fff;border-style:solid;border-color:var(--color-primary)}.filter-pill.plus-btn:hover{background:#1a4d2e0d;border-style:solid}@media(max-width:768px){.filter-bar{display:none}}.resort-card{background:var(--color-white);border-radius:var(--radius-md);overflow:hidden;box-shadow:var(--shadow-sm);transition:transform .3s ease,box-shadow .3s ease;display:flex;flex-direction:column}.resort-card.resort-card--row{flex-direction:row}.resort-card:hover{transform:translateY(-8px);box-shadow:var(--shadow-lg)}.card-image-container{position:relative;height:250px;overflow:hidden}.resort-card.resort-card--row .card-image-container{width:320px;min-width:320px;height:auto}.card-image{width:100%;height:100%;object-fit:cover;transition:transform .5s ease}.resort-card:hover .card-image{transform:scale(1.05)}.card-rating{position:absolute;top:15px;right:15px;background:#fffc;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);padding:4px 8px;border-radius:var(--radius-sm);font-weight:700;color:var(--color-accent);box-shadow:var(--shadow-sm)}.card-badge{position:absolute;top:15px;left:15px;padding:4px 10px;border-radius:var(--radius-sm);font-size:.75rem;font-weight:700;letter-spacing:.5px;text-transform:uppercase;box-shadow:var(--shadow-sm)}.card-badge--coming-soon{background:#0009;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);color:#ccc}.card-badge--recently-opened{background:#ffffffe6;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);color:var(--color-accent)}.card-content{padding:20px;flex-grow:1;display:flex;flex-direction:column}.resort-card.resort-card--row .card-description{-webkit-line-clamp:3;line-clamp:3}.resort-card.resort-card--row .card-footer{border-top:none;padding-top:8px}.card-location{font-size:.85rem;color:var(--color-text-light);text-transform:uppercase;letter-spacing:1px;margin-bottom:5px}.card-title{font-size:1.4rem;margin-bottom:10px;line-height:1.2}.card-description{font-size:.95rem;color:var(--color-text-light);margin-bottom:15px;display:-webkit-box;-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.card-features{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:20px}.feature-tag{background:var(--color-bg);padding:4px 10px;border-radius:4px;font-size:.8rem;color:var(--color-primary);text-transform:capitalize}.card-footer{margin-top:auto;display:flex;justify-content:space-between;align-items:flex-end;border-top:1px solid #f0f0f0;padding-top:15px}.card-prices{display:flex;flex-direction:column;gap:2px}.card-price{font-size:1.1rem;font-weight:700;color:var(--color-text);display:block}.villa-price-tag{color:var(--color-accent)}.card-price small{font-size:.75rem;font-weight:400;color:var(--color-text-light)}.book-btn{background:var(--color-primary);color:#fff;border:none;padding:10px 20px;border-radius:8px;font-weight:600;transition:background .3s;text-decoration:none;cursor:pointer;font-size:.9rem}.book-btn:hover{background:#143d24}.resort-card--selected{border:2px solid var(--color-primary);box-shadow:0 0 0 2px var(--color-primary),var(--shadow-sm)}.card-select-btn{position:absolute;top:12px;left:12px;z-index:10;width:32px;height:32px;border-radius:50%;border:2px solid white;background:#0006;color:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;padding:0;transition:all .2s ease;box-shadow:0 2px 6px #0000004d}.card-select-btn svg{width:16px;height:16px}.card-select-btn:hover{background:#0009;transform:scale(1.1)}.card-select-btn--selected{background:var(--color-primary);border-color:var(--color-primary)}.card-select-btn--selected:hover{background:#143d24}.card-select-btn--disabled{opacity:.4;cursor:not-allowed}@media(max-width:768px){.resort-card.resort-card--row{flex-direction:column}.resort-card.resort-card--row .card-image-container{width:100%;min-width:0;height:250px}.resort-card.resort-card--row .card-footer{border-top:1px solid #f0f0f0;padding-top:15px}}.skeleton-card{pointer-events:none}.skeleton-image{background-color:#e0e0e0}.skeleton-text{background-color:#e0e0e0;border-radius:4px;margin-bottom:8px}.skeleton-location{height:14px;width:40%}.skeleton-title{height:24px;width:80%;margin-bottom:16px}.skeleton-description{margin-bottom:15px}.skeleton-line{height:14px;width:100%;margin-bottom:6px}.skeleton-line.short{width:70%}.skeleton-tag{height:24px;width:60px;background-color:#e0e0e0;border-radius:4px}.skeleton-price{height:24px;width:100px;background-color:#e0e0e0;border-radius:4px}.skeleton-btn{height:40px;width:120px;background-color:#e0e0e0;border-radius:8px}.filter-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#0006;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:1000;display:flex;justify-content:center;align-items:center;padding:20px}.filter-modal{background:#fff;width:100%;max-width:500px;border-radius:24px;padding:24px;animation:fadeInScale .2s ease-out;max-height:85vh;display:flex;flex-direction:column;box-shadow:0 10px 30px #00000026}.filter-modal.large-modal{max-width:800px}@keyframes fadeInScale{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}@media(max-width:768px){.filter-overlay{align-items:center;padding:16px}.filter-modal{border-radius:20px;max-width:100%;animation:fadeInScale .2s ease-out;max-height:90vh;padding:16px}.modal-header{margin-bottom:12px;padding-bottom:8px}.modal-content{padding-bottom:24px;gap:16px}.feature-group{margin-bottom:0}.feature-group-title{font-size:.9rem;margin-bottom:8px;padding-left:8px}.feature-group-items{gap:6px}.overlay-pill{padding:6px 12px;font-size:.8rem;line-height:1.2}@keyframes slideUp{0%{transform:translateY(100%)}to{transform:translateY(0)}}}.modal-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px;flex-shrink:0;padding-bottom:10px;border-bottom:1px solid #f0f0f0}.feature-group{width:100%;margin-bottom:24px}.feature-group:last-child{margin-bottom:0}.feature-group-title{font-size:1.1rem;font-weight:600;color:var(--color-primary);margin-bottom:12px;display:block;width:100%;border-left:3px solid var(--color-accent);padding-left:10px}.feature-group-items{display:flex;flex-wrap:wrap;gap:10px}.filter-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#0006;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:1000;display:flex;align-items:flex-end}.filter-modal{background:#fff;width:100%;border-radius:24px 24px 0 0;padding:24px;animation:slideUp .3s ease-out;max-height:80vh;display:flex;flex-direction:column;position:relative}@keyframes slideUp{0%{transform:translateY(100%)}to{transform:translateY(0)}}.modal-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px}.modal-header h2{font-size:1.5rem;margin:0}.close-btn{background:none;border:none;font-size:2rem;line-height:1;color:#888}.modal-content{display:flex;flex-wrap:wrap;gap:12px;overflow-y:auto;padding-bottom:80px}.overlay-pill{padding:12px 20px;border-radius:50px;border:1px solid #eee;background:#fff;font-family:var(--font-body);font-size:.95rem;transition:all .2s}.overlay-pill.active{background:var(--color-primary);color:#fff;border-color:var(--color-primary)}.modal-footer{position:absolute;bottom:0;left:0;right:0;padding:20px 24px;background:#fff;border-top:1px solid #eee;box-shadow:0 -4px 10px #0000000d}.show-results-btn{width:100%;padding:16px;background:var(--color-primary);color:#fff;border:none;border-radius:12px;font-weight:600;font-size:1rem}.price-slider-container{width:100%;max-width:600px;margin:20px auto;padding:0 20px}.price-slider-label{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px;font-family:var(--font-heading);font-weight:600;color:var(--color-text)}.price-value{color:var(--color-primary);font-size:1.2rem;background:var(--color-secondary);padding:2px 10px;border-radius:20px}.custom-range-slider{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:100%;height:6px;border-radius:5px;background:#e0e0e0;outline:none;margin:10px 0}.custom-range-slider::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:24px;height:24px;border-radius:50%;background:var(--color-primary);cursor:pointer;border:3px solid white;box-shadow:0 2px 6px #00000026;transition:transform .2s ease}.custom-range-slider::-webkit-slider-thumb:hover{transform:scale(1.1)}.custom-range-slider::-moz-range-thumb{width:24px;height:24px;border-radius:50%;background:var(--color-primary);cursor:pointer;border:3px solid white;box-shadow:0 2px 6px #00000026}.price-range-labels{display:flex;justify-content:space-between;font-size:.7rem;color:var(--color-text-light);margin-top:8px;padding:0 5px}@media(max-width:768px){.price-slider-container{margin:10px auto 25px}}.resort-detail{max-width:1400px;margin:0 auto;padding:20px}.back-link{display:inline-block;margin-bottom:20px;color:#666;text-decoration:none;font-weight:500;transition:color .2s}.back-link:hover{color:#2c3e50}.card-rating{position:absolute;top:20px;right:20px;background:#ffffffe6;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);padding:6px 12px;border-radius:8px;font-weight:700;color:var(--color-accent);box-shadow:0 2px 10px #0000001a;z-index:10}.detail-hero{position:relative;border-radius:16px;overflow:hidden;margin-bottom:30px;height:400px}.detail-image{width:100%;height:100%;object-fit:cover}.detail-header{position:absolute;bottom:0;left:0;right:0;padding:30px;background:linear-gradient(transparent,#000c);color:#fff}.detail-header h1{margin:0 0 10px;font-family:"DM Serif Display",serif;font-size:2.5rem;color:#fff!important;text-shadow:0 2px 4px rgba(0,0,0,.5)}.location-pill{background:#fff3;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);padding:6px 14px;border-radius:20px;font-size:.9rem;color:#fff;text-decoration:none;display:inline-block;transition:background-color .2s ease}.location-pill.link-to-village:hover{background:#ffffff59;text-decoration:none}.detail-content{display:grid;grid-template-columns:2fr 1fr;gap:40px}.detail-description{font-size:1.1rem;line-height:1.6;color:#4a5568;margin-bottom:30px}.detail-features{display:flex;flex-wrap:wrap;gap:10px}.feature-chip{background:#f0f4f8;padding:6px 12px;border-radius:8px;color:#4a5568;font-size:.9rem;text-transform:capitalize}.detail-sidebar{position:sticky;top:20px}.price-card{background:#fff;padding:24px;border-radius:16px;box-shadow:0 4px 20px #00000014;border:1px solid #eee}.price-tag{display:flex;flex-direction:column;gap:12px;margin-bottom:20px}.price-row{display:flex;align-items:center;justify-content:space-between;padding-bottom:8px;border-bottom:1px solid #f0f0f0}.price-row:last-child{border-bottom:none;padding-bottom:0}.price-label{font-family:var(--font-heading);font-size:.95rem;color:#555;font-weight:600}.amount{font-size:1.5rem;font-weight:700;color:#2c3e50;margin-left:auto}.period{color:#888;font-size:.9rem;margin-left:4px}.book-now-btn{width:100%;padding:14px;background:#1a3c34;color:#fff;border:none;border-radius:8px;font-size:1rem;font-weight:600;cursor:pointer;transition:background .2s}.book-now-btn:hover{background:#234e44}.website-link-btn{display:block;width:100%;padding:12px;margin-top:12px;background:transparent;color:#1a3c34;border:2px solid #1a3c34;border-radius:8px;font-size:.95rem;font-weight:600;text-align:center;text-decoration:none;cursor:pointer;transition:all .2s}.website-link-btn:hover{background:#f0f4f8;color:#234e44;border-color:#234e44}.detail-videos{margin-top:40px}.detail-videos h3{margin-bottom:20px;font-family:var(--font-heading);color:var(--color-text)}.video-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:20px}.video-wrapper{position:relative;padding-bottom:56.25%;height:0;overflow:hidden;border-radius:12px;box-shadow:0 4px 12px #0000001a}.video-wrapper iframe{position:absolute;top:0;left:0;width:100%;height:100%}.related-resorts-section{margin-top:60px;padding-top:40px;border-top:1px solid #eee}.related-resorts-section h2{font-family:var(--font-heading);margin-bottom:30px;color:var(--color-text)}.related-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:30px}@media(max-width:768px){.resort-detail{padding:0}.detail-hero{height:280px;border-radius:12px}.detail-header{padding:15px}.detail-header h1{font-size:1.8rem}.detail-content{grid-template-columns:1fr;gap:20px}.price-card{padding:20px}}.mobile-price-card{display:none;margin-bottom:30px}.sidebar-price-card{display:block}@media(max-width:768px){.mobile-price-card{display:block}.sidebar-price-card{display:none}}.compare-page{padding:2rem;max-width:1400px;margin:0 auto}.back-link{font-size:1rem;color:#666!important;transition:color .2s;margin-bottom:1rem}.back-link:hover{color:var(--color-primary, #1A4D2E)!important;text-decoration:underline}.compare-title{text-align:center;margin-bottom:2rem;color:var(--color-text)}.compare-container{overflow-x:auto}.compare-table{width:100%;border-collapse:collapse;min-width:800px}.compare-table th,.compare-table td{padding:1rem;border:1px solid #eee;text-align:left;vertical-align:top}.compare-table th{background-color:#f9f9f9;min-width:250px;position:sticky;top:0;z-index:10;box-shadow:0 2px 5px #0000000d}.compare-table thead th:first-child{left:0;z-index:20;background-color:#f9f9f9}.compare-table tbody tr:nth-child(2n){background-color:#fdfdfd}.compare-group-row td{background:#eef3f8!important;color:var(--color-primary, #1A4D2E);font-weight:700;text-transform:uppercase;letter-spacing:.04em;font-size:.78rem;padding:.7rem 1rem}.feature-label{font-weight:700;color:#555;background-color:#fff;position:sticky;left:0;z-index:5;width:150px;min-width:150px;border-right:2px solid #ddd;box-shadow:2px 0 5px #0000000d}.compare-header-content{display:flex;flex-direction:column;align-items:center;gap:.5rem;position:relative;text-align:center}.compare-img{width:100%;height:150px;object-fit:cover;border-radius:8px;transition:transform .2s}.compare-img:hover{transform:scale(1.02)}.remove-btn{position:absolute;top:-10px;right:-10px;background:#f44;color:#fff;border:none;border-radius:50%;width:24px;height:24px;cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:1.2rem;line-height:1}.view-btn{display:inline-block;padding:.5rem 1rem;background-color:var(--color-primary, #1A4D2E);color:#fff;text-decoration:none;border-radius:4px;font-size:.9rem;margin-top:.5rem}.view-btn:hover{background-color:#143d24}.compare-page .features-list{display:flex;flex-wrap:wrap;gap:.5rem}.compare-page .feature-tag{background-color:#e9ecef;padding:.2rem .6rem;border-radius:12px;font-size:.8rem;color:#495057}.compare-empty{text-align:center;padding:4rem 2rem}.back-btn{margin-top:1rem;padding:.8rem 1.5rem;background-color:var(--color-primary, #1A4D2E);color:#fff;border:none;border-radius:4px;font-size:1rem;cursor:pointer}.best-value{background-color:#e8f5e9!important;font-weight:700;color:#2e7d32;position:relative;border-bottom:2px solid #a5d6a7}.best-value:after{display:none}.boolean-yes{color:#2e7d32;font-weight:700;display:flex;align-items:center;gap:.5rem}.boolean-no{color:#b0bec5;display:flex;align-items:center;gap:.5rem}.price-value{font-size:1.1rem;font-weight:700;color:var(--color-text, #333)}@media(max-width:768px){.compare-page{padding:1rem .5rem}.compare-title{font-size:1.5rem;margin-bottom:1rem}.compare-table th{min-width:160px;padding:.5rem}.feature-label{min-width:100px;width:100px;font-size:.75rem;padding:.5rem;z-index:5;left:0}.compare-table thead th:first-child{min-width:100px;width:100px;left:0;z-index:20}.compare-img{height:100px}.compare-header-content h3{font-size:.9rem;margin:.2rem 0}.view-btn{padding:.3rem .6rem;font-size:.8rem}.compare-table td{padding:.5rem;font-size:.85rem}.remove-btn{width:20px;height:20px;font-size:1rem;top:-5px;right:-5px}.compare-group-row td{font-size:.7rem;padding:.5rem}}.admin-container{max-width:1000px;margin:0 auto;padding:20px}.admin-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:30px}.add-btn{background:var(--color-primary);color:#fff;border:none;padding:12px 24px;border-radius:8px;font-weight:600;cursor:pointer;transition:background .2s}.add-btn:hover{background:#143d24}.admin-table-container{background:#fff;border-radius:16px;box-shadow:var(--shadow-sm);overflow:hidden}.admin-table{width:100%;border-collapse:collapse}.admin-table th,.admin-table td{padding:16px 24px;text-align:left;border-bottom:1px solid #eee}.admin-table th{background:#f8f9fa;font-weight:600;color:var(--color-text)}.edit-btn,.delete-btn{padding:6px 12px;border-radius:4px;border:none;cursor:pointer;font-size:.9rem;margin-right:8px}.edit-btn{background:#e3f2fd;color:#1565c0}.delete-btn{background:#ffebee;color:#c62828}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000}.admin-form-modal{background:#fff;padding:30px;border-radius:16px;width:90%;max-width:500px;max-height:90vh;overflow-y:auto}.form-group{margin-bottom:20px}.form-group label{display:block;margin-bottom:8px;font-weight:500;color:var(--color-text)}.form-group input,.form-group textarea{width:100%;padding:10px;border:1px solid #ddd;border-radius:8px;font-family:var(--font-body)}.form-group textarea{height:100px}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:20px}.form-actions{display:flex;justify-content:flex-end;gap:12px;margin-top:30px}.cancel-btn{background:#f5f5f5;border:none;padding:10px 20px;border-radius:8px;cursor:pointer}.save-btn{background:var(--color-primary);color:#fff;border:none;padding:10px 20px;border-radius:8px;cursor:pointer}.admin-unlock-container{display:flex;align-items:center;justify-content:center;min-height:80vh}.unlock-card{background:#fff;padding:40px;border-radius:20px;box-shadow:var(--shadow-md);text-align:center;max-width:400px;width:100%}.unlock-card h2{margin-bottom:10px;color:var(--color-secondary)}.unlock-card p{color:#666;margin-bottom:30px}.unlock-card input{width:100%;padding:12px;border:1px solid #ddd;border-radius:8px;margin-bottom:20px;font-size:1rem;text-align:center}.unlock-btn{width:100%;padding:12px;background:var(--color-primary);color:#fff;border:none;border-radius:8px;font-weight:600;cursor:pointer;transition:transform .2s}.unlock-btn:hover{transform:translateY(-2px)}.error-msg{color:#c62828;background:#ffebee;padding:10px;border-radius:8px;margin-bottom:20px;font-size:.9rem}.logout-link{background:none;border:none;color:#666;text-decoration:underline;font-size:.9rem;cursor:pointer;padding:0;margin-top:5px}.logout-link:hover{color:var(--color-primary)}.events-page{display:flex;flex-direction:column;gap:28px}.events-header{text-align:center;margin-bottom:6px}.events-header h2{font-size:2rem;margin-bottom:20px}.events-header p{color:var(--color-text-light)}.filter-months{display:flex;flex-wrap:wrap;justify-content:center;gap:10px;margin-bottom:20px}.filter-btn{padding:10px 20px;border:1px solid transparent;background:var(--color-white);border-radius:30px;cursor:pointer;font-size:.95rem;font-weight:500;font-family:var(--font-body);transition:all .2s ease;color:var(--color-text);box-shadow:0 2px 4px #0000000d}.filter-btn:hover{background:#fff;box-shadow:0 4px 8px #0000001a;transform:translateY(-1px);color:var(--color-primary)}.filter-btn.active{background:var(--color-primary);color:var(--color-white);box-shadow:0 4px 8px #1a4d2e4d;transform:translateY(-1px)}.month-group{background:var(--color-white);border:1px solid #e7e1d3;border-radius:var(--radius-md);padding:22px;box-shadow:var(--shadow-sm)}.month-group h3{font-size:1.5rem;margin-bottom:14px;padding-bottom:8px;border-bottom:1px solid #ece7da}.month-events{display:grid;gap:32px}.event-card{border:1px solid #ece7da;border-radius:var(--radius-sm);background:#fffdf8;padding:0;display:flex;gap:0;align-items:stretch;overflow:hidden}.event-image-wrap{flex:0 0 400px;background:#f1ece0;border-radius:0}.event-image{width:100%;height:100%;object-fit:cover;display:block}.event-content{padding:24px;flex:1;display:flex;flex-direction:column;min-width:0}.event-header-row{margin-bottom:8px}.event-date-large{display:inline-block;color:var(--color-text-light);font-weight:700;font-size:.9rem;padding:0;margin-bottom:4px;letter-spacing:.5px;text-transform:uppercase}.event-title-large{font-size:1.4rem;margin:0 0 8px;color:var(--color-primary);line-height:1.3}.event-location{margin:0 0 12px;color:var(--color-text-light);font-size:1rem;display:flex;align-items:center;font-weight:500}.event-description{margin:0;color:var(--color-text);font-size:.95rem;line-height:1.55}.events-back-link{text-align:center;margin-top:4px}.events-back-link a{color:var(--color-primary);text-decoration:none;font-weight:600}.events-back-link a:hover{text-decoration:underline}@media(max-width:768px){.events-header h2{font-size:1.65rem}.month-group{padding:16px}.event-card{flex-direction:column;gap:0}.event-image-wrap{width:100%;flex:none;height:200px}.event-image{aspect-ratio:auto;height:100%}.event-card-top{flex-direction:column;gap:6px}.event-date{white-space:normal}}.villages-page,.village-detail-page{font-family:var(--font-body, system-ui, -apple-system, sans-serif);background-color:#fcfcfc;padding-bottom:80px;min-height:100vh;color:#222}.villages-hero{position:relative;height:40vh;min-height:300px;display:flex;align-items:center;justify-content:center;text-align:center;color:#fff;margin-bottom:60px;overflow:hidden;background-color:#2e3b32}.villages-hero:before{content:"";position:absolute;top:0;left:0;width:100%;height:100%;background-image:url(/images/resort-ubud.png);background-size:cover;background-position:center;filter:brightness(.6);z-index:1}.villages-hero-content{position:relative;z-index:2;padding:0 20px;max-width:800px}.villages-hero-content h2{font-size:3.5rem;font-weight:700;margin-bottom:1rem;font-family:var(--font-heading, serif);letter-spacing:-.5px;text-shadow:0 2px 8px rgba(0,0,0,.5);color:#fff}.villages-hero-content p{font-size:1.25rem;font-weight:400;color:#f0f0f0;max-width:600px;margin:0 auto;text-shadow:0 1px 4px rgba(0,0,0,.5)}.villages-container{max-width:1000px;margin:-40px auto 0;padding:0 24px;position:relative;z-index:5}.region-filters{display:flex;flex-wrap:wrap;justify-content:center;gap:10px;margin-bottom:40px;background:#fff;padding:16px;border-radius:50px;box-shadow:0 10px 30px #00000014;width:fit-content;margin-left:auto;margin-right:auto;border:1px solid #eee}.region-filter-btn{padding:10px 24px;border:none;background:transparent;border-radius:30px;cursor:pointer;font-size:.95rem;color:#444;font-weight:600;transition:all .2s ease}.region-filter-btn:hover{color:var(--color-primary, #1A4D2E);background-color:#f0f7f4}.region-filter-btn.active{background-color:var(--color-primary, #1A4D2E);color:#fff;box-shadow:0 4px 12px #1a4d2e4d}.villages-grid{display:flex;flex-direction:column;gap:32px}.village-card{display:flex;background:#fff;border-radius:16px;overflow:hidden;text-decoration:none;color:#333;box-shadow:0 2px 10px #0000000a;transition:all .3s cubic-bezier(.25,.46,.45,.94);border:1px solid rgba(0,0,0,.05);min-height:280px}.village-card:hover{transform:translateY(-5px);box-shadow:0 15px 35px #0000001a}.village-card-image{flex:0 0 40%;position:relative;overflow:hidden;background-color:#eee}.village-card-image img{width:100%;height:100%;object-fit:cover;transition:transform .6s ease}.village-card:hover .village-card-image img{transform:scale(1.05)}.village-card-content{flex:1;padding:32px;display:flex;flex-direction:column;justify-content:center;text-align:left}.village-card-header h3{margin:0 0 8px;font-size:2rem;color:var(--color-primary, #1A4D2E);font-family:var(--font-heading, serif);font-weight:700;line-height:1.2}.village-tagline{font-size:1.1rem;color:var(--color-accent, #E07A5F);font-style:italic;font-weight:500;margin-bottom:16px;font-family:serif}.village-desc{font-size:1.05rem;color:#444;line-height:1.7;margin-bottom:24px}.village-card-footer{font-weight:700;font-size:.95rem;color:var(--color-primary, #1A4D2E);margin-top:auto}@media(max-width:850px){.village-card{flex-direction:column;height:auto}.village-card-image{flex:none;height:240px;width:100%}.village-card-content{padding:24px}.villages-hero-content h2{font-size:2.5rem}}.village-detail-hero{position:relative;height:60vh;min-height:400px;background-size:cover;background-position:center;background-attachment:scroll;display:flex;align-items:center;justify-content:center;text-align:center;color:#fff;margin-bottom:60px;background-color:#2e3b32}.village-detail-hero-overlay{position:absolute;top:0;left:0;right:0;bottom:0;background:linear-gradient(to bottom,#0000004d,#000000b3);z-index:1}.village-detail-hero-content{position:relative;z-index:2;padding:0 20px;max-width:900px}.village-detail-region{display:inline-block;padding:6px 16px;background:#ffffff40;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);border:1px solid rgba(255,255,255,.5);border-radius:30px;font-size:.9rem;font-weight:700;letter-spacing:1px;margin-bottom:16px;text-transform:uppercase;color:#fff;text-shadow:0 1px 3px rgba(0,0,0,.3)}.village-detail-hero-content h1{font-size:4rem;font-family:var(--font-heading, serif);font-weight:700;margin-bottom:20px;line-height:1.1;color:#fff;text-shadow:0 4px 12px rgba(0,0,0,.4)}.village-detail-tagline{font-size:1.5rem;font-weight:400;opacity:.95;font-style:italic;font-family:serif;color:#fcfcfc;text-shadow:0 2px 4px rgba(0,0,0,.5)}.village-detail-container{max-width:1100px;margin:0 auto;padding:0 24px}.village-intro-section{max-width:800px;margin:0 auto 60px;text-align:center}.village-about h2{font-size:2.5rem;font-family:var(--font-heading, serif);color:var(--color-primary, #1A4D2E);margin-bottom:24px}.village-about .village-detail-description{font-size:1.2rem;line-height:1.8;color:#222;font-weight:400}.village-summary-meta{margin-top:30px;display:flex;justify-content:center}.meta-box{background:#fff;padding:16px 30px;border-radius:40px;border:1px solid #e0e0e0;display:inline-flex;align-items:center;gap:12px;box-shadow:0 2px 8px #00000008}.meta-label{font-weight:700;text-transform:uppercase;font-size:.8rem;color:var(--color-primary, #1A4D2E);letter-spacing:1px}.meta-value{color:#111;font-weight:600;font-size:1rem}.village-resorts-section{padding-top:50px;border-top:1px solid #eaeaea}.village-resorts-section h2{font-family:var(--font-heading, serif);font-size:2.2rem;text-align:center;margin-bottom:40px;color:#111}.village-resorts-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:30px}.resort-mini-card{background:#fff;border-radius:12px;overflow:hidden;text-decoration:none!important;color:#333!important;box-shadow:0 4px 15px #0000000d;transition:transform .3s ease,box-shadow .3s ease;border:1px solid #f0f0f0;display:flex;flex-direction:column}.resort-mini-card:hover{transform:translateY(-5px);box-shadow:0 12px 25px #0000001f}.resort-mini-image{height:220px;position:relative;overflow:hidden;background-color:#eee}.resort-mini-image img{width:100%;height:100%;object-fit:cover;transition:transform .5s}.resort-mini-card:hover .resort-mini-image img{transform:scale(1.08)}.resort-stars{position:absolute;bottom:12px;left:12px;background:#000c;color:gold;padding:4px 8px;border-radius:4px;font-size:.85rem;font-weight:700;box-shadow:0 2px 4px #0003}.resort-mini-content{padding:24px;flex:1;display:flex;flex-direction:column}.resort-mini-content h3{margin:0 0 8px;font-size:1.25rem;color:var(--color-primary, #1A4D2E);font-family:var(--font-heading, serif);font-weight:700;line-height:1.3}.resort-price-range{font-size:.95rem;color:#555;margin-bottom:20px;font-weight:500}.view-btn{color:#fff!important;background-color:var(--color-primary, #1A4D2E);font-weight:600;font-size:.9rem;text-transform:uppercase;letter-spacing:1px;display:inline-flex;align-items:center;justify-content:center;padding:12px 20px;border-radius:6px;margin-top:16px;transition:background-color .2s;text-align:center}.view-btn:hover{background-color:#143d24;text-decoration:none}.view-btn:after{content:"→";margin-left:8px;color:#fff}.resort-mini-card:hover .view-btn:after{margin-left:10px}.no-resorts-found{text-align:center;padding:60px 20px;background:#f9f9f9;border-radius:12px;border:1px dashed #ddd}.no-resorts-found p{font-size:1.2rem;color:#555;margin-bottom:20px}.browse-other-btn{display:inline-block;padding:12px 28px;background:var(--color-primary, #1A4D2E);color:#fff!important;text-decoration:none;border-radius:6px;font-weight:600;transition:background .2s}.browse-other-btn:hover{background:#143d24}.back-link-wrapper{text-align:center;margin-top:60px;margin-bottom:20px}.back-btn{color:#555;text-decoration:none;font-weight:600;border-bottom:2px solid transparent;transition:all .2s;font-size:.95rem}.back-btn:hover{color:var(--color-primary, #1A4D2E);border-bottom-color:var(--color-primary, #1A4D2E)}@media(max-width:768px){.village-detail-hero h1{font-size:2.5rem}}.village-sights-section{padding:0 20px;max-width:1200px;margin:40px auto}.village-sights-section h2{text-align:center;font-size:2rem;margin-bottom:24px;color:#333}.village-sights-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:20px}.sight-card{background:#fff;border-radius:12px;overflow:hidden;box-shadow:0 4px 12px #00000014;display:flex;flex-direction:column;transition:transform .2s;border:1px solid #eee}.sight-card:hover{transform:translateY(-4px);box-shadow:0 8px 16px #0000001f}.sight-content{padding:20px;flex-grow:1}.sight-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:10px}.sight-content h4{margin:0;font-size:1.1rem;color:#222;padding-right:10px;line-height:1.3}.sight-type-badge{display:inline-block;font-size:.75rem;text-transform:uppercase;background-color:#f0f0f0;color:#555;padding:4px 8px;border-radius:4px;font-weight:600;letter-spacing:.5px;white-space:nowrap}.sight-desc{font-size:.95rem;color:#555;line-height:1.5;margin:0}.app-container{max-width:1200px;margin:0 auto;padding:40px 20px;min-height:100vh;display:flex;flex-direction:column}.app-header{text-align:center;margin-bottom:40px;position:relative}.header-nav-links{position:absolute;top:0;right:0;display:flex;gap:4px}.header-calendar-link{display:inline-flex;align-items:center;gap:6px;text-decoration:none;color:var(--color-text);font-size:.9rem;font-weight:500;padding:8px 12px;border-radius:20px;transition:all .2s ease;border:1px solid transparent}.header-calendar-link:hover{color:var(--color-primary);background-color:#00000005;border-color:#0000000d}.calendar-icon{font-size:1.1rem}@media(max-width:768px){.header-villages-link{display:none}.app-header{margin-bottom:20px}.header-calendar-link{padding:8px}.calendar-text{display:none}.calendar-icon{font-size:1.5rem}}.logo{font-family:var(--font-heading);font-size:3rem;font-weight:700;color:var(--color-primary);letter-spacing:-1px;margin-bottom:10px}.subtitle{font-size:1.2rem;color:var(--color-text-light);font-weight:300}.filter-section{margin-bottom:30px}@media(max-width:768px){.filter-section{margin-bottom:15px}}.resorts-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(380px,1fr));gap:30px;flex-grow:1}.resorts-grid.resorts-list{grid-template-columns:1fr;gap:22px}@media(min-width:769px){.resorts-grid.resorts-list{gap:36px}}.loading,.no-results{grid-column:1 / -1;text-align:center;padding:50px;color:var(--color-text-light);font-size:1.2rem}.no-results h3{font-size:2rem;margin-bottom:10px;color:var(--color-primary)}.clear-filters-btn{margin-top:20px;background:var(--color-accent);color:#fff;border:none;padding:10px 25px;border-radius:50px;font-size:1rem}.clear-filters-btn:hover{background:#c9654b}.app-footer{margin-top:80px;text-align:center;padding:40px 20px;color:var(--color-text-light);font-size:.9rem;border-top:1px solid #eee}.footer-links{display:flex;justify-content:center;gap:30px;margin-bottom:20px}.footer-links a{color:var(--color-text-light);text-decoration:none;font-weight:500;transition:color .2s}.footer-links a:hover{color:var(--color-primary)}.mobile-only-filters{display:none}.compare-fab{position:fixed;bottom:30px;right:30px;background:var(--color-accent);color:#fff;border:none;padding:14px 28px;border-radius:50px;font-size:1rem;font-weight:600;font-family:var(--font-body);cursor:pointer;box-shadow:0 4px 15px #00000040;z-index:1000;transition:transform .2s,box-shadow .2s}.compare-fab:hover{transform:translateY(-2px);box-shadow:0 6px 20px #0000004d}@media(max-width:768px){.app-container{padding:20px 25px}.logo{font-size:2.5rem}.resorts-grid{grid-template-columns:1fr}.mobile-only-filters{display:flex;justify-content:center;gap:12px;margin-bottom:30px;position:sticky;top:10px;z-index:900}.mobile-filter-btn{display:flex;align-items:center;gap:8px;background:#fff;border:1px solid var(--color-primary);padding:10px 20px;border-radius:50px;font-family:var(--font-body);font-weight:500;color:var(--color-primary);box-shadow:var(--shadow-sm);font-size:.9rem;white-space:nowrap}.mobile-filter-btn.primary{background:var(--color-primary);color:#fff}.filter-badge{background:var(--color-accent);color:#fff;font-size:.7rem;width:18px;height:18px;border-radius:50%;display:flex;align-items:center;justify-content:center}}@media(max-width:768px){.app-container{padding:20px 15px}}.policy-page{max-width:800px;margin:40px auto;padding:40px;background:#fff;border-radius:var(--radius-md);box-shadow:var(--shadow-sm);line-height:1.8}.policy-page h1{font-size:2.5rem;margin-bottom:20px;color:var(--color-primary)}.policy-page h2{font-size:1.5rem;margin-top:40px;margin-bottom:15px}.policy-page p{margin-bottom:20px;color:var(--color-text)}.policy-page ul{margin-bottom:20px;padding-left:20px}.last-updated{font-size:.9rem;color:var(--color-text-light);font-style:italic;border-bottom:1px solid #eee;padding-bottom:20px}@media(max-width:768px){.policy-page{margin:20px;padding:20px}}
