/* List48 v8-r39 — listing page */
:root{--accent:#1769ff;--ink:#121826;--ink2:#2b3345;--muted:#5b6474;--line:#e2e6ee;--mist:#f3f5f9;--r:16px;color-scheme:light}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:#fff;color:var(--ink);font:400 17px/1.6 Ubuntu,system-ui,-apple-system,"Segoe UI",sans-serif}
a{color:var(--accent)}
img{max-width:100%}
button{font:inherit}
:focus-visible{outline:3px solid var(--accent);outline-offset:2px}
.ap-wrap{width:min(1180px,calc(100% - 40px));margin:0 auto}
.ap-owner{position:sticky;top:0;z-index:40;background:var(--ink);color:#fff;font-size:14px;text-align:center;padding:calc(8px + env(safe-area-inset-top,0px)) 12px 8px}
.ap-owner a{color:#ffd166;font-weight:500}

/* Slim brand bar */
.ap-top{border-bottom:1px solid var(--line);background:#fff}
.ap-top .ap-wrap{display:flex;justify-content:space-between;align-items:center;height:56px}
.ap-logo{display:flex;align-items:center;gap:8px;text-decoration:none;color:var(--ink);font-weight:500;font-size:18px}
.ap-logo img{display:block;height:28px;width:auto}
.ap-top-cta{font-size:14px;font-weight:500;text-decoration:none;color:#1769ff;white-space:nowrap} /* v8-r29 */

/* Shared hero bits */
.ap-cat{margin:0 0 6px;font-size:14px;font-weight:500;color:var(--accent);letter-spacing:.01em}
.ap-stamp{position:absolute;z-index:3;left:18px;top:18px;background:#fff;color:#b42318;border:3px solid #b42318;font-weight:700;font-size:22px;text-transform:uppercase;padding:4px 14px;transform:rotate(-6deg);letter-spacing:.04em}
.ap-allphotos{position:absolute;right:16px;bottom:16px;z-index:3;border:0;border-radius:10px;background:rgba(255,255,255,.94);color:var(--ink);font-weight:500;font-size:14px;padding:8px 14px;cursor:pointer;box-shadow:0 6px 18px -8px rgba(0,0,0,.5)}

/* Full-bleed hero (wide, large cover photo) */
.ap-hero-full{position:relative;height:min(76vh,720px);min-height:420px;overflow:hidden;background:#1b1f27}
.ap-hero-img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;cursor:zoom-in}
.ap-hero-shade{position:absolute;inset:0;background:linear-gradient(180deg,rgba(10,14,24,0) 35%,rgba(10,14,24,.35) 60%,rgba(10,14,24,.82) 100%);pointer-events:none}
.ap-hero-copy{position:absolute;left:0;right:0;bottom:34px;color:#fff;pointer-events:none}
.ap-hero-copy>*{pointer-events:auto}
.ap-hero-copy .ap-cat{color:#fff;opacity:.85}
.ap-hero-copy h1{margin:0;font-size:clamp(30px,4.6vw,58px);line-height:1.05;letter-spacing:-.03em;font-weight:700;max-width:18em;text-wrap:balance;text-shadow:0 2px 18px rgba(0,0,0,.35)}
.ap-hero-line{display:flex;flex-wrap:wrap;align-items:baseline;gap:6px 20px;margin:12px 0 0}
.ap-hero-copy .ap-price{font-size:clamp(28px,3.6vw,44px);font-weight:700;letter-spacing:-.02em}
.ap-loc-light,.ap-when-light{font-size:18px;opacity:.92}
.ap-when-light{margin:4px 0 0}
.ap-hero-full .ap-allphotos{bottom:40px;right:max(20px,calc((100% - 1180px)/2))}
.ap-facts-row{margin-top:-26px;position:relative;z-index:4}
.ap-facts-row .ap-facts{background:#fff;border-radius:var(--r);box-shadow:0 18px 40px -24px rgba(11,22,48,.45),0 0 0 1px var(--line);padding:6px}

/* Split hero (portrait, small or no photo) */
.ap-hero-split{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);gap:40px;align-items:center;padding:34px 0 10px}
.ap-hero-photo{position:relative;border-radius:22px;overflow:hidden;background:var(--mist);aspect-ratio:4/3;display:grid;place-items:center;isolation:isolate}
.ap-hero-photo::before{content:"";position:absolute;inset:-30px;background:var(--bg) center/cover;filter:blur(28px) saturate(1.1);opacity:.55;z-index:-1}
.ap-hero-photo>img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;cursor:zoom-in}
.ap-nophoto{background:linear-gradient(135deg,color-mix(in srgb,var(--accent) 14%,#fff),#fff)}
.ap-nophoto span img{max-width:120px;max-height:96px}
.ap-hero-text h1{margin:0;font-size:clamp(28px,3.4vw,44px);line-height:1.1;letter-spacing:-.025em;font-weight:700;text-wrap:balance}
.ap-hero-text .ap-price{margin:12px 0 0;font-size:clamp(30px,3.4vw,42px);font-weight:700;letter-spacing:-.02em;line-height:1.1}
.ap-when{margin:12px 0 0;font-size:18px;font-weight:500}
.ap-when span{display:block;font-size:13px;font-weight:400;color:var(--muted)}
.ap-loc{display:inline-flex;align-items:center;gap:8px;margin-top:10px;font-weight:500;text-decoration:none}
.ap-loc::before{content:"";width:10px;height:10px;border:2.5px solid currentColor;border-radius:50% 50% 50% 0;transform:rotate(-45deg)}
.ap-loc:hover{text-decoration:underline}
.ap-hero-text .ap-facts{margin-top:20px;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}

/* Key facts strip */
.ap-facts{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));margin:0}
.ap-facts div{padding:12px 16px}
.ap-facts div+div{border-left:1px solid var(--line)}
.ap-facts dt{font-size:13px;color:var(--muted)}
.ap-facts dd{margin:2px 0 0;font-weight:700;font-size:18px;line-height:1.25}
.ap-hero-text .ap-facts div:first-child{padding-left:0}

/* Body: content + sticky contact card */
.ap-body{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:48px;align-items:start;padding:34px 0 10px}
.ap-sec{padding:0 0 30px;margin:0 0 30px;border-bottom:1px solid var(--line)}
.ap-sec:last-child{border-bottom:0}
.ap-sec h2{font-size:22px;font-weight:700;letter-spacing:-.015em;margin:0 0 14px}
.ap-desc{font-weight:300;font-size:19px;line-height:1.7;max-width:62ch}
.ap-specs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 28px;margin:0}
.ap-specs div{display:flex;justify-content:space-between;gap:16px;padding:11px 0;border-bottom:1px solid var(--line)}
.ap-specs dt{color:var(--muted)}
.ap-specs dd{margin:0;font-weight:500;text-align:right}
.ap-list{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 28px}
.ap-list li{position:relative;padding-left:30px}
.ap-list li::before{content:"";position:absolute;left:0;top:4px;width:20px;height:20px;border-radius:50%;background:color-mix(in srgb,var(--accent) 14%,#fff) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath d='M5.5 10.5l3 3 6-7' fill='none' stroke='%23121826' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/100%}
.ap-where p{margin:0 0 12px;font-size:18px}
.ap-closed-note{background:#fdecea;color:#7a1d14;border-radius:12px;padding:14px 16px;margin:0 0 26px}

/* Gallery grid */
.ap-grid{display:grid;gap:10px;grid-template-columns:repeat(3,1fr)}
.ap-grid.n1{grid-template-columns:1fr}.ap-grid.n2{grid-template-columns:1fr 1fr}.ap-grid.n4{grid-template-columns:1fr 1fr}
.ap-grid.n5{grid-template-columns:2fr 1fr 1fr}
.ap-grid.n5 .ap-grid-item:first-child{grid-row:span 2}
.ap-grid-item{position:relative;display:block;border:0;padding:0;border-radius:12px;overflow:hidden;background:var(--mist);aspect-ratio:4/3;cursor:zoom-in}
.ap-grid.n5 .ap-grid-item:first-child{aspect-ratio:auto}
.ap-grid-item img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .3s ease}
.ap-grid-item:hover img{transform:scale(1.03)}
.ap-more{position:absolute;inset:0;display:grid;place-items:center;background:rgba(10,14,24,.5);color:#fff;font-size:24px;font-weight:700}

/* Contact card */
.ap-side{position:sticky;top:20px}
.ap-card{border:1px solid var(--line);border-radius:20px;padding:22px;box-shadow:0 24px 50px -34px rgba(11,22,48,.45)}
.ap-card-price{margin:0;font-size:32px;font-weight:700;letter-spacing:-.02em;line-height:1.1}
.ap-card-when{margin:6px 0 0;font-weight:500}
.ap-card-closed{margin:6px 0 14px;font-weight:700;color:#b42318;text-transform:uppercase;letter-spacing:.04em}
.ap-actions{display:grid;gap:10px;margin-top:18px}
.ap-btn{display:flex;align-items:center;justify-content:center;min-height:50px;text-align:center;text-decoration:none;background:var(--accent);color:#fff;font-weight:500;font-size:17px;padding:10px 16px;border-radius:12px;border:2px solid var(--accent)}
.ap-btn:hover{filter:brightness(1.07)}
.ap-btn.alt{background:#fff;color:var(--accent)}
.ap-btn.alt:hover{background:color-mix(in srgb,var(--accent) 7%,#fff);filter:none}
.ap-inline{display:inline-flex;min-height:44px}
.ap-who{display:grid;gap:2px;margin-top:18px;padding-top:16px;border-top:1px solid var(--line)}
.ap-who strong{font-size:17px}
.ap-who a{text-decoration:none;font-weight:500}
.ap-share{display:flex;gap:8px;margin-top:18px}
.ap-sharebtn{flex:1;background:#fff;border:1.5px solid var(--line);border-radius:10px;padding:9px 12px;cursor:pointer;color:var(--ink);font-weight:500;font-size:15px}
.ap-sharebtn:hover{border-color:var(--ink)}
.ap-qr{margin:14px auto 0;width:180px}
.ap-qr svg{width:100%;height:auto;display:block}
.ap-card-meta{margin:14px 0 0;font-size:13px;color:var(--muted);text-align:center}

/* Related */
.ap-related{padding:30px 0 10px;border-top:1px solid var(--line);margin-top:20px}
.ap-related-head{display:flex;justify-content:space-between;align-items:baseline;gap:12px;flex-wrap:wrap;margin-bottom:16px}
.ap-related-head h2{margin:0;font-size:22px}
.ap-related-head a{text-decoration:none;font-weight:500;font-size:15px}
.ap-related-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.ap-rel{display:flex;flex-direction:column;gap:3px;text-decoration:none;color:var(--ink)}
.ap-rel-img{display:grid;place-items:center;aspect-ratio:4/3;border-radius:14px;overflow:hidden;background:var(--mist);margin-bottom:6px}
.ap-rel-img img{width:100%;height:100%;object-fit:cover}
.ap-rel-img>img[loading]{object-fit:cover}
.ap-rel strong{font-weight:500;line-height:1.3}
.ap-rel-price{font-weight:700}
.ap-rel-loc{font-size:14px;color:var(--muted)}
.ap-rel:hover strong{color:var(--accent)}

/* Footer */
.ap-foot{padding:30px 0 40px}
.ap-made{display:flex;flex-direction:column;gap:2px;text-decoration:none;color:var(--ink);border-top:1px solid var(--line);padding-top:20px;font-size:15px}
.ap-made b{font-weight:700}
.ap-made span+span{color:var(--muted);font-weight:300}
.ap-made:hover span+span{color:var(--accent)}
.ap-legal{margin:12px 0 0;font-size:12px;color:var(--muted)}
.ap-legal a{color:inherit}

/* Mobile sticky contact bar (shown when the contact card is off screen) */
.ap-bar{display:none}

/* Lightbox */
.ap-lb{position:fixed;inset:0;z-index:100;background:rgba(8,10,16,.94);display:flex;align-items:center;justify-content:center}
.ap-lb[hidden]{display:none}
.ap-lb img{max-width:92vw;max-height:84vh;object-fit:contain;border-radius:6px;user-select:none}
.ap-lb-x{position:absolute;top:calc(12px + env(safe-area-inset-top,0px));right:14px;background:none;border:0;color:#fff;font-size:40px;line-height:1;cursor:pointer;padding:6px 12px}
.ap-lb-nav{position:absolute;top:50%;transform:translateY(-50%);width:52px;height:52px;border-radius:50%;border:0;background:rgba(255,255,255,.14);color:#fff;font-size:32px;cursor:pointer}
.ap-lb-nav:hover{background:rgba(255,255,255,.26)}
.prev{left:16px}.next{right:16px}
.ap-lb-count{position:absolute;bottom:calc(16px + env(safe-area-inset-bottom,0px));left:50%;transform:translateX(-50%);color:#fff;font-size:14px}

/* Unavailable page */
.ap-gone{padding:90px 24px;text-align:center;max-width:600px;margin:0 auto}
.ap-gone h1{font-weight:700;font-size:28px;margin:0 0 8px}
.ap-gone .ap-btn{display:inline-flex;margin-top:14px}

@media (max-width:980px){
  .ap-body{grid-template-columns:1fr;gap:0;padding-top:24px}
  .ap-side{position:static;order:-1;margin-bottom:30px}
  .ap-hero-split{grid-template-columns:1fr;gap:22px;padding-top:0;width:100%}
  .ap-hero-split .ap-hero-text{width:calc(100% - 40px);margin:0 auto}
  .ap-hero-photo{border-radius:0;aspect-ratio:4/3}
  .ap-bar{display:grid;position:sticky;bottom:0;z-index:30;grid-auto-flow:column;grid-auto-columns:1fr;gap:8px;padding:10px 12px calc(10px + env(safe-area-inset-bottom,0px));background:rgba(255,255,255,.96);border-top:1px solid var(--line);transform:translateY(110%);transition:transform .2s ease;margin-top:-72px}
  .ap-bar.on{transform:none}
  .ap-bar .ap-btn{min-height:46px;font-size:16px}
  .ap-related-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:620px){
  .ap-wrap{width:calc(100% - 32px)}
  .ap-hero-full{height:62vh;min-height:360px}
  .ap-hero-copy{bottom:22px}
  .ap-hero-full .ap-allphotos{bottom:auto;top:14px;right:14px}
  .ap-facts-row{margin-top:14px}
  .ap-facts-row .ap-facts{box-shadow:none;border:1px solid var(--line)}
  .ap-facts{grid-template-columns:1fr 1fr}
  .ap-facts div:nth-child(3){border-left:0}
  .ap-facts div:nth-child(n+3){border-top:1px solid var(--line)}
  .ap-hero-text .ap-facts div{padding-left:0}
  .ap-specs,.ap-list{grid-template-columns:1fr}
  .ap-desc{font-size:17px}
  .ap-grid,.ap-grid.n4,.ap-grid.n5{grid-template-columns:1fr 1fr}
  .ap-grid.n5 .ap-grid-item:first-child{grid-column:span 2;grid-row:auto;aspect-ratio:4/3}
  .ap-grid.n3 .ap-grid-item:first-child{grid-column:span 2}
  .ap-related-grid{grid-template-columns:1fr}
  .ap-lb-nav{display:none}
}
@media (prefers-reduced-motion:reduce){.ap-bar,.ap-grid-item img{transition:none}}

/* v4-r11 — tap-to-reveal contacts */
.ap-reveal{cursor:pointer}
.ap-reveal span{font-size:13px;font-weight:500;background:color-mix(in srgb,var(--accent) 12%,#fff);color:var(--accent);border-radius:20px;padding:1px 9px;margin-left:4px}

/* v4-r12 — printing the ad page: clean single column with contacts revealed (see listing.js) */
@media print{
  @page{margin:.5in}
  body{font-size:12pt}
  .ap-owner,.ap-top,.ap-actions,.ap-bar,.ap-share,.ap-qr,.ap-allphotos,.ap-related,.ap-lb,.ap-where .ap-btn,.ap-reveal span,.ap-closed-note a{display:none!important}
  .ap-wrap{width:100%}
  .ap-hero-full{height:3.4in;min-height:0;-webkit-print-color-adjust:exact;print-color-adjust:exact}
  .ap-hero-split{grid-template-columns:1fr 1fr;gap:20px;padding-top:0}
  .ap-hero-photo{aspect-ratio:4/3}
  .ap-hero-photo::before{display:none}
  .ap-facts-row{margin-top:10px}
  .ap-facts-row .ap-facts{box-shadow:none;border:1px solid #ccc}
  .ap-body{display:flex;flex-direction:column;padding-top:14px}
  .ap-side{position:static;order:-1;width:100%} /* contact card first on paper */
  .ap-list li::before{-webkit-print-color-adjust:exact;print-color-adjust:exact}
  .ap-legal{display:none}
  .ap-card{box-shadow:none;border:2px solid #121826;break-inside:avoid;margin:0 0 16px}
  .ap-card-price{font-size:22pt}
  .ap-who{border-top:0;padding-top:0;margin-top:8px}
  .ap-who a,.ap-desc a{color:#121826;text-decoration:none;font-weight:700;font-size:14pt}
  .ap-grid{grid-template-columns:repeat(3,1fr)!important}
  .ap-grid-item{aspect-ratio:4/3!important;grid-row:auto!important;grid-column:auto!important}
  .ap-grid-item:nth-child(n+4),.ap-more{display:none}
  .ap-sec{break-inside:avoid;padding-bottom:14px;margin-bottom:14px}
  .ap-desc{font-size:12pt}
  .ap-made span+span{display:none}
}

/* ===== v5-r1: business branding, message form, buyer resources ===== */
.ap-biz{display:flex;align-items:center;gap:12px;padding-bottom:14px;margin-bottom:14px;border-bottom:1px solid var(--line)}
.ap-biz img{max-width:120px;max-height:56px;object-fit:contain}
.ap-biz strong{font-size:17px;line-height:1.2}
.ap-leadbtn{margin-top:10px}
.ap-leadform{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.ap-leadform label{display:grid;gap:4px;font-size:14px;font-weight:500}
.ap-leadform label small{font-weight:300;color:var(--muted)}
.ap-leadform input,.ap-leadform textarea{font:400 16px Ubuntu,system-ui,sans-serif;padding:10px 12px;border:1.5px solid var(--line);border-radius:10px;width:100%}
.ap-leadform .ap-full,.ap-leadform .ap-btn,.ap-leadform .ap-note{grid-column:1/-1}
.ap-hp{position:absolute;left:-9999px}
.ap-note{margin:6px 0 0;font-size:13px;color:var(--muted)}
.ap-offers a{display:grid;gap:2px;text-decoration:none;color:var(--ink);border:1px solid var(--line);border-radius:12px;padding:12px 14px;margin-bottom:10px}
.ap-offers a span{color:var(--muted);font-size:15px}
.ap-offers a:hover{border-color:var(--accent)}
@media (max-width:600px){.ap-leadform{grid-template-columns:1fr}}
/* v7-r3: two-tone wordmark */
.brand{white-space:nowrap}.brand .bl{color:#1769ff}.brand .b48{color:#121826}

/* v8-r1: store product ads */
.ap-shoplink{display:block;margin:-6px 0 14px;font-weight:500;text-decoration:none}
.ap-shoplink:hover{text-decoration:underline}
.ap-ships{margin:-8px 0 14px;font-size:14px;color:var(--muted)}

/* v8-r31: posted / still-available dates */
.ap-dates{margin:10px 0 0;font-size:14px;font-weight:500;color:#5b6474;letter-spacing:.01em}
.ap-hero-copy .ap-dates{color:#fff;opacity:.85}

/* v8-r32: seller says + seller card */
.ap-traits{list-style:none;padding:0;margin:0;display:flex;flex-wrap:wrap;gap:8px}
.ap-traits li{display:inline-flex;align-items:center;gap:6px;font-weight:500;color:#1a7f4b;background:#eaf7f0;border-radius:999px;padding:6px 14px}
.ap-traits li::before{content:"✓";font-weight:700}
.ap-seller{display:flex;gap:12px;align-items:center;margin:16px 0 0;padding:12px;border:1px solid #e3e7ee;border-radius:12px;color:inherit;text-decoration:none}
.ap-seller:hover{border-color:var(--accent)}
.ap-seller-i{flex:none;width:44px;height:44px;border-radius:50%;background:var(--accent);color:#fff;display:grid;place-items:center;font-weight:700;font-size:20px}
.ap-seller>span:last-child{display:flex;flex-direction:column;min-width:0}
.ap-seller small{color:#5b6474;font-size:13px}
.ap-seller em{font-style:normal;font-size:13px;font-weight:500;color:var(--accent);margin-top:2px}

/* v8-r39: link back to the buyer's conversation */
.ap-thlink{margin:0 0 14px}
