.vl-page{--vl-cream:#faf7f2;--vl-ch100:#f3ece2;--vl-ch200:#e8dfd2;--vl-ch400:#d4b896;--vl-ch600:#a89276;--vl-rose50:#faf2f0;--vl-rose400:#cfa39a;--vl-rose600:#b07d73;--vl-sage50:#f1f4f0;--vl-sage600:#62755e;--vl-ink:#36322e;--vl-sub:#9e968e;--vl-border:rgba(168,146,118,.22);--vl-shadow:0 8px 24px rgba(168,146,118,.08);--vl-shadow-md:0 16px 40px rgba(168,146,118,.12);--vl-radius:14px;--vl-serif:"Cormorant Garamond","Noto Serif TC",Georgia,serif;--vl-sans:"PingFang HK","Noto Sans TC",-apple-system,BlinkMacSystemFont,sans-serif;background:var(--vl-cream);min-height:100vh;color:var(--vl-ink);font-family:var(--vl-sans);-webkit-font-smoothing:antialiased}.vl-container{max-width:1200px;margin:0 auto;padding:0 0 3rem}.vl-header{padding:28px 20px 8px}@media (min-width:768px){.vl-header{padding:36px 40px 12px}}.vl-title{font-family:var(--vl-serif);letter-spacing:.02em;color:var(--vl-ink);margin:0 0 .4rem;font-size:max(1.75rem,min(4vw,2.25rem));font-weight:400;line-height:1.25}.vl-title em{color:var(--vl-rose600);font-style:italic;font-weight:400}.vl-subtitle{color:var(--vl-sub);white-space:normal;max-width:100%;margin:0;font-size:.9rem;line-height:1.6}@media (min-width:768px){.vl-subtitle{white-space:nowrap}}.vl-filter-wrap{margin-bottom:.25rem;padding:16px 20px 8px}@media (min-width:768px){.vl-filter-wrap{padding:20px 40px 12px}}.vl-filter-card{border:1px solid var(--vl-border);border-radius:var(--vl-radius);box-shadow:var(--vl-shadow);background:#fff;flex-direction:column;gap:14px;padding:16px;display:flex}@media (min-width:768px){.vl-filter-card{gap:16px;padding:18px 20px}}.vl-search-row{position:relative}.vl-search-icon{width:1.1rem;height:1.1rem;color:var(--vl-ch600);pointer-events:none;position:absolute;top:50%;left:14px;transform:translateY(-50%)}.vl-search-input{border:1.5px solid var(--vl-border);background:var(--vl-cream);width:100%;color:var(--vl-ink);border-radius:999px;outline:none;padding:13px 16px 13px 44px;font-family:inherit;font-size:.9rem;transition:border-color .2s,box-shadow .2s,background .2s}.vl-search-input::placeholder{color:var(--vl-sub)}.vl-search-input:focus{border-color:var(--vl-ch400);background:#fff;box-shadow:0 0 0 3px rgba(212,184,150,.25)}.vl-filter-row{flex-direction:column;gap:8px;display:flex}.vl-filter-row-label{letter-spacing:.06em;color:var(--vl-ch600);text-transform:uppercase;flex-wrap:wrap;align-items:center;gap:8px;font-size:.7rem;font-weight:700;display:flex}.vl-filter-hint{text-transform:none;letter-spacing:0;color:var(--vl-sub);font-size:.7rem;font-weight:500}.vl-region-path{flex-wrap:wrap;align-items:center;gap:2px;display:inline-flex}.vl-region-sep{opacity:.55;margin:0 4px}.vl-region-crumb{font:inherit;color:var(--vl-ch600);cursor:pointer;background:0 0;border:0;padding:0}.vl-region-crumb:hover{text-decoration:underline}.vl-chips{flex-wrap:wrap;gap:7px;display:flex}.vl-chip{color:var(--vl-ink);background:var(--vl-ch100);white-space:nowrap;-webkit-user-select:none;-moz-user-select:none;user-select:none;cursor:pointer;border:1.5px solid transparent;border-radius:999px;align-items:center;gap:5px;padding:7px 14px;font-family:inherit;font-size:.82rem;font-weight:500;transition:all .18s;display:inline-flex}.vl-chip:hover{background:var(--vl-ch200)}.vl-chip.active{background:var(--vl-ink);color:var(--vl-cream);border-color:var(--vl-ink)}.vl-chip.multi.active{background:var(--vl-rose50);color:var(--vl-rose600);border-color:var(--vl-rose400)}.vl-chip.multi.active:after{content:"✓";margin-left:2px;font-size:.7rem;font-weight:700}.vl-chip.region.active{background:var(--vl-sage50);color:var(--vl-sage600);border-color:rgba(98,117,94,.35)}.vl-chip.guest.active{color:var(--vl-ch600);border-color:var(--vl-ch400);background:rgba(168,146,118,.18)}.vl-adaptive-panel{border-top:1px dashed var(--vl-border);flex-direction:column;gap:8px;padding-top:4px;animation:.25s vl-fade-slide;display:none}.vl-adaptive-panel.show{display:flex}@keyframes vl-fade-slide{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)}}.vl-guest-controls{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.vl-guest-input-wrap{background:var(--vl-cream);border:1.5px solid var(--vl-border);color:var(--vl-sub);border-radius:999px;align-items:center;gap:6px;padding:6px 12px;font-size:.82rem;display:inline-flex}.vl-guest-input-wrap:focus-within{border-color:var(--vl-ch400);box-shadow:0 0 0 3px rgba(212,184,150,.2)}.vl-guest-input-wrap input{width:56px;color:var(--vl-ink);text-align:center;background:0 0;border:none;outline:none;font-family:inherit;font-size:.82rem;font-weight:600}.vl-guest-input-wrap input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.vl-guest-input-wrap input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.vl-guest-input-wrap input[type=number]{-webkit-appearance:textfield;-moz-appearance:textfield;appearance:textfield}.vl-active-bar{flex-wrap:wrap;align-items:center;gap:8px;padding-top:4px;display:none}.vl-active-bar.show{display:flex}.vl-active-bar-label{color:var(--vl-sub);font-size:.75rem;font-weight:500}.vl-active-chip{background:var(--vl-rose50);color:var(--vl-rose600);border:1px solid rgba(207,163,154,.4);border-radius:999px;align-items:center;gap:5px;padding:4px 10px 4px 12px;font-size:.75rem;font-weight:500;display:inline-flex}.vl-active-chip button{width:16px;height:16px;color:var(--vl-rose600);cursor:pointer;background:0 0;border:none;border-radius:50%;place-items:center;padding:0;transition:background .15s;display:grid}.vl-active-chip button:hover{background:rgba(176,125,115,.2)}.vl-clear-all{color:var(--vl-ch600);cursor:pointer;background:0 0;border:none;border-radius:6px;padding:4px 10px;font-family:inherit;font-size:.75rem;font-weight:600;transition:background .15s}.vl-clear-all:hover{background:var(--vl-ch100);text-decoration:underline}.vl-results-meta{justify-content:space-between;align-items:baseline;gap:12px;padding:16px 20px 8px;display:flex}@media (min-width:768px){.vl-results-meta{padding:18px 40px 10px}}.vl-results-count{color:var(--vl-sub);font-size:.9rem}.vl-results-count strong{color:var(--vl-ink);font-weight:700}.vl-sort-hint{color:var(--vl-sub);font-size:.75rem}.vl-grid-wrap{padding:8px 20px 48px}@media (min-width:768px){.vl-grid-wrap{padding:8px 40px 64px}}.vl-grid{grid-template-columns:1fr;gap:16px;display:grid}@media (min-width:560px){.vl-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}}@media (min-width:960px){.vl-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}}@media (min-width:1100px){.vl-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}.vl-card{border:1px solid var(--vl-border);border-radius:var(--vl-radius);box-shadow:var(--vl-shadow);background:#fff;flex-direction:column;height:100%;transition:transform .22s,box-shadow .22s;animation:.35s both vl-card-in;display:flex;overflow:hidden}.vl-card:hover{box-shadow:var(--vl-shadow-md);transform:translateY(-3px)}@keyframes vl-card-in{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.vl-card-media-link{text-decoration:none;display:block}.vl-card-media{aspect-ratio:4/3;background:var(--vl-ch100);position:relative;overflow:hidden}.vl-card-img,.vl-card-img-placeholder{object-fit:cover;width:100%;height:100%}.vl-card-img-placeholder{color:var(--vl-sub);justify-content:center;align-items:center;font-size:.9rem;display:flex}.vl-card-featured{color:#fff;z-index:2;background:rgba(176,125,115,.92);border-radius:999px;padding:.2rem .55rem;font-size:.7rem;font-weight:600;position:absolute;top:.65rem;left:.65rem}.vl-card-fav{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);cursor:pointer;width:34px;height:34px;color:var(--vl-sub);z-index:2;background:rgba(255,255,255,.9);border:none;border-radius:50%;place-items:center;transition:all .18s;display:grid;position:absolute;top:10px;right:10px;box-shadow:0 2px 8px rgba(0,0,0,.08)}.vl-card-fav:hover,.vl-card-fav.is-liked{color:var(--vl-rose600);background:#fff}.vl-card-cat-badge{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);color:#fff;letter-spacing:.04em;z-index:2;text-overflow:ellipsis;white-space:nowrap;background:rgba(54,50,46,.72);border-radius:999px;max-width:calc(100% - 5rem);padding:3px 10px;font-size:.7rem;font-weight:600;position:absolute;bottom:10px;left:10px;overflow:hidden}.vl-card-source{color:#fff;text-align:right;white-space:nowrap;text-overflow:ellipsis;z-index:2;background:rgba(0,0,0,.45);border-radius:.35rem;max-width:calc(100% - 1.1rem);padding:.25rem .5rem;font-size:.68rem;line-height:1.3;position:absolute;bottom:.55rem;left:auto;right:.55rem;overflow:hidden}.vl-card-status{background:#fff;justify-content:flex-end;min-height:0;padding:.4rem 1rem 0;display:flex}.vl-status{color:var(--vl-ink);align-items:center;gap:.35rem;font-size:.72rem;font-weight:500;line-height:1;display:inline-flex}.vl-status-dot{border-radius:50%;flex-shrink:0;width:.55rem;height:.55rem;box-shadow:inset 0 1px 1px rgba(255,255,255,.55),0 1px 2px rgba(0,0,0,.12)}.vl-status--green .vl-status-dot{background:radial-gradient(circle at 32% 28%,#86efac,#22c55e 68%)}.vl-status--yellow .vl-status-dot{background:radial-gradient(circle at 32% 28%,#fde68a,#eab308 68%)}.vl-status--orange .vl-status-dot{background:radial-gradient(circle at 32% 28%,#fdba74,#f97316 68%)}.vl-status--red .vl-status-dot{background:radial-gradient(circle at 32% 28%,#fca5a5,#ef4444 68%)}.vl-status--black .vl-status-dot{background:radial-gradient(circle at 32% 28%,#6b7280,#1f2937 68%)}.vl-card-body{flex-direction:column;flex:1;gap:8px;padding:14px 14px 16px;display:flex}.vl-card-name{font-family:var(--vl-serif);letter-spacing:.01em;color:var(--vl-ink);margin:0;font-size:1.15rem;font-weight:400;line-height:1.3}.vl-card-name a{color:inherit;text-decoration:none}.vl-card-name a:hover{color:var(--vl-rose600)}.vl-card-meta-row{color:var(--vl-sub);flex-wrap:wrap;align-items:center;gap:6px 10px;font-size:.75rem;display:flex}.vl-card-meta-dot{background:var(--vl-ch400);border-radius:50%;width:3px;height:3px}.vl-card-capacity{color:var(--vl-ch600);background:var(--vl-ch100);border-radius:999px;align-items:center;gap:4px;padding:2px 8px;font-size:.75rem;font-weight:600;display:inline-flex}.vl-card-summary{color:var(--vl-sub);-webkit-line-clamp:2;-webkit-box-orient:vertical;margin:0;font-size:.82rem;line-height:1.5;display:-webkit-box;overflow:hidden}.vl-card-tags{flex-wrap:wrap;gap:5px;margin-top:2px;display:flex}.vl-card-tag{background:var(--vl-cream);border:1px solid var(--vl-border);color:var(--vl-ch600);border-radius:999px;padding:3px 8px;font-size:.7rem;font-weight:500}.vl-card-footer{border-top:1px dashed var(--vl-border);justify-content:space-between;align-items:center;gap:.75rem;margin-top:auto;padding-top:10px;display:flex}.vl-card-price{color:var(--vl-ink);font-size:.82rem;font-weight:600}.vl-card-price span{color:var(--vl-sub);font-size:.7rem;font-weight:500}.vl-card-btn,.vl-card-link{background:var(--vl-ink);color:var(--vl-cream);letter-spacing:.03em;white-space:nowrap;border-radius:999px;padding:7px 14px;font-size:.75rem;font-weight:600;text-decoration:none;transition:background .18s,transform .15s}.vl-card-btn:hover,.vl-card-link:hover{background:var(--vl-rose600);color:var(--vl-cream)}.vl-empty{text-align:center;border:1px dashed var(--vl-border);border-radius:var(--vl-radius);background:#fff;grid-column:1/-1;padding:56px 24px}.vl-empty-emoji{opacity:.7;margin-bottom:12px;font-size:2.25rem}.vl-empty h3{font-family:var(--vl-serif);color:var(--vl-ink);margin:0 0 6px;font-size:1.4rem;font-weight:400}.vl-empty p{color:var(--vl-sub);margin:0 0 16px;font-size:.9rem}.vl-clear-btn{background:var(--vl-ch100);color:var(--vl-ch600);border:1px solid var(--vl-border);cursor:pointer;border-radius:999px;padding:8px 18px;font-family:inherit;font-size:.82rem;font-weight:600}.vl-clear-btn:hover{background:var(--vl-ch200)}.vl-pagination{flex-wrap:wrap;justify-content:center;gap:.5rem;padding:0 20px 24px;display:flex}@media (min-width:768px){.vl-pagination{padding:0 40px 32px}}.vl-page-btn{border:1px solid var(--vl-border);min-width:2.4rem;height:2.4rem;color:var(--vl-ink);cursor:pointer;background:#fff;border-radius:999px;padding:0 .75rem;font-family:inherit;font-size:.85rem;font-weight:500;transition:background .15s,border-color .15s,color .15s}.vl-page-btn:hover:not(:disabled){background:var(--vl-ch100);border-color:var(--vl-ch400)}.vl-page-btn.active{background:var(--vl-ink);border-color:var(--vl-ink);color:var(--vl-cream)}.vl-page-btn:disabled{opacity:.4;cursor:not-allowed}
