:root{--bg:#faf8f6;--surface:#ffffff;--surface-2:#f3efe9;--text:#1d1a16;--text-2:#6f675c;--border:#e7e0d6;--accent-1:#ff6b4a;--accent-2:#f59e0b;--deal:#1a7f4b;--deal-bg:#e6f5ec;--chip-bg:#f3efe9;--shadow:0 2px 10px rgba(29,26,22,0.07);--shadow-hover:0 8px 24px rgba(29,26,22,0.12)}[data-theme=dark]{--bg:#16130f;--surface:#221e19;--surface-2:#2b2620;--text:#f3efe9;--text-2:#b3a898;--border:#3a342c;--deal:#4cc984;--deal-bg:#173527;--chip-bg:#2b2620;--shadow:0 2px 10px rgba(0,0,0,0.35);--shadow-hover:0 8px 24px rgba(0,0,0,0.5)}*{box-sizing:border-box}body,html{margin:0;padding:0}body{background:var(--bg);color:var(--text);font-family:ui-sans-system,system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif;line-height:1.45}a{color:inherit;text-decoration:none}.site-header{position:-webkit-sticky;position:sticky;top:0;z-index:20;background:var(--surface);border-bottom:1px solid var(--border)}.header-inner{max-width:1180px;margin:0 auto;padding:10px 16px;display:flex;align-items:center;gap:20px}.brand{font-size:22px;font-weight:800;letter-spacing:-.02em}.main-nav{display:flex;gap:6px}.nav-link{padding:6px 12px;border-radius:999px;color:var(--text-2);font-weight:600;font-size:15px}.nav-link-active{color:var(--text);background:var(--surface-2)}.header-actions{margin-left:auto;display:flex;align-items:center;gap:10px}.icon-btn{width:38px;height:38px;border-radius:999px;border:1px solid var(--border);background:var(--surface);color:var(--text);font-size:17px;cursor:pointer}.page{max-width:1180px;margin:0 auto;padding:18px 16px 48px}.site-footer{border-top:1px solid var(--border);padding:22px 16px 34px;text-align:center;color:var(--text-2);font-size:14px}.btn-primary{display:inline-block;border:none;cursor:pointer;background:linear-gradient(135deg,var(--accent-1),var(--accent-2));color:#fff;font-weight:700;font-size:16px;padding:13px 22px;border-radius:12px;box-shadow:var(--shadow)}.btn-primary:hover{filter:brightness(1.04)}.btn-small{font-size:14px;padding:9px 16px;border-radius:999px}.btn-ghost{display:inline-block;border:1px solid var(--border);background:var(--surface);color:var(--text);font-weight:600;padding:11px 20px;border-radius:12px;cursor:pointer}.loc-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:2px 0 10px}.loc-label{font-weight:700;font-size:15px}.loc-clear{border:none;background:none;color:var(--text-2);font-size:14px;font-weight:600;cursor:pointer;padding:4px 2px;text-decoration:underline}.gps-error{color:#b3261e;font-size:13.5px;margin:0 0 10px}.search-row{display:flex;gap:10px;margin:6px 0 14px}.search-wrap{position:relative;flex:1 1}.search-wrap .search-input{width:100%}.suggest{position:absolute;top:calc(100% + 6px);left:0;right:0;background:var(--surface);border:1px solid var(--border);border-radius:12px;box-shadow:var(--shadow-hover);z-index:40;overflow:hidden;max-height:70vh;overflow-y:auto}.suggest-item{display:flex;flex-direction:column;gap:1px;width:100%;text-align:left;padding:10px 14px;border:none;background:none;color:var(--text);cursor:pointer;font:inherit}.suggest-item:focus,.suggest-item:hover{background:var(--surface-2)}.suggest-title{font-weight:600;font-size:15px}.suggest-sub{color:var(--text-2);font-size:13px}.suggest-head{padding:9px 14px 3px;font-size:11.5px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--text-2)}.suggest-note{padding:10px 14px;color:var(--text-2);font-size:13px}button.rail-chip{cursor:pointer;font:inherit}.distance-row{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin:2px 0 10px}.distance-label{font-weight:700;font-size:14px;margin-right:2px}.splurge{margin-top:34px}.splurge h2{font-size:19px;margin:0 0 12px}.splurge-rail{display:flex;gap:16px;overflow-x:auto;padding:2px 1px 12px;scrollbar-width:none}.splurge-rail::-webkit-scrollbar{display:none}.splurge-rail .card{flex:0 0 262px}.search-input{flex:1 1;font-size:16px;padding:13px 16px;border-radius:12px;border:1px solid var(--border);background:var(--surface);color:var(--text)}.search-input:focus{outline:2px solid var(--accent-2);outline-offset:0}.chip-rail{display:flex;gap:8px;overflow-x:auto;padding:4px 1px 10px;scrollbar-width:none}.chip-rail::-webkit-scrollbar{display:none}.rail-chip{flex:0 0 auto;padding:7px 13px;border-radius:999px;border:1px solid var(--border);background:var(--surface);font-size:14px;font-weight:600;color:var(--text-2);white-space:nowrap}.rail-chip.on{background:var(--text);color:var(--bg);border-color:var(--text)}.rail-chip .n{opacity:.65;font-weight:500;margin-left:4px}.basis-strip{color:var(--text-2);font-size:13.5px;margin:2px 0 8px}.results-line{font-size:15px;font-weight:600;margin:6px 0 14px}.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(255px,1fr));grid-gap:18px;gap:18px}.card{background:var(--surface);border:1px solid var(--border);border-radius:16px;overflow:hidden;box-shadow:var(--shadow);display:flex;flex-direction:column;transition:box-shadow .15s ease,transform .15s ease}.card:hover{box-shadow:var(--shadow-hover);transform:translateY(-2px)}.card-media{position:relative;aspect-ratio:16/10;background:var(--surface-2)}.photo{height:100%}.photo,.photo-large{width:100%;object-fit:cover;display:block}.photo-large{max-height:440px;border-radius:16px}.panel{position:absolute;inset:0;gap:10px}.panel,.panel-large{display:flex;flex-direction:column;align-items:center;justify-content:center;background:radial-gradient(circle at 30% 20%,rgba(255,107,74,.14),transparent 55%),radial-gradient(circle at 75% 85%,rgba(245,158,11,.16),transparent 55%),var(--surface-2)}.panel-large{position:relative;min-height:300px;border-radius:16px;gap:12px}.panel-medallion{width:54px;height:54px;border-radius:999px;border:3px solid var(--accent-1);outline:3px solid rgba(245,158,11,.55);outline-offset:5px;background:var(--surface)}.panel-large .panel-medallion{width:76px;height:76px}.panel-text{display:flex;flex-direction:column;align-items:center;gap:1px}.panel-category{font-weight:700;font-size:15px}.panel-metro{color:var(--text-2);font-size:13px}.card-body{padding:13px 15px 15px;display:flex;flex-direction:column;gap:5px;flex:1 1}.card-title{font-size:16.5px;font-weight:700;margin:0;line-height:1.3}.card-sub{margin:0;color:var(--text-2);font-size:13.5px}.card-price{display:flex;align-items:baseline;gap:8px;margin-top:2px}.price-label{font-weight:700;font-size:15px}.was-price{color:var(--text-2);text-decoration:line-through;font-size:13.5px}.deal-note{color:var(--deal);background:var(--deal-bg);font-size:13px;padding:6px 9px;border-radius:8px}.card-dates,.deal-note{margin:0;font-weight:600}.card-dates{font-size:13.5px}.card-foot{margin-top:auto;padding-top:8px;display:flex;align-items:center;gap:10px;flex-wrap:wrap}.chip{font-size:12px;font-weight:700;padding:4px 9px;border-radius:999px}.chip-cat{background:var(--chip-bg);color:var(--text-2)}.chip-value{left:10px;background:var(--text);color:var(--bg)}.chip-event,.chip-value{position:absolute;top:10px}.chip-event{right:10px;background:var(--accent-1);color:#fff}.distance{font-size:12.5px;color:var(--text-2)}.show-more{display:flex;justify-content:center;margin-top:26px}.empty-state{text-align:center;padding:44px 16px;color:var(--text-2)}.empty-state h2{color:var(--text);margin:0 0 8px}.expired-section{margin-top:40px;opacity:.55;filter:grayscale(.5)}.expired-section h2{font-size:18px}.back-link{color:var(--text-2);font-weight:600;font-size:14.5px}.detail-head{margin:14px 0 6px}.detail-title{font-size:30px;font-weight:800;letter-spacing:-.02em;margin:8px 0 4px;line-height:1.15}.detail-sub{color:var(--text-2);margin:0}.detail-chips{display:flex;gap:8px;flex-wrap:wrap;margin:12px 0}.detail-chips .chip{background:var(--chip-bg);color:var(--text-2);position:static}.detail-chips .chip-value-static{background:var(--text);color:var(--bg)}.detail-price{display:flex;align-items:baseline;gap:10px;margin:10px 0 16px}.detail-price .price-label{font-size:20px}.detail-desc{font-size:16.5px;max-width:72ch}.detail-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));grid-gap:14px;gap:14px;margin-top:22px}.detail-item{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:13px 15px}.detail-item h4{margin:0 0 5px;font-size:13px;text-transform:uppercase;letter-spacing:.05em;color:var(--text-2)}.detail-item p{margin:0;font-size:14.5px}.expired-banner{background:var(--surface-2);border:1px solid var(--border);color:var(--text-2);border-radius:12px;padding:12px 15px;font-weight:600;margin:14px 0}.error-box{background:var(--surface);border:1px solid var(--border);border-radius:16px;padding:28px;text-align:center}.error-box code{background:var(--surface-2);padding:2px 7px;border-radius:6px}