/* Parcel cards (partials/tile.njk), on the homepage and /land/. Loaded after the page CSS, so it
   replaces the flat wireframe tiles there. Airbnb-style, Jon + Gunn 2026-10-22. */
.card{position:relative;display:flex;flex-direction:column;gap:0 !important;background:#fff;border-radius:14px;overflow:hidden;box-shadow:0 1px 2px rgba(22,25,34,0.06),0 6px 20px rgba(22,25,34,0.07);transition:box-shadow .2s ease,transform .2s ease}
.card:hover{box-shadow:0 2px 4px rgba(22,25,34,0.08),0 14px 32px rgba(22,25,34,0.13);transform:translateY(-2px)}
@media (prefers-reduced-motion:reduce){.card,.card:hover{transition:none;transform:none}}

/* Photos: a sideways scroll-snap strip, so a thumb swipes it on a phone with no script at all. */
/* The track is pinned inside the box, so a portrait photo crops to 4:3 instead of stretching the card. */
.card-media{position:relative;flex:none;aspect-ratio:4/3;overflow:hidden;background:#D9D1C1}
.card-track{position:absolute;inset:0;display:flex;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;overscroll-behavior-x:contain}
.card-track::-webkit-scrollbar{display:none}
.card-slide{flex:0 0 100%;scroll-snap-align:start;scroll-snap-stop:always}
.card-slide img{display:block;width:100%;height:100%;object-fit:cover}
.ph.card-track{align-items:flex-end;justify-content:flex-end;padding:12px;font-size:10px}

.card-pill{position:absolute;top:12px;left:12px;background:#fff !important;border:none !important;border-radius:999px !important;font-weight:600;color:var(--ink)}
.card-state{position:absolute;top:12px;right:12px;padding:5px 11px;border-radius:999px;background:rgba(22,25,34,0.78);color:#fff;font-size:11px;font-weight:700;letter-spacing:0.12em;text-transform:uppercase;line-height:1.2;pointer-events:none;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}
.card-nav{position:absolute;top:50%;transform:translateY(-50%);width:34px;height:34px;border-radius:50%;border:none;background:rgba(255,255,255,0.92);color:var(--ink);font-size:22px;line-height:1;display:flex;align-items:center;justify-content:center;cursor:pointer;opacity:0;transition:opacity .15s ease;box-shadow:0 1px 4px rgba(0,0,0,0.2);padding:0 0 3px}
.card-nav.prev{left:10px}.card-nav.next{right:10px}
.card:hover .card-nav,.card-nav:focus-visible{opacity:1}
.card-nav[disabled]{opacity:0 !important;pointer-events:none}
@media (hover:none){.card-nav{display:none}}
.card-dots{position:absolute;left:0;right:0;bottom:10px;display:flex;justify-content:center;gap:5px;pointer-events:none}
.card-dots span{width:6px;height:6px;border-radius:50%;background:rgba(255,255,255,0.6)}
.card-dots span.on{background:#fff}

/* Body: the title link is stretched over the whole body, so the box is one big target. */
.card-body{position:relative;display:flex;flex-direction:column;gap:8px;padding:16px 18px 18px}
.card-body .label{font-size:11px}
.card h3{font-size:24px !important;line-height:1.2;margin:0}
.card-link{color:var(--ink)}
.card-link::after{content:"";position:absolute;inset:0}
.card-link:hover{color:var(--ink)}
.card-link:focus-visible{outline:none}
.card-link:focus-visible::after{outline:2px solid var(--teal,#1FB7A6);outline-offset:-2px;border-radius:0 0 14px 14px}
.card-badges{display:flex;flex-wrap:wrap;gap:6px}
.card-badges span{font-size:11px;font-weight:600;letter-spacing:0.06em;padding:3px 9px;border-radius:999px;background:#EAF7F5;color:#0F6F64}
.card .meta{display:flex;justify-content:space-between;align-items:baseline;gap:12px;margin-top:6px;flex-wrap:wrap}
.card .price{font-size:28px !important}
.card .meta .muted{font-size:13px;text-align:right}

/* Monthly or cash: cards.js sets data-price on <body> from the /land/ toggle. */
.card .show-cash{display:none}
body[data-price="cash"] .card .show-cash{display:inline}
body[data-price="cash"] .card .show-monthly{display:none}

.price-toggle{display:inline-flex;align-self:flex-start;border:1px solid var(--ink);border-radius:999px;padding:3px;gap:2px}
.price-toggle button{min-height:38px;padding:0 18px;border:none;border-radius:999px;background:transparent;font-family:var(--sans);font-size:12px;font-weight:600;letter-spacing:0.14em;text-transform:uppercase;color:var(--ink);cursor:pointer}
.price-toggle button[aria-pressed="true"]{background:var(--ink);color:#fff}

.land-grid,.tiles{gap:28px !important}
@media (max-width:900px){
  .card h3{font-size:22px !important}
  .price-toggle button{min-height:44px}
}
