/* BME Venue 2.31.0 – service partners (black & gold). All rules are scoped to .bme-pt; colours are variables so
   Elementor (or the theme) can override them. */
.bme-pt { --pt-bg: #0b0b0e; --pt-card: #15151a; --pt-card2: #1c1c23; --pt-line: #2c2c36; --pt-text: #f1f1f4; --pt-muted: #a6a6b2; --pt-gold: #d4af37; --pt-gold2: #f5d77a; --pt-ok: #3fbf7f; --pt-bad: #e06464; --pt-radius: 12px;
  container-type: inline-size; container-name: bmept; color: var(--pt-text); background: var(--pt-bg); font-size: 15px; line-height: 1.55; padding: clamp(16px, 3vw, 36px); border-radius: var(--pt-radius); max-width: 1200px; margin: 0 auto; box-sizing: border-box; overflow-wrap: anywhere; }
.bme-pt *, .bme-pt *::before, .bme-pt *::after { box-sizing: border-box; }
.bme-pt a { color: var(--pt-gold2); }
.bme-pt h1, .bme-pt h2, .bme-pt h3 { color: var(--pt-text); margin: 0 0 .4em; line-height: 1.2; }
.bme-pt-kicker { color: var(--pt-gold); font-size: 12px; letter-spacing: .14em; text-transform: uppercase; margin: 0 0 6px; font-weight: 600; }
.bme-pt-title { font-size: clamp(26px, 4.4vw, 44px); font-weight: 700; }
.bme-pt-intro { color: var(--pt-muted); max-width: 720px; font-size: 16px; }
.bme-pt-muted { color: var(--pt-muted); font-size: 13.5px; }
.bme-pt-head { text-align: center; margin-bottom: 28px; }
.bme-pt-head .bme-pt-intro { margin-left: auto; margin-right: auto; }
.bme-pt-empty { text-align: center; padding: 40px 16px; border: 1px dashed var(--pt-line); border-radius: var(--pt-radius); color: var(--pt-muted); }

