/* Shared facts/accessibility, domain-specific colour and typographic treatment. */
.listing-collection{--lc-bg:#28282a;--lc-text:#f9f0e8;--lc-muted:#c5beb9;--lc-line:#555052;--lc-accent:#ffc19b;color:var(--lc-text);margin:28px 0}
.listing-fetisch{--lc-bg:#141013;--lc-text:#faf5f7;--lc-muted:#cbbfc5;--lc-line:#59434d;--lc-accent:#ff7e9c}
.listing-massage{--lc-bg:#fff8ed;--lc-text:#37291d;--lc-muted:#67523f;--lc-line:#c6b095;--lc-accent:#854429;--lc-button-text:#fff8ed}
.listing-swinger{--lc-bg:#241a1e;--lc-text:#f1e3d5;--lc-muted:#cdb9af;--lc-line:#68504c;--lc-accent:#ecc1a7}
.listing-domina{--lc-bg:#171719;--lc-text:#eee6dc;--lc-muted:#bfb6b0;--lc-line:#655853;--lc-accent:#eba79a}
.listing-domina .listing-card{border-radius:0;border-top:2px solid var(--lc-accent)}
.listing-domina .listing-card-heading h3{font-family:Barlow,Impact,sans-serif;font-weight:700;font-size:32px}
.listing-swinger .listing-card{border-radius:14px 14px 2px 2px}
.listing-collection [hidden]{display:none!important}
.listing-source{font:400 12px/1.6 Arial,sans-serif;color:var(--lc-muted);margin:14px 0 22px}
.listing-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;align-items:start}
.listing-card{min-width:0;background:var(--lc-bg);color:var(--lc-text);border:1px solid var(--lc-line);border-radius:14px;padding:24px;overflow-wrap:anywhere}
.listing-fetisch .listing-card{border-radius:2px;border-top:2px solid var(--lc-accent)}
.listing-massage .listing-card{border-radius:4px 22px 4px 4px}
.listing-card-heading{position:static;display:block;background:none;padding:0;margin:0 0 22px;height:auto;min-height:0}
.listing-card-heading>span{font:600 11px/1.5 Arial,sans-serif;color:var(--lc-accent);letter-spacing:.06em}
.listing-card-heading h3{color:var(--lc-text);font:500 clamp(22px,2.4vw,30px)/1.15 Georgia,serif;margin:10px 0 0;text-transform:none;letter-spacing:normal}
.listing-fetisch .listing-card-heading h3{font-family:Arial,sans-serif;font-weight:800;letter-spacing:-.035em}
.listing-facts{display:grid;gap:13px;margin:0}
.listing-facts>div{display:grid;grid-template-columns:130px minmax(0,1fr);gap:12px}
.listing-facts dt{font:500 11px/1.6 Arial,sans-serif;color:var(--lc-muted)}
.listing-facts dd{margin:0;font:400 14px/1.6 Arial,sans-serif;color:var(--lc-text)}
.listing-hours{margin-top:20px;border-block:1px solid var(--lc-line);padding:5px 0}
.listing-hours summary{cursor:pointer;min-height:44px;align-content:center;color:var(--lc-accent);font:600 13px/1.5 Arial,sans-serif}
.listing-hours summary span{float:right;color:var(--lc-muted);font-weight:400}
.listing-hours dl{margin:10px 0}.listing-hours dl>div{display:flex;gap:20px;padding:5px 0;font:400 13px/1.5 Arial,sans-serif}.listing-hours dd{margin:0}
.listing-hours p,.listing-missing,.listing-warning{font:400 12px/1.6 Arial,sans-serif;color:var(--lc-muted);margin:16px 0}
.listing-warning{border-left:2px solid var(--lc-accent);padding-left:12px}
.listing-operator-source{font:400 12px/1.6 Arial,sans-serif;color:var(--lc-muted);margin:16px 0 0}
.listing-operator-source a{color:var(--lc-accent);text-underline-offset:3px}
.listing-actions{display:flex;flex-wrap:wrap;gap:8px 14px;margin-top:20px;padding-top:12px;border-top:1px solid var(--lc-line)}
.listing-actions a,.listing-actions>span{display:inline-flex;align-items:center;min-height:44px;color:var(--lc-text);font:600 12px/1.5 Arial,sans-serif;text-underline-offset:4px}
.listing-actions .listing-profile{color:var(--lc-accent)}
.listing-profile-icon{flex:0 0 auto;margin-left:8px;font:700 16px/1 Arial,sans-serif}
.listing-actions .listing-profile{display:flex;justify-content:space-between;gap:12px;width:100%;min-height:56px;padding:12px 16px;border:1px solid var(--lc-accent);background:var(--lc-accent);color:var(--lc-button-text,#171014);text-decoration:none;font-size:14px;line-height:1.35}
.listing-profile-icon{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;margin-left:0;border:1px solid currentColor;border-radius:50%}
.listing-actions .listing-profile:hover{filter:brightness(1.08)}
.listing-controls{display:grid;grid-template-columns:1fr 1fr auto;align-items:end;gap:14px;padding:18px;border:1px solid var(--lc-line);background:var(--lc-bg);border-radius:8px}
.listing-controls label{display:grid;gap:8px;color:var(--lc-muted);font:500 12px/1.5 Arial,sans-serif;min-width:0}
.listing-controls input,.listing-controls select,.listing-controls button{box-sizing:border-box;width:100%;min-width:0;min-height:44px;border:1px solid var(--lc-line);border-radius:4px;background:var(--lc-bg);color:var(--lc-text);padding:10px;font:400 16px/1.3 Arial,sans-serif}
.listing-controls button{width:auto;cursor:pointer;color:var(--lc-accent)}
.listing-controls [role="status"]{grid-column:1/-1;margin:0;font:400 12px/1.5 Arial,sans-serif;color:var(--lc-muted)}
.listing-empty{padding:20px;border:1px solid var(--lc-line);font:400 14px/1.6 Arial,sans-serif}
.listing-collection :is(a,input,select,button,summary):focus-visible{outline:2px solid var(--lc-accent);outline-offset:4px}
/* The massage comparison needs the full width, not the old half-width teaser column. */
.em-examples{display:block}.em-examples-heading{max-width:720px}.em-examples-heading p{max-width:680px}
@media(max-width:760px){.listing-grid{grid-template-columns:1fr}.listing-card{padding:20px}.listing-controls{grid-template-columns:1fr}.listing-controls button{justify-self:start}.listing-facts>div{grid-template-columns:1fr;gap:2px}.listing-card-heading h3{font-size:25px}}
