/* Reversible single-column layout trial. Previous three-column version: 50fa38e0bf73a180d28e2cb3dce78f640e3a00e3. */
.cards{grid-template-columns:minmax(0,1fr);width:100%;max-width:1000px;margin-inline:auto;gap:18px}
.card{display:grid;grid-template-columns:230px minmax(0,1fr);min-height:214px;border-radius:12px;transition:border-color .18s,box-shadow .18s}
.card:hover{transform:none;border-color:#65815e;box-shadow:0 5px 16px #1b3b2419}
.card .card-visual,.card .card-visual:has(.artisan-photo){height:100%;min-height:214px;align-self:stretch;border-right:1px solid #d8e0d3}
.card .card-visual>svg{position:absolute;inset:0;object-fit:cover}
.card .card-visual>.artisan-photo{position:absolute;inset:0;object-position:center top}
.card .card-visual .card-status{left:12px;top:12px;max-width:calc(100% - 24px);font-size:11px;line-height:1.5;padding:5px 7px}
.card .fiction-label{left:8px;right:auto;bottom:8px;max-width:calc(100% - 16px);font-size:8px;line-height:1.5}
.card .card-content{display:grid;grid-template-columns:minmax(0,1fr) 174px;column-gap:24px;row-gap:0;padding:23px 25px;align-content:center}
.card .card-trade,.card .card-title,.card .card-place,.card .card-zone,.card .card-distance{grid-column:1}
.card .card-trade{font-size:11px;margin:0 0 5px}
.card .card-title{font-size:22px;line-height:1.4}
.card .card-place{margin:5px 0 0;font-size:14px}
.card .card-description{display:none}
.card .card-zone{font-size:14px;line-height:1.65;margin:12px 0 0}
.card .card-distance{font-size:13px;margin-top:7px}
.card .card-actions{grid-column:2;grid-row:1/8;display:flex;flex-direction:column;align-self:center;align-items:stretch;justify-content:center;gap:10px;margin:0;border-top:0;border-left:1px solid #dce4d5;padding:0 0 0 20px}
.card .number-button,.card .detail-button,.card.is-open .detail-button{width:100%;font-size:13px;min-height:44px;justify-content:center;line-height:1.5}
.card .number-button{padding:10px 9px}
.card.is-open{border-color:#456d3c;box-shadow:0 0 0 1px #456d3c}
.cards>.inline-detail{margin-top:-7px}
@media(max-width:850px){
 .card{grid-template-columns:205px minmax(0,1fr)}
 .card .card-content{display:flex;flex-direction:column;align-items:stretch;padding:20px 22px}
 .card .card-title{font-size:21px}
 .card .card-actions{display:flex;flex-direction:row;gap:14px;align-self:stretch;justify-content:flex-start;border:0;border-top:1px solid #dce4d5;margin-top:16px;padding:13px 0 0}
 .card .number-button{width:auto;min-width:155px}.card .detail-button,.card.is-open .detail-button{width:auto;flex:1}
}
@media(max-width:600px){
 .cards{max-width:440px;gap:17px}
 .card{grid-template-columns:minmax(0,1fr);min-height:0}
 .card .card-visual,.card .card-visual:has(.artisan-photo){height:155px;min-height:155px;border-right:0;border-bottom:1px solid #d8e0d3}
 .card .card-visual>svg{position:static}
 .card .card-visual>.artisan-photo{object-position:center 18%}
 .card .card-visual .card-status{left:15px;top:12px;max-width:calc(100% - 30px)}
 .card .card-content{padding:18px 20px}
 .card .card-title{font-size:21px}
 .card .card-zone{margin-top:10px}
 .card .card-actions{gap:10px;flex-wrap:wrap;margin-top:14px;padding-top:13px}
 .card .number-button{min-width:0;flex:1 1 150px}
 .card .detail-button,.card.is-open .detail-button{flex:1 1 100px;min-width:100px}
}
@media(prefers-reduced-motion:reduce){.card{transition:none}}

/* Availability is read with the text; the image dot is only a visual reminder. */
.card .card-content>.card-status{position:static;grid-column:1;justify-self:start;align-self:flex-start;width:fit-content;max-width:100%;min-height:28px;margin:0 0 8px;padding:4px 8px;font-size:11px;line-height:1.5;gap:6px;box-shadow:none}.card .card-content>.card-status .dot{width:6px;height:6px;flex-shrink:0}.photo-availability{position:absolute;top:13px;left:15px;width:22px;height:22px;border:3px solid #fff;border-radius:50%;background:#fff;box-shadow:0 1px 5px #16362845;display:grid;place-items:center;box-sizing:border-box}.photo-availability>span{display:block;width:100%;height:100%;border-radius:50%}.photo-availability--now>span{background:#377638}.photo-availability--appointment>span{background:#c87516}.photo-availability--stale>span{background:#667a91}.photo-availability--unavailable>span{background:#817669}

.card-rating{grid-column:1;display:flex;align-items:center;flex-wrap:wrap;gap:7px 9px;margin-top:7px;font-size:12px;line-height:1.6;color:#4b5d4a}.card-rating-stars{display:inline-flex;align-items:center;gap:2px;color:#95701f}.card-rating-stars svg{width:15px;height:15px;display:block;flex-shrink:0}

.rating-star{position:relative;display:inline-block;width:15px;height:15px;flex-shrink:0}.rating-star-fill{position:absolute;left:0;top:0;height:15px;width:var(--star-fill);overflow:hidden}.rating-star-fill svg{fill:currentColor;width:15px;max-width:none}

/* Reviews sit immediately before the direct-contact action. */
.card .card-content{grid-template-columns:minmax(0,1fr) 200px}.card .card-actions>.card-rating{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;margin:0 0 3px;text-align:center;font-size:11px}.profile-reviews{margin-top:26px;padding-top:23px;border-top:1px solid #c8d4c0}.profile-reviews-heading{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:8px;margin-bottom:12px}.inline-detail .profile-reviews-heading h4{font-size:18px;margin:0}.reviews-demo-label{font-size:11px;padding:4px 8px;border:1px solid #c8b896;border-radius:5px;color:#6a512b;background:#fff9ed}.profile-reviews>.card-rating{margin:0;font-size:14px;gap:10px}.reviews-disclaimer{font-size:13px;line-height:1.7;color:#465b41;margin-top:10px}.demo-review-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,240px),1fr));gap:14px;margin-top:16px}.demo-review{padding:17px 18px;border:1px solid #d2ddcb;border-radius:8px;background:#fafcf8;min-width:0}.demo-review p{font-size:14px;line-height:1.8;color:#263f30}.demo-review>span{display:block;font-size:12px;line-height:1.6;color:#52654d;margin-top:11px}
@media(max-width:850px){.card .card-content{display:flex}.card .card-actions{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:8px 14px}.card .card-actions>.card-rating{grid-column:1/-1;flex-direction:row;justify-content:flex-start;text-align:left;flex-wrap:wrap;margin:0 0 4px;font-size:12px}.card .card-actions .number-button{grid-column:1;width:100%;min-width:0}.card .card-actions .detail-button{grid-column:2;width:100%;min-width:0}.profile-reviews{margin-top:22px;padding-top:20px}}

.nearby-notice{margin:24px auto;max-width:1000px;width:100%;box-sizing:border-box}@media(max-width:600px){.nearby-notice{margin-top:20px}}

.nearby-results-heading{grid-column:1/-1;margin-top:14px;padding:20px 0 3px;border-top:1px solid #a9bca1;scroll-margin-top:110px}.nearby-results-heading h3{font-size:23px;color:#224b3c;line-height:1.4}.nearby-results-heading p{font-size:14px;color:#40543c;line-height:1.7;margin-top:7px}.nearby-controls{display:flex;flex-direction:column;align-items:center;gap:12px;margin-top:20px}.nearby-controls:has(>[hidden]):not(:has(>:not([hidden]))){display:none}.nearby-controls p{font-size:13px;color:#40543c;line-height:1.7}.nearby-controls>[hidden]{display:none}@media(max-width:600px){.nearby-results-heading h3{font-size:21px}.nearby-controls .outline{max-width:100%;font-size:13px;text-align:center}}

/* A centered status line across the white part of each card. */
.card .card-content>.card-status{grid-column:1/-1;grid-row:1;justify-self:center;align-self:center;display:flex;align-items:center;justify-content:center;text-align:center;width:auto;min-height:22px;margin:0 0 13px;padding:0;border:0;border-radius:0;background:transparent;box-shadow:none;font-size:12px;font-weight:650;line-height:1.5;gap:7px}.card .card-status .availability-icon{width:17px;height:17px;flex-shrink:0}.card .card-actions{grid-row:2/8}