/* buttons */
.bme-pt-btn { display: inline-flex; align-items: center; justify-content: center; gap: 6px; min-height: 44px; padding: 10px 18px; border-radius: 999px; border: 1px solid var(--pt-gold); background: linear-gradient(180deg, var(--pt-gold2), var(--pt-gold)); color: #111 !important; font-weight: 700; font-size: 14px; text-decoration: none !important; cursor: pointer; transition: filter .15s, transform .15s; font-family: inherit; }
.bme-pt-btn:hover { filter: brightness(1.06); }
.bme-pt-btn:focus-visible, .bme-pt button:focus-visible, .bme-pt input:focus-visible, .bme-pt select:focus-visible, .bme-pt textarea:focus-visible, .bme-pt a:focus-visible { outline: 2px solid var(--pt-gold2); outline-offset: 2px; }
.bme-pt-btn[disabled] { opacity: .6; cursor: wait; }
.bme-pt-btn-ghost { background: transparent; color: var(--pt-gold2) !important; }
.bme-pt-btn-sm { min-height: 34px; padding: 6px 12px; font-size: 13px; }
.bme-pt-btn-block { width: 100%; }
.bme-pt-link { background: none; border: 0; color: var(--pt-gold2); cursor: pointer; padding: 4px 0; font: inherit; text-decoration: underline; }

/* listing */
.bme-pt-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 290px), 1fr)); gap: 20px; }
.bme-pt-card { background: var(--pt-card); border: 1px solid var(--pt-line); border-radius: var(--pt-radius); overflow: hidden; display: flex; flex-direction: column; transition: border-color .2s, transform .2s; }
.bme-pt-card:hover { border-color: var(--pt-gold); transform: translateY(-2px); }
.bme-pt-card-media { display: block; aspect-ratio: 16 / 10; background: #000; overflow: hidden; }
.bme-pt-card-media img { width: 100%; height: 100%; object-fit: cover; display: block; }
.bme-pt-card-media.is-empty { display: flex; align-items: center; justify-content: center; background: radial-gradient(circle at 30% 20%, #2a2410, #0b0b0e 70%); color: var(--pt-gold); letter-spacing: .2em; text-transform: uppercase; font-size: 13px; text-decoration: none; }
.bme-pt-card-body { padding: 16px 18px 18px; display: flex; flex-direction: column; gap: 6px; flex: 1; position: relative; }
.bme-pt-card-logo { width: 58px; height: 58px; border-radius: 50%; object-fit: cover; border: 2px solid var(--pt-gold); margin-top: -46px; background: #000; }
.bme-pt-card-name { font-size: 20px; margin: 2px 0 0; }
.bme-pt-card-name a { color: var(--pt-text); text-decoration: none; }
.bme-pt-card-short { color: var(--pt-muted); margin: 0; }
.bme-pt-card-area { color: var(--pt-gold2); font-size: 13.5px; margin: 0; }
.bme-pt-card-actions { display: flex; gap: 10px; flex-wrap: wrap; margin-top: auto; padding-top: 10px; }
.bme-pt-card-actions .bme-pt-btn { flex: 1 1 130px; white-space: nowrap; }   /* 2.39.0 nowrap: buttons stack instead of breaking their label in two */
.bme-pt-socials { display: flex; gap: 8px; flex-wrap: wrap; margin: 4px 0; }
.bme-pt-soc { display: inline-flex; width: 36px; height: 36px; align-items: center; justify-content: center; border: 1px solid var(--pt-line); border-radius: 50%; color: var(--pt-gold2) !important; }
.bme-pt-soc:hover { border-color: var(--pt-gold); }

/* profile */
.bme-pt-preview-note { background: #3a2f0c; border: 1px solid var(--pt-gold); color: var(--pt-gold2); padding: 8px 12px; border-radius: 8px; margin-bottom: 14px; font-size: 13.5px; }
.bme-pt-hero { position: relative; border-radius: var(--pt-radius); overflow: hidden; background: radial-gradient(circle at 20% 10%, #2a2410, #0b0b0e 70%); min-height: 260px; display: flex; align-items: flex-end; margin-bottom: 26px; border: 1px solid var(--pt-line); }
.bme-pt-cover { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.bme-pt-hero::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(0,0,0,.05) 0%, rgba(0,0,0,.55) 45%, rgba(0,0,0,.92) 100%); }
.bme-pt-hero.no-cover::after { display: none; }
.bme-pt-hero-in { position: relative; z-index: 1; display: flex; gap: 20px; align-items: flex-end; padding: clamp(18px, 4vw, 36px); width: 100%; flex-wrap: wrap; }
.bme-pt-logo { width: clamp(84px, 14vw, 128px); height: clamp(84px, 14vw, 128px); border-radius: 50%; object-fit: cover; border: 3px solid var(--pt-gold); background: #000; flex: none; }
.bme-pt-hero-in > div { flex: 1 1 280px; min-width: 0; }
.bme-pt-cols { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 420px); gap: 28px; align-items: start; }
.bme-pt-sec { background: var(--pt-card); border: 1px solid var(--pt-line); border-radius: var(--pt-radius); padding: 20px 22px; margin-bottom: 20px; }
.bme-pt-sec h2 { font-size: 20px; color: var(--pt-gold2); }
.bme-pt-services { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px; }
.bme-pt-services li { display: flex; flex-direction: column; border-left: 2px solid var(--pt-gold); padding-left: 12px; }
.bme-pt-services span { color: var(--pt-muted); font-size: 14px; }
.bme-pt-packages { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 200px), 1fr)); gap: 14px; margin-bottom: 10px; }
.bme-pt-pkg { background: var(--pt-card2); border: 1px solid var(--pt-line); border-radius: 10px; padding: 14px; }
.bme-pt-pkg h3 { font-size: 16px; }
.bme-pt-price { color: var(--pt-gold2); font-weight: 700; margin: 0; }
.bme-pt-gallery { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(46%, 150px), 1fr)); gap: 8px; }
.bme-pt-gallery img { width: 100%; aspect-ratio: 1; object-fit: cover; border-radius: 8px; display: block; }
.bme-pt-side { position: sticky; top: 90px; scroll-margin-top: 90px; }
.bme-pt-bookbox { background: var(--pt-card); border: 1px solid var(--pt-gold); border-radius: var(--pt-radius); padding: 20px; box-shadow: 0 10px 40px rgba(0,0,0,.4); }
.bme-pt-book-title { font-size: 24px; color: var(--pt-gold2); }

/* calendar */
.bme-pt-cal { margin: 12px 0 16px; }
.bme-pt-cal-head { display: flex; align-items: center; justify-content: space-between; margin-bottom: 8px; }
.bme-pt-cal-nav { width: 40px; height: 40px; border-radius: 50%; border: 1px solid var(--pt-line); background: transparent; color: var(--pt-gold2); font-size: 22px; line-height: 1; cursor: pointer; }
.bme-pt-cal-nav[disabled] { opacity: .3; cursor: default; }
.bme-pt-cal-grid { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 4px; }
.bme-pt-cal-wd { text-align: center; font-size: 11px; color: var(--pt-muted); text-transform: uppercase; padding: 4px 0; }
.bme-pt-day { position: relative; aspect-ratio: 1; min-width: 0; min-height: 34px; width: 100%; border-radius: 8px; border: 1px solid var(--pt-line); background: var(--pt-card2); color: var(--pt-text); font: inherit; font-size: 14px; cursor: pointer; padding: 0; }
.bme-pt-day.is-available { border-color: rgba(63,191,127,.55); background: rgba(63,191,127,.12); }
.bme-pt-day.is-available:hover { border-color: var(--pt-ok); }
.bme-pt-day.is-unavailable { color: #6c6c76; background: repeating-linear-gradient(135deg, #16161b 0 5px, #1d1d23 5px 10px); cursor: not-allowed; text-decoration: line-through; }
.bme-pt-day.is-selected { background: linear-gradient(180deg, var(--pt-gold2), var(--pt-gold)); color: #111; border-color: var(--pt-gold2); font-weight: 700; text-decoration: none; }
.bme-pt-day.is-today { box-shadow: inset 0 0 0 2px rgba(245,215,122,.5); }
.bme-pt-day i { position: absolute; bottom: 4px; left: 50%; width: 6px; height: 6px; margin-left: -3px; border-radius: 50%; background: var(--pt-gold); }
.bme-pt-cal-legend { display: flex; gap: 14px; flex-wrap: wrap; font-size: 12.5px; color: var(--pt-muted); margin-top: 8px; }
.bme-pt-cal-legend i { display: inline-block; width: 12px; height: 12px; border-radius: 3px; margin-right: 5px; vertical-align: -1px; border: 1px solid var(--pt-line); }
.bme-pt-cal-legend i.is-available { background: rgba(63,191,127,.35); border-color: var(--pt-ok); }
.bme-pt-cal-legend i.is-unavailable { background: repeating-linear-gradient(135deg, #16161b 0 3px, #2a2a33 3px 6px); }
.bme-pt-cal-legend i.is-selected { background: var(--pt-gold); }
.bme-pt-cal[aria-busy="true"] { opacity: .6; }

/* forms */
.bme-pt-tabs { display: flex; border: 1px solid var(--pt-line); border-radius: 999px; padding: 3px; margin: 8px 0 14px; }
.bme-pt-tabs button { flex: 1; min-height: 40px; border: 0; background: transparent; color: var(--pt-muted); border-radius: 999px; cursor: pointer; font: inherit; font-weight: 600; }
.bme-pt-tabs button.is-on { background: var(--pt-gold); color: #111; }
.bme-pt-form { display: block; }
.bme-pt-fgrid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.bme-pt-f { display: flex; flex-direction: column; gap: 4px; font-size: 13px; color: var(--pt-muted); margin: 0; min-width: 0; border: 0; padding: 0; }
.bme-pt-f > span, .bme-pt-f legend { font-weight: 600; color: var(--pt-text); padding: 0; }
.bme-pt-f-wide { grid-column: 1 / -1; }
.bme-pt input[type=text], .bme-pt input[type=email], .bme-pt input[type=tel], .bme-pt input[type=number], .bme-pt input[type=date], .bme-pt input[type=time], .bme-pt input:not([type]), .bme-pt select, .bme-pt textarea {
  width: 100%; min-height: 44px; background: #0f0f13; color: var(--pt-text); border: 1px solid var(--pt-line); border-radius: 8px; padding: 9px 11px; font: inherit; font-size: 16px; color-scheme: dark; }
.bme-pt textarea { min-height: 70px; resize: vertical; }
.bme-pt .is-invalid { border-color: var(--pt-bad) !important; }
.bme-pt-err { color: #ff9b9b; font-size: 12.5px; margin: 2px 0 0; }
.bme-pt-checks { display: flex; flex-wrap: wrap; gap: 6px 14px; color: var(--pt-text); font-size: 14px; }
.bme-pt-checks label { display: inline-flex; gap: 6px; align-items: center; min-height: 32px; }
.bme-pt-check { flex-direction: row; align-items: center; gap: 8px; color: var(--pt-text); font-size: 14px; }
.bme-pt-hp { position: absolute !important; left: -9999px !important; width: 1px; height: 1px; overflow: hidden; }
.bme-pt-subh { font-size: 16px !important; color: var(--pt-gold2) !important; margin: 20px 0 10px !important; }
.bme-pt-subh small { color: var(--pt-muted); font-weight: 400; font-size: 12px; }
.bme-pt-formmsg { margin: 10px 0; padding: 9px 12px; border-radius: 8px; font-size: 14px; background: #1c1c23; }
.bme-pt-formmsg.is-err { background: rgba(224,100,100,.14); color: #ffc7c7; border: 1px solid rgba(224,100,100,.5); }
.bme-pt-formmsg.is-ok { background: rgba(63,191,127,.14); color: #c9f3dc; border: 1px solid rgba(63,191,127,.5); }
.bme-pt-formmsg.is-warn, .bme-pt-dateinfo.is-warn { color: var(--pt-gold2); }
.bme-pt-dateinfo { font-size: 13px; color: #9fe0bd; min-height: 1.2em; margin-top: 6px; }
.bme-pt-note { background: #1c1a12; border: 1px solid rgba(212,175,55,.5); border-radius: 10px; padding: 10px 14px; margin: 10px 0 14px; font-size: 14px; }
.bme-pt-note.is-warn { background: #2a220b; }
.bme-pt-note.is-err { background: rgba(224,100,100,.14); border-color: rgba(224,100,100,.55); }
.bme-pt-done { text-align: center; padding: 18px 6px; outline: none; }
.bme-pt-done-ico { width: 56px; height: 56px; border-radius: 50%; margin: 0 auto 8px; background: var(--pt-gold); color: #111; font-size: 30px; line-height: 56px; font-weight: 700; }
.bme-pt-done h3 { color: var(--pt-gold2); }

/* request page + dashboard */
.bme-pt-reqview { background: var(--pt-card); border: 1px solid var(--pt-gold); border-radius: var(--pt-radius); padding: 20px 22px; margin-bottom: 22px; }
.bme-pt-reqview h2 { font-size: 22px; }
.bme-pt-badge { display: inline-block; padding: 3px 10px; border-radius: 999px; font-size: 12px; font-weight: 700; letter-spacing: .02em; background: #2a2a33; color: var(--pt-text); vertical-align: middle; }
.bme-pt-reqview h2 .bme-pt-badge { font-size: 15px; padding: 5px 14px; }
.bme-pt-badge.is-new { background: var(--pt-gold); color: #111; }
.bme-pt-badge.is-info { background: #1f3a5a; color: #cfe4ff; }
.bme-pt-badge.is-ok { background: #174a31; color: #c9f3dc; }
.bme-pt-badge.is-off { background: #2a2a33; color: #b8b8c2; }
.bme-pt-quote { border: 1px solid var(--pt-gold); border-radius: 10px; padding: 12px 14px; margin: 12px 0; background: #1c1a12; }
.bme-pt-dl { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 220px), 1fr)); gap: 8px 18px; margin: 12px 0; }
.bme-pt-dl dt { color: var(--pt-muted); font-size: 12px; text-transform: uppercase; letter-spacing: .06em; }
.bme-pt-dl dd { margin: 0; }
.bme-pt-thread { list-style: none; margin: 0 0 12px; padding: 0; display: flex; flex-direction: column; gap: 8px; }
.bme-pt-thread li { background: var(--pt-card2); border: 1px solid var(--pt-line); border-radius: 10px; padding: 8px 12px; max-width: 88%; }
.bme-pt-thread li.is-mine { align-self: flex-end; border-color: rgba(212,175,55,.5); }
.bme-pt-thread small { color: var(--pt-muted); }
.bme-pt-thread p { margin: 2px 0 0; }
.bme-pt-dhead { display: flex; gap: 20px; justify-content: space-between; flex-wrap: wrap; align-items: flex-end; margin-bottom: 10px; }
.bme-pt-share { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; max-width: 520px; font-size: 13px; color: var(--pt-muted); }
.bme-pt-share input { flex: 1 1 220px; min-height: 38px !important; font-size: 13px !important; }
.bme-pt-share small { flex-basis: 100%; }
.bme-pt-dtabs { display: flex; gap: 4px; border-bottom: 1px solid var(--pt-line); margin: 16px 0; overflow-x: auto; }
.bme-pt-dtabs button { background: none; border: 0; border-bottom: 2px solid transparent; color: var(--pt-muted); padding: 10px 14px; font: inherit; font-weight: 600; cursor: pointer; white-space: nowrap; min-height: 44px; }
.bme-pt-dtabs button.is-on { color: var(--pt-gold2); border-bottom-color: var(--pt-gold); }
.bme-pt-chips { display: flex; gap: 8px; flex-wrap: wrap; margin-bottom: 12px; }
.bme-pt-chips button { border: 1px solid var(--pt-line); background: transparent; color: var(--pt-text); border-radius: 999px; padding: 6px 14px; cursor: pointer; font: inherit; min-height: 38px; }
.bme-pt-chips button.is-on { border-color: var(--pt-gold); color: var(--pt-gold2); }
.bme-pt-chips span { color: var(--pt-muted); }
.bme-pt-rlist { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 8px; }
.bme-pt-rlist button { width: 100%; text-align: left; display: flex; flex-direction: column; gap: 3px; background: var(--pt-card); border: 1px solid var(--pt-line); border-radius: 10px; padding: 12px 14px; color: var(--pt-text); font: inherit; cursor: pointer; }
.bme-pt-rlist button:hover { border-color: var(--pt-gold); }
.bme-pt-rl-main { display: flex; gap: 10px; align-items: center; flex-wrap: wrap; }
.bme-pt-warn { color: var(--pt-gold2); font-size: 13px; }
.bme-pt-actions { display: flex; flex-direction: column; gap: 10px; margin-top: 14px; }
.bme-pt-act > summary { list-style: none; width: fit-content; }
.bme-pt-act > summary::-webkit-details-marker { display: none; }
.bme-pt-act[open] > summary { margin-bottom: 10px; }
.bme-pt-act form { background: var(--pt-card2); border: 1px solid var(--pt-line); border-radius: 10px; padding: 12px 14px; }
.bme-pt-maillog { margin-top: 14px; font-size: 13px; color: var(--pt-muted); }
.bme-pt-cols-dash { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
.bme-pt-blist { list-style: none; margin: 0; padding: 0; }
.bme-pt-blist li { display: flex; justify-content: space-between; gap: 10px; padding: 8px 0; border-bottom: 1px solid var(--pt-line); font-size: 14px; }
.bme-pt-media { display: flex; gap: 18px; flex-wrap: wrap; margin-bottom: 14px; }
.bme-pt-mslot { display: flex; flex-direction: column; gap: 6px; align-items: flex-start; }
.bme-pt-mprev { width: 160px; height: 100px; border: 1px dashed var(--pt-line); border-radius: 8px; overflow: hidden; display: flex; align-items: center; justify-content: center; color: var(--pt-muted); font-size: 12px; }
.bme-pt-mprev img { width: 100%; height: 100%; object-fit: cover; }
.bme-pt-rowed { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 2fr) auto; gap: 8px; margin-bottom: 8px; align-items: start; }
.bme-pt-rowed-pkg { grid-template-columns: minmax(0, 2fr) minmax(0, 1fr) minmax(0, 1fr) auto; }
.bme-pt-rowed-pkg textarea { grid-column: 1 / 4; }
.bme-pt-gal-edit { display: flex; flex-wrap: wrap; gap: 10px; }
.bme-pt-gal-edit figure { margin: 0; width: 110px; }
.bme-pt-gal-edit img { width: 110px; height: 110px; object-fit: cover; border-radius: 8px; display: block; }
.bme-pt-gal-add { width: 110px; height: 110px; border: 1px dashed var(--pt-gold); border-radius: 8px; display: flex; align-items: center; justify-content: center; color: var(--pt-gold2); cursor: pointer; font-size: 13px; }
.is-busy { opacity: .6; pointer-events: none; }
.bme-pt-savebar { position: sticky; bottom: 0; background: linear-gradient(0deg, var(--pt-bg) 70%, transparent); padding: 14px 0 6px; margin-top: 16px; display: flex; gap: 12px; align-items: center; justify-content: flex-end; flex-wrap: wrap; }
.bme-pt-savebar .bme-pt-formmsg { flex: 1 1 200px; margin: 0; }

/* admin screen */
.bme-pt-admin .bme-pt-admin-box { background: #fff; border: 1px solid #dcdcde; padding: 10px 16px; margin: 12px 0; max-width: 900px; }
.bme-pt-admin .bme-pt-admin-add label { margin-right: 12px; }
.bme-pt-admin .bme-pt { margin: 16px 0; max-width: none; }

@media (max-width: 900px) {
  .bme-pt-cols, .bme-pt-cols-dash { grid-template-columns: minmax(0, 1fr); }
  .bme-pt-side { position: static; }
}
@media (max-width: 560px) {
  .bme-pt { padding: 16px; border-radius: 0; }
  .bme-pt-fgrid { grid-template-columns: minmax(0, 1fr); }
  .bme-pt-rowed, .bme-pt-rowed-pkg { grid-template-columns: minmax(0, 1fr); }
  .bme-pt-rowed-pkg textarea { grid-column: auto; }
  .bme-pt-hero { min-height: 220px; }
  .bme-pt-bookbox { padding: 16px 14px; }
  .bme-pt-thread li { max-width: 100%; }
}

/* The theme decides how wide the content column is (often ~650px on a single post), so the layout follows the width of
   the plugin's own box, not the screen. */
@container bmept (max-width: 860px) {
  .bme-pt-cols, .bme-pt-cols-dash { grid-template-columns: minmax(0, 1fr); }
  .bme-pt-side { position: static; }
}
@container bmept (max-width: 520px) {
  .bme-pt-fgrid { grid-template-columns: minmax(0, 1fr); }
  .bme-pt-rowed, .bme-pt-rowed-pkg { grid-template-columns: minmax(0, 1fr); }
  .bme-pt-rowed-pkg textarea { grid-column: auto; }
  .bme-pt-cal-grid { gap: 3px; }
  .bme-pt-day { font-size: 13px; border-radius: 6px; }
}

.bme-pt-empty-rich { padding: 48px 20px; background: radial-gradient(circle at 50% 0%, rgba(212,175,55,.12), transparent 60%); border-style: solid; border-color: rgba(212,175,55,.35); }
.bme-pt-empty-rich h2 { color: var(--pt-gold2); font-size: 24px; }
.bme-pt-empty-ico { width: 64px; height: 64px; margin: 0 auto 12px; border-radius: 50%; border: 1px solid var(--pt-gold); color: var(--pt-gold2); display: flex; align-items: center; justify-content: center; font-size: 28px; }
.bme-pt-page { max-width: 1240px; margin: 0 auto; }

/* ===== 2.34.0 ===== */
/* calendar arrows: an SVG chevron centred in the round button (the text glyph sat below the middle) */
.bme-pt .bme-pt-cal-nav { display: inline-flex; align-items: center; justify-content: center; padding: 0; line-height: 0; }
.bme-pt .bme-pt-cal-nav svg { display: block; width: 18px; height: 18px; }
.bme-pt .bme-pt-cal-nav:hover:not([disabled]) { border-color: var(--pt-gold); background: rgba(212,175,55,.12); }
.bme-pt .bme-pt-cal-nav:focus-visible { outline: 3px solid rgba(212,175,55,.6); outline-offset: 2px; }
/* multiple-choice chips: readable whatever colour the theme gives <label>, clear selected / focus / disabled / error */
.bme-pt .bme-pt-chips { gap: 8px; }
.bme-pt .bme-pt-chips .bme-pt-chip { position: relative; display: inline-flex; align-items: center; gap: 8px; min-height: 40px; padding: 6px 14px 6px 10px; border: 1px solid var(--pt-line); border-radius: 999px; background: var(--pt-card2); color: var(--pt-text); font-size: 14px; line-height: 1.3; cursor: pointer; }
.bme-pt .bme-pt-chips .bme-pt-chip, .bme-pt .bme-pt-chips .bme-pt-chip span { color: var(--pt-text) !important; }   /* themes / Elementor kits often colour every <label>; the chip text must stay readable */
.bme-pt .bme-pt-chips .bme-pt-chip input { width: 18px; height: 18px; margin: 0; accent-color: var(--pt-gold); flex: none; cursor: pointer; }
.bme-pt .bme-pt-chips .bme-pt-chip:hover { border-color: var(--pt-gold); }
.bme-pt .bme-pt-chips .bme-pt-chip:has(input:checked) { border-color: var(--pt-gold); background: rgba(212,175,55,.18); color: var(--pt-text); font-weight: 600; }
.bme-pt .bme-pt-chips .bme-pt-chip:has(input:focus-visible) { outline: 3px solid rgba(212,175,55,.6); outline-offset: 2px; }
.bme-pt .bme-pt-chips .bme-pt-chip:has(input:disabled) { opacity: .5; cursor: not-allowed; }
.bme-pt fieldset.is-invalid .bme-pt-chip, .bme-pt fieldset[aria-invalid="true"] .bme-pt-chip { border-color: var(--pt-bad); }
.bme-pt .bme-pt-f legend .bme-pt-opt { font-weight: 400; color: var(--pt-muted); font-size: 12.5px; margin-left: 4px; }
.bme-pt .bme-pt-help { display: block; color: var(--pt-muted); font-size: 12.5px; font-weight: 400; margin: 0 0 4px; }
.bme-pt .bme-pt-prefnote { margin: -4px 0 10px; }
.bme-pt .bme-pt-checks label, .bme-pt .bme-pt-check { color: var(--pt-text); }
/* time picker */
.bme-pt .bme-pt-tp { position: relative; }
.bme-pt .bme-pt-tp .bme-pt-tp-in { padding-right: 42px; }
.bme-pt .bme-pt-tp-btn { position: absolute; right: 4px; top: 50%; transform: translateY(-50%); width: 36px; height: 36px; display: inline-flex; align-items: center; justify-content: center; padding: 0; border: 0; border-radius: 8px; background: transparent; color: var(--pt-gold2); cursor: pointer; }
.bme-pt .bme-pt-tp-btn:hover { background: rgba(212,175,55,.12); }
.bme-pt .bme-pt-tp-list { position: absolute; z-index: 30; left: 0; right: 0; top: calc(100% + 4px); max-height: 240px; overflow: auto; margin: 0; padding: 4px; list-style: none; background: var(--pt-card); border: 1px solid var(--pt-gold); border-radius: 10px; box-shadow: 0 12px 30px rgba(0,0,0,.45); }
.bme-pt .bme-pt-tp-list li { padding: 9px 12px; border-radius: 7px; color: var(--pt-text); font-size: 15px; cursor: pointer; }
.bme-pt .bme-pt-tp-list li:hover { background: rgba(212,175,55,.14); }
.bme-pt .bme-pt-tp-list li.is-active { background: rgba(212,175,55,.26); color: var(--pt-text); outline: 1px solid rgba(212,175,55,.6); }
.bme-pt .bme-pt-tp-list li[aria-selected="true"] { color: var(--pt-gold2); font-weight: 700; }
.bme-pt .bme-pt-tp.is-invalid .bme-pt-tp-in, .bme-pt .bme-pt-tp:has(input.is-invalid) .bme-pt-tp-in { border-color: var(--pt-bad); }
@media (prefers-reduced-motion: reduce) { .bme-pt .bme-pt-tp-list { scroll-behavior: auto; } }
.bme-pt .bme-pt-prefh { margin: 14px 0 6px; font-size: 14px; color: var(--pt-text); }
.bme-pt .bme-pt-prefh small { font-weight: 400; color: var(--pt-muted); font-size: 12px; margin-left: 4px; }

/* ===================== 2.36.0 Service Partners: booking form ===================== */
/* --- multiple-choice chips: fluid gold hover, clear selected state with a checkmark, keyboard focus, touch press.
   The real checkbox stays in the chip (stretched over it, transparent), so clicking, tapping, Space and screen readers
   all work exactly as before. */
.bme-pt .bme-pt-chips .bme-pt-chip { isolation: isolate; overflow: hidden; padding: 6px 15px 6px 10px; min-height: 42px;
  background-image: linear-gradient(110deg, transparent 0%, transparent 35%, rgba(245,215,122,.16) 50%, transparent 65%, transparent 100%);
  background-size: 260% 100%; background-position: 120% 0; background-repeat: no-repeat;
  transition: border-color .25s ease, box-shadow .3s ease, background-color .25s ease, background-position .7s cubic-bezier(.22,.61,.36,1), transform .12s ease;
  -webkit-tap-highlight-color: transparent; touch-action: manipulation; }
.bme-pt .bme-pt-chips .bme-pt-chip input { position: absolute; inset: 0; width: 100%; height: 100%; margin: 0; opacity: 0; cursor: pointer; z-index: 2; accent-color: var(--pt-gold); }
.bme-pt .bme-pt-chips .bme-pt-chip span { position: relative; display: inline-flex; align-items: center; gap: 8px; }
.bme-pt .bme-pt-chips .bme-pt-chip span::before { content: ""; flex: none; width: 18px; height: 18px; border-radius: 50%; border: 1.5px solid rgba(166,166,178,.7); background: transparent no-repeat center / 12px 12px;
  transition: background-color .2s ease, border-color .2s ease, transform .2s ease; }
@media (hover: hover) {
  .bme-pt .bme-pt-chips .bme-pt-chip:hover { border-color: rgba(212,175,55,.7); background-position: -20% 0; box-shadow: 0 0 0 1px rgba(212,175,55,.18), 0 4px 18px -6px rgba(212,175,55,.45); }
  .bme-pt .bme-pt-chips .bme-pt-chip:hover span::before { border-color: var(--pt-gold); }
}
/* selected: solid gold edge, warm fill and a filled gold check – stays clear on hover too */
.bme-pt .bme-pt-chips .bme-pt-chip:has(input:checked) { border-color: var(--pt-gold); background-color: rgba(212,175,55,.2); font-weight: 600; box-shadow: inset 0 0 0 1px rgba(212,175,55,.55); }
.bme-pt .bme-pt-chips .bme-pt-chip input:checked + span::before { border-color: var(--pt-gold2); background-color: var(--pt-gold);
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'%3E%3Cpath d='M2.5 6.3 5 8.6l4.6-5' fill='none' stroke='%23111' stroke-width='1.9' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E"); }
.bme-pt .bme-pt-chips .bme-pt-chip input:checked + span { color: var(--pt-gold2) !important; }
@media (hover: hover) { .bme-pt .bme-pt-chips .bme-pt-chip:has(input:checked):hover { background-color: rgba(212,175,55,.26); } }
.bme-pt .bme-pt-chips .bme-pt-chip:has(input:focus-visible) { outline: 3px solid rgba(245,215,122,.75); outline-offset: 2px; }
.bme-pt .bme-pt-chips .bme-pt-chip:active { transform: scale(.97); }
@media (pointer: coarse) { .bme-pt .bme-pt-chips .bme-pt-chip { min-height: 44px; } }
@media (prefers-reduced-motion: reduce) { .bme-pt .bme-pt-chips .bme-pt-chip, .bme-pt .bme-pt-chips .bme-pt-chip span::before { transition: none; } .bme-pt .bme-pt-chips .bme-pt-chip:active { transform: none; } }

/* --- live booking summary */
.bme-pt-profile .bme-pt-summary { margin: 22px 0 14px; padding: 14px 16px; border: 1px solid rgba(212,175,55,.45); border-radius: 10px; background: linear-gradient(180deg, rgba(212,175,55,.08), rgba(212,175,55,.02)); }
.bme-pt-profile .bme-pt-summary .bme-pt-subh { margin: 0 0 8px !important; }
.bme-pt-profile .bme-pt-sum-list { margin: 0; display: grid; gap: 6px; }
.bme-pt-profile .bme-pt-sum-row { display: grid; grid-template-columns: minmax(0, 36%) minmax(0, 1fr); gap: 10px; align-items: baseline; padding: 6px 0; border-top: 1px solid var(--pt-line); }
.bme-pt-profile .bme-pt-sum-row:first-child { border-top: 0; }
.bme-pt-profile .bme-pt-sum-row dt { color: var(--pt-muted); font-size: 13px; margin: 0; }
.bme-pt-profile .bme-pt-sum-row dd { margin: 0; display: flex; gap: 10px; justify-content: space-between; align-items: baseline; color: var(--pt-text); font-size: 14px; min-width: 0; }
.bme-pt-profile .bme-pt-sum-val { min-width: 0; overflow-wrap: anywhere; }
.bme-pt-profile .bme-pt-sum-none { color: var(--pt-muted); font-style: italic; }
.bme-pt-profile .bme-pt-sum-edit { flex: none; background: none; border: 0; padding: 4px 2px; min-height: 32px; color: var(--pt-gold2); font: inherit; font-size: 13px; font-weight: 600; text-decoration: underline; text-underline-offset: 3px; cursor: pointer; }
.bme-pt-profile .bme-pt-sum-edit:hover { color: var(--pt-gold); }
.bme-pt-sr { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); clip-path: inset(50%); white-space: nowrap; }
.bme-pt-profile .is-flash { animation: bmePtFlash 1.4s ease; border-radius: 10px; }
@keyframes bmePtFlash { 0%, 40% { box-shadow: 0 0 0 3px rgba(245,215,122,.7); } 100% { box-shadow: 0 0 0 3px rgba(245,215,122,0); } }
@media (prefers-reduced-motion: reduce) { .bme-pt-profile .is-flash { animation: none; outline: 2px solid rgba(245,215,122,.7); outline-offset: 2px; } }

/* --- layout: the booking box uses the full width of the profile; on a wide box the calendar + date/time sit in one
   column and the request details + summary in the next. Narrow boxes (phones, narrow Elementor columns) stack. */
.bme-pt-profile .bme-pt-cols { grid-template-columns: minmax(0, 1fr); }
.bme-pt-profile .bme-pt-side { position: static; container: bmebook / inline-size; scroll-margin-top: 90px; }
.bme-pt-profile .bme-pt-bk-when .bme-pt-cal { margin: 0 0 14px; }
.bme-pt-profile .bme-pt-bk-details > .bme-pt-fgrid:first-child { margin-top: 2px; }
@container bmebook (min-width: 760px) {
  .bme-pt-profile .bme-pt-bookbox { display: grid; grid-template-columns: minmax(300px, 380px) minmax(0, 1fr); column-gap: 32px; align-items: start; padding: 24px 26px; }
  .bme-pt-profile .bme-pt-bookbox > .bme-pt-book-title { grid-column: 1 / -1; grid-row: 1; }
  .bme-pt-profile .bme-pt-bookbox > .bme-pt-muted { grid-column: 1 / -1; grid-row: 2; max-width: 720px; }
  .bme-pt-profile .bme-pt-bookbox > .bme-pt-tabs { grid-column: 1 / -1; grid-row: 3; max-width: 480px; }
  .bme-pt-profile .bme-pt-bookbox > .bme-pt-cal { grid-column: 1; grid-row: 4; margin-top: 0; }
  .bme-pt-profile .bme-pt-bookbox > #bme-pt-form { grid-column: 2; grid-row: 4; min-width: 0; }
  .bme-pt-profile .bme-pt-bookbox.is-split > #bme-pt-form { grid-column: 1 / -1; }
  .bme-pt-profile .bme-pt-bk { display: grid; grid-template-columns: minmax(300px, 380px) minmax(0, 1fr); column-gap: 32px; align-items: start; }
  .bme-pt-profile .bme-pt-bk-details .bme-pt-subh:first-of-type { margin-top: 18px !important; }
}
@container bmebook (min-width: 760px) {
  @media (min-height: 720px) { .bme-pt-profile .bme-pt-bk-when { position: sticky; top: 90px; } }
}

/* --- partner dashboard: Appearance (Auto / Light / Dark) in its own bar at the top of the panel */
.bme-pt-dash .bme-pt-dhead .bme-pt-dtop { flex: 1 0 100%; order: -1; display: flex; justify-content: flex-end; margin: -6px 0 -10px; }
.bme-pt-dash .bme-pt-dhead .bme-pt-dtop .bme-pt-appear { margin: 0; gap: 8px; }
.bme-pt-dash .bme-pt-appear .bv-seg { position: relative; padding: 3px; gap: 2px; border-radius: 999px; border: 1px solid rgba(212,175,55,.38);
  background: color-mix(in srgb, var(--bv-surface, #15151a) 62%, transparent); -webkit-backdrop-filter: blur(12px) saturate(150%); backdrop-filter: blur(12px) saturate(150%);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.14), 0 6px 22px -10px rgba(212,175,55,.55); }
.bme-pt-dash .bme-pt-appear .bv-seg button { min-height: 32px; padding: 0 12px; border-radius: 999px; gap: 6px; color: var(--bv-text, #f1f1f4); transition: background-color .25s ease, color .25s ease, box-shadow .25s ease; }
.bme-pt-dash .bme-pt-appear .bv-seg button svg { flex: none; }
.bme-pt-dash .bme-pt-appear .bv-seg button:hover:not([aria-pressed="true"]) { background: rgba(212,175,55,.14); }
.bme-pt-dash .bme-pt-appear .bv-seg button[aria-pressed="true"] { background: linear-gradient(135deg, #f5d77a, #d4af37 60%, #b8891b); color: #1d1d1f; box-shadow: 0 2px 10px -3px rgba(212,175,55,.75); }
.bme-pt-dash .bme-pt-appear .bv-seg button:focus-visible { outline: 3px solid rgba(212,175,55,.6); outline-offset: 2px; }
@media (pointer: coarse) { .bme-pt-dash .bme-pt-appear .bv-seg button { min-height: 40px; } }
@media (prefers-reduced-motion: reduce) { .bme-pt-dash .bme-pt-appear .bv-seg button { transition: none; } }
@container bmept (max-width: 520px) { .bme-pt-dash .bme-pt-dhead .bme-pt-dtop { justify-content: flex-start; } }

/* ===================== 2.37.0 Services, resources & documents ===================== */
/* service page header image (set in BME Venue → Service Partners → Services) */
.bme-pt-listing .bme-pt-head.has-img { position: relative; overflow: hidden; border-radius: var(--pt-radius); border: 1px solid var(--pt-line); padding: clamp(40px, 7vw, 84px) 20px; isolation: isolate; }
.bme-pt-listing .bme-pt-head-img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; z-index: -2; }
.bme-pt-listing .bme-pt-head.has-img::before { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(180deg, rgba(8,8,10,.45), rgba(8,8,10,.82)); }
.bme-pt-listing .bme-pt-head.has-img .bme-pt-title { color: #fff; }
.bme-pt-listing .bme-pt-head.has-img .bme-pt-intro { color: #e8e8ee; }
/* profile: Resources & Documents */
.bme-pt-profile .bme-pt-reslist { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px; }
.bme-pt-profile .bme-pt-reslist li { display: flex; gap: 14px; align-items: center; justify-content: space-between; flex-wrap: wrap; padding: 12px 14px; border: 1px solid var(--pt-line); border-radius: 10px; background: var(--pt-card2); }
.bme-pt-profile .bme-pt-res-main { display: flex; flex-direction: column; gap: 2px; min-width: 0; flex: 1 1 220px; }
.bme-pt-profile .bme-pt-res-main span { color: var(--pt-muted); font-size: 14px; }
.bme-pt-profile .bme-pt-sum-note { margin: 10px 0 0; font-size: 12.5px; color: var(--pt-muted); }
/* dashboard: drink / service list, menu document, resource rows */
.bme-pt .bme-pt-docslot { min-width: min(100%, 320px); }
.bme-pt .bme-pt-docname { font-size: 13.5px; overflow-wrap: anywhere; }
.bme-pt .bme-pt-rowed-res { grid-template-columns: minmax(0, 2fr) minmax(0, 1fr) auto; padding: 10px; border: 1px solid var(--pt-line); border-radius: 10px; }
.bme-pt .bme-pt-rowed-res textarea, .bme-pt .bme-pt-rowed-res .bme-pt-res-url, .bme-pt .bme-pt-rowed-res .bme-pt-res-file { grid-column: 1 / 3; }
.bme-pt .bme-pt-rowed-res .bme-pt-res-file { display: none; align-items: center; gap: 10px; flex-wrap: wrap; min-height: 44px; }
.bme-pt .bme-pt-rowed-res.is-file .bme-pt-res-file { display: flex; }
.bme-pt .bme-pt-rowed-res.is-file .bme-pt-res-url { display: none; }
.bme-pt .bme-pt-rowed-res > [data-rm] { grid-column: 3; grid-row: 1; }
.bme-pt .bme-pt-rowed-res > .bme-pt-check { grid-column: 1 / 3; }
.bme-pt .bme-pt-cres { display: grid; gap: 6px; margin: 0 0 12px; }
@container bmept (max-width: 520px) { .bme-pt .bme-pt-rowed-res { grid-template-columns: minmax(0, 1fr); } .bme-pt .bme-pt-rowed-res > * { grid-column: 1 !important; grid-row: auto !important; } }
/* admin: Services */
.bme-pt-admin .bme-pt-res-admin td { vertical-align: top; }
.bme-pt-admin .bme-pt-res-admin input.regular-text { max-width: 100%; }

/* ===================== 2.38.0 verified reviews ===================== */
.bme-pt .bme-pt-stars { color: var(--pt-gold); letter-spacing: 1px; font-size: 16px; line-height: 1; white-space: nowrap; }
.bme-pt .bme-pt-stars-off { color: var(--pt-line); }
.bme-pt .bme-pt-card-rating { margin: 0; font-size: 13.5px; color: var(--pt-text); display: flex; align-items: center; gap: 6px; flex-wrap: wrap; }
.bme-pt .bme-pt-card-rating .bme-pt-rc { color: var(--pt-muted); }
/* logos keep their round, fixed-size box inside Elementor / themes that reset img (".elementor img { border-radius: 0; height: auto }") */
.bme-pt .bme-pt-logo, .bme-pt .bme-pt-card-logo { border-radius: 50%; object-fit: cover; aspect-ratio: 1 / 1; max-width: none; }
.bme-pt .bme-pt-logo { width: clamp(84px, 14vw, 128px); height: clamp(84px, 14vw, 128px); border: 3px solid var(--pt-gold); }
.bme-pt .bme-pt-card-logo { width: 58px; height: 58px; border: 2px solid var(--pt-gold); }
.bme-pt .bme-pt-rev-sum { display: flex; align-items: center; gap: 8px; margin: 0 0 4px; font-size: 15px; }
.bme-pt .bme-pt-rev-sum .bme-pt-stars { font-size: 20px; }
.bme-pt .bme-pt-revlist { list-style: none; margin: 12px 0 0; padding: 0; display: grid; gap: 12px; }
.bme-pt .bme-pt-revlist > li { padding: 14px 16px; border: 1px solid var(--pt-line); border-radius: 10px; background: var(--pt-card2); }
.bme-pt .bme-pt-rev-body { margin: 8px 0 6px; color: var(--pt-text); }
.bme-pt .bme-pt-rev-by { margin: 0; font-size: 13px; color: var(--pt-muted); }
.bme-pt .bme-pt-verified { color: var(--pt-ok); font-weight: 600; }
.bme-pt .bme-pt-rev-reply { margin-top: 10px; padding: 10px 12px; border-left: 2px solid var(--pt-gold); background: rgba(212,175,55,.06); border-radius: 0 8px 8px 0; font-size: 14px; }
.bme-pt .bme-pt-rev-reply p { margin: 4px 0 0; }
.bme-pt .bme-pt-revreply { margin-top: 10px; }
.bme-pt .bme-pt-revbox { margin: 18px 0; padding: 14px 16px; border: 1px solid rgba(212,175,55,.45); border-radius: 10px; }
.bme-pt .bme-pt-revbox .bme-pt-subh { margin-top: 0 !important; }
/* star rating input: real radio buttons (keyboard: arrow keys), shown as stars */
.bme-pt .bme-pt-rate-in { display: inline-flex; flex-direction: row-reverse; gap: 2px; }
.bme-pt .bme-pt-rate-in input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.bme-pt .bme-pt-rate-in label { font-size: 32px; line-height: 1; color: var(--pt-line); cursor: pointer; padding: 4px 2px; min-width: 40px; text-align: center; transition: color .15s; }
.bme-pt .bme-pt-rate-in label:hover, .bme-pt .bme-pt-rate-in label:hover ~ label, .bme-pt .bme-pt-rate-in input:checked ~ label { color: var(--pt-gold); }
.bme-pt .bme-pt-rate-in input:focus-visible + label { outline: 2px solid var(--pt-gold2); outline-offset: 2px; border-radius: 6px; }
@media (prefers-reduced-motion: reduce) { .bme-pt .bme-pt-rate-in label { transition: none; } }

/* ===================== 2.39.0 inside the website's BME Site Shell (star background, glass navigation, footer) =====================
   Same treatment as the Music page: the plugin box is see-through so the site's gold star field shows around the
   content (the cards, hero and booking box keep their own backgrounds), and the content starts below the fixed menu. */
body.bme-shell .bme-pt.bme-pt-profile, body.bme-shell .bme-pt.bme-pt-listing { background: transparent; padding-top: clamp(118px, 13vw, 170px); position: relative; z-index: 3; }
body.bme-shell .bme-pt-profile .bme-pt-side { scroll-margin-top: 112px; }
@media (max-width: 760px) { body.bme-shell .bme-pt.bme-pt-profile, body.bme-shell .bme-pt.bme-pt-listing { padding-top: 104px; } }

/* ===================== 2.40.1 websites whose star field comes from the Elementor Pro header (Phlox theme) =====================
   The header's ".mamba-night-config" script appends a fixed star layer (z-index 1) to <body>. On theme-template pages
   Phlox's #inner-body (white, z-index 3), the Customizer's #222 ".aux-wrapper" and the title bar covered it. Only on
   BME service pages and partner profiles, and only when that star field is present (:has), those layers become
   see-through and stop stacking above it – like Elementor Canvas pages (Home, About, Events). Cards, cover photos,
   logos and forms keep their own backgrounds and stay above the stars (z-index 3, as the site does for its widgets). */
body.bme-pt-page:has(.mamba-night-config) { background-color: #080b0f; }
body.bme-pt-page:has(.mamba-night-config) #inner-body { background-color: transparent; z-index: auto; }
body.bme-pt-page:has(.mamba-night-config) #main .aux-wrapper { background-color: transparent; }
body.bme-pt-page:has(.mamba-night-config) .page-title-section .page-header { z-index: auto; background-image: linear-gradient(#080b0f, #080b0f); }
body.bme-pt-page:has(.mamba-night-config) .bme-pt.bme-pt-profile, body.bme-pt-page:has(.mamba-night-config) .bme-pt.bme-pt-listing { background: transparent; position: relative; z-index: 3; }
