/* Listing detail composes the established GroomNear shapes, tokens and buttons. */
.gn-icon{display:inline-block;flex-shrink:0;width:22px;height:22px;vertical-align:middle}
.listing-breadcrumb{font-size:14px;padding-top:18px;color:var(--muted)}
.listing-overview{padding:30px 0 24px}
.listing-media-contact{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(320px,1fr);gap:28px;align-items:start;margin:0 0 34px}
.listing-media-contact>.listing-contact-card{grid-column:2;grid-row:1}
.listing-media-contact>.listing-gallery{grid-column:1;grid-row:1;min-width:0;margin:0}
.listing-media-contact--no-photos{grid-template-columns:minmax(0,1fr);max-width:680px}
.listing-media-contact--no-photos>.listing-contact-card{grid-column:1}
.listing-overview-copy{max-width:860px}.listing-overview-copy .eyebrow{margin:4px 0 10px}.listing-overview-copy h1{font-size:clamp(36px,4.4vw,54px);line-height:1.08;letter-spacing:-1.5px;margin:0 0 14px;overflow-wrap:anywhere}.listing-overview-copy .intro{font-size:17px;line-height:1.55;margin:0;max-width:760px}
.ownership-badge{display:inline-flex;align-items:center;background:#e8edde;border:1px solid var(--line);border-radius:999px;padding:5px 12px;margin:14px 0 0;font-size:13px;font-weight:700}.badge-explanation{font-size:13px;color:var(--muted);margin:6px 0 0;max-width:560px}
.listing-contact-card{background:#e8edde;border:1px solid var(--line);border-radius:18px;padding:20px 22px;min-width:0}.listing-contact-card h2{font-size:19px;line-height:1.35;margin:0 0 10px}.listing-primary-address{display:flex;flex-wrap:wrap;gap:3px 6px;font-style:normal;font-size:14px;line-height:1.45;margin-bottom:12px}.listing-primary-address a{flex-basis:100%;text-underline-offset:3px;font-weight:600}.listing-contact-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.listing-contact-actions .gn-button{overflow-wrap:anywhere;max-width:100%;min-height:44px}.listing-contact-actions .gn-button span{overflow-wrap:anywhere}.gn-button--outline{background:var(--surface,#fffdf7);color:var(--ink);border-color:var(--line)}.listing-contact-text{display:flex;align-items:center;gap:10px;margin:0;overflow-wrap:anywhere}.listing-help{font-size:13px;color:var(--muted);line-height:1.5;margin:10px 0 0}.listing-contact-card .policy-date{font-size:12px;margin:8px 0 0}.listing-owner-prompt{display:grid;grid-template-columns:1fr auto;align-items:center;gap:4px 12px;border-top:1px solid #cdd6c6;padding-top:12px;margin-top:14px;font-size:13px}.listing-owner-prompt strong{font-size:14px}.listing-owner-prompt>span{color:var(--muted)}.listing-owner-prompt .gn-button{grid-column:2;grid-row:1 / span 2;white-space:nowrap}.listing-owner-prompt .listing-text-link{grid-column:1;min-height:32px}
.listing-gallery{margin:18px 0 34px;max-width:100%}.listing-gallery-hero{margin:0;background:#e8edde;border-radius:16px;overflow:hidden;aspect-ratio:3/2;max-height:560px}.listing-gallery-hero img{display:block;width:100%;height:100%;object-fit:cover}.listing-gallery-thumbnails{display:flex;gap:10px;overflow-x:auto;overscroll-behavior-x:contain;scroll-snap-type:x proximity;padding:12px 2px 6px;scrollbar-width:thin;scrollbar-color:#8b9a88 var(--line)}.listing-gallery-thumbnail{flex:0 0 clamp(86px,12vw,132px);aspect-ratio:3/2;padding:0;border:2px solid transparent;border-radius:10px;overflow:hidden;background:#e8edde;scroll-snap-align:start}.listing-gallery-thumbnail img{display:block;width:100%;height:100%;object-fit:cover}.listing-gallery-thumbnail:hover{border-color:#8b9a88}.listing-gallery-thumbnail.is-selected{border-color:var(--ink);box-shadow:0 0 0 2px var(--accent)}.gallery-help{font-size:13px;color:var(--muted);margin:3px 0 0}.listing-information{margin:28px 0 38px}.listing-information>h2{margin-bottom:14px}.listing-information-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.listing-fact-card{background:var(--surface,#fffdf7);border:1px solid var(--line);border-radius:18px;padding:22px;min-width:0}.listing-fact-card h3{margin:0 0 12px;display:flex;align-items:center;gap:10px;font-size:18px;line-height:1.4}.listing-fact-card h3 .gn-icon{color:var(--ink);background:var(--accent);box-sizing:content-box;padding:7px;border-radius:10px}.listing-facts{display:block;margin:0}.listing-facts>div{display:grid;grid-template-columns:minmax(100px,140px) minmax(0,1fr);gap:10px;padding:8px 0;border-bottom:1px solid var(--line)}.listing-facts>div:last-child{border-bottom:0}.listing-facts dt{font-size:13px;color:var(--muted);font-weight:600}.listing-facts dd{margin:0;overflow-wrap:anywhere}.listing-text-link{display:inline-flex;align-items:center;min-height:40px;text-underline-offset:4px;font-size:14px;font-weight:600}
.listing-map-heading{display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap}.listing-map-heading h2{display:flex;align-items:center;gap:10px;margin:0}.listing-location>p:first-of-type{margin-bottom:8px}.listing-map-fallback{margin-top:18px}.listing-map-fallback h3{font-size:16px;margin-bottom:4px}.listing-map-fallback p{font-size:14px;margin:0}.listing-location #directory-map{border:1px solid var(--line);border-radius:12px;isolation:isolate}
@media(max-width:760px){.listing-overview{grid-template-columns:1fr;gap:18px;padding-top:22px}.listing-overview-copy h1{font-size:clamp(34px,8vw,46px)}.listing-contact-card{padding:18px}.listing-gallery{margin-top:14px}.listing-gallery-hero{aspect-ratio:4/3}.listing-information-grid{grid-template-columns:1fr;gap:12px}.listing-fact-card{padding:18px}.listing-location{padding:20px}.listing-map-heading{align-items:flex-start}.listing-map-heading h2{font-size:20px}.listing-map-heading button{min-height:44px}}
@media(max-width:420px){.listing-owner-prompt{grid-template-columns:1fr;gap:5px}.listing-owner-prompt .gn-button,.listing-owner-prompt .listing-text-link{grid-column:1;grid-row:auto;width:100%;justify-content:center}.listing-contact-actions{align-items:stretch;flex-direction:column}.listing-contact-actions .gn-button{width:100%;justify-content:center}.listing-facts>div{grid-template-columns:1fr;gap:2px}}
.listing-gallery{display:block;align-items:initial;gap:0}
/* Explicit dimensions override the old .listing-gallery img rule in site.css. */
.listing-gallery .listing-gallery-hero{aspect-ratio:3/2;max-height:none;border:1px solid var(--line);border-radius:var(--radius-card)}
.listing-gallery .listing-gallery-hero img{width:100%;height:100%;aspect-ratio:auto;object-fit:cover;border-radius:0}
.listing-gallery .listing-gallery-thumbnail img{width:100%;height:100%;aspect-ratio:auto;border-radius:0;object-fit:cover}
.listing-gallery .listing-gallery-thumbnail{flex-basis:clamp(86px,9vw,112px);min-height:44px}
.listing-contact-card{background:var(--soft);border-radius:var(--radius-card);padding:24px}
.listing-contact-card .listing-contact-actions{display:grid;grid-template-columns:minmax(0,1fr);gap:10px}
.listing-contact-card .listing-contact-actions .gn-button{width:100%;justify-content:center}
.listing-contact-card .listing-owner-prompt{grid-template-columns:minmax(0,1fr);gap:6px;margin-top:18px;padding-top:18px}
.listing-contact-card .listing-owner-prompt .gn-button,.listing-contact-card .listing-owner-prompt .listing-text-link{grid-column:1;grid-row:auto;white-space:normal;min-height:44px}
.listing-contact-card .listing-owner-prompt .gn-button{justify-self:start;margin-top:6px}
.listing-contact-card .listing-owner-prompt .listing-text-link{justify-self:start}
@media(max-width:850px){.listing-media-contact{grid-template-columns:minmax(0,1fr);gap:20px}.listing-media-contact>.listing-contact-card,.listing-media-contact>.listing-gallery{grid-column:1;grid-row:auto}.listing-contact-card{padding:20px}.listing-overview{padding-bottom:20px}.listing-overview-copy{max-width:none}}
