/* ============================================================
   LiveLocalVibes — public band + venue pages (Sep 30 2026)
   Loaded after css/llv.css on band-public.html and venue-public.html.
   Same language as the homepage: dark stage, Bebas display type,
   purple/pink glow, lime for "live" moments, ticket-stub show rows.
   The one loud moment is the hero: the name on a stage-lit backdrop
   with the next show pinned beside it like a ticket. Everything after
   that stays quiet so the page reads top to bottom.
   ============================================================ */
:root{--lime:#daff8c;--lime-dim:#c3f06a;--jump-top:84px;}
@media (max-width:720px){:root{--jump-top:70px;}}

.btn-lime{background:var(--lime);color:#1b2510;border-color:var(--lime);}
.btn-lime:hover{background:var(--lime-dim);box-shadow:0 6px 22px rgba(218,255,140,.3);}
.pf-page .lightbox .lb-btn llv-icon{width:32px;height:32px;}
.pf-page section[id]{scroll-margin-top:calc(var(--jump-top) + 56px);}
.notif-item{padding:8px 10px;font-size:.85rem;color:var(--text);border-bottom:1px solid var(--line);}
.notif-item span{display:block;color:var(--muted);font-size:.72rem;margin-top:2px;}

/* ---------- Hero ---------- */
.pf-hero{position:relative;overflow:hidden;border-bottom:1px solid var(--line);isolation:isolate;}
.pf-hero-bg{position:absolute;inset:0;z-index:-2;
  background:url("/brand/brick-header.jpg") center 20%/cover no-repeat,var(--surface);
  filter:saturate(.9);}
.pf-hero-bg.has-photo{background-position:center 30%;background-size:cover;background-repeat:no-repeat;filter:none;}
.pf-hero::after{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;
  background:
    radial-gradient(60% 80% at 12% 100%,rgba(162,89,255,.35),transparent 70%),
    radial-gradient(40% 60% at 95% 10%,rgba(255,77,109,.18),transparent 70%),
    linear-gradient(180deg,rgba(18,18,31,.45) 0%,rgba(18,18,31,.78) 55%,var(--bg) 100%);}
.pf-hero-inner{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:28px 40px;align-items:end;padding-top:110px;padding-bottom:34px;}
.pf-id{display:flex;align-items:flex-end;gap:22px;min-width:0;}
.pf-logo{width:132px;height:132px;border-radius:24px;object-fit:cover;flex-shrink:0;background:var(--surface-2);
  border:2px solid rgba(255,255,255,.16);box-shadow:0 0 0 1px rgba(162,89,255,.35),0 18px 50px rgba(0,0,0,.55),0 0 40px rgba(162,89,255,.35);}
.pf-logo--initials{display:inline-flex;align-items:center;justify-content:center;font-family:'Bebas Neue',sans-serif;font-size:3.4rem;color:#fff;
  background:radial-gradient(circle at 30% 20%,rgba(162,89,255,.95),rgba(255,77,109,.6) 60%,var(--surface-2));}
.pf-id-text{min-width:0;}
.pf-kicker{display:flex;align-items:center;gap:10px;flex-wrap:wrap;color:var(--lime);font-size:.85rem;font-weight:700;margin-bottom:4px;}
.pf-badge{display:inline-flex;align-items:center;gap:5px;color:#FFB547;background:rgba(255,181,71,.12);border:1px solid rgba(255,181,71,.45);border-radius:999px;padding:.12rem .6rem;font-size:.74rem;}
.pf-badge llv-icon{width:14px;height:14px;}
.pf-name{font-family:'Bebas Neue',sans-serif;font-weight:400;font-size:clamp(2.8rem,7.5vw,5.4rem);line-height:.9;letter-spacing:.015em;
  text-shadow:0 0 34px rgba(162,89,255,.55),0 2px 0 rgba(0,0,0,.35);overflow-wrap:anywhere;}
.pf-meta{display:flex;align-items:center;flex-wrap:wrap;gap:4px 0;color:rgba(232,230,240,.82);font-size:.98rem;margin-top:8px;}
.pf-dot{display:inline-block;width:4px;height:4px;border-radius:50%;background:var(--muted);margin:0 10px;}
.pf-chips{display:flex;flex-wrap:wrap;gap:6px;margin-top:12px;}
.pf-chip{display:inline-flex;align-items:center;gap:5px;font-size:.78rem;font-weight:600;color:var(--text);background:rgba(18,18,31,.6);
  border:1px solid rgba(255,255,255,.14);border-radius:999px;padding:.28rem .75rem;backdrop-filter:blur(6px);}
.pf-chip--rating{color:var(--lime);border-color:rgba(218,255,140,.45);}
.pf-chip--rating span{color:var(--muted);font-weight:500;}
.pf-chip llv-icon{width:14px;height:14px;}

.pf-hero-side{display:flex;flex-direction:column;align-items:stretch;gap:14px;width:min(340px,100%);}
.pf-actions{display:flex;flex-wrap:wrap;gap:8px;}
.pf-actions .btn{flex:1 1 auto;white-space:nowrap;}
.pf-icon-btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;font:600 .9rem 'Inter',sans-serif;color:var(--text);
  background:rgba(18,18,31,.55);border:1.5px solid rgba(255,255,255,.18);border-radius:10px;padding:.62rem 1rem;cursor:pointer;backdrop-filter:blur(6px);transition:border-color .15s;}
.pf-icon-btn:hover{border-color:var(--purple);}
.pf-icon-btn llv-icon{width:18px;height:18px;}

/* Next show: a ticket pinned in the hero */
.pf-next-wrap:empty{display:none;}
.pf-next{display:block;background:rgba(24,24,38,.86);border:1px solid rgba(255,255,255,.14);border-radius:16px;padding:12px 14px 14px;
  color:var(--text);backdrop-filter:blur(10px);box-shadow:0 18px 50px rgba(0,0,0,.45);transition:border-color .15s,transform .15s;}
.pf-next:hover{border-color:var(--purple);transform:translateY(-2px);}
.pf-next.is-today{border-color:rgba(218,255,140,.6);box-shadow:0 0 0 1px rgba(218,255,140,.25),0 0 34px rgba(218,255,140,.18),0 18px 50px rgba(0,0,0,.45);}
.pf-next-label{display:flex;align-items:center;gap:7px;font-size:.78rem;font-weight:700;color:var(--lime);margin-bottom:8px;}
.pf-live-dot{width:8px;height:8px;border-radius:50%;background:var(--lime);animation:pfPulse 1.8s infinite;}
@keyframes pfPulse{0%{box-shadow:0 0 0 0 rgba(218,255,140,.55);}70%{box-shadow:0 0 0 10px rgba(218,255,140,0);}100%{box-shadow:0 0 0 0 rgba(218,255,140,0);}}
.pf-next-row{display:grid;grid-template-columns:58px 1fr;gap:12px;align-items:center;}
.pf-next-date{display:flex;flex-direction:column;align-items:center;border-right:2px dashed var(--line);padding-right:10px;}
.pf-next-date b{font-family:'Bebas Neue',sans-serif;font-weight:400;font-size:2.6rem;line-height:.85;color:var(--purple);}
.pf-next.is-today .pf-next-date b{color:var(--lime);}
.pf-next-date span{font-size:.72rem;font-weight:700;color:var(--muted);text-transform:uppercase;}
.pf-next-main{display:flex;flex-direction:column;min-width:0;}
.pf-next-head{font-family:'Bebas Neue',sans-serif;font-size:1.55rem;line-height:1;letter-spacing:.02em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.pf-next-sub{color:var(--muted);font-size:.82rem;margin-top:2px;}

/* ---------- Sticky jump bar ---------- */
.pf-jump{position:sticky;top:var(--jump-top);z-index:40;background:rgba(18,18,31,.9);backdrop-filter:blur(10px);border-bottom:1px solid var(--line);}
.pf-jump-inner{display:flex;gap:4px;overflow-x:auto;scrollbar-width:none;}
.pf-jump-inner::-webkit-scrollbar{display:none;}
.pf-jump a{position:relative;flex-shrink:0;display:inline-flex;align-items:center;gap:6px;padding:14px 12px;color:var(--muted);font-weight:600;font-size:.9rem;white-space:nowrap;transition:color .15s;}
.pf-jump a:hover{color:var(--text);}
.pf-jump a.is-on{color:var(--text);}
.pf-jump a.is-on::after{content:"";position:absolute;left:12px;right:12px;bottom:-1px;height:2px;border-radius:2px;background:var(--purple);box-shadow:0 0 10px var(--purple);}
.pf-count{font-size:.7rem;font-weight:700;background:rgba(162,89,255,.18);color:var(--text);border-radius:999px;padding:0 7px;}
.pf-count:empty{display:none;}

/* ---------- Sections ---------- */
.pf-section{padding:48px 0;}
.pf-section--alt{background:var(--surface);border-top:1px solid var(--line);border-bottom:1px solid var(--line);}
.pf-head{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin-bottom:16px;}
.pf-h2{font-family:'Bebas Neue',sans-serif;font-weight:400;font-size:clamp(1.9rem,4vw,2.4rem);letter-spacing:.02em;line-height:1;}
.pf-h3{font-family:'Bebas Neue',sans-serif;font-weight:400;font-size:1.35rem;letter-spacing:.02em;margin:22px 0 10px;}
.pf-head-link{color:var(--purple);font-weight:600;font-size:.88rem;white-space:nowrap;}
.pf-head-link:hover{text-decoration:underline;}
.pf-fine{color:var(--muted);font-size:.85rem;}
.pf-fine a{color:var(--purple);font-weight:600;}
.pf-loading{color:var(--muted);}
.pf-empty{border:1px dashed var(--line);border-radius:14px;padding:22px;text-align:center;color:var(--muted);grid-column:1 / -1;}
.pf-empty b{color:var(--text);}
.pf-empty p + p{margin-top:4px;}
.pf-empty a{color:var(--purple);font-weight:600;}
.pf-more{grid-column:1 / -1;width:100%;margin-top:4px;padding:.75rem;background:none;border:1px solid var(--line);border-radius:12px;color:var(--text);font:600 .9rem 'Inter',sans-serif;cursor:pointer;}
.pf-more:hover{border-color:var(--purple);}
.pf-more span{color:var(--muted);font-weight:500;}

/* ---------- Show rows (ticket stubs) ---------- */
.pf-shows{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;}
@media (max-width:860px){.pf-shows{grid-template-columns:1fr;}}
.pt-row{display:grid;grid-template-columns:64px 1fr;background:var(--surface);border:1px solid var(--line);border-radius:14px;overflow:hidden;color:var(--text);transition:border-color .15s,transform .15s;}
.pt-row:hover{border-color:var(--purple);transform:translateY(-2px);}
.pt-row:focus-visible{outline:2px solid var(--purple);outline-offset:2px;}
.pt-date{display:flex;flex-direction:column;align-items:center;justify-content:center;border-right:2px dashed var(--line);padding:10px 4px;
  background:linear-gradient(180deg,rgba(162,89,255,.22),rgba(162,89,255,.04));}
.pt-date span{font-size:.68rem;font-weight:700;color:var(--muted);text-transform:uppercase;}
.pt-date b{font-family:'Bebas Neue',sans-serif;font-weight:400;font-size:2.2rem;line-height:.95;color:var(--purple);}
.pt-row.is-today .pt-date{background:linear-gradient(180deg,rgba(218,255,140,.2),rgba(218,255,140,.03));}
.pt-row.is-today .pt-date span,.pt-row.is-today .pt-date b{color:var(--lime);}
.pt-body{display:flex;align-items:center;gap:12px;padding:10px 14px;min-width:0;}
.pt-logo{width:44px;height:44px;border-radius:10px;object-fit:cover;flex-shrink:0;border:1px solid var(--line);background:var(--surface-2);}
.pt-logo--initials{display:inline-flex;align-items:center;justify-content:center;font-family:'Bebas Neue',sans-serif;font-size:1.2rem;color:var(--purple);background:rgba(162,89,255,.12);}
.pt-main{flex:1;min-width:0;display:flex;flex-direction:column;}
.pt-headline{font-family:'Bebas Neue',sans-serif;font-size:1.4rem;line-height:1;letter-spacing:.02em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.pt-sub{color:var(--muted);font-size:.84rem;margin-top:3px;}
.pt-genres{display:flex;flex-wrap:wrap;gap:4px;margin-top:5px;}
.pt-genres span{font-size:.68rem;color:var(--muted);border:1px solid var(--line);border-radius:999px;padding:0 8px;}
.pt-cta{display:inline-flex;align-items:center;color:var(--purple);font-size:.8rem;font-weight:700;flex-shrink:0;}
@media (max-width:480px){.pt-cta{font-size:0;}.pt-cta llv-icon{font-size:1rem;}}

/* ---------- Looking for a member ---------- */
.pf-member{margin-top:-24px;margin-bottom:24px;}
.pf-listing{display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap;background:linear-gradient(120deg,rgba(162,89,255,.14),rgba(255,77,109,.08));
  border:1px solid rgba(162,89,255,.4);border-radius:16px;padding:18px 20px;}
.pf-listing-role{font-family:'Bebas Neue',sans-serif;font-weight:400;font-size:1.7rem;line-height:1;margin:4px 0;}
.pf-listing-msg{color:var(--text);font-size:.9rem;margin-top:6px;max-width:60ch;}

/* ---------- About + facts ---------- */
.pf-about{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(260px,1fr);gap:40px;align-items:start;}
@media (max-width:860px){.pf-about{grid-template-columns:1fr;gap:24px;}}
.pf-bio{margin-top:12px;color:var(--text);font-size:1.02rem;line-height:1.7;white-space:pre-line;max-width:68ch;}
.pf-website{display:inline-flex;align-items:center;margin-top:16px;color:var(--purple);font-weight:600;}
.pf-website:hover{text-decoration:underline;}
.pf-tags{display:flex;flex-wrap:wrap;gap:6px;}
.pf-tags span{font-size:.82rem;font-weight:600;color:var(--text);background:var(--surface-2);border:1px solid var(--line);border-radius:999px;padding:.3rem .8rem;}
.pf-tags span.is-empty{color:var(--muted);font-weight:500;border-style:dashed;}
.pf-facts{background:var(--bg);border:1px solid var(--line);border-radius:16px;overflow:hidden;}
.pf-fact-block{padding:16px 18px;}
.pf-fact-block + .pf-fact-block{border-top:1px solid var(--line);}
.pf-fact-block h3{font-size:.8rem;font-weight:700;color:var(--muted);margin:0 0 10px;font-family:'Inter',sans-serif;letter-spacing:.02em;}
.pf-socials{display:flex;flex-wrap:wrap;gap:6px;}
.pf-social{display:inline-flex;align-items:center;gap:6px;font-size:.84rem;font-weight:600;color:var(--text);border:1px solid var(--line);border-radius:10px;padding:.4rem .7rem;transition:border-color .15s;}
.pf-social:hover{border-color:var(--purple);}
.pf-social img{width:16px;height:16px;object-fit:contain;}
.pf-tip{background:linear-gradient(160deg,rgba(218,255,140,.07),transparent 70%);}
.pf-tip-row{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px;}
.pf-tip-row .tip-btn{border-color:rgba(218,255,140,.5);}
.pf-hours{display:grid;gap:2px;margin:0;}
.pf-hours div{display:grid;grid-template-columns:48px 1fr;gap:8px;font-size:.88rem;padding:3px 6px;border-radius:6px;}
.pf-hours dt{color:var(--muted);font-weight:600;}
.pf-hours dd{margin:0;color:var(--text);}
.pf-hours div.is-today{background:rgba(218,255,140,.08);}
.pf-hours div.is-today dt,.pf-hours div.is-today dd{color:var(--lime);}
.pf-contact{display:flex;flex-direction:column;gap:6px;}
.pf-contact a{display:inline-flex;align-items:center;color:var(--text);font-weight:600;font-size:.92rem;overflow-wrap:anywhere;}
.pf-contact a:hover{color:var(--purple);}

/* ---------- Photos ---------- */
.pf-photos{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;}
.pf-photo{position:relative;aspect-ratio:1;padding:0;border:1px solid var(--line);border-radius:12px;overflow:hidden;cursor:zoom-in;background:var(--surface-2);}
.pf-photo img{width:100%;height:100%;object-fit:cover;transition:transform .35s ease;}
.pf-photo:hover img{transform:scale(1.04);}
.pf-photo:focus-visible{outline:2px solid var(--purple);outline-offset:2px;}
.pf-photos.has-feature .pf-photo:first-child{grid-column:span 2;grid-row:span 2;}
@media (max-width:640px){.pf-photos{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;}}
#pfGallery > .pf-more{margin-top:10px;}

/* ---------- Reviews ---------- */
.pf-reviews{display:grid;grid-template-columns:minmax(260px,340px) minmax(0,1fr);gap:40px;align-items:start;}
@media (max-width:860px){.pf-reviews{grid-template-columns:1fr;gap:20px;}}
.pf-rating-card{display:flex;align-items:center;gap:14px;margin:14px 0 6px;}
.pf-rating-num{font-family:'Bebas Neue',sans-serif;font-size:3.6rem;line-height:.9;color:var(--text);}
.pf-rating-card > span:last-child{display:flex;flex-direction:column;gap:2px;}
.pf-rating-stars,.pf-review-stars{color:var(--purple);}
.pf-rating-stars llv-icon{width:18px;height:18px;}
.pf-review-form{margin-top:18px;}
.pf-review-form .pf-h3{margin-top:0;}
.pf-review-form textarea{width:100%;margin:10px 0;background:var(--field);border:1px solid var(--field-line);border-radius:10px;color:var(--text);padding:.65rem .75rem;font:inherit;resize:vertical;}
.pf-review-form textarea:focus{outline:none;border-color:var(--purple);box-shadow:0 0 0 3px rgba(162,89,255,.2);}
.pf-review-form .star-input .star llv-icon{width:28px;height:28px;}
.pf-review-list{display:flex;flex-direction:column;gap:10px;}
.pf-review{background:var(--bg);border:1px solid var(--line);border-radius:14px;padding:14px 16px;}
.pf-review-top{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap;}
.pf-review-who{color:var(--muted);font-size:.78rem;}
.pf-review p{margin-top:6px;color:var(--text);line-height:1.55;font-size:.94rem;white-space:pre-line;}
.pf-review-stars llv-icon{width:15px;height:15px;}

/* ---------- Map ---------- */
.pf-address{display:flex;align-items:center;flex-wrap:wrap;gap:4px 10px;color:var(--text);margin-bottom:12px;}
.pf-address a{color:var(--purple);font-weight:600;}
.pf-map{height:320px;border-radius:16px;border:1px solid var(--line);background:var(--surface);overflow:hidden;}
#mapStatus{margin-top:8px;}
#mapStatus:empty{display:none;}

/* ---------- Closing CTA ---------- */
.pf-cta{padding:0 0 56px;}
.pf-cta-inner{display:flex;align-items:center;justify-content:space-between;gap:20px;flex-wrap:wrap;padding-top:34px;padding-bottom:34px;
  background:radial-gradient(80% 140% at 0% 0%,rgba(162,89,255,.22),transparent 60%),radial-gradient(60% 120% at 100% 100%,rgba(255,77,109,.14),transparent 60%),var(--surface);
  border:1px solid rgba(162,89,255,.35);border-radius:20px;}
.pf-cta-inner p{color:var(--muted);margin-top:6px;max-width:52ch;}

/* ---------- Phones ---------- */
@media (max-width:820px){
  .pf-hero-inner{grid-template-columns:1fr;padding-top:72px;padding-bottom:22px;gap:18px;}
  .pf-hero-side{width:100%;}
  .pf-id{align-items:center;gap:14px;}
  .pf-logo{width:88px;height:88px;border-radius:18px;}
  .pf-logo--initials{font-size:2.4rem;}
  .pf-meta{font-size:.88rem;}
  .pf-section{padding:36px 0;}
  .pf-cta-inner{margin:0 16px;width:auto;padding:24px 20px;}
  .pf-map{height:240px;}
}
@media (max-width:480px){
  .pf-id{flex-direction:column;align-items:flex-start;gap:10px;}
  .pf-logo{width:72px;height:72px;border-radius:16px;}
  .pf-head .pf-head-link{font-size:.8rem;}
  .pf-actions .btn{flex:1 1 100%;}
  .pf-icon-btn{flex:1 1 0;}
}
@media (prefers-reduced-motion:reduce){
  .pt-row,.pf-next,.pf-photo img{transition:none;}
  .pt-row:hover,.pf-next:hover{transform:none;}
  .pf-live-dot{animation:none;}
}

/* ============================================================
   Round 2, Phase 4 (Oct 2026): phone polish + Pro sections
   ============================================================ */
/* Big action row under the hero: 2–3 equal buttons, never wrapping */
.pf-actions{flex-wrap:nowrap;}
.pf-actions > .pf-icon-btn{flex:1 1 0;min-width:0;min-height:48px;}
.pf-actions > .pf-icon-btn > span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.pf-actions > .pf-icon-btn--lime{flex-grow:1.7;background:var(--lime);border-color:var(--lime);color:#1b2510;}
.pf-actions > .pf-icon-btn--lime:hover{background:var(--lime-dim);border-color:var(--lime-dim);}
.pf-badge--pro{color:#1b2510;background:var(--lime);border-color:var(--lime);font-weight:700;letter-spacing:.04em;text-transform:uppercase;}

/* Jump bar: one line, no sideways scroll (profile-common.js hides the least-used links if needed) */
.pf-jump-inner{overflow:hidden;}
.pf-jump a.is-dropped{display:none;}

/* Pinned announcement */
.pf-announce{padding:16px 0 0;}
.pf-announce-card{display:flex;align-items:center;gap:12px;padding:12px 14px;border-radius:14px;border:1px solid rgba(218,255,140,.45);
  background:linear-gradient(120deg,rgba(218,255,140,.10),rgba(162,89,255,.10));}
.pf-announce-card > llv-icon{flex-shrink:0;width:22px;height:22px;}
.pf-announce-text{flex:1;min-width:0;margin:0;font-weight:600;color:var(--text);line-height:1.4;}
.pf-announce-link{flex-shrink:0;display:inline-flex;align-items:center;gap:2px;min-height:44px;color:var(--lime);font-weight:700;font-size:.88rem;}
.pf-announce-link llv-icon{width:16px;height:16px;}

/* Show rows: Pro flyer thumbnail (portrait, in the logo spot) */
.pt-flyer{width:44px;height:58px;border-radius:6px;object-fit:cover;}

/* Merch & links, Band site */
.pf-links{display:flex;flex-direction:column;gap:6px;}
.pf-link{display:flex;align-items:center;justify-content:space-between;gap:8px;min-height:44px;padding:0 12px;border:1px solid var(--line);border-radius:10px;color:var(--text);font-weight:600;font-size:.9rem;}
.pf-link:hover{border-color:var(--purple);}
.pf-link > span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.pf-link llv-icon{flex-shrink:0;width:16px;height:16px;color:var(--purple);}
.pf-site-link{display:inline-flex;align-items:center;min-height:44px;color:var(--purple);font-weight:600;overflow-wrap:anywhere;}
.pf-site-link:hover{text-decoration:underline;}

/* Press kit */
.pf-press{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(260px,1fr);gap:28px;align-items:start;}
.pf-press .pf-bio{margin:0 0 16px;}
.pf-press-facts{display:grid;gap:12px;margin:0 0 16px;}
.pf-press-facts > div{display:grid;grid-template-columns:120px 1fr;gap:10px;align-items:baseline;}
.pf-press-facts dt{color:var(--muted);font-weight:700;font-size:.82rem;}
.pf-press-facts dd{margin:0;color:var(--text);}
.pf-lineup{list-style:none;margin:0;padding:0;display:grid;gap:4px;}
.pf-lineup span{color:var(--muted);}
.pf-pre{white-space:pre-line;}
.pf-press-photos{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;}
.pf-press-photos:empty{display:none;}
.pf-press-book{background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:16px 18px;}
.pf-press-book .pf-h3{margin-top:0;}
.pf-press-book .pf-contact a{min-height:44px;}
.pf-press-cta{width:100%;margin-top:12px;min-height:48px;}
.pf-press-book .pf-fine{margin-top:10px;}

/* Venue: live music nights, "Want to play here?", specials + menu, calendar */
.pf-nights{margin-top:22px;}
.pf-nights .pf-h3{margin-top:0;}
.pf-nights-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:8px;}
.pf-night{display:flex;align-items:center;gap:12px;padding:12px 14px;background:var(--surface);border:1px solid var(--line);border-radius:14px;}
.pf-night > llv-icon{flex-shrink:0;width:22px;height:22px;}
.pf-night-main{display:flex;flex-direction:column;min-width:0;}
.pf-night-when{font-family:'Bebas Neue',sans-serif;font-size:1.35rem;line-height:1.05;letter-spacing:.02em;color:var(--text);}
.pf-night-sub{color:var(--muted);font-size:.84rem;}
.pf-playhere{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap;margin-top:18px;padding:16px 18px;border-radius:16px;
  border:1px solid rgba(218,255,140,.45);background:linear-gradient(120deg,rgba(218,255,140,.08),rgba(162,89,255,.08));}
.pf-playhere-title{font-family:'Bebas Neue',sans-serif;font-size:1.5rem;line-height:1;color:var(--text);margin:0 0 4px;}
.pf-playhere .btn{min-height:48px;}
.pf-specials{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:10px;}
.pf-specials:empty{display:none;}
.pf-special{background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:14px 16px;}
.pf-special-title{font-family:'Bebas Neue',sans-serif;font-size:1.45rem;line-height:1.05;letter-spacing:.02em;color:var(--text);margin:0;}
.pf-special-when{display:flex;align-items:center;color:var(--lime);font-weight:600;font-size:.86rem;margin:4px 0 0;}
.pf-special-details{color:var(--muted);font-size:.9rem;line-height:1.5;margin:6px 0 0;}
.pf-menu-btn{margin-top:14px;min-height:48px;}
.pf-specials:empty + .pf-menu-btn{margin-top:0;}
.pf-calendar iframe{display:block;width:100%;border:0;border-radius:14px;background:var(--surface);}

/* Photo viewer: counter + room for phone notches */
.lb-count{position:absolute;left:0;right:0;bottom:calc(18px + env(safe-area-inset-bottom,0px));margin:0;text-align:center;color:rgba(255,255,255,.8);font-weight:600;font-size:.9rem;}
.lb-count:empty{display:none;}
.lightbox.is-single .lb-prev,.lightbox.is-single .lb-next{display:none;}
.pf-page .lightbox .lb-btn{min-width:48px;min-height:48px;display:inline-flex;align-items:center;justify-content:center;}
html.pf-lb-open,html.pf-lb-open body{overflow:hidden;}

@media (max-width:860px){
  .pf-press{grid-template-columns:1fr;gap:18px;}
}
/* Phones: the hero fits on the first screen (name, logo, genres/amenities, city, rating, next show, actions) */
@media (max-width:820px){
  .pf-hero-inner{padding-top:56px;padding-bottom:18px;gap:14px;}
  .pf-jump-inner{padding-left:8px;padding-right:8px;justify-content:space-between;gap:0;}
  .pf-jump a{padding:14px 8px;font-size:.86rem;}
  .pf-jump a.is-on::after{left:8px;right:8px;}
}
@media (max-width:480px){
  .pf-id{flex-direction:row;align-items:center;gap:12px;}
  .pf-logo{width:64px;height:64px;border-radius:14px;}
  .pf-logo--initials{font-size:2rem;}
  .pf-name{font-size:clamp(2.2rem,11vw,2.9rem);}
  .pf-meta{margin-top:4px;}
  .pf-chips{margin-top:8px;}
  .pf-actions{gap:6px;}
  .pf-actions > .pf-icon-btn{padding:.6rem .5rem;font-size:.86rem;gap:5px;}
  .pf-press-facts > div{grid-template-columns:1fr;gap:2px;}
  .lb-prev{left:4px;}.lb-next{right:4px;}.lb-close{top:calc(8px + env(safe-area-inset-top,0px));right:8px;}
  .lb-img{max-width:100%;max-height:78%;border-radius:0;}
}
@media (max-width:480px){ .pf-id{align-items:flex-start;} .pf-id > .pf-logo{margin-top:4px;} }
/* Narrow phones with three action buttons: drop the icons so every label fits */
@media (max-width:380px){ .pf-actions > .pf-icon-btn llv-icon{display:none;} }

/* Report a review (Oct 2026) */
.pf-report-link{margin-top:8px;background:none;border:0;padding:0;color:var(--muted);font:inherit;font-size:.76rem;text-decoration:underline;text-underline-offset:2px;cursor:pointer;}
.pf-report-link:hover{color:var(--text);}
.pf-report-form{display:flex;flex-direction:column;gap:6px;margin-top:10px;padding-top:10px;border-top:1px solid var(--line);font-size:.85rem;}
.pf-report-form label{color:var(--muted);font-size:.78rem;}
.pf-report-form select,.pf-report-form textarea{width:100%;background:var(--field);border:1px solid var(--field-line);border-radius:8px;color:var(--text);padding:.45rem .6rem;font:inherit;}
.pf-report-actions{display:flex;gap:8px;margin-top:4px;}
.pf-report-actions button{border-radius:8px;padding:.4rem .8rem;font:inherit;font-size:.82rem;cursor:pointer;border:1px solid var(--line);background:transparent;color:var(--text);}
.pf-report-actions .pf-report-send{background:var(--purple);border-color:var(--purple);color:#fff;}
.pf-report-actions button:disabled{opacity:.6;cursor:default;}
.pf-report-status{color:var(--muted);font-size:.8rem;margin:4px 0 0;}

/* Band viewing its own page from the dashboard (Oct 10 2026) */
.pf-ownerbar{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;padding:10px 16px;background:rgba(162,89,255,.14);border-bottom:1px solid rgba(162,89,255,.35);color:var(--text);font-size:.9rem;font-weight:600;}
.pf-ownerbar-btn{display:inline-flex;align-items:center;gap:6px;min-height:40px;padding:0 14px;border-radius:10px;background:var(--purple);color:#fff;text-decoration:none;font-weight:700;font-size:.88rem;}
.pf-ownerbar-btn llv-icon{width:18px;height:18px;}

/* ---------- Save to favorites (Oct 10 2026, /js/favorites.js) ---------- */
.pf-fav-btn.is-saved{border-color:#FF4D6D;color:#FFD3DC;background:rgba(255,77,109,.12);--llv-icon-color:#FF4D6D;}
.pf-fav-btn.is-saved llv-icon svg{fill:#FF4D6D;}
.pf-fav-btn:disabled{opacity:.7;cursor:wait;}
.fav-toast{position:fixed;left:50%;width:max-content;bottom:calc(var(--tabbar-h, 0px) + 16px);z-index:120;transform:translate(-50%,12px);max-width:calc(100vw - 32px);padding:12px 16px;border-radius:12px;background:#3A3A55;color:#F1F0F6;font:600 .9rem Inter,sans-serif;box-shadow:0 12px 30px rgba(0,0,0,.45);opacity:0;pointer-events:none;transition:opacity .2s,transform .2s;}
.fav-toast.is-on{opacity:1;transform:translate(-50%,0);}
.pf-special-now{display:inline-block;margin-left:6px;padding:1px 8px;border-radius:999px;background:#3EE6E0;color:#0d1a1f;font-size:.7rem;font-weight:800;vertical-align:middle;}
.pf-special-kind{display:inline-block;margin-left:6px;padding:1px 8px;border-radius:999px;border:1px solid rgba(255,255,255,.25);color:#cfcde0;font-size:.7rem;font-weight:600;vertical-align:middle;}

/* ============================================================
   Meet the band (Oct 21 2026): /js/band-members-view.js
   A swipeable row of member cards (photo, role tag, name). Tapping one opens a sheet with up to 2 photos,
   the bio and Previous / Next member. Bottom sheet on phones, centered card on desktop.
   ============================================================ */
.bm-section.hidden { display: none; }
.bm-head { align-items: baseline; }
.bm-count { color: var(--muted); font-size: .85rem; }
.bm-row { display: flex; gap: 14px; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; padding: 4px 2px 8px; }
.bm-row::-webkit-scrollbar { display: none; }
.bm-card { flex: 0 0 168px; scroll-snap-align: start; display: flex; flex-direction: column; gap: 8px; padding: 0; border: 0; background: none; color: var(--text); text-align: left; cursor: pointer; font-family: inherit; }
.bm-pic { position: relative; display: block; height: 214px; border-radius: 18px; overflow: hidden; border: 1px solid var(--line); background: linear-gradient(135deg, var(--purple), var(--pink)); transition: transform .2s ease, box-shadow .2s ease; }
.bm-pic img { width: 100%; height: 100%; object-fit: cover; display: block; }
.bm-pic::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(18, 18, 31, 0) 55%, rgba(18, 18, 31, .8)); }
.bm-card:hover .bm-pic { transform: translateY(-3px); box-shadow: 0 10px 24px rgba(162, 89, 255, .25); }
.bm-card:focus-visible { outline: none; }
.bm-card:focus-visible .bm-pic { outline: 2px solid var(--lime, #daff8c); outline-offset: 2px; }
.bm-initials { display: flex; width: 100%; height: 100%; align-items: center; justify-content: center; font: 400 3.4rem/1 'Bebas Neue', sans-serif; color: #fff; }
.bm-role { position: absolute; left: 8px; bottom: 8px; z-index: 1; max-width: calc(100% - 16px); padding: 4px 9px; border-radius: 999px; background: rgba(18, 18, 31, .9); color: var(--lime, #daff8c);
  font: 800 .64rem/1.2 Inter, system-ui, sans-serif; letter-spacing: .07em; text-transform: uppercase; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.bm-two { position: absolute; right: 9px; top: 9px; z-index: 1; display: flex; gap: 3px; }
.bm-two i { width: 6px; height: 6px; border-radius: 50%; background: rgba(255, 255, 255, .5); }
.bm-two i:first-child { background: #fff; }
.bm-name { padding: 0 2px; font: 400 1.25rem/1.05 'Bebas Neue', sans-serif; letter-spacing: .02em; }

.bm-sheet { position: fixed; inset: 0; z-index: 120; display: flex; align-items: center; justify-content: center; padding: 20px; background: rgba(8, 8, 16, 0); transition: background .22s ease; }
.bm-sheet[hidden] { display: none; }
.bm-sheet.is-open { background: rgba(8, 8, 16, .72); }
.bm-sheet-card { position: relative; width: 100%; max-width: 440px; max-height: calc(100vh - 40px); overflow-y: auto; border-radius: 24px; border: 1px solid var(--line); background: var(--surface);
  box-shadow: 0 24px 60px rgba(0, 0, 0, .6); transform: translateY(24px) scale(.98); opacity: 0; transition: transform .25s cubic-bezier(.22, .9, .32, 1), opacity .2s ease; }
.bm-sheet.is-open .bm-sheet-card { transform: none; opacity: 1; }
.bm-photos { display: flex; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; height: min(52vh, 420px); background: linear-gradient(135deg, var(--purple), var(--pink)); }
.bm-photos::-webkit-scrollbar { display: none; }
.bm-photos img { flex: 0 0 100%; width: 100%; height: 100%; object-fit: cover; scroll-snap-align: start; }
.bm-initials--big { flex: 0 0 100%; font-size: 6rem; }
.bm-x { position: absolute; top: 12px; right: 12px; width: 44px; height: 44px; border: 0; border-radius: 50%; background: rgba(18, 18, 31, .7); color: #fff; display: inline-flex; align-items: center; justify-content: center; cursor: pointer; }
.bm-x llv-icon { width: 22px; height: 22px; }
.bm-dots { display: flex; justify-content: center; gap: 2px; margin-top: -34px; position: relative; height: 34px; }
.bm-dots:empty { display: none; }
.bm-dot { width: 28px; height: 28px; padding: 0; border: 0; background: none; cursor: pointer; display: inline-flex; align-items: center; justify-content: center; }
.bm-dot::before { content: ""; width: 8px; height: 8px; border-radius: 4px; background: rgba(255, 255, 255, .5); transition: width .2s; }
.bm-dot.is-on::before { width: 22px; background: #fff; }
.bm-body { padding: 16px 20px 20px; }
.bm-kicker { margin: 0 0 4px; font: 800 .7rem/1.3 Inter, system-ui, sans-serif; letter-spacing: .1em; text-transform: uppercase; color: #FF7088; }
.bm-sheet-name { margin: 0; font: 400 2.4rem/.95 'Bebas Neue', sans-serif; letter-spacing: .02em; }
.bm-since { margin: 6px 0 0; color: var(--muted); font-size: .85rem; }
.bm-since[hidden] { display: none; }
.bm-bio { margin: 12px 0 0; font-size: .98rem; line-height: 1.55; color: #d6d3e4; white-space: pre-line; }
.bm-bio.is-empty { color: var(--muted); font-style: italic; }
.bm-nav { display: flex; justify-content: space-between; gap: 10px; margin-top: 18px; }
.bm-nav[hidden] { display: none; }
.bm-step { display: inline-flex; align-items: center; gap: 6px; min-height: 44px; padding: 0 14px; border-radius: 12px; border: 1px solid var(--line); background: var(--surface-2); color: var(--text); font: 600 .88rem Inter, system-ui, sans-serif; cursor: pointer; }
.bm-step llv-icon { width: 18px; height: 18px; }
.bm-x:focus-visible, .bm-step:focus-visible, .bm-dot:focus-visible { outline: 2px solid var(--lime, #daff8c); outline-offset: 2px; }
html.bm-open body { overflow: hidden; }
@media (max-width: 768px) {
  .bm-card { flex-basis: 148px; }
  .bm-pic { height: 190px; }
  .bm-sheet { align-items: flex-end; padding: 0; }
  .bm-sheet-card { max-width: none; max-height: calc(100vh - 48px); border-radius: 24px 24px 0 0; border-bottom: 0; transform: translateY(60px); }
  .bm-body { padding-bottom: calc(24px + env(safe-area-inset-bottom, 0px)); }
}
@media (prefers-reduced-motion: reduce) { .bm-sheet, .bm-sheet-card, .bm-pic, .bm-dot::before { transition: none; } }
