.tour-card{background:var(--ground);border-radius:var(--radius-md);border:1px solid var(--line);min-width:0;box-shadow:var(--shadow-card);transition:box-shadow .2s var(--ease-out), transform .2s var(--ease-out), border-color .2s var(--ease-out);color:inherit;flex-direction:column;display:flex;position:relative;overflow:hidden}.tour-card:hover{border-color:var(--line-strong);box-shadow:var(--shadow-panel);transform:translateY(-2px)}.tour-card:has(.tour-card-name a:focus-visible){outline:2px solid var(--signal);outline-offset:2px}.tour-card[hidden]{display:none}.tour-card-photo{aspect-ratio:3/2;background:var(--surface-alt);position:relative;overflow:hidden}.tour-card-frame{background:var(--surface-alt);position:absolute;inset:0}.tour-card-frame img{object-fit:cover;width:100%;height:100%;transition:transform .4s var(--ease-out), filter .3s var(--ease-out);filter:saturate(1.02)contrast(1.01);display:block}.tour-card:hover .tour-card-frame img{filter:saturate(1.06)contrast(1.02);transform:scale(1.035)}.tour-card-frame.is-mark{background:var(--surface-alt);place-items:center;padding:22px 28px;display:grid}.tour-card-frame.is-mark img{object-fit:contain;filter:none;mix-blend-mode:multiply;width:auto;max-width:100%;height:auto;max-height:100%}.tour-card:hover .tour-card-frame.is-mark img{filter:none;transform:none}.tour-card-photo-placeholder{background:linear-gradient(135deg, var(--teal) 0%, var(--teal-hi) 100%);color:var(--label-on-teal);font-family:var(--font-display);letter-spacing:-.02em;-webkit-user-select:none;user-select:none;justify-content:center;align-items:center;font-size:2rem;font-weight:700;display:flex;position:absolute;inset:0}.tour-card-save.btn{z-index:2;width:44px;height:44px;min-height:0;color:var(--ink);box-shadow:none;background:0 0;border:0;border-radius:50%;place-items:center;gap:0;padding:0;font-size:0;line-height:0;display:grid;position:absolute;top:6px;right:6px}.tour-card-save.btn:before{content:"";background:var(--ground);width:34px;height:34px;box-shadow:var(--shadow-float);transition:transform .16s var(--ease-out);border-radius:50%;margin:-17px 0 0 -17px;position:absolute;top:50%;left:50%}.tour-card-save.btn svg{width:16px;height:16px;transition:color .16s var(--ease-out);grid-area:1/1;position:relative}.tour-card-save.btn:hover{color:var(--signal);background:0 0}.tour-card-save.btn:hover:before{transform:scale(1.08)}.tour-card-save.btn:focus-visible{outline:2px solid var(--signal);outline-offset:-2px}.tour-card-save.btn[aria-pressed=true]{color:var(--signal)}.tour-card-save.btn[hidden]{visibility:hidden;display:grid}.tour-card-body{padding:var(--space-md) var(--space-md) 14px;flex-direction:column;flex:1;gap:8px;min-width:0;display:flex}.tour-card-name{font-family:var(--font-display);color:var(--ink);letter-spacing:-.005em;-webkit-line-clamp:2;-webkit-box-orient:vertical;margin:0;font-size:1.06rem;font-weight:700;line-height:1.28;display:-webkit-box;overflow:hidden}.tour-card-name a{color:inherit;outline:none;text-decoration:none}.tour-card-name a:after{content:"";z-index:1;position:absolute;inset:0}.tour-card:hover .tour-card-name a{color:var(--teal)}.tour-card-location{color:var(--ink-2);align-items:center;gap:5px;min-width:0;margin:0;font-size:.86rem;display:flex}.tour-card-location svg{color:var(--ink-3);flex-shrink:0}.tour-card-location span{white-space:nowrap;text-overflow:ellipsis;min-width:0;overflow:hidden}.tour-card-features{flex-wrap:wrap;gap:6px;min-height:24px;max-height:24px;margin:2px 0 0;padding:0;list-style:none;display:flex;overflow:hidden}.tour-card-features li{color:var(--ink-2);background:var(--surface-alt);border-radius:var(--radius-pill);padding:3px 10px;font-size:.72rem;font-weight:500;line-height:18px}.tour-card-features li.more{color:var(--ink-3);background:0 0;padding-left:2px}.tour-card-foot{justify-content:space-between;align-items:flex-end;gap:12px;min-height:30px;margin-top:auto;padding-top:6px;display:flex}.tour-card-price{min-width:0;color:var(--ink-2);flex-wrap:wrap;align-items:baseline;gap:0 5px;margin:0;font-size:.8rem;display:flex}.tour-card-price .from{color:var(--ink-2)}.tour-card-price strong{font:700 1.125rem/1 var(--font-display);color:var(--ink);letter-spacing:-.01em;font-variant-numeric:tabular-nums}.tour-card-price .unit{color:var(--ink-3);white-space:nowrap}.tour-card-price-wait{border-radius:var(--radius-pill);background:linear-gradient(90deg, var(--surface-alt) 0%, var(--line) 50%, var(--surface-alt) 100%);background-size:200% 100%;width:9.5em;height:14px;animation:1.4s ease-in-out infinite tour-card-wait;display:block}@keyframes tour-card-wait{0%{background-position:100% 0}to{background-position:-100% 0}}@media (prefers-reduced-motion:reduce){.tour-card-price-wait{animation:none}}.tour-card-avail{min-width:0;color:var(--ink-2);font-size:.82rem;line-height:1.35}.tour-card-avail .row-avail{margin:0;font-size:.82rem}.tour-card-price-slot{text-align:right;flex-shrink:0}.tour-card-price-slot .tour-row-price{align-items:flex-end;gap:2px}.tour-card-price-slot .label{letter-spacing:.08em;color:var(--ink-3);font-size:.7rem}.tour-card-price-slot .tour-row-price-value{font:700 1.125rem/1 var(--font-display);color:var(--ink);letter-spacing:-.01em}.tour-card-price-slot .tour-row-price-asof{font-size:.7rem}.tour-card-price-slot:has(.tour-row-price-none){display:none}@media (max-width:640px){.tour-card{flex-direction:row;align-items:stretch;min-height:132px}.tour-card:hover{transform:none}.tour-card-photo{aspect-ratio:auto;flex-shrink:0;width:112px;min-width:112px}.tour-card-frame.is-mark{padding:10px}.tour-card-photo-placeholder{font-size:1.4rem}.tour-card-save.btn{color:var(--ink-3);top:2px;right:2px}.tour-card-save.btn:before{width:32px;height:32px;box-shadow:none;background:0 0;margin:-16px 0 0 -16px}.tour-card-save.btn:hover:before{background:var(--surface-alt);transform:none}.tour-card-body{justify-content:flex-start;gap:4px;padding:12px 14px}.tour-card-name{padding-right:30px;font-size:1.03rem;line-height:1.25}.tour-card-location{align-items:flex-start;font-size:.82rem}.tour-card-location svg{margin-top:3px}.tour-card-location span{white-space:normal}.tour-card-features{display:none}.tour-card-foot{align-items:center;min-height:0;padding-top:6px}.tour-card-price{font-size:.74rem}.tour-card-price strong{font-size:1.06rem}.tour-card-avail,.tour-card-avail .row-avail{font-size:.72rem}.tour-card-price-slot .label,.tour-card-price-slot .tour-row-price-asof{display:none}.tour-card-price-slot .tour-row-price-value{font-size:1.06rem}}
